From: Kilian Date: Tue, 21 Mar 2023 07:08:35 +0000 (+0100) Subject: v230321 X-Git-Url: http://cloud.dks.lu/git/?a=commitdiff_plain;h=28c895a6265c15f7986bef3b2c7a18587c18dcf5;p=prixlaurence_lu.git v230321 --- diff --git a/.gitignore b/.gitignore index 48631a9..243c4aa 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1 @@ -public_html/old/* old/* -log/* diff --git a/Translations_Prix_Laurence_.zip b/Translations_Prix_Laurence_.zip deleted file mode 100644 index 4a40134..0000000 Binary files a/Translations_Prix_Laurence_.zip and /dev/null differ diff --git a/public_html/2022/images/jury/Sabrina Notka (2).jpg b/public_html/2022/images/jury/Sabrina Notka (2).jpg new file mode 100644 index 0000000..0ebc752 Binary files /dev/null and b/public_html/2022/images/jury/Sabrina Notka (2).jpg differ diff --git a/public_html/2022/images/jury/thumbs/Thumbs.db b/public_html/2022/images/jury/thumbs/Thumbs.db new file mode 100644 index 0000000..ecbeefb Binary files /dev/null and b/public_html/2022/images/jury/thumbs/Thumbs.db differ diff --git a/public_html/2022/images/jury/thumbs/crop_60615.jpg b/public_html/2022/images/jury/thumbs/crop_60615.jpg new file mode 100644 index 0000000..8437385 Binary files /dev/null and b/public_html/2022/images/jury/thumbs/crop_60615.jpg differ diff --git a/public_html/2022/images/web_aa0b0d78-3a4a-46b4-bc20-99834280378f.png b/public_html/2022/images/web_aa0b0d78-3a4a-46b4-bc20-99834280378f.png new file mode 100644 index 0000000..3c46605 Binary files /dev/null and b/public_html/2022/images/web_aa0b0d78-3a4a-46b4-bc20-99834280378f.png differ diff --git a/public_html/2022/newcms/choose_copy_news.php b/public_html/2022/newcms/choose_copy_news.php index c4b1544..ebc6b99 100644 --- a/public_html/2022/newcms/choose_copy_news.php +++ b/public_html/2022/newcms/choose_copy_news.php @@ -1,6 +1,6 @@  diff --git a/public_html/2022/newcms/choose_delete_PDF.php b/public_html/2022/newcms/choose_delete_PDF.php index 19dec40..b757a5a 100644 --- a/public_html/2022/newcms/choose_delete_PDF.php +++ b/public_html/2022/newcms/choose_delete_PDF.php @@ -1,6 +1,6 @@  diff --git a/public_html/2022/newcms/choose_delete_activite.php b/public_html/2022/newcms/choose_delete_activite.php index 62f4e3f..228a602 100644 --- a/public_html/2022/newcms/choose_delete_activite.php +++ b/public_html/2022/newcms/choose_delete_activite.php @@ -1,6 +1,6 @@  diff --git a/public_html/2022/newcms/choose_delete_comite.php b/public_html/2022/newcms/choose_delete_comite.php index 9fc215e..34b7830 100644 --- a/public_html/2022/newcms/choose_delete_comite.php +++ b/public_html/2022/newcms/choose_delete_comite.php @@ -1,6 +1,6 @@  diff --git a/public_html/2022/newcms/choose_delete_portfoliofront.php b/public_html/2022/newcms/choose_delete_portfoliofront.php index 5b023b5..10062d3 100644 --- a/public_html/2022/newcms/choose_delete_portfoliofront.php +++ b/public_html/2022/newcms/choose_delete_portfoliofront.php @@ -1,6 +1,6 @@  diff --git a/public_html/2022/newcms/choose_delete_product.php b/public_html/2022/newcms/choose_delete_product.php index 7dec8bd..8f32989 100644 --- a/public_html/2022/newcms/choose_delete_product.php +++ b/public_html/2022/newcms/choose_delete_product.php @@ -1,6 +1,6 @@  diff --git a/public_html/2022/newcms/choose_delete_service.php b/public_html/2022/newcms/choose_delete_service.php index 5efd3bf..265c177 100644 --- a/public_html/2022/newcms/choose_delete_service.php +++ b/public_html/2022/newcms/choose_delete_service.php @@ -1,6 +1,6 @@  diff --git a/public_html/2022/newcms/choose_delete_team.php b/public_html/2022/newcms/choose_delete_team.php index 3693cbd..12f0e71 100644 --- a/public_html/2022/newcms/choose_delete_team.php +++ b/public_html/2022/newcms/choose_delete_team.php @@ -1,6 +1,6 @@  diff --git a/public_html/2022/newcms/choose_delete_therapies.php b/public_html/2022/newcms/choose_delete_therapies.php index 53302e1..a41c092 100644 --- a/public_html/2022/newcms/choose_delete_therapies.php +++ b/public_html/2022/newcms/choose_delete_therapies.php @@ -1,6 +1,6 @@  diff --git a/public_html/2022/newcms/choose_destinataires.php b/public_html/2022/newcms/choose_destinataires.php index c986344..afe617c 100644 --- a/public_html/2022/newcms/choose_destinataires.php +++ b/public_html/2022/newcms/choose_destinataires.php @@ -1,5 +1,5 @@  diff --git a/public_html/2022/newcms/choose_newsletter-emails.php b/public_html/2022/newcms/choose_newsletter-emails.php index 25a91f9..ad4417c 100644 --- a/public_html/2022/newcms/choose_newsletter-emails.php +++ b/public_html/2022/newcms/choose_newsletter-emails.php @@ -1,6 +1,6 @@  + -annuler - retour   
-
+
+ + + + + + + + + + query($abfrage); $count = 0; while($info = $result->fetch_assoc()) { $title = $info['title']; - $dt = new DateTime($info['date']); - $formatter = new IntlDateFormatter( - 'en_EN', - $format, - IntlDateFormatter::NONE, - 'Europe/Berlin' - ); - - echo ' -

'.$info['title'].' date: '.$formatter->format($dt), PHP_EOL.'modify
- '; -} + ?> - + + + + + + + +
TitreDate 
<modifier
diff --git a/public_html/2022/newcms/choose_update_blog2.php b/public_html/2022/newcms/choose_update_blog2.php index 97f06c1..abe240f 100644 --- a/public_html/2022/newcms/choose_update_blog2.php +++ b/public_html/2022/newcms/choose_update_blog2.php @@ -1,40 +1,36 @@ - + -annuler - retour   
-
+
+ + + + + + + + + + query($abfrage); $count = 0; while($info = $result->fetch_assoc()) { - $title = $info['title']; - $dt = new DateTime($info['date']); - $formatter = new IntlDateFormatter( - 'en_EN', - $format, - IntlDateFormatter::NONE, - 'Europe/Berlin' - ); - - echo ' -

Text: '.$info['title'].' date: '.$formatter->format($dt), PHP_EOL.'modify
- '; -} -?> - + ?> + + + + + + + +
TitreDate 
modifier
diff --git a/public_html/2022/newcms/choose_update_comite.php b/public_html/2022/newcms/choose_update_comite.php index aef3895..ccb753b 100644 --- a/public_html/2022/newcms/choose_update_comite.php +++ b/public_html/2022/newcms/choose_update_comite.php @@ -1,6 +1,6 @@ 

Membre jury : '.$info['firstname'].' '.$info['name'].'

-  modifier

+  modifier

'; } ?> diff --git a/public_html/2022/newcms/choose_update_portfoliofront.php b/public_html/2022/newcms/choose_update_portfoliofront.php index 341f66d..55b0627 100644 --- a/public_html/2022/newcms/choose_update_portfoliofront.php +++ b/public_html/2022/newcms/choose_update_portfoliofront.php @@ -1,6 +1,6 @@  diff --git a/public_html/2022/newcms/choose_update_team.php b/public_html/2022/newcms/choose_update_team.php index 4c25c7d..b06716c 100644 --- a/public_html/2022/newcms/choose_update_team.php +++ b/public_html/2022/newcms/choose_update_team.php @@ -1,6 +1,6 @@  diff --git a/public_html/2022/newcms/pdf/examples/mpdfstyleA4.css b/public_html/2022/newcms/css/mpdfstyleA4.css similarity index 100% rename from public_html/2022/newcms/pdf/examples/mpdfstyleA4.css rename to public_html/2022/newcms/css/mpdfstyleA4.css diff --git a/public_html/2022/newcms/pdf/examples/mpdfstylePaged.css b/public_html/2022/newcms/css/mpdfstylePaged.css similarity index 100% rename from public_html/2022/newcms/pdf/examples/mpdfstylePaged.css rename to public_html/2022/newcms/css/mpdfstylePaged.css diff --git a/public_html/2022/newcms/pdf/examples/mpdfstyletables.css b/public_html/2022/newcms/css/mpdfstyletables.css similarity index 100% rename from public_html/2022/newcms/pdf/examples/mpdfstyletables.css rename to public_html/2022/newcms/css/mpdfstyletables.css diff --git a/public_html/2022/newcms/delete_PDF.php b/public_html/2022/newcms/delete_PDF.php index 15327b2..b939c30 100644 --- a/public_html/2022/newcms/delete_PDF.php +++ b/public_html/2022/newcms/delete_PDF.php @@ -1,6 +1,6 @@  diff --git a/public_html/2022/newcms/dynamic_menu_order/new_menu_items.php b/public_html/2022/newcms/dynamic_menu_order/new_menu_items.php index 986dace..56cffa2 100644 --- a/public_html/2022/newcms/dynamic_menu_order/new_menu_items.php +++ b/public_html/2022/newcms/dynamic_menu_order/new_menu_items.php @@ -4,7 +4,7 @@ ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); -include ("../../lib/config.php"); +include ("lib/config.php"); $id=$_GET["id"]; diff --git a/public_html/2022/newcms/export-excel.php b/public_html/2022/newcms/export-excel.php index 7279c8a..701f55e 100644 --- a/public_html/2022/newcms/export-excel.php +++ b/public_html/2022/newcms/export-excel.php @@ -10,7 +10,7 @@ diff($heute); +$alter= $differenz->format('%y'); + + +$html = ' +
ID: '.$id.' +

'.$rows['prenom'].' '.$rows['nom'] .'

+

About

+ + + +
Age: '.$alter.'
Country: '.$rows['pays'] .'


+

Text

+
+

'.$rows['title'].'

+
+ '.$rows['message'].' +
+
+
+ '; + + echo $html; + +?> diff --git a/public_html/2022/newcms/form_copy_news.php b/public_html/2022/newcms/form_copy_news.php index ab58f62..ffba3f3 100644 --- a/public_html/2022/newcms/form_copy_news.php +++ b/public_html/2022/newcms/form_copy_news.php @@ -1,6 +1,6 @@  @@ -17,7 +17,7 @@ echo 'SELECT Text:


Title:
-

+

Preview text:


diff --git a/public_html/2022/newcms/form_new_comite.php b/public_html/2022/newcms/form_new_comite.php index d36bd2d..2733c39 100644 --- a/public_html/2022/newcms/form_new_comite.php +++ b/public_html/2022/newcms/form_new_comite.php @@ -1,6 +1,6 @@  diff --git a/public_html/2022/newcms/form_new_gallery-pictures.php b/public_html/2022/newcms/form_new_gallery-pictures.php index b76dce0..aa863c4 100644 --- a/public_html/2022/newcms/form_new_gallery-pictures.php +++ b/public_html/2022/newcms/form_new_gallery-pictures.php @@ -1,6 +1,6 @@  diff --git a/public_html/2022/newcms/form_new_newsletter.php b/public_html/2022/newcms/form_new_newsletter.php index 8716066..56c1aef 100644 --- a/public_html/2022/newcms/form_new_newsletter.php +++ b/public_html/2022/newcms/form_new_newsletter.php @@ -1,6 +1,6 @@  diff --git a/public_html/2022/newcms/form_new_product-pictures.php b/public_html/2022/newcms/form_new_product-pictures.php index a823741..01de17f 100644 --- a/public_html/2022/newcms/form_new_product-pictures.php +++ b/public_html/2022/newcms/form_new_product-pictures.php @@ -1,6 +1,6 @@  diff --git a/public_html/2022/newcms/form_new_product.php b/public_html/2022/newcms/form_new_product.php index 5fae6fe..2ed4148 100644 --- a/public_html/2022/newcms/form_new_product.php +++ b/public_html/2022/newcms/form_new_product.php @@ -1,6 +1,6 @@  diff --git a/public_html/2022/newcms/form_new_service.php b/public_html/2022/newcms/form_new_service.php index 6498bac..db849f0 100644 --- a/public_html/2022/newcms/form_new_service.php +++ b/public_html/2022/newcms/form_new_service.php @@ -1,6 +1,6 @@  diff --git a/public_html/2022/newcms/form_new_team.php b/public_html/2022/newcms/form_new_team.php index 6a086e3..9a11f96 100644 --- a/public_html/2022/newcms/form_new_team.php +++ b/public_html/2022/newcms/form_new_team.php @@ -1,6 +1,6 @@  diff --git a/public_html/2022/newcms/form_new_therapies.php b/public_html/2022/newcms/form_new_therapies.php index aafdcc8..1c2f32d 100644 --- a/public_html/2022/newcms/form_new_therapies.php +++ b/public_html/2022/newcms/form_new_therapies.php @@ -1,5 +1,5 @@  @@ -34,8 +31,9 @@ include ("../lib/config.php"); $id=$_GET['id']; -$abfrage = "SELECT * FROM editioun_2021 WHERE id='$id'"; +$abfrage = "SELECT * FROM editioun_".$cfg["year"]." WHERE id='$id'"; $result = mysqli_query($conn, $abfrage); + while($info = mysqli_fetch_array($result)) { $title = $info['title']; @@ -44,7 +42,7 @@ $abfrage = "SELECT * FROM editioun_2021 WHERE id='$id'"; echo '
- download PDF + download PDF

Texte: '.$info['title'].'

Date d´entrée: '.$info['date'].'
Nom de l´auteur: '.$info['nom'].'
diff --git a/public_html/2022/newcms/form_update_comite.php b/public_html/2022/newcms/form_update_comite.php index 0c6e46e..dc98102 100644 --- a/public_html/2022/newcms/form_update_comite.php +++ b/public_html/2022/newcms/form_update_comite.php @@ -1,6 +1,6 @@ Photo
Photo actuelle:
-

'; ?> +

'; ?> Télécharger une nouvelle photo

diff --git a/public_html/2022/newcms/form_update_content.php b/public_html/2022/newcms/form_update_content.php index 6e810aa..85c3636 100644 --- a/public_html/2022/newcms/form_update_content.php +++ b/public_html/2022/newcms/form_update_content.php @@ -1,5 +1,5 @@  diff --git a/public_html/2022/newcms/form_update_product.php b/public_html/2022/newcms/form_update_product.php index f021099..29ccc02 100644 --- a/public_html/2022/newcms/form_update_product.php +++ b/public_html/2022/newcms/form_update_product.php @@ -1,6 +1,6 @@  diff --git a/public_html/2022/newcms/form_update_services.php b/public_html/2022/newcms/form_update_services.php index f76c1c6..b827b34 100644 --- a/public_html/2022/newcms/form_update_services.php +++ b/public_html/2022/newcms/form_update_services.php @@ -1,5 +1,5 @@ 
- +
diff --git a/public_html/2022/newcms/lib/composer.json b/public_html/2022/newcms/lib/composer.json new file mode 100644 index 0000000..208d605 --- /dev/null +++ b/public_html/2022/newcms/lib/composer.json @@ -0,0 +1,6 @@ +{ + "require": { + "phpmailer/phpmailer": "^6.7", + "dompdf/dompdf": "^2.0" + } +} diff --git a/public_html/2022/newcms/lib/composer.lock b/public_html/2022/newcms/lib/composer.lock new file mode 100644 index 0000000..da4fce3 --- /dev/null +++ b/public_html/2022/newcms/lib/composer.lock @@ -0,0 +1,373 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "42d03defdfb746ae00561b22b73d2dc0", + "packages": [ + { + "name": "dompdf/dompdf", + "version": "v2.0.1", + "source": { + "type": "git", + "url": "https://github.com/dompdf/dompdf.git", + "reference": "c5310df0e22c758c85ea5288175fc6cd777bc085" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dompdf/dompdf/zipball/c5310df0e22c758c85ea5288175fc6cd777bc085", + "reference": "c5310df0e22c758c85ea5288175fc6cd777bc085", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-mbstring": "*", + "masterminds/html5": "^2.0", + "phenx/php-font-lib": ">=0.5.4 <1.0.0", + "phenx/php-svg-lib": ">=0.3.3 <1.0.0", + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "ext-json": "*", + "ext-zip": "*", + "mockery/mockery": "^1.3", + "phpunit/phpunit": "^7.5 || ^8 || ^9", + "squizlabs/php_codesniffer": "^3.5" + }, + "suggest": { + "ext-gd": "Needed to process images", + "ext-gmagick": "Improves image processing performance", + "ext-imagick": "Improves image processing performance", + "ext-zlib": "Needed for pdf stream compression" + }, + "type": "library", + "autoload": { + "psr-4": { + "Dompdf\\": "src/" + }, + "classmap": [ + "lib/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1" + ], + "authors": [ + { + "name": "The Dompdf Community", + "homepage": "https://github.com/dompdf/dompdf/blob/master/AUTHORS.md" + } + ], + "description": "DOMPDF is a CSS 2.1 compliant HTML to PDF converter", + "homepage": "https://github.com/dompdf/dompdf", + "support": { + "issues": "https://github.com/dompdf/dompdf/issues", + "source": "https://github.com/dompdf/dompdf/tree/v2.0.1" + }, + "time": "2022-09-22T13:43:41+00:00" + }, + { + "name": "masterminds/html5", + "version": "2.7.6", + "source": { + "type": "git", + "url": "https://github.com/Masterminds/html5-php.git", + "reference": "897eb517a343a2281f11bc5556d6548db7d93947" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/897eb517a343a2281f11bc5556d6548db7d93947", + "reference": "897eb517a343a2281f11bc5556d6548db7d93947", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "ext-dom": "*", + "ext-libxml": "*", + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7.21 || ^6 || ^7" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev" + } + }, + "autoload": { + "psr-4": { + "Masterminds\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Matt Butcher", + "email": "technosophos@gmail.com" + }, + { + "name": "Matt Farina", + "email": "matt@mattfarina.com" + }, + { + "name": "Asmir Mustafic", + "email": "goetas@gmail.com" + } + ], + "description": "An HTML5 parser and serializer.", + "homepage": "http://masterminds.github.io/html5-php", + "keywords": [ + "HTML5", + "dom", + "html", + "parser", + "querypath", + "serializer", + "xml" + ], + "support": { + "issues": "https://github.com/Masterminds/html5-php/issues", + "source": "https://github.com/Masterminds/html5-php/tree/2.7.6" + }, + "time": "2022-08-18T16:18:26+00:00" + }, + { + "name": "phenx/php-font-lib", + "version": "0.5.4", + "source": { + "type": "git", + "url": "https://github.com/dompdf/php-font-lib.git", + "reference": "dd448ad1ce34c63d09baccd05415e361300c35b4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dompdf/php-font-lib/zipball/dd448ad1ce34c63d09baccd05415e361300c35b4", + "reference": "dd448ad1ce34c63d09baccd05415e361300c35b4", + "shasum": "" + }, + "require": { + "ext-mbstring": "*" + }, + "require-dev": { + "symfony/phpunit-bridge": "^3 || ^4 || ^5" + }, + "type": "library", + "autoload": { + "psr-4": { + "FontLib\\": "src/FontLib" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0" + ], + "authors": [ + { + "name": "Fabien Ménager", + "email": "fabien.menager@gmail.com" + } + ], + "description": "A library to read, parse, export and make subsets of different types of font files.", + "homepage": "https://github.com/PhenX/php-font-lib", + "support": { + "issues": "https://github.com/dompdf/php-font-lib/issues", + "source": "https://github.com/dompdf/php-font-lib/tree/0.5.4" + }, + "time": "2021-12-17T19:44:54+00:00" + }, + { + "name": "phenx/php-svg-lib", + "version": "0.5.0", + "source": { + "type": "git", + "url": "https://github.com/dompdf/php-svg-lib.git", + "reference": "76876c6cf3080bcb6f249d7d59705108166a6685" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dompdf/php-svg-lib/zipball/76876c6cf3080bcb6f249d7d59705108166a6685", + "reference": "76876c6cf3080bcb6f249d7d59705108166a6685", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "php": "^7.1 || ^8.0", + "sabberworm/php-css-parser": "^8.4" + }, + "require-dev": { + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "Svg\\": "src/Svg" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0" + ], + "authors": [ + { + "name": "Fabien Ménager", + "email": "fabien.menager@gmail.com" + } + ], + "description": "A library to read, parse and export to PDF SVG files.", + "homepage": "https://github.com/PhenX/php-svg-lib", + "support": { + "issues": "https://github.com/dompdf/php-svg-lib/issues", + "source": "https://github.com/dompdf/php-svg-lib/tree/0.5.0" + }, + "time": "2022-09-06T12:16:56+00:00" + }, + { + "name": "phpmailer/phpmailer", + "version": "v6.7.1", + "source": { + "type": "git", + "url": "https://github.com/PHPMailer/PHPMailer.git", + "reference": "49cd7ea3d2563f028d7811f06864a53b1f15ff55" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/49cd7ea3d2563f028d7811f06864a53b1f15ff55", + "reference": "49cd7ea3d2563f028d7811f06864a53b1f15ff55", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "ext-filter": "*", + "ext-hash": "*", + "php": ">=5.5.0" + }, + "require-dev": { + "dealerdirect/phpcodesniffer-composer-installer": "^0.7.2", + "doctrine/annotations": "^1.2.6 || ^1.13.3", + "php-parallel-lint/php-console-highlighter": "^1.0.0", + "php-parallel-lint/php-parallel-lint": "^1.3.2", + "phpcompatibility/php-compatibility": "^9.3.5", + "roave/security-advisories": "dev-latest", + "squizlabs/php_codesniffer": "^3.7.1", + "yoast/phpunit-polyfills": "^1.0.4" + }, + "suggest": { + "ext-mbstring": "Needed to send email in multibyte encoding charset or decode encoded addresses", + "ext-openssl": "Needed for secure SMTP sending and DKIM signing", + "greew/oauth2-azure-provider": "Needed for Microsoft Azure XOAUTH2 authentication", + "hayageek/oauth2-yahoo": "Needed for Yahoo XOAUTH2 authentication", + "league/oauth2-google": "Needed for Google XOAUTH2 authentication", + "psr/log": "For optional PSR-3 debug logging", + "symfony/polyfill-mbstring": "To support UTF-8 if the Mbstring PHP extension is not enabled (^1.2)", + "thenetworg/oauth2-azure": "Needed for Microsoft XOAUTH2 authentication" + }, + "type": "library", + "autoload": { + "psr-4": { + "PHPMailer\\PHPMailer\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1-only" + ], + "authors": [ + { + "name": "Marcus Bointon", + "email": "phpmailer@synchromedia.co.uk" + }, + { + "name": "Jim Jagielski", + "email": "jimjag@gmail.com" + }, + { + "name": "Andy Prevost", + "email": "codeworxtech@users.sourceforge.net" + }, + { + "name": "Brent R. Matzelle" + } + ], + "description": "PHPMailer is a full-featured email creation and transfer class for PHP", + "support": { + "issues": "https://github.com/PHPMailer/PHPMailer/issues", + "source": "https://github.com/PHPMailer/PHPMailer/tree/v6.7.1" + }, + "funding": [ + { + "url": "https://github.com/Synchro", + "type": "github" + } + ], + "time": "2022-12-08T13:30:06+00:00" + }, + { + "name": "sabberworm/php-css-parser", + "version": "8.4.0", + "source": { + "type": "git", + "url": "https://github.com/sabberworm/PHP-CSS-Parser.git", + "reference": "e41d2140031d533348b2192a83f02d8dd8a71d30" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sabberworm/PHP-CSS-Parser/zipball/e41d2140031d533348b2192a83f02d8dd8a71d30", + "reference": "e41d2140031d533348b2192a83f02d8dd8a71d30", + "shasum": "" + }, + "require": { + "ext-iconv": "*", + "php": ">=5.6.20" + }, + "require-dev": { + "codacy/coverage": "^1.4", + "phpunit/phpunit": "^4.8.36" + }, + "suggest": { + "ext-mbstring": "for parsing UTF-8 CSS" + }, + "type": "library", + "autoload": { + "psr-4": { + "Sabberworm\\CSS\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Raphael Schweikert" + } + ], + "description": "Parser for CSS Files written in PHP", + "homepage": "https://www.sabberworm.com/blog/2010/6/10/php-css-parser", + "keywords": [ + "css", + "parser", + "stylesheet" + ], + "support": { + "issues": "https://github.com/sabberworm/PHP-CSS-Parser/issues", + "source": "https://github.com/sabberworm/PHP-CSS-Parser/tree/8.4.0" + }, + "time": "2021-12-11T13:40:54+00:00" + } + ], + "packages-dev": [], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": [], + "platform-dev": [], + "plugin-api-version": "2.3.0" +} diff --git a/public_html/2022/newcms/lib/config.php b/public_html/2022/newcms/lib/config.php index cd9a052..533eeb3 100644 --- a/public_html/2022/newcms/lib/config.php +++ b/public_html/2022/newcms/lib/config.php @@ -1,18 +1,13 @@ connect_error) { - die("Connection failed: " . $conn->connect_error); -}; - -mysqli_set_charset($conn,"utf8"); $relscriptdir = dirname(dirname($_SERVER["SCRIPT_FILENAME"])); $cfg = array ( + "year" => "2023", "site" => "https://www.prixlaurence.lu", "basepath" => substr(dirname($_SERVER["SCRIPT_FILENAME"]),strlen($_SERVER["DOCUMENT_ROOT"])).'', "sitepath" => substr(dirname($_SERVER["SCRIPT_FILENAME"]),strlen($_SERVER["DOCUMENT_ROOT"].$relscriptdir)).'', "docroot" => $_SERVER["DOCUMENT_ROOT"], - "tbledition" => "editioun_2021", + "tbledition" => "editioun_2023", "db"=> array( "type" => "mysql", // "host" => "osmium.ion.lu", @@ -29,8 +24,15 @@ $cfg = array ( ), "version" => date("YmdHis") ); +$conn = new mysqli($cfg["db"]["host"], $cfg["db"]["user"], $cfg["db"]["password"], $cfg["db"]["dbname"]); +if ($conn->connect_error) { + die("Connection failed: " . $conn->connect_error); +}; + +mysqli_set_charset($conn,"utf8"); + include_once($cfg["docroot"].$cfg["basepath"]."/lib/database.php"); -$pdo = new PDO('mysql:host=dedi1781.your-server.de;dbname=prixlw_db1', 'prixlw_1', 'Kq2AWybvQ2QrbZCY', array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")); +$pdo = new PDO('mysql:host='.$cfg["db"]["host"].';dbname='.$cfg["db"]["dbname"], $cfg["db"]["user"], $cfg["db"]["password"], array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")); $db = new database($cfg["db"]); ?> \ No newline at end of file diff --git a/public_html/2022/newcms/lib/vendor/autoload.php b/public_html/2022/newcms/lib/vendor/autoload.php new file mode 100644 index 0000000..5a6c1b9 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/autoload.php @@ -0,0 +1,25 @@ + + * Jordi Boggiano + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer\Autoload; + +/** + * ClassLoader implements a PSR-0, PSR-4 and classmap class loader. + * + * $loader = new \Composer\Autoload\ClassLoader(); + * + * // register classes with namespaces + * $loader->add('Symfony\Component', __DIR__.'/component'); + * $loader->add('Symfony', __DIR__.'/framework'); + * + * // activate the autoloader + * $loader->register(); + * + * // to enable searching the include path (eg. for PEAR packages) + * $loader->setUseIncludePath(true); + * + * In this example, if you try to use a class in the Symfony\Component + * namespace or one of its children (Symfony\Component\Console for instance), + * the autoloader will first look for the class under the component/ + * directory, and it will then fallback to the framework/ directory if not + * found before giving up. + * + * This class is loosely based on the Symfony UniversalClassLoader. + * + * @author Fabien Potencier + * @author Jordi Boggiano + * @see https://www.php-fig.org/psr/psr-0/ + * @see https://www.php-fig.org/psr/psr-4/ + */ +class ClassLoader +{ + /** @var ?string */ + private $vendorDir; + + // PSR-4 + /** + * @var array[] + * @psalm-var array> + */ + private $prefixLengthsPsr4 = array(); + /** + * @var array[] + * @psalm-var array> + */ + private $prefixDirsPsr4 = array(); + /** + * @var array[] + * @psalm-var array + */ + private $fallbackDirsPsr4 = array(); + + // PSR-0 + /** + * @var array[] + * @psalm-var array> + */ + private $prefixesPsr0 = array(); + /** + * @var array[] + * @psalm-var array + */ + private $fallbackDirsPsr0 = array(); + + /** @var bool */ + private $useIncludePath = false; + + /** + * @var string[] + * @psalm-var array + */ + private $classMap = array(); + + /** @var bool */ + private $classMapAuthoritative = false; + + /** + * @var bool[] + * @psalm-var array + */ + private $missingClasses = array(); + + /** @var ?string */ + private $apcuPrefix; + + /** + * @var self[] + */ + private static $registeredLoaders = array(); + + /** + * @param ?string $vendorDir + */ + public function __construct($vendorDir = null) + { + $this->vendorDir = $vendorDir; + } + + /** + * @return string[] + */ + public function getPrefixes() + { + if (!empty($this->prefixesPsr0)) { + return call_user_func_array('array_merge', array_values($this->prefixesPsr0)); + } + + return array(); + } + + /** + * @return array[] + * @psalm-return array> + */ + public function getPrefixesPsr4() + { + return $this->prefixDirsPsr4; + } + + /** + * @return array[] + * @psalm-return array + */ + public function getFallbackDirs() + { + return $this->fallbackDirsPsr0; + } + + /** + * @return array[] + * @psalm-return array + */ + public function getFallbackDirsPsr4() + { + return $this->fallbackDirsPsr4; + } + + /** + * @return string[] Array of classname => path + * @psalm-return array + */ + public function getClassMap() + { + return $this->classMap; + } + + /** + * @param string[] $classMap Class to filename map + * @psalm-param array $classMap + * + * @return void + */ + public function addClassMap(array $classMap) + { + if ($this->classMap) { + $this->classMap = array_merge($this->classMap, $classMap); + } else { + $this->classMap = $classMap; + } + } + + /** + * Registers a set of PSR-0 directories for a given prefix, either + * appending or prepending to the ones previously set for this prefix. + * + * @param string $prefix The prefix + * @param string[]|string $paths The PSR-0 root directories + * @param bool $prepend Whether to prepend the directories + * + * @return void + */ + public function add($prefix, $paths, $prepend = false) + { + if (!$prefix) { + if ($prepend) { + $this->fallbackDirsPsr0 = array_merge( + (array) $paths, + $this->fallbackDirsPsr0 + ); + } else { + $this->fallbackDirsPsr0 = array_merge( + $this->fallbackDirsPsr0, + (array) $paths + ); + } + + return; + } + + $first = $prefix[0]; + if (!isset($this->prefixesPsr0[$first][$prefix])) { + $this->prefixesPsr0[$first][$prefix] = (array) $paths; + + return; + } + if ($prepend) { + $this->prefixesPsr0[$first][$prefix] = array_merge( + (array) $paths, + $this->prefixesPsr0[$first][$prefix] + ); + } else { + $this->prefixesPsr0[$first][$prefix] = array_merge( + $this->prefixesPsr0[$first][$prefix], + (array) $paths + ); + } + } + + /** + * Registers a set of PSR-4 directories for a given namespace, either + * appending or prepending to the ones previously set for this namespace. + * + * @param string $prefix The prefix/namespace, with trailing '\\' + * @param string[]|string $paths The PSR-4 base directories + * @param bool $prepend Whether to prepend the directories + * + * @throws \InvalidArgumentException + * + * @return void + */ + public function addPsr4($prefix, $paths, $prepend = false) + { + if (!$prefix) { + // Register directories for the root namespace. + if ($prepend) { + $this->fallbackDirsPsr4 = array_merge( + (array) $paths, + $this->fallbackDirsPsr4 + ); + } else { + $this->fallbackDirsPsr4 = array_merge( + $this->fallbackDirsPsr4, + (array) $paths + ); + } + } elseif (!isset($this->prefixDirsPsr4[$prefix])) { + // Register directories for a new namespace. + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); + } + $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; + $this->prefixDirsPsr4[$prefix] = (array) $paths; + } elseif ($prepend) { + // Prepend directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + (array) $paths, + $this->prefixDirsPsr4[$prefix] + ); + } else { + // Append directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + $this->prefixDirsPsr4[$prefix], + (array) $paths + ); + } + } + + /** + * Registers a set of PSR-0 directories for a given prefix, + * replacing any others previously set for this prefix. + * + * @param string $prefix The prefix + * @param string[]|string $paths The PSR-0 base directories + * + * @return void + */ + public function set($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr0 = (array) $paths; + } else { + $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; + } + } + + /** + * Registers a set of PSR-4 directories for a given namespace, + * replacing any others previously set for this namespace. + * + * @param string $prefix The prefix/namespace, with trailing '\\' + * @param string[]|string $paths The PSR-4 base directories + * + * @throws \InvalidArgumentException + * + * @return void + */ + public function setPsr4($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr4 = (array) $paths; + } else { + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); + } + $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; + $this->prefixDirsPsr4[$prefix] = (array) $paths; + } + } + + /** + * Turns on searching the include path for class files. + * + * @param bool $useIncludePath + * + * @return void + */ + public function setUseIncludePath($useIncludePath) + { + $this->useIncludePath = $useIncludePath; + } + + /** + * Can be used to check if the autoloader uses the include path to check + * for classes. + * + * @return bool + */ + public function getUseIncludePath() + { + return $this->useIncludePath; + } + + /** + * Turns off searching the prefix and fallback directories for classes + * that have not been registered with the class map. + * + * @param bool $classMapAuthoritative + * + * @return void + */ + public function setClassMapAuthoritative($classMapAuthoritative) + { + $this->classMapAuthoritative = $classMapAuthoritative; + } + + /** + * Should class lookup fail if not found in the current class map? + * + * @return bool + */ + public function isClassMapAuthoritative() + { + return $this->classMapAuthoritative; + } + + /** + * APCu prefix to use to cache found/not-found classes, if the extension is enabled. + * + * @param string|null $apcuPrefix + * + * @return void + */ + public function setApcuPrefix($apcuPrefix) + { + $this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null; + } + + /** + * The APCu prefix in use, or null if APCu caching is not enabled. + * + * @return string|null + */ + public function getApcuPrefix() + { + return $this->apcuPrefix; + } + + /** + * Registers this instance as an autoloader. + * + * @param bool $prepend Whether to prepend the autoloader or not + * + * @return void + */ + public function register($prepend = false) + { + spl_autoload_register(array($this, 'loadClass'), true, $prepend); + + if (null === $this->vendorDir) { + return; + } + + if ($prepend) { + self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders; + } else { + unset(self::$registeredLoaders[$this->vendorDir]); + self::$registeredLoaders[$this->vendorDir] = $this; + } + } + + /** + * Unregisters this instance as an autoloader. + * + * @return void + */ + public function unregister() + { + spl_autoload_unregister(array($this, 'loadClass')); + + if (null !== $this->vendorDir) { + unset(self::$registeredLoaders[$this->vendorDir]); + } + } + + /** + * Loads the given class or interface. + * + * @param string $class The name of the class + * @return true|null True if loaded, null otherwise + */ + public function loadClass($class) + { + if ($file = $this->findFile($class)) { + includeFile($file); + + return true; + } + + return null; + } + + /** + * Finds the path to the file where the class is defined. + * + * @param string $class The name of the class + * + * @return string|false The path if found, false otherwise + */ + public function findFile($class) + { + // class map lookup + if (isset($this->classMap[$class])) { + return $this->classMap[$class]; + } + if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { + return false; + } + if (null !== $this->apcuPrefix) { + $file = apcu_fetch($this->apcuPrefix.$class, $hit); + if ($hit) { + return $file; + } + } + + $file = $this->findFileWithExtension($class, '.php'); + + // Search for Hack files if we are running on HHVM + if (false === $file && defined('HHVM_VERSION')) { + $file = $this->findFileWithExtension($class, '.hh'); + } + + if (null !== $this->apcuPrefix) { + apcu_add($this->apcuPrefix.$class, $file); + } + + if (false === $file) { + // Remember that this class does not exist. + $this->missingClasses[$class] = true; + } + + return $file; + } + + /** + * Returns the currently registered loaders indexed by their corresponding vendor directories. + * + * @return self[] + */ + public static function getRegisteredLoaders() + { + return self::$registeredLoaders; + } + + /** + * @param string $class + * @param string $ext + * @return string|false + */ + private function findFileWithExtension($class, $ext) + { + // PSR-4 lookup + $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; + + $first = $class[0]; + if (isset($this->prefixLengthsPsr4[$first])) { + $subPath = $class; + while (false !== $lastPos = strrpos($subPath, '\\')) { + $subPath = substr($subPath, 0, $lastPos); + $search = $subPath . '\\'; + if (isset($this->prefixDirsPsr4[$search])) { + $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1); + foreach ($this->prefixDirsPsr4[$search] as $dir) { + if (file_exists($file = $dir . $pathEnd)) { + return $file; + } + } + } + } + } + + // PSR-4 fallback dirs + foreach ($this->fallbackDirsPsr4 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { + return $file; + } + } + + // PSR-0 lookup + if (false !== $pos = strrpos($class, '\\')) { + // namespaced class name + $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) + . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); + } else { + // PEAR-like class name + $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; + } + + if (isset($this->prefixesPsr0[$first])) { + foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { + if (0 === strpos($class, $prefix)) { + foreach ($dirs as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + } + } + } + + // PSR-0 fallback dirs + foreach ($this->fallbackDirsPsr0 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + + // PSR-0 include paths. + if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { + return $file; + } + + return false; + } +} + +/** + * Scope isolated include. + * + * Prevents access to $this/self from included files. + * + * @param string $file + * @return void + * @private + */ +function includeFile($file) +{ + include $file; +} diff --git a/public_html/2022/newcms/lib/vendor/composer/InstalledVersions.php b/public_html/2022/newcms/lib/vendor/composer/InstalledVersions.php new file mode 100644 index 0000000..c6b54af --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/composer/InstalledVersions.php @@ -0,0 +1,352 @@ + + * Jordi Boggiano + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer; + +use Composer\Autoload\ClassLoader; +use Composer\Semver\VersionParser; + +/** + * This class is copied in every Composer installed project and available to all + * + * See also https://getcomposer.org/doc/07-runtime.md#installed-versions + * + * To require its presence, you can require `composer-runtime-api ^2.0` + * + * @final + */ +class InstalledVersions +{ + /** + * @var mixed[]|null + * @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array}|array{}|null + */ + private static $installed; + + /** + * @var bool|null + */ + private static $canGetVendors; + + /** + * @var array[] + * @psalm-var array}> + */ + private static $installedByVendor = array(); + + /** + * Returns a list of all package names which are present, either by being installed, replaced or provided + * + * @return string[] + * @psalm-return list + */ + public static function getInstalledPackages() + { + $packages = array(); + foreach (self::getInstalled() as $installed) { + $packages[] = array_keys($installed['versions']); + } + + if (1 === \count($packages)) { + return $packages[0]; + } + + return array_keys(array_flip(\call_user_func_array('array_merge', $packages))); + } + + /** + * Returns a list of all package names with a specific type e.g. 'library' + * + * @param string $type + * @return string[] + * @psalm-return list + */ + public static function getInstalledPackagesByType($type) + { + $packagesByType = array(); + + foreach (self::getInstalled() as $installed) { + foreach ($installed['versions'] as $name => $package) { + if (isset($package['type']) && $package['type'] === $type) { + $packagesByType[] = $name; + } + } + } + + return $packagesByType; + } + + /** + * Checks whether the given package is installed + * + * This also returns true if the package name is provided or replaced by another package + * + * @param string $packageName + * @param bool $includeDevRequirements + * @return bool + */ + public static function isInstalled($packageName, $includeDevRequirements = true) + { + foreach (self::getInstalled() as $installed) { + if (isset($installed['versions'][$packageName])) { + return $includeDevRequirements || empty($installed['versions'][$packageName]['dev_requirement']); + } + } + + return false; + } + + /** + * Checks whether the given package satisfies a version constraint + * + * e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call: + * + * Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3') + * + * @param VersionParser $parser Install composer/semver to have access to this class and functionality + * @param string $packageName + * @param string|null $constraint A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package + * @return bool + */ + public static function satisfies(VersionParser $parser, $packageName, $constraint) + { + $constraint = $parser->parseConstraints($constraint); + $provided = $parser->parseConstraints(self::getVersionRanges($packageName)); + + return $provided->matches($constraint); + } + + /** + * Returns a version constraint representing all the range(s) which are installed for a given package + * + * It is easier to use this via isInstalled() with the $constraint argument if you need to check + * whether a given version of a package is installed, and not just whether it exists + * + * @param string $packageName + * @return string Version constraint usable with composer/semver + */ + public static function getVersionRanges($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + $ranges = array(); + if (isset($installed['versions'][$packageName]['pretty_version'])) { + $ranges[] = $installed['versions'][$packageName]['pretty_version']; + } + if (array_key_exists('aliases', $installed['versions'][$packageName])) { + $ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']); + } + if (array_key_exists('replaced', $installed['versions'][$packageName])) { + $ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']); + } + if (array_key_exists('provided', $installed['versions'][$packageName])) { + $ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']); + } + + return implode(' || ', $ranges); + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present + */ + public static function getVersion($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + if (!isset($installed['versions'][$packageName]['version'])) { + return null; + } + + return $installed['versions'][$packageName]['version']; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present + */ + public static function getPrettyVersion($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + if (!isset($installed['versions'][$packageName]['pretty_version'])) { + return null; + } + + return $installed['versions'][$packageName]['pretty_version']; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference + */ + public static function getReference($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + if (!isset($installed['versions'][$packageName]['reference'])) { + return null; + } + + return $installed['versions'][$packageName]['reference']; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as install path. Packages of type metapackages also have a null install path. + */ + public static function getInstallPath($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @return array + * @psalm-return array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool} + */ + public static function getRootPackage() + { + $installed = self::getInstalled(); + + return $installed[0]['root']; + } + + /** + * Returns the raw installed.php data for custom implementations + * + * @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect. + * @return array[] + * @psalm-return array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} + */ + public static function getRawData() + { + @trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED); + + if (null === self::$installed) { + // only require the installed.php file if this file is loaded from its dumped location, + // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937 + if (substr(__DIR__, -8, 1) !== 'C') { + self::$installed = include __DIR__ . '/installed.php'; + } else { + self::$installed = array(); + } + } + + return self::$installed; + } + + /** + * Returns the raw data of all installed.php which are currently loaded for custom implementations + * + * @return array[] + * @psalm-return list}> + */ + public static function getAllRawData() + { + return self::getInstalled(); + } + + /** + * Lets you reload the static array from another file + * + * This is only useful for complex integrations in which a project needs to use + * this class but then also needs to execute another project's autoloader in process, + * and wants to ensure both projects have access to their version of installed.php. + * + * A typical case would be PHPUnit, where it would need to make sure it reads all + * the data it needs from this class, then call reload() with + * `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure + * the project in which it runs can then also use this class safely, without + * interference between PHPUnit's dependencies and the project's dependencies. + * + * @param array[] $data A vendor/composer/installed.php data set + * @return void + * + * @psalm-param array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $data + */ + public static function reload($data) + { + self::$installed = $data; + self::$installedByVendor = array(); + } + + /** + * @return array[] + * @psalm-return list}> + */ + private static function getInstalled() + { + if (null === self::$canGetVendors) { + self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders'); + } + + $installed = array(); + + if (self::$canGetVendors) { + foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) { + if (isset(self::$installedByVendor[$vendorDir])) { + $installed[] = self::$installedByVendor[$vendorDir]; + } elseif (is_file($vendorDir.'/composer/installed.php')) { + $installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php'; + if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) { + self::$installed = $installed[count($installed) - 1]; + } + } + } + } + + if (null === self::$installed) { + // only require the installed.php file if this file is loaded from its dumped location, + // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937 + if (substr(__DIR__, -8, 1) !== 'C') { + self::$installed = require __DIR__ . '/installed.php'; + } else { + self::$installed = array(); + } + } + $installed[] = self::$installed; + + return $installed; + } +} diff --git a/public_html/2022/newcms/lib/vendor/composer/LICENSE b/public_html/2022/newcms/lib/vendor/composer/LICENSE new file mode 100644 index 0000000..f27399a --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/composer/LICENSE @@ -0,0 +1,21 @@ + +Copyright (c) Nils Adermann, Jordi Boggiano + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + diff --git a/public_html/2022/newcms/lib/vendor/composer/autoload_classmap.php b/public_html/2022/newcms/lib/vendor/composer/autoload_classmap.php new file mode 100644 index 0000000..bdc51cd --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/composer/autoload_classmap.php @@ -0,0 +1,11 @@ + $vendorDir . '/composer/InstalledVersions.php', + 'Dompdf\\Cpdf' => $vendorDir . '/dompdf/dompdf/lib/Cpdf.php', +); diff --git a/public_html/2022/newcms/lib/vendor/composer/autoload_namespaces.php b/public_html/2022/newcms/lib/vendor/composer/autoload_namespaces.php new file mode 100644 index 0000000..15a2ff3 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/composer/autoload_namespaces.php @@ -0,0 +1,9 @@ + array($vendorDir . '/phenx/php-svg-lib/src/Svg'), + 'Sabberworm\\CSS\\' => array($vendorDir . '/sabberworm/php-css-parser/src'), + 'PHPMailer\\PHPMailer\\' => array($vendorDir . '/phpmailer/phpmailer/src'), + 'Masterminds\\' => array($vendorDir . '/masterminds/html5/src'), + 'FontLib\\' => array($vendorDir . '/phenx/php-font-lib/src/FontLib'), + 'Dompdf\\' => array($vendorDir . '/dompdf/dompdf/src'), +); diff --git a/public_html/2022/newcms/lib/vendor/composer/autoload_real.php b/public_html/2022/newcms/lib/vendor/composer/autoload_real.php new file mode 100644 index 0000000..9a68ee9 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/composer/autoload_real.php @@ -0,0 +1,38 @@ +register(true); + + return $loader; + } +} diff --git a/public_html/2022/newcms/lib/vendor/composer/autoload_static.php b/public_html/2022/newcms/lib/vendor/composer/autoload_static.php new file mode 100644 index 0000000..00eed2f --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/composer/autoload_static.php @@ -0,0 +1,74 @@ + + array ( + 'Svg\\' => 4, + 'Sabberworm\\CSS\\' => 15, + ), + 'P' => + array ( + 'PHPMailer\\PHPMailer\\' => 20, + ), + 'M' => + array ( + 'Masterminds\\' => 12, + ), + 'F' => + array ( + 'FontLib\\' => 8, + ), + 'D' => + array ( + 'Dompdf\\' => 7, + ), + ); + + public static $prefixDirsPsr4 = array ( + 'Svg\\' => + array ( + 0 => __DIR__ . '/..' . '/phenx/php-svg-lib/src/Svg', + ), + 'Sabberworm\\CSS\\' => + array ( + 0 => __DIR__ . '/..' . '/sabberworm/php-css-parser/src', + ), + 'PHPMailer\\PHPMailer\\' => + array ( + 0 => __DIR__ . '/..' . '/phpmailer/phpmailer/src', + ), + 'Masterminds\\' => + array ( + 0 => __DIR__ . '/..' . '/masterminds/html5/src', + ), + 'FontLib\\' => + array ( + 0 => __DIR__ . '/..' . '/phenx/php-font-lib/src/FontLib', + ), + 'Dompdf\\' => + array ( + 0 => __DIR__ . '/..' . '/dompdf/dompdf/src', + ), + ); + + public static $classMap = array ( + 'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php', + 'Dompdf\\Cpdf' => __DIR__ . '/..' . '/dompdf/dompdf/lib/Cpdf.php', + ); + + public static function getInitializer(ClassLoader $loader) + { + return \Closure::bind(function () use ($loader) { + $loader->prefixLengthsPsr4 = ComposerStaticInitd10fffbd3f34c3c8f4b42b1af07fac02::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInitd10fffbd3f34c3c8f4b42b1af07fac02::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInitd10fffbd3f34c3c8f4b42b1af07fac02::$classMap; + + }, null, ClassLoader::class); + } +} diff --git a/public_html/2022/newcms/lib/vendor/composer/installed.json b/public_html/2022/newcms/lib/vendor/composer/installed.json new file mode 100644 index 0000000..99e289f --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/composer/installed.json @@ -0,0 +1,378 @@ +{ + "packages": [ + { + "name": "dompdf/dompdf", + "version": "v2.0.1", + "version_normalized": "2.0.1.0", + "source": { + "type": "git", + "url": "https://github.com/dompdf/dompdf.git", + "reference": "c5310df0e22c758c85ea5288175fc6cd777bc085" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dompdf/dompdf/zipball/c5310df0e22c758c85ea5288175fc6cd777bc085", + "reference": "c5310df0e22c758c85ea5288175fc6cd777bc085", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-mbstring": "*", + "masterminds/html5": "^2.0", + "phenx/php-font-lib": ">=0.5.4 <1.0.0", + "phenx/php-svg-lib": ">=0.3.3 <1.0.0", + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "ext-json": "*", + "ext-zip": "*", + "mockery/mockery": "^1.3", + "phpunit/phpunit": "^7.5 || ^8 || ^9", + "squizlabs/php_codesniffer": "^3.5" + }, + "suggest": { + "ext-gd": "Needed to process images", + "ext-gmagick": "Improves image processing performance", + "ext-imagick": "Improves image processing performance", + "ext-zlib": "Needed for pdf stream compression" + }, + "time": "2022-09-22T13:43:41+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "Dompdf\\": "src/" + }, + "classmap": [ + "lib/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1" + ], + "authors": [ + { + "name": "The Dompdf Community", + "homepage": "https://github.com/dompdf/dompdf/blob/master/AUTHORS.md" + } + ], + "description": "DOMPDF is a CSS 2.1 compliant HTML to PDF converter", + "homepage": "https://github.com/dompdf/dompdf", + "support": { + "issues": "https://github.com/dompdf/dompdf/issues", + "source": "https://github.com/dompdf/dompdf/tree/v2.0.1" + }, + "install-path": "../dompdf/dompdf" + }, + { + "name": "masterminds/html5", + "version": "2.7.6", + "version_normalized": "2.7.6.0", + "source": { + "type": "git", + "url": "https://github.com/Masterminds/html5-php.git", + "reference": "897eb517a343a2281f11bc5556d6548db7d93947" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/897eb517a343a2281f11bc5556d6548db7d93947", + "reference": "897eb517a343a2281f11bc5556d6548db7d93947", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "ext-dom": "*", + "ext-libxml": "*", + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7.21 || ^6 || ^7" + }, + "time": "2022-08-18T16:18:26+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Masterminds\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Matt Butcher", + "email": "technosophos@gmail.com" + }, + { + "name": "Matt Farina", + "email": "matt@mattfarina.com" + }, + { + "name": "Asmir Mustafic", + "email": "goetas@gmail.com" + } + ], + "description": "An HTML5 parser and serializer.", + "homepage": "http://masterminds.github.io/html5-php", + "keywords": [ + "HTML5", + "dom", + "html", + "parser", + "querypath", + "serializer", + "xml" + ], + "support": { + "issues": "https://github.com/Masterminds/html5-php/issues", + "source": "https://github.com/Masterminds/html5-php/tree/2.7.6" + }, + "install-path": "../masterminds/html5" + }, + { + "name": "phenx/php-font-lib", + "version": "0.5.4", + "version_normalized": "0.5.4.0", + "source": { + "type": "git", + "url": "https://github.com/dompdf/php-font-lib.git", + "reference": "dd448ad1ce34c63d09baccd05415e361300c35b4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dompdf/php-font-lib/zipball/dd448ad1ce34c63d09baccd05415e361300c35b4", + "reference": "dd448ad1ce34c63d09baccd05415e361300c35b4", + "shasum": "" + }, + "require": { + "ext-mbstring": "*" + }, + "require-dev": { + "symfony/phpunit-bridge": "^3 || ^4 || ^5" + }, + "time": "2021-12-17T19:44:54+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "FontLib\\": "src/FontLib" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0" + ], + "authors": [ + { + "name": "Fabien Ménager", + "email": "fabien.menager@gmail.com" + } + ], + "description": "A library to read, parse, export and make subsets of different types of font files.", + "homepage": "https://github.com/PhenX/php-font-lib", + "support": { + "issues": "https://github.com/dompdf/php-font-lib/issues", + "source": "https://github.com/dompdf/php-font-lib/tree/0.5.4" + }, + "install-path": "../phenx/php-font-lib" + }, + { + "name": "phenx/php-svg-lib", + "version": "0.5.0", + "version_normalized": "0.5.0.0", + "source": { + "type": "git", + "url": "https://github.com/dompdf/php-svg-lib.git", + "reference": "76876c6cf3080bcb6f249d7d59705108166a6685" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dompdf/php-svg-lib/zipball/76876c6cf3080bcb6f249d7d59705108166a6685", + "reference": "76876c6cf3080bcb6f249d7d59705108166a6685", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "php": "^7.1 || ^8.0", + "sabberworm/php-css-parser": "^8.4" + }, + "require-dev": { + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5" + }, + "time": "2022-09-06T12:16:56+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "Svg\\": "src/Svg" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0" + ], + "authors": [ + { + "name": "Fabien Ménager", + "email": "fabien.menager@gmail.com" + } + ], + "description": "A library to read, parse and export to PDF SVG files.", + "homepage": "https://github.com/PhenX/php-svg-lib", + "support": { + "issues": "https://github.com/dompdf/php-svg-lib/issues", + "source": "https://github.com/dompdf/php-svg-lib/tree/0.5.0" + }, + "install-path": "../phenx/php-svg-lib" + }, + { + "name": "phpmailer/phpmailer", + "version": "v6.7.1", + "version_normalized": "6.7.1.0", + "source": { + "type": "git", + "url": "https://github.com/PHPMailer/PHPMailer.git", + "reference": "49cd7ea3d2563f028d7811f06864a53b1f15ff55" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/49cd7ea3d2563f028d7811f06864a53b1f15ff55", + "reference": "49cd7ea3d2563f028d7811f06864a53b1f15ff55", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "ext-filter": "*", + "ext-hash": "*", + "php": ">=5.5.0" + }, + "require-dev": { + "dealerdirect/phpcodesniffer-composer-installer": "^0.7.2", + "doctrine/annotations": "^1.2.6 || ^1.13.3", + "php-parallel-lint/php-console-highlighter": "^1.0.0", + "php-parallel-lint/php-parallel-lint": "^1.3.2", + "phpcompatibility/php-compatibility": "^9.3.5", + "roave/security-advisories": "dev-latest", + "squizlabs/php_codesniffer": "^3.7.1", + "yoast/phpunit-polyfills": "^1.0.4" + }, + "suggest": { + "ext-mbstring": "Needed to send email in multibyte encoding charset or decode encoded addresses", + "ext-openssl": "Needed for secure SMTP sending and DKIM signing", + "greew/oauth2-azure-provider": "Needed for Microsoft Azure XOAUTH2 authentication", + "hayageek/oauth2-yahoo": "Needed for Yahoo XOAUTH2 authentication", + "league/oauth2-google": "Needed for Google XOAUTH2 authentication", + "psr/log": "For optional PSR-3 debug logging", + "symfony/polyfill-mbstring": "To support UTF-8 if the Mbstring PHP extension is not enabled (^1.2)", + "thenetworg/oauth2-azure": "Needed for Microsoft XOAUTH2 authentication" + }, + "time": "2022-12-08T13:30:06+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "PHPMailer\\PHPMailer\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1-only" + ], + "authors": [ + { + "name": "Marcus Bointon", + "email": "phpmailer@synchromedia.co.uk" + }, + { + "name": "Jim Jagielski", + "email": "jimjag@gmail.com" + }, + { + "name": "Andy Prevost", + "email": "codeworxtech@users.sourceforge.net" + }, + { + "name": "Brent R. Matzelle" + } + ], + "description": "PHPMailer is a full-featured email creation and transfer class for PHP", + "support": { + "issues": "https://github.com/PHPMailer/PHPMailer/issues", + "source": "https://github.com/PHPMailer/PHPMailer/tree/v6.7.1" + }, + "funding": [ + { + "url": "https://github.com/Synchro", + "type": "github" + } + ], + "install-path": "../phpmailer/phpmailer" + }, + { + "name": "sabberworm/php-css-parser", + "version": "8.4.0", + "version_normalized": "8.4.0.0", + "source": { + "type": "git", + "url": "https://github.com/sabberworm/PHP-CSS-Parser.git", + "reference": "e41d2140031d533348b2192a83f02d8dd8a71d30" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sabberworm/PHP-CSS-Parser/zipball/e41d2140031d533348b2192a83f02d8dd8a71d30", + "reference": "e41d2140031d533348b2192a83f02d8dd8a71d30", + "shasum": "" + }, + "require": { + "ext-iconv": "*", + "php": ">=5.6.20" + }, + "require-dev": { + "codacy/coverage": "^1.4", + "phpunit/phpunit": "^4.8.36" + }, + "suggest": { + "ext-mbstring": "for parsing UTF-8 CSS" + }, + "time": "2021-12-11T13:40:54+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "Sabberworm\\CSS\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Raphael Schweikert" + } + ], + "description": "Parser for CSS Files written in PHP", + "homepage": "https://www.sabberworm.com/blog/2010/6/10/php-css-parser", + "keywords": [ + "css", + "parser", + "stylesheet" + ], + "support": { + "issues": "https://github.com/sabberworm/PHP-CSS-Parser/issues", + "source": "https://github.com/sabberworm/PHP-CSS-Parser/tree/8.4.0" + }, + "install-path": "../sabberworm/php-css-parser" + } + ], + "dev": true, + "dev-package-names": [] +} diff --git a/public_html/2022/newcms/lib/vendor/composer/installed.php b/public_html/2022/newcms/lib/vendor/composer/installed.php new file mode 100644 index 0000000..4340780 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/composer/installed.php @@ -0,0 +1,77 @@ + array( + 'name' => '__root__', + 'pretty_version' => '1.0.0+no-version-set', + 'version' => '1.0.0.0', + 'reference' => NULL, + 'type' => 'library', + 'install_path' => __DIR__ . '/../../', + 'aliases' => array(), + 'dev' => true, + ), + 'versions' => array( + '__root__' => array( + 'pretty_version' => '1.0.0+no-version-set', + 'version' => '1.0.0.0', + 'reference' => NULL, + 'type' => 'library', + 'install_path' => __DIR__ . '/../../', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'dompdf/dompdf' => array( + 'pretty_version' => 'v2.0.1', + 'version' => '2.0.1.0', + 'reference' => 'c5310df0e22c758c85ea5288175fc6cd777bc085', + 'type' => 'library', + 'install_path' => __DIR__ . '/../dompdf/dompdf', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'masterminds/html5' => array( + 'pretty_version' => '2.7.6', + 'version' => '2.7.6.0', + 'reference' => '897eb517a343a2281f11bc5556d6548db7d93947', + 'type' => 'library', + 'install_path' => __DIR__ . '/../masterminds/html5', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'phenx/php-font-lib' => array( + 'pretty_version' => '0.5.4', + 'version' => '0.5.4.0', + 'reference' => 'dd448ad1ce34c63d09baccd05415e361300c35b4', + 'type' => 'library', + 'install_path' => __DIR__ . '/../phenx/php-font-lib', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'phenx/php-svg-lib' => array( + 'pretty_version' => '0.5.0', + 'version' => '0.5.0.0', + 'reference' => '76876c6cf3080bcb6f249d7d59705108166a6685', + 'type' => 'library', + 'install_path' => __DIR__ . '/../phenx/php-svg-lib', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'phpmailer/phpmailer' => array( + 'pretty_version' => 'v6.7.1', + 'version' => '6.7.1.0', + 'reference' => '49cd7ea3d2563f028d7811f06864a53b1f15ff55', + 'type' => 'library', + 'install_path' => __DIR__ . '/../phpmailer/phpmailer', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'sabberworm/php-css-parser' => array( + 'pretty_version' => '8.4.0', + 'version' => '8.4.0.0', + 'reference' => 'e41d2140031d533348b2192a83f02d8dd8a71d30', + 'type' => 'library', + 'install_path' => __DIR__ . '/../sabberworm/php-css-parser', + 'aliases' => array(), + 'dev_requirement' => false, + ), + ), +); diff --git a/public_html/2022/newcms/lib/vendor/composer/platform_check.php b/public_html/2022/newcms/lib/vendor/composer/platform_check.php new file mode 100644 index 0000000..6d3407d --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/composer/platform_check.php @@ -0,0 +1,26 @@ += 70100)) { + $issues[] = 'Your Composer dependencies require a PHP version ">= 7.1.0". You are running ' . PHP_VERSION . '.'; +} + +if ($issues) { + if (!headers_sent()) { + header('HTTP/1.1 500 Internal Server Error'); + } + if (!ini_get('display_errors')) { + if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') { + fwrite(STDERR, 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . implode(PHP_EOL, $issues) . PHP_EOL.PHP_EOL); + } elseif (!headers_sent()) { + echo 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . str_replace('You are running '.PHP_VERSION.'.', '', implode(PHP_EOL, $issues)) . PHP_EOL.PHP_EOL; + } + } + trigger_error( + 'Composer detected issues in your platform: ' . implode(' ', $issues), + E_USER_ERROR + ); +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/AUTHORS.md b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/AUTHORS.md new file mode 100644 index 0000000..6861479 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/AUTHORS.md @@ -0,0 +1,24 @@ +Dompdf was designed and developed by Benj Carson. + +### Current Team + +* **Brian Sweeney** (maintainer) +* **Till Berger** + +### Alumni + +* **Benj Carson** (creator) +* **Fabien Ménager** +* **Simon Berger** +* **Orion Richardson** + +### Contributors +* **Gabriel Bull** +* **Barry vd. Heuvel** +* **Ryan H. Masten** +* **Helmut Tischer** +* [and many more...](https://github.com/dompdf/dompdf/graphs/contributors) + +### Thanks + +Dompdf would not have been possible without strong community support. diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/LICENSE.LGPL b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/LICENSE.LGPL new file mode 100644 index 0000000..6ef5de8 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/LICENSE.LGPL @@ -0,0 +1,456 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. \ No newline at end of file diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/README.md b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/README.md new file mode 100644 index 0000000..7546e80 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/README.md @@ -0,0 +1,232 @@ +Dompdf +====== + +[![Build Status](https://github.com/dompdf/dompdf/actions/workflows/test.yml/badge.svg)](https://github.com/dompdf/dompdf/actions/workflows/test.yml) +[![Latest Release](https://poser.pugx.org/dompdf/dompdf/v/stable.png)](https://packagist.org/packages/dompdf/dompdf) +[![Total Downloads](https://poser.pugx.org/dompdf/dompdf/downloads.png)](https://packagist.org/packages/dompdf/dompdf) +[![License](https://poser.pugx.org/dompdf/dompdf/license.png)](https://packagist.org/packages/dompdf/dompdf) + +**Dompdf is an HTML to PDF converter** + +At its heart, dompdf is (mostly) a [CSS 2.1](http://www.w3.org/TR/CSS2/) compliant +HTML layout and rendering engine written in PHP. It is a style-driven renderer: +it will download and read external stylesheets, inline style tags, and the style +attributes of individual HTML elements. It also supports most presentational +HTML attributes. + +*This document applies to the latest stable code which may not reflect the current +release. For released code please +[navigate to the appropriate tag](https://github.com/dompdf/dompdf/tags).* + +---- + +**Check out the [demo](http://eclecticgeek.com/dompdf/debug.php) and ask any +question on [StackOverflow](https://stackoverflow.com/questions/tagged/dompdf) or +in [Discussions](https://github.com/dompdf/dompdf/discussions).** + +Follow us on [![Twitter](http://twitter-badges.s3.amazonaws.com/twitter-a.png)](http://www.twitter.com/dompdf). + +--- + + + +## Features + + * Handles most CSS 2.1 and a few CSS3 properties, including @import, @media & + @page rules + * Supports most presentational HTML 4.0 attributes + * Supports external stylesheets, either local or through http/ftp (via + fopen-wrappers) + * Supports complex tables, including row & column spans, separate & collapsed + border models, individual cell styling + * Image support (gif, png (8, 24 and 32 bit with alpha channel), bmp & jpeg) + * No dependencies on external PDF libraries, thanks to the R&OS PDF class + * Inline PHP support + * Basic SVG support (see "Limitations" below) + +## Requirements + + * PHP version 7.1 or higher + * DOM extension + * MBString extension + * php-font-lib + * php-svg-lib + +Note that some required dependencies may have further dependencies +(notably php-svg-lib requires sabberworm/php-css-parser). + +### Recommendations + + * OPcache (OPcache, XCache, APC, etc.): improves performance + * GD (for image processing) + * IMagick or GMagick extension: improves image processing performance + +Visit the wiki for more information: +https://github.com/dompdf/dompdf/wiki/Requirements + +## About Fonts & Character Encoding + +PDF documents internally support the following fonts: Helvetica, Times-Roman, +Courier, Zapf-Dingbats, & Symbol. These fonts only support Windows ANSI +encoding. In order for a PDF to display characters that are not available in +Windows ANSI, you must supply an external font. Dompdf will embed any referenced +font in the PDF so long as it has been pre-loaded or is accessible to dompdf and +reference in CSS @font-face rules. See the +[font overview](https://github.com/dompdf/dompdf/wiki/About-Fonts-and-Character-Encoding) +for more information on how to use fonts. + +The [DejaVu TrueType fonts](https://dejavu-fonts.github.io/) have been pre-installed +to give dompdf decent Unicode character coverage by default. To use the DejaVu +fonts reference the font in your stylesheet, e.g. `body { font-family: DejaVu +Sans; }` (for DejaVu Sans). The following DejaVu 2.34 fonts are available: +DejaVu Sans, DejaVu Serif, and DejaVu Sans Mono. + +## Easy Installation + +### Install with composer + +To install with [Composer](https://getcomposer.org/), simply require the +latest version of this package. + +```bash +composer require dompdf/dompdf +``` + +Make sure that the autoload file from Composer is loaded. + +```php +// somewhere early in your project's loading, require the Composer autoloader +// see: http://getcomposer.org/doc/00-intro.md +require 'vendor/autoload.php'; + +``` + +### Download and install + +Download a packaged archive of dompdf and extract it into the +directory where dompdf will reside + + * You can download stable copies of dompdf from + https://github.com/dompdf/dompdf/releases + * Or download a nightly (the latest, unreleased code) from + http://eclecticgeek.com/dompdf + +Use the packaged release autoloader to load dompdf, libraries, +and helper functions in your PHP: + +```php +// include autoloader +require_once 'dompdf/autoload.inc.php'; +``` + +Note: packaged releases are named according using semantic +versioning (_dompdf_MAJOR-MINOR-PATCH.zip_). So the 1.0.0 +release would be dompdf_1-0-0.zip. This is the only download +that includes the autoloader for Dompdf and all its dependencies. + +### Install with git + +From the command line, switch to the directory where dompdf will +reside and run the following commands: + +```sh +git clone https://github.com/dompdf/dompdf.git +cd dompdf/lib + +git clone https://github.com/PhenX/php-font-lib.git php-font-lib +cd php-font-lib +git checkout 0.5.1 +cd .. + +git clone https://github.com/PhenX/php-svg-lib.git php-svg-lib +cd php-svg-lib +git checkout v0.3.2 +cd .. + +git clone https://github.com/sabberworm/PHP-CSS-Parser.git php-css-parser +cd php-css-parser +git checkout 8.1.0 +``` + +Require dompdf and it's dependencies in your PHP. +For details see the [autoloader in the utils project](https://github.com/dompdf/utils/blob/master/autoload.inc.php). + +## Quick Start + +Just pass your HTML in to dompdf and stream the output: + +```php +// reference the Dompdf namespace +use Dompdf\Dompdf; + +// instantiate and use the dompdf class +$dompdf = new Dompdf(); +$dompdf->loadHtml('hello world'); + +// (Optional) Setup the paper size and orientation +$dompdf->setPaper('A4', 'landscape'); + +// Render the HTML as PDF +$dompdf->render(); + +// Output the generated PDF to Browser +$dompdf->stream(); +``` + +### Setting Options + +Set options during dompdf instantiation: + +```php +use Dompdf\Dompdf; +use Dompdf\Options; + +$options = new Options(); +$options->set('defaultFont', 'Courier'); +$dompdf = new Dompdf($options); +``` + +or at run time + +```php +use Dompdf\Dompdf; + +$dompdf = new Dompdf(); +$options = $dompdf->getOptions(); +$options->setDefaultFont('Courier'); +$dompdf->setOptions($options); +``` + +See [Dompdf\Options](src/Options.php) for a list of available options. + +### Resource Reference Requirements + +In order to protect potentially sensitive information Dompdf imposes +restrictions on files referenced from the local file system or the web. + +Files accessed through web-based protocols have the following requirements: + * The Dompdf option "isRemoteEnabled" must be set to "true" + * PHP must either have the curl extension enabled or the + allow_url_fopen setting set to true + +Files accessed through the local file system have the following requirement: + * The file must fall within the path(s) specified for the Dompdf "chroot" option + +## Limitations (Known Issues) + + * Table cells are not pageable, meaning a table row must fit on a single page. + * Elements are rendered on the active page when they are parsed. + * Embedding "raw" SVG's (``) isn't working yet, you need to + either link to an external SVG file, or use a DataURI like this: + ```php + $html = ''; + ``` + Watch https://github.com/dompdf/dompdf/issues/320 for progress + * Does not support CSS flexbox. + * Does not support CSS Grid. +--- + +[![Donate button](https://www.paypal.com/en_US/i/btn/btn_donate_SM.gif)](http://goo.gl/DSvWf) + +*If you find this project useful, please consider making a donation. +Any funds donated will be used to help further development on this project.)* diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/VERSION b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/VERSION new file mode 100644 index 0000000..38f77a6 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/VERSION @@ -0,0 +1 @@ +2.0.1 diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/composer.json b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/composer.json new file mode 100644 index 0000000..268a81e --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/composer.json @@ -0,0 +1,47 @@ +{ + "name": "dompdf/dompdf", + "type": "library", + "description": "DOMPDF is a CSS 2.1 compliant HTML to PDF converter", + "homepage": "https://github.com/dompdf/dompdf", + "license": "LGPL-2.1", + "authors": [ + { + "name": "The Dompdf Community", + "homepage": "https://github.com/dompdf/dompdf/blob/master/AUTHORS.md" + } + ], + "autoload": { + "psr-4": { + "Dompdf\\": "src/" + }, + "classmap": [ + "lib/" + ] + }, + "autoload-dev": { + "psr-4": { + "Dompdf\\Tests\\": "tests/" + } + }, + "require": { + "php": "^7.1 || ^8.0", + "ext-dom": "*", + "ext-mbstring": "*", + "masterminds/html5": "^2.0", + "phenx/php-font-lib": ">=0.5.4 <1.0.0", + "phenx/php-svg-lib": ">=0.3.3 <1.0.0" + }, + "require-dev": { + "ext-json": "*", + "ext-zip": "*", + "phpunit/phpunit": "^7.5 || ^8 || ^9", + "squizlabs/php_codesniffer": "^3.5", + "mockery/mockery": "^1.3" + }, + "suggest": { + "ext-gd": "Needed to process images", + "ext-imagick": "Improves image processing performance", + "ext-gmagick": "Improves image processing performance", + "ext-zlib": "Needed for pdf stream compression" + } +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/Cpdf.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/Cpdf.php new file mode 100644 index 0000000..9d87d65 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/Cpdf.php @@ -0,0 +1,6501 @@ + "Normal", "opacity" => 1.0]; + + /** + * array Current fill transparency (partial graphics state) + */ + public $currentFillTransparency = ["mode" => "Normal", "opacity" => 1.0]; + + /** + * @var array An array which is used to save the state of the document, mainly the colors and styles + * it is used to temporarily change to another state, then change back to what it was before + */ + public $stateStack = []; + + /** + * @var integer Number of elements within the state stack + */ + public $nStateStack = 0; + + /** + * @var integer Number of page objects within the document + */ + public $numPages = 0; + + /** + * @var array Object Id storage stack + */ + public $stack = []; + + /** + * @var integer Number of elements within the object Id storage stack + */ + public $nStack = 0; + + /** + * an array which contains information about the objects which are not firmly attached to pages + * these have been added with the addObject function + */ + public $looseObjects = []; + + /** + * array contains information about how the loose objects are to be added to the document + */ + public $addLooseObjects = []; + + /** + * @var integer The objectId of the information object for the document + * this contains authorship, title etc. + */ + public $infoObject = 0; + + /** + * @var integer Number of images being tracked within the document + */ + public $numImages = 0; + + /** + * @var array An array containing options about the document + * it defaults to turning on the compression of the objects + */ + public $options = ['compression' => true]; + + /** + * @var integer The objectId of the first page of the document + */ + public $firstPageId; + + /** + * @var integer The object Id of the procset object + */ + public $procsetObjectId; + + /** + * @var array Store the information about the relationship between font families + * this used so that the code knows which font is the bold version of another font, etc. + * the value of this array is initialised in the constructor function. + */ + public $fontFamilies = []; + + /** + * @var string Folder for php serialized formats of font metrics files. + * If empty string, use same folder as original metrics files. + * This can be passed in from class creator. + * If this folder does not exist or is not writable, Cpdf will be **much** slower. + * Because of potential trouble with php safe mode, folder cannot be created at runtime. + */ + public $fontcache = ''; + + /** + * @var integer The version of the font metrics cache file. + * This value must be manually incremented whenever the internal font data structure is modified. + */ + public $fontcacheVersion = 6; + + /** + * @var string Temporary folder. + * If empty string, will attempt system tmp folder. + * This can be passed in from class creator. + */ + public $tmp = ''; + + /** + * @var string Track if the current font is bolded or italicised + */ + public $currentTextState = ''; + + /** + * @var string Messages are stored here during processing, these can be selected afterwards to give some useful debug information + */ + public $messages = ''; + + /** + * @var string The encryption array for the document encryption is stored here + */ + public $arc4 = ''; + + /** + * @var integer The object Id of the encryption information + */ + public $arc4_objnum = 0; + + /** + * @var string The file identifier, used to uniquely identify a pdf document + */ + public $fileIdentifier = ''; + + /** + * @var boolean A flag to say if a document is to be encrypted or not + */ + public $encrypted = false; + + /** + * @var string The encryption key for the encryption of all the document content (structure is not encrypted) + */ + public $encryptionKey = ''; + + /** + * @var array Array which forms a stack to keep track of nested callback functions + */ + public $callback = []; + + /** + * @var integer The number of callback functions in the callback array + */ + public $nCallback = 0; + + /** + * @var array Store label->id pairs for named destinations, these will be used to replace internal links + * done this way so that destinations can be defined after the location that links to them + */ + public $destinations = []; + + /** + * @var array Store the stack for the transaction commands, each item in here is a record of the values of all the + * publiciables within the class, so that the user can rollback at will (from each 'start' command) + * note that this includes the objects array, so these can be large. + */ + public $checkpoint = ''; + + /** + * @var array Table of Image origin filenames and image labels which were already added with o_image(). + * Allows to merge identical images + */ + public $imagelist = []; + + /** + * @var array Table of already added alpha and plain image files for transparent PNG images. + */ + protected $imageAlphaList = []; + + /** + * @var array List of temporary image files to be deleted after processing. + */ + protected $imageCache = []; + + /** + * @var boolean Whether the text passed in should be treated as Unicode or just local character set. + */ + public $isUnicode = false; + + /** + * @var string the JavaScript code of the document + */ + public $javascript = ''; + + /** + * @var boolean whether the compression is possible + */ + protected $compressionReady = false; + + /** + * @var array Current page size + */ + protected $currentPageSize = ["width" => 0, "height" => 0]; + + /** + * @var array All the chars that will be required in the font subsets + */ + protected $stringSubsets = []; + + /** + * @var string The target internal encoding + */ + protected static $targetEncoding = 'Windows-1252'; + + /** + * @var array + */ + protected $byteRange = array(); + + /** + * @var array The list of the core fonts + */ + protected static $coreFonts = [ + 'courier', + 'courier-bold', + 'courier-oblique', + 'courier-boldoblique', + 'helvetica', + 'helvetica-bold', + 'helvetica-oblique', + 'helvetica-boldoblique', + 'times-roman', + 'times-bold', + 'times-italic', + 'times-bolditalic', + 'symbol', + 'zapfdingbats' + ]; + + /** + * Class constructor + * This will start a new document + * + * @param array $pageSize Array of 4 numbers, defining the bottom left and upper right corner of the page. first two are normally zero. + * @param boolean $isUnicode Whether text will be treated as Unicode or not. + * @param string $fontcache The font cache folder + * @param string $tmp The temporary folder + */ + function __construct($pageSize = [0, 0, 612, 792], $isUnicode = false, $fontcache = '', $tmp = '') + { + $this->isUnicode = $isUnicode; + $this->fontcache = rtrim($fontcache, DIRECTORY_SEPARATOR."/\\"); + $this->tmp = ($tmp !== '' ? $tmp : sys_get_temp_dir()); + $this->newDocument($pageSize); + + $this->compressionReady = function_exists('gzcompress'); + + if (in_array('Windows-1252', mb_list_encodings())) { + self::$targetEncoding = 'Windows-1252'; + } + + // also initialize the font families that are known about already + $this->setFontFamily('init'); + } + + public function __destruct() + { + foreach ($this->imageCache as $file) { + if (file_exists($file)) { + unlink($file); + } + } + } + + /** + * Document object methods (internal use only) + * + * There is about one object method for each type of object in the pdf document + * Each function has the same call list ($id,$action,$options). + * $id = the object ID of the object, or what it is to be if it is being created + * $action = a string specifying the action to be performed, though ALL must support: + * 'new' - create the object with the id $id + * 'out' - produce the output for the pdf object + * $options = optional, a string or array containing the various parameters for the object + * + * These, in conjunction with the output function are the ONLY way for output to be produced + * within the pdf 'file'. + */ + + /** + * Destination object, used to specify the location for the user to jump to, presently on opening + * + * @param $id + * @param $action + * @param string $options + * @return string|null + */ + protected function o_destination($id, $action, $options = '') + { + switch ($action) { + case 'new': + $this->objects[$id] = ['t' => 'destination', 'info' => []]; + $tmp = ''; + switch ($options['type']) { + case 'XYZ': + /** @noinspection PhpMissingBreakStatementInspection */ + case 'FitR': + $tmp = ' ' . $options['p3'] . $tmp; + case 'FitH': + case 'FitV': + case 'FitBH': + /** @noinspection PhpMissingBreakStatementInspection */ + case 'FitBV': + $tmp = ' ' . $options['p1'] . ' ' . $options['p2'] . $tmp; + case 'Fit': + case 'FitB': + $tmp = $options['type'] . $tmp; + $this->objects[$id]['info']['string'] = $tmp; + $this->objects[$id]['info']['page'] = $options['page']; + } + break; + + case 'out': + $o = &$this->objects[$id]; + + $tmp = $o['info']; + $res = "\n$id 0 obj\n" . '[' . $tmp['page'] . ' 0 R /' . $tmp['string'] . "]\nendobj"; + + return $res; + } + + return null; + } + + /** + * set the viewer preferences + * + * @param $id + * @param $action + * @param string|array $options + * @return string|null + */ + protected function o_viewerPreferences($id, $action, $options = '') + { + switch ($action) { + case 'new': + $this->objects[$id] = ['t' => 'viewerPreferences', 'info' => []]; + break; + + case 'add': + $o = &$this->objects[$id]; + + foreach ($options as $k => $v) { + switch ($k) { + // Boolean keys + case 'HideToolbar': + case 'HideMenubar': + case 'HideWindowUI': + case 'FitWindow': + case 'CenterWindow': + case 'DisplayDocTitle': + case 'PickTrayByPDFSize': + $o['info'][$k] = (bool)$v; + break; + + // Integer keys + case 'NumCopies': + $o['info'][$k] = (int)$v; + break; + + // Name keys + case 'ViewArea': + case 'ViewClip': + case 'PrintClip': + case 'PrintArea': + $o['info'][$k] = (string)$v; + break; + + // Named with limited valid values + case 'NonFullScreenPageMode': + if (!in_array($v, ['UseNone', 'UseOutlines', 'UseThumbs', 'UseOC'])) { + break; + } + $o['info'][$k] = $v; + break; + + case 'Direction': + if (!in_array($v, ['L2R', 'R2L'])) { + break; + } + $o['info'][$k] = $v; + break; + + case 'PrintScaling': + if (!in_array($v, ['None', 'AppDefault'])) { + break; + } + $o['info'][$k] = $v; + break; + + case 'Duplex': + if (!in_array($v, ['None', 'Simplex', 'DuplexFlipShortEdge', 'DuplexFlipLongEdge'])) { + break; + } + $o['info'][$k] = $v; + break; + + // Integer array + case 'PrintPageRange': + // Cast to integer array + foreach ($v as $vK => $vV) { + $v[$vK] = (int)$vV; + } + $o['info'][$k] = array_values($v); + break; + } + } + break; + + case 'out': + $o = &$this->objects[$id]; + $res = "\n$id 0 obj\n<< "; + + foreach ($o['info'] as $k => $v) { + if (is_string($v)) { + $v = '/' . $v; + } elseif (is_int($v)) { + $v = (string) $v; + } elseif (is_bool($v)) { + $v = ($v ? 'true' : 'false'); + } elseif (is_array($v)) { + $v = '[' . implode(' ', $v) . ']'; + } + $res .= "\n/$k $v"; + } + $res .= "\n>>\nendobj"; + + return $res; + } + + return null; + } + + /** + * define the document catalog, the overall controller for the document + * + * @param $id + * @param $action + * @param string|array $options + * @return string|null + */ + protected function o_catalog($id, $action, $options = '') + { + if ($action !== 'new') { + $o = &$this->objects[$id]; + } + + switch ($action) { + case 'new': + $this->objects[$id] = ['t' => 'catalog', 'info' => []]; + $this->catalogId = $id; + break; + + case 'acroform': + case 'outlines': + case 'pages': + case 'openHere': + case 'names': + $o['info'][$action] = $options; + break; + + case 'viewerPreferences': + if (!isset($o['info']['viewerPreferences'])) { + $this->numObj++; + $this->o_viewerPreferences($this->numObj, 'new'); + $o['info']['viewerPreferences'] = $this->numObj; + } + + $vp = $o['info']['viewerPreferences']; + $this->o_viewerPreferences($vp, 'add', $options); + + break; + + case 'out': + $res = "\n$id 0 obj\n<< /Type /Catalog"; + + foreach ($o['info'] as $k => $v) { + switch ($k) { + case 'outlines': + $res .= "\n/Outlines $v 0 R"; + break; + + case 'pages': + $res .= "\n/Pages $v 0 R"; + break; + + case 'viewerPreferences': + $res .= "\n/ViewerPreferences $v 0 R"; + break; + + case 'openHere': + $res .= "\n/OpenAction $v 0 R"; + break; + + case 'names': + $res .= "\n/Names $v 0 R"; + break; + + case 'acroform': + $res .= "\n/AcroForm $v 0 R"; + break; + } + } + + $res .= " >>\nendobj"; + + return $res; + } + + return null; + } + + /** + * object which is a parent to the pages in the document + * + * @param $id + * @param $action + * @param string $options + * @return string|null + */ + protected function o_pages($id, $action, $options = '') + { + if ($action !== 'new') { + $o = &$this->objects[$id]; + } + + switch ($action) { + case 'new': + $this->objects[$id] = ['t' => 'pages', 'info' => []]; + $this->o_catalog($this->catalogId, 'pages', $id); + break; + + case 'page': + if (!is_array($options)) { + // then it will just be the id of the new page + $o['info']['pages'][] = $options; + } else { + // then it should be an array having 'id','rid','pos', where rid=the page to which this one will be placed relative + // and pos is either 'before' or 'after', saying where this page will fit. + if (isset($options['id']) && isset($options['rid']) && isset($options['pos'])) { + $i = array_search($options['rid'], $o['info']['pages']); + if (isset($o['info']['pages'][$i]) && $o['info']['pages'][$i] == $options['rid']) { + + // then there is a match + // make a space + switch ($options['pos']) { + case 'before': + $k = $i; + break; + + case 'after': + $k = $i + 1; + break; + + default: + $k = -1; + break; + } + + if ($k >= 0) { + for ($j = count($o['info']['pages']) - 1; $j >= $k; $j--) { + $o['info']['pages'][$j + 1] = $o['info']['pages'][$j]; + } + + $o['info']['pages'][$k] = $options['id']; + } + } + } + } + break; + + case 'procset': + $o['info']['procset'] = $options; + break; + + case 'mediaBox': + $o['info']['mediaBox'] = $options; + // which should be an array of 4 numbers + $this->currentPageSize = ['width' => $options[2], 'height' => $options[3]]; + break; + + case 'font': + $o['info']['fonts'][] = ['objNum' => $options['objNum'], 'fontNum' => $options['fontNum']]; + break; + + case 'extGState': + $o['info']['extGStates'][] = ['objNum' => $options['objNum'], 'stateNum' => $options['stateNum']]; + break; + + case 'xObject': + $o['info']['xObjects'][] = ['objNum' => $options['objNum'], 'label' => $options['label']]; + break; + + case 'out': + if (count($o['info']['pages'])) { + $res = "\n$id 0 obj\n<< /Type /Pages\n/Kids ["; + foreach ($o['info']['pages'] as $v) { + $res .= "$v 0 R\n"; + } + + $res .= "]\n/Count " . count($this->objects[$id]['info']['pages']); + + if ((isset($o['info']['fonts']) && count($o['info']['fonts'])) || + isset($o['info']['procset']) || + (isset($o['info']['extGStates']) && count($o['info']['extGStates'])) + ) { + $res .= "\n/Resources <<"; + + if (isset($o['info']['procset'])) { + $res .= "\n/ProcSet " . $o['info']['procset'] . " 0 R"; + } + + if (isset($o['info']['fonts']) && count($o['info']['fonts'])) { + $res .= "\n/Font << "; + foreach ($o['info']['fonts'] as $finfo) { + $res .= "\n/F" . $finfo['fontNum'] . " " . $finfo['objNum'] . " 0 R"; + } + $res .= "\n>>"; + } + + if (isset($o['info']['xObjects']) && count($o['info']['xObjects'])) { + $res .= "\n/XObject << "; + foreach ($o['info']['xObjects'] as $finfo) { + $res .= "\n/" . $finfo['label'] . " " . $finfo['objNum'] . " 0 R"; + } + $res .= "\n>>"; + } + + if (isset($o['info']['extGStates']) && count($o['info']['extGStates'])) { + $res .= "\n/ExtGState << "; + foreach ($o['info']['extGStates'] as $gstate) { + $res .= "\n/GS" . $gstate['stateNum'] . " " . $gstate['objNum'] . " 0 R"; + } + $res .= "\n>>"; + } + + $res .= "\n>>"; + if (isset($o['info']['mediaBox'])) { + $tmp = $o['info']['mediaBox']; + $res .= "\n/MediaBox [" . sprintf( + '%.3F %.3F %.3F %.3F', + $tmp[0], + $tmp[1], + $tmp[2], + $tmp[3] + ) . ']'; + } + } + + $res .= "\n >>\nendobj"; + } else { + $res = "\n$id 0 obj\n<< /Type /Pages\n/Count 0\n>>\nendobj"; + } + + return $res; + } + + return null; + } + + /** + * define the outlines in the doc, empty for now + * + * @param $id + * @param $action + * @param string $options + * @return string|null + */ + protected function o_outlines($id, $action, $options = '') + { + if ($action !== 'new') { + $o = &$this->objects[$id]; + } + + switch ($action) { + case 'new': + $this->objects[$id] = ['t' => 'outlines', 'info' => ['outlines' => []]]; + $this->o_catalog($this->catalogId, 'outlines', $id); + break; + + case 'outline': + $o['info']['outlines'][] = $options; + break; + + case 'out': + if (count($o['info']['outlines'])) { + $res = "\n$id 0 obj\n<< /Type /Outlines /Kids ["; + foreach ($o['info']['outlines'] as $v) { + $res .= "$v 0 R "; + } + + $res .= "] /Count " . count($o['info']['outlines']) . " >>\nendobj"; + } else { + $res = "\n$id 0 obj\n<< /Type /Outlines /Count 0 >>\nendobj"; + } + + return $res; + } + + return null; + } + + /** + * an object to hold the font description + * + * @param $id + * @param $action + * @param string|array $options + * @return string|null + * @throws FontNotFoundException + */ + protected function o_font($id, $action, $options = '') + { + if ($action !== 'new') { + $o = &$this->objects[$id]; + } + + switch ($action) { + case 'new': + $this->objects[$id] = [ + 't' => 'font', + 'info' => [ + 'name' => $options['name'], + 'fontFileName' => $options['fontFileName'], + 'SubType' => 'Type1', + 'isSubsetting' => $options['isSubsetting'] + ] + ]; + $fontNum = $this->numFonts; + $this->objects[$id]['info']['fontNum'] = $fontNum; + + // deal with the encoding and the differences + if (isset($options['differences'])) { + // then we'll need an encoding dictionary + $this->numObj++; + $this->o_fontEncoding($this->numObj, 'new', $options); + $this->objects[$id]['info']['encodingDictionary'] = $this->numObj; + } else { + if (isset($options['encoding'])) { + // we can specify encoding here + switch ($options['encoding']) { + case 'WinAnsiEncoding': + case 'MacRomanEncoding': + case 'MacExpertEncoding': + $this->objects[$id]['info']['encoding'] = $options['encoding']; + break; + + case 'none': + break; + + default: + $this->objects[$id]['info']['encoding'] = 'WinAnsiEncoding'; + break; + } + } else { + $this->objects[$id]['info']['encoding'] = 'WinAnsiEncoding'; + } + } + + if ($this->fonts[$options['fontFileName']]['isUnicode']) { + // For Unicode fonts, we need to incorporate font data into + // sub-sections that are linked from the primary font section. + // Look at o_fontGIDtoCID and o_fontDescendentCID functions + // for more information. + // + // All of this code is adapted from the excellent changes made to + // transform FPDF to TCPDF (http://tcpdf.sourceforge.net/) + + $toUnicodeId = ++$this->numObj; + $this->o_toUnicode($toUnicodeId, 'new'); + $this->objects[$id]['info']['toUnicode'] = $toUnicodeId; + + $cidFontId = ++$this->numObj; + $this->o_fontDescendentCID($cidFontId, 'new', $options); + $this->objects[$id]['info']['cidFont'] = $cidFontId; + } + + // also tell the pages node about the new font + $this->o_pages($this->currentNode, 'font', ['fontNum' => $fontNum, 'objNum' => $id]); + break; + + case 'add': + $font_options = $this->processFont($id, $o['info']); + + if ($font_options !== false) { + foreach ($font_options as $k => $v) { + switch ($k) { + case 'BaseFont': + $o['info']['name'] = $v; + break; + case 'FirstChar': + case 'LastChar': + case 'Widths': + case 'FontDescriptor': + case 'SubType': + $this->addMessage('o_font ' . $k . " : " . $v); + $o['info'][$k] = $v; + break; + } + } + + // pass values down to descendent font + if (isset($o['info']['cidFont'])) { + $this->o_fontDescendentCID($o['info']['cidFont'], 'add', $font_options); + } + } + break; + + case 'out': + if ($this->fonts[$this->objects[$id]['info']['fontFileName']]['isUnicode']) { + // For Unicode fonts, we need to incorporate font data into + // sub-sections that are linked from the primary font section. + // Look at o_fontGIDtoCID and o_fontDescendentCID functions + // for more information. + // + // All of this code is adapted from the excellent changes made to + // transform FPDF to TCPDF (http://tcpdf.sourceforge.net/) + + $res = "\n$id 0 obj\n<fonts[$fontFileName])) { + return false; + } + + $font = &$this->fonts[$fontFileName]; + + $fileSuffix = $font['fileSuffix']; + $fileSuffixLower = strtolower($font['fileSuffix']); + $fbfile = "$fontFileName.$fileSuffix"; + $isTtfFont = $fileSuffixLower === 'ttf'; + $isPfbFont = $fileSuffixLower === 'pfb'; + + $this->addMessage('selectFont: checking for - ' . $fbfile); + + if (!$fileSuffix) { + $this->addMessage( + 'selectFont: pfb or ttf file not found, ok if this is one of the 14 standard fonts' + ); + + return false; + } else { + $adobeFontName = isset($font['PostScriptName']) ? $font['PostScriptName'] : $font['FontName']; + // $fontObj = $this->numObj; + $this->addMessage("selectFont: adding font file - $fbfile - $adobeFontName"); + + // find the array of font widths, and put that into an object. + $firstChar = -1; + $lastChar = 0; + $widths = []; + $cid_widths = []; + + foreach ($font['C'] as $num => $d) { + if (intval($num) > 0 || $num == '0') { + if (!$font['isUnicode']) { + // With Unicode, widths array isn't used + if ($lastChar > 0 && $num > $lastChar + 1) { + for ($i = $lastChar + 1; $i < $num; $i++) { + $widths[] = 0; + } + } + } + + $widths[] = $d; + + if ($font['isUnicode']) { + $cid_widths[$num] = $d; + } + + if ($firstChar == -1) { + $firstChar = $num; + } + + $lastChar = $num; + } + } + + // also need to adjust the widths for the differences array + if (isset($object['differences'])) { + foreach ($object['differences'] as $charNum => $charName) { + if ($charNum > $lastChar) { + if (!$object['isUnicode']) { + // With Unicode, widths array isn't used + for ($i = $lastChar + 1; $i <= $charNum; $i++) { + $widths[] = 0; + } + } + + $lastChar = $charNum; + } + + if (isset($font['C'][$charName])) { + $widths[$charNum - $firstChar] = $font['C'][$charName]; + if ($font['isUnicode']) { + $cid_widths[$charName] = $font['C'][$charName]; + } + } + } + } + + if ($font['isUnicode']) { + $font['CIDWidths'] = $cid_widths; + } + + $this->addMessage('selectFont: FirstChar = ' . $firstChar); + $this->addMessage('selectFont: LastChar = ' . $lastChar); + + $widthid = -1; + + if (!$font['isUnicode']) { + // With Unicode, widths array isn't used + + $this->numObj++; + $this->o_contents($this->numObj, 'new', 'raw'); + $this->objects[$this->numObj]['c'] .= '[' . implode(' ', $widths) . ']'; + $widthid = $this->numObj; + } + + $missing_width = 500; + $stemV = 70; + + if (isset($font['MissingWidth'])) { + $missing_width = $font['MissingWidth']; + } + if (isset($font['StdVW'])) { + $stemV = $font['StdVW']; + } else { + if (isset($font['Weight']) && preg_match('!(bold|black)!i', $font['Weight'])) { + $stemV = 120; + } + } + + // load the pfb file, and put that into an object too. + // note that pdf supports only binary format type 1 font files, though there is a + // simple utility to convert them from pfa to pfb. + if (!$font['isSubsetting']) { + $data = file_get_contents($fbfile); + } else { + $adobeFontName = $this->getFontSubsettingTag($font) . '+' . $adobeFontName; + $this->stringSubsets[$fontFileName][] = 32; // Force space if not in yet + + $subset = $this->stringSubsets[$fontFileName]; + sort($subset); + + // Load font + $font_obj = Font::load($fbfile); + $font_obj->parse(); + + // Define subset + $font_obj->setSubset($subset); + $font_obj->reduce(); + + // Write new font + $tmp_name = @tempnam($this->tmp, "cpdf_subset_"); + $font_obj->open($tmp_name, BinaryStream::modeReadWrite); + $font_obj->encode(["OS/2"]); + $font_obj->close(); + + // Parse the new font to get cid2gid and widths + $font_obj = Font::load($tmp_name); + + // Find Unicode char map table + $subtable = null; + foreach ($font_obj->getData("cmap", "subtables") as $_subtable) { + if ($_subtable["platformID"] == 0 || $_subtable["platformID"] == 3 && $_subtable["platformSpecificID"] == 1) { + $subtable = $_subtable; + break; + } + } + + if ($subtable) { + $glyphIndexArray = $subtable["glyphIndexArray"]; + $hmtx = $font_obj->getData("hmtx"); + + unset($glyphIndexArray[0xFFFF]); + + $cidtogid = str_pad('', max(array_keys($glyphIndexArray)) * 2 + 1, "\x00"); + $font['CIDWidths'] = []; + foreach ($glyphIndexArray as $cid => $gid) { + if ($cid >= 0 && $cid < 0xFFFF && $gid) { + $cidtogid[$cid * 2] = chr($gid >> 8); + $cidtogid[$cid * 2 + 1] = chr($gid & 0xFF); + } + + $width = $font_obj->normalizeFUnit(isset($hmtx[$gid]) ? $hmtx[$gid][0] : $hmtx[0][0]); + $font['CIDWidths'][$cid] = $width; + } + + $font['CIDtoGID'] = base64_encode(gzcompress($cidtogid)); + $font['CIDtoGID_Compressed'] = true; + + $data = file_get_contents($tmp_name); + } else { + $data = file_get_contents($fbfile); + } + + $font_obj->close(); + unlink($tmp_name); + } + + // create the font descriptor + $this->numObj++; + $fontDescriptorId = $this->numObj; + + $this->numObj++; + $pfbid = $this->numObj; + + // determine flags (more than a little flakey, hopefully will not matter much) + $flags = 0; + + if ($font['ItalicAngle'] != 0) { + $flags += pow(2, 6); + } + + if ($font['IsFixedPitch'] === 'true') { + $flags += 1; + } + + $flags += pow(2, 5); // assume non-sybolic + $list = [ + 'Ascent' => 'Ascender', + 'CapHeight' => 'Ascender', //FIXME: php-font-lib is not grabbing this value, so we'll fake it and use the Ascender value // 'CapHeight' + 'MissingWidth' => 'MissingWidth', + 'Descent' => 'Descender', + 'FontBBox' => 'FontBBox', + 'ItalicAngle' => 'ItalicAngle' + ]; + $fdopt = [ + 'Flags' => $flags, + 'FontName' => $adobeFontName, + 'StemV' => $stemV + ]; + + foreach ($list as $k => $v) { + if (isset($font[$v])) { + $fdopt[$k] = $font[$v]; + } + } + + if ($isPfbFont) { + $fdopt['FontFile'] = $pfbid; + } elseif ($isTtfFont) { + $fdopt['FontFile2'] = $pfbid; + } + + $this->o_fontDescriptor($fontDescriptorId, 'new', $fdopt); + + // embed the font program + $this->o_contents($this->numObj, 'new'); + $this->objects[$pfbid]['c'] .= $data; + + // determine the cruicial lengths within this file + if ($isPfbFont) { + $l1 = strpos($data, 'eexec') + 6; + $l2 = strpos($data, '00000000') - $l1; + $l3 = mb_strlen($data, '8bit') - $l2 - $l1; + $this->o_contents( + $this->numObj, + 'add', + ['Length1' => $l1, 'Length2' => $l2, 'Length3' => $l3] + ); + } elseif ($isTtfFont) { + $l1 = mb_strlen($data, '8bit'); + $this->o_contents($this->numObj, 'add', ['Length1' => $l1]); + } + + // tell the font object about all this new stuff + $options = [ + 'BaseFont' => $adobeFontName, + 'MissingWidth' => $missing_width, + 'Widths' => $widthid, + 'FirstChar' => $firstChar, + 'LastChar' => $lastChar, + 'FontDescriptor' => $fontDescriptorId + ]; + + if ($isTtfFont) { + $options['SubType'] = 'TrueType'; + } + + $this->addMessage("adding extra info to font.($fontObjId)"); + + foreach ($options as $fk => $fv) { + $this->addMessage("$fk : $fv"); + } + } + + return $options; + } + + /** + * A toUnicode section, needed for unicode fonts + * + * @param $id + * @param $action + * @return null|string + */ + protected function o_toUnicode($id, $action) + { + switch ($action) { + case 'new': + $this->objects[$id] = [ + 't' => 'toUnicode' + ]; + break; + case 'add': + break; + case 'out': + $ordering = 'UCS'; + $registry = 'Adobe'; + + if ($this->encrypted) { + $this->encryptInit($id); + $ordering = $this->ARC4($ordering); + $registry = $this->filterText($this->ARC4($registry), false, false); + } + + $stream = <<> def +/CMapName /Adobe-Identity-UCS def +/CMapType 2 def +1 begincodespacerange +<0000> +endcodespacerange +1 beginbfrange +<0000> <0000> +endbfrange +endcmap +CMapName currentdict /CMap defineresource pop +end +end +EOT; + + $res = "\n$id 0 obj\n"; + $res .= "<>\n"; + $res .= "stream\n" . $stream . "\nendstream" . "\nendobj"; + + return $res; + } + + return null; + } + + /** + * a font descriptor, needed for including additional fonts + * + * @param $id + * @param $action + * @param string $options + * @return null|string + */ + protected function o_fontDescriptor($id, $action, $options = '') + { + if ($action !== 'new') { + $o = &$this->objects[$id]; + } + + switch ($action) { + case 'new': + $this->objects[$id] = ['t' => 'fontDescriptor', 'info' => $options]; + break; + + case 'out': + $res = "\n$id 0 obj\n<< /Type /FontDescriptor\n"; + foreach ($o['info'] as $label => $value) { + switch ($label) { + case 'Ascent': + case 'CapHeight': + case 'Descent': + case 'Flags': + case 'ItalicAngle': + case 'StemV': + case 'AvgWidth': + case 'Leading': + case 'MaxWidth': + case 'MissingWidth': + case 'StemH': + case 'XHeight': + case 'CharSet': + if (mb_strlen($value, '8bit')) { + $res .= "/$label $value\n"; + } + + break; + case 'FontFile': + case 'FontFile2': + case 'FontFile3': + $res .= "/$label $value 0 R\n"; + break; + + case 'FontBBox': + $res .= "/$label [$value[0] $value[1] $value[2] $value[3]]\n"; + break; + + case 'FontName': + $res .= "/$label /$value\n"; + break; + } + } + + $res .= ">>\nendobj"; + + return $res; + } + + return null; + } + + /** + * the font encoding + * + * @param $id + * @param $action + * @param string $options + * @return null|string + */ + protected function o_fontEncoding($id, $action, $options = '') + { + if ($action !== 'new') { + $o = &$this->objects[$id]; + } + + switch ($action) { + case 'new': + // the options array should contain 'differences' and maybe 'encoding' + $this->objects[$id] = ['t' => 'fontEncoding', 'info' => $options]; + break; + + case 'out': + $res = "\n$id 0 obj\n<< /Type /Encoding\n"; + if (!isset($o['info']['encoding'])) { + $o['info']['encoding'] = 'WinAnsiEncoding'; + } + + if ($o['info']['encoding'] !== 'none') { + $res .= "/BaseEncoding /" . $o['info']['encoding'] . "\n"; + } + + $res .= "/Differences \n["; + + $onum = -100; + + foreach ($o['info']['differences'] as $num => $label) { + if ($num != $onum + 1) { + // we cannot make use of consecutive numbering + $res .= "\n$num /$label"; + } else { + $res .= " /$label"; + } + + $onum = $num; + } + + $res .= "\n]\n>>\nendobj"; + + return $res; + } + + return null; + } + + /** + * a descendent cid font, needed for unicode fonts + * + * @param $id + * @param $action + * @param string|array $options + * @return null|string + */ + protected function o_fontDescendentCID($id, $action, $options = '') + { + if ($action !== 'new') { + $o = &$this->objects[$id]; + } + + switch ($action) { + case 'new': + $this->objects[$id] = ['t' => 'fontDescendentCID', 'info' => $options]; + + // we need a CID system info section + $cidSystemInfoId = ++$this->numObj; + $this->o_cidSystemInfo($cidSystemInfoId, 'new'); + $this->objects[$id]['info']['cidSystemInfo'] = $cidSystemInfoId; + + // and a CID to GID map + $cidToGidMapId = ++$this->numObj; + $this->o_fontGIDtoCIDMap($cidToGidMapId, 'new', $options); + $this->objects[$id]['info']['cidToGidMap'] = $cidToGidMapId; + break; + + case 'add': + foreach ($options as $k => $v) { + switch ($k) { + case 'BaseFont': + $o['info']['name'] = $v; + break; + + case 'FirstChar': + case 'LastChar': + case 'MissingWidth': + case 'FontDescriptor': + case 'SubType': + $this->addMessage("o_fontDescendentCID $k : $v"); + $o['info'][$k] = $v; + break; + } + } + + // pass values down to cid to gid map + $this->o_fontGIDtoCIDMap($o['info']['cidToGidMap'], 'add', $options); + break; + + case 'out': + $res = "\n$id 0 obj\n"; + $res .= "<fonts[$o['info']['fontFileName']]['CIDWidths'])) { + $cid_widths = &$this->fonts[$o['info']['fontFileName']]['CIDWidths']; + $w = ''; + foreach ($cid_widths as $cid => $width) { + $w .= "$cid [$width] "; + } + $res .= "/W [$w]\n"; + } + + $res .= "/CIDToGIDMap " . $o['info']['cidToGidMap'] . " 0 R\n"; + $res .= ">>\n"; + $res .= "endobj"; + + return $res; + } + + return null; + } + + /** + * CID system info section, needed for unicode fonts + * + * @param $id + * @param $action + * @return null|string + */ + protected function o_cidSystemInfo($id, $action) + { + switch ($action) { + case 'new': + $this->objects[$id] = [ + 't' => 'cidSystemInfo' + ]; + break; + case 'add': + break; + case 'out': + $ordering = 'UCS'; + $registry = 'Adobe'; + + if ($this->encrypted) { + $this->encryptInit($id); + $ordering = $this->ARC4($ordering); + $registry = $this->ARC4($registry); + } + + + $res = "\n$id 0 obj\n"; + + $res .= '<objects[$id]; + } + + switch ($action) { + case 'new': + $this->objects[$id] = ['t' => 'fontGIDtoCIDMap', 'info' => $options]; + break; + + case 'out': + $res = "\n$id 0 obj\n"; + $fontFileName = $o['info']['fontFileName']; + $tmp = $this->fonts[$fontFileName]['CIDtoGID'] = base64_decode($this->fonts[$fontFileName]['CIDtoGID']); + + $compressed = isset($this->fonts[$fontFileName]['CIDtoGID_Compressed']) && + $this->fonts[$fontFileName]['CIDtoGID_Compressed']; + + if (!$compressed && isset($o['raw'])) { + $res .= $tmp; + } else { + $res .= "<<"; + + if (!$compressed && $this->compressionReady && $this->options['compression']) { + // then implement ZLIB based compression on this content stream + $compressed = true; + $tmp = gzcompress($tmp, 6); + } + if ($compressed) { + $res .= "\n/Filter /FlateDecode"; + } + + if ($this->encrypted) { + $this->encryptInit($id); + $tmp = $this->ARC4($tmp); + } + + $res .= "\n/Length " . mb_strlen($tmp, '8bit') . ">>\nstream\n$tmp\nendstream"; + } + + $res .= "\nendobj"; + + return $res; + } + + return null; + } + + /** + * the document procset, solves some problems with printing to old PS printers + * + * @param $id + * @param $action + * @param string $options + * @return null|string + */ + protected function o_procset($id, $action, $options = '') + { + if ($action !== 'new') { + $o = &$this->objects[$id]; + } + + switch ($action) { + case 'new': + $this->objects[$id] = ['t' => 'procset', 'info' => ['PDF' => 1, 'Text' => 1]]; + $this->o_pages($this->currentNode, 'procset', $id); + $this->procsetObjectId = $id; + break; + + case 'add': + // this is to add new items to the procset list, despite the fact that this is considered + // obsolete, the items are required for printing to some postscript printers + switch ($options) { + case 'ImageB': + case 'ImageC': + case 'ImageI': + $o['info'][$options] = 1; + break; + } + break; + + case 'out': + $res = "\n$id 0 obj\n["; + foreach ($o['info'] as $label => $val) { + $res .= "/$label "; + } + $res .= "]\nendobj"; + + return $res; + } + + return null; + } + + /** + * define the document information + * + * @param $id + * @param $action + * @param string $options + * @return null|string + */ + protected function o_info($id, $action, $options = '') + { + switch ($action) { + case 'new': + $this->infoObject = $id; + $date = 'D:' . @date('Ymd'); + $this->objects[$id] = [ + 't' => 'info', + 'info' => [ + 'Producer' => 'CPDF (dompdf)', + 'CreationDate' => $date + ] + ]; + break; + case 'Title': + case 'Author': + case 'Subject': + case 'Keywords': + case 'Creator': + case 'Producer': + case 'CreationDate': + case 'ModDate': + case 'Trapped': + $this->objects[$id]['info'][$action] = $options; + break; + + case 'out': + $encrypted = $this->encrypted; + if ($encrypted) { + $this->encryptInit($id); + } + + $res = "\n$id 0 obj\n<<\n"; + $o = &$this->objects[$id]; + foreach ($o['info'] as $k => $v) { + $res .= "/$k ("; + + // dates must be outputted as-is, without Unicode transformations + if ($k !== 'CreationDate' && $k !== 'ModDate') { + $v = $this->utf8toUtf16BE($v); + } + + if ($encrypted) { + $v = $this->ARC4($v); + } + + $res .= $this->filterText($v, false, false); + $res .= ")\n"; + } + + $res .= ">>\nendobj"; + + return $res; + } + + return null; + } + + /** + * an action object, used to link to URLS initially + * + * @param $id + * @param $action + * @param string $options + * @return null|string + */ + protected function o_action($id, $action, $options = '') + { + if ($action !== 'new') { + $o = &$this->objects[$id]; + } + + switch ($action) { + case 'new': + if (is_array($options)) { + $this->objects[$id] = ['t' => 'action', 'info' => $options, 'type' => $options['type']]; + } else { + // then assume a URI action + $this->objects[$id] = ['t' => 'action', 'info' => $options, 'type' => 'URI']; + } + break; + + case 'out': + if ($this->encrypted) { + $this->encryptInit($id); + } + + $res = "\n$id 0 obj\n<< /Type /Action"; + switch ($o['type']) { + case 'ilink': + if (!isset($this->destinations[(string)$o['info']['label']])) { + break; + } + + // there will be an 'label' setting, this is the name of the destination + $res .= "\n/S /GoTo\n/D " . $this->destinations[(string)$o['info']['label']] . " 0 R"; + break; + + case 'URI': + $res .= "\n/S /URI\n/URI ("; + if ($this->encrypted) { + $res .= $this->filterText($this->ARC4($o['info']), false, false); + } else { + $res .= $this->filterText($o['info'], false, false); + } + + $res .= ")"; + break; + } + + $res .= "\n>>\nendobj"; + + return $res; + } + + return null; + } + + /** + * an annotation object, this will add an annotation to the current page. + * initially will support just link annotations + * + * @param $id + * @param $action + * @param string $options + * @return null|string + */ + protected function o_annotation($id, $action, $options = '') + { + if ($action !== 'new') { + $o = &$this->objects[$id]; + } + + switch ($action) { + case 'new': + // add the annotation to the current page + $pageId = $this->currentPage; + $this->o_page($pageId, 'annot', $id); + + // and add the action object which is going to be required + switch ($options['type']) { + case 'link': + $this->objects[$id] = ['t' => 'annotation', 'info' => $options]; + $this->numObj++; + $this->o_action($this->numObj, 'new', $options['url']); + $this->objects[$id]['info']['actionId'] = $this->numObj; + break; + + case 'ilink': + // this is to a named internal link + $label = $options['label']; + $this->objects[$id] = ['t' => 'annotation', 'info' => $options]; + $this->numObj++; + $this->o_action($this->numObj, 'new', ['type' => 'ilink', 'label' => $label]); + $this->objects[$id]['info']['actionId'] = $this->numObj; + break; + } + break; + + case 'out': + $res = "\n$id 0 obj\n<< /Type /Annot"; + switch ($o['info']['type']) { + case 'link': + case 'ilink': + $res .= "\n/Subtype /Link"; + break; + } + $res .= "\n/A " . $o['info']['actionId'] . " 0 R"; + $res .= "\n/Border [0 0 0]"; + $res .= "\n/H /I"; + $res .= "\n/Rect [ "; + + foreach ($o['info']['rect'] as $v) { + $res .= sprintf("%.4F ", $v); + } + + $res .= "]"; + $res .= "\n>>\nendobj"; + + return $res; + } + + return null; + } + + /** + * a page object, it also creates a contents object to hold its contents + * + * @param $id + * @param $action + * @param string $options + * @return null|string + */ + protected function o_page($id, $action, $options = '') + { + if ($action !== 'new') { + $o = &$this->objects[$id]; + } + + switch ($action) { + case 'new': + $this->numPages++; + $this->objects[$id] = [ + 't' => 'page', + 'info' => [ + 'parent' => $this->currentNode, + 'pageNum' => $this->numPages, + 'mediaBox' => $this->objects[$this->currentNode]['info']['mediaBox'] + ] + ]; + + if (is_array($options)) { + // then this must be a page insertion, array should contain 'rid','pos'=[before|after] + $options['id'] = $id; + $this->o_pages($this->currentNode, 'page', $options); + } else { + $this->o_pages($this->currentNode, 'page', $id); + } + + $this->currentPage = $id; + //make a contents object to go with this page + $this->numObj++; + $this->o_contents($this->numObj, 'new', $id); + $this->currentContents = $this->numObj; + $this->objects[$id]['info']['contents'] = []; + $this->objects[$id]['info']['contents'][] = $this->numObj; + + $match = ($this->numPages % 2 ? 'odd' : 'even'); + foreach ($this->addLooseObjects as $oId => $target) { + if ($target === 'all' || $match === $target) { + $this->objects[$id]['info']['contents'][] = $oId; + } + } + break; + + case 'content': + $o['info']['contents'][] = $options; + break; + + case 'annot': + // add an annotation to this page + if (!isset($o['info']['annot'])) { + $o['info']['annot'] = []; + } + + // $options should contain the id of the annotation dictionary + $o['info']['annot'][] = $options; + break; + + case 'out': + $res = "\n$id 0 obj\n<< /Type /Page"; + if (isset($o['info']['mediaBox'])) { + $tmp = $o['info']['mediaBox']; + $res .= "\n/MediaBox [" . sprintf( + '%.3F %.3F %.3F %.3F', + $tmp[0], + $tmp[1], + $tmp[2], + $tmp[3] + ) . ']'; + } + $res .= "\n/Parent " . $o['info']['parent'] . " 0 R"; + + if (isset($o['info']['annot'])) { + $res .= "\n/Annots ["; + foreach ($o['info']['annot'] as $aId) { + $res .= " $aId 0 R"; + } + $res .= " ]"; + } + + $count = count($o['info']['contents']); + if ($count == 1) { + $res .= "\n/Contents " . $o['info']['contents'][0] . " 0 R"; + } else { + if ($count > 1) { + $res .= "\n/Contents [\n"; + + // reverse the page contents so added objects are below normal content + //foreach (array_reverse($o['info']['contents']) as $cId) { + // Back to normal now that I've got transparency working --Benj + foreach ($o['info']['contents'] as $cId) { + $res .= "$cId 0 R\n"; + } + $res .= "]"; + } + } + + $res .= "\n>>\nendobj"; + + return $res; + } + + return null; + } + + /** + * the contents objects hold all of the content which appears on pages + * + * @param $id + * @param $action + * @param string|array $options + * @return null|string + */ + protected function o_contents($id, $action, $options = '') + { + if ($action !== 'new') { + $o = &$this->objects[$id]; + } + + switch ($action) { + case 'new': + $this->objects[$id] = ['t' => 'contents', 'c' => '', 'info' => []]; + if (mb_strlen($options, '8bit') && intval($options)) { + // then this contents is the primary for a page + $this->objects[$id]['onPage'] = $options; + } else { + if ($options === 'raw') { + // then this page contains some other type of system object + $this->objects[$id]['raw'] = 1; + } + } + break; + + case 'add': + // add more options to the declaration + foreach ($options as $k => $v) { + $o['info'][$k] = $v; + } + + case 'out': + $tmp = $o['c']; + $res = "\n$id 0 obj\n"; + + if (isset($this->objects[$id]['raw'])) { + $res .= $tmp; + } else { + $res .= "<<"; + if ($this->compressionReady && $this->options['compression']) { + // then implement ZLIB based compression on this content stream + $res .= " /Filter /FlateDecode"; + $tmp = gzcompress($tmp, 6); + } + + if ($this->encrypted) { + $this->encryptInit($id); + $tmp = $this->ARC4($tmp); + } + + foreach ($o['info'] as $k => $v) { + $res .= "\n/$k $v"; + } + + $res .= "\n/Length " . mb_strlen($tmp, '8bit') . " >>\nstream\n$tmp\nendstream"; + } + + $res .= "\nendobj"; + + return $res; + } + + return null; + } + + /** + * @param $id + * @param $action + * @return string|null + */ + protected function o_embedjs($id, $action) + { + switch ($action) { + case 'new': + $this->objects[$id] = [ + 't' => 'embedjs', + 'info' => [ + 'Names' => '[(EmbeddedJS) ' . ($id + 1) . ' 0 R]' + ] + ]; + break; + + case 'out': + $o = &$this->objects[$id]; + $res = "\n$id 0 obj\n<< "; + foreach ($o['info'] as $k => $v) { + $res .= "\n/$k $v"; + } + $res .= "\n>>\nendobj"; + + return $res; + } + + return null; + } + + /** + * @param $id + * @param $action + * @param string $code + * @return null|string + */ + protected function o_javascript($id, $action, $code = '') + { + switch ($action) { + case 'new': + $this->objects[$id] = [ + 't' => 'javascript', + 'info' => [ + 'S' => '/JavaScript', + 'JS' => '(' . $this->filterText($code, true, false) . ')', + ] + ]; + break; + + case 'out': + $o = &$this->objects[$id]; + $res = "\n$id 0 obj\n<< "; + + foreach ($o['info'] as $k => $v) { + $res .= "\n/$k $v"; + } + $res .= "\n>>\nendobj"; + + return $res; + } + + return null; + } + + /** + * an image object, will be an XObject in the document, includes description and data + * + * @param $id + * @param $action + * @param string $options + * @return null|string + */ + protected function o_image($id, $action, $options = '') + { + switch ($action) { + case 'new': + // make the new object + $this->objects[$id] = ['t' => 'image', 'data' => &$options['data'], 'info' => []]; + + $info =& $this->objects[$id]['info']; + + $info['Type'] = '/XObject'; + $info['Subtype'] = '/Image'; + $info['Width'] = $options['iw']; + $info['Height'] = $options['ih']; + + if (isset($options['masked']) && $options['masked']) { + $info['SMask'] = ($this->numObj - 1) . ' 0 R'; + } + + if (!isset($options['type']) || $options['type'] === 'jpg') { + if (!isset($options['channels'])) { + $options['channels'] = 3; + } + + switch ($options['channels']) { + case 1: + $info['ColorSpace'] = '/DeviceGray'; + break; + case 4: + $info['ColorSpace'] = '/DeviceCMYK'; + break; + default: + $info['ColorSpace'] = '/DeviceRGB'; + break; + } + + if ($info['ColorSpace'] === '/DeviceCMYK') { + $info['Decode'] = '[1 0 1 0 1 0 1 0]'; + } + + $info['Filter'] = '/DCTDecode'; + $info['BitsPerComponent'] = 8; + } else { + if ($options['type'] === 'png') { + $info['Filter'] = '/FlateDecode'; + $info['DecodeParms'] = '<< /Predictor 15 /Colors ' . $options['ncolor'] . ' /Columns ' . $options['iw'] . ' /BitsPerComponent ' . $options['bitsPerComponent'] . '>>'; + + if ($options['isMask']) { + $info['ColorSpace'] = '/DeviceGray'; + } else { + if (mb_strlen($options['pdata'], '8bit')) { + $tmp = ' [ /Indexed /DeviceRGB ' . (mb_strlen($options['pdata'], '8bit') / 3 - 1) . ' '; + $this->numObj++; + $this->o_contents($this->numObj, 'new'); + $this->objects[$this->numObj]['c'] = $options['pdata']; + $tmp .= $this->numObj . ' 0 R'; + $tmp .= ' ]'; + $info['ColorSpace'] = $tmp; + + if (isset($options['transparency'])) { + $transparency = $options['transparency']; + switch ($transparency['type']) { + case 'indexed': + $tmp = ' [ ' . $transparency['data'] . ' ' . $transparency['data'] . '] '; + $info['Mask'] = $tmp; + break; + + case 'color-key': + $tmp = ' [ ' . + $transparency['r'] . ' ' . $transparency['r'] . + $transparency['g'] . ' ' . $transparency['g'] . + $transparency['b'] . ' ' . $transparency['b'] . + ' ] '; + $info['Mask'] = $tmp; + break; + } + } + } else { + if (isset($options['transparency'])) { + $transparency = $options['transparency']; + + switch ($transparency['type']) { + case 'indexed': + $tmp = ' [ ' . $transparency['data'] . ' ' . $transparency['data'] . '] '; + $info['Mask'] = $tmp; + break; + + case 'color-key': + $tmp = ' [ ' . + $transparency['r'] . ' ' . $transparency['r'] . ' ' . + $transparency['g'] . ' ' . $transparency['g'] . ' ' . + $transparency['b'] . ' ' . $transparency['b'] . + ' ] '; + $info['Mask'] = $tmp; + break; + } + } + $info['ColorSpace'] = '/' . $options['color']; + } + } + + $info['BitsPerComponent'] = $options['bitsPerComponent']; + } + } + + // assign it a place in the named resource dictionary as an external object, according to + // the label passed in with it. + $this->o_pages($this->currentNode, 'xObject', ['label' => $options['label'], 'objNum' => $id]); + + // also make sure that we have the right procset object for it. + $this->o_procset($this->procsetObjectId, 'add', 'ImageC'); + break; + + case 'out': + $o = &$this->objects[$id]; + $tmp = &$o['data']; + $res = "\n$id 0 obj\n<<"; + + foreach ($o['info'] as $k => $v) { + $res .= "\n/$k $v"; + } + + if ($this->encrypted) { + $this->encryptInit($id); + $tmp = $this->ARC4($tmp); + } + + $res .= "\n/Length " . mb_strlen($tmp, '8bit') . ">>\nstream\n$tmp\nendstream\nendobj"; + + return $res; + } + + return null; + } + + /** + * graphics state object + * + * @param $id + * @param $action + * @param string $options + * @return null|string + */ + protected function o_extGState($id, $action, $options = "") + { + static $valid_params = [ + "LW", + "LC", + "LC", + "LJ", + "ML", + "D", + "RI", + "OP", + "op", + "OPM", + "Font", + "BG", + "BG2", + "UCR", + "TR", + "TR2", + "HT", + "FL", + "SM", + "SA", + "BM", + "SMask", + "CA", + "ca", + "AIS", + "TK" + ]; + + switch ($action) { + case "new": + $this->objects[$id] = ['t' => 'extGState', 'info' => $options]; + + // Tell the pages about the new resource + $this->numStates++; + $this->o_pages($this->currentNode, 'extGState', ["objNum" => $id, "stateNum" => $this->numStates]); + break; + + case "out": + $o = &$this->objects[$id]; + $res = "\n$id 0 obj\n<< /Type /ExtGState\n"; + + foreach ($o["info"] as $k => $v) { + if (!in_array($k, $valid_params)) { + continue; + } + $res .= "/$k $v\n"; + } + + $res .= ">>\nendobj"; + + return $res; + } + + return null; + } + + /** + * @param integer $id + * @param string $action + * @param mixed $options + * @return string + */ + protected function o_xobject($id, $action, $options = '') + { + switch ($action) { + case 'new': + $this->objects[$id] = ['t' => 'xobject', 'info' => $options, 'c' => '']; + break; + + case 'procset': + $this->objects[$id]['procset'] = $options; + break; + + case 'font': + $this->objects[$id]['fonts'][$options['fontNum']] = [ + 'objNum' => $options['objNum'], + 'fontNum' => $options['fontNum'] + ]; + break; + + case 'xObject': + $this->objects[$id]['xObjects'][] = ['objNum' => $options['objNum'], 'label' => $options['label']]; + break; + + case 'out': + $o = &$this->objects[$id]; + $res = "\n$id 0 obj\n<< /Type /XObject\n"; + + foreach ($o["info"] as $k => $v) { + switch ($k) { + case 'Subtype': + $res .= "/Subtype /$v\n"; + break; + case 'bbox': + $res .= "/BBox ["; + foreach ($v as $value) { + $res .= sprintf("%.4F ", $value); + } + $res .= "]\n"; + break; + default: + $res .= "/$k $v\n"; + break; + } + } + $res .= "/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]\n"; + + $res .= "/Resources <<"; + if (isset($o['procset'])) { + $res .= "\n/ProcSet " . $o['procset'] . " 0 R"; + } else { + $res .= "\n/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]"; + } + if (isset($o['fonts']) && count($o['fonts'])) { + $res .= "\n/Font << "; + foreach ($o['fonts'] as $finfo) { + $res .= "\n/F" . $finfo['fontNum'] . " " . $finfo['objNum'] . " 0 R"; + } + $res .= "\n>>"; + } + if (isset($o['xObjects']) && count($o['xObjects'])) { + $res .= "\n/XObject << "; + foreach ($o['xObjects'] as $finfo) { + $res .= "\n/" . $finfo['label'] . " " . $finfo['objNum'] . " 0 R"; + } + $res .= "\n>>"; + } + $res .= "\n>>\n"; + + $tmp = $o["c"]; + if ($this->compressionReady && $this->options['compression']) { + // then implement ZLIB based compression on this content stream + $res .= " /Filter /FlateDecode\n"; + $tmp = gzcompress($tmp, 6); + } + + if ($this->encrypted) { + $this->encryptInit($id); + $tmp = $this->ARC4($tmp); + } + + $res .= "/Length " . mb_strlen($tmp, '8bit') . " >>\n"; + $res .= "stream\n" . $tmp . "\nendstream" . "\nendobj"; + + return $res; + } + + return null; + } + + /** + * @param $id + * @param $action + * @param string $options + * @return null|string + */ + protected function o_acroform($id, $action, $options = '') + { + switch ($action) { + case "new": + $this->o_catalog($this->catalogId, 'acroform', $id); + $this->objects[$id] = array('t' => 'acroform', 'info' => $options); + break; + + case 'addfield': + $this->objects[$id]['info']['Fields'][] = $options; + break; + + case 'font': + $this->objects[$id]['fonts'][$options['fontNum']] = [ + 'objNum' => $options['objNum'], + 'fontNum' => $options['fontNum'] + ]; + break; + + case "out": + $o = &$this->objects[$id]; + $res = "\n$id 0 obj\n<<"; + + foreach ($o["info"] as $k => $v) { + switch ($k) { + case 'Fields': + $res .= " /Fields ["; + foreach ($v as $i) { + $res .= "$i 0 R "; + } + $res .= "]\n"; + break; + default: + $res .= "/$k $v\n"; + } + } + + $res .= "/DR <<\n"; + if (isset($o['fonts']) && count($o['fonts'])) { + $res .= "/Font << \n"; + foreach ($o['fonts'] as $finfo) { + $res .= "/F" . $finfo['fontNum'] . " " . $finfo['objNum'] . " 0 R\n"; + } + $res .= ">>\n"; + } + $res .= ">>\n"; + + $res .= ">>\nendobj"; + + return $res; + } + + return null; + } + + /** + * @param $id + * @param $action + * @param mixed $options + * @return null|string + */ + protected function o_field($id, $action, $options = '') + { + switch ($action) { + case "new": + $this->o_page($options['pageid'], 'annot', $id); + $this->o_acroform($this->acroFormId, 'addfield', $id); + $this->objects[$id] = ['t' => 'field', 'info' => $options]; + break; + + case 'set': + $this->objects[$id]['info'] = array_merge($this->objects[$id]['info'], $options); + break; + + case "out": + $o = &$this->objects[$id]; + $res = "\n$id 0 obj\n<< /Type /Annot /Subtype /Widget \n"; + + $encrypted = $this->encrypted; + if ($encrypted) { + $this->encryptInit($id); + } + + foreach ($o["info"] as $k => $v) { + switch ($k) { + case 'pageid': + $res .= "/P $v 0 R\n"; + break; + case 'value': + if ($encrypted) { + $v = $this->filterText($this->ARC4($v), false, false); + } + $res .= "/V ($v)\n"; + break; + case 'refvalue': + $res .= "/V $v 0 R\n"; + break; + case 'da': + if ($encrypted) { + $v = $this->filterText($this->ARC4($v), false, false); + } + $res .= "/DA ($v)\n"; + break; + case 'options': + $res .= "/Opt [\n"; + foreach ($v as $opt) { + if ($encrypted) { + $opt = $this->filterText($this->ARC4($opt), false, false); + } + $res .= "($opt)\n"; + } + $res .= "]\n"; + break; + case 'rect': + $res .= "/Rect ["; + foreach ($v as $value) { + $res .= sprintf("%.4F ", $value); + } + $res .= "]\n"; + break; + case 'appearance': + $res .= "/AP << "; + foreach ($v as $a => $ref) { + $res .= "/$a $ref 0 R "; + } + $res .= ">>\n"; + break; + case 'T': + if ($encrypted) { + $v = $this->filterText($this->ARC4($v), false, false); + } + $res .= "/T ($v)\n"; + break; + default: + $res .= "/$k $v\n"; + } + + } + + $res .= ">>\nendobj"; + + return $res; + } + + return null; + } + + /** + * + * @param $id + * @param $action + * @param string $options + * @return null|string + */ + protected function o_sig($id, $action, $options = '') + { + $sign_maxlen = $this->signatureMaxLen; + + switch ($action) { + case "new": + $this->objects[$id] = array('t' => 'sig', 'info' => $options); + $this->byteRange[$id] = ['t' => 'sig']; + break; + + case 'byterange': + $o = &$this->objects[$id]; + $content =& $options['content']; + $content_len = strlen($content); + $pos = strpos($content, sprintf("/ByteRange [ %'.010d", $id)); + $len = strlen('/ByteRange [ ********** ********** ********** ********** ]'); + $rangeStartPos = $pos + $len + 1 + 10; // before '<' + $content = substr_replace($content, str_pad(sprintf('/ByteRange [ 0 %u %u %u ]', $rangeStartPos, $rangeStartPos + $sign_maxlen + 2, $content_len - 2 - $sign_maxlen - $rangeStartPos), $len, ' ', STR_PAD_RIGHT), $pos, $len); + + $fuid = uniqid(); + $tmpInput = $this->tmp . "/pkcs7.tmp." . $fuid . '.in'; + $tmpOutput = $this->tmp . "/pkcs7.tmp." . $fuid . '.out'; + + if (file_put_contents($tmpInput, substr($content, 0, $rangeStartPos)) === false) { + throw new \Exception("Unable to write temporary file for signing."); + } + if (file_put_contents($tmpInput, substr($content, $rangeStartPos + 2 + $sign_maxlen), + FILE_APPEND) === false) { + throw new \Exception("Unable to write temporary file for signing."); + } + + if (openssl_pkcs7_sign($tmpInput, $tmpOutput, + $o['info']['SignCert'], + array($o['info']['PrivKey'], $o['info']['Password']), + array(), PKCS7_BINARY | PKCS7_DETACHED) === false) { + throw new \Exception("Failed to prepare signature."); + } + + $signature = file_get_contents($tmpOutput); + + unlink($tmpInput); + unlink($tmpOutput); + + $sign = substr($signature, (strpos($signature, "%%EOF\n\n------") + 13)); + list($head, $signature) = explode("\n\n", $sign); + + $signature = base64_decode(trim($signature)); + + $signature = current(unpack('H*', $signature)); + $signature = str_pad($signature, $sign_maxlen, '0'); + $siglen = strlen($signature); + if (strlen($signature) > $sign_maxlen) { + throw new \Exception("Signature length ($siglen) exceeds the $sign_maxlen limit."); + } + + $content = substr_replace($content, $signature, $rangeStartPos + 1, $sign_maxlen); + break; + + case "out": + $res = "\n$id 0 obj\n<<\n"; + + $encrypted = $this->encrypted; + if ($encrypted) { + $this->encryptInit($id); + } + + $res .= "/ByteRange " .sprintf("[ %'.010d ********** ********** ********** ]\n", $id); + $res .= "/Contents <" . str_pad('', $sign_maxlen, '0') . ">\n"; + $res .= "/Filter/Adobe.PPKLite\n"; //PPKMS \n"; + $res .= "/Type/Sig/SubFilter/adbe.pkcs7.detached \n"; + + $date = "D:" . substr_replace(date('YmdHisO'), '\'', -2, 0) . '\''; + if ($encrypted) { + $date = $this->ARC4($date); + } + + $res .= "/M ($date)\n"; + $res .= "/Prop_Build << /App << /Name /DomPDF >> /Filter << /Name /Adobe.PPKLite >> >>\n"; + + $o = &$this->objects[$id]; + foreach ($o['info'] as $k => $v) { + switch ($k) { + case 'Name': + case 'Location': + case 'Reason': + case 'ContactInfo': + if ($v !== null && $v !== '') { + $res .= "/$k (" . + ($encrypted ? $this->filterText($this->ARC4($v), false, false) : $v) . ") \n"; + } + break; + } + } + $res .= ">>\nendobj"; + + return $res; + } + + return null; + } + + /** + * encryption object. + * + * @param $id + * @param $action + * @param string $options + * @return string|null + */ + protected function o_encryption($id, $action, $options = '') + { + switch ($action) { + case 'new': + // make the new object + $this->objects[$id] = ['t' => 'encryption', 'info' => $options]; + $this->arc4_objnum = $id; + break; + + case 'keys': + // figure out the additional parameters required + $pad = chr(0x28) . chr(0xBF) . chr(0x4E) . chr(0x5E) . chr(0x4E) . chr(0x75) . chr(0x8A) . chr(0x41) + . chr(0x64) . chr(0x00) . chr(0x4E) . chr(0x56) . chr(0xFF) . chr(0xFA) . chr(0x01) . chr(0x08) + . chr(0x2E) . chr(0x2E) . chr(0x00) . chr(0xB6) . chr(0xD0) . chr(0x68) . chr(0x3E) . chr(0x80) + . chr(0x2F) . chr(0x0C) . chr(0xA9) . chr(0xFE) . chr(0x64) . chr(0x53) . chr(0x69) . chr(0x7A); + + $info = $this->objects[$id]['info']; + + $len = mb_strlen($info['owner'], '8bit'); + + if ($len > 32) { + $owner = substr($info['owner'], 0, 32); + } else { + if ($len < 32) { + $owner = $info['owner'] . substr($pad, 0, 32 - $len); + } else { + $owner = $info['owner']; + } + } + + $len = mb_strlen($info['user'], '8bit'); + if ($len > 32) { + $user = substr($info['user'], 0, 32); + } else { + if ($len < 32) { + $user = $info['user'] . substr($pad, 0, 32 - $len); + } else { + $user = $info['user']; + } + } + + $tmp = $this->md5_16($owner); + $okey = substr($tmp, 0, 5); + $this->ARC4_init($okey); + $ovalue = $this->ARC4($user); + $this->objects[$id]['info']['O'] = $ovalue; + + // now make the u value, phew. + $tmp = $this->md5_16( + $user . $ovalue . chr($info['p']) . chr(255) . chr(255) . chr(255) . hex2bin($this->fileIdentifier) + ); + + $ukey = substr($tmp, 0, 5); + $this->ARC4_init($ukey); + $this->encryptionKey = $ukey; + $this->encrypted = true; + $uvalue = $this->ARC4($pad); + $this->objects[$id]['info']['U'] = $uvalue; + // initialize the arc4 array + break; + + case 'out': + $o = &$this->objects[$id]; + + $res = "\n$id 0 obj\n<<"; + $res .= "\n/Filter /Standard"; + $res .= "\n/V 1"; + $res .= "\n/R 2"; + $res .= "\n/O (" . $this->filterText($o['info']['O'], false, false) . ')'; + $res .= "\n/U (" . $this->filterText($o['info']['U'], false, false) . ')'; + // and the p-value needs to be converted to account for the twos-complement approach + $o['info']['p'] = (($o['info']['p'] ^ 255) + 1) * -1; + $res .= "\n/P " . ($o['info']['p']); + $res .= "\n>>\nendobj"; + + return $res; + } + + return null; + } + + protected function o_indirect_references($id, $action, $options = null) + { + switch ($action) { + case 'new': + case 'add': + if ($id === 0) { + $id = ++$this->numObj; + $this->o_catalog($this->catalogId, 'names', $id); + $this->objects[$id] = ['t' => 'indirect_references', 'info' => $options]; + $this->indirectReferenceId = $id; + } else { + $this->objects[$id]['info'] = array_merge($this->objects[$id]['info'], $options); + } + break; + case 'out': + $res = "\n$id 0 obj << "; + + foreach ($this->objects[$id]['info'] as $referenceObjName => $referenceObjId) { + $res .= "/$referenceObjName $referenceObjId 0 R "; + } + + $res .= ">> endobj"; + return $res; + } + + return null; + } + + protected function o_names($id, $action, $options = null) + { + switch ($action) { + case 'new': + case 'add': + if ($id === 0) { + $id = ++$this->numObj; + $this->objects[$id] = ['t' => 'names', 'info' => [$options]]; + $this->o_indirect_references($this->indirectReferenceId, 'add', ['EmbeddedFiles' => $id]); + $this->embeddedFilesId = $id; + } else { + $this->objects[$id]['info'][] = $options; + } + break; + case 'out': + $info = &$this->objects[$id]['info']; + $res = ''; + if (count($info) > 0) { + $res = "\n$id 0 obj << /Names [ "; + + if ($this->encrypted) { + $this->encryptInit($id); + } + + foreach ($info as $entry) { + if ($this->encrypted) { + $filename = $this->ARC4($entry['filename']); + } else { + $filename = $entry['filename']; + } + + $res .= "($filename) " . $entry['dict_reference'] . " 0 R "; + } + + $res .= "] >> endobj"; + } + return $res; + } + + return null; + } + + protected function o_embedded_file_dictionary($id, $action, $options = null) + { + switch ($action) { + case 'new': + $embeddedFileId = ++$this->numObj; + $options['embedded_reference'] = $embeddedFileId; + $this->objects[$id] = ['t' => 'embedded_file_dictionary', 'info' => $options]; + $this->o_embedded_file($embeddedFileId, 'new', $options); + $options['dict_reference'] = $id; + $this->o_names($this->embeddedFilesId, 'add', $options); + break; + case 'out': + $info = &$this->objects[$id]['info']; + $filename = $this->utf8toUtf16BE($info['filename']); + $description = $this->utf8toUtf16BE($info['description']); + + if ($this->encrypted) { + $this->encryptInit($id); + $filename = $this->ARC4($filename); + $description = $this->ARC4($description); + } + + $filename = $this->filterText($filename, false, false); + $description = $this->filterText($description, false, false); + + $res = "\n$id 0 obj <>"; + $res .= " /F ($filename) /UF ($filename) /Desc ($description)"; + $res .= " >> endobj"; + return $res; + } + + return null; + } + + protected function o_embedded_file($id, $action, $options = null): ?string + { + switch ($action) { + case 'new': + $this->objects[$id] = ['t' => 'embedded_file', 'info' => $options]; + break; + case 'out': + $info = &$this->objects[$id]['info']; + + if ($this->compressionReady) { + $filepath = $info['filepath']; + $checksum = md5_file($filepath); + $f = fopen($filepath, "rb"); + + $file_content_compressed = ''; + $deflateContext = deflate_init(ZLIB_ENCODING_DEFLATE, ['level' => 6]); + while (($block = fread($f, 8192))) { + $file_content_compressed .= deflate_add($deflateContext, $block, ZLIB_NO_FLUSH); + } + $file_content_compressed .= deflate_add($deflateContext, '', ZLIB_FINISH); + $file_size_uncompressed = ftell($f); + fclose($f); + } else { + $file_content = file_get_contents($info['filepath']); + $file_size_uncompressed = mb_strlen($file_content, '8bit'); + $checksum = md5($file_content); + } + + if ($this->encrypted) { + $this->encryptInit($id); + $checksum = $this->ARC4($checksum); + $file_content_compressed = $this->ARC4($file_content_compressed); + } + $file_size_compressed = mb_strlen($file_content_compressed, '8bit'); + + $res = "\n$id 0 obj <>" . + " /Type/EmbeddedFile /Filter/FlateDecode" . + " /Length $file_size_compressed >> stream\n$file_content_compressed\nendstream\nendobj"; + + return $res; + } + + return null; + } + + /** + * ARC4 functions + * A series of function to implement ARC4 encoding in PHP + */ + + /** + * calculate the 16 byte version of the 128 bit md5 digest of the string + * + * @param $string + * @return string + */ + function md5_16($string) + { + $tmp = md5($string); + $out = ''; + for ($i = 0; $i <= 30; $i = $i + 2) { + $out .= chr(hexdec(substr($tmp, $i, 2))); + } + + return $out; + } + + /** + * initialize the encryption for processing a particular object + * + * @param $id + */ + function encryptInit($id) + { + $tmp = $this->encryptionKey; + $hex = dechex($id); + if (mb_strlen($hex, '8bit') < 6) { + $hex = substr('000000', 0, 6 - mb_strlen($hex, '8bit')) . $hex; + } + $tmp .= chr(hexdec(substr($hex, 4, 2))) + . chr(hexdec(substr($hex, 2, 2))) + . chr(hexdec(substr($hex, 0, 2))) + . chr(0) + . chr(0) + ; + $key = $this->md5_16($tmp); + $this->ARC4_init(substr($key, 0, 10)); + } + + /** + * initialize the ARC4 encryption + * + * @param string $key + */ + function ARC4_init($key = '') + { + $this->arc4 = ''; + + // setup the control array + if (mb_strlen($key, '8bit') == 0) { + return; + } + + $k = ''; + while (mb_strlen($k, '8bit') < 256) { + $k .= $key; + } + + $k = substr($k, 0, 256); + for ($i = 0; $i < 256; $i++) { + $this->arc4 .= chr($i); + } + + $j = 0; + + for ($i = 0; $i < 256; $i++) { + $t = $this->arc4[$i]; + $j = ($j + ord($t) + ord($k[$i])) % 256; + $this->arc4[$i] = $this->arc4[$j]; + $this->arc4[$j] = $t; + } + } + + /** + * ARC4 encrypt a text string + * + * @param $text + * @return string + */ + function ARC4($text) + { + $len = mb_strlen($text, '8bit'); + $a = 0; + $b = 0; + $c = $this->arc4; + $out = ''; + for ($i = 0; $i < $len; $i++) { + $a = ($a + 1) % 256; + $t = $c[$a]; + $b = ($b + ord($t)) % 256; + $c[$a] = $c[$b]; + $c[$b] = $t; + $k = ord($c[(ord($c[$a]) + ord($c[$b])) % 256]); + $out .= chr(ord($text[$i]) ^ $k); + } + + return $out; + } + + /** + * functions which can be called to adjust or add to the document + */ + + /** + * add a link in the document to an external URL + * + * @param $url + * @param $x0 + * @param $y0 + * @param $x1 + * @param $y1 + */ + function addLink($url, $x0, $y0, $x1, $y1) + { + $this->numObj++; + $info = ['type' => 'link', 'url' => $url, 'rect' => [$x0, $y0, $x1, $y1]]; + $this->o_annotation($this->numObj, 'new', $info); + } + + /** + * add a link in the document to an internal destination (ie. within the document) + * + * @param $label + * @param $x0 + * @param $y0 + * @param $x1 + * @param $y1 + */ + function addInternalLink($label, $x0, $y0, $x1, $y1) + { + $this->numObj++; + $info = ['type' => 'ilink', 'label' => $label, 'rect' => [$x0, $y0, $x1, $y1]]; + $this->o_annotation($this->numObj, 'new', $info); + } + + /** + * set the encryption of the document + * can be used to turn it on and/or set the passwords which it will have. + * also the functions that the user will have are set here, such as print, modify, add + * + * @param string $userPass + * @param string $ownerPass + * @param array $pc + */ + function setEncryption($userPass = '', $ownerPass = '', $pc = []) + { + $p = bindec("11000000"); + + $options = ['print' => 4, 'modify' => 8, 'copy' => 16, 'add' => 32]; + + foreach ($pc as $k => $v) { + if ($v && isset($options[$k])) { + $p += $options[$k]; + } else { + if (isset($options[$v])) { + $p += $options[$v]; + } + } + } + + // implement encryption on the document + if ($this->arc4_objnum == 0) { + // then the block does not exist already, add it. + $this->numObj++; + if (mb_strlen($ownerPass) == 0) { + $ownerPass = $userPass; + } + + $this->o_encryption($this->numObj, 'new', ['user' => $userPass, 'owner' => $ownerPass, 'p' => $p]); + } + } + + /** + * should be used for internal checks, not implemented as yet + */ + function checkAllHere() + { + } + + /** + * return the pdf stream as a string returned from the function + * + * @param bool $debug + * @return string + */ + function output($debug = false) + { + if ($debug) { + // turn compression off + $this->options['compression'] = false; + } + + if ($this->javascript) { + $this->numObj++; + + $js_id = $this->numObj; + $this->o_embedjs($js_id, 'new'); + $this->o_javascript(++$this->numObj, 'new', $this->javascript); + + $id = $this->catalogId; + + $this->o_indirect_references($this->indirectReferenceId, 'add', ['JavaScript' => $js_id]); + } + + if ($this->fileIdentifier === '') { + $tmp = implode('', $this->objects[$this->infoObject]['info']); + $this->fileIdentifier = md5('DOMPDF' . __FILE__ . $tmp . microtime() . mt_rand()); + } + + if ($this->arc4_objnum) { + $this->o_encryption($this->arc4_objnum, 'keys'); + $this->ARC4_init($this->encryptionKey); + } + + $this->checkAllHere(); + + $xref = []; + $content = '%PDF-' . self::PDF_VERSION; + $pos = mb_strlen($content, '8bit'); + + // pre-process o_font objects before output of all objects + foreach ($this->objects as $k => $v) { + if ($v['t'] === 'font') { + $this->o_font($k, 'add'); + } + } + + foreach ($this->objects as $k => $v) { + $tmp = 'o_' . $v['t']; + $cont = $this->$tmp($k, 'out'); + $content .= $cont; + $xref[] = $pos + 1; //+1 to account for \n at the start of each object + $pos += mb_strlen($cont, '8bit'); + } + + $content .= "\nxref\n0 " . (count($xref) + 1) . "\n0000000000 65535 f \n"; + + foreach ($xref as $p) { + $content .= str_pad($p, 10, "0", STR_PAD_LEFT) . " 00000 n \n"; + } + + $content .= "trailer\n<<\n" . + '/Size ' . (count($xref) + 1) . "\n" . + '/Root 1 0 R' . "\n" . + '/Info ' . $this->infoObject . " 0 R\n" + ; + + // if encryption has been applied to this document then add the marker for this dictionary + if ($this->arc4_objnum > 0) { + $content .= '/Encrypt ' . $this->arc4_objnum . " 0 R\n"; + } + + $content .= '/ID[<' . $this->fileIdentifier . '><' . $this->fileIdentifier . ">]\n"; + + // account for \n added at start of xref table + $pos++; + + $content .= ">>\nstartxref\n$pos\n%%EOF\n"; + + if (count($this->byteRange) > 0) { + foreach ($this->byteRange as $k => $v) { + $tmp = 'o_' . $v['t']; + $this->$tmp($k, 'byterange', ['content' => &$content]); + } + } + + return $content; + } + + /** + * initialize a new document + * if this is called on an existing document results may be unpredictable, but the existing document would be lost at minimum + * this function is called automatically by the constructor function + * + * @param array $pageSize + */ + private function newDocument($pageSize = [0, 0, 612, 792]) + { + $this->numObj = 0; + $this->objects = []; + + $this->numObj++; + $this->o_catalog($this->numObj, 'new'); + + $this->numObj++; + $this->o_outlines($this->numObj, 'new'); + + $this->numObj++; + $this->o_pages($this->numObj, 'new'); + + $this->o_pages($this->numObj, 'mediaBox', $pageSize); + $this->currentNode = 3; + + $this->numObj++; + $this->o_procset($this->numObj, 'new'); + + $this->numObj++; + $this->o_info($this->numObj, 'new'); + + $this->numObj++; + $this->o_page($this->numObj, 'new'); + + // need to store the first page id as there is no way to get it to the user during + // startup + $this->firstPageId = $this->currentContents; + } + + /** + * open the font file and return a php structure containing it. + * first check if this one has been done before and saved in a form more suited to php + * note that if a php serialized version does not exist it will try and make one, but will + * require write access to the directory to do it... it is MUCH faster to have these serialized + * files. + * + * @param $font + */ + private function openFont($font) + { + // assume that $font contains the path and file but not the extension + $name = basename($font); + $dir = dirname($font); + + $fontcache = $this->fontcache; + if ($fontcache == '') { + $fontcache = $dir; + } + + //$name filename without folder and extension of font metrics + //$dir folder of font metrics + //$fontcache folder of runtime created php serialized version of font metrics. + // If this is not given, the same folder as the font metrics will be used. + // Storing and reusing serialized versions improves speed much + + $this->addMessage("openFont: $font - $name"); + + if (!$this->isUnicode || in_array(mb_strtolower(basename($name)), self::$coreFonts)) { + $metrics_name = "$name.afm"; + } else { + $metrics_name = "$name.ufm"; + } + + $cache_name = "$metrics_name.json"; + $this->addMessage("metrics: $metrics_name, cache: $cache_name"); + + if (file_exists($fontcache . '/' . $cache_name)) { + $this->addMessage("openFont: json metrics file exists $fontcache/$cache_name"); + $cached_font_info = json_decode(file_get_contents($fontcache . '/' . $cache_name), true); + if (!isset($cached_font_info['_version_']) || $cached_font_info['_version_'] != $this->fontcacheVersion) { + $this->addMessage('openFont: font cache is out of date, regenerating'); + } else { + $this->fonts[$font] = $cached_font_info; + } + } + + if (!isset($this->fonts[$font]) && file_exists("$dir/$metrics_name")) { + // then rebuild the php_.afm file from the .afm file + $this->addMessage("openFont: build php file from $dir/$metrics_name"); + $data = []; + + // 20 => 'space' + $data['codeToName'] = []; + + // Since we're not going to enable Unicode for the core fonts we need to use a font-based + // setting for Unicode support rather than a global setting. + $data['isUnicode'] = (strtolower(substr($metrics_name, -3)) !== 'afm'); + + $cidtogid = ''; + if ($data['isUnicode']) { + $cidtogid = str_pad('', 256 * 256 * 2, "\x00"); + } + + $file = file("$dir/$metrics_name"); + + foreach ($file as $rowA) { + $row = trim($rowA); + $pos = strpos($row, ' '); + + if ($pos) { + // then there must be some keyword + $key = substr($row, 0, $pos); + switch ($key) { + case 'FontName': + case 'FullName': + case 'FamilyName': + case 'PostScriptName': + case 'Weight': + case 'ItalicAngle': + case 'IsFixedPitch': + case 'CharacterSet': + case 'UnderlinePosition': + case 'UnderlineThickness': + case 'Version': + case 'EncodingScheme': + case 'CapHeight': + case 'XHeight': + case 'Ascender': + case 'Descender': + case 'StdHW': + case 'StdVW': + case 'StartCharMetrics': + case 'FontHeightOffset': // OAR - Added so we can offset the height calculation of a Windows font. Otherwise it's too big. + $data[$key] = trim(substr($row, $pos)); + break; + + case 'FontBBox': + $data[$key] = explode(' ', trim(substr($row, $pos))); + break; + + //C 39 ; WX 222 ; N quoteright ; B 53 463 157 718 ; + case 'C': // Found in AFM files + $bits = explode(';', trim($row)); + $dtmp = ['C' => null, 'N' => null, 'WX' => null, 'B' => []]; + + foreach ($bits as $bit) { + $bits2 = explode(' ', trim($bit)); + if (mb_strlen($bits2[0], '8bit') == 0) { + continue; + } + + if (count($bits2) > 2) { + $dtmp[$bits2[0]] = []; + for ($i = 1; $i < count($bits2); $i++) { + $dtmp[$bits2[0]][] = $bits2[$i]; + } + } else { + if (count($bits2) == 2) { + $dtmp[$bits2[0]] = $bits2[1]; + } + } + } + + $c = (int)$dtmp['C']; + $n = $dtmp['N']; + $width = floatval($dtmp['WX']); + + if ($c >= 0) { + if (!ctype_xdigit($n) || $c != hexdec($n)) { + $data['codeToName'][$c] = $n; + } + $data['C'][$c] = $width; + } elseif (isset($n)) { + $data['C'][$n] = $width; + } + + if (!isset($data['MissingWidth']) && $c === -1 && $n === '.notdef') { + $data['MissingWidth'] = $width; + } + + break; + + // U 827 ; WX 0 ; N squaresubnosp ; G 675 ; + case 'U': // Found in UFM files + if (!$data['isUnicode']) { + break; + } + + $bits = explode(';', trim($row)); + $dtmp = ['G' => null, 'N' => null, 'U' => null, 'WX' => null]; + + foreach ($bits as $bit) { + $bits2 = explode(' ', trim($bit)); + if (mb_strlen($bits2[0], '8bit') === 0) { + continue; + } + + if (count($bits2) > 2) { + $dtmp[$bits2[0]] = []; + for ($i = 1; $i < count($bits2); $i++) { + $dtmp[$bits2[0]][] = $bits2[$i]; + } + } else { + if (count($bits2) == 2) { + $dtmp[$bits2[0]] = $bits2[1]; + } + } + } + + $c = (int)$dtmp['U']; + $n = $dtmp['N']; + $glyph = $dtmp['G']; + $width = floatval($dtmp['WX']); + + if ($c >= 0) { + // Set values in CID to GID map + if ($c >= 0 && $c < 0xFFFF && $glyph) { + $cidtogid[$c * 2] = chr($glyph >> 8); + $cidtogid[$c * 2 + 1] = chr($glyph & 0xFF); + } + + if (!ctype_xdigit($n) || $c != hexdec($n)) { + $data['codeToName'][$c] = $n; + } + $data['C'][$c] = $width; + } elseif (isset($n)) { + $data['C'][$n] = $width; + } + + if (!isset($data['MissingWidth']) && $c === -1 && $n === '.notdef') { + $data['MissingWidth'] = $width; + } + + break; + + case 'KPX': + break; // don't include them as they are not used yet + //KPX Adieresis yacute -40 + /*$bits = explode(' ', trim($row)); + $data['KPX'][$bits[1]][$bits[2]] = $bits[3]; + break;*/ + } + } + } + + if ($this->compressionReady && $this->options['compression']) { + // then implement ZLIB based compression on CIDtoGID string + $data['CIDtoGID_Compressed'] = true; + $cidtogid = gzcompress($cidtogid, 6); + } + $data['CIDtoGID'] = base64_encode($cidtogid); + $data['_version_'] = $this->fontcacheVersion; + $this->fonts[$font] = $data; + + //Because of potential trouble with php safe mode, expect that the folder already exists. + //If not existing, this will hit performance because of missing cached results. + if (is_dir($fontcache) && is_writable($fontcache)) { + file_put_contents("$fontcache/$cache_name", json_encode($data, JSON_PRETTY_PRINT)); + } + $data = null; + } + + if (!isset($this->fonts[$font])) { + $this->addMessage("openFont: no font file found for $font. Do you need to run load_font.php?"); + } + } + + /** + * if the font is not loaded then load it and make the required object + * else just make it the current font + * the encoding array can contain 'encoding'=> 'none','WinAnsiEncoding','MacRomanEncoding' or 'MacExpertEncoding' + * note that encoding='none' will need to be used for symbolic fonts + * and 'differences' => an array of mappings between numbers 0->255 and character names. + * + * @param string $fontName + * @param string $encoding + * @param bool $set + * @param bool $isSubsetting + * @return int + * @throws FontNotFoundException + */ + function selectFont($fontName, $encoding = '', $set = true, $isSubsetting = true) + { + if ($fontName === null || $fontName === '') { + return $this->currentFontNum; + } + + $ext = substr($fontName, -4); + if ($ext === '.afm' || $ext === '.ufm') { + $fontName = substr($fontName, 0, mb_strlen($fontName) - 4); + } + + if (!isset($this->fonts[$fontName])) { + $this->addMessage("selectFont: selecting - $fontName - $encoding, $set"); + + // load the file + $this->openFont($fontName); + + if (isset($this->fonts[$fontName])) { + $this->numObj++; + $this->numFonts++; + + $font = &$this->fonts[$fontName]; + + $name = basename($fontName); + $options = ['name' => $name, 'fontFileName' => $fontName, 'isSubsetting' => $isSubsetting]; + + if (is_array($encoding)) { + // then encoding and differences might be set + if (isset($encoding['encoding'])) { + $options['encoding'] = $encoding['encoding']; + } + + if (isset($encoding['differences'])) { + $options['differences'] = $encoding['differences']; + } + } else { + if (mb_strlen($encoding, '8bit')) { + // then perhaps only the encoding has been set + $options['encoding'] = $encoding; + } + } + + $this->o_font($this->numObj, 'new', $options); + + if (file_exists("$fontName.ttf")) { + $fileSuffix = 'ttf'; + } elseif (file_exists("$fontName.TTF")) { + $fileSuffix = 'TTF'; + } elseif (file_exists("$fontName.pfb")) { + $fileSuffix = 'pfb'; + } elseif (file_exists("$fontName.PFB")) { + $fileSuffix = 'PFB'; + } else { + $fileSuffix = ''; + } + + $font['fileSuffix'] = $fileSuffix; + + $font['fontNum'] = $this->numFonts; + $font['isSubsetting'] = $isSubsetting && $font['isUnicode'] && strtolower($fileSuffix) === 'ttf'; + + // also set the differences here, note that this means that these will take effect only the + //first time that a font is selected, else they are ignored + if (isset($options['differences'])) { + $font['differences'] = $options['differences']; + } + } + } + + if ($set && isset($this->fonts[$fontName])) { + // so if for some reason the font was not set in the last one then it will not be selected + $this->currentBaseFont = $fontName; + + // the next lines mean that if a new font is selected, then the current text state will be + // applied to it as well. + $this->currentFont = $this->currentBaseFont; + $this->currentFontNum = $this->fonts[$this->currentFont]['fontNum']; + } + + return $this->currentFontNum; + } + + /** + * sets up the current font, based on the font families, and the current text state + * note that this system is quite flexible, a bold-italic font can be completely different to a + * italic-bold font, and even bold-bold will have to be defined within the family to have meaning + * This function is to be called whenever the currentTextState is changed, it will update + * the currentFont setting to whatever the appropriate family one is. + * If the user calls selectFont themselves then that will reset the currentBaseFont, and the currentFont + * This function will change the currentFont to whatever it should be, but will not change the + * currentBaseFont. + */ + private function setCurrentFont() + { + // if (strlen($this->currentBaseFont) == 0){ + // // then assume an initial font + // $this->selectFont($this->defaultFont); + // } + // $cf = substr($this->currentBaseFont,strrpos($this->currentBaseFont,'/')+1); + // if (strlen($this->currentTextState) + // && isset($this->fontFamilies[$cf]) + // && isset($this->fontFamilies[$cf][$this->currentTextState])){ + // // then we are in some state or another + // // and this font has a family, and the current setting exists within it + // // select the font, then return it + // $nf = substr($this->currentBaseFont,0,strrpos($this->currentBaseFont,'/')+1).$this->fontFamilies[$cf][$this->currentTextState]; + // $this->selectFont($nf,'',0); + // $this->currentFont = $nf; + // $this->currentFontNum = $this->fonts[$nf]['fontNum']; + // } else { + // // the this font must not have the right family member for the current state + // // simply assume the base font + $this->currentFont = $this->currentBaseFont; + $this->currentFontNum = $this->fonts[$this->currentFont]['fontNum']; + // } + } + + /** + * function for the user to find out what the ID is of the first page that was created during + * startup - useful if they wish to add something to it later. + * + * @return int + */ + function getFirstPageId() + { + return $this->firstPageId; + } + + /** + * add content to the currently active object + * + * @param $content + */ + private function addContent($content) + { + $this->objects[$this->currentContents]['c'] .= $content; + } + + /** + * sets the color for fill operations + * + * @param array $color + * @param bool $force + */ + function setColor($color, $force = false) + { + $new_color = [$color[0], $color[1], $color[2], isset($color[3]) ? $color[3] : null]; + + if (!$force && $this->currentColor == $new_color) { + return; + } + + if (isset($new_color[3])) { + $this->currentColor = $new_color; + $this->addContent(vsprintf("\n%.3F %.3F %.3F %.3F k", $this->currentColor)); + } else { + if (isset($new_color[2])) { + $this->currentColor = $new_color; + $this->addContent(vsprintf("\n%.3F %.3F %.3F rg", $this->currentColor)); + } + } + } + + /** + * @param string $fillRule + */ + function setFillRule($fillRule) + { + if (!in_array($fillRule, ["nonzero", "evenodd"])) { + return; + } + + $this->fillRule = $fillRule; + } + + /** + * sets the color for stroke operations + * + * @param array $color + * @param bool $force + */ + function setStrokeColor($color, $force = false) + { + $new_color = [$color[0], $color[1], $color[2], isset($color[3]) ? $color[3] : null]; + + if (!$force && $this->currentStrokeColor == $new_color) { + return; + } + + if (isset($new_color[3])) { + $this->currentStrokeColor = $new_color; + $this->addContent(vsprintf("\n%.3F %.3F %.3F %.3F K", $this->currentStrokeColor)); + } else { + if (isset($new_color[2])) { + $this->currentStrokeColor = $new_color; + $this->addContent(vsprintf("\n%.3F %.3F %.3F RG", $this->currentStrokeColor)); + } + } + } + + /** + * Set the graphics state for compositions + * + * @param $parameters + */ + function setGraphicsState($parameters) + { + // Create a new graphics state object if necessary + if (($gstate = array_search($parameters, $this->gstates)) === false) { + $this->numObj++; + $this->o_extGState($this->numObj, 'new', $parameters); + $gstate = $this->numStates; + $this->gstates[$gstate] = $parameters; + } + $this->addContent("\n/GS$gstate gs"); + } + + /** + * Set current blend mode & opacity for lines. + * + * Valid blend modes are: + * + * Normal, Multiply, Screen, Overlay, Darken, Lighten, + * ColorDogde, ColorBurn, HardLight, SoftLight, Difference, + * Exclusion + * + * @param string $mode the blend mode to use + * @param float $opacity 0.0 fully transparent, 1.0 fully opaque + */ + function setLineTransparency($mode, $opacity) + { + static $blend_modes = [ + "Normal", + "Multiply", + "Screen", + "Overlay", + "Darken", + "Lighten", + "ColorDogde", + "ColorBurn", + "HardLight", + "SoftLight", + "Difference", + "Exclusion" + ]; + + if (!in_array($mode, $blend_modes)) { + $mode = "Normal"; + } + + if (is_null($this->currentLineTransparency)) { + $this->currentLineTransparency = []; + } + + if ($mode === (key_exists('mode', $this->currentLineTransparency) ? + $this->currentLineTransparency['mode'] : '') && + $opacity === (key_exists('opacity', $this->currentLineTransparency) ? + $this->currentLineTransparency["opacity"] : '')) { + return; + } + + $this->currentLineTransparency["mode"] = $mode; + $this->currentLineTransparency["opacity"] = $opacity; + + $options = [ + "BM" => "/$mode", + "CA" => (float)$opacity + ]; + + $this->setGraphicsState($options); + } + + /** + * Set current blend mode & opacity for filled objects. + * + * Valid blend modes are: + * + * Normal, Multiply, Screen, Overlay, Darken, Lighten, + * ColorDogde, ColorBurn, HardLight, SoftLight, Difference, + * Exclusion + * + * @param string $mode the blend mode to use + * @param float $opacity 0.0 fully transparent, 1.0 fully opaque + */ + function setFillTransparency($mode, $opacity) + { + static $blend_modes = [ + "Normal", + "Multiply", + "Screen", + "Overlay", + "Darken", + "Lighten", + "ColorDogde", + "ColorBurn", + "HardLight", + "SoftLight", + "Difference", + "Exclusion" + ]; + + if (!in_array($mode, $blend_modes)) { + $mode = "Normal"; + } + + if (is_null($this->currentFillTransparency)) { + $this->currentFillTransparency = []; + } + + if ($mode === (key_exists('mode', $this->currentFillTransparency) ? + $this->currentFillTransparency['mode'] : '') && + $opacity === (key_exists('opacity', $this->currentFillTransparency) ? + $this->currentFillTransparency["opacity"] : '')) { + return; + } + + $this->currentFillTransparency["mode"] = $mode; + $this->currentFillTransparency["opacity"] = $opacity; + + $options = [ + "BM" => "/$mode", + "ca" => (float)$opacity, + ]; + + $this->setGraphicsState($options); + } + + /** + * draw a line from one set of coordinates to another + * + * @param float $x1 + * @param float $y1 + * @param float $x2 + * @param float $y2 + * @param bool $stroke + */ + function line($x1, $y1, $x2, $y2, $stroke = true) + { + $this->addContent(sprintf("\n%.3F %.3F m %.3F %.3F l", $x1, $y1, $x2, $y2)); + + if ($stroke) { + $this->addContent(' S'); + } + } + + /** + * draw a bezier curve based on 4 control points + * + * @param float $x0 + * @param float $y0 + * @param float $x1 + * @param float $y1 + * @param float $x2 + * @param float $y2 + * @param float $x3 + * @param float $y3 + */ + function curve($x0, $y0, $x1, $y1, $x2, $y2, $x3, $y3) + { + // in the current line style, draw a bezier curve from (x0,y0) to (x3,y3) using the other two points + // as the control points for the curve. + $this->addContent( + sprintf("\n%.3F %.3F m %.3F %.3F %.3F %.3F %.3F %.3F c S", $x0, $y0, $x1, $y1, $x2, $y2, $x3, $y3) + ); + } + + /** + * draw a part of an ellipse + * + * @param float $x0 + * @param float $y0 + * @param float $astart + * @param float $afinish + * @param float $r1 + * @param float $r2 + * @param float $angle + * @param int $nSeg + */ + function partEllipse($x0, $y0, $astart, $afinish, $r1, $r2 = 0, $angle = 0, $nSeg = 8) + { + $this->ellipse($x0, $y0, $r1, $r2, $angle, $nSeg, $astart, $afinish, false); + } + + /** + * draw a filled ellipse + * + * @param float $x0 + * @param float $y0 + * @param float $r1 + * @param float $r2 + * @param float $angle + * @param int $nSeg + * @param float $astart + * @param float $afinish + */ + function filledEllipse($x0, $y0, $r1, $r2 = 0, $angle = 0, $nSeg = 8, $astart = 0, $afinish = 360) + { + $this->ellipse($x0, $y0, $r1, $r2, $angle, $nSeg, $astart, $afinish, true, true); + } + + /** + * @param float $x + * @param float $y + */ + function lineTo($x, $y) + { + $this->addContent(sprintf("\n%.3F %.3F l", $x, $y)); + } + + /** + * @param float $x + * @param float $y + */ + function moveTo($x, $y) + { + $this->addContent(sprintf("\n%.3F %.3F m", $x, $y)); + } + + /** + * draw a bezier curve based on 4 control points + * + * @param float $x1 + * @param float $y1 + * @param float $x2 + * @param float $y2 + * @param float $x3 + * @param float $y3 + */ + function curveTo($x1, $y1, $x2, $y2, $x3, $y3) + { + $this->addContent(sprintf("\n%.3F %.3F %.3F %.3F %.3F %.3F c", $x1, $y1, $x2, $y2, $x3, $y3)); + } + + /** + * draw a bezier curve based on 4 control points + * + * @param float $cpx + * @param float $cpy + * @param float $x + * @param float $y + */ + function quadTo($cpx, $cpy, $x, $y) + { + $this->addContent(sprintf("\n%.3F %.3F %.3F %.3F v", $cpx, $cpy, $x, $y)); + } + + function closePath() + { + $this->addContent(' h'); + } + + function endPath() + { + $this->addContent(' n'); + } + + /** + * draw an ellipse + * note that the part and filled ellipse are just special cases of this function + * + * draws an ellipse in the current line style + * centered at $x0,$y0, radii $r1,$r2 + * if $r2 is not set, then a circle is drawn + * from $astart to $afinish, measured in degrees, running anti-clockwise from the right hand side of the ellipse. + * nSeg is not allowed to be less than 2, as this will simply draw a line (and will even draw a + * pretty crappy shape at 2, as we are approximating with bezier curves. + * + * @param float $x0 + * @param float $y0 + * @param float $r1 + * @param float $r2 + * @param float $angle + * @param int $nSeg + * @param float $astart + * @param float $afinish + * @param bool $close + * @param bool $fill + * @param bool $stroke + * @param bool $incomplete + */ + function ellipse( + $x0, + $y0, + $r1, + $r2 = 0, + $angle = 0, + $nSeg = 8, + $astart = 0, + $afinish = 360, + $close = true, + $fill = false, + $stroke = true, + $incomplete = false + ) { + if ($r1 == 0) { + return; + } + + if ($r2 == 0) { + $r2 = $r1; + } + + if ($nSeg < 2) { + $nSeg = 2; + } + + $astart = deg2rad((float)$astart); + $afinish = deg2rad((float)$afinish); + $totalAngle = $afinish - $astart; + + $dt = $totalAngle / $nSeg; + $dtm = $dt / 3; + + if ($angle != 0) { + $a = -1 * deg2rad((float)$angle); + + $this->addContent( + sprintf("\n q %.3F %.3F %.3F %.3F %.3F %.3F cm", cos($a), -sin($a), sin($a), cos($a), $x0, $y0) + ); + + $x0 = 0; + $y0 = 0; + } + + $t1 = $astart; + $a0 = $x0 + $r1 * cos($t1); + $b0 = $y0 + $r2 * sin($t1); + $c0 = -$r1 * sin($t1); + $d0 = $r2 * cos($t1); + + if (!$incomplete) { + $this->addContent(sprintf("\n%.3F %.3F m ", $a0, $b0)); + } + + for ($i = 1; $i <= $nSeg; $i++) { + // draw this bit of the total curve + $t1 = $i * $dt + $astart; + $a1 = $x0 + $r1 * cos($t1); + $b1 = $y0 + $r2 * sin($t1); + $c1 = -$r1 * sin($t1); + $d1 = $r2 * cos($t1); + + $this->addContent( + sprintf( + "\n%.3F %.3F %.3F %.3F %.3F %.3F c", + ($a0 + $c0 * $dtm), + ($b0 + $d0 * $dtm), + ($a1 - $c1 * $dtm), + ($b1 - $d1 * $dtm), + $a1, + $b1 + ) + ); + + $a0 = $a1; + $b0 = $b1; + $c0 = $c1; + $d0 = $d1; + } + + if (!$incomplete) { + if ($fill) { + $this->addContent(' f'); + } + + if ($stroke) { + if ($close) { + $this->addContent(' s'); // small 's' signifies closing the path as well + } else { + $this->addContent(' S'); + } + } + } + + if ($angle != 0) { + $this->addContent(' Q'); + } + } + + /** + * this sets the line drawing style. + * width, is the thickness of the line in user units + * cap is the type of cap to put on the line, values can be 'butt','round','square' + * where the diffference between 'square' and 'butt' is that 'square' projects a flat end past the + * end of the line. + * join can be 'miter', 'round', 'bevel' + * dash is an array which sets the dash pattern, is a series of length values, which are the lengths of the + * on and off dashes. + * (2) represents 2 on, 2 off, 2 on , 2 off ... + * (2,1) is 2 on, 1 off, 2 on, 1 off.. etc + * phase is a modifier on the dash pattern which is used to shift the point at which the pattern starts. + * + * @param float $width + * @param string $cap + * @param string $join + * @param array $dash + * @param int $phase + */ + function setLineStyle($width = 1, $cap = '', $join = '', $dash = '', $phase = 0) + { + // this is quite inefficient in that it sets all the parameters whenever 1 is changed, but will fix another day + $string = ''; + + if ($width > 0) { + $string .= "$width w"; + } + + $ca = ['butt' => 0, 'round' => 1, 'square' => 2]; + + if (isset($ca[$cap])) { + $string .= " $ca[$cap] J"; + } + + $ja = ['miter' => 0, 'round' => 1, 'bevel' => 2]; + + if (isset($ja[$join])) { + $string .= " $ja[$join] j"; + } + + if (is_array($dash)) { + $string .= ' [ ' . implode(' ', $dash) . " ] $phase d"; + } + + $this->currentLineStyle = $string; + $this->addContent("\n$string"); + } + + /** + * draw a polygon, the syntax for this is similar to the GD polygon command + * + * @param float[] $p + * @param bool $fill + */ + public function polygon(array $p, bool $fill = false): void + { + $this->addContent(sprintf("\n%.3F %.3F m ", $p[0], $p[1])); + + $n = count($p); + for ($i = 2; $i < $n; $i = $i + 2) { + $this->addContent(sprintf("%.3F %.3F l ", $p[$i], $p[$i + 1])); + } + + if ($fill) { + $this->addContent(' f'); + } else { + $this->addContent(' S'); + } + } + + /** + * a filled rectangle, note that it is the width and height of the rectangle which are the secondary parameters, not + * the coordinates of the upper-right corner + * + * @param float $x1 + * @param float $y1 + * @param float $width + * @param float $height + */ + function filledRectangle($x1, $y1, $width, $height) + { + $this->addContent(sprintf("\n%.3F %.3F %.3F %.3F re f", $x1, $y1, $width, $height)); + } + + /** + * draw a rectangle, note that it is the width and height of the rectangle which are the secondary parameters, not + * the coordinates of the upper-right corner + * + * @param float $x1 + * @param float $y1 + * @param float $width + * @param float $height + */ + function rectangle($x1, $y1, $width, $height) + { + $this->addContent(sprintf("\n%.3F %.3F %.3F %.3F re S", $x1, $y1, $width, $height)); + } + + /** + * draw a rectangle, note that it is the width and height of the rectangle which are the secondary parameters, not + * the coordinates of the upper-right corner + * + * @param float $x1 + * @param float $y1 + * @param float $width + * @param float $height + */ + function rect($x1, $y1, $width, $height) + { + $this->addContent(sprintf("\n%.3F %.3F %.3F %.3F re", $x1, $y1, $width, $height)); + } + + function stroke() + { + $this->addContent("\nS"); + } + + function fill() + { + $this->addContent("\nf" . ($this->fillRule === "evenodd" ? "*" : "")); + } + + function fillStroke() + { + $this->addContent("\nb" . ($this->fillRule === "evenodd" ? "*" : "")); + } + + /** + * @param string $subtype + * @param integer $x + * @param integer $y + * @param integer $w + * @param integer $h + * @return int + */ + function addXObject($subtype, $x, $y, $w, $h) + { + $id = ++$this->numObj; + $this->o_xobject($id, 'new', ['Subtype' => $subtype, 'bbox' => [$x, $y, $w, $h]]); + return $id; + } + + /** + * @param integer $numXObject + * @param string $type + * @param array $options + */ + function setXObjectResource($numXObject, $type, $options) + { + if (in_array($type, ['procset', 'font', 'xObject'])) { + $this->o_xobject($numXObject, $type, $options); + } + } + + /** + * add signature + * + * $fieldSigId = $cpdf->addFormField(Cpdf::ACROFORM_FIELD_SIG, 'Signature1', 0, 0, 0, 0, 0); + * + * $signatureId = $cpdf->addSignature([ + * 'signcert' => file_get_contents('dompdf.crt'), + * 'privkey' => file_get_contents('dompdf.key'), + * 'password' => 'password', + * 'name' => 'DomPDF DEMO', + * 'location' => 'Home', + * 'reason' => 'First Form', + * 'contactinfo' => 'info' + * ]); + * $cpdf->setFormFieldValue($fieldSigId, "$signatureId 0 R"); + * + * @param string $signcert + * @param string $privkey + * @param string $password + * @param string|null $name + * @param string|null $location + * @param string|null $reason + * @param string|null $contactinfo + * @return int + */ + function addSignature($signcert, $privkey, $password = '', $name = null, $location = null, $reason = null, $contactinfo = null) { + $sigId = ++$this->numObj; + $this->o_sig($sigId, 'new', [ + 'SignCert' => $signcert, + 'PrivKey' => $privkey, + 'Password' => $password, + 'Name' => $name, + 'Location' => $location, + 'Reason' => $reason, + 'ContactInfo' => $contactinfo + ]); + + return $sigId; + } + + /** + * add field to form + * + * @param string $type ACROFORM_FIELD_* + * @param string $name + * @param $x0 + * @param $y0 + * @param $x1 + * @param $y1 + * @param integer $ff Field Flag ACROFORM_FIELD_*_* + * @param float $size + * @param array $color + * @return int + */ + public function addFormField($type, $name, $x0, $y0, $x1, $y1, $ff = 0, $size = 10.0, $color = [0, 0, 0]) + { + if (!$this->numFonts) { + $this->selectFont($this->defaultFont); + } + + $color = implode(' ', $color) . ' rg'; + + $currentFontNum = $this->currentFontNum; + $font = array_filter( + $this->objects[$this->currentNode]['info']['fonts'], + function ($item) use ($currentFontNum) { return $item['fontNum'] == $currentFontNum; } + ); + + $this->o_acroform($this->acroFormId, 'font', + ['objNum' => $font[0]['objNum'], 'fontNum' => $font[0]['fontNum']]); + + $fieldId = ++$this->numObj; + $this->o_field($fieldId, 'new', [ + 'rect' => [$x0, $y0, $x1, $y1], + 'F' => 4, + 'FT' => "/$type", + 'T' => $name, + 'Ff' => $ff, + 'pageid' => $this->currentPage, + 'da' => "$color /F$this->currentFontNum " . sprintf('%.1F Tf ', $size) + ]); + + return $fieldId; + } + + /** + * set Field value + * + * @param integer $numFieldObj + * @param string $value + */ + public function setFormFieldValue($numFieldObj, $value) + { + $this->o_field($numFieldObj, 'set', ['value' => $value]); + } + + /** + * set Field value (reference) + * + * @param integer $numFieldObj + * @param integer $numObj Object number + */ + public function setFormFieldRefValue($numFieldObj, $numObj) + { + $this->o_field($numFieldObj, 'set', ['refvalue' => $numObj]); + } + + /** + * set Field Appearanc (reference) + * + * @param integer $numFieldObj + * @param integer $normalNumObj + * @param integer|null $rolloverNumObj + * @param integer|null $downNumObj + */ + public function setFormFieldAppearance($numFieldObj, $normalNumObj, $rolloverNumObj = null, $downNumObj = null) + { + $appearance['N'] = $normalNumObj; + + if ($rolloverNumObj !== null) { + $appearance['R'] = $rolloverNumObj; + } + + if ($downNumObj !== null) { + $appearance['D'] = $downNumObj; + } + + $this->o_field($numFieldObj, 'set', ['appearance' => $appearance]); + } + + /** + * set Choice Field option values + * + * @param integer $numFieldObj + * @param array $value + */ + public function setFormFieldOpt($numFieldObj, $value) + { + $this->o_field($numFieldObj, 'set', ['options' => $value]); + } + + /** + * add form to document + * + * @param integer $sigFlags + * @param boolean $needAppearances + */ + public function addForm($sigFlags = 0, $needAppearances = false) + { + $this->acroFormId = ++$this->numObj; + $this->o_acroform($this->acroFormId, 'new', [ + 'NeedAppearances' => $needAppearances ? 'true' : 'false', + 'SigFlags' => $sigFlags + ]); + } + + /** + * save the current graphic state + */ + function save() + { + // we must reset the color cache or it will keep bad colors after clipping + $this->currentColor = null; + $this->currentStrokeColor = null; + $this->addContent("\nq"); + } + + /** + * restore the last graphic state + */ + function restore() + { + // we must reset the color cache or it will keep bad colors after clipping + $this->currentColor = null; + $this->currentStrokeColor = null; + $this->addContent("\nQ"); + } + + /** + * draw a clipping rectangle, all the elements added after this will be clipped + * + * @param float $x1 + * @param float $y1 + * @param float $width + * @param float $height + */ + function clippingRectangle($x1, $y1, $width, $height) + { + $this->save(); + $this->addContent(sprintf("\n%.3F %.3F %.3F %.3F re W n", $x1, $y1, $width, $height)); + } + + /** + * draw a clipping rounded rectangle, all the elements added after this will be clipped + * + * @param float $x1 + * @param float $y1 + * @param float $w + * @param float $h + * @param float $rTL + * @param float $rTR + * @param float $rBR + * @param float $rBL + */ + function clippingRectangleRounded($x1, $y1, $w, $h, $rTL, $rTR, $rBR, $rBL) + { + $this->save(); + + // start: top edge, left end + $this->addContent(sprintf("\n%.3F %.3F m ", $x1, $y1 - $rTL + $h)); + + // line: bottom edge, left end + $this->addContent(sprintf("\n%.3F %.3F l ", $x1, $y1 + $rBL)); + + // curve: bottom-left corner + $this->ellipse($x1 + $rBL, $y1 + $rBL, $rBL, 0, 0, 8, 180, 270, false, false, false, true); + + // line: right edge, bottom end + $this->addContent(sprintf("\n%.3F %.3F l ", $x1 + $w - $rBR, $y1)); + + // curve: bottom-right corner + $this->ellipse($x1 + $w - $rBR, $y1 + $rBR, $rBR, 0, 0, 8, 270, 360, false, false, false, true); + + // line: right edge, top end + $this->addContent(sprintf("\n%.3F %.3F l ", $x1 + $w, $y1 + $h - $rTR)); + + // curve: bottom-right corner + $this->ellipse($x1 + $w - $rTR, $y1 + $h - $rTR, $rTR, 0, 0, 8, 0, 90, false, false, false, true); + + // line: bottom edge, right end + $this->addContent(sprintf("\n%.3F %.3F l ", $x1 + $rTL, $y1 + $h)); + + // curve: top-right corner + $this->ellipse($x1 + $rTL, $y1 + $h - $rTL, $rTL, 0, 0, 8, 90, 180, false, false, false, true); + + // line: top edge, left end + $this->addContent(sprintf("\n%.3F %.3F l ", $x1 + $rBL, $y1)); + + // Close & clip + $this->addContent(" W n"); + } + + /** + * draw a clipping polygon, the syntax for this is similar to the GD polygon command + * + * @param float[] $p + */ + public function clippingPolygon(array $p): void + { + $this->save(); + + $this->addContent(sprintf("\n%.3F %.3F m ", $p[0], $p[1])); + + $n = count($p); + for ($i = 2; $i < $n; $i = $i + 2) { + $this->addContent(sprintf("%.3F %.3F l ", $p[$i], $p[$i + 1])); + } + + $this->addContent("W n"); + } + + /** + * ends the last clipping shape + */ + function clippingEnd() + { + $this->restore(); + } + + /** + * scale + * + * @param float $s_x scaling factor for width as percent + * @param float $s_y scaling factor for height as percent + * @param float $x Origin abscissa + * @param float $y Origin ordinate + */ + function scale($s_x, $s_y, $x, $y) + { + $y = $this->currentPageSize["height"] - $y; + + $tm = [ + $s_x, + 0, + 0, + $s_y, + $x * (1 - $s_x), + $y * (1 - $s_y) + ]; + + $this->transform($tm); + } + + /** + * translate + * + * @param float $t_x movement to the right + * @param float $t_y movement to the bottom + */ + function translate($t_x, $t_y) + { + $tm = [ + 1, + 0, + 0, + 1, + $t_x, + -$t_y + ]; + + $this->transform($tm); + } + + /** + * rotate + * + * @param float $angle angle in degrees for counter-clockwise rotation + * @param float $x Origin abscissa + * @param float $y Origin ordinate + */ + function rotate($angle, $x, $y) + { + $y = $this->currentPageSize["height"] - $y; + + $a = deg2rad($angle); + $cos_a = cos($a); + $sin_a = sin($a); + + $tm = [ + $cos_a, + -$sin_a, + $sin_a, + $cos_a, + $x - $sin_a * $y - $cos_a * $x, + $y - $cos_a * $y + $sin_a * $x, + ]; + + $this->transform($tm); + } + + /** + * skew + * + * @param float $angle_x + * @param float $angle_y + * @param float $x Origin abscissa + * @param float $y Origin ordinate + */ + function skew($angle_x, $angle_y, $x, $y) + { + $y = $this->currentPageSize["height"] - $y; + + $tan_x = tan(deg2rad($angle_x)); + $tan_y = tan(deg2rad($angle_y)); + + $tm = [ + 1, + -$tan_y, + -$tan_x, + 1, + $tan_x * $y, + $tan_y * $x, + ]; + + $this->transform($tm); + } + + /** + * apply graphic transformations + * + * @param array $tm transformation matrix + */ + function transform($tm) + { + $this->addContent(vsprintf("\n %.3F %.3F %.3F %.3F %.3F %.3F cm", $tm)); + } + + /** + * add a new page to the document + * this also makes the new page the current active object + * + * @param int $insert + * @param int $id + * @param string $pos + * @return int + */ + function newPage($insert = 0, $id = 0, $pos = 'after') + { + // if there is a state saved, then go up the stack closing them + // then on the new page, re-open them with the right setings + + if ($this->nStateStack) { + for ($i = $this->nStateStack; $i >= 1; $i--) { + $this->restoreState($i); + } + } + + $this->numObj++; + + if ($insert) { + // the id from the ezPdf class is the id of the contents of the page, not the page object itself + // query that object to find the parent + $rid = $this->objects[$id]['onPage']; + $opt = ['rid' => $rid, 'pos' => $pos]; + $this->o_page($this->numObj, 'new', $opt); + } else { + $this->o_page($this->numObj, 'new'); + } + + // if there is a stack saved, then put that onto the page + if ($this->nStateStack) { + for ($i = 1; $i <= $this->nStateStack; $i++) { + $this->saveState($i); + } + } + + // and if there has been a stroke or fill color set, then transfer them + if (isset($this->currentColor)) { + $this->setColor($this->currentColor, true); + } + + if (isset($this->currentStrokeColor)) { + $this->setStrokeColor($this->currentStrokeColor, true); + } + + // if there is a line style set, then put this in too + if (mb_strlen($this->currentLineStyle, '8bit')) { + $this->addContent("\n$this->currentLineStyle"); + } + + // the call to the o_page object set currentContents to the present page, so this can be returned as the page id + return $this->currentContents; + } + + /** + * Streams the PDF to the client. + * + * @param string $filename The filename to present to the client. + * @param array $options Associative array: 'compress' => 1 or 0 (default 1); 'Attachment' => 1 or 0 (default 1). + */ + function stream($filename = "document.pdf", $options = []) + { + if (headers_sent()) { + die("A Unable to stream pdf: headers already sent"); + } + + if (!isset($options["compress"])) $options["compress"] = true; + if (!isset($options["Attachment"])) $options["Attachment"] = true; + + $debug = !$options['compress']; + $tmp = ltrim($this->output($debug)); + + header("Cache-Control: private"); + header("Content-Type: application/pdf"); + header("Content-Length: " . mb_strlen($tmp, "8bit")); + + $filename = str_replace(["\n", "'"], "", basename($filename, ".pdf")) . ".pdf"; + $attachment = $options["Attachment"] ? "attachment" : "inline"; + + $encoding = mb_detect_encoding($filename); + $fallbackfilename = mb_convert_encoding($filename, "ISO-8859-1", $encoding); + $fallbackfilename = str_replace("\"", "", $fallbackfilename); + $encodedfilename = rawurlencode($filename); + + $contentDisposition = "Content-Disposition: $attachment; filename=\"$fallbackfilename\""; + if ($fallbackfilename !== $filename) { + $contentDisposition .= "; filename*=UTF-8''$encodedfilename"; + } + header($contentDisposition); + + echo $tmp; + flush(); + } + + /** + * return the height in units of the current font in the given size + * + * @param float $size + * + * @return float + */ + public function getFontHeight(float $size): float + { + if (!$this->numFonts) { + $this->selectFont($this->defaultFont); + } + + $font = $this->fonts[$this->currentFont]; + + // for the current font, and the given size, what is the height of the font in user units + if (isset($font['Ascender']) && isset($font['Descender'])) { + $h = $font['Ascender'] - $font['Descender']; + } else { + $h = $font['FontBBox'][3] - $font['FontBBox'][1]; + } + + // have to adjust by a font offset for Windows fonts. unfortunately it looks like + // the bounding box calculations are wrong and I don't know why. + if (isset($font['FontHeightOffset'])) { + // For CourierNew from Windows this needs to be -646 to match the + // Adobe native Courier font. + // + // For FreeMono from GNU this needs to be -337 to match the + // Courier font. + // + // Both have been added manually to the .afm and .ufm files. + $h += (int)$font['FontHeightOffset']; + } + + return $size * $h / 1000; + } + + /** + * @param float $size + * + * @return float + */ + public function getFontXHeight(float $size): float + { + if (!$this->numFonts) { + $this->selectFont($this->defaultFont); + } + + $font = $this->fonts[$this->currentFont]; + + // for the current font, and the given size, what is the height of the font in user units + if (isset($font['XHeight'])) { + $xh = $font['Ascender'] - $font['Descender']; + } else { + $xh = $this->getFontHeight($size) / 2; + } + + return $size * $xh / 1000; + } + + /** + * return the font descender, this will normally return a negative number + * if you add this number to the baseline, you get the level of the bottom of the font + * it is in the pdf user units + * + * @param float $size + * + * @return float + */ + public function getFontDescender(float $size): float + { + // note that this will most likely return a negative value + if (!$this->numFonts) { + $this->selectFont($this->defaultFont); + } + + //$h = $this->fonts[$this->currentFont]['FontBBox'][1]; + $h = $this->fonts[$this->currentFont]['Descender']; + + return $size * $h / 1000; + } + + /** + * filter the text, this is applied to all text just before being inserted into the pdf document + * it escapes the various things that need to be escaped, and so on + * + * @param $text + * @param bool $bom + * @param bool $convert_encoding + * @return string + */ + function filterText($text, $bom = true, $convert_encoding = true) + { + if (!$this->numFonts) { + $this->selectFont($this->defaultFont); + } + + if ($convert_encoding) { + $cf = $this->currentFont; + if (isset($this->fonts[$cf]) && $this->fonts[$cf]['isUnicode']) { + $text = $this->utf8toUtf16BE($text, $bom); + } else { + //$text = html_entity_decode($text, ENT_QUOTES); + $text = mb_convert_encoding($text, self::$targetEncoding, 'UTF-8'); + } + } elseif ($bom) { + $text = $this->utf8toUtf16BE($text, $bom); + } + + // the chr(13) substitution fixes a bug seen in TCPDF (bug #1421290) + return strtr($text, [')' => '\\)', '(' => '\\(', '\\' => '\\\\', chr(13) => '\r']); + } + + /** + * return array containing codepoints (UTF-8 character values) for the + * string passed in. + * + * based on the excellent TCPDF code by Nicola Asuni and the + * RFC for UTF-8 at http://www.faqs.org/rfcs/rfc3629.html + * + * @param string $text UTF-8 string to process + * @return array UTF-8 codepoints array for the string + */ + function utf8toCodePointsArray(&$text) + { + $length = mb_strlen($text, '8bit'); // http://www.php.net/manual/en/function.mb-strlen.php#77040 + $unicode = []; // array containing unicode values + $bytes = []; // array containing single character byte sequences + $numbytes = 1; // number of octets needed to represent the UTF-8 character + + for ($i = 0; $i < $length; $i++) { + $c = ord($text[$i]); // get one string character at time + if (count($bytes) === 0) { // get starting octect + if ($c <= 0x7F) { + $unicode[] = $c; // use the character "as is" because is ASCII + $numbytes = 1; + } elseif (($c >> 0x05) === 0x06) { // 2 bytes character (0x06 = 110 BIN) + $bytes[] = ($c - 0xC0) << 0x06; + $numbytes = 2; + } elseif (($c >> 0x04) === 0x0E) { // 3 bytes character (0x0E = 1110 BIN) + $bytes[] = ($c - 0xE0) << 0x0C; + $numbytes = 3; + } elseif (($c >> 0x03) === 0x1E) { // 4 bytes character (0x1E = 11110 BIN) + $bytes[] = ($c - 0xF0) << 0x12; + $numbytes = 4; + } else { + // use replacement character for other invalid sequences + $unicode[] = 0xFFFD; + $bytes = []; + $numbytes = 1; + } + } elseif (($c >> 0x06) === 0x02) { // bytes 2, 3 and 4 must start with 0x02 = 10 BIN + $bytes[] = $c - 0x80; + if (count($bytes) === $numbytes) { + // compose UTF-8 bytes to a single unicode value + $c = $bytes[0]; + for ($j = 1; $j < $numbytes; $j++) { + $c += ($bytes[$j] << (($numbytes - $j - 1) * 0x06)); + } + if ((($c >= 0xD800) and ($c <= 0xDFFF)) or ($c >= 0x10FFFF)) { + // 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. + $unicode[] = 0xFFFD; // use replacement character + } else { + $unicode[] = $c; // add char to array + } + // reset data for next char + $bytes = []; + $numbytes = 1; + } + } else { + // use replacement character for other invalid sequences + $unicode[] = 0xFFFD; + $bytes = []; + $numbytes = 1; + } + } + + return $unicode; + } + + /** + * convert UTF-8 to UTF-16 with an additional byte order marker + * at the front if required. + * + * based on the excellent TCPDF code by Nicola Asuni and the + * RFC for UTF-8 at http://www.faqs.org/rfcs/rfc3629.html + * + * @param string $text UTF-8 string to process + * @param boolean $bom whether to add the byte order marker + * @return string UTF-16 result string + */ + function utf8toUtf16BE(&$text, $bom = true) + { + $out = $bom ? "\xFE\xFF" : ''; + + $unicode = $this->utf8toCodePointsArray($text); + foreach ($unicode as $c) { + if ($c === 0xFFFD) { + $out .= "\xFF\xFD"; // replacement character + } elseif ($c < 0x10000) { + $out .= chr($c >> 0x08) . chr($c & 0xFF); + } else { + $c -= 0x10000; + $w1 = 0xD800 | ($c >> 0x10); + $w2 = 0xDC00 | ($c & 0x3FF); + $out .= chr($w1 >> 0x08) . chr($w1 & 0xFF) . chr($w2 >> 0x08) . chr($w2 & 0xFF); + } + } + + return $out; + } + + /** + * given a start position and information about how text is to be laid out, calculate where + * on the page the text will end + * + * @param $x + * @param $y + * @param $angle + * @param $size + * @param $wa + * @param $text + * @return array + */ + private function getTextPosition($x, $y, $angle, $size, $wa, $text) + { + // given this information return an array containing x and y for the end position as elements 0 and 1 + $w = $this->getTextWidth($size, $text); + + // need to adjust for the number of spaces in this text + $words = explode(' ', $text); + $nspaces = count($words) - 1; + $w += $wa * $nspaces; + $a = deg2rad((float)$angle); + + return [cos($a) * $w + $x, -sin($a) * $w + $y]; + } + + /** + * Callback method used by smallCaps + * + * @param array $matches + * + * @return string + */ + function toUpper($matches) + { + return mb_strtoupper($matches[0]); + } + + function concatMatches($matches) + { + $str = ""; + foreach ($matches as $match) { + $str .= $match[0]; + } + + return $str; + } + + /** + * register text for font subsetting + * + * @param string $font + * @param string $text + */ + function registerText($font, $text) + { + if (!$this->isUnicode || in_array(mb_strtolower(basename($font)), self::$coreFonts)) { + return; + } + + if (!isset($this->stringSubsets[$font])) { + $base_subset = "\u{fffd}\u{fffe}\u{ffff}"; + $this->stringSubsets[$font] = $this->utf8toCodePointsArray($base_subset); + } + + $this->stringSubsets[$font] = array_unique( + array_merge($this->stringSubsets[$font], $this->utf8toCodePointsArray($text)) + ); + } + + /** + * add text to the document, at a specified location, size and angle on the page + * + * @param float $x + * @param float $y + * @param float $size + * @param string $text + * @param float $angle + * @param float $wordSpaceAdjust + * @param float $charSpaceAdjust + * @param bool $smallCaps + */ + function addText($x, $y, $size, $text, $angle = 0, $wordSpaceAdjust = 0, $charSpaceAdjust = 0, $smallCaps = false) + { + if (!$this->numFonts) { + $this->selectFont($this->defaultFont); + } + + $text = str_replace(["\r", "\n"], "", $text); + + // if ($smallCaps) { + // preg_match_all("/(\P{Ll}+)/u", $text, $matches, PREG_SET_ORDER); + // $lower = $this->concatMatches($matches); + // d($lower); + + // preg_match_all("/(\p{Ll}+)/u", $text, $matches, PREG_SET_ORDER); + // $other = $this->concatMatches($matches); + // d($other); + + // $text = preg_replace_callback("/\p{Ll}/u", array($this, "toUpper"), $text); + // } + + // if there are any open callbacks, then they should be called, to show the start of the line + if ($this->nCallback > 0) { + for ($i = $this->nCallback; $i > 0; $i--) { + // call each function + $info = [ + 'x' => $x, + 'y' => $y, + 'angle' => $angle, + 'status' => 'sol', + 'p' => $this->callback[$i]['p'], + 'nCallback' => $this->callback[$i]['nCallback'], + 'height' => $this->callback[$i]['height'], + 'descender' => $this->callback[$i]['descender'] + ]; + + $func = $this->callback[$i]['f']; + $this->$func($info); + } + } + + if ($angle == 0) { + $this->addContent(sprintf("\nBT %.3F %.3F Td", $x, $y)); + } else { + $a = deg2rad((float)$angle); + $this->addContent( + sprintf("\nBT %.3F %.3F %.3F %.3F %.3F %.3F Tm", cos($a), -sin($a), sin($a), cos($a), $x, $y) + ); + } + + if ($wordSpaceAdjust != 0) { + $this->addContent(sprintf(" %.3F Tw", $wordSpaceAdjust)); + } + + if ($charSpaceAdjust != 0) { + $this->addContent(sprintf(" %.3F Tc", $charSpaceAdjust)); + } + + $len = mb_strlen($text); + $start = 0; + + if ($start < $len) { + $part = $text; // OAR - Don't need this anymore, given that $start always equals zero. substr($text, $start); + $place_text = $this->filterText($part, false); + // modify unicode text so that extra word spacing is manually implemented (bug #) + if ($this->fonts[$this->currentFont]['isUnicode'] && $wordSpaceAdjust != 0) { + $space_scale = 1000 / $size; + $place_text = str_replace("\x00\x20", "\x00\x20)\x00\x20" . (-round($space_scale * $wordSpaceAdjust)) . "\x00\x20(", $place_text); + } + $this->addContent(" /F$this->currentFontNum " . sprintf('%.1F Tf ', $size)); + $this->addContent(" [($place_text)] TJ"); + } + + if ($wordSpaceAdjust != 0) { + $this->addContent(sprintf(" %.3F Tw", 0)); + } + + if ($charSpaceAdjust != 0) { + $this->addContent(sprintf(" %.3F Tc", 0)); + } + + $this->addContent(' ET'); + + // if there are any open callbacks, then they should be called, to show the end of the line + if ($this->nCallback > 0) { + for ($i = $this->nCallback; $i > 0; $i--) { + // call each function + $tmp = $this->getTextPosition($x, $y, $angle, $size, $wordSpaceAdjust, $text); + $info = [ + 'x' => $tmp[0], + 'y' => $tmp[1], + 'angle' => $angle, + 'status' => 'eol', + 'p' => $this->callback[$i]['p'], + 'nCallback' => $this->callback[$i]['nCallback'], + 'height' => $this->callback[$i]['height'], + 'descender' => $this->callback[$i]['descender'] + ]; + $func = $this->callback[$i]['f']; + $this->$func($info); + } + } + + if ($this->fonts[$this->currentFont]['isSubsetting']) { + $this->registerText($this->currentFont, $text); + } + } + + /** + * calculate how wide a given text string will be on a page, at a given size. + * this can be called externally, but is also used by the other class functions + * + * @param float $size + * @param string $text + * @param float $wordSpacing + * @param float $charSpacing + * + * @return float + */ + public function getTextWidth(float $size, string $text, float $wordSpacing = 0.0, float $charSpacing = 0.0): float + { + static $ord_cache = []; + + // this function should not change any of the settings, though it will need to + // track any directives which change during calculation, so copy them at the start + // and put them back at the end. + $store_currentTextState = $this->currentTextState; + + if (!$this->numFonts) { + $this->selectFont($this->defaultFont); + } + + $text = str_replace(["\r", "\n"], "", $text); + + // hmm, this is where it all starts to get tricky - use the font information to + // calculate the width of each character, add them up and convert to user units + $w = 0; + $cf = $this->currentFont; + $current_font = $this->fonts[$cf]; + $space_scale = 1000 / ($size > 0 ? $size : 1); + + if ($current_font['isUnicode']) { + // for Unicode, use the code points array to calculate width rather + // than just the string itself + $unicode = $this->utf8toCodePointsArray($text); + + foreach ($unicode as $char) { + // check if we have to replace character + if (isset($current_font['differences'][$char])) { + $char = $current_font['differences'][$char]; + } + + if (isset($current_font['C'][$char])) { + $char_width = $current_font['C'][$char]; + + // add the character width + $w += $char_width; + + // add additional padding for space + if (isset($current_font['codeToName'][$char]) && $current_font['codeToName'][$char] === 'space') { // Space + $w += $wordSpacing * $space_scale; + } + } + } + + // add additional char spacing + if ($charSpacing != 0) { + $w += $charSpacing * $space_scale * count($unicode); + } + + } else { + // If CPDF is in Unicode mode but the current font does not support Unicode we need to convert the character set to Windows-1252 + if ($this->isUnicode) { + $text = mb_convert_encoding($text, 'Windows-1252', 'UTF-8'); + } + + $len = mb_strlen($text, 'Windows-1252'); + + for ($i = 0; $i < $len; $i++) { + $c = $text[$i]; + $char = isset($ord_cache[$c]) ? $ord_cache[$c] : ($ord_cache[$c] = ord($c)); + + // check if we have to replace character + if (isset($current_font['differences'][$char])) { + $char = $current_font['differences'][$char]; + } + + if (isset($current_font['C'][$char])) { + $char_width = $current_font['C'][$char]; + + // add the character width + $w += $char_width; + + // add additional padding for space + if (isset($current_font['codeToName'][$char]) && $current_font['codeToName'][$char] === 'space') { // Space + $w += $wordSpacing * $space_scale; + } + } + } + + // add additional char spacing + if ($charSpacing != 0) { + $w += $charSpacing * $space_scale * $len; + } + } + + $this->currentTextState = $store_currentTextState; + $this->setCurrentFont(); + + return $w * $size / 1000; + } + + /** + * this will be called at a new page to return the state to what it was on the + * end of the previous page, before the stack was closed down + * This is to get around not being able to have open 'q' across pages + * + * @param int $pageEnd + */ + function saveState($pageEnd = 0) + { + if ($pageEnd) { + // this will be called at a new page to return the state to what it was on the + // end of the previous page, before the stack was closed down + // This is to get around not being able to have open 'q' across pages + $opt = $this->stateStack[$pageEnd]; + // ok to use this as stack starts numbering at 1 + $this->setColor($opt['col'], true); + $this->setStrokeColor($opt['str'], true); + $this->addContent("\n" . $opt['lin']); + // $this->currentLineStyle = $opt['lin']; + } else { + $this->nStateStack++; + $this->stateStack[$this->nStateStack] = [ + 'col' => $this->currentColor, + 'str' => $this->currentStrokeColor, + 'lin' => $this->currentLineStyle + ]; + } + + $this->save(); + } + + /** + * restore a previously saved state + * + * @param int $pageEnd + */ + function restoreState($pageEnd = 0) + { + if (!$pageEnd) { + $n = $this->nStateStack; + $this->currentColor = $this->stateStack[$n]['col']; + $this->currentStrokeColor = $this->stateStack[$n]['str']; + $this->addContent("\n" . $this->stateStack[$n]['lin']); + $this->currentLineStyle = $this->stateStack[$n]['lin']; + $this->stateStack[$n] = null; + unset($this->stateStack[$n]); + $this->nStateStack--; + } + + $this->restore(); + } + + /** + * make a loose object, the output will go into this object, until it is closed, then will revert to + * the current one. + * this object will not appear until it is included within a page. + * the function will return the object number + * + * @return int + */ + function openObject() + { + $this->nStack++; + $this->stack[$this->nStack] = ['c' => $this->currentContents, 'p' => $this->currentPage]; + // add a new object of the content type, to hold the data flow + $this->numObj++; + $this->o_contents($this->numObj, 'new'); + $this->currentContents = $this->numObj; + $this->looseObjects[$this->numObj] = 1; + + return $this->numObj; + } + + /** + * open an existing object for editing + * + * @param $id + */ + function reopenObject($id) + { + $this->nStack++; + $this->stack[$this->nStack] = ['c' => $this->currentContents, 'p' => $this->currentPage]; + $this->currentContents = $id; + + // also if this object is the primary contents for a page, then set the current page to its parent + if (isset($this->objects[$id]['onPage'])) { + $this->currentPage = $this->objects[$id]['onPage']; + } + } + + /** + * close an object + */ + function closeObject() + { + // close the object, as long as there was one open in the first place, which will be indicated by + // an objectId on the stack. + if ($this->nStack > 0) { + $this->currentContents = $this->stack[$this->nStack]['c']; + $this->currentPage = $this->stack[$this->nStack]['p']; + $this->nStack--; + // easier to probably not worry about removing the old entries, they will be overwritten + // if there are new ones. + } + } + + /** + * stop an object from appearing on pages from this point on + * + * @param $id + */ + function stopObject($id) + { + // if an object has been appearing on pages up to now, then stop it, this page will + // be the last one that could contain it. + if (isset($this->addLooseObjects[$id])) { + $this->addLooseObjects[$id] = ''; + } + } + + /** + * after an object has been created, it wil only show if it has been added, using this function. + * + * @param $id + * @param string $options + */ + function addObject($id, $options = 'add') + { + // add the specified object to the page + if (isset($this->looseObjects[$id]) && $this->currentContents != $id) { + // then it is a valid object, and it is not being added to itself + switch ($options) { + case 'all': + // then this object is to be added to this page (done in the next block) and + // all future new pages. + $this->addLooseObjects[$id] = 'all'; + + case 'add': + if (isset($this->objects[$this->currentContents]['onPage'])) { + // then the destination contents is the primary for the page + // (though this object is actually added to that page) + $this->o_page($this->objects[$this->currentContents]['onPage'], 'content', $id); + } + break; + + case 'even': + $this->addLooseObjects[$id] = 'even'; + $pageObjectId = $this->objects[$this->currentContents]['onPage']; + if ($this->objects[$pageObjectId]['info']['pageNum'] % 2 == 0) { + $this->addObject($id); + // hacky huh :) + } + break; + + case 'odd': + $this->addLooseObjects[$id] = 'odd'; + $pageObjectId = $this->objects[$this->currentContents]['onPage']; + if ($this->objects[$pageObjectId]['info']['pageNum'] % 2 == 1) { + $this->addObject($id); + // hacky huh :) + } + break; + + case 'next': + $this->addLooseObjects[$id] = 'all'; + break; + + case 'nexteven': + $this->addLooseObjects[$id] = 'even'; + break; + + case 'nextodd': + $this->addLooseObjects[$id] = 'odd'; + break; + } + } + } + + /** + * return a storable representation of a specific object + * + * @param $id + * @return string|null + */ + function serializeObject($id) + { + if (array_key_exists($id, $this->objects)) { + return serialize($this->objects[$id]); + } + + return null; + } + + /** + * restore an object from its stored representation. Returns its new object id. + * + * @param $obj + * @return int + */ + function restoreSerializedObject($obj) + { + $obj_id = $this->openObject(); + $this->objects[$obj_id] = unserialize($obj); + $this->closeObject(); + + return $obj_id; + } + + /** + * Embeds a file inside the PDF + * + * @param string $filepath path to the file to store inside the PDF + * @param string $embeddedFilename the filename displayed in the list of embedded files + * @param string $description a description in the list of embedded files + */ + public function addEmbeddedFile(string $filepath, string $embeddedFilename, string $description): void + { + $this->numObj++; + $this->o_embedded_file_dictionary( + $this->numObj, + 'new', + [ + 'filepath' => $filepath, + 'filename' => $embeddedFilename, + 'description' => $description + ] + ); + } + + /** + * Add content to the documents info object + * + * @param string|array $label + * @param string $value + */ + public function addInfo($label, string $value = ""): void + { + // this will only work if the label is one of the valid ones. + // modify this so that arrays can be passed as well. + // if $label is an array then assume that it is key => value pairs + // else assume that they are both scalar, anything else will probably error + if (is_array($label)) { + foreach ($label as $l => $v) { + $this->o_info($this->infoObject, $l, (string) $v); + } + } else { + $this->o_info($this->infoObject, $label, $value); + } + } + + /** + * set the viewer preferences of the document, it is up to the browser to obey these. + * + * @param $label + * @param int $value + */ + function setPreferences($label, $value = 0) + { + // this will only work if the label is one of the valid ones. + if (is_array($label)) { + foreach ($label as $l => $v) { + $this->o_catalog($this->catalogId, 'viewerPreferences', [$l => $v]); + } + } else { + $this->o_catalog($this->catalogId, 'viewerPreferences', [$label => $value]); + } + } + + /** + * extract an integer from a position in a byte stream + * + * @param $data + * @param $pos + * @param $num + * @return int + */ + private function getBytes(&$data, $pos, $num) + { + // return the integer represented by $num bytes from $pos within $data + $ret = 0; + for ($i = 0; $i < $num; $i++) { + $ret *= 256; + $ret += ord($data[$pos + $i]); + } + + return $ret; + } + + /** + * Check if image already added to pdf image directory. + * If yes, need not to create again (pass empty data) + * + * @param string $imgname + * @return bool + */ + function image_iscached($imgname) + { + return isset($this->imagelist[$imgname]); + } + + /** + * add a PNG image into the document, from a GD object + * this should work with remote files + * + * @param \GdImage|resource $img A GD resource + * @param string $file The PNG file + * @param float $x X position + * @param float $y Y position + * @param float $w Width + * @param float $h Height + * @param bool $is_mask true if the image is a mask + * @param bool $mask true if the image is masked + * @throws Exception + */ + function addImagePng(&$img, $file, $x, $y, $w = 0.0, $h = 0.0, $is_mask = false, $mask = null) + { + if (!function_exists("imagepng")) { + throw new \Exception("The PHP GD extension is required, but is not installed."); + } + + //if already cached, need not to read again + if (isset($this->imagelist[$file])) { + $data = null; + } else { + // Example for transparency handling on new image. Retain for current image + // $tIndex = imagecolortransparent($img); + // if ($tIndex > 0) { + // $tColor = imagecolorsforindex($img, $tIndex); + // $new_tIndex = imagecolorallocate($new_img, $tColor['red'], $tColor['green'], $tColor['blue']); + // imagefill($new_img, 0, 0, $new_tIndex); + // imagecolortransparent($new_img, $new_tIndex); + // } + // blending mode (literal/blending) on drawing into current image. not relevant when not saved or not drawn + //imagealphablending($img, true); + + //default, but explicitely set to ensure pdf compatibility + imagesavealpha($img, false/*!$is_mask && !$mask*/); + + $error = 0; + //DEBUG_IMG_TEMP + //debugpng + if (defined("DEBUGPNG") && DEBUGPNG) { + print '[addImagePng ' . $file . ']'; + } + + ob_start(); + @imagepng($img); + $data = ob_get_clean(); + + if ($data == '') { + $error = 1; + $errormsg = 'trouble writing file from GD'; + //DEBUG_IMG_TEMP + //debugpng + if (defined("DEBUGPNG") && DEBUGPNG) { + print 'trouble writing file from GD'; + } + } + + if ($error) { + $this->addMessage('PNG error - (' . $file . ') ' . $errormsg); + + return; + } + } //End isset($this->imagelist[$file]) (png Duplicate removal) + + $this->addPngFromBuf($data, $file, $x, $y, $w, $h, $is_mask, $mask); + } + + /** + * @param $file + * @param $x + * @param $y + * @param $w + * @param $h + * @param $byte + */ + protected function addImagePngAlpha($file, $x, $y, $w, $h, $byte) + { + // generate images + $img = @imagecreatefrompng($file); + + if ($img === false) { + return; + } + + // FIXME The pixel transformation doesn't work well with 8bit PNGs + $eight_bit = ($byte & 4) !== 4; + + $wpx = imagesx($img); + $hpx = imagesy($img); + + imagesavealpha($img, false); + + // create temp alpha file + $tempfile_alpha = @tempnam($this->tmp, "cpdf_img_"); + @unlink($tempfile_alpha); + $tempfile_alpha = "$tempfile_alpha.png"; + + // create temp plain file + $tempfile_plain = @tempnam($this->tmp, "cpdf_img_"); + @unlink($tempfile_plain); + $tempfile_plain = "$tempfile_plain.png"; + + $imgalpha = imagecreate($wpx, $hpx); + imagesavealpha($imgalpha, false); + + // generate gray scale palette (0 -> 255) + for ($c = 0; $c < 256; ++$c) { + imagecolorallocate($imgalpha, $c, $c, $c); + } + + // Use PECL gmagick + Graphics Magic to process transparent PNG images + if (extension_loaded("gmagick")) { + $gmagick = new \Gmagick($file); + $gmagick->setimageformat('png'); + + // Get opacity channel (negative of alpha channel) + $alpha_channel_neg = clone $gmagick; + $alpha_channel_neg->separateimagechannel(\Gmagick::CHANNEL_OPACITY); + + // Negate opacity channel + $alpha_channel = new \Gmagick(); + $alpha_channel->newimage($wpx, $hpx, "#FFFFFF", "png"); + $alpha_channel->compositeimage($alpha_channel_neg, \Gmagick::COMPOSITE_DIFFERENCE, 0, 0); + $alpha_channel->separateimagechannel(\Gmagick::CHANNEL_RED); + $alpha_channel->writeimage($tempfile_alpha); + + // Cast to 8bit+palette + $imgalpha_ = @imagecreatefrompng($tempfile_alpha); + imagecopy($imgalpha, $imgalpha_, 0, 0, 0, 0, $wpx, $hpx); + imagedestroy($imgalpha_); + imagepng($imgalpha, $tempfile_alpha); + + // Make opaque image + $color_channels = new \Gmagick(); + $color_channels->newimage($wpx, $hpx, "#FFFFFF", "png"); + $color_channels->compositeimage($gmagick, \Gmagick::COMPOSITE_COPYRED, 0, 0); + $color_channels->compositeimage($gmagick, \Gmagick::COMPOSITE_COPYGREEN, 0, 0); + $color_channels->compositeimage($gmagick, \Gmagick::COMPOSITE_COPYBLUE, 0, 0); + $color_channels->writeimage($tempfile_plain); + + $imgplain = @imagecreatefrompng($tempfile_plain); + } + // Use PECL imagick + ImageMagic to process transparent PNG images + elseif (extension_loaded("imagick")) { + // Native cloning was added to pecl-imagick in svn commit 263814 + // the first version containing it was 3.0.1RC1 + static $imagickClonable = null; + if ($imagickClonable === null) { + $imagickClonable = true; + if (defined('Imagick::IMAGICK_EXTVER')) { + $imagickVersion = \Imagick::IMAGICK_EXTVER; + } else { + $imagickVersion = '0'; + } + if (version_compare($imagickVersion, '0.0.1', '>=')) { + $imagickClonable = version_compare($imagickVersion, '3.0.1rc1', '>='); + } + } + + $imagick = new \Imagick($file); + $imagick->setFormat('png'); + + // Get opacity channel (negative of alpha channel) + if ($imagick->getImageAlphaChannel()) { + $alpha_channel = $imagickClonable ? clone $imagick : $imagick->clone(); + $alpha_channel->separateImageChannel(\Imagick::CHANNEL_ALPHA); + // Since ImageMagick7 negate invert transparency as default + if (\Imagick::getVersion()['versionNumber'] < 1800) { + $alpha_channel->negateImage(true); + } + $alpha_channel->writeImage($tempfile_alpha); + + // Cast to 8bit+palette + $imgalpha_ = @imagecreatefrompng($tempfile_alpha); + imagecopy($imgalpha, $imgalpha_, 0, 0, 0, 0, $wpx, $hpx); + imagedestroy($imgalpha_); + imagepng($imgalpha, $tempfile_alpha); + } else { + $tempfile_alpha = null; + } + + // Make opaque image + $color_channels = new \Imagick(); + $color_channels->newImage($wpx, $hpx, "#FFFFFF", "png"); + $color_channels->compositeImage($imagick, \Imagick::COMPOSITE_COPYRED, 0, 0); + $color_channels->compositeImage($imagick, \Imagick::COMPOSITE_COPYGREEN, 0, 0); + $color_channels->compositeImage($imagick, \Imagick::COMPOSITE_COPYBLUE, 0, 0); + $color_channels->writeImage($tempfile_plain); + + $imgplain = @imagecreatefrompng($tempfile_plain); + } else { + // allocated colors cache + $allocated_colors = []; + + // extract alpha channel + for ($xpx = 0; $xpx < $wpx; ++$xpx) { + for ($ypx = 0; $ypx < $hpx; ++$ypx) { + $color = imagecolorat($img, $xpx, $ypx); + $col = imagecolorsforindex($img, $color); + $alpha = $col['alpha']; + + if ($eight_bit) { + // with gamma correction + $gammacorr = 2.2; + $pixel = round(pow((((127 - $alpha) * 255 / 127) / 255), $gammacorr) * 255); + } else { + // without gamma correction + $pixel = (127 - $alpha) * 2; + + $key = $col['red'] . $col['green'] . $col['blue']; + + if (!isset($allocated_colors[$key])) { + $pixel_img = imagecolorallocate($img, $col['red'], $col['green'], $col['blue']); + $allocated_colors[$key] = $pixel_img; + } else { + $pixel_img = $allocated_colors[$key]; + } + + imagesetpixel($img, $xpx, $ypx, $pixel_img); + } + + imagesetpixel($imgalpha, $xpx, $ypx, $pixel); + } + } + + // extract image without alpha channel + $imgplain = imagecreatetruecolor($wpx, $hpx); + imagecopy($imgplain, $img, 0, 0, 0, 0, $wpx, $hpx); + imagedestroy($img); + + imagepng($imgalpha, $tempfile_alpha); + imagepng($imgplain, $tempfile_plain); + } + + $this->imageAlphaList[$file] = [$tempfile_alpha, $tempfile_plain]; + + // embed mask image + if ($tempfile_alpha) { + $this->addImagePng($imgalpha, $tempfile_alpha, $x, $y, $w, $h, true); + imagedestroy($imgalpha); + $this->imageCache[] = $tempfile_alpha; + } + + // embed image, masked with previously embedded mask + $this->addImagePng($imgplain, $tempfile_plain, $x, $y, $w, $h, false, ($tempfile_alpha !== null)); + imagedestroy($imgplain); + $this->imageCache[] = $tempfile_plain; + } + + /** + * add a PNG image into the document, from a file + * this should work with remote files + * + * @param $file + * @param $x + * @param $y + * @param int $w + * @param int $h + * @throws Exception + */ + function addPngFromFile($file, $x, $y, $w = 0, $h = 0) + { + if (!function_exists("imagecreatefrompng")) { + throw new \Exception("The PHP GD extension is required, but is not installed."); + } + + if (isset($this->imageAlphaList[$file])) { + [$alphaFile, $plainFile] = $this->imageAlphaList[$file]; + + if ($alphaFile) { + $img = null; + $this->addImagePng($img, $alphaFile, $x, $y, $w, $h, true); + } + + $img = null; + $this->addImagePng($img, $plainFile, $x, $y, $w, $h, false, ($plainFile !== null)); + return; + } + + //if already cached, need not to read again + if (isset($this->imagelist[$file])) { + $img = null; + } else { + $info = file_get_contents($file, false, null, 24, 5); + $meta = unpack("CbitDepth/CcolorType/CcompressionMethod/CfilterMethod/CinterlaceMethod", $info); + $bit_depth = $meta["bitDepth"]; + $color_type = $meta["colorType"]; + + // http://www.w3.org/TR/PNG/#11IHDR + // 3 => indexed + // 4 => greyscale with alpha + // 6 => fullcolor with alpha + $is_alpha = in_array($color_type, [4, 6]) || ($color_type == 3 && $bit_depth != 4); + + if ($is_alpha) { // exclude grayscale alpha + $this->addImagePngAlpha($file, $x, $y, $w, $h, $color_type); + return; + } + + //png files typically contain an alpha channel. + //pdf file format or class.pdf does not support alpha blending. + //on alpha blended images, more transparent areas have a color near black. + //This appears in the result on not storing the alpha channel. + //Correct would be the box background image or its parent when transparent. + //But this would make the image dependent on the background. + //Therefore create an image with white background and copy in + //A more natural background than black is white. + //Therefore create an empty image with white background and merge the + //image in with alpha blending. + $imgtmp = @imagecreatefrompng($file); + if (!$imgtmp) { + return; + } + $sx = imagesx($imgtmp); + $sy = imagesy($imgtmp); + $img = imagecreatetruecolor($sx, $sy); + imagealphablending($img, true); + + // @todo is it still needed ?? + $ti = imagecolortransparent($imgtmp); + if ($ti >= 0) { + $tc = imagecolorsforindex($imgtmp, $ti); + $ti = imagecolorallocate($img, $tc['red'], $tc['green'], $tc['blue']); + imagefill($img, 0, 0, $ti); + imagecolortransparent($img, $ti); + } else { + imagefill($img, 1, 1, imagecolorallocate($img, 255, 255, 255)); + } + + imagecopy($img, $imgtmp, 0, 0, 0, 0, $sx, $sy); + imagedestroy($imgtmp); + } + $this->addImagePng($img, $file, $x, $y, $w, $h); + + if ($img) { + imagedestroy($img); + } + } + + /** + * add a PNG image into the document, from a file + * this should work with remote files + * + * @param $file + * @param $x + * @param $y + * @param int $w + * @param int $h + */ + function addSvgFromFile($file, $x, $y, $w = 0, $h = 0) + { + $doc = new \Svg\Document(); + $doc->loadFile($file); + $dimensions = $doc->getDimensions(); + + $this->save(); + + $this->transform([$w / $dimensions["width"], 0, 0, $h / $dimensions["height"], $x, $y]); + + $surface = new \Svg\Surface\SurfaceCpdf($doc, $this); + $doc->render($surface); + + $this->restore(); + } + + /** + * add a PNG image into the document, from a memory buffer of the file + * + * @param $data + * @param $file + * @param $x + * @param $y + * @param float $w + * @param float $h + * @param bool $is_mask + * @param null $mask + */ + function addPngFromBuf(&$data, $file, $x, $y, $w = 0.0, $h = 0.0, $is_mask = false, $mask = null) + { + if (isset($this->imagelist[$file])) { + $data = null; + $info['width'] = $this->imagelist[$file]['w']; + $info['height'] = $this->imagelist[$file]['h']; + $label = $this->imagelist[$file]['label']; + } else { + if ($data == null) { + $this->addMessage('addPngFromBuf error - data not present!'); + + return; + } + + $error = 0; + + if (!$error) { + $header = chr(137) . chr(80) . chr(78) . chr(71) . chr(13) . chr(10) . chr(26) . chr(10); + + if (mb_substr($data, 0, 8, '8bit') != $header) { + $error = 1; + + if (defined("DEBUGPNG") && DEBUGPNG) { + print '[addPngFromFile this file does not have a valid header ' . $file . ']'; + } + + $errormsg = 'this file does not have a valid header'; + } + } + + if (!$error) { + // set pointer + $p = 8; + $len = mb_strlen($data, '8bit'); + + // cycle through the file, identifying chunks + $haveHeader = 0; + $info = []; + $idata = ''; + $pdata = ''; + + while ($p < $len) { + $chunkLen = $this->getBytes($data, $p, 4); + $chunkType = mb_substr($data, $p + 4, 4, '8bit'); + + switch ($chunkType) { + case 'IHDR': + // this is where all the file information comes from + $info['width'] = $this->getBytes($data, $p + 8, 4); + $info['height'] = $this->getBytes($data, $p + 12, 4); + $info['bitDepth'] = ord($data[$p + 16]); + $info['colorType'] = ord($data[$p + 17]); + $info['compressionMethod'] = ord($data[$p + 18]); + $info['filterMethod'] = ord($data[$p + 19]); + $info['interlaceMethod'] = ord($data[$p + 20]); + + //print_r($info); + $haveHeader = 1; + if ($info['compressionMethod'] != 0) { + $error = 1; + + //debugpng + if (defined("DEBUGPNG") && DEBUGPNG) { + print '[addPngFromFile unsupported compression method ' . $file . ']'; + } + + $errormsg = 'unsupported compression method'; + } + + if ($info['filterMethod'] != 0) { + $error = 1; + + //debugpng + if (defined("DEBUGPNG") && DEBUGPNG) { + print '[addPngFromFile unsupported filter method ' . $file . ']'; + } + + $errormsg = 'unsupported filter method'; + } + break; + + case 'PLTE': + $pdata .= mb_substr($data, $p + 8, $chunkLen, '8bit'); + break; + + case 'IDAT': + $idata .= mb_substr($data, $p + 8, $chunkLen, '8bit'); + break; + + case 'tRNS': + //this chunk can only occur once and it must occur after the PLTE chunk and before IDAT chunk + //print "tRNS found, color type = ".$info['colorType']."\n"; + $transparency = []; + + switch ($info['colorType']) { + // indexed color, rbg + case 3: + /* corresponding to entries in the plte chunk + Alpha for palette index 0: 1 byte + Alpha for palette index 1: 1 byte + ...etc... + */ + // there will be one entry for each palette entry. up until the last non-opaque entry. + // set up an array, stretching over all palette entries which will be o (opaque) or 1 (transparent) + $transparency['type'] = 'indexed'; + $trans = 0; + + for ($i = $chunkLen; $i >= 0; $i--) { + if (ord($data[$p + 8 + $i]) == 0) { + $trans = $i; + } + } + + $transparency['data'] = $trans; + break; + + // grayscale + case 0: + /* corresponding to entries in the plte chunk + Gray: 2 bytes, range 0 .. (2^bitdepth)-1 + */ + // $transparency['grayscale'] = $this->PRVT_getBytes($data,$p+8,2); // g = grayscale + $transparency['type'] = 'indexed'; + $transparency['data'] = ord($data[$p + 8 + 1]); + break; + + // truecolor + case 2: + /* corresponding to entries in the plte chunk + Red: 2 bytes, range 0 .. (2^bitdepth)-1 + Green: 2 bytes, range 0 .. (2^bitdepth)-1 + Blue: 2 bytes, range 0 .. (2^bitdepth)-1 + */ + $transparency['r'] = $this->getBytes($data, $p + 8, 2); + // r from truecolor + $transparency['g'] = $this->getBytes($data, $p + 10, 2); + // g from truecolor + $transparency['b'] = $this->getBytes($data, $p + 12, 2); + // b from truecolor + + $transparency['type'] = 'color-key'; + break; + + //unsupported transparency type + default: + if (defined("DEBUGPNG") && DEBUGPNG) { + print '[addPngFromFile unsupported transparency type ' . $file . ']'; + } + break; + } + + // KS End new code + break; + + default: + break; + } + + $p += $chunkLen + 12; + } + + if (!$haveHeader) { + $error = 1; + + //debugpng + if (defined("DEBUGPNG") && DEBUGPNG) { + print '[addPngFromFile information header is missing ' . $file . ']'; + } + + $errormsg = 'information header is missing'; + } + + if (isset($info['interlaceMethod']) && $info['interlaceMethod']) { + $error = 1; + + //debugpng + if (defined("DEBUGPNG") && DEBUGPNG) { + print '[addPngFromFile no support for interlaced images in pdf ' . $file . ']'; + } + + $errormsg = 'There appears to be no support for interlaced images in pdf.'; + } + } + + if (!$error && $info['bitDepth'] > 8) { + $error = 1; + + //debugpng + if (defined("DEBUGPNG") && DEBUGPNG) { + print '[addPngFromFile bit depth of 8 or less is supported ' . $file . ']'; + } + + $errormsg = 'only bit depth of 8 or less is supported'; + } + + if (!$error) { + switch ($info['colorType']) { + case 3: + $color = 'DeviceRGB'; + $ncolor = 1; + break; + + case 2: + $color = 'DeviceRGB'; + $ncolor = 3; + break; + + case 0: + $color = 'DeviceGray'; + $ncolor = 1; + break; + + default: + $error = 1; + + //debugpng + if (defined("DEBUGPNG") && DEBUGPNG) { + print '[addPngFromFile alpha channel not supported: ' . $info['colorType'] . ' ' . $file . ']'; + } + + $errormsg = 'transparency alpha channel not supported, transparency only supported for palette images.'; + } + } + + if ($error) { + $this->addMessage('PNG error - (' . $file . ') ' . $errormsg); + + return; + } + + //print_r($info); + // so this image is ok... add it in. + $this->numImages++; + $im = $this->numImages; + $label = "I$im"; + $this->numObj++; + + // $this->o_image($this->numObj,'new',array('label' => $label,'data' => $idata,'iw' => $w,'ih' => $h,'type' => 'png','ic' => $info['width'])); + $options = [ + 'label' => $label, + 'data' => $idata, + 'bitsPerComponent' => $info['bitDepth'], + 'pdata' => $pdata, + 'iw' => $info['width'], + 'ih' => $info['height'], + 'type' => 'png', + 'color' => $color, + 'ncolor' => $ncolor, + 'masked' => $mask, + 'isMask' => $is_mask + ]; + + if (isset($transparency)) { + $options['transparency'] = $transparency; + } + + $this->o_image($this->numObj, 'new', $options); + $this->imagelist[$file] = ['label' => $label, 'w' => $info['width'], 'h' => $info['height']]; + } + + if ($is_mask) { + return; + } + + if ($w <= 0 && $h <= 0) { + $w = $info['width']; + $h = $info['height']; + } + + if ($w <= 0) { + $w = $h / $info['height'] * $info['width']; + } + + if ($h <= 0) { + $h = $w * $info['height'] / $info['width']; + } + + $this->addContent(sprintf("\nq\n%.3F 0 0 %.3F %.3F %.3F cm /%s Do\nQ", $w, $h, $x, $y, $label)); + } + + /** + * add a JPEG image into the document, from a file + * + * @param $img + * @param $x + * @param $y + * @param int $w + * @param int $h + */ + function addJpegFromFile($img, $x, $y, $w = 0, $h = 0) + { + // attempt to add a jpeg image straight from a file, using no GD commands + // note that this function is unable to operate on a remote file. + + if (!file_exists($img)) { + return; + } + + if ($this->image_iscached($img)) { + $data = null; + $imageWidth = $this->imagelist[$img]['w']; + $imageHeight = $this->imagelist[$img]['h']; + $channels = $this->imagelist[$img]['c']; + } else { + $tmp = getimagesize($img); + $imageWidth = $tmp[0]; + $imageHeight = $tmp[1]; + + if (isset($tmp['channels'])) { + $channels = $tmp['channels']; + } else { + $channels = 3; + } + + $data = file_get_contents($img); + } + + if ($w <= 0 && $h <= 0) { + $w = $imageWidth; + } + + if ($w == 0) { + $w = $h / $imageHeight * $imageWidth; + } + + if ($h == 0) { + $h = $w * $imageHeight / $imageWidth; + } + + $this->addJpegImage_common($data, $img, $imageWidth, $imageHeight, $x, $y, $w, $h, $channels); + } + + /** + * common code used by the two JPEG adding functions + * @param $data + * @param $imgname + * @param $imageWidth + * @param $imageHeight + * @param $x + * @param $y + * @param int $w + * @param int $h + * @param int $channels + */ + private function addJpegImage_common( + &$data, + $imgname, + $imageWidth, + $imageHeight, + $x, + $y, + $w = 0, + $h = 0, + $channels = 3 + ) { + if ($this->image_iscached($imgname)) { + $label = $this->imagelist[$imgname]['label']; + //debugpng + //if (DEBUGPNG) print '[addJpegImage_common Duplicate '.$imgname.']'; + + } else { + if ($data == null) { + $this->addMessage('addJpegImage_common error - (' . $imgname . ') data not present!'); + + return; + } + + // note that this function is not to be called externally + // it is just the common code between the GD and the file options + $this->numImages++; + $im = $this->numImages; + $label = "I$im"; + $this->numObj++; + + $this->o_image( + $this->numObj, + 'new', + [ + 'label' => $label, + 'data' => &$data, + 'iw' => $imageWidth, + 'ih' => $imageHeight, + 'channels' => $channels + ] + ); + + $this->imagelist[$imgname] = [ + 'label' => $label, + 'w' => $imageWidth, + 'h' => $imageHeight, + 'c' => $channels + ]; + } + + $this->addContent(sprintf("\nq\n%.3F 0 0 %.3F %.3F %.3F cm /%s Do\nQ ", $w, $h, $x, $y, $label)); + } + + /** + * specify where the document should open when it first starts + * + * @param $style + * @param int $a + * @param int $b + * @param int $c + */ + function openHere($style, $a = 0, $b = 0, $c = 0) + { + // this function will open the document at a specified page, in a specified style + // the values for style, and the required parameters are: + // 'XYZ' left, top, zoom + // 'Fit' + // 'FitH' top + // 'FitV' left + // 'FitR' left,bottom,right + // 'FitB' + // 'FitBH' top + // 'FitBV' left + $this->numObj++; + $this->o_destination( + $this->numObj, + 'new', + ['page' => $this->currentPage, 'type' => $style, 'p1' => $a, 'p2' => $b, 'p3' => $c] + ); + $id = $this->catalogId; + $this->o_catalog($id, 'openHere', $this->numObj); + } + + /** + * Add JavaScript code to the PDF document + * + * @param string $code + */ + function addJavascript($code) + { + $this->javascript .= $code; + } + + /** + * create a labelled destination within the document + * + * @param $label + * @param $style + * @param int $a + * @param int $b + * @param int $c + */ + function addDestination($label, $style, $a = 0, $b = 0, $c = 0) + { + // associates the given label with the destination, it is done this way so that a destination can be specified after + // it has been linked to + // styles are the same as the 'openHere' function + $this->numObj++; + $this->o_destination( + $this->numObj, + 'new', + ['page' => $this->currentPage, 'type' => $style, 'p1' => $a, 'p2' => $b, 'p3' => $c] + ); + $id = $this->numObj; + + // store the label->idf relationship, note that this means that labels can be used only once + $this->destinations["$label"] = $id; + } + + /** + * define font families, this is used to initialize the font families for the default fonts + * and for the user to add new ones for their fonts. The default bahavious can be overridden should + * that be desired. + * + * @param $family + * @param string $options + */ + function setFontFamily($family, $options = '') + { + if (!is_array($options)) { + if ($family === 'init') { + // set the known family groups + // these font families will be used to enable bold and italic markers to be included + // within text streams. html forms will be used... + $this->fontFamilies['Helvetica.afm'] = + [ + 'b' => 'Helvetica-Bold.afm', + 'i' => 'Helvetica-Oblique.afm', + 'bi' => 'Helvetica-BoldOblique.afm', + 'ib' => 'Helvetica-BoldOblique.afm' + ]; + + $this->fontFamilies['Courier.afm'] = + [ + 'b' => 'Courier-Bold.afm', + 'i' => 'Courier-Oblique.afm', + 'bi' => 'Courier-BoldOblique.afm', + 'ib' => 'Courier-BoldOblique.afm' + ]; + + $this->fontFamilies['Times-Roman.afm'] = + [ + 'b' => 'Times-Bold.afm', + 'i' => 'Times-Italic.afm', + 'bi' => 'Times-BoldItalic.afm', + 'ib' => 'Times-BoldItalic.afm' + ]; + } + } else { + + // the user is trying to set a font family + // note that this can also be used to set the base ones to something else + if (mb_strlen($family)) { + $this->fontFamilies[$family] = $options; + } + } + } + + /** + * used to add messages for use in debugging + * + * @param $message + */ + function addMessage($message) + { + $this->messages .= $message . "\n"; + } + + /** + * a few functions which should allow the document to be treated transactionally. + * + * @param $action + */ + function transaction($action) + { + switch ($action) { + case 'start': + // store all the data away into the checkpoint variable + $data = get_object_vars($this); + $this->checkpoint = $data; + unset($data); + break; + + case 'commit': + if (is_array($this->checkpoint) && isset($this->checkpoint['checkpoint'])) { + $tmp = $this->checkpoint['checkpoint']; + $this->checkpoint = $tmp; + unset($tmp); + } else { + $this->checkpoint = ''; + } + break; + + case 'rewind': + // do not destroy the current checkpoint, but move us back to the state then, so that we can try again + if (is_array($this->checkpoint)) { + // can only abort if were inside a checkpoint + $tmp = $this->checkpoint; + + foreach ($tmp as $k => $v) { + if ($k !== 'checkpoint') { + $this->$k = $v; + } + } + unset($tmp); + } + break; + + case 'abort': + if (is_array($this->checkpoint)) { + // can only abort if were inside a checkpoint + $tmp = $this->checkpoint; + foreach ($tmp as $k => $v) { + $this->$k = $v; + } + unset($tmp); + } + break; + } + } +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/Courier-Bold.afm b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/Courier-Bold.afm new file mode 100644 index 0000000..84adbf5 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/Courier-Bold.afm @@ -0,0 +1,344 @@ +StartFontMetrics 4.1 +Comment Copyright (c) 1989, 1990, 1991, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Mon Jun 23 16:28:00 0:00:00 +Comment UniqueID 43048 +Comment VMusage 41139 52164 +FontName Courier-Bold +FullName Courier Bold +FamilyName Courier +Weight Bold +ItalicAngle 0 +IsFixedPitch true +CharacterSet ExtendedRoman +FontBBox -113 -250 749 801 +UnderlinePosition -100 +UnderlineThickness 50 +Version 003.000 +Notice Copyright (c) 1989, 1990, 1991, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved. +EncodingScheme WinAnsiEncoding +CapHeight 562 +XHeight 439 +Ascender 629 +Descender -157 +StdHW 84 +StdVW 106 +StartCharMetrics 317 +C 32 ; WX 600 ; N space ; B 0 0 0 0 ; +C 160 ; WX 600 ; N space ; B 0 0 0 0 ; +C 33 ; WX 600 ; N exclam ; B 202 -15 398 572 ; +C 34 ; WX 600 ; N quotedbl ; B 135 277 465 562 ; +C 35 ; WX 600 ; N numbersign ; B 56 -45 544 651 ; +C 36 ; WX 600 ; N dollar ; B 82 -126 519 666 ; +C 37 ; WX 600 ; N percent ; B 5 -15 595 616 ; +C 38 ; WX 600 ; N ampersand ; B 36 -15 546 543 ; +C 146 ; WX 600 ; N quoteright ; B 171 277 423 562 ; +C 40 ; WX 600 ; N parenleft ; B 219 -102 461 616 ; +C 41 ; WX 600 ; N parenright ; B 139 -102 381 616 ; +C 42 ; WX 600 ; N asterisk ; B 91 219 509 601 ; +C 43 ; WX 600 ; N plus ; B 71 39 529 478 ; +C 44 ; WX 600 ; N comma ; B 123 -111 393 174 ; +C 45 ; WX 600 ; N hyphen ; B 100 203 500 313 ; +C 173 ; WX 600 ; N hyphen ; B 100 203 500 313 ; +C 46 ; WX 600 ; N period ; B 192 -15 408 171 ; +C 47 ; WX 600 ; N slash ; B 98 -77 502 626 ; +C 48 ; WX 600 ; N zero ; B 87 -15 513 616 ; +C 49 ; WX 600 ; N one ; B 81 0 539 616 ; +C 50 ; WX 600 ; N two ; B 61 0 499 616 ; +C 51 ; WX 600 ; N three ; B 63 -15 501 616 ; +C 52 ; WX 600 ; N four ; B 53 0 507 616 ; +C 53 ; WX 600 ; N five ; B 70 -15 521 601 ; +C 54 ; WX 600 ; N six ; B 90 -15 521 616 ; +C 55 ; WX 600 ; N seven ; B 55 0 494 601 ; +C 56 ; WX 600 ; N eight ; B 83 -15 517 616 ; +C 57 ; WX 600 ; N nine ; B 79 -15 510 616 ; +C 58 ; WX 600 ; N colon ; B 191 -15 407 425 ; +C 59 ; WX 600 ; N semicolon ; B 123 -111 408 425 ; +C 60 ; WX 600 ; N less ; B 66 15 523 501 ; +C 61 ; WX 600 ; N equal ; B 71 118 529 398 ; +C 62 ; WX 600 ; N greater ; B 77 15 534 501 ; +C 63 ; WX 600 ; N question ; B 98 -14 501 580 ; +C 64 ; WX 600 ; N at ; B 16 -15 584 616 ; +C 65 ; WX 600 ; N A ; B -9 0 609 562 ; +C 66 ; WX 600 ; N B ; B 30 0 573 562 ; +C 67 ; WX 600 ; N C ; B 22 -18 560 580 ; +C 68 ; WX 600 ; N D ; B 30 0 594 562 ; +C 69 ; WX 600 ; N E ; B 25 0 560 562 ; +C 70 ; WX 600 ; N F ; B 39 0 570 562 ; +C 71 ; WX 600 ; N G ; B 22 -18 594 580 ; +C 72 ; WX 600 ; N H ; B 20 0 580 562 ; +C 73 ; WX 600 ; N I ; B 77 0 523 562 ; +C 74 ; WX 600 ; N J ; B 37 -18 601 562 ; +C 75 ; WX 600 ; N K ; B 21 0 599 562 ; +C 76 ; WX 600 ; N L ; B 39 0 578 562 ; +C 77 ; WX 600 ; N M ; B -2 0 602 562 ; +C 78 ; WX 600 ; N N ; B 8 -12 610 562 ; +C 79 ; WX 600 ; N O ; B 22 -18 578 580 ; +C 80 ; WX 600 ; N P ; B 48 0 559 562 ; +C 81 ; WX 600 ; N Q ; B 32 -138 578 580 ; +C 82 ; WX 600 ; N R ; B 24 0 599 562 ; +C 83 ; WX 600 ; N S ; B 47 -22 553 582 ; +C 84 ; WX 600 ; N T ; B 21 0 579 562 ; +C 85 ; WX 600 ; N U ; B 4 -18 596 562 ; +C 86 ; WX 600 ; N V ; B -13 0 613 562 ; +C 87 ; WX 600 ; N W ; B -18 0 618 562 ; +C 88 ; WX 600 ; N X ; B 12 0 588 562 ; +C 89 ; WX 600 ; N Y ; B 12 0 589 562 ; +C 90 ; WX 600 ; N Z ; B 62 0 539 562 ; +C 91 ; WX 600 ; N bracketleft ; B 245 -102 475 616 ; +C 92 ; WX 600 ; N backslash ; B 99 -77 503 626 ; +C 93 ; WX 600 ; N bracketright ; B 125 -102 355 616 ; +C 94 ; WX 600 ; N asciicircum ; B 108 250 492 616 ; +C 95 ; WX 600 ; N underscore ; B 0 -125 600 -75 ; +C 145 ; WX 600 ; N quoteleft ; B 178 277 428 562 ; +C 97 ; WX 600 ; N a ; B 35 -15 570 454 ; +C 98 ; WX 600 ; N b ; B 0 -15 584 626 ; +C 99 ; WX 600 ; N c ; B 40 -15 545 459 ; +C 100 ; WX 600 ; N d ; B 20 -15 591 626 ; +C 101 ; WX 600 ; N e ; B 40 -15 563 454 ; +C 102 ; WX 600 ; N f ; B 83 0 547 626 ; L i fi ; L l fl ; +C 103 ; WX 600 ; N g ; B 30 -146 580 454 ; +C 104 ; WX 600 ; N h ; B 5 0 592 626 ; +C 105 ; WX 600 ; N i ; B 77 0 523 658 ; +C 106 ; WX 600 ; N j ; B 63 -146 440 658 ; +C 107 ; WX 600 ; N k ; B 20 0 585 626 ; +C 108 ; WX 600 ; N l ; B 77 0 523 626 ; +C 109 ; WX 600 ; N m ; B -22 0 626 454 ; +C 110 ; WX 600 ; N n ; B 18 0 592 454 ; +C 111 ; WX 600 ; N o ; B 30 -15 570 454 ; +C 112 ; WX 600 ; N p ; B -1 -142 570 454 ; +C 113 ; WX 600 ; N q ; B 20 -142 591 454 ; +C 114 ; WX 600 ; N r ; B 47 0 580 454 ; +C 115 ; WX 600 ; N s ; B 68 -17 535 459 ; +C 116 ; WX 600 ; N t ; B 47 -15 532 562 ; +C 117 ; WX 600 ; N u ; B -1 -15 569 439 ; +C 118 ; WX 600 ; N v ; B -1 0 601 439 ; +C 119 ; WX 600 ; N w ; B -18 0 618 439 ; +C 120 ; WX 600 ; N x ; B 6 0 594 439 ; +C 121 ; WX 600 ; N y ; B -4 -142 601 439 ; +C 122 ; WX 600 ; N z ; B 81 0 520 439 ; +C 123 ; WX 600 ; N braceleft ; B 160 -102 464 616 ; +C 124 ; WX 600 ; N bar ; B 255 -250 345 750 ; +C 125 ; WX 600 ; N braceright ; B 136 -102 440 616 ; +C 126 ; WX 600 ; N asciitilde ; B 71 153 530 356 ; +C 161 ; WX 600 ; N exclamdown ; B 202 -146 398 449 ; +C 162 ; WX 600 ; N cent ; B 66 -49 518 614 ; +C 163 ; WX 600 ; N sterling ; B 72 -28 558 611 ; +C -1 ; WX 600 ; N fraction ; B 25 -60 576 661 ; +C 165 ; WX 600 ; N yen ; B 10 0 590 562 ; +C 131 ; WX 600 ; N florin ; B -30 -131 572 616 ; +C 167 ; WX 600 ; N section ; B 83 -70 517 580 ; +C 164 ; WX 600 ; N currency ; B 54 49 546 517 ; +C 39 ; WX 600 ; N quotesingle ; B 227 277 373 562 ; +C 147 ; WX 600 ; N quotedblleft ; B 71 277 535 562 ; +C 171 ; WX 600 ; N guillemotleft ; B 8 70 553 446 ; +C 139 ; WX 600 ; N guilsinglleft ; B 141 70 459 446 ; +C 155 ; WX 600 ; N guilsinglright ; B 141 70 459 446 ; +C -1 ; WX 600 ; N fi ; B 12 0 593 626 ; +C -1 ; WX 600 ; N fl ; B 12 0 593 626 ; +C 150 ; WX 600 ; N endash ; B 65 203 535 313 ; +C 134 ; WX 600 ; N dagger ; B 106 -70 494 580 ; +C 135 ; WX 600 ; N daggerdbl ; B 106 -70 494 580 ; +C 183 ; WX 600 ; N periodcentered ; B 196 165 404 351 ; +C 182 ; WX 600 ; N paragraph ; B 6 -70 576 580 ; +C 149 ; WX 600 ; N bullet ; B 140 132 460 430 ; +C 130 ; WX 600 ; N quotesinglbase ; B 175 -142 427 143 ; +C 132 ; WX 600 ; N quotedblbase ; B 65 -142 529 143 ; +C 148 ; WX 600 ; N quotedblright ; B 61 277 525 562 ; +C 187 ; WX 600 ; N guillemotright ; B 47 70 592 446 ; +C 133 ; WX 600 ; N ellipsis ; B 26 -15 574 116 ; +C 137 ; WX 600 ; N perthousand ; B -113 -15 713 616 ; +C 191 ; WX 600 ; N questiondown ; B 99 -146 502 449 ; +C 96 ; WX 600 ; N grave ; B 132 508 395 661 ; +C 180 ; WX 600 ; N acute ; B 205 508 468 661 ; +C 136 ; WX 600 ; N circumflex ; B 103 483 497 657 ; +C 152 ; WX 600 ; N tilde ; B 89 493 512 636 ; +C 175 ; WX 600 ; N macron ; B 88 505 512 585 ; +C -1 ; WX 600 ; N breve ; B 83 468 517 631 ; +C -1 ; WX 600 ; N dotaccent ; B 230 498 370 638 ; +C 168 ; WX 600 ; N dieresis ; B 128 498 472 638 ; +C -1 ; WX 600 ; N ring ; B 198 481 402 678 ; +C 184 ; WX 600 ; N cedilla ; B 205 -206 387 0 ; +C -1 ; WX 600 ; N hungarumlaut ; B 68 488 588 661 ; +C -1 ; WX 600 ; N ogonek ; B 169 -199 400 0 ; +C -1 ; WX 600 ; N caron ; B 103 493 497 667 ; +C 151 ; WX 600 ; N emdash ; B -10 203 610 313 ; +C 198 ; WX 600 ; N AE ; B -29 0 602 562 ; +C 170 ; WX 600 ; N ordfeminine ; B 147 196 453 580 ; +C -1 ; WX 600 ; N Lslash ; B 39 0 578 562 ; +C 216 ; WX 600 ; N Oslash ; B 22 -22 578 584 ; +C 140 ; WX 600 ; N OE ; B -25 0 595 562 ; +C 186 ; WX 600 ; N ordmasculine ; B 147 196 453 580 ; +C 230 ; WX 600 ; N ae ; B -4 -15 601 454 ; +C -1 ; WX 600 ; N dotlessi ; B 77 0 523 439 ; +C -1 ; WX 600 ; N lslash ; B 77 0 523 626 ; +C 248 ; WX 600 ; N oslash ; B 30 -24 570 463 ; +C 156 ; WX 600 ; N oe ; B -18 -15 611 454 ; +C 223 ; WX 600 ; N germandbls ; B 22 -15 596 626 ; +C 207 ; WX 600 ; N Idieresis ; B 77 0 523 761 ; +C 233 ; WX 600 ; N eacute ; B 40 -15 563 661 ; +C -1 ; WX 600 ; N abreve ; B 35 -15 570 661 ; +C -1 ; WX 600 ; N uhungarumlaut ; B -1 -15 628 661 ; +C -1 ; WX 600 ; N ecaron ; B 40 -15 563 667 ; +C 159 ; WX 600 ; N Ydieresis ; B 12 0 589 761 ; +C 247 ; WX 600 ; N divide ; B 71 16 529 500 ; +C 221 ; WX 600 ; N Yacute ; B 12 0 589 784 ; +C 194 ; WX 600 ; N Acircumflex ; B -9 0 609 780 ; +C 225 ; WX 600 ; N aacute ; B 35 -15 570 661 ; +C 219 ; WX 600 ; N Ucircumflex ; B 4 -18 596 780 ; +C 253 ; WX 600 ; N yacute ; B -4 -142 601 661 ; +C -1 ; WX 600 ; N scommaaccent ; B 68 -250 535 459 ; +C 234 ; WX 600 ; N ecircumflex ; B 40 -15 563 657 ; +C -1 ; WX 600 ; N Uring ; B 4 -18 596 801 ; +C 220 ; WX 600 ; N Udieresis ; B 4 -18 596 761 ; +C -1 ; WX 600 ; N aogonek ; B 35 -199 586 454 ; +C 218 ; WX 600 ; N Uacute ; B 4 -18 596 784 ; +C -1 ; WX 600 ; N uogonek ; B -1 -199 585 439 ; +C 203 ; WX 600 ; N Edieresis ; B 25 0 560 761 ; +C -1 ; WX 600 ; N Dcroat ; B 30 0 594 562 ; +C -1 ; WX 600 ; N commaaccent ; B 205 -250 397 -57 ; +C 169 ; WX 600 ; N copyright ; B 0 -18 600 580 ; +C -1 ; WX 600 ; N Emacron ; B 25 0 560 708 ; +C -1 ; WX 600 ; N ccaron ; B 40 -15 545 667 ; +C 229 ; WX 600 ; N aring ; B 35 -15 570 678 ; +C -1 ; WX 600 ; N Ncommaaccent ; B 8 -250 610 562 ; +C -1 ; WX 600 ; N lacute ; B 77 0 523 801 ; +C 224 ; WX 600 ; N agrave ; B 35 -15 570 661 ; +C -1 ; WX 600 ; N Tcommaaccent ; B 21 -250 579 562 ; +C -1 ; WX 600 ; N Cacute ; B 22 -18 560 784 ; +C 227 ; WX 600 ; N atilde ; B 35 -15 570 636 ; +C -1 ; WX 600 ; N Edotaccent ; B 25 0 560 761 ; +C 154 ; WX 600 ; N scaron ; B 68 -17 535 667 ; +C -1 ; WX 600 ; N scedilla ; B 68 -206 535 459 ; +C 237 ; WX 600 ; N iacute ; B 77 0 523 661 ; +C -1 ; WX 600 ; N lozenge ; B 66 0 534 740 ; +C -1 ; WX 600 ; N Rcaron ; B 24 0 599 790 ; +C -1 ; WX 600 ; N Gcommaaccent ; B 22 -250 594 580 ; +C 251 ; WX 600 ; N ucircumflex ; B -1 -15 569 657 ; +C 226 ; WX 600 ; N acircumflex ; B 35 -15 570 657 ; +C -1 ; WX 600 ; N Amacron ; B -9 0 609 708 ; +C -1 ; WX 600 ; N rcaron ; B 47 0 580 667 ; +C 231 ; WX 600 ; N ccedilla ; B 40 -206 545 459 ; +C -1 ; WX 600 ; N Zdotaccent ; B 62 0 539 761 ; +C 222 ; WX 600 ; N Thorn ; B 48 0 557 562 ; +C -1 ; WX 600 ; N Omacron ; B 22 -18 578 708 ; +C -1 ; WX 600 ; N Racute ; B 24 0 599 784 ; +C -1 ; WX 600 ; N Sacute ; B 47 -22 553 784 ; +C -1 ; WX 600 ; N dcaron ; B 20 -15 727 626 ; +C -1 ; WX 600 ; N Umacron ; B 4 -18 596 708 ; +C -1 ; WX 600 ; N uring ; B -1 -15 569 678 ; +C 179 ; WX 600 ; N threesuperior ; B 138 222 433 616 ; +C 210 ; WX 600 ; N Ograve ; B 22 -18 578 784 ; +C 192 ; WX 600 ; N Agrave ; B -9 0 609 784 ; +C -1 ; WX 600 ; N Abreve ; B -9 0 609 784 ; +C 215 ; WX 600 ; N multiply ; B 81 39 520 478 ; +C 250 ; WX 600 ; N uacute ; B -1 -15 569 661 ; +C -1 ; WX 600 ; N Tcaron ; B 21 0 579 790 ; +C -1 ; WX 600 ; N partialdiff ; B 63 -38 537 728 ; +C 255 ; WX 600 ; N ydieresis ; B -4 -142 601 638 ; +C -1 ; WX 600 ; N Nacute ; B 8 -12 610 784 ; +C 238 ; WX 600 ; N icircumflex ; B 73 0 523 657 ; +C 202 ; WX 600 ; N Ecircumflex ; B 25 0 560 780 ; +C 228 ; WX 600 ; N adieresis ; B 35 -15 570 638 ; +C 235 ; WX 600 ; N edieresis ; B 40 -15 563 638 ; +C -1 ; WX 600 ; N cacute ; B 40 -15 545 661 ; +C -1 ; WX 600 ; N nacute ; B 18 0 592 661 ; +C -1 ; WX 600 ; N umacron ; B -1 -15 569 585 ; +C -1 ; WX 600 ; N Ncaron ; B 8 -12 610 790 ; +C 205 ; WX 600 ; N Iacute ; B 77 0 523 784 ; +C 177 ; WX 600 ; N plusminus ; B 71 24 529 515 ; +C 166 ; WX 600 ; N brokenbar ; B 255 -175 345 675 ; +C 174 ; WX 600 ; N registered ; B 0 -18 600 580 ; +C -1 ; WX 600 ; N Gbreve ; B 22 -18 594 784 ; +C -1 ; WX 600 ; N Idotaccent ; B 77 0 523 761 ; +C -1 ; WX 600 ; N summation ; B 15 -10 586 706 ; +C 200 ; WX 600 ; N Egrave ; B 25 0 560 784 ; +C -1 ; WX 600 ; N racute ; B 47 0 580 661 ; +C -1 ; WX 600 ; N omacron ; B 30 -15 570 585 ; +C -1 ; WX 600 ; N Zacute ; B 62 0 539 784 ; +C 142 ; WX 600 ; N Zcaron ; B 62 0 539 790 ; +C -1 ; WX 600 ; N greaterequal ; B 26 0 523 696 ; +C 208 ; WX 600 ; N Eth ; B 30 0 594 562 ; +C 199 ; WX 600 ; N Ccedilla ; B 22 -206 560 580 ; +C -1 ; WX 600 ; N lcommaaccent ; B 77 -250 523 626 ; +C -1 ; WX 600 ; N tcaron ; B 47 -15 532 703 ; +C -1 ; WX 600 ; N eogonek ; B 40 -199 563 454 ; +C -1 ; WX 600 ; N Uogonek ; B 4 -199 596 562 ; +C 193 ; WX 600 ; N Aacute ; B -9 0 609 784 ; +C 196 ; WX 600 ; N Adieresis ; B -9 0 609 761 ; +C 232 ; WX 600 ; N egrave ; B 40 -15 563 661 ; +C -1 ; WX 600 ; N zacute ; B 81 0 520 661 ; +C -1 ; WX 600 ; N iogonek ; B 77 -199 523 658 ; +C 211 ; WX 600 ; N Oacute ; B 22 -18 578 784 ; +C 243 ; WX 600 ; N oacute ; B 30 -15 570 661 ; +C -1 ; WX 600 ; N amacron ; B 35 -15 570 585 ; +C -1 ; WX 600 ; N sacute ; B 68 -17 535 661 ; +C 239 ; WX 600 ; N idieresis ; B 77 0 523 618 ; +C 212 ; WX 600 ; N Ocircumflex ; B 22 -18 578 780 ; +C 217 ; WX 600 ; N Ugrave ; B 4 -18 596 784 ; +C -1 ; WX 600 ; N Delta ; B 6 0 594 688 ; +C 254 ; WX 600 ; N thorn ; B -14 -142 570 626 ; +C 178 ; WX 600 ; N twosuperior ; B 143 230 436 616 ; +C 214 ; WX 600 ; N Odieresis ; B 22 -18 578 761 ; +C 181 ; WX 600 ; N mu ; B -1 -142 569 439 ; +C 236 ; WX 600 ; N igrave ; B 77 0 523 661 ; +C -1 ; WX 600 ; N ohungarumlaut ; B 30 -15 668 661 ; +C -1 ; WX 600 ; N Eogonek ; B 25 -199 576 562 ; +C -1 ; WX 600 ; N dcroat ; B 20 -15 591 626 ; +C 190 ; WX 600 ; N threequarters ; B -47 -60 648 661 ; +C -1 ; WX 600 ; N Scedilla ; B 47 -206 553 582 ; +C -1 ; WX 600 ; N lcaron ; B 77 0 597 626 ; +C -1 ; WX 600 ; N Kcommaaccent ; B 21 -250 599 562 ; +C -1 ; WX 600 ; N Lacute ; B 39 0 578 784 ; +C 153 ; WX 600 ; N trademark ; B -9 230 749 562 ; +C -1 ; WX 600 ; N edotaccent ; B 40 -15 563 638 ; +C 204 ; WX 600 ; N Igrave ; B 77 0 523 784 ; +C -1 ; WX 600 ; N Imacron ; B 77 0 523 708 ; +C -1 ; WX 600 ; N Lcaron ; B 39 0 637 562 ; +C 189 ; WX 600 ; N onehalf ; B -47 -60 648 661 ; +C -1 ; WX 600 ; N lessequal ; B 26 0 523 696 ; +C 244 ; WX 600 ; N ocircumflex ; B 30 -15 570 657 ; +C 241 ; WX 600 ; N ntilde ; B 18 0 592 636 ; +C -1 ; WX 600 ; N Uhungarumlaut ; B 4 -18 638 784 ; +C 201 ; WX 600 ; N Eacute ; B 25 0 560 784 ; +C -1 ; WX 600 ; N emacron ; B 40 -15 563 585 ; +C -1 ; WX 600 ; N gbreve ; B 30 -146 580 661 ; +C 188 ; WX 600 ; N onequarter ; B -56 -60 656 661 ; +C 138 ; WX 600 ; N Scaron ; B 47 -22 553 790 ; +C -1 ; WX 600 ; N Scommaaccent ; B 47 -250 553 582 ; +C -1 ; WX 600 ; N Ohungarumlaut ; B 22 -18 628 784 ; +C 176 ; WX 600 ; N degree ; B 86 243 474 616 ; +C 242 ; WX 600 ; N ograve ; B 30 -15 570 661 ; +C -1 ; WX 600 ; N Ccaron ; B 22 -18 560 790 ; +C 249 ; WX 600 ; N ugrave ; B -1 -15 569 661 ; +C -1 ; WX 600 ; N radical ; B -19 -104 473 778 ; +C -1 ; WX 600 ; N Dcaron ; B 30 0 594 790 ; +C -1 ; WX 600 ; N rcommaaccent ; B 47 -250 580 454 ; +C 209 ; WX 600 ; N Ntilde ; B 8 -12 610 759 ; +C 245 ; WX 600 ; N otilde ; B 30 -15 570 636 ; +C -1 ; WX 600 ; N Rcommaaccent ; B 24 -250 599 562 ; +C -1 ; WX 600 ; N Lcommaaccent ; B 39 -250 578 562 ; +C 195 ; WX 600 ; N Atilde ; B -9 0 609 759 ; +C -1 ; WX 600 ; N Aogonek ; B -9 -199 625 562 ; +C 197 ; WX 600 ; N Aring ; B -9 0 609 801 ; +C 213 ; WX 600 ; N Otilde ; B 22 -18 578 759 ; +C -1 ; WX 600 ; N zdotaccent ; B 81 0 520 638 ; +C -1 ; WX 600 ; N Ecaron ; B 25 0 560 790 ; +C -1 ; WX 600 ; N Iogonek ; B 77 -199 523 562 ; +C -1 ; WX 600 ; N kcommaaccent ; B 20 -250 585 626 ; +C -1 ; WX 600 ; N minus ; B 71 203 529 313 ; +C 206 ; WX 600 ; N Icircumflex ; B 77 0 523 780 ; +C -1 ; WX 600 ; N ncaron ; B 18 0 592 667 ; +C -1 ; WX 600 ; N tcommaaccent ; B 47 -250 532 562 ; +C 172 ; WX 600 ; N logicalnot ; B 71 103 529 413 ; +C 246 ; WX 600 ; N odieresis ; B 30 -15 570 638 ; +C 252 ; WX 600 ; N udieresis ; B -1 -15 569 638 ; +C -1 ; WX 600 ; N notequal ; B 12 -47 537 563 ; +C -1 ; WX 600 ; N gcommaaccent ; B 30 -146 580 714 ; +C 240 ; WX 600 ; N eth ; B 58 -27 543 626 ; +C 158 ; WX 600 ; N zcaron ; B 81 0 520 667 ; +C -1 ; WX 600 ; N ncommaaccent ; B 18 -250 592 454 ; +C 185 ; WX 600 ; N onesuperior ; B 153 230 447 616 ; +C -1 ; WX 600 ; N imacron ; B 77 0 523 585 ; +C 128 ; WX 600 ; N Euro ; B 0 0 0 0 ; +EndCharMetrics +EndFontMetrics diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/Courier-BoldOblique.afm b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/Courier-BoldOblique.afm new file mode 100644 index 0000000..d5b616e --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/Courier-BoldOblique.afm @@ -0,0 +1,344 @@ +StartFontMetrics 4.1 +Comment Copyright (c) 1989, 1990, 1991, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Mon Jun 23 16:28:46 0:00:00 +Comment UniqueID 43049 +Comment VMusage 17529 79244 +FontName Courier-BoldOblique +FullName Courier Bold Oblique +FamilyName Courier +Weight Bold +ItalicAngle -12 +IsFixedPitch true +CharacterSet ExtendedRoman +FontBBox -57 -250 869 801 +UnderlinePosition -100 +UnderlineThickness 50 +Version 3 +Notice Copyright (c) 1989, 1990, 1991, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved. +EncodingScheme WinAnsiEncoding +CapHeight 562 +XHeight 439 +Ascender 629 +Descender -157 +StdHW 84 +StdVW 106 +StartCharMetrics 317 +C 32 ; WX 600 ; N space ; B 0 0 0 0 ; +C 160 ; WX 600 ; N space ; B 0 0 0 0 ; +C 33 ; WX 600 ; N exclam ; B 215 -15 495 572 ; +C 34 ; WX 600 ; N quotedbl ; B 211 277 585 562 ; +C 35 ; WX 600 ; N numbersign ; B 88 -45 641 651 ; +C 36 ; WX 600 ; N dollar ; B 87 -126 630 666 ; +C 37 ; WX 600 ; N percent ; B 101 -15 625 616 ; +C 38 ; WX 600 ; N ampersand ; B 61 -15 595 543 ; +C 146 ; WX 600 ; N quoteright ; B 229 277 543 562 ; +C 40 ; WX 600 ; N parenleft ; B 265 -102 592 616 ; +C 41 ; WX 600 ; N parenright ; B 117 -102 444 616 ; +C 42 ; WX 600 ; N asterisk ; B 179 219 598 601 ; +C 43 ; WX 600 ; N plus ; B 114 39 596 478 ; +C 44 ; WX 600 ; N comma ; B 99 -111 430 174 ; +C 45 ; WX 600 ; N hyphen ; B 143 203 567 313 ; +C 173 ; WX 600 ; N hyphen ; B 143 203 567 313 ; +C 46 ; WX 600 ; N period ; B 206 -15 427 171 ; +C 47 ; WX 600 ; N slash ; B 90 -77 626 626 ; +C 48 ; WX 600 ; N zero ; B 135 -15 593 616 ; +C 49 ; WX 600 ; N one ; B 93 0 562 616 ; +C 50 ; WX 600 ; N two ; B 61 0 594 616 ; +C 51 ; WX 600 ; N three ; B 71 -15 571 616 ; +C 52 ; WX 600 ; N four ; B 81 0 559 616 ; +C 53 ; WX 600 ; N five ; B 77 -15 621 601 ; +C 54 ; WX 600 ; N six ; B 135 -15 652 616 ; +C 55 ; WX 600 ; N seven ; B 147 0 622 601 ; +C 56 ; WX 600 ; N eight ; B 115 -15 604 616 ; +C 57 ; WX 600 ; N nine ; B 75 -15 592 616 ; +C 58 ; WX 600 ; N colon ; B 205 -15 480 425 ; +C 59 ; WX 600 ; N semicolon ; B 99 -111 481 425 ; +C 60 ; WX 600 ; N less ; B 120 15 613 501 ; +C 61 ; WX 600 ; N equal ; B 96 118 614 398 ; +C 62 ; WX 600 ; N greater ; B 97 15 589 501 ; +C 63 ; WX 600 ; N question ; B 183 -14 592 580 ; +C 64 ; WX 600 ; N at ; B 65 -15 642 616 ; +C 65 ; WX 600 ; N A ; B -9 0 632 562 ; +C 66 ; WX 600 ; N B ; B 30 0 630 562 ; +C 67 ; WX 600 ; N C ; B 74 -18 675 580 ; +C 68 ; WX 600 ; N D ; B 30 0 664 562 ; +C 69 ; WX 600 ; N E ; B 25 0 670 562 ; +C 70 ; WX 600 ; N F ; B 39 0 684 562 ; +C 71 ; WX 600 ; N G ; B 74 -18 675 580 ; +C 72 ; WX 600 ; N H ; B 20 0 700 562 ; +C 73 ; WX 600 ; N I ; B 77 0 643 562 ; +C 74 ; WX 600 ; N J ; B 58 -18 721 562 ; +C 75 ; WX 600 ; N K ; B 21 0 692 562 ; +C 76 ; WX 600 ; N L ; B 39 0 636 562 ; +C 77 ; WX 600 ; N M ; B -2 0 722 562 ; +C 78 ; WX 600 ; N N ; B 8 -12 730 562 ; +C 79 ; WX 600 ; N O ; B 74 -18 645 580 ; +C 80 ; WX 600 ; N P ; B 48 0 643 562 ; +C 81 ; WX 600 ; N Q ; B 83 -138 636 580 ; +C 82 ; WX 600 ; N R ; B 24 0 617 562 ; +C 83 ; WX 600 ; N S ; B 54 -22 673 582 ; +C 84 ; WX 600 ; N T ; B 86 0 679 562 ; +C 85 ; WX 600 ; N U ; B 101 -18 716 562 ; +C 86 ; WX 600 ; N V ; B 84 0 733 562 ; +C 87 ; WX 600 ; N W ; B 79 0 738 562 ; +C 88 ; WX 600 ; N X ; B 12 0 690 562 ; +C 89 ; WX 600 ; N Y ; B 109 0 709 562 ; +C 90 ; WX 600 ; N Z ; B 62 0 637 562 ; +C 91 ; WX 600 ; N bracketleft ; B 223 -102 606 616 ; +C 92 ; WX 600 ; N backslash ; B 222 -77 496 626 ; +C 93 ; WX 600 ; N bracketright ; B 103 -102 486 616 ; +C 94 ; WX 600 ; N asciicircum ; B 171 250 556 616 ; +C 95 ; WX 600 ; N underscore ; B -27 -125 585 -75 ; +C 145 ; WX 600 ; N quoteleft ; B 297 277 487 562 ; +C 97 ; WX 600 ; N a ; B 61 -15 593 454 ; +C 98 ; WX 600 ; N b ; B 13 -15 636 626 ; +C 99 ; WX 600 ; N c ; B 81 -15 631 459 ; +C 100 ; WX 600 ; N d ; B 60 -15 645 626 ; +C 101 ; WX 600 ; N e ; B 81 -15 605 454 ; +C 102 ; WX 600 ; N f ; B 83 0 677 626 ; L i fi ; L l fl ; +C 103 ; WX 600 ; N g ; B 40 -146 674 454 ; +C 104 ; WX 600 ; N h ; B 18 0 615 626 ; +C 105 ; WX 600 ; N i ; B 77 0 546 658 ; +C 106 ; WX 600 ; N j ; B 36 -146 580 658 ; +C 107 ; WX 600 ; N k ; B 33 0 643 626 ; +C 108 ; WX 600 ; N l ; B 77 0 546 626 ; +C 109 ; WX 600 ; N m ; B -22 0 649 454 ; +C 110 ; WX 600 ; N n ; B 18 0 615 454 ; +C 111 ; WX 600 ; N o ; B 71 -15 622 454 ; +C 112 ; WX 600 ; N p ; B -32 -142 622 454 ; +C 113 ; WX 600 ; N q ; B 60 -142 685 454 ; +C 114 ; WX 600 ; N r ; B 47 0 655 454 ; +C 115 ; WX 600 ; N s ; B 66 -17 608 459 ; +C 116 ; WX 600 ; N t ; B 118 -15 567 562 ; +C 117 ; WX 600 ; N u ; B 70 -15 592 439 ; +C 118 ; WX 600 ; N v ; B 70 0 695 439 ; +C 119 ; WX 600 ; N w ; B 53 0 712 439 ; +C 120 ; WX 600 ; N x ; B 6 0 671 439 ; +C 121 ; WX 600 ; N y ; B -21 -142 695 439 ; +C 122 ; WX 600 ; N z ; B 81 0 614 439 ; +C 123 ; WX 600 ; N braceleft ; B 203 -102 595 616 ; +C 124 ; WX 600 ; N bar ; B 201 -250 505 750 ; +C 125 ; WX 600 ; N braceright ; B 114 -102 506 616 ; +C 126 ; WX 600 ; N asciitilde ; B 120 153 590 356 ; +C 161 ; WX 600 ; N exclamdown ; B 196 -146 477 449 ; +C 162 ; WX 600 ; N cent ; B 121 -49 605 614 ; +C 163 ; WX 600 ; N sterling ; B 106 -28 650 611 ; +C -1 ; WX 600 ; N fraction ; B 22 -60 708 661 ; +C 165 ; WX 600 ; N yen ; B 98 0 710 562 ; +C 131 ; WX 600 ; N florin ; B -57 -131 702 616 ; +C 167 ; WX 600 ; N section ; B 74 -70 620 580 ; +C 164 ; WX 600 ; N currency ; B 77 49 644 517 ; +C 39 ; WX 600 ; N quotesingle ; B 303 277 493 562 ; +C 147 ; WX 600 ; N quotedblleft ; B 190 277 594 562 ; +C 171 ; WX 600 ; N guillemotleft ; B 62 70 639 446 ; +C 139 ; WX 600 ; N guilsinglleft ; B 195 70 545 446 ; +C 155 ; WX 600 ; N guilsinglright ; B 165 70 514 446 ; +C -1 ; WX 600 ; N fi ; B 12 0 644 626 ; +C -1 ; WX 600 ; N fl ; B 12 0 644 626 ; +C 150 ; WX 600 ; N endash ; B 108 203 602 313 ; +C 134 ; WX 600 ; N dagger ; B 175 -70 586 580 ; +C 135 ; WX 600 ; N daggerdbl ; B 121 -70 587 580 ; +C 183 ; WX 600 ; N periodcentered ; B 248 165 461 351 ; +C 182 ; WX 600 ; N paragraph ; B 61 -70 700 580 ; +C 149 ; WX 600 ; N bullet ; B 196 132 523 430 ; +C 130 ; WX 600 ; N quotesinglbase ; B 144 -142 458 143 ; +C 132 ; WX 600 ; N quotedblbase ; B 34 -142 560 143 ; +C 148 ; WX 600 ; N quotedblright ; B 119 277 645 562 ; +C 187 ; WX 600 ; N guillemotright ; B 71 70 647 446 ; +C 133 ; WX 600 ; N ellipsis ; B 35 -15 587 116 ; +C 137 ; WX 600 ; N perthousand ; B -45 -15 743 616 ; +C 191 ; WX 600 ; N questiondown ; B 100 -146 509 449 ; +C 96 ; WX 600 ; N grave ; B 272 508 503 661 ; +C 180 ; WX 600 ; N acute ; B 312 508 609 661 ; +C 136 ; WX 600 ; N circumflex ; B 212 483 607 657 ; +C 152 ; WX 600 ; N tilde ; B 199 493 643 636 ; +C 175 ; WX 600 ; N macron ; B 195 505 637 585 ; +C -1 ; WX 600 ; N breve ; B 217 468 652 631 ; +C -1 ; WX 600 ; N dotaccent ; B 348 498 493 638 ; +C 168 ; WX 600 ; N dieresis ; B 246 498 595 638 ; +C -1 ; WX 600 ; N ring ; B 319 481 528 678 ; +C 184 ; WX 600 ; N cedilla ; B 168 -206 368 0 ; +C -1 ; WX 600 ; N hungarumlaut ; B 171 488 729 661 ; +C -1 ; WX 600 ; N ogonek ; B 143 -199 367 0 ; +C -1 ; WX 600 ; N caron ; B 238 493 633 667 ; +C 151 ; WX 600 ; N emdash ; B 33 203 677 313 ; +C 198 ; WX 600 ; N AE ; B -29 0 708 562 ; +C 170 ; WX 600 ; N ordfeminine ; B 188 196 526 580 ; +C -1 ; WX 600 ; N Lslash ; B 39 0 636 562 ; +C 216 ; WX 600 ; N Oslash ; B 48 -22 673 584 ; +C 140 ; WX 600 ; N OE ; B 26 0 701 562 ; +C 186 ; WX 600 ; N ordmasculine ; B 188 196 543 580 ; +C 230 ; WX 600 ; N ae ; B 21 -15 652 454 ; +C -1 ; WX 600 ; N dotlessi ; B 77 0 546 439 ; +C -1 ; WX 600 ; N lslash ; B 77 0 587 626 ; +C 248 ; WX 600 ; N oslash ; B 54 -24 638 463 ; +C 156 ; WX 600 ; N oe ; B 18 -15 662 454 ; +C 223 ; WX 600 ; N germandbls ; B 22 -15 629 626 ; +C 207 ; WX 600 ; N Idieresis ; B 77 0 643 761 ; +C 233 ; WX 600 ; N eacute ; B 81 -15 609 661 ; +C -1 ; WX 600 ; N abreve ; B 61 -15 658 661 ; +C -1 ; WX 600 ; N uhungarumlaut ; B 70 -15 769 661 ; +C -1 ; WX 600 ; N ecaron ; B 81 -15 633 667 ; +C 159 ; WX 600 ; N Ydieresis ; B 109 0 709 761 ; +C 247 ; WX 600 ; N divide ; B 114 16 596 500 ; +C 221 ; WX 600 ; N Yacute ; B 109 0 709 784 ; +C 194 ; WX 600 ; N Acircumflex ; B -9 0 632 780 ; +C 225 ; WX 600 ; N aacute ; B 61 -15 609 661 ; +C 219 ; WX 600 ; N Ucircumflex ; B 101 -18 716 780 ; +C 253 ; WX 600 ; N yacute ; B -21 -142 695 661 ; +C -1 ; WX 600 ; N scommaaccent ; B 66 -250 608 459 ; +C 234 ; WX 600 ; N ecircumflex ; B 81 -15 607 657 ; +C -1 ; WX 600 ; N Uring ; B 101 -18 716 801 ; +C 220 ; WX 600 ; N Udieresis ; B 101 -18 716 761 ; +C -1 ; WX 600 ; N aogonek ; B 61 -199 593 454 ; +C 218 ; WX 600 ; N Uacute ; B 101 -18 716 784 ; +C -1 ; WX 600 ; N uogonek ; B 70 -199 592 439 ; +C 203 ; WX 600 ; N Edieresis ; B 25 0 670 761 ; +C -1 ; WX 600 ; N Dcroat ; B 30 0 664 562 ; +C -1 ; WX 600 ; N commaaccent ; B 151 -250 385 -57 ; +C 169 ; WX 600 ; N copyright ; B 53 -18 667 580 ; +C -1 ; WX 600 ; N Emacron ; B 25 0 670 708 ; +C -1 ; WX 600 ; N ccaron ; B 81 -15 633 667 ; +C 229 ; WX 600 ; N aring ; B 61 -15 593 678 ; +C -1 ; WX 600 ; N Ncommaaccent ; B 8 -250 730 562 ; +C -1 ; WX 600 ; N lacute ; B 77 0 639 801 ; +C 224 ; WX 600 ; N agrave ; B 61 -15 593 661 ; +C -1 ; WX 600 ; N Tcommaaccent ; B 86 -250 679 562 ; +C -1 ; WX 600 ; N Cacute ; B 74 -18 675 784 ; +C 227 ; WX 600 ; N atilde ; B 61 -15 643 636 ; +C -1 ; WX 600 ; N Edotaccent ; B 25 0 670 761 ; +C 154 ; WX 600 ; N scaron ; B 66 -17 633 667 ; +C -1 ; WX 600 ; N scedilla ; B 66 -206 608 459 ; +C 237 ; WX 600 ; N iacute ; B 77 0 609 661 ; +C -1 ; WX 600 ; N lozenge ; B 145 0 614 740 ; +C -1 ; WX 600 ; N Rcaron ; B 24 0 659 790 ; +C -1 ; WX 600 ; N Gcommaaccent ; B 74 -250 675 580 ; +C 251 ; WX 600 ; N ucircumflex ; B 70 -15 597 657 ; +C 226 ; WX 600 ; N acircumflex ; B 61 -15 607 657 ; +C -1 ; WX 600 ; N Amacron ; B -9 0 633 708 ; +C -1 ; WX 600 ; N rcaron ; B 47 0 655 667 ; +C 231 ; WX 600 ; N ccedilla ; B 81 -206 631 459 ; +C -1 ; WX 600 ; N Zdotaccent ; B 62 0 637 761 ; +C 222 ; WX 600 ; N Thorn ; B 48 0 620 562 ; +C -1 ; WX 600 ; N Omacron ; B 74 -18 663 708 ; +C -1 ; WX 600 ; N Racute ; B 24 0 665 784 ; +C -1 ; WX 600 ; N Sacute ; B 54 -22 673 784 ; +C -1 ; WX 600 ; N dcaron ; B 60 -15 861 626 ; +C -1 ; WX 600 ; N Umacron ; B 101 -18 716 708 ; +C -1 ; WX 600 ; N uring ; B 70 -15 592 678 ; +C 179 ; WX 600 ; N threesuperior ; B 193 222 526 616 ; +C 210 ; WX 600 ; N Ograve ; B 74 -18 645 784 ; +C 192 ; WX 600 ; N Agrave ; B -9 0 632 784 ; +C -1 ; WX 600 ; N Abreve ; B -9 0 684 784 ; +C 215 ; WX 600 ; N multiply ; B 104 39 606 478 ; +C 250 ; WX 600 ; N uacute ; B 70 -15 599 661 ; +C -1 ; WX 600 ; N Tcaron ; B 86 0 679 790 ; +C -1 ; WX 600 ; N partialdiff ; B 91 -38 627 728 ; +C 255 ; WX 600 ; N ydieresis ; B -21 -142 695 638 ; +C -1 ; WX 600 ; N Nacute ; B 8 -12 730 784 ; +C 238 ; WX 600 ; N icircumflex ; B 77 0 577 657 ; +C 202 ; WX 600 ; N Ecircumflex ; B 25 0 670 780 ; +C 228 ; WX 600 ; N adieresis ; B 61 -15 595 638 ; +C 235 ; WX 600 ; N edieresis ; B 81 -15 605 638 ; +C -1 ; WX 600 ; N cacute ; B 81 -15 649 661 ; +C -1 ; WX 600 ; N nacute ; B 18 0 639 661 ; +C -1 ; WX 600 ; N umacron ; B 70 -15 637 585 ; +C -1 ; WX 600 ; N Ncaron ; B 8 -12 730 790 ; +C 205 ; WX 600 ; N Iacute ; B 77 0 643 784 ; +C 177 ; WX 600 ; N plusminus ; B 76 24 614 515 ; +C 166 ; WX 600 ; N brokenbar ; B 217 -175 489 675 ; +C 174 ; WX 600 ; N registered ; B 53 -18 667 580 ; +C -1 ; WX 600 ; N Gbreve ; B 74 -18 684 784 ; +C -1 ; WX 600 ; N Idotaccent ; B 77 0 643 761 ; +C -1 ; WX 600 ; N summation ; B 15 -10 672 706 ; +C 200 ; WX 600 ; N Egrave ; B 25 0 670 784 ; +C -1 ; WX 600 ; N racute ; B 47 0 655 661 ; +C -1 ; WX 600 ; N omacron ; B 71 -15 637 585 ; +C -1 ; WX 600 ; N Zacute ; B 62 0 665 784 ; +C 142 ; WX 600 ; N Zcaron ; B 62 0 659 790 ; +C -1 ; WX 600 ; N greaterequal ; B 26 0 627 696 ; +C 208 ; WX 600 ; N Eth ; B 30 0 664 562 ; +C 199 ; WX 600 ; N Ccedilla ; B 74 -206 675 580 ; +C -1 ; WX 600 ; N lcommaaccent ; B 77 -250 546 626 ; +C -1 ; WX 600 ; N tcaron ; B 118 -15 627 703 ; +C -1 ; WX 600 ; N eogonek ; B 81 -199 605 454 ; +C -1 ; WX 600 ; N Uogonek ; B 101 -199 716 562 ; +C 193 ; WX 600 ; N Aacute ; B -9 0 655 784 ; +C 196 ; WX 600 ; N Adieresis ; B -9 0 632 761 ; +C 232 ; WX 600 ; N egrave ; B 81 -15 605 661 ; +C -1 ; WX 600 ; N zacute ; B 81 0 614 661 ; +C -1 ; WX 600 ; N iogonek ; B 77 -199 546 658 ; +C 211 ; WX 600 ; N Oacute ; B 74 -18 645 784 ; +C 243 ; WX 600 ; N oacute ; B 71 -15 649 661 ; +C -1 ; WX 600 ; N amacron ; B 61 -15 637 585 ; +C -1 ; WX 600 ; N sacute ; B 66 -17 609 661 ; +C 239 ; WX 600 ; N idieresis ; B 77 0 561 618 ; +C 212 ; WX 600 ; N Ocircumflex ; B 74 -18 645 780 ; +C 217 ; WX 600 ; N Ugrave ; B 101 -18 716 784 ; +C -1 ; WX 600 ; N Delta ; B 6 0 594 688 ; +C 254 ; WX 600 ; N thorn ; B -32 -142 622 626 ; +C 178 ; WX 600 ; N twosuperior ; B 191 230 542 616 ; +C 214 ; WX 600 ; N Odieresis ; B 74 -18 645 761 ; +C 181 ; WX 600 ; N mu ; B 49 -142 592 439 ; +C 236 ; WX 600 ; N igrave ; B 77 0 546 661 ; +C -1 ; WX 600 ; N ohungarumlaut ; B 71 -15 809 661 ; +C -1 ; WX 600 ; N Eogonek ; B 25 -199 670 562 ; +C -1 ; WX 600 ; N dcroat ; B 60 -15 712 626 ; +C 190 ; WX 600 ; N threequarters ; B 8 -60 699 661 ; +C -1 ; WX 600 ; N Scedilla ; B 54 -206 673 582 ; +C -1 ; WX 600 ; N lcaron ; B 77 0 731 626 ; +C -1 ; WX 600 ; N Kcommaaccent ; B 21 -250 692 562 ; +C -1 ; WX 600 ; N Lacute ; B 39 0 636 784 ; +C 153 ; WX 600 ; N trademark ; B 86 230 869 562 ; +C -1 ; WX 600 ; N edotaccent ; B 81 -15 605 638 ; +C 204 ; WX 600 ; N Igrave ; B 77 0 643 784 ; +C -1 ; WX 600 ; N Imacron ; B 77 0 663 708 ; +C -1 ; WX 600 ; N Lcaron ; B 39 0 757 562 ; +C 189 ; WX 600 ; N onehalf ; B 22 -60 716 661 ; +C -1 ; WX 600 ; N lessequal ; B 26 0 671 696 ; +C 244 ; WX 600 ; N ocircumflex ; B 71 -15 622 657 ; +C 241 ; WX 600 ; N ntilde ; B 18 0 643 636 ; +C -1 ; WX 600 ; N Uhungarumlaut ; B 101 -18 805 784 ; +C 201 ; WX 600 ; N Eacute ; B 25 0 670 784 ; +C -1 ; WX 600 ; N emacron ; B 81 -15 637 585 ; +C -1 ; WX 600 ; N gbreve ; B 40 -146 674 661 ; +C 188 ; WX 600 ; N onequarter ; B 13 -60 707 661 ; +C 138 ; WX 600 ; N Scaron ; B 54 -22 689 790 ; +C -1 ; WX 600 ; N Scommaaccent ; B 54 -250 673 582 ; +C -1 ; WX 600 ; N Ohungarumlaut ; B 74 -18 795 784 ; +C 176 ; WX 600 ; N degree ; B 173 243 570 616 ; +C 242 ; WX 600 ; N ograve ; B 71 -15 622 661 ; +C -1 ; WX 600 ; N Ccaron ; B 74 -18 689 790 ; +C 249 ; WX 600 ; N ugrave ; B 70 -15 592 661 ; +C -1 ; WX 600 ; N radical ; B 67 -104 635 778 ; +C -1 ; WX 600 ; N Dcaron ; B 30 0 664 790 ; +C -1 ; WX 600 ; N rcommaaccent ; B 47 -250 655 454 ; +C 209 ; WX 600 ; N Ntilde ; B 8 -12 730 759 ; +C 245 ; WX 600 ; N otilde ; B 71 -15 643 636 ; +C -1 ; WX 600 ; N Rcommaaccent ; B 24 -250 617 562 ; +C -1 ; WX 600 ; N Lcommaaccent ; B 39 -250 636 562 ; +C 195 ; WX 600 ; N Atilde ; B -9 0 669 759 ; +C -1 ; WX 600 ; N Aogonek ; B -9 -199 632 562 ; +C 197 ; WX 600 ; N Aring ; B -9 0 632 801 ; +C 213 ; WX 600 ; N Otilde ; B 74 -18 669 759 ; +C -1 ; WX 600 ; N zdotaccent ; B 81 0 614 638 ; +C -1 ; WX 600 ; N Ecaron ; B 25 0 670 790 ; +C -1 ; WX 600 ; N Iogonek ; B 77 -199 643 562 ; +C -1 ; WX 600 ; N kcommaaccent ; B 33 -250 643 626 ; +C -1 ; WX 600 ; N minus ; B 114 203 596 313 ; +C 206 ; WX 600 ; N Icircumflex ; B 77 0 643 780 ; +C -1 ; WX 600 ; N ncaron ; B 18 0 633 667 ; +C -1 ; WX 600 ; N tcommaaccent ; B 118 -250 567 562 ; +C 172 ; WX 600 ; N logicalnot ; B 135 103 617 413 ; +C 246 ; WX 600 ; N odieresis ; B 71 -15 622 638 ; +C 252 ; WX 600 ; N udieresis ; B 70 -15 595 638 ; +C -1 ; WX 600 ; N notequal ; B 30 -47 626 563 ; +C -1 ; WX 600 ; N gcommaaccent ; B 40 -146 674 714 ; +C 240 ; WX 600 ; N eth ; B 93 -27 661 626 ; +C 158 ; WX 600 ; N zcaron ; B 81 0 643 667 ; +C -1 ; WX 600 ; N ncommaaccent ; B 18 -250 615 454 ; +C 185 ; WX 600 ; N onesuperior ; B 212 230 514 616 ; +C -1 ; WX 600 ; N imacron ; B 77 0 575 585 ; +C 128 ; WX 600 ; N Euro ; B 0 0 0 0 ; +EndCharMetrics +EndFontMetrics diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/Courier-Oblique.afm b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/Courier-Oblique.afm new file mode 100644 index 0000000..c8893ff --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/Courier-Oblique.afm @@ -0,0 +1,344 @@ +StartFontMetrics 4.1 +Comment Copyright (c) 1989, 1990, 1991, 1992, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Thu May 0:00:00 17:37:52 1997 +Comment UniqueID 43051 +Comment VMusage 16248 75829 +FontName Courier-Oblique +FullName Courier Oblique +FamilyName Courier +Weight Medium +ItalicAngle -12 +IsFixedPitch true +CharacterSet ExtendedRoman +FontBBox -27 -250 849 805 +UnderlinePosition -100 +UnderlineThickness 50 +Version 003.000 +Notice Copyright (c) 1989, 1990, 1991, 1992, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved. +EncodingScheme WinAnsiEncoding +CapHeight 562 +XHeight 426 +Ascender 629 +Descender -157 +StdHW 51 +StdVW 51 +StartCharMetrics 317 +C 32 ; WX 600 ; N space ; B 0 0 0 0 ; +C 160 ; WX 600 ; N space ; B 0 0 0 0 ; +C 33 ; WX 600 ; N exclam ; B 243 -15 464 572 ; +C 34 ; WX 600 ; N quotedbl ; B 273 328 532 562 ; +C 35 ; WX 600 ; N numbersign ; B 133 -32 596 639 ; +C 36 ; WX 600 ; N dollar ; B 108 -126 596 662 ; +C 37 ; WX 600 ; N percent ; B 134 -15 599 622 ; +C 38 ; WX 600 ; N ampersand ; B 87 -15 580 543 ; +C 146 ; WX 600 ; N quoteright ; B 283 328 495 562 ; +C 40 ; WX 600 ; N parenleft ; B 313 -108 572 622 ; +C 41 ; WX 600 ; N parenright ; B 137 -108 396 622 ; +C 42 ; WX 600 ; N asterisk ; B 212 257 580 607 ; +C 43 ; WX 600 ; N plus ; B 129 44 580 470 ; +C 44 ; WX 600 ; N comma ; B 157 -112 370 122 ; +C 45 ; WX 600 ; N hyphen ; B 152 231 558 285 ; +C 173 ; WX 600 ; N hyphen ; B 152 231 558 285 ; +C 46 ; WX 600 ; N period ; B 238 -15 382 109 ; +C 47 ; WX 600 ; N slash ; B 112 -80 604 629 ; +C 48 ; WX 600 ; N zero ; B 154 -15 575 622 ; +C 49 ; WX 600 ; N one ; B 98 0 515 622 ; +C 50 ; WX 600 ; N two ; B 70 0 568 622 ; +C 51 ; WX 600 ; N three ; B 82 -15 538 622 ; +C 52 ; WX 600 ; N four ; B 108 0 541 622 ; +C 53 ; WX 600 ; N five ; B 99 -15 589 607 ; +C 54 ; WX 600 ; N six ; B 155 -15 629 622 ; +C 55 ; WX 600 ; N seven ; B 182 0 612 607 ; +C 56 ; WX 600 ; N eight ; B 132 -15 588 622 ; +C 57 ; WX 600 ; N nine ; B 93 -15 574 622 ; +C 58 ; WX 600 ; N colon ; B 238 -15 441 385 ; +C 59 ; WX 600 ; N semicolon ; B 157 -112 441 385 ; +C 60 ; WX 600 ; N less ; B 96 42 610 472 ; +C 61 ; WX 600 ; N equal ; B 109 138 600 376 ; +C 62 ; WX 600 ; N greater ; B 85 42 599 472 ; +C 63 ; WX 600 ; N question ; B 222 -15 583 572 ; +C 64 ; WX 600 ; N at ; B 127 -15 582 622 ; +C 65 ; WX 600 ; N A ; B 3 0 607 562 ; +C 66 ; WX 600 ; N B ; B 43 0 616 562 ; +C 67 ; WX 600 ; N C ; B 93 -18 655 580 ; +C 68 ; WX 600 ; N D ; B 43 0 645 562 ; +C 69 ; WX 600 ; N E ; B 53 0 660 562 ; +C 70 ; WX 600 ; N F ; B 53 0 660 562 ; +C 71 ; WX 600 ; N G ; B 83 -18 645 580 ; +C 72 ; WX 600 ; N H ; B 32 0 687 562 ; +C 73 ; WX 600 ; N I ; B 96 0 623 562 ; +C 74 ; WX 600 ; N J ; B 52 -18 685 562 ; +C 75 ; WX 600 ; N K ; B 38 0 671 562 ; +C 76 ; WX 600 ; N L ; B 47 0 607 562 ; +C 77 ; WX 600 ; N M ; B 4 0 715 562 ; +C 78 ; WX 600 ; N N ; B 7 -13 712 562 ; +C 79 ; WX 600 ; N O ; B 94 -18 625 580 ; +C 80 ; WX 600 ; N P ; B 79 0 644 562 ; +C 81 ; WX 600 ; N Q ; B 95 -138 625 580 ; +C 82 ; WX 600 ; N R ; B 38 0 598 562 ; +C 83 ; WX 600 ; N S ; B 76 -20 650 580 ; +C 84 ; WX 600 ; N T ; B 108 0 665 562 ; +C 85 ; WX 600 ; N U ; B 125 -18 702 562 ; +C 86 ; WX 600 ; N V ; B 105 -13 723 562 ; +C 87 ; WX 600 ; N W ; B 106 -13 722 562 ; +C 88 ; WX 600 ; N X ; B 23 0 675 562 ; +C 89 ; WX 600 ; N Y ; B 133 0 695 562 ; +C 90 ; WX 600 ; N Z ; B 86 0 610 562 ; +C 91 ; WX 600 ; N bracketleft ; B 246 -108 574 622 ; +C 92 ; WX 600 ; N backslash ; B 249 -80 468 629 ; +C 93 ; WX 600 ; N bracketright ; B 135 -108 463 622 ; +C 94 ; WX 600 ; N asciicircum ; B 175 354 587 622 ; +C 95 ; WX 600 ; N underscore ; B -27 -125 584 -75 ; +C 145 ; WX 600 ; N quoteleft ; B 343 328 457 562 ; +C 97 ; WX 600 ; N a ; B 76 -15 569 441 ; +C 98 ; WX 600 ; N b ; B 29 -15 625 629 ; +C 99 ; WX 600 ; N c ; B 106 -15 608 441 ; +C 100 ; WX 600 ; N d ; B 85 -15 640 629 ; +C 101 ; WX 600 ; N e ; B 106 -15 598 441 ; +C 102 ; WX 600 ; N f ; B 114 0 662 629 ; L i fi ; L l fl ; +C 103 ; WX 600 ; N g ; B 61 -157 657 441 ; +C 104 ; WX 600 ; N h ; B 33 0 592 629 ; +C 105 ; WX 600 ; N i ; B 95 0 515 657 ; +C 106 ; WX 600 ; N j ; B 52 -157 550 657 ; +C 107 ; WX 600 ; N k ; B 58 0 633 629 ; +C 108 ; WX 600 ; N l ; B 95 0 515 629 ; +C 109 ; WX 600 ; N m ; B -5 0 615 441 ; +C 110 ; WX 600 ; N n ; B 26 0 585 441 ; +C 111 ; WX 600 ; N o ; B 102 -15 588 441 ; +C 112 ; WX 600 ; N p ; B -24 -157 605 441 ; +C 113 ; WX 600 ; N q ; B 85 -157 682 441 ; +C 114 ; WX 600 ; N r ; B 60 0 636 441 ; +C 115 ; WX 600 ; N s ; B 78 -15 584 441 ; +C 116 ; WX 600 ; N t ; B 167 -15 561 561 ; +C 117 ; WX 600 ; N u ; B 101 -15 572 426 ; +C 118 ; WX 600 ; N v ; B 90 -10 681 426 ; +C 119 ; WX 600 ; N w ; B 76 -10 695 426 ; +C 120 ; WX 600 ; N x ; B 20 0 655 426 ; +C 121 ; WX 600 ; N y ; B -4 -157 683 426 ; +C 122 ; WX 600 ; N z ; B 99 0 593 426 ; +C 123 ; WX 600 ; N braceleft ; B 233 -108 569 622 ; +C 124 ; WX 600 ; N bar ; B 222 -250 485 750 ; +C 125 ; WX 600 ; N braceright ; B 140 -108 477 622 ; +C 126 ; WX 600 ; N asciitilde ; B 116 197 600 320 ; +C 161 ; WX 600 ; N exclamdown ; B 225 -157 445 430 ; +C 162 ; WX 600 ; N cent ; B 151 -49 588 614 ; +C 163 ; WX 600 ; N sterling ; B 124 -21 621 611 ; +C -1 ; WX 600 ; N fraction ; B 84 -57 646 665 ; +C 165 ; WX 600 ; N yen ; B 120 0 693 562 ; +C 131 ; WX 600 ; N florin ; B -26 -143 671 622 ; +C 167 ; WX 600 ; N section ; B 104 -78 590 580 ; +C 164 ; WX 600 ; N currency ; B 94 58 628 506 ; +C 39 ; WX 600 ; N quotesingle ; B 345 328 460 562 ; +C 147 ; WX 600 ; N quotedblleft ; B 262 328 541 562 ; +C 171 ; WX 600 ; N guillemotleft ; B 92 70 652 446 ; +C 139 ; WX 600 ; N guilsinglleft ; B 204 70 540 446 ; +C 155 ; WX 600 ; N guilsinglright ; B 170 70 506 446 ; +C -1 ; WX 600 ; N fi ; B 3 0 619 629 ; +C -1 ; WX 600 ; N fl ; B 3 0 619 629 ; +C 150 ; WX 600 ; N endash ; B 124 231 586 285 ; +C 134 ; WX 600 ; N dagger ; B 217 -78 546 580 ; +C 135 ; WX 600 ; N daggerdbl ; B 163 -78 546 580 ; +C 183 ; WX 600 ; N periodcentered ; B 275 189 434 327 ; +C 182 ; WX 600 ; N paragraph ; B 100 -78 630 562 ; +C 149 ; WX 600 ; N bullet ; B 224 130 485 383 ; +C 130 ; WX 600 ; N quotesinglbase ; B 185 -134 397 100 ; +C 132 ; WX 600 ; N quotedblbase ; B 115 -134 478 100 ; +C 148 ; WX 600 ; N quotedblright ; B 213 328 576 562 ; +C 187 ; WX 600 ; N guillemotright ; B 58 70 618 446 ; +C 133 ; WX 600 ; N ellipsis ; B 46 -15 575 111 ; +C 137 ; WX 600 ; N perthousand ; B 59 -15 627 622 ; +C 191 ; WX 600 ; N questiondown ; B 105 -157 466 430 ; +C 96 ; WX 600 ; N grave ; B 294 497 484 672 ; +C 180 ; WX 600 ; N acute ; B 348 497 612 672 ; +C 136 ; WX 600 ; N circumflex ; B 229 477 581 654 ; +C 152 ; WX 600 ; N tilde ; B 212 489 629 606 ; +C 175 ; WX 600 ; N macron ; B 232 525 600 565 ; +C -1 ; WX 600 ; N breve ; B 279 501 576 609 ; +C -1 ; WX 600 ; N dotaccent ; B 373 537 478 640 ; +C 168 ; WX 600 ; N dieresis ; B 272 537 579 640 ; +C -1 ; WX 600 ; N ring ; B 332 463 500 627 ; +C 184 ; WX 600 ; N cedilla ; B 197 -151 344 10 ; +C -1 ; WX 600 ; N hungarumlaut ; B 239 497 683 672 ; +C -1 ; WX 600 ; N ogonek ; B 189 -172 377 4 ; +C -1 ; WX 600 ; N caron ; B 262 492 614 669 ; +C 151 ; WX 600 ; N emdash ; B 49 231 661 285 ; +C 198 ; WX 600 ; N AE ; B 3 0 655 562 ; +C 170 ; WX 600 ; N ordfeminine ; B 209 249 512 580 ; +C -1 ; WX 600 ; N Lslash ; B 47 0 607 562 ; +C 216 ; WX 600 ; N Oslash ; B 94 -80 625 629 ; +C 140 ; WX 600 ; N OE ; B 59 0 672 562 ; +C 186 ; WX 600 ; N ordmasculine ; B 210 249 535 580 ; +C 230 ; WX 600 ; N ae ; B 41 -15 626 441 ; +C -1 ; WX 600 ; N dotlessi ; B 95 0 515 426 ; +C -1 ; WX 600 ; N lslash ; B 95 0 587 629 ; +C 248 ; WX 600 ; N oslash ; B 102 -80 588 506 ; +C 156 ; WX 600 ; N oe ; B 54 -15 615 441 ; +C 223 ; WX 600 ; N germandbls ; B 48 -15 617 629 ; +C 207 ; WX 600 ; N Idieresis ; B 96 0 623 753 ; +C 233 ; WX 600 ; N eacute ; B 106 -15 612 672 ; +C -1 ; WX 600 ; N abreve ; B 76 -15 576 609 ; +C -1 ; WX 600 ; N uhungarumlaut ; B 101 -15 723 672 ; +C -1 ; WX 600 ; N ecaron ; B 106 -15 614 669 ; +C 159 ; WX 600 ; N Ydieresis ; B 133 0 695 753 ; +C 247 ; WX 600 ; N divide ; B 136 48 573 467 ; +C 221 ; WX 600 ; N Yacute ; B 133 0 695 805 ; +C 194 ; WX 600 ; N Acircumflex ; B 3 0 607 787 ; +C 225 ; WX 600 ; N aacute ; B 76 -15 612 672 ; +C 219 ; WX 600 ; N Ucircumflex ; B 125 -18 702 787 ; +C 253 ; WX 600 ; N yacute ; B -4 -157 683 672 ; +C -1 ; WX 600 ; N scommaaccent ; B 78 -250 584 441 ; +C 234 ; WX 600 ; N ecircumflex ; B 106 -15 598 654 ; +C -1 ; WX 600 ; N Uring ; B 125 -18 702 760 ; +C 220 ; WX 600 ; N Udieresis ; B 125 -18 702 753 ; +C -1 ; WX 600 ; N aogonek ; B 76 -172 569 441 ; +C 218 ; WX 600 ; N Uacute ; B 125 -18 702 805 ; +C -1 ; WX 600 ; N uogonek ; B 101 -172 572 426 ; +C 203 ; WX 600 ; N Edieresis ; B 53 0 660 753 ; +C -1 ; WX 600 ; N Dcroat ; B 43 0 645 562 ; +C -1 ; WX 600 ; N commaaccent ; B 145 -250 323 -58 ; +C 169 ; WX 600 ; N copyright ; B 53 -18 667 580 ; +C -1 ; WX 600 ; N Emacron ; B 53 0 660 698 ; +C -1 ; WX 600 ; N ccaron ; B 106 -15 614 669 ; +C 229 ; WX 600 ; N aring ; B 76 -15 569 627 ; +C -1 ; WX 600 ; N Ncommaaccent ; B 7 -250 712 562 ; +C -1 ; WX 600 ; N lacute ; B 95 0 640 805 ; +C 224 ; WX 600 ; N agrave ; B 76 -15 569 672 ; +C -1 ; WX 600 ; N Tcommaaccent ; B 108 -250 665 562 ; +C -1 ; WX 600 ; N Cacute ; B 93 -18 655 805 ; +C 227 ; WX 600 ; N atilde ; B 76 -15 629 606 ; +C -1 ; WX 600 ; N Edotaccent ; B 53 0 660 753 ; +C 154 ; WX 600 ; N scaron ; B 78 -15 614 669 ; +C -1 ; WX 600 ; N scedilla ; B 78 -151 584 441 ; +C 237 ; WX 600 ; N iacute ; B 95 0 612 672 ; +C -1 ; WX 600 ; N lozenge ; B 94 0 519 706 ; +C -1 ; WX 600 ; N Rcaron ; B 38 0 642 802 ; +C -1 ; WX 600 ; N Gcommaaccent ; B 83 -250 645 580 ; +C 251 ; WX 600 ; N ucircumflex ; B 101 -15 572 654 ; +C 226 ; WX 600 ; N acircumflex ; B 76 -15 581 654 ; +C -1 ; WX 600 ; N Amacron ; B 3 0 607 698 ; +C -1 ; WX 600 ; N rcaron ; B 60 0 636 669 ; +C 231 ; WX 600 ; N ccedilla ; B 106 -151 614 441 ; +C -1 ; WX 600 ; N Zdotaccent ; B 86 0 610 753 ; +C 222 ; WX 600 ; N Thorn ; B 79 0 606 562 ; +C -1 ; WX 600 ; N Omacron ; B 94 -18 628 698 ; +C -1 ; WX 600 ; N Racute ; B 38 0 670 805 ; +C -1 ; WX 600 ; N Sacute ; B 76 -20 650 805 ; +C -1 ; WX 600 ; N dcaron ; B 85 -15 849 629 ; +C -1 ; WX 600 ; N Umacron ; B 125 -18 702 698 ; +C -1 ; WX 600 ; N uring ; B 101 -15 572 627 ; +C 179 ; WX 600 ; N threesuperior ; B 213 240 501 622 ; +C 210 ; WX 600 ; N Ograve ; B 94 -18 625 805 ; +C 192 ; WX 600 ; N Agrave ; B 3 0 607 805 ; +C -1 ; WX 600 ; N Abreve ; B 3 0 607 732 ; +C 215 ; WX 600 ; N multiply ; B 103 43 607 470 ; +C 250 ; WX 600 ; N uacute ; B 101 -15 602 672 ; +C -1 ; WX 600 ; N Tcaron ; B 108 0 665 802 ; +C -1 ; WX 600 ; N partialdiff ; B 45 -38 546 710 ; +C 255 ; WX 600 ; N ydieresis ; B -4 -157 683 620 ; +C -1 ; WX 600 ; N Nacute ; B 7 -13 712 805 ; +C 238 ; WX 600 ; N icircumflex ; B 95 0 551 654 ; +C 202 ; WX 600 ; N Ecircumflex ; B 53 0 660 787 ; +C 228 ; WX 600 ; N adieresis ; B 76 -15 575 620 ; +C 235 ; WX 600 ; N edieresis ; B 106 -15 598 620 ; +C -1 ; WX 600 ; N cacute ; B 106 -15 612 672 ; +C -1 ; WX 600 ; N nacute ; B 26 0 602 672 ; +C -1 ; WX 600 ; N umacron ; B 101 -15 600 565 ; +C -1 ; WX 600 ; N Ncaron ; B 7 -13 712 802 ; +C 205 ; WX 600 ; N Iacute ; B 96 0 640 805 ; +C 177 ; WX 600 ; N plusminus ; B 96 44 594 558 ; +C 166 ; WX 600 ; N brokenbar ; B 238 -175 469 675 ; +C 174 ; WX 600 ; N registered ; B 53 -18 667 580 ; +C -1 ; WX 600 ; N Gbreve ; B 83 -18 645 732 ; +C -1 ; WX 600 ; N Idotaccent ; B 96 0 623 753 ; +C -1 ; WX 600 ; N summation ; B 15 -10 670 706 ; +C 200 ; WX 600 ; N Egrave ; B 53 0 660 805 ; +C -1 ; WX 600 ; N racute ; B 60 0 636 672 ; +C -1 ; WX 600 ; N omacron ; B 102 -15 600 565 ; +C -1 ; WX 600 ; N Zacute ; B 86 0 670 805 ; +C 142 ; WX 600 ; N Zcaron ; B 86 0 642 802 ; +C -1 ; WX 600 ; N greaterequal ; B 98 0 594 710 ; +C 208 ; WX 600 ; N Eth ; B 43 0 645 562 ; +C 199 ; WX 600 ; N Ccedilla ; B 93 -151 658 580 ; +C -1 ; WX 600 ; N lcommaaccent ; B 95 -250 515 629 ; +C -1 ; WX 600 ; N tcaron ; B 167 -15 587 717 ; +C -1 ; WX 600 ; N eogonek ; B 106 -172 598 441 ; +C -1 ; WX 600 ; N Uogonek ; B 124 -172 702 562 ; +C 193 ; WX 600 ; N Aacute ; B 3 0 660 805 ; +C 196 ; WX 600 ; N Adieresis ; B 3 0 607 753 ; +C 232 ; WX 600 ; N egrave ; B 106 -15 598 672 ; +C -1 ; WX 600 ; N zacute ; B 99 0 612 672 ; +C -1 ; WX 600 ; N iogonek ; B 95 -172 515 657 ; +C 211 ; WX 600 ; N Oacute ; B 94 -18 640 805 ; +C 243 ; WX 600 ; N oacute ; B 102 -15 612 672 ; +C -1 ; WX 600 ; N amacron ; B 76 -15 600 565 ; +C -1 ; WX 600 ; N sacute ; B 78 -15 612 672 ; +C 239 ; WX 600 ; N idieresis ; B 95 0 545 620 ; +C 212 ; WX 600 ; N Ocircumflex ; B 94 -18 625 787 ; +C 217 ; WX 600 ; N Ugrave ; B 125 -18 702 805 ; +C -1 ; WX 600 ; N Delta ; B 6 0 598 688 ; +C 254 ; WX 600 ; N thorn ; B -24 -157 605 629 ; +C 178 ; WX 600 ; N twosuperior ; B 230 249 535 622 ; +C 214 ; WX 600 ; N Odieresis ; B 94 -18 625 753 ; +C 181 ; WX 600 ; N mu ; B 72 -157 572 426 ; +C 236 ; WX 600 ; N igrave ; B 95 0 515 672 ; +C -1 ; WX 600 ; N ohungarumlaut ; B 102 -15 723 672 ; +C -1 ; WX 600 ; N Eogonek ; B 53 -172 660 562 ; +C -1 ; WX 600 ; N dcroat ; B 85 -15 704 629 ; +C 190 ; WX 600 ; N threequarters ; B 73 -56 659 666 ; +C -1 ; WX 600 ; N Scedilla ; B 76 -151 650 580 ; +C -1 ; WX 600 ; N lcaron ; B 95 0 667 629 ; +C -1 ; WX 600 ; N Kcommaaccent ; B 38 -250 671 562 ; +C -1 ; WX 600 ; N Lacute ; B 47 0 607 805 ; +C 153 ; WX 600 ; N trademark ; B 75 263 742 562 ; +C -1 ; WX 600 ; N edotaccent ; B 106 -15 598 620 ; +C 204 ; WX 600 ; N Igrave ; B 96 0 623 805 ; +C -1 ; WX 600 ; N Imacron ; B 96 0 628 698 ; +C -1 ; WX 600 ; N Lcaron ; B 47 0 632 562 ; +C 189 ; WX 600 ; N onehalf ; B 65 -57 669 665 ; +C -1 ; WX 600 ; N lessequal ; B 98 0 645 710 ; +C 244 ; WX 600 ; N ocircumflex ; B 102 -15 588 654 ; +C 241 ; WX 600 ; N ntilde ; B 26 0 629 606 ; +C -1 ; WX 600 ; N Uhungarumlaut ; B 125 -18 761 805 ; +C 201 ; WX 600 ; N Eacute ; B 53 0 670 805 ; +C -1 ; WX 600 ; N emacron ; B 106 -15 600 565 ; +C -1 ; WX 600 ; N gbreve ; B 61 -157 657 609 ; +C 188 ; WX 600 ; N onequarter ; B 65 -57 674 665 ; +C 138 ; WX 600 ; N Scaron ; B 76 -20 672 802 ; +C -1 ; WX 600 ; N Scommaaccent ; B 76 -250 650 580 ; +C -1 ; WX 600 ; N Ohungarumlaut ; B 94 -18 751 805 ; +C 176 ; WX 600 ; N degree ; B 214 269 576 622 ; +C 242 ; WX 600 ; N ograve ; B 102 -15 588 672 ; +C -1 ; WX 600 ; N Ccaron ; B 93 -18 672 802 ; +C 249 ; WX 600 ; N ugrave ; B 101 -15 572 672 ; +C -1 ; WX 600 ; N radical ; B 85 -15 765 792 ; +C -1 ; WX 600 ; N Dcaron ; B 43 0 645 802 ; +C -1 ; WX 600 ; N rcommaaccent ; B 60 -250 636 441 ; +C 209 ; WX 600 ; N Ntilde ; B 7 -13 712 729 ; +C 245 ; WX 600 ; N otilde ; B 102 -15 629 606 ; +C -1 ; WX 600 ; N Rcommaaccent ; B 38 -250 598 562 ; +C -1 ; WX 600 ; N Lcommaaccent ; B 47 -250 607 562 ; +C 195 ; WX 600 ; N Atilde ; B 3 0 655 729 ; +C -1 ; WX 600 ; N Aogonek ; B 3 -172 607 562 ; +C 197 ; WX 600 ; N Aring ; B 3 0 607 750 ; +C 213 ; WX 600 ; N Otilde ; B 94 -18 655 729 ; +C -1 ; WX 600 ; N zdotaccent ; B 99 0 593 620 ; +C -1 ; WX 600 ; N Ecaron ; B 53 0 660 802 ; +C -1 ; WX 600 ; N Iogonek ; B 96 -172 623 562 ; +C -1 ; WX 600 ; N kcommaaccent ; B 58 -250 633 629 ; +C -1 ; WX 600 ; N minus ; B 129 232 580 283 ; +C 206 ; WX 600 ; N Icircumflex ; B 96 0 623 787 ; +C -1 ; WX 600 ; N ncaron ; B 26 0 614 669 ; +C -1 ; WX 600 ; N tcommaaccent ; B 165 -250 561 561 ; +C 172 ; WX 600 ; N logicalnot ; B 155 108 591 369 ; +C 246 ; WX 600 ; N odieresis ; B 102 -15 588 620 ; +C 252 ; WX 600 ; N udieresis ; B 101 -15 575 620 ; +C -1 ; WX 600 ; N notequal ; B 43 -16 621 529 ; +C -1 ; WX 600 ; N gcommaaccent ; B 61 -157 657 708 ; +C 240 ; WX 600 ; N eth ; B 102 -15 639 629 ; +C 158 ; WX 600 ; N zcaron ; B 99 0 624 669 ; +C -1 ; WX 600 ; N ncommaaccent ; B 26 -250 585 441 ; +C 185 ; WX 600 ; N onesuperior ; B 231 249 491 622 ; +C -1 ; WX 600 ; N imacron ; B 95 0 543 565 ; +C 128 ; WX 600 ; N Euro ; B 0 0 0 0 ; +EndCharMetrics +EndFontMetrics diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/Courier.afm b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/Courier.afm new file mode 100644 index 0000000..fb77a74 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/Courier.afm @@ -0,0 +1,344 @@ +StartFontMetrics 4.1 +Comment Copyright (c) 1989, 1990, 1991, 1992, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Thu May 1 17:27:09 1997 +Comment UniqueID 43050 +Comment VMusage 39754 50779 +FontName Courier +FullName Courier +FamilyName Courier +Weight Medium +ItalicAngle 0 +IsFixedPitch true +CharacterSet ExtendedRoman +FontBBox -23 -250 715 805 +UnderlinePosition -100 +UnderlineThickness 50 +Version 003.000 +Notice Copyright (c) 1989, 1990, 1991, 1992, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved. +EncodingScheme WinAnsiEncoding +CapHeight 562 +XHeight 426 +Ascender 629 +Descender -157 +StdHW 51 +StdVW 51 +StartCharMetrics 317 +C 32 ; WX 600 ; N space ; B 0 0 0 0 ; +C 160 ; WX 600 ; N space ; B 0 0 0 0 ; +C 33 ; WX 600 ; N exclam ; B 236 -15 364 572 ; +C 34 ; WX 600 ; N quotedbl ; B 187 328 413 562 ; +C 35 ; WX 600 ; N numbersign ; B 93 -32 507 639 ; +C 36 ; WX 600 ; N dollar ; B 105 -126 496 662 ; +C 37 ; WX 600 ; N percent ; B 81 -15 518 622 ; +C 38 ; WX 600 ; N ampersand ; B 63 -15 538 543 ; +C 146 ; WX 600 ; N quoteright ; B 213 328 376 562 ; +C 40 ; WX 600 ; N parenleft ; B 269 -108 440 622 ; +C 41 ; WX 600 ; N parenright ; B 160 -108 331 622 ; +C 42 ; WX 600 ; N asterisk ; B 116 257 484 607 ; +C 43 ; WX 600 ; N plus ; B 80 44 520 470 ; +C 44 ; WX 600 ; N comma ; B 181 -112 344 122 ; +C 45 ; WX 600 ; N hyphen ; B 103 231 497 285 ; +C 173 ; WX 600 ; N hyphen ; B 103 231 497 285 ; +C 46 ; WX 600 ; N period ; B 229 -15 371 109 ; +C 47 ; WX 600 ; N slash ; B 125 -80 475 629 ; +C 48 ; WX 600 ; N zero ; B 106 -15 494 622 ; +C 49 ; WX 600 ; N one ; B 96 0 505 622 ; +C 50 ; WX 600 ; N two ; B 70 0 471 622 ; +C 51 ; WX 600 ; N three ; B 75 -15 466 622 ; +C 52 ; WX 600 ; N four ; B 78 0 500 622 ; +C 53 ; WX 600 ; N five ; B 92 -15 497 607 ; +C 54 ; WX 600 ; N six ; B 111 -15 497 622 ; +C 55 ; WX 600 ; N seven ; B 82 0 483 607 ; +C 56 ; WX 600 ; N eight ; B 102 -15 498 622 ; +C 57 ; WX 600 ; N nine ; B 96 -15 489 622 ; +C 58 ; WX 600 ; N colon ; B 229 -15 371 385 ; +C 59 ; WX 600 ; N semicolon ; B 181 -112 371 385 ; +C 60 ; WX 600 ; N less ; B 41 42 519 472 ; +C 61 ; WX 600 ; N equal ; B 80 138 520 376 ; +C 62 ; WX 600 ; N greater ; B 66 42 544 472 ; +C 63 ; WX 600 ; N question ; B 129 -15 492 572 ; +C 64 ; WX 600 ; N at ; B 77 -15 533 622 ; +C 65 ; WX 600 ; N A ; B 3 0 597 562 ; +C 66 ; WX 600 ; N B ; B 43 0 559 562 ; +C 67 ; WX 600 ; N C ; B 41 -18 540 580 ; +C 68 ; WX 600 ; N D ; B 43 0 574 562 ; +C 69 ; WX 600 ; N E ; B 53 0 550 562 ; +C 70 ; WX 600 ; N F ; B 53 0 545 562 ; +C 71 ; WX 600 ; N G ; B 31 -18 575 580 ; +C 72 ; WX 600 ; N H ; B 32 0 568 562 ; +C 73 ; WX 600 ; N I ; B 96 0 504 562 ; +C 74 ; WX 600 ; N J ; B 34 -18 566 562 ; +C 75 ; WX 600 ; N K ; B 38 0 582 562 ; +C 76 ; WX 600 ; N L ; B 47 0 554 562 ; +C 77 ; WX 600 ; N M ; B 4 0 596 562 ; +C 78 ; WX 600 ; N N ; B 7 -13 593 562 ; +C 79 ; WX 600 ; N O ; B 43 -18 557 580 ; +C 80 ; WX 600 ; N P ; B 79 0 558 562 ; +C 81 ; WX 600 ; N Q ; B 43 -138 557 580 ; +C 82 ; WX 600 ; N R ; B 38 0 588 562 ; +C 83 ; WX 600 ; N S ; B 72 -20 529 580 ; +C 84 ; WX 600 ; N T ; B 38 0 563 562 ; +C 85 ; WX 600 ; N U ; B 17 -18 583 562 ; +C 86 ; WX 600 ; N V ; B -4 -13 604 562 ; +C 87 ; WX 600 ; N W ; B -3 -13 603 562 ; +C 88 ; WX 600 ; N X ; B 23 0 577 562 ; +C 89 ; WX 600 ; N Y ; B 24 0 576 562 ; +C 90 ; WX 600 ; N Z ; B 86 0 514 562 ; +C 91 ; WX 600 ; N bracketleft ; B 269 -108 442 622 ; +C 92 ; WX 600 ; N backslash ; B 118 -80 482 629 ; +C 93 ; WX 600 ; N bracketright ; B 158 -108 331 622 ; +C 94 ; WX 600 ; N asciicircum ; B 94 354 506 622 ; +C 95 ; WX 600 ; N underscore ; B 0 -125 600 -75 ; +C 145 ; WX 600 ; N quoteleft ; B 224 328 387 562 ; +C 97 ; WX 600 ; N a ; B 53 -15 559 441 ; +C 98 ; WX 600 ; N b ; B 14 -15 575 629 ; +C 99 ; WX 600 ; N c ; B 66 -15 529 441 ; +C 100 ; WX 600 ; N d ; B 45 -15 591 629 ; +C 101 ; WX 600 ; N e ; B 66 -15 548 441 ; +C 102 ; WX 600 ; N f ; B 114 0 531 629 ; L i fi ; L l fl ; +C 103 ; WX 600 ; N g ; B 45 -157 566 441 ; +C 104 ; WX 600 ; N h ; B 18 0 582 629 ; +C 105 ; WX 600 ; N i ; B 95 0 505 657 ; +C 106 ; WX 600 ; N j ; B 82 -157 410 657 ; +C 107 ; WX 600 ; N k ; B 43 0 580 629 ; +C 108 ; WX 600 ; N l ; B 95 0 505 629 ; +C 109 ; WX 600 ; N m ; B -5 0 605 441 ; +C 110 ; WX 600 ; N n ; B 26 0 575 441 ; +C 111 ; WX 600 ; N o ; B 62 -15 538 441 ; +C 112 ; WX 600 ; N p ; B 9 -157 555 441 ; +C 113 ; WX 600 ; N q ; B 45 -157 591 441 ; +C 114 ; WX 600 ; N r ; B 60 0 559 441 ; +C 115 ; WX 600 ; N s ; B 80 -15 513 441 ; +C 116 ; WX 600 ; N t ; B 87 -15 530 561 ; +C 117 ; WX 600 ; N u ; B 21 -15 562 426 ; +C 118 ; WX 600 ; N v ; B 10 -10 590 426 ; +C 119 ; WX 600 ; N w ; B -4 -10 604 426 ; +C 120 ; WX 600 ; N x ; B 20 0 580 426 ; +C 121 ; WX 600 ; N y ; B 7 -157 592 426 ; +C 122 ; WX 600 ; N z ; B 99 0 502 426 ; +C 123 ; WX 600 ; N braceleft ; B 182 -108 437 622 ; +C 124 ; WX 600 ; N bar ; B 275 -250 326 750 ; +C 125 ; WX 600 ; N braceright ; B 163 -108 418 622 ; +C 126 ; WX 600 ; N asciitilde ; B 63 197 540 320 ; +C 161 ; WX 600 ; N exclamdown ; B 236 -157 364 430 ; +C 162 ; WX 600 ; N cent ; B 96 -49 500 614 ; +C 163 ; WX 600 ; N sterling ; B 84 -21 521 611 ; +C -1 ; WX 600 ; N fraction ; B 92 -57 509 665 ; +C 165 ; WX 600 ; N yen ; B 26 0 574 562 ; +C 131 ; WX 600 ; N florin ; B 4 -143 539 622 ; +C 167 ; WX 600 ; N section ; B 113 -78 488 580 ; +C 164 ; WX 600 ; N currency ; B 73 58 527 506 ; +C 39 ; WX 600 ; N quotesingle ; B 259 328 341 562 ; +C 147 ; WX 600 ; N quotedblleft ; B 143 328 471 562 ; +C 171 ; WX 600 ; N guillemotleft ; B 37 70 563 446 ; +C 139 ; WX 600 ; N guilsinglleft ; B 149 70 451 446 ; +C 155 ; WX 600 ; N guilsinglright ; B 149 70 451 446 ; +C -1 ; WX 600 ; N fi ; B 3 0 597 629 ; +C -1 ; WX 600 ; N fl ; B 3 0 597 629 ; +C 150 ; WX 600 ; N endash ; B 75 231 525 285 ; +C 134 ; WX 600 ; N dagger ; B 141 -78 459 580 ; +C 135 ; WX 600 ; N daggerdbl ; B 141 -78 459 580 ; +C 183 ; WX 600 ; N periodcentered ; B 222 189 378 327 ; +C 182 ; WX 600 ; N paragraph ; B 50 -78 511 562 ; +C 149 ; WX 600 ; N bullet ; B 172 130 428 383 ; +C 130 ; WX 600 ; N quotesinglbase ; B 213 -134 376 100 ; +C 132 ; WX 600 ; N quotedblbase ; B 143 -134 457 100 ; +C 148 ; WX 600 ; N quotedblright ; B 143 328 457 562 ; +C 187 ; WX 600 ; N guillemotright ; B 37 70 563 446 ; +C 133 ; WX 600 ; N ellipsis ; B 37 -15 563 111 ; +C 137 ; WX 600 ; N perthousand ; B 3 -15 600 622 ; +C 191 ; WX 600 ; N questiondown ; B 108 -157 471 430 ; +C 96 ; WX 600 ; N grave ; B 151 497 378 672 ; +C 180 ; WX 600 ; N acute ; B 242 497 469 672 ; +C 136 ; WX 600 ; N circumflex ; B 124 477 476 654 ; +C 152 ; WX 600 ; N tilde ; B 105 489 503 606 ; +C 175 ; WX 600 ; N macron ; B 120 525 480 565 ; +C -1 ; WX 600 ; N breve ; B 153 501 447 609 ; +C -1 ; WX 600 ; N dotaccent ; B 249 537 352 640 ; +C 168 ; WX 600 ; N dieresis ; B 148 537 453 640 ; +C -1 ; WX 600 ; N ring ; B 218 463 382 627 ; +C 184 ; WX 600 ; N cedilla ; B 224 -151 362 10 ; +C -1 ; WX 600 ; N hungarumlaut ; B 133 497 540 672 ; +C -1 ; WX 600 ; N ogonek ; B 211 -172 407 4 ; +C -1 ; WX 600 ; N caron ; B 124 492 476 669 ; +C 151 ; WX 600 ; N emdash ; B 0 231 600 285 ; +C 198 ; WX 600 ; N AE ; B 3 0 550 562 ; +C 170 ; WX 600 ; N ordfeminine ; B 156 249 442 580 ; +C -1 ; WX 600 ; N Lslash ; B 47 0 554 562 ; +C 216 ; WX 600 ; N Oslash ; B 43 -80 557 629 ; +C 140 ; WX 600 ; N OE ; B 7 0 567 562 ; +C 186 ; WX 600 ; N ordmasculine ; B 157 249 443 580 ; +C 230 ; WX 600 ; N ae ; B 19 -15 570 441 ; +C -1 ; WX 600 ; N dotlessi ; B 95 0 505 426 ; +C -1 ; WX 600 ; N lslash ; B 95 0 505 629 ; +C 248 ; WX 600 ; N oslash ; B 62 -80 538 506 ; +C 156 ; WX 600 ; N oe ; B 19 -15 559 441 ; +C 223 ; WX 600 ; N germandbls ; B 48 -15 588 629 ; +C 207 ; WX 600 ; N Idieresis ; B 96 0 504 753 ; +C 233 ; WX 600 ; N eacute ; B 66 -15 548 672 ; +C -1 ; WX 600 ; N abreve ; B 53 -15 559 609 ; +C -1 ; WX 600 ; N uhungarumlaut ; B 21 -15 580 672 ; +C -1 ; WX 600 ; N ecaron ; B 66 -15 548 669 ; +C 159 ; WX 600 ; N Ydieresis ; B 24 0 576 753 ; +C 247 ; WX 600 ; N divide ; B 87 48 513 467 ; +C 221 ; WX 600 ; N Yacute ; B 24 0 576 805 ; +C 194 ; WX 600 ; N Acircumflex ; B 3 0 597 787 ; +C 225 ; WX 600 ; N aacute ; B 53 -15 559 672 ; +C 219 ; WX 600 ; N Ucircumflex ; B 17 -18 583 787 ; +C 253 ; WX 600 ; N yacute ; B 7 -157 592 672 ; +C -1 ; WX 600 ; N scommaaccent ; B 80 -250 513 441 ; +C 234 ; WX 600 ; N ecircumflex ; B 66 -15 548 654 ; +C -1 ; WX 600 ; N Uring ; B 17 -18 583 760 ; +C 220 ; WX 600 ; N Udieresis ; B 17 -18 583 753 ; +C -1 ; WX 600 ; N aogonek ; B 53 -172 587 441 ; +C 218 ; WX 600 ; N Uacute ; B 17 -18 583 805 ; +C -1 ; WX 600 ; N uogonek ; B 21 -172 590 426 ; +C 203 ; WX 600 ; N Edieresis ; B 53 0 550 753 ; +C -1 ; WX 600 ; N Dcroat ; B 30 0 574 562 ; +C -1 ; WX 600 ; N commaaccent ; B 198 -250 335 -58 ; +C 169 ; WX 600 ; N copyright ; B 0 -18 600 580 ; +C -1 ; WX 600 ; N Emacron ; B 53 0 550 698 ; +C -1 ; WX 600 ; N ccaron ; B 66 -15 529 669 ; +C 229 ; WX 600 ; N aring ; B 53 -15 559 627 ; +C -1 ; WX 600 ; N Ncommaaccent ; B 7 -250 593 562 ; +C -1 ; WX 600 ; N lacute ; B 95 0 505 805 ; +C 224 ; WX 600 ; N agrave ; B 53 -15 559 672 ; +C -1 ; WX 600 ; N Tcommaaccent ; B 38 -250 563 562 ; +C -1 ; WX 600 ; N Cacute ; B 41 -18 540 805 ; +C 227 ; WX 600 ; N atilde ; B 53 -15 559 606 ; +C -1 ; WX 600 ; N Edotaccent ; B 53 0 550 753 ; +C 154 ; WX 600 ; N scaron ; B 80 -15 513 669 ; +C -1 ; WX 600 ; N scedilla ; B 80 -151 513 441 ; +C 237 ; WX 600 ; N iacute ; B 95 0 505 672 ; +C -1 ; WX 600 ; N lozenge ; B 18 0 443 706 ; +C -1 ; WX 600 ; N Rcaron ; B 38 0 588 802 ; +C -1 ; WX 600 ; N Gcommaaccent ; B 31 -250 575 580 ; +C 251 ; WX 600 ; N ucircumflex ; B 21 -15 562 654 ; +C 226 ; WX 600 ; N acircumflex ; B 53 -15 559 654 ; +C -1 ; WX 600 ; N Amacron ; B 3 0 597 698 ; +C -1 ; WX 600 ; N rcaron ; B 60 0 559 669 ; +C 231 ; WX 600 ; N ccedilla ; B 66 -151 529 441 ; +C -1 ; WX 600 ; N Zdotaccent ; B 86 0 514 753 ; +C 222 ; WX 600 ; N Thorn ; B 79 0 538 562 ; +C -1 ; WX 600 ; N Omacron ; B 43 -18 557 698 ; +C -1 ; WX 600 ; N Racute ; B 38 0 588 805 ; +C -1 ; WX 600 ; N Sacute ; B 72 -20 529 805 ; +C -1 ; WX 600 ; N dcaron ; B 45 -15 715 629 ; +C -1 ; WX 600 ; N Umacron ; B 17 -18 583 698 ; +C -1 ; WX 600 ; N uring ; B 21 -15 562 627 ; +C 179 ; WX 600 ; N threesuperior ; B 155 240 406 622 ; +C 210 ; WX 600 ; N Ograve ; B 43 -18 557 805 ; +C 192 ; WX 600 ; N Agrave ; B 3 0 597 805 ; +C -1 ; WX 600 ; N Abreve ; B 3 0 597 732 ; +C 215 ; WX 600 ; N multiply ; B 87 43 515 470 ; +C 250 ; WX 600 ; N uacute ; B 21 -15 562 672 ; +C -1 ; WX 600 ; N Tcaron ; B 38 0 563 802 ; +C -1 ; WX 600 ; N partialdiff ; B 17 -38 459 710 ; +C 255 ; WX 600 ; N ydieresis ; B 7 -157 592 620 ; +C -1 ; WX 600 ; N Nacute ; B 7 -13 593 805 ; +C 238 ; WX 600 ; N icircumflex ; B 94 0 505 654 ; +C 202 ; WX 600 ; N Ecircumflex ; B 53 0 550 787 ; +C 228 ; WX 600 ; N adieresis ; B 53 -15 559 620 ; +C 235 ; WX 600 ; N edieresis ; B 66 -15 548 620 ; +C -1 ; WX 600 ; N cacute ; B 66 -15 529 672 ; +C -1 ; WX 600 ; N nacute ; B 26 0 575 672 ; +C -1 ; WX 600 ; N umacron ; B 21 -15 562 565 ; +C -1 ; WX 600 ; N Ncaron ; B 7 -13 593 802 ; +C 205 ; WX 600 ; N Iacute ; B 96 0 504 805 ; +C 177 ; WX 600 ; N plusminus ; B 87 44 513 558 ; +C 166 ; WX 600 ; N brokenbar ; B 275 -175 326 675 ; +C 174 ; WX 600 ; N registered ; B 0 -18 600 580 ; +C -1 ; WX 600 ; N Gbreve ; B 31 -18 575 732 ; +C -1 ; WX 600 ; N Idotaccent ; B 96 0 504 753 ; +C -1 ; WX 600 ; N summation ; B 15 -10 585 706 ; +C 200 ; WX 600 ; N Egrave ; B 53 0 550 805 ; +C -1 ; WX 600 ; N racute ; B 60 0 559 672 ; +C -1 ; WX 600 ; N omacron ; B 62 -15 538 565 ; +C -1 ; WX 600 ; N Zacute ; B 86 0 514 805 ; +C 142 ; WX 600 ; N Zcaron ; B 86 0 514 802 ; +C -1 ; WX 600 ; N greaterequal ; B 98 0 502 710 ; +C 208 ; WX 600 ; N Eth ; B 30 0 574 562 ; +C 199 ; WX 600 ; N Ccedilla ; B 41 -151 540 580 ; +C -1 ; WX 600 ; N lcommaaccent ; B 95 -250 505 629 ; +C -1 ; WX 600 ; N tcaron ; B 87 -15 530 717 ; +C -1 ; WX 600 ; N eogonek ; B 66 -172 548 441 ; +C -1 ; WX 600 ; N Uogonek ; B 17 -172 583 562 ; +C 193 ; WX 600 ; N Aacute ; B 3 0 597 805 ; +C 196 ; WX 600 ; N Adieresis ; B 3 0 597 753 ; +C 232 ; WX 600 ; N egrave ; B 66 -15 548 672 ; +C -1 ; WX 600 ; N zacute ; B 99 0 502 672 ; +C -1 ; WX 600 ; N iogonek ; B 95 -172 505 657 ; +C 211 ; WX 600 ; N Oacute ; B 43 -18 557 805 ; +C 243 ; WX 600 ; N oacute ; B 62 -15 538 672 ; +C -1 ; WX 600 ; N amacron ; B 53 -15 559 565 ; +C -1 ; WX 600 ; N sacute ; B 80 -15 513 672 ; +C 239 ; WX 600 ; N idieresis ; B 95 0 505 620 ; +C 212 ; WX 600 ; N Ocircumflex ; B 43 -18 557 787 ; +C 217 ; WX 600 ; N Ugrave ; B 17 -18 583 805 ; +C -1 ; WX 600 ; N Delta ; B 6 0 598 688 ; +C 254 ; WX 600 ; N thorn ; B -6 -157 555 629 ; +C 178 ; WX 600 ; N twosuperior ; B 177 249 424 622 ; +C 214 ; WX 600 ; N Odieresis ; B 43 -18 557 753 ; +C 181 ; WX 600 ; N mu ; B 21 -157 562 426 ; +C 236 ; WX 600 ; N igrave ; B 95 0 505 672 ; +C -1 ; WX 600 ; N ohungarumlaut ; B 62 -15 580 672 ; +C -1 ; WX 600 ; N Eogonek ; B 53 -172 561 562 ; +C -1 ; WX 600 ; N dcroat ; B 45 -15 591 629 ; +C 190 ; WX 600 ; N threequarters ; B 8 -56 593 666 ; +C -1 ; WX 600 ; N Scedilla ; B 72 -151 529 580 ; +C -1 ; WX 600 ; N lcaron ; B 95 0 533 629 ; +C -1 ; WX 600 ; N Kcommaaccent ; B 38 -250 582 562 ; +C -1 ; WX 600 ; N Lacute ; B 47 0 554 805 ; +C 153 ; WX 600 ; N trademark ; B -23 263 623 562 ; +C -1 ; WX 600 ; N edotaccent ; B 66 -15 548 620 ; +C 204 ; WX 600 ; N Igrave ; B 96 0 504 805 ; +C -1 ; WX 600 ; N Imacron ; B 96 0 504 698 ; +C -1 ; WX 600 ; N Lcaron ; B 47 0 554 562 ; +C 189 ; WX 600 ; N onehalf ; B 0 -57 611 665 ; +C -1 ; WX 600 ; N lessequal ; B 98 0 502 710 ; +C 244 ; WX 600 ; N ocircumflex ; B 62 -15 538 654 ; +C 241 ; WX 600 ; N ntilde ; B 26 0 575 606 ; +C -1 ; WX 600 ; N Uhungarumlaut ; B 17 -18 590 805 ; +C 201 ; WX 600 ; N Eacute ; B 53 0 550 805 ; +C -1 ; WX 600 ; N emacron ; B 66 -15 548 565 ; +C -1 ; WX 600 ; N gbreve ; B 45 -157 566 609 ; +C 188 ; WX 600 ; N onequarter ; B 0 -57 600 665 ; +C 138 ; WX 600 ; N Scaron ; B 72 -20 529 802 ; +C -1 ; WX 600 ; N Scommaaccent ; B 72 -250 529 580 ; +C -1 ; WX 600 ; N Ohungarumlaut ; B 43 -18 580 805 ; +C 176 ; WX 600 ; N degree ; B 123 269 477 622 ; +C 242 ; WX 600 ; N ograve ; B 62 -15 538 672 ; +C -1 ; WX 600 ; N Ccaron ; B 41 -18 540 802 ; +C 249 ; WX 600 ; N ugrave ; B 21 -15 562 672 ; +C -1 ; WX 600 ; N radical ; B 3 -15 597 792 ; +C -1 ; WX 600 ; N Dcaron ; B 43 0 574 802 ; +C -1 ; WX 600 ; N rcommaaccent ; B 60 -250 559 441 ; +C 209 ; WX 600 ; N Ntilde ; B 7 -13 593 729 ; +C 245 ; WX 600 ; N otilde ; B 62 -15 538 606 ; +C -1 ; WX 600 ; N Rcommaaccent ; B 38 -250 588 562 ; +C -1 ; WX 600 ; N Lcommaaccent ; B 47 -250 554 562 ; +C 195 ; WX 600 ; N Atilde ; B 3 0 597 729 ; +C -1 ; WX 600 ; N Aogonek ; B 3 -172 608 562 ; +C 197 ; WX 600 ; N Aring ; B 3 0 597 750 ; +C 213 ; WX 600 ; N Otilde ; B 43 -18 557 729 ; +C -1 ; WX 600 ; N zdotaccent ; B 99 0 502 620 ; +C -1 ; WX 600 ; N Ecaron ; B 53 0 550 802 ; +C -1 ; WX 600 ; N Iogonek ; B 96 -172 504 562 ; +C -1 ; WX 600 ; N kcommaaccent ; B 43 -250 580 629 ; +C -1 ; WX 600 ; N minus ; B 80 232 520 283 ; +C 206 ; WX 600 ; N Icircumflex ; B 96 0 504 787 ; +C -1 ; WX 600 ; N ncaron ; B 26 0 575 669 ; +C -1 ; WX 600 ; N tcommaaccent ; B 87 -250 530 561 ; +C 172 ; WX 600 ; N logicalnot ; B 87 108 513 369 ; +C 246 ; WX 600 ; N odieresis ; B 62 -15 538 620 ; +C 252 ; WX 600 ; N udieresis ; B 21 -15 562 620 ; +C -1 ; WX 600 ; N notequal ; B 15 -16 540 529 ; +C -1 ; WX 600 ; N gcommaaccent ; B 45 -157 566 708 ; +C 240 ; WX 600 ; N eth ; B 62 -15 538 629 ; +C 158 ; WX 600 ; N zcaron ; B 99 0 502 669 ; +C -1 ; WX 600 ; N ncommaaccent ; B 26 -250 575 441 ; +C 185 ; WX 600 ; N onesuperior ; B 172 249 428 622 ; +C -1 ; WX 600 ; N imacron ; B 95 0 505 565 ; +C 128 ; WX 600 ; N Euro ; B 0 0 0 0 ; +EndCharMetrics +EndFontMetrics diff --git a/public_html/2022/newcms/pdf/ttfonts/DejaVuSans-Bold.ttf b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSans-Bold.ttf similarity index 54% rename from public_html/2022/newcms/pdf/ttfonts/DejaVuSans-Bold.ttf rename to public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSans-Bold.ttf index 7b29acc..6d65fa7 100644 Binary files a/public_html/2022/newcms/pdf/ttfonts/DejaVuSans-Bold.ttf and b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSans-Bold.ttf differ diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSans-Bold.ufm b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSans-Bold.ufm new file mode 100644 index 0000000..e927992 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSans-Bold.ufm @@ -0,0 +1,6067 @@ +StartFontMetrics 4.1 +Notice Converted by PHP-font-lib +Comment https://github.com/PhenX/php-font-lib +EncodingScheme FontSpecific +FontName DejaVu Sans +FontSubfamily Bold +UniqueID DejaVu Sans Bold +FullName DejaVu Sans Bold +Version Version 2.37 +PostScriptName DejaVuSans-Bold +Manufacturer DejaVu fonts team +FontVendorURL http://dejavu.sourceforge.net +LicenseURL http://dejavu.sourceforge.net/wiki/index.php/License +PreferredFamily DejaVu Sans +PreferredSubfamily Bold +Weight Bold +ItalicAngle 0 +IsFixedPitch false +UnderlineThickness 44 +UnderlinePosition -63 +FontHeightOffset 0 +Ascender 928 +Descender -236 +FontBBox -1069 -415 1975 1174 +StartCharMetrics 6196 +U 32 ; WX 348 ; N space ; G 3 +U 33 ; WX 456 ; N exclam ; G 4 +U 34 ; WX 521 ; N quotedbl ; G 5 +U 35 ; WX 838 ; N numbersign ; G 6 +U 36 ; WX 696 ; N dollar ; G 7 +U 37 ; WX 1002 ; N percent ; G 8 +U 38 ; WX 872 ; N ampersand ; G 9 +U 39 ; WX 306 ; N quotesingle ; G 10 +U 40 ; WX 457 ; N parenleft ; G 11 +U 41 ; WX 457 ; N parenright ; G 12 +U 42 ; WX 523 ; N asterisk ; G 13 +U 43 ; WX 838 ; N plus ; G 14 +U 44 ; WX 380 ; N comma ; G 15 +U 45 ; WX 415 ; N hyphen ; G 16 +U 46 ; WX 380 ; N period ; G 17 +U 47 ; WX 365 ; N slash ; G 18 +U 48 ; WX 696 ; N zero ; G 19 +U 49 ; WX 696 ; N one ; G 20 +U 50 ; WX 696 ; N two ; G 21 +U 51 ; WX 696 ; N three ; G 22 +U 52 ; WX 696 ; N four ; G 23 +U 53 ; WX 696 ; N five ; G 24 +U 54 ; WX 696 ; N six ; G 25 +U 55 ; WX 696 ; N seven ; G 26 +U 56 ; WX 696 ; N eight ; G 27 +U 57 ; WX 696 ; N nine ; G 28 +U 58 ; WX 400 ; N colon ; G 29 +U 59 ; WX 400 ; N semicolon ; G 30 +U 60 ; WX 838 ; N less ; G 31 +U 61 ; WX 838 ; N equal ; G 32 +U 62 ; WX 838 ; N greater ; G 33 +U 63 ; WX 580 ; N question ; G 34 +U 64 ; WX 1000 ; N at ; G 35 +U 65 ; WX 774 ; N A ; G 36 +U 66 ; WX 762 ; N B ; G 37 +U 67 ; WX 734 ; N C ; G 38 +U 68 ; WX 830 ; N D ; G 39 +U 69 ; WX 683 ; N E ; G 40 +U 70 ; WX 683 ; N F ; G 41 +U 71 ; WX 821 ; N G ; G 42 +U 72 ; WX 837 ; N H ; G 43 +U 73 ; WX 372 ; N I ; G 44 +U 74 ; WX 372 ; N J ; G 45 +U 75 ; WX 775 ; N K ; G 46 +U 76 ; WX 637 ; N L ; G 47 +U 77 ; WX 995 ; N M ; G 48 +U 78 ; WX 837 ; N N ; G 49 +U 79 ; WX 850 ; N O ; G 50 +U 80 ; WX 733 ; N P ; G 51 +U 81 ; WX 850 ; N Q ; G 52 +U 82 ; WX 770 ; N R ; G 53 +U 83 ; WX 720 ; N S ; G 54 +U 84 ; WX 682 ; N T ; G 55 +U 85 ; WX 812 ; N U ; G 56 +U 86 ; WX 774 ; N V ; G 57 +U 87 ; WX 1103 ; N W ; G 58 +U 88 ; WX 771 ; N X ; G 59 +U 89 ; WX 724 ; N Y ; G 60 +U 90 ; WX 725 ; N Z ; G 61 +U 91 ; WX 457 ; N bracketleft ; G 62 +U 92 ; WX 365 ; N backslash ; G 63 +U 93 ; WX 457 ; N bracketright ; G 64 +U 94 ; WX 838 ; N asciicircum ; G 65 +U 95 ; WX 500 ; N underscore ; G 66 +U 96 ; WX 500 ; N grave ; G 67 +U 97 ; WX 675 ; N a ; G 68 +U 98 ; WX 716 ; N b ; G 69 +U 99 ; WX 593 ; N c ; G 70 +U 100 ; WX 716 ; N d ; G 71 +U 101 ; WX 678 ; N e ; G 72 +U 102 ; WX 435 ; N f ; G 73 +U 103 ; WX 716 ; N g ; G 74 +U 104 ; WX 712 ; N h ; G 75 +U 105 ; WX 343 ; N i ; G 76 +U 106 ; WX 343 ; N j ; G 77 +U 107 ; WX 665 ; N k ; G 78 +U 108 ; WX 343 ; N l ; G 79 +U 109 ; WX 1042 ; N m ; G 80 +U 110 ; WX 712 ; N n ; G 81 +U 111 ; WX 687 ; N o ; G 82 +U 112 ; WX 716 ; N p ; G 83 +U 113 ; WX 716 ; N q ; G 84 +U 114 ; WX 493 ; N r ; G 85 +U 115 ; WX 595 ; N s ; G 86 +U 116 ; WX 478 ; N t ; G 87 +U 117 ; WX 712 ; N u ; G 88 +U 118 ; WX 652 ; N v ; G 89 +U 119 ; WX 924 ; N w ; G 90 +U 120 ; WX 645 ; N x ; G 91 +U 121 ; WX 652 ; N y ; G 92 +U 122 ; WX 582 ; N z ; G 93 +U 123 ; WX 712 ; N braceleft ; G 94 +U 124 ; WX 365 ; N bar ; G 95 +U 125 ; WX 712 ; N braceright ; G 96 +U 126 ; WX 838 ; N asciitilde ; G 97 +U 160 ; WX 348 ; N nbspace ; G 98 +U 161 ; WX 456 ; N exclamdown ; G 99 +U 162 ; WX 696 ; N cent ; G 100 +U 163 ; WX 696 ; N sterling ; G 101 +U 164 ; WX 636 ; N currency ; G 102 +U 165 ; WX 696 ; N yen ; G 103 +U 166 ; WX 365 ; N brokenbar ; G 104 +U 167 ; WX 500 ; N section ; G 105 +U 168 ; WX 500 ; N dieresis ; G 106 +U 169 ; WX 1000 ; N copyright ; G 107 +U 170 ; WX 564 ; N ordfeminine ; G 108 +U 171 ; WX 646 ; N guillemotleft ; G 109 +U 172 ; WX 838 ; N logicalnot ; G 110 +U 173 ; WX 415 ; N sfthyphen ; G 111 +U 174 ; WX 1000 ; N registered ; G 112 +U 175 ; WX 500 ; N macron ; G 113 +U 176 ; WX 500 ; N degree ; G 114 +U 177 ; WX 838 ; N plusminus ; G 115 +U 178 ; WX 438 ; N twosuperior ; G 116 +U 179 ; WX 438 ; N threesuperior ; G 117 +U 180 ; WX 500 ; N acute ; G 118 +U 181 ; WX 736 ; N mu ; G 119 +U 182 ; WX 636 ; N paragraph ; G 120 +U 183 ; WX 380 ; N periodcentered ; G 121 +U 184 ; WX 500 ; N cedilla ; G 122 +U 185 ; WX 438 ; N onesuperior ; G 123 +U 186 ; WX 564 ; N ordmasculine ; G 124 +U 187 ; WX 646 ; N guillemotright ; G 125 +U 188 ; WX 1035 ; N onequarter ; G 126 +U 189 ; WX 1035 ; N onehalf ; G 127 +U 190 ; WX 1035 ; N threequarters ; G 128 +U 191 ; WX 580 ; N questiondown ; G 129 +U 192 ; WX 774 ; N Agrave ; G 130 +U 193 ; WX 774 ; N Aacute ; G 131 +U 194 ; WX 774 ; N Acircumflex ; G 132 +U 195 ; WX 774 ; N Atilde ; G 133 +U 196 ; WX 774 ; N Adieresis ; G 134 +U 197 ; WX 774 ; N Aring ; G 135 +U 198 ; WX 1085 ; N AE ; G 136 +U 199 ; WX 734 ; N Ccedilla ; G 137 +U 200 ; WX 683 ; N Egrave ; G 138 +U 201 ; WX 683 ; N Eacute ; G 139 +U 202 ; WX 683 ; N Ecircumflex ; G 140 +U 203 ; WX 683 ; N Edieresis ; G 141 +U 204 ; WX 372 ; N Igrave ; G 142 +U 205 ; WX 372 ; N Iacute ; G 143 +U 206 ; WX 372 ; N Icircumflex ; G 144 +U 207 ; WX 372 ; N Idieresis ; G 145 +U 208 ; WX 838 ; N Eth ; G 146 +U 209 ; WX 837 ; N Ntilde ; G 147 +U 210 ; WX 850 ; N Ograve ; G 148 +U 211 ; WX 850 ; N Oacute ; G 149 +U 212 ; WX 850 ; N Ocircumflex ; G 150 +U 213 ; WX 850 ; N Otilde ; G 151 +U 214 ; WX 850 ; N Odieresis ; G 152 +U 215 ; WX 838 ; N multiply ; G 153 +U 216 ; WX 850 ; N Oslash ; G 154 +U 217 ; WX 812 ; N Ugrave ; G 155 +U 218 ; WX 812 ; N Uacute ; G 156 +U 219 ; WX 812 ; N Ucircumflex ; G 157 +U 220 ; WX 812 ; N Udieresis ; G 158 +U 221 ; WX 724 ; N Yacute ; G 159 +U 222 ; WX 738 ; N Thorn ; G 160 +U 223 ; WX 719 ; N germandbls ; G 161 +U 224 ; WX 675 ; N agrave ; G 162 +U 225 ; WX 675 ; N aacute ; G 163 +U 226 ; WX 675 ; N acircumflex ; G 164 +U 227 ; WX 675 ; N atilde ; G 165 +U 228 ; WX 675 ; N adieresis ; G 166 +U 229 ; WX 675 ; N aring ; G 167 +U 230 ; WX 1048 ; N ae ; G 168 +U 231 ; WX 593 ; N ccedilla ; G 169 +U 232 ; WX 678 ; N egrave ; G 170 +U 233 ; WX 678 ; N eacute ; G 171 +U 234 ; WX 678 ; N ecircumflex ; G 172 +U 235 ; WX 678 ; N edieresis ; G 173 +U 236 ; WX 343 ; N igrave ; G 174 +U 237 ; WX 343 ; N iacute ; G 175 +U 238 ; WX 343 ; N icircumflex ; G 176 +U 239 ; WX 343 ; N idieresis ; G 177 +U 240 ; WX 687 ; N eth ; G 178 +U 241 ; WX 712 ; N ntilde ; G 179 +U 242 ; WX 687 ; N ograve ; G 180 +U 243 ; WX 687 ; N oacute ; G 181 +U 244 ; WX 687 ; N ocircumflex ; G 182 +U 245 ; WX 687 ; N otilde ; G 183 +U 246 ; WX 687 ; N odieresis ; G 184 +U 247 ; WX 838 ; N divide ; G 185 +U 248 ; WX 687 ; N oslash ; G 186 +U 249 ; WX 712 ; N ugrave ; G 187 +U 250 ; WX 712 ; N uacute ; G 188 +U 251 ; WX 712 ; N ucircumflex ; G 189 +U 252 ; WX 712 ; N udieresis ; G 190 +U 253 ; WX 652 ; N yacute ; G 191 +U 254 ; WX 716 ; N thorn ; G 192 +U 255 ; WX 652 ; N ydieresis ; G 193 +U 256 ; WX 774 ; N Amacron ; G 194 +U 257 ; WX 675 ; N amacron ; G 195 +U 258 ; WX 774 ; N Abreve ; G 196 +U 259 ; WX 675 ; N abreve ; G 197 +U 260 ; WX 774 ; N Aogonek ; G 198 +U 261 ; WX 675 ; N aogonek ; G 199 +U 262 ; WX 734 ; N Cacute ; G 200 +U 263 ; WX 593 ; N cacute ; G 201 +U 264 ; WX 734 ; N Ccircumflex ; G 202 +U 265 ; WX 593 ; N ccircumflex ; G 203 +U 266 ; WX 734 ; N Cdotaccent ; G 204 +U 267 ; WX 593 ; N cdotaccent ; G 205 +U 268 ; WX 734 ; N Ccaron ; G 206 +U 269 ; WX 593 ; N ccaron ; G 207 +U 270 ; WX 830 ; N Dcaron ; G 208 +U 271 ; WX 716 ; N dcaron ; G 209 +U 272 ; WX 838 ; N Dcroat ; G 210 +U 273 ; WX 716 ; N dmacron ; G 211 +U 274 ; WX 683 ; N Emacron ; G 212 +U 275 ; WX 678 ; N emacron ; G 213 +U 276 ; WX 683 ; N Ebreve ; G 214 +U 277 ; WX 678 ; N ebreve ; G 215 +U 278 ; WX 683 ; N Edotaccent ; G 216 +U 279 ; WX 678 ; N edotaccent ; G 217 +U 280 ; WX 683 ; N Eogonek ; G 218 +U 281 ; WX 678 ; N eogonek ; G 219 +U 282 ; WX 683 ; N Ecaron ; G 220 +U 283 ; WX 678 ; N ecaron ; G 221 +U 284 ; WX 821 ; N Gcircumflex ; G 222 +U 285 ; WX 716 ; N gcircumflex ; G 223 +U 286 ; WX 821 ; N Gbreve ; G 224 +U 287 ; WX 716 ; N gbreve ; G 225 +U 288 ; WX 821 ; N Gdotaccent ; G 226 +U 289 ; WX 716 ; N gdotaccent ; G 227 +U 290 ; WX 821 ; N Gcommaaccent ; G 228 +U 291 ; WX 716 ; N gcommaaccent ; G 229 +U 292 ; WX 837 ; N Hcircumflex ; G 230 +U 293 ; WX 712 ; N hcircumflex ; G 231 +U 294 ; WX 974 ; N Hbar ; G 232 +U 295 ; WX 790 ; N hbar ; G 233 +U 296 ; WX 372 ; N Itilde ; G 234 +U 297 ; WX 343 ; N itilde ; G 235 +U 298 ; WX 372 ; N Imacron ; G 236 +U 299 ; WX 343 ; N imacron ; G 237 +U 300 ; WX 372 ; N Ibreve ; G 238 +U 301 ; WX 343 ; N ibreve ; G 239 +U 302 ; WX 372 ; N Iogonek ; G 240 +U 303 ; WX 343 ; N iogonek ; G 241 +U 304 ; WX 372 ; N Idot ; G 242 +U 305 ; WX 343 ; N dotlessi ; G 243 +U 306 ; WX 744 ; N IJ ; G 244 +U 307 ; WX 686 ; N ij ; G 245 +U 308 ; WX 372 ; N Jcircumflex ; G 246 +U 309 ; WX 343 ; N jcircumflex ; G 247 +U 310 ; WX 775 ; N Kcommaaccent ; G 248 +U 311 ; WX 665 ; N kcommaaccent ; G 249 +U 312 ; WX 665 ; N kgreenlandic ; G 250 +U 313 ; WX 637 ; N Lacute ; G 251 +U 314 ; WX 343 ; N lacute ; G 252 +U 315 ; WX 637 ; N Lcommaaccent ; G 253 +U 316 ; WX 343 ; N lcommaaccent ; G 254 +U 317 ; WX 637 ; N Lcaron ; G 255 +U 318 ; WX 479 ; N lcaron ; G 256 +U 319 ; WX 637 ; N Ldot ; G 257 +U 320 ; WX 557 ; N ldot ; G 258 +U 321 ; WX 642 ; N Lslash ; G 259 +U 322 ; WX 371 ; N lslash ; G 260 +U 323 ; WX 837 ; N Nacute ; G 261 +U 324 ; WX 712 ; N nacute ; G 262 +U 325 ; WX 837 ; N Ncommaaccent ; G 263 +U 326 ; WX 712 ; N ncommaaccent ; G 264 +U 327 ; WX 837 ; N Ncaron ; G 265 +U 328 ; WX 712 ; N ncaron ; G 266 +U 329 ; WX 983 ; N napostrophe ; G 267 +U 330 ; WX 837 ; N Eng ; G 268 +U 331 ; WX 712 ; N eng ; G 269 +U 332 ; WX 850 ; N Omacron ; G 270 +U 333 ; WX 687 ; N omacron ; G 271 +U 334 ; WX 850 ; N Obreve ; G 272 +U 335 ; WX 687 ; N obreve ; G 273 +U 336 ; WX 850 ; N Ohungarumlaut ; G 274 +U 337 ; WX 687 ; N ohungarumlaut ; G 275 +U 338 ; WX 1167 ; N OE ; G 276 +U 339 ; WX 1094 ; N oe ; G 277 +U 340 ; WX 770 ; N Racute ; G 278 +U 341 ; WX 493 ; N racute ; G 279 +U 342 ; WX 770 ; N Rcommaaccent ; G 280 +U 343 ; WX 493 ; N rcommaaccent ; G 281 +U 344 ; WX 770 ; N Rcaron ; G 282 +U 345 ; WX 493 ; N rcaron ; G 283 +U 346 ; WX 720 ; N Sacute ; G 284 +U 347 ; WX 595 ; N sacute ; G 285 +U 348 ; WX 720 ; N Scircumflex ; G 286 +U 349 ; WX 595 ; N scircumflex ; G 287 +U 350 ; WX 720 ; N Scedilla ; G 288 +U 351 ; WX 595 ; N scedilla ; G 289 +U 352 ; WX 720 ; N Scaron ; G 290 +U 353 ; WX 595 ; N scaron ; G 291 +U 354 ; WX 682 ; N Tcommaaccent ; G 292 +U 355 ; WX 478 ; N tcommaaccent ; G 293 +U 356 ; WX 682 ; N Tcaron ; G 294 +U 357 ; WX 478 ; N tcaron ; G 295 +U 358 ; WX 682 ; N Tbar ; G 296 +U 359 ; WX 478 ; N tbar ; G 297 +U 360 ; WX 812 ; N Utilde ; G 298 +U 361 ; WX 712 ; N utilde ; G 299 +U 362 ; WX 812 ; N Umacron ; G 300 +U 363 ; WX 712 ; N umacron ; G 301 +U 364 ; WX 812 ; N Ubreve ; G 302 +U 365 ; WX 712 ; N ubreve ; G 303 +U 366 ; WX 812 ; N Uring ; G 304 +U 367 ; WX 712 ; N uring ; G 305 +U 368 ; WX 812 ; N Uhungarumlaut ; G 306 +U 369 ; WX 712 ; N uhungarumlaut ; G 307 +U 370 ; WX 812 ; N Uogonek ; G 308 +U 371 ; WX 712 ; N uogonek ; G 309 +U 372 ; WX 1103 ; N Wcircumflex ; G 310 +U 373 ; WX 924 ; N wcircumflex ; G 311 +U 374 ; WX 724 ; N Ycircumflex ; G 312 +U 375 ; WX 652 ; N ycircumflex ; G 313 +U 376 ; WX 724 ; N Ydieresis ; G 314 +U 377 ; WX 725 ; N Zacute ; G 315 +U 378 ; WX 582 ; N zacute ; G 316 +U 379 ; WX 725 ; N Zdotaccent ; G 317 +U 380 ; WX 582 ; N zdotaccent ; G 318 +U 381 ; WX 725 ; N Zcaron ; G 319 +U 382 ; WX 582 ; N zcaron ; G 320 +U 383 ; WX 435 ; N longs ; G 321 +U 384 ; WX 716 ; N uni0180 ; G 322 +U 385 ; WX 811 ; N uni0181 ; G 323 +U 386 ; WX 762 ; N uni0182 ; G 324 +U 387 ; WX 716 ; N uni0183 ; G 325 +U 388 ; WX 762 ; N uni0184 ; G 326 +U 389 ; WX 716 ; N uni0185 ; G 327 +U 390 ; WX 734 ; N uni0186 ; G 328 +U 391 ; WX 734 ; N uni0187 ; G 329 +U 392 ; WX 593 ; N uni0188 ; G 330 +U 393 ; WX 838 ; N uni0189 ; G 331 +U 394 ; WX 879 ; N uni018A ; G 332 +U 395 ; WX 757 ; N uni018B ; G 333 +U 396 ; WX 716 ; N uni018C ; G 334 +U 397 ; WX 688 ; N uni018D ; G 335 +U 398 ; WX 683 ; N uni018E ; G 336 +U 399 ; WX 849 ; N uni018F ; G 337 +U 400 ; WX 696 ; N uni0190 ; G 338 +U 401 ; WX 683 ; N uni0191 ; G 339 +U 402 ; WX 435 ; N florin ; G 340 +U 403 ; WX 821 ; N uni0193 ; G 341 +U 404 ; WX 793 ; N uni0194 ; G 342 +U 405 ; WX 1045 ; N uni0195 ; G 343 +U 406 ; WX 436 ; N uni0196 ; G 344 +U 407 ; WX 389 ; N uni0197 ; G 345 +U 408 ; WX 775 ; N uni0198 ; G 346 +U 409 ; WX 665 ; N uni0199 ; G 347 +U 410 ; WX 360 ; N uni019A ; G 348 +U 411 ; WX 592 ; N uni019B ; G 349 +U 412 ; WX 1042 ; N uni019C ; G 350 +U 413 ; WX 837 ; N uni019D ; G 351 +U 414 ; WX 712 ; N uni019E ; G 352 +U 415 ; WX 850 ; N uni019F ; G 353 +U 416 ; WX 874 ; N Ohorn ; G 354 +U 417 ; WX 687 ; N ohorn ; G 355 +U 418 ; WX 1083 ; N uni01A2 ; G 356 +U 419 ; WX 912 ; N uni01A3 ; G 357 +U 420 ; WX 782 ; N uni01A4 ; G 358 +U 421 ; WX 716 ; N uni01A5 ; G 359 +U 422 ; WX 770 ; N uni01A6 ; G 360 +U 423 ; WX 720 ; N uni01A7 ; G 361 +U 424 ; WX 595 ; N uni01A8 ; G 362 +U 425 ; WX 683 ; N uni01A9 ; G 363 +U 426 ; WX 552 ; N uni01AA ; G 364 +U 427 ; WX 478 ; N uni01AB ; G 365 +U 428 ; WX 707 ; N uni01AC ; G 366 +U 429 ; WX 478 ; N uni01AD ; G 367 +U 430 ; WX 682 ; N uni01AE ; G 368 +U 431 ; WX 835 ; N Uhorn ; G 369 +U 432 ; WX 712 ; N uhorn ; G 370 +U 433 ; WX 850 ; N uni01B1 ; G 371 +U 434 ; WX 813 ; N uni01B2 ; G 372 +U 435 ; WX 797 ; N uni01B3 ; G 373 +U 436 ; WX 778 ; N uni01B4 ; G 374 +U 437 ; WX 725 ; N uni01B5 ; G 375 +U 438 ; WX 582 ; N uni01B6 ; G 376 +U 439 ; WX 772 ; N uni01B7 ; G 377 +U 440 ; WX 772 ; N uni01B8 ; G 378 +U 441 ; WX 641 ; N uni01B9 ; G 379 +U 442 ; WX 582 ; N uni01BA ; G 380 +U 443 ; WX 696 ; N uni01BB ; G 381 +U 444 ; WX 772 ; N uni01BC ; G 382 +U 445 ; WX 641 ; N uni01BD ; G 383 +U 446 ; WX 573 ; N uni01BE ; G 384 +U 447 ; WX 716 ; N uni01BF ; G 385 +U 448 ; WX 372 ; N uni01C0 ; G 386 +U 449 ; WX 659 ; N uni01C1 ; G 387 +U 450 ; WX 544 ; N uni01C2 ; G 388 +U 451 ; WX 372 ; N uni01C3 ; G 389 +U 452 ; WX 1555 ; N uni01C4 ; G 390 +U 453 ; WX 1412 ; N uni01C5 ; G 391 +U 454 ; WX 1298 ; N uni01C6 ; G 392 +U 455 ; WX 1009 ; N uni01C7 ; G 393 +U 456 ; WX 980 ; N uni01C8 ; G 394 +U 457 ; WX 686 ; N uni01C9 ; G 395 +U 458 ; WX 1209 ; N uni01CA ; G 396 +U 459 ; WX 1180 ; N uni01CB ; G 397 +U 460 ; WX 1055 ; N uni01CC ; G 398 +U 461 ; WX 774 ; N uni01CD ; G 399 +U 462 ; WX 675 ; N uni01CE ; G 400 +U 463 ; WX 372 ; N uni01CF ; G 401 +U 464 ; WX 343 ; N uni01D0 ; G 402 +U 465 ; WX 850 ; N uni01D1 ; G 403 +U 466 ; WX 687 ; N uni01D2 ; G 404 +U 467 ; WX 812 ; N uni01D3 ; G 405 +U 468 ; WX 712 ; N uni01D4 ; G 406 +U 469 ; WX 812 ; N uni01D5 ; G 407 +U 470 ; WX 712 ; N uni01D6 ; G 408 +U 471 ; WX 812 ; N uni01D7 ; G 409 +U 472 ; WX 712 ; N uni01D8 ; G 410 +U 473 ; WX 812 ; N uni01D9 ; G 411 +U 474 ; WX 712 ; N uni01DA ; G 412 +U 475 ; WX 812 ; N uni01DB ; G 413 +U 476 ; WX 712 ; N uni01DC ; G 414 +U 477 ; WX 678 ; N uni01DD ; G 415 +U 478 ; WX 774 ; N uni01DE ; G 416 +U 479 ; WX 675 ; N uni01DF ; G 417 +U 480 ; WX 774 ; N uni01E0 ; G 418 +U 481 ; WX 675 ; N uni01E1 ; G 419 +U 482 ; WX 1085 ; N uni01E2 ; G 420 +U 483 ; WX 1048 ; N uni01E3 ; G 421 +U 484 ; WX 821 ; N uni01E4 ; G 422 +U 485 ; WX 716 ; N uni01E5 ; G 423 +U 486 ; WX 821 ; N Gcaron ; G 424 +U 487 ; WX 716 ; N gcaron ; G 425 +U 488 ; WX 775 ; N uni01E8 ; G 426 +U 489 ; WX 665 ; N uni01E9 ; G 427 +U 490 ; WX 850 ; N uni01EA ; G 428 +U 491 ; WX 687 ; N uni01EB ; G 429 +U 492 ; WX 850 ; N uni01EC ; G 430 +U 493 ; WX 687 ; N uni01ED ; G 431 +U 494 ; WX 772 ; N uni01EE ; G 432 +U 495 ; WX 582 ; N uni01EF ; G 433 +U 496 ; WX 343 ; N uni01F0 ; G 434 +U 497 ; WX 1555 ; N uni01F1 ; G 435 +U 498 ; WX 1412 ; N uni01F2 ; G 436 +U 499 ; WX 1298 ; N uni01F3 ; G 437 +U 500 ; WX 821 ; N uni01F4 ; G 438 +U 501 ; WX 716 ; N uni01F5 ; G 439 +U 502 ; WX 1289 ; N uni01F6 ; G 440 +U 503 ; WX 787 ; N uni01F7 ; G 441 +U 504 ; WX 837 ; N uni01F8 ; G 442 +U 505 ; WX 712 ; N uni01F9 ; G 443 +U 506 ; WX 774 ; N Aringacute ; G 444 +U 507 ; WX 675 ; N aringacute ; G 445 +U 508 ; WX 1085 ; N AEacute ; G 446 +U 509 ; WX 1048 ; N aeacute ; G 447 +U 510 ; WX 850 ; N Oslashacute ; G 448 +U 511 ; WX 687 ; N oslashacute ; G 449 +U 512 ; WX 774 ; N uni0200 ; G 450 +U 513 ; WX 675 ; N uni0201 ; G 451 +U 514 ; WX 774 ; N uni0202 ; G 452 +U 515 ; WX 675 ; N uni0203 ; G 453 +U 516 ; WX 683 ; N uni0204 ; G 454 +U 517 ; WX 678 ; N uni0205 ; G 455 +U 518 ; WX 683 ; N uni0206 ; G 456 +U 519 ; WX 678 ; N uni0207 ; G 457 +U 520 ; WX 372 ; N uni0208 ; G 458 +U 521 ; WX 343 ; N uni0209 ; G 459 +U 522 ; WX 372 ; N uni020A ; G 460 +U 523 ; WX 343 ; N uni020B ; G 461 +U 524 ; WX 850 ; N uni020C ; G 462 +U 525 ; WX 687 ; N uni020D ; G 463 +U 526 ; WX 850 ; N uni020E ; G 464 +U 527 ; WX 687 ; N uni020F ; G 465 +U 528 ; WX 770 ; N uni0210 ; G 466 +U 529 ; WX 493 ; N uni0211 ; G 467 +U 530 ; WX 770 ; N uni0212 ; G 468 +U 531 ; WX 493 ; N uni0213 ; G 469 +U 532 ; WX 812 ; N uni0214 ; G 470 +U 533 ; WX 712 ; N uni0215 ; G 471 +U 534 ; WX 812 ; N uni0216 ; G 472 +U 535 ; WX 712 ; N uni0217 ; G 473 +U 536 ; WX 720 ; N Scommaaccent ; G 474 +U 537 ; WX 595 ; N scommaaccent ; G 475 +U 538 ; WX 682 ; N uni021A ; G 476 +U 539 ; WX 478 ; N uni021B ; G 477 +U 540 ; WX 690 ; N uni021C ; G 478 +U 541 ; WX 607 ; N uni021D ; G 479 +U 542 ; WX 837 ; N uni021E ; G 480 +U 543 ; WX 712 ; N uni021F ; G 481 +U 544 ; WX 837 ; N uni0220 ; G 482 +U 545 ; WX 865 ; N uni0221 ; G 483 +U 546 ; WX 809 ; N uni0222 ; G 484 +U 547 ; WX 659 ; N uni0223 ; G 485 +U 548 ; WX 725 ; N uni0224 ; G 486 +U 549 ; WX 582 ; N uni0225 ; G 487 +U 550 ; WX 774 ; N uni0226 ; G 488 +U 551 ; WX 675 ; N uni0227 ; G 489 +U 552 ; WX 683 ; N uni0228 ; G 490 +U 553 ; WX 678 ; N uni0229 ; G 491 +U 554 ; WX 850 ; N uni022A ; G 492 +U 555 ; WX 687 ; N uni022B ; G 493 +U 556 ; WX 850 ; N uni022C ; G 494 +U 557 ; WX 687 ; N uni022D ; G 495 +U 558 ; WX 850 ; N uni022E ; G 496 +U 559 ; WX 687 ; N uni022F ; G 497 +U 560 ; WX 850 ; N uni0230 ; G 498 +U 561 ; WX 687 ; N uni0231 ; G 499 +U 562 ; WX 724 ; N uni0232 ; G 500 +U 563 ; WX 652 ; N uni0233 ; G 501 +U 564 ; WX 492 ; N uni0234 ; G 502 +U 565 ; WX 867 ; N uni0235 ; G 503 +U 566 ; WX 512 ; N uni0236 ; G 504 +U 567 ; WX 343 ; N dotlessj ; G 505 +U 568 ; WX 1088 ; N uni0238 ; G 506 +U 569 ; WX 1088 ; N uni0239 ; G 507 +U 570 ; WX 774 ; N uni023A ; G 508 +U 571 ; WX 734 ; N uni023B ; G 509 +U 572 ; WX 593 ; N uni023C ; G 510 +U 573 ; WX 637 ; N uni023D ; G 511 +U 574 ; WX 682 ; N uni023E ; G 512 +U 575 ; WX 595 ; N uni023F ; G 513 +U 576 ; WX 582 ; N uni0240 ; G 514 +U 577 ; WX 782 ; N uni0241 ; G 515 +U 578 ; WX 614 ; N uni0242 ; G 516 +U 579 ; WX 762 ; N uni0243 ; G 517 +U 580 ; WX 812 ; N uni0244 ; G 518 +U 581 ; WX 774 ; N uni0245 ; G 519 +U 582 ; WX 683 ; N uni0246 ; G 520 +U 583 ; WX 678 ; N uni0247 ; G 521 +U 584 ; WX 372 ; N uni0248 ; G 522 +U 585 ; WX 343 ; N uni0249 ; G 523 +U 586 ; WX 860 ; N uni024A ; G 524 +U 587 ; WX 791 ; N uni024B ; G 525 +U 588 ; WX 770 ; N uni024C ; G 526 +U 589 ; WX 493 ; N uni024D ; G 527 +U 590 ; WX 724 ; N uni024E ; G 528 +U 591 ; WX 652 ; N uni024F ; G 529 +U 592 ; WX 675 ; N uni0250 ; G 530 +U 593 ; WX 716 ; N uni0251 ; G 531 +U 594 ; WX 716 ; N uni0252 ; G 532 +U 595 ; WX 716 ; N uni0253 ; G 533 +U 596 ; WX 593 ; N uni0254 ; G 534 +U 597 ; WX 593 ; N uni0255 ; G 535 +U 598 ; WX 717 ; N uni0256 ; G 536 +U 599 ; WX 792 ; N uni0257 ; G 537 +U 600 ; WX 678 ; N uni0258 ; G 538 +U 601 ; WX 678 ; N uni0259 ; G 539 +U 602 ; WX 876 ; N uni025A ; G 540 +U 603 ; WX 557 ; N uni025B ; G 541 +U 604 ; WX 545 ; N uni025C ; G 542 +U 605 ; WX 815 ; N uni025D ; G 543 +U 606 ; WX 731 ; N uni025E ; G 544 +U 607 ; WX 343 ; N uni025F ; G 545 +U 608 ; WX 792 ; N uni0260 ; G 546 +U 609 ; WX 716 ; N uni0261 ; G 547 +U 610 ; WX 627 ; N uni0262 ; G 548 +U 611 ; WX 644 ; N uni0263 ; G 549 +U 612 ; WX 635 ; N uni0264 ; G 550 +U 613 ; WX 712 ; N uni0265 ; G 551 +U 614 ; WX 712 ; N uni0266 ; G 552 +U 615 ; WX 712 ; N uni0267 ; G 553 +U 616 ; WX 545 ; N uni0268 ; G 554 +U 617 ; WX 440 ; N uni0269 ; G 555 +U 618 ; WX 545 ; N uni026A ; G 556 +U 619 ; WX 559 ; N uni026B ; G 557 +U 620 ; WX 693 ; N uni026C ; G 558 +U 621 ; WX 343 ; N uni026D ; G 559 +U 622 ; WX 841 ; N uni026E ; G 560 +U 623 ; WX 1042 ; N uni026F ; G 561 +U 624 ; WX 1042 ; N uni0270 ; G 562 +U 625 ; WX 1042 ; N uni0271 ; G 563 +U 626 ; WX 712 ; N uni0272 ; G 564 +U 627 ; WX 793 ; N uni0273 ; G 565 +U 628 ; WX 707 ; N uni0274 ; G 566 +U 629 ; WX 687 ; N uni0275 ; G 567 +U 630 ; WX 909 ; N uni0276 ; G 568 +U 631 ; WX 681 ; N uni0277 ; G 569 +U 632 ; WX 796 ; N uni0278 ; G 570 +U 633 ; WX 538 ; N uni0279 ; G 571 +U 634 ; WX 538 ; N uni027A ; G 572 +U 635 ; WX 650 ; N uni027B ; G 573 +U 636 ; WX 493 ; N uni027C ; G 574 +U 637 ; WX 493 ; N uni027D ; G 575 +U 638 ; WX 596 ; N uni027E ; G 576 +U 639 ; WX 596 ; N uni027F ; G 577 +U 640 ; WX 642 ; N uni0280 ; G 578 +U 641 ; WX 642 ; N uni0281 ; G 579 +U 642 ; WX 595 ; N uni0282 ; G 580 +U 643 ; WX 415 ; N uni0283 ; G 581 +U 644 ; WX 435 ; N uni0284 ; G 582 +U 645 ; WX 605 ; N uni0285 ; G 583 +U 646 ; WX 552 ; N uni0286 ; G 584 +U 647 ; WX 478 ; N uni0287 ; G 585 +U 648 ; WX 478 ; N uni0288 ; G 586 +U 649 ; WX 920 ; N uni0289 ; G 587 +U 650 ; WX 772 ; N uni028A ; G 588 +U 651 ; WX 670 ; N uni028B ; G 589 +U 652 ; WX 652 ; N uni028C ; G 590 +U 653 ; WX 924 ; N uni028D ; G 591 +U 654 ; WX 652 ; N uni028E ; G 592 +U 655 ; WX 724 ; N uni028F ; G 593 +U 656 ; WX 694 ; N uni0290 ; G 594 +U 657 ; WX 684 ; N uni0291 ; G 595 +U 658 ; WX 641 ; N uni0292 ; G 596 +U 659 ; WX 641 ; N uni0293 ; G 597 +U 660 ; WX 573 ; N uni0294 ; G 598 +U 661 ; WX 573 ; N uni0295 ; G 599 +U 662 ; WX 573 ; N uni0296 ; G 600 +U 663 ; WX 573 ; N uni0297 ; G 601 +U 664 ; WX 850 ; N uni0298 ; G 602 +U 665 ; WX 633 ; N uni0299 ; G 603 +U 666 ; WX 731 ; N uni029A ; G 604 +U 667 ; WX 685 ; N uni029B ; G 605 +U 668 ; WX 691 ; N uni029C ; G 606 +U 669 ; WX 343 ; N uni029D ; G 607 +U 670 ; WX 732 ; N uni029E ; G 608 +U 671 ; WX 539 ; N uni029F ; G 609 +U 672 ; WX 792 ; N uni02A0 ; G 610 +U 673 ; WX 573 ; N uni02A1 ; G 611 +U 674 ; WX 573 ; N uni02A2 ; G 612 +U 675 ; WX 1156 ; N uni02A3 ; G 613 +U 676 ; WX 1214 ; N uni02A4 ; G 614 +U 677 ; WX 1155 ; N uni02A5 ; G 615 +U 678 ; WX 975 ; N uni02A6 ; G 616 +U 679 ; WX 769 ; N uni02A7 ; G 617 +U 680 ; WX 929 ; N uni02A8 ; G 618 +U 681 ; WX 1026 ; N uni02A9 ; G 619 +U 682 ; WX 862 ; N uni02AA ; G 620 +U 683 ; WX 780 ; N uni02AB ; G 621 +U 684 ; WX 591 ; N uni02AC ; G 622 +U 685 ; WX 415 ; N uni02AD ; G 623 +U 686 ; WX 677 ; N uni02AE ; G 624 +U 687 ; WX 789 ; N uni02AF ; G 625 +U 688 ; WX 456 ; N uni02B0 ; G 626 +U 689 ; WX 456 ; N uni02B1 ; G 627 +U 690 ; WX 219 ; N uni02B2 ; G 628 +U 691 ; WX 315 ; N uni02B3 ; G 629 +U 692 ; WX 315 ; N uni02B4 ; G 630 +U 693 ; WX 315 ; N uni02B5 ; G 631 +U 694 ; WX 411 ; N uni02B6 ; G 632 +U 695 ; WX 591 ; N uni02B7 ; G 633 +U 696 ; WX 417 ; N uni02B8 ; G 634 +U 697 ; WX 302 ; N uni02B9 ; G 635 +U 698 ; WX 521 ; N uni02BA ; G 636 +U 699 ; WX 380 ; N uni02BB ; G 637 +U 700 ; WX 380 ; N uni02BC ; G 638 +U 701 ; WX 380 ; N uni02BD ; G 639 +U 702 ; WX 366 ; N uni02BE ; G 640 +U 703 ; WX 366 ; N uni02BF ; G 641 +U 704 ; WX 326 ; N uni02C0 ; G 642 +U 705 ; WX 326 ; N uni02C1 ; G 643 +U 706 ; WX 500 ; N uni02C2 ; G 644 +U 707 ; WX 500 ; N uni02C3 ; G 645 +U 708 ; WX 500 ; N uni02C4 ; G 646 +U 709 ; WX 500 ; N uni02C5 ; G 647 +U 710 ; WX 500 ; N circumflex ; G 648 +U 711 ; WX 500 ; N caron ; G 649 +U 712 ; WX 306 ; N uni02C8 ; G 650 +U 713 ; WX 500 ; N uni02C9 ; G 651 +U 714 ; WX 500 ; N uni02CA ; G 652 +U 715 ; WX 500 ; N uni02CB ; G 653 +U 716 ; WX 306 ; N uni02CC ; G 654 +U 717 ; WX 500 ; N uni02CD ; G 655 +U 718 ; WX 500 ; N uni02CE ; G 656 +U 719 ; WX 500 ; N uni02CF ; G 657 +U 720 ; WX 337 ; N uni02D0 ; G 658 +U 721 ; WX 337 ; N uni02D1 ; G 659 +U 722 ; WX 366 ; N uni02D2 ; G 660 +U 723 ; WX 366 ; N uni02D3 ; G 661 +U 724 ; WX 500 ; N uni02D4 ; G 662 +U 725 ; WX 500 ; N uni02D5 ; G 663 +U 726 ; WX 416 ; N uni02D6 ; G 664 +U 727 ; WX 328 ; N uni02D7 ; G 665 +U 728 ; WX 500 ; N breve ; G 666 +U 729 ; WX 500 ; N dotaccent ; G 667 +U 730 ; WX 500 ; N ring ; G 668 +U 731 ; WX 500 ; N ogonek ; G 669 +U 732 ; WX 500 ; N tilde ; G 670 +U 733 ; WX 500 ; N hungarumlaut ; G 671 +U 734 ; WX 351 ; N uni02DE ; G 672 +U 735 ; WX 500 ; N uni02DF ; G 673 +U 736 ; WX 412 ; N uni02E0 ; G 674 +U 737 ; WX 219 ; N uni02E1 ; G 675 +U 738 ; WX 381 ; N uni02E2 ; G 676 +U 739 ; WX 413 ; N uni02E3 ; G 677 +U 740 ; WX 326 ; N uni02E4 ; G 678 +U 741 ; WX 500 ; N uni02E5 ; G 679 +U 742 ; WX 500 ; N uni02E6 ; G 680 +U 743 ; WX 500 ; N uni02E7 ; G 681 +U 744 ; WX 500 ; N uni02E8 ; G 682 +U 745 ; WX 500 ; N uni02E9 ; G 683 +U 748 ; WX 500 ; N uni02EC ; G 684 +U 749 ; WX 500 ; N uni02ED ; G 685 +U 750 ; WX 657 ; N uni02EE ; G 686 +U 755 ; WX 500 ; N uni02F3 ; G 687 +U 759 ; WX 500 ; N uni02F7 ; G 688 +U 768 ; WX 0 ; N gravecomb ; G 689 +U 769 ; WX 0 ; N acutecomb ; G 690 +U 770 ; WX 0 ; N uni0302 ; G 691 +U 771 ; WX 0 ; N tildecomb ; G 692 +U 772 ; WX 0 ; N uni0304 ; G 693 +U 773 ; WX 0 ; N uni0305 ; G 694 +U 774 ; WX 0 ; N uni0306 ; G 695 +U 775 ; WX 0 ; N uni0307 ; G 696 +U 776 ; WX 0 ; N uni0308 ; G 697 +U 777 ; WX 0 ; N hookabovecomb ; G 698 +U 778 ; WX 0 ; N uni030A ; G 699 +U 779 ; WX 0 ; N uni030B ; G 700 +U 780 ; WX 0 ; N uni030C ; G 701 +U 781 ; WX 0 ; N uni030D ; G 702 +U 782 ; WX 0 ; N uni030E ; G 703 +U 783 ; WX 0 ; N uni030F ; G 704 +U 784 ; WX 0 ; N uni0310 ; G 705 +U 785 ; WX 0 ; N uni0311 ; G 706 +U 786 ; WX 0 ; N uni0312 ; G 707 +U 787 ; WX 0 ; N uni0313 ; G 708 +U 788 ; WX 0 ; N uni0314 ; G 709 +U 789 ; WX 0 ; N uni0315 ; G 710 +U 790 ; WX 0 ; N uni0316 ; G 711 +U 791 ; WX 0 ; N uni0317 ; G 712 +U 792 ; WX 0 ; N uni0318 ; G 713 +U 793 ; WX 0 ; N uni0319 ; G 714 +U 794 ; WX 0 ; N uni031A ; G 715 +U 795 ; WX 0 ; N uni031B ; G 716 +U 796 ; WX 0 ; N uni031C ; G 717 +U 797 ; WX 0 ; N uni031D ; G 718 +U 798 ; WX 0 ; N uni031E ; G 719 +U 799 ; WX 0 ; N uni031F ; G 720 +U 800 ; WX 0 ; N uni0320 ; G 721 +U 801 ; WX 0 ; N uni0321 ; G 722 +U 802 ; WX 0 ; N uni0322 ; G 723 +U 803 ; WX 0 ; N dotbelowcomb ; G 724 +U 804 ; WX 0 ; N uni0324 ; G 725 +U 805 ; WX 0 ; N uni0325 ; G 726 +U 806 ; WX 0 ; N uni0326 ; G 727 +U 807 ; WX 0 ; N uni0327 ; G 728 +U 808 ; WX 0 ; N uni0328 ; G 729 +U 809 ; WX 0 ; N uni0329 ; G 730 +U 810 ; WX 0 ; N uni032A ; G 731 +U 811 ; WX 0 ; N uni032B ; G 732 +U 812 ; WX 0 ; N uni032C ; G 733 +U 813 ; WX 0 ; N uni032D ; G 734 +U 814 ; WX 0 ; N uni032E ; G 735 +U 815 ; WX 0 ; N uni032F ; G 736 +U 816 ; WX 0 ; N uni0330 ; G 737 +U 817 ; WX 0 ; N uni0331 ; G 738 +U 818 ; WX 0 ; N uni0332 ; G 739 +U 819 ; WX 0 ; N uni0333 ; G 740 +U 820 ; WX 0 ; N uni0334 ; G 741 +U 821 ; WX 0 ; N uni0335 ; G 742 +U 822 ; WX 0 ; N uni0336 ; G 743 +U 823 ; WX 0 ; N uni0337 ; G 744 +U 824 ; WX 0 ; N uni0338 ; G 745 +U 825 ; WX 0 ; N uni0339 ; G 746 +U 826 ; WX 0 ; N uni033A ; G 747 +U 827 ; WX 0 ; N uni033B ; G 748 +U 828 ; WX 0 ; N uni033C ; G 749 +U 829 ; WX 0 ; N uni033D ; G 750 +U 830 ; WX 0 ; N uni033E ; G 751 +U 831 ; WX 0 ; N uni033F ; G 752 +U 832 ; WX 0 ; N uni0340 ; G 753 +U 833 ; WX 0 ; N uni0341 ; G 754 +U 834 ; WX 0 ; N uni0342 ; G 755 +U 835 ; WX 0 ; N uni0343 ; G 756 +U 836 ; WX 0 ; N uni0344 ; G 757 +U 837 ; WX 0 ; N uni0345 ; G 758 +U 838 ; WX 0 ; N uni0346 ; G 759 +U 839 ; WX 0 ; N uni0347 ; G 760 +U 840 ; WX 0 ; N uni0348 ; G 761 +U 841 ; WX 0 ; N uni0349 ; G 762 +U 842 ; WX 0 ; N uni034A ; G 763 +U 843 ; WX 0 ; N uni034B ; G 764 +U 844 ; WX 0 ; N uni034C ; G 765 +U 845 ; WX 0 ; N uni034D ; G 766 +U 846 ; WX 0 ; N uni034E ; G 767 +U 847 ; WX 0 ; N uni034F ; G 768 +U 849 ; WX 0 ; N uni0351 ; G 769 +U 850 ; WX 0 ; N uni0352 ; G 770 +U 851 ; WX 0 ; N uni0353 ; G 771 +U 855 ; WX 0 ; N uni0357 ; G 772 +U 856 ; WX 0 ; N uni0358 ; G 773 +U 858 ; WX 0 ; N uni035A ; G 774 +U 860 ; WX 0 ; N uni035C ; G 775 +U 861 ; WX 0 ; N uni035D ; G 776 +U 862 ; WX 0 ; N uni035E ; G 777 +U 863 ; WX 0 ; N uni035F ; G 778 +U 864 ; WX 0 ; N uni0360 ; G 779 +U 865 ; WX 0 ; N uni0361 ; G 780 +U 866 ; WX 0 ; N uni0362 ; G 781 +U 880 ; WX 698 ; N uni0370 ; G 782 +U 881 ; WX 565 ; N uni0371 ; G 783 +U 882 ; WX 1022 ; N uni0372 ; G 784 +U 883 ; WX 836 ; N uni0373 ; G 785 +U 884 ; WX 302 ; N uni0374 ; G 786 +U 885 ; WX 302 ; N uni0375 ; G 787 +U 886 ; WX 837 ; N uni0376 ; G 788 +U 887 ; WX 701 ; N uni0377 ; G 789 +U 890 ; WX 500 ; N uni037A ; G 790 +U 891 ; WX 593 ; N uni037B ; G 791 +U 892 ; WX 550 ; N uni037C ; G 792 +U 893 ; WX 549 ; N uni037D ; G 793 +U 894 ; WX 400 ; N uni037E ; G 794 +U 895 ; WX 372 ; N uni037F ; G 795 +U 900 ; WX 441 ; N tonos ; G 796 +U 901 ; WX 500 ; N dieresistonos ; G 797 +U 902 ; WX 797 ; N Alphatonos ; G 798 +U 903 ; WX 380 ; N anoteleia ; G 799 +U 904 ; WX 846 ; N Epsilontonos ; G 800 +U 905 ; WX 1009 ; N Etatonos ; G 801 +U 906 ; WX 563 ; N Iotatonos ; G 802 +U 908 ; WX 891 ; N Omicrontonos ; G 803 +U 910 ; WX 980 ; N Upsilontonos ; G 804 +U 911 ; WX 894 ; N Omegatonos ; G 805 +U 912 ; WX 390 ; N iotadieresistonos ; G 806 +U 913 ; WX 774 ; N Alpha ; G 807 +U 914 ; WX 762 ; N Beta ; G 808 +U 915 ; WX 637 ; N Gamma ; G 809 +U 916 ; WX 774 ; N uni0394 ; G 810 +U 917 ; WX 683 ; N Epsilon ; G 811 +U 918 ; WX 725 ; N Zeta ; G 812 +U 919 ; WX 837 ; N Eta ; G 813 +U 920 ; WX 850 ; N Theta ; G 814 +U 921 ; WX 372 ; N Iota ; G 815 +U 922 ; WX 775 ; N Kappa ; G 816 +U 923 ; WX 774 ; N Lambda ; G 817 +U 924 ; WX 995 ; N Mu ; G 818 +U 925 ; WX 837 ; N Nu ; G 819 +U 926 ; WX 632 ; N Xi ; G 820 +U 927 ; WX 850 ; N Omicron ; G 821 +U 928 ; WX 837 ; N Pi ; G 822 +U 929 ; WX 733 ; N Rho ; G 823 +U 931 ; WX 683 ; N Sigma ; G 824 +U 932 ; WX 682 ; N Tau ; G 825 +U 933 ; WX 724 ; N Upsilon ; G 826 +U 934 ; WX 850 ; N Phi ; G 827 +U 935 ; WX 771 ; N Chi ; G 828 +U 936 ; WX 850 ; N Psi ; G 829 +U 937 ; WX 850 ; N Omega ; G 830 +U 938 ; WX 372 ; N Iotadieresis ; G 831 +U 939 ; WX 724 ; N Upsilondieresis ; G 832 +U 940 ; WX 687 ; N alphatonos ; G 833 +U 941 ; WX 557 ; N epsilontonos ; G 834 +U 942 ; WX 712 ; N etatonos ; G 835 +U 943 ; WX 390 ; N iotatonos ; G 836 +U 944 ; WX 675 ; N upsilondieresistonos ; G 837 +U 945 ; WX 687 ; N alpha ; G 838 +U 946 ; WX 716 ; N beta ; G 839 +U 947 ; WX 681 ; N gamma ; G 840 +U 948 ; WX 687 ; N delta ; G 841 +U 949 ; WX 557 ; N epsilon ; G 842 +U 950 ; WX 591 ; N zeta ; G 843 +U 951 ; WX 712 ; N eta ; G 844 +U 952 ; WX 687 ; N theta ; G 845 +U 953 ; WX 390 ; N iota ; G 846 +U 954 ; WX 710 ; N kappa ; G 847 +U 955 ; WX 633 ; N lambda ; G 848 +U 956 ; WX 736 ; N uni03BC ; G 849 +U 957 ; WX 681 ; N nu ; G 850 +U 958 ; WX 591 ; N xi ; G 851 +U 959 ; WX 687 ; N omicron ; G 852 +U 960 ; WX 791 ; N pi ; G 853 +U 961 ; WX 716 ; N rho ; G 854 +U 962 ; WX 593 ; N sigma1 ; G 855 +U 963 ; WX 779 ; N sigma ; G 856 +U 964 ; WX 638 ; N tau ; G 857 +U 965 ; WX 675 ; N upsilon ; G 858 +U 966 ; WX 782 ; N phi ; G 859 +U 967 ; WX 645 ; N chi ; G 860 +U 968 ; WX 794 ; N psi ; G 861 +U 969 ; WX 869 ; N omega ; G 862 +U 970 ; WX 390 ; N iotadieresis ; G 863 +U 971 ; WX 675 ; N upsilondieresis ; G 864 +U 972 ; WX 687 ; N omicrontonos ; G 865 +U 973 ; WX 675 ; N upsilontonos ; G 866 +U 974 ; WX 869 ; N omegatonos ; G 867 +U 975 ; WX 775 ; N uni03CF ; G 868 +U 976 ; WX 651 ; N uni03D0 ; G 869 +U 977 ; WX 661 ; N theta1 ; G 870 +U 978 ; WX 746 ; N Upsilon1 ; G 871 +U 979 ; WX 981 ; N uni03D3 ; G 872 +U 980 ; WX 746 ; N uni03D4 ; G 873 +U 981 ; WX 796 ; N phi1 ; G 874 +U 982 ; WX 869 ; N omega1 ; G 875 +U 983 ; WX 744 ; N uni03D7 ; G 876 +U 984 ; WX 850 ; N uni03D8 ; G 877 +U 985 ; WX 687 ; N uni03D9 ; G 878 +U 986 ; WX 734 ; N uni03DA ; G 879 +U 987 ; WX 593 ; N uni03DB ; G 880 +U 988 ; WX 683 ; N uni03DC ; G 881 +U 989 ; WX 494 ; N uni03DD ; G 882 +U 990 ; WX 702 ; N uni03DE ; G 883 +U 991 ; WX 660 ; N uni03DF ; G 884 +U 992 ; WX 919 ; N uni03E0 ; G 885 +U 993 ; WX 627 ; N uni03E1 ; G 886 +U 994 ; WX 1093 ; N uni03E2 ; G 887 +U 995 ; WX 837 ; N uni03E3 ; G 888 +U 996 ; WX 832 ; N uni03E4 ; G 889 +U 997 ; WX 716 ; N uni03E5 ; G 890 +U 998 ; WX 928 ; N uni03E6 ; G 891 +U 999 ; WX 744 ; N uni03E7 ; G 892 +U 1000 ; WX 733 ; N uni03E8 ; G 893 +U 1001 ; WX 650 ; N uni03E9 ; G 894 +U 1002 ; WX 789 ; N uni03EA ; G 895 +U 1003 ; WX 671 ; N uni03EB ; G 896 +U 1004 ; WX 752 ; N uni03EC ; G 897 +U 1005 ; WX 716 ; N uni03ED ; G 898 +U 1006 ; WX 682 ; N uni03EE ; G 899 +U 1007 ; WX 590 ; N uni03EF ; G 900 +U 1008 ; WX 744 ; N uni03F0 ; G 901 +U 1009 ; WX 716 ; N uni03F1 ; G 902 +U 1010 ; WX 593 ; N uni03F2 ; G 903 +U 1011 ; WX 343 ; N uni03F3 ; G 904 +U 1012 ; WX 850 ; N uni03F4 ; G 905 +U 1013 ; WX 645 ; N uni03F5 ; G 906 +U 1014 ; WX 644 ; N uni03F6 ; G 907 +U 1015 ; WX 738 ; N uni03F7 ; G 908 +U 1016 ; WX 716 ; N uni03F8 ; G 909 +U 1017 ; WX 734 ; N uni03F9 ; G 910 +U 1018 ; WX 995 ; N uni03FA ; G 911 +U 1019 ; WX 732 ; N uni03FB ; G 912 +U 1020 ; WX 716 ; N uni03FC ; G 913 +U 1021 ; WX 698 ; N uni03FD ; G 914 +U 1022 ; WX 734 ; N uni03FE ; G 915 +U 1023 ; WX 698 ; N uni03FF ; G 916 +U 1024 ; WX 683 ; N uni0400 ; G 917 +U 1025 ; WX 683 ; N uni0401 ; G 918 +U 1026 ; WX 878 ; N uni0402 ; G 919 +U 1027 ; WX 637 ; N uni0403 ; G 920 +U 1028 ; WX 734 ; N uni0404 ; G 921 +U 1029 ; WX 720 ; N uni0405 ; G 922 +U 1030 ; WX 372 ; N uni0406 ; G 923 +U 1031 ; WX 372 ; N uni0407 ; G 924 +U 1032 ; WX 372 ; N uni0408 ; G 925 +U 1033 ; WX 1154 ; N uni0409 ; G 926 +U 1034 ; WX 1130 ; N uni040A ; G 927 +U 1035 ; WX 878 ; N uni040B ; G 928 +U 1036 ; WX 817 ; N uni040C ; G 929 +U 1037 ; WX 837 ; N uni040D ; G 930 +U 1038 ; WX 771 ; N uni040E ; G 931 +U 1039 ; WX 837 ; N uni040F ; G 932 +U 1040 ; WX 774 ; N uni0410 ; G 933 +U 1041 ; WX 762 ; N uni0411 ; G 934 +U 1042 ; WX 762 ; N uni0412 ; G 935 +U 1043 ; WX 637 ; N uni0413 ; G 936 +U 1044 ; WX 891 ; N uni0414 ; G 937 +U 1045 ; WX 683 ; N uni0415 ; G 938 +U 1046 ; WX 1224 ; N uni0416 ; G 939 +U 1047 ; WX 710 ; N uni0417 ; G 940 +U 1048 ; WX 837 ; N uni0418 ; G 941 +U 1049 ; WX 837 ; N uni0419 ; G 942 +U 1050 ; WX 817 ; N uni041A ; G 943 +U 1051 ; WX 831 ; N uni041B ; G 944 +U 1052 ; WX 995 ; N uni041C ; G 945 +U 1053 ; WX 837 ; N uni041D ; G 946 +U 1054 ; WX 850 ; N uni041E ; G 947 +U 1055 ; WX 837 ; N uni041F ; G 948 +U 1056 ; WX 733 ; N uni0420 ; G 949 +U 1057 ; WX 734 ; N uni0421 ; G 950 +U 1058 ; WX 682 ; N uni0422 ; G 951 +U 1059 ; WX 771 ; N uni0423 ; G 952 +U 1060 ; WX 992 ; N uni0424 ; G 953 +U 1061 ; WX 771 ; N uni0425 ; G 954 +U 1062 ; WX 928 ; N uni0426 ; G 955 +U 1063 ; WX 808 ; N uni0427 ; G 956 +U 1064 ; WX 1235 ; N uni0428 ; G 957 +U 1065 ; WX 1326 ; N uni0429 ; G 958 +U 1066 ; WX 939 ; N uni042A ; G 959 +U 1067 ; WX 1036 ; N uni042B ; G 960 +U 1068 ; WX 762 ; N uni042C ; G 961 +U 1069 ; WX 734 ; N uni042D ; G 962 +U 1070 ; WX 1174 ; N uni042E ; G 963 +U 1071 ; WX 770 ; N uni042F ; G 964 +U 1072 ; WX 675 ; N uni0430 ; G 965 +U 1073 ; WX 698 ; N uni0431 ; G 966 +U 1074 ; WX 633 ; N uni0432 ; G 967 +U 1075 ; WX 522 ; N uni0433 ; G 968 +U 1076 ; WX 808 ; N uni0434 ; G 969 +U 1077 ; WX 678 ; N uni0435 ; G 970 +U 1078 ; WX 995 ; N uni0436 ; G 971 +U 1079 ; WX 581 ; N uni0437 ; G 972 +U 1080 ; WX 701 ; N uni0438 ; G 973 +U 1081 ; WX 701 ; N uni0439 ; G 974 +U 1082 ; WX 679 ; N uni043A ; G 975 +U 1083 ; WX 732 ; N uni043B ; G 976 +U 1084 ; WX 817 ; N uni043C ; G 977 +U 1085 ; WX 691 ; N uni043D ; G 978 +U 1086 ; WX 687 ; N uni043E ; G 979 +U 1087 ; WX 691 ; N uni043F ; G 980 +U 1088 ; WX 716 ; N uni0440 ; G 981 +U 1089 ; WX 593 ; N uni0441 ; G 982 +U 1090 ; WX 580 ; N uni0442 ; G 983 +U 1091 ; WX 652 ; N uni0443 ; G 984 +U 1092 ; WX 992 ; N uni0444 ; G 985 +U 1093 ; WX 645 ; N uni0445 ; G 986 +U 1094 ; WX 741 ; N uni0446 ; G 987 +U 1095 ; WX 687 ; N uni0447 ; G 988 +U 1096 ; WX 1062 ; N uni0448 ; G 989 +U 1097 ; WX 1105 ; N uni0449 ; G 990 +U 1098 ; WX 751 ; N uni044A ; G 991 +U 1099 ; WX 904 ; N uni044B ; G 992 +U 1100 ; WX 632 ; N uni044C ; G 993 +U 1101 ; WX 593 ; N uni044D ; G 994 +U 1102 ; WX 972 ; N uni044E ; G 995 +U 1103 ; WX 642 ; N uni044F ; G 996 +U 1104 ; WX 678 ; N uni0450 ; G 997 +U 1105 ; WX 678 ; N uni0451 ; G 998 +U 1106 ; WX 714 ; N uni0452 ; G 999 +U 1107 ; WX 522 ; N uni0453 ; G 1000 +U 1108 ; WX 593 ; N uni0454 ; G 1001 +U 1109 ; WX 595 ; N uni0455 ; G 1002 +U 1110 ; WX 343 ; N uni0456 ; G 1003 +U 1111 ; WX 343 ; N uni0457 ; G 1004 +U 1112 ; WX 343 ; N uni0458 ; G 1005 +U 1113 ; WX 991 ; N uni0459 ; G 1006 +U 1114 ; WX 956 ; N uni045A ; G 1007 +U 1115 ; WX 734 ; N uni045B ; G 1008 +U 1116 ; WX 679 ; N uni045C ; G 1009 +U 1117 ; WX 701 ; N uni045D ; G 1010 +U 1118 ; WX 652 ; N uni045E ; G 1011 +U 1119 ; WX 691 ; N uni045F ; G 1012 +U 1120 ; WX 1093 ; N uni0460 ; G 1013 +U 1121 ; WX 869 ; N uni0461 ; G 1014 +U 1122 ; WX 840 ; N uni0462 ; G 1015 +U 1123 ; WX 736 ; N uni0463 ; G 1016 +U 1124 ; WX 1012 ; N uni0464 ; G 1017 +U 1125 ; WX 839 ; N uni0465 ; G 1018 +U 1126 ; WX 992 ; N uni0466 ; G 1019 +U 1127 ; WX 832 ; N uni0467 ; G 1020 +U 1128 ; WX 1358 ; N uni0468 ; G 1021 +U 1129 ; WX 1121 ; N uni0469 ; G 1022 +U 1130 ; WX 850 ; N uni046A ; G 1023 +U 1131 ; WX 687 ; N uni046B ; G 1024 +U 1132 ; WX 1236 ; N uni046C ; G 1025 +U 1133 ; WX 1007 ; N uni046D ; G 1026 +U 1134 ; WX 696 ; N uni046E ; G 1027 +U 1135 ; WX 557 ; N uni046F ; G 1028 +U 1136 ; WX 1075 ; N uni0470 ; G 1029 +U 1137 ; WX 1061 ; N uni0471 ; G 1030 +U 1138 ; WX 850 ; N uni0472 ; G 1031 +U 1139 ; WX 687 ; N uni0473 ; G 1032 +U 1140 ; WX 850 ; N uni0474 ; G 1033 +U 1141 ; WX 695 ; N uni0475 ; G 1034 +U 1142 ; WX 850 ; N uni0476 ; G 1035 +U 1143 ; WX 695 ; N uni0477 ; G 1036 +U 1144 ; WX 1148 ; N uni0478 ; G 1037 +U 1145 ; WX 1043 ; N uni0479 ; G 1038 +U 1146 ; WX 1074 ; N uni047A ; G 1039 +U 1147 ; WX 863 ; N uni047B ; G 1040 +U 1148 ; WX 1405 ; N uni047C ; G 1041 +U 1149 ; WX 1173 ; N uni047D ; G 1042 +U 1150 ; WX 1093 ; N uni047E ; G 1043 +U 1151 ; WX 869 ; N uni047F ; G 1044 +U 1152 ; WX 734 ; N uni0480 ; G 1045 +U 1153 ; WX 593 ; N uni0481 ; G 1046 +U 1154 ; WX 652 ; N uni0482 ; G 1047 +U 1155 ; WX 0 ; N uni0483 ; G 1048 +U 1156 ; WX 0 ; N uni0484 ; G 1049 +U 1157 ; WX 0 ; N uni0485 ; G 1050 +U 1158 ; WX 0 ; N uni0486 ; G 1051 +U 1159 ; WX 0 ; N uni0487 ; G 1052 +U 1160 ; WX 418 ; N uni0488 ; G 1053 +U 1161 ; WX 418 ; N uni0489 ; G 1054 +U 1162 ; WX 957 ; N uni048A ; G 1055 +U 1163 ; WX 807 ; N uni048B ; G 1056 +U 1164 ; WX 762 ; N uni048C ; G 1057 +U 1165 ; WX 611 ; N uni048D ; G 1058 +U 1166 ; WX 733 ; N uni048E ; G 1059 +U 1167 ; WX 716 ; N uni048F ; G 1060 +U 1168 ; WX 637 ; N uni0490 ; G 1061 +U 1169 ; WX 522 ; N uni0491 ; G 1062 +U 1170 ; WX 666 ; N uni0492 ; G 1063 +U 1171 ; WX 543 ; N uni0493 ; G 1064 +U 1172 ; WX 808 ; N uni0494 ; G 1065 +U 1173 ; WX 669 ; N uni0495 ; G 1066 +U 1174 ; WX 1224 ; N uni0496 ; G 1067 +U 1175 ; WX 995 ; N uni0497 ; G 1068 +U 1176 ; WX 710 ; N uni0498 ; G 1069 +U 1177 ; WX 581 ; N uni0499 ; G 1070 +U 1178 ; WX 775 ; N uni049A ; G 1071 +U 1179 ; WX 679 ; N uni049B ; G 1072 +U 1180 ; WX 817 ; N uni049C ; G 1073 +U 1181 ; WX 679 ; N uni049D ; G 1074 +U 1182 ; WX 817 ; N uni049E ; G 1075 +U 1183 ; WX 679 ; N uni049F ; G 1076 +U 1184 ; WX 1015 ; N uni04A0 ; G 1077 +U 1185 ; WX 826 ; N uni04A1 ; G 1078 +U 1186 ; WX 956 ; N uni04A2 ; G 1079 +U 1187 ; WX 808 ; N uni04A3 ; G 1080 +U 1188 ; WX 1103 ; N uni04A4 ; G 1081 +U 1189 ; WX 874 ; N uni04A5 ; G 1082 +U 1190 ; WX 1273 ; N uni04A6 ; G 1083 +U 1191 ; WX 1017 ; N uni04A7 ; G 1084 +U 1192 ; WX 952 ; N uni04A8 ; G 1085 +U 1193 ; WX 858 ; N uni04A9 ; G 1086 +U 1194 ; WX 734 ; N uni04AA ; G 1087 +U 1195 ; WX 593 ; N uni04AB ; G 1088 +U 1196 ; WX 682 ; N uni04AC ; G 1089 +U 1197 ; WX 580 ; N uni04AD ; G 1090 +U 1198 ; WX 724 ; N uni04AE ; G 1091 +U 1199 ; WX 652 ; N uni04AF ; G 1092 +U 1200 ; WX 724 ; N uni04B0 ; G 1093 +U 1201 ; WX 652 ; N uni04B1 ; G 1094 +U 1202 ; WX 771 ; N uni04B2 ; G 1095 +U 1203 ; WX 645 ; N uni04B3 ; G 1096 +U 1204 ; WX 1112 ; N uni04B4 ; G 1097 +U 1205 ; WX 1000 ; N uni04B5 ; G 1098 +U 1206 ; WX 808 ; N uni04B6 ; G 1099 +U 1207 ; WX 687 ; N uni04B7 ; G 1100 +U 1208 ; WX 808 ; N uni04B8 ; G 1101 +U 1209 ; WX 687 ; N uni04B9 ; G 1102 +U 1210 ; WX 808 ; N uni04BA ; G 1103 +U 1211 ; WX 712 ; N uni04BB ; G 1104 +U 1212 ; WX 1026 ; N uni04BC ; G 1105 +U 1213 ; WX 810 ; N uni04BD ; G 1106 +U 1214 ; WX 1026 ; N uni04BE ; G 1107 +U 1215 ; WX 810 ; N uni04BF ; G 1108 +U 1216 ; WX 372 ; N uni04C0 ; G 1109 +U 1217 ; WX 1224 ; N uni04C1 ; G 1110 +U 1218 ; WX 995 ; N uni04C2 ; G 1111 +U 1219 ; WX 775 ; N uni04C3 ; G 1112 +U 1220 ; WX 630 ; N uni04C4 ; G 1113 +U 1221 ; WX 951 ; N uni04C5 ; G 1114 +U 1222 ; WX 805 ; N uni04C6 ; G 1115 +U 1223 ; WX 837 ; N uni04C7 ; G 1116 +U 1224 ; WX 691 ; N uni04C8 ; G 1117 +U 1225 ; WX 957 ; N uni04C9 ; G 1118 +U 1226 ; WX 807 ; N uni04CA ; G 1119 +U 1227 ; WX 808 ; N uni04CB ; G 1120 +U 1228 ; WX 687 ; N uni04CC ; G 1121 +U 1229 ; WX 1115 ; N uni04CD ; G 1122 +U 1230 ; WX 933 ; N uni04CE ; G 1123 +U 1231 ; WX 343 ; N uni04CF ; G 1124 +U 1232 ; WX 774 ; N uni04D0 ; G 1125 +U 1233 ; WX 675 ; N uni04D1 ; G 1126 +U 1234 ; WX 774 ; N uni04D2 ; G 1127 +U 1235 ; WX 675 ; N uni04D3 ; G 1128 +U 1236 ; WX 1085 ; N uni04D4 ; G 1129 +U 1237 ; WX 1048 ; N uni04D5 ; G 1130 +U 1238 ; WX 683 ; N uni04D6 ; G 1131 +U 1239 ; WX 678 ; N uni04D7 ; G 1132 +U 1240 ; WX 849 ; N uni04D8 ; G 1133 +U 1241 ; WX 678 ; N uni04D9 ; G 1134 +U 1242 ; WX 849 ; N uni04DA ; G 1135 +U 1243 ; WX 678 ; N uni04DB ; G 1136 +U 1244 ; WX 1224 ; N uni04DC ; G 1137 +U 1245 ; WX 995 ; N uni04DD ; G 1138 +U 1246 ; WX 710 ; N uni04DE ; G 1139 +U 1247 ; WX 581 ; N uni04DF ; G 1140 +U 1248 ; WX 772 ; N uni04E0 ; G 1141 +U 1249 ; WX 641 ; N uni04E1 ; G 1142 +U 1250 ; WX 837 ; N uni04E2 ; G 1143 +U 1251 ; WX 701 ; N uni04E3 ; G 1144 +U 1252 ; WX 837 ; N uni04E4 ; G 1145 +U 1253 ; WX 701 ; N uni04E5 ; G 1146 +U 1254 ; WX 850 ; N uni04E6 ; G 1147 +U 1255 ; WX 687 ; N uni04E7 ; G 1148 +U 1256 ; WX 850 ; N uni04E8 ; G 1149 +U 1257 ; WX 687 ; N uni04E9 ; G 1150 +U 1258 ; WX 850 ; N uni04EA ; G 1151 +U 1259 ; WX 687 ; N uni04EB ; G 1152 +U 1260 ; WX 734 ; N uni04EC ; G 1153 +U 1261 ; WX 593 ; N uni04ED ; G 1154 +U 1262 ; WX 771 ; N uni04EE ; G 1155 +U 1263 ; WX 652 ; N uni04EF ; G 1156 +U 1264 ; WX 771 ; N uni04F0 ; G 1157 +U 1265 ; WX 652 ; N uni04F1 ; G 1158 +U 1266 ; WX 771 ; N uni04F2 ; G 1159 +U 1267 ; WX 652 ; N uni04F3 ; G 1160 +U 1268 ; WX 808 ; N uni04F4 ; G 1161 +U 1269 ; WX 687 ; N uni04F5 ; G 1162 +U 1270 ; WX 637 ; N uni04F6 ; G 1163 +U 1271 ; WX 522 ; N uni04F7 ; G 1164 +U 1272 ; WX 1036 ; N uni04F8 ; G 1165 +U 1273 ; WX 904 ; N uni04F9 ; G 1166 +U 1274 ; WX 666 ; N uni04FA ; G 1167 +U 1275 ; WX 543 ; N uni04FB ; G 1168 +U 1276 ; WX 771 ; N uni04FC ; G 1169 +U 1277 ; WX 645 ; N uni04FD ; G 1170 +U 1278 ; WX 771 ; N uni04FE ; G 1171 +U 1279 ; WX 645 ; N uni04FF ; G 1172 +U 1280 ; WX 762 ; N uni0500 ; G 1173 +U 1281 ; WX 608 ; N uni0501 ; G 1174 +U 1282 ; WX 1159 ; N uni0502 ; G 1175 +U 1283 ; WX 893 ; N uni0503 ; G 1176 +U 1284 ; WX 1119 ; N uni0504 ; G 1177 +U 1285 ; WX 920 ; N uni0505 ; G 1178 +U 1286 ; WX 828 ; N uni0506 ; G 1179 +U 1287 ; WX 693 ; N uni0507 ; G 1180 +U 1288 ; WX 1242 ; N uni0508 ; G 1181 +U 1289 ; WX 1017 ; N uni0509 ; G 1182 +U 1290 ; WX 1289 ; N uni050A ; G 1183 +U 1291 ; WX 1013 ; N uni050B ; G 1184 +U 1292 ; WX 839 ; N uni050C ; G 1185 +U 1293 ; WX 638 ; N uni050D ; G 1186 +U 1294 ; WX 938 ; N uni050E ; G 1187 +U 1295 ; WX 803 ; N uni050F ; G 1188 +U 1296 ; WX 696 ; N uni0510 ; G 1189 +U 1297 ; WX 557 ; N uni0511 ; G 1190 +U 1298 ; WX 831 ; N uni0512 ; G 1191 +U 1299 ; WX 732 ; N uni0513 ; G 1192 +U 1300 ; WX 1286 ; N uni0514 ; G 1193 +U 1301 ; WX 1068 ; N uni0515 ; G 1194 +U 1302 ; WX 1065 ; N uni0516 ; G 1195 +U 1303 ; WX 979 ; N uni0517 ; G 1196 +U 1304 ; WX 1082 ; N uni0518 ; G 1197 +U 1305 ; WX 1013 ; N uni0519 ; G 1198 +U 1306 ; WX 850 ; N uni051A ; G 1199 +U 1307 ; WX 716 ; N uni051B ; G 1200 +U 1308 ; WX 1103 ; N uni051C ; G 1201 +U 1309 ; WX 924 ; N uni051D ; G 1202 +U 1310 ; WX 817 ; N uni051E ; G 1203 +U 1311 ; WX 679 ; N uni051F ; G 1204 +U 1312 ; WX 1267 ; N uni0520 ; G 1205 +U 1313 ; WX 1059 ; N uni0521 ; G 1206 +U 1314 ; WX 1273 ; N uni0522 ; G 1207 +U 1315 ; WX 1017 ; N uni0523 ; G 1208 +U 1316 ; WX 957 ; N uni0524 ; G 1209 +U 1317 ; WX 807 ; N uni0525 ; G 1210 +U 1329 ; WX 813 ; N uni0531 ; G 1211 +U 1330 ; WX 729 ; N uni0532 ; G 1212 +U 1331 ; WX 728 ; N uni0533 ; G 1213 +U 1332 ; WX 731 ; N uni0534 ; G 1214 +U 1333 ; WX 729 ; N uni0535 ; G 1215 +U 1334 ; WX 733 ; N uni0536 ; G 1216 +U 1335 ; WX 652 ; N uni0537 ; G 1217 +U 1336 ; WX 720 ; N uni0538 ; G 1218 +U 1337 ; WX 903 ; N uni0539 ; G 1219 +U 1338 ; WX 728 ; N uni053A ; G 1220 +U 1339 ; WX 666 ; N uni053B ; G 1221 +U 1340 ; WX 558 ; N uni053C ; G 1222 +U 1341 ; WX 961 ; N uni053D ; G 1223 +U 1342 ; WX 788 ; N uni053E ; G 1224 +U 1343 ; WX 713 ; N uni053F ; G 1225 +U 1344 ; WX 651 ; N uni0540 ; G 1226 +U 1345 ; WX 730 ; N uni0541 ; G 1227 +U 1346 ; WX 715 ; N uni0542 ; G 1228 +U 1347 ; WX 704 ; N uni0543 ; G 1229 +U 1348 ; WX 780 ; N uni0544 ; G 1230 +U 1349 ; WX 689 ; N uni0545 ; G 1231 +U 1350 ; WX 715 ; N uni0546 ; G 1232 +U 1351 ; WX 708 ; N uni0547 ; G 1233 +U 1352 ; WX 731 ; N uni0548 ; G 1234 +U 1353 ; WX 677 ; N uni0549 ; G 1235 +U 1354 ; WX 867 ; N uni054A ; G 1236 +U 1355 ; WX 711 ; N uni054B ; G 1237 +U 1356 ; WX 780 ; N uni054C ; G 1238 +U 1357 ; WX 731 ; N uni054D ; G 1239 +U 1358 ; WX 715 ; N uni054E ; G 1240 +U 1359 ; WX 693 ; N uni054F ; G 1241 +U 1360 ; WX 666 ; N uni0550 ; G 1242 +U 1361 ; WX 698 ; N uni0551 ; G 1243 +U 1362 ; WX 576 ; N uni0552 ; G 1244 +U 1363 ; WX 833 ; N uni0553 ; G 1245 +U 1364 ; WX 698 ; N uni0554 ; G 1246 +U 1365 ; WX 763 ; N uni0555 ; G 1247 +U 1366 ; WX 855 ; N uni0556 ; G 1248 +U 1369 ; WX 330 ; N uni0559 ; G 1249 +U 1370 ; WX 342 ; N uni055A ; G 1250 +U 1371 ; WX 308 ; N uni055B ; G 1251 +U 1372 ; WX 374 ; N uni055C ; G 1252 +U 1373 ; WX 313 ; N uni055D ; G 1253 +U 1374 ; WX 461 ; N uni055E ; G 1254 +U 1375 ; WX 468 ; N uni055F ; G 1255 +U 1377 ; WX 938 ; N uni0561 ; G 1256 +U 1378 ; WX 642 ; N uni0562 ; G 1257 +U 1379 ; WX 704 ; N uni0563 ; G 1258 +U 1380 ; WX 708 ; N uni0564 ; G 1259 +U 1381 ; WX 642 ; N uni0565 ; G 1260 +U 1382 ; WX 644 ; N uni0566 ; G 1261 +U 1383 ; WX 565 ; N uni0567 ; G 1262 +U 1384 ; WX 642 ; N uni0568 ; G 1263 +U 1385 ; WX 756 ; N uni0569 ; G 1264 +U 1386 ; WX 704 ; N uni056A ; G 1265 +U 1387 ; WX 643 ; N uni056B ; G 1266 +U 1388 ; WX 310 ; N uni056C ; G 1267 +U 1389 ; WX 984 ; N uni056D ; G 1268 +U 1390 ; WX 638 ; N uni056E ; G 1269 +U 1391 ; WX 643 ; N uni056F ; G 1270 +U 1392 ; WX 643 ; N uni0570 ; G 1271 +U 1393 ; WX 603 ; N uni0571 ; G 1272 +U 1394 ; WX 643 ; N uni0572 ; G 1273 +U 1395 ; WX 642 ; N uni0573 ; G 1274 +U 1396 ; WX 643 ; N uni0574 ; G 1275 +U 1397 ; WX 309 ; N uni0575 ; G 1276 +U 1398 ; WX 643 ; N uni0576 ; G 1277 +U 1399 ; WX 486 ; N uni0577 ; G 1278 +U 1400 ; WX 643 ; N uni0578 ; G 1279 +U 1401 ; WX 366 ; N uni0579 ; G 1280 +U 1402 ; WX 938 ; N uni057A ; G 1281 +U 1403 ; WX 573 ; N uni057B ; G 1282 +U 1404 ; WX 666 ; N uni057C ; G 1283 +U 1405 ; WX 643 ; N uni057D ; G 1284 +U 1406 ; WX 643 ; N uni057E ; G 1285 +U 1407 ; WX 934 ; N uni057F ; G 1286 +U 1408 ; WX 643 ; N uni0580 ; G 1287 +U 1409 ; WX 643 ; N uni0581 ; G 1288 +U 1410 ; WX 479 ; N uni0582 ; G 1289 +U 1411 ; WX 934 ; N uni0583 ; G 1290 +U 1412 ; WX 648 ; N uni0584 ; G 1291 +U 1413 ; WX 620 ; N uni0585 ; G 1292 +U 1414 ; WX 813 ; N uni0586 ; G 1293 +U 1415 ; WX 812 ; N uni0587 ; G 1294 +U 1417 ; WX 360 ; N uni0589 ; G 1295 +U 1418 ; WX 374 ; N uni058A ; G 1296 +U 1456 ; WX 0 ; N uni05B0 ; G 1297 +U 1457 ; WX 0 ; N uni05B1 ; G 1298 +U 1458 ; WX 0 ; N uni05B2 ; G 1299 +U 1459 ; WX 0 ; N uni05B3 ; G 1300 +U 1460 ; WX 0 ; N uni05B4 ; G 1301 +U 1461 ; WX 0 ; N uni05B5 ; G 1302 +U 1462 ; WX 0 ; N uni05B6 ; G 1303 +U 1463 ; WX 0 ; N uni05B7 ; G 1304 +U 1464 ; WX 0 ; N uni05B8 ; G 1305 +U 1465 ; WX 0 ; N uni05B9 ; G 1306 +U 1466 ; WX 0 ; N uni05BA ; G 1307 +U 1467 ; WX 0 ; N uni05BB ; G 1308 +U 1468 ; WX 0 ; N uni05BC ; G 1309 +U 1469 ; WX 0 ; N uni05BD ; G 1310 +U 1470 ; WX 415 ; N uni05BE ; G 1311 +U 1471 ; WX 0 ; N uni05BF ; G 1312 +U 1472 ; WX 372 ; N uni05C0 ; G 1313 +U 1473 ; WX 0 ; N uni05C1 ; G 1314 +U 1474 ; WX 0 ; N uni05C2 ; G 1315 +U 1475 ; WX 372 ; N uni05C3 ; G 1316 +U 1478 ; WX 497 ; N uni05C6 ; G 1317 +U 1479 ; WX 0 ; N uni05C7 ; G 1318 +U 1488 ; WX 728 ; N uni05D0 ; G 1319 +U 1489 ; WX 610 ; N uni05D1 ; G 1320 +U 1490 ; WX 447 ; N uni05D2 ; G 1321 +U 1491 ; WX 588 ; N uni05D3 ; G 1322 +U 1492 ; WX 687 ; N uni05D4 ; G 1323 +U 1493 ; WX 343 ; N uni05D5 ; G 1324 +U 1494 ; WX 400 ; N uni05D6 ; G 1325 +U 1495 ; WX 687 ; N uni05D7 ; G 1326 +U 1496 ; WX 679 ; N uni05D8 ; G 1327 +U 1497 ; WX 294 ; N uni05D9 ; G 1328 +U 1498 ; WX 578 ; N uni05DA ; G 1329 +U 1499 ; WX 566 ; N uni05DB ; G 1330 +U 1500 ; WX 605 ; N uni05DC ; G 1331 +U 1501 ; WX 696 ; N uni05DD ; G 1332 +U 1502 ; WX 724 ; N uni05DE ; G 1333 +U 1503 ; WX 343 ; N uni05DF ; G 1334 +U 1504 ; WX 453 ; N uni05E0 ; G 1335 +U 1505 ; WX 680 ; N uni05E1 ; G 1336 +U 1506 ; WX 666 ; N uni05E2 ; G 1337 +U 1507 ; WX 675 ; N uni05E3 ; G 1338 +U 1508 ; WX 658 ; N uni05E4 ; G 1339 +U 1509 ; WX 661 ; N uni05E5 ; G 1340 +U 1510 ; WX 653 ; N uni05E6 ; G 1341 +U 1511 ; WX 736 ; N uni05E7 ; G 1342 +U 1512 ; WX 602 ; N uni05E8 ; G 1343 +U 1513 ; WX 758 ; N uni05E9 ; G 1344 +U 1514 ; WX 683 ; N uni05EA ; G 1345 +U 1520 ; WX 664 ; N uni05F0 ; G 1346 +U 1521 ; WX 567 ; N uni05F1 ; G 1347 +U 1522 ; WX 519 ; N uni05F2 ; G 1348 +U 1523 ; WX 444 ; N uni05F3 ; G 1349 +U 1524 ; WX 710 ; N uni05F4 ; G 1350 +U 1542 ; WX 667 ; N uni0606 ; G 1351 +U 1543 ; WX 667 ; N uni0607 ; G 1352 +U 1545 ; WX 884 ; N uni0609 ; G 1353 +U 1546 ; WX 1157 ; N uni060A ; G 1354 +U 1548 ; WX 380 ; N uni060C ; G 1355 +U 1557 ; WX 0 ; N uni0615 ; G 1356 +U 1563 ; WX 400 ; N uni061B ; G 1357 +U 1567 ; WX 580 ; N uni061F ; G 1358 +U 1569 ; WX 511 ; N uni0621 ; G 1359 +U 1570 ; WX 343 ; N uni0622 ; G 1360 +U 1571 ; WX 343 ; N uni0623 ; G 1361 +U 1572 ; WX 622 ; N uni0624 ; G 1362 +U 1573 ; WX 343 ; N uni0625 ; G 1363 +U 1574 ; WX 917 ; N uni0626 ; G 1364 +U 1575 ; WX 343 ; N uni0627 ; G 1365 +U 1576 ; WX 1005 ; N uni0628 ; G 1366 +U 1577 ; WX 590 ; N uni0629 ; G 1367 +U 1578 ; WX 1005 ; N uni062A ; G 1368 +U 1579 ; WX 1005 ; N uni062B ; G 1369 +U 1580 ; WX 721 ; N uni062C ; G 1370 +U 1581 ; WX 721 ; N uni062D ; G 1371 +U 1582 ; WX 721 ; N uni062E ; G 1372 +U 1583 ; WX 513 ; N uni062F ; G 1373 +U 1584 ; WX 513 ; N uni0630 ; G 1374 +U 1585 ; WX 576 ; N uni0631 ; G 1375 +U 1586 ; WX 576 ; N uni0632 ; G 1376 +U 1587 ; WX 1380 ; N uni0633 ; G 1377 +U 1588 ; WX 1380 ; N uni0634 ; G 1378 +U 1589 ; WX 1345 ; N uni0635 ; G 1379 +U 1590 ; WX 1345 ; N uni0636 ; G 1380 +U 1591 ; WX 1039 ; N uni0637 ; G 1381 +U 1592 ; WX 1039 ; N uni0638 ; G 1382 +U 1593 ; WX 683 ; N uni0639 ; G 1383 +U 1594 ; WX 683 ; N uni063A ; G 1384 +U 1600 ; WX 342 ; N uni0640 ; G 1385 +U 1601 ; WX 1162 ; N uni0641 ; G 1386 +U 1602 ; WX 894 ; N uni0642 ; G 1387 +U 1603 ; WX 917 ; N uni0643 ; G 1388 +U 1604 ; WX 868 ; N uni0644 ; G 1389 +U 1605 ; WX 733 ; N uni0645 ; G 1390 +U 1606 ; WX 854 ; N uni0646 ; G 1391 +U 1607 ; WX 590 ; N uni0647 ; G 1392 +U 1608 ; WX 622 ; N uni0648 ; G 1393 +U 1609 ; WX 917 ; N uni0649 ; G 1394 +U 1610 ; WX 917 ; N uni064A ; G 1395 +U 1611 ; WX 0 ; N uni064B ; G 1396 +U 1612 ; WX 0 ; N uni064C ; G 1397 +U 1613 ; WX 0 ; N uni064D ; G 1398 +U 1614 ; WX 0 ; N uni064E ; G 1399 +U 1615 ; WX 0 ; N uni064F ; G 1400 +U 1616 ; WX 0 ; N uni0650 ; G 1401 +U 1617 ; WX 0 ; N uni0651 ; G 1402 +U 1618 ; WX 0 ; N uni0652 ; G 1403 +U 1619 ; WX 0 ; N uni0653 ; G 1404 +U 1620 ; WX 0 ; N uni0654 ; G 1405 +U 1621 ; WX 0 ; N uni0655 ; G 1406 +U 1623 ; WX 0 ; N uni0657 ; G 1407 +U 1626 ; WX 500 ; N uni065A ; G 1408 +U 1632 ; WX 610 ; N uni0660 ; G 1409 +U 1633 ; WX 610 ; N uni0661 ; G 1410 +U 1634 ; WX 610 ; N uni0662 ; G 1411 +U 1635 ; WX 610 ; N uni0663 ; G 1412 +U 1636 ; WX 610 ; N uni0664 ; G 1413 +U 1637 ; WX 610 ; N uni0665 ; G 1414 +U 1638 ; WX 610 ; N uni0666 ; G 1415 +U 1639 ; WX 610 ; N uni0667 ; G 1416 +U 1640 ; WX 610 ; N uni0668 ; G 1417 +U 1641 ; WX 610 ; N uni0669 ; G 1418 +U 1642 ; WX 610 ; N uni066A ; G 1419 +U 1643 ; WX 374 ; N uni066B ; G 1420 +U 1644 ; WX 380 ; N uni066C ; G 1421 +U 1645 ; WX 545 ; N uni066D ; G 1422 +U 1646 ; WX 1005 ; N uni066E ; G 1423 +U 1647 ; WX 894 ; N uni066F ; G 1424 +U 1648 ; WX 0 ; N uni0670 ; G 1425 +U 1652 ; WX 292 ; N uni0674 ; G 1426 +U 1657 ; WX 1005 ; N uni0679 ; G 1427 +U 1658 ; WX 1005 ; N uni067A ; G 1428 +U 1659 ; WX 1005 ; N uni067B ; G 1429 +U 1660 ; WX 1005 ; N uni067C ; G 1430 +U 1661 ; WX 1005 ; N uni067D ; G 1431 +U 1662 ; WX 1005 ; N uni067E ; G 1432 +U 1663 ; WX 1005 ; N uni067F ; G 1433 +U 1664 ; WX 1005 ; N uni0680 ; G 1434 +U 1665 ; WX 721 ; N uni0681 ; G 1435 +U 1666 ; WX 721 ; N uni0682 ; G 1436 +U 1667 ; WX 721 ; N uni0683 ; G 1437 +U 1668 ; WX 721 ; N uni0684 ; G 1438 +U 1669 ; WX 721 ; N uni0685 ; G 1439 +U 1670 ; WX 721 ; N uni0686 ; G 1440 +U 1671 ; WX 721 ; N uni0687 ; G 1441 +U 1672 ; WX 445 ; N uni0688 ; G 1442 +U 1673 ; WX 445 ; N uni0689 ; G 1443 +U 1674 ; WX 445 ; N uni068A ; G 1444 +U 1675 ; WX 445 ; N uni068B ; G 1445 +U 1676 ; WX 445 ; N uni068C ; G 1446 +U 1677 ; WX 445 ; N uni068D ; G 1447 +U 1678 ; WX 445 ; N uni068E ; G 1448 +U 1679 ; WX 445 ; N uni068F ; G 1449 +U 1680 ; WX 445 ; N uni0690 ; G 1450 +U 1681 ; WX 576 ; N uni0691 ; G 1451 +U 1682 ; WX 576 ; N uni0692 ; G 1452 +U 1683 ; WX 576 ; N uni0693 ; G 1453 +U 1684 ; WX 576 ; N uni0694 ; G 1454 +U 1685 ; WX 681 ; N uni0695 ; G 1455 +U 1686 ; WX 576 ; N uni0696 ; G 1456 +U 1687 ; WX 576 ; N uni0697 ; G 1457 +U 1688 ; WX 576 ; N uni0698 ; G 1458 +U 1689 ; WX 576 ; N uni0699 ; G 1459 +U 1690 ; WX 1380 ; N uni069A ; G 1460 +U 1691 ; WX 1380 ; N uni069B ; G 1461 +U 1692 ; WX 1380 ; N uni069C ; G 1462 +U 1693 ; WX 1345 ; N uni069D ; G 1463 +U 1694 ; WX 1345 ; N uni069E ; G 1464 +U 1695 ; WX 1039 ; N uni069F ; G 1465 +U 1696 ; WX 683 ; N uni06A0 ; G 1466 +U 1697 ; WX 1162 ; N uni06A1 ; G 1467 +U 1698 ; WX 1162 ; N uni06A2 ; G 1468 +U 1699 ; WX 1162 ; N uni06A3 ; G 1469 +U 1700 ; WX 1162 ; N uni06A4 ; G 1470 +U 1701 ; WX 1162 ; N uni06A5 ; G 1471 +U 1702 ; WX 1162 ; N uni06A6 ; G 1472 +U 1703 ; WX 894 ; N uni06A7 ; G 1473 +U 1704 ; WX 894 ; N uni06A8 ; G 1474 +U 1705 ; WX 1024 ; N uni06A9 ; G 1475 +U 1706 ; WX 1271 ; N uni06AA ; G 1476 +U 1707 ; WX 1024 ; N uni06AB ; G 1477 +U 1708 ; WX 917 ; N uni06AC ; G 1478 +U 1709 ; WX 917 ; N uni06AD ; G 1479 +U 1710 ; WX 917 ; N uni06AE ; G 1480 +U 1711 ; WX 1024 ; N uni06AF ; G 1481 +U 1712 ; WX 1024 ; N uni06B0 ; G 1482 +U 1713 ; WX 1024 ; N uni06B1 ; G 1483 +U 1714 ; WX 1024 ; N uni06B2 ; G 1484 +U 1715 ; WX 1024 ; N uni06B3 ; G 1485 +U 1716 ; WX 1024 ; N uni06B4 ; G 1486 +U 1717 ; WX 868 ; N uni06B5 ; G 1487 +U 1718 ; WX 868 ; N uni06B6 ; G 1488 +U 1719 ; WX 868 ; N uni06B7 ; G 1489 +U 1720 ; WX 868 ; N uni06B8 ; G 1490 +U 1721 ; WX 854 ; N uni06B9 ; G 1491 +U 1722 ; WX 854 ; N uni06BA ; G 1492 +U 1723 ; WX 854 ; N uni06BB ; G 1493 +U 1724 ; WX 854 ; N uni06BC ; G 1494 +U 1725 ; WX 854 ; N uni06BD ; G 1495 +U 1726 ; WX 938 ; N uni06BE ; G 1496 +U 1727 ; WX 721 ; N uni06BF ; G 1497 +U 1734 ; WX 622 ; N uni06C6 ; G 1498 +U 1735 ; WX 622 ; N uni06C7 ; G 1499 +U 1736 ; WX 622 ; N uni06C8 ; G 1500 +U 1739 ; WX 622 ; N uni06CB ; G 1501 +U 1740 ; WX 917 ; N uni06CC ; G 1502 +U 1742 ; WX 917 ; N uni06CE ; G 1503 +U 1744 ; WX 917 ; N uni06D0 ; G 1504 +U 1749 ; WX 590 ; N uni06D5 ; G 1505 +U 1776 ; WX 610 ; N uni06F0 ; G 1506 +U 1777 ; WX 610 ; N uni06F1 ; G 1507 +U 1778 ; WX 610 ; N uni06F2 ; G 1508 +U 1779 ; WX 610 ; N uni06F3 ; G 1509 +U 1780 ; WX 610 ; N uni06F4 ; G 1510 +U 1781 ; WX 610 ; N uni06F5 ; G 1511 +U 1782 ; WX 610 ; N uni06F6 ; G 1512 +U 1783 ; WX 610 ; N uni06F7 ; G 1513 +U 1784 ; WX 610 ; N uni06F8 ; G 1514 +U 1785 ; WX 610 ; N uni06F9 ; G 1515 +U 1984 ; WX 696 ; N uni07C0 ; G 1516 +U 1985 ; WX 696 ; N uni07C1 ; G 1517 +U 1986 ; WX 696 ; N uni07C2 ; G 1518 +U 1987 ; WX 696 ; N uni07C3 ; G 1519 +U 1988 ; WX 696 ; N uni07C4 ; G 1520 +U 1989 ; WX 696 ; N uni07C5 ; G 1521 +U 1990 ; WX 696 ; N uni07C6 ; G 1522 +U 1991 ; WX 696 ; N uni07C7 ; G 1523 +U 1992 ; WX 696 ; N uni07C8 ; G 1524 +U 1993 ; WX 696 ; N uni07C9 ; G 1525 +U 1994 ; WX 343 ; N uni07CA ; G 1526 +U 1995 ; WX 547 ; N uni07CB ; G 1527 +U 1996 ; WX 543 ; N uni07CC ; G 1528 +U 1997 ; WX 652 ; N uni07CD ; G 1529 +U 1998 ; WX 691 ; N uni07CE ; G 1530 +U 1999 ; WX 691 ; N uni07CF ; G 1531 +U 2000 ; WX 594 ; N uni07D0 ; G 1532 +U 2001 ; WX 691 ; N uni07D1 ; G 1533 +U 2002 ; WX 904 ; N uni07D2 ; G 1534 +U 2003 ; WX 551 ; N uni07D3 ; G 1535 +U 2004 ; WX 551 ; N uni07D4 ; G 1536 +U 2005 ; WX 627 ; N uni07D5 ; G 1537 +U 2006 ; WX 688 ; N uni07D6 ; G 1538 +U 2007 ; WX 444 ; N uni07D7 ; G 1539 +U 2008 ; WX 1022 ; N uni07D8 ; G 1540 +U 2009 ; WX 506 ; N uni07D9 ; G 1541 +U 2010 ; WX 826 ; N uni07DA ; G 1542 +U 2011 ; WX 691 ; N uni07DB ; G 1543 +U 2012 ; WX 652 ; N uni07DC ; G 1544 +U 2013 ; WX 912 ; N uni07DD ; G 1545 +U 2014 ; WX 627 ; N uni07DE ; G 1546 +U 2015 ; WX 707 ; N uni07DF ; G 1547 +U 2016 ; WX 506 ; N uni07E0 ; G 1548 +U 2017 ; WX 652 ; N uni07E1 ; G 1549 +U 2018 ; WX 574 ; N uni07E2 ; G 1550 +U 2019 ; WX 627 ; N uni07E3 ; G 1551 +U 2020 ; WX 627 ; N uni07E4 ; G 1552 +U 2021 ; WX 627 ; N uni07E5 ; G 1553 +U 2022 ; WX 574 ; N uni07E6 ; G 1554 +U 2023 ; WX 574 ; N uni07E7 ; G 1555 +U 2027 ; WX 0 ; N uni07EB ; G 1556 +U 2028 ; WX 0 ; N uni07EC ; G 1557 +U 2029 ; WX 0 ; N uni07ED ; G 1558 +U 2030 ; WX 0 ; N uni07EE ; G 1559 +U 2031 ; WX 0 ; N uni07EF ; G 1560 +U 2032 ; WX 0 ; N uni07F0 ; G 1561 +U 2033 ; WX 0 ; N uni07F1 ; G 1562 +U 2034 ; WX 0 ; N uni07F2 ; G 1563 +U 2035 ; WX 0 ; N uni07F3 ; G 1564 +U 2036 ; WX 380 ; N uni07F4 ; G 1565 +U 2037 ; WX 380 ; N uni07F5 ; G 1566 +U 2040 ; WX 691 ; N uni07F8 ; G 1567 +U 2041 ; WX 691 ; N uni07F9 ; G 1568 +U 2042 ; WX 415 ; N uni07FA ; G 1569 +U 3647 ; WX 696 ; N uni0E3F ; G 1570 +U 3713 ; WX 790 ; N uni0E81 ; G 1571 +U 3714 ; WX 748 ; N uni0E82 ; G 1572 +U 3716 ; WX 749 ; N uni0E84 ; G 1573 +U 3719 ; WX 569 ; N uni0E87 ; G 1574 +U 3720 ; WX 742 ; N uni0E88 ; G 1575 +U 3722 ; WX 744 ; N uni0E8A ; G 1576 +U 3725 ; WX 761 ; N uni0E8D ; G 1577 +U 3732 ; WX 706 ; N uni0E94 ; G 1578 +U 3733 ; WX 704 ; N uni0E95 ; G 1579 +U 3734 ; WX 747 ; N uni0E96 ; G 1580 +U 3735 ; WX 819 ; N uni0E97 ; G 1581 +U 3737 ; WX 730 ; N uni0E99 ; G 1582 +U 3738 ; WX 727 ; N uni0E9A ; G 1583 +U 3739 ; WX 727 ; N uni0E9B ; G 1584 +U 3740 ; WX 922 ; N uni0E9C ; G 1585 +U 3741 ; WX 827 ; N uni0E9D ; G 1586 +U 3742 ; WX 866 ; N uni0E9E ; G 1587 +U 3743 ; WX 866 ; N uni0E9F ; G 1588 +U 3745 ; WX 836 ; N uni0EA1 ; G 1589 +U 3746 ; WX 761 ; N uni0EA2 ; G 1590 +U 3747 ; WX 770 ; N uni0EA3 ; G 1591 +U 3749 ; WX 769 ; N uni0EA5 ; G 1592 +U 3751 ; WX 713 ; N uni0EA7 ; G 1593 +U 3754 ; WX 827 ; N uni0EAA ; G 1594 +U 3755 ; WX 1031 ; N uni0EAB ; G 1595 +U 3757 ; WX 724 ; N uni0EAD ; G 1596 +U 3758 ; WX 784 ; N uni0EAE ; G 1597 +U 3759 ; WX 934 ; N uni0EAF ; G 1598 +U 3760 ; WX 688 ; N uni0EB0 ; G 1599 +U 3761 ; WX 0 ; N uni0EB1 ; G 1600 +U 3762 ; WX 610 ; N uni0EB2 ; G 1601 +U 3763 ; WX 610 ; N uni0EB3 ; G 1602 +U 3764 ; WX 0 ; N uni0EB4 ; G 1603 +U 3765 ; WX 0 ; N uni0EB5 ; G 1604 +U 3766 ; WX 0 ; N uni0EB6 ; G 1605 +U 3767 ; WX 0 ; N uni0EB7 ; G 1606 +U 3768 ; WX 0 ; N uni0EB8 ; G 1607 +U 3769 ; WX 0 ; N uni0EB9 ; G 1608 +U 3771 ; WX 0 ; N uni0EBB ; G 1609 +U 3772 ; WX 0 ; N uni0EBC ; G 1610 +U 3773 ; WX 670 ; N uni0EBD ; G 1611 +U 3776 ; WX 516 ; N uni0EC0 ; G 1612 +U 3777 ; WX 860 ; N uni0EC1 ; G 1613 +U 3778 ; WX 516 ; N uni0EC2 ; G 1614 +U 3779 ; WX 650 ; N uni0EC3 ; G 1615 +U 3780 ; WX 632 ; N uni0EC4 ; G 1616 +U 3782 ; WX 759 ; N uni0EC6 ; G 1617 +U 3784 ; WX 0 ; N uni0EC8 ; G 1618 +U 3785 ; WX 0 ; N uni0EC9 ; G 1619 +U 3786 ; WX 0 ; N uni0ECA ; G 1620 +U 3787 ; WX 0 ; N uni0ECB ; G 1621 +U 3788 ; WX 0 ; N uni0ECC ; G 1622 +U 3789 ; WX 0 ; N uni0ECD ; G 1623 +U 3792 ; WX 771 ; N uni0ED0 ; G 1624 +U 3793 ; WX 771 ; N uni0ED1 ; G 1625 +U 3794 ; WX 693 ; N uni0ED2 ; G 1626 +U 3795 ; WX 836 ; N uni0ED3 ; G 1627 +U 3796 ; WX 729 ; N uni0ED4 ; G 1628 +U 3797 ; WX 729 ; N uni0ED5 ; G 1629 +U 3798 ; WX 849 ; N uni0ED6 ; G 1630 +U 3799 ; WX 790 ; N uni0ED7 ; G 1631 +U 3800 ; WX 759 ; N uni0ED8 ; G 1632 +U 3801 ; WX 910 ; N uni0ED9 ; G 1633 +U 3804 ; WX 1363 ; N uni0EDC ; G 1634 +U 3805 ; WX 1363 ; N uni0EDD ; G 1635 +U 4256 ; WX 874 ; N uni10A0 ; G 1636 +U 4257 ; WX 733 ; N uni10A1 ; G 1637 +U 4258 ; WX 679 ; N uni10A2 ; G 1638 +U 4259 ; WX 834 ; N uni10A3 ; G 1639 +U 4260 ; WX 615 ; N uni10A4 ; G 1640 +U 4261 ; WX 768 ; N uni10A5 ; G 1641 +U 4262 ; WX 753 ; N uni10A6 ; G 1642 +U 4263 ; WX 914 ; N uni10A7 ; G 1643 +U 4264 ; WX 453 ; N uni10A8 ; G 1644 +U 4265 ; WX 620 ; N uni10A9 ; G 1645 +U 4266 ; WX 843 ; N uni10AA ; G 1646 +U 4267 ; WX 882 ; N uni10AB ; G 1647 +U 4268 ; WX 625 ; N uni10AC ; G 1648 +U 4269 ; WX 854 ; N uni10AD ; G 1649 +U 4270 ; WX 781 ; N uni10AE ; G 1650 +U 4271 ; WX 629 ; N uni10AF ; G 1651 +U 4272 ; WX 912 ; N uni10B0 ; G 1652 +U 4273 ; WX 621 ; N uni10B1 ; G 1653 +U 4274 ; WX 620 ; N uni10B2 ; G 1654 +U 4275 ; WX 854 ; N uni10B3 ; G 1655 +U 4276 ; WX 866 ; N uni10B4 ; G 1656 +U 4277 ; WX 724 ; N uni10B5 ; G 1657 +U 4278 ; WX 630 ; N uni10B6 ; G 1658 +U 4279 ; WX 621 ; N uni10B7 ; G 1659 +U 4280 ; WX 625 ; N uni10B8 ; G 1660 +U 4281 ; WX 620 ; N uni10B9 ; G 1661 +U 4282 ; WX 818 ; N uni10BA ; G 1662 +U 4283 ; WX 874 ; N uni10BB ; G 1663 +U 4284 ; WX 615 ; N uni10BC ; G 1664 +U 4285 ; WX 623 ; N uni10BD ; G 1665 +U 4286 ; WX 625 ; N uni10BE ; G 1666 +U 4287 ; WX 725 ; N uni10BF ; G 1667 +U 4288 ; WX 844 ; N uni10C0 ; G 1668 +U 4289 ; WX 596 ; N uni10C1 ; G 1669 +U 4290 ; WX 688 ; N uni10C2 ; G 1670 +U 4291 ; WX 596 ; N uni10C3 ; G 1671 +U 4292 ; WX 594 ; N uni10C4 ; G 1672 +U 4293 ; WX 738 ; N uni10C5 ; G 1673 +U 4304 ; WX 554 ; N uni10D0 ; G 1674 +U 4305 ; WX 563 ; N uni10D1 ; G 1675 +U 4306 ; WX 622 ; N uni10D2 ; G 1676 +U 4307 ; WX 834 ; N uni10D3 ; G 1677 +U 4308 ; WX 555 ; N uni10D4 ; G 1678 +U 4309 ; WX 564 ; N uni10D5 ; G 1679 +U 4310 ; WX 551 ; N uni10D6 ; G 1680 +U 4311 ; WX 828 ; N uni10D7 ; G 1681 +U 4312 ; WX 563 ; N uni10D8 ; G 1682 +U 4313 ; WX 556 ; N uni10D9 ; G 1683 +U 4314 ; WX 1074 ; N uni10DA ; G 1684 +U 4315 ; WX 568 ; N uni10DB ; G 1685 +U 4316 ; WX 568 ; N uni10DC ; G 1686 +U 4317 ; WX 814 ; N uni10DD ; G 1687 +U 4318 ; WX 554 ; N uni10DE ; G 1688 +U 4319 ; WX 563 ; N uni10DF ; G 1689 +U 4320 ; WX 823 ; N uni10E0 ; G 1690 +U 4321 ; WX 568 ; N uni10E1 ; G 1691 +U 4322 ; WX 700 ; N uni10E2 ; G 1692 +U 4323 ; WX 591 ; N uni10E3 ; G 1693 +U 4324 ; WX 852 ; N uni10E4 ; G 1694 +U 4325 ; WX 560 ; N uni10E5 ; G 1695 +U 4326 ; WX 814 ; N uni10E6 ; G 1696 +U 4327 ; WX 563 ; N uni10E7 ; G 1697 +U 4328 ; WX 553 ; N uni10E8 ; G 1698 +U 4329 ; WX 568 ; N uni10E9 ; G 1699 +U 4330 ; WX 622 ; N uni10EA ; G 1700 +U 4331 ; WX 568 ; N uni10EB ; G 1701 +U 4332 ; WX 553 ; N uni10EC ; G 1702 +U 4333 ; WX 566 ; N uni10ED ; G 1703 +U 4334 ; WX 568 ; N uni10EE ; G 1704 +U 4335 ; WX 540 ; N uni10EF ; G 1705 +U 4336 ; WX 554 ; N uni10F0 ; G 1706 +U 4337 ; WX 559 ; N uni10F1 ; G 1707 +U 4338 ; WX 553 ; N uni10F2 ; G 1708 +U 4339 ; WX 554 ; N uni10F3 ; G 1709 +U 4340 ; WX 553 ; N uni10F4 ; G 1710 +U 4341 ; WX 587 ; N uni10F5 ; G 1711 +U 4342 ; WX 853 ; N uni10F6 ; G 1712 +U 4343 ; WX 604 ; N uni10F7 ; G 1713 +U 4344 ; WX 563 ; N uni10F8 ; G 1714 +U 4345 ; WX 622 ; N uni10F9 ; G 1715 +U 4346 ; WX 554 ; N uni10FA ; G 1716 +U 4347 ; WX 448 ; N uni10FB ; G 1717 +U 4348 ; WX 324 ; N uni10FC ; G 1718 +U 5121 ; WX 774 ; N uni1401 ; G 1719 +U 5122 ; WX 774 ; N uni1402 ; G 1720 +U 5123 ; WX 774 ; N uni1403 ; G 1721 +U 5124 ; WX 774 ; N uni1404 ; G 1722 +U 5125 ; WX 905 ; N uni1405 ; G 1723 +U 5126 ; WX 905 ; N uni1406 ; G 1724 +U 5127 ; WX 905 ; N uni1407 ; G 1725 +U 5129 ; WX 905 ; N uni1409 ; G 1726 +U 5130 ; WX 905 ; N uni140A ; G 1727 +U 5131 ; WX 905 ; N uni140B ; G 1728 +U 5132 ; WX 1018 ; N uni140C ; G 1729 +U 5133 ; WX 1009 ; N uni140D ; G 1730 +U 5134 ; WX 1018 ; N uni140E ; G 1731 +U 5135 ; WX 1009 ; N uni140F ; G 1732 +U 5136 ; WX 1018 ; N uni1410 ; G 1733 +U 5137 ; WX 1009 ; N uni1411 ; G 1734 +U 5138 ; WX 1149 ; N uni1412 ; G 1735 +U 5139 ; WX 1140 ; N uni1413 ; G 1736 +U 5140 ; WX 1149 ; N uni1414 ; G 1737 +U 5141 ; WX 1140 ; N uni1415 ; G 1738 +U 5142 ; WX 905 ; N uni1416 ; G 1739 +U 5143 ; WX 1149 ; N uni1417 ; G 1740 +U 5144 ; WX 1142 ; N uni1418 ; G 1741 +U 5145 ; WX 1149 ; N uni1419 ; G 1742 +U 5146 ; WX 1142 ; N uni141A ; G 1743 +U 5147 ; WX 905 ; N uni141B ; G 1744 +U 5149 ; WX 310 ; N uni141D ; G 1745 +U 5150 ; WX 529 ; N uni141E ; G 1746 +U 5151 ; WX 425 ; N uni141F ; G 1747 +U 5152 ; WX 425 ; N uni1420 ; G 1748 +U 5153 ; WX 395 ; N uni1421 ; G 1749 +U 5154 ; WX 395 ; N uni1422 ; G 1750 +U 5155 ; WX 395 ; N uni1423 ; G 1751 +U 5156 ; WX 395 ; N uni1424 ; G 1752 +U 5157 ; WX 564 ; N uni1425 ; G 1753 +U 5158 ; WX 470 ; N uni1426 ; G 1754 +U 5159 ; WX 310 ; N uni1427 ; G 1755 +U 5160 ; WX 395 ; N uni1428 ; G 1756 +U 5161 ; WX 395 ; N uni1429 ; G 1757 +U 5162 ; WX 395 ; N uni142A ; G 1758 +U 5163 ; WX 1213 ; N uni142B ; G 1759 +U 5164 ; WX 986 ; N uni142C ; G 1760 +U 5165 ; WX 1216 ; N uni142D ; G 1761 +U 5166 ; WX 1297 ; N uni142E ; G 1762 +U 5167 ; WX 774 ; N uni142F ; G 1763 +U 5168 ; WX 774 ; N uni1430 ; G 1764 +U 5169 ; WX 774 ; N uni1431 ; G 1765 +U 5170 ; WX 774 ; N uni1432 ; G 1766 +U 5171 ; WX 886 ; N uni1433 ; G 1767 +U 5172 ; WX 886 ; N uni1434 ; G 1768 +U 5173 ; WX 886 ; N uni1435 ; G 1769 +U 5175 ; WX 886 ; N uni1437 ; G 1770 +U 5176 ; WX 886 ; N uni1438 ; G 1771 +U 5177 ; WX 886 ; N uni1439 ; G 1772 +U 5178 ; WX 1018 ; N uni143A ; G 1773 +U 5179 ; WX 1009 ; N uni143B ; G 1774 +U 5180 ; WX 1018 ; N uni143C ; G 1775 +U 5181 ; WX 1009 ; N uni143D ; G 1776 +U 5182 ; WX 1018 ; N uni143E ; G 1777 +U 5183 ; WX 1009 ; N uni143F ; G 1778 +U 5184 ; WX 1149 ; N uni1440 ; G 1779 +U 5185 ; WX 1140 ; N uni1441 ; G 1780 +U 5186 ; WX 1149 ; N uni1442 ; G 1781 +U 5187 ; WX 1140 ; N uni1443 ; G 1782 +U 5188 ; WX 1149 ; N uni1444 ; G 1783 +U 5189 ; WX 1142 ; N uni1445 ; G 1784 +U 5190 ; WX 1149 ; N uni1446 ; G 1785 +U 5191 ; WX 1142 ; N uni1447 ; G 1786 +U 5192 ; WX 886 ; N uni1448 ; G 1787 +U 5193 ; WX 576 ; N uni1449 ; G 1788 +U 5194 ; WX 229 ; N uni144A ; G 1789 +U 5196 ; WX 812 ; N uni144C ; G 1790 +U 5197 ; WX 812 ; N uni144D ; G 1791 +U 5198 ; WX 812 ; N uni144E ; G 1792 +U 5199 ; WX 812 ; N uni144F ; G 1793 +U 5200 ; WX 815 ; N uni1450 ; G 1794 +U 5201 ; WX 815 ; N uni1451 ; G 1795 +U 5202 ; WX 815 ; N uni1452 ; G 1796 +U 5204 ; WX 815 ; N uni1454 ; G 1797 +U 5205 ; WX 815 ; N uni1455 ; G 1798 +U 5206 ; WX 815 ; N uni1456 ; G 1799 +U 5207 ; WX 1056 ; N uni1457 ; G 1800 +U 5208 ; WX 1048 ; N uni1458 ; G 1801 +U 5209 ; WX 1056 ; N uni1459 ; G 1802 +U 5210 ; WX 1048 ; N uni145A ; G 1803 +U 5211 ; WX 1056 ; N uni145B ; G 1804 +U 5212 ; WX 1048 ; N uni145C ; G 1805 +U 5213 ; WX 1060 ; N uni145D ; G 1806 +U 5214 ; WX 1054 ; N uni145E ; G 1807 +U 5215 ; WX 1060 ; N uni145F ; G 1808 +U 5216 ; WX 1054 ; N uni1460 ; G 1809 +U 5217 ; WX 1060 ; N uni1461 ; G 1810 +U 5218 ; WX 1052 ; N uni1462 ; G 1811 +U 5219 ; WX 1060 ; N uni1463 ; G 1812 +U 5220 ; WX 1052 ; N uni1464 ; G 1813 +U 5221 ; WX 1060 ; N uni1465 ; G 1814 +U 5222 ; WX 483 ; N uni1466 ; G 1815 +U 5223 ; WX 1005 ; N uni1467 ; G 1816 +U 5224 ; WX 1005 ; N uni1468 ; G 1817 +U 5225 ; WX 1023 ; N uni1469 ; G 1818 +U 5226 ; WX 1017 ; N uni146A ; G 1819 +U 5227 ; WX 743 ; N uni146B ; G 1820 +U 5228 ; WX 743 ; N uni146C ; G 1821 +U 5229 ; WX 743 ; N uni146D ; G 1822 +U 5230 ; WX 743 ; N uni146E ; G 1823 +U 5231 ; WX 743 ; N uni146F ; G 1824 +U 5232 ; WX 743 ; N uni1470 ; G 1825 +U 5233 ; WX 743 ; N uni1471 ; G 1826 +U 5234 ; WX 743 ; N uni1472 ; G 1827 +U 5235 ; WX 743 ; N uni1473 ; G 1828 +U 5236 ; WX 1029 ; N uni1474 ; G 1829 +U 5237 ; WX 975 ; N uni1475 ; G 1830 +U 5238 ; WX 980 ; N uni1476 ; G 1831 +U 5239 ; WX 975 ; N uni1477 ; G 1832 +U 5240 ; WX 980 ; N uni1478 ; G 1833 +U 5241 ; WX 975 ; N uni1479 ; G 1834 +U 5242 ; WX 1029 ; N uni147A ; G 1835 +U 5243 ; WX 975 ; N uni147B ; G 1836 +U 5244 ; WX 1029 ; N uni147C ; G 1837 +U 5245 ; WX 975 ; N uni147D ; G 1838 +U 5246 ; WX 980 ; N uni147E ; G 1839 +U 5247 ; WX 975 ; N uni147F ; G 1840 +U 5248 ; WX 980 ; N uni1480 ; G 1841 +U 5249 ; WX 975 ; N uni1481 ; G 1842 +U 5250 ; WX 980 ; N uni1482 ; G 1843 +U 5251 ; WX 501 ; N uni1483 ; G 1844 +U 5252 ; WX 501 ; N uni1484 ; G 1845 +U 5253 ; WX 938 ; N uni1485 ; G 1846 +U 5254 ; WX 938 ; N uni1486 ; G 1847 +U 5255 ; WX 938 ; N uni1487 ; G 1848 +U 5256 ; WX 938 ; N uni1488 ; G 1849 +U 5257 ; WX 743 ; N uni1489 ; G 1850 +U 5258 ; WX 743 ; N uni148A ; G 1851 +U 5259 ; WX 743 ; N uni148B ; G 1852 +U 5260 ; WX 743 ; N uni148C ; G 1853 +U 5261 ; WX 743 ; N uni148D ; G 1854 +U 5262 ; WX 743 ; N uni148E ; G 1855 +U 5263 ; WX 743 ; N uni148F ; G 1856 +U 5264 ; WX 743 ; N uni1490 ; G 1857 +U 5265 ; WX 743 ; N uni1491 ; G 1858 +U 5266 ; WX 1029 ; N uni1492 ; G 1859 +U 5267 ; WX 975 ; N uni1493 ; G 1860 +U 5268 ; WX 1029 ; N uni1494 ; G 1861 +U 5269 ; WX 975 ; N uni1495 ; G 1862 +U 5270 ; WX 1029 ; N uni1496 ; G 1863 +U 5271 ; WX 975 ; N uni1497 ; G 1864 +U 5272 ; WX 1029 ; N uni1498 ; G 1865 +U 5273 ; WX 975 ; N uni1499 ; G 1866 +U 5274 ; WX 1029 ; N uni149A ; G 1867 +U 5275 ; WX 975 ; N uni149B ; G 1868 +U 5276 ; WX 1029 ; N uni149C ; G 1869 +U 5277 ; WX 975 ; N uni149D ; G 1870 +U 5278 ; WX 1029 ; N uni149E ; G 1871 +U 5279 ; WX 975 ; N uni149F ; G 1872 +U 5280 ; WX 1029 ; N uni14A0 ; G 1873 +U 5281 ; WX 501 ; N uni14A1 ; G 1874 +U 5282 ; WX 501 ; N uni14A2 ; G 1875 +U 5283 ; WX 626 ; N uni14A3 ; G 1876 +U 5284 ; WX 626 ; N uni14A4 ; G 1877 +U 5285 ; WX 626 ; N uni14A5 ; G 1878 +U 5286 ; WX 626 ; N uni14A6 ; G 1879 +U 5287 ; WX 626 ; N uni14A7 ; G 1880 +U 5288 ; WX 626 ; N uni14A8 ; G 1881 +U 5289 ; WX 626 ; N uni14A9 ; G 1882 +U 5290 ; WX 626 ; N uni14AA ; G 1883 +U 5291 ; WX 626 ; N uni14AB ; G 1884 +U 5292 ; WX 881 ; N uni14AC ; G 1885 +U 5293 ; WX 854 ; N uni14AD ; G 1886 +U 5294 ; WX 863 ; N uni14AE ; G 1887 +U 5295 ; WX 874 ; N uni14AF ; G 1888 +U 5296 ; WX 863 ; N uni14B0 ; G 1889 +U 5297 ; WX 874 ; N uni14B1 ; G 1890 +U 5298 ; WX 881 ; N uni14B2 ; G 1891 +U 5299 ; WX 874 ; N uni14B3 ; G 1892 +U 5300 ; WX 881 ; N uni14B4 ; G 1893 +U 5301 ; WX 874 ; N uni14B5 ; G 1894 +U 5302 ; WX 863 ; N uni14B6 ; G 1895 +U 5303 ; WX 874 ; N uni14B7 ; G 1896 +U 5304 ; WX 863 ; N uni14B8 ; G 1897 +U 5305 ; WX 874 ; N uni14B9 ; G 1898 +U 5306 ; WX 863 ; N uni14BA ; G 1899 +U 5307 ; WX 436 ; N uni14BB ; G 1900 +U 5308 ; WX 548 ; N uni14BC ; G 1901 +U 5309 ; WX 436 ; N uni14BD ; G 1902 +U 5312 ; WX 988 ; N uni14C0 ; G 1903 +U 5313 ; WX 988 ; N uni14C1 ; G 1904 +U 5314 ; WX 988 ; N uni14C2 ; G 1905 +U 5315 ; WX 988 ; N uni14C3 ; G 1906 +U 5316 ; WX 931 ; N uni14C4 ; G 1907 +U 5317 ; WX 931 ; N uni14C5 ; G 1908 +U 5318 ; WX 931 ; N uni14C6 ; G 1909 +U 5319 ; WX 931 ; N uni14C7 ; G 1910 +U 5320 ; WX 931 ; N uni14C8 ; G 1911 +U 5321 ; WX 1238 ; N uni14C9 ; G 1912 +U 5322 ; WX 1247 ; N uni14CA ; G 1913 +U 5323 ; WX 1200 ; N uni14CB ; G 1914 +U 5324 ; WX 1228 ; N uni14CC ; G 1915 +U 5325 ; WX 1200 ; N uni14CD ; G 1916 +U 5326 ; WX 1228 ; N uni14CE ; G 1917 +U 5327 ; WX 931 ; N uni14CF ; G 1918 +U 5328 ; WX 660 ; N uni14D0 ; G 1919 +U 5329 ; WX 497 ; N uni14D1 ; G 1920 +U 5330 ; WX 660 ; N uni14D2 ; G 1921 +U 5331 ; WX 988 ; N uni14D3 ; G 1922 +U 5332 ; WX 988 ; N uni14D4 ; G 1923 +U 5333 ; WX 988 ; N uni14D5 ; G 1924 +U 5334 ; WX 988 ; N uni14D6 ; G 1925 +U 5335 ; WX 931 ; N uni14D7 ; G 1926 +U 5336 ; WX 931 ; N uni14D8 ; G 1927 +U 5337 ; WX 931 ; N uni14D9 ; G 1928 +U 5338 ; WX 931 ; N uni14DA ; G 1929 +U 5339 ; WX 931 ; N uni14DB ; G 1930 +U 5340 ; WX 1231 ; N uni14DC ; G 1931 +U 5341 ; WX 1247 ; N uni14DD ; G 1932 +U 5342 ; WX 1283 ; N uni14DE ; G 1933 +U 5343 ; WX 1228 ; N uni14DF ; G 1934 +U 5344 ; WX 1283 ; N uni14E0 ; G 1935 +U 5345 ; WX 1228 ; N uni14E1 ; G 1936 +U 5346 ; WX 1228 ; N uni14E2 ; G 1937 +U 5347 ; WX 1214 ; N uni14E3 ; G 1938 +U 5348 ; WX 1228 ; N uni14E4 ; G 1939 +U 5349 ; WX 1214 ; N uni14E5 ; G 1940 +U 5350 ; WX 1283 ; N uni14E6 ; G 1941 +U 5351 ; WX 1228 ; N uni14E7 ; G 1942 +U 5352 ; WX 1283 ; N uni14E8 ; G 1943 +U 5353 ; WX 1228 ; N uni14E9 ; G 1944 +U 5354 ; WX 660 ; N uni14EA ; G 1945 +U 5356 ; WX 886 ; N uni14EC ; G 1946 +U 5357 ; WX 730 ; N uni14ED ; G 1947 +U 5358 ; WX 730 ; N uni14EE ; G 1948 +U 5359 ; WX 730 ; N uni14EF ; G 1949 +U 5360 ; WX 730 ; N uni14F0 ; G 1950 +U 5361 ; WX 730 ; N uni14F1 ; G 1951 +U 5362 ; WX 730 ; N uni14F2 ; G 1952 +U 5363 ; WX 730 ; N uni14F3 ; G 1953 +U 5364 ; WX 730 ; N uni14F4 ; G 1954 +U 5365 ; WX 730 ; N uni14F5 ; G 1955 +U 5366 ; WX 998 ; N uni14F6 ; G 1956 +U 5367 ; WX 958 ; N uni14F7 ; G 1957 +U 5368 ; WX 967 ; N uni14F8 ; G 1958 +U 5369 ; WX 989 ; N uni14F9 ; G 1959 +U 5370 ; WX 967 ; N uni14FA ; G 1960 +U 5371 ; WX 989 ; N uni14FB ; G 1961 +U 5372 ; WX 998 ; N uni14FC ; G 1962 +U 5373 ; WX 958 ; N uni14FD ; G 1963 +U 5374 ; WX 998 ; N uni14FE ; G 1964 +U 5375 ; WX 958 ; N uni14FF ; G 1965 +U 5376 ; WX 967 ; N uni1500 ; G 1966 +U 5377 ; WX 989 ; N uni1501 ; G 1967 +U 5378 ; WX 967 ; N uni1502 ; G 1968 +U 5379 ; WX 989 ; N uni1503 ; G 1969 +U 5380 ; WX 967 ; N uni1504 ; G 1970 +U 5381 ; WX 493 ; N uni1505 ; G 1971 +U 5382 ; WX 460 ; N uni1506 ; G 1972 +U 5383 ; WX 493 ; N uni1507 ; G 1973 +U 5392 ; WX 923 ; N uni1510 ; G 1974 +U 5393 ; WX 923 ; N uni1511 ; G 1975 +U 5394 ; WX 923 ; N uni1512 ; G 1976 +U 5395 ; WX 1136 ; N uni1513 ; G 1977 +U 5396 ; WX 1136 ; N uni1514 ; G 1978 +U 5397 ; WX 1136 ; N uni1515 ; G 1979 +U 5398 ; WX 1136 ; N uni1516 ; G 1980 +U 5399 ; WX 1209 ; N uni1517 ; G 1981 +U 5400 ; WX 1202 ; N uni1518 ; G 1982 +U 5401 ; WX 1209 ; N uni1519 ; G 1983 +U 5402 ; WX 1202 ; N uni151A ; G 1984 +U 5403 ; WX 1209 ; N uni151B ; G 1985 +U 5404 ; WX 1202 ; N uni151C ; G 1986 +U 5405 ; WX 1431 ; N uni151D ; G 1987 +U 5406 ; WX 1420 ; N uni151E ; G 1988 +U 5407 ; WX 1431 ; N uni151F ; G 1989 +U 5408 ; WX 1420 ; N uni1520 ; G 1990 +U 5409 ; WX 1431 ; N uni1521 ; G 1991 +U 5410 ; WX 1420 ; N uni1522 ; G 1992 +U 5411 ; WX 1431 ; N uni1523 ; G 1993 +U 5412 ; WX 1420 ; N uni1524 ; G 1994 +U 5413 ; WX 746 ; N uni1525 ; G 1995 +U 5414 ; WX 776 ; N uni1526 ; G 1996 +U 5415 ; WX 776 ; N uni1527 ; G 1997 +U 5416 ; WX 776 ; N uni1528 ; G 1998 +U 5417 ; WX 776 ; N uni1529 ; G 1999 +U 5418 ; WX 776 ; N uni152A ; G 2000 +U 5419 ; WX 776 ; N uni152B ; G 2001 +U 5420 ; WX 776 ; N uni152C ; G 2002 +U 5421 ; WX 776 ; N uni152D ; G 2003 +U 5422 ; WX 776 ; N uni152E ; G 2004 +U 5423 ; WX 1003 ; N uni152F ; G 2005 +U 5424 ; WX 1003 ; N uni1530 ; G 2006 +U 5425 ; WX 1013 ; N uni1531 ; G 2007 +U 5426 ; WX 996 ; N uni1532 ; G 2008 +U 5427 ; WX 1013 ; N uni1533 ; G 2009 +U 5428 ; WX 996 ; N uni1534 ; G 2010 +U 5429 ; WX 1003 ; N uni1535 ; G 2011 +U 5430 ; WX 1003 ; N uni1536 ; G 2012 +U 5431 ; WX 1003 ; N uni1537 ; G 2013 +U 5432 ; WX 1003 ; N uni1538 ; G 2014 +U 5433 ; WX 1013 ; N uni1539 ; G 2015 +U 5434 ; WX 996 ; N uni153A ; G 2016 +U 5435 ; WX 1013 ; N uni153B ; G 2017 +U 5436 ; WX 996 ; N uni153C ; G 2018 +U 5437 ; WX 1013 ; N uni153D ; G 2019 +U 5438 ; WX 495 ; N uni153E ; G 2020 +U 5440 ; WX 395 ; N uni1540 ; G 2021 +U 5441 ; WX 510 ; N uni1541 ; G 2022 +U 5442 ; WX 1033 ; N uni1542 ; G 2023 +U 5443 ; WX 1033 ; N uni1543 ; G 2024 +U 5444 ; WX 976 ; N uni1544 ; G 2025 +U 5445 ; WX 976 ; N uni1545 ; G 2026 +U 5446 ; WX 976 ; N uni1546 ; G 2027 +U 5447 ; WX 976 ; N uni1547 ; G 2028 +U 5448 ; WX 733 ; N uni1548 ; G 2029 +U 5449 ; WX 733 ; N uni1549 ; G 2030 +U 5450 ; WX 733 ; N uni154A ; G 2031 +U 5451 ; WX 733 ; N uni154B ; G 2032 +U 5452 ; WX 733 ; N uni154C ; G 2033 +U 5453 ; WX 733 ; N uni154D ; G 2034 +U 5454 ; WX 1003 ; N uni154E ; G 2035 +U 5455 ; WX 959 ; N uni154F ; G 2036 +U 5456 ; WX 495 ; N uni1550 ; G 2037 +U 5458 ; WX 886 ; N uni1552 ; G 2038 +U 5459 ; WX 774 ; N uni1553 ; G 2039 +U 5460 ; WX 774 ; N uni1554 ; G 2040 +U 5461 ; WX 774 ; N uni1555 ; G 2041 +U 5462 ; WX 774 ; N uni1556 ; G 2042 +U 5463 ; WX 928 ; N uni1557 ; G 2043 +U 5464 ; WX 928 ; N uni1558 ; G 2044 +U 5465 ; WX 928 ; N uni1559 ; G 2045 +U 5466 ; WX 928 ; N uni155A ; G 2046 +U 5467 ; WX 1172 ; N uni155B ; G 2047 +U 5468 ; WX 1142 ; N uni155C ; G 2048 +U 5469 ; WX 602 ; N uni155D ; G 2049 +U 5470 ; WX 812 ; N uni155E ; G 2050 +U 5471 ; WX 812 ; N uni155F ; G 2051 +U 5472 ; WX 812 ; N uni1560 ; G 2052 +U 5473 ; WX 812 ; N uni1561 ; G 2053 +U 5474 ; WX 812 ; N uni1562 ; G 2054 +U 5475 ; WX 812 ; N uni1563 ; G 2055 +U 5476 ; WX 815 ; N uni1564 ; G 2056 +U 5477 ; WX 815 ; N uni1565 ; G 2057 +U 5478 ; WX 815 ; N uni1566 ; G 2058 +U 5479 ; WX 815 ; N uni1567 ; G 2059 +U 5480 ; WX 1060 ; N uni1568 ; G 2060 +U 5481 ; WX 1052 ; N uni1569 ; G 2061 +U 5482 ; WX 548 ; N uni156A ; G 2062 +U 5492 ; WX 977 ; N uni1574 ; G 2063 +U 5493 ; WX 977 ; N uni1575 ; G 2064 +U 5494 ; WX 977 ; N uni1576 ; G 2065 +U 5495 ; WX 977 ; N uni1577 ; G 2066 +U 5496 ; WX 977 ; N uni1578 ; G 2067 +U 5497 ; WX 977 ; N uni1579 ; G 2068 +U 5498 ; WX 977 ; N uni157A ; G 2069 +U 5499 ; WX 618 ; N uni157B ; G 2070 +U 5500 ; WX 837 ; N uni157C ; G 2071 +U 5501 ; WX 510 ; N uni157D ; G 2072 +U 5502 ; WX 1238 ; N uni157E ; G 2073 +U 5503 ; WX 1238 ; N uni157F ; G 2074 +U 5504 ; WX 1238 ; N uni1580 ; G 2075 +U 5505 ; WX 1238 ; N uni1581 ; G 2076 +U 5506 ; WX 1238 ; N uni1582 ; G 2077 +U 5507 ; WX 1238 ; N uni1583 ; G 2078 +U 5508 ; WX 1238 ; N uni1584 ; G 2079 +U 5509 ; WX 989 ; N uni1585 ; G 2080 +U 5514 ; WX 977 ; N uni158A ; G 2081 +U 5515 ; WX 977 ; N uni158B ; G 2082 +U 5516 ; WX 977 ; N uni158C ; G 2083 +U 5517 ; WX 977 ; N uni158D ; G 2084 +U 5518 ; WX 1591 ; N uni158E ; G 2085 +U 5519 ; WX 1591 ; N uni158F ; G 2086 +U 5520 ; WX 1591 ; N uni1590 ; G 2087 +U 5521 ; WX 1295 ; N uni1591 ; G 2088 +U 5522 ; WX 1295 ; N uni1592 ; G 2089 +U 5523 ; WX 1591 ; N uni1593 ; G 2090 +U 5524 ; WX 1591 ; N uni1594 ; G 2091 +U 5525 ; WX 848 ; N uni1595 ; G 2092 +U 5526 ; WX 1273 ; N uni1596 ; G 2093 +U 5536 ; WX 988 ; N uni15A0 ; G 2094 +U 5537 ; WX 988 ; N uni15A1 ; G 2095 +U 5538 ; WX 931 ; N uni15A2 ; G 2096 +U 5539 ; WX 931 ; N uni15A3 ; G 2097 +U 5540 ; WX 931 ; N uni15A4 ; G 2098 +U 5541 ; WX 931 ; N uni15A5 ; G 2099 +U 5542 ; WX 660 ; N uni15A6 ; G 2100 +U 5543 ; WX 776 ; N uni15A7 ; G 2101 +U 5544 ; WX 776 ; N uni15A8 ; G 2102 +U 5545 ; WX 776 ; N uni15A9 ; G 2103 +U 5546 ; WX 776 ; N uni15AA ; G 2104 +U 5547 ; WX 776 ; N uni15AB ; G 2105 +U 5548 ; WX 776 ; N uni15AC ; G 2106 +U 5549 ; WX 776 ; N uni15AD ; G 2107 +U 5550 ; WX 495 ; N uni15AE ; G 2108 +U 5551 ; WX 743 ; N uni15AF ; G 2109 +U 5598 ; WX 830 ; N uni15DE ; G 2110 +U 5601 ; WX 830 ; N uni15E1 ; G 2111 +U 5702 ; WX 496 ; N uni1646 ; G 2112 +U 5703 ; WX 496 ; N uni1647 ; G 2113 +U 5742 ; WX 413 ; N uni166E ; G 2114 +U 5743 ; WX 1238 ; N uni166F ; G 2115 +U 5744 ; WX 1591 ; N uni1670 ; G 2116 +U 5745 ; WX 2016 ; N uni1671 ; G 2117 +U 5746 ; WX 2016 ; N uni1672 ; G 2118 +U 5747 ; WX 1720 ; N uni1673 ; G 2119 +U 5748 ; WX 1678 ; N uni1674 ; G 2120 +U 5749 ; WX 2016 ; N uni1675 ; G 2121 +U 5750 ; WX 2016 ; N uni1676 ; G 2122 +U 5760 ; WX 543 ; N uni1680 ; G 2123 +U 5761 ; WX 637 ; N uni1681 ; G 2124 +U 5762 ; WX 945 ; N uni1682 ; G 2125 +U 5763 ; WX 1254 ; N uni1683 ; G 2126 +U 5764 ; WX 1563 ; N uni1684 ; G 2127 +U 5765 ; WX 1871 ; N uni1685 ; G 2128 +U 5766 ; WX 627 ; N uni1686 ; G 2129 +U 5767 ; WX 936 ; N uni1687 ; G 2130 +U 5768 ; WX 1254 ; N uni1688 ; G 2131 +U 5769 ; WX 1559 ; N uni1689 ; G 2132 +U 5770 ; WX 1871 ; N uni168A ; G 2133 +U 5771 ; WX 569 ; N uni168B ; G 2134 +U 5772 ; WX 877 ; N uni168C ; G 2135 +U 5773 ; WX 1187 ; N uni168D ; G 2136 +U 5774 ; WX 1497 ; N uni168E ; G 2137 +U 5775 ; WX 1807 ; N uni168F ; G 2138 +U 5776 ; WX 637 ; N uni1690 ; G 2139 +U 5777 ; WX 945 ; N uni1691 ; G 2140 +U 5778 ; WX 1240 ; N uni1692 ; G 2141 +U 5779 ; WX 1555 ; N uni1693 ; G 2142 +U 5780 ; WX 1871 ; N uni1694 ; G 2143 +U 5781 ; WX 569 ; N uni1695 ; G 2144 +U 5782 ; WX 569 ; N uni1696 ; G 2145 +U 5783 ; WX 789 ; N uni1697 ; G 2146 +U 5784 ; WX 1234 ; N uni1698 ; G 2147 +U 5785 ; WX 1559 ; N uni1699 ; G 2148 +U 5786 ; WX 740 ; N uni169A ; G 2149 +U 5787 ; WX 638 ; N uni169B ; G 2150 +U 5788 ; WX 638 ; N uni169C ; G 2151 +U 7424 ; WX 652 ; N uni1D00 ; G 2152 +U 7425 ; WX 833 ; N uni1D01 ; G 2153 +U 7426 ; WX 1048 ; N uni1D02 ; G 2154 +U 7427 ; WX 608 ; N uni1D03 ; G 2155 +U 7428 ; WX 593 ; N uni1D04 ; G 2156 +U 7429 ; WX 676 ; N uni1D05 ; G 2157 +U 7430 ; WX 676 ; N uni1D06 ; G 2158 +U 7431 ; WX 559 ; N uni1D07 ; G 2159 +U 7432 ; WX 557 ; N uni1D08 ; G 2160 +U 7433 ; WX 343 ; N uni1D09 ; G 2161 +U 7434 ; WX 494 ; N uni1D0A ; G 2162 +U 7435 ; WX 665 ; N uni1D0B ; G 2163 +U 7436 ; WX 539 ; N uni1D0C ; G 2164 +U 7437 ; WX 817 ; N uni1D0D ; G 2165 +U 7438 ; WX 701 ; N uni1D0E ; G 2166 +U 7439 ; WX 687 ; N uni1D0F ; G 2167 +U 7440 ; WX 593 ; N uni1D10 ; G 2168 +U 7441 ; WX 660 ; N uni1D11 ; G 2169 +U 7442 ; WX 660 ; N uni1D12 ; G 2170 +U 7443 ; WX 660 ; N uni1D13 ; G 2171 +U 7444 ; WX 1094 ; N uni1D14 ; G 2172 +U 7446 ; WX 687 ; N uni1D16 ; G 2173 +U 7447 ; WX 687 ; N uni1D17 ; G 2174 +U 7448 ; WX 556 ; N uni1D18 ; G 2175 +U 7449 ; WX 642 ; N uni1D19 ; G 2176 +U 7450 ; WX 642 ; N uni1D1A ; G 2177 +U 7451 ; WX 580 ; N uni1D1B ; G 2178 +U 7452 ; WX 634 ; N uni1D1C ; G 2179 +U 7453 ; WX 737 ; N uni1D1D ; G 2180 +U 7454 ; WX 948 ; N uni1D1E ; G 2181 +U 7455 ; WX 695 ; N uni1D1F ; G 2182 +U 7456 ; WX 652 ; N uni1D20 ; G 2183 +U 7457 ; WX 924 ; N uni1D21 ; G 2184 +U 7458 ; WX 582 ; N uni1D22 ; G 2185 +U 7459 ; WX 646 ; N uni1D23 ; G 2186 +U 7462 ; WX 539 ; N uni1D26 ; G 2187 +U 7463 ; WX 652 ; N uni1D27 ; G 2188 +U 7464 ; WX 691 ; N uni1D28 ; G 2189 +U 7465 ; WX 556 ; N uni1D29 ; G 2190 +U 7466 ; WX 781 ; N uni1D2A ; G 2191 +U 7467 ; WX 732 ; N uni1D2B ; G 2192 +U 7468 ; WX 487 ; N uni1D2C ; G 2193 +U 7469 ; WX 683 ; N uni1D2D ; G 2194 +U 7470 ; WX 480 ; N uni1D2E ; G 2195 +U 7472 ; WX 523 ; N uni1D30 ; G 2196 +U 7473 ; WX 430 ; N uni1D31 ; G 2197 +U 7474 ; WX 430 ; N uni1D32 ; G 2198 +U 7475 ; WX 517 ; N uni1D33 ; G 2199 +U 7476 ; WX 527 ; N uni1D34 ; G 2200 +U 7477 ; WX 234 ; N uni1D35 ; G 2201 +U 7478 ; WX 234 ; N uni1D36 ; G 2202 +U 7479 ; WX 488 ; N uni1D37 ; G 2203 +U 7480 ; WX 401 ; N uni1D38 ; G 2204 +U 7481 ; WX 626 ; N uni1D39 ; G 2205 +U 7482 ; WX 527 ; N uni1D3A ; G 2206 +U 7483 ; WX 527 ; N uni1D3B ; G 2207 +U 7484 ; WX 535 ; N uni1D3C ; G 2208 +U 7485 ; WX 509 ; N uni1D3D ; G 2209 +U 7486 ; WX 461 ; N uni1D3E ; G 2210 +U 7487 ; WX 485 ; N uni1D3F ; G 2211 +U 7488 ; WX 430 ; N uni1D40 ; G 2212 +U 7489 ; WX 511 ; N uni1D41 ; G 2213 +U 7490 ; WX 695 ; N uni1D42 ; G 2214 +U 7491 ; WX 458 ; N uni1D43 ; G 2215 +U 7492 ; WX 458 ; N uni1D44 ; G 2216 +U 7493 ; WX 479 ; N uni1D45 ; G 2217 +U 7494 ; WX 712 ; N uni1D46 ; G 2218 +U 7495 ; WX 479 ; N uni1D47 ; G 2219 +U 7496 ; WX 479 ; N uni1D48 ; G 2220 +U 7497 ; WX 479 ; N uni1D49 ; G 2221 +U 7498 ; WX 479 ; N uni1D4A ; G 2222 +U 7499 ; WX 386 ; N uni1D4B ; G 2223 +U 7500 ; WX 386 ; N uni1D4C ; G 2224 +U 7501 ; WX 479 ; N uni1D4D ; G 2225 +U 7502 ; WX 219 ; N uni1D4E ; G 2226 +U 7503 ; WX 487 ; N uni1D4F ; G 2227 +U 7504 ; WX 664 ; N uni1D50 ; G 2228 +U 7505 ; WX 456 ; N uni1D51 ; G 2229 +U 7506 ; WX 488 ; N uni1D52 ; G 2230 +U 7507 ; WX 414 ; N uni1D53 ; G 2231 +U 7508 ; WX 488 ; N uni1D54 ; G 2232 +U 7509 ; WX 488 ; N uni1D55 ; G 2233 +U 7510 ; WX 479 ; N uni1D56 ; G 2234 +U 7511 ; WX 388 ; N uni1D57 ; G 2235 +U 7512 ; WX 456 ; N uni1D58 ; G 2236 +U 7513 ; WX 462 ; N uni1D59 ; G 2237 +U 7514 ; WX 664 ; N uni1D5A ; G 2238 +U 7515 ; WX 501 ; N uni1D5B ; G 2239 +U 7517 ; WX 451 ; N uni1D5D ; G 2240 +U 7518 ; WX 429 ; N uni1D5E ; G 2241 +U 7519 ; WX 433 ; N uni1D5F ; G 2242 +U 7520 ; WX 493 ; N uni1D60 ; G 2243 +U 7521 ; WX 406 ; N uni1D61 ; G 2244 +U 7522 ; WX 219 ; N uni1D62 ; G 2245 +U 7523 ; WX 315 ; N uni1D63 ; G 2246 +U 7524 ; WX 456 ; N uni1D64 ; G 2247 +U 7525 ; WX 501 ; N uni1D65 ; G 2248 +U 7526 ; WX 451 ; N uni1D66 ; G 2249 +U 7527 ; WX 429 ; N uni1D67 ; G 2250 +U 7528 ; WX 451 ; N uni1D68 ; G 2251 +U 7529 ; WX 493 ; N uni1D69 ; G 2252 +U 7530 ; WX 406 ; N uni1D6A ; G 2253 +U 7543 ; WX 716 ; N uni1D77 ; G 2254 +U 7544 ; WX 527 ; N uni1D78 ; G 2255 +U 7547 ; WX 545 ; N uni1D7B ; G 2256 +U 7549 ; WX 747 ; N uni1D7D ; G 2257 +U 7557 ; WX 514 ; N uni1D85 ; G 2258 +U 7579 ; WX 479 ; N uni1D9B ; G 2259 +U 7580 ; WX 414 ; N uni1D9C ; G 2260 +U 7581 ; WX 414 ; N uni1D9D ; G 2261 +U 7582 ; WX 488 ; N uni1D9E ; G 2262 +U 7583 ; WX 386 ; N uni1D9F ; G 2263 +U 7584 ; WX 377 ; N uni1DA0 ; G 2264 +U 7585 ; WX 348 ; N uni1DA1 ; G 2265 +U 7586 ; WX 479 ; N uni1DA2 ; G 2266 +U 7587 ; WX 456 ; N uni1DA3 ; G 2267 +U 7588 ; WX 347 ; N uni1DA4 ; G 2268 +U 7589 ; WX 281 ; N uni1DA5 ; G 2269 +U 7590 ; WX 347 ; N uni1DA6 ; G 2270 +U 7591 ; WX 347 ; N uni1DA7 ; G 2271 +U 7592 ; WX 431 ; N uni1DA8 ; G 2272 +U 7593 ; WX 326 ; N uni1DA9 ; G 2273 +U 7594 ; WX 330 ; N uni1DAA ; G 2274 +U 7595 ; WX 370 ; N uni1DAB ; G 2275 +U 7596 ; WX 664 ; N uni1DAC ; G 2276 +U 7597 ; WX 664 ; N uni1DAD ; G 2277 +U 7598 ; WX 562 ; N uni1DAE ; G 2278 +U 7599 ; WX 562 ; N uni1DAF ; G 2279 +U 7600 ; WX 448 ; N uni1DB0 ; G 2280 +U 7601 ; WX 488 ; N uni1DB1 ; G 2281 +U 7602 ; WX 542 ; N uni1DB2 ; G 2282 +U 7603 ; WX 422 ; N uni1DB3 ; G 2283 +U 7604 ; WX 396 ; N uni1DB4 ; G 2284 +U 7605 ; WX 388 ; N uni1DB5 ; G 2285 +U 7606 ; WX 583 ; N uni1DB6 ; G 2286 +U 7607 ; WX 494 ; N uni1DB7 ; G 2287 +U 7608 ; WX 399 ; N uni1DB8 ; G 2288 +U 7609 ; WX 451 ; N uni1DB9 ; G 2289 +U 7610 ; WX 501 ; N uni1DBA ; G 2290 +U 7611 ; WX 417 ; N uni1DBB ; G 2291 +U 7612 ; WX 523 ; N uni1DBC ; G 2292 +U 7613 ; WX 470 ; N uni1DBD ; G 2293 +U 7614 ; WX 455 ; N uni1DBE ; G 2294 +U 7615 ; WX 425 ; N uni1DBF ; G 2295 +U 7620 ; WX 0 ; N uni1DC4 ; G 2296 +U 7621 ; WX 0 ; N uni1DC5 ; G 2297 +U 7622 ; WX 0 ; N uni1DC6 ; G 2298 +U 7623 ; WX 0 ; N uni1DC7 ; G 2299 +U 7624 ; WX 0 ; N uni1DC8 ; G 2300 +U 7625 ; WX 0 ; N uni1DC9 ; G 2301 +U 7680 ; WX 774 ; N uni1E00 ; G 2302 +U 7681 ; WX 675 ; N uni1E01 ; G 2303 +U 7682 ; WX 762 ; N uni1E02 ; G 2304 +U 7683 ; WX 716 ; N uni1E03 ; G 2305 +U 7684 ; WX 762 ; N uni1E04 ; G 2306 +U 7685 ; WX 716 ; N uni1E05 ; G 2307 +U 7686 ; WX 762 ; N uni1E06 ; G 2308 +U 7687 ; WX 716 ; N uni1E07 ; G 2309 +U 7688 ; WX 734 ; N uni1E08 ; G 2310 +U 7689 ; WX 593 ; N uni1E09 ; G 2311 +U 7690 ; WX 830 ; N uni1E0A ; G 2312 +U 7691 ; WX 716 ; N uni1E0B ; G 2313 +U 7692 ; WX 830 ; N uni1E0C ; G 2314 +U 7693 ; WX 716 ; N uni1E0D ; G 2315 +U 7694 ; WX 830 ; N uni1E0E ; G 2316 +U 7695 ; WX 716 ; N uni1E0F ; G 2317 +U 7696 ; WX 830 ; N uni1E10 ; G 2318 +U 7697 ; WX 716 ; N uni1E11 ; G 2319 +U 7698 ; WX 830 ; N uni1E12 ; G 2320 +U 7699 ; WX 716 ; N uni1E13 ; G 2321 +U 7700 ; WX 683 ; N uni1E14 ; G 2322 +U 7701 ; WX 678 ; N uni1E15 ; G 2323 +U 7702 ; WX 683 ; N uni1E16 ; G 2324 +U 7703 ; WX 678 ; N uni1E17 ; G 2325 +U 7704 ; WX 683 ; N uni1E18 ; G 2326 +U 7705 ; WX 678 ; N uni1E19 ; G 2327 +U 7706 ; WX 683 ; N uni1E1A ; G 2328 +U 7707 ; WX 678 ; N uni1E1B ; G 2329 +U 7708 ; WX 683 ; N uni1E1C ; G 2330 +U 7709 ; WX 678 ; N uni1E1D ; G 2331 +U 7710 ; WX 683 ; N uni1E1E ; G 2332 +U 7711 ; WX 435 ; N uni1E1F ; G 2333 +U 7712 ; WX 821 ; N uni1E20 ; G 2334 +U 7713 ; WX 716 ; N uni1E21 ; G 2335 +U 7714 ; WX 837 ; N uni1E22 ; G 2336 +U 7715 ; WX 712 ; N uni1E23 ; G 2337 +U 7716 ; WX 837 ; N uni1E24 ; G 2338 +U 7717 ; WX 712 ; N uni1E25 ; G 2339 +U 7718 ; WX 837 ; N uni1E26 ; G 2340 +U 7719 ; WX 712 ; N uni1E27 ; G 2341 +U 7720 ; WX 837 ; N uni1E28 ; G 2342 +U 7721 ; WX 712 ; N uni1E29 ; G 2343 +U 7722 ; WX 837 ; N uni1E2A ; G 2344 +U 7723 ; WX 712 ; N uni1E2B ; G 2345 +U 7724 ; WX 372 ; N uni1E2C ; G 2346 +U 7725 ; WX 343 ; N uni1E2D ; G 2347 +U 7726 ; WX 372 ; N uni1E2E ; G 2348 +U 7727 ; WX 343 ; N uni1E2F ; G 2349 +U 7728 ; WX 775 ; N uni1E30 ; G 2350 +U 7729 ; WX 665 ; N uni1E31 ; G 2351 +U 7730 ; WX 775 ; N uni1E32 ; G 2352 +U 7731 ; WX 665 ; N uni1E33 ; G 2353 +U 7732 ; WX 775 ; N uni1E34 ; G 2354 +U 7733 ; WX 665 ; N uni1E35 ; G 2355 +U 7734 ; WX 637 ; N uni1E36 ; G 2356 +U 7735 ; WX 343 ; N uni1E37 ; G 2357 +U 7736 ; WX 637 ; N uni1E38 ; G 2358 +U 7737 ; WX 343 ; N uni1E39 ; G 2359 +U 7738 ; WX 637 ; N uni1E3A ; G 2360 +U 7739 ; WX 343 ; N uni1E3B ; G 2361 +U 7740 ; WX 637 ; N uni1E3C ; G 2362 +U 7741 ; WX 343 ; N uni1E3D ; G 2363 +U 7742 ; WX 995 ; N uni1E3E ; G 2364 +U 7743 ; WX 1042 ; N uni1E3F ; G 2365 +U 7744 ; WX 995 ; N uni1E40 ; G 2366 +U 7745 ; WX 1042 ; N uni1E41 ; G 2367 +U 7746 ; WX 995 ; N uni1E42 ; G 2368 +U 7747 ; WX 1042 ; N uni1E43 ; G 2369 +U 7748 ; WX 837 ; N uni1E44 ; G 2370 +U 7749 ; WX 712 ; N uni1E45 ; G 2371 +U 7750 ; WX 837 ; N uni1E46 ; G 2372 +U 7751 ; WX 712 ; N uni1E47 ; G 2373 +U 7752 ; WX 837 ; N uni1E48 ; G 2374 +U 7753 ; WX 712 ; N uni1E49 ; G 2375 +U 7754 ; WX 837 ; N uni1E4A ; G 2376 +U 7755 ; WX 712 ; N uni1E4B ; G 2377 +U 7756 ; WX 850 ; N uni1E4C ; G 2378 +U 7757 ; WX 687 ; N uni1E4D ; G 2379 +U 7758 ; WX 850 ; N uni1E4E ; G 2380 +U 7759 ; WX 687 ; N uni1E4F ; G 2381 +U 7760 ; WX 850 ; N uni1E50 ; G 2382 +U 7761 ; WX 687 ; N uni1E51 ; G 2383 +U 7762 ; WX 850 ; N uni1E52 ; G 2384 +U 7763 ; WX 687 ; N uni1E53 ; G 2385 +U 7764 ; WX 733 ; N uni1E54 ; G 2386 +U 7765 ; WX 716 ; N uni1E55 ; G 2387 +U 7766 ; WX 733 ; N uni1E56 ; G 2388 +U 7767 ; WX 716 ; N uni1E57 ; G 2389 +U 7768 ; WX 770 ; N uni1E58 ; G 2390 +U 7769 ; WX 493 ; N uni1E59 ; G 2391 +U 7770 ; WX 770 ; N uni1E5A ; G 2392 +U 7771 ; WX 493 ; N uni1E5B ; G 2393 +U 7772 ; WX 770 ; N uni1E5C ; G 2394 +U 7773 ; WX 493 ; N uni1E5D ; G 2395 +U 7774 ; WX 770 ; N uni1E5E ; G 2396 +U 7775 ; WX 493 ; N uni1E5F ; G 2397 +U 7776 ; WX 720 ; N uni1E60 ; G 2398 +U 7777 ; WX 595 ; N uni1E61 ; G 2399 +U 7778 ; WX 720 ; N uni1E62 ; G 2400 +U 7779 ; WX 595 ; N uni1E63 ; G 2401 +U 7780 ; WX 720 ; N uni1E64 ; G 2402 +U 7781 ; WX 595 ; N uni1E65 ; G 2403 +U 7782 ; WX 720 ; N uni1E66 ; G 2404 +U 7783 ; WX 595 ; N uni1E67 ; G 2405 +U 7784 ; WX 720 ; N uni1E68 ; G 2406 +U 7785 ; WX 595 ; N uni1E69 ; G 2407 +U 7786 ; WX 682 ; N uni1E6A ; G 2408 +U 7787 ; WX 478 ; N uni1E6B ; G 2409 +U 7788 ; WX 682 ; N uni1E6C ; G 2410 +U 7789 ; WX 478 ; N uni1E6D ; G 2411 +U 7790 ; WX 682 ; N uni1E6E ; G 2412 +U 7791 ; WX 478 ; N uni1E6F ; G 2413 +U 7792 ; WX 682 ; N uni1E70 ; G 2414 +U 7793 ; WX 478 ; N uni1E71 ; G 2415 +U 7794 ; WX 812 ; N uni1E72 ; G 2416 +U 7795 ; WX 712 ; N uni1E73 ; G 2417 +U 7796 ; WX 812 ; N uni1E74 ; G 2418 +U 7797 ; WX 712 ; N uni1E75 ; G 2419 +U 7798 ; WX 812 ; N uni1E76 ; G 2420 +U 7799 ; WX 712 ; N uni1E77 ; G 2421 +U 7800 ; WX 812 ; N uni1E78 ; G 2422 +U 7801 ; WX 712 ; N uni1E79 ; G 2423 +U 7802 ; WX 812 ; N uni1E7A ; G 2424 +U 7803 ; WX 712 ; N uni1E7B ; G 2425 +U 7804 ; WX 774 ; N uni1E7C ; G 2426 +U 7805 ; WX 652 ; N uni1E7D ; G 2427 +U 7806 ; WX 774 ; N uni1E7E ; G 2428 +U 7807 ; WX 652 ; N uni1E7F ; G 2429 +U 7808 ; WX 1103 ; N Wgrave ; G 2430 +U 7809 ; WX 924 ; N wgrave ; G 2431 +U 7810 ; WX 1103 ; N Wacute ; G 2432 +U 7811 ; WX 924 ; N wacute ; G 2433 +U 7812 ; WX 1103 ; N Wdieresis ; G 2434 +U 7813 ; WX 924 ; N wdieresis ; G 2435 +U 7814 ; WX 1103 ; N uni1E86 ; G 2436 +U 7815 ; WX 924 ; N uni1E87 ; G 2437 +U 7816 ; WX 1103 ; N uni1E88 ; G 2438 +U 7817 ; WX 924 ; N uni1E89 ; G 2439 +U 7818 ; WX 771 ; N uni1E8A ; G 2440 +U 7819 ; WX 645 ; N uni1E8B ; G 2441 +U 7820 ; WX 771 ; N uni1E8C ; G 2442 +U 7821 ; WX 645 ; N uni1E8D ; G 2443 +U 7822 ; WX 724 ; N uni1E8E ; G 2444 +U 7823 ; WX 652 ; N uni1E8F ; G 2445 +U 7824 ; WX 725 ; N uni1E90 ; G 2446 +U 7825 ; WX 582 ; N uni1E91 ; G 2447 +U 7826 ; WX 725 ; N uni1E92 ; G 2448 +U 7827 ; WX 582 ; N uni1E93 ; G 2449 +U 7828 ; WX 725 ; N uni1E94 ; G 2450 +U 7829 ; WX 582 ; N uni1E95 ; G 2451 +U 7830 ; WX 712 ; N uni1E96 ; G 2452 +U 7831 ; WX 478 ; N uni1E97 ; G 2453 +U 7832 ; WX 924 ; N uni1E98 ; G 2454 +U 7833 ; WX 652 ; N uni1E99 ; G 2455 +U 7834 ; WX 675 ; N uni1E9A ; G 2456 +U 7835 ; WX 435 ; N uni1E9B ; G 2457 +U 7836 ; WX 435 ; N uni1E9C ; G 2458 +U 7837 ; WX 435 ; N uni1E9D ; G 2459 +U 7838 ; WX 896 ; N uni1E9E ; G 2460 +U 7839 ; WX 687 ; N uni1E9F ; G 2461 +U 7840 ; WX 774 ; N uni1EA0 ; G 2462 +U 7841 ; WX 675 ; N uni1EA1 ; G 2463 +U 7842 ; WX 774 ; N uni1EA2 ; G 2464 +U 7843 ; WX 675 ; N uni1EA3 ; G 2465 +U 7844 ; WX 774 ; N uni1EA4 ; G 2466 +U 7845 ; WX 675 ; N uni1EA5 ; G 2467 +U 7846 ; WX 774 ; N uni1EA6 ; G 2468 +U 7847 ; WX 675 ; N uni1EA7 ; G 2469 +U 7848 ; WX 774 ; N uni1EA8 ; G 2470 +U 7849 ; WX 675 ; N uni1EA9 ; G 2471 +U 7850 ; WX 774 ; N uni1EAA ; G 2472 +U 7851 ; WX 675 ; N uni1EAB ; G 2473 +U 7852 ; WX 774 ; N uni1EAC ; G 2474 +U 7853 ; WX 675 ; N uni1EAD ; G 2475 +U 7854 ; WX 774 ; N uni1EAE ; G 2476 +U 7855 ; WX 675 ; N uni1EAF ; G 2477 +U 7856 ; WX 774 ; N uni1EB0 ; G 2478 +U 7857 ; WX 675 ; N uni1EB1 ; G 2479 +U 7858 ; WX 774 ; N uni1EB2 ; G 2480 +U 7859 ; WX 675 ; N uni1EB3 ; G 2481 +U 7860 ; WX 774 ; N uni1EB4 ; G 2482 +U 7861 ; WX 675 ; N uni1EB5 ; G 2483 +U 7862 ; WX 774 ; N uni1EB6 ; G 2484 +U 7863 ; WX 675 ; N uni1EB7 ; G 2485 +U 7864 ; WX 683 ; N uni1EB8 ; G 2486 +U 7865 ; WX 678 ; N uni1EB9 ; G 2487 +U 7866 ; WX 683 ; N uni1EBA ; G 2488 +U 7867 ; WX 678 ; N uni1EBB ; G 2489 +U 7868 ; WX 683 ; N uni1EBC ; G 2490 +U 7869 ; WX 678 ; N uni1EBD ; G 2491 +U 7870 ; WX 683 ; N uni1EBE ; G 2492 +U 7871 ; WX 678 ; N uni1EBF ; G 2493 +U 7872 ; WX 683 ; N uni1EC0 ; G 2494 +U 7873 ; WX 678 ; N uni1EC1 ; G 2495 +U 7874 ; WX 683 ; N uni1EC2 ; G 2496 +U 7875 ; WX 678 ; N uni1EC3 ; G 2497 +U 7876 ; WX 683 ; N uni1EC4 ; G 2498 +U 7877 ; WX 678 ; N uni1EC5 ; G 2499 +U 7878 ; WX 683 ; N uni1EC6 ; G 2500 +U 7879 ; WX 678 ; N uni1EC7 ; G 2501 +U 7880 ; WX 372 ; N uni1EC8 ; G 2502 +U 7881 ; WX 343 ; N uni1EC9 ; G 2503 +U 7882 ; WX 372 ; N uni1ECA ; G 2504 +U 7883 ; WX 343 ; N uni1ECB ; G 2505 +U 7884 ; WX 850 ; N uni1ECC ; G 2506 +U 7885 ; WX 687 ; N uni1ECD ; G 2507 +U 7886 ; WX 850 ; N uni1ECE ; G 2508 +U 7887 ; WX 687 ; N uni1ECF ; G 2509 +U 7888 ; WX 850 ; N uni1ED0 ; G 2510 +U 7889 ; WX 687 ; N uni1ED1 ; G 2511 +U 7890 ; WX 850 ; N uni1ED2 ; G 2512 +U 7891 ; WX 687 ; N uni1ED3 ; G 2513 +U 7892 ; WX 850 ; N uni1ED4 ; G 2514 +U 7893 ; WX 687 ; N uni1ED5 ; G 2515 +U 7894 ; WX 850 ; N uni1ED6 ; G 2516 +U 7895 ; WX 687 ; N uni1ED7 ; G 2517 +U 7896 ; WX 850 ; N uni1ED8 ; G 2518 +U 7897 ; WX 687 ; N uni1ED9 ; G 2519 +U 7898 ; WX 874 ; N uni1EDA ; G 2520 +U 7899 ; WX 687 ; N uni1EDB ; G 2521 +U 7900 ; WX 874 ; N uni1EDC ; G 2522 +U 7901 ; WX 687 ; N uni1EDD ; G 2523 +U 7902 ; WX 874 ; N uni1EDE ; G 2524 +U 7903 ; WX 687 ; N uni1EDF ; G 2525 +U 7904 ; WX 874 ; N uni1EE0 ; G 2526 +U 7905 ; WX 687 ; N uni1EE1 ; G 2527 +U 7906 ; WX 874 ; N uni1EE2 ; G 2528 +U 7907 ; WX 687 ; N uni1EE3 ; G 2529 +U 7908 ; WX 812 ; N uni1EE4 ; G 2530 +U 7909 ; WX 712 ; N uni1EE5 ; G 2531 +U 7910 ; WX 812 ; N uni1EE6 ; G 2532 +U 7911 ; WX 712 ; N uni1EE7 ; G 2533 +U 7912 ; WX 835 ; N uni1EE8 ; G 2534 +U 7913 ; WX 712 ; N uni1EE9 ; G 2535 +U 7914 ; WX 835 ; N uni1EEA ; G 2536 +U 7915 ; WX 712 ; N uni1EEB ; G 2537 +U 7916 ; WX 835 ; N uni1EEC ; G 2538 +U 7917 ; WX 712 ; N uni1EED ; G 2539 +U 7918 ; WX 835 ; N uni1EEE ; G 2540 +U 7919 ; WX 712 ; N uni1EEF ; G 2541 +U 7920 ; WX 835 ; N uni1EF0 ; G 2542 +U 7921 ; WX 712 ; N uni1EF1 ; G 2543 +U 7922 ; WX 724 ; N Ygrave ; G 2544 +U 7923 ; WX 652 ; N ygrave ; G 2545 +U 7924 ; WX 724 ; N uni1EF4 ; G 2546 +U 7925 ; WX 652 ; N uni1EF5 ; G 2547 +U 7926 ; WX 724 ; N uni1EF6 ; G 2548 +U 7927 ; WX 652 ; N uni1EF7 ; G 2549 +U 7928 ; WX 724 ; N uni1EF8 ; G 2550 +U 7929 ; WX 652 ; N uni1EF9 ; G 2551 +U 7930 ; WX 953 ; N uni1EFA ; G 2552 +U 7931 ; WX 644 ; N uni1EFB ; G 2553 +U 7936 ; WX 687 ; N uni1F00 ; G 2554 +U 7937 ; WX 687 ; N uni1F01 ; G 2555 +U 7938 ; WX 687 ; N uni1F02 ; G 2556 +U 7939 ; WX 687 ; N uni1F03 ; G 2557 +U 7940 ; WX 687 ; N uni1F04 ; G 2558 +U 7941 ; WX 687 ; N uni1F05 ; G 2559 +U 7942 ; WX 687 ; N uni1F06 ; G 2560 +U 7943 ; WX 687 ; N uni1F07 ; G 2561 +U 7944 ; WX 774 ; N uni1F08 ; G 2562 +U 7945 ; WX 774 ; N uni1F09 ; G 2563 +U 7946 ; WX 1041 ; N uni1F0A ; G 2564 +U 7947 ; WX 1043 ; N uni1F0B ; G 2565 +U 7948 ; WX 935 ; N uni1F0C ; G 2566 +U 7949 ; WX 963 ; N uni1F0D ; G 2567 +U 7950 ; WX 835 ; N uni1F0E ; G 2568 +U 7951 ; WX 859 ; N uni1F0F ; G 2569 +U 7952 ; WX 557 ; N uni1F10 ; G 2570 +U 7953 ; WX 557 ; N uni1F11 ; G 2571 +U 7954 ; WX 557 ; N uni1F12 ; G 2572 +U 7955 ; WX 557 ; N uni1F13 ; G 2573 +U 7956 ; WX 557 ; N uni1F14 ; G 2574 +U 7957 ; WX 557 ; N uni1F15 ; G 2575 +U 7960 ; WX 792 ; N uni1F18 ; G 2576 +U 7961 ; WX 794 ; N uni1F19 ; G 2577 +U 7962 ; WX 1100 ; N uni1F1A ; G 2578 +U 7963 ; WX 1096 ; N uni1F1B ; G 2579 +U 7964 ; WX 1023 ; N uni1F1C ; G 2580 +U 7965 ; WX 1052 ; N uni1F1D ; G 2581 +U 7968 ; WX 712 ; N uni1F20 ; G 2582 +U 7969 ; WX 712 ; N uni1F21 ; G 2583 +U 7970 ; WX 712 ; N uni1F22 ; G 2584 +U 7971 ; WX 712 ; N uni1F23 ; G 2585 +U 7972 ; WX 712 ; N uni1F24 ; G 2586 +U 7973 ; WX 712 ; N uni1F25 ; G 2587 +U 7974 ; WX 712 ; N uni1F26 ; G 2588 +U 7975 ; WX 712 ; N uni1F27 ; G 2589 +U 7976 ; WX 945 ; N uni1F28 ; G 2590 +U 7977 ; WX 951 ; N uni1F29 ; G 2591 +U 7978 ; WX 1250 ; N uni1F2A ; G 2592 +U 7979 ; WX 1250 ; N uni1F2B ; G 2593 +U 7980 ; WX 1180 ; N uni1F2C ; G 2594 +U 7981 ; WX 1206 ; N uni1F2D ; G 2595 +U 7982 ; WX 1054 ; N uni1F2E ; G 2596 +U 7983 ; WX 1063 ; N uni1F2F ; G 2597 +U 7984 ; WX 390 ; N uni1F30 ; G 2598 +U 7985 ; WX 390 ; N uni1F31 ; G 2599 +U 7986 ; WX 390 ; N uni1F32 ; G 2600 +U 7987 ; WX 390 ; N uni1F33 ; G 2601 +U 7988 ; WX 390 ; N uni1F34 ; G 2602 +U 7989 ; WX 390 ; N uni1F35 ; G 2603 +U 7990 ; WX 390 ; N uni1F36 ; G 2604 +U 7991 ; WX 390 ; N uni1F37 ; G 2605 +U 7992 ; WX 483 ; N uni1F38 ; G 2606 +U 7993 ; WX 489 ; N uni1F39 ; G 2607 +U 7994 ; WX 777 ; N uni1F3A ; G 2608 +U 7995 ; WX 785 ; N uni1F3B ; G 2609 +U 7996 ; WX 712 ; N uni1F3C ; G 2610 +U 7997 ; WX 738 ; N uni1F3D ; G 2611 +U 7998 ; WX 604 ; N uni1F3E ; G 2612 +U 7999 ; WX 604 ; N uni1F3F ; G 2613 +U 8000 ; WX 687 ; N uni1F40 ; G 2614 +U 8001 ; WX 687 ; N uni1F41 ; G 2615 +U 8002 ; WX 687 ; N uni1F42 ; G 2616 +U 8003 ; WX 687 ; N uni1F43 ; G 2617 +U 8004 ; WX 687 ; N uni1F44 ; G 2618 +U 8005 ; WX 687 ; N uni1F45 ; G 2619 +U 8008 ; WX 892 ; N uni1F48 ; G 2620 +U 8009 ; WX 933 ; N uni1F49 ; G 2621 +U 8010 ; WX 1221 ; N uni1F4A ; G 2622 +U 8011 ; WX 1224 ; N uni1F4B ; G 2623 +U 8012 ; WX 1053 ; N uni1F4C ; G 2624 +U 8013 ; WX 1082 ; N uni1F4D ; G 2625 +U 8016 ; WX 675 ; N uni1F50 ; G 2626 +U 8017 ; WX 675 ; N uni1F51 ; G 2627 +U 8018 ; WX 675 ; N uni1F52 ; G 2628 +U 8019 ; WX 675 ; N uni1F53 ; G 2629 +U 8020 ; WX 675 ; N uni1F54 ; G 2630 +U 8021 ; WX 675 ; N uni1F55 ; G 2631 +U 8022 ; WX 675 ; N uni1F56 ; G 2632 +U 8023 ; WX 675 ; N uni1F57 ; G 2633 +U 8025 ; WX 930 ; N uni1F59 ; G 2634 +U 8027 ; WX 1184 ; N uni1F5B ; G 2635 +U 8029 ; WX 1199 ; N uni1F5D ; G 2636 +U 8031 ; WX 1049 ; N uni1F5F ; G 2637 +U 8032 ; WX 869 ; N uni1F60 ; G 2638 +U 8033 ; WX 869 ; N uni1F61 ; G 2639 +U 8034 ; WX 869 ; N uni1F62 ; G 2640 +U 8035 ; WX 869 ; N uni1F63 ; G 2641 +U 8036 ; WX 869 ; N uni1F64 ; G 2642 +U 8037 ; WX 869 ; N uni1F65 ; G 2643 +U 8038 ; WX 869 ; N uni1F66 ; G 2644 +U 8039 ; WX 869 ; N uni1F67 ; G 2645 +U 8040 ; WX 909 ; N uni1F68 ; G 2646 +U 8041 ; WX 958 ; N uni1F69 ; G 2647 +U 8042 ; WX 1246 ; N uni1F6A ; G 2648 +U 8043 ; WX 1251 ; N uni1F6B ; G 2649 +U 8044 ; WX 1076 ; N uni1F6C ; G 2650 +U 8045 ; WX 1105 ; N uni1F6D ; G 2651 +U 8046 ; WX 1028 ; N uni1F6E ; G 2652 +U 8047 ; WX 1076 ; N uni1F6F ; G 2653 +U 8048 ; WX 687 ; N uni1F70 ; G 2654 +U 8049 ; WX 687 ; N uni1F71 ; G 2655 +U 8050 ; WX 557 ; N uni1F72 ; G 2656 +U 8051 ; WX 557 ; N uni1F73 ; G 2657 +U 8052 ; WX 712 ; N uni1F74 ; G 2658 +U 8053 ; WX 712 ; N uni1F75 ; G 2659 +U 8054 ; WX 390 ; N uni1F76 ; G 2660 +U 8055 ; WX 390 ; N uni1F77 ; G 2661 +U 8056 ; WX 687 ; N uni1F78 ; G 2662 +U 8057 ; WX 687 ; N uni1F79 ; G 2663 +U 8058 ; WX 675 ; N uni1F7A ; G 2664 +U 8059 ; WX 675 ; N uni1F7B ; G 2665 +U 8060 ; WX 869 ; N uni1F7C ; G 2666 +U 8061 ; WX 869 ; N uni1F7D ; G 2667 +U 8064 ; WX 687 ; N uni1F80 ; G 2668 +U 8065 ; WX 687 ; N uni1F81 ; G 2669 +U 8066 ; WX 687 ; N uni1F82 ; G 2670 +U 8067 ; WX 687 ; N uni1F83 ; G 2671 +U 8068 ; WX 687 ; N uni1F84 ; G 2672 +U 8069 ; WX 687 ; N uni1F85 ; G 2673 +U 8070 ; WX 687 ; N uni1F86 ; G 2674 +U 8071 ; WX 687 ; N uni1F87 ; G 2675 +U 8072 ; WX 774 ; N uni1F88 ; G 2676 +U 8073 ; WX 774 ; N uni1F89 ; G 2677 +U 8074 ; WX 1041 ; N uni1F8A ; G 2678 +U 8075 ; WX 1043 ; N uni1F8B ; G 2679 +U 8076 ; WX 935 ; N uni1F8C ; G 2680 +U 8077 ; WX 963 ; N uni1F8D ; G 2681 +U 8078 ; WX 835 ; N uni1F8E ; G 2682 +U 8079 ; WX 859 ; N uni1F8F ; G 2683 +U 8080 ; WX 712 ; N uni1F90 ; G 2684 +U 8081 ; WX 712 ; N uni1F91 ; G 2685 +U 8082 ; WX 712 ; N uni1F92 ; G 2686 +U 8083 ; WX 712 ; N uni1F93 ; G 2687 +U 8084 ; WX 712 ; N uni1F94 ; G 2688 +U 8085 ; WX 712 ; N uni1F95 ; G 2689 +U 8086 ; WX 712 ; N uni1F96 ; G 2690 +U 8087 ; WX 712 ; N uni1F97 ; G 2691 +U 8088 ; WX 945 ; N uni1F98 ; G 2692 +U 8089 ; WX 951 ; N uni1F99 ; G 2693 +U 8090 ; WX 1250 ; N uni1F9A ; G 2694 +U 8091 ; WX 1250 ; N uni1F9B ; G 2695 +U 8092 ; WX 1180 ; N uni1F9C ; G 2696 +U 8093 ; WX 1206 ; N uni1F9D ; G 2697 +U 8094 ; WX 1054 ; N uni1F9E ; G 2698 +U 8095 ; WX 1063 ; N uni1F9F ; G 2699 +U 8096 ; WX 869 ; N uni1FA0 ; G 2700 +U 8097 ; WX 869 ; N uni1FA1 ; G 2701 +U 8098 ; WX 869 ; N uni1FA2 ; G 2702 +U 8099 ; WX 869 ; N uni1FA3 ; G 2703 +U 8100 ; WX 869 ; N uni1FA4 ; G 2704 +U 8101 ; WX 869 ; N uni1FA5 ; G 2705 +U 8102 ; WX 869 ; N uni1FA6 ; G 2706 +U 8103 ; WX 869 ; N uni1FA7 ; G 2707 +U 8104 ; WX 909 ; N uni1FA8 ; G 2708 +U 8105 ; WX 958 ; N uni1FA9 ; G 2709 +U 8106 ; WX 1246 ; N uni1FAA ; G 2710 +U 8107 ; WX 1251 ; N uni1FAB ; G 2711 +U 8108 ; WX 1076 ; N uni1FAC ; G 2712 +U 8109 ; WX 1105 ; N uni1FAD ; G 2713 +U 8110 ; WX 1028 ; N uni1FAE ; G 2714 +U 8111 ; WX 1076 ; N uni1FAF ; G 2715 +U 8112 ; WX 687 ; N uni1FB0 ; G 2716 +U 8113 ; WX 687 ; N uni1FB1 ; G 2717 +U 8114 ; WX 687 ; N uni1FB2 ; G 2718 +U 8115 ; WX 687 ; N uni1FB3 ; G 2719 +U 8116 ; WX 687 ; N uni1FB4 ; G 2720 +U 8118 ; WX 687 ; N uni1FB6 ; G 2721 +U 8119 ; WX 687 ; N uni1FB7 ; G 2722 +U 8120 ; WX 774 ; N uni1FB8 ; G 2723 +U 8121 ; WX 774 ; N uni1FB9 ; G 2724 +U 8122 ; WX 876 ; N uni1FBA ; G 2725 +U 8123 ; WX 797 ; N uni1FBB ; G 2726 +U 8124 ; WX 774 ; N uni1FBC ; G 2727 +U 8125 ; WX 500 ; N uni1FBD ; G 2728 +U 8126 ; WX 500 ; N uni1FBE ; G 2729 +U 8127 ; WX 500 ; N uni1FBF ; G 2730 +U 8128 ; WX 500 ; N uni1FC0 ; G 2731 +U 8129 ; WX 500 ; N uni1FC1 ; G 2732 +U 8130 ; WX 712 ; N uni1FC2 ; G 2733 +U 8131 ; WX 712 ; N uni1FC3 ; G 2734 +U 8132 ; WX 712 ; N uni1FC4 ; G 2735 +U 8134 ; WX 712 ; N uni1FC6 ; G 2736 +U 8135 ; WX 712 ; N uni1FC7 ; G 2737 +U 8136 ; WX 929 ; N uni1FC8 ; G 2738 +U 8137 ; WX 846 ; N uni1FC9 ; G 2739 +U 8138 ; WX 1080 ; N uni1FCA ; G 2740 +U 8139 ; WX 1009 ; N uni1FCB ; G 2741 +U 8140 ; WX 837 ; N uni1FCC ; G 2742 +U 8141 ; WX 500 ; N uni1FCD ; G 2743 +U 8142 ; WX 500 ; N uni1FCE ; G 2744 +U 8143 ; WX 500 ; N uni1FCF ; G 2745 +U 8144 ; WX 390 ; N uni1FD0 ; G 2746 +U 8145 ; WX 390 ; N uni1FD1 ; G 2747 +U 8146 ; WX 390 ; N uni1FD2 ; G 2748 +U 8147 ; WX 390 ; N uni1FD3 ; G 2749 +U 8150 ; WX 390 ; N uni1FD6 ; G 2750 +U 8151 ; WX 390 ; N uni1FD7 ; G 2751 +U 8152 ; WX 372 ; N uni1FD8 ; G 2752 +U 8153 ; WX 372 ; N uni1FD9 ; G 2753 +U 8154 ; WX 621 ; N uni1FDA ; G 2754 +U 8155 ; WX 563 ; N uni1FDB ; G 2755 +U 8157 ; WX 500 ; N uni1FDD ; G 2756 +U 8158 ; WX 500 ; N uni1FDE ; G 2757 +U 8159 ; WX 500 ; N uni1FDF ; G 2758 +U 8160 ; WX 675 ; N uni1FE0 ; G 2759 +U 8161 ; WX 675 ; N uni1FE1 ; G 2760 +U 8162 ; WX 675 ; N uni1FE2 ; G 2761 +U 8163 ; WX 675 ; N uni1FE3 ; G 2762 +U 8164 ; WX 716 ; N uni1FE4 ; G 2763 +U 8165 ; WX 716 ; N uni1FE5 ; G 2764 +U 8166 ; WX 675 ; N uni1FE6 ; G 2765 +U 8167 ; WX 675 ; N uni1FE7 ; G 2766 +U 8168 ; WX 724 ; N uni1FE8 ; G 2767 +U 8169 ; WX 724 ; N uni1FE9 ; G 2768 +U 8170 ; WX 1020 ; N uni1FEA ; G 2769 +U 8171 ; WX 980 ; N uni1FEB ; G 2770 +U 8172 ; WX 838 ; N uni1FEC ; G 2771 +U 8173 ; WX 500 ; N uni1FED ; G 2772 +U 8174 ; WX 500 ; N uni1FEE ; G 2773 +U 8175 ; WX 500 ; N uni1FEF ; G 2774 +U 8178 ; WX 869 ; N uni1FF2 ; G 2775 +U 8179 ; WX 869 ; N uni1FF3 ; G 2776 +U 8180 ; WX 869 ; N uni1FF4 ; G 2777 +U 8182 ; WX 869 ; N uni1FF6 ; G 2778 +U 8183 ; WX 869 ; N uni1FF7 ; G 2779 +U 8184 ; WX 1065 ; N uni1FF8 ; G 2780 +U 8185 ; WX 891 ; N uni1FF9 ; G 2781 +U 8186 ; WX 1084 ; N uni1FFA ; G 2782 +U 8187 ; WX 894 ; N uni1FFB ; G 2783 +U 8188 ; WX 850 ; N uni1FFC ; G 2784 +U 8189 ; WX 500 ; N uni1FFD ; G 2785 +U 8190 ; WX 500 ; N uni1FFE ; G 2786 +U 8192 ; WX 500 ; N uni2000 ; G 2787 +U 8193 ; WX 1000 ; N uni2001 ; G 2788 +U 8194 ; WX 500 ; N uni2002 ; G 2789 +U 8195 ; WX 1000 ; N uni2003 ; G 2790 +U 8196 ; WX 330 ; N uni2004 ; G 2791 +U 8197 ; WX 250 ; N uni2005 ; G 2792 +U 8198 ; WX 167 ; N uni2006 ; G 2793 +U 8199 ; WX 696 ; N uni2007 ; G 2794 +U 8200 ; WX 380 ; N uni2008 ; G 2795 +U 8201 ; WX 200 ; N uni2009 ; G 2796 +U 8202 ; WX 100 ; N uni200A ; G 2797 +U 8203 ; WX 0 ; N uni200B ; G 2798 +U 8204 ; WX 0 ; N uni200C ; G 2799 +U 8205 ; WX 0 ; N uni200D ; G 2800 +U 8206 ; WX 0 ; N uni200E ; G 2801 +U 8207 ; WX 0 ; N uni200F ; G 2802 +U 8208 ; WX 415 ; N uni2010 ; G 2803 +U 8209 ; WX 415 ; N uni2011 ; G 2804 +U 8210 ; WX 696 ; N figuredash ; G 2805 +U 8211 ; WX 500 ; N endash ; G 2806 +U 8212 ; WX 1000 ; N emdash ; G 2807 +U 8213 ; WX 1000 ; N uni2015 ; G 2808 +U 8214 ; WX 500 ; N uni2016 ; G 2809 +U 8215 ; WX 500 ; N underscoredbl ; G 2810 +U 8216 ; WX 380 ; N quoteleft ; G 2811 +U 8217 ; WX 380 ; N quoteright ; G 2812 +U 8218 ; WX 380 ; N quotesinglbase ; G 2813 +U 8219 ; WX 380 ; N quotereversed ; G 2814 +U 8220 ; WX 657 ; N quotedblleft ; G 2815 +U 8221 ; WX 657 ; N quotedblright ; G 2816 +U 8222 ; WX 657 ; N quotedblbase ; G 2817 +U 8223 ; WX 657 ; N uni201F ; G 2818 +U 8224 ; WX 500 ; N dagger ; G 2819 +U 8225 ; WX 500 ; N daggerdbl ; G 2820 +U 8226 ; WX 639 ; N bullet ; G 2821 +U 8227 ; WX 639 ; N uni2023 ; G 2822 +U 8228 ; WX 333 ; N onedotenleader ; G 2823 +U 8229 ; WX 667 ; N twodotenleader ; G 2824 +U 8230 ; WX 1000 ; N ellipsis ; G 2825 +U 8231 ; WX 348 ; N uni2027 ; G 2826 +U 8232 ; WX 0 ; N uni2028 ; G 2827 +U 8233 ; WX 0 ; N uni2029 ; G 2828 +U 8234 ; WX 0 ; N uni202A ; G 2829 +U 8235 ; WX 0 ; N uni202B ; G 2830 +U 8236 ; WX 0 ; N uni202C ; G 2831 +U 8237 ; WX 0 ; N uni202D ; G 2832 +U 8238 ; WX 0 ; N uni202E ; G 2833 +U 8239 ; WX 200 ; N uni202F ; G 2834 +U 8240 ; WX 1440 ; N perthousand ; G 2835 +U 8241 ; WX 1887 ; N uni2031 ; G 2836 +U 8242 ; WX 264 ; N minute ; G 2837 +U 8243 ; WX 447 ; N second ; G 2838 +U 8244 ; WX 630 ; N uni2034 ; G 2839 +U 8245 ; WX 264 ; N uni2035 ; G 2840 +U 8246 ; WX 447 ; N uni2036 ; G 2841 +U 8247 ; WX 630 ; N uni2037 ; G 2842 +U 8248 ; WX 733 ; N uni2038 ; G 2843 +U 8249 ; WX 412 ; N guilsinglleft ; G 2844 +U 8250 ; WX 412 ; N guilsinglright ; G 2845 +U 8251 ; WX 972 ; N uni203B ; G 2846 +U 8252 ; WX 627 ; N exclamdbl ; G 2847 +U 8253 ; WX 580 ; N uni203D ; G 2848 +U 8254 ; WX 500 ; N uni203E ; G 2849 +U 8255 ; WX 828 ; N uni203F ; G 2850 +U 8256 ; WX 828 ; N uni2040 ; G 2851 +U 8257 ; WX 329 ; N uni2041 ; G 2852 +U 8258 ; WX 1023 ; N uni2042 ; G 2853 +U 8259 ; WX 500 ; N uni2043 ; G 2854 +U 8260 ; WX 167 ; N fraction ; G 2855 +U 8261 ; WX 457 ; N uni2045 ; G 2856 +U 8262 ; WX 457 ; N uni2046 ; G 2857 +U 8263 ; WX 1030 ; N uni2047 ; G 2858 +U 8264 ; WX 829 ; N uni2048 ; G 2859 +U 8265 ; WX 829 ; N uni2049 ; G 2860 +U 8266 ; WX 513 ; N uni204A ; G 2861 +U 8267 ; WX 636 ; N uni204B ; G 2862 +U 8268 ; WX 500 ; N uni204C ; G 2863 +U 8269 ; WX 500 ; N uni204D ; G 2864 +U 8270 ; WX 523 ; N uni204E ; G 2865 +U 8271 ; WX 400 ; N uni204F ; G 2866 +U 8272 ; WX 828 ; N uni2050 ; G 2867 +U 8273 ; WX 523 ; N uni2051 ; G 2868 +U 8274 ; WX 556 ; N uni2052 ; G 2869 +U 8275 ; WX 1000 ; N uni2053 ; G 2870 +U 8276 ; WX 828 ; N uni2054 ; G 2871 +U 8277 ; WX 838 ; N uni2055 ; G 2872 +U 8278 ; WX 684 ; N uni2056 ; G 2873 +U 8279 ; WX 813 ; N uni2057 ; G 2874 +U 8280 ; WX 838 ; N uni2058 ; G 2875 +U 8281 ; WX 838 ; N uni2059 ; G 2876 +U 8282 ; WX 380 ; N uni205A ; G 2877 +U 8283 ; WX 872 ; N uni205B ; G 2878 +U 8284 ; WX 838 ; N uni205C ; G 2879 +U 8285 ; WX 380 ; N uni205D ; G 2880 +U 8286 ; WX 380 ; N uni205E ; G 2881 +U 8287 ; WX 222 ; N uni205F ; G 2882 +U 8288 ; WX 0 ; N uni2060 ; G 2883 +U 8289 ; WX 0 ; N uni2061 ; G 2884 +U 8290 ; WX 0 ; N uni2062 ; G 2885 +U 8291 ; WX 0 ; N uni2063 ; G 2886 +U 8292 ; WX 0 ; N uni2064 ; G 2887 +U 8298 ; WX 0 ; N uni206A ; G 2888 +U 8299 ; WX 0 ; N uni206B ; G 2889 +U 8300 ; WX 0 ; N uni206C ; G 2890 +U 8301 ; WX 0 ; N uni206D ; G 2891 +U 8302 ; WX 0 ; N uni206E ; G 2892 +U 8303 ; WX 0 ; N uni206F ; G 2893 +U 8304 ; WX 438 ; N uni2070 ; G 2894 +U 8305 ; WX 219 ; N uni2071 ; G 2895 +U 8308 ; WX 438 ; N uni2074 ; G 2896 +U 8309 ; WX 438 ; N uni2075 ; G 2897 +U 8310 ; WX 438 ; N uni2076 ; G 2898 +U 8311 ; WX 438 ; N uni2077 ; G 2899 +U 8312 ; WX 438 ; N uni2078 ; G 2900 +U 8313 ; WX 438 ; N uni2079 ; G 2901 +U 8314 ; WX 528 ; N uni207A ; G 2902 +U 8315 ; WX 528 ; N uni207B ; G 2903 +U 8316 ; WX 528 ; N uni207C ; G 2904 +U 8317 ; WX 288 ; N uni207D ; G 2905 +U 8318 ; WX 288 ; N uni207E ; G 2906 +U 8319 ; WX 456 ; N uni207F ; G 2907 +U 8320 ; WX 438 ; N uni2080 ; G 2908 +U 8321 ; WX 438 ; N uni2081 ; G 2909 +U 8322 ; WX 438 ; N uni2082 ; G 2910 +U 8323 ; WX 438 ; N uni2083 ; G 2911 +U 8324 ; WX 438 ; N uni2084 ; G 2912 +U 8325 ; WX 438 ; N uni2085 ; G 2913 +U 8326 ; WX 438 ; N uni2086 ; G 2914 +U 8327 ; WX 438 ; N uni2087 ; G 2915 +U 8328 ; WX 438 ; N uni2088 ; G 2916 +U 8329 ; WX 438 ; N uni2089 ; G 2917 +U 8330 ; WX 528 ; N uni208A ; G 2918 +U 8331 ; WX 528 ; N uni208B ; G 2919 +U 8332 ; WX 528 ; N uni208C ; G 2920 +U 8333 ; WX 288 ; N uni208D ; G 2921 +U 8334 ; WX 288 ; N uni208E ; G 2922 +U 8336 ; WX 458 ; N uni2090 ; G 2923 +U 8337 ; WX 479 ; N uni2091 ; G 2924 +U 8338 ; WX 488 ; N uni2092 ; G 2925 +U 8339 ; WX 413 ; N uni2093 ; G 2926 +U 8340 ; WX 479 ; N uni2094 ; G 2927 +U 8341 ; WX 456 ; N uni2095 ; G 2928 +U 8342 ; WX 487 ; N uni2096 ; G 2929 +U 8343 ; WX 219 ; N uni2097 ; G 2930 +U 8344 ; WX 664 ; N uni2098 ; G 2931 +U 8345 ; WX 456 ; N uni2099 ; G 2932 +U 8346 ; WX 479 ; N uni209A ; G 2933 +U 8347 ; WX 381 ; N uni209B ; G 2934 +U 8348 ; WX 388 ; N uni209C ; G 2935 +U 8352 ; WX 929 ; N uni20A0 ; G 2936 +U 8353 ; WX 696 ; N colonmonetary ; G 2937 +U 8354 ; WX 696 ; N uni20A2 ; G 2938 +U 8355 ; WX 696 ; N franc ; G 2939 +U 8356 ; WX 696 ; N lira ; G 2940 +U 8357 ; WX 1042 ; N uni20A5 ; G 2941 +U 8358 ; WX 696 ; N uni20A6 ; G 2942 +U 8359 ; WX 1518 ; N peseta ; G 2943 +U 8360 ; WX 1205 ; N uni20A8 ; G 2944 +U 8361 ; WX 1103 ; N uni20A9 ; G 2945 +U 8362 ; WX 904 ; N uni20AA ; G 2946 +U 8363 ; WX 696 ; N dong ; G 2947 +U 8364 ; WX 696 ; N Euro ; G 2948 +U 8365 ; WX 696 ; N uni20AD ; G 2949 +U 8366 ; WX 696 ; N uni20AE ; G 2950 +U 8367 ; WX 1392 ; N uni20AF ; G 2951 +U 8368 ; WX 696 ; N uni20B0 ; G 2952 +U 8369 ; WX 696 ; N uni20B1 ; G 2953 +U 8370 ; WX 696 ; N uni20B2 ; G 2954 +U 8371 ; WX 696 ; N uni20B3 ; G 2955 +U 8372 ; WX 859 ; N uni20B4 ; G 2956 +U 8373 ; WX 696 ; N uni20B5 ; G 2957 +U 8376 ; WX 696 ; N uni20B8 ; G 2958 +U 8377 ; WX 696 ; N uni20B9 ; G 2959 +U 8378 ; WX 696 ; N uni20BA ; G 2960 +U 8381 ; WX 696 ; N uni20BD ; G 2961 +U 8400 ; WX 0 ; N uni20D0 ; G 2962 +U 8401 ; WX 0 ; N uni20D1 ; G 2963 +U 8406 ; WX 0 ; N uni20D6 ; G 2964 +U 8407 ; WX 0 ; N uni20D7 ; G 2965 +U 8411 ; WX 0 ; N uni20DB ; G 2966 +U 8412 ; WX 0 ; N uni20DC ; G 2967 +U 8417 ; WX 0 ; N uni20E1 ; G 2968 +U 8448 ; WX 1120 ; N uni2100 ; G 2969 +U 8449 ; WX 1170 ; N uni2101 ; G 2970 +U 8450 ; WX 734 ; N uni2102 ; G 2971 +U 8451 ; WX 1211 ; N uni2103 ; G 2972 +U 8452 ; WX 896 ; N uni2104 ; G 2973 +U 8453 ; WX 1091 ; N uni2105 ; G 2974 +U 8454 ; WX 1144 ; N uni2106 ; G 2975 +U 8455 ; WX 614 ; N uni2107 ; G 2976 +U 8456 ; WX 698 ; N uni2108 ; G 2977 +U 8457 ; WX 1086 ; N uni2109 ; G 2978 +U 8459 ; WX 1073 ; N uni210B ; G 2979 +U 8460 ; WX 913 ; N uni210C ; G 2980 +U 8461 ; WX 888 ; N uni210D ; G 2981 +U 8462 ; WX 712 ; N uni210E ; G 2982 +U 8463 ; WX 712 ; N uni210F ; G 2983 +U 8464 ; WX 597 ; N uni2110 ; G 2984 +U 8465 ; WX 697 ; N Ifraktur ; G 2985 +U 8466 ; WX 856 ; N uni2112 ; G 2986 +U 8467 ; WX 472 ; N uni2113 ; G 2987 +U 8468 ; WX 974 ; N uni2114 ; G 2988 +U 8469 ; WX 837 ; N uni2115 ; G 2989 +U 8470 ; WX 1203 ; N uni2116 ; G 2990 +U 8471 ; WX 1000 ; N uni2117 ; G 2991 +U 8472 ; WX 697 ; N weierstrass ; G 2992 +U 8473 ; WX 750 ; N uni2119 ; G 2993 +U 8474 ; WX 850 ; N uni211A ; G 2994 +U 8475 ; WX 938 ; N uni211B ; G 2995 +U 8476 ; WX 814 ; N Rfraktur ; G 2996 +U 8477 ; WX 801 ; N uni211D ; G 2997 +U 8478 ; WX 896 ; N prescription ; G 2998 +U 8479 ; WX 710 ; N uni211F ; G 2999 +U 8480 ; WX 1020 ; N uni2120 ; G 3000 +U 8481 ; WX 1281 ; N uni2121 ; G 3001 +U 8482 ; WX 1000 ; N trademark ; G 3002 +U 8483 ; WX 755 ; N uni2123 ; G 3003 +U 8484 ; WX 754 ; N uni2124 ; G 3004 +U 8485 ; WX 578 ; N uni2125 ; G 3005 +U 8486 ; WX 850 ; N uni2126 ; G 3006 +U 8487 ; WX 850 ; N uni2127 ; G 3007 +U 8488 ; WX 763 ; N uni2128 ; G 3008 +U 8489 ; WX 338 ; N uni2129 ; G 3009 +U 8490 ; WX 775 ; N uni212A ; G 3010 +U 8491 ; WX 774 ; N uni212B ; G 3011 +U 8492 ; WX 928 ; N uni212C ; G 3012 +U 8493 ; WX 818 ; N uni212D ; G 3013 +U 8494 ; WX 854 ; N estimated ; G 3014 +U 8495 ; WX 636 ; N uni212F ; G 3015 +U 8496 ; WX 729 ; N uni2130 ; G 3016 +U 8497 ; WX 808 ; N uni2131 ; G 3017 +U 8498 ; WX 683 ; N uni2132 ; G 3018 +U 8499 ; WX 1184 ; N uni2133 ; G 3019 +U 8500 ; WX 465 ; N uni2134 ; G 3020 +U 8501 ; WX 794 ; N aleph ; G 3021 +U 8502 ; WX 731 ; N uni2136 ; G 3022 +U 8503 ; WX 494 ; N uni2137 ; G 3023 +U 8504 ; WX 684 ; N uni2138 ; G 3024 +U 8505 ; WX 380 ; N uni2139 ; G 3025 +U 8506 ; WX 945 ; N uni213A ; G 3026 +U 8507 ; WX 1348 ; N uni213B ; G 3027 +U 8508 ; WX 790 ; N uni213C ; G 3028 +U 8509 ; WX 737 ; N uni213D ; G 3029 +U 8510 ; WX 654 ; N uni213E ; G 3030 +U 8511 ; WX 863 ; N uni213F ; G 3031 +U 8512 ; WX 840 ; N uni2140 ; G 3032 +U 8513 ; WX 775 ; N uni2141 ; G 3033 +U 8514 ; WX 557 ; N uni2142 ; G 3034 +U 8515 ; WX 637 ; N uni2143 ; G 3035 +U 8516 ; WX 760 ; N uni2144 ; G 3036 +U 8517 ; WX 830 ; N uni2145 ; G 3037 +U 8518 ; WX 716 ; N uni2146 ; G 3038 +U 8519 ; WX 678 ; N uni2147 ; G 3039 +U 8520 ; WX 343 ; N uni2148 ; G 3040 +U 8521 ; WX 343 ; N uni2149 ; G 3041 +U 8523 ; WX 872 ; N uni214B ; G 3042 +U 8526 ; WX 547 ; N uni214E ; G 3043 +U 8528 ; WX 1035 ; N uni2150 ; G 3044 +U 8529 ; WX 1035 ; N uni2151 ; G 3045 +U 8530 ; WX 1483 ; N uni2152 ; G 3046 +U 8531 ; WX 1035 ; N onethird ; G 3047 +U 8532 ; WX 1035 ; N twothirds ; G 3048 +U 8533 ; WX 1035 ; N uni2155 ; G 3049 +U 8534 ; WX 1035 ; N uni2156 ; G 3050 +U 8535 ; WX 1035 ; N uni2157 ; G 3051 +U 8536 ; WX 1035 ; N uni2158 ; G 3052 +U 8537 ; WX 1035 ; N uni2159 ; G 3053 +U 8538 ; WX 1035 ; N uni215A ; G 3054 +U 8539 ; WX 1035 ; N oneeighth ; G 3055 +U 8540 ; WX 1035 ; N threeeighths ; G 3056 +U 8541 ; WX 1035 ; N fiveeighths ; G 3057 +U 8542 ; WX 1035 ; N seveneighths ; G 3058 +U 8543 ; WX 615 ; N uni215F ; G 3059 +U 8544 ; WX 372 ; N uni2160 ; G 3060 +U 8545 ; WX 659 ; N uni2161 ; G 3061 +U 8546 ; WX 945 ; N uni2162 ; G 3062 +U 8547 ; WX 1099 ; N uni2163 ; G 3063 +U 8548 ; WX 774 ; N uni2164 ; G 3064 +U 8549 ; WX 1099 ; N uni2165 ; G 3065 +U 8550 ; WX 1386 ; N uni2166 ; G 3066 +U 8551 ; WX 1672 ; N uni2167 ; G 3067 +U 8552 ; WX 1121 ; N uni2168 ; G 3068 +U 8553 ; WX 771 ; N uni2169 ; G 3069 +U 8554 ; WX 1120 ; N uni216A ; G 3070 +U 8555 ; WX 1407 ; N uni216B ; G 3071 +U 8556 ; WX 637 ; N uni216C ; G 3072 +U 8557 ; WX 734 ; N uni216D ; G 3073 +U 8558 ; WX 830 ; N uni216E ; G 3074 +U 8559 ; WX 995 ; N uni216F ; G 3075 +U 8560 ; WX 343 ; N uni2170 ; G 3076 +U 8561 ; WX 607 ; N uni2171 ; G 3077 +U 8562 ; WX 872 ; N uni2172 ; G 3078 +U 8563 ; WX 984 ; N uni2173 ; G 3079 +U 8564 ; WX 652 ; N uni2174 ; G 3080 +U 8565 ; WX 962 ; N uni2175 ; G 3081 +U 8566 ; WX 1227 ; N uni2176 ; G 3082 +U 8567 ; WX 1491 ; N uni2177 ; G 3083 +U 8568 ; WX 969 ; N uni2178 ; G 3084 +U 8569 ; WX 645 ; N uni2179 ; G 3085 +U 8570 ; WX 969 ; N uni217A ; G 3086 +U 8571 ; WX 1233 ; N uni217B ; G 3087 +U 8572 ; WX 343 ; N uni217C ; G 3088 +U 8573 ; WX 593 ; N uni217D ; G 3089 +U 8574 ; WX 716 ; N uni217E ; G 3090 +U 8575 ; WX 1042 ; N uni217F ; G 3091 +U 8576 ; WX 1289 ; N uni2180 ; G 3092 +U 8577 ; WX 830 ; N uni2181 ; G 3093 +U 8578 ; WX 1289 ; N uni2182 ; G 3094 +U 8579 ; WX 734 ; N uni2183 ; G 3095 +U 8580 ; WX 593 ; N uni2184 ; G 3096 +U 8581 ; WX 734 ; N uni2185 ; G 3097 +U 8585 ; WX 1035 ; N uni2189 ; G 3098 +U 8592 ; WX 838 ; N arrowleft ; G 3099 +U 8593 ; WX 838 ; N arrowup ; G 3100 +U 8594 ; WX 838 ; N arrowright ; G 3101 +U 8595 ; WX 838 ; N arrowdown ; G 3102 +U 8596 ; WX 838 ; N arrowboth ; G 3103 +U 8597 ; WX 838 ; N arrowupdn ; G 3104 +U 8598 ; WX 838 ; N uni2196 ; G 3105 +U 8599 ; WX 838 ; N uni2197 ; G 3106 +U 8600 ; WX 838 ; N uni2198 ; G 3107 +U 8601 ; WX 838 ; N uni2199 ; G 3108 +U 8602 ; WX 838 ; N uni219A ; G 3109 +U 8603 ; WX 838 ; N uni219B ; G 3110 +U 8604 ; WX 838 ; N uni219C ; G 3111 +U 8605 ; WX 838 ; N uni219D ; G 3112 +U 8606 ; WX 838 ; N uni219E ; G 3113 +U 8607 ; WX 838 ; N uni219F ; G 3114 +U 8608 ; WX 838 ; N uni21A0 ; G 3115 +U 8609 ; WX 838 ; N uni21A1 ; G 3116 +U 8610 ; WX 838 ; N uni21A2 ; G 3117 +U 8611 ; WX 838 ; N uni21A3 ; G 3118 +U 8612 ; WX 838 ; N uni21A4 ; G 3119 +U 8613 ; WX 838 ; N uni21A5 ; G 3120 +U 8614 ; WX 838 ; N uni21A6 ; G 3121 +U 8615 ; WX 838 ; N uni21A7 ; G 3122 +U 8616 ; WX 838 ; N arrowupdnbse ; G 3123 +U 8617 ; WX 838 ; N uni21A9 ; G 3124 +U 8618 ; WX 838 ; N uni21AA ; G 3125 +U 8619 ; WX 838 ; N uni21AB ; G 3126 +U 8620 ; WX 838 ; N uni21AC ; G 3127 +U 8621 ; WX 838 ; N uni21AD ; G 3128 +U 8622 ; WX 838 ; N uni21AE ; G 3129 +U 8623 ; WX 838 ; N uni21AF ; G 3130 +U 8624 ; WX 838 ; N uni21B0 ; G 3131 +U 8625 ; WX 838 ; N uni21B1 ; G 3132 +U 8626 ; WX 838 ; N uni21B2 ; G 3133 +U 8627 ; WX 838 ; N uni21B3 ; G 3134 +U 8628 ; WX 838 ; N uni21B4 ; G 3135 +U 8629 ; WX 838 ; N carriagereturn ; G 3136 +U 8630 ; WX 838 ; N uni21B6 ; G 3137 +U 8631 ; WX 838 ; N uni21B7 ; G 3138 +U 8632 ; WX 838 ; N uni21B8 ; G 3139 +U 8633 ; WX 838 ; N uni21B9 ; G 3140 +U 8634 ; WX 838 ; N uni21BA ; G 3141 +U 8635 ; WX 838 ; N uni21BB ; G 3142 +U 8636 ; WX 838 ; N uni21BC ; G 3143 +U 8637 ; WX 838 ; N uni21BD ; G 3144 +U 8638 ; WX 838 ; N uni21BE ; G 3145 +U 8639 ; WX 838 ; N uni21BF ; G 3146 +U 8640 ; WX 838 ; N uni21C0 ; G 3147 +U 8641 ; WX 838 ; N uni21C1 ; G 3148 +U 8642 ; WX 838 ; N uni21C2 ; G 3149 +U 8643 ; WX 838 ; N uni21C3 ; G 3150 +U 8644 ; WX 838 ; N uni21C4 ; G 3151 +U 8645 ; WX 838 ; N uni21C5 ; G 3152 +U 8646 ; WX 838 ; N uni21C6 ; G 3153 +U 8647 ; WX 838 ; N uni21C7 ; G 3154 +U 8648 ; WX 838 ; N uni21C8 ; G 3155 +U 8649 ; WX 838 ; N uni21C9 ; G 3156 +U 8650 ; WX 838 ; N uni21CA ; G 3157 +U 8651 ; WX 838 ; N uni21CB ; G 3158 +U 8652 ; WX 838 ; N uni21CC ; G 3159 +U 8653 ; WX 838 ; N uni21CD ; G 3160 +U 8654 ; WX 838 ; N uni21CE ; G 3161 +U 8655 ; WX 838 ; N uni21CF ; G 3162 +U 8656 ; WX 838 ; N arrowdblleft ; G 3163 +U 8657 ; WX 838 ; N arrowdblup ; G 3164 +U 8658 ; WX 838 ; N arrowdblright ; G 3165 +U 8659 ; WX 838 ; N arrowdbldown ; G 3166 +U 8660 ; WX 838 ; N arrowdblboth ; G 3167 +U 8661 ; WX 838 ; N uni21D5 ; G 3168 +U 8662 ; WX 838 ; N uni21D6 ; G 3169 +U 8663 ; WX 838 ; N uni21D7 ; G 3170 +U 8664 ; WX 838 ; N uni21D8 ; G 3171 +U 8665 ; WX 838 ; N uni21D9 ; G 3172 +U 8666 ; WX 838 ; N uni21DA ; G 3173 +U 8667 ; WX 838 ; N uni21DB ; G 3174 +U 8668 ; WX 838 ; N uni21DC ; G 3175 +U 8669 ; WX 838 ; N uni21DD ; G 3176 +U 8670 ; WX 838 ; N uni21DE ; G 3177 +U 8671 ; WX 838 ; N uni21DF ; G 3178 +U 8672 ; WX 838 ; N uni21E0 ; G 3179 +U 8673 ; WX 838 ; N uni21E1 ; G 3180 +U 8674 ; WX 838 ; N uni21E2 ; G 3181 +U 8675 ; WX 838 ; N uni21E3 ; G 3182 +U 8676 ; WX 838 ; N uni21E4 ; G 3183 +U 8677 ; WX 838 ; N uni21E5 ; G 3184 +U 8678 ; WX 838 ; N uni21E6 ; G 3185 +U 8679 ; WX 838 ; N uni21E7 ; G 3186 +U 8680 ; WX 838 ; N uni21E8 ; G 3187 +U 8681 ; WX 838 ; N uni21E9 ; G 3188 +U 8682 ; WX 838 ; N uni21EA ; G 3189 +U 8683 ; WX 838 ; N uni21EB ; G 3190 +U 8684 ; WX 838 ; N uni21EC ; G 3191 +U 8685 ; WX 838 ; N uni21ED ; G 3192 +U 8686 ; WX 838 ; N uni21EE ; G 3193 +U 8687 ; WX 838 ; N uni21EF ; G 3194 +U 8688 ; WX 838 ; N uni21F0 ; G 3195 +U 8689 ; WX 838 ; N uni21F1 ; G 3196 +U 8690 ; WX 838 ; N uni21F2 ; G 3197 +U 8691 ; WX 838 ; N uni21F3 ; G 3198 +U 8692 ; WX 838 ; N uni21F4 ; G 3199 +U 8693 ; WX 838 ; N uni21F5 ; G 3200 +U 8694 ; WX 838 ; N uni21F6 ; G 3201 +U 8695 ; WX 838 ; N uni21F7 ; G 3202 +U 8696 ; WX 838 ; N uni21F8 ; G 3203 +U 8697 ; WX 838 ; N uni21F9 ; G 3204 +U 8698 ; WX 838 ; N uni21FA ; G 3205 +U 8699 ; WX 838 ; N uni21FB ; G 3206 +U 8700 ; WX 838 ; N uni21FC ; G 3207 +U 8701 ; WX 838 ; N uni21FD ; G 3208 +U 8702 ; WX 838 ; N uni21FE ; G 3209 +U 8703 ; WX 838 ; N uni21FF ; G 3210 +U 8704 ; WX 774 ; N universal ; G 3211 +U 8705 ; WX 696 ; N uni2201 ; G 3212 +U 8706 ; WX 544 ; N partialdiff ; G 3213 +U 8707 ; WX 683 ; N existential ; G 3214 +U 8708 ; WX 683 ; N uni2204 ; G 3215 +U 8709 ; WX 856 ; N emptyset ; G 3216 +U 8710 ; WX 697 ; N increment ; G 3217 +U 8711 ; WX 697 ; N gradient ; G 3218 +U 8712 ; WX 896 ; N element ; G 3219 +U 8713 ; WX 896 ; N notelement ; G 3220 +U 8714 ; WX 750 ; N uni220A ; G 3221 +U 8715 ; WX 896 ; N suchthat ; G 3222 +U 8716 ; WX 896 ; N uni220C ; G 3223 +U 8717 ; WX 750 ; N uni220D ; G 3224 +U 8718 ; WX 636 ; N uni220E ; G 3225 +U 8719 ; WX 787 ; N product ; G 3226 +U 8720 ; WX 787 ; N uni2210 ; G 3227 +U 8721 ; WX 718 ; N summation ; G 3228 +U 8722 ; WX 838 ; N minus ; G 3229 +U 8723 ; WX 838 ; N uni2213 ; G 3230 +U 8724 ; WX 696 ; N uni2214 ; G 3231 +U 8725 ; WX 365 ; N uni2215 ; G 3232 +U 8726 ; WX 696 ; N uni2216 ; G 3233 +U 8727 ; WX 838 ; N asteriskmath ; G 3234 +U 8728 ; WX 626 ; N uni2218 ; G 3235 +U 8729 ; WX 380 ; N uni2219 ; G 3236 +U 8730 ; WX 667 ; N radical ; G 3237 +U 8731 ; WX 667 ; N uni221B ; G 3238 +U 8732 ; WX 667 ; N uni221C ; G 3239 +U 8733 ; WX 712 ; N proportional ; G 3240 +U 8734 ; WX 833 ; N infinity ; G 3241 +U 8735 ; WX 838 ; N orthogonal ; G 3242 +U 8736 ; WX 896 ; N angle ; G 3243 +U 8737 ; WX 896 ; N uni2221 ; G 3244 +U 8738 ; WX 838 ; N uni2222 ; G 3245 +U 8739 ; WX 500 ; N uni2223 ; G 3246 +U 8740 ; WX 500 ; N uni2224 ; G 3247 +U 8741 ; WX 500 ; N uni2225 ; G 3248 +U 8742 ; WX 500 ; N uni2226 ; G 3249 +U 8743 ; WX 812 ; N logicaland ; G 3250 +U 8744 ; WX 812 ; N logicalor ; G 3251 +U 8745 ; WX 812 ; N intersection ; G 3252 +U 8746 ; WX 812 ; N union ; G 3253 +U 8747 ; WX 610 ; N integral ; G 3254 +U 8748 ; WX 929 ; N uni222C ; G 3255 +U 8749 ; WX 1295 ; N uni222D ; G 3256 +U 8750 ; WX 563 ; N uni222E ; G 3257 +U 8751 ; WX 977 ; N uni222F ; G 3258 +U 8752 ; WX 1313 ; N uni2230 ; G 3259 +U 8753 ; WX 563 ; N uni2231 ; G 3260 +U 8754 ; WX 563 ; N uni2232 ; G 3261 +U 8755 ; WX 563 ; N uni2233 ; G 3262 +U 8756 ; WX 696 ; N therefore ; G 3263 +U 8757 ; WX 696 ; N uni2235 ; G 3264 +U 8758 ; WX 294 ; N uni2236 ; G 3265 +U 8759 ; WX 696 ; N uni2237 ; G 3266 +U 8760 ; WX 838 ; N uni2238 ; G 3267 +U 8761 ; WX 838 ; N uni2239 ; G 3268 +U 8762 ; WX 838 ; N uni223A ; G 3269 +U 8763 ; WX 838 ; N uni223B ; G 3270 +U 8764 ; WX 838 ; N similar ; G 3271 +U 8765 ; WX 838 ; N uni223D ; G 3272 +U 8766 ; WX 838 ; N uni223E ; G 3273 +U 8767 ; WX 838 ; N uni223F ; G 3274 +U 8768 ; WX 375 ; N uni2240 ; G 3275 +U 8769 ; WX 838 ; N uni2241 ; G 3276 +U 8770 ; WX 838 ; N uni2242 ; G 3277 +U 8771 ; WX 838 ; N uni2243 ; G 3278 +U 8772 ; WX 838 ; N uni2244 ; G 3279 +U 8773 ; WX 838 ; N congruent ; G 3280 +U 8774 ; WX 838 ; N uni2246 ; G 3281 +U 8775 ; WX 838 ; N uni2247 ; G 3282 +U 8776 ; WX 838 ; N approxequal ; G 3283 +U 8777 ; WX 838 ; N uni2249 ; G 3284 +U 8778 ; WX 838 ; N uni224A ; G 3285 +U 8779 ; WX 838 ; N uni224B ; G 3286 +U 8780 ; WX 838 ; N uni224C ; G 3287 +U 8781 ; WX 838 ; N uni224D ; G 3288 +U 8782 ; WX 838 ; N uni224E ; G 3289 +U 8783 ; WX 838 ; N uni224F ; G 3290 +U 8784 ; WX 838 ; N uni2250 ; G 3291 +U 8785 ; WX 838 ; N uni2251 ; G 3292 +U 8786 ; WX 838 ; N uni2252 ; G 3293 +U 8787 ; WX 838 ; N uni2253 ; G 3294 +U 8788 ; WX 1063 ; N uni2254 ; G 3295 +U 8789 ; WX 1063 ; N uni2255 ; G 3296 +U 8790 ; WX 838 ; N uni2256 ; G 3297 +U 8791 ; WX 838 ; N uni2257 ; G 3298 +U 8792 ; WX 838 ; N uni2258 ; G 3299 +U 8793 ; WX 838 ; N uni2259 ; G 3300 +U 8794 ; WX 838 ; N uni225A ; G 3301 +U 8795 ; WX 838 ; N uni225B ; G 3302 +U 8796 ; WX 838 ; N uni225C ; G 3303 +U 8797 ; WX 838 ; N uni225D ; G 3304 +U 8798 ; WX 838 ; N uni225E ; G 3305 +U 8799 ; WX 838 ; N uni225F ; G 3306 +U 8800 ; WX 838 ; N notequal ; G 3307 +U 8801 ; WX 838 ; N equivalence ; G 3308 +U 8802 ; WX 838 ; N uni2262 ; G 3309 +U 8803 ; WX 838 ; N uni2263 ; G 3310 +U 8804 ; WX 838 ; N lessequal ; G 3311 +U 8805 ; WX 838 ; N greaterequal ; G 3312 +U 8806 ; WX 838 ; N uni2266 ; G 3313 +U 8807 ; WX 838 ; N uni2267 ; G 3314 +U 8808 ; WX 841 ; N uni2268 ; G 3315 +U 8809 ; WX 841 ; N uni2269 ; G 3316 +U 8810 ; WX 1047 ; N uni226A ; G 3317 +U 8811 ; WX 1047 ; N uni226B ; G 3318 +U 8812 ; WX 500 ; N uni226C ; G 3319 +U 8813 ; WX 838 ; N uni226D ; G 3320 +U 8814 ; WX 838 ; N uni226E ; G 3321 +U 8815 ; WX 838 ; N uni226F ; G 3322 +U 8816 ; WX 838 ; N uni2270 ; G 3323 +U 8817 ; WX 838 ; N uni2271 ; G 3324 +U 8818 ; WX 838 ; N uni2272 ; G 3325 +U 8819 ; WX 838 ; N uni2273 ; G 3326 +U 8820 ; WX 838 ; N uni2274 ; G 3327 +U 8821 ; WX 838 ; N uni2275 ; G 3328 +U 8822 ; WX 838 ; N uni2276 ; G 3329 +U 8823 ; WX 838 ; N uni2277 ; G 3330 +U 8824 ; WX 838 ; N uni2278 ; G 3331 +U 8825 ; WX 838 ; N uni2279 ; G 3332 +U 8826 ; WX 838 ; N uni227A ; G 3333 +U 8827 ; WX 838 ; N uni227B ; G 3334 +U 8828 ; WX 838 ; N uni227C ; G 3335 +U 8829 ; WX 838 ; N uni227D ; G 3336 +U 8830 ; WX 838 ; N uni227E ; G 3337 +U 8831 ; WX 838 ; N uni227F ; G 3338 +U 8832 ; WX 838 ; N uni2280 ; G 3339 +U 8833 ; WX 838 ; N uni2281 ; G 3340 +U 8834 ; WX 838 ; N propersubset ; G 3341 +U 8835 ; WX 838 ; N propersuperset ; G 3342 +U 8836 ; WX 838 ; N notsubset ; G 3343 +U 8837 ; WX 838 ; N uni2285 ; G 3344 +U 8838 ; WX 838 ; N reflexsubset ; G 3345 +U 8839 ; WX 838 ; N reflexsuperset ; G 3346 +U 8840 ; WX 838 ; N uni2288 ; G 3347 +U 8841 ; WX 838 ; N uni2289 ; G 3348 +U 8842 ; WX 838 ; N uni228A ; G 3349 +U 8843 ; WX 838 ; N uni228B ; G 3350 +U 8844 ; WX 812 ; N uni228C ; G 3351 +U 8845 ; WX 812 ; N uni228D ; G 3352 +U 8846 ; WX 812 ; N uni228E ; G 3353 +U 8847 ; WX 838 ; N uni228F ; G 3354 +U 8848 ; WX 838 ; N uni2290 ; G 3355 +U 8849 ; WX 838 ; N uni2291 ; G 3356 +U 8850 ; WX 838 ; N uni2292 ; G 3357 +U 8851 ; WX 796 ; N uni2293 ; G 3358 +U 8852 ; WX 796 ; N uni2294 ; G 3359 +U 8853 ; WX 838 ; N circleplus ; G 3360 +U 8854 ; WX 838 ; N uni2296 ; G 3361 +U 8855 ; WX 838 ; N circlemultiply ; G 3362 +U 8856 ; WX 838 ; N uni2298 ; G 3363 +U 8857 ; WX 838 ; N uni2299 ; G 3364 +U 8858 ; WX 838 ; N uni229A ; G 3365 +U 8859 ; WX 838 ; N uni229B ; G 3366 +U 8860 ; WX 838 ; N uni229C ; G 3367 +U 8861 ; WX 838 ; N uni229D ; G 3368 +U 8862 ; WX 838 ; N uni229E ; G 3369 +U 8863 ; WX 838 ; N uni229F ; G 3370 +U 8864 ; WX 838 ; N uni22A0 ; G 3371 +U 8865 ; WX 838 ; N uni22A1 ; G 3372 +U 8866 ; WX 914 ; N uni22A2 ; G 3373 +U 8867 ; WX 914 ; N uni22A3 ; G 3374 +U 8868 ; WX 914 ; N uni22A4 ; G 3375 +U 8869 ; WX 914 ; N perpendicular ; G 3376 +U 8870 ; WX 542 ; N uni22A6 ; G 3377 +U 8871 ; WX 542 ; N uni22A7 ; G 3378 +U 8872 ; WX 914 ; N uni22A8 ; G 3379 +U 8873 ; WX 914 ; N uni22A9 ; G 3380 +U 8874 ; WX 914 ; N uni22AA ; G 3381 +U 8875 ; WX 914 ; N uni22AB ; G 3382 +U 8876 ; WX 914 ; N uni22AC ; G 3383 +U 8877 ; WX 914 ; N uni22AD ; G 3384 +U 8878 ; WX 914 ; N uni22AE ; G 3385 +U 8879 ; WX 914 ; N uni22AF ; G 3386 +U 8880 ; WX 838 ; N uni22B0 ; G 3387 +U 8881 ; WX 838 ; N uni22B1 ; G 3388 +U 8882 ; WX 838 ; N uni22B2 ; G 3389 +U 8883 ; WX 838 ; N uni22B3 ; G 3390 +U 8884 ; WX 838 ; N uni22B4 ; G 3391 +U 8885 ; WX 838 ; N uni22B5 ; G 3392 +U 8886 ; WX 1000 ; N uni22B6 ; G 3393 +U 8887 ; WX 1000 ; N uni22B7 ; G 3394 +U 8888 ; WX 838 ; N uni22B8 ; G 3395 +U 8889 ; WX 838 ; N uni22B9 ; G 3396 +U 8890 ; WX 542 ; N uni22BA ; G 3397 +U 8891 ; WX 812 ; N uni22BB ; G 3398 +U 8892 ; WX 812 ; N uni22BC ; G 3399 +U 8893 ; WX 812 ; N uni22BD ; G 3400 +U 8894 ; WX 838 ; N uni22BE ; G 3401 +U 8895 ; WX 838 ; N uni22BF ; G 3402 +U 8896 ; WX 843 ; N uni22C0 ; G 3403 +U 8897 ; WX 843 ; N uni22C1 ; G 3404 +U 8898 ; WX 843 ; N uni22C2 ; G 3405 +U 8899 ; WX 843 ; N uni22C3 ; G 3406 +U 8900 ; WX 626 ; N uni22C4 ; G 3407 +U 8901 ; WX 380 ; N dotmath ; G 3408 +U 8902 ; WX 626 ; N uni22C6 ; G 3409 +U 8903 ; WX 838 ; N uni22C7 ; G 3410 +U 8904 ; WX 1000 ; N uni22C8 ; G 3411 +U 8905 ; WX 1000 ; N uni22C9 ; G 3412 +U 8906 ; WX 1000 ; N uni22CA ; G 3413 +U 8907 ; WX 1000 ; N uni22CB ; G 3414 +U 8908 ; WX 1000 ; N uni22CC ; G 3415 +U 8909 ; WX 838 ; N uni22CD ; G 3416 +U 8910 ; WX 812 ; N uni22CE ; G 3417 +U 8911 ; WX 812 ; N uni22CF ; G 3418 +U 8912 ; WX 838 ; N uni22D0 ; G 3419 +U 8913 ; WX 838 ; N uni22D1 ; G 3420 +U 8914 ; WX 838 ; N uni22D2 ; G 3421 +U 8915 ; WX 838 ; N uni22D3 ; G 3422 +U 8916 ; WX 838 ; N uni22D4 ; G 3423 +U 8917 ; WX 838 ; N uni22D5 ; G 3424 +U 8918 ; WX 838 ; N uni22D6 ; G 3425 +U 8919 ; WX 838 ; N uni22D7 ; G 3426 +U 8920 ; WX 1422 ; N uni22D8 ; G 3427 +U 8921 ; WX 1422 ; N uni22D9 ; G 3428 +U 8922 ; WX 838 ; N uni22DA ; G 3429 +U 8923 ; WX 838 ; N uni22DB ; G 3430 +U 8924 ; WX 838 ; N uni22DC ; G 3431 +U 8925 ; WX 838 ; N uni22DD ; G 3432 +U 8926 ; WX 838 ; N uni22DE ; G 3433 +U 8927 ; WX 838 ; N uni22DF ; G 3434 +U 8928 ; WX 838 ; N uni22E0 ; G 3435 +U 8929 ; WX 838 ; N uni22E1 ; G 3436 +U 8930 ; WX 838 ; N uni22E2 ; G 3437 +U 8931 ; WX 838 ; N uni22E3 ; G 3438 +U 8932 ; WX 838 ; N uni22E4 ; G 3439 +U 8933 ; WX 838 ; N uni22E5 ; G 3440 +U 8934 ; WX 838 ; N uni22E6 ; G 3441 +U 8935 ; WX 838 ; N uni22E7 ; G 3442 +U 8936 ; WX 838 ; N uni22E8 ; G 3443 +U 8937 ; WX 838 ; N uni22E9 ; G 3444 +U 8938 ; WX 838 ; N uni22EA ; G 3445 +U 8939 ; WX 838 ; N uni22EB ; G 3446 +U 8940 ; WX 838 ; N uni22EC ; G 3447 +U 8941 ; WX 838 ; N uni22ED ; G 3448 +U 8942 ; WX 1000 ; N uni22EE ; G 3449 +U 8943 ; WX 1000 ; N uni22EF ; G 3450 +U 8944 ; WX 1000 ; N uni22F0 ; G 3451 +U 8945 ; WX 1000 ; N uni22F1 ; G 3452 +U 8946 ; WX 1158 ; N uni22F2 ; G 3453 +U 8947 ; WX 896 ; N uni22F3 ; G 3454 +U 8948 ; WX 750 ; N uni22F4 ; G 3455 +U 8949 ; WX 896 ; N uni22F5 ; G 3456 +U 8950 ; WX 896 ; N uni22F6 ; G 3457 +U 8951 ; WX 750 ; N uni22F7 ; G 3458 +U 8952 ; WX 896 ; N uni22F8 ; G 3459 +U 8953 ; WX 896 ; N uni22F9 ; G 3460 +U 8954 ; WX 1158 ; N uni22FA ; G 3461 +U 8955 ; WX 896 ; N uni22FB ; G 3462 +U 8956 ; WX 750 ; N uni22FC ; G 3463 +U 8957 ; WX 896 ; N uni22FD ; G 3464 +U 8958 ; WX 750 ; N uni22FE ; G 3465 +U 8959 ; WX 896 ; N uni22FF ; G 3466 +U 8960 ; WX 602 ; N uni2300 ; G 3467 +U 8961 ; WX 602 ; N uni2301 ; G 3468 +U 8962 ; WX 716 ; N house ; G 3469 +U 8963 ; WX 838 ; N uni2303 ; G 3470 +U 8964 ; WX 838 ; N uni2304 ; G 3471 +U 8965 ; WX 838 ; N uni2305 ; G 3472 +U 8966 ; WX 838 ; N uni2306 ; G 3473 +U 8967 ; WX 488 ; N uni2307 ; G 3474 +U 8968 ; WX 457 ; N uni2308 ; G 3475 +U 8969 ; WX 457 ; N uni2309 ; G 3476 +U 8970 ; WX 457 ; N uni230A ; G 3477 +U 8971 ; WX 457 ; N uni230B ; G 3478 +U 8972 ; WX 809 ; N uni230C ; G 3479 +U 8973 ; WX 809 ; N uni230D ; G 3480 +U 8974 ; WX 809 ; N uni230E ; G 3481 +U 8975 ; WX 809 ; N uni230F ; G 3482 +U 8976 ; WX 838 ; N revlogicalnot ; G 3483 +U 8977 ; WX 539 ; N uni2311 ; G 3484 +U 8984 ; WX 928 ; N uni2318 ; G 3485 +U 8985 ; WX 838 ; N uni2319 ; G 3486 +U 8988 ; WX 469 ; N uni231C ; G 3487 +U 8989 ; WX 469 ; N uni231D ; G 3488 +U 8990 ; WX 469 ; N uni231E ; G 3489 +U 8991 ; WX 469 ; N uni231F ; G 3490 +U 8992 ; WX 610 ; N integraltp ; G 3491 +U 8993 ; WX 610 ; N integralbt ; G 3492 +U 8996 ; WX 1152 ; N uni2324 ; G 3493 +U 8997 ; WX 1152 ; N uni2325 ; G 3494 +U 8998 ; WX 1414 ; N uni2326 ; G 3495 +U 8999 ; WX 1152 ; N uni2327 ; G 3496 +U 9000 ; WX 1443 ; N uni2328 ; G 3497 +U 9003 ; WX 1414 ; N uni232B ; G 3498 +U 9004 ; WX 873 ; N uni232C ; G 3499 +U 9075 ; WX 390 ; N uni2373 ; G 3500 +U 9076 ; WX 716 ; N uni2374 ; G 3501 +U 9077 ; WX 869 ; N uni2375 ; G 3502 +U 9082 ; WX 687 ; N uni237A ; G 3503 +U 9085 ; WX 863 ; N uni237D ; G 3504 +U 9095 ; WX 1152 ; N uni2387 ; G 3505 +U 9108 ; WX 873 ; N uni2394 ; G 3506 +U 9115 ; WX 500 ; N uni239B ; G 3507 +U 9116 ; WX 500 ; N uni239C ; G 3508 +U 9117 ; WX 500 ; N uni239D ; G 3509 +U 9118 ; WX 500 ; N uni239E ; G 3510 +U 9119 ; WX 500 ; N uni239F ; G 3511 +U 9120 ; WX 500 ; N uni23A0 ; G 3512 +U 9121 ; WX 500 ; N uni23A1 ; G 3513 +U 9122 ; WX 500 ; N uni23A2 ; G 3514 +U 9123 ; WX 500 ; N uni23A3 ; G 3515 +U 9124 ; WX 500 ; N uni23A4 ; G 3516 +U 9125 ; WX 500 ; N uni23A5 ; G 3517 +U 9126 ; WX 500 ; N uni23A6 ; G 3518 +U 9127 ; WX 750 ; N uni23A7 ; G 3519 +U 9128 ; WX 750 ; N uni23A8 ; G 3520 +U 9129 ; WX 750 ; N uni23A9 ; G 3521 +U 9130 ; WX 750 ; N uni23AA ; G 3522 +U 9131 ; WX 750 ; N uni23AB ; G 3523 +U 9132 ; WX 750 ; N uni23AC ; G 3524 +U 9133 ; WX 750 ; N uni23AD ; G 3525 +U 9134 ; WX 610 ; N uni23AE ; G 3526 +U 9166 ; WX 838 ; N uni23CE ; G 3527 +U 9167 ; WX 945 ; N uni23CF ; G 3528 +U 9187 ; WX 873 ; N uni23E3 ; G 3529 +U 9189 ; WX 769 ; N uni23E5 ; G 3530 +U 9192 ; WX 696 ; N uni23E8 ; G 3531 +U 9250 ; WX 716 ; N uni2422 ; G 3532 +U 9251 ; WX 716 ; N uni2423 ; G 3533 +U 9312 ; WX 847 ; N uni2460 ; G 3534 +U 9313 ; WX 847 ; N uni2461 ; G 3535 +U 9314 ; WX 847 ; N uni2462 ; G 3536 +U 9315 ; WX 847 ; N uni2463 ; G 3537 +U 9316 ; WX 847 ; N uni2464 ; G 3538 +U 9317 ; WX 847 ; N uni2465 ; G 3539 +U 9318 ; WX 847 ; N uni2466 ; G 3540 +U 9319 ; WX 847 ; N uni2467 ; G 3541 +U 9320 ; WX 847 ; N uni2468 ; G 3542 +U 9321 ; WX 847 ; N uni2469 ; G 3543 +U 9472 ; WX 602 ; N SF100000 ; G 3544 +U 9473 ; WX 602 ; N uni2501 ; G 3545 +U 9474 ; WX 602 ; N SF110000 ; G 3546 +U 9475 ; WX 602 ; N uni2503 ; G 3547 +U 9476 ; WX 602 ; N uni2504 ; G 3548 +U 9477 ; WX 602 ; N uni2505 ; G 3549 +U 9478 ; WX 602 ; N uni2506 ; G 3550 +U 9479 ; WX 602 ; N uni2507 ; G 3551 +U 9480 ; WX 602 ; N uni2508 ; G 3552 +U 9481 ; WX 602 ; N uni2509 ; G 3553 +U 9482 ; WX 602 ; N uni250A ; G 3554 +U 9483 ; WX 602 ; N uni250B ; G 3555 +U 9484 ; WX 602 ; N SF010000 ; G 3556 +U 9485 ; WX 602 ; N uni250D ; G 3557 +U 9486 ; WX 602 ; N uni250E ; G 3558 +U 9487 ; WX 602 ; N uni250F ; G 3559 +U 9488 ; WX 602 ; N SF030000 ; G 3560 +U 9489 ; WX 602 ; N uni2511 ; G 3561 +U 9490 ; WX 602 ; N uni2512 ; G 3562 +U 9491 ; WX 602 ; N uni2513 ; G 3563 +U 9492 ; WX 602 ; N SF020000 ; G 3564 +U 9493 ; WX 602 ; N uni2515 ; G 3565 +U 9494 ; WX 602 ; N uni2516 ; G 3566 +U 9495 ; WX 602 ; N uni2517 ; G 3567 +U 9496 ; WX 602 ; N SF040000 ; G 3568 +U 9497 ; WX 602 ; N uni2519 ; G 3569 +U 9498 ; WX 602 ; N uni251A ; G 3570 +U 9499 ; WX 602 ; N uni251B ; G 3571 +U 9500 ; WX 602 ; N SF080000 ; G 3572 +U 9501 ; WX 602 ; N uni251D ; G 3573 +U 9502 ; WX 602 ; N uni251E ; G 3574 +U 9503 ; WX 602 ; N uni251F ; G 3575 +U 9504 ; WX 602 ; N uni2520 ; G 3576 +U 9505 ; WX 602 ; N uni2521 ; G 3577 +U 9506 ; WX 602 ; N uni2522 ; G 3578 +U 9507 ; WX 602 ; N uni2523 ; G 3579 +U 9508 ; WX 602 ; N SF090000 ; G 3580 +U 9509 ; WX 602 ; N uni2525 ; G 3581 +U 9510 ; WX 602 ; N uni2526 ; G 3582 +U 9511 ; WX 602 ; N uni2527 ; G 3583 +U 9512 ; WX 602 ; N uni2528 ; G 3584 +U 9513 ; WX 602 ; N uni2529 ; G 3585 +U 9514 ; WX 602 ; N uni252A ; G 3586 +U 9515 ; WX 602 ; N uni252B ; G 3587 +U 9516 ; WX 602 ; N SF060000 ; G 3588 +U 9517 ; WX 602 ; N uni252D ; G 3589 +U 9518 ; WX 602 ; N uni252E ; G 3590 +U 9519 ; WX 602 ; N uni252F ; G 3591 +U 9520 ; WX 602 ; N uni2530 ; G 3592 +U 9521 ; WX 602 ; N uni2531 ; G 3593 +U 9522 ; WX 602 ; N uni2532 ; G 3594 +U 9523 ; WX 602 ; N uni2533 ; G 3595 +U 9524 ; WX 602 ; N SF070000 ; G 3596 +U 9525 ; WX 602 ; N uni2535 ; G 3597 +U 9526 ; WX 602 ; N uni2536 ; G 3598 +U 9527 ; WX 602 ; N uni2537 ; G 3599 +U 9528 ; WX 602 ; N uni2538 ; G 3600 +U 9529 ; WX 602 ; N uni2539 ; G 3601 +U 9530 ; WX 602 ; N uni253A ; G 3602 +U 9531 ; WX 602 ; N uni253B ; G 3603 +U 9532 ; WX 602 ; N SF050000 ; G 3604 +U 9533 ; WX 602 ; N uni253D ; G 3605 +U 9534 ; WX 602 ; N uni253E ; G 3606 +U 9535 ; WX 602 ; N uni253F ; G 3607 +U 9536 ; WX 602 ; N uni2540 ; G 3608 +U 9537 ; WX 602 ; N uni2541 ; G 3609 +U 9538 ; WX 602 ; N uni2542 ; G 3610 +U 9539 ; WX 602 ; N uni2543 ; G 3611 +U 9540 ; WX 602 ; N uni2544 ; G 3612 +U 9541 ; WX 602 ; N uni2545 ; G 3613 +U 9542 ; WX 602 ; N uni2546 ; G 3614 +U 9543 ; WX 602 ; N uni2547 ; G 3615 +U 9544 ; WX 602 ; N uni2548 ; G 3616 +U 9545 ; WX 602 ; N uni2549 ; G 3617 +U 9546 ; WX 602 ; N uni254A ; G 3618 +U 9547 ; WX 602 ; N uni254B ; G 3619 +U 9548 ; WX 602 ; N uni254C ; G 3620 +U 9549 ; WX 602 ; N uni254D ; G 3621 +U 9550 ; WX 602 ; N uni254E ; G 3622 +U 9551 ; WX 602 ; N uni254F ; G 3623 +U 9552 ; WX 602 ; N SF430000 ; G 3624 +U 9553 ; WX 602 ; N SF240000 ; G 3625 +U 9554 ; WX 602 ; N SF510000 ; G 3626 +U 9555 ; WX 602 ; N SF520000 ; G 3627 +U 9556 ; WX 602 ; N SF390000 ; G 3628 +U 9557 ; WX 602 ; N SF220000 ; G 3629 +U 9558 ; WX 602 ; N SF210000 ; G 3630 +U 9559 ; WX 602 ; N SF250000 ; G 3631 +U 9560 ; WX 602 ; N SF500000 ; G 3632 +U 9561 ; WX 602 ; N SF490000 ; G 3633 +U 9562 ; WX 602 ; N SF380000 ; G 3634 +U 9563 ; WX 602 ; N SF280000 ; G 3635 +U 9564 ; WX 602 ; N SF270000 ; G 3636 +U 9565 ; WX 602 ; N SF260000 ; G 3637 +U 9566 ; WX 602 ; N SF360000 ; G 3638 +U 9567 ; WX 602 ; N SF370000 ; G 3639 +U 9568 ; WX 602 ; N SF420000 ; G 3640 +U 9569 ; WX 602 ; N SF190000 ; G 3641 +U 9570 ; WX 602 ; N SF200000 ; G 3642 +U 9571 ; WX 602 ; N SF230000 ; G 3643 +U 9572 ; WX 602 ; N SF470000 ; G 3644 +U 9573 ; WX 602 ; N SF480000 ; G 3645 +U 9574 ; WX 602 ; N SF410000 ; G 3646 +U 9575 ; WX 602 ; N SF450000 ; G 3647 +U 9576 ; WX 602 ; N SF460000 ; G 3648 +U 9577 ; WX 602 ; N SF400000 ; G 3649 +U 9578 ; WX 602 ; N SF540000 ; G 3650 +U 9579 ; WX 602 ; N SF530000 ; G 3651 +U 9580 ; WX 602 ; N SF440000 ; G 3652 +U 9581 ; WX 602 ; N uni256D ; G 3653 +U 9582 ; WX 602 ; N uni256E ; G 3654 +U 9583 ; WX 602 ; N uni256F ; G 3655 +U 9584 ; WX 602 ; N uni2570 ; G 3656 +U 9585 ; WX 602 ; N uni2571 ; G 3657 +U 9586 ; WX 602 ; N uni2572 ; G 3658 +U 9587 ; WX 602 ; N uni2573 ; G 3659 +U 9588 ; WX 602 ; N uni2574 ; G 3660 +U 9589 ; WX 602 ; N uni2575 ; G 3661 +U 9590 ; WX 602 ; N uni2576 ; G 3662 +U 9591 ; WX 602 ; N uni2577 ; G 3663 +U 9592 ; WX 602 ; N uni2578 ; G 3664 +U 9593 ; WX 602 ; N uni2579 ; G 3665 +U 9594 ; WX 602 ; N uni257A ; G 3666 +U 9595 ; WX 602 ; N uni257B ; G 3667 +U 9596 ; WX 602 ; N uni257C ; G 3668 +U 9597 ; WX 602 ; N uni257D ; G 3669 +U 9598 ; WX 602 ; N uni257E ; G 3670 +U 9599 ; WX 602 ; N uni257F ; G 3671 +U 9600 ; WX 769 ; N upblock ; G 3672 +U 9601 ; WX 769 ; N uni2581 ; G 3673 +U 9602 ; WX 769 ; N uni2582 ; G 3674 +U 9603 ; WX 769 ; N uni2583 ; G 3675 +U 9604 ; WX 769 ; N dnblock ; G 3676 +U 9605 ; WX 769 ; N uni2585 ; G 3677 +U 9606 ; WX 769 ; N uni2586 ; G 3678 +U 9607 ; WX 769 ; N uni2587 ; G 3679 +U 9608 ; WX 769 ; N block ; G 3680 +U 9609 ; WX 769 ; N uni2589 ; G 3681 +U 9610 ; WX 769 ; N uni258A ; G 3682 +U 9611 ; WX 769 ; N uni258B ; G 3683 +U 9612 ; WX 769 ; N lfblock ; G 3684 +U 9613 ; WX 769 ; N uni258D ; G 3685 +U 9614 ; WX 769 ; N uni258E ; G 3686 +U 9615 ; WX 769 ; N uni258F ; G 3687 +U 9616 ; WX 769 ; N rtblock ; G 3688 +U 9617 ; WX 769 ; N ltshade ; G 3689 +U 9618 ; WX 769 ; N shade ; G 3690 +U 9619 ; WX 769 ; N dkshade ; G 3691 +U 9620 ; WX 769 ; N uni2594 ; G 3692 +U 9621 ; WX 769 ; N uni2595 ; G 3693 +U 9622 ; WX 769 ; N uni2596 ; G 3694 +U 9623 ; WX 769 ; N uni2597 ; G 3695 +U 9624 ; WX 769 ; N uni2598 ; G 3696 +U 9625 ; WX 769 ; N uni2599 ; G 3697 +U 9626 ; WX 769 ; N uni259A ; G 3698 +U 9627 ; WX 769 ; N uni259B ; G 3699 +U 9628 ; WX 769 ; N uni259C ; G 3700 +U 9629 ; WX 769 ; N uni259D ; G 3701 +U 9630 ; WX 769 ; N uni259E ; G 3702 +U 9631 ; WX 769 ; N uni259F ; G 3703 +U 9632 ; WX 945 ; N filledbox ; G 3704 +U 9633 ; WX 945 ; N H22073 ; G 3705 +U 9634 ; WX 945 ; N uni25A2 ; G 3706 +U 9635 ; WX 945 ; N uni25A3 ; G 3707 +U 9636 ; WX 945 ; N uni25A4 ; G 3708 +U 9637 ; WX 945 ; N uni25A5 ; G 3709 +U 9638 ; WX 945 ; N uni25A6 ; G 3710 +U 9639 ; WX 945 ; N uni25A7 ; G 3711 +U 9640 ; WX 945 ; N uni25A8 ; G 3712 +U 9641 ; WX 945 ; N uni25A9 ; G 3713 +U 9642 ; WX 678 ; N H18543 ; G 3714 +U 9643 ; WX 678 ; N H18551 ; G 3715 +U 9644 ; WX 945 ; N filledrect ; G 3716 +U 9645 ; WX 945 ; N uni25AD ; G 3717 +U 9646 ; WX 550 ; N uni25AE ; G 3718 +U 9647 ; WX 550 ; N uni25AF ; G 3719 +U 9648 ; WX 769 ; N uni25B0 ; G 3720 +U 9649 ; WX 769 ; N uni25B1 ; G 3721 +U 9650 ; WX 769 ; N triagup ; G 3722 +U 9651 ; WX 769 ; N uni25B3 ; G 3723 +U 9652 ; WX 502 ; N uni25B4 ; G 3724 +U 9653 ; WX 502 ; N uni25B5 ; G 3725 +U 9654 ; WX 769 ; N uni25B6 ; G 3726 +U 9655 ; WX 769 ; N uni25B7 ; G 3727 +U 9656 ; WX 502 ; N uni25B8 ; G 3728 +U 9657 ; WX 502 ; N uni25B9 ; G 3729 +U 9658 ; WX 769 ; N triagrt ; G 3730 +U 9659 ; WX 769 ; N uni25BB ; G 3731 +U 9660 ; WX 769 ; N triagdn ; G 3732 +U 9661 ; WX 769 ; N uni25BD ; G 3733 +U 9662 ; WX 502 ; N uni25BE ; G 3734 +U 9663 ; WX 502 ; N uni25BF ; G 3735 +U 9664 ; WX 769 ; N uni25C0 ; G 3736 +U 9665 ; WX 769 ; N uni25C1 ; G 3737 +U 9666 ; WX 502 ; N uni25C2 ; G 3738 +U 9667 ; WX 502 ; N uni25C3 ; G 3739 +U 9668 ; WX 769 ; N triaglf ; G 3740 +U 9669 ; WX 769 ; N uni25C5 ; G 3741 +U 9670 ; WX 769 ; N uni25C6 ; G 3742 +U 9671 ; WX 769 ; N uni25C7 ; G 3743 +U 9672 ; WX 769 ; N uni25C8 ; G 3744 +U 9673 ; WX 873 ; N uni25C9 ; G 3745 +U 9674 ; WX 494 ; N lozenge ; G 3746 +U 9675 ; WX 873 ; N circle ; G 3747 +U 9676 ; WX 873 ; N uni25CC ; G 3748 +U 9677 ; WX 873 ; N uni25CD ; G 3749 +U 9678 ; WX 873 ; N uni25CE ; G 3750 +U 9679 ; WX 873 ; N H18533 ; G 3751 +U 9680 ; WX 873 ; N uni25D0 ; G 3752 +U 9681 ; WX 873 ; N uni25D1 ; G 3753 +U 9682 ; WX 873 ; N uni25D2 ; G 3754 +U 9683 ; WX 873 ; N uni25D3 ; G 3755 +U 9684 ; WX 873 ; N uni25D4 ; G 3756 +U 9685 ; WX 873 ; N uni25D5 ; G 3757 +U 9686 ; WX 527 ; N uni25D6 ; G 3758 +U 9687 ; WX 527 ; N uni25D7 ; G 3759 +U 9688 ; WX 840 ; N invbullet ; G 3760 +U 9689 ; WX 970 ; N invcircle ; G 3761 +U 9690 ; WX 970 ; N uni25DA ; G 3762 +U 9691 ; WX 970 ; N uni25DB ; G 3763 +U 9692 ; WX 387 ; N uni25DC ; G 3764 +U 9693 ; WX 387 ; N uni25DD ; G 3765 +U 9694 ; WX 387 ; N uni25DE ; G 3766 +U 9695 ; WX 387 ; N uni25DF ; G 3767 +U 9696 ; WX 769 ; N uni25E0 ; G 3768 +U 9697 ; WX 769 ; N uni25E1 ; G 3769 +U 9698 ; WX 769 ; N uni25E2 ; G 3770 +U 9699 ; WX 769 ; N uni25E3 ; G 3771 +U 9700 ; WX 769 ; N uni25E4 ; G 3772 +U 9701 ; WX 769 ; N uni25E5 ; G 3773 +U 9702 ; WX 639 ; N openbullet ; G 3774 +U 9703 ; WX 945 ; N uni25E7 ; G 3775 +U 9704 ; WX 945 ; N uni25E8 ; G 3776 +U 9705 ; WX 945 ; N uni25E9 ; G 3777 +U 9706 ; WX 945 ; N uni25EA ; G 3778 +U 9707 ; WX 945 ; N uni25EB ; G 3779 +U 9708 ; WX 769 ; N uni25EC ; G 3780 +U 9709 ; WX 769 ; N uni25ED ; G 3781 +U 9710 ; WX 769 ; N uni25EE ; G 3782 +U 9711 ; WX 1119 ; N uni25EF ; G 3783 +U 9712 ; WX 945 ; N uni25F0 ; G 3784 +U 9713 ; WX 945 ; N uni25F1 ; G 3785 +U 9714 ; WX 945 ; N uni25F2 ; G 3786 +U 9715 ; WX 945 ; N uni25F3 ; G 3787 +U 9716 ; WX 873 ; N uni25F4 ; G 3788 +U 9717 ; WX 873 ; N uni25F5 ; G 3789 +U 9718 ; WX 873 ; N uni25F6 ; G 3790 +U 9719 ; WX 873 ; N uni25F7 ; G 3791 +U 9720 ; WX 769 ; N uni25F8 ; G 3792 +U 9721 ; WX 769 ; N uni25F9 ; G 3793 +U 9722 ; WX 769 ; N uni25FA ; G 3794 +U 9723 ; WX 830 ; N uni25FB ; G 3795 +U 9724 ; WX 830 ; N uni25FC ; G 3796 +U 9725 ; WX 732 ; N uni25FD ; G 3797 +U 9726 ; WX 732 ; N uni25FE ; G 3798 +U 9727 ; WX 769 ; N uni25FF ; G 3799 +U 9728 ; WX 896 ; N uni2600 ; G 3800 +U 9729 ; WX 1000 ; N uni2601 ; G 3801 +U 9730 ; WX 896 ; N uni2602 ; G 3802 +U 9731 ; WX 896 ; N uni2603 ; G 3803 +U 9732 ; WX 896 ; N uni2604 ; G 3804 +U 9733 ; WX 896 ; N uni2605 ; G 3805 +U 9734 ; WX 896 ; N uni2606 ; G 3806 +U 9735 ; WX 573 ; N uni2607 ; G 3807 +U 9736 ; WX 896 ; N uni2608 ; G 3808 +U 9737 ; WX 896 ; N uni2609 ; G 3809 +U 9738 ; WX 888 ; N uni260A ; G 3810 +U 9739 ; WX 888 ; N uni260B ; G 3811 +U 9740 ; WX 671 ; N uni260C ; G 3812 +U 9741 ; WX 1013 ; N uni260D ; G 3813 +U 9742 ; WX 1246 ; N uni260E ; G 3814 +U 9743 ; WX 1250 ; N uni260F ; G 3815 +U 9744 ; WX 896 ; N uni2610 ; G 3816 +U 9745 ; WX 896 ; N uni2611 ; G 3817 +U 9746 ; WX 896 ; N uni2612 ; G 3818 +U 9747 ; WX 532 ; N uni2613 ; G 3819 +U 9748 ; WX 896 ; N uni2614 ; G 3820 +U 9749 ; WX 896 ; N uni2615 ; G 3821 +U 9750 ; WX 896 ; N uni2616 ; G 3822 +U 9751 ; WX 896 ; N uni2617 ; G 3823 +U 9752 ; WX 896 ; N uni2618 ; G 3824 +U 9753 ; WX 896 ; N uni2619 ; G 3825 +U 9754 ; WX 896 ; N uni261A ; G 3826 +U 9755 ; WX 896 ; N uni261B ; G 3827 +U 9756 ; WX 896 ; N uni261C ; G 3828 +U 9757 ; WX 609 ; N uni261D ; G 3829 +U 9758 ; WX 896 ; N uni261E ; G 3830 +U 9759 ; WX 609 ; N uni261F ; G 3831 +U 9760 ; WX 896 ; N uni2620 ; G 3832 +U 9761 ; WX 896 ; N uni2621 ; G 3833 +U 9762 ; WX 896 ; N uni2622 ; G 3834 +U 9763 ; WX 896 ; N uni2623 ; G 3835 +U 9764 ; WX 669 ; N uni2624 ; G 3836 +U 9765 ; WX 746 ; N uni2625 ; G 3837 +U 9766 ; WX 649 ; N uni2626 ; G 3838 +U 9767 ; WX 784 ; N uni2627 ; G 3839 +U 9768 ; WX 545 ; N uni2628 ; G 3840 +U 9769 ; WX 896 ; N uni2629 ; G 3841 +U 9770 ; WX 896 ; N uni262A ; G 3842 +U 9771 ; WX 896 ; N uni262B ; G 3843 +U 9772 ; WX 710 ; N uni262C ; G 3844 +U 9773 ; WX 896 ; N uni262D ; G 3845 +U 9774 ; WX 896 ; N uni262E ; G 3846 +U 9775 ; WX 896 ; N uni262F ; G 3847 +U 9776 ; WX 896 ; N uni2630 ; G 3848 +U 9777 ; WX 896 ; N uni2631 ; G 3849 +U 9778 ; WX 896 ; N uni2632 ; G 3850 +U 9779 ; WX 896 ; N uni2633 ; G 3851 +U 9780 ; WX 896 ; N uni2634 ; G 3852 +U 9781 ; WX 896 ; N uni2635 ; G 3853 +U 9782 ; WX 896 ; N uni2636 ; G 3854 +U 9783 ; WX 896 ; N uni2637 ; G 3855 +U 9784 ; WX 896 ; N uni2638 ; G 3856 +U 9785 ; WX 1042 ; N uni2639 ; G 3857 +U 9786 ; WX 1042 ; N smileface ; G 3858 +U 9787 ; WX 1042 ; N invsmileface ; G 3859 +U 9788 ; WX 896 ; N sun ; G 3860 +U 9789 ; WX 896 ; N uni263D ; G 3861 +U 9790 ; WX 896 ; N uni263E ; G 3862 +U 9791 ; WX 614 ; N uni263F ; G 3863 +U 9792 ; WX 732 ; N female ; G 3864 +U 9793 ; WX 732 ; N uni2641 ; G 3865 +U 9794 ; WX 896 ; N male ; G 3866 +U 9795 ; WX 896 ; N uni2643 ; G 3867 +U 9796 ; WX 896 ; N uni2644 ; G 3868 +U 9797 ; WX 896 ; N uni2645 ; G 3869 +U 9798 ; WX 896 ; N uni2646 ; G 3870 +U 9799 ; WX 896 ; N uni2647 ; G 3871 +U 9800 ; WX 896 ; N uni2648 ; G 3872 +U 9801 ; WX 896 ; N uni2649 ; G 3873 +U 9802 ; WX 896 ; N uni264A ; G 3874 +U 9803 ; WX 896 ; N uni264B ; G 3875 +U 9804 ; WX 896 ; N uni264C ; G 3876 +U 9805 ; WX 896 ; N uni264D ; G 3877 +U 9806 ; WX 896 ; N uni264E ; G 3878 +U 9807 ; WX 896 ; N uni264F ; G 3879 +U 9808 ; WX 896 ; N uni2650 ; G 3880 +U 9809 ; WX 896 ; N uni2651 ; G 3881 +U 9810 ; WX 896 ; N uni2652 ; G 3882 +U 9811 ; WX 896 ; N uni2653 ; G 3883 +U 9812 ; WX 896 ; N uni2654 ; G 3884 +U 9813 ; WX 896 ; N uni2655 ; G 3885 +U 9814 ; WX 896 ; N uni2656 ; G 3886 +U 9815 ; WX 896 ; N uni2657 ; G 3887 +U 9816 ; WX 896 ; N uni2658 ; G 3888 +U 9817 ; WX 896 ; N uni2659 ; G 3889 +U 9818 ; WX 896 ; N uni265A ; G 3890 +U 9819 ; WX 896 ; N uni265B ; G 3891 +U 9820 ; WX 896 ; N uni265C ; G 3892 +U 9821 ; WX 896 ; N uni265D ; G 3893 +U 9822 ; WX 896 ; N uni265E ; G 3894 +U 9823 ; WX 896 ; N uni265F ; G 3895 +U 9824 ; WX 896 ; N spade ; G 3896 +U 9825 ; WX 896 ; N uni2661 ; G 3897 +U 9826 ; WX 896 ; N uni2662 ; G 3898 +U 9827 ; WX 896 ; N club ; G 3899 +U 9828 ; WX 896 ; N uni2664 ; G 3900 +U 9829 ; WX 896 ; N heart ; G 3901 +U 9830 ; WX 896 ; N diamond ; G 3902 +U 9831 ; WX 896 ; N uni2667 ; G 3903 +U 9832 ; WX 896 ; N uni2668 ; G 3904 +U 9833 ; WX 472 ; N uni2669 ; G 3905 +U 9834 ; WX 638 ; N musicalnote ; G 3906 +U 9835 ; WX 896 ; N musicalnotedbl ; G 3907 +U 9836 ; WX 896 ; N uni266C ; G 3908 +U 9837 ; WX 472 ; N uni266D ; G 3909 +U 9838 ; WX 357 ; N uni266E ; G 3910 +U 9839 ; WX 484 ; N uni266F ; G 3911 +U 9840 ; WX 748 ; N uni2670 ; G 3912 +U 9841 ; WX 766 ; N uni2671 ; G 3913 +U 9842 ; WX 896 ; N uni2672 ; G 3914 +U 9843 ; WX 896 ; N uni2673 ; G 3915 +U 9844 ; WX 896 ; N uni2674 ; G 3916 +U 9845 ; WX 896 ; N uni2675 ; G 3917 +U 9846 ; WX 896 ; N uni2676 ; G 3918 +U 9847 ; WX 896 ; N uni2677 ; G 3919 +U 9848 ; WX 896 ; N uni2678 ; G 3920 +U 9849 ; WX 896 ; N uni2679 ; G 3921 +U 9850 ; WX 896 ; N uni267A ; G 3922 +U 9851 ; WX 896 ; N uni267B ; G 3923 +U 9852 ; WX 896 ; N uni267C ; G 3924 +U 9853 ; WX 896 ; N uni267D ; G 3925 +U 9854 ; WX 896 ; N uni267E ; G 3926 +U 9855 ; WX 896 ; N uni267F ; G 3927 +U 9856 ; WX 869 ; N uni2680 ; G 3928 +U 9857 ; WX 869 ; N uni2681 ; G 3929 +U 9858 ; WX 869 ; N uni2682 ; G 3930 +U 9859 ; WX 869 ; N uni2683 ; G 3931 +U 9860 ; WX 869 ; N uni2684 ; G 3932 +U 9861 ; WX 869 ; N uni2685 ; G 3933 +U 9862 ; WX 896 ; N uni2686 ; G 3934 +U 9863 ; WX 896 ; N uni2687 ; G 3935 +U 9864 ; WX 896 ; N uni2688 ; G 3936 +U 9865 ; WX 896 ; N uni2689 ; G 3937 +U 9866 ; WX 896 ; N uni268A ; G 3938 +U 9867 ; WX 896 ; N uni268B ; G 3939 +U 9868 ; WX 896 ; N uni268C ; G 3940 +U 9869 ; WX 896 ; N uni268D ; G 3941 +U 9870 ; WX 896 ; N uni268E ; G 3942 +U 9871 ; WX 896 ; N uni268F ; G 3943 +U 9872 ; WX 896 ; N uni2690 ; G 3944 +U 9873 ; WX 896 ; N uni2691 ; G 3945 +U 9874 ; WX 896 ; N uni2692 ; G 3946 +U 9875 ; WX 896 ; N uni2693 ; G 3947 +U 9876 ; WX 896 ; N uni2694 ; G 3948 +U 9877 ; WX 541 ; N uni2695 ; G 3949 +U 9878 ; WX 896 ; N uni2696 ; G 3950 +U 9879 ; WX 896 ; N uni2697 ; G 3951 +U 9880 ; WX 896 ; N uni2698 ; G 3952 +U 9881 ; WX 896 ; N uni2699 ; G 3953 +U 9882 ; WX 896 ; N uni269A ; G 3954 +U 9883 ; WX 896 ; N uni269B ; G 3955 +U 9884 ; WX 896 ; N uni269C ; G 3956 +U 9886 ; WX 896 ; N uni269E ; G 3957 +U 9887 ; WX 896 ; N uni269F ; G 3958 +U 9888 ; WX 896 ; N uni26A0 ; G 3959 +U 9889 ; WX 702 ; N uni26A1 ; G 3960 +U 9890 ; WX 1004 ; N uni26A2 ; G 3961 +U 9891 ; WX 1089 ; N uni26A3 ; G 3962 +U 9892 ; WX 1175 ; N uni26A4 ; G 3963 +U 9893 ; WX 903 ; N uni26A5 ; G 3964 +U 9894 ; WX 838 ; N uni26A6 ; G 3965 +U 9895 ; WX 838 ; N uni26A7 ; G 3966 +U 9896 ; WX 838 ; N uni26A8 ; G 3967 +U 9897 ; WX 838 ; N uni26A9 ; G 3968 +U 9898 ; WX 838 ; N uni26AA ; G 3969 +U 9899 ; WX 838 ; N uni26AB ; G 3970 +U 9900 ; WX 838 ; N uni26AC ; G 3971 +U 9901 ; WX 838 ; N uni26AD ; G 3972 +U 9902 ; WX 838 ; N uni26AE ; G 3973 +U 9903 ; WX 838 ; N uni26AF ; G 3974 +U 9904 ; WX 844 ; N uni26B0 ; G 3975 +U 9905 ; WX 838 ; N uni26B1 ; G 3976 +U 9906 ; WX 732 ; N uni26B2 ; G 3977 +U 9907 ; WX 732 ; N uni26B3 ; G 3978 +U 9908 ; WX 732 ; N uni26B4 ; G 3979 +U 9909 ; WX 732 ; N uni26B5 ; G 3980 +U 9910 ; WX 850 ; N uni26B6 ; G 3981 +U 9911 ; WX 732 ; N uni26B7 ; G 3982 +U 9912 ; WX 732 ; N uni26B8 ; G 3983 +U 9920 ; WX 838 ; N uni26C0 ; G 3984 +U 9921 ; WX 838 ; N uni26C1 ; G 3985 +U 9922 ; WX 838 ; N uni26C2 ; G 3986 +U 9923 ; WX 838 ; N uni26C3 ; G 3987 +U 9954 ; WX 732 ; N uni26E2 ; G 3988 +U 9985 ; WX 838 ; N uni2701 ; G 3989 +U 9986 ; WX 838 ; N uni2702 ; G 3990 +U 9987 ; WX 838 ; N uni2703 ; G 3991 +U 9988 ; WX 838 ; N uni2704 ; G 3992 +U 9990 ; WX 838 ; N uni2706 ; G 3993 +U 9991 ; WX 838 ; N uni2707 ; G 3994 +U 9992 ; WX 838 ; N uni2708 ; G 3995 +U 9993 ; WX 838 ; N uni2709 ; G 3996 +U 9996 ; WX 838 ; N uni270C ; G 3997 +U 9997 ; WX 838 ; N uni270D ; G 3998 +U 9998 ; WX 838 ; N uni270E ; G 3999 +U 9999 ; WX 838 ; N uni270F ; G 4000 +U 10000 ; WX 838 ; N uni2710 ; G 4001 +U 10001 ; WX 838 ; N uni2711 ; G 4002 +U 10002 ; WX 838 ; N uni2712 ; G 4003 +U 10003 ; WX 838 ; N uni2713 ; G 4004 +U 10004 ; WX 838 ; N uni2714 ; G 4005 +U 10005 ; WX 838 ; N uni2715 ; G 4006 +U 10006 ; WX 838 ; N uni2716 ; G 4007 +U 10007 ; WX 838 ; N uni2717 ; G 4008 +U 10008 ; WX 838 ; N uni2718 ; G 4009 +U 10009 ; WX 838 ; N uni2719 ; G 4010 +U 10010 ; WX 838 ; N uni271A ; G 4011 +U 10011 ; WX 838 ; N uni271B ; G 4012 +U 10012 ; WX 838 ; N uni271C ; G 4013 +U 10013 ; WX 838 ; N uni271D ; G 4014 +U 10014 ; WX 838 ; N uni271E ; G 4015 +U 10015 ; WX 838 ; N uni271F ; G 4016 +U 10016 ; WX 838 ; N uni2720 ; G 4017 +U 10017 ; WX 838 ; N uni2721 ; G 4018 +U 10018 ; WX 838 ; N uni2722 ; G 4019 +U 10019 ; WX 838 ; N uni2723 ; G 4020 +U 10020 ; WX 838 ; N uni2724 ; G 4021 +U 10021 ; WX 838 ; N uni2725 ; G 4022 +U 10022 ; WX 838 ; N uni2726 ; G 4023 +U 10023 ; WX 838 ; N uni2727 ; G 4024 +U 10025 ; WX 838 ; N uni2729 ; G 4025 +U 10026 ; WX 838 ; N uni272A ; G 4026 +U 10027 ; WX 838 ; N uni272B ; G 4027 +U 10028 ; WX 838 ; N uni272C ; G 4028 +U 10029 ; WX 838 ; N uni272D ; G 4029 +U 10030 ; WX 838 ; N uni272E ; G 4030 +U 10031 ; WX 838 ; N uni272F ; G 4031 +U 10032 ; WX 838 ; N uni2730 ; G 4032 +U 10033 ; WX 838 ; N uni2731 ; G 4033 +U 10034 ; WX 838 ; N uni2732 ; G 4034 +U 10035 ; WX 838 ; N uni2733 ; G 4035 +U 10036 ; WX 838 ; N uni2734 ; G 4036 +U 10037 ; WX 838 ; N uni2735 ; G 4037 +U 10038 ; WX 838 ; N uni2736 ; G 4038 +U 10039 ; WX 838 ; N uni2737 ; G 4039 +U 10040 ; WX 838 ; N uni2738 ; G 4040 +U 10041 ; WX 838 ; N uni2739 ; G 4041 +U 10042 ; WX 838 ; N uni273A ; G 4042 +U 10043 ; WX 838 ; N uni273B ; G 4043 +U 10044 ; WX 838 ; N uni273C ; G 4044 +U 10045 ; WX 838 ; N uni273D ; G 4045 +U 10046 ; WX 838 ; N uni273E ; G 4046 +U 10047 ; WX 838 ; N uni273F ; G 4047 +U 10048 ; WX 838 ; N uni2740 ; G 4048 +U 10049 ; WX 838 ; N uni2741 ; G 4049 +U 10050 ; WX 838 ; N uni2742 ; G 4050 +U 10051 ; WX 838 ; N uni2743 ; G 4051 +U 10052 ; WX 838 ; N uni2744 ; G 4052 +U 10053 ; WX 838 ; N uni2745 ; G 4053 +U 10054 ; WX 838 ; N uni2746 ; G 4054 +U 10055 ; WX 838 ; N uni2747 ; G 4055 +U 10056 ; WX 838 ; N uni2748 ; G 4056 +U 10057 ; WX 838 ; N uni2749 ; G 4057 +U 10058 ; WX 838 ; N uni274A ; G 4058 +U 10059 ; WX 838 ; N uni274B ; G 4059 +U 10061 ; WX 896 ; N uni274D ; G 4060 +U 10063 ; WX 896 ; N uni274F ; G 4061 +U 10064 ; WX 896 ; N uni2750 ; G 4062 +U 10065 ; WX 896 ; N uni2751 ; G 4063 +U 10066 ; WX 896 ; N uni2752 ; G 4064 +U 10070 ; WX 896 ; N uni2756 ; G 4065 +U 10072 ; WX 838 ; N uni2758 ; G 4066 +U 10073 ; WX 838 ; N uni2759 ; G 4067 +U 10074 ; WX 838 ; N uni275A ; G 4068 +U 10075 ; WX 347 ; N uni275B ; G 4069 +U 10076 ; WX 347 ; N uni275C ; G 4070 +U 10077 ; WX 587 ; N uni275D ; G 4071 +U 10078 ; WX 587 ; N uni275E ; G 4072 +U 10081 ; WX 838 ; N uni2761 ; G 4073 +U 10082 ; WX 838 ; N uni2762 ; G 4074 +U 10083 ; WX 838 ; N uni2763 ; G 4075 +U 10084 ; WX 838 ; N uni2764 ; G 4076 +U 10085 ; WX 838 ; N uni2765 ; G 4077 +U 10086 ; WX 838 ; N uni2766 ; G 4078 +U 10087 ; WX 838 ; N uni2767 ; G 4079 +U 10088 ; WX 838 ; N uni2768 ; G 4080 +U 10089 ; WX 838 ; N uni2769 ; G 4081 +U 10090 ; WX 838 ; N uni276A ; G 4082 +U 10091 ; WX 838 ; N uni276B ; G 4083 +U 10092 ; WX 838 ; N uni276C ; G 4084 +U 10093 ; WX 838 ; N uni276D ; G 4085 +U 10094 ; WX 838 ; N uni276E ; G 4086 +U 10095 ; WX 838 ; N uni276F ; G 4087 +U 10096 ; WX 838 ; N uni2770 ; G 4088 +U 10097 ; WX 838 ; N uni2771 ; G 4089 +U 10098 ; WX 838 ; N uni2772 ; G 4090 +U 10099 ; WX 838 ; N uni2773 ; G 4091 +U 10100 ; WX 838 ; N uni2774 ; G 4092 +U 10101 ; WX 838 ; N uni2775 ; G 4093 +U 10102 ; WX 847 ; N uni2776 ; G 4094 +U 10103 ; WX 847 ; N uni2777 ; G 4095 +U 10104 ; WX 847 ; N uni2778 ; G 4096 +U 10105 ; WX 847 ; N uni2779 ; G 4097 +U 10106 ; WX 847 ; N uni277A ; G 4098 +U 10107 ; WX 847 ; N uni277B ; G 4099 +U 10108 ; WX 847 ; N uni277C ; G 4100 +U 10109 ; WX 847 ; N uni277D ; G 4101 +U 10110 ; WX 847 ; N uni277E ; G 4102 +U 10111 ; WX 847 ; N uni277F ; G 4103 +U 10112 ; WX 838 ; N uni2780 ; G 4104 +U 10113 ; WX 838 ; N uni2781 ; G 4105 +U 10114 ; WX 838 ; N uni2782 ; G 4106 +U 10115 ; WX 838 ; N uni2783 ; G 4107 +U 10116 ; WX 838 ; N uni2784 ; G 4108 +U 10117 ; WX 838 ; N uni2785 ; G 4109 +U 10118 ; WX 838 ; N uni2786 ; G 4110 +U 10119 ; WX 838 ; N uni2787 ; G 4111 +U 10120 ; WX 838 ; N uni2788 ; G 4112 +U 10121 ; WX 838 ; N uni2789 ; G 4113 +U 10122 ; WX 838 ; N uni278A ; G 4114 +U 10123 ; WX 838 ; N uni278B ; G 4115 +U 10124 ; WX 838 ; N uni278C ; G 4116 +U 10125 ; WX 838 ; N uni278D ; G 4117 +U 10126 ; WX 838 ; N uni278E ; G 4118 +U 10127 ; WX 838 ; N uni278F ; G 4119 +U 10128 ; WX 838 ; N uni2790 ; G 4120 +U 10129 ; WX 838 ; N uni2791 ; G 4121 +U 10130 ; WX 838 ; N uni2792 ; G 4122 +U 10131 ; WX 838 ; N uni2793 ; G 4123 +U 10132 ; WX 838 ; N uni2794 ; G 4124 +U 10136 ; WX 838 ; N uni2798 ; G 4125 +U 10137 ; WX 838 ; N uni2799 ; G 4126 +U 10138 ; WX 838 ; N uni279A ; G 4127 +U 10139 ; WX 838 ; N uni279B ; G 4128 +U 10140 ; WX 838 ; N uni279C ; G 4129 +U 10141 ; WX 838 ; N uni279D ; G 4130 +U 10142 ; WX 838 ; N uni279E ; G 4131 +U 10143 ; WX 838 ; N uni279F ; G 4132 +U 10144 ; WX 838 ; N uni27A0 ; G 4133 +U 10145 ; WX 838 ; N uni27A1 ; G 4134 +U 10146 ; WX 838 ; N uni27A2 ; G 4135 +U 10147 ; WX 838 ; N uni27A3 ; G 4136 +U 10148 ; WX 838 ; N uni27A4 ; G 4137 +U 10149 ; WX 838 ; N uni27A5 ; G 4138 +U 10150 ; WX 838 ; N uni27A6 ; G 4139 +U 10151 ; WX 838 ; N uni27A7 ; G 4140 +U 10152 ; WX 838 ; N uni27A8 ; G 4141 +U 10153 ; WX 838 ; N uni27A9 ; G 4142 +U 10154 ; WX 838 ; N uni27AA ; G 4143 +U 10155 ; WX 838 ; N uni27AB ; G 4144 +U 10156 ; WX 838 ; N uni27AC ; G 4145 +U 10157 ; WX 838 ; N uni27AD ; G 4146 +U 10158 ; WX 838 ; N uni27AE ; G 4147 +U 10159 ; WX 838 ; N uni27AF ; G 4148 +U 10161 ; WX 838 ; N uni27B1 ; G 4149 +U 10162 ; WX 838 ; N uni27B2 ; G 4150 +U 10163 ; WX 838 ; N uni27B3 ; G 4151 +U 10164 ; WX 838 ; N uni27B4 ; G 4152 +U 10165 ; WX 838 ; N uni27B5 ; G 4153 +U 10166 ; WX 838 ; N uni27B6 ; G 4154 +U 10167 ; WX 838 ; N uni27B7 ; G 4155 +U 10168 ; WX 838 ; N uni27B8 ; G 4156 +U 10169 ; WX 838 ; N uni27B9 ; G 4157 +U 10170 ; WX 838 ; N uni27BA ; G 4158 +U 10171 ; WX 838 ; N uni27BB ; G 4159 +U 10172 ; WX 838 ; N uni27BC ; G 4160 +U 10173 ; WX 838 ; N uni27BD ; G 4161 +U 10174 ; WX 838 ; N uni27BE ; G 4162 +U 10181 ; WX 457 ; N uni27C5 ; G 4163 +U 10182 ; WX 457 ; N uni27C6 ; G 4164 +U 10208 ; WX 494 ; N uni27E0 ; G 4165 +U 10214 ; WX 487 ; N uni27E6 ; G 4166 +U 10215 ; WX 487 ; N uni27E7 ; G 4167 +U 10216 ; WX 457 ; N uni27E8 ; G 4168 +U 10217 ; WX 457 ; N uni27E9 ; G 4169 +U 10218 ; WX 721 ; N uni27EA ; G 4170 +U 10219 ; WX 721 ; N uni27EB ; G 4171 +U 10224 ; WX 838 ; N uni27F0 ; G 4172 +U 10225 ; WX 838 ; N uni27F1 ; G 4173 +U 10226 ; WX 838 ; N uni27F2 ; G 4174 +U 10227 ; WX 838 ; N uni27F3 ; G 4175 +U 10228 ; WX 1157 ; N uni27F4 ; G 4176 +U 10229 ; WX 1434 ; N uni27F5 ; G 4177 +U 10230 ; WX 1434 ; N uni27F6 ; G 4178 +U 10231 ; WX 1434 ; N uni27F7 ; G 4179 +U 10232 ; WX 1434 ; N uni27F8 ; G 4180 +U 10233 ; WX 1434 ; N uni27F9 ; G 4181 +U 10234 ; WX 1434 ; N uni27FA ; G 4182 +U 10235 ; WX 1434 ; N uni27FB ; G 4183 +U 10236 ; WX 1434 ; N uni27FC ; G 4184 +U 10237 ; WX 1434 ; N uni27FD ; G 4185 +U 10238 ; WX 1434 ; N uni27FE ; G 4186 +U 10239 ; WX 1434 ; N uni27FF ; G 4187 +U 10240 ; WX 781 ; N uni2800 ; G 4188 +U 10241 ; WX 781 ; N uni2801 ; G 4189 +U 10242 ; WX 781 ; N uni2802 ; G 4190 +U 10243 ; WX 781 ; N uni2803 ; G 4191 +U 10244 ; WX 781 ; N uni2804 ; G 4192 +U 10245 ; WX 781 ; N uni2805 ; G 4193 +U 10246 ; WX 781 ; N uni2806 ; G 4194 +U 10247 ; WX 781 ; N uni2807 ; G 4195 +U 10248 ; WX 781 ; N uni2808 ; G 4196 +U 10249 ; WX 781 ; N uni2809 ; G 4197 +U 10250 ; WX 781 ; N uni280A ; G 4198 +U 10251 ; WX 781 ; N uni280B ; G 4199 +U 10252 ; WX 781 ; N uni280C ; G 4200 +U 10253 ; WX 781 ; N uni280D ; G 4201 +U 10254 ; WX 781 ; N uni280E ; G 4202 +U 10255 ; WX 781 ; N uni280F ; G 4203 +U 10256 ; WX 781 ; N uni2810 ; G 4204 +U 10257 ; WX 781 ; N uni2811 ; G 4205 +U 10258 ; WX 781 ; N uni2812 ; G 4206 +U 10259 ; WX 781 ; N uni2813 ; G 4207 +U 10260 ; WX 781 ; N uni2814 ; G 4208 +U 10261 ; WX 781 ; N uni2815 ; G 4209 +U 10262 ; WX 781 ; N uni2816 ; G 4210 +U 10263 ; WX 781 ; N uni2817 ; G 4211 +U 10264 ; WX 781 ; N uni2818 ; G 4212 +U 10265 ; WX 781 ; N uni2819 ; G 4213 +U 10266 ; WX 781 ; N uni281A ; G 4214 +U 10267 ; WX 781 ; N uni281B ; G 4215 +U 10268 ; WX 781 ; N uni281C ; G 4216 +U 10269 ; WX 781 ; N uni281D ; G 4217 +U 10270 ; WX 781 ; N uni281E ; G 4218 +U 10271 ; WX 781 ; N uni281F ; G 4219 +U 10272 ; WX 781 ; N uni2820 ; G 4220 +U 10273 ; WX 781 ; N uni2821 ; G 4221 +U 10274 ; WX 781 ; N uni2822 ; G 4222 +U 10275 ; WX 781 ; N uni2823 ; G 4223 +U 10276 ; WX 781 ; N uni2824 ; G 4224 +U 10277 ; WX 781 ; N uni2825 ; G 4225 +U 10278 ; WX 781 ; N uni2826 ; G 4226 +U 10279 ; WX 781 ; N uni2827 ; G 4227 +U 10280 ; WX 781 ; N uni2828 ; G 4228 +U 10281 ; WX 781 ; N uni2829 ; G 4229 +U 10282 ; WX 781 ; N uni282A ; G 4230 +U 10283 ; WX 781 ; N uni282B ; G 4231 +U 10284 ; WX 781 ; N uni282C ; G 4232 +U 10285 ; WX 781 ; N uni282D ; G 4233 +U 10286 ; WX 781 ; N uni282E ; G 4234 +U 10287 ; WX 781 ; N uni282F ; G 4235 +U 10288 ; WX 781 ; N uni2830 ; G 4236 +U 10289 ; WX 781 ; N uni2831 ; G 4237 +U 10290 ; WX 781 ; N uni2832 ; G 4238 +U 10291 ; WX 781 ; N uni2833 ; G 4239 +U 10292 ; WX 781 ; N uni2834 ; G 4240 +U 10293 ; WX 781 ; N uni2835 ; G 4241 +U 10294 ; WX 781 ; N uni2836 ; G 4242 +U 10295 ; WX 781 ; N uni2837 ; G 4243 +U 10296 ; WX 781 ; N uni2838 ; G 4244 +U 10297 ; WX 781 ; N uni2839 ; G 4245 +U 10298 ; WX 781 ; N uni283A ; G 4246 +U 10299 ; WX 781 ; N uni283B ; G 4247 +U 10300 ; WX 781 ; N uni283C ; G 4248 +U 10301 ; WX 781 ; N uni283D ; G 4249 +U 10302 ; WX 781 ; N uni283E ; G 4250 +U 10303 ; WX 781 ; N uni283F ; G 4251 +U 10304 ; WX 781 ; N uni2840 ; G 4252 +U 10305 ; WX 781 ; N uni2841 ; G 4253 +U 10306 ; WX 781 ; N uni2842 ; G 4254 +U 10307 ; WX 781 ; N uni2843 ; G 4255 +U 10308 ; WX 781 ; N uni2844 ; G 4256 +U 10309 ; WX 781 ; N uni2845 ; G 4257 +U 10310 ; WX 781 ; N uni2846 ; G 4258 +U 10311 ; WX 781 ; N uni2847 ; G 4259 +U 10312 ; WX 781 ; N uni2848 ; G 4260 +U 10313 ; WX 781 ; N uni2849 ; G 4261 +U 10314 ; WX 781 ; N uni284A ; G 4262 +U 10315 ; WX 781 ; N uni284B ; G 4263 +U 10316 ; WX 781 ; N uni284C ; G 4264 +U 10317 ; WX 781 ; N uni284D ; G 4265 +U 10318 ; WX 781 ; N uni284E ; G 4266 +U 10319 ; WX 781 ; N uni284F ; G 4267 +U 10320 ; WX 781 ; N uni2850 ; G 4268 +U 10321 ; WX 781 ; N uni2851 ; G 4269 +U 10322 ; WX 781 ; N uni2852 ; G 4270 +U 10323 ; WX 781 ; N uni2853 ; G 4271 +U 10324 ; WX 781 ; N uni2854 ; G 4272 +U 10325 ; WX 781 ; N uni2855 ; G 4273 +U 10326 ; WX 781 ; N uni2856 ; G 4274 +U 10327 ; WX 781 ; N uni2857 ; G 4275 +U 10328 ; WX 781 ; N uni2858 ; G 4276 +U 10329 ; WX 781 ; N uni2859 ; G 4277 +U 10330 ; WX 781 ; N uni285A ; G 4278 +U 10331 ; WX 781 ; N uni285B ; G 4279 +U 10332 ; WX 781 ; N uni285C ; G 4280 +U 10333 ; WX 781 ; N uni285D ; G 4281 +U 10334 ; WX 781 ; N uni285E ; G 4282 +U 10335 ; WX 781 ; N uni285F ; G 4283 +U 10336 ; WX 781 ; N uni2860 ; G 4284 +U 10337 ; WX 781 ; N uni2861 ; G 4285 +U 10338 ; WX 781 ; N uni2862 ; G 4286 +U 10339 ; WX 781 ; N uni2863 ; G 4287 +U 10340 ; WX 781 ; N uni2864 ; G 4288 +U 10341 ; WX 781 ; N uni2865 ; G 4289 +U 10342 ; WX 781 ; N uni2866 ; G 4290 +U 10343 ; WX 781 ; N uni2867 ; G 4291 +U 10344 ; WX 781 ; N uni2868 ; G 4292 +U 10345 ; WX 781 ; N uni2869 ; G 4293 +U 10346 ; WX 781 ; N uni286A ; G 4294 +U 10347 ; WX 781 ; N uni286B ; G 4295 +U 10348 ; WX 781 ; N uni286C ; G 4296 +U 10349 ; WX 781 ; N uni286D ; G 4297 +U 10350 ; WX 781 ; N uni286E ; G 4298 +U 10351 ; WX 781 ; N uni286F ; G 4299 +U 10352 ; WX 781 ; N uni2870 ; G 4300 +U 10353 ; WX 781 ; N uni2871 ; G 4301 +U 10354 ; WX 781 ; N uni2872 ; G 4302 +U 10355 ; WX 781 ; N uni2873 ; G 4303 +U 10356 ; WX 781 ; N uni2874 ; G 4304 +U 10357 ; WX 781 ; N uni2875 ; G 4305 +U 10358 ; WX 781 ; N uni2876 ; G 4306 +U 10359 ; WX 781 ; N uni2877 ; G 4307 +U 10360 ; WX 781 ; N uni2878 ; G 4308 +U 10361 ; WX 781 ; N uni2879 ; G 4309 +U 10362 ; WX 781 ; N uni287A ; G 4310 +U 10363 ; WX 781 ; N uni287B ; G 4311 +U 10364 ; WX 781 ; N uni287C ; G 4312 +U 10365 ; WX 781 ; N uni287D ; G 4313 +U 10366 ; WX 781 ; N uni287E ; G 4314 +U 10367 ; WX 781 ; N uni287F ; G 4315 +U 10368 ; WX 781 ; N uni2880 ; G 4316 +U 10369 ; WX 781 ; N uni2881 ; G 4317 +U 10370 ; WX 781 ; N uni2882 ; G 4318 +U 10371 ; WX 781 ; N uni2883 ; G 4319 +U 10372 ; WX 781 ; N uni2884 ; G 4320 +U 10373 ; WX 781 ; N uni2885 ; G 4321 +U 10374 ; WX 781 ; N uni2886 ; G 4322 +U 10375 ; WX 781 ; N uni2887 ; G 4323 +U 10376 ; WX 781 ; N uni2888 ; G 4324 +U 10377 ; WX 781 ; N uni2889 ; G 4325 +U 10378 ; WX 781 ; N uni288A ; G 4326 +U 10379 ; WX 781 ; N uni288B ; G 4327 +U 10380 ; WX 781 ; N uni288C ; G 4328 +U 10381 ; WX 781 ; N uni288D ; G 4329 +U 10382 ; WX 781 ; N uni288E ; G 4330 +U 10383 ; WX 781 ; N uni288F ; G 4331 +U 10384 ; WX 781 ; N uni2890 ; G 4332 +U 10385 ; WX 781 ; N uni2891 ; G 4333 +U 10386 ; WX 781 ; N uni2892 ; G 4334 +U 10387 ; WX 781 ; N uni2893 ; G 4335 +U 10388 ; WX 781 ; N uni2894 ; G 4336 +U 10389 ; WX 781 ; N uni2895 ; G 4337 +U 10390 ; WX 781 ; N uni2896 ; G 4338 +U 10391 ; WX 781 ; N uni2897 ; G 4339 +U 10392 ; WX 781 ; N uni2898 ; G 4340 +U 10393 ; WX 781 ; N uni2899 ; G 4341 +U 10394 ; WX 781 ; N uni289A ; G 4342 +U 10395 ; WX 781 ; N uni289B ; G 4343 +U 10396 ; WX 781 ; N uni289C ; G 4344 +U 10397 ; WX 781 ; N uni289D ; G 4345 +U 10398 ; WX 781 ; N uni289E ; G 4346 +U 10399 ; WX 781 ; N uni289F ; G 4347 +U 10400 ; WX 781 ; N uni28A0 ; G 4348 +U 10401 ; WX 781 ; N uni28A1 ; G 4349 +U 10402 ; WX 781 ; N uni28A2 ; G 4350 +U 10403 ; WX 781 ; N uni28A3 ; G 4351 +U 10404 ; WX 781 ; N uni28A4 ; G 4352 +U 10405 ; WX 781 ; N uni28A5 ; G 4353 +U 10406 ; WX 781 ; N uni28A6 ; G 4354 +U 10407 ; WX 781 ; N uni28A7 ; G 4355 +U 10408 ; WX 781 ; N uni28A8 ; G 4356 +U 10409 ; WX 781 ; N uni28A9 ; G 4357 +U 10410 ; WX 781 ; N uni28AA ; G 4358 +U 10411 ; WX 781 ; N uni28AB ; G 4359 +U 10412 ; WX 781 ; N uni28AC ; G 4360 +U 10413 ; WX 781 ; N uni28AD ; G 4361 +U 10414 ; WX 781 ; N uni28AE ; G 4362 +U 10415 ; WX 781 ; N uni28AF ; G 4363 +U 10416 ; WX 781 ; N uni28B0 ; G 4364 +U 10417 ; WX 781 ; N uni28B1 ; G 4365 +U 10418 ; WX 781 ; N uni28B2 ; G 4366 +U 10419 ; WX 781 ; N uni28B3 ; G 4367 +U 10420 ; WX 781 ; N uni28B4 ; G 4368 +U 10421 ; WX 781 ; N uni28B5 ; G 4369 +U 10422 ; WX 781 ; N uni28B6 ; G 4370 +U 10423 ; WX 781 ; N uni28B7 ; G 4371 +U 10424 ; WX 781 ; N uni28B8 ; G 4372 +U 10425 ; WX 781 ; N uni28B9 ; G 4373 +U 10426 ; WX 781 ; N uni28BA ; G 4374 +U 10427 ; WX 781 ; N uni28BB ; G 4375 +U 10428 ; WX 781 ; N uni28BC ; G 4376 +U 10429 ; WX 781 ; N uni28BD ; G 4377 +U 10430 ; WX 781 ; N uni28BE ; G 4378 +U 10431 ; WX 781 ; N uni28BF ; G 4379 +U 10432 ; WX 781 ; N uni28C0 ; G 4380 +U 10433 ; WX 781 ; N uni28C1 ; G 4381 +U 10434 ; WX 781 ; N uni28C2 ; G 4382 +U 10435 ; WX 781 ; N uni28C3 ; G 4383 +U 10436 ; WX 781 ; N uni28C4 ; G 4384 +U 10437 ; WX 781 ; N uni28C5 ; G 4385 +U 10438 ; WX 781 ; N uni28C6 ; G 4386 +U 10439 ; WX 781 ; N uni28C7 ; G 4387 +U 10440 ; WX 781 ; N uni28C8 ; G 4388 +U 10441 ; WX 781 ; N uni28C9 ; G 4389 +U 10442 ; WX 781 ; N uni28CA ; G 4390 +U 10443 ; WX 781 ; N uni28CB ; G 4391 +U 10444 ; WX 781 ; N uni28CC ; G 4392 +U 10445 ; WX 781 ; N uni28CD ; G 4393 +U 10446 ; WX 781 ; N uni28CE ; G 4394 +U 10447 ; WX 781 ; N uni28CF ; G 4395 +U 10448 ; WX 781 ; N uni28D0 ; G 4396 +U 10449 ; WX 781 ; N uni28D1 ; G 4397 +U 10450 ; WX 781 ; N uni28D2 ; G 4398 +U 10451 ; WX 781 ; N uni28D3 ; G 4399 +U 10452 ; WX 781 ; N uni28D4 ; G 4400 +U 10453 ; WX 781 ; N uni28D5 ; G 4401 +U 10454 ; WX 781 ; N uni28D6 ; G 4402 +U 10455 ; WX 781 ; N uni28D7 ; G 4403 +U 10456 ; WX 781 ; N uni28D8 ; G 4404 +U 10457 ; WX 781 ; N uni28D9 ; G 4405 +U 10458 ; WX 781 ; N uni28DA ; G 4406 +U 10459 ; WX 781 ; N uni28DB ; G 4407 +U 10460 ; WX 781 ; N uni28DC ; G 4408 +U 10461 ; WX 781 ; N uni28DD ; G 4409 +U 10462 ; WX 781 ; N uni28DE ; G 4410 +U 10463 ; WX 781 ; N uni28DF ; G 4411 +U 10464 ; WX 781 ; N uni28E0 ; G 4412 +U 10465 ; WX 781 ; N uni28E1 ; G 4413 +U 10466 ; WX 781 ; N uni28E2 ; G 4414 +U 10467 ; WX 781 ; N uni28E3 ; G 4415 +U 10468 ; WX 781 ; N uni28E4 ; G 4416 +U 10469 ; WX 781 ; N uni28E5 ; G 4417 +U 10470 ; WX 781 ; N uni28E6 ; G 4418 +U 10471 ; WX 781 ; N uni28E7 ; G 4419 +U 10472 ; WX 781 ; N uni28E8 ; G 4420 +U 10473 ; WX 781 ; N uni28E9 ; G 4421 +U 10474 ; WX 781 ; N uni28EA ; G 4422 +U 10475 ; WX 781 ; N uni28EB ; G 4423 +U 10476 ; WX 781 ; N uni28EC ; G 4424 +U 10477 ; WX 781 ; N uni28ED ; G 4425 +U 10478 ; WX 781 ; N uni28EE ; G 4426 +U 10479 ; WX 781 ; N uni28EF ; G 4427 +U 10480 ; WX 781 ; N uni28F0 ; G 4428 +U 10481 ; WX 781 ; N uni28F1 ; G 4429 +U 10482 ; WX 781 ; N uni28F2 ; G 4430 +U 10483 ; WX 781 ; N uni28F3 ; G 4431 +U 10484 ; WX 781 ; N uni28F4 ; G 4432 +U 10485 ; WX 781 ; N uni28F5 ; G 4433 +U 10486 ; WX 781 ; N uni28F6 ; G 4434 +U 10487 ; WX 781 ; N uni28F7 ; G 4435 +U 10488 ; WX 781 ; N uni28F8 ; G 4436 +U 10489 ; WX 781 ; N uni28F9 ; G 4437 +U 10490 ; WX 781 ; N uni28FA ; G 4438 +U 10491 ; WX 781 ; N uni28FB ; G 4439 +U 10492 ; WX 781 ; N uni28FC ; G 4440 +U 10493 ; WX 781 ; N uni28FD ; G 4441 +U 10494 ; WX 781 ; N uni28FE ; G 4442 +U 10495 ; WX 781 ; N uni28FF ; G 4443 +U 10502 ; WX 838 ; N uni2906 ; G 4444 +U 10503 ; WX 838 ; N uni2907 ; G 4445 +U 10506 ; WX 838 ; N uni290A ; G 4446 +U 10507 ; WX 838 ; N uni290B ; G 4447 +U 10560 ; WX 838 ; N uni2940 ; G 4448 +U 10561 ; WX 838 ; N uni2941 ; G 4449 +U 10627 ; WX 753 ; N uni2983 ; G 4450 +U 10628 ; WX 753 ; N uni2984 ; G 4451 +U 10702 ; WX 838 ; N uni29CE ; G 4452 +U 10703 ; WX 1046 ; N uni29CF ; G 4453 +U 10704 ; WX 1046 ; N uni29D0 ; G 4454 +U 10705 ; WX 1000 ; N uni29D1 ; G 4455 +U 10706 ; WX 1000 ; N uni29D2 ; G 4456 +U 10707 ; WX 1000 ; N uni29D3 ; G 4457 +U 10708 ; WX 1000 ; N uni29D4 ; G 4458 +U 10709 ; WX 1000 ; N uni29D5 ; G 4459 +U 10731 ; WX 494 ; N uni29EB ; G 4460 +U 10746 ; WX 838 ; N uni29FA ; G 4461 +U 10747 ; WX 838 ; N uni29FB ; G 4462 +U 10752 ; WX 1000 ; N uni2A00 ; G 4463 +U 10753 ; WX 1000 ; N uni2A01 ; G 4464 +U 10754 ; WX 1000 ; N uni2A02 ; G 4465 +U 10764 ; WX 1661 ; N uni2A0C ; G 4466 +U 10765 ; WX 563 ; N uni2A0D ; G 4467 +U 10766 ; WX 563 ; N uni2A0E ; G 4468 +U 10767 ; WX 563 ; N uni2A0F ; G 4469 +U 10768 ; WX 563 ; N uni2A10 ; G 4470 +U 10769 ; WX 563 ; N uni2A11 ; G 4471 +U 10770 ; WX 563 ; N uni2A12 ; G 4472 +U 10771 ; WX 563 ; N uni2A13 ; G 4473 +U 10772 ; WX 563 ; N uni2A14 ; G 4474 +U 10773 ; WX 563 ; N uni2A15 ; G 4475 +U 10774 ; WX 563 ; N uni2A16 ; G 4476 +U 10775 ; WX 563 ; N uni2A17 ; G 4477 +U 10776 ; WX 563 ; N uni2A18 ; G 4478 +U 10777 ; WX 563 ; N uni2A19 ; G 4479 +U 10778 ; WX 563 ; N uni2A1A ; G 4480 +U 10779 ; WX 563 ; N uni2A1B ; G 4481 +U 10780 ; WX 563 ; N uni2A1C ; G 4482 +U 10799 ; WX 838 ; N uni2A2F ; G 4483 +U 10858 ; WX 838 ; N uni2A6A ; G 4484 +U 10859 ; WX 838 ; N uni2A6B ; G 4485 +U 10877 ; WX 838 ; N uni2A7D ; G 4486 +U 10878 ; WX 838 ; N uni2A7E ; G 4487 +U 10879 ; WX 838 ; N uni2A7F ; G 4488 +U 10880 ; WX 838 ; N uni2A80 ; G 4489 +U 10881 ; WX 838 ; N uni2A81 ; G 4490 +U 10882 ; WX 838 ; N uni2A82 ; G 4491 +U 10883 ; WX 838 ; N uni2A83 ; G 4492 +U 10884 ; WX 838 ; N uni2A84 ; G 4493 +U 10885 ; WX 838 ; N uni2A85 ; G 4494 +U 10886 ; WX 838 ; N uni2A86 ; G 4495 +U 10887 ; WX 838 ; N uni2A87 ; G 4496 +U 10888 ; WX 838 ; N uni2A88 ; G 4497 +U 10889 ; WX 838 ; N uni2A89 ; G 4498 +U 10890 ; WX 838 ; N uni2A8A ; G 4499 +U 10891 ; WX 838 ; N uni2A8B ; G 4500 +U 10892 ; WX 838 ; N uni2A8C ; G 4501 +U 10893 ; WX 838 ; N uni2A8D ; G 4502 +U 10894 ; WX 838 ; N uni2A8E ; G 4503 +U 10895 ; WX 838 ; N uni2A8F ; G 4504 +U 10896 ; WX 838 ; N uni2A90 ; G 4505 +U 10897 ; WX 838 ; N uni2A91 ; G 4506 +U 10898 ; WX 838 ; N uni2A92 ; G 4507 +U 10899 ; WX 838 ; N uni2A93 ; G 4508 +U 10900 ; WX 838 ; N uni2A94 ; G 4509 +U 10901 ; WX 838 ; N uni2A95 ; G 4510 +U 10902 ; WX 838 ; N uni2A96 ; G 4511 +U 10903 ; WX 838 ; N uni2A97 ; G 4512 +U 10904 ; WX 838 ; N uni2A98 ; G 4513 +U 10905 ; WX 838 ; N uni2A99 ; G 4514 +U 10906 ; WX 838 ; N uni2A9A ; G 4515 +U 10907 ; WX 838 ; N uni2A9B ; G 4516 +U 10908 ; WX 838 ; N uni2A9C ; G 4517 +U 10909 ; WX 838 ; N uni2A9D ; G 4518 +U 10910 ; WX 838 ; N uni2A9E ; G 4519 +U 10911 ; WX 838 ; N uni2A9F ; G 4520 +U 10912 ; WX 838 ; N uni2AA0 ; G 4521 +U 10926 ; WX 838 ; N uni2AAE ; G 4522 +U 10927 ; WX 838 ; N uni2AAF ; G 4523 +U 10928 ; WX 838 ; N uni2AB0 ; G 4524 +U 10929 ; WX 838 ; N uni2AB1 ; G 4525 +U 10930 ; WX 838 ; N uni2AB2 ; G 4526 +U 10931 ; WX 838 ; N uni2AB3 ; G 4527 +U 10932 ; WX 838 ; N uni2AB4 ; G 4528 +U 10933 ; WX 838 ; N uni2AB5 ; G 4529 +U 10934 ; WX 838 ; N uni2AB6 ; G 4530 +U 10935 ; WX 838 ; N uni2AB7 ; G 4531 +U 10936 ; WX 838 ; N uni2AB8 ; G 4532 +U 10937 ; WX 838 ; N uni2AB9 ; G 4533 +U 10938 ; WX 838 ; N uni2ABA ; G 4534 +U 11001 ; WX 838 ; N uni2AF9 ; G 4535 +U 11002 ; WX 838 ; N uni2AFA ; G 4536 +U 11008 ; WX 838 ; N uni2B00 ; G 4537 +U 11009 ; WX 838 ; N uni2B01 ; G 4538 +U 11010 ; WX 838 ; N uni2B02 ; G 4539 +U 11011 ; WX 838 ; N uni2B03 ; G 4540 +U 11012 ; WX 838 ; N uni2B04 ; G 4541 +U 11013 ; WX 838 ; N uni2B05 ; G 4542 +U 11014 ; WX 838 ; N uni2B06 ; G 4543 +U 11015 ; WX 838 ; N uni2B07 ; G 4544 +U 11016 ; WX 838 ; N uni2B08 ; G 4545 +U 11017 ; WX 838 ; N uni2B09 ; G 4546 +U 11018 ; WX 838 ; N uni2B0A ; G 4547 +U 11019 ; WX 838 ; N uni2B0B ; G 4548 +U 11020 ; WX 838 ; N uni2B0C ; G 4549 +U 11021 ; WX 838 ; N uni2B0D ; G 4550 +U 11022 ; WX 838 ; N uni2B0E ; G 4551 +U 11023 ; WX 838 ; N uni2B0F ; G 4552 +U 11024 ; WX 838 ; N uni2B10 ; G 4553 +U 11025 ; WX 838 ; N uni2B11 ; G 4554 +U 11026 ; WX 945 ; N uni2B12 ; G 4555 +U 11027 ; WX 945 ; N uni2B13 ; G 4556 +U 11028 ; WX 945 ; N uni2B14 ; G 4557 +U 11029 ; WX 945 ; N uni2B15 ; G 4558 +U 11030 ; WX 769 ; N uni2B16 ; G 4559 +U 11031 ; WX 769 ; N uni2B17 ; G 4560 +U 11032 ; WX 769 ; N uni2B18 ; G 4561 +U 11033 ; WX 769 ; N uni2B19 ; G 4562 +U 11034 ; WX 945 ; N uni2B1A ; G 4563 +U 11039 ; WX 869 ; N uni2B1F ; G 4564 +U 11040 ; WX 869 ; N uni2B20 ; G 4565 +U 11041 ; WX 873 ; N uni2B21 ; G 4566 +U 11042 ; WX 873 ; N uni2B22 ; G 4567 +U 11043 ; WX 873 ; N uni2B23 ; G 4568 +U 11044 ; WX 1119 ; N uni2B24 ; G 4569 +U 11091 ; WX 869 ; N uni2B53 ; G 4570 +U 11092 ; WX 869 ; N uni2B54 ; G 4571 +U 11360 ; WX 637 ; N uni2C60 ; G 4572 +U 11361 ; WX 360 ; N uni2C61 ; G 4573 +U 11362 ; WX 637 ; N uni2C62 ; G 4574 +U 11363 ; WX 733 ; N uni2C63 ; G 4575 +U 11364 ; WX 770 ; N uni2C64 ; G 4576 +U 11365 ; WX 675 ; N uni2C65 ; G 4577 +U 11366 ; WX 478 ; N uni2C66 ; G 4578 +U 11367 ; WX 956 ; N uni2C67 ; G 4579 +U 11368 ; WX 712 ; N uni2C68 ; G 4580 +U 11369 ; WX 775 ; N uni2C69 ; G 4581 +U 11370 ; WX 665 ; N uni2C6A ; G 4582 +U 11371 ; WX 725 ; N uni2C6B ; G 4583 +U 11372 ; WX 582 ; N uni2C6C ; G 4584 +U 11373 ; WX 860 ; N uni2C6D ; G 4585 +U 11374 ; WX 995 ; N uni2C6E ; G 4586 +U 11375 ; WX 774 ; N uni2C6F ; G 4587 +U 11376 ; WX 860 ; N uni2C70 ; G 4588 +U 11377 ; WX 778 ; N uni2C71 ; G 4589 +U 11378 ; WX 1221 ; N uni2C72 ; G 4590 +U 11379 ; WX 1056 ; N uni2C73 ; G 4591 +U 11380 ; WX 652 ; N uni2C74 ; G 4592 +U 11381 ; WX 698 ; N uni2C75 ; G 4593 +U 11382 ; WX 565 ; N uni2C76 ; G 4594 +U 11383 ; WX 782 ; N uni2C77 ; G 4595 +U 11385 ; WX 538 ; N uni2C79 ; G 4596 +U 11386 ; WX 687 ; N uni2C7A ; G 4597 +U 11387 ; WX 559 ; N uni2C7B ; G 4598 +U 11388 ; WX 219 ; N uni2C7C ; G 4599 +U 11389 ; WX 487 ; N uni2C7D ; G 4600 +U 11390 ; WX 720 ; N uni2C7E ; G 4601 +U 11391 ; WX 725 ; N uni2C7F ; G 4602 +U 11520 ; WX 663 ; N uni2D00 ; G 4603 +U 11521 ; WX 676 ; N uni2D01 ; G 4604 +U 11522 ; WX 661 ; N uni2D02 ; G 4605 +U 11523 ; WX 629 ; N uni2D03 ; G 4606 +U 11524 ; WX 661 ; N uni2D04 ; G 4607 +U 11525 ; WX 1032 ; N uni2D05 ; G 4608 +U 11526 ; WX 718 ; N uni2D06 ; G 4609 +U 11527 ; WX 1032 ; N uni2D07 ; G 4610 +U 11528 ; WX 648 ; N uni2D08 ; G 4611 +U 11529 ; WX 667 ; N uni2D09 ; G 4612 +U 11530 ; WX 1032 ; N uni2D0A ; G 4613 +U 11531 ; WX 673 ; N uni2D0B ; G 4614 +U 11532 ; WX 677 ; N uni2D0C ; G 4615 +U 11533 ; WX 1036 ; N uni2D0D ; G 4616 +U 11534 ; WX 680 ; N uni2D0E ; G 4617 +U 11535 ; WX 886 ; N uni2D0F ; G 4618 +U 11536 ; WX 1032 ; N uni2D10 ; G 4619 +U 11537 ; WX 683 ; N uni2D11 ; G 4620 +U 11538 ; WX 674 ; N uni2D12 ; G 4621 +U 11539 ; WX 1035 ; N uni2D13 ; G 4622 +U 11540 ; WX 1033 ; N uni2D14 ; G 4623 +U 11541 ; WX 1027 ; N uni2D15 ; G 4624 +U 11542 ; WX 676 ; N uni2D16 ; G 4625 +U 11543 ; WX 673 ; N uni2D17 ; G 4626 +U 11544 ; WX 667 ; N uni2D18 ; G 4627 +U 11545 ; WX 667 ; N uni2D19 ; G 4628 +U 11546 ; WX 660 ; N uni2D1A ; G 4629 +U 11547 ; WX 671 ; N uni2D1B ; G 4630 +U 11548 ; WX 1039 ; N uni2D1C ; G 4631 +U 11549 ; WX 673 ; N uni2D1D ; G 4632 +U 11550 ; WX 692 ; N uni2D1E ; G 4633 +U 11551 ; WX 659 ; N uni2D1F ; G 4634 +U 11552 ; WX 1048 ; N uni2D20 ; G 4635 +U 11553 ; WX 660 ; N uni2D21 ; G 4636 +U 11554 ; WX 654 ; N uni2D22 ; G 4637 +U 11555 ; WX 670 ; N uni2D23 ; G 4638 +U 11556 ; WX 733 ; N uni2D24 ; G 4639 +U 11557 ; WX 1017 ; N uni2D25 ; G 4640 +U 11568 ; WX 691 ; N uni2D30 ; G 4641 +U 11569 ; WX 941 ; N uni2D31 ; G 4642 +U 11570 ; WX 941 ; N uni2D32 ; G 4643 +U 11571 ; WX 725 ; N uni2D33 ; G 4644 +U 11572 ; WX 725 ; N uni2D34 ; G 4645 +U 11573 ; WX 725 ; N uni2D35 ; G 4646 +U 11574 ; WX 676 ; N uni2D36 ; G 4647 +U 11575 ; WX 774 ; N uni2D37 ; G 4648 +U 11576 ; WX 774 ; N uni2D38 ; G 4649 +U 11577 ; WX 683 ; N uni2D39 ; G 4650 +U 11578 ; WX 683 ; N uni2D3A ; G 4651 +U 11579 ; WX 802 ; N uni2D3B ; G 4652 +U 11580 ; WX 989 ; N uni2D3C ; G 4653 +U 11581 ; WX 761 ; N uni2D3D ; G 4654 +U 11582 ; WX 623 ; N uni2D3E ; G 4655 +U 11583 ; WX 761 ; N uni2D3F ; G 4656 +U 11584 ; WX 941 ; N uni2D40 ; G 4657 +U 11585 ; WX 941 ; N uni2D41 ; G 4658 +U 11586 ; WX 373 ; N uni2D42 ; G 4659 +U 11587 ; WX 740 ; N uni2D43 ; G 4660 +U 11588 ; WX 837 ; N uni2D44 ; G 4661 +U 11589 ; WX 914 ; N uni2D45 ; G 4662 +U 11590 ; WX 672 ; N uni2D46 ; G 4663 +U 11591 ; WX 737 ; N uni2D47 ; G 4664 +U 11592 ; WX 680 ; N uni2D48 ; G 4665 +U 11593 ; WX 683 ; N uni2D49 ; G 4666 +U 11594 ; WX 602 ; N uni2D4A ; G 4667 +U 11595 ; WX 1039 ; N uni2D4B ; G 4668 +U 11596 ; WX 778 ; N uni2D4C ; G 4669 +U 11597 ; WX 837 ; N uni2D4D ; G 4670 +U 11598 ; WX 683 ; N uni2D4E ; G 4671 +U 11599 ; WX 372 ; N uni2D4F ; G 4672 +U 11600 ; WX 778 ; N uni2D50 ; G 4673 +U 11601 ; WX 373 ; N uni2D51 ; G 4674 +U 11602 ; WX 725 ; N uni2D52 ; G 4675 +U 11603 ; WX 691 ; N uni2D53 ; G 4676 +U 11604 ; WX 941 ; N uni2D54 ; G 4677 +U 11605 ; WX 941 ; N uni2D55 ; G 4678 +U 11606 ; WX 837 ; N uni2D56 ; G 4679 +U 11607 ; WX 373 ; N uni2D57 ; G 4680 +U 11608 ; WX 836 ; N uni2D58 ; G 4681 +U 11609 ; WX 941 ; N uni2D59 ; G 4682 +U 11610 ; WX 941 ; N uni2D5A ; G 4683 +U 11611 ; WX 734 ; N uni2D5B ; G 4684 +U 11612 ; WX 876 ; N uni2D5C ; G 4685 +U 11613 ; WX 771 ; N uni2D5D ; G 4686 +U 11614 ; WX 734 ; N uni2D5E ; G 4687 +U 11615 ; WX 683 ; N uni2D5F ; G 4688 +U 11616 ; WX 774 ; N uni2D60 ; G 4689 +U 11617 ; WX 837 ; N uni2D61 ; G 4690 +U 11618 ; WX 683 ; N uni2D62 ; G 4691 +U 11619 ; WX 850 ; N uni2D63 ; G 4692 +U 11620 ; WX 697 ; N uni2D64 ; G 4693 +U 11621 ; WX 850 ; N uni2D65 ; G 4694 +U 11631 ; WX 716 ; N uni2D6F ; G 4695 +U 11800 ; WX 580 ; N uni2E18 ; G 4696 +U 11807 ; WX 838 ; N uni2E1F ; G 4697 +U 11810 ; WX 457 ; N uni2E22 ; G 4698 +U 11811 ; WX 457 ; N uni2E23 ; G 4699 +U 11812 ; WX 457 ; N uni2E24 ; G 4700 +U 11813 ; WX 457 ; N uni2E25 ; G 4701 +U 11822 ; WX 580 ; N uni2E2E ; G 4702 +U 19904 ; WX 896 ; N uni4DC0 ; G 4703 +U 19905 ; WX 896 ; N uni4DC1 ; G 4704 +U 19906 ; WX 896 ; N uni4DC2 ; G 4705 +U 19907 ; WX 896 ; N uni4DC3 ; G 4706 +U 19908 ; WX 896 ; N uni4DC4 ; G 4707 +U 19909 ; WX 896 ; N uni4DC5 ; G 4708 +U 19910 ; WX 896 ; N uni4DC6 ; G 4709 +U 19911 ; WX 896 ; N uni4DC7 ; G 4710 +U 19912 ; WX 896 ; N uni4DC8 ; G 4711 +U 19913 ; WX 896 ; N uni4DC9 ; G 4712 +U 19914 ; WX 896 ; N uni4DCA ; G 4713 +U 19915 ; WX 896 ; N uni4DCB ; G 4714 +U 19916 ; WX 896 ; N uni4DCC ; G 4715 +U 19917 ; WX 896 ; N uni4DCD ; G 4716 +U 19918 ; WX 896 ; N uni4DCE ; G 4717 +U 19919 ; WX 896 ; N uni4DCF ; G 4718 +U 19920 ; WX 896 ; N uni4DD0 ; G 4719 +U 19921 ; WX 896 ; N uni4DD1 ; G 4720 +U 19922 ; WX 896 ; N uni4DD2 ; G 4721 +U 19923 ; WX 896 ; N uni4DD3 ; G 4722 +U 19924 ; WX 896 ; N uni4DD4 ; G 4723 +U 19925 ; WX 896 ; N uni4DD5 ; G 4724 +U 19926 ; WX 896 ; N uni4DD6 ; G 4725 +U 19927 ; WX 896 ; N uni4DD7 ; G 4726 +U 19928 ; WX 896 ; N uni4DD8 ; G 4727 +U 19929 ; WX 896 ; N uni4DD9 ; G 4728 +U 19930 ; WX 896 ; N uni4DDA ; G 4729 +U 19931 ; WX 896 ; N uni4DDB ; G 4730 +U 19932 ; WX 896 ; N uni4DDC ; G 4731 +U 19933 ; WX 896 ; N uni4DDD ; G 4732 +U 19934 ; WX 896 ; N uni4DDE ; G 4733 +U 19935 ; WX 896 ; N uni4DDF ; G 4734 +U 19936 ; WX 896 ; N uni4DE0 ; G 4735 +U 19937 ; WX 896 ; N uni4DE1 ; G 4736 +U 19938 ; WX 896 ; N uni4DE2 ; G 4737 +U 19939 ; WX 896 ; N uni4DE3 ; G 4738 +U 19940 ; WX 896 ; N uni4DE4 ; G 4739 +U 19941 ; WX 896 ; N uni4DE5 ; G 4740 +U 19942 ; WX 896 ; N uni4DE6 ; G 4741 +U 19943 ; WX 896 ; N uni4DE7 ; G 4742 +U 19944 ; WX 896 ; N uni4DE8 ; G 4743 +U 19945 ; WX 896 ; N uni4DE9 ; G 4744 +U 19946 ; WX 896 ; N uni4DEA ; G 4745 +U 19947 ; WX 896 ; N uni4DEB ; G 4746 +U 19948 ; WX 896 ; N uni4DEC ; G 4747 +U 19949 ; WX 896 ; N uni4DED ; G 4748 +U 19950 ; WX 896 ; N uni4DEE ; G 4749 +U 19951 ; WX 896 ; N uni4DEF ; G 4750 +U 19952 ; WX 896 ; N uni4DF0 ; G 4751 +U 19953 ; WX 896 ; N uni4DF1 ; G 4752 +U 19954 ; WX 896 ; N uni4DF2 ; G 4753 +U 19955 ; WX 896 ; N uni4DF3 ; G 4754 +U 19956 ; WX 896 ; N uni4DF4 ; G 4755 +U 19957 ; WX 896 ; N uni4DF5 ; G 4756 +U 19958 ; WX 896 ; N uni4DF6 ; G 4757 +U 19959 ; WX 896 ; N uni4DF7 ; G 4758 +U 19960 ; WX 896 ; N uni4DF8 ; G 4759 +U 19961 ; WX 896 ; N uni4DF9 ; G 4760 +U 19962 ; WX 896 ; N uni4DFA ; G 4761 +U 19963 ; WX 896 ; N uni4DFB ; G 4762 +U 19964 ; WX 896 ; N uni4DFC ; G 4763 +U 19965 ; WX 896 ; N uni4DFD ; G 4764 +U 19966 ; WX 896 ; N uni4DFE ; G 4765 +U 19967 ; WX 896 ; N uni4DFF ; G 4766 +U 42192 ; WX 762 ; N uniA4D0 ; G 4767 +U 42193 ; WX 733 ; N uniA4D1 ; G 4768 +U 42194 ; WX 733 ; N uniA4D2 ; G 4769 +U 42195 ; WX 830 ; N uniA4D3 ; G 4770 +U 42196 ; WX 682 ; N uniA4D4 ; G 4771 +U 42197 ; WX 682 ; N uniA4D5 ; G 4772 +U 42198 ; WX 821 ; N uniA4D6 ; G 4773 +U 42199 ; WX 775 ; N uniA4D7 ; G 4774 +U 42200 ; WX 775 ; N uniA4D8 ; G 4775 +U 42201 ; WX 530 ; N uniA4D9 ; G 4776 +U 42202 ; WX 734 ; N uniA4DA ; G 4777 +U 42203 ; WX 734 ; N uniA4DB ; G 4778 +U 42204 ; WX 725 ; N uniA4DC ; G 4779 +U 42205 ; WX 683 ; N uniA4DD ; G 4780 +U 42206 ; WX 683 ; N uniA4DE ; G 4781 +U 42207 ; WX 995 ; N uniA4DF ; G 4782 +U 42208 ; WX 837 ; N uniA4E0 ; G 4783 +U 42209 ; WX 637 ; N uniA4E1 ; G 4784 +U 42210 ; WX 720 ; N uniA4E2 ; G 4785 +U 42211 ; WX 770 ; N uniA4E3 ; G 4786 +U 42212 ; WX 770 ; N uniA4E4 ; G 4787 +U 42213 ; WX 774 ; N uniA4E5 ; G 4788 +U 42214 ; WX 774 ; N uniA4E6 ; G 4789 +U 42215 ; WX 837 ; N uniA4E7 ; G 4790 +U 42216 ; WX 775 ; N uniA4E8 ; G 4791 +U 42217 ; WX 530 ; N uniA4E9 ; G 4792 +U 42218 ; WX 1103 ; N uniA4EA ; G 4793 +U 42219 ; WX 771 ; N uniA4EB ; G 4794 +U 42220 ; WX 724 ; N uniA4EC ; G 4795 +U 42221 ; WX 762 ; N uniA4ED ; G 4796 +U 42222 ; WX 774 ; N uniA4EE ; G 4797 +U 42223 ; WX 774 ; N uniA4EF ; G 4798 +U 42224 ; WX 683 ; N uniA4F0 ; G 4799 +U 42225 ; WX 683 ; N uniA4F1 ; G 4800 +U 42226 ; WX 372 ; N uniA4F2 ; G 4801 +U 42227 ; WX 850 ; N uniA4F3 ; G 4802 +U 42228 ; WX 812 ; N uniA4F4 ; G 4803 +U 42229 ; WX 812 ; N uniA4F5 ; G 4804 +U 42230 ; WX 557 ; N uniA4F6 ; G 4805 +U 42231 ; WX 830 ; N uniA4F7 ; G 4806 +U 42232 ; WX 322 ; N uniA4F8 ; G 4807 +U 42233 ; WX 322 ; N uniA4F9 ; G 4808 +U 42234 ; WX 674 ; N uniA4FA ; G 4809 +U 42235 ; WX 674 ; N uniA4FB ; G 4810 +U 42236 ; WX 322 ; N uniA4FC ; G 4811 +U 42237 ; WX 322 ; N uniA4FD ; G 4812 +U 42238 ; WX 588 ; N uniA4FE ; G 4813 +U 42239 ; WX 588 ; N uniA4FF ; G 4814 +U 42564 ; WX 720 ; N uniA644 ; G 4815 +U 42565 ; WX 595 ; N uniA645 ; G 4816 +U 42566 ; WX 436 ; N uniA646 ; G 4817 +U 42567 ; WX 440 ; N uniA647 ; G 4818 +U 42572 ; WX 1405 ; N uniA64C ; G 4819 +U 42573 ; WX 1173 ; N uniA64D ; G 4820 +U 42576 ; WX 1234 ; N uniA650 ; G 4821 +U 42577 ; WX 1027 ; N uniA651 ; G 4822 +U 42580 ; WX 1174 ; N uniA654 ; G 4823 +U 42581 ; WX 972 ; N uniA655 ; G 4824 +U 42582 ; WX 1093 ; N uniA656 ; G 4825 +U 42583 ; WX 958 ; N uniA657 ; G 4826 +U 42594 ; WX 1085 ; N uniA662 ; G 4827 +U 42595 ; WX 924 ; N uniA663 ; G 4828 +U 42596 ; WX 1096 ; N uniA664 ; G 4829 +U 42597 ; WX 912 ; N uniA665 ; G 4830 +U 42598 ; WX 1260 ; N uniA666 ; G 4831 +U 42599 ; WX 997 ; N uniA667 ; G 4832 +U 42600 ; WX 850 ; N uniA668 ; G 4833 +U 42601 ; WX 687 ; N uniA669 ; G 4834 +U 42602 ; WX 1037 ; N uniA66A ; G 4835 +U 42603 ; WX 868 ; N uniA66B ; G 4836 +U 42604 ; WX 1406 ; N uniA66C ; G 4837 +U 42605 ; WX 1106 ; N uniA66D ; G 4838 +U 42606 ; WX 961 ; N uniA66E ; G 4839 +U 42634 ; WX 963 ; N uniA68A ; G 4840 +U 42635 ; WX 787 ; N uniA68B ; G 4841 +U 42636 ; WX 682 ; N uniA68C ; G 4842 +U 42637 ; WX 580 ; N uniA68D ; G 4843 +U 42644 ; WX 808 ; N uniA694 ; G 4844 +U 42645 ; WX 712 ; N uniA695 ; G 4845 +U 42648 ; WX 1406 ; N uniA698 ; G 4846 +U 42649 ; WX 1106 ; N uniA699 ; G 4847 +U 42760 ; WX 500 ; N uniA708 ; G 4848 +U 42761 ; WX 500 ; N uniA709 ; G 4849 +U 42762 ; WX 500 ; N uniA70A ; G 4850 +U 42763 ; WX 500 ; N uniA70B ; G 4851 +U 42764 ; WX 500 ; N uniA70C ; G 4852 +U 42765 ; WX 500 ; N uniA70D ; G 4853 +U 42766 ; WX 500 ; N uniA70E ; G 4854 +U 42767 ; WX 500 ; N uniA70F ; G 4855 +U 42768 ; WX 500 ; N uniA710 ; G 4856 +U 42769 ; WX 500 ; N uniA711 ; G 4857 +U 42770 ; WX 500 ; N uniA712 ; G 4858 +U 42771 ; WX 500 ; N uniA713 ; G 4859 +U 42772 ; WX 500 ; N uniA714 ; G 4860 +U 42773 ; WX 500 ; N uniA715 ; G 4861 +U 42774 ; WX 500 ; N uniA716 ; G 4862 +U 42779 ; WX 400 ; N uniA71B ; G 4863 +U 42780 ; WX 400 ; N uniA71C ; G 4864 +U 42781 ; WX 287 ; N uniA71D ; G 4865 +U 42782 ; WX 287 ; N uniA71E ; G 4866 +U 42783 ; WX 287 ; N uniA71F ; G 4867 +U 42786 ; WX 444 ; N uniA722 ; G 4868 +U 42787 ; WX 390 ; N uniA723 ; G 4869 +U 42788 ; WX 540 ; N uniA724 ; G 4870 +U 42789 ; WX 540 ; N uniA725 ; G 4871 +U 42790 ; WX 837 ; N uniA726 ; G 4872 +U 42791 ; WX 712 ; N uniA727 ; G 4873 +U 42792 ; WX 1031 ; N uniA728 ; G 4874 +U 42793 ; WX 857 ; N uniA729 ; G 4875 +U 42794 ; WX 696 ; N uniA72A ; G 4876 +U 42795 ; WX 557 ; N uniA72B ; G 4877 +U 42800 ; WX 559 ; N uniA730 ; G 4878 +U 42801 ; WX 595 ; N uniA731 ; G 4879 +U 42802 ; WX 1349 ; N uniA732 ; G 4880 +U 42803 ; WX 1052 ; N uniA733 ; G 4881 +U 42804 ; WX 1284 ; N uniA734 ; G 4882 +U 42805 ; WX 1064 ; N uniA735 ; G 4883 +U 42806 ; WX 1216 ; N uniA736 ; G 4884 +U 42807 ; WX 1054 ; N uniA737 ; G 4885 +U 42808 ; WX 1079 ; N uniA738 ; G 4886 +U 42809 ; WX 922 ; N uniA739 ; G 4887 +U 42810 ; WX 1079 ; N uniA73A ; G 4888 +U 42811 ; WX 922 ; N uniA73B ; G 4889 +U 42812 ; WX 1035 ; N uniA73C ; G 4890 +U 42813 ; WX 922 ; N uniA73D ; G 4891 +U 42814 ; WX 698 ; N uniA73E ; G 4892 +U 42815 ; WX 549 ; N uniA73F ; G 4893 +U 42816 ; WX 656 ; N uniA740 ; G 4894 +U 42817 ; WX 688 ; N uniA741 ; G 4895 +U 42822 ; WX 850 ; N uniA746 ; G 4896 +U 42823 ; WX 542 ; N uniA747 ; G 4897 +U 42824 ; WX 683 ; N uniA748 ; G 4898 +U 42825 ; WX 531 ; N uniA749 ; G 4899 +U 42826 ; WX 918 ; N uniA74A ; G 4900 +U 42827 ; WX 814 ; N uniA74B ; G 4901 +U 42830 ; WX 1406 ; N uniA74E ; G 4902 +U 42831 ; WX 1106 ; N uniA74F ; G 4903 +U 42832 ; WX 733 ; N uniA750 ; G 4904 +U 42833 ; WX 716 ; N uniA751 ; G 4905 +U 42834 ; WX 948 ; N uniA752 ; G 4906 +U 42835 ; WX 937 ; N uniA753 ; G 4907 +U 42838 ; WX 850 ; N uniA756 ; G 4908 +U 42839 ; WX 716 ; N uniA757 ; G 4909 +U 42852 ; WX 738 ; N uniA764 ; G 4910 +U 42853 ; WX 716 ; N uniA765 ; G 4911 +U 42854 ; WX 738 ; N uniA766 ; G 4912 +U 42855 ; WX 716 ; N uniA767 ; G 4913 +U 42880 ; WX 637 ; N uniA780 ; G 4914 +U 42881 ; WX 343 ; N uniA781 ; G 4915 +U 42882 ; WX 837 ; N uniA782 ; G 4916 +U 42883 ; WX 712 ; N uniA783 ; G 4917 +U 42889 ; WX 400 ; N uniA789 ; G 4918 +U 42890 ; WX 386 ; N uniA78A ; G 4919 +U 42891 ; WX 456 ; N uniA78B ; G 4920 +U 42892 ; WX 306 ; N uniA78C ; G 4921 +U 42893 ; WX 808 ; N uniA78D ; G 4922 +U 42894 ; WX 693 ; N uniA78E ; G 4923 +U 42896 ; WX 928 ; N uniA790 ; G 4924 +U 42897 ; WX 768 ; N uniA791 ; G 4925 +U 42912 ; WX 821 ; N uniA7A0 ; G 4926 +U 42913 ; WX 716 ; N uniA7A1 ; G 4927 +U 42914 ; WX 775 ; N uniA7A2 ; G 4928 +U 42915 ; WX 665 ; N uniA7A3 ; G 4929 +U 42916 ; WX 837 ; N uniA7A4 ; G 4930 +U 42917 ; WX 712 ; N uniA7A5 ; G 4931 +U 42918 ; WX 770 ; N uniA7A6 ; G 4932 +U 42919 ; WX 493 ; N uniA7A7 ; G 4933 +U 42920 ; WX 720 ; N uniA7A8 ; G 4934 +U 42921 ; WX 595 ; N uniA7A9 ; G 4935 +U 42922 ; WX 886 ; N uniA7AA ; G 4936 +U 43000 ; WX 613 ; N uniA7F8 ; G 4937 +U 43001 ; WX 689 ; N uniA7F9 ; G 4938 +U 43002 ; WX 1062 ; N uniA7FA ; G 4939 +U 43003 ; WX 683 ; N uniA7FB ; G 4940 +U 43004 ; WX 733 ; N uniA7FC ; G 4941 +U 43005 ; WX 995 ; N uniA7FD ; G 4942 +U 43006 ; WX 372 ; N uniA7FE ; G 4943 +U 43007 ; WX 1325 ; N uniA7FF ; G 4944 +U 61184 ; WX 216 ; N uni02E5.5 ; G 4945 +U 61185 ; WX 242 ; N uni02E6.5 ; G 4946 +U 61186 ; WX 267 ; N uni02E7.5 ; G 4947 +U 61187 ; WX 277 ; N uni02E8.5 ; G 4948 +U 61188 ; WX 282 ; N uni02E9.5 ; G 4949 +U 61189 ; WX 242 ; N uni02E5.4 ; G 4950 +U 61190 ; WX 216 ; N uni02E6.4 ; G 4951 +U 61191 ; WX 242 ; N uni02E7.4 ; G 4952 +U 61192 ; WX 267 ; N uni02E8.4 ; G 4953 +U 61193 ; WX 277 ; N uni02E9.4 ; G 4954 +U 61194 ; WX 267 ; N uni02E5.3 ; G 4955 +U 61195 ; WX 242 ; N uni02E6.3 ; G 4956 +U 61196 ; WX 216 ; N uni02E7.3 ; G 4957 +U 61197 ; WX 242 ; N uni02E8.3 ; G 4958 +U 61198 ; WX 267 ; N uni02E9.3 ; G 4959 +U 61199 ; WX 277 ; N uni02E5.2 ; G 4960 +U 61200 ; WX 267 ; N uni02E6.2 ; G 4961 +U 61201 ; WX 242 ; N uni02E7.2 ; G 4962 +U 61202 ; WX 216 ; N uni02E8.2 ; G 4963 +U 61203 ; WX 242 ; N uni02E9.2 ; G 4964 +U 61204 ; WX 282 ; N uni02E5.1 ; G 4965 +U 61205 ; WX 277 ; N uni02E6.1 ; G 4966 +U 61206 ; WX 267 ; N uni02E7.1 ; G 4967 +U 61207 ; WX 242 ; N uni02E8.1 ; G 4968 +U 61208 ; WX 216 ; N uni02E9.1 ; G 4969 +U 61209 ; WX 282 ; N stem ; G 4970 +U 62464 ; WX 612 ; N uniF400 ; G 4971 +U 62465 ; WX 612 ; N uniF401 ; G 4972 +U 62466 ; WX 653 ; N uniF402 ; G 4973 +U 62467 ; WX 902 ; N uniF403 ; G 4974 +U 62468 ; WX 622 ; N uniF404 ; G 4975 +U 62469 ; WX 622 ; N uniF405 ; G 4976 +U 62470 ; WX 661 ; N uniF406 ; G 4977 +U 62471 ; WX 895 ; N uniF407 ; G 4978 +U 62472 ; WX 589 ; N uniF408 ; G 4979 +U 62473 ; WX 622 ; N uniF409 ; G 4980 +U 62474 ; WX 1163 ; N uniF40A ; G 4981 +U 62475 ; WX 626 ; N uniF40B ; G 4982 +U 62476 ; WX 627 ; N uniF40C ; G 4983 +U 62477 ; WX 893 ; N uniF40D ; G 4984 +U 62478 ; WX 612 ; N uniF40E ; G 4985 +U 62479 ; WX 626 ; N uniF40F ; G 4986 +U 62480 ; WX 924 ; N uniF410 ; G 4987 +U 62481 ; WX 627 ; N uniF411 ; G 4988 +U 62482 ; WX 744 ; N uniF412 ; G 4989 +U 62483 ; WX 634 ; N uniF413 ; G 4990 +U 62484 ; WX 886 ; N uniF414 ; G 4991 +U 62485 ; WX 626 ; N uniF415 ; G 4992 +U 62486 ; WX 907 ; N uniF416 ; G 4993 +U 62487 ; WX 626 ; N uniF417 ; G 4994 +U 62488 ; WX 621 ; N uniF418 ; G 4995 +U 62489 ; WX 628 ; N uniF419 ; G 4996 +U 62490 ; WX 677 ; N uniF41A ; G 4997 +U 62491 ; WX 626 ; N uniF41B ; G 4998 +U 62492 ; WX 621 ; N uniF41C ; G 4999 +U 62493 ; WX 630 ; N uniF41D ; G 5000 +U 62494 ; WX 627 ; N uniF41E ; G 5001 +U 62495 ; WX 571 ; N uniF41F ; G 5002 +U 62496 ; WX 622 ; N uniF420 ; G 5003 +U 62497 ; WX 631 ; N uniF421 ; G 5004 +U 62498 ; WX 612 ; N uniF422 ; G 5005 +U 62499 ; WX 611 ; N uniF423 ; G 5006 +U 62500 ; WX 618 ; N uniF424 ; G 5007 +U 62501 ; WX 671 ; N uniF425 ; G 5008 +U 62502 ; WX 963 ; N uniF426 ; G 5009 +U 62504 ; WX 1023 ; N uniF428 ; G 5010 +U 62505 ; WX 844 ; N uniF429 ; G 5011 +U 62506 ; WX 563 ; N uniF42A ; G 5012 +U 62507 ; WX 563 ; N uniF42B ; G 5013 +U 62508 ; WX 563 ; N uniF42C ; G 5014 +U 62509 ; WX 563 ; N uniF42D ; G 5015 +U 62510 ; WX 563 ; N uniF42E ; G 5016 +U 62511 ; WX 563 ; N uniF42F ; G 5017 +U 62512 ; WX 555 ; N uniF430 ; G 5018 +U 62513 ; WX 555 ; N uniF431 ; G 5019 +U 62514 ; WX 555 ; N uniF432 ; G 5020 +U 62515 ; WX 555 ; N uniF433 ; G 5021 +U 62516 ; WX 573 ; N uniF434 ; G 5022 +U 62517 ; WX 573 ; N uniF435 ; G 5023 +U 62518 ; WX 573 ; N uniF436 ; G 5024 +U 62519 ; WX 824 ; N uniF437 ; G 5025 +U 62520 ; WX 824 ; N uniF438 ; G 5026 +U 62521 ; WX 824 ; N uniF439 ; G 5027 +U 62522 ; WX 824 ; N uniF43A ; G 5028 +U 62523 ; WX 824 ; N uniF43B ; G 5029 +U 62524 ; WX 611 ; N uniF43C ; G 5030 +U 62525 ; WX 611 ; N uniF43D ; G 5031 +U 62526 ; WX 611 ; N uniF43E ; G 5032 +U 62527 ; WX 611 ; N uniF43F ; G 5033 +U 62528 ; WX 611 ; N uniF440 ; G 5034 +U 62529 ; WX 611 ; N uniF441 ; G 5035 +U 63173 ; WX 687 ; N uniF6C5 ; G 5036 +U 64256 ; WX 810 ; N uniFB00 ; G 5037 +U 64257 ; WX 741 ; N fi ; G 5038 +U 64258 ; WX 741 ; N fl ; G 5039 +U 64259 ; WX 1115 ; N uniFB03 ; G 5040 +U 64260 ; WX 1116 ; N uniFB04 ; G 5041 +U 64261 ; WX 808 ; N uniFB05 ; G 5042 +U 64262 ; WX 1020 ; N uniFB06 ; G 5043 +U 64275 ; WX 1388 ; N uniFB13 ; G 5044 +U 64276 ; WX 1384 ; N uniFB14 ; G 5045 +U 64277 ; WX 1378 ; N uniFB15 ; G 5046 +U 64278 ; WX 1384 ; N uniFB16 ; G 5047 +U 64279 ; WX 1713 ; N uniFB17 ; G 5048 +U 64285 ; WX 294 ; N uniFB1D ; G 5049 +U 64286 ; WX 0 ; N uniFB1E ; G 5050 +U 64287 ; WX 519 ; N uniFB1F ; G 5051 +U 64288 ; WX 665 ; N uniFB20 ; G 5052 +U 64289 ; WX 939 ; N uniFB21 ; G 5053 +U 64290 ; WX 788 ; N uniFB22 ; G 5054 +U 64291 ; WX 920 ; N uniFB23 ; G 5055 +U 64292 ; WX 786 ; N uniFB24 ; G 5056 +U 64293 ; WX 857 ; N uniFB25 ; G 5057 +U 64294 ; WX 869 ; N uniFB26 ; G 5058 +U 64295 ; WX 821 ; N uniFB27 ; G 5059 +U 64296 ; WX 890 ; N uniFB28 ; G 5060 +U 64297 ; WX 838 ; N uniFB29 ; G 5061 +U 64298 ; WX 758 ; N uniFB2A ; G 5062 +U 64299 ; WX 758 ; N uniFB2B ; G 5063 +U 64300 ; WX 758 ; N uniFB2C ; G 5064 +U 64301 ; WX 758 ; N uniFB2D ; G 5065 +U 64302 ; WX 728 ; N uniFB2E ; G 5066 +U 64303 ; WX 728 ; N uniFB2F ; G 5067 +U 64304 ; WX 728 ; N uniFB30 ; G 5068 +U 64305 ; WX 610 ; N uniFB31 ; G 5069 +U 64306 ; WX 447 ; N uniFB32 ; G 5070 +U 64307 ; WX 588 ; N uniFB33 ; G 5071 +U 64308 ; WX 687 ; N uniFB34 ; G 5072 +U 64309 ; WX 437 ; N uniFB35 ; G 5073 +U 64310 ; WX 485 ; N uniFB36 ; G 5074 +U 64312 ; WX 679 ; N uniFB38 ; G 5075 +U 64313 ; WX 435 ; N uniFB39 ; G 5076 +U 64314 ; WX 578 ; N uniFB3A ; G 5077 +U 64315 ; WX 566 ; N uniFB3B ; G 5078 +U 64316 ; WX 605 ; N uniFB3C ; G 5079 +U 64318 ; WX 724 ; N uniFB3E ; G 5080 +U 64320 ; WX 453 ; N uniFB40 ; G 5081 +U 64321 ; WX 680 ; N uniFB41 ; G 5082 +U 64323 ; WX 675 ; N uniFB43 ; G 5083 +U 64324 ; WX 658 ; N uniFB44 ; G 5084 +U 64326 ; WX 653 ; N uniFB46 ; G 5085 +U 64327 ; WX 736 ; N uniFB47 ; G 5086 +U 64328 ; WX 602 ; N uniFB48 ; G 5087 +U 64329 ; WX 758 ; N uniFB49 ; G 5088 +U 64330 ; WX 683 ; N uniFB4A ; G 5089 +U 64331 ; WX 343 ; N uniFB4B ; G 5090 +U 64332 ; WX 610 ; N uniFB4C ; G 5091 +U 64333 ; WX 566 ; N uniFB4D ; G 5092 +U 64334 ; WX 658 ; N uniFB4E ; G 5093 +U 64335 ; WX 710 ; N uniFB4F ; G 5094 +U 64338 ; WX 1005 ; N uniFB52 ; G 5095 +U 64339 ; WX 1059 ; N uniFB53 ; G 5096 +U 64340 ; WX 375 ; N uniFB54 ; G 5097 +U 64341 ; WX 408 ; N uniFB55 ; G 5098 +U 64342 ; WX 1005 ; N uniFB56 ; G 5099 +U 64343 ; WX 1059 ; N uniFB57 ; G 5100 +U 64344 ; WX 375 ; N uniFB58 ; G 5101 +U 64345 ; WX 408 ; N uniFB59 ; G 5102 +U 64346 ; WX 1005 ; N uniFB5A ; G 5103 +U 64347 ; WX 1059 ; N uniFB5B ; G 5104 +U 64348 ; WX 375 ; N uniFB5C ; G 5105 +U 64349 ; WX 408 ; N uniFB5D ; G 5106 +U 64350 ; WX 1005 ; N uniFB5E ; G 5107 +U 64351 ; WX 1059 ; N uniFB5F ; G 5108 +U 64352 ; WX 375 ; N uniFB60 ; G 5109 +U 64353 ; WX 408 ; N uniFB61 ; G 5110 +U 64354 ; WX 1005 ; N uniFB62 ; G 5111 +U 64355 ; WX 1059 ; N uniFB63 ; G 5112 +U 64356 ; WX 375 ; N uniFB64 ; G 5113 +U 64357 ; WX 408 ; N uniFB65 ; G 5114 +U 64358 ; WX 1005 ; N uniFB66 ; G 5115 +U 64359 ; WX 1059 ; N uniFB67 ; G 5116 +U 64360 ; WX 375 ; N uniFB68 ; G 5117 +U 64361 ; WX 408 ; N uniFB69 ; G 5118 +U 64362 ; WX 1162 ; N uniFB6A ; G 5119 +U 64363 ; WX 1191 ; N uniFB6B ; G 5120 +U 64364 ; WX 655 ; N uniFB6C ; G 5121 +U 64365 ; WX 720 ; N uniFB6D ; G 5122 +U 64366 ; WX 1162 ; N uniFB6E ; G 5123 +U 64367 ; WX 1191 ; N uniFB6F ; G 5124 +U 64368 ; WX 655 ; N uniFB70 ; G 5125 +U 64369 ; WX 720 ; N uniFB71 ; G 5126 +U 64370 ; WX 721 ; N uniFB72 ; G 5127 +U 64371 ; WX 721 ; N uniFB73 ; G 5128 +U 64372 ; WX 721 ; N uniFB74 ; G 5129 +U 64373 ; WX 721 ; N uniFB75 ; G 5130 +U 64374 ; WX 721 ; N uniFB76 ; G 5131 +U 64375 ; WX 721 ; N uniFB77 ; G 5132 +U 64376 ; WX 721 ; N uniFB78 ; G 5133 +U 64377 ; WX 721 ; N uniFB79 ; G 5134 +U 64378 ; WX 721 ; N uniFB7A ; G 5135 +U 64379 ; WX 721 ; N uniFB7B ; G 5136 +U 64380 ; WX 721 ; N uniFB7C ; G 5137 +U 64381 ; WX 721 ; N uniFB7D ; G 5138 +U 64382 ; WX 721 ; N uniFB7E ; G 5139 +U 64383 ; WX 721 ; N uniFB7F ; G 5140 +U 64384 ; WX 721 ; N uniFB80 ; G 5141 +U 64385 ; WX 721 ; N uniFB81 ; G 5142 +U 64386 ; WX 513 ; N uniFB82 ; G 5143 +U 64387 ; WX 578 ; N uniFB83 ; G 5144 +U 64388 ; WX 513 ; N uniFB84 ; G 5145 +U 64389 ; WX 578 ; N uniFB85 ; G 5146 +U 64390 ; WX 513 ; N uniFB86 ; G 5147 +U 64391 ; WX 578 ; N uniFB87 ; G 5148 +U 64392 ; WX 513 ; N uniFB88 ; G 5149 +U 64393 ; WX 578 ; N uniFB89 ; G 5150 +U 64394 ; WX 576 ; N uniFB8A ; G 5151 +U 64395 ; WX 622 ; N uniFB8B ; G 5152 +U 64396 ; WX 576 ; N uniFB8C ; G 5153 +U 64397 ; WX 622 ; N uniFB8D ; G 5154 +U 64398 ; WX 1024 ; N uniFB8E ; G 5155 +U 64399 ; WX 1024 ; N uniFB8F ; G 5156 +U 64400 ; WX 582 ; N uniFB90 ; G 5157 +U 64401 ; WX 582 ; N uniFB91 ; G 5158 +U 64402 ; WX 1024 ; N uniFB92 ; G 5159 +U 64403 ; WX 1024 ; N uniFB93 ; G 5160 +U 64404 ; WX 582 ; N uniFB94 ; G 5161 +U 64405 ; WX 582 ; N uniFB95 ; G 5162 +U 64406 ; WX 1024 ; N uniFB96 ; G 5163 +U 64407 ; WX 1024 ; N uniFB97 ; G 5164 +U 64408 ; WX 582 ; N uniFB98 ; G 5165 +U 64409 ; WX 582 ; N uniFB99 ; G 5166 +U 64410 ; WX 1024 ; N uniFB9A ; G 5167 +U 64411 ; WX 1024 ; N uniFB9B ; G 5168 +U 64412 ; WX 582 ; N uniFB9C ; G 5169 +U 64413 ; WX 582 ; N uniFB9D ; G 5170 +U 64414 ; WX 854 ; N uniFB9E ; G 5171 +U 64415 ; WX 900 ; N uniFB9F ; G 5172 +U 64416 ; WX 854 ; N uniFBA0 ; G 5173 +U 64417 ; WX 900 ; N uniFBA1 ; G 5174 +U 64418 ; WX 375 ; N uniFBA2 ; G 5175 +U 64419 ; WX 408 ; N uniFBA3 ; G 5176 +U 64426 ; WX 938 ; N uniFBAA ; G 5177 +U 64427 ; WX 880 ; N uniFBAB ; G 5178 +U 64428 ; WX 693 ; N uniFBAC ; G 5179 +U 64429 ; WX 660 ; N uniFBAD ; G 5180 +U 64467 ; WX 824 ; N uniFBD3 ; G 5181 +U 64468 ; WX 843 ; N uniFBD4 ; G 5182 +U 64469 ; WX 476 ; N uniFBD5 ; G 5183 +U 64470 ; WX 552 ; N uniFBD6 ; G 5184 +U 64471 ; WX 622 ; N uniFBD7 ; G 5185 +U 64472 ; WX 627 ; N uniFBD8 ; G 5186 +U 64473 ; WX 622 ; N uniFBD9 ; G 5187 +U 64474 ; WX 627 ; N uniFBDA ; G 5188 +U 64475 ; WX 622 ; N uniFBDB ; G 5189 +U 64476 ; WX 627 ; N uniFBDC ; G 5190 +U 64478 ; WX 622 ; N uniFBDE ; G 5191 +U 64479 ; WX 627 ; N uniFBDF ; G 5192 +U 64484 ; WX 917 ; N uniFBE4 ; G 5193 +U 64485 ; WX 1012 ; N uniFBE5 ; G 5194 +U 64486 ; WX 375 ; N uniFBE6 ; G 5195 +U 64487 ; WX 408 ; N uniFBE7 ; G 5196 +U 64488 ; WX 375 ; N uniFBE8 ; G 5197 +U 64489 ; WX 408 ; N uniFBE9 ; G 5198 +U 64508 ; WX 917 ; N uniFBFC ; G 5199 +U 64509 ; WX 1012 ; N uniFBFD ; G 5200 +U 64510 ; WX 375 ; N uniFBFE ; G 5201 +U 64511 ; WX 408 ; N uniFBFF ; G 5202 +U 65024 ; WX 0 ; N uniFE00 ; G 5203 +U 65025 ; WX 0 ; N uniFE01 ; G 5204 +U 65026 ; WX 0 ; N uniFE02 ; G 5205 +U 65027 ; WX 0 ; N uniFE03 ; G 5206 +U 65028 ; WX 0 ; N uniFE04 ; G 5207 +U 65029 ; WX 0 ; N uniFE05 ; G 5208 +U 65030 ; WX 0 ; N uniFE06 ; G 5209 +U 65031 ; WX 0 ; N uniFE07 ; G 5210 +U 65032 ; WX 0 ; N uniFE08 ; G 5211 +U 65033 ; WX 0 ; N uniFE09 ; G 5212 +U 65034 ; WX 0 ; N uniFE0A ; G 5213 +U 65035 ; WX 0 ; N uniFE0B ; G 5214 +U 65036 ; WX 0 ; N uniFE0C ; G 5215 +U 65037 ; WX 0 ; N uniFE0D ; G 5216 +U 65038 ; WX 0 ; N uniFE0E ; G 5217 +U 65039 ; WX 0 ; N uniFE0F ; G 5218 +U 65056 ; WX 0 ; N uniFE20 ; G 5219 +U 65057 ; WX 0 ; N uniFE21 ; G 5220 +U 65058 ; WX 0 ; N uniFE22 ; G 5221 +U 65059 ; WX 0 ; N uniFE23 ; G 5222 +U 65136 ; WX 342 ; N uniFE70 ; G 5223 +U 65137 ; WX 342 ; N uniFE71 ; G 5224 +U 65138 ; WX 342 ; N uniFE72 ; G 5225 +U 65139 ; WX 346 ; N uniFE73 ; G 5226 +U 65140 ; WX 342 ; N uniFE74 ; G 5227 +U 65142 ; WX 342 ; N uniFE76 ; G 5228 +U 65143 ; WX 342 ; N uniFE77 ; G 5229 +U 65144 ; WX 342 ; N uniFE78 ; G 5230 +U 65145 ; WX 342 ; N uniFE79 ; G 5231 +U 65146 ; WX 342 ; N uniFE7A ; G 5232 +U 65147 ; WX 342 ; N uniFE7B ; G 5233 +U 65148 ; WX 342 ; N uniFE7C ; G 5234 +U 65149 ; WX 342 ; N uniFE7D ; G 5235 +U 65150 ; WX 342 ; N uniFE7E ; G 5236 +U 65151 ; WX 342 ; N uniFE7F ; G 5237 +U 65152 ; WX 511 ; N uniFE80 ; G 5238 +U 65153 ; WX 343 ; N uniFE81 ; G 5239 +U 65154 ; WX 375 ; N uniFE82 ; G 5240 +U 65155 ; WX 343 ; N uniFE83 ; G 5241 +U 65156 ; WX 375 ; N uniFE84 ; G 5242 +U 65157 ; WX 622 ; N uniFE85 ; G 5243 +U 65158 ; WX 627 ; N uniFE86 ; G 5244 +U 65159 ; WX 343 ; N uniFE87 ; G 5245 +U 65160 ; WX 375 ; N uniFE88 ; G 5246 +U 65161 ; WX 917 ; N uniFE89 ; G 5247 +U 65162 ; WX 917 ; N uniFE8A ; G 5248 +U 65163 ; WX 375 ; N uniFE8B ; G 5249 +U 65164 ; WX 408 ; N uniFE8C ; G 5250 +U 65165 ; WX 343 ; N uniFE8D ; G 5251 +U 65166 ; WX 375 ; N uniFE8E ; G 5252 +U 65167 ; WX 1005 ; N uniFE8F ; G 5253 +U 65168 ; WX 1059 ; N uniFE90 ; G 5254 +U 65169 ; WX 375 ; N uniFE91 ; G 5255 +U 65170 ; WX 408 ; N uniFE92 ; G 5256 +U 65171 ; WX 590 ; N uniFE93 ; G 5257 +U 65172 ; WX 606 ; N uniFE94 ; G 5258 +U 65173 ; WX 1005 ; N uniFE95 ; G 5259 +U 65174 ; WX 1059 ; N uniFE96 ; G 5260 +U 65175 ; WX 375 ; N uniFE97 ; G 5261 +U 65176 ; WX 408 ; N uniFE98 ; G 5262 +U 65177 ; WX 1005 ; N uniFE99 ; G 5263 +U 65178 ; WX 1059 ; N uniFE9A ; G 5264 +U 65179 ; WX 375 ; N uniFE9B ; G 5265 +U 65180 ; WX 408 ; N uniFE9C ; G 5266 +U 65181 ; WX 721 ; N uniFE9D ; G 5267 +U 65182 ; WX 721 ; N uniFE9E ; G 5268 +U 65183 ; WX 721 ; N uniFE9F ; G 5269 +U 65184 ; WX 721 ; N uniFEA0 ; G 5270 +U 65185 ; WX 721 ; N uniFEA1 ; G 5271 +U 65186 ; WX 721 ; N uniFEA2 ; G 5272 +U 65187 ; WX 721 ; N uniFEA3 ; G 5273 +U 65188 ; WX 721 ; N uniFEA4 ; G 5274 +U 65189 ; WX 721 ; N uniFEA5 ; G 5275 +U 65190 ; WX 721 ; N uniFEA6 ; G 5276 +U 65191 ; WX 721 ; N uniFEA7 ; G 5277 +U 65192 ; WX 721 ; N uniFEA8 ; G 5278 +U 65193 ; WX 513 ; N uniFEA9 ; G 5279 +U 65194 ; WX 578 ; N uniFEAA ; G 5280 +U 65195 ; WX 513 ; N uniFEAB ; G 5281 +U 65196 ; WX 578 ; N uniFEAC ; G 5282 +U 65197 ; WX 576 ; N uniFEAD ; G 5283 +U 65198 ; WX 622 ; N uniFEAE ; G 5284 +U 65199 ; WX 576 ; N uniFEAF ; G 5285 +U 65200 ; WX 622 ; N uniFEB0 ; G 5286 +U 65201 ; WX 1380 ; N uniFEB1 ; G 5287 +U 65202 ; WX 1414 ; N uniFEB2 ; G 5288 +U 65203 ; WX 983 ; N uniFEB3 ; G 5289 +U 65204 ; WX 1018 ; N uniFEB4 ; G 5290 +U 65205 ; WX 1380 ; N uniFEB5 ; G 5291 +U 65206 ; WX 1414 ; N uniFEB6 ; G 5292 +U 65207 ; WX 983 ; N uniFEB7 ; G 5293 +U 65208 ; WX 1018 ; N uniFEB8 ; G 5294 +U 65209 ; WX 1345 ; N uniFEB9 ; G 5295 +U 65210 ; WX 1364 ; N uniFEBA ; G 5296 +U 65211 ; WX 966 ; N uniFEBB ; G 5297 +U 65212 ; WX 985 ; N uniFEBC ; G 5298 +U 65213 ; WX 1345 ; N uniFEBD ; G 5299 +U 65214 ; WX 1364 ; N uniFEBE ; G 5300 +U 65215 ; WX 966 ; N uniFEBF ; G 5301 +U 65216 ; WX 985 ; N uniFEC0 ; G 5302 +U 65217 ; WX 1039 ; N uniFEC1 ; G 5303 +U 65218 ; WX 1071 ; N uniFEC2 ; G 5304 +U 65219 ; WX 942 ; N uniFEC3 ; G 5305 +U 65220 ; WX 974 ; N uniFEC4 ; G 5306 +U 65221 ; WX 1039 ; N uniFEC5 ; G 5307 +U 65222 ; WX 1071 ; N uniFEC6 ; G 5308 +U 65223 ; WX 942 ; N uniFEC7 ; G 5309 +U 65224 ; WX 974 ; N uniFEC8 ; G 5310 +U 65225 ; WX 683 ; N uniFEC9 ; G 5311 +U 65226 ; WX 683 ; N uniFECA ; G 5312 +U 65227 ; WX 683 ; N uniFECB ; G 5313 +U 65228 ; WX 564 ; N uniFECC ; G 5314 +U 65229 ; WX 683 ; N uniFECD ; G 5315 +U 65230 ; WX 683 ; N uniFECE ; G 5316 +U 65231 ; WX 683 ; N uniFECF ; G 5317 +U 65232 ; WX 564 ; N uniFED0 ; G 5318 +U 65233 ; WX 1162 ; N uniFED1 ; G 5319 +U 65234 ; WX 1191 ; N uniFED2 ; G 5320 +U 65235 ; WX 655 ; N uniFED3 ; G 5321 +U 65236 ; WX 720 ; N uniFED4 ; G 5322 +U 65237 ; WX 894 ; N uniFED5 ; G 5323 +U 65238 ; WX 901 ; N uniFED6 ; G 5324 +U 65239 ; WX 655 ; N uniFED7 ; G 5325 +U 65240 ; WX 720 ; N uniFED8 ; G 5326 +U 65241 ; WX 917 ; N uniFED9 ; G 5327 +U 65242 ; WX 931 ; N uniFEDA ; G 5328 +U 65243 ; WX 582 ; N uniFEDB ; G 5329 +U 65244 ; WX 582 ; N uniFEDC ; G 5330 +U 65245 ; WX 868 ; N uniFEDD ; G 5331 +U 65246 ; WX 893 ; N uniFEDE ; G 5332 +U 65247 ; WX 375 ; N uniFEDF ; G 5333 +U 65248 ; WX 408 ; N uniFEE0 ; G 5334 +U 65249 ; WX 733 ; N uniFEE1 ; G 5335 +U 65250 ; WX 784 ; N uniFEE2 ; G 5336 +U 65251 ; WX 619 ; N uniFEE3 ; G 5337 +U 65252 ; WX 670 ; N uniFEE4 ; G 5338 +U 65253 ; WX 854 ; N uniFEE5 ; G 5339 +U 65254 ; WX 900 ; N uniFEE6 ; G 5340 +U 65255 ; WX 375 ; N uniFEE7 ; G 5341 +U 65256 ; WX 408 ; N uniFEE8 ; G 5342 +U 65257 ; WX 590 ; N uniFEE9 ; G 5343 +U 65258 ; WX 606 ; N uniFEEA ; G 5344 +U 65259 ; WX 693 ; N uniFEEB ; G 5345 +U 65260 ; WX 660 ; N uniFEEC ; G 5346 +U 65261 ; WX 622 ; N uniFEED ; G 5347 +U 65262 ; WX 627 ; N uniFEEE ; G 5348 +U 65263 ; WX 917 ; N uniFEEF ; G 5349 +U 65264 ; WX 1012 ; N uniFEF0 ; G 5350 +U 65265 ; WX 917 ; N uniFEF1 ; G 5351 +U 65266 ; WX 1012 ; N uniFEF2 ; G 5352 +U 65267 ; WX 375 ; N uniFEF3 ; G 5353 +U 65268 ; WX 408 ; N uniFEF4 ; G 5354 +U 65269 ; WX 745 ; N uniFEF5 ; G 5355 +U 65270 ; WX 759 ; N uniFEF6 ; G 5356 +U 65271 ; WX 745 ; N uniFEF7 ; G 5357 +U 65272 ; WX 759 ; N uniFEF8 ; G 5358 +U 65273 ; WX 745 ; N uniFEF9 ; G 5359 +U 65274 ; WX 759 ; N uniFEFA ; G 5360 +U 65275 ; WX 745 ; N uniFEFB ; G 5361 +U 65276 ; WX 759 ; N uniFEFC ; G 5362 +U 65279 ; WX 0 ; N uniFEFF ; G 5363 +U 65529 ; WX 0 ; N uniFFF9 ; G 5364 +U 65530 ; WX 0 ; N uniFFFA ; G 5365 +U 65531 ; WX 0 ; N uniFFFB ; G 5366 +U 65532 ; WX 0 ; N uniFFFC ; G 5367 +U 65533 ; WX 1113 ; N uniFFFD ; G 5368 +EndCharMetrics +StartKernData +StartKernPairs 1538 + +KPX dollar seven -159 +KPX dollar eight -63 +KPX dollar nine -139 +KPX dollar colon -92 +KPX dollar less -196 +KPX dollar Y -73 +KPX dollar backslash -73 +KPX dollar questiondown -73 +KPX dollar Aacute -73 +KPX dollar Hcircumflex -159 +KPX dollar Hbar -159 +KPX dollar Imacron -63 +KPX dollar Ibreve -63 +KPX dollar Iogonek -63 +KPX dollar Idot -63 +KPX dollar IJ -63 +KPX dollar Kcommaaccent -92 +KPX dollar kgreenlandic -196 +KPX dollar Lacute -73 +KPX dollar lacute -196 +KPX dollar uni01DC -159 +KPX dollar uni01F4 -196 +KPX dollar uni01F5 -73 + +KPX percent nine -83 +KPX percent colon -112 +KPX percent less -112 +KPX percent Kcommaaccent -112 +KPX percent kgreenlandic -112 +KPX percent lacute -112 +KPX percent uni01F4 -112 + +KPX ampersand six 38 +KPX ampersand Gcircumflex 38 +KPX ampersand Gbreve 38 +KPX ampersand Gdotaccent 38 +KPX ampersand Gcommaaccent 38 +KPX ampersand uni01DA 38 + +KPX quotesingle less -149 +KPX quotesingle kgreenlandic -149 +KPX quotesingle lacute -149 +KPX quotesingle uni01F4 -149 + +KPX parenright dollar -235 +KPX parenright D -120 +KPX parenright H -83 +KPX parenright R -83 +KPX parenright U -131 +KPX parenright X -102 +KPX parenright backslash -112 +KPX parenright cent -120 +KPX parenright sterling -120 +KPX parenright currency -120 +KPX parenright yen -120 +KPX parenright brokenbar -120 +KPX parenright section -120 +KPX parenright dieresis -120 +KPX parenright ordfeminine -83 +KPX parenright guillemotleft -83 +KPX parenright logicalnot -83 +KPX parenright sfthyphen -83 +KPX parenright acute -83 +KPX parenright mu -83 +KPX parenright paragraph -83 +KPX parenright periodcentered -83 +KPX parenright cedilla -83 +KPX parenright ordmasculine -83 +KPX parenright guillemotright -102 +KPX parenright onequarter -102 +KPX parenright onehalf -102 +KPX parenright threequarters -102 +KPX parenright questiondown -112 +KPX parenright Aacute -112 +KPX parenright Acircumflex -235 +KPX parenright Atilde -120 +KPX parenright Adieresis -235 +KPX parenright Aring -120 +KPX parenright AE -235 +KPX parenright Ccedilla -120 +KPX parenright Otilde -83 +KPX parenright multiply -83 +KPX parenright Ugrave -83 +KPX parenright Ucircumflex -83 +KPX parenright Yacute -83 +KPX parenright dcaron -83 +KPX parenright dmacron -83 +KPX parenright emacron -83 +KPX parenright ebreve -83 +KPX parenright edotaccent -131 +KPX parenright eogonek -131 +KPX parenright ecaron -131 +KPX parenright imacron -102 +KPX parenright ibreve -102 +KPX parenright iogonek -102 +KPX parenright dotlessi -102 +KPX parenright ij -102 +KPX parenright jcircumflex -102 +KPX parenright Lacute -112 +KPX parenright uni01A5 -120 +KPX parenright uni01AD -83 +KPX parenright Uhorn -83 +KPX parenright uni01F1 -83 +KPX parenright uni01F5 -112 + +KPX asterisk seven -36 +KPX asterisk less -45 +KPX asterisk Hbar -36 +KPX asterisk lacute -45 + +KPX period ampersand -92 +KPX period two -92 +KPX period eight -36 +KPX period H -36 +KPX period R -36 +KPX period X -36 +KPX period backslash -131 +KPX period ordfeminine -36 +KPX period guillemotleft -36 +KPX period logicalnot -36 +KPX period sfthyphen -36 +KPX period acute -36 +KPX period mu -36 +KPX period paragraph -36 +KPX period periodcentered -36 +KPX period cedilla -36 +KPX period ordmasculine -36 +KPX period guillemotright -36 +KPX period onequarter -36 +KPX period onehalf -36 +KPX period threequarters -36 +KPX period questiondown -131 +KPX period Aacute -131 +KPX period Egrave -92 +KPX period Icircumflex -92 +KPX period Yacute -36 +KPX period Ebreve -102 +KPX period ebreve -36 +KPX period Idot -36 +KPX period dotlessi -36 + +KPX slash two -73 +KPX slash seven -339 +KPX slash eight -73 +KPX slash nine -282 +KPX slash colon -159 +KPX slash less -319 +KPX slash backslash -139 +KPX slash questiondown -139 +KPX slash Aacute -139 +KPX slash Ebreve -73 +KPX slash Hbar -339 +KPX slash Idot -73 +KPX slash lacute -319 + +KPX two dollar -55 +KPX two nine -55 +KPX two semicolon -73 +KPX two less -73 +KPX two lacute -73 + +KPX three dollar -188 +KPX three D -55 +KPX three V -36 +KPX three backslash 38 +KPX three cent -55 +KPX three sterling -55 +KPX three currency -55 +KPX three yen -55 +KPX three brokenbar -55 +KPX three section -55 +KPX three dieresis -55 +KPX three questiondown 38 +KPX three Aacute 38 +KPX three gdotaccent -36 +KPX three gcommaaccent -36 + + +KPX five seven -92 +KPX five less -112 +KPX five backslash -92 +KPX five questiondown -92 +KPX five Aacute -92 +KPX five Hbar -92 +KPX five lacute -112 + +KPX six six -92 +KPX six Gdotaccent -92 +KPX six Gcommaaccent -92 + +KPX seven dollar -159 +KPX seven seven 47 +KPX seven D -264 +KPX seven F -272 +KPX seven H -272 +KPX seven R -272 +KPX seven U -225 +KPX seven V -272 +KPX seven X -225 +KPX seven Z -225 +KPX seven backslash -243 +KPX seven cent -164 +KPX seven sterling -264 +KPX seven currency -164 +KPX seven yen -164 +KPX seven brokenbar -164 +KPX seven section -164 +KPX seven dieresis -196 +KPX seven copyright -272 +KPX seven ordfeminine -212 +KPX seven guillemotleft -272 +KPX seven logicalnot -212 +KPX seven sfthyphen -212 +KPX seven acute -192 +KPX seven mu -272 +KPX seven paragraph -192 +KPX seven periodcentered -192 +KPX seven cedilla -192 +KPX seven ordmasculine -159 +KPX seven guillemotright -195 +KPX seven onequarter -225 +KPX seven onehalf -195 +KPX seven threequarters -195 +KPX seven questiondown -243 +KPX seven Aacute -243 +KPX seven Eacute -272 +KPX seven Idieresis -272 +KPX seven Yacute -272 +KPX seven ebreve -159 +KPX seven edotaccent -225 +KPX seven ecaron -225 +KPX seven gdotaccent -272 +KPX seven gcommaaccent -272 +KPX seven dotlessi -225 + +KPX eight dollar -63 + +KPX nine dollar -139 +KPX nine two -36 +KPX nine D -112 +KPX nine H -112 +KPX nine L -36 +KPX nine R -112 +KPX nine X -73 +KPX nine cent -112 +KPX nine sterling -112 +KPX nine currency -112 +KPX nine yen -112 +KPX nine brokenbar -112 +KPX nine section -112 +KPX nine dieresis -112 +KPX nine ordfeminine -112 +KPX nine guillemotleft -112 +KPX nine logicalnot -112 +KPX nine sfthyphen -112 +KPX nine acute -112 +KPX nine mu -112 +KPX nine paragraph -112 +KPX nine periodcentered -112 +KPX nine cedilla -112 +KPX nine ordmasculine -112 +KPX nine guillemotright -73 +KPX nine onequarter -73 +KPX nine onehalf -73 +KPX nine threequarters -73 +KPX nine Yacute -112 +KPX nine Ebreve -36 +KPX nine ebreve -112 +KPX nine dotlessi -73 + +KPX colon dollar -92 +KPX colon D -73 +KPX colon H -73 +KPX colon R -73 +KPX colon U -36 +KPX colon cent -73 +KPX colon sterling -73 +KPX colon currency -73 +KPX colon yen -73 +KPX colon brokenbar -73 +KPX colon section -73 +KPX colon dieresis -73 +KPX colon ordfeminine -73 +KPX colon guillemotleft -73 +KPX colon logicalnot -73 +KPX colon sfthyphen -73 +KPX colon acute -73 +KPX colon mu -73 +KPX colon paragraph -73 +KPX colon periodcentered -73 +KPX colon cedilla -73 +KPX colon ordmasculine -73 +KPX colon Yacute -73 +KPX colon ebreve -73 +KPX colon edotaccent -36 +KPX colon ecaron -36 + +KPX semicolon ampersand -73 +KPX semicolon two -73 +KPX semicolon H -55 +KPX semicolon ordfeminine -55 +KPX semicolon guillemotleft -55 +KPX semicolon logicalnot -55 +KPX semicolon sfthyphen -55 +KPX semicolon Egrave -73 +KPX semicolon Icircumflex -73 +KPX semicolon Yacute -55 +KPX semicolon Ebreve -73 + +KPX less dollar -196 +KPX less ampersand -73 +KPX less two -73 +KPX less D -188 +KPX less H -188 +KPX less R -188 +KPX less X -149 +KPX less cent -188 +KPX less sterling -188 +KPX less currency -188 +KPX less yen -188 +KPX less brokenbar -188 +KPX less section -188 +KPX less dieresis -188 +KPX less ordfeminine -188 +KPX less guillemotleft -188 +KPX less logicalnot -188 +KPX less sfthyphen -188 +KPX less acute -188 +KPX less mu -188 +KPX less paragraph -188 +KPX less periodcentered -188 +KPX less cedilla -188 +KPX less ordmasculine -188 +KPX less guillemotright -149 +KPX less onequarter -149 +KPX less onehalf -149 +KPX less threequarters -149 +KPX less Egrave -73 +KPX less Icircumflex -73 +KPX less Yacute -188 +KPX less Ebreve -92 +KPX less ebreve -188 +KPX less dotlessi -149 + + +KPX D backslash -63 +KPX D questiondown -63 +KPX D Aacute -63 + + +KPX N H -55 +KPX N R -55 +KPX N ordfeminine -55 +KPX N guillemotleft -55 +KPX N logicalnot -55 +KPX N sfthyphen -55 +KPX N acute -55 +KPX N mu -55 +KPX N paragraph -55 +KPX N periodcentered -55 +KPX N cedilla -55 +KPX N ordmasculine -45 +KPX N Yacute -55 +KPX N ebreve -55 + + + + + +KPX cent backslash -63 +KPX cent questiondown -63 +KPX cent Aacute -63 + +KPX sterling backslash -63 +KPX sterling questiondown -63 +KPX sterling Aacute -63 + +KPX currency backslash -63 +KPX currency questiondown -63 +KPX currency Aacute -63 + +KPX yen backslash -63 +KPX yen questiondown -63 +KPX yen Aacute -63 + +KPX brokenbar backslash -63 +KPX brokenbar questiondown -63 +KPX brokenbar Aacute -63 + +KPX section backslash -63 +KPX section questiondown -63 +KPX section Aacute -63 + + + +KPX Acircumflex seven -159 +KPX Acircumflex eight -63 +KPX Acircumflex nine -139 +KPX Acircumflex colon -92 +KPX Acircumflex less -196 +KPX Acircumflex Y -73 +KPX Acircumflex backslash -73 +KPX Acircumflex questiondown -73 +KPX Acircumflex Aacute -73 +KPX Acircumflex Hcircumflex -159 +KPX Acircumflex Hbar -159 +KPX Acircumflex Imacron -63 +KPX Acircumflex Ibreve -63 +KPX Acircumflex Iogonek -63 +KPX Acircumflex Idot -63 +KPX Acircumflex IJ -63 +KPX Acircumflex Kcommaaccent -92 +KPX Acircumflex kgreenlandic -196 +KPX Acircumflex Lacute -73 +KPX Acircumflex lacute -196 +KPX Acircumflex uni01DC -159 +KPX Acircumflex uni01F4 -196 +KPX Acircumflex uni01F5 -73 + +KPX Adieresis seven -159 +KPX Adieresis eight -63 +KPX Adieresis nine -139 +KPX Adieresis colon -92 +KPX Adieresis less -196 +KPX Adieresis Y -73 +KPX Adieresis backslash -73 +KPX Adieresis questiondown -73 +KPX Adieresis Aacute -73 +KPX Adieresis Hcircumflex -159 +KPX Adieresis Hbar -159 +KPX Adieresis Imacron -63 +KPX Adieresis Ibreve -63 +KPX Adieresis Iogonek -63 +KPX Adieresis Idot -63 +KPX Adieresis IJ -63 +KPX Adieresis Kcommaaccent -92 +KPX Adieresis kgreenlandic -196 +KPX Adieresis Lacute -73 +KPX Adieresis lacute -196 +KPX Adieresis uni01DC -159 +KPX Adieresis uni01F4 -196 +KPX Adieresis uni01F5 -73 + +KPX AE seven -159 +KPX AE eight -63 +KPX AE nine -139 +KPX AE colon -92 +KPX AE less -196 +KPX AE Y -73 +KPX AE backslash -73 +KPX AE questiondown -73 +KPX AE Aacute -73 +KPX AE Hcircumflex -159 +KPX AE Hbar -159 +KPX AE Imacron -63 +KPX AE Ibreve -63 +KPX AE Iogonek -63 +KPX AE Idot -63 +KPX AE IJ -63 +KPX AE Kcommaaccent -92 +KPX AE kgreenlandic -196 +KPX AE Lacute -73 +KPX AE lacute -196 +KPX AE uni01DC -159 +KPX AE uni01F4 -196 +KPX AE uni01F5 -73 + +KPX Egrave six 38 +KPX Egrave Gcircumflex 38 +KPX Egrave Gbreve 38 +KPX Egrave Gdotaccent 38 +KPX Egrave Gcommaaccent 38 +KPX Egrave uni01DA 38 + +KPX Ecircumflex six 38 +KPX Ecircumflex Gcircumflex 38 +KPX Ecircumflex Gbreve 38 +KPX Ecircumflex Gdotaccent 38 +KPX Ecircumflex Gcommaaccent 38 +KPX Ecircumflex uni01DA 38 + +KPX Igrave six 38 +KPX Igrave Gcircumflex 38 +KPX Igrave Gbreve 38 +KPX Igrave Gdotaccent 38 +KPX Igrave Gcommaaccent 38 +KPX Igrave uni01DA 38 + +KPX Icircumflex six 38 +KPX Icircumflex Gcircumflex 38 +KPX Icircumflex Gbreve 38 +KPX Icircumflex Gdotaccent 38 +KPX Icircumflex Gcommaaccent 38 +KPX Icircumflex uni01DA 38 + +KPX Eth less -149 +KPX Eth kgreenlandic -149 +KPX Eth lacute -149 +KPX Eth uni01F4 -149 + +KPX Ograve less -149 +KPX Ograve kgreenlandic -149 +KPX Ograve lacute -149 +KPX Ograve uni01F4 -149 + +KPX agrave seven -36 +KPX agrave less -45 +KPX agrave Hbar -36 +KPX agrave lacute -45 + +KPX ucircumflex two -73 +KPX ucircumflex seven -339 +KPX ucircumflex eight -73 +KPX ucircumflex nine -282 +KPX ucircumflex colon -159 +KPX ucircumflex less -319 +KPX ucircumflex backslash -139 +KPX ucircumflex questiondown -139 +KPX ucircumflex Aacute -139 +KPX ucircumflex Ebreve -73 +KPX ucircumflex Hbar -339 +KPX ucircumflex Idot -73 +KPX ucircumflex lacute -319 + +KPX ydieresis two -73 +KPX ydieresis seven -339 +KPX ydieresis eight -73 +KPX ydieresis nine -282 +KPX ydieresis colon -159 +KPX ydieresis less -319 +KPX ydieresis backslash -139 +KPX ydieresis questiondown -139 +KPX ydieresis Aacute -139 +KPX ydieresis Ebreve -73 +KPX ydieresis Hbar -339 +KPX ydieresis Idot -73 +KPX ydieresis lacute -319 + +KPX Abreve O -246 + +KPX abreve two -73 +KPX abreve seven -339 +KPX abreve eight -73 +KPX abreve nine -282 +KPX abreve colon -159 +KPX abreve less -319 +KPX abreve backslash -139 +KPX abreve questiondown -139 +KPX abreve Aacute -139 +KPX abreve Ebreve -73 +KPX abreve Hbar -339 +KPX abreve Idot -73 +KPX abreve lacute -319 + +KPX Edotaccent seven -92 +KPX Edotaccent less -112 +KPX Edotaccent backslash -92 +KPX Edotaccent questiondown -92 +KPX Edotaccent Aacute -92 +KPX Edotaccent Hbar -92 +KPX Edotaccent lacute -112 + + +KPX Ecaron seven -92 +KPX Ecaron less -112 +KPX Ecaron backslash -92 +KPX Ecaron questiondown -92 +KPX Ecaron Aacute -92 +KPX Ecaron Hbar -92 +KPX Ecaron lacute -112 + + +KPX Gdotaccent six -92 +KPX Gdotaccent Gdotaccent -92 +KPX Gdotaccent Gcommaaccent -92 + +KPX Gcommaaccent six -92 +KPX Gcommaaccent Gdotaccent -92 +KPX Gcommaaccent Gcommaaccent -92 + +KPX Hbar dollar -159 +KPX Hbar seven 47 +KPX Hbar D -264 +KPX Hbar F -272 +KPX Hbar H -272 +KPX Hbar R -272 +KPX Hbar U -225 +KPX Hbar V -272 +KPX Hbar X -225 +KPX Hbar Z -225 +KPX Hbar backslash -243 +KPX Hbar cent -264 +KPX Hbar sterling -264 +KPX Hbar currency -264 +KPX Hbar yen -264 +KPX Hbar brokenbar -264 +KPX Hbar section -264 +KPX Hbar dieresis -196 +KPX Hbar copyright -272 +KPX Hbar ordfeminine -272 +KPX Hbar guillemotleft -272 +KPX Hbar logicalnot -272 +KPX Hbar sfthyphen -272 +KPX Hbar acute -272 +KPX Hbar mu -272 +KPX Hbar paragraph -272 +KPX Hbar periodcentered -272 +KPX Hbar cedilla -272 +KPX Hbar ordmasculine -159 +KPX Hbar guillemotright -225 +KPX Hbar onequarter -225 +KPX Hbar onehalf -225 +KPX Hbar threequarters -225 +KPX Hbar questiondown -243 +KPX Hbar Aacute -243 +KPX Hbar Eacute -272 +KPX Hbar Idieresis -272 +KPX Hbar Yacute -272 +KPX Hbar ebreve -159 +KPX Hbar edotaccent -225 +KPX Hbar ecaron -225 +KPX Hbar gdotaccent -272 +KPX Hbar gcommaaccent -272 +KPX Hbar Hbar 47 +KPX Hbar dotlessi -225 + +KPX Idot dollar -63 + +KPX lacute dollar -196 +KPX lacute ampersand -73 +KPX lacute two -73 +KPX lacute D -188 +KPX lacute H -188 +KPX lacute R -188 +KPX lacute X -149 +KPX lacute cent -188 +KPX lacute sterling -188 +KPX lacute currency -188 +KPX lacute yen -188 +KPX lacute brokenbar -188 +KPX lacute section -188 +KPX lacute dieresis -188 +KPX lacute ordfeminine -188 +KPX lacute guillemotleft -188 +KPX lacute logicalnot -188 +KPX lacute sfthyphen -188 +KPX lacute acute -188 +KPX lacute mu -188 +KPX lacute paragraph -188 +KPX lacute periodcentered -188 +KPX lacute cedilla -188 +KPX lacute ordmasculine -188 +KPX lacute guillemotright -149 +KPX lacute onequarter -149 +KPX lacute onehalf -149 +KPX lacute threequarters -149 +KPX lacute Egrave -73 +KPX lacute Icircumflex -73 +KPX lacute Yacute -188 +KPX lacute Ebreve -92 +KPX lacute ebreve -188 +KPX lacute dotlessi -149 + + +KPX uni027D dollar -235 +KPX uni027D hyphen -92 +KPX uni027D nine 38 +KPX uni027D less 75 +KPX uni027D lacute 75 +EndKernPairs +EndKernData +EndFontMetrics diff --git a/public_html/2022/newcms/pdf/ttfonts/DejaVuSans-BoldOblique.ttf b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSans-BoldOblique.ttf similarity index 55% rename from public_html/2022/newcms/pdf/ttfonts/DejaVuSans-BoldOblique.ttf rename to public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSans-BoldOblique.ttf index b5440d9..753f2d8 100644 Binary files a/public_html/2022/newcms/pdf/ttfonts/DejaVuSans-BoldOblique.ttf and b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSans-BoldOblique.ttf differ diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSans-BoldOblique.ufm b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSans-BoldOblique.ufm new file mode 100644 index 0000000..5f4dd7c --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSans-BoldOblique.ufm @@ -0,0 +1,5712 @@ +StartFontMetrics 4.1 +Notice Converted by PHP-font-lib +Comment https://github.com/PhenX/php-font-lib +EncodingScheme FontSpecific +FontName DejaVu Sans +FontSubfamily Bold Oblique +UniqueID DejaVu Sans Bold Oblique +FullName DejaVu Sans Bold Oblique +Version Version 2.37 +PostScriptName DejaVuSans-BoldOblique +Manufacturer DejaVu fonts team +FontVendorURL http://dejavu.sourceforge.net +LicenseURL http://dejavu.sourceforge.net/wiki/index.php/License +PreferredFamily DejaVu Sans +PreferredSubfamily Bold Oblique +Weight Bold +ItalicAngle -11 +IsFixedPitch false +UnderlineThickness 44 +UnderlinePosition -63 +FontHeightOffset 0 +Ascender 928 +Descender -236 +FontBBox -1067 -385 1999 1121 +StartCharMetrics 5413 +U 32 ; WX 348 ; N space ; G 3 +U 33 ; WX 456 ; N exclam ; G 4 +U 34 ; WX 521 ; N quotedbl ; G 5 +U 35 ; WX 696 ; N numbersign ; G 6 +U 36 ; WX 696 ; N dollar ; G 7 +U 37 ; WX 1002 ; N percent ; G 8 +U 38 ; WX 872 ; N ampersand ; G 9 +U 39 ; WX 306 ; N quotesingle ; G 10 +U 40 ; WX 457 ; N parenleft ; G 11 +U 41 ; WX 457 ; N parenright ; G 12 +U 42 ; WX 523 ; N asterisk ; G 13 +U 43 ; WX 838 ; N plus ; G 14 +U 44 ; WX 380 ; N comma ; G 15 +U 45 ; WX 415 ; N hyphen ; G 16 +U 46 ; WX 380 ; N period ; G 17 +U 47 ; WX 365 ; N slash ; G 18 +U 48 ; WX 696 ; N zero ; G 19 +U 49 ; WX 696 ; N one ; G 20 +U 50 ; WX 696 ; N two ; G 21 +U 51 ; WX 696 ; N three ; G 22 +U 52 ; WX 696 ; N four ; G 23 +U 53 ; WX 696 ; N five ; G 24 +U 54 ; WX 696 ; N six ; G 25 +U 55 ; WX 696 ; N seven ; G 26 +U 56 ; WX 696 ; N eight ; G 27 +U 57 ; WX 696 ; N nine ; G 28 +U 58 ; WX 400 ; N colon ; G 29 +U 59 ; WX 400 ; N semicolon ; G 30 +U 60 ; WX 838 ; N less ; G 31 +U 61 ; WX 838 ; N equal ; G 32 +U 62 ; WX 838 ; N greater ; G 33 +U 63 ; WX 580 ; N question ; G 34 +U 64 ; WX 1000 ; N at ; G 35 +U 65 ; WX 774 ; N A ; G 36 +U 66 ; WX 762 ; N B ; G 37 +U 67 ; WX 734 ; N C ; G 38 +U 68 ; WX 830 ; N D ; G 39 +U 69 ; WX 683 ; N E ; G 40 +U 70 ; WX 683 ; N F ; G 41 +U 71 ; WX 821 ; N G ; G 42 +U 72 ; WX 837 ; N H ; G 43 +U 73 ; WX 372 ; N I ; G 44 +U 74 ; WX 372 ; N J ; G 45 +U 75 ; WX 775 ; N K ; G 46 +U 76 ; WX 637 ; N L ; G 47 +U 77 ; WX 995 ; N M ; G 48 +U 78 ; WX 837 ; N N ; G 49 +U 79 ; WX 850 ; N O ; G 50 +U 80 ; WX 733 ; N P ; G 51 +U 81 ; WX 850 ; N Q ; G 52 +U 82 ; WX 770 ; N R ; G 53 +U 83 ; WX 720 ; N S ; G 54 +U 84 ; WX 682 ; N T ; G 55 +U 85 ; WX 812 ; N U ; G 56 +U 86 ; WX 774 ; N V ; G 57 +U 87 ; WX 1103 ; N W ; G 58 +U 88 ; WX 771 ; N X ; G 59 +U 89 ; WX 724 ; N Y ; G 60 +U 90 ; WX 725 ; N Z ; G 61 +U 91 ; WX 457 ; N bracketleft ; G 62 +U 92 ; WX 365 ; N backslash ; G 63 +U 93 ; WX 457 ; N bracketright ; G 64 +U 94 ; WX 838 ; N asciicircum ; G 65 +U 95 ; WX 500 ; N underscore ; G 66 +U 96 ; WX 500 ; N grave ; G 67 +U 97 ; WX 675 ; N a ; G 68 +U 98 ; WX 716 ; N b ; G 69 +U 99 ; WX 593 ; N c ; G 70 +U 100 ; WX 716 ; N d ; G 71 +U 101 ; WX 678 ; N e ; G 72 +U 102 ; WX 435 ; N f ; G 73 +U 103 ; WX 716 ; N g ; G 74 +U 104 ; WX 712 ; N h ; G 75 +U 105 ; WX 343 ; N i ; G 76 +U 106 ; WX 343 ; N j ; G 77 +U 107 ; WX 665 ; N k ; G 78 +U 108 ; WX 343 ; N l ; G 79 +U 109 ; WX 1042 ; N m ; G 80 +U 110 ; WX 712 ; N n ; G 81 +U 111 ; WX 687 ; N o ; G 82 +U 112 ; WX 716 ; N p ; G 83 +U 113 ; WX 716 ; N q ; G 84 +U 114 ; WX 493 ; N r ; G 85 +U 115 ; WX 595 ; N s ; G 86 +U 116 ; WX 478 ; N t ; G 87 +U 117 ; WX 712 ; N u ; G 88 +U 118 ; WX 652 ; N v ; G 89 +U 119 ; WX 924 ; N w ; G 90 +U 120 ; WX 645 ; N x ; G 91 +U 121 ; WX 652 ; N y ; G 92 +U 122 ; WX 582 ; N z ; G 93 +U 123 ; WX 712 ; N braceleft ; G 94 +U 124 ; WX 365 ; N bar ; G 95 +U 125 ; WX 712 ; N braceright ; G 96 +U 126 ; WX 838 ; N asciitilde ; G 97 +U 160 ; WX 348 ; N nbspace ; G 98 +U 161 ; WX 456 ; N exclamdown ; G 99 +U 162 ; WX 696 ; N cent ; G 100 +U 163 ; WX 696 ; N sterling ; G 101 +U 164 ; WX 636 ; N currency ; G 102 +U 165 ; WX 696 ; N yen ; G 103 +U 166 ; WX 365 ; N brokenbar ; G 104 +U 167 ; WX 500 ; N section ; G 105 +U 168 ; WX 500 ; N dieresis ; G 106 +U 169 ; WX 1000 ; N copyright ; G 107 +U 170 ; WX 564 ; N ordfeminine ; G 108 +U 171 ; WX 650 ; N guillemotleft ; G 109 +U 172 ; WX 838 ; N logicalnot ; G 110 +U 173 ; WX 415 ; N sfthyphen ; G 111 +U 174 ; WX 1000 ; N registered ; G 112 +U 175 ; WX 500 ; N macron ; G 113 +U 176 ; WX 500 ; N degree ; G 114 +U 177 ; WX 838 ; N plusminus ; G 115 +U 178 ; WX 438 ; N twosuperior ; G 116 +U 179 ; WX 438 ; N threesuperior ; G 117 +U 180 ; WX 500 ; N acute ; G 118 +U 181 ; WX 736 ; N mu ; G 119 +U 182 ; WX 636 ; N paragraph ; G 120 +U 183 ; WX 380 ; N periodcentered ; G 121 +U 184 ; WX 500 ; N cedilla ; G 122 +U 185 ; WX 438 ; N onesuperior ; G 123 +U 186 ; WX 564 ; N ordmasculine ; G 124 +U 187 ; WX 650 ; N guillemotright ; G 125 +U 188 ; WX 1035 ; N onequarter ; G 126 +U 189 ; WX 1035 ; N onehalf ; G 127 +U 190 ; WX 1035 ; N threequarters ; G 128 +U 191 ; WX 580 ; N questiondown ; G 129 +U 192 ; WX 774 ; N Agrave ; G 130 +U 193 ; WX 774 ; N Aacute ; G 131 +U 194 ; WX 774 ; N Acircumflex ; G 132 +U 195 ; WX 774 ; N Atilde ; G 133 +U 196 ; WX 774 ; N Adieresis ; G 134 +U 197 ; WX 774 ; N Aring ; G 135 +U 198 ; WX 1085 ; N AE ; G 136 +U 199 ; WX 734 ; N Ccedilla ; G 137 +U 200 ; WX 683 ; N Egrave ; G 138 +U 201 ; WX 683 ; N Eacute ; G 139 +U 202 ; WX 683 ; N Ecircumflex ; G 140 +U 203 ; WX 683 ; N Edieresis ; G 141 +U 204 ; WX 372 ; N Igrave ; G 142 +U 205 ; WX 372 ; N Iacute ; G 143 +U 206 ; WX 372 ; N Icircumflex ; G 144 +U 207 ; WX 372 ; N Idieresis ; G 145 +U 208 ; WX 845 ; N Eth ; G 146 +U 209 ; WX 837 ; N Ntilde ; G 147 +U 210 ; WX 850 ; N Ograve ; G 148 +U 211 ; WX 850 ; N Oacute ; G 149 +U 212 ; WX 850 ; N Ocircumflex ; G 150 +U 213 ; WX 850 ; N Otilde ; G 151 +U 214 ; WX 850 ; N Odieresis ; G 152 +U 215 ; WX 838 ; N multiply ; G 153 +U 216 ; WX 850 ; N Oslash ; G 154 +U 217 ; WX 812 ; N Ugrave ; G 155 +U 218 ; WX 812 ; N Uacute ; G 156 +U 219 ; WX 812 ; N Ucircumflex ; G 157 +U 220 ; WX 812 ; N Udieresis ; G 158 +U 221 ; WX 724 ; N Yacute ; G 159 +U 222 ; WX 742 ; N Thorn ; G 160 +U 223 ; WX 719 ; N germandbls ; G 161 +U 224 ; WX 675 ; N agrave ; G 162 +U 225 ; WX 675 ; N aacute ; G 163 +U 226 ; WX 675 ; N acircumflex ; G 164 +U 227 ; WX 675 ; N atilde ; G 165 +U 228 ; WX 675 ; N adieresis ; G 166 +U 229 ; WX 675 ; N aring ; G 167 +U 230 ; WX 1048 ; N ae ; G 168 +U 231 ; WX 593 ; N ccedilla ; G 169 +U 232 ; WX 678 ; N egrave ; G 170 +U 233 ; WX 678 ; N eacute ; G 171 +U 234 ; WX 678 ; N ecircumflex ; G 172 +U 235 ; WX 678 ; N edieresis ; G 173 +U 236 ; WX 343 ; N igrave ; G 174 +U 237 ; WX 343 ; N iacute ; G 175 +U 238 ; WX 343 ; N icircumflex ; G 176 +U 239 ; WX 343 ; N idieresis ; G 177 +U 240 ; WX 687 ; N eth ; G 178 +U 241 ; WX 712 ; N ntilde ; G 179 +U 242 ; WX 687 ; N ograve ; G 180 +U 243 ; WX 687 ; N oacute ; G 181 +U 244 ; WX 687 ; N ocircumflex ; G 182 +U 245 ; WX 687 ; N otilde ; G 183 +U 246 ; WX 687 ; N odieresis ; G 184 +U 247 ; WX 838 ; N divide ; G 185 +U 248 ; WX 687 ; N oslash ; G 186 +U 249 ; WX 712 ; N ugrave ; G 187 +U 250 ; WX 712 ; N uacute ; G 188 +U 251 ; WX 712 ; N ucircumflex ; G 189 +U 252 ; WX 712 ; N udieresis ; G 190 +U 253 ; WX 652 ; N yacute ; G 191 +U 254 ; WX 716 ; N thorn ; G 192 +U 255 ; WX 652 ; N ydieresis ; G 193 +U 256 ; WX 774 ; N Amacron ; G 194 +U 257 ; WX 675 ; N amacron ; G 195 +U 258 ; WX 774 ; N Abreve ; G 196 +U 259 ; WX 675 ; N abreve ; G 197 +U 260 ; WX 774 ; N Aogonek ; G 198 +U 261 ; WX 675 ; N aogonek ; G 199 +U 262 ; WX 734 ; N Cacute ; G 200 +U 263 ; WX 593 ; N cacute ; G 201 +U 264 ; WX 734 ; N Ccircumflex ; G 202 +U 265 ; WX 593 ; N ccircumflex ; G 203 +U 266 ; WX 734 ; N Cdotaccent ; G 204 +U 267 ; WX 593 ; N cdotaccent ; G 205 +U 268 ; WX 734 ; N Ccaron ; G 206 +U 269 ; WX 593 ; N ccaron ; G 207 +U 270 ; WX 830 ; N Dcaron ; G 208 +U 271 ; WX 716 ; N dcaron ; G 209 +U 272 ; WX 845 ; N Dcroat ; G 210 +U 273 ; WX 716 ; N dmacron ; G 211 +U 274 ; WX 683 ; N Emacron ; G 212 +U 275 ; WX 678 ; N emacron ; G 213 +U 276 ; WX 683 ; N Ebreve ; G 214 +U 277 ; WX 678 ; N ebreve ; G 215 +U 278 ; WX 683 ; N Edotaccent ; G 216 +U 279 ; WX 678 ; N edotaccent ; G 217 +U 280 ; WX 683 ; N Eogonek ; G 218 +U 281 ; WX 678 ; N eogonek ; G 219 +U 282 ; WX 683 ; N Ecaron ; G 220 +U 283 ; WX 678 ; N ecaron ; G 221 +U 284 ; WX 821 ; N Gcircumflex ; G 222 +U 285 ; WX 716 ; N gcircumflex ; G 223 +U 286 ; WX 821 ; N Gbreve ; G 224 +U 287 ; WX 716 ; N gbreve ; G 225 +U 288 ; WX 821 ; N Gdotaccent ; G 226 +U 289 ; WX 716 ; N gdotaccent ; G 227 +U 290 ; WX 821 ; N Gcommaaccent ; G 228 +U 291 ; WX 716 ; N gcommaaccent ; G 229 +U 292 ; WX 837 ; N Hcircumflex ; G 230 +U 293 ; WX 712 ; N hcircumflex ; G 231 +U 294 ; WX 974 ; N Hbar ; G 232 +U 295 ; WX 790 ; N hbar ; G 233 +U 296 ; WX 372 ; N Itilde ; G 234 +U 297 ; WX 343 ; N itilde ; G 235 +U 298 ; WX 372 ; N Imacron ; G 236 +U 299 ; WX 343 ; N imacron ; G 237 +U 300 ; WX 372 ; N Ibreve ; G 238 +U 301 ; WX 343 ; N ibreve ; G 239 +U 302 ; WX 372 ; N Iogonek ; G 240 +U 303 ; WX 343 ; N iogonek ; G 241 +U 304 ; WX 372 ; N Idot ; G 242 +U 305 ; WX 343 ; N dotlessi ; G 243 +U 306 ; WX 744 ; N IJ ; G 244 +U 307 ; WX 686 ; N ij ; G 245 +U 308 ; WX 372 ; N Jcircumflex ; G 246 +U 309 ; WX 343 ; N jcircumflex ; G 247 +U 310 ; WX 775 ; N Kcommaaccent ; G 248 +U 311 ; WX 665 ; N kcommaaccent ; G 249 +U 312 ; WX 665 ; N kgreenlandic ; G 250 +U 313 ; WX 637 ; N Lacute ; G 251 +U 314 ; WX 343 ; N lacute ; G 252 +U 315 ; WX 637 ; N Lcommaaccent ; G 253 +U 316 ; WX 343 ; N lcommaaccent ; G 254 +U 317 ; WX 637 ; N Lcaron ; G 255 +U 318 ; WX 343 ; N lcaron ; G 256 +U 319 ; WX 637 ; N Ldot ; G 257 +U 320 ; WX 343 ; N ldot ; G 258 +U 321 ; WX 660 ; N Lslash ; G 259 +U 322 ; WX 375 ; N lslash ; G 260 +U 323 ; WX 837 ; N Nacute ; G 261 +U 324 ; WX 712 ; N nacute ; G 262 +U 325 ; WX 837 ; N Ncommaaccent ; G 263 +U 326 ; WX 712 ; N ncommaaccent ; G 264 +U 327 ; WX 837 ; N Ncaron ; G 265 +U 328 ; WX 712 ; N ncaron ; G 266 +U 329 ; WX 983 ; N napostrophe ; G 267 +U 330 ; WX 837 ; N Eng ; G 268 +U 331 ; WX 712 ; N eng ; G 269 +U 332 ; WX 850 ; N Omacron ; G 270 +U 333 ; WX 687 ; N omacron ; G 271 +U 334 ; WX 850 ; N Obreve ; G 272 +U 335 ; WX 687 ; N obreve ; G 273 +U 336 ; WX 850 ; N Ohungarumlaut ; G 274 +U 337 ; WX 687 ; N ohungarumlaut ; G 275 +U 338 ; WX 1167 ; N OE ; G 276 +U 339 ; WX 1094 ; N oe ; G 277 +U 340 ; WX 770 ; N Racute ; G 278 +U 341 ; WX 493 ; N racute ; G 279 +U 342 ; WX 770 ; N Rcommaaccent ; G 280 +U 343 ; WX 493 ; N rcommaaccent ; G 281 +U 344 ; WX 770 ; N Rcaron ; G 282 +U 345 ; WX 493 ; N rcaron ; G 283 +U 346 ; WX 720 ; N Sacute ; G 284 +U 347 ; WX 595 ; N sacute ; G 285 +U 348 ; WX 720 ; N Scircumflex ; G 286 +U 349 ; WX 595 ; N scircumflex ; G 287 +U 350 ; WX 720 ; N Scedilla ; G 288 +U 351 ; WX 595 ; N scedilla ; G 289 +U 352 ; WX 720 ; N Scaron ; G 290 +U 353 ; WX 595 ; N scaron ; G 291 +U 354 ; WX 682 ; N Tcommaaccent ; G 292 +U 355 ; WX 478 ; N tcommaaccent ; G 293 +U 356 ; WX 682 ; N Tcaron ; G 294 +U 357 ; WX 478 ; N tcaron ; G 295 +U 358 ; WX 682 ; N Tbar ; G 296 +U 359 ; WX 478 ; N tbar ; G 297 +U 360 ; WX 812 ; N Utilde ; G 298 +U 361 ; WX 712 ; N utilde ; G 299 +U 362 ; WX 812 ; N Umacron ; G 300 +U 363 ; WX 712 ; N umacron ; G 301 +U 364 ; WX 812 ; N Ubreve ; G 302 +U 365 ; WX 712 ; N ubreve ; G 303 +U 366 ; WX 812 ; N Uring ; G 304 +U 367 ; WX 712 ; N uring ; G 305 +U 368 ; WX 812 ; N Uhungarumlaut ; G 306 +U 369 ; WX 712 ; N uhungarumlaut ; G 307 +U 370 ; WX 812 ; N Uogonek ; G 308 +U 371 ; WX 712 ; N uogonek ; G 309 +U 372 ; WX 1103 ; N Wcircumflex ; G 310 +U 373 ; WX 924 ; N wcircumflex ; G 311 +U 374 ; WX 724 ; N Ycircumflex ; G 312 +U 375 ; WX 652 ; N ycircumflex ; G 313 +U 376 ; WX 724 ; N Ydieresis ; G 314 +U 377 ; WX 725 ; N Zacute ; G 315 +U 378 ; WX 582 ; N zacute ; G 316 +U 379 ; WX 725 ; N Zdotaccent ; G 317 +U 380 ; WX 582 ; N zdotaccent ; G 318 +U 381 ; WX 725 ; N Zcaron ; G 319 +U 382 ; WX 582 ; N zcaron ; G 320 +U 383 ; WX 435 ; N longs ; G 321 +U 384 ; WX 716 ; N uni0180 ; G 322 +U 385 ; WX 811 ; N uni0181 ; G 323 +U 386 ; WX 762 ; N uni0182 ; G 324 +U 387 ; WX 716 ; N uni0183 ; G 325 +U 388 ; WX 762 ; N uni0184 ; G 326 +U 389 ; WX 716 ; N uni0185 ; G 327 +U 390 ; WX 734 ; N uni0186 ; G 328 +U 391 ; WX 734 ; N uni0187 ; G 329 +U 392 ; WX 593 ; N uni0188 ; G 330 +U 393 ; WX 845 ; N uni0189 ; G 331 +U 394 ; WX 879 ; N uni018A ; G 332 +U 395 ; WX 762 ; N uni018B ; G 333 +U 396 ; WX 716 ; N uni018C ; G 334 +U 397 ; WX 687 ; N uni018D ; G 335 +U 398 ; WX 683 ; N uni018E ; G 336 +U 399 ; WX 850 ; N uni018F ; G 337 +U 400 ; WX 696 ; N uni0190 ; G 338 +U 401 ; WX 683 ; N uni0191 ; G 339 +U 402 ; WX 435 ; N florin ; G 340 +U 403 ; WX 821 ; N uni0193 ; G 341 +U 404 ; WX 793 ; N uni0194 ; G 342 +U 405 ; WX 1045 ; N uni0195 ; G 343 +U 406 ; WX 436 ; N uni0196 ; G 344 +U 407 ; WX 389 ; N uni0197 ; G 345 +U 408 ; WX 775 ; N uni0198 ; G 346 +U 409 ; WX 665 ; N uni0199 ; G 347 +U 410 ; WX 360 ; N uni019A ; G 348 +U 411 ; WX 592 ; N uni019B ; G 349 +U 412 ; WX 1042 ; N uni019C ; G 350 +U 413 ; WX 837 ; N uni019D ; G 351 +U 414 ; WX 712 ; N uni019E ; G 352 +U 415 ; WX 850 ; N uni019F ; G 353 +U 416 ; WX 850 ; N Ohorn ; G 354 +U 417 ; WX 687 ; N ohorn ; G 355 +U 418 ; WX 1114 ; N uni01A2 ; G 356 +U 419 ; WX 962 ; N uni01A3 ; G 357 +U 420 ; WX 782 ; N uni01A4 ; G 358 +U 421 ; WX 716 ; N uni01A5 ; G 359 +U 422 ; WX 770 ; N uni01A6 ; G 360 +U 423 ; WX 720 ; N uni01A7 ; G 361 +U 424 ; WX 595 ; N uni01A8 ; G 362 +U 425 ; WX 683 ; N uni01A9 ; G 363 +U 426 ; WX 552 ; N uni01AA ; G 364 +U 427 ; WX 478 ; N uni01AB ; G 365 +U 428 ; WX 707 ; N uni01AC ; G 366 +U 429 ; WX 478 ; N uni01AD ; G 367 +U 430 ; WX 682 ; N uni01AE ; G 368 +U 431 ; WX 812 ; N Uhorn ; G 369 +U 432 ; WX 712 ; N uhorn ; G 370 +U 433 ; WX 769 ; N uni01B1 ; G 371 +U 434 ; WX 813 ; N uni01B2 ; G 372 +U 435 ; WX 797 ; N uni01B3 ; G 373 +U 436 ; WX 778 ; N uni01B4 ; G 374 +U 437 ; WX 725 ; N uni01B5 ; G 375 +U 438 ; WX 582 ; N uni01B6 ; G 376 +U 439 ; WX 772 ; N uni01B7 ; G 377 +U 440 ; WX 772 ; N uni01B8 ; G 378 +U 441 ; WX 641 ; N uni01B9 ; G 379 +U 442 ; WX 582 ; N uni01BA ; G 380 +U 443 ; WX 696 ; N uni01BB ; G 381 +U 444 ; WX 772 ; N uni01BC ; G 382 +U 445 ; WX 641 ; N uni01BD ; G 383 +U 446 ; WX 573 ; N uni01BE ; G 384 +U 447 ; WX 716 ; N uni01BF ; G 385 +U 448 ; WX 372 ; N uni01C0 ; G 386 +U 449 ; WX 659 ; N uni01C1 ; G 387 +U 450 ; WX 544 ; N uni01C2 ; G 388 +U 451 ; WX 372 ; N uni01C3 ; G 389 +U 452 ; WX 1548 ; N uni01C4 ; G 390 +U 453 ; WX 1450 ; N uni01C5 ; G 391 +U 454 ; WX 1307 ; N uni01C6 ; G 392 +U 455 ; WX 977 ; N uni01C7 ; G 393 +U 456 ; WX 979 ; N uni01C8 ; G 394 +U 457 ; WX 670 ; N uni01C9 ; G 395 +U 458 ; WX 1193 ; N uni01CA ; G 396 +U 459 ; WX 1213 ; N uni01CB ; G 397 +U 460 ; WX 1063 ; N uni01CC ; G 398 +U 461 ; WX 774 ; N uni01CD ; G 399 +U 462 ; WX 675 ; N uni01CE ; G 400 +U 463 ; WX 372 ; N uni01CF ; G 401 +U 464 ; WX 343 ; N uni01D0 ; G 402 +U 465 ; WX 850 ; N uni01D1 ; G 403 +U 466 ; WX 687 ; N uni01D2 ; G 404 +U 467 ; WX 812 ; N uni01D3 ; G 405 +U 468 ; WX 712 ; N uni01D4 ; G 406 +U 469 ; WX 812 ; N uni01D5 ; G 407 +U 470 ; WX 712 ; N uni01D6 ; G 408 +U 471 ; WX 812 ; N uni01D7 ; G 409 +U 472 ; WX 712 ; N uni01D8 ; G 410 +U 473 ; WX 812 ; N uni01D9 ; G 411 +U 474 ; WX 712 ; N uni01DA ; G 412 +U 475 ; WX 812 ; N uni01DB ; G 413 +U 476 ; WX 712 ; N uni01DC ; G 414 +U 477 ; WX 678 ; N uni01DD ; G 415 +U 478 ; WX 774 ; N uni01DE ; G 416 +U 479 ; WX 675 ; N uni01DF ; G 417 +U 480 ; WX 774 ; N uni01E0 ; G 418 +U 481 ; WX 675 ; N uni01E1 ; G 419 +U 482 ; WX 1085 ; N uni01E2 ; G 420 +U 483 ; WX 1048 ; N uni01E3 ; G 421 +U 484 ; WX 821 ; N uni01E4 ; G 422 +U 485 ; WX 716 ; N uni01E5 ; G 423 +U 486 ; WX 821 ; N Gcaron ; G 424 +U 487 ; WX 716 ; N gcaron ; G 425 +U 488 ; WX 775 ; N uni01E8 ; G 426 +U 489 ; WX 665 ; N uni01E9 ; G 427 +U 490 ; WX 850 ; N uni01EA ; G 428 +U 491 ; WX 687 ; N uni01EB ; G 429 +U 492 ; WX 850 ; N uni01EC ; G 430 +U 493 ; WX 687 ; N uni01ED ; G 431 +U 494 ; WX 772 ; N uni01EE ; G 432 +U 495 ; WX 582 ; N uni01EF ; G 433 +U 496 ; WX 343 ; N uni01F0 ; G 434 +U 497 ; WX 1548 ; N uni01F1 ; G 435 +U 498 ; WX 1450 ; N uni01F2 ; G 436 +U 499 ; WX 1307 ; N uni01F3 ; G 437 +U 500 ; WX 821 ; N uni01F4 ; G 438 +U 501 ; WX 716 ; N uni01F5 ; G 439 +U 502 ; WX 1289 ; N uni01F6 ; G 440 +U 503 ; WX 787 ; N uni01F7 ; G 441 +U 504 ; WX 837 ; N uni01F8 ; G 442 +U 505 ; WX 712 ; N uni01F9 ; G 443 +U 506 ; WX 774 ; N Aringacute ; G 444 +U 507 ; WX 675 ; N aringacute ; G 445 +U 508 ; WX 1085 ; N AEacute ; G 446 +U 509 ; WX 1048 ; N aeacute ; G 447 +U 510 ; WX 850 ; N Oslashacute ; G 448 +U 511 ; WX 687 ; N oslashacute ; G 449 +U 512 ; WX 774 ; N uni0200 ; G 450 +U 513 ; WX 675 ; N uni0201 ; G 451 +U 514 ; WX 774 ; N uni0202 ; G 452 +U 515 ; WX 675 ; N uni0203 ; G 453 +U 516 ; WX 683 ; N uni0204 ; G 454 +U 517 ; WX 678 ; N uni0205 ; G 455 +U 518 ; WX 683 ; N uni0206 ; G 456 +U 519 ; WX 678 ; N uni0207 ; G 457 +U 520 ; WX 372 ; N uni0208 ; G 458 +U 521 ; WX 343 ; N uni0209 ; G 459 +U 522 ; WX 372 ; N uni020A ; G 460 +U 523 ; WX 343 ; N uni020B ; G 461 +U 524 ; WX 850 ; N uni020C ; G 462 +U 525 ; WX 687 ; N uni020D ; G 463 +U 526 ; WX 850 ; N uni020E ; G 464 +U 527 ; WX 687 ; N uni020F ; G 465 +U 528 ; WX 770 ; N uni0210 ; G 466 +U 529 ; WX 493 ; N uni0211 ; G 467 +U 530 ; WX 770 ; N uni0212 ; G 468 +U 531 ; WX 493 ; N uni0213 ; G 469 +U 532 ; WX 812 ; N uni0214 ; G 470 +U 533 ; WX 712 ; N uni0215 ; G 471 +U 534 ; WX 812 ; N uni0216 ; G 472 +U 535 ; WX 712 ; N uni0217 ; G 473 +U 536 ; WX 720 ; N Scommaaccent ; G 474 +U 537 ; WX 595 ; N scommaaccent ; G 475 +U 538 ; WX 682 ; N uni021A ; G 476 +U 539 ; WX 478 ; N uni021B ; G 477 +U 540 ; WX 690 ; N uni021C ; G 478 +U 541 ; WX 607 ; N uni021D ; G 479 +U 542 ; WX 837 ; N uni021E ; G 480 +U 543 ; WX 712 ; N uni021F ; G 481 +U 544 ; WX 837 ; N uni0220 ; G 482 +U 545 ; WX 865 ; N uni0221 ; G 483 +U 546 ; WX 809 ; N uni0222 ; G 484 +U 547 ; WX 659 ; N uni0223 ; G 485 +U 548 ; WX 725 ; N uni0224 ; G 486 +U 549 ; WX 582 ; N uni0225 ; G 487 +U 550 ; WX 774 ; N uni0226 ; G 488 +U 551 ; WX 675 ; N uni0227 ; G 489 +U 552 ; WX 683 ; N uni0228 ; G 490 +U 553 ; WX 678 ; N uni0229 ; G 491 +U 554 ; WX 850 ; N uni022A ; G 492 +U 555 ; WX 687 ; N uni022B ; G 493 +U 556 ; WX 850 ; N uni022C ; G 494 +U 557 ; WX 687 ; N uni022D ; G 495 +U 558 ; WX 850 ; N uni022E ; G 496 +U 559 ; WX 687 ; N uni022F ; G 497 +U 560 ; WX 850 ; N uni0230 ; G 498 +U 561 ; WX 687 ; N uni0231 ; G 499 +U 562 ; WX 724 ; N uni0232 ; G 500 +U 563 ; WX 652 ; N uni0233 ; G 501 +U 564 ; WX 492 ; N uni0234 ; G 502 +U 565 ; WX 867 ; N uni0235 ; G 503 +U 566 ; WX 512 ; N uni0236 ; G 504 +U 567 ; WX 343 ; N dotlessj ; G 505 +U 568 ; WX 1088 ; N uni0238 ; G 506 +U 569 ; WX 1088 ; N uni0239 ; G 507 +U 570 ; WX 774 ; N uni023A ; G 508 +U 571 ; WX 734 ; N uni023B ; G 509 +U 572 ; WX 593 ; N uni023C ; G 510 +U 573 ; WX 637 ; N uni023D ; G 511 +U 574 ; WX 682 ; N uni023E ; G 512 +U 575 ; WX 595 ; N uni023F ; G 513 +U 576 ; WX 582 ; N uni0240 ; G 514 +U 577 ; WX 782 ; N uni0241 ; G 515 +U 578 ; WX 614 ; N uni0242 ; G 516 +U 579 ; WX 762 ; N uni0243 ; G 517 +U 580 ; WX 812 ; N uni0244 ; G 518 +U 581 ; WX 774 ; N uni0245 ; G 519 +U 582 ; WX 683 ; N uni0246 ; G 520 +U 583 ; WX 678 ; N uni0247 ; G 521 +U 584 ; WX 372 ; N uni0248 ; G 522 +U 585 ; WX 343 ; N uni0249 ; G 523 +U 586 ; WX 860 ; N uni024A ; G 524 +U 587 ; WX 791 ; N uni024B ; G 525 +U 588 ; WX 770 ; N uni024C ; G 526 +U 589 ; WX 493 ; N uni024D ; G 527 +U 590 ; WX 724 ; N uni024E ; G 528 +U 591 ; WX 652 ; N uni024F ; G 529 +U 592 ; WX 675 ; N uni0250 ; G 530 +U 593 ; WX 716 ; N uni0251 ; G 531 +U 594 ; WX 716 ; N uni0252 ; G 532 +U 595 ; WX 716 ; N uni0253 ; G 533 +U 596 ; WX 593 ; N uni0254 ; G 534 +U 597 ; WX 593 ; N uni0255 ; G 535 +U 598 ; WX 791 ; N uni0256 ; G 536 +U 599 ; WX 792 ; N uni0257 ; G 537 +U 600 ; WX 678 ; N uni0258 ; G 538 +U 601 ; WX 678 ; N uni0259 ; G 539 +U 602 ; WX 876 ; N uni025A ; G 540 +U 603 ; WX 557 ; N uni025B ; G 541 +U 604 ; WX 545 ; N uni025C ; G 542 +U 605 ; WX 774 ; N uni025D ; G 543 +U 606 ; WX 731 ; N uni025E ; G 544 +U 607 ; WX 343 ; N uni025F ; G 545 +U 608 ; WX 792 ; N uni0260 ; G 546 +U 609 ; WX 716 ; N uni0261 ; G 547 +U 610 ; WX 627 ; N uni0262 ; G 548 +U 611 ; WX 735 ; N uni0263 ; G 549 +U 612 ; WX 635 ; N uni0264 ; G 550 +U 613 ; WX 712 ; N uni0265 ; G 551 +U 614 ; WX 712 ; N uni0266 ; G 552 +U 615 ; WX 712 ; N uni0267 ; G 553 +U 616 ; WX 545 ; N uni0268 ; G 554 +U 617 ; WX 440 ; N uni0269 ; G 555 +U 618 ; WX 545 ; N uni026A ; G 556 +U 619 ; WX 559 ; N uni026B ; G 557 +U 620 ; WX 693 ; N uni026C ; G 558 +U 621 ; WX 343 ; N uni026D ; G 559 +U 622 ; WX 841 ; N uni026E ; G 560 +U 623 ; WX 1042 ; N uni026F ; G 561 +U 624 ; WX 1042 ; N uni0270 ; G 562 +U 625 ; WX 1042 ; N uni0271 ; G 563 +U 626 ; WX 712 ; N uni0272 ; G 564 +U 627 ; WX 793 ; N uni0273 ; G 565 +U 628 ; WX 642 ; N uni0274 ; G 566 +U 629 ; WX 687 ; N uni0275 ; G 567 +U 630 ; WX 909 ; N uni0276 ; G 568 +U 631 ; WX 682 ; N uni0277 ; G 569 +U 632 ; WX 796 ; N uni0278 ; G 570 +U 633 ; WX 538 ; N uni0279 ; G 571 +U 634 ; WX 538 ; N uni027A ; G 572 +U 635 ; WX 650 ; N uni027B ; G 573 +U 636 ; WX 493 ; N uni027C ; G 574 +U 637 ; WX 493 ; N uni027D ; G 575 +U 638 ; WX 596 ; N uni027E ; G 576 +U 639 ; WX 596 ; N uni027F ; G 577 +U 640 ; WX 642 ; N uni0280 ; G 578 +U 641 ; WX 642 ; N uni0281 ; G 579 +U 642 ; WX 595 ; N uni0282 ; G 580 +U 643 ; WX 415 ; N uni0283 ; G 581 +U 644 ; WX 435 ; N uni0284 ; G 582 +U 645 ; WX 605 ; N uni0285 ; G 583 +U 646 ; WX 552 ; N uni0286 ; G 584 +U 647 ; WX 478 ; N uni0287 ; G 585 +U 648 ; WX 478 ; N uni0288 ; G 586 +U 649 ; WX 920 ; N uni0289 ; G 587 +U 650 ; WX 769 ; N uni028A ; G 588 +U 651 ; WX 670 ; N uni028B ; G 589 +U 652 ; WX 652 ; N uni028C ; G 590 +U 653 ; WX 924 ; N uni028D ; G 591 +U 654 ; WX 652 ; N uni028E ; G 592 +U 655 ; WX 724 ; N uni028F ; G 593 +U 656 ; WX 694 ; N uni0290 ; G 594 +U 657 ; WX 684 ; N uni0291 ; G 595 +U 658 ; WX 641 ; N uni0292 ; G 596 +U 659 ; WX 641 ; N uni0293 ; G 597 +U 660 ; WX 573 ; N uni0294 ; G 598 +U 661 ; WX 573 ; N uni0295 ; G 599 +U 662 ; WX 573 ; N uni0296 ; G 600 +U 663 ; WX 573 ; N uni0297 ; G 601 +U 664 ; WX 850 ; N uni0298 ; G 602 +U 665 ; WX 633 ; N uni0299 ; G 603 +U 666 ; WX 731 ; N uni029A ; G 604 +U 667 ; WX 685 ; N uni029B ; G 605 +U 668 ; WX 691 ; N uni029C ; G 606 +U 669 ; WX 343 ; N uni029D ; G 607 +U 670 ; WX 732 ; N uni029E ; G 608 +U 671 ; WX 539 ; N uni029F ; G 609 +U 672 ; WX 792 ; N uni02A0 ; G 610 +U 673 ; WX 573 ; N uni02A1 ; G 611 +U 674 ; WX 573 ; N uni02A2 ; G 612 +U 675 ; WX 1156 ; N uni02A3 ; G 613 +U 676 ; WX 1214 ; N uni02A4 ; G 614 +U 677 ; WX 1155 ; N uni02A5 ; G 615 +U 678 ; WX 975 ; N uni02A6 ; G 616 +U 679 ; WX 769 ; N uni02A7 ; G 617 +U 680 ; WX 929 ; N uni02A8 ; G 618 +U 681 ; WX 1026 ; N uni02A9 ; G 619 +U 682 ; WX 862 ; N uni02AA ; G 620 +U 683 ; WX 780 ; N uni02AB ; G 621 +U 684 ; WX 591 ; N uni02AC ; G 622 +U 685 ; WX 415 ; N uni02AD ; G 623 +U 686 ; WX 677 ; N uni02AE ; G 624 +U 687 ; WX 789 ; N uni02AF ; G 625 +U 688 ; WX 456 ; N uni02B0 ; G 626 +U 689 ; WX 456 ; N uni02B1 ; G 627 +U 690 ; WX 219 ; N uni02B2 ; G 628 +U 691 ; WX 315 ; N uni02B3 ; G 629 +U 692 ; WX 315 ; N uni02B4 ; G 630 +U 693 ; WX 315 ; N uni02B5 ; G 631 +U 694 ; WX 411 ; N uni02B6 ; G 632 +U 695 ; WX 591 ; N uni02B7 ; G 633 +U 696 ; WX 417 ; N uni02B8 ; G 634 +U 697 ; WX 302 ; N uni02B9 ; G 635 +U 698 ; WX 521 ; N uni02BA ; G 636 +U 699 ; WX 380 ; N uni02BB ; G 637 +U 700 ; WX 380 ; N uni02BC ; G 638 +U 701 ; WX 380 ; N uni02BD ; G 639 +U 702 ; WX 366 ; N uni02BE ; G 640 +U 703 ; WX 366 ; N uni02BF ; G 641 +U 704 ; WX 326 ; N uni02C0 ; G 642 +U 705 ; WX 326 ; N uni02C1 ; G 643 +U 706 ; WX 500 ; N uni02C2 ; G 644 +U 707 ; WX 500 ; N uni02C3 ; G 645 +U 708 ; WX 500 ; N uni02C4 ; G 646 +U 709 ; WX 500 ; N uni02C5 ; G 647 +U 710 ; WX 500 ; N circumflex ; G 648 +U 711 ; WX 500 ; N caron ; G 649 +U 712 ; WX 306 ; N uni02C8 ; G 650 +U 713 ; WX 500 ; N uni02C9 ; G 651 +U 714 ; WX 500 ; N uni02CA ; G 652 +U 715 ; WX 500 ; N uni02CB ; G 653 +U 716 ; WX 306 ; N uni02CC ; G 654 +U 717 ; WX 500 ; N uni02CD ; G 655 +U 718 ; WX 500 ; N uni02CE ; G 656 +U 719 ; WX 500 ; N uni02CF ; G 657 +U 720 ; WX 337 ; N uni02D0 ; G 658 +U 721 ; WX 337 ; N uni02D1 ; G 659 +U 722 ; WX 366 ; N uni02D2 ; G 660 +U 723 ; WX 366 ; N uni02D3 ; G 661 +U 724 ; WX 500 ; N uni02D4 ; G 662 +U 725 ; WX 500 ; N uni02D5 ; G 663 +U 726 ; WX 416 ; N uni02D6 ; G 664 +U 727 ; WX 328 ; N uni02D7 ; G 665 +U 728 ; WX 500 ; N breve ; G 666 +U 729 ; WX 500 ; N dotaccent ; G 667 +U 730 ; WX 500 ; N ring ; G 668 +U 731 ; WX 500 ; N ogonek ; G 669 +U 732 ; WX 500 ; N tilde ; G 670 +U 733 ; WX 500 ; N hungarumlaut ; G 671 +U 734 ; WX 351 ; N uni02DE ; G 672 +U 735 ; WX 500 ; N uni02DF ; G 673 +U 736 ; WX 412 ; N uni02E0 ; G 674 +U 737 ; WX 219 ; N uni02E1 ; G 675 +U 738 ; WX 381 ; N uni02E2 ; G 676 +U 739 ; WX 413 ; N uni02E3 ; G 677 +U 740 ; WX 326 ; N uni02E4 ; G 678 +U 741 ; WX 500 ; N uni02E5 ; G 679 +U 742 ; WX 500 ; N uni02E6 ; G 680 +U 743 ; WX 500 ; N uni02E7 ; G 681 +U 744 ; WX 500 ; N uni02E8 ; G 682 +U 745 ; WX 500 ; N uni02E9 ; G 683 +U 748 ; WX 500 ; N uni02EC ; G 684 +U 749 ; WX 500 ; N uni02ED ; G 685 +U 750 ; WX 644 ; N uni02EE ; G 686 +U 755 ; WX 500 ; N uni02F3 ; G 687 +U 759 ; WX 500 ; N uni02F7 ; G 688 +U 768 ; WX 0 ; N gravecomb ; G 689 +U 769 ; WX 0 ; N acutecomb ; G 690 +U 770 ; WX 0 ; N uni0302 ; G 691 +U 771 ; WX 0 ; N tildecomb ; G 692 +U 772 ; WX 0 ; N uni0304 ; G 693 +U 773 ; WX 0 ; N uni0305 ; G 694 +U 774 ; WX 0 ; N uni0306 ; G 695 +U 775 ; WX 0 ; N uni0307 ; G 696 +U 776 ; WX 0 ; N uni0308 ; G 697 +U 777 ; WX 0 ; N hookabovecomb ; G 698 +U 778 ; WX 0 ; N uni030A ; G 699 +U 779 ; WX 0 ; N uni030B ; G 700 +U 780 ; WX 0 ; N uni030C ; G 701 +U 781 ; WX 0 ; N uni030D ; G 702 +U 782 ; WX 0 ; N uni030E ; G 703 +U 783 ; WX 0 ; N uni030F ; G 704 +U 784 ; WX 0 ; N uni0310 ; G 705 +U 785 ; WX 0 ; N uni0311 ; G 706 +U 786 ; WX 0 ; N uni0312 ; G 707 +U 787 ; WX 0 ; N uni0313 ; G 708 +U 788 ; WX 0 ; N uni0314 ; G 709 +U 789 ; WX 0 ; N uni0315 ; G 710 +U 790 ; WX 0 ; N uni0316 ; G 711 +U 791 ; WX 0 ; N uni0317 ; G 712 +U 792 ; WX 0 ; N uni0318 ; G 713 +U 793 ; WX 0 ; N uni0319 ; G 714 +U 794 ; WX 0 ; N uni031A ; G 715 +U 795 ; WX 0 ; N uni031B ; G 716 +U 796 ; WX 0 ; N uni031C ; G 717 +U 797 ; WX 0 ; N uni031D ; G 718 +U 798 ; WX 0 ; N uni031E ; G 719 +U 799 ; WX 0 ; N uni031F ; G 720 +U 800 ; WX 0 ; N uni0320 ; G 721 +U 801 ; WX 0 ; N uni0321 ; G 722 +U 802 ; WX 0 ; N uni0322 ; G 723 +U 803 ; WX 0 ; N dotbelowcomb ; G 724 +U 804 ; WX 0 ; N uni0324 ; G 725 +U 805 ; WX 0 ; N uni0325 ; G 726 +U 806 ; WX 0 ; N uni0326 ; G 727 +U 807 ; WX 0 ; N uni0327 ; G 728 +U 808 ; WX 0 ; N uni0328 ; G 729 +U 809 ; WX 0 ; N uni0329 ; G 730 +U 810 ; WX 0 ; N uni032A ; G 731 +U 811 ; WX 0 ; N uni032B ; G 732 +U 812 ; WX 0 ; N uni032C ; G 733 +U 813 ; WX 0 ; N uni032D ; G 734 +U 814 ; WX 0 ; N uni032E ; G 735 +U 815 ; WX 0 ; N uni032F ; G 736 +U 816 ; WX 0 ; N uni0330 ; G 737 +U 817 ; WX 0 ; N uni0331 ; G 738 +U 818 ; WX 0 ; N uni0332 ; G 739 +U 819 ; WX 0 ; N uni0333 ; G 740 +U 820 ; WX 0 ; N uni0334 ; G 741 +U 821 ; WX 0 ; N uni0335 ; G 742 +U 822 ; WX 0 ; N uni0336 ; G 743 +U 823 ; WX 0 ; N uni0337 ; G 744 +U 824 ; WX 0 ; N uni0338 ; G 745 +U 825 ; WX 0 ; N uni0339 ; G 746 +U 826 ; WX 0 ; N uni033A ; G 747 +U 827 ; WX 0 ; N uni033B ; G 748 +U 828 ; WX 0 ; N uni033C ; G 749 +U 829 ; WX 0 ; N uni033D ; G 750 +U 830 ; WX 0 ; N uni033E ; G 751 +U 831 ; WX 0 ; N uni033F ; G 752 +U 832 ; WX 0 ; N uni0340 ; G 753 +U 833 ; WX 0 ; N uni0341 ; G 754 +U 834 ; WX 0 ; N uni0342 ; G 755 +U 835 ; WX 0 ; N uni0343 ; G 756 +U 836 ; WX 0 ; N uni0344 ; G 757 +U 837 ; WX 0 ; N uni0345 ; G 758 +U 838 ; WX 0 ; N uni0346 ; G 759 +U 839 ; WX 0 ; N uni0347 ; G 760 +U 840 ; WX 0 ; N uni0348 ; G 761 +U 841 ; WX 0 ; N uni0349 ; G 762 +U 842 ; WX 0 ; N uni034A ; G 763 +U 843 ; WX 0 ; N uni034B ; G 764 +U 844 ; WX 0 ; N uni034C ; G 765 +U 845 ; WX 0 ; N uni034D ; G 766 +U 846 ; WX 0 ; N uni034E ; G 767 +U 847 ; WX 0 ; N uni034F ; G 768 +U 849 ; WX 0 ; N uni0351 ; G 769 +U 850 ; WX 0 ; N uni0352 ; G 770 +U 851 ; WX 0 ; N uni0353 ; G 771 +U 855 ; WX 0 ; N uni0357 ; G 772 +U 856 ; WX 0 ; N uni0358 ; G 773 +U 858 ; WX 0 ; N uni035A ; G 774 +U 860 ; WX 0 ; N uni035C ; G 775 +U 861 ; WX 0 ; N uni035D ; G 776 +U 862 ; WX 0 ; N uni035E ; G 777 +U 863 ; WX 0 ; N uni035F ; G 778 +U 864 ; WX 0 ; N uni0360 ; G 779 +U 865 ; WX 0 ; N uni0361 ; G 780 +U 866 ; WX 0 ; N uni0362 ; G 781 +U 880 ; WX 698 ; N uni0370 ; G 782 +U 881 ; WX 565 ; N uni0371 ; G 783 +U 882 ; WX 1022 ; N uni0372 ; G 784 +U 883 ; WX 836 ; N uni0373 ; G 785 +U 884 ; WX 302 ; N uni0374 ; G 786 +U 885 ; WX 302 ; N uni0375 ; G 787 +U 886 ; WX 837 ; N uni0376 ; G 788 +U 887 ; WX 701 ; N uni0377 ; G 789 +U 890 ; WX 500 ; N uni037A ; G 790 +U 891 ; WX 593 ; N uni037B ; G 791 +U 892 ; WX 550 ; N uni037C ; G 792 +U 893 ; WX 549 ; N uni037D ; G 793 +U 894 ; WX 400 ; N uni037E ; G 794 +U 895 ; WX 372 ; N uni037F ; G 795 +U 900 ; WX 441 ; N tonos ; G 796 +U 901 ; WX 500 ; N dieresistonos ; G 797 +U 902 ; WX 797 ; N Alphatonos ; G 798 +U 903 ; WX 380 ; N anoteleia ; G 799 +U 904 ; WX 846 ; N Epsilontonos ; G 800 +U 905 ; WX 1009 ; N Etatonos ; G 801 +U 906 ; WX 563 ; N Iotatonos ; G 802 +U 908 ; WX 891 ; N Omicrontonos ; G 803 +U 910 ; WX 980 ; N Upsilontonos ; G 804 +U 911 ; WX 894 ; N Omegatonos ; G 805 +U 912 ; WX 390 ; N iotadieresistonos ; G 806 +U 913 ; WX 774 ; N Alpha ; G 807 +U 914 ; WX 762 ; N Beta ; G 808 +U 915 ; WX 637 ; N Gamma ; G 809 +U 916 ; WX 774 ; N uni0394 ; G 810 +U 917 ; WX 683 ; N Epsilon ; G 811 +U 918 ; WX 725 ; N Zeta ; G 812 +U 919 ; WX 837 ; N Eta ; G 813 +U 920 ; WX 850 ; N Theta ; G 814 +U 921 ; WX 372 ; N Iota ; G 815 +U 922 ; WX 775 ; N Kappa ; G 816 +U 923 ; WX 774 ; N Lambda ; G 817 +U 924 ; WX 995 ; N Mu ; G 818 +U 925 ; WX 837 ; N Nu ; G 819 +U 926 ; WX 632 ; N Xi ; G 820 +U 927 ; WX 850 ; N Omicron ; G 821 +U 928 ; WX 837 ; N Pi ; G 822 +U 929 ; WX 733 ; N Rho ; G 823 +U 931 ; WX 683 ; N Sigma ; G 824 +U 932 ; WX 682 ; N Tau ; G 825 +U 933 ; WX 724 ; N Upsilon ; G 826 +U 934 ; WX 850 ; N Phi ; G 827 +U 935 ; WX 771 ; N Chi ; G 828 +U 936 ; WX 850 ; N Psi ; G 829 +U 937 ; WX 850 ; N Omega ; G 830 +U 938 ; WX 372 ; N Iotadieresis ; G 831 +U 939 ; WX 724 ; N Upsilondieresis ; G 832 +U 940 ; WX 687 ; N alphatonos ; G 833 +U 941 ; WX 557 ; N epsilontonos ; G 834 +U 942 ; WX 712 ; N etatonos ; G 835 +U 943 ; WX 390 ; N iotatonos ; G 836 +U 944 ; WX 675 ; N upsilondieresistonos ; G 837 +U 945 ; WX 687 ; N alpha ; G 838 +U 946 ; WX 716 ; N beta ; G 839 +U 947 ; WX 681 ; N gamma ; G 840 +U 948 ; WX 687 ; N delta ; G 841 +U 949 ; WX 557 ; N epsilon ; G 842 +U 950 ; WX 591 ; N zeta ; G 843 +U 951 ; WX 712 ; N eta ; G 844 +U 952 ; WX 687 ; N theta ; G 845 +U 953 ; WX 390 ; N iota ; G 846 +U 954 ; WX 710 ; N kappa ; G 847 +U 955 ; WX 633 ; N lambda ; G 848 +U 956 ; WX 736 ; N uni03BC ; G 849 +U 957 ; WX 681 ; N nu ; G 850 +U 958 ; WX 591 ; N xi ; G 851 +U 959 ; WX 687 ; N omicron ; G 852 +U 960 ; WX 791 ; N pi ; G 853 +U 961 ; WX 716 ; N rho ; G 854 +U 962 ; WX 593 ; N sigma1 ; G 855 +U 963 ; WX 779 ; N sigma ; G 856 +U 964 ; WX 638 ; N tau ; G 857 +U 965 ; WX 675 ; N upsilon ; G 858 +U 966 ; WX 782 ; N phi ; G 859 +U 967 ; WX 645 ; N chi ; G 860 +U 968 ; WX 794 ; N psi ; G 861 +U 969 ; WX 869 ; N omega ; G 862 +U 970 ; WX 390 ; N iotadieresis ; G 863 +U 971 ; WX 675 ; N upsilondieresis ; G 864 +U 972 ; WX 687 ; N omicrontonos ; G 865 +U 973 ; WX 675 ; N upsilontonos ; G 866 +U 974 ; WX 869 ; N omegatonos ; G 867 +U 975 ; WX 775 ; N uni03CF ; G 868 +U 976 ; WX 651 ; N uni03D0 ; G 869 +U 977 ; WX 661 ; N theta1 ; G 870 +U 978 ; WX 746 ; N Upsilon1 ; G 871 +U 979 ; WX 981 ; N uni03D3 ; G 872 +U 980 ; WX 746 ; N uni03D4 ; G 873 +U 981 ; WX 796 ; N phi1 ; G 874 +U 982 ; WX 869 ; N omega1 ; G 875 +U 983 ; WX 744 ; N uni03D7 ; G 876 +U 984 ; WX 850 ; N uni03D8 ; G 877 +U 985 ; WX 687 ; N uni03D9 ; G 878 +U 986 ; WX 734 ; N uni03DA ; G 879 +U 987 ; WX 593 ; N uni03DB ; G 880 +U 988 ; WX 683 ; N uni03DC ; G 881 +U 989 ; WX 494 ; N uni03DD ; G 882 +U 990 ; WX 702 ; N uni03DE ; G 883 +U 991 ; WX 660 ; N uni03DF ; G 884 +U 992 ; WX 919 ; N uni03E0 ; G 885 +U 993 ; WX 627 ; N uni03E1 ; G 886 +U 994 ; WX 1093 ; N uni03E2 ; G 887 +U 995 ; WX 837 ; N uni03E3 ; G 888 +U 996 ; WX 832 ; N uni03E4 ; G 889 +U 997 ; WX 716 ; N uni03E5 ; G 890 +U 998 ; WX 928 ; N uni03E6 ; G 891 +U 999 ; WX 744 ; N uni03E7 ; G 892 +U 1000 ; WX 733 ; N uni03E8 ; G 893 +U 1001 ; WX 650 ; N uni03E9 ; G 894 +U 1002 ; WX 789 ; N uni03EA ; G 895 +U 1003 ; WX 671 ; N uni03EB ; G 896 +U 1004 ; WX 752 ; N uni03EC ; G 897 +U 1005 ; WX 716 ; N uni03ED ; G 898 +U 1006 ; WX 682 ; N uni03EE ; G 899 +U 1007 ; WX 590 ; N uni03EF ; G 900 +U 1008 ; WX 744 ; N uni03F0 ; G 901 +U 1009 ; WX 716 ; N uni03F1 ; G 902 +U 1010 ; WX 593 ; N uni03F2 ; G 903 +U 1011 ; WX 343 ; N uni03F3 ; G 904 +U 1012 ; WX 850 ; N uni03F4 ; G 905 +U 1013 ; WX 645 ; N uni03F5 ; G 906 +U 1014 ; WX 645 ; N uni03F6 ; G 907 +U 1015 ; WX 742 ; N uni03F7 ; G 908 +U 1016 ; WX 716 ; N uni03F8 ; G 909 +U 1017 ; WX 734 ; N uni03F9 ; G 910 +U 1018 ; WX 995 ; N uni03FA ; G 911 +U 1019 ; WX 732 ; N uni03FB ; G 912 +U 1020 ; WX 716 ; N uni03FC ; G 913 +U 1021 ; WX 734 ; N uni03FD ; G 914 +U 1022 ; WX 734 ; N uni03FE ; G 915 +U 1023 ; WX 698 ; N uni03FF ; G 916 +U 1024 ; WX 683 ; N uni0400 ; G 917 +U 1025 ; WX 683 ; N uni0401 ; G 918 +U 1026 ; WX 878 ; N uni0402 ; G 919 +U 1027 ; WX 637 ; N uni0403 ; G 920 +U 1028 ; WX 734 ; N uni0404 ; G 921 +U 1029 ; WX 720 ; N uni0405 ; G 922 +U 1030 ; WX 372 ; N uni0406 ; G 923 +U 1031 ; WX 372 ; N uni0407 ; G 924 +U 1032 ; WX 372 ; N uni0408 ; G 925 +U 1033 ; WX 1154 ; N uni0409 ; G 926 +U 1034 ; WX 1130 ; N uni040A ; G 927 +U 1035 ; WX 878 ; N uni040B ; G 928 +U 1036 ; WX 817 ; N uni040C ; G 929 +U 1037 ; WX 837 ; N uni040D ; G 930 +U 1038 ; WX 771 ; N uni040E ; G 931 +U 1039 ; WX 837 ; N uni040F ; G 932 +U 1040 ; WX 774 ; N uni0410 ; G 933 +U 1041 ; WX 762 ; N uni0411 ; G 934 +U 1042 ; WX 762 ; N uni0412 ; G 935 +U 1043 ; WX 637 ; N uni0413 ; G 936 +U 1044 ; WX 891 ; N uni0414 ; G 937 +U 1045 ; WX 683 ; N uni0415 ; G 938 +U 1046 ; WX 1224 ; N uni0416 ; G 939 +U 1047 ; WX 710 ; N uni0417 ; G 940 +U 1048 ; WX 837 ; N uni0418 ; G 941 +U 1049 ; WX 837 ; N uni0419 ; G 942 +U 1050 ; WX 817 ; N uni041A ; G 943 +U 1051 ; WX 831 ; N uni041B ; G 944 +U 1052 ; WX 995 ; N uni041C ; G 945 +U 1053 ; WX 837 ; N uni041D ; G 946 +U 1054 ; WX 850 ; N uni041E ; G 947 +U 1055 ; WX 837 ; N uni041F ; G 948 +U 1056 ; WX 733 ; N uni0420 ; G 949 +U 1057 ; WX 734 ; N uni0421 ; G 950 +U 1058 ; WX 682 ; N uni0422 ; G 951 +U 1059 ; WX 771 ; N uni0423 ; G 952 +U 1060 ; WX 992 ; N uni0424 ; G 953 +U 1061 ; WX 771 ; N uni0425 ; G 954 +U 1062 ; WX 928 ; N uni0426 ; G 955 +U 1063 ; WX 808 ; N uni0427 ; G 956 +U 1064 ; WX 1235 ; N uni0428 ; G 957 +U 1065 ; WX 1326 ; N uni0429 ; G 958 +U 1066 ; WX 939 ; N uni042A ; G 959 +U 1067 ; WX 1036 ; N uni042B ; G 960 +U 1068 ; WX 762 ; N uni042C ; G 961 +U 1069 ; WX 734 ; N uni042D ; G 962 +U 1070 ; WX 1174 ; N uni042E ; G 963 +U 1071 ; WX 770 ; N uni042F ; G 964 +U 1072 ; WX 675 ; N uni0430 ; G 965 +U 1073 ; WX 698 ; N uni0431 ; G 966 +U 1074 ; WX 633 ; N uni0432 ; G 967 +U 1075 ; WX 522 ; N uni0433 ; G 968 +U 1076 ; WX 808 ; N uni0434 ; G 969 +U 1077 ; WX 678 ; N uni0435 ; G 970 +U 1078 ; WX 995 ; N uni0436 ; G 971 +U 1079 ; WX 581 ; N uni0437 ; G 972 +U 1080 ; WX 701 ; N uni0438 ; G 973 +U 1081 ; WX 701 ; N uni0439 ; G 974 +U 1082 ; WX 679 ; N uni043A ; G 975 +U 1083 ; WX 732 ; N uni043B ; G 976 +U 1084 ; WX 817 ; N uni043C ; G 977 +U 1085 ; WX 691 ; N uni043D ; G 978 +U 1086 ; WX 687 ; N uni043E ; G 979 +U 1087 ; WX 691 ; N uni043F ; G 980 +U 1088 ; WX 716 ; N uni0440 ; G 981 +U 1089 ; WX 593 ; N uni0441 ; G 982 +U 1090 ; WX 580 ; N uni0442 ; G 983 +U 1091 ; WX 652 ; N uni0443 ; G 984 +U 1092 ; WX 992 ; N uni0444 ; G 985 +U 1093 ; WX 645 ; N uni0445 ; G 986 +U 1094 ; WX 741 ; N uni0446 ; G 987 +U 1095 ; WX 687 ; N uni0447 ; G 988 +U 1096 ; WX 1062 ; N uni0448 ; G 989 +U 1097 ; WX 1105 ; N uni0449 ; G 990 +U 1098 ; WX 751 ; N uni044A ; G 991 +U 1099 ; WX 904 ; N uni044B ; G 992 +U 1100 ; WX 632 ; N uni044C ; G 993 +U 1101 ; WX 593 ; N uni044D ; G 994 +U 1102 ; WX 972 ; N uni044E ; G 995 +U 1103 ; WX 642 ; N uni044F ; G 996 +U 1104 ; WX 678 ; N uni0450 ; G 997 +U 1105 ; WX 678 ; N uni0451 ; G 998 +U 1106 ; WX 714 ; N uni0452 ; G 999 +U 1107 ; WX 522 ; N uni0453 ; G 1000 +U 1108 ; WX 593 ; N uni0454 ; G 1001 +U 1109 ; WX 595 ; N uni0455 ; G 1002 +U 1110 ; WX 343 ; N uni0456 ; G 1003 +U 1111 ; WX 343 ; N uni0457 ; G 1004 +U 1112 ; WX 343 ; N uni0458 ; G 1005 +U 1113 ; WX 991 ; N uni0459 ; G 1006 +U 1114 ; WX 956 ; N uni045A ; G 1007 +U 1115 ; WX 734 ; N uni045B ; G 1008 +U 1116 ; WX 679 ; N uni045C ; G 1009 +U 1117 ; WX 701 ; N uni045D ; G 1010 +U 1118 ; WX 652 ; N uni045E ; G 1011 +U 1119 ; WX 691 ; N uni045F ; G 1012 +U 1120 ; WX 1093 ; N uni0460 ; G 1013 +U 1121 ; WX 869 ; N uni0461 ; G 1014 +U 1122 ; WX 840 ; N uni0462 ; G 1015 +U 1123 ; WX 736 ; N uni0463 ; G 1016 +U 1124 ; WX 1012 ; N uni0464 ; G 1017 +U 1125 ; WX 839 ; N uni0465 ; G 1018 +U 1126 ; WX 992 ; N uni0466 ; G 1019 +U 1127 ; WX 832 ; N uni0467 ; G 1020 +U 1128 ; WX 1358 ; N uni0468 ; G 1021 +U 1129 ; WX 1121 ; N uni0469 ; G 1022 +U 1130 ; WX 850 ; N uni046A ; G 1023 +U 1131 ; WX 687 ; N uni046B ; G 1024 +U 1132 ; WX 1236 ; N uni046C ; G 1025 +U 1133 ; WX 1007 ; N uni046D ; G 1026 +U 1134 ; WX 696 ; N uni046E ; G 1027 +U 1135 ; WX 557 ; N uni046F ; G 1028 +U 1136 ; WX 1075 ; N uni0470 ; G 1029 +U 1137 ; WX 1061 ; N uni0471 ; G 1030 +U 1138 ; WX 850 ; N uni0472 ; G 1031 +U 1139 ; WX 687 ; N uni0473 ; G 1032 +U 1140 ; WX 850 ; N uni0474 ; G 1033 +U 1141 ; WX 695 ; N uni0475 ; G 1034 +U 1142 ; WX 850 ; N uni0476 ; G 1035 +U 1143 ; WX 695 ; N uni0477 ; G 1036 +U 1144 ; WX 1148 ; N uni0478 ; G 1037 +U 1145 ; WX 1043 ; N uni0479 ; G 1038 +U 1146 ; WX 1074 ; N uni047A ; G 1039 +U 1147 ; WX 863 ; N uni047B ; G 1040 +U 1148 ; WX 1405 ; N uni047C ; G 1041 +U 1149 ; WX 1173 ; N uni047D ; G 1042 +U 1150 ; WX 1093 ; N uni047E ; G 1043 +U 1151 ; WX 869 ; N uni047F ; G 1044 +U 1152 ; WX 734 ; N uni0480 ; G 1045 +U 1153 ; WX 593 ; N uni0481 ; G 1046 +U 1154 ; WX 652 ; N uni0482 ; G 1047 +U 1155 ; WX 0 ; N uni0483 ; G 1048 +U 1156 ; WX 0 ; N uni0484 ; G 1049 +U 1157 ; WX 0 ; N uni0485 ; G 1050 +U 1158 ; WX 0 ; N uni0486 ; G 1051 +U 1159 ; WX 0 ; N uni0487 ; G 1052 +U 1160 ; WX 418 ; N uni0488 ; G 1053 +U 1161 ; WX 418 ; N uni0489 ; G 1054 +U 1162 ; WX 938 ; N uni048A ; G 1055 +U 1163 ; WX 806 ; N uni048B ; G 1056 +U 1164 ; WX 762 ; N uni048C ; G 1057 +U 1165 ; WX 611 ; N uni048D ; G 1058 +U 1166 ; WX 736 ; N uni048E ; G 1059 +U 1167 ; WX 718 ; N uni048F ; G 1060 +U 1168 ; WX 637 ; N uni0490 ; G 1061 +U 1169 ; WX 522 ; N uni0491 ; G 1062 +U 1170 ; WX 666 ; N uni0492 ; G 1063 +U 1171 ; WX 543 ; N uni0493 ; G 1064 +U 1172 ; WX 789 ; N uni0494 ; G 1065 +U 1173 ; WX 522 ; N uni0495 ; G 1066 +U 1174 ; WX 1224 ; N uni0496 ; G 1067 +U 1175 ; WX 995 ; N uni0497 ; G 1068 +U 1176 ; WX 710 ; N uni0498 ; G 1069 +U 1177 ; WX 581 ; N uni0499 ; G 1070 +U 1178 ; WX 775 ; N uni049A ; G 1071 +U 1179 ; WX 679 ; N uni049B ; G 1072 +U 1180 ; WX 817 ; N uni049C ; G 1073 +U 1181 ; WX 679 ; N uni049D ; G 1074 +U 1182 ; WX 817 ; N uni049E ; G 1075 +U 1183 ; WX 679 ; N uni049F ; G 1076 +U 1184 ; WX 1015 ; N uni04A0 ; G 1077 +U 1185 ; WX 826 ; N uni04A1 ; G 1078 +U 1186 ; WX 837 ; N uni04A2 ; G 1079 +U 1187 ; WX 691 ; N uni04A3 ; G 1080 +U 1188 ; WX 1103 ; N uni04A4 ; G 1081 +U 1189 ; WX 871 ; N uni04A5 ; G 1082 +U 1190 ; WX 1254 ; N uni04A6 ; G 1083 +U 1191 ; WX 979 ; N uni04A7 ; G 1084 +U 1192 ; WX 946 ; N uni04A8 ; G 1085 +U 1193 ; WX 859 ; N uni04A9 ; G 1086 +U 1194 ; WX 734 ; N uni04AA ; G 1087 +U 1195 ; WX 593 ; N uni04AB ; G 1088 +U 1196 ; WX 682 ; N uni04AC ; G 1089 +U 1197 ; WX 580 ; N uni04AD ; G 1090 +U 1198 ; WX 724 ; N uni04AE ; G 1091 +U 1199 ; WX 652 ; N uni04AF ; G 1092 +U 1200 ; WX 724 ; N uni04B0 ; G 1093 +U 1201 ; WX 652 ; N uni04B1 ; G 1094 +U 1202 ; WX 771 ; N uni04B2 ; G 1095 +U 1203 ; WX 645 ; N uni04B3 ; G 1096 +U 1204 ; WX 1104 ; N uni04B4 ; G 1097 +U 1205 ; WX 1001 ; N uni04B5 ; G 1098 +U 1206 ; WX 808 ; N uni04B6 ; G 1099 +U 1207 ; WX 687 ; N uni04B7 ; G 1100 +U 1208 ; WX 808 ; N uni04B8 ; G 1101 +U 1209 ; WX 687 ; N uni04B9 ; G 1102 +U 1210 ; WX 808 ; N uni04BA ; G 1103 +U 1211 ; WX 712 ; N uni04BB ; G 1104 +U 1212 ; WX 1026 ; N uni04BC ; G 1105 +U 1213 ; WX 810 ; N uni04BD ; G 1106 +U 1214 ; WX 1026 ; N uni04BE ; G 1107 +U 1215 ; WX 810 ; N uni04BF ; G 1108 +U 1216 ; WX 372 ; N uni04C0 ; G 1109 +U 1217 ; WX 1224 ; N uni04C1 ; G 1110 +U 1218 ; WX 995 ; N uni04C2 ; G 1111 +U 1219 ; WX 778 ; N uni04C3 ; G 1112 +U 1220 ; WX 629 ; N uni04C4 ; G 1113 +U 1221 ; WX 933 ; N uni04C5 ; G 1114 +U 1222 ; WX 804 ; N uni04C6 ; G 1115 +U 1223 ; WX 837 ; N uni04C7 ; G 1116 +U 1224 ; WX 691 ; N uni04C8 ; G 1117 +U 1225 ; WX 938 ; N uni04C9 ; G 1118 +U 1226 ; WX 806 ; N uni04CA ; G 1119 +U 1227 ; WX 808 ; N uni04CB ; G 1120 +U 1228 ; WX 687 ; N uni04CC ; G 1121 +U 1229 ; WX 1096 ; N uni04CD ; G 1122 +U 1230 ; WX 932 ; N uni04CE ; G 1123 +U 1231 ; WX 343 ; N uni04CF ; G 1124 +U 1232 ; WX 774 ; N uni04D0 ; G 1125 +U 1233 ; WX 675 ; N uni04D1 ; G 1126 +U 1234 ; WX 774 ; N uni04D2 ; G 1127 +U 1235 ; WX 675 ; N uni04D3 ; G 1128 +U 1236 ; WX 1085 ; N uni04D4 ; G 1129 +U 1237 ; WX 1048 ; N uni04D5 ; G 1130 +U 1238 ; WX 683 ; N uni04D6 ; G 1131 +U 1239 ; WX 678 ; N uni04D7 ; G 1132 +U 1240 ; WX 850 ; N uni04D8 ; G 1133 +U 1241 ; WX 678 ; N uni04D9 ; G 1134 +U 1242 ; WX 850 ; N uni04DA ; G 1135 +U 1243 ; WX 678 ; N uni04DB ; G 1136 +U 1244 ; WX 1224 ; N uni04DC ; G 1137 +U 1245 ; WX 995 ; N uni04DD ; G 1138 +U 1246 ; WX 710 ; N uni04DE ; G 1139 +U 1247 ; WX 581 ; N uni04DF ; G 1140 +U 1248 ; WX 772 ; N uni04E0 ; G 1141 +U 1249 ; WX 641 ; N uni04E1 ; G 1142 +U 1250 ; WX 837 ; N uni04E2 ; G 1143 +U 1251 ; WX 701 ; N uni04E3 ; G 1144 +U 1252 ; WX 837 ; N uni04E4 ; G 1145 +U 1253 ; WX 701 ; N uni04E5 ; G 1146 +U 1254 ; WX 850 ; N uni04E6 ; G 1147 +U 1255 ; WX 687 ; N uni04E7 ; G 1148 +U 1256 ; WX 850 ; N uni04E8 ; G 1149 +U 1257 ; WX 687 ; N uni04E9 ; G 1150 +U 1258 ; WX 850 ; N uni04EA ; G 1151 +U 1259 ; WX 687 ; N uni04EB ; G 1152 +U 1260 ; WX 734 ; N uni04EC ; G 1153 +U 1261 ; WX 593 ; N uni04ED ; G 1154 +U 1262 ; WX 771 ; N uni04EE ; G 1155 +U 1263 ; WX 652 ; N uni04EF ; G 1156 +U 1264 ; WX 771 ; N uni04F0 ; G 1157 +U 1265 ; WX 652 ; N uni04F1 ; G 1158 +U 1266 ; WX 771 ; N uni04F2 ; G 1159 +U 1267 ; WX 652 ; N uni04F3 ; G 1160 +U 1268 ; WX 808 ; N uni04F4 ; G 1161 +U 1269 ; WX 687 ; N uni04F5 ; G 1162 +U 1270 ; WX 637 ; N uni04F6 ; G 1163 +U 1271 ; WX 522 ; N uni04F7 ; G 1164 +U 1272 ; WX 1036 ; N uni04F8 ; G 1165 +U 1273 ; WX 904 ; N uni04F9 ; G 1166 +U 1274 ; WX 666 ; N uni04FA ; G 1167 +U 1275 ; WX 543 ; N uni04FB ; G 1168 +U 1276 ; WX 771 ; N uni04FC ; G 1169 +U 1277 ; WX 645 ; N uni04FD ; G 1170 +U 1278 ; WX 771 ; N uni04FE ; G 1171 +U 1279 ; WX 645 ; N uni04FF ; G 1172 +U 1280 ; WX 762 ; N uni0500 ; G 1173 +U 1281 ; WX 608 ; N uni0501 ; G 1174 +U 1282 ; WX 1159 ; N uni0502 ; G 1175 +U 1283 ; WX 893 ; N uni0503 ; G 1176 +U 1284 ; WX 1119 ; N uni0504 ; G 1177 +U 1285 ; WX 920 ; N uni0505 ; G 1178 +U 1286 ; WX 828 ; N uni0506 ; G 1179 +U 1287 ; WX 693 ; N uni0507 ; G 1180 +U 1288 ; WX 1242 ; N uni0508 ; G 1181 +U 1289 ; WX 1017 ; N uni0509 ; G 1182 +U 1290 ; WX 1289 ; N uni050A ; G 1183 +U 1291 ; WX 1013 ; N uni050B ; G 1184 +U 1292 ; WX 839 ; N uni050C ; G 1185 +U 1293 ; WX 638 ; N uni050D ; G 1186 +U 1294 ; WX 938 ; N uni050E ; G 1187 +U 1295 ; WX 803 ; N uni050F ; G 1188 +U 1296 ; WX 696 ; N uni0510 ; G 1189 +U 1297 ; WX 557 ; N uni0511 ; G 1190 +U 1298 ; WX 831 ; N uni0512 ; G 1191 +U 1299 ; WX 732 ; N uni0513 ; G 1192 +U 1300 ; WX 1286 ; N uni0514 ; G 1193 +U 1301 ; WX 1070 ; N uni0515 ; G 1194 +U 1302 ; WX 1065 ; N uni0516 ; G 1195 +U 1303 ; WX 982 ; N uni0517 ; G 1196 +U 1304 ; WX 1082 ; N uni0518 ; G 1197 +U 1305 ; WX 960 ; N uni0519 ; G 1198 +U 1306 ; WX 850 ; N uni051A ; G 1199 +U 1307 ; WX 716 ; N uni051B ; G 1200 +U 1308 ; WX 1103 ; N uni051C ; G 1201 +U 1309 ; WX 924 ; N uni051D ; G 1202 +U 1310 ; WX 817 ; N uni051E ; G 1203 +U 1311 ; WX 679 ; N uni051F ; G 1204 +U 1312 ; WX 1248 ; N uni0520 ; G 1205 +U 1313 ; WX 1022 ; N uni0521 ; G 1206 +U 1314 ; WX 1254 ; N uni0522 ; G 1207 +U 1315 ; WX 979 ; N uni0523 ; G 1208 +U 1316 ; WX 957 ; N uni0524 ; G 1209 +U 1317 ; WX 807 ; N uni0525 ; G 1210 +U 1329 ; WX 904 ; N uni0531 ; G 1211 +U 1330 ; WX 810 ; N uni0532 ; G 1212 +U 1331 ; WX 809 ; N uni0533 ; G 1213 +U 1332 ; WX 813 ; N uni0534 ; G 1214 +U 1333 ; WX 810 ; N uni0535 ; G 1215 +U 1334 ; WX 815 ; N uni0536 ; G 1216 +U 1335 ; WX 724 ; N uni0537 ; G 1217 +U 1336 ; WX 800 ; N uni0538 ; G 1218 +U 1337 ; WX 1004 ; N uni0539 ; G 1219 +U 1338 ; WX 809 ; N uni053A ; G 1220 +U 1339 ; WX 740 ; N uni053B ; G 1221 +U 1340 ; WX 620 ; N uni053C ; G 1222 +U 1341 ; WX 1068 ; N uni053D ; G 1223 +U 1342 ; WX 875 ; N uni053E ; G 1224 +U 1343 ; WX 792 ; N uni053F ; G 1225 +U 1344 ; WX 723 ; N uni0540 ; G 1226 +U 1345 ; WX 811 ; N uni0541 ; G 1227 +U 1346 ; WX 794 ; N uni0542 ; G 1228 +U 1347 ; WX 782 ; N uni0543 ; G 1229 +U 1348 ; WX 867 ; N uni0544 ; G 1230 +U 1349 ; WX 766 ; N uni0545 ; G 1231 +U 1350 ; WX 794 ; N uni0546 ; G 1232 +U 1351 ; WX 787 ; N uni0547 ; G 1233 +U 1352 ; WX 812 ; N uni0548 ; G 1234 +U 1353 ; WX 752 ; N uni0549 ; G 1235 +U 1354 ; WX 963 ; N uni054A ; G 1236 +U 1355 ; WX 790 ; N uni054B ; G 1237 +U 1356 ; WX 867 ; N uni054C ; G 1238 +U 1357 ; WX 812 ; N uni054D ; G 1239 +U 1358 ; WX 794 ; N uni054E ; G 1240 +U 1359 ; WX 771 ; N uni054F ; G 1241 +U 1360 ; WX 740 ; N uni0550 ; G 1242 +U 1361 ; WX 775 ; N uni0551 ; G 1243 +U 1362 ; WX 640 ; N uni0552 ; G 1244 +U 1363 ; WX 926 ; N uni0553 ; G 1245 +U 1364 ; WX 775 ; N uni0554 ; G 1246 +U 1365 ; WX 848 ; N uni0555 ; G 1247 +U 1366 ; WX 951 ; N uni0556 ; G 1248 +U 1369 ; WX 366 ; N uni0559 ; G 1249 +U 1370 ; WX 380 ; N uni055A ; G 1250 +U 1371 ; WX 342 ; N uni055B ; G 1251 +U 1372 ; WX 415 ; N uni055C ; G 1252 +U 1373 ; WX 348 ; N uni055D ; G 1253 +U 1374 ; WX 513 ; N uni055E ; G 1254 +U 1375 ; WX 521 ; N uni055F ; G 1255 +U 1377 ; WX 1043 ; N uni0561 ; G 1256 +U 1378 ; WX 713 ; N uni0562 ; G 1257 +U 1379 ; WX 782 ; N uni0563 ; G 1258 +U 1380 ; WX 786 ; N uni0564 ; G 1259 +U 1381 ; WX 713 ; N uni0565 ; G 1260 +U 1382 ; WX 715 ; N uni0566 ; G 1261 +U 1383 ; WX 628 ; N uni0567 ; G 1262 +U 1384 ; WX 713 ; N uni0568 ; G 1263 +U 1385 ; WX 840 ; N uni0569 ; G 1264 +U 1386 ; WX 782 ; N uni056A ; G 1265 +U 1387 ; WX 714 ; N uni056B ; G 1266 +U 1388 ; WX 344 ; N uni056C ; G 1267 +U 1389 ; WX 1094 ; N uni056D ; G 1268 +U 1390 ; WX 708 ; N uni056E ; G 1269 +U 1391 ; WX 714 ; N uni056F ; G 1270 +U 1392 ; WX 714 ; N uni0570 ; G 1271 +U 1393 ; WX 670 ; N uni0571 ; G 1272 +U 1394 ; WX 714 ; N uni0572 ; G 1273 +U 1395 ; WX 713 ; N uni0573 ; G 1274 +U 1396 ; WX 714 ; N uni0574 ; G 1275 +U 1397 ; WX 343 ; N uni0575 ; G 1276 +U 1398 ; WX 714 ; N uni0576 ; G 1277 +U 1399 ; WX 541 ; N uni0577 ; G 1278 +U 1400 ; WX 714 ; N uni0578 ; G 1279 +U 1401 ; WX 407 ; N uni0579 ; G 1280 +U 1402 ; WX 1043 ; N uni057A ; G 1281 +U 1403 ; WX 636 ; N uni057B ; G 1282 +U 1404 ; WX 740 ; N uni057C ; G 1283 +U 1405 ; WX 714 ; N uni057D ; G 1284 +U 1406 ; WX 714 ; N uni057E ; G 1285 +U 1407 ; WX 1038 ; N uni057F ; G 1286 +U 1408 ; WX 714 ; N uni0580 ; G 1287 +U 1409 ; WX 714 ; N uni0581 ; G 1288 +U 1410 ; WX 532 ; N uni0582 ; G 1289 +U 1411 ; WX 1038 ; N uni0583 ; G 1290 +U 1412 ; WX 720 ; N uni0584 ; G 1291 +U 1413 ; WX 689 ; N uni0585 ; G 1292 +U 1414 ; WX 904 ; N uni0586 ; G 1293 +U 1415 ; WX 902 ; N uni0587 ; G 1294 +U 1417 ; WX 400 ; N uni0589 ; G 1295 +U 1418 ; WX 415 ; N uni058A ; G 1296 +U 1456 ; WX 0 ; N uni05B0 ; G 1297 +U 1457 ; WX 0 ; N uni05B1 ; G 1298 +U 1458 ; WX 0 ; N uni05B2 ; G 1299 +U 1459 ; WX 0 ; N uni05B3 ; G 1300 +U 1460 ; WX 0 ; N uni05B4 ; G 1301 +U 1461 ; WX 0 ; N uni05B5 ; G 1302 +U 1462 ; WX 0 ; N uni05B6 ; G 1303 +U 1463 ; WX 0 ; N uni05B7 ; G 1304 +U 1464 ; WX 0 ; N uni05B8 ; G 1305 +U 1465 ; WX 0 ; N uni05B9 ; G 1306 +U 1466 ; WX 0 ; N uni05BA ; G 1307 +U 1467 ; WX 0 ; N uni05BB ; G 1308 +U 1468 ; WX 0 ; N uni05BC ; G 1309 +U 1469 ; WX 0 ; N uni05BD ; G 1310 +U 1470 ; WX 415 ; N uni05BE ; G 1311 +U 1471 ; WX 0 ; N uni05BF ; G 1312 +U 1472 ; WX 372 ; N uni05C0 ; G 1313 +U 1473 ; WX 0 ; N uni05C1 ; G 1314 +U 1474 ; WX 0 ; N uni05C2 ; G 1315 +U 1475 ; WX 372 ; N uni05C3 ; G 1316 +U 1478 ; WX 497 ; N uni05C6 ; G 1317 +U 1479 ; WX 0 ; N uni05C7 ; G 1318 +U 1488 ; WX 728 ; N uni05D0 ; G 1319 +U 1489 ; WX 610 ; N uni05D1 ; G 1320 +U 1490 ; WX 447 ; N uni05D2 ; G 1321 +U 1491 ; WX 588 ; N uni05D3 ; G 1322 +U 1492 ; WX 687 ; N uni05D4 ; G 1323 +U 1493 ; WX 343 ; N uni05D5 ; G 1324 +U 1494 ; WX 400 ; N uni05D6 ; G 1325 +U 1495 ; WX 687 ; N uni05D7 ; G 1326 +U 1496 ; WX 679 ; N uni05D8 ; G 1327 +U 1497 ; WX 294 ; N uni05D9 ; G 1328 +U 1498 ; WX 578 ; N uni05DA ; G 1329 +U 1499 ; WX 566 ; N uni05DB ; G 1330 +U 1500 ; WX 605 ; N uni05DC ; G 1331 +U 1501 ; WX 696 ; N uni05DD ; G 1332 +U 1502 ; WX 724 ; N uni05DE ; G 1333 +U 1503 ; WX 343 ; N uni05DF ; G 1334 +U 1504 ; WX 453 ; N uni05E0 ; G 1335 +U 1505 ; WX 680 ; N uni05E1 ; G 1336 +U 1506 ; WX 666 ; N uni05E2 ; G 1337 +U 1507 ; WX 675 ; N uni05E3 ; G 1338 +U 1508 ; WX 658 ; N uni05E4 ; G 1339 +U 1509 ; WX 661 ; N uni05E5 ; G 1340 +U 1510 ; WX 653 ; N uni05E6 ; G 1341 +U 1511 ; WX 736 ; N uni05E7 ; G 1342 +U 1512 ; WX 602 ; N uni05E8 ; G 1343 +U 1513 ; WX 749 ; N uni05E9 ; G 1344 +U 1514 ; WX 683 ; N uni05EA ; G 1345 +U 1520 ; WX 664 ; N uni05F0 ; G 1346 +U 1521 ; WX 664 ; N uni05F1 ; G 1347 +U 1522 ; WX 663 ; N uni05F2 ; G 1348 +U 1523 ; WX 444 ; N uni05F3 ; G 1349 +U 1524 ; WX 710 ; N uni05F4 ; G 1350 +U 3647 ; WX 696 ; N uni0E3F ; G 1351 +U 3713 ; WX 815 ; N uni0E81 ; G 1352 +U 3714 ; WX 748 ; N uni0E82 ; G 1353 +U 3716 ; WX 749 ; N uni0E84 ; G 1354 +U 3719 ; WX 569 ; N uni0E87 ; G 1355 +U 3720 ; WX 742 ; N uni0E88 ; G 1356 +U 3722 ; WX 744 ; N uni0E8A ; G 1357 +U 3725 ; WX 761 ; N uni0E8D ; G 1358 +U 3732 ; WX 706 ; N uni0E94 ; G 1359 +U 3733 ; WX 704 ; N uni0E95 ; G 1360 +U 3734 ; WX 747 ; N uni0E96 ; G 1361 +U 3735 ; WX 819 ; N uni0E97 ; G 1362 +U 3737 ; WX 730 ; N uni0E99 ; G 1363 +U 3738 ; WX 727 ; N uni0E9A ; G 1364 +U 3739 ; WX 727 ; N uni0E9B ; G 1365 +U 3740 ; WX 922 ; N uni0E9C ; G 1366 +U 3741 ; WX 827 ; N uni0E9D ; G 1367 +U 3742 ; WX 866 ; N uni0E9E ; G 1368 +U 3743 ; WX 866 ; N uni0E9F ; G 1369 +U 3745 ; WX 836 ; N uni0EA1 ; G 1370 +U 3746 ; WX 761 ; N uni0EA2 ; G 1371 +U 3747 ; WX 770 ; N uni0EA3 ; G 1372 +U 3749 ; WX 769 ; N uni0EA5 ; G 1373 +U 3751 ; WX 713 ; N uni0EA7 ; G 1374 +U 3754 ; WX 827 ; N uni0EAA ; G 1375 +U 3755 ; WX 1031 ; N uni0EAB ; G 1376 +U 3757 ; WX 724 ; N uni0EAD ; G 1377 +U 3758 ; WX 784 ; N uni0EAE ; G 1378 +U 3759 ; WX 934 ; N uni0EAF ; G 1379 +U 3760 ; WX 688 ; N uni0EB0 ; G 1380 +U 3761 ; WX 0 ; N uni0EB1 ; G 1381 +U 3762 ; WX 610 ; N uni0EB2 ; G 1382 +U 3763 ; WX 610 ; N uni0EB3 ; G 1383 +U 3764 ; WX 0 ; N uni0EB4 ; G 1384 +U 3765 ; WX 0 ; N uni0EB5 ; G 1385 +U 3766 ; WX 0 ; N uni0EB6 ; G 1386 +U 3767 ; WX 0 ; N uni0EB7 ; G 1387 +U 3768 ; WX 0 ; N uni0EB8 ; G 1388 +U 3769 ; WX 0 ; N uni0EB9 ; G 1389 +U 3771 ; WX 0 ; N uni0EBB ; G 1390 +U 3772 ; WX 0 ; N uni0EBC ; G 1391 +U 3773 ; WX 670 ; N uni0EBD ; G 1392 +U 3776 ; WX 516 ; N uni0EC0 ; G 1393 +U 3777 ; WX 860 ; N uni0EC1 ; G 1394 +U 3778 ; WX 516 ; N uni0EC2 ; G 1395 +U 3779 ; WX 650 ; N uni0EC3 ; G 1396 +U 3780 ; WX 632 ; N uni0EC4 ; G 1397 +U 3782 ; WX 759 ; N uni0EC6 ; G 1398 +U 3784 ; WX 0 ; N uni0EC8 ; G 1399 +U 3785 ; WX 0 ; N uni0EC9 ; G 1400 +U 3786 ; WX 0 ; N uni0ECA ; G 1401 +U 3787 ; WX 0 ; N uni0ECB ; G 1402 +U 3788 ; WX 0 ; N uni0ECC ; G 1403 +U 3789 ; WX 0 ; N uni0ECD ; G 1404 +U 3792 ; WX 771 ; N uni0ED0 ; G 1405 +U 3793 ; WX 771 ; N uni0ED1 ; G 1406 +U 3794 ; WX 693 ; N uni0ED2 ; G 1407 +U 3795 ; WX 836 ; N uni0ED3 ; G 1408 +U 3796 ; WX 729 ; N uni0ED4 ; G 1409 +U 3797 ; WX 729 ; N uni0ED5 ; G 1410 +U 3798 ; WX 849 ; N uni0ED6 ; G 1411 +U 3799 ; WX 790 ; N uni0ED7 ; G 1412 +U 3800 ; WX 759 ; N uni0ED8 ; G 1413 +U 3801 ; WX 910 ; N uni0ED9 ; G 1414 +U 3804 ; WX 1363 ; N uni0EDC ; G 1415 +U 3805 ; WX 1363 ; N uni0EDD ; G 1416 +U 4256 ; WX 874 ; N uni10A0 ; G 1417 +U 4257 ; WX 733 ; N uni10A1 ; G 1418 +U 4258 ; WX 679 ; N uni10A2 ; G 1419 +U 4259 ; WX 834 ; N uni10A3 ; G 1420 +U 4260 ; WX 615 ; N uni10A4 ; G 1421 +U 4261 ; WX 768 ; N uni10A5 ; G 1422 +U 4262 ; WX 753 ; N uni10A6 ; G 1423 +U 4263 ; WX 914 ; N uni10A7 ; G 1424 +U 4264 ; WX 453 ; N uni10A8 ; G 1425 +U 4265 ; WX 620 ; N uni10A9 ; G 1426 +U 4266 ; WX 843 ; N uni10AA ; G 1427 +U 4267 ; WX 882 ; N uni10AB ; G 1428 +U 4268 ; WX 625 ; N uni10AC ; G 1429 +U 4269 ; WX 854 ; N uni10AD ; G 1430 +U 4270 ; WX 781 ; N uni10AE ; G 1431 +U 4271 ; WX 629 ; N uni10AF ; G 1432 +U 4272 ; WX 912 ; N uni10B0 ; G 1433 +U 4273 ; WX 621 ; N uni10B1 ; G 1434 +U 4274 ; WX 620 ; N uni10B2 ; G 1435 +U 4275 ; WX 854 ; N uni10B3 ; G 1436 +U 4276 ; WX 866 ; N uni10B4 ; G 1437 +U 4277 ; WX 724 ; N uni10B5 ; G 1438 +U 4278 ; WX 630 ; N uni10B6 ; G 1439 +U 4279 ; WX 621 ; N uni10B7 ; G 1440 +U 4280 ; WX 625 ; N uni10B8 ; G 1441 +U 4281 ; WX 620 ; N uni10B9 ; G 1442 +U 4282 ; WX 818 ; N uni10BA ; G 1443 +U 4283 ; WX 874 ; N uni10BB ; G 1444 +U 4284 ; WX 615 ; N uni10BC ; G 1445 +U 4285 ; WX 623 ; N uni10BD ; G 1446 +U 4286 ; WX 625 ; N uni10BE ; G 1447 +U 4287 ; WX 725 ; N uni10BF ; G 1448 +U 4288 ; WX 844 ; N uni10C0 ; G 1449 +U 4289 ; WX 596 ; N uni10C1 ; G 1450 +U 4290 ; WX 688 ; N uni10C2 ; G 1451 +U 4291 ; WX 596 ; N uni10C3 ; G 1452 +U 4292 ; WX 594 ; N uni10C4 ; G 1453 +U 4293 ; WX 738 ; N uni10C5 ; G 1454 +U 4304 ; WX 554 ; N uni10D0 ; G 1455 +U 4305 ; WX 563 ; N uni10D1 ; G 1456 +U 4306 ; WX 622 ; N uni10D2 ; G 1457 +U 4307 ; WX 834 ; N uni10D3 ; G 1458 +U 4308 ; WX 550 ; N uni10D4 ; G 1459 +U 4309 ; WX 559 ; N uni10D5 ; G 1460 +U 4310 ; WX 546 ; N uni10D6 ; G 1461 +U 4311 ; WX 828 ; N uni10D7 ; G 1462 +U 4312 ; WX 563 ; N uni10D8 ; G 1463 +U 4313 ; WX 556 ; N uni10D9 ; G 1464 +U 4314 ; WX 1074 ; N uni10DA ; G 1465 +U 4315 ; WX 563 ; N uni10DB ; G 1466 +U 4316 ; WX 563 ; N uni10DC ; G 1467 +U 4317 ; WX 814 ; N uni10DD ; G 1468 +U 4318 ; WX 554 ; N uni10DE ; G 1469 +U 4319 ; WX 559 ; N uni10DF ; G 1470 +U 4320 ; WX 823 ; N uni10E0 ; G 1471 +U 4321 ; WX 563 ; N uni10E1 ; G 1472 +U 4322 ; WX 700 ; N uni10E2 ; G 1473 +U 4323 ; WX 582 ; N uni10E3 ; G 1474 +U 4324 ; WX 847 ; N uni10E4 ; G 1475 +U 4325 ; WX 555 ; N uni10E5 ; G 1476 +U 4326 ; WX 814 ; N uni10E6 ; G 1477 +U 4327 ; WX 559 ; N uni10E7 ; G 1478 +U 4328 ; WX 543 ; N uni10E8 ; G 1479 +U 4329 ; WX 563 ; N uni10E9 ; G 1480 +U 4330 ; WX 622 ; N uni10EA ; G 1481 +U 4331 ; WX 563 ; N uni10EB ; G 1482 +U 4332 ; WX 543 ; N uni10EC ; G 1483 +U 4333 ; WX 566 ; N uni10ED ; G 1484 +U 4334 ; WX 563 ; N uni10EE ; G 1485 +U 4335 ; WX 530 ; N uni10EF ; G 1486 +U 4336 ; WX 554 ; N uni10F0 ; G 1487 +U 4337 ; WX 554 ; N uni10F1 ; G 1488 +U 4338 ; WX 553 ; N uni10F2 ; G 1489 +U 4339 ; WX 554 ; N uni10F3 ; G 1490 +U 4340 ; WX 553 ; N uni10F4 ; G 1491 +U 4341 ; WX 583 ; N uni10F5 ; G 1492 +U 4342 ; WX 853 ; N uni10F6 ; G 1493 +U 4343 ; WX 604 ; N uni10F7 ; G 1494 +U 4344 ; WX 559 ; N uni10F8 ; G 1495 +U 4345 ; WX 632 ; N uni10F9 ; G 1496 +U 4346 ; WX 554 ; N uni10FA ; G 1497 +U 4347 ; WX 448 ; N uni10FB ; G 1498 +U 4348 ; WX 324 ; N uni10FC ; G 1499 +U 5121 ; WX 774 ; N uni1401 ; G 1500 +U 5122 ; WX 774 ; N uni1402 ; G 1501 +U 5123 ; WX 774 ; N uni1403 ; G 1502 +U 5124 ; WX 774 ; N uni1404 ; G 1503 +U 5125 ; WX 905 ; N uni1405 ; G 1504 +U 5126 ; WX 905 ; N uni1406 ; G 1505 +U 5127 ; WX 905 ; N uni1407 ; G 1506 +U 5129 ; WX 905 ; N uni1409 ; G 1507 +U 5130 ; WX 905 ; N uni140A ; G 1508 +U 5131 ; WX 905 ; N uni140B ; G 1509 +U 5132 ; WX 1018 ; N uni140C ; G 1510 +U 5133 ; WX 1009 ; N uni140D ; G 1511 +U 5134 ; WX 1018 ; N uni140E ; G 1512 +U 5135 ; WX 1009 ; N uni140F ; G 1513 +U 5136 ; WX 1018 ; N uni1410 ; G 1514 +U 5137 ; WX 1009 ; N uni1411 ; G 1515 +U 5138 ; WX 1149 ; N uni1412 ; G 1516 +U 5139 ; WX 1140 ; N uni1413 ; G 1517 +U 5140 ; WX 1149 ; N uni1414 ; G 1518 +U 5141 ; WX 1140 ; N uni1415 ; G 1519 +U 5142 ; WX 905 ; N uni1416 ; G 1520 +U 5143 ; WX 1149 ; N uni1417 ; G 1521 +U 5144 ; WX 1142 ; N uni1418 ; G 1522 +U 5145 ; WX 1149 ; N uni1419 ; G 1523 +U 5146 ; WX 1142 ; N uni141A ; G 1524 +U 5147 ; WX 905 ; N uni141B ; G 1525 +U 5149 ; WX 310 ; N uni141D ; G 1526 +U 5150 ; WX 529 ; N uni141E ; G 1527 +U 5151 ; WX 425 ; N uni141F ; G 1528 +U 5152 ; WX 425 ; N uni1420 ; G 1529 +U 5153 ; WX 395 ; N uni1421 ; G 1530 +U 5154 ; WX 395 ; N uni1422 ; G 1531 +U 5155 ; WX 395 ; N uni1423 ; G 1532 +U 5156 ; WX 395 ; N uni1424 ; G 1533 +U 5157 ; WX 564 ; N uni1425 ; G 1534 +U 5158 ; WX 470 ; N uni1426 ; G 1535 +U 5159 ; WX 310 ; N uni1427 ; G 1536 +U 5160 ; WX 395 ; N uni1428 ; G 1537 +U 5161 ; WX 395 ; N uni1429 ; G 1538 +U 5162 ; WX 395 ; N uni142A ; G 1539 +U 5163 ; WX 1213 ; N uni142B ; G 1540 +U 5164 ; WX 986 ; N uni142C ; G 1541 +U 5165 ; WX 1216 ; N uni142D ; G 1542 +U 5166 ; WX 1297 ; N uni142E ; G 1543 +U 5167 ; WX 774 ; N uni142F ; G 1544 +U 5168 ; WX 774 ; N uni1430 ; G 1545 +U 5169 ; WX 774 ; N uni1431 ; G 1546 +U 5170 ; WX 774 ; N uni1432 ; G 1547 +U 5171 ; WX 886 ; N uni1433 ; G 1548 +U 5172 ; WX 886 ; N uni1434 ; G 1549 +U 5173 ; WX 886 ; N uni1435 ; G 1550 +U 5175 ; WX 886 ; N uni1437 ; G 1551 +U 5176 ; WX 886 ; N uni1438 ; G 1552 +U 5177 ; WX 886 ; N uni1439 ; G 1553 +U 5178 ; WX 1018 ; N uni143A ; G 1554 +U 5179 ; WX 1009 ; N uni143B ; G 1555 +U 5180 ; WX 1018 ; N uni143C ; G 1556 +U 5181 ; WX 1009 ; N uni143D ; G 1557 +U 5182 ; WX 1018 ; N uni143E ; G 1558 +U 5183 ; WX 1009 ; N uni143F ; G 1559 +U 5184 ; WX 1149 ; N uni1440 ; G 1560 +U 5185 ; WX 1140 ; N uni1441 ; G 1561 +U 5186 ; WX 1149 ; N uni1442 ; G 1562 +U 5187 ; WX 1140 ; N uni1443 ; G 1563 +U 5188 ; WX 1149 ; N uni1444 ; G 1564 +U 5189 ; WX 1142 ; N uni1445 ; G 1565 +U 5190 ; WX 1149 ; N uni1446 ; G 1566 +U 5191 ; WX 1142 ; N uni1447 ; G 1567 +U 5192 ; WX 886 ; N uni1448 ; G 1568 +U 5193 ; WX 576 ; N uni1449 ; G 1569 +U 5194 ; WX 229 ; N uni144A ; G 1570 +U 5196 ; WX 812 ; N uni144C ; G 1571 +U 5197 ; WX 812 ; N uni144D ; G 1572 +U 5198 ; WX 812 ; N uni144E ; G 1573 +U 5199 ; WX 812 ; N uni144F ; G 1574 +U 5200 ; WX 815 ; N uni1450 ; G 1575 +U 5201 ; WX 815 ; N uni1451 ; G 1576 +U 5202 ; WX 815 ; N uni1452 ; G 1577 +U 5204 ; WX 815 ; N uni1454 ; G 1578 +U 5205 ; WX 815 ; N uni1455 ; G 1579 +U 5206 ; WX 815 ; N uni1456 ; G 1580 +U 5207 ; WX 1056 ; N uni1457 ; G 1581 +U 5208 ; WX 1048 ; N uni1458 ; G 1582 +U 5209 ; WX 1056 ; N uni1459 ; G 1583 +U 5210 ; WX 1048 ; N uni145A ; G 1584 +U 5211 ; WX 1056 ; N uni145B ; G 1585 +U 5212 ; WX 1048 ; N uni145C ; G 1586 +U 5213 ; WX 1060 ; N uni145D ; G 1587 +U 5214 ; WX 1054 ; N uni145E ; G 1588 +U 5215 ; WX 1060 ; N uni145F ; G 1589 +U 5216 ; WX 1054 ; N uni1460 ; G 1590 +U 5217 ; WX 1060 ; N uni1461 ; G 1591 +U 5218 ; WX 1052 ; N uni1462 ; G 1592 +U 5219 ; WX 1060 ; N uni1463 ; G 1593 +U 5220 ; WX 1052 ; N uni1464 ; G 1594 +U 5221 ; WX 1060 ; N uni1465 ; G 1595 +U 5222 ; WX 483 ; N uni1466 ; G 1596 +U 5223 ; WX 1005 ; N uni1467 ; G 1597 +U 5224 ; WX 1005 ; N uni1468 ; G 1598 +U 5225 ; WX 1023 ; N uni1469 ; G 1599 +U 5226 ; WX 1017 ; N uni146A ; G 1600 +U 5227 ; WX 743 ; N uni146B ; G 1601 +U 5228 ; WX 743 ; N uni146C ; G 1602 +U 5229 ; WX 743 ; N uni146D ; G 1603 +U 5230 ; WX 743 ; N uni146E ; G 1604 +U 5231 ; WX 743 ; N uni146F ; G 1605 +U 5232 ; WX 743 ; N uni1470 ; G 1606 +U 5233 ; WX 743 ; N uni1471 ; G 1607 +U 5234 ; WX 743 ; N uni1472 ; G 1608 +U 5235 ; WX 743 ; N uni1473 ; G 1609 +U 5236 ; WX 1029 ; N uni1474 ; G 1610 +U 5237 ; WX 975 ; N uni1475 ; G 1611 +U 5238 ; WX 980 ; N uni1476 ; G 1612 +U 5239 ; WX 975 ; N uni1477 ; G 1613 +U 5240 ; WX 980 ; N uni1478 ; G 1614 +U 5241 ; WX 975 ; N uni1479 ; G 1615 +U 5242 ; WX 1029 ; N uni147A ; G 1616 +U 5243 ; WX 975 ; N uni147B ; G 1617 +U 5244 ; WX 1029 ; N uni147C ; G 1618 +U 5245 ; WX 975 ; N uni147D ; G 1619 +U 5246 ; WX 980 ; N uni147E ; G 1620 +U 5247 ; WX 975 ; N uni147F ; G 1621 +U 5248 ; WX 980 ; N uni1480 ; G 1622 +U 5249 ; WX 975 ; N uni1481 ; G 1623 +U 5250 ; WX 980 ; N uni1482 ; G 1624 +U 5251 ; WX 501 ; N uni1483 ; G 1625 +U 5252 ; WX 501 ; N uni1484 ; G 1626 +U 5253 ; WX 938 ; N uni1485 ; G 1627 +U 5254 ; WX 938 ; N uni1486 ; G 1628 +U 5255 ; WX 938 ; N uni1487 ; G 1629 +U 5256 ; WX 938 ; N uni1488 ; G 1630 +U 5257 ; WX 743 ; N uni1489 ; G 1631 +U 5258 ; WX 743 ; N uni148A ; G 1632 +U 5259 ; WX 743 ; N uni148B ; G 1633 +U 5260 ; WX 743 ; N uni148C ; G 1634 +U 5261 ; WX 743 ; N uni148D ; G 1635 +U 5262 ; WX 743 ; N uni148E ; G 1636 +U 5263 ; WX 743 ; N uni148F ; G 1637 +U 5264 ; WX 743 ; N uni1490 ; G 1638 +U 5265 ; WX 743 ; N uni1491 ; G 1639 +U 5266 ; WX 1029 ; N uni1492 ; G 1640 +U 5267 ; WX 975 ; N uni1493 ; G 1641 +U 5268 ; WX 1029 ; N uni1494 ; G 1642 +U 5269 ; WX 975 ; N uni1495 ; G 1643 +U 5270 ; WX 1029 ; N uni1496 ; G 1644 +U 5271 ; WX 975 ; N uni1497 ; G 1645 +U 5272 ; WX 1029 ; N uni1498 ; G 1646 +U 5273 ; WX 975 ; N uni1499 ; G 1647 +U 5274 ; WX 1029 ; N uni149A ; G 1648 +U 5275 ; WX 975 ; N uni149B ; G 1649 +U 5276 ; WX 1029 ; N uni149C ; G 1650 +U 5277 ; WX 975 ; N uni149D ; G 1651 +U 5278 ; WX 1029 ; N uni149E ; G 1652 +U 5279 ; WX 975 ; N uni149F ; G 1653 +U 5280 ; WX 1029 ; N uni14A0 ; G 1654 +U 5281 ; WX 501 ; N uni14A1 ; G 1655 +U 5282 ; WX 501 ; N uni14A2 ; G 1656 +U 5283 ; WX 626 ; N uni14A3 ; G 1657 +U 5284 ; WX 626 ; N uni14A4 ; G 1658 +U 5285 ; WX 626 ; N uni14A5 ; G 1659 +U 5286 ; WX 626 ; N uni14A6 ; G 1660 +U 5287 ; WX 626 ; N uni14A7 ; G 1661 +U 5288 ; WX 626 ; N uni14A8 ; G 1662 +U 5289 ; WX 626 ; N uni14A9 ; G 1663 +U 5290 ; WX 626 ; N uni14AA ; G 1664 +U 5291 ; WX 626 ; N uni14AB ; G 1665 +U 5292 ; WX 881 ; N uni14AC ; G 1666 +U 5293 ; WX 854 ; N uni14AD ; G 1667 +U 5294 ; WX 863 ; N uni14AE ; G 1668 +U 5295 ; WX 874 ; N uni14AF ; G 1669 +U 5296 ; WX 863 ; N uni14B0 ; G 1670 +U 5297 ; WX 874 ; N uni14B1 ; G 1671 +U 5298 ; WX 881 ; N uni14B2 ; G 1672 +U 5299 ; WX 874 ; N uni14B3 ; G 1673 +U 5300 ; WX 881 ; N uni14B4 ; G 1674 +U 5301 ; WX 874 ; N uni14B5 ; G 1675 +U 5302 ; WX 863 ; N uni14B6 ; G 1676 +U 5303 ; WX 874 ; N uni14B7 ; G 1677 +U 5304 ; WX 863 ; N uni14B8 ; G 1678 +U 5305 ; WX 874 ; N uni14B9 ; G 1679 +U 5306 ; WX 863 ; N uni14BA ; G 1680 +U 5307 ; WX 436 ; N uni14BB ; G 1681 +U 5308 ; WX 548 ; N uni14BC ; G 1682 +U 5309 ; WX 436 ; N uni14BD ; G 1683 +U 5312 ; WX 988 ; N uni14C0 ; G 1684 +U 5313 ; WX 988 ; N uni14C1 ; G 1685 +U 5314 ; WX 988 ; N uni14C2 ; G 1686 +U 5315 ; WX 988 ; N uni14C3 ; G 1687 +U 5316 ; WX 931 ; N uni14C4 ; G 1688 +U 5317 ; WX 931 ; N uni14C5 ; G 1689 +U 5318 ; WX 931 ; N uni14C6 ; G 1690 +U 5319 ; WX 931 ; N uni14C7 ; G 1691 +U 5320 ; WX 931 ; N uni14C8 ; G 1692 +U 5321 ; WX 1238 ; N uni14C9 ; G 1693 +U 5322 ; WX 1247 ; N uni14CA ; G 1694 +U 5323 ; WX 1200 ; N uni14CB ; G 1695 +U 5324 ; WX 1228 ; N uni14CC ; G 1696 +U 5325 ; WX 1200 ; N uni14CD ; G 1697 +U 5326 ; WX 1228 ; N uni14CE ; G 1698 +U 5327 ; WX 931 ; N uni14CF ; G 1699 +U 5328 ; WX 660 ; N uni14D0 ; G 1700 +U 5329 ; WX 497 ; N uni14D1 ; G 1701 +U 5330 ; WX 660 ; N uni14D2 ; G 1702 +U 5331 ; WX 988 ; N uni14D3 ; G 1703 +U 5332 ; WX 988 ; N uni14D4 ; G 1704 +U 5333 ; WX 988 ; N uni14D5 ; G 1705 +U 5334 ; WX 988 ; N uni14D6 ; G 1706 +U 5335 ; WX 931 ; N uni14D7 ; G 1707 +U 5336 ; WX 931 ; N uni14D8 ; G 1708 +U 5337 ; WX 931 ; N uni14D9 ; G 1709 +U 5338 ; WX 931 ; N uni14DA ; G 1710 +U 5339 ; WX 931 ; N uni14DB ; G 1711 +U 5340 ; WX 1231 ; N uni14DC ; G 1712 +U 5341 ; WX 1247 ; N uni14DD ; G 1713 +U 5342 ; WX 1283 ; N uni14DE ; G 1714 +U 5343 ; WX 1228 ; N uni14DF ; G 1715 +U 5344 ; WX 1283 ; N uni14E0 ; G 1716 +U 5345 ; WX 1228 ; N uni14E1 ; G 1717 +U 5346 ; WX 1228 ; N uni14E2 ; G 1718 +U 5347 ; WX 1214 ; N uni14E3 ; G 1719 +U 5348 ; WX 1228 ; N uni14E4 ; G 1720 +U 5349 ; WX 1214 ; N uni14E5 ; G 1721 +U 5350 ; WX 1283 ; N uni14E6 ; G 1722 +U 5351 ; WX 1228 ; N uni14E7 ; G 1723 +U 5352 ; WX 1283 ; N uni14E8 ; G 1724 +U 5353 ; WX 1228 ; N uni14E9 ; G 1725 +U 5354 ; WX 660 ; N uni14EA ; G 1726 +U 5356 ; WX 886 ; N uni14EC ; G 1727 +U 5357 ; WX 730 ; N uni14ED ; G 1728 +U 5358 ; WX 730 ; N uni14EE ; G 1729 +U 5359 ; WX 730 ; N uni14EF ; G 1730 +U 5360 ; WX 730 ; N uni14F0 ; G 1731 +U 5361 ; WX 730 ; N uni14F1 ; G 1732 +U 5362 ; WX 730 ; N uni14F2 ; G 1733 +U 5363 ; WX 730 ; N uni14F3 ; G 1734 +U 5364 ; WX 730 ; N uni14F4 ; G 1735 +U 5365 ; WX 730 ; N uni14F5 ; G 1736 +U 5366 ; WX 998 ; N uni14F6 ; G 1737 +U 5367 ; WX 958 ; N uni14F7 ; G 1738 +U 5368 ; WX 967 ; N uni14F8 ; G 1739 +U 5369 ; WX 989 ; N uni14F9 ; G 1740 +U 5370 ; WX 967 ; N uni14FA ; G 1741 +U 5371 ; WX 989 ; N uni14FB ; G 1742 +U 5372 ; WX 998 ; N uni14FC ; G 1743 +U 5373 ; WX 958 ; N uni14FD ; G 1744 +U 5374 ; WX 998 ; N uni14FE ; G 1745 +U 5375 ; WX 958 ; N uni14FF ; G 1746 +U 5376 ; WX 967 ; N uni1500 ; G 1747 +U 5377 ; WX 989 ; N uni1501 ; G 1748 +U 5378 ; WX 967 ; N uni1502 ; G 1749 +U 5379 ; WX 989 ; N uni1503 ; G 1750 +U 5380 ; WX 967 ; N uni1504 ; G 1751 +U 5381 ; WX 493 ; N uni1505 ; G 1752 +U 5382 ; WX 460 ; N uni1506 ; G 1753 +U 5383 ; WX 493 ; N uni1507 ; G 1754 +U 5392 ; WX 923 ; N uni1510 ; G 1755 +U 5393 ; WX 923 ; N uni1511 ; G 1756 +U 5394 ; WX 923 ; N uni1512 ; G 1757 +U 5395 ; WX 1136 ; N uni1513 ; G 1758 +U 5396 ; WX 1136 ; N uni1514 ; G 1759 +U 5397 ; WX 1136 ; N uni1515 ; G 1760 +U 5398 ; WX 1136 ; N uni1516 ; G 1761 +U 5399 ; WX 1209 ; N uni1517 ; G 1762 +U 5400 ; WX 1202 ; N uni1518 ; G 1763 +U 5401 ; WX 1209 ; N uni1519 ; G 1764 +U 5402 ; WX 1202 ; N uni151A ; G 1765 +U 5403 ; WX 1209 ; N uni151B ; G 1766 +U 5404 ; WX 1202 ; N uni151C ; G 1767 +U 5405 ; WX 1431 ; N uni151D ; G 1768 +U 5406 ; WX 1420 ; N uni151E ; G 1769 +U 5407 ; WX 1431 ; N uni151F ; G 1770 +U 5408 ; WX 1420 ; N uni1520 ; G 1771 +U 5409 ; WX 1431 ; N uni1521 ; G 1772 +U 5410 ; WX 1420 ; N uni1522 ; G 1773 +U 5411 ; WX 1431 ; N uni1523 ; G 1774 +U 5412 ; WX 1420 ; N uni1524 ; G 1775 +U 5413 ; WX 746 ; N uni1525 ; G 1776 +U 5414 ; WX 776 ; N uni1526 ; G 1777 +U 5415 ; WX 776 ; N uni1527 ; G 1778 +U 5416 ; WX 776 ; N uni1528 ; G 1779 +U 5417 ; WX 776 ; N uni1529 ; G 1780 +U 5418 ; WX 776 ; N uni152A ; G 1781 +U 5419 ; WX 776 ; N uni152B ; G 1782 +U 5420 ; WX 776 ; N uni152C ; G 1783 +U 5421 ; WX 776 ; N uni152D ; G 1784 +U 5422 ; WX 776 ; N uni152E ; G 1785 +U 5423 ; WX 1003 ; N uni152F ; G 1786 +U 5424 ; WX 1003 ; N uni1530 ; G 1787 +U 5425 ; WX 1013 ; N uni1531 ; G 1788 +U 5426 ; WX 996 ; N uni1532 ; G 1789 +U 5427 ; WX 1013 ; N uni1533 ; G 1790 +U 5428 ; WX 996 ; N uni1534 ; G 1791 +U 5429 ; WX 1003 ; N uni1535 ; G 1792 +U 5430 ; WX 1003 ; N uni1536 ; G 1793 +U 5431 ; WX 1003 ; N uni1537 ; G 1794 +U 5432 ; WX 1003 ; N uni1538 ; G 1795 +U 5433 ; WX 1013 ; N uni1539 ; G 1796 +U 5434 ; WX 996 ; N uni153A ; G 1797 +U 5435 ; WX 1013 ; N uni153B ; G 1798 +U 5436 ; WX 996 ; N uni153C ; G 1799 +U 5437 ; WX 1013 ; N uni153D ; G 1800 +U 5438 ; WX 495 ; N uni153E ; G 1801 +U 5440 ; WX 395 ; N uni1540 ; G 1802 +U 5441 ; WX 510 ; N uni1541 ; G 1803 +U 5442 ; WX 1033 ; N uni1542 ; G 1804 +U 5443 ; WX 1033 ; N uni1543 ; G 1805 +U 5444 ; WX 976 ; N uni1544 ; G 1806 +U 5445 ; WX 976 ; N uni1545 ; G 1807 +U 5446 ; WX 976 ; N uni1546 ; G 1808 +U 5447 ; WX 976 ; N uni1547 ; G 1809 +U 5448 ; WX 733 ; N uni1548 ; G 1810 +U 5449 ; WX 733 ; N uni1549 ; G 1811 +U 5450 ; WX 733 ; N uni154A ; G 1812 +U 5451 ; WX 733 ; N uni154B ; G 1813 +U 5452 ; WX 733 ; N uni154C ; G 1814 +U 5453 ; WX 733 ; N uni154D ; G 1815 +U 5454 ; WX 1003 ; N uni154E ; G 1816 +U 5455 ; WX 959 ; N uni154F ; G 1817 +U 5456 ; WX 495 ; N uni1550 ; G 1818 +U 5458 ; WX 886 ; N uni1552 ; G 1819 +U 5459 ; WX 774 ; N uni1553 ; G 1820 +U 5460 ; WX 774 ; N uni1554 ; G 1821 +U 5461 ; WX 774 ; N uni1555 ; G 1822 +U 5462 ; WX 774 ; N uni1556 ; G 1823 +U 5463 ; WX 928 ; N uni1557 ; G 1824 +U 5464 ; WX 928 ; N uni1558 ; G 1825 +U 5465 ; WX 928 ; N uni1559 ; G 1826 +U 5466 ; WX 928 ; N uni155A ; G 1827 +U 5467 ; WX 1172 ; N uni155B ; G 1828 +U 5468 ; WX 1142 ; N uni155C ; G 1829 +U 5469 ; WX 602 ; N uni155D ; G 1830 +U 5470 ; WX 812 ; N uni155E ; G 1831 +U 5471 ; WX 812 ; N uni155F ; G 1832 +U 5472 ; WX 812 ; N uni1560 ; G 1833 +U 5473 ; WX 812 ; N uni1561 ; G 1834 +U 5474 ; WX 812 ; N uni1562 ; G 1835 +U 5475 ; WX 812 ; N uni1563 ; G 1836 +U 5476 ; WX 815 ; N uni1564 ; G 1837 +U 5477 ; WX 815 ; N uni1565 ; G 1838 +U 5478 ; WX 815 ; N uni1566 ; G 1839 +U 5479 ; WX 815 ; N uni1567 ; G 1840 +U 5480 ; WX 1060 ; N uni1568 ; G 1841 +U 5481 ; WX 1052 ; N uni1569 ; G 1842 +U 5482 ; WX 548 ; N uni156A ; G 1843 +U 5492 ; WX 977 ; N uni1574 ; G 1844 +U 5493 ; WX 977 ; N uni1575 ; G 1845 +U 5494 ; WX 977 ; N uni1576 ; G 1846 +U 5495 ; WX 977 ; N uni1577 ; G 1847 +U 5496 ; WX 977 ; N uni1578 ; G 1848 +U 5497 ; WX 977 ; N uni1579 ; G 1849 +U 5498 ; WX 977 ; N uni157A ; G 1850 +U 5499 ; WX 618 ; N uni157B ; G 1851 +U 5500 ; WX 837 ; N uni157C ; G 1852 +U 5501 ; WX 510 ; N uni157D ; G 1853 +U 5502 ; WX 1238 ; N uni157E ; G 1854 +U 5503 ; WX 1238 ; N uni157F ; G 1855 +U 5504 ; WX 1238 ; N uni1580 ; G 1856 +U 5505 ; WX 1238 ; N uni1581 ; G 1857 +U 5506 ; WX 1238 ; N uni1582 ; G 1858 +U 5507 ; WX 1238 ; N uni1583 ; G 1859 +U 5508 ; WX 1238 ; N uni1584 ; G 1860 +U 5509 ; WX 989 ; N uni1585 ; G 1861 +U 5514 ; WX 977 ; N uni158A ; G 1862 +U 5515 ; WX 977 ; N uni158B ; G 1863 +U 5516 ; WX 977 ; N uni158C ; G 1864 +U 5517 ; WX 977 ; N uni158D ; G 1865 +U 5518 ; WX 1591 ; N uni158E ; G 1866 +U 5519 ; WX 1591 ; N uni158F ; G 1867 +U 5520 ; WX 1591 ; N uni1590 ; G 1868 +U 5521 ; WX 1295 ; N uni1591 ; G 1869 +U 5522 ; WX 1295 ; N uni1592 ; G 1870 +U 5523 ; WX 1591 ; N uni1593 ; G 1871 +U 5524 ; WX 1591 ; N uni1594 ; G 1872 +U 5525 ; WX 848 ; N uni1595 ; G 1873 +U 5526 ; WX 1273 ; N uni1596 ; G 1874 +U 5536 ; WX 988 ; N uni15A0 ; G 1875 +U 5537 ; WX 988 ; N uni15A1 ; G 1876 +U 5538 ; WX 931 ; N uni15A2 ; G 1877 +U 5539 ; WX 931 ; N uni15A3 ; G 1878 +U 5540 ; WX 931 ; N uni15A4 ; G 1879 +U 5541 ; WX 931 ; N uni15A5 ; G 1880 +U 5542 ; WX 660 ; N uni15A6 ; G 1881 +U 5543 ; WX 776 ; N uni15A7 ; G 1882 +U 5544 ; WX 776 ; N uni15A8 ; G 1883 +U 5545 ; WX 776 ; N uni15A9 ; G 1884 +U 5546 ; WX 776 ; N uni15AA ; G 1885 +U 5547 ; WX 776 ; N uni15AB ; G 1886 +U 5548 ; WX 776 ; N uni15AC ; G 1887 +U 5549 ; WX 776 ; N uni15AD ; G 1888 +U 5550 ; WX 495 ; N uni15AE ; G 1889 +U 5551 ; WX 743 ; N uni15AF ; G 1890 +U 5598 ; WX 830 ; N uni15DE ; G 1891 +U 5601 ; WX 830 ; N uni15E1 ; G 1892 +U 5702 ; WX 496 ; N uni1646 ; G 1893 +U 5703 ; WX 496 ; N uni1647 ; G 1894 +U 5742 ; WX 413 ; N uni166E ; G 1895 +U 5743 ; WX 1238 ; N uni166F ; G 1896 +U 5744 ; WX 1591 ; N uni1670 ; G 1897 +U 5745 ; WX 2016 ; N uni1671 ; G 1898 +U 5746 ; WX 2016 ; N uni1672 ; G 1899 +U 5747 ; WX 1720 ; N uni1673 ; G 1900 +U 5748 ; WX 1678 ; N uni1674 ; G 1901 +U 5749 ; WX 2016 ; N uni1675 ; G 1902 +U 5750 ; WX 2016 ; N uni1676 ; G 1903 +U 7424 ; WX 652 ; N uni1D00 ; G 1904 +U 7425 ; WX 833 ; N uni1D01 ; G 1905 +U 7426 ; WX 1048 ; N uni1D02 ; G 1906 +U 7427 ; WX 608 ; N uni1D03 ; G 1907 +U 7428 ; WX 593 ; N uni1D04 ; G 1908 +U 7429 ; WX 676 ; N uni1D05 ; G 1909 +U 7430 ; WX 676 ; N uni1D06 ; G 1910 +U 7431 ; WX 559 ; N uni1D07 ; G 1911 +U 7432 ; WX 557 ; N uni1D08 ; G 1912 +U 7433 ; WX 343 ; N uni1D09 ; G 1913 +U 7434 ; WX 494 ; N uni1D0A ; G 1914 +U 7435 ; WX 665 ; N uni1D0B ; G 1915 +U 7436 ; WX 539 ; N uni1D0C ; G 1916 +U 7437 ; WX 817 ; N uni1D0D ; G 1917 +U 7438 ; WX 701 ; N uni1D0E ; G 1918 +U 7439 ; WX 687 ; N uni1D0F ; G 1919 +U 7440 ; WX 593 ; N uni1D10 ; G 1920 +U 7441 ; WX 660 ; N uni1D11 ; G 1921 +U 7442 ; WX 660 ; N uni1D12 ; G 1922 +U 7443 ; WX 660 ; N uni1D13 ; G 1923 +U 7444 ; WX 1094 ; N uni1D14 ; G 1924 +U 7446 ; WX 687 ; N uni1D16 ; G 1925 +U 7447 ; WX 687 ; N uni1D17 ; G 1926 +U 7448 ; WX 556 ; N uni1D18 ; G 1927 +U 7449 ; WX 642 ; N uni1D19 ; G 1928 +U 7450 ; WX 642 ; N uni1D1A ; G 1929 +U 7451 ; WX 580 ; N uni1D1B ; G 1930 +U 7452 ; WX 634 ; N uni1D1C ; G 1931 +U 7453 ; WX 737 ; N uni1D1D ; G 1932 +U 7454 ; WX 948 ; N uni1D1E ; G 1933 +U 7455 ; WX 695 ; N uni1D1F ; G 1934 +U 7456 ; WX 652 ; N uni1D20 ; G 1935 +U 7457 ; WX 924 ; N uni1D21 ; G 1936 +U 7458 ; WX 582 ; N uni1D22 ; G 1937 +U 7459 ; WX 646 ; N uni1D23 ; G 1938 +U 7462 ; WX 539 ; N uni1D26 ; G 1939 +U 7463 ; WX 652 ; N uni1D27 ; G 1940 +U 7464 ; WX 691 ; N uni1D28 ; G 1941 +U 7465 ; WX 556 ; N uni1D29 ; G 1942 +U 7466 ; WX 781 ; N uni1D2A ; G 1943 +U 7467 ; WX 732 ; N uni1D2B ; G 1944 +U 7468 ; WX 487 ; N uni1D2C ; G 1945 +U 7469 ; WX 683 ; N uni1D2D ; G 1946 +U 7470 ; WX 480 ; N uni1D2E ; G 1947 +U 7472 ; WX 523 ; N uni1D30 ; G 1948 +U 7473 ; WX 430 ; N uni1D31 ; G 1949 +U 7474 ; WX 430 ; N uni1D32 ; G 1950 +U 7475 ; WX 517 ; N uni1D33 ; G 1951 +U 7476 ; WX 527 ; N uni1D34 ; G 1952 +U 7477 ; WX 234 ; N uni1D35 ; G 1953 +U 7478 ; WX 234 ; N uni1D36 ; G 1954 +U 7479 ; WX 488 ; N uni1D37 ; G 1955 +U 7480 ; WX 401 ; N uni1D38 ; G 1956 +U 7481 ; WX 626 ; N uni1D39 ; G 1957 +U 7482 ; WX 527 ; N uni1D3A ; G 1958 +U 7483 ; WX 527 ; N uni1D3B ; G 1959 +U 7484 ; WX 535 ; N uni1D3C ; G 1960 +U 7485 ; WX 509 ; N uni1D3D ; G 1961 +U 7486 ; WX 461 ; N uni1D3E ; G 1962 +U 7487 ; WX 485 ; N uni1D3F ; G 1963 +U 7488 ; WX 430 ; N uni1D40 ; G 1964 +U 7489 ; WX 511 ; N uni1D41 ; G 1965 +U 7490 ; WX 695 ; N uni1D42 ; G 1966 +U 7491 ; WX 458 ; N uni1D43 ; G 1967 +U 7492 ; WX 458 ; N uni1D44 ; G 1968 +U 7493 ; WX 479 ; N uni1D45 ; G 1969 +U 7494 ; WX 712 ; N uni1D46 ; G 1970 +U 7495 ; WX 479 ; N uni1D47 ; G 1971 +U 7496 ; WX 479 ; N uni1D48 ; G 1972 +U 7497 ; WX 479 ; N uni1D49 ; G 1973 +U 7498 ; WX 479 ; N uni1D4A ; G 1974 +U 7499 ; WX 386 ; N uni1D4B ; G 1975 +U 7500 ; WX 386 ; N uni1D4C ; G 1976 +U 7501 ; WX 479 ; N uni1D4D ; G 1977 +U 7502 ; WX 219 ; N uni1D4E ; G 1978 +U 7503 ; WX 487 ; N uni1D4F ; G 1979 +U 7504 ; WX 664 ; N uni1D50 ; G 1980 +U 7505 ; WX 456 ; N uni1D51 ; G 1981 +U 7506 ; WX 488 ; N uni1D52 ; G 1982 +U 7507 ; WX 414 ; N uni1D53 ; G 1983 +U 7508 ; WX 488 ; N uni1D54 ; G 1984 +U 7509 ; WX 488 ; N uni1D55 ; G 1985 +U 7510 ; WX 479 ; N uni1D56 ; G 1986 +U 7511 ; WX 388 ; N uni1D57 ; G 1987 +U 7512 ; WX 456 ; N uni1D58 ; G 1988 +U 7513 ; WX 462 ; N uni1D59 ; G 1989 +U 7514 ; WX 664 ; N uni1D5A ; G 1990 +U 7515 ; WX 501 ; N uni1D5B ; G 1991 +U 7517 ; WX 451 ; N uni1D5D ; G 1992 +U 7518 ; WX 429 ; N uni1D5E ; G 1993 +U 7519 ; WX 433 ; N uni1D5F ; G 1994 +U 7520 ; WX 493 ; N uni1D60 ; G 1995 +U 7521 ; WX 406 ; N uni1D61 ; G 1996 +U 7522 ; WX 219 ; N uni1D62 ; G 1997 +U 7523 ; WX 315 ; N uni1D63 ; G 1998 +U 7524 ; WX 456 ; N uni1D64 ; G 1999 +U 7525 ; WX 501 ; N uni1D65 ; G 2000 +U 7526 ; WX 451 ; N uni1D66 ; G 2001 +U 7527 ; WX 429 ; N uni1D67 ; G 2002 +U 7528 ; WX 451 ; N uni1D68 ; G 2003 +U 7529 ; WX 493 ; N uni1D69 ; G 2004 +U 7530 ; WX 406 ; N uni1D6A ; G 2005 +U 7543 ; WX 716 ; N uni1D77 ; G 2006 +U 7544 ; WX 527 ; N uni1D78 ; G 2007 +U 7547 ; WX 545 ; N uni1D7B ; G 2008 +U 7549 ; WX 747 ; N uni1D7D ; G 2009 +U 7557 ; WX 514 ; N uni1D85 ; G 2010 +U 7579 ; WX 479 ; N uni1D9B ; G 2011 +U 7580 ; WX 414 ; N uni1D9C ; G 2012 +U 7581 ; WX 414 ; N uni1D9D ; G 2013 +U 7582 ; WX 488 ; N uni1D9E ; G 2014 +U 7583 ; WX 386 ; N uni1D9F ; G 2015 +U 7584 ; WX 377 ; N uni1DA0 ; G 2016 +U 7585 ; WX 348 ; N uni1DA1 ; G 2017 +U 7586 ; WX 479 ; N uni1DA2 ; G 2018 +U 7587 ; WX 456 ; N uni1DA3 ; G 2019 +U 7588 ; WX 347 ; N uni1DA4 ; G 2020 +U 7589 ; WX 281 ; N uni1DA5 ; G 2021 +U 7590 ; WX 347 ; N uni1DA6 ; G 2022 +U 7591 ; WX 347 ; N uni1DA7 ; G 2023 +U 7592 ; WX 431 ; N uni1DA8 ; G 2024 +U 7593 ; WX 326 ; N uni1DA9 ; G 2025 +U 7594 ; WX 330 ; N uni1DAA ; G 2026 +U 7595 ; WX 370 ; N uni1DAB ; G 2027 +U 7596 ; WX 664 ; N uni1DAC ; G 2028 +U 7597 ; WX 664 ; N uni1DAD ; G 2029 +U 7598 ; WX 562 ; N uni1DAE ; G 2030 +U 7599 ; WX 562 ; N uni1DAF ; G 2031 +U 7600 ; WX 448 ; N uni1DB0 ; G 2032 +U 7601 ; WX 488 ; N uni1DB1 ; G 2033 +U 7602 ; WX 542 ; N uni1DB2 ; G 2034 +U 7603 ; WX 422 ; N uni1DB3 ; G 2035 +U 7604 ; WX 396 ; N uni1DB4 ; G 2036 +U 7605 ; WX 388 ; N uni1DB5 ; G 2037 +U 7606 ; WX 583 ; N uni1DB6 ; G 2038 +U 7607 ; WX 494 ; N uni1DB7 ; G 2039 +U 7608 ; WX 399 ; N uni1DB8 ; G 2040 +U 7609 ; WX 451 ; N uni1DB9 ; G 2041 +U 7610 ; WX 501 ; N uni1DBA ; G 2042 +U 7611 ; WX 417 ; N uni1DBB ; G 2043 +U 7612 ; WX 523 ; N uni1DBC ; G 2044 +U 7613 ; WX 470 ; N uni1DBD ; G 2045 +U 7614 ; WX 455 ; N uni1DBE ; G 2046 +U 7615 ; WX 425 ; N uni1DBF ; G 2047 +U 7620 ; WX 0 ; N uni1DC4 ; G 2048 +U 7621 ; WX 0 ; N uni1DC5 ; G 2049 +U 7622 ; WX 0 ; N uni1DC6 ; G 2050 +U 7623 ; WX 0 ; N uni1DC7 ; G 2051 +U 7624 ; WX 0 ; N uni1DC8 ; G 2052 +U 7625 ; WX 0 ; N uni1DC9 ; G 2053 +U 7680 ; WX 774 ; N uni1E00 ; G 2054 +U 7681 ; WX 675 ; N uni1E01 ; G 2055 +U 7682 ; WX 762 ; N uni1E02 ; G 2056 +U 7683 ; WX 716 ; N uni1E03 ; G 2057 +U 7684 ; WX 762 ; N uni1E04 ; G 2058 +U 7685 ; WX 716 ; N uni1E05 ; G 2059 +U 7686 ; WX 762 ; N uni1E06 ; G 2060 +U 7687 ; WX 716 ; N uni1E07 ; G 2061 +U 7688 ; WX 734 ; N uni1E08 ; G 2062 +U 7689 ; WX 593 ; N uni1E09 ; G 2063 +U 7690 ; WX 830 ; N uni1E0A ; G 2064 +U 7691 ; WX 716 ; N uni1E0B ; G 2065 +U 7692 ; WX 830 ; N uni1E0C ; G 2066 +U 7693 ; WX 716 ; N uni1E0D ; G 2067 +U 7694 ; WX 830 ; N uni1E0E ; G 2068 +U 7695 ; WX 716 ; N uni1E0F ; G 2069 +U 7696 ; WX 830 ; N uni1E10 ; G 2070 +U 7697 ; WX 716 ; N uni1E11 ; G 2071 +U 7698 ; WX 830 ; N uni1E12 ; G 2072 +U 7699 ; WX 716 ; N uni1E13 ; G 2073 +U 7700 ; WX 683 ; N uni1E14 ; G 2074 +U 7701 ; WX 678 ; N uni1E15 ; G 2075 +U 7702 ; WX 683 ; N uni1E16 ; G 2076 +U 7703 ; WX 678 ; N uni1E17 ; G 2077 +U 7704 ; WX 683 ; N uni1E18 ; G 2078 +U 7705 ; WX 678 ; N uni1E19 ; G 2079 +U 7706 ; WX 683 ; N uni1E1A ; G 2080 +U 7707 ; WX 678 ; N uni1E1B ; G 2081 +U 7708 ; WX 683 ; N uni1E1C ; G 2082 +U 7709 ; WX 678 ; N uni1E1D ; G 2083 +U 7710 ; WX 683 ; N uni1E1E ; G 2084 +U 7711 ; WX 435 ; N uni1E1F ; G 2085 +U 7712 ; WX 821 ; N uni1E20 ; G 2086 +U 7713 ; WX 716 ; N uni1E21 ; G 2087 +U 7714 ; WX 837 ; N uni1E22 ; G 2088 +U 7715 ; WX 712 ; N uni1E23 ; G 2089 +U 7716 ; WX 837 ; N uni1E24 ; G 2090 +U 7717 ; WX 712 ; N uni1E25 ; G 2091 +U 7718 ; WX 837 ; N uni1E26 ; G 2092 +U 7719 ; WX 712 ; N uni1E27 ; G 2093 +U 7720 ; WX 837 ; N uni1E28 ; G 2094 +U 7721 ; WX 712 ; N uni1E29 ; G 2095 +U 7722 ; WX 837 ; N uni1E2A ; G 2096 +U 7723 ; WX 712 ; N uni1E2B ; G 2097 +U 7724 ; WX 372 ; N uni1E2C ; G 2098 +U 7725 ; WX 343 ; N uni1E2D ; G 2099 +U 7726 ; WX 372 ; N uni1E2E ; G 2100 +U 7727 ; WX 343 ; N uni1E2F ; G 2101 +U 7728 ; WX 775 ; N uni1E30 ; G 2102 +U 7729 ; WX 665 ; N uni1E31 ; G 2103 +U 7730 ; WX 775 ; N uni1E32 ; G 2104 +U 7731 ; WX 665 ; N uni1E33 ; G 2105 +U 7732 ; WX 775 ; N uni1E34 ; G 2106 +U 7733 ; WX 665 ; N uni1E35 ; G 2107 +U 7734 ; WX 637 ; N uni1E36 ; G 2108 +U 7735 ; WX 343 ; N uni1E37 ; G 2109 +U 7736 ; WX 637 ; N uni1E38 ; G 2110 +U 7737 ; WX 343 ; N uni1E39 ; G 2111 +U 7738 ; WX 637 ; N uni1E3A ; G 2112 +U 7739 ; WX 343 ; N uni1E3B ; G 2113 +U 7740 ; WX 637 ; N uni1E3C ; G 2114 +U 7741 ; WX 343 ; N uni1E3D ; G 2115 +U 7742 ; WX 995 ; N uni1E3E ; G 2116 +U 7743 ; WX 1042 ; N uni1E3F ; G 2117 +U 7744 ; WX 995 ; N uni1E40 ; G 2118 +U 7745 ; WX 1042 ; N uni1E41 ; G 2119 +U 7746 ; WX 995 ; N uni1E42 ; G 2120 +U 7747 ; WX 1042 ; N uni1E43 ; G 2121 +U 7748 ; WX 837 ; N uni1E44 ; G 2122 +U 7749 ; WX 712 ; N uni1E45 ; G 2123 +U 7750 ; WX 837 ; N uni1E46 ; G 2124 +U 7751 ; WX 712 ; N uni1E47 ; G 2125 +U 7752 ; WX 837 ; N uni1E48 ; G 2126 +U 7753 ; WX 712 ; N uni1E49 ; G 2127 +U 7754 ; WX 837 ; N uni1E4A ; G 2128 +U 7755 ; WX 712 ; N uni1E4B ; G 2129 +U 7756 ; WX 850 ; N uni1E4C ; G 2130 +U 7757 ; WX 687 ; N uni1E4D ; G 2131 +U 7758 ; WX 850 ; N uni1E4E ; G 2132 +U 7759 ; WX 687 ; N uni1E4F ; G 2133 +U 7760 ; WX 850 ; N uni1E50 ; G 2134 +U 7761 ; WX 687 ; N uni1E51 ; G 2135 +U 7762 ; WX 850 ; N uni1E52 ; G 2136 +U 7763 ; WX 687 ; N uni1E53 ; G 2137 +U 7764 ; WX 733 ; N uni1E54 ; G 2138 +U 7765 ; WX 716 ; N uni1E55 ; G 2139 +U 7766 ; WX 733 ; N uni1E56 ; G 2140 +U 7767 ; WX 716 ; N uni1E57 ; G 2141 +U 7768 ; WX 770 ; N uni1E58 ; G 2142 +U 7769 ; WX 493 ; N uni1E59 ; G 2143 +U 7770 ; WX 770 ; N uni1E5A ; G 2144 +U 7771 ; WX 493 ; N uni1E5B ; G 2145 +U 7772 ; WX 770 ; N uni1E5C ; G 2146 +U 7773 ; WX 493 ; N uni1E5D ; G 2147 +U 7774 ; WX 770 ; N uni1E5E ; G 2148 +U 7775 ; WX 493 ; N uni1E5F ; G 2149 +U 7776 ; WX 720 ; N uni1E60 ; G 2150 +U 7777 ; WX 595 ; N uni1E61 ; G 2151 +U 7778 ; WX 720 ; N uni1E62 ; G 2152 +U 7779 ; WX 595 ; N uni1E63 ; G 2153 +U 7780 ; WX 720 ; N uni1E64 ; G 2154 +U 7781 ; WX 595 ; N uni1E65 ; G 2155 +U 7782 ; WX 720 ; N uni1E66 ; G 2156 +U 7783 ; WX 595 ; N uni1E67 ; G 2157 +U 7784 ; WX 720 ; N uni1E68 ; G 2158 +U 7785 ; WX 595 ; N uni1E69 ; G 2159 +U 7786 ; WX 682 ; N uni1E6A ; G 2160 +U 7787 ; WX 478 ; N uni1E6B ; G 2161 +U 7788 ; WX 682 ; N uni1E6C ; G 2162 +U 7789 ; WX 478 ; N uni1E6D ; G 2163 +U 7790 ; WX 682 ; N uni1E6E ; G 2164 +U 7791 ; WX 478 ; N uni1E6F ; G 2165 +U 7792 ; WX 682 ; N uni1E70 ; G 2166 +U 7793 ; WX 478 ; N uni1E71 ; G 2167 +U 7794 ; WX 812 ; N uni1E72 ; G 2168 +U 7795 ; WX 712 ; N uni1E73 ; G 2169 +U 7796 ; WX 812 ; N uni1E74 ; G 2170 +U 7797 ; WX 712 ; N uni1E75 ; G 2171 +U 7798 ; WX 812 ; N uni1E76 ; G 2172 +U 7799 ; WX 712 ; N uni1E77 ; G 2173 +U 7800 ; WX 812 ; N uni1E78 ; G 2174 +U 7801 ; WX 712 ; N uni1E79 ; G 2175 +U 7802 ; WX 812 ; N uni1E7A ; G 2176 +U 7803 ; WX 712 ; N uni1E7B ; G 2177 +U 7804 ; WX 774 ; N uni1E7C ; G 2178 +U 7805 ; WX 652 ; N uni1E7D ; G 2179 +U 7806 ; WX 774 ; N uni1E7E ; G 2180 +U 7807 ; WX 652 ; N uni1E7F ; G 2181 +U 7808 ; WX 1103 ; N Wgrave ; G 2182 +U 7809 ; WX 924 ; N wgrave ; G 2183 +U 7810 ; WX 1103 ; N Wacute ; G 2184 +U 7811 ; WX 924 ; N wacute ; G 2185 +U 7812 ; WX 1103 ; N Wdieresis ; G 2186 +U 7813 ; WX 924 ; N wdieresis ; G 2187 +U 7814 ; WX 1103 ; N uni1E86 ; G 2188 +U 7815 ; WX 924 ; N uni1E87 ; G 2189 +U 7816 ; WX 1103 ; N uni1E88 ; G 2190 +U 7817 ; WX 924 ; N uni1E89 ; G 2191 +U 7818 ; WX 771 ; N uni1E8A ; G 2192 +U 7819 ; WX 645 ; N uni1E8B ; G 2193 +U 7820 ; WX 771 ; N uni1E8C ; G 2194 +U 7821 ; WX 645 ; N uni1E8D ; G 2195 +U 7822 ; WX 724 ; N uni1E8E ; G 2196 +U 7823 ; WX 652 ; N uni1E8F ; G 2197 +U 7824 ; WX 725 ; N uni1E90 ; G 2198 +U 7825 ; WX 582 ; N uni1E91 ; G 2199 +U 7826 ; WX 725 ; N uni1E92 ; G 2200 +U 7827 ; WX 582 ; N uni1E93 ; G 2201 +U 7828 ; WX 725 ; N uni1E94 ; G 2202 +U 7829 ; WX 582 ; N uni1E95 ; G 2203 +U 7830 ; WX 712 ; N uni1E96 ; G 2204 +U 7831 ; WX 478 ; N uni1E97 ; G 2205 +U 7832 ; WX 924 ; N uni1E98 ; G 2206 +U 7833 ; WX 652 ; N uni1E99 ; G 2207 +U 7834 ; WX 675 ; N uni1E9A ; G 2208 +U 7835 ; WX 435 ; N uni1E9B ; G 2209 +U 7836 ; WX 435 ; N uni1E9C ; G 2210 +U 7837 ; WX 435 ; N uni1E9D ; G 2211 +U 7838 ; WX 896 ; N uni1E9E ; G 2212 +U 7839 ; WX 687 ; N uni1E9F ; G 2213 +U 7840 ; WX 774 ; N uni1EA0 ; G 2214 +U 7841 ; WX 675 ; N uni1EA1 ; G 2215 +U 7842 ; WX 774 ; N uni1EA2 ; G 2216 +U 7843 ; WX 675 ; N uni1EA3 ; G 2217 +U 7844 ; WX 774 ; N uni1EA4 ; G 2218 +U 7845 ; WX 675 ; N uni1EA5 ; G 2219 +U 7846 ; WX 774 ; N uni1EA6 ; G 2220 +U 7847 ; WX 675 ; N uni1EA7 ; G 2221 +U 7848 ; WX 774 ; N uni1EA8 ; G 2222 +U 7849 ; WX 675 ; N uni1EA9 ; G 2223 +U 7850 ; WX 774 ; N uni1EAA ; G 2224 +U 7851 ; WX 675 ; N uni1EAB ; G 2225 +U 7852 ; WX 774 ; N uni1EAC ; G 2226 +U 7853 ; WX 675 ; N uni1EAD ; G 2227 +U 7854 ; WX 774 ; N uni1EAE ; G 2228 +U 7855 ; WX 675 ; N uni1EAF ; G 2229 +U 7856 ; WX 774 ; N uni1EB0 ; G 2230 +U 7857 ; WX 675 ; N uni1EB1 ; G 2231 +U 7858 ; WX 774 ; N uni1EB2 ; G 2232 +U 7859 ; WX 675 ; N uni1EB3 ; G 2233 +U 7860 ; WX 774 ; N uni1EB4 ; G 2234 +U 7861 ; WX 675 ; N uni1EB5 ; G 2235 +U 7862 ; WX 774 ; N uni1EB6 ; G 2236 +U 7863 ; WX 675 ; N uni1EB7 ; G 2237 +U 7864 ; WX 683 ; N uni1EB8 ; G 2238 +U 7865 ; WX 678 ; N uni1EB9 ; G 2239 +U 7866 ; WX 683 ; N uni1EBA ; G 2240 +U 7867 ; WX 678 ; N uni1EBB ; G 2241 +U 7868 ; WX 683 ; N uni1EBC ; G 2242 +U 7869 ; WX 678 ; N uni1EBD ; G 2243 +U 7870 ; WX 683 ; N uni1EBE ; G 2244 +U 7871 ; WX 678 ; N uni1EBF ; G 2245 +U 7872 ; WX 683 ; N uni1EC0 ; G 2246 +U 7873 ; WX 678 ; N uni1EC1 ; G 2247 +U 7874 ; WX 683 ; N uni1EC2 ; G 2248 +U 7875 ; WX 678 ; N uni1EC3 ; G 2249 +U 7876 ; WX 683 ; N uni1EC4 ; G 2250 +U 7877 ; WX 678 ; N uni1EC5 ; G 2251 +U 7878 ; WX 683 ; N uni1EC6 ; G 2252 +U 7879 ; WX 678 ; N uni1EC7 ; G 2253 +U 7880 ; WX 372 ; N uni1EC8 ; G 2254 +U 7881 ; WX 343 ; N uni1EC9 ; G 2255 +U 7882 ; WX 372 ; N uni1ECA ; G 2256 +U 7883 ; WX 343 ; N uni1ECB ; G 2257 +U 7884 ; WX 850 ; N uni1ECC ; G 2258 +U 7885 ; WX 687 ; N uni1ECD ; G 2259 +U 7886 ; WX 850 ; N uni1ECE ; G 2260 +U 7887 ; WX 687 ; N uni1ECF ; G 2261 +U 7888 ; WX 850 ; N uni1ED0 ; G 2262 +U 7889 ; WX 687 ; N uni1ED1 ; G 2263 +U 7890 ; WX 850 ; N uni1ED2 ; G 2264 +U 7891 ; WX 687 ; N uni1ED3 ; G 2265 +U 7892 ; WX 850 ; N uni1ED4 ; G 2266 +U 7893 ; WX 687 ; N uni1ED5 ; G 2267 +U 7894 ; WX 850 ; N uni1ED6 ; G 2268 +U 7895 ; WX 687 ; N uni1ED7 ; G 2269 +U 7896 ; WX 850 ; N uni1ED8 ; G 2270 +U 7897 ; WX 687 ; N uni1ED9 ; G 2271 +U 7898 ; WX 850 ; N uni1EDA ; G 2272 +U 7899 ; WX 687 ; N uni1EDB ; G 2273 +U 7900 ; WX 850 ; N uni1EDC ; G 2274 +U 7901 ; WX 687 ; N uni1EDD ; G 2275 +U 7902 ; WX 850 ; N uni1EDE ; G 2276 +U 7903 ; WX 687 ; N uni1EDF ; G 2277 +U 7904 ; WX 850 ; N uni1EE0 ; G 2278 +U 7905 ; WX 687 ; N uni1EE1 ; G 2279 +U 7906 ; WX 850 ; N uni1EE2 ; G 2280 +U 7907 ; WX 687 ; N uni1EE3 ; G 2281 +U 7908 ; WX 812 ; N uni1EE4 ; G 2282 +U 7909 ; WX 712 ; N uni1EE5 ; G 2283 +U 7910 ; WX 812 ; N uni1EE6 ; G 2284 +U 7911 ; WX 712 ; N uni1EE7 ; G 2285 +U 7912 ; WX 812 ; N uni1EE8 ; G 2286 +U 7913 ; WX 712 ; N uni1EE9 ; G 2287 +U 7914 ; WX 812 ; N uni1EEA ; G 2288 +U 7915 ; WX 712 ; N uni1EEB ; G 2289 +U 7916 ; WX 812 ; N uni1EEC ; G 2290 +U 7917 ; WX 712 ; N uni1EED ; G 2291 +U 7918 ; WX 812 ; N uni1EEE ; G 2292 +U 7919 ; WX 712 ; N uni1EEF ; G 2293 +U 7920 ; WX 812 ; N uni1EF0 ; G 2294 +U 7921 ; WX 712 ; N uni1EF1 ; G 2295 +U 7922 ; WX 724 ; N Ygrave ; G 2296 +U 7923 ; WX 652 ; N ygrave ; G 2297 +U 7924 ; WX 724 ; N uni1EF4 ; G 2298 +U 7925 ; WX 652 ; N uni1EF5 ; G 2299 +U 7926 ; WX 724 ; N uni1EF6 ; G 2300 +U 7927 ; WX 652 ; N uni1EF7 ; G 2301 +U 7928 ; WX 724 ; N uni1EF8 ; G 2302 +U 7929 ; WX 652 ; N uni1EF9 ; G 2303 +U 7930 ; WX 953 ; N uni1EFA ; G 2304 +U 7931 ; WX 644 ; N uni1EFB ; G 2305 +U 7936 ; WX 687 ; N uni1F00 ; G 2306 +U 7937 ; WX 687 ; N uni1F01 ; G 2307 +U 7938 ; WX 687 ; N uni1F02 ; G 2308 +U 7939 ; WX 687 ; N uni1F03 ; G 2309 +U 7940 ; WX 687 ; N uni1F04 ; G 2310 +U 7941 ; WX 687 ; N uni1F05 ; G 2311 +U 7942 ; WX 687 ; N uni1F06 ; G 2312 +U 7943 ; WX 687 ; N uni1F07 ; G 2313 +U 7944 ; WX 774 ; N uni1F08 ; G 2314 +U 7945 ; WX 774 ; N uni1F09 ; G 2315 +U 7946 ; WX 1041 ; N uni1F0A ; G 2316 +U 7947 ; WX 1043 ; N uni1F0B ; G 2317 +U 7948 ; WX 935 ; N uni1F0C ; G 2318 +U 7949 ; WX 963 ; N uni1F0D ; G 2319 +U 7950 ; WX 835 ; N uni1F0E ; G 2320 +U 7951 ; WX 859 ; N uni1F0F ; G 2321 +U 7952 ; WX 557 ; N uni1F10 ; G 2322 +U 7953 ; WX 557 ; N uni1F11 ; G 2323 +U 7954 ; WX 557 ; N uni1F12 ; G 2324 +U 7955 ; WX 557 ; N uni1F13 ; G 2325 +U 7956 ; WX 557 ; N uni1F14 ; G 2326 +U 7957 ; WX 557 ; N uni1F15 ; G 2327 +U 7960 ; WX 792 ; N uni1F18 ; G 2328 +U 7961 ; WX 794 ; N uni1F19 ; G 2329 +U 7962 ; WX 1100 ; N uni1F1A ; G 2330 +U 7963 ; WX 1096 ; N uni1F1B ; G 2331 +U 7964 ; WX 1023 ; N uni1F1C ; G 2332 +U 7965 ; WX 1052 ; N uni1F1D ; G 2333 +U 7968 ; WX 712 ; N uni1F20 ; G 2334 +U 7969 ; WX 712 ; N uni1F21 ; G 2335 +U 7970 ; WX 712 ; N uni1F22 ; G 2336 +U 7971 ; WX 712 ; N uni1F23 ; G 2337 +U 7972 ; WX 712 ; N uni1F24 ; G 2338 +U 7973 ; WX 712 ; N uni1F25 ; G 2339 +U 7974 ; WX 712 ; N uni1F26 ; G 2340 +U 7975 ; WX 712 ; N uni1F27 ; G 2341 +U 7976 ; WX 945 ; N uni1F28 ; G 2342 +U 7977 ; WX 951 ; N uni1F29 ; G 2343 +U 7978 ; WX 1250 ; N uni1F2A ; G 2344 +U 7979 ; WX 1250 ; N uni1F2B ; G 2345 +U 7980 ; WX 1180 ; N uni1F2C ; G 2346 +U 7981 ; WX 1206 ; N uni1F2D ; G 2347 +U 7982 ; WX 1054 ; N uni1F2E ; G 2348 +U 7983 ; WX 1063 ; N uni1F2F ; G 2349 +U 7984 ; WX 390 ; N uni1F30 ; G 2350 +U 7985 ; WX 390 ; N uni1F31 ; G 2351 +U 7986 ; WX 390 ; N uni1F32 ; G 2352 +U 7987 ; WX 390 ; N uni1F33 ; G 2353 +U 7988 ; WX 390 ; N uni1F34 ; G 2354 +U 7989 ; WX 390 ; N uni1F35 ; G 2355 +U 7990 ; WX 390 ; N uni1F36 ; G 2356 +U 7991 ; WX 390 ; N uni1F37 ; G 2357 +U 7992 ; WX 483 ; N uni1F38 ; G 2358 +U 7993 ; WX 489 ; N uni1F39 ; G 2359 +U 7994 ; WX 777 ; N uni1F3A ; G 2360 +U 7995 ; WX 785 ; N uni1F3B ; G 2361 +U 7996 ; WX 712 ; N uni1F3C ; G 2362 +U 7997 ; WX 738 ; N uni1F3D ; G 2363 +U 7998 ; WX 604 ; N uni1F3E ; G 2364 +U 7999 ; WX 604 ; N uni1F3F ; G 2365 +U 8000 ; WX 687 ; N uni1F40 ; G 2366 +U 8001 ; WX 687 ; N uni1F41 ; G 2367 +U 8002 ; WX 687 ; N uni1F42 ; G 2368 +U 8003 ; WX 687 ; N uni1F43 ; G 2369 +U 8004 ; WX 687 ; N uni1F44 ; G 2370 +U 8005 ; WX 687 ; N uni1F45 ; G 2371 +U 8008 ; WX 892 ; N uni1F48 ; G 2372 +U 8009 ; WX 933 ; N uni1F49 ; G 2373 +U 8010 ; WX 1221 ; N uni1F4A ; G 2374 +U 8011 ; WX 1224 ; N uni1F4B ; G 2375 +U 8012 ; WX 1053 ; N uni1F4C ; G 2376 +U 8013 ; WX 1082 ; N uni1F4D ; G 2377 +U 8016 ; WX 675 ; N uni1F50 ; G 2378 +U 8017 ; WX 675 ; N uni1F51 ; G 2379 +U 8018 ; WX 675 ; N uni1F52 ; G 2380 +U 8019 ; WX 675 ; N uni1F53 ; G 2381 +U 8020 ; WX 675 ; N uni1F54 ; G 2382 +U 8021 ; WX 675 ; N uni1F55 ; G 2383 +U 8022 ; WX 675 ; N uni1F56 ; G 2384 +U 8023 ; WX 675 ; N uni1F57 ; G 2385 +U 8025 ; WX 930 ; N uni1F59 ; G 2386 +U 8027 ; WX 1184 ; N uni1F5B ; G 2387 +U 8029 ; WX 1199 ; N uni1F5D ; G 2388 +U 8031 ; WX 1049 ; N uni1F5F ; G 2389 +U 8032 ; WX 869 ; N uni1F60 ; G 2390 +U 8033 ; WX 869 ; N uni1F61 ; G 2391 +U 8034 ; WX 869 ; N uni1F62 ; G 2392 +U 8035 ; WX 869 ; N uni1F63 ; G 2393 +U 8036 ; WX 869 ; N uni1F64 ; G 2394 +U 8037 ; WX 869 ; N uni1F65 ; G 2395 +U 8038 ; WX 869 ; N uni1F66 ; G 2396 +U 8039 ; WX 869 ; N uni1F67 ; G 2397 +U 8040 ; WX 909 ; N uni1F68 ; G 2398 +U 8041 ; WX 958 ; N uni1F69 ; G 2399 +U 8042 ; WX 1246 ; N uni1F6A ; G 2400 +U 8043 ; WX 1251 ; N uni1F6B ; G 2401 +U 8044 ; WX 1076 ; N uni1F6C ; G 2402 +U 8045 ; WX 1105 ; N uni1F6D ; G 2403 +U 8046 ; WX 1028 ; N uni1F6E ; G 2404 +U 8047 ; WX 1076 ; N uni1F6F ; G 2405 +U 8048 ; WX 687 ; N uni1F70 ; G 2406 +U 8049 ; WX 687 ; N uni1F71 ; G 2407 +U 8050 ; WX 557 ; N uni1F72 ; G 2408 +U 8051 ; WX 557 ; N uni1F73 ; G 2409 +U 8052 ; WX 712 ; N uni1F74 ; G 2410 +U 8053 ; WX 712 ; N uni1F75 ; G 2411 +U 8054 ; WX 390 ; N uni1F76 ; G 2412 +U 8055 ; WX 390 ; N uni1F77 ; G 2413 +U 8056 ; WX 687 ; N uni1F78 ; G 2414 +U 8057 ; WX 687 ; N uni1F79 ; G 2415 +U 8058 ; WX 675 ; N uni1F7A ; G 2416 +U 8059 ; WX 675 ; N uni1F7B ; G 2417 +U 8060 ; WX 869 ; N uni1F7C ; G 2418 +U 8061 ; WX 869 ; N uni1F7D ; G 2419 +U 8064 ; WX 687 ; N uni1F80 ; G 2420 +U 8065 ; WX 687 ; N uni1F81 ; G 2421 +U 8066 ; WX 687 ; N uni1F82 ; G 2422 +U 8067 ; WX 687 ; N uni1F83 ; G 2423 +U 8068 ; WX 687 ; N uni1F84 ; G 2424 +U 8069 ; WX 687 ; N uni1F85 ; G 2425 +U 8070 ; WX 687 ; N uni1F86 ; G 2426 +U 8071 ; WX 687 ; N uni1F87 ; G 2427 +U 8072 ; WX 774 ; N uni1F88 ; G 2428 +U 8073 ; WX 774 ; N uni1F89 ; G 2429 +U 8074 ; WX 1041 ; N uni1F8A ; G 2430 +U 8075 ; WX 1043 ; N uni1F8B ; G 2431 +U 8076 ; WX 935 ; N uni1F8C ; G 2432 +U 8077 ; WX 963 ; N uni1F8D ; G 2433 +U 8078 ; WX 835 ; N uni1F8E ; G 2434 +U 8079 ; WX 859 ; N uni1F8F ; G 2435 +U 8080 ; WX 712 ; N uni1F90 ; G 2436 +U 8081 ; WX 712 ; N uni1F91 ; G 2437 +U 8082 ; WX 712 ; N uni1F92 ; G 2438 +U 8083 ; WX 712 ; N uni1F93 ; G 2439 +U 8084 ; WX 712 ; N uni1F94 ; G 2440 +U 8085 ; WX 712 ; N uni1F95 ; G 2441 +U 8086 ; WX 712 ; N uni1F96 ; G 2442 +U 8087 ; WX 712 ; N uni1F97 ; G 2443 +U 8088 ; WX 945 ; N uni1F98 ; G 2444 +U 8089 ; WX 951 ; N uni1F99 ; G 2445 +U 8090 ; WX 1250 ; N uni1F9A ; G 2446 +U 8091 ; WX 1250 ; N uni1F9B ; G 2447 +U 8092 ; WX 1180 ; N uni1F9C ; G 2448 +U 8093 ; WX 1206 ; N uni1F9D ; G 2449 +U 8094 ; WX 1054 ; N uni1F9E ; G 2450 +U 8095 ; WX 1063 ; N uni1F9F ; G 2451 +U 8096 ; WX 869 ; N uni1FA0 ; G 2452 +U 8097 ; WX 869 ; N uni1FA1 ; G 2453 +U 8098 ; WX 869 ; N uni1FA2 ; G 2454 +U 8099 ; WX 869 ; N uni1FA3 ; G 2455 +U 8100 ; WX 869 ; N uni1FA4 ; G 2456 +U 8101 ; WX 869 ; N uni1FA5 ; G 2457 +U 8102 ; WX 869 ; N uni1FA6 ; G 2458 +U 8103 ; WX 869 ; N uni1FA7 ; G 2459 +U 8104 ; WX 909 ; N uni1FA8 ; G 2460 +U 8105 ; WX 958 ; N uni1FA9 ; G 2461 +U 8106 ; WX 1246 ; N uni1FAA ; G 2462 +U 8107 ; WX 1251 ; N uni1FAB ; G 2463 +U 8108 ; WX 1076 ; N uni1FAC ; G 2464 +U 8109 ; WX 1105 ; N uni1FAD ; G 2465 +U 8110 ; WX 1028 ; N uni1FAE ; G 2466 +U 8111 ; WX 1076 ; N uni1FAF ; G 2467 +U 8112 ; WX 687 ; N uni1FB0 ; G 2468 +U 8113 ; WX 687 ; N uni1FB1 ; G 2469 +U 8114 ; WX 687 ; N uni1FB2 ; G 2470 +U 8115 ; WX 687 ; N uni1FB3 ; G 2471 +U 8116 ; WX 687 ; N uni1FB4 ; G 2472 +U 8118 ; WX 687 ; N uni1FB6 ; G 2473 +U 8119 ; WX 687 ; N uni1FB7 ; G 2474 +U 8120 ; WX 774 ; N uni1FB8 ; G 2475 +U 8121 ; WX 774 ; N uni1FB9 ; G 2476 +U 8122 ; WX 876 ; N uni1FBA ; G 2477 +U 8123 ; WX 797 ; N uni1FBB ; G 2478 +U 8124 ; WX 774 ; N uni1FBC ; G 2479 +U 8125 ; WX 500 ; N uni1FBD ; G 2480 +U 8126 ; WX 500 ; N uni1FBE ; G 2481 +U 8127 ; WX 500 ; N uni1FBF ; G 2482 +U 8128 ; WX 500 ; N uni1FC0 ; G 2483 +U 8129 ; WX 500 ; N uni1FC1 ; G 2484 +U 8130 ; WX 712 ; N uni1FC2 ; G 2485 +U 8131 ; WX 712 ; N uni1FC3 ; G 2486 +U 8132 ; WX 712 ; N uni1FC4 ; G 2487 +U 8134 ; WX 712 ; N uni1FC6 ; G 2488 +U 8135 ; WX 712 ; N uni1FC7 ; G 2489 +U 8136 ; WX 929 ; N uni1FC8 ; G 2490 +U 8137 ; WX 846 ; N uni1FC9 ; G 2491 +U 8138 ; WX 1080 ; N uni1FCA ; G 2492 +U 8139 ; WX 1009 ; N uni1FCB ; G 2493 +U 8140 ; WX 837 ; N uni1FCC ; G 2494 +U 8141 ; WX 500 ; N uni1FCD ; G 2495 +U 8142 ; WX 500 ; N uni1FCE ; G 2496 +U 8143 ; WX 500 ; N uni1FCF ; G 2497 +U 8144 ; WX 390 ; N uni1FD0 ; G 2498 +U 8145 ; WX 390 ; N uni1FD1 ; G 2499 +U 8146 ; WX 390 ; N uni1FD2 ; G 2500 +U 8147 ; WX 390 ; N uni1FD3 ; G 2501 +U 8150 ; WX 390 ; N uni1FD6 ; G 2502 +U 8151 ; WX 390 ; N uni1FD7 ; G 2503 +U 8152 ; WX 372 ; N uni1FD8 ; G 2504 +U 8153 ; WX 372 ; N uni1FD9 ; G 2505 +U 8154 ; WX 621 ; N uni1FDA ; G 2506 +U 8155 ; WX 563 ; N uni1FDB ; G 2507 +U 8157 ; WX 500 ; N uni1FDD ; G 2508 +U 8158 ; WX 500 ; N uni1FDE ; G 2509 +U 8159 ; WX 500 ; N uni1FDF ; G 2510 +U 8160 ; WX 675 ; N uni1FE0 ; G 2511 +U 8161 ; WX 675 ; N uni1FE1 ; G 2512 +U 8162 ; WX 675 ; N uni1FE2 ; G 2513 +U 8163 ; WX 675 ; N uni1FE3 ; G 2514 +U 8164 ; WX 716 ; N uni1FE4 ; G 2515 +U 8165 ; WX 716 ; N uni1FE5 ; G 2516 +U 8166 ; WX 675 ; N uni1FE6 ; G 2517 +U 8167 ; WX 675 ; N uni1FE7 ; G 2518 +U 8168 ; WX 724 ; N uni1FE8 ; G 2519 +U 8169 ; WX 724 ; N uni1FE9 ; G 2520 +U 8170 ; WX 1020 ; N uni1FEA ; G 2521 +U 8171 ; WX 980 ; N uni1FEB ; G 2522 +U 8172 ; WX 838 ; N uni1FEC ; G 2523 +U 8173 ; WX 500 ; N uni1FED ; G 2524 +U 8174 ; WX 500 ; N uni1FEE ; G 2525 +U 8175 ; WX 500 ; N uni1FEF ; G 2526 +U 8178 ; WX 869 ; N uni1FF2 ; G 2527 +U 8179 ; WX 869 ; N uni1FF3 ; G 2528 +U 8180 ; WX 869 ; N uni1FF4 ; G 2529 +U 8182 ; WX 869 ; N uni1FF6 ; G 2530 +U 8183 ; WX 869 ; N uni1FF7 ; G 2531 +U 8184 ; WX 1065 ; N uni1FF8 ; G 2532 +U 8185 ; WX 891 ; N uni1FF9 ; G 2533 +U 8186 ; WX 1084 ; N uni1FFA ; G 2534 +U 8187 ; WX 894 ; N uni1FFB ; G 2535 +U 8188 ; WX 850 ; N uni1FFC ; G 2536 +U 8189 ; WX 500 ; N uni1FFD ; G 2537 +U 8190 ; WX 500 ; N uni1FFE ; G 2538 +U 8192 ; WX 500 ; N uni2000 ; G 2539 +U 8193 ; WX 1000 ; N uni2001 ; G 2540 +U 8194 ; WX 500 ; N uni2002 ; G 2541 +U 8195 ; WX 1000 ; N uni2003 ; G 2542 +U 8196 ; WX 330 ; N uni2004 ; G 2543 +U 8197 ; WX 250 ; N uni2005 ; G 2544 +U 8198 ; WX 167 ; N uni2006 ; G 2545 +U 8199 ; WX 696 ; N uni2007 ; G 2546 +U 8200 ; WX 380 ; N uni2008 ; G 2547 +U 8201 ; WX 200 ; N uni2009 ; G 2548 +U 8202 ; WX 100 ; N uni200A ; G 2549 +U 8203 ; WX 0 ; N uni200B ; G 2550 +U 8204 ; WX 0 ; N uni200C ; G 2551 +U 8205 ; WX 0 ; N uni200D ; G 2552 +U 8206 ; WX 0 ; N uni200E ; G 2553 +U 8207 ; WX 0 ; N uni200F ; G 2554 +U 8208 ; WX 415 ; N uni2010 ; G 2555 +U 8209 ; WX 415 ; N uni2011 ; G 2556 +U 8210 ; WX 696 ; N figuredash ; G 2557 +U 8211 ; WX 500 ; N endash ; G 2558 +U 8212 ; WX 1000 ; N emdash ; G 2559 +U 8213 ; WX 1000 ; N uni2015 ; G 2560 +U 8214 ; WX 500 ; N uni2016 ; G 2561 +U 8215 ; WX 500 ; N underscoredbl ; G 2562 +U 8216 ; WX 380 ; N quoteleft ; G 2563 +U 8217 ; WX 380 ; N quoteright ; G 2564 +U 8218 ; WX 380 ; N quotesinglbase ; G 2565 +U 8219 ; WX 380 ; N quotereversed ; G 2566 +U 8220 ; WX 644 ; N quotedblleft ; G 2567 +U 8221 ; WX 644 ; N quotedblright ; G 2568 +U 8222 ; WX 644 ; N quotedblbase ; G 2569 +U 8223 ; WX 657 ; N uni201F ; G 2570 +U 8224 ; WX 500 ; N dagger ; G 2571 +U 8225 ; WX 500 ; N daggerdbl ; G 2572 +U 8226 ; WX 639 ; N bullet ; G 2573 +U 8227 ; WX 639 ; N uni2023 ; G 2574 +U 8228 ; WX 380 ; N onedotenleader ; G 2575 +U 8229 ; WX 685 ; N twodotenleader ; G 2576 +U 8230 ; WX 1000 ; N ellipsis ; G 2577 +U 8231 ; WX 348 ; N uni2027 ; G 2578 +U 8232 ; WX 0 ; N uni2028 ; G 2579 +U 8233 ; WX 0 ; N uni2029 ; G 2580 +U 8234 ; WX 0 ; N uni202A ; G 2581 +U 8235 ; WX 0 ; N uni202B ; G 2582 +U 8236 ; WX 0 ; N uni202C ; G 2583 +U 8237 ; WX 0 ; N uni202D ; G 2584 +U 8238 ; WX 0 ; N uni202E ; G 2585 +U 8239 ; WX 200 ; N uni202F ; G 2586 +U 8240 ; WX 1454 ; N perthousand ; G 2587 +U 8241 ; WX 1908 ; N uni2031 ; G 2588 +U 8242 ; WX 264 ; N minute ; G 2589 +U 8243 ; WX 447 ; N second ; G 2590 +U 8244 ; WX 630 ; N uni2034 ; G 2591 +U 8245 ; WX 264 ; N uni2035 ; G 2592 +U 8246 ; WX 447 ; N uni2036 ; G 2593 +U 8247 ; WX 630 ; N uni2037 ; G 2594 +U 8248 ; WX 733 ; N uni2038 ; G 2595 +U 8249 ; WX 412 ; N guilsinglleft ; G 2596 +U 8250 ; WX 412 ; N guilsinglright ; G 2597 +U 8251 ; WX 972 ; N uni203B ; G 2598 +U 8252 ; WX 627 ; N exclamdbl ; G 2599 +U 8253 ; WX 580 ; N uni203D ; G 2600 +U 8254 ; WX 500 ; N uni203E ; G 2601 +U 8255 ; WX 828 ; N uni203F ; G 2602 +U 8256 ; WX 828 ; N uni2040 ; G 2603 +U 8257 ; WX 329 ; N uni2041 ; G 2604 +U 8258 ; WX 1023 ; N uni2042 ; G 2605 +U 8259 ; WX 500 ; N uni2043 ; G 2606 +U 8260 ; WX 167 ; N fraction ; G 2607 +U 8261 ; WX 457 ; N uni2045 ; G 2608 +U 8262 ; WX 457 ; N uni2046 ; G 2609 +U 8263 ; WX 1030 ; N uni2047 ; G 2610 +U 8264 ; WX 829 ; N uni2048 ; G 2611 +U 8265 ; WX 829 ; N uni2049 ; G 2612 +U 8266 ; WX 513 ; N uni204A ; G 2613 +U 8267 ; WX 687 ; N uni204B ; G 2614 +U 8268 ; WX 500 ; N uni204C ; G 2615 +U 8269 ; WX 500 ; N uni204D ; G 2616 +U 8270 ; WX 523 ; N uni204E ; G 2617 +U 8271 ; WX 400 ; N uni204F ; G 2618 +U 8272 ; WX 828 ; N uni2050 ; G 2619 +U 8273 ; WX 523 ; N uni2051 ; G 2620 +U 8274 ; WX 556 ; N uni2052 ; G 2621 +U 8275 ; WX 838 ; N uni2053 ; G 2622 +U 8276 ; WX 828 ; N uni2054 ; G 2623 +U 8277 ; WX 838 ; N uni2055 ; G 2624 +U 8278 ; WX 684 ; N uni2056 ; G 2625 +U 8279 ; WX 813 ; N uni2057 ; G 2626 +U 8280 ; WX 838 ; N uni2058 ; G 2627 +U 8281 ; WX 838 ; N uni2059 ; G 2628 +U 8282 ; WX 380 ; N uni205A ; G 2629 +U 8283 ; WX 872 ; N uni205B ; G 2630 +U 8284 ; WX 838 ; N uni205C ; G 2631 +U 8285 ; WX 380 ; N uni205D ; G 2632 +U 8286 ; WX 380 ; N uni205E ; G 2633 +U 8287 ; WX 222 ; N uni205F ; G 2634 +U 8288 ; WX 0 ; N uni2060 ; G 2635 +U 8289 ; WX 0 ; N uni2061 ; G 2636 +U 8290 ; WX 0 ; N uni2062 ; G 2637 +U 8291 ; WX 0 ; N uni2063 ; G 2638 +U 8292 ; WX 0 ; N uni2064 ; G 2639 +U 8298 ; WX 0 ; N uni206A ; G 2640 +U 8299 ; WX 0 ; N uni206B ; G 2641 +U 8300 ; WX 0 ; N uni206C ; G 2642 +U 8301 ; WX 0 ; N uni206D ; G 2643 +U 8302 ; WX 0 ; N uni206E ; G 2644 +U 8303 ; WX 0 ; N uni206F ; G 2645 +U 8304 ; WX 438 ; N uni2070 ; G 2646 +U 8305 ; WX 219 ; N uni2071 ; G 2647 +U 8308 ; WX 438 ; N uni2074 ; G 2648 +U 8309 ; WX 438 ; N uni2075 ; G 2649 +U 8310 ; WX 438 ; N uni2076 ; G 2650 +U 8311 ; WX 438 ; N uni2077 ; G 2651 +U 8312 ; WX 438 ; N uni2078 ; G 2652 +U 8313 ; WX 438 ; N uni2079 ; G 2653 +U 8314 ; WX 528 ; N uni207A ; G 2654 +U 8315 ; WX 528 ; N uni207B ; G 2655 +U 8316 ; WX 528 ; N uni207C ; G 2656 +U 8317 ; WX 288 ; N uni207D ; G 2657 +U 8318 ; WX 288 ; N uni207E ; G 2658 +U 8319 ; WX 456 ; N uni207F ; G 2659 +U 8320 ; WX 438 ; N uni2080 ; G 2660 +U 8321 ; WX 438 ; N uni2081 ; G 2661 +U 8322 ; WX 438 ; N uni2082 ; G 2662 +U 8323 ; WX 438 ; N uni2083 ; G 2663 +U 8324 ; WX 438 ; N uni2084 ; G 2664 +U 8325 ; WX 438 ; N uni2085 ; G 2665 +U 8326 ; WX 438 ; N uni2086 ; G 2666 +U 8327 ; WX 438 ; N uni2087 ; G 2667 +U 8328 ; WX 438 ; N uni2088 ; G 2668 +U 8329 ; WX 438 ; N uni2089 ; G 2669 +U 8330 ; WX 528 ; N uni208A ; G 2670 +U 8331 ; WX 528 ; N uni208B ; G 2671 +U 8332 ; WX 528 ; N uni208C ; G 2672 +U 8333 ; WX 288 ; N uni208D ; G 2673 +U 8334 ; WX 288 ; N uni208E ; G 2674 +U 8336 ; WX 458 ; N uni2090 ; G 2675 +U 8337 ; WX 479 ; N uni2091 ; G 2676 +U 8338 ; WX 488 ; N uni2092 ; G 2677 +U 8339 ; WX 413 ; N uni2093 ; G 2678 +U 8340 ; WX 479 ; N uni2094 ; G 2679 +U 8341 ; WX 456 ; N uni2095 ; G 2680 +U 8342 ; WX 487 ; N uni2096 ; G 2681 +U 8343 ; WX 219 ; N uni2097 ; G 2682 +U 8344 ; WX 664 ; N uni2098 ; G 2683 +U 8345 ; WX 456 ; N uni2099 ; G 2684 +U 8346 ; WX 479 ; N uni209A ; G 2685 +U 8347 ; WX 381 ; N uni209B ; G 2686 +U 8348 ; WX 388 ; N uni209C ; G 2687 +U 8352 ; WX 929 ; N uni20A0 ; G 2688 +U 8353 ; WX 696 ; N colonmonetary ; G 2689 +U 8354 ; WX 696 ; N uni20A2 ; G 2690 +U 8355 ; WX 696 ; N franc ; G 2691 +U 8356 ; WX 696 ; N lira ; G 2692 +U 8357 ; WX 1042 ; N uni20A5 ; G 2693 +U 8358 ; WX 696 ; N uni20A6 ; G 2694 +U 8359 ; WX 1488 ; N peseta ; G 2695 +U 8360 ; WX 1205 ; N uni20A8 ; G 2696 +U 8361 ; WX 1103 ; N uni20A9 ; G 2697 +U 8362 ; WX 854 ; N uni20AA ; G 2698 +U 8363 ; WX 696 ; N dong ; G 2699 +U 8364 ; WX 696 ; N Euro ; G 2700 +U 8365 ; WX 696 ; N uni20AD ; G 2701 +U 8366 ; WX 696 ; N uni20AE ; G 2702 +U 8367 ; WX 1392 ; N uni20AF ; G 2703 +U 8368 ; WX 696 ; N uni20B0 ; G 2704 +U 8369 ; WX 696 ; N uni20B1 ; G 2705 +U 8370 ; WX 696 ; N uni20B2 ; G 2706 +U 8371 ; WX 696 ; N uni20B3 ; G 2707 +U 8372 ; WX 859 ; N uni20B4 ; G 2708 +U 8373 ; WX 696 ; N uni20B5 ; G 2709 +U 8376 ; WX 696 ; N uni20B8 ; G 2710 +U 8377 ; WX 696 ; N uni20B9 ; G 2711 +U 8378 ; WX 696 ; N uni20BA ; G 2712 +U 8381 ; WX 696 ; N uni20BD ; G 2713 +U 8400 ; WX 0 ; N uni20D0 ; G 2714 +U 8401 ; WX 0 ; N uni20D1 ; G 2715 +U 8406 ; WX 0 ; N uni20D6 ; G 2716 +U 8407 ; WX 0 ; N uni20D7 ; G 2717 +U 8411 ; WX 0 ; N uni20DB ; G 2718 +U 8412 ; WX 0 ; N uni20DC ; G 2719 +U 8417 ; WX 0 ; N uni20E1 ; G 2720 +U 8448 ; WX 1106 ; N uni2100 ; G 2721 +U 8449 ; WX 1106 ; N uni2101 ; G 2722 +U 8450 ; WX 734 ; N uni2102 ; G 2723 +U 8451 ; WX 1211 ; N uni2103 ; G 2724 +U 8452 ; WX 896 ; N uni2104 ; G 2725 +U 8453 ; WX 1114 ; N uni2105 ; G 2726 +U 8454 ; WX 1148 ; N uni2106 ; G 2727 +U 8455 ; WX 696 ; N uni2107 ; G 2728 +U 8456 ; WX 698 ; N uni2108 ; G 2729 +U 8457 ; WX 952 ; N uni2109 ; G 2730 +U 8459 ; WX 1073 ; N uni210B ; G 2731 +U 8460 ; WX 913 ; N uni210C ; G 2732 +U 8461 ; WX 888 ; N uni210D ; G 2733 +U 8462 ; WX 712 ; N uni210E ; G 2734 +U 8463 ; WX 712 ; N uni210F ; G 2735 +U 8464 ; WX 597 ; N uni2110 ; G 2736 +U 8465 ; WX 697 ; N Ifraktur ; G 2737 +U 8466 ; WX 856 ; N uni2112 ; G 2738 +U 8467 ; WX 472 ; N uni2113 ; G 2739 +U 8468 ; WX 974 ; N uni2114 ; G 2740 +U 8469 ; WX 837 ; N uni2115 ; G 2741 +U 8470 ; WX 1203 ; N uni2116 ; G 2742 +U 8471 ; WX 1000 ; N uni2117 ; G 2743 +U 8472 ; WX 697 ; N weierstrass ; G 2744 +U 8473 ; WX 750 ; N uni2119 ; G 2745 +U 8474 ; WX 850 ; N uni211A ; G 2746 +U 8475 ; WX 938 ; N uni211B ; G 2747 +U 8476 ; WX 814 ; N Rfraktur ; G 2748 +U 8477 ; WX 801 ; N uni211D ; G 2749 +U 8478 ; WX 896 ; N prescription ; G 2750 +U 8479 ; WX 710 ; N uni211F ; G 2751 +U 8480 ; WX 1020 ; N uni2120 ; G 2752 +U 8481 ; WX 1239 ; N uni2121 ; G 2753 +U 8482 ; WX 1000 ; N trademark ; G 2754 +U 8483 ; WX 834 ; N uni2123 ; G 2755 +U 8484 ; WX 754 ; N uni2124 ; G 2756 +U 8485 ; WX 622 ; N uni2125 ; G 2757 +U 8486 ; WX 850 ; N uni2126 ; G 2758 +U 8487 ; WX 769 ; N uni2127 ; G 2759 +U 8488 ; WX 763 ; N uni2128 ; G 2760 +U 8489 ; WX 303 ; N uni2129 ; G 2761 +U 8490 ; WX 775 ; N uni212A ; G 2762 +U 8491 ; WX 774 ; N uni212B ; G 2763 +U 8492 ; WX 928 ; N uni212C ; G 2764 +U 8493 ; WX 818 ; N uni212D ; G 2765 +U 8494 ; WX 854 ; N estimated ; G 2766 +U 8495 ; WX 636 ; N uni212F ; G 2767 +U 8496 ; WX 729 ; N uni2130 ; G 2768 +U 8497 ; WX 808 ; N uni2131 ; G 2769 +U 8498 ; WX 683 ; N uni2132 ; G 2770 +U 8499 ; WX 1184 ; N uni2133 ; G 2771 +U 8500 ; WX 465 ; N uni2134 ; G 2772 +U 8501 ; WX 794 ; N aleph ; G 2773 +U 8502 ; WX 731 ; N uni2136 ; G 2774 +U 8503 ; WX 494 ; N uni2137 ; G 2775 +U 8504 ; WX 684 ; N uni2138 ; G 2776 +U 8505 ; WX 380 ; N uni2139 ; G 2777 +U 8506 ; WX 945 ; N uni213A ; G 2778 +U 8507 ; WX 1370 ; N uni213B ; G 2779 +U 8508 ; WX 790 ; N uni213C ; G 2780 +U 8509 ; WX 737 ; N uni213D ; G 2781 +U 8510 ; WX 654 ; N uni213E ; G 2782 +U 8511 ; WX 863 ; N uni213F ; G 2783 +U 8512 ; WX 840 ; N uni2140 ; G 2784 +U 8513 ; WX 786 ; N uni2141 ; G 2785 +U 8514 ; WX 576 ; N uni2142 ; G 2786 +U 8515 ; WX 637 ; N uni2143 ; G 2787 +U 8516 ; WX 760 ; N uni2144 ; G 2788 +U 8517 ; WX 830 ; N uni2145 ; G 2789 +U 8518 ; WX 716 ; N uni2146 ; G 2790 +U 8519 ; WX 678 ; N uni2147 ; G 2791 +U 8520 ; WX 343 ; N uni2148 ; G 2792 +U 8521 ; WX 343 ; N uni2149 ; G 2793 +U 8523 ; WX 872 ; N uni214B ; G 2794 +U 8526 ; WX 547 ; N uni214E ; G 2795 +U 8528 ; WX 1035 ; N uni2150 ; G 2796 +U 8529 ; WX 1035 ; N uni2151 ; G 2797 +U 8530 ; WX 1483 ; N uni2152 ; G 2798 +U 8531 ; WX 1035 ; N onethird ; G 2799 +U 8532 ; WX 1035 ; N twothirds ; G 2800 +U 8533 ; WX 1035 ; N uni2155 ; G 2801 +U 8534 ; WX 1035 ; N uni2156 ; G 2802 +U 8535 ; WX 1035 ; N uni2157 ; G 2803 +U 8536 ; WX 1035 ; N uni2158 ; G 2804 +U 8537 ; WX 1035 ; N uni2159 ; G 2805 +U 8538 ; WX 1035 ; N uni215A ; G 2806 +U 8539 ; WX 1035 ; N oneeighth ; G 2807 +U 8540 ; WX 1035 ; N threeeighths ; G 2808 +U 8541 ; WX 1035 ; N fiveeighths ; G 2809 +U 8542 ; WX 1035 ; N seveneighths ; G 2810 +U 8543 ; WX 615 ; N uni215F ; G 2811 +U 8544 ; WX 372 ; N uni2160 ; G 2812 +U 8545 ; WX 659 ; N uni2161 ; G 2813 +U 8546 ; WX 945 ; N uni2162 ; G 2814 +U 8547 ; WX 1099 ; N uni2163 ; G 2815 +U 8548 ; WX 774 ; N uni2164 ; G 2816 +U 8549 ; WX 1099 ; N uni2165 ; G 2817 +U 8550 ; WX 1386 ; N uni2166 ; G 2818 +U 8551 ; WX 1672 ; N uni2167 ; G 2819 +U 8552 ; WX 1121 ; N uni2168 ; G 2820 +U 8553 ; WX 771 ; N uni2169 ; G 2821 +U 8554 ; WX 1120 ; N uni216A ; G 2822 +U 8555 ; WX 1407 ; N uni216B ; G 2823 +U 8556 ; WX 637 ; N uni216C ; G 2824 +U 8557 ; WX 734 ; N uni216D ; G 2825 +U 8558 ; WX 830 ; N uni216E ; G 2826 +U 8559 ; WX 995 ; N uni216F ; G 2827 +U 8560 ; WX 343 ; N uni2170 ; G 2828 +U 8561 ; WX 607 ; N uni2171 ; G 2829 +U 8562 ; WX 872 ; N uni2172 ; G 2830 +U 8563 ; WX 984 ; N uni2173 ; G 2831 +U 8564 ; WX 652 ; N uni2174 ; G 2832 +U 8565 ; WX 962 ; N uni2175 ; G 2833 +U 8566 ; WX 1227 ; N uni2176 ; G 2834 +U 8567 ; WX 1491 ; N uni2177 ; G 2835 +U 8568 ; WX 969 ; N uni2178 ; G 2836 +U 8569 ; WX 645 ; N uni2179 ; G 2837 +U 8570 ; WX 969 ; N uni217A ; G 2838 +U 8571 ; WX 1233 ; N uni217B ; G 2839 +U 8572 ; WX 343 ; N uni217C ; G 2840 +U 8573 ; WX 593 ; N uni217D ; G 2841 +U 8574 ; WX 716 ; N uni217E ; G 2842 +U 8575 ; WX 1042 ; N uni217F ; G 2843 +U 8576 ; WX 1289 ; N uni2180 ; G 2844 +U 8577 ; WX 830 ; N uni2181 ; G 2845 +U 8578 ; WX 1289 ; N uni2182 ; G 2846 +U 8579 ; WX 734 ; N uni2183 ; G 2847 +U 8580 ; WX 593 ; N uni2184 ; G 2848 +U 8581 ; WX 734 ; N uni2185 ; G 2849 +U 8585 ; WX 1035 ; N uni2189 ; G 2850 +U 8592 ; WX 838 ; N arrowleft ; G 2851 +U 8593 ; WX 838 ; N arrowup ; G 2852 +U 8594 ; WX 838 ; N arrowright ; G 2853 +U 8595 ; WX 838 ; N arrowdown ; G 2854 +U 8596 ; WX 838 ; N arrowboth ; G 2855 +U 8597 ; WX 838 ; N arrowupdn ; G 2856 +U 8598 ; WX 838 ; N uni2196 ; G 2857 +U 8599 ; WX 838 ; N uni2197 ; G 2858 +U 8600 ; WX 838 ; N uni2198 ; G 2859 +U 8601 ; WX 838 ; N uni2199 ; G 2860 +U 8602 ; WX 838 ; N uni219A ; G 2861 +U 8603 ; WX 838 ; N uni219B ; G 2862 +U 8604 ; WX 838 ; N uni219C ; G 2863 +U 8605 ; WX 838 ; N uni219D ; G 2864 +U 8606 ; WX 838 ; N uni219E ; G 2865 +U 8607 ; WX 838 ; N uni219F ; G 2866 +U 8608 ; WX 838 ; N uni21A0 ; G 2867 +U 8609 ; WX 838 ; N uni21A1 ; G 2868 +U 8610 ; WX 838 ; N uni21A2 ; G 2869 +U 8611 ; WX 838 ; N uni21A3 ; G 2870 +U 8612 ; WX 838 ; N uni21A4 ; G 2871 +U 8613 ; WX 838 ; N uni21A5 ; G 2872 +U 8614 ; WX 838 ; N uni21A6 ; G 2873 +U 8615 ; WX 838 ; N uni21A7 ; G 2874 +U 8616 ; WX 838 ; N arrowupdnbse ; G 2875 +U 8617 ; WX 838 ; N uni21A9 ; G 2876 +U 8618 ; WX 838 ; N uni21AA ; G 2877 +U 8619 ; WX 838 ; N uni21AB ; G 2878 +U 8620 ; WX 838 ; N uni21AC ; G 2879 +U 8621 ; WX 838 ; N uni21AD ; G 2880 +U 8622 ; WX 838 ; N uni21AE ; G 2881 +U 8623 ; WX 838 ; N uni21AF ; G 2882 +U 8624 ; WX 838 ; N uni21B0 ; G 2883 +U 8625 ; WX 838 ; N uni21B1 ; G 2884 +U 8626 ; WX 838 ; N uni21B2 ; G 2885 +U 8627 ; WX 838 ; N uni21B3 ; G 2886 +U 8628 ; WX 838 ; N uni21B4 ; G 2887 +U 8629 ; WX 838 ; N carriagereturn ; G 2888 +U 8630 ; WX 838 ; N uni21B6 ; G 2889 +U 8631 ; WX 838 ; N uni21B7 ; G 2890 +U 8632 ; WX 838 ; N uni21B8 ; G 2891 +U 8633 ; WX 838 ; N uni21B9 ; G 2892 +U 8634 ; WX 838 ; N uni21BA ; G 2893 +U 8635 ; WX 838 ; N uni21BB ; G 2894 +U 8636 ; WX 838 ; N uni21BC ; G 2895 +U 8637 ; WX 838 ; N uni21BD ; G 2896 +U 8638 ; WX 838 ; N uni21BE ; G 2897 +U 8639 ; WX 838 ; N uni21BF ; G 2898 +U 8640 ; WX 838 ; N uni21C0 ; G 2899 +U 8641 ; WX 838 ; N uni21C1 ; G 2900 +U 8642 ; WX 838 ; N uni21C2 ; G 2901 +U 8643 ; WX 838 ; N uni21C3 ; G 2902 +U 8644 ; WX 838 ; N uni21C4 ; G 2903 +U 8645 ; WX 838 ; N uni21C5 ; G 2904 +U 8646 ; WX 838 ; N uni21C6 ; G 2905 +U 8647 ; WX 838 ; N uni21C7 ; G 2906 +U 8648 ; WX 838 ; N uni21C8 ; G 2907 +U 8649 ; WX 838 ; N uni21C9 ; G 2908 +U 8650 ; WX 838 ; N uni21CA ; G 2909 +U 8651 ; WX 838 ; N uni21CB ; G 2910 +U 8652 ; WX 838 ; N uni21CC ; G 2911 +U 8653 ; WX 838 ; N uni21CD ; G 2912 +U 8654 ; WX 838 ; N uni21CE ; G 2913 +U 8655 ; WX 838 ; N uni21CF ; G 2914 +U 8656 ; WX 838 ; N arrowdblleft ; G 2915 +U 8657 ; WX 838 ; N arrowdblup ; G 2916 +U 8658 ; WX 838 ; N arrowdblright ; G 2917 +U 8659 ; WX 838 ; N arrowdbldown ; G 2918 +U 8660 ; WX 838 ; N arrowdblboth ; G 2919 +U 8661 ; WX 838 ; N uni21D5 ; G 2920 +U 8662 ; WX 838 ; N uni21D6 ; G 2921 +U 8663 ; WX 838 ; N uni21D7 ; G 2922 +U 8664 ; WX 838 ; N uni21D8 ; G 2923 +U 8665 ; WX 838 ; N uni21D9 ; G 2924 +U 8666 ; WX 838 ; N uni21DA ; G 2925 +U 8667 ; WX 838 ; N uni21DB ; G 2926 +U 8668 ; WX 838 ; N uni21DC ; G 2927 +U 8669 ; WX 838 ; N uni21DD ; G 2928 +U 8670 ; WX 838 ; N uni21DE ; G 2929 +U 8671 ; WX 838 ; N uni21DF ; G 2930 +U 8672 ; WX 838 ; N uni21E0 ; G 2931 +U 8673 ; WX 838 ; N uni21E1 ; G 2932 +U 8674 ; WX 838 ; N uni21E2 ; G 2933 +U 8675 ; WX 838 ; N uni21E3 ; G 2934 +U 8676 ; WX 838 ; N uni21E4 ; G 2935 +U 8677 ; WX 838 ; N uni21E5 ; G 2936 +U 8678 ; WX 838 ; N uni21E6 ; G 2937 +U 8679 ; WX 838 ; N uni21E7 ; G 2938 +U 8680 ; WX 838 ; N uni21E8 ; G 2939 +U 8681 ; WX 838 ; N uni21E9 ; G 2940 +U 8682 ; WX 838 ; N uni21EA ; G 2941 +U 8683 ; WX 838 ; N uni21EB ; G 2942 +U 8684 ; WX 838 ; N uni21EC ; G 2943 +U 8685 ; WX 838 ; N uni21ED ; G 2944 +U 8686 ; WX 838 ; N uni21EE ; G 2945 +U 8687 ; WX 838 ; N uni21EF ; G 2946 +U 8688 ; WX 838 ; N uni21F0 ; G 2947 +U 8689 ; WX 838 ; N uni21F1 ; G 2948 +U 8690 ; WX 838 ; N uni21F2 ; G 2949 +U 8691 ; WX 838 ; N uni21F3 ; G 2950 +U 8692 ; WX 838 ; N uni21F4 ; G 2951 +U 8693 ; WX 838 ; N uni21F5 ; G 2952 +U 8694 ; WX 838 ; N uni21F6 ; G 2953 +U 8695 ; WX 838 ; N uni21F7 ; G 2954 +U 8696 ; WX 838 ; N uni21F8 ; G 2955 +U 8697 ; WX 838 ; N uni21F9 ; G 2956 +U 8698 ; WX 838 ; N uni21FA ; G 2957 +U 8699 ; WX 838 ; N uni21FB ; G 2958 +U 8700 ; WX 838 ; N uni21FC ; G 2959 +U 8701 ; WX 838 ; N uni21FD ; G 2960 +U 8702 ; WX 838 ; N uni21FE ; G 2961 +U 8703 ; WX 838 ; N uni21FF ; G 2962 +U 8704 ; WX 774 ; N universal ; G 2963 +U 8705 ; WX 696 ; N uni2201 ; G 2964 +U 8706 ; WX 544 ; N partialdiff ; G 2965 +U 8707 ; WX 683 ; N existential ; G 2966 +U 8708 ; WX 683 ; N uni2204 ; G 2967 +U 8709 ; WX 856 ; N emptyset ; G 2968 +U 8710 ; WX 697 ; N increment ; G 2969 +U 8711 ; WX 697 ; N gradient ; G 2970 +U 8712 ; WX 896 ; N element ; G 2971 +U 8713 ; WX 896 ; N notelement ; G 2972 +U 8714 ; WX 750 ; N uni220A ; G 2973 +U 8715 ; WX 896 ; N suchthat ; G 2974 +U 8716 ; WX 896 ; N uni220C ; G 2975 +U 8717 ; WX 750 ; N uni220D ; G 2976 +U 8718 ; WX 636 ; N uni220E ; G 2977 +U 8719 ; WX 787 ; N product ; G 2978 +U 8720 ; WX 787 ; N uni2210 ; G 2979 +U 8721 ; WX 718 ; N summation ; G 2980 +U 8722 ; WX 838 ; N minus ; G 2981 +U 8723 ; WX 838 ; N uni2213 ; G 2982 +U 8724 ; WX 696 ; N uni2214 ; G 2983 +U 8725 ; WX 365 ; N uni2215 ; G 2984 +U 8726 ; WX 696 ; N uni2216 ; G 2985 +U 8727 ; WX 838 ; N asteriskmath ; G 2986 +U 8728 ; WX 626 ; N uni2218 ; G 2987 +U 8729 ; WX 380 ; N uni2219 ; G 2988 +U 8730 ; WX 667 ; N radical ; G 2989 +U 8731 ; WX 667 ; N uni221B ; G 2990 +U 8732 ; WX 667 ; N uni221C ; G 2991 +U 8733 ; WX 712 ; N proportional ; G 2992 +U 8734 ; WX 833 ; N infinity ; G 2993 +U 8735 ; WX 838 ; N orthogonal ; G 2994 +U 8736 ; WX 896 ; N angle ; G 2995 +U 8737 ; WX 896 ; N uni2221 ; G 2996 +U 8738 ; WX 838 ; N uni2222 ; G 2997 +U 8739 ; WX 500 ; N uni2223 ; G 2998 +U 8740 ; WX 500 ; N uni2224 ; G 2999 +U 8741 ; WX 500 ; N uni2225 ; G 3000 +U 8742 ; WX 500 ; N uni2226 ; G 3001 +U 8743 ; WX 812 ; N logicaland ; G 3002 +U 8744 ; WX 812 ; N logicalor ; G 3003 +U 8745 ; WX 812 ; N intersection ; G 3004 +U 8746 ; WX 812 ; N union ; G 3005 +U 8747 ; WX 610 ; N integral ; G 3006 +U 8748 ; WX 929 ; N uni222C ; G 3007 +U 8749 ; WX 1295 ; N uni222D ; G 3008 +U 8750 ; WX 563 ; N uni222E ; G 3009 +U 8751 ; WX 977 ; N uni222F ; G 3010 +U 8752 ; WX 1313 ; N uni2230 ; G 3011 +U 8753 ; WX 563 ; N uni2231 ; G 3012 +U 8754 ; WX 563 ; N uni2232 ; G 3013 +U 8755 ; WX 563 ; N uni2233 ; G 3014 +U 8756 ; WX 696 ; N therefore ; G 3015 +U 8757 ; WX 696 ; N uni2235 ; G 3016 +U 8758 ; WX 294 ; N uni2236 ; G 3017 +U 8759 ; WX 696 ; N uni2237 ; G 3018 +U 8760 ; WX 838 ; N uni2238 ; G 3019 +U 8761 ; WX 838 ; N uni2239 ; G 3020 +U 8762 ; WX 838 ; N uni223A ; G 3021 +U 8763 ; WX 838 ; N uni223B ; G 3022 +U 8764 ; WX 838 ; N similar ; G 3023 +U 8765 ; WX 838 ; N uni223D ; G 3024 +U 8766 ; WX 838 ; N uni223E ; G 3025 +U 8767 ; WX 838 ; N uni223F ; G 3026 +U 8768 ; WX 375 ; N uni2240 ; G 3027 +U 8769 ; WX 838 ; N uni2241 ; G 3028 +U 8770 ; WX 838 ; N uni2242 ; G 3029 +U 8771 ; WX 838 ; N uni2243 ; G 3030 +U 8772 ; WX 838 ; N uni2244 ; G 3031 +U 8773 ; WX 838 ; N congruent ; G 3032 +U 8774 ; WX 838 ; N uni2246 ; G 3033 +U 8775 ; WX 838 ; N uni2247 ; G 3034 +U 8776 ; WX 838 ; N approxequal ; G 3035 +U 8777 ; WX 838 ; N uni2249 ; G 3036 +U 8778 ; WX 838 ; N uni224A ; G 3037 +U 8779 ; WX 838 ; N uni224B ; G 3038 +U 8780 ; WX 838 ; N uni224C ; G 3039 +U 8781 ; WX 838 ; N uni224D ; G 3040 +U 8782 ; WX 838 ; N uni224E ; G 3041 +U 8783 ; WX 838 ; N uni224F ; G 3042 +U 8784 ; WX 838 ; N uni2250 ; G 3043 +U 8785 ; WX 838 ; N uni2251 ; G 3044 +U 8786 ; WX 838 ; N uni2252 ; G 3045 +U 8787 ; WX 838 ; N uni2253 ; G 3046 +U 8788 ; WX 1063 ; N uni2254 ; G 3047 +U 8789 ; WX 1063 ; N uni2255 ; G 3048 +U 8790 ; WX 838 ; N uni2256 ; G 3049 +U 8791 ; WX 838 ; N uni2257 ; G 3050 +U 8792 ; WX 838 ; N uni2258 ; G 3051 +U 8793 ; WX 838 ; N uni2259 ; G 3052 +U 8794 ; WX 838 ; N uni225A ; G 3053 +U 8795 ; WX 838 ; N uni225B ; G 3054 +U 8796 ; WX 838 ; N uni225C ; G 3055 +U 8797 ; WX 838 ; N uni225D ; G 3056 +U 8798 ; WX 838 ; N uni225E ; G 3057 +U 8799 ; WX 838 ; N uni225F ; G 3058 +U 8800 ; WX 838 ; N notequal ; G 3059 +U 8801 ; WX 838 ; N equivalence ; G 3060 +U 8802 ; WX 838 ; N uni2262 ; G 3061 +U 8803 ; WX 838 ; N uni2263 ; G 3062 +U 8804 ; WX 838 ; N lessequal ; G 3063 +U 8805 ; WX 838 ; N greaterequal ; G 3064 +U 8806 ; WX 838 ; N uni2266 ; G 3065 +U 8807 ; WX 838 ; N uni2267 ; G 3066 +U 8808 ; WX 841 ; N uni2268 ; G 3067 +U 8809 ; WX 841 ; N uni2269 ; G 3068 +U 8810 ; WX 1047 ; N uni226A ; G 3069 +U 8811 ; WX 1047 ; N uni226B ; G 3070 +U 8812 ; WX 500 ; N uni226C ; G 3071 +U 8813 ; WX 838 ; N uni226D ; G 3072 +U 8814 ; WX 838 ; N uni226E ; G 3073 +U 8815 ; WX 838 ; N uni226F ; G 3074 +U 8816 ; WX 838 ; N uni2270 ; G 3075 +U 8817 ; WX 838 ; N uni2271 ; G 3076 +U 8818 ; WX 838 ; N uni2272 ; G 3077 +U 8819 ; WX 838 ; N uni2273 ; G 3078 +U 8820 ; WX 838 ; N uni2274 ; G 3079 +U 8821 ; WX 838 ; N uni2275 ; G 3080 +U 8822 ; WX 838 ; N uni2276 ; G 3081 +U 8823 ; WX 838 ; N uni2277 ; G 3082 +U 8824 ; WX 838 ; N uni2278 ; G 3083 +U 8825 ; WX 838 ; N uni2279 ; G 3084 +U 8826 ; WX 838 ; N uni227A ; G 3085 +U 8827 ; WX 838 ; N uni227B ; G 3086 +U 8828 ; WX 838 ; N uni227C ; G 3087 +U 8829 ; WX 838 ; N uni227D ; G 3088 +U 8830 ; WX 838 ; N uni227E ; G 3089 +U 8831 ; WX 838 ; N uni227F ; G 3090 +U 8832 ; WX 838 ; N uni2280 ; G 3091 +U 8833 ; WX 838 ; N uni2281 ; G 3092 +U 8834 ; WX 838 ; N propersubset ; G 3093 +U 8835 ; WX 838 ; N propersuperset ; G 3094 +U 8836 ; WX 838 ; N notsubset ; G 3095 +U 8837 ; WX 838 ; N uni2285 ; G 3096 +U 8838 ; WX 838 ; N reflexsubset ; G 3097 +U 8839 ; WX 838 ; N reflexsuperset ; G 3098 +U 8840 ; WX 838 ; N uni2288 ; G 3099 +U 8841 ; WX 838 ; N uni2289 ; G 3100 +U 8842 ; WX 838 ; N uni228A ; G 3101 +U 8843 ; WX 838 ; N uni228B ; G 3102 +U 8844 ; WX 812 ; N uni228C ; G 3103 +U 8845 ; WX 812 ; N uni228D ; G 3104 +U 8846 ; WX 812 ; N uni228E ; G 3105 +U 8847 ; WX 838 ; N uni228F ; G 3106 +U 8848 ; WX 838 ; N uni2290 ; G 3107 +U 8849 ; WX 838 ; N uni2291 ; G 3108 +U 8850 ; WX 838 ; N uni2292 ; G 3109 +U 8851 ; WX 796 ; N uni2293 ; G 3110 +U 8852 ; WX 796 ; N uni2294 ; G 3111 +U 8853 ; WX 838 ; N circleplus ; G 3112 +U 8854 ; WX 838 ; N uni2296 ; G 3113 +U 8855 ; WX 838 ; N circlemultiply ; G 3114 +U 8856 ; WX 838 ; N uni2298 ; G 3115 +U 8857 ; WX 838 ; N uni2299 ; G 3116 +U 8858 ; WX 838 ; N uni229A ; G 3117 +U 8859 ; WX 838 ; N uni229B ; G 3118 +U 8860 ; WX 838 ; N uni229C ; G 3119 +U 8861 ; WX 838 ; N uni229D ; G 3120 +U 8862 ; WX 838 ; N uni229E ; G 3121 +U 8863 ; WX 838 ; N uni229F ; G 3122 +U 8864 ; WX 838 ; N uni22A0 ; G 3123 +U 8865 ; WX 838 ; N uni22A1 ; G 3124 +U 8866 ; WX 914 ; N uni22A2 ; G 3125 +U 8867 ; WX 914 ; N uni22A3 ; G 3126 +U 8868 ; WX 914 ; N uni22A4 ; G 3127 +U 8869 ; WX 914 ; N perpendicular ; G 3128 +U 8870 ; WX 542 ; N uni22A6 ; G 3129 +U 8871 ; WX 542 ; N uni22A7 ; G 3130 +U 8872 ; WX 914 ; N uni22A8 ; G 3131 +U 8873 ; WX 914 ; N uni22A9 ; G 3132 +U 8874 ; WX 914 ; N uni22AA ; G 3133 +U 8875 ; WX 914 ; N uni22AB ; G 3134 +U 8876 ; WX 914 ; N uni22AC ; G 3135 +U 8877 ; WX 914 ; N uni22AD ; G 3136 +U 8878 ; WX 914 ; N uni22AE ; G 3137 +U 8879 ; WX 914 ; N uni22AF ; G 3138 +U 8880 ; WX 838 ; N uni22B0 ; G 3139 +U 8881 ; WX 838 ; N uni22B1 ; G 3140 +U 8882 ; WX 838 ; N uni22B2 ; G 3141 +U 8883 ; WX 838 ; N uni22B3 ; G 3142 +U 8884 ; WX 838 ; N uni22B4 ; G 3143 +U 8885 ; WX 838 ; N uni22B5 ; G 3144 +U 8886 ; WX 1000 ; N uni22B6 ; G 3145 +U 8887 ; WX 1000 ; N uni22B7 ; G 3146 +U 8888 ; WX 838 ; N uni22B8 ; G 3147 +U 8889 ; WX 838 ; N uni22B9 ; G 3148 +U 8890 ; WX 542 ; N uni22BA ; G 3149 +U 8891 ; WX 812 ; N uni22BB ; G 3150 +U 8892 ; WX 812 ; N uni22BC ; G 3151 +U 8893 ; WX 812 ; N uni22BD ; G 3152 +U 8894 ; WX 838 ; N uni22BE ; G 3153 +U 8895 ; WX 838 ; N uni22BF ; G 3154 +U 8896 ; WX 843 ; N uni22C0 ; G 3155 +U 8897 ; WX 843 ; N uni22C1 ; G 3156 +U 8898 ; WX 843 ; N uni22C2 ; G 3157 +U 8899 ; WX 843 ; N uni22C3 ; G 3158 +U 8900 ; WX 626 ; N uni22C4 ; G 3159 +U 8901 ; WX 380 ; N dotmath ; G 3160 +U 8902 ; WX 626 ; N uni22C6 ; G 3161 +U 8903 ; WX 838 ; N uni22C7 ; G 3162 +U 8904 ; WX 1000 ; N uni22C8 ; G 3163 +U 8905 ; WX 1000 ; N uni22C9 ; G 3164 +U 8906 ; WX 1000 ; N uni22CA ; G 3165 +U 8907 ; WX 1000 ; N uni22CB ; G 3166 +U 8908 ; WX 1000 ; N uni22CC ; G 3167 +U 8909 ; WX 838 ; N uni22CD ; G 3168 +U 8910 ; WX 812 ; N uni22CE ; G 3169 +U 8911 ; WX 812 ; N uni22CF ; G 3170 +U 8912 ; WX 838 ; N uni22D0 ; G 3171 +U 8913 ; WX 838 ; N uni22D1 ; G 3172 +U 8914 ; WX 838 ; N uni22D2 ; G 3173 +U 8915 ; WX 838 ; N uni22D3 ; G 3174 +U 8916 ; WX 838 ; N uni22D4 ; G 3175 +U 8917 ; WX 838 ; N uni22D5 ; G 3176 +U 8918 ; WX 838 ; N uni22D6 ; G 3177 +U 8919 ; WX 838 ; N uni22D7 ; G 3178 +U 8920 ; WX 1422 ; N uni22D8 ; G 3179 +U 8921 ; WX 1422 ; N uni22D9 ; G 3180 +U 8922 ; WX 838 ; N uni22DA ; G 3181 +U 8923 ; WX 838 ; N uni22DB ; G 3182 +U 8924 ; WX 838 ; N uni22DC ; G 3183 +U 8925 ; WX 838 ; N uni22DD ; G 3184 +U 8926 ; WX 838 ; N uni22DE ; G 3185 +U 8927 ; WX 838 ; N uni22DF ; G 3186 +U 8928 ; WX 838 ; N uni22E0 ; G 3187 +U 8929 ; WX 838 ; N uni22E1 ; G 3188 +U 8930 ; WX 838 ; N uni22E2 ; G 3189 +U 8931 ; WX 838 ; N uni22E3 ; G 3190 +U 8932 ; WX 838 ; N uni22E4 ; G 3191 +U 8933 ; WX 838 ; N uni22E5 ; G 3192 +U 8934 ; WX 838 ; N uni22E6 ; G 3193 +U 8935 ; WX 838 ; N uni22E7 ; G 3194 +U 8936 ; WX 838 ; N uni22E8 ; G 3195 +U 8937 ; WX 838 ; N uni22E9 ; G 3196 +U 8938 ; WX 838 ; N uni22EA ; G 3197 +U 8939 ; WX 838 ; N uni22EB ; G 3198 +U 8940 ; WX 838 ; N uni22EC ; G 3199 +U 8941 ; WX 838 ; N uni22ED ; G 3200 +U 8942 ; WX 1000 ; N uni22EE ; G 3201 +U 8943 ; WX 1000 ; N uni22EF ; G 3202 +U 8944 ; WX 1000 ; N uni22F0 ; G 3203 +U 8945 ; WX 1000 ; N uni22F1 ; G 3204 +U 8946 ; WX 1158 ; N uni22F2 ; G 3205 +U 8947 ; WX 896 ; N uni22F3 ; G 3206 +U 8948 ; WX 750 ; N uni22F4 ; G 3207 +U 8949 ; WX 896 ; N uni22F5 ; G 3208 +U 8950 ; WX 896 ; N uni22F6 ; G 3209 +U 8951 ; WX 750 ; N uni22F7 ; G 3210 +U 8952 ; WX 896 ; N uni22F8 ; G 3211 +U 8953 ; WX 896 ; N uni22F9 ; G 3212 +U 8954 ; WX 1158 ; N uni22FA ; G 3213 +U 8955 ; WX 896 ; N uni22FB ; G 3214 +U 8956 ; WX 750 ; N uni22FC ; G 3215 +U 8957 ; WX 896 ; N uni22FD ; G 3216 +U 8958 ; WX 750 ; N uni22FE ; G 3217 +U 8959 ; WX 896 ; N uni22FF ; G 3218 +U 8960 ; WX 602 ; N uni2300 ; G 3219 +U 8961 ; WX 602 ; N uni2301 ; G 3220 +U 8962 ; WX 716 ; N house ; G 3221 +U 8963 ; WX 838 ; N uni2303 ; G 3222 +U 8964 ; WX 838 ; N uni2304 ; G 3223 +U 8965 ; WX 838 ; N uni2305 ; G 3224 +U 8966 ; WX 838 ; N uni2306 ; G 3225 +U 8967 ; WX 488 ; N uni2307 ; G 3226 +U 8968 ; WX 457 ; N uni2308 ; G 3227 +U 8969 ; WX 457 ; N uni2309 ; G 3228 +U 8970 ; WX 457 ; N uni230A ; G 3229 +U 8971 ; WX 457 ; N uni230B ; G 3230 +U 8972 ; WX 809 ; N uni230C ; G 3231 +U 8973 ; WX 809 ; N uni230D ; G 3232 +U 8974 ; WX 809 ; N uni230E ; G 3233 +U 8975 ; WX 809 ; N uni230F ; G 3234 +U 8976 ; WX 838 ; N revlogicalnot ; G 3235 +U 8977 ; WX 539 ; N uni2311 ; G 3236 +U 8984 ; WX 928 ; N uni2318 ; G 3237 +U 8985 ; WX 838 ; N uni2319 ; G 3238 +U 8988 ; WX 469 ; N uni231C ; G 3239 +U 8989 ; WX 469 ; N uni231D ; G 3240 +U 8990 ; WX 469 ; N uni231E ; G 3241 +U 8991 ; WX 469 ; N uni231F ; G 3242 +U 8992 ; WX 610 ; N integraltp ; G 3243 +U 8993 ; WX 610 ; N integralbt ; G 3244 +U 8996 ; WX 1152 ; N uni2324 ; G 3245 +U 8997 ; WX 1152 ; N uni2325 ; G 3246 +U 8998 ; WX 1414 ; N uni2326 ; G 3247 +U 8999 ; WX 1152 ; N uni2327 ; G 3248 +U 9000 ; WX 1443 ; N uni2328 ; G 3249 +U 9003 ; WX 1414 ; N uni232B ; G 3250 +U 9004 ; WX 873 ; N uni232C ; G 3251 +U 9075 ; WX 390 ; N uni2373 ; G 3252 +U 9076 ; WX 716 ; N uni2374 ; G 3253 +U 9077 ; WX 869 ; N uni2375 ; G 3254 +U 9082 ; WX 687 ; N uni237A ; G 3255 +U 9085 ; WX 863 ; N uni237D ; G 3256 +U 9095 ; WX 1152 ; N uni2387 ; G 3257 +U 9108 ; WX 873 ; N uni2394 ; G 3258 +U 9115 ; WX 500 ; N uni239B ; G 3259 +U 9116 ; WX 500 ; N uni239C ; G 3260 +U 9117 ; WX 500 ; N uni239D ; G 3261 +U 9118 ; WX 500 ; N uni239E ; G 3262 +U 9119 ; WX 500 ; N uni239F ; G 3263 +U 9120 ; WX 500 ; N uni23A0 ; G 3264 +U 9121 ; WX 500 ; N uni23A1 ; G 3265 +U 9122 ; WX 500 ; N uni23A2 ; G 3266 +U 9123 ; WX 500 ; N uni23A3 ; G 3267 +U 9124 ; WX 500 ; N uni23A4 ; G 3268 +U 9125 ; WX 500 ; N uni23A5 ; G 3269 +U 9126 ; WX 500 ; N uni23A6 ; G 3270 +U 9127 ; WX 750 ; N uni23A7 ; G 3271 +U 9128 ; WX 750 ; N uni23A8 ; G 3272 +U 9129 ; WX 750 ; N uni23A9 ; G 3273 +U 9130 ; WX 750 ; N uni23AA ; G 3274 +U 9131 ; WX 750 ; N uni23AB ; G 3275 +U 9132 ; WX 750 ; N uni23AC ; G 3276 +U 9133 ; WX 750 ; N uni23AD ; G 3277 +U 9134 ; WX 610 ; N uni23AE ; G 3278 +U 9166 ; WX 838 ; N uni23CE ; G 3279 +U 9167 ; WX 945 ; N uni23CF ; G 3280 +U 9187 ; WX 873 ; N uni23E3 ; G 3281 +U 9189 ; WX 769 ; N uni23E5 ; G 3282 +U 9192 ; WX 696 ; N uni23E8 ; G 3283 +U 9250 ; WX 716 ; N uni2422 ; G 3284 +U 9251 ; WX 716 ; N uni2423 ; G 3285 +U 9312 ; WX 847 ; N uni2460 ; G 3286 +U 9313 ; WX 847 ; N uni2461 ; G 3287 +U 9314 ; WX 847 ; N uni2462 ; G 3288 +U 9315 ; WX 847 ; N uni2463 ; G 3289 +U 9316 ; WX 847 ; N uni2464 ; G 3290 +U 9317 ; WX 847 ; N uni2465 ; G 3291 +U 9318 ; WX 847 ; N uni2466 ; G 3292 +U 9319 ; WX 847 ; N uni2467 ; G 3293 +U 9320 ; WX 847 ; N uni2468 ; G 3294 +U 9321 ; WX 847 ; N uni2469 ; G 3295 +U 9472 ; WX 602 ; N SF100000 ; G 3296 +U 9473 ; WX 602 ; N uni2501 ; G 3297 +U 9474 ; WX 602 ; N SF110000 ; G 3298 +U 9475 ; WX 602 ; N uni2503 ; G 3299 +U 9476 ; WX 602 ; N uni2504 ; G 3300 +U 9477 ; WX 602 ; N uni2505 ; G 3301 +U 9478 ; WX 602 ; N uni2506 ; G 3302 +U 9479 ; WX 602 ; N uni2507 ; G 3303 +U 9480 ; WX 602 ; N uni2508 ; G 3304 +U 9481 ; WX 602 ; N uni2509 ; G 3305 +U 9482 ; WX 602 ; N uni250A ; G 3306 +U 9483 ; WX 602 ; N uni250B ; G 3307 +U 9484 ; WX 602 ; N SF010000 ; G 3308 +U 9485 ; WX 602 ; N uni250D ; G 3309 +U 9486 ; WX 602 ; N uni250E ; G 3310 +U 9487 ; WX 602 ; N uni250F ; G 3311 +U 9488 ; WX 602 ; N SF030000 ; G 3312 +U 9489 ; WX 602 ; N uni2511 ; G 3313 +U 9490 ; WX 602 ; N uni2512 ; G 3314 +U 9491 ; WX 602 ; N uni2513 ; G 3315 +U 9492 ; WX 602 ; N SF020000 ; G 3316 +U 9493 ; WX 602 ; N uni2515 ; G 3317 +U 9494 ; WX 602 ; N uni2516 ; G 3318 +U 9495 ; WX 602 ; N uni2517 ; G 3319 +U 9496 ; WX 602 ; N SF040000 ; G 3320 +U 9497 ; WX 602 ; N uni2519 ; G 3321 +U 9498 ; WX 602 ; N uni251A ; G 3322 +U 9499 ; WX 602 ; N uni251B ; G 3323 +U 9500 ; WX 602 ; N SF080000 ; G 3324 +U 9501 ; WX 602 ; N uni251D ; G 3325 +U 9502 ; WX 602 ; N uni251E ; G 3326 +U 9503 ; WX 602 ; N uni251F ; G 3327 +U 9504 ; WX 602 ; N uni2520 ; G 3328 +U 9505 ; WX 602 ; N uni2521 ; G 3329 +U 9506 ; WX 602 ; N uni2522 ; G 3330 +U 9507 ; WX 602 ; N uni2523 ; G 3331 +U 9508 ; WX 602 ; N SF090000 ; G 3332 +U 9509 ; WX 602 ; N uni2525 ; G 3333 +U 9510 ; WX 602 ; N uni2526 ; G 3334 +U 9511 ; WX 602 ; N uni2527 ; G 3335 +U 9512 ; WX 602 ; N uni2528 ; G 3336 +U 9513 ; WX 602 ; N uni2529 ; G 3337 +U 9514 ; WX 602 ; N uni252A ; G 3338 +U 9515 ; WX 602 ; N uni252B ; G 3339 +U 9516 ; WX 602 ; N SF060000 ; G 3340 +U 9517 ; WX 602 ; N uni252D ; G 3341 +U 9518 ; WX 602 ; N uni252E ; G 3342 +U 9519 ; WX 602 ; N uni252F ; G 3343 +U 9520 ; WX 602 ; N uni2530 ; G 3344 +U 9521 ; WX 602 ; N uni2531 ; G 3345 +U 9522 ; WX 602 ; N uni2532 ; G 3346 +U 9523 ; WX 602 ; N uni2533 ; G 3347 +U 9524 ; WX 602 ; N SF070000 ; G 3348 +U 9525 ; WX 602 ; N uni2535 ; G 3349 +U 9526 ; WX 602 ; N uni2536 ; G 3350 +U 9527 ; WX 602 ; N uni2537 ; G 3351 +U 9528 ; WX 602 ; N uni2538 ; G 3352 +U 9529 ; WX 602 ; N uni2539 ; G 3353 +U 9530 ; WX 602 ; N uni253A ; G 3354 +U 9531 ; WX 602 ; N uni253B ; G 3355 +U 9532 ; WX 602 ; N SF050000 ; G 3356 +U 9533 ; WX 602 ; N uni253D ; G 3357 +U 9534 ; WX 602 ; N uni253E ; G 3358 +U 9535 ; WX 602 ; N uni253F ; G 3359 +U 9536 ; WX 602 ; N uni2540 ; G 3360 +U 9537 ; WX 602 ; N uni2541 ; G 3361 +U 9538 ; WX 602 ; N uni2542 ; G 3362 +U 9539 ; WX 602 ; N uni2543 ; G 3363 +U 9540 ; WX 602 ; N uni2544 ; G 3364 +U 9541 ; WX 602 ; N uni2545 ; G 3365 +U 9542 ; WX 602 ; N uni2546 ; G 3366 +U 9543 ; WX 602 ; N uni2547 ; G 3367 +U 9544 ; WX 602 ; N uni2548 ; G 3368 +U 9545 ; WX 602 ; N uni2549 ; G 3369 +U 9546 ; WX 602 ; N uni254A ; G 3370 +U 9547 ; WX 602 ; N uni254B ; G 3371 +U 9548 ; WX 602 ; N uni254C ; G 3372 +U 9549 ; WX 602 ; N uni254D ; G 3373 +U 9550 ; WX 602 ; N uni254E ; G 3374 +U 9551 ; WX 602 ; N uni254F ; G 3375 +U 9552 ; WX 602 ; N SF430000 ; G 3376 +U 9553 ; WX 602 ; N SF240000 ; G 3377 +U 9554 ; WX 602 ; N SF510000 ; G 3378 +U 9555 ; WX 602 ; N SF520000 ; G 3379 +U 9556 ; WX 602 ; N SF390000 ; G 3380 +U 9557 ; WX 602 ; N SF220000 ; G 3381 +U 9558 ; WX 602 ; N SF210000 ; G 3382 +U 9559 ; WX 602 ; N SF250000 ; G 3383 +U 9560 ; WX 602 ; N SF500000 ; G 3384 +U 9561 ; WX 602 ; N SF490000 ; G 3385 +U 9562 ; WX 602 ; N SF380000 ; G 3386 +U 9563 ; WX 602 ; N SF280000 ; G 3387 +U 9564 ; WX 602 ; N SF270000 ; G 3388 +U 9565 ; WX 602 ; N SF260000 ; G 3389 +U 9566 ; WX 602 ; N SF360000 ; G 3390 +U 9567 ; WX 602 ; N SF370000 ; G 3391 +U 9568 ; WX 602 ; N SF420000 ; G 3392 +U 9569 ; WX 602 ; N SF190000 ; G 3393 +U 9570 ; WX 602 ; N SF200000 ; G 3394 +U 9571 ; WX 602 ; N SF230000 ; G 3395 +U 9572 ; WX 602 ; N SF470000 ; G 3396 +U 9573 ; WX 602 ; N SF480000 ; G 3397 +U 9574 ; WX 602 ; N SF410000 ; G 3398 +U 9575 ; WX 602 ; N SF450000 ; G 3399 +U 9576 ; WX 602 ; N SF460000 ; G 3400 +U 9577 ; WX 602 ; N SF400000 ; G 3401 +U 9578 ; WX 602 ; N SF540000 ; G 3402 +U 9579 ; WX 602 ; N SF530000 ; G 3403 +U 9580 ; WX 602 ; N SF440000 ; G 3404 +U 9581 ; WX 602 ; N uni256D ; G 3405 +U 9582 ; WX 602 ; N uni256E ; G 3406 +U 9583 ; WX 602 ; N uni256F ; G 3407 +U 9584 ; WX 602 ; N uni2570 ; G 3408 +U 9585 ; WX 602 ; N uni2571 ; G 3409 +U 9586 ; WX 602 ; N uni2572 ; G 3410 +U 9587 ; WX 602 ; N uni2573 ; G 3411 +U 9588 ; WX 602 ; N uni2574 ; G 3412 +U 9589 ; WX 602 ; N uni2575 ; G 3413 +U 9590 ; WX 602 ; N uni2576 ; G 3414 +U 9591 ; WX 602 ; N uni2577 ; G 3415 +U 9592 ; WX 602 ; N uni2578 ; G 3416 +U 9593 ; WX 602 ; N uni2579 ; G 3417 +U 9594 ; WX 602 ; N uni257A ; G 3418 +U 9595 ; WX 602 ; N uni257B ; G 3419 +U 9596 ; WX 602 ; N uni257C ; G 3420 +U 9597 ; WX 602 ; N uni257D ; G 3421 +U 9598 ; WX 602 ; N uni257E ; G 3422 +U 9599 ; WX 602 ; N uni257F ; G 3423 +U 9600 ; WX 769 ; N upblock ; G 3424 +U 9601 ; WX 769 ; N uni2581 ; G 3425 +U 9602 ; WX 769 ; N uni2582 ; G 3426 +U 9603 ; WX 769 ; N uni2583 ; G 3427 +U 9604 ; WX 769 ; N dnblock ; G 3428 +U 9605 ; WX 769 ; N uni2585 ; G 3429 +U 9606 ; WX 769 ; N uni2586 ; G 3430 +U 9607 ; WX 769 ; N uni2587 ; G 3431 +U 9608 ; WX 769 ; N block ; G 3432 +U 9609 ; WX 769 ; N uni2589 ; G 3433 +U 9610 ; WX 769 ; N uni258A ; G 3434 +U 9611 ; WX 769 ; N uni258B ; G 3435 +U 9612 ; WX 769 ; N lfblock ; G 3436 +U 9613 ; WX 769 ; N uni258D ; G 3437 +U 9614 ; WX 769 ; N uni258E ; G 3438 +U 9615 ; WX 769 ; N uni258F ; G 3439 +U 9616 ; WX 769 ; N rtblock ; G 3440 +U 9617 ; WX 769 ; N ltshade ; G 3441 +U 9618 ; WX 769 ; N shade ; G 3442 +U 9619 ; WX 769 ; N dkshade ; G 3443 +U 9620 ; WX 769 ; N uni2594 ; G 3444 +U 9621 ; WX 769 ; N uni2595 ; G 3445 +U 9622 ; WX 769 ; N uni2596 ; G 3446 +U 9623 ; WX 769 ; N uni2597 ; G 3447 +U 9624 ; WX 769 ; N uni2598 ; G 3448 +U 9625 ; WX 769 ; N uni2599 ; G 3449 +U 9626 ; WX 769 ; N uni259A ; G 3450 +U 9627 ; WX 769 ; N uni259B ; G 3451 +U 9628 ; WX 769 ; N uni259C ; G 3452 +U 9629 ; WX 769 ; N uni259D ; G 3453 +U 9630 ; WX 769 ; N uni259E ; G 3454 +U 9631 ; WX 769 ; N uni259F ; G 3455 +U 9632 ; WX 945 ; N filledbox ; G 3456 +U 9633 ; WX 945 ; N H22073 ; G 3457 +U 9634 ; WX 945 ; N uni25A2 ; G 3458 +U 9635 ; WX 945 ; N uni25A3 ; G 3459 +U 9636 ; WX 945 ; N uni25A4 ; G 3460 +U 9637 ; WX 945 ; N uni25A5 ; G 3461 +U 9638 ; WX 945 ; N uni25A6 ; G 3462 +U 9639 ; WX 945 ; N uni25A7 ; G 3463 +U 9640 ; WX 945 ; N uni25A8 ; G 3464 +U 9641 ; WX 945 ; N uni25A9 ; G 3465 +U 9642 ; WX 678 ; N H18543 ; G 3466 +U 9643 ; WX 678 ; N H18551 ; G 3467 +U 9644 ; WX 945 ; N filledrect ; G 3468 +U 9645 ; WX 945 ; N uni25AD ; G 3469 +U 9646 ; WX 550 ; N uni25AE ; G 3470 +U 9647 ; WX 550 ; N uni25AF ; G 3471 +U 9648 ; WX 769 ; N uni25B0 ; G 3472 +U 9649 ; WX 769 ; N uni25B1 ; G 3473 +U 9650 ; WX 769 ; N triagup ; G 3474 +U 9651 ; WX 769 ; N uni25B3 ; G 3475 +U 9652 ; WX 502 ; N uni25B4 ; G 3476 +U 9653 ; WX 502 ; N uni25B5 ; G 3477 +U 9654 ; WX 769 ; N uni25B6 ; G 3478 +U 9655 ; WX 769 ; N uni25B7 ; G 3479 +U 9656 ; WX 502 ; N uni25B8 ; G 3480 +U 9657 ; WX 502 ; N uni25B9 ; G 3481 +U 9658 ; WX 769 ; N triagrt ; G 3482 +U 9659 ; WX 769 ; N uni25BB ; G 3483 +U 9660 ; WX 769 ; N triagdn ; G 3484 +U 9661 ; WX 769 ; N uni25BD ; G 3485 +U 9662 ; WX 502 ; N uni25BE ; G 3486 +U 9663 ; WX 502 ; N uni25BF ; G 3487 +U 9664 ; WX 769 ; N uni25C0 ; G 3488 +U 9665 ; WX 769 ; N uni25C1 ; G 3489 +U 9666 ; WX 502 ; N uni25C2 ; G 3490 +U 9667 ; WX 502 ; N uni25C3 ; G 3491 +U 9668 ; WX 769 ; N triaglf ; G 3492 +U 9669 ; WX 769 ; N uni25C5 ; G 3493 +U 9670 ; WX 769 ; N uni25C6 ; G 3494 +U 9671 ; WX 769 ; N uni25C7 ; G 3495 +U 9672 ; WX 769 ; N uni25C8 ; G 3496 +U 9673 ; WX 873 ; N uni25C9 ; G 3497 +U 9674 ; WX 494 ; N lozenge ; G 3498 +U 9675 ; WX 873 ; N circle ; G 3499 +U 9676 ; WX 873 ; N uni25CC ; G 3500 +U 9677 ; WX 873 ; N uni25CD ; G 3501 +U 9678 ; WX 873 ; N uni25CE ; G 3502 +U 9679 ; WX 873 ; N H18533 ; G 3503 +U 9680 ; WX 873 ; N uni25D0 ; G 3504 +U 9681 ; WX 873 ; N uni25D1 ; G 3505 +U 9682 ; WX 873 ; N uni25D2 ; G 3506 +U 9683 ; WX 873 ; N uni25D3 ; G 3507 +U 9684 ; WX 873 ; N uni25D4 ; G 3508 +U 9685 ; WX 873 ; N uni25D5 ; G 3509 +U 9686 ; WX 527 ; N uni25D6 ; G 3510 +U 9687 ; WX 527 ; N uni25D7 ; G 3511 +U 9688 ; WX 840 ; N invbullet ; G 3512 +U 9689 ; WX 970 ; N invcircle ; G 3513 +U 9690 ; WX 970 ; N uni25DA ; G 3514 +U 9691 ; WX 970 ; N uni25DB ; G 3515 +U 9692 ; WX 387 ; N uni25DC ; G 3516 +U 9693 ; WX 387 ; N uni25DD ; G 3517 +U 9694 ; WX 387 ; N uni25DE ; G 3518 +U 9695 ; WX 387 ; N uni25DF ; G 3519 +U 9696 ; WX 769 ; N uni25E0 ; G 3520 +U 9697 ; WX 769 ; N uni25E1 ; G 3521 +U 9698 ; WX 769 ; N uni25E2 ; G 3522 +U 9699 ; WX 769 ; N uni25E3 ; G 3523 +U 9700 ; WX 769 ; N uni25E4 ; G 3524 +U 9701 ; WX 769 ; N uni25E5 ; G 3525 +U 9702 ; WX 639 ; N openbullet ; G 3526 +U 9703 ; WX 945 ; N uni25E7 ; G 3527 +U 9704 ; WX 945 ; N uni25E8 ; G 3528 +U 9705 ; WX 945 ; N uni25E9 ; G 3529 +U 9706 ; WX 945 ; N uni25EA ; G 3530 +U 9707 ; WX 945 ; N uni25EB ; G 3531 +U 9708 ; WX 769 ; N uni25EC ; G 3532 +U 9709 ; WX 769 ; N uni25ED ; G 3533 +U 9710 ; WX 769 ; N uni25EE ; G 3534 +U 9711 ; WX 1119 ; N uni25EF ; G 3535 +U 9712 ; WX 945 ; N uni25F0 ; G 3536 +U 9713 ; WX 945 ; N uni25F1 ; G 3537 +U 9714 ; WX 945 ; N uni25F2 ; G 3538 +U 9715 ; WX 945 ; N uni25F3 ; G 3539 +U 9716 ; WX 873 ; N uni25F4 ; G 3540 +U 9717 ; WX 873 ; N uni25F5 ; G 3541 +U 9718 ; WX 873 ; N uni25F6 ; G 3542 +U 9719 ; WX 873 ; N uni25F7 ; G 3543 +U 9720 ; WX 769 ; N uni25F8 ; G 3544 +U 9721 ; WX 769 ; N uni25F9 ; G 3545 +U 9722 ; WX 769 ; N uni25FA ; G 3546 +U 9723 ; WX 830 ; N uni25FB ; G 3547 +U 9724 ; WX 830 ; N uni25FC ; G 3548 +U 9725 ; WX 732 ; N uni25FD ; G 3549 +U 9726 ; WX 732 ; N uni25FE ; G 3550 +U 9727 ; WX 769 ; N uni25FF ; G 3551 +U 9728 ; WX 896 ; N uni2600 ; G 3552 +U 9729 ; WX 1000 ; N uni2601 ; G 3553 +U 9730 ; WX 896 ; N uni2602 ; G 3554 +U 9731 ; WX 896 ; N uni2603 ; G 3555 +U 9732 ; WX 896 ; N uni2604 ; G 3556 +U 9733 ; WX 896 ; N uni2605 ; G 3557 +U 9734 ; WX 896 ; N uni2606 ; G 3558 +U 9735 ; WX 573 ; N uni2607 ; G 3559 +U 9736 ; WX 896 ; N uni2608 ; G 3560 +U 9737 ; WX 896 ; N uni2609 ; G 3561 +U 9738 ; WX 888 ; N uni260A ; G 3562 +U 9739 ; WX 888 ; N uni260B ; G 3563 +U 9740 ; WX 671 ; N uni260C ; G 3564 +U 9741 ; WX 1013 ; N uni260D ; G 3565 +U 9742 ; WX 1246 ; N uni260E ; G 3566 +U 9743 ; WX 1250 ; N uni260F ; G 3567 +U 9744 ; WX 896 ; N uni2610 ; G 3568 +U 9745 ; WX 896 ; N uni2611 ; G 3569 +U 9746 ; WX 896 ; N uni2612 ; G 3570 +U 9747 ; WX 532 ; N uni2613 ; G 3571 +U 9748 ; WX 896 ; N uni2614 ; G 3572 +U 9749 ; WX 896 ; N uni2615 ; G 3573 +U 9750 ; WX 896 ; N uni2616 ; G 3574 +U 9751 ; WX 896 ; N uni2617 ; G 3575 +U 9752 ; WX 896 ; N uni2618 ; G 3576 +U 9753 ; WX 896 ; N uni2619 ; G 3577 +U 9754 ; WX 896 ; N uni261A ; G 3578 +U 9755 ; WX 896 ; N uni261B ; G 3579 +U 9756 ; WX 896 ; N uni261C ; G 3580 +U 9757 ; WX 609 ; N uni261D ; G 3581 +U 9758 ; WX 896 ; N uni261E ; G 3582 +U 9759 ; WX 609 ; N uni261F ; G 3583 +U 9760 ; WX 896 ; N uni2620 ; G 3584 +U 9761 ; WX 896 ; N uni2621 ; G 3585 +U 9762 ; WX 896 ; N uni2622 ; G 3586 +U 9763 ; WX 896 ; N uni2623 ; G 3587 +U 9764 ; WX 669 ; N uni2624 ; G 3588 +U 9765 ; WX 746 ; N uni2625 ; G 3589 +U 9766 ; WX 649 ; N uni2626 ; G 3590 +U 9767 ; WX 784 ; N uni2627 ; G 3591 +U 9768 ; WX 545 ; N uni2628 ; G 3592 +U 9769 ; WX 896 ; N uni2629 ; G 3593 +U 9770 ; WX 896 ; N uni262A ; G 3594 +U 9771 ; WX 896 ; N uni262B ; G 3595 +U 9772 ; WX 710 ; N uni262C ; G 3596 +U 9773 ; WX 896 ; N uni262D ; G 3597 +U 9774 ; WX 896 ; N uni262E ; G 3598 +U 9775 ; WX 896 ; N uni262F ; G 3599 +U 9776 ; WX 896 ; N uni2630 ; G 3600 +U 9777 ; WX 896 ; N uni2631 ; G 3601 +U 9778 ; WX 896 ; N uni2632 ; G 3602 +U 9779 ; WX 896 ; N uni2633 ; G 3603 +U 9780 ; WX 896 ; N uni2634 ; G 3604 +U 9781 ; WX 896 ; N uni2635 ; G 3605 +U 9782 ; WX 896 ; N uni2636 ; G 3606 +U 9783 ; WX 896 ; N uni2637 ; G 3607 +U 9784 ; WX 896 ; N uni2638 ; G 3608 +U 9785 ; WX 1042 ; N uni2639 ; G 3609 +U 9786 ; WX 1042 ; N smileface ; G 3610 +U 9787 ; WX 1042 ; N invsmileface ; G 3611 +U 9788 ; WX 896 ; N sun ; G 3612 +U 9789 ; WX 896 ; N uni263D ; G 3613 +U 9790 ; WX 896 ; N uni263E ; G 3614 +U 9791 ; WX 614 ; N uni263F ; G 3615 +U 9792 ; WX 732 ; N female ; G 3616 +U 9793 ; WX 732 ; N uni2641 ; G 3617 +U 9794 ; WX 896 ; N male ; G 3618 +U 9795 ; WX 896 ; N uni2643 ; G 3619 +U 9796 ; WX 896 ; N uni2644 ; G 3620 +U 9797 ; WX 896 ; N uni2645 ; G 3621 +U 9798 ; WX 896 ; N uni2646 ; G 3622 +U 9799 ; WX 896 ; N uni2647 ; G 3623 +U 9800 ; WX 896 ; N uni2648 ; G 3624 +U 9801 ; WX 896 ; N uni2649 ; G 3625 +U 9802 ; WX 896 ; N uni264A ; G 3626 +U 9803 ; WX 896 ; N uni264B ; G 3627 +U 9804 ; WX 896 ; N uni264C ; G 3628 +U 9805 ; WX 896 ; N uni264D ; G 3629 +U 9806 ; WX 896 ; N uni264E ; G 3630 +U 9807 ; WX 896 ; N uni264F ; G 3631 +U 9808 ; WX 896 ; N uni2650 ; G 3632 +U 9809 ; WX 896 ; N uni2651 ; G 3633 +U 9810 ; WX 896 ; N uni2652 ; G 3634 +U 9811 ; WX 896 ; N uni2653 ; G 3635 +U 9812 ; WX 896 ; N uni2654 ; G 3636 +U 9813 ; WX 896 ; N uni2655 ; G 3637 +U 9814 ; WX 896 ; N uni2656 ; G 3638 +U 9815 ; WX 896 ; N uni2657 ; G 3639 +U 9816 ; WX 896 ; N uni2658 ; G 3640 +U 9817 ; WX 896 ; N uni2659 ; G 3641 +U 9818 ; WX 896 ; N uni265A ; G 3642 +U 9819 ; WX 896 ; N uni265B ; G 3643 +U 9820 ; WX 896 ; N uni265C ; G 3644 +U 9821 ; WX 896 ; N uni265D ; G 3645 +U 9822 ; WX 896 ; N uni265E ; G 3646 +U 9823 ; WX 896 ; N uni265F ; G 3647 +U 9824 ; WX 896 ; N spade ; G 3648 +U 9825 ; WX 896 ; N uni2661 ; G 3649 +U 9826 ; WX 896 ; N uni2662 ; G 3650 +U 9827 ; WX 896 ; N club ; G 3651 +U 9828 ; WX 896 ; N uni2664 ; G 3652 +U 9829 ; WX 896 ; N heart ; G 3653 +U 9830 ; WX 896 ; N diamond ; G 3654 +U 9831 ; WX 896 ; N uni2667 ; G 3655 +U 9832 ; WX 896 ; N uni2668 ; G 3656 +U 9833 ; WX 472 ; N uni2669 ; G 3657 +U 9834 ; WX 638 ; N musicalnote ; G 3658 +U 9835 ; WX 896 ; N musicalnotedbl ; G 3659 +U 9836 ; WX 896 ; N uni266C ; G 3660 +U 9837 ; WX 472 ; N uni266D ; G 3661 +U 9838 ; WX 357 ; N uni266E ; G 3662 +U 9839 ; WX 484 ; N uni266F ; G 3663 +U 9840 ; WX 748 ; N uni2670 ; G 3664 +U 9841 ; WX 766 ; N uni2671 ; G 3665 +U 9842 ; WX 896 ; N uni2672 ; G 3666 +U 9843 ; WX 896 ; N uni2673 ; G 3667 +U 9844 ; WX 896 ; N uni2674 ; G 3668 +U 9845 ; WX 896 ; N uni2675 ; G 3669 +U 9846 ; WX 896 ; N uni2676 ; G 3670 +U 9847 ; WX 896 ; N uni2677 ; G 3671 +U 9848 ; WX 896 ; N uni2678 ; G 3672 +U 9849 ; WX 896 ; N uni2679 ; G 3673 +U 9850 ; WX 896 ; N uni267A ; G 3674 +U 9851 ; WX 896 ; N uni267B ; G 3675 +U 9852 ; WX 896 ; N uni267C ; G 3676 +U 9853 ; WX 896 ; N uni267D ; G 3677 +U 9854 ; WX 896 ; N uni267E ; G 3678 +U 9855 ; WX 896 ; N uni267F ; G 3679 +U 9856 ; WX 869 ; N uni2680 ; G 3680 +U 9857 ; WX 869 ; N uni2681 ; G 3681 +U 9858 ; WX 869 ; N uni2682 ; G 3682 +U 9859 ; WX 869 ; N uni2683 ; G 3683 +U 9860 ; WX 869 ; N uni2684 ; G 3684 +U 9861 ; WX 869 ; N uni2685 ; G 3685 +U 9862 ; WX 896 ; N uni2686 ; G 3686 +U 9863 ; WX 896 ; N uni2687 ; G 3687 +U 9864 ; WX 896 ; N uni2688 ; G 3688 +U 9865 ; WX 896 ; N uni2689 ; G 3689 +U 9866 ; WX 896 ; N uni268A ; G 3690 +U 9867 ; WX 896 ; N uni268B ; G 3691 +U 9868 ; WX 896 ; N uni268C ; G 3692 +U 9869 ; WX 896 ; N uni268D ; G 3693 +U 9870 ; WX 896 ; N uni268E ; G 3694 +U 9871 ; WX 896 ; N uni268F ; G 3695 +U 9872 ; WX 896 ; N uni2690 ; G 3696 +U 9873 ; WX 896 ; N uni2691 ; G 3697 +U 9874 ; WX 896 ; N uni2692 ; G 3698 +U 9875 ; WX 896 ; N uni2693 ; G 3699 +U 9876 ; WX 896 ; N uni2694 ; G 3700 +U 9877 ; WX 541 ; N uni2695 ; G 3701 +U 9878 ; WX 896 ; N uni2696 ; G 3702 +U 9879 ; WX 896 ; N uni2697 ; G 3703 +U 9880 ; WX 896 ; N uni2698 ; G 3704 +U 9881 ; WX 896 ; N uni2699 ; G 3705 +U 9882 ; WX 896 ; N uni269A ; G 3706 +U 9883 ; WX 896 ; N uni269B ; G 3707 +U 9884 ; WX 896 ; N uni269C ; G 3708 +U 9886 ; WX 896 ; N uni269E ; G 3709 +U 9887 ; WX 896 ; N uni269F ; G 3710 +U 9888 ; WX 896 ; N uni26A0 ; G 3711 +U 9889 ; WX 702 ; N uni26A1 ; G 3712 +U 9890 ; WX 1004 ; N uni26A2 ; G 3713 +U 9891 ; WX 1089 ; N uni26A3 ; G 3714 +U 9892 ; WX 1175 ; N uni26A4 ; G 3715 +U 9893 ; WX 903 ; N uni26A5 ; G 3716 +U 9894 ; WX 838 ; N uni26A6 ; G 3717 +U 9895 ; WX 838 ; N uni26A7 ; G 3718 +U 9896 ; WX 838 ; N uni26A8 ; G 3719 +U 9897 ; WX 838 ; N uni26A9 ; G 3720 +U 9898 ; WX 838 ; N uni26AA ; G 3721 +U 9899 ; WX 838 ; N uni26AB ; G 3722 +U 9900 ; WX 838 ; N uni26AC ; G 3723 +U 9901 ; WX 838 ; N uni26AD ; G 3724 +U 9902 ; WX 838 ; N uni26AE ; G 3725 +U 9903 ; WX 838 ; N uni26AF ; G 3726 +U 9904 ; WX 844 ; N uni26B0 ; G 3727 +U 9905 ; WX 838 ; N uni26B1 ; G 3728 +U 9906 ; WX 732 ; N uni26B2 ; G 3729 +U 9907 ; WX 732 ; N uni26B3 ; G 3730 +U 9908 ; WX 732 ; N uni26B4 ; G 3731 +U 9909 ; WX 732 ; N uni26B5 ; G 3732 +U 9910 ; WX 850 ; N uni26B6 ; G 3733 +U 9911 ; WX 732 ; N uni26B7 ; G 3734 +U 9912 ; WX 732 ; N uni26B8 ; G 3735 +U 9920 ; WX 838 ; N uni26C0 ; G 3736 +U 9921 ; WX 838 ; N uni26C1 ; G 3737 +U 9922 ; WX 838 ; N uni26C2 ; G 3738 +U 9923 ; WX 838 ; N uni26C3 ; G 3739 +U 9954 ; WX 732 ; N uni26E2 ; G 3740 +U 9985 ; WX 838 ; N uni2701 ; G 3741 +U 9986 ; WX 838 ; N uni2702 ; G 3742 +U 9987 ; WX 838 ; N uni2703 ; G 3743 +U 9988 ; WX 838 ; N uni2704 ; G 3744 +U 9990 ; WX 838 ; N uni2706 ; G 3745 +U 9991 ; WX 838 ; N uni2707 ; G 3746 +U 9992 ; WX 838 ; N uni2708 ; G 3747 +U 9993 ; WX 838 ; N uni2709 ; G 3748 +U 9996 ; WX 838 ; N uni270C ; G 3749 +U 9997 ; WX 838 ; N uni270D ; G 3750 +U 9998 ; WX 838 ; N uni270E ; G 3751 +U 9999 ; WX 838 ; N uni270F ; G 3752 +U 10000 ; WX 838 ; N uni2710 ; G 3753 +U 10001 ; WX 838 ; N uni2711 ; G 3754 +U 10002 ; WX 838 ; N uni2712 ; G 3755 +U 10003 ; WX 838 ; N uni2713 ; G 3756 +U 10004 ; WX 838 ; N uni2714 ; G 3757 +U 10005 ; WX 838 ; N uni2715 ; G 3758 +U 10006 ; WX 838 ; N uni2716 ; G 3759 +U 10007 ; WX 838 ; N uni2717 ; G 3760 +U 10008 ; WX 838 ; N uni2718 ; G 3761 +U 10009 ; WX 838 ; N uni2719 ; G 3762 +U 10010 ; WX 838 ; N uni271A ; G 3763 +U 10011 ; WX 838 ; N uni271B ; G 3764 +U 10012 ; WX 838 ; N uni271C ; G 3765 +U 10013 ; WX 838 ; N uni271D ; G 3766 +U 10014 ; WX 838 ; N uni271E ; G 3767 +U 10015 ; WX 838 ; N uni271F ; G 3768 +U 10016 ; WX 838 ; N uni2720 ; G 3769 +U 10017 ; WX 838 ; N uni2721 ; G 3770 +U 10018 ; WX 838 ; N uni2722 ; G 3771 +U 10019 ; WX 838 ; N uni2723 ; G 3772 +U 10020 ; WX 838 ; N uni2724 ; G 3773 +U 10021 ; WX 838 ; N uni2725 ; G 3774 +U 10022 ; WX 838 ; N uni2726 ; G 3775 +U 10023 ; WX 838 ; N uni2727 ; G 3776 +U 10025 ; WX 838 ; N uni2729 ; G 3777 +U 10026 ; WX 838 ; N uni272A ; G 3778 +U 10027 ; WX 838 ; N uni272B ; G 3779 +U 10028 ; WX 838 ; N uni272C ; G 3780 +U 10029 ; WX 838 ; N uni272D ; G 3781 +U 10030 ; WX 838 ; N uni272E ; G 3782 +U 10031 ; WX 838 ; N uni272F ; G 3783 +U 10032 ; WX 838 ; N uni2730 ; G 3784 +U 10033 ; WX 838 ; N uni2731 ; G 3785 +U 10034 ; WX 838 ; N uni2732 ; G 3786 +U 10035 ; WX 838 ; N uni2733 ; G 3787 +U 10036 ; WX 838 ; N uni2734 ; G 3788 +U 10037 ; WX 838 ; N uni2735 ; G 3789 +U 10038 ; WX 838 ; N uni2736 ; G 3790 +U 10039 ; WX 838 ; N uni2737 ; G 3791 +U 10040 ; WX 838 ; N uni2738 ; G 3792 +U 10041 ; WX 838 ; N uni2739 ; G 3793 +U 10042 ; WX 838 ; N uni273A ; G 3794 +U 10043 ; WX 838 ; N uni273B ; G 3795 +U 10044 ; WX 838 ; N uni273C ; G 3796 +U 10045 ; WX 838 ; N uni273D ; G 3797 +U 10046 ; WX 838 ; N uni273E ; G 3798 +U 10047 ; WX 838 ; N uni273F ; G 3799 +U 10048 ; WX 838 ; N uni2740 ; G 3800 +U 10049 ; WX 838 ; N uni2741 ; G 3801 +U 10050 ; WX 838 ; N uni2742 ; G 3802 +U 10051 ; WX 838 ; N uni2743 ; G 3803 +U 10052 ; WX 838 ; N uni2744 ; G 3804 +U 10053 ; WX 838 ; N uni2745 ; G 3805 +U 10054 ; WX 838 ; N uni2746 ; G 3806 +U 10055 ; WX 838 ; N uni2747 ; G 3807 +U 10056 ; WX 838 ; N uni2748 ; G 3808 +U 10057 ; WX 838 ; N uni2749 ; G 3809 +U 10058 ; WX 838 ; N uni274A ; G 3810 +U 10059 ; WX 838 ; N uni274B ; G 3811 +U 10061 ; WX 896 ; N uni274D ; G 3812 +U 10063 ; WX 896 ; N uni274F ; G 3813 +U 10064 ; WX 896 ; N uni2750 ; G 3814 +U 10065 ; WX 896 ; N uni2751 ; G 3815 +U 10066 ; WX 896 ; N uni2752 ; G 3816 +U 10070 ; WX 896 ; N uni2756 ; G 3817 +U 10072 ; WX 838 ; N uni2758 ; G 3818 +U 10073 ; WX 838 ; N uni2759 ; G 3819 +U 10074 ; WX 838 ; N uni275A ; G 3820 +U 10075 ; WX 322 ; N uni275B ; G 3821 +U 10076 ; WX 322 ; N uni275C ; G 3822 +U 10077 ; WX 538 ; N uni275D ; G 3823 +U 10078 ; WX 538 ; N uni275E ; G 3824 +U 10081 ; WX 838 ; N uni2761 ; G 3825 +U 10082 ; WX 838 ; N uni2762 ; G 3826 +U 10083 ; WX 838 ; N uni2763 ; G 3827 +U 10084 ; WX 838 ; N uni2764 ; G 3828 +U 10085 ; WX 838 ; N uni2765 ; G 3829 +U 10086 ; WX 838 ; N uni2766 ; G 3830 +U 10087 ; WX 838 ; N uni2767 ; G 3831 +U 10088 ; WX 838 ; N uni2768 ; G 3832 +U 10089 ; WX 838 ; N uni2769 ; G 3833 +U 10090 ; WX 838 ; N uni276A ; G 3834 +U 10091 ; WX 838 ; N uni276B ; G 3835 +U 10092 ; WX 838 ; N uni276C ; G 3836 +U 10093 ; WX 838 ; N uni276D ; G 3837 +U 10094 ; WX 838 ; N uni276E ; G 3838 +U 10095 ; WX 838 ; N uni276F ; G 3839 +U 10096 ; WX 838 ; N uni2770 ; G 3840 +U 10097 ; WX 838 ; N uni2771 ; G 3841 +U 10098 ; WX 838 ; N uni2772 ; G 3842 +U 10099 ; WX 838 ; N uni2773 ; G 3843 +U 10100 ; WX 838 ; N uni2774 ; G 3844 +U 10101 ; WX 838 ; N uni2775 ; G 3845 +U 10102 ; WX 847 ; N uni2776 ; G 3846 +U 10103 ; WX 847 ; N uni2777 ; G 3847 +U 10104 ; WX 847 ; N uni2778 ; G 3848 +U 10105 ; WX 847 ; N uni2779 ; G 3849 +U 10106 ; WX 847 ; N uni277A ; G 3850 +U 10107 ; WX 847 ; N uni277B ; G 3851 +U 10108 ; WX 847 ; N uni277C ; G 3852 +U 10109 ; WX 847 ; N uni277D ; G 3853 +U 10110 ; WX 847 ; N uni277E ; G 3854 +U 10111 ; WX 847 ; N uni277F ; G 3855 +U 10112 ; WX 838 ; N uni2780 ; G 3856 +U 10113 ; WX 838 ; N uni2781 ; G 3857 +U 10114 ; WX 838 ; N uni2782 ; G 3858 +U 10115 ; WX 838 ; N uni2783 ; G 3859 +U 10116 ; WX 838 ; N uni2784 ; G 3860 +U 10117 ; WX 838 ; N uni2785 ; G 3861 +U 10118 ; WX 838 ; N uni2786 ; G 3862 +U 10119 ; WX 838 ; N uni2787 ; G 3863 +U 10120 ; WX 838 ; N uni2788 ; G 3864 +U 10121 ; WX 838 ; N uni2789 ; G 3865 +U 10122 ; WX 838 ; N uni278A ; G 3866 +U 10123 ; WX 838 ; N uni278B ; G 3867 +U 10124 ; WX 838 ; N uni278C ; G 3868 +U 10125 ; WX 838 ; N uni278D ; G 3869 +U 10126 ; WX 838 ; N uni278E ; G 3870 +U 10127 ; WX 838 ; N uni278F ; G 3871 +U 10128 ; WX 838 ; N uni2790 ; G 3872 +U 10129 ; WX 838 ; N uni2791 ; G 3873 +U 10130 ; WX 838 ; N uni2792 ; G 3874 +U 10131 ; WX 838 ; N uni2793 ; G 3875 +U 10132 ; WX 838 ; N uni2794 ; G 3876 +U 10136 ; WX 838 ; N uni2798 ; G 3877 +U 10137 ; WX 838 ; N uni2799 ; G 3878 +U 10138 ; WX 838 ; N uni279A ; G 3879 +U 10139 ; WX 838 ; N uni279B ; G 3880 +U 10140 ; WX 838 ; N uni279C ; G 3881 +U 10141 ; WX 838 ; N uni279D ; G 3882 +U 10142 ; WX 838 ; N uni279E ; G 3883 +U 10143 ; WX 838 ; N uni279F ; G 3884 +U 10144 ; WX 838 ; N uni27A0 ; G 3885 +U 10145 ; WX 838 ; N uni27A1 ; G 3886 +U 10146 ; WX 838 ; N uni27A2 ; G 3887 +U 10147 ; WX 838 ; N uni27A3 ; G 3888 +U 10148 ; WX 838 ; N uni27A4 ; G 3889 +U 10149 ; WX 838 ; N uni27A5 ; G 3890 +U 10150 ; WX 838 ; N uni27A6 ; G 3891 +U 10151 ; WX 838 ; N uni27A7 ; G 3892 +U 10152 ; WX 838 ; N uni27A8 ; G 3893 +U 10153 ; WX 838 ; N uni27A9 ; G 3894 +U 10154 ; WX 838 ; N uni27AA ; G 3895 +U 10155 ; WX 838 ; N uni27AB ; G 3896 +U 10156 ; WX 838 ; N uni27AC ; G 3897 +U 10157 ; WX 838 ; N uni27AD ; G 3898 +U 10158 ; WX 838 ; N uni27AE ; G 3899 +U 10159 ; WX 838 ; N uni27AF ; G 3900 +U 10161 ; WX 838 ; N uni27B1 ; G 3901 +U 10162 ; WX 838 ; N uni27B2 ; G 3902 +U 10163 ; WX 838 ; N uni27B3 ; G 3903 +U 10164 ; WX 838 ; N uni27B4 ; G 3904 +U 10165 ; WX 838 ; N uni27B5 ; G 3905 +U 10166 ; WX 838 ; N uni27B6 ; G 3906 +U 10167 ; WX 838 ; N uni27B7 ; G 3907 +U 10168 ; WX 838 ; N uni27B8 ; G 3908 +U 10169 ; WX 838 ; N uni27B9 ; G 3909 +U 10170 ; WX 838 ; N uni27BA ; G 3910 +U 10171 ; WX 838 ; N uni27BB ; G 3911 +U 10172 ; WX 838 ; N uni27BC ; G 3912 +U 10173 ; WX 838 ; N uni27BD ; G 3913 +U 10174 ; WX 838 ; N uni27BE ; G 3914 +U 10181 ; WX 457 ; N uni27C5 ; G 3915 +U 10182 ; WX 457 ; N uni27C6 ; G 3916 +U 10208 ; WX 494 ; N uni27E0 ; G 3917 +U 10214 ; WX 487 ; N uni27E6 ; G 3918 +U 10215 ; WX 487 ; N uni27E7 ; G 3919 +U 10216 ; WX 457 ; N uni27E8 ; G 3920 +U 10217 ; WX 457 ; N uni27E9 ; G 3921 +U 10218 ; WX 721 ; N uni27EA ; G 3922 +U 10219 ; WX 721 ; N uni27EB ; G 3923 +U 10224 ; WX 838 ; N uni27F0 ; G 3924 +U 10225 ; WX 838 ; N uni27F1 ; G 3925 +U 10226 ; WX 838 ; N uni27F2 ; G 3926 +U 10227 ; WX 838 ; N uni27F3 ; G 3927 +U 10228 ; WX 1157 ; N uni27F4 ; G 3928 +U 10229 ; WX 1434 ; N uni27F5 ; G 3929 +U 10230 ; WX 1434 ; N uni27F6 ; G 3930 +U 10231 ; WX 1434 ; N uni27F7 ; G 3931 +U 10232 ; WX 1434 ; N uni27F8 ; G 3932 +U 10233 ; WX 1434 ; N uni27F9 ; G 3933 +U 10234 ; WX 1434 ; N uni27FA ; G 3934 +U 10235 ; WX 1434 ; N uni27FB ; G 3935 +U 10236 ; WX 1434 ; N uni27FC ; G 3936 +U 10237 ; WX 1434 ; N uni27FD ; G 3937 +U 10238 ; WX 1434 ; N uni27FE ; G 3938 +U 10239 ; WX 1434 ; N uni27FF ; G 3939 +U 10240 ; WX 781 ; N uni2800 ; G 3940 +U 10241 ; WX 781 ; N uni2801 ; G 3941 +U 10242 ; WX 781 ; N uni2802 ; G 3942 +U 10243 ; WX 781 ; N uni2803 ; G 3943 +U 10244 ; WX 781 ; N uni2804 ; G 3944 +U 10245 ; WX 781 ; N uni2805 ; G 3945 +U 10246 ; WX 781 ; N uni2806 ; G 3946 +U 10247 ; WX 781 ; N uni2807 ; G 3947 +U 10248 ; WX 781 ; N uni2808 ; G 3948 +U 10249 ; WX 781 ; N uni2809 ; G 3949 +U 10250 ; WX 781 ; N uni280A ; G 3950 +U 10251 ; WX 781 ; N uni280B ; G 3951 +U 10252 ; WX 781 ; N uni280C ; G 3952 +U 10253 ; WX 781 ; N uni280D ; G 3953 +U 10254 ; WX 781 ; N uni280E ; G 3954 +U 10255 ; WX 781 ; N uni280F ; G 3955 +U 10256 ; WX 781 ; N uni2810 ; G 3956 +U 10257 ; WX 781 ; N uni2811 ; G 3957 +U 10258 ; WX 781 ; N uni2812 ; G 3958 +U 10259 ; WX 781 ; N uni2813 ; G 3959 +U 10260 ; WX 781 ; N uni2814 ; G 3960 +U 10261 ; WX 781 ; N uni2815 ; G 3961 +U 10262 ; WX 781 ; N uni2816 ; G 3962 +U 10263 ; WX 781 ; N uni2817 ; G 3963 +U 10264 ; WX 781 ; N uni2818 ; G 3964 +U 10265 ; WX 781 ; N uni2819 ; G 3965 +U 10266 ; WX 781 ; N uni281A ; G 3966 +U 10267 ; WX 781 ; N uni281B ; G 3967 +U 10268 ; WX 781 ; N uni281C ; G 3968 +U 10269 ; WX 781 ; N uni281D ; G 3969 +U 10270 ; WX 781 ; N uni281E ; G 3970 +U 10271 ; WX 781 ; N uni281F ; G 3971 +U 10272 ; WX 781 ; N uni2820 ; G 3972 +U 10273 ; WX 781 ; N uni2821 ; G 3973 +U 10274 ; WX 781 ; N uni2822 ; G 3974 +U 10275 ; WX 781 ; N uni2823 ; G 3975 +U 10276 ; WX 781 ; N uni2824 ; G 3976 +U 10277 ; WX 781 ; N uni2825 ; G 3977 +U 10278 ; WX 781 ; N uni2826 ; G 3978 +U 10279 ; WX 781 ; N uni2827 ; G 3979 +U 10280 ; WX 781 ; N uni2828 ; G 3980 +U 10281 ; WX 781 ; N uni2829 ; G 3981 +U 10282 ; WX 781 ; N uni282A ; G 3982 +U 10283 ; WX 781 ; N uni282B ; G 3983 +U 10284 ; WX 781 ; N uni282C ; G 3984 +U 10285 ; WX 781 ; N uni282D ; G 3985 +U 10286 ; WX 781 ; N uni282E ; G 3986 +U 10287 ; WX 781 ; N uni282F ; G 3987 +U 10288 ; WX 781 ; N uni2830 ; G 3988 +U 10289 ; WX 781 ; N uni2831 ; G 3989 +U 10290 ; WX 781 ; N uni2832 ; G 3990 +U 10291 ; WX 781 ; N uni2833 ; G 3991 +U 10292 ; WX 781 ; N uni2834 ; G 3992 +U 10293 ; WX 781 ; N uni2835 ; G 3993 +U 10294 ; WX 781 ; N uni2836 ; G 3994 +U 10295 ; WX 781 ; N uni2837 ; G 3995 +U 10296 ; WX 781 ; N uni2838 ; G 3996 +U 10297 ; WX 781 ; N uni2839 ; G 3997 +U 10298 ; WX 781 ; N uni283A ; G 3998 +U 10299 ; WX 781 ; N uni283B ; G 3999 +U 10300 ; WX 781 ; N uni283C ; G 4000 +U 10301 ; WX 781 ; N uni283D ; G 4001 +U 10302 ; WX 781 ; N uni283E ; G 4002 +U 10303 ; WX 781 ; N uni283F ; G 4003 +U 10304 ; WX 781 ; N uni2840 ; G 4004 +U 10305 ; WX 781 ; N uni2841 ; G 4005 +U 10306 ; WX 781 ; N uni2842 ; G 4006 +U 10307 ; WX 781 ; N uni2843 ; G 4007 +U 10308 ; WX 781 ; N uni2844 ; G 4008 +U 10309 ; WX 781 ; N uni2845 ; G 4009 +U 10310 ; WX 781 ; N uni2846 ; G 4010 +U 10311 ; WX 781 ; N uni2847 ; G 4011 +U 10312 ; WX 781 ; N uni2848 ; G 4012 +U 10313 ; WX 781 ; N uni2849 ; G 4013 +U 10314 ; WX 781 ; N uni284A ; G 4014 +U 10315 ; WX 781 ; N uni284B ; G 4015 +U 10316 ; WX 781 ; N uni284C ; G 4016 +U 10317 ; WX 781 ; N uni284D ; G 4017 +U 10318 ; WX 781 ; N uni284E ; G 4018 +U 10319 ; WX 781 ; N uni284F ; G 4019 +U 10320 ; WX 781 ; N uni2850 ; G 4020 +U 10321 ; WX 781 ; N uni2851 ; G 4021 +U 10322 ; WX 781 ; N uni2852 ; G 4022 +U 10323 ; WX 781 ; N uni2853 ; G 4023 +U 10324 ; WX 781 ; N uni2854 ; G 4024 +U 10325 ; WX 781 ; N uni2855 ; G 4025 +U 10326 ; WX 781 ; N uni2856 ; G 4026 +U 10327 ; WX 781 ; N uni2857 ; G 4027 +U 10328 ; WX 781 ; N uni2858 ; G 4028 +U 10329 ; WX 781 ; N uni2859 ; G 4029 +U 10330 ; WX 781 ; N uni285A ; G 4030 +U 10331 ; WX 781 ; N uni285B ; G 4031 +U 10332 ; WX 781 ; N uni285C ; G 4032 +U 10333 ; WX 781 ; N uni285D ; G 4033 +U 10334 ; WX 781 ; N uni285E ; G 4034 +U 10335 ; WX 781 ; N uni285F ; G 4035 +U 10336 ; WX 781 ; N uni2860 ; G 4036 +U 10337 ; WX 781 ; N uni2861 ; G 4037 +U 10338 ; WX 781 ; N uni2862 ; G 4038 +U 10339 ; WX 781 ; N uni2863 ; G 4039 +U 10340 ; WX 781 ; N uni2864 ; G 4040 +U 10341 ; WX 781 ; N uni2865 ; G 4041 +U 10342 ; WX 781 ; N uni2866 ; G 4042 +U 10343 ; WX 781 ; N uni2867 ; G 4043 +U 10344 ; WX 781 ; N uni2868 ; G 4044 +U 10345 ; WX 781 ; N uni2869 ; G 4045 +U 10346 ; WX 781 ; N uni286A ; G 4046 +U 10347 ; WX 781 ; N uni286B ; G 4047 +U 10348 ; WX 781 ; N uni286C ; G 4048 +U 10349 ; WX 781 ; N uni286D ; G 4049 +U 10350 ; WX 781 ; N uni286E ; G 4050 +U 10351 ; WX 781 ; N uni286F ; G 4051 +U 10352 ; WX 781 ; N uni2870 ; G 4052 +U 10353 ; WX 781 ; N uni2871 ; G 4053 +U 10354 ; WX 781 ; N uni2872 ; G 4054 +U 10355 ; WX 781 ; N uni2873 ; G 4055 +U 10356 ; WX 781 ; N uni2874 ; G 4056 +U 10357 ; WX 781 ; N uni2875 ; G 4057 +U 10358 ; WX 781 ; N uni2876 ; G 4058 +U 10359 ; WX 781 ; N uni2877 ; G 4059 +U 10360 ; WX 781 ; N uni2878 ; G 4060 +U 10361 ; WX 781 ; N uni2879 ; G 4061 +U 10362 ; WX 781 ; N uni287A ; G 4062 +U 10363 ; WX 781 ; N uni287B ; G 4063 +U 10364 ; WX 781 ; N uni287C ; G 4064 +U 10365 ; WX 781 ; N uni287D ; G 4065 +U 10366 ; WX 781 ; N uni287E ; G 4066 +U 10367 ; WX 781 ; N uni287F ; G 4067 +U 10368 ; WX 781 ; N uni2880 ; G 4068 +U 10369 ; WX 781 ; N uni2881 ; G 4069 +U 10370 ; WX 781 ; N uni2882 ; G 4070 +U 10371 ; WX 781 ; N uni2883 ; G 4071 +U 10372 ; WX 781 ; N uni2884 ; G 4072 +U 10373 ; WX 781 ; N uni2885 ; G 4073 +U 10374 ; WX 781 ; N uni2886 ; G 4074 +U 10375 ; WX 781 ; N uni2887 ; G 4075 +U 10376 ; WX 781 ; N uni2888 ; G 4076 +U 10377 ; WX 781 ; N uni2889 ; G 4077 +U 10378 ; WX 781 ; N uni288A ; G 4078 +U 10379 ; WX 781 ; N uni288B ; G 4079 +U 10380 ; WX 781 ; N uni288C ; G 4080 +U 10381 ; WX 781 ; N uni288D ; G 4081 +U 10382 ; WX 781 ; N uni288E ; G 4082 +U 10383 ; WX 781 ; N uni288F ; G 4083 +U 10384 ; WX 781 ; N uni2890 ; G 4084 +U 10385 ; WX 781 ; N uni2891 ; G 4085 +U 10386 ; WX 781 ; N uni2892 ; G 4086 +U 10387 ; WX 781 ; N uni2893 ; G 4087 +U 10388 ; WX 781 ; N uni2894 ; G 4088 +U 10389 ; WX 781 ; N uni2895 ; G 4089 +U 10390 ; WX 781 ; N uni2896 ; G 4090 +U 10391 ; WX 781 ; N uni2897 ; G 4091 +U 10392 ; WX 781 ; N uni2898 ; G 4092 +U 10393 ; WX 781 ; N uni2899 ; G 4093 +U 10394 ; WX 781 ; N uni289A ; G 4094 +U 10395 ; WX 781 ; N uni289B ; G 4095 +U 10396 ; WX 781 ; N uni289C ; G 4096 +U 10397 ; WX 781 ; N uni289D ; G 4097 +U 10398 ; WX 781 ; N uni289E ; G 4098 +U 10399 ; WX 781 ; N uni289F ; G 4099 +U 10400 ; WX 781 ; N uni28A0 ; G 4100 +U 10401 ; WX 781 ; N uni28A1 ; G 4101 +U 10402 ; WX 781 ; N uni28A2 ; G 4102 +U 10403 ; WX 781 ; N uni28A3 ; G 4103 +U 10404 ; WX 781 ; N uni28A4 ; G 4104 +U 10405 ; WX 781 ; N uni28A5 ; G 4105 +U 10406 ; WX 781 ; N uni28A6 ; G 4106 +U 10407 ; WX 781 ; N uni28A7 ; G 4107 +U 10408 ; WX 781 ; N uni28A8 ; G 4108 +U 10409 ; WX 781 ; N uni28A9 ; G 4109 +U 10410 ; WX 781 ; N uni28AA ; G 4110 +U 10411 ; WX 781 ; N uni28AB ; G 4111 +U 10412 ; WX 781 ; N uni28AC ; G 4112 +U 10413 ; WX 781 ; N uni28AD ; G 4113 +U 10414 ; WX 781 ; N uni28AE ; G 4114 +U 10415 ; WX 781 ; N uni28AF ; G 4115 +U 10416 ; WX 781 ; N uni28B0 ; G 4116 +U 10417 ; WX 781 ; N uni28B1 ; G 4117 +U 10418 ; WX 781 ; N uni28B2 ; G 4118 +U 10419 ; WX 781 ; N uni28B3 ; G 4119 +U 10420 ; WX 781 ; N uni28B4 ; G 4120 +U 10421 ; WX 781 ; N uni28B5 ; G 4121 +U 10422 ; WX 781 ; N uni28B6 ; G 4122 +U 10423 ; WX 781 ; N uni28B7 ; G 4123 +U 10424 ; WX 781 ; N uni28B8 ; G 4124 +U 10425 ; WX 781 ; N uni28B9 ; G 4125 +U 10426 ; WX 781 ; N uni28BA ; G 4126 +U 10427 ; WX 781 ; N uni28BB ; G 4127 +U 10428 ; WX 781 ; N uni28BC ; G 4128 +U 10429 ; WX 781 ; N uni28BD ; G 4129 +U 10430 ; WX 781 ; N uni28BE ; G 4130 +U 10431 ; WX 781 ; N uni28BF ; G 4131 +U 10432 ; WX 781 ; N uni28C0 ; G 4132 +U 10433 ; WX 781 ; N uni28C1 ; G 4133 +U 10434 ; WX 781 ; N uni28C2 ; G 4134 +U 10435 ; WX 781 ; N uni28C3 ; G 4135 +U 10436 ; WX 781 ; N uni28C4 ; G 4136 +U 10437 ; WX 781 ; N uni28C5 ; G 4137 +U 10438 ; WX 781 ; N uni28C6 ; G 4138 +U 10439 ; WX 781 ; N uni28C7 ; G 4139 +U 10440 ; WX 781 ; N uni28C8 ; G 4140 +U 10441 ; WX 781 ; N uni28C9 ; G 4141 +U 10442 ; WX 781 ; N uni28CA ; G 4142 +U 10443 ; WX 781 ; N uni28CB ; G 4143 +U 10444 ; WX 781 ; N uni28CC ; G 4144 +U 10445 ; WX 781 ; N uni28CD ; G 4145 +U 10446 ; WX 781 ; N uni28CE ; G 4146 +U 10447 ; WX 781 ; N uni28CF ; G 4147 +U 10448 ; WX 781 ; N uni28D0 ; G 4148 +U 10449 ; WX 781 ; N uni28D1 ; G 4149 +U 10450 ; WX 781 ; N uni28D2 ; G 4150 +U 10451 ; WX 781 ; N uni28D3 ; G 4151 +U 10452 ; WX 781 ; N uni28D4 ; G 4152 +U 10453 ; WX 781 ; N uni28D5 ; G 4153 +U 10454 ; WX 781 ; N uni28D6 ; G 4154 +U 10455 ; WX 781 ; N uni28D7 ; G 4155 +U 10456 ; WX 781 ; N uni28D8 ; G 4156 +U 10457 ; WX 781 ; N uni28D9 ; G 4157 +U 10458 ; WX 781 ; N uni28DA ; G 4158 +U 10459 ; WX 781 ; N uni28DB ; G 4159 +U 10460 ; WX 781 ; N uni28DC ; G 4160 +U 10461 ; WX 781 ; N uni28DD ; G 4161 +U 10462 ; WX 781 ; N uni28DE ; G 4162 +U 10463 ; WX 781 ; N uni28DF ; G 4163 +U 10464 ; WX 781 ; N uni28E0 ; G 4164 +U 10465 ; WX 781 ; N uni28E1 ; G 4165 +U 10466 ; WX 781 ; N uni28E2 ; G 4166 +U 10467 ; WX 781 ; N uni28E3 ; G 4167 +U 10468 ; WX 781 ; N uni28E4 ; G 4168 +U 10469 ; WX 781 ; N uni28E5 ; G 4169 +U 10470 ; WX 781 ; N uni28E6 ; G 4170 +U 10471 ; WX 781 ; N uni28E7 ; G 4171 +U 10472 ; WX 781 ; N uni28E8 ; G 4172 +U 10473 ; WX 781 ; N uni28E9 ; G 4173 +U 10474 ; WX 781 ; N uni28EA ; G 4174 +U 10475 ; WX 781 ; N uni28EB ; G 4175 +U 10476 ; WX 781 ; N uni28EC ; G 4176 +U 10477 ; WX 781 ; N uni28ED ; G 4177 +U 10478 ; WX 781 ; N uni28EE ; G 4178 +U 10479 ; WX 781 ; N uni28EF ; G 4179 +U 10480 ; WX 781 ; N uni28F0 ; G 4180 +U 10481 ; WX 781 ; N uni28F1 ; G 4181 +U 10482 ; WX 781 ; N uni28F2 ; G 4182 +U 10483 ; WX 781 ; N uni28F3 ; G 4183 +U 10484 ; WX 781 ; N uni28F4 ; G 4184 +U 10485 ; WX 781 ; N uni28F5 ; G 4185 +U 10486 ; WX 781 ; N uni28F6 ; G 4186 +U 10487 ; WX 781 ; N uni28F7 ; G 4187 +U 10488 ; WX 781 ; N uni28F8 ; G 4188 +U 10489 ; WX 781 ; N uni28F9 ; G 4189 +U 10490 ; WX 781 ; N uni28FA ; G 4190 +U 10491 ; WX 781 ; N uni28FB ; G 4191 +U 10492 ; WX 781 ; N uni28FC ; G 4192 +U 10493 ; WX 781 ; N uni28FD ; G 4193 +U 10494 ; WX 781 ; N uni28FE ; G 4194 +U 10495 ; WX 781 ; N uni28FF ; G 4195 +U 10502 ; WX 838 ; N uni2906 ; G 4196 +U 10503 ; WX 838 ; N uni2907 ; G 4197 +U 10506 ; WX 838 ; N uni290A ; G 4198 +U 10507 ; WX 838 ; N uni290B ; G 4199 +U 10560 ; WX 838 ; N uni2940 ; G 4200 +U 10561 ; WX 838 ; N uni2941 ; G 4201 +U 10627 ; WX 753 ; N uni2983 ; G 4202 +U 10628 ; WX 753 ; N uni2984 ; G 4203 +U 10702 ; WX 838 ; N uni29CE ; G 4204 +U 10703 ; WX 1046 ; N uni29CF ; G 4205 +U 10704 ; WX 1046 ; N uni29D0 ; G 4206 +U 10705 ; WX 1000 ; N uni29D1 ; G 4207 +U 10706 ; WX 1000 ; N uni29D2 ; G 4208 +U 10707 ; WX 1000 ; N uni29D3 ; G 4209 +U 10708 ; WX 1000 ; N uni29D4 ; G 4210 +U 10709 ; WX 1000 ; N uni29D5 ; G 4211 +U 10731 ; WX 494 ; N uni29EB ; G 4212 +U 10746 ; WX 838 ; N uni29FA ; G 4213 +U 10747 ; WX 838 ; N uni29FB ; G 4214 +U 10752 ; WX 1000 ; N uni2A00 ; G 4215 +U 10753 ; WX 1000 ; N uni2A01 ; G 4216 +U 10754 ; WX 1000 ; N uni2A02 ; G 4217 +U 10764 ; WX 1661 ; N uni2A0C ; G 4218 +U 10765 ; WX 563 ; N uni2A0D ; G 4219 +U 10766 ; WX 563 ; N uni2A0E ; G 4220 +U 10767 ; WX 563 ; N uni2A0F ; G 4221 +U 10768 ; WX 563 ; N uni2A10 ; G 4222 +U 10769 ; WX 563 ; N uni2A11 ; G 4223 +U 10770 ; WX 563 ; N uni2A12 ; G 4224 +U 10771 ; WX 563 ; N uni2A13 ; G 4225 +U 10772 ; WX 563 ; N uni2A14 ; G 4226 +U 10773 ; WX 563 ; N uni2A15 ; G 4227 +U 10774 ; WX 563 ; N uni2A16 ; G 4228 +U 10775 ; WX 563 ; N uni2A17 ; G 4229 +U 10776 ; WX 563 ; N uni2A18 ; G 4230 +U 10777 ; WX 563 ; N uni2A19 ; G 4231 +U 10778 ; WX 563 ; N uni2A1A ; G 4232 +U 10779 ; WX 563 ; N uni2A1B ; G 4233 +U 10780 ; WX 563 ; N uni2A1C ; G 4234 +U 10799 ; WX 838 ; N uni2A2F ; G 4235 +U 10858 ; WX 838 ; N uni2A6A ; G 4236 +U 10859 ; WX 838 ; N uni2A6B ; G 4237 +U 10877 ; WX 838 ; N uni2A7D ; G 4238 +U 10878 ; WX 838 ; N uni2A7E ; G 4239 +U 10879 ; WX 838 ; N uni2A7F ; G 4240 +U 10880 ; WX 838 ; N uni2A80 ; G 4241 +U 10881 ; WX 838 ; N uni2A81 ; G 4242 +U 10882 ; WX 838 ; N uni2A82 ; G 4243 +U 10883 ; WX 838 ; N uni2A83 ; G 4244 +U 10884 ; WX 838 ; N uni2A84 ; G 4245 +U 10885 ; WX 838 ; N uni2A85 ; G 4246 +U 10886 ; WX 838 ; N uni2A86 ; G 4247 +U 10887 ; WX 838 ; N uni2A87 ; G 4248 +U 10888 ; WX 838 ; N uni2A88 ; G 4249 +U 10889 ; WX 838 ; N uni2A89 ; G 4250 +U 10890 ; WX 838 ; N uni2A8A ; G 4251 +U 10891 ; WX 838 ; N uni2A8B ; G 4252 +U 10892 ; WX 838 ; N uni2A8C ; G 4253 +U 10893 ; WX 838 ; N uni2A8D ; G 4254 +U 10894 ; WX 838 ; N uni2A8E ; G 4255 +U 10895 ; WX 838 ; N uni2A8F ; G 4256 +U 10896 ; WX 838 ; N uni2A90 ; G 4257 +U 10897 ; WX 838 ; N uni2A91 ; G 4258 +U 10898 ; WX 838 ; N uni2A92 ; G 4259 +U 10899 ; WX 838 ; N uni2A93 ; G 4260 +U 10900 ; WX 838 ; N uni2A94 ; G 4261 +U 10901 ; WX 838 ; N uni2A95 ; G 4262 +U 10902 ; WX 838 ; N uni2A96 ; G 4263 +U 10903 ; WX 838 ; N uni2A97 ; G 4264 +U 10904 ; WX 838 ; N uni2A98 ; G 4265 +U 10905 ; WX 838 ; N uni2A99 ; G 4266 +U 10906 ; WX 838 ; N uni2A9A ; G 4267 +U 10907 ; WX 838 ; N uni2A9B ; G 4268 +U 10908 ; WX 838 ; N uni2A9C ; G 4269 +U 10909 ; WX 838 ; N uni2A9D ; G 4270 +U 10910 ; WX 838 ; N uni2A9E ; G 4271 +U 10911 ; WX 838 ; N uni2A9F ; G 4272 +U 10912 ; WX 838 ; N uni2AA0 ; G 4273 +U 10926 ; WX 838 ; N uni2AAE ; G 4274 +U 10927 ; WX 838 ; N uni2AAF ; G 4275 +U 10928 ; WX 838 ; N uni2AB0 ; G 4276 +U 10929 ; WX 838 ; N uni2AB1 ; G 4277 +U 10930 ; WX 838 ; N uni2AB2 ; G 4278 +U 10931 ; WX 838 ; N uni2AB3 ; G 4279 +U 10932 ; WX 838 ; N uni2AB4 ; G 4280 +U 10933 ; WX 838 ; N uni2AB5 ; G 4281 +U 10934 ; WX 838 ; N uni2AB6 ; G 4282 +U 10935 ; WX 838 ; N uni2AB7 ; G 4283 +U 10936 ; WX 838 ; N uni2AB8 ; G 4284 +U 10937 ; WX 838 ; N uni2AB9 ; G 4285 +U 10938 ; WX 838 ; N uni2ABA ; G 4286 +U 11001 ; WX 838 ; N uni2AF9 ; G 4287 +U 11002 ; WX 838 ; N uni2AFA ; G 4288 +U 11008 ; WX 838 ; N uni2B00 ; G 4289 +U 11009 ; WX 838 ; N uni2B01 ; G 4290 +U 11010 ; WX 838 ; N uni2B02 ; G 4291 +U 11011 ; WX 838 ; N uni2B03 ; G 4292 +U 11012 ; WX 838 ; N uni2B04 ; G 4293 +U 11013 ; WX 838 ; N uni2B05 ; G 4294 +U 11014 ; WX 838 ; N uni2B06 ; G 4295 +U 11015 ; WX 838 ; N uni2B07 ; G 4296 +U 11016 ; WX 838 ; N uni2B08 ; G 4297 +U 11017 ; WX 838 ; N uni2B09 ; G 4298 +U 11018 ; WX 838 ; N uni2B0A ; G 4299 +U 11019 ; WX 838 ; N uni2B0B ; G 4300 +U 11020 ; WX 838 ; N uni2B0C ; G 4301 +U 11021 ; WX 838 ; N uni2B0D ; G 4302 +U 11022 ; WX 838 ; N uni2B0E ; G 4303 +U 11023 ; WX 838 ; N uni2B0F ; G 4304 +U 11024 ; WX 838 ; N uni2B10 ; G 4305 +U 11025 ; WX 838 ; N uni2B11 ; G 4306 +U 11026 ; WX 945 ; N uni2B12 ; G 4307 +U 11027 ; WX 945 ; N uni2B13 ; G 4308 +U 11028 ; WX 945 ; N uni2B14 ; G 4309 +U 11029 ; WX 945 ; N uni2B15 ; G 4310 +U 11030 ; WX 769 ; N uni2B16 ; G 4311 +U 11031 ; WX 769 ; N uni2B17 ; G 4312 +U 11032 ; WX 769 ; N uni2B18 ; G 4313 +U 11033 ; WX 769 ; N uni2B19 ; G 4314 +U 11034 ; WX 945 ; N uni2B1A ; G 4315 +U 11039 ; WX 869 ; N uni2B1F ; G 4316 +U 11040 ; WX 869 ; N uni2B20 ; G 4317 +U 11041 ; WX 873 ; N uni2B21 ; G 4318 +U 11042 ; WX 873 ; N uni2B22 ; G 4319 +U 11043 ; WX 873 ; N uni2B23 ; G 4320 +U 11044 ; WX 1119 ; N uni2B24 ; G 4321 +U 11091 ; WX 869 ; N uni2B53 ; G 4322 +U 11092 ; WX 869 ; N uni2B54 ; G 4323 +U 11360 ; WX 637 ; N uni2C60 ; G 4324 +U 11361 ; WX 360 ; N uni2C61 ; G 4325 +U 11362 ; WX 637 ; N uni2C62 ; G 4326 +U 11363 ; WX 733 ; N uni2C63 ; G 4327 +U 11364 ; WX 770 ; N uni2C64 ; G 4328 +U 11365 ; WX 675 ; N uni2C65 ; G 4329 +U 11366 ; WX 478 ; N uni2C66 ; G 4330 +U 11367 ; WX 956 ; N uni2C67 ; G 4331 +U 11368 ; WX 712 ; N uni2C68 ; G 4332 +U 11369 ; WX 775 ; N uni2C69 ; G 4333 +U 11370 ; WX 665 ; N uni2C6A ; G 4334 +U 11371 ; WX 725 ; N uni2C6B ; G 4335 +U 11372 ; WX 582 ; N uni2C6C ; G 4336 +U 11373 ; WX 860 ; N uni2C6D ; G 4337 +U 11374 ; WX 995 ; N uni2C6E ; G 4338 +U 11375 ; WX 774 ; N uni2C6F ; G 4339 +U 11376 ; WX 860 ; N uni2C70 ; G 4340 +U 11377 ; WX 778 ; N uni2C71 ; G 4341 +U 11378 ; WX 1221 ; N uni2C72 ; G 4342 +U 11379 ; WX 1056 ; N uni2C73 ; G 4343 +U 11380 ; WX 652 ; N uni2C74 ; G 4344 +U 11381 ; WX 698 ; N uni2C75 ; G 4345 +U 11382 ; WX 565 ; N uni2C76 ; G 4346 +U 11383 ; WX 782 ; N uni2C77 ; G 4347 +U 11385 ; WX 538 ; N uni2C79 ; G 4348 +U 11386 ; WX 687 ; N uni2C7A ; G 4349 +U 11387 ; WX 559 ; N uni2C7B ; G 4350 +U 11388 ; WX 219 ; N uni2C7C ; G 4351 +U 11389 ; WX 487 ; N uni2C7D ; G 4352 +U 11390 ; WX 720 ; N uni2C7E ; G 4353 +U 11391 ; WX 725 ; N uni2C7F ; G 4354 +U 11520 ; WX 663 ; N uni2D00 ; G 4355 +U 11521 ; WX 676 ; N uni2D01 ; G 4356 +U 11522 ; WX 661 ; N uni2D02 ; G 4357 +U 11523 ; WX 629 ; N uni2D03 ; G 4358 +U 11524 ; WX 661 ; N uni2D04 ; G 4359 +U 11525 ; WX 1032 ; N uni2D05 ; G 4360 +U 11526 ; WX 718 ; N uni2D06 ; G 4361 +U 11527 ; WX 1032 ; N uni2D07 ; G 4362 +U 11528 ; WX 648 ; N uni2D08 ; G 4363 +U 11529 ; WX 667 ; N uni2D09 ; G 4364 +U 11530 ; WX 1032 ; N uni2D0A ; G 4365 +U 11531 ; WX 673 ; N uni2D0B ; G 4366 +U 11532 ; WX 677 ; N uni2D0C ; G 4367 +U 11533 ; WX 1036 ; N uni2D0D ; G 4368 +U 11534 ; WX 680 ; N uni2D0E ; G 4369 +U 11535 ; WX 886 ; N uni2D0F ; G 4370 +U 11536 ; WX 1032 ; N uni2D10 ; G 4371 +U 11537 ; WX 683 ; N uni2D11 ; G 4372 +U 11538 ; WX 674 ; N uni2D12 ; G 4373 +U 11539 ; WX 1035 ; N uni2D13 ; G 4374 +U 11540 ; WX 1033 ; N uni2D14 ; G 4375 +U 11541 ; WX 1027 ; N uni2D15 ; G 4376 +U 11542 ; WX 676 ; N uni2D16 ; G 4377 +U 11543 ; WX 673 ; N uni2D17 ; G 4378 +U 11544 ; WX 667 ; N uni2D18 ; G 4379 +U 11545 ; WX 667 ; N uni2D19 ; G 4380 +U 11546 ; WX 660 ; N uni2D1A ; G 4381 +U 11547 ; WX 671 ; N uni2D1B ; G 4382 +U 11548 ; WX 1039 ; N uni2D1C ; G 4383 +U 11549 ; WX 673 ; N uni2D1D ; G 4384 +U 11550 ; WX 692 ; N uni2D1E ; G 4385 +U 11551 ; WX 659 ; N uni2D1F ; G 4386 +U 11552 ; WX 1048 ; N uni2D20 ; G 4387 +U 11553 ; WX 660 ; N uni2D21 ; G 4388 +U 11554 ; WX 654 ; N uni2D22 ; G 4389 +U 11555 ; WX 670 ; N uni2D23 ; G 4390 +U 11556 ; WX 733 ; N uni2D24 ; G 4391 +U 11557 ; WX 1017 ; N uni2D25 ; G 4392 +U 11800 ; WX 580 ; N uni2E18 ; G 4393 +U 11807 ; WX 838 ; N uni2E1F ; G 4394 +U 11810 ; WX 457 ; N uni2E22 ; G 4395 +U 11811 ; WX 457 ; N uni2E23 ; G 4396 +U 11812 ; WX 457 ; N uni2E24 ; G 4397 +U 11813 ; WX 457 ; N uni2E25 ; G 4398 +U 11822 ; WX 580 ; N uni2E2E ; G 4399 +U 19904 ; WX 896 ; N uni4DC0 ; G 4400 +U 19905 ; WX 896 ; N uni4DC1 ; G 4401 +U 19906 ; WX 896 ; N uni4DC2 ; G 4402 +U 19907 ; WX 896 ; N uni4DC3 ; G 4403 +U 19908 ; WX 896 ; N uni4DC4 ; G 4404 +U 19909 ; WX 896 ; N uni4DC5 ; G 4405 +U 19910 ; WX 896 ; N uni4DC6 ; G 4406 +U 19911 ; WX 896 ; N uni4DC7 ; G 4407 +U 19912 ; WX 896 ; N uni4DC8 ; G 4408 +U 19913 ; WX 896 ; N uni4DC9 ; G 4409 +U 19914 ; WX 896 ; N uni4DCA ; G 4410 +U 19915 ; WX 896 ; N uni4DCB ; G 4411 +U 19916 ; WX 896 ; N uni4DCC ; G 4412 +U 19917 ; WX 896 ; N uni4DCD ; G 4413 +U 19918 ; WX 896 ; N uni4DCE ; G 4414 +U 19919 ; WX 896 ; N uni4DCF ; G 4415 +U 19920 ; WX 896 ; N uni4DD0 ; G 4416 +U 19921 ; WX 896 ; N uni4DD1 ; G 4417 +U 19922 ; WX 896 ; N uni4DD2 ; G 4418 +U 19923 ; WX 896 ; N uni4DD3 ; G 4419 +U 19924 ; WX 896 ; N uni4DD4 ; G 4420 +U 19925 ; WX 896 ; N uni4DD5 ; G 4421 +U 19926 ; WX 896 ; N uni4DD6 ; G 4422 +U 19927 ; WX 896 ; N uni4DD7 ; G 4423 +U 19928 ; WX 896 ; N uni4DD8 ; G 4424 +U 19929 ; WX 896 ; N uni4DD9 ; G 4425 +U 19930 ; WX 896 ; N uni4DDA ; G 4426 +U 19931 ; WX 896 ; N uni4DDB ; G 4427 +U 19932 ; WX 896 ; N uni4DDC ; G 4428 +U 19933 ; WX 896 ; N uni4DDD ; G 4429 +U 19934 ; WX 896 ; N uni4DDE ; G 4430 +U 19935 ; WX 896 ; N uni4DDF ; G 4431 +U 19936 ; WX 896 ; N uni4DE0 ; G 4432 +U 19937 ; WX 896 ; N uni4DE1 ; G 4433 +U 19938 ; WX 896 ; N uni4DE2 ; G 4434 +U 19939 ; WX 896 ; N uni4DE3 ; G 4435 +U 19940 ; WX 896 ; N uni4DE4 ; G 4436 +U 19941 ; WX 896 ; N uni4DE5 ; G 4437 +U 19942 ; WX 896 ; N uni4DE6 ; G 4438 +U 19943 ; WX 896 ; N uni4DE7 ; G 4439 +U 19944 ; WX 896 ; N uni4DE8 ; G 4440 +U 19945 ; WX 896 ; N uni4DE9 ; G 4441 +U 19946 ; WX 896 ; N uni4DEA ; G 4442 +U 19947 ; WX 896 ; N uni4DEB ; G 4443 +U 19948 ; WX 896 ; N uni4DEC ; G 4444 +U 19949 ; WX 896 ; N uni4DED ; G 4445 +U 19950 ; WX 896 ; N uni4DEE ; G 4446 +U 19951 ; WX 896 ; N uni4DEF ; G 4447 +U 19952 ; WX 896 ; N uni4DF0 ; G 4448 +U 19953 ; WX 896 ; N uni4DF1 ; G 4449 +U 19954 ; WX 896 ; N uni4DF2 ; G 4450 +U 19955 ; WX 896 ; N uni4DF3 ; G 4451 +U 19956 ; WX 896 ; N uni4DF4 ; G 4452 +U 19957 ; WX 896 ; N uni4DF5 ; G 4453 +U 19958 ; WX 896 ; N uni4DF6 ; G 4454 +U 19959 ; WX 896 ; N uni4DF7 ; G 4455 +U 19960 ; WX 896 ; N uni4DF8 ; G 4456 +U 19961 ; WX 896 ; N uni4DF9 ; G 4457 +U 19962 ; WX 896 ; N uni4DFA ; G 4458 +U 19963 ; WX 896 ; N uni4DFB ; G 4459 +U 19964 ; WX 896 ; N uni4DFC ; G 4460 +U 19965 ; WX 896 ; N uni4DFD ; G 4461 +U 19966 ; WX 896 ; N uni4DFE ; G 4462 +U 19967 ; WX 896 ; N uni4DFF ; G 4463 +U 42192 ; WX 762 ; N uniA4D0 ; G 4464 +U 42193 ; WX 733 ; N uniA4D1 ; G 4465 +U 42194 ; WX 733 ; N uniA4D2 ; G 4466 +U 42195 ; WX 830 ; N uniA4D3 ; G 4467 +U 42196 ; WX 682 ; N uniA4D4 ; G 4468 +U 42197 ; WX 682 ; N uniA4D5 ; G 4469 +U 42198 ; WX 821 ; N uniA4D6 ; G 4470 +U 42199 ; WX 775 ; N uniA4D7 ; G 4471 +U 42200 ; WX 775 ; N uniA4D8 ; G 4472 +U 42201 ; WX 530 ; N uniA4D9 ; G 4473 +U 42202 ; WX 734 ; N uniA4DA ; G 4474 +U 42203 ; WX 734 ; N uniA4DB ; G 4475 +U 42204 ; WX 725 ; N uniA4DC ; G 4476 +U 42205 ; WX 683 ; N uniA4DD ; G 4477 +U 42206 ; WX 683 ; N uniA4DE ; G 4478 +U 42207 ; WX 995 ; N uniA4DF ; G 4479 +U 42208 ; WX 837 ; N uniA4E0 ; G 4480 +U 42209 ; WX 637 ; N uniA4E1 ; G 4481 +U 42210 ; WX 720 ; N uniA4E2 ; G 4482 +U 42211 ; WX 770 ; N uniA4E3 ; G 4483 +U 42212 ; WX 770 ; N uniA4E4 ; G 4484 +U 42213 ; WX 774 ; N uniA4E5 ; G 4485 +U 42214 ; WX 774 ; N uniA4E6 ; G 4486 +U 42215 ; WX 837 ; N uniA4E7 ; G 4487 +U 42216 ; WX 786 ; N uniA4E8 ; G 4488 +U 42217 ; WX 530 ; N uniA4E9 ; G 4489 +U 42218 ; WX 1103 ; N uniA4EA ; G 4490 +U 42219 ; WX 771 ; N uniA4EB ; G 4491 +U 42220 ; WX 724 ; N uniA4EC ; G 4492 +U 42221 ; WX 762 ; N uniA4ED ; G 4493 +U 42222 ; WX 774 ; N uniA4EE ; G 4494 +U 42223 ; WX 774 ; N uniA4EF ; G 4495 +U 42224 ; WX 683 ; N uniA4F0 ; G 4496 +U 42225 ; WX 683 ; N uniA4F1 ; G 4497 +U 42226 ; WX 372 ; N uniA4F2 ; G 4498 +U 42227 ; WX 850 ; N uniA4F3 ; G 4499 +U 42228 ; WX 812 ; N uniA4F4 ; G 4500 +U 42229 ; WX 812 ; N uniA4F5 ; G 4501 +U 42230 ; WX 576 ; N uniA4F6 ; G 4502 +U 42231 ; WX 830 ; N uniA4F7 ; G 4503 +U 42232 ; WX 322 ; N uniA4F8 ; G 4504 +U 42233 ; WX 322 ; N uniA4F9 ; G 4505 +U 42234 ; WX 674 ; N uniA4FA ; G 4506 +U 42235 ; WX 674 ; N uniA4FB ; G 4507 +U 42236 ; WX 322 ; N uniA4FC ; G 4508 +U 42237 ; WX 322 ; N uniA4FD ; G 4509 +U 42238 ; WX 588 ; N uniA4FE ; G 4510 +U 42239 ; WX 588 ; N uniA4FF ; G 4511 +U 42564 ; WX 720 ; N uniA644 ; G 4512 +U 42565 ; WX 595 ; N uniA645 ; G 4513 +U 42566 ; WX 436 ; N uniA646 ; G 4514 +U 42567 ; WX 440 ; N uniA647 ; G 4515 +U 42572 ; WX 1405 ; N uniA64C ; G 4516 +U 42573 ; WX 1173 ; N uniA64D ; G 4517 +U 42576 ; WX 1234 ; N uniA650 ; G 4518 +U 42577 ; WX 1027 ; N uniA651 ; G 4519 +U 42580 ; WX 1174 ; N uniA654 ; G 4520 +U 42581 ; WX 972 ; N uniA655 ; G 4521 +U 42582 ; WX 1100 ; N uniA656 ; G 4522 +U 42583 ; WX 969 ; N uniA657 ; G 4523 +U 42594 ; WX 1100 ; N uniA662 ; G 4524 +U 42595 ; WX 940 ; N uniA663 ; G 4525 +U 42596 ; WX 1096 ; N uniA664 ; G 4526 +U 42597 ; WX 915 ; N uniA665 ; G 4527 +U 42598 ; WX 1260 ; N uniA666 ; G 4528 +U 42599 ; WX 997 ; N uniA667 ; G 4529 +U 42600 ; WX 850 ; N uniA668 ; G 4530 +U 42601 ; WX 687 ; N uniA669 ; G 4531 +U 42602 ; WX 1037 ; N uniA66A ; G 4532 +U 42603 ; WX 868 ; N uniA66B ; G 4533 +U 42604 ; WX 1406 ; N uniA66C ; G 4534 +U 42605 ; WX 1106 ; N uniA66D ; G 4535 +U 42606 ; WX 961 ; N uniA66E ; G 4536 +U 42634 ; WX 944 ; N uniA68A ; G 4537 +U 42635 ; WX 749 ; N uniA68B ; G 4538 +U 42636 ; WX 682 ; N uniA68C ; G 4539 +U 42637 ; WX 580 ; N uniA68D ; G 4540 +U 42644 ; WX 808 ; N uniA694 ; G 4541 +U 42645 ; WX 712 ; N uniA695 ; G 4542 +U 42648 ; WX 1406 ; N uniA698 ; G 4543 +U 42649 ; WX 1106 ; N uniA699 ; G 4544 +U 42760 ; WX 500 ; N uniA708 ; G 4545 +U 42761 ; WX 500 ; N uniA709 ; G 4546 +U 42762 ; WX 500 ; N uniA70A ; G 4547 +U 42763 ; WX 500 ; N uniA70B ; G 4548 +U 42764 ; WX 500 ; N uniA70C ; G 4549 +U 42765 ; WX 500 ; N uniA70D ; G 4550 +U 42766 ; WX 500 ; N uniA70E ; G 4551 +U 42767 ; WX 500 ; N uniA70F ; G 4552 +U 42768 ; WX 500 ; N uniA710 ; G 4553 +U 42769 ; WX 500 ; N uniA711 ; G 4554 +U 42770 ; WX 500 ; N uniA712 ; G 4555 +U 42771 ; WX 500 ; N uniA713 ; G 4556 +U 42772 ; WX 500 ; N uniA714 ; G 4557 +U 42773 ; WX 500 ; N uniA715 ; G 4558 +U 42774 ; WX 500 ; N uniA716 ; G 4559 +U 42779 ; WX 400 ; N uniA71B ; G 4560 +U 42780 ; WX 400 ; N uniA71C ; G 4561 +U 42781 ; WX 287 ; N uniA71D ; G 4562 +U 42782 ; WX 287 ; N uniA71E ; G 4563 +U 42783 ; WX 287 ; N uniA71F ; G 4564 +U 42786 ; WX 444 ; N uniA722 ; G 4565 +U 42787 ; WX 390 ; N uniA723 ; G 4566 +U 42788 ; WX 540 ; N uniA724 ; G 4567 +U 42789 ; WX 540 ; N uniA725 ; G 4568 +U 42790 ; WX 837 ; N uniA726 ; G 4569 +U 42791 ; WX 712 ; N uniA727 ; G 4570 +U 42792 ; WX 1031 ; N uniA728 ; G 4571 +U 42793 ; WX 857 ; N uniA729 ; G 4572 +U 42794 ; WX 696 ; N uniA72A ; G 4573 +U 42795 ; WX 557 ; N uniA72B ; G 4574 +U 42800 ; WX 559 ; N uniA730 ; G 4575 +U 42801 ; WX 595 ; N uniA731 ; G 4576 +U 42802 ; WX 1349 ; N uniA732 ; G 4577 +U 42803 ; WX 1052 ; N uniA733 ; G 4578 +U 42804 ; WX 1285 ; N uniA734 ; G 4579 +U 42805 ; WX 1065 ; N uniA735 ; G 4580 +U 42806 ; WX 1245 ; N uniA736 ; G 4581 +U 42807 ; WX 1052 ; N uniA737 ; G 4582 +U 42808 ; WX 1079 ; N uniA738 ; G 4583 +U 42809 ; WX 922 ; N uniA739 ; G 4584 +U 42810 ; WX 1079 ; N uniA73A ; G 4585 +U 42811 ; WX 922 ; N uniA73B ; G 4586 +U 42812 ; WX 1035 ; N uniA73C ; G 4587 +U 42813 ; WX 922 ; N uniA73D ; G 4588 +U 42814 ; WX 698 ; N uniA73E ; G 4589 +U 42815 ; WX 549 ; N uniA73F ; G 4590 +U 42816 ; WX 656 ; N uniA740 ; G 4591 +U 42817 ; WX 579 ; N uniA741 ; G 4592 +U 42822 ; WX 850 ; N uniA746 ; G 4593 +U 42823 ; WX 542 ; N uniA747 ; G 4594 +U 42824 ; WX 683 ; N uniA748 ; G 4595 +U 42825 ; WX 531 ; N uniA749 ; G 4596 +U 42826 ; WX 918 ; N uniA74A ; G 4597 +U 42827 ; WX 814 ; N uniA74B ; G 4598 +U 42830 ; WX 1406 ; N uniA74E ; G 4599 +U 42831 ; WX 1106 ; N uniA74F ; G 4600 +U 42832 ; WX 733 ; N uniA750 ; G 4601 +U 42833 ; WX 716 ; N uniA751 ; G 4602 +U 42834 ; WX 948 ; N uniA752 ; G 4603 +U 42835 ; WX 937 ; N uniA753 ; G 4604 +U 42838 ; WX 850 ; N uniA756 ; G 4605 +U 42839 ; WX 716 ; N uniA757 ; G 4606 +U 42852 ; WX 738 ; N uniA764 ; G 4607 +U 42853 ; WX 716 ; N uniA765 ; G 4608 +U 42854 ; WX 738 ; N uniA766 ; G 4609 +U 42855 ; WX 716 ; N uniA767 ; G 4610 +U 42880 ; WX 637 ; N uniA780 ; G 4611 +U 42881 ; WX 343 ; N uniA781 ; G 4612 +U 42882 ; WX 837 ; N uniA782 ; G 4613 +U 42883 ; WX 712 ; N uniA783 ; G 4614 +U 42889 ; WX 400 ; N uniA789 ; G 4615 +U 42890 ; WX 396 ; N uniA78A ; G 4616 +U 42891 ; WX 456 ; N uniA78B ; G 4617 +U 42892 ; WX 306 ; N uniA78C ; G 4618 +U 42893 ; WX 808 ; N uniA78D ; G 4619 +U 42894 ; WX 693 ; N uniA78E ; G 4620 +U 42896 ; WX 928 ; N uniA790 ; G 4621 +U 42897 ; WX 768 ; N uniA791 ; G 4622 +U 42912 ; WX 821 ; N uniA7A0 ; G 4623 +U 42913 ; WX 716 ; N uniA7A1 ; G 4624 +U 42914 ; WX 775 ; N uniA7A2 ; G 4625 +U 42915 ; WX 665 ; N uniA7A3 ; G 4626 +U 42916 ; WX 837 ; N uniA7A4 ; G 4627 +U 42917 ; WX 712 ; N uniA7A5 ; G 4628 +U 42918 ; WX 770 ; N uniA7A6 ; G 4629 +U 42919 ; WX 493 ; N uniA7A7 ; G 4630 +U 42920 ; WX 720 ; N uniA7A8 ; G 4631 +U 42921 ; WX 595 ; N uniA7A9 ; G 4632 +U 42922 ; WX 886 ; N uniA7AA ; G 4633 +U 43000 ; WX 613 ; N uniA7F8 ; G 4634 +U 43001 ; WX 689 ; N uniA7F9 ; G 4635 +U 43002 ; WX 1062 ; N uniA7FA ; G 4636 +U 43003 ; WX 683 ; N uniA7FB ; G 4637 +U 43004 ; WX 733 ; N uniA7FC ; G 4638 +U 43005 ; WX 995 ; N uniA7FD ; G 4639 +U 43006 ; WX 372 ; N uniA7FE ; G 4640 +U 43007 ; WX 1325 ; N uniA7FF ; G 4641 +U 61184 ; WX 216 ; N uni02E5.5 ; G 4642 +U 61185 ; WX 242 ; N uni02E6.5 ; G 4643 +U 61186 ; WX 267 ; N uni02E7.5 ; G 4644 +U 61187 ; WX 277 ; N uni02E8.5 ; G 4645 +U 61188 ; WX 282 ; N uni02E9.5 ; G 4646 +U 61189 ; WX 242 ; N uni02E5.4 ; G 4647 +U 61190 ; WX 216 ; N uni02E6.4 ; G 4648 +U 61191 ; WX 242 ; N uni02E7.4 ; G 4649 +U 61192 ; WX 267 ; N uni02E8.4 ; G 4650 +U 61193 ; WX 277 ; N uni02E9.4 ; G 4651 +U 61194 ; WX 267 ; N uni02E5.3 ; G 4652 +U 61195 ; WX 242 ; N uni02E6.3 ; G 4653 +U 61196 ; WX 216 ; N uni02E7.3 ; G 4654 +U 61197 ; WX 242 ; N uni02E8.3 ; G 4655 +U 61198 ; WX 267 ; N uni02E9.3 ; G 4656 +U 61199 ; WX 277 ; N uni02E5.2 ; G 4657 +U 61200 ; WX 267 ; N uni02E6.2 ; G 4658 +U 61201 ; WX 242 ; N uni02E7.2 ; G 4659 +U 61202 ; WX 216 ; N uni02E8.2 ; G 4660 +U 61203 ; WX 242 ; N uni02E9.2 ; G 4661 +U 61204 ; WX 282 ; N uni02E5.1 ; G 4662 +U 61205 ; WX 277 ; N uni02E6.1 ; G 4663 +U 61206 ; WX 267 ; N uni02E7.1 ; G 4664 +U 61207 ; WX 242 ; N uni02E8.1 ; G 4665 +U 61208 ; WX 216 ; N uni02E9.1 ; G 4666 +U 61209 ; WX 282 ; N stem ; G 4667 +U 62464 ; WX 612 ; N uniF400 ; G 4668 +U 62465 ; WX 612 ; N uniF401 ; G 4669 +U 62466 ; WX 653 ; N uniF402 ; G 4670 +U 62467 ; WX 902 ; N uniF403 ; G 4671 +U 62468 ; WX 617 ; N uniF404 ; G 4672 +U 62469 ; WX 617 ; N uniF405 ; G 4673 +U 62470 ; WX 680 ; N uniF406 ; G 4674 +U 62471 ; WX 904 ; N uniF407 ; G 4675 +U 62472 ; WX 599 ; N uniF408 ; G 4676 +U 62473 ; WX 617 ; N uniF409 ; G 4677 +U 62474 ; WX 1163 ; N uniF40A ; G 4678 +U 62475 ; WX 621 ; N uniF40B ; G 4679 +U 62476 ; WX 622 ; N uniF40C ; G 4680 +U 62477 ; WX 893 ; N uniF40D ; G 4681 +U 62478 ; WX 612 ; N uniF40E ; G 4682 +U 62479 ; WX 622 ; N uniF40F ; G 4683 +U 62480 ; WX 924 ; N uniF410 ; G 4684 +U 62481 ; WX 622 ; N uniF411 ; G 4685 +U 62482 ; WX 754 ; N uniF412 ; G 4686 +U 62483 ; WX 624 ; N uniF413 ; G 4687 +U 62484 ; WX 886 ; N uniF414 ; G 4688 +U 62485 ; WX 622 ; N uniF415 ; G 4689 +U 62486 ; WX 907 ; N uniF416 ; G 4690 +U 62487 ; WX 621 ; N uniF417 ; G 4691 +U 62488 ; WX 611 ; N uniF418 ; G 4692 +U 62489 ; WX 624 ; N uniF419 ; G 4693 +U 62490 ; WX 677 ; N uniF41A ; G 4694 +U 62491 ; WX 621 ; N uniF41B ; G 4695 +U 62492 ; WX 611 ; N uniF41C ; G 4696 +U 62493 ; WX 630 ; N uniF41D ; G 4697 +U 62494 ; WX 622 ; N uniF41E ; G 4698 +U 62495 ; WX 561 ; N uniF41F ; G 4699 +U 62496 ; WX 612 ; N uniF420 ; G 4700 +U 62497 ; WX 626 ; N uniF421 ; G 4701 +U 62498 ; WX 612 ; N uniF422 ; G 4702 +U 62499 ; WX 611 ; N uniF423 ; G 4703 +U 62500 ; WX 618 ; N uniF424 ; G 4704 +U 62501 ; WX 667 ; N uniF425 ; G 4705 +U 62502 ; WX 963 ; N uniF426 ; G 4706 +U 62504 ; WX 1023 ; N uniF428 ; G 4707 +U 62505 ; WX 844 ; N uniF429 ; G 4708 +U 62506 ; WX 563 ; N uniF42A ; G 4709 +U 62507 ; WX 563 ; N uniF42B ; G 4710 +U 62508 ; WX 563 ; N uniF42C ; G 4711 +U 62509 ; WX 563 ; N uniF42D ; G 4712 +U 62510 ; WX 563 ; N uniF42E ; G 4713 +U 62511 ; WX 563 ; N uniF42F ; G 4714 +U 62512 ; WX 555 ; N uniF430 ; G 4715 +U 62513 ; WX 555 ; N uniF431 ; G 4716 +U 62514 ; WX 555 ; N uniF432 ; G 4717 +U 62515 ; WX 555 ; N uniF433 ; G 4718 +U 62516 ; WX 573 ; N uniF434 ; G 4719 +U 62517 ; WX 573 ; N uniF435 ; G 4720 +U 62518 ; WX 573 ; N uniF436 ; G 4721 +U 62519 ; WX 824 ; N uniF437 ; G 4722 +U 62520 ; WX 824 ; N uniF438 ; G 4723 +U 62521 ; WX 824 ; N uniF439 ; G 4724 +U 62522 ; WX 824 ; N uniF43A ; G 4725 +U 62523 ; WX 824 ; N uniF43B ; G 4726 +U 62524 ; WX 611 ; N uniF43C ; G 4727 +U 62525 ; WX 611 ; N uniF43D ; G 4728 +U 62526 ; WX 611 ; N uniF43E ; G 4729 +U 62527 ; WX 611 ; N uniF43F ; G 4730 +U 62528 ; WX 611 ; N uniF440 ; G 4731 +U 62529 ; WX 611 ; N uniF441 ; G 4732 +U 62917 ; WX 687 ; N uniF5C5 ; G 4733 +U 64256 ; WX 833 ; N uniFB00 ; G 4734 +U 64257 ; WX 787 ; N fi ; G 4735 +U 64258 ; WX 787 ; N fl ; G 4736 +U 64259 ; WX 1138 ; N uniFB03 ; G 4737 +U 64260 ; WX 1139 ; N uniFB04 ; G 4738 +U 64261 ; WX 808 ; N uniFB05 ; G 4739 +U 64262 ; WX 1020 ; N uniFB06 ; G 4740 +U 64275 ; WX 1388 ; N uniFB13 ; G 4741 +U 64276 ; WX 1384 ; N uniFB14 ; G 4742 +U 64277 ; WX 1378 ; N uniFB15 ; G 4743 +U 64278 ; WX 1384 ; N uniFB16 ; G 4744 +U 64279 ; WX 1713 ; N uniFB17 ; G 4745 +U 64285 ; WX 294 ; N uniFB1D ; G 4746 +U 64286 ; WX 0 ; N uniFB1E ; G 4747 +U 64287 ; WX 663 ; N uniFB1F ; G 4748 +U 64288 ; WX 665 ; N uniFB20 ; G 4749 +U 64289 ; WX 939 ; N uniFB21 ; G 4750 +U 64290 ; WX 788 ; N uniFB22 ; G 4751 +U 64291 ; WX 920 ; N uniFB23 ; G 4752 +U 64292 ; WX 786 ; N uniFB24 ; G 4753 +U 64293 ; WX 857 ; N uniFB25 ; G 4754 +U 64294 ; WX 869 ; N uniFB26 ; G 4755 +U 64295 ; WX 821 ; N uniFB27 ; G 4756 +U 64296 ; WX 890 ; N uniFB28 ; G 4757 +U 64297 ; WX 838 ; N uniFB29 ; G 4758 +U 64298 ; WX 749 ; N uniFB2A ; G 4759 +U 64299 ; WX 749 ; N uniFB2B ; G 4760 +U 64300 ; WX 749 ; N uniFB2C ; G 4761 +U 64301 ; WX 749 ; N uniFB2D ; G 4762 +U 64302 ; WX 728 ; N uniFB2E ; G 4763 +U 64303 ; WX 728 ; N uniFB2F ; G 4764 +U 64304 ; WX 728 ; N uniFB30 ; G 4765 +U 64305 ; WX 610 ; N uniFB31 ; G 4766 +U 64306 ; WX 447 ; N uniFB32 ; G 4767 +U 64307 ; WX 588 ; N uniFB33 ; G 4768 +U 64308 ; WX 687 ; N uniFB34 ; G 4769 +U 64309 ; WX 343 ; N uniFB35 ; G 4770 +U 64310 ; WX 400 ; N uniFB36 ; G 4771 +U 64311 ; WX 1000 ; N uniFB37 ; G 4772 +U 64312 ; WX 679 ; N uniFB38 ; G 4773 +U 64313 ; WX 436 ; N uniFB39 ; G 4774 +U 64314 ; WX 578 ; N uniFB3A ; G 4775 +U 64315 ; WX 566 ; N uniFB3B ; G 4776 +U 64316 ; WX 605 ; N uniFB3C ; G 4777 +U 64317 ; WX 1000 ; N uniFB3D ; G 4778 +U 64318 ; WX 724 ; N uniFB3E ; G 4779 +U 64319 ; WX 1000 ; N uniFB3F ; G 4780 +U 64320 ; WX 453 ; N uniFB40 ; G 4781 +U 64321 ; WX 680 ; N uniFB41 ; G 4782 +U 64322 ; WX 1000 ; N uniFB42 ; G 4783 +U 64323 ; WX 675 ; N uniFB43 ; G 4784 +U 64324 ; WX 658 ; N uniFB44 ; G 4785 +U 64325 ; WX 1000 ; N uniFB45 ; G 4786 +U 64326 ; WX 653 ; N uniFB46 ; G 4787 +U 64327 ; WX 736 ; N uniFB47 ; G 4788 +U 64328 ; WX 602 ; N uniFB48 ; G 4789 +U 64329 ; WX 749 ; N uniFB49 ; G 4790 +U 64330 ; WX 683 ; N uniFB4A ; G 4791 +U 64331 ; WX 343 ; N uniFB4B ; G 4792 +U 64332 ; WX 610 ; N uniFB4C ; G 4793 +U 64333 ; WX 566 ; N uniFB4D ; G 4794 +U 64334 ; WX 658 ; N uniFB4E ; G 4795 +U 64335 ; WX 710 ; N uniFB4F ; G 4796 +U 65024 ; WX 0 ; N uniFE00 ; G 4797 +U 65025 ; WX 0 ; N uniFE01 ; G 4798 +U 65026 ; WX 0 ; N uniFE02 ; G 4799 +U 65027 ; WX 0 ; N uniFE03 ; G 4800 +U 65028 ; WX 0 ; N uniFE04 ; G 4801 +U 65029 ; WX 0 ; N uniFE05 ; G 4802 +U 65030 ; WX 0 ; N uniFE06 ; G 4803 +U 65031 ; WX 0 ; N uniFE07 ; G 4804 +U 65032 ; WX 0 ; N uniFE08 ; G 4805 +U 65033 ; WX 0 ; N uniFE09 ; G 4806 +U 65034 ; WX 0 ; N uniFE0A ; G 4807 +U 65035 ; WX 0 ; N uniFE0B ; G 4808 +U 65036 ; WX 0 ; N uniFE0C ; G 4809 +U 65037 ; WX 0 ; N uniFE0D ; G 4810 +U 65038 ; WX 0 ; N uniFE0E ; G 4811 +U 65039 ; WX 0 ; N uniFE0F ; G 4812 +U 65056 ; WX 0 ; N uniFE20 ; G 4813 +U 65057 ; WX 0 ; N uniFE21 ; G 4814 +U 65058 ; WX 0 ; N uniFE22 ; G 4815 +U 65059 ; WX 0 ; N uniFE23 ; G 4816 +U 65529 ; WX 0 ; N uniFFF9 ; G 4817 +U 65530 ; WX 0 ; N uniFFFA ; G 4818 +U 65531 ; WX 0 ; N uniFFFB ; G 4819 +U 65532 ; WX 0 ; N uniFFFC ; G 4820 +U 65533 ; WX 1113 ; N uniFFFD ; G 4821 +EndCharMetrics +StartKernData +StartKernPairs 1921 + +KPX dollar ampersand -63 +KPX dollar two -63 +KPX dollar seven -196 +KPX dollar eight -92 +KPX dollar nine -139 +KPX dollar colon -112 +KPX dollar less -235 +KPX dollar F -63 +KPX dollar G -63 +KPX dollar W -112 +KPX dollar Y -112 +KPX dollar Z -92 +KPX dollar backslash -149 +KPX dollar copyright -63 +KPX dollar questiondown -149 +KPX dollar Aacute -149 +KPX dollar Egrave -63 +KPX dollar Eacute -63 +KPX dollar Ecircumflex -63 +KPX dollar Edieresis -63 +KPX dollar Igrave -63 +KPX dollar Iacute -63 +KPX dollar Icircumflex -63 +KPX dollar Idieresis -63 +KPX dollar Ntilde -63 +KPX dollar Oacute -63 +KPX dollar Dcaron -63 +KPX dollar Dcroat -63 +KPX dollar Emacron -63 +KPX dollar Ebreve -63 +KPX dollar Hcircumflex -196 +KPX dollar hcircumflex -112 +KPX dollar Hbar -196 +KPX dollar hbar -112 +KPX dollar Imacron -92 +KPX dollar Ibreve -92 +KPX dollar Iogonek -92 +KPX dollar Idot -92 +KPX dollar IJ -92 +KPX dollar Jcircumflex -92 +KPX dollar Kcommaaccent -112 +KPX dollar kcommaaccent -92 +KPX dollar kgreenlandic -235 +KPX dollar Lacute -149 +KPX dollar lacute -235 +KPX dollar uni01AC -63 +KPX dollar uni01AE -63 +KPX dollar uni01DC -196 +KPX dollar uni01DD -112 +KPX dollar uni01F0 -63 +KPX dollar uni01F4 -235 +KPX dollar uni01F5 -149 + +KPX percent nine -83 +KPX percent colon -112 +KPX percent less -112 +KPX percent Kcommaaccent -112 +KPX percent kgreenlandic -112 +KPX percent lacute -112 +KPX percent uni01F4 -112 + +KPX ampersand six -73 +KPX ampersand Gcircumflex -73 +KPX ampersand Gbreve -73 +KPX ampersand Gdotaccent -73 +KPX ampersand Gcommaaccent -73 +KPX ampersand uni01DA -73 + +KPX quotesingle less -159 +KPX quotesingle kgreenlandic -159 +KPX quotesingle lacute -159 +KPX quotesingle uni01F4 -159 + +KPX parenright dollar -264 +KPX parenright D -235 +KPX parenright H -159 +KPX parenright R -159 +KPX parenright U -225 +KPX parenright X -196 +KPX parenright backslash -188 +KPX parenright cent -235 +KPX parenright sterling -235 +KPX parenright currency -235 +KPX parenright yen -235 +KPX parenright brokenbar -235 +KPX parenright section -235 +KPX parenright dieresis -235 +KPX parenright ordfeminine -159 +KPX parenright guillemotleft -159 +KPX parenright logicalnot -159 +KPX parenright sfthyphen -159 +KPX parenright acute -159 +KPX parenright mu -159 +KPX parenright paragraph -159 +KPX parenright periodcentered -159 +KPX parenright cedilla -159 +KPX parenright ordmasculine -159 +KPX parenright guillemotright -196 +KPX parenright onequarter -196 +KPX parenright onehalf -196 +KPX parenright threequarters -196 +KPX parenright questiondown -188 +KPX parenright Aacute -188 +KPX parenright Acircumflex -264 +KPX parenright Atilde -235 +KPX parenright Adieresis -264 +KPX parenright Aring -235 +KPX parenright AE -264 +KPX parenright Ccedilla -235 +KPX parenright Otilde -159 +KPX parenright multiply -159 +KPX parenright Ugrave -159 +KPX parenright Ucircumflex -159 +KPX parenright Yacute -159 +KPX parenright dcaron -159 +KPX parenright dmacron -159 +KPX parenright emacron -159 +KPX parenright ebreve -159 +KPX parenright edotaccent -225 +KPX parenright eogonek -225 +KPX parenright ecaron -225 +KPX parenright imacron -196 +KPX parenright ibreve -196 +KPX parenright iogonek -196 +KPX parenright dotlessi -196 +KPX parenright ij -196 +KPX parenright jcircumflex -196 +KPX parenright Lacute -188 +KPX parenright uni01A5 -235 +KPX parenright uni01AD -159 +KPX parenright Uhorn -159 +KPX parenright uni01F1 -159 +KPX parenright uni01F5 -188 + +KPX asterisk seven -36 +KPX asterisk less -83 +KPX asterisk Hbar -36 +KPX asterisk lacute -83 + +KPX period ampersand -131 +KPX period two -131 +KPX period eight -73 +KPX period colon -55 +KPX period H -112 +KPX period R -112 +KPX period X -112 +KPX period backslash -206 +KPX period ordfeminine -112 +KPX period guillemotleft -112 +KPX period logicalnot -112 +KPX period sfthyphen -112 +KPX period acute -112 +KPX period mu -112 +KPX period paragraph -112 +KPX period periodcentered -112 +KPX period cedilla -112 +KPX period ordmasculine -112 +KPX period guillemotright -112 +KPX period onequarter -112 +KPX period onehalf -112 +KPX period threequarters -112 +KPX period questiondown -206 +KPX period Aacute -206 +KPX period Egrave -131 +KPX period Icircumflex -131 +KPX period Yacute -112 +KPX period Ebreve -178 +KPX period ebreve -112 +KPX period Idot -73 +KPX period dotlessi -112 + +KPX slash two -73 +KPX slash seven -339 +KPX slash eight -112 +KPX slash nine -282 +KPX slash colon -178 +KPX slash less -319 +KPX slash backslash -253 +KPX slash questiondown -253 +KPX slash Aacute -253 +KPX slash Ebreve -73 +KPX slash Hbar -339 +KPX slash Idot -112 +KPX slash lacute -319 + +KPX two nine -73 +KPX two semicolon -73 +KPX two less -149 +KPX two lacute -149 + +KPX three dollar -188 +KPX three D -131 +KPX three H -55 +KPX three U -63 +KPX three V -73 +KPX three X -73 +KPX three cent -131 +KPX three sterling -131 +KPX three currency -131 +KPX three yen -131 +KPX three brokenbar -131 +KPX three section -131 +KPX three dieresis -131 +KPX three ordfeminine -55 +KPX three guillemotleft -55 +KPX three logicalnot -55 +KPX three sfthyphen -55 +KPX three guillemotright -73 +KPX three onequarter -73 +KPX three onehalf -73 +KPX three threequarters -73 +KPX three Yacute -55 +KPX three edotaccent -63 +KPX three ecaron -63 +KPX three gdotaccent -73 +KPX three gcommaaccent -73 +KPX three dotlessi -73 + + +KPX five seven -92 +KPX five less -188 +KPX five H -102 +KPX five R -102 +KPX five X -112 +KPX five backslash -131 +KPX five ordfeminine -102 +KPX five guillemotleft -102 +KPX five logicalnot -102 +KPX five sfthyphen -102 +KPX five acute -102 +KPX five mu -102 +KPX five paragraph -102 +KPX five periodcentered -102 +KPX five cedilla -102 +KPX five ordmasculine -102 +KPX five guillemotright -112 +KPX five onequarter -112 +KPX five onehalf -112 +KPX five threequarters -112 +KPX five questiondown -131 +KPX five Aacute -131 +KPX five Yacute -102 +KPX five ebreve -102 +KPX five Hbar -92 +KPX five dotlessi -112 +KPX five lacute -188 + +KPX six six -73 +KPX six Gdotaccent -73 +KPX six Gcommaaccent -73 + +KPX seven dollar -159 +KPX seven seven 47 +KPX seven D -243 +KPX seven F -264 +KPX seven H -264 +KPX seven R -264 +KPX seven U -225 +KPX seven V -243 +KPX seven X -264 +KPX seven Z -282 +KPX seven backslash -339 +KPX seven cent -243 +KPX seven sterling -243 +KPX seven currency -243 +KPX seven yen -243 +KPX seven brokenbar -243 +KPX seven section -243 +KPX seven dieresis -243 +KPX seven copyright -264 +KPX seven ordfeminine -264 +KPX seven guillemotleft -264 +KPX seven logicalnot -264 +KPX seven sfthyphen -264 +KPX seven acute -264 +KPX seven mu -264 +KPX seven paragraph -264 +KPX seven periodcentered -264 +KPX seven cedilla -264 +KPX seven ordmasculine -264 +KPX seven guillemotright -264 +KPX seven onequarter -264 +KPX seven onehalf -264 +KPX seven threequarters -264 +KPX seven questiondown -339 +KPX seven Aacute -339 +KPX seven Eacute -264 +KPX seven Idieresis -264 +KPX seven Yacute -264 +KPX seven ebreve -264 +KPX seven edotaccent -225 +KPX seven ecaron -225 +KPX seven gdotaccent -243 +KPX seven gcommaaccent -243 +KPX seven Hbar 47 +KPX seven dotlessi -264 + +KPX eight dollar -92 + +KPX nine dollar -139 +KPX nine two -36 +KPX nine D -159 +KPX nine H -149 +KPX nine L -36 +KPX nine R -149 +KPX nine X -149 +KPX nine cent -159 +KPX nine sterling -159 +KPX nine currency -159 +KPX nine yen -159 +KPX nine brokenbar -159 +KPX nine section -159 +KPX nine dieresis -159 +KPX nine ordfeminine -149 +KPX nine guillemotleft -149 +KPX nine logicalnot -149 +KPX nine sfthyphen -149 +KPX nine acute -149 +KPX nine mu -149 +KPX nine paragraph -149 +KPX nine periodcentered -149 +KPX nine cedilla -149 +KPX nine ordmasculine -149 +KPX nine guillemotright -149 +KPX nine onequarter -149 +KPX nine onehalf -149 +KPX nine threequarters -149 +KPX nine Yacute -149 +KPX nine Ebreve -45 +KPX nine ebreve -149 +KPX nine dotlessi -149 + +KPX colon dollar -73 +KPX colon D -139 +KPX colon H -131 +KPX colon R -112 +KPX colon U -120 +KPX colon cent -139 +KPX colon sterling -139 +KPX colon currency -139 +KPX colon yen -139 +KPX colon brokenbar -139 +KPX colon section -139 +KPX colon dieresis -139 +KPX colon ordfeminine -131 +KPX colon guillemotleft -131 +KPX colon logicalnot -131 +KPX colon sfthyphen -131 +KPX colon acute -112 +KPX colon mu -112 +KPX colon paragraph -112 +KPX colon periodcentered -112 +KPX colon cedilla -112 +KPX colon ordmasculine -112 +KPX colon Yacute -131 +KPX colon ebreve -112 +KPX colon edotaccent -120 +KPX colon ecaron -120 + +KPX semicolon ampersand -73 +KPX semicolon two -73 +KPX semicolon H -131 +KPX semicolon ordfeminine -131 +KPX semicolon guillemotleft -131 +KPX semicolon logicalnot -131 +KPX semicolon sfthyphen -131 +KPX semicolon Egrave -73 +KPX semicolon Icircumflex -73 +KPX semicolon Yacute -131 +KPX semicolon Ebreve -112 + +KPX less dollar -196 +KPX less ampersand -73 +KPX less two -73 +KPX less D -243 +KPX less H -264 +KPX less R -264 +KPX less X -225 +KPX less cent -243 +KPX less sterling -243 +KPX less currency -243 +KPX less yen -243 +KPX less brokenbar -243 +KPX less section -243 +KPX less dieresis -243 +KPX less ordfeminine -264 +KPX less guillemotleft -264 +KPX less logicalnot -264 +KPX less sfthyphen -264 +KPX less acute -264 +KPX less mu -264 +KPX less paragraph -264 +KPX less periodcentered -264 +KPX less cedilla -264 +KPX less ordmasculine -264 +KPX less guillemotright -225 +KPX less onequarter -225 +KPX less onehalf -225 +KPX less threequarters -225 +KPX less Egrave -73 +KPX less Icircumflex -73 +KPX less Yacute -264 +KPX less Ebreve -120 +KPX less ebreve -264 +KPX less dotlessi -225 + + +KPX D backslash -63 +KPX D questiondown -63 +KPX D Aacute -63 + + +KPX N H -73 +KPX N R -73 +KPX N ordfeminine -73 +KPX N guillemotleft -73 +KPX N logicalnot -73 +KPX N sfthyphen -73 +KPX N acute -73 +KPX N mu -73 +KPX N paragraph -73 +KPX N periodcentered -73 +KPX N cedilla -73 +KPX N ordmasculine -45 +KPX N Yacute -73 +KPX N ebreve -73 + + + + + +KPX cent backslash -63 +KPX cent questiondown -63 +KPX cent Aacute -63 + +KPX sterling backslash -63 +KPX sterling questiondown -63 +KPX sterling Aacute -63 + +KPX currency backslash -63 +KPX currency questiondown -63 +KPX currency Aacute -63 + +KPX yen backslash -63 +KPX yen questiondown -63 +KPX yen Aacute -63 + +KPX brokenbar backslash -63 +KPX brokenbar questiondown -63 +KPX brokenbar Aacute -63 + +KPX section backslash -63 +KPX section questiondown -63 +KPX section Aacute -63 + + + +KPX Acircumflex ampersand -63 +KPX Acircumflex two -63 +KPX Acircumflex seven -196 +KPX Acircumflex eight -92 +KPX Acircumflex nine -139 +KPX Acircumflex colon -112 +KPX Acircumflex less -235 +KPX Acircumflex F -63 +KPX Acircumflex G -63 +KPX Acircumflex W -112 +KPX Acircumflex Y -112 +KPX Acircumflex Z -92 +KPX Acircumflex backslash -149 +KPX Acircumflex copyright -63 +KPX Acircumflex questiondown -149 +KPX Acircumflex Aacute -149 +KPX Acircumflex Egrave -63 +KPX Acircumflex Eacute -63 +KPX Acircumflex Ecircumflex -63 +KPX Acircumflex Edieresis -63 +KPX Acircumflex Igrave -63 +KPX Acircumflex Iacute -63 +KPX Acircumflex Icircumflex -63 +KPX Acircumflex Idieresis -63 +KPX Acircumflex Ntilde -63 +KPX Acircumflex Oacute -63 +KPX Acircumflex Dcaron -63 +KPX Acircumflex Dcroat -63 +KPX Acircumflex Emacron -63 +KPX Acircumflex Ebreve -63 +KPX Acircumflex Hcircumflex -196 +KPX Acircumflex hcircumflex -112 +KPX Acircumflex Hbar -196 +KPX Acircumflex hbar -112 +KPX Acircumflex Imacron -92 +KPX Acircumflex Ibreve -92 +KPX Acircumflex Iogonek -92 +KPX Acircumflex Idot -92 +KPX Acircumflex IJ -92 +KPX Acircumflex Jcircumflex -92 +KPX Acircumflex Kcommaaccent -112 +KPX Acircumflex kcommaaccent -92 +KPX Acircumflex kgreenlandic -235 +KPX Acircumflex Lacute -149 +KPX Acircumflex lacute -235 +KPX Acircumflex uni01AC -63 +KPX Acircumflex uni01AE -63 +KPX Acircumflex uni01DC -196 +KPX Acircumflex uni01DD -112 +KPX Acircumflex uni01F0 -63 +KPX Acircumflex uni01F4 -235 +KPX Acircumflex uni01F5 -149 + +KPX Adieresis ampersand -63 +KPX Adieresis two -63 +KPX Adieresis seven -196 +KPX Adieresis eight -92 +KPX Adieresis nine -139 +KPX Adieresis colon -112 +KPX Adieresis less -235 +KPX Adieresis F -63 +KPX Adieresis G -63 +KPX Adieresis W -112 +KPX Adieresis Y -112 +KPX Adieresis Z -92 +KPX Adieresis backslash -149 +KPX Adieresis copyright -63 +KPX Adieresis questiondown -149 +KPX Adieresis Aacute -149 +KPX Adieresis Egrave -63 +KPX Adieresis Eacute -63 +KPX Adieresis Ecircumflex -63 +KPX Adieresis Edieresis -63 +KPX Adieresis Igrave -63 +KPX Adieresis Iacute -63 +KPX Adieresis Icircumflex -63 +KPX Adieresis Idieresis -63 +KPX Adieresis Ntilde -63 +KPX Adieresis Oacute -63 +KPX Adieresis Dcaron -63 +KPX Adieresis Dcroat -63 +KPX Adieresis Emacron -63 +KPX Adieresis Ebreve -63 +KPX Adieresis Hcircumflex -196 +KPX Adieresis hcircumflex -112 +KPX Adieresis Hbar -196 +KPX Adieresis hbar -112 +KPX Adieresis Imacron -92 +KPX Adieresis Ibreve -92 +KPX Adieresis Iogonek -92 +KPX Adieresis Idot -92 +KPX Adieresis IJ -92 +KPX Adieresis Jcircumflex -92 +KPX Adieresis Kcommaaccent -112 +KPX Adieresis kcommaaccent -92 +KPX Adieresis kgreenlandic -235 +KPX Adieresis Lacute -149 +KPX Adieresis lacute -235 +KPX Adieresis uni01AC -63 +KPX Adieresis uni01AE -63 +KPX Adieresis uni01DC -196 +KPX Adieresis uni01DD -112 +KPX Adieresis uni01F0 -63 +KPX Adieresis uni01F4 -235 +KPX Adieresis uni01F5 -149 + +KPX AE ampersand -63 +KPX AE two -63 +KPX AE seven -196 +KPX AE eight -92 +KPX AE nine -139 +KPX AE colon -112 +KPX AE less -235 +KPX AE F -63 +KPX AE G -63 +KPX AE W -112 +KPX AE Y -112 +KPX AE Z -92 +KPX AE backslash -149 +KPX AE copyright -63 +KPX AE questiondown -149 +KPX AE Aacute -149 +KPX AE Egrave -63 +KPX AE Eacute -63 +KPX AE Ecircumflex -63 +KPX AE Edieresis -63 +KPX AE Igrave -63 +KPX AE Iacute -63 +KPX AE Icircumflex -63 +KPX AE Idieresis -63 +KPX AE Ntilde -63 +KPX AE Oacute -63 +KPX AE Dcaron -63 +KPX AE Dcroat -63 +KPX AE Emacron -63 +KPX AE Ebreve -63 +KPX AE Hcircumflex -196 +KPX AE hcircumflex -112 +KPX AE Hbar -196 +KPX AE hbar -112 +KPX AE Imacron -92 +KPX AE Ibreve -92 +KPX AE Iogonek -92 +KPX AE Idot -92 +KPX AE IJ -92 +KPX AE Jcircumflex -92 +KPX AE Kcommaaccent -112 +KPX AE kcommaaccent -92 +KPX AE kgreenlandic -235 +KPX AE Lacute -149 +KPX AE lacute -235 +KPX AE uni01AC -63 +KPX AE uni01AE -63 +KPX AE uni01DC -196 +KPX AE uni01DD -112 +KPX AE uni01F0 -63 +KPX AE uni01F4 -235 +KPX AE uni01F5 -149 + +KPX Egrave six -73 +KPX Egrave Gcircumflex -73 +KPX Egrave Gbreve -73 +KPX Egrave Gdotaccent -73 +KPX Egrave Gcommaaccent -73 +KPX Egrave uni01DA -73 + +KPX Ecircumflex six -73 +KPX Ecircumflex Gcircumflex -73 +KPX Ecircumflex Gbreve -73 +KPX Ecircumflex Gdotaccent -73 +KPX Ecircumflex Gcommaaccent -73 +KPX Ecircumflex uni01DA -73 + +KPX Igrave six -73 +KPX Igrave Gcircumflex -73 +KPX Igrave Gbreve -73 +KPX Igrave Gdotaccent -73 +KPX Igrave Gcommaaccent -73 +KPX Igrave uni01DA -73 + +KPX Icircumflex six -73 +KPX Icircumflex Gcircumflex -73 +KPX Icircumflex Gbreve -73 +KPX Icircumflex Gdotaccent -73 +KPX Icircumflex Gcommaaccent -73 +KPX Icircumflex uni01DA -73 + +KPX Eth less -159 +KPX Eth kgreenlandic -159 +KPX Eth lacute -159 +KPX Eth uni01F4 -159 + +KPX Ograve less -159 +KPX Ograve kgreenlandic -159 +KPX Ograve lacute -159 +KPX Ograve uni01F4 -159 + +KPX agrave seven -36 +KPX agrave less -83 +KPX agrave Hbar -36 +KPX agrave lacute -83 + +KPX ucircumflex two -73 +KPX ucircumflex seven -339 +KPX ucircumflex eight -112 +KPX ucircumflex nine -282 +KPX ucircumflex colon -178 +KPX ucircumflex less -319 +KPX ucircumflex backslash -253 +KPX ucircumflex questiondown -253 +KPX ucircumflex Aacute -253 +KPX ucircumflex Ebreve -73 +KPX ucircumflex Hbar -339 +KPX ucircumflex Idot -112 +KPX ucircumflex lacute -319 + +KPX ydieresis two -73 +KPX ydieresis seven -339 +KPX ydieresis eight -112 +KPX ydieresis nine -282 +KPX ydieresis colon -178 +KPX ydieresis less -319 +KPX ydieresis backslash -253 +KPX ydieresis questiondown -253 +KPX ydieresis Aacute -253 +KPX ydieresis Ebreve -73 +KPX ydieresis Hbar -339 +KPX ydieresis Idot -112 +KPX ydieresis lacute -319 + +KPX Abreve O -8 + +KPX abreve two -73 +KPX abreve seven -339 +KPX abreve eight -73 +KPX abreve nine -282 +KPX abreve colon -159 +KPX abreve less -319 +KPX abreve backslash -253 +KPX abreve questiondown -253 +KPX abreve Aacute -253 +KPX abreve Ebreve -73 +KPX abreve Hbar -339 +KPX abreve Idot -73 +KPX abreve lacute -319 + +KPX Edotaccent seven -92 +KPX Edotaccent less -188 +KPX Edotaccent H -102 +KPX Edotaccent R -102 +KPX Edotaccent X -112 +KPX Edotaccent backslash -131 +KPX Edotaccent ordfeminine -102 +KPX Edotaccent guillemotleft -102 +KPX Edotaccent logicalnot -102 +KPX Edotaccent sfthyphen -102 +KPX Edotaccent acute -102 +KPX Edotaccent mu -102 +KPX Edotaccent paragraph -102 +KPX Edotaccent periodcentered -102 +KPX Edotaccent cedilla -102 +KPX Edotaccent ordmasculine -102 +KPX Edotaccent guillemotright -112 +KPX Edotaccent onequarter -112 +KPX Edotaccent onehalf -112 +KPX Edotaccent threequarters -112 +KPX Edotaccent questiondown -131 +KPX Edotaccent Aacute -131 +KPX Edotaccent Yacute -102 +KPX Edotaccent ebreve -102 +KPX Edotaccent Hbar -92 +KPX Edotaccent dotlessi -112 +KPX Edotaccent lacute -188 + + +KPX Ecaron seven -92 +KPX Ecaron less -188 +KPX Ecaron H -102 +KPX Ecaron R -102 +KPX Ecaron X -112 +KPX Ecaron backslash -131 +KPX Ecaron ordfeminine -102 +KPX Ecaron guillemotleft -102 +KPX Ecaron logicalnot -102 +KPX Ecaron sfthyphen -102 +KPX Ecaron acute -102 +KPX Ecaron mu -102 +KPX Ecaron paragraph -102 +KPX Ecaron periodcentered -102 +KPX Ecaron cedilla -102 +KPX Ecaron ordmasculine -102 +KPX Ecaron guillemotright -112 +KPX Ecaron onequarter -112 +KPX Ecaron onehalf -112 +KPX Ecaron threequarters -112 +KPX Ecaron questiondown -131 +KPX Ecaron Aacute -131 +KPX Ecaron Yacute -102 +KPX Ecaron ebreve -102 +KPX Ecaron Hbar -92 +KPX Ecaron dotlessi -112 +KPX Ecaron lacute -188 + + +KPX Gdotaccent six -73 +KPX Gdotaccent Gdotaccent -73 +KPX Gdotaccent Gcommaaccent -73 + +KPX Gcommaaccent six -73 +KPX Gcommaaccent Gdotaccent -73 +KPX Gcommaaccent Gcommaaccent -73 + +KPX Hbar dollar -159 +KPX Hbar seven 47 +KPX Hbar D -243 +KPX Hbar F -264 +KPX Hbar H -264 +KPX Hbar R -264 +KPX Hbar U -225 +KPX Hbar V -243 +KPX Hbar X -264 +KPX Hbar Z -282 +KPX Hbar backslash -339 +KPX Hbar cent -243 +KPX Hbar sterling -243 +KPX Hbar currency -243 +KPX Hbar yen -243 +KPX Hbar brokenbar -243 +KPX Hbar section -243 +KPX Hbar dieresis -243 +KPX Hbar copyright -264 +KPX Hbar ordfeminine -264 +KPX Hbar guillemotleft -264 +KPX Hbar logicalnot -264 +KPX Hbar sfthyphen -264 +KPX Hbar acute -264 +KPX Hbar mu -264 +KPX Hbar paragraph -264 +KPX Hbar periodcentered -264 +KPX Hbar cedilla -264 +KPX Hbar ordmasculine -264 +KPX Hbar guillemotright -264 +KPX Hbar onequarter -264 +KPX Hbar onehalf -264 +KPX Hbar threequarters -264 +KPX Hbar questiondown -339 +KPX Hbar Aacute -339 +KPX Hbar Eacute -264 +KPX Hbar Idieresis -264 +KPX Hbar Yacute -264 +KPX Hbar ebreve -264 +KPX Hbar edotaccent -225 +KPX Hbar ecaron -225 +KPX Hbar gdotaccent -243 +KPX Hbar gcommaaccent -243 +KPX Hbar Hbar 47 +KPX Hbar dotlessi -264 + +KPX hbar Hbar -112 + +KPX Idot dollar -92 +KPX Idot Idot -92 + +KPX lacute dollar -196 +KPX lacute ampersand -73 +KPX lacute two -73 +KPX lacute D -243 +KPX lacute H -264 +KPX lacute R -264 +KPX lacute X -225 +KPX lacute cent -243 +KPX lacute sterling -243 +KPX lacute currency -243 +KPX lacute yen -243 +KPX lacute brokenbar -243 +KPX lacute section -243 +KPX lacute dieresis -243 +KPX lacute ordfeminine -264 +KPX lacute guillemotleft -264 +KPX lacute logicalnot -264 +KPX lacute sfthyphen -264 +KPX lacute acute -264 +KPX lacute mu -264 +KPX lacute paragraph -264 +KPX lacute periodcentered -264 +KPX lacute cedilla -264 +KPX lacute ordmasculine -264 +KPX lacute guillemotright -225 +KPX lacute onequarter -225 +KPX lacute onehalf -225 +KPX lacute threequarters -225 +KPX lacute Egrave -73 +KPX lacute Icircumflex -73 +KPX lacute Yacute -264 +KPX lacute Ebreve -120 +KPX lacute ebreve -264 +KPX lacute dotlessi -225 + + +KPX uni027D dollar -272 +KPX uni027D hyphen -92 +KPX uni027D nine 38 +KPX uni027D less 75 +KPX uni027D lacute 75 +EndKernPairs +EndKernData +EndFontMetrics diff --git a/public_html/2022/newcms/pdf/ttfonts/DejaVuSans-Oblique.ttf b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSans-Oblique.ttf similarity index 54% rename from public_html/2022/newcms/pdf/ttfonts/DejaVuSans-Oblique.ttf rename to public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSans-Oblique.ttf index e233295..999bac7 100644 Binary files a/public_html/2022/newcms/pdf/ttfonts/DejaVuSans-Oblique.ttf and b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSans-Oblique.ttf differ diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSans-Oblique.ufm b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSans-Oblique.ufm new file mode 100644 index 0000000..0b8d60e --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSans-Oblique.ufm @@ -0,0 +1,5268 @@ +StartFontMetrics 4.1 +Notice Converted by PHP-font-lib +Comment https://github.com/PhenX/php-font-lib +EncodingScheme FontSpecific +FontName DejaVu Sans +FontSubfamily Oblique +UniqueID DejaVu Sans Oblique +FullName DejaVu Sans Oblique +Version Version 2.37 +PostScriptName DejaVuSans-Oblique +Manufacturer DejaVu fonts team +FontVendorURL http://dejavu.sourceforge.net +LicenseURL http://dejavu.sourceforge.net/wiki/index.php/License +PreferredFamily DejaVu Sans +PreferredSubfamily Oblique +Weight Medium +ItalicAngle -11 +IsFixedPitch false +UnderlineThickness 44 +UnderlinePosition -63 +FontHeightOffset 0 +Ascender 928 +Descender -236 +FontBBox -1016 -350 1659 1068 +StartCharMetrics 5355 +U 32 ; WX 318 ; N space ; G 3 +U 33 ; WX 401 ; N exclam ; G 4 +U 34 ; WX 460 ; N quotedbl ; G 5 +U 35 ; WX 838 ; N numbersign ; G 6 +U 36 ; WX 636 ; N dollar ; G 7 +U 37 ; WX 950 ; N percent ; G 8 +U 38 ; WX 780 ; N ampersand ; G 9 +U 39 ; WX 275 ; N quotesingle ; G 10 +U 40 ; WX 390 ; N parenleft ; G 11 +U 41 ; WX 390 ; N parenright ; G 12 +U 42 ; WX 500 ; N asterisk ; G 13 +U 43 ; WX 838 ; N plus ; G 14 +U 44 ; WX 318 ; N comma ; G 15 +U 45 ; WX 361 ; N hyphen ; G 16 +U 46 ; WX 318 ; N period ; G 17 +U 47 ; WX 337 ; N slash ; G 18 +U 48 ; WX 636 ; N zero ; G 19 +U 49 ; WX 636 ; N one ; G 20 +U 50 ; WX 636 ; N two ; G 21 +U 51 ; WX 636 ; N three ; G 22 +U 52 ; WX 636 ; N four ; G 23 +U 53 ; WX 636 ; N five ; G 24 +U 54 ; WX 636 ; N six ; G 25 +U 55 ; WX 636 ; N seven ; G 26 +U 56 ; WX 636 ; N eight ; G 27 +U 57 ; WX 636 ; N nine ; G 28 +U 58 ; WX 337 ; N colon ; G 29 +U 59 ; WX 337 ; N semicolon ; G 30 +U 60 ; WX 838 ; N less ; G 31 +U 61 ; WX 838 ; N equal ; G 32 +U 62 ; WX 838 ; N greater ; G 33 +U 63 ; WX 531 ; N question ; G 34 +U 64 ; WX 1000 ; N at ; G 35 +U 65 ; WX 684 ; N A ; G 36 +U 66 ; WX 686 ; N B ; G 37 +U 67 ; WX 698 ; N C ; G 38 +U 68 ; WX 770 ; N D ; G 39 +U 69 ; WX 632 ; N E ; G 40 +U 70 ; WX 575 ; N F ; G 41 +U 71 ; WX 775 ; N G ; G 42 +U 72 ; WX 752 ; N H ; G 43 +U 73 ; WX 295 ; N I ; G 44 +U 74 ; WX 295 ; N J ; G 45 +U 75 ; WX 656 ; N K ; G 46 +U 76 ; WX 557 ; N L ; G 47 +U 77 ; WX 863 ; N M ; G 48 +U 78 ; WX 748 ; N N ; G 49 +U 79 ; WX 787 ; N O ; G 50 +U 80 ; WX 603 ; N P ; G 51 +U 81 ; WX 787 ; N Q ; G 52 +U 82 ; WX 695 ; N R ; G 53 +U 83 ; WX 635 ; N S ; G 54 +U 84 ; WX 611 ; N T ; G 55 +U 85 ; WX 732 ; N U ; G 56 +U 86 ; WX 684 ; N V ; G 57 +U 87 ; WX 989 ; N W ; G 58 +U 88 ; WX 685 ; N X ; G 59 +U 89 ; WX 611 ; N Y ; G 60 +U 90 ; WX 685 ; N Z ; G 61 +U 91 ; WX 390 ; N bracketleft ; G 62 +U 92 ; WX 337 ; N backslash ; G 63 +U 93 ; WX 390 ; N bracketright ; G 64 +U 94 ; WX 838 ; N asciicircum ; G 65 +U 95 ; WX 500 ; N underscore ; G 66 +U 96 ; WX 500 ; N grave ; G 67 +U 97 ; WX 613 ; N a ; G 68 +U 98 ; WX 635 ; N b ; G 69 +U 99 ; WX 550 ; N c ; G 70 +U 100 ; WX 635 ; N d ; G 71 +U 101 ; WX 615 ; N e ; G 72 +U 102 ; WX 352 ; N f ; G 73 +U 103 ; WX 635 ; N g ; G 74 +U 104 ; WX 634 ; N h ; G 75 +U 105 ; WX 278 ; N i ; G 76 +U 106 ; WX 278 ; N j ; G 77 +U 107 ; WX 579 ; N k ; G 78 +U 108 ; WX 278 ; N l ; G 79 +U 109 ; WX 974 ; N m ; G 80 +U 110 ; WX 634 ; N n ; G 81 +U 111 ; WX 612 ; N o ; G 82 +U 112 ; WX 635 ; N p ; G 83 +U 113 ; WX 635 ; N q ; G 84 +U 114 ; WX 411 ; N r ; G 85 +U 115 ; WX 521 ; N s ; G 86 +U 116 ; WX 392 ; N t ; G 87 +U 117 ; WX 634 ; N u ; G 88 +U 118 ; WX 592 ; N v ; G 89 +U 119 ; WX 818 ; N w ; G 90 +U 120 ; WX 592 ; N x ; G 91 +U 121 ; WX 592 ; N y ; G 92 +U 122 ; WX 525 ; N z ; G 93 +U 123 ; WX 636 ; N braceleft ; G 94 +U 124 ; WX 337 ; N bar ; G 95 +U 125 ; WX 636 ; N braceright ; G 96 +U 126 ; WX 838 ; N asciitilde ; G 97 +U 160 ; WX 318 ; N nbspace ; G 98 +U 161 ; WX 401 ; N exclamdown ; G 99 +U 162 ; WX 636 ; N cent ; G 100 +U 163 ; WX 636 ; N sterling ; G 101 +U 164 ; WX 636 ; N currency ; G 102 +U 165 ; WX 636 ; N yen ; G 103 +U 166 ; WX 337 ; N brokenbar ; G 104 +U 167 ; WX 500 ; N section ; G 105 +U 168 ; WX 500 ; N dieresis ; G 106 +U 169 ; WX 1000 ; N copyright ; G 107 +U 170 ; WX 471 ; N ordfeminine ; G 108 +U 171 ; WX 617 ; N guillemotleft ; G 109 +U 172 ; WX 838 ; N logicalnot ; G 110 +U 173 ; WX 361 ; N sfthyphen ; G 111 +U 174 ; WX 1000 ; N registered ; G 112 +U 175 ; WX 500 ; N macron ; G 113 +U 176 ; WX 500 ; N degree ; G 114 +U 177 ; WX 838 ; N plusminus ; G 115 +U 178 ; WX 401 ; N twosuperior ; G 116 +U 179 ; WX 401 ; N threesuperior ; G 117 +U 180 ; WX 500 ; N acute ; G 118 +U 181 ; WX 636 ; N mu ; G 119 +U 182 ; WX 636 ; N paragraph ; G 120 +U 183 ; WX 318 ; N periodcentered ; G 121 +U 184 ; WX 500 ; N cedilla ; G 122 +U 185 ; WX 401 ; N onesuperior ; G 123 +U 186 ; WX 471 ; N ordmasculine ; G 124 +U 187 ; WX 617 ; N guillemotright ; G 125 +U 188 ; WX 969 ; N onequarter ; G 126 +U 189 ; WX 969 ; N onehalf ; G 127 +U 190 ; WX 969 ; N threequarters ; G 128 +U 191 ; WX 531 ; N questiondown ; G 129 +U 192 ; WX 684 ; N Agrave ; G 130 +U 193 ; WX 684 ; N Aacute ; G 131 +U 194 ; WX 684 ; N Acircumflex ; G 132 +U 195 ; WX 684 ; N Atilde ; G 133 +U 196 ; WX 684 ; N Adieresis ; G 134 +U 197 ; WX 684 ; N Aring ; G 135 +U 198 ; WX 974 ; N AE ; G 136 +U 199 ; WX 698 ; N Ccedilla ; G 137 +U 200 ; WX 632 ; N Egrave ; G 138 +U 201 ; WX 632 ; N Eacute ; G 139 +U 202 ; WX 632 ; N Ecircumflex ; G 140 +U 203 ; WX 632 ; N Edieresis ; G 141 +U 204 ; WX 295 ; N Igrave ; G 142 +U 205 ; WX 295 ; N Iacute ; G 143 +U 206 ; WX 295 ; N Icircumflex ; G 144 +U 207 ; WX 295 ; N Idieresis ; G 145 +U 208 ; WX 775 ; N Eth ; G 146 +U 209 ; WX 748 ; N Ntilde ; G 147 +U 210 ; WX 787 ; N Ograve ; G 148 +U 211 ; WX 787 ; N Oacute ; G 149 +U 212 ; WX 787 ; N Ocircumflex ; G 150 +U 213 ; WX 787 ; N Otilde ; G 151 +U 214 ; WX 787 ; N Odieresis ; G 152 +U 215 ; WX 838 ; N multiply ; G 153 +U 216 ; WX 787 ; N Oslash ; G 154 +U 217 ; WX 732 ; N Ugrave ; G 155 +U 218 ; WX 732 ; N Uacute ; G 156 +U 219 ; WX 732 ; N Ucircumflex ; G 157 +U 220 ; WX 732 ; N Udieresis ; G 158 +U 221 ; WX 611 ; N Yacute ; G 159 +U 222 ; WX 608 ; N Thorn ; G 160 +U 223 ; WX 630 ; N germandbls ; G 161 +U 224 ; WX 613 ; N agrave ; G 162 +U 225 ; WX 613 ; N aacute ; G 163 +U 226 ; WX 613 ; N acircumflex ; G 164 +U 227 ; WX 613 ; N atilde ; G 165 +U 228 ; WX 613 ; N adieresis ; G 166 +U 229 ; WX 613 ; N aring ; G 167 +U 230 ; WX 995 ; N ae ; G 168 +U 231 ; WX 550 ; N ccedilla ; G 169 +U 232 ; WX 615 ; N egrave ; G 170 +U 233 ; WX 615 ; N eacute ; G 171 +U 234 ; WX 615 ; N ecircumflex ; G 172 +U 235 ; WX 615 ; N edieresis ; G 173 +U 236 ; WX 278 ; N igrave ; G 174 +U 237 ; WX 278 ; N iacute ; G 175 +U 238 ; WX 278 ; N icircumflex ; G 176 +U 239 ; WX 278 ; N idieresis ; G 177 +U 240 ; WX 612 ; N eth ; G 178 +U 241 ; WX 634 ; N ntilde ; G 179 +U 242 ; WX 612 ; N ograve ; G 180 +U 243 ; WX 612 ; N oacute ; G 181 +U 244 ; WX 612 ; N ocircumflex ; G 182 +U 245 ; WX 612 ; N otilde ; G 183 +U 246 ; WX 612 ; N odieresis ; G 184 +U 247 ; WX 838 ; N divide ; G 185 +U 248 ; WX 612 ; N oslash ; G 186 +U 249 ; WX 634 ; N ugrave ; G 187 +U 250 ; WX 634 ; N uacute ; G 188 +U 251 ; WX 634 ; N ucircumflex ; G 189 +U 252 ; WX 634 ; N udieresis ; G 190 +U 253 ; WX 592 ; N yacute ; G 191 +U 254 ; WX 635 ; N thorn ; G 192 +U 255 ; WX 592 ; N ydieresis ; G 193 +U 256 ; WX 684 ; N Amacron ; G 194 +U 257 ; WX 613 ; N amacron ; G 195 +U 258 ; WX 684 ; N Abreve ; G 196 +U 259 ; WX 613 ; N abreve ; G 197 +U 260 ; WX 684 ; N Aogonek ; G 198 +U 261 ; WX 613 ; N aogonek ; G 199 +U 262 ; WX 698 ; N Cacute ; G 200 +U 263 ; WX 550 ; N cacute ; G 201 +U 264 ; WX 698 ; N Ccircumflex ; G 202 +U 265 ; WX 550 ; N ccircumflex ; G 203 +U 266 ; WX 698 ; N Cdotaccent ; G 204 +U 267 ; WX 550 ; N cdotaccent ; G 205 +U 268 ; WX 698 ; N Ccaron ; G 206 +U 269 ; WX 550 ; N ccaron ; G 207 +U 270 ; WX 770 ; N Dcaron ; G 208 +U 271 ; WX 635 ; N dcaron ; G 209 +U 272 ; WX 775 ; N Dcroat ; G 210 +U 273 ; WX 635 ; N dmacron ; G 211 +U 274 ; WX 632 ; N Emacron ; G 212 +U 275 ; WX 615 ; N emacron ; G 213 +U 276 ; WX 632 ; N Ebreve ; G 214 +U 277 ; WX 615 ; N ebreve ; G 215 +U 278 ; WX 632 ; N Edotaccent ; G 216 +U 279 ; WX 615 ; N edotaccent ; G 217 +U 280 ; WX 632 ; N Eogonek ; G 218 +U 281 ; WX 615 ; N eogonek ; G 219 +U 282 ; WX 632 ; N Ecaron ; G 220 +U 283 ; WX 615 ; N ecaron ; G 221 +U 284 ; WX 775 ; N Gcircumflex ; G 222 +U 285 ; WX 635 ; N gcircumflex ; G 223 +U 286 ; WX 775 ; N Gbreve ; G 224 +U 287 ; WX 635 ; N gbreve ; G 225 +U 288 ; WX 775 ; N Gdotaccent ; G 226 +U 289 ; WX 635 ; N gdotaccent ; G 227 +U 290 ; WX 775 ; N Gcommaaccent ; G 228 +U 291 ; WX 635 ; N gcommaaccent ; G 229 +U 292 ; WX 752 ; N Hcircumflex ; G 230 +U 293 ; WX 634 ; N hcircumflex ; G 231 +U 294 ; WX 916 ; N Hbar ; G 232 +U 295 ; WX 695 ; N hbar ; G 233 +U 296 ; WX 295 ; N Itilde ; G 234 +U 297 ; WX 278 ; N itilde ; G 235 +U 298 ; WX 295 ; N Imacron ; G 236 +U 299 ; WX 278 ; N imacron ; G 237 +U 300 ; WX 295 ; N Ibreve ; G 238 +U 301 ; WX 278 ; N ibreve ; G 239 +U 302 ; WX 295 ; N Iogonek ; G 240 +U 303 ; WX 278 ; N iogonek ; G 241 +U 304 ; WX 295 ; N Idot ; G 242 +U 305 ; WX 278 ; N dotlessi ; G 243 +U 306 ; WX 590 ; N IJ ; G 244 +U 307 ; WX 556 ; N ij ; G 245 +U 308 ; WX 295 ; N Jcircumflex ; G 246 +U 309 ; WX 278 ; N jcircumflex ; G 247 +U 310 ; WX 656 ; N Kcommaaccent ; G 248 +U 311 ; WX 579 ; N kcommaaccent ; G 249 +U 312 ; WX 579 ; N kgreenlandic ; G 250 +U 313 ; WX 557 ; N Lacute ; G 251 +U 314 ; WX 278 ; N lacute ; G 252 +U 315 ; WX 557 ; N Lcommaaccent ; G 253 +U 316 ; WX 278 ; N lcommaaccent ; G 254 +U 317 ; WX 557 ; N Lcaron ; G 255 +U 318 ; WX 278 ; N lcaron ; G 256 +U 319 ; WX 557 ; N Ldot ; G 257 +U 320 ; WX 278 ; N ldot ; G 258 +U 321 ; WX 562 ; N Lslash ; G 259 +U 322 ; WX 287 ; N lslash ; G 260 +U 323 ; WX 748 ; N Nacute ; G 261 +U 324 ; WX 634 ; N nacute ; G 262 +U 325 ; WX 748 ; N Ncommaaccent ; G 263 +U 326 ; WX 634 ; N ncommaaccent ; G 264 +U 327 ; WX 748 ; N Ncaron ; G 265 +U 328 ; WX 634 ; N ncaron ; G 266 +U 329 ; WX 813 ; N napostrophe ; G 267 +U 330 ; WX 748 ; N Eng ; G 268 +U 331 ; WX 634 ; N eng ; G 269 +U 332 ; WX 787 ; N Omacron ; G 270 +U 333 ; WX 612 ; N omacron ; G 271 +U 334 ; WX 787 ; N Obreve ; G 272 +U 335 ; WX 612 ; N obreve ; G 273 +U 336 ; WX 787 ; N Ohungarumlaut ; G 274 +U 337 ; WX 612 ; N ohungarumlaut ; G 275 +U 338 ; WX 1070 ; N OE ; G 276 +U 339 ; WX 1028 ; N oe ; G 277 +U 340 ; WX 695 ; N Racute ; G 278 +U 341 ; WX 411 ; N racute ; G 279 +U 342 ; WX 695 ; N Rcommaaccent ; G 280 +U 343 ; WX 411 ; N rcommaaccent ; G 281 +U 344 ; WX 695 ; N Rcaron ; G 282 +U 345 ; WX 411 ; N rcaron ; G 283 +U 346 ; WX 635 ; N Sacute ; G 284 +U 347 ; WX 521 ; N sacute ; G 285 +U 348 ; WX 635 ; N Scircumflex ; G 286 +U 349 ; WX 521 ; N scircumflex ; G 287 +U 350 ; WX 635 ; N Scedilla ; G 288 +U 351 ; WX 521 ; N scedilla ; G 289 +U 352 ; WX 635 ; N Scaron ; G 290 +U 353 ; WX 521 ; N scaron ; G 291 +U 354 ; WX 611 ; N Tcommaaccent ; G 292 +U 355 ; WX 392 ; N tcommaaccent ; G 293 +U 356 ; WX 611 ; N Tcaron ; G 294 +U 357 ; WX 392 ; N tcaron ; G 295 +U 358 ; WX 611 ; N Tbar ; G 296 +U 359 ; WX 392 ; N tbar ; G 297 +U 360 ; WX 732 ; N Utilde ; G 298 +U 361 ; WX 634 ; N utilde ; G 299 +U 362 ; WX 732 ; N Umacron ; G 300 +U 363 ; WX 634 ; N umacron ; G 301 +U 364 ; WX 732 ; N Ubreve ; G 302 +U 365 ; WX 634 ; N ubreve ; G 303 +U 366 ; WX 732 ; N Uring ; G 304 +U 367 ; WX 634 ; N uring ; G 305 +U 368 ; WX 732 ; N Uhungarumlaut ; G 306 +U 369 ; WX 634 ; N uhungarumlaut ; G 307 +U 370 ; WX 732 ; N Uogonek ; G 308 +U 371 ; WX 634 ; N uogonek ; G 309 +U 372 ; WX 989 ; N Wcircumflex ; G 310 +U 373 ; WX 818 ; N wcircumflex ; G 311 +U 374 ; WX 611 ; N Ycircumflex ; G 312 +U 375 ; WX 592 ; N ycircumflex ; G 313 +U 376 ; WX 611 ; N Ydieresis ; G 314 +U 377 ; WX 685 ; N Zacute ; G 315 +U 378 ; WX 525 ; N zacute ; G 316 +U 379 ; WX 685 ; N Zdotaccent ; G 317 +U 380 ; WX 525 ; N zdotaccent ; G 318 +U 381 ; WX 685 ; N Zcaron ; G 319 +U 382 ; WX 525 ; N zcaron ; G 320 +U 383 ; WX 352 ; N longs ; G 321 +U 384 ; WX 635 ; N uni0180 ; G 322 +U 385 ; WX 735 ; N uni0181 ; G 323 +U 386 ; WX 686 ; N uni0182 ; G 324 +U 387 ; WX 635 ; N uni0183 ; G 325 +U 388 ; WX 686 ; N uni0184 ; G 326 +U 389 ; WX 635 ; N uni0185 ; G 327 +U 390 ; WX 703 ; N uni0186 ; G 328 +U 391 ; WX 698 ; N uni0187 ; G 329 +U 392 ; WX 550 ; N uni0188 ; G 330 +U 393 ; WX 775 ; N uni0189 ; G 331 +U 394 ; WX 819 ; N uni018A ; G 332 +U 395 ; WX 686 ; N uni018B ; G 333 +U 396 ; WX 635 ; N uni018C ; G 334 +U 397 ; WX 612 ; N uni018D ; G 335 +U 398 ; WX 632 ; N uni018E ; G 336 +U 399 ; WX 787 ; N uni018F ; G 337 +U 400 ; WX 614 ; N uni0190 ; G 338 +U 401 ; WX 575 ; N uni0191 ; G 339 +U 402 ; WX 352 ; N florin ; G 340 +U 403 ; WX 775 ; N uni0193 ; G 341 +U 404 ; WX 687 ; N uni0194 ; G 342 +U 405 ; WX 984 ; N uni0195 ; G 343 +U 406 ; WX 354 ; N uni0196 ; G 344 +U 407 ; WX 295 ; N uni0197 ; G 345 +U 408 ; WX 746 ; N uni0198 ; G 346 +U 409 ; WX 579 ; N uni0199 ; G 347 +U 410 ; WX 278 ; N uni019A ; G 348 +U 411 ; WX 592 ; N uni019B ; G 349 +U 412 ; WX 974 ; N uni019C ; G 350 +U 413 ; WX 748 ; N uni019D ; G 351 +U 414 ; WX 634 ; N uni019E ; G 352 +U 415 ; WX 787 ; N uni019F ; G 353 +U 416 ; WX 913 ; N Ohorn ; G 354 +U 417 ; WX 612 ; N ohorn ; G 355 +U 418 ; WX 938 ; N uni01A2 ; G 356 +U 419 ; WX 737 ; N uni01A3 ; G 357 +U 420 ; WX 652 ; N uni01A4 ; G 358 +U 421 ; WX 635 ; N uni01A5 ; G 359 +U 422 ; WX 695 ; N uni01A6 ; G 360 +U 423 ; WX 635 ; N uni01A7 ; G 361 +U 424 ; WX 521 ; N uni01A8 ; G 362 +U 425 ; WX 632 ; N uni01A9 ; G 363 +U 426 ; WX 336 ; N uni01AA ; G 364 +U 427 ; WX 392 ; N uni01AB ; G 365 +U 428 ; WX 611 ; N uni01AC ; G 366 +U 429 ; WX 392 ; N uni01AD ; G 367 +U 430 ; WX 611 ; N uni01AE ; G 368 +U 431 ; WX 838 ; N Uhorn ; G 369 +U 432 ; WX 634 ; N uhorn ; G 370 +U 433 ; WX 764 ; N uni01B1 ; G 371 +U 434 ; WX 721 ; N uni01B2 ; G 372 +U 435 ; WX 744 ; N uni01B3 ; G 373 +U 436 ; WX 730 ; N uni01B4 ; G 374 +U 437 ; WX 685 ; N uni01B5 ; G 375 +U 438 ; WX 525 ; N uni01B6 ; G 376 +U 439 ; WX 666 ; N uni01B7 ; G 377 +U 440 ; WX 666 ; N uni01B8 ; G 378 +U 441 ; WX 578 ; N uni01B9 ; G 379 +U 442 ; WX 525 ; N uni01BA ; G 380 +U 443 ; WX 636 ; N uni01BB ; G 381 +U 444 ; WX 666 ; N uni01BC ; G 382 +U 445 ; WX 578 ; N uni01BD ; G 383 +U 446 ; WX 510 ; N uni01BE ; G 384 +U 447 ; WX 635 ; N uni01BF ; G 385 +U 448 ; WX 295 ; N uni01C0 ; G 386 +U 449 ; WX 492 ; N uni01C1 ; G 387 +U 450 ; WX 459 ; N uni01C2 ; G 388 +U 451 ; WX 295 ; N uni01C3 ; G 389 +U 452 ; WX 1455 ; N uni01C4 ; G 390 +U 453 ; WX 1295 ; N uni01C5 ; G 391 +U 454 ; WX 1160 ; N uni01C6 ; G 392 +U 455 ; WX 852 ; N uni01C7 ; G 393 +U 456 ; WX 835 ; N uni01C8 ; G 394 +U 457 ; WX 556 ; N uni01C9 ; G 395 +U 458 ; WX 1043 ; N uni01CA ; G 396 +U 459 ; WX 1026 ; N uni01CB ; G 397 +U 460 ; WX 912 ; N uni01CC ; G 398 +U 461 ; WX 684 ; N uni01CD ; G 399 +U 462 ; WX 613 ; N uni01CE ; G 400 +U 463 ; WX 295 ; N uni01CF ; G 401 +U 464 ; WX 278 ; N uni01D0 ; G 402 +U 465 ; WX 787 ; N uni01D1 ; G 403 +U 466 ; WX 612 ; N uni01D2 ; G 404 +U 467 ; WX 732 ; N uni01D3 ; G 405 +U 468 ; WX 634 ; N uni01D4 ; G 406 +U 469 ; WX 732 ; N uni01D5 ; G 407 +U 470 ; WX 634 ; N uni01D6 ; G 408 +U 471 ; WX 732 ; N uni01D7 ; G 409 +U 472 ; WX 634 ; N uni01D8 ; G 410 +U 473 ; WX 732 ; N uni01D9 ; G 411 +U 474 ; WX 634 ; N uni01DA ; G 412 +U 475 ; WX 732 ; N uni01DB ; G 413 +U 476 ; WX 634 ; N uni01DC ; G 414 +U 477 ; WX 615 ; N uni01DD ; G 415 +U 478 ; WX 684 ; N uni01DE ; G 416 +U 479 ; WX 613 ; N uni01DF ; G 417 +U 480 ; WX 684 ; N uni01E0 ; G 418 +U 481 ; WX 613 ; N uni01E1 ; G 419 +U 482 ; WX 974 ; N uni01E2 ; G 420 +U 483 ; WX 995 ; N uni01E3 ; G 421 +U 484 ; WX 775 ; N uni01E4 ; G 422 +U 485 ; WX 635 ; N uni01E5 ; G 423 +U 486 ; WX 775 ; N Gcaron ; G 424 +U 487 ; WX 635 ; N gcaron ; G 425 +U 488 ; WX 656 ; N uni01E8 ; G 426 +U 489 ; WX 579 ; N uni01E9 ; G 427 +U 490 ; WX 787 ; N uni01EA ; G 428 +U 491 ; WX 612 ; N uni01EB ; G 429 +U 492 ; WX 787 ; N uni01EC ; G 430 +U 493 ; WX 612 ; N uni01ED ; G 431 +U 494 ; WX 666 ; N uni01EE ; G 432 +U 495 ; WX 525 ; N uni01EF ; G 433 +U 496 ; WX 278 ; N uni01F0 ; G 434 +U 497 ; WX 1455 ; N uni01F1 ; G 435 +U 498 ; WX 1295 ; N uni01F2 ; G 436 +U 499 ; WX 1160 ; N uni01F3 ; G 437 +U 500 ; WX 775 ; N uni01F4 ; G 438 +U 501 ; WX 635 ; N uni01F5 ; G 439 +U 502 ; WX 1113 ; N uni01F6 ; G 440 +U 503 ; WX 682 ; N uni01F7 ; G 441 +U 504 ; WX 748 ; N uni01F8 ; G 442 +U 505 ; WX 634 ; N uni01F9 ; G 443 +U 506 ; WX 684 ; N Aringacute ; G 444 +U 507 ; WX 613 ; N aringacute ; G 445 +U 508 ; WX 974 ; N AEacute ; G 446 +U 509 ; WX 995 ; N aeacute ; G 447 +U 510 ; WX 787 ; N Oslashacute ; G 448 +U 511 ; WX 612 ; N oslashacute ; G 449 +U 512 ; WX 684 ; N uni0200 ; G 450 +U 513 ; WX 613 ; N uni0201 ; G 451 +U 514 ; WX 684 ; N uni0202 ; G 452 +U 515 ; WX 613 ; N uni0203 ; G 453 +U 516 ; WX 632 ; N uni0204 ; G 454 +U 517 ; WX 615 ; N uni0205 ; G 455 +U 518 ; WX 632 ; N uni0206 ; G 456 +U 519 ; WX 615 ; N uni0207 ; G 457 +U 520 ; WX 295 ; N uni0208 ; G 458 +U 521 ; WX 278 ; N uni0209 ; G 459 +U 522 ; WX 295 ; N uni020A ; G 460 +U 523 ; WX 278 ; N uni020B ; G 461 +U 524 ; WX 787 ; N uni020C ; G 462 +U 525 ; WX 612 ; N uni020D ; G 463 +U 526 ; WX 787 ; N uni020E ; G 464 +U 527 ; WX 612 ; N uni020F ; G 465 +U 528 ; WX 695 ; N uni0210 ; G 466 +U 529 ; WX 411 ; N uni0211 ; G 467 +U 530 ; WX 695 ; N uni0212 ; G 468 +U 531 ; WX 411 ; N uni0213 ; G 469 +U 532 ; WX 732 ; N uni0214 ; G 470 +U 533 ; WX 634 ; N uni0215 ; G 471 +U 534 ; WX 732 ; N uni0216 ; G 472 +U 535 ; WX 634 ; N uni0217 ; G 473 +U 536 ; WX 635 ; N Scommaaccent ; G 474 +U 537 ; WX 521 ; N scommaaccent ; G 475 +U 538 ; WX 611 ; N uni021A ; G 476 +U 539 ; WX 392 ; N uni021B ; G 477 +U 540 ; WX 627 ; N uni021C ; G 478 +U 541 ; WX 521 ; N uni021D ; G 479 +U 542 ; WX 752 ; N uni021E ; G 480 +U 543 ; WX 634 ; N uni021F ; G 481 +U 544 ; WX 735 ; N uni0220 ; G 482 +U 545 ; WX 838 ; N uni0221 ; G 483 +U 546 ; WX 698 ; N uni0222 ; G 484 +U 547 ; WX 610 ; N uni0223 ; G 485 +U 548 ; WX 685 ; N uni0224 ; G 486 +U 549 ; WX 525 ; N uni0225 ; G 487 +U 550 ; WX 684 ; N uni0226 ; G 488 +U 551 ; WX 613 ; N uni0227 ; G 489 +U 552 ; WX 632 ; N uni0228 ; G 490 +U 553 ; WX 615 ; N uni0229 ; G 491 +U 554 ; WX 787 ; N uni022A ; G 492 +U 555 ; WX 612 ; N uni022B ; G 493 +U 556 ; WX 787 ; N uni022C ; G 494 +U 557 ; WX 612 ; N uni022D ; G 495 +U 558 ; WX 787 ; N uni022E ; G 496 +U 559 ; WX 612 ; N uni022F ; G 497 +U 560 ; WX 787 ; N uni0230 ; G 498 +U 561 ; WX 612 ; N uni0231 ; G 499 +U 562 ; WX 611 ; N uni0232 ; G 500 +U 563 ; WX 592 ; N uni0233 ; G 501 +U 564 ; WX 475 ; N uni0234 ; G 502 +U 565 ; WX 843 ; N uni0235 ; G 503 +U 566 ; WX 477 ; N uni0236 ; G 504 +U 567 ; WX 278 ; N dotlessj ; G 505 +U 568 ; WX 998 ; N uni0238 ; G 506 +U 569 ; WX 998 ; N uni0239 ; G 507 +U 570 ; WX 684 ; N uni023A ; G 508 +U 571 ; WX 698 ; N uni023B ; G 509 +U 572 ; WX 550 ; N uni023C ; G 510 +U 573 ; WX 557 ; N uni023D ; G 511 +U 574 ; WX 611 ; N uni023E ; G 512 +U 575 ; WX 521 ; N uni023F ; G 513 +U 576 ; WX 525 ; N uni0240 ; G 514 +U 577 ; WX 603 ; N uni0241 ; G 515 +U 578 ; WX 479 ; N uni0242 ; G 516 +U 579 ; WX 686 ; N uni0243 ; G 517 +U 580 ; WX 732 ; N uni0244 ; G 518 +U 581 ; WX 684 ; N uni0245 ; G 519 +U 582 ; WX 632 ; N uni0246 ; G 520 +U 583 ; WX 615 ; N uni0247 ; G 521 +U 584 ; WX 295 ; N uni0248 ; G 522 +U 585 ; WX 278 ; N uni0249 ; G 523 +U 586 ; WX 781 ; N uni024A ; G 524 +U 587 ; WX 635 ; N uni024B ; G 525 +U 588 ; WX 695 ; N uni024C ; G 526 +U 589 ; WX 411 ; N uni024D ; G 527 +U 590 ; WX 611 ; N uni024E ; G 528 +U 591 ; WX 592 ; N uni024F ; G 529 +U 592 ; WX 613 ; N uni0250 ; G 530 +U 593 ; WX 635 ; N uni0251 ; G 531 +U 594 ; WX 635 ; N uni0252 ; G 532 +U 595 ; WX 635 ; N uni0253 ; G 533 +U 596 ; WX 550 ; N uni0254 ; G 534 +U 597 ; WX 550 ; N uni0255 ; G 535 +U 598 ; WX 635 ; N uni0256 ; G 536 +U 599 ; WX 727 ; N uni0257 ; G 537 +U 600 ; WX 615 ; N uni0258 ; G 538 +U 601 ; WX 615 ; N uni0259 ; G 539 +U 602 ; WX 844 ; N uni025A ; G 540 +U 603 ; WX 545 ; N uni025B ; G 541 +U 604 ; WX 545 ; N uni025C ; G 542 +U 605 ; WX 775 ; N uni025D ; G 543 +U 606 ; WX 664 ; N uni025E ; G 544 +U 607 ; WX 326 ; N uni025F ; G 545 +U 608 ; WX 696 ; N uni0260 ; G 546 +U 609 ; WX 635 ; N uni0261 ; G 547 +U 610 ; WX 629 ; N uni0262 ; G 548 +U 611 ; WX 596 ; N uni0263 ; G 549 +U 612 ; WX 596 ; N uni0264 ; G 550 +U 613 ; WX 634 ; N uni0265 ; G 551 +U 614 ; WX 634 ; N uni0266 ; G 552 +U 615 ; WX 634 ; N uni0267 ; G 553 +U 616 ; WX 372 ; N uni0268 ; G 554 +U 617 ; WX 387 ; N uni0269 ; G 555 +U 618 ; WX 372 ; N uni026A ; G 556 +U 619 ; WX 396 ; N uni026B ; G 557 +U 620 ; WX 487 ; N uni026C ; G 558 +U 621 ; WX 278 ; N uni026D ; G 559 +U 622 ; WX 706 ; N uni026E ; G 560 +U 623 ; WX 974 ; N uni026F ; G 561 +U 624 ; WX 974 ; N uni0270 ; G 562 +U 625 ; WX 974 ; N uni0271 ; G 563 +U 626 ; WX 646 ; N uni0272 ; G 564 +U 627 ; WX 642 ; N uni0273 ; G 565 +U 628 ; WX 634 ; N uni0274 ; G 566 +U 629 ; WX 612 ; N uni0275 ; G 567 +U 630 ; WX 858 ; N uni0276 ; G 568 +U 631 ; WX 728 ; N uni0277 ; G 569 +U 632 ; WX 660 ; N uni0278 ; G 570 +U 633 ; WX 469 ; N uni0279 ; G 571 +U 634 ; WX 469 ; N uni027A ; G 572 +U 635 ; WX 469 ; N uni027B ; G 573 +U 636 ; WX 469 ; N uni027C ; G 574 +U 637 ; WX 469 ; N uni027D ; G 575 +U 638 ; WX 530 ; N uni027E ; G 576 +U 639 ; WX 530 ; N uni027F ; G 577 +U 640 ; WX 602 ; N uni0280 ; G 578 +U 641 ; WX 602 ; N uni0281 ; G 579 +U 642 ; WX 521 ; N uni0282 ; G 580 +U 643 ; WX 336 ; N uni0283 ; G 581 +U 644 ; WX 336 ; N uni0284 ; G 582 +U 645 ; WX 461 ; N uni0285 ; G 583 +U 646 ; WX 336 ; N uni0286 ; G 584 +U 647 ; WX 392 ; N uni0287 ; G 585 +U 648 ; WX 392 ; N uni0288 ; G 586 +U 649 ; WX 634 ; N uni0289 ; G 587 +U 650 ; WX 618 ; N uni028A ; G 588 +U 651 ; WX 598 ; N uni028B ; G 589 +U 652 ; WX 592 ; N uni028C ; G 590 +U 653 ; WX 818 ; N uni028D ; G 591 +U 654 ; WX 592 ; N uni028E ; G 592 +U 655 ; WX 611 ; N uni028F ; G 593 +U 656 ; WX 525 ; N uni0290 ; G 594 +U 657 ; WX 525 ; N uni0291 ; G 595 +U 658 ; WX 578 ; N uni0292 ; G 596 +U 659 ; WX 578 ; N uni0293 ; G 597 +U 660 ; WX 510 ; N uni0294 ; G 598 +U 661 ; WX 510 ; N uni0295 ; G 599 +U 662 ; WX 510 ; N uni0296 ; G 600 +U 663 ; WX 510 ; N uni0297 ; G 601 +U 664 ; WX 787 ; N uni0298 ; G 602 +U 665 ; WX 580 ; N uni0299 ; G 603 +U 666 ; WX 664 ; N uni029A ; G 604 +U 667 ; WX 708 ; N uni029B ; G 605 +U 668 ; WX 654 ; N uni029C ; G 606 +U 669 ; WX 292 ; N uni029D ; G 607 +U 670 ; WX 667 ; N uni029E ; G 608 +U 671 ; WX 507 ; N uni029F ; G 609 +U 672 ; WX 727 ; N uni02A0 ; G 610 +U 673 ; WX 510 ; N uni02A1 ; G 611 +U 674 ; WX 510 ; N uni02A2 ; G 612 +U 675 ; WX 1014 ; N uni02A3 ; G 613 +U 676 ; WX 1058 ; N uni02A4 ; G 614 +U 677 ; WX 1013 ; N uni02A5 ; G 615 +U 678 ; WX 830 ; N uni02A6 ; G 616 +U 679 ; WX 610 ; N uni02A7 ; G 617 +U 680 ; WX 778 ; N uni02A8 ; G 618 +U 681 ; WX 848 ; N uni02A9 ; G 619 +U 682 ; WX 706 ; N uni02AA ; G 620 +U 683 ; WX 654 ; N uni02AB ; G 621 +U 684 ; WX 515 ; N uni02AC ; G 622 +U 685 ; WX 515 ; N uni02AD ; G 623 +U 686 ; WX 570 ; N uni02AE ; G 624 +U 687 ; WX 664 ; N uni02AF ; G 625 +U 688 ; WX 399 ; N uni02B0 ; G 626 +U 689 ; WX 399 ; N uni02B1 ; G 627 +U 690 ; WX 175 ; N uni02B2 ; G 628 +U 691 ; WX 259 ; N uni02B3 ; G 629 +U 692 ; WX 295 ; N uni02B4 ; G 630 +U 693 ; WX 296 ; N uni02B5 ; G 631 +U 694 ; WX 379 ; N uni02B6 ; G 632 +U 695 ; WX 515 ; N uni02B7 ; G 633 +U 696 ; WX 373 ; N uni02B8 ; G 634 +U 697 ; WX 278 ; N uni02B9 ; G 635 +U 698 ; WX 460 ; N uni02BA ; G 636 +U 699 ; WX 318 ; N uni02BB ; G 637 +U 700 ; WX 318 ; N uni02BC ; G 638 +U 701 ; WX 318 ; N uni02BD ; G 639 +U 702 ; WX 307 ; N uni02BE ; G 640 +U 703 ; WX 307 ; N uni02BF ; G 641 +U 704 ; WX 370 ; N uni02C0 ; G 642 +U 705 ; WX 370 ; N uni02C1 ; G 643 +U 706 ; WX 500 ; N uni02C2 ; G 644 +U 707 ; WX 500 ; N uni02C3 ; G 645 +U 708 ; WX 500 ; N uni02C4 ; G 646 +U 709 ; WX 500 ; N uni02C5 ; G 647 +U 710 ; WX 500 ; N circumflex ; G 648 +U 711 ; WX 500 ; N caron ; G 649 +U 712 ; WX 275 ; N uni02C8 ; G 650 +U 713 ; WX 500 ; N uni02C9 ; G 651 +U 714 ; WX 500 ; N uni02CA ; G 652 +U 715 ; WX 500 ; N uni02CB ; G 653 +U 716 ; WX 275 ; N uni02CC ; G 654 +U 717 ; WX 500 ; N uni02CD ; G 655 +U 718 ; WX 500 ; N uni02CE ; G 656 +U 719 ; WX 500 ; N uni02CF ; G 657 +U 720 ; WX 337 ; N uni02D0 ; G 658 +U 721 ; WX 337 ; N uni02D1 ; G 659 +U 722 ; WX 307 ; N uni02D2 ; G 660 +U 723 ; WX 307 ; N uni02D3 ; G 661 +U 724 ; WX 500 ; N uni02D4 ; G 662 +U 725 ; WX 500 ; N uni02D5 ; G 663 +U 726 ; WX 390 ; N uni02D6 ; G 664 +U 727 ; WX 317 ; N uni02D7 ; G 665 +U 728 ; WX 500 ; N breve ; G 666 +U 729 ; WX 500 ; N dotaccent ; G 667 +U 730 ; WX 500 ; N ring ; G 668 +U 731 ; WX 500 ; N ogonek ; G 669 +U 732 ; WX 500 ; N tilde ; G 670 +U 733 ; WX 500 ; N hungarumlaut ; G 671 +U 734 ; WX 315 ; N uni02DE ; G 672 +U 735 ; WX 500 ; N uni02DF ; G 673 +U 736 ; WX 426 ; N uni02E0 ; G 674 +U 737 ; WX 166 ; N uni02E1 ; G 675 +U 738 ; WX 373 ; N uni02E2 ; G 676 +U 739 ; WX 444 ; N uni02E3 ; G 677 +U 740 ; WX 370 ; N uni02E4 ; G 678 +U 741 ; WX 493 ; N uni02E5 ; G 679 +U 742 ; WX 493 ; N uni02E6 ; G 680 +U 743 ; WX 493 ; N uni02E7 ; G 681 +U 744 ; WX 493 ; N uni02E8 ; G 682 +U 745 ; WX 493 ; N uni02E9 ; G 683 +U 748 ; WX 500 ; N uni02EC ; G 684 +U 749 ; WX 500 ; N uni02ED ; G 685 +U 750 ; WX 518 ; N uni02EE ; G 686 +U 755 ; WX 500 ; N uni02F3 ; G 687 +U 759 ; WX 500 ; N uni02F7 ; G 688 +U 768 ; WX 0 ; N gravecomb ; G 689 +U 769 ; WX 0 ; N acutecomb ; G 690 +U 770 ; WX 0 ; N uni0302 ; G 691 +U 771 ; WX 0 ; N tildecomb ; G 692 +U 772 ; WX 0 ; N uni0304 ; G 693 +U 773 ; WX 0 ; N uni0305 ; G 694 +U 774 ; WX 0 ; N uni0306 ; G 695 +U 775 ; WX 0 ; N uni0307 ; G 696 +U 776 ; WX 0 ; N uni0308 ; G 697 +U 777 ; WX 0 ; N hookabovecomb ; G 698 +U 778 ; WX 0 ; N uni030A ; G 699 +U 779 ; WX 0 ; N uni030B ; G 700 +U 780 ; WX 0 ; N uni030C ; G 701 +U 781 ; WX 0 ; N uni030D ; G 702 +U 782 ; WX 0 ; N uni030E ; G 703 +U 783 ; WX 0 ; N uni030F ; G 704 +U 784 ; WX 0 ; N uni0310 ; G 705 +U 785 ; WX 0 ; N uni0311 ; G 706 +U 786 ; WX 0 ; N uni0312 ; G 707 +U 787 ; WX 0 ; N uni0313 ; G 708 +U 788 ; WX 0 ; N uni0314 ; G 709 +U 789 ; WX 0 ; N uni0315 ; G 710 +U 790 ; WX 0 ; N uni0316 ; G 711 +U 791 ; WX 0 ; N uni0317 ; G 712 +U 792 ; WX 0 ; N uni0318 ; G 713 +U 793 ; WX 0 ; N uni0319 ; G 714 +U 794 ; WX 0 ; N uni031A ; G 715 +U 795 ; WX 0 ; N uni031B ; G 716 +U 796 ; WX 0 ; N uni031C ; G 717 +U 797 ; WX 0 ; N uni031D ; G 718 +U 798 ; WX 0 ; N uni031E ; G 719 +U 799 ; WX 0 ; N uni031F ; G 720 +U 800 ; WX 0 ; N uni0320 ; G 721 +U 801 ; WX 0 ; N uni0321 ; G 722 +U 802 ; WX 0 ; N uni0322 ; G 723 +U 803 ; WX 0 ; N dotbelowcomb ; G 724 +U 804 ; WX 0 ; N uni0324 ; G 725 +U 805 ; WX 0 ; N uni0325 ; G 726 +U 806 ; WX 0 ; N uni0326 ; G 727 +U 807 ; WX 0 ; N uni0327 ; G 728 +U 808 ; WX 0 ; N uni0328 ; G 729 +U 809 ; WX 0 ; N uni0329 ; G 730 +U 810 ; WX 0 ; N uni032A ; G 731 +U 811 ; WX 0 ; N uni032B ; G 732 +U 812 ; WX 0 ; N uni032C ; G 733 +U 813 ; WX 0 ; N uni032D ; G 734 +U 814 ; WX 0 ; N uni032E ; G 735 +U 815 ; WX 0 ; N uni032F ; G 736 +U 816 ; WX 0 ; N uni0330 ; G 737 +U 817 ; WX 0 ; N uni0331 ; G 738 +U 818 ; WX 0 ; N uni0332 ; G 739 +U 819 ; WX 0 ; N uni0333 ; G 740 +U 820 ; WX 0 ; N uni0334 ; G 741 +U 821 ; WX 0 ; N uni0335 ; G 742 +U 822 ; WX 0 ; N uni0336 ; G 743 +U 823 ; WX 0 ; N uni0337 ; G 744 +U 824 ; WX 0 ; N uni0338 ; G 745 +U 825 ; WX 0 ; N uni0339 ; G 746 +U 826 ; WX 0 ; N uni033A ; G 747 +U 827 ; WX 0 ; N uni033B ; G 748 +U 828 ; WX 0 ; N uni033C ; G 749 +U 829 ; WX 0 ; N uni033D ; G 750 +U 830 ; WX 0 ; N uni033E ; G 751 +U 831 ; WX 0 ; N uni033F ; G 752 +U 832 ; WX 0 ; N uni0340 ; G 753 +U 833 ; WX 0 ; N uni0341 ; G 754 +U 834 ; WX 0 ; N uni0342 ; G 755 +U 835 ; WX 0 ; N uni0343 ; G 756 +U 836 ; WX 0 ; N uni0344 ; G 757 +U 837 ; WX 0 ; N uni0345 ; G 758 +U 838 ; WX 0 ; N uni0346 ; G 759 +U 839 ; WX 0 ; N uni0347 ; G 760 +U 840 ; WX 0 ; N uni0348 ; G 761 +U 841 ; WX 0 ; N uni0349 ; G 762 +U 842 ; WX 0 ; N uni034A ; G 763 +U 843 ; WX 0 ; N uni034B ; G 764 +U 844 ; WX 0 ; N uni034C ; G 765 +U 845 ; WX 0 ; N uni034D ; G 766 +U 846 ; WX 0 ; N uni034E ; G 767 +U 847 ; WX 0 ; N uni034F ; G 768 +U 849 ; WX 0 ; N uni0351 ; G 769 +U 850 ; WX 0 ; N uni0352 ; G 770 +U 851 ; WX 0 ; N uni0353 ; G 771 +U 855 ; WX 0 ; N uni0357 ; G 772 +U 856 ; WX 0 ; N uni0358 ; G 773 +U 858 ; WX 0 ; N uni035A ; G 774 +U 860 ; WX 0 ; N uni035C ; G 775 +U 861 ; WX 0 ; N uni035D ; G 776 +U 862 ; WX 0 ; N uni035E ; G 777 +U 863 ; WX 0 ; N uni035F ; G 778 +U 864 ; WX 0 ; N uni0360 ; G 779 +U 865 ; WX 0 ; N uni0361 ; G 780 +U 866 ; WX 0 ; N uni0362 ; G 781 +U 880 ; WX 654 ; N uni0370 ; G 782 +U 881 ; WX 568 ; N uni0371 ; G 783 +U 882 ; WX 862 ; N uni0372 ; G 784 +U 883 ; WX 647 ; N uni0373 ; G 785 +U 884 ; WX 278 ; N uni0374 ; G 786 +U 885 ; WX 278 ; N uni0375 ; G 787 +U 886 ; WX 748 ; N uni0376 ; G 788 +U 887 ; WX 650 ; N uni0377 ; G 789 +U 890 ; WX 500 ; N uni037A ; G 790 +U 891 ; WX 549 ; N uni037B ; G 791 +U 892 ; WX 550 ; N uni037C ; G 792 +U 893 ; WX 549 ; N uni037D ; G 793 +U 894 ; WX 337 ; N uni037E ; G 794 +U 895 ; WX 295 ; N uni037F ; G 795 +U 900 ; WX 500 ; N tonos ; G 796 +U 901 ; WX 500 ; N dieresistonos ; G 797 +U 902 ; WX 684 ; N Alphatonos ; G 798 +U 903 ; WX 318 ; N anoteleia ; G 799 +U 904 ; WX 767 ; N Epsilontonos ; G 800 +U 905 ; WX 903 ; N Etatonos ; G 801 +U 906 ; WX 435 ; N Iotatonos ; G 802 +U 908 ; WX 839 ; N Omicrontonos ; G 803 +U 910 ; WX 860 ; N Upsilontonos ; G 804 +U 911 ; WX 905 ; N Omegatonos ; G 805 +U 912 ; WX 338 ; N iotadieresistonos ; G 806 +U 913 ; WX 684 ; N Alpha ; G 807 +U 914 ; WX 686 ; N Beta ; G 808 +U 915 ; WX 557 ; N Gamma ; G 809 +U 916 ; WX 684 ; N uni0394 ; G 810 +U 917 ; WX 632 ; N Epsilon ; G 811 +U 918 ; WX 685 ; N Zeta ; G 812 +U 919 ; WX 752 ; N Eta ; G 813 +U 920 ; WX 787 ; N Theta ; G 814 +U 921 ; WX 295 ; N Iota ; G 815 +U 922 ; WX 656 ; N Kappa ; G 816 +U 923 ; WX 684 ; N Lambda ; G 817 +U 924 ; WX 863 ; N Mu ; G 818 +U 925 ; WX 748 ; N Nu ; G 819 +U 926 ; WX 632 ; N Xi ; G 820 +U 927 ; WX 787 ; N Omicron ; G 821 +U 928 ; WX 752 ; N Pi ; G 822 +U 929 ; WX 603 ; N Rho ; G 823 +U 931 ; WX 632 ; N Sigma ; G 824 +U 932 ; WX 611 ; N Tau ; G 825 +U 933 ; WX 611 ; N Upsilon ; G 826 +U 934 ; WX 787 ; N Phi ; G 827 +U 935 ; WX 685 ; N Chi ; G 828 +U 936 ; WX 787 ; N Psi ; G 829 +U 937 ; WX 764 ; N Omega ; G 830 +U 938 ; WX 295 ; N Iotadieresis ; G 831 +U 939 ; WX 611 ; N Upsilondieresis ; G 832 +U 940 ; WX 659 ; N alphatonos ; G 833 +U 941 ; WX 541 ; N epsilontonos ; G 834 +U 942 ; WX 634 ; N etatonos ; G 835 +U 943 ; WX 338 ; N iotatonos ; G 836 +U 944 ; WX 579 ; N upsilondieresistonos ; G 837 +U 945 ; WX 659 ; N alpha ; G 838 +U 946 ; WX 638 ; N beta ; G 839 +U 947 ; WX 592 ; N gamma ; G 840 +U 948 ; WX 612 ; N delta ; G 841 +U 949 ; WX 541 ; N epsilon ; G 842 +U 950 ; WX 544 ; N zeta ; G 843 +U 951 ; WX 634 ; N eta ; G 844 +U 952 ; WX 612 ; N theta ; G 845 +U 953 ; WX 338 ; N iota ; G 846 +U 954 ; WX 589 ; N kappa ; G 847 +U 955 ; WX 592 ; N lambda ; G 848 +U 956 ; WX 636 ; N uni03BC ; G 849 +U 957 ; WX 559 ; N nu ; G 850 +U 958 ; WX 558 ; N xi ; G 851 +U 959 ; WX 612 ; N omicron ; G 852 +U 960 ; WX 602 ; N pi ; G 853 +U 961 ; WX 635 ; N rho ; G 854 +U 962 ; WX 587 ; N sigma1 ; G 855 +U 963 ; WX 634 ; N sigma ; G 856 +U 964 ; WX 602 ; N tau ; G 857 +U 965 ; WX 579 ; N upsilon ; G 858 +U 966 ; WX 660 ; N phi ; G 859 +U 967 ; WX 592 ; N chi ; G 860 +U 968 ; WX 660 ; N psi ; G 861 +U 969 ; WX 837 ; N omega ; G 862 +U 970 ; WX 338 ; N iotadieresis ; G 863 +U 971 ; WX 579 ; N upsilondieresis ; G 864 +U 972 ; WX 612 ; N omicrontonos ; G 865 +U 973 ; WX 579 ; N upsilontonos ; G 866 +U 974 ; WX 837 ; N omegatonos ; G 867 +U 975 ; WX 656 ; N uni03CF ; G 868 +U 976 ; WX 614 ; N uni03D0 ; G 869 +U 977 ; WX 619 ; N theta1 ; G 870 +U 978 ; WX 699 ; N Upsilon1 ; G 871 +U 979 ; WX 842 ; N uni03D3 ; G 872 +U 980 ; WX 699 ; N uni03D4 ; G 873 +U 981 ; WX 660 ; N phi1 ; G 874 +U 982 ; WX 837 ; N omega1 ; G 875 +U 983 ; WX 664 ; N uni03D7 ; G 876 +U 984 ; WX 787 ; N uni03D8 ; G 877 +U 985 ; WX 612 ; N uni03D9 ; G 878 +U 986 ; WX 648 ; N uni03DA ; G 879 +U 987 ; WX 587 ; N uni03DB ; G 880 +U 988 ; WX 575 ; N uni03DC ; G 881 +U 989 ; WX 458 ; N uni03DD ; G 882 +U 990 ; WX 660 ; N uni03DE ; G 883 +U 991 ; WX 660 ; N uni03DF ; G 884 +U 992 ; WX 865 ; N uni03E0 ; G 885 +U 993 ; WX 627 ; N uni03E1 ; G 886 +U 994 ; WX 934 ; N uni03E2 ; G 887 +U 995 ; WX 837 ; N uni03E3 ; G 888 +U 996 ; WX 758 ; N uni03E4 ; G 889 +U 997 ; WX 659 ; N uni03E5 ; G 890 +U 998 ; WX 792 ; N uni03E6 ; G 891 +U 999 ; WX 615 ; N uni03E7 ; G 892 +U 1000 ; WX 687 ; N uni03E8 ; G 893 +U 1001 ; WX 607 ; N uni03E9 ; G 894 +U 1002 ; WX 768 ; N uni03EA ; G 895 +U 1003 ; WX 625 ; N uni03EB ; G 896 +U 1004 ; WX 699 ; N uni03EC ; G 897 +U 1005 ; WX 612 ; N uni03ED ; G 898 +U 1006 ; WX 611 ; N uni03EE ; G 899 +U 1007 ; WX 536 ; N uni03EF ; G 900 +U 1008 ; WX 664 ; N uni03F0 ; G 901 +U 1009 ; WX 635 ; N uni03F1 ; G 902 +U 1010 ; WX 550 ; N uni03F2 ; G 903 +U 1011 ; WX 278 ; N uni03F3 ; G 904 +U 1012 ; WX 787 ; N uni03F4 ; G 905 +U 1013 ; WX 615 ; N uni03F5 ; G 906 +U 1014 ; WX 615 ; N uni03F6 ; G 907 +U 1015 ; WX 608 ; N uni03F7 ; G 908 +U 1016 ; WX 635 ; N uni03F8 ; G 909 +U 1017 ; WX 698 ; N uni03F9 ; G 910 +U 1018 ; WX 863 ; N uni03FA ; G 911 +U 1019 ; WX 651 ; N uni03FB ; G 912 +U 1020 ; WX 635 ; N uni03FC ; G 913 +U 1021 ; WX 703 ; N uni03FD ; G 914 +U 1022 ; WX 698 ; N uni03FE ; G 915 +U 1023 ; WX 703 ; N uni03FF ; G 916 +U 1024 ; WX 632 ; N uni0400 ; G 917 +U 1025 ; WX 632 ; N uni0401 ; G 918 +U 1026 ; WX 786 ; N uni0402 ; G 919 +U 1027 ; WX 557 ; N uni0403 ; G 920 +U 1028 ; WX 698 ; N uni0404 ; G 921 +U 1029 ; WX 635 ; N uni0405 ; G 922 +U 1030 ; WX 295 ; N uni0406 ; G 923 +U 1031 ; WX 295 ; N uni0407 ; G 924 +U 1032 ; WX 295 ; N uni0408 ; G 925 +U 1033 ; WX 1094 ; N uni0409 ; G 926 +U 1034 ; WX 1045 ; N uni040A ; G 927 +U 1035 ; WX 786 ; N uni040B ; G 928 +U 1036 ; WX 710 ; N uni040C ; G 929 +U 1037 ; WX 748 ; N uni040D ; G 930 +U 1038 ; WX 609 ; N uni040E ; G 931 +U 1039 ; WX 752 ; N uni040F ; G 932 +U 1040 ; WX 684 ; N uni0410 ; G 933 +U 1041 ; WX 686 ; N uni0411 ; G 934 +U 1042 ; WX 686 ; N uni0412 ; G 935 +U 1043 ; WX 557 ; N uni0413 ; G 936 +U 1044 ; WX 781 ; N uni0414 ; G 937 +U 1045 ; WX 632 ; N uni0415 ; G 938 +U 1046 ; WX 1077 ; N uni0416 ; G 939 +U 1047 ; WX 641 ; N uni0417 ; G 940 +U 1048 ; WX 748 ; N uni0418 ; G 941 +U 1049 ; WX 748 ; N uni0419 ; G 942 +U 1050 ; WX 710 ; N uni041A ; G 943 +U 1051 ; WX 752 ; N uni041B ; G 944 +U 1052 ; WX 863 ; N uni041C ; G 945 +U 1053 ; WX 752 ; N uni041D ; G 946 +U 1054 ; WX 787 ; N uni041E ; G 947 +U 1055 ; WX 752 ; N uni041F ; G 948 +U 1056 ; WX 603 ; N uni0420 ; G 949 +U 1057 ; WX 698 ; N uni0421 ; G 950 +U 1058 ; WX 611 ; N uni0422 ; G 951 +U 1059 ; WX 609 ; N uni0423 ; G 952 +U 1060 ; WX 861 ; N uni0424 ; G 953 +U 1061 ; WX 685 ; N uni0425 ; G 954 +U 1062 ; WX 776 ; N uni0426 ; G 955 +U 1063 ; WX 686 ; N uni0427 ; G 956 +U 1064 ; WX 1069 ; N uni0428 ; G 957 +U 1065 ; WX 1094 ; N uni0429 ; G 958 +U 1066 ; WX 833 ; N uni042A ; G 959 +U 1067 ; WX 818 ; N uni042B ; G 960 +U 1068 ; WX 686 ; N uni042C ; G 961 +U 1069 ; WX 698 ; N uni042D ; G 962 +U 1070 ; WX 1080 ; N uni042E ; G 963 +U 1071 ; WX 695 ; N uni042F ; G 964 +U 1072 ; WX 613 ; N uni0430 ; G 965 +U 1073 ; WX 617 ; N uni0431 ; G 966 +U 1074 ; WX 589 ; N uni0432 ; G 967 +U 1075 ; WX 525 ; N uni0433 ; G 968 +U 1076 ; WX 691 ; N uni0434 ; G 969 +U 1077 ; WX 615 ; N uni0435 ; G 970 +U 1078 ; WX 901 ; N uni0436 ; G 971 +U 1079 ; WX 532 ; N uni0437 ; G 972 +U 1080 ; WX 650 ; N uni0438 ; G 973 +U 1081 ; WX 650 ; N uni0439 ; G 974 +U 1082 ; WX 604 ; N uni043A ; G 975 +U 1083 ; WX 639 ; N uni043B ; G 976 +U 1084 ; WX 754 ; N uni043C ; G 977 +U 1085 ; WX 654 ; N uni043D ; G 978 +U 1086 ; WX 612 ; N uni043E ; G 979 +U 1087 ; WX 654 ; N uni043F ; G 980 +U 1088 ; WX 635 ; N uni0440 ; G 981 +U 1089 ; WX 550 ; N uni0441 ; G 982 +U 1090 ; WX 583 ; N uni0442 ; G 983 +U 1091 ; WX 592 ; N uni0443 ; G 984 +U 1092 ; WX 855 ; N uni0444 ; G 985 +U 1093 ; WX 592 ; N uni0445 ; G 986 +U 1094 ; WX 681 ; N uni0446 ; G 987 +U 1095 ; WX 591 ; N uni0447 ; G 988 +U 1096 ; WX 915 ; N uni0448 ; G 989 +U 1097 ; WX 942 ; N uni0449 ; G 990 +U 1098 ; WX 707 ; N uni044A ; G 991 +U 1099 ; WX 790 ; N uni044B ; G 992 +U 1100 ; WX 589 ; N uni044C ; G 993 +U 1101 ; WX 549 ; N uni044D ; G 994 +U 1102 ; WX 842 ; N uni044E ; G 995 +U 1103 ; WX 602 ; N uni044F ; G 996 +U 1104 ; WX 615 ; N uni0450 ; G 997 +U 1105 ; WX 615 ; N uni0451 ; G 998 +U 1106 ; WX 625 ; N uni0452 ; G 999 +U 1107 ; WX 525 ; N uni0453 ; G 1000 +U 1108 ; WX 549 ; N uni0454 ; G 1001 +U 1109 ; WX 521 ; N uni0455 ; G 1002 +U 1110 ; WX 278 ; N uni0456 ; G 1003 +U 1111 ; WX 278 ; N uni0457 ; G 1004 +U 1112 ; WX 278 ; N uni0458 ; G 1005 +U 1113 ; WX 902 ; N uni0459 ; G 1006 +U 1114 ; WX 898 ; N uni045A ; G 1007 +U 1115 ; WX 652 ; N uni045B ; G 1008 +U 1116 ; WX 604 ; N uni045C ; G 1009 +U 1117 ; WX 650 ; N uni045D ; G 1010 +U 1118 ; WX 592 ; N uni045E ; G 1011 +U 1119 ; WX 654 ; N uni045F ; G 1012 +U 1120 ; WX 934 ; N uni0460 ; G 1013 +U 1121 ; WX 837 ; N uni0461 ; G 1014 +U 1122 ; WX 771 ; N uni0462 ; G 1015 +U 1123 ; WX 672 ; N uni0463 ; G 1016 +U 1124 ; WX 942 ; N uni0464 ; G 1017 +U 1125 ; WX 749 ; N uni0465 ; G 1018 +U 1126 ; WX 879 ; N uni0466 ; G 1019 +U 1127 ; WX 783 ; N uni0467 ; G 1020 +U 1128 ; WX 1160 ; N uni0468 ; G 1021 +U 1129 ; WX 1001 ; N uni0469 ; G 1022 +U 1130 ; WX 787 ; N uni046A ; G 1023 +U 1131 ; WX 612 ; N uni046B ; G 1024 +U 1132 ; WX 1027 ; N uni046C ; G 1025 +U 1133 ; WX 824 ; N uni046D ; G 1026 +U 1134 ; WX 636 ; N uni046E ; G 1027 +U 1135 ; WX 541 ; N uni046F ; G 1028 +U 1136 ; WX 856 ; N uni0470 ; G 1029 +U 1137 ; WX 876 ; N uni0471 ; G 1030 +U 1138 ; WX 787 ; N uni0472 ; G 1031 +U 1139 ; WX 612 ; N uni0473 ; G 1032 +U 1140 ; WX 781 ; N uni0474 ; G 1033 +U 1141 ; WX 665 ; N uni0475 ; G 1034 +U 1142 ; WX 781 ; N uni0476 ; G 1035 +U 1143 ; WX 665 ; N uni0477 ; G 1036 +U 1144 ; WX 992 ; N uni0478 ; G 1037 +U 1145 ; WX 904 ; N uni0479 ; G 1038 +U 1146 ; WX 953 ; N uni047A ; G 1039 +U 1147 ; WX 758 ; N uni047B ; G 1040 +U 1148 ; WX 1180 ; N uni047C ; G 1041 +U 1149 ; WX 1028 ; N uni047D ; G 1042 +U 1150 ; WX 934 ; N uni047E ; G 1043 +U 1151 ; WX 837 ; N uni047F ; G 1044 +U 1152 ; WX 698 ; N uni0480 ; G 1045 +U 1153 ; WX 550 ; N uni0481 ; G 1046 +U 1154 ; WX 502 ; N uni0482 ; G 1047 +U 1155 ; WX 0 ; N uni0483 ; G 1048 +U 1156 ; WX 0 ; N uni0484 ; G 1049 +U 1157 ; WX 0 ; N uni0485 ; G 1050 +U 1158 ; WX 0 ; N uni0486 ; G 1051 +U 1159 ; WX 0 ; N uni0487 ; G 1052 +U 1160 ; WX 418 ; N uni0488 ; G 1053 +U 1161 ; WX 418 ; N uni0489 ; G 1054 +U 1162 ; WX 748 ; N uni048A ; G 1055 +U 1163 ; WX 657 ; N uni048B ; G 1056 +U 1164 ; WX 686 ; N uni048C ; G 1057 +U 1165 ; WX 589 ; N uni048D ; G 1058 +U 1166 ; WX 603 ; N uni048E ; G 1059 +U 1167 ; WX 635 ; N uni048F ; G 1060 +U 1168 ; WX 610 ; N uni0490 ; G 1061 +U 1169 ; WX 525 ; N uni0491 ; G 1062 +U 1170 ; WX 675 ; N uni0492 ; G 1063 +U 1171 ; WX 556 ; N uni0493 ; G 1064 +U 1172 ; WX 557 ; N uni0494 ; G 1065 +U 1173 ; WX 491 ; N uni0495 ; G 1066 +U 1174 ; WX 1077 ; N uni0496 ; G 1067 +U 1175 ; WX 901 ; N uni0497 ; G 1068 +U 1176 ; WX 641 ; N uni0498 ; G 1069 +U 1177 ; WX 532 ; N uni0499 ; G 1070 +U 1178 ; WX 710 ; N uni049A ; G 1071 +U 1179 ; WX 604 ; N uni049B ; G 1072 +U 1180 ; WX 710 ; N uni049C ; G 1073 +U 1181 ; WX 604 ; N uni049D ; G 1074 +U 1182 ; WX 710 ; N uni049E ; G 1075 +U 1183 ; WX 604 ; N uni049F ; G 1076 +U 1184 ; WX 856 ; N uni04A0 ; G 1077 +U 1185 ; WX 832 ; N uni04A1 ; G 1078 +U 1186 ; WX 752 ; N uni04A2 ; G 1079 +U 1187 ; WX 661 ; N uni04A3 ; G 1080 +U 1188 ; WX 1014 ; N uni04A4 ; G 1081 +U 1189 ; WX 877 ; N uni04A5 ; G 1082 +U 1190 ; WX 1113 ; N uni04A6 ; G 1083 +U 1191 ; WX 950 ; N uni04A7 ; G 1084 +U 1192 ; WX 890 ; N uni04A8 ; G 1085 +U 1193 ; WX 707 ; N uni04A9 ; G 1086 +U 1194 ; WX 698 ; N uni04AA ; G 1087 +U 1195 ; WX 550 ; N uni04AB ; G 1088 +U 1196 ; WX 611 ; N uni04AC ; G 1089 +U 1197 ; WX 529 ; N uni04AD ; G 1090 +U 1198 ; WX 611 ; N uni04AE ; G 1091 +U 1199 ; WX 592 ; N uni04AF ; G 1092 +U 1200 ; WX 611 ; N uni04B0 ; G 1093 +U 1201 ; WX 592 ; N uni04B1 ; G 1094 +U 1202 ; WX 685 ; N uni04B2 ; G 1095 +U 1203 ; WX 592 ; N uni04B3 ; G 1096 +U 1204 ; WX 934 ; N uni04B4 ; G 1097 +U 1205 ; WX 807 ; N uni04B5 ; G 1098 +U 1206 ; WX 686 ; N uni04B6 ; G 1099 +U 1207 ; WX 591 ; N uni04B7 ; G 1100 +U 1208 ; WX 686 ; N uni04B8 ; G 1101 +U 1209 ; WX 591 ; N uni04B9 ; G 1102 +U 1210 ; WX 686 ; N uni04BA ; G 1103 +U 1211 ; WX 634 ; N uni04BB ; G 1104 +U 1212 ; WX 929 ; N uni04BC ; G 1105 +U 1213 ; WX 731 ; N uni04BD ; G 1106 +U 1214 ; WX 929 ; N uni04BE ; G 1107 +U 1215 ; WX 731 ; N uni04BF ; G 1108 +U 1216 ; WX 295 ; N uni04C0 ; G 1109 +U 1217 ; WX 1077 ; N uni04C1 ; G 1110 +U 1218 ; WX 901 ; N uni04C2 ; G 1111 +U 1219 ; WX 655 ; N uni04C3 ; G 1112 +U 1220 ; WX 604 ; N uni04C4 ; G 1113 +U 1221 ; WX 752 ; N uni04C5 ; G 1114 +U 1222 ; WX 639 ; N uni04C6 ; G 1115 +U 1223 ; WX 752 ; N uni04C7 ; G 1116 +U 1224 ; WX 661 ; N uni04C8 ; G 1117 +U 1225 ; WX 752 ; N uni04C9 ; G 1118 +U 1226 ; WX 661 ; N uni04CA ; G 1119 +U 1227 ; WX 686 ; N uni04CB ; G 1120 +U 1228 ; WX 591 ; N uni04CC ; G 1121 +U 1229 ; WX 863 ; N uni04CD ; G 1122 +U 1230 ; WX 754 ; N uni04CE ; G 1123 +U 1231 ; WX 278 ; N uni04CF ; G 1124 +U 1232 ; WX 684 ; N uni04D0 ; G 1125 +U 1233 ; WX 613 ; N uni04D1 ; G 1126 +U 1234 ; WX 684 ; N uni04D2 ; G 1127 +U 1235 ; WX 613 ; N uni04D3 ; G 1128 +U 1236 ; WX 974 ; N uni04D4 ; G 1129 +U 1237 ; WX 995 ; N uni04D5 ; G 1130 +U 1238 ; WX 632 ; N uni04D6 ; G 1131 +U 1239 ; WX 615 ; N uni04D7 ; G 1132 +U 1240 ; WX 787 ; N uni04D8 ; G 1133 +U 1241 ; WX 615 ; N uni04D9 ; G 1134 +U 1242 ; WX 787 ; N uni04DA ; G 1135 +U 1243 ; WX 615 ; N uni04DB ; G 1136 +U 1244 ; WX 1077 ; N uni04DC ; G 1137 +U 1245 ; WX 901 ; N uni04DD ; G 1138 +U 1246 ; WX 641 ; N uni04DE ; G 1139 +U 1247 ; WX 532 ; N uni04DF ; G 1140 +U 1248 ; WX 666 ; N uni04E0 ; G 1141 +U 1249 ; WX 578 ; N uni04E1 ; G 1142 +U 1250 ; WX 748 ; N uni04E2 ; G 1143 +U 1251 ; WX 650 ; N uni04E3 ; G 1144 +U 1252 ; WX 748 ; N uni04E4 ; G 1145 +U 1253 ; WX 650 ; N uni04E5 ; G 1146 +U 1254 ; WX 787 ; N uni04E6 ; G 1147 +U 1255 ; WX 612 ; N uni04E7 ; G 1148 +U 1256 ; WX 787 ; N uni04E8 ; G 1149 +U 1257 ; WX 612 ; N uni04E9 ; G 1150 +U 1258 ; WX 787 ; N uni04EA ; G 1151 +U 1259 ; WX 612 ; N uni04EB ; G 1152 +U 1260 ; WX 698 ; N uni04EC ; G 1153 +U 1261 ; WX 549 ; N uni04ED ; G 1154 +U 1262 ; WX 609 ; N uni04EE ; G 1155 +U 1263 ; WX 592 ; N uni04EF ; G 1156 +U 1264 ; WX 609 ; N uni04F0 ; G 1157 +U 1265 ; WX 592 ; N uni04F1 ; G 1158 +U 1266 ; WX 609 ; N uni04F2 ; G 1159 +U 1267 ; WX 592 ; N uni04F3 ; G 1160 +U 1268 ; WX 686 ; N uni04F4 ; G 1161 +U 1269 ; WX 591 ; N uni04F5 ; G 1162 +U 1270 ; WX 557 ; N uni04F6 ; G 1163 +U 1271 ; WX 491 ; N uni04F7 ; G 1164 +U 1272 ; WX 818 ; N uni04F8 ; G 1165 +U 1273 ; WX 790 ; N uni04F9 ; G 1166 +U 1274 ; WX 675 ; N uni04FA ; G 1167 +U 1275 ; WX 556 ; N uni04FB ; G 1168 +U 1276 ; WX 685 ; N uni04FC ; G 1169 +U 1277 ; WX 592 ; N uni04FD ; G 1170 +U 1278 ; WX 685 ; N uni04FE ; G 1171 +U 1279 ; WX 592 ; N uni04FF ; G 1172 +U 1280 ; WX 686 ; N uni0500 ; G 1173 +U 1281 ; WX 589 ; N uni0501 ; G 1174 +U 1282 ; WX 1006 ; N uni0502 ; G 1175 +U 1283 ; WX 897 ; N uni0503 ; G 1176 +U 1284 ; WX 975 ; N uni0504 ; G 1177 +U 1285 ; WX 869 ; N uni0505 ; G 1178 +U 1286 ; WX 679 ; N uni0506 ; G 1179 +U 1287 ; WX 588 ; N uni0507 ; G 1180 +U 1288 ; WX 1072 ; N uni0508 ; G 1181 +U 1289 ; WX 957 ; N uni0509 ; G 1182 +U 1290 ; WX 1113 ; N uni050A ; G 1183 +U 1291 ; WX 967 ; N uni050B ; G 1184 +U 1292 ; WX 775 ; N uni050C ; G 1185 +U 1293 ; WX 660 ; N uni050D ; G 1186 +U 1294 ; WX 773 ; N uni050E ; G 1187 +U 1295 ; WX 711 ; N uni050F ; G 1188 +U 1296 ; WX 614 ; N uni0510 ; G 1189 +U 1297 ; WX 541 ; N uni0511 ; G 1190 +U 1298 ; WX 752 ; N uni0512 ; G 1191 +U 1299 ; WX 639 ; N uni0513 ; G 1192 +U 1300 ; WX 1195 ; N uni0514 ; G 1193 +U 1301 ; WX 997 ; N uni0515 ; G 1194 +U 1302 ; WX 900 ; N uni0516 ; G 1195 +U 1303 ; WX 867 ; N uni0517 ; G 1196 +U 1304 ; WX 1031 ; N uni0518 ; G 1197 +U 1305 ; WX 989 ; N uni0519 ; G 1198 +U 1306 ; WX 787 ; N uni051A ; G 1199 +U 1307 ; WX 635 ; N uni051B ; G 1200 +U 1308 ; WX 989 ; N uni051C ; G 1201 +U 1309 ; WX 818 ; N uni051D ; G 1202 +U 1310 ; WX 710 ; N uni051E ; G 1203 +U 1311 ; WX 604 ; N uni051F ; G 1204 +U 1312 ; WX 1113 ; N uni0520 ; G 1205 +U 1313 ; WX 942 ; N uni0521 ; G 1206 +U 1314 ; WX 1113 ; N uni0522 ; G 1207 +U 1315 ; WX 949 ; N uni0523 ; G 1208 +U 1316 ; WX 793 ; N uni0524 ; G 1209 +U 1317 ; WX 683 ; N uni0525 ; G 1210 +U 1329 ; WX 766 ; N uni0531 ; G 1211 +U 1330 ; WX 732 ; N uni0532 ; G 1212 +U 1331 ; WX 753 ; N uni0533 ; G 1213 +U 1332 ; WX 753 ; N uni0534 ; G 1214 +U 1333 ; WX 732 ; N uni0535 ; G 1215 +U 1334 ; WX 772 ; N uni0536 ; G 1216 +U 1335 ; WX 640 ; N uni0537 ; G 1217 +U 1336 ; WX 732 ; N uni0538 ; G 1218 +U 1337 ; WX 859 ; N uni0539 ; G 1219 +U 1338 ; WX 753 ; N uni053A ; G 1220 +U 1339 ; WX 691 ; N uni053B ; G 1221 +U 1340 ; WX 533 ; N uni053C ; G 1222 +U 1341 ; WX 922 ; N uni053D ; G 1223 +U 1342 ; WX 863 ; N uni053E ; G 1224 +U 1343 ; WX 732 ; N uni053F ; G 1225 +U 1344 ; WX 716 ; N uni0540 ; G 1226 +U 1345 ; WX 766 ; N uni0541 ; G 1227 +U 1346 ; WX 753 ; N uni0542 ; G 1228 +U 1347 ; WX 767 ; N uni0543 ; G 1229 +U 1348 ; WX 792 ; N uni0544 ; G 1230 +U 1349 ; WX 728 ; N uni0545 ; G 1231 +U 1350 ; WX 729 ; N uni0546 ; G 1232 +U 1351 ; WX 757 ; N uni0547 ; G 1233 +U 1352 ; WX 732 ; N uni0548 ; G 1234 +U 1353 ; WX 713 ; N uni0549 ; G 1235 +U 1354 ; WX 800 ; N uni054A ; G 1236 +U 1355 ; WX 768 ; N uni054B ; G 1237 +U 1356 ; WX 792 ; N uni054C ; G 1238 +U 1357 ; WX 732 ; N uni054D ; G 1239 +U 1358 ; WX 753 ; N uni054E ; G 1240 +U 1359 ; WX 705 ; N uni054F ; G 1241 +U 1360 ; WX 694 ; N uni0550 ; G 1242 +U 1361 ; WX 744 ; N uni0551 ; G 1243 +U 1362 ; WX 538 ; N uni0552 ; G 1244 +U 1363 ; WX 811 ; N uni0553 ; G 1245 +U 1364 ; WX 757 ; N uni0554 ; G 1246 +U 1365 ; WX 787 ; N uni0555 ; G 1247 +U 1366 ; WX 790 ; N uni0556 ; G 1248 +U 1369 ; WX 307 ; N uni0559 ; G 1249 +U 1370 ; WX 318 ; N uni055A ; G 1250 +U 1371 ; WX 234 ; N uni055B ; G 1251 +U 1372 ; WX 361 ; N uni055C ; G 1252 +U 1373 ; WX 238 ; N uni055D ; G 1253 +U 1374 ; WX 405 ; N uni055E ; G 1254 +U 1375 ; WX 500 ; N uni055F ; G 1255 +U 1377 ; WX 974 ; N uni0561 ; G 1256 +U 1378 ; WX 634 ; N uni0562 ; G 1257 +U 1379 ; WX 658 ; N uni0563 ; G 1258 +U 1380 ; WX 663 ; N uni0564 ; G 1259 +U 1381 ; WX 634 ; N uni0565 ; G 1260 +U 1382 ; WX 635 ; N uni0566 ; G 1261 +U 1383 ; WX 515 ; N uni0567 ; G 1262 +U 1384 ; WX 634 ; N uni0568 ; G 1263 +U 1385 ; WX 738 ; N uni0569 ; G 1264 +U 1386 ; WX 658 ; N uni056A ; G 1265 +U 1387 ; WX 634 ; N uni056B ; G 1266 +U 1388 ; WX 271 ; N uni056C ; G 1267 +U 1389 ; WX 980 ; N uni056D ; G 1268 +U 1390 ; WX 623 ; N uni056E ; G 1269 +U 1391 ; WX 634 ; N uni056F ; G 1270 +U 1392 ; WX 634 ; N uni0570 ; G 1271 +U 1393 ; WX 608 ; N uni0571 ; G 1272 +U 1394 ; WX 634 ; N uni0572 ; G 1273 +U 1395 ; WX 629 ; N uni0573 ; G 1274 +U 1396 ; WX 634 ; N uni0574 ; G 1275 +U 1397 ; WX 278 ; N uni0575 ; G 1276 +U 1398 ; WX 634 ; N uni0576 ; G 1277 +U 1399 ; WX 499 ; N uni0577 ; G 1278 +U 1400 ; WX 634 ; N uni0578 ; G 1279 +U 1401 ; WX 404 ; N uni0579 ; G 1280 +U 1402 ; WX 974 ; N uni057A ; G 1281 +U 1403 ; WX 560 ; N uni057B ; G 1282 +U 1404 ; WX 648 ; N uni057C ; G 1283 +U 1405 ; WX 634 ; N uni057D ; G 1284 +U 1406 ; WX 634 ; N uni057E ; G 1285 +U 1407 ; WX 974 ; N uni057F ; G 1286 +U 1408 ; WX 634 ; N uni0580 ; G 1287 +U 1409 ; WX 635 ; N uni0581 ; G 1288 +U 1410 ; WX 435 ; N uni0582 ; G 1289 +U 1411 ; WX 974 ; N uni0583 ; G 1290 +U 1412 ; WX 636 ; N uni0584 ; G 1291 +U 1413 ; WX 612 ; N uni0585 ; G 1292 +U 1414 ; WX 805 ; N uni0586 ; G 1293 +U 1415 ; WX 812 ; N uni0587 ; G 1294 +U 1417 ; WX 337 ; N uni0589 ; G 1295 +U 1418 ; WX 361 ; N uni058A ; G 1296 +U 1456 ; WX 0 ; N uni05B0 ; G 1297 +U 1457 ; WX 0 ; N uni05B1 ; G 1298 +U 1458 ; WX 0 ; N uni05B2 ; G 1299 +U 1459 ; WX 0 ; N uni05B3 ; G 1300 +U 1460 ; WX 0 ; N uni05B4 ; G 1301 +U 1461 ; WX 0 ; N uni05B5 ; G 1302 +U 1462 ; WX 0 ; N uni05B6 ; G 1303 +U 1463 ; WX 0 ; N uni05B7 ; G 1304 +U 1464 ; WX 0 ; N uni05B8 ; G 1305 +U 1465 ; WX 0 ; N uni05B9 ; G 1306 +U 1466 ; WX 0 ; N uni05BA ; G 1307 +U 1467 ; WX 0 ; N uni05BB ; G 1308 +U 1468 ; WX 0 ; N uni05BC ; G 1309 +U 1469 ; WX 0 ; N uni05BD ; G 1310 +U 1470 ; WX 361 ; N uni05BE ; G 1311 +U 1471 ; WX 0 ; N uni05BF ; G 1312 +U 1472 ; WX 295 ; N uni05C0 ; G 1313 +U 1473 ; WX 0 ; N uni05C1 ; G 1314 +U 1474 ; WX 0 ; N uni05C2 ; G 1315 +U 1475 ; WX 295 ; N uni05C3 ; G 1316 +U 1478 ; WX 456 ; N uni05C6 ; G 1317 +U 1479 ; WX 0 ; N uni05C7 ; G 1318 +U 1488 ; WX 668 ; N uni05D0 ; G 1319 +U 1489 ; WX 578 ; N uni05D1 ; G 1320 +U 1490 ; WX 412 ; N uni05D2 ; G 1321 +U 1491 ; WX 546 ; N uni05D3 ; G 1322 +U 1492 ; WX 653 ; N uni05D4 ; G 1323 +U 1493 ; WX 272 ; N uni05D5 ; G 1324 +U 1494 ; WX 346 ; N uni05D6 ; G 1325 +U 1495 ; WX 653 ; N uni05D7 ; G 1326 +U 1496 ; WX 648 ; N uni05D8 ; G 1327 +U 1497 ; WX 224 ; N uni05D9 ; G 1328 +U 1498 ; WX 537 ; N uni05DA ; G 1329 +U 1499 ; WX 529 ; N uni05DB ; G 1330 +U 1500 ; WX 568 ; N uni05DC ; G 1331 +U 1501 ; WX 664 ; N uni05DD ; G 1332 +U 1502 ; WX 679 ; N uni05DE ; G 1333 +U 1503 ; WX 272 ; N uni05DF ; G 1334 +U 1504 ; WX 400 ; N uni05E0 ; G 1335 +U 1505 ; WX 649 ; N uni05E1 ; G 1336 +U 1506 ; WX 626 ; N uni05E2 ; G 1337 +U 1507 ; WX 640 ; N uni05E3 ; G 1338 +U 1508 ; WX 625 ; N uni05E4 ; G 1339 +U 1509 ; WX 540 ; N uni05E5 ; G 1340 +U 1510 ; WX 593 ; N uni05E6 ; G 1341 +U 1511 ; WX 709 ; N uni05E7 ; G 1342 +U 1512 ; WX 564 ; N uni05E8 ; G 1343 +U 1513 ; WX 708 ; N uni05E9 ; G 1344 +U 1514 ; WX 657 ; N uni05EA ; G 1345 +U 1520 ; WX 471 ; N uni05F0 ; G 1346 +U 1521 ; WX 454 ; N uni05F1 ; G 1347 +U 1522 ; WX 471 ; N uni05F2 ; G 1348 +U 1523 ; WX 416 ; N uni05F3 ; G 1349 +U 1524 ; WX 645 ; N uni05F4 ; G 1350 +U 3647 ; WX 636 ; N uni0E3F ; G 1351 +U 3713 ; WX 670 ; N uni0E81 ; G 1352 +U 3714 ; WX 684 ; N uni0E82 ; G 1353 +U 3716 ; WX 688 ; N uni0E84 ; G 1354 +U 3719 ; WX 482 ; N uni0E87 ; G 1355 +U 3720 ; WX 628 ; N uni0E88 ; G 1356 +U 3722 ; WX 684 ; N uni0E8A ; G 1357 +U 3725 ; WX 688 ; N uni0E8D ; G 1358 +U 3732 ; WX 642 ; N uni0E94 ; G 1359 +U 3733 ; WX 642 ; N uni0E95 ; G 1360 +U 3734 ; WX 672 ; N uni0E96 ; G 1361 +U 3735 ; WX 655 ; N uni0E97 ; G 1362 +U 3737 ; WX 641 ; N uni0E99 ; G 1363 +U 3738 ; WX 592 ; N uni0E9A ; G 1364 +U 3739 ; WX 592 ; N uni0E9B ; G 1365 +U 3740 ; WX 745 ; N uni0E9C ; G 1366 +U 3741 ; WX 767 ; N uni0E9D ; G 1367 +U 3742 ; WX 687 ; N uni0E9E ; G 1368 +U 3743 ; WX 687 ; N uni0E9F ; G 1369 +U 3745 ; WX 702 ; N uni0EA1 ; G 1370 +U 3746 ; WX 688 ; N uni0EA2 ; G 1371 +U 3747 ; WX 684 ; N uni0EA3 ; G 1372 +U 3749 ; WX 649 ; N uni0EA5 ; G 1373 +U 3751 ; WX 632 ; N uni0EA7 ; G 1374 +U 3754 ; WX 703 ; N uni0EAA ; G 1375 +U 3755 ; WX 819 ; N uni0EAB ; G 1376 +U 3757 ; WX 633 ; N uni0EAD ; G 1377 +U 3758 ; WX 684 ; N uni0EAE ; G 1378 +U 3759 ; WX 788 ; N uni0EAF ; G 1379 +U 3760 ; WX 632 ; N uni0EB0 ; G 1380 +U 3761 ; WX 0 ; N uni0EB1 ; G 1381 +U 3762 ; WX 539 ; N uni0EB2 ; G 1382 +U 3763 ; WX 539 ; N uni0EB3 ; G 1383 +U 3764 ; WX 0 ; N uni0EB4 ; G 1384 +U 3765 ; WX 0 ; N uni0EB5 ; G 1385 +U 3766 ; WX 0 ; N uni0EB6 ; G 1386 +U 3767 ; WX 0 ; N uni0EB7 ; G 1387 +U 3768 ; WX 0 ; N uni0EB8 ; G 1388 +U 3769 ; WX 0 ; N uni0EB9 ; G 1389 +U 3771 ; WX 0 ; N uni0EBB ; G 1390 +U 3772 ; WX 0 ; N uni0EBC ; G 1391 +U 3773 ; WX 663 ; N uni0EBD ; G 1392 +U 3776 ; WX 360 ; N uni0EC0 ; G 1393 +U 3777 ; WX 679 ; N uni0EC1 ; G 1394 +U 3778 ; WX 460 ; N uni0EC2 ; G 1395 +U 3779 ; WX 547 ; N uni0EC3 ; G 1396 +U 3780 ; WX 491 ; N uni0EC4 ; G 1397 +U 3782 ; WX 674 ; N uni0EC6 ; G 1398 +U 3784 ; WX 0 ; N uni0EC8 ; G 1399 +U 3785 ; WX 0 ; N uni0EC9 ; G 1400 +U 3786 ; WX 0 ; N uni0ECA ; G 1401 +U 3787 ; WX 0 ; N uni0ECB ; G 1402 +U 3788 ; WX 0 ; N uni0ECC ; G 1403 +U 3789 ; WX 0 ; N uni0ECD ; G 1404 +U 3792 ; WX 636 ; N uni0ED0 ; G 1405 +U 3793 ; WX 641 ; N uni0ED1 ; G 1406 +U 3794 ; WX 641 ; N uni0ED2 ; G 1407 +U 3795 ; WX 670 ; N uni0ED3 ; G 1408 +U 3796 ; WX 625 ; N uni0ED4 ; G 1409 +U 3797 ; WX 625 ; N uni0ED5 ; G 1410 +U 3798 ; WX 703 ; N uni0ED6 ; G 1411 +U 3799 ; WX 670 ; N uni0ED7 ; G 1412 +U 3800 ; WX 674 ; N uni0ED8 ; G 1413 +U 3801 ; WX 677 ; N uni0ED9 ; G 1414 +U 3804 ; WX 1028 ; N uni0EDC ; G 1415 +U 3805 ; WX 1028 ; N uni0EDD ; G 1416 +U 4256 ; WX 874 ; N uni10A0 ; G 1417 +U 4257 ; WX 733 ; N uni10A1 ; G 1418 +U 4258 ; WX 679 ; N uni10A2 ; G 1419 +U 4259 ; WX 834 ; N uni10A3 ; G 1420 +U 4260 ; WX 615 ; N uni10A4 ; G 1421 +U 4261 ; WX 768 ; N uni10A5 ; G 1422 +U 4262 ; WX 753 ; N uni10A6 ; G 1423 +U 4263 ; WX 914 ; N uni10A7 ; G 1424 +U 4264 ; WX 453 ; N uni10A8 ; G 1425 +U 4265 ; WX 620 ; N uni10A9 ; G 1426 +U 4266 ; WX 843 ; N uni10AA ; G 1427 +U 4267 ; WX 882 ; N uni10AB ; G 1428 +U 4268 ; WX 625 ; N uni10AC ; G 1429 +U 4269 ; WX 854 ; N uni10AD ; G 1430 +U 4270 ; WX 781 ; N uni10AE ; G 1431 +U 4271 ; WX 629 ; N uni10AF ; G 1432 +U 4272 ; WX 912 ; N uni10B0 ; G 1433 +U 4273 ; WX 621 ; N uni10B1 ; G 1434 +U 4274 ; WX 620 ; N uni10B2 ; G 1435 +U 4275 ; WX 854 ; N uni10B3 ; G 1436 +U 4276 ; WX 866 ; N uni10B4 ; G 1437 +U 4277 ; WX 724 ; N uni10B5 ; G 1438 +U 4278 ; WX 630 ; N uni10B6 ; G 1439 +U 4279 ; WX 621 ; N uni10B7 ; G 1440 +U 4280 ; WX 625 ; N uni10B8 ; G 1441 +U 4281 ; WX 620 ; N uni10B9 ; G 1442 +U 4282 ; WX 818 ; N uni10BA ; G 1443 +U 4283 ; WX 874 ; N uni10BB ; G 1444 +U 4284 ; WX 615 ; N uni10BC ; G 1445 +U 4285 ; WX 623 ; N uni10BD ; G 1446 +U 4286 ; WX 625 ; N uni10BE ; G 1447 +U 4287 ; WX 725 ; N uni10BF ; G 1448 +U 4288 ; WX 844 ; N uni10C0 ; G 1449 +U 4289 ; WX 596 ; N uni10C1 ; G 1450 +U 4290 ; WX 688 ; N uni10C2 ; G 1451 +U 4291 ; WX 596 ; N uni10C3 ; G 1452 +U 4292 ; WX 594 ; N uni10C4 ; G 1453 +U 4293 ; WX 738 ; N uni10C5 ; G 1454 +U 4304 ; WX 508 ; N uni10D0 ; G 1455 +U 4305 ; WX 518 ; N uni10D1 ; G 1456 +U 4306 ; WX 581 ; N uni10D2 ; G 1457 +U 4307 ; WX 818 ; N uni10D3 ; G 1458 +U 4308 ; WX 508 ; N uni10D4 ; G 1459 +U 4309 ; WX 513 ; N uni10D5 ; G 1460 +U 4310 ; WX 500 ; N uni10D6 ; G 1461 +U 4311 ; WX 801 ; N uni10D7 ; G 1462 +U 4312 ; WX 518 ; N uni10D8 ; G 1463 +U 4313 ; WX 510 ; N uni10D9 ; G 1464 +U 4314 ; WX 1064 ; N uni10DA ; G 1465 +U 4315 ; WX 522 ; N uni10DB ; G 1466 +U 4316 ; WX 522 ; N uni10DC ; G 1467 +U 4317 ; WX 786 ; N uni10DD ; G 1468 +U 4318 ; WX 508 ; N uni10DE ; G 1469 +U 4319 ; WX 518 ; N uni10DF ; G 1470 +U 4320 ; WX 796 ; N uni10E0 ; G 1471 +U 4321 ; WX 522 ; N uni10E1 ; G 1472 +U 4322 ; WX 654 ; N uni10E2 ; G 1473 +U 4323 ; WX 522 ; N uni10E3 ; G 1474 +U 4324 ; WX 825 ; N uni10E4 ; G 1475 +U 4325 ; WX 513 ; N uni10E5 ; G 1476 +U 4326 ; WX 786 ; N uni10E6 ; G 1477 +U 4327 ; WX 518 ; N uni10E7 ; G 1478 +U 4328 ; WX 518 ; N uni10E8 ; G 1479 +U 4329 ; WX 522 ; N uni10E9 ; G 1480 +U 4330 ; WX 571 ; N uni10EA ; G 1481 +U 4331 ; WX 522 ; N uni10EB ; G 1482 +U 4332 ; WX 518 ; N uni10EC ; G 1483 +U 4333 ; WX 520 ; N uni10ED ; G 1484 +U 4334 ; WX 522 ; N uni10EE ; G 1485 +U 4335 ; WX 454 ; N uni10EF ; G 1486 +U 4336 ; WX 508 ; N uni10F0 ; G 1487 +U 4337 ; WX 518 ; N uni10F1 ; G 1488 +U 4338 ; WX 508 ; N uni10F2 ; G 1489 +U 4339 ; WX 508 ; N uni10F3 ; G 1490 +U 4340 ; WX 518 ; N uni10F4 ; G 1491 +U 4341 ; WX 554 ; N uni10F5 ; G 1492 +U 4342 ; WX 828 ; N uni10F6 ; G 1493 +U 4343 ; WX 552 ; N uni10F7 ; G 1494 +U 4344 ; WX 508 ; N uni10F8 ; G 1495 +U 4345 ; WX 571 ; N uni10F9 ; G 1496 +U 4346 ; WX 508 ; N uni10FA ; G 1497 +U 4347 ; WX 448 ; N uni10FB ; G 1498 +U 4348 ; WX 324 ; N uni10FC ; G 1499 +U 5121 ; WX 684 ; N uni1401 ; G 1500 +U 5122 ; WX 684 ; N uni1402 ; G 1501 +U 5123 ; WX 684 ; N uni1403 ; G 1502 +U 5124 ; WX 684 ; N uni1404 ; G 1503 +U 5125 ; WX 769 ; N uni1405 ; G 1504 +U 5126 ; WX 769 ; N uni1406 ; G 1505 +U 5127 ; WX 769 ; N uni1407 ; G 1506 +U 5129 ; WX 769 ; N uni1409 ; G 1507 +U 5130 ; WX 769 ; N uni140A ; G 1508 +U 5131 ; WX 769 ; N uni140B ; G 1509 +U 5132 ; WX 835 ; N uni140C ; G 1510 +U 5133 ; WX 834 ; N uni140D ; G 1511 +U 5134 ; WX 835 ; N uni140E ; G 1512 +U 5135 ; WX 834 ; N uni140F ; G 1513 +U 5136 ; WX 835 ; N uni1410 ; G 1514 +U 5137 ; WX 834 ; N uni1411 ; G 1515 +U 5138 ; WX 967 ; N uni1412 ; G 1516 +U 5139 ; WX 1007 ; N uni1413 ; G 1517 +U 5140 ; WX 967 ; N uni1414 ; G 1518 +U 5141 ; WX 1007 ; N uni1415 ; G 1519 +U 5142 ; WX 769 ; N uni1416 ; G 1520 +U 5143 ; WX 967 ; N uni1417 ; G 1521 +U 5144 ; WX 1007 ; N uni1418 ; G 1522 +U 5145 ; WX 967 ; N uni1419 ; G 1523 +U 5146 ; WX 1007 ; N uni141A ; G 1524 +U 5147 ; WX 769 ; N uni141B ; G 1525 +U 5149 ; WX 256 ; N uni141D ; G 1526 +U 5150 ; WX 543 ; N uni141E ; G 1527 +U 5151 ; WX 423 ; N uni141F ; G 1528 +U 5152 ; WX 423 ; N uni1420 ; G 1529 +U 5153 ; WX 389 ; N uni1421 ; G 1530 +U 5154 ; WX 389 ; N uni1422 ; G 1531 +U 5155 ; WX 393 ; N uni1423 ; G 1532 +U 5156 ; WX 389 ; N uni1424 ; G 1533 +U 5157 ; WX 466 ; N uni1425 ; G 1534 +U 5158 ; WX 385 ; N uni1426 ; G 1535 +U 5159 ; WX 256 ; N uni1427 ; G 1536 +U 5160 ; WX 389 ; N uni1428 ; G 1537 +U 5161 ; WX 389 ; N uni1429 ; G 1538 +U 5162 ; WX 389 ; N uni142A ; G 1539 +U 5163 ; WX 1090 ; N uni142B ; G 1540 +U 5164 ; WX 909 ; N uni142C ; G 1541 +U 5165 ; WX 953 ; N uni142D ; G 1542 +U 5166 ; WX 1117 ; N uni142E ; G 1543 +U 5167 ; WX 684 ; N uni142F ; G 1544 +U 5168 ; WX 684 ; N uni1430 ; G 1545 +U 5169 ; WX 684 ; N uni1431 ; G 1546 +U 5170 ; WX 684 ; N uni1432 ; G 1547 +U 5171 ; WX 729 ; N uni1433 ; G 1548 +U 5172 ; WX 729 ; N uni1434 ; G 1549 +U 5173 ; WX 729 ; N uni1435 ; G 1550 +U 5175 ; WX 729 ; N uni1437 ; G 1551 +U 5176 ; WX 729 ; N uni1438 ; G 1552 +U 5177 ; WX 729 ; N uni1439 ; G 1553 +U 5178 ; WX 835 ; N uni143A ; G 1554 +U 5179 ; WX 684 ; N uni143B ; G 1555 +U 5180 ; WX 835 ; N uni143C ; G 1556 +U 5181 ; WX 834 ; N uni143D ; G 1557 +U 5182 ; WX 835 ; N uni143E ; G 1558 +U 5183 ; WX 834 ; N uni143F ; G 1559 +U 5184 ; WX 967 ; N uni1440 ; G 1560 +U 5185 ; WX 1007 ; N uni1441 ; G 1561 +U 5186 ; WX 967 ; N uni1442 ; G 1562 +U 5187 ; WX 1007 ; N uni1443 ; G 1563 +U 5188 ; WX 967 ; N uni1444 ; G 1564 +U 5189 ; WX 1007 ; N uni1445 ; G 1565 +U 5190 ; WX 967 ; N uni1446 ; G 1566 +U 5191 ; WX 1007 ; N uni1447 ; G 1567 +U 5192 ; WX 729 ; N uni1448 ; G 1568 +U 5193 ; WX 508 ; N uni1449 ; G 1569 +U 5194 ; WX 192 ; N uni144A ; G 1570 +U 5196 ; WX 732 ; N uni144C ; G 1571 +U 5197 ; WX 732 ; N uni144D ; G 1572 +U 5198 ; WX 732 ; N uni144E ; G 1573 +U 5199 ; WX 732 ; N uni144F ; G 1574 +U 5200 ; WX 730 ; N uni1450 ; G 1575 +U 5201 ; WX 730 ; N uni1451 ; G 1576 +U 5202 ; WX 730 ; N uni1452 ; G 1577 +U 5204 ; WX 730 ; N uni1454 ; G 1578 +U 5205 ; WX 730 ; N uni1455 ; G 1579 +U 5206 ; WX 730 ; N uni1456 ; G 1580 +U 5207 ; WX 921 ; N uni1457 ; G 1581 +U 5208 ; WX 889 ; N uni1458 ; G 1582 +U 5209 ; WX 921 ; N uni1459 ; G 1583 +U 5210 ; WX 889 ; N uni145A ; G 1584 +U 5211 ; WX 921 ; N uni145B ; G 1585 +U 5212 ; WX 889 ; N uni145C ; G 1586 +U 5213 ; WX 928 ; N uni145D ; G 1587 +U 5214 ; WX 900 ; N uni145E ; G 1588 +U 5215 ; WX 928 ; N uni145F ; G 1589 +U 5216 ; WX 900 ; N uni1460 ; G 1590 +U 5217 ; WX 947 ; N uni1461 ; G 1591 +U 5218 ; WX 900 ; N uni1462 ; G 1592 +U 5219 ; WX 947 ; N uni1463 ; G 1593 +U 5220 ; WX 900 ; N uni1464 ; G 1594 +U 5221 ; WX 947 ; N uni1465 ; G 1595 +U 5222 ; WX 434 ; N uni1466 ; G 1596 +U 5223 ; WX 877 ; N uni1467 ; G 1597 +U 5224 ; WX 877 ; N uni1468 ; G 1598 +U 5225 ; WX 866 ; N uni1469 ; G 1599 +U 5226 ; WX 890 ; N uni146A ; G 1600 +U 5227 ; WX 628 ; N uni146B ; G 1601 +U 5228 ; WX 628 ; N uni146C ; G 1602 +U 5229 ; WX 628 ; N uni146D ; G 1603 +U 5230 ; WX 628 ; N uni146E ; G 1604 +U 5231 ; WX 628 ; N uni146F ; G 1605 +U 5232 ; WX 628 ; N uni1470 ; G 1606 +U 5233 ; WX 628 ; N uni1471 ; G 1607 +U 5234 ; WX 628 ; N uni1472 ; G 1608 +U 5235 ; WX 628 ; N uni1473 ; G 1609 +U 5236 ; WX 860 ; N uni1474 ; G 1610 +U 5237 ; WX 771 ; N uni1475 ; G 1611 +U 5238 ; WX 815 ; N uni1476 ; G 1612 +U 5239 ; WX 816 ; N uni1477 ; G 1613 +U 5240 ; WX 815 ; N uni1478 ; G 1614 +U 5241 ; WX 816 ; N uni1479 ; G 1615 +U 5242 ; WX 860 ; N uni147A ; G 1616 +U 5243 ; WX 771 ; N uni147B ; G 1617 +U 5244 ; WX 860 ; N uni147C ; G 1618 +U 5245 ; WX 771 ; N uni147D ; G 1619 +U 5246 ; WX 815 ; N uni147E ; G 1620 +U 5247 ; WX 816 ; N uni147F ; G 1621 +U 5248 ; WX 815 ; N uni1480 ; G 1622 +U 5249 ; WX 816 ; N uni1481 ; G 1623 +U 5250 ; WX 815 ; N uni1482 ; G 1624 +U 5251 ; WX 407 ; N uni1483 ; G 1625 +U 5252 ; WX 407 ; N uni1484 ; G 1626 +U 5253 ; WX 750 ; N uni1485 ; G 1627 +U 5254 ; WX 775 ; N uni1486 ; G 1628 +U 5255 ; WX 750 ; N uni1487 ; G 1629 +U 5256 ; WX 775 ; N uni1488 ; G 1630 +U 5257 ; WX 628 ; N uni1489 ; G 1631 +U 5258 ; WX 628 ; N uni148A ; G 1632 +U 5259 ; WX 628 ; N uni148B ; G 1633 +U 5260 ; WX 628 ; N uni148C ; G 1634 +U 5261 ; WX 628 ; N uni148D ; G 1635 +U 5262 ; WX 628 ; N uni148E ; G 1636 +U 5263 ; WX 628 ; N uni148F ; G 1637 +U 5264 ; WX 628 ; N uni1490 ; G 1638 +U 5265 ; WX 628 ; N uni1491 ; G 1639 +U 5266 ; WX 860 ; N uni1492 ; G 1640 +U 5267 ; WX 771 ; N uni1493 ; G 1641 +U 5268 ; WX 815 ; N uni1494 ; G 1642 +U 5269 ; WX 816 ; N uni1495 ; G 1643 +U 5270 ; WX 815 ; N uni1496 ; G 1644 +U 5271 ; WX 816 ; N uni1497 ; G 1645 +U 5272 ; WX 860 ; N uni1498 ; G 1646 +U 5273 ; WX 771 ; N uni1499 ; G 1647 +U 5274 ; WX 860 ; N uni149A ; G 1648 +U 5275 ; WX 771 ; N uni149B ; G 1649 +U 5276 ; WX 815 ; N uni149C ; G 1650 +U 5277 ; WX 816 ; N uni149D ; G 1651 +U 5278 ; WX 815 ; N uni149E ; G 1652 +U 5279 ; WX 816 ; N uni149F ; G 1653 +U 5280 ; WX 815 ; N uni14A0 ; G 1654 +U 5281 ; WX 435 ; N uni14A1 ; G 1655 +U 5282 ; WX 435 ; N uni14A2 ; G 1656 +U 5283 ; WX 610 ; N uni14A3 ; G 1657 +U 5284 ; WX 557 ; N uni14A4 ; G 1658 +U 5285 ; WX 557 ; N uni14A5 ; G 1659 +U 5286 ; WX 557 ; N uni14A6 ; G 1660 +U 5287 ; WX 610 ; N uni14A7 ; G 1661 +U 5288 ; WX 610 ; N uni14A8 ; G 1662 +U 5289 ; WX 610 ; N uni14A9 ; G 1663 +U 5290 ; WX 557 ; N uni14AA ; G 1664 +U 5291 ; WX 557 ; N uni14AB ; G 1665 +U 5292 ; WX 749 ; N uni14AC ; G 1666 +U 5293 ; WX 769 ; N uni14AD ; G 1667 +U 5294 ; WX 746 ; N uni14AE ; G 1668 +U 5295 ; WX 764 ; N uni14AF ; G 1669 +U 5296 ; WX 746 ; N uni14B0 ; G 1670 +U 5297 ; WX 764 ; N uni14B1 ; G 1671 +U 5298 ; WX 749 ; N uni14B2 ; G 1672 +U 5299 ; WX 769 ; N uni14B3 ; G 1673 +U 5300 ; WX 749 ; N uni14B4 ; G 1674 +U 5301 ; WX 769 ; N uni14B5 ; G 1675 +U 5302 ; WX 746 ; N uni14B6 ; G 1676 +U 5303 ; WX 764 ; N uni14B7 ; G 1677 +U 5304 ; WX 746 ; N uni14B8 ; G 1678 +U 5305 ; WX 764 ; N uni14B9 ; G 1679 +U 5306 ; WX 746 ; N uni14BA ; G 1680 +U 5307 ; WX 386 ; N uni14BB ; G 1681 +U 5308 ; WX 508 ; N uni14BC ; G 1682 +U 5309 ; WX 386 ; N uni14BD ; G 1683 +U 5312 ; WX 852 ; N uni14C0 ; G 1684 +U 5313 ; WX 852 ; N uni14C1 ; G 1685 +U 5314 ; WX 852 ; N uni14C2 ; G 1686 +U 5315 ; WX 852 ; N uni14C3 ; G 1687 +U 5316 ; WX 852 ; N uni14C4 ; G 1688 +U 5317 ; WX 852 ; N uni14C5 ; G 1689 +U 5318 ; WX 852 ; N uni14C6 ; G 1690 +U 5319 ; WX 852 ; N uni14C7 ; G 1691 +U 5320 ; WX 852 ; N uni14C8 ; G 1692 +U 5321 ; WX 1069 ; N uni14C9 ; G 1693 +U 5322 ; WX 1035 ; N uni14CA ; G 1694 +U 5323 ; WX 1059 ; N uni14CB ; G 1695 +U 5324 ; WX 852 ; N uni14CC ; G 1696 +U 5325 ; WX 1059 ; N uni14CD ; G 1697 +U 5326 ; WX 852 ; N uni14CE ; G 1698 +U 5327 ; WX 852 ; N uni14CF ; G 1699 +U 5328 ; WX 600 ; N uni14D0 ; G 1700 +U 5329 ; WX 453 ; N uni14D1 ; G 1701 +U 5330 ; WX 600 ; N uni14D2 ; G 1702 +U 5331 ; WX 852 ; N uni14D3 ; G 1703 +U 5332 ; WX 852 ; N uni14D4 ; G 1704 +U 5333 ; WX 852 ; N uni14D5 ; G 1705 +U 5334 ; WX 852 ; N uni14D6 ; G 1706 +U 5335 ; WX 852 ; N uni14D7 ; G 1707 +U 5336 ; WX 852 ; N uni14D8 ; G 1708 +U 5337 ; WX 852 ; N uni14D9 ; G 1709 +U 5338 ; WX 852 ; N uni14DA ; G 1710 +U 5339 ; WX 852 ; N uni14DB ; G 1711 +U 5340 ; WX 1069 ; N uni14DC ; G 1712 +U 5341 ; WX 1035 ; N uni14DD ; G 1713 +U 5342 ; WX 1059 ; N uni14DE ; G 1714 +U 5343 ; WX 1030 ; N uni14DF ; G 1715 +U 5344 ; WX 1059 ; N uni14E0 ; G 1716 +U 5345 ; WX 1030 ; N uni14E1 ; G 1717 +U 5346 ; WX 1069 ; N uni14E2 ; G 1718 +U 5347 ; WX 1035 ; N uni14E3 ; G 1719 +U 5348 ; WX 1069 ; N uni14E4 ; G 1720 +U 5349 ; WX 1035 ; N uni14E5 ; G 1721 +U 5350 ; WX 1083 ; N uni14E6 ; G 1722 +U 5351 ; WX 1030 ; N uni14E7 ; G 1723 +U 5352 ; WX 1083 ; N uni14E8 ; G 1724 +U 5353 ; WX 1030 ; N uni14E9 ; G 1725 +U 5354 ; WX 600 ; N uni14EA ; G 1726 +U 5356 ; WX 729 ; N uni14EC ; G 1727 +U 5357 ; WX 603 ; N uni14ED ; G 1728 +U 5358 ; WX 603 ; N uni14EE ; G 1729 +U 5359 ; WX 603 ; N uni14EF ; G 1730 +U 5360 ; WX 603 ; N uni14F0 ; G 1731 +U 5361 ; WX 603 ; N uni14F1 ; G 1732 +U 5362 ; WX 603 ; N uni14F2 ; G 1733 +U 5363 ; WX 603 ; N uni14F3 ; G 1734 +U 5364 ; WX 603 ; N uni14F4 ; G 1735 +U 5365 ; WX 603 ; N uni14F5 ; G 1736 +U 5366 ; WX 834 ; N uni14F6 ; G 1737 +U 5367 ; WX 754 ; N uni14F7 ; G 1738 +U 5368 ; WX 792 ; N uni14F8 ; G 1739 +U 5369 ; WX 771 ; N uni14F9 ; G 1740 +U 5370 ; WX 792 ; N uni14FA ; G 1741 +U 5371 ; WX 771 ; N uni14FB ; G 1742 +U 5372 ; WX 834 ; N uni14FC ; G 1743 +U 5373 ; WX 754 ; N uni14FD ; G 1744 +U 5374 ; WX 834 ; N uni14FE ; G 1745 +U 5375 ; WX 754 ; N uni14FF ; G 1746 +U 5376 ; WX 792 ; N uni1500 ; G 1747 +U 5377 ; WX 771 ; N uni1501 ; G 1748 +U 5378 ; WX 792 ; N uni1502 ; G 1749 +U 5379 ; WX 771 ; N uni1503 ; G 1750 +U 5380 ; WX 792 ; N uni1504 ; G 1751 +U 5381 ; WX 418 ; N uni1505 ; G 1752 +U 5382 ; WX 420 ; N uni1506 ; G 1753 +U 5383 ; WX 418 ; N uni1507 ; G 1754 +U 5392 ; WX 712 ; N uni1510 ; G 1755 +U 5393 ; WX 712 ; N uni1511 ; G 1756 +U 5394 ; WX 712 ; N uni1512 ; G 1757 +U 5395 ; WX 892 ; N uni1513 ; G 1758 +U 5396 ; WX 892 ; N uni1514 ; G 1759 +U 5397 ; WX 892 ; N uni1515 ; G 1760 +U 5398 ; WX 892 ; N uni1516 ; G 1761 +U 5399 ; WX 910 ; N uni1517 ; G 1762 +U 5400 ; WX 872 ; N uni1518 ; G 1763 +U 5401 ; WX 910 ; N uni1519 ; G 1764 +U 5402 ; WX 872 ; N uni151A ; G 1765 +U 5403 ; WX 910 ; N uni151B ; G 1766 +U 5404 ; WX 872 ; N uni151C ; G 1767 +U 5405 ; WX 1140 ; N uni151D ; G 1768 +U 5406 ; WX 1100 ; N uni151E ; G 1769 +U 5407 ; WX 1140 ; N uni151F ; G 1770 +U 5408 ; WX 1100 ; N uni1520 ; G 1771 +U 5409 ; WX 1140 ; N uni1521 ; G 1772 +U 5410 ; WX 1100 ; N uni1522 ; G 1773 +U 5411 ; WX 1140 ; N uni1523 ; G 1774 +U 5412 ; WX 1100 ; N uni1524 ; G 1775 +U 5413 ; WX 641 ; N uni1525 ; G 1776 +U 5414 ; WX 627 ; N uni1526 ; G 1777 +U 5415 ; WX 627 ; N uni1527 ; G 1778 +U 5416 ; WX 627 ; N uni1528 ; G 1779 +U 5417 ; WX 627 ; N uni1529 ; G 1780 +U 5418 ; WX 627 ; N uni152A ; G 1781 +U 5419 ; WX 627 ; N uni152B ; G 1782 +U 5420 ; WX 627 ; N uni152C ; G 1783 +U 5421 ; WX 627 ; N uni152D ; G 1784 +U 5422 ; WX 627 ; N uni152E ; G 1785 +U 5423 ; WX 844 ; N uni152F ; G 1786 +U 5424 ; WX 781 ; N uni1530 ; G 1787 +U 5425 ; WX 816 ; N uni1531 ; G 1788 +U 5426 ; WX 818 ; N uni1532 ; G 1789 +U 5427 ; WX 816 ; N uni1533 ; G 1790 +U 5428 ; WX 818 ; N uni1534 ; G 1791 +U 5429 ; WX 844 ; N uni1535 ; G 1792 +U 5430 ; WX 781 ; N uni1536 ; G 1793 +U 5431 ; WX 844 ; N uni1537 ; G 1794 +U 5432 ; WX 781 ; N uni1538 ; G 1795 +U 5433 ; WX 816 ; N uni1539 ; G 1796 +U 5434 ; WX 818 ; N uni153A ; G 1797 +U 5435 ; WX 816 ; N uni153B ; G 1798 +U 5436 ; WX 818 ; N uni153C ; G 1799 +U 5437 ; WX 816 ; N uni153D ; G 1800 +U 5438 ; WX 418 ; N uni153E ; G 1801 +U 5440 ; WX 389 ; N uni1540 ; G 1802 +U 5441 ; WX 484 ; N uni1541 ; G 1803 +U 5442 ; WX 916 ; N uni1542 ; G 1804 +U 5443 ; WX 916 ; N uni1543 ; G 1805 +U 5444 ; WX 863 ; N uni1544 ; G 1806 +U 5445 ; WX 916 ; N uni1545 ; G 1807 +U 5446 ; WX 863 ; N uni1546 ; G 1808 +U 5447 ; WX 863 ; N uni1547 ; G 1809 +U 5448 ; WX 603 ; N uni1548 ; G 1810 +U 5449 ; WX 603 ; N uni1549 ; G 1811 +U 5450 ; WX 603 ; N uni154A ; G 1812 +U 5451 ; WX 603 ; N uni154B ; G 1813 +U 5452 ; WX 603 ; N uni154C ; G 1814 +U 5453 ; WX 603 ; N uni154D ; G 1815 +U 5454 ; WX 834 ; N uni154E ; G 1816 +U 5455 ; WX 754 ; N uni154F ; G 1817 +U 5456 ; WX 418 ; N uni1550 ; G 1818 +U 5458 ; WX 729 ; N uni1552 ; G 1819 +U 5459 ; WX 684 ; N uni1553 ; G 1820 +U 5460 ; WX 684 ; N uni1554 ; G 1821 +U 5461 ; WX 684 ; N uni1555 ; G 1822 +U 5462 ; WX 684 ; N uni1556 ; G 1823 +U 5463 ; WX 726 ; N uni1557 ; G 1824 +U 5464 ; WX 726 ; N uni1558 ; G 1825 +U 5465 ; WX 726 ; N uni1559 ; G 1826 +U 5466 ; WX 726 ; N uni155A ; G 1827 +U 5467 ; WX 924 ; N uni155B ; G 1828 +U 5468 ; WX 1007 ; N uni155C ; G 1829 +U 5469 ; WX 508 ; N uni155D ; G 1830 +U 5470 ; WX 732 ; N uni155E ; G 1831 +U 5471 ; WX 732 ; N uni155F ; G 1832 +U 5472 ; WX 732 ; N uni1560 ; G 1833 +U 5473 ; WX 732 ; N uni1561 ; G 1834 +U 5474 ; WX 732 ; N uni1562 ; G 1835 +U 5475 ; WX 732 ; N uni1563 ; G 1836 +U 5476 ; WX 730 ; N uni1564 ; G 1837 +U 5477 ; WX 730 ; N uni1565 ; G 1838 +U 5478 ; WX 730 ; N uni1566 ; G 1839 +U 5479 ; WX 730 ; N uni1567 ; G 1840 +U 5480 ; WX 947 ; N uni1568 ; G 1841 +U 5481 ; WX 900 ; N uni1569 ; G 1842 +U 5482 ; WX 508 ; N uni156A ; G 1843 +U 5492 ; WX 831 ; N uni1574 ; G 1844 +U 5493 ; WX 831 ; N uni1575 ; G 1845 +U 5494 ; WX 831 ; N uni1576 ; G 1846 +U 5495 ; WX 831 ; N uni1577 ; G 1847 +U 5496 ; WX 831 ; N uni1578 ; G 1848 +U 5497 ; WX 831 ; N uni1579 ; G 1849 +U 5498 ; WX 831 ; N uni157A ; G 1850 +U 5499 ; WX 563 ; N uni157B ; G 1851 +U 5500 ; WX 752 ; N uni157C ; G 1852 +U 5501 ; WX 484 ; N uni157D ; G 1853 +U 5502 ; WX 1047 ; N uni157E ; G 1854 +U 5503 ; WX 1047 ; N uni157F ; G 1855 +U 5504 ; WX 1047 ; N uni1580 ; G 1856 +U 5505 ; WX 1047 ; N uni1581 ; G 1857 +U 5506 ; WX 1047 ; N uni1582 ; G 1858 +U 5507 ; WX 1047 ; N uni1583 ; G 1859 +U 5508 ; WX 1047 ; N uni1584 ; G 1860 +U 5509 ; WX 825 ; N uni1585 ; G 1861 +U 5514 ; WX 831 ; N uni158A ; G 1862 +U 5515 ; WX 831 ; N uni158B ; G 1863 +U 5516 ; WX 831 ; N uni158C ; G 1864 +U 5517 ; WX 831 ; N uni158D ; G 1865 +U 5518 ; WX 1259 ; N uni158E ; G 1866 +U 5519 ; WX 1259 ; N uni158F ; G 1867 +U 5520 ; WX 1259 ; N uni1590 ; G 1868 +U 5521 ; WX 1002 ; N uni1591 ; G 1869 +U 5522 ; WX 1002 ; N uni1592 ; G 1870 +U 5523 ; WX 1259 ; N uni1593 ; G 1871 +U 5524 ; WX 1259 ; N uni1594 ; G 1872 +U 5525 ; WX 700 ; N uni1595 ; G 1873 +U 5526 ; WX 1073 ; N uni1596 ; G 1874 +U 5536 ; WX 852 ; N uni15A0 ; G 1875 +U 5537 ; WX 852 ; N uni15A1 ; G 1876 +U 5538 ; WX 799 ; N uni15A2 ; G 1877 +U 5539 ; WX 799 ; N uni15A3 ; G 1878 +U 5540 ; WX 799 ; N uni15A4 ; G 1879 +U 5541 ; WX 799 ; N uni15A5 ; G 1880 +U 5542 ; WX 600 ; N uni15A6 ; G 1881 +U 5543 ; WX 643 ; N uni15A7 ; G 1882 +U 5544 ; WX 643 ; N uni15A8 ; G 1883 +U 5545 ; WX 643 ; N uni15A9 ; G 1884 +U 5546 ; WX 643 ; N uni15AA ; G 1885 +U 5547 ; WX 643 ; N uni15AB ; G 1886 +U 5548 ; WX 643 ; N uni15AC ; G 1887 +U 5549 ; WX 643 ; N uni15AD ; G 1888 +U 5550 ; WX 418 ; N uni15AE ; G 1889 +U 5551 ; WX 628 ; N uni15AF ; G 1890 +U 5598 ; WX 770 ; N uni15DE ; G 1891 +U 5601 ; WX 770 ; N uni15E1 ; G 1892 +U 5702 ; WX 468 ; N uni1646 ; G 1893 +U 5703 ; WX 468 ; N uni1647 ; G 1894 +U 5742 ; WX 444 ; N uni166E ; G 1895 +U 5743 ; WX 1047 ; N uni166F ; G 1896 +U 5744 ; WX 1310 ; N uni1670 ; G 1897 +U 5745 ; WX 1632 ; N uni1671 ; G 1898 +U 5746 ; WX 1632 ; N uni1672 ; G 1899 +U 5747 ; WX 1375 ; N uni1673 ; G 1900 +U 5748 ; WX 1375 ; N uni1674 ; G 1901 +U 5749 ; WX 1632 ; N uni1675 ; G 1902 +U 5750 ; WX 1632 ; N uni1676 ; G 1903 +U 7424 ; WX 592 ; N uni1D00 ; G 1904 +U 7425 ; WX 717 ; N uni1D01 ; G 1905 +U 7426 ; WX 982 ; N uni1D02 ; G 1906 +U 7427 ; WX 586 ; N uni1D03 ; G 1907 +U 7428 ; WX 550 ; N uni1D04 ; G 1908 +U 7429 ; WX 605 ; N uni1D05 ; G 1909 +U 7430 ; WX 605 ; N uni1D06 ; G 1910 +U 7431 ; WX 491 ; N uni1D07 ; G 1911 +U 7432 ; WX 541 ; N uni1D08 ; G 1912 +U 7433 ; WX 278 ; N uni1D09 ; G 1913 +U 7434 ; WX 395 ; N uni1D0A ; G 1914 +U 7435 ; WX 579 ; N uni1D0B ; G 1915 +U 7436 ; WX 583 ; N uni1D0C ; G 1916 +U 7437 ; WX 754 ; N uni1D0D ; G 1917 +U 7438 ; WX 650 ; N uni1D0E ; G 1918 +U 7439 ; WX 612 ; N uni1D0F ; G 1919 +U 7440 ; WX 550 ; N uni1D10 ; G 1920 +U 7441 ; WX 684 ; N uni1D11 ; G 1921 +U 7442 ; WX 684 ; N uni1D12 ; G 1922 +U 7443 ; WX 684 ; N uni1D13 ; G 1923 +U 7444 ; WX 1023 ; N uni1D14 ; G 1924 +U 7446 ; WX 612 ; N uni1D16 ; G 1925 +U 7447 ; WX 612 ; N uni1D17 ; G 1926 +U 7448 ; WX 524 ; N uni1D18 ; G 1927 +U 7449 ; WX 602 ; N uni1D19 ; G 1928 +U 7450 ; WX 602 ; N uni1D1A ; G 1929 +U 7451 ; WX 583 ; N uni1D1B ; G 1930 +U 7452 ; WX 574 ; N uni1D1C ; G 1931 +U 7453 ; WX 737 ; N uni1D1D ; G 1932 +U 7454 ; WX 948 ; N uni1D1E ; G 1933 +U 7455 ; WX 638 ; N uni1D1F ; G 1934 +U 7456 ; WX 592 ; N uni1D20 ; G 1935 +U 7457 ; WX 818 ; N uni1D21 ; G 1936 +U 7458 ; WX 525 ; N uni1D22 ; G 1937 +U 7459 ; WX 526 ; N uni1D23 ; G 1938 +U 7462 ; WX 583 ; N uni1D26 ; G 1939 +U 7463 ; WX 592 ; N uni1D27 ; G 1940 +U 7464 ; WX 564 ; N uni1D28 ; G 1941 +U 7465 ; WX 524 ; N uni1D29 ; G 1942 +U 7466 ; WX 590 ; N uni1D2A ; G 1943 +U 7467 ; WX 639 ; N uni1D2B ; G 1944 +U 7468 ; WX 431 ; N uni1D2C ; G 1945 +U 7469 ; WX 613 ; N uni1D2D ; G 1946 +U 7470 ; WX 432 ; N uni1D2E ; G 1947 +U 7472 ; WX 485 ; N uni1D30 ; G 1948 +U 7473 ; WX 398 ; N uni1D31 ; G 1949 +U 7474 ; WX 398 ; N uni1D32 ; G 1950 +U 7475 ; WX 488 ; N uni1D33 ; G 1951 +U 7476 ; WX 474 ; N uni1D34 ; G 1952 +U 7477 ; WX 186 ; N uni1D35 ; G 1953 +U 7478 ; WX 186 ; N uni1D36 ; G 1954 +U 7479 ; WX 413 ; N uni1D37 ; G 1955 +U 7480 ; WX 351 ; N uni1D38 ; G 1956 +U 7481 ; WX 543 ; N uni1D39 ; G 1957 +U 7482 ; WX 471 ; N uni1D3A ; G 1958 +U 7483 ; WX 471 ; N uni1D3B ; G 1959 +U 7484 ; WX 496 ; N uni1D3C ; G 1960 +U 7485 ; WX 439 ; N uni1D3D ; G 1961 +U 7486 ; WX 380 ; N uni1D3E ; G 1962 +U 7487 ; WX 438 ; N uni1D3F ; G 1963 +U 7488 ; WX 385 ; N uni1D40 ; G 1964 +U 7489 ; WX 461 ; N uni1D41 ; G 1965 +U 7490 ; WX 623 ; N uni1D42 ; G 1966 +U 7491 ; WX 392 ; N uni1D43 ; G 1967 +U 7492 ; WX 392 ; N uni1D44 ; G 1968 +U 7493 ; WX 405 ; N uni1D45 ; G 1969 +U 7494 ; WX 648 ; N uni1D46 ; G 1970 +U 7495 ; WX 428 ; N uni1D47 ; G 1971 +U 7496 ; WX 405 ; N uni1D48 ; G 1972 +U 7497 ; WX 417 ; N uni1D49 ; G 1973 +U 7498 ; WX 417 ; N uni1D4A ; G 1974 +U 7499 ; WX 360 ; N uni1D4B ; G 1975 +U 7500 ; WX 359 ; N uni1D4C ; G 1976 +U 7501 ; WX 405 ; N uni1D4D ; G 1977 +U 7502 ; WX 179 ; N uni1D4E ; G 1978 +U 7503 ; WX 426 ; N uni1D4F ; G 1979 +U 7504 ; WX 623 ; N uni1D50 ; G 1980 +U 7505 ; WX 409 ; N uni1D51 ; G 1981 +U 7506 ; WX 414 ; N uni1D52 ; G 1982 +U 7507 ; WX 370 ; N uni1D53 ; G 1983 +U 7508 ; WX 414 ; N uni1D54 ; G 1984 +U 7509 ; WX 414 ; N uni1D55 ; G 1985 +U 7510 ; WX 428 ; N uni1D56 ; G 1986 +U 7511 ; WX 295 ; N uni1D57 ; G 1987 +U 7512 ; WX 405 ; N uni1D58 ; G 1988 +U 7513 ; WX 470 ; N uni1D59 ; G 1989 +U 7514 ; WX 623 ; N uni1D5A ; G 1990 +U 7515 ; WX 417 ; N uni1D5B ; G 1991 +U 7517 ; WX 402 ; N uni1D5D ; G 1992 +U 7518 ; WX 373 ; N uni1D5E ; G 1993 +U 7519 ; WX 385 ; N uni1D5F ; G 1994 +U 7520 ; WX 416 ; N uni1D60 ; G 1995 +U 7521 ; WX 364 ; N uni1D61 ; G 1996 +U 7522 ; WX 179 ; N uni1D62 ; G 1997 +U 7523 ; WX 259 ; N uni1D63 ; G 1998 +U 7524 ; WX 405 ; N uni1D64 ; G 1999 +U 7525 ; WX 417 ; N uni1D65 ; G 2000 +U 7526 ; WX 402 ; N uni1D66 ; G 2001 +U 7527 ; WX 373 ; N uni1D67 ; G 2002 +U 7528 ; WX 412 ; N uni1D68 ; G 2003 +U 7529 ; WX 416 ; N uni1D69 ; G 2004 +U 7530 ; WX 364 ; N uni1D6A ; G 2005 +U 7543 ; WX 635 ; N uni1D77 ; G 2006 +U 7544 ; WX 474 ; N uni1D78 ; G 2007 +U 7547 ; WX 372 ; N uni1D7B ; G 2008 +U 7549 ; WX 667 ; N uni1D7D ; G 2009 +U 7557 ; WX 278 ; N uni1D85 ; G 2010 +U 7579 ; WX 405 ; N uni1D9B ; G 2011 +U 7580 ; WX 370 ; N uni1D9C ; G 2012 +U 7581 ; WX 370 ; N uni1D9D ; G 2013 +U 7582 ; WX 414 ; N uni1D9E ; G 2014 +U 7583 ; WX 360 ; N uni1D9F ; G 2015 +U 7584 ; WX 296 ; N uni1DA0 ; G 2016 +U 7585 ; WX 233 ; N uni1DA1 ; G 2017 +U 7586 ; WX 405 ; N uni1DA2 ; G 2018 +U 7587 ; WX 405 ; N uni1DA3 ; G 2019 +U 7588 ; WX 261 ; N uni1DA4 ; G 2020 +U 7589 ; WX 250 ; N uni1DA5 ; G 2021 +U 7590 ; WX 261 ; N uni1DA6 ; G 2022 +U 7591 ; WX 261 ; N uni1DA7 ; G 2023 +U 7592 ; WX 234 ; N uni1DA8 ; G 2024 +U 7593 ; WX 250 ; N uni1DA9 ; G 2025 +U 7594 ; WX 235 ; N uni1DAA ; G 2026 +U 7595 ; WX 376 ; N uni1DAB ; G 2027 +U 7596 ; WX 623 ; N uni1DAC ; G 2028 +U 7597 ; WX 623 ; N uni1DAD ; G 2029 +U 7598 ; WX 411 ; N uni1DAE ; G 2030 +U 7599 ; WX 479 ; N uni1DAF ; G 2031 +U 7600 ; WX 409 ; N uni1DB0 ; G 2032 +U 7601 ; WX 414 ; N uni1DB1 ; G 2033 +U 7602 ; WX 414 ; N uni1DB2 ; G 2034 +U 7603 ; WX 360 ; N uni1DB3 ; G 2035 +U 7604 ; WX 287 ; N uni1DB4 ; G 2036 +U 7605 ; WX 295 ; N uni1DB5 ; G 2037 +U 7606 ; WX 508 ; N uni1DB6 ; G 2038 +U 7607 ; WX 418 ; N uni1DB7 ; G 2039 +U 7608 ; WX 361 ; N uni1DB8 ; G 2040 +U 7609 ; WX 406 ; N uni1DB9 ; G 2041 +U 7610 ; WX 417 ; N uni1DBA ; G 2042 +U 7611 ; WX 366 ; N uni1DBB ; G 2043 +U 7612 ; WX 437 ; N uni1DBC ; G 2044 +U 7613 ; WX 366 ; N uni1DBD ; G 2045 +U 7614 ; WX 392 ; N uni1DBE ; G 2046 +U 7615 ; WX 414 ; N uni1DBF ; G 2047 +U 7620 ; WX 0 ; N uni1DC4 ; G 2048 +U 7621 ; WX 0 ; N uni1DC5 ; G 2049 +U 7622 ; WX 0 ; N uni1DC6 ; G 2050 +U 7623 ; WX 0 ; N uni1DC7 ; G 2051 +U 7624 ; WX 0 ; N uni1DC8 ; G 2052 +U 7625 ; WX 0 ; N uni1DC9 ; G 2053 +U 7680 ; WX 684 ; N uni1E00 ; G 2054 +U 7681 ; WX 613 ; N uni1E01 ; G 2055 +U 7682 ; WX 686 ; N uni1E02 ; G 2056 +U 7683 ; WX 635 ; N uni1E03 ; G 2057 +U 7684 ; WX 686 ; N uni1E04 ; G 2058 +U 7685 ; WX 635 ; N uni1E05 ; G 2059 +U 7686 ; WX 686 ; N uni1E06 ; G 2060 +U 7687 ; WX 635 ; N uni1E07 ; G 2061 +U 7688 ; WX 698 ; N uni1E08 ; G 2062 +U 7689 ; WX 550 ; N uni1E09 ; G 2063 +U 7690 ; WX 770 ; N uni1E0A ; G 2064 +U 7691 ; WX 635 ; N uni1E0B ; G 2065 +U 7692 ; WX 770 ; N uni1E0C ; G 2066 +U 7693 ; WX 635 ; N uni1E0D ; G 2067 +U 7694 ; WX 770 ; N uni1E0E ; G 2068 +U 7695 ; WX 635 ; N uni1E0F ; G 2069 +U 7696 ; WX 770 ; N uni1E10 ; G 2070 +U 7697 ; WX 635 ; N uni1E11 ; G 2071 +U 7698 ; WX 770 ; N uni1E12 ; G 2072 +U 7699 ; WX 635 ; N uni1E13 ; G 2073 +U 7700 ; WX 632 ; N uni1E14 ; G 2074 +U 7701 ; WX 615 ; N uni1E15 ; G 2075 +U 7702 ; WX 632 ; N uni1E16 ; G 2076 +U 7703 ; WX 615 ; N uni1E17 ; G 2077 +U 7704 ; WX 632 ; N uni1E18 ; G 2078 +U 7705 ; WX 615 ; N uni1E19 ; G 2079 +U 7706 ; WX 632 ; N uni1E1A ; G 2080 +U 7707 ; WX 615 ; N uni1E1B ; G 2081 +U 7708 ; WX 632 ; N uni1E1C ; G 2082 +U 7709 ; WX 615 ; N uni1E1D ; G 2083 +U 7710 ; WX 575 ; N uni1E1E ; G 2084 +U 7711 ; WX 352 ; N uni1E1F ; G 2085 +U 7712 ; WX 775 ; N uni1E20 ; G 2086 +U 7713 ; WX 635 ; N uni1E21 ; G 2087 +U 7714 ; WX 752 ; N uni1E22 ; G 2088 +U 7715 ; WX 634 ; N uni1E23 ; G 2089 +U 7716 ; WX 752 ; N uni1E24 ; G 2090 +U 7717 ; WX 634 ; N uni1E25 ; G 2091 +U 7718 ; WX 752 ; N uni1E26 ; G 2092 +U 7719 ; WX 634 ; N uni1E27 ; G 2093 +U 7720 ; WX 752 ; N uni1E28 ; G 2094 +U 7721 ; WX 634 ; N uni1E29 ; G 2095 +U 7722 ; WX 752 ; N uni1E2A ; G 2096 +U 7723 ; WX 634 ; N uni1E2B ; G 2097 +U 7724 ; WX 295 ; N uni1E2C ; G 2098 +U 7725 ; WX 278 ; N uni1E2D ; G 2099 +U 7726 ; WX 295 ; N uni1E2E ; G 2100 +U 7727 ; WX 278 ; N uni1E2F ; G 2101 +U 7728 ; WX 656 ; N uni1E30 ; G 2102 +U 7729 ; WX 579 ; N uni1E31 ; G 2103 +U 7730 ; WX 656 ; N uni1E32 ; G 2104 +U 7731 ; WX 579 ; N uni1E33 ; G 2105 +U 7732 ; WX 656 ; N uni1E34 ; G 2106 +U 7733 ; WX 579 ; N uni1E35 ; G 2107 +U 7734 ; WX 557 ; N uni1E36 ; G 2108 +U 7735 ; WX 278 ; N uni1E37 ; G 2109 +U 7736 ; WX 557 ; N uni1E38 ; G 2110 +U 7737 ; WX 278 ; N uni1E39 ; G 2111 +U 7738 ; WX 557 ; N uni1E3A ; G 2112 +U 7739 ; WX 278 ; N uni1E3B ; G 2113 +U 7740 ; WX 557 ; N uni1E3C ; G 2114 +U 7741 ; WX 278 ; N uni1E3D ; G 2115 +U 7742 ; WX 863 ; N uni1E3E ; G 2116 +U 7743 ; WX 974 ; N uni1E3F ; G 2117 +U 7744 ; WX 863 ; N uni1E40 ; G 2118 +U 7745 ; WX 974 ; N uni1E41 ; G 2119 +U 7746 ; WX 863 ; N uni1E42 ; G 2120 +U 7747 ; WX 974 ; N uni1E43 ; G 2121 +U 7748 ; WX 748 ; N uni1E44 ; G 2122 +U 7749 ; WX 634 ; N uni1E45 ; G 2123 +U 7750 ; WX 748 ; N uni1E46 ; G 2124 +U 7751 ; WX 634 ; N uni1E47 ; G 2125 +U 7752 ; WX 748 ; N uni1E48 ; G 2126 +U 7753 ; WX 634 ; N uni1E49 ; G 2127 +U 7754 ; WX 748 ; N uni1E4A ; G 2128 +U 7755 ; WX 634 ; N uni1E4B ; G 2129 +U 7756 ; WX 787 ; N uni1E4C ; G 2130 +U 7757 ; WX 612 ; N uni1E4D ; G 2131 +U 7758 ; WX 787 ; N uni1E4E ; G 2132 +U 7759 ; WX 612 ; N uni1E4F ; G 2133 +U 7760 ; WX 787 ; N uni1E50 ; G 2134 +U 7761 ; WX 612 ; N uni1E51 ; G 2135 +U 7762 ; WX 787 ; N uni1E52 ; G 2136 +U 7763 ; WX 612 ; N uni1E53 ; G 2137 +U 7764 ; WX 603 ; N uni1E54 ; G 2138 +U 7765 ; WX 635 ; N uni1E55 ; G 2139 +U 7766 ; WX 603 ; N uni1E56 ; G 2140 +U 7767 ; WX 635 ; N uni1E57 ; G 2141 +U 7768 ; WX 695 ; N uni1E58 ; G 2142 +U 7769 ; WX 411 ; N uni1E59 ; G 2143 +U 7770 ; WX 695 ; N uni1E5A ; G 2144 +U 7771 ; WX 411 ; N uni1E5B ; G 2145 +U 7772 ; WX 695 ; N uni1E5C ; G 2146 +U 7773 ; WX 411 ; N uni1E5D ; G 2147 +U 7774 ; WX 695 ; N uni1E5E ; G 2148 +U 7775 ; WX 411 ; N uni1E5F ; G 2149 +U 7776 ; WX 635 ; N uni1E60 ; G 2150 +U 7777 ; WX 521 ; N uni1E61 ; G 2151 +U 7778 ; WX 635 ; N uni1E62 ; G 2152 +U 7779 ; WX 521 ; N uni1E63 ; G 2153 +U 7780 ; WX 635 ; N uni1E64 ; G 2154 +U 7781 ; WX 521 ; N uni1E65 ; G 2155 +U 7782 ; WX 635 ; N uni1E66 ; G 2156 +U 7783 ; WX 521 ; N uni1E67 ; G 2157 +U 7784 ; WX 635 ; N uni1E68 ; G 2158 +U 7785 ; WX 521 ; N uni1E69 ; G 2159 +U 7786 ; WX 611 ; N uni1E6A ; G 2160 +U 7787 ; WX 392 ; N uni1E6B ; G 2161 +U 7788 ; WX 611 ; N uni1E6C ; G 2162 +U 7789 ; WX 392 ; N uni1E6D ; G 2163 +U 7790 ; WX 611 ; N uni1E6E ; G 2164 +U 7791 ; WX 392 ; N uni1E6F ; G 2165 +U 7792 ; WX 611 ; N uni1E70 ; G 2166 +U 7793 ; WX 392 ; N uni1E71 ; G 2167 +U 7794 ; WX 732 ; N uni1E72 ; G 2168 +U 7795 ; WX 634 ; N uni1E73 ; G 2169 +U 7796 ; WX 732 ; N uni1E74 ; G 2170 +U 7797 ; WX 634 ; N uni1E75 ; G 2171 +U 7798 ; WX 732 ; N uni1E76 ; G 2172 +U 7799 ; WX 634 ; N uni1E77 ; G 2173 +U 7800 ; WX 732 ; N uni1E78 ; G 2174 +U 7801 ; WX 634 ; N uni1E79 ; G 2175 +U 7802 ; WX 732 ; N uni1E7A ; G 2176 +U 7803 ; WX 634 ; N uni1E7B ; G 2177 +U 7804 ; WX 684 ; N uni1E7C ; G 2178 +U 7805 ; WX 592 ; N uni1E7D ; G 2179 +U 7806 ; WX 684 ; N uni1E7E ; G 2180 +U 7807 ; WX 592 ; N uni1E7F ; G 2181 +U 7808 ; WX 989 ; N Wgrave ; G 2182 +U 7809 ; WX 818 ; N wgrave ; G 2183 +U 7810 ; WX 989 ; N Wacute ; G 2184 +U 7811 ; WX 818 ; N wacute ; G 2185 +U 7812 ; WX 989 ; N Wdieresis ; G 2186 +U 7813 ; WX 818 ; N wdieresis ; G 2187 +U 7814 ; WX 989 ; N uni1E86 ; G 2188 +U 7815 ; WX 818 ; N uni1E87 ; G 2189 +U 7816 ; WX 989 ; N uni1E88 ; G 2190 +U 7817 ; WX 818 ; N uni1E89 ; G 2191 +U 7818 ; WX 685 ; N uni1E8A ; G 2192 +U 7819 ; WX 592 ; N uni1E8B ; G 2193 +U 7820 ; WX 685 ; N uni1E8C ; G 2194 +U 7821 ; WX 592 ; N uni1E8D ; G 2195 +U 7822 ; WX 611 ; N uni1E8E ; G 2196 +U 7823 ; WX 592 ; N uni1E8F ; G 2197 +U 7824 ; WX 685 ; N uni1E90 ; G 2198 +U 7825 ; WX 525 ; N uni1E91 ; G 2199 +U 7826 ; WX 685 ; N uni1E92 ; G 2200 +U 7827 ; WX 525 ; N uni1E93 ; G 2201 +U 7828 ; WX 685 ; N uni1E94 ; G 2202 +U 7829 ; WX 525 ; N uni1E95 ; G 2203 +U 7830 ; WX 634 ; N uni1E96 ; G 2204 +U 7831 ; WX 392 ; N uni1E97 ; G 2205 +U 7832 ; WX 818 ; N uni1E98 ; G 2206 +U 7833 ; WX 592 ; N uni1E99 ; G 2207 +U 7834 ; WX 613 ; N uni1E9A ; G 2208 +U 7835 ; WX 352 ; N uni1E9B ; G 2209 +U 7836 ; WX 352 ; N uni1E9C ; G 2210 +U 7837 ; WX 352 ; N uni1E9D ; G 2211 +U 7838 ; WX 769 ; N uni1E9E ; G 2212 +U 7839 ; WX 612 ; N uni1E9F ; G 2213 +U 7840 ; WX 684 ; N uni1EA0 ; G 2214 +U 7841 ; WX 613 ; N uni1EA1 ; G 2215 +U 7842 ; WX 684 ; N uni1EA2 ; G 2216 +U 7843 ; WX 613 ; N uni1EA3 ; G 2217 +U 7844 ; WX 684 ; N uni1EA4 ; G 2218 +U 7845 ; WX 613 ; N uni1EA5 ; G 2219 +U 7846 ; WX 684 ; N uni1EA6 ; G 2220 +U 7847 ; WX 613 ; N uni1EA7 ; G 2221 +U 7848 ; WX 684 ; N uni1EA8 ; G 2222 +U 7849 ; WX 613 ; N uni1EA9 ; G 2223 +U 7850 ; WX 684 ; N uni1EAA ; G 2224 +U 7851 ; WX 613 ; N uni1EAB ; G 2225 +U 7852 ; WX 684 ; N uni1EAC ; G 2226 +U 7853 ; WX 613 ; N uni1EAD ; G 2227 +U 7854 ; WX 684 ; N uni1EAE ; G 2228 +U 7855 ; WX 613 ; N uni1EAF ; G 2229 +U 7856 ; WX 684 ; N uni1EB0 ; G 2230 +U 7857 ; WX 613 ; N uni1EB1 ; G 2231 +U 7858 ; WX 684 ; N uni1EB2 ; G 2232 +U 7859 ; WX 613 ; N uni1EB3 ; G 2233 +U 7860 ; WX 684 ; N uni1EB4 ; G 2234 +U 7861 ; WX 613 ; N uni1EB5 ; G 2235 +U 7862 ; WX 684 ; N uni1EB6 ; G 2236 +U 7863 ; WX 613 ; N uni1EB7 ; G 2237 +U 7864 ; WX 632 ; N uni1EB8 ; G 2238 +U 7865 ; WX 615 ; N uni1EB9 ; G 2239 +U 7866 ; WX 632 ; N uni1EBA ; G 2240 +U 7867 ; WX 615 ; N uni1EBB ; G 2241 +U 7868 ; WX 632 ; N uni1EBC ; G 2242 +U 7869 ; WX 615 ; N uni1EBD ; G 2243 +U 7870 ; WX 632 ; N uni1EBE ; G 2244 +U 7871 ; WX 615 ; N uni1EBF ; G 2245 +U 7872 ; WX 632 ; N uni1EC0 ; G 2246 +U 7873 ; WX 615 ; N uni1EC1 ; G 2247 +U 7874 ; WX 632 ; N uni1EC2 ; G 2248 +U 7875 ; WX 615 ; N uni1EC3 ; G 2249 +U 7876 ; WX 632 ; N uni1EC4 ; G 2250 +U 7877 ; WX 615 ; N uni1EC5 ; G 2251 +U 7878 ; WX 632 ; N uni1EC6 ; G 2252 +U 7879 ; WX 615 ; N uni1EC7 ; G 2253 +U 7880 ; WX 295 ; N uni1EC8 ; G 2254 +U 7881 ; WX 278 ; N uni1EC9 ; G 2255 +U 7882 ; WX 295 ; N uni1ECA ; G 2256 +U 7883 ; WX 278 ; N uni1ECB ; G 2257 +U 7884 ; WX 787 ; N uni1ECC ; G 2258 +U 7885 ; WX 612 ; N uni1ECD ; G 2259 +U 7886 ; WX 787 ; N uni1ECE ; G 2260 +U 7887 ; WX 612 ; N uni1ECF ; G 2261 +U 7888 ; WX 787 ; N uni1ED0 ; G 2262 +U 7889 ; WX 612 ; N uni1ED1 ; G 2263 +U 7890 ; WX 787 ; N uni1ED2 ; G 2264 +U 7891 ; WX 612 ; N uni1ED3 ; G 2265 +U 7892 ; WX 787 ; N uni1ED4 ; G 2266 +U 7893 ; WX 612 ; N uni1ED5 ; G 2267 +U 7894 ; WX 787 ; N uni1ED6 ; G 2268 +U 7895 ; WX 612 ; N uni1ED7 ; G 2269 +U 7896 ; WX 787 ; N uni1ED8 ; G 2270 +U 7897 ; WX 612 ; N uni1ED9 ; G 2271 +U 7898 ; WX 913 ; N uni1EDA ; G 2272 +U 7899 ; WX 612 ; N uni1EDB ; G 2273 +U 7900 ; WX 913 ; N uni1EDC ; G 2274 +U 7901 ; WX 612 ; N uni1EDD ; G 2275 +U 7902 ; WX 913 ; N uni1EDE ; G 2276 +U 7903 ; WX 612 ; N uni1EDF ; G 2277 +U 7904 ; WX 913 ; N uni1EE0 ; G 2278 +U 7905 ; WX 612 ; N uni1EE1 ; G 2279 +U 7906 ; WX 913 ; N uni1EE2 ; G 2280 +U 7907 ; WX 612 ; N uni1EE3 ; G 2281 +U 7908 ; WX 732 ; N uni1EE4 ; G 2282 +U 7909 ; WX 634 ; N uni1EE5 ; G 2283 +U 7910 ; WX 732 ; N uni1EE6 ; G 2284 +U 7911 ; WX 634 ; N uni1EE7 ; G 2285 +U 7912 ; WX 838 ; N uni1EE8 ; G 2286 +U 7913 ; WX 634 ; N uni1EE9 ; G 2287 +U 7914 ; WX 838 ; N uni1EEA ; G 2288 +U 7915 ; WX 634 ; N uni1EEB ; G 2289 +U 7916 ; WX 838 ; N uni1EEC ; G 2290 +U 7917 ; WX 634 ; N uni1EED ; G 2291 +U 7918 ; WX 838 ; N uni1EEE ; G 2292 +U 7919 ; WX 634 ; N uni1EEF ; G 2293 +U 7920 ; WX 838 ; N uni1EF0 ; G 2294 +U 7921 ; WX 634 ; N uni1EF1 ; G 2295 +U 7922 ; WX 611 ; N Ygrave ; G 2296 +U 7923 ; WX 592 ; N ygrave ; G 2297 +U 7924 ; WX 611 ; N uni1EF4 ; G 2298 +U 7925 ; WX 592 ; N uni1EF5 ; G 2299 +U 7926 ; WX 611 ; N uni1EF6 ; G 2300 +U 7927 ; WX 592 ; N uni1EF7 ; G 2301 +U 7928 ; WX 611 ; N uni1EF8 ; G 2302 +U 7929 ; WX 592 ; N uni1EF9 ; G 2303 +U 7930 ; WX 769 ; N uni1EFA ; G 2304 +U 7931 ; WX 477 ; N uni1EFB ; G 2305 +U 7936 ; WX 659 ; N uni1F00 ; G 2306 +U 7937 ; WX 659 ; N uni1F01 ; G 2307 +U 7938 ; WX 659 ; N uni1F02 ; G 2308 +U 7939 ; WX 659 ; N uni1F03 ; G 2309 +U 7940 ; WX 659 ; N uni1F04 ; G 2310 +U 7941 ; WX 659 ; N uni1F05 ; G 2311 +U 7942 ; WX 659 ; N uni1F06 ; G 2312 +U 7943 ; WX 659 ; N uni1F07 ; G 2313 +U 7944 ; WX 684 ; N uni1F08 ; G 2314 +U 7945 ; WX 684 ; N uni1F09 ; G 2315 +U 7946 ; WX 877 ; N uni1F0A ; G 2316 +U 7947 ; WX 877 ; N uni1F0B ; G 2317 +U 7948 ; WX 769 ; N uni1F0C ; G 2318 +U 7949 ; WX 801 ; N uni1F0D ; G 2319 +U 7950 ; WX 708 ; N uni1F0E ; G 2320 +U 7951 ; WX 743 ; N uni1F0F ; G 2321 +U 7952 ; WX 541 ; N uni1F10 ; G 2322 +U 7953 ; WX 541 ; N uni1F11 ; G 2323 +U 7954 ; WX 541 ; N uni1F12 ; G 2324 +U 7955 ; WX 541 ; N uni1F13 ; G 2325 +U 7956 ; WX 541 ; N uni1F14 ; G 2326 +U 7957 ; WX 541 ; N uni1F15 ; G 2327 +U 7960 ; WX 711 ; N uni1F18 ; G 2328 +U 7961 ; WX 711 ; N uni1F19 ; G 2329 +U 7962 ; WX 966 ; N uni1F1A ; G 2330 +U 7963 ; WX 975 ; N uni1F1B ; G 2331 +U 7964 ; WX 898 ; N uni1F1C ; G 2332 +U 7965 ; WX 928 ; N uni1F1D ; G 2333 +U 7968 ; WX 634 ; N uni1F20 ; G 2334 +U 7969 ; WX 634 ; N uni1F21 ; G 2335 +U 7970 ; WX 634 ; N uni1F22 ; G 2336 +U 7971 ; WX 634 ; N uni1F23 ; G 2337 +U 7972 ; WX 634 ; N uni1F24 ; G 2338 +U 7973 ; WX 634 ; N uni1F25 ; G 2339 +U 7974 ; WX 634 ; N uni1F26 ; G 2340 +U 7975 ; WX 634 ; N uni1F27 ; G 2341 +U 7976 ; WX 837 ; N uni1F28 ; G 2342 +U 7977 ; WX 835 ; N uni1F29 ; G 2343 +U 7978 ; WX 1086 ; N uni1F2A ; G 2344 +U 7979 ; WX 1089 ; N uni1F2B ; G 2345 +U 7980 ; WX 1027 ; N uni1F2C ; G 2346 +U 7981 ; WX 1051 ; N uni1F2D ; G 2347 +U 7982 ; WX 934 ; N uni1F2E ; G 2348 +U 7983 ; WX 947 ; N uni1F2F ; G 2349 +U 7984 ; WX 338 ; N uni1F30 ; G 2350 +U 7985 ; WX 338 ; N uni1F31 ; G 2351 +U 7986 ; WX 338 ; N uni1F32 ; G 2352 +U 7987 ; WX 338 ; N uni1F33 ; G 2353 +U 7988 ; WX 338 ; N uni1F34 ; G 2354 +U 7989 ; WX 338 ; N uni1F35 ; G 2355 +U 7990 ; WX 338 ; N uni1F36 ; G 2356 +U 7991 ; WX 338 ; N uni1F37 ; G 2357 +U 7992 ; WX 380 ; N uni1F38 ; G 2358 +U 7993 ; WX 374 ; N uni1F39 ; G 2359 +U 7994 ; WX 635 ; N uni1F3A ; G 2360 +U 7995 ; WX 635 ; N uni1F3B ; G 2361 +U 7996 ; WX 570 ; N uni1F3C ; G 2362 +U 7997 ; WX 600 ; N uni1F3D ; G 2363 +U 7998 ; WX 489 ; N uni1F3E ; G 2364 +U 7999 ; WX 493 ; N uni1F3F ; G 2365 +U 8000 ; WX 612 ; N uni1F40 ; G 2366 +U 8001 ; WX 612 ; N uni1F41 ; G 2367 +U 8002 ; WX 612 ; N uni1F42 ; G 2368 +U 8003 ; WX 612 ; N uni1F43 ; G 2369 +U 8004 ; WX 612 ; N uni1F44 ; G 2370 +U 8005 ; WX 612 ; N uni1F45 ; G 2371 +U 8008 ; WX 804 ; N uni1F48 ; G 2372 +U 8009 ; WX 848 ; N uni1F49 ; G 2373 +U 8010 ; WX 1095 ; N uni1F4A ; G 2374 +U 8011 ; WX 1100 ; N uni1F4B ; G 2375 +U 8012 ; WX 938 ; N uni1F4C ; G 2376 +U 8013 ; WX 970 ; N uni1F4D ; G 2377 +U 8016 ; WX 579 ; N uni1F50 ; G 2378 +U 8017 ; WX 579 ; N uni1F51 ; G 2379 +U 8018 ; WX 579 ; N uni1F52 ; G 2380 +U 8019 ; WX 579 ; N uni1F53 ; G 2381 +U 8020 ; WX 579 ; N uni1F54 ; G 2382 +U 8021 ; WX 579 ; N uni1F55 ; G 2383 +U 8022 ; WX 579 ; N uni1F56 ; G 2384 +U 8023 ; WX 579 ; N uni1F57 ; G 2385 +U 8025 ; WX 784 ; N uni1F59 ; G 2386 +U 8027 ; WX 998 ; N uni1F5B ; G 2387 +U 8029 ; WX 1012 ; N uni1F5D ; G 2388 +U 8031 ; WX 897 ; N uni1F5F ; G 2389 +U 8032 ; WX 837 ; N uni1F60 ; G 2390 +U 8033 ; WX 837 ; N uni1F61 ; G 2391 +U 8034 ; WX 837 ; N uni1F62 ; G 2392 +U 8035 ; WX 837 ; N uni1F63 ; G 2393 +U 8036 ; WX 837 ; N uni1F64 ; G 2394 +U 8037 ; WX 837 ; N uni1F65 ; G 2395 +U 8038 ; WX 837 ; N uni1F66 ; G 2396 +U 8039 ; WX 837 ; N uni1F67 ; G 2397 +U 8040 ; WX 802 ; N uni1F68 ; G 2398 +U 8041 ; WX 843 ; N uni1F69 ; G 2399 +U 8042 ; WX 1089 ; N uni1F6A ; G 2400 +U 8043 ; WX 1095 ; N uni1F6B ; G 2401 +U 8044 ; WX 946 ; N uni1F6C ; G 2402 +U 8045 ; WX 972 ; N uni1F6D ; G 2403 +U 8046 ; WX 921 ; N uni1F6E ; G 2404 +U 8047 ; WX 952 ; N uni1F6F ; G 2405 +U 8048 ; WX 659 ; N uni1F70 ; G 2406 +U 8049 ; WX 659 ; N uni1F71 ; G 2407 +U 8050 ; WX 541 ; N uni1F72 ; G 2408 +U 8051 ; WX 548 ; N uni1F73 ; G 2409 +U 8052 ; WX 634 ; N uni1F74 ; G 2410 +U 8053 ; WX 654 ; N uni1F75 ; G 2411 +U 8054 ; WX 338 ; N uni1F76 ; G 2412 +U 8055 ; WX 338 ; N uni1F77 ; G 2413 +U 8056 ; WX 612 ; N uni1F78 ; G 2414 +U 8057 ; WX 612 ; N uni1F79 ; G 2415 +U 8058 ; WX 579 ; N uni1F7A ; G 2416 +U 8059 ; WX 579 ; N uni1F7B ; G 2417 +U 8060 ; WX 837 ; N uni1F7C ; G 2418 +U 8061 ; WX 837 ; N uni1F7D ; G 2419 +U 8064 ; WX 659 ; N uni1F80 ; G 2420 +U 8065 ; WX 659 ; N uni1F81 ; G 2421 +U 8066 ; WX 659 ; N uni1F82 ; G 2422 +U 8067 ; WX 659 ; N uni1F83 ; G 2423 +U 8068 ; WX 659 ; N uni1F84 ; G 2424 +U 8069 ; WX 659 ; N uni1F85 ; G 2425 +U 8070 ; WX 659 ; N uni1F86 ; G 2426 +U 8071 ; WX 659 ; N uni1F87 ; G 2427 +U 8072 ; WX 684 ; N uni1F88 ; G 2428 +U 8073 ; WX 684 ; N uni1F89 ; G 2429 +U 8074 ; WX 877 ; N uni1F8A ; G 2430 +U 8075 ; WX 877 ; N uni1F8B ; G 2431 +U 8076 ; WX 769 ; N uni1F8C ; G 2432 +U 8077 ; WX 801 ; N uni1F8D ; G 2433 +U 8078 ; WX 708 ; N uni1F8E ; G 2434 +U 8079 ; WX 743 ; N uni1F8F ; G 2435 +U 8080 ; WX 634 ; N uni1F90 ; G 2436 +U 8081 ; WX 634 ; N uni1F91 ; G 2437 +U 8082 ; WX 634 ; N uni1F92 ; G 2438 +U 8083 ; WX 634 ; N uni1F93 ; G 2439 +U 8084 ; WX 634 ; N uni1F94 ; G 2440 +U 8085 ; WX 634 ; N uni1F95 ; G 2441 +U 8086 ; WX 634 ; N uni1F96 ; G 2442 +U 8087 ; WX 634 ; N uni1F97 ; G 2443 +U 8088 ; WX 837 ; N uni1F98 ; G 2444 +U 8089 ; WX 835 ; N uni1F99 ; G 2445 +U 8090 ; WX 1086 ; N uni1F9A ; G 2446 +U 8091 ; WX 1089 ; N uni1F9B ; G 2447 +U 8092 ; WX 1027 ; N uni1F9C ; G 2448 +U 8093 ; WX 1051 ; N uni1F9D ; G 2449 +U 8094 ; WX 934 ; N uni1F9E ; G 2450 +U 8095 ; WX 947 ; N uni1F9F ; G 2451 +U 8096 ; WX 837 ; N uni1FA0 ; G 2452 +U 8097 ; WX 837 ; N uni1FA1 ; G 2453 +U 8098 ; WX 837 ; N uni1FA2 ; G 2454 +U 8099 ; WX 837 ; N uni1FA3 ; G 2455 +U 8100 ; WX 837 ; N uni1FA4 ; G 2456 +U 8101 ; WX 837 ; N uni1FA5 ; G 2457 +U 8102 ; WX 837 ; N uni1FA6 ; G 2458 +U 8103 ; WX 837 ; N uni1FA7 ; G 2459 +U 8104 ; WX 802 ; N uni1FA8 ; G 2460 +U 8105 ; WX 843 ; N uni1FA9 ; G 2461 +U 8106 ; WX 1089 ; N uni1FAA ; G 2462 +U 8107 ; WX 1095 ; N uni1FAB ; G 2463 +U 8108 ; WX 946 ; N uni1FAC ; G 2464 +U 8109 ; WX 972 ; N uni1FAD ; G 2465 +U 8110 ; WX 921 ; N uni1FAE ; G 2466 +U 8111 ; WX 952 ; N uni1FAF ; G 2467 +U 8112 ; WX 659 ; N uni1FB0 ; G 2468 +U 8113 ; WX 659 ; N uni1FB1 ; G 2469 +U 8114 ; WX 659 ; N uni1FB2 ; G 2470 +U 8115 ; WX 659 ; N uni1FB3 ; G 2471 +U 8116 ; WX 659 ; N uni1FB4 ; G 2472 +U 8118 ; WX 659 ; N uni1FB6 ; G 2473 +U 8119 ; WX 659 ; N uni1FB7 ; G 2474 +U 8120 ; WX 684 ; N uni1FB8 ; G 2475 +U 8121 ; WX 684 ; N uni1FB9 ; G 2476 +U 8122 ; WX 716 ; N uni1FBA ; G 2477 +U 8123 ; WX 692 ; N uni1FBB ; G 2478 +U 8124 ; WX 684 ; N uni1FBC ; G 2479 +U 8125 ; WX 500 ; N uni1FBD ; G 2480 +U 8126 ; WX 500 ; N uni1FBE ; G 2481 +U 8127 ; WX 500 ; N uni1FBF ; G 2482 +U 8128 ; WX 500 ; N uni1FC0 ; G 2483 +U 8129 ; WX 500 ; N uni1FC1 ; G 2484 +U 8130 ; WX 634 ; N uni1FC2 ; G 2485 +U 8131 ; WX 634 ; N uni1FC3 ; G 2486 +U 8132 ; WX 654 ; N uni1FC4 ; G 2487 +U 8134 ; WX 634 ; N uni1FC6 ; G 2488 +U 8135 ; WX 634 ; N uni1FC7 ; G 2489 +U 8136 ; WX 805 ; N uni1FC8 ; G 2490 +U 8137 ; WX 746 ; N uni1FC9 ; G 2491 +U 8138 ; WX 931 ; N uni1FCA ; G 2492 +U 8139 ; WX 871 ; N uni1FCB ; G 2493 +U 8140 ; WX 752 ; N uni1FCC ; G 2494 +U 8141 ; WX 500 ; N uni1FCD ; G 2495 +U 8142 ; WX 500 ; N uni1FCE ; G 2496 +U 8143 ; WX 500 ; N uni1FCF ; G 2497 +U 8144 ; WX 338 ; N uni1FD0 ; G 2498 +U 8145 ; WX 338 ; N uni1FD1 ; G 2499 +U 8146 ; WX 338 ; N uni1FD2 ; G 2500 +U 8147 ; WX 338 ; N uni1FD3 ; G 2501 +U 8150 ; WX 338 ; N uni1FD6 ; G 2502 +U 8151 ; WX 338 ; N uni1FD7 ; G 2503 +U 8152 ; WX 295 ; N uni1FD8 ; G 2504 +U 8153 ; WX 295 ; N uni1FD9 ; G 2505 +U 8154 ; WX 475 ; N uni1FDA ; G 2506 +U 8155 ; WX 408 ; N uni1FDB ; G 2507 +U 8157 ; WX 500 ; N uni1FDD ; G 2508 +U 8158 ; WX 500 ; N uni1FDE ; G 2509 +U 8159 ; WX 500 ; N uni1FDF ; G 2510 +U 8160 ; WX 579 ; N uni1FE0 ; G 2511 +U 8161 ; WX 579 ; N uni1FE1 ; G 2512 +U 8162 ; WX 579 ; N uni1FE2 ; G 2513 +U 8163 ; WX 579 ; N uni1FE3 ; G 2514 +U 8164 ; WX 635 ; N uni1FE4 ; G 2515 +U 8165 ; WX 635 ; N uni1FE5 ; G 2516 +U 8166 ; WX 579 ; N uni1FE6 ; G 2517 +U 8167 ; WX 579 ; N uni1FE7 ; G 2518 +U 8168 ; WX 611 ; N uni1FE8 ; G 2519 +U 8169 ; WX 611 ; N uni1FE9 ; G 2520 +U 8170 ; WX 845 ; N uni1FEA ; G 2521 +U 8171 ; WX 825 ; N uni1FEB ; G 2522 +U 8172 ; WX 685 ; N uni1FEC ; G 2523 +U 8173 ; WX 500 ; N uni1FED ; G 2524 +U 8174 ; WX 500 ; N uni1FEE ; G 2525 +U 8175 ; WX 500 ; N uni1FEF ; G 2526 +U 8178 ; WX 837 ; N uni1FF2 ; G 2527 +U 8179 ; WX 837 ; N uni1FF3 ; G 2528 +U 8180 ; WX 837 ; N uni1FF4 ; G 2529 +U 8182 ; WX 837 ; N uni1FF6 ; G 2530 +U 8183 ; WX 837 ; N uni1FF7 ; G 2531 +U 8184 ; WX 941 ; N uni1FF8 ; G 2532 +U 8185 ; WX 813 ; N uni1FF9 ; G 2533 +U 8186 ; WX 922 ; N uni1FFA ; G 2534 +U 8187 ; WX 826 ; N uni1FFB ; G 2535 +U 8188 ; WX 764 ; N uni1FFC ; G 2536 +U 8189 ; WX 500 ; N uni1FFD ; G 2537 +U 8190 ; WX 500 ; N uni1FFE ; G 2538 +U 8192 ; WX 500 ; N uni2000 ; G 2539 +U 8193 ; WX 1000 ; N uni2001 ; G 2540 +U 8194 ; WX 500 ; N uni2002 ; G 2541 +U 8195 ; WX 1000 ; N uni2003 ; G 2542 +U 8196 ; WX 330 ; N uni2004 ; G 2543 +U 8197 ; WX 250 ; N uni2005 ; G 2544 +U 8198 ; WX 167 ; N uni2006 ; G 2545 +U 8199 ; WX 636 ; N uni2007 ; G 2546 +U 8200 ; WX 318 ; N uni2008 ; G 2547 +U 8201 ; WX 200 ; N uni2009 ; G 2548 +U 8202 ; WX 100 ; N uni200A ; G 2549 +U 8203 ; WX 0 ; N uni200B ; G 2550 +U 8204 ; WX 0 ; N uni200C ; G 2551 +U 8205 ; WX 0 ; N uni200D ; G 2552 +U 8206 ; WX 0 ; N uni200E ; G 2553 +U 8207 ; WX 0 ; N uni200F ; G 2554 +U 8208 ; WX 361 ; N uni2010 ; G 2555 +U 8209 ; WX 361 ; N uni2011 ; G 2556 +U 8210 ; WX 636 ; N figuredash ; G 2557 +U 8211 ; WX 500 ; N endash ; G 2558 +U 8212 ; WX 1000 ; N emdash ; G 2559 +U 8213 ; WX 1000 ; N uni2015 ; G 2560 +U 8214 ; WX 500 ; N uni2016 ; G 2561 +U 8215 ; WX 500 ; N underscoredbl ; G 2562 +U 8216 ; WX 318 ; N quoteleft ; G 2563 +U 8217 ; WX 318 ; N quoteright ; G 2564 +U 8218 ; WX 318 ; N quotesinglbase ; G 2565 +U 8219 ; WX 318 ; N quotereversed ; G 2566 +U 8220 ; WX 518 ; N quotedblleft ; G 2567 +U 8221 ; WX 518 ; N quotedblright ; G 2568 +U 8222 ; WX 518 ; N quotedblbase ; G 2569 +U 8223 ; WX 518 ; N uni201F ; G 2570 +U 8224 ; WX 500 ; N dagger ; G 2571 +U 8225 ; WX 500 ; N daggerdbl ; G 2572 +U 8226 ; WX 590 ; N bullet ; G 2573 +U 8227 ; WX 590 ; N uni2023 ; G 2574 +U 8228 ; WX 333 ; N onedotenleader ; G 2575 +U 8229 ; WX 667 ; N twodotenleader ; G 2576 +U 8230 ; WX 1000 ; N ellipsis ; G 2577 +U 8231 ; WX 318 ; N uni2027 ; G 2578 +U 8232 ; WX 0 ; N uni2028 ; G 2579 +U 8233 ; WX 0 ; N uni2029 ; G 2580 +U 8234 ; WX 0 ; N uni202A ; G 2581 +U 8235 ; WX 0 ; N uni202B ; G 2582 +U 8236 ; WX 0 ; N uni202C ; G 2583 +U 8237 ; WX 0 ; N uni202D ; G 2584 +U 8238 ; WX 0 ; N uni202E ; G 2585 +U 8239 ; WX 200 ; N uni202F ; G 2586 +U 8240 ; WX 1350 ; N perthousand ; G 2587 +U 8241 ; WX 1690 ; N uni2031 ; G 2588 +U 8242 ; WX 227 ; N minute ; G 2589 +U 8243 ; WX 374 ; N second ; G 2590 +U 8244 ; WX 520 ; N uni2034 ; G 2591 +U 8245 ; WX 227 ; N uni2035 ; G 2592 +U 8246 ; WX 374 ; N uni2036 ; G 2593 +U 8247 ; WX 520 ; N uni2037 ; G 2594 +U 8248 ; WX 339 ; N uni2038 ; G 2595 +U 8249 ; WX 400 ; N guilsinglleft ; G 2596 +U 8250 ; WX 400 ; N guilsinglright ; G 2597 +U 8251 ; WX 838 ; N uni203B ; G 2598 +U 8252 ; WX 485 ; N exclamdbl ; G 2599 +U 8253 ; WX 531 ; N uni203D ; G 2600 +U 8254 ; WX 500 ; N uni203E ; G 2601 +U 8255 ; WX 804 ; N uni203F ; G 2602 +U 8256 ; WX 804 ; N uni2040 ; G 2603 +U 8257 ; WX 250 ; N uni2041 ; G 2604 +U 8258 ; WX 1000 ; N uni2042 ; G 2605 +U 8259 ; WX 500 ; N uni2043 ; G 2606 +U 8260 ; WX 167 ; N fraction ; G 2607 +U 8261 ; WX 390 ; N uni2045 ; G 2608 +U 8262 ; WX 390 ; N uni2046 ; G 2609 +U 8263 ; WX 922 ; N uni2047 ; G 2610 +U 8264 ; WX 733 ; N uni2048 ; G 2611 +U 8265 ; WX 733 ; N uni2049 ; G 2612 +U 8266 ; WX 497 ; N uni204A ; G 2613 +U 8267 ; WX 636 ; N uni204B ; G 2614 +U 8268 ; WX 500 ; N uni204C ; G 2615 +U 8269 ; WX 500 ; N uni204D ; G 2616 +U 8270 ; WX 500 ; N uni204E ; G 2617 +U 8271 ; WX 337 ; N uni204F ; G 2618 +U 8272 ; WX 804 ; N uni2050 ; G 2619 +U 8273 ; WX 500 ; N uni2051 ; G 2620 +U 8274 ; WX 450 ; N uni2052 ; G 2621 +U 8275 ; WX 1000 ; N uni2053 ; G 2622 +U 8276 ; WX 804 ; N uni2054 ; G 2623 +U 8277 ; WX 838 ; N uni2055 ; G 2624 +U 8278 ; WX 586 ; N uni2056 ; G 2625 +U 8279 ; WX 663 ; N uni2057 ; G 2626 +U 8280 ; WX 838 ; N uni2058 ; G 2627 +U 8281 ; WX 838 ; N uni2059 ; G 2628 +U 8282 ; WX 318 ; N uni205A ; G 2629 +U 8283 ; WX 797 ; N uni205B ; G 2630 +U 8284 ; WX 838 ; N uni205C ; G 2631 +U 8285 ; WX 318 ; N uni205D ; G 2632 +U 8286 ; WX 318 ; N uni205E ; G 2633 +U 8287 ; WX 222 ; N uni205F ; G 2634 +U 8288 ; WX 0 ; N uni2060 ; G 2635 +U 8289 ; WX 0 ; N uni2061 ; G 2636 +U 8290 ; WX 0 ; N uni2062 ; G 2637 +U 8291 ; WX 0 ; N uni2063 ; G 2638 +U 8292 ; WX 0 ; N uni2064 ; G 2639 +U 8298 ; WX 0 ; N uni206A ; G 2640 +U 8299 ; WX 0 ; N uni206B ; G 2641 +U 8300 ; WX 0 ; N uni206C ; G 2642 +U 8301 ; WX 0 ; N uni206D ; G 2643 +U 8302 ; WX 0 ; N uni206E ; G 2644 +U 8303 ; WX 0 ; N uni206F ; G 2645 +U 8304 ; WX 401 ; N uni2070 ; G 2646 +U 8305 ; WX 179 ; N uni2071 ; G 2647 +U 8308 ; WX 401 ; N uni2074 ; G 2648 +U 8309 ; WX 401 ; N uni2075 ; G 2649 +U 8310 ; WX 401 ; N uni2076 ; G 2650 +U 8311 ; WX 401 ; N uni2077 ; G 2651 +U 8312 ; WX 401 ; N uni2078 ; G 2652 +U 8313 ; WX 401 ; N uni2079 ; G 2653 +U 8314 ; WX 528 ; N uni207A ; G 2654 +U 8315 ; WX 528 ; N uni207B ; G 2655 +U 8316 ; WX 528 ; N uni207C ; G 2656 +U 8317 ; WX 246 ; N uni207D ; G 2657 +U 8318 ; WX 246 ; N uni207E ; G 2658 +U 8319 ; WX 399 ; N uni207F ; G 2659 +U 8320 ; WX 401 ; N uni2080 ; G 2660 +U 8321 ; WX 401 ; N uni2081 ; G 2661 +U 8322 ; WX 401 ; N uni2082 ; G 2662 +U 8323 ; WX 401 ; N uni2083 ; G 2663 +U 8324 ; WX 401 ; N uni2084 ; G 2664 +U 8325 ; WX 401 ; N uni2085 ; G 2665 +U 8326 ; WX 401 ; N uni2086 ; G 2666 +U 8327 ; WX 401 ; N uni2087 ; G 2667 +U 8328 ; WX 401 ; N uni2088 ; G 2668 +U 8329 ; WX 401 ; N uni2089 ; G 2669 +U 8330 ; WX 528 ; N uni208A ; G 2670 +U 8331 ; WX 528 ; N uni208B ; G 2671 +U 8332 ; WX 528 ; N uni208C ; G 2672 +U 8333 ; WX 246 ; N uni208D ; G 2673 +U 8334 ; WX 246 ; N uni208E ; G 2674 +U 8336 ; WX 392 ; N uni2090 ; G 2675 +U 8337 ; WX 417 ; N uni2091 ; G 2676 +U 8338 ; WX 414 ; N uni2092 ; G 2677 +U 8339 ; WX 444 ; N uni2093 ; G 2678 +U 8340 ; WX 417 ; N uni2094 ; G 2679 +U 8341 ; WX 399 ; N uni2095 ; G 2680 +U 8342 ; WX 426 ; N uni2096 ; G 2681 +U 8343 ; WX 166 ; N uni2097 ; G 2682 +U 8344 ; WX 623 ; N uni2098 ; G 2683 +U 8345 ; WX 399 ; N uni2099 ; G 2684 +U 8346 ; WX 428 ; N uni209A ; G 2685 +U 8347 ; WX 373 ; N uni209B ; G 2686 +U 8348 ; WX 295 ; N uni209C ; G 2687 +U 8352 ; WX 877 ; N uni20A0 ; G 2688 +U 8353 ; WX 636 ; N colonmonetary ; G 2689 +U 8354 ; WX 636 ; N uni20A2 ; G 2690 +U 8355 ; WX 636 ; N franc ; G 2691 +U 8356 ; WX 636 ; N lira ; G 2692 +U 8357 ; WX 974 ; N uni20A5 ; G 2693 +U 8358 ; WX 636 ; N uni20A6 ; G 2694 +U 8359 ; WX 1271 ; N peseta ; G 2695 +U 8360 ; WX 1074 ; N uni20A8 ; G 2696 +U 8361 ; WX 989 ; N uni20A9 ; G 2697 +U 8362 ; WX 838 ; N uni20AA ; G 2698 +U 8363 ; WX 636 ; N dong ; G 2699 +U 8364 ; WX 636 ; N Euro ; G 2700 +U 8365 ; WX 636 ; N uni20AD ; G 2701 +U 8366 ; WX 636 ; N uni20AE ; G 2702 +U 8367 ; WX 1272 ; N uni20AF ; G 2703 +U 8368 ; WX 636 ; N uni20B0 ; G 2704 +U 8369 ; WX 636 ; N uni20B1 ; G 2705 +U 8370 ; WX 636 ; N uni20B2 ; G 2706 +U 8371 ; WX 636 ; N uni20B3 ; G 2707 +U 8372 ; WX 774 ; N uni20B4 ; G 2708 +U 8373 ; WX 636 ; N uni20B5 ; G 2709 +U 8376 ; WX 636 ; N uni20B8 ; G 2710 +U 8377 ; WX 636 ; N uni20B9 ; G 2711 +U 8378 ; WX 636 ; N uni20BA ; G 2712 +U 8381 ; WX 636 ; N uni20BD ; G 2713 +U 8400 ; WX 0 ; N uni20D0 ; G 2714 +U 8401 ; WX 0 ; N uni20D1 ; G 2715 +U 8406 ; WX 0 ; N uni20D6 ; G 2716 +U 8407 ; WX 0 ; N uni20D7 ; G 2717 +U 8411 ; WX 0 ; N uni20DB ; G 2718 +U 8412 ; WX 0 ; N uni20DC ; G 2719 +U 8417 ; WX 0 ; N uni20E1 ; G 2720 +U 8448 ; WX 970 ; N uni2100 ; G 2721 +U 8449 ; WX 970 ; N uni2101 ; G 2722 +U 8450 ; WX 698 ; N uni2102 ; G 2723 +U 8451 ; WX 1123 ; N uni2103 ; G 2724 +U 8452 ; WX 896 ; N uni2104 ; G 2725 +U 8453 ; WX 969 ; N uni2105 ; G 2726 +U 8454 ; WX 1032 ; N uni2106 ; G 2727 +U 8455 ; WX 614 ; N uni2107 ; G 2728 +U 8456 ; WX 698 ; N uni2108 ; G 2729 +U 8457 ; WX 952 ; N uni2109 ; G 2730 +U 8459 ; WX 988 ; N uni210B ; G 2731 +U 8460 ; WX 754 ; N uni210C ; G 2732 +U 8461 ; WX 850 ; N uni210D ; G 2733 +U 8462 ; WX 634 ; N uni210E ; G 2734 +U 8463 ; WX 634 ; N uni210F ; G 2735 +U 8464 ; WX 470 ; N uni2110 ; G 2736 +U 8465 ; WX 697 ; N Ifraktur ; G 2737 +U 8466 ; WX 720 ; N uni2112 ; G 2738 +U 8467 ; WX 413 ; N uni2113 ; G 2739 +U 8468 ; WX 818 ; N uni2114 ; G 2740 +U 8469 ; WX 801 ; N uni2115 ; G 2741 +U 8470 ; WX 1040 ; N uni2116 ; G 2742 +U 8471 ; WX 1000 ; N uni2117 ; G 2743 +U 8472 ; WX 697 ; N weierstrass ; G 2744 +U 8473 ; WX 701 ; N uni2119 ; G 2745 +U 8474 ; WX 787 ; N uni211A ; G 2746 +U 8475 ; WX 798 ; N uni211B ; G 2747 +U 8476 ; WX 814 ; N Rfraktur ; G 2748 +U 8477 ; WX 792 ; N uni211D ; G 2749 +U 8478 ; WX 896 ; N prescription ; G 2750 +U 8479 ; WX 684 ; N uni211F ; G 2751 +U 8480 ; WX 1020 ; N uni2120 ; G 2752 +U 8481 ; WX 1014 ; N uni2121 ; G 2753 +U 8482 ; WX 1000 ; N trademark ; G 2754 +U 8483 ; WX 684 ; N uni2123 ; G 2755 +U 8484 ; WX 745 ; N uni2124 ; G 2756 +U 8485 ; WX 578 ; N uni2125 ; G 2757 +U 8486 ; WX 764 ; N uni2126 ; G 2758 +U 8487 ; WX 764 ; N uni2127 ; G 2759 +U 8488 ; WX 616 ; N uni2128 ; G 2760 +U 8489 ; WX 338 ; N uni2129 ; G 2761 +U 8490 ; WX 656 ; N uni212A ; G 2762 +U 8491 ; WX 684 ; N uni212B ; G 2763 +U 8492 ; WX 786 ; N uni212C ; G 2764 +U 8493 ; WX 703 ; N uni212D ; G 2765 +U 8494 ; WX 854 ; N estimated ; G 2766 +U 8495 ; WX 592 ; N uni212F ; G 2767 +U 8496 ; WX 605 ; N uni2130 ; G 2768 +U 8497 ; WX 786 ; N uni2131 ; G 2769 +U 8498 ; WX 575 ; N uni2132 ; G 2770 +U 8499 ; WX 1069 ; N uni2133 ; G 2771 +U 8500 ; WX 462 ; N uni2134 ; G 2772 +U 8501 ; WX 745 ; N aleph ; G 2773 +U 8502 ; WX 674 ; N uni2136 ; G 2774 +U 8503 ; WX 466 ; N uni2137 ; G 2775 +U 8504 ; WX 645 ; N uni2138 ; G 2776 +U 8505 ; WX 380 ; N uni2139 ; G 2777 +U 8506 ; WX 926 ; N uni213A ; G 2778 +U 8507 ; WX 1157 ; N uni213B ; G 2779 +U 8508 ; WX 702 ; N uni213C ; G 2780 +U 8509 ; WX 728 ; N uni213D ; G 2781 +U 8510 ; WX 654 ; N uni213E ; G 2782 +U 8511 ; WX 849 ; N uni213F ; G 2783 +U 8512 ; WX 811 ; N uni2140 ; G 2784 +U 8513 ; WX 775 ; N uni2141 ; G 2785 +U 8514 ; WX 557 ; N uni2142 ; G 2786 +U 8515 ; WX 557 ; N uni2143 ; G 2787 +U 8516 ; WX 611 ; N uni2144 ; G 2788 +U 8517 ; WX 819 ; N uni2145 ; G 2789 +U 8518 ; WX 708 ; N uni2146 ; G 2790 +U 8519 ; WX 615 ; N uni2147 ; G 2791 +U 8520 ; WX 351 ; N uni2148 ; G 2792 +U 8521 ; WX 351 ; N uni2149 ; G 2793 +U 8523 ; WX 780 ; N uni214B ; G 2794 +U 8526 ; WX 526 ; N uni214E ; G 2795 +U 8528 ; WX 969 ; N uni2150 ; G 2796 +U 8529 ; WX 969 ; N uni2151 ; G 2797 +U 8530 ; WX 1370 ; N uni2152 ; G 2798 +U 8531 ; WX 969 ; N onethird ; G 2799 +U 8532 ; WX 969 ; N twothirds ; G 2800 +U 8533 ; WX 969 ; N uni2155 ; G 2801 +U 8534 ; WX 969 ; N uni2156 ; G 2802 +U 8535 ; WX 969 ; N uni2157 ; G 2803 +U 8536 ; WX 969 ; N uni2158 ; G 2804 +U 8537 ; WX 969 ; N uni2159 ; G 2805 +U 8538 ; WX 969 ; N uni215A ; G 2806 +U 8539 ; WX 969 ; N oneeighth ; G 2807 +U 8540 ; WX 969 ; N threeeighths ; G 2808 +U 8541 ; WX 969 ; N fiveeighths ; G 2809 +U 8542 ; WX 969 ; N seveneighths ; G 2810 +U 8543 ; WX 568 ; N uni215F ; G 2811 +U 8544 ; WX 295 ; N uni2160 ; G 2812 +U 8545 ; WX 492 ; N uni2161 ; G 2813 +U 8546 ; WX 689 ; N uni2162 ; G 2814 +U 8547 ; WX 923 ; N uni2163 ; G 2815 +U 8548 ; WX 684 ; N uni2164 ; G 2816 +U 8549 ; WX 922 ; N uni2165 ; G 2817 +U 8550 ; WX 1120 ; N uni2166 ; G 2818 +U 8551 ; WX 1317 ; N uni2167 ; G 2819 +U 8552 ; WX 917 ; N uni2168 ; G 2820 +U 8553 ; WX 685 ; N uni2169 ; G 2821 +U 8554 ; WX 933 ; N uni216A ; G 2822 +U 8555 ; WX 1131 ; N uni216B ; G 2823 +U 8556 ; WX 557 ; N uni216C ; G 2824 +U 8557 ; WX 698 ; N uni216D ; G 2825 +U 8558 ; WX 770 ; N uni216E ; G 2826 +U 8559 ; WX 863 ; N uni216F ; G 2827 +U 8560 ; WX 278 ; N uni2170 ; G 2828 +U 8561 ; WX 458 ; N uni2171 ; G 2829 +U 8562 ; WX 637 ; N uni2172 ; G 2830 +U 8563 ; WX 812 ; N uni2173 ; G 2831 +U 8564 ; WX 592 ; N uni2174 ; G 2832 +U 8565 ; WX 811 ; N uni2175 ; G 2833 +U 8566 ; WX 991 ; N uni2176 ; G 2834 +U 8567 ; WX 1170 ; N uni2177 ; G 2835 +U 8568 ; WX 819 ; N uni2178 ; G 2836 +U 8569 ; WX 592 ; N uni2179 ; G 2837 +U 8570 ; WX 822 ; N uni217A ; G 2838 +U 8571 ; WX 1002 ; N uni217B ; G 2839 +U 8572 ; WX 278 ; N uni217C ; G 2840 +U 8573 ; WX 550 ; N uni217D ; G 2841 +U 8574 ; WX 635 ; N uni217E ; G 2842 +U 8575 ; WX 974 ; N uni217F ; G 2843 +U 8576 ; WX 1245 ; N uni2180 ; G 2844 +U 8577 ; WX 770 ; N uni2181 ; G 2845 +U 8578 ; WX 1245 ; N uni2182 ; G 2846 +U 8579 ; WX 703 ; N uni2183 ; G 2847 +U 8580 ; WX 549 ; N uni2184 ; G 2848 +U 8581 ; WX 698 ; N uni2185 ; G 2849 +U 8585 ; WX 969 ; N uni2189 ; G 2850 +U 8592 ; WX 838 ; N arrowleft ; G 2851 +U 8593 ; WX 838 ; N arrowup ; G 2852 +U 8594 ; WX 838 ; N arrowright ; G 2853 +U 8595 ; WX 838 ; N arrowdown ; G 2854 +U 8596 ; WX 838 ; N arrowboth ; G 2855 +U 8597 ; WX 838 ; N arrowupdn ; G 2856 +U 8598 ; WX 838 ; N uni2196 ; G 2857 +U 8599 ; WX 838 ; N uni2197 ; G 2858 +U 8600 ; WX 838 ; N uni2198 ; G 2859 +U 8601 ; WX 838 ; N uni2199 ; G 2860 +U 8602 ; WX 838 ; N uni219A ; G 2861 +U 8603 ; WX 838 ; N uni219B ; G 2862 +U 8604 ; WX 838 ; N uni219C ; G 2863 +U 8605 ; WX 838 ; N uni219D ; G 2864 +U 8606 ; WX 838 ; N uni219E ; G 2865 +U 8607 ; WX 838 ; N uni219F ; G 2866 +U 8608 ; WX 838 ; N uni21A0 ; G 2867 +U 8609 ; WX 838 ; N uni21A1 ; G 2868 +U 8610 ; WX 838 ; N uni21A2 ; G 2869 +U 8611 ; WX 838 ; N uni21A3 ; G 2870 +U 8612 ; WX 838 ; N uni21A4 ; G 2871 +U 8613 ; WX 838 ; N uni21A5 ; G 2872 +U 8614 ; WX 838 ; N uni21A6 ; G 2873 +U 8615 ; WX 838 ; N uni21A7 ; G 2874 +U 8616 ; WX 838 ; N arrowupdnbse ; G 2875 +U 8617 ; WX 838 ; N uni21A9 ; G 2876 +U 8618 ; WX 838 ; N uni21AA ; G 2877 +U 8619 ; WX 838 ; N uni21AB ; G 2878 +U 8620 ; WX 838 ; N uni21AC ; G 2879 +U 8621 ; WX 838 ; N uni21AD ; G 2880 +U 8622 ; WX 838 ; N uni21AE ; G 2881 +U 8623 ; WX 838 ; N uni21AF ; G 2882 +U 8624 ; WX 838 ; N uni21B0 ; G 2883 +U 8625 ; WX 838 ; N uni21B1 ; G 2884 +U 8626 ; WX 838 ; N uni21B2 ; G 2885 +U 8627 ; WX 838 ; N uni21B3 ; G 2886 +U 8628 ; WX 838 ; N uni21B4 ; G 2887 +U 8629 ; WX 838 ; N carriagereturn ; G 2888 +U 8630 ; WX 838 ; N uni21B6 ; G 2889 +U 8631 ; WX 838 ; N uni21B7 ; G 2890 +U 8632 ; WX 838 ; N uni21B8 ; G 2891 +U 8633 ; WX 838 ; N uni21B9 ; G 2892 +U 8634 ; WX 838 ; N uni21BA ; G 2893 +U 8635 ; WX 838 ; N uni21BB ; G 2894 +U 8636 ; WX 838 ; N uni21BC ; G 2895 +U 8637 ; WX 838 ; N uni21BD ; G 2896 +U 8638 ; WX 838 ; N uni21BE ; G 2897 +U 8639 ; WX 838 ; N uni21BF ; G 2898 +U 8640 ; WX 838 ; N uni21C0 ; G 2899 +U 8641 ; WX 838 ; N uni21C1 ; G 2900 +U 8642 ; WX 838 ; N uni21C2 ; G 2901 +U 8643 ; WX 838 ; N uni21C3 ; G 2902 +U 8644 ; WX 838 ; N uni21C4 ; G 2903 +U 8645 ; WX 838 ; N uni21C5 ; G 2904 +U 8646 ; WX 838 ; N uni21C6 ; G 2905 +U 8647 ; WX 838 ; N uni21C7 ; G 2906 +U 8648 ; WX 838 ; N uni21C8 ; G 2907 +U 8649 ; WX 838 ; N uni21C9 ; G 2908 +U 8650 ; WX 838 ; N uni21CA ; G 2909 +U 8651 ; WX 838 ; N uni21CB ; G 2910 +U 8652 ; WX 838 ; N uni21CC ; G 2911 +U 8653 ; WX 838 ; N uni21CD ; G 2912 +U 8654 ; WX 838 ; N uni21CE ; G 2913 +U 8655 ; WX 838 ; N uni21CF ; G 2914 +U 8656 ; WX 838 ; N arrowdblleft ; G 2915 +U 8657 ; WX 838 ; N arrowdblup ; G 2916 +U 8658 ; WX 838 ; N arrowdblright ; G 2917 +U 8659 ; WX 838 ; N arrowdbldown ; G 2918 +U 8660 ; WX 838 ; N arrowdblboth ; G 2919 +U 8661 ; WX 838 ; N uni21D5 ; G 2920 +U 8662 ; WX 838 ; N uni21D6 ; G 2921 +U 8663 ; WX 838 ; N uni21D7 ; G 2922 +U 8664 ; WX 838 ; N uni21D8 ; G 2923 +U 8665 ; WX 838 ; N uni21D9 ; G 2924 +U 8666 ; WX 838 ; N uni21DA ; G 2925 +U 8667 ; WX 838 ; N uni21DB ; G 2926 +U 8668 ; WX 838 ; N uni21DC ; G 2927 +U 8669 ; WX 838 ; N uni21DD ; G 2928 +U 8670 ; WX 838 ; N uni21DE ; G 2929 +U 8671 ; WX 838 ; N uni21DF ; G 2930 +U 8672 ; WX 838 ; N uni21E0 ; G 2931 +U 8673 ; WX 838 ; N uni21E1 ; G 2932 +U 8674 ; WX 838 ; N uni21E2 ; G 2933 +U 8675 ; WX 838 ; N uni21E3 ; G 2934 +U 8676 ; WX 838 ; N uni21E4 ; G 2935 +U 8677 ; WX 838 ; N uni21E5 ; G 2936 +U 8678 ; WX 838 ; N uni21E6 ; G 2937 +U 8679 ; WX 838 ; N uni21E7 ; G 2938 +U 8680 ; WX 838 ; N uni21E8 ; G 2939 +U 8681 ; WX 838 ; N uni21E9 ; G 2940 +U 8682 ; WX 838 ; N uni21EA ; G 2941 +U 8683 ; WX 838 ; N uni21EB ; G 2942 +U 8684 ; WX 838 ; N uni21EC ; G 2943 +U 8685 ; WX 838 ; N uni21ED ; G 2944 +U 8686 ; WX 838 ; N uni21EE ; G 2945 +U 8687 ; WX 838 ; N uni21EF ; G 2946 +U 8688 ; WX 838 ; N uni21F0 ; G 2947 +U 8689 ; WX 838 ; N uni21F1 ; G 2948 +U 8690 ; WX 838 ; N uni21F2 ; G 2949 +U 8691 ; WX 838 ; N uni21F3 ; G 2950 +U 8692 ; WX 838 ; N uni21F4 ; G 2951 +U 8693 ; WX 838 ; N uni21F5 ; G 2952 +U 8694 ; WX 838 ; N uni21F6 ; G 2953 +U 8695 ; WX 838 ; N uni21F7 ; G 2954 +U 8696 ; WX 838 ; N uni21F8 ; G 2955 +U 8697 ; WX 838 ; N uni21F9 ; G 2956 +U 8698 ; WX 838 ; N uni21FA ; G 2957 +U 8699 ; WX 838 ; N uni21FB ; G 2958 +U 8700 ; WX 838 ; N uni21FC ; G 2959 +U 8701 ; WX 838 ; N uni21FD ; G 2960 +U 8702 ; WX 838 ; N uni21FE ; G 2961 +U 8703 ; WX 838 ; N uni21FF ; G 2962 +U 8704 ; WX 684 ; N universal ; G 2963 +U 8705 ; WX 636 ; N uni2201 ; G 2964 +U 8706 ; WX 517 ; N partialdiff ; G 2965 +U 8707 ; WX 632 ; N existential ; G 2966 +U 8708 ; WX 632 ; N uni2204 ; G 2967 +U 8709 ; WX 871 ; N emptyset ; G 2968 +U 8710 ; WX 669 ; N increment ; G 2969 +U 8711 ; WX 669 ; N gradient ; G 2970 +U 8712 ; WX 871 ; N element ; G 2971 +U 8713 ; WX 871 ; N notelement ; G 2972 +U 8714 ; WX 718 ; N uni220A ; G 2973 +U 8715 ; WX 871 ; N suchthat ; G 2974 +U 8716 ; WX 871 ; N uni220C ; G 2975 +U 8717 ; WX 718 ; N uni220D ; G 2976 +U 8718 ; WX 636 ; N uni220E ; G 2977 +U 8719 ; WX 757 ; N product ; G 2978 +U 8720 ; WX 757 ; N uni2210 ; G 2979 +U 8721 ; WX 674 ; N summation ; G 2980 +U 8722 ; WX 838 ; N minus ; G 2981 +U 8723 ; WX 838 ; N uni2213 ; G 2982 +U 8724 ; WX 838 ; N uni2214 ; G 2983 +U 8725 ; WX 337 ; N uni2215 ; G 2984 +U 8726 ; WX 637 ; N uni2216 ; G 2985 +U 8727 ; WX 838 ; N asteriskmath ; G 2986 +U 8728 ; WX 626 ; N uni2218 ; G 2987 +U 8729 ; WX 626 ; N uni2219 ; G 2988 +U 8730 ; WX 637 ; N radical ; G 2989 +U 8731 ; WX 637 ; N uni221B ; G 2990 +U 8732 ; WX 637 ; N uni221C ; G 2991 +U 8733 ; WX 714 ; N proportional ; G 2992 +U 8734 ; WX 833 ; N infinity ; G 2993 +U 8735 ; WX 838 ; N orthogonal ; G 2994 +U 8736 ; WX 896 ; N angle ; G 2995 +U 8737 ; WX 896 ; N uni2221 ; G 2996 +U 8738 ; WX 838 ; N uni2222 ; G 2997 +U 8739 ; WX 500 ; N uni2223 ; G 2998 +U 8740 ; WX 500 ; N uni2224 ; G 2999 +U 8741 ; WX 500 ; N uni2225 ; G 3000 +U 8742 ; WX 500 ; N uni2226 ; G 3001 +U 8743 ; WX 732 ; N logicaland ; G 3002 +U 8744 ; WX 732 ; N logicalor ; G 3003 +U 8745 ; WX 732 ; N intersection ; G 3004 +U 8746 ; WX 732 ; N union ; G 3005 +U 8747 ; WX 521 ; N integral ; G 3006 +U 8748 ; WX 789 ; N uni222C ; G 3007 +U 8749 ; WX 1057 ; N uni222D ; G 3008 +U 8750 ; WX 521 ; N uni222E ; G 3009 +U 8751 ; WX 789 ; N uni222F ; G 3010 +U 8752 ; WX 1057 ; N uni2230 ; G 3011 +U 8753 ; WX 521 ; N uni2231 ; G 3012 +U 8754 ; WX 521 ; N uni2232 ; G 3013 +U 8755 ; WX 521 ; N uni2233 ; G 3014 +U 8756 ; WX 636 ; N therefore ; G 3015 +U 8757 ; WX 636 ; N uni2235 ; G 3016 +U 8758 ; WX 260 ; N uni2236 ; G 3017 +U 8759 ; WX 636 ; N uni2237 ; G 3018 +U 8760 ; WX 838 ; N uni2238 ; G 3019 +U 8761 ; WX 838 ; N uni2239 ; G 3020 +U 8762 ; WX 838 ; N uni223A ; G 3021 +U 8763 ; WX 838 ; N uni223B ; G 3022 +U 8764 ; WX 838 ; N similar ; G 3023 +U 8765 ; WX 838 ; N uni223D ; G 3024 +U 8766 ; WX 838 ; N uni223E ; G 3025 +U 8767 ; WX 838 ; N uni223F ; G 3026 +U 8768 ; WX 375 ; N uni2240 ; G 3027 +U 8769 ; WX 838 ; N uni2241 ; G 3028 +U 8770 ; WX 838 ; N uni2242 ; G 3029 +U 8771 ; WX 838 ; N uni2243 ; G 3030 +U 8772 ; WX 838 ; N uni2244 ; G 3031 +U 8773 ; WX 838 ; N congruent ; G 3032 +U 8774 ; WX 838 ; N uni2246 ; G 3033 +U 8775 ; WX 838 ; N uni2247 ; G 3034 +U 8776 ; WX 838 ; N approxequal ; G 3035 +U 8777 ; WX 838 ; N uni2249 ; G 3036 +U 8778 ; WX 838 ; N uni224A ; G 3037 +U 8779 ; WX 838 ; N uni224B ; G 3038 +U 8780 ; WX 838 ; N uni224C ; G 3039 +U 8781 ; WX 838 ; N uni224D ; G 3040 +U 8782 ; WX 838 ; N uni224E ; G 3041 +U 8783 ; WX 838 ; N uni224F ; G 3042 +U 8784 ; WX 838 ; N uni2250 ; G 3043 +U 8785 ; WX 838 ; N uni2251 ; G 3044 +U 8786 ; WX 838 ; N uni2252 ; G 3045 +U 8787 ; WX 838 ; N uni2253 ; G 3046 +U 8788 ; WX 1000 ; N uni2254 ; G 3047 +U 8789 ; WX 1000 ; N uni2255 ; G 3048 +U 8790 ; WX 838 ; N uni2256 ; G 3049 +U 8791 ; WX 838 ; N uni2257 ; G 3050 +U 8792 ; WX 838 ; N uni2258 ; G 3051 +U 8793 ; WX 838 ; N uni2259 ; G 3052 +U 8794 ; WX 838 ; N uni225A ; G 3053 +U 8795 ; WX 838 ; N uni225B ; G 3054 +U 8796 ; WX 838 ; N uni225C ; G 3055 +U 8797 ; WX 838 ; N uni225D ; G 3056 +U 8798 ; WX 838 ; N uni225E ; G 3057 +U 8799 ; WX 838 ; N uni225F ; G 3058 +U 8800 ; WX 838 ; N notequal ; G 3059 +U 8801 ; WX 838 ; N equivalence ; G 3060 +U 8802 ; WX 838 ; N uni2262 ; G 3061 +U 8803 ; WX 838 ; N uni2263 ; G 3062 +U 8804 ; WX 838 ; N lessequal ; G 3063 +U 8805 ; WX 838 ; N greaterequal ; G 3064 +U 8806 ; WX 838 ; N uni2266 ; G 3065 +U 8807 ; WX 838 ; N uni2267 ; G 3066 +U 8808 ; WX 838 ; N uni2268 ; G 3067 +U 8809 ; WX 838 ; N uni2269 ; G 3068 +U 8810 ; WX 1047 ; N uni226A ; G 3069 +U 8811 ; WX 1047 ; N uni226B ; G 3070 +U 8812 ; WX 464 ; N uni226C ; G 3071 +U 8813 ; WX 838 ; N uni226D ; G 3072 +U 8814 ; WX 838 ; N uni226E ; G 3073 +U 8815 ; WX 838 ; N uni226F ; G 3074 +U 8816 ; WX 838 ; N uni2270 ; G 3075 +U 8817 ; WX 838 ; N uni2271 ; G 3076 +U 8818 ; WX 838 ; N uni2272 ; G 3077 +U 8819 ; WX 838 ; N uni2273 ; G 3078 +U 8820 ; WX 838 ; N uni2274 ; G 3079 +U 8821 ; WX 838 ; N uni2275 ; G 3080 +U 8822 ; WX 838 ; N uni2276 ; G 3081 +U 8823 ; WX 838 ; N uni2277 ; G 3082 +U 8824 ; WX 838 ; N uni2278 ; G 3083 +U 8825 ; WX 838 ; N uni2279 ; G 3084 +U 8826 ; WX 838 ; N uni227A ; G 3085 +U 8827 ; WX 838 ; N uni227B ; G 3086 +U 8828 ; WX 838 ; N uni227C ; G 3087 +U 8829 ; WX 838 ; N uni227D ; G 3088 +U 8830 ; WX 838 ; N uni227E ; G 3089 +U 8831 ; WX 838 ; N uni227F ; G 3090 +U 8832 ; WX 838 ; N uni2280 ; G 3091 +U 8833 ; WX 838 ; N uni2281 ; G 3092 +U 8834 ; WX 838 ; N propersubset ; G 3093 +U 8835 ; WX 838 ; N propersuperset ; G 3094 +U 8836 ; WX 838 ; N notsubset ; G 3095 +U 8837 ; WX 838 ; N uni2285 ; G 3096 +U 8838 ; WX 838 ; N reflexsubset ; G 3097 +U 8839 ; WX 838 ; N reflexsuperset ; G 3098 +U 8840 ; WX 838 ; N uni2288 ; G 3099 +U 8841 ; WX 838 ; N uni2289 ; G 3100 +U 8842 ; WX 838 ; N uni228A ; G 3101 +U 8843 ; WX 838 ; N uni228B ; G 3102 +U 8844 ; WX 732 ; N uni228C ; G 3103 +U 8845 ; WX 732 ; N uni228D ; G 3104 +U 8846 ; WX 732 ; N uni228E ; G 3105 +U 8847 ; WX 838 ; N uni228F ; G 3106 +U 8848 ; WX 838 ; N uni2290 ; G 3107 +U 8849 ; WX 838 ; N uni2291 ; G 3108 +U 8850 ; WX 838 ; N uni2292 ; G 3109 +U 8851 ; WX 780 ; N uni2293 ; G 3110 +U 8852 ; WX 780 ; N uni2294 ; G 3111 +U 8853 ; WX 838 ; N circleplus ; G 3112 +U 8854 ; WX 838 ; N uni2296 ; G 3113 +U 8855 ; WX 838 ; N circlemultiply ; G 3114 +U 8856 ; WX 838 ; N uni2298 ; G 3115 +U 8857 ; WX 838 ; N uni2299 ; G 3116 +U 8858 ; WX 838 ; N uni229A ; G 3117 +U 8859 ; WX 838 ; N uni229B ; G 3118 +U 8860 ; WX 838 ; N uni229C ; G 3119 +U 8861 ; WX 838 ; N uni229D ; G 3120 +U 8862 ; WX 838 ; N uni229E ; G 3121 +U 8863 ; WX 838 ; N uni229F ; G 3122 +U 8864 ; WX 838 ; N uni22A0 ; G 3123 +U 8865 ; WX 838 ; N uni22A1 ; G 3124 +U 8866 ; WX 871 ; N uni22A2 ; G 3125 +U 8867 ; WX 871 ; N uni22A3 ; G 3126 +U 8868 ; WX 871 ; N uni22A4 ; G 3127 +U 8869 ; WX 871 ; N perpendicular ; G 3128 +U 8870 ; WX 521 ; N uni22A6 ; G 3129 +U 8871 ; WX 521 ; N uni22A7 ; G 3130 +U 8872 ; WX 871 ; N uni22A8 ; G 3131 +U 8873 ; WX 871 ; N uni22A9 ; G 3132 +U 8874 ; WX 871 ; N uni22AA ; G 3133 +U 8875 ; WX 871 ; N uni22AB ; G 3134 +U 8876 ; WX 871 ; N uni22AC ; G 3135 +U 8877 ; WX 871 ; N uni22AD ; G 3136 +U 8878 ; WX 871 ; N uni22AE ; G 3137 +U 8879 ; WX 871 ; N uni22AF ; G 3138 +U 8880 ; WX 838 ; N uni22B0 ; G 3139 +U 8881 ; WX 838 ; N uni22B1 ; G 3140 +U 8882 ; WX 838 ; N uni22B2 ; G 3141 +U 8883 ; WX 838 ; N uni22B3 ; G 3142 +U 8884 ; WX 838 ; N uni22B4 ; G 3143 +U 8885 ; WX 838 ; N uni22B5 ; G 3144 +U 8886 ; WX 1000 ; N uni22B6 ; G 3145 +U 8887 ; WX 1000 ; N uni22B7 ; G 3146 +U 8888 ; WX 838 ; N uni22B8 ; G 3147 +U 8889 ; WX 838 ; N uni22B9 ; G 3148 +U 8890 ; WX 521 ; N uni22BA ; G 3149 +U 8891 ; WX 732 ; N uni22BB ; G 3150 +U 8892 ; WX 732 ; N uni22BC ; G 3151 +U 8893 ; WX 732 ; N uni22BD ; G 3152 +U 8894 ; WX 838 ; N uni22BE ; G 3153 +U 8895 ; WX 838 ; N uni22BF ; G 3154 +U 8896 ; WX 820 ; N uni22C0 ; G 3155 +U 8897 ; WX 820 ; N uni22C1 ; G 3156 +U 8898 ; WX 820 ; N uni22C2 ; G 3157 +U 8899 ; WX 820 ; N uni22C3 ; G 3158 +U 8900 ; WX 626 ; N uni22C4 ; G 3159 +U 8901 ; WX 318 ; N dotmath ; G 3160 +U 8902 ; WX 626 ; N uni22C6 ; G 3161 +U 8903 ; WX 838 ; N uni22C7 ; G 3162 +U 8904 ; WX 1000 ; N uni22C8 ; G 3163 +U 8905 ; WX 1000 ; N uni22C9 ; G 3164 +U 8906 ; WX 1000 ; N uni22CA ; G 3165 +U 8907 ; WX 1000 ; N uni22CB ; G 3166 +U 8908 ; WX 1000 ; N uni22CC ; G 3167 +U 8909 ; WX 838 ; N uni22CD ; G 3168 +U 8910 ; WX 732 ; N uni22CE ; G 3169 +U 8911 ; WX 732 ; N uni22CF ; G 3170 +U 8912 ; WX 838 ; N uni22D0 ; G 3171 +U 8913 ; WX 838 ; N uni22D1 ; G 3172 +U 8914 ; WX 838 ; N uni22D2 ; G 3173 +U 8915 ; WX 838 ; N uni22D3 ; G 3174 +U 8916 ; WX 838 ; N uni22D4 ; G 3175 +U 8917 ; WX 838 ; N uni22D5 ; G 3176 +U 8918 ; WX 838 ; N uni22D6 ; G 3177 +U 8919 ; WX 838 ; N uni22D7 ; G 3178 +U 8920 ; WX 1422 ; N uni22D8 ; G 3179 +U 8921 ; WX 1422 ; N uni22D9 ; G 3180 +U 8922 ; WX 838 ; N uni22DA ; G 3181 +U 8923 ; WX 838 ; N uni22DB ; G 3182 +U 8924 ; WX 838 ; N uni22DC ; G 3183 +U 8925 ; WX 838 ; N uni22DD ; G 3184 +U 8926 ; WX 838 ; N uni22DE ; G 3185 +U 8927 ; WX 838 ; N uni22DF ; G 3186 +U 8928 ; WX 838 ; N uni22E0 ; G 3187 +U 8929 ; WX 838 ; N uni22E1 ; G 3188 +U 8930 ; WX 838 ; N uni22E2 ; G 3189 +U 8931 ; WX 838 ; N uni22E3 ; G 3190 +U 8932 ; WX 838 ; N uni22E4 ; G 3191 +U 8933 ; WX 838 ; N uni22E5 ; G 3192 +U 8934 ; WX 838 ; N uni22E6 ; G 3193 +U 8935 ; WX 838 ; N uni22E7 ; G 3194 +U 8936 ; WX 838 ; N uni22E8 ; G 3195 +U 8937 ; WX 838 ; N uni22E9 ; G 3196 +U 8938 ; WX 838 ; N uni22EA ; G 3197 +U 8939 ; WX 838 ; N uni22EB ; G 3198 +U 8940 ; WX 838 ; N uni22EC ; G 3199 +U 8941 ; WX 838 ; N uni22ED ; G 3200 +U 8942 ; WX 1000 ; N uni22EE ; G 3201 +U 8943 ; WX 1000 ; N uni22EF ; G 3202 +U 8944 ; WX 1000 ; N uni22F0 ; G 3203 +U 8945 ; WX 1000 ; N uni22F1 ; G 3204 +U 8946 ; WX 1000 ; N uni22F2 ; G 3205 +U 8947 ; WX 871 ; N uni22F3 ; G 3206 +U 8948 ; WX 718 ; N uni22F4 ; G 3207 +U 8949 ; WX 871 ; N uni22F5 ; G 3208 +U 8950 ; WX 871 ; N uni22F6 ; G 3209 +U 8951 ; WX 718 ; N uni22F7 ; G 3210 +U 8952 ; WX 871 ; N uni22F8 ; G 3211 +U 8953 ; WX 871 ; N uni22F9 ; G 3212 +U 8954 ; WX 1000 ; N uni22FA ; G 3213 +U 8955 ; WX 871 ; N uni22FB ; G 3214 +U 8956 ; WX 718 ; N uni22FC ; G 3215 +U 8957 ; WX 871 ; N uni22FD ; G 3216 +U 8958 ; WX 718 ; N uni22FE ; G 3217 +U 8959 ; WX 871 ; N uni22FF ; G 3218 +U 8960 ; WX 602 ; N uni2300 ; G 3219 +U 8961 ; WX 602 ; N uni2301 ; G 3220 +U 8962 ; WX 635 ; N house ; G 3221 +U 8963 ; WX 838 ; N uni2303 ; G 3222 +U 8964 ; WX 838 ; N uni2304 ; G 3223 +U 8965 ; WX 838 ; N uni2305 ; G 3224 +U 8966 ; WX 838 ; N uni2306 ; G 3225 +U 8967 ; WX 488 ; N uni2307 ; G 3226 +U 8968 ; WX 390 ; N uni2308 ; G 3227 +U 8969 ; WX 390 ; N uni2309 ; G 3228 +U 8970 ; WX 390 ; N uni230A ; G 3229 +U 8971 ; WX 390 ; N uni230B ; G 3230 +U 8972 ; WX 809 ; N uni230C ; G 3231 +U 8973 ; WX 809 ; N uni230D ; G 3232 +U 8974 ; WX 809 ; N uni230E ; G 3233 +U 8975 ; WX 809 ; N uni230F ; G 3234 +U 8976 ; WX 838 ; N revlogicalnot ; G 3235 +U 8977 ; WX 513 ; N uni2311 ; G 3236 +U 8984 ; WX 1000 ; N uni2318 ; G 3237 +U 8985 ; WX 838 ; N uni2319 ; G 3238 +U 8988 ; WX 469 ; N uni231C ; G 3239 +U 8989 ; WX 469 ; N uni231D ; G 3240 +U 8990 ; WX 469 ; N uni231E ; G 3241 +U 8991 ; WX 469 ; N uni231F ; G 3242 +U 8992 ; WX 521 ; N integraltp ; G 3243 +U 8993 ; WX 521 ; N integralbt ; G 3244 +U 8996 ; WX 1152 ; N uni2324 ; G 3245 +U 8997 ; WX 1152 ; N uni2325 ; G 3246 +U 8998 ; WX 1414 ; N uni2326 ; G 3247 +U 8999 ; WX 1152 ; N uni2327 ; G 3248 +U 9000 ; WX 1443 ; N uni2328 ; G 3249 +U 9003 ; WX 1414 ; N uni232B ; G 3250 +U 9004 ; WX 873 ; N uni232C ; G 3251 +U 9075 ; WX 338 ; N uni2373 ; G 3252 +U 9076 ; WX 635 ; N uni2374 ; G 3253 +U 9077 ; WX 837 ; N uni2375 ; G 3254 +U 9082 ; WX 659 ; N uni237A ; G 3255 +U 9085 ; WX 757 ; N uni237D ; G 3256 +U 9095 ; WX 1152 ; N uni2387 ; G 3257 +U 9108 ; WX 873 ; N uni2394 ; G 3258 +U 9115 ; WX 500 ; N uni239B ; G 3259 +U 9116 ; WX 500 ; N uni239C ; G 3260 +U 9117 ; WX 500 ; N uni239D ; G 3261 +U 9118 ; WX 500 ; N uni239E ; G 3262 +U 9119 ; WX 500 ; N uni239F ; G 3263 +U 9120 ; WX 500 ; N uni23A0 ; G 3264 +U 9121 ; WX 500 ; N uni23A1 ; G 3265 +U 9122 ; WX 500 ; N uni23A2 ; G 3266 +U 9123 ; WX 500 ; N uni23A3 ; G 3267 +U 9124 ; WX 500 ; N uni23A4 ; G 3268 +U 9125 ; WX 500 ; N uni23A5 ; G 3269 +U 9126 ; WX 500 ; N uni23A6 ; G 3270 +U 9127 ; WX 750 ; N uni23A7 ; G 3271 +U 9128 ; WX 750 ; N uni23A8 ; G 3272 +U 9129 ; WX 750 ; N uni23A9 ; G 3273 +U 9130 ; WX 750 ; N uni23AA ; G 3274 +U 9131 ; WX 750 ; N uni23AB ; G 3275 +U 9132 ; WX 750 ; N uni23AC ; G 3276 +U 9133 ; WX 750 ; N uni23AD ; G 3277 +U 9134 ; WX 521 ; N uni23AE ; G 3278 +U 9166 ; WX 838 ; N uni23CE ; G 3279 +U 9167 ; WX 945 ; N uni23CF ; G 3280 +U 9187 ; WX 873 ; N uni23E3 ; G 3281 +U 9189 ; WX 769 ; N uni23E5 ; G 3282 +U 9192 ; WX 636 ; N uni23E8 ; G 3283 +U 9250 ; WX 635 ; N uni2422 ; G 3284 +U 9251 ; WX 635 ; N uni2423 ; G 3285 +U 9312 ; WX 896 ; N uni2460 ; G 3286 +U 9313 ; WX 896 ; N uni2461 ; G 3287 +U 9314 ; WX 896 ; N uni2462 ; G 3288 +U 9315 ; WX 896 ; N uni2463 ; G 3289 +U 9316 ; WX 896 ; N uni2464 ; G 3290 +U 9317 ; WX 896 ; N uni2465 ; G 3291 +U 9318 ; WX 896 ; N uni2466 ; G 3292 +U 9319 ; WX 896 ; N uni2467 ; G 3293 +U 9320 ; WX 896 ; N uni2468 ; G 3294 +U 9321 ; WX 896 ; N uni2469 ; G 3295 +U 9472 ; WX 602 ; N SF100000 ; G 3296 +U 9473 ; WX 602 ; N uni2501 ; G 3297 +U 9474 ; WX 602 ; N SF110000 ; G 3298 +U 9475 ; WX 602 ; N uni2503 ; G 3299 +U 9476 ; WX 602 ; N uni2504 ; G 3300 +U 9477 ; WX 602 ; N uni2505 ; G 3301 +U 9478 ; WX 602 ; N uni2506 ; G 3302 +U 9479 ; WX 602 ; N uni2507 ; G 3303 +U 9480 ; WX 602 ; N uni2508 ; G 3304 +U 9481 ; WX 602 ; N uni2509 ; G 3305 +U 9482 ; WX 602 ; N uni250A ; G 3306 +U 9483 ; WX 602 ; N uni250B ; G 3307 +U 9484 ; WX 602 ; N SF010000 ; G 3308 +U 9485 ; WX 602 ; N uni250D ; G 3309 +U 9486 ; WX 602 ; N uni250E ; G 3310 +U 9487 ; WX 602 ; N uni250F ; G 3311 +U 9488 ; WX 602 ; N SF030000 ; G 3312 +U 9489 ; WX 602 ; N uni2511 ; G 3313 +U 9490 ; WX 602 ; N uni2512 ; G 3314 +U 9491 ; WX 602 ; N uni2513 ; G 3315 +U 9492 ; WX 602 ; N SF020000 ; G 3316 +U 9493 ; WX 602 ; N uni2515 ; G 3317 +U 9494 ; WX 602 ; N uni2516 ; G 3318 +U 9495 ; WX 602 ; N uni2517 ; G 3319 +U 9496 ; WX 602 ; N SF040000 ; G 3320 +U 9497 ; WX 602 ; N uni2519 ; G 3321 +U 9498 ; WX 602 ; N uni251A ; G 3322 +U 9499 ; WX 602 ; N uni251B ; G 3323 +U 9500 ; WX 602 ; N SF080000 ; G 3324 +U 9501 ; WX 602 ; N uni251D ; G 3325 +U 9502 ; WX 602 ; N uni251E ; G 3326 +U 9503 ; WX 602 ; N uni251F ; G 3327 +U 9504 ; WX 602 ; N uni2520 ; G 3328 +U 9505 ; WX 602 ; N uni2521 ; G 3329 +U 9506 ; WX 602 ; N uni2522 ; G 3330 +U 9507 ; WX 602 ; N uni2523 ; G 3331 +U 9508 ; WX 602 ; N SF090000 ; G 3332 +U 9509 ; WX 602 ; N uni2525 ; G 3333 +U 9510 ; WX 602 ; N uni2526 ; G 3334 +U 9511 ; WX 602 ; N uni2527 ; G 3335 +U 9512 ; WX 602 ; N uni2528 ; G 3336 +U 9513 ; WX 602 ; N uni2529 ; G 3337 +U 9514 ; WX 602 ; N uni252A ; G 3338 +U 9515 ; WX 602 ; N uni252B ; G 3339 +U 9516 ; WX 602 ; N SF060000 ; G 3340 +U 9517 ; WX 602 ; N uni252D ; G 3341 +U 9518 ; WX 602 ; N uni252E ; G 3342 +U 9519 ; WX 602 ; N uni252F ; G 3343 +U 9520 ; WX 602 ; N uni2530 ; G 3344 +U 9521 ; WX 602 ; N uni2531 ; G 3345 +U 9522 ; WX 602 ; N uni2532 ; G 3346 +U 9523 ; WX 602 ; N uni2533 ; G 3347 +U 9524 ; WX 602 ; N SF070000 ; G 3348 +U 9525 ; WX 602 ; N uni2535 ; G 3349 +U 9526 ; WX 602 ; N uni2536 ; G 3350 +U 9527 ; WX 602 ; N uni2537 ; G 3351 +U 9528 ; WX 602 ; N uni2538 ; G 3352 +U 9529 ; WX 602 ; N uni2539 ; G 3353 +U 9530 ; WX 602 ; N uni253A ; G 3354 +U 9531 ; WX 602 ; N uni253B ; G 3355 +U 9532 ; WX 602 ; N SF050000 ; G 3356 +U 9533 ; WX 602 ; N uni253D ; G 3357 +U 9534 ; WX 602 ; N uni253E ; G 3358 +U 9535 ; WX 602 ; N uni253F ; G 3359 +U 9536 ; WX 602 ; N uni2540 ; G 3360 +U 9537 ; WX 602 ; N uni2541 ; G 3361 +U 9538 ; WX 602 ; N uni2542 ; G 3362 +U 9539 ; WX 602 ; N uni2543 ; G 3363 +U 9540 ; WX 602 ; N uni2544 ; G 3364 +U 9541 ; WX 602 ; N uni2545 ; G 3365 +U 9542 ; WX 602 ; N uni2546 ; G 3366 +U 9543 ; WX 602 ; N uni2547 ; G 3367 +U 9544 ; WX 602 ; N uni2548 ; G 3368 +U 9545 ; WX 602 ; N uni2549 ; G 3369 +U 9546 ; WX 602 ; N uni254A ; G 3370 +U 9547 ; WX 602 ; N uni254B ; G 3371 +U 9548 ; WX 602 ; N uni254C ; G 3372 +U 9549 ; WX 602 ; N uni254D ; G 3373 +U 9550 ; WX 602 ; N uni254E ; G 3374 +U 9551 ; WX 602 ; N uni254F ; G 3375 +U 9552 ; WX 602 ; N SF430000 ; G 3376 +U 9553 ; WX 602 ; N SF240000 ; G 3377 +U 9554 ; WX 602 ; N SF510000 ; G 3378 +U 9555 ; WX 602 ; N SF520000 ; G 3379 +U 9556 ; WX 602 ; N SF390000 ; G 3380 +U 9557 ; WX 602 ; N SF220000 ; G 3381 +U 9558 ; WX 602 ; N SF210000 ; G 3382 +U 9559 ; WX 602 ; N SF250000 ; G 3383 +U 9560 ; WX 602 ; N SF500000 ; G 3384 +U 9561 ; WX 602 ; N SF490000 ; G 3385 +U 9562 ; WX 602 ; N SF380000 ; G 3386 +U 9563 ; WX 602 ; N SF280000 ; G 3387 +U 9564 ; WX 602 ; N SF270000 ; G 3388 +U 9565 ; WX 602 ; N SF260000 ; G 3389 +U 9566 ; WX 602 ; N SF360000 ; G 3390 +U 9567 ; WX 602 ; N SF370000 ; G 3391 +U 9568 ; WX 602 ; N SF420000 ; G 3392 +U 9569 ; WX 602 ; N SF190000 ; G 3393 +U 9570 ; WX 602 ; N SF200000 ; G 3394 +U 9571 ; WX 602 ; N SF230000 ; G 3395 +U 9572 ; WX 602 ; N SF470000 ; G 3396 +U 9573 ; WX 602 ; N SF480000 ; G 3397 +U 9574 ; WX 602 ; N SF410000 ; G 3398 +U 9575 ; WX 602 ; N SF450000 ; G 3399 +U 9576 ; WX 602 ; N SF460000 ; G 3400 +U 9577 ; WX 602 ; N SF400000 ; G 3401 +U 9578 ; WX 602 ; N SF540000 ; G 3402 +U 9579 ; WX 602 ; N SF530000 ; G 3403 +U 9580 ; WX 602 ; N SF440000 ; G 3404 +U 9581 ; WX 602 ; N uni256D ; G 3405 +U 9582 ; WX 602 ; N uni256E ; G 3406 +U 9583 ; WX 602 ; N uni256F ; G 3407 +U 9584 ; WX 602 ; N uni2570 ; G 3408 +U 9585 ; WX 602 ; N uni2571 ; G 3409 +U 9586 ; WX 602 ; N uni2572 ; G 3410 +U 9587 ; WX 602 ; N uni2573 ; G 3411 +U 9588 ; WX 602 ; N uni2574 ; G 3412 +U 9589 ; WX 602 ; N uni2575 ; G 3413 +U 9590 ; WX 602 ; N uni2576 ; G 3414 +U 9591 ; WX 602 ; N uni2577 ; G 3415 +U 9592 ; WX 602 ; N uni2578 ; G 3416 +U 9593 ; WX 602 ; N uni2579 ; G 3417 +U 9594 ; WX 602 ; N uni257A ; G 3418 +U 9595 ; WX 602 ; N uni257B ; G 3419 +U 9596 ; WX 602 ; N uni257C ; G 3420 +U 9597 ; WX 602 ; N uni257D ; G 3421 +U 9598 ; WX 602 ; N uni257E ; G 3422 +U 9599 ; WX 602 ; N uni257F ; G 3423 +U 9600 ; WX 769 ; N upblock ; G 3424 +U 9601 ; WX 769 ; N uni2581 ; G 3425 +U 9602 ; WX 769 ; N uni2582 ; G 3426 +U 9603 ; WX 769 ; N uni2583 ; G 3427 +U 9604 ; WX 769 ; N dnblock ; G 3428 +U 9605 ; WX 769 ; N uni2585 ; G 3429 +U 9606 ; WX 769 ; N uni2586 ; G 3430 +U 9607 ; WX 769 ; N uni2587 ; G 3431 +U 9608 ; WX 769 ; N block ; G 3432 +U 9609 ; WX 769 ; N uni2589 ; G 3433 +U 9610 ; WX 769 ; N uni258A ; G 3434 +U 9611 ; WX 769 ; N uni258B ; G 3435 +U 9612 ; WX 769 ; N lfblock ; G 3436 +U 9613 ; WX 769 ; N uni258D ; G 3437 +U 9614 ; WX 769 ; N uni258E ; G 3438 +U 9615 ; WX 769 ; N uni258F ; G 3439 +U 9616 ; WX 769 ; N rtblock ; G 3440 +U 9617 ; WX 769 ; N ltshade ; G 3441 +U 9618 ; WX 769 ; N shade ; G 3442 +U 9619 ; WX 769 ; N dkshade ; G 3443 +U 9620 ; WX 769 ; N uni2594 ; G 3444 +U 9621 ; WX 769 ; N uni2595 ; G 3445 +U 9622 ; WX 769 ; N uni2596 ; G 3446 +U 9623 ; WX 769 ; N uni2597 ; G 3447 +U 9624 ; WX 769 ; N uni2598 ; G 3448 +U 9625 ; WX 769 ; N uni2599 ; G 3449 +U 9626 ; WX 769 ; N uni259A ; G 3450 +U 9627 ; WX 769 ; N uni259B ; G 3451 +U 9628 ; WX 769 ; N uni259C ; G 3452 +U 9629 ; WX 769 ; N uni259D ; G 3453 +U 9630 ; WX 769 ; N uni259E ; G 3454 +U 9631 ; WX 769 ; N uni259F ; G 3455 +U 9632 ; WX 945 ; N filledbox ; G 3456 +U 9633 ; WX 945 ; N H22073 ; G 3457 +U 9634 ; WX 945 ; N uni25A2 ; G 3458 +U 9635 ; WX 945 ; N uni25A3 ; G 3459 +U 9636 ; WX 945 ; N uni25A4 ; G 3460 +U 9637 ; WX 945 ; N uni25A5 ; G 3461 +U 9638 ; WX 945 ; N uni25A6 ; G 3462 +U 9639 ; WX 945 ; N uni25A7 ; G 3463 +U 9640 ; WX 945 ; N uni25A8 ; G 3464 +U 9641 ; WX 945 ; N uni25A9 ; G 3465 +U 9642 ; WX 678 ; N H18543 ; G 3466 +U 9643 ; WX 678 ; N H18551 ; G 3467 +U 9644 ; WX 945 ; N filledrect ; G 3468 +U 9645 ; WX 945 ; N uni25AD ; G 3469 +U 9646 ; WX 550 ; N uni25AE ; G 3470 +U 9647 ; WX 550 ; N uni25AF ; G 3471 +U 9648 ; WX 769 ; N uni25B0 ; G 3472 +U 9649 ; WX 769 ; N uni25B1 ; G 3473 +U 9650 ; WX 769 ; N triagup ; G 3474 +U 9651 ; WX 769 ; N uni25B3 ; G 3475 +U 9652 ; WX 502 ; N uni25B4 ; G 3476 +U 9653 ; WX 502 ; N uni25B5 ; G 3477 +U 9654 ; WX 769 ; N uni25B6 ; G 3478 +U 9655 ; WX 769 ; N uni25B7 ; G 3479 +U 9656 ; WX 502 ; N uni25B8 ; G 3480 +U 9657 ; WX 502 ; N uni25B9 ; G 3481 +U 9658 ; WX 769 ; N triagrt ; G 3482 +U 9659 ; WX 769 ; N uni25BB ; G 3483 +U 9660 ; WX 769 ; N triagdn ; G 3484 +U 9661 ; WX 769 ; N uni25BD ; G 3485 +U 9662 ; WX 502 ; N uni25BE ; G 3486 +U 9663 ; WX 502 ; N uni25BF ; G 3487 +U 9664 ; WX 769 ; N uni25C0 ; G 3488 +U 9665 ; WX 769 ; N uni25C1 ; G 3489 +U 9666 ; WX 502 ; N uni25C2 ; G 3490 +U 9667 ; WX 502 ; N uni25C3 ; G 3491 +U 9668 ; WX 769 ; N triaglf ; G 3492 +U 9669 ; WX 769 ; N uni25C5 ; G 3493 +U 9670 ; WX 769 ; N uni25C6 ; G 3494 +U 9671 ; WX 769 ; N uni25C7 ; G 3495 +U 9672 ; WX 769 ; N uni25C8 ; G 3496 +U 9673 ; WX 873 ; N uni25C9 ; G 3497 +U 9674 ; WX 494 ; N lozenge ; G 3498 +U 9675 ; WX 873 ; N circle ; G 3499 +U 9676 ; WX 873 ; N uni25CC ; G 3500 +U 9677 ; WX 873 ; N uni25CD ; G 3501 +U 9678 ; WX 873 ; N uni25CE ; G 3502 +U 9679 ; WX 873 ; N H18533 ; G 3503 +U 9680 ; WX 873 ; N uni25D0 ; G 3504 +U 9681 ; WX 873 ; N uni25D1 ; G 3505 +U 9682 ; WX 873 ; N uni25D2 ; G 3506 +U 9683 ; WX 873 ; N uni25D3 ; G 3507 +U 9684 ; WX 873 ; N uni25D4 ; G 3508 +U 9685 ; WX 873 ; N uni25D5 ; G 3509 +U 9686 ; WX 527 ; N uni25D6 ; G 3510 +U 9687 ; WX 527 ; N uni25D7 ; G 3511 +U 9688 ; WX 791 ; N invbullet ; G 3512 +U 9689 ; WX 970 ; N invcircle ; G 3513 +U 9690 ; WX 970 ; N uni25DA ; G 3514 +U 9691 ; WX 970 ; N uni25DB ; G 3515 +U 9692 ; WX 387 ; N uni25DC ; G 3516 +U 9693 ; WX 387 ; N uni25DD ; G 3517 +U 9694 ; WX 387 ; N uni25DE ; G 3518 +U 9695 ; WX 387 ; N uni25DF ; G 3519 +U 9696 ; WX 769 ; N uni25E0 ; G 3520 +U 9697 ; WX 769 ; N uni25E1 ; G 3521 +U 9698 ; WX 769 ; N uni25E2 ; G 3522 +U 9699 ; WX 769 ; N uni25E3 ; G 3523 +U 9700 ; WX 769 ; N uni25E4 ; G 3524 +U 9701 ; WX 769 ; N uni25E5 ; G 3525 +U 9702 ; WX 590 ; N openbullet ; G 3526 +U 9703 ; WX 945 ; N uni25E7 ; G 3527 +U 9704 ; WX 945 ; N uni25E8 ; G 3528 +U 9705 ; WX 945 ; N uni25E9 ; G 3529 +U 9706 ; WX 945 ; N uni25EA ; G 3530 +U 9707 ; WX 945 ; N uni25EB ; G 3531 +U 9708 ; WX 769 ; N uni25EC ; G 3532 +U 9709 ; WX 769 ; N uni25ED ; G 3533 +U 9710 ; WX 769 ; N uni25EE ; G 3534 +U 9711 ; WX 1119 ; N uni25EF ; G 3535 +U 9712 ; WX 945 ; N uni25F0 ; G 3536 +U 9713 ; WX 945 ; N uni25F1 ; G 3537 +U 9714 ; WX 945 ; N uni25F2 ; G 3538 +U 9715 ; WX 945 ; N uni25F3 ; G 3539 +U 9716 ; WX 873 ; N uni25F4 ; G 3540 +U 9717 ; WX 873 ; N uni25F5 ; G 3541 +U 9718 ; WX 873 ; N uni25F6 ; G 3542 +U 9719 ; WX 873 ; N uni25F7 ; G 3543 +U 9720 ; WX 769 ; N uni25F8 ; G 3544 +U 9721 ; WX 769 ; N uni25F9 ; G 3545 +U 9722 ; WX 769 ; N uni25FA ; G 3546 +U 9723 ; WX 830 ; N uni25FB ; G 3547 +U 9724 ; WX 830 ; N uni25FC ; G 3548 +U 9725 ; WX 732 ; N uni25FD ; G 3549 +U 9726 ; WX 732 ; N uni25FE ; G 3550 +U 9727 ; WX 769 ; N uni25FF ; G 3551 +U 9728 ; WX 896 ; N uni2600 ; G 3552 +U 9729 ; WX 1000 ; N uni2601 ; G 3553 +U 9730 ; WX 896 ; N uni2602 ; G 3554 +U 9731 ; WX 896 ; N uni2603 ; G 3555 +U 9732 ; WX 896 ; N uni2604 ; G 3556 +U 9733 ; WX 896 ; N uni2605 ; G 3557 +U 9734 ; WX 896 ; N uni2606 ; G 3558 +U 9735 ; WX 573 ; N uni2607 ; G 3559 +U 9736 ; WX 896 ; N uni2608 ; G 3560 +U 9737 ; WX 896 ; N uni2609 ; G 3561 +U 9738 ; WX 888 ; N uni260A ; G 3562 +U 9739 ; WX 888 ; N uni260B ; G 3563 +U 9740 ; WX 671 ; N uni260C ; G 3564 +U 9741 ; WX 1013 ; N uni260D ; G 3565 +U 9742 ; WX 1246 ; N uni260E ; G 3566 +U 9743 ; WX 1250 ; N uni260F ; G 3567 +U 9744 ; WX 896 ; N uni2610 ; G 3568 +U 9745 ; WX 896 ; N uni2611 ; G 3569 +U 9746 ; WX 896 ; N uni2612 ; G 3570 +U 9747 ; WX 532 ; N uni2613 ; G 3571 +U 9748 ; WX 896 ; N uni2614 ; G 3572 +U 9749 ; WX 896 ; N uni2615 ; G 3573 +U 9750 ; WX 896 ; N uni2616 ; G 3574 +U 9751 ; WX 896 ; N uni2617 ; G 3575 +U 9752 ; WX 896 ; N uni2618 ; G 3576 +U 9753 ; WX 896 ; N uni2619 ; G 3577 +U 9754 ; WX 896 ; N uni261A ; G 3578 +U 9755 ; WX 896 ; N uni261B ; G 3579 +U 9756 ; WX 896 ; N uni261C ; G 3580 +U 9757 ; WX 609 ; N uni261D ; G 3581 +U 9758 ; WX 896 ; N uni261E ; G 3582 +U 9759 ; WX 609 ; N uni261F ; G 3583 +U 9760 ; WX 896 ; N uni2620 ; G 3584 +U 9761 ; WX 896 ; N uni2621 ; G 3585 +U 9762 ; WX 896 ; N uni2622 ; G 3586 +U 9763 ; WX 896 ; N uni2623 ; G 3587 +U 9764 ; WX 669 ; N uni2624 ; G 3588 +U 9765 ; WX 746 ; N uni2625 ; G 3589 +U 9766 ; WX 649 ; N uni2626 ; G 3590 +U 9767 ; WX 784 ; N uni2627 ; G 3591 +U 9768 ; WX 545 ; N uni2628 ; G 3592 +U 9769 ; WX 896 ; N uni2629 ; G 3593 +U 9770 ; WX 896 ; N uni262A ; G 3594 +U 9771 ; WX 896 ; N uni262B ; G 3595 +U 9772 ; WX 710 ; N uni262C ; G 3596 +U 9773 ; WX 896 ; N uni262D ; G 3597 +U 9774 ; WX 896 ; N uni262E ; G 3598 +U 9775 ; WX 896 ; N uni262F ; G 3599 +U 9776 ; WX 890 ; N uni2630 ; G 3600 +U 9777 ; WX 890 ; N uni2631 ; G 3601 +U 9778 ; WX 890 ; N uni2632 ; G 3602 +U 9779 ; WX 890 ; N uni2633 ; G 3603 +U 9780 ; WX 890 ; N uni2634 ; G 3604 +U 9781 ; WX 890 ; N uni2635 ; G 3605 +U 9782 ; WX 890 ; N uni2636 ; G 3606 +U 9783 ; WX 890 ; N uni2637 ; G 3607 +U 9784 ; WX 896 ; N uni2638 ; G 3608 +U 9785 ; WX 1042 ; N uni2639 ; G 3609 +U 9786 ; WX 1042 ; N smileface ; G 3610 +U 9787 ; WX 1042 ; N invsmileface ; G 3611 +U 9788 ; WX 896 ; N sun ; G 3612 +U 9789 ; WX 896 ; N uni263D ; G 3613 +U 9790 ; WX 896 ; N uni263E ; G 3614 +U 9791 ; WX 614 ; N uni263F ; G 3615 +U 9792 ; WX 732 ; N female ; G 3616 +U 9793 ; WX 732 ; N uni2641 ; G 3617 +U 9794 ; WX 896 ; N male ; G 3618 +U 9795 ; WX 896 ; N uni2643 ; G 3619 +U 9796 ; WX 896 ; N uni2644 ; G 3620 +U 9797 ; WX 896 ; N uni2645 ; G 3621 +U 9798 ; WX 896 ; N uni2646 ; G 3622 +U 9799 ; WX 896 ; N uni2647 ; G 3623 +U 9800 ; WX 896 ; N uni2648 ; G 3624 +U 9801 ; WX 896 ; N uni2649 ; G 3625 +U 9802 ; WX 896 ; N uni264A ; G 3626 +U 9803 ; WX 896 ; N uni264B ; G 3627 +U 9804 ; WX 896 ; N uni264C ; G 3628 +U 9805 ; WX 896 ; N uni264D ; G 3629 +U 9806 ; WX 896 ; N uni264E ; G 3630 +U 9807 ; WX 896 ; N uni264F ; G 3631 +U 9808 ; WX 896 ; N uni2650 ; G 3632 +U 9809 ; WX 896 ; N uni2651 ; G 3633 +U 9810 ; WX 896 ; N uni2652 ; G 3634 +U 9811 ; WX 896 ; N uni2653 ; G 3635 +U 9812 ; WX 896 ; N uni2654 ; G 3636 +U 9813 ; WX 896 ; N uni2655 ; G 3637 +U 9814 ; WX 896 ; N uni2656 ; G 3638 +U 9815 ; WX 896 ; N uni2657 ; G 3639 +U 9816 ; WX 896 ; N uni2658 ; G 3640 +U 9817 ; WX 896 ; N uni2659 ; G 3641 +U 9818 ; WX 896 ; N uni265A ; G 3642 +U 9819 ; WX 896 ; N uni265B ; G 3643 +U 9820 ; WX 896 ; N uni265C ; G 3644 +U 9821 ; WX 896 ; N uni265D ; G 3645 +U 9822 ; WX 896 ; N uni265E ; G 3646 +U 9823 ; WX 896 ; N uni265F ; G 3647 +U 9824 ; WX 896 ; N spade ; G 3648 +U 9825 ; WX 896 ; N uni2661 ; G 3649 +U 9826 ; WX 896 ; N uni2662 ; G 3650 +U 9827 ; WX 896 ; N club ; G 3651 +U 9828 ; WX 896 ; N uni2664 ; G 3652 +U 9829 ; WX 896 ; N heart ; G 3653 +U 9830 ; WX 896 ; N diamond ; G 3654 +U 9831 ; WX 896 ; N uni2667 ; G 3655 +U 9832 ; WX 896 ; N uni2668 ; G 3656 +U 9833 ; WX 472 ; N uni2669 ; G 3657 +U 9834 ; WX 638 ; N musicalnote ; G 3658 +U 9835 ; WX 896 ; N musicalnotedbl ; G 3659 +U 9836 ; WX 896 ; N uni266C ; G 3660 +U 9837 ; WX 472 ; N uni266D ; G 3661 +U 9838 ; WX 357 ; N uni266E ; G 3662 +U 9839 ; WX 484 ; N uni266F ; G 3663 +U 9840 ; WX 748 ; N uni2670 ; G 3664 +U 9841 ; WX 766 ; N uni2671 ; G 3665 +U 9842 ; WX 896 ; N uni2672 ; G 3666 +U 9843 ; WX 896 ; N uni2673 ; G 3667 +U 9844 ; WX 896 ; N uni2674 ; G 3668 +U 9845 ; WX 896 ; N uni2675 ; G 3669 +U 9846 ; WX 896 ; N uni2676 ; G 3670 +U 9847 ; WX 896 ; N uni2677 ; G 3671 +U 9848 ; WX 896 ; N uni2678 ; G 3672 +U 9849 ; WX 896 ; N uni2679 ; G 3673 +U 9850 ; WX 896 ; N uni267A ; G 3674 +U 9851 ; WX 896 ; N uni267B ; G 3675 +U 9852 ; WX 896 ; N uni267C ; G 3676 +U 9853 ; WX 896 ; N uni267D ; G 3677 +U 9854 ; WX 896 ; N uni267E ; G 3678 +U 9855 ; WX 896 ; N uni267F ; G 3679 +U 9856 ; WX 869 ; N uni2680 ; G 3680 +U 9857 ; WX 869 ; N uni2681 ; G 3681 +U 9858 ; WX 869 ; N uni2682 ; G 3682 +U 9859 ; WX 869 ; N uni2683 ; G 3683 +U 9860 ; WX 869 ; N uni2684 ; G 3684 +U 9861 ; WX 869 ; N uni2685 ; G 3685 +U 9862 ; WX 890 ; N uni2686 ; G 3686 +U 9863 ; WX 890 ; N uni2687 ; G 3687 +U 9864 ; WX 890 ; N uni2688 ; G 3688 +U 9865 ; WX 890 ; N uni2689 ; G 3689 +U 9866 ; WX 890 ; N uni268A ; G 3690 +U 9867 ; WX 890 ; N uni268B ; G 3691 +U 9868 ; WX 890 ; N uni268C ; G 3692 +U 9869 ; WX 890 ; N uni268D ; G 3693 +U 9870 ; WX 890 ; N uni268E ; G 3694 +U 9871 ; WX 890 ; N uni268F ; G 3695 +U 9872 ; WX 750 ; N uni2690 ; G 3696 +U 9873 ; WX 750 ; N uni2691 ; G 3697 +U 9874 ; WX 890 ; N uni2692 ; G 3698 +U 9875 ; WX 816 ; N uni2693 ; G 3699 +U 9876 ; WX 716 ; N uni2694 ; G 3700 +U 9877 ; WX 537 ; N uni2695 ; G 3701 +U 9878 ; WX 852 ; N uni2696 ; G 3702 +U 9879 ; WX 890 ; N uni2697 ; G 3703 +U 9880 ; WX 684 ; N uni2698 ; G 3704 +U 9881 ; WX 896 ; N uni2699 ; G 3705 +U 9882 ; WX 708 ; N uni269A ; G 3706 +U 9883 ; WX 890 ; N uni269B ; G 3707 +U 9884 ; WX 890 ; N uni269C ; G 3708 +U 9886 ; WX 896 ; N uni269E ; G 3709 +U 9887 ; WX 896 ; N uni269F ; G 3710 +U 9888 ; WX 890 ; N uni26A0 ; G 3711 +U 9889 ; WX 702 ; N uni26A1 ; G 3712 +U 9890 ; WX 1004 ; N uni26A2 ; G 3713 +U 9891 ; WX 1089 ; N uni26A3 ; G 3714 +U 9892 ; WX 1175 ; N uni26A4 ; G 3715 +U 9893 ; WX 903 ; N uni26A5 ; G 3716 +U 9894 ; WX 838 ; N uni26A6 ; G 3717 +U 9895 ; WX 838 ; N uni26A7 ; G 3718 +U 9896 ; WX 838 ; N uni26A8 ; G 3719 +U 9897 ; WX 838 ; N uni26A9 ; G 3720 +U 9898 ; WX 838 ; N uni26AA ; G 3721 +U 9899 ; WX 838 ; N uni26AB ; G 3722 +U 9900 ; WX 838 ; N uni26AC ; G 3723 +U 9901 ; WX 838 ; N uni26AD ; G 3724 +U 9902 ; WX 838 ; N uni26AE ; G 3725 +U 9903 ; WX 838 ; N uni26AF ; G 3726 +U 9904 ; WX 844 ; N uni26B0 ; G 3727 +U 9905 ; WX 838 ; N uni26B1 ; G 3728 +U 9906 ; WX 732 ; N uni26B2 ; G 3729 +U 9907 ; WX 732 ; N uni26B3 ; G 3730 +U 9908 ; WX 732 ; N uni26B4 ; G 3731 +U 9909 ; WX 732 ; N uni26B5 ; G 3732 +U 9910 ; WX 850 ; N uni26B6 ; G 3733 +U 9911 ; WX 732 ; N uni26B7 ; G 3734 +U 9912 ; WX 732 ; N uni26B8 ; G 3735 +U 9920 ; WX 838 ; N uni26C0 ; G 3736 +U 9921 ; WX 838 ; N uni26C1 ; G 3737 +U 9922 ; WX 838 ; N uni26C2 ; G 3738 +U 9923 ; WX 838 ; N uni26C3 ; G 3739 +U 9954 ; WX 732 ; N uni26E2 ; G 3740 +U 9985 ; WX 838 ; N uni2701 ; G 3741 +U 9986 ; WX 838 ; N uni2702 ; G 3742 +U 9987 ; WX 838 ; N uni2703 ; G 3743 +U 9988 ; WX 838 ; N uni2704 ; G 3744 +U 9990 ; WX 838 ; N uni2706 ; G 3745 +U 9991 ; WX 838 ; N uni2707 ; G 3746 +U 9992 ; WX 838 ; N uni2708 ; G 3747 +U 9993 ; WX 838 ; N uni2709 ; G 3748 +U 9996 ; WX 838 ; N uni270C ; G 3749 +U 9997 ; WX 838 ; N uni270D ; G 3750 +U 9998 ; WX 838 ; N uni270E ; G 3751 +U 9999 ; WX 838 ; N uni270F ; G 3752 +U 10000 ; WX 838 ; N uni2710 ; G 3753 +U 10001 ; WX 838 ; N uni2711 ; G 3754 +U 10002 ; WX 838 ; N uni2712 ; G 3755 +U 10003 ; WX 838 ; N uni2713 ; G 3756 +U 10004 ; WX 838 ; N uni2714 ; G 3757 +U 10005 ; WX 838 ; N uni2715 ; G 3758 +U 10006 ; WX 838 ; N uni2716 ; G 3759 +U 10007 ; WX 838 ; N uni2717 ; G 3760 +U 10008 ; WX 838 ; N uni2718 ; G 3761 +U 10009 ; WX 838 ; N uni2719 ; G 3762 +U 10010 ; WX 838 ; N uni271A ; G 3763 +U 10011 ; WX 838 ; N uni271B ; G 3764 +U 10012 ; WX 838 ; N uni271C ; G 3765 +U 10013 ; WX 838 ; N uni271D ; G 3766 +U 10014 ; WX 838 ; N uni271E ; G 3767 +U 10015 ; WX 838 ; N uni271F ; G 3768 +U 10016 ; WX 838 ; N uni2720 ; G 3769 +U 10017 ; WX 838 ; N uni2721 ; G 3770 +U 10018 ; WX 838 ; N uni2722 ; G 3771 +U 10019 ; WX 838 ; N uni2723 ; G 3772 +U 10020 ; WX 838 ; N uni2724 ; G 3773 +U 10021 ; WX 838 ; N uni2725 ; G 3774 +U 10022 ; WX 838 ; N uni2726 ; G 3775 +U 10023 ; WX 838 ; N uni2727 ; G 3776 +U 10025 ; WX 838 ; N uni2729 ; G 3777 +U 10026 ; WX 838 ; N uni272A ; G 3778 +U 10027 ; WX 838 ; N uni272B ; G 3779 +U 10028 ; WX 838 ; N uni272C ; G 3780 +U 10029 ; WX 838 ; N uni272D ; G 3781 +U 10030 ; WX 838 ; N uni272E ; G 3782 +U 10031 ; WX 838 ; N uni272F ; G 3783 +U 10032 ; WX 838 ; N uni2730 ; G 3784 +U 10033 ; WX 838 ; N uni2731 ; G 3785 +U 10034 ; WX 838 ; N uni2732 ; G 3786 +U 10035 ; WX 838 ; N uni2733 ; G 3787 +U 10036 ; WX 838 ; N uni2734 ; G 3788 +U 10037 ; WX 838 ; N uni2735 ; G 3789 +U 10038 ; WX 838 ; N uni2736 ; G 3790 +U 10039 ; WX 838 ; N uni2737 ; G 3791 +U 10040 ; WX 838 ; N uni2738 ; G 3792 +U 10041 ; WX 838 ; N uni2739 ; G 3793 +U 10042 ; WX 838 ; N uni273A ; G 3794 +U 10043 ; WX 838 ; N uni273B ; G 3795 +U 10044 ; WX 838 ; N uni273C ; G 3796 +U 10045 ; WX 838 ; N uni273D ; G 3797 +U 10046 ; WX 838 ; N uni273E ; G 3798 +U 10047 ; WX 838 ; N uni273F ; G 3799 +U 10048 ; WX 838 ; N uni2740 ; G 3800 +U 10049 ; WX 838 ; N uni2741 ; G 3801 +U 10050 ; WX 838 ; N uni2742 ; G 3802 +U 10051 ; WX 838 ; N uni2743 ; G 3803 +U 10052 ; WX 838 ; N uni2744 ; G 3804 +U 10053 ; WX 838 ; N uni2745 ; G 3805 +U 10054 ; WX 838 ; N uni2746 ; G 3806 +U 10055 ; WX 838 ; N uni2747 ; G 3807 +U 10056 ; WX 838 ; N uni2748 ; G 3808 +U 10057 ; WX 838 ; N uni2749 ; G 3809 +U 10058 ; WX 838 ; N uni274A ; G 3810 +U 10059 ; WX 838 ; N uni274B ; G 3811 +U 10061 ; WX 896 ; N uni274D ; G 3812 +U 10063 ; WX 896 ; N uni274F ; G 3813 +U 10064 ; WX 896 ; N uni2750 ; G 3814 +U 10065 ; WX 896 ; N uni2751 ; G 3815 +U 10066 ; WX 896 ; N uni2752 ; G 3816 +U 10070 ; WX 896 ; N uni2756 ; G 3817 +U 10072 ; WX 838 ; N uni2758 ; G 3818 +U 10073 ; WX 838 ; N uni2759 ; G 3819 +U 10074 ; WX 838 ; N uni275A ; G 3820 +U 10075 ; WX 322 ; N uni275B ; G 3821 +U 10076 ; WX 322 ; N uni275C ; G 3822 +U 10077 ; WX 538 ; N uni275D ; G 3823 +U 10078 ; WX 538 ; N uni275E ; G 3824 +U 10081 ; WX 838 ; N uni2761 ; G 3825 +U 10082 ; WX 838 ; N uni2762 ; G 3826 +U 10083 ; WX 838 ; N uni2763 ; G 3827 +U 10084 ; WX 838 ; N uni2764 ; G 3828 +U 10085 ; WX 838 ; N uni2765 ; G 3829 +U 10086 ; WX 838 ; N uni2766 ; G 3830 +U 10087 ; WX 838 ; N uni2767 ; G 3831 +U 10088 ; WX 838 ; N uni2768 ; G 3832 +U 10089 ; WX 838 ; N uni2769 ; G 3833 +U 10090 ; WX 838 ; N uni276A ; G 3834 +U 10091 ; WX 838 ; N uni276B ; G 3835 +U 10092 ; WX 838 ; N uni276C ; G 3836 +U 10093 ; WX 838 ; N uni276D ; G 3837 +U 10094 ; WX 838 ; N uni276E ; G 3838 +U 10095 ; WX 838 ; N uni276F ; G 3839 +U 10096 ; WX 838 ; N uni2770 ; G 3840 +U 10097 ; WX 838 ; N uni2771 ; G 3841 +U 10098 ; WX 838 ; N uni2772 ; G 3842 +U 10099 ; WX 838 ; N uni2773 ; G 3843 +U 10100 ; WX 838 ; N uni2774 ; G 3844 +U 10101 ; WX 838 ; N uni2775 ; G 3845 +U 10102 ; WX 896 ; N uni2776 ; G 3846 +U 10103 ; WX 896 ; N uni2777 ; G 3847 +U 10104 ; WX 896 ; N uni2778 ; G 3848 +U 10105 ; WX 896 ; N uni2779 ; G 3849 +U 10106 ; WX 896 ; N uni277A ; G 3850 +U 10107 ; WX 896 ; N uni277B ; G 3851 +U 10108 ; WX 896 ; N uni277C ; G 3852 +U 10109 ; WX 896 ; N uni277D ; G 3853 +U 10110 ; WX 896 ; N uni277E ; G 3854 +U 10111 ; WX 896 ; N uni277F ; G 3855 +U 10112 ; WX 838 ; N uni2780 ; G 3856 +U 10113 ; WX 838 ; N uni2781 ; G 3857 +U 10114 ; WX 838 ; N uni2782 ; G 3858 +U 10115 ; WX 838 ; N uni2783 ; G 3859 +U 10116 ; WX 838 ; N uni2784 ; G 3860 +U 10117 ; WX 838 ; N uni2785 ; G 3861 +U 10118 ; WX 838 ; N uni2786 ; G 3862 +U 10119 ; WX 838 ; N uni2787 ; G 3863 +U 10120 ; WX 838 ; N uni2788 ; G 3864 +U 10121 ; WX 838 ; N uni2789 ; G 3865 +U 10122 ; WX 838 ; N uni278A ; G 3866 +U 10123 ; WX 838 ; N uni278B ; G 3867 +U 10124 ; WX 838 ; N uni278C ; G 3868 +U 10125 ; WX 838 ; N uni278D ; G 3869 +U 10126 ; WX 838 ; N uni278E ; G 3870 +U 10127 ; WX 838 ; N uni278F ; G 3871 +U 10128 ; WX 838 ; N uni2790 ; G 3872 +U 10129 ; WX 838 ; N uni2791 ; G 3873 +U 10130 ; WX 838 ; N uni2792 ; G 3874 +U 10131 ; WX 838 ; N uni2793 ; G 3875 +U 10132 ; WX 838 ; N uni2794 ; G 3876 +U 10136 ; WX 838 ; N uni2798 ; G 3877 +U 10137 ; WX 838 ; N uni2799 ; G 3878 +U 10138 ; WX 838 ; N uni279A ; G 3879 +U 10139 ; WX 838 ; N uni279B ; G 3880 +U 10140 ; WX 838 ; N uni279C ; G 3881 +U 10141 ; WX 838 ; N uni279D ; G 3882 +U 10142 ; WX 838 ; N uni279E ; G 3883 +U 10143 ; WX 838 ; N uni279F ; G 3884 +U 10144 ; WX 838 ; N uni27A0 ; G 3885 +U 10145 ; WX 838 ; N uni27A1 ; G 3886 +U 10146 ; WX 838 ; N uni27A2 ; G 3887 +U 10147 ; WX 838 ; N uni27A3 ; G 3888 +U 10148 ; WX 838 ; N uni27A4 ; G 3889 +U 10149 ; WX 838 ; N uni27A5 ; G 3890 +U 10150 ; WX 838 ; N uni27A6 ; G 3891 +U 10151 ; WX 838 ; N uni27A7 ; G 3892 +U 10152 ; WX 838 ; N uni27A8 ; G 3893 +U 10153 ; WX 838 ; N uni27A9 ; G 3894 +U 10154 ; WX 838 ; N uni27AA ; G 3895 +U 10155 ; WX 838 ; N uni27AB ; G 3896 +U 10156 ; WX 838 ; N uni27AC ; G 3897 +U 10157 ; WX 838 ; N uni27AD ; G 3898 +U 10158 ; WX 838 ; N uni27AE ; G 3899 +U 10159 ; WX 838 ; N uni27AF ; G 3900 +U 10161 ; WX 838 ; N uni27B1 ; G 3901 +U 10162 ; WX 838 ; N uni27B2 ; G 3902 +U 10163 ; WX 838 ; N uni27B3 ; G 3903 +U 10164 ; WX 838 ; N uni27B4 ; G 3904 +U 10165 ; WX 838 ; N uni27B5 ; G 3905 +U 10166 ; WX 838 ; N uni27B6 ; G 3906 +U 10167 ; WX 838 ; N uni27B7 ; G 3907 +U 10168 ; WX 838 ; N uni27B8 ; G 3908 +U 10169 ; WX 838 ; N uni27B9 ; G 3909 +U 10170 ; WX 838 ; N uni27BA ; G 3910 +U 10171 ; WX 838 ; N uni27BB ; G 3911 +U 10172 ; WX 838 ; N uni27BC ; G 3912 +U 10173 ; WX 838 ; N uni27BD ; G 3913 +U 10174 ; WX 838 ; N uni27BE ; G 3914 +U 10181 ; WX 390 ; N uni27C5 ; G 3915 +U 10182 ; WX 390 ; N uni27C6 ; G 3916 +U 10208 ; WX 494 ; N uni27E0 ; G 3917 +U 10214 ; WX 495 ; N uni27E6 ; G 3918 +U 10215 ; WX 495 ; N uni27E7 ; G 3919 +U 10216 ; WX 390 ; N uni27E8 ; G 3920 +U 10217 ; WX 390 ; N uni27E9 ; G 3921 +U 10218 ; WX 556 ; N uni27EA ; G 3922 +U 10219 ; WX 556 ; N uni27EB ; G 3923 +U 10224 ; WX 838 ; N uni27F0 ; G 3924 +U 10225 ; WX 838 ; N uni27F1 ; G 3925 +U 10226 ; WX 838 ; N uni27F2 ; G 3926 +U 10227 ; WX 838 ; N uni27F3 ; G 3927 +U 10228 ; WX 1157 ; N uni27F4 ; G 3928 +U 10229 ; WX 1434 ; N uni27F5 ; G 3929 +U 10230 ; WX 1434 ; N uni27F6 ; G 3930 +U 10231 ; WX 1434 ; N uni27F7 ; G 3931 +U 10232 ; WX 1434 ; N uni27F8 ; G 3932 +U 10233 ; WX 1434 ; N uni27F9 ; G 3933 +U 10234 ; WX 1434 ; N uni27FA ; G 3934 +U 10235 ; WX 1434 ; N uni27FB ; G 3935 +U 10236 ; WX 1434 ; N uni27FC ; G 3936 +U 10237 ; WX 1434 ; N uni27FD ; G 3937 +U 10238 ; WX 1434 ; N uni27FE ; G 3938 +U 10239 ; WX 1434 ; N uni27FF ; G 3939 +U 10240 ; WX 732 ; N uni2800 ; G 3940 +U 10241 ; WX 732 ; N uni2801 ; G 3941 +U 10242 ; WX 732 ; N uni2802 ; G 3942 +U 10243 ; WX 732 ; N uni2803 ; G 3943 +U 10244 ; WX 732 ; N uni2804 ; G 3944 +U 10245 ; WX 732 ; N uni2805 ; G 3945 +U 10246 ; WX 732 ; N uni2806 ; G 3946 +U 10247 ; WX 732 ; N uni2807 ; G 3947 +U 10248 ; WX 732 ; N uni2808 ; G 3948 +U 10249 ; WX 732 ; N uni2809 ; G 3949 +U 10250 ; WX 732 ; N uni280A ; G 3950 +U 10251 ; WX 732 ; N uni280B ; G 3951 +U 10252 ; WX 732 ; N uni280C ; G 3952 +U 10253 ; WX 732 ; N uni280D ; G 3953 +U 10254 ; WX 732 ; N uni280E ; G 3954 +U 10255 ; WX 732 ; N uni280F ; G 3955 +U 10256 ; WX 732 ; N uni2810 ; G 3956 +U 10257 ; WX 732 ; N uni2811 ; G 3957 +U 10258 ; WX 732 ; N uni2812 ; G 3958 +U 10259 ; WX 732 ; N uni2813 ; G 3959 +U 10260 ; WX 732 ; N uni2814 ; G 3960 +U 10261 ; WX 732 ; N uni2815 ; G 3961 +U 10262 ; WX 732 ; N uni2816 ; G 3962 +U 10263 ; WX 732 ; N uni2817 ; G 3963 +U 10264 ; WX 732 ; N uni2818 ; G 3964 +U 10265 ; WX 732 ; N uni2819 ; G 3965 +U 10266 ; WX 732 ; N uni281A ; G 3966 +U 10267 ; WX 732 ; N uni281B ; G 3967 +U 10268 ; WX 732 ; N uni281C ; G 3968 +U 10269 ; WX 732 ; N uni281D ; G 3969 +U 10270 ; WX 732 ; N uni281E ; G 3970 +U 10271 ; WX 732 ; N uni281F ; G 3971 +U 10272 ; WX 732 ; N uni2820 ; G 3972 +U 10273 ; WX 732 ; N uni2821 ; G 3973 +U 10274 ; WX 732 ; N uni2822 ; G 3974 +U 10275 ; WX 732 ; N uni2823 ; G 3975 +U 10276 ; WX 732 ; N uni2824 ; G 3976 +U 10277 ; WX 732 ; N uni2825 ; G 3977 +U 10278 ; WX 732 ; N uni2826 ; G 3978 +U 10279 ; WX 732 ; N uni2827 ; G 3979 +U 10280 ; WX 732 ; N uni2828 ; G 3980 +U 10281 ; WX 732 ; N uni2829 ; G 3981 +U 10282 ; WX 732 ; N uni282A ; G 3982 +U 10283 ; WX 732 ; N uni282B ; G 3983 +U 10284 ; WX 732 ; N uni282C ; G 3984 +U 10285 ; WX 732 ; N uni282D ; G 3985 +U 10286 ; WX 732 ; N uni282E ; G 3986 +U 10287 ; WX 732 ; N uni282F ; G 3987 +U 10288 ; WX 732 ; N uni2830 ; G 3988 +U 10289 ; WX 732 ; N uni2831 ; G 3989 +U 10290 ; WX 732 ; N uni2832 ; G 3990 +U 10291 ; WX 732 ; N uni2833 ; G 3991 +U 10292 ; WX 732 ; N uni2834 ; G 3992 +U 10293 ; WX 732 ; N uni2835 ; G 3993 +U 10294 ; WX 732 ; N uni2836 ; G 3994 +U 10295 ; WX 732 ; N uni2837 ; G 3995 +U 10296 ; WX 732 ; N uni2838 ; G 3996 +U 10297 ; WX 732 ; N uni2839 ; G 3997 +U 10298 ; WX 732 ; N uni283A ; G 3998 +U 10299 ; WX 732 ; N uni283B ; G 3999 +U 10300 ; WX 732 ; N uni283C ; G 4000 +U 10301 ; WX 732 ; N uni283D ; G 4001 +U 10302 ; WX 732 ; N uni283E ; G 4002 +U 10303 ; WX 732 ; N uni283F ; G 4003 +U 10304 ; WX 732 ; N uni2840 ; G 4004 +U 10305 ; WX 732 ; N uni2841 ; G 4005 +U 10306 ; WX 732 ; N uni2842 ; G 4006 +U 10307 ; WX 732 ; N uni2843 ; G 4007 +U 10308 ; WX 732 ; N uni2844 ; G 4008 +U 10309 ; WX 732 ; N uni2845 ; G 4009 +U 10310 ; WX 732 ; N uni2846 ; G 4010 +U 10311 ; WX 732 ; N uni2847 ; G 4011 +U 10312 ; WX 732 ; N uni2848 ; G 4012 +U 10313 ; WX 732 ; N uni2849 ; G 4013 +U 10314 ; WX 732 ; N uni284A ; G 4014 +U 10315 ; WX 732 ; N uni284B ; G 4015 +U 10316 ; WX 732 ; N uni284C ; G 4016 +U 10317 ; WX 732 ; N uni284D ; G 4017 +U 10318 ; WX 732 ; N uni284E ; G 4018 +U 10319 ; WX 732 ; N uni284F ; G 4019 +U 10320 ; WX 732 ; N uni2850 ; G 4020 +U 10321 ; WX 732 ; N uni2851 ; G 4021 +U 10322 ; WX 732 ; N uni2852 ; G 4022 +U 10323 ; WX 732 ; N uni2853 ; G 4023 +U 10324 ; WX 732 ; N uni2854 ; G 4024 +U 10325 ; WX 732 ; N uni2855 ; G 4025 +U 10326 ; WX 732 ; N uni2856 ; G 4026 +U 10327 ; WX 732 ; N uni2857 ; G 4027 +U 10328 ; WX 732 ; N uni2858 ; G 4028 +U 10329 ; WX 732 ; N uni2859 ; G 4029 +U 10330 ; WX 732 ; N uni285A ; G 4030 +U 10331 ; WX 732 ; N uni285B ; G 4031 +U 10332 ; WX 732 ; N uni285C ; G 4032 +U 10333 ; WX 732 ; N uni285D ; G 4033 +U 10334 ; WX 732 ; N uni285E ; G 4034 +U 10335 ; WX 732 ; N uni285F ; G 4035 +U 10336 ; WX 732 ; N uni2860 ; G 4036 +U 10337 ; WX 732 ; N uni2861 ; G 4037 +U 10338 ; WX 732 ; N uni2862 ; G 4038 +U 10339 ; WX 732 ; N uni2863 ; G 4039 +U 10340 ; WX 732 ; N uni2864 ; G 4040 +U 10341 ; WX 732 ; N uni2865 ; G 4041 +U 10342 ; WX 732 ; N uni2866 ; G 4042 +U 10343 ; WX 732 ; N uni2867 ; G 4043 +U 10344 ; WX 732 ; N uni2868 ; G 4044 +U 10345 ; WX 732 ; N uni2869 ; G 4045 +U 10346 ; WX 732 ; N uni286A ; G 4046 +U 10347 ; WX 732 ; N uni286B ; G 4047 +U 10348 ; WX 732 ; N uni286C ; G 4048 +U 10349 ; WX 732 ; N uni286D ; G 4049 +U 10350 ; WX 732 ; N uni286E ; G 4050 +U 10351 ; WX 732 ; N uni286F ; G 4051 +U 10352 ; WX 732 ; N uni2870 ; G 4052 +U 10353 ; WX 732 ; N uni2871 ; G 4053 +U 10354 ; WX 732 ; N uni2872 ; G 4054 +U 10355 ; WX 732 ; N uni2873 ; G 4055 +U 10356 ; WX 732 ; N uni2874 ; G 4056 +U 10357 ; WX 732 ; N uni2875 ; G 4057 +U 10358 ; WX 732 ; N uni2876 ; G 4058 +U 10359 ; WX 732 ; N uni2877 ; G 4059 +U 10360 ; WX 732 ; N uni2878 ; G 4060 +U 10361 ; WX 732 ; N uni2879 ; G 4061 +U 10362 ; WX 732 ; N uni287A ; G 4062 +U 10363 ; WX 732 ; N uni287B ; G 4063 +U 10364 ; WX 732 ; N uni287C ; G 4064 +U 10365 ; WX 732 ; N uni287D ; G 4065 +U 10366 ; WX 732 ; N uni287E ; G 4066 +U 10367 ; WX 732 ; N uni287F ; G 4067 +U 10368 ; WX 732 ; N uni2880 ; G 4068 +U 10369 ; WX 732 ; N uni2881 ; G 4069 +U 10370 ; WX 732 ; N uni2882 ; G 4070 +U 10371 ; WX 732 ; N uni2883 ; G 4071 +U 10372 ; WX 732 ; N uni2884 ; G 4072 +U 10373 ; WX 732 ; N uni2885 ; G 4073 +U 10374 ; WX 732 ; N uni2886 ; G 4074 +U 10375 ; WX 732 ; N uni2887 ; G 4075 +U 10376 ; WX 732 ; N uni2888 ; G 4076 +U 10377 ; WX 732 ; N uni2889 ; G 4077 +U 10378 ; WX 732 ; N uni288A ; G 4078 +U 10379 ; WX 732 ; N uni288B ; G 4079 +U 10380 ; WX 732 ; N uni288C ; G 4080 +U 10381 ; WX 732 ; N uni288D ; G 4081 +U 10382 ; WX 732 ; N uni288E ; G 4082 +U 10383 ; WX 732 ; N uni288F ; G 4083 +U 10384 ; WX 732 ; N uni2890 ; G 4084 +U 10385 ; WX 732 ; N uni2891 ; G 4085 +U 10386 ; WX 732 ; N uni2892 ; G 4086 +U 10387 ; WX 732 ; N uni2893 ; G 4087 +U 10388 ; WX 732 ; N uni2894 ; G 4088 +U 10389 ; WX 732 ; N uni2895 ; G 4089 +U 10390 ; WX 732 ; N uni2896 ; G 4090 +U 10391 ; WX 732 ; N uni2897 ; G 4091 +U 10392 ; WX 732 ; N uni2898 ; G 4092 +U 10393 ; WX 732 ; N uni2899 ; G 4093 +U 10394 ; WX 732 ; N uni289A ; G 4094 +U 10395 ; WX 732 ; N uni289B ; G 4095 +U 10396 ; WX 732 ; N uni289C ; G 4096 +U 10397 ; WX 732 ; N uni289D ; G 4097 +U 10398 ; WX 732 ; N uni289E ; G 4098 +U 10399 ; WX 732 ; N uni289F ; G 4099 +U 10400 ; WX 732 ; N uni28A0 ; G 4100 +U 10401 ; WX 732 ; N uni28A1 ; G 4101 +U 10402 ; WX 732 ; N uni28A2 ; G 4102 +U 10403 ; WX 732 ; N uni28A3 ; G 4103 +U 10404 ; WX 732 ; N uni28A4 ; G 4104 +U 10405 ; WX 732 ; N uni28A5 ; G 4105 +U 10406 ; WX 732 ; N uni28A6 ; G 4106 +U 10407 ; WX 732 ; N uni28A7 ; G 4107 +U 10408 ; WX 732 ; N uni28A8 ; G 4108 +U 10409 ; WX 732 ; N uni28A9 ; G 4109 +U 10410 ; WX 732 ; N uni28AA ; G 4110 +U 10411 ; WX 732 ; N uni28AB ; G 4111 +U 10412 ; WX 732 ; N uni28AC ; G 4112 +U 10413 ; WX 732 ; N uni28AD ; G 4113 +U 10414 ; WX 732 ; N uni28AE ; G 4114 +U 10415 ; WX 732 ; N uni28AF ; G 4115 +U 10416 ; WX 732 ; N uni28B0 ; G 4116 +U 10417 ; WX 732 ; N uni28B1 ; G 4117 +U 10418 ; WX 732 ; N uni28B2 ; G 4118 +U 10419 ; WX 732 ; N uni28B3 ; G 4119 +U 10420 ; WX 732 ; N uni28B4 ; G 4120 +U 10421 ; WX 732 ; N uni28B5 ; G 4121 +U 10422 ; WX 732 ; N uni28B6 ; G 4122 +U 10423 ; WX 732 ; N uni28B7 ; G 4123 +U 10424 ; WX 732 ; N uni28B8 ; G 4124 +U 10425 ; WX 732 ; N uni28B9 ; G 4125 +U 10426 ; WX 732 ; N uni28BA ; G 4126 +U 10427 ; WX 732 ; N uni28BB ; G 4127 +U 10428 ; WX 732 ; N uni28BC ; G 4128 +U 10429 ; WX 732 ; N uni28BD ; G 4129 +U 10430 ; WX 732 ; N uni28BE ; G 4130 +U 10431 ; WX 732 ; N uni28BF ; G 4131 +U 10432 ; WX 732 ; N uni28C0 ; G 4132 +U 10433 ; WX 732 ; N uni28C1 ; G 4133 +U 10434 ; WX 732 ; N uni28C2 ; G 4134 +U 10435 ; WX 732 ; N uni28C3 ; G 4135 +U 10436 ; WX 732 ; N uni28C4 ; G 4136 +U 10437 ; WX 732 ; N uni28C5 ; G 4137 +U 10438 ; WX 732 ; N uni28C6 ; G 4138 +U 10439 ; WX 732 ; N uni28C7 ; G 4139 +U 10440 ; WX 732 ; N uni28C8 ; G 4140 +U 10441 ; WX 732 ; N uni28C9 ; G 4141 +U 10442 ; WX 732 ; N uni28CA ; G 4142 +U 10443 ; WX 732 ; N uni28CB ; G 4143 +U 10444 ; WX 732 ; N uni28CC ; G 4144 +U 10445 ; WX 732 ; N uni28CD ; G 4145 +U 10446 ; WX 732 ; N uni28CE ; G 4146 +U 10447 ; WX 732 ; N uni28CF ; G 4147 +U 10448 ; WX 732 ; N uni28D0 ; G 4148 +U 10449 ; WX 732 ; N uni28D1 ; G 4149 +U 10450 ; WX 732 ; N uni28D2 ; G 4150 +U 10451 ; WX 732 ; N uni28D3 ; G 4151 +U 10452 ; WX 732 ; N uni28D4 ; G 4152 +U 10453 ; WX 732 ; N uni28D5 ; G 4153 +U 10454 ; WX 732 ; N uni28D6 ; G 4154 +U 10455 ; WX 732 ; N uni28D7 ; G 4155 +U 10456 ; WX 732 ; N uni28D8 ; G 4156 +U 10457 ; WX 732 ; N uni28D9 ; G 4157 +U 10458 ; WX 732 ; N uni28DA ; G 4158 +U 10459 ; WX 732 ; N uni28DB ; G 4159 +U 10460 ; WX 732 ; N uni28DC ; G 4160 +U 10461 ; WX 732 ; N uni28DD ; G 4161 +U 10462 ; WX 732 ; N uni28DE ; G 4162 +U 10463 ; WX 732 ; N uni28DF ; G 4163 +U 10464 ; WX 732 ; N uni28E0 ; G 4164 +U 10465 ; WX 732 ; N uni28E1 ; G 4165 +U 10466 ; WX 732 ; N uni28E2 ; G 4166 +U 10467 ; WX 732 ; N uni28E3 ; G 4167 +U 10468 ; WX 732 ; N uni28E4 ; G 4168 +U 10469 ; WX 732 ; N uni28E5 ; G 4169 +U 10470 ; WX 732 ; N uni28E6 ; G 4170 +U 10471 ; WX 732 ; N uni28E7 ; G 4171 +U 10472 ; WX 732 ; N uni28E8 ; G 4172 +U 10473 ; WX 732 ; N uni28E9 ; G 4173 +U 10474 ; WX 732 ; N uni28EA ; G 4174 +U 10475 ; WX 732 ; N uni28EB ; G 4175 +U 10476 ; WX 732 ; N uni28EC ; G 4176 +U 10477 ; WX 732 ; N uni28ED ; G 4177 +U 10478 ; WX 732 ; N uni28EE ; G 4178 +U 10479 ; WX 732 ; N uni28EF ; G 4179 +U 10480 ; WX 732 ; N uni28F0 ; G 4180 +U 10481 ; WX 732 ; N uni28F1 ; G 4181 +U 10482 ; WX 732 ; N uni28F2 ; G 4182 +U 10483 ; WX 732 ; N uni28F3 ; G 4183 +U 10484 ; WX 732 ; N uni28F4 ; G 4184 +U 10485 ; WX 732 ; N uni28F5 ; G 4185 +U 10486 ; WX 732 ; N uni28F6 ; G 4186 +U 10487 ; WX 732 ; N uni28F7 ; G 4187 +U 10488 ; WX 732 ; N uni28F8 ; G 4188 +U 10489 ; WX 732 ; N uni28F9 ; G 4189 +U 10490 ; WX 732 ; N uni28FA ; G 4190 +U 10491 ; WX 732 ; N uni28FB ; G 4191 +U 10492 ; WX 732 ; N uni28FC ; G 4192 +U 10493 ; WX 732 ; N uni28FD ; G 4193 +U 10494 ; WX 732 ; N uni28FE ; G 4194 +U 10495 ; WX 732 ; N uni28FF ; G 4195 +U 10502 ; WX 838 ; N uni2906 ; G 4196 +U 10503 ; WX 838 ; N uni2907 ; G 4197 +U 10506 ; WX 838 ; N uni290A ; G 4198 +U 10507 ; WX 838 ; N uni290B ; G 4199 +U 10560 ; WX 683 ; N uni2940 ; G 4200 +U 10561 ; WX 683 ; N uni2941 ; G 4201 +U 10627 ; WX 734 ; N uni2983 ; G 4202 +U 10628 ; WX 734 ; N uni2984 ; G 4203 +U 10702 ; WX 838 ; N uni29CE ; G 4204 +U 10703 ; WX 1000 ; N uni29CF ; G 4205 +U 10704 ; WX 1000 ; N uni29D0 ; G 4206 +U 10705 ; WX 1000 ; N uni29D1 ; G 4207 +U 10706 ; WX 1000 ; N uni29D2 ; G 4208 +U 10707 ; WX 1000 ; N uni29D3 ; G 4209 +U 10708 ; WX 1000 ; N uni29D4 ; G 4210 +U 10709 ; WX 1000 ; N uni29D5 ; G 4211 +U 10731 ; WX 494 ; N uni29EB ; G 4212 +U 10746 ; WX 838 ; N uni29FA ; G 4213 +U 10747 ; WX 838 ; N uni29FB ; G 4214 +U 10752 ; WX 1000 ; N uni2A00 ; G 4215 +U 10753 ; WX 1000 ; N uni2A01 ; G 4216 +U 10754 ; WX 1000 ; N uni2A02 ; G 4217 +U 10764 ; WX 1325 ; N uni2A0C ; G 4218 +U 10765 ; WX 521 ; N uni2A0D ; G 4219 +U 10766 ; WX 521 ; N uni2A0E ; G 4220 +U 10767 ; WX 521 ; N uni2A0F ; G 4221 +U 10768 ; WX 521 ; N uni2A10 ; G 4222 +U 10769 ; WX 521 ; N uni2A11 ; G 4223 +U 10770 ; WX 521 ; N uni2A12 ; G 4224 +U 10771 ; WX 521 ; N uni2A13 ; G 4225 +U 10772 ; WX 521 ; N uni2A14 ; G 4226 +U 10773 ; WX 521 ; N uni2A15 ; G 4227 +U 10774 ; WX 521 ; N uni2A16 ; G 4228 +U 10775 ; WX 521 ; N uni2A17 ; G 4229 +U 10776 ; WX 521 ; N uni2A18 ; G 4230 +U 10777 ; WX 521 ; N uni2A19 ; G 4231 +U 10778 ; WX 521 ; N uni2A1A ; G 4232 +U 10779 ; WX 521 ; N uni2A1B ; G 4233 +U 10780 ; WX 521 ; N uni2A1C ; G 4234 +U 10799 ; WX 838 ; N uni2A2F ; G 4235 +U 10858 ; WX 838 ; N uni2A6A ; G 4236 +U 10859 ; WX 838 ; N uni2A6B ; G 4237 +U 10877 ; WX 838 ; N uni2A7D ; G 4238 +U 10878 ; WX 838 ; N uni2A7E ; G 4239 +U 10879 ; WX 838 ; N uni2A7F ; G 4240 +U 10880 ; WX 838 ; N uni2A80 ; G 4241 +U 10881 ; WX 838 ; N uni2A81 ; G 4242 +U 10882 ; WX 838 ; N uni2A82 ; G 4243 +U 10883 ; WX 838 ; N uni2A83 ; G 4244 +U 10884 ; WX 838 ; N uni2A84 ; G 4245 +U 10885 ; WX 838 ; N uni2A85 ; G 4246 +U 10886 ; WX 838 ; N uni2A86 ; G 4247 +U 10887 ; WX 838 ; N uni2A87 ; G 4248 +U 10888 ; WX 838 ; N uni2A88 ; G 4249 +U 10889 ; WX 838 ; N uni2A89 ; G 4250 +U 10890 ; WX 838 ; N uni2A8A ; G 4251 +U 10891 ; WX 838 ; N uni2A8B ; G 4252 +U 10892 ; WX 838 ; N uni2A8C ; G 4253 +U 10893 ; WX 838 ; N uni2A8D ; G 4254 +U 10894 ; WX 838 ; N uni2A8E ; G 4255 +U 10895 ; WX 838 ; N uni2A8F ; G 4256 +U 10896 ; WX 838 ; N uni2A90 ; G 4257 +U 10897 ; WX 838 ; N uni2A91 ; G 4258 +U 10898 ; WX 838 ; N uni2A92 ; G 4259 +U 10899 ; WX 838 ; N uni2A93 ; G 4260 +U 10900 ; WX 838 ; N uni2A94 ; G 4261 +U 10901 ; WX 838 ; N uni2A95 ; G 4262 +U 10902 ; WX 838 ; N uni2A96 ; G 4263 +U 10903 ; WX 838 ; N uni2A97 ; G 4264 +U 10904 ; WX 838 ; N uni2A98 ; G 4265 +U 10905 ; WX 838 ; N uni2A99 ; G 4266 +U 10906 ; WX 838 ; N uni2A9A ; G 4267 +U 10907 ; WX 838 ; N uni2A9B ; G 4268 +U 10908 ; WX 838 ; N uni2A9C ; G 4269 +U 10909 ; WX 838 ; N uni2A9D ; G 4270 +U 10910 ; WX 838 ; N uni2A9E ; G 4271 +U 10911 ; WX 838 ; N uni2A9F ; G 4272 +U 10912 ; WX 838 ; N uni2AA0 ; G 4273 +U 10926 ; WX 838 ; N uni2AAE ; G 4274 +U 10927 ; WX 838 ; N uni2AAF ; G 4275 +U 10928 ; WX 838 ; N uni2AB0 ; G 4276 +U 10929 ; WX 838 ; N uni2AB1 ; G 4277 +U 10930 ; WX 838 ; N uni2AB2 ; G 4278 +U 10931 ; WX 838 ; N uni2AB3 ; G 4279 +U 10932 ; WX 838 ; N uni2AB4 ; G 4280 +U 10933 ; WX 838 ; N uni2AB5 ; G 4281 +U 10934 ; WX 838 ; N uni2AB6 ; G 4282 +U 10935 ; WX 838 ; N uni2AB7 ; G 4283 +U 10936 ; WX 838 ; N uni2AB8 ; G 4284 +U 10937 ; WX 838 ; N uni2AB9 ; G 4285 +U 10938 ; WX 838 ; N uni2ABA ; G 4286 +U 11001 ; WX 838 ; N uni2AF9 ; G 4287 +U 11002 ; WX 838 ; N uni2AFA ; G 4288 +U 11008 ; WX 838 ; N uni2B00 ; G 4289 +U 11009 ; WX 838 ; N uni2B01 ; G 4290 +U 11010 ; WX 838 ; N uni2B02 ; G 4291 +U 11011 ; WX 838 ; N uni2B03 ; G 4292 +U 11012 ; WX 838 ; N uni2B04 ; G 4293 +U 11013 ; WX 838 ; N uni2B05 ; G 4294 +U 11014 ; WX 838 ; N uni2B06 ; G 4295 +U 11015 ; WX 838 ; N uni2B07 ; G 4296 +U 11016 ; WX 838 ; N uni2B08 ; G 4297 +U 11017 ; WX 838 ; N uni2B09 ; G 4298 +U 11018 ; WX 838 ; N uni2B0A ; G 4299 +U 11019 ; WX 838 ; N uni2B0B ; G 4300 +U 11020 ; WX 838 ; N uni2B0C ; G 4301 +U 11021 ; WX 838 ; N uni2B0D ; G 4302 +U 11022 ; WX 836 ; N uni2B0E ; G 4303 +U 11023 ; WX 836 ; N uni2B0F ; G 4304 +U 11024 ; WX 836 ; N uni2B10 ; G 4305 +U 11025 ; WX 836 ; N uni2B11 ; G 4306 +U 11026 ; WX 945 ; N uni2B12 ; G 4307 +U 11027 ; WX 945 ; N uni2B13 ; G 4308 +U 11028 ; WX 945 ; N uni2B14 ; G 4309 +U 11029 ; WX 945 ; N uni2B15 ; G 4310 +U 11030 ; WX 769 ; N uni2B16 ; G 4311 +U 11031 ; WX 769 ; N uni2B17 ; G 4312 +U 11032 ; WX 769 ; N uni2B18 ; G 4313 +U 11033 ; WX 769 ; N uni2B19 ; G 4314 +U 11034 ; WX 945 ; N uni2B1A ; G 4315 +U 11039 ; WX 869 ; N uni2B1F ; G 4316 +U 11040 ; WX 869 ; N uni2B20 ; G 4317 +U 11041 ; WX 873 ; N uni2B21 ; G 4318 +U 11042 ; WX 873 ; N uni2B22 ; G 4319 +U 11043 ; WX 873 ; N uni2B23 ; G 4320 +U 11044 ; WX 1119 ; N uni2B24 ; G 4321 +U 11091 ; WX 869 ; N uni2B53 ; G 4322 +U 11092 ; WX 869 ; N uni2B54 ; G 4323 +U 11360 ; WX 557 ; N uni2C60 ; G 4324 +U 11361 ; WX 278 ; N uni2C61 ; G 4325 +U 11362 ; WX 557 ; N uni2C62 ; G 4326 +U 11363 ; WX 603 ; N uni2C63 ; G 4327 +U 11364 ; WX 695 ; N uni2C64 ; G 4328 +U 11365 ; WX 613 ; N uni2C65 ; G 4329 +U 11366 ; WX 392 ; N uni2C66 ; G 4330 +U 11367 ; WX 752 ; N uni2C67 ; G 4331 +U 11368 ; WX 634 ; N uni2C68 ; G 4332 +U 11369 ; WX 656 ; N uni2C69 ; G 4333 +U 11370 ; WX 579 ; N uni2C6A ; G 4334 +U 11371 ; WX 685 ; N uni2C6B ; G 4335 +U 11372 ; WX 525 ; N uni2C6C ; G 4336 +U 11373 ; WX 781 ; N uni2C6D ; G 4337 +U 11374 ; WX 863 ; N uni2C6E ; G 4338 +U 11375 ; WX 684 ; N uni2C6F ; G 4339 +U 11376 ; WX 781 ; N uni2C70 ; G 4340 +U 11377 ; WX 734 ; N uni2C71 ; G 4341 +U 11378 ; WX 1128 ; N uni2C72 ; G 4342 +U 11379 ; WX 961 ; N uni2C73 ; G 4343 +U 11380 ; WX 592 ; N uni2C74 ; G 4344 +U 11381 ; WX 654 ; N uni2C75 ; G 4345 +U 11382 ; WX 568 ; N uni2C76 ; G 4346 +U 11383 ; WX 660 ; N uni2C77 ; G 4347 +U 11385 ; WX 414 ; N uni2C79 ; G 4348 +U 11386 ; WX 612 ; N uni2C7A ; G 4349 +U 11387 ; WX 491 ; N uni2C7B ; G 4350 +U 11388 ; WX 175 ; N uni2C7C ; G 4351 +U 11389 ; WX 431 ; N uni2C7D ; G 4352 +U 11390 ; WX 635 ; N uni2C7E ; G 4353 +U 11391 ; WX 685 ; N uni2C7F ; G 4354 +U 11520 ; WX 591 ; N uni2D00 ; G 4355 +U 11521 ; WX 595 ; N uni2D01 ; G 4356 +U 11522 ; WX 564 ; N uni2D02 ; G 4357 +U 11523 ; WX 602 ; N uni2D03 ; G 4358 +U 11524 ; WX 587 ; N uni2D04 ; G 4359 +U 11525 ; WX 911 ; N uni2D05 ; G 4360 +U 11526 ; WX 626 ; N uni2D06 ; G 4361 +U 11527 ; WX 952 ; N uni2D07 ; G 4362 +U 11528 ; WX 595 ; N uni2D08 ; G 4363 +U 11529 ; WX 607 ; N uni2D09 ; G 4364 +U 11530 ; WX 954 ; N uni2D0A ; G 4365 +U 11531 ; WX 620 ; N uni2D0B ; G 4366 +U 11532 ; WX 595 ; N uni2D0C ; G 4367 +U 11533 ; WX 926 ; N uni2D0D ; G 4368 +U 11534 ; WX 595 ; N uni2D0E ; G 4369 +U 11535 ; WX 806 ; N uni2D0F ; G 4370 +U 11536 ; WX 931 ; N uni2D10 ; G 4371 +U 11537 ; WX 584 ; N uni2D11 ; G 4372 +U 11538 ; WX 592 ; N uni2D12 ; G 4373 +U 11539 ; WX 923 ; N uni2D13 ; G 4374 +U 11540 ; WX 953 ; N uni2D14 ; G 4375 +U 11541 ; WX 828 ; N uni2D15 ; G 4376 +U 11542 ; WX 596 ; N uni2D16 ; G 4377 +U 11543 ; WX 595 ; N uni2D17 ; G 4378 +U 11544 ; WX 590 ; N uni2D18 ; G 4379 +U 11545 ; WX 592 ; N uni2D19 ; G 4380 +U 11546 ; WX 592 ; N uni2D1A ; G 4381 +U 11547 ; WX 621 ; N uni2D1B ; G 4382 +U 11548 ; WX 920 ; N uni2D1C ; G 4383 +U 11549 ; WX 589 ; N uni2D1D ; G 4384 +U 11550 ; WX 586 ; N uni2D1E ; G 4385 +U 11551 ; WX 581 ; N uni2D1F ; G 4386 +U 11552 ; WX 914 ; N uni2D20 ; G 4387 +U 11553 ; WX 596 ; N uni2D21 ; G 4388 +U 11554 ; WX 595 ; N uni2D22 ; G 4389 +U 11555 ; WX 592 ; N uni2D23 ; G 4390 +U 11556 ; WX 642 ; N uni2D24 ; G 4391 +U 11557 ; WX 901 ; N uni2D25 ; G 4392 +U 11800 ; WX 531 ; N uni2E18 ; G 4393 +U 11807 ; WX 838 ; N uni2E1F ; G 4394 +U 11810 ; WX 390 ; N uni2E22 ; G 4395 +U 11811 ; WX 390 ; N uni2E23 ; G 4396 +U 11812 ; WX 390 ; N uni2E24 ; G 4397 +U 11813 ; WX 390 ; N uni2E25 ; G 4398 +U 11822 ; WX 531 ; N uni2E2E ; G 4399 +U 19904 ; WX 896 ; N uni4DC0 ; G 4400 +U 19905 ; WX 896 ; N uni4DC1 ; G 4401 +U 19906 ; WX 896 ; N uni4DC2 ; G 4402 +U 19907 ; WX 896 ; N uni4DC3 ; G 4403 +U 19908 ; WX 896 ; N uni4DC4 ; G 4404 +U 19909 ; WX 896 ; N uni4DC5 ; G 4405 +U 19910 ; WX 896 ; N uni4DC6 ; G 4406 +U 19911 ; WX 896 ; N uni4DC7 ; G 4407 +U 19912 ; WX 896 ; N uni4DC8 ; G 4408 +U 19913 ; WX 896 ; N uni4DC9 ; G 4409 +U 19914 ; WX 896 ; N uni4DCA ; G 4410 +U 19915 ; WX 896 ; N uni4DCB ; G 4411 +U 19916 ; WX 896 ; N uni4DCC ; G 4412 +U 19917 ; WX 896 ; N uni4DCD ; G 4413 +U 19918 ; WX 896 ; N uni4DCE ; G 4414 +U 19919 ; WX 896 ; N uni4DCF ; G 4415 +U 19920 ; WX 896 ; N uni4DD0 ; G 4416 +U 19921 ; WX 896 ; N uni4DD1 ; G 4417 +U 19922 ; WX 896 ; N uni4DD2 ; G 4418 +U 19923 ; WX 896 ; N uni4DD3 ; G 4419 +U 19924 ; WX 896 ; N uni4DD4 ; G 4420 +U 19925 ; WX 896 ; N uni4DD5 ; G 4421 +U 19926 ; WX 896 ; N uni4DD6 ; G 4422 +U 19927 ; WX 896 ; N uni4DD7 ; G 4423 +U 19928 ; WX 896 ; N uni4DD8 ; G 4424 +U 19929 ; WX 896 ; N uni4DD9 ; G 4425 +U 19930 ; WX 896 ; N uni4DDA ; G 4426 +U 19931 ; WX 896 ; N uni4DDB ; G 4427 +U 19932 ; WX 896 ; N uni4DDC ; G 4428 +U 19933 ; WX 896 ; N uni4DDD ; G 4429 +U 19934 ; WX 896 ; N uni4DDE ; G 4430 +U 19935 ; WX 896 ; N uni4DDF ; G 4431 +U 19936 ; WX 896 ; N uni4DE0 ; G 4432 +U 19937 ; WX 896 ; N uni4DE1 ; G 4433 +U 19938 ; WX 896 ; N uni4DE2 ; G 4434 +U 19939 ; WX 896 ; N uni4DE3 ; G 4435 +U 19940 ; WX 896 ; N uni4DE4 ; G 4436 +U 19941 ; WX 896 ; N uni4DE5 ; G 4437 +U 19942 ; WX 896 ; N uni4DE6 ; G 4438 +U 19943 ; WX 896 ; N uni4DE7 ; G 4439 +U 19944 ; WX 896 ; N uni4DE8 ; G 4440 +U 19945 ; WX 896 ; N uni4DE9 ; G 4441 +U 19946 ; WX 896 ; N uni4DEA ; G 4442 +U 19947 ; WX 896 ; N uni4DEB ; G 4443 +U 19948 ; WX 896 ; N uni4DEC ; G 4444 +U 19949 ; WX 896 ; N uni4DED ; G 4445 +U 19950 ; WX 896 ; N uni4DEE ; G 4446 +U 19951 ; WX 896 ; N uni4DEF ; G 4447 +U 19952 ; WX 896 ; N uni4DF0 ; G 4448 +U 19953 ; WX 896 ; N uni4DF1 ; G 4449 +U 19954 ; WX 896 ; N uni4DF2 ; G 4450 +U 19955 ; WX 896 ; N uni4DF3 ; G 4451 +U 19956 ; WX 896 ; N uni4DF4 ; G 4452 +U 19957 ; WX 896 ; N uni4DF5 ; G 4453 +U 19958 ; WX 896 ; N uni4DF6 ; G 4454 +U 19959 ; WX 896 ; N uni4DF7 ; G 4455 +U 19960 ; WX 896 ; N uni4DF8 ; G 4456 +U 19961 ; WX 896 ; N uni4DF9 ; G 4457 +U 19962 ; WX 896 ; N uni4DFA ; G 4458 +U 19963 ; WX 896 ; N uni4DFB ; G 4459 +U 19964 ; WX 896 ; N uni4DFC ; G 4460 +U 19965 ; WX 896 ; N uni4DFD ; G 4461 +U 19966 ; WX 896 ; N uni4DFE ; G 4462 +U 19967 ; WX 896 ; N uni4DFF ; G 4463 +U 42192 ; WX 686 ; N uniA4D0 ; G 4464 +U 42193 ; WX 603 ; N uniA4D1 ; G 4465 +U 42194 ; WX 603 ; N uniA4D2 ; G 4466 +U 42195 ; WX 770 ; N uniA4D3 ; G 4467 +U 42196 ; WX 611 ; N uniA4D4 ; G 4468 +U 42197 ; WX 611 ; N uniA4D5 ; G 4469 +U 42198 ; WX 775 ; N uniA4D6 ; G 4470 +U 42199 ; WX 656 ; N uniA4D7 ; G 4471 +U 42200 ; WX 656 ; N uniA4D8 ; G 4472 +U 42201 ; WX 512 ; N uniA4D9 ; G 4473 +U 42202 ; WX 698 ; N uniA4DA ; G 4474 +U 42203 ; WX 703 ; N uniA4DB ; G 4475 +U 42204 ; WX 685 ; N uniA4DC ; G 4476 +U 42205 ; WX 575 ; N uniA4DD ; G 4477 +U 42206 ; WX 575 ; N uniA4DE ; G 4478 +U 42207 ; WX 863 ; N uniA4DF ; G 4479 +U 42208 ; WX 748 ; N uniA4E0 ; G 4480 +U 42209 ; WX 557 ; N uniA4E1 ; G 4481 +U 42210 ; WX 635 ; N uniA4E2 ; G 4482 +U 42211 ; WX 695 ; N uniA4E3 ; G 4483 +U 42212 ; WX 695 ; N uniA4E4 ; G 4484 +U 42213 ; WX 684 ; N uniA4E5 ; G 4485 +U 42214 ; WX 684 ; N uniA4E6 ; G 4486 +U 42215 ; WX 752 ; N uniA4E7 ; G 4487 +U 42216 ; WX 775 ; N uniA4E8 ; G 4488 +U 42217 ; WX 512 ; N uniA4E9 ; G 4489 +U 42218 ; WX 989 ; N uniA4EA ; G 4490 +U 42219 ; WX 685 ; N uniA4EB ; G 4491 +U 42220 ; WX 611 ; N uniA4EC ; G 4492 +U 42221 ; WX 686 ; N uniA4ED ; G 4493 +U 42222 ; WX 684 ; N uniA4EE ; G 4494 +U 42223 ; WX 684 ; N uniA4EF ; G 4495 +U 42224 ; WX 632 ; N uniA4F0 ; G 4496 +U 42225 ; WX 632 ; N uniA4F1 ; G 4497 +U 42226 ; WX 295 ; N uniA4F2 ; G 4498 +U 42227 ; WX 787 ; N uniA4F3 ; G 4499 +U 42228 ; WX 732 ; N uniA4F4 ; G 4500 +U 42229 ; WX 732 ; N uniA4F5 ; G 4501 +U 42230 ; WX 557 ; N uniA4F6 ; G 4502 +U 42231 ; WX 767 ; N uniA4F7 ; G 4503 +U 42232 ; WX 300 ; N uniA4F8 ; G 4504 +U 42233 ; WX 300 ; N uniA4F9 ; G 4505 +U 42234 ; WX 596 ; N uniA4FA ; G 4506 +U 42235 ; WX 596 ; N uniA4FB ; G 4507 +U 42236 ; WX 300 ; N uniA4FC ; G 4508 +U 42237 ; WX 300 ; N uniA4FD ; G 4509 +U 42238 ; WX 588 ; N uniA4FE ; G 4510 +U 42239 ; WX 588 ; N uniA4FF ; G 4511 +U 42564 ; WX 635 ; N uniA644 ; G 4512 +U 42565 ; WX 521 ; N uniA645 ; G 4513 +U 42566 ; WX 354 ; N uniA646 ; G 4514 +U 42567 ; WX 338 ; N uniA647 ; G 4515 +U 42572 ; WX 1180 ; N uniA64C ; G 4516 +U 42573 ; WX 1028 ; N uniA64D ; G 4517 +U 42576 ; WX 1029 ; N uniA650 ; G 4518 +U 42577 ; WX 906 ; N uniA651 ; G 4519 +U 42580 ; WX 1080 ; N uniA654 ; G 4520 +U 42581 ; WX 842 ; N uniA655 ; G 4521 +U 42582 ; WX 985 ; N uniA656 ; G 4522 +U 42583 ; WX 847 ; N uniA657 ; G 4523 +U 42594 ; WX 1024 ; N uniA662 ; G 4524 +U 42595 ; WX 925 ; N uniA663 ; G 4525 +U 42596 ; WX 1014 ; N uniA664 ; G 4526 +U 42597 ; WX 900 ; N uniA665 ; G 4527 +U 42598 ; WX 863 ; N uniA666 ; G 4528 +U 42599 ; WX 1008 ; N uniA667 ; G 4529 +U 42600 ; WX 787 ; N uniA668 ; G 4530 +U 42601 ; WX 612 ; N uniA669 ; G 4531 +U 42602 ; WX 855 ; N uniA66A ; G 4532 +U 42603 ; WX 712 ; N uniA66B ; G 4533 +U 42604 ; WX 1358 ; N uniA66C ; G 4534 +U 42605 ; WX 1019 ; N uniA66D ; G 4535 +U 42606 ; WX 879 ; N uniA66E ; G 4536 +U 42634 ; WX 805 ; N uniA68A ; G 4537 +U 42635 ; WX 722 ; N uniA68B ; G 4538 +U 42636 ; WX 611 ; N uniA68C ; G 4539 +U 42637 ; WX 583 ; N uniA68D ; G 4540 +U 42644 ; WX 686 ; N uniA694 ; G 4541 +U 42645 ; WX 634 ; N uniA695 ; G 4542 +U 42648 ; WX 1358 ; N uniA698 ; G 4543 +U 42649 ; WX 1019 ; N uniA699 ; G 4544 +U 42760 ; WX 493 ; N uniA708 ; G 4545 +U 42761 ; WX 493 ; N uniA709 ; G 4546 +U 42762 ; WX 493 ; N uniA70A ; G 4547 +U 42763 ; WX 493 ; N uniA70B ; G 4548 +U 42764 ; WX 493 ; N uniA70C ; G 4549 +U 42765 ; WX 493 ; N uniA70D ; G 4550 +U 42766 ; WX 493 ; N uniA70E ; G 4551 +U 42767 ; WX 493 ; N uniA70F ; G 4552 +U 42768 ; WX 493 ; N uniA710 ; G 4553 +U 42769 ; WX 493 ; N uniA711 ; G 4554 +U 42770 ; WX 493 ; N uniA712 ; G 4555 +U 42771 ; WX 493 ; N uniA713 ; G 4556 +U 42772 ; WX 493 ; N uniA714 ; G 4557 +U 42773 ; WX 493 ; N uniA715 ; G 4558 +U 42774 ; WX 493 ; N uniA716 ; G 4559 +U 42779 ; WX 369 ; N uniA71B ; G 4560 +U 42780 ; WX 369 ; N uniA71C ; G 4561 +U 42781 ; WX 252 ; N uniA71D ; G 4562 +U 42782 ; WX 252 ; N uniA71E ; G 4563 +U 42783 ; WX 252 ; N uniA71F ; G 4564 +U 42786 ; WX 385 ; N uniA722 ; G 4565 +U 42787 ; WX 356 ; N uniA723 ; G 4566 +U 42788 ; WX 472 ; N uniA724 ; G 4567 +U 42789 ; WX 472 ; N uniA725 ; G 4568 +U 42790 ; WX 752 ; N uniA726 ; G 4569 +U 42791 ; WX 634 ; N uniA727 ; G 4570 +U 42792 ; WX 878 ; N uniA728 ; G 4571 +U 42793 ; WX 709 ; N uniA729 ; G 4572 +U 42794 ; WX 614 ; N uniA72A ; G 4573 +U 42795 ; WX 541 ; N uniA72B ; G 4574 +U 42800 ; WX 491 ; N uniA730 ; G 4575 +U 42801 ; WX 521 ; N uniA731 ; G 4576 +U 42802 ; WX 1250 ; N uniA732 ; G 4577 +U 42803 ; WX 985 ; N uniA733 ; G 4578 +U 42804 ; WX 1219 ; N uniA734 ; G 4579 +U 42805 ; WX 1000 ; N uniA735 ; G 4580 +U 42806 ; WX 1155 ; N uniA736 ; G 4581 +U 42807 ; WX 996 ; N uniA737 ; G 4582 +U 42808 ; WX 971 ; N uniA738 ; G 4583 +U 42809 ; WX 818 ; N uniA739 ; G 4584 +U 42810 ; WX 971 ; N uniA73A ; G 4585 +U 42811 ; WX 818 ; N uniA73B ; G 4586 +U 42812 ; WX 959 ; N uniA73C ; G 4587 +U 42813 ; WX 818 ; N uniA73D ; G 4588 +U 42814 ; WX 698 ; N uniA73E ; G 4589 +U 42815 ; WX 549 ; N uniA73F ; G 4590 +U 42816 ; WX 656 ; N uniA740 ; G 4591 +U 42817 ; WX 579 ; N uniA741 ; G 4592 +U 42822 ; WX 680 ; N uniA746 ; G 4593 +U 42823 ; WX 392 ; N uniA747 ; G 4594 +U 42824 ; WX 582 ; N uniA748 ; G 4595 +U 42825 ; WX 427 ; N uniA749 ; G 4596 +U 42826 ; WX 807 ; N uniA74A ; G 4597 +U 42827 ; WX 704 ; N uniA74B ; G 4598 +U 42830 ; WX 1358 ; N uniA74E ; G 4599 +U 42831 ; WX 1019 ; N uniA74F ; G 4600 +U 42832 ; WX 603 ; N uniA750 ; G 4601 +U 42833 ; WX 635 ; N uniA751 ; G 4602 +U 42834 ; WX 734 ; N uniA752 ; G 4603 +U 42835 ; WX 774 ; N uniA753 ; G 4604 +U 42838 ; WX 787 ; N uniA756 ; G 4605 +U 42839 ; WX 635 ; N uniA757 ; G 4606 +U 42852 ; WX 605 ; N uniA764 ; G 4607 +U 42853 ; WX 635 ; N uniA765 ; G 4608 +U 42854 ; WX 605 ; N uniA766 ; G 4609 +U 42855 ; WX 635 ; N uniA767 ; G 4610 +U 42880 ; WX 557 ; N uniA780 ; G 4611 +U 42881 ; WX 278 ; N uniA781 ; G 4612 +U 42882 ; WX 735 ; N uniA782 ; G 4613 +U 42883 ; WX 634 ; N uniA783 ; G 4614 +U 42889 ; WX 337 ; N uniA789 ; G 4615 +U 42890 ; WX 376 ; N uniA78A ; G 4616 +U 42891 ; WX 401 ; N uniA78B ; G 4617 +U 42892 ; WX 275 ; N uniA78C ; G 4618 +U 42893 ; WX 686 ; N uniA78D ; G 4619 +U 42894 ; WX 487 ; N uniA78E ; G 4620 +U 42896 ; WX 772 ; N uniA790 ; G 4621 +U 42897 ; WX 667 ; N uniA791 ; G 4622 +U 42912 ; WX 775 ; N uniA7A0 ; G 4623 +U 42913 ; WX 635 ; N uniA7A1 ; G 4624 +U 42914 ; WX 656 ; N uniA7A2 ; G 4625 +U 42915 ; WX 579 ; N uniA7A3 ; G 4626 +U 42916 ; WX 748 ; N uniA7A4 ; G 4627 +U 42917 ; WX 634 ; N uniA7A5 ; G 4628 +U 42918 ; WX 695 ; N uniA7A6 ; G 4629 +U 42919 ; WX 411 ; N uniA7A7 ; G 4630 +U 42920 ; WX 635 ; N uniA7A8 ; G 4631 +U 42921 ; WX 521 ; N uniA7A9 ; G 4632 +U 42922 ; WX 872 ; N uniA7AA ; G 4633 +U 43000 ; WX 577 ; N uniA7F8 ; G 4634 +U 43001 ; WX 644 ; N uniA7F9 ; G 4635 +U 43002 ; WX 915 ; N uniA7FA ; G 4636 +U 43003 ; WX 575 ; N uniA7FB ; G 4637 +U 43004 ; WX 603 ; N uniA7FC ; G 4638 +U 43005 ; WX 863 ; N uniA7FD ; G 4639 +U 43006 ; WX 295 ; N uniA7FE ; G 4640 +U 43007 ; WX 1199 ; N uniA7FF ; G 4641 +U 61184 ; WX 213 ; N uni02E5.5 ; G 4642 +U 61185 ; WX 238 ; N uni02E6.5 ; G 4643 +U 61186 ; WX 257 ; N uni02E7.5 ; G 4644 +U 61187 ; WX 264 ; N uni02E8.5 ; G 4645 +U 61188 ; WX 267 ; N uni02E9.5 ; G 4646 +U 61189 ; WX 238 ; N uni02E5.4 ; G 4647 +U 61190 ; WX 213 ; N uni02E6.4 ; G 4648 +U 61191 ; WX 238 ; N uni02E7.4 ; G 4649 +U 61192 ; WX 257 ; N uni02E8.4 ; G 4650 +U 61193 ; WX 264 ; N uni02E9.4 ; G 4651 +U 61194 ; WX 257 ; N uni02E5.3 ; G 4652 +U 61195 ; WX 238 ; N uni02E6.3 ; G 4653 +U 61196 ; WX 213 ; N uni02E7.3 ; G 4654 +U 61197 ; WX 238 ; N uni02E8.3 ; G 4655 +U 61198 ; WX 257 ; N uni02E9.3 ; G 4656 +U 61199 ; WX 264 ; N uni02E5.2 ; G 4657 +U 61200 ; WX 257 ; N uni02E6.2 ; G 4658 +U 61201 ; WX 238 ; N uni02E7.2 ; G 4659 +U 61202 ; WX 213 ; N uni02E8.2 ; G 4660 +U 61203 ; WX 238 ; N uni02E9.2 ; G 4661 +U 61204 ; WX 267 ; N uni02E5.1 ; G 4662 +U 61205 ; WX 264 ; N uni02E6.1 ; G 4663 +U 61206 ; WX 257 ; N uni02E7.1 ; G 4664 +U 61207 ; WX 238 ; N uni02E8.1 ; G 4665 +U 61208 ; WX 213 ; N uni02E9.1 ; G 4666 +U 61209 ; WX 275 ; N stem ; G 4667 +U 62464 ; WX 580 ; N uniF400 ; G 4668 +U 62465 ; WX 580 ; N uniF401 ; G 4669 +U 62466 ; WX 624 ; N uniF402 ; G 4670 +U 62467 ; WX 889 ; N uniF403 ; G 4671 +U 62468 ; WX 585 ; N uniF404 ; G 4672 +U 62469 ; WX 580 ; N uniF405 ; G 4673 +U 62470 ; WX 653 ; N uniF406 ; G 4674 +U 62471 ; WX 882 ; N uniF407 ; G 4675 +U 62472 ; WX 555 ; N uniF408 ; G 4676 +U 62473 ; WX 580 ; N uniF409 ; G 4677 +U 62474 ; WX 1168 ; N uniF40A ; G 4678 +U 62475 ; WX 589 ; N uniF40B ; G 4679 +U 62476 ; WX 590 ; N uniF40C ; G 4680 +U 62477 ; WX 869 ; N uniF40D ; G 4681 +U 62478 ; WX 580 ; N uniF40E ; G 4682 +U 62479 ; WX 589 ; N uniF40F ; G 4683 +U 62480 ; WX 914 ; N uniF410 ; G 4684 +U 62481 ; WX 590 ; N uniF411 ; G 4685 +U 62482 ; WX 731 ; N uniF412 ; G 4686 +U 62483 ; WX 583 ; N uniF413 ; G 4687 +U 62484 ; WX 872 ; N uniF414 ; G 4688 +U 62485 ; WX 589 ; N uniF415 ; G 4689 +U 62486 ; WX 895 ; N uniF416 ; G 4690 +U 62487 ; WX 589 ; N uniF417 ; G 4691 +U 62488 ; WX 589 ; N uniF418 ; G 4692 +U 62489 ; WX 590 ; N uniF419 ; G 4693 +U 62490 ; WX 649 ; N uniF41A ; G 4694 +U 62491 ; WX 589 ; N uniF41B ; G 4695 +U 62492 ; WX 589 ; N uniF41C ; G 4696 +U 62493 ; WX 599 ; N uniF41D ; G 4697 +U 62494 ; WX 590 ; N uniF41E ; G 4698 +U 62495 ; WX 516 ; N uniF41F ; G 4699 +U 62496 ; WX 580 ; N uniF420 ; G 4700 +U 62497 ; WX 584 ; N uniF421 ; G 4701 +U 62498 ; WX 580 ; N uniF422 ; G 4702 +U 62499 ; WX 580 ; N uniF423 ; G 4703 +U 62500 ; WX 581 ; N uniF424 ; G 4704 +U 62501 ; WX 638 ; N uniF425 ; G 4705 +U 62502 ; WX 955 ; N uniF426 ; G 4706 +U 62504 ; WX 931 ; N uniF428 ; G 4707 +U 62505 ; WX 808 ; N uniF429 ; G 4708 +U 62506 ; WX 508 ; N uniF42A ; G 4709 +U 62507 ; WX 508 ; N uniF42B ; G 4710 +U 62508 ; WX 508 ; N uniF42C ; G 4711 +U 62509 ; WX 508 ; N uniF42D ; G 4712 +U 62510 ; WX 508 ; N uniF42E ; G 4713 +U 62511 ; WX 508 ; N uniF42F ; G 4714 +U 62512 ; WX 508 ; N uniF430 ; G 4715 +U 62513 ; WX 508 ; N uniF431 ; G 4716 +U 62514 ; WX 508 ; N uniF432 ; G 4717 +U 62515 ; WX 508 ; N uniF433 ; G 4718 +U 62516 ; WX 518 ; N uniF434 ; G 4719 +U 62517 ; WX 518 ; N uniF435 ; G 4720 +U 62518 ; WX 518 ; N uniF436 ; G 4721 +U 62519 ; WX 787 ; N uniF437 ; G 4722 +U 62520 ; WX 787 ; N uniF438 ; G 4723 +U 62521 ; WX 787 ; N uniF439 ; G 4724 +U 62522 ; WX 787 ; N uniF43A ; G 4725 +U 62523 ; WX 787 ; N uniF43B ; G 4726 +U 62524 ; WX 546 ; N uniF43C ; G 4727 +U 62525 ; WX 546 ; N uniF43D ; G 4728 +U 62526 ; WX 546 ; N uniF43E ; G 4729 +U 62527 ; WX 546 ; N uniF43F ; G 4730 +U 62528 ; WX 546 ; N uniF440 ; G 4731 +U 62529 ; WX 546 ; N uniF441 ; G 4732 +U 63173 ; WX 612 ; N uniF6C5 ; G 4733 +U 64256 ; WX 722 ; N uniFB00 ; G 4734 +U 64257 ; WX 646 ; N fi ; G 4735 +U 64258 ; WX 646 ; N fl ; G 4736 +U 64259 ; WX 1000 ; N uniFB03 ; G 4737 +U 64260 ; WX 1000 ; N uniFB04 ; G 4738 +U 64261 ; WX 686 ; N uniFB05 ; G 4739 +U 64262 ; WX 861 ; N uniFB06 ; G 4740 +U 64275 ; WX 1202 ; N uniFB13 ; G 4741 +U 64276 ; WX 1202 ; N uniFB14 ; G 4742 +U 64277 ; WX 1196 ; N uniFB15 ; G 4743 +U 64278 ; WX 1186 ; N uniFB16 ; G 4744 +U 64279 ; WX 1529 ; N uniFB17 ; G 4745 +U 64285 ; WX 224 ; N uniFB1D ; G 4746 +U 64286 ; WX 0 ; N uniFB1E ; G 4747 +U 64287 ; WX 471 ; N uniFB1F ; G 4748 +U 64288 ; WX 636 ; N uniFB20 ; G 4749 +U 64289 ; WX 856 ; N uniFB21 ; G 4750 +U 64290 ; WX 774 ; N uniFB22 ; G 4751 +U 64291 ; WX 906 ; N uniFB23 ; G 4752 +U 64292 ; WX 771 ; N uniFB24 ; G 4753 +U 64293 ; WX 843 ; N uniFB25 ; G 4754 +U 64294 ; WX 855 ; N uniFB26 ; G 4755 +U 64295 ; WX 807 ; N uniFB27 ; G 4756 +U 64296 ; WX 875 ; N uniFB28 ; G 4757 +U 64297 ; WX 838 ; N uniFB29 ; G 4758 +U 64298 ; WX 708 ; N uniFB2A ; G 4759 +U 64299 ; WX 708 ; N uniFB2B ; G 4760 +U 64300 ; WX 708 ; N uniFB2C ; G 4761 +U 64301 ; WX 708 ; N uniFB2D ; G 4762 +U 64302 ; WX 668 ; N uniFB2E ; G 4763 +U 64303 ; WX 668 ; N uniFB2F ; G 4764 +U 64304 ; WX 668 ; N uniFB30 ; G 4765 +U 64305 ; WX 578 ; N uniFB31 ; G 4766 +U 64306 ; WX 412 ; N uniFB32 ; G 4767 +U 64307 ; WX 546 ; N uniFB33 ; G 4768 +U 64308 ; WX 653 ; N uniFB34 ; G 4769 +U 64309 ; WX 272 ; N uniFB35 ; G 4770 +U 64310 ; WX 346 ; N uniFB36 ; G 4771 +U 64311 ; WX 1000 ; N uniFB37 ; G 4772 +U 64312 ; WX 648 ; N uniFB38 ; G 4773 +U 64313 ; WX 307 ; N uniFB39 ; G 4774 +U 64314 ; WX 537 ; N uniFB3A ; G 4775 +U 64315 ; WX 529 ; N uniFB3B ; G 4776 +U 64316 ; WX 568 ; N uniFB3C ; G 4777 +U 64317 ; WX 1000 ; N uniFB3D ; G 4778 +U 64318 ; WX 679 ; N uniFB3E ; G 4779 +U 64319 ; WX 1000 ; N uniFB3F ; G 4780 +U 64320 ; WX 400 ; N uniFB40 ; G 4781 +U 64321 ; WX 649 ; N uniFB41 ; G 4782 +U 64322 ; WX 1000 ; N uniFB42 ; G 4783 +U 64323 ; WX 640 ; N uniFB43 ; G 4784 +U 64324 ; WX 625 ; N uniFB44 ; G 4785 +U 64325 ; WX 1000 ; N uniFB45 ; G 4786 +U 64326 ; WX 593 ; N uniFB46 ; G 4787 +U 64327 ; WX 709 ; N uniFB47 ; G 4788 +U 64328 ; WX 564 ; N uniFB48 ; G 4789 +U 64329 ; WX 708 ; N uniFB49 ; G 4790 +U 64330 ; WX 657 ; N uniFB4A ; G 4791 +U 64331 ; WX 272 ; N uniFB4B ; G 4792 +U 64332 ; WX 578 ; N uniFB4C ; G 4793 +U 64333 ; WX 529 ; N uniFB4D ; G 4794 +U 64334 ; WX 625 ; N uniFB4E ; G 4795 +U 64335 ; WX 629 ; N uniFB4F ; G 4796 +U 65024 ; WX 0 ; N uniFE00 ; G 4797 +U 65025 ; WX 0 ; N uniFE01 ; G 4798 +U 65026 ; WX 0 ; N uniFE02 ; G 4799 +U 65027 ; WX 0 ; N uniFE03 ; G 4800 +U 65028 ; WX 0 ; N uniFE04 ; G 4801 +U 65029 ; WX 0 ; N uniFE05 ; G 4802 +U 65030 ; WX 0 ; N uniFE06 ; G 4803 +U 65031 ; WX 0 ; N uniFE07 ; G 4804 +U 65032 ; WX 0 ; N uniFE08 ; G 4805 +U 65033 ; WX 0 ; N uniFE09 ; G 4806 +U 65034 ; WX 0 ; N uniFE0A ; G 4807 +U 65035 ; WX 0 ; N uniFE0B ; G 4808 +U 65036 ; WX 0 ; N uniFE0C ; G 4809 +U 65037 ; WX 0 ; N uniFE0D ; G 4810 +U 65038 ; WX 0 ; N uniFE0E ; G 4811 +U 65039 ; WX 0 ; N uniFE0F ; G 4812 +U 65056 ; WX 0 ; N uniFE20 ; G 4813 +U 65057 ; WX 0 ; N uniFE21 ; G 4814 +U 65058 ; WX 0 ; N uniFE22 ; G 4815 +U 65059 ; WX 0 ; N uniFE23 ; G 4816 +U 65529 ; WX 0 ; N uniFFF9 ; G 4817 +U 65530 ; WX 0 ; N uniFFFA ; G 4818 +U 65531 ; WX 0 ; N uniFFFB ; G 4819 +U 65532 ; WX 0 ; N uniFFFC ; G 4820 +U 65533 ; WX 1025 ; N uniFFFD ; G 4821 +EndCharMetrics +StartKernData +StartKernPairs 1029 + +KPX dollar seven -149 +KPX dollar nine -102 +KPX dollar colon -36 +KPX dollar Hcircumflex -149 +KPX dollar Hbar -149 +KPX dollar Kcommaaccent -36 +KPX dollar uni01DC -149 + +KPX percent less -36 +KPX percent kgreenlandic -36 +KPX percent lacute -36 +KPX percent uni01F4 -36 + +KPX ampersand six 38 +KPX ampersand Gcircumflex 38 +KPX ampersand Gbreve 38 +KPX ampersand Gdotaccent 38 +KPX ampersand Gcommaaccent 38 +KPX ampersand uni01DA 38 + +KPX parenright dollar -120 +KPX parenright X -83 +KPX parenright guillemotright -83 +KPX parenright onequarter -83 +KPX parenright onehalf -83 +KPX parenright threequarters -83 +KPX parenright Acircumflex -120 +KPX parenright Adieresis -120 +KPX parenright AE -120 +KPX parenright imacron -83 +KPX parenright ibreve -83 +KPX parenright iogonek -83 +KPX parenright dotlessi -83 +KPX parenright ij -83 +KPX parenright jcircumflex -83 + +KPX period ampersand -55 +KPX period two -55 +KPX period eight -36 +KPX period D -73 +KPX period H -73 +KPX period R -73 +KPX period X -55 +KPX period backslash -55 +KPX period cent -73 +KPX period sterling -73 +KPX period currency -73 +KPX period yen -73 +KPX period brokenbar -73 +KPX period section -73 +KPX period dieresis -36 +KPX period ordfeminine -73 +KPX period guillemotleft -73 +KPX period logicalnot -73 +KPX period sfthyphen -73 +KPX period acute -73 +KPX period mu -73 +KPX period paragraph -73 +KPX period periodcentered -73 +KPX period cedilla -73 +KPX period ordmasculine -92 +KPX period guillemotright -55 +KPX period onequarter -55 +KPX period onehalf -55 +KPX period threequarters -55 +KPX period questiondown -55 +KPX period Aacute -55 +KPX period Egrave -55 +KPX period Icircumflex -55 +KPX period Yacute -73 +KPX period Ebreve -55 +KPX period ebreve -92 +KPX period Idot -36 +KPX period dotlessi -55 + +KPX slash two -63 +KPX slash seven -139 +KPX slash nine -149 +KPX slash colon -83 +KPX slash less -196 +KPX slash backslash -73 +KPX slash questiondown -73 +KPX slash Aacute -73 +KPX slash Ebreve -63 +KPX slash Hbar -139 +KPX slash lacute -196 + +KPX two semicolon -55 + +KPX three dollar -102 + + +KPX six six -73 +KPX six Gdotaccent -73 +KPX six Gcommaaccent -73 + +KPX seven dollar -188 +KPX seven D -215 +KPX seven F -253 +KPX seven H -253 +KPX seven R -253 +KPX seven U -159 +KPX seven V -243 +KPX seven X -206 +KPX seven Z -167 +KPX seven backslash -178 +KPX seven cent -215 +KPX seven sterling -215 +KPX seven currency -215 +KPX seven yen -215 +KPX seven brokenbar -215 +KPX seven section -215 +KPX seven dieresis -253 +KPX seven copyright -253 +KPX seven ordfeminine -253 +KPX seven guillemotleft -253 +KPX seven logicalnot -253 +KPX seven sfthyphen -253 +KPX seven acute -253 +KPX seven mu -253 +KPX seven paragraph -253 +KPX seven periodcentered -253 +KPX seven cedilla -253 +KPX seven ordmasculine -253 +KPX seven guillemotright -206 +KPX seven onequarter -206 +KPX seven onehalf -206 +KPX seven threequarters -206 +KPX seven questiondown -178 +KPX seven Aacute -178 +KPX seven Eacute -253 +KPX seven Idieresis -253 +KPX seven Yacute -253 +KPX seven ebreve -253 +KPX seven edotaccent -159 +KPX seven ecaron -159 +KPX seven gdotaccent -243 +KPX seven gcommaaccent -243 +KPX seven dotlessi -206 + +KPX nine dollar -139 +KPX nine D -131 +KPX nine H -120 +KPX nine R -120 +KPX nine X -36 +KPX nine cent -131 +KPX nine sterling -131 +KPX nine currency -131 +KPX nine yen -131 +KPX nine brokenbar -131 +KPX nine section -131 +KPX nine dieresis -149 +KPX nine ordfeminine -120 +KPX nine guillemotleft -120 +KPX nine logicalnot -120 +KPX nine sfthyphen -120 +KPX nine acute -120 +KPX nine mu -120 +KPX nine paragraph -120 +KPX nine periodcentered -120 +KPX nine cedilla -120 +KPX nine ordmasculine -120 +KPX nine guillemotright -36 +KPX nine onequarter -36 +KPX nine onehalf -36 +KPX nine threequarters -36 +KPX nine Yacute -120 +KPX nine ebreve -120 +KPX nine dotlessi -36 + +KPX colon dollar -102 +KPX colon D -112 +KPX colon U -36 +KPX colon cent -112 +KPX colon sterling -112 +KPX colon currency -112 +KPX colon yen -112 +KPX colon brokenbar -112 +KPX colon section -112 +KPX colon dieresis -112 +KPX colon edotaccent -36 +KPX colon ecaron -36 + +KPX semicolon ampersand -36 +KPX semicolon two -73 +KPX semicolon Egrave -36 +KPX semicolon Icircumflex -36 +KPX semicolon Ebreve -55 + +KPX less dollar -159 +KPX less ampersand -36 +KPX less two -36 +KPX less D -188 +KPX less H -225 +KPX less L -36 +KPX less R -225 +KPX less X -188 +KPX less cent -188 +KPX less sterling -188 +KPX less currency -188 +KPX less yen -188 +KPX less brokenbar -188 +KPX less section -188 +KPX less dieresis -188 +KPX less ordfeminine -225 +KPX less guillemotleft -225 +KPX less logicalnot -225 +KPX less sfthyphen -225 +KPX less acute -225 +KPX less mu -225 +KPX less paragraph -225 +KPX less periodcentered -225 +KPX less cedilla -225 +KPX less ordmasculine -225 +KPX less guillemotright -188 +KPX less onequarter -188 +KPX less onehalf -188 +KPX less threequarters -188 +KPX less Egrave -36 +KPX less Icircumflex -36 +KPX less Yacute -225 +KPX less Ebreve -36 +KPX less ebreve -225 +KPX less dotlessi -188 + + + + + + + + + + +KPX Acircumflex seven -149 +KPX Acircumflex nine -102 +KPX Acircumflex colon -36 +KPX Acircumflex Hcircumflex -149 +KPX Acircumflex Hbar -149 +KPX Acircumflex Kcommaaccent -36 +KPX Acircumflex uni01DC -149 + +KPX Adieresis seven -149 +KPX Adieresis nine -102 +KPX Adieresis colon -36 +KPX Adieresis Hcircumflex -149 +KPX Adieresis Hbar -149 +KPX Adieresis Kcommaaccent -36 +KPX Adieresis uni01DC -149 + +KPX AE seven -149 +KPX AE nine -102 +KPX AE colon -36 +KPX AE Hcircumflex -149 +KPX AE Hbar -149 +KPX AE Kcommaaccent -36 +KPX AE uni01DC -149 + +KPX Egrave six 38 +KPX Egrave Gcircumflex 38 +KPX Egrave Gbreve 38 +KPX Egrave Gdotaccent 38 +KPX Egrave Gcommaaccent 38 +KPX Egrave uni01DA 38 + +KPX Ecircumflex six 38 +KPX Ecircumflex Gcircumflex 38 +KPX Ecircumflex Gbreve 38 +KPX Ecircumflex Gdotaccent 38 +KPX Ecircumflex Gcommaaccent 38 +KPX Ecircumflex uni01DA 38 + +KPX Igrave six 38 +KPX Igrave Gcircumflex 38 +KPX Igrave Gbreve 38 +KPX Igrave Gdotaccent 38 +KPX Igrave Gcommaaccent 38 +KPX Igrave uni01DA 38 + +KPX Icircumflex six 38 +KPX Icircumflex Gcircumflex 38 +KPX Icircumflex Gbreve 38 +KPX Icircumflex Gdotaccent 38 +KPX Icircumflex Gcommaaccent 38 +KPX Icircumflex uni01DA 38 + +KPX ucircumflex two -63 +KPX ucircumflex seven -139 +KPX ucircumflex nine -149 +KPX ucircumflex colon -83 +KPX ucircumflex less -196 +KPX ucircumflex backslash -73 +KPX ucircumflex questiondown -73 +KPX ucircumflex Aacute -73 +KPX ucircumflex Ebreve -63 +KPX ucircumflex Hbar -139 +KPX ucircumflex lacute -196 + +KPX ydieresis two -63 +KPX ydieresis seven -139 +KPX ydieresis nine -149 +KPX ydieresis colon -83 +KPX ydieresis less -196 +KPX ydieresis backslash -73 +KPX ydieresis questiondown -73 +KPX ydieresis Aacute -73 +KPX ydieresis Ebreve -63 +KPX ydieresis Hbar -139 +KPX ydieresis lacute -196 + +KPX abreve two -63 +KPX abreve seven -139 +KPX abreve nine -149 +KPX abreve colon -83 +KPX abreve less -196 +KPX abreve backslash -73 +KPX abreve questiondown -73 +KPX abreve Aacute -73 +KPX abreve Ebreve -63 +KPX abreve Hbar -139 +KPX abreve lacute -196 + + + +KPX Gdotaccent six -73 +KPX Gdotaccent Gdotaccent -73 +KPX Gdotaccent Gcommaaccent -73 + +KPX Gcommaaccent six -73 +KPX Gcommaaccent Gdotaccent -73 +KPX Gcommaaccent Gcommaaccent -73 + +KPX Hbar dollar -188 +KPX Hbar D -215 +KPX Hbar F -253 +KPX Hbar H -253 +KPX Hbar R -253 +KPX Hbar U -159 +KPX Hbar V -243 +KPX Hbar X -206 +KPX Hbar Z -167 +KPX Hbar backslash -178 +KPX Hbar cent -215 +KPX Hbar sterling -215 +KPX Hbar currency -215 +KPX Hbar yen -215 +KPX Hbar brokenbar -215 +KPX Hbar section -215 +KPX Hbar dieresis -253 +KPX Hbar copyright -253 +KPX Hbar ordfeminine -253 +KPX Hbar guillemotleft -253 +KPX Hbar logicalnot -253 +KPX Hbar sfthyphen -253 +KPX Hbar acute -253 +KPX Hbar mu -253 +KPX Hbar paragraph -253 +KPX Hbar periodcentered -253 +KPX Hbar cedilla -253 +KPX Hbar ordmasculine -253 +KPX Hbar guillemotright -206 +KPX Hbar onequarter -206 +KPX Hbar onehalf -206 +KPX Hbar threequarters -206 +KPX Hbar questiondown -178 +KPX Hbar Aacute -178 +KPX Hbar Eacute -253 +KPX Hbar Idieresis -253 +KPX Hbar Yacute -253 +KPX Hbar ebreve -253 +KPX Hbar edotaccent -159 +KPX Hbar ecaron -159 +KPX Hbar gdotaccent -243 +KPX Hbar gcommaaccent -243 +KPX Hbar dotlessi -206 + +KPX lacute dollar -159 +KPX lacute ampersand -36 +KPX lacute two -36 +KPX lacute D -188 +KPX lacute H -225 +KPX lacute L -36 +KPX lacute R -225 +KPX lacute X -188 +KPX lacute cent -188 +KPX lacute sterling -188 +KPX lacute currency -188 +KPX lacute yen -188 +KPX lacute brokenbar -188 +KPX lacute section -188 +KPX lacute dieresis -188 +KPX lacute ordfeminine -225 +KPX lacute guillemotleft -225 +KPX lacute logicalnot -225 +KPX lacute sfthyphen -225 +KPX lacute acute -225 +KPX lacute mu -225 +KPX lacute paragraph -225 +KPX lacute periodcentered -225 +KPX lacute cedilla -225 +KPX lacute ordmasculine -225 +KPX lacute guillemotright -188 +KPX lacute onequarter -188 +KPX lacute onehalf -188 +KPX lacute threequarters -188 +KPX lacute Egrave -36 +KPX lacute Icircumflex -36 +KPX lacute Yacute -225 +KPX lacute Ebreve -36 +KPX lacute ebreve -225 +KPX lacute dotlessi -188 + + +KPX uni027D dollar -243 +KPX uni027D nine 75 +KPX uni027D less 47 +KPX uni027D lacute 47 +EndKernPairs +EndKernData +EndFontMetrics diff --git a/public_html/2022/newcms/pdf/ttfonts/DejaVuSans.ttf b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSans.ttf similarity index 52% rename from public_html/2022/newcms/pdf/ttfonts/DejaVuSans.ttf rename to public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSans.ttf index a36615b..e5f7eec 100644 Binary files a/public_html/2022/newcms/pdf/ttfonts/DejaVuSans.ttf and b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSans.ttf differ diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSans.ufm b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSans.ufm new file mode 100644 index 0000000..82dfd81 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSans.ufm @@ -0,0 +1,6661 @@ +StartFontMetrics 4.1 +Notice Converted by PHP-font-lib +Comment https://github.com/PhenX/php-font-lib +EncodingScheme FontSpecific +FontName DejaVu Sans +FontSubfamily Book +UniqueID DejaVu Sans +FullName DejaVu Sans +Version Version 2.37 +PostScriptName DejaVuSans +Manufacturer DejaVu fonts team +FontVendorURL http://dejavu.sourceforge.net +LicenseURL http://dejavu.sourceforge.net/wiki/index.php/License +PreferredFamily DejaVu Sans +PreferredSubfamily Book +Weight Medium +ItalicAngle 0 +IsFixedPitch false +UnderlineThickness 44 +UnderlinePosition -63 +FontHeightOffset 0 +Ascender 928 +Descender -236 +FontBBox -1021 -463 1793 1232 +StartCharMetrics 6253 +U 32 ; WX 318 ; N space ; G 3 +U 33 ; WX 401 ; N exclam ; G 4 +U 34 ; WX 460 ; N quotedbl ; G 5 +U 35 ; WX 838 ; N numbersign ; G 6 +U 36 ; WX 636 ; N dollar ; G 7 +U 37 ; WX 950 ; N percent ; G 8 +U 38 ; WX 780 ; N ampersand ; G 9 +U 39 ; WX 275 ; N quotesingle ; G 10 +U 40 ; WX 390 ; N parenleft ; G 11 +U 41 ; WX 390 ; N parenright ; G 12 +U 42 ; WX 500 ; N asterisk ; G 13 +U 43 ; WX 838 ; N plus ; G 14 +U 44 ; WX 318 ; N comma ; G 15 +U 45 ; WX 361 ; N hyphen ; G 16 +U 46 ; WX 318 ; N period ; G 17 +U 47 ; WX 337 ; N slash ; G 18 +U 48 ; WX 636 ; N zero ; G 19 +U 49 ; WX 636 ; N one ; G 20 +U 50 ; WX 636 ; N two ; G 21 +U 51 ; WX 636 ; N three ; G 22 +U 52 ; WX 636 ; N four ; G 23 +U 53 ; WX 636 ; N five ; G 24 +U 54 ; WX 636 ; N six ; G 25 +U 55 ; WX 636 ; N seven ; G 26 +U 56 ; WX 636 ; N eight ; G 27 +U 57 ; WX 636 ; N nine ; G 28 +U 58 ; WX 337 ; N colon ; G 29 +U 59 ; WX 337 ; N semicolon ; G 30 +U 60 ; WX 838 ; N less ; G 31 +U 61 ; WX 838 ; N equal ; G 32 +U 62 ; WX 838 ; N greater ; G 33 +U 63 ; WX 531 ; N question ; G 34 +U 64 ; WX 1000 ; N at ; G 35 +U 65 ; WX 684 ; N A ; G 36 +U 66 ; WX 686 ; N B ; G 37 +U 67 ; WX 698 ; N C ; G 38 +U 68 ; WX 770 ; N D ; G 39 +U 69 ; WX 632 ; N E ; G 40 +U 70 ; WX 575 ; N F ; G 41 +U 71 ; WX 775 ; N G ; G 42 +U 72 ; WX 752 ; N H ; G 43 +U 73 ; WX 295 ; N I ; G 44 +U 74 ; WX 295 ; N J ; G 45 +U 75 ; WX 656 ; N K ; G 46 +U 76 ; WX 557 ; N L ; G 47 +U 77 ; WX 863 ; N M ; G 48 +U 78 ; WX 748 ; N N ; G 49 +U 79 ; WX 787 ; N O ; G 50 +U 80 ; WX 603 ; N P ; G 51 +U 81 ; WX 787 ; N Q ; G 52 +U 82 ; WX 695 ; N R ; G 53 +U 83 ; WX 635 ; N S ; G 54 +U 84 ; WX 611 ; N T ; G 55 +U 85 ; WX 732 ; N U ; G 56 +U 86 ; WX 684 ; N V ; G 57 +U 87 ; WX 989 ; N W ; G 58 +U 88 ; WX 685 ; N X ; G 59 +U 89 ; WX 611 ; N Y ; G 60 +U 90 ; WX 685 ; N Z ; G 61 +U 91 ; WX 390 ; N bracketleft ; G 62 +U 92 ; WX 337 ; N backslash ; G 63 +U 93 ; WX 390 ; N bracketright ; G 64 +U 94 ; WX 838 ; N asciicircum ; G 65 +U 95 ; WX 500 ; N underscore ; G 66 +U 96 ; WX 500 ; N grave ; G 67 +U 97 ; WX 613 ; N a ; G 68 +U 98 ; WX 635 ; N b ; G 69 +U 99 ; WX 550 ; N c ; G 70 +U 100 ; WX 635 ; N d ; G 71 +U 101 ; WX 615 ; N e ; G 72 +U 102 ; WX 352 ; N f ; G 73 +U 103 ; WX 635 ; N g ; G 74 +U 104 ; WX 634 ; N h ; G 75 +U 105 ; WX 278 ; N i ; G 76 +U 106 ; WX 278 ; N j ; G 77 +U 107 ; WX 579 ; N k ; G 78 +U 108 ; WX 278 ; N l ; G 79 +U 109 ; WX 974 ; N m ; G 80 +U 110 ; WX 634 ; N n ; G 81 +U 111 ; WX 612 ; N o ; G 82 +U 112 ; WX 635 ; N p ; G 83 +U 113 ; WX 635 ; N q ; G 84 +U 114 ; WX 411 ; N r ; G 85 +U 115 ; WX 521 ; N s ; G 86 +U 116 ; WX 392 ; N t ; G 87 +U 117 ; WX 634 ; N u ; G 88 +U 118 ; WX 592 ; N v ; G 89 +U 119 ; WX 818 ; N w ; G 90 +U 120 ; WX 592 ; N x ; G 91 +U 121 ; WX 592 ; N y ; G 92 +U 122 ; WX 525 ; N z ; G 93 +U 123 ; WX 636 ; N braceleft ; G 94 +U 124 ; WX 337 ; N bar ; G 95 +U 125 ; WX 636 ; N braceright ; G 96 +U 126 ; WX 838 ; N asciitilde ; G 97 +U 160 ; WX 318 ; N nbspace ; G 98 +U 161 ; WX 401 ; N exclamdown ; G 99 +U 162 ; WX 636 ; N cent ; G 100 +U 163 ; WX 636 ; N sterling ; G 101 +U 164 ; WX 636 ; N currency ; G 102 +U 165 ; WX 636 ; N yen ; G 103 +U 166 ; WX 337 ; N brokenbar ; G 104 +U 167 ; WX 500 ; N section ; G 105 +U 168 ; WX 500 ; N dieresis ; G 106 +U 169 ; WX 1000 ; N copyright ; G 107 +U 170 ; WX 471 ; N ordfeminine ; G 108 +U 171 ; WX 612 ; N guillemotleft ; G 109 +U 172 ; WX 838 ; N logicalnot ; G 110 +U 173 ; WX 361 ; N sfthyphen ; G 111 +U 174 ; WX 1000 ; N registered ; G 112 +U 175 ; WX 500 ; N macron ; G 113 +U 176 ; WX 500 ; N degree ; G 114 +U 177 ; WX 838 ; N plusminus ; G 115 +U 178 ; WX 401 ; N twosuperior ; G 116 +U 179 ; WX 401 ; N threesuperior ; G 117 +U 180 ; WX 500 ; N acute ; G 118 +U 181 ; WX 636 ; N mu ; G 119 +U 182 ; WX 636 ; N paragraph ; G 120 +U 183 ; WX 318 ; N periodcentered ; G 121 +U 184 ; WX 500 ; N cedilla ; G 122 +U 185 ; WX 401 ; N onesuperior ; G 123 +U 186 ; WX 471 ; N ordmasculine ; G 124 +U 187 ; WX 612 ; N guillemotright ; G 125 +U 188 ; WX 969 ; N onequarter ; G 126 +U 189 ; WX 969 ; N onehalf ; G 127 +U 190 ; WX 969 ; N threequarters ; G 128 +U 191 ; WX 531 ; N questiondown ; G 129 +U 192 ; WX 684 ; N Agrave ; G 130 +U 193 ; WX 684 ; N Aacute ; G 131 +U 194 ; WX 684 ; N Acircumflex ; G 132 +U 195 ; WX 684 ; N Atilde ; G 133 +U 196 ; WX 684 ; N Adieresis ; G 134 +U 197 ; WX 684 ; N Aring ; G 135 +U 198 ; WX 974 ; N AE ; G 136 +U 199 ; WX 698 ; N Ccedilla ; G 137 +U 200 ; WX 632 ; N Egrave ; G 138 +U 201 ; WX 632 ; N Eacute ; G 139 +U 202 ; WX 632 ; N Ecircumflex ; G 140 +U 203 ; WX 632 ; N Edieresis ; G 141 +U 204 ; WX 295 ; N Igrave ; G 142 +U 205 ; WX 295 ; N Iacute ; G 143 +U 206 ; WX 295 ; N Icircumflex ; G 144 +U 207 ; WX 295 ; N Idieresis ; G 145 +U 208 ; WX 775 ; N Eth ; G 146 +U 209 ; WX 748 ; N Ntilde ; G 147 +U 210 ; WX 787 ; N Ograve ; G 148 +U 211 ; WX 787 ; N Oacute ; G 149 +U 212 ; WX 787 ; N Ocircumflex ; G 150 +U 213 ; WX 787 ; N Otilde ; G 151 +U 214 ; WX 787 ; N Odieresis ; G 152 +U 215 ; WX 838 ; N multiply ; G 153 +U 216 ; WX 787 ; N Oslash ; G 154 +U 217 ; WX 732 ; N Ugrave ; G 155 +U 218 ; WX 732 ; N Uacute ; G 156 +U 219 ; WX 732 ; N Ucircumflex ; G 157 +U 220 ; WX 732 ; N Udieresis ; G 158 +U 221 ; WX 611 ; N Yacute ; G 159 +U 222 ; WX 605 ; N Thorn ; G 160 +U 223 ; WX 630 ; N germandbls ; G 161 +U 224 ; WX 613 ; N agrave ; G 162 +U 225 ; WX 613 ; N aacute ; G 163 +U 226 ; WX 613 ; N acircumflex ; G 164 +U 227 ; WX 613 ; N atilde ; G 165 +U 228 ; WX 613 ; N adieresis ; G 166 +U 229 ; WX 613 ; N aring ; G 167 +U 230 ; WX 982 ; N ae ; G 168 +U 231 ; WX 550 ; N ccedilla ; G 169 +U 232 ; WX 615 ; N egrave ; G 170 +U 233 ; WX 615 ; N eacute ; G 171 +U 234 ; WX 615 ; N ecircumflex ; G 172 +U 235 ; WX 615 ; N edieresis ; G 173 +U 236 ; WX 278 ; N igrave ; G 174 +U 237 ; WX 278 ; N iacute ; G 175 +U 238 ; WX 278 ; N icircumflex ; G 176 +U 239 ; WX 278 ; N idieresis ; G 177 +U 240 ; WX 612 ; N eth ; G 178 +U 241 ; WX 634 ; N ntilde ; G 179 +U 242 ; WX 612 ; N ograve ; G 180 +U 243 ; WX 612 ; N oacute ; G 181 +U 244 ; WX 612 ; N ocircumflex ; G 182 +U 245 ; WX 612 ; N otilde ; G 183 +U 246 ; WX 612 ; N odieresis ; G 184 +U 247 ; WX 838 ; N divide ; G 185 +U 248 ; WX 612 ; N oslash ; G 186 +U 249 ; WX 634 ; N ugrave ; G 187 +U 250 ; WX 634 ; N uacute ; G 188 +U 251 ; WX 634 ; N ucircumflex ; G 189 +U 252 ; WX 634 ; N udieresis ; G 190 +U 253 ; WX 592 ; N yacute ; G 191 +U 254 ; WX 635 ; N thorn ; G 192 +U 255 ; WX 592 ; N ydieresis ; G 193 +U 256 ; WX 684 ; N Amacron ; G 194 +U 257 ; WX 613 ; N amacron ; G 195 +U 258 ; WX 684 ; N Abreve ; G 196 +U 259 ; WX 613 ; N abreve ; G 197 +U 260 ; WX 684 ; N Aogonek ; G 198 +U 261 ; WX 613 ; N aogonek ; G 199 +U 262 ; WX 698 ; N Cacute ; G 200 +U 263 ; WX 550 ; N cacute ; G 201 +U 264 ; WX 698 ; N Ccircumflex ; G 202 +U 265 ; WX 550 ; N ccircumflex ; G 203 +U 266 ; WX 698 ; N Cdotaccent ; G 204 +U 267 ; WX 550 ; N cdotaccent ; G 205 +U 268 ; WX 698 ; N Ccaron ; G 206 +U 269 ; WX 550 ; N ccaron ; G 207 +U 270 ; WX 770 ; N Dcaron ; G 208 +U 271 ; WX 635 ; N dcaron ; G 209 +U 272 ; WX 775 ; N Dcroat ; G 210 +U 273 ; WX 635 ; N dmacron ; G 211 +U 274 ; WX 632 ; N Emacron ; G 212 +U 275 ; WX 615 ; N emacron ; G 213 +U 276 ; WX 632 ; N Ebreve ; G 214 +U 277 ; WX 615 ; N ebreve ; G 215 +U 278 ; WX 632 ; N Edotaccent ; G 216 +U 279 ; WX 615 ; N edotaccent ; G 217 +U 280 ; WX 632 ; N Eogonek ; G 218 +U 281 ; WX 615 ; N eogonek ; G 219 +U 282 ; WX 632 ; N Ecaron ; G 220 +U 283 ; WX 615 ; N ecaron ; G 221 +U 284 ; WX 775 ; N Gcircumflex ; G 222 +U 285 ; WX 635 ; N gcircumflex ; G 223 +U 286 ; WX 775 ; N Gbreve ; G 224 +U 287 ; WX 635 ; N gbreve ; G 225 +U 288 ; WX 775 ; N Gdotaccent ; G 226 +U 289 ; WX 635 ; N gdotaccent ; G 227 +U 290 ; WX 775 ; N Gcommaaccent ; G 228 +U 291 ; WX 635 ; N gcommaaccent ; G 229 +U 292 ; WX 752 ; N Hcircumflex ; G 230 +U 293 ; WX 634 ; N hcircumflex ; G 231 +U 294 ; WX 916 ; N Hbar ; G 232 +U 295 ; WX 695 ; N hbar ; G 233 +U 296 ; WX 295 ; N Itilde ; G 234 +U 297 ; WX 278 ; N itilde ; G 235 +U 298 ; WX 295 ; N Imacron ; G 236 +U 299 ; WX 278 ; N imacron ; G 237 +U 300 ; WX 295 ; N Ibreve ; G 238 +U 301 ; WX 278 ; N ibreve ; G 239 +U 302 ; WX 295 ; N Iogonek ; G 240 +U 303 ; WX 278 ; N iogonek ; G 241 +U 304 ; WX 295 ; N Idot ; G 242 +U 305 ; WX 278 ; N dotlessi ; G 243 +U 306 ; WX 590 ; N IJ ; G 244 +U 307 ; WX 556 ; N ij ; G 245 +U 308 ; WX 295 ; N Jcircumflex ; G 246 +U 309 ; WX 278 ; N jcircumflex ; G 247 +U 310 ; WX 656 ; N Kcommaaccent ; G 248 +U 311 ; WX 579 ; N kcommaaccent ; G 249 +U 312 ; WX 579 ; N kgreenlandic ; G 250 +U 313 ; WX 557 ; N Lacute ; G 251 +U 314 ; WX 278 ; N lacute ; G 252 +U 315 ; WX 557 ; N Lcommaaccent ; G 253 +U 316 ; WX 278 ; N lcommaaccent ; G 254 +U 317 ; WX 557 ; N Lcaron ; G 255 +U 318 ; WX 375 ; N lcaron ; G 256 +U 319 ; WX 557 ; N Ldot ; G 257 +U 320 ; WX 342 ; N ldot ; G 258 +U 321 ; WX 562 ; N Lslash ; G 259 +U 322 ; WX 284 ; N lslash ; G 260 +U 323 ; WX 748 ; N Nacute ; G 261 +U 324 ; WX 634 ; N nacute ; G 262 +U 325 ; WX 748 ; N Ncommaaccent ; G 263 +U 326 ; WX 634 ; N ncommaaccent ; G 264 +U 327 ; WX 748 ; N Ncaron ; G 265 +U 328 ; WX 634 ; N ncaron ; G 266 +U 329 ; WX 813 ; N napostrophe ; G 267 +U 330 ; WX 748 ; N Eng ; G 268 +U 331 ; WX 634 ; N eng ; G 269 +U 332 ; WX 787 ; N Omacron ; G 270 +U 333 ; WX 612 ; N omacron ; G 271 +U 334 ; WX 787 ; N Obreve ; G 272 +U 335 ; WX 612 ; N obreve ; G 273 +U 336 ; WX 787 ; N Ohungarumlaut ; G 274 +U 337 ; WX 612 ; N ohungarumlaut ; G 275 +U 338 ; WX 1070 ; N OE ; G 276 +U 339 ; WX 1023 ; N oe ; G 277 +U 340 ; WX 695 ; N Racute ; G 278 +U 341 ; WX 411 ; N racute ; G 279 +U 342 ; WX 695 ; N Rcommaaccent ; G 280 +U 343 ; WX 411 ; N rcommaaccent ; G 281 +U 344 ; WX 695 ; N Rcaron ; G 282 +U 345 ; WX 411 ; N rcaron ; G 283 +U 346 ; WX 635 ; N Sacute ; G 284 +U 347 ; WX 521 ; N sacute ; G 285 +U 348 ; WX 635 ; N Scircumflex ; G 286 +U 349 ; WX 521 ; N scircumflex ; G 287 +U 350 ; WX 635 ; N Scedilla ; G 288 +U 351 ; WX 521 ; N scedilla ; G 289 +U 352 ; WX 635 ; N Scaron ; G 290 +U 353 ; WX 521 ; N scaron ; G 291 +U 354 ; WX 611 ; N Tcommaaccent ; G 292 +U 355 ; WX 392 ; N tcommaaccent ; G 293 +U 356 ; WX 611 ; N Tcaron ; G 294 +U 357 ; WX 392 ; N tcaron ; G 295 +U 358 ; WX 611 ; N Tbar ; G 296 +U 359 ; WX 392 ; N tbar ; G 297 +U 360 ; WX 732 ; N Utilde ; G 298 +U 361 ; WX 634 ; N utilde ; G 299 +U 362 ; WX 732 ; N Umacron ; G 300 +U 363 ; WX 634 ; N umacron ; G 301 +U 364 ; WX 732 ; N Ubreve ; G 302 +U 365 ; WX 634 ; N ubreve ; G 303 +U 366 ; WX 732 ; N Uring ; G 304 +U 367 ; WX 634 ; N uring ; G 305 +U 368 ; WX 732 ; N Uhungarumlaut ; G 306 +U 369 ; WX 634 ; N uhungarumlaut ; G 307 +U 370 ; WX 732 ; N Uogonek ; G 308 +U 371 ; WX 634 ; N uogonek ; G 309 +U 372 ; WX 989 ; N Wcircumflex ; G 310 +U 373 ; WX 818 ; N wcircumflex ; G 311 +U 374 ; WX 611 ; N Ycircumflex ; G 312 +U 375 ; WX 592 ; N ycircumflex ; G 313 +U 376 ; WX 611 ; N Ydieresis ; G 314 +U 377 ; WX 685 ; N Zacute ; G 315 +U 378 ; WX 525 ; N zacute ; G 316 +U 379 ; WX 685 ; N Zdotaccent ; G 317 +U 380 ; WX 525 ; N zdotaccent ; G 318 +U 381 ; WX 685 ; N Zcaron ; G 319 +U 382 ; WX 525 ; N zcaron ; G 320 +U 383 ; WX 352 ; N longs ; G 321 +U 384 ; WX 635 ; N uni0180 ; G 322 +U 385 ; WX 735 ; N uni0181 ; G 323 +U 386 ; WX 686 ; N uni0182 ; G 324 +U 387 ; WX 635 ; N uni0183 ; G 325 +U 388 ; WX 686 ; N uni0184 ; G 326 +U 389 ; WX 635 ; N uni0185 ; G 327 +U 390 ; WX 703 ; N uni0186 ; G 328 +U 391 ; WX 698 ; N uni0187 ; G 329 +U 392 ; WX 550 ; N uni0188 ; G 330 +U 393 ; WX 775 ; N uni0189 ; G 331 +U 394 ; WX 819 ; N uni018A ; G 332 +U 395 ; WX 686 ; N uni018B ; G 333 +U 396 ; WX 635 ; N uni018C ; G 334 +U 397 ; WX 612 ; N uni018D ; G 335 +U 398 ; WX 632 ; N uni018E ; G 336 +U 399 ; WX 787 ; N uni018F ; G 337 +U 400 ; WX 614 ; N uni0190 ; G 338 +U 401 ; WX 575 ; N uni0191 ; G 339 +U 402 ; WX 352 ; N florin ; G 340 +U 403 ; WX 775 ; N uni0193 ; G 341 +U 404 ; WX 687 ; N uni0194 ; G 342 +U 405 ; WX 984 ; N uni0195 ; G 343 +U 406 ; WX 354 ; N uni0196 ; G 344 +U 407 ; WX 295 ; N uni0197 ; G 345 +U 408 ; WX 746 ; N uni0198 ; G 346 +U 409 ; WX 579 ; N uni0199 ; G 347 +U 410 ; WX 278 ; N uni019A ; G 348 +U 411 ; WX 592 ; N uni019B ; G 349 +U 412 ; WX 974 ; N uni019C ; G 350 +U 413 ; WX 748 ; N uni019D ; G 351 +U 414 ; WX 634 ; N uni019E ; G 352 +U 415 ; WX 787 ; N uni019F ; G 353 +U 416 ; WX 913 ; N Ohorn ; G 354 +U 417 ; WX 612 ; N ohorn ; G 355 +U 418 ; WX 949 ; N uni01A2 ; G 356 +U 419 ; WX 759 ; N uni01A3 ; G 357 +U 420 ; WX 652 ; N uni01A4 ; G 358 +U 421 ; WX 635 ; N uni01A5 ; G 359 +U 422 ; WX 695 ; N uni01A6 ; G 360 +U 423 ; WX 635 ; N uni01A7 ; G 361 +U 424 ; WX 521 ; N uni01A8 ; G 362 +U 425 ; WX 632 ; N uni01A9 ; G 363 +U 426 ; WX 336 ; N uni01AA ; G 364 +U 427 ; WX 392 ; N uni01AB ; G 365 +U 428 ; WX 611 ; N uni01AC ; G 366 +U 429 ; WX 392 ; N uni01AD ; G 367 +U 430 ; WX 611 ; N uni01AE ; G 368 +U 431 ; WX 858 ; N Uhorn ; G 369 +U 432 ; WX 634 ; N uhorn ; G 370 +U 433 ; WX 764 ; N uni01B1 ; G 371 +U 434 ; WX 721 ; N uni01B2 ; G 372 +U 435 ; WX 744 ; N uni01B3 ; G 373 +U 436 ; WX 730 ; N uni01B4 ; G 374 +U 437 ; WX 685 ; N uni01B5 ; G 375 +U 438 ; WX 525 ; N uni01B6 ; G 376 +U 439 ; WX 666 ; N uni01B7 ; G 377 +U 440 ; WX 666 ; N uni01B8 ; G 378 +U 441 ; WX 578 ; N uni01B9 ; G 379 +U 442 ; WX 525 ; N uni01BA ; G 380 +U 443 ; WX 636 ; N uni01BB ; G 381 +U 444 ; WX 666 ; N uni01BC ; G 382 +U 445 ; WX 578 ; N uni01BD ; G 383 +U 446 ; WX 510 ; N uni01BE ; G 384 +U 447 ; WX 635 ; N uni01BF ; G 385 +U 448 ; WX 295 ; N uni01C0 ; G 386 +U 449 ; WX 492 ; N uni01C1 ; G 387 +U 450 ; WX 459 ; N uni01C2 ; G 388 +U 451 ; WX 295 ; N uni01C3 ; G 389 +U 452 ; WX 1422 ; N uni01C4 ; G 390 +U 453 ; WX 1299 ; N uni01C5 ; G 391 +U 454 ; WX 1154 ; N uni01C6 ; G 392 +U 455 ; WX 835 ; N uni01C7 ; G 393 +U 456 ; WX 787 ; N uni01C8 ; G 394 +U 457 ; WX 457 ; N uni01C9 ; G 395 +U 458 ; WX 931 ; N uni01CA ; G 396 +U 459 ; WX 924 ; N uni01CB ; G 397 +U 460 ; WX 797 ; N uni01CC ; G 398 +U 461 ; WX 684 ; N uni01CD ; G 399 +U 462 ; WX 613 ; N uni01CE ; G 400 +U 463 ; WX 295 ; N uni01CF ; G 401 +U 464 ; WX 278 ; N uni01D0 ; G 402 +U 465 ; WX 787 ; N uni01D1 ; G 403 +U 466 ; WX 612 ; N uni01D2 ; G 404 +U 467 ; WX 732 ; N uni01D3 ; G 405 +U 468 ; WX 634 ; N uni01D4 ; G 406 +U 469 ; WX 732 ; N uni01D5 ; G 407 +U 470 ; WX 634 ; N uni01D6 ; G 408 +U 471 ; WX 732 ; N uni01D7 ; G 409 +U 472 ; WX 634 ; N uni01D8 ; G 410 +U 473 ; WX 732 ; N uni01D9 ; G 411 +U 474 ; WX 634 ; N uni01DA ; G 412 +U 475 ; WX 732 ; N uni01DB ; G 413 +U 476 ; WX 634 ; N uni01DC ; G 414 +U 477 ; WX 615 ; N uni01DD ; G 415 +U 478 ; WX 684 ; N uni01DE ; G 416 +U 479 ; WX 613 ; N uni01DF ; G 417 +U 480 ; WX 684 ; N uni01E0 ; G 418 +U 481 ; WX 613 ; N uni01E1 ; G 419 +U 482 ; WX 974 ; N uni01E2 ; G 420 +U 483 ; WX 982 ; N uni01E3 ; G 421 +U 484 ; WX 775 ; N uni01E4 ; G 422 +U 485 ; WX 635 ; N uni01E5 ; G 423 +U 486 ; WX 775 ; N Gcaron ; G 424 +U 487 ; WX 635 ; N gcaron ; G 425 +U 488 ; WX 656 ; N uni01E8 ; G 426 +U 489 ; WX 579 ; N uni01E9 ; G 427 +U 490 ; WX 787 ; N uni01EA ; G 428 +U 491 ; WX 612 ; N uni01EB ; G 429 +U 492 ; WX 787 ; N uni01EC ; G 430 +U 493 ; WX 612 ; N uni01ED ; G 431 +U 494 ; WX 666 ; N uni01EE ; G 432 +U 495 ; WX 578 ; N uni01EF ; G 433 +U 496 ; WX 278 ; N uni01F0 ; G 434 +U 497 ; WX 1422 ; N uni01F1 ; G 435 +U 498 ; WX 1299 ; N uni01F2 ; G 436 +U 499 ; WX 1154 ; N uni01F3 ; G 437 +U 500 ; WX 775 ; N uni01F4 ; G 438 +U 501 ; WX 635 ; N uni01F5 ; G 439 +U 502 ; WX 1113 ; N uni01F6 ; G 440 +U 503 ; WX 682 ; N uni01F7 ; G 441 +U 504 ; WX 748 ; N uni01F8 ; G 442 +U 505 ; WX 634 ; N uni01F9 ; G 443 +U 506 ; WX 684 ; N Aringacute ; G 444 +U 507 ; WX 613 ; N aringacute ; G 445 +U 508 ; WX 974 ; N AEacute ; G 446 +U 509 ; WX 982 ; N aeacute ; G 447 +U 510 ; WX 787 ; N Oslashacute ; G 448 +U 511 ; WX 612 ; N oslashacute ; G 449 +U 512 ; WX 684 ; N uni0200 ; G 450 +U 513 ; WX 613 ; N uni0201 ; G 451 +U 514 ; WX 684 ; N uni0202 ; G 452 +U 515 ; WX 613 ; N uni0203 ; G 453 +U 516 ; WX 632 ; N uni0204 ; G 454 +U 517 ; WX 615 ; N uni0205 ; G 455 +U 518 ; WX 632 ; N uni0206 ; G 456 +U 519 ; WX 615 ; N uni0207 ; G 457 +U 520 ; WX 295 ; N uni0208 ; G 458 +U 521 ; WX 278 ; N uni0209 ; G 459 +U 522 ; WX 295 ; N uni020A ; G 460 +U 523 ; WX 278 ; N uni020B ; G 461 +U 524 ; WX 787 ; N uni020C ; G 462 +U 525 ; WX 612 ; N uni020D ; G 463 +U 526 ; WX 787 ; N uni020E ; G 464 +U 527 ; WX 612 ; N uni020F ; G 465 +U 528 ; WX 695 ; N uni0210 ; G 466 +U 529 ; WX 411 ; N uni0211 ; G 467 +U 530 ; WX 695 ; N uni0212 ; G 468 +U 531 ; WX 411 ; N uni0213 ; G 469 +U 532 ; WX 732 ; N uni0214 ; G 470 +U 533 ; WX 634 ; N uni0215 ; G 471 +U 534 ; WX 732 ; N uni0216 ; G 472 +U 535 ; WX 634 ; N uni0217 ; G 473 +U 536 ; WX 635 ; N Scommaaccent ; G 474 +U 537 ; WX 521 ; N scommaaccent ; G 475 +U 538 ; WX 611 ; N uni021A ; G 476 +U 539 ; WX 392 ; N uni021B ; G 477 +U 540 ; WX 627 ; N uni021C ; G 478 +U 541 ; WX 521 ; N uni021D ; G 479 +U 542 ; WX 752 ; N uni021E ; G 480 +U 543 ; WX 634 ; N uni021F ; G 481 +U 544 ; WX 735 ; N uni0220 ; G 482 +U 545 ; WX 838 ; N uni0221 ; G 483 +U 546 ; WX 698 ; N uni0222 ; G 484 +U 547 ; WX 610 ; N uni0223 ; G 485 +U 548 ; WX 685 ; N uni0224 ; G 486 +U 549 ; WX 525 ; N uni0225 ; G 487 +U 550 ; WX 684 ; N uni0226 ; G 488 +U 551 ; WX 613 ; N uni0227 ; G 489 +U 552 ; WX 632 ; N uni0228 ; G 490 +U 553 ; WX 615 ; N uni0229 ; G 491 +U 554 ; WX 787 ; N uni022A ; G 492 +U 555 ; WX 612 ; N uni022B ; G 493 +U 556 ; WX 787 ; N uni022C ; G 494 +U 557 ; WX 612 ; N uni022D ; G 495 +U 558 ; WX 787 ; N uni022E ; G 496 +U 559 ; WX 612 ; N uni022F ; G 497 +U 560 ; WX 787 ; N uni0230 ; G 498 +U 561 ; WX 612 ; N uni0231 ; G 499 +U 562 ; WX 611 ; N uni0232 ; G 500 +U 563 ; WX 592 ; N uni0233 ; G 501 +U 564 ; WX 475 ; N uni0234 ; G 502 +U 565 ; WX 843 ; N uni0235 ; G 503 +U 566 ; WX 477 ; N uni0236 ; G 504 +U 567 ; WX 278 ; N dotlessj ; G 505 +U 568 ; WX 998 ; N uni0238 ; G 506 +U 569 ; WX 998 ; N uni0239 ; G 507 +U 570 ; WX 684 ; N uni023A ; G 508 +U 571 ; WX 698 ; N uni023B ; G 509 +U 572 ; WX 550 ; N uni023C ; G 510 +U 573 ; WX 557 ; N uni023D ; G 511 +U 574 ; WX 611 ; N uni023E ; G 512 +U 575 ; WX 521 ; N uni023F ; G 513 +U 576 ; WX 525 ; N uni0240 ; G 514 +U 577 ; WX 603 ; N uni0241 ; G 515 +U 578 ; WX 479 ; N uni0242 ; G 516 +U 579 ; WX 686 ; N uni0243 ; G 517 +U 580 ; WX 732 ; N uni0244 ; G 518 +U 581 ; WX 684 ; N uni0245 ; G 519 +U 582 ; WX 632 ; N uni0246 ; G 520 +U 583 ; WX 615 ; N uni0247 ; G 521 +U 584 ; WX 295 ; N uni0248 ; G 522 +U 585 ; WX 278 ; N uni0249 ; G 523 +U 586 ; WX 781 ; N uni024A ; G 524 +U 587 ; WX 635 ; N uni024B ; G 525 +U 588 ; WX 695 ; N uni024C ; G 526 +U 589 ; WX 411 ; N uni024D ; G 527 +U 590 ; WX 611 ; N uni024E ; G 528 +U 591 ; WX 592 ; N uni024F ; G 529 +U 592 ; WX 600 ; N uni0250 ; G 530 +U 593 ; WX 635 ; N uni0251 ; G 531 +U 594 ; WX 635 ; N uni0252 ; G 532 +U 595 ; WX 635 ; N uni0253 ; G 533 +U 596 ; WX 549 ; N uni0254 ; G 534 +U 597 ; WX 550 ; N uni0255 ; G 535 +U 598 ; WX 635 ; N uni0256 ; G 536 +U 599 ; WX 696 ; N uni0257 ; G 537 +U 600 ; WX 615 ; N uni0258 ; G 538 +U 601 ; WX 615 ; N uni0259 ; G 539 +U 602 ; WX 819 ; N uni025A ; G 540 +U 603 ; WX 541 ; N uni025B ; G 541 +U 604 ; WX 532 ; N uni025C ; G 542 +U 605 ; WX 775 ; N uni025D ; G 543 +U 606 ; WX 664 ; N uni025E ; G 544 +U 607 ; WX 278 ; N uni025F ; G 545 +U 608 ; WX 696 ; N uni0260 ; G 546 +U 609 ; WX 635 ; N uni0261 ; G 547 +U 610 ; WX 629 ; N uni0262 ; G 548 +U 611 ; WX 596 ; N uni0263 ; G 549 +U 612 ; WX 596 ; N uni0264 ; G 550 +U 613 ; WX 634 ; N uni0265 ; G 551 +U 614 ; WX 634 ; N uni0266 ; G 552 +U 615 ; WX 634 ; N uni0267 ; G 553 +U 616 ; WX 278 ; N uni0268 ; G 554 +U 617 ; WX 338 ; N uni0269 ; G 555 +U 618 ; WX 372 ; N uni026A ; G 556 +U 619 ; WX 396 ; N uni026B ; G 557 +U 620 ; WX 487 ; N uni026C ; G 558 +U 621 ; WX 278 ; N uni026D ; G 559 +U 622 ; WX 706 ; N uni026E ; G 560 +U 623 ; WX 974 ; N uni026F ; G 561 +U 624 ; WX 974 ; N uni0270 ; G 562 +U 625 ; WX 974 ; N uni0271 ; G 563 +U 626 ; WX 646 ; N uni0272 ; G 564 +U 627 ; WX 642 ; N uni0273 ; G 565 +U 628 ; WX 634 ; N uni0274 ; G 566 +U 629 ; WX 612 ; N uni0275 ; G 567 +U 630 ; WX 858 ; N uni0276 ; G 568 +U 631 ; WX 728 ; N uni0277 ; G 569 +U 632 ; WX 660 ; N uni0278 ; G 570 +U 633 ; WX 414 ; N uni0279 ; G 571 +U 634 ; WX 414 ; N uni027A ; G 572 +U 635 ; WX 414 ; N uni027B ; G 573 +U 636 ; WX 411 ; N uni027C ; G 574 +U 637 ; WX 411 ; N uni027D ; G 575 +U 638 ; WX 530 ; N uni027E ; G 576 +U 639 ; WX 530 ; N uni027F ; G 577 +U 640 ; WX 604 ; N uni0280 ; G 578 +U 641 ; WX 604 ; N uni0281 ; G 579 +U 642 ; WX 521 ; N uni0282 ; G 580 +U 643 ; WX 336 ; N uni0283 ; G 581 +U 644 ; WX 336 ; N uni0284 ; G 582 +U 645 ; WX 461 ; N uni0285 ; G 583 +U 646 ; WX 336 ; N uni0286 ; G 584 +U 647 ; WX 392 ; N uni0287 ; G 585 +U 648 ; WX 392 ; N uni0288 ; G 586 +U 649 ; WX 634 ; N uni0289 ; G 587 +U 650 ; WX 618 ; N uni028A ; G 588 +U 651 ; WX 598 ; N uni028B ; G 589 +U 652 ; WX 592 ; N uni028C ; G 590 +U 653 ; WX 818 ; N uni028D ; G 591 +U 654 ; WX 592 ; N uni028E ; G 592 +U 655 ; WX 611 ; N uni028F ; G 593 +U 656 ; WX 525 ; N uni0290 ; G 594 +U 657 ; WX 525 ; N uni0291 ; G 595 +U 658 ; WX 578 ; N uni0292 ; G 596 +U 659 ; WX 578 ; N uni0293 ; G 597 +U 660 ; WX 510 ; N uni0294 ; G 598 +U 661 ; WX 510 ; N uni0295 ; G 599 +U 662 ; WX 510 ; N uni0296 ; G 600 +U 663 ; WX 510 ; N uni0297 ; G 601 +U 664 ; WX 787 ; N uni0298 ; G 602 +U 665 ; WX 580 ; N uni0299 ; G 603 +U 666 ; WX 664 ; N uni029A ; G 604 +U 667 ; WX 708 ; N uni029B ; G 605 +U 668 ; WX 654 ; N uni029C ; G 606 +U 669 ; WX 292 ; N uni029D ; G 607 +U 670 ; WX 667 ; N uni029E ; G 608 +U 671 ; WX 507 ; N uni029F ; G 609 +U 672 ; WX 727 ; N uni02A0 ; G 610 +U 673 ; WX 510 ; N uni02A1 ; G 611 +U 674 ; WX 510 ; N uni02A2 ; G 612 +U 675 ; WX 1014 ; N uni02A3 ; G 613 +U 676 ; WX 1058 ; N uni02A4 ; G 614 +U 677 ; WX 1013 ; N uni02A5 ; G 615 +U 678 ; WX 830 ; N uni02A6 ; G 616 +U 679 ; WX 610 ; N uni02A7 ; G 617 +U 680 ; WX 778 ; N uni02A8 ; G 618 +U 681 ; WX 848 ; N uni02A9 ; G 619 +U 682 ; WX 706 ; N uni02AA ; G 620 +U 683 ; WX 654 ; N uni02AB ; G 621 +U 684 ; WX 515 ; N uni02AC ; G 622 +U 685 ; WX 515 ; N uni02AD ; G 623 +U 686 ; WX 661 ; N uni02AE ; G 624 +U 687 ; WX 664 ; N uni02AF ; G 625 +U 688 ; WX 404 ; N uni02B0 ; G 626 +U 689 ; WX 399 ; N uni02B1 ; G 627 +U 690 ; WX 175 ; N uni02B2 ; G 628 +U 691 ; WX 259 ; N uni02B3 ; G 629 +U 692 ; WX 295 ; N uni02B4 ; G 630 +U 693 ; WX 296 ; N uni02B5 ; G 631 +U 694 ; WX 379 ; N uni02B6 ; G 632 +U 695 ; WX 515 ; N uni02B7 ; G 633 +U 696 ; WX 373 ; N uni02B8 ; G 634 +U 697 ; WX 278 ; N uni02B9 ; G 635 +U 698 ; WX 460 ; N uni02BA ; G 636 +U 699 ; WX 318 ; N uni02BB ; G 637 +U 700 ; WX 318 ; N uni02BC ; G 638 +U 701 ; WX 318 ; N uni02BD ; G 639 +U 702 ; WX 307 ; N uni02BE ; G 640 +U 703 ; WX 307 ; N uni02BF ; G 641 +U 704 ; WX 370 ; N uni02C0 ; G 642 +U 705 ; WX 370 ; N uni02C1 ; G 643 +U 706 ; WX 500 ; N uni02C2 ; G 644 +U 707 ; WX 500 ; N uni02C3 ; G 645 +U 708 ; WX 500 ; N uni02C4 ; G 646 +U 709 ; WX 500 ; N uni02C5 ; G 647 +U 710 ; WX 500 ; N circumflex ; G 648 +U 711 ; WX 500 ; N caron ; G 649 +U 712 ; WX 275 ; N uni02C8 ; G 650 +U 713 ; WX 500 ; N uni02C9 ; G 651 +U 714 ; WX 500 ; N uni02CA ; G 652 +U 715 ; WX 500 ; N uni02CB ; G 653 +U 716 ; WX 275 ; N uni02CC ; G 654 +U 717 ; WX 500 ; N uni02CD ; G 655 +U 718 ; WX 500 ; N uni02CE ; G 656 +U 719 ; WX 500 ; N uni02CF ; G 657 +U 720 ; WX 337 ; N uni02D0 ; G 658 +U 721 ; WX 337 ; N uni02D1 ; G 659 +U 722 ; WX 307 ; N uni02D2 ; G 660 +U 723 ; WX 307 ; N uni02D3 ; G 661 +U 724 ; WX 500 ; N uni02D4 ; G 662 +U 725 ; WX 500 ; N uni02D5 ; G 663 +U 726 ; WX 390 ; N uni02D6 ; G 664 +U 727 ; WX 317 ; N uni02D7 ; G 665 +U 728 ; WX 500 ; N breve ; G 666 +U 729 ; WX 500 ; N dotaccent ; G 667 +U 730 ; WX 500 ; N ring ; G 668 +U 731 ; WX 500 ; N ogonek ; G 669 +U 732 ; WX 500 ; N tilde ; G 670 +U 733 ; WX 500 ; N hungarumlaut ; G 671 +U 734 ; WX 315 ; N uni02DE ; G 672 +U 735 ; WX 500 ; N uni02DF ; G 673 +U 736 ; WX 426 ; N uni02E0 ; G 674 +U 737 ; WX 166 ; N uni02E1 ; G 675 +U 738 ; WX 373 ; N uni02E2 ; G 676 +U 739 ; WX 444 ; N uni02E3 ; G 677 +U 740 ; WX 370 ; N uni02E4 ; G 678 +U 741 ; WX 493 ; N uni02E5 ; G 679 +U 742 ; WX 493 ; N uni02E6 ; G 680 +U 743 ; WX 493 ; N uni02E7 ; G 681 +U 744 ; WX 493 ; N uni02E8 ; G 682 +U 745 ; WX 493 ; N uni02E9 ; G 683 +U 748 ; WX 500 ; N uni02EC ; G 684 +U 749 ; WX 500 ; N uni02ED ; G 685 +U 750 ; WX 518 ; N uni02EE ; G 686 +U 755 ; WX 500 ; N uni02F3 ; G 687 +U 759 ; WX 500 ; N uni02F7 ; G 688 +U 768 ; WX 0 ; N gravecomb ; G 689 +U 769 ; WX 0 ; N acutecomb ; G 690 +U 770 ; WX 0 ; N uni0302 ; G 691 +U 771 ; WX 0 ; N tildecomb ; G 692 +U 772 ; WX 0 ; N uni0304 ; G 693 +U 773 ; WX 0 ; N uni0305 ; G 694 +U 774 ; WX 0 ; N uni0306 ; G 695 +U 775 ; WX 0 ; N uni0307 ; G 696 +U 776 ; WX 0 ; N uni0308 ; G 697 +U 777 ; WX 0 ; N hookabovecomb ; G 698 +U 778 ; WX 0 ; N uni030A ; G 699 +U 779 ; WX 0 ; N uni030B ; G 700 +U 780 ; WX 0 ; N uni030C ; G 701 +U 781 ; WX 0 ; N uni030D ; G 702 +U 782 ; WX 0 ; N uni030E ; G 703 +U 783 ; WX 0 ; N uni030F ; G 704 +U 784 ; WX 0 ; N uni0310 ; G 705 +U 785 ; WX 0 ; N uni0311 ; G 706 +U 786 ; WX 0 ; N uni0312 ; G 707 +U 787 ; WX 0 ; N uni0313 ; G 708 +U 788 ; WX 0 ; N uni0314 ; G 709 +U 789 ; WX 0 ; N uni0315 ; G 710 +U 790 ; WX 0 ; N uni0316 ; G 711 +U 791 ; WX 0 ; N uni0317 ; G 712 +U 792 ; WX 0 ; N uni0318 ; G 713 +U 793 ; WX 0 ; N uni0319 ; G 714 +U 794 ; WX 0 ; N uni031A ; G 715 +U 795 ; WX 0 ; N uni031B ; G 716 +U 796 ; WX 0 ; N uni031C ; G 717 +U 797 ; WX 0 ; N uni031D ; G 718 +U 798 ; WX 0 ; N uni031E ; G 719 +U 799 ; WX 0 ; N uni031F ; G 720 +U 800 ; WX 0 ; N uni0320 ; G 721 +U 801 ; WX 0 ; N uni0321 ; G 722 +U 802 ; WX 0 ; N uni0322 ; G 723 +U 803 ; WX 0 ; N dotbelowcomb ; G 724 +U 804 ; WX 0 ; N uni0324 ; G 725 +U 805 ; WX 0 ; N uni0325 ; G 726 +U 806 ; WX 0 ; N uni0326 ; G 727 +U 807 ; WX 0 ; N uni0327 ; G 728 +U 808 ; WX 0 ; N uni0328 ; G 729 +U 809 ; WX 0 ; N uni0329 ; G 730 +U 810 ; WX 0 ; N uni032A ; G 731 +U 811 ; WX 0 ; N uni032B ; G 732 +U 812 ; WX 0 ; N uni032C ; G 733 +U 813 ; WX 0 ; N uni032D ; G 734 +U 814 ; WX 0 ; N uni032E ; G 735 +U 815 ; WX 0 ; N uni032F ; G 736 +U 816 ; WX 0 ; N uni0330 ; G 737 +U 817 ; WX 0 ; N uni0331 ; G 738 +U 818 ; WX 0 ; N uni0332 ; G 739 +U 819 ; WX 0 ; N uni0333 ; G 740 +U 820 ; WX 0 ; N uni0334 ; G 741 +U 821 ; WX 0 ; N uni0335 ; G 742 +U 822 ; WX 0 ; N uni0336 ; G 743 +U 823 ; WX 0 ; N uni0337 ; G 744 +U 824 ; WX 0 ; N uni0338 ; G 745 +U 825 ; WX 0 ; N uni0339 ; G 746 +U 826 ; WX 0 ; N uni033A ; G 747 +U 827 ; WX 0 ; N uni033B ; G 748 +U 828 ; WX 0 ; N uni033C ; G 749 +U 829 ; WX 0 ; N uni033D ; G 750 +U 830 ; WX 0 ; N uni033E ; G 751 +U 831 ; WX 0 ; N uni033F ; G 752 +U 832 ; WX 0 ; N uni0340 ; G 753 +U 833 ; WX 0 ; N uni0341 ; G 754 +U 834 ; WX 0 ; N uni0342 ; G 755 +U 835 ; WX 0 ; N uni0343 ; G 756 +U 836 ; WX 0 ; N uni0344 ; G 757 +U 837 ; WX 0 ; N uni0345 ; G 758 +U 838 ; WX 0 ; N uni0346 ; G 759 +U 839 ; WX 0 ; N uni0347 ; G 760 +U 840 ; WX 0 ; N uni0348 ; G 761 +U 841 ; WX 0 ; N uni0349 ; G 762 +U 842 ; WX 0 ; N uni034A ; G 763 +U 843 ; WX 0 ; N uni034B ; G 764 +U 844 ; WX 0 ; N uni034C ; G 765 +U 845 ; WX 0 ; N uni034D ; G 766 +U 846 ; WX 0 ; N uni034E ; G 767 +U 847 ; WX 0 ; N uni034F ; G 768 +U 849 ; WX 0 ; N uni0351 ; G 769 +U 850 ; WX 0 ; N uni0352 ; G 770 +U 851 ; WX 0 ; N uni0353 ; G 771 +U 855 ; WX 0 ; N uni0357 ; G 772 +U 856 ; WX 0 ; N uni0358 ; G 773 +U 858 ; WX 0 ; N uni035A ; G 774 +U 860 ; WX 0 ; N uni035C ; G 775 +U 861 ; WX 0 ; N uni035D ; G 776 +U 862 ; WX 0 ; N uni035E ; G 777 +U 863 ; WX 0 ; N uni035F ; G 778 +U 864 ; WX 0 ; N uni0360 ; G 779 +U 865 ; WX 0 ; N uni0361 ; G 780 +U 866 ; WX 0 ; N uni0362 ; G 781 +U 880 ; WX 654 ; N uni0370 ; G 782 +U 881 ; WX 568 ; N uni0371 ; G 783 +U 882 ; WX 862 ; N uni0372 ; G 784 +U 883 ; WX 647 ; N uni0373 ; G 785 +U 884 ; WX 278 ; N uni0374 ; G 786 +U 885 ; WX 278 ; N uni0375 ; G 787 +U 886 ; WX 748 ; N uni0376 ; G 788 +U 887 ; WX 650 ; N uni0377 ; G 789 +U 890 ; WX 500 ; N uni037A ; G 790 +U 891 ; WX 549 ; N uni037B ; G 791 +U 892 ; WX 550 ; N uni037C ; G 792 +U 893 ; WX 549 ; N uni037D ; G 793 +U 894 ; WX 337 ; N uni037E ; G 794 +U 895 ; WX 295 ; N uni037F ; G 795 +U 900 ; WX 500 ; N tonos ; G 796 +U 901 ; WX 500 ; N dieresistonos ; G 797 +U 902 ; WX 692 ; N Alphatonos ; G 798 +U 903 ; WX 318 ; N anoteleia ; G 799 +U 904 ; WX 746 ; N Epsilontonos ; G 800 +U 905 ; WX 871 ; N Etatonos ; G 801 +U 906 ; WX 408 ; N Iotatonos ; G 802 +U 908 ; WX 813 ; N Omicrontonos ; G 803 +U 910 ; WX 825 ; N Upsilontonos ; G 804 +U 911 ; WX 826 ; N Omegatonos ; G 805 +U 912 ; WX 338 ; N iotadieresistonos ; G 806 +U 913 ; WX 684 ; N Alpha ; G 807 +U 914 ; WX 686 ; N Beta ; G 808 +U 915 ; WX 557 ; N Gamma ; G 809 +U 916 ; WX 684 ; N uni0394 ; G 810 +U 917 ; WX 632 ; N Epsilon ; G 811 +U 918 ; WX 685 ; N Zeta ; G 812 +U 919 ; WX 752 ; N Eta ; G 813 +U 920 ; WX 787 ; N Theta ; G 814 +U 921 ; WX 295 ; N Iota ; G 815 +U 922 ; WX 656 ; N Kappa ; G 816 +U 923 ; WX 684 ; N Lambda ; G 817 +U 924 ; WX 863 ; N Mu ; G 818 +U 925 ; WX 748 ; N Nu ; G 819 +U 926 ; WX 632 ; N Xi ; G 820 +U 927 ; WX 787 ; N Omicron ; G 821 +U 928 ; WX 752 ; N Pi ; G 822 +U 929 ; WX 603 ; N Rho ; G 823 +U 931 ; WX 632 ; N Sigma ; G 824 +U 932 ; WX 611 ; N Tau ; G 825 +U 933 ; WX 611 ; N Upsilon ; G 826 +U 934 ; WX 787 ; N Phi ; G 827 +U 935 ; WX 685 ; N Chi ; G 828 +U 936 ; WX 787 ; N Psi ; G 829 +U 937 ; WX 764 ; N Omega ; G 830 +U 938 ; WX 295 ; N Iotadieresis ; G 831 +U 939 ; WX 611 ; N Upsilondieresis ; G 832 +U 940 ; WX 659 ; N alphatonos ; G 833 +U 941 ; WX 541 ; N epsilontonos ; G 834 +U 942 ; WX 634 ; N etatonos ; G 835 +U 943 ; WX 338 ; N iotatonos ; G 836 +U 944 ; WX 579 ; N upsilondieresistonos ; G 837 +U 945 ; WX 659 ; N alpha ; G 838 +U 946 ; WX 638 ; N beta ; G 839 +U 947 ; WX 592 ; N gamma ; G 840 +U 948 ; WX 612 ; N delta ; G 841 +U 949 ; WX 541 ; N epsilon ; G 842 +U 950 ; WX 544 ; N zeta ; G 843 +U 951 ; WX 634 ; N eta ; G 844 +U 952 ; WX 612 ; N theta ; G 845 +U 953 ; WX 338 ; N iota ; G 846 +U 954 ; WX 589 ; N kappa ; G 847 +U 955 ; WX 592 ; N lambda ; G 848 +U 956 ; WX 636 ; N uni03BC ; G 849 +U 957 ; WX 559 ; N nu ; G 850 +U 958 ; WX 558 ; N xi ; G 851 +U 959 ; WX 612 ; N omicron ; G 852 +U 960 ; WX 602 ; N pi ; G 853 +U 961 ; WX 635 ; N rho ; G 854 +U 962 ; WX 587 ; N sigma1 ; G 855 +U 963 ; WX 634 ; N sigma ; G 856 +U 964 ; WX 602 ; N tau ; G 857 +U 965 ; WX 579 ; N upsilon ; G 858 +U 966 ; WX 660 ; N phi ; G 859 +U 967 ; WX 578 ; N chi ; G 860 +U 968 ; WX 660 ; N psi ; G 861 +U 969 ; WX 837 ; N omega ; G 862 +U 970 ; WX 338 ; N iotadieresis ; G 863 +U 971 ; WX 579 ; N upsilondieresis ; G 864 +U 972 ; WX 612 ; N omicrontonos ; G 865 +U 973 ; WX 579 ; N upsilontonos ; G 866 +U 974 ; WX 837 ; N omegatonos ; G 867 +U 975 ; WX 656 ; N uni03CF ; G 868 +U 976 ; WX 614 ; N uni03D0 ; G 869 +U 977 ; WX 619 ; N theta1 ; G 870 +U 978 ; WX 699 ; N Upsilon1 ; G 871 +U 979 ; WX 842 ; N uni03D3 ; G 872 +U 980 ; WX 699 ; N uni03D4 ; G 873 +U 981 ; WX 660 ; N phi1 ; G 874 +U 982 ; WX 837 ; N omega1 ; G 875 +U 983 ; WX 664 ; N uni03D7 ; G 876 +U 984 ; WX 787 ; N uni03D8 ; G 877 +U 985 ; WX 612 ; N uni03D9 ; G 878 +U 986 ; WX 648 ; N uni03DA ; G 879 +U 987 ; WX 587 ; N uni03DB ; G 880 +U 988 ; WX 575 ; N uni03DC ; G 881 +U 989 ; WX 458 ; N uni03DD ; G 882 +U 990 ; WX 660 ; N uni03DE ; G 883 +U 991 ; WX 660 ; N uni03DF ; G 884 +U 992 ; WX 865 ; N uni03E0 ; G 885 +U 993 ; WX 627 ; N uni03E1 ; G 886 +U 994 ; WX 934 ; N uni03E2 ; G 887 +U 995 ; WX 837 ; N uni03E3 ; G 888 +U 996 ; WX 758 ; N uni03E4 ; G 889 +U 997 ; WX 659 ; N uni03E5 ; G 890 +U 998 ; WX 792 ; N uni03E6 ; G 891 +U 999 ; WX 615 ; N uni03E7 ; G 892 +U 1000 ; WX 687 ; N uni03E8 ; G 893 +U 1001 ; WX 607 ; N uni03E9 ; G 894 +U 1002 ; WX 768 ; N uni03EA ; G 895 +U 1003 ; WX 625 ; N uni03EB ; G 896 +U 1004 ; WX 699 ; N uni03EC ; G 897 +U 1005 ; WX 612 ; N uni03ED ; G 898 +U 1006 ; WX 611 ; N uni03EE ; G 899 +U 1007 ; WX 536 ; N uni03EF ; G 900 +U 1008 ; WX 664 ; N uni03F0 ; G 901 +U 1009 ; WX 635 ; N uni03F1 ; G 902 +U 1010 ; WX 550 ; N uni03F2 ; G 903 +U 1011 ; WX 278 ; N uni03F3 ; G 904 +U 1012 ; WX 787 ; N uni03F4 ; G 905 +U 1013 ; WX 615 ; N uni03F5 ; G 906 +U 1014 ; WX 615 ; N uni03F6 ; G 907 +U 1015 ; WX 605 ; N uni03F7 ; G 908 +U 1016 ; WX 635 ; N uni03F8 ; G 909 +U 1017 ; WX 698 ; N uni03F9 ; G 910 +U 1018 ; WX 863 ; N uni03FA ; G 911 +U 1019 ; WX 651 ; N uni03FB ; G 912 +U 1020 ; WX 635 ; N uni03FC ; G 913 +U 1021 ; WX 703 ; N uni03FD ; G 914 +U 1022 ; WX 698 ; N uni03FE ; G 915 +U 1023 ; WX 703 ; N uni03FF ; G 916 +U 1024 ; WX 632 ; N uni0400 ; G 917 +U 1025 ; WX 632 ; N uni0401 ; G 918 +U 1026 ; WX 786 ; N uni0402 ; G 919 +U 1027 ; WX 610 ; N uni0403 ; G 920 +U 1028 ; WX 698 ; N uni0404 ; G 921 +U 1029 ; WX 635 ; N uni0405 ; G 922 +U 1030 ; WX 295 ; N uni0406 ; G 923 +U 1031 ; WX 295 ; N uni0407 ; G 924 +U 1032 ; WX 295 ; N uni0408 ; G 925 +U 1033 ; WX 1094 ; N uni0409 ; G 926 +U 1034 ; WX 1045 ; N uni040A ; G 927 +U 1035 ; WX 786 ; N uni040B ; G 928 +U 1036 ; WX 710 ; N uni040C ; G 929 +U 1037 ; WX 748 ; N uni040D ; G 930 +U 1038 ; WX 609 ; N uni040E ; G 931 +U 1039 ; WX 752 ; N uni040F ; G 932 +U 1040 ; WX 684 ; N uni0410 ; G 933 +U 1041 ; WX 686 ; N uni0411 ; G 934 +U 1042 ; WX 686 ; N uni0412 ; G 935 +U 1043 ; WX 610 ; N uni0413 ; G 936 +U 1044 ; WX 781 ; N uni0414 ; G 937 +U 1045 ; WX 632 ; N uni0415 ; G 938 +U 1046 ; WX 1077 ; N uni0416 ; G 939 +U 1047 ; WX 641 ; N uni0417 ; G 940 +U 1048 ; WX 748 ; N uni0418 ; G 941 +U 1049 ; WX 748 ; N uni0419 ; G 942 +U 1050 ; WX 710 ; N uni041A ; G 943 +U 1051 ; WX 752 ; N uni041B ; G 944 +U 1052 ; WX 863 ; N uni041C ; G 945 +U 1053 ; WX 752 ; N uni041D ; G 946 +U 1054 ; WX 787 ; N uni041E ; G 947 +U 1055 ; WX 752 ; N uni041F ; G 948 +U 1056 ; WX 603 ; N uni0420 ; G 949 +U 1057 ; WX 698 ; N uni0421 ; G 950 +U 1058 ; WX 611 ; N uni0422 ; G 951 +U 1059 ; WX 609 ; N uni0423 ; G 952 +U 1060 ; WX 861 ; N uni0424 ; G 953 +U 1061 ; WX 685 ; N uni0425 ; G 954 +U 1062 ; WX 776 ; N uni0426 ; G 955 +U 1063 ; WX 686 ; N uni0427 ; G 956 +U 1064 ; WX 1069 ; N uni0428 ; G 957 +U 1065 ; WX 1094 ; N uni0429 ; G 958 +U 1066 ; WX 833 ; N uni042A ; G 959 +U 1067 ; WX 882 ; N uni042B ; G 960 +U 1068 ; WX 686 ; N uni042C ; G 961 +U 1069 ; WX 698 ; N uni042D ; G 962 +U 1070 ; WX 1080 ; N uni042E ; G 963 +U 1071 ; WX 695 ; N uni042F ; G 964 +U 1072 ; WX 613 ; N uni0430 ; G 965 +U 1073 ; WX 617 ; N uni0431 ; G 966 +U 1074 ; WX 589 ; N uni0432 ; G 967 +U 1075 ; WX 525 ; N uni0433 ; G 968 +U 1076 ; WX 691 ; N uni0434 ; G 969 +U 1077 ; WX 615 ; N uni0435 ; G 970 +U 1078 ; WX 901 ; N uni0436 ; G 971 +U 1079 ; WX 532 ; N uni0437 ; G 972 +U 1080 ; WX 650 ; N uni0438 ; G 973 +U 1081 ; WX 650 ; N uni0439 ; G 974 +U 1082 ; WX 604 ; N uni043A ; G 975 +U 1083 ; WX 639 ; N uni043B ; G 976 +U 1084 ; WX 754 ; N uni043C ; G 977 +U 1085 ; WX 654 ; N uni043D ; G 978 +U 1086 ; WX 612 ; N uni043E ; G 979 +U 1087 ; WX 654 ; N uni043F ; G 980 +U 1088 ; WX 635 ; N uni0440 ; G 981 +U 1089 ; WX 550 ; N uni0441 ; G 982 +U 1090 ; WX 583 ; N uni0442 ; G 983 +U 1091 ; WX 592 ; N uni0443 ; G 984 +U 1092 ; WX 855 ; N uni0444 ; G 985 +U 1093 ; WX 592 ; N uni0445 ; G 986 +U 1094 ; WX 681 ; N uni0446 ; G 987 +U 1095 ; WX 591 ; N uni0447 ; G 988 +U 1096 ; WX 915 ; N uni0448 ; G 989 +U 1097 ; WX 942 ; N uni0449 ; G 990 +U 1098 ; WX 707 ; N uni044A ; G 991 +U 1099 ; WX 790 ; N uni044B ; G 992 +U 1100 ; WX 589 ; N uni044C ; G 993 +U 1101 ; WX 549 ; N uni044D ; G 994 +U 1102 ; WX 842 ; N uni044E ; G 995 +U 1103 ; WX 602 ; N uni044F ; G 996 +U 1104 ; WX 615 ; N uni0450 ; G 997 +U 1105 ; WX 615 ; N uni0451 ; G 998 +U 1106 ; WX 625 ; N uni0452 ; G 999 +U 1107 ; WX 525 ; N uni0453 ; G 1000 +U 1108 ; WX 549 ; N uni0454 ; G 1001 +U 1109 ; WX 521 ; N uni0455 ; G 1002 +U 1110 ; WX 278 ; N uni0456 ; G 1003 +U 1111 ; WX 278 ; N uni0457 ; G 1004 +U 1112 ; WX 278 ; N uni0458 ; G 1005 +U 1113 ; WX 902 ; N uni0459 ; G 1006 +U 1114 ; WX 898 ; N uni045A ; G 1007 +U 1115 ; WX 652 ; N uni045B ; G 1008 +U 1116 ; WX 604 ; N uni045C ; G 1009 +U 1117 ; WX 650 ; N uni045D ; G 1010 +U 1118 ; WX 592 ; N uni045E ; G 1011 +U 1119 ; WX 654 ; N uni045F ; G 1012 +U 1120 ; WX 934 ; N uni0460 ; G 1013 +U 1121 ; WX 837 ; N uni0461 ; G 1014 +U 1122 ; WX 771 ; N uni0462 ; G 1015 +U 1123 ; WX 672 ; N uni0463 ; G 1016 +U 1124 ; WX 942 ; N uni0464 ; G 1017 +U 1125 ; WX 749 ; N uni0465 ; G 1018 +U 1126 ; WX 879 ; N uni0466 ; G 1019 +U 1127 ; WX 783 ; N uni0467 ; G 1020 +U 1128 ; WX 1160 ; N uni0468 ; G 1021 +U 1129 ; WX 1001 ; N uni0469 ; G 1022 +U 1130 ; WX 787 ; N uni046A ; G 1023 +U 1131 ; WX 612 ; N uni046B ; G 1024 +U 1132 ; WX 1027 ; N uni046C ; G 1025 +U 1133 ; WX 824 ; N uni046D ; G 1026 +U 1134 ; WX 636 ; N uni046E ; G 1027 +U 1135 ; WX 541 ; N uni046F ; G 1028 +U 1136 ; WX 856 ; N uni0470 ; G 1029 +U 1137 ; WX 876 ; N uni0471 ; G 1030 +U 1138 ; WX 787 ; N uni0472 ; G 1031 +U 1139 ; WX 612 ; N uni0473 ; G 1032 +U 1140 ; WX 781 ; N uni0474 ; G 1033 +U 1141 ; WX 665 ; N uni0475 ; G 1034 +U 1142 ; WX 781 ; N uni0476 ; G 1035 +U 1143 ; WX 665 ; N uni0477 ; G 1036 +U 1144 ; WX 992 ; N uni0478 ; G 1037 +U 1145 ; WX 904 ; N uni0479 ; G 1038 +U 1146 ; WX 953 ; N uni047A ; G 1039 +U 1147 ; WX 758 ; N uni047B ; G 1040 +U 1148 ; WX 1180 ; N uni047C ; G 1041 +U 1149 ; WX 1028 ; N uni047D ; G 1042 +U 1150 ; WX 934 ; N uni047E ; G 1043 +U 1151 ; WX 837 ; N uni047F ; G 1044 +U 1152 ; WX 698 ; N uni0480 ; G 1045 +U 1153 ; WX 550 ; N uni0481 ; G 1046 +U 1154 ; WX 502 ; N uni0482 ; G 1047 +U 1155 ; WX 0 ; N uni0483 ; G 1048 +U 1156 ; WX 0 ; N uni0484 ; G 1049 +U 1157 ; WX 0 ; N uni0485 ; G 1050 +U 1158 ; WX 0 ; N uni0486 ; G 1051 +U 1159 ; WX 0 ; N uni0487 ; G 1052 +U 1160 ; WX 418 ; N uni0488 ; G 1053 +U 1161 ; WX 418 ; N uni0489 ; G 1054 +U 1162 ; WX 772 ; N uni048A ; G 1055 +U 1163 ; WX 677 ; N uni048B ; G 1056 +U 1164 ; WX 686 ; N uni048C ; G 1057 +U 1165 ; WX 589 ; N uni048D ; G 1058 +U 1166 ; WX 603 ; N uni048E ; G 1059 +U 1167 ; WX 635 ; N uni048F ; G 1060 +U 1168 ; WX 610 ; N uni0490 ; G 1061 +U 1169 ; WX 525 ; N uni0491 ; G 1062 +U 1170 ; WX 675 ; N uni0492 ; G 1063 +U 1171 ; WX 590 ; N uni0493 ; G 1064 +U 1172 ; WX 624 ; N uni0494 ; G 1065 +U 1173 ; WX 530 ; N uni0495 ; G 1066 +U 1174 ; WX 1077 ; N uni0496 ; G 1067 +U 1175 ; WX 901 ; N uni0497 ; G 1068 +U 1176 ; WX 641 ; N uni0498 ; G 1069 +U 1177 ; WX 532 ; N uni0499 ; G 1070 +U 1178 ; WX 710 ; N uni049A ; G 1071 +U 1179 ; WX 604 ; N uni049B ; G 1072 +U 1180 ; WX 710 ; N uni049C ; G 1073 +U 1181 ; WX 604 ; N uni049D ; G 1074 +U 1182 ; WX 710 ; N uni049E ; G 1075 +U 1183 ; WX 604 ; N uni049F ; G 1076 +U 1184 ; WX 856 ; N uni04A0 ; G 1077 +U 1185 ; WX 832 ; N uni04A1 ; G 1078 +U 1186 ; WX 752 ; N uni04A2 ; G 1079 +U 1187 ; WX 661 ; N uni04A3 ; G 1080 +U 1188 ; WX 1014 ; N uni04A4 ; G 1081 +U 1189 ; WX 877 ; N uni04A5 ; G 1082 +U 1190 ; WX 1081 ; N uni04A6 ; G 1083 +U 1191 ; WX 916 ; N uni04A7 ; G 1084 +U 1192 ; WX 878 ; N uni04A8 ; G 1085 +U 1193 ; WX 693 ; N uni04A9 ; G 1086 +U 1194 ; WX 698 ; N uni04AA ; G 1087 +U 1195 ; WX 550 ; N uni04AB ; G 1088 +U 1196 ; WX 611 ; N uni04AC ; G 1089 +U 1197 ; WX 583 ; N uni04AD ; G 1090 +U 1198 ; WX 611 ; N uni04AE ; G 1091 +U 1199 ; WX 592 ; N uni04AF ; G 1092 +U 1200 ; WX 611 ; N uni04B0 ; G 1093 +U 1201 ; WX 592 ; N uni04B1 ; G 1094 +U 1202 ; WX 685 ; N uni04B2 ; G 1095 +U 1203 ; WX 592 ; N uni04B3 ; G 1096 +U 1204 ; WX 934 ; N uni04B4 ; G 1097 +U 1205 ; WX 807 ; N uni04B5 ; G 1098 +U 1206 ; WX 686 ; N uni04B6 ; G 1099 +U 1207 ; WX 591 ; N uni04B7 ; G 1100 +U 1208 ; WX 686 ; N uni04B8 ; G 1101 +U 1209 ; WX 591 ; N uni04B9 ; G 1102 +U 1210 ; WX 686 ; N uni04BA ; G 1103 +U 1211 ; WX 634 ; N uni04BB ; G 1104 +U 1212 ; WX 941 ; N uni04BC ; G 1105 +U 1213 ; WX 728 ; N uni04BD ; G 1106 +U 1214 ; WX 941 ; N uni04BE ; G 1107 +U 1215 ; WX 728 ; N uni04BF ; G 1108 +U 1216 ; WX 295 ; N uni04C0 ; G 1109 +U 1217 ; WX 1077 ; N uni04C1 ; G 1110 +U 1218 ; WX 901 ; N uni04C2 ; G 1111 +U 1219 ; WX 656 ; N uni04C3 ; G 1112 +U 1220 ; WX 604 ; N uni04C4 ; G 1113 +U 1221 ; WX 776 ; N uni04C5 ; G 1114 +U 1222 ; WX 670 ; N uni04C6 ; G 1115 +U 1223 ; WX 752 ; N uni04C7 ; G 1116 +U 1224 ; WX 661 ; N uni04C8 ; G 1117 +U 1225 ; WX 776 ; N uni04C9 ; G 1118 +U 1226 ; WX 681 ; N uni04CA ; G 1119 +U 1227 ; WX 686 ; N uni04CB ; G 1120 +U 1228 ; WX 591 ; N uni04CC ; G 1121 +U 1229 ; WX 888 ; N uni04CD ; G 1122 +U 1230 ; WX 774 ; N uni04CE ; G 1123 +U 1231 ; WX 278 ; N uni04CF ; G 1124 +U 1232 ; WX 684 ; N uni04D0 ; G 1125 +U 1233 ; WX 613 ; N uni04D1 ; G 1126 +U 1234 ; WX 684 ; N uni04D2 ; G 1127 +U 1235 ; WX 613 ; N uni04D3 ; G 1128 +U 1236 ; WX 974 ; N uni04D4 ; G 1129 +U 1237 ; WX 982 ; N uni04D5 ; G 1130 +U 1238 ; WX 632 ; N uni04D6 ; G 1131 +U 1239 ; WX 615 ; N uni04D7 ; G 1132 +U 1240 ; WX 787 ; N uni04D8 ; G 1133 +U 1241 ; WX 615 ; N uni04D9 ; G 1134 +U 1242 ; WX 787 ; N uni04DA ; G 1135 +U 1243 ; WX 615 ; N uni04DB ; G 1136 +U 1244 ; WX 1077 ; N uni04DC ; G 1137 +U 1245 ; WX 901 ; N uni04DD ; G 1138 +U 1246 ; WX 641 ; N uni04DE ; G 1139 +U 1247 ; WX 532 ; N uni04DF ; G 1140 +U 1248 ; WX 666 ; N uni04E0 ; G 1141 +U 1249 ; WX 578 ; N uni04E1 ; G 1142 +U 1250 ; WX 748 ; N uni04E2 ; G 1143 +U 1251 ; WX 650 ; N uni04E3 ; G 1144 +U 1252 ; WX 748 ; N uni04E4 ; G 1145 +U 1253 ; WX 650 ; N uni04E5 ; G 1146 +U 1254 ; WX 787 ; N uni04E6 ; G 1147 +U 1255 ; WX 612 ; N uni04E7 ; G 1148 +U 1256 ; WX 787 ; N uni04E8 ; G 1149 +U 1257 ; WX 612 ; N uni04E9 ; G 1150 +U 1258 ; WX 787 ; N uni04EA ; G 1151 +U 1259 ; WX 612 ; N uni04EB ; G 1152 +U 1260 ; WX 698 ; N uni04EC ; G 1153 +U 1261 ; WX 549 ; N uni04ED ; G 1154 +U 1262 ; WX 609 ; N uni04EE ; G 1155 +U 1263 ; WX 592 ; N uni04EF ; G 1156 +U 1264 ; WX 609 ; N uni04F0 ; G 1157 +U 1265 ; WX 592 ; N uni04F1 ; G 1158 +U 1266 ; WX 609 ; N uni04F2 ; G 1159 +U 1267 ; WX 592 ; N uni04F3 ; G 1160 +U 1268 ; WX 686 ; N uni04F4 ; G 1161 +U 1269 ; WX 591 ; N uni04F5 ; G 1162 +U 1270 ; WX 610 ; N uni04F6 ; G 1163 +U 1271 ; WX 525 ; N uni04F7 ; G 1164 +U 1272 ; WX 882 ; N uni04F8 ; G 1165 +U 1273 ; WX 790 ; N uni04F9 ; G 1166 +U 1274 ; WX 675 ; N uni04FA ; G 1167 +U 1275 ; WX 590 ; N uni04FB ; G 1168 +U 1276 ; WX 685 ; N uni04FC ; G 1169 +U 1277 ; WX 592 ; N uni04FD ; G 1170 +U 1278 ; WX 685 ; N uni04FE ; G 1171 +U 1279 ; WX 592 ; N uni04FF ; G 1172 +U 1280 ; WX 686 ; N uni0500 ; G 1173 +U 1281 ; WX 589 ; N uni0501 ; G 1174 +U 1282 ; WX 1006 ; N uni0502 ; G 1175 +U 1283 ; WX 897 ; N uni0503 ; G 1176 +U 1284 ; WX 975 ; N uni0504 ; G 1177 +U 1285 ; WX 869 ; N uni0505 ; G 1178 +U 1286 ; WX 679 ; N uni0506 ; G 1179 +U 1287 ; WX 588 ; N uni0507 ; G 1180 +U 1288 ; WX 1072 ; N uni0508 ; G 1181 +U 1289 ; WX 957 ; N uni0509 ; G 1182 +U 1290 ; WX 1113 ; N uni050A ; G 1183 +U 1291 ; WX 967 ; N uni050B ; G 1184 +U 1292 ; WX 775 ; N uni050C ; G 1185 +U 1293 ; WX 660 ; N uni050D ; G 1186 +U 1294 ; WX 773 ; N uni050E ; G 1187 +U 1295 ; WX 711 ; N uni050F ; G 1188 +U 1296 ; WX 614 ; N uni0510 ; G 1189 +U 1297 ; WX 541 ; N uni0511 ; G 1190 +U 1298 ; WX 752 ; N uni0512 ; G 1191 +U 1299 ; WX 639 ; N uni0513 ; G 1192 +U 1300 ; WX 1169 ; N uni0514 ; G 1193 +U 1301 ; WX 994 ; N uni0515 ; G 1194 +U 1302 ; WX 894 ; N uni0516 ; G 1195 +U 1303 ; WX 864 ; N uni0517 ; G 1196 +U 1304 ; WX 1032 ; N uni0518 ; G 1197 +U 1305 ; WX 986 ; N uni0519 ; G 1198 +U 1306 ; WX 787 ; N uni051A ; G 1199 +U 1307 ; WX 635 ; N uni051B ; G 1200 +U 1308 ; WX 989 ; N uni051C ; G 1201 +U 1309 ; WX 818 ; N uni051D ; G 1202 +U 1310 ; WX 710 ; N uni051E ; G 1203 +U 1311 ; WX 604 ; N uni051F ; G 1204 +U 1312 ; WX 1081 ; N uni0520 ; G 1205 +U 1313 ; WX 905 ; N uni0521 ; G 1206 +U 1314 ; WX 1081 ; N uni0522 ; G 1207 +U 1315 ; WX 912 ; N uni0523 ; G 1208 +U 1316 ; WX 793 ; N uni0524 ; G 1209 +U 1317 ; WX 683 ; N uni0525 ; G 1210 +U 1329 ; WX 766 ; N uni0531 ; G 1211 +U 1330 ; WX 732 ; N uni0532 ; G 1212 +U 1331 ; WX 753 ; N uni0533 ; G 1213 +U 1332 ; WX 753 ; N uni0534 ; G 1214 +U 1333 ; WX 732 ; N uni0535 ; G 1215 +U 1334 ; WX 772 ; N uni0536 ; G 1216 +U 1335 ; WX 640 ; N uni0537 ; G 1217 +U 1336 ; WX 732 ; N uni0538 ; G 1218 +U 1337 ; WX 859 ; N uni0539 ; G 1219 +U 1338 ; WX 753 ; N uni053A ; G 1220 +U 1339 ; WX 691 ; N uni053B ; G 1221 +U 1340 ; WX 533 ; N uni053C ; G 1222 +U 1341 ; WX 922 ; N uni053D ; G 1223 +U 1342 ; WX 863 ; N uni053E ; G 1224 +U 1343 ; WX 732 ; N uni053F ; G 1225 +U 1344 ; WX 716 ; N uni0540 ; G 1226 +U 1345 ; WX 766 ; N uni0541 ; G 1227 +U 1346 ; WX 753 ; N uni0542 ; G 1228 +U 1347 ; WX 767 ; N uni0543 ; G 1229 +U 1348 ; WX 792 ; N uni0544 ; G 1230 +U 1349 ; WX 728 ; N uni0545 ; G 1231 +U 1350 ; WX 729 ; N uni0546 ; G 1232 +U 1351 ; WX 757 ; N uni0547 ; G 1233 +U 1352 ; WX 732 ; N uni0548 ; G 1234 +U 1353 ; WX 713 ; N uni0549 ; G 1235 +U 1354 ; WX 800 ; N uni054A ; G 1236 +U 1355 ; WX 768 ; N uni054B ; G 1237 +U 1356 ; WX 792 ; N uni054C ; G 1238 +U 1357 ; WX 732 ; N uni054D ; G 1239 +U 1358 ; WX 753 ; N uni054E ; G 1240 +U 1359 ; WX 705 ; N uni054F ; G 1241 +U 1360 ; WX 694 ; N uni0550 ; G 1242 +U 1361 ; WX 744 ; N uni0551 ; G 1243 +U 1362 ; WX 538 ; N uni0552 ; G 1244 +U 1363 ; WX 811 ; N uni0553 ; G 1245 +U 1364 ; WX 757 ; N uni0554 ; G 1246 +U 1365 ; WX 787 ; N uni0555 ; G 1247 +U 1366 ; WX 790 ; N uni0556 ; G 1248 +U 1369 ; WX 307 ; N uni0559 ; G 1249 +U 1370 ; WX 318 ; N uni055A ; G 1250 +U 1371 ; WX 234 ; N uni055B ; G 1251 +U 1372 ; WX 361 ; N uni055C ; G 1252 +U 1373 ; WX 238 ; N uni055D ; G 1253 +U 1374 ; WX 405 ; N uni055E ; G 1254 +U 1375 ; WX 500 ; N uni055F ; G 1255 +U 1377 ; WX 974 ; N uni0561 ; G 1256 +U 1378 ; WX 634 ; N uni0562 ; G 1257 +U 1379 ; WX 658 ; N uni0563 ; G 1258 +U 1380 ; WX 663 ; N uni0564 ; G 1259 +U 1381 ; WX 634 ; N uni0565 ; G 1260 +U 1382 ; WX 635 ; N uni0566 ; G 1261 +U 1383 ; WX 515 ; N uni0567 ; G 1262 +U 1384 ; WX 634 ; N uni0568 ; G 1263 +U 1385 ; WX 738 ; N uni0569 ; G 1264 +U 1386 ; WX 658 ; N uni056A ; G 1265 +U 1387 ; WX 634 ; N uni056B ; G 1266 +U 1388 ; WX 271 ; N uni056C ; G 1267 +U 1389 ; WX 980 ; N uni056D ; G 1268 +U 1390 ; WX 623 ; N uni056E ; G 1269 +U 1391 ; WX 634 ; N uni056F ; G 1270 +U 1392 ; WX 634 ; N uni0570 ; G 1271 +U 1393 ; WX 608 ; N uni0571 ; G 1272 +U 1394 ; WX 634 ; N uni0572 ; G 1273 +U 1395 ; WX 629 ; N uni0573 ; G 1274 +U 1396 ; WX 634 ; N uni0574 ; G 1275 +U 1397 ; WX 271 ; N uni0575 ; G 1276 +U 1398 ; WX 634 ; N uni0576 ; G 1277 +U 1399 ; WX 499 ; N uni0577 ; G 1278 +U 1400 ; WX 634 ; N uni0578 ; G 1279 +U 1401 ; WX 404 ; N uni0579 ; G 1280 +U 1402 ; WX 974 ; N uni057A ; G 1281 +U 1403 ; WX 560 ; N uni057B ; G 1282 +U 1404 ; WX 648 ; N uni057C ; G 1283 +U 1405 ; WX 634 ; N uni057D ; G 1284 +U 1406 ; WX 634 ; N uni057E ; G 1285 +U 1407 ; WX 974 ; N uni057F ; G 1286 +U 1408 ; WX 634 ; N uni0580 ; G 1287 +U 1409 ; WX 633 ; N uni0581 ; G 1288 +U 1410 ; WX 435 ; N uni0582 ; G 1289 +U 1411 ; WX 974 ; N uni0583 ; G 1290 +U 1412 ; WX 636 ; N uni0584 ; G 1291 +U 1413 ; WX 609 ; N uni0585 ; G 1292 +U 1414 ; WX 805 ; N uni0586 ; G 1293 +U 1415 ; WX 812 ; N uni0587 ; G 1294 +U 1417 ; WX 337 ; N uni0589 ; G 1295 +U 1418 ; WX 361 ; N uni058A ; G 1296 +U 1456 ; WX 0 ; N uni05B0 ; G 1297 +U 1457 ; WX 0 ; N uni05B1 ; G 1298 +U 1458 ; WX 0 ; N uni05B2 ; G 1299 +U 1459 ; WX 0 ; N uni05B3 ; G 1300 +U 1460 ; WX 0 ; N uni05B4 ; G 1301 +U 1461 ; WX 0 ; N uni05B5 ; G 1302 +U 1462 ; WX 0 ; N uni05B6 ; G 1303 +U 1463 ; WX 0 ; N uni05B7 ; G 1304 +U 1464 ; WX 0 ; N uni05B8 ; G 1305 +U 1465 ; WX 0 ; N uni05B9 ; G 1306 +U 1466 ; WX 0 ; N uni05BA ; G 1307 +U 1467 ; WX 0 ; N uni05BB ; G 1308 +U 1468 ; WX 0 ; N uni05BC ; G 1309 +U 1469 ; WX 0 ; N uni05BD ; G 1310 +U 1470 ; WX 361 ; N uni05BE ; G 1311 +U 1471 ; WX 0 ; N uni05BF ; G 1312 +U 1472 ; WX 295 ; N uni05C0 ; G 1313 +U 1473 ; WX 0 ; N uni05C1 ; G 1314 +U 1474 ; WX 0 ; N uni05C2 ; G 1315 +U 1475 ; WX 295 ; N uni05C3 ; G 1316 +U 1478 ; WX 441 ; N uni05C6 ; G 1317 +U 1479 ; WX 0 ; N uni05C7 ; G 1318 +U 1488 ; WX 668 ; N uni05D0 ; G 1319 +U 1489 ; WX 578 ; N uni05D1 ; G 1320 +U 1490 ; WX 412 ; N uni05D2 ; G 1321 +U 1491 ; WX 546 ; N uni05D3 ; G 1322 +U 1492 ; WX 653 ; N uni05D4 ; G 1323 +U 1493 ; WX 272 ; N uni05D5 ; G 1324 +U 1494 ; WX 346 ; N uni05D6 ; G 1325 +U 1495 ; WX 653 ; N uni05D7 ; G 1326 +U 1496 ; WX 648 ; N uni05D8 ; G 1327 +U 1497 ; WX 224 ; N uni05D9 ; G 1328 +U 1498 ; WX 537 ; N uni05DA ; G 1329 +U 1499 ; WX 529 ; N uni05DB ; G 1330 +U 1500 ; WX 568 ; N uni05DC ; G 1331 +U 1501 ; WX 664 ; N uni05DD ; G 1332 +U 1502 ; WX 679 ; N uni05DE ; G 1333 +U 1503 ; WX 272 ; N uni05DF ; G 1334 +U 1504 ; WX 400 ; N uni05E0 ; G 1335 +U 1505 ; WX 649 ; N uni05E1 ; G 1336 +U 1506 ; WX 626 ; N uni05E2 ; G 1337 +U 1507 ; WX 640 ; N uni05E3 ; G 1338 +U 1508 ; WX 625 ; N uni05E4 ; G 1339 +U 1509 ; WX 540 ; N uni05E5 ; G 1340 +U 1510 ; WX 593 ; N uni05E6 ; G 1341 +U 1511 ; WX 709 ; N uni05E7 ; G 1342 +U 1512 ; WX 564 ; N uni05E8 ; G 1343 +U 1513 ; WX 708 ; N uni05E9 ; G 1344 +U 1514 ; WX 657 ; N uni05EA ; G 1345 +U 1520 ; WX 471 ; N uni05F0 ; G 1346 +U 1521 ; WX 423 ; N uni05F1 ; G 1347 +U 1522 ; WX 331 ; N uni05F2 ; G 1348 +U 1523 ; WX 416 ; N uni05F3 ; G 1349 +U 1524 ; WX 645 ; N uni05F4 ; G 1350 +U 1542 ; WX 637 ; N uni0606 ; G 1351 +U 1543 ; WX 637 ; N uni0607 ; G 1352 +U 1545 ; WX 757 ; N uni0609 ; G 1353 +U 1546 ; WX 977 ; N uni060A ; G 1354 +U 1548 ; WX 323 ; N uni060C ; G 1355 +U 1557 ; WX 0 ; N uni0615 ; G 1356 +U 1563 ; WX 318 ; N uni061B ; G 1357 +U 1567 ; WX 531 ; N uni061F ; G 1358 +U 1569 ; WX 470 ; N uni0621 ; G 1359 +U 1570 ; WX 278 ; N uni0622 ; G 1360 +U 1571 ; WX 278 ; N uni0623 ; G 1361 +U 1572 ; WX 483 ; N uni0624 ; G 1362 +U 1573 ; WX 278 ; N uni0625 ; G 1363 +U 1574 ; WX 783 ; N uni0626 ; G 1364 +U 1575 ; WX 278 ; N uni0627 ; G 1365 +U 1576 ; WX 941 ; N uni0628 ; G 1366 +U 1577 ; WX 524 ; N uni0629 ; G 1367 +U 1578 ; WX 941 ; N uni062A ; G 1368 +U 1579 ; WX 941 ; N uni062B ; G 1369 +U 1580 ; WX 646 ; N uni062C ; G 1370 +U 1581 ; WX 646 ; N uni062D ; G 1371 +U 1582 ; WX 646 ; N uni062E ; G 1372 +U 1583 ; WX 445 ; N uni062F ; G 1373 +U 1584 ; WX 445 ; N uni0630 ; G 1374 +U 1585 ; WX 483 ; N uni0631 ; G 1375 +U 1586 ; WX 483 ; N uni0632 ; G 1376 +U 1587 ; WX 1221 ; N uni0633 ; G 1377 +U 1588 ; WX 1221 ; N uni0634 ; G 1378 +U 1589 ; WX 1209 ; N uni0635 ; G 1379 +U 1590 ; WX 1209 ; N uni0636 ; G 1380 +U 1591 ; WX 925 ; N uni0637 ; G 1381 +U 1592 ; WX 925 ; N uni0638 ; G 1382 +U 1593 ; WX 597 ; N uni0639 ; G 1383 +U 1594 ; WX 597 ; N uni063A ; G 1384 +U 1600 ; WX 293 ; N uni0640 ; G 1385 +U 1601 ; WX 1037 ; N uni0641 ; G 1386 +U 1602 ; WX 776 ; N uni0642 ; G 1387 +U 1603 ; WX 824 ; N uni0643 ; G 1388 +U 1604 ; WX 727 ; N uni0644 ; G 1389 +U 1605 ; WX 619 ; N uni0645 ; G 1390 +U 1606 ; WX 734 ; N uni0646 ; G 1391 +U 1607 ; WX 524 ; N uni0647 ; G 1392 +U 1608 ; WX 483 ; N uni0648 ; G 1393 +U 1609 ; WX 783 ; N uni0649 ; G 1394 +U 1610 ; WX 783 ; N uni064A ; G 1395 +U 1611 ; WX 0 ; N uni064B ; G 1396 +U 1612 ; WX 0 ; N uni064C ; G 1397 +U 1613 ; WX 0 ; N uni064D ; G 1398 +U 1614 ; WX 0 ; N uni064E ; G 1399 +U 1615 ; WX 0 ; N uni064F ; G 1400 +U 1616 ; WX 0 ; N uni0650 ; G 1401 +U 1617 ; WX 0 ; N uni0651 ; G 1402 +U 1618 ; WX 0 ; N uni0652 ; G 1403 +U 1619 ; WX 0 ; N uni0653 ; G 1404 +U 1620 ; WX 0 ; N uni0654 ; G 1405 +U 1621 ; WX 0 ; N uni0655 ; G 1406 +U 1623 ; WX 0 ; N uni0657 ; G 1407 +U 1626 ; WX 500 ; N uni065A ; G 1408 +U 1632 ; WX 537 ; N uni0660 ; G 1409 +U 1633 ; WX 537 ; N uni0661 ; G 1410 +U 1634 ; WX 537 ; N uni0662 ; G 1411 +U 1635 ; WX 537 ; N uni0663 ; G 1412 +U 1636 ; WX 537 ; N uni0664 ; G 1413 +U 1637 ; WX 537 ; N uni0665 ; G 1414 +U 1638 ; WX 537 ; N uni0666 ; G 1415 +U 1639 ; WX 537 ; N uni0667 ; G 1416 +U 1640 ; WX 537 ; N uni0668 ; G 1417 +U 1641 ; WX 537 ; N uni0669 ; G 1418 +U 1642 ; WX 537 ; N uni066A ; G 1419 +U 1643 ; WX 325 ; N uni066B ; G 1420 +U 1644 ; WX 318 ; N uni066C ; G 1421 +U 1645 ; WX 545 ; N uni066D ; G 1422 +U 1646 ; WX 941 ; N uni066E ; G 1423 +U 1647 ; WX 776 ; N uni066F ; G 1424 +U 1648 ; WX 0 ; N uni0670 ; G 1425 +U 1652 ; WX 292 ; N uni0674 ; G 1426 +U 1657 ; WX 941 ; N uni0679 ; G 1427 +U 1658 ; WX 941 ; N uni067A ; G 1428 +U 1659 ; WX 941 ; N uni067B ; G 1429 +U 1660 ; WX 941 ; N uni067C ; G 1430 +U 1661 ; WX 941 ; N uni067D ; G 1431 +U 1662 ; WX 941 ; N uni067E ; G 1432 +U 1663 ; WX 941 ; N uni067F ; G 1433 +U 1664 ; WX 941 ; N uni0680 ; G 1434 +U 1665 ; WX 646 ; N uni0681 ; G 1435 +U 1666 ; WX 646 ; N uni0682 ; G 1436 +U 1667 ; WX 646 ; N uni0683 ; G 1437 +U 1668 ; WX 646 ; N uni0684 ; G 1438 +U 1669 ; WX 646 ; N uni0685 ; G 1439 +U 1670 ; WX 646 ; N uni0686 ; G 1440 +U 1671 ; WX 646 ; N uni0687 ; G 1441 +U 1672 ; WX 445 ; N uni0688 ; G 1442 +U 1673 ; WX 445 ; N uni0689 ; G 1443 +U 1674 ; WX 445 ; N uni068A ; G 1444 +U 1675 ; WX 445 ; N uni068B ; G 1445 +U 1676 ; WX 445 ; N uni068C ; G 1446 +U 1677 ; WX 445 ; N uni068D ; G 1447 +U 1678 ; WX 445 ; N uni068E ; G 1448 +U 1679 ; WX 445 ; N uni068F ; G 1449 +U 1680 ; WX 445 ; N uni0690 ; G 1450 +U 1681 ; WX 483 ; N uni0691 ; G 1451 +U 1682 ; WX 483 ; N uni0692 ; G 1452 +U 1683 ; WX 498 ; N uni0693 ; G 1453 +U 1684 ; WX 530 ; N uni0694 ; G 1454 +U 1685 ; WX 610 ; N uni0695 ; G 1455 +U 1686 ; WX 530 ; N uni0696 ; G 1456 +U 1687 ; WX 483 ; N uni0697 ; G 1457 +U 1688 ; WX 483 ; N uni0698 ; G 1458 +U 1689 ; WX 483 ; N uni0699 ; G 1459 +U 1690 ; WX 1221 ; N uni069A ; G 1460 +U 1691 ; WX 1221 ; N uni069B ; G 1461 +U 1692 ; WX 1221 ; N uni069C ; G 1462 +U 1693 ; WX 1209 ; N uni069D ; G 1463 +U 1694 ; WX 1209 ; N uni069E ; G 1464 +U 1695 ; WX 925 ; N uni069F ; G 1465 +U 1696 ; WX 597 ; N uni06A0 ; G 1466 +U 1697 ; WX 1037 ; N uni06A1 ; G 1467 +U 1698 ; WX 1037 ; N uni06A2 ; G 1468 +U 1699 ; WX 1037 ; N uni06A3 ; G 1469 +U 1700 ; WX 1037 ; N uni06A4 ; G 1470 +U 1701 ; WX 1037 ; N uni06A5 ; G 1471 +U 1702 ; WX 1037 ; N uni06A6 ; G 1472 +U 1703 ; WX 776 ; N uni06A7 ; G 1473 +U 1704 ; WX 776 ; N uni06A8 ; G 1474 +U 1705 ; WX 895 ; N uni06A9 ; G 1475 +U 1706 ; WX 1054 ; N uni06AA ; G 1476 +U 1707 ; WX 895 ; N uni06AB ; G 1477 +U 1708 ; WX 824 ; N uni06AC ; G 1478 +U 1709 ; WX 824 ; N uni06AD ; G 1479 +U 1710 ; WX 824 ; N uni06AE ; G 1480 +U 1711 ; WX 895 ; N uni06AF ; G 1481 +U 1712 ; WX 895 ; N uni06B0 ; G 1482 +U 1713 ; WX 895 ; N uni06B1 ; G 1483 +U 1714 ; WX 895 ; N uni06B2 ; G 1484 +U 1715 ; WX 895 ; N uni06B3 ; G 1485 +U 1716 ; WX 895 ; N uni06B4 ; G 1486 +U 1717 ; WX 727 ; N uni06B5 ; G 1487 +U 1718 ; WX 727 ; N uni06B6 ; G 1488 +U 1719 ; WX 727 ; N uni06B7 ; G 1489 +U 1720 ; WX 727 ; N uni06B8 ; G 1490 +U 1721 ; WX 734 ; N uni06B9 ; G 1491 +U 1722 ; WX 734 ; N uni06BA ; G 1492 +U 1723 ; WX 734 ; N uni06BB ; G 1493 +U 1724 ; WX 734 ; N uni06BC ; G 1494 +U 1725 ; WX 734 ; N uni06BD ; G 1495 +U 1726 ; WX 698 ; N uni06BE ; G 1496 +U 1727 ; WX 646 ; N uni06BF ; G 1497 +U 1734 ; WX 483 ; N uni06C6 ; G 1498 +U 1735 ; WX 483 ; N uni06C7 ; G 1499 +U 1736 ; WX 483 ; N uni06C8 ; G 1500 +U 1739 ; WX 483 ; N uni06CB ; G 1501 +U 1740 ; WX 783 ; N uni06CC ; G 1502 +U 1742 ; WX 783 ; N uni06CE ; G 1503 +U 1744 ; WX 783 ; N uni06D0 ; G 1504 +U 1749 ; WX 524 ; N uni06D5 ; G 1505 +U 1776 ; WX 537 ; N uni06F0 ; G 1506 +U 1777 ; WX 537 ; N uni06F1 ; G 1507 +U 1778 ; WX 537 ; N uni06F2 ; G 1508 +U 1779 ; WX 537 ; N uni06F3 ; G 1509 +U 1780 ; WX 537 ; N uni06F4 ; G 1510 +U 1781 ; WX 537 ; N uni06F5 ; G 1511 +U 1782 ; WX 537 ; N uni06F6 ; G 1512 +U 1783 ; WX 537 ; N uni06F7 ; G 1513 +U 1784 ; WX 537 ; N uni06F8 ; G 1514 +U 1785 ; WX 537 ; N uni06F9 ; G 1515 +U 1984 ; WX 636 ; N uni07C0 ; G 1516 +U 1985 ; WX 636 ; N uni07C1 ; G 1517 +U 1986 ; WX 636 ; N uni07C2 ; G 1518 +U 1987 ; WX 636 ; N uni07C3 ; G 1519 +U 1988 ; WX 636 ; N uni07C4 ; G 1520 +U 1989 ; WX 636 ; N uni07C5 ; G 1521 +U 1990 ; WX 636 ; N uni07C6 ; G 1522 +U 1991 ; WX 636 ; N uni07C7 ; G 1523 +U 1992 ; WX 636 ; N uni07C8 ; G 1524 +U 1993 ; WX 636 ; N uni07C9 ; G 1525 +U 1994 ; WX 278 ; N uni07CA ; G 1526 +U 1995 ; WX 571 ; N uni07CB ; G 1527 +U 1996 ; WX 424 ; N uni07CC ; G 1528 +U 1997 ; WX 592 ; N uni07CD ; G 1529 +U 1998 ; WX 654 ; N uni07CE ; G 1530 +U 1999 ; WX 654 ; N uni07CF ; G 1531 +U 2000 ; WX 594 ; N uni07D0 ; G 1532 +U 2001 ; WX 654 ; N uni07D1 ; G 1533 +U 2002 ; WX 829 ; N uni07D2 ; G 1534 +U 2003 ; WX 438 ; N uni07D3 ; G 1535 +U 2004 ; WX 438 ; N uni07D4 ; G 1536 +U 2005 ; WX 559 ; N uni07D5 ; G 1537 +U 2006 ; WX 612 ; N uni07D6 ; G 1538 +U 2007 ; WX 350 ; N uni07D7 ; G 1539 +U 2008 ; WX 959 ; N uni07D8 ; G 1540 +U 2009 ; WX 473 ; N uni07D9 ; G 1541 +U 2010 ; WX 783 ; N uni07DA ; G 1542 +U 2011 ; WX 654 ; N uni07DB ; G 1543 +U 2012 ; WX 625 ; N uni07DC ; G 1544 +U 2013 ; WX 734 ; N uni07DD ; G 1545 +U 2014 ; WX 530 ; N uni07DE ; G 1546 +U 2015 ; WX 724 ; N uni07DF ; G 1547 +U 2016 ; WX 473 ; N uni07E0 ; G 1548 +U 2017 ; WX 625 ; N uni07E1 ; G 1549 +U 2018 ; WX 594 ; N uni07E2 ; G 1550 +U 2019 ; WX 530 ; N uni07E3 ; G 1551 +U 2020 ; WX 530 ; N uni07E4 ; G 1552 +U 2021 ; WX 522 ; N uni07E5 ; G 1553 +U 2022 ; WX 594 ; N uni07E6 ; G 1554 +U 2023 ; WX 594 ; N uni07E7 ; G 1555 +U 2027 ; WX 0 ; N uni07EB ; G 1556 +U 2028 ; WX 0 ; N uni07EC ; G 1557 +U 2029 ; WX 0 ; N uni07ED ; G 1558 +U 2030 ; WX 0 ; N uni07EE ; G 1559 +U 2031 ; WX 0 ; N uni07EF ; G 1560 +U 2032 ; WX 0 ; N uni07F0 ; G 1561 +U 2033 ; WX 0 ; N uni07F1 ; G 1562 +U 2034 ; WX 0 ; N uni07F2 ; G 1563 +U 2035 ; WX 0 ; N uni07F3 ; G 1564 +U 2036 ; WX 313 ; N uni07F4 ; G 1565 +U 2037 ; WX 313 ; N uni07F5 ; G 1566 +U 2040 ; WX 560 ; N uni07F8 ; G 1567 +U 2041 ; WX 560 ; N uni07F9 ; G 1568 +U 2042 ; WX 361 ; N uni07FA ; G 1569 +U 3647 ; WX 636 ; N uni0E3F ; G 1570 +U 3713 ; WX 670 ; N uni0E81 ; G 1571 +U 3714 ; WX 684 ; N uni0E82 ; G 1572 +U 3716 ; WX 688 ; N uni0E84 ; G 1573 +U 3719 ; WX 482 ; N uni0E87 ; G 1574 +U 3720 ; WX 628 ; N uni0E88 ; G 1575 +U 3722 ; WX 684 ; N uni0E8A ; G 1576 +U 3725 ; WX 688 ; N uni0E8D ; G 1577 +U 3732 ; WX 669 ; N uni0E94 ; G 1578 +U 3733 ; WX 642 ; N uni0E95 ; G 1579 +U 3734 ; WX 645 ; N uni0E96 ; G 1580 +U 3735 ; WX 655 ; N uni0E97 ; G 1581 +U 3737 ; WX 659 ; N uni0E99 ; G 1582 +U 3738 ; WX 625 ; N uni0E9A ; G 1583 +U 3739 ; WX 625 ; N uni0E9B ; G 1584 +U 3740 ; WX 745 ; N uni0E9C ; G 1585 +U 3741 ; WX 767 ; N uni0E9D ; G 1586 +U 3742 ; WX 687 ; N uni0E9E ; G 1587 +U 3743 ; WX 687 ; N uni0E9F ; G 1588 +U 3745 ; WX 702 ; N uni0EA1 ; G 1589 +U 3746 ; WX 688 ; N uni0EA2 ; G 1590 +U 3747 ; WX 684 ; N uni0EA3 ; G 1591 +U 3749 ; WX 649 ; N uni0EA5 ; G 1592 +U 3751 ; WX 632 ; N uni0EA7 ; G 1593 +U 3754 ; WX 703 ; N uni0EAA ; G 1594 +U 3755 ; WX 819 ; N uni0EAB ; G 1595 +U 3757 ; WX 633 ; N uni0EAD ; G 1596 +U 3758 ; WX 684 ; N uni0EAE ; G 1597 +U 3759 ; WX 788 ; N uni0EAF ; G 1598 +U 3760 ; WX 632 ; N uni0EB0 ; G 1599 +U 3761 ; WX 0 ; N uni0EB1 ; G 1600 +U 3762 ; WX 539 ; N uni0EB2 ; G 1601 +U 3763 ; WX 539 ; N uni0EB3 ; G 1602 +U 3764 ; WX 0 ; N uni0EB4 ; G 1603 +U 3765 ; WX 0 ; N uni0EB5 ; G 1604 +U 3766 ; WX 0 ; N uni0EB6 ; G 1605 +U 3767 ; WX 0 ; N uni0EB7 ; G 1606 +U 3768 ; WX 0 ; N uni0EB8 ; G 1607 +U 3769 ; WX 0 ; N uni0EB9 ; G 1608 +U 3771 ; WX 0 ; N uni0EBB ; G 1609 +U 3772 ; WX 0 ; N uni0EBC ; G 1610 +U 3773 ; WX 663 ; N uni0EBD ; G 1611 +U 3776 ; WX 375 ; N uni0EC0 ; G 1612 +U 3777 ; WX 657 ; N uni0EC1 ; G 1613 +U 3778 ; WX 460 ; N uni0EC2 ; G 1614 +U 3779 ; WX 547 ; N uni0EC3 ; G 1615 +U 3780 ; WX 491 ; N uni0EC4 ; G 1616 +U 3782 ; WX 674 ; N uni0EC6 ; G 1617 +U 3784 ; WX 0 ; N uni0EC8 ; G 1618 +U 3785 ; WX 0 ; N uni0EC9 ; G 1619 +U 3786 ; WX 0 ; N uni0ECA ; G 1620 +U 3787 ; WX 0 ; N uni0ECB ; G 1621 +U 3788 ; WX 0 ; N uni0ECC ; G 1622 +U 3789 ; WX 0 ; N uni0ECD ; G 1623 +U 3792 ; WX 636 ; N uni0ED0 ; G 1624 +U 3793 ; WX 641 ; N uni0ED1 ; G 1625 +U 3794 ; WX 641 ; N uni0ED2 ; G 1626 +U 3795 ; WX 670 ; N uni0ED3 ; G 1627 +U 3796 ; WX 625 ; N uni0ED4 ; G 1628 +U 3797 ; WX 625 ; N uni0ED5 ; G 1629 +U 3798 ; WX 703 ; N uni0ED6 ; G 1630 +U 3799 ; WX 670 ; N uni0ED7 ; G 1631 +U 3800 ; WX 674 ; N uni0ED8 ; G 1632 +U 3801 ; WX 677 ; N uni0ED9 ; G 1633 +U 3804 ; WX 1028 ; N uni0EDC ; G 1634 +U 3805 ; WX 1028 ; N uni0EDD ; G 1635 +U 4256 ; WX 874 ; N uni10A0 ; G 1636 +U 4257 ; WX 733 ; N uni10A1 ; G 1637 +U 4258 ; WX 679 ; N uni10A2 ; G 1638 +U 4259 ; WX 834 ; N uni10A3 ; G 1639 +U 4260 ; WX 615 ; N uni10A4 ; G 1640 +U 4261 ; WX 768 ; N uni10A5 ; G 1641 +U 4262 ; WX 753 ; N uni10A6 ; G 1642 +U 4263 ; WX 914 ; N uni10A7 ; G 1643 +U 4264 ; WX 453 ; N uni10A8 ; G 1644 +U 4265 ; WX 620 ; N uni10A9 ; G 1645 +U 4266 ; WX 843 ; N uni10AA ; G 1646 +U 4267 ; WX 882 ; N uni10AB ; G 1647 +U 4268 ; WX 625 ; N uni10AC ; G 1648 +U 4269 ; WX 854 ; N uni10AD ; G 1649 +U 4270 ; WX 781 ; N uni10AE ; G 1650 +U 4271 ; WX 629 ; N uni10AF ; G 1651 +U 4272 ; WX 912 ; N uni10B0 ; G 1652 +U 4273 ; WX 621 ; N uni10B1 ; G 1653 +U 4274 ; WX 620 ; N uni10B2 ; G 1654 +U 4275 ; WX 854 ; N uni10B3 ; G 1655 +U 4276 ; WX 866 ; N uni10B4 ; G 1656 +U 4277 ; WX 724 ; N uni10B5 ; G 1657 +U 4278 ; WX 630 ; N uni10B6 ; G 1658 +U 4279 ; WX 621 ; N uni10B7 ; G 1659 +U 4280 ; WX 625 ; N uni10B8 ; G 1660 +U 4281 ; WX 620 ; N uni10B9 ; G 1661 +U 4282 ; WX 818 ; N uni10BA ; G 1662 +U 4283 ; WX 874 ; N uni10BB ; G 1663 +U 4284 ; WX 615 ; N uni10BC ; G 1664 +U 4285 ; WX 623 ; N uni10BD ; G 1665 +U 4286 ; WX 625 ; N uni10BE ; G 1666 +U 4287 ; WX 725 ; N uni10BF ; G 1667 +U 4288 ; WX 844 ; N uni10C0 ; G 1668 +U 4289 ; WX 596 ; N uni10C1 ; G 1669 +U 4290 ; WX 688 ; N uni10C2 ; G 1670 +U 4291 ; WX 596 ; N uni10C3 ; G 1671 +U 4292 ; WX 594 ; N uni10C4 ; G 1672 +U 4293 ; WX 738 ; N uni10C5 ; G 1673 +U 4304 ; WX 508 ; N uni10D0 ; G 1674 +U 4305 ; WX 518 ; N uni10D1 ; G 1675 +U 4306 ; WX 581 ; N uni10D2 ; G 1676 +U 4307 ; WX 818 ; N uni10D3 ; G 1677 +U 4308 ; WX 508 ; N uni10D4 ; G 1678 +U 4309 ; WX 513 ; N uni10D5 ; G 1679 +U 4310 ; WX 500 ; N uni10D6 ; G 1680 +U 4311 ; WX 801 ; N uni10D7 ; G 1681 +U 4312 ; WX 518 ; N uni10D8 ; G 1682 +U 4313 ; WX 510 ; N uni10D9 ; G 1683 +U 4314 ; WX 1064 ; N uni10DA ; G 1684 +U 4315 ; WX 522 ; N uni10DB ; G 1685 +U 4316 ; WX 522 ; N uni10DC ; G 1686 +U 4317 ; WX 786 ; N uni10DD ; G 1687 +U 4318 ; WX 508 ; N uni10DE ; G 1688 +U 4319 ; WX 518 ; N uni10DF ; G 1689 +U 4320 ; WX 796 ; N uni10E0 ; G 1690 +U 4321 ; WX 522 ; N uni10E1 ; G 1691 +U 4322 ; WX 654 ; N uni10E2 ; G 1692 +U 4323 ; WX 522 ; N uni10E3 ; G 1693 +U 4324 ; WX 825 ; N uni10E4 ; G 1694 +U 4325 ; WX 513 ; N uni10E5 ; G 1695 +U 4326 ; WX 786 ; N uni10E6 ; G 1696 +U 4327 ; WX 518 ; N uni10E7 ; G 1697 +U 4328 ; WX 518 ; N uni10E8 ; G 1698 +U 4329 ; WX 522 ; N uni10E9 ; G 1699 +U 4330 ; WX 571 ; N uni10EA ; G 1700 +U 4331 ; WX 522 ; N uni10EB ; G 1701 +U 4332 ; WX 518 ; N uni10EC ; G 1702 +U 4333 ; WX 520 ; N uni10ED ; G 1703 +U 4334 ; WX 522 ; N uni10EE ; G 1704 +U 4335 ; WX 454 ; N uni10EF ; G 1705 +U 4336 ; WX 508 ; N uni10F0 ; G 1706 +U 4337 ; WX 518 ; N uni10F1 ; G 1707 +U 4338 ; WX 508 ; N uni10F2 ; G 1708 +U 4339 ; WX 508 ; N uni10F3 ; G 1709 +U 4340 ; WX 518 ; N uni10F4 ; G 1710 +U 4341 ; WX 554 ; N uni10F5 ; G 1711 +U 4342 ; WX 828 ; N uni10F6 ; G 1712 +U 4343 ; WX 552 ; N uni10F7 ; G 1713 +U 4344 ; WX 508 ; N uni10F8 ; G 1714 +U 4345 ; WX 571 ; N uni10F9 ; G 1715 +U 4346 ; WX 508 ; N uni10FA ; G 1716 +U 4347 ; WX 448 ; N uni10FB ; G 1717 +U 4348 ; WX 324 ; N uni10FC ; G 1718 +U 5121 ; WX 684 ; N uni1401 ; G 1719 +U 5122 ; WX 684 ; N uni1402 ; G 1720 +U 5123 ; WX 684 ; N uni1403 ; G 1721 +U 5124 ; WX 684 ; N uni1404 ; G 1722 +U 5125 ; WX 769 ; N uni1405 ; G 1723 +U 5126 ; WX 769 ; N uni1406 ; G 1724 +U 5127 ; WX 769 ; N uni1407 ; G 1725 +U 5129 ; WX 769 ; N uni1409 ; G 1726 +U 5130 ; WX 769 ; N uni140A ; G 1727 +U 5131 ; WX 769 ; N uni140B ; G 1728 +U 5132 ; WX 835 ; N uni140C ; G 1729 +U 5133 ; WX 834 ; N uni140D ; G 1730 +U 5134 ; WX 835 ; N uni140E ; G 1731 +U 5135 ; WX 834 ; N uni140F ; G 1732 +U 5136 ; WX 835 ; N uni1410 ; G 1733 +U 5137 ; WX 834 ; N uni1411 ; G 1734 +U 5138 ; WX 967 ; N uni1412 ; G 1735 +U 5139 ; WX 1007 ; N uni1413 ; G 1736 +U 5140 ; WX 967 ; N uni1414 ; G 1737 +U 5141 ; WX 1007 ; N uni1415 ; G 1738 +U 5142 ; WX 769 ; N uni1416 ; G 1739 +U 5143 ; WX 967 ; N uni1417 ; G 1740 +U 5144 ; WX 1007 ; N uni1418 ; G 1741 +U 5145 ; WX 967 ; N uni1419 ; G 1742 +U 5146 ; WX 1007 ; N uni141A ; G 1743 +U 5147 ; WX 769 ; N uni141B ; G 1744 +U 5149 ; WX 256 ; N uni141D ; G 1745 +U 5150 ; WX 543 ; N uni141E ; G 1746 +U 5151 ; WX 423 ; N uni141F ; G 1747 +U 5152 ; WX 423 ; N uni1420 ; G 1748 +U 5153 ; WX 389 ; N uni1421 ; G 1749 +U 5154 ; WX 389 ; N uni1422 ; G 1750 +U 5155 ; WX 393 ; N uni1423 ; G 1751 +U 5156 ; WX 389 ; N uni1424 ; G 1752 +U 5157 ; WX 466 ; N uni1425 ; G 1753 +U 5158 ; WX 385 ; N uni1426 ; G 1754 +U 5159 ; WX 256 ; N uni1427 ; G 1755 +U 5160 ; WX 389 ; N uni1428 ; G 1756 +U 5161 ; WX 389 ; N uni1429 ; G 1757 +U 5162 ; WX 389 ; N uni142A ; G 1758 +U 5163 ; WX 1090 ; N uni142B ; G 1759 +U 5164 ; WX 909 ; N uni142C ; G 1760 +U 5165 ; WX 953 ; N uni142D ; G 1761 +U 5166 ; WX 1117 ; N uni142E ; G 1762 +U 5167 ; WX 684 ; N uni142F ; G 1763 +U 5168 ; WX 684 ; N uni1430 ; G 1764 +U 5169 ; WX 684 ; N uni1431 ; G 1765 +U 5170 ; WX 684 ; N uni1432 ; G 1766 +U 5171 ; WX 729 ; N uni1433 ; G 1767 +U 5172 ; WX 729 ; N uni1434 ; G 1768 +U 5173 ; WX 729 ; N uni1435 ; G 1769 +U 5175 ; WX 729 ; N uni1437 ; G 1770 +U 5176 ; WX 729 ; N uni1438 ; G 1771 +U 5177 ; WX 729 ; N uni1439 ; G 1772 +U 5178 ; WX 835 ; N uni143A ; G 1773 +U 5179 ; WX 684 ; N uni143B ; G 1774 +U 5180 ; WX 835 ; N uni143C ; G 1775 +U 5181 ; WX 834 ; N uni143D ; G 1776 +U 5182 ; WX 835 ; N uni143E ; G 1777 +U 5183 ; WX 834 ; N uni143F ; G 1778 +U 5184 ; WX 967 ; N uni1440 ; G 1779 +U 5185 ; WX 1007 ; N uni1441 ; G 1780 +U 5186 ; WX 967 ; N uni1442 ; G 1781 +U 5187 ; WX 1007 ; N uni1443 ; G 1782 +U 5188 ; WX 967 ; N uni1444 ; G 1783 +U 5189 ; WX 1007 ; N uni1445 ; G 1784 +U 5190 ; WX 967 ; N uni1446 ; G 1785 +U 5191 ; WX 1007 ; N uni1447 ; G 1786 +U 5192 ; WX 729 ; N uni1448 ; G 1787 +U 5193 ; WX 508 ; N uni1449 ; G 1788 +U 5194 ; WX 192 ; N uni144A ; G 1789 +U 5196 ; WX 732 ; N uni144C ; G 1790 +U 5197 ; WX 732 ; N uni144D ; G 1791 +U 5198 ; WX 732 ; N uni144E ; G 1792 +U 5199 ; WX 732 ; N uni144F ; G 1793 +U 5200 ; WX 730 ; N uni1450 ; G 1794 +U 5201 ; WX 730 ; N uni1451 ; G 1795 +U 5202 ; WX 730 ; N uni1452 ; G 1796 +U 5204 ; WX 730 ; N uni1454 ; G 1797 +U 5205 ; WX 730 ; N uni1455 ; G 1798 +U 5206 ; WX 730 ; N uni1456 ; G 1799 +U 5207 ; WX 921 ; N uni1457 ; G 1800 +U 5208 ; WX 889 ; N uni1458 ; G 1801 +U 5209 ; WX 921 ; N uni1459 ; G 1802 +U 5210 ; WX 889 ; N uni145A ; G 1803 +U 5211 ; WX 921 ; N uni145B ; G 1804 +U 5212 ; WX 889 ; N uni145C ; G 1805 +U 5213 ; WX 928 ; N uni145D ; G 1806 +U 5214 ; WX 900 ; N uni145E ; G 1807 +U 5215 ; WX 928 ; N uni145F ; G 1808 +U 5216 ; WX 900 ; N uni1460 ; G 1809 +U 5217 ; WX 947 ; N uni1461 ; G 1810 +U 5218 ; WX 900 ; N uni1462 ; G 1811 +U 5219 ; WX 947 ; N uni1463 ; G 1812 +U 5220 ; WX 900 ; N uni1464 ; G 1813 +U 5221 ; WX 947 ; N uni1465 ; G 1814 +U 5222 ; WX 434 ; N uni1466 ; G 1815 +U 5223 ; WX 877 ; N uni1467 ; G 1816 +U 5224 ; WX 877 ; N uni1468 ; G 1817 +U 5225 ; WX 866 ; N uni1469 ; G 1818 +U 5226 ; WX 890 ; N uni146A ; G 1819 +U 5227 ; WX 628 ; N uni146B ; G 1820 +U 5228 ; WX 628 ; N uni146C ; G 1821 +U 5229 ; WX 628 ; N uni146D ; G 1822 +U 5230 ; WX 628 ; N uni146E ; G 1823 +U 5231 ; WX 628 ; N uni146F ; G 1824 +U 5232 ; WX 628 ; N uni1470 ; G 1825 +U 5233 ; WX 628 ; N uni1471 ; G 1826 +U 5234 ; WX 628 ; N uni1472 ; G 1827 +U 5235 ; WX 628 ; N uni1473 ; G 1828 +U 5236 ; WX 860 ; N uni1474 ; G 1829 +U 5237 ; WX 771 ; N uni1475 ; G 1830 +U 5238 ; WX 815 ; N uni1476 ; G 1831 +U 5239 ; WX 816 ; N uni1477 ; G 1832 +U 5240 ; WX 815 ; N uni1478 ; G 1833 +U 5241 ; WX 816 ; N uni1479 ; G 1834 +U 5242 ; WX 860 ; N uni147A ; G 1835 +U 5243 ; WX 771 ; N uni147B ; G 1836 +U 5244 ; WX 860 ; N uni147C ; G 1837 +U 5245 ; WX 771 ; N uni147D ; G 1838 +U 5246 ; WX 815 ; N uni147E ; G 1839 +U 5247 ; WX 816 ; N uni147F ; G 1840 +U 5248 ; WX 815 ; N uni1480 ; G 1841 +U 5249 ; WX 816 ; N uni1481 ; G 1842 +U 5250 ; WX 815 ; N uni1482 ; G 1843 +U 5251 ; WX 407 ; N uni1483 ; G 1844 +U 5252 ; WX 407 ; N uni1484 ; G 1845 +U 5253 ; WX 750 ; N uni1485 ; G 1846 +U 5254 ; WX 775 ; N uni1486 ; G 1847 +U 5255 ; WX 750 ; N uni1487 ; G 1848 +U 5256 ; WX 775 ; N uni1488 ; G 1849 +U 5257 ; WX 628 ; N uni1489 ; G 1850 +U 5258 ; WX 628 ; N uni148A ; G 1851 +U 5259 ; WX 628 ; N uni148B ; G 1852 +U 5260 ; WX 628 ; N uni148C ; G 1853 +U 5261 ; WX 628 ; N uni148D ; G 1854 +U 5262 ; WX 628 ; N uni148E ; G 1855 +U 5263 ; WX 628 ; N uni148F ; G 1856 +U 5264 ; WX 628 ; N uni1490 ; G 1857 +U 5265 ; WX 628 ; N uni1491 ; G 1858 +U 5266 ; WX 860 ; N uni1492 ; G 1859 +U 5267 ; WX 771 ; N uni1493 ; G 1860 +U 5268 ; WX 815 ; N uni1494 ; G 1861 +U 5269 ; WX 816 ; N uni1495 ; G 1862 +U 5270 ; WX 815 ; N uni1496 ; G 1863 +U 5271 ; WX 816 ; N uni1497 ; G 1864 +U 5272 ; WX 860 ; N uni1498 ; G 1865 +U 5273 ; WX 771 ; N uni1499 ; G 1866 +U 5274 ; WX 860 ; N uni149A ; G 1867 +U 5275 ; WX 771 ; N uni149B ; G 1868 +U 5276 ; WX 815 ; N uni149C ; G 1869 +U 5277 ; WX 816 ; N uni149D ; G 1870 +U 5278 ; WX 815 ; N uni149E ; G 1871 +U 5279 ; WX 816 ; N uni149F ; G 1872 +U 5280 ; WX 815 ; N uni14A0 ; G 1873 +U 5281 ; WX 435 ; N uni14A1 ; G 1874 +U 5282 ; WX 435 ; N uni14A2 ; G 1875 +U 5283 ; WX 610 ; N uni14A3 ; G 1876 +U 5284 ; WX 557 ; N uni14A4 ; G 1877 +U 5285 ; WX 557 ; N uni14A5 ; G 1878 +U 5286 ; WX 557 ; N uni14A6 ; G 1879 +U 5287 ; WX 610 ; N uni14A7 ; G 1880 +U 5288 ; WX 610 ; N uni14A8 ; G 1881 +U 5289 ; WX 610 ; N uni14A9 ; G 1882 +U 5290 ; WX 557 ; N uni14AA ; G 1883 +U 5291 ; WX 557 ; N uni14AB ; G 1884 +U 5292 ; WX 749 ; N uni14AC ; G 1885 +U 5293 ; WX 769 ; N uni14AD ; G 1886 +U 5294 ; WX 746 ; N uni14AE ; G 1887 +U 5295 ; WX 764 ; N uni14AF ; G 1888 +U 5296 ; WX 746 ; N uni14B0 ; G 1889 +U 5297 ; WX 764 ; N uni14B1 ; G 1890 +U 5298 ; WX 749 ; N uni14B2 ; G 1891 +U 5299 ; WX 769 ; N uni14B3 ; G 1892 +U 5300 ; WX 749 ; N uni14B4 ; G 1893 +U 5301 ; WX 769 ; N uni14B5 ; G 1894 +U 5302 ; WX 746 ; N uni14B6 ; G 1895 +U 5303 ; WX 764 ; N uni14B7 ; G 1896 +U 5304 ; WX 746 ; N uni14B8 ; G 1897 +U 5305 ; WX 764 ; N uni14B9 ; G 1898 +U 5306 ; WX 746 ; N uni14BA ; G 1899 +U 5307 ; WX 386 ; N uni14BB ; G 1900 +U 5308 ; WX 508 ; N uni14BC ; G 1901 +U 5309 ; WX 386 ; N uni14BD ; G 1902 +U 5312 ; WX 852 ; N uni14C0 ; G 1903 +U 5313 ; WX 852 ; N uni14C1 ; G 1904 +U 5314 ; WX 852 ; N uni14C2 ; G 1905 +U 5315 ; WX 852 ; N uni14C3 ; G 1906 +U 5316 ; WX 852 ; N uni14C4 ; G 1907 +U 5317 ; WX 852 ; N uni14C5 ; G 1908 +U 5318 ; WX 852 ; N uni14C6 ; G 1909 +U 5319 ; WX 852 ; N uni14C7 ; G 1910 +U 5320 ; WX 852 ; N uni14C8 ; G 1911 +U 5321 ; WX 1069 ; N uni14C9 ; G 1912 +U 5322 ; WX 1035 ; N uni14CA ; G 1913 +U 5323 ; WX 1059 ; N uni14CB ; G 1914 +U 5324 ; WX 852 ; N uni14CC ; G 1915 +U 5325 ; WX 1059 ; N uni14CD ; G 1916 +U 5326 ; WX 852 ; N uni14CE ; G 1917 +U 5327 ; WX 852 ; N uni14CF ; G 1918 +U 5328 ; WX 600 ; N uni14D0 ; G 1919 +U 5329 ; WX 453 ; N uni14D1 ; G 1920 +U 5330 ; WX 600 ; N uni14D2 ; G 1921 +U 5331 ; WX 852 ; N uni14D3 ; G 1922 +U 5332 ; WX 852 ; N uni14D4 ; G 1923 +U 5333 ; WX 852 ; N uni14D5 ; G 1924 +U 5334 ; WX 852 ; N uni14D6 ; G 1925 +U 5335 ; WX 852 ; N uni14D7 ; G 1926 +U 5336 ; WX 852 ; N uni14D8 ; G 1927 +U 5337 ; WX 852 ; N uni14D9 ; G 1928 +U 5338 ; WX 852 ; N uni14DA ; G 1929 +U 5339 ; WX 852 ; N uni14DB ; G 1930 +U 5340 ; WX 1069 ; N uni14DC ; G 1931 +U 5341 ; WX 1035 ; N uni14DD ; G 1932 +U 5342 ; WX 1059 ; N uni14DE ; G 1933 +U 5343 ; WX 1030 ; N uni14DF ; G 1934 +U 5344 ; WX 1059 ; N uni14E0 ; G 1935 +U 5345 ; WX 1030 ; N uni14E1 ; G 1936 +U 5346 ; WX 1069 ; N uni14E2 ; G 1937 +U 5347 ; WX 1035 ; N uni14E3 ; G 1938 +U 5348 ; WX 1069 ; N uni14E4 ; G 1939 +U 5349 ; WX 1035 ; N uni14E5 ; G 1940 +U 5350 ; WX 1083 ; N uni14E6 ; G 1941 +U 5351 ; WX 1030 ; N uni14E7 ; G 1942 +U 5352 ; WX 1083 ; N uni14E8 ; G 1943 +U 5353 ; WX 1030 ; N uni14E9 ; G 1944 +U 5354 ; WX 600 ; N uni14EA ; G 1945 +U 5356 ; WX 729 ; N uni14EC ; G 1946 +U 5357 ; WX 603 ; N uni14ED ; G 1947 +U 5358 ; WX 603 ; N uni14EE ; G 1948 +U 5359 ; WX 603 ; N uni14EF ; G 1949 +U 5360 ; WX 603 ; N uni14F0 ; G 1950 +U 5361 ; WX 603 ; N uni14F1 ; G 1951 +U 5362 ; WX 603 ; N uni14F2 ; G 1952 +U 5363 ; WX 603 ; N uni14F3 ; G 1953 +U 5364 ; WX 603 ; N uni14F4 ; G 1954 +U 5365 ; WX 603 ; N uni14F5 ; G 1955 +U 5366 ; WX 834 ; N uni14F6 ; G 1956 +U 5367 ; WX 754 ; N uni14F7 ; G 1957 +U 5368 ; WX 792 ; N uni14F8 ; G 1958 +U 5369 ; WX 771 ; N uni14F9 ; G 1959 +U 5370 ; WX 792 ; N uni14FA ; G 1960 +U 5371 ; WX 771 ; N uni14FB ; G 1961 +U 5372 ; WX 834 ; N uni14FC ; G 1962 +U 5373 ; WX 754 ; N uni14FD ; G 1963 +U 5374 ; WX 834 ; N uni14FE ; G 1964 +U 5375 ; WX 754 ; N uni14FF ; G 1965 +U 5376 ; WX 792 ; N uni1500 ; G 1966 +U 5377 ; WX 771 ; N uni1501 ; G 1967 +U 5378 ; WX 792 ; N uni1502 ; G 1968 +U 5379 ; WX 771 ; N uni1503 ; G 1969 +U 5380 ; WX 792 ; N uni1504 ; G 1970 +U 5381 ; WX 418 ; N uni1505 ; G 1971 +U 5382 ; WX 420 ; N uni1506 ; G 1972 +U 5383 ; WX 418 ; N uni1507 ; G 1973 +U 5392 ; WX 712 ; N uni1510 ; G 1974 +U 5393 ; WX 712 ; N uni1511 ; G 1975 +U 5394 ; WX 712 ; N uni1512 ; G 1976 +U 5395 ; WX 892 ; N uni1513 ; G 1977 +U 5396 ; WX 892 ; N uni1514 ; G 1978 +U 5397 ; WX 892 ; N uni1515 ; G 1979 +U 5398 ; WX 892 ; N uni1516 ; G 1980 +U 5399 ; WX 910 ; N uni1517 ; G 1981 +U 5400 ; WX 872 ; N uni1518 ; G 1982 +U 5401 ; WX 910 ; N uni1519 ; G 1983 +U 5402 ; WX 872 ; N uni151A ; G 1984 +U 5403 ; WX 910 ; N uni151B ; G 1985 +U 5404 ; WX 872 ; N uni151C ; G 1986 +U 5405 ; WX 1140 ; N uni151D ; G 1987 +U 5406 ; WX 1100 ; N uni151E ; G 1988 +U 5407 ; WX 1140 ; N uni151F ; G 1989 +U 5408 ; WX 1100 ; N uni1520 ; G 1990 +U 5409 ; WX 1140 ; N uni1521 ; G 1991 +U 5410 ; WX 1100 ; N uni1522 ; G 1992 +U 5411 ; WX 1140 ; N uni1523 ; G 1993 +U 5412 ; WX 1100 ; N uni1524 ; G 1994 +U 5413 ; WX 641 ; N uni1525 ; G 1995 +U 5414 ; WX 627 ; N uni1526 ; G 1996 +U 5415 ; WX 627 ; N uni1527 ; G 1997 +U 5416 ; WX 627 ; N uni1528 ; G 1998 +U 5417 ; WX 627 ; N uni1529 ; G 1999 +U 5418 ; WX 627 ; N uni152A ; G 2000 +U 5419 ; WX 627 ; N uni152B ; G 2001 +U 5420 ; WX 627 ; N uni152C ; G 2002 +U 5421 ; WX 627 ; N uni152D ; G 2003 +U 5422 ; WX 627 ; N uni152E ; G 2004 +U 5423 ; WX 844 ; N uni152F ; G 2005 +U 5424 ; WX 781 ; N uni1530 ; G 2006 +U 5425 ; WX 816 ; N uni1531 ; G 2007 +U 5426 ; WX 818 ; N uni1532 ; G 2008 +U 5427 ; WX 816 ; N uni1533 ; G 2009 +U 5428 ; WX 818 ; N uni1534 ; G 2010 +U 5429 ; WX 844 ; N uni1535 ; G 2011 +U 5430 ; WX 781 ; N uni1536 ; G 2012 +U 5431 ; WX 844 ; N uni1537 ; G 2013 +U 5432 ; WX 781 ; N uni1538 ; G 2014 +U 5433 ; WX 816 ; N uni1539 ; G 2015 +U 5434 ; WX 818 ; N uni153A ; G 2016 +U 5435 ; WX 816 ; N uni153B ; G 2017 +U 5436 ; WX 818 ; N uni153C ; G 2018 +U 5437 ; WX 816 ; N uni153D ; G 2019 +U 5438 ; WX 418 ; N uni153E ; G 2020 +U 5440 ; WX 389 ; N uni1540 ; G 2021 +U 5441 ; WX 484 ; N uni1541 ; G 2022 +U 5442 ; WX 916 ; N uni1542 ; G 2023 +U 5443 ; WX 916 ; N uni1543 ; G 2024 +U 5444 ; WX 916 ; N uni1544 ; G 2025 +U 5445 ; WX 916 ; N uni1545 ; G 2026 +U 5446 ; WX 916 ; N uni1546 ; G 2027 +U 5447 ; WX 916 ; N uni1547 ; G 2028 +U 5448 ; WX 603 ; N uni1548 ; G 2029 +U 5449 ; WX 603 ; N uni1549 ; G 2030 +U 5450 ; WX 603 ; N uni154A ; G 2031 +U 5451 ; WX 603 ; N uni154B ; G 2032 +U 5452 ; WX 603 ; N uni154C ; G 2033 +U 5453 ; WX 603 ; N uni154D ; G 2034 +U 5454 ; WX 834 ; N uni154E ; G 2035 +U 5455 ; WX 754 ; N uni154F ; G 2036 +U 5456 ; WX 418 ; N uni1550 ; G 2037 +U 5458 ; WX 729 ; N uni1552 ; G 2038 +U 5459 ; WX 684 ; N uni1553 ; G 2039 +U 5460 ; WX 684 ; N uni1554 ; G 2040 +U 5461 ; WX 684 ; N uni1555 ; G 2041 +U 5462 ; WX 684 ; N uni1556 ; G 2042 +U 5463 ; WX 726 ; N uni1557 ; G 2043 +U 5464 ; WX 726 ; N uni1558 ; G 2044 +U 5465 ; WX 726 ; N uni1559 ; G 2045 +U 5466 ; WX 726 ; N uni155A ; G 2046 +U 5467 ; WX 924 ; N uni155B ; G 2047 +U 5468 ; WX 1007 ; N uni155C ; G 2048 +U 5469 ; WX 508 ; N uni155D ; G 2049 +U 5470 ; WX 732 ; N uni155E ; G 2050 +U 5471 ; WX 732 ; N uni155F ; G 2051 +U 5472 ; WX 732 ; N uni1560 ; G 2052 +U 5473 ; WX 732 ; N uni1561 ; G 2053 +U 5474 ; WX 732 ; N uni1562 ; G 2054 +U 5475 ; WX 732 ; N uni1563 ; G 2055 +U 5476 ; WX 730 ; N uni1564 ; G 2056 +U 5477 ; WX 730 ; N uni1565 ; G 2057 +U 5478 ; WX 730 ; N uni1566 ; G 2058 +U 5479 ; WX 730 ; N uni1567 ; G 2059 +U 5480 ; WX 947 ; N uni1568 ; G 2060 +U 5481 ; WX 900 ; N uni1569 ; G 2061 +U 5482 ; WX 508 ; N uni156A ; G 2062 +U 5492 ; WX 831 ; N uni1574 ; G 2063 +U 5493 ; WX 831 ; N uni1575 ; G 2064 +U 5494 ; WX 831 ; N uni1576 ; G 2065 +U 5495 ; WX 831 ; N uni1577 ; G 2066 +U 5496 ; WX 831 ; N uni1578 ; G 2067 +U 5497 ; WX 831 ; N uni1579 ; G 2068 +U 5498 ; WX 831 ; N uni157A ; G 2069 +U 5499 ; WX 563 ; N uni157B ; G 2070 +U 5500 ; WX 752 ; N uni157C ; G 2071 +U 5501 ; WX 484 ; N uni157D ; G 2072 +U 5502 ; WX 1047 ; N uni157E ; G 2073 +U 5503 ; WX 1047 ; N uni157F ; G 2074 +U 5504 ; WX 1047 ; N uni1580 ; G 2075 +U 5505 ; WX 1047 ; N uni1581 ; G 2076 +U 5506 ; WX 1047 ; N uni1582 ; G 2077 +U 5507 ; WX 1047 ; N uni1583 ; G 2078 +U 5508 ; WX 1047 ; N uni1584 ; G 2079 +U 5509 ; WX 825 ; N uni1585 ; G 2080 +U 5514 ; WX 831 ; N uni158A ; G 2081 +U 5515 ; WX 831 ; N uni158B ; G 2082 +U 5516 ; WX 831 ; N uni158C ; G 2083 +U 5517 ; WX 831 ; N uni158D ; G 2084 +U 5518 ; WX 1259 ; N uni158E ; G 2085 +U 5519 ; WX 1259 ; N uni158F ; G 2086 +U 5520 ; WX 1259 ; N uni1590 ; G 2087 +U 5521 ; WX 1002 ; N uni1591 ; G 2088 +U 5522 ; WX 1002 ; N uni1592 ; G 2089 +U 5523 ; WX 1259 ; N uni1593 ; G 2090 +U 5524 ; WX 1259 ; N uni1594 ; G 2091 +U 5525 ; WX 700 ; N uni1595 ; G 2092 +U 5526 ; WX 1073 ; N uni1596 ; G 2093 +U 5536 ; WX 852 ; N uni15A0 ; G 2094 +U 5537 ; WX 852 ; N uni15A1 ; G 2095 +U 5538 ; WX 852 ; N uni15A2 ; G 2096 +U 5539 ; WX 852 ; N uni15A3 ; G 2097 +U 5540 ; WX 852 ; N uni15A4 ; G 2098 +U 5541 ; WX 852 ; N uni15A5 ; G 2099 +U 5542 ; WX 600 ; N uni15A6 ; G 2100 +U 5543 ; WX 643 ; N uni15A7 ; G 2101 +U 5544 ; WX 643 ; N uni15A8 ; G 2102 +U 5545 ; WX 643 ; N uni15A9 ; G 2103 +U 5546 ; WX 643 ; N uni15AA ; G 2104 +U 5547 ; WX 643 ; N uni15AB ; G 2105 +U 5548 ; WX 643 ; N uni15AC ; G 2106 +U 5549 ; WX 643 ; N uni15AD ; G 2107 +U 5550 ; WX 418 ; N uni15AE ; G 2108 +U 5551 ; WX 628 ; N uni15AF ; G 2109 +U 5598 ; WX 770 ; N uni15DE ; G 2110 +U 5601 ; WX 767 ; N uni15E1 ; G 2111 +U 5702 ; WX 468 ; N uni1646 ; G 2112 +U 5703 ; WX 468 ; N uni1647 ; G 2113 +U 5742 ; WX 444 ; N uni166E ; G 2114 +U 5743 ; WX 1047 ; N uni166F ; G 2115 +U 5744 ; WX 1310 ; N uni1670 ; G 2116 +U 5745 ; WX 1632 ; N uni1671 ; G 2117 +U 5746 ; WX 1632 ; N uni1672 ; G 2118 +U 5747 ; WX 1375 ; N uni1673 ; G 2119 +U 5748 ; WX 1375 ; N uni1674 ; G 2120 +U 5749 ; WX 1632 ; N uni1675 ; G 2121 +U 5750 ; WX 1632 ; N uni1676 ; G 2122 +U 5760 ; WX 477 ; N uni1680 ; G 2123 +U 5761 ; WX 493 ; N uni1681 ; G 2124 +U 5762 ; WX 712 ; N uni1682 ; G 2125 +U 5763 ; WX 931 ; N uni1683 ; G 2126 +U 5764 ; WX 1150 ; N uni1684 ; G 2127 +U 5765 ; WX 1370 ; N uni1685 ; G 2128 +U 5766 ; WX 493 ; N uni1686 ; G 2129 +U 5767 ; WX 712 ; N uni1687 ; G 2130 +U 5768 ; WX 931 ; N uni1688 ; G 2131 +U 5769 ; WX 1150 ; N uni1689 ; G 2132 +U 5770 ; WX 1370 ; N uni168A ; G 2133 +U 5771 ; WX 498 ; N uni168B ; G 2134 +U 5772 ; WX 718 ; N uni168C ; G 2135 +U 5773 ; WX 938 ; N uni168D ; G 2136 +U 5774 ; WX 1159 ; N uni168E ; G 2137 +U 5775 ; WX 1379 ; N uni168F ; G 2138 +U 5776 ; WX 493 ; N uni1690 ; G 2139 +U 5777 ; WX 712 ; N uni1691 ; G 2140 +U 5778 ; WX 930 ; N uni1692 ; G 2141 +U 5779 ; WX 1149 ; N uni1693 ; G 2142 +U 5780 ; WX 1370 ; N uni1694 ; G 2143 +U 5781 ; WX 498 ; N uni1695 ; G 2144 +U 5782 ; WX 752 ; N uni1696 ; G 2145 +U 5783 ; WX 789 ; N uni1697 ; G 2146 +U 5784 ; WX 1205 ; N uni1698 ; G 2147 +U 5785 ; WX 1150 ; N uni1699 ; G 2148 +U 5786 ; WX 683 ; N uni169A ; G 2149 +U 5787 ; WX 507 ; N uni169B ; G 2150 +U 5788 ; WX 507 ; N uni169C ; G 2151 +U 7424 ; WX 592 ; N uni1D00 ; G 2152 +U 7425 ; WX 717 ; N uni1D01 ; G 2153 +U 7426 ; WX 982 ; N uni1D02 ; G 2154 +U 7427 ; WX 586 ; N uni1D03 ; G 2155 +U 7428 ; WX 550 ; N uni1D04 ; G 2156 +U 7429 ; WX 605 ; N uni1D05 ; G 2157 +U 7430 ; WX 605 ; N uni1D06 ; G 2158 +U 7431 ; WX 491 ; N uni1D07 ; G 2159 +U 7432 ; WX 541 ; N uni1D08 ; G 2160 +U 7433 ; WX 278 ; N uni1D09 ; G 2161 +U 7434 ; WX 395 ; N uni1D0A ; G 2162 +U 7435 ; WX 579 ; N uni1D0B ; G 2163 +U 7436 ; WX 583 ; N uni1D0C ; G 2164 +U 7437 ; WX 754 ; N uni1D0D ; G 2165 +U 7438 ; WX 650 ; N uni1D0E ; G 2166 +U 7439 ; WX 612 ; N uni1D0F ; G 2167 +U 7440 ; WX 550 ; N uni1D10 ; G 2168 +U 7441 ; WX 684 ; N uni1D11 ; G 2169 +U 7442 ; WX 684 ; N uni1D12 ; G 2170 +U 7443 ; WX 684 ; N uni1D13 ; G 2171 +U 7444 ; WX 1023 ; N uni1D14 ; G 2172 +U 7446 ; WX 612 ; N uni1D16 ; G 2173 +U 7447 ; WX 612 ; N uni1D17 ; G 2174 +U 7448 ; WX 524 ; N uni1D18 ; G 2175 +U 7449 ; WX 602 ; N uni1D19 ; G 2176 +U 7450 ; WX 602 ; N uni1D1A ; G 2177 +U 7451 ; WX 583 ; N uni1D1B ; G 2178 +U 7452 ; WX 574 ; N uni1D1C ; G 2179 +U 7453 ; WX 737 ; N uni1D1D ; G 2180 +U 7454 ; WX 948 ; N uni1D1E ; G 2181 +U 7455 ; WX 638 ; N uni1D1F ; G 2182 +U 7456 ; WX 592 ; N uni1D20 ; G 2183 +U 7457 ; WX 818 ; N uni1D21 ; G 2184 +U 7458 ; WX 525 ; N uni1D22 ; G 2185 +U 7459 ; WX 526 ; N uni1D23 ; G 2186 +U 7462 ; WX 583 ; N uni1D26 ; G 2187 +U 7463 ; WX 592 ; N uni1D27 ; G 2188 +U 7464 ; WX 564 ; N uni1D28 ; G 2189 +U 7465 ; WX 524 ; N uni1D29 ; G 2190 +U 7466 ; WX 590 ; N uni1D2A ; G 2191 +U 7467 ; WX 639 ; N uni1D2B ; G 2192 +U 7468 ; WX 431 ; N uni1D2C ; G 2193 +U 7469 ; WX 613 ; N uni1D2D ; G 2194 +U 7470 ; WX 432 ; N uni1D2E ; G 2195 +U 7472 ; WX 485 ; N uni1D30 ; G 2196 +U 7473 ; WX 398 ; N uni1D31 ; G 2197 +U 7474 ; WX 398 ; N uni1D32 ; G 2198 +U 7475 ; WX 488 ; N uni1D33 ; G 2199 +U 7476 ; WX 474 ; N uni1D34 ; G 2200 +U 7477 ; WX 186 ; N uni1D35 ; G 2201 +U 7478 ; WX 186 ; N uni1D36 ; G 2202 +U 7479 ; WX 413 ; N uni1D37 ; G 2203 +U 7480 ; WX 351 ; N uni1D38 ; G 2204 +U 7481 ; WX 543 ; N uni1D39 ; G 2205 +U 7482 ; WX 471 ; N uni1D3A ; G 2206 +U 7483 ; WX 471 ; N uni1D3B ; G 2207 +U 7484 ; WX 496 ; N uni1D3C ; G 2208 +U 7485 ; WX 439 ; N uni1D3D ; G 2209 +U 7486 ; WX 380 ; N uni1D3E ; G 2210 +U 7487 ; WX 438 ; N uni1D3F ; G 2211 +U 7488 ; WX 385 ; N uni1D40 ; G 2212 +U 7489 ; WX 461 ; N uni1D41 ; G 2213 +U 7490 ; WX 623 ; N uni1D42 ; G 2214 +U 7491 ; WX 392 ; N uni1D43 ; G 2215 +U 7492 ; WX 392 ; N uni1D44 ; G 2216 +U 7493 ; WX 405 ; N uni1D45 ; G 2217 +U 7494 ; WX 648 ; N uni1D46 ; G 2218 +U 7495 ; WX 428 ; N uni1D47 ; G 2219 +U 7496 ; WX 405 ; N uni1D48 ; G 2220 +U 7497 ; WX 417 ; N uni1D49 ; G 2221 +U 7498 ; WX 417 ; N uni1D4A ; G 2222 +U 7499 ; WX 360 ; N uni1D4B ; G 2223 +U 7500 ; WX 359 ; N uni1D4C ; G 2224 +U 7501 ; WX 405 ; N uni1D4D ; G 2225 +U 7502 ; WX 179 ; N uni1D4E ; G 2226 +U 7503 ; WX 426 ; N uni1D4F ; G 2227 +U 7504 ; WX 623 ; N uni1D50 ; G 2228 +U 7505 ; WX 409 ; N uni1D51 ; G 2229 +U 7506 ; WX 414 ; N uni1D52 ; G 2230 +U 7507 ; WX 370 ; N uni1D53 ; G 2231 +U 7508 ; WX 414 ; N uni1D54 ; G 2232 +U 7509 ; WX 414 ; N uni1D55 ; G 2233 +U 7510 ; WX 428 ; N uni1D56 ; G 2234 +U 7511 ; WX 295 ; N uni1D57 ; G 2235 +U 7512 ; WX 405 ; N uni1D58 ; G 2236 +U 7513 ; WX 470 ; N uni1D59 ; G 2237 +U 7514 ; WX 623 ; N uni1D5A ; G 2238 +U 7515 ; WX 417 ; N uni1D5B ; G 2239 +U 7517 ; WX 402 ; N uni1D5D ; G 2240 +U 7518 ; WX 373 ; N uni1D5E ; G 2241 +U 7519 ; WX 385 ; N uni1D5F ; G 2242 +U 7520 ; WX 416 ; N uni1D60 ; G 2243 +U 7521 ; WX 364 ; N uni1D61 ; G 2244 +U 7522 ; WX 179 ; N uni1D62 ; G 2245 +U 7523 ; WX 259 ; N uni1D63 ; G 2246 +U 7524 ; WX 405 ; N uni1D64 ; G 2247 +U 7525 ; WX 417 ; N uni1D65 ; G 2248 +U 7526 ; WX 402 ; N uni1D66 ; G 2249 +U 7527 ; WX 373 ; N uni1D67 ; G 2250 +U 7528 ; WX 412 ; N uni1D68 ; G 2251 +U 7529 ; WX 416 ; N uni1D69 ; G 2252 +U 7530 ; WX 364 ; N uni1D6A ; G 2253 +U 7543 ; WX 635 ; N uni1D77 ; G 2254 +U 7544 ; WX 474 ; N uni1D78 ; G 2255 +U 7547 ; WX 372 ; N uni1D7B ; G 2256 +U 7549 ; WX 667 ; N uni1D7D ; G 2257 +U 7557 ; WX 278 ; N uni1D85 ; G 2258 +U 7579 ; WX 405 ; N uni1D9B ; G 2259 +U 7580 ; WX 370 ; N uni1D9C ; G 2260 +U 7581 ; WX 370 ; N uni1D9D ; G 2261 +U 7582 ; WX 414 ; N uni1D9E ; G 2262 +U 7583 ; WX 360 ; N uni1D9F ; G 2263 +U 7584 ; WX 296 ; N uni1DA0 ; G 2264 +U 7585 ; WX 233 ; N uni1DA1 ; G 2265 +U 7586 ; WX 405 ; N uni1DA2 ; G 2266 +U 7587 ; WX 405 ; N uni1DA3 ; G 2267 +U 7588 ; WX 261 ; N uni1DA4 ; G 2268 +U 7589 ; WX 250 ; N uni1DA5 ; G 2269 +U 7590 ; WX 261 ; N uni1DA6 ; G 2270 +U 7591 ; WX 261 ; N uni1DA7 ; G 2271 +U 7592 ; WX 234 ; N uni1DA8 ; G 2272 +U 7593 ; WX 250 ; N uni1DA9 ; G 2273 +U 7594 ; WX 235 ; N uni1DAA ; G 2274 +U 7595 ; WX 376 ; N uni1DAB ; G 2275 +U 7596 ; WX 623 ; N uni1DAC ; G 2276 +U 7597 ; WX 623 ; N uni1DAD ; G 2277 +U 7598 ; WX 411 ; N uni1DAE ; G 2278 +U 7599 ; WX 479 ; N uni1DAF ; G 2279 +U 7600 ; WX 409 ; N uni1DB0 ; G 2280 +U 7601 ; WX 414 ; N uni1DB1 ; G 2281 +U 7602 ; WX 414 ; N uni1DB2 ; G 2282 +U 7603 ; WX 360 ; N uni1DB3 ; G 2283 +U 7604 ; WX 287 ; N uni1DB4 ; G 2284 +U 7605 ; WX 295 ; N uni1DB5 ; G 2285 +U 7606 ; WX 508 ; N uni1DB6 ; G 2286 +U 7607 ; WX 418 ; N uni1DB7 ; G 2287 +U 7608 ; WX 361 ; N uni1DB8 ; G 2288 +U 7609 ; WX 406 ; N uni1DB9 ; G 2289 +U 7610 ; WX 417 ; N uni1DBA ; G 2290 +U 7611 ; WX 366 ; N uni1DBB ; G 2291 +U 7612 ; WX 437 ; N uni1DBC ; G 2292 +U 7613 ; WX 366 ; N uni1DBD ; G 2293 +U 7614 ; WX 392 ; N uni1DBE ; G 2294 +U 7615 ; WX 414 ; N uni1DBF ; G 2295 +U 7620 ; WX 0 ; N uni1DC4 ; G 2296 +U 7621 ; WX 0 ; N uni1DC5 ; G 2297 +U 7622 ; WX 0 ; N uni1DC6 ; G 2298 +U 7623 ; WX 0 ; N uni1DC7 ; G 2299 +U 7624 ; WX 0 ; N uni1DC8 ; G 2300 +U 7625 ; WX 0 ; N uni1DC9 ; G 2301 +U 7680 ; WX 684 ; N uni1E00 ; G 2302 +U 7681 ; WX 613 ; N uni1E01 ; G 2303 +U 7682 ; WX 686 ; N uni1E02 ; G 2304 +U 7683 ; WX 635 ; N uni1E03 ; G 2305 +U 7684 ; WX 686 ; N uni1E04 ; G 2306 +U 7685 ; WX 635 ; N uni1E05 ; G 2307 +U 7686 ; WX 686 ; N uni1E06 ; G 2308 +U 7687 ; WX 635 ; N uni1E07 ; G 2309 +U 7688 ; WX 698 ; N uni1E08 ; G 2310 +U 7689 ; WX 550 ; N uni1E09 ; G 2311 +U 7690 ; WX 770 ; N uni1E0A ; G 2312 +U 7691 ; WX 635 ; N uni1E0B ; G 2313 +U 7692 ; WX 770 ; N uni1E0C ; G 2314 +U 7693 ; WX 635 ; N uni1E0D ; G 2315 +U 7694 ; WX 770 ; N uni1E0E ; G 2316 +U 7695 ; WX 635 ; N uni1E0F ; G 2317 +U 7696 ; WX 770 ; N uni1E10 ; G 2318 +U 7697 ; WX 635 ; N uni1E11 ; G 2319 +U 7698 ; WX 770 ; N uni1E12 ; G 2320 +U 7699 ; WX 635 ; N uni1E13 ; G 2321 +U 7700 ; WX 632 ; N uni1E14 ; G 2322 +U 7701 ; WX 615 ; N uni1E15 ; G 2323 +U 7702 ; WX 632 ; N uni1E16 ; G 2324 +U 7703 ; WX 615 ; N uni1E17 ; G 2325 +U 7704 ; WX 632 ; N uni1E18 ; G 2326 +U 7705 ; WX 615 ; N uni1E19 ; G 2327 +U 7706 ; WX 632 ; N uni1E1A ; G 2328 +U 7707 ; WX 615 ; N uni1E1B ; G 2329 +U 7708 ; WX 632 ; N uni1E1C ; G 2330 +U 7709 ; WX 615 ; N uni1E1D ; G 2331 +U 7710 ; WX 575 ; N uni1E1E ; G 2332 +U 7711 ; WX 352 ; N uni1E1F ; G 2333 +U 7712 ; WX 775 ; N uni1E20 ; G 2334 +U 7713 ; WX 635 ; N uni1E21 ; G 2335 +U 7714 ; WX 752 ; N uni1E22 ; G 2336 +U 7715 ; WX 634 ; N uni1E23 ; G 2337 +U 7716 ; WX 752 ; N uni1E24 ; G 2338 +U 7717 ; WX 634 ; N uni1E25 ; G 2339 +U 7718 ; WX 752 ; N uni1E26 ; G 2340 +U 7719 ; WX 634 ; N uni1E27 ; G 2341 +U 7720 ; WX 752 ; N uni1E28 ; G 2342 +U 7721 ; WX 634 ; N uni1E29 ; G 2343 +U 7722 ; WX 752 ; N uni1E2A ; G 2344 +U 7723 ; WX 634 ; N uni1E2B ; G 2345 +U 7724 ; WX 295 ; N uni1E2C ; G 2346 +U 7725 ; WX 278 ; N uni1E2D ; G 2347 +U 7726 ; WX 295 ; N uni1E2E ; G 2348 +U 7727 ; WX 278 ; N uni1E2F ; G 2349 +U 7728 ; WX 656 ; N uni1E30 ; G 2350 +U 7729 ; WX 579 ; N uni1E31 ; G 2351 +U 7730 ; WX 656 ; N uni1E32 ; G 2352 +U 7731 ; WX 579 ; N uni1E33 ; G 2353 +U 7732 ; WX 656 ; N uni1E34 ; G 2354 +U 7733 ; WX 579 ; N uni1E35 ; G 2355 +U 7734 ; WX 557 ; N uni1E36 ; G 2356 +U 7735 ; WX 288 ; N uni1E37 ; G 2357 +U 7736 ; WX 557 ; N uni1E38 ; G 2358 +U 7737 ; WX 288 ; N uni1E39 ; G 2359 +U 7738 ; WX 557 ; N uni1E3A ; G 2360 +U 7739 ; WX 278 ; N uni1E3B ; G 2361 +U 7740 ; WX 557 ; N uni1E3C ; G 2362 +U 7741 ; WX 278 ; N uni1E3D ; G 2363 +U 7742 ; WX 863 ; N uni1E3E ; G 2364 +U 7743 ; WX 974 ; N uni1E3F ; G 2365 +U 7744 ; WX 863 ; N uni1E40 ; G 2366 +U 7745 ; WX 974 ; N uni1E41 ; G 2367 +U 7746 ; WX 863 ; N uni1E42 ; G 2368 +U 7747 ; WX 974 ; N uni1E43 ; G 2369 +U 7748 ; WX 748 ; N uni1E44 ; G 2370 +U 7749 ; WX 634 ; N uni1E45 ; G 2371 +U 7750 ; WX 748 ; N uni1E46 ; G 2372 +U 7751 ; WX 634 ; N uni1E47 ; G 2373 +U 7752 ; WX 748 ; N uni1E48 ; G 2374 +U 7753 ; WX 634 ; N uni1E49 ; G 2375 +U 7754 ; WX 748 ; N uni1E4A ; G 2376 +U 7755 ; WX 634 ; N uni1E4B ; G 2377 +U 7756 ; WX 787 ; N uni1E4C ; G 2378 +U 7757 ; WX 612 ; N uni1E4D ; G 2379 +U 7758 ; WX 787 ; N uni1E4E ; G 2380 +U 7759 ; WX 612 ; N uni1E4F ; G 2381 +U 7760 ; WX 787 ; N uni1E50 ; G 2382 +U 7761 ; WX 612 ; N uni1E51 ; G 2383 +U 7762 ; WX 787 ; N uni1E52 ; G 2384 +U 7763 ; WX 612 ; N uni1E53 ; G 2385 +U 7764 ; WX 603 ; N uni1E54 ; G 2386 +U 7765 ; WX 635 ; N uni1E55 ; G 2387 +U 7766 ; WX 603 ; N uni1E56 ; G 2388 +U 7767 ; WX 635 ; N uni1E57 ; G 2389 +U 7768 ; WX 695 ; N uni1E58 ; G 2390 +U 7769 ; WX 411 ; N uni1E59 ; G 2391 +U 7770 ; WX 695 ; N uni1E5A ; G 2392 +U 7771 ; WX 411 ; N uni1E5B ; G 2393 +U 7772 ; WX 695 ; N uni1E5C ; G 2394 +U 7773 ; WX 411 ; N uni1E5D ; G 2395 +U 7774 ; WX 695 ; N uni1E5E ; G 2396 +U 7775 ; WX 411 ; N uni1E5F ; G 2397 +U 7776 ; WX 635 ; N uni1E60 ; G 2398 +U 7777 ; WX 521 ; N uni1E61 ; G 2399 +U 7778 ; WX 635 ; N uni1E62 ; G 2400 +U 7779 ; WX 521 ; N uni1E63 ; G 2401 +U 7780 ; WX 635 ; N uni1E64 ; G 2402 +U 7781 ; WX 521 ; N uni1E65 ; G 2403 +U 7782 ; WX 635 ; N uni1E66 ; G 2404 +U 7783 ; WX 521 ; N uni1E67 ; G 2405 +U 7784 ; WX 635 ; N uni1E68 ; G 2406 +U 7785 ; WX 521 ; N uni1E69 ; G 2407 +U 7786 ; WX 611 ; N uni1E6A ; G 2408 +U 7787 ; WX 392 ; N uni1E6B ; G 2409 +U 7788 ; WX 611 ; N uni1E6C ; G 2410 +U 7789 ; WX 392 ; N uni1E6D ; G 2411 +U 7790 ; WX 611 ; N uni1E6E ; G 2412 +U 7791 ; WX 392 ; N uni1E6F ; G 2413 +U 7792 ; WX 611 ; N uni1E70 ; G 2414 +U 7793 ; WX 392 ; N uni1E71 ; G 2415 +U 7794 ; WX 732 ; N uni1E72 ; G 2416 +U 7795 ; WX 634 ; N uni1E73 ; G 2417 +U 7796 ; WX 732 ; N uni1E74 ; G 2418 +U 7797 ; WX 634 ; N uni1E75 ; G 2419 +U 7798 ; WX 732 ; N uni1E76 ; G 2420 +U 7799 ; WX 634 ; N uni1E77 ; G 2421 +U 7800 ; WX 732 ; N uni1E78 ; G 2422 +U 7801 ; WX 634 ; N uni1E79 ; G 2423 +U 7802 ; WX 732 ; N uni1E7A ; G 2424 +U 7803 ; WX 634 ; N uni1E7B ; G 2425 +U 7804 ; WX 684 ; N uni1E7C ; G 2426 +U 7805 ; WX 592 ; N uni1E7D ; G 2427 +U 7806 ; WX 684 ; N uni1E7E ; G 2428 +U 7807 ; WX 592 ; N uni1E7F ; G 2429 +U 7808 ; WX 989 ; N Wgrave ; G 2430 +U 7809 ; WX 818 ; N wgrave ; G 2431 +U 7810 ; WX 989 ; N Wacute ; G 2432 +U 7811 ; WX 818 ; N wacute ; G 2433 +U 7812 ; WX 989 ; N Wdieresis ; G 2434 +U 7813 ; WX 818 ; N wdieresis ; G 2435 +U 7814 ; WX 989 ; N uni1E86 ; G 2436 +U 7815 ; WX 818 ; N uni1E87 ; G 2437 +U 7816 ; WX 989 ; N uni1E88 ; G 2438 +U 7817 ; WX 818 ; N uni1E89 ; G 2439 +U 7818 ; WX 685 ; N uni1E8A ; G 2440 +U 7819 ; WX 592 ; N uni1E8B ; G 2441 +U 7820 ; WX 685 ; N uni1E8C ; G 2442 +U 7821 ; WX 592 ; N uni1E8D ; G 2443 +U 7822 ; WX 611 ; N uni1E8E ; G 2444 +U 7823 ; WX 592 ; N uni1E8F ; G 2445 +U 7824 ; WX 685 ; N uni1E90 ; G 2446 +U 7825 ; WX 525 ; N uni1E91 ; G 2447 +U 7826 ; WX 685 ; N uni1E92 ; G 2448 +U 7827 ; WX 525 ; N uni1E93 ; G 2449 +U 7828 ; WX 685 ; N uni1E94 ; G 2450 +U 7829 ; WX 525 ; N uni1E95 ; G 2451 +U 7830 ; WX 634 ; N uni1E96 ; G 2452 +U 7831 ; WX 392 ; N uni1E97 ; G 2453 +U 7832 ; WX 818 ; N uni1E98 ; G 2454 +U 7833 ; WX 592 ; N uni1E99 ; G 2455 +U 7834 ; WX 613 ; N uni1E9A ; G 2456 +U 7835 ; WX 352 ; N uni1E9B ; G 2457 +U 7836 ; WX 352 ; N uni1E9C ; G 2458 +U 7837 ; WX 352 ; N uni1E9D ; G 2459 +U 7838 ; WX 769 ; N uni1E9E ; G 2460 +U 7839 ; WX 612 ; N uni1E9F ; G 2461 +U 7840 ; WX 684 ; N uni1EA0 ; G 2462 +U 7841 ; WX 613 ; N uni1EA1 ; G 2463 +U 7842 ; WX 684 ; N uni1EA2 ; G 2464 +U 7843 ; WX 613 ; N uni1EA3 ; G 2465 +U 7844 ; WX 684 ; N uni1EA4 ; G 2466 +U 7845 ; WX 613 ; N uni1EA5 ; G 2467 +U 7846 ; WX 684 ; N uni1EA6 ; G 2468 +U 7847 ; WX 613 ; N uni1EA7 ; G 2469 +U 7848 ; WX 684 ; N uni1EA8 ; G 2470 +U 7849 ; WX 613 ; N uni1EA9 ; G 2471 +U 7850 ; WX 684 ; N uni1EAA ; G 2472 +U 7851 ; WX 613 ; N uni1EAB ; G 2473 +U 7852 ; WX 684 ; N uni1EAC ; G 2474 +U 7853 ; WX 613 ; N uni1EAD ; G 2475 +U 7854 ; WX 684 ; N uni1EAE ; G 2476 +U 7855 ; WX 613 ; N uni1EAF ; G 2477 +U 7856 ; WX 684 ; N uni1EB0 ; G 2478 +U 7857 ; WX 613 ; N uni1EB1 ; G 2479 +U 7858 ; WX 684 ; N uni1EB2 ; G 2480 +U 7859 ; WX 613 ; N uni1EB3 ; G 2481 +U 7860 ; WX 684 ; N uni1EB4 ; G 2482 +U 7861 ; WX 613 ; N uni1EB5 ; G 2483 +U 7862 ; WX 684 ; N uni1EB6 ; G 2484 +U 7863 ; WX 613 ; N uni1EB7 ; G 2485 +U 7864 ; WX 632 ; N uni1EB8 ; G 2486 +U 7865 ; WX 615 ; N uni1EB9 ; G 2487 +U 7866 ; WX 632 ; N uni1EBA ; G 2488 +U 7867 ; WX 615 ; N uni1EBB ; G 2489 +U 7868 ; WX 632 ; N uni1EBC ; G 2490 +U 7869 ; WX 615 ; N uni1EBD ; G 2491 +U 7870 ; WX 632 ; N uni1EBE ; G 2492 +U 7871 ; WX 615 ; N uni1EBF ; G 2493 +U 7872 ; WX 632 ; N uni1EC0 ; G 2494 +U 7873 ; WX 615 ; N uni1EC1 ; G 2495 +U 7874 ; WX 632 ; N uni1EC2 ; G 2496 +U 7875 ; WX 615 ; N uni1EC3 ; G 2497 +U 7876 ; WX 632 ; N uni1EC4 ; G 2498 +U 7877 ; WX 615 ; N uni1EC5 ; G 2499 +U 7878 ; WX 632 ; N uni1EC6 ; G 2500 +U 7879 ; WX 615 ; N uni1EC7 ; G 2501 +U 7880 ; WX 295 ; N uni1EC8 ; G 2502 +U 7881 ; WX 278 ; N uni1EC9 ; G 2503 +U 7882 ; WX 295 ; N uni1ECA ; G 2504 +U 7883 ; WX 278 ; N uni1ECB ; G 2505 +U 7884 ; WX 787 ; N uni1ECC ; G 2506 +U 7885 ; WX 612 ; N uni1ECD ; G 2507 +U 7886 ; WX 787 ; N uni1ECE ; G 2508 +U 7887 ; WX 612 ; N uni1ECF ; G 2509 +U 7888 ; WX 787 ; N uni1ED0 ; G 2510 +U 7889 ; WX 612 ; N uni1ED1 ; G 2511 +U 7890 ; WX 787 ; N uni1ED2 ; G 2512 +U 7891 ; WX 612 ; N uni1ED3 ; G 2513 +U 7892 ; WX 787 ; N uni1ED4 ; G 2514 +U 7893 ; WX 612 ; N uni1ED5 ; G 2515 +U 7894 ; WX 787 ; N uni1ED6 ; G 2516 +U 7895 ; WX 612 ; N uni1ED7 ; G 2517 +U 7896 ; WX 787 ; N uni1ED8 ; G 2518 +U 7897 ; WX 612 ; N uni1ED9 ; G 2519 +U 7898 ; WX 913 ; N uni1EDA ; G 2520 +U 7899 ; WX 612 ; N uni1EDB ; G 2521 +U 7900 ; WX 913 ; N uni1EDC ; G 2522 +U 7901 ; WX 612 ; N uni1EDD ; G 2523 +U 7902 ; WX 913 ; N uni1EDE ; G 2524 +U 7903 ; WX 612 ; N uni1EDF ; G 2525 +U 7904 ; WX 913 ; N uni1EE0 ; G 2526 +U 7905 ; WX 612 ; N uni1EE1 ; G 2527 +U 7906 ; WX 913 ; N uni1EE2 ; G 2528 +U 7907 ; WX 612 ; N uni1EE3 ; G 2529 +U 7908 ; WX 732 ; N uni1EE4 ; G 2530 +U 7909 ; WX 634 ; N uni1EE5 ; G 2531 +U 7910 ; WX 732 ; N uni1EE6 ; G 2532 +U 7911 ; WX 634 ; N uni1EE7 ; G 2533 +U 7912 ; WX 858 ; N uni1EE8 ; G 2534 +U 7913 ; WX 634 ; N uni1EE9 ; G 2535 +U 7914 ; WX 858 ; N uni1EEA ; G 2536 +U 7915 ; WX 634 ; N uni1EEB ; G 2537 +U 7916 ; WX 858 ; N uni1EEC ; G 2538 +U 7917 ; WX 634 ; N uni1EED ; G 2539 +U 7918 ; WX 858 ; N uni1EEE ; G 2540 +U 7919 ; WX 634 ; N uni1EEF ; G 2541 +U 7920 ; WX 858 ; N uni1EF0 ; G 2542 +U 7921 ; WX 634 ; N uni1EF1 ; G 2543 +U 7922 ; WX 611 ; N Ygrave ; G 2544 +U 7923 ; WX 592 ; N ygrave ; G 2545 +U 7924 ; WX 611 ; N uni1EF4 ; G 2546 +U 7925 ; WX 592 ; N uni1EF5 ; G 2547 +U 7926 ; WX 611 ; N uni1EF6 ; G 2548 +U 7927 ; WX 592 ; N uni1EF7 ; G 2549 +U 7928 ; WX 611 ; N uni1EF8 ; G 2550 +U 7929 ; WX 592 ; N uni1EF9 ; G 2551 +U 7930 ; WX 769 ; N uni1EFA ; G 2552 +U 7931 ; WX 477 ; N uni1EFB ; G 2553 +U 7936 ; WX 659 ; N uni1F00 ; G 2554 +U 7937 ; WX 659 ; N uni1F01 ; G 2555 +U 7938 ; WX 659 ; N uni1F02 ; G 2556 +U 7939 ; WX 659 ; N uni1F03 ; G 2557 +U 7940 ; WX 659 ; N uni1F04 ; G 2558 +U 7941 ; WX 659 ; N uni1F05 ; G 2559 +U 7942 ; WX 659 ; N uni1F06 ; G 2560 +U 7943 ; WX 659 ; N uni1F07 ; G 2561 +U 7944 ; WX 684 ; N uni1F08 ; G 2562 +U 7945 ; WX 684 ; N uni1F09 ; G 2563 +U 7946 ; WX 877 ; N uni1F0A ; G 2564 +U 7947 ; WX 877 ; N uni1F0B ; G 2565 +U 7948 ; WX 769 ; N uni1F0C ; G 2566 +U 7949 ; WX 801 ; N uni1F0D ; G 2567 +U 7950 ; WX 708 ; N uni1F0E ; G 2568 +U 7951 ; WX 743 ; N uni1F0F ; G 2569 +U 7952 ; WX 541 ; N uni1F10 ; G 2570 +U 7953 ; WX 541 ; N uni1F11 ; G 2571 +U 7954 ; WX 541 ; N uni1F12 ; G 2572 +U 7955 ; WX 541 ; N uni1F13 ; G 2573 +U 7956 ; WX 541 ; N uni1F14 ; G 2574 +U 7957 ; WX 541 ; N uni1F15 ; G 2575 +U 7960 ; WX 711 ; N uni1F18 ; G 2576 +U 7961 ; WX 711 ; N uni1F19 ; G 2577 +U 7962 ; WX 966 ; N uni1F1A ; G 2578 +U 7963 ; WX 975 ; N uni1F1B ; G 2579 +U 7964 ; WX 898 ; N uni1F1C ; G 2580 +U 7965 ; WX 928 ; N uni1F1D ; G 2581 +U 7968 ; WX 634 ; N uni1F20 ; G 2582 +U 7969 ; WX 634 ; N uni1F21 ; G 2583 +U 7970 ; WX 634 ; N uni1F22 ; G 2584 +U 7971 ; WX 634 ; N uni1F23 ; G 2585 +U 7972 ; WX 634 ; N uni1F24 ; G 2586 +U 7973 ; WX 634 ; N uni1F25 ; G 2587 +U 7974 ; WX 634 ; N uni1F26 ; G 2588 +U 7975 ; WX 634 ; N uni1F27 ; G 2589 +U 7976 ; WX 837 ; N uni1F28 ; G 2590 +U 7977 ; WX 835 ; N uni1F29 ; G 2591 +U 7978 ; WX 1086 ; N uni1F2A ; G 2592 +U 7979 ; WX 1089 ; N uni1F2B ; G 2593 +U 7980 ; WX 1027 ; N uni1F2C ; G 2594 +U 7981 ; WX 1051 ; N uni1F2D ; G 2595 +U 7982 ; WX 934 ; N uni1F2E ; G 2596 +U 7983 ; WX 947 ; N uni1F2F ; G 2597 +U 7984 ; WX 338 ; N uni1F30 ; G 2598 +U 7985 ; WX 338 ; N uni1F31 ; G 2599 +U 7986 ; WX 338 ; N uni1F32 ; G 2600 +U 7987 ; WX 338 ; N uni1F33 ; G 2601 +U 7988 ; WX 338 ; N uni1F34 ; G 2602 +U 7989 ; WX 338 ; N uni1F35 ; G 2603 +U 7990 ; WX 338 ; N uni1F36 ; G 2604 +U 7991 ; WX 338 ; N uni1F37 ; G 2605 +U 7992 ; WX 380 ; N uni1F38 ; G 2606 +U 7993 ; WX 374 ; N uni1F39 ; G 2607 +U 7994 ; WX 635 ; N uni1F3A ; G 2608 +U 7995 ; WX 635 ; N uni1F3B ; G 2609 +U 7996 ; WX 570 ; N uni1F3C ; G 2610 +U 7997 ; WX 600 ; N uni1F3D ; G 2611 +U 7998 ; WX 489 ; N uni1F3E ; G 2612 +U 7999 ; WX 493 ; N uni1F3F ; G 2613 +U 8000 ; WX 612 ; N uni1F40 ; G 2614 +U 8001 ; WX 612 ; N uni1F41 ; G 2615 +U 8002 ; WX 612 ; N uni1F42 ; G 2616 +U 8003 ; WX 612 ; N uni1F43 ; G 2617 +U 8004 ; WX 612 ; N uni1F44 ; G 2618 +U 8005 ; WX 612 ; N uni1F45 ; G 2619 +U 8008 ; WX 804 ; N uni1F48 ; G 2620 +U 8009 ; WX 848 ; N uni1F49 ; G 2621 +U 8010 ; WX 1095 ; N uni1F4A ; G 2622 +U 8011 ; WX 1100 ; N uni1F4B ; G 2623 +U 8012 ; WX 938 ; N uni1F4C ; G 2624 +U 8013 ; WX 970 ; N uni1F4D ; G 2625 +U 8016 ; WX 579 ; N uni1F50 ; G 2626 +U 8017 ; WX 579 ; N uni1F51 ; G 2627 +U 8018 ; WX 579 ; N uni1F52 ; G 2628 +U 8019 ; WX 579 ; N uni1F53 ; G 2629 +U 8020 ; WX 579 ; N uni1F54 ; G 2630 +U 8021 ; WX 579 ; N uni1F55 ; G 2631 +U 8022 ; WX 579 ; N uni1F56 ; G 2632 +U 8023 ; WX 579 ; N uni1F57 ; G 2633 +U 8025 ; WX 784 ; N uni1F59 ; G 2634 +U 8027 ; WX 998 ; N uni1F5B ; G 2635 +U 8029 ; WX 1012 ; N uni1F5D ; G 2636 +U 8031 ; WX 897 ; N uni1F5F ; G 2637 +U 8032 ; WX 837 ; N uni1F60 ; G 2638 +U 8033 ; WX 837 ; N uni1F61 ; G 2639 +U 8034 ; WX 837 ; N uni1F62 ; G 2640 +U 8035 ; WX 837 ; N uni1F63 ; G 2641 +U 8036 ; WX 837 ; N uni1F64 ; G 2642 +U 8037 ; WX 837 ; N uni1F65 ; G 2643 +U 8038 ; WX 837 ; N uni1F66 ; G 2644 +U 8039 ; WX 837 ; N uni1F67 ; G 2645 +U 8040 ; WX 802 ; N uni1F68 ; G 2646 +U 8041 ; WX 843 ; N uni1F69 ; G 2647 +U 8042 ; WX 1089 ; N uni1F6A ; G 2648 +U 8043 ; WX 1095 ; N uni1F6B ; G 2649 +U 8044 ; WX 946 ; N uni1F6C ; G 2650 +U 8045 ; WX 972 ; N uni1F6D ; G 2651 +U 8046 ; WX 921 ; N uni1F6E ; G 2652 +U 8047 ; WX 952 ; N uni1F6F ; G 2653 +U 8048 ; WX 659 ; N uni1F70 ; G 2654 +U 8049 ; WX 659 ; N uni1F71 ; G 2655 +U 8050 ; WX 541 ; N uni1F72 ; G 2656 +U 8051 ; WX 548 ; N uni1F73 ; G 2657 +U 8052 ; WX 634 ; N uni1F74 ; G 2658 +U 8053 ; WX 654 ; N uni1F75 ; G 2659 +U 8054 ; WX 338 ; N uni1F76 ; G 2660 +U 8055 ; WX 338 ; N uni1F77 ; G 2661 +U 8056 ; WX 612 ; N uni1F78 ; G 2662 +U 8057 ; WX 612 ; N uni1F79 ; G 2663 +U 8058 ; WX 579 ; N uni1F7A ; G 2664 +U 8059 ; WX 579 ; N uni1F7B ; G 2665 +U 8060 ; WX 837 ; N uni1F7C ; G 2666 +U 8061 ; WX 837 ; N uni1F7D ; G 2667 +U 8064 ; WX 659 ; N uni1F80 ; G 2668 +U 8065 ; WX 659 ; N uni1F81 ; G 2669 +U 8066 ; WX 659 ; N uni1F82 ; G 2670 +U 8067 ; WX 659 ; N uni1F83 ; G 2671 +U 8068 ; WX 659 ; N uni1F84 ; G 2672 +U 8069 ; WX 659 ; N uni1F85 ; G 2673 +U 8070 ; WX 659 ; N uni1F86 ; G 2674 +U 8071 ; WX 659 ; N uni1F87 ; G 2675 +U 8072 ; WX 684 ; N uni1F88 ; G 2676 +U 8073 ; WX 684 ; N uni1F89 ; G 2677 +U 8074 ; WX 877 ; N uni1F8A ; G 2678 +U 8075 ; WX 877 ; N uni1F8B ; G 2679 +U 8076 ; WX 769 ; N uni1F8C ; G 2680 +U 8077 ; WX 801 ; N uni1F8D ; G 2681 +U 8078 ; WX 708 ; N uni1F8E ; G 2682 +U 8079 ; WX 743 ; N uni1F8F ; G 2683 +U 8080 ; WX 634 ; N uni1F90 ; G 2684 +U 8081 ; WX 634 ; N uni1F91 ; G 2685 +U 8082 ; WX 634 ; N uni1F92 ; G 2686 +U 8083 ; WX 634 ; N uni1F93 ; G 2687 +U 8084 ; WX 634 ; N uni1F94 ; G 2688 +U 8085 ; WX 634 ; N uni1F95 ; G 2689 +U 8086 ; WX 634 ; N uni1F96 ; G 2690 +U 8087 ; WX 634 ; N uni1F97 ; G 2691 +U 8088 ; WX 837 ; N uni1F98 ; G 2692 +U 8089 ; WX 835 ; N uni1F99 ; G 2693 +U 8090 ; WX 1086 ; N uni1F9A ; G 2694 +U 8091 ; WX 1089 ; N uni1F9B ; G 2695 +U 8092 ; WX 1027 ; N uni1F9C ; G 2696 +U 8093 ; WX 1051 ; N uni1F9D ; G 2697 +U 8094 ; WX 934 ; N uni1F9E ; G 2698 +U 8095 ; WX 947 ; N uni1F9F ; G 2699 +U 8096 ; WX 837 ; N uni1FA0 ; G 2700 +U 8097 ; WX 837 ; N uni1FA1 ; G 2701 +U 8098 ; WX 837 ; N uni1FA2 ; G 2702 +U 8099 ; WX 837 ; N uni1FA3 ; G 2703 +U 8100 ; WX 837 ; N uni1FA4 ; G 2704 +U 8101 ; WX 837 ; N uni1FA5 ; G 2705 +U 8102 ; WX 837 ; N uni1FA6 ; G 2706 +U 8103 ; WX 837 ; N uni1FA7 ; G 2707 +U 8104 ; WX 802 ; N uni1FA8 ; G 2708 +U 8105 ; WX 843 ; N uni1FA9 ; G 2709 +U 8106 ; WX 1089 ; N uni1FAA ; G 2710 +U 8107 ; WX 1095 ; N uni1FAB ; G 2711 +U 8108 ; WX 946 ; N uni1FAC ; G 2712 +U 8109 ; WX 972 ; N uni1FAD ; G 2713 +U 8110 ; WX 921 ; N uni1FAE ; G 2714 +U 8111 ; WX 952 ; N uni1FAF ; G 2715 +U 8112 ; WX 659 ; N uni1FB0 ; G 2716 +U 8113 ; WX 659 ; N uni1FB1 ; G 2717 +U 8114 ; WX 659 ; N uni1FB2 ; G 2718 +U 8115 ; WX 659 ; N uni1FB3 ; G 2719 +U 8116 ; WX 659 ; N uni1FB4 ; G 2720 +U 8118 ; WX 659 ; N uni1FB6 ; G 2721 +U 8119 ; WX 659 ; N uni1FB7 ; G 2722 +U 8120 ; WX 684 ; N uni1FB8 ; G 2723 +U 8121 ; WX 684 ; N uni1FB9 ; G 2724 +U 8122 ; WX 716 ; N uni1FBA ; G 2725 +U 8123 ; WX 692 ; N uni1FBB ; G 2726 +U 8124 ; WX 684 ; N uni1FBC ; G 2727 +U 8125 ; WX 500 ; N uni1FBD ; G 2728 +U 8126 ; WX 500 ; N uni1FBE ; G 2729 +U 8127 ; WX 500 ; N uni1FBF ; G 2730 +U 8128 ; WX 500 ; N uni1FC0 ; G 2731 +U 8129 ; WX 500 ; N uni1FC1 ; G 2732 +U 8130 ; WX 634 ; N uni1FC2 ; G 2733 +U 8131 ; WX 634 ; N uni1FC3 ; G 2734 +U 8132 ; WX 654 ; N uni1FC4 ; G 2735 +U 8134 ; WX 634 ; N uni1FC6 ; G 2736 +U 8135 ; WX 634 ; N uni1FC7 ; G 2737 +U 8136 ; WX 805 ; N uni1FC8 ; G 2738 +U 8137 ; WX 746 ; N uni1FC9 ; G 2739 +U 8138 ; WX 931 ; N uni1FCA ; G 2740 +U 8139 ; WX 871 ; N uni1FCB ; G 2741 +U 8140 ; WX 752 ; N uni1FCC ; G 2742 +U 8141 ; WX 500 ; N uni1FCD ; G 2743 +U 8142 ; WX 500 ; N uni1FCE ; G 2744 +U 8143 ; WX 500 ; N uni1FCF ; G 2745 +U 8144 ; WX 338 ; N uni1FD0 ; G 2746 +U 8145 ; WX 338 ; N uni1FD1 ; G 2747 +U 8146 ; WX 338 ; N uni1FD2 ; G 2748 +U 8147 ; WX 338 ; N uni1FD3 ; G 2749 +U 8150 ; WX 338 ; N uni1FD6 ; G 2750 +U 8151 ; WX 338 ; N uni1FD7 ; G 2751 +U 8152 ; WX 295 ; N uni1FD8 ; G 2752 +U 8153 ; WX 295 ; N uni1FD9 ; G 2753 +U 8154 ; WX 475 ; N uni1FDA ; G 2754 +U 8155 ; WX 408 ; N uni1FDB ; G 2755 +U 8157 ; WX 500 ; N uni1FDD ; G 2756 +U 8158 ; WX 500 ; N uni1FDE ; G 2757 +U 8159 ; WX 500 ; N uni1FDF ; G 2758 +U 8160 ; WX 579 ; N uni1FE0 ; G 2759 +U 8161 ; WX 579 ; N uni1FE1 ; G 2760 +U 8162 ; WX 579 ; N uni1FE2 ; G 2761 +U 8163 ; WX 579 ; N uni1FE3 ; G 2762 +U 8164 ; WX 635 ; N uni1FE4 ; G 2763 +U 8165 ; WX 635 ; N uni1FE5 ; G 2764 +U 8166 ; WX 579 ; N uni1FE6 ; G 2765 +U 8167 ; WX 579 ; N uni1FE7 ; G 2766 +U 8168 ; WX 611 ; N uni1FE8 ; G 2767 +U 8169 ; WX 611 ; N uni1FE9 ; G 2768 +U 8170 ; WX 845 ; N uni1FEA ; G 2769 +U 8171 ; WX 825 ; N uni1FEB ; G 2770 +U 8172 ; WX 685 ; N uni1FEC ; G 2771 +U 8173 ; WX 500 ; N uni1FED ; G 2772 +U 8174 ; WX 500 ; N uni1FEE ; G 2773 +U 8175 ; WX 500 ; N uni1FEF ; G 2774 +U 8178 ; WX 837 ; N uni1FF2 ; G 2775 +U 8179 ; WX 837 ; N uni1FF3 ; G 2776 +U 8180 ; WX 837 ; N uni1FF4 ; G 2777 +U 8182 ; WX 837 ; N uni1FF6 ; G 2778 +U 8183 ; WX 837 ; N uni1FF7 ; G 2779 +U 8184 ; WX 941 ; N uni1FF8 ; G 2780 +U 8185 ; WX 813 ; N uni1FF9 ; G 2781 +U 8186 ; WX 922 ; N uni1FFA ; G 2782 +U 8187 ; WX 826 ; N uni1FFB ; G 2783 +U 8188 ; WX 764 ; N uni1FFC ; G 2784 +U 8189 ; WX 500 ; N uni1FFD ; G 2785 +U 8190 ; WX 500 ; N uni1FFE ; G 2786 +U 8192 ; WX 500 ; N uni2000 ; G 2787 +U 8193 ; WX 1000 ; N uni2001 ; G 2788 +U 8194 ; WX 500 ; N uni2002 ; G 2789 +U 8195 ; WX 1000 ; N uni2003 ; G 2790 +U 8196 ; WX 330 ; N uni2004 ; G 2791 +U 8197 ; WX 250 ; N uni2005 ; G 2792 +U 8198 ; WX 167 ; N uni2006 ; G 2793 +U 8199 ; WX 636 ; N uni2007 ; G 2794 +U 8200 ; WX 318 ; N uni2008 ; G 2795 +U 8201 ; WX 200 ; N uni2009 ; G 2796 +U 8202 ; WX 100 ; N uni200A ; G 2797 +U 8203 ; WX 0 ; N uni200B ; G 2798 +U 8204 ; WX 0 ; N uni200C ; G 2799 +U 8205 ; WX 0 ; N uni200D ; G 2800 +U 8206 ; WX 0 ; N uni200E ; G 2801 +U 8207 ; WX 0 ; N uni200F ; G 2802 +U 8208 ; WX 361 ; N uni2010 ; G 2803 +U 8209 ; WX 361 ; N uni2011 ; G 2804 +U 8210 ; WX 636 ; N figuredash ; G 2805 +U 8211 ; WX 500 ; N endash ; G 2806 +U 8212 ; WX 1000 ; N emdash ; G 2807 +U 8213 ; WX 1000 ; N uni2015 ; G 2808 +U 8214 ; WX 500 ; N uni2016 ; G 2809 +U 8215 ; WX 500 ; N underscoredbl ; G 2810 +U 8216 ; WX 318 ; N quoteleft ; G 2811 +U 8217 ; WX 318 ; N quoteright ; G 2812 +U 8218 ; WX 318 ; N quotesinglbase ; G 2813 +U 8219 ; WX 318 ; N quotereversed ; G 2814 +U 8220 ; WX 518 ; N quotedblleft ; G 2815 +U 8221 ; WX 518 ; N quotedblright ; G 2816 +U 8222 ; WX 518 ; N quotedblbase ; G 2817 +U 8223 ; WX 518 ; N uni201F ; G 2818 +U 8224 ; WX 500 ; N dagger ; G 2819 +U 8225 ; WX 500 ; N daggerdbl ; G 2820 +U 8226 ; WX 590 ; N bullet ; G 2821 +U 8227 ; WX 590 ; N uni2023 ; G 2822 +U 8228 ; WX 334 ; N onedotenleader ; G 2823 +U 8229 ; WX 667 ; N twodotenleader ; G 2824 +U 8230 ; WX 1000 ; N ellipsis ; G 2825 +U 8231 ; WX 318 ; N uni2027 ; G 2826 +U 8232 ; WX 0 ; N uni2028 ; G 2827 +U 8233 ; WX 0 ; N uni2029 ; G 2828 +U 8234 ; WX 0 ; N uni202A ; G 2829 +U 8235 ; WX 0 ; N uni202B ; G 2830 +U 8236 ; WX 0 ; N uni202C ; G 2831 +U 8237 ; WX 0 ; N uni202D ; G 2832 +U 8238 ; WX 0 ; N uni202E ; G 2833 +U 8239 ; WX 200 ; N uni202F ; G 2834 +U 8240 ; WX 1342 ; N perthousand ; G 2835 +U 8241 ; WX 1735 ; N uni2031 ; G 2836 +U 8242 ; WX 227 ; N minute ; G 2837 +U 8243 ; WX 374 ; N second ; G 2838 +U 8244 ; WX 520 ; N uni2034 ; G 2839 +U 8245 ; WX 227 ; N uni2035 ; G 2840 +U 8246 ; WX 374 ; N uni2036 ; G 2841 +U 8247 ; WX 520 ; N uni2037 ; G 2842 +U 8248 ; WX 339 ; N uni2038 ; G 2843 +U 8249 ; WX 400 ; N guilsinglleft ; G 2844 +U 8250 ; WX 400 ; N guilsinglright ; G 2845 +U 8251 ; WX 838 ; N uni203B ; G 2846 +U 8252 ; WX 485 ; N exclamdbl ; G 2847 +U 8253 ; WX 531 ; N uni203D ; G 2848 +U 8254 ; WX 500 ; N uni203E ; G 2849 +U 8255 ; WX 804 ; N uni203F ; G 2850 +U 8256 ; WX 804 ; N uni2040 ; G 2851 +U 8257 ; WX 250 ; N uni2041 ; G 2852 +U 8258 ; WX 1000 ; N uni2042 ; G 2853 +U 8259 ; WX 500 ; N uni2043 ; G 2854 +U 8260 ; WX 167 ; N fraction ; G 2855 +U 8261 ; WX 390 ; N uni2045 ; G 2856 +U 8262 ; WX 390 ; N uni2046 ; G 2857 +U 8263 ; WX 922 ; N uni2047 ; G 2858 +U 8264 ; WX 733 ; N uni2048 ; G 2859 +U 8265 ; WX 733 ; N uni2049 ; G 2860 +U 8266 ; WX 497 ; N uni204A ; G 2861 +U 8267 ; WX 636 ; N uni204B ; G 2862 +U 8268 ; WX 500 ; N uni204C ; G 2863 +U 8269 ; WX 500 ; N uni204D ; G 2864 +U 8270 ; WX 500 ; N uni204E ; G 2865 +U 8271 ; WX 337 ; N uni204F ; G 2866 +U 8272 ; WX 804 ; N uni2050 ; G 2867 +U 8273 ; WX 500 ; N uni2051 ; G 2868 +U 8274 ; WX 450 ; N uni2052 ; G 2869 +U 8275 ; WX 1000 ; N uni2053 ; G 2870 +U 8276 ; WX 804 ; N uni2054 ; G 2871 +U 8277 ; WX 838 ; N uni2055 ; G 2872 +U 8278 ; WX 586 ; N uni2056 ; G 2873 +U 8279 ; WX 663 ; N uni2057 ; G 2874 +U 8280 ; WX 838 ; N uni2058 ; G 2875 +U 8281 ; WX 838 ; N uni2059 ; G 2876 +U 8282 ; WX 318 ; N uni205A ; G 2877 +U 8283 ; WX 797 ; N uni205B ; G 2878 +U 8284 ; WX 838 ; N uni205C ; G 2879 +U 8285 ; WX 318 ; N uni205D ; G 2880 +U 8286 ; WX 318 ; N uni205E ; G 2881 +U 8287 ; WX 222 ; N uni205F ; G 2882 +U 8288 ; WX 0 ; N uni2060 ; G 2883 +U 8289 ; WX 0 ; N uni2061 ; G 2884 +U 8290 ; WX 0 ; N uni2062 ; G 2885 +U 8291 ; WX 0 ; N uni2063 ; G 2886 +U 8292 ; WX 0 ; N uni2064 ; G 2887 +U 8298 ; WX 0 ; N uni206A ; G 2888 +U 8299 ; WX 0 ; N uni206B ; G 2889 +U 8300 ; WX 0 ; N uni206C ; G 2890 +U 8301 ; WX 0 ; N uni206D ; G 2891 +U 8302 ; WX 0 ; N uni206E ; G 2892 +U 8303 ; WX 0 ; N uni206F ; G 2893 +U 8304 ; WX 401 ; N uni2070 ; G 2894 +U 8305 ; WX 179 ; N uni2071 ; G 2895 +U 8308 ; WX 401 ; N uni2074 ; G 2896 +U 8309 ; WX 401 ; N uni2075 ; G 2897 +U 8310 ; WX 401 ; N uni2076 ; G 2898 +U 8311 ; WX 401 ; N uni2077 ; G 2899 +U 8312 ; WX 401 ; N uni2078 ; G 2900 +U 8313 ; WX 401 ; N uni2079 ; G 2901 +U 8314 ; WX 528 ; N uni207A ; G 2902 +U 8315 ; WX 528 ; N uni207B ; G 2903 +U 8316 ; WX 528 ; N uni207C ; G 2904 +U 8317 ; WX 246 ; N uni207D ; G 2905 +U 8318 ; WX 246 ; N uni207E ; G 2906 +U 8319 ; WX 398 ; N uni207F ; G 2907 +U 8320 ; WX 401 ; N uni2080 ; G 2908 +U 8321 ; WX 401 ; N uni2081 ; G 2909 +U 8322 ; WX 401 ; N uni2082 ; G 2910 +U 8323 ; WX 401 ; N uni2083 ; G 2911 +U 8324 ; WX 401 ; N uni2084 ; G 2912 +U 8325 ; WX 401 ; N uni2085 ; G 2913 +U 8326 ; WX 401 ; N uni2086 ; G 2914 +U 8327 ; WX 401 ; N uni2087 ; G 2915 +U 8328 ; WX 401 ; N uni2088 ; G 2916 +U 8329 ; WX 401 ; N uni2089 ; G 2917 +U 8330 ; WX 528 ; N uni208A ; G 2918 +U 8331 ; WX 528 ; N uni208B ; G 2919 +U 8332 ; WX 528 ; N uni208C ; G 2920 +U 8333 ; WX 246 ; N uni208D ; G 2921 +U 8334 ; WX 246 ; N uni208E ; G 2922 +U 8336 ; WX 392 ; N uni2090 ; G 2923 +U 8337 ; WX 417 ; N uni2091 ; G 2924 +U 8338 ; WX 414 ; N uni2092 ; G 2925 +U 8339 ; WX 444 ; N uni2093 ; G 2926 +U 8340 ; WX 417 ; N uni2094 ; G 2927 +U 8341 ; WX 404 ; N uni2095 ; G 2928 +U 8342 ; WX 426 ; N uni2096 ; G 2929 +U 8343 ; WX 166 ; N uni2097 ; G 2930 +U 8344 ; WX 623 ; N uni2098 ; G 2931 +U 8345 ; WX 398 ; N uni2099 ; G 2932 +U 8346 ; WX 428 ; N uni209A ; G 2933 +U 8347 ; WX 373 ; N uni209B ; G 2934 +U 8348 ; WX 295 ; N uni209C ; G 2935 +U 8352 ; WX 877 ; N uni20A0 ; G 2936 +U 8353 ; WX 636 ; N colonmonetary ; G 2937 +U 8354 ; WX 636 ; N uni20A2 ; G 2938 +U 8355 ; WX 636 ; N franc ; G 2939 +U 8356 ; WX 636 ; N lira ; G 2940 +U 8357 ; WX 974 ; N uni20A5 ; G 2941 +U 8358 ; WX 636 ; N uni20A6 ; G 2942 +U 8359 ; WX 1272 ; N peseta ; G 2943 +U 8360 ; WX 1074 ; N uni20A8 ; G 2944 +U 8361 ; WX 989 ; N uni20A9 ; G 2945 +U 8362 ; WX 784 ; N uni20AA ; G 2946 +U 8363 ; WX 636 ; N dong ; G 2947 +U 8364 ; WX 636 ; N Euro ; G 2948 +U 8365 ; WX 636 ; N uni20AD ; G 2949 +U 8366 ; WX 636 ; N uni20AE ; G 2950 +U 8367 ; WX 1272 ; N uni20AF ; G 2951 +U 8368 ; WX 636 ; N uni20B0 ; G 2952 +U 8369 ; WX 636 ; N uni20B1 ; G 2953 +U 8370 ; WX 636 ; N uni20B2 ; G 2954 +U 8371 ; WX 636 ; N uni20B3 ; G 2955 +U 8372 ; WX 774 ; N uni20B4 ; G 2956 +U 8373 ; WX 636 ; N uni20B5 ; G 2957 +U 8376 ; WX 636 ; N uni20B8 ; G 2958 +U 8377 ; WX 636 ; N uni20B9 ; G 2959 +U 8378 ; WX 636 ; N uni20BA ; G 2960 +U 8381 ; WX 636 ; N uni20BD ; G 2961 +U 8400 ; WX 0 ; N uni20D0 ; G 2962 +U 8401 ; WX 0 ; N uni20D1 ; G 2963 +U 8406 ; WX 0 ; N uni20D6 ; G 2964 +U 8407 ; WX 0 ; N uni20D7 ; G 2965 +U 8411 ; WX 0 ; N uni20DB ; G 2966 +U 8412 ; WX 0 ; N uni20DC ; G 2967 +U 8417 ; WX 0 ; N uni20E1 ; G 2968 +U 8448 ; WX 1019 ; N uni2100 ; G 2969 +U 8449 ; WX 1019 ; N uni2101 ; G 2970 +U 8450 ; WX 698 ; N uni2102 ; G 2971 +U 8451 ; WX 1123 ; N uni2103 ; G 2972 +U 8452 ; WX 642 ; N uni2104 ; G 2973 +U 8453 ; WX 1019 ; N uni2105 ; G 2974 +U 8454 ; WX 1067 ; N uni2106 ; G 2975 +U 8455 ; WX 614 ; N uni2107 ; G 2976 +U 8456 ; WX 698 ; N uni2108 ; G 2977 +U 8457 ; WX 952 ; N uni2109 ; G 2978 +U 8459 ; WX 988 ; N uni210B ; G 2979 +U 8460 ; WX 754 ; N uni210C ; G 2980 +U 8461 ; WX 850 ; N uni210D ; G 2981 +U 8462 ; WX 634 ; N uni210E ; G 2982 +U 8463 ; WX 634 ; N uni210F ; G 2983 +U 8464 ; WX 470 ; N uni2110 ; G 2984 +U 8465 ; WX 697 ; N Ifraktur ; G 2985 +U 8466 ; WX 720 ; N uni2112 ; G 2986 +U 8467 ; WX 413 ; N uni2113 ; G 2987 +U 8468 ; WX 818 ; N uni2114 ; G 2988 +U 8469 ; WX 801 ; N uni2115 ; G 2989 +U 8470 ; WX 1040 ; N uni2116 ; G 2990 +U 8471 ; WX 1000 ; N uni2117 ; G 2991 +U 8472 ; WX 697 ; N weierstrass ; G 2992 +U 8473 ; WX 701 ; N uni2119 ; G 2993 +U 8474 ; WX 787 ; N uni211A ; G 2994 +U 8475 ; WX 798 ; N uni211B ; G 2995 +U 8476 ; WX 814 ; N Rfraktur ; G 2996 +U 8477 ; WX 792 ; N uni211D ; G 2997 +U 8478 ; WX 896 ; N prescription ; G 2998 +U 8479 ; WX 684 ; N uni211F ; G 2999 +U 8480 ; WX 1020 ; N uni2120 ; G 3000 +U 8481 ; WX 1074 ; N uni2121 ; G 3001 +U 8482 ; WX 1000 ; N trademark ; G 3002 +U 8483 ; WX 684 ; N uni2123 ; G 3003 +U 8484 ; WX 745 ; N uni2124 ; G 3004 +U 8485 ; WX 578 ; N uni2125 ; G 3005 +U 8486 ; WX 764 ; N uni2126 ; G 3006 +U 8487 ; WX 764 ; N uni2127 ; G 3007 +U 8488 ; WX 616 ; N uni2128 ; G 3008 +U 8489 ; WX 338 ; N uni2129 ; G 3009 +U 8490 ; WX 656 ; N uni212A ; G 3010 +U 8491 ; WX 684 ; N uni212B ; G 3011 +U 8492 ; WX 786 ; N uni212C ; G 3012 +U 8493 ; WX 703 ; N uni212D ; G 3013 +U 8494 ; WX 854 ; N estimated ; G 3014 +U 8495 ; WX 592 ; N uni212F ; G 3015 +U 8496 ; WX 605 ; N uni2130 ; G 3016 +U 8497 ; WX 786 ; N uni2131 ; G 3017 +U 8498 ; WX 575 ; N uni2132 ; G 3018 +U 8499 ; WX 1069 ; N uni2133 ; G 3019 +U 8500 ; WX 462 ; N uni2134 ; G 3020 +U 8501 ; WX 745 ; N aleph ; G 3021 +U 8502 ; WX 674 ; N uni2136 ; G 3022 +U 8503 ; WX 466 ; N uni2137 ; G 3023 +U 8504 ; WX 645 ; N uni2138 ; G 3024 +U 8505 ; WX 380 ; N uni2139 ; G 3025 +U 8506 ; WX 926 ; N uni213A ; G 3026 +U 8507 ; WX 1194 ; N uni213B ; G 3027 +U 8508 ; WX 702 ; N uni213C ; G 3028 +U 8509 ; WX 728 ; N uni213D ; G 3029 +U 8510 ; WX 654 ; N uni213E ; G 3030 +U 8511 ; WX 849 ; N uni213F ; G 3031 +U 8512 ; WX 811 ; N uni2140 ; G 3032 +U 8513 ; WX 775 ; N uni2141 ; G 3033 +U 8514 ; WX 557 ; N uni2142 ; G 3034 +U 8515 ; WX 557 ; N uni2143 ; G 3035 +U 8516 ; WX 611 ; N uni2144 ; G 3036 +U 8517 ; WX 819 ; N uni2145 ; G 3037 +U 8518 ; WX 708 ; N uni2146 ; G 3038 +U 8519 ; WX 615 ; N uni2147 ; G 3039 +U 8520 ; WX 351 ; N uni2148 ; G 3040 +U 8521 ; WX 351 ; N uni2149 ; G 3041 +U 8523 ; WX 780 ; N uni214B ; G 3042 +U 8526 ; WX 526 ; N uni214E ; G 3043 +U 8528 ; WX 969 ; N uni2150 ; G 3044 +U 8529 ; WX 969 ; N uni2151 ; G 3045 +U 8530 ; WX 1370 ; N uni2152 ; G 3046 +U 8531 ; WX 969 ; N onethird ; G 3047 +U 8532 ; WX 969 ; N twothirds ; G 3048 +U 8533 ; WX 969 ; N uni2155 ; G 3049 +U 8534 ; WX 969 ; N uni2156 ; G 3050 +U 8535 ; WX 969 ; N uni2157 ; G 3051 +U 8536 ; WX 969 ; N uni2158 ; G 3052 +U 8537 ; WX 969 ; N uni2159 ; G 3053 +U 8538 ; WX 969 ; N uni215A ; G 3054 +U 8539 ; WX 969 ; N oneeighth ; G 3055 +U 8540 ; WX 969 ; N threeeighths ; G 3056 +U 8541 ; WX 969 ; N fiveeighths ; G 3057 +U 8542 ; WX 969 ; N seveneighths ; G 3058 +U 8543 ; WX 568 ; N uni215F ; G 3059 +U 8544 ; WX 295 ; N uni2160 ; G 3060 +U 8545 ; WX 492 ; N uni2161 ; G 3061 +U 8546 ; WX 689 ; N uni2162 ; G 3062 +U 8547 ; WX 923 ; N uni2163 ; G 3063 +U 8548 ; WX 684 ; N uni2164 ; G 3064 +U 8549 ; WX 922 ; N uni2165 ; G 3065 +U 8550 ; WX 1120 ; N uni2166 ; G 3066 +U 8551 ; WX 1317 ; N uni2167 ; G 3067 +U 8552 ; WX 917 ; N uni2168 ; G 3068 +U 8553 ; WX 685 ; N uni2169 ; G 3069 +U 8554 ; WX 933 ; N uni216A ; G 3070 +U 8555 ; WX 1131 ; N uni216B ; G 3071 +U 8556 ; WX 557 ; N uni216C ; G 3072 +U 8557 ; WX 698 ; N uni216D ; G 3073 +U 8558 ; WX 770 ; N uni216E ; G 3074 +U 8559 ; WX 863 ; N uni216F ; G 3075 +U 8560 ; WX 278 ; N uni2170 ; G 3076 +U 8561 ; WX 458 ; N uni2171 ; G 3077 +U 8562 ; WX 637 ; N uni2172 ; G 3078 +U 8563 ; WX 812 ; N uni2173 ; G 3079 +U 8564 ; WX 592 ; N uni2174 ; G 3080 +U 8565 ; WX 811 ; N uni2175 ; G 3081 +U 8566 ; WX 991 ; N uni2176 ; G 3082 +U 8567 ; WX 1170 ; N uni2177 ; G 3083 +U 8568 ; WX 819 ; N uni2178 ; G 3084 +U 8569 ; WX 592 ; N uni2179 ; G 3085 +U 8570 ; WX 822 ; N uni217A ; G 3086 +U 8571 ; WX 1002 ; N uni217B ; G 3087 +U 8572 ; WX 278 ; N uni217C ; G 3088 +U 8573 ; WX 550 ; N uni217D ; G 3089 +U 8574 ; WX 635 ; N uni217E ; G 3090 +U 8575 ; WX 974 ; N uni217F ; G 3091 +U 8576 ; WX 1245 ; N uni2180 ; G 3092 +U 8577 ; WX 770 ; N uni2181 ; G 3093 +U 8578 ; WX 1245 ; N uni2182 ; G 3094 +U 8579 ; WX 703 ; N uni2183 ; G 3095 +U 8580 ; WX 549 ; N uni2184 ; G 3096 +U 8581 ; WX 698 ; N uni2185 ; G 3097 +U 8585 ; WX 969 ; N uni2189 ; G 3098 +U 8592 ; WX 838 ; N arrowleft ; G 3099 +U 8593 ; WX 838 ; N arrowup ; G 3100 +U 8594 ; WX 838 ; N arrowright ; G 3101 +U 8595 ; WX 838 ; N arrowdown ; G 3102 +U 8596 ; WX 838 ; N arrowboth ; G 3103 +U 8597 ; WX 838 ; N arrowupdn ; G 3104 +U 8598 ; WX 838 ; N uni2196 ; G 3105 +U 8599 ; WX 838 ; N uni2197 ; G 3106 +U 8600 ; WX 838 ; N uni2198 ; G 3107 +U 8601 ; WX 838 ; N uni2199 ; G 3108 +U 8602 ; WX 838 ; N uni219A ; G 3109 +U 8603 ; WX 838 ; N uni219B ; G 3110 +U 8604 ; WX 838 ; N uni219C ; G 3111 +U 8605 ; WX 838 ; N uni219D ; G 3112 +U 8606 ; WX 838 ; N uni219E ; G 3113 +U 8607 ; WX 838 ; N uni219F ; G 3114 +U 8608 ; WX 838 ; N uni21A0 ; G 3115 +U 8609 ; WX 838 ; N uni21A1 ; G 3116 +U 8610 ; WX 838 ; N uni21A2 ; G 3117 +U 8611 ; WX 838 ; N uni21A3 ; G 3118 +U 8612 ; WX 838 ; N uni21A4 ; G 3119 +U 8613 ; WX 838 ; N uni21A5 ; G 3120 +U 8614 ; WX 838 ; N uni21A6 ; G 3121 +U 8615 ; WX 838 ; N uni21A7 ; G 3122 +U 8616 ; WX 838 ; N arrowupdnbse ; G 3123 +U 8617 ; WX 838 ; N uni21A9 ; G 3124 +U 8618 ; WX 838 ; N uni21AA ; G 3125 +U 8619 ; WX 838 ; N uni21AB ; G 3126 +U 8620 ; WX 838 ; N uni21AC ; G 3127 +U 8621 ; WX 838 ; N uni21AD ; G 3128 +U 8622 ; WX 838 ; N uni21AE ; G 3129 +U 8623 ; WX 838 ; N uni21AF ; G 3130 +U 8624 ; WX 838 ; N uni21B0 ; G 3131 +U 8625 ; WX 838 ; N uni21B1 ; G 3132 +U 8626 ; WX 838 ; N uni21B2 ; G 3133 +U 8627 ; WX 838 ; N uni21B3 ; G 3134 +U 8628 ; WX 838 ; N uni21B4 ; G 3135 +U 8629 ; WX 838 ; N carriagereturn ; G 3136 +U 8630 ; WX 838 ; N uni21B6 ; G 3137 +U 8631 ; WX 838 ; N uni21B7 ; G 3138 +U 8632 ; WX 838 ; N uni21B8 ; G 3139 +U 8633 ; WX 838 ; N uni21B9 ; G 3140 +U 8634 ; WX 838 ; N uni21BA ; G 3141 +U 8635 ; WX 838 ; N uni21BB ; G 3142 +U 8636 ; WX 838 ; N uni21BC ; G 3143 +U 8637 ; WX 838 ; N uni21BD ; G 3144 +U 8638 ; WX 838 ; N uni21BE ; G 3145 +U 8639 ; WX 838 ; N uni21BF ; G 3146 +U 8640 ; WX 838 ; N uni21C0 ; G 3147 +U 8641 ; WX 838 ; N uni21C1 ; G 3148 +U 8642 ; WX 838 ; N uni21C2 ; G 3149 +U 8643 ; WX 838 ; N uni21C3 ; G 3150 +U 8644 ; WX 838 ; N uni21C4 ; G 3151 +U 8645 ; WX 838 ; N uni21C5 ; G 3152 +U 8646 ; WX 838 ; N uni21C6 ; G 3153 +U 8647 ; WX 838 ; N uni21C7 ; G 3154 +U 8648 ; WX 838 ; N uni21C8 ; G 3155 +U 8649 ; WX 838 ; N uni21C9 ; G 3156 +U 8650 ; WX 838 ; N uni21CA ; G 3157 +U 8651 ; WX 838 ; N uni21CB ; G 3158 +U 8652 ; WX 838 ; N uni21CC ; G 3159 +U 8653 ; WX 838 ; N uni21CD ; G 3160 +U 8654 ; WX 838 ; N uni21CE ; G 3161 +U 8655 ; WX 838 ; N uni21CF ; G 3162 +U 8656 ; WX 838 ; N arrowdblleft ; G 3163 +U 8657 ; WX 838 ; N arrowdblup ; G 3164 +U 8658 ; WX 838 ; N arrowdblright ; G 3165 +U 8659 ; WX 838 ; N arrowdbldown ; G 3166 +U 8660 ; WX 838 ; N arrowdblboth ; G 3167 +U 8661 ; WX 838 ; N uni21D5 ; G 3168 +U 8662 ; WX 838 ; N uni21D6 ; G 3169 +U 8663 ; WX 838 ; N uni21D7 ; G 3170 +U 8664 ; WX 838 ; N uni21D8 ; G 3171 +U 8665 ; WX 838 ; N uni21D9 ; G 3172 +U 8666 ; WX 838 ; N uni21DA ; G 3173 +U 8667 ; WX 838 ; N uni21DB ; G 3174 +U 8668 ; WX 838 ; N uni21DC ; G 3175 +U 8669 ; WX 838 ; N uni21DD ; G 3176 +U 8670 ; WX 838 ; N uni21DE ; G 3177 +U 8671 ; WX 838 ; N uni21DF ; G 3178 +U 8672 ; WX 838 ; N uni21E0 ; G 3179 +U 8673 ; WX 838 ; N uni21E1 ; G 3180 +U 8674 ; WX 838 ; N uni21E2 ; G 3181 +U 8675 ; WX 838 ; N uni21E3 ; G 3182 +U 8676 ; WX 838 ; N uni21E4 ; G 3183 +U 8677 ; WX 838 ; N uni21E5 ; G 3184 +U 8678 ; WX 838 ; N uni21E6 ; G 3185 +U 8679 ; WX 838 ; N uni21E7 ; G 3186 +U 8680 ; WX 838 ; N uni21E8 ; G 3187 +U 8681 ; WX 838 ; N uni21E9 ; G 3188 +U 8682 ; WX 838 ; N uni21EA ; G 3189 +U 8683 ; WX 838 ; N uni21EB ; G 3190 +U 8684 ; WX 838 ; N uni21EC ; G 3191 +U 8685 ; WX 838 ; N uni21ED ; G 3192 +U 8686 ; WX 838 ; N uni21EE ; G 3193 +U 8687 ; WX 838 ; N uni21EF ; G 3194 +U 8688 ; WX 838 ; N uni21F0 ; G 3195 +U 8689 ; WX 838 ; N uni21F1 ; G 3196 +U 8690 ; WX 838 ; N uni21F2 ; G 3197 +U 8691 ; WX 838 ; N uni21F3 ; G 3198 +U 8692 ; WX 838 ; N uni21F4 ; G 3199 +U 8693 ; WX 838 ; N uni21F5 ; G 3200 +U 8694 ; WX 838 ; N uni21F6 ; G 3201 +U 8695 ; WX 838 ; N uni21F7 ; G 3202 +U 8696 ; WX 838 ; N uni21F8 ; G 3203 +U 8697 ; WX 838 ; N uni21F9 ; G 3204 +U 8698 ; WX 838 ; N uni21FA ; G 3205 +U 8699 ; WX 838 ; N uni21FB ; G 3206 +U 8700 ; WX 838 ; N uni21FC ; G 3207 +U 8701 ; WX 838 ; N uni21FD ; G 3208 +U 8702 ; WX 838 ; N uni21FE ; G 3209 +U 8703 ; WX 838 ; N uni21FF ; G 3210 +U 8704 ; WX 684 ; N universal ; G 3211 +U 8705 ; WX 636 ; N uni2201 ; G 3212 +U 8706 ; WX 517 ; N partialdiff ; G 3213 +U 8707 ; WX 632 ; N existential ; G 3214 +U 8708 ; WX 632 ; N uni2204 ; G 3215 +U 8709 ; WX 871 ; N emptyset ; G 3216 +U 8710 ; WX 669 ; N increment ; G 3217 +U 8711 ; WX 669 ; N gradient ; G 3218 +U 8712 ; WX 871 ; N element ; G 3219 +U 8713 ; WX 871 ; N notelement ; G 3220 +U 8714 ; WX 718 ; N uni220A ; G 3221 +U 8715 ; WX 871 ; N suchthat ; G 3222 +U 8716 ; WX 871 ; N uni220C ; G 3223 +U 8717 ; WX 718 ; N uni220D ; G 3224 +U 8718 ; WX 636 ; N uni220E ; G 3225 +U 8719 ; WX 757 ; N product ; G 3226 +U 8720 ; WX 757 ; N uni2210 ; G 3227 +U 8721 ; WX 674 ; N summation ; G 3228 +U 8722 ; WX 838 ; N minus ; G 3229 +U 8723 ; WX 838 ; N uni2213 ; G 3230 +U 8724 ; WX 838 ; N uni2214 ; G 3231 +U 8725 ; WX 337 ; N uni2215 ; G 3232 +U 8726 ; WX 637 ; N uni2216 ; G 3233 +U 8727 ; WX 838 ; N asteriskmath ; G 3234 +U 8728 ; WX 626 ; N uni2218 ; G 3235 +U 8729 ; WX 626 ; N uni2219 ; G 3236 +U 8730 ; WX 637 ; N radical ; G 3237 +U 8731 ; WX 637 ; N uni221B ; G 3238 +U 8732 ; WX 637 ; N uni221C ; G 3239 +U 8733 ; WX 714 ; N proportional ; G 3240 +U 8734 ; WX 833 ; N infinity ; G 3241 +U 8735 ; WX 838 ; N orthogonal ; G 3242 +U 8736 ; WX 896 ; N angle ; G 3243 +U 8737 ; WX 896 ; N uni2221 ; G 3244 +U 8738 ; WX 838 ; N uni2222 ; G 3245 +U 8739 ; WX 500 ; N uni2223 ; G 3246 +U 8740 ; WX 500 ; N uni2224 ; G 3247 +U 8741 ; WX 500 ; N uni2225 ; G 3248 +U 8742 ; WX 500 ; N uni2226 ; G 3249 +U 8743 ; WX 732 ; N logicaland ; G 3250 +U 8744 ; WX 732 ; N logicalor ; G 3251 +U 8745 ; WX 732 ; N intersection ; G 3252 +U 8746 ; WX 732 ; N union ; G 3253 +U 8747 ; WX 521 ; N integral ; G 3254 +U 8748 ; WX 789 ; N uni222C ; G 3255 +U 8749 ; WX 1057 ; N uni222D ; G 3256 +U 8750 ; WX 521 ; N uni222E ; G 3257 +U 8751 ; WX 789 ; N uni222F ; G 3258 +U 8752 ; WX 1057 ; N uni2230 ; G 3259 +U 8753 ; WX 521 ; N uni2231 ; G 3260 +U 8754 ; WX 521 ; N uni2232 ; G 3261 +U 8755 ; WX 521 ; N uni2233 ; G 3262 +U 8756 ; WX 636 ; N therefore ; G 3263 +U 8757 ; WX 636 ; N uni2235 ; G 3264 +U 8758 ; WX 260 ; N uni2236 ; G 3265 +U 8759 ; WX 636 ; N uni2237 ; G 3266 +U 8760 ; WX 838 ; N uni2238 ; G 3267 +U 8761 ; WX 838 ; N uni2239 ; G 3268 +U 8762 ; WX 838 ; N uni223A ; G 3269 +U 8763 ; WX 838 ; N uni223B ; G 3270 +U 8764 ; WX 838 ; N similar ; G 3271 +U 8765 ; WX 838 ; N uni223D ; G 3272 +U 8766 ; WX 838 ; N uni223E ; G 3273 +U 8767 ; WX 838 ; N uni223F ; G 3274 +U 8768 ; WX 375 ; N uni2240 ; G 3275 +U 8769 ; WX 838 ; N uni2241 ; G 3276 +U 8770 ; WX 838 ; N uni2242 ; G 3277 +U 8771 ; WX 838 ; N uni2243 ; G 3278 +U 8772 ; WX 838 ; N uni2244 ; G 3279 +U 8773 ; WX 838 ; N congruent ; G 3280 +U 8774 ; WX 838 ; N uni2246 ; G 3281 +U 8775 ; WX 838 ; N uni2247 ; G 3282 +U 8776 ; WX 838 ; N approxequal ; G 3283 +U 8777 ; WX 838 ; N uni2249 ; G 3284 +U 8778 ; WX 838 ; N uni224A ; G 3285 +U 8779 ; WX 838 ; N uni224B ; G 3286 +U 8780 ; WX 838 ; N uni224C ; G 3287 +U 8781 ; WX 838 ; N uni224D ; G 3288 +U 8782 ; WX 838 ; N uni224E ; G 3289 +U 8783 ; WX 838 ; N uni224F ; G 3290 +U 8784 ; WX 838 ; N uni2250 ; G 3291 +U 8785 ; WX 838 ; N uni2251 ; G 3292 +U 8786 ; WX 839 ; N uni2252 ; G 3293 +U 8787 ; WX 839 ; N uni2253 ; G 3294 +U 8788 ; WX 1000 ; N uni2254 ; G 3295 +U 8789 ; WX 1000 ; N uni2255 ; G 3296 +U 8790 ; WX 838 ; N uni2256 ; G 3297 +U 8791 ; WX 838 ; N uni2257 ; G 3298 +U 8792 ; WX 838 ; N uni2258 ; G 3299 +U 8793 ; WX 838 ; N uni2259 ; G 3300 +U 8794 ; WX 838 ; N uni225A ; G 3301 +U 8795 ; WX 838 ; N uni225B ; G 3302 +U 8796 ; WX 838 ; N uni225C ; G 3303 +U 8797 ; WX 838 ; N uni225D ; G 3304 +U 8798 ; WX 838 ; N uni225E ; G 3305 +U 8799 ; WX 838 ; N uni225F ; G 3306 +U 8800 ; WX 838 ; N notequal ; G 3307 +U 8801 ; WX 838 ; N equivalence ; G 3308 +U 8802 ; WX 838 ; N uni2262 ; G 3309 +U 8803 ; WX 838 ; N uni2263 ; G 3310 +U 8804 ; WX 838 ; N lessequal ; G 3311 +U 8805 ; WX 838 ; N greaterequal ; G 3312 +U 8806 ; WX 838 ; N uni2266 ; G 3313 +U 8807 ; WX 838 ; N uni2267 ; G 3314 +U 8808 ; WX 838 ; N uni2268 ; G 3315 +U 8809 ; WX 838 ; N uni2269 ; G 3316 +U 8810 ; WX 1047 ; N uni226A ; G 3317 +U 8811 ; WX 1047 ; N uni226B ; G 3318 +U 8812 ; WX 464 ; N uni226C ; G 3319 +U 8813 ; WX 838 ; N uni226D ; G 3320 +U 8814 ; WX 838 ; N uni226E ; G 3321 +U 8815 ; WX 838 ; N uni226F ; G 3322 +U 8816 ; WX 838 ; N uni2270 ; G 3323 +U 8817 ; WX 838 ; N uni2271 ; G 3324 +U 8818 ; WX 838 ; N uni2272 ; G 3325 +U 8819 ; WX 838 ; N uni2273 ; G 3326 +U 8820 ; WX 838 ; N uni2274 ; G 3327 +U 8821 ; WX 838 ; N uni2275 ; G 3328 +U 8822 ; WX 838 ; N uni2276 ; G 3329 +U 8823 ; WX 838 ; N uni2277 ; G 3330 +U 8824 ; WX 838 ; N uni2278 ; G 3331 +U 8825 ; WX 838 ; N uni2279 ; G 3332 +U 8826 ; WX 838 ; N uni227A ; G 3333 +U 8827 ; WX 838 ; N uni227B ; G 3334 +U 8828 ; WX 838 ; N uni227C ; G 3335 +U 8829 ; WX 838 ; N uni227D ; G 3336 +U 8830 ; WX 838 ; N uni227E ; G 3337 +U 8831 ; WX 838 ; N uni227F ; G 3338 +U 8832 ; WX 838 ; N uni2280 ; G 3339 +U 8833 ; WX 838 ; N uni2281 ; G 3340 +U 8834 ; WX 838 ; N propersubset ; G 3341 +U 8835 ; WX 838 ; N propersuperset ; G 3342 +U 8836 ; WX 838 ; N notsubset ; G 3343 +U 8837 ; WX 838 ; N uni2285 ; G 3344 +U 8838 ; WX 838 ; N reflexsubset ; G 3345 +U 8839 ; WX 838 ; N reflexsuperset ; G 3346 +U 8840 ; WX 838 ; N uni2288 ; G 3347 +U 8841 ; WX 838 ; N uni2289 ; G 3348 +U 8842 ; WX 838 ; N uni228A ; G 3349 +U 8843 ; WX 838 ; N uni228B ; G 3350 +U 8844 ; WX 732 ; N uni228C ; G 3351 +U 8845 ; WX 732 ; N uni228D ; G 3352 +U 8846 ; WX 732 ; N uni228E ; G 3353 +U 8847 ; WX 838 ; N uni228F ; G 3354 +U 8848 ; WX 838 ; N uni2290 ; G 3355 +U 8849 ; WX 838 ; N uni2291 ; G 3356 +U 8850 ; WX 838 ; N uni2292 ; G 3357 +U 8851 ; WX 780 ; N uni2293 ; G 3358 +U 8852 ; WX 780 ; N uni2294 ; G 3359 +U 8853 ; WX 838 ; N circleplus ; G 3360 +U 8854 ; WX 838 ; N uni2296 ; G 3361 +U 8855 ; WX 838 ; N circlemultiply ; G 3362 +U 8856 ; WX 838 ; N uni2298 ; G 3363 +U 8857 ; WX 838 ; N uni2299 ; G 3364 +U 8858 ; WX 838 ; N uni229A ; G 3365 +U 8859 ; WX 838 ; N uni229B ; G 3366 +U 8860 ; WX 838 ; N uni229C ; G 3367 +U 8861 ; WX 838 ; N uni229D ; G 3368 +U 8862 ; WX 838 ; N uni229E ; G 3369 +U 8863 ; WX 838 ; N uni229F ; G 3370 +U 8864 ; WX 838 ; N uni22A0 ; G 3371 +U 8865 ; WX 838 ; N uni22A1 ; G 3372 +U 8866 ; WX 871 ; N uni22A2 ; G 3373 +U 8867 ; WX 871 ; N uni22A3 ; G 3374 +U 8868 ; WX 871 ; N uni22A4 ; G 3375 +U 8869 ; WX 871 ; N perpendicular ; G 3376 +U 8870 ; WX 521 ; N uni22A6 ; G 3377 +U 8871 ; WX 521 ; N uni22A7 ; G 3378 +U 8872 ; WX 871 ; N uni22A8 ; G 3379 +U 8873 ; WX 871 ; N uni22A9 ; G 3380 +U 8874 ; WX 871 ; N uni22AA ; G 3381 +U 8875 ; WX 871 ; N uni22AB ; G 3382 +U 8876 ; WX 871 ; N uni22AC ; G 3383 +U 8877 ; WX 871 ; N uni22AD ; G 3384 +U 8878 ; WX 871 ; N uni22AE ; G 3385 +U 8879 ; WX 871 ; N uni22AF ; G 3386 +U 8880 ; WX 838 ; N uni22B0 ; G 3387 +U 8881 ; WX 838 ; N uni22B1 ; G 3388 +U 8882 ; WX 838 ; N uni22B2 ; G 3389 +U 8883 ; WX 838 ; N uni22B3 ; G 3390 +U 8884 ; WX 838 ; N uni22B4 ; G 3391 +U 8885 ; WX 838 ; N uni22B5 ; G 3392 +U 8886 ; WX 1000 ; N uni22B6 ; G 3393 +U 8887 ; WX 1000 ; N uni22B7 ; G 3394 +U 8888 ; WX 838 ; N uni22B8 ; G 3395 +U 8889 ; WX 838 ; N uni22B9 ; G 3396 +U 8890 ; WX 521 ; N uni22BA ; G 3397 +U 8891 ; WX 732 ; N uni22BB ; G 3398 +U 8892 ; WX 732 ; N uni22BC ; G 3399 +U 8893 ; WX 732 ; N uni22BD ; G 3400 +U 8894 ; WX 838 ; N uni22BE ; G 3401 +U 8895 ; WX 838 ; N uni22BF ; G 3402 +U 8896 ; WX 820 ; N uni22C0 ; G 3403 +U 8897 ; WX 820 ; N uni22C1 ; G 3404 +U 8898 ; WX 820 ; N uni22C2 ; G 3405 +U 8899 ; WX 820 ; N uni22C3 ; G 3406 +U 8900 ; WX 626 ; N uni22C4 ; G 3407 +U 8901 ; WX 318 ; N dotmath ; G 3408 +U 8902 ; WX 626 ; N uni22C6 ; G 3409 +U 8903 ; WX 838 ; N uni22C7 ; G 3410 +U 8904 ; WX 1000 ; N uni22C8 ; G 3411 +U 8905 ; WX 1000 ; N uni22C9 ; G 3412 +U 8906 ; WX 1000 ; N uni22CA ; G 3413 +U 8907 ; WX 1000 ; N uni22CB ; G 3414 +U 8908 ; WX 1000 ; N uni22CC ; G 3415 +U 8909 ; WX 838 ; N uni22CD ; G 3416 +U 8910 ; WX 732 ; N uni22CE ; G 3417 +U 8911 ; WX 732 ; N uni22CF ; G 3418 +U 8912 ; WX 838 ; N uni22D0 ; G 3419 +U 8913 ; WX 838 ; N uni22D1 ; G 3420 +U 8914 ; WX 838 ; N uni22D2 ; G 3421 +U 8915 ; WX 838 ; N uni22D3 ; G 3422 +U 8916 ; WX 838 ; N uni22D4 ; G 3423 +U 8917 ; WX 838 ; N uni22D5 ; G 3424 +U 8918 ; WX 838 ; N uni22D6 ; G 3425 +U 8919 ; WX 838 ; N uni22D7 ; G 3426 +U 8920 ; WX 1422 ; N uni22D8 ; G 3427 +U 8921 ; WX 1422 ; N uni22D9 ; G 3428 +U 8922 ; WX 838 ; N uni22DA ; G 3429 +U 8923 ; WX 838 ; N uni22DB ; G 3430 +U 8924 ; WX 838 ; N uni22DC ; G 3431 +U 8925 ; WX 838 ; N uni22DD ; G 3432 +U 8926 ; WX 838 ; N uni22DE ; G 3433 +U 8927 ; WX 838 ; N uni22DF ; G 3434 +U 8928 ; WX 838 ; N uni22E0 ; G 3435 +U 8929 ; WX 838 ; N uni22E1 ; G 3436 +U 8930 ; WX 838 ; N uni22E2 ; G 3437 +U 8931 ; WX 838 ; N uni22E3 ; G 3438 +U 8932 ; WX 838 ; N uni22E4 ; G 3439 +U 8933 ; WX 838 ; N uni22E5 ; G 3440 +U 8934 ; WX 838 ; N uni22E6 ; G 3441 +U 8935 ; WX 838 ; N uni22E7 ; G 3442 +U 8936 ; WX 838 ; N uni22E8 ; G 3443 +U 8937 ; WX 838 ; N uni22E9 ; G 3444 +U 8938 ; WX 838 ; N uni22EA ; G 3445 +U 8939 ; WX 838 ; N uni22EB ; G 3446 +U 8940 ; WX 838 ; N uni22EC ; G 3447 +U 8941 ; WX 838 ; N uni22ED ; G 3448 +U 8942 ; WX 1000 ; N uni22EE ; G 3449 +U 8943 ; WX 1000 ; N uni22EF ; G 3450 +U 8944 ; WX 1000 ; N uni22F0 ; G 3451 +U 8945 ; WX 1000 ; N uni22F1 ; G 3452 +U 8946 ; WX 1000 ; N uni22F2 ; G 3453 +U 8947 ; WX 871 ; N uni22F3 ; G 3454 +U 8948 ; WX 718 ; N uni22F4 ; G 3455 +U 8949 ; WX 871 ; N uni22F5 ; G 3456 +U 8950 ; WX 871 ; N uni22F6 ; G 3457 +U 8951 ; WX 718 ; N uni22F7 ; G 3458 +U 8952 ; WX 871 ; N uni22F8 ; G 3459 +U 8953 ; WX 871 ; N uni22F9 ; G 3460 +U 8954 ; WX 1000 ; N uni22FA ; G 3461 +U 8955 ; WX 871 ; N uni22FB ; G 3462 +U 8956 ; WX 718 ; N uni22FC ; G 3463 +U 8957 ; WX 871 ; N uni22FD ; G 3464 +U 8958 ; WX 718 ; N uni22FE ; G 3465 +U 8959 ; WX 871 ; N uni22FF ; G 3466 +U 8960 ; WX 602 ; N uni2300 ; G 3467 +U 8961 ; WX 602 ; N uni2301 ; G 3468 +U 8962 ; WX 635 ; N house ; G 3469 +U 8963 ; WX 838 ; N uni2303 ; G 3470 +U 8964 ; WX 838 ; N uni2304 ; G 3471 +U 8965 ; WX 838 ; N uni2305 ; G 3472 +U 8966 ; WX 838 ; N uni2306 ; G 3473 +U 8967 ; WX 488 ; N uni2307 ; G 3474 +U 8968 ; WX 390 ; N uni2308 ; G 3475 +U 8969 ; WX 390 ; N uni2309 ; G 3476 +U 8970 ; WX 390 ; N uni230A ; G 3477 +U 8971 ; WX 390 ; N uni230B ; G 3478 +U 8972 ; WX 809 ; N uni230C ; G 3479 +U 8973 ; WX 809 ; N uni230D ; G 3480 +U 8974 ; WX 809 ; N uni230E ; G 3481 +U 8975 ; WX 809 ; N uni230F ; G 3482 +U 8976 ; WX 838 ; N revlogicalnot ; G 3483 +U 8977 ; WX 513 ; N uni2311 ; G 3484 +U 8984 ; WX 1000 ; N uni2318 ; G 3485 +U 8985 ; WX 838 ; N uni2319 ; G 3486 +U 8988 ; WX 469 ; N uni231C ; G 3487 +U 8989 ; WX 469 ; N uni231D ; G 3488 +U 8990 ; WX 469 ; N uni231E ; G 3489 +U 8991 ; WX 469 ; N uni231F ; G 3490 +U 8992 ; WX 521 ; N integraltp ; G 3491 +U 8993 ; WX 521 ; N integralbt ; G 3492 +U 8996 ; WX 1152 ; N uni2324 ; G 3493 +U 8997 ; WX 1152 ; N uni2325 ; G 3494 +U 8998 ; WX 1414 ; N uni2326 ; G 3495 +U 8999 ; WX 1152 ; N uni2327 ; G 3496 +U 9000 ; WX 1443 ; N uni2328 ; G 3497 +U 9003 ; WX 1414 ; N uni232B ; G 3498 +U 9004 ; WX 873 ; N uni232C ; G 3499 +U 9075 ; WX 338 ; N uni2373 ; G 3500 +U 9076 ; WX 635 ; N uni2374 ; G 3501 +U 9077 ; WX 837 ; N uni2375 ; G 3502 +U 9082 ; WX 659 ; N uni237A ; G 3503 +U 9085 ; WX 757 ; N uni237D ; G 3504 +U 9095 ; WX 1152 ; N uni2387 ; G 3505 +U 9108 ; WX 873 ; N uni2394 ; G 3506 +U 9115 ; WX 500 ; N uni239B ; G 3507 +U 9116 ; WX 500 ; N uni239C ; G 3508 +U 9117 ; WX 500 ; N uni239D ; G 3509 +U 9118 ; WX 500 ; N uni239E ; G 3510 +U 9119 ; WX 500 ; N uni239F ; G 3511 +U 9120 ; WX 500 ; N uni23A0 ; G 3512 +U 9121 ; WX 500 ; N uni23A1 ; G 3513 +U 9122 ; WX 500 ; N uni23A2 ; G 3514 +U 9123 ; WX 500 ; N uni23A3 ; G 3515 +U 9124 ; WX 500 ; N uni23A4 ; G 3516 +U 9125 ; WX 500 ; N uni23A5 ; G 3517 +U 9126 ; WX 500 ; N uni23A6 ; G 3518 +U 9127 ; WX 750 ; N uni23A7 ; G 3519 +U 9128 ; WX 750 ; N uni23A8 ; G 3520 +U 9129 ; WX 750 ; N uni23A9 ; G 3521 +U 9130 ; WX 750 ; N uni23AA ; G 3522 +U 9131 ; WX 750 ; N uni23AB ; G 3523 +U 9132 ; WX 750 ; N uni23AC ; G 3524 +U 9133 ; WX 750 ; N uni23AD ; G 3525 +U 9134 ; WX 521 ; N uni23AE ; G 3526 +U 9166 ; WX 838 ; N uni23CE ; G 3527 +U 9167 ; WX 945 ; N uni23CF ; G 3528 +U 9187 ; WX 873 ; N uni23E3 ; G 3529 +U 9189 ; WX 769 ; N uni23E5 ; G 3530 +U 9192 ; WX 636 ; N uni23E8 ; G 3531 +U 9250 ; WX 635 ; N uni2422 ; G 3532 +U 9251 ; WX 635 ; N uni2423 ; G 3533 +U 9312 ; WX 896 ; N uni2460 ; G 3534 +U 9313 ; WX 896 ; N uni2461 ; G 3535 +U 9314 ; WX 896 ; N uni2462 ; G 3536 +U 9315 ; WX 896 ; N uni2463 ; G 3537 +U 9316 ; WX 896 ; N uni2464 ; G 3538 +U 9317 ; WX 896 ; N uni2465 ; G 3539 +U 9318 ; WX 896 ; N uni2466 ; G 3540 +U 9319 ; WX 896 ; N uni2467 ; G 3541 +U 9320 ; WX 896 ; N uni2468 ; G 3542 +U 9321 ; WX 896 ; N uni2469 ; G 3543 +U 9472 ; WX 602 ; N SF100000 ; G 3544 +U 9473 ; WX 602 ; N uni2501 ; G 3545 +U 9474 ; WX 602 ; N SF110000 ; G 3546 +U 9475 ; WX 602 ; N uni2503 ; G 3547 +U 9476 ; WX 602 ; N uni2504 ; G 3548 +U 9477 ; WX 602 ; N uni2505 ; G 3549 +U 9478 ; WX 602 ; N uni2506 ; G 3550 +U 9479 ; WX 602 ; N uni2507 ; G 3551 +U 9480 ; WX 602 ; N uni2508 ; G 3552 +U 9481 ; WX 602 ; N uni2509 ; G 3553 +U 9482 ; WX 602 ; N uni250A ; G 3554 +U 9483 ; WX 602 ; N uni250B ; G 3555 +U 9484 ; WX 602 ; N SF010000 ; G 3556 +U 9485 ; WX 602 ; N uni250D ; G 3557 +U 9486 ; WX 602 ; N uni250E ; G 3558 +U 9487 ; WX 602 ; N uni250F ; G 3559 +U 9488 ; WX 602 ; N SF030000 ; G 3560 +U 9489 ; WX 602 ; N uni2511 ; G 3561 +U 9490 ; WX 602 ; N uni2512 ; G 3562 +U 9491 ; WX 602 ; N uni2513 ; G 3563 +U 9492 ; WX 602 ; N SF020000 ; G 3564 +U 9493 ; WX 602 ; N uni2515 ; G 3565 +U 9494 ; WX 602 ; N uni2516 ; G 3566 +U 9495 ; WX 602 ; N uni2517 ; G 3567 +U 9496 ; WX 602 ; N SF040000 ; G 3568 +U 9497 ; WX 602 ; N uni2519 ; G 3569 +U 9498 ; WX 602 ; N uni251A ; G 3570 +U 9499 ; WX 602 ; N uni251B ; G 3571 +U 9500 ; WX 602 ; N SF080000 ; G 3572 +U 9501 ; WX 602 ; N uni251D ; G 3573 +U 9502 ; WX 602 ; N uni251E ; G 3574 +U 9503 ; WX 602 ; N uni251F ; G 3575 +U 9504 ; WX 602 ; N uni2520 ; G 3576 +U 9505 ; WX 602 ; N uni2521 ; G 3577 +U 9506 ; WX 602 ; N uni2522 ; G 3578 +U 9507 ; WX 602 ; N uni2523 ; G 3579 +U 9508 ; WX 602 ; N SF090000 ; G 3580 +U 9509 ; WX 602 ; N uni2525 ; G 3581 +U 9510 ; WX 602 ; N uni2526 ; G 3582 +U 9511 ; WX 602 ; N uni2527 ; G 3583 +U 9512 ; WX 602 ; N uni2528 ; G 3584 +U 9513 ; WX 602 ; N uni2529 ; G 3585 +U 9514 ; WX 602 ; N uni252A ; G 3586 +U 9515 ; WX 602 ; N uni252B ; G 3587 +U 9516 ; WX 602 ; N SF060000 ; G 3588 +U 9517 ; WX 602 ; N uni252D ; G 3589 +U 9518 ; WX 602 ; N uni252E ; G 3590 +U 9519 ; WX 602 ; N uni252F ; G 3591 +U 9520 ; WX 602 ; N uni2530 ; G 3592 +U 9521 ; WX 602 ; N uni2531 ; G 3593 +U 9522 ; WX 602 ; N uni2532 ; G 3594 +U 9523 ; WX 602 ; N uni2533 ; G 3595 +U 9524 ; WX 602 ; N SF070000 ; G 3596 +U 9525 ; WX 602 ; N uni2535 ; G 3597 +U 9526 ; WX 602 ; N uni2536 ; G 3598 +U 9527 ; WX 602 ; N uni2537 ; G 3599 +U 9528 ; WX 602 ; N uni2538 ; G 3600 +U 9529 ; WX 602 ; N uni2539 ; G 3601 +U 9530 ; WX 602 ; N uni253A ; G 3602 +U 9531 ; WX 602 ; N uni253B ; G 3603 +U 9532 ; WX 602 ; N SF050000 ; G 3604 +U 9533 ; WX 602 ; N uni253D ; G 3605 +U 9534 ; WX 602 ; N uni253E ; G 3606 +U 9535 ; WX 602 ; N uni253F ; G 3607 +U 9536 ; WX 602 ; N uni2540 ; G 3608 +U 9537 ; WX 602 ; N uni2541 ; G 3609 +U 9538 ; WX 602 ; N uni2542 ; G 3610 +U 9539 ; WX 602 ; N uni2543 ; G 3611 +U 9540 ; WX 602 ; N uni2544 ; G 3612 +U 9541 ; WX 602 ; N uni2545 ; G 3613 +U 9542 ; WX 602 ; N uni2546 ; G 3614 +U 9543 ; WX 602 ; N uni2547 ; G 3615 +U 9544 ; WX 602 ; N uni2548 ; G 3616 +U 9545 ; WX 602 ; N uni2549 ; G 3617 +U 9546 ; WX 602 ; N uni254A ; G 3618 +U 9547 ; WX 602 ; N uni254B ; G 3619 +U 9548 ; WX 602 ; N uni254C ; G 3620 +U 9549 ; WX 602 ; N uni254D ; G 3621 +U 9550 ; WX 602 ; N uni254E ; G 3622 +U 9551 ; WX 602 ; N uni254F ; G 3623 +U 9552 ; WX 602 ; N SF430000 ; G 3624 +U 9553 ; WX 602 ; N SF240000 ; G 3625 +U 9554 ; WX 602 ; N SF510000 ; G 3626 +U 9555 ; WX 602 ; N SF520000 ; G 3627 +U 9556 ; WX 602 ; N SF390000 ; G 3628 +U 9557 ; WX 602 ; N SF220000 ; G 3629 +U 9558 ; WX 602 ; N SF210000 ; G 3630 +U 9559 ; WX 602 ; N SF250000 ; G 3631 +U 9560 ; WX 602 ; N SF500000 ; G 3632 +U 9561 ; WX 602 ; N SF490000 ; G 3633 +U 9562 ; WX 602 ; N SF380000 ; G 3634 +U 9563 ; WX 602 ; N SF280000 ; G 3635 +U 9564 ; WX 602 ; N SF270000 ; G 3636 +U 9565 ; WX 602 ; N SF260000 ; G 3637 +U 9566 ; WX 602 ; N SF360000 ; G 3638 +U 9567 ; WX 602 ; N SF370000 ; G 3639 +U 9568 ; WX 602 ; N SF420000 ; G 3640 +U 9569 ; WX 602 ; N SF190000 ; G 3641 +U 9570 ; WX 602 ; N SF200000 ; G 3642 +U 9571 ; WX 602 ; N SF230000 ; G 3643 +U 9572 ; WX 602 ; N SF470000 ; G 3644 +U 9573 ; WX 602 ; N SF480000 ; G 3645 +U 9574 ; WX 602 ; N SF410000 ; G 3646 +U 9575 ; WX 602 ; N SF450000 ; G 3647 +U 9576 ; WX 602 ; N SF460000 ; G 3648 +U 9577 ; WX 602 ; N SF400000 ; G 3649 +U 9578 ; WX 602 ; N SF540000 ; G 3650 +U 9579 ; WX 602 ; N SF530000 ; G 3651 +U 9580 ; WX 602 ; N SF440000 ; G 3652 +U 9581 ; WX 602 ; N uni256D ; G 3653 +U 9582 ; WX 602 ; N uni256E ; G 3654 +U 9583 ; WX 602 ; N uni256F ; G 3655 +U 9584 ; WX 602 ; N uni2570 ; G 3656 +U 9585 ; WX 602 ; N uni2571 ; G 3657 +U 9586 ; WX 602 ; N uni2572 ; G 3658 +U 9587 ; WX 602 ; N uni2573 ; G 3659 +U 9588 ; WX 602 ; N uni2574 ; G 3660 +U 9589 ; WX 602 ; N uni2575 ; G 3661 +U 9590 ; WX 602 ; N uni2576 ; G 3662 +U 9591 ; WX 602 ; N uni2577 ; G 3663 +U 9592 ; WX 602 ; N uni2578 ; G 3664 +U 9593 ; WX 602 ; N uni2579 ; G 3665 +U 9594 ; WX 602 ; N uni257A ; G 3666 +U 9595 ; WX 602 ; N uni257B ; G 3667 +U 9596 ; WX 602 ; N uni257C ; G 3668 +U 9597 ; WX 602 ; N uni257D ; G 3669 +U 9598 ; WX 602 ; N uni257E ; G 3670 +U 9599 ; WX 602 ; N uni257F ; G 3671 +U 9600 ; WX 769 ; N upblock ; G 3672 +U 9601 ; WX 769 ; N uni2581 ; G 3673 +U 9602 ; WX 769 ; N uni2582 ; G 3674 +U 9603 ; WX 769 ; N uni2583 ; G 3675 +U 9604 ; WX 769 ; N dnblock ; G 3676 +U 9605 ; WX 769 ; N uni2585 ; G 3677 +U 9606 ; WX 769 ; N uni2586 ; G 3678 +U 9607 ; WX 769 ; N uni2587 ; G 3679 +U 9608 ; WX 769 ; N block ; G 3680 +U 9609 ; WX 769 ; N uni2589 ; G 3681 +U 9610 ; WX 769 ; N uni258A ; G 3682 +U 9611 ; WX 769 ; N uni258B ; G 3683 +U 9612 ; WX 769 ; N lfblock ; G 3684 +U 9613 ; WX 769 ; N uni258D ; G 3685 +U 9614 ; WX 769 ; N uni258E ; G 3686 +U 9615 ; WX 769 ; N uni258F ; G 3687 +U 9616 ; WX 769 ; N rtblock ; G 3688 +U 9617 ; WX 769 ; N ltshade ; G 3689 +U 9618 ; WX 769 ; N shade ; G 3690 +U 9619 ; WX 769 ; N dkshade ; G 3691 +U 9620 ; WX 769 ; N uni2594 ; G 3692 +U 9621 ; WX 769 ; N uni2595 ; G 3693 +U 9622 ; WX 769 ; N uni2596 ; G 3694 +U 9623 ; WX 769 ; N uni2597 ; G 3695 +U 9624 ; WX 769 ; N uni2598 ; G 3696 +U 9625 ; WX 769 ; N uni2599 ; G 3697 +U 9626 ; WX 769 ; N uni259A ; G 3698 +U 9627 ; WX 769 ; N uni259B ; G 3699 +U 9628 ; WX 769 ; N uni259C ; G 3700 +U 9629 ; WX 769 ; N uni259D ; G 3701 +U 9630 ; WX 769 ; N uni259E ; G 3702 +U 9631 ; WX 769 ; N uni259F ; G 3703 +U 9632 ; WX 945 ; N filledbox ; G 3704 +U 9633 ; WX 945 ; N H22073 ; G 3705 +U 9634 ; WX 945 ; N uni25A2 ; G 3706 +U 9635 ; WX 945 ; N uni25A3 ; G 3707 +U 9636 ; WX 945 ; N uni25A4 ; G 3708 +U 9637 ; WX 945 ; N uni25A5 ; G 3709 +U 9638 ; WX 945 ; N uni25A6 ; G 3710 +U 9639 ; WX 945 ; N uni25A7 ; G 3711 +U 9640 ; WX 945 ; N uni25A8 ; G 3712 +U 9641 ; WX 945 ; N uni25A9 ; G 3713 +U 9642 ; WX 678 ; N H18543 ; G 3714 +U 9643 ; WX 678 ; N H18551 ; G 3715 +U 9644 ; WX 945 ; N filledrect ; G 3716 +U 9645 ; WX 945 ; N uni25AD ; G 3717 +U 9646 ; WX 550 ; N uni25AE ; G 3718 +U 9647 ; WX 550 ; N uni25AF ; G 3719 +U 9648 ; WX 769 ; N uni25B0 ; G 3720 +U 9649 ; WX 769 ; N uni25B1 ; G 3721 +U 9650 ; WX 769 ; N triagup ; G 3722 +U 9651 ; WX 769 ; N uni25B3 ; G 3723 +U 9652 ; WX 502 ; N uni25B4 ; G 3724 +U 9653 ; WX 502 ; N uni25B5 ; G 3725 +U 9654 ; WX 769 ; N uni25B6 ; G 3726 +U 9655 ; WX 769 ; N uni25B7 ; G 3727 +U 9656 ; WX 502 ; N uni25B8 ; G 3728 +U 9657 ; WX 502 ; N uni25B9 ; G 3729 +U 9658 ; WX 769 ; N triagrt ; G 3730 +U 9659 ; WX 769 ; N uni25BB ; G 3731 +U 9660 ; WX 769 ; N triagdn ; G 3732 +U 9661 ; WX 769 ; N uni25BD ; G 3733 +U 9662 ; WX 502 ; N uni25BE ; G 3734 +U 9663 ; WX 502 ; N uni25BF ; G 3735 +U 9664 ; WX 769 ; N uni25C0 ; G 3736 +U 9665 ; WX 769 ; N uni25C1 ; G 3737 +U 9666 ; WX 502 ; N uni25C2 ; G 3738 +U 9667 ; WX 502 ; N uni25C3 ; G 3739 +U 9668 ; WX 769 ; N triaglf ; G 3740 +U 9669 ; WX 769 ; N uni25C5 ; G 3741 +U 9670 ; WX 769 ; N uni25C6 ; G 3742 +U 9671 ; WX 769 ; N uni25C7 ; G 3743 +U 9672 ; WX 769 ; N uni25C8 ; G 3744 +U 9673 ; WX 873 ; N uni25C9 ; G 3745 +U 9674 ; WX 494 ; N lozenge ; G 3746 +U 9675 ; WX 873 ; N circle ; G 3747 +U 9676 ; WX 873 ; N uni25CC ; G 3748 +U 9677 ; WX 873 ; N uni25CD ; G 3749 +U 9678 ; WX 873 ; N uni25CE ; G 3750 +U 9679 ; WX 873 ; N H18533 ; G 3751 +U 9680 ; WX 873 ; N uni25D0 ; G 3752 +U 9681 ; WX 873 ; N uni25D1 ; G 3753 +U 9682 ; WX 873 ; N uni25D2 ; G 3754 +U 9683 ; WX 873 ; N uni25D3 ; G 3755 +U 9684 ; WX 873 ; N uni25D4 ; G 3756 +U 9685 ; WX 873 ; N uni25D5 ; G 3757 +U 9686 ; WX 527 ; N uni25D6 ; G 3758 +U 9687 ; WX 527 ; N uni25D7 ; G 3759 +U 9688 ; WX 791 ; N invbullet ; G 3760 +U 9689 ; WX 970 ; N invcircle ; G 3761 +U 9690 ; WX 970 ; N uni25DA ; G 3762 +U 9691 ; WX 970 ; N uni25DB ; G 3763 +U 9692 ; WX 387 ; N uni25DC ; G 3764 +U 9693 ; WX 387 ; N uni25DD ; G 3765 +U 9694 ; WX 387 ; N uni25DE ; G 3766 +U 9695 ; WX 387 ; N uni25DF ; G 3767 +U 9696 ; WX 873 ; N uni25E0 ; G 3768 +U 9697 ; WX 873 ; N uni25E1 ; G 3769 +U 9698 ; WX 769 ; N uni25E2 ; G 3770 +U 9699 ; WX 769 ; N uni25E3 ; G 3771 +U 9700 ; WX 769 ; N uni25E4 ; G 3772 +U 9701 ; WX 769 ; N uni25E5 ; G 3773 +U 9702 ; WX 590 ; N openbullet ; G 3774 +U 9703 ; WX 945 ; N uni25E7 ; G 3775 +U 9704 ; WX 945 ; N uni25E8 ; G 3776 +U 9705 ; WX 945 ; N uni25E9 ; G 3777 +U 9706 ; WX 945 ; N uni25EA ; G 3778 +U 9707 ; WX 945 ; N uni25EB ; G 3779 +U 9708 ; WX 769 ; N uni25EC ; G 3780 +U 9709 ; WX 769 ; N uni25ED ; G 3781 +U 9710 ; WX 769 ; N uni25EE ; G 3782 +U 9711 ; WX 1119 ; N uni25EF ; G 3783 +U 9712 ; WX 945 ; N uni25F0 ; G 3784 +U 9713 ; WX 945 ; N uni25F1 ; G 3785 +U 9714 ; WX 945 ; N uni25F2 ; G 3786 +U 9715 ; WX 945 ; N uni25F3 ; G 3787 +U 9716 ; WX 873 ; N uni25F4 ; G 3788 +U 9717 ; WX 873 ; N uni25F5 ; G 3789 +U 9718 ; WX 873 ; N uni25F6 ; G 3790 +U 9719 ; WX 873 ; N uni25F7 ; G 3791 +U 9720 ; WX 769 ; N uni25F8 ; G 3792 +U 9721 ; WX 769 ; N uni25F9 ; G 3793 +U 9722 ; WX 769 ; N uni25FA ; G 3794 +U 9723 ; WX 830 ; N uni25FB ; G 3795 +U 9724 ; WX 830 ; N uni25FC ; G 3796 +U 9725 ; WX 732 ; N uni25FD ; G 3797 +U 9726 ; WX 732 ; N uni25FE ; G 3798 +U 9727 ; WX 769 ; N uni25FF ; G 3799 +U 9728 ; WX 896 ; N uni2600 ; G 3800 +U 9729 ; WX 1000 ; N uni2601 ; G 3801 +U 9730 ; WX 896 ; N uni2602 ; G 3802 +U 9731 ; WX 896 ; N uni2603 ; G 3803 +U 9732 ; WX 896 ; N uni2604 ; G 3804 +U 9733 ; WX 896 ; N uni2605 ; G 3805 +U 9734 ; WX 896 ; N uni2606 ; G 3806 +U 9735 ; WX 573 ; N uni2607 ; G 3807 +U 9736 ; WX 896 ; N uni2608 ; G 3808 +U 9737 ; WX 896 ; N uni2609 ; G 3809 +U 9738 ; WX 888 ; N uni260A ; G 3810 +U 9739 ; WX 888 ; N uni260B ; G 3811 +U 9740 ; WX 671 ; N uni260C ; G 3812 +U 9741 ; WX 1013 ; N uni260D ; G 3813 +U 9742 ; WX 1246 ; N uni260E ; G 3814 +U 9743 ; WX 1250 ; N uni260F ; G 3815 +U 9744 ; WX 896 ; N uni2610 ; G 3816 +U 9745 ; WX 896 ; N uni2611 ; G 3817 +U 9746 ; WX 896 ; N uni2612 ; G 3818 +U 9747 ; WX 532 ; N uni2613 ; G 3819 +U 9748 ; WX 896 ; N uni2614 ; G 3820 +U 9749 ; WX 896 ; N uni2615 ; G 3821 +U 9750 ; WX 896 ; N uni2616 ; G 3822 +U 9751 ; WX 896 ; N uni2617 ; G 3823 +U 9752 ; WX 896 ; N uni2618 ; G 3824 +U 9753 ; WX 896 ; N uni2619 ; G 3825 +U 9754 ; WX 896 ; N uni261A ; G 3826 +U 9755 ; WX 896 ; N uni261B ; G 3827 +U 9756 ; WX 896 ; N uni261C ; G 3828 +U 9757 ; WX 609 ; N uni261D ; G 3829 +U 9758 ; WX 896 ; N uni261E ; G 3830 +U 9759 ; WX 609 ; N uni261F ; G 3831 +U 9760 ; WX 896 ; N uni2620 ; G 3832 +U 9761 ; WX 896 ; N uni2621 ; G 3833 +U 9762 ; WX 896 ; N uni2622 ; G 3834 +U 9763 ; WX 896 ; N uni2623 ; G 3835 +U 9764 ; WX 669 ; N uni2624 ; G 3836 +U 9765 ; WX 746 ; N uni2625 ; G 3837 +U 9766 ; WX 649 ; N uni2626 ; G 3838 +U 9767 ; WX 784 ; N uni2627 ; G 3839 +U 9768 ; WX 545 ; N uni2628 ; G 3840 +U 9769 ; WX 896 ; N uni2629 ; G 3841 +U 9770 ; WX 896 ; N uni262A ; G 3842 +U 9771 ; WX 896 ; N uni262B ; G 3843 +U 9772 ; WX 710 ; N uni262C ; G 3844 +U 9773 ; WX 896 ; N uni262D ; G 3845 +U 9774 ; WX 896 ; N uni262E ; G 3846 +U 9775 ; WX 896 ; N uni262F ; G 3847 +U 9776 ; WX 896 ; N uni2630 ; G 3848 +U 9777 ; WX 896 ; N uni2631 ; G 3849 +U 9778 ; WX 896 ; N uni2632 ; G 3850 +U 9779 ; WX 896 ; N uni2633 ; G 3851 +U 9780 ; WX 896 ; N uni2634 ; G 3852 +U 9781 ; WX 896 ; N uni2635 ; G 3853 +U 9782 ; WX 896 ; N uni2636 ; G 3854 +U 9783 ; WX 896 ; N uni2637 ; G 3855 +U 9784 ; WX 896 ; N uni2638 ; G 3856 +U 9785 ; WX 1042 ; N uni2639 ; G 3857 +U 9786 ; WX 1042 ; N smileface ; G 3858 +U 9787 ; WX 1042 ; N invsmileface ; G 3859 +U 9788 ; WX 896 ; N sun ; G 3860 +U 9789 ; WX 896 ; N uni263D ; G 3861 +U 9790 ; WX 896 ; N uni263E ; G 3862 +U 9791 ; WX 614 ; N uni263F ; G 3863 +U 9792 ; WX 732 ; N female ; G 3864 +U 9793 ; WX 732 ; N uni2641 ; G 3865 +U 9794 ; WX 896 ; N male ; G 3866 +U 9795 ; WX 896 ; N uni2643 ; G 3867 +U 9796 ; WX 896 ; N uni2644 ; G 3868 +U 9797 ; WX 896 ; N uni2645 ; G 3869 +U 9798 ; WX 896 ; N uni2646 ; G 3870 +U 9799 ; WX 896 ; N uni2647 ; G 3871 +U 9800 ; WX 896 ; N uni2648 ; G 3872 +U 9801 ; WX 896 ; N uni2649 ; G 3873 +U 9802 ; WX 896 ; N uni264A ; G 3874 +U 9803 ; WX 896 ; N uni264B ; G 3875 +U 9804 ; WX 896 ; N uni264C ; G 3876 +U 9805 ; WX 896 ; N uni264D ; G 3877 +U 9806 ; WX 896 ; N uni264E ; G 3878 +U 9807 ; WX 896 ; N uni264F ; G 3879 +U 9808 ; WX 896 ; N uni2650 ; G 3880 +U 9809 ; WX 896 ; N uni2651 ; G 3881 +U 9810 ; WX 896 ; N uni2652 ; G 3882 +U 9811 ; WX 896 ; N uni2653 ; G 3883 +U 9812 ; WX 896 ; N uni2654 ; G 3884 +U 9813 ; WX 896 ; N uni2655 ; G 3885 +U 9814 ; WX 896 ; N uni2656 ; G 3886 +U 9815 ; WX 896 ; N uni2657 ; G 3887 +U 9816 ; WX 896 ; N uni2658 ; G 3888 +U 9817 ; WX 896 ; N uni2659 ; G 3889 +U 9818 ; WX 896 ; N uni265A ; G 3890 +U 9819 ; WX 896 ; N uni265B ; G 3891 +U 9820 ; WX 896 ; N uni265C ; G 3892 +U 9821 ; WX 896 ; N uni265D ; G 3893 +U 9822 ; WX 896 ; N uni265E ; G 3894 +U 9823 ; WX 896 ; N uni265F ; G 3895 +U 9824 ; WX 896 ; N spade ; G 3896 +U 9825 ; WX 896 ; N uni2661 ; G 3897 +U 9826 ; WX 896 ; N uni2662 ; G 3898 +U 9827 ; WX 896 ; N club ; G 3899 +U 9828 ; WX 896 ; N uni2664 ; G 3900 +U 9829 ; WX 896 ; N heart ; G 3901 +U 9830 ; WX 896 ; N diamond ; G 3902 +U 9831 ; WX 896 ; N uni2667 ; G 3903 +U 9832 ; WX 896 ; N uni2668 ; G 3904 +U 9833 ; WX 472 ; N uni2669 ; G 3905 +U 9834 ; WX 638 ; N musicalnote ; G 3906 +U 9835 ; WX 896 ; N musicalnotedbl ; G 3907 +U 9836 ; WX 896 ; N uni266C ; G 3908 +U 9837 ; WX 472 ; N uni266D ; G 3909 +U 9838 ; WX 357 ; N uni266E ; G 3910 +U 9839 ; WX 484 ; N uni266F ; G 3911 +U 9840 ; WX 748 ; N uni2670 ; G 3912 +U 9841 ; WX 766 ; N uni2671 ; G 3913 +U 9842 ; WX 896 ; N uni2672 ; G 3914 +U 9843 ; WX 896 ; N uni2673 ; G 3915 +U 9844 ; WX 896 ; N uni2674 ; G 3916 +U 9845 ; WX 896 ; N uni2675 ; G 3917 +U 9846 ; WX 896 ; N uni2676 ; G 3918 +U 9847 ; WX 896 ; N uni2677 ; G 3919 +U 9848 ; WX 896 ; N uni2678 ; G 3920 +U 9849 ; WX 896 ; N uni2679 ; G 3921 +U 9850 ; WX 896 ; N uni267A ; G 3922 +U 9851 ; WX 896 ; N uni267B ; G 3923 +U 9852 ; WX 896 ; N uni267C ; G 3924 +U 9853 ; WX 896 ; N uni267D ; G 3925 +U 9854 ; WX 896 ; N uni267E ; G 3926 +U 9855 ; WX 896 ; N uni267F ; G 3927 +U 9856 ; WX 869 ; N uni2680 ; G 3928 +U 9857 ; WX 869 ; N uni2681 ; G 3929 +U 9858 ; WX 869 ; N uni2682 ; G 3930 +U 9859 ; WX 869 ; N uni2683 ; G 3931 +U 9860 ; WX 869 ; N uni2684 ; G 3932 +U 9861 ; WX 869 ; N uni2685 ; G 3933 +U 9862 ; WX 896 ; N uni2686 ; G 3934 +U 9863 ; WX 896 ; N uni2687 ; G 3935 +U 9864 ; WX 896 ; N uni2688 ; G 3936 +U 9865 ; WX 896 ; N uni2689 ; G 3937 +U 9866 ; WX 896 ; N uni268A ; G 3938 +U 9867 ; WX 896 ; N uni268B ; G 3939 +U 9868 ; WX 896 ; N uni268C ; G 3940 +U 9869 ; WX 896 ; N uni268D ; G 3941 +U 9870 ; WX 896 ; N uni268E ; G 3942 +U 9871 ; WX 896 ; N uni268F ; G 3943 +U 9872 ; WX 896 ; N uni2690 ; G 3944 +U 9873 ; WX 896 ; N uni2691 ; G 3945 +U 9874 ; WX 896 ; N uni2692 ; G 3946 +U 9875 ; WX 896 ; N uni2693 ; G 3947 +U 9876 ; WX 896 ; N uni2694 ; G 3948 +U 9877 ; WX 541 ; N uni2695 ; G 3949 +U 9878 ; WX 896 ; N uni2696 ; G 3950 +U 9879 ; WX 896 ; N uni2697 ; G 3951 +U 9880 ; WX 896 ; N uni2698 ; G 3952 +U 9881 ; WX 896 ; N uni2699 ; G 3953 +U 9882 ; WX 896 ; N uni269A ; G 3954 +U 9883 ; WX 896 ; N uni269B ; G 3955 +U 9884 ; WX 896 ; N uni269C ; G 3956 +U 9886 ; WX 896 ; N uni269E ; G 3957 +U 9887 ; WX 896 ; N uni269F ; G 3958 +U 9888 ; WX 896 ; N uni26A0 ; G 3959 +U 9889 ; WX 702 ; N uni26A1 ; G 3960 +U 9890 ; WX 1004 ; N uni26A2 ; G 3961 +U 9891 ; WX 1089 ; N uni26A3 ; G 3962 +U 9892 ; WX 1175 ; N uni26A4 ; G 3963 +U 9893 ; WX 903 ; N uni26A5 ; G 3964 +U 9894 ; WX 838 ; N uni26A6 ; G 3965 +U 9895 ; WX 838 ; N uni26A7 ; G 3966 +U 9896 ; WX 838 ; N uni26A8 ; G 3967 +U 9897 ; WX 838 ; N uni26A9 ; G 3968 +U 9898 ; WX 838 ; N uni26AA ; G 3969 +U 9899 ; WX 838 ; N uni26AB ; G 3970 +U 9900 ; WX 838 ; N uni26AC ; G 3971 +U 9901 ; WX 838 ; N uni26AD ; G 3972 +U 9902 ; WX 838 ; N uni26AE ; G 3973 +U 9903 ; WX 838 ; N uni26AF ; G 3974 +U 9904 ; WX 844 ; N uni26B0 ; G 3975 +U 9905 ; WX 838 ; N uni26B1 ; G 3976 +U 9906 ; WX 732 ; N uni26B2 ; G 3977 +U 9907 ; WX 732 ; N uni26B3 ; G 3978 +U 9908 ; WX 732 ; N uni26B4 ; G 3979 +U 9909 ; WX 732 ; N uni26B5 ; G 3980 +U 9910 ; WX 850 ; N uni26B6 ; G 3981 +U 9911 ; WX 732 ; N uni26B7 ; G 3982 +U 9912 ; WX 732 ; N uni26B8 ; G 3983 +U 9920 ; WX 838 ; N uni26C0 ; G 3984 +U 9921 ; WX 838 ; N uni26C1 ; G 3985 +U 9922 ; WX 838 ; N uni26C2 ; G 3986 +U 9923 ; WX 838 ; N uni26C3 ; G 3987 +U 9954 ; WX 732 ; N uni26E2 ; G 3988 +U 9985 ; WX 838 ; N uni2701 ; G 3989 +U 9986 ; WX 838 ; N uni2702 ; G 3990 +U 9987 ; WX 838 ; N uni2703 ; G 3991 +U 9988 ; WX 838 ; N uni2704 ; G 3992 +U 9990 ; WX 838 ; N uni2706 ; G 3993 +U 9991 ; WX 838 ; N uni2707 ; G 3994 +U 9992 ; WX 838 ; N uni2708 ; G 3995 +U 9993 ; WX 838 ; N uni2709 ; G 3996 +U 9996 ; WX 838 ; N uni270C ; G 3997 +U 9997 ; WX 838 ; N uni270D ; G 3998 +U 9998 ; WX 838 ; N uni270E ; G 3999 +U 9999 ; WX 838 ; N uni270F ; G 4000 +U 10000 ; WX 838 ; N uni2710 ; G 4001 +U 10001 ; WX 838 ; N uni2711 ; G 4002 +U 10002 ; WX 838 ; N uni2712 ; G 4003 +U 10003 ; WX 838 ; N uni2713 ; G 4004 +U 10004 ; WX 838 ; N uni2714 ; G 4005 +U 10005 ; WX 838 ; N uni2715 ; G 4006 +U 10006 ; WX 838 ; N uni2716 ; G 4007 +U 10007 ; WX 838 ; N uni2717 ; G 4008 +U 10008 ; WX 838 ; N uni2718 ; G 4009 +U 10009 ; WX 838 ; N uni2719 ; G 4010 +U 10010 ; WX 838 ; N uni271A ; G 4011 +U 10011 ; WX 838 ; N uni271B ; G 4012 +U 10012 ; WX 838 ; N uni271C ; G 4013 +U 10013 ; WX 838 ; N uni271D ; G 4014 +U 10014 ; WX 838 ; N uni271E ; G 4015 +U 10015 ; WX 838 ; N uni271F ; G 4016 +U 10016 ; WX 838 ; N uni2720 ; G 4017 +U 10017 ; WX 838 ; N uni2721 ; G 4018 +U 10018 ; WX 838 ; N uni2722 ; G 4019 +U 10019 ; WX 838 ; N uni2723 ; G 4020 +U 10020 ; WX 838 ; N uni2724 ; G 4021 +U 10021 ; WX 838 ; N uni2725 ; G 4022 +U 10022 ; WX 838 ; N uni2726 ; G 4023 +U 10023 ; WX 838 ; N uni2727 ; G 4024 +U 10025 ; WX 838 ; N uni2729 ; G 4025 +U 10026 ; WX 838 ; N uni272A ; G 4026 +U 10027 ; WX 838 ; N uni272B ; G 4027 +U 10028 ; WX 838 ; N uni272C ; G 4028 +U 10029 ; WX 838 ; N uni272D ; G 4029 +U 10030 ; WX 838 ; N uni272E ; G 4030 +U 10031 ; WX 838 ; N uni272F ; G 4031 +U 10032 ; WX 838 ; N uni2730 ; G 4032 +U 10033 ; WX 838 ; N uni2731 ; G 4033 +U 10034 ; WX 838 ; N uni2732 ; G 4034 +U 10035 ; WX 838 ; N uni2733 ; G 4035 +U 10036 ; WX 838 ; N uni2734 ; G 4036 +U 10037 ; WX 838 ; N uni2735 ; G 4037 +U 10038 ; WX 838 ; N uni2736 ; G 4038 +U 10039 ; WX 838 ; N uni2737 ; G 4039 +U 10040 ; WX 838 ; N uni2738 ; G 4040 +U 10041 ; WX 838 ; N uni2739 ; G 4041 +U 10042 ; WX 838 ; N uni273A ; G 4042 +U 10043 ; WX 838 ; N uni273B ; G 4043 +U 10044 ; WX 838 ; N uni273C ; G 4044 +U 10045 ; WX 838 ; N uni273D ; G 4045 +U 10046 ; WX 838 ; N uni273E ; G 4046 +U 10047 ; WX 838 ; N uni273F ; G 4047 +U 10048 ; WX 838 ; N uni2740 ; G 4048 +U 10049 ; WX 838 ; N uni2741 ; G 4049 +U 10050 ; WX 838 ; N uni2742 ; G 4050 +U 10051 ; WX 838 ; N uni2743 ; G 4051 +U 10052 ; WX 838 ; N uni2744 ; G 4052 +U 10053 ; WX 838 ; N uni2745 ; G 4053 +U 10054 ; WX 838 ; N uni2746 ; G 4054 +U 10055 ; WX 838 ; N uni2747 ; G 4055 +U 10056 ; WX 838 ; N uni2748 ; G 4056 +U 10057 ; WX 838 ; N uni2749 ; G 4057 +U 10058 ; WX 838 ; N uni274A ; G 4058 +U 10059 ; WX 838 ; N uni274B ; G 4059 +U 10061 ; WX 896 ; N uni274D ; G 4060 +U 10063 ; WX 896 ; N uni274F ; G 4061 +U 10064 ; WX 896 ; N uni2750 ; G 4062 +U 10065 ; WX 896 ; N uni2751 ; G 4063 +U 10066 ; WX 896 ; N uni2752 ; G 4064 +U 10070 ; WX 896 ; N uni2756 ; G 4065 +U 10072 ; WX 838 ; N uni2758 ; G 4066 +U 10073 ; WX 838 ; N uni2759 ; G 4067 +U 10074 ; WX 838 ; N uni275A ; G 4068 +U 10075 ; WX 322 ; N uni275B ; G 4069 +U 10076 ; WX 322 ; N uni275C ; G 4070 +U 10077 ; WX 538 ; N uni275D ; G 4071 +U 10078 ; WX 538 ; N uni275E ; G 4072 +U 10081 ; WX 838 ; N uni2761 ; G 4073 +U 10082 ; WX 838 ; N uni2762 ; G 4074 +U 10083 ; WX 838 ; N uni2763 ; G 4075 +U 10084 ; WX 838 ; N uni2764 ; G 4076 +U 10085 ; WX 838 ; N uni2765 ; G 4077 +U 10086 ; WX 838 ; N uni2766 ; G 4078 +U 10087 ; WX 838 ; N uni2767 ; G 4079 +U 10088 ; WX 838 ; N uni2768 ; G 4080 +U 10089 ; WX 838 ; N uni2769 ; G 4081 +U 10090 ; WX 838 ; N uni276A ; G 4082 +U 10091 ; WX 838 ; N uni276B ; G 4083 +U 10092 ; WX 838 ; N uni276C ; G 4084 +U 10093 ; WX 838 ; N uni276D ; G 4085 +U 10094 ; WX 838 ; N uni276E ; G 4086 +U 10095 ; WX 838 ; N uni276F ; G 4087 +U 10096 ; WX 838 ; N uni2770 ; G 4088 +U 10097 ; WX 838 ; N uni2771 ; G 4089 +U 10098 ; WX 838 ; N uni2772 ; G 4090 +U 10099 ; WX 838 ; N uni2773 ; G 4091 +U 10100 ; WX 838 ; N uni2774 ; G 4092 +U 10101 ; WX 838 ; N uni2775 ; G 4093 +U 10102 ; WX 896 ; N uni2776 ; G 4094 +U 10103 ; WX 896 ; N uni2777 ; G 4095 +U 10104 ; WX 896 ; N uni2778 ; G 4096 +U 10105 ; WX 896 ; N uni2779 ; G 4097 +U 10106 ; WX 896 ; N uni277A ; G 4098 +U 10107 ; WX 896 ; N uni277B ; G 4099 +U 10108 ; WX 896 ; N uni277C ; G 4100 +U 10109 ; WX 896 ; N uni277D ; G 4101 +U 10110 ; WX 896 ; N uni277E ; G 4102 +U 10111 ; WX 896 ; N uni277F ; G 4103 +U 10112 ; WX 838 ; N uni2780 ; G 4104 +U 10113 ; WX 838 ; N uni2781 ; G 4105 +U 10114 ; WX 838 ; N uni2782 ; G 4106 +U 10115 ; WX 838 ; N uni2783 ; G 4107 +U 10116 ; WX 838 ; N uni2784 ; G 4108 +U 10117 ; WX 838 ; N uni2785 ; G 4109 +U 10118 ; WX 838 ; N uni2786 ; G 4110 +U 10119 ; WX 838 ; N uni2787 ; G 4111 +U 10120 ; WX 838 ; N uni2788 ; G 4112 +U 10121 ; WX 838 ; N uni2789 ; G 4113 +U 10122 ; WX 838 ; N uni278A ; G 4114 +U 10123 ; WX 838 ; N uni278B ; G 4115 +U 10124 ; WX 838 ; N uni278C ; G 4116 +U 10125 ; WX 838 ; N uni278D ; G 4117 +U 10126 ; WX 838 ; N uni278E ; G 4118 +U 10127 ; WX 838 ; N uni278F ; G 4119 +U 10128 ; WX 838 ; N uni2790 ; G 4120 +U 10129 ; WX 838 ; N uni2791 ; G 4121 +U 10130 ; WX 838 ; N uni2792 ; G 4122 +U 10131 ; WX 838 ; N uni2793 ; G 4123 +U 10132 ; WX 838 ; N uni2794 ; G 4124 +U 10136 ; WX 838 ; N uni2798 ; G 4125 +U 10137 ; WX 838 ; N uni2799 ; G 4126 +U 10138 ; WX 838 ; N uni279A ; G 4127 +U 10139 ; WX 838 ; N uni279B ; G 4128 +U 10140 ; WX 838 ; N uni279C ; G 4129 +U 10141 ; WX 838 ; N uni279D ; G 4130 +U 10142 ; WX 838 ; N uni279E ; G 4131 +U 10143 ; WX 838 ; N uni279F ; G 4132 +U 10144 ; WX 838 ; N uni27A0 ; G 4133 +U 10145 ; WX 838 ; N uni27A1 ; G 4134 +U 10146 ; WX 838 ; N uni27A2 ; G 4135 +U 10147 ; WX 838 ; N uni27A3 ; G 4136 +U 10148 ; WX 838 ; N uni27A4 ; G 4137 +U 10149 ; WX 838 ; N uni27A5 ; G 4138 +U 10150 ; WX 838 ; N uni27A6 ; G 4139 +U 10151 ; WX 838 ; N uni27A7 ; G 4140 +U 10152 ; WX 838 ; N uni27A8 ; G 4141 +U 10153 ; WX 838 ; N uni27A9 ; G 4142 +U 10154 ; WX 838 ; N uni27AA ; G 4143 +U 10155 ; WX 838 ; N uni27AB ; G 4144 +U 10156 ; WX 838 ; N uni27AC ; G 4145 +U 10157 ; WX 838 ; N uni27AD ; G 4146 +U 10158 ; WX 838 ; N uni27AE ; G 4147 +U 10159 ; WX 838 ; N uni27AF ; G 4148 +U 10161 ; WX 838 ; N uni27B1 ; G 4149 +U 10162 ; WX 838 ; N uni27B2 ; G 4150 +U 10163 ; WX 838 ; N uni27B3 ; G 4151 +U 10164 ; WX 838 ; N uni27B4 ; G 4152 +U 10165 ; WX 838 ; N uni27B5 ; G 4153 +U 10166 ; WX 838 ; N uni27B6 ; G 4154 +U 10167 ; WX 838 ; N uni27B7 ; G 4155 +U 10168 ; WX 838 ; N uni27B8 ; G 4156 +U 10169 ; WX 838 ; N uni27B9 ; G 4157 +U 10170 ; WX 838 ; N uni27BA ; G 4158 +U 10171 ; WX 838 ; N uni27BB ; G 4159 +U 10172 ; WX 838 ; N uni27BC ; G 4160 +U 10173 ; WX 838 ; N uni27BD ; G 4161 +U 10174 ; WX 838 ; N uni27BE ; G 4162 +U 10181 ; WX 390 ; N uni27C5 ; G 4163 +U 10182 ; WX 390 ; N uni27C6 ; G 4164 +U 10208 ; WX 494 ; N uni27E0 ; G 4165 +U 10214 ; WX 495 ; N uni27E6 ; G 4166 +U 10215 ; WX 495 ; N uni27E7 ; G 4167 +U 10216 ; WX 390 ; N uni27E8 ; G 4168 +U 10217 ; WX 390 ; N uni27E9 ; G 4169 +U 10218 ; WX 556 ; N uni27EA ; G 4170 +U 10219 ; WX 556 ; N uni27EB ; G 4171 +U 10224 ; WX 838 ; N uni27F0 ; G 4172 +U 10225 ; WX 838 ; N uni27F1 ; G 4173 +U 10226 ; WX 838 ; N uni27F2 ; G 4174 +U 10227 ; WX 838 ; N uni27F3 ; G 4175 +U 10228 ; WX 1157 ; N uni27F4 ; G 4176 +U 10229 ; WX 1434 ; N uni27F5 ; G 4177 +U 10230 ; WX 1434 ; N uni27F6 ; G 4178 +U 10231 ; WX 1434 ; N uni27F7 ; G 4179 +U 10232 ; WX 1434 ; N uni27F8 ; G 4180 +U 10233 ; WX 1434 ; N uni27F9 ; G 4181 +U 10234 ; WX 1434 ; N uni27FA ; G 4182 +U 10235 ; WX 1434 ; N uni27FB ; G 4183 +U 10236 ; WX 1434 ; N uni27FC ; G 4184 +U 10237 ; WX 1434 ; N uni27FD ; G 4185 +U 10238 ; WX 1434 ; N uni27FE ; G 4186 +U 10239 ; WX 1434 ; N uni27FF ; G 4187 +U 10240 ; WX 732 ; N uni2800 ; G 4188 +U 10241 ; WX 732 ; N uni2801 ; G 4189 +U 10242 ; WX 732 ; N uni2802 ; G 4190 +U 10243 ; WX 732 ; N uni2803 ; G 4191 +U 10244 ; WX 732 ; N uni2804 ; G 4192 +U 10245 ; WX 732 ; N uni2805 ; G 4193 +U 10246 ; WX 732 ; N uni2806 ; G 4194 +U 10247 ; WX 732 ; N uni2807 ; G 4195 +U 10248 ; WX 732 ; N uni2808 ; G 4196 +U 10249 ; WX 732 ; N uni2809 ; G 4197 +U 10250 ; WX 732 ; N uni280A ; G 4198 +U 10251 ; WX 732 ; N uni280B ; G 4199 +U 10252 ; WX 732 ; N uni280C ; G 4200 +U 10253 ; WX 732 ; N uni280D ; G 4201 +U 10254 ; WX 732 ; N uni280E ; G 4202 +U 10255 ; WX 732 ; N uni280F ; G 4203 +U 10256 ; WX 732 ; N uni2810 ; G 4204 +U 10257 ; WX 732 ; N uni2811 ; G 4205 +U 10258 ; WX 732 ; N uni2812 ; G 4206 +U 10259 ; WX 732 ; N uni2813 ; G 4207 +U 10260 ; WX 732 ; N uni2814 ; G 4208 +U 10261 ; WX 732 ; N uni2815 ; G 4209 +U 10262 ; WX 732 ; N uni2816 ; G 4210 +U 10263 ; WX 732 ; N uni2817 ; G 4211 +U 10264 ; WX 732 ; N uni2818 ; G 4212 +U 10265 ; WX 732 ; N uni2819 ; G 4213 +U 10266 ; WX 732 ; N uni281A ; G 4214 +U 10267 ; WX 732 ; N uni281B ; G 4215 +U 10268 ; WX 732 ; N uni281C ; G 4216 +U 10269 ; WX 732 ; N uni281D ; G 4217 +U 10270 ; WX 732 ; N uni281E ; G 4218 +U 10271 ; WX 732 ; N uni281F ; G 4219 +U 10272 ; WX 732 ; N uni2820 ; G 4220 +U 10273 ; WX 732 ; N uni2821 ; G 4221 +U 10274 ; WX 732 ; N uni2822 ; G 4222 +U 10275 ; WX 732 ; N uni2823 ; G 4223 +U 10276 ; WX 732 ; N uni2824 ; G 4224 +U 10277 ; WX 732 ; N uni2825 ; G 4225 +U 10278 ; WX 732 ; N uni2826 ; G 4226 +U 10279 ; WX 732 ; N uni2827 ; G 4227 +U 10280 ; WX 732 ; N uni2828 ; G 4228 +U 10281 ; WX 732 ; N uni2829 ; G 4229 +U 10282 ; WX 732 ; N uni282A ; G 4230 +U 10283 ; WX 732 ; N uni282B ; G 4231 +U 10284 ; WX 732 ; N uni282C ; G 4232 +U 10285 ; WX 732 ; N uni282D ; G 4233 +U 10286 ; WX 732 ; N uni282E ; G 4234 +U 10287 ; WX 732 ; N uni282F ; G 4235 +U 10288 ; WX 732 ; N uni2830 ; G 4236 +U 10289 ; WX 732 ; N uni2831 ; G 4237 +U 10290 ; WX 732 ; N uni2832 ; G 4238 +U 10291 ; WX 732 ; N uni2833 ; G 4239 +U 10292 ; WX 732 ; N uni2834 ; G 4240 +U 10293 ; WX 732 ; N uni2835 ; G 4241 +U 10294 ; WX 732 ; N uni2836 ; G 4242 +U 10295 ; WX 732 ; N uni2837 ; G 4243 +U 10296 ; WX 732 ; N uni2838 ; G 4244 +U 10297 ; WX 732 ; N uni2839 ; G 4245 +U 10298 ; WX 732 ; N uni283A ; G 4246 +U 10299 ; WX 732 ; N uni283B ; G 4247 +U 10300 ; WX 732 ; N uni283C ; G 4248 +U 10301 ; WX 732 ; N uni283D ; G 4249 +U 10302 ; WX 732 ; N uni283E ; G 4250 +U 10303 ; WX 732 ; N uni283F ; G 4251 +U 10304 ; WX 732 ; N uni2840 ; G 4252 +U 10305 ; WX 732 ; N uni2841 ; G 4253 +U 10306 ; WX 732 ; N uni2842 ; G 4254 +U 10307 ; WX 732 ; N uni2843 ; G 4255 +U 10308 ; WX 732 ; N uni2844 ; G 4256 +U 10309 ; WX 732 ; N uni2845 ; G 4257 +U 10310 ; WX 732 ; N uni2846 ; G 4258 +U 10311 ; WX 732 ; N uni2847 ; G 4259 +U 10312 ; WX 732 ; N uni2848 ; G 4260 +U 10313 ; WX 732 ; N uni2849 ; G 4261 +U 10314 ; WX 732 ; N uni284A ; G 4262 +U 10315 ; WX 732 ; N uni284B ; G 4263 +U 10316 ; WX 732 ; N uni284C ; G 4264 +U 10317 ; WX 732 ; N uni284D ; G 4265 +U 10318 ; WX 732 ; N uni284E ; G 4266 +U 10319 ; WX 732 ; N uni284F ; G 4267 +U 10320 ; WX 732 ; N uni2850 ; G 4268 +U 10321 ; WX 732 ; N uni2851 ; G 4269 +U 10322 ; WX 732 ; N uni2852 ; G 4270 +U 10323 ; WX 732 ; N uni2853 ; G 4271 +U 10324 ; WX 732 ; N uni2854 ; G 4272 +U 10325 ; WX 732 ; N uni2855 ; G 4273 +U 10326 ; WX 732 ; N uni2856 ; G 4274 +U 10327 ; WX 732 ; N uni2857 ; G 4275 +U 10328 ; WX 732 ; N uni2858 ; G 4276 +U 10329 ; WX 732 ; N uni2859 ; G 4277 +U 10330 ; WX 732 ; N uni285A ; G 4278 +U 10331 ; WX 732 ; N uni285B ; G 4279 +U 10332 ; WX 732 ; N uni285C ; G 4280 +U 10333 ; WX 732 ; N uni285D ; G 4281 +U 10334 ; WX 732 ; N uni285E ; G 4282 +U 10335 ; WX 732 ; N uni285F ; G 4283 +U 10336 ; WX 732 ; N uni2860 ; G 4284 +U 10337 ; WX 732 ; N uni2861 ; G 4285 +U 10338 ; WX 732 ; N uni2862 ; G 4286 +U 10339 ; WX 732 ; N uni2863 ; G 4287 +U 10340 ; WX 732 ; N uni2864 ; G 4288 +U 10341 ; WX 732 ; N uni2865 ; G 4289 +U 10342 ; WX 732 ; N uni2866 ; G 4290 +U 10343 ; WX 732 ; N uni2867 ; G 4291 +U 10344 ; WX 732 ; N uni2868 ; G 4292 +U 10345 ; WX 732 ; N uni2869 ; G 4293 +U 10346 ; WX 732 ; N uni286A ; G 4294 +U 10347 ; WX 732 ; N uni286B ; G 4295 +U 10348 ; WX 732 ; N uni286C ; G 4296 +U 10349 ; WX 732 ; N uni286D ; G 4297 +U 10350 ; WX 732 ; N uni286E ; G 4298 +U 10351 ; WX 732 ; N uni286F ; G 4299 +U 10352 ; WX 732 ; N uni2870 ; G 4300 +U 10353 ; WX 732 ; N uni2871 ; G 4301 +U 10354 ; WX 732 ; N uni2872 ; G 4302 +U 10355 ; WX 732 ; N uni2873 ; G 4303 +U 10356 ; WX 732 ; N uni2874 ; G 4304 +U 10357 ; WX 732 ; N uni2875 ; G 4305 +U 10358 ; WX 732 ; N uni2876 ; G 4306 +U 10359 ; WX 732 ; N uni2877 ; G 4307 +U 10360 ; WX 732 ; N uni2878 ; G 4308 +U 10361 ; WX 732 ; N uni2879 ; G 4309 +U 10362 ; WX 732 ; N uni287A ; G 4310 +U 10363 ; WX 732 ; N uni287B ; G 4311 +U 10364 ; WX 732 ; N uni287C ; G 4312 +U 10365 ; WX 732 ; N uni287D ; G 4313 +U 10366 ; WX 732 ; N uni287E ; G 4314 +U 10367 ; WX 732 ; N uni287F ; G 4315 +U 10368 ; WX 732 ; N uni2880 ; G 4316 +U 10369 ; WX 732 ; N uni2881 ; G 4317 +U 10370 ; WX 732 ; N uni2882 ; G 4318 +U 10371 ; WX 732 ; N uni2883 ; G 4319 +U 10372 ; WX 732 ; N uni2884 ; G 4320 +U 10373 ; WX 732 ; N uni2885 ; G 4321 +U 10374 ; WX 732 ; N uni2886 ; G 4322 +U 10375 ; WX 732 ; N uni2887 ; G 4323 +U 10376 ; WX 732 ; N uni2888 ; G 4324 +U 10377 ; WX 732 ; N uni2889 ; G 4325 +U 10378 ; WX 732 ; N uni288A ; G 4326 +U 10379 ; WX 732 ; N uni288B ; G 4327 +U 10380 ; WX 732 ; N uni288C ; G 4328 +U 10381 ; WX 732 ; N uni288D ; G 4329 +U 10382 ; WX 732 ; N uni288E ; G 4330 +U 10383 ; WX 732 ; N uni288F ; G 4331 +U 10384 ; WX 732 ; N uni2890 ; G 4332 +U 10385 ; WX 732 ; N uni2891 ; G 4333 +U 10386 ; WX 732 ; N uni2892 ; G 4334 +U 10387 ; WX 732 ; N uni2893 ; G 4335 +U 10388 ; WX 732 ; N uni2894 ; G 4336 +U 10389 ; WX 732 ; N uni2895 ; G 4337 +U 10390 ; WX 732 ; N uni2896 ; G 4338 +U 10391 ; WX 732 ; N uni2897 ; G 4339 +U 10392 ; WX 732 ; N uni2898 ; G 4340 +U 10393 ; WX 732 ; N uni2899 ; G 4341 +U 10394 ; WX 732 ; N uni289A ; G 4342 +U 10395 ; WX 732 ; N uni289B ; G 4343 +U 10396 ; WX 732 ; N uni289C ; G 4344 +U 10397 ; WX 732 ; N uni289D ; G 4345 +U 10398 ; WX 732 ; N uni289E ; G 4346 +U 10399 ; WX 732 ; N uni289F ; G 4347 +U 10400 ; WX 732 ; N uni28A0 ; G 4348 +U 10401 ; WX 732 ; N uni28A1 ; G 4349 +U 10402 ; WX 732 ; N uni28A2 ; G 4350 +U 10403 ; WX 732 ; N uni28A3 ; G 4351 +U 10404 ; WX 732 ; N uni28A4 ; G 4352 +U 10405 ; WX 732 ; N uni28A5 ; G 4353 +U 10406 ; WX 732 ; N uni28A6 ; G 4354 +U 10407 ; WX 732 ; N uni28A7 ; G 4355 +U 10408 ; WX 732 ; N uni28A8 ; G 4356 +U 10409 ; WX 732 ; N uni28A9 ; G 4357 +U 10410 ; WX 732 ; N uni28AA ; G 4358 +U 10411 ; WX 732 ; N uni28AB ; G 4359 +U 10412 ; WX 732 ; N uni28AC ; G 4360 +U 10413 ; WX 732 ; N uni28AD ; G 4361 +U 10414 ; WX 732 ; N uni28AE ; G 4362 +U 10415 ; WX 732 ; N uni28AF ; G 4363 +U 10416 ; WX 732 ; N uni28B0 ; G 4364 +U 10417 ; WX 732 ; N uni28B1 ; G 4365 +U 10418 ; WX 732 ; N uni28B2 ; G 4366 +U 10419 ; WX 732 ; N uni28B3 ; G 4367 +U 10420 ; WX 732 ; N uni28B4 ; G 4368 +U 10421 ; WX 732 ; N uni28B5 ; G 4369 +U 10422 ; WX 732 ; N uni28B6 ; G 4370 +U 10423 ; WX 732 ; N uni28B7 ; G 4371 +U 10424 ; WX 732 ; N uni28B8 ; G 4372 +U 10425 ; WX 732 ; N uni28B9 ; G 4373 +U 10426 ; WX 732 ; N uni28BA ; G 4374 +U 10427 ; WX 732 ; N uni28BB ; G 4375 +U 10428 ; WX 732 ; N uni28BC ; G 4376 +U 10429 ; WX 732 ; N uni28BD ; G 4377 +U 10430 ; WX 732 ; N uni28BE ; G 4378 +U 10431 ; WX 732 ; N uni28BF ; G 4379 +U 10432 ; WX 732 ; N uni28C0 ; G 4380 +U 10433 ; WX 732 ; N uni28C1 ; G 4381 +U 10434 ; WX 732 ; N uni28C2 ; G 4382 +U 10435 ; WX 732 ; N uni28C3 ; G 4383 +U 10436 ; WX 732 ; N uni28C4 ; G 4384 +U 10437 ; WX 732 ; N uni28C5 ; G 4385 +U 10438 ; WX 732 ; N uni28C6 ; G 4386 +U 10439 ; WX 732 ; N uni28C7 ; G 4387 +U 10440 ; WX 732 ; N uni28C8 ; G 4388 +U 10441 ; WX 732 ; N uni28C9 ; G 4389 +U 10442 ; WX 732 ; N uni28CA ; G 4390 +U 10443 ; WX 732 ; N uni28CB ; G 4391 +U 10444 ; WX 732 ; N uni28CC ; G 4392 +U 10445 ; WX 732 ; N uni28CD ; G 4393 +U 10446 ; WX 732 ; N uni28CE ; G 4394 +U 10447 ; WX 732 ; N uni28CF ; G 4395 +U 10448 ; WX 732 ; N uni28D0 ; G 4396 +U 10449 ; WX 732 ; N uni28D1 ; G 4397 +U 10450 ; WX 732 ; N uni28D2 ; G 4398 +U 10451 ; WX 732 ; N uni28D3 ; G 4399 +U 10452 ; WX 732 ; N uni28D4 ; G 4400 +U 10453 ; WX 732 ; N uni28D5 ; G 4401 +U 10454 ; WX 732 ; N uni28D6 ; G 4402 +U 10455 ; WX 732 ; N uni28D7 ; G 4403 +U 10456 ; WX 732 ; N uni28D8 ; G 4404 +U 10457 ; WX 732 ; N uni28D9 ; G 4405 +U 10458 ; WX 732 ; N uni28DA ; G 4406 +U 10459 ; WX 732 ; N uni28DB ; G 4407 +U 10460 ; WX 732 ; N uni28DC ; G 4408 +U 10461 ; WX 732 ; N uni28DD ; G 4409 +U 10462 ; WX 732 ; N uni28DE ; G 4410 +U 10463 ; WX 732 ; N uni28DF ; G 4411 +U 10464 ; WX 732 ; N uni28E0 ; G 4412 +U 10465 ; WX 732 ; N uni28E1 ; G 4413 +U 10466 ; WX 732 ; N uni28E2 ; G 4414 +U 10467 ; WX 732 ; N uni28E3 ; G 4415 +U 10468 ; WX 732 ; N uni28E4 ; G 4416 +U 10469 ; WX 732 ; N uni28E5 ; G 4417 +U 10470 ; WX 732 ; N uni28E6 ; G 4418 +U 10471 ; WX 732 ; N uni28E7 ; G 4419 +U 10472 ; WX 732 ; N uni28E8 ; G 4420 +U 10473 ; WX 732 ; N uni28E9 ; G 4421 +U 10474 ; WX 732 ; N uni28EA ; G 4422 +U 10475 ; WX 732 ; N uni28EB ; G 4423 +U 10476 ; WX 732 ; N uni28EC ; G 4424 +U 10477 ; WX 732 ; N uni28ED ; G 4425 +U 10478 ; WX 732 ; N uni28EE ; G 4426 +U 10479 ; WX 732 ; N uni28EF ; G 4427 +U 10480 ; WX 732 ; N uni28F0 ; G 4428 +U 10481 ; WX 732 ; N uni28F1 ; G 4429 +U 10482 ; WX 732 ; N uni28F2 ; G 4430 +U 10483 ; WX 732 ; N uni28F3 ; G 4431 +U 10484 ; WX 732 ; N uni28F4 ; G 4432 +U 10485 ; WX 732 ; N uni28F5 ; G 4433 +U 10486 ; WX 732 ; N uni28F6 ; G 4434 +U 10487 ; WX 732 ; N uni28F7 ; G 4435 +U 10488 ; WX 732 ; N uni28F8 ; G 4436 +U 10489 ; WX 732 ; N uni28F9 ; G 4437 +U 10490 ; WX 732 ; N uni28FA ; G 4438 +U 10491 ; WX 732 ; N uni28FB ; G 4439 +U 10492 ; WX 732 ; N uni28FC ; G 4440 +U 10493 ; WX 732 ; N uni28FD ; G 4441 +U 10494 ; WX 732 ; N uni28FE ; G 4442 +U 10495 ; WX 732 ; N uni28FF ; G 4443 +U 10502 ; WX 838 ; N uni2906 ; G 4444 +U 10503 ; WX 838 ; N uni2907 ; G 4445 +U 10506 ; WX 838 ; N uni290A ; G 4446 +U 10507 ; WX 838 ; N uni290B ; G 4447 +U 10560 ; WX 683 ; N uni2940 ; G 4448 +U 10561 ; WX 683 ; N uni2941 ; G 4449 +U 10627 ; WX 734 ; N uni2983 ; G 4450 +U 10628 ; WX 734 ; N uni2984 ; G 4451 +U 10702 ; WX 838 ; N uni29CE ; G 4452 +U 10703 ; WX 1000 ; N uni29CF ; G 4453 +U 10704 ; WX 1000 ; N uni29D0 ; G 4454 +U 10705 ; WX 1000 ; N uni29D1 ; G 4455 +U 10706 ; WX 1000 ; N uni29D2 ; G 4456 +U 10707 ; WX 1000 ; N uni29D3 ; G 4457 +U 10708 ; WX 1000 ; N uni29D4 ; G 4458 +U 10709 ; WX 1000 ; N uni29D5 ; G 4459 +U 10731 ; WX 494 ; N uni29EB ; G 4460 +U 10746 ; WX 838 ; N uni29FA ; G 4461 +U 10747 ; WX 838 ; N uni29FB ; G 4462 +U 10752 ; WX 1000 ; N uni2A00 ; G 4463 +U 10753 ; WX 1000 ; N uni2A01 ; G 4464 +U 10754 ; WX 1000 ; N uni2A02 ; G 4465 +U 10764 ; WX 1325 ; N uni2A0C ; G 4466 +U 10765 ; WX 521 ; N uni2A0D ; G 4467 +U 10766 ; WX 521 ; N uni2A0E ; G 4468 +U 10767 ; WX 521 ; N uni2A0F ; G 4469 +U 10768 ; WX 521 ; N uni2A10 ; G 4470 +U 10769 ; WX 521 ; N uni2A11 ; G 4471 +U 10770 ; WX 521 ; N uni2A12 ; G 4472 +U 10771 ; WX 521 ; N uni2A13 ; G 4473 +U 10772 ; WX 521 ; N uni2A14 ; G 4474 +U 10773 ; WX 521 ; N uni2A15 ; G 4475 +U 10774 ; WX 521 ; N uni2A16 ; G 4476 +U 10775 ; WX 521 ; N uni2A17 ; G 4477 +U 10776 ; WX 521 ; N uni2A18 ; G 4478 +U 10777 ; WX 521 ; N uni2A19 ; G 4479 +U 10778 ; WX 521 ; N uni2A1A ; G 4480 +U 10779 ; WX 521 ; N uni2A1B ; G 4481 +U 10780 ; WX 521 ; N uni2A1C ; G 4482 +U 10799 ; WX 838 ; N uni2A2F ; G 4483 +U 10858 ; WX 838 ; N uni2A6A ; G 4484 +U 10859 ; WX 838 ; N uni2A6B ; G 4485 +U 10877 ; WX 838 ; N uni2A7D ; G 4486 +U 10878 ; WX 838 ; N uni2A7E ; G 4487 +U 10879 ; WX 838 ; N uni2A7F ; G 4488 +U 10880 ; WX 838 ; N uni2A80 ; G 4489 +U 10881 ; WX 838 ; N uni2A81 ; G 4490 +U 10882 ; WX 838 ; N uni2A82 ; G 4491 +U 10883 ; WX 838 ; N uni2A83 ; G 4492 +U 10884 ; WX 838 ; N uni2A84 ; G 4493 +U 10885 ; WX 838 ; N uni2A85 ; G 4494 +U 10886 ; WX 838 ; N uni2A86 ; G 4495 +U 10887 ; WX 838 ; N uni2A87 ; G 4496 +U 10888 ; WX 838 ; N uni2A88 ; G 4497 +U 10889 ; WX 838 ; N uni2A89 ; G 4498 +U 10890 ; WX 838 ; N uni2A8A ; G 4499 +U 10891 ; WX 838 ; N uni2A8B ; G 4500 +U 10892 ; WX 838 ; N uni2A8C ; G 4501 +U 10893 ; WX 838 ; N uni2A8D ; G 4502 +U 10894 ; WX 838 ; N uni2A8E ; G 4503 +U 10895 ; WX 838 ; N uni2A8F ; G 4504 +U 10896 ; WX 838 ; N uni2A90 ; G 4505 +U 10897 ; WX 838 ; N uni2A91 ; G 4506 +U 10898 ; WX 838 ; N uni2A92 ; G 4507 +U 10899 ; WX 838 ; N uni2A93 ; G 4508 +U 10900 ; WX 838 ; N uni2A94 ; G 4509 +U 10901 ; WX 838 ; N uni2A95 ; G 4510 +U 10902 ; WX 838 ; N uni2A96 ; G 4511 +U 10903 ; WX 838 ; N uni2A97 ; G 4512 +U 10904 ; WX 838 ; N uni2A98 ; G 4513 +U 10905 ; WX 838 ; N uni2A99 ; G 4514 +U 10906 ; WX 838 ; N uni2A9A ; G 4515 +U 10907 ; WX 838 ; N uni2A9B ; G 4516 +U 10908 ; WX 838 ; N uni2A9C ; G 4517 +U 10909 ; WX 838 ; N uni2A9D ; G 4518 +U 10910 ; WX 838 ; N uni2A9E ; G 4519 +U 10911 ; WX 838 ; N uni2A9F ; G 4520 +U 10912 ; WX 838 ; N uni2AA0 ; G 4521 +U 10926 ; WX 838 ; N uni2AAE ; G 4522 +U 10927 ; WX 838 ; N uni2AAF ; G 4523 +U 10928 ; WX 838 ; N uni2AB0 ; G 4524 +U 10929 ; WX 838 ; N uni2AB1 ; G 4525 +U 10930 ; WX 838 ; N uni2AB2 ; G 4526 +U 10931 ; WX 838 ; N uni2AB3 ; G 4527 +U 10932 ; WX 838 ; N uni2AB4 ; G 4528 +U 10933 ; WX 838 ; N uni2AB5 ; G 4529 +U 10934 ; WX 838 ; N uni2AB6 ; G 4530 +U 10935 ; WX 838 ; N uni2AB7 ; G 4531 +U 10936 ; WX 838 ; N uni2AB8 ; G 4532 +U 10937 ; WX 838 ; N uni2AB9 ; G 4533 +U 10938 ; WX 838 ; N uni2ABA ; G 4534 +U 11001 ; WX 838 ; N uni2AF9 ; G 4535 +U 11002 ; WX 838 ; N uni2AFA ; G 4536 +U 11008 ; WX 838 ; N uni2B00 ; G 4537 +U 11009 ; WX 838 ; N uni2B01 ; G 4538 +U 11010 ; WX 838 ; N uni2B02 ; G 4539 +U 11011 ; WX 838 ; N uni2B03 ; G 4540 +U 11012 ; WX 838 ; N uni2B04 ; G 4541 +U 11013 ; WX 838 ; N uni2B05 ; G 4542 +U 11014 ; WX 838 ; N uni2B06 ; G 4543 +U 11015 ; WX 838 ; N uni2B07 ; G 4544 +U 11016 ; WX 838 ; N uni2B08 ; G 4545 +U 11017 ; WX 838 ; N uni2B09 ; G 4546 +U 11018 ; WX 838 ; N uni2B0A ; G 4547 +U 11019 ; WX 838 ; N uni2B0B ; G 4548 +U 11020 ; WX 838 ; N uni2B0C ; G 4549 +U 11021 ; WX 838 ; N uni2B0D ; G 4550 +U 11022 ; WX 836 ; N uni2B0E ; G 4551 +U 11023 ; WX 836 ; N uni2B0F ; G 4552 +U 11024 ; WX 836 ; N uni2B10 ; G 4553 +U 11025 ; WX 836 ; N uni2B11 ; G 4554 +U 11026 ; WX 945 ; N uni2B12 ; G 4555 +U 11027 ; WX 945 ; N uni2B13 ; G 4556 +U 11028 ; WX 945 ; N uni2B14 ; G 4557 +U 11029 ; WX 945 ; N uni2B15 ; G 4558 +U 11030 ; WX 769 ; N uni2B16 ; G 4559 +U 11031 ; WX 769 ; N uni2B17 ; G 4560 +U 11032 ; WX 769 ; N uni2B18 ; G 4561 +U 11033 ; WX 769 ; N uni2B19 ; G 4562 +U 11034 ; WX 945 ; N uni2B1A ; G 4563 +U 11039 ; WX 869 ; N uni2B1F ; G 4564 +U 11040 ; WX 869 ; N uni2B20 ; G 4565 +U 11041 ; WX 873 ; N uni2B21 ; G 4566 +U 11042 ; WX 873 ; N uni2B22 ; G 4567 +U 11043 ; WX 873 ; N uni2B23 ; G 4568 +U 11044 ; WX 1119 ; N uni2B24 ; G 4569 +U 11091 ; WX 869 ; N uni2B53 ; G 4570 +U 11092 ; WX 869 ; N uni2B54 ; G 4571 +U 11360 ; WX 557 ; N uni2C60 ; G 4572 +U 11361 ; WX 278 ; N uni2C61 ; G 4573 +U 11362 ; WX 557 ; N uni2C62 ; G 4574 +U 11363 ; WX 603 ; N uni2C63 ; G 4575 +U 11364 ; WX 695 ; N uni2C64 ; G 4576 +U 11365 ; WX 613 ; N uni2C65 ; G 4577 +U 11366 ; WX 392 ; N uni2C66 ; G 4578 +U 11367 ; WX 752 ; N uni2C67 ; G 4579 +U 11368 ; WX 634 ; N uni2C68 ; G 4580 +U 11369 ; WX 656 ; N uni2C69 ; G 4581 +U 11370 ; WX 579 ; N uni2C6A ; G 4582 +U 11371 ; WX 685 ; N uni2C6B ; G 4583 +U 11372 ; WX 525 ; N uni2C6C ; G 4584 +U 11373 ; WX 781 ; N uni2C6D ; G 4585 +U 11374 ; WX 863 ; N uni2C6E ; G 4586 +U 11375 ; WX 684 ; N uni2C6F ; G 4587 +U 11376 ; WX 781 ; N uni2C70 ; G 4588 +U 11377 ; WX 734 ; N uni2C71 ; G 4589 +U 11378 ; WX 1128 ; N uni2C72 ; G 4590 +U 11379 ; WX 961 ; N uni2C73 ; G 4591 +U 11380 ; WX 592 ; N uni2C74 ; G 4592 +U 11381 ; WX 654 ; N uni2C75 ; G 4593 +U 11382 ; WX 568 ; N uni2C76 ; G 4594 +U 11383 ; WX 660 ; N uni2C77 ; G 4595 +U 11385 ; WX 414 ; N uni2C79 ; G 4596 +U 11386 ; WX 612 ; N uni2C7A ; G 4597 +U 11387 ; WX 491 ; N uni2C7B ; G 4598 +U 11388 ; WX 175 ; N uni2C7C ; G 4599 +U 11389 ; WX 431 ; N uni2C7D ; G 4600 +U 11390 ; WX 635 ; N uni2C7E ; G 4601 +U 11391 ; WX 685 ; N uni2C7F ; G 4602 +U 11520 ; WX 591 ; N uni2D00 ; G 4603 +U 11521 ; WX 595 ; N uni2D01 ; G 4604 +U 11522 ; WX 564 ; N uni2D02 ; G 4605 +U 11523 ; WX 602 ; N uni2D03 ; G 4606 +U 11524 ; WX 587 ; N uni2D04 ; G 4607 +U 11525 ; WX 911 ; N uni2D05 ; G 4608 +U 11526 ; WX 626 ; N uni2D06 ; G 4609 +U 11527 ; WX 952 ; N uni2D07 ; G 4610 +U 11528 ; WX 595 ; N uni2D08 ; G 4611 +U 11529 ; WX 607 ; N uni2D09 ; G 4612 +U 11530 ; WX 954 ; N uni2D0A ; G 4613 +U 11531 ; WX 620 ; N uni2D0B ; G 4614 +U 11532 ; WX 595 ; N uni2D0C ; G 4615 +U 11533 ; WX 926 ; N uni2D0D ; G 4616 +U 11534 ; WX 595 ; N uni2D0E ; G 4617 +U 11535 ; WX 806 ; N uni2D0F ; G 4618 +U 11536 ; WX 931 ; N uni2D10 ; G 4619 +U 11537 ; WX 584 ; N uni2D11 ; G 4620 +U 11538 ; WX 592 ; N uni2D12 ; G 4621 +U 11539 ; WX 923 ; N uni2D13 ; G 4622 +U 11540 ; WX 953 ; N uni2D14 ; G 4623 +U 11541 ; WX 828 ; N uni2D15 ; G 4624 +U 11542 ; WX 596 ; N uni2D16 ; G 4625 +U 11543 ; WX 595 ; N uni2D17 ; G 4626 +U 11544 ; WX 590 ; N uni2D18 ; G 4627 +U 11545 ; WX 592 ; N uni2D19 ; G 4628 +U 11546 ; WX 592 ; N uni2D1A ; G 4629 +U 11547 ; WX 621 ; N uni2D1B ; G 4630 +U 11548 ; WX 920 ; N uni2D1C ; G 4631 +U 11549 ; WX 589 ; N uni2D1D ; G 4632 +U 11550 ; WX 586 ; N uni2D1E ; G 4633 +U 11551 ; WX 581 ; N uni2D1F ; G 4634 +U 11552 ; WX 914 ; N uni2D20 ; G 4635 +U 11553 ; WX 596 ; N uni2D21 ; G 4636 +U 11554 ; WX 595 ; N uni2D22 ; G 4637 +U 11555 ; WX 592 ; N uni2D23 ; G 4638 +U 11556 ; WX 642 ; N uni2D24 ; G 4639 +U 11557 ; WX 901 ; N uni2D25 ; G 4640 +U 11568 ; WX 646 ; N uni2D30 ; G 4641 +U 11569 ; WX 888 ; N uni2D31 ; G 4642 +U 11570 ; WX 888 ; N uni2D32 ; G 4643 +U 11571 ; WX 682 ; N uni2D33 ; G 4644 +U 11572 ; WX 684 ; N uni2D34 ; G 4645 +U 11573 ; WX 635 ; N uni2D35 ; G 4646 +U 11574 ; WX 562 ; N uni2D36 ; G 4647 +U 11575 ; WX 684 ; N uni2D37 ; G 4648 +U 11576 ; WX 684 ; N uni2D38 ; G 4649 +U 11577 ; WX 632 ; N uni2D39 ; G 4650 +U 11578 ; WX 632 ; N uni2D3A ; G 4651 +U 11579 ; WX 683 ; N uni2D3B ; G 4652 +U 11580 ; WX 875 ; N uni2D3C ; G 4653 +U 11581 ; WX 685 ; N uni2D3D ; G 4654 +U 11582 ; WX 491 ; N uni2D3E ; G 4655 +U 11583 ; WX 685 ; N uni2D3F ; G 4656 +U 11584 ; WX 888 ; N uni2D40 ; G 4657 +U 11585 ; WX 888 ; N uni2D41 ; G 4658 +U 11586 ; WX 300 ; N uni2D42 ; G 4659 +U 11587 ; WX 627 ; N uni2D43 ; G 4660 +U 11588 ; WX 752 ; N uni2D44 ; G 4661 +U 11589 ; WX 656 ; N uni2D45 ; G 4662 +U 11590 ; WX 527 ; N uni2D46 ; G 4663 +U 11591 ; WX 685 ; N uni2D47 ; G 4664 +U 11592 ; WX 645 ; N uni2D48 ; G 4665 +U 11593 ; WX 632 ; N uni2D49 ; G 4666 +U 11594 ; WX 502 ; N uni2D4A ; G 4667 +U 11595 ; WX 953 ; N uni2D4B ; G 4668 +U 11596 ; WX 778 ; N uni2D4C ; G 4669 +U 11597 ; WX 748 ; N uni2D4D ; G 4670 +U 11598 ; WX 621 ; N uni2D4E ; G 4671 +U 11599 ; WX 295 ; N uni2D4F ; G 4672 +U 11600 ; WX 778 ; N uni2D50 ; G 4673 +U 11601 ; WX 295 ; N uni2D51 ; G 4674 +U 11602 ; WX 752 ; N uni2D52 ; G 4675 +U 11603 ; WX 633 ; N uni2D53 ; G 4676 +U 11604 ; WX 888 ; N uni2D54 ; G 4677 +U 11605 ; WX 888 ; N uni2D55 ; G 4678 +U 11606 ; WX 752 ; N uni2D56 ; G 4679 +U 11607 ; WX 320 ; N uni2D57 ; G 4680 +U 11608 ; WX 749 ; N uni2D58 ; G 4681 +U 11609 ; WX 888 ; N uni2D59 ; G 4682 +U 11610 ; WX 888 ; N uni2D5A ; G 4683 +U 11611 ; WX 698 ; N uni2D5B ; G 4684 +U 11612 ; WX 768 ; N uni2D5C ; G 4685 +U 11613 ; WX 685 ; N uni2D5D ; G 4686 +U 11614 ; WX 698 ; N uni2D5E ; G 4687 +U 11615 ; WX 622 ; N uni2D5F ; G 4688 +U 11616 ; WX 684 ; N uni2D60 ; G 4689 +U 11617 ; WX 752 ; N uni2D61 ; G 4690 +U 11618 ; WX 632 ; N uni2D62 ; G 4691 +U 11619 ; WX 788 ; N uni2D63 ; G 4692 +U 11620 ; WX 567 ; N uni2D64 ; G 4693 +U 11621 ; WX 788 ; N uni2D65 ; G 4694 +U 11631 ; WX 515 ; N uni2D6F ; G 4695 +U 11800 ; WX 531 ; N uni2E18 ; G 4696 +U 11807 ; WX 838 ; N uni2E1F ; G 4697 +U 11810 ; WX 390 ; N uni2E22 ; G 4698 +U 11811 ; WX 390 ; N uni2E23 ; G 4699 +U 11812 ; WX 390 ; N uni2E24 ; G 4700 +U 11813 ; WX 390 ; N uni2E25 ; G 4701 +U 11822 ; WX 531 ; N uni2E2E ; G 4702 +U 19904 ; WX 896 ; N uni4DC0 ; G 4703 +U 19905 ; WX 896 ; N uni4DC1 ; G 4704 +U 19906 ; WX 896 ; N uni4DC2 ; G 4705 +U 19907 ; WX 896 ; N uni4DC3 ; G 4706 +U 19908 ; WX 896 ; N uni4DC4 ; G 4707 +U 19909 ; WX 896 ; N uni4DC5 ; G 4708 +U 19910 ; WX 896 ; N uni4DC6 ; G 4709 +U 19911 ; WX 896 ; N uni4DC7 ; G 4710 +U 19912 ; WX 896 ; N uni4DC8 ; G 4711 +U 19913 ; WX 896 ; N uni4DC9 ; G 4712 +U 19914 ; WX 896 ; N uni4DCA ; G 4713 +U 19915 ; WX 896 ; N uni4DCB ; G 4714 +U 19916 ; WX 896 ; N uni4DCC ; G 4715 +U 19917 ; WX 896 ; N uni4DCD ; G 4716 +U 19918 ; WX 896 ; N uni4DCE ; G 4717 +U 19919 ; WX 896 ; N uni4DCF ; G 4718 +U 19920 ; WX 896 ; N uni4DD0 ; G 4719 +U 19921 ; WX 896 ; N uni4DD1 ; G 4720 +U 19922 ; WX 896 ; N uni4DD2 ; G 4721 +U 19923 ; WX 896 ; N uni4DD3 ; G 4722 +U 19924 ; WX 896 ; N uni4DD4 ; G 4723 +U 19925 ; WX 896 ; N uni4DD5 ; G 4724 +U 19926 ; WX 896 ; N uni4DD6 ; G 4725 +U 19927 ; WX 896 ; N uni4DD7 ; G 4726 +U 19928 ; WX 896 ; N uni4DD8 ; G 4727 +U 19929 ; WX 896 ; N uni4DD9 ; G 4728 +U 19930 ; WX 896 ; N uni4DDA ; G 4729 +U 19931 ; WX 896 ; N uni4DDB ; G 4730 +U 19932 ; WX 896 ; N uni4DDC ; G 4731 +U 19933 ; WX 896 ; N uni4DDD ; G 4732 +U 19934 ; WX 896 ; N uni4DDE ; G 4733 +U 19935 ; WX 896 ; N uni4DDF ; G 4734 +U 19936 ; WX 896 ; N uni4DE0 ; G 4735 +U 19937 ; WX 896 ; N uni4DE1 ; G 4736 +U 19938 ; WX 896 ; N uni4DE2 ; G 4737 +U 19939 ; WX 896 ; N uni4DE3 ; G 4738 +U 19940 ; WX 896 ; N uni4DE4 ; G 4739 +U 19941 ; WX 896 ; N uni4DE5 ; G 4740 +U 19942 ; WX 896 ; N uni4DE6 ; G 4741 +U 19943 ; WX 896 ; N uni4DE7 ; G 4742 +U 19944 ; WX 896 ; N uni4DE8 ; G 4743 +U 19945 ; WX 896 ; N uni4DE9 ; G 4744 +U 19946 ; WX 896 ; N uni4DEA ; G 4745 +U 19947 ; WX 896 ; N uni4DEB ; G 4746 +U 19948 ; WX 896 ; N uni4DEC ; G 4747 +U 19949 ; WX 896 ; N uni4DED ; G 4748 +U 19950 ; WX 896 ; N uni4DEE ; G 4749 +U 19951 ; WX 896 ; N uni4DEF ; G 4750 +U 19952 ; WX 896 ; N uni4DF0 ; G 4751 +U 19953 ; WX 896 ; N uni4DF1 ; G 4752 +U 19954 ; WX 896 ; N uni4DF2 ; G 4753 +U 19955 ; WX 896 ; N uni4DF3 ; G 4754 +U 19956 ; WX 896 ; N uni4DF4 ; G 4755 +U 19957 ; WX 896 ; N uni4DF5 ; G 4756 +U 19958 ; WX 896 ; N uni4DF6 ; G 4757 +U 19959 ; WX 896 ; N uni4DF7 ; G 4758 +U 19960 ; WX 896 ; N uni4DF8 ; G 4759 +U 19961 ; WX 896 ; N uni4DF9 ; G 4760 +U 19962 ; WX 896 ; N uni4DFA ; G 4761 +U 19963 ; WX 896 ; N uni4DFB ; G 4762 +U 19964 ; WX 896 ; N uni4DFC ; G 4763 +U 19965 ; WX 896 ; N uni4DFD ; G 4764 +U 19966 ; WX 896 ; N uni4DFE ; G 4765 +U 19967 ; WX 896 ; N uni4DFF ; G 4766 +U 42192 ; WX 686 ; N uniA4D0 ; G 4767 +U 42193 ; WX 603 ; N uniA4D1 ; G 4768 +U 42194 ; WX 603 ; N uniA4D2 ; G 4769 +U 42195 ; WX 770 ; N uniA4D3 ; G 4770 +U 42196 ; WX 611 ; N uniA4D4 ; G 4771 +U 42197 ; WX 611 ; N uniA4D5 ; G 4772 +U 42198 ; WX 775 ; N uniA4D6 ; G 4773 +U 42199 ; WX 656 ; N uniA4D7 ; G 4774 +U 42200 ; WX 656 ; N uniA4D8 ; G 4775 +U 42201 ; WX 512 ; N uniA4D9 ; G 4776 +U 42202 ; WX 698 ; N uniA4DA ; G 4777 +U 42203 ; WX 703 ; N uniA4DB ; G 4778 +U 42204 ; WX 685 ; N uniA4DC ; G 4779 +U 42205 ; WX 575 ; N uniA4DD ; G 4780 +U 42206 ; WX 575 ; N uniA4DE ; G 4781 +U 42207 ; WX 863 ; N uniA4DF ; G 4782 +U 42208 ; WX 748 ; N uniA4E0 ; G 4783 +U 42209 ; WX 557 ; N uniA4E1 ; G 4784 +U 42210 ; WX 635 ; N uniA4E2 ; G 4785 +U 42211 ; WX 695 ; N uniA4E3 ; G 4786 +U 42212 ; WX 695 ; N uniA4E4 ; G 4787 +U 42213 ; WX 684 ; N uniA4E5 ; G 4788 +U 42214 ; WX 684 ; N uniA4E6 ; G 4789 +U 42215 ; WX 752 ; N uniA4E7 ; G 4790 +U 42216 ; WX 775 ; N uniA4E8 ; G 4791 +U 42217 ; WX 512 ; N uniA4E9 ; G 4792 +U 42218 ; WX 989 ; N uniA4EA ; G 4793 +U 42219 ; WX 685 ; N uniA4EB ; G 4794 +U 42220 ; WX 611 ; N uniA4EC ; G 4795 +U 42221 ; WX 686 ; N uniA4ED ; G 4796 +U 42222 ; WX 684 ; N uniA4EE ; G 4797 +U 42223 ; WX 684 ; N uniA4EF ; G 4798 +U 42224 ; WX 632 ; N uniA4F0 ; G 4799 +U 42225 ; WX 632 ; N uniA4F1 ; G 4800 +U 42226 ; WX 295 ; N uniA4F2 ; G 4801 +U 42227 ; WX 787 ; N uniA4F3 ; G 4802 +U 42228 ; WX 732 ; N uniA4F4 ; G 4803 +U 42229 ; WX 732 ; N uniA4F5 ; G 4804 +U 42230 ; WX 557 ; N uniA4F6 ; G 4805 +U 42231 ; WX 767 ; N uniA4F7 ; G 4806 +U 42232 ; WX 300 ; N uniA4F8 ; G 4807 +U 42233 ; WX 300 ; N uniA4F9 ; G 4808 +U 42234 ; WX 596 ; N uniA4FA ; G 4809 +U 42235 ; WX 596 ; N uniA4FB ; G 4810 +U 42236 ; WX 300 ; N uniA4FC ; G 4811 +U 42237 ; WX 300 ; N uniA4FD ; G 4812 +U 42238 ; WX 588 ; N uniA4FE ; G 4813 +U 42239 ; WX 588 ; N uniA4FF ; G 4814 +U 42564 ; WX 635 ; N uniA644 ; G 4815 +U 42565 ; WX 521 ; N uniA645 ; G 4816 +U 42566 ; WX 354 ; N uniA646 ; G 4817 +U 42567 ; WX 338 ; N uniA647 ; G 4818 +U 42572 ; WX 1180 ; N uniA64C ; G 4819 +U 42573 ; WX 1028 ; N uniA64D ; G 4820 +U 42576 ; WX 1029 ; N uniA650 ; G 4821 +U 42577 ; WX 906 ; N uniA651 ; G 4822 +U 42580 ; WX 1080 ; N uniA654 ; G 4823 +U 42581 ; WX 842 ; N uniA655 ; G 4824 +U 42582 ; WX 977 ; N uniA656 ; G 4825 +U 42583 ; WX 843 ; N uniA657 ; G 4826 +U 42594 ; WX 1062 ; N uniA662 ; G 4827 +U 42595 ; WX 912 ; N uniA663 ; G 4828 +U 42596 ; WX 1066 ; N uniA664 ; G 4829 +U 42597 ; WX 901 ; N uniA665 ; G 4830 +U 42598 ; WX 1178 ; N uniA666 ; G 4831 +U 42599 ; WX 1008 ; N uniA667 ; G 4832 +U 42600 ; WX 787 ; N uniA668 ; G 4833 +U 42601 ; WX 612 ; N uniA669 ; G 4834 +U 42602 ; WX 855 ; N uniA66A ; G 4835 +U 42603 ; WX 712 ; N uniA66B ; G 4836 +U 42604 ; WX 1358 ; N uniA66C ; G 4837 +U 42605 ; WX 1019 ; N uniA66D ; G 4838 +U 42606 ; WX 879 ; N uniA66E ; G 4839 +U 42634 ; WX 782 ; N uniA68A ; G 4840 +U 42635 ; WX 685 ; N uniA68B ; G 4841 +U 42636 ; WX 611 ; N uniA68C ; G 4842 +U 42637 ; WX 583 ; N uniA68D ; G 4843 +U 42644 ; WX 686 ; N uniA694 ; G 4844 +U 42645 ; WX 634 ; N uniA695 ; G 4845 +U 42648 ; WX 1358 ; N uniA698 ; G 4846 +U 42649 ; WX 1019 ; N uniA699 ; G 4847 +U 42760 ; WX 493 ; N uniA708 ; G 4848 +U 42761 ; WX 493 ; N uniA709 ; G 4849 +U 42762 ; WX 493 ; N uniA70A ; G 4850 +U 42763 ; WX 493 ; N uniA70B ; G 4851 +U 42764 ; WX 493 ; N uniA70C ; G 4852 +U 42765 ; WX 493 ; N uniA70D ; G 4853 +U 42766 ; WX 493 ; N uniA70E ; G 4854 +U 42767 ; WX 493 ; N uniA70F ; G 4855 +U 42768 ; WX 493 ; N uniA710 ; G 4856 +U 42769 ; WX 493 ; N uniA711 ; G 4857 +U 42770 ; WX 493 ; N uniA712 ; G 4858 +U 42771 ; WX 493 ; N uniA713 ; G 4859 +U 42772 ; WX 493 ; N uniA714 ; G 4860 +U 42773 ; WX 493 ; N uniA715 ; G 4861 +U 42774 ; WX 493 ; N uniA716 ; G 4862 +U 42779 ; WX 369 ; N uniA71B ; G 4863 +U 42780 ; WX 369 ; N uniA71C ; G 4864 +U 42781 ; WX 252 ; N uniA71D ; G 4865 +U 42782 ; WX 252 ; N uniA71E ; G 4866 +U 42783 ; WX 252 ; N uniA71F ; G 4867 +U 42786 ; WX 385 ; N uniA722 ; G 4868 +U 42787 ; WX 356 ; N uniA723 ; G 4869 +U 42788 ; WX 472 ; N uniA724 ; G 4870 +U 42789 ; WX 472 ; N uniA725 ; G 4871 +U 42790 ; WX 752 ; N uniA726 ; G 4872 +U 42791 ; WX 634 ; N uniA727 ; G 4873 +U 42792 ; WX 878 ; N uniA728 ; G 4874 +U 42793 ; WX 709 ; N uniA729 ; G 4875 +U 42794 ; WX 614 ; N uniA72A ; G 4876 +U 42795 ; WX 541 ; N uniA72B ; G 4877 +U 42800 ; WX 491 ; N uniA730 ; G 4878 +U 42801 ; WX 521 ; N uniA731 ; G 4879 +U 42802 ; WX 1250 ; N uniA732 ; G 4880 +U 42803 ; WX 985 ; N uniA733 ; G 4881 +U 42804 ; WX 1203 ; N uniA734 ; G 4882 +U 42805 ; WX 990 ; N uniA735 ; G 4883 +U 42806 ; WX 1142 ; N uniA736 ; G 4884 +U 42807 ; WX 981 ; N uniA737 ; G 4885 +U 42808 ; WX 971 ; N uniA738 ; G 4886 +U 42809 ; WX 818 ; N uniA739 ; G 4887 +U 42810 ; WX 971 ; N uniA73A ; G 4888 +U 42811 ; WX 818 ; N uniA73B ; G 4889 +U 42812 ; WX 959 ; N uniA73C ; G 4890 +U 42813 ; WX 818 ; N uniA73D ; G 4891 +U 42814 ; WX 703 ; N uniA73E ; G 4892 +U 42815 ; WX 549 ; N uniA73F ; G 4893 +U 42816 ; WX 656 ; N uniA740 ; G 4894 +U 42817 ; WX 583 ; N uniA741 ; G 4895 +U 42822 ; WX 680 ; N uniA746 ; G 4896 +U 42823 ; WX 392 ; N uniA747 ; G 4897 +U 42824 ; WX 582 ; N uniA748 ; G 4898 +U 42825 ; WX 427 ; N uniA749 ; G 4899 +U 42826 ; WX 807 ; N uniA74A ; G 4900 +U 42827 ; WX 704 ; N uniA74B ; G 4901 +U 42830 ; WX 1358 ; N uniA74E ; G 4902 +U 42831 ; WX 1019 ; N uniA74F ; G 4903 +U 42832 ; WX 603 ; N uniA750 ; G 4904 +U 42833 ; WX 635 ; N uniA751 ; G 4905 +U 42834 ; WX 734 ; N uniA752 ; G 4906 +U 42835 ; WX 774 ; N uniA753 ; G 4907 +U 42838 ; WX 787 ; N uniA756 ; G 4908 +U 42839 ; WX 635 ; N uniA757 ; G 4909 +U 42852 ; WX 605 ; N uniA764 ; G 4910 +U 42853 ; WX 635 ; N uniA765 ; G 4911 +U 42854 ; WX 605 ; N uniA766 ; G 4912 +U 42855 ; WX 635 ; N uniA767 ; G 4913 +U 42880 ; WX 557 ; N uniA780 ; G 4914 +U 42881 ; WX 278 ; N uniA781 ; G 4915 +U 42882 ; WX 735 ; N uniA782 ; G 4916 +U 42883 ; WX 634 ; N uniA783 ; G 4917 +U 42889 ; WX 337 ; N uniA789 ; G 4918 +U 42890 ; WX 376 ; N uniA78A ; G 4919 +U 42891 ; WX 401 ; N uniA78B ; G 4920 +U 42892 ; WX 275 ; N uniA78C ; G 4921 +U 42893 ; WX 686 ; N uniA78D ; G 4922 +U 42894 ; WX 487 ; N uniA78E ; G 4923 +U 42896 ; WX 772 ; N uniA790 ; G 4924 +U 42897 ; WX 667 ; N uniA791 ; G 4925 +U 42912 ; WX 775 ; N uniA7A0 ; G 4926 +U 42913 ; WX 635 ; N uniA7A1 ; G 4927 +U 42914 ; WX 656 ; N uniA7A2 ; G 4928 +U 42915 ; WX 579 ; N uniA7A3 ; G 4929 +U 42916 ; WX 748 ; N uniA7A4 ; G 4930 +U 42917 ; WX 634 ; N uniA7A5 ; G 4931 +U 42918 ; WX 695 ; N uniA7A6 ; G 4932 +U 42919 ; WX 411 ; N uniA7A7 ; G 4933 +U 42920 ; WX 635 ; N uniA7A8 ; G 4934 +U 42921 ; WX 521 ; N uniA7A9 ; G 4935 +U 42922 ; WX 801 ; N uniA7AA ; G 4936 +U 43000 ; WX 577 ; N uniA7F8 ; G 4937 +U 43001 ; WX 644 ; N uniA7F9 ; G 4938 +U 43002 ; WX 915 ; N uniA7FA ; G 4939 +U 43003 ; WX 575 ; N uniA7FB ; G 4940 +U 43004 ; WX 603 ; N uniA7FC ; G 4941 +U 43005 ; WX 863 ; N uniA7FD ; G 4942 +U 43006 ; WX 295 ; N uniA7FE ; G 4943 +U 43007 ; WX 1199 ; N uniA7FF ; G 4944 +U 61184 ; WX 213 ; N uni02E5.5 ; G 4945 +U 61185 ; WX 238 ; N uni02E6.5 ; G 4946 +U 61186 ; WX 257 ; N uni02E7.5 ; G 4947 +U 61187 ; WX 264 ; N uni02E8.5 ; G 4948 +U 61188 ; WX 267 ; N uni02E9.5 ; G 4949 +U 61189 ; WX 238 ; N uni02E5.4 ; G 4950 +U 61190 ; WX 213 ; N uni02E6.4 ; G 4951 +U 61191 ; WX 238 ; N uni02E7.4 ; G 4952 +U 61192 ; WX 257 ; N uni02E8.4 ; G 4953 +U 61193 ; WX 264 ; N uni02E9.4 ; G 4954 +U 61194 ; WX 257 ; N uni02E5.3 ; G 4955 +U 61195 ; WX 238 ; N uni02E6.3 ; G 4956 +U 61196 ; WX 213 ; N uni02E7.3 ; G 4957 +U 61197 ; WX 238 ; N uni02E8.3 ; G 4958 +U 61198 ; WX 257 ; N uni02E9.3 ; G 4959 +U 61199 ; WX 264 ; N uni02E5.2 ; G 4960 +U 61200 ; WX 257 ; N uni02E6.2 ; G 4961 +U 61201 ; WX 238 ; N uni02E7.2 ; G 4962 +U 61202 ; WX 213 ; N uni02E8.2 ; G 4963 +U 61203 ; WX 238 ; N uni02E9.2 ; G 4964 +U 61204 ; WX 267 ; N uni02E5.1 ; G 4965 +U 61205 ; WX 264 ; N uni02E6.1 ; G 4966 +U 61206 ; WX 257 ; N uni02E7.1 ; G 4967 +U 61207 ; WX 238 ; N uni02E8.1 ; G 4968 +U 61208 ; WX 213 ; N uni02E9.1 ; G 4969 +U 61209 ; WX 275 ; N stem ; G 4970 +U 61440 ; WX 977 ; N uniF000 ; G 4971 +U 61441 ; WX 977 ; N uniF001 ; G 4972 +U 61442 ; WX 977 ; N uniF002 ; G 4973 +U 61443 ; WX 977 ; N uniF003 ; G 4974 +U 62464 ; WX 580 ; N uniF400 ; G 4975 +U 62465 ; WX 580 ; N uniF401 ; G 4976 +U 62466 ; WX 624 ; N uniF402 ; G 4977 +U 62467 ; WX 889 ; N uniF403 ; G 4978 +U 62468 ; WX 585 ; N uniF404 ; G 4979 +U 62469 ; WX 580 ; N uniF405 ; G 4980 +U 62470 ; WX 653 ; N uniF406 ; G 4981 +U 62471 ; WX 882 ; N uniF407 ; G 4982 +U 62472 ; WX 555 ; N uniF408 ; G 4983 +U 62473 ; WX 580 ; N uniF409 ; G 4984 +U 62474 ; WX 1168 ; N uniF40A ; G 4985 +U 62475 ; WX 589 ; N uniF40B ; G 4986 +U 62476 ; WX 590 ; N uniF40C ; G 4987 +U 62477 ; WX 869 ; N uniF40D ; G 4988 +U 62478 ; WX 580 ; N uniF40E ; G 4989 +U 62479 ; WX 589 ; N uniF40F ; G 4990 +U 62480 ; WX 914 ; N uniF410 ; G 4991 +U 62481 ; WX 590 ; N uniF411 ; G 4992 +U 62482 ; WX 731 ; N uniF412 ; G 4993 +U 62483 ; WX 583 ; N uniF413 ; G 4994 +U 62484 ; WX 872 ; N uniF414 ; G 4995 +U 62485 ; WX 589 ; N uniF415 ; G 4996 +U 62486 ; WX 895 ; N uniF416 ; G 4997 +U 62487 ; WX 589 ; N uniF417 ; G 4998 +U 62488 ; WX 589 ; N uniF418 ; G 4999 +U 62489 ; WX 590 ; N uniF419 ; G 5000 +U 62490 ; WX 649 ; N uniF41A ; G 5001 +U 62491 ; WX 589 ; N uniF41B ; G 5002 +U 62492 ; WX 589 ; N uniF41C ; G 5003 +U 62493 ; WX 599 ; N uniF41D ; G 5004 +U 62494 ; WX 590 ; N uniF41E ; G 5005 +U 62495 ; WX 516 ; N uniF41F ; G 5006 +U 62496 ; WX 580 ; N uniF420 ; G 5007 +U 62497 ; WX 584 ; N uniF421 ; G 5008 +U 62498 ; WX 580 ; N uniF422 ; G 5009 +U 62499 ; WX 580 ; N uniF423 ; G 5010 +U 62500 ; WX 581 ; N uniF424 ; G 5011 +U 62501 ; WX 638 ; N uniF425 ; G 5012 +U 62502 ; WX 955 ; N uniF426 ; G 5013 +U 62504 ; WX 931 ; N uniF428 ; G 5014 +U 62505 ; WX 808 ; N uniF429 ; G 5015 +U 62506 ; WX 508 ; N uniF42A ; G 5016 +U 62507 ; WX 508 ; N uniF42B ; G 5017 +U 62508 ; WX 508 ; N uniF42C ; G 5018 +U 62509 ; WX 508 ; N uniF42D ; G 5019 +U 62510 ; WX 508 ; N uniF42E ; G 5020 +U 62511 ; WX 508 ; N uniF42F ; G 5021 +U 62512 ; WX 508 ; N uniF430 ; G 5022 +U 62513 ; WX 508 ; N uniF431 ; G 5023 +U 62514 ; WX 508 ; N uniF432 ; G 5024 +U 62515 ; WX 508 ; N uniF433 ; G 5025 +U 62516 ; WX 518 ; N uniF434 ; G 5026 +U 62517 ; WX 518 ; N uniF435 ; G 5027 +U 62518 ; WX 518 ; N uniF436 ; G 5028 +U 62519 ; WX 787 ; N uniF437 ; G 5029 +U 62520 ; WX 787 ; N uniF438 ; G 5030 +U 62521 ; WX 787 ; N uniF439 ; G 5031 +U 62522 ; WX 787 ; N uniF43A ; G 5032 +U 62523 ; WX 787 ; N uniF43B ; G 5033 +U 62524 ; WX 546 ; N uniF43C ; G 5034 +U 62525 ; WX 546 ; N uniF43D ; G 5035 +U 62526 ; WX 546 ; N uniF43E ; G 5036 +U 62527 ; WX 546 ; N uniF43F ; G 5037 +U 62528 ; WX 546 ; N uniF440 ; G 5038 +U 62529 ; WX 546 ; N uniF441 ; G 5039 +U 63173 ; WX 612 ; N uniF6C5 ; G 5040 +U 64256 ; WX 689 ; N uniFB00 ; G 5041 +U 64257 ; WX 630 ; N fi ; G 5042 +U 64258 ; WX 630 ; N fl ; G 5043 +U 64259 ; WX 967 ; N uniFB03 ; G 5044 +U 64260 ; WX 967 ; N uniFB04 ; G 5045 +U 64261 ; WX 686 ; N uniFB05 ; G 5046 +U 64262 ; WX 861 ; N uniFB06 ; G 5047 +U 64275 ; WX 1202 ; N uniFB13 ; G 5048 +U 64276 ; WX 1202 ; N uniFB14 ; G 5049 +U 64277 ; WX 1196 ; N uniFB15 ; G 5050 +U 64278 ; WX 1186 ; N uniFB16 ; G 5051 +U 64279 ; WX 1529 ; N uniFB17 ; G 5052 +U 64285 ; WX 224 ; N uniFB1D ; G 5053 +U 64286 ; WX 0 ; N uniFB1E ; G 5054 +U 64287 ; WX 331 ; N uniFB1F ; G 5055 +U 64288 ; WX 636 ; N uniFB20 ; G 5056 +U 64289 ; WX 856 ; N uniFB21 ; G 5057 +U 64290 ; WX 774 ; N uniFB22 ; G 5058 +U 64291 ; WX 906 ; N uniFB23 ; G 5059 +U 64292 ; WX 771 ; N uniFB24 ; G 5060 +U 64293 ; WX 843 ; N uniFB25 ; G 5061 +U 64294 ; WX 855 ; N uniFB26 ; G 5062 +U 64295 ; WX 807 ; N uniFB27 ; G 5063 +U 64296 ; WX 875 ; N uniFB28 ; G 5064 +U 64297 ; WX 838 ; N uniFB29 ; G 5065 +U 64298 ; WX 708 ; N uniFB2A ; G 5066 +U 64299 ; WX 708 ; N uniFB2B ; G 5067 +U 64300 ; WX 708 ; N uniFB2C ; G 5068 +U 64301 ; WX 708 ; N uniFB2D ; G 5069 +U 64302 ; WX 668 ; N uniFB2E ; G 5070 +U 64303 ; WX 668 ; N uniFB2F ; G 5071 +U 64304 ; WX 668 ; N uniFB30 ; G 5072 +U 64305 ; WX 578 ; N uniFB31 ; G 5073 +U 64306 ; WX 412 ; N uniFB32 ; G 5074 +U 64307 ; WX 546 ; N uniFB33 ; G 5075 +U 64308 ; WX 653 ; N uniFB34 ; G 5076 +U 64309 ; WX 355 ; N uniFB35 ; G 5077 +U 64310 ; WX 406 ; N uniFB36 ; G 5078 +U 64312 ; WX 648 ; N uniFB38 ; G 5079 +U 64313 ; WX 330 ; N uniFB39 ; G 5080 +U 64314 ; WX 537 ; N uniFB3A ; G 5081 +U 64315 ; WX 529 ; N uniFB3B ; G 5082 +U 64316 ; WX 568 ; N uniFB3C ; G 5083 +U 64318 ; WX 679 ; N uniFB3E ; G 5084 +U 64320 ; WX 399 ; N uniFB40 ; G 5085 +U 64321 ; WX 649 ; N uniFB41 ; G 5086 +U 64323 ; WX 640 ; N uniFB43 ; G 5087 +U 64324 ; WX 625 ; N uniFB44 ; G 5088 +U 64326 ; WX 593 ; N uniFB46 ; G 5089 +U 64327 ; WX 709 ; N uniFB47 ; G 5090 +U 64328 ; WX 564 ; N uniFB48 ; G 5091 +U 64329 ; WX 708 ; N uniFB49 ; G 5092 +U 64330 ; WX 657 ; N uniFB4A ; G 5093 +U 64331 ; WX 272 ; N uniFB4B ; G 5094 +U 64332 ; WX 578 ; N uniFB4C ; G 5095 +U 64333 ; WX 529 ; N uniFB4D ; G 5096 +U 64334 ; WX 625 ; N uniFB4E ; G 5097 +U 64335 ; WX 629 ; N uniFB4F ; G 5098 +U 64338 ; WX 941 ; N uniFB52 ; G 5099 +U 64339 ; WX 982 ; N uniFB53 ; G 5100 +U 64340 ; WX 278 ; N uniFB54 ; G 5101 +U 64341 ; WX 302 ; N uniFB55 ; G 5102 +U 64342 ; WX 941 ; N uniFB56 ; G 5103 +U 64343 ; WX 982 ; N uniFB57 ; G 5104 +U 64344 ; WX 278 ; N uniFB58 ; G 5105 +U 64345 ; WX 302 ; N uniFB59 ; G 5106 +U 64346 ; WX 941 ; N uniFB5A ; G 5107 +U 64347 ; WX 982 ; N uniFB5B ; G 5108 +U 64348 ; WX 278 ; N uniFB5C ; G 5109 +U 64349 ; WX 302 ; N uniFB5D ; G 5110 +U 64350 ; WX 941 ; N uniFB5E ; G 5111 +U 64351 ; WX 982 ; N uniFB5F ; G 5112 +U 64352 ; WX 278 ; N uniFB60 ; G 5113 +U 64353 ; WX 302 ; N uniFB61 ; G 5114 +U 64354 ; WX 941 ; N uniFB62 ; G 5115 +U 64355 ; WX 982 ; N uniFB63 ; G 5116 +U 64356 ; WX 278 ; N uniFB64 ; G 5117 +U 64357 ; WX 302 ; N uniFB65 ; G 5118 +U 64358 ; WX 941 ; N uniFB66 ; G 5119 +U 64359 ; WX 982 ; N uniFB67 ; G 5120 +U 64360 ; WX 278 ; N uniFB68 ; G 5121 +U 64361 ; WX 302 ; N uniFB69 ; G 5122 +U 64362 ; WX 1037 ; N uniFB6A ; G 5123 +U 64363 ; WX 1035 ; N uniFB6B ; G 5124 +U 64364 ; WX 478 ; N uniFB6C ; G 5125 +U 64365 ; WX 506 ; N uniFB6D ; G 5126 +U 64366 ; WX 1037 ; N uniFB6E ; G 5127 +U 64367 ; WX 1035 ; N uniFB6F ; G 5128 +U 64368 ; WX 478 ; N uniFB70 ; G 5129 +U 64369 ; WX 506 ; N uniFB71 ; G 5130 +U 64370 ; WX 646 ; N uniFB72 ; G 5131 +U 64371 ; WX 646 ; N uniFB73 ; G 5132 +U 64372 ; WX 618 ; N uniFB74 ; G 5133 +U 64373 ; WX 646 ; N uniFB75 ; G 5134 +U 64374 ; WX 646 ; N uniFB76 ; G 5135 +U 64375 ; WX 646 ; N uniFB77 ; G 5136 +U 64376 ; WX 618 ; N uniFB78 ; G 5137 +U 64377 ; WX 646 ; N uniFB79 ; G 5138 +U 64378 ; WX 646 ; N uniFB7A ; G 5139 +U 64379 ; WX 646 ; N uniFB7B ; G 5140 +U 64380 ; WX 618 ; N uniFB7C ; G 5141 +U 64381 ; WX 646 ; N uniFB7D ; G 5142 +U 64382 ; WX 646 ; N uniFB7E ; G 5143 +U 64383 ; WX 646 ; N uniFB7F ; G 5144 +U 64384 ; WX 618 ; N uniFB80 ; G 5145 +U 64385 ; WX 646 ; N uniFB81 ; G 5146 +U 64386 ; WX 445 ; N uniFB82 ; G 5147 +U 64387 ; WX 525 ; N uniFB83 ; G 5148 +U 64388 ; WX 445 ; N uniFB84 ; G 5149 +U 64389 ; WX 525 ; N uniFB85 ; G 5150 +U 64390 ; WX 445 ; N uniFB86 ; G 5151 +U 64391 ; WX 525 ; N uniFB87 ; G 5152 +U 64392 ; WX 445 ; N uniFB88 ; G 5153 +U 64393 ; WX 525 ; N uniFB89 ; G 5154 +U 64394 ; WX 483 ; N uniFB8A ; G 5155 +U 64395 ; WX 552 ; N uniFB8B ; G 5156 +U 64396 ; WX 483 ; N uniFB8C ; G 5157 +U 64397 ; WX 552 ; N uniFB8D ; G 5158 +U 64398 ; WX 895 ; N uniFB8E ; G 5159 +U 64399 ; WX 895 ; N uniFB8F ; G 5160 +U 64400 ; WX 476 ; N uniFB90 ; G 5161 +U 64401 ; WX 552 ; N uniFB91 ; G 5162 +U 64402 ; WX 895 ; N uniFB92 ; G 5163 +U 64403 ; WX 895 ; N uniFB93 ; G 5164 +U 64404 ; WX 476 ; N uniFB94 ; G 5165 +U 64405 ; WX 552 ; N uniFB95 ; G 5166 +U 64406 ; WX 895 ; N uniFB96 ; G 5167 +U 64407 ; WX 895 ; N uniFB97 ; G 5168 +U 64408 ; WX 476 ; N uniFB98 ; G 5169 +U 64409 ; WX 552 ; N uniFB99 ; G 5170 +U 64410 ; WX 895 ; N uniFB9A ; G 5171 +U 64411 ; WX 895 ; N uniFB9B ; G 5172 +U 64412 ; WX 476 ; N uniFB9C ; G 5173 +U 64413 ; WX 552 ; N uniFB9D ; G 5174 +U 64414 ; WX 734 ; N uniFB9E ; G 5175 +U 64415 ; WX 761 ; N uniFB9F ; G 5176 +U 64416 ; WX 734 ; N uniFBA0 ; G 5177 +U 64417 ; WX 761 ; N uniFBA1 ; G 5178 +U 64418 ; WX 278 ; N uniFBA2 ; G 5179 +U 64419 ; WX 302 ; N uniFBA3 ; G 5180 +U 64426 ; WX 698 ; N uniFBAA ; G 5181 +U 64427 ; WX 632 ; N uniFBAB ; G 5182 +U 64428 ; WX 527 ; N uniFBAC ; G 5183 +U 64429 ; WX 461 ; N uniFBAD ; G 5184 +U 64467 ; WX 824 ; N uniFBD3 ; G 5185 +U 64468 ; WX 843 ; N uniFBD4 ; G 5186 +U 64469 ; WX 476 ; N uniFBD5 ; G 5187 +U 64470 ; WX 552 ; N uniFBD6 ; G 5188 +U 64471 ; WX 483 ; N uniFBD7 ; G 5189 +U 64472 ; WX 517 ; N uniFBD8 ; G 5190 +U 64473 ; WX 483 ; N uniFBD9 ; G 5191 +U 64474 ; WX 517 ; N uniFBDA ; G 5192 +U 64475 ; WX 483 ; N uniFBDB ; G 5193 +U 64476 ; WX 517 ; N uniFBDC ; G 5194 +U 64478 ; WX 483 ; N uniFBDE ; G 5195 +U 64479 ; WX 517 ; N uniFBDF ; G 5196 +U 64484 ; WX 783 ; N uniFBE4 ; G 5197 +U 64485 ; WX 833 ; N uniFBE5 ; G 5198 +U 64486 ; WX 278 ; N uniFBE6 ; G 5199 +U 64487 ; WX 302 ; N uniFBE7 ; G 5200 +U 64488 ; WX 278 ; N uniFBE8 ; G 5201 +U 64489 ; WX 302 ; N uniFBE9 ; G 5202 +U 64508 ; WX 783 ; N uniFBFC ; G 5203 +U 64509 ; WX 833 ; N uniFBFD ; G 5204 +U 64510 ; WX 278 ; N uniFBFE ; G 5205 +U 64511 ; WX 302 ; N uniFBFF ; G 5206 +U 65024 ; WX 0 ; N uniFE00 ; G 5207 +U 65025 ; WX 0 ; N uniFE01 ; G 5208 +U 65026 ; WX 0 ; N uniFE02 ; G 5209 +U 65027 ; WX 0 ; N uniFE03 ; G 5210 +U 65028 ; WX 0 ; N uniFE04 ; G 5211 +U 65029 ; WX 0 ; N uniFE05 ; G 5212 +U 65030 ; WX 0 ; N uniFE06 ; G 5213 +U 65031 ; WX 0 ; N uniFE07 ; G 5214 +U 65032 ; WX 0 ; N uniFE08 ; G 5215 +U 65033 ; WX 0 ; N uniFE09 ; G 5216 +U 65034 ; WX 0 ; N uniFE0A ; G 5217 +U 65035 ; WX 0 ; N uniFE0B ; G 5218 +U 65036 ; WX 0 ; N uniFE0C ; G 5219 +U 65037 ; WX 0 ; N uniFE0D ; G 5220 +U 65038 ; WX 0 ; N uniFE0E ; G 5221 +U 65039 ; WX 0 ; N uniFE0F ; G 5222 +U 65056 ; WX 0 ; N uniFE20 ; G 5223 +U 65057 ; WX 0 ; N uniFE21 ; G 5224 +U 65058 ; WX 0 ; N uniFE22 ; G 5225 +U 65059 ; WX 0 ; N uniFE23 ; G 5226 +U 65136 ; WX 293 ; N uniFE70 ; G 5227 +U 65137 ; WX 293 ; N uniFE71 ; G 5228 +U 65138 ; WX 293 ; N uniFE72 ; G 5229 +U 65139 ; WX 262 ; N uniFE73 ; G 5230 +U 65140 ; WX 293 ; N uniFE74 ; G 5231 +U 65142 ; WX 293 ; N uniFE76 ; G 5232 +U 65143 ; WX 293 ; N uniFE77 ; G 5233 +U 65144 ; WX 293 ; N uniFE78 ; G 5234 +U 65145 ; WX 293 ; N uniFE79 ; G 5235 +U 65146 ; WX 293 ; N uniFE7A ; G 5236 +U 65147 ; WX 293 ; N uniFE7B ; G 5237 +U 65148 ; WX 293 ; N uniFE7C ; G 5238 +U 65149 ; WX 293 ; N uniFE7D ; G 5239 +U 65150 ; WX 293 ; N uniFE7E ; G 5240 +U 65151 ; WX 293 ; N uniFE7F ; G 5241 +U 65152 ; WX 470 ; N uniFE80 ; G 5242 +U 65153 ; WX 278 ; N uniFE81 ; G 5243 +U 65154 ; WX 305 ; N uniFE82 ; G 5244 +U 65155 ; WX 278 ; N uniFE83 ; G 5245 +U 65156 ; WX 305 ; N uniFE84 ; G 5246 +U 65157 ; WX 483 ; N uniFE85 ; G 5247 +U 65158 ; WX 517 ; N uniFE86 ; G 5248 +U 65159 ; WX 278 ; N uniFE87 ; G 5249 +U 65160 ; WX 305 ; N uniFE88 ; G 5250 +U 65161 ; WX 783 ; N uniFE89 ; G 5251 +U 65162 ; WX 833 ; N uniFE8A ; G 5252 +U 65163 ; WX 278 ; N uniFE8B ; G 5253 +U 65164 ; WX 302 ; N uniFE8C ; G 5254 +U 65165 ; WX 278 ; N uniFE8D ; G 5255 +U 65166 ; WX 305 ; N uniFE8E ; G 5256 +U 65167 ; WX 941 ; N uniFE8F ; G 5257 +U 65168 ; WX 982 ; N uniFE90 ; G 5258 +U 65169 ; WX 278 ; N uniFE91 ; G 5259 +U 65170 ; WX 302 ; N uniFE92 ; G 5260 +U 65171 ; WX 524 ; N uniFE93 ; G 5261 +U 65172 ; WX 536 ; N uniFE94 ; G 5262 +U 65173 ; WX 941 ; N uniFE95 ; G 5263 +U 65174 ; WX 982 ; N uniFE96 ; G 5264 +U 65175 ; WX 278 ; N uniFE97 ; G 5265 +U 65176 ; WX 302 ; N uniFE98 ; G 5266 +U 65177 ; WX 941 ; N uniFE99 ; G 5267 +U 65178 ; WX 982 ; N uniFE9A ; G 5268 +U 65179 ; WX 278 ; N uniFE9B ; G 5269 +U 65180 ; WX 302 ; N uniFE9C ; G 5270 +U 65181 ; WX 646 ; N uniFE9D ; G 5271 +U 65182 ; WX 646 ; N uniFE9E ; G 5272 +U 65183 ; WX 618 ; N uniFE9F ; G 5273 +U 65184 ; WX 646 ; N uniFEA0 ; G 5274 +U 65185 ; WX 646 ; N uniFEA1 ; G 5275 +U 65186 ; WX 646 ; N uniFEA2 ; G 5276 +U 65187 ; WX 618 ; N uniFEA3 ; G 5277 +U 65188 ; WX 646 ; N uniFEA4 ; G 5278 +U 65189 ; WX 646 ; N uniFEA5 ; G 5279 +U 65190 ; WX 646 ; N uniFEA6 ; G 5280 +U 65191 ; WX 618 ; N uniFEA7 ; G 5281 +U 65192 ; WX 646 ; N uniFEA8 ; G 5282 +U 65193 ; WX 445 ; N uniFEA9 ; G 5283 +U 65194 ; WX 525 ; N uniFEAA ; G 5284 +U 65195 ; WX 445 ; N uniFEAB ; G 5285 +U 65196 ; WX 525 ; N uniFEAC ; G 5286 +U 65197 ; WX 483 ; N uniFEAD ; G 5287 +U 65198 ; WX 552 ; N uniFEAE ; G 5288 +U 65199 ; WX 483 ; N uniFEAF ; G 5289 +U 65200 ; WX 552 ; N uniFEB0 ; G 5290 +U 65201 ; WX 1221 ; N uniFEB1 ; G 5291 +U 65202 ; WX 1275 ; N uniFEB2 ; G 5292 +U 65203 ; WX 838 ; N uniFEB3 ; G 5293 +U 65204 ; WX 892 ; N uniFEB4 ; G 5294 +U 65205 ; WX 1221 ; N uniFEB5 ; G 5295 +U 65206 ; WX 1275 ; N uniFEB6 ; G 5296 +U 65207 ; WX 838 ; N uniFEB7 ; G 5297 +U 65208 ; WX 892 ; N uniFEB8 ; G 5298 +U 65209 ; WX 1209 ; N uniFEB9 ; G 5299 +U 65210 ; WX 1225 ; N uniFEBA ; G 5300 +U 65211 ; WX 849 ; N uniFEBB ; G 5301 +U 65212 ; WX 867 ; N uniFEBC ; G 5302 +U 65213 ; WX 1209 ; N uniFEBD ; G 5303 +U 65214 ; WX 1225 ; N uniFEBE ; G 5304 +U 65215 ; WX 849 ; N uniFEBF ; G 5305 +U 65216 ; WX 867 ; N uniFEC0 ; G 5306 +U 65217 ; WX 925 ; N uniFEC1 ; G 5307 +U 65218 ; WX 949 ; N uniFEC2 ; G 5308 +U 65219 ; WX 796 ; N uniFEC3 ; G 5309 +U 65220 ; WX 820 ; N uniFEC4 ; G 5310 +U 65221 ; WX 925 ; N uniFEC5 ; G 5311 +U 65222 ; WX 949 ; N uniFEC6 ; G 5312 +U 65223 ; WX 796 ; N uniFEC7 ; G 5313 +U 65224 ; WX 820 ; N uniFEC8 ; G 5314 +U 65225 ; WX 597 ; N uniFEC9 ; G 5315 +U 65226 ; WX 532 ; N uniFECA ; G 5316 +U 65227 ; WX 597 ; N uniFECB ; G 5317 +U 65228 ; WX 482 ; N uniFECC ; G 5318 +U 65229 ; WX 597 ; N uniFECD ; G 5319 +U 65230 ; WX 532 ; N uniFECE ; G 5320 +U 65231 ; WX 523 ; N uniFECF ; G 5321 +U 65232 ; WX 482 ; N uniFED0 ; G 5322 +U 65233 ; WX 1037 ; N uniFED1 ; G 5323 +U 65234 ; WX 1035 ; N uniFED2 ; G 5324 +U 65235 ; WX 478 ; N uniFED3 ; G 5325 +U 65236 ; WX 506 ; N uniFED4 ; G 5326 +U 65237 ; WX 776 ; N uniFED5 ; G 5327 +U 65238 ; WX 834 ; N uniFED6 ; G 5328 +U 65239 ; WX 478 ; N uniFED7 ; G 5329 +U 65240 ; WX 506 ; N uniFED8 ; G 5330 +U 65241 ; WX 824 ; N uniFED9 ; G 5331 +U 65242 ; WX 843 ; N uniFEDA ; G 5332 +U 65243 ; WX 476 ; N uniFEDB ; G 5333 +U 65244 ; WX 552 ; N uniFEDC ; G 5334 +U 65245 ; WX 727 ; N uniFEDD ; G 5335 +U 65246 ; WX 757 ; N uniFEDE ; G 5336 +U 65247 ; WX 305 ; N uniFEDF ; G 5337 +U 65248 ; WX 331 ; N uniFEE0 ; G 5338 +U 65249 ; WX 619 ; N uniFEE1 ; G 5339 +U 65250 ; WX 666 ; N uniFEE2 ; G 5340 +U 65251 ; WX 536 ; N uniFEE3 ; G 5341 +U 65252 ; WX 578 ; N uniFEE4 ; G 5342 +U 65253 ; WX 734 ; N uniFEE5 ; G 5343 +U 65254 ; WX 761 ; N uniFEE6 ; G 5344 +U 65255 ; WX 278 ; N uniFEE7 ; G 5345 +U 65256 ; WX 302 ; N uniFEE8 ; G 5346 +U 65257 ; WX 524 ; N uniFEE9 ; G 5347 +U 65258 ; WX 536 ; N uniFEEA ; G 5348 +U 65259 ; WX 527 ; N uniFEEB ; G 5349 +U 65260 ; WX 461 ; N uniFEEC ; G 5350 +U 65261 ; WX 483 ; N uniFEED ; G 5351 +U 65262 ; WX 517 ; N uniFEEE ; G 5352 +U 65263 ; WX 783 ; N uniFEEF ; G 5353 +U 65264 ; WX 833 ; N uniFEF0 ; G 5354 +U 65265 ; WX 783 ; N uniFEF1 ; G 5355 +U 65266 ; WX 833 ; N uniFEF2 ; G 5356 +U 65267 ; WX 278 ; N uniFEF3 ; G 5357 +U 65268 ; WX 302 ; N uniFEF4 ; G 5358 +U 65269 ; WX 570 ; N uniFEF5 ; G 5359 +U 65270 ; WX 597 ; N uniFEF6 ; G 5360 +U 65271 ; WX 570 ; N uniFEF7 ; G 5361 +U 65272 ; WX 597 ; N uniFEF8 ; G 5362 +U 65273 ; WX 570 ; N uniFEF9 ; G 5363 +U 65274 ; WX 597 ; N uniFEFA ; G 5364 +U 65275 ; WX 570 ; N uniFEFB ; G 5365 +U 65276 ; WX 597 ; N uniFEFC ; G 5366 +U 65279 ; WX 0 ; N uniFEFF ; G 5367 +U 65529 ; WX 0 ; N uniFFF9 ; G 5368 +U 65530 ; WX 0 ; N uniFFFA ; G 5369 +U 65531 ; WX 0 ; N uniFFFB ; G 5370 +U 65532 ; WX 0 ; N uniFFFC ; G 5371 +U 65533 ; WX 1025 ; N uniFFFD ; G 5372 +EndCharMetrics +StartKernData +StartKernPairs 2727 + +KPX dollar dollar 57 +KPX dollar ampersand -36 +KPX dollar asterisk -36 +KPX dollar two -36 +KPX dollar four -36 +KPX dollar seven -159 +KPX dollar nine -131 +KPX dollar colon -112 +KPX dollar less -159 +KPX dollar F -36 +KPX dollar G -36 +KPX dollar H -36 +KPX dollar I -73 +KPX dollar R -36 +KPX dollar T -36 +KPX dollar W -36 +KPX dollar Y -120 +KPX dollar Z -83 +KPX dollar backslash -139 +KPX dollar m -73 +KPX dollar copyright -36 +KPX dollar ordfeminine -36 +KPX dollar guillemotleft -36 +KPX dollar logicalnot -36 +KPX dollar sfthyphen -36 +KPX dollar acute -36 +KPX dollar mu -36 +KPX dollar paragraph -36 +KPX dollar periodcentered -36 +KPX dollar cedilla -36 +KPX dollar questiondown -139 +KPX dollar Aacute -139 +KPX dollar Acircumflex 57 +KPX dollar Adieresis 57 +KPX dollar AE 57 +KPX dollar Egrave -36 +KPX dollar Eacute -36 +KPX dollar Ecircumflex -36 +KPX dollar Edieresis -36 +KPX dollar Igrave -36 +KPX dollar Iacute -36 +KPX dollar Icircumflex -36 +KPX dollar Idieresis -36 +KPX dollar Ntilde -36 +KPX dollar Oacute -36 +KPX dollar Otilde -36 +KPX dollar multiply -36 +KPX dollar Ugrave -36 +KPX dollar Ucircumflex -36 +KPX dollar Yacute -36 +KPX dollar Thorn -36 +KPX dollar agrave -36 +KPX dollar acircumflex -36 +KPX dollar Dcaron -36 +KPX dollar dcaron -36 +KPX dollar Dcroat -36 +KPX dollar dmacron -36 +KPX dollar Emacron -36 +KPX dollar emacron -36 +KPX dollar Hcircumflex -159 +KPX dollar hcircumflex -36 +KPX dollar Hbar -159 +KPX dollar hbar -36 +KPX dollar Kcommaaccent -112 +KPX dollar kcommaaccent -83 +KPX dollar kgreenlandic -159 +KPX dollar Lacute -139 +KPX dollar lacute -159 +KPX dollar uni0188 -36 +KPX dollar uni01AC -36 +KPX dollar uni01AD -36 +KPX dollar uni01AE -36 +KPX dollar Uhorn -36 +KPX dollar uni01DC -159 +KPX dollar uni01DD -36 +KPX dollar uni01F0 -36 +KPX dollar uni01F3 -36 +KPX dollar uni01F4 -159 +KPX dollar uni01F5 -139 + +KPX percent ampersand -36 +KPX percent asterisk -36 +KPX percent two -36 +KPX percent six -36 +KPX percent nine -63 +KPX percent colon -73 +KPX percent less -112 +KPX percent m -63 +KPX percent braceright -36 +KPX percent Egrave -36 +KPX percent Ecircumflex -36 +KPX percent Igrave -36 +KPX percent Icircumflex -36 +KPX percent Thorn -36 +KPX percent agrave -36 +KPX percent acircumflex -36 +KPX percent adieresis -36 +KPX percent Dcaron -36 +KPX percent Dcroat -36 +KPX percent Emacron -36 +KPX percent Gcircumflex -36 +KPX percent Gbreve -36 +KPX percent Gdotaccent -36 +KPX percent Gcommaaccent -36 +KPX percent Kcommaaccent -73 +KPX percent kgreenlandic -112 +KPX percent lacute -112 +KPX percent uni01AC -36 +KPX percent uni01AE -36 +KPX percent uni01DA -36 +KPX percent uni01F0 -36 + +KPX ampersand less -36 +KPX ampersand m -36 +KPX ampersand braceright -36 +KPX ampersand kgreenlandic -36 +KPX ampersand lacute -36 +KPX ampersand uni01F4 -36 + +KPX quotesingle dollar -36 +KPX quotesingle nine -36 +KPX quotesingle less -112 +KPX quotesingle m -36 +KPX quotesingle braceright -36 +KPX quotesingle Acircumflex -36 +KPX quotesingle Adieresis -36 +KPX quotesingle AE -36 +KPX quotesingle kgreenlandic -112 +KPX quotesingle lacute -112 +KPX quotesingle uni01F4 -112 + +KPX parenright dollar -188 +KPX parenright six -36 +KPX parenright seven -36 +KPX parenright D -188 +KPX parenright H -112 +KPX parenright L -149 +KPX parenright R -73 +KPX parenright U -149 +KPX parenright X -112 +KPX parenright backslash -188 +KPX parenright cent -188 +KPX parenright sterling -188 +KPX parenright currency -188 +KPX parenright yen -188 +KPX parenright brokenbar -188 +KPX parenright section -188 +KPX parenright ordfeminine -112 +KPX parenright guillemotleft -112 +KPX parenright logicalnot -112 +KPX parenright sfthyphen -112 +KPX parenright acute -73 +KPX parenright mu -73 +KPX parenright paragraph -73 +KPX parenright periodcentered -73 +KPX parenright cedilla -73 +KPX parenright guillemotright -112 +KPX parenright onequarter -112 +KPX parenright onehalf -112 +KPX parenright threequarters -112 +KPX parenright questiondown -188 +KPX parenright Aacute -188 +KPX parenright Acircumflex -188 +KPX parenright Atilde -188 +KPX parenright Adieresis -188 +KPX parenright Aring -188 +KPX parenright AE -188 +KPX parenright Ccedilla -188 +KPX parenright Otilde -112 +KPX parenright multiply -112 +KPX parenright Ugrave -112 +KPX parenright Ucircumflex -112 +KPX parenright Yacute -112 +KPX parenright ntilde -149 +KPX parenright otilde -149 +KPX parenright dcaron -73 +KPX parenright dmacron -73 +KPX parenright emacron -73 +KPX parenright edotaccent -149 +KPX parenright eogonek -149 +KPX parenright ecaron -149 +KPX parenright Gcircumflex -36 +KPX parenright Gbreve -36 +KPX parenright Gdotaccent -36 +KPX parenright Gcommaaccent -36 +KPX parenright Hcircumflex -36 +KPX parenright Hbar -36 +KPX parenright Itilde -36 +KPX parenright imacron -112 +KPX parenright ibreve -112 +KPX parenright iogonek -112 +KPX parenright dotlessi -112 +KPX parenright ij -112 +KPX parenright jcircumflex -112 +KPX parenright Lacute -188 +KPX parenright uni01AD -73 +KPX parenright Uhorn -73 +KPX parenright uni01DA -36 +KPX parenright uni01DC -36 +KPX parenright uni01F1 -73 +KPX parenright uni01F5 -188 + +KPX asterisk seven -73 +KPX asterisk less -102 +KPX asterisk m -36 +KPX asterisk braceright -36 +KPX asterisk Hbar -73 +KPX asterisk lacute -102 + + +KPX hyphen dollar -36 +KPX hyphen m -36 +KPX hyphen braceright -36 + +KPX period dollar -36 +KPX period ampersand -112 +KPX period two -112 +KPX period seven -159 +KPX period eight -55 +KPX period colon -73 +KPX period less -73 +KPX period D -36 +KPX period H -102 +KPX period R -102 +KPX period X -102 +KPX period backslash -149 +KPX period m -131 +KPX period cent -36 +KPX period sterling -36 +KPX period currency -36 +KPX period yen -36 +KPX period brokenbar -36 +KPX period section -36 +KPX period ordfeminine -102 +KPX period guillemotleft -102 +KPX period logicalnot -102 +KPX period sfthyphen -102 +KPX period acute -102 +KPX period mu -102 +KPX period paragraph -102 +KPX period periodcentered -102 +KPX period cedilla -102 +KPX period guillemotright -102 +KPX period onequarter -102 +KPX period onehalf -102 +KPX period threequarters -102 +KPX period questiondown -149 +KPX period Aacute -149 +KPX period Egrave -112 +KPX period Icircumflex -112 +KPX period Yacute -102 +KPX period Hbar -159 +KPX period Idot -55 +KPX period dotlessi -102 +KPX period lacute -73 + +KPX slash dollar 47 +KPX slash two -73 +KPX slash seven -282 +KPX slash eight -102 +KPX slash nine -225 +KPX slash colon -188 +KPX slash less -272 +KPX slash H -36 +KPX slash R -36 +KPX slash X -36 +KPX slash backslash -188 +KPX slash ordfeminine -36 +KPX slash guillemotleft -36 +KPX slash logicalnot -36 +KPX slash sfthyphen -36 +KPX slash acute -36 +KPX slash mu -36 +KPX slash paragraph -36 +KPX slash periodcentered -36 +KPX slash cedilla -36 +KPX slash guillemotright -36 +KPX slash onequarter -36 +KPX slash onehalf -36 +KPX slash threequarters -36 +KPX slash questiondown -188 +KPX slash Aacute -188 +KPX slash Yacute -36 +KPX slash Hbar -282 +KPX slash Idot -102 +KPX slash dotlessi -36 +KPX slash lacute -272 + +KPX two dollar -36 +KPX two nine -36 +KPX two semicolon -131 +KPX two less -112 +KPX two m -36 +KPX two lacute -112 + +KPX three dollar -131 +KPX three less -45 +KPX three D -92 +KPX three H -73 +KPX three L -45 +KPX three Q -36 +KPX three R -73 +KPX three U -36 +KPX three V -36 +KPX three X -36 +KPX three m -36 +KPX three cent -92 +KPX three sterling -92 +KPX three currency -92 +KPX three yen -92 +KPX three brokenbar -92 +KPX three section -92 +KPX three ordfeminine -73 +KPX three guillemotleft -73 +KPX three logicalnot -73 +KPX three sfthyphen -73 +KPX three threesuperior -36 +KPX three acute -73 +KPX three mu -73 +KPX three paragraph -73 +KPX three periodcentered -73 +KPX three cedilla -73 +KPX three guillemotright -36 +KPX three onequarter -36 +KPX three onehalf -36 +KPX three threequarters -36 +KPX three Yacute -73 +KPX three Cdotaccent -36 +KPX three edotaccent -36 +KPX three ecaron -36 +KPX three gdotaccent -36 +KPX three gcommaaccent -36 +KPX three dotlessi -36 +KPX three lacute -45 + + +KPX five dollar -83 +KPX five ampersand -102 +KPX five seven -149 +KPX five nine -112 +KPX five colon -83 +KPX five less -131 +KPX five D -45 +KPX five H -92 +KPX five R -92 +KPX five X -92 +KPX five backslash -112 +KPX five m -112 +KPX five braceright -36 +KPX five cent -45 +KPX five sterling -45 +KPX five currency -45 +KPX five yen -45 +KPX five brokenbar -45 +KPX five section -45 +KPX five ordfeminine -92 +KPX five guillemotleft -92 +KPX five logicalnot -92 +KPX five sfthyphen -92 +KPX five acute -92 +KPX five mu -92 +KPX five paragraph -92 +KPX five periodcentered -92 +KPX five cedilla -92 +KPX five guillemotright -92 +KPX five onequarter -92 +KPX five onehalf -92 +KPX five threequarters -92 +KPX five questiondown -112 +KPX five Aacute -112 +KPX five Egrave -102 +KPX five Icircumflex -102 +KPX five Yacute -92 +KPX five Hbar -149 +KPX five dotlessi -92 +KPX five lacute -131 + +KPX six dollar 38 + +KPX seven dollar -159 +KPX seven ampersand -120 +KPX seven seven -36 +KPX seven D -339 +KPX seven F -348 +KPX seven H -348 +KPX seven L -63 +KPX seven R -348 +KPX seven U -301 +KPX seven V -339 +KPX seven X -311 +KPX seven Z -339 +KPX seven backslash -319 +KPX seven m -188 +KPX seven braceright -112 +KPX seven cent -239 +KPX seven sterling -339 +KPX seven currency -239 +KPX seven yen -239 +KPX seven brokenbar -239 +KPX seven section -239 +KPX seven copyright -348 +KPX seven ordfeminine -288 +KPX seven guillemotleft -348 +KPX seven logicalnot -288 +KPX seven sfthyphen -288 +KPX seven acute -268 +KPX seven mu -348 +KPX seven paragraph -268 +KPX seven periodcentered -268 +KPX seven cedilla -268 +KPX seven guillemotright -281 +KPX seven onequarter -311 +KPX seven onehalf -281 +KPX seven threequarters -281 +KPX seven questiondown -319 +KPX seven Aacute -319 +KPX seven Egrave -120 +KPX seven Eacute -348 +KPX seven Icircumflex -120 +KPX seven Idieresis -348 +KPX seven Yacute -348 +KPX seven edotaccent -301 +KPX seven ecaron -301 +KPX seven gdotaccent -339 +KPX seven gcommaaccent -339 +KPX seven Hbar -36 +KPX seven dotlessi -311 + +KPX eight equal -36 +KPX eight Ldot -36 + +KPX nine dollar -131 +KPX nine two -36 +KPX nine D -159 +KPX nine H -159 +KPX nine L -45 +KPX nine R -159 +KPX nine X -139 +KPX nine backslash -55 +KPX nine m -178 +KPX nine braceright -112 +KPX nine cent -159 +KPX nine sterling -159 +KPX nine currency -159 +KPX nine yen -159 +KPX nine brokenbar -159 +KPX nine section -159 +KPX nine ordfeminine -159 +KPX nine guillemotleft -159 +KPX nine logicalnot -159 +KPX nine sfthyphen -159 +KPX nine acute -159 +KPX nine mu -159 +KPX nine paragraph -159 +KPX nine periodcentered -159 +KPX nine cedilla -159 +KPX nine guillemotright -139 +KPX nine onequarter -139 +KPX nine onehalf -139 +KPX nine threequarters -139 +KPX nine questiondown -55 +KPX nine Aacute -55 +KPX nine Yacute -159 +KPX nine dotlessi -139 + +KPX colon dollar -112 +KPX colon D -131 +KPX colon H -120 +KPX colon L -45 +KPX colon R -120 +KPX colon U -92 +KPX colon X -73 +KPX colon backslash -36 +KPX colon m -112 +KPX colon braceright -36 +KPX colon cent -131 +KPX colon sterling -131 +KPX colon currency -131 +KPX colon yen -131 +KPX colon brokenbar -131 +KPX colon section -131 +KPX colon ordfeminine -120 +KPX colon guillemotleft -120 +KPX colon logicalnot -120 +KPX colon sfthyphen -120 +KPX colon acute -120 +KPX colon mu -120 +KPX colon paragraph -120 +KPX colon periodcentered -120 +KPX colon cedilla -120 +KPX colon guillemotright -73 +KPX colon onequarter -73 +KPX colon onehalf -73 +KPX colon threequarters -73 +KPX colon questiondown -36 +KPX colon Aacute -36 +KPX colon Yacute -120 +KPX colon edotaccent -92 +KPX colon ecaron -92 +KPX colon dotlessi -73 + +KPX semicolon ampersand -149 +KPX semicolon two -131 +KPX semicolon seven -36 +KPX semicolon H -92 +KPX semicolon m -112 +KPX semicolon ordfeminine -92 +KPX semicolon guillemotleft -92 +KPX semicolon logicalnot -92 +KPX semicolon sfthyphen -92 +KPX semicolon Egrave -149 +KPX semicolon Icircumflex -149 +KPX semicolon Yacute -92 +KPX semicolon Hbar -36 + +KPX less dollar -159 +KPX less ampersand -112 +KPX less two -112 +KPX less D -282 +KPX less H -272 +KPX less L -73 +KPX less R -272 +KPX less X -235 +KPX less m -225 +KPX less braceright -149 +KPX less cent -282 +KPX less sterling -282 +KPX less currency -282 +KPX less yen -282 +KPX less brokenbar -282 +KPX less section -282 +KPX less ordfeminine -272 +KPX less guillemotleft -272 +KPX less logicalnot -272 +KPX less sfthyphen -272 +KPX less acute -272 +KPX less mu -272 +KPX less paragraph -272 +KPX less periodcentered -272 +KPX less cedilla -272 +KPX less guillemotright -235 +KPX less onequarter -235 +KPX less onehalf -235 +KPX less threequarters -235 +KPX less Egrave -112 +KPX less Icircumflex -112 +KPX less Yacute -272 +KPX less dotlessi -235 + + +KPX H bracketleft -36 + +KPX I W -36 +KPX I Z -36 +KPX I backslash -36 +KPX I m -73 +KPX I braceright -36 +KPX I questiondown -36 +KPX I Aacute -36 +KPX I hbar -36 + +KPX N D -36 +KPX N H -73 +KPX N R -73 +KPX N X -63 +KPX N backslash -73 +KPX N cent -36 +KPX N sterling -36 +KPX N currency -36 +KPX N yen -36 +KPX N brokenbar -36 +KPX N section -36 +KPX N ordfeminine -73 +KPX N guillemotleft -73 +KPX N logicalnot -73 +KPX N sfthyphen -73 +KPX N acute -73 +KPX N mu -73 +KPX N paragraph -73 +KPX N periodcentered -73 +KPX N cedilla -73 +KPX N guillemotright -63 +KPX N onequarter -63 +KPX N onehalf -63 +KPX N threequarters -63 +KPX N questiondown -73 +KPX N Aacute -73 +KPX N Yacute -73 +KPX N dotlessi -63 + + +KPX R bracketleft -63 + +KPX U F -45 +KPX U G -36 +KPX U H -45 +KPX U J -36 +KPX U K -36 +KPX U P -36 +KPX U Q -36 +KPX U R -45 +KPX U T -36 +KPX U U -36 +KPX U bracketleft -55 +KPX U m -73 +KPX U copyright -45 +KPX U ordfeminine -45 +KPX U guillemotleft -45 +KPX U logicalnot -45 +KPX U sfthyphen -45 +KPX U threesuperior -36 +KPX U acute -45 +KPX U mu -45 +KPX U paragraph -45 +KPX U periodcentered -45 +KPX U cedilla -45 +KPX U Eacute -45 +KPX U Idieresis -45 +KPX U Ntilde 72 +KPX U Yacute -45 +KPX U aacute -36 +KPX U Cdotaccent -36 +KPX U edotaccent -36 +KPX U ecaron -36 + +KPX Y m -36 +KPX Y braceright -36 + +KPX Z m -36 +KPX Z braceright -36 + +KPX bracketleft F -36 +KPX bracketleft H -63 +KPX bracketleft R -63 +KPX bracketleft copyright -36 +KPX bracketleft ordfeminine -63 +KPX bracketleft guillemotleft -63 +KPX bracketleft logicalnot -63 +KPX bracketleft sfthyphen -63 +KPX bracketleft acute -63 +KPX bracketleft mu -63 +KPX bracketleft paragraph -63 +KPX bracketleft periodcentered -63 +KPX bracketleft cedilla -63 +KPX bracketleft Eacute -36 +KPX bracketleft Idieresis -36 +KPX bracketleft Yacute -63 + +KPX backslash m -36 +KPX backslash braceright -36 + +KPX m percent -36 +KPX m ampersand -36 +KPX m quotesingle -36 +KPX m asterisk -36 +KPX m hyphen -36 +KPX m seven -112 +KPX m nine -112 +KPX m colon -36 +KPX m less -149 +KPX m Y -36 +KPX m Z -36 +KPX m backslash -36 +KPX m questiondown -36 +KPX m Aacute -36 +KPX m Egrave -36 +KPX m Icircumflex -36 +KPX m Eth -36 +KPX m agrave -36 +KPX m Hbar -112 +KPX m lacute -149 + +KPX braceright dollar -73 +KPX braceright percent -73 +KPX braceright ampersand -36 +KPX braceright quotesingle -36 +KPX braceright hyphen -36 +KPX braceright two -36 +KPX braceright seven -188 +KPX braceright nine -178 +KPX braceright colon -112 +KPX braceright semicolon -112 +KPX braceright less -225 +KPX braceright Y -36 +KPX braceright Z -36 +KPX braceright backslash -36 +KPX braceright questiondown -36 +KPX braceright Aacute -36 +KPX braceright Egrave -36 +KPX braceright Icircumflex -36 +KPX braceright Eth -36 +KPX braceright Hbar -188 +KPX braceright lacute -225 + + + +KPX ordfeminine bracketleft -36 + +KPX guillemotleft bracketleft -36 + +KPX logicalnot bracketleft -36 + +KPX sfthyphen bracketleft -36 + + + +KPX acute bracketleft -63 + +KPX mu bracketleft -63 + +KPX paragraph bracketleft -63 + +KPX periodcentered bracketleft -63 + +KPX cedilla bracketleft -63 + +KPX questiondown m -36 +KPX questiondown braceright -36 + +KPX Aacute m -36 +KPX Aacute braceright -36 + +KPX Acircumflex dollar 57 +KPX Acircumflex ampersand -36 +KPX Acircumflex asterisk -36 +KPX Acircumflex two -36 +KPX Acircumflex four -36 +KPX Acircumflex seven -159 +KPX Acircumflex nine -131 +KPX Acircumflex colon -112 +KPX Acircumflex less -159 +KPX Acircumflex F -36 +KPX Acircumflex G -36 +KPX Acircumflex H -36 +KPX Acircumflex I -73 +KPX Acircumflex R -36 +KPX Acircumflex T -36 +KPX Acircumflex W -36 +KPX Acircumflex Y -120 +KPX Acircumflex Z -83 +KPX Acircumflex backslash -139 +KPX Acircumflex m -73 +KPX Acircumflex copyright -36 +KPX Acircumflex ordfeminine -36 +KPX Acircumflex guillemotleft -36 +KPX Acircumflex logicalnot -36 +KPX Acircumflex sfthyphen -36 +KPX Acircumflex acute -36 +KPX Acircumflex mu -36 +KPX Acircumflex paragraph -36 +KPX Acircumflex periodcentered -36 +KPX Acircumflex cedilla -36 +KPX Acircumflex questiondown -139 +KPX Acircumflex Aacute -139 +KPX Acircumflex Acircumflex 57 +KPX Acircumflex Adieresis 57 +KPX Acircumflex AE 57 +KPX Acircumflex Egrave -36 +KPX Acircumflex Ecircumflex -36 +KPX Acircumflex Igrave -36 +KPX Acircumflex Iacute -36 +KPX Acircumflex Icircumflex -36 +KPX Acircumflex Ntilde -36 +KPX Acircumflex Oacute -36 +KPX Acircumflex Otilde -36 +KPX Acircumflex multiply -36 +KPX Acircumflex Ugrave -36 +KPX Acircumflex Ucircumflex -36 +KPX Acircumflex Yacute -36 +KPX Acircumflex Thorn -36 +KPX Acircumflex acircumflex -36 +KPX Acircumflex Dcaron -36 +KPX Acircumflex dcaron -36 +KPX Acircumflex Dcroat -36 +KPX Acircumflex dmacron -36 +KPX Acircumflex Emacron -36 +KPX Acircumflex emacron -36 +KPX Acircumflex Hcircumflex -159 +KPX Acircumflex hcircumflex -36 +KPX Acircumflex Hbar -159 +KPX Acircumflex hbar -36 +KPX Acircumflex Kcommaaccent -112 +KPX Acircumflex kcommaaccent -83 +KPX Acircumflex kgreenlandic -159 +KPX Acircumflex Lacute -139 +KPX Acircumflex lacute -159 +KPX Acircumflex uni01F0 -36 +KPX Acircumflex uni01F1 -36 + +KPX Adieresis dollar 57 +KPX Adieresis ampersand -36 +KPX Adieresis asterisk -36 +KPX Adieresis two -36 +KPX Adieresis four -36 +KPX Adieresis seven -159 +KPX Adieresis nine -131 +KPX Adieresis colon -112 +KPX Adieresis less -159 +KPX Adieresis F -36 +KPX Adieresis G -36 +KPX Adieresis H -36 +KPX Adieresis I -73 +KPX Adieresis R -36 +KPX Adieresis T -36 +KPX Adieresis W -36 +KPX Adieresis Y -120 +KPX Adieresis Z -83 +KPX Adieresis backslash -139 +KPX Adieresis m -73 +KPX Adieresis copyright -36 +KPX Adieresis ordfeminine -36 +KPX Adieresis guillemotleft -36 +KPX Adieresis logicalnot -36 +KPX Adieresis sfthyphen -36 +KPX Adieresis acute -36 +KPX Adieresis mu -36 +KPX Adieresis paragraph -36 +KPX Adieresis periodcentered -36 +KPX Adieresis cedilla -36 +KPX Adieresis questiondown -139 +KPX Adieresis Aacute -139 +KPX Adieresis Acircumflex 57 +KPX Adieresis Adieresis 57 +KPX Adieresis AE 57 +KPX Adieresis Egrave -36 +KPX Adieresis Ecircumflex -36 +KPX Adieresis Igrave -36 +KPX Adieresis Iacute -36 +KPX Adieresis Icircumflex -36 +KPX Adieresis Ntilde -36 +KPX Adieresis Oacute -36 +KPX Adieresis Otilde -36 +KPX Adieresis multiply -36 +KPX Adieresis Ugrave -36 +KPX Adieresis Ucircumflex -36 +KPX Adieresis Yacute -36 +KPX Adieresis Thorn -36 +KPX Adieresis acircumflex -36 +KPX Adieresis Dcaron -36 +KPX Adieresis dcaron -36 +KPX Adieresis Dcroat -36 +KPX Adieresis dmacron -36 +KPX Adieresis Emacron -36 +KPX Adieresis emacron -36 +KPX Adieresis Hcircumflex -159 +KPX Adieresis hcircumflex -36 +KPX Adieresis Hbar -159 +KPX Adieresis hbar -36 +KPX Adieresis Kcommaaccent -112 +KPX Adieresis kcommaaccent -83 +KPX Adieresis kgreenlandic -159 +KPX Adieresis Lacute -139 +KPX Adieresis lacute -159 +KPX Adieresis uni01F0 -36 +KPX Adieresis uni01F1 -36 + +KPX AE dollar 57 +KPX AE ampersand -36 +KPX AE asterisk -36 +KPX AE two -36 +KPX AE four -36 +KPX AE seven -159 +KPX AE nine -131 +KPX AE colon -112 +KPX AE less -159 +KPX AE F -36 +KPX AE G -36 +KPX AE H -36 +KPX AE I -73 +KPX AE R -36 +KPX AE T -36 +KPX AE W -36 +KPX AE Y -120 +KPX AE Z -83 +KPX AE m -73 +KPX AE copyright -36 +KPX AE ordfeminine -36 +KPX AE guillemotleft -36 +KPX AE logicalnot -36 +KPX AE sfthyphen -36 +KPX AE acute -36 +KPX AE mu -36 +KPX AE paragraph -36 +KPX AE periodcentered -36 +KPX AE cedilla -36 +KPX AE Acircumflex 57 +KPX AE Adieresis 57 +KPX AE AE 57 +KPX AE Egrave -36 +KPX AE Ecircumflex -36 +KPX AE Igrave -36 +KPX AE Iacute -36 +KPX AE Icircumflex -36 +KPX AE Ntilde -36 +KPX AE Oacute -36 +KPX AE Otilde -36 +KPX AE multiply -36 +KPX AE Ugrave -36 +KPX AE Ucircumflex -36 +KPX AE Yacute -36 +KPX AE Thorn -36 +KPX AE acircumflex -36 +KPX AE Dcaron -36 +KPX AE dcaron -36 +KPX AE Dcroat -36 +KPX AE dmacron -36 +KPX AE emacron -36 +KPX AE Hcircumflex -159 +KPX AE hcircumflex -36 +KPX AE Hbar -159 +KPX AE hbar -36 +KPX AE Kcommaaccent -112 +KPX AE kcommaaccent -83 +KPX AE kgreenlandic -159 +KPX AE lacute -159 +KPX AE uni01F0 -36 +KPX AE uni01F1 -36 + +KPX Egrave less -36 +KPX Egrave m -36 +KPX Egrave braceright -36 +KPX Egrave lacute -36 + +KPX Icircumflex less -36 +KPX Icircumflex m -36 +KPX Icircumflex braceright -36 +KPX Icircumflex lacute -36 + +KPX Eth dollar -36 +KPX Eth nine -36 +KPX Eth less -112 +KPX Eth m -36 +KPX Eth braceright -36 +KPX Eth Acircumflex -36 +KPX Eth Adieresis -36 +KPX Eth AE -36 +KPX Eth kgreenlandic -112 +KPX Eth lacute -112 +KPX Eth uni01F4 -112 + +KPX Ograve dollar -36 +KPX Ograve nine -36 +KPX Ograve less -112 +KPX Ograve m -36 +KPX Ograve braceright -36 +KPX Ograve lacute -112 + +KPX Yacute bracketleft -36 + +KPX agrave seven -73 +KPX agrave less -102 +KPX agrave m -36 +KPX agrave braceright -36 +KPX agrave Hbar -73 +KPX agrave lacute -102 + +KPX ucircumflex dollar 47 +KPX ucircumflex two -73 +KPX ucircumflex seven -282 +KPX ucircumflex eight -102 +KPX ucircumflex nine -225 +KPX ucircumflex colon -188 +KPX ucircumflex less -272 +KPX ucircumflex H -36 +KPX ucircumflex R -36 +KPX ucircumflex X -36 +KPX ucircumflex backslash -188 +KPX ucircumflex ordfeminine -36 +KPX ucircumflex guillemotleft -36 +KPX ucircumflex logicalnot -36 +KPX ucircumflex sfthyphen -36 +KPX ucircumflex acute -36 +KPX ucircumflex mu -36 +KPX ucircumflex paragraph -36 +KPX ucircumflex periodcentered -36 +KPX ucircumflex cedilla -36 +KPX ucircumflex guillemotright -36 +KPX ucircumflex onequarter -36 +KPX ucircumflex onehalf -36 +KPX ucircumflex threequarters -36 +KPX ucircumflex questiondown -188 +KPX ucircumflex Aacute -188 +KPX ucircumflex Yacute -36 +KPX ucircumflex Hbar -282 +KPX ucircumflex Idot -102 +KPX ucircumflex dotlessi -36 +KPX ucircumflex lacute -272 + +KPX ydieresis dollar 47 +KPX ydieresis two -73 +KPX ydieresis seven -282 +KPX ydieresis eight -102 +KPX ydieresis nine -225 +KPX ydieresis colon -188 +KPX ydieresis less -272 +KPX ydieresis H -36 +KPX ydieresis R -36 +KPX ydieresis X -36 +KPX ydieresis backslash -188 +KPX ydieresis ordfeminine -36 +KPX ydieresis guillemotleft -36 +KPX ydieresis logicalnot -36 +KPX ydieresis sfthyphen -36 +KPX ydieresis acute -36 +KPX ydieresis mu -36 +KPX ydieresis paragraph -36 +KPX ydieresis periodcentered -36 +KPX ydieresis cedilla -36 +KPX ydieresis guillemotright -36 +KPX ydieresis onequarter -36 +KPX ydieresis onehalf -36 +KPX ydieresis threequarters -36 +KPX ydieresis questiondown -188 +KPX ydieresis Aacute -188 +KPX ydieresis Yacute -36 +KPX ydieresis Hbar -282 +KPX ydieresis Idot -102 +KPX ydieresis dotlessi -36 +KPX ydieresis lacute -272 + +KPX Abreve O -193 + + +KPX Edotaccent dollar -83 +KPX Edotaccent ampersand -102 +KPX Edotaccent seven -149 +KPX Edotaccent nine -112 +KPX Edotaccent colon -83 +KPX Edotaccent less -131 +KPX Edotaccent D -45 +KPX Edotaccent H -92 +KPX Edotaccent R -92 +KPX Edotaccent X -92 +KPX Edotaccent backslash -112 +KPX Edotaccent m -112 +KPX Edotaccent braceright -36 +KPX Edotaccent cent -45 +KPX Edotaccent sterling -45 +KPX Edotaccent currency -45 +KPX Edotaccent yen -45 +KPX Edotaccent brokenbar -45 +KPX Edotaccent section -45 +KPX Edotaccent ordfeminine -92 +KPX Edotaccent guillemotleft -92 +KPX Edotaccent logicalnot -92 +KPX Edotaccent sfthyphen -92 +KPX Edotaccent acute -92 +KPX Edotaccent mu -92 +KPX Edotaccent paragraph -92 +KPX Edotaccent periodcentered -92 +KPX Edotaccent cedilla -92 +KPX Edotaccent guillemotright -92 +KPX Edotaccent onequarter -92 +KPX Edotaccent onehalf -92 +KPX Edotaccent threequarters -92 +KPX Edotaccent questiondown -112 +KPX Edotaccent Aacute -112 +KPX Edotaccent Egrave -102 +KPX Edotaccent Icircumflex -102 +KPX Edotaccent Yacute -92 +KPX Edotaccent Hbar -149 +KPX Edotaccent dotlessi -92 +KPX Edotaccent lacute -131 + +KPX edotaccent F -45 +KPX edotaccent G -36 +KPX edotaccent H -45 +KPX edotaccent J -36 +KPX edotaccent K -36 +KPX edotaccent P -36 +KPX edotaccent Q -36 +KPX edotaccent R -45 +KPX edotaccent T -36 +KPX edotaccent U -36 +KPX edotaccent bracketleft -55 +KPX edotaccent m -73 +KPX edotaccent copyright -45 +KPX edotaccent ordfeminine -45 +KPX edotaccent guillemotleft -45 +KPX edotaccent logicalnot -45 +KPX edotaccent sfthyphen -45 +KPX edotaccent threesuperior -36 +KPX edotaccent acute -45 +KPX edotaccent mu -45 +KPX edotaccent paragraph -45 +KPX edotaccent periodcentered -45 +KPX edotaccent cedilla -45 +KPX edotaccent Eacute -45 +KPX edotaccent Idieresis -45 +KPX edotaccent Ntilde 72 +KPX edotaccent Yacute -45 +KPX edotaccent aacute -36 +KPX edotaccent Cdotaccent -36 +KPX edotaccent edotaccent -36 +KPX edotaccent ecaron -36 + +KPX Ecaron dollar -83 +KPX Ecaron ampersand -102 +KPX Ecaron seven -149 +KPX Ecaron nine -112 +KPX Ecaron colon -83 +KPX Ecaron less -131 +KPX Ecaron D -45 +KPX Ecaron H -92 +KPX Ecaron R -92 +KPX Ecaron X -92 +KPX Ecaron backslash -112 +KPX Ecaron m -112 +KPX Ecaron braceright -36 +KPX Ecaron cent -45 +KPX Ecaron sterling -45 +KPX Ecaron currency -45 +KPX Ecaron yen -45 +KPX Ecaron brokenbar -45 +KPX Ecaron section -45 +KPX Ecaron ordfeminine -92 +KPX Ecaron guillemotleft -92 +KPX Ecaron logicalnot -92 +KPX Ecaron sfthyphen -92 +KPX Ecaron acute -92 +KPX Ecaron mu -92 +KPX Ecaron paragraph -92 +KPX Ecaron periodcentered -92 +KPX Ecaron cedilla -92 +KPX Ecaron guillemotright -92 +KPX Ecaron onequarter -92 +KPX Ecaron onehalf -92 +KPX Ecaron threequarters -92 +KPX Ecaron questiondown -112 +KPX Ecaron Aacute -112 +KPX Ecaron Egrave -102 +KPX Ecaron Icircumflex -102 +KPX Ecaron Yacute -92 +KPX Ecaron Hbar -149 +KPX Ecaron dotlessi -92 +KPX Ecaron lacute -131 + +KPX ecaron F -45 +KPX ecaron G -36 +KPX ecaron H -45 +KPX ecaron J -36 +KPX ecaron K -36 +KPX ecaron P -36 +KPX ecaron Q -36 +KPX ecaron R -45 +KPX ecaron T -36 +KPX ecaron U -36 +KPX ecaron bracketleft -55 +KPX ecaron m -73 +KPX ecaron copyright -45 +KPX ecaron ordfeminine -45 +KPX ecaron guillemotleft -45 +KPX ecaron logicalnot -45 +KPX ecaron sfthyphen -45 +KPX ecaron threesuperior -36 +KPX ecaron acute -45 +KPX ecaron mu -45 +KPX ecaron paragraph -45 +KPX ecaron periodcentered -45 +KPX ecaron cedilla -45 +KPX ecaron Eacute -45 +KPX ecaron Idieresis -45 +KPX ecaron Ntilde -36 +KPX ecaron Yacute -45 +KPX ecaron aacute -36 +KPX ecaron Cdotaccent -36 +KPX ecaron edotaccent -36 +KPX ecaron ecaron -36 + +KPX Gdotaccent dollar 38 + +KPX Gcommaaccent dollar 38 + +KPX Hbar dollar -159 +KPX Hbar ampersand -120 +KPX Hbar seven -36 +KPX Hbar D -339 +KPX Hbar F -348 +KPX Hbar H -348 +KPX Hbar L -63 +KPX Hbar R -348 +KPX Hbar U -301 +KPX Hbar V -339 +KPX Hbar X -311 +KPX Hbar Z -339 +KPX Hbar backslash -319 +KPX Hbar m -188 +KPX Hbar braceright -112 +KPX Hbar cent -339 +KPX Hbar sterling -339 +KPX Hbar currency -339 +KPX Hbar yen -339 +KPX Hbar brokenbar -339 +KPX Hbar section -339 +KPX Hbar copyright -348 +KPX Hbar ordfeminine -348 +KPX Hbar guillemotleft -348 +KPX Hbar logicalnot -348 +KPX Hbar sfthyphen -348 +KPX Hbar acute -348 +KPX Hbar mu -348 +KPX Hbar paragraph -348 +KPX Hbar periodcentered -348 +KPX Hbar cedilla -348 +KPX Hbar guillemotright -311 +KPX Hbar onequarter -311 +KPX Hbar onehalf -311 +KPX Hbar threequarters -311 +KPX Hbar questiondown -319 +KPX Hbar Aacute -319 +KPX Hbar Egrave -120 +KPX Hbar Eacute -348 +KPX Hbar Icircumflex -120 +KPX Hbar Idieresis -348 +KPX Hbar Yacute -348 +KPX Hbar edotaccent -301 +KPX Hbar ecaron -301 +KPX Hbar gdotaccent -339 +KPX Hbar gcommaaccent -339 +KPX Hbar Hbar -36 +KPX Hbar dotlessi -311 + +KPX Idot equal -36 +KPX Idot Ldot -36 + +KPX lacute dollar -159 +KPX lacute ampersand -112 +KPX lacute two -112 +KPX lacute D -282 +KPX lacute H -272 +KPX lacute L -73 +KPX lacute R -272 +KPX lacute X -235 +KPX lacute m -225 +KPX lacute braceright -149 +KPX lacute cent -282 +KPX lacute sterling -282 +KPX lacute currency -282 +KPX lacute yen -282 +KPX lacute brokenbar -282 +KPX lacute section -282 +KPX lacute ordfeminine -272 +KPX lacute guillemotleft -272 +KPX lacute logicalnot -272 +KPX lacute sfthyphen -272 +KPX lacute acute -272 +KPX lacute mu -272 +KPX lacute paragraph -272 +KPX lacute periodcentered -272 +KPX lacute cedilla -272 +KPX lacute guillemotright -235 +KPX lacute onequarter -235 +KPX lacute onehalf -235 +KPX lacute threequarters -235 +KPX lacute Egrave -112 +KPX lacute Icircumflex -112 +KPX lacute Yacute -272 +KPX lacute dotlessi -235 + +EndKernPairs +EndKernData +EndFontMetrics diff --git a/public_html/2022/newcms/pdf/ttfonts/DejaVuSansMono-Bold.ttf b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSansMono-Bold.ttf similarity index 63% rename from public_html/2022/newcms/pdf/ttfonts/DejaVuSansMono-Bold.ttf rename to public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSansMono-Bold.ttf index 98bb6f6..8184ced 100644 Binary files a/public_html/2022/newcms/pdf/ttfonts/DejaVuSansMono-Bold.ttf and b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSansMono-Bold.ttf differ diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSansMono-Bold.ufm b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSansMono-Bold.ufm new file mode 100644 index 0000000..d598e20 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSansMono-Bold.ufm @@ -0,0 +1,3285 @@ +StartFontMetrics 4.1 +Notice Converted by PHP-font-lib +Comment https://github.com/PhenX/php-font-lib +EncodingScheme FontSpecific +FontName DejaVu Sans Mono +FontSubfamily Bold +UniqueID DejaVu Sans Mono Bold +FullName DejaVu Sans Mono Bold +Version Version 2.37 +PostScriptName DejaVuSansMono-Bold +Manufacturer DejaVu fonts team +FontVendorURL http://dejavu.sourceforge.net +LicenseURL http://dejavu.sourceforge.net/wiki/index.php/License +Weight Bold +ItalicAngle 0 +IsFixedPitch true +UnderlineThickness 44 +UnderlinePosition -63 +FontHeightOffset 0 +Ascender 928 +Descender -236 +FontBBox -447 -394 731 1041 +StartCharMetrics 3316 +U 32 ; WX 602 ; N space ; G 3 +U 33 ; WX 602 ; N exclam ; G 4 +U 34 ; WX 602 ; N quotedbl ; G 5 +U 35 ; WX 602 ; N numbersign ; G 6 +U 36 ; WX 602 ; N dollar ; G 7 +U 37 ; WX 602 ; N percent ; G 8 +U 38 ; WX 602 ; N ampersand ; G 9 +U 39 ; WX 602 ; N quotesingle ; G 10 +U 40 ; WX 602 ; N parenleft ; G 11 +U 41 ; WX 602 ; N parenright ; G 12 +U 42 ; WX 602 ; N asterisk ; G 13 +U 43 ; WX 602 ; N plus ; G 14 +U 44 ; WX 602 ; N comma ; G 15 +U 45 ; WX 602 ; N hyphen ; G 16 +U 46 ; WX 602 ; N period ; G 17 +U 47 ; WX 602 ; N slash ; G 18 +U 48 ; WX 602 ; N zero ; G 19 +U 49 ; WX 602 ; N one ; G 20 +U 50 ; WX 602 ; N two ; G 21 +U 51 ; WX 602 ; N three ; G 22 +U 52 ; WX 602 ; N four ; G 23 +U 53 ; WX 602 ; N five ; G 24 +U 54 ; WX 602 ; N six ; G 25 +U 55 ; WX 602 ; N seven ; G 26 +U 56 ; WX 602 ; N eight ; G 27 +U 57 ; WX 602 ; N nine ; G 28 +U 58 ; WX 602 ; N colon ; G 29 +U 59 ; WX 602 ; N semicolon ; G 30 +U 60 ; WX 602 ; N less ; G 31 +U 61 ; WX 602 ; N equal ; G 32 +U 62 ; WX 602 ; N greater ; G 33 +U 63 ; WX 602 ; N question ; G 34 +U 64 ; WX 602 ; N at ; G 35 +U 65 ; WX 602 ; N A ; G 36 +U 66 ; WX 602 ; N B ; G 37 +U 67 ; WX 602 ; N C ; G 38 +U 68 ; WX 602 ; N D ; G 39 +U 69 ; WX 602 ; N E ; G 40 +U 70 ; WX 602 ; N F ; G 41 +U 71 ; WX 602 ; N G ; G 42 +U 72 ; WX 602 ; N H ; G 43 +U 73 ; WX 602 ; N I ; G 44 +U 74 ; WX 602 ; N J ; G 45 +U 75 ; WX 602 ; N K ; G 46 +U 76 ; WX 602 ; N L ; G 47 +U 77 ; WX 602 ; N M ; G 48 +U 78 ; WX 602 ; N N ; G 49 +U 79 ; WX 602 ; N O ; G 50 +U 80 ; WX 602 ; N P ; G 51 +U 81 ; WX 602 ; N Q ; G 52 +U 82 ; WX 602 ; N R ; G 53 +U 83 ; WX 602 ; N S ; G 54 +U 84 ; WX 602 ; N T ; G 55 +U 85 ; WX 602 ; N U ; G 56 +U 86 ; WX 602 ; N V ; G 57 +U 87 ; WX 602 ; N W ; G 58 +U 88 ; WX 602 ; N X ; G 59 +U 89 ; WX 602 ; N Y ; G 60 +U 90 ; WX 602 ; N Z ; G 61 +U 91 ; WX 602 ; N bracketleft ; G 62 +U 92 ; WX 602 ; N backslash ; G 63 +U 93 ; WX 602 ; N bracketright ; G 64 +U 94 ; WX 602 ; N asciicircum ; G 65 +U 95 ; WX 602 ; N underscore ; G 66 +U 96 ; WX 602 ; N grave ; G 67 +U 97 ; WX 602 ; N a ; G 68 +U 98 ; WX 602 ; N b ; G 69 +U 99 ; WX 602 ; N c ; G 70 +U 100 ; WX 602 ; N d ; G 71 +U 101 ; WX 602 ; N e ; G 72 +U 102 ; WX 602 ; N f ; G 73 +U 103 ; WX 602 ; N g ; G 74 +U 104 ; WX 602 ; N h ; G 75 +U 105 ; WX 602 ; N i ; G 76 +U 106 ; WX 602 ; N j ; G 77 +U 107 ; WX 602 ; N k ; G 78 +U 108 ; WX 602 ; N l ; G 79 +U 109 ; WX 602 ; N m ; G 80 +U 110 ; WX 602 ; N n ; G 81 +U 111 ; WX 602 ; N o ; G 82 +U 112 ; WX 602 ; N p ; G 83 +U 113 ; WX 602 ; N q ; G 84 +U 114 ; WX 602 ; N r ; G 85 +U 115 ; WX 602 ; N s ; G 86 +U 116 ; WX 602 ; N t ; G 87 +U 117 ; WX 602 ; N u ; G 88 +U 118 ; WX 602 ; N v ; G 89 +U 119 ; WX 602 ; N w ; G 90 +U 120 ; WX 602 ; N x ; G 91 +U 121 ; WX 602 ; N y ; G 92 +U 122 ; WX 602 ; N z ; G 93 +U 123 ; WX 602 ; N braceleft ; G 94 +U 124 ; WX 602 ; N bar ; G 95 +U 125 ; WX 602 ; N braceright ; G 96 +U 126 ; WX 602 ; N asciitilde ; G 97 +U 160 ; WX 602 ; N nbspace ; G 98 +U 161 ; WX 602 ; N exclamdown ; G 99 +U 162 ; WX 602 ; N cent ; G 100 +U 163 ; WX 602 ; N sterling ; G 101 +U 164 ; WX 602 ; N currency ; G 102 +U 165 ; WX 602 ; N yen ; G 103 +U 166 ; WX 602 ; N brokenbar ; G 104 +U 167 ; WX 602 ; N section ; G 105 +U 168 ; WX 602 ; N dieresis ; G 106 +U 169 ; WX 602 ; N copyright ; G 107 +U 170 ; WX 602 ; N ordfeminine ; G 108 +U 171 ; WX 602 ; N guillemotleft ; G 109 +U 172 ; WX 602 ; N logicalnot ; G 110 +U 173 ; WX 602 ; N sfthyphen ; G 111 +U 174 ; WX 602 ; N registered ; G 112 +U 175 ; WX 602 ; N macron ; G 113 +U 176 ; WX 602 ; N degree ; G 114 +U 177 ; WX 602 ; N plusminus ; G 115 +U 178 ; WX 602 ; N twosuperior ; G 116 +U 179 ; WX 602 ; N threesuperior ; G 117 +U 180 ; WX 602 ; N acute ; G 118 +U 181 ; WX 602 ; N mu ; G 119 +U 182 ; WX 602 ; N paragraph ; G 120 +U 183 ; WX 602 ; N periodcentered ; G 121 +U 184 ; WX 602 ; N cedilla ; G 122 +U 185 ; WX 602 ; N onesuperior ; G 123 +U 186 ; WX 602 ; N ordmasculine ; G 124 +U 187 ; WX 602 ; N guillemotright ; G 125 +U 188 ; WX 602 ; N onequarter ; G 126 +U 189 ; WX 602 ; N onehalf ; G 127 +U 190 ; WX 602 ; N threequarters ; G 128 +U 191 ; WX 602 ; N questiondown ; G 129 +U 192 ; WX 602 ; N Agrave ; G 130 +U 193 ; WX 602 ; N Aacute ; G 131 +U 194 ; WX 602 ; N Acircumflex ; G 132 +U 195 ; WX 602 ; N Atilde ; G 133 +U 196 ; WX 602 ; N Adieresis ; G 134 +U 197 ; WX 602 ; N Aring ; G 135 +U 198 ; WX 602 ; N AE ; G 136 +U 199 ; WX 602 ; N Ccedilla ; G 137 +U 200 ; WX 602 ; N Egrave ; G 138 +U 201 ; WX 602 ; N Eacute ; G 139 +U 202 ; WX 602 ; N Ecircumflex ; G 140 +U 203 ; WX 602 ; N Edieresis ; G 141 +U 204 ; WX 602 ; N Igrave ; G 142 +U 205 ; WX 602 ; N Iacute ; G 143 +U 206 ; WX 602 ; N Icircumflex ; G 144 +U 207 ; WX 602 ; N Idieresis ; G 145 +U 208 ; WX 602 ; N Eth ; G 146 +U 209 ; WX 602 ; N Ntilde ; G 147 +U 210 ; WX 602 ; N Ograve ; G 148 +U 211 ; WX 602 ; N Oacute ; G 149 +U 212 ; WX 602 ; N Ocircumflex ; G 150 +U 213 ; WX 602 ; N Otilde ; G 151 +U 214 ; WX 602 ; N Odieresis ; G 152 +U 215 ; WX 602 ; N multiply ; G 153 +U 216 ; WX 602 ; N Oslash ; G 154 +U 217 ; WX 602 ; N Ugrave ; G 155 +U 218 ; WX 602 ; N Uacute ; G 156 +U 219 ; WX 602 ; N Ucircumflex ; G 157 +U 220 ; WX 602 ; N Udieresis ; G 158 +U 221 ; WX 602 ; N Yacute ; G 159 +U 222 ; WX 602 ; N Thorn ; G 160 +U 223 ; WX 602 ; N germandbls ; G 161 +U 224 ; WX 602 ; N agrave ; G 162 +U 225 ; WX 602 ; N aacute ; G 163 +U 226 ; WX 602 ; N acircumflex ; G 164 +U 227 ; WX 602 ; N atilde ; G 165 +U 228 ; WX 602 ; N adieresis ; G 166 +U 229 ; WX 602 ; N aring ; G 167 +U 230 ; WX 602 ; N ae ; G 168 +U 231 ; WX 602 ; N ccedilla ; G 169 +U 232 ; WX 602 ; N egrave ; G 170 +U 233 ; WX 602 ; N eacute ; G 171 +U 234 ; WX 602 ; N ecircumflex ; G 172 +U 235 ; WX 602 ; N edieresis ; G 173 +U 236 ; WX 602 ; N igrave ; G 174 +U 237 ; WX 602 ; N iacute ; G 175 +U 238 ; WX 602 ; N icircumflex ; G 176 +U 239 ; WX 602 ; N idieresis ; G 177 +U 240 ; WX 602 ; N eth ; G 178 +U 241 ; WX 602 ; N ntilde ; G 179 +U 242 ; WX 602 ; N ograve ; G 180 +U 243 ; WX 602 ; N oacute ; G 181 +U 244 ; WX 602 ; N ocircumflex ; G 182 +U 245 ; WX 602 ; N otilde ; G 183 +U 246 ; WX 602 ; N odieresis ; G 184 +U 247 ; WX 602 ; N divide ; G 185 +U 248 ; WX 602 ; N oslash ; G 186 +U 249 ; WX 602 ; N ugrave ; G 187 +U 250 ; WX 602 ; N uacute ; G 188 +U 251 ; WX 602 ; N ucircumflex ; G 189 +U 252 ; WX 602 ; N udieresis ; G 190 +U 253 ; WX 602 ; N yacute ; G 191 +U 254 ; WX 602 ; N thorn ; G 192 +U 255 ; WX 602 ; N ydieresis ; G 193 +U 256 ; WX 602 ; N Amacron ; G 194 +U 257 ; WX 602 ; N amacron ; G 195 +U 258 ; WX 602 ; N Abreve ; G 196 +U 259 ; WX 602 ; N abreve ; G 197 +U 260 ; WX 602 ; N Aogonek ; G 198 +U 261 ; WX 602 ; N aogonek ; G 199 +U 262 ; WX 602 ; N Cacute ; G 200 +U 263 ; WX 602 ; N cacute ; G 201 +U 264 ; WX 602 ; N Ccircumflex ; G 202 +U 265 ; WX 602 ; N ccircumflex ; G 203 +U 266 ; WX 602 ; N Cdotaccent ; G 204 +U 267 ; WX 602 ; N cdotaccent ; G 205 +U 268 ; WX 602 ; N Ccaron ; G 206 +U 269 ; WX 602 ; N ccaron ; G 207 +U 270 ; WX 602 ; N Dcaron ; G 208 +U 271 ; WX 602 ; N dcaron ; G 209 +U 272 ; WX 602 ; N Dcroat ; G 210 +U 273 ; WX 602 ; N dmacron ; G 211 +U 274 ; WX 602 ; N Emacron ; G 212 +U 275 ; WX 602 ; N emacron ; G 213 +U 276 ; WX 602 ; N Ebreve ; G 214 +U 277 ; WX 602 ; N ebreve ; G 215 +U 278 ; WX 602 ; N Edotaccent ; G 216 +U 279 ; WX 602 ; N edotaccent ; G 217 +U 280 ; WX 602 ; N Eogonek ; G 218 +U 281 ; WX 602 ; N eogonek ; G 219 +U 282 ; WX 602 ; N Ecaron ; G 220 +U 283 ; WX 602 ; N ecaron ; G 221 +U 284 ; WX 602 ; N Gcircumflex ; G 222 +U 285 ; WX 602 ; N gcircumflex ; G 223 +U 286 ; WX 602 ; N Gbreve ; G 224 +U 287 ; WX 602 ; N gbreve ; G 225 +U 288 ; WX 602 ; N Gdotaccent ; G 226 +U 289 ; WX 602 ; N gdotaccent ; G 227 +U 290 ; WX 602 ; N Gcommaaccent ; G 228 +U 291 ; WX 602 ; N gcommaaccent ; G 229 +U 292 ; WX 602 ; N Hcircumflex ; G 230 +U 293 ; WX 602 ; N hcircumflex ; G 231 +U 294 ; WX 602 ; N Hbar ; G 232 +U 295 ; WX 602 ; N hbar ; G 233 +U 296 ; WX 602 ; N Itilde ; G 234 +U 297 ; WX 602 ; N itilde ; G 235 +U 298 ; WX 602 ; N Imacron ; G 236 +U 299 ; WX 602 ; N imacron ; G 237 +U 300 ; WX 602 ; N Ibreve ; G 238 +U 301 ; WX 602 ; N ibreve ; G 239 +U 302 ; WX 602 ; N Iogonek ; G 240 +U 303 ; WX 602 ; N iogonek ; G 241 +U 304 ; WX 602 ; N Idot ; G 242 +U 305 ; WX 602 ; N dotlessi ; G 243 +U 306 ; WX 602 ; N IJ ; G 244 +U 307 ; WX 602 ; N ij ; G 245 +U 308 ; WX 602 ; N Jcircumflex ; G 246 +U 309 ; WX 602 ; N jcircumflex ; G 247 +U 310 ; WX 602 ; N Kcommaaccent ; G 248 +U 311 ; WX 602 ; N kcommaaccent ; G 249 +U 312 ; WX 602 ; N kgreenlandic ; G 250 +U 313 ; WX 602 ; N Lacute ; G 251 +U 314 ; WX 602 ; N lacute ; G 252 +U 315 ; WX 602 ; N Lcommaaccent ; G 253 +U 316 ; WX 602 ; N lcommaaccent ; G 254 +U 317 ; WX 602 ; N Lcaron ; G 255 +U 318 ; WX 602 ; N lcaron ; G 256 +U 319 ; WX 602 ; N Ldot ; G 257 +U 320 ; WX 602 ; N ldot ; G 258 +U 321 ; WX 602 ; N Lslash ; G 259 +U 322 ; WX 602 ; N lslash ; G 260 +U 323 ; WX 602 ; N Nacute ; G 261 +U 324 ; WX 602 ; N nacute ; G 262 +U 325 ; WX 602 ; N Ncommaaccent ; G 263 +U 326 ; WX 602 ; N ncommaaccent ; G 264 +U 327 ; WX 602 ; N Ncaron ; G 265 +U 328 ; WX 602 ; N ncaron ; G 266 +U 329 ; WX 602 ; N napostrophe ; G 267 +U 330 ; WX 602 ; N Eng ; G 268 +U 331 ; WX 602 ; N eng ; G 269 +U 332 ; WX 602 ; N Omacron ; G 270 +U 333 ; WX 602 ; N omacron ; G 271 +U 334 ; WX 602 ; N Obreve ; G 272 +U 335 ; WX 602 ; N obreve ; G 273 +U 336 ; WX 602 ; N Ohungarumlaut ; G 274 +U 337 ; WX 602 ; N ohungarumlaut ; G 275 +U 338 ; WX 602 ; N OE ; G 276 +U 339 ; WX 602 ; N oe ; G 277 +U 340 ; WX 602 ; N Racute ; G 278 +U 341 ; WX 602 ; N racute ; G 279 +U 342 ; WX 602 ; N Rcommaaccent ; G 280 +U 343 ; WX 602 ; N rcommaaccent ; G 281 +U 344 ; WX 602 ; N Rcaron ; G 282 +U 345 ; WX 602 ; N rcaron ; G 283 +U 346 ; WX 602 ; N Sacute ; G 284 +U 347 ; WX 602 ; N sacute ; G 285 +U 348 ; WX 602 ; N Scircumflex ; G 286 +U 349 ; WX 602 ; N scircumflex ; G 287 +U 350 ; WX 602 ; N Scedilla ; G 288 +U 351 ; WX 602 ; N scedilla ; G 289 +U 352 ; WX 602 ; N Scaron ; G 290 +U 353 ; WX 602 ; N scaron ; G 291 +U 354 ; WX 602 ; N Tcommaaccent ; G 292 +U 355 ; WX 602 ; N tcommaaccent ; G 293 +U 356 ; WX 602 ; N Tcaron ; G 294 +U 357 ; WX 602 ; N tcaron ; G 295 +U 358 ; WX 602 ; N Tbar ; G 296 +U 359 ; WX 602 ; N tbar ; G 297 +U 360 ; WX 602 ; N Utilde ; G 298 +U 361 ; WX 602 ; N utilde ; G 299 +U 362 ; WX 602 ; N Umacron ; G 300 +U 363 ; WX 602 ; N umacron ; G 301 +U 364 ; WX 602 ; N Ubreve ; G 302 +U 365 ; WX 602 ; N ubreve ; G 303 +U 366 ; WX 602 ; N Uring ; G 304 +U 367 ; WX 602 ; N uring ; G 305 +U 368 ; WX 602 ; N Uhungarumlaut ; G 306 +U 369 ; WX 602 ; N uhungarumlaut ; G 307 +U 370 ; WX 602 ; N Uogonek ; G 308 +U 371 ; WX 602 ; N uogonek ; G 309 +U 372 ; WX 602 ; N Wcircumflex ; G 310 +U 373 ; WX 602 ; N wcircumflex ; G 311 +U 374 ; WX 602 ; N Ycircumflex ; G 312 +U 375 ; WX 602 ; N ycircumflex ; G 313 +U 376 ; WX 602 ; N Ydieresis ; G 314 +U 377 ; WX 602 ; N Zacute ; G 315 +U 378 ; WX 602 ; N zacute ; G 316 +U 379 ; WX 602 ; N Zdotaccent ; G 317 +U 380 ; WX 602 ; N zdotaccent ; G 318 +U 381 ; WX 602 ; N Zcaron ; G 319 +U 382 ; WX 602 ; N zcaron ; G 320 +U 383 ; WX 602 ; N longs ; G 321 +U 384 ; WX 602 ; N uni0180 ; G 322 +U 385 ; WX 602 ; N uni0181 ; G 323 +U 386 ; WX 602 ; N uni0182 ; G 324 +U 387 ; WX 602 ; N uni0183 ; G 325 +U 388 ; WX 602 ; N uni0184 ; G 326 +U 389 ; WX 602 ; N uni0185 ; G 327 +U 390 ; WX 602 ; N uni0186 ; G 328 +U 391 ; WX 602 ; N uni0187 ; G 329 +U 392 ; WX 602 ; N uni0188 ; G 330 +U 393 ; WX 602 ; N uni0189 ; G 331 +U 394 ; WX 602 ; N uni018A ; G 332 +U 395 ; WX 602 ; N uni018B ; G 333 +U 396 ; WX 602 ; N uni018C ; G 334 +U 397 ; WX 602 ; N uni018D ; G 335 +U 398 ; WX 602 ; N uni018E ; G 336 +U 399 ; WX 602 ; N uni018F ; G 337 +U 400 ; WX 602 ; N uni0190 ; G 338 +U 401 ; WX 602 ; N uni0191 ; G 339 +U 402 ; WX 602 ; N florin ; G 340 +U 403 ; WX 602 ; N uni0193 ; G 341 +U 404 ; WX 602 ; N uni0194 ; G 342 +U 405 ; WX 602 ; N uni0195 ; G 343 +U 406 ; WX 602 ; N uni0196 ; G 344 +U 407 ; WX 602 ; N uni0197 ; G 345 +U 408 ; WX 602 ; N uni0198 ; G 346 +U 409 ; WX 602 ; N uni0199 ; G 347 +U 410 ; WX 602 ; N uni019A ; G 348 +U 411 ; WX 602 ; N uni019B ; G 349 +U 412 ; WX 602 ; N uni019C ; G 350 +U 413 ; WX 602 ; N uni019D ; G 351 +U 414 ; WX 602 ; N uni019E ; G 352 +U 415 ; WX 602 ; N uni019F ; G 353 +U 416 ; WX 602 ; N Ohorn ; G 354 +U 417 ; WX 602 ; N ohorn ; G 355 +U 418 ; WX 602 ; N uni01A2 ; G 356 +U 419 ; WX 602 ; N uni01A3 ; G 357 +U 420 ; WX 602 ; N uni01A4 ; G 358 +U 421 ; WX 602 ; N uni01A5 ; G 359 +U 422 ; WX 602 ; N uni01A6 ; G 360 +U 423 ; WX 602 ; N uni01A7 ; G 361 +U 424 ; WX 602 ; N uni01A8 ; G 362 +U 425 ; WX 602 ; N uni01A9 ; G 363 +U 426 ; WX 602 ; N uni01AA ; G 364 +U 427 ; WX 602 ; N uni01AB ; G 365 +U 428 ; WX 602 ; N uni01AC ; G 366 +U 429 ; WX 602 ; N uni01AD ; G 367 +U 430 ; WX 602 ; N uni01AE ; G 368 +U 431 ; WX 602 ; N Uhorn ; G 369 +U 432 ; WX 602 ; N uhorn ; G 370 +U 433 ; WX 602 ; N uni01B1 ; G 371 +U 434 ; WX 602 ; N uni01B2 ; G 372 +U 435 ; WX 602 ; N uni01B3 ; G 373 +U 436 ; WX 602 ; N uni01B4 ; G 374 +U 437 ; WX 602 ; N uni01B5 ; G 375 +U 438 ; WX 602 ; N uni01B6 ; G 376 +U 439 ; WX 602 ; N uni01B7 ; G 377 +U 440 ; WX 602 ; N uni01B8 ; G 378 +U 441 ; WX 602 ; N uni01B9 ; G 379 +U 442 ; WX 602 ; N uni01BA ; G 380 +U 443 ; WX 602 ; N uni01BB ; G 381 +U 444 ; WX 602 ; N uni01BC ; G 382 +U 445 ; WX 602 ; N uni01BD ; G 383 +U 446 ; WX 602 ; N uni01BE ; G 384 +U 447 ; WX 602 ; N uni01BF ; G 385 +U 448 ; WX 602 ; N uni01C0 ; G 386 +U 449 ; WX 602 ; N uni01C1 ; G 387 +U 450 ; WX 602 ; N uni01C2 ; G 388 +U 451 ; WX 602 ; N uni01C3 ; G 389 +U 461 ; WX 602 ; N uni01CD ; G 390 +U 462 ; WX 602 ; N uni01CE ; G 391 +U 463 ; WX 602 ; N uni01CF ; G 392 +U 464 ; WX 602 ; N uni01D0 ; G 393 +U 465 ; WX 602 ; N uni01D1 ; G 394 +U 466 ; WX 602 ; N uni01D2 ; G 395 +U 467 ; WX 602 ; N uni01D3 ; G 396 +U 468 ; WX 602 ; N uni01D4 ; G 397 +U 469 ; WX 602 ; N uni01D5 ; G 398 +U 470 ; WX 602 ; N uni01D6 ; G 399 +U 471 ; WX 602 ; N uni01D7 ; G 400 +U 472 ; WX 602 ; N uni01D8 ; G 401 +U 473 ; WX 602 ; N uni01D9 ; G 402 +U 474 ; WX 602 ; N uni01DA ; G 403 +U 475 ; WX 602 ; N uni01DB ; G 404 +U 476 ; WX 602 ; N uni01DC ; G 405 +U 477 ; WX 602 ; N uni01DD ; G 406 +U 478 ; WX 602 ; N uni01DE ; G 407 +U 479 ; WX 602 ; N uni01DF ; G 408 +U 480 ; WX 602 ; N uni01E0 ; G 409 +U 481 ; WX 602 ; N uni01E1 ; G 410 +U 482 ; WX 602 ; N uni01E2 ; G 411 +U 483 ; WX 602 ; N uni01E3 ; G 412 +U 486 ; WX 602 ; N Gcaron ; G 413 +U 487 ; WX 602 ; N gcaron ; G 414 +U 488 ; WX 602 ; N uni01E8 ; G 415 +U 489 ; WX 602 ; N uni01E9 ; G 416 +U 490 ; WX 602 ; N uni01EA ; G 417 +U 491 ; WX 602 ; N uni01EB ; G 418 +U 492 ; WX 602 ; N uni01EC ; G 419 +U 493 ; WX 602 ; N uni01ED ; G 420 +U 494 ; WX 602 ; N uni01EE ; G 421 +U 495 ; WX 602 ; N uni01EF ; G 422 +U 496 ; WX 602 ; N uni01F0 ; G 423 +U 500 ; WX 602 ; N uni01F4 ; G 424 +U 501 ; WX 602 ; N uni01F5 ; G 425 +U 502 ; WX 602 ; N uni01F6 ; G 426 +U 504 ; WX 602 ; N uni01F8 ; G 427 +U 505 ; WX 602 ; N uni01F9 ; G 428 +U 508 ; WX 602 ; N AEacute ; G 429 +U 509 ; WX 602 ; N aeacute ; G 430 +U 510 ; WX 602 ; N Oslashacute ; G 431 +U 511 ; WX 602 ; N oslashacute ; G 432 +U 512 ; WX 602 ; N uni0200 ; G 433 +U 513 ; WX 602 ; N uni0201 ; G 434 +U 514 ; WX 602 ; N uni0202 ; G 435 +U 515 ; WX 602 ; N uni0203 ; G 436 +U 516 ; WX 602 ; N uni0204 ; G 437 +U 517 ; WX 602 ; N uni0205 ; G 438 +U 518 ; WX 602 ; N uni0206 ; G 439 +U 519 ; WX 602 ; N uni0207 ; G 440 +U 520 ; WX 602 ; N uni0208 ; G 441 +U 521 ; WX 602 ; N uni0209 ; G 442 +U 522 ; WX 602 ; N uni020A ; G 443 +U 523 ; WX 602 ; N uni020B ; G 444 +U 524 ; WX 602 ; N uni020C ; G 445 +U 525 ; WX 602 ; N uni020D ; G 446 +U 526 ; WX 602 ; N uni020E ; G 447 +U 527 ; WX 602 ; N uni020F ; G 448 +U 528 ; WX 602 ; N uni0210 ; G 449 +U 529 ; WX 602 ; N uni0211 ; G 450 +U 530 ; WX 602 ; N uni0212 ; G 451 +U 531 ; WX 602 ; N uni0213 ; G 452 +U 532 ; WX 602 ; N uni0214 ; G 453 +U 533 ; WX 602 ; N uni0215 ; G 454 +U 534 ; WX 602 ; N uni0216 ; G 455 +U 535 ; WX 602 ; N uni0217 ; G 456 +U 536 ; WX 602 ; N Scommaaccent ; G 457 +U 537 ; WX 602 ; N scommaaccent ; G 458 +U 538 ; WX 602 ; N uni021A ; G 459 +U 539 ; WX 602 ; N uni021B ; G 460 +U 540 ; WX 602 ; N uni021C ; G 461 +U 541 ; WX 602 ; N uni021D ; G 462 +U 542 ; WX 602 ; N uni021E ; G 463 +U 543 ; WX 602 ; N uni021F ; G 464 +U 544 ; WX 602 ; N uni0220 ; G 465 +U 545 ; WX 602 ; N uni0221 ; G 466 +U 548 ; WX 602 ; N uni0224 ; G 467 +U 549 ; WX 602 ; N uni0225 ; G 468 +U 550 ; WX 602 ; N uni0226 ; G 469 +U 551 ; WX 602 ; N uni0227 ; G 470 +U 552 ; WX 602 ; N uni0228 ; G 471 +U 553 ; WX 602 ; N uni0229 ; G 472 +U 554 ; WX 602 ; N uni022A ; G 473 +U 555 ; WX 602 ; N uni022B ; G 474 +U 556 ; WX 602 ; N uni022C ; G 475 +U 557 ; WX 602 ; N uni022D ; G 476 +U 558 ; WX 602 ; N uni022E ; G 477 +U 559 ; WX 602 ; N uni022F ; G 478 +U 560 ; WX 602 ; N uni0230 ; G 479 +U 561 ; WX 602 ; N uni0231 ; G 480 +U 562 ; WX 602 ; N uni0232 ; G 481 +U 563 ; WX 602 ; N uni0233 ; G 482 +U 564 ; WX 602 ; N uni0234 ; G 483 +U 565 ; WX 602 ; N uni0235 ; G 484 +U 566 ; WX 602 ; N uni0236 ; G 485 +U 567 ; WX 602 ; N dotlessj ; G 486 +U 568 ; WX 602 ; N uni0238 ; G 487 +U 569 ; WX 602 ; N uni0239 ; G 488 +U 570 ; WX 602 ; N uni023A ; G 489 +U 571 ; WX 602 ; N uni023B ; G 490 +U 572 ; WX 602 ; N uni023C ; G 491 +U 573 ; WX 602 ; N uni023D ; G 492 +U 574 ; WX 602 ; N uni023E ; G 493 +U 575 ; WX 602 ; N uni023F ; G 494 +U 576 ; WX 602 ; N uni0240 ; G 495 +U 577 ; WX 602 ; N uni0241 ; G 496 +U 579 ; WX 602 ; N uni0243 ; G 497 +U 580 ; WX 602 ; N uni0244 ; G 498 +U 581 ; WX 602 ; N uni0245 ; G 499 +U 588 ; WX 602 ; N uni024C ; G 500 +U 589 ; WX 602 ; N uni024D ; G 501 +U 592 ; WX 602 ; N uni0250 ; G 502 +U 593 ; WX 602 ; N uni0251 ; G 503 +U 594 ; WX 602 ; N uni0252 ; G 504 +U 595 ; WX 602 ; N uni0253 ; G 505 +U 596 ; WX 602 ; N uni0254 ; G 506 +U 597 ; WX 602 ; N uni0255 ; G 507 +U 598 ; WX 602 ; N uni0256 ; G 508 +U 599 ; WX 602 ; N uni0257 ; G 509 +U 600 ; WX 602 ; N uni0258 ; G 510 +U 601 ; WX 602 ; N uni0259 ; G 511 +U 602 ; WX 602 ; N uni025A ; G 512 +U 603 ; WX 602 ; N uni025B ; G 513 +U 604 ; WX 602 ; N uni025C ; G 514 +U 605 ; WX 602 ; N uni025D ; G 515 +U 606 ; WX 602 ; N uni025E ; G 516 +U 607 ; WX 602 ; N uni025F ; G 517 +U 608 ; WX 602 ; N uni0260 ; G 518 +U 609 ; WX 602 ; N uni0261 ; G 519 +U 610 ; WX 602 ; N uni0262 ; G 520 +U 611 ; WX 602 ; N uni0263 ; G 521 +U 612 ; WX 602 ; N uni0264 ; G 522 +U 613 ; WX 602 ; N uni0265 ; G 523 +U 614 ; WX 602 ; N uni0266 ; G 524 +U 615 ; WX 602 ; N uni0267 ; G 525 +U 616 ; WX 602 ; N uni0268 ; G 526 +U 617 ; WX 602 ; N uni0269 ; G 527 +U 618 ; WX 602 ; N uni026A ; G 528 +U 619 ; WX 602 ; N uni026B ; G 529 +U 620 ; WX 602 ; N uni026C ; G 530 +U 621 ; WX 602 ; N uni026D ; G 531 +U 622 ; WX 602 ; N uni026E ; G 532 +U 623 ; WX 602 ; N uni026F ; G 533 +U 624 ; WX 602 ; N uni0270 ; G 534 +U 625 ; WX 602 ; N uni0271 ; G 535 +U 626 ; WX 602 ; N uni0272 ; G 536 +U 627 ; WX 602 ; N uni0273 ; G 537 +U 628 ; WX 602 ; N uni0274 ; G 538 +U 629 ; WX 602 ; N uni0275 ; G 539 +U 630 ; WX 602 ; N uni0276 ; G 540 +U 631 ; WX 602 ; N uni0277 ; G 541 +U 632 ; WX 602 ; N uni0278 ; G 542 +U 633 ; WX 602 ; N uni0279 ; G 543 +U 634 ; WX 602 ; N uni027A ; G 544 +U 635 ; WX 602 ; N uni027B ; G 545 +U 636 ; WX 602 ; N uni027C ; G 546 +U 637 ; WX 602 ; N uni027D ; G 547 +U 638 ; WX 602 ; N uni027E ; G 548 +U 639 ; WX 602 ; N uni027F ; G 549 +U 640 ; WX 602 ; N uni0280 ; G 550 +U 641 ; WX 602 ; N uni0281 ; G 551 +U 642 ; WX 602 ; N uni0282 ; G 552 +U 643 ; WX 602 ; N uni0283 ; G 553 +U 644 ; WX 602 ; N uni0284 ; G 554 +U 645 ; WX 602 ; N uni0285 ; G 555 +U 646 ; WX 602 ; N uni0286 ; G 556 +U 647 ; WX 602 ; N uni0287 ; G 557 +U 648 ; WX 602 ; N uni0288 ; G 558 +U 649 ; WX 602 ; N uni0289 ; G 559 +U 650 ; WX 602 ; N uni028A ; G 560 +U 651 ; WX 602 ; N uni028B ; G 561 +U 652 ; WX 602 ; N uni028C ; G 562 +U 653 ; WX 602 ; N uni028D ; G 563 +U 654 ; WX 602 ; N uni028E ; G 564 +U 655 ; WX 602 ; N uni028F ; G 565 +U 656 ; WX 602 ; N uni0290 ; G 566 +U 657 ; WX 602 ; N uni0291 ; G 567 +U 658 ; WX 602 ; N uni0292 ; G 568 +U 659 ; WX 602 ; N uni0293 ; G 569 +U 660 ; WX 602 ; N uni0294 ; G 570 +U 661 ; WX 602 ; N uni0295 ; G 571 +U 662 ; WX 602 ; N uni0296 ; G 572 +U 663 ; WX 602 ; N uni0297 ; G 573 +U 664 ; WX 602 ; N uni0298 ; G 574 +U 665 ; WX 602 ; N uni0299 ; G 575 +U 666 ; WX 602 ; N uni029A ; G 576 +U 667 ; WX 602 ; N uni029B ; G 577 +U 668 ; WX 602 ; N uni029C ; G 578 +U 669 ; WX 602 ; N uni029D ; G 579 +U 670 ; WX 602 ; N uni029E ; G 580 +U 671 ; WX 602 ; N uni029F ; G 581 +U 672 ; WX 602 ; N uni02A0 ; G 582 +U 673 ; WX 602 ; N uni02A1 ; G 583 +U 674 ; WX 602 ; N uni02A2 ; G 584 +U 675 ; WX 602 ; N uni02A3 ; G 585 +U 676 ; WX 602 ; N uni02A4 ; G 586 +U 677 ; WX 602 ; N uni02A5 ; G 587 +U 678 ; WX 602 ; N uni02A6 ; G 588 +U 679 ; WX 602 ; N uni02A7 ; G 589 +U 680 ; WX 602 ; N uni02A8 ; G 590 +U 681 ; WX 602 ; N uni02A9 ; G 591 +U 682 ; WX 602 ; N uni02AA ; G 592 +U 683 ; WX 602 ; N uni02AB ; G 593 +U 684 ; WX 602 ; N uni02AC ; G 594 +U 685 ; WX 602 ; N uni02AD ; G 595 +U 686 ; WX 602 ; N uni02AE ; G 596 +U 687 ; WX 602 ; N uni02AF ; G 597 +U 688 ; WX 602 ; N uni02B0 ; G 598 +U 689 ; WX 602 ; N uni02B1 ; G 599 +U 690 ; WX 602 ; N uni02B2 ; G 600 +U 691 ; WX 602 ; N uni02B3 ; G 601 +U 692 ; WX 602 ; N uni02B4 ; G 602 +U 693 ; WX 602 ; N uni02B5 ; G 603 +U 694 ; WX 602 ; N uni02B6 ; G 604 +U 695 ; WX 602 ; N uni02B7 ; G 605 +U 696 ; WX 602 ; N uni02B8 ; G 606 +U 697 ; WX 602 ; N uni02B9 ; G 607 +U 699 ; WX 602 ; N uni02BB ; G 608 +U 700 ; WX 602 ; N uni02BC ; G 609 +U 701 ; WX 602 ; N uni02BD ; G 610 +U 702 ; WX 602 ; N uni02BE ; G 611 +U 703 ; WX 602 ; N uni02BF ; G 612 +U 704 ; WX 602 ; N uni02C0 ; G 613 +U 705 ; WX 602 ; N uni02C1 ; G 614 +U 710 ; WX 602 ; N circumflex ; G 615 +U 711 ; WX 602 ; N caron ; G 616 +U 712 ; WX 602 ; N uni02C8 ; G 617 +U 713 ; WX 602 ; N uni02C9 ; G 618 +U 716 ; WX 602 ; N uni02CC ; G 619 +U 717 ; WX 602 ; N uni02CD ; G 620 +U 718 ; WX 602 ; N uni02CE ; G 621 +U 719 ; WX 602 ; N uni02CF ; G 622 +U 720 ; WX 602 ; N uni02D0 ; G 623 +U 721 ; WX 602 ; N uni02D1 ; G 624 +U 722 ; WX 602 ; N uni02D2 ; G 625 +U 723 ; WX 602 ; N uni02D3 ; G 626 +U 726 ; WX 602 ; N uni02D6 ; G 627 +U 727 ; WX 602 ; N uni02D7 ; G 628 +U 728 ; WX 602 ; N breve ; G 629 +U 729 ; WX 602 ; N dotaccent ; G 630 +U 730 ; WX 602 ; N ring ; G 631 +U 731 ; WX 602 ; N ogonek ; G 632 +U 732 ; WX 602 ; N tilde ; G 633 +U 733 ; WX 602 ; N hungarumlaut ; G 634 +U 734 ; WX 602 ; N uni02DE ; G 635 +U 736 ; WX 602 ; N uni02E0 ; G 636 +U 737 ; WX 602 ; N uni02E1 ; G 637 +U 738 ; WX 602 ; N uni02E2 ; G 638 +U 739 ; WX 602 ; N uni02E3 ; G 639 +U 740 ; WX 602 ; N uni02E4 ; G 640 +U 741 ; WX 602 ; N uni02E5 ; G 641 +U 742 ; WX 602 ; N uni02E6 ; G 642 +U 743 ; WX 602 ; N uni02E7 ; G 643 +U 744 ; WX 602 ; N uni02E8 ; G 644 +U 745 ; WX 602 ; N uni02E9 ; G 645 +U 750 ; WX 602 ; N uni02EE ; G 646 +U 755 ; WX 602 ; N uni02F3 ; G 647 +U 768 ; WX 602 ; N gravecomb ; G 648 +U 769 ; WX 602 ; N acutecomb ; G 649 +U 770 ; WX 602 ; N uni0302 ; G 650 +U 771 ; WX 602 ; N tildecomb ; G 651 +U 772 ; WX 602 ; N uni0304 ; G 652 +U 773 ; WX 602 ; N uni0305 ; G 653 +U 774 ; WX 602 ; N uni0306 ; G 654 +U 775 ; WX 602 ; N uni0307 ; G 655 +U 776 ; WX 602 ; N uni0308 ; G 656 +U 777 ; WX 602 ; N hookabovecomb ; G 657 +U 778 ; WX 602 ; N uni030A ; G 658 +U 779 ; WX 602 ; N uni030B ; G 659 +U 780 ; WX 602 ; N uni030C ; G 660 +U 781 ; WX 602 ; N uni030D ; G 661 +U 782 ; WX 602 ; N uni030E ; G 662 +U 783 ; WX 602 ; N uni030F ; G 663 +U 784 ; WX 602 ; N uni0310 ; G 664 +U 785 ; WX 602 ; N uni0311 ; G 665 +U 786 ; WX 602 ; N uni0312 ; G 666 +U 787 ; WX 602 ; N uni0313 ; G 667 +U 788 ; WX 602 ; N uni0314 ; G 668 +U 789 ; WX 602 ; N uni0315 ; G 669 +U 790 ; WX 602 ; N uni0316 ; G 670 +U 791 ; WX 602 ; N uni0317 ; G 671 +U 792 ; WX 602 ; N uni0318 ; G 672 +U 793 ; WX 602 ; N uni0319 ; G 673 +U 794 ; WX 602 ; N uni031A ; G 674 +U 795 ; WX 602 ; N uni031B ; G 675 +U 796 ; WX 602 ; N uni031C ; G 676 +U 797 ; WX 602 ; N uni031D ; G 677 +U 798 ; WX 602 ; N uni031E ; G 678 +U 799 ; WX 602 ; N uni031F ; G 679 +U 800 ; WX 602 ; N uni0320 ; G 680 +U 801 ; WX 602 ; N uni0321 ; G 681 +U 802 ; WX 602 ; N uni0322 ; G 682 +U 803 ; WX 602 ; N dotbelowcomb ; G 683 +U 804 ; WX 602 ; N uni0324 ; G 684 +U 805 ; WX 602 ; N uni0325 ; G 685 +U 806 ; WX 602 ; N uni0326 ; G 686 +U 807 ; WX 602 ; N uni0327 ; G 687 +U 808 ; WX 602 ; N uni0328 ; G 688 +U 809 ; WX 602 ; N uni0329 ; G 689 +U 810 ; WX 602 ; N uni032A ; G 690 +U 811 ; WX 602 ; N uni032B ; G 691 +U 812 ; WX 602 ; N uni032C ; G 692 +U 813 ; WX 602 ; N uni032D ; G 693 +U 814 ; WX 602 ; N uni032E ; G 694 +U 815 ; WX 602 ; N uni032F ; G 695 +U 816 ; WX 602 ; N uni0330 ; G 696 +U 817 ; WX 602 ; N uni0331 ; G 697 +U 818 ; WX 602 ; N uni0332 ; G 698 +U 819 ; WX 602 ; N uni0333 ; G 699 +U 820 ; WX 602 ; N uni0334 ; G 700 +U 821 ; WX 602 ; N uni0335 ; G 701 +U 822 ; WX 602 ; N uni0336 ; G 702 +U 823 ; WX 602 ; N uni0337 ; G 703 +U 824 ; WX 602 ; N uni0338 ; G 704 +U 825 ; WX 602 ; N uni0339 ; G 705 +U 826 ; WX 602 ; N uni033A ; G 706 +U 827 ; WX 602 ; N uni033B ; G 707 +U 828 ; WX 602 ; N uni033C ; G 708 +U 829 ; WX 602 ; N uni033D ; G 709 +U 830 ; WX 602 ; N uni033E ; G 710 +U 831 ; WX 602 ; N uni033F ; G 711 +U 835 ; WX 602 ; N uni0343 ; G 712 +U 856 ; WX 602 ; N uni0358 ; G 713 +U 865 ; WX 602 ; N uni0361 ; G 714 +U 884 ; WX 602 ; N uni0374 ; G 715 +U 885 ; WX 602 ; N uni0375 ; G 716 +U 886 ; WX 602 ; N uni0376 ; G 717 +U 887 ; WX 602 ; N uni0377 ; G 718 +U 890 ; WX 602 ; N uni037A ; G 719 +U 891 ; WX 602 ; N uni037B ; G 720 +U 892 ; WX 602 ; N uni037C ; G 721 +U 893 ; WX 602 ; N uni037D ; G 722 +U 894 ; WX 602 ; N uni037E ; G 723 +U 895 ; WX 602 ; N uni037F ; G 724 +U 900 ; WX 602 ; N tonos ; G 725 +U 901 ; WX 602 ; N dieresistonos ; G 726 +U 902 ; WX 602 ; N Alphatonos ; G 727 +U 903 ; WX 602 ; N anoteleia ; G 728 +U 904 ; WX 602 ; N Epsilontonos ; G 729 +U 905 ; WX 602 ; N Etatonos ; G 730 +U 906 ; WX 602 ; N Iotatonos ; G 731 +U 908 ; WX 602 ; N Omicrontonos ; G 732 +U 910 ; WX 602 ; N Upsilontonos ; G 733 +U 911 ; WX 602 ; N Omegatonos ; G 734 +U 912 ; WX 602 ; N iotadieresistonos ; G 735 +U 913 ; WX 602 ; N Alpha ; G 736 +U 914 ; WX 602 ; N Beta ; G 737 +U 915 ; WX 602 ; N Gamma ; G 738 +U 916 ; WX 602 ; N uni0394 ; G 739 +U 917 ; WX 602 ; N Epsilon ; G 740 +U 918 ; WX 602 ; N Zeta ; G 741 +U 919 ; WX 602 ; N Eta ; G 742 +U 920 ; WX 602 ; N Theta ; G 743 +U 921 ; WX 602 ; N Iota ; G 744 +U 922 ; WX 602 ; N Kappa ; G 745 +U 923 ; WX 602 ; N Lambda ; G 746 +U 924 ; WX 602 ; N Mu ; G 747 +U 925 ; WX 602 ; N Nu ; G 748 +U 926 ; WX 602 ; N Xi ; G 749 +U 927 ; WX 602 ; N Omicron ; G 750 +U 928 ; WX 602 ; N Pi ; G 751 +U 929 ; WX 602 ; N Rho ; G 752 +U 931 ; WX 602 ; N Sigma ; G 753 +U 932 ; WX 602 ; N Tau ; G 754 +U 933 ; WX 602 ; N Upsilon ; G 755 +U 934 ; WX 602 ; N Phi ; G 756 +U 935 ; WX 602 ; N Chi ; G 757 +U 936 ; WX 602 ; N Psi ; G 758 +U 937 ; WX 602 ; N Omega ; G 759 +U 938 ; WX 602 ; N Iotadieresis ; G 760 +U 939 ; WX 602 ; N Upsilondieresis ; G 761 +U 940 ; WX 602 ; N alphatonos ; G 762 +U 941 ; WX 602 ; N epsilontonos ; G 763 +U 942 ; WX 602 ; N etatonos ; G 764 +U 943 ; WX 602 ; N iotatonos ; G 765 +U 944 ; WX 602 ; N upsilondieresistonos ; G 766 +U 945 ; WX 602 ; N alpha ; G 767 +U 946 ; WX 602 ; N beta ; G 768 +U 947 ; WX 602 ; N gamma ; G 769 +U 948 ; WX 602 ; N delta ; G 770 +U 949 ; WX 602 ; N epsilon ; G 771 +U 950 ; WX 602 ; N zeta ; G 772 +U 951 ; WX 602 ; N eta ; G 773 +U 952 ; WX 602 ; N theta ; G 774 +U 953 ; WX 602 ; N iota ; G 775 +U 954 ; WX 602 ; N kappa ; G 776 +U 955 ; WX 602 ; N lambda ; G 777 +U 956 ; WX 602 ; N uni03BC ; G 778 +U 957 ; WX 602 ; N nu ; G 779 +U 958 ; WX 602 ; N xi ; G 780 +U 959 ; WX 602 ; N omicron ; G 781 +U 960 ; WX 602 ; N pi ; G 782 +U 961 ; WX 602 ; N rho ; G 783 +U 962 ; WX 602 ; N sigma1 ; G 784 +U 963 ; WX 602 ; N sigma ; G 785 +U 964 ; WX 602 ; N tau ; G 786 +U 965 ; WX 602 ; N upsilon ; G 787 +U 966 ; WX 602 ; N phi ; G 788 +U 967 ; WX 602 ; N chi ; G 789 +U 968 ; WX 602 ; N psi ; G 790 +U 969 ; WX 602 ; N omega ; G 791 +U 970 ; WX 602 ; N iotadieresis ; G 792 +U 971 ; WX 602 ; N upsilondieresis ; G 793 +U 972 ; WX 602 ; N omicrontonos ; G 794 +U 973 ; WX 602 ; N upsilontonos ; G 795 +U 974 ; WX 602 ; N omegatonos ; G 796 +U 976 ; WX 602 ; N uni03D0 ; G 797 +U 977 ; WX 602 ; N theta1 ; G 798 +U 978 ; WX 602 ; N Upsilon1 ; G 799 +U 979 ; WX 602 ; N uni03D3 ; G 800 +U 980 ; WX 602 ; N uni03D4 ; G 801 +U 981 ; WX 602 ; N phi1 ; G 802 +U 982 ; WX 602 ; N omega1 ; G 803 +U 983 ; WX 602 ; N uni03D7 ; G 804 +U 984 ; WX 602 ; N uni03D8 ; G 805 +U 985 ; WX 602 ; N uni03D9 ; G 806 +U 986 ; WX 602 ; N uni03DA ; G 807 +U 987 ; WX 602 ; N uni03DB ; G 808 +U 988 ; WX 602 ; N uni03DC ; G 809 +U 989 ; WX 602 ; N uni03DD ; G 810 +U 990 ; WX 602 ; N uni03DE ; G 811 +U 991 ; WX 602 ; N uni03DF ; G 812 +U 992 ; WX 602 ; N uni03E0 ; G 813 +U 993 ; WX 602 ; N uni03E1 ; G 814 +U 1008 ; WX 602 ; N uni03F0 ; G 815 +U 1009 ; WX 602 ; N uni03F1 ; G 816 +U 1010 ; WX 602 ; N uni03F2 ; G 817 +U 1011 ; WX 602 ; N uni03F3 ; G 818 +U 1012 ; WX 602 ; N uni03F4 ; G 819 +U 1013 ; WX 602 ; N uni03F5 ; G 820 +U 1014 ; WX 602 ; N uni03F6 ; G 821 +U 1015 ; WX 602 ; N uni03F7 ; G 822 +U 1016 ; WX 602 ; N uni03F8 ; G 823 +U 1017 ; WX 602 ; N uni03F9 ; G 824 +U 1018 ; WX 602 ; N uni03FA ; G 825 +U 1019 ; WX 602 ; N uni03FB ; G 826 +U 1020 ; WX 602 ; N uni03FC ; G 827 +U 1021 ; WX 602 ; N uni03FD ; G 828 +U 1022 ; WX 602 ; N uni03FE ; G 829 +U 1023 ; WX 602 ; N uni03FF ; G 830 +U 1024 ; WX 602 ; N uni0400 ; G 831 +U 1025 ; WX 602 ; N uni0401 ; G 832 +U 1026 ; WX 602 ; N uni0402 ; G 833 +U 1027 ; WX 602 ; N uni0403 ; G 834 +U 1028 ; WX 602 ; N uni0404 ; G 835 +U 1029 ; WX 602 ; N uni0405 ; G 836 +U 1030 ; WX 602 ; N uni0406 ; G 837 +U 1031 ; WX 602 ; N uni0407 ; G 838 +U 1032 ; WX 602 ; N uni0408 ; G 839 +U 1033 ; WX 602 ; N uni0409 ; G 840 +U 1034 ; WX 602 ; N uni040A ; G 841 +U 1035 ; WX 602 ; N uni040B ; G 842 +U 1036 ; WX 602 ; N uni040C ; G 843 +U 1037 ; WX 602 ; N uni040D ; G 844 +U 1038 ; WX 602 ; N uni040E ; G 845 +U 1039 ; WX 602 ; N uni040F ; G 846 +U 1040 ; WX 602 ; N uni0410 ; G 847 +U 1041 ; WX 602 ; N uni0411 ; G 848 +U 1042 ; WX 602 ; N uni0412 ; G 849 +U 1043 ; WX 602 ; N uni0413 ; G 850 +U 1044 ; WX 602 ; N uni0414 ; G 851 +U 1045 ; WX 602 ; N uni0415 ; G 852 +U 1046 ; WX 602 ; N uni0416 ; G 853 +U 1047 ; WX 602 ; N uni0417 ; G 854 +U 1048 ; WX 602 ; N uni0418 ; G 855 +U 1049 ; WX 602 ; N uni0419 ; G 856 +U 1050 ; WX 602 ; N uni041A ; G 857 +U 1051 ; WX 602 ; N uni041B ; G 858 +U 1052 ; WX 602 ; N uni041C ; G 859 +U 1053 ; WX 602 ; N uni041D ; G 860 +U 1054 ; WX 602 ; N uni041E ; G 861 +U 1055 ; WX 602 ; N uni041F ; G 862 +U 1056 ; WX 602 ; N uni0420 ; G 863 +U 1057 ; WX 602 ; N uni0421 ; G 864 +U 1058 ; WX 602 ; N uni0422 ; G 865 +U 1059 ; WX 602 ; N uni0423 ; G 866 +U 1060 ; WX 602 ; N uni0424 ; G 867 +U 1061 ; WX 602 ; N uni0425 ; G 868 +U 1062 ; WX 602 ; N uni0426 ; G 869 +U 1063 ; WX 602 ; N uni0427 ; G 870 +U 1064 ; WX 602 ; N uni0428 ; G 871 +U 1065 ; WX 602 ; N uni0429 ; G 872 +U 1066 ; WX 602 ; N uni042A ; G 873 +U 1067 ; WX 602 ; N uni042B ; G 874 +U 1068 ; WX 602 ; N uni042C ; G 875 +U 1069 ; WX 602 ; N uni042D ; G 876 +U 1070 ; WX 602 ; N uni042E ; G 877 +U 1071 ; WX 602 ; N uni042F ; G 878 +U 1072 ; WX 602 ; N uni0430 ; G 879 +U 1073 ; WX 602 ; N uni0431 ; G 880 +U 1074 ; WX 602 ; N uni0432 ; G 881 +U 1075 ; WX 602 ; N uni0433 ; G 882 +U 1076 ; WX 602 ; N uni0434 ; G 883 +U 1077 ; WX 602 ; N uni0435 ; G 884 +U 1078 ; WX 602 ; N uni0436 ; G 885 +U 1079 ; WX 602 ; N uni0437 ; G 886 +U 1080 ; WX 602 ; N uni0438 ; G 887 +U 1081 ; WX 602 ; N uni0439 ; G 888 +U 1082 ; WX 602 ; N uni043A ; G 889 +U 1083 ; WX 602 ; N uni043B ; G 890 +U 1084 ; WX 602 ; N uni043C ; G 891 +U 1085 ; WX 602 ; N uni043D ; G 892 +U 1086 ; WX 602 ; N uni043E ; G 893 +U 1087 ; WX 602 ; N uni043F ; G 894 +U 1088 ; WX 602 ; N uni0440 ; G 895 +U 1089 ; WX 602 ; N uni0441 ; G 896 +U 1090 ; WX 602 ; N uni0442 ; G 897 +U 1091 ; WX 602 ; N uni0443 ; G 898 +U 1092 ; WX 602 ; N uni0444 ; G 899 +U 1093 ; WX 602 ; N uni0445 ; G 900 +U 1094 ; WX 602 ; N uni0446 ; G 901 +U 1095 ; WX 602 ; N uni0447 ; G 902 +U 1096 ; WX 602 ; N uni0448 ; G 903 +U 1097 ; WX 602 ; N uni0449 ; G 904 +U 1098 ; WX 602 ; N uni044A ; G 905 +U 1099 ; WX 602 ; N uni044B ; G 906 +U 1100 ; WX 602 ; N uni044C ; G 907 +U 1101 ; WX 602 ; N uni044D ; G 908 +U 1102 ; WX 602 ; N uni044E ; G 909 +U 1103 ; WX 602 ; N uni044F ; G 910 +U 1104 ; WX 602 ; N uni0450 ; G 911 +U 1105 ; WX 602 ; N uni0451 ; G 912 +U 1106 ; WX 602 ; N uni0452 ; G 913 +U 1107 ; WX 602 ; N uni0453 ; G 914 +U 1108 ; WX 602 ; N uni0454 ; G 915 +U 1109 ; WX 602 ; N uni0455 ; G 916 +U 1110 ; WX 602 ; N uni0456 ; G 917 +U 1111 ; WX 602 ; N uni0457 ; G 918 +U 1112 ; WX 602 ; N uni0458 ; G 919 +U 1113 ; WX 602 ; N uni0459 ; G 920 +U 1114 ; WX 602 ; N uni045A ; G 921 +U 1115 ; WX 602 ; N uni045B ; G 922 +U 1116 ; WX 602 ; N uni045C ; G 923 +U 1117 ; WX 602 ; N uni045D ; G 924 +U 1118 ; WX 602 ; N uni045E ; G 925 +U 1119 ; WX 602 ; N uni045F ; G 926 +U 1122 ; WX 602 ; N uni0462 ; G 927 +U 1123 ; WX 602 ; N uni0463 ; G 928 +U 1138 ; WX 602 ; N uni0472 ; G 929 +U 1139 ; WX 602 ; N uni0473 ; G 930 +U 1168 ; WX 602 ; N uni0490 ; G 931 +U 1169 ; WX 602 ; N uni0491 ; G 932 +U 1170 ; WX 602 ; N uni0492 ; G 933 +U 1171 ; WX 602 ; N uni0493 ; G 934 +U 1172 ; WX 602 ; N uni0494 ; G 935 +U 1173 ; WX 602 ; N uni0495 ; G 936 +U 1174 ; WX 602 ; N uni0496 ; G 937 +U 1175 ; WX 602 ; N uni0497 ; G 938 +U 1176 ; WX 602 ; N uni0498 ; G 939 +U 1177 ; WX 602 ; N uni0499 ; G 940 +U 1178 ; WX 602 ; N uni049A ; G 941 +U 1179 ; WX 602 ; N uni049B ; G 942 +U 1186 ; WX 602 ; N uni04A2 ; G 943 +U 1187 ; WX 602 ; N uni04A3 ; G 944 +U 1188 ; WX 602 ; N uni04A4 ; G 945 +U 1189 ; WX 602 ; N uni04A5 ; G 946 +U 1194 ; WX 602 ; N uni04AA ; G 947 +U 1195 ; WX 602 ; N uni04AB ; G 948 +U 1196 ; WX 602 ; N uni04AC ; G 949 +U 1197 ; WX 602 ; N uni04AD ; G 950 +U 1198 ; WX 602 ; N uni04AE ; G 951 +U 1199 ; WX 602 ; N uni04AF ; G 952 +U 1200 ; WX 602 ; N uni04B0 ; G 953 +U 1201 ; WX 602 ; N uni04B1 ; G 954 +U 1202 ; WX 602 ; N uni04B2 ; G 955 +U 1203 ; WX 602 ; N uni04B3 ; G 956 +U 1210 ; WX 602 ; N uni04BA ; G 957 +U 1211 ; WX 602 ; N uni04BB ; G 958 +U 1216 ; WX 602 ; N uni04C0 ; G 959 +U 1217 ; WX 602 ; N uni04C1 ; G 960 +U 1218 ; WX 602 ; N uni04C2 ; G 961 +U 1219 ; WX 602 ; N uni04C3 ; G 962 +U 1220 ; WX 602 ; N uni04C4 ; G 963 +U 1223 ; WX 602 ; N uni04C7 ; G 964 +U 1224 ; WX 602 ; N uni04C8 ; G 965 +U 1227 ; WX 602 ; N uni04CB ; G 966 +U 1228 ; WX 602 ; N uni04CC ; G 967 +U 1231 ; WX 602 ; N uni04CF ; G 968 +U 1232 ; WX 602 ; N uni04D0 ; G 969 +U 1233 ; WX 602 ; N uni04D1 ; G 970 +U 1234 ; WX 602 ; N uni04D2 ; G 971 +U 1235 ; WX 602 ; N uni04D3 ; G 972 +U 1236 ; WX 602 ; N uni04D4 ; G 973 +U 1237 ; WX 602 ; N uni04D5 ; G 974 +U 1238 ; WX 602 ; N uni04D6 ; G 975 +U 1239 ; WX 602 ; N uni04D7 ; G 976 +U 1240 ; WX 602 ; N uni04D8 ; G 977 +U 1241 ; WX 602 ; N uni04D9 ; G 978 +U 1242 ; WX 602 ; N uni04DA ; G 979 +U 1243 ; WX 602 ; N uni04DB ; G 980 +U 1244 ; WX 602 ; N uni04DC ; G 981 +U 1245 ; WX 602 ; N uni04DD ; G 982 +U 1246 ; WX 602 ; N uni04DE ; G 983 +U 1247 ; WX 602 ; N uni04DF ; G 984 +U 1248 ; WX 602 ; N uni04E0 ; G 985 +U 1249 ; WX 602 ; N uni04E1 ; G 986 +U 1250 ; WX 602 ; N uni04E2 ; G 987 +U 1251 ; WX 602 ; N uni04E3 ; G 988 +U 1252 ; WX 602 ; N uni04E4 ; G 989 +U 1253 ; WX 602 ; N uni04E5 ; G 990 +U 1254 ; WX 602 ; N uni04E6 ; G 991 +U 1255 ; WX 602 ; N uni04E7 ; G 992 +U 1256 ; WX 602 ; N uni04E8 ; G 993 +U 1257 ; WX 602 ; N uni04E9 ; G 994 +U 1258 ; WX 602 ; N uni04EA ; G 995 +U 1259 ; WX 602 ; N uni04EB ; G 996 +U 1260 ; WX 602 ; N uni04EC ; G 997 +U 1261 ; WX 602 ; N uni04ED ; G 998 +U 1262 ; WX 602 ; N uni04EE ; G 999 +U 1263 ; WX 602 ; N uni04EF ; G 1000 +U 1264 ; WX 602 ; N uni04F0 ; G 1001 +U 1265 ; WX 602 ; N uni04F1 ; G 1002 +U 1266 ; WX 602 ; N uni04F2 ; G 1003 +U 1267 ; WX 602 ; N uni04F3 ; G 1004 +U 1268 ; WX 602 ; N uni04F4 ; G 1005 +U 1269 ; WX 602 ; N uni04F5 ; G 1006 +U 1270 ; WX 602 ; N uni04F6 ; G 1007 +U 1271 ; WX 602 ; N uni04F7 ; G 1008 +U 1272 ; WX 602 ; N uni04F8 ; G 1009 +U 1273 ; WX 602 ; N uni04F9 ; G 1010 +U 1296 ; WX 602 ; N uni0510 ; G 1011 +U 1297 ; WX 602 ; N uni0511 ; G 1012 +U 1306 ; WX 602 ; N uni051A ; G 1013 +U 1307 ; WX 602 ; N uni051B ; G 1014 +U 1308 ; WX 602 ; N uni051C ; G 1015 +U 1309 ; WX 602 ; N uni051D ; G 1016 +U 1329 ; WX 602 ; N uni0531 ; G 1017 +U 1330 ; WX 602 ; N uni0532 ; G 1018 +U 1331 ; WX 602 ; N uni0533 ; G 1019 +U 1332 ; WX 602 ; N uni0534 ; G 1020 +U 1333 ; WX 602 ; N uni0535 ; G 1021 +U 1334 ; WX 602 ; N uni0536 ; G 1022 +U 1335 ; WX 602 ; N uni0537 ; G 1023 +U 1336 ; WX 602 ; N uni0538 ; G 1024 +U 1337 ; WX 602 ; N uni0539 ; G 1025 +U 1338 ; WX 602 ; N uni053A ; G 1026 +U 1339 ; WX 602 ; N uni053B ; G 1027 +U 1340 ; WX 602 ; N uni053C ; G 1028 +U 1341 ; WX 602 ; N uni053D ; G 1029 +U 1342 ; WX 602 ; N uni053E ; G 1030 +U 1343 ; WX 602 ; N uni053F ; G 1031 +U 1344 ; WX 602 ; N uni0540 ; G 1032 +U 1345 ; WX 602 ; N uni0541 ; G 1033 +U 1346 ; WX 602 ; N uni0542 ; G 1034 +U 1347 ; WX 602 ; N uni0543 ; G 1035 +U 1348 ; WX 602 ; N uni0544 ; G 1036 +U 1349 ; WX 602 ; N uni0545 ; G 1037 +U 1350 ; WX 602 ; N uni0546 ; G 1038 +U 1351 ; WX 602 ; N uni0547 ; G 1039 +U 1352 ; WX 602 ; N uni0548 ; G 1040 +U 1353 ; WX 602 ; N uni0549 ; G 1041 +U 1354 ; WX 602 ; N uni054A ; G 1042 +U 1355 ; WX 602 ; N uni054B ; G 1043 +U 1356 ; WX 602 ; N uni054C ; G 1044 +U 1357 ; WX 602 ; N uni054D ; G 1045 +U 1358 ; WX 602 ; N uni054E ; G 1046 +U 1359 ; WX 602 ; N uni054F ; G 1047 +U 1360 ; WX 602 ; N uni0550 ; G 1048 +U 1361 ; WX 602 ; N uni0551 ; G 1049 +U 1362 ; WX 602 ; N uni0552 ; G 1050 +U 1363 ; WX 602 ; N uni0553 ; G 1051 +U 1364 ; WX 602 ; N uni0554 ; G 1052 +U 1365 ; WX 602 ; N uni0555 ; G 1053 +U 1366 ; WX 602 ; N uni0556 ; G 1054 +U 1369 ; WX 602 ; N uni0559 ; G 1055 +U 1370 ; WX 602 ; N uni055A ; G 1056 +U 1371 ; WX 602 ; N uni055B ; G 1057 +U 1372 ; WX 602 ; N uni055C ; G 1058 +U 1373 ; WX 602 ; N uni055D ; G 1059 +U 1374 ; WX 602 ; N uni055E ; G 1060 +U 1375 ; WX 602 ; N uni055F ; G 1061 +U 1377 ; WX 602 ; N uni0561 ; G 1062 +U 1378 ; WX 602 ; N uni0562 ; G 1063 +U 1379 ; WX 602 ; N uni0563 ; G 1064 +U 1380 ; WX 602 ; N uni0564 ; G 1065 +U 1381 ; WX 602 ; N uni0565 ; G 1066 +U 1382 ; WX 602 ; N uni0566 ; G 1067 +U 1383 ; WX 602 ; N uni0567 ; G 1068 +U 1384 ; WX 602 ; N uni0568 ; G 1069 +U 1385 ; WX 602 ; N uni0569 ; G 1070 +U 1386 ; WX 602 ; N uni056A ; G 1071 +U 1387 ; WX 602 ; N uni056B ; G 1072 +U 1388 ; WX 602 ; N uni056C ; G 1073 +U 1389 ; WX 602 ; N uni056D ; G 1074 +U 1390 ; WX 602 ; N uni056E ; G 1075 +U 1391 ; WX 602 ; N uni056F ; G 1076 +U 1392 ; WX 602 ; N uni0570 ; G 1077 +U 1393 ; WX 602 ; N uni0571 ; G 1078 +U 1394 ; WX 602 ; N uni0572 ; G 1079 +U 1395 ; WX 602 ; N uni0573 ; G 1080 +U 1396 ; WX 602 ; N uni0574 ; G 1081 +U 1397 ; WX 602 ; N uni0575 ; G 1082 +U 1398 ; WX 602 ; N uni0576 ; G 1083 +U 1399 ; WX 602 ; N uni0577 ; G 1084 +U 1400 ; WX 602 ; N uni0578 ; G 1085 +U 1401 ; WX 602 ; N uni0579 ; G 1086 +U 1402 ; WX 602 ; N uni057A ; G 1087 +U 1403 ; WX 602 ; N uni057B ; G 1088 +U 1404 ; WX 602 ; N uni057C ; G 1089 +U 1405 ; WX 602 ; N uni057D ; G 1090 +U 1406 ; WX 602 ; N uni057E ; G 1091 +U 1407 ; WX 602 ; N uni057F ; G 1092 +U 1408 ; WX 602 ; N uni0580 ; G 1093 +U 1409 ; WX 602 ; N uni0581 ; G 1094 +U 1410 ; WX 602 ; N uni0582 ; G 1095 +U 1411 ; WX 602 ; N uni0583 ; G 1096 +U 1412 ; WX 602 ; N uni0584 ; G 1097 +U 1413 ; WX 602 ; N uni0585 ; G 1098 +U 1414 ; WX 602 ; N uni0586 ; G 1099 +U 1415 ; WX 602 ; N uni0587 ; G 1100 +U 1417 ; WX 602 ; N uni0589 ; G 1101 +U 1418 ; WX 602 ; N uni058A ; G 1102 +U 1542 ; WX 602 ; N uni0606 ; G 1103 +U 1543 ; WX 602 ; N uni0607 ; G 1104 +U 1545 ; WX 602 ; N uni0609 ; G 1105 +U 1546 ; WX 602 ; N uni060A ; G 1106 +U 1548 ; WX 602 ; N uni060C ; G 1107 +U 1557 ; WX 602 ; N uni0615 ; G 1108 +U 1563 ; WX 602 ; N uni061B ; G 1109 +U 1567 ; WX 602 ; N uni061F ; G 1110 +U 1569 ; WX 602 ; N uni0621 ; G 1111 +U 1570 ; WX 602 ; N uni0622 ; G 1112 +U 1571 ; WX 602 ; N uni0623 ; G 1113 +U 1572 ; WX 602 ; N uni0624 ; G 1114 +U 1573 ; WX 602 ; N uni0625 ; G 1115 +U 1574 ; WX 602 ; N uni0626 ; G 1116 +U 1575 ; WX 602 ; N uni0627 ; G 1117 +U 1576 ; WX 602 ; N uni0628 ; G 1118 +U 1577 ; WX 602 ; N uni0629 ; G 1119 +U 1578 ; WX 602 ; N uni062A ; G 1120 +U 1579 ; WX 602 ; N uni062B ; G 1121 +U 1580 ; WX 602 ; N uni062C ; G 1122 +U 1581 ; WX 602 ; N uni062D ; G 1123 +U 1582 ; WX 602 ; N uni062E ; G 1124 +U 1583 ; WX 602 ; N uni062F ; G 1125 +U 1584 ; WX 602 ; N uni0630 ; G 1126 +U 1585 ; WX 602 ; N uni0631 ; G 1127 +U 1586 ; WX 602 ; N uni0632 ; G 1128 +U 1587 ; WX 602 ; N uni0633 ; G 1129 +U 1588 ; WX 602 ; N uni0634 ; G 1130 +U 1589 ; WX 602 ; N uni0635 ; G 1131 +U 1590 ; WX 602 ; N uni0636 ; G 1132 +U 1591 ; WX 602 ; N uni0637 ; G 1133 +U 1592 ; WX 602 ; N uni0638 ; G 1134 +U 1593 ; WX 602 ; N uni0639 ; G 1135 +U 1594 ; WX 602 ; N uni063A ; G 1136 +U 1600 ; WX 602 ; N uni0640 ; G 1137 +U 1601 ; WX 602 ; N uni0641 ; G 1138 +U 1602 ; WX 602 ; N uni0642 ; G 1139 +U 1603 ; WX 602 ; N uni0643 ; G 1140 +U 1604 ; WX 602 ; N uni0644 ; G 1141 +U 1605 ; WX 602 ; N uni0645 ; G 1142 +U 1606 ; WX 602 ; N uni0646 ; G 1143 +U 1607 ; WX 602 ; N uni0647 ; G 1144 +U 1608 ; WX 602 ; N uni0648 ; G 1145 +U 1609 ; WX 602 ; N uni0649 ; G 1146 +U 1610 ; WX 602 ; N uni064A ; G 1147 +U 1611 ; WX 602 ; N uni064B ; G 1148 +U 1612 ; WX 602 ; N uni064C ; G 1149 +U 1613 ; WX 602 ; N uni064D ; G 1150 +U 1614 ; WX 602 ; N uni064E ; G 1151 +U 1615 ; WX 602 ; N uni064F ; G 1152 +U 1616 ; WX 602 ; N uni0650 ; G 1153 +U 1617 ; WX 602 ; N uni0651 ; G 1154 +U 1618 ; WX 602 ; N uni0652 ; G 1155 +U 1619 ; WX 602 ; N uni0653 ; G 1156 +U 1620 ; WX 602 ; N uni0654 ; G 1157 +U 1621 ; WX 602 ; N uni0655 ; G 1158 +U 1626 ; WX 602 ; N uni065A ; G 1159 +U 1632 ; WX 602 ; N uni0660 ; G 1160 +U 1633 ; WX 602 ; N uni0661 ; G 1161 +U 1634 ; WX 602 ; N uni0662 ; G 1162 +U 1635 ; WX 602 ; N uni0663 ; G 1163 +U 1636 ; WX 602 ; N uni0664 ; G 1164 +U 1637 ; WX 602 ; N uni0665 ; G 1165 +U 1638 ; WX 602 ; N uni0666 ; G 1166 +U 1639 ; WX 602 ; N uni0667 ; G 1167 +U 1640 ; WX 602 ; N uni0668 ; G 1168 +U 1641 ; WX 602 ; N uni0669 ; G 1169 +U 1642 ; WX 602 ; N uni066A ; G 1170 +U 1643 ; WX 602 ; N uni066B ; G 1171 +U 1644 ; WX 602 ; N uni066C ; G 1172 +U 1645 ; WX 602 ; N uni066D ; G 1173 +U 1652 ; WX 602 ; N uni0674 ; G 1174 +U 1657 ; WX 602 ; N uni0679 ; G 1175 +U 1658 ; WX 602 ; N uni067A ; G 1176 +U 1659 ; WX 602 ; N uni067B ; G 1177 +U 1662 ; WX 602 ; N uni067E ; G 1178 +U 1663 ; WX 602 ; N uni067F ; G 1179 +U 1664 ; WX 602 ; N uni0680 ; G 1180 +U 1667 ; WX 602 ; N uni0683 ; G 1181 +U 1668 ; WX 602 ; N uni0684 ; G 1182 +U 1670 ; WX 602 ; N uni0686 ; G 1183 +U 1671 ; WX 602 ; N uni0687 ; G 1184 +U 1681 ; WX 602 ; N uni0691 ; G 1185 +U 1688 ; WX 602 ; N uni0698 ; G 1186 +U 1700 ; WX 602 ; N uni06A4 ; G 1187 +U 1705 ; WX 602 ; N uni06A9 ; G 1188 +U 1711 ; WX 602 ; N uni06AF ; G 1189 +U 1726 ; WX 602 ; N uni06BE ; G 1190 +U 1740 ; WX 602 ; N uni06CC ; G 1191 +U 1776 ; WX 602 ; N uni06F0 ; G 1192 +U 1777 ; WX 602 ; N uni06F1 ; G 1193 +U 1778 ; WX 602 ; N uni06F2 ; G 1194 +U 1779 ; WX 602 ; N uni06F3 ; G 1195 +U 1780 ; WX 602 ; N uni06F4 ; G 1196 +U 1781 ; WX 602 ; N uni06F5 ; G 1197 +U 1782 ; WX 602 ; N uni06F6 ; G 1198 +U 1783 ; WX 602 ; N uni06F7 ; G 1199 +U 1784 ; WX 602 ; N uni06F8 ; G 1200 +U 1785 ; WX 602 ; N uni06F9 ; G 1201 +U 3647 ; WX 602 ; N uni0E3F ; G 1202 +U 3713 ; WX 602 ; N uni0E81 ; G 1203 +U 3714 ; WX 602 ; N uni0E82 ; G 1204 +U 3716 ; WX 602 ; N uni0E84 ; G 1205 +U 3719 ; WX 602 ; N uni0E87 ; G 1206 +U 3720 ; WX 602 ; N uni0E88 ; G 1207 +U 3722 ; WX 602 ; N uni0E8A ; G 1208 +U 3725 ; WX 602 ; N uni0E8D ; G 1209 +U 3732 ; WX 602 ; N uni0E94 ; G 1210 +U 3733 ; WX 602 ; N uni0E95 ; G 1211 +U 3734 ; WX 602 ; N uni0E96 ; G 1212 +U 3735 ; WX 602 ; N uni0E97 ; G 1213 +U 3737 ; WX 602 ; N uni0E99 ; G 1214 +U 3738 ; WX 602 ; N uni0E9A ; G 1215 +U 3739 ; WX 602 ; N uni0E9B ; G 1216 +U 3740 ; WX 602 ; N uni0E9C ; G 1217 +U 3741 ; WX 602 ; N uni0E9D ; G 1218 +U 3742 ; WX 602 ; N uni0E9E ; G 1219 +U 3743 ; WX 602 ; N uni0E9F ; G 1220 +U 3745 ; WX 602 ; N uni0EA1 ; G 1221 +U 3746 ; WX 602 ; N uni0EA2 ; G 1222 +U 3747 ; WX 602 ; N uni0EA3 ; G 1223 +U 3749 ; WX 602 ; N uni0EA5 ; G 1224 +U 3751 ; WX 602 ; N uni0EA7 ; G 1225 +U 3754 ; WX 602 ; N uni0EAA ; G 1226 +U 3755 ; WX 602 ; N uni0EAB ; G 1227 +U 3757 ; WX 602 ; N uni0EAD ; G 1228 +U 3758 ; WX 602 ; N uni0EAE ; G 1229 +U 3759 ; WX 602 ; N uni0EAF ; G 1230 +U 3760 ; WX 602 ; N uni0EB0 ; G 1231 +U 3761 ; WX 602 ; N uni0EB1 ; G 1232 +U 3762 ; WX 602 ; N uni0EB2 ; G 1233 +U 3763 ; WX 602 ; N uni0EB3 ; G 1234 +U 3764 ; WX 602 ; N uni0EB4 ; G 1235 +U 3765 ; WX 602 ; N uni0EB5 ; G 1236 +U 3766 ; WX 602 ; N uni0EB6 ; G 1237 +U 3767 ; WX 602 ; N uni0EB7 ; G 1238 +U 3768 ; WX 602 ; N uni0EB8 ; G 1239 +U 3769 ; WX 602 ; N uni0EB9 ; G 1240 +U 3771 ; WX 602 ; N uni0EBB ; G 1241 +U 3772 ; WX 602 ; N uni0EBC ; G 1242 +U 3784 ; WX 602 ; N uni0EC8 ; G 1243 +U 3785 ; WX 602 ; N uni0EC9 ; G 1244 +U 3786 ; WX 602 ; N uni0ECA ; G 1245 +U 3787 ; WX 602 ; N uni0ECB ; G 1246 +U 3788 ; WX 602 ; N uni0ECC ; G 1247 +U 3789 ; WX 602 ; N uni0ECD ; G 1248 +U 4304 ; WX 602 ; N uni10D0 ; G 1249 +U 4305 ; WX 602 ; N uni10D1 ; G 1250 +U 4306 ; WX 602 ; N uni10D2 ; G 1251 +U 4307 ; WX 602 ; N uni10D3 ; G 1252 +U 4308 ; WX 602 ; N uni10D4 ; G 1253 +U 4309 ; WX 602 ; N uni10D5 ; G 1254 +U 4310 ; WX 602 ; N uni10D6 ; G 1255 +U 4311 ; WX 602 ; N uni10D7 ; G 1256 +U 4312 ; WX 602 ; N uni10D8 ; G 1257 +U 4313 ; WX 602 ; N uni10D9 ; G 1258 +U 4314 ; WX 602 ; N uni10DA ; G 1259 +U 4315 ; WX 602 ; N uni10DB ; G 1260 +U 4316 ; WX 602 ; N uni10DC ; G 1261 +U 4317 ; WX 602 ; N uni10DD ; G 1262 +U 4318 ; WX 602 ; N uni10DE ; G 1263 +U 4319 ; WX 602 ; N uni10DF ; G 1264 +U 4320 ; WX 602 ; N uni10E0 ; G 1265 +U 4321 ; WX 602 ; N uni10E1 ; G 1266 +U 4322 ; WX 602 ; N uni10E2 ; G 1267 +U 4323 ; WX 602 ; N uni10E3 ; G 1268 +U 4324 ; WX 602 ; N uni10E4 ; G 1269 +U 4325 ; WX 602 ; N uni10E5 ; G 1270 +U 4326 ; WX 602 ; N uni10E6 ; G 1271 +U 4327 ; WX 602 ; N uni10E7 ; G 1272 +U 4328 ; WX 602 ; N uni10E8 ; G 1273 +U 4329 ; WX 602 ; N uni10E9 ; G 1274 +U 4330 ; WX 602 ; N uni10EA ; G 1275 +U 4331 ; WX 602 ; N uni10EB ; G 1276 +U 4332 ; WX 602 ; N uni10EC ; G 1277 +U 4333 ; WX 602 ; N uni10ED ; G 1278 +U 4334 ; WX 602 ; N uni10EE ; G 1279 +U 4335 ; WX 602 ; N uni10EF ; G 1280 +U 4336 ; WX 602 ; N uni10F0 ; G 1281 +U 4337 ; WX 602 ; N uni10F1 ; G 1282 +U 4338 ; WX 602 ; N uni10F2 ; G 1283 +U 4339 ; WX 602 ; N uni10F3 ; G 1284 +U 4340 ; WX 602 ; N uni10F4 ; G 1285 +U 4341 ; WX 602 ; N uni10F5 ; G 1286 +U 4342 ; WX 602 ; N uni10F6 ; G 1287 +U 4343 ; WX 602 ; N uni10F7 ; G 1288 +U 4344 ; WX 602 ; N uni10F8 ; G 1289 +U 4345 ; WX 602 ; N uni10F9 ; G 1290 +U 4346 ; WX 602 ; N uni10FA ; G 1291 +U 4347 ; WX 602 ; N uni10FB ; G 1292 +U 4348 ; WX 602 ; N uni10FC ; G 1293 +U 7426 ; WX 602 ; N uni1D02 ; G 1294 +U 7432 ; WX 602 ; N uni1D08 ; G 1295 +U 7433 ; WX 602 ; N uni1D09 ; G 1296 +U 7444 ; WX 602 ; N uni1D14 ; G 1297 +U 7446 ; WX 602 ; N uni1D16 ; G 1298 +U 7447 ; WX 602 ; N uni1D17 ; G 1299 +U 7453 ; WX 602 ; N uni1D1D ; G 1300 +U 7454 ; WX 602 ; N uni1D1E ; G 1301 +U 7455 ; WX 602 ; N uni1D1F ; G 1302 +U 7468 ; WX 602 ; N uni1D2C ; G 1303 +U 7469 ; WX 602 ; N uni1D2D ; G 1304 +U 7470 ; WX 602 ; N uni1D2E ; G 1305 +U 7472 ; WX 602 ; N uni1D30 ; G 1306 +U 7473 ; WX 602 ; N uni1D31 ; G 1307 +U 7474 ; WX 602 ; N uni1D32 ; G 1308 +U 7475 ; WX 602 ; N uni1D33 ; G 1309 +U 7476 ; WX 602 ; N uni1D34 ; G 1310 +U 7477 ; WX 602 ; N uni1D35 ; G 1311 +U 7478 ; WX 602 ; N uni1D36 ; G 1312 +U 7479 ; WX 602 ; N uni1D37 ; G 1313 +U 7480 ; WX 602 ; N uni1D38 ; G 1314 +U 7481 ; WX 602 ; N uni1D39 ; G 1315 +U 7482 ; WX 602 ; N uni1D3A ; G 1316 +U 7483 ; WX 602 ; N uni1D3B ; G 1317 +U 7484 ; WX 602 ; N uni1D3C ; G 1318 +U 7486 ; WX 602 ; N uni1D3E ; G 1319 +U 7487 ; WX 602 ; N uni1D3F ; G 1320 +U 7488 ; WX 602 ; N uni1D40 ; G 1321 +U 7489 ; WX 602 ; N uni1D41 ; G 1322 +U 7490 ; WX 602 ; N uni1D42 ; G 1323 +U 7491 ; WX 602 ; N uni1D43 ; G 1324 +U 7492 ; WX 602 ; N uni1D44 ; G 1325 +U 7493 ; WX 602 ; N uni1D45 ; G 1326 +U 7494 ; WX 602 ; N uni1D46 ; G 1327 +U 7495 ; WX 602 ; N uni1D47 ; G 1328 +U 7496 ; WX 602 ; N uni1D48 ; G 1329 +U 7497 ; WX 602 ; N uni1D49 ; G 1330 +U 7498 ; WX 602 ; N uni1D4A ; G 1331 +U 7499 ; WX 602 ; N uni1D4B ; G 1332 +U 7500 ; WX 602 ; N uni1D4C ; G 1333 +U 7501 ; WX 602 ; N uni1D4D ; G 1334 +U 7502 ; WX 602 ; N uni1D4E ; G 1335 +U 7503 ; WX 602 ; N uni1D4F ; G 1336 +U 7504 ; WX 602 ; N uni1D50 ; G 1337 +U 7505 ; WX 602 ; N uni1D51 ; G 1338 +U 7506 ; WX 602 ; N uni1D52 ; G 1339 +U 7507 ; WX 602 ; N uni1D53 ; G 1340 +U 7508 ; WX 602 ; N uni1D54 ; G 1341 +U 7509 ; WX 602 ; N uni1D55 ; G 1342 +U 7510 ; WX 602 ; N uni1D56 ; G 1343 +U 7511 ; WX 602 ; N uni1D57 ; G 1344 +U 7512 ; WX 602 ; N uni1D58 ; G 1345 +U 7513 ; WX 602 ; N uni1D59 ; G 1346 +U 7514 ; WX 602 ; N uni1D5A ; G 1347 +U 7515 ; WX 602 ; N uni1D5B ; G 1348 +U 7522 ; WX 602 ; N uni1D62 ; G 1349 +U 7523 ; WX 602 ; N uni1D63 ; G 1350 +U 7524 ; WX 602 ; N uni1D64 ; G 1351 +U 7525 ; WX 602 ; N uni1D65 ; G 1352 +U 7543 ; WX 602 ; N uni1D77 ; G 1353 +U 7544 ; WX 602 ; N uni1D78 ; G 1354 +U 7547 ; WX 602 ; N uni1D7B ; G 1355 +U 7557 ; WX 602 ; N uni1D85 ; G 1356 +U 7579 ; WX 602 ; N uni1D9B ; G 1357 +U 7580 ; WX 602 ; N uni1D9C ; G 1358 +U 7581 ; WX 602 ; N uni1D9D ; G 1359 +U 7582 ; WX 602 ; N uni1D9E ; G 1360 +U 7583 ; WX 602 ; N uni1D9F ; G 1361 +U 7584 ; WX 602 ; N uni1DA0 ; G 1362 +U 7585 ; WX 602 ; N uni1DA1 ; G 1363 +U 7586 ; WX 602 ; N uni1DA2 ; G 1364 +U 7587 ; WX 602 ; N uni1DA3 ; G 1365 +U 7588 ; WX 602 ; N uni1DA4 ; G 1366 +U 7589 ; WX 602 ; N uni1DA5 ; G 1367 +U 7590 ; WX 602 ; N uni1DA6 ; G 1368 +U 7591 ; WX 602 ; N uni1DA7 ; G 1369 +U 7592 ; WX 602 ; N uni1DA8 ; G 1370 +U 7593 ; WX 602 ; N uni1DA9 ; G 1371 +U 7594 ; WX 602 ; N uni1DAA ; G 1372 +U 7595 ; WX 602 ; N uni1DAB ; G 1373 +U 7596 ; WX 602 ; N uni1DAC ; G 1374 +U 7597 ; WX 602 ; N uni1DAD ; G 1375 +U 7598 ; WX 602 ; N uni1DAE ; G 1376 +U 7599 ; WX 602 ; N uni1DAF ; G 1377 +U 7600 ; WX 602 ; N uni1DB0 ; G 1378 +U 7601 ; WX 602 ; N uni1DB1 ; G 1379 +U 7602 ; WX 602 ; N uni1DB2 ; G 1380 +U 7603 ; WX 602 ; N uni1DB3 ; G 1381 +U 7604 ; WX 602 ; N uni1DB4 ; G 1382 +U 7605 ; WX 602 ; N uni1DB5 ; G 1383 +U 7606 ; WX 602 ; N uni1DB6 ; G 1384 +U 7607 ; WX 602 ; N uni1DB7 ; G 1385 +U 7609 ; WX 602 ; N uni1DB9 ; G 1386 +U 7610 ; WX 602 ; N uni1DBA ; G 1387 +U 7611 ; WX 602 ; N uni1DBB ; G 1388 +U 7612 ; WX 602 ; N uni1DBC ; G 1389 +U 7613 ; WX 602 ; N uni1DBD ; G 1390 +U 7614 ; WX 602 ; N uni1DBE ; G 1391 +U 7615 ; WX 602 ; N uni1DBF ; G 1392 +U 7680 ; WX 602 ; N uni1E00 ; G 1393 +U 7681 ; WX 602 ; N uni1E01 ; G 1394 +U 7682 ; WX 602 ; N uni1E02 ; G 1395 +U 7683 ; WX 602 ; N uni1E03 ; G 1396 +U 7684 ; WX 602 ; N uni1E04 ; G 1397 +U 7685 ; WX 602 ; N uni1E05 ; G 1398 +U 7686 ; WX 602 ; N uni1E06 ; G 1399 +U 7687 ; WX 602 ; N uni1E07 ; G 1400 +U 7688 ; WX 602 ; N uni1E08 ; G 1401 +U 7689 ; WX 602 ; N uni1E09 ; G 1402 +U 7690 ; WX 602 ; N uni1E0A ; G 1403 +U 7691 ; WX 602 ; N uni1E0B ; G 1404 +U 7692 ; WX 602 ; N uni1E0C ; G 1405 +U 7693 ; WX 602 ; N uni1E0D ; G 1406 +U 7694 ; WX 602 ; N uni1E0E ; G 1407 +U 7695 ; WX 602 ; N uni1E0F ; G 1408 +U 7696 ; WX 602 ; N uni1E10 ; G 1409 +U 7697 ; WX 602 ; N uni1E11 ; G 1410 +U 7698 ; WX 602 ; N uni1E12 ; G 1411 +U 7699 ; WX 602 ; N uni1E13 ; G 1412 +U 7704 ; WX 602 ; N uni1E18 ; G 1413 +U 7705 ; WX 602 ; N uni1E19 ; G 1414 +U 7706 ; WX 602 ; N uni1E1A ; G 1415 +U 7707 ; WX 602 ; N uni1E1B ; G 1416 +U 7708 ; WX 602 ; N uni1E1C ; G 1417 +U 7709 ; WX 602 ; N uni1E1D ; G 1418 +U 7710 ; WX 602 ; N uni1E1E ; G 1419 +U 7711 ; WX 602 ; N uni1E1F ; G 1420 +U 7712 ; WX 602 ; N uni1E20 ; G 1421 +U 7713 ; WX 602 ; N uni1E21 ; G 1422 +U 7714 ; WX 602 ; N uni1E22 ; G 1423 +U 7715 ; WX 602 ; N uni1E23 ; G 1424 +U 7716 ; WX 602 ; N uni1E24 ; G 1425 +U 7717 ; WX 602 ; N uni1E25 ; G 1426 +U 7718 ; WX 602 ; N uni1E26 ; G 1427 +U 7719 ; WX 602 ; N uni1E27 ; G 1428 +U 7720 ; WX 602 ; N uni1E28 ; G 1429 +U 7721 ; WX 602 ; N uni1E29 ; G 1430 +U 7722 ; WX 602 ; N uni1E2A ; G 1431 +U 7723 ; WX 602 ; N uni1E2B ; G 1432 +U 7724 ; WX 602 ; N uni1E2C ; G 1433 +U 7725 ; WX 602 ; N uni1E2D ; G 1434 +U 7728 ; WX 602 ; N uni1E30 ; G 1435 +U 7729 ; WX 602 ; N uni1E31 ; G 1436 +U 7730 ; WX 602 ; N uni1E32 ; G 1437 +U 7731 ; WX 602 ; N uni1E33 ; G 1438 +U 7732 ; WX 602 ; N uni1E34 ; G 1439 +U 7733 ; WX 602 ; N uni1E35 ; G 1440 +U 7734 ; WX 602 ; N uni1E36 ; G 1441 +U 7735 ; WX 602 ; N uni1E37 ; G 1442 +U 7736 ; WX 602 ; N uni1E38 ; G 1443 +U 7737 ; WX 602 ; N uni1E39 ; G 1444 +U 7738 ; WX 602 ; N uni1E3A ; G 1445 +U 7739 ; WX 602 ; N uni1E3B ; G 1446 +U 7740 ; WX 602 ; N uni1E3C ; G 1447 +U 7741 ; WX 602 ; N uni1E3D ; G 1448 +U 7742 ; WX 602 ; N uni1E3E ; G 1449 +U 7743 ; WX 602 ; N uni1E3F ; G 1450 +U 7744 ; WX 602 ; N uni1E40 ; G 1451 +U 7745 ; WX 602 ; N uni1E41 ; G 1452 +U 7746 ; WX 602 ; N uni1E42 ; G 1453 +U 7747 ; WX 602 ; N uni1E43 ; G 1454 +U 7748 ; WX 602 ; N uni1E44 ; G 1455 +U 7749 ; WX 602 ; N uni1E45 ; G 1456 +U 7750 ; WX 602 ; N uni1E46 ; G 1457 +U 7751 ; WX 602 ; N uni1E47 ; G 1458 +U 7752 ; WX 602 ; N uni1E48 ; G 1459 +U 7753 ; WX 602 ; N uni1E49 ; G 1460 +U 7754 ; WX 602 ; N uni1E4A ; G 1461 +U 7755 ; WX 602 ; N uni1E4B ; G 1462 +U 7756 ; WX 602 ; N uni1E4C ; G 1463 +U 7757 ; WX 602 ; N uni1E4D ; G 1464 +U 7764 ; WX 602 ; N uni1E54 ; G 1465 +U 7765 ; WX 602 ; N uni1E55 ; G 1466 +U 7766 ; WX 602 ; N uni1E56 ; G 1467 +U 7767 ; WX 602 ; N uni1E57 ; G 1468 +U 7768 ; WX 602 ; N uni1E58 ; G 1469 +U 7769 ; WX 602 ; N uni1E59 ; G 1470 +U 7770 ; WX 602 ; N uni1E5A ; G 1471 +U 7771 ; WX 602 ; N uni1E5B ; G 1472 +U 7772 ; WX 602 ; N uni1E5C ; G 1473 +U 7773 ; WX 602 ; N uni1E5D ; G 1474 +U 7774 ; WX 602 ; N uni1E5E ; G 1475 +U 7775 ; WX 602 ; N uni1E5F ; G 1476 +U 7776 ; WX 602 ; N uni1E60 ; G 1477 +U 7777 ; WX 602 ; N uni1E61 ; G 1478 +U 7778 ; WX 602 ; N uni1E62 ; G 1479 +U 7779 ; WX 602 ; N uni1E63 ; G 1480 +U 7784 ; WX 602 ; N uni1E68 ; G 1481 +U 7785 ; WX 602 ; N uni1E69 ; G 1482 +U 7786 ; WX 602 ; N uni1E6A ; G 1483 +U 7787 ; WX 602 ; N uni1E6B ; G 1484 +U 7788 ; WX 602 ; N uni1E6C ; G 1485 +U 7789 ; WX 602 ; N uni1E6D ; G 1486 +U 7790 ; WX 602 ; N uni1E6E ; G 1487 +U 7791 ; WX 602 ; N uni1E6F ; G 1488 +U 7792 ; WX 602 ; N uni1E70 ; G 1489 +U 7793 ; WX 602 ; N uni1E71 ; G 1490 +U 7794 ; WX 602 ; N uni1E72 ; G 1491 +U 7795 ; WX 602 ; N uni1E73 ; G 1492 +U 7796 ; WX 602 ; N uni1E74 ; G 1493 +U 7797 ; WX 602 ; N uni1E75 ; G 1494 +U 7798 ; WX 602 ; N uni1E76 ; G 1495 +U 7799 ; WX 602 ; N uni1E77 ; G 1496 +U 7800 ; WX 602 ; N uni1E78 ; G 1497 +U 7801 ; WX 602 ; N uni1E79 ; G 1498 +U 7804 ; WX 602 ; N uni1E7C ; G 1499 +U 7805 ; WX 602 ; N uni1E7D ; G 1500 +U 7806 ; WX 602 ; N uni1E7E ; G 1501 +U 7807 ; WX 602 ; N uni1E7F ; G 1502 +U 7808 ; WX 602 ; N Wgrave ; G 1503 +U 7809 ; WX 602 ; N wgrave ; G 1504 +U 7810 ; WX 602 ; N Wacute ; G 1505 +U 7811 ; WX 602 ; N wacute ; G 1506 +U 7812 ; WX 602 ; N Wdieresis ; G 1507 +U 7813 ; WX 602 ; N wdieresis ; G 1508 +U 7814 ; WX 602 ; N uni1E86 ; G 1509 +U 7815 ; WX 602 ; N uni1E87 ; G 1510 +U 7816 ; WX 602 ; N uni1E88 ; G 1511 +U 7817 ; WX 602 ; N uni1E89 ; G 1512 +U 7818 ; WX 602 ; N uni1E8A ; G 1513 +U 7819 ; WX 602 ; N uni1E8B ; G 1514 +U 7820 ; WX 602 ; N uni1E8C ; G 1515 +U 7821 ; WX 602 ; N uni1E8D ; G 1516 +U 7822 ; WX 602 ; N uni1E8E ; G 1517 +U 7823 ; WX 602 ; N uni1E8F ; G 1518 +U 7824 ; WX 602 ; N uni1E90 ; G 1519 +U 7825 ; WX 602 ; N uni1E91 ; G 1520 +U 7826 ; WX 602 ; N uni1E92 ; G 1521 +U 7827 ; WX 602 ; N uni1E93 ; G 1522 +U 7828 ; WX 602 ; N uni1E94 ; G 1523 +U 7829 ; WX 602 ; N uni1E95 ; G 1524 +U 7830 ; WX 602 ; N uni1E96 ; G 1525 +U 7831 ; WX 602 ; N uni1E97 ; G 1526 +U 7832 ; WX 602 ; N uni1E98 ; G 1527 +U 7833 ; WX 602 ; N uni1E99 ; G 1528 +U 7835 ; WX 602 ; N uni1E9B ; G 1529 +U 7839 ; WX 602 ; N uni1E9F ; G 1530 +U 7840 ; WX 602 ; N uni1EA0 ; G 1531 +U 7841 ; WX 602 ; N uni1EA1 ; G 1532 +U 7852 ; WX 602 ; N uni1EAC ; G 1533 +U 7853 ; WX 602 ; N uni1EAD ; G 1534 +U 7856 ; WX 602 ; N uni1EB0 ; G 1535 +U 7857 ; WX 602 ; N uni1EB1 ; G 1536 +U 7862 ; WX 602 ; N uni1EB6 ; G 1537 +U 7863 ; WX 602 ; N uni1EB7 ; G 1538 +U 7864 ; WX 602 ; N uni1EB8 ; G 1539 +U 7865 ; WX 602 ; N uni1EB9 ; G 1540 +U 7868 ; WX 602 ; N uni1EBC ; G 1541 +U 7869 ; WX 602 ; N uni1EBD ; G 1542 +U 7878 ; WX 602 ; N uni1EC6 ; G 1543 +U 7879 ; WX 602 ; N uni1EC7 ; G 1544 +U 7882 ; WX 602 ; N uni1ECA ; G 1545 +U 7883 ; WX 602 ; N uni1ECB ; G 1546 +U 7884 ; WX 602 ; N uni1ECC ; G 1547 +U 7885 ; WX 602 ; N uni1ECD ; G 1548 +U 7896 ; WX 602 ; N uni1ED8 ; G 1549 +U 7897 ; WX 602 ; N uni1ED9 ; G 1550 +U 7898 ; WX 602 ; N uni1EDA ; G 1551 +U 7899 ; WX 602 ; N uni1EDB ; G 1552 +U 7900 ; WX 602 ; N uni1EDC ; G 1553 +U 7901 ; WX 602 ; N uni1EDD ; G 1554 +U 7904 ; WX 602 ; N uni1EE0 ; G 1555 +U 7905 ; WX 602 ; N uni1EE1 ; G 1556 +U 7906 ; WX 602 ; N uni1EE2 ; G 1557 +U 7907 ; WX 602 ; N uni1EE3 ; G 1558 +U 7908 ; WX 602 ; N uni1EE4 ; G 1559 +U 7909 ; WX 602 ; N uni1EE5 ; G 1560 +U 7912 ; WX 602 ; N uni1EE8 ; G 1561 +U 7913 ; WX 602 ; N uni1EE9 ; G 1562 +U 7914 ; WX 602 ; N uni1EEA ; G 1563 +U 7915 ; WX 602 ; N uni1EEB ; G 1564 +U 7918 ; WX 602 ; N uni1EEE ; G 1565 +U 7919 ; WX 602 ; N uni1EEF ; G 1566 +U 7920 ; WX 602 ; N uni1EF0 ; G 1567 +U 7921 ; WX 602 ; N uni1EF1 ; G 1568 +U 7922 ; WX 602 ; N Ygrave ; G 1569 +U 7923 ; WX 602 ; N ygrave ; G 1570 +U 7924 ; WX 602 ; N uni1EF4 ; G 1571 +U 7925 ; WX 602 ; N uni1EF5 ; G 1572 +U 7928 ; WX 602 ; N uni1EF8 ; G 1573 +U 7929 ; WX 602 ; N uni1EF9 ; G 1574 +U 7936 ; WX 602 ; N uni1F00 ; G 1575 +U 7937 ; WX 602 ; N uni1F01 ; G 1576 +U 7938 ; WX 602 ; N uni1F02 ; G 1577 +U 7939 ; WX 602 ; N uni1F03 ; G 1578 +U 7940 ; WX 602 ; N uni1F04 ; G 1579 +U 7941 ; WX 602 ; N uni1F05 ; G 1580 +U 7942 ; WX 602 ; N uni1F06 ; G 1581 +U 7943 ; WX 602 ; N uni1F07 ; G 1582 +U 7944 ; WX 602 ; N uni1F08 ; G 1583 +U 7945 ; WX 602 ; N uni1F09 ; G 1584 +U 7946 ; WX 602 ; N uni1F0A ; G 1585 +U 7947 ; WX 602 ; N uni1F0B ; G 1586 +U 7948 ; WX 602 ; N uni1F0C ; G 1587 +U 7949 ; WX 602 ; N uni1F0D ; G 1588 +U 7950 ; WX 602 ; N uni1F0E ; G 1589 +U 7951 ; WX 602 ; N uni1F0F ; G 1590 +U 7952 ; WX 602 ; N uni1F10 ; G 1591 +U 7953 ; WX 602 ; N uni1F11 ; G 1592 +U 7954 ; WX 602 ; N uni1F12 ; G 1593 +U 7955 ; WX 602 ; N uni1F13 ; G 1594 +U 7956 ; WX 602 ; N uni1F14 ; G 1595 +U 7957 ; WX 602 ; N uni1F15 ; G 1596 +U 7960 ; WX 602 ; N uni1F18 ; G 1597 +U 7961 ; WX 602 ; N uni1F19 ; G 1598 +U 7962 ; WX 602 ; N uni1F1A ; G 1599 +U 7963 ; WX 602 ; N uni1F1B ; G 1600 +U 7964 ; WX 602 ; N uni1F1C ; G 1601 +U 7965 ; WX 602 ; N uni1F1D ; G 1602 +U 7968 ; WX 602 ; N uni1F20 ; G 1603 +U 7969 ; WX 602 ; N uni1F21 ; G 1604 +U 7970 ; WX 602 ; N uni1F22 ; G 1605 +U 7971 ; WX 602 ; N uni1F23 ; G 1606 +U 7972 ; WX 602 ; N uni1F24 ; G 1607 +U 7973 ; WX 602 ; N uni1F25 ; G 1608 +U 7974 ; WX 602 ; N uni1F26 ; G 1609 +U 7975 ; WX 602 ; N uni1F27 ; G 1610 +U 7976 ; WX 602 ; N uni1F28 ; G 1611 +U 7977 ; WX 602 ; N uni1F29 ; G 1612 +U 7978 ; WX 602 ; N uni1F2A ; G 1613 +U 7979 ; WX 602 ; N uni1F2B ; G 1614 +U 7980 ; WX 602 ; N uni1F2C ; G 1615 +U 7981 ; WX 602 ; N uni1F2D ; G 1616 +U 7982 ; WX 602 ; N uni1F2E ; G 1617 +U 7983 ; WX 602 ; N uni1F2F ; G 1618 +U 7984 ; WX 602 ; N uni1F30 ; G 1619 +U 7985 ; WX 602 ; N uni1F31 ; G 1620 +U 7986 ; WX 602 ; N uni1F32 ; G 1621 +U 7987 ; WX 602 ; N uni1F33 ; G 1622 +U 7988 ; WX 602 ; N uni1F34 ; G 1623 +U 7989 ; WX 602 ; N uni1F35 ; G 1624 +U 7990 ; WX 602 ; N uni1F36 ; G 1625 +U 7991 ; WX 602 ; N uni1F37 ; G 1626 +U 7992 ; WX 602 ; N uni1F38 ; G 1627 +U 7993 ; WX 602 ; N uni1F39 ; G 1628 +U 7994 ; WX 602 ; N uni1F3A ; G 1629 +U 7995 ; WX 602 ; N uni1F3B ; G 1630 +U 7996 ; WX 602 ; N uni1F3C ; G 1631 +U 7997 ; WX 602 ; N uni1F3D ; G 1632 +U 7998 ; WX 602 ; N uni1F3E ; G 1633 +U 7999 ; WX 602 ; N uni1F3F ; G 1634 +U 8000 ; WX 602 ; N uni1F40 ; G 1635 +U 8001 ; WX 602 ; N uni1F41 ; G 1636 +U 8002 ; WX 602 ; N uni1F42 ; G 1637 +U 8003 ; WX 602 ; N uni1F43 ; G 1638 +U 8004 ; WX 602 ; N uni1F44 ; G 1639 +U 8005 ; WX 602 ; N uni1F45 ; G 1640 +U 8008 ; WX 602 ; N uni1F48 ; G 1641 +U 8009 ; WX 602 ; N uni1F49 ; G 1642 +U 8010 ; WX 602 ; N uni1F4A ; G 1643 +U 8011 ; WX 602 ; N uni1F4B ; G 1644 +U 8012 ; WX 602 ; N uni1F4C ; G 1645 +U 8013 ; WX 602 ; N uni1F4D ; G 1646 +U 8016 ; WX 602 ; N uni1F50 ; G 1647 +U 8017 ; WX 602 ; N uni1F51 ; G 1648 +U 8018 ; WX 602 ; N uni1F52 ; G 1649 +U 8019 ; WX 602 ; N uni1F53 ; G 1650 +U 8020 ; WX 602 ; N uni1F54 ; G 1651 +U 8021 ; WX 602 ; N uni1F55 ; G 1652 +U 8022 ; WX 602 ; N uni1F56 ; G 1653 +U 8023 ; WX 602 ; N uni1F57 ; G 1654 +U 8025 ; WX 602 ; N uni1F59 ; G 1655 +U 8027 ; WX 602 ; N uni1F5B ; G 1656 +U 8029 ; WX 602 ; N uni1F5D ; G 1657 +U 8031 ; WX 602 ; N uni1F5F ; G 1658 +U 8032 ; WX 602 ; N uni1F60 ; G 1659 +U 8033 ; WX 602 ; N uni1F61 ; G 1660 +U 8034 ; WX 602 ; N uni1F62 ; G 1661 +U 8035 ; WX 602 ; N uni1F63 ; G 1662 +U 8036 ; WX 602 ; N uni1F64 ; G 1663 +U 8037 ; WX 602 ; N uni1F65 ; G 1664 +U 8038 ; WX 602 ; N uni1F66 ; G 1665 +U 8039 ; WX 602 ; N uni1F67 ; G 1666 +U 8040 ; WX 602 ; N uni1F68 ; G 1667 +U 8041 ; WX 602 ; N uni1F69 ; G 1668 +U 8042 ; WX 602 ; N uni1F6A ; G 1669 +U 8043 ; WX 602 ; N uni1F6B ; G 1670 +U 8044 ; WX 602 ; N uni1F6C ; G 1671 +U 8045 ; WX 602 ; N uni1F6D ; G 1672 +U 8046 ; WX 602 ; N uni1F6E ; G 1673 +U 8047 ; WX 602 ; N uni1F6F ; G 1674 +U 8048 ; WX 602 ; N uni1F70 ; G 1675 +U 8049 ; WX 602 ; N uni1F71 ; G 1676 +U 8050 ; WX 602 ; N uni1F72 ; G 1677 +U 8051 ; WX 602 ; N uni1F73 ; G 1678 +U 8052 ; WX 602 ; N uni1F74 ; G 1679 +U 8053 ; WX 602 ; N uni1F75 ; G 1680 +U 8054 ; WX 602 ; N uni1F76 ; G 1681 +U 8055 ; WX 602 ; N uni1F77 ; G 1682 +U 8056 ; WX 602 ; N uni1F78 ; G 1683 +U 8057 ; WX 602 ; N uni1F79 ; G 1684 +U 8058 ; WX 602 ; N uni1F7A ; G 1685 +U 8059 ; WX 602 ; N uni1F7B ; G 1686 +U 8060 ; WX 602 ; N uni1F7C ; G 1687 +U 8061 ; WX 602 ; N uni1F7D ; G 1688 +U 8064 ; WX 602 ; N uni1F80 ; G 1689 +U 8065 ; WX 602 ; N uni1F81 ; G 1690 +U 8066 ; WX 602 ; N uni1F82 ; G 1691 +U 8067 ; WX 602 ; N uni1F83 ; G 1692 +U 8068 ; WX 602 ; N uni1F84 ; G 1693 +U 8069 ; WX 602 ; N uni1F85 ; G 1694 +U 8070 ; WX 602 ; N uni1F86 ; G 1695 +U 8071 ; WX 602 ; N uni1F87 ; G 1696 +U 8072 ; WX 602 ; N uni1F88 ; G 1697 +U 8073 ; WX 602 ; N uni1F89 ; G 1698 +U 8074 ; WX 602 ; N uni1F8A ; G 1699 +U 8075 ; WX 602 ; N uni1F8B ; G 1700 +U 8076 ; WX 602 ; N uni1F8C ; G 1701 +U 8077 ; WX 602 ; N uni1F8D ; G 1702 +U 8078 ; WX 602 ; N uni1F8E ; G 1703 +U 8079 ; WX 602 ; N uni1F8F ; G 1704 +U 8080 ; WX 602 ; N uni1F90 ; G 1705 +U 8081 ; WX 602 ; N uni1F91 ; G 1706 +U 8082 ; WX 602 ; N uni1F92 ; G 1707 +U 8083 ; WX 602 ; N uni1F93 ; G 1708 +U 8084 ; WX 602 ; N uni1F94 ; G 1709 +U 8085 ; WX 602 ; N uni1F95 ; G 1710 +U 8086 ; WX 602 ; N uni1F96 ; G 1711 +U 8087 ; WX 602 ; N uni1F97 ; G 1712 +U 8088 ; WX 602 ; N uni1F98 ; G 1713 +U 8089 ; WX 602 ; N uni1F99 ; G 1714 +U 8090 ; WX 602 ; N uni1F9A ; G 1715 +U 8091 ; WX 602 ; N uni1F9B ; G 1716 +U 8092 ; WX 602 ; N uni1F9C ; G 1717 +U 8093 ; WX 602 ; N uni1F9D ; G 1718 +U 8094 ; WX 602 ; N uni1F9E ; G 1719 +U 8095 ; WX 602 ; N uni1F9F ; G 1720 +U 8096 ; WX 602 ; N uni1FA0 ; G 1721 +U 8097 ; WX 602 ; N uni1FA1 ; G 1722 +U 8098 ; WX 602 ; N uni1FA2 ; G 1723 +U 8099 ; WX 602 ; N uni1FA3 ; G 1724 +U 8100 ; WX 602 ; N uni1FA4 ; G 1725 +U 8101 ; WX 602 ; N uni1FA5 ; G 1726 +U 8102 ; WX 602 ; N uni1FA6 ; G 1727 +U 8103 ; WX 602 ; N uni1FA7 ; G 1728 +U 8104 ; WX 602 ; N uni1FA8 ; G 1729 +U 8105 ; WX 602 ; N uni1FA9 ; G 1730 +U 8106 ; WX 602 ; N uni1FAA ; G 1731 +U 8107 ; WX 602 ; N uni1FAB ; G 1732 +U 8108 ; WX 602 ; N uni1FAC ; G 1733 +U 8109 ; WX 602 ; N uni1FAD ; G 1734 +U 8110 ; WX 602 ; N uni1FAE ; G 1735 +U 8111 ; WX 602 ; N uni1FAF ; G 1736 +U 8112 ; WX 602 ; N uni1FB0 ; G 1737 +U 8113 ; WX 602 ; N uni1FB1 ; G 1738 +U 8114 ; WX 602 ; N uni1FB2 ; G 1739 +U 8115 ; WX 602 ; N uni1FB3 ; G 1740 +U 8116 ; WX 602 ; N uni1FB4 ; G 1741 +U 8118 ; WX 602 ; N uni1FB6 ; G 1742 +U 8119 ; WX 602 ; N uni1FB7 ; G 1743 +U 8120 ; WX 602 ; N uni1FB8 ; G 1744 +U 8121 ; WX 602 ; N uni1FB9 ; G 1745 +U 8122 ; WX 602 ; N uni1FBA ; G 1746 +U 8123 ; WX 602 ; N uni1FBB ; G 1747 +U 8124 ; WX 602 ; N uni1FBC ; G 1748 +U 8125 ; WX 602 ; N uni1FBD ; G 1749 +U 8126 ; WX 602 ; N uni1FBE ; G 1750 +U 8127 ; WX 602 ; N uni1FBF ; G 1751 +U 8128 ; WX 602 ; N uni1FC0 ; G 1752 +U 8129 ; WX 602 ; N uni1FC1 ; G 1753 +U 8130 ; WX 602 ; N uni1FC2 ; G 1754 +U 8131 ; WX 602 ; N uni1FC3 ; G 1755 +U 8132 ; WX 602 ; N uni1FC4 ; G 1756 +U 8134 ; WX 602 ; N uni1FC6 ; G 1757 +U 8135 ; WX 602 ; N uni1FC7 ; G 1758 +U 8136 ; WX 602 ; N uni1FC8 ; G 1759 +U 8137 ; WX 602 ; N uni1FC9 ; G 1760 +U 8138 ; WX 602 ; N uni1FCA ; G 1761 +U 8139 ; WX 602 ; N uni1FCB ; G 1762 +U 8140 ; WX 602 ; N uni1FCC ; G 1763 +U 8141 ; WX 602 ; N uni1FCD ; G 1764 +U 8142 ; WX 602 ; N uni1FCE ; G 1765 +U 8143 ; WX 602 ; N uni1FCF ; G 1766 +U 8144 ; WX 602 ; N uni1FD0 ; G 1767 +U 8145 ; WX 602 ; N uni1FD1 ; G 1768 +U 8146 ; WX 602 ; N uni1FD2 ; G 1769 +U 8147 ; WX 602 ; N uni1FD3 ; G 1770 +U 8150 ; WX 602 ; N uni1FD6 ; G 1771 +U 8151 ; WX 602 ; N uni1FD7 ; G 1772 +U 8152 ; WX 602 ; N uni1FD8 ; G 1773 +U 8153 ; WX 602 ; N uni1FD9 ; G 1774 +U 8154 ; WX 602 ; N uni1FDA ; G 1775 +U 8155 ; WX 602 ; N uni1FDB ; G 1776 +U 8157 ; WX 602 ; N uni1FDD ; G 1777 +U 8158 ; WX 602 ; N uni1FDE ; G 1778 +U 8159 ; WX 602 ; N uni1FDF ; G 1779 +U 8160 ; WX 602 ; N uni1FE0 ; G 1780 +U 8161 ; WX 602 ; N uni1FE1 ; G 1781 +U 8162 ; WX 602 ; N uni1FE2 ; G 1782 +U 8163 ; WX 602 ; N uni1FE3 ; G 1783 +U 8164 ; WX 602 ; N uni1FE4 ; G 1784 +U 8165 ; WX 602 ; N uni1FE5 ; G 1785 +U 8166 ; WX 602 ; N uni1FE6 ; G 1786 +U 8167 ; WX 602 ; N uni1FE7 ; G 1787 +U 8168 ; WX 602 ; N uni1FE8 ; G 1788 +U 8169 ; WX 602 ; N uni1FE9 ; G 1789 +U 8170 ; WX 602 ; N uni1FEA ; G 1790 +U 8171 ; WX 602 ; N uni1FEB ; G 1791 +U 8172 ; WX 602 ; N uni1FEC ; G 1792 +U 8173 ; WX 602 ; N uni1FED ; G 1793 +U 8174 ; WX 602 ; N uni1FEE ; G 1794 +U 8175 ; WX 602 ; N uni1FEF ; G 1795 +U 8178 ; WX 602 ; N uni1FF2 ; G 1796 +U 8179 ; WX 602 ; N uni1FF3 ; G 1797 +U 8180 ; WX 602 ; N uni1FF4 ; G 1798 +U 8182 ; WX 602 ; N uni1FF6 ; G 1799 +U 8183 ; WX 602 ; N uni1FF7 ; G 1800 +U 8184 ; WX 602 ; N uni1FF8 ; G 1801 +U 8185 ; WX 602 ; N uni1FF9 ; G 1802 +U 8186 ; WX 602 ; N uni1FFA ; G 1803 +U 8187 ; WX 602 ; N uni1FFB ; G 1804 +U 8188 ; WX 602 ; N uni1FFC ; G 1805 +U 8189 ; WX 602 ; N uni1FFD ; G 1806 +U 8190 ; WX 602 ; N uni1FFE ; G 1807 +U 8192 ; WX 602 ; N uni2000 ; G 1808 +U 8193 ; WX 602 ; N uni2001 ; G 1809 +U 8194 ; WX 602 ; N uni2002 ; G 1810 +U 8195 ; WX 602 ; N uni2003 ; G 1811 +U 8196 ; WX 602 ; N uni2004 ; G 1812 +U 8197 ; WX 602 ; N uni2005 ; G 1813 +U 8198 ; WX 602 ; N uni2006 ; G 1814 +U 8199 ; WX 602 ; N uni2007 ; G 1815 +U 8200 ; WX 602 ; N uni2008 ; G 1816 +U 8201 ; WX 602 ; N uni2009 ; G 1817 +U 8202 ; WX 602 ; N uni200A ; G 1818 +U 8208 ; WX 602 ; N uni2010 ; G 1819 +U 8209 ; WX 602 ; N uni2011 ; G 1820 +U 8210 ; WX 602 ; N figuredash ; G 1821 +U 8211 ; WX 602 ; N endash ; G 1822 +U 8212 ; WX 602 ; N emdash ; G 1823 +U 8213 ; WX 602 ; N uni2015 ; G 1824 +U 8214 ; WX 602 ; N uni2016 ; G 1825 +U 8215 ; WX 602 ; N underscoredbl ; G 1826 +U 8216 ; WX 602 ; N quoteleft ; G 1827 +U 8217 ; WX 602 ; N quoteright ; G 1828 +U 8218 ; WX 602 ; N quotesinglbase ; G 1829 +U 8219 ; WX 602 ; N quotereversed ; G 1830 +U 8220 ; WX 602 ; N quotedblleft ; G 1831 +U 8221 ; WX 602 ; N quotedblright ; G 1832 +U 8222 ; WX 602 ; N quotedblbase ; G 1833 +U 8223 ; WX 602 ; N uni201F ; G 1834 +U 8224 ; WX 602 ; N dagger ; G 1835 +U 8225 ; WX 602 ; N daggerdbl ; G 1836 +U 8226 ; WX 602 ; N bullet ; G 1837 +U 8227 ; WX 602 ; N uni2023 ; G 1838 +U 8230 ; WX 602 ; N ellipsis ; G 1839 +U 8239 ; WX 602 ; N uni202F ; G 1840 +U 8240 ; WX 602 ; N perthousand ; G 1841 +U 8241 ; WX 602 ; N uni2031 ; G 1842 +U 8242 ; WX 602 ; N minute ; G 1843 +U 8243 ; WX 602 ; N second ; G 1844 +U 8244 ; WX 602 ; N uni2034 ; G 1845 +U 8245 ; WX 602 ; N uni2035 ; G 1846 +U 8246 ; WX 602 ; N uni2036 ; G 1847 +U 8247 ; WX 602 ; N uni2037 ; G 1848 +U 8249 ; WX 602 ; N guilsinglleft ; G 1849 +U 8250 ; WX 602 ; N guilsinglright ; G 1850 +U 8252 ; WX 602 ; N exclamdbl ; G 1851 +U 8253 ; WX 602 ; N uni203D ; G 1852 +U 8254 ; WX 602 ; N uni203E ; G 1853 +U 8255 ; WX 602 ; N uni203F ; G 1854 +U 8261 ; WX 602 ; N uni2045 ; G 1855 +U 8262 ; WX 602 ; N uni2046 ; G 1856 +U 8263 ; WX 602 ; N uni2047 ; G 1857 +U 8264 ; WX 602 ; N uni2048 ; G 1858 +U 8265 ; WX 602 ; N uni2049 ; G 1859 +U 8267 ; WX 602 ; N uni204B ; G 1860 +U 8287 ; WX 602 ; N uni205F ; G 1861 +U 8304 ; WX 602 ; N uni2070 ; G 1862 +U 8305 ; WX 602 ; N uni2071 ; G 1863 +U 8308 ; WX 602 ; N uni2074 ; G 1864 +U 8309 ; WX 602 ; N uni2075 ; G 1865 +U 8310 ; WX 602 ; N uni2076 ; G 1866 +U 8311 ; WX 602 ; N uni2077 ; G 1867 +U 8312 ; WX 602 ; N uni2078 ; G 1868 +U 8313 ; WX 602 ; N uni2079 ; G 1869 +U 8314 ; WX 602 ; N uni207A ; G 1870 +U 8315 ; WX 602 ; N uni207B ; G 1871 +U 8316 ; WX 602 ; N uni207C ; G 1872 +U 8317 ; WX 602 ; N uni207D ; G 1873 +U 8318 ; WX 602 ; N uni207E ; G 1874 +U 8319 ; WX 602 ; N uni207F ; G 1875 +U 8320 ; WX 602 ; N uni2080 ; G 1876 +U 8321 ; WX 602 ; N uni2081 ; G 1877 +U 8322 ; WX 602 ; N uni2082 ; G 1878 +U 8323 ; WX 602 ; N uni2083 ; G 1879 +U 8324 ; WX 602 ; N uni2084 ; G 1880 +U 8325 ; WX 602 ; N uni2085 ; G 1881 +U 8326 ; WX 602 ; N uni2086 ; G 1882 +U 8327 ; WX 602 ; N uni2087 ; G 1883 +U 8328 ; WX 602 ; N uni2088 ; G 1884 +U 8329 ; WX 602 ; N uni2089 ; G 1885 +U 8330 ; WX 602 ; N uni208A ; G 1886 +U 8331 ; WX 602 ; N uni208B ; G 1887 +U 8332 ; WX 602 ; N uni208C ; G 1888 +U 8333 ; WX 602 ; N uni208D ; G 1889 +U 8334 ; WX 602 ; N uni208E ; G 1890 +U 8336 ; WX 602 ; N uni2090 ; G 1891 +U 8337 ; WX 602 ; N uni2091 ; G 1892 +U 8338 ; WX 602 ; N uni2092 ; G 1893 +U 8339 ; WX 602 ; N uni2093 ; G 1894 +U 8340 ; WX 602 ; N uni2094 ; G 1895 +U 8341 ; WX 602 ; N uni2095 ; G 1896 +U 8342 ; WX 602 ; N uni2096 ; G 1897 +U 8343 ; WX 602 ; N uni2097 ; G 1898 +U 8344 ; WX 602 ; N uni2098 ; G 1899 +U 8345 ; WX 602 ; N uni2099 ; G 1900 +U 8346 ; WX 602 ; N uni209A ; G 1901 +U 8347 ; WX 602 ; N uni209B ; G 1902 +U 8348 ; WX 602 ; N uni209C ; G 1903 +U 8352 ; WX 602 ; N uni20A0 ; G 1904 +U 8353 ; WX 602 ; N colonmonetary ; G 1905 +U 8354 ; WX 602 ; N uni20A2 ; G 1906 +U 8355 ; WX 602 ; N franc ; G 1907 +U 8356 ; WX 602 ; N lira ; G 1908 +U 8357 ; WX 602 ; N uni20A5 ; G 1909 +U 8358 ; WX 602 ; N uni20A6 ; G 1910 +U 8359 ; WX 602 ; N peseta ; G 1911 +U 8360 ; WX 602 ; N uni20A8 ; G 1912 +U 8361 ; WX 602 ; N uni20A9 ; G 1913 +U 8362 ; WX 602 ; N uni20AA ; G 1914 +U 8363 ; WX 602 ; N dong ; G 1915 +U 8364 ; WX 602 ; N Euro ; G 1916 +U 8365 ; WX 602 ; N uni20AD ; G 1917 +U 8366 ; WX 602 ; N uni20AE ; G 1918 +U 8367 ; WX 602 ; N uni20AF ; G 1919 +U 8368 ; WX 602 ; N uni20B0 ; G 1920 +U 8369 ; WX 602 ; N uni20B1 ; G 1921 +U 8370 ; WX 602 ; N uni20B2 ; G 1922 +U 8371 ; WX 602 ; N uni20B3 ; G 1923 +U 8372 ; WX 602 ; N uni20B4 ; G 1924 +U 8373 ; WX 602 ; N uni20B5 ; G 1925 +U 8376 ; WX 602 ; N uni20B8 ; G 1926 +U 8377 ; WX 602 ; N uni20B9 ; G 1927 +U 8378 ; WX 602 ; N uni20BA ; G 1928 +U 8381 ; WX 602 ; N uni20BD ; G 1929 +U 8450 ; WX 602 ; N uni2102 ; G 1930 +U 8453 ; WX 602 ; N uni2105 ; G 1931 +U 8461 ; WX 602 ; N uni210D ; G 1932 +U 8462 ; WX 602 ; N uni210E ; G 1933 +U 8463 ; WX 602 ; N uni210F ; G 1934 +U 8469 ; WX 602 ; N uni2115 ; G 1935 +U 8470 ; WX 602 ; N uni2116 ; G 1936 +U 8471 ; WX 602 ; N uni2117 ; G 1937 +U 8473 ; WX 602 ; N uni2119 ; G 1938 +U 8474 ; WX 602 ; N uni211A ; G 1939 +U 8477 ; WX 602 ; N uni211D ; G 1940 +U 8482 ; WX 602 ; N trademark ; G 1941 +U 8484 ; WX 602 ; N uni2124 ; G 1942 +U 8486 ; WX 602 ; N uni2126 ; G 1943 +U 8490 ; WX 602 ; N uni212A ; G 1944 +U 8491 ; WX 602 ; N uni212B ; G 1945 +U 8494 ; WX 602 ; N estimated ; G 1946 +U 8520 ; WX 602 ; N uni2148 ; G 1947 +U 8528 ; WX 602 ; N uni2150 ; G 1948 +U 8529 ; WX 602 ; N uni2151 ; G 1949 +U 8531 ; WX 602 ; N onethird ; G 1950 +U 8532 ; WX 602 ; N twothirds ; G 1951 +U 8533 ; WX 602 ; N uni2155 ; G 1952 +U 8534 ; WX 602 ; N uni2156 ; G 1953 +U 8535 ; WX 602 ; N uni2157 ; G 1954 +U 8536 ; WX 602 ; N uni2158 ; G 1955 +U 8537 ; WX 602 ; N uni2159 ; G 1956 +U 8538 ; WX 602 ; N uni215A ; G 1957 +U 8539 ; WX 602 ; N oneeighth ; G 1958 +U 8540 ; WX 602 ; N threeeighths ; G 1959 +U 8541 ; WX 602 ; N fiveeighths ; G 1960 +U 8542 ; WX 602 ; N seveneighths ; G 1961 +U 8543 ; WX 602 ; N uni215F ; G 1962 +U 8585 ; WX 602 ; N uni2189 ; G 1963 +U 8592 ; WX 602 ; N arrowleft ; G 1964 +U 8593 ; WX 602 ; N arrowup ; G 1965 +U 8594 ; WX 602 ; N arrowright ; G 1966 +U 8595 ; WX 602 ; N arrowdown ; G 1967 +U 8596 ; WX 602 ; N arrowboth ; G 1968 +U 8597 ; WX 602 ; N arrowupdn ; G 1969 +U 8598 ; WX 602 ; N uni2196 ; G 1970 +U 8599 ; WX 602 ; N uni2197 ; G 1971 +U 8600 ; WX 602 ; N uni2198 ; G 1972 +U 8601 ; WX 602 ; N uni2199 ; G 1973 +U 8602 ; WX 602 ; N uni219A ; G 1974 +U 8603 ; WX 602 ; N uni219B ; G 1975 +U 8604 ; WX 602 ; N uni219C ; G 1976 +U 8605 ; WX 602 ; N uni219D ; G 1977 +U 8606 ; WX 602 ; N uni219E ; G 1978 +U 8607 ; WX 602 ; N uni219F ; G 1979 +U 8608 ; WX 602 ; N uni21A0 ; G 1980 +U 8609 ; WX 602 ; N uni21A1 ; G 1981 +U 8610 ; WX 602 ; N uni21A2 ; G 1982 +U 8611 ; WX 602 ; N uni21A3 ; G 1983 +U 8612 ; WX 602 ; N uni21A4 ; G 1984 +U 8613 ; WX 602 ; N uni21A5 ; G 1985 +U 8614 ; WX 602 ; N uni21A6 ; G 1986 +U 8615 ; WX 602 ; N uni21A7 ; G 1987 +U 8616 ; WX 602 ; N arrowupdnbse ; G 1988 +U 8617 ; WX 602 ; N uni21A9 ; G 1989 +U 8618 ; WX 602 ; N uni21AA ; G 1990 +U 8619 ; WX 602 ; N uni21AB ; G 1991 +U 8620 ; WX 602 ; N uni21AC ; G 1992 +U 8621 ; WX 602 ; N uni21AD ; G 1993 +U 8622 ; WX 602 ; N uni21AE ; G 1994 +U 8623 ; WX 602 ; N uni21AF ; G 1995 +U 8624 ; WX 602 ; N uni21B0 ; G 1996 +U 8625 ; WX 602 ; N uni21B1 ; G 1997 +U 8626 ; WX 602 ; N uni21B2 ; G 1998 +U 8627 ; WX 602 ; N uni21B3 ; G 1999 +U 8628 ; WX 602 ; N uni21B4 ; G 2000 +U 8629 ; WX 602 ; N carriagereturn ; G 2001 +U 8630 ; WX 602 ; N uni21B6 ; G 2002 +U 8631 ; WX 602 ; N uni21B7 ; G 2003 +U 8632 ; WX 602 ; N uni21B8 ; G 2004 +U 8633 ; WX 602 ; N uni21B9 ; G 2005 +U 8634 ; WX 602 ; N uni21BA ; G 2006 +U 8635 ; WX 602 ; N uni21BB ; G 2007 +U 8636 ; WX 602 ; N uni21BC ; G 2008 +U 8637 ; WX 602 ; N uni21BD ; G 2009 +U 8638 ; WX 602 ; N uni21BE ; G 2010 +U 8639 ; WX 602 ; N uni21BF ; G 2011 +U 8640 ; WX 602 ; N uni21C0 ; G 2012 +U 8641 ; WX 602 ; N uni21C1 ; G 2013 +U 8642 ; WX 602 ; N uni21C2 ; G 2014 +U 8643 ; WX 602 ; N uni21C3 ; G 2015 +U 8644 ; WX 602 ; N uni21C4 ; G 2016 +U 8645 ; WX 602 ; N uni21C5 ; G 2017 +U 8646 ; WX 602 ; N uni21C6 ; G 2018 +U 8647 ; WX 602 ; N uni21C7 ; G 2019 +U 8648 ; WX 602 ; N uni21C8 ; G 2020 +U 8649 ; WX 602 ; N uni21C9 ; G 2021 +U 8650 ; WX 602 ; N uni21CA ; G 2022 +U 8651 ; WX 602 ; N uni21CB ; G 2023 +U 8652 ; WX 602 ; N uni21CC ; G 2024 +U 8653 ; WX 602 ; N uni21CD ; G 2025 +U 8654 ; WX 602 ; N uni21CE ; G 2026 +U 8655 ; WX 602 ; N uni21CF ; G 2027 +U 8656 ; WX 602 ; N arrowdblleft ; G 2028 +U 8657 ; WX 602 ; N arrowdblup ; G 2029 +U 8658 ; WX 602 ; N arrowdblright ; G 2030 +U 8659 ; WX 602 ; N arrowdbldown ; G 2031 +U 8660 ; WX 602 ; N arrowdblboth ; G 2032 +U 8661 ; WX 602 ; N uni21D5 ; G 2033 +U 8662 ; WX 602 ; N uni21D6 ; G 2034 +U 8663 ; WX 602 ; N uni21D7 ; G 2035 +U 8664 ; WX 602 ; N uni21D8 ; G 2036 +U 8665 ; WX 602 ; N uni21D9 ; G 2037 +U 8666 ; WX 602 ; N uni21DA ; G 2038 +U 8667 ; WX 602 ; N uni21DB ; G 2039 +U 8668 ; WX 602 ; N uni21DC ; G 2040 +U 8669 ; WX 602 ; N uni21DD ; G 2041 +U 8670 ; WX 602 ; N uni21DE ; G 2042 +U 8671 ; WX 602 ; N uni21DF ; G 2043 +U 8672 ; WX 602 ; N uni21E0 ; G 2044 +U 8673 ; WX 602 ; N uni21E1 ; G 2045 +U 8674 ; WX 602 ; N uni21E2 ; G 2046 +U 8675 ; WX 602 ; N uni21E3 ; G 2047 +U 8676 ; WX 602 ; N uni21E4 ; G 2048 +U 8677 ; WX 602 ; N uni21E5 ; G 2049 +U 8678 ; WX 602 ; N uni21E6 ; G 2050 +U 8679 ; WX 602 ; N uni21E7 ; G 2051 +U 8680 ; WX 602 ; N uni21E8 ; G 2052 +U 8681 ; WX 602 ; N uni21E9 ; G 2053 +U 8682 ; WX 602 ; N uni21EA ; G 2054 +U 8683 ; WX 602 ; N uni21EB ; G 2055 +U 8684 ; WX 602 ; N uni21EC ; G 2056 +U 8685 ; WX 602 ; N uni21ED ; G 2057 +U 8686 ; WX 602 ; N uni21EE ; G 2058 +U 8687 ; WX 602 ; N uni21EF ; G 2059 +U 8688 ; WX 602 ; N uni21F0 ; G 2060 +U 8689 ; WX 602 ; N uni21F1 ; G 2061 +U 8690 ; WX 602 ; N uni21F2 ; G 2062 +U 8691 ; WX 602 ; N uni21F3 ; G 2063 +U 8692 ; WX 602 ; N uni21F4 ; G 2064 +U 8693 ; WX 602 ; N uni21F5 ; G 2065 +U 8694 ; WX 602 ; N uni21F6 ; G 2066 +U 8695 ; WX 602 ; N uni21F7 ; G 2067 +U 8696 ; WX 602 ; N uni21F8 ; G 2068 +U 8697 ; WX 602 ; N uni21F9 ; G 2069 +U 8698 ; WX 602 ; N uni21FA ; G 2070 +U 8699 ; WX 602 ; N uni21FB ; G 2071 +U 8700 ; WX 602 ; N uni21FC ; G 2072 +U 8701 ; WX 602 ; N uni21FD ; G 2073 +U 8702 ; WX 602 ; N uni21FE ; G 2074 +U 8703 ; WX 602 ; N uni21FF ; G 2075 +U 8704 ; WX 602 ; N universal ; G 2076 +U 8705 ; WX 602 ; N uni2201 ; G 2077 +U 8706 ; WX 602 ; N partialdiff ; G 2078 +U 8707 ; WX 602 ; N existential ; G 2079 +U 8708 ; WX 602 ; N uni2204 ; G 2080 +U 8709 ; WX 602 ; N emptyset ; G 2081 +U 8710 ; WX 602 ; N increment ; G 2082 +U 8711 ; WX 602 ; N gradient ; G 2083 +U 8712 ; WX 602 ; N element ; G 2084 +U 8713 ; WX 602 ; N notelement ; G 2085 +U 8714 ; WX 602 ; N uni220A ; G 2086 +U 8715 ; WX 602 ; N suchthat ; G 2087 +U 8716 ; WX 602 ; N uni220C ; G 2088 +U 8717 ; WX 602 ; N uni220D ; G 2089 +U 8718 ; WX 602 ; N uni220E ; G 2090 +U 8719 ; WX 602 ; N product ; G 2091 +U 8720 ; WX 602 ; N uni2210 ; G 2092 +U 8721 ; WX 602 ; N summation ; G 2093 +U 8722 ; WX 602 ; N minus ; G 2094 +U 8723 ; WX 602 ; N uni2213 ; G 2095 +U 8725 ; WX 602 ; N uni2215 ; G 2096 +U 8727 ; WX 602 ; N asteriskmath ; G 2097 +U 8728 ; WX 602 ; N uni2218 ; G 2098 +U 8729 ; WX 602 ; N uni2219 ; G 2099 +U 8730 ; WX 602 ; N radical ; G 2100 +U 8731 ; WX 602 ; N uni221B ; G 2101 +U 8732 ; WX 602 ; N uni221C ; G 2102 +U 8733 ; WX 602 ; N proportional ; G 2103 +U 8734 ; WX 602 ; N infinity ; G 2104 +U 8735 ; WX 602 ; N orthogonal ; G 2105 +U 8736 ; WX 602 ; N angle ; G 2106 +U 8739 ; WX 602 ; N uni2223 ; G 2107 +U 8743 ; WX 602 ; N logicaland ; G 2108 +U 8744 ; WX 602 ; N logicalor ; G 2109 +U 8745 ; WX 602 ; N intersection ; G 2110 +U 8746 ; WX 602 ; N union ; G 2111 +U 8747 ; WX 602 ; N integral ; G 2112 +U 8748 ; WX 602 ; N uni222C ; G 2113 +U 8749 ; WX 602 ; N uni222D ; G 2114 +U 8756 ; WX 602 ; N therefore ; G 2115 +U 8757 ; WX 602 ; N uni2235 ; G 2116 +U 8758 ; WX 602 ; N uni2236 ; G 2117 +U 8759 ; WX 602 ; N uni2237 ; G 2118 +U 8760 ; WX 602 ; N uni2238 ; G 2119 +U 8761 ; WX 602 ; N uni2239 ; G 2120 +U 8762 ; WX 602 ; N uni223A ; G 2121 +U 8763 ; WX 602 ; N uni223B ; G 2122 +U 8764 ; WX 602 ; N similar ; G 2123 +U 8765 ; WX 602 ; N uni223D ; G 2124 +U 8769 ; WX 602 ; N uni2241 ; G 2125 +U 8770 ; WX 602 ; N uni2242 ; G 2126 +U 8771 ; WX 602 ; N uni2243 ; G 2127 +U 8772 ; WX 602 ; N uni2244 ; G 2128 +U 8773 ; WX 602 ; N congruent ; G 2129 +U 8774 ; WX 602 ; N uni2246 ; G 2130 +U 8775 ; WX 602 ; N uni2247 ; G 2131 +U 8776 ; WX 602 ; N approxequal ; G 2132 +U 8777 ; WX 602 ; N uni2249 ; G 2133 +U 8778 ; WX 602 ; N uni224A ; G 2134 +U 8779 ; WX 602 ; N uni224B ; G 2135 +U 8780 ; WX 602 ; N uni224C ; G 2136 +U 8781 ; WX 602 ; N uni224D ; G 2137 +U 8782 ; WX 602 ; N uni224E ; G 2138 +U 8783 ; WX 602 ; N uni224F ; G 2139 +U 8784 ; WX 602 ; N uni2250 ; G 2140 +U 8785 ; WX 602 ; N uni2251 ; G 2141 +U 8786 ; WX 602 ; N uni2252 ; G 2142 +U 8787 ; WX 602 ; N uni2253 ; G 2143 +U 8788 ; WX 602 ; N uni2254 ; G 2144 +U 8789 ; WX 602 ; N uni2255 ; G 2145 +U 8790 ; WX 602 ; N uni2256 ; G 2146 +U 8791 ; WX 602 ; N uni2257 ; G 2147 +U 8792 ; WX 602 ; N uni2258 ; G 2148 +U 8793 ; WX 602 ; N uni2259 ; G 2149 +U 8794 ; WX 602 ; N uni225A ; G 2150 +U 8795 ; WX 602 ; N uni225B ; G 2151 +U 8796 ; WX 602 ; N uni225C ; G 2152 +U 8797 ; WX 602 ; N uni225D ; G 2153 +U 8798 ; WX 602 ; N uni225E ; G 2154 +U 8799 ; WX 602 ; N uni225F ; G 2155 +U 8800 ; WX 602 ; N notequal ; G 2156 +U 8801 ; WX 602 ; N equivalence ; G 2157 +U 8802 ; WX 602 ; N uni2262 ; G 2158 +U 8803 ; WX 602 ; N uni2263 ; G 2159 +U 8804 ; WX 602 ; N lessequal ; G 2160 +U 8805 ; WX 602 ; N greaterequal ; G 2161 +U 8806 ; WX 602 ; N uni2266 ; G 2162 +U 8807 ; WX 602 ; N uni2267 ; G 2163 +U 8808 ; WX 602 ; N uni2268 ; G 2164 +U 8809 ; WX 602 ; N uni2269 ; G 2165 +U 8813 ; WX 602 ; N uni226D ; G 2166 +U 8814 ; WX 602 ; N uni226E ; G 2167 +U 8815 ; WX 602 ; N uni226F ; G 2168 +U 8816 ; WX 602 ; N uni2270 ; G 2169 +U 8817 ; WX 602 ; N uni2271 ; G 2170 +U 8818 ; WX 602 ; N uni2272 ; G 2171 +U 8819 ; WX 602 ; N uni2273 ; G 2172 +U 8820 ; WX 602 ; N uni2274 ; G 2173 +U 8821 ; WX 602 ; N uni2275 ; G 2174 +U 8822 ; WX 602 ; N uni2276 ; G 2175 +U 8823 ; WX 602 ; N uni2277 ; G 2176 +U 8824 ; WX 602 ; N uni2278 ; G 2177 +U 8825 ; WX 602 ; N uni2279 ; G 2178 +U 8826 ; WX 602 ; N uni227A ; G 2179 +U 8827 ; WX 602 ; N uni227B ; G 2180 +U 8828 ; WX 602 ; N uni227C ; G 2181 +U 8829 ; WX 602 ; N uni227D ; G 2182 +U 8830 ; WX 602 ; N uni227E ; G 2183 +U 8831 ; WX 602 ; N uni227F ; G 2184 +U 8832 ; WX 602 ; N uni2280 ; G 2185 +U 8833 ; WX 602 ; N uni2281 ; G 2186 +U 8834 ; WX 602 ; N propersubset ; G 2187 +U 8835 ; WX 602 ; N propersuperset ; G 2188 +U 8836 ; WX 602 ; N notsubset ; G 2189 +U 8837 ; WX 602 ; N uni2285 ; G 2190 +U 8838 ; WX 602 ; N reflexsubset ; G 2191 +U 8839 ; WX 602 ; N reflexsuperset ; G 2192 +U 8840 ; WX 602 ; N uni2288 ; G 2193 +U 8841 ; WX 602 ; N uni2289 ; G 2194 +U 8842 ; WX 602 ; N uni228A ; G 2195 +U 8843 ; WX 602 ; N uni228B ; G 2196 +U 8845 ; WX 602 ; N uni228D ; G 2197 +U 8846 ; WX 602 ; N uni228E ; G 2198 +U 8847 ; WX 602 ; N uni228F ; G 2199 +U 8848 ; WX 602 ; N uni2290 ; G 2200 +U 8849 ; WX 602 ; N uni2291 ; G 2201 +U 8850 ; WX 602 ; N uni2292 ; G 2202 +U 8851 ; WX 602 ; N uni2293 ; G 2203 +U 8852 ; WX 602 ; N uni2294 ; G 2204 +U 8853 ; WX 602 ; N circleplus ; G 2205 +U 8854 ; WX 602 ; N uni2296 ; G 2206 +U 8855 ; WX 602 ; N circlemultiply ; G 2207 +U 8856 ; WX 602 ; N uni2298 ; G 2208 +U 8857 ; WX 602 ; N uni2299 ; G 2209 +U 8858 ; WX 602 ; N uni229A ; G 2210 +U 8859 ; WX 602 ; N uni229B ; G 2211 +U 8860 ; WX 602 ; N uni229C ; G 2212 +U 8861 ; WX 602 ; N uni229D ; G 2213 +U 8862 ; WX 602 ; N uni229E ; G 2214 +U 8863 ; WX 602 ; N uni229F ; G 2215 +U 8864 ; WX 602 ; N uni22A0 ; G 2216 +U 8865 ; WX 602 ; N uni22A1 ; G 2217 +U 8866 ; WX 602 ; N uni22A2 ; G 2218 +U 8867 ; WX 602 ; N uni22A3 ; G 2219 +U 8868 ; WX 602 ; N uni22A4 ; G 2220 +U 8869 ; WX 602 ; N perpendicular ; G 2221 +U 8882 ; WX 602 ; N uni22B2 ; G 2222 +U 8883 ; WX 602 ; N uni22B3 ; G 2223 +U 8884 ; WX 602 ; N uni22B4 ; G 2224 +U 8885 ; WX 602 ; N uni22B5 ; G 2225 +U 8888 ; WX 602 ; N uni22B8 ; G 2226 +U 8898 ; WX 602 ; N uni22C2 ; G 2227 +U 8899 ; WX 602 ; N uni22C3 ; G 2228 +U 8900 ; WX 602 ; N uni22C4 ; G 2229 +U 8901 ; WX 602 ; N dotmath ; G 2230 +U 8902 ; WX 602 ; N uni22C6 ; G 2231 +U 8909 ; WX 602 ; N uni22CD ; G 2232 +U 8910 ; WX 602 ; N uni22CE ; G 2233 +U 8911 ; WX 602 ; N uni22CF ; G 2234 +U 8912 ; WX 602 ; N uni22D0 ; G 2235 +U 8913 ; WX 602 ; N uni22D1 ; G 2236 +U 8922 ; WX 602 ; N uni22DA ; G 2237 +U 8923 ; WX 602 ; N uni22DB ; G 2238 +U 8924 ; WX 602 ; N uni22DC ; G 2239 +U 8925 ; WX 602 ; N uni22DD ; G 2240 +U 8926 ; WX 602 ; N uni22DE ; G 2241 +U 8927 ; WX 602 ; N uni22DF ; G 2242 +U 8928 ; WX 602 ; N uni22E0 ; G 2243 +U 8929 ; WX 602 ; N uni22E1 ; G 2244 +U 8930 ; WX 602 ; N uni22E2 ; G 2245 +U 8931 ; WX 602 ; N uni22E3 ; G 2246 +U 8932 ; WX 602 ; N uni22E4 ; G 2247 +U 8933 ; WX 602 ; N uni22E5 ; G 2248 +U 8934 ; WX 602 ; N uni22E6 ; G 2249 +U 8935 ; WX 602 ; N uni22E7 ; G 2250 +U 8936 ; WX 602 ; N uni22E8 ; G 2251 +U 8937 ; WX 602 ; N uni22E9 ; G 2252 +U 8943 ; WX 602 ; N uni22EF ; G 2253 +U 8960 ; WX 602 ; N uni2300 ; G 2254 +U 8961 ; WX 602 ; N uni2301 ; G 2255 +U 8962 ; WX 602 ; N house ; G 2256 +U 8963 ; WX 602 ; N uni2303 ; G 2257 +U 8964 ; WX 602 ; N uni2304 ; G 2258 +U 8965 ; WX 602 ; N uni2305 ; G 2259 +U 8966 ; WX 602 ; N uni2306 ; G 2260 +U 8968 ; WX 602 ; N uni2308 ; G 2261 +U 8969 ; WX 602 ; N uni2309 ; G 2262 +U 8970 ; WX 602 ; N uni230A ; G 2263 +U 8971 ; WX 602 ; N uni230B ; G 2264 +U 8972 ; WX 602 ; N uni230C ; G 2265 +U 8973 ; WX 602 ; N uni230D ; G 2266 +U 8974 ; WX 602 ; N uni230E ; G 2267 +U 8975 ; WX 602 ; N uni230F ; G 2268 +U 8976 ; WX 602 ; N revlogicalnot ; G 2269 +U 8977 ; WX 602 ; N uni2311 ; G 2270 +U 8978 ; WX 602 ; N uni2312 ; G 2271 +U 8979 ; WX 602 ; N uni2313 ; G 2272 +U 8980 ; WX 602 ; N uni2314 ; G 2273 +U 8981 ; WX 602 ; N uni2315 ; G 2274 +U 8984 ; WX 602 ; N uni2318 ; G 2275 +U 8985 ; WX 602 ; N uni2319 ; G 2276 +U 8988 ; WX 602 ; N uni231C ; G 2277 +U 8989 ; WX 602 ; N uni231D ; G 2278 +U 8990 ; WX 602 ; N uni231E ; G 2279 +U 8991 ; WX 602 ; N uni231F ; G 2280 +U 8992 ; WX 602 ; N integraltp ; G 2281 +U 8993 ; WX 602 ; N integralbt ; G 2282 +U 8997 ; WX 602 ; N uni2325 ; G 2283 +U 8998 ; WX 602 ; N uni2326 ; G 2284 +U 8999 ; WX 602 ; N uni2327 ; G 2285 +U 9000 ; WX 602 ; N uni2328 ; G 2286 +U 9003 ; WX 602 ; N uni232B ; G 2287 +U 9013 ; WX 602 ; N uni2335 ; G 2288 +U 9014 ; WX 602 ; N uni2336 ; G 2289 +U 9015 ; WX 602 ; N uni2337 ; G 2290 +U 9016 ; WX 602 ; N uni2338 ; G 2291 +U 9017 ; WX 602 ; N uni2339 ; G 2292 +U 9018 ; WX 602 ; N uni233A ; G 2293 +U 9019 ; WX 602 ; N uni233B ; G 2294 +U 9020 ; WX 602 ; N uni233C ; G 2295 +U 9021 ; WX 602 ; N uni233D ; G 2296 +U 9022 ; WX 602 ; N uni233E ; G 2297 +U 9023 ; WX 602 ; N uni233F ; G 2298 +U 9024 ; WX 602 ; N uni2340 ; G 2299 +U 9025 ; WX 602 ; N uni2341 ; G 2300 +U 9026 ; WX 602 ; N uni2342 ; G 2301 +U 9027 ; WX 602 ; N uni2343 ; G 2302 +U 9028 ; WX 602 ; N uni2344 ; G 2303 +U 9029 ; WX 602 ; N uni2345 ; G 2304 +U 9030 ; WX 602 ; N uni2346 ; G 2305 +U 9031 ; WX 602 ; N uni2347 ; G 2306 +U 9032 ; WX 602 ; N uni2348 ; G 2307 +U 9033 ; WX 602 ; N uni2349 ; G 2308 +U 9034 ; WX 602 ; N uni234A ; G 2309 +U 9035 ; WX 602 ; N uni234B ; G 2310 +U 9036 ; WX 602 ; N uni234C ; G 2311 +U 9037 ; WX 602 ; N uni234D ; G 2312 +U 9038 ; WX 602 ; N uni234E ; G 2313 +U 9039 ; WX 602 ; N uni234F ; G 2314 +U 9040 ; WX 602 ; N uni2350 ; G 2315 +U 9041 ; WX 602 ; N uni2351 ; G 2316 +U 9042 ; WX 602 ; N uni2352 ; G 2317 +U 9043 ; WX 602 ; N uni2353 ; G 2318 +U 9044 ; WX 602 ; N uni2354 ; G 2319 +U 9045 ; WX 602 ; N uni2355 ; G 2320 +U 9046 ; WX 602 ; N uni2356 ; G 2321 +U 9047 ; WX 602 ; N uni2357 ; G 2322 +U 9048 ; WX 602 ; N uni2358 ; G 2323 +U 9049 ; WX 602 ; N uni2359 ; G 2324 +U 9050 ; WX 602 ; N uni235A ; G 2325 +U 9051 ; WX 602 ; N uni235B ; G 2326 +U 9052 ; WX 602 ; N uni235C ; G 2327 +U 9053 ; WX 602 ; N uni235D ; G 2328 +U 9054 ; WX 602 ; N uni235E ; G 2329 +U 9055 ; WX 602 ; N uni235F ; G 2330 +U 9056 ; WX 602 ; N uni2360 ; G 2331 +U 9057 ; WX 602 ; N uni2361 ; G 2332 +U 9058 ; WX 602 ; N uni2362 ; G 2333 +U 9059 ; WX 602 ; N uni2363 ; G 2334 +U 9060 ; WX 602 ; N uni2364 ; G 2335 +U 9061 ; WX 602 ; N uni2365 ; G 2336 +U 9062 ; WX 602 ; N uni2366 ; G 2337 +U 9063 ; WX 602 ; N uni2367 ; G 2338 +U 9064 ; WX 602 ; N uni2368 ; G 2339 +U 9065 ; WX 602 ; N uni2369 ; G 2340 +U 9066 ; WX 602 ; N uni236A ; G 2341 +U 9067 ; WX 602 ; N uni236B ; G 2342 +U 9068 ; WX 602 ; N uni236C ; G 2343 +U 9069 ; WX 602 ; N uni236D ; G 2344 +U 9070 ; WX 602 ; N uni236E ; G 2345 +U 9071 ; WX 602 ; N uni236F ; G 2346 +U 9072 ; WX 602 ; N uni2370 ; G 2347 +U 9073 ; WX 602 ; N uni2371 ; G 2348 +U 9074 ; WX 602 ; N uni2372 ; G 2349 +U 9075 ; WX 602 ; N uni2373 ; G 2350 +U 9076 ; WX 602 ; N uni2374 ; G 2351 +U 9077 ; WX 602 ; N uni2375 ; G 2352 +U 9078 ; WX 602 ; N uni2376 ; G 2353 +U 9079 ; WX 602 ; N uni2377 ; G 2354 +U 9080 ; WX 602 ; N uni2378 ; G 2355 +U 9081 ; WX 602 ; N uni2379 ; G 2356 +U 9082 ; WX 602 ; N uni237A ; G 2357 +U 9085 ; WX 602 ; N uni237D ; G 2358 +U 9088 ; WX 602 ; N uni2380 ; G 2359 +U 9089 ; WX 602 ; N uni2381 ; G 2360 +U 9090 ; WX 602 ; N uni2382 ; G 2361 +U 9091 ; WX 602 ; N uni2383 ; G 2362 +U 9096 ; WX 602 ; N uni2388 ; G 2363 +U 9097 ; WX 602 ; N uni2389 ; G 2364 +U 9098 ; WX 602 ; N uni238A ; G 2365 +U 9099 ; WX 602 ; N uni238B ; G 2366 +U 9109 ; WX 602 ; N uni2395 ; G 2367 +U 9115 ; WX 602 ; N uni239B ; G 2368 +U 9116 ; WX 602 ; N uni239C ; G 2369 +U 9117 ; WX 602 ; N uni239D ; G 2370 +U 9118 ; WX 602 ; N uni239E ; G 2371 +U 9119 ; WX 602 ; N uni239F ; G 2372 +U 9120 ; WX 602 ; N uni23A0 ; G 2373 +U 9121 ; WX 602 ; N uni23A1 ; G 2374 +U 9122 ; WX 602 ; N uni23A2 ; G 2375 +U 9123 ; WX 602 ; N uni23A3 ; G 2376 +U 9124 ; WX 602 ; N uni23A4 ; G 2377 +U 9125 ; WX 602 ; N uni23A5 ; G 2378 +U 9126 ; WX 602 ; N uni23A6 ; G 2379 +U 9127 ; WX 602 ; N uni23A7 ; G 2380 +U 9128 ; WX 602 ; N uni23A8 ; G 2381 +U 9129 ; WX 602 ; N uni23A9 ; G 2382 +U 9130 ; WX 602 ; N uni23AA ; G 2383 +U 9131 ; WX 602 ; N uni23AB ; G 2384 +U 9132 ; WX 602 ; N uni23AC ; G 2385 +U 9133 ; WX 602 ; N uni23AD ; G 2386 +U 9134 ; WX 602 ; N uni23AE ; G 2387 +U 9166 ; WX 602 ; N uni23CE ; G 2388 +U 9167 ; WX 602 ; N uni23CF ; G 2389 +U 9251 ; WX 602 ; N uni2423 ; G 2390 +U 9472 ; WX 602 ; N SF100000 ; G 2391 +U 9473 ; WX 602 ; N uni2501 ; G 2392 +U 9474 ; WX 602 ; N SF110000 ; G 2393 +U 9475 ; WX 602 ; N uni2503 ; G 2394 +U 9476 ; WX 602 ; N uni2504 ; G 2395 +U 9477 ; WX 602 ; N uni2505 ; G 2396 +U 9478 ; WX 602 ; N uni2506 ; G 2397 +U 9479 ; WX 602 ; N uni2507 ; G 2398 +U 9480 ; WX 602 ; N uni2508 ; G 2399 +U 9481 ; WX 602 ; N uni2509 ; G 2400 +U 9482 ; WX 602 ; N uni250A ; G 2401 +U 9483 ; WX 602 ; N uni250B ; G 2402 +U 9484 ; WX 602 ; N SF010000 ; G 2403 +U 9485 ; WX 602 ; N uni250D ; G 2404 +U 9486 ; WX 602 ; N uni250E ; G 2405 +U 9487 ; WX 602 ; N uni250F ; G 2406 +U 9488 ; WX 602 ; N SF030000 ; G 2407 +U 9489 ; WX 602 ; N uni2511 ; G 2408 +U 9490 ; WX 602 ; N uni2512 ; G 2409 +U 9491 ; WX 602 ; N uni2513 ; G 2410 +U 9492 ; WX 602 ; N SF020000 ; G 2411 +U 9493 ; WX 602 ; N uni2515 ; G 2412 +U 9494 ; WX 602 ; N uni2516 ; G 2413 +U 9495 ; WX 602 ; N uni2517 ; G 2414 +U 9496 ; WX 602 ; N SF040000 ; G 2415 +U 9497 ; WX 602 ; N uni2519 ; G 2416 +U 9498 ; WX 602 ; N uni251A ; G 2417 +U 9499 ; WX 602 ; N uni251B ; G 2418 +U 9500 ; WX 602 ; N SF080000 ; G 2419 +U 9501 ; WX 602 ; N uni251D ; G 2420 +U 9502 ; WX 602 ; N uni251E ; G 2421 +U 9503 ; WX 602 ; N uni251F ; G 2422 +U 9504 ; WX 602 ; N uni2520 ; G 2423 +U 9505 ; WX 602 ; N uni2521 ; G 2424 +U 9506 ; WX 602 ; N uni2522 ; G 2425 +U 9507 ; WX 602 ; N uni2523 ; G 2426 +U 9508 ; WX 602 ; N SF090000 ; G 2427 +U 9509 ; WX 602 ; N uni2525 ; G 2428 +U 9510 ; WX 602 ; N uni2526 ; G 2429 +U 9511 ; WX 602 ; N uni2527 ; G 2430 +U 9512 ; WX 602 ; N uni2528 ; G 2431 +U 9513 ; WX 602 ; N uni2529 ; G 2432 +U 9514 ; WX 602 ; N uni252A ; G 2433 +U 9515 ; WX 602 ; N uni252B ; G 2434 +U 9516 ; WX 602 ; N SF060000 ; G 2435 +U 9517 ; WX 602 ; N uni252D ; G 2436 +U 9518 ; WX 602 ; N uni252E ; G 2437 +U 9519 ; WX 602 ; N uni252F ; G 2438 +U 9520 ; WX 602 ; N uni2530 ; G 2439 +U 9521 ; WX 602 ; N uni2531 ; G 2440 +U 9522 ; WX 602 ; N uni2532 ; G 2441 +U 9523 ; WX 602 ; N uni2533 ; G 2442 +U 9524 ; WX 602 ; N SF070000 ; G 2443 +U 9525 ; WX 602 ; N uni2535 ; G 2444 +U 9526 ; WX 602 ; N uni2536 ; G 2445 +U 9527 ; WX 602 ; N uni2537 ; G 2446 +U 9528 ; WX 602 ; N uni2538 ; G 2447 +U 9529 ; WX 602 ; N uni2539 ; G 2448 +U 9530 ; WX 602 ; N uni253A ; G 2449 +U 9531 ; WX 602 ; N uni253B ; G 2450 +U 9532 ; WX 602 ; N SF050000 ; G 2451 +U 9533 ; WX 602 ; N uni253D ; G 2452 +U 9534 ; WX 602 ; N uni253E ; G 2453 +U 9535 ; WX 602 ; N uni253F ; G 2454 +U 9536 ; WX 602 ; N uni2540 ; G 2455 +U 9537 ; WX 602 ; N uni2541 ; G 2456 +U 9538 ; WX 602 ; N uni2542 ; G 2457 +U 9539 ; WX 602 ; N uni2543 ; G 2458 +U 9540 ; WX 602 ; N uni2544 ; G 2459 +U 9541 ; WX 602 ; N uni2545 ; G 2460 +U 9542 ; WX 602 ; N uni2546 ; G 2461 +U 9543 ; WX 602 ; N uni2547 ; G 2462 +U 9544 ; WX 602 ; N uni2548 ; G 2463 +U 9545 ; WX 602 ; N uni2549 ; G 2464 +U 9546 ; WX 602 ; N uni254A ; G 2465 +U 9547 ; WX 602 ; N uni254B ; G 2466 +U 9548 ; WX 602 ; N uni254C ; G 2467 +U 9549 ; WX 602 ; N uni254D ; G 2468 +U 9550 ; WX 602 ; N uni254E ; G 2469 +U 9551 ; WX 602 ; N uni254F ; G 2470 +U 9552 ; WX 602 ; N SF430000 ; G 2471 +U 9553 ; WX 602 ; N SF240000 ; G 2472 +U 9554 ; WX 602 ; N SF510000 ; G 2473 +U 9555 ; WX 602 ; N SF520000 ; G 2474 +U 9556 ; WX 602 ; N SF390000 ; G 2475 +U 9557 ; WX 602 ; N SF220000 ; G 2476 +U 9558 ; WX 602 ; N SF210000 ; G 2477 +U 9559 ; WX 602 ; N SF250000 ; G 2478 +U 9560 ; WX 602 ; N SF500000 ; G 2479 +U 9561 ; WX 602 ; N SF490000 ; G 2480 +U 9562 ; WX 602 ; N SF380000 ; G 2481 +U 9563 ; WX 602 ; N SF280000 ; G 2482 +U 9564 ; WX 602 ; N SF270000 ; G 2483 +U 9565 ; WX 602 ; N SF260000 ; G 2484 +U 9566 ; WX 602 ; N SF360000 ; G 2485 +U 9567 ; WX 602 ; N SF370000 ; G 2486 +U 9568 ; WX 602 ; N SF420000 ; G 2487 +U 9569 ; WX 602 ; N SF190000 ; G 2488 +U 9570 ; WX 602 ; N SF200000 ; G 2489 +U 9571 ; WX 602 ; N SF230000 ; G 2490 +U 9572 ; WX 602 ; N SF470000 ; G 2491 +U 9573 ; WX 602 ; N SF480000 ; G 2492 +U 9574 ; WX 602 ; N SF410000 ; G 2493 +U 9575 ; WX 602 ; N SF450000 ; G 2494 +U 9576 ; WX 602 ; N SF460000 ; G 2495 +U 9577 ; WX 602 ; N SF400000 ; G 2496 +U 9578 ; WX 602 ; N SF540000 ; G 2497 +U 9579 ; WX 602 ; N SF530000 ; G 2498 +U 9580 ; WX 602 ; N SF440000 ; G 2499 +U 9581 ; WX 602 ; N uni256D ; G 2500 +U 9582 ; WX 602 ; N uni256E ; G 2501 +U 9583 ; WX 602 ; N uni256F ; G 2502 +U 9584 ; WX 602 ; N uni2570 ; G 2503 +U 9585 ; WX 602 ; N uni2571 ; G 2504 +U 9586 ; WX 602 ; N uni2572 ; G 2505 +U 9587 ; WX 602 ; N uni2573 ; G 2506 +U 9588 ; WX 602 ; N uni2574 ; G 2507 +U 9589 ; WX 602 ; N uni2575 ; G 2508 +U 9590 ; WX 602 ; N uni2576 ; G 2509 +U 9591 ; WX 602 ; N uni2577 ; G 2510 +U 9592 ; WX 602 ; N uni2578 ; G 2511 +U 9593 ; WX 602 ; N uni2579 ; G 2512 +U 9594 ; WX 602 ; N uni257A ; G 2513 +U 9595 ; WX 602 ; N uni257B ; G 2514 +U 9596 ; WX 602 ; N uni257C ; G 2515 +U 9597 ; WX 602 ; N uni257D ; G 2516 +U 9598 ; WX 602 ; N uni257E ; G 2517 +U 9599 ; WX 602 ; N uni257F ; G 2518 +U 9600 ; WX 602 ; N upblock ; G 2519 +U 9601 ; WX 602 ; N uni2581 ; G 2520 +U 9602 ; WX 602 ; N uni2582 ; G 2521 +U 9603 ; WX 602 ; N uni2583 ; G 2522 +U 9604 ; WX 602 ; N dnblock ; G 2523 +U 9605 ; WX 602 ; N uni2585 ; G 2524 +U 9606 ; WX 602 ; N uni2586 ; G 2525 +U 9607 ; WX 602 ; N uni2587 ; G 2526 +U 9608 ; WX 602 ; N block ; G 2527 +U 9609 ; WX 602 ; N uni2589 ; G 2528 +U 9610 ; WX 602 ; N uni258A ; G 2529 +U 9611 ; WX 602 ; N uni258B ; G 2530 +U 9612 ; WX 602 ; N lfblock ; G 2531 +U 9613 ; WX 602 ; N uni258D ; G 2532 +U 9614 ; WX 602 ; N uni258E ; G 2533 +U 9615 ; WX 602 ; N uni258F ; G 2534 +U 9616 ; WX 602 ; N rtblock ; G 2535 +U 9617 ; WX 602 ; N ltshade ; G 2536 +U 9618 ; WX 602 ; N shade ; G 2537 +U 9619 ; WX 602 ; N dkshade ; G 2538 +U 9620 ; WX 602 ; N uni2594 ; G 2539 +U 9621 ; WX 602 ; N uni2595 ; G 2540 +U 9622 ; WX 602 ; N uni2596 ; G 2541 +U 9623 ; WX 602 ; N uni2597 ; G 2542 +U 9624 ; WX 602 ; N uni2598 ; G 2543 +U 9625 ; WX 602 ; N uni2599 ; G 2544 +U 9626 ; WX 602 ; N uni259A ; G 2545 +U 9627 ; WX 602 ; N uni259B ; G 2546 +U 9628 ; WX 602 ; N uni259C ; G 2547 +U 9629 ; WX 602 ; N uni259D ; G 2548 +U 9630 ; WX 602 ; N uni259E ; G 2549 +U 9631 ; WX 602 ; N uni259F ; G 2550 +U 9632 ; WX 602 ; N filledbox ; G 2551 +U 9633 ; WX 602 ; N H22073 ; G 2552 +U 9634 ; WX 602 ; N uni25A2 ; G 2553 +U 9635 ; WX 602 ; N uni25A3 ; G 2554 +U 9636 ; WX 602 ; N uni25A4 ; G 2555 +U 9637 ; WX 602 ; N uni25A5 ; G 2556 +U 9638 ; WX 602 ; N uni25A6 ; G 2557 +U 9639 ; WX 602 ; N uni25A7 ; G 2558 +U 9640 ; WX 602 ; N uni25A8 ; G 2559 +U 9641 ; WX 602 ; N uni25A9 ; G 2560 +U 9642 ; WX 602 ; N H18543 ; G 2561 +U 9643 ; WX 602 ; N H18551 ; G 2562 +U 9644 ; WX 602 ; N filledrect ; G 2563 +U 9645 ; WX 602 ; N uni25AD ; G 2564 +U 9646 ; WX 602 ; N uni25AE ; G 2565 +U 9647 ; WX 602 ; N uni25AF ; G 2566 +U 9648 ; WX 602 ; N uni25B0 ; G 2567 +U 9649 ; WX 602 ; N uni25B1 ; G 2568 +U 9650 ; WX 602 ; N triagup ; G 2569 +U 9651 ; WX 602 ; N uni25B3 ; G 2570 +U 9652 ; WX 602 ; N uni25B4 ; G 2571 +U 9653 ; WX 602 ; N uni25B5 ; G 2572 +U 9654 ; WX 602 ; N uni25B6 ; G 2573 +U 9655 ; WX 602 ; N uni25B7 ; G 2574 +U 9656 ; WX 602 ; N uni25B8 ; G 2575 +U 9657 ; WX 602 ; N uni25B9 ; G 2576 +U 9658 ; WX 602 ; N triagrt ; G 2577 +U 9659 ; WX 602 ; N uni25BB ; G 2578 +U 9660 ; WX 602 ; N triagdn ; G 2579 +U 9661 ; WX 602 ; N uni25BD ; G 2580 +U 9662 ; WX 602 ; N uni25BE ; G 2581 +U 9663 ; WX 602 ; N uni25BF ; G 2582 +U 9664 ; WX 602 ; N uni25C0 ; G 2583 +U 9665 ; WX 602 ; N uni25C1 ; G 2584 +U 9666 ; WX 602 ; N uni25C2 ; G 2585 +U 9667 ; WX 602 ; N uni25C3 ; G 2586 +U 9668 ; WX 602 ; N triaglf ; G 2587 +U 9669 ; WX 602 ; N uni25C5 ; G 2588 +U 9670 ; WX 602 ; N uni25C6 ; G 2589 +U 9671 ; WX 602 ; N uni25C7 ; G 2590 +U 9672 ; WX 602 ; N uni25C8 ; G 2591 +U 9673 ; WX 602 ; N uni25C9 ; G 2592 +U 9674 ; WX 602 ; N lozenge ; G 2593 +U 9675 ; WX 602 ; N circle ; G 2594 +U 9676 ; WX 602 ; N uni25CC ; G 2595 +U 9677 ; WX 602 ; N uni25CD ; G 2596 +U 9678 ; WX 602 ; N uni25CE ; G 2597 +U 9679 ; WX 602 ; N H18533 ; G 2598 +U 9680 ; WX 602 ; N uni25D0 ; G 2599 +U 9681 ; WX 602 ; N uni25D1 ; G 2600 +U 9682 ; WX 602 ; N uni25D2 ; G 2601 +U 9683 ; WX 602 ; N uni25D3 ; G 2602 +U 9684 ; WX 602 ; N uni25D4 ; G 2603 +U 9685 ; WX 602 ; N uni25D5 ; G 2604 +U 9686 ; WX 602 ; N uni25D6 ; G 2605 +U 9687 ; WX 602 ; N uni25D7 ; G 2606 +U 9688 ; WX 602 ; N invbullet ; G 2607 +U 9689 ; WX 602 ; N invcircle ; G 2608 +U 9690 ; WX 602 ; N uni25DA ; G 2609 +U 9691 ; WX 602 ; N uni25DB ; G 2610 +U 9692 ; WX 602 ; N uni25DC ; G 2611 +U 9693 ; WX 602 ; N uni25DD ; G 2612 +U 9694 ; WX 602 ; N uni25DE ; G 2613 +U 9695 ; WX 602 ; N uni25DF ; G 2614 +U 9696 ; WX 602 ; N uni25E0 ; G 2615 +U 9697 ; WX 602 ; N uni25E1 ; G 2616 +U 9698 ; WX 602 ; N uni25E2 ; G 2617 +U 9699 ; WX 602 ; N uni25E3 ; G 2618 +U 9700 ; WX 602 ; N uni25E4 ; G 2619 +U 9701 ; WX 602 ; N uni25E5 ; G 2620 +U 9702 ; WX 602 ; N openbullet ; G 2621 +U 9703 ; WX 602 ; N uni25E7 ; G 2622 +U 9704 ; WX 602 ; N uni25E8 ; G 2623 +U 9705 ; WX 602 ; N uni25E9 ; G 2624 +U 9706 ; WX 602 ; N uni25EA ; G 2625 +U 9707 ; WX 602 ; N uni25EB ; G 2626 +U 9708 ; WX 602 ; N uni25EC ; G 2627 +U 9709 ; WX 602 ; N uni25ED ; G 2628 +U 9710 ; WX 602 ; N uni25EE ; G 2629 +U 9711 ; WX 602 ; N uni25EF ; G 2630 +U 9712 ; WX 602 ; N uni25F0 ; G 2631 +U 9713 ; WX 602 ; N uni25F1 ; G 2632 +U 9714 ; WX 602 ; N uni25F2 ; G 2633 +U 9715 ; WX 602 ; N uni25F3 ; G 2634 +U 9716 ; WX 602 ; N uni25F4 ; G 2635 +U 9717 ; WX 602 ; N uni25F5 ; G 2636 +U 9718 ; WX 602 ; N uni25F6 ; G 2637 +U 9719 ; WX 602 ; N uni25F7 ; G 2638 +U 9720 ; WX 602 ; N uni25F8 ; G 2639 +U 9721 ; WX 602 ; N uni25F9 ; G 2640 +U 9722 ; WX 602 ; N uni25FA ; G 2641 +U 9723 ; WX 602 ; N uni25FB ; G 2642 +U 9724 ; WX 602 ; N uni25FC ; G 2643 +U 9725 ; WX 602 ; N uni25FD ; G 2644 +U 9726 ; WX 602 ; N uni25FE ; G 2645 +U 9727 ; WX 602 ; N uni25FF ; G 2646 +U 9728 ; WX 602 ; N uni2600 ; G 2647 +U 9729 ; WX 602 ; N uni2601 ; G 2648 +U 9730 ; WX 602 ; N uni2602 ; G 2649 +U 9731 ; WX 602 ; N uni2603 ; G 2650 +U 9732 ; WX 602 ; N uni2604 ; G 2651 +U 9733 ; WX 602 ; N uni2605 ; G 2652 +U 9734 ; WX 602 ; N uni2606 ; G 2653 +U 9735 ; WX 602 ; N uni2607 ; G 2654 +U 9736 ; WX 602 ; N uni2608 ; G 2655 +U 9737 ; WX 602 ; N uni2609 ; G 2656 +U 9738 ; WX 602 ; N uni260A ; G 2657 +U 9739 ; WX 602 ; N uni260B ; G 2658 +U 9740 ; WX 602 ; N uni260C ; G 2659 +U 9741 ; WX 602 ; N uni260D ; G 2660 +U 9742 ; WX 602 ; N uni260E ; G 2661 +U 9743 ; WX 602 ; N uni260F ; G 2662 +U 9744 ; WX 602 ; N uni2610 ; G 2663 +U 9745 ; WX 602 ; N uni2611 ; G 2664 +U 9746 ; WX 602 ; N uni2612 ; G 2665 +U 9747 ; WX 602 ; N uni2613 ; G 2666 +U 9748 ; WX 602 ; N uni2614 ; G 2667 +U 9749 ; WX 602 ; N uni2615 ; G 2668 +U 9750 ; WX 602 ; N uni2616 ; G 2669 +U 9751 ; WX 602 ; N uni2617 ; G 2670 +U 9752 ; WX 602 ; N uni2618 ; G 2671 +U 9753 ; WX 602 ; N uni2619 ; G 2672 +U 9754 ; WX 602 ; N uni261A ; G 2673 +U 9755 ; WX 602 ; N uni261B ; G 2674 +U 9756 ; WX 602 ; N uni261C ; G 2675 +U 9757 ; WX 602 ; N uni261D ; G 2676 +U 9758 ; WX 602 ; N uni261E ; G 2677 +U 9759 ; WX 602 ; N uni261F ; G 2678 +U 9760 ; WX 602 ; N uni2620 ; G 2679 +U 9761 ; WX 602 ; N uni2621 ; G 2680 +U 9762 ; WX 602 ; N uni2622 ; G 2681 +U 9763 ; WX 602 ; N uni2623 ; G 2682 +U 9764 ; WX 602 ; N uni2624 ; G 2683 +U 9765 ; WX 602 ; N uni2625 ; G 2684 +U 9766 ; WX 602 ; N uni2626 ; G 2685 +U 9767 ; WX 602 ; N uni2627 ; G 2686 +U 9768 ; WX 602 ; N uni2628 ; G 2687 +U 9769 ; WX 602 ; N uni2629 ; G 2688 +U 9770 ; WX 602 ; N uni262A ; G 2689 +U 9771 ; WX 602 ; N uni262B ; G 2690 +U 9772 ; WX 602 ; N uni262C ; G 2691 +U 9773 ; WX 602 ; N uni262D ; G 2692 +U 9774 ; WX 602 ; N uni262E ; G 2693 +U 9775 ; WX 602 ; N uni262F ; G 2694 +U 9784 ; WX 602 ; N uni2638 ; G 2695 +U 9785 ; WX 602 ; N uni2639 ; G 2696 +U 9786 ; WX 602 ; N smileface ; G 2697 +U 9787 ; WX 602 ; N invsmileface ; G 2698 +U 9788 ; WX 602 ; N sun ; G 2699 +U 9789 ; WX 602 ; N uni263D ; G 2700 +U 9790 ; WX 602 ; N uni263E ; G 2701 +U 9791 ; WX 602 ; N uni263F ; G 2702 +U 9792 ; WX 602 ; N female ; G 2703 +U 9793 ; WX 602 ; N uni2641 ; G 2704 +U 9794 ; WX 602 ; N male ; G 2705 +U 9795 ; WX 602 ; N uni2643 ; G 2706 +U 9796 ; WX 602 ; N uni2644 ; G 2707 +U 9797 ; WX 602 ; N uni2645 ; G 2708 +U 9798 ; WX 602 ; N uni2646 ; G 2709 +U 9799 ; WX 602 ; N uni2647 ; G 2710 +U 9800 ; WX 602 ; N uni2648 ; G 2711 +U 9801 ; WX 602 ; N uni2649 ; G 2712 +U 9802 ; WX 602 ; N uni264A ; G 2713 +U 9803 ; WX 602 ; N uni264B ; G 2714 +U 9804 ; WX 602 ; N uni264C ; G 2715 +U 9805 ; WX 602 ; N uni264D ; G 2716 +U 9806 ; WX 602 ; N uni264E ; G 2717 +U 9807 ; WX 602 ; N uni264F ; G 2718 +U 9808 ; WX 602 ; N uni2650 ; G 2719 +U 9809 ; WX 602 ; N uni2651 ; G 2720 +U 9810 ; WX 602 ; N uni2652 ; G 2721 +U 9811 ; WX 602 ; N uni2653 ; G 2722 +U 9812 ; WX 602 ; N uni2654 ; G 2723 +U 9813 ; WX 602 ; N uni2655 ; G 2724 +U 9814 ; WX 602 ; N uni2656 ; G 2725 +U 9815 ; WX 602 ; N uni2657 ; G 2726 +U 9816 ; WX 602 ; N uni2658 ; G 2727 +U 9817 ; WX 602 ; N uni2659 ; G 2728 +U 9818 ; WX 602 ; N uni265A ; G 2729 +U 9819 ; WX 602 ; N uni265B ; G 2730 +U 9820 ; WX 602 ; N uni265C ; G 2731 +U 9821 ; WX 602 ; N uni265D ; G 2732 +U 9822 ; WX 602 ; N uni265E ; G 2733 +U 9823 ; WX 602 ; N uni265F ; G 2734 +U 9824 ; WX 602 ; N spade ; G 2735 +U 9825 ; WX 602 ; N uni2661 ; G 2736 +U 9826 ; WX 602 ; N uni2662 ; G 2737 +U 9827 ; WX 602 ; N club ; G 2738 +U 9828 ; WX 602 ; N uni2664 ; G 2739 +U 9829 ; WX 602 ; N heart ; G 2740 +U 9830 ; WX 602 ; N diamond ; G 2741 +U 9831 ; WX 602 ; N uni2667 ; G 2742 +U 9832 ; WX 602 ; N uni2668 ; G 2743 +U 9833 ; WX 602 ; N uni2669 ; G 2744 +U 9834 ; WX 602 ; N musicalnote ; G 2745 +U 9835 ; WX 602 ; N musicalnotedbl ; G 2746 +U 9836 ; WX 602 ; N uni266C ; G 2747 +U 9837 ; WX 602 ; N uni266D ; G 2748 +U 9838 ; WX 602 ; N uni266E ; G 2749 +U 9839 ; WX 602 ; N uni266F ; G 2750 +U 9840 ; WX 602 ; N uni2670 ; G 2751 +U 9841 ; WX 602 ; N uni2671 ; G 2752 +U 9842 ; WX 602 ; N uni2672 ; G 2753 +U 9843 ; WX 602 ; N uni2673 ; G 2754 +U 9844 ; WX 602 ; N uni2674 ; G 2755 +U 9845 ; WX 602 ; N uni2675 ; G 2756 +U 9846 ; WX 602 ; N uni2676 ; G 2757 +U 9847 ; WX 602 ; N uni2677 ; G 2758 +U 9848 ; WX 602 ; N uni2678 ; G 2759 +U 9849 ; WX 602 ; N uni2679 ; G 2760 +U 9850 ; WX 602 ; N uni267A ; G 2761 +U 9851 ; WX 602 ; N uni267B ; G 2762 +U 9852 ; WX 602 ; N uni267C ; G 2763 +U 9853 ; WX 602 ; N uni267D ; G 2764 +U 9854 ; WX 602 ; N uni267E ; G 2765 +U 9855 ; WX 602 ; N uni267F ; G 2766 +U 9856 ; WX 602 ; N uni2680 ; G 2767 +U 9857 ; WX 602 ; N uni2681 ; G 2768 +U 9858 ; WX 602 ; N uni2682 ; G 2769 +U 9859 ; WX 602 ; N uni2683 ; G 2770 +U 9860 ; WX 602 ; N uni2684 ; G 2771 +U 9861 ; WX 602 ; N uni2685 ; G 2772 +U 9862 ; WX 602 ; N uni2686 ; G 2773 +U 9863 ; WX 602 ; N uni2687 ; G 2774 +U 9864 ; WX 602 ; N uni2688 ; G 2775 +U 9865 ; WX 602 ; N uni2689 ; G 2776 +U 9866 ; WX 602 ; N uni268A ; G 2777 +U 9867 ; WX 602 ; N uni268B ; G 2778 +U 9872 ; WX 602 ; N uni2690 ; G 2779 +U 9873 ; WX 602 ; N uni2691 ; G 2780 +U 9874 ; WX 602 ; N uni2692 ; G 2781 +U 9875 ; WX 602 ; N uni2693 ; G 2782 +U 9876 ; WX 602 ; N uni2694 ; G 2783 +U 9877 ; WX 602 ; N uni2695 ; G 2784 +U 9878 ; WX 602 ; N uni2696 ; G 2785 +U 9879 ; WX 602 ; N uni2697 ; G 2786 +U 9880 ; WX 602 ; N uni2698 ; G 2787 +U 9881 ; WX 602 ; N uni2699 ; G 2788 +U 9882 ; WX 602 ; N uni269A ; G 2789 +U 9883 ; WX 602 ; N uni269B ; G 2790 +U 9884 ; WX 602 ; N uni269C ; G 2791 +U 9888 ; WX 602 ; N uni26A0 ; G 2792 +U 9889 ; WX 602 ; N uni26A1 ; G 2793 +U 9904 ; WX 602 ; N uni26B0 ; G 2794 +U 9905 ; WX 602 ; N uni26B1 ; G 2795 +U 9985 ; WX 602 ; N uni2701 ; G 2796 +U 9986 ; WX 602 ; N uni2702 ; G 2797 +U 9987 ; WX 602 ; N uni2703 ; G 2798 +U 9988 ; WX 602 ; N uni2704 ; G 2799 +U 9990 ; WX 602 ; N uni2706 ; G 2800 +U 9991 ; WX 602 ; N uni2707 ; G 2801 +U 9992 ; WX 602 ; N uni2708 ; G 2802 +U 9993 ; WX 602 ; N uni2709 ; G 2803 +U 9996 ; WX 602 ; N uni270C ; G 2804 +U 9997 ; WX 602 ; N uni270D ; G 2805 +U 9998 ; WX 602 ; N uni270E ; G 2806 +U 9999 ; WX 602 ; N uni270F ; G 2807 +U 10000 ; WX 602 ; N uni2710 ; G 2808 +U 10001 ; WX 602 ; N uni2711 ; G 2809 +U 10002 ; WX 602 ; N uni2712 ; G 2810 +U 10003 ; WX 602 ; N uni2713 ; G 2811 +U 10004 ; WX 602 ; N uni2714 ; G 2812 +U 10005 ; WX 602 ; N uni2715 ; G 2813 +U 10006 ; WX 602 ; N uni2716 ; G 2814 +U 10007 ; WX 602 ; N uni2717 ; G 2815 +U 10008 ; WX 602 ; N uni2718 ; G 2816 +U 10009 ; WX 602 ; N uni2719 ; G 2817 +U 10010 ; WX 602 ; N uni271A ; G 2818 +U 10011 ; WX 602 ; N uni271B ; G 2819 +U 10012 ; WX 602 ; N uni271C ; G 2820 +U 10013 ; WX 602 ; N uni271D ; G 2821 +U 10014 ; WX 602 ; N uni271E ; G 2822 +U 10015 ; WX 602 ; N uni271F ; G 2823 +U 10016 ; WX 602 ; N uni2720 ; G 2824 +U 10017 ; WX 602 ; N uni2721 ; G 2825 +U 10018 ; WX 602 ; N uni2722 ; G 2826 +U 10019 ; WX 602 ; N uni2723 ; G 2827 +U 10020 ; WX 602 ; N uni2724 ; G 2828 +U 10021 ; WX 602 ; N uni2725 ; G 2829 +U 10022 ; WX 602 ; N uni2726 ; G 2830 +U 10023 ; WX 602 ; N uni2727 ; G 2831 +U 10025 ; WX 602 ; N uni2729 ; G 2832 +U 10026 ; WX 602 ; N uni272A ; G 2833 +U 10027 ; WX 602 ; N uni272B ; G 2834 +U 10028 ; WX 602 ; N uni272C ; G 2835 +U 10029 ; WX 602 ; N uni272D ; G 2836 +U 10030 ; WX 602 ; N uni272E ; G 2837 +U 10031 ; WX 602 ; N uni272F ; G 2838 +U 10032 ; WX 602 ; N uni2730 ; G 2839 +U 10033 ; WX 602 ; N uni2731 ; G 2840 +U 10034 ; WX 602 ; N uni2732 ; G 2841 +U 10035 ; WX 602 ; N uni2733 ; G 2842 +U 10036 ; WX 602 ; N uni2734 ; G 2843 +U 10037 ; WX 602 ; N uni2735 ; G 2844 +U 10038 ; WX 602 ; N uni2736 ; G 2845 +U 10039 ; WX 602 ; N uni2737 ; G 2846 +U 10040 ; WX 602 ; N uni2738 ; G 2847 +U 10041 ; WX 602 ; N uni2739 ; G 2848 +U 10042 ; WX 602 ; N uni273A ; G 2849 +U 10043 ; WX 602 ; N uni273B ; G 2850 +U 10044 ; WX 602 ; N uni273C ; G 2851 +U 10045 ; WX 602 ; N uni273D ; G 2852 +U 10046 ; WX 602 ; N uni273E ; G 2853 +U 10047 ; WX 602 ; N uni273F ; G 2854 +U 10048 ; WX 602 ; N uni2740 ; G 2855 +U 10049 ; WX 602 ; N uni2741 ; G 2856 +U 10050 ; WX 602 ; N uni2742 ; G 2857 +U 10051 ; WX 602 ; N uni2743 ; G 2858 +U 10052 ; WX 602 ; N uni2744 ; G 2859 +U 10053 ; WX 602 ; N uni2745 ; G 2860 +U 10054 ; WX 602 ; N uni2746 ; G 2861 +U 10055 ; WX 602 ; N uni2747 ; G 2862 +U 10056 ; WX 602 ; N uni2748 ; G 2863 +U 10057 ; WX 602 ; N uni2749 ; G 2864 +U 10058 ; WX 602 ; N uni274A ; G 2865 +U 10059 ; WX 602 ; N uni274B ; G 2866 +U 10061 ; WX 602 ; N uni274D ; G 2867 +U 10063 ; WX 602 ; N uni274F ; G 2868 +U 10064 ; WX 602 ; N uni2750 ; G 2869 +U 10065 ; WX 602 ; N uni2751 ; G 2870 +U 10066 ; WX 602 ; N uni2752 ; G 2871 +U 10070 ; WX 602 ; N uni2756 ; G 2872 +U 10072 ; WX 602 ; N uni2758 ; G 2873 +U 10073 ; WX 602 ; N uni2759 ; G 2874 +U 10074 ; WX 602 ; N uni275A ; G 2875 +U 10075 ; WX 602 ; N uni275B ; G 2876 +U 10076 ; WX 602 ; N uni275C ; G 2877 +U 10077 ; WX 602 ; N uni275D ; G 2878 +U 10078 ; WX 602 ; N uni275E ; G 2879 +U 10081 ; WX 602 ; N uni2761 ; G 2880 +U 10082 ; WX 602 ; N uni2762 ; G 2881 +U 10083 ; WX 602 ; N uni2763 ; G 2882 +U 10084 ; WX 602 ; N uni2764 ; G 2883 +U 10085 ; WX 602 ; N uni2765 ; G 2884 +U 10086 ; WX 602 ; N uni2766 ; G 2885 +U 10087 ; WX 602 ; N uni2767 ; G 2886 +U 10088 ; WX 602 ; N uni2768 ; G 2887 +U 10089 ; WX 602 ; N uni2769 ; G 2888 +U 10090 ; WX 602 ; N uni276A ; G 2889 +U 10091 ; WX 602 ; N uni276B ; G 2890 +U 10092 ; WX 602 ; N uni276C ; G 2891 +U 10093 ; WX 602 ; N uni276D ; G 2892 +U 10094 ; WX 602 ; N uni276E ; G 2893 +U 10095 ; WX 602 ; N uni276F ; G 2894 +U 10096 ; WX 602 ; N uni2770 ; G 2895 +U 10097 ; WX 602 ; N uni2771 ; G 2896 +U 10098 ; WX 602 ; N uni2772 ; G 2897 +U 10099 ; WX 602 ; N uni2773 ; G 2898 +U 10100 ; WX 602 ; N uni2774 ; G 2899 +U 10101 ; WX 602 ; N uni2775 ; G 2900 +U 10132 ; WX 602 ; N uni2794 ; G 2901 +U 10136 ; WX 602 ; N uni2798 ; G 2902 +U 10137 ; WX 602 ; N uni2799 ; G 2903 +U 10138 ; WX 602 ; N uni279A ; G 2904 +U 10139 ; WX 602 ; N uni279B ; G 2905 +U 10140 ; WX 602 ; N uni279C ; G 2906 +U 10141 ; WX 602 ; N uni279D ; G 2907 +U 10142 ; WX 602 ; N uni279E ; G 2908 +U 10143 ; WX 602 ; N uni279F ; G 2909 +U 10144 ; WX 602 ; N uni27A0 ; G 2910 +U 10145 ; WX 602 ; N uni27A1 ; G 2911 +U 10146 ; WX 602 ; N uni27A2 ; G 2912 +U 10147 ; WX 602 ; N uni27A3 ; G 2913 +U 10148 ; WX 602 ; N uni27A4 ; G 2914 +U 10149 ; WX 602 ; N uni27A5 ; G 2915 +U 10150 ; WX 602 ; N uni27A6 ; G 2916 +U 10151 ; WX 602 ; N uni27A7 ; G 2917 +U 10152 ; WX 602 ; N uni27A8 ; G 2918 +U 10153 ; WX 602 ; N uni27A9 ; G 2919 +U 10154 ; WX 602 ; N uni27AA ; G 2920 +U 10155 ; WX 602 ; N uni27AB ; G 2921 +U 10156 ; WX 602 ; N uni27AC ; G 2922 +U 10157 ; WX 602 ; N uni27AD ; G 2923 +U 10158 ; WX 602 ; N uni27AE ; G 2924 +U 10159 ; WX 602 ; N uni27AF ; G 2925 +U 10161 ; WX 602 ; N uni27B1 ; G 2926 +U 10162 ; WX 602 ; N uni27B2 ; G 2927 +U 10163 ; WX 602 ; N uni27B3 ; G 2928 +U 10164 ; WX 602 ; N uni27B4 ; G 2929 +U 10165 ; WX 602 ; N uni27B5 ; G 2930 +U 10166 ; WX 602 ; N uni27B6 ; G 2931 +U 10167 ; WX 602 ; N uni27B7 ; G 2932 +U 10168 ; WX 602 ; N uni27B8 ; G 2933 +U 10169 ; WX 602 ; N uni27B9 ; G 2934 +U 10170 ; WX 602 ; N uni27BA ; G 2935 +U 10171 ; WX 602 ; N uni27BB ; G 2936 +U 10172 ; WX 602 ; N uni27BC ; G 2937 +U 10173 ; WX 602 ; N uni27BD ; G 2938 +U 10174 ; WX 602 ; N uni27BE ; G 2939 +U 10175 ; WX 602 ; N uni27BF ; G 2940 +U 10178 ; WX 602 ; N uni27C2 ; G 2941 +U 10181 ; WX 602 ; N uni27C5 ; G 2942 +U 10182 ; WX 602 ; N uni27C6 ; G 2943 +U 10204 ; WX 602 ; N uni27DC ; G 2944 +U 10208 ; WX 602 ; N uni27E0 ; G 2945 +U 10214 ; WX 602 ; N uni27E6 ; G 2946 +U 10215 ; WX 602 ; N uni27E7 ; G 2947 +U 10216 ; WX 602 ; N uni27E8 ; G 2948 +U 10217 ; WX 602 ; N uni27E9 ; G 2949 +U 10218 ; WX 602 ; N uni27EA ; G 2950 +U 10219 ; WX 602 ; N uni27EB ; G 2951 +U 10229 ; WX 602 ; N uni27F5 ; G 2952 +U 10230 ; WX 602 ; N uni27F6 ; G 2953 +U 10231 ; WX 602 ; N uni27F7 ; G 2954 +U 10631 ; WX 602 ; N uni2987 ; G 2955 +U 10632 ; WX 602 ; N uni2988 ; G 2956 +U 10647 ; WX 602 ; N uni2997 ; G 2957 +U 10648 ; WX 602 ; N uni2998 ; G 2958 +U 10731 ; WX 602 ; N uni29EB ; G 2959 +U 10746 ; WX 602 ; N uni29FA ; G 2960 +U 10747 ; WX 602 ; N uni29FB ; G 2961 +U 10752 ; WX 602 ; N uni2A00 ; G 2962 +U 10799 ; WX 602 ; N uni2A2F ; G 2963 +U 10858 ; WX 602 ; N uni2A6A ; G 2964 +U 10859 ; WX 602 ; N uni2A6B ; G 2965 +U 11013 ; WX 602 ; N uni2B05 ; G 2966 +U 11014 ; WX 602 ; N uni2B06 ; G 2967 +U 11015 ; WX 602 ; N uni2B07 ; G 2968 +U 11016 ; WX 602 ; N uni2B08 ; G 2969 +U 11017 ; WX 602 ; N uni2B09 ; G 2970 +U 11018 ; WX 602 ; N uni2B0A ; G 2971 +U 11019 ; WX 602 ; N uni2B0B ; G 2972 +U 11020 ; WX 602 ; N uni2B0C ; G 2973 +U 11021 ; WX 602 ; N uni2B0D ; G 2974 +U 11026 ; WX 602 ; N uni2B12 ; G 2975 +U 11027 ; WX 602 ; N uni2B13 ; G 2976 +U 11028 ; WX 602 ; N uni2B14 ; G 2977 +U 11029 ; WX 602 ; N uni2B15 ; G 2978 +U 11030 ; WX 602 ; N uni2B16 ; G 2979 +U 11031 ; WX 602 ; N uni2B17 ; G 2980 +U 11032 ; WX 602 ; N uni2B18 ; G 2981 +U 11033 ; WX 602 ; N uni2B19 ; G 2982 +U 11034 ; WX 602 ; N uni2B1A ; G 2983 +U 11364 ; WX 602 ; N uni2C64 ; G 2984 +U 11373 ; WX 602 ; N uni2C6D ; G 2985 +U 11374 ; WX 602 ; N uni2C6E ; G 2986 +U 11375 ; WX 602 ; N uni2C6F ; G 2987 +U 11376 ; WX 602 ; N uni2C70 ; G 2988 +U 11381 ; WX 602 ; N uni2C75 ; G 2989 +U 11382 ; WX 602 ; N uni2C76 ; G 2990 +U 11383 ; WX 602 ; N uni2C77 ; G 2991 +U 11385 ; WX 602 ; N uni2C79 ; G 2992 +U 11386 ; WX 602 ; N uni2C7A ; G 2993 +U 11388 ; WX 602 ; N uni2C7C ; G 2994 +U 11389 ; WX 602 ; N uni2C7D ; G 2995 +U 11390 ; WX 602 ; N uni2C7E ; G 2996 +U 11391 ; WX 602 ; N uni2C7F ; G 2997 +U 11800 ; WX 602 ; N uni2E18 ; G 2998 +U 11807 ; WX 602 ; N uni2E1F ; G 2999 +U 11810 ; WX 602 ; N uni2E22 ; G 3000 +U 11811 ; WX 602 ; N uni2E23 ; G 3001 +U 11812 ; WX 602 ; N uni2E24 ; G 3002 +U 11813 ; WX 602 ; N uni2E25 ; G 3003 +U 11822 ; WX 602 ; N uni2E2E ; G 3004 +U 42760 ; WX 602 ; N uniA708 ; G 3005 +U 42761 ; WX 602 ; N uniA709 ; G 3006 +U 42762 ; WX 602 ; N uniA70A ; G 3007 +U 42763 ; WX 602 ; N uniA70B ; G 3008 +U 42764 ; WX 602 ; N uniA70C ; G 3009 +U 42765 ; WX 602 ; N uniA70D ; G 3010 +U 42766 ; WX 602 ; N uniA70E ; G 3011 +U 42767 ; WX 602 ; N uniA70F ; G 3012 +U 42768 ; WX 602 ; N uniA710 ; G 3013 +U 42769 ; WX 602 ; N uniA711 ; G 3014 +U 42770 ; WX 602 ; N uniA712 ; G 3015 +U 42771 ; WX 602 ; N uniA713 ; G 3016 +U 42772 ; WX 602 ; N uniA714 ; G 3017 +U 42773 ; WX 602 ; N uniA715 ; G 3018 +U 42774 ; WX 602 ; N uniA716 ; G 3019 +U 42779 ; WX 602 ; N uniA71B ; G 3020 +U 42780 ; WX 602 ; N uniA71C ; G 3021 +U 42781 ; WX 602 ; N uniA71D ; G 3022 +U 42782 ; WX 602 ; N uniA71E ; G 3023 +U 42783 ; WX 602 ; N uniA71F ; G 3024 +U 42786 ; WX 602 ; N uniA722 ; G 3025 +U 42787 ; WX 602 ; N uniA723 ; G 3026 +U 42788 ; WX 602 ; N uniA724 ; G 3027 +U 42789 ; WX 602 ; N uniA725 ; G 3028 +U 42790 ; WX 602 ; N uniA726 ; G 3029 +U 42791 ; WX 602 ; N uniA727 ; G 3030 +U 42889 ; WX 602 ; N uniA789 ; G 3031 +U 42890 ; WX 602 ; N uniA78A ; G 3032 +U 42891 ; WX 602 ; N uniA78B ; G 3033 +U 42892 ; WX 602 ; N uniA78C ; G 3034 +U 42893 ; WX 602 ; N uniA78D ; G 3035 +U 42894 ; WX 602 ; N uniA78E ; G 3036 +U 42896 ; WX 602 ; N uniA790 ; G 3037 +U 42897 ; WX 602 ; N uniA791 ; G 3038 +U 42922 ; WX 602 ; N uniA7AA ; G 3039 +U 43000 ; WX 602 ; N uniA7F8 ; G 3040 +U 43001 ; WX 602 ; N uniA7F9 ; G 3041 +U 63173 ; WX 602 ; N uniF6C5 ; G 3042 +U 64257 ; WX 602 ; N fi ; G 3043 +U 64258 ; WX 602 ; N fl ; G 3044 +U 64338 ; WX 602 ; N uniFB52 ; G 3045 +U 64339 ; WX 602 ; N uniFB53 ; G 3046 +U 64340 ; WX 602 ; N uniFB54 ; G 3047 +U 64341 ; WX 602 ; N uniFB55 ; G 3048 +U 64342 ; WX 602 ; N uniFB56 ; G 3049 +U 64343 ; WX 602 ; N uniFB57 ; G 3050 +U 64344 ; WX 602 ; N uniFB58 ; G 3051 +U 64345 ; WX 602 ; N uniFB59 ; G 3052 +U 64346 ; WX 602 ; N uniFB5A ; G 3053 +U 64347 ; WX 602 ; N uniFB5B ; G 3054 +U 64348 ; WX 602 ; N uniFB5C ; G 3055 +U 64349 ; WX 602 ; N uniFB5D ; G 3056 +U 64350 ; WX 602 ; N uniFB5E ; G 3057 +U 64351 ; WX 602 ; N uniFB5F ; G 3058 +U 64352 ; WX 602 ; N uniFB60 ; G 3059 +U 64353 ; WX 602 ; N uniFB61 ; G 3060 +U 64354 ; WX 602 ; N uniFB62 ; G 3061 +U 64355 ; WX 602 ; N uniFB63 ; G 3062 +U 64356 ; WX 602 ; N uniFB64 ; G 3063 +U 64357 ; WX 602 ; N uniFB65 ; G 3064 +U 64358 ; WX 602 ; N uniFB66 ; G 3065 +U 64359 ; WX 602 ; N uniFB67 ; G 3066 +U 64360 ; WX 602 ; N uniFB68 ; G 3067 +U 64361 ; WX 602 ; N uniFB69 ; G 3068 +U 64362 ; WX 602 ; N uniFB6A ; G 3069 +U 64363 ; WX 602 ; N uniFB6B ; G 3070 +U 64364 ; WX 602 ; N uniFB6C ; G 3071 +U 64365 ; WX 602 ; N uniFB6D ; G 3072 +U 64366 ; WX 602 ; N uniFB6E ; G 3073 +U 64367 ; WX 602 ; N uniFB6F ; G 3074 +U 64368 ; WX 602 ; N uniFB70 ; G 3075 +U 64369 ; WX 602 ; N uniFB71 ; G 3076 +U 64370 ; WX 602 ; N uniFB72 ; G 3077 +U 64371 ; WX 602 ; N uniFB73 ; G 3078 +U 64372 ; WX 602 ; N uniFB74 ; G 3079 +U 64373 ; WX 602 ; N uniFB75 ; G 3080 +U 64374 ; WX 602 ; N uniFB76 ; G 3081 +U 64375 ; WX 602 ; N uniFB77 ; G 3082 +U 64376 ; WX 602 ; N uniFB78 ; G 3083 +U 64377 ; WX 602 ; N uniFB79 ; G 3084 +U 64378 ; WX 602 ; N uniFB7A ; G 3085 +U 64379 ; WX 602 ; N uniFB7B ; G 3086 +U 64380 ; WX 602 ; N uniFB7C ; G 3087 +U 64381 ; WX 602 ; N uniFB7D ; G 3088 +U 64382 ; WX 602 ; N uniFB7E ; G 3089 +U 64383 ; WX 602 ; N uniFB7F ; G 3090 +U 64384 ; WX 602 ; N uniFB80 ; G 3091 +U 64385 ; WX 602 ; N uniFB81 ; G 3092 +U 64394 ; WX 602 ; N uniFB8A ; G 3093 +U 64395 ; WX 602 ; N uniFB8B ; G 3094 +U 64396 ; WX 602 ; N uniFB8C ; G 3095 +U 64397 ; WX 602 ; N uniFB8D ; G 3096 +U 64398 ; WX 602 ; N uniFB8E ; G 3097 +U 64399 ; WX 602 ; N uniFB8F ; G 3098 +U 64400 ; WX 602 ; N uniFB90 ; G 3099 +U 64401 ; WX 602 ; N uniFB91 ; G 3100 +U 64402 ; WX 602 ; N uniFB92 ; G 3101 +U 64403 ; WX 602 ; N uniFB93 ; G 3102 +U 64404 ; WX 602 ; N uniFB94 ; G 3103 +U 64405 ; WX 602 ; N uniFB95 ; G 3104 +U 64414 ; WX 602 ; N uniFB9E ; G 3105 +U 64415 ; WX 602 ; N uniFB9F ; G 3106 +U 64426 ; WX 602 ; N uniFBAA ; G 3107 +U 64427 ; WX 602 ; N uniFBAB ; G 3108 +U 64428 ; WX 602 ; N uniFBAC ; G 3109 +U 64429 ; WX 602 ; N uniFBAD ; G 3110 +U 64488 ; WX 602 ; N uniFBE8 ; G 3111 +U 64489 ; WX 602 ; N uniFBE9 ; G 3112 +U 64508 ; WX 602 ; N uniFBFC ; G 3113 +U 64509 ; WX 602 ; N uniFBFD ; G 3114 +U 64510 ; WX 602 ; N uniFBFE ; G 3115 +U 64511 ; WX 602 ; N uniFBFF ; G 3116 +U 65136 ; WX 602 ; N uniFE70 ; G 3117 +U 65137 ; WX 602 ; N uniFE71 ; G 3118 +U 65138 ; WX 602 ; N uniFE72 ; G 3119 +U 65139 ; WX 602 ; N uniFE73 ; G 3120 +U 65140 ; WX 602 ; N uniFE74 ; G 3121 +U 65142 ; WX 602 ; N uniFE76 ; G 3122 +U 65143 ; WX 602 ; N uniFE77 ; G 3123 +U 65144 ; WX 602 ; N uniFE78 ; G 3124 +U 65145 ; WX 602 ; N uniFE79 ; G 3125 +U 65146 ; WX 602 ; N uniFE7A ; G 3126 +U 65147 ; WX 602 ; N uniFE7B ; G 3127 +U 65148 ; WX 602 ; N uniFE7C ; G 3128 +U 65149 ; WX 602 ; N uniFE7D ; G 3129 +U 65150 ; WX 602 ; N uniFE7E ; G 3130 +U 65151 ; WX 602 ; N uniFE7F ; G 3131 +U 65152 ; WX 602 ; N uniFE80 ; G 3132 +U 65153 ; WX 602 ; N uniFE81 ; G 3133 +U 65154 ; WX 602 ; N uniFE82 ; G 3134 +U 65155 ; WX 602 ; N uniFE83 ; G 3135 +U 65156 ; WX 602 ; N uniFE84 ; G 3136 +U 65157 ; WX 602 ; N uniFE85 ; G 3137 +U 65158 ; WX 602 ; N uniFE86 ; G 3138 +U 65159 ; WX 602 ; N uniFE87 ; G 3139 +U 65160 ; WX 602 ; N uniFE88 ; G 3140 +U 65161 ; WX 602 ; N uniFE89 ; G 3141 +U 65162 ; WX 602 ; N uniFE8A ; G 3142 +U 65163 ; WX 602 ; N uniFE8B ; G 3143 +U 65164 ; WX 602 ; N uniFE8C ; G 3144 +U 65165 ; WX 602 ; N uniFE8D ; G 3145 +U 65166 ; WX 602 ; N uniFE8E ; G 3146 +U 65167 ; WX 602 ; N uniFE8F ; G 3147 +U 65168 ; WX 602 ; N uniFE90 ; G 3148 +U 65169 ; WX 602 ; N uniFE91 ; G 3149 +U 65170 ; WX 602 ; N uniFE92 ; G 3150 +U 65171 ; WX 602 ; N uniFE93 ; G 3151 +U 65172 ; WX 602 ; N uniFE94 ; G 3152 +U 65173 ; WX 602 ; N uniFE95 ; G 3153 +U 65174 ; WX 602 ; N uniFE96 ; G 3154 +U 65175 ; WX 602 ; N uniFE97 ; G 3155 +U 65176 ; WX 602 ; N uniFE98 ; G 3156 +U 65177 ; WX 602 ; N uniFE99 ; G 3157 +U 65178 ; WX 602 ; N uniFE9A ; G 3158 +U 65179 ; WX 602 ; N uniFE9B ; G 3159 +U 65180 ; WX 602 ; N uniFE9C ; G 3160 +U 65181 ; WX 602 ; N uniFE9D ; G 3161 +U 65182 ; WX 602 ; N uniFE9E ; G 3162 +U 65183 ; WX 602 ; N uniFE9F ; G 3163 +U 65184 ; WX 602 ; N uniFEA0 ; G 3164 +U 65185 ; WX 602 ; N uniFEA1 ; G 3165 +U 65186 ; WX 602 ; N uniFEA2 ; G 3166 +U 65187 ; WX 602 ; N uniFEA3 ; G 3167 +U 65188 ; WX 602 ; N uniFEA4 ; G 3168 +U 65189 ; WX 602 ; N uniFEA5 ; G 3169 +U 65190 ; WX 602 ; N uniFEA6 ; G 3170 +U 65191 ; WX 602 ; N uniFEA7 ; G 3171 +U 65192 ; WX 602 ; N uniFEA8 ; G 3172 +U 65193 ; WX 602 ; N uniFEA9 ; G 3173 +U 65194 ; WX 602 ; N uniFEAA ; G 3174 +U 65195 ; WX 602 ; N uniFEAB ; G 3175 +U 65196 ; WX 602 ; N uniFEAC ; G 3176 +U 65197 ; WX 602 ; N uniFEAD ; G 3177 +U 65198 ; WX 602 ; N uniFEAE ; G 3178 +U 65199 ; WX 602 ; N uniFEAF ; G 3179 +U 65200 ; WX 602 ; N uniFEB0 ; G 3180 +U 65201 ; WX 602 ; N uniFEB1 ; G 3181 +U 65202 ; WX 602 ; N uniFEB2 ; G 3182 +U 65203 ; WX 602 ; N uniFEB3 ; G 3183 +U 65204 ; WX 602 ; N uniFEB4 ; G 3184 +U 65205 ; WX 602 ; N uniFEB5 ; G 3185 +U 65206 ; WX 602 ; N uniFEB6 ; G 3186 +U 65207 ; WX 602 ; N uniFEB7 ; G 3187 +U 65208 ; WX 602 ; N uniFEB8 ; G 3188 +U 65209 ; WX 602 ; N uniFEB9 ; G 3189 +U 65210 ; WX 602 ; N uniFEBA ; G 3190 +U 65211 ; WX 602 ; N uniFEBB ; G 3191 +U 65212 ; WX 602 ; N uniFEBC ; G 3192 +U 65213 ; WX 602 ; N uniFEBD ; G 3193 +U 65214 ; WX 602 ; N uniFEBE ; G 3194 +U 65215 ; WX 602 ; N uniFEBF ; G 3195 +U 65216 ; WX 602 ; N uniFEC0 ; G 3196 +U 65217 ; WX 602 ; N uniFEC1 ; G 3197 +U 65218 ; WX 602 ; N uniFEC2 ; G 3198 +U 65219 ; WX 602 ; N uniFEC3 ; G 3199 +U 65220 ; WX 602 ; N uniFEC4 ; G 3200 +U 65221 ; WX 602 ; N uniFEC5 ; G 3201 +U 65222 ; WX 602 ; N uniFEC6 ; G 3202 +U 65223 ; WX 602 ; N uniFEC7 ; G 3203 +U 65224 ; WX 602 ; N uniFEC8 ; G 3204 +U 65225 ; WX 602 ; N uniFEC9 ; G 3205 +U 65226 ; WX 602 ; N uniFECA ; G 3206 +U 65227 ; WX 602 ; N uniFECB ; G 3207 +U 65228 ; WX 602 ; N uniFECC ; G 3208 +U 65229 ; WX 602 ; N uniFECD ; G 3209 +U 65230 ; WX 602 ; N uniFECE ; G 3210 +U 65231 ; WX 602 ; N uniFECF ; G 3211 +U 65232 ; WX 602 ; N uniFED0 ; G 3212 +U 65233 ; WX 602 ; N uniFED1 ; G 3213 +U 65234 ; WX 602 ; N uniFED2 ; G 3214 +U 65235 ; WX 602 ; N uniFED3 ; G 3215 +U 65236 ; WX 602 ; N uniFED4 ; G 3216 +U 65237 ; WX 602 ; N uniFED5 ; G 3217 +U 65238 ; WX 602 ; N uniFED6 ; G 3218 +U 65239 ; WX 602 ; N uniFED7 ; G 3219 +U 65240 ; WX 602 ; N uniFED8 ; G 3220 +U 65241 ; WX 602 ; N uniFED9 ; G 3221 +U 65242 ; WX 602 ; N uniFEDA ; G 3222 +U 65243 ; WX 602 ; N uniFEDB ; G 3223 +U 65244 ; WX 602 ; N uniFEDC ; G 3224 +U 65245 ; WX 602 ; N uniFEDD ; G 3225 +U 65246 ; WX 602 ; N uniFEDE ; G 3226 +U 65247 ; WX 602 ; N uniFEDF ; G 3227 +U 65248 ; WX 602 ; N uniFEE0 ; G 3228 +U 65249 ; WX 602 ; N uniFEE1 ; G 3229 +U 65250 ; WX 602 ; N uniFEE2 ; G 3230 +U 65251 ; WX 602 ; N uniFEE3 ; G 3231 +U 65252 ; WX 602 ; N uniFEE4 ; G 3232 +U 65253 ; WX 602 ; N uniFEE5 ; G 3233 +U 65254 ; WX 602 ; N uniFEE6 ; G 3234 +U 65255 ; WX 602 ; N uniFEE7 ; G 3235 +U 65256 ; WX 602 ; N uniFEE8 ; G 3236 +U 65257 ; WX 602 ; N uniFEE9 ; G 3237 +U 65258 ; WX 602 ; N uniFEEA ; G 3238 +U 65259 ; WX 602 ; N uniFEEB ; G 3239 +U 65260 ; WX 602 ; N uniFEEC ; G 3240 +U 65261 ; WX 602 ; N uniFEED ; G 3241 +U 65262 ; WX 602 ; N uniFEEE ; G 3242 +U 65263 ; WX 602 ; N uniFEEF ; G 3243 +U 65264 ; WX 602 ; N uniFEF0 ; G 3244 +U 65265 ; WX 602 ; N uniFEF1 ; G 3245 +U 65266 ; WX 602 ; N uniFEF2 ; G 3246 +U 65267 ; WX 602 ; N uniFEF3 ; G 3247 +U 65268 ; WX 602 ; N uniFEF4 ; G 3248 +U 65269 ; WX 602 ; N uniFEF5 ; G 3249 +U 65270 ; WX 602 ; N uniFEF6 ; G 3250 +U 65271 ; WX 602 ; N uniFEF7 ; G 3251 +U 65272 ; WX 602 ; N uniFEF8 ; G 3252 +U 65273 ; WX 602 ; N uniFEF9 ; G 3253 +U 65274 ; WX 602 ; N uniFEFA ; G 3254 +U 65275 ; WX 602 ; N uniFEFB ; G 3255 +U 65276 ; WX 602 ; N uniFEFC ; G 3256 +U 65279 ; WX 602 ; N uniFEFF ; G 3257 +U 65529 ; WX 602 ; N uniFFF9 ; G 3258 +U 65530 ; WX 602 ; N uniFFFA ; G 3259 +U 65531 ; WX 602 ; N uniFFFB ; G 3260 +U 65532 ; WX 602 ; N uniFFFC ; G 3261 +U 65533 ; WX 602 ; N uniFFFD ; G 3262 +EndCharMetrics +EndFontMetrics diff --git a/public_html/2022/newcms/pdf/ttfonts/DejaVuSansMono-BoldOblique.ttf b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSansMono-BoldOblique.ttf similarity index 58% rename from public_html/2022/newcms/pdf/ttfonts/DejaVuSansMono-BoldOblique.ttf rename to public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSansMono-BoldOblique.ttf index 42bbcde..754dca7 100644 Binary files a/public_html/2022/newcms/pdf/ttfonts/DejaVuSansMono-BoldOblique.ttf and b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSansMono-BoldOblique.ttf differ diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSansMono-BoldOblique.ufm b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSansMono-BoldOblique.ufm new file mode 100644 index 0000000..3ae612a --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSansMono-BoldOblique.ufm @@ -0,0 +1,2707 @@ +StartFontMetrics 4.1 +Notice Converted by PHP-font-lib +Comment https://github.com/PhenX/php-font-lib +EncodingScheme FontSpecific +FontName DejaVu Sans Mono +FontSubfamily Bold Oblique +UniqueID DejaVu Sans Mono Bold Oblique +FullName DejaVu Sans Mono Bold Oblique +Version Version 2.37 +PostScriptName DejaVuSansMono-BoldOblique +Manufacturer DejaVu fonts team +FontVendorURL http://dejavu.sourceforge.net +LicenseURL http://dejavu.sourceforge.net/wiki/index.php/License +Weight Bold +ItalicAngle -11 +IsFixedPitch true +UnderlineThickness 44 +UnderlinePosition -63 +FontHeightOffset 0 +Ascender 928 +Descender -236 +FontBBox -425 -394 808 1008 +StartCharMetrics 2711 +U 32 ; WX 602 ; N space ; G 3 +U 33 ; WX 602 ; N exclam ; G 4 +U 34 ; WX 602 ; N quotedbl ; G 5 +U 35 ; WX 602 ; N numbersign ; G 6 +U 36 ; WX 602 ; N dollar ; G 7 +U 37 ; WX 602 ; N percent ; G 8 +U 38 ; WX 602 ; N ampersand ; G 9 +U 39 ; WX 602 ; N quotesingle ; G 10 +U 40 ; WX 602 ; N parenleft ; G 11 +U 41 ; WX 602 ; N parenright ; G 12 +U 42 ; WX 602 ; N asterisk ; G 13 +U 43 ; WX 602 ; N plus ; G 14 +U 44 ; WX 602 ; N comma ; G 15 +U 45 ; WX 602 ; N hyphen ; G 16 +U 46 ; WX 602 ; N period ; G 17 +U 47 ; WX 602 ; N slash ; G 18 +U 48 ; WX 602 ; N zero ; G 19 +U 49 ; WX 602 ; N one ; G 20 +U 50 ; WX 602 ; N two ; G 21 +U 51 ; WX 602 ; N three ; G 22 +U 52 ; WX 602 ; N four ; G 23 +U 53 ; WX 602 ; N five ; G 24 +U 54 ; WX 602 ; N six ; G 25 +U 55 ; WX 602 ; N seven ; G 26 +U 56 ; WX 602 ; N eight ; G 27 +U 57 ; WX 602 ; N nine ; G 28 +U 58 ; WX 602 ; N colon ; G 29 +U 59 ; WX 602 ; N semicolon ; G 30 +U 60 ; WX 602 ; N less ; G 31 +U 61 ; WX 602 ; N equal ; G 32 +U 62 ; WX 602 ; N greater ; G 33 +U 63 ; WX 602 ; N question ; G 34 +U 64 ; WX 602 ; N at ; G 35 +U 65 ; WX 602 ; N A ; G 36 +U 66 ; WX 602 ; N B ; G 37 +U 67 ; WX 602 ; N C ; G 38 +U 68 ; WX 602 ; N D ; G 39 +U 69 ; WX 602 ; N E ; G 40 +U 70 ; WX 602 ; N F ; G 41 +U 71 ; WX 602 ; N G ; G 42 +U 72 ; WX 602 ; N H ; G 43 +U 73 ; WX 602 ; N I ; G 44 +U 74 ; WX 602 ; N J ; G 45 +U 75 ; WX 602 ; N K ; G 46 +U 76 ; WX 602 ; N L ; G 47 +U 77 ; WX 602 ; N M ; G 48 +U 78 ; WX 602 ; N N ; G 49 +U 79 ; WX 602 ; N O ; G 50 +U 80 ; WX 602 ; N P ; G 51 +U 81 ; WX 602 ; N Q ; G 52 +U 82 ; WX 602 ; N R ; G 53 +U 83 ; WX 602 ; N S ; G 54 +U 84 ; WX 602 ; N T ; G 55 +U 85 ; WX 602 ; N U ; G 56 +U 86 ; WX 602 ; N V ; G 57 +U 87 ; WX 602 ; N W ; G 58 +U 88 ; WX 602 ; N X ; G 59 +U 89 ; WX 602 ; N Y ; G 60 +U 90 ; WX 602 ; N Z ; G 61 +U 91 ; WX 602 ; N bracketleft ; G 62 +U 92 ; WX 602 ; N backslash ; G 63 +U 93 ; WX 602 ; N bracketright ; G 64 +U 94 ; WX 602 ; N asciicircum ; G 65 +U 95 ; WX 602 ; N underscore ; G 66 +U 96 ; WX 602 ; N grave ; G 67 +U 97 ; WX 602 ; N a ; G 68 +U 98 ; WX 602 ; N b ; G 69 +U 99 ; WX 602 ; N c ; G 70 +U 100 ; WX 602 ; N d ; G 71 +U 101 ; WX 602 ; N e ; G 72 +U 102 ; WX 602 ; N f ; G 73 +U 103 ; WX 602 ; N g ; G 74 +U 104 ; WX 602 ; N h ; G 75 +U 105 ; WX 602 ; N i ; G 76 +U 106 ; WX 602 ; N j ; G 77 +U 107 ; WX 602 ; N k ; G 78 +U 108 ; WX 602 ; N l ; G 79 +U 109 ; WX 602 ; N m ; G 80 +U 110 ; WX 602 ; N n ; G 81 +U 111 ; WX 602 ; N o ; G 82 +U 112 ; WX 602 ; N p ; G 83 +U 113 ; WX 602 ; N q ; G 84 +U 114 ; WX 602 ; N r ; G 85 +U 115 ; WX 602 ; N s ; G 86 +U 116 ; WX 602 ; N t ; G 87 +U 117 ; WX 602 ; N u ; G 88 +U 118 ; WX 602 ; N v ; G 89 +U 119 ; WX 602 ; N w ; G 90 +U 120 ; WX 602 ; N x ; G 91 +U 121 ; WX 602 ; N y ; G 92 +U 122 ; WX 602 ; N z ; G 93 +U 123 ; WX 602 ; N braceleft ; G 94 +U 124 ; WX 602 ; N bar ; G 95 +U 125 ; WX 602 ; N braceright ; G 96 +U 126 ; WX 602 ; N asciitilde ; G 97 +U 160 ; WX 602 ; N nbspace ; G 98 +U 161 ; WX 602 ; N exclamdown ; G 99 +U 162 ; WX 602 ; N cent ; G 100 +U 163 ; WX 602 ; N sterling ; G 101 +U 164 ; WX 602 ; N currency ; G 102 +U 165 ; WX 602 ; N yen ; G 103 +U 166 ; WX 602 ; N brokenbar ; G 104 +U 167 ; WX 602 ; N section ; G 105 +U 168 ; WX 602 ; N dieresis ; G 106 +U 169 ; WX 602 ; N copyright ; G 107 +U 170 ; WX 602 ; N ordfeminine ; G 108 +U 171 ; WX 602 ; N guillemotleft ; G 109 +U 172 ; WX 602 ; N logicalnot ; G 110 +U 173 ; WX 602 ; N sfthyphen ; G 111 +U 174 ; WX 602 ; N registered ; G 112 +U 175 ; WX 602 ; N macron ; G 113 +U 176 ; WX 602 ; N degree ; G 114 +U 177 ; WX 602 ; N plusminus ; G 115 +U 178 ; WX 602 ; N twosuperior ; G 116 +U 179 ; WX 602 ; N threesuperior ; G 117 +U 180 ; WX 602 ; N acute ; G 118 +U 181 ; WX 602 ; N mu ; G 119 +U 182 ; WX 602 ; N paragraph ; G 120 +U 183 ; WX 602 ; N periodcentered ; G 121 +U 184 ; WX 602 ; N cedilla ; G 122 +U 185 ; WX 602 ; N onesuperior ; G 123 +U 186 ; WX 602 ; N ordmasculine ; G 124 +U 187 ; WX 602 ; N guillemotright ; G 125 +U 188 ; WX 602 ; N onequarter ; G 126 +U 189 ; WX 602 ; N onehalf ; G 127 +U 190 ; WX 602 ; N threequarters ; G 128 +U 191 ; WX 602 ; N questiondown ; G 129 +U 192 ; WX 602 ; N Agrave ; G 130 +U 193 ; WX 602 ; N Aacute ; G 131 +U 194 ; WX 602 ; N Acircumflex ; G 132 +U 195 ; WX 602 ; N Atilde ; G 133 +U 196 ; WX 602 ; N Adieresis ; G 134 +U 197 ; WX 602 ; N Aring ; G 135 +U 198 ; WX 602 ; N AE ; G 136 +U 199 ; WX 602 ; N Ccedilla ; G 137 +U 200 ; WX 602 ; N Egrave ; G 138 +U 201 ; WX 602 ; N Eacute ; G 139 +U 202 ; WX 602 ; N Ecircumflex ; G 140 +U 203 ; WX 602 ; N Edieresis ; G 141 +U 204 ; WX 602 ; N Igrave ; G 142 +U 205 ; WX 602 ; N Iacute ; G 143 +U 206 ; WX 602 ; N Icircumflex ; G 144 +U 207 ; WX 602 ; N Idieresis ; G 145 +U 208 ; WX 602 ; N Eth ; G 146 +U 209 ; WX 602 ; N Ntilde ; G 147 +U 210 ; WX 602 ; N Ograve ; G 148 +U 211 ; WX 602 ; N Oacute ; G 149 +U 212 ; WX 602 ; N Ocircumflex ; G 150 +U 213 ; WX 602 ; N Otilde ; G 151 +U 214 ; WX 602 ; N Odieresis ; G 152 +U 215 ; WX 602 ; N multiply ; G 153 +U 216 ; WX 602 ; N Oslash ; G 154 +U 217 ; WX 602 ; N Ugrave ; G 155 +U 218 ; WX 602 ; N Uacute ; G 156 +U 219 ; WX 602 ; N Ucircumflex ; G 157 +U 220 ; WX 602 ; N Udieresis ; G 158 +U 221 ; WX 602 ; N Yacute ; G 159 +U 222 ; WX 602 ; N Thorn ; G 160 +U 223 ; WX 602 ; N germandbls ; G 161 +U 224 ; WX 602 ; N agrave ; G 162 +U 225 ; WX 602 ; N aacute ; G 163 +U 226 ; WX 602 ; N acircumflex ; G 164 +U 227 ; WX 602 ; N atilde ; G 165 +U 228 ; WX 602 ; N adieresis ; G 166 +U 229 ; WX 602 ; N aring ; G 167 +U 230 ; WX 602 ; N ae ; G 168 +U 231 ; WX 602 ; N ccedilla ; G 169 +U 232 ; WX 602 ; N egrave ; G 170 +U 233 ; WX 602 ; N eacute ; G 171 +U 234 ; WX 602 ; N ecircumflex ; G 172 +U 235 ; WX 602 ; N edieresis ; G 173 +U 236 ; WX 602 ; N igrave ; G 174 +U 237 ; WX 602 ; N iacute ; G 175 +U 238 ; WX 602 ; N icircumflex ; G 176 +U 239 ; WX 602 ; N idieresis ; G 177 +U 240 ; WX 602 ; N eth ; G 178 +U 241 ; WX 602 ; N ntilde ; G 179 +U 242 ; WX 602 ; N ograve ; G 180 +U 243 ; WX 602 ; N oacute ; G 181 +U 244 ; WX 602 ; N ocircumflex ; G 182 +U 245 ; WX 602 ; N otilde ; G 183 +U 246 ; WX 602 ; N odieresis ; G 184 +U 247 ; WX 602 ; N divide ; G 185 +U 248 ; WX 602 ; N oslash ; G 186 +U 249 ; WX 602 ; N ugrave ; G 187 +U 250 ; WX 602 ; N uacute ; G 188 +U 251 ; WX 602 ; N ucircumflex ; G 189 +U 252 ; WX 602 ; N udieresis ; G 190 +U 253 ; WX 602 ; N yacute ; G 191 +U 254 ; WX 602 ; N thorn ; G 192 +U 255 ; WX 602 ; N ydieresis ; G 193 +U 256 ; WX 602 ; N Amacron ; G 194 +U 257 ; WX 602 ; N amacron ; G 195 +U 258 ; WX 602 ; N Abreve ; G 196 +U 259 ; WX 602 ; N abreve ; G 197 +U 260 ; WX 602 ; N Aogonek ; G 198 +U 261 ; WX 602 ; N aogonek ; G 199 +U 262 ; WX 602 ; N Cacute ; G 200 +U 263 ; WX 602 ; N cacute ; G 201 +U 264 ; WX 602 ; N Ccircumflex ; G 202 +U 265 ; WX 602 ; N ccircumflex ; G 203 +U 266 ; WX 602 ; N Cdotaccent ; G 204 +U 267 ; WX 602 ; N cdotaccent ; G 205 +U 268 ; WX 602 ; N Ccaron ; G 206 +U 269 ; WX 602 ; N ccaron ; G 207 +U 270 ; WX 602 ; N Dcaron ; G 208 +U 271 ; WX 602 ; N dcaron ; G 209 +U 272 ; WX 602 ; N Dcroat ; G 210 +U 273 ; WX 602 ; N dmacron ; G 211 +U 274 ; WX 602 ; N Emacron ; G 212 +U 275 ; WX 602 ; N emacron ; G 213 +U 276 ; WX 602 ; N Ebreve ; G 214 +U 277 ; WX 602 ; N ebreve ; G 215 +U 278 ; WX 602 ; N Edotaccent ; G 216 +U 279 ; WX 602 ; N edotaccent ; G 217 +U 280 ; WX 602 ; N Eogonek ; G 218 +U 281 ; WX 602 ; N eogonek ; G 219 +U 282 ; WX 602 ; N Ecaron ; G 220 +U 283 ; WX 602 ; N ecaron ; G 221 +U 284 ; WX 602 ; N Gcircumflex ; G 222 +U 285 ; WX 602 ; N gcircumflex ; G 223 +U 286 ; WX 602 ; N Gbreve ; G 224 +U 287 ; WX 602 ; N gbreve ; G 225 +U 288 ; WX 602 ; N Gdotaccent ; G 226 +U 289 ; WX 602 ; N gdotaccent ; G 227 +U 290 ; WX 602 ; N Gcommaaccent ; G 228 +U 291 ; WX 602 ; N gcommaaccent ; G 229 +U 292 ; WX 602 ; N Hcircumflex ; G 230 +U 293 ; WX 602 ; N hcircumflex ; G 231 +U 294 ; WX 602 ; N Hbar ; G 232 +U 295 ; WX 602 ; N hbar ; G 233 +U 296 ; WX 602 ; N Itilde ; G 234 +U 297 ; WX 602 ; N itilde ; G 235 +U 298 ; WX 602 ; N Imacron ; G 236 +U 299 ; WX 602 ; N imacron ; G 237 +U 300 ; WX 602 ; N Ibreve ; G 238 +U 301 ; WX 602 ; N ibreve ; G 239 +U 302 ; WX 602 ; N Iogonek ; G 240 +U 303 ; WX 602 ; N iogonek ; G 241 +U 304 ; WX 602 ; N Idot ; G 242 +U 305 ; WX 602 ; N dotlessi ; G 243 +U 306 ; WX 602 ; N IJ ; G 244 +U 307 ; WX 602 ; N ij ; G 245 +U 308 ; WX 602 ; N Jcircumflex ; G 246 +U 309 ; WX 602 ; N jcircumflex ; G 247 +U 310 ; WX 602 ; N Kcommaaccent ; G 248 +U 311 ; WX 602 ; N kcommaaccent ; G 249 +U 312 ; WX 602 ; N kgreenlandic ; G 250 +U 313 ; WX 602 ; N Lacute ; G 251 +U 314 ; WX 602 ; N lacute ; G 252 +U 315 ; WX 602 ; N Lcommaaccent ; G 253 +U 316 ; WX 602 ; N lcommaaccent ; G 254 +U 317 ; WX 602 ; N Lcaron ; G 255 +U 318 ; WX 602 ; N lcaron ; G 256 +U 319 ; WX 602 ; N Ldot ; G 257 +U 320 ; WX 602 ; N ldot ; G 258 +U 321 ; WX 602 ; N Lslash ; G 259 +U 322 ; WX 602 ; N lslash ; G 260 +U 323 ; WX 602 ; N Nacute ; G 261 +U 324 ; WX 602 ; N nacute ; G 262 +U 325 ; WX 602 ; N Ncommaaccent ; G 263 +U 326 ; WX 602 ; N ncommaaccent ; G 264 +U 327 ; WX 602 ; N Ncaron ; G 265 +U 328 ; WX 602 ; N ncaron ; G 266 +U 329 ; WX 602 ; N napostrophe ; G 267 +U 330 ; WX 602 ; N Eng ; G 268 +U 331 ; WX 602 ; N eng ; G 269 +U 332 ; WX 602 ; N Omacron ; G 270 +U 333 ; WX 602 ; N omacron ; G 271 +U 334 ; WX 602 ; N Obreve ; G 272 +U 335 ; WX 602 ; N obreve ; G 273 +U 336 ; WX 602 ; N Ohungarumlaut ; G 274 +U 337 ; WX 602 ; N ohungarumlaut ; G 275 +U 338 ; WX 602 ; N OE ; G 276 +U 339 ; WX 602 ; N oe ; G 277 +U 340 ; WX 602 ; N Racute ; G 278 +U 341 ; WX 602 ; N racute ; G 279 +U 342 ; WX 602 ; N Rcommaaccent ; G 280 +U 343 ; WX 602 ; N rcommaaccent ; G 281 +U 344 ; WX 602 ; N Rcaron ; G 282 +U 345 ; WX 602 ; N rcaron ; G 283 +U 346 ; WX 602 ; N Sacute ; G 284 +U 347 ; WX 602 ; N sacute ; G 285 +U 348 ; WX 602 ; N Scircumflex ; G 286 +U 349 ; WX 602 ; N scircumflex ; G 287 +U 350 ; WX 602 ; N Scedilla ; G 288 +U 351 ; WX 602 ; N scedilla ; G 289 +U 352 ; WX 602 ; N Scaron ; G 290 +U 353 ; WX 602 ; N scaron ; G 291 +U 354 ; WX 602 ; N Tcommaaccent ; G 292 +U 355 ; WX 602 ; N tcommaaccent ; G 293 +U 356 ; WX 602 ; N Tcaron ; G 294 +U 357 ; WX 602 ; N tcaron ; G 295 +U 358 ; WX 602 ; N Tbar ; G 296 +U 359 ; WX 602 ; N tbar ; G 297 +U 360 ; WX 602 ; N Utilde ; G 298 +U 361 ; WX 602 ; N utilde ; G 299 +U 362 ; WX 602 ; N Umacron ; G 300 +U 363 ; WX 602 ; N umacron ; G 301 +U 364 ; WX 602 ; N Ubreve ; G 302 +U 365 ; WX 602 ; N ubreve ; G 303 +U 366 ; WX 602 ; N Uring ; G 304 +U 367 ; WX 602 ; N uring ; G 305 +U 368 ; WX 602 ; N Uhungarumlaut ; G 306 +U 369 ; WX 602 ; N uhungarumlaut ; G 307 +U 370 ; WX 602 ; N Uogonek ; G 308 +U 371 ; WX 602 ; N uogonek ; G 309 +U 372 ; WX 602 ; N Wcircumflex ; G 310 +U 373 ; WX 602 ; N wcircumflex ; G 311 +U 374 ; WX 602 ; N Ycircumflex ; G 312 +U 375 ; WX 602 ; N ycircumflex ; G 313 +U 376 ; WX 602 ; N Ydieresis ; G 314 +U 377 ; WX 602 ; N Zacute ; G 315 +U 378 ; WX 602 ; N zacute ; G 316 +U 379 ; WX 602 ; N Zdotaccent ; G 317 +U 380 ; WX 602 ; N zdotaccent ; G 318 +U 381 ; WX 602 ; N Zcaron ; G 319 +U 382 ; WX 602 ; N zcaron ; G 320 +U 383 ; WX 602 ; N longs ; G 321 +U 384 ; WX 602 ; N uni0180 ; G 322 +U 385 ; WX 602 ; N uni0181 ; G 323 +U 386 ; WX 602 ; N uni0182 ; G 324 +U 387 ; WX 602 ; N uni0183 ; G 325 +U 388 ; WX 602 ; N uni0184 ; G 326 +U 389 ; WX 602 ; N uni0185 ; G 327 +U 390 ; WX 602 ; N uni0186 ; G 328 +U 391 ; WX 602 ; N uni0187 ; G 329 +U 392 ; WX 602 ; N uni0188 ; G 330 +U 393 ; WX 602 ; N uni0189 ; G 331 +U 394 ; WX 602 ; N uni018A ; G 332 +U 395 ; WX 602 ; N uni018B ; G 333 +U 396 ; WX 602 ; N uni018C ; G 334 +U 397 ; WX 602 ; N uni018D ; G 335 +U 398 ; WX 602 ; N uni018E ; G 336 +U 399 ; WX 602 ; N uni018F ; G 337 +U 400 ; WX 602 ; N uni0190 ; G 338 +U 401 ; WX 602 ; N uni0191 ; G 339 +U 402 ; WX 602 ; N florin ; G 340 +U 403 ; WX 602 ; N uni0193 ; G 341 +U 404 ; WX 602 ; N uni0194 ; G 342 +U 405 ; WX 602 ; N uni0195 ; G 343 +U 406 ; WX 602 ; N uni0196 ; G 344 +U 407 ; WX 602 ; N uni0197 ; G 345 +U 408 ; WX 602 ; N uni0198 ; G 346 +U 409 ; WX 602 ; N uni0199 ; G 347 +U 410 ; WX 602 ; N uni019A ; G 348 +U 411 ; WX 602 ; N uni019B ; G 349 +U 412 ; WX 602 ; N uni019C ; G 350 +U 413 ; WX 602 ; N uni019D ; G 351 +U 414 ; WX 602 ; N uni019E ; G 352 +U 415 ; WX 602 ; N uni019F ; G 353 +U 416 ; WX 602 ; N Ohorn ; G 354 +U 417 ; WX 602 ; N ohorn ; G 355 +U 418 ; WX 602 ; N uni01A2 ; G 356 +U 419 ; WX 602 ; N uni01A3 ; G 357 +U 420 ; WX 602 ; N uni01A4 ; G 358 +U 421 ; WX 602 ; N uni01A5 ; G 359 +U 422 ; WX 602 ; N uni01A6 ; G 360 +U 423 ; WX 602 ; N uni01A7 ; G 361 +U 424 ; WX 602 ; N uni01A8 ; G 362 +U 425 ; WX 602 ; N uni01A9 ; G 363 +U 426 ; WX 602 ; N uni01AA ; G 364 +U 427 ; WX 602 ; N uni01AB ; G 365 +U 428 ; WX 602 ; N uni01AC ; G 366 +U 429 ; WX 602 ; N uni01AD ; G 367 +U 430 ; WX 602 ; N uni01AE ; G 368 +U 431 ; WX 602 ; N Uhorn ; G 369 +U 432 ; WX 602 ; N uhorn ; G 370 +U 433 ; WX 602 ; N uni01B1 ; G 371 +U 434 ; WX 602 ; N uni01B2 ; G 372 +U 435 ; WX 602 ; N uni01B3 ; G 373 +U 436 ; WX 602 ; N uni01B4 ; G 374 +U 437 ; WX 602 ; N uni01B5 ; G 375 +U 438 ; WX 602 ; N uni01B6 ; G 376 +U 439 ; WX 602 ; N uni01B7 ; G 377 +U 440 ; WX 602 ; N uni01B8 ; G 378 +U 441 ; WX 602 ; N uni01B9 ; G 379 +U 442 ; WX 602 ; N uni01BA ; G 380 +U 443 ; WX 602 ; N uni01BB ; G 381 +U 444 ; WX 602 ; N uni01BC ; G 382 +U 445 ; WX 602 ; N uni01BD ; G 383 +U 446 ; WX 602 ; N uni01BE ; G 384 +U 447 ; WX 602 ; N uni01BF ; G 385 +U 448 ; WX 602 ; N uni01C0 ; G 386 +U 449 ; WX 602 ; N uni01C1 ; G 387 +U 450 ; WX 602 ; N uni01C2 ; G 388 +U 451 ; WX 602 ; N uni01C3 ; G 389 +U 461 ; WX 602 ; N uni01CD ; G 390 +U 462 ; WX 602 ; N uni01CE ; G 391 +U 463 ; WX 602 ; N uni01CF ; G 392 +U 464 ; WX 602 ; N uni01D0 ; G 393 +U 465 ; WX 602 ; N uni01D1 ; G 394 +U 466 ; WX 602 ; N uni01D2 ; G 395 +U 467 ; WX 602 ; N uni01D3 ; G 396 +U 468 ; WX 602 ; N uni01D4 ; G 397 +U 469 ; WX 602 ; N uni01D5 ; G 398 +U 470 ; WX 602 ; N uni01D6 ; G 399 +U 471 ; WX 602 ; N uni01D7 ; G 400 +U 472 ; WX 602 ; N uni01D8 ; G 401 +U 473 ; WX 602 ; N uni01D9 ; G 402 +U 474 ; WX 602 ; N uni01DA ; G 403 +U 475 ; WX 602 ; N uni01DB ; G 404 +U 476 ; WX 602 ; N uni01DC ; G 405 +U 477 ; WX 602 ; N uni01DD ; G 406 +U 478 ; WX 602 ; N uni01DE ; G 407 +U 479 ; WX 602 ; N uni01DF ; G 408 +U 480 ; WX 602 ; N uni01E0 ; G 409 +U 481 ; WX 602 ; N uni01E1 ; G 410 +U 482 ; WX 602 ; N uni01E2 ; G 411 +U 483 ; WX 602 ; N uni01E3 ; G 412 +U 486 ; WX 602 ; N Gcaron ; G 413 +U 487 ; WX 602 ; N gcaron ; G 414 +U 488 ; WX 602 ; N uni01E8 ; G 415 +U 489 ; WX 602 ; N uni01E9 ; G 416 +U 490 ; WX 602 ; N uni01EA ; G 417 +U 491 ; WX 602 ; N uni01EB ; G 418 +U 492 ; WX 602 ; N uni01EC ; G 419 +U 493 ; WX 602 ; N uni01ED ; G 420 +U 494 ; WX 602 ; N uni01EE ; G 421 +U 495 ; WX 602 ; N uni01EF ; G 422 +U 500 ; WX 602 ; N uni01F4 ; G 423 +U 501 ; WX 602 ; N uni01F5 ; G 424 +U 502 ; WX 602 ; N uni01F6 ; G 425 +U 504 ; WX 602 ; N uni01F8 ; G 426 +U 505 ; WX 602 ; N uni01F9 ; G 427 +U 508 ; WX 602 ; N AEacute ; G 428 +U 509 ; WX 602 ; N aeacute ; G 429 +U 510 ; WX 602 ; N Oslashacute ; G 430 +U 511 ; WX 602 ; N oslashacute ; G 431 +U 512 ; WX 602 ; N uni0200 ; G 432 +U 513 ; WX 602 ; N uni0201 ; G 433 +U 514 ; WX 602 ; N uni0202 ; G 434 +U 515 ; WX 602 ; N uni0203 ; G 435 +U 516 ; WX 602 ; N uni0204 ; G 436 +U 517 ; WX 602 ; N uni0205 ; G 437 +U 518 ; WX 602 ; N uni0206 ; G 438 +U 519 ; WX 602 ; N uni0207 ; G 439 +U 520 ; WX 602 ; N uni0208 ; G 440 +U 521 ; WX 602 ; N uni0209 ; G 441 +U 522 ; WX 602 ; N uni020A ; G 442 +U 523 ; WX 602 ; N uni020B ; G 443 +U 524 ; WX 602 ; N uni020C ; G 444 +U 525 ; WX 602 ; N uni020D ; G 445 +U 526 ; WX 602 ; N uni020E ; G 446 +U 527 ; WX 602 ; N uni020F ; G 447 +U 528 ; WX 602 ; N uni0210 ; G 448 +U 529 ; WX 602 ; N uni0211 ; G 449 +U 530 ; WX 602 ; N uni0212 ; G 450 +U 531 ; WX 602 ; N uni0213 ; G 451 +U 532 ; WX 602 ; N uni0214 ; G 452 +U 533 ; WX 602 ; N uni0215 ; G 453 +U 534 ; WX 602 ; N uni0216 ; G 454 +U 535 ; WX 602 ; N uni0217 ; G 455 +U 536 ; WX 602 ; N Scommaaccent ; G 456 +U 537 ; WX 602 ; N scommaaccent ; G 457 +U 538 ; WX 602 ; N uni021A ; G 458 +U 539 ; WX 602 ; N uni021B ; G 459 +U 540 ; WX 602 ; N uni021C ; G 460 +U 541 ; WX 602 ; N uni021D ; G 461 +U 542 ; WX 602 ; N uni021E ; G 462 +U 543 ; WX 602 ; N uni021F ; G 463 +U 545 ; WX 602 ; N uni0221 ; G 464 +U 548 ; WX 602 ; N uni0224 ; G 465 +U 549 ; WX 602 ; N uni0225 ; G 466 +U 550 ; WX 602 ; N uni0226 ; G 467 +U 551 ; WX 602 ; N uni0227 ; G 468 +U 552 ; WX 602 ; N uni0228 ; G 469 +U 553 ; WX 602 ; N uni0229 ; G 470 +U 554 ; WX 602 ; N uni022A ; G 471 +U 555 ; WX 602 ; N uni022B ; G 472 +U 556 ; WX 602 ; N uni022C ; G 473 +U 557 ; WX 602 ; N uni022D ; G 474 +U 558 ; WX 602 ; N uni022E ; G 475 +U 559 ; WX 602 ; N uni022F ; G 476 +U 560 ; WX 602 ; N uni0230 ; G 477 +U 561 ; WX 602 ; N uni0231 ; G 478 +U 562 ; WX 602 ; N uni0232 ; G 479 +U 563 ; WX 602 ; N uni0233 ; G 480 +U 564 ; WX 602 ; N uni0234 ; G 481 +U 565 ; WX 602 ; N uni0235 ; G 482 +U 566 ; WX 602 ; N uni0236 ; G 483 +U 567 ; WX 602 ; N dotlessj ; G 484 +U 568 ; WX 602 ; N uni0238 ; G 485 +U 569 ; WX 602 ; N uni0239 ; G 486 +U 570 ; WX 602 ; N uni023A ; G 487 +U 571 ; WX 602 ; N uni023B ; G 488 +U 572 ; WX 602 ; N uni023C ; G 489 +U 573 ; WX 602 ; N uni023D ; G 490 +U 574 ; WX 602 ; N uni023E ; G 491 +U 575 ; WX 602 ; N uni023F ; G 492 +U 576 ; WX 602 ; N uni0240 ; G 493 +U 577 ; WX 602 ; N uni0241 ; G 494 +U 579 ; WX 602 ; N uni0243 ; G 495 +U 580 ; WX 602 ; N uni0244 ; G 496 +U 581 ; WX 602 ; N uni0245 ; G 497 +U 588 ; WX 602 ; N uni024C ; G 498 +U 589 ; WX 602 ; N uni024D ; G 499 +U 592 ; WX 602 ; N uni0250 ; G 500 +U 593 ; WX 602 ; N uni0251 ; G 501 +U 594 ; WX 602 ; N uni0252 ; G 502 +U 595 ; WX 602 ; N uni0253 ; G 503 +U 596 ; WX 602 ; N uni0254 ; G 504 +U 597 ; WX 602 ; N uni0255 ; G 505 +U 598 ; WX 602 ; N uni0256 ; G 506 +U 599 ; WX 602 ; N uni0257 ; G 507 +U 600 ; WX 602 ; N uni0258 ; G 508 +U 601 ; WX 602 ; N uni0259 ; G 509 +U 602 ; WX 602 ; N uni025A ; G 510 +U 603 ; WX 602 ; N uni025B ; G 511 +U 604 ; WX 602 ; N uni025C ; G 512 +U 605 ; WX 602 ; N uni025D ; G 513 +U 606 ; WX 602 ; N uni025E ; G 514 +U 607 ; WX 602 ; N uni025F ; G 515 +U 608 ; WX 602 ; N uni0260 ; G 516 +U 609 ; WX 602 ; N uni0261 ; G 517 +U 610 ; WX 602 ; N uni0262 ; G 518 +U 611 ; WX 602 ; N uni0263 ; G 519 +U 612 ; WX 602 ; N uni0264 ; G 520 +U 613 ; WX 602 ; N uni0265 ; G 521 +U 614 ; WX 602 ; N uni0266 ; G 522 +U 615 ; WX 602 ; N uni0267 ; G 523 +U 616 ; WX 602 ; N uni0268 ; G 524 +U 617 ; WX 602 ; N uni0269 ; G 525 +U 618 ; WX 602 ; N uni026A ; G 526 +U 619 ; WX 602 ; N uni026B ; G 527 +U 620 ; WX 602 ; N uni026C ; G 528 +U 621 ; WX 602 ; N uni026D ; G 529 +U 622 ; WX 602 ; N uni026E ; G 530 +U 623 ; WX 602 ; N uni026F ; G 531 +U 624 ; WX 602 ; N uni0270 ; G 532 +U 625 ; WX 602 ; N uni0271 ; G 533 +U 626 ; WX 602 ; N uni0272 ; G 534 +U 627 ; WX 602 ; N uni0273 ; G 535 +U 628 ; WX 602 ; N uni0274 ; G 536 +U 629 ; WX 602 ; N uni0275 ; G 537 +U 630 ; WX 602 ; N uni0276 ; G 538 +U 631 ; WX 602 ; N uni0277 ; G 539 +U 632 ; WX 602 ; N uni0278 ; G 540 +U 633 ; WX 602 ; N uni0279 ; G 541 +U 634 ; WX 602 ; N uni027A ; G 542 +U 635 ; WX 602 ; N uni027B ; G 543 +U 636 ; WX 602 ; N uni027C ; G 544 +U 637 ; WX 602 ; N uni027D ; G 545 +U 638 ; WX 602 ; N uni027E ; G 546 +U 639 ; WX 602 ; N uni027F ; G 547 +U 640 ; WX 602 ; N uni0280 ; G 548 +U 641 ; WX 602 ; N uni0281 ; G 549 +U 642 ; WX 602 ; N uni0282 ; G 550 +U 643 ; WX 602 ; N uni0283 ; G 551 +U 644 ; WX 602 ; N uni0284 ; G 552 +U 645 ; WX 602 ; N uni0285 ; G 553 +U 646 ; WX 602 ; N uni0286 ; G 554 +U 647 ; WX 602 ; N uni0287 ; G 555 +U 648 ; WX 602 ; N uni0288 ; G 556 +U 649 ; WX 602 ; N uni0289 ; G 557 +U 650 ; WX 602 ; N uni028A ; G 558 +U 651 ; WX 602 ; N uni028B ; G 559 +U 652 ; WX 602 ; N uni028C ; G 560 +U 653 ; WX 602 ; N uni028D ; G 561 +U 654 ; WX 602 ; N uni028E ; G 562 +U 655 ; WX 602 ; N uni028F ; G 563 +U 656 ; WX 602 ; N uni0290 ; G 564 +U 657 ; WX 602 ; N uni0291 ; G 565 +U 658 ; WX 602 ; N uni0292 ; G 566 +U 659 ; WX 602 ; N uni0293 ; G 567 +U 660 ; WX 602 ; N uni0294 ; G 568 +U 661 ; WX 602 ; N uni0295 ; G 569 +U 662 ; WX 602 ; N uni0296 ; G 570 +U 663 ; WX 602 ; N uni0297 ; G 571 +U 664 ; WX 602 ; N uni0298 ; G 572 +U 665 ; WX 602 ; N uni0299 ; G 573 +U 666 ; WX 602 ; N uni029A ; G 574 +U 667 ; WX 602 ; N uni029B ; G 575 +U 668 ; WX 602 ; N uni029C ; G 576 +U 669 ; WX 602 ; N uni029D ; G 577 +U 670 ; WX 602 ; N uni029E ; G 578 +U 671 ; WX 602 ; N uni029F ; G 579 +U 672 ; WX 602 ; N uni02A0 ; G 580 +U 673 ; WX 602 ; N uni02A1 ; G 581 +U 674 ; WX 602 ; N uni02A2 ; G 582 +U 675 ; WX 602 ; N uni02A3 ; G 583 +U 676 ; WX 602 ; N uni02A4 ; G 584 +U 677 ; WX 602 ; N uni02A5 ; G 585 +U 678 ; WX 602 ; N uni02A6 ; G 586 +U 679 ; WX 602 ; N uni02A7 ; G 587 +U 680 ; WX 602 ; N uni02A8 ; G 588 +U 681 ; WX 602 ; N uni02A9 ; G 589 +U 682 ; WX 602 ; N uni02AA ; G 590 +U 683 ; WX 602 ; N uni02AB ; G 591 +U 684 ; WX 602 ; N uni02AC ; G 592 +U 685 ; WX 602 ; N uni02AD ; G 593 +U 686 ; WX 602 ; N uni02AE ; G 594 +U 687 ; WX 602 ; N uni02AF ; G 595 +U 688 ; WX 602 ; N uni02B0 ; G 596 +U 689 ; WX 602 ; N uni02B1 ; G 597 +U 690 ; WX 602 ; N uni02B2 ; G 598 +U 691 ; WX 602 ; N uni02B3 ; G 599 +U 692 ; WX 602 ; N uni02B4 ; G 600 +U 693 ; WX 602 ; N uni02B5 ; G 601 +U 694 ; WX 602 ; N uni02B6 ; G 602 +U 695 ; WX 602 ; N uni02B7 ; G 603 +U 696 ; WX 602 ; N uni02B8 ; G 604 +U 697 ; WX 602 ; N uni02B9 ; G 605 +U 699 ; WX 602 ; N uni02BB ; G 606 +U 700 ; WX 602 ; N uni02BC ; G 607 +U 701 ; WX 602 ; N uni02BD ; G 608 +U 702 ; WX 602 ; N uni02BE ; G 609 +U 703 ; WX 602 ; N uni02BF ; G 610 +U 704 ; WX 602 ; N uni02C0 ; G 611 +U 705 ; WX 602 ; N uni02C1 ; G 612 +U 710 ; WX 602 ; N circumflex ; G 613 +U 711 ; WX 602 ; N caron ; G 614 +U 712 ; WX 602 ; N uni02C8 ; G 615 +U 713 ; WX 602 ; N uni02C9 ; G 616 +U 716 ; WX 602 ; N uni02CC ; G 617 +U 717 ; WX 602 ; N uni02CD ; G 618 +U 718 ; WX 602 ; N uni02CE ; G 619 +U 719 ; WX 602 ; N uni02CF ; G 620 +U 720 ; WX 602 ; N uni02D0 ; G 621 +U 721 ; WX 602 ; N uni02D1 ; G 622 +U 722 ; WX 602 ; N uni02D2 ; G 623 +U 723 ; WX 602 ; N uni02D3 ; G 624 +U 726 ; WX 602 ; N uni02D6 ; G 625 +U 727 ; WX 602 ; N uni02D7 ; G 626 +U 728 ; WX 602 ; N breve ; G 627 +U 729 ; WX 602 ; N dotaccent ; G 628 +U 730 ; WX 602 ; N ring ; G 629 +U 731 ; WX 602 ; N ogonek ; G 630 +U 732 ; WX 602 ; N tilde ; G 631 +U 733 ; WX 602 ; N hungarumlaut ; G 632 +U 734 ; WX 602 ; N uni02DE ; G 633 +U 736 ; WX 602 ; N uni02E0 ; G 634 +U 737 ; WX 602 ; N uni02E1 ; G 635 +U 738 ; WX 602 ; N uni02E2 ; G 636 +U 739 ; WX 602 ; N uni02E3 ; G 637 +U 740 ; WX 602 ; N uni02E4 ; G 638 +U 741 ; WX 602 ; N uni02E5 ; G 639 +U 742 ; WX 602 ; N uni02E6 ; G 640 +U 743 ; WX 602 ; N uni02E7 ; G 641 +U 744 ; WX 602 ; N uni02E8 ; G 642 +U 745 ; WX 602 ; N uni02E9 ; G 643 +U 750 ; WX 602 ; N uni02EE ; G 644 +U 755 ; WX 602 ; N uni02F3 ; G 645 +U 768 ; WX 602 ; N gravecomb ; G 646 +U 769 ; WX 602 ; N acutecomb ; G 647 +U 770 ; WX 602 ; N uni0302 ; G 648 +U 771 ; WX 602 ; N tildecomb ; G 649 +U 772 ; WX 602 ; N uni0304 ; G 650 +U 773 ; WX 602 ; N uni0305 ; G 651 +U 774 ; WX 602 ; N uni0306 ; G 652 +U 775 ; WX 602 ; N uni0307 ; G 653 +U 776 ; WX 602 ; N uni0308 ; G 654 +U 777 ; WX 602 ; N hookabovecomb ; G 655 +U 778 ; WX 602 ; N uni030A ; G 656 +U 779 ; WX 602 ; N uni030B ; G 657 +U 780 ; WX 602 ; N uni030C ; G 658 +U 781 ; WX 602 ; N uni030D ; G 659 +U 782 ; WX 602 ; N uni030E ; G 660 +U 783 ; WX 602 ; N uni030F ; G 661 +U 784 ; WX 602 ; N uni0310 ; G 662 +U 785 ; WX 602 ; N uni0311 ; G 663 +U 786 ; WX 602 ; N uni0312 ; G 664 +U 787 ; WX 602 ; N uni0313 ; G 665 +U 788 ; WX 602 ; N uni0314 ; G 666 +U 789 ; WX 602 ; N uni0315 ; G 667 +U 790 ; WX 602 ; N uni0316 ; G 668 +U 791 ; WX 602 ; N uni0317 ; G 669 +U 792 ; WX 602 ; N uni0318 ; G 670 +U 793 ; WX 602 ; N uni0319 ; G 671 +U 794 ; WX 602 ; N uni031A ; G 672 +U 795 ; WX 602 ; N uni031B ; G 673 +U 796 ; WX 602 ; N uni031C ; G 674 +U 797 ; WX 602 ; N uni031D ; G 675 +U 798 ; WX 602 ; N uni031E ; G 676 +U 799 ; WX 602 ; N uni031F ; G 677 +U 800 ; WX 602 ; N uni0320 ; G 678 +U 801 ; WX 602 ; N uni0321 ; G 679 +U 802 ; WX 602 ; N uni0322 ; G 680 +U 803 ; WX 602 ; N dotbelowcomb ; G 681 +U 804 ; WX 602 ; N uni0324 ; G 682 +U 805 ; WX 602 ; N uni0325 ; G 683 +U 806 ; WX 602 ; N uni0326 ; G 684 +U 807 ; WX 602 ; N uni0327 ; G 685 +U 808 ; WX 602 ; N uni0328 ; G 686 +U 809 ; WX 602 ; N uni0329 ; G 687 +U 810 ; WX 602 ; N uni032A ; G 688 +U 811 ; WX 602 ; N uni032B ; G 689 +U 812 ; WX 602 ; N uni032C ; G 690 +U 813 ; WX 602 ; N uni032D ; G 691 +U 814 ; WX 602 ; N uni032E ; G 692 +U 815 ; WX 602 ; N uni032F ; G 693 +U 816 ; WX 602 ; N uni0330 ; G 694 +U 817 ; WX 602 ; N uni0331 ; G 695 +U 818 ; WX 602 ; N uni0332 ; G 696 +U 819 ; WX 602 ; N uni0333 ; G 697 +U 820 ; WX 602 ; N uni0334 ; G 698 +U 821 ; WX 602 ; N uni0335 ; G 699 +U 822 ; WX 602 ; N uni0336 ; G 700 +U 823 ; WX 602 ; N uni0337 ; G 701 +U 824 ; WX 602 ; N uni0338 ; G 702 +U 825 ; WX 602 ; N uni0339 ; G 703 +U 826 ; WX 602 ; N uni033A ; G 704 +U 827 ; WX 602 ; N uni033B ; G 705 +U 828 ; WX 602 ; N uni033C ; G 706 +U 829 ; WX 602 ; N uni033D ; G 707 +U 830 ; WX 602 ; N uni033E ; G 708 +U 831 ; WX 602 ; N uni033F ; G 709 +U 835 ; WX 602 ; N uni0343 ; G 710 +U 856 ; WX 602 ; N uni0358 ; G 711 +U 865 ; WX 602 ; N uni0361 ; G 712 +U 884 ; WX 602 ; N uni0374 ; G 713 +U 885 ; WX 602 ; N uni0375 ; G 714 +U 886 ; WX 602 ; N uni0376 ; G 715 +U 887 ; WX 602 ; N uni0377 ; G 716 +U 890 ; WX 602 ; N uni037A ; G 717 +U 891 ; WX 602 ; N uni037B ; G 718 +U 892 ; WX 602 ; N uni037C ; G 719 +U 893 ; WX 602 ; N uni037D ; G 720 +U 894 ; WX 602 ; N uni037E ; G 721 +U 895 ; WX 602 ; N uni037F ; G 722 +U 900 ; WX 602 ; N tonos ; G 723 +U 901 ; WX 602 ; N dieresistonos ; G 724 +U 902 ; WX 602 ; N Alphatonos ; G 725 +U 903 ; WX 602 ; N anoteleia ; G 726 +U 904 ; WX 602 ; N Epsilontonos ; G 727 +U 905 ; WX 602 ; N Etatonos ; G 728 +U 906 ; WX 602 ; N Iotatonos ; G 729 +U 908 ; WX 602 ; N Omicrontonos ; G 730 +U 910 ; WX 602 ; N Upsilontonos ; G 731 +U 911 ; WX 602 ; N Omegatonos ; G 732 +U 912 ; WX 602 ; N iotadieresistonos ; G 733 +U 913 ; WX 602 ; N Alpha ; G 734 +U 914 ; WX 602 ; N Beta ; G 735 +U 915 ; WX 602 ; N Gamma ; G 736 +U 916 ; WX 602 ; N uni0394 ; G 737 +U 917 ; WX 602 ; N Epsilon ; G 738 +U 918 ; WX 602 ; N Zeta ; G 739 +U 919 ; WX 602 ; N Eta ; G 740 +U 920 ; WX 602 ; N Theta ; G 741 +U 921 ; WX 602 ; N Iota ; G 742 +U 922 ; WX 602 ; N Kappa ; G 743 +U 923 ; WX 602 ; N Lambda ; G 744 +U 924 ; WX 602 ; N Mu ; G 745 +U 925 ; WX 602 ; N Nu ; G 746 +U 926 ; WX 602 ; N Xi ; G 747 +U 927 ; WX 602 ; N Omicron ; G 748 +U 928 ; WX 602 ; N Pi ; G 749 +U 929 ; WX 602 ; N Rho ; G 750 +U 931 ; WX 602 ; N Sigma ; G 751 +U 932 ; WX 602 ; N Tau ; G 752 +U 933 ; WX 602 ; N Upsilon ; G 753 +U 934 ; WX 602 ; N Phi ; G 754 +U 935 ; WX 602 ; N Chi ; G 755 +U 936 ; WX 602 ; N Psi ; G 756 +U 937 ; WX 602 ; N Omega ; G 757 +U 938 ; WX 602 ; N Iotadieresis ; G 758 +U 939 ; WX 602 ; N Upsilondieresis ; G 759 +U 940 ; WX 602 ; N alphatonos ; G 760 +U 941 ; WX 602 ; N epsilontonos ; G 761 +U 942 ; WX 602 ; N etatonos ; G 762 +U 943 ; WX 602 ; N iotatonos ; G 763 +U 944 ; WX 602 ; N upsilondieresistonos ; G 764 +U 945 ; WX 602 ; N alpha ; G 765 +U 946 ; WX 602 ; N beta ; G 766 +U 947 ; WX 602 ; N gamma ; G 767 +U 948 ; WX 602 ; N delta ; G 768 +U 949 ; WX 602 ; N epsilon ; G 769 +U 950 ; WX 602 ; N zeta ; G 770 +U 951 ; WX 602 ; N eta ; G 771 +U 952 ; WX 602 ; N theta ; G 772 +U 953 ; WX 602 ; N iota ; G 773 +U 954 ; WX 602 ; N kappa ; G 774 +U 955 ; WX 602 ; N lambda ; G 775 +U 956 ; WX 602 ; N uni03BC ; G 776 +U 957 ; WX 602 ; N nu ; G 777 +U 958 ; WX 602 ; N xi ; G 778 +U 959 ; WX 602 ; N omicron ; G 779 +U 960 ; WX 602 ; N pi ; G 780 +U 961 ; WX 602 ; N rho ; G 781 +U 962 ; WX 602 ; N sigma1 ; G 782 +U 963 ; WX 602 ; N sigma ; G 783 +U 964 ; WX 602 ; N tau ; G 784 +U 965 ; WX 602 ; N upsilon ; G 785 +U 966 ; WX 602 ; N phi ; G 786 +U 967 ; WX 602 ; N chi ; G 787 +U 968 ; WX 602 ; N psi ; G 788 +U 969 ; WX 602 ; N omega ; G 789 +U 970 ; WX 602 ; N iotadieresis ; G 790 +U 971 ; WX 602 ; N upsilondieresis ; G 791 +U 972 ; WX 602 ; N omicrontonos ; G 792 +U 973 ; WX 602 ; N upsilontonos ; G 793 +U 974 ; WX 602 ; N omegatonos ; G 794 +U 976 ; WX 602 ; N uni03D0 ; G 795 +U 977 ; WX 602 ; N theta1 ; G 796 +U 978 ; WX 602 ; N Upsilon1 ; G 797 +U 979 ; WX 602 ; N uni03D3 ; G 798 +U 980 ; WX 602 ; N uni03D4 ; G 799 +U 981 ; WX 602 ; N phi1 ; G 800 +U 982 ; WX 602 ; N omega1 ; G 801 +U 983 ; WX 602 ; N uni03D7 ; G 802 +U 984 ; WX 602 ; N uni03D8 ; G 803 +U 985 ; WX 602 ; N uni03D9 ; G 804 +U 986 ; WX 602 ; N uni03DA ; G 805 +U 987 ; WX 602 ; N uni03DB ; G 806 +U 988 ; WX 602 ; N uni03DC ; G 807 +U 989 ; WX 602 ; N uni03DD ; G 808 +U 990 ; WX 602 ; N uni03DE ; G 809 +U 991 ; WX 602 ; N uni03DF ; G 810 +U 992 ; WX 602 ; N uni03E0 ; G 811 +U 993 ; WX 602 ; N uni03E1 ; G 812 +U 1008 ; WX 602 ; N uni03F0 ; G 813 +U 1009 ; WX 602 ; N uni03F1 ; G 814 +U 1010 ; WX 602 ; N uni03F2 ; G 815 +U 1011 ; WX 602 ; N uni03F3 ; G 816 +U 1012 ; WX 602 ; N uni03F4 ; G 817 +U 1013 ; WX 602 ; N uni03F5 ; G 818 +U 1014 ; WX 602 ; N uni03F6 ; G 819 +U 1015 ; WX 602 ; N uni03F7 ; G 820 +U 1016 ; WX 602 ; N uni03F8 ; G 821 +U 1017 ; WX 602 ; N uni03F9 ; G 822 +U 1018 ; WX 602 ; N uni03FA ; G 823 +U 1019 ; WX 602 ; N uni03FB ; G 824 +U 1020 ; WX 602 ; N uni03FC ; G 825 +U 1021 ; WX 602 ; N uni03FD ; G 826 +U 1022 ; WX 602 ; N uni03FE ; G 827 +U 1023 ; WX 602 ; N uni03FF ; G 828 +U 1024 ; WX 602 ; N uni0400 ; G 829 +U 1025 ; WX 602 ; N uni0401 ; G 830 +U 1026 ; WX 602 ; N uni0402 ; G 831 +U 1027 ; WX 602 ; N uni0403 ; G 832 +U 1028 ; WX 602 ; N uni0404 ; G 833 +U 1029 ; WX 602 ; N uni0405 ; G 834 +U 1030 ; WX 602 ; N uni0406 ; G 835 +U 1031 ; WX 602 ; N uni0407 ; G 836 +U 1032 ; WX 602 ; N uni0408 ; G 837 +U 1033 ; WX 602 ; N uni0409 ; G 838 +U 1034 ; WX 602 ; N uni040A ; G 839 +U 1035 ; WX 602 ; N uni040B ; G 840 +U 1036 ; WX 602 ; N uni040C ; G 841 +U 1037 ; WX 602 ; N uni040D ; G 842 +U 1038 ; WX 602 ; N uni040E ; G 843 +U 1039 ; WX 602 ; N uni040F ; G 844 +U 1040 ; WX 602 ; N uni0410 ; G 845 +U 1041 ; WX 602 ; N uni0411 ; G 846 +U 1042 ; WX 602 ; N uni0412 ; G 847 +U 1043 ; WX 602 ; N uni0413 ; G 848 +U 1044 ; WX 602 ; N uni0414 ; G 849 +U 1045 ; WX 602 ; N uni0415 ; G 850 +U 1046 ; WX 602 ; N uni0416 ; G 851 +U 1047 ; WX 602 ; N uni0417 ; G 852 +U 1048 ; WX 602 ; N uni0418 ; G 853 +U 1049 ; WX 602 ; N uni0419 ; G 854 +U 1050 ; WX 602 ; N uni041A ; G 855 +U 1051 ; WX 602 ; N uni041B ; G 856 +U 1052 ; WX 602 ; N uni041C ; G 857 +U 1053 ; WX 602 ; N uni041D ; G 858 +U 1054 ; WX 602 ; N uni041E ; G 859 +U 1055 ; WX 602 ; N uni041F ; G 860 +U 1056 ; WX 602 ; N uni0420 ; G 861 +U 1057 ; WX 602 ; N uni0421 ; G 862 +U 1058 ; WX 602 ; N uni0422 ; G 863 +U 1059 ; WX 602 ; N uni0423 ; G 864 +U 1060 ; WX 602 ; N uni0424 ; G 865 +U 1061 ; WX 602 ; N uni0425 ; G 866 +U 1062 ; WX 602 ; N uni0426 ; G 867 +U 1063 ; WX 602 ; N uni0427 ; G 868 +U 1064 ; WX 602 ; N uni0428 ; G 869 +U 1065 ; WX 602 ; N uni0429 ; G 870 +U 1066 ; WX 602 ; N uni042A ; G 871 +U 1067 ; WX 602 ; N uni042B ; G 872 +U 1068 ; WX 602 ; N uni042C ; G 873 +U 1069 ; WX 602 ; N uni042D ; G 874 +U 1070 ; WX 602 ; N uni042E ; G 875 +U 1071 ; WX 602 ; N uni042F ; G 876 +U 1072 ; WX 602 ; N uni0430 ; G 877 +U 1073 ; WX 602 ; N uni0431 ; G 878 +U 1074 ; WX 602 ; N uni0432 ; G 879 +U 1075 ; WX 602 ; N uni0433 ; G 880 +U 1076 ; WX 602 ; N uni0434 ; G 881 +U 1077 ; WX 602 ; N uni0435 ; G 882 +U 1078 ; WX 602 ; N uni0436 ; G 883 +U 1079 ; WX 602 ; N uni0437 ; G 884 +U 1080 ; WX 602 ; N uni0438 ; G 885 +U 1081 ; WX 602 ; N uni0439 ; G 886 +U 1082 ; WX 602 ; N uni043A ; G 887 +U 1083 ; WX 602 ; N uni043B ; G 888 +U 1084 ; WX 602 ; N uni043C ; G 889 +U 1085 ; WX 602 ; N uni043D ; G 890 +U 1086 ; WX 602 ; N uni043E ; G 891 +U 1087 ; WX 602 ; N uni043F ; G 892 +U 1088 ; WX 602 ; N uni0440 ; G 893 +U 1089 ; WX 602 ; N uni0441 ; G 894 +U 1090 ; WX 602 ; N uni0442 ; G 895 +U 1091 ; WX 602 ; N uni0443 ; G 896 +U 1092 ; WX 602 ; N uni0444 ; G 897 +U 1093 ; WX 602 ; N uni0445 ; G 898 +U 1094 ; WX 602 ; N uni0446 ; G 899 +U 1095 ; WX 602 ; N uni0447 ; G 900 +U 1096 ; WX 602 ; N uni0448 ; G 901 +U 1097 ; WX 602 ; N uni0449 ; G 902 +U 1098 ; WX 602 ; N uni044A ; G 903 +U 1099 ; WX 602 ; N uni044B ; G 904 +U 1100 ; WX 602 ; N uni044C ; G 905 +U 1101 ; WX 602 ; N uni044D ; G 906 +U 1102 ; WX 602 ; N uni044E ; G 907 +U 1103 ; WX 602 ; N uni044F ; G 908 +U 1104 ; WX 602 ; N uni0450 ; G 909 +U 1105 ; WX 602 ; N uni0451 ; G 910 +U 1106 ; WX 602 ; N uni0452 ; G 911 +U 1107 ; WX 602 ; N uni0453 ; G 912 +U 1108 ; WX 602 ; N uni0454 ; G 913 +U 1109 ; WX 602 ; N uni0455 ; G 914 +U 1110 ; WX 602 ; N uni0456 ; G 915 +U 1111 ; WX 602 ; N uni0457 ; G 916 +U 1112 ; WX 602 ; N uni0458 ; G 917 +U 1113 ; WX 602 ; N uni0459 ; G 918 +U 1114 ; WX 602 ; N uni045A ; G 919 +U 1115 ; WX 602 ; N uni045B ; G 920 +U 1116 ; WX 602 ; N uni045C ; G 921 +U 1117 ; WX 602 ; N uni045D ; G 922 +U 1118 ; WX 602 ; N uni045E ; G 923 +U 1119 ; WX 602 ; N uni045F ; G 924 +U 1122 ; WX 602 ; N uni0462 ; G 925 +U 1123 ; WX 602 ; N uni0463 ; G 926 +U 1138 ; WX 602 ; N uni0472 ; G 927 +U 1139 ; WX 602 ; N uni0473 ; G 928 +U 1168 ; WX 602 ; N uni0490 ; G 929 +U 1169 ; WX 602 ; N uni0491 ; G 930 +U 1170 ; WX 602 ; N uni0492 ; G 931 +U 1171 ; WX 602 ; N uni0493 ; G 932 +U 1172 ; WX 602 ; N uni0494 ; G 933 +U 1173 ; WX 602 ; N uni0495 ; G 934 +U 1174 ; WX 602 ; N uni0496 ; G 935 +U 1175 ; WX 602 ; N uni0497 ; G 936 +U 1176 ; WX 602 ; N uni0498 ; G 937 +U 1177 ; WX 602 ; N uni0499 ; G 938 +U 1178 ; WX 602 ; N uni049A ; G 939 +U 1179 ; WX 602 ; N uni049B ; G 940 +U 1186 ; WX 602 ; N uni04A2 ; G 941 +U 1187 ; WX 602 ; N uni04A3 ; G 942 +U 1188 ; WX 602 ; N uni04A4 ; G 943 +U 1189 ; WX 602 ; N uni04A5 ; G 944 +U 1194 ; WX 602 ; N uni04AA ; G 945 +U 1195 ; WX 602 ; N uni04AB ; G 946 +U 1196 ; WX 602 ; N uni04AC ; G 947 +U 1197 ; WX 602 ; N uni04AD ; G 948 +U 1198 ; WX 602 ; N uni04AE ; G 949 +U 1199 ; WX 602 ; N uni04AF ; G 950 +U 1200 ; WX 602 ; N uni04B0 ; G 951 +U 1201 ; WX 602 ; N uni04B1 ; G 952 +U 1202 ; WX 602 ; N uni04B2 ; G 953 +U 1203 ; WX 602 ; N uni04B3 ; G 954 +U 1210 ; WX 602 ; N uni04BA ; G 955 +U 1211 ; WX 602 ; N uni04BB ; G 956 +U 1216 ; WX 602 ; N uni04C0 ; G 957 +U 1217 ; WX 602 ; N uni04C1 ; G 958 +U 1218 ; WX 602 ; N uni04C2 ; G 959 +U 1219 ; WX 602 ; N uni04C3 ; G 960 +U 1220 ; WX 602 ; N uni04C4 ; G 961 +U 1223 ; WX 602 ; N uni04C7 ; G 962 +U 1224 ; WX 602 ; N uni04C8 ; G 963 +U 1227 ; WX 602 ; N uni04CB ; G 964 +U 1228 ; WX 602 ; N uni04CC ; G 965 +U 1231 ; WX 602 ; N uni04CF ; G 966 +U 1232 ; WX 602 ; N uni04D0 ; G 967 +U 1233 ; WX 602 ; N uni04D1 ; G 968 +U 1234 ; WX 602 ; N uni04D2 ; G 969 +U 1235 ; WX 602 ; N uni04D3 ; G 970 +U 1236 ; WX 602 ; N uni04D4 ; G 971 +U 1237 ; WX 602 ; N uni04D5 ; G 972 +U 1238 ; WX 602 ; N uni04D6 ; G 973 +U 1239 ; WX 602 ; N uni04D7 ; G 974 +U 1240 ; WX 602 ; N uni04D8 ; G 975 +U 1241 ; WX 602 ; N uni04D9 ; G 976 +U 1242 ; WX 602 ; N uni04DA ; G 977 +U 1243 ; WX 602 ; N uni04DB ; G 978 +U 1244 ; WX 602 ; N uni04DC ; G 979 +U 1245 ; WX 602 ; N uni04DD ; G 980 +U 1246 ; WX 602 ; N uni04DE ; G 981 +U 1247 ; WX 602 ; N uni04DF ; G 982 +U 1248 ; WX 602 ; N uni04E0 ; G 983 +U 1249 ; WX 602 ; N uni04E1 ; G 984 +U 1250 ; WX 602 ; N uni04E2 ; G 985 +U 1251 ; WX 602 ; N uni04E3 ; G 986 +U 1252 ; WX 602 ; N uni04E4 ; G 987 +U 1253 ; WX 602 ; N uni04E5 ; G 988 +U 1254 ; WX 602 ; N uni04E6 ; G 989 +U 1255 ; WX 602 ; N uni04E7 ; G 990 +U 1256 ; WX 602 ; N uni04E8 ; G 991 +U 1257 ; WX 602 ; N uni04E9 ; G 992 +U 1258 ; WX 602 ; N uni04EA ; G 993 +U 1259 ; WX 602 ; N uni04EB ; G 994 +U 1260 ; WX 602 ; N uni04EC ; G 995 +U 1261 ; WX 602 ; N uni04ED ; G 996 +U 1262 ; WX 602 ; N uni04EE ; G 997 +U 1263 ; WX 602 ; N uni04EF ; G 998 +U 1264 ; WX 602 ; N uni04F0 ; G 999 +U 1265 ; WX 602 ; N uni04F1 ; G 1000 +U 1266 ; WX 602 ; N uni04F2 ; G 1001 +U 1267 ; WX 602 ; N uni04F3 ; G 1002 +U 1268 ; WX 602 ; N uni04F4 ; G 1003 +U 1269 ; WX 602 ; N uni04F5 ; G 1004 +U 1270 ; WX 602 ; N uni04F6 ; G 1005 +U 1271 ; WX 602 ; N uni04F7 ; G 1006 +U 1272 ; WX 602 ; N uni04F8 ; G 1007 +U 1273 ; WX 602 ; N uni04F9 ; G 1008 +U 1296 ; WX 602 ; N uni0510 ; G 1009 +U 1297 ; WX 602 ; N uni0511 ; G 1010 +U 1306 ; WX 602 ; N uni051A ; G 1011 +U 1307 ; WX 602 ; N uni051B ; G 1012 +U 1308 ; WX 602 ; N uni051C ; G 1013 +U 1309 ; WX 602 ; N uni051D ; G 1014 +U 1329 ; WX 602 ; N uni0531 ; G 1015 +U 1330 ; WX 602 ; N uni0532 ; G 1016 +U 1331 ; WX 602 ; N uni0533 ; G 1017 +U 1332 ; WX 602 ; N uni0534 ; G 1018 +U 1333 ; WX 602 ; N uni0535 ; G 1019 +U 1334 ; WX 602 ; N uni0536 ; G 1020 +U 1335 ; WX 602 ; N uni0537 ; G 1021 +U 1336 ; WX 602 ; N uni0538 ; G 1022 +U 1337 ; WX 602 ; N uni0539 ; G 1023 +U 1338 ; WX 602 ; N uni053A ; G 1024 +U 1339 ; WX 602 ; N uni053B ; G 1025 +U 1340 ; WX 602 ; N uni053C ; G 1026 +U 1341 ; WX 602 ; N uni053D ; G 1027 +U 1342 ; WX 602 ; N uni053E ; G 1028 +U 1343 ; WX 602 ; N uni053F ; G 1029 +U 1344 ; WX 602 ; N uni0540 ; G 1030 +U 1345 ; WX 602 ; N uni0541 ; G 1031 +U 1346 ; WX 602 ; N uni0542 ; G 1032 +U 1347 ; WX 602 ; N uni0543 ; G 1033 +U 1348 ; WX 602 ; N uni0544 ; G 1034 +U 1349 ; WX 602 ; N uni0545 ; G 1035 +U 1350 ; WX 602 ; N uni0546 ; G 1036 +U 1351 ; WX 602 ; N uni0547 ; G 1037 +U 1352 ; WX 602 ; N uni0548 ; G 1038 +U 1353 ; WX 602 ; N uni0549 ; G 1039 +U 1354 ; WX 602 ; N uni054A ; G 1040 +U 1355 ; WX 602 ; N uni054B ; G 1041 +U 1356 ; WX 602 ; N uni054C ; G 1042 +U 1357 ; WX 602 ; N uni054D ; G 1043 +U 1358 ; WX 602 ; N uni054E ; G 1044 +U 1359 ; WX 602 ; N uni054F ; G 1045 +U 1360 ; WX 602 ; N uni0550 ; G 1046 +U 1361 ; WX 602 ; N uni0551 ; G 1047 +U 1362 ; WX 602 ; N uni0552 ; G 1048 +U 1363 ; WX 602 ; N uni0553 ; G 1049 +U 1364 ; WX 602 ; N uni0554 ; G 1050 +U 1365 ; WX 602 ; N uni0555 ; G 1051 +U 1366 ; WX 602 ; N uni0556 ; G 1052 +U 1369 ; WX 602 ; N uni0559 ; G 1053 +U 1370 ; WX 602 ; N uni055A ; G 1054 +U 1371 ; WX 602 ; N uni055B ; G 1055 +U 1372 ; WX 602 ; N uni055C ; G 1056 +U 1373 ; WX 602 ; N uni055D ; G 1057 +U 1374 ; WX 602 ; N uni055E ; G 1058 +U 1375 ; WX 602 ; N uni055F ; G 1059 +U 1377 ; WX 602 ; N uni0561 ; G 1060 +U 1378 ; WX 602 ; N uni0562 ; G 1061 +U 1379 ; WX 602 ; N uni0563 ; G 1062 +U 1380 ; WX 602 ; N uni0564 ; G 1063 +U 1381 ; WX 602 ; N uni0565 ; G 1064 +U 1382 ; WX 602 ; N uni0566 ; G 1065 +U 1383 ; WX 602 ; N uni0567 ; G 1066 +U 1384 ; WX 602 ; N uni0568 ; G 1067 +U 1385 ; WX 602 ; N uni0569 ; G 1068 +U 1386 ; WX 602 ; N uni056A ; G 1069 +U 1387 ; WX 602 ; N uni056B ; G 1070 +U 1388 ; WX 602 ; N uni056C ; G 1071 +U 1389 ; WX 602 ; N uni056D ; G 1072 +U 1390 ; WX 602 ; N uni056E ; G 1073 +U 1391 ; WX 602 ; N uni056F ; G 1074 +U 1392 ; WX 602 ; N uni0570 ; G 1075 +U 1393 ; WX 602 ; N uni0571 ; G 1076 +U 1394 ; WX 602 ; N uni0572 ; G 1077 +U 1395 ; WX 602 ; N uni0573 ; G 1078 +U 1396 ; WX 602 ; N uni0574 ; G 1079 +U 1397 ; WX 602 ; N uni0575 ; G 1080 +U 1398 ; WX 602 ; N uni0576 ; G 1081 +U 1399 ; WX 602 ; N uni0577 ; G 1082 +U 1400 ; WX 602 ; N uni0578 ; G 1083 +U 1401 ; WX 602 ; N uni0579 ; G 1084 +U 1402 ; WX 602 ; N uni057A ; G 1085 +U 1403 ; WX 602 ; N uni057B ; G 1086 +U 1404 ; WX 602 ; N uni057C ; G 1087 +U 1405 ; WX 602 ; N uni057D ; G 1088 +U 1406 ; WX 602 ; N uni057E ; G 1089 +U 1407 ; WX 602 ; N uni057F ; G 1090 +U 1408 ; WX 602 ; N uni0580 ; G 1091 +U 1409 ; WX 602 ; N uni0581 ; G 1092 +U 1410 ; WX 602 ; N uni0582 ; G 1093 +U 1411 ; WX 602 ; N uni0583 ; G 1094 +U 1412 ; WX 602 ; N uni0584 ; G 1095 +U 1413 ; WX 602 ; N uni0585 ; G 1096 +U 1414 ; WX 602 ; N uni0586 ; G 1097 +U 1415 ; WX 602 ; N uni0587 ; G 1098 +U 1417 ; WX 602 ; N uni0589 ; G 1099 +U 1418 ; WX 602 ; N uni058A ; G 1100 +U 3647 ; WX 602 ; N uni0E3F ; G 1101 +U 3713 ; WX 602 ; N uni0E81 ; G 1102 +U 3714 ; WX 602 ; N uni0E82 ; G 1103 +U 3716 ; WX 602 ; N uni0E84 ; G 1104 +U 3719 ; WX 602 ; N uni0E87 ; G 1105 +U 3720 ; WX 602 ; N uni0E88 ; G 1106 +U 3722 ; WX 602 ; N uni0E8A ; G 1107 +U 3725 ; WX 602 ; N uni0E8D ; G 1108 +U 3732 ; WX 602 ; N uni0E94 ; G 1109 +U 3733 ; WX 602 ; N uni0E95 ; G 1110 +U 3734 ; WX 602 ; N uni0E96 ; G 1111 +U 3735 ; WX 602 ; N uni0E97 ; G 1112 +U 3737 ; WX 602 ; N uni0E99 ; G 1113 +U 3738 ; WX 602 ; N uni0E9A ; G 1114 +U 3739 ; WX 602 ; N uni0E9B ; G 1115 +U 3740 ; WX 602 ; N uni0E9C ; G 1116 +U 3741 ; WX 602 ; N uni0E9D ; G 1117 +U 3742 ; WX 602 ; N uni0E9E ; G 1118 +U 3743 ; WX 602 ; N uni0E9F ; G 1119 +U 3745 ; WX 602 ; N uni0EA1 ; G 1120 +U 3746 ; WX 602 ; N uni0EA2 ; G 1121 +U 3747 ; WX 602 ; N uni0EA3 ; G 1122 +U 3749 ; WX 602 ; N uni0EA5 ; G 1123 +U 3751 ; WX 602 ; N uni0EA7 ; G 1124 +U 3754 ; WX 602 ; N uni0EAA ; G 1125 +U 3755 ; WX 602 ; N uni0EAB ; G 1126 +U 3757 ; WX 602 ; N uni0EAD ; G 1127 +U 3758 ; WX 602 ; N uni0EAE ; G 1128 +U 3759 ; WX 602 ; N uni0EAF ; G 1129 +U 3760 ; WX 602 ; N uni0EB0 ; G 1130 +U 3761 ; WX 602 ; N uni0EB1 ; G 1131 +U 3762 ; WX 602 ; N uni0EB2 ; G 1132 +U 3763 ; WX 602 ; N uni0EB3 ; G 1133 +U 3764 ; WX 602 ; N uni0EB4 ; G 1134 +U 3765 ; WX 602 ; N uni0EB5 ; G 1135 +U 3766 ; WX 602 ; N uni0EB6 ; G 1136 +U 3767 ; WX 602 ; N uni0EB7 ; G 1137 +U 3768 ; WX 602 ; N uni0EB8 ; G 1138 +U 3769 ; WX 602 ; N uni0EB9 ; G 1139 +U 3771 ; WX 602 ; N uni0EBB ; G 1140 +U 3772 ; WX 602 ; N uni0EBC ; G 1141 +U 3784 ; WX 602 ; N uni0EC8 ; G 1142 +U 3785 ; WX 602 ; N uni0EC9 ; G 1143 +U 3786 ; WX 602 ; N uni0ECA ; G 1144 +U 3787 ; WX 602 ; N uni0ECB ; G 1145 +U 3788 ; WX 602 ; N uni0ECC ; G 1146 +U 3789 ; WX 602 ; N uni0ECD ; G 1147 +U 4304 ; WX 602 ; N uni10D0 ; G 1148 +U 4305 ; WX 602 ; N uni10D1 ; G 1149 +U 4306 ; WX 602 ; N uni10D2 ; G 1150 +U 4307 ; WX 602 ; N uni10D3 ; G 1151 +U 4308 ; WX 602 ; N uni10D4 ; G 1152 +U 4309 ; WX 602 ; N uni10D5 ; G 1153 +U 4310 ; WX 602 ; N uni10D6 ; G 1154 +U 4311 ; WX 602 ; N uni10D7 ; G 1155 +U 4312 ; WX 602 ; N uni10D8 ; G 1156 +U 4313 ; WX 602 ; N uni10D9 ; G 1157 +U 4314 ; WX 602 ; N uni10DA ; G 1158 +U 4315 ; WX 602 ; N uni10DB ; G 1159 +U 4316 ; WX 602 ; N uni10DC ; G 1160 +U 4317 ; WX 602 ; N uni10DD ; G 1161 +U 4318 ; WX 602 ; N uni10DE ; G 1162 +U 4319 ; WX 602 ; N uni10DF ; G 1163 +U 4320 ; WX 602 ; N uni10E0 ; G 1164 +U 4321 ; WX 602 ; N uni10E1 ; G 1165 +U 4322 ; WX 602 ; N uni10E2 ; G 1166 +U 4323 ; WX 602 ; N uni10E3 ; G 1167 +U 4324 ; WX 602 ; N uni10E4 ; G 1168 +U 4325 ; WX 602 ; N uni10E5 ; G 1169 +U 4326 ; WX 602 ; N uni10E6 ; G 1170 +U 4327 ; WX 602 ; N uni10E7 ; G 1171 +U 4328 ; WX 602 ; N uni10E8 ; G 1172 +U 4329 ; WX 602 ; N uni10E9 ; G 1173 +U 4330 ; WX 602 ; N uni10EA ; G 1174 +U 4331 ; WX 602 ; N uni10EB ; G 1175 +U 4332 ; WX 602 ; N uni10EC ; G 1176 +U 4333 ; WX 602 ; N uni10ED ; G 1177 +U 4334 ; WX 602 ; N uni10EE ; G 1178 +U 4335 ; WX 602 ; N uni10EF ; G 1179 +U 4336 ; WX 602 ; N uni10F0 ; G 1180 +U 4337 ; WX 602 ; N uni10F1 ; G 1181 +U 4338 ; WX 602 ; N uni10F2 ; G 1182 +U 4339 ; WX 602 ; N uni10F3 ; G 1183 +U 4340 ; WX 602 ; N uni10F4 ; G 1184 +U 4341 ; WX 602 ; N uni10F5 ; G 1185 +U 4342 ; WX 602 ; N uni10F6 ; G 1186 +U 4343 ; WX 602 ; N uni10F7 ; G 1187 +U 4344 ; WX 602 ; N uni10F8 ; G 1188 +U 4345 ; WX 602 ; N uni10F9 ; G 1189 +U 4346 ; WX 602 ; N uni10FA ; G 1190 +U 4347 ; WX 602 ; N uni10FB ; G 1191 +U 4348 ; WX 602 ; N uni10FC ; G 1192 +U 7426 ; WX 602 ; N uni1D02 ; G 1193 +U 7432 ; WX 602 ; N uni1D08 ; G 1194 +U 7433 ; WX 602 ; N uni1D09 ; G 1195 +U 7444 ; WX 602 ; N uni1D14 ; G 1196 +U 7446 ; WX 602 ; N uni1D16 ; G 1197 +U 7447 ; WX 602 ; N uni1D17 ; G 1198 +U 7453 ; WX 602 ; N uni1D1D ; G 1199 +U 7454 ; WX 602 ; N uni1D1E ; G 1200 +U 7455 ; WX 602 ; N uni1D1F ; G 1201 +U 7468 ; WX 602 ; N uni1D2C ; G 1202 +U 7469 ; WX 602 ; N uni1D2D ; G 1203 +U 7470 ; WX 602 ; N uni1D2E ; G 1204 +U 7472 ; WX 602 ; N uni1D30 ; G 1205 +U 7473 ; WX 602 ; N uni1D31 ; G 1206 +U 7474 ; WX 602 ; N uni1D32 ; G 1207 +U 7475 ; WX 602 ; N uni1D33 ; G 1208 +U 7476 ; WX 602 ; N uni1D34 ; G 1209 +U 7477 ; WX 602 ; N uni1D35 ; G 1210 +U 7478 ; WX 602 ; N uni1D36 ; G 1211 +U 7479 ; WX 602 ; N uni1D37 ; G 1212 +U 7480 ; WX 602 ; N uni1D38 ; G 1213 +U 7481 ; WX 602 ; N uni1D39 ; G 1214 +U 7482 ; WX 602 ; N uni1D3A ; G 1215 +U 7483 ; WX 602 ; N uni1D3B ; G 1216 +U 7484 ; WX 602 ; N uni1D3C ; G 1217 +U 7486 ; WX 602 ; N uni1D3E ; G 1218 +U 7487 ; WX 602 ; N uni1D3F ; G 1219 +U 7488 ; WX 602 ; N uni1D40 ; G 1220 +U 7489 ; WX 602 ; N uni1D41 ; G 1221 +U 7490 ; WX 602 ; N uni1D42 ; G 1222 +U 7491 ; WX 602 ; N uni1D43 ; G 1223 +U 7492 ; WX 602 ; N uni1D44 ; G 1224 +U 7493 ; WX 602 ; N uni1D45 ; G 1225 +U 7494 ; WX 602 ; N uni1D46 ; G 1226 +U 7495 ; WX 602 ; N uni1D47 ; G 1227 +U 7496 ; WX 602 ; N uni1D48 ; G 1228 +U 7497 ; WX 602 ; N uni1D49 ; G 1229 +U 7498 ; WX 602 ; N uni1D4A ; G 1230 +U 7499 ; WX 602 ; N uni1D4B ; G 1231 +U 7500 ; WX 602 ; N uni1D4C ; G 1232 +U 7501 ; WX 602 ; N uni1D4D ; G 1233 +U 7502 ; WX 602 ; N uni1D4E ; G 1234 +U 7503 ; WX 602 ; N uni1D4F ; G 1235 +U 7504 ; WX 602 ; N uni1D50 ; G 1236 +U 7505 ; WX 602 ; N uni1D51 ; G 1237 +U 7506 ; WX 602 ; N uni1D52 ; G 1238 +U 7507 ; WX 602 ; N uni1D53 ; G 1239 +U 7508 ; WX 602 ; N uni1D54 ; G 1240 +U 7509 ; WX 602 ; N uni1D55 ; G 1241 +U 7510 ; WX 602 ; N uni1D56 ; G 1242 +U 7511 ; WX 602 ; N uni1D57 ; G 1243 +U 7512 ; WX 602 ; N uni1D58 ; G 1244 +U 7513 ; WX 602 ; N uni1D59 ; G 1245 +U 7514 ; WX 602 ; N uni1D5A ; G 1246 +U 7515 ; WX 602 ; N uni1D5B ; G 1247 +U 7522 ; WX 602 ; N uni1D62 ; G 1248 +U 7523 ; WX 602 ; N uni1D63 ; G 1249 +U 7524 ; WX 602 ; N uni1D64 ; G 1250 +U 7525 ; WX 602 ; N uni1D65 ; G 1251 +U 7543 ; WX 602 ; N uni1D77 ; G 1252 +U 7544 ; WX 602 ; N uni1D78 ; G 1253 +U 7547 ; WX 602 ; N uni1D7B ; G 1254 +U 7557 ; WX 602 ; N uni1D85 ; G 1255 +U 7579 ; WX 602 ; N uni1D9B ; G 1256 +U 7580 ; WX 602 ; N uni1D9C ; G 1257 +U 7581 ; WX 602 ; N uni1D9D ; G 1258 +U 7582 ; WX 602 ; N uni1D9E ; G 1259 +U 7583 ; WX 602 ; N uni1D9F ; G 1260 +U 7584 ; WX 602 ; N uni1DA0 ; G 1261 +U 7585 ; WX 602 ; N uni1DA1 ; G 1262 +U 7586 ; WX 602 ; N uni1DA2 ; G 1263 +U 7587 ; WX 602 ; N uni1DA3 ; G 1264 +U 7588 ; WX 602 ; N uni1DA4 ; G 1265 +U 7589 ; WX 602 ; N uni1DA5 ; G 1266 +U 7590 ; WX 602 ; N uni1DA6 ; G 1267 +U 7591 ; WX 602 ; N uni1DA7 ; G 1268 +U 7592 ; WX 602 ; N uni1DA8 ; G 1269 +U 7593 ; WX 602 ; N uni1DA9 ; G 1270 +U 7594 ; WX 602 ; N uni1DAA ; G 1271 +U 7595 ; WX 602 ; N uni1DAB ; G 1272 +U 7596 ; WX 602 ; N uni1DAC ; G 1273 +U 7597 ; WX 602 ; N uni1DAD ; G 1274 +U 7598 ; WX 602 ; N uni1DAE ; G 1275 +U 7599 ; WX 602 ; N uni1DAF ; G 1276 +U 7600 ; WX 602 ; N uni1DB0 ; G 1277 +U 7601 ; WX 602 ; N uni1DB1 ; G 1278 +U 7602 ; WX 602 ; N uni1DB2 ; G 1279 +U 7603 ; WX 602 ; N uni1DB3 ; G 1280 +U 7604 ; WX 602 ; N uni1DB4 ; G 1281 +U 7605 ; WX 602 ; N uni1DB5 ; G 1282 +U 7606 ; WX 602 ; N uni1DB6 ; G 1283 +U 7607 ; WX 602 ; N uni1DB7 ; G 1284 +U 7609 ; WX 602 ; N uni1DB9 ; G 1285 +U 7610 ; WX 602 ; N uni1DBA ; G 1286 +U 7611 ; WX 602 ; N uni1DBB ; G 1287 +U 7612 ; WX 602 ; N uni1DBC ; G 1288 +U 7613 ; WX 602 ; N uni1DBD ; G 1289 +U 7614 ; WX 602 ; N uni1DBE ; G 1290 +U 7615 ; WX 602 ; N uni1DBF ; G 1291 +U 7680 ; WX 602 ; N uni1E00 ; G 1292 +U 7681 ; WX 602 ; N uni1E01 ; G 1293 +U 7682 ; WX 602 ; N uni1E02 ; G 1294 +U 7683 ; WX 602 ; N uni1E03 ; G 1295 +U 7684 ; WX 602 ; N uni1E04 ; G 1296 +U 7685 ; WX 602 ; N uni1E05 ; G 1297 +U 7686 ; WX 602 ; N uni1E06 ; G 1298 +U 7687 ; WX 602 ; N uni1E07 ; G 1299 +U 7688 ; WX 602 ; N uni1E08 ; G 1300 +U 7689 ; WX 602 ; N uni1E09 ; G 1301 +U 7690 ; WX 602 ; N uni1E0A ; G 1302 +U 7691 ; WX 602 ; N uni1E0B ; G 1303 +U 7692 ; WX 602 ; N uni1E0C ; G 1304 +U 7693 ; WX 602 ; N uni1E0D ; G 1305 +U 7694 ; WX 602 ; N uni1E0E ; G 1306 +U 7695 ; WX 602 ; N uni1E0F ; G 1307 +U 7696 ; WX 602 ; N uni1E10 ; G 1308 +U 7697 ; WX 602 ; N uni1E11 ; G 1309 +U 7698 ; WX 602 ; N uni1E12 ; G 1310 +U 7699 ; WX 602 ; N uni1E13 ; G 1311 +U 7704 ; WX 602 ; N uni1E18 ; G 1312 +U 7705 ; WX 602 ; N uni1E19 ; G 1313 +U 7706 ; WX 602 ; N uni1E1A ; G 1314 +U 7707 ; WX 602 ; N uni1E1B ; G 1315 +U 7708 ; WX 602 ; N uni1E1C ; G 1316 +U 7709 ; WX 602 ; N uni1E1D ; G 1317 +U 7710 ; WX 602 ; N uni1E1E ; G 1318 +U 7711 ; WX 602 ; N uni1E1F ; G 1319 +U 7712 ; WX 602 ; N uni1E20 ; G 1320 +U 7713 ; WX 602 ; N uni1E21 ; G 1321 +U 7714 ; WX 602 ; N uni1E22 ; G 1322 +U 7715 ; WX 602 ; N uni1E23 ; G 1323 +U 7716 ; WX 602 ; N uni1E24 ; G 1324 +U 7717 ; WX 602 ; N uni1E25 ; G 1325 +U 7718 ; WX 602 ; N uni1E26 ; G 1326 +U 7719 ; WX 602 ; N uni1E27 ; G 1327 +U 7720 ; WX 602 ; N uni1E28 ; G 1328 +U 7721 ; WX 602 ; N uni1E29 ; G 1329 +U 7722 ; WX 602 ; N uni1E2A ; G 1330 +U 7723 ; WX 602 ; N uni1E2B ; G 1331 +U 7724 ; WX 602 ; N uni1E2C ; G 1332 +U 7725 ; WX 602 ; N uni1E2D ; G 1333 +U 7728 ; WX 602 ; N uni1E30 ; G 1334 +U 7729 ; WX 602 ; N uni1E31 ; G 1335 +U 7730 ; WX 602 ; N uni1E32 ; G 1336 +U 7731 ; WX 602 ; N uni1E33 ; G 1337 +U 7732 ; WX 602 ; N uni1E34 ; G 1338 +U 7733 ; WX 602 ; N uni1E35 ; G 1339 +U 7734 ; WX 602 ; N uni1E36 ; G 1340 +U 7735 ; WX 602 ; N uni1E37 ; G 1341 +U 7736 ; WX 602 ; N uni1E38 ; G 1342 +U 7737 ; WX 602 ; N uni1E39 ; G 1343 +U 7738 ; WX 602 ; N uni1E3A ; G 1344 +U 7739 ; WX 602 ; N uni1E3B ; G 1345 +U 7740 ; WX 602 ; N uni1E3C ; G 1346 +U 7741 ; WX 602 ; N uni1E3D ; G 1347 +U 7742 ; WX 602 ; N uni1E3E ; G 1348 +U 7743 ; WX 602 ; N uni1E3F ; G 1349 +U 7744 ; WX 602 ; N uni1E40 ; G 1350 +U 7745 ; WX 602 ; N uni1E41 ; G 1351 +U 7746 ; WX 602 ; N uni1E42 ; G 1352 +U 7747 ; WX 602 ; N uni1E43 ; G 1353 +U 7748 ; WX 602 ; N uni1E44 ; G 1354 +U 7749 ; WX 602 ; N uni1E45 ; G 1355 +U 7750 ; WX 602 ; N uni1E46 ; G 1356 +U 7751 ; WX 602 ; N uni1E47 ; G 1357 +U 7752 ; WX 602 ; N uni1E48 ; G 1358 +U 7753 ; WX 602 ; N uni1E49 ; G 1359 +U 7754 ; WX 602 ; N uni1E4A ; G 1360 +U 7755 ; WX 602 ; N uni1E4B ; G 1361 +U 7756 ; WX 602 ; N uni1E4C ; G 1362 +U 7757 ; WX 602 ; N uni1E4D ; G 1363 +U 7764 ; WX 602 ; N uni1E54 ; G 1364 +U 7765 ; WX 602 ; N uni1E55 ; G 1365 +U 7766 ; WX 602 ; N uni1E56 ; G 1366 +U 7767 ; WX 602 ; N uni1E57 ; G 1367 +U 7768 ; WX 602 ; N uni1E58 ; G 1368 +U 7769 ; WX 602 ; N uni1E59 ; G 1369 +U 7770 ; WX 602 ; N uni1E5A ; G 1370 +U 7771 ; WX 602 ; N uni1E5B ; G 1371 +U 7772 ; WX 602 ; N uni1E5C ; G 1372 +U 7773 ; WX 602 ; N uni1E5D ; G 1373 +U 7774 ; WX 602 ; N uni1E5E ; G 1374 +U 7775 ; WX 602 ; N uni1E5F ; G 1375 +U 7776 ; WX 602 ; N uni1E60 ; G 1376 +U 7777 ; WX 602 ; N uni1E61 ; G 1377 +U 7778 ; WX 602 ; N uni1E62 ; G 1378 +U 7779 ; WX 602 ; N uni1E63 ; G 1379 +U 7784 ; WX 602 ; N uni1E68 ; G 1380 +U 7785 ; WX 602 ; N uni1E69 ; G 1381 +U 7786 ; WX 602 ; N uni1E6A ; G 1382 +U 7787 ; WX 602 ; N uni1E6B ; G 1383 +U 7788 ; WX 602 ; N uni1E6C ; G 1384 +U 7789 ; WX 602 ; N uni1E6D ; G 1385 +U 7790 ; WX 602 ; N uni1E6E ; G 1386 +U 7791 ; WX 602 ; N uni1E6F ; G 1387 +U 7792 ; WX 602 ; N uni1E70 ; G 1388 +U 7793 ; WX 602 ; N uni1E71 ; G 1389 +U 7794 ; WX 602 ; N uni1E72 ; G 1390 +U 7795 ; WX 602 ; N uni1E73 ; G 1391 +U 7796 ; WX 602 ; N uni1E74 ; G 1392 +U 7797 ; WX 602 ; N uni1E75 ; G 1393 +U 7798 ; WX 602 ; N uni1E76 ; G 1394 +U 7799 ; WX 602 ; N uni1E77 ; G 1395 +U 7800 ; WX 602 ; N uni1E78 ; G 1396 +U 7801 ; WX 602 ; N uni1E79 ; G 1397 +U 7804 ; WX 602 ; N uni1E7C ; G 1398 +U 7805 ; WX 602 ; N uni1E7D ; G 1399 +U 7806 ; WX 602 ; N uni1E7E ; G 1400 +U 7807 ; WX 602 ; N uni1E7F ; G 1401 +U 7808 ; WX 602 ; N Wgrave ; G 1402 +U 7809 ; WX 602 ; N wgrave ; G 1403 +U 7810 ; WX 602 ; N Wacute ; G 1404 +U 7811 ; WX 602 ; N wacute ; G 1405 +U 7812 ; WX 602 ; N Wdieresis ; G 1406 +U 7813 ; WX 602 ; N wdieresis ; G 1407 +U 7814 ; WX 602 ; N uni1E86 ; G 1408 +U 7815 ; WX 602 ; N uni1E87 ; G 1409 +U 7816 ; WX 602 ; N uni1E88 ; G 1410 +U 7817 ; WX 602 ; N uni1E89 ; G 1411 +U 7818 ; WX 602 ; N uni1E8A ; G 1412 +U 7819 ; WX 602 ; N uni1E8B ; G 1413 +U 7820 ; WX 602 ; N uni1E8C ; G 1414 +U 7821 ; WX 602 ; N uni1E8D ; G 1415 +U 7822 ; WX 602 ; N uni1E8E ; G 1416 +U 7823 ; WX 602 ; N uni1E8F ; G 1417 +U 7824 ; WX 602 ; N uni1E90 ; G 1418 +U 7825 ; WX 602 ; N uni1E91 ; G 1419 +U 7826 ; WX 602 ; N uni1E92 ; G 1420 +U 7827 ; WX 602 ; N uni1E93 ; G 1421 +U 7828 ; WX 602 ; N uni1E94 ; G 1422 +U 7829 ; WX 602 ; N uni1E95 ; G 1423 +U 7830 ; WX 602 ; N uni1E96 ; G 1424 +U 7831 ; WX 602 ; N uni1E97 ; G 1425 +U 7832 ; WX 602 ; N uni1E98 ; G 1426 +U 7833 ; WX 602 ; N uni1E99 ; G 1427 +U 7835 ; WX 602 ; N uni1E9B ; G 1428 +U 7839 ; WX 602 ; N uni1E9F ; G 1429 +U 7840 ; WX 602 ; N uni1EA0 ; G 1430 +U 7841 ; WX 602 ; N uni1EA1 ; G 1431 +U 7852 ; WX 602 ; N uni1EAC ; G 1432 +U 7853 ; WX 602 ; N uni1EAD ; G 1433 +U 7856 ; WX 602 ; N uni1EB0 ; G 1434 +U 7857 ; WX 602 ; N uni1EB1 ; G 1435 +U 7862 ; WX 602 ; N uni1EB6 ; G 1436 +U 7863 ; WX 602 ; N uni1EB7 ; G 1437 +U 7864 ; WX 602 ; N uni1EB8 ; G 1438 +U 7865 ; WX 602 ; N uni1EB9 ; G 1439 +U 7868 ; WX 602 ; N uni1EBC ; G 1440 +U 7869 ; WX 602 ; N uni1EBD ; G 1441 +U 7878 ; WX 602 ; N uni1EC6 ; G 1442 +U 7879 ; WX 602 ; N uni1EC7 ; G 1443 +U 7882 ; WX 602 ; N uni1ECA ; G 1444 +U 7883 ; WX 602 ; N uni1ECB ; G 1445 +U 7884 ; WX 602 ; N uni1ECC ; G 1446 +U 7885 ; WX 602 ; N uni1ECD ; G 1447 +U 7896 ; WX 602 ; N uni1ED8 ; G 1448 +U 7897 ; WX 602 ; N uni1ED9 ; G 1449 +U 7898 ; WX 602 ; N uni1EDA ; G 1450 +U 7899 ; WX 602 ; N uni1EDB ; G 1451 +U 7900 ; WX 602 ; N uni1EDC ; G 1452 +U 7901 ; WX 602 ; N uni1EDD ; G 1453 +U 7904 ; WX 602 ; N uni1EE0 ; G 1454 +U 7905 ; WX 602 ; N uni1EE1 ; G 1455 +U 7906 ; WX 602 ; N uni1EE2 ; G 1456 +U 7907 ; WX 602 ; N uni1EE3 ; G 1457 +U 7908 ; WX 602 ; N uni1EE4 ; G 1458 +U 7909 ; WX 602 ; N uni1EE5 ; G 1459 +U 7912 ; WX 602 ; N uni1EE8 ; G 1460 +U 7913 ; WX 602 ; N uni1EE9 ; G 1461 +U 7914 ; WX 602 ; N uni1EEA ; G 1462 +U 7915 ; WX 602 ; N uni1EEB ; G 1463 +U 7918 ; WX 602 ; N uni1EEE ; G 1464 +U 7919 ; WX 602 ; N uni1EEF ; G 1465 +U 7920 ; WX 602 ; N uni1EF0 ; G 1466 +U 7921 ; WX 602 ; N uni1EF1 ; G 1467 +U 7922 ; WX 602 ; N Ygrave ; G 1468 +U 7923 ; WX 602 ; N ygrave ; G 1469 +U 7924 ; WX 602 ; N uni1EF4 ; G 1470 +U 7925 ; WX 602 ; N uni1EF5 ; G 1471 +U 7928 ; WX 602 ; N uni1EF8 ; G 1472 +U 7929 ; WX 602 ; N uni1EF9 ; G 1473 +U 7936 ; WX 602 ; N uni1F00 ; G 1474 +U 7937 ; WX 602 ; N uni1F01 ; G 1475 +U 7938 ; WX 602 ; N uni1F02 ; G 1476 +U 7939 ; WX 602 ; N uni1F03 ; G 1477 +U 7940 ; WX 602 ; N uni1F04 ; G 1478 +U 7941 ; WX 602 ; N uni1F05 ; G 1479 +U 7942 ; WX 602 ; N uni1F06 ; G 1480 +U 7943 ; WX 602 ; N uni1F07 ; G 1481 +U 7944 ; WX 602 ; N uni1F08 ; G 1482 +U 7945 ; WX 602 ; N uni1F09 ; G 1483 +U 7946 ; WX 602 ; N uni1F0A ; G 1484 +U 7947 ; WX 602 ; N uni1F0B ; G 1485 +U 7948 ; WX 602 ; N uni1F0C ; G 1486 +U 7949 ; WX 602 ; N uni1F0D ; G 1487 +U 7950 ; WX 602 ; N uni1F0E ; G 1488 +U 7951 ; WX 602 ; N uni1F0F ; G 1489 +U 7952 ; WX 602 ; N uni1F10 ; G 1490 +U 7953 ; WX 602 ; N uni1F11 ; G 1491 +U 7954 ; WX 602 ; N uni1F12 ; G 1492 +U 7955 ; WX 602 ; N uni1F13 ; G 1493 +U 7956 ; WX 602 ; N uni1F14 ; G 1494 +U 7957 ; WX 602 ; N uni1F15 ; G 1495 +U 7960 ; WX 602 ; N uni1F18 ; G 1496 +U 7961 ; WX 602 ; N uni1F19 ; G 1497 +U 7962 ; WX 602 ; N uni1F1A ; G 1498 +U 7963 ; WX 602 ; N uni1F1B ; G 1499 +U 7964 ; WX 602 ; N uni1F1C ; G 1500 +U 7965 ; WX 602 ; N uni1F1D ; G 1501 +U 7968 ; WX 602 ; N uni1F20 ; G 1502 +U 7969 ; WX 602 ; N uni1F21 ; G 1503 +U 7970 ; WX 602 ; N uni1F22 ; G 1504 +U 7971 ; WX 602 ; N uni1F23 ; G 1505 +U 7972 ; WX 602 ; N uni1F24 ; G 1506 +U 7973 ; WX 602 ; N uni1F25 ; G 1507 +U 7974 ; WX 602 ; N uni1F26 ; G 1508 +U 7975 ; WX 602 ; N uni1F27 ; G 1509 +U 7976 ; WX 602 ; N uni1F28 ; G 1510 +U 7977 ; WX 602 ; N uni1F29 ; G 1511 +U 7978 ; WX 602 ; N uni1F2A ; G 1512 +U 7979 ; WX 602 ; N uni1F2B ; G 1513 +U 7980 ; WX 602 ; N uni1F2C ; G 1514 +U 7981 ; WX 602 ; N uni1F2D ; G 1515 +U 7982 ; WX 602 ; N uni1F2E ; G 1516 +U 7983 ; WX 602 ; N uni1F2F ; G 1517 +U 7984 ; WX 602 ; N uni1F30 ; G 1518 +U 7985 ; WX 602 ; N uni1F31 ; G 1519 +U 7986 ; WX 602 ; N uni1F32 ; G 1520 +U 7987 ; WX 602 ; N uni1F33 ; G 1521 +U 7988 ; WX 602 ; N uni1F34 ; G 1522 +U 7989 ; WX 602 ; N uni1F35 ; G 1523 +U 7990 ; WX 602 ; N uni1F36 ; G 1524 +U 7991 ; WX 602 ; N uni1F37 ; G 1525 +U 7992 ; WX 602 ; N uni1F38 ; G 1526 +U 7993 ; WX 602 ; N uni1F39 ; G 1527 +U 7994 ; WX 602 ; N uni1F3A ; G 1528 +U 7995 ; WX 602 ; N uni1F3B ; G 1529 +U 7996 ; WX 602 ; N uni1F3C ; G 1530 +U 7997 ; WX 602 ; N uni1F3D ; G 1531 +U 7998 ; WX 602 ; N uni1F3E ; G 1532 +U 7999 ; WX 602 ; N uni1F3F ; G 1533 +U 8000 ; WX 602 ; N uni1F40 ; G 1534 +U 8001 ; WX 602 ; N uni1F41 ; G 1535 +U 8002 ; WX 602 ; N uni1F42 ; G 1536 +U 8003 ; WX 602 ; N uni1F43 ; G 1537 +U 8004 ; WX 602 ; N uni1F44 ; G 1538 +U 8005 ; WX 602 ; N uni1F45 ; G 1539 +U 8008 ; WX 602 ; N uni1F48 ; G 1540 +U 8009 ; WX 602 ; N uni1F49 ; G 1541 +U 8010 ; WX 602 ; N uni1F4A ; G 1542 +U 8011 ; WX 602 ; N uni1F4B ; G 1543 +U 8012 ; WX 602 ; N uni1F4C ; G 1544 +U 8013 ; WX 602 ; N uni1F4D ; G 1545 +U 8016 ; WX 602 ; N uni1F50 ; G 1546 +U 8017 ; WX 602 ; N uni1F51 ; G 1547 +U 8018 ; WX 602 ; N uni1F52 ; G 1548 +U 8019 ; WX 602 ; N uni1F53 ; G 1549 +U 8020 ; WX 602 ; N uni1F54 ; G 1550 +U 8021 ; WX 602 ; N uni1F55 ; G 1551 +U 8022 ; WX 602 ; N uni1F56 ; G 1552 +U 8023 ; WX 602 ; N uni1F57 ; G 1553 +U 8025 ; WX 602 ; N uni1F59 ; G 1554 +U 8027 ; WX 602 ; N uni1F5B ; G 1555 +U 8029 ; WX 602 ; N uni1F5D ; G 1556 +U 8031 ; WX 602 ; N uni1F5F ; G 1557 +U 8032 ; WX 602 ; N uni1F60 ; G 1558 +U 8033 ; WX 602 ; N uni1F61 ; G 1559 +U 8034 ; WX 602 ; N uni1F62 ; G 1560 +U 8035 ; WX 602 ; N uni1F63 ; G 1561 +U 8036 ; WX 602 ; N uni1F64 ; G 1562 +U 8037 ; WX 602 ; N uni1F65 ; G 1563 +U 8038 ; WX 602 ; N uni1F66 ; G 1564 +U 8039 ; WX 602 ; N uni1F67 ; G 1565 +U 8040 ; WX 602 ; N uni1F68 ; G 1566 +U 8041 ; WX 602 ; N uni1F69 ; G 1567 +U 8042 ; WX 602 ; N uni1F6A ; G 1568 +U 8043 ; WX 602 ; N uni1F6B ; G 1569 +U 8044 ; WX 602 ; N uni1F6C ; G 1570 +U 8045 ; WX 602 ; N uni1F6D ; G 1571 +U 8046 ; WX 602 ; N uni1F6E ; G 1572 +U 8047 ; WX 602 ; N uni1F6F ; G 1573 +U 8048 ; WX 602 ; N uni1F70 ; G 1574 +U 8049 ; WX 602 ; N uni1F71 ; G 1575 +U 8050 ; WX 602 ; N uni1F72 ; G 1576 +U 8051 ; WX 602 ; N uni1F73 ; G 1577 +U 8052 ; WX 602 ; N uni1F74 ; G 1578 +U 8053 ; WX 602 ; N uni1F75 ; G 1579 +U 8054 ; WX 602 ; N uni1F76 ; G 1580 +U 8055 ; WX 602 ; N uni1F77 ; G 1581 +U 8056 ; WX 602 ; N uni1F78 ; G 1582 +U 8057 ; WX 602 ; N uni1F79 ; G 1583 +U 8058 ; WX 602 ; N uni1F7A ; G 1584 +U 8059 ; WX 602 ; N uni1F7B ; G 1585 +U 8060 ; WX 602 ; N uni1F7C ; G 1586 +U 8061 ; WX 602 ; N uni1F7D ; G 1587 +U 8064 ; WX 602 ; N uni1F80 ; G 1588 +U 8065 ; WX 602 ; N uni1F81 ; G 1589 +U 8066 ; WX 602 ; N uni1F82 ; G 1590 +U 8067 ; WX 602 ; N uni1F83 ; G 1591 +U 8068 ; WX 602 ; N uni1F84 ; G 1592 +U 8069 ; WX 602 ; N uni1F85 ; G 1593 +U 8070 ; WX 602 ; N uni1F86 ; G 1594 +U 8071 ; WX 602 ; N uni1F87 ; G 1595 +U 8072 ; WX 602 ; N uni1F88 ; G 1596 +U 8073 ; WX 602 ; N uni1F89 ; G 1597 +U 8074 ; WX 602 ; N uni1F8A ; G 1598 +U 8075 ; WX 602 ; N uni1F8B ; G 1599 +U 8076 ; WX 602 ; N uni1F8C ; G 1600 +U 8077 ; WX 602 ; N uni1F8D ; G 1601 +U 8078 ; WX 602 ; N uni1F8E ; G 1602 +U 8079 ; WX 602 ; N uni1F8F ; G 1603 +U 8080 ; WX 602 ; N uni1F90 ; G 1604 +U 8081 ; WX 602 ; N uni1F91 ; G 1605 +U 8082 ; WX 602 ; N uni1F92 ; G 1606 +U 8083 ; WX 602 ; N uni1F93 ; G 1607 +U 8084 ; WX 602 ; N uni1F94 ; G 1608 +U 8085 ; WX 602 ; N uni1F95 ; G 1609 +U 8086 ; WX 602 ; N uni1F96 ; G 1610 +U 8087 ; WX 602 ; N uni1F97 ; G 1611 +U 8088 ; WX 602 ; N uni1F98 ; G 1612 +U 8089 ; WX 602 ; N uni1F99 ; G 1613 +U 8090 ; WX 602 ; N uni1F9A ; G 1614 +U 8091 ; WX 602 ; N uni1F9B ; G 1615 +U 8092 ; WX 602 ; N uni1F9C ; G 1616 +U 8093 ; WX 602 ; N uni1F9D ; G 1617 +U 8094 ; WX 602 ; N uni1F9E ; G 1618 +U 8095 ; WX 602 ; N uni1F9F ; G 1619 +U 8096 ; WX 602 ; N uni1FA0 ; G 1620 +U 8097 ; WX 602 ; N uni1FA1 ; G 1621 +U 8098 ; WX 602 ; N uni1FA2 ; G 1622 +U 8099 ; WX 602 ; N uni1FA3 ; G 1623 +U 8100 ; WX 602 ; N uni1FA4 ; G 1624 +U 8101 ; WX 602 ; N uni1FA5 ; G 1625 +U 8102 ; WX 602 ; N uni1FA6 ; G 1626 +U 8103 ; WX 602 ; N uni1FA7 ; G 1627 +U 8104 ; WX 602 ; N uni1FA8 ; G 1628 +U 8105 ; WX 602 ; N uni1FA9 ; G 1629 +U 8106 ; WX 602 ; N uni1FAA ; G 1630 +U 8107 ; WX 602 ; N uni1FAB ; G 1631 +U 8108 ; WX 602 ; N uni1FAC ; G 1632 +U 8109 ; WX 602 ; N uni1FAD ; G 1633 +U 8110 ; WX 602 ; N uni1FAE ; G 1634 +U 8111 ; WX 602 ; N uni1FAF ; G 1635 +U 8112 ; WX 602 ; N uni1FB0 ; G 1636 +U 8113 ; WX 602 ; N uni1FB1 ; G 1637 +U 8114 ; WX 602 ; N uni1FB2 ; G 1638 +U 8115 ; WX 602 ; N uni1FB3 ; G 1639 +U 8116 ; WX 602 ; N uni1FB4 ; G 1640 +U 8118 ; WX 602 ; N uni1FB6 ; G 1641 +U 8119 ; WX 602 ; N uni1FB7 ; G 1642 +U 8120 ; WX 602 ; N uni1FB8 ; G 1643 +U 8121 ; WX 602 ; N uni1FB9 ; G 1644 +U 8122 ; WX 602 ; N uni1FBA ; G 1645 +U 8123 ; WX 602 ; N uni1FBB ; G 1646 +U 8124 ; WX 602 ; N uni1FBC ; G 1647 +U 8125 ; WX 602 ; N uni1FBD ; G 1648 +U 8126 ; WX 602 ; N uni1FBE ; G 1649 +U 8127 ; WX 602 ; N uni1FBF ; G 1650 +U 8128 ; WX 602 ; N uni1FC0 ; G 1651 +U 8129 ; WX 602 ; N uni1FC1 ; G 1652 +U 8130 ; WX 602 ; N uni1FC2 ; G 1653 +U 8131 ; WX 602 ; N uni1FC3 ; G 1654 +U 8132 ; WX 602 ; N uni1FC4 ; G 1655 +U 8134 ; WX 602 ; N uni1FC6 ; G 1656 +U 8135 ; WX 602 ; N uni1FC7 ; G 1657 +U 8136 ; WX 602 ; N uni1FC8 ; G 1658 +U 8137 ; WX 602 ; N uni1FC9 ; G 1659 +U 8138 ; WX 602 ; N uni1FCA ; G 1660 +U 8139 ; WX 602 ; N uni1FCB ; G 1661 +U 8140 ; WX 602 ; N uni1FCC ; G 1662 +U 8141 ; WX 602 ; N uni1FCD ; G 1663 +U 8142 ; WX 602 ; N uni1FCE ; G 1664 +U 8143 ; WX 602 ; N uni1FCF ; G 1665 +U 8144 ; WX 602 ; N uni1FD0 ; G 1666 +U 8145 ; WX 602 ; N uni1FD1 ; G 1667 +U 8146 ; WX 602 ; N uni1FD2 ; G 1668 +U 8147 ; WX 602 ; N uni1FD3 ; G 1669 +U 8150 ; WX 602 ; N uni1FD6 ; G 1670 +U 8151 ; WX 602 ; N uni1FD7 ; G 1671 +U 8152 ; WX 602 ; N uni1FD8 ; G 1672 +U 8153 ; WX 602 ; N uni1FD9 ; G 1673 +U 8154 ; WX 602 ; N uni1FDA ; G 1674 +U 8155 ; WX 602 ; N uni1FDB ; G 1675 +U 8157 ; WX 602 ; N uni1FDD ; G 1676 +U 8158 ; WX 602 ; N uni1FDE ; G 1677 +U 8159 ; WX 602 ; N uni1FDF ; G 1678 +U 8160 ; WX 602 ; N uni1FE0 ; G 1679 +U 8161 ; WX 602 ; N uni1FE1 ; G 1680 +U 8162 ; WX 602 ; N uni1FE2 ; G 1681 +U 8163 ; WX 602 ; N uni1FE3 ; G 1682 +U 8164 ; WX 602 ; N uni1FE4 ; G 1683 +U 8165 ; WX 602 ; N uni1FE5 ; G 1684 +U 8166 ; WX 602 ; N uni1FE6 ; G 1685 +U 8167 ; WX 602 ; N uni1FE7 ; G 1686 +U 8168 ; WX 602 ; N uni1FE8 ; G 1687 +U 8169 ; WX 602 ; N uni1FE9 ; G 1688 +U 8170 ; WX 602 ; N uni1FEA ; G 1689 +U 8171 ; WX 602 ; N uni1FEB ; G 1690 +U 8172 ; WX 602 ; N uni1FEC ; G 1691 +U 8173 ; WX 602 ; N uni1FED ; G 1692 +U 8174 ; WX 602 ; N uni1FEE ; G 1693 +U 8175 ; WX 602 ; N uni1FEF ; G 1694 +U 8178 ; WX 602 ; N uni1FF2 ; G 1695 +U 8179 ; WX 602 ; N uni1FF3 ; G 1696 +U 8180 ; WX 602 ; N uni1FF4 ; G 1697 +U 8182 ; WX 602 ; N uni1FF6 ; G 1698 +U 8183 ; WX 602 ; N uni1FF7 ; G 1699 +U 8184 ; WX 602 ; N uni1FF8 ; G 1700 +U 8185 ; WX 602 ; N uni1FF9 ; G 1701 +U 8186 ; WX 602 ; N uni1FFA ; G 1702 +U 8187 ; WX 602 ; N uni1FFB ; G 1703 +U 8188 ; WX 602 ; N uni1FFC ; G 1704 +U 8189 ; WX 602 ; N uni1FFD ; G 1705 +U 8190 ; WX 602 ; N uni1FFE ; G 1706 +U 8192 ; WX 602 ; N uni2000 ; G 1707 +U 8193 ; WX 602 ; N uni2001 ; G 1708 +U 8194 ; WX 602 ; N uni2002 ; G 1709 +U 8195 ; WX 602 ; N uni2003 ; G 1710 +U 8196 ; WX 602 ; N uni2004 ; G 1711 +U 8197 ; WX 602 ; N uni2005 ; G 1712 +U 8198 ; WX 602 ; N uni2006 ; G 1713 +U 8199 ; WX 602 ; N uni2007 ; G 1714 +U 8200 ; WX 602 ; N uni2008 ; G 1715 +U 8201 ; WX 602 ; N uni2009 ; G 1716 +U 8202 ; WX 602 ; N uni200A ; G 1717 +U 8208 ; WX 602 ; N uni2010 ; G 1718 +U 8209 ; WX 602 ; N uni2011 ; G 1719 +U 8210 ; WX 602 ; N figuredash ; G 1720 +U 8211 ; WX 602 ; N endash ; G 1721 +U 8212 ; WX 602 ; N emdash ; G 1722 +U 8213 ; WX 602 ; N uni2015 ; G 1723 +U 8214 ; WX 602 ; N uni2016 ; G 1724 +U 8215 ; WX 602 ; N underscoredbl ; G 1725 +U 8216 ; WX 602 ; N quoteleft ; G 1726 +U 8217 ; WX 602 ; N quoteright ; G 1727 +U 8218 ; WX 602 ; N quotesinglbase ; G 1728 +U 8219 ; WX 602 ; N quotereversed ; G 1729 +U 8220 ; WX 602 ; N quotedblleft ; G 1730 +U 8221 ; WX 602 ; N quotedblright ; G 1731 +U 8222 ; WX 602 ; N quotedblbase ; G 1732 +U 8223 ; WX 602 ; N uni201F ; G 1733 +U 8224 ; WX 602 ; N dagger ; G 1734 +U 8225 ; WX 602 ; N daggerdbl ; G 1735 +U 8226 ; WX 602 ; N bullet ; G 1736 +U 8227 ; WX 602 ; N uni2023 ; G 1737 +U 8230 ; WX 602 ; N ellipsis ; G 1738 +U 8239 ; WX 602 ; N uni202F ; G 1739 +U 8240 ; WX 602 ; N perthousand ; G 1740 +U 8241 ; WX 602 ; N uni2031 ; G 1741 +U 8242 ; WX 602 ; N minute ; G 1742 +U 8243 ; WX 602 ; N second ; G 1743 +U 8244 ; WX 602 ; N uni2034 ; G 1744 +U 8245 ; WX 602 ; N uni2035 ; G 1745 +U 8246 ; WX 602 ; N uni2036 ; G 1746 +U 8247 ; WX 602 ; N uni2037 ; G 1747 +U 8249 ; WX 602 ; N guilsinglleft ; G 1748 +U 8250 ; WX 602 ; N guilsinglright ; G 1749 +U 8252 ; WX 602 ; N exclamdbl ; G 1750 +U 8253 ; WX 602 ; N uni203D ; G 1751 +U 8254 ; WX 602 ; N uni203E ; G 1752 +U 8255 ; WX 602 ; N uni203F ; G 1753 +U 8261 ; WX 602 ; N uni2045 ; G 1754 +U 8262 ; WX 602 ; N uni2046 ; G 1755 +U 8263 ; WX 602 ; N uni2047 ; G 1756 +U 8264 ; WX 602 ; N uni2048 ; G 1757 +U 8265 ; WX 602 ; N uni2049 ; G 1758 +U 8267 ; WX 602 ; N uni204B ; G 1759 +U 8287 ; WX 602 ; N uni205F ; G 1760 +U 8304 ; WX 602 ; N uni2070 ; G 1761 +U 8305 ; WX 602 ; N uni2071 ; G 1762 +U 8308 ; WX 602 ; N uni2074 ; G 1763 +U 8309 ; WX 602 ; N uni2075 ; G 1764 +U 8310 ; WX 602 ; N uni2076 ; G 1765 +U 8311 ; WX 602 ; N uni2077 ; G 1766 +U 8312 ; WX 602 ; N uni2078 ; G 1767 +U 8313 ; WX 602 ; N uni2079 ; G 1768 +U 8314 ; WX 602 ; N uni207A ; G 1769 +U 8315 ; WX 602 ; N uni207B ; G 1770 +U 8316 ; WX 602 ; N uni207C ; G 1771 +U 8317 ; WX 602 ; N uni207D ; G 1772 +U 8318 ; WX 602 ; N uni207E ; G 1773 +U 8319 ; WX 602 ; N uni207F ; G 1774 +U 8320 ; WX 602 ; N uni2080 ; G 1775 +U 8321 ; WX 602 ; N uni2081 ; G 1776 +U 8322 ; WX 602 ; N uni2082 ; G 1777 +U 8323 ; WX 602 ; N uni2083 ; G 1778 +U 8324 ; WX 602 ; N uni2084 ; G 1779 +U 8325 ; WX 602 ; N uni2085 ; G 1780 +U 8326 ; WX 602 ; N uni2086 ; G 1781 +U 8327 ; WX 602 ; N uni2087 ; G 1782 +U 8328 ; WX 602 ; N uni2088 ; G 1783 +U 8329 ; WX 602 ; N uni2089 ; G 1784 +U 8330 ; WX 602 ; N uni208A ; G 1785 +U 8331 ; WX 602 ; N uni208B ; G 1786 +U 8332 ; WX 602 ; N uni208C ; G 1787 +U 8333 ; WX 602 ; N uni208D ; G 1788 +U 8334 ; WX 602 ; N uni208E ; G 1789 +U 8336 ; WX 602 ; N uni2090 ; G 1790 +U 8337 ; WX 602 ; N uni2091 ; G 1791 +U 8338 ; WX 602 ; N uni2092 ; G 1792 +U 8339 ; WX 602 ; N uni2093 ; G 1793 +U 8340 ; WX 602 ; N uni2094 ; G 1794 +U 8341 ; WX 602 ; N uni2095 ; G 1795 +U 8342 ; WX 602 ; N uni2096 ; G 1796 +U 8343 ; WX 602 ; N uni2097 ; G 1797 +U 8344 ; WX 602 ; N uni2098 ; G 1798 +U 8345 ; WX 602 ; N uni2099 ; G 1799 +U 8346 ; WX 602 ; N uni209A ; G 1800 +U 8347 ; WX 602 ; N uni209B ; G 1801 +U 8348 ; WX 602 ; N uni209C ; G 1802 +U 8352 ; WX 602 ; N uni20A0 ; G 1803 +U 8353 ; WX 602 ; N colonmonetary ; G 1804 +U 8354 ; WX 602 ; N uni20A2 ; G 1805 +U 8355 ; WX 602 ; N franc ; G 1806 +U 8356 ; WX 602 ; N lira ; G 1807 +U 8357 ; WX 602 ; N uni20A5 ; G 1808 +U 8358 ; WX 602 ; N uni20A6 ; G 1809 +U 8359 ; WX 602 ; N peseta ; G 1810 +U 8360 ; WX 602 ; N uni20A8 ; G 1811 +U 8361 ; WX 602 ; N uni20A9 ; G 1812 +U 8362 ; WX 602 ; N uni20AA ; G 1813 +U 8363 ; WX 602 ; N dong ; G 1814 +U 8364 ; WX 602 ; N Euro ; G 1815 +U 8365 ; WX 602 ; N uni20AD ; G 1816 +U 8366 ; WX 602 ; N uni20AE ; G 1817 +U 8367 ; WX 602 ; N uni20AF ; G 1818 +U 8368 ; WX 602 ; N uni20B0 ; G 1819 +U 8369 ; WX 602 ; N uni20B1 ; G 1820 +U 8370 ; WX 602 ; N uni20B2 ; G 1821 +U 8371 ; WX 602 ; N uni20B3 ; G 1822 +U 8372 ; WX 602 ; N uni20B4 ; G 1823 +U 8373 ; WX 602 ; N uni20B5 ; G 1824 +U 8376 ; WX 602 ; N uni20B8 ; G 1825 +U 8377 ; WX 602 ; N uni20B9 ; G 1826 +U 8378 ; WX 602 ; N uni20BA ; G 1827 +U 8381 ; WX 602 ; N uni20BD ; G 1828 +U 8450 ; WX 602 ; N uni2102 ; G 1829 +U 8453 ; WX 602 ; N uni2105 ; G 1830 +U 8461 ; WX 602 ; N uni210D ; G 1831 +U 8462 ; WX 602 ; N uni210E ; G 1832 +U 8463 ; WX 602 ; N uni210F ; G 1833 +U 8469 ; WX 602 ; N uni2115 ; G 1834 +U 8470 ; WX 602 ; N uni2116 ; G 1835 +U 8471 ; WX 602 ; N uni2117 ; G 1836 +U 8473 ; WX 602 ; N uni2119 ; G 1837 +U 8474 ; WX 602 ; N uni211A ; G 1838 +U 8477 ; WX 602 ; N uni211D ; G 1839 +U 8482 ; WX 602 ; N trademark ; G 1840 +U 8484 ; WX 602 ; N uni2124 ; G 1841 +U 8486 ; WX 602 ; N uni2126 ; G 1842 +U 8490 ; WX 602 ; N uni212A ; G 1843 +U 8491 ; WX 602 ; N uni212B ; G 1844 +U 8494 ; WX 602 ; N estimated ; G 1845 +U 8520 ; WX 602 ; N uni2148 ; G 1846 +U 8528 ; WX 602 ; N uni2150 ; G 1847 +U 8529 ; WX 602 ; N uni2151 ; G 1848 +U 8531 ; WX 602 ; N onethird ; G 1849 +U 8532 ; WX 602 ; N twothirds ; G 1850 +U 8533 ; WX 602 ; N uni2155 ; G 1851 +U 8534 ; WX 602 ; N uni2156 ; G 1852 +U 8535 ; WX 602 ; N uni2157 ; G 1853 +U 8536 ; WX 602 ; N uni2158 ; G 1854 +U 8537 ; WX 602 ; N uni2159 ; G 1855 +U 8538 ; WX 602 ; N uni215A ; G 1856 +U 8539 ; WX 602 ; N oneeighth ; G 1857 +U 8540 ; WX 602 ; N threeeighths ; G 1858 +U 8541 ; WX 602 ; N fiveeighths ; G 1859 +U 8542 ; WX 602 ; N seveneighths ; G 1860 +U 8543 ; WX 602 ; N uni215F ; G 1861 +U 8585 ; WX 602 ; N uni2189 ; G 1862 +U 8592 ; WX 602 ; N arrowleft ; G 1863 +U 8593 ; WX 602 ; N arrowup ; G 1864 +U 8594 ; WX 602 ; N arrowright ; G 1865 +U 8595 ; WX 602 ; N arrowdown ; G 1866 +U 8596 ; WX 602 ; N arrowboth ; G 1867 +U 8597 ; WX 602 ; N arrowupdn ; G 1868 +U 8598 ; WX 602 ; N uni2196 ; G 1869 +U 8599 ; WX 602 ; N uni2197 ; G 1870 +U 8600 ; WX 602 ; N uni2198 ; G 1871 +U 8601 ; WX 602 ; N uni2199 ; G 1872 +U 8602 ; WX 602 ; N uni219A ; G 1873 +U 8603 ; WX 602 ; N uni219B ; G 1874 +U 8604 ; WX 602 ; N uni219C ; G 1875 +U 8605 ; WX 602 ; N uni219D ; G 1876 +U 8606 ; WX 602 ; N uni219E ; G 1877 +U 8607 ; WX 602 ; N uni219F ; G 1878 +U 8608 ; WX 602 ; N uni21A0 ; G 1879 +U 8609 ; WX 602 ; N uni21A1 ; G 1880 +U 8610 ; WX 602 ; N uni21A2 ; G 1881 +U 8611 ; WX 602 ; N uni21A3 ; G 1882 +U 8612 ; WX 602 ; N uni21A4 ; G 1883 +U 8613 ; WX 602 ; N uni21A5 ; G 1884 +U 8614 ; WX 602 ; N uni21A6 ; G 1885 +U 8615 ; WX 602 ; N uni21A7 ; G 1886 +U 8616 ; WX 602 ; N arrowupdnbse ; G 1887 +U 8617 ; WX 602 ; N uni21A9 ; G 1888 +U 8618 ; WX 602 ; N uni21AA ; G 1889 +U 8619 ; WX 602 ; N uni21AB ; G 1890 +U 8620 ; WX 602 ; N uni21AC ; G 1891 +U 8621 ; WX 602 ; N uni21AD ; G 1892 +U 8622 ; WX 602 ; N uni21AE ; G 1893 +U 8623 ; WX 602 ; N uni21AF ; G 1894 +U 8624 ; WX 602 ; N uni21B0 ; G 1895 +U 8625 ; WX 602 ; N uni21B1 ; G 1896 +U 8626 ; WX 602 ; N uni21B2 ; G 1897 +U 8627 ; WX 602 ; N uni21B3 ; G 1898 +U 8628 ; WX 602 ; N uni21B4 ; G 1899 +U 8629 ; WX 602 ; N carriagereturn ; G 1900 +U 8630 ; WX 602 ; N uni21B6 ; G 1901 +U 8631 ; WX 602 ; N uni21B7 ; G 1902 +U 8632 ; WX 602 ; N uni21B8 ; G 1903 +U 8633 ; WX 602 ; N uni21B9 ; G 1904 +U 8634 ; WX 602 ; N uni21BA ; G 1905 +U 8635 ; WX 602 ; N uni21BB ; G 1906 +U 8636 ; WX 602 ; N uni21BC ; G 1907 +U 8637 ; WX 602 ; N uni21BD ; G 1908 +U 8638 ; WX 602 ; N uni21BE ; G 1909 +U 8639 ; WX 602 ; N uni21BF ; G 1910 +U 8640 ; WX 602 ; N uni21C0 ; G 1911 +U 8641 ; WX 602 ; N uni21C1 ; G 1912 +U 8642 ; WX 602 ; N uni21C2 ; G 1913 +U 8643 ; WX 602 ; N uni21C3 ; G 1914 +U 8644 ; WX 602 ; N uni21C4 ; G 1915 +U 8645 ; WX 602 ; N uni21C5 ; G 1916 +U 8646 ; WX 602 ; N uni21C6 ; G 1917 +U 8647 ; WX 602 ; N uni21C7 ; G 1918 +U 8648 ; WX 602 ; N uni21C8 ; G 1919 +U 8649 ; WX 602 ; N uni21C9 ; G 1920 +U 8650 ; WX 602 ; N uni21CA ; G 1921 +U 8651 ; WX 602 ; N uni21CB ; G 1922 +U 8652 ; WX 602 ; N uni21CC ; G 1923 +U 8653 ; WX 602 ; N uni21CD ; G 1924 +U 8654 ; WX 602 ; N uni21CE ; G 1925 +U 8655 ; WX 602 ; N uni21CF ; G 1926 +U 8656 ; WX 602 ; N arrowdblleft ; G 1927 +U 8657 ; WX 602 ; N arrowdblup ; G 1928 +U 8658 ; WX 602 ; N arrowdblright ; G 1929 +U 8659 ; WX 602 ; N arrowdbldown ; G 1930 +U 8660 ; WX 602 ; N arrowdblboth ; G 1931 +U 8661 ; WX 602 ; N uni21D5 ; G 1932 +U 8662 ; WX 602 ; N uni21D6 ; G 1933 +U 8663 ; WX 602 ; N uni21D7 ; G 1934 +U 8664 ; WX 602 ; N uni21D8 ; G 1935 +U 8665 ; WX 602 ; N uni21D9 ; G 1936 +U 8666 ; WX 602 ; N uni21DA ; G 1937 +U 8667 ; WX 602 ; N uni21DB ; G 1938 +U 8668 ; WX 602 ; N uni21DC ; G 1939 +U 8669 ; WX 602 ; N uni21DD ; G 1940 +U 8670 ; WX 602 ; N uni21DE ; G 1941 +U 8671 ; WX 602 ; N uni21DF ; G 1942 +U 8672 ; WX 602 ; N uni21E0 ; G 1943 +U 8673 ; WX 602 ; N uni21E1 ; G 1944 +U 8674 ; WX 602 ; N uni21E2 ; G 1945 +U 8675 ; WX 602 ; N uni21E3 ; G 1946 +U 8676 ; WX 602 ; N uni21E4 ; G 1947 +U 8677 ; WX 602 ; N uni21E5 ; G 1948 +U 8678 ; WX 602 ; N uni21E6 ; G 1949 +U 8679 ; WX 602 ; N uni21E7 ; G 1950 +U 8680 ; WX 602 ; N uni21E8 ; G 1951 +U 8681 ; WX 602 ; N uni21E9 ; G 1952 +U 8682 ; WX 602 ; N uni21EA ; G 1953 +U 8683 ; WX 602 ; N uni21EB ; G 1954 +U 8684 ; WX 602 ; N uni21EC ; G 1955 +U 8685 ; WX 602 ; N uni21ED ; G 1956 +U 8686 ; WX 602 ; N uni21EE ; G 1957 +U 8687 ; WX 602 ; N uni21EF ; G 1958 +U 8688 ; WX 602 ; N uni21F0 ; G 1959 +U 8689 ; WX 602 ; N uni21F1 ; G 1960 +U 8690 ; WX 602 ; N uni21F2 ; G 1961 +U 8691 ; WX 602 ; N uni21F3 ; G 1962 +U 8692 ; WX 602 ; N uni21F4 ; G 1963 +U 8693 ; WX 602 ; N uni21F5 ; G 1964 +U 8694 ; WX 602 ; N uni21F6 ; G 1965 +U 8695 ; WX 602 ; N uni21F7 ; G 1966 +U 8696 ; WX 602 ; N uni21F8 ; G 1967 +U 8697 ; WX 602 ; N uni21F9 ; G 1968 +U 8698 ; WX 602 ; N uni21FA ; G 1969 +U 8699 ; WX 602 ; N uni21FB ; G 1970 +U 8700 ; WX 602 ; N uni21FC ; G 1971 +U 8701 ; WX 602 ; N uni21FD ; G 1972 +U 8702 ; WX 602 ; N uni21FE ; G 1973 +U 8703 ; WX 602 ; N uni21FF ; G 1974 +U 8704 ; WX 602 ; N universal ; G 1975 +U 8705 ; WX 602 ; N uni2201 ; G 1976 +U 8706 ; WX 602 ; N partialdiff ; G 1977 +U 8707 ; WX 602 ; N existential ; G 1978 +U 8708 ; WX 602 ; N uni2204 ; G 1979 +U 8709 ; WX 602 ; N emptyset ; G 1980 +U 8710 ; WX 602 ; N increment ; G 1981 +U 8711 ; WX 602 ; N gradient ; G 1982 +U 8712 ; WX 602 ; N element ; G 1983 +U 8713 ; WX 602 ; N notelement ; G 1984 +U 8714 ; WX 602 ; N uni220A ; G 1985 +U 8715 ; WX 602 ; N suchthat ; G 1986 +U 8716 ; WX 602 ; N uni220C ; G 1987 +U 8717 ; WX 602 ; N uni220D ; G 1988 +U 8718 ; WX 602 ; N uni220E ; G 1989 +U 8719 ; WX 602 ; N product ; G 1990 +U 8720 ; WX 602 ; N uni2210 ; G 1991 +U 8721 ; WX 602 ; N summation ; G 1992 +U 8722 ; WX 602 ; N minus ; G 1993 +U 8723 ; WX 602 ; N uni2213 ; G 1994 +U 8725 ; WX 602 ; N uni2215 ; G 1995 +U 8727 ; WX 602 ; N asteriskmath ; G 1996 +U 8728 ; WX 602 ; N uni2218 ; G 1997 +U 8729 ; WX 602 ; N uni2219 ; G 1998 +U 8730 ; WX 602 ; N radical ; G 1999 +U 8731 ; WX 602 ; N uni221B ; G 2000 +U 8732 ; WX 602 ; N uni221C ; G 2001 +U 8733 ; WX 602 ; N proportional ; G 2002 +U 8734 ; WX 602 ; N infinity ; G 2003 +U 8735 ; WX 602 ; N orthogonal ; G 2004 +U 8736 ; WX 602 ; N angle ; G 2005 +U 8739 ; WX 602 ; N uni2223 ; G 2006 +U 8743 ; WX 602 ; N logicaland ; G 2007 +U 8744 ; WX 602 ; N logicalor ; G 2008 +U 8745 ; WX 602 ; N intersection ; G 2009 +U 8746 ; WX 602 ; N union ; G 2010 +U 8747 ; WX 602 ; N integral ; G 2011 +U 8748 ; WX 602 ; N uni222C ; G 2012 +U 8749 ; WX 602 ; N uni222D ; G 2013 +U 8756 ; WX 602 ; N therefore ; G 2014 +U 8757 ; WX 602 ; N uni2235 ; G 2015 +U 8758 ; WX 602 ; N uni2236 ; G 2016 +U 8759 ; WX 602 ; N uni2237 ; G 2017 +U 8760 ; WX 602 ; N uni2238 ; G 2018 +U 8761 ; WX 602 ; N uni2239 ; G 2019 +U 8762 ; WX 602 ; N uni223A ; G 2020 +U 8763 ; WX 602 ; N uni223B ; G 2021 +U 8764 ; WX 602 ; N similar ; G 2022 +U 8765 ; WX 602 ; N uni223D ; G 2023 +U 8769 ; WX 602 ; N uni2241 ; G 2024 +U 8770 ; WX 602 ; N uni2242 ; G 2025 +U 8771 ; WX 602 ; N uni2243 ; G 2026 +U 8772 ; WX 602 ; N uni2244 ; G 2027 +U 8773 ; WX 602 ; N congruent ; G 2028 +U 8774 ; WX 602 ; N uni2246 ; G 2029 +U 8775 ; WX 602 ; N uni2247 ; G 2030 +U 8776 ; WX 602 ; N approxequal ; G 2031 +U 8777 ; WX 602 ; N uni2249 ; G 2032 +U 8778 ; WX 602 ; N uni224A ; G 2033 +U 8779 ; WX 602 ; N uni224B ; G 2034 +U 8780 ; WX 602 ; N uni224C ; G 2035 +U 8781 ; WX 602 ; N uni224D ; G 2036 +U 8782 ; WX 602 ; N uni224E ; G 2037 +U 8783 ; WX 602 ; N uni224F ; G 2038 +U 8784 ; WX 602 ; N uni2250 ; G 2039 +U 8785 ; WX 602 ; N uni2251 ; G 2040 +U 8786 ; WX 602 ; N uni2252 ; G 2041 +U 8787 ; WX 602 ; N uni2253 ; G 2042 +U 8788 ; WX 602 ; N uni2254 ; G 2043 +U 8789 ; WX 602 ; N uni2255 ; G 2044 +U 8790 ; WX 602 ; N uni2256 ; G 2045 +U 8791 ; WX 602 ; N uni2257 ; G 2046 +U 8792 ; WX 602 ; N uni2258 ; G 2047 +U 8793 ; WX 602 ; N uni2259 ; G 2048 +U 8794 ; WX 602 ; N uni225A ; G 2049 +U 8795 ; WX 602 ; N uni225B ; G 2050 +U 8796 ; WX 602 ; N uni225C ; G 2051 +U 8797 ; WX 602 ; N uni225D ; G 2052 +U 8798 ; WX 602 ; N uni225E ; G 2053 +U 8799 ; WX 602 ; N uni225F ; G 2054 +U 8800 ; WX 602 ; N notequal ; G 2055 +U 8801 ; WX 602 ; N equivalence ; G 2056 +U 8802 ; WX 602 ; N uni2262 ; G 2057 +U 8803 ; WX 602 ; N uni2263 ; G 2058 +U 8804 ; WX 602 ; N lessequal ; G 2059 +U 8805 ; WX 602 ; N greaterequal ; G 2060 +U 8806 ; WX 602 ; N uni2266 ; G 2061 +U 8807 ; WX 602 ; N uni2267 ; G 2062 +U 8808 ; WX 602 ; N uni2268 ; G 2063 +U 8809 ; WX 602 ; N uni2269 ; G 2064 +U 8813 ; WX 602 ; N uni226D ; G 2065 +U 8814 ; WX 602 ; N uni226E ; G 2066 +U 8815 ; WX 602 ; N uni226F ; G 2067 +U 8816 ; WX 602 ; N uni2270 ; G 2068 +U 8817 ; WX 602 ; N uni2271 ; G 2069 +U 8818 ; WX 602 ; N uni2272 ; G 2070 +U 8819 ; WX 602 ; N uni2273 ; G 2071 +U 8820 ; WX 602 ; N uni2274 ; G 2072 +U 8821 ; WX 602 ; N uni2275 ; G 2073 +U 8822 ; WX 602 ; N uni2276 ; G 2074 +U 8823 ; WX 602 ; N uni2277 ; G 2075 +U 8824 ; WX 602 ; N uni2278 ; G 2076 +U 8825 ; WX 602 ; N uni2279 ; G 2077 +U 8826 ; WX 602 ; N uni227A ; G 2078 +U 8827 ; WX 602 ; N uni227B ; G 2079 +U 8828 ; WX 602 ; N uni227C ; G 2080 +U 8829 ; WX 602 ; N uni227D ; G 2081 +U 8830 ; WX 602 ; N uni227E ; G 2082 +U 8831 ; WX 602 ; N uni227F ; G 2083 +U 8832 ; WX 602 ; N uni2280 ; G 2084 +U 8833 ; WX 602 ; N uni2281 ; G 2085 +U 8834 ; WX 602 ; N propersubset ; G 2086 +U 8835 ; WX 602 ; N propersuperset ; G 2087 +U 8836 ; WX 602 ; N notsubset ; G 2088 +U 8837 ; WX 602 ; N uni2285 ; G 2089 +U 8838 ; WX 602 ; N reflexsubset ; G 2090 +U 8839 ; WX 602 ; N reflexsuperset ; G 2091 +U 8840 ; WX 602 ; N uni2288 ; G 2092 +U 8841 ; WX 602 ; N uni2289 ; G 2093 +U 8842 ; WX 602 ; N uni228A ; G 2094 +U 8843 ; WX 602 ; N uni228B ; G 2095 +U 8845 ; WX 602 ; N uni228D ; G 2096 +U 8846 ; WX 602 ; N uni228E ; G 2097 +U 8847 ; WX 602 ; N uni228F ; G 2098 +U 8848 ; WX 602 ; N uni2290 ; G 2099 +U 8849 ; WX 602 ; N uni2291 ; G 2100 +U 8850 ; WX 602 ; N uni2292 ; G 2101 +U 8851 ; WX 602 ; N uni2293 ; G 2102 +U 8852 ; WX 602 ; N uni2294 ; G 2103 +U 8853 ; WX 602 ; N circleplus ; G 2104 +U 8854 ; WX 602 ; N uni2296 ; G 2105 +U 8855 ; WX 602 ; N circlemultiply ; G 2106 +U 8856 ; WX 602 ; N uni2298 ; G 2107 +U 8857 ; WX 602 ; N uni2299 ; G 2108 +U 8858 ; WX 602 ; N uni229A ; G 2109 +U 8859 ; WX 602 ; N uni229B ; G 2110 +U 8860 ; WX 602 ; N uni229C ; G 2111 +U 8861 ; WX 602 ; N uni229D ; G 2112 +U 8862 ; WX 602 ; N uni229E ; G 2113 +U 8863 ; WX 602 ; N uni229F ; G 2114 +U 8864 ; WX 602 ; N uni22A0 ; G 2115 +U 8865 ; WX 602 ; N uni22A1 ; G 2116 +U 8866 ; WX 602 ; N uni22A2 ; G 2117 +U 8867 ; WX 602 ; N uni22A3 ; G 2118 +U 8868 ; WX 602 ; N uni22A4 ; G 2119 +U 8869 ; WX 602 ; N perpendicular ; G 2120 +U 8882 ; WX 602 ; N uni22B2 ; G 2121 +U 8883 ; WX 602 ; N uni22B3 ; G 2122 +U 8884 ; WX 602 ; N uni22B4 ; G 2123 +U 8885 ; WX 602 ; N uni22B5 ; G 2124 +U 8888 ; WX 602 ; N uni22B8 ; G 2125 +U 8898 ; WX 602 ; N uni22C2 ; G 2126 +U 8899 ; WX 602 ; N uni22C3 ; G 2127 +U 8900 ; WX 602 ; N uni22C4 ; G 2128 +U 8901 ; WX 602 ; N dotmath ; G 2129 +U 8902 ; WX 602 ; N uni22C6 ; G 2130 +U 8909 ; WX 602 ; N uni22CD ; G 2131 +U 8910 ; WX 602 ; N uni22CE ; G 2132 +U 8911 ; WX 602 ; N uni22CF ; G 2133 +U 8912 ; WX 602 ; N uni22D0 ; G 2134 +U 8913 ; WX 602 ; N uni22D1 ; G 2135 +U 8922 ; WX 602 ; N uni22DA ; G 2136 +U 8923 ; WX 602 ; N uni22DB ; G 2137 +U 8924 ; WX 602 ; N uni22DC ; G 2138 +U 8925 ; WX 602 ; N uni22DD ; G 2139 +U 8926 ; WX 602 ; N uni22DE ; G 2140 +U 8927 ; WX 602 ; N uni22DF ; G 2141 +U 8928 ; WX 602 ; N uni22E0 ; G 2142 +U 8929 ; WX 602 ; N uni22E1 ; G 2143 +U 8930 ; WX 602 ; N uni22E2 ; G 2144 +U 8931 ; WX 602 ; N uni22E3 ; G 2145 +U 8932 ; WX 602 ; N uni22E4 ; G 2146 +U 8933 ; WX 602 ; N uni22E5 ; G 2147 +U 8934 ; WX 602 ; N uni22E6 ; G 2148 +U 8935 ; WX 602 ; N uni22E7 ; G 2149 +U 8936 ; WX 602 ; N uni22E8 ; G 2150 +U 8937 ; WX 602 ; N uni22E9 ; G 2151 +U 8943 ; WX 602 ; N uni22EF ; G 2152 +U 8960 ; WX 602 ; N uni2300 ; G 2153 +U 8961 ; WX 602 ; N uni2301 ; G 2154 +U 8962 ; WX 602 ; N house ; G 2155 +U 8963 ; WX 602 ; N uni2303 ; G 2156 +U 8964 ; WX 602 ; N uni2304 ; G 2157 +U 8965 ; WX 602 ; N uni2305 ; G 2158 +U 8966 ; WX 602 ; N uni2306 ; G 2159 +U 8968 ; WX 602 ; N uni2308 ; G 2160 +U 8969 ; WX 602 ; N uni2309 ; G 2161 +U 8970 ; WX 602 ; N uni230A ; G 2162 +U 8971 ; WX 602 ; N uni230B ; G 2163 +U 8972 ; WX 602 ; N uni230C ; G 2164 +U 8973 ; WX 602 ; N uni230D ; G 2165 +U 8974 ; WX 602 ; N uni230E ; G 2166 +U 8975 ; WX 602 ; N uni230F ; G 2167 +U 8976 ; WX 602 ; N revlogicalnot ; G 2168 +U 8977 ; WX 602 ; N uni2311 ; G 2169 +U 8978 ; WX 602 ; N uni2312 ; G 2170 +U 8979 ; WX 602 ; N uni2313 ; G 2171 +U 8980 ; WX 602 ; N uni2314 ; G 2172 +U 8981 ; WX 602 ; N uni2315 ; G 2173 +U 8984 ; WX 602 ; N uni2318 ; G 2174 +U 8985 ; WX 602 ; N uni2319 ; G 2175 +U 8988 ; WX 602 ; N uni231C ; G 2176 +U 8989 ; WX 602 ; N uni231D ; G 2177 +U 8990 ; WX 602 ; N uni231E ; G 2178 +U 8991 ; WX 602 ; N uni231F ; G 2179 +U 8992 ; WX 602 ; N integraltp ; G 2180 +U 8993 ; WX 602 ; N integralbt ; G 2181 +U 8997 ; WX 602 ; N uni2325 ; G 2182 +U 8998 ; WX 602 ; N uni2326 ; G 2183 +U 8999 ; WX 602 ; N uni2327 ; G 2184 +U 9000 ; WX 602 ; N uni2328 ; G 2185 +U 9003 ; WX 602 ; N uni232B ; G 2186 +U 9013 ; WX 602 ; N uni2335 ; G 2187 +U 9014 ; WX 602 ; N uni2336 ; G 2188 +U 9015 ; WX 602 ; N uni2337 ; G 2189 +U 9016 ; WX 602 ; N uni2338 ; G 2190 +U 9017 ; WX 602 ; N uni2339 ; G 2191 +U 9018 ; WX 602 ; N uni233A ; G 2192 +U 9019 ; WX 602 ; N uni233B ; G 2193 +U 9020 ; WX 602 ; N uni233C ; G 2194 +U 9021 ; WX 602 ; N uni233D ; G 2195 +U 9022 ; WX 602 ; N uni233E ; G 2196 +U 9023 ; WX 602 ; N uni233F ; G 2197 +U 9024 ; WX 602 ; N uni2340 ; G 2198 +U 9025 ; WX 602 ; N uni2341 ; G 2199 +U 9026 ; WX 602 ; N uni2342 ; G 2200 +U 9027 ; WX 602 ; N uni2343 ; G 2201 +U 9028 ; WX 602 ; N uni2344 ; G 2202 +U 9029 ; WX 602 ; N uni2345 ; G 2203 +U 9030 ; WX 602 ; N uni2346 ; G 2204 +U 9031 ; WX 602 ; N uni2347 ; G 2205 +U 9032 ; WX 602 ; N uni2348 ; G 2206 +U 9033 ; WX 602 ; N uni2349 ; G 2207 +U 9034 ; WX 602 ; N uni234A ; G 2208 +U 9035 ; WX 602 ; N uni234B ; G 2209 +U 9036 ; WX 602 ; N uni234C ; G 2210 +U 9037 ; WX 602 ; N uni234D ; G 2211 +U 9038 ; WX 602 ; N uni234E ; G 2212 +U 9039 ; WX 602 ; N uni234F ; G 2213 +U 9040 ; WX 602 ; N uni2350 ; G 2214 +U 9041 ; WX 602 ; N uni2351 ; G 2215 +U 9042 ; WX 602 ; N uni2352 ; G 2216 +U 9043 ; WX 602 ; N uni2353 ; G 2217 +U 9044 ; WX 602 ; N uni2354 ; G 2218 +U 9045 ; WX 602 ; N uni2355 ; G 2219 +U 9046 ; WX 602 ; N uni2356 ; G 2220 +U 9047 ; WX 602 ; N uni2357 ; G 2221 +U 9048 ; WX 602 ; N uni2358 ; G 2222 +U 9049 ; WX 602 ; N uni2359 ; G 2223 +U 9050 ; WX 602 ; N uni235A ; G 2224 +U 9051 ; WX 602 ; N uni235B ; G 2225 +U 9052 ; WX 602 ; N uni235C ; G 2226 +U 9053 ; WX 602 ; N uni235D ; G 2227 +U 9054 ; WX 602 ; N uni235E ; G 2228 +U 9055 ; WX 602 ; N uni235F ; G 2229 +U 9056 ; WX 602 ; N uni2360 ; G 2230 +U 9057 ; WX 602 ; N uni2361 ; G 2231 +U 9058 ; WX 602 ; N uni2362 ; G 2232 +U 9059 ; WX 602 ; N uni2363 ; G 2233 +U 9060 ; WX 602 ; N uni2364 ; G 2234 +U 9061 ; WX 602 ; N uni2365 ; G 2235 +U 9062 ; WX 602 ; N uni2366 ; G 2236 +U 9063 ; WX 602 ; N uni2367 ; G 2237 +U 9064 ; WX 602 ; N uni2368 ; G 2238 +U 9065 ; WX 602 ; N uni2369 ; G 2239 +U 9066 ; WX 602 ; N uni236A ; G 2240 +U 9067 ; WX 602 ; N uni236B ; G 2241 +U 9068 ; WX 602 ; N uni236C ; G 2242 +U 9069 ; WX 602 ; N uni236D ; G 2243 +U 9070 ; WX 602 ; N uni236E ; G 2244 +U 9071 ; WX 602 ; N uni236F ; G 2245 +U 9072 ; WX 602 ; N uni2370 ; G 2246 +U 9073 ; WX 602 ; N uni2371 ; G 2247 +U 9074 ; WX 602 ; N uni2372 ; G 2248 +U 9075 ; WX 602 ; N uni2373 ; G 2249 +U 9076 ; WX 602 ; N uni2374 ; G 2250 +U 9077 ; WX 602 ; N uni2375 ; G 2251 +U 9078 ; WX 602 ; N uni2376 ; G 2252 +U 9079 ; WX 602 ; N uni2377 ; G 2253 +U 9080 ; WX 602 ; N uni2378 ; G 2254 +U 9081 ; WX 602 ; N uni2379 ; G 2255 +U 9082 ; WX 602 ; N uni237A ; G 2256 +U 9085 ; WX 602 ; N uni237D ; G 2257 +U 9088 ; WX 602 ; N uni2380 ; G 2258 +U 9089 ; WX 602 ; N uni2381 ; G 2259 +U 9090 ; WX 602 ; N uni2382 ; G 2260 +U 9091 ; WX 602 ; N uni2383 ; G 2261 +U 9096 ; WX 602 ; N uni2388 ; G 2262 +U 9097 ; WX 602 ; N uni2389 ; G 2263 +U 9098 ; WX 602 ; N uni238A ; G 2264 +U 9099 ; WX 602 ; N uni238B ; G 2265 +U 9109 ; WX 602 ; N uni2395 ; G 2266 +U 9115 ; WX 602 ; N uni239B ; G 2267 +U 9116 ; WX 602 ; N uni239C ; G 2268 +U 9117 ; WX 602 ; N uni239D ; G 2269 +U 9118 ; WX 602 ; N uni239E ; G 2270 +U 9119 ; WX 602 ; N uni239F ; G 2271 +U 9120 ; WX 602 ; N uni23A0 ; G 2272 +U 9121 ; WX 602 ; N uni23A1 ; G 2273 +U 9122 ; WX 602 ; N uni23A2 ; G 2274 +U 9123 ; WX 602 ; N uni23A3 ; G 2275 +U 9124 ; WX 602 ; N uni23A4 ; G 2276 +U 9125 ; WX 602 ; N uni23A5 ; G 2277 +U 9126 ; WX 602 ; N uni23A6 ; G 2278 +U 9127 ; WX 602 ; N uni23A7 ; G 2279 +U 9128 ; WX 602 ; N uni23A8 ; G 2280 +U 9129 ; WX 602 ; N uni23A9 ; G 2281 +U 9130 ; WX 602 ; N uni23AA ; G 2282 +U 9131 ; WX 602 ; N uni23AB ; G 2283 +U 9132 ; WX 602 ; N uni23AC ; G 2284 +U 9133 ; WX 602 ; N uni23AD ; G 2285 +U 9134 ; WX 602 ; N uni23AE ; G 2286 +U 9166 ; WX 602 ; N uni23CE ; G 2287 +U 9167 ; WX 602 ; N uni23CF ; G 2288 +U 9251 ; WX 602 ; N uni2423 ; G 2289 +U 9472 ; WX 602 ; N SF100000 ; G 2290 +U 9473 ; WX 602 ; N uni2501 ; G 2291 +U 9474 ; WX 602 ; N SF110000 ; G 2292 +U 9475 ; WX 602 ; N uni2503 ; G 2293 +U 9476 ; WX 602 ; N uni2504 ; G 2294 +U 9477 ; WX 602 ; N uni2505 ; G 2295 +U 9478 ; WX 602 ; N uni2506 ; G 2296 +U 9479 ; WX 602 ; N uni2507 ; G 2297 +U 9480 ; WX 602 ; N uni2508 ; G 2298 +U 9481 ; WX 602 ; N uni2509 ; G 2299 +U 9482 ; WX 602 ; N uni250A ; G 2300 +U 9483 ; WX 602 ; N uni250B ; G 2301 +U 9484 ; WX 602 ; N SF010000 ; G 2302 +U 9485 ; WX 602 ; N uni250D ; G 2303 +U 9486 ; WX 602 ; N uni250E ; G 2304 +U 9487 ; WX 602 ; N uni250F ; G 2305 +U 9488 ; WX 602 ; N SF030000 ; G 2306 +U 9489 ; WX 602 ; N uni2511 ; G 2307 +U 9490 ; WX 602 ; N uni2512 ; G 2308 +U 9491 ; WX 602 ; N uni2513 ; G 2309 +U 9492 ; WX 602 ; N SF020000 ; G 2310 +U 9493 ; WX 602 ; N uni2515 ; G 2311 +U 9494 ; WX 602 ; N uni2516 ; G 2312 +U 9495 ; WX 602 ; N uni2517 ; G 2313 +U 9496 ; WX 602 ; N SF040000 ; G 2314 +U 9497 ; WX 602 ; N uni2519 ; G 2315 +U 9498 ; WX 602 ; N uni251A ; G 2316 +U 9499 ; WX 602 ; N uni251B ; G 2317 +U 9500 ; WX 602 ; N SF080000 ; G 2318 +U 9501 ; WX 602 ; N uni251D ; G 2319 +U 9502 ; WX 602 ; N uni251E ; G 2320 +U 9503 ; WX 602 ; N uni251F ; G 2321 +U 9504 ; WX 602 ; N uni2520 ; G 2322 +U 9505 ; WX 602 ; N uni2521 ; G 2323 +U 9506 ; WX 602 ; N uni2522 ; G 2324 +U 9507 ; WX 602 ; N uni2523 ; G 2325 +U 9508 ; WX 602 ; N SF090000 ; G 2326 +U 9509 ; WX 602 ; N uni2525 ; G 2327 +U 9510 ; WX 602 ; N uni2526 ; G 2328 +U 9511 ; WX 602 ; N uni2527 ; G 2329 +U 9512 ; WX 602 ; N uni2528 ; G 2330 +U 9513 ; WX 602 ; N uni2529 ; G 2331 +U 9514 ; WX 602 ; N uni252A ; G 2332 +U 9515 ; WX 602 ; N uni252B ; G 2333 +U 9516 ; WX 602 ; N SF060000 ; G 2334 +U 9517 ; WX 602 ; N uni252D ; G 2335 +U 9518 ; WX 602 ; N uni252E ; G 2336 +U 9519 ; WX 602 ; N uni252F ; G 2337 +U 9520 ; WX 602 ; N uni2530 ; G 2338 +U 9521 ; WX 602 ; N uni2531 ; G 2339 +U 9522 ; WX 602 ; N uni2532 ; G 2340 +U 9523 ; WX 602 ; N uni2533 ; G 2341 +U 9524 ; WX 602 ; N SF070000 ; G 2342 +U 9525 ; WX 602 ; N uni2535 ; G 2343 +U 9526 ; WX 602 ; N uni2536 ; G 2344 +U 9527 ; WX 602 ; N uni2537 ; G 2345 +U 9528 ; WX 602 ; N uni2538 ; G 2346 +U 9529 ; WX 602 ; N uni2539 ; G 2347 +U 9530 ; WX 602 ; N uni253A ; G 2348 +U 9531 ; WX 602 ; N uni253B ; G 2349 +U 9532 ; WX 602 ; N SF050000 ; G 2350 +U 9533 ; WX 602 ; N uni253D ; G 2351 +U 9534 ; WX 602 ; N uni253E ; G 2352 +U 9535 ; WX 602 ; N uni253F ; G 2353 +U 9536 ; WX 602 ; N uni2540 ; G 2354 +U 9537 ; WX 602 ; N uni2541 ; G 2355 +U 9538 ; WX 602 ; N uni2542 ; G 2356 +U 9539 ; WX 602 ; N uni2543 ; G 2357 +U 9540 ; WX 602 ; N uni2544 ; G 2358 +U 9541 ; WX 602 ; N uni2545 ; G 2359 +U 9542 ; WX 602 ; N uni2546 ; G 2360 +U 9543 ; WX 602 ; N uni2547 ; G 2361 +U 9544 ; WX 602 ; N uni2548 ; G 2362 +U 9545 ; WX 602 ; N uni2549 ; G 2363 +U 9546 ; WX 602 ; N uni254A ; G 2364 +U 9547 ; WX 602 ; N uni254B ; G 2365 +U 9548 ; WX 602 ; N uni254C ; G 2366 +U 9549 ; WX 602 ; N uni254D ; G 2367 +U 9550 ; WX 602 ; N uni254E ; G 2368 +U 9551 ; WX 602 ; N uni254F ; G 2369 +U 9552 ; WX 602 ; N SF430000 ; G 2370 +U 9553 ; WX 602 ; N SF240000 ; G 2371 +U 9554 ; WX 602 ; N SF510000 ; G 2372 +U 9555 ; WX 602 ; N SF520000 ; G 2373 +U 9556 ; WX 602 ; N SF390000 ; G 2374 +U 9557 ; WX 602 ; N SF220000 ; G 2375 +U 9558 ; WX 602 ; N SF210000 ; G 2376 +U 9559 ; WX 602 ; N SF250000 ; G 2377 +U 9560 ; WX 602 ; N SF500000 ; G 2378 +U 9561 ; WX 602 ; N SF490000 ; G 2379 +U 9562 ; WX 602 ; N SF380000 ; G 2380 +U 9563 ; WX 602 ; N SF280000 ; G 2381 +U 9564 ; WX 602 ; N SF270000 ; G 2382 +U 9565 ; WX 602 ; N SF260000 ; G 2383 +U 9566 ; WX 602 ; N SF360000 ; G 2384 +U 9567 ; WX 602 ; N SF370000 ; G 2385 +U 9568 ; WX 602 ; N SF420000 ; G 2386 +U 9569 ; WX 602 ; N SF190000 ; G 2387 +U 9570 ; WX 602 ; N SF200000 ; G 2388 +U 9571 ; WX 602 ; N SF230000 ; G 2389 +U 9572 ; WX 602 ; N SF470000 ; G 2390 +U 9573 ; WX 602 ; N SF480000 ; G 2391 +U 9574 ; WX 602 ; N SF410000 ; G 2392 +U 9575 ; WX 602 ; N SF450000 ; G 2393 +U 9576 ; WX 602 ; N SF460000 ; G 2394 +U 9577 ; WX 602 ; N SF400000 ; G 2395 +U 9578 ; WX 602 ; N SF540000 ; G 2396 +U 9579 ; WX 602 ; N SF530000 ; G 2397 +U 9580 ; WX 602 ; N SF440000 ; G 2398 +U 9581 ; WX 602 ; N uni256D ; G 2399 +U 9582 ; WX 602 ; N uni256E ; G 2400 +U 9583 ; WX 602 ; N uni256F ; G 2401 +U 9584 ; WX 602 ; N uni2570 ; G 2402 +U 9585 ; WX 602 ; N uni2571 ; G 2403 +U 9586 ; WX 602 ; N uni2572 ; G 2404 +U 9587 ; WX 602 ; N uni2573 ; G 2405 +U 9588 ; WX 602 ; N uni2574 ; G 2406 +U 9589 ; WX 602 ; N uni2575 ; G 2407 +U 9590 ; WX 602 ; N uni2576 ; G 2408 +U 9591 ; WX 602 ; N uni2577 ; G 2409 +U 9592 ; WX 602 ; N uni2578 ; G 2410 +U 9593 ; WX 602 ; N uni2579 ; G 2411 +U 9594 ; WX 602 ; N uni257A ; G 2412 +U 9595 ; WX 602 ; N uni257B ; G 2413 +U 9596 ; WX 602 ; N uni257C ; G 2414 +U 9597 ; WX 602 ; N uni257D ; G 2415 +U 9598 ; WX 602 ; N uni257E ; G 2416 +U 9599 ; WX 602 ; N uni257F ; G 2417 +U 9600 ; WX 602 ; N upblock ; G 2418 +U 9601 ; WX 602 ; N uni2581 ; G 2419 +U 9602 ; WX 602 ; N uni2582 ; G 2420 +U 9603 ; WX 602 ; N uni2583 ; G 2421 +U 9604 ; WX 602 ; N dnblock ; G 2422 +U 9605 ; WX 602 ; N uni2585 ; G 2423 +U 9606 ; WX 602 ; N uni2586 ; G 2424 +U 9607 ; WX 602 ; N uni2587 ; G 2425 +U 9608 ; WX 602 ; N block ; G 2426 +U 9609 ; WX 602 ; N uni2589 ; G 2427 +U 9610 ; WX 602 ; N uni258A ; G 2428 +U 9611 ; WX 602 ; N uni258B ; G 2429 +U 9612 ; WX 602 ; N lfblock ; G 2430 +U 9613 ; WX 602 ; N uni258D ; G 2431 +U 9614 ; WX 602 ; N uni258E ; G 2432 +U 9615 ; WX 602 ; N uni258F ; G 2433 +U 9616 ; WX 602 ; N rtblock ; G 2434 +U 9617 ; WX 602 ; N ltshade ; G 2435 +U 9618 ; WX 602 ; N shade ; G 2436 +U 9619 ; WX 602 ; N dkshade ; G 2437 +U 9620 ; WX 602 ; N uni2594 ; G 2438 +U 9621 ; WX 602 ; N uni2595 ; G 2439 +U 9622 ; WX 602 ; N uni2596 ; G 2440 +U 9623 ; WX 602 ; N uni2597 ; G 2441 +U 9624 ; WX 602 ; N uni2598 ; G 2442 +U 9625 ; WX 602 ; N uni2599 ; G 2443 +U 9626 ; WX 602 ; N uni259A ; G 2444 +U 9627 ; WX 602 ; N uni259B ; G 2445 +U 9628 ; WX 602 ; N uni259C ; G 2446 +U 9629 ; WX 602 ; N uni259D ; G 2447 +U 9630 ; WX 602 ; N uni259E ; G 2448 +U 9631 ; WX 602 ; N uni259F ; G 2449 +U 9632 ; WX 602 ; N filledbox ; G 2450 +U 9633 ; WX 602 ; N H22073 ; G 2451 +U 9634 ; WX 602 ; N uni25A2 ; G 2452 +U 9635 ; WX 602 ; N uni25A3 ; G 2453 +U 9636 ; WX 602 ; N uni25A4 ; G 2454 +U 9637 ; WX 602 ; N uni25A5 ; G 2455 +U 9638 ; WX 602 ; N uni25A6 ; G 2456 +U 9639 ; WX 602 ; N uni25A7 ; G 2457 +U 9640 ; WX 602 ; N uni25A8 ; G 2458 +U 9641 ; WX 602 ; N uni25A9 ; G 2459 +U 9642 ; WX 602 ; N H18543 ; G 2460 +U 9643 ; WX 602 ; N H18551 ; G 2461 +U 9644 ; WX 602 ; N filledrect ; G 2462 +U 9645 ; WX 602 ; N uni25AD ; G 2463 +U 9646 ; WX 602 ; N uni25AE ; G 2464 +U 9647 ; WX 602 ; N uni25AF ; G 2465 +U 9648 ; WX 602 ; N uni25B0 ; G 2466 +U 9649 ; WX 602 ; N uni25B1 ; G 2467 +U 9650 ; WX 602 ; N triagup ; G 2468 +U 9651 ; WX 602 ; N uni25B3 ; G 2469 +U 9652 ; WX 602 ; N uni25B4 ; G 2470 +U 9653 ; WX 602 ; N uni25B5 ; G 2471 +U 9654 ; WX 602 ; N uni25B6 ; G 2472 +U 9655 ; WX 602 ; N uni25B7 ; G 2473 +U 9656 ; WX 602 ; N uni25B8 ; G 2474 +U 9657 ; WX 602 ; N uni25B9 ; G 2475 +U 9658 ; WX 602 ; N triagrt ; G 2476 +U 9659 ; WX 602 ; N uni25BB ; G 2477 +U 9660 ; WX 602 ; N triagdn ; G 2478 +U 9661 ; WX 602 ; N uni25BD ; G 2479 +U 9662 ; WX 602 ; N uni25BE ; G 2480 +U 9663 ; WX 602 ; N uni25BF ; G 2481 +U 9664 ; WX 602 ; N uni25C0 ; G 2482 +U 9665 ; WX 602 ; N uni25C1 ; G 2483 +U 9666 ; WX 602 ; N uni25C2 ; G 2484 +U 9667 ; WX 602 ; N uni25C3 ; G 2485 +U 9668 ; WX 602 ; N triaglf ; G 2486 +U 9669 ; WX 602 ; N uni25C5 ; G 2487 +U 9670 ; WX 602 ; N uni25C6 ; G 2488 +U 9671 ; WX 602 ; N uni25C7 ; G 2489 +U 9672 ; WX 602 ; N uni25C8 ; G 2490 +U 9673 ; WX 602 ; N uni25C9 ; G 2491 +U 9674 ; WX 602 ; N lozenge ; G 2492 +U 9675 ; WX 602 ; N circle ; G 2493 +U 9676 ; WX 602 ; N uni25CC ; G 2494 +U 9677 ; WX 602 ; N uni25CD ; G 2495 +U 9678 ; WX 602 ; N uni25CE ; G 2496 +U 9679 ; WX 602 ; N H18533 ; G 2497 +U 9680 ; WX 602 ; N uni25D0 ; G 2498 +U 9681 ; WX 602 ; N uni25D1 ; G 2499 +U 9682 ; WX 602 ; N uni25D2 ; G 2500 +U 9683 ; WX 602 ; N uni25D3 ; G 2501 +U 9684 ; WX 602 ; N uni25D4 ; G 2502 +U 9685 ; WX 602 ; N uni25D5 ; G 2503 +U 9686 ; WX 602 ; N uni25D6 ; G 2504 +U 9687 ; WX 602 ; N uni25D7 ; G 2505 +U 9688 ; WX 602 ; N invbullet ; G 2506 +U 9689 ; WX 602 ; N invcircle ; G 2507 +U 9690 ; WX 602 ; N uni25DA ; G 2508 +U 9691 ; WX 602 ; N uni25DB ; G 2509 +U 9692 ; WX 602 ; N uni25DC ; G 2510 +U 9693 ; WX 602 ; N uni25DD ; G 2511 +U 9694 ; WX 602 ; N uni25DE ; G 2512 +U 9695 ; WX 602 ; N uni25DF ; G 2513 +U 9696 ; WX 602 ; N uni25E0 ; G 2514 +U 9697 ; WX 602 ; N uni25E1 ; G 2515 +U 9698 ; WX 602 ; N uni25E2 ; G 2516 +U 9699 ; WX 602 ; N uni25E3 ; G 2517 +U 9700 ; WX 602 ; N uni25E4 ; G 2518 +U 9701 ; WX 602 ; N uni25E5 ; G 2519 +U 9702 ; WX 602 ; N openbullet ; G 2520 +U 9703 ; WX 602 ; N uni25E7 ; G 2521 +U 9704 ; WX 602 ; N uni25E8 ; G 2522 +U 9705 ; WX 602 ; N uni25E9 ; G 2523 +U 9706 ; WX 602 ; N uni25EA ; G 2524 +U 9707 ; WX 602 ; N uni25EB ; G 2525 +U 9708 ; WX 602 ; N uni25EC ; G 2526 +U 9709 ; WX 602 ; N uni25ED ; G 2527 +U 9710 ; WX 602 ; N uni25EE ; G 2528 +U 9711 ; WX 602 ; N uni25EF ; G 2529 +U 9712 ; WX 602 ; N uni25F0 ; G 2530 +U 9713 ; WX 602 ; N uni25F1 ; G 2531 +U 9714 ; WX 602 ; N uni25F2 ; G 2532 +U 9715 ; WX 602 ; N uni25F3 ; G 2533 +U 9716 ; WX 602 ; N uni25F4 ; G 2534 +U 9717 ; WX 602 ; N uni25F5 ; G 2535 +U 9718 ; WX 602 ; N uni25F6 ; G 2536 +U 9719 ; WX 602 ; N uni25F7 ; G 2537 +U 9720 ; WX 602 ; N uni25F8 ; G 2538 +U 9721 ; WX 602 ; N uni25F9 ; G 2539 +U 9722 ; WX 602 ; N uni25FA ; G 2540 +U 9723 ; WX 602 ; N uni25FB ; G 2541 +U 9724 ; WX 602 ; N uni25FC ; G 2542 +U 9725 ; WX 602 ; N uni25FD ; G 2543 +U 9726 ; WX 602 ; N uni25FE ; G 2544 +U 9727 ; WX 602 ; N uni25FF ; G 2545 +U 9728 ; WX 602 ; N uni2600 ; G 2546 +U 9784 ; WX 602 ; N uni2638 ; G 2547 +U 9785 ; WX 602 ; N uni2639 ; G 2548 +U 9786 ; WX 602 ; N smileface ; G 2549 +U 9787 ; WX 602 ; N invsmileface ; G 2550 +U 9788 ; WX 602 ; N sun ; G 2551 +U 9791 ; WX 602 ; N uni263F ; G 2552 +U 9792 ; WX 602 ; N female ; G 2553 +U 9793 ; WX 602 ; N uni2641 ; G 2554 +U 9794 ; WX 602 ; N male ; G 2555 +U 9795 ; WX 602 ; N uni2643 ; G 2556 +U 9796 ; WX 602 ; N uni2644 ; G 2557 +U 9797 ; WX 602 ; N uni2645 ; G 2558 +U 9798 ; WX 602 ; N uni2646 ; G 2559 +U 9799 ; WX 602 ; N uni2647 ; G 2560 +U 9824 ; WX 602 ; N spade ; G 2561 +U 9825 ; WX 602 ; N uni2661 ; G 2562 +U 9826 ; WX 602 ; N uni2662 ; G 2563 +U 9827 ; WX 602 ; N club ; G 2564 +U 9828 ; WX 602 ; N uni2664 ; G 2565 +U 9829 ; WX 602 ; N heart ; G 2566 +U 9830 ; WX 602 ; N diamond ; G 2567 +U 9831 ; WX 602 ; N uni2667 ; G 2568 +U 9833 ; WX 602 ; N uni2669 ; G 2569 +U 9834 ; WX 602 ; N musicalnote ; G 2570 +U 9835 ; WX 602 ; N musicalnotedbl ; G 2571 +U 9836 ; WX 602 ; N uni266C ; G 2572 +U 9837 ; WX 602 ; N uni266D ; G 2573 +U 9838 ; WX 602 ; N uni266E ; G 2574 +U 9839 ; WX 602 ; N uni266F ; G 2575 +U 10178 ; WX 602 ; N uni27C2 ; G 2576 +U 10181 ; WX 602 ; N uni27C5 ; G 2577 +U 10182 ; WX 602 ; N uni27C6 ; G 2578 +U 10204 ; WX 602 ; N uni27DC ; G 2579 +U 10208 ; WX 602 ; N uni27E0 ; G 2580 +U 10214 ; WX 602 ; N uni27E6 ; G 2581 +U 10215 ; WX 602 ; N uni27E7 ; G 2582 +U 10216 ; WX 602 ; N uni27E8 ; G 2583 +U 10217 ; WX 602 ; N uni27E9 ; G 2584 +U 10218 ; WX 602 ; N uni27EA ; G 2585 +U 10219 ; WX 602 ; N uni27EB ; G 2586 +U 10229 ; WX 602 ; N uni27F5 ; G 2587 +U 10230 ; WX 602 ; N uni27F6 ; G 2588 +U 10231 ; WX 602 ; N uni27F7 ; G 2589 +U 10631 ; WX 602 ; N uni2987 ; G 2590 +U 10632 ; WX 602 ; N uni2988 ; G 2591 +U 10647 ; WX 602 ; N uni2997 ; G 2592 +U 10648 ; WX 602 ; N uni2998 ; G 2593 +U 10731 ; WX 602 ; N uni29EB ; G 2594 +U 10746 ; WX 602 ; N uni29FA ; G 2595 +U 10747 ; WX 602 ; N uni29FB ; G 2596 +U 10752 ; WX 602 ; N uni2A00 ; G 2597 +U 10799 ; WX 602 ; N uni2A2F ; G 2598 +U 10858 ; WX 602 ; N uni2A6A ; G 2599 +U 10859 ; WX 602 ; N uni2A6B ; G 2600 +U 11013 ; WX 602 ; N uni2B05 ; G 2601 +U 11014 ; WX 602 ; N uni2B06 ; G 2602 +U 11015 ; WX 602 ; N uni2B07 ; G 2603 +U 11016 ; WX 602 ; N uni2B08 ; G 2604 +U 11017 ; WX 602 ; N uni2B09 ; G 2605 +U 11018 ; WX 602 ; N uni2B0A ; G 2606 +U 11019 ; WX 602 ; N uni2B0B ; G 2607 +U 11020 ; WX 602 ; N uni2B0C ; G 2608 +U 11021 ; WX 602 ; N uni2B0D ; G 2609 +U 11026 ; WX 602 ; N uni2B12 ; G 2610 +U 11027 ; WX 602 ; N uni2B13 ; G 2611 +U 11028 ; WX 602 ; N uni2B14 ; G 2612 +U 11029 ; WX 602 ; N uni2B15 ; G 2613 +U 11030 ; WX 602 ; N uni2B16 ; G 2614 +U 11031 ; WX 602 ; N uni2B17 ; G 2615 +U 11032 ; WX 602 ; N uni2B18 ; G 2616 +U 11033 ; WX 602 ; N uni2B19 ; G 2617 +U 11034 ; WX 602 ; N uni2B1A ; G 2618 +U 11364 ; WX 602 ; N uni2C64 ; G 2619 +U 11373 ; WX 602 ; N uni2C6D ; G 2620 +U 11374 ; WX 602 ; N uni2C6E ; G 2621 +U 11375 ; WX 602 ; N uni2C6F ; G 2622 +U 11376 ; WX 602 ; N uni2C70 ; G 2623 +U 11381 ; WX 602 ; N uni2C75 ; G 2624 +U 11382 ; WX 602 ; N uni2C76 ; G 2625 +U 11383 ; WX 602 ; N uni2C77 ; G 2626 +U 11385 ; WX 602 ; N uni2C79 ; G 2627 +U 11386 ; WX 602 ; N uni2C7A ; G 2628 +U 11388 ; WX 602 ; N uni2C7C ; G 2629 +U 11389 ; WX 602 ; N uni2C7D ; G 2630 +U 11390 ; WX 602 ; N uni2C7E ; G 2631 +U 11391 ; WX 602 ; N uni2C7F ; G 2632 +U 11800 ; WX 602 ; N uni2E18 ; G 2633 +U 11807 ; WX 602 ; N uni2E1F ; G 2634 +U 11810 ; WX 602 ; N uni2E22 ; G 2635 +U 11811 ; WX 602 ; N uni2E23 ; G 2636 +U 11812 ; WX 602 ; N uni2E24 ; G 2637 +U 11813 ; WX 602 ; N uni2E25 ; G 2638 +U 11822 ; WX 602 ; N uni2E2E ; G 2639 +U 42760 ; WX 602 ; N uniA708 ; G 2640 +U 42761 ; WX 602 ; N uniA709 ; G 2641 +U 42762 ; WX 602 ; N uniA70A ; G 2642 +U 42763 ; WX 602 ; N uniA70B ; G 2643 +U 42764 ; WX 602 ; N uniA70C ; G 2644 +U 42765 ; WX 602 ; N uniA70D ; G 2645 +U 42766 ; WX 602 ; N uniA70E ; G 2646 +U 42767 ; WX 602 ; N uniA70F ; G 2647 +U 42768 ; WX 602 ; N uniA710 ; G 2648 +U 42769 ; WX 602 ; N uniA711 ; G 2649 +U 42770 ; WX 602 ; N uniA712 ; G 2650 +U 42771 ; WX 602 ; N uniA713 ; G 2651 +U 42772 ; WX 602 ; N uniA714 ; G 2652 +U 42773 ; WX 602 ; N uniA715 ; G 2653 +U 42774 ; WX 602 ; N uniA716 ; G 2654 +U 42779 ; WX 602 ; N uniA71B ; G 2655 +U 42780 ; WX 602 ; N uniA71C ; G 2656 +U 42781 ; WX 602 ; N uniA71D ; G 2657 +U 42782 ; WX 602 ; N uniA71E ; G 2658 +U 42783 ; WX 602 ; N uniA71F ; G 2659 +U 42786 ; WX 602 ; N uniA722 ; G 2660 +U 42787 ; WX 602 ; N uniA723 ; G 2661 +U 42788 ; WX 602 ; N uniA724 ; G 2662 +U 42789 ; WX 602 ; N uniA725 ; G 2663 +U 42790 ; WX 602 ; N uniA726 ; G 2664 +U 42791 ; WX 602 ; N uniA727 ; G 2665 +U 42889 ; WX 602 ; N uniA789 ; G 2666 +U 42890 ; WX 602 ; N uniA78A ; G 2667 +U 42891 ; WX 602 ; N uniA78B ; G 2668 +U 42892 ; WX 602 ; N uniA78C ; G 2669 +U 42893 ; WX 602 ; N uniA78D ; G 2670 +U 42894 ; WX 602 ; N uniA78E ; G 2671 +U 42896 ; WX 602 ; N uniA790 ; G 2672 +U 42897 ; WX 602 ; N uniA791 ; G 2673 +U 42922 ; WX 602 ; N uniA7AA ; G 2674 +U 43000 ; WX 602 ; N uniA7F8 ; G 2675 +U 43001 ; WX 602 ; N uniA7F9 ; G 2676 +U 63173 ; WX 602 ; N uniF6C5 ; G 2677 +U 64257 ; WX 602 ; N fi ; G 2678 +U 64258 ; WX 602 ; N fl ; G 2679 +U 65529 ; WX 602 ; N uniFFF9 ; G 2680 +U 65530 ; WX 602 ; N uniFFFA ; G 2681 +U 65531 ; WX 602 ; N uniFFFB ; G 2682 +U 65532 ; WX 602 ; N uniFFFC ; G 2683 +U 65533 ; WX 602 ; N uniFFFD ; G 2684 +EndCharMetrics +EndFontMetrics diff --git a/public_html/2022/newcms/pdf/ttfonts/DejaVuSansMono-Oblique.ttf b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSansMono-Oblique.ttf similarity index 57% rename from public_html/2022/newcms/pdf/ttfonts/DejaVuSansMono-Oblique.ttf rename to public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSansMono-Oblique.ttf index d6ab522..4c858d4 100644 Binary files a/public_html/2022/newcms/pdf/ttfonts/DejaVuSansMono-Oblique.ttf and b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSansMono-Oblique.ttf differ diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSansMono-Oblique.ufm b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSansMono-Oblique.ufm new file mode 100644 index 0000000..4cd3d2a --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSansMono-Oblique.ufm @@ -0,0 +1,2707 @@ +StartFontMetrics 4.1 +Notice Converted by PHP-font-lib +Comment https://github.com/PhenX/php-font-lib +EncodingScheme FontSpecific +FontName DejaVu Sans Mono +FontSubfamily Oblique +UniqueID DejaVu Sans Mono Oblique +FullName DejaVu Sans Mono Oblique +Version Version 2.37 +PostScriptName DejaVuSansMono-Oblique +Manufacturer DejaVu fonts team +FontVendorURL http://dejavu.sourceforge.net +LicenseURL http://dejavu.sourceforge.net/wiki/index.php/License +Weight Medium +ItalicAngle -11 +IsFixedPitch true +UnderlineThickness 44 +UnderlinePosition -63 +FontHeightOffset 0 +Ascender 928 +Descender -236 +FontBBox -403 -375 746 998 +StartCharMetrics 2710 +U 32 ; WX 602 ; N space ; G 3 +U 33 ; WX 602 ; N exclam ; G 4 +U 34 ; WX 602 ; N quotedbl ; G 5 +U 35 ; WX 602 ; N numbersign ; G 6 +U 36 ; WX 602 ; N dollar ; G 7 +U 37 ; WX 602 ; N percent ; G 8 +U 38 ; WX 602 ; N ampersand ; G 9 +U 39 ; WX 602 ; N quotesingle ; G 10 +U 40 ; WX 602 ; N parenleft ; G 11 +U 41 ; WX 602 ; N parenright ; G 12 +U 42 ; WX 602 ; N asterisk ; G 13 +U 43 ; WX 602 ; N plus ; G 14 +U 44 ; WX 602 ; N comma ; G 15 +U 45 ; WX 602 ; N hyphen ; G 16 +U 46 ; WX 602 ; N period ; G 17 +U 47 ; WX 602 ; N slash ; G 18 +U 48 ; WX 602 ; N zero ; G 19 +U 49 ; WX 602 ; N one ; G 20 +U 50 ; WX 602 ; N two ; G 21 +U 51 ; WX 602 ; N three ; G 22 +U 52 ; WX 602 ; N four ; G 23 +U 53 ; WX 602 ; N five ; G 24 +U 54 ; WX 602 ; N six ; G 25 +U 55 ; WX 602 ; N seven ; G 26 +U 56 ; WX 602 ; N eight ; G 27 +U 57 ; WX 602 ; N nine ; G 28 +U 58 ; WX 602 ; N colon ; G 29 +U 59 ; WX 602 ; N semicolon ; G 30 +U 60 ; WX 602 ; N less ; G 31 +U 61 ; WX 602 ; N equal ; G 32 +U 62 ; WX 602 ; N greater ; G 33 +U 63 ; WX 602 ; N question ; G 34 +U 64 ; WX 602 ; N at ; G 35 +U 65 ; WX 602 ; N A ; G 36 +U 66 ; WX 602 ; N B ; G 37 +U 67 ; WX 602 ; N C ; G 38 +U 68 ; WX 602 ; N D ; G 39 +U 69 ; WX 602 ; N E ; G 40 +U 70 ; WX 602 ; N F ; G 41 +U 71 ; WX 602 ; N G ; G 42 +U 72 ; WX 602 ; N H ; G 43 +U 73 ; WX 602 ; N I ; G 44 +U 74 ; WX 602 ; N J ; G 45 +U 75 ; WX 602 ; N K ; G 46 +U 76 ; WX 602 ; N L ; G 47 +U 77 ; WX 602 ; N M ; G 48 +U 78 ; WX 602 ; N N ; G 49 +U 79 ; WX 602 ; N O ; G 50 +U 80 ; WX 602 ; N P ; G 51 +U 81 ; WX 602 ; N Q ; G 52 +U 82 ; WX 602 ; N R ; G 53 +U 83 ; WX 602 ; N S ; G 54 +U 84 ; WX 602 ; N T ; G 55 +U 85 ; WX 602 ; N U ; G 56 +U 86 ; WX 602 ; N V ; G 57 +U 87 ; WX 602 ; N W ; G 58 +U 88 ; WX 602 ; N X ; G 59 +U 89 ; WX 602 ; N Y ; G 60 +U 90 ; WX 602 ; N Z ; G 61 +U 91 ; WX 602 ; N bracketleft ; G 62 +U 92 ; WX 602 ; N backslash ; G 63 +U 93 ; WX 602 ; N bracketright ; G 64 +U 94 ; WX 602 ; N asciicircum ; G 65 +U 95 ; WX 602 ; N underscore ; G 66 +U 96 ; WX 602 ; N grave ; G 67 +U 97 ; WX 602 ; N a ; G 68 +U 98 ; WX 602 ; N b ; G 69 +U 99 ; WX 602 ; N c ; G 70 +U 100 ; WX 602 ; N d ; G 71 +U 101 ; WX 602 ; N e ; G 72 +U 102 ; WX 602 ; N f ; G 73 +U 103 ; WX 602 ; N g ; G 74 +U 104 ; WX 602 ; N h ; G 75 +U 105 ; WX 602 ; N i ; G 76 +U 106 ; WX 602 ; N j ; G 77 +U 107 ; WX 602 ; N k ; G 78 +U 108 ; WX 602 ; N l ; G 79 +U 109 ; WX 602 ; N m ; G 80 +U 110 ; WX 602 ; N n ; G 81 +U 111 ; WX 602 ; N o ; G 82 +U 112 ; WX 602 ; N p ; G 83 +U 113 ; WX 602 ; N q ; G 84 +U 114 ; WX 602 ; N r ; G 85 +U 115 ; WX 602 ; N s ; G 86 +U 116 ; WX 602 ; N t ; G 87 +U 117 ; WX 602 ; N u ; G 88 +U 118 ; WX 602 ; N v ; G 89 +U 119 ; WX 602 ; N w ; G 90 +U 120 ; WX 602 ; N x ; G 91 +U 121 ; WX 602 ; N y ; G 92 +U 122 ; WX 602 ; N z ; G 93 +U 123 ; WX 602 ; N braceleft ; G 94 +U 124 ; WX 602 ; N bar ; G 95 +U 125 ; WX 602 ; N braceright ; G 96 +U 126 ; WX 602 ; N asciitilde ; G 97 +U 160 ; WX 602 ; N nbspace ; G 98 +U 161 ; WX 602 ; N exclamdown ; G 99 +U 162 ; WX 602 ; N cent ; G 100 +U 163 ; WX 602 ; N sterling ; G 101 +U 164 ; WX 602 ; N currency ; G 102 +U 165 ; WX 602 ; N yen ; G 103 +U 166 ; WX 602 ; N brokenbar ; G 104 +U 167 ; WX 602 ; N section ; G 105 +U 168 ; WX 602 ; N dieresis ; G 106 +U 169 ; WX 602 ; N copyright ; G 107 +U 170 ; WX 602 ; N ordfeminine ; G 108 +U 171 ; WX 602 ; N guillemotleft ; G 109 +U 172 ; WX 602 ; N logicalnot ; G 110 +U 173 ; WX 602 ; N sfthyphen ; G 111 +U 174 ; WX 602 ; N registered ; G 112 +U 175 ; WX 602 ; N macron ; G 113 +U 176 ; WX 602 ; N degree ; G 114 +U 177 ; WX 602 ; N plusminus ; G 115 +U 178 ; WX 602 ; N twosuperior ; G 116 +U 179 ; WX 602 ; N threesuperior ; G 117 +U 180 ; WX 602 ; N acute ; G 118 +U 181 ; WX 602 ; N mu ; G 119 +U 182 ; WX 602 ; N paragraph ; G 120 +U 183 ; WX 602 ; N periodcentered ; G 121 +U 184 ; WX 602 ; N cedilla ; G 122 +U 185 ; WX 602 ; N onesuperior ; G 123 +U 186 ; WX 602 ; N ordmasculine ; G 124 +U 187 ; WX 602 ; N guillemotright ; G 125 +U 188 ; WX 602 ; N onequarter ; G 126 +U 189 ; WX 602 ; N onehalf ; G 127 +U 190 ; WX 602 ; N threequarters ; G 128 +U 191 ; WX 602 ; N questiondown ; G 129 +U 192 ; WX 602 ; N Agrave ; G 130 +U 193 ; WX 602 ; N Aacute ; G 131 +U 194 ; WX 602 ; N Acircumflex ; G 132 +U 195 ; WX 602 ; N Atilde ; G 133 +U 196 ; WX 602 ; N Adieresis ; G 134 +U 197 ; WX 602 ; N Aring ; G 135 +U 198 ; WX 602 ; N AE ; G 136 +U 199 ; WX 602 ; N Ccedilla ; G 137 +U 200 ; WX 602 ; N Egrave ; G 138 +U 201 ; WX 602 ; N Eacute ; G 139 +U 202 ; WX 602 ; N Ecircumflex ; G 140 +U 203 ; WX 602 ; N Edieresis ; G 141 +U 204 ; WX 602 ; N Igrave ; G 142 +U 205 ; WX 602 ; N Iacute ; G 143 +U 206 ; WX 602 ; N Icircumflex ; G 144 +U 207 ; WX 602 ; N Idieresis ; G 145 +U 208 ; WX 602 ; N Eth ; G 146 +U 209 ; WX 602 ; N Ntilde ; G 147 +U 210 ; WX 602 ; N Ograve ; G 148 +U 211 ; WX 602 ; N Oacute ; G 149 +U 212 ; WX 602 ; N Ocircumflex ; G 150 +U 213 ; WX 602 ; N Otilde ; G 151 +U 214 ; WX 602 ; N Odieresis ; G 152 +U 215 ; WX 602 ; N multiply ; G 153 +U 216 ; WX 602 ; N Oslash ; G 154 +U 217 ; WX 602 ; N Ugrave ; G 155 +U 218 ; WX 602 ; N Uacute ; G 156 +U 219 ; WX 602 ; N Ucircumflex ; G 157 +U 220 ; WX 602 ; N Udieresis ; G 158 +U 221 ; WX 602 ; N Yacute ; G 159 +U 222 ; WX 602 ; N Thorn ; G 160 +U 223 ; WX 602 ; N germandbls ; G 161 +U 224 ; WX 602 ; N agrave ; G 162 +U 225 ; WX 602 ; N aacute ; G 163 +U 226 ; WX 602 ; N acircumflex ; G 164 +U 227 ; WX 602 ; N atilde ; G 165 +U 228 ; WX 602 ; N adieresis ; G 166 +U 229 ; WX 602 ; N aring ; G 167 +U 230 ; WX 602 ; N ae ; G 168 +U 231 ; WX 602 ; N ccedilla ; G 169 +U 232 ; WX 602 ; N egrave ; G 170 +U 233 ; WX 602 ; N eacute ; G 171 +U 234 ; WX 602 ; N ecircumflex ; G 172 +U 235 ; WX 602 ; N edieresis ; G 173 +U 236 ; WX 602 ; N igrave ; G 174 +U 237 ; WX 602 ; N iacute ; G 175 +U 238 ; WX 602 ; N icircumflex ; G 176 +U 239 ; WX 602 ; N idieresis ; G 177 +U 240 ; WX 602 ; N eth ; G 178 +U 241 ; WX 602 ; N ntilde ; G 179 +U 242 ; WX 602 ; N ograve ; G 180 +U 243 ; WX 602 ; N oacute ; G 181 +U 244 ; WX 602 ; N ocircumflex ; G 182 +U 245 ; WX 602 ; N otilde ; G 183 +U 246 ; WX 602 ; N odieresis ; G 184 +U 247 ; WX 602 ; N divide ; G 185 +U 248 ; WX 602 ; N oslash ; G 186 +U 249 ; WX 602 ; N ugrave ; G 187 +U 250 ; WX 602 ; N uacute ; G 188 +U 251 ; WX 602 ; N ucircumflex ; G 189 +U 252 ; WX 602 ; N udieresis ; G 190 +U 253 ; WX 602 ; N yacute ; G 191 +U 254 ; WX 602 ; N thorn ; G 192 +U 255 ; WX 602 ; N ydieresis ; G 193 +U 256 ; WX 602 ; N Amacron ; G 194 +U 257 ; WX 602 ; N amacron ; G 195 +U 258 ; WX 602 ; N Abreve ; G 196 +U 259 ; WX 602 ; N abreve ; G 197 +U 260 ; WX 602 ; N Aogonek ; G 198 +U 261 ; WX 602 ; N aogonek ; G 199 +U 262 ; WX 602 ; N Cacute ; G 200 +U 263 ; WX 602 ; N cacute ; G 201 +U 264 ; WX 602 ; N Ccircumflex ; G 202 +U 265 ; WX 602 ; N ccircumflex ; G 203 +U 266 ; WX 602 ; N Cdotaccent ; G 204 +U 267 ; WX 602 ; N cdotaccent ; G 205 +U 268 ; WX 602 ; N Ccaron ; G 206 +U 269 ; WX 602 ; N ccaron ; G 207 +U 270 ; WX 602 ; N Dcaron ; G 208 +U 271 ; WX 602 ; N dcaron ; G 209 +U 272 ; WX 602 ; N Dcroat ; G 210 +U 273 ; WX 602 ; N dmacron ; G 211 +U 274 ; WX 602 ; N Emacron ; G 212 +U 275 ; WX 602 ; N emacron ; G 213 +U 276 ; WX 602 ; N Ebreve ; G 214 +U 277 ; WX 602 ; N ebreve ; G 215 +U 278 ; WX 602 ; N Edotaccent ; G 216 +U 279 ; WX 602 ; N edotaccent ; G 217 +U 280 ; WX 602 ; N Eogonek ; G 218 +U 281 ; WX 602 ; N eogonek ; G 219 +U 282 ; WX 602 ; N Ecaron ; G 220 +U 283 ; WX 602 ; N ecaron ; G 221 +U 284 ; WX 602 ; N Gcircumflex ; G 222 +U 285 ; WX 602 ; N gcircumflex ; G 223 +U 286 ; WX 602 ; N Gbreve ; G 224 +U 287 ; WX 602 ; N gbreve ; G 225 +U 288 ; WX 602 ; N Gdotaccent ; G 226 +U 289 ; WX 602 ; N gdotaccent ; G 227 +U 290 ; WX 602 ; N Gcommaaccent ; G 228 +U 291 ; WX 602 ; N gcommaaccent ; G 229 +U 292 ; WX 602 ; N Hcircumflex ; G 230 +U 293 ; WX 602 ; N hcircumflex ; G 231 +U 294 ; WX 602 ; N Hbar ; G 232 +U 295 ; WX 602 ; N hbar ; G 233 +U 296 ; WX 602 ; N Itilde ; G 234 +U 297 ; WX 602 ; N itilde ; G 235 +U 298 ; WX 602 ; N Imacron ; G 236 +U 299 ; WX 602 ; N imacron ; G 237 +U 300 ; WX 602 ; N Ibreve ; G 238 +U 301 ; WX 602 ; N ibreve ; G 239 +U 302 ; WX 602 ; N Iogonek ; G 240 +U 303 ; WX 602 ; N iogonek ; G 241 +U 304 ; WX 602 ; N Idot ; G 242 +U 305 ; WX 602 ; N dotlessi ; G 243 +U 306 ; WX 602 ; N IJ ; G 244 +U 307 ; WX 602 ; N ij ; G 245 +U 308 ; WX 602 ; N Jcircumflex ; G 246 +U 309 ; WX 602 ; N jcircumflex ; G 247 +U 310 ; WX 602 ; N Kcommaaccent ; G 248 +U 311 ; WX 602 ; N kcommaaccent ; G 249 +U 312 ; WX 602 ; N kgreenlandic ; G 250 +U 313 ; WX 602 ; N Lacute ; G 251 +U 314 ; WX 602 ; N lacute ; G 252 +U 315 ; WX 602 ; N Lcommaaccent ; G 253 +U 316 ; WX 602 ; N lcommaaccent ; G 254 +U 317 ; WX 602 ; N Lcaron ; G 255 +U 318 ; WX 602 ; N lcaron ; G 256 +U 319 ; WX 602 ; N Ldot ; G 257 +U 320 ; WX 602 ; N ldot ; G 258 +U 321 ; WX 602 ; N Lslash ; G 259 +U 322 ; WX 602 ; N lslash ; G 260 +U 323 ; WX 602 ; N Nacute ; G 261 +U 324 ; WX 602 ; N nacute ; G 262 +U 325 ; WX 602 ; N Ncommaaccent ; G 263 +U 326 ; WX 602 ; N ncommaaccent ; G 264 +U 327 ; WX 602 ; N Ncaron ; G 265 +U 328 ; WX 602 ; N ncaron ; G 266 +U 329 ; WX 602 ; N napostrophe ; G 267 +U 330 ; WX 602 ; N Eng ; G 268 +U 331 ; WX 602 ; N eng ; G 269 +U 332 ; WX 602 ; N Omacron ; G 270 +U 333 ; WX 602 ; N omacron ; G 271 +U 334 ; WX 602 ; N Obreve ; G 272 +U 335 ; WX 602 ; N obreve ; G 273 +U 336 ; WX 602 ; N Ohungarumlaut ; G 274 +U 337 ; WX 602 ; N ohungarumlaut ; G 275 +U 338 ; WX 602 ; N OE ; G 276 +U 339 ; WX 602 ; N oe ; G 277 +U 340 ; WX 602 ; N Racute ; G 278 +U 341 ; WX 602 ; N racute ; G 279 +U 342 ; WX 602 ; N Rcommaaccent ; G 280 +U 343 ; WX 602 ; N rcommaaccent ; G 281 +U 344 ; WX 602 ; N Rcaron ; G 282 +U 345 ; WX 602 ; N rcaron ; G 283 +U 346 ; WX 602 ; N Sacute ; G 284 +U 347 ; WX 602 ; N sacute ; G 285 +U 348 ; WX 602 ; N Scircumflex ; G 286 +U 349 ; WX 602 ; N scircumflex ; G 287 +U 350 ; WX 602 ; N Scedilla ; G 288 +U 351 ; WX 602 ; N scedilla ; G 289 +U 352 ; WX 602 ; N Scaron ; G 290 +U 353 ; WX 602 ; N scaron ; G 291 +U 354 ; WX 602 ; N Tcommaaccent ; G 292 +U 355 ; WX 602 ; N tcommaaccent ; G 293 +U 356 ; WX 602 ; N Tcaron ; G 294 +U 357 ; WX 602 ; N tcaron ; G 295 +U 358 ; WX 602 ; N Tbar ; G 296 +U 359 ; WX 602 ; N tbar ; G 297 +U 360 ; WX 602 ; N Utilde ; G 298 +U 361 ; WX 602 ; N utilde ; G 299 +U 362 ; WX 602 ; N Umacron ; G 300 +U 363 ; WX 602 ; N umacron ; G 301 +U 364 ; WX 602 ; N Ubreve ; G 302 +U 365 ; WX 602 ; N ubreve ; G 303 +U 366 ; WX 602 ; N Uring ; G 304 +U 367 ; WX 602 ; N uring ; G 305 +U 368 ; WX 602 ; N Uhungarumlaut ; G 306 +U 369 ; WX 602 ; N uhungarumlaut ; G 307 +U 370 ; WX 602 ; N Uogonek ; G 308 +U 371 ; WX 602 ; N uogonek ; G 309 +U 372 ; WX 602 ; N Wcircumflex ; G 310 +U 373 ; WX 602 ; N wcircumflex ; G 311 +U 374 ; WX 602 ; N Ycircumflex ; G 312 +U 375 ; WX 602 ; N ycircumflex ; G 313 +U 376 ; WX 602 ; N Ydieresis ; G 314 +U 377 ; WX 602 ; N Zacute ; G 315 +U 378 ; WX 602 ; N zacute ; G 316 +U 379 ; WX 602 ; N Zdotaccent ; G 317 +U 380 ; WX 602 ; N zdotaccent ; G 318 +U 381 ; WX 602 ; N Zcaron ; G 319 +U 382 ; WX 602 ; N zcaron ; G 320 +U 383 ; WX 602 ; N longs ; G 321 +U 384 ; WX 602 ; N uni0180 ; G 322 +U 385 ; WX 602 ; N uni0181 ; G 323 +U 386 ; WX 602 ; N uni0182 ; G 324 +U 387 ; WX 602 ; N uni0183 ; G 325 +U 388 ; WX 602 ; N uni0184 ; G 326 +U 389 ; WX 602 ; N uni0185 ; G 327 +U 390 ; WX 602 ; N uni0186 ; G 328 +U 391 ; WX 602 ; N uni0187 ; G 329 +U 392 ; WX 602 ; N uni0188 ; G 330 +U 393 ; WX 602 ; N uni0189 ; G 331 +U 394 ; WX 602 ; N uni018A ; G 332 +U 395 ; WX 602 ; N uni018B ; G 333 +U 396 ; WX 602 ; N uni018C ; G 334 +U 397 ; WX 602 ; N uni018D ; G 335 +U 398 ; WX 602 ; N uni018E ; G 336 +U 399 ; WX 602 ; N uni018F ; G 337 +U 400 ; WX 602 ; N uni0190 ; G 338 +U 401 ; WX 602 ; N uni0191 ; G 339 +U 402 ; WX 602 ; N florin ; G 340 +U 403 ; WX 602 ; N uni0193 ; G 341 +U 404 ; WX 602 ; N uni0194 ; G 342 +U 405 ; WX 602 ; N uni0195 ; G 343 +U 406 ; WX 602 ; N uni0196 ; G 344 +U 407 ; WX 602 ; N uni0197 ; G 345 +U 408 ; WX 602 ; N uni0198 ; G 346 +U 409 ; WX 602 ; N uni0199 ; G 347 +U 410 ; WX 602 ; N uni019A ; G 348 +U 411 ; WX 602 ; N uni019B ; G 349 +U 412 ; WX 602 ; N uni019C ; G 350 +U 413 ; WX 602 ; N uni019D ; G 351 +U 414 ; WX 602 ; N uni019E ; G 352 +U 415 ; WX 602 ; N uni019F ; G 353 +U 416 ; WX 602 ; N Ohorn ; G 354 +U 417 ; WX 602 ; N ohorn ; G 355 +U 418 ; WX 602 ; N uni01A2 ; G 356 +U 419 ; WX 602 ; N uni01A3 ; G 357 +U 420 ; WX 602 ; N uni01A4 ; G 358 +U 421 ; WX 602 ; N uni01A5 ; G 359 +U 422 ; WX 602 ; N uni01A6 ; G 360 +U 423 ; WX 602 ; N uni01A7 ; G 361 +U 424 ; WX 602 ; N uni01A8 ; G 362 +U 425 ; WX 602 ; N uni01A9 ; G 363 +U 426 ; WX 602 ; N uni01AA ; G 364 +U 427 ; WX 602 ; N uni01AB ; G 365 +U 428 ; WX 602 ; N uni01AC ; G 366 +U 429 ; WX 602 ; N uni01AD ; G 367 +U 430 ; WX 602 ; N uni01AE ; G 368 +U 431 ; WX 602 ; N Uhorn ; G 369 +U 432 ; WX 602 ; N uhorn ; G 370 +U 433 ; WX 602 ; N uni01B1 ; G 371 +U 434 ; WX 602 ; N uni01B2 ; G 372 +U 435 ; WX 602 ; N uni01B3 ; G 373 +U 436 ; WX 602 ; N uni01B4 ; G 374 +U 437 ; WX 602 ; N uni01B5 ; G 375 +U 438 ; WX 602 ; N uni01B6 ; G 376 +U 439 ; WX 602 ; N uni01B7 ; G 377 +U 440 ; WX 602 ; N uni01B8 ; G 378 +U 441 ; WX 602 ; N uni01B9 ; G 379 +U 442 ; WX 602 ; N uni01BA ; G 380 +U 443 ; WX 602 ; N uni01BB ; G 381 +U 444 ; WX 602 ; N uni01BC ; G 382 +U 445 ; WX 602 ; N uni01BD ; G 383 +U 446 ; WX 602 ; N uni01BE ; G 384 +U 447 ; WX 602 ; N uni01BF ; G 385 +U 448 ; WX 602 ; N uni01C0 ; G 386 +U 449 ; WX 602 ; N uni01C1 ; G 387 +U 450 ; WX 602 ; N uni01C2 ; G 388 +U 451 ; WX 602 ; N uni01C3 ; G 389 +U 461 ; WX 602 ; N uni01CD ; G 390 +U 462 ; WX 602 ; N uni01CE ; G 391 +U 463 ; WX 602 ; N uni01CF ; G 392 +U 464 ; WX 602 ; N uni01D0 ; G 393 +U 465 ; WX 602 ; N uni01D1 ; G 394 +U 466 ; WX 602 ; N uni01D2 ; G 395 +U 467 ; WX 602 ; N uni01D3 ; G 396 +U 468 ; WX 602 ; N uni01D4 ; G 397 +U 469 ; WX 602 ; N uni01D5 ; G 398 +U 470 ; WX 602 ; N uni01D6 ; G 399 +U 471 ; WX 602 ; N uni01D7 ; G 400 +U 472 ; WX 602 ; N uni01D8 ; G 401 +U 473 ; WX 602 ; N uni01D9 ; G 402 +U 474 ; WX 602 ; N uni01DA ; G 403 +U 475 ; WX 602 ; N uni01DB ; G 404 +U 476 ; WX 602 ; N uni01DC ; G 405 +U 477 ; WX 602 ; N uni01DD ; G 406 +U 479 ; WX 602 ; N uni01DF ; G 407 +U 480 ; WX 602 ; N uni01E0 ; G 408 +U 481 ; WX 602 ; N uni01E1 ; G 409 +U 482 ; WX 602 ; N uni01E2 ; G 410 +U 483 ; WX 602 ; N uni01E3 ; G 411 +U 486 ; WX 602 ; N Gcaron ; G 412 +U 487 ; WX 602 ; N gcaron ; G 413 +U 488 ; WX 602 ; N uni01E8 ; G 414 +U 489 ; WX 602 ; N uni01E9 ; G 415 +U 490 ; WX 602 ; N uni01EA ; G 416 +U 491 ; WX 602 ; N uni01EB ; G 417 +U 492 ; WX 602 ; N uni01EC ; G 418 +U 493 ; WX 602 ; N uni01ED ; G 419 +U 494 ; WX 602 ; N uni01EE ; G 420 +U 495 ; WX 602 ; N uni01EF ; G 421 +U 500 ; WX 602 ; N uni01F4 ; G 422 +U 501 ; WX 602 ; N uni01F5 ; G 423 +U 502 ; WX 602 ; N uni01F6 ; G 424 +U 504 ; WX 602 ; N uni01F8 ; G 425 +U 505 ; WX 602 ; N uni01F9 ; G 426 +U 508 ; WX 602 ; N AEacute ; G 427 +U 509 ; WX 602 ; N aeacute ; G 428 +U 510 ; WX 602 ; N Oslashacute ; G 429 +U 511 ; WX 602 ; N oslashacute ; G 430 +U 512 ; WX 602 ; N uni0200 ; G 431 +U 513 ; WX 602 ; N uni0201 ; G 432 +U 514 ; WX 602 ; N uni0202 ; G 433 +U 515 ; WX 602 ; N uni0203 ; G 434 +U 516 ; WX 602 ; N uni0204 ; G 435 +U 517 ; WX 602 ; N uni0205 ; G 436 +U 518 ; WX 602 ; N uni0206 ; G 437 +U 519 ; WX 602 ; N uni0207 ; G 438 +U 520 ; WX 602 ; N uni0208 ; G 439 +U 521 ; WX 602 ; N uni0209 ; G 440 +U 522 ; WX 602 ; N uni020A ; G 441 +U 523 ; WX 602 ; N uni020B ; G 442 +U 524 ; WX 602 ; N uni020C ; G 443 +U 525 ; WX 602 ; N uni020D ; G 444 +U 526 ; WX 602 ; N uni020E ; G 445 +U 527 ; WX 602 ; N uni020F ; G 446 +U 528 ; WX 602 ; N uni0210 ; G 447 +U 529 ; WX 602 ; N uni0211 ; G 448 +U 530 ; WX 602 ; N uni0212 ; G 449 +U 531 ; WX 602 ; N uni0213 ; G 450 +U 532 ; WX 602 ; N uni0214 ; G 451 +U 533 ; WX 602 ; N uni0215 ; G 452 +U 534 ; WX 602 ; N uni0216 ; G 453 +U 535 ; WX 602 ; N uni0217 ; G 454 +U 536 ; WX 602 ; N Scommaaccent ; G 455 +U 537 ; WX 602 ; N scommaaccent ; G 456 +U 538 ; WX 602 ; N uni021A ; G 457 +U 539 ; WX 602 ; N uni021B ; G 458 +U 540 ; WX 602 ; N uni021C ; G 459 +U 541 ; WX 602 ; N uni021D ; G 460 +U 542 ; WX 602 ; N uni021E ; G 461 +U 543 ; WX 602 ; N uni021F ; G 462 +U 545 ; WX 602 ; N uni0221 ; G 463 +U 548 ; WX 602 ; N uni0224 ; G 464 +U 549 ; WX 602 ; N uni0225 ; G 465 +U 550 ; WX 602 ; N uni0226 ; G 466 +U 551 ; WX 602 ; N uni0227 ; G 467 +U 552 ; WX 602 ; N uni0228 ; G 468 +U 553 ; WX 602 ; N uni0229 ; G 469 +U 554 ; WX 602 ; N uni022A ; G 470 +U 555 ; WX 602 ; N uni022B ; G 471 +U 556 ; WX 602 ; N uni022C ; G 472 +U 557 ; WX 602 ; N uni022D ; G 473 +U 558 ; WX 602 ; N uni022E ; G 474 +U 559 ; WX 602 ; N uni022F ; G 475 +U 560 ; WX 602 ; N uni0230 ; G 476 +U 561 ; WX 602 ; N uni0231 ; G 477 +U 562 ; WX 602 ; N uni0232 ; G 478 +U 563 ; WX 602 ; N uni0233 ; G 479 +U 564 ; WX 602 ; N uni0234 ; G 480 +U 565 ; WX 602 ; N uni0235 ; G 481 +U 566 ; WX 602 ; N uni0236 ; G 482 +U 567 ; WX 602 ; N dotlessj ; G 483 +U 568 ; WX 602 ; N uni0238 ; G 484 +U 569 ; WX 602 ; N uni0239 ; G 485 +U 570 ; WX 602 ; N uni023A ; G 486 +U 571 ; WX 602 ; N uni023B ; G 487 +U 572 ; WX 602 ; N uni023C ; G 488 +U 573 ; WX 602 ; N uni023D ; G 489 +U 574 ; WX 602 ; N uni023E ; G 490 +U 575 ; WX 602 ; N uni023F ; G 491 +U 576 ; WX 602 ; N uni0240 ; G 492 +U 577 ; WX 602 ; N uni0241 ; G 493 +U 579 ; WX 602 ; N uni0243 ; G 494 +U 580 ; WX 602 ; N uni0244 ; G 495 +U 581 ; WX 602 ; N uni0245 ; G 496 +U 588 ; WX 602 ; N uni024C ; G 497 +U 589 ; WX 602 ; N uni024D ; G 498 +U 592 ; WX 602 ; N uni0250 ; G 499 +U 593 ; WX 602 ; N uni0251 ; G 500 +U 594 ; WX 602 ; N uni0252 ; G 501 +U 595 ; WX 602 ; N uni0253 ; G 502 +U 596 ; WX 602 ; N uni0254 ; G 503 +U 597 ; WX 602 ; N uni0255 ; G 504 +U 598 ; WX 602 ; N uni0256 ; G 505 +U 599 ; WX 602 ; N uni0257 ; G 506 +U 600 ; WX 602 ; N uni0258 ; G 507 +U 601 ; WX 602 ; N uni0259 ; G 508 +U 602 ; WX 602 ; N uni025A ; G 509 +U 603 ; WX 602 ; N uni025B ; G 510 +U 604 ; WX 602 ; N uni025C ; G 511 +U 605 ; WX 602 ; N uni025D ; G 512 +U 606 ; WX 602 ; N uni025E ; G 513 +U 607 ; WX 602 ; N uni025F ; G 514 +U 608 ; WX 602 ; N uni0260 ; G 515 +U 609 ; WX 602 ; N uni0261 ; G 516 +U 610 ; WX 602 ; N uni0262 ; G 517 +U 611 ; WX 602 ; N uni0263 ; G 518 +U 612 ; WX 602 ; N uni0264 ; G 519 +U 613 ; WX 602 ; N uni0265 ; G 520 +U 614 ; WX 602 ; N uni0266 ; G 521 +U 615 ; WX 602 ; N uni0267 ; G 522 +U 616 ; WX 602 ; N uni0268 ; G 523 +U 617 ; WX 602 ; N uni0269 ; G 524 +U 618 ; WX 602 ; N uni026A ; G 525 +U 619 ; WX 602 ; N uni026B ; G 526 +U 620 ; WX 602 ; N uni026C ; G 527 +U 621 ; WX 602 ; N uni026D ; G 528 +U 622 ; WX 602 ; N uni026E ; G 529 +U 623 ; WX 602 ; N uni026F ; G 530 +U 624 ; WX 602 ; N uni0270 ; G 531 +U 625 ; WX 602 ; N uni0271 ; G 532 +U 626 ; WX 602 ; N uni0272 ; G 533 +U 627 ; WX 602 ; N uni0273 ; G 534 +U 628 ; WX 602 ; N uni0274 ; G 535 +U 629 ; WX 602 ; N uni0275 ; G 536 +U 630 ; WX 602 ; N uni0276 ; G 537 +U 631 ; WX 602 ; N uni0277 ; G 538 +U 632 ; WX 602 ; N uni0278 ; G 539 +U 633 ; WX 602 ; N uni0279 ; G 540 +U 634 ; WX 602 ; N uni027A ; G 541 +U 635 ; WX 602 ; N uni027B ; G 542 +U 636 ; WX 602 ; N uni027C ; G 543 +U 637 ; WX 602 ; N uni027D ; G 544 +U 638 ; WX 602 ; N uni027E ; G 545 +U 639 ; WX 602 ; N uni027F ; G 546 +U 640 ; WX 602 ; N uni0280 ; G 547 +U 641 ; WX 602 ; N uni0281 ; G 548 +U 642 ; WX 602 ; N uni0282 ; G 549 +U 643 ; WX 602 ; N uni0283 ; G 550 +U 644 ; WX 602 ; N uni0284 ; G 551 +U 645 ; WX 602 ; N uni0285 ; G 552 +U 646 ; WX 602 ; N uni0286 ; G 553 +U 647 ; WX 602 ; N uni0287 ; G 554 +U 648 ; WX 602 ; N uni0288 ; G 555 +U 649 ; WX 602 ; N uni0289 ; G 556 +U 650 ; WX 602 ; N uni028A ; G 557 +U 651 ; WX 602 ; N uni028B ; G 558 +U 652 ; WX 602 ; N uni028C ; G 559 +U 653 ; WX 602 ; N uni028D ; G 560 +U 654 ; WX 602 ; N uni028E ; G 561 +U 655 ; WX 602 ; N uni028F ; G 562 +U 656 ; WX 602 ; N uni0290 ; G 563 +U 657 ; WX 602 ; N uni0291 ; G 564 +U 658 ; WX 602 ; N uni0292 ; G 565 +U 659 ; WX 602 ; N uni0293 ; G 566 +U 660 ; WX 602 ; N uni0294 ; G 567 +U 661 ; WX 602 ; N uni0295 ; G 568 +U 662 ; WX 602 ; N uni0296 ; G 569 +U 663 ; WX 602 ; N uni0297 ; G 570 +U 664 ; WX 602 ; N uni0298 ; G 571 +U 665 ; WX 602 ; N uni0299 ; G 572 +U 666 ; WX 602 ; N uni029A ; G 573 +U 667 ; WX 602 ; N uni029B ; G 574 +U 668 ; WX 602 ; N uni029C ; G 575 +U 669 ; WX 602 ; N uni029D ; G 576 +U 670 ; WX 602 ; N uni029E ; G 577 +U 671 ; WX 602 ; N uni029F ; G 578 +U 672 ; WX 602 ; N uni02A0 ; G 579 +U 673 ; WX 602 ; N uni02A1 ; G 580 +U 674 ; WX 602 ; N uni02A2 ; G 581 +U 675 ; WX 602 ; N uni02A3 ; G 582 +U 676 ; WX 602 ; N uni02A4 ; G 583 +U 677 ; WX 602 ; N uni02A5 ; G 584 +U 678 ; WX 602 ; N uni02A6 ; G 585 +U 679 ; WX 602 ; N uni02A7 ; G 586 +U 680 ; WX 602 ; N uni02A8 ; G 587 +U 681 ; WX 602 ; N uni02A9 ; G 588 +U 682 ; WX 602 ; N uni02AA ; G 589 +U 683 ; WX 602 ; N uni02AB ; G 590 +U 684 ; WX 602 ; N uni02AC ; G 591 +U 685 ; WX 602 ; N uni02AD ; G 592 +U 686 ; WX 602 ; N uni02AE ; G 593 +U 687 ; WX 602 ; N uni02AF ; G 594 +U 688 ; WX 602 ; N uni02B0 ; G 595 +U 689 ; WX 602 ; N uni02B1 ; G 596 +U 690 ; WX 602 ; N uni02B2 ; G 597 +U 691 ; WX 602 ; N uni02B3 ; G 598 +U 692 ; WX 602 ; N uni02B4 ; G 599 +U 693 ; WX 602 ; N uni02B5 ; G 600 +U 694 ; WX 602 ; N uni02B6 ; G 601 +U 695 ; WX 602 ; N uni02B7 ; G 602 +U 696 ; WX 602 ; N uni02B8 ; G 603 +U 697 ; WX 602 ; N uni02B9 ; G 604 +U 699 ; WX 602 ; N uni02BB ; G 605 +U 700 ; WX 602 ; N uni02BC ; G 606 +U 701 ; WX 602 ; N uni02BD ; G 607 +U 702 ; WX 602 ; N uni02BE ; G 608 +U 703 ; WX 602 ; N uni02BF ; G 609 +U 704 ; WX 602 ; N uni02C0 ; G 610 +U 705 ; WX 602 ; N uni02C1 ; G 611 +U 710 ; WX 602 ; N circumflex ; G 612 +U 711 ; WX 602 ; N caron ; G 613 +U 712 ; WX 602 ; N uni02C8 ; G 614 +U 713 ; WX 602 ; N uni02C9 ; G 615 +U 716 ; WX 602 ; N uni02CC ; G 616 +U 717 ; WX 602 ; N uni02CD ; G 617 +U 718 ; WX 602 ; N uni02CE ; G 618 +U 719 ; WX 602 ; N uni02CF ; G 619 +U 720 ; WX 602 ; N uni02D0 ; G 620 +U 721 ; WX 602 ; N uni02D1 ; G 621 +U 722 ; WX 602 ; N uni02D2 ; G 622 +U 723 ; WX 602 ; N uni02D3 ; G 623 +U 726 ; WX 602 ; N uni02D6 ; G 624 +U 727 ; WX 602 ; N uni02D7 ; G 625 +U 728 ; WX 602 ; N breve ; G 626 +U 729 ; WX 602 ; N dotaccent ; G 627 +U 730 ; WX 602 ; N ring ; G 628 +U 731 ; WX 602 ; N ogonek ; G 629 +U 732 ; WX 602 ; N tilde ; G 630 +U 733 ; WX 602 ; N hungarumlaut ; G 631 +U 734 ; WX 602 ; N uni02DE ; G 632 +U 736 ; WX 602 ; N uni02E0 ; G 633 +U 737 ; WX 602 ; N uni02E1 ; G 634 +U 738 ; WX 602 ; N uni02E2 ; G 635 +U 739 ; WX 602 ; N uni02E3 ; G 636 +U 740 ; WX 602 ; N uni02E4 ; G 637 +U 741 ; WX 602 ; N uni02E5 ; G 638 +U 742 ; WX 602 ; N uni02E6 ; G 639 +U 743 ; WX 602 ; N uni02E7 ; G 640 +U 744 ; WX 602 ; N uni02E8 ; G 641 +U 745 ; WX 602 ; N uni02E9 ; G 642 +U 750 ; WX 602 ; N uni02EE ; G 643 +U 755 ; WX 602 ; N uni02F3 ; G 644 +U 768 ; WX 602 ; N gravecomb ; G 645 +U 769 ; WX 602 ; N acutecomb ; G 646 +U 770 ; WX 602 ; N uni0302 ; G 647 +U 771 ; WX 602 ; N tildecomb ; G 648 +U 772 ; WX 602 ; N uni0304 ; G 649 +U 773 ; WX 602 ; N uni0305 ; G 650 +U 774 ; WX 602 ; N uni0306 ; G 651 +U 775 ; WX 602 ; N uni0307 ; G 652 +U 776 ; WX 602 ; N uni0308 ; G 653 +U 777 ; WX 602 ; N hookabovecomb ; G 654 +U 778 ; WX 602 ; N uni030A ; G 655 +U 779 ; WX 602 ; N uni030B ; G 656 +U 780 ; WX 602 ; N uni030C ; G 657 +U 781 ; WX 602 ; N uni030D ; G 658 +U 782 ; WX 602 ; N uni030E ; G 659 +U 783 ; WX 602 ; N uni030F ; G 660 +U 784 ; WX 602 ; N uni0310 ; G 661 +U 785 ; WX 602 ; N uni0311 ; G 662 +U 786 ; WX 602 ; N uni0312 ; G 663 +U 787 ; WX 602 ; N uni0313 ; G 664 +U 788 ; WX 602 ; N uni0314 ; G 665 +U 789 ; WX 602 ; N uni0315 ; G 666 +U 790 ; WX 602 ; N uni0316 ; G 667 +U 791 ; WX 602 ; N uni0317 ; G 668 +U 792 ; WX 602 ; N uni0318 ; G 669 +U 793 ; WX 602 ; N uni0319 ; G 670 +U 794 ; WX 602 ; N uni031A ; G 671 +U 795 ; WX 602 ; N uni031B ; G 672 +U 796 ; WX 602 ; N uni031C ; G 673 +U 797 ; WX 602 ; N uni031D ; G 674 +U 798 ; WX 602 ; N uni031E ; G 675 +U 799 ; WX 602 ; N uni031F ; G 676 +U 800 ; WX 602 ; N uni0320 ; G 677 +U 801 ; WX 602 ; N uni0321 ; G 678 +U 802 ; WX 602 ; N uni0322 ; G 679 +U 803 ; WX 602 ; N dotbelowcomb ; G 680 +U 804 ; WX 602 ; N uni0324 ; G 681 +U 805 ; WX 602 ; N uni0325 ; G 682 +U 806 ; WX 602 ; N uni0326 ; G 683 +U 807 ; WX 602 ; N uni0327 ; G 684 +U 808 ; WX 602 ; N uni0328 ; G 685 +U 809 ; WX 602 ; N uni0329 ; G 686 +U 810 ; WX 602 ; N uni032A ; G 687 +U 811 ; WX 602 ; N uni032B ; G 688 +U 812 ; WX 602 ; N uni032C ; G 689 +U 813 ; WX 602 ; N uni032D ; G 690 +U 814 ; WX 602 ; N uni032E ; G 691 +U 815 ; WX 602 ; N uni032F ; G 692 +U 816 ; WX 602 ; N uni0330 ; G 693 +U 817 ; WX 602 ; N uni0331 ; G 694 +U 818 ; WX 602 ; N uni0332 ; G 695 +U 819 ; WX 602 ; N uni0333 ; G 696 +U 820 ; WX 602 ; N uni0334 ; G 697 +U 821 ; WX 602 ; N uni0335 ; G 698 +U 822 ; WX 602 ; N uni0336 ; G 699 +U 823 ; WX 602 ; N uni0337 ; G 700 +U 824 ; WX 602 ; N uni0338 ; G 701 +U 825 ; WX 602 ; N uni0339 ; G 702 +U 826 ; WX 602 ; N uni033A ; G 703 +U 827 ; WX 602 ; N uni033B ; G 704 +U 828 ; WX 602 ; N uni033C ; G 705 +U 829 ; WX 602 ; N uni033D ; G 706 +U 830 ; WX 602 ; N uni033E ; G 707 +U 831 ; WX 602 ; N uni033F ; G 708 +U 835 ; WX 602 ; N uni0343 ; G 709 +U 856 ; WX 602 ; N uni0358 ; G 710 +U 865 ; WX 602 ; N uni0361 ; G 711 +U 884 ; WX 602 ; N uni0374 ; G 712 +U 885 ; WX 602 ; N uni0375 ; G 713 +U 886 ; WX 602 ; N uni0376 ; G 714 +U 887 ; WX 602 ; N uni0377 ; G 715 +U 890 ; WX 602 ; N uni037A ; G 716 +U 891 ; WX 602 ; N uni037B ; G 717 +U 892 ; WX 602 ; N uni037C ; G 718 +U 893 ; WX 602 ; N uni037D ; G 719 +U 894 ; WX 602 ; N uni037E ; G 720 +U 895 ; WX 602 ; N uni037F ; G 721 +U 900 ; WX 602 ; N tonos ; G 722 +U 901 ; WX 602 ; N dieresistonos ; G 723 +U 902 ; WX 602 ; N Alphatonos ; G 724 +U 903 ; WX 602 ; N anoteleia ; G 725 +U 904 ; WX 602 ; N Epsilontonos ; G 726 +U 905 ; WX 602 ; N Etatonos ; G 727 +U 906 ; WX 602 ; N Iotatonos ; G 728 +U 908 ; WX 602 ; N Omicrontonos ; G 729 +U 910 ; WX 602 ; N Upsilontonos ; G 730 +U 911 ; WX 602 ; N Omegatonos ; G 731 +U 912 ; WX 602 ; N iotadieresistonos ; G 732 +U 913 ; WX 602 ; N Alpha ; G 733 +U 914 ; WX 602 ; N Beta ; G 734 +U 915 ; WX 602 ; N Gamma ; G 735 +U 916 ; WX 602 ; N uni0394 ; G 736 +U 917 ; WX 602 ; N Epsilon ; G 737 +U 918 ; WX 602 ; N Zeta ; G 738 +U 919 ; WX 602 ; N Eta ; G 739 +U 920 ; WX 602 ; N Theta ; G 740 +U 921 ; WX 602 ; N Iota ; G 741 +U 922 ; WX 602 ; N Kappa ; G 742 +U 923 ; WX 602 ; N Lambda ; G 743 +U 924 ; WX 602 ; N Mu ; G 744 +U 925 ; WX 602 ; N Nu ; G 745 +U 926 ; WX 602 ; N Xi ; G 746 +U 927 ; WX 602 ; N Omicron ; G 747 +U 928 ; WX 602 ; N Pi ; G 748 +U 929 ; WX 602 ; N Rho ; G 749 +U 931 ; WX 602 ; N Sigma ; G 750 +U 932 ; WX 602 ; N Tau ; G 751 +U 933 ; WX 602 ; N Upsilon ; G 752 +U 934 ; WX 602 ; N Phi ; G 753 +U 935 ; WX 602 ; N Chi ; G 754 +U 936 ; WX 602 ; N Psi ; G 755 +U 937 ; WX 602 ; N Omega ; G 756 +U 938 ; WX 602 ; N Iotadieresis ; G 757 +U 939 ; WX 602 ; N Upsilondieresis ; G 758 +U 940 ; WX 602 ; N alphatonos ; G 759 +U 941 ; WX 602 ; N epsilontonos ; G 760 +U 942 ; WX 602 ; N etatonos ; G 761 +U 943 ; WX 602 ; N iotatonos ; G 762 +U 944 ; WX 602 ; N upsilondieresistonos ; G 763 +U 945 ; WX 602 ; N alpha ; G 764 +U 946 ; WX 602 ; N beta ; G 765 +U 947 ; WX 602 ; N gamma ; G 766 +U 948 ; WX 602 ; N delta ; G 767 +U 949 ; WX 602 ; N epsilon ; G 768 +U 950 ; WX 602 ; N zeta ; G 769 +U 951 ; WX 602 ; N eta ; G 770 +U 952 ; WX 602 ; N theta ; G 771 +U 953 ; WX 602 ; N iota ; G 772 +U 954 ; WX 602 ; N kappa ; G 773 +U 955 ; WX 602 ; N lambda ; G 774 +U 956 ; WX 602 ; N uni03BC ; G 775 +U 957 ; WX 602 ; N nu ; G 776 +U 958 ; WX 602 ; N xi ; G 777 +U 959 ; WX 602 ; N omicron ; G 778 +U 960 ; WX 602 ; N pi ; G 779 +U 961 ; WX 602 ; N rho ; G 780 +U 962 ; WX 602 ; N sigma1 ; G 781 +U 963 ; WX 602 ; N sigma ; G 782 +U 964 ; WX 602 ; N tau ; G 783 +U 965 ; WX 602 ; N upsilon ; G 784 +U 966 ; WX 602 ; N phi ; G 785 +U 967 ; WX 602 ; N chi ; G 786 +U 968 ; WX 602 ; N psi ; G 787 +U 969 ; WX 602 ; N omega ; G 788 +U 970 ; WX 602 ; N iotadieresis ; G 789 +U 971 ; WX 602 ; N upsilondieresis ; G 790 +U 972 ; WX 602 ; N omicrontonos ; G 791 +U 973 ; WX 602 ; N upsilontonos ; G 792 +U 974 ; WX 602 ; N omegatonos ; G 793 +U 976 ; WX 602 ; N uni03D0 ; G 794 +U 977 ; WX 602 ; N theta1 ; G 795 +U 978 ; WX 602 ; N Upsilon1 ; G 796 +U 979 ; WX 602 ; N uni03D3 ; G 797 +U 980 ; WX 602 ; N uni03D4 ; G 798 +U 981 ; WX 602 ; N phi1 ; G 799 +U 982 ; WX 602 ; N omega1 ; G 800 +U 983 ; WX 602 ; N uni03D7 ; G 801 +U 984 ; WX 602 ; N uni03D8 ; G 802 +U 985 ; WX 602 ; N uni03D9 ; G 803 +U 986 ; WX 602 ; N uni03DA ; G 804 +U 987 ; WX 602 ; N uni03DB ; G 805 +U 988 ; WX 602 ; N uni03DC ; G 806 +U 989 ; WX 602 ; N uni03DD ; G 807 +U 990 ; WX 602 ; N uni03DE ; G 808 +U 991 ; WX 602 ; N uni03DF ; G 809 +U 992 ; WX 602 ; N uni03E0 ; G 810 +U 993 ; WX 602 ; N uni03E1 ; G 811 +U 1008 ; WX 602 ; N uni03F0 ; G 812 +U 1009 ; WX 602 ; N uni03F1 ; G 813 +U 1010 ; WX 602 ; N uni03F2 ; G 814 +U 1011 ; WX 602 ; N uni03F3 ; G 815 +U 1012 ; WX 602 ; N uni03F4 ; G 816 +U 1013 ; WX 602 ; N uni03F5 ; G 817 +U 1014 ; WX 602 ; N uni03F6 ; G 818 +U 1015 ; WX 602 ; N uni03F7 ; G 819 +U 1016 ; WX 602 ; N uni03F8 ; G 820 +U 1017 ; WX 602 ; N uni03F9 ; G 821 +U 1018 ; WX 602 ; N uni03FA ; G 822 +U 1019 ; WX 602 ; N uni03FB ; G 823 +U 1020 ; WX 602 ; N uni03FC ; G 824 +U 1021 ; WX 602 ; N uni03FD ; G 825 +U 1022 ; WX 602 ; N uni03FE ; G 826 +U 1023 ; WX 602 ; N uni03FF ; G 827 +U 1024 ; WX 602 ; N uni0400 ; G 828 +U 1025 ; WX 602 ; N uni0401 ; G 829 +U 1026 ; WX 602 ; N uni0402 ; G 830 +U 1027 ; WX 602 ; N uni0403 ; G 831 +U 1028 ; WX 602 ; N uni0404 ; G 832 +U 1029 ; WX 602 ; N uni0405 ; G 833 +U 1030 ; WX 602 ; N uni0406 ; G 834 +U 1031 ; WX 602 ; N uni0407 ; G 835 +U 1032 ; WX 602 ; N uni0408 ; G 836 +U 1033 ; WX 602 ; N uni0409 ; G 837 +U 1034 ; WX 602 ; N uni040A ; G 838 +U 1035 ; WX 602 ; N uni040B ; G 839 +U 1036 ; WX 602 ; N uni040C ; G 840 +U 1037 ; WX 602 ; N uni040D ; G 841 +U 1038 ; WX 602 ; N uni040E ; G 842 +U 1039 ; WX 602 ; N uni040F ; G 843 +U 1040 ; WX 602 ; N uni0410 ; G 844 +U 1041 ; WX 602 ; N uni0411 ; G 845 +U 1042 ; WX 602 ; N uni0412 ; G 846 +U 1043 ; WX 602 ; N uni0413 ; G 847 +U 1044 ; WX 602 ; N uni0414 ; G 848 +U 1045 ; WX 602 ; N uni0415 ; G 849 +U 1046 ; WX 602 ; N uni0416 ; G 850 +U 1047 ; WX 602 ; N uni0417 ; G 851 +U 1048 ; WX 602 ; N uni0418 ; G 852 +U 1049 ; WX 602 ; N uni0419 ; G 853 +U 1050 ; WX 602 ; N uni041A ; G 854 +U 1051 ; WX 602 ; N uni041B ; G 855 +U 1052 ; WX 602 ; N uni041C ; G 856 +U 1053 ; WX 602 ; N uni041D ; G 857 +U 1054 ; WX 602 ; N uni041E ; G 858 +U 1055 ; WX 602 ; N uni041F ; G 859 +U 1056 ; WX 602 ; N uni0420 ; G 860 +U 1057 ; WX 602 ; N uni0421 ; G 861 +U 1058 ; WX 602 ; N uni0422 ; G 862 +U 1059 ; WX 602 ; N uni0423 ; G 863 +U 1060 ; WX 602 ; N uni0424 ; G 864 +U 1061 ; WX 602 ; N uni0425 ; G 865 +U 1062 ; WX 602 ; N uni0426 ; G 866 +U 1063 ; WX 602 ; N uni0427 ; G 867 +U 1064 ; WX 602 ; N uni0428 ; G 868 +U 1065 ; WX 602 ; N uni0429 ; G 869 +U 1066 ; WX 602 ; N uni042A ; G 870 +U 1067 ; WX 602 ; N uni042B ; G 871 +U 1068 ; WX 602 ; N uni042C ; G 872 +U 1069 ; WX 602 ; N uni042D ; G 873 +U 1070 ; WX 602 ; N uni042E ; G 874 +U 1071 ; WX 602 ; N uni042F ; G 875 +U 1072 ; WX 602 ; N uni0430 ; G 876 +U 1073 ; WX 602 ; N uni0431 ; G 877 +U 1074 ; WX 602 ; N uni0432 ; G 878 +U 1075 ; WX 602 ; N uni0433 ; G 879 +U 1076 ; WX 602 ; N uni0434 ; G 880 +U 1077 ; WX 602 ; N uni0435 ; G 881 +U 1078 ; WX 602 ; N uni0436 ; G 882 +U 1079 ; WX 602 ; N uni0437 ; G 883 +U 1080 ; WX 602 ; N uni0438 ; G 884 +U 1081 ; WX 602 ; N uni0439 ; G 885 +U 1082 ; WX 602 ; N uni043A ; G 886 +U 1083 ; WX 602 ; N uni043B ; G 887 +U 1084 ; WX 602 ; N uni043C ; G 888 +U 1085 ; WX 602 ; N uni043D ; G 889 +U 1086 ; WX 602 ; N uni043E ; G 890 +U 1087 ; WX 602 ; N uni043F ; G 891 +U 1088 ; WX 602 ; N uni0440 ; G 892 +U 1089 ; WX 602 ; N uni0441 ; G 893 +U 1090 ; WX 602 ; N uni0442 ; G 894 +U 1091 ; WX 602 ; N uni0443 ; G 895 +U 1092 ; WX 602 ; N uni0444 ; G 896 +U 1093 ; WX 602 ; N uni0445 ; G 897 +U 1094 ; WX 602 ; N uni0446 ; G 898 +U 1095 ; WX 602 ; N uni0447 ; G 899 +U 1096 ; WX 602 ; N uni0448 ; G 900 +U 1097 ; WX 602 ; N uni0449 ; G 901 +U 1098 ; WX 602 ; N uni044A ; G 902 +U 1099 ; WX 602 ; N uni044B ; G 903 +U 1100 ; WX 602 ; N uni044C ; G 904 +U 1101 ; WX 602 ; N uni044D ; G 905 +U 1102 ; WX 602 ; N uni044E ; G 906 +U 1103 ; WX 602 ; N uni044F ; G 907 +U 1104 ; WX 602 ; N uni0450 ; G 908 +U 1105 ; WX 602 ; N uni0451 ; G 909 +U 1106 ; WX 602 ; N uni0452 ; G 910 +U 1107 ; WX 602 ; N uni0453 ; G 911 +U 1108 ; WX 602 ; N uni0454 ; G 912 +U 1109 ; WX 602 ; N uni0455 ; G 913 +U 1110 ; WX 602 ; N uni0456 ; G 914 +U 1111 ; WX 602 ; N uni0457 ; G 915 +U 1112 ; WX 602 ; N uni0458 ; G 916 +U 1113 ; WX 602 ; N uni0459 ; G 917 +U 1114 ; WX 602 ; N uni045A ; G 918 +U 1115 ; WX 602 ; N uni045B ; G 919 +U 1116 ; WX 602 ; N uni045C ; G 920 +U 1117 ; WX 602 ; N uni045D ; G 921 +U 1118 ; WX 602 ; N uni045E ; G 922 +U 1119 ; WX 602 ; N uni045F ; G 923 +U 1122 ; WX 602 ; N uni0462 ; G 924 +U 1123 ; WX 602 ; N uni0463 ; G 925 +U 1138 ; WX 602 ; N uni0472 ; G 926 +U 1139 ; WX 602 ; N uni0473 ; G 927 +U 1168 ; WX 602 ; N uni0490 ; G 928 +U 1169 ; WX 602 ; N uni0491 ; G 929 +U 1170 ; WX 602 ; N uni0492 ; G 930 +U 1171 ; WX 602 ; N uni0493 ; G 931 +U 1172 ; WX 602 ; N uni0494 ; G 932 +U 1173 ; WX 602 ; N uni0495 ; G 933 +U 1174 ; WX 602 ; N uni0496 ; G 934 +U 1175 ; WX 602 ; N uni0497 ; G 935 +U 1176 ; WX 602 ; N uni0498 ; G 936 +U 1177 ; WX 602 ; N uni0499 ; G 937 +U 1178 ; WX 602 ; N uni049A ; G 938 +U 1179 ; WX 602 ; N uni049B ; G 939 +U 1186 ; WX 602 ; N uni04A2 ; G 940 +U 1187 ; WX 602 ; N uni04A3 ; G 941 +U 1188 ; WX 602 ; N uni04A4 ; G 942 +U 1189 ; WX 602 ; N uni04A5 ; G 943 +U 1194 ; WX 602 ; N uni04AA ; G 944 +U 1195 ; WX 602 ; N uni04AB ; G 945 +U 1196 ; WX 602 ; N uni04AC ; G 946 +U 1197 ; WX 602 ; N uni04AD ; G 947 +U 1198 ; WX 602 ; N uni04AE ; G 948 +U 1199 ; WX 602 ; N uni04AF ; G 949 +U 1200 ; WX 602 ; N uni04B0 ; G 950 +U 1201 ; WX 602 ; N uni04B1 ; G 951 +U 1202 ; WX 602 ; N uni04B2 ; G 952 +U 1203 ; WX 602 ; N uni04B3 ; G 953 +U 1210 ; WX 602 ; N uni04BA ; G 954 +U 1211 ; WX 602 ; N uni04BB ; G 955 +U 1216 ; WX 602 ; N uni04C0 ; G 956 +U 1217 ; WX 602 ; N uni04C1 ; G 957 +U 1218 ; WX 602 ; N uni04C2 ; G 958 +U 1219 ; WX 602 ; N uni04C3 ; G 959 +U 1220 ; WX 602 ; N uni04C4 ; G 960 +U 1223 ; WX 602 ; N uni04C7 ; G 961 +U 1224 ; WX 602 ; N uni04C8 ; G 962 +U 1227 ; WX 602 ; N uni04CB ; G 963 +U 1228 ; WX 602 ; N uni04CC ; G 964 +U 1231 ; WX 602 ; N uni04CF ; G 965 +U 1232 ; WX 602 ; N uni04D0 ; G 966 +U 1233 ; WX 602 ; N uni04D1 ; G 967 +U 1234 ; WX 602 ; N uni04D2 ; G 968 +U 1235 ; WX 602 ; N uni04D3 ; G 969 +U 1236 ; WX 602 ; N uni04D4 ; G 970 +U 1237 ; WX 602 ; N uni04D5 ; G 971 +U 1238 ; WX 602 ; N uni04D6 ; G 972 +U 1239 ; WX 602 ; N uni04D7 ; G 973 +U 1240 ; WX 602 ; N uni04D8 ; G 974 +U 1241 ; WX 602 ; N uni04D9 ; G 975 +U 1242 ; WX 602 ; N uni04DA ; G 976 +U 1243 ; WX 602 ; N uni04DB ; G 977 +U 1244 ; WX 602 ; N uni04DC ; G 978 +U 1245 ; WX 602 ; N uni04DD ; G 979 +U 1246 ; WX 602 ; N uni04DE ; G 980 +U 1247 ; WX 602 ; N uni04DF ; G 981 +U 1248 ; WX 602 ; N uni04E0 ; G 982 +U 1249 ; WX 602 ; N uni04E1 ; G 983 +U 1250 ; WX 602 ; N uni04E2 ; G 984 +U 1251 ; WX 602 ; N uni04E3 ; G 985 +U 1252 ; WX 602 ; N uni04E4 ; G 986 +U 1253 ; WX 602 ; N uni04E5 ; G 987 +U 1254 ; WX 602 ; N uni04E6 ; G 988 +U 1255 ; WX 602 ; N uni04E7 ; G 989 +U 1256 ; WX 602 ; N uni04E8 ; G 990 +U 1257 ; WX 602 ; N uni04E9 ; G 991 +U 1258 ; WX 602 ; N uni04EA ; G 992 +U 1259 ; WX 602 ; N uni04EB ; G 993 +U 1260 ; WX 602 ; N uni04EC ; G 994 +U 1261 ; WX 602 ; N uni04ED ; G 995 +U 1262 ; WX 602 ; N uni04EE ; G 996 +U 1263 ; WX 602 ; N uni04EF ; G 997 +U 1264 ; WX 602 ; N uni04F0 ; G 998 +U 1265 ; WX 602 ; N uni04F1 ; G 999 +U 1266 ; WX 602 ; N uni04F2 ; G 1000 +U 1267 ; WX 602 ; N uni04F3 ; G 1001 +U 1268 ; WX 602 ; N uni04F4 ; G 1002 +U 1269 ; WX 602 ; N uni04F5 ; G 1003 +U 1270 ; WX 602 ; N uni04F6 ; G 1004 +U 1271 ; WX 602 ; N uni04F7 ; G 1005 +U 1272 ; WX 602 ; N uni04F8 ; G 1006 +U 1273 ; WX 602 ; N uni04F9 ; G 1007 +U 1296 ; WX 602 ; N uni0510 ; G 1008 +U 1297 ; WX 602 ; N uni0511 ; G 1009 +U 1306 ; WX 602 ; N uni051A ; G 1010 +U 1307 ; WX 602 ; N uni051B ; G 1011 +U 1308 ; WX 602 ; N uni051C ; G 1012 +U 1309 ; WX 602 ; N uni051D ; G 1013 +U 1329 ; WX 602 ; N uni0531 ; G 1014 +U 1330 ; WX 602 ; N uni0532 ; G 1015 +U 1331 ; WX 602 ; N uni0533 ; G 1016 +U 1332 ; WX 602 ; N uni0534 ; G 1017 +U 1333 ; WX 602 ; N uni0535 ; G 1018 +U 1334 ; WX 602 ; N uni0536 ; G 1019 +U 1335 ; WX 602 ; N uni0537 ; G 1020 +U 1336 ; WX 602 ; N uni0538 ; G 1021 +U 1337 ; WX 602 ; N uni0539 ; G 1022 +U 1338 ; WX 602 ; N uni053A ; G 1023 +U 1339 ; WX 602 ; N uni053B ; G 1024 +U 1340 ; WX 602 ; N uni053C ; G 1025 +U 1341 ; WX 602 ; N uni053D ; G 1026 +U 1342 ; WX 602 ; N uni053E ; G 1027 +U 1343 ; WX 602 ; N uni053F ; G 1028 +U 1344 ; WX 602 ; N uni0540 ; G 1029 +U 1345 ; WX 602 ; N uni0541 ; G 1030 +U 1346 ; WX 602 ; N uni0542 ; G 1031 +U 1347 ; WX 602 ; N uni0543 ; G 1032 +U 1348 ; WX 602 ; N uni0544 ; G 1033 +U 1349 ; WX 602 ; N uni0545 ; G 1034 +U 1350 ; WX 602 ; N uni0546 ; G 1035 +U 1351 ; WX 602 ; N uni0547 ; G 1036 +U 1352 ; WX 602 ; N uni0548 ; G 1037 +U 1353 ; WX 602 ; N uni0549 ; G 1038 +U 1354 ; WX 602 ; N uni054A ; G 1039 +U 1355 ; WX 602 ; N uni054B ; G 1040 +U 1356 ; WX 602 ; N uni054C ; G 1041 +U 1357 ; WX 602 ; N uni054D ; G 1042 +U 1358 ; WX 602 ; N uni054E ; G 1043 +U 1359 ; WX 602 ; N uni054F ; G 1044 +U 1360 ; WX 602 ; N uni0550 ; G 1045 +U 1361 ; WX 602 ; N uni0551 ; G 1046 +U 1362 ; WX 602 ; N uni0552 ; G 1047 +U 1363 ; WX 602 ; N uni0553 ; G 1048 +U 1364 ; WX 602 ; N uni0554 ; G 1049 +U 1365 ; WX 602 ; N uni0555 ; G 1050 +U 1366 ; WX 602 ; N uni0556 ; G 1051 +U 1369 ; WX 602 ; N uni0559 ; G 1052 +U 1370 ; WX 602 ; N uni055A ; G 1053 +U 1371 ; WX 602 ; N uni055B ; G 1054 +U 1372 ; WX 602 ; N uni055C ; G 1055 +U 1373 ; WX 602 ; N uni055D ; G 1056 +U 1374 ; WX 602 ; N uni055E ; G 1057 +U 1375 ; WX 602 ; N uni055F ; G 1058 +U 1377 ; WX 602 ; N uni0561 ; G 1059 +U 1378 ; WX 602 ; N uni0562 ; G 1060 +U 1379 ; WX 602 ; N uni0563 ; G 1061 +U 1380 ; WX 602 ; N uni0564 ; G 1062 +U 1381 ; WX 602 ; N uni0565 ; G 1063 +U 1382 ; WX 602 ; N uni0566 ; G 1064 +U 1383 ; WX 602 ; N uni0567 ; G 1065 +U 1384 ; WX 602 ; N uni0568 ; G 1066 +U 1385 ; WX 602 ; N uni0569 ; G 1067 +U 1386 ; WX 602 ; N uni056A ; G 1068 +U 1387 ; WX 602 ; N uni056B ; G 1069 +U 1388 ; WX 602 ; N uni056C ; G 1070 +U 1389 ; WX 602 ; N uni056D ; G 1071 +U 1390 ; WX 602 ; N uni056E ; G 1072 +U 1391 ; WX 602 ; N uni056F ; G 1073 +U 1392 ; WX 602 ; N uni0570 ; G 1074 +U 1393 ; WX 602 ; N uni0571 ; G 1075 +U 1394 ; WX 602 ; N uni0572 ; G 1076 +U 1395 ; WX 602 ; N uni0573 ; G 1077 +U 1396 ; WX 602 ; N uni0574 ; G 1078 +U 1397 ; WX 602 ; N uni0575 ; G 1079 +U 1398 ; WX 602 ; N uni0576 ; G 1080 +U 1399 ; WX 602 ; N uni0577 ; G 1081 +U 1400 ; WX 602 ; N uni0578 ; G 1082 +U 1401 ; WX 602 ; N uni0579 ; G 1083 +U 1402 ; WX 602 ; N uni057A ; G 1084 +U 1403 ; WX 602 ; N uni057B ; G 1085 +U 1404 ; WX 602 ; N uni057C ; G 1086 +U 1405 ; WX 602 ; N uni057D ; G 1087 +U 1406 ; WX 602 ; N uni057E ; G 1088 +U 1407 ; WX 602 ; N uni057F ; G 1089 +U 1408 ; WX 602 ; N uni0580 ; G 1090 +U 1409 ; WX 602 ; N uni0581 ; G 1091 +U 1410 ; WX 602 ; N uni0582 ; G 1092 +U 1411 ; WX 602 ; N uni0583 ; G 1093 +U 1412 ; WX 602 ; N uni0584 ; G 1094 +U 1413 ; WX 602 ; N uni0585 ; G 1095 +U 1414 ; WX 602 ; N uni0586 ; G 1096 +U 1415 ; WX 602 ; N uni0587 ; G 1097 +U 1417 ; WX 602 ; N uni0589 ; G 1098 +U 1418 ; WX 602 ; N uni058A ; G 1099 +U 3647 ; WX 602 ; N uni0E3F ; G 1100 +U 3713 ; WX 602 ; N uni0E81 ; G 1101 +U 3714 ; WX 602 ; N uni0E82 ; G 1102 +U 3716 ; WX 602 ; N uni0E84 ; G 1103 +U 3719 ; WX 602 ; N uni0E87 ; G 1104 +U 3720 ; WX 602 ; N uni0E88 ; G 1105 +U 3722 ; WX 602 ; N uni0E8A ; G 1106 +U 3725 ; WX 602 ; N uni0E8D ; G 1107 +U 3732 ; WX 602 ; N uni0E94 ; G 1108 +U 3733 ; WX 602 ; N uni0E95 ; G 1109 +U 3734 ; WX 602 ; N uni0E96 ; G 1110 +U 3735 ; WX 602 ; N uni0E97 ; G 1111 +U 3737 ; WX 602 ; N uni0E99 ; G 1112 +U 3738 ; WX 602 ; N uni0E9A ; G 1113 +U 3739 ; WX 602 ; N uni0E9B ; G 1114 +U 3740 ; WX 602 ; N uni0E9C ; G 1115 +U 3741 ; WX 602 ; N uni0E9D ; G 1116 +U 3742 ; WX 602 ; N uni0E9E ; G 1117 +U 3743 ; WX 602 ; N uni0E9F ; G 1118 +U 3745 ; WX 602 ; N uni0EA1 ; G 1119 +U 3746 ; WX 602 ; N uni0EA2 ; G 1120 +U 3747 ; WX 602 ; N uni0EA3 ; G 1121 +U 3749 ; WX 602 ; N uni0EA5 ; G 1122 +U 3751 ; WX 602 ; N uni0EA7 ; G 1123 +U 3754 ; WX 602 ; N uni0EAA ; G 1124 +U 3755 ; WX 602 ; N uni0EAB ; G 1125 +U 3757 ; WX 602 ; N uni0EAD ; G 1126 +U 3758 ; WX 602 ; N uni0EAE ; G 1127 +U 3759 ; WX 602 ; N uni0EAF ; G 1128 +U 3760 ; WX 602 ; N uni0EB0 ; G 1129 +U 3761 ; WX 602 ; N uni0EB1 ; G 1130 +U 3762 ; WX 602 ; N uni0EB2 ; G 1131 +U 3763 ; WX 602 ; N uni0EB3 ; G 1132 +U 3764 ; WX 602 ; N uni0EB4 ; G 1133 +U 3765 ; WX 602 ; N uni0EB5 ; G 1134 +U 3766 ; WX 602 ; N uni0EB6 ; G 1135 +U 3767 ; WX 602 ; N uni0EB7 ; G 1136 +U 3768 ; WX 602 ; N uni0EB8 ; G 1137 +U 3769 ; WX 602 ; N uni0EB9 ; G 1138 +U 3771 ; WX 602 ; N uni0EBB ; G 1139 +U 3772 ; WX 602 ; N uni0EBC ; G 1140 +U 3784 ; WX 602 ; N uni0EC8 ; G 1141 +U 3785 ; WX 602 ; N uni0EC9 ; G 1142 +U 3786 ; WX 602 ; N uni0ECA ; G 1143 +U 3787 ; WX 602 ; N uni0ECB ; G 1144 +U 3788 ; WX 602 ; N uni0ECC ; G 1145 +U 3789 ; WX 602 ; N uni0ECD ; G 1146 +U 4304 ; WX 602 ; N uni10D0 ; G 1147 +U 4305 ; WX 602 ; N uni10D1 ; G 1148 +U 4306 ; WX 602 ; N uni10D2 ; G 1149 +U 4307 ; WX 602 ; N uni10D3 ; G 1150 +U 4308 ; WX 602 ; N uni10D4 ; G 1151 +U 4309 ; WX 602 ; N uni10D5 ; G 1152 +U 4310 ; WX 602 ; N uni10D6 ; G 1153 +U 4311 ; WX 602 ; N uni10D7 ; G 1154 +U 4312 ; WX 602 ; N uni10D8 ; G 1155 +U 4313 ; WX 602 ; N uni10D9 ; G 1156 +U 4314 ; WX 602 ; N uni10DA ; G 1157 +U 4315 ; WX 602 ; N uni10DB ; G 1158 +U 4316 ; WX 602 ; N uni10DC ; G 1159 +U 4317 ; WX 602 ; N uni10DD ; G 1160 +U 4318 ; WX 602 ; N uni10DE ; G 1161 +U 4319 ; WX 602 ; N uni10DF ; G 1162 +U 4320 ; WX 602 ; N uni10E0 ; G 1163 +U 4321 ; WX 602 ; N uni10E1 ; G 1164 +U 4322 ; WX 602 ; N uni10E2 ; G 1165 +U 4323 ; WX 602 ; N uni10E3 ; G 1166 +U 4324 ; WX 602 ; N uni10E4 ; G 1167 +U 4325 ; WX 602 ; N uni10E5 ; G 1168 +U 4326 ; WX 602 ; N uni10E6 ; G 1169 +U 4327 ; WX 602 ; N uni10E7 ; G 1170 +U 4328 ; WX 602 ; N uni10E8 ; G 1171 +U 4329 ; WX 602 ; N uni10E9 ; G 1172 +U 4330 ; WX 602 ; N uni10EA ; G 1173 +U 4331 ; WX 602 ; N uni10EB ; G 1174 +U 4332 ; WX 602 ; N uni10EC ; G 1175 +U 4333 ; WX 602 ; N uni10ED ; G 1176 +U 4334 ; WX 602 ; N uni10EE ; G 1177 +U 4335 ; WX 602 ; N uni10EF ; G 1178 +U 4336 ; WX 602 ; N uni10F0 ; G 1179 +U 4337 ; WX 602 ; N uni10F1 ; G 1180 +U 4338 ; WX 602 ; N uni10F2 ; G 1181 +U 4339 ; WX 602 ; N uni10F3 ; G 1182 +U 4340 ; WX 602 ; N uni10F4 ; G 1183 +U 4341 ; WX 602 ; N uni10F5 ; G 1184 +U 4342 ; WX 602 ; N uni10F6 ; G 1185 +U 4343 ; WX 602 ; N uni10F7 ; G 1186 +U 4344 ; WX 602 ; N uni10F8 ; G 1187 +U 4345 ; WX 602 ; N uni10F9 ; G 1188 +U 4346 ; WX 602 ; N uni10FA ; G 1189 +U 4347 ; WX 602 ; N uni10FB ; G 1190 +U 4348 ; WX 602 ; N uni10FC ; G 1191 +U 7426 ; WX 602 ; N uni1D02 ; G 1192 +U 7432 ; WX 602 ; N uni1D08 ; G 1193 +U 7433 ; WX 602 ; N uni1D09 ; G 1194 +U 7444 ; WX 602 ; N uni1D14 ; G 1195 +U 7446 ; WX 602 ; N uni1D16 ; G 1196 +U 7447 ; WX 602 ; N uni1D17 ; G 1197 +U 7453 ; WX 602 ; N uni1D1D ; G 1198 +U 7454 ; WX 602 ; N uni1D1E ; G 1199 +U 7455 ; WX 602 ; N uni1D1F ; G 1200 +U 7468 ; WX 602 ; N uni1D2C ; G 1201 +U 7469 ; WX 602 ; N uni1D2D ; G 1202 +U 7470 ; WX 602 ; N uni1D2E ; G 1203 +U 7472 ; WX 602 ; N uni1D30 ; G 1204 +U 7473 ; WX 602 ; N uni1D31 ; G 1205 +U 7474 ; WX 602 ; N uni1D32 ; G 1206 +U 7475 ; WX 602 ; N uni1D33 ; G 1207 +U 7476 ; WX 602 ; N uni1D34 ; G 1208 +U 7477 ; WX 602 ; N uni1D35 ; G 1209 +U 7478 ; WX 602 ; N uni1D36 ; G 1210 +U 7479 ; WX 602 ; N uni1D37 ; G 1211 +U 7480 ; WX 602 ; N uni1D38 ; G 1212 +U 7481 ; WX 602 ; N uni1D39 ; G 1213 +U 7482 ; WX 602 ; N uni1D3A ; G 1214 +U 7483 ; WX 602 ; N uni1D3B ; G 1215 +U 7484 ; WX 602 ; N uni1D3C ; G 1216 +U 7485 ; WX 602 ; N uni1D3D ; G 1217 +U 7486 ; WX 602 ; N uni1D3E ; G 1218 +U 7487 ; WX 602 ; N uni1D3F ; G 1219 +U 7488 ; WX 602 ; N uni1D40 ; G 1220 +U 7489 ; WX 602 ; N uni1D41 ; G 1221 +U 7490 ; WX 602 ; N uni1D42 ; G 1222 +U 7491 ; WX 602 ; N uni1D43 ; G 1223 +U 7492 ; WX 602 ; N uni1D44 ; G 1224 +U 7493 ; WX 602 ; N uni1D45 ; G 1225 +U 7494 ; WX 602 ; N uni1D46 ; G 1226 +U 7495 ; WX 602 ; N uni1D47 ; G 1227 +U 7496 ; WX 602 ; N uni1D48 ; G 1228 +U 7497 ; WX 602 ; N uni1D49 ; G 1229 +U 7498 ; WX 602 ; N uni1D4A ; G 1230 +U 7499 ; WX 602 ; N uni1D4B ; G 1231 +U 7500 ; WX 602 ; N uni1D4C ; G 1232 +U 7501 ; WX 602 ; N uni1D4D ; G 1233 +U 7502 ; WX 602 ; N uni1D4E ; G 1234 +U 7503 ; WX 602 ; N uni1D4F ; G 1235 +U 7504 ; WX 602 ; N uni1D50 ; G 1236 +U 7505 ; WX 602 ; N uni1D51 ; G 1237 +U 7506 ; WX 602 ; N uni1D52 ; G 1238 +U 7507 ; WX 602 ; N uni1D53 ; G 1239 +U 7508 ; WX 602 ; N uni1D54 ; G 1240 +U 7509 ; WX 602 ; N uni1D55 ; G 1241 +U 7510 ; WX 602 ; N uni1D56 ; G 1242 +U 7511 ; WX 602 ; N uni1D57 ; G 1243 +U 7512 ; WX 602 ; N uni1D58 ; G 1244 +U 7513 ; WX 602 ; N uni1D59 ; G 1245 +U 7514 ; WX 602 ; N uni1D5A ; G 1246 +U 7515 ; WX 602 ; N uni1D5B ; G 1247 +U 7522 ; WX 602 ; N uni1D62 ; G 1248 +U 7523 ; WX 602 ; N uni1D63 ; G 1249 +U 7524 ; WX 602 ; N uni1D64 ; G 1250 +U 7525 ; WX 602 ; N uni1D65 ; G 1251 +U 7543 ; WX 602 ; N uni1D77 ; G 1252 +U 7544 ; WX 602 ; N uni1D78 ; G 1253 +U 7547 ; WX 602 ; N uni1D7B ; G 1254 +U 7557 ; WX 602 ; N uni1D85 ; G 1255 +U 7579 ; WX 602 ; N uni1D9B ; G 1256 +U 7580 ; WX 602 ; N uni1D9C ; G 1257 +U 7581 ; WX 602 ; N uni1D9D ; G 1258 +U 7582 ; WX 602 ; N uni1D9E ; G 1259 +U 7583 ; WX 602 ; N uni1D9F ; G 1260 +U 7584 ; WX 602 ; N uni1DA0 ; G 1261 +U 7585 ; WX 602 ; N uni1DA1 ; G 1262 +U 7586 ; WX 602 ; N uni1DA2 ; G 1263 +U 7587 ; WX 602 ; N uni1DA3 ; G 1264 +U 7588 ; WX 602 ; N uni1DA4 ; G 1265 +U 7589 ; WX 602 ; N uni1DA5 ; G 1266 +U 7590 ; WX 602 ; N uni1DA6 ; G 1267 +U 7591 ; WX 602 ; N uni1DA7 ; G 1268 +U 7592 ; WX 602 ; N uni1DA8 ; G 1269 +U 7593 ; WX 602 ; N uni1DA9 ; G 1270 +U 7594 ; WX 602 ; N uni1DAA ; G 1271 +U 7595 ; WX 602 ; N uni1DAB ; G 1272 +U 7596 ; WX 602 ; N uni1DAC ; G 1273 +U 7597 ; WX 602 ; N uni1DAD ; G 1274 +U 7598 ; WX 602 ; N uni1DAE ; G 1275 +U 7599 ; WX 602 ; N uni1DAF ; G 1276 +U 7600 ; WX 602 ; N uni1DB0 ; G 1277 +U 7601 ; WX 602 ; N uni1DB1 ; G 1278 +U 7602 ; WX 602 ; N uni1DB2 ; G 1279 +U 7603 ; WX 602 ; N uni1DB3 ; G 1280 +U 7604 ; WX 602 ; N uni1DB4 ; G 1281 +U 7605 ; WX 602 ; N uni1DB5 ; G 1282 +U 7606 ; WX 602 ; N uni1DB6 ; G 1283 +U 7607 ; WX 602 ; N uni1DB7 ; G 1284 +U 7609 ; WX 602 ; N uni1DB9 ; G 1285 +U 7610 ; WX 602 ; N uni1DBA ; G 1286 +U 7611 ; WX 602 ; N uni1DBB ; G 1287 +U 7612 ; WX 602 ; N uni1DBC ; G 1288 +U 7613 ; WX 602 ; N uni1DBD ; G 1289 +U 7614 ; WX 602 ; N uni1DBE ; G 1290 +U 7615 ; WX 602 ; N uni1DBF ; G 1291 +U 7680 ; WX 602 ; N uni1E00 ; G 1292 +U 7681 ; WX 602 ; N uni1E01 ; G 1293 +U 7682 ; WX 602 ; N uni1E02 ; G 1294 +U 7683 ; WX 602 ; N uni1E03 ; G 1295 +U 7684 ; WX 602 ; N uni1E04 ; G 1296 +U 7685 ; WX 602 ; N uni1E05 ; G 1297 +U 7686 ; WX 602 ; N uni1E06 ; G 1298 +U 7687 ; WX 602 ; N uni1E07 ; G 1299 +U 7688 ; WX 602 ; N uni1E08 ; G 1300 +U 7689 ; WX 602 ; N uni1E09 ; G 1301 +U 7690 ; WX 602 ; N uni1E0A ; G 1302 +U 7691 ; WX 602 ; N uni1E0B ; G 1303 +U 7692 ; WX 602 ; N uni1E0C ; G 1304 +U 7693 ; WX 602 ; N uni1E0D ; G 1305 +U 7694 ; WX 602 ; N uni1E0E ; G 1306 +U 7695 ; WX 602 ; N uni1E0F ; G 1307 +U 7696 ; WX 602 ; N uni1E10 ; G 1308 +U 7697 ; WX 602 ; N uni1E11 ; G 1309 +U 7698 ; WX 602 ; N uni1E12 ; G 1310 +U 7699 ; WX 602 ; N uni1E13 ; G 1311 +U 7704 ; WX 602 ; N uni1E18 ; G 1312 +U 7705 ; WX 602 ; N uni1E19 ; G 1313 +U 7706 ; WX 602 ; N uni1E1A ; G 1314 +U 7707 ; WX 602 ; N uni1E1B ; G 1315 +U 7708 ; WX 602 ; N uni1E1C ; G 1316 +U 7709 ; WX 602 ; N uni1E1D ; G 1317 +U 7710 ; WX 602 ; N uni1E1E ; G 1318 +U 7711 ; WX 602 ; N uni1E1F ; G 1319 +U 7712 ; WX 602 ; N uni1E20 ; G 1320 +U 7713 ; WX 602 ; N uni1E21 ; G 1321 +U 7714 ; WX 602 ; N uni1E22 ; G 1322 +U 7715 ; WX 602 ; N uni1E23 ; G 1323 +U 7716 ; WX 602 ; N uni1E24 ; G 1324 +U 7717 ; WX 602 ; N uni1E25 ; G 1325 +U 7718 ; WX 602 ; N uni1E26 ; G 1326 +U 7719 ; WX 602 ; N uni1E27 ; G 1327 +U 7720 ; WX 602 ; N uni1E28 ; G 1328 +U 7721 ; WX 602 ; N uni1E29 ; G 1329 +U 7722 ; WX 602 ; N uni1E2A ; G 1330 +U 7723 ; WX 602 ; N uni1E2B ; G 1331 +U 7724 ; WX 602 ; N uni1E2C ; G 1332 +U 7725 ; WX 602 ; N uni1E2D ; G 1333 +U 7728 ; WX 602 ; N uni1E30 ; G 1334 +U 7729 ; WX 602 ; N uni1E31 ; G 1335 +U 7730 ; WX 602 ; N uni1E32 ; G 1336 +U 7731 ; WX 602 ; N uni1E33 ; G 1337 +U 7732 ; WX 602 ; N uni1E34 ; G 1338 +U 7733 ; WX 602 ; N uni1E35 ; G 1339 +U 7734 ; WX 602 ; N uni1E36 ; G 1340 +U 7735 ; WX 602 ; N uni1E37 ; G 1341 +U 7736 ; WX 602 ; N uni1E38 ; G 1342 +U 7737 ; WX 602 ; N uni1E39 ; G 1343 +U 7738 ; WX 602 ; N uni1E3A ; G 1344 +U 7739 ; WX 602 ; N uni1E3B ; G 1345 +U 7740 ; WX 602 ; N uni1E3C ; G 1346 +U 7741 ; WX 602 ; N uni1E3D ; G 1347 +U 7742 ; WX 602 ; N uni1E3E ; G 1348 +U 7743 ; WX 602 ; N uni1E3F ; G 1349 +U 7744 ; WX 602 ; N uni1E40 ; G 1350 +U 7745 ; WX 602 ; N uni1E41 ; G 1351 +U 7746 ; WX 602 ; N uni1E42 ; G 1352 +U 7747 ; WX 602 ; N uni1E43 ; G 1353 +U 7748 ; WX 602 ; N uni1E44 ; G 1354 +U 7749 ; WX 602 ; N uni1E45 ; G 1355 +U 7750 ; WX 602 ; N uni1E46 ; G 1356 +U 7751 ; WX 602 ; N uni1E47 ; G 1357 +U 7752 ; WX 602 ; N uni1E48 ; G 1358 +U 7753 ; WX 602 ; N uni1E49 ; G 1359 +U 7754 ; WX 602 ; N uni1E4A ; G 1360 +U 7755 ; WX 602 ; N uni1E4B ; G 1361 +U 7756 ; WX 602 ; N uni1E4C ; G 1362 +U 7757 ; WX 602 ; N uni1E4D ; G 1363 +U 7764 ; WX 602 ; N uni1E54 ; G 1364 +U 7765 ; WX 602 ; N uni1E55 ; G 1365 +U 7766 ; WX 602 ; N uni1E56 ; G 1366 +U 7767 ; WX 602 ; N uni1E57 ; G 1367 +U 7768 ; WX 602 ; N uni1E58 ; G 1368 +U 7769 ; WX 602 ; N uni1E59 ; G 1369 +U 7770 ; WX 602 ; N uni1E5A ; G 1370 +U 7771 ; WX 602 ; N uni1E5B ; G 1371 +U 7772 ; WX 602 ; N uni1E5C ; G 1372 +U 7773 ; WX 602 ; N uni1E5D ; G 1373 +U 7774 ; WX 602 ; N uni1E5E ; G 1374 +U 7775 ; WX 602 ; N uni1E5F ; G 1375 +U 7776 ; WX 602 ; N uni1E60 ; G 1376 +U 7777 ; WX 602 ; N uni1E61 ; G 1377 +U 7778 ; WX 602 ; N uni1E62 ; G 1378 +U 7779 ; WX 602 ; N uni1E63 ; G 1379 +U 7784 ; WX 602 ; N uni1E68 ; G 1380 +U 7785 ; WX 602 ; N uni1E69 ; G 1381 +U 7786 ; WX 602 ; N uni1E6A ; G 1382 +U 7787 ; WX 602 ; N uni1E6B ; G 1383 +U 7788 ; WX 602 ; N uni1E6C ; G 1384 +U 7789 ; WX 602 ; N uni1E6D ; G 1385 +U 7790 ; WX 602 ; N uni1E6E ; G 1386 +U 7791 ; WX 602 ; N uni1E6F ; G 1387 +U 7792 ; WX 602 ; N uni1E70 ; G 1388 +U 7793 ; WX 602 ; N uni1E71 ; G 1389 +U 7794 ; WX 602 ; N uni1E72 ; G 1390 +U 7795 ; WX 602 ; N uni1E73 ; G 1391 +U 7796 ; WX 602 ; N uni1E74 ; G 1392 +U 7797 ; WX 602 ; N uni1E75 ; G 1393 +U 7798 ; WX 602 ; N uni1E76 ; G 1394 +U 7799 ; WX 602 ; N uni1E77 ; G 1395 +U 7800 ; WX 602 ; N uni1E78 ; G 1396 +U 7801 ; WX 602 ; N uni1E79 ; G 1397 +U 7804 ; WX 602 ; N uni1E7C ; G 1398 +U 7805 ; WX 602 ; N uni1E7D ; G 1399 +U 7806 ; WX 602 ; N uni1E7E ; G 1400 +U 7807 ; WX 602 ; N uni1E7F ; G 1401 +U 7808 ; WX 602 ; N Wgrave ; G 1402 +U 7809 ; WX 602 ; N wgrave ; G 1403 +U 7810 ; WX 602 ; N Wacute ; G 1404 +U 7811 ; WX 602 ; N wacute ; G 1405 +U 7812 ; WX 602 ; N Wdieresis ; G 1406 +U 7813 ; WX 602 ; N wdieresis ; G 1407 +U 7814 ; WX 602 ; N uni1E86 ; G 1408 +U 7815 ; WX 602 ; N uni1E87 ; G 1409 +U 7816 ; WX 602 ; N uni1E88 ; G 1410 +U 7817 ; WX 602 ; N uni1E89 ; G 1411 +U 7818 ; WX 602 ; N uni1E8A ; G 1412 +U 7819 ; WX 602 ; N uni1E8B ; G 1413 +U 7820 ; WX 602 ; N uni1E8C ; G 1414 +U 7821 ; WX 602 ; N uni1E8D ; G 1415 +U 7822 ; WX 602 ; N uni1E8E ; G 1416 +U 7823 ; WX 602 ; N uni1E8F ; G 1417 +U 7824 ; WX 602 ; N uni1E90 ; G 1418 +U 7825 ; WX 602 ; N uni1E91 ; G 1419 +U 7826 ; WX 602 ; N uni1E92 ; G 1420 +U 7827 ; WX 602 ; N uni1E93 ; G 1421 +U 7828 ; WX 602 ; N uni1E94 ; G 1422 +U 7829 ; WX 602 ; N uni1E95 ; G 1423 +U 7830 ; WX 602 ; N uni1E96 ; G 1424 +U 7831 ; WX 602 ; N uni1E97 ; G 1425 +U 7832 ; WX 602 ; N uni1E98 ; G 1426 +U 7833 ; WX 602 ; N uni1E99 ; G 1427 +U 7835 ; WX 602 ; N uni1E9B ; G 1428 +U 7839 ; WX 602 ; N uni1E9F ; G 1429 +U 7840 ; WX 602 ; N uni1EA0 ; G 1430 +U 7841 ; WX 602 ; N uni1EA1 ; G 1431 +U 7852 ; WX 602 ; N uni1EAC ; G 1432 +U 7853 ; WX 602 ; N uni1EAD ; G 1433 +U 7856 ; WX 602 ; N uni1EB0 ; G 1434 +U 7857 ; WX 602 ; N uni1EB1 ; G 1435 +U 7862 ; WX 602 ; N uni1EB6 ; G 1436 +U 7863 ; WX 602 ; N uni1EB7 ; G 1437 +U 7864 ; WX 602 ; N uni1EB8 ; G 1438 +U 7865 ; WX 602 ; N uni1EB9 ; G 1439 +U 7868 ; WX 602 ; N uni1EBC ; G 1440 +U 7869 ; WX 602 ; N uni1EBD ; G 1441 +U 7878 ; WX 602 ; N uni1EC6 ; G 1442 +U 7879 ; WX 602 ; N uni1EC7 ; G 1443 +U 7882 ; WX 602 ; N uni1ECA ; G 1444 +U 7883 ; WX 602 ; N uni1ECB ; G 1445 +U 7884 ; WX 602 ; N uni1ECC ; G 1446 +U 7885 ; WX 602 ; N uni1ECD ; G 1447 +U 7896 ; WX 602 ; N uni1ED8 ; G 1448 +U 7897 ; WX 602 ; N uni1ED9 ; G 1449 +U 7898 ; WX 602 ; N uni1EDA ; G 1450 +U 7899 ; WX 602 ; N uni1EDB ; G 1451 +U 7900 ; WX 602 ; N uni1EDC ; G 1452 +U 7901 ; WX 602 ; N uni1EDD ; G 1453 +U 7904 ; WX 602 ; N uni1EE0 ; G 1454 +U 7905 ; WX 602 ; N uni1EE1 ; G 1455 +U 7906 ; WX 602 ; N uni1EE2 ; G 1456 +U 7907 ; WX 602 ; N uni1EE3 ; G 1457 +U 7908 ; WX 602 ; N uni1EE4 ; G 1458 +U 7909 ; WX 602 ; N uni1EE5 ; G 1459 +U 7912 ; WX 602 ; N uni1EE8 ; G 1460 +U 7913 ; WX 602 ; N uni1EE9 ; G 1461 +U 7914 ; WX 602 ; N uni1EEA ; G 1462 +U 7915 ; WX 602 ; N uni1EEB ; G 1463 +U 7918 ; WX 602 ; N uni1EEE ; G 1464 +U 7919 ; WX 602 ; N uni1EEF ; G 1465 +U 7920 ; WX 602 ; N uni1EF0 ; G 1466 +U 7921 ; WX 602 ; N uni1EF1 ; G 1467 +U 7922 ; WX 602 ; N Ygrave ; G 1468 +U 7923 ; WX 602 ; N ygrave ; G 1469 +U 7924 ; WX 602 ; N uni1EF4 ; G 1470 +U 7925 ; WX 602 ; N uni1EF5 ; G 1471 +U 7928 ; WX 602 ; N uni1EF8 ; G 1472 +U 7929 ; WX 602 ; N uni1EF9 ; G 1473 +U 7936 ; WX 602 ; N uni1F00 ; G 1474 +U 7937 ; WX 602 ; N uni1F01 ; G 1475 +U 7938 ; WX 602 ; N uni1F02 ; G 1476 +U 7939 ; WX 602 ; N uni1F03 ; G 1477 +U 7940 ; WX 602 ; N uni1F04 ; G 1478 +U 7941 ; WX 602 ; N uni1F05 ; G 1479 +U 7942 ; WX 602 ; N uni1F06 ; G 1480 +U 7943 ; WX 602 ; N uni1F07 ; G 1481 +U 7944 ; WX 602 ; N uni1F08 ; G 1482 +U 7945 ; WX 602 ; N uni1F09 ; G 1483 +U 7946 ; WX 602 ; N uni1F0A ; G 1484 +U 7947 ; WX 602 ; N uni1F0B ; G 1485 +U 7948 ; WX 602 ; N uni1F0C ; G 1486 +U 7949 ; WX 602 ; N uni1F0D ; G 1487 +U 7950 ; WX 602 ; N uni1F0E ; G 1488 +U 7951 ; WX 602 ; N uni1F0F ; G 1489 +U 7952 ; WX 602 ; N uni1F10 ; G 1490 +U 7953 ; WX 602 ; N uni1F11 ; G 1491 +U 7954 ; WX 602 ; N uni1F12 ; G 1492 +U 7955 ; WX 602 ; N uni1F13 ; G 1493 +U 7956 ; WX 602 ; N uni1F14 ; G 1494 +U 7957 ; WX 602 ; N uni1F15 ; G 1495 +U 7960 ; WX 602 ; N uni1F18 ; G 1496 +U 7961 ; WX 602 ; N uni1F19 ; G 1497 +U 7962 ; WX 602 ; N uni1F1A ; G 1498 +U 7963 ; WX 602 ; N uni1F1B ; G 1499 +U 7964 ; WX 602 ; N uni1F1C ; G 1500 +U 7965 ; WX 602 ; N uni1F1D ; G 1501 +U 7968 ; WX 602 ; N uni1F20 ; G 1502 +U 7969 ; WX 602 ; N uni1F21 ; G 1503 +U 7970 ; WX 602 ; N uni1F22 ; G 1504 +U 7971 ; WX 602 ; N uni1F23 ; G 1505 +U 7972 ; WX 602 ; N uni1F24 ; G 1506 +U 7973 ; WX 602 ; N uni1F25 ; G 1507 +U 7974 ; WX 602 ; N uni1F26 ; G 1508 +U 7975 ; WX 602 ; N uni1F27 ; G 1509 +U 7976 ; WX 602 ; N uni1F28 ; G 1510 +U 7977 ; WX 602 ; N uni1F29 ; G 1511 +U 7978 ; WX 602 ; N uni1F2A ; G 1512 +U 7979 ; WX 602 ; N uni1F2B ; G 1513 +U 7980 ; WX 602 ; N uni1F2C ; G 1514 +U 7981 ; WX 602 ; N uni1F2D ; G 1515 +U 7982 ; WX 602 ; N uni1F2E ; G 1516 +U 7983 ; WX 602 ; N uni1F2F ; G 1517 +U 7984 ; WX 602 ; N uni1F30 ; G 1518 +U 7985 ; WX 602 ; N uni1F31 ; G 1519 +U 7986 ; WX 602 ; N uni1F32 ; G 1520 +U 7987 ; WX 602 ; N uni1F33 ; G 1521 +U 7988 ; WX 602 ; N uni1F34 ; G 1522 +U 7989 ; WX 602 ; N uni1F35 ; G 1523 +U 7990 ; WX 602 ; N uni1F36 ; G 1524 +U 7991 ; WX 602 ; N uni1F37 ; G 1525 +U 7992 ; WX 602 ; N uni1F38 ; G 1526 +U 7993 ; WX 602 ; N uni1F39 ; G 1527 +U 7994 ; WX 602 ; N uni1F3A ; G 1528 +U 7995 ; WX 602 ; N uni1F3B ; G 1529 +U 7996 ; WX 602 ; N uni1F3C ; G 1530 +U 7997 ; WX 602 ; N uni1F3D ; G 1531 +U 7998 ; WX 602 ; N uni1F3E ; G 1532 +U 7999 ; WX 602 ; N uni1F3F ; G 1533 +U 8000 ; WX 602 ; N uni1F40 ; G 1534 +U 8001 ; WX 602 ; N uni1F41 ; G 1535 +U 8002 ; WX 602 ; N uni1F42 ; G 1536 +U 8003 ; WX 602 ; N uni1F43 ; G 1537 +U 8004 ; WX 602 ; N uni1F44 ; G 1538 +U 8005 ; WX 602 ; N uni1F45 ; G 1539 +U 8008 ; WX 602 ; N uni1F48 ; G 1540 +U 8009 ; WX 602 ; N uni1F49 ; G 1541 +U 8010 ; WX 602 ; N uni1F4A ; G 1542 +U 8011 ; WX 602 ; N uni1F4B ; G 1543 +U 8012 ; WX 602 ; N uni1F4C ; G 1544 +U 8013 ; WX 602 ; N uni1F4D ; G 1545 +U 8016 ; WX 602 ; N uni1F50 ; G 1546 +U 8017 ; WX 602 ; N uni1F51 ; G 1547 +U 8018 ; WX 602 ; N uni1F52 ; G 1548 +U 8019 ; WX 602 ; N uni1F53 ; G 1549 +U 8020 ; WX 602 ; N uni1F54 ; G 1550 +U 8021 ; WX 602 ; N uni1F55 ; G 1551 +U 8022 ; WX 602 ; N uni1F56 ; G 1552 +U 8023 ; WX 602 ; N uni1F57 ; G 1553 +U 8025 ; WX 602 ; N uni1F59 ; G 1554 +U 8027 ; WX 602 ; N uni1F5B ; G 1555 +U 8029 ; WX 602 ; N uni1F5D ; G 1556 +U 8031 ; WX 602 ; N uni1F5F ; G 1557 +U 8032 ; WX 602 ; N uni1F60 ; G 1558 +U 8033 ; WX 602 ; N uni1F61 ; G 1559 +U 8034 ; WX 602 ; N uni1F62 ; G 1560 +U 8035 ; WX 602 ; N uni1F63 ; G 1561 +U 8036 ; WX 602 ; N uni1F64 ; G 1562 +U 8037 ; WX 602 ; N uni1F65 ; G 1563 +U 8038 ; WX 602 ; N uni1F66 ; G 1564 +U 8039 ; WX 602 ; N uni1F67 ; G 1565 +U 8040 ; WX 602 ; N uni1F68 ; G 1566 +U 8041 ; WX 602 ; N uni1F69 ; G 1567 +U 8042 ; WX 602 ; N uni1F6A ; G 1568 +U 8043 ; WX 602 ; N uni1F6B ; G 1569 +U 8044 ; WX 602 ; N uni1F6C ; G 1570 +U 8045 ; WX 602 ; N uni1F6D ; G 1571 +U 8046 ; WX 602 ; N uni1F6E ; G 1572 +U 8047 ; WX 602 ; N uni1F6F ; G 1573 +U 8048 ; WX 602 ; N uni1F70 ; G 1574 +U 8049 ; WX 602 ; N uni1F71 ; G 1575 +U 8050 ; WX 602 ; N uni1F72 ; G 1576 +U 8051 ; WX 602 ; N uni1F73 ; G 1577 +U 8052 ; WX 602 ; N uni1F74 ; G 1578 +U 8053 ; WX 602 ; N uni1F75 ; G 1579 +U 8054 ; WX 602 ; N uni1F76 ; G 1580 +U 8055 ; WX 602 ; N uni1F77 ; G 1581 +U 8056 ; WX 602 ; N uni1F78 ; G 1582 +U 8057 ; WX 602 ; N uni1F79 ; G 1583 +U 8058 ; WX 602 ; N uni1F7A ; G 1584 +U 8059 ; WX 602 ; N uni1F7B ; G 1585 +U 8060 ; WX 602 ; N uni1F7C ; G 1586 +U 8061 ; WX 602 ; N uni1F7D ; G 1587 +U 8064 ; WX 602 ; N uni1F80 ; G 1588 +U 8065 ; WX 602 ; N uni1F81 ; G 1589 +U 8066 ; WX 602 ; N uni1F82 ; G 1590 +U 8067 ; WX 602 ; N uni1F83 ; G 1591 +U 8068 ; WX 602 ; N uni1F84 ; G 1592 +U 8069 ; WX 602 ; N uni1F85 ; G 1593 +U 8070 ; WX 602 ; N uni1F86 ; G 1594 +U 8071 ; WX 602 ; N uni1F87 ; G 1595 +U 8072 ; WX 602 ; N uni1F88 ; G 1596 +U 8073 ; WX 602 ; N uni1F89 ; G 1597 +U 8074 ; WX 602 ; N uni1F8A ; G 1598 +U 8075 ; WX 602 ; N uni1F8B ; G 1599 +U 8076 ; WX 602 ; N uni1F8C ; G 1600 +U 8077 ; WX 602 ; N uni1F8D ; G 1601 +U 8078 ; WX 602 ; N uni1F8E ; G 1602 +U 8079 ; WX 602 ; N uni1F8F ; G 1603 +U 8080 ; WX 602 ; N uni1F90 ; G 1604 +U 8081 ; WX 602 ; N uni1F91 ; G 1605 +U 8082 ; WX 602 ; N uni1F92 ; G 1606 +U 8083 ; WX 602 ; N uni1F93 ; G 1607 +U 8084 ; WX 602 ; N uni1F94 ; G 1608 +U 8085 ; WX 602 ; N uni1F95 ; G 1609 +U 8086 ; WX 602 ; N uni1F96 ; G 1610 +U 8087 ; WX 602 ; N uni1F97 ; G 1611 +U 8088 ; WX 602 ; N uni1F98 ; G 1612 +U 8089 ; WX 602 ; N uni1F99 ; G 1613 +U 8090 ; WX 602 ; N uni1F9A ; G 1614 +U 8091 ; WX 602 ; N uni1F9B ; G 1615 +U 8092 ; WX 602 ; N uni1F9C ; G 1616 +U 8093 ; WX 602 ; N uni1F9D ; G 1617 +U 8094 ; WX 602 ; N uni1F9E ; G 1618 +U 8095 ; WX 602 ; N uni1F9F ; G 1619 +U 8096 ; WX 602 ; N uni1FA0 ; G 1620 +U 8097 ; WX 602 ; N uni1FA1 ; G 1621 +U 8098 ; WX 602 ; N uni1FA2 ; G 1622 +U 8099 ; WX 602 ; N uni1FA3 ; G 1623 +U 8100 ; WX 602 ; N uni1FA4 ; G 1624 +U 8101 ; WX 602 ; N uni1FA5 ; G 1625 +U 8102 ; WX 602 ; N uni1FA6 ; G 1626 +U 8103 ; WX 602 ; N uni1FA7 ; G 1627 +U 8104 ; WX 602 ; N uni1FA8 ; G 1628 +U 8105 ; WX 602 ; N uni1FA9 ; G 1629 +U 8106 ; WX 602 ; N uni1FAA ; G 1630 +U 8107 ; WX 602 ; N uni1FAB ; G 1631 +U 8108 ; WX 602 ; N uni1FAC ; G 1632 +U 8109 ; WX 602 ; N uni1FAD ; G 1633 +U 8110 ; WX 602 ; N uni1FAE ; G 1634 +U 8111 ; WX 602 ; N uni1FAF ; G 1635 +U 8112 ; WX 602 ; N uni1FB0 ; G 1636 +U 8113 ; WX 602 ; N uni1FB1 ; G 1637 +U 8114 ; WX 602 ; N uni1FB2 ; G 1638 +U 8115 ; WX 602 ; N uni1FB3 ; G 1639 +U 8116 ; WX 602 ; N uni1FB4 ; G 1640 +U 8118 ; WX 602 ; N uni1FB6 ; G 1641 +U 8119 ; WX 602 ; N uni1FB7 ; G 1642 +U 8120 ; WX 602 ; N uni1FB8 ; G 1643 +U 8121 ; WX 602 ; N uni1FB9 ; G 1644 +U 8122 ; WX 602 ; N uni1FBA ; G 1645 +U 8123 ; WX 602 ; N uni1FBB ; G 1646 +U 8124 ; WX 602 ; N uni1FBC ; G 1647 +U 8125 ; WX 602 ; N uni1FBD ; G 1648 +U 8126 ; WX 602 ; N uni1FBE ; G 1649 +U 8127 ; WX 602 ; N uni1FBF ; G 1650 +U 8128 ; WX 602 ; N uni1FC0 ; G 1651 +U 8129 ; WX 602 ; N uni1FC1 ; G 1652 +U 8130 ; WX 602 ; N uni1FC2 ; G 1653 +U 8131 ; WX 602 ; N uni1FC3 ; G 1654 +U 8132 ; WX 602 ; N uni1FC4 ; G 1655 +U 8134 ; WX 602 ; N uni1FC6 ; G 1656 +U 8135 ; WX 602 ; N uni1FC7 ; G 1657 +U 8136 ; WX 602 ; N uni1FC8 ; G 1658 +U 8137 ; WX 602 ; N uni1FC9 ; G 1659 +U 8138 ; WX 602 ; N uni1FCA ; G 1660 +U 8139 ; WX 602 ; N uni1FCB ; G 1661 +U 8140 ; WX 602 ; N uni1FCC ; G 1662 +U 8141 ; WX 602 ; N uni1FCD ; G 1663 +U 8142 ; WX 602 ; N uni1FCE ; G 1664 +U 8143 ; WX 602 ; N uni1FCF ; G 1665 +U 8144 ; WX 602 ; N uni1FD0 ; G 1666 +U 8145 ; WX 602 ; N uni1FD1 ; G 1667 +U 8146 ; WX 602 ; N uni1FD2 ; G 1668 +U 8147 ; WX 602 ; N uni1FD3 ; G 1669 +U 8150 ; WX 602 ; N uni1FD6 ; G 1670 +U 8151 ; WX 602 ; N uni1FD7 ; G 1671 +U 8152 ; WX 602 ; N uni1FD8 ; G 1672 +U 8153 ; WX 602 ; N uni1FD9 ; G 1673 +U 8154 ; WX 602 ; N uni1FDA ; G 1674 +U 8155 ; WX 602 ; N uni1FDB ; G 1675 +U 8157 ; WX 602 ; N uni1FDD ; G 1676 +U 8158 ; WX 602 ; N uni1FDE ; G 1677 +U 8159 ; WX 602 ; N uni1FDF ; G 1678 +U 8160 ; WX 602 ; N uni1FE0 ; G 1679 +U 8161 ; WX 602 ; N uni1FE1 ; G 1680 +U 8162 ; WX 602 ; N uni1FE2 ; G 1681 +U 8163 ; WX 602 ; N uni1FE3 ; G 1682 +U 8164 ; WX 602 ; N uni1FE4 ; G 1683 +U 8165 ; WX 602 ; N uni1FE5 ; G 1684 +U 8166 ; WX 602 ; N uni1FE6 ; G 1685 +U 8167 ; WX 602 ; N uni1FE7 ; G 1686 +U 8168 ; WX 602 ; N uni1FE8 ; G 1687 +U 8169 ; WX 602 ; N uni1FE9 ; G 1688 +U 8170 ; WX 602 ; N uni1FEA ; G 1689 +U 8171 ; WX 602 ; N uni1FEB ; G 1690 +U 8172 ; WX 602 ; N uni1FEC ; G 1691 +U 8173 ; WX 602 ; N uni1FED ; G 1692 +U 8174 ; WX 602 ; N uni1FEE ; G 1693 +U 8175 ; WX 602 ; N uni1FEF ; G 1694 +U 8178 ; WX 602 ; N uni1FF2 ; G 1695 +U 8179 ; WX 602 ; N uni1FF3 ; G 1696 +U 8180 ; WX 602 ; N uni1FF4 ; G 1697 +U 8182 ; WX 602 ; N uni1FF6 ; G 1698 +U 8183 ; WX 602 ; N uni1FF7 ; G 1699 +U 8184 ; WX 602 ; N uni1FF8 ; G 1700 +U 8185 ; WX 602 ; N uni1FF9 ; G 1701 +U 8186 ; WX 602 ; N uni1FFA ; G 1702 +U 8187 ; WX 602 ; N uni1FFB ; G 1703 +U 8188 ; WX 602 ; N uni1FFC ; G 1704 +U 8189 ; WX 602 ; N uni1FFD ; G 1705 +U 8190 ; WX 602 ; N uni1FFE ; G 1706 +U 8192 ; WX 602 ; N uni2000 ; G 1707 +U 8193 ; WX 602 ; N uni2001 ; G 1708 +U 8194 ; WX 602 ; N uni2002 ; G 1709 +U 8195 ; WX 602 ; N uni2003 ; G 1710 +U 8196 ; WX 602 ; N uni2004 ; G 1711 +U 8197 ; WX 602 ; N uni2005 ; G 1712 +U 8198 ; WX 602 ; N uni2006 ; G 1713 +U 8199 ; WX 602 ; N uni2007 ; G 1714 +U 8200 ; WX 602 ; N uni2008 ; G 1715 +U 8201 ; WX 602 ; N uni2009 ; G 1716 +U 8202 ; WX 602 ; N uni200A ; G 1717 +U 8208 ; WX 602 ; N uni2010 ; G 1718 +U 8209 ; WX 602 ; N uni2011 ; G 1719 +U 8210 ; WX 602 ; N figuredash ; G 1720 +U 8211 ; WX 602 ; N endash ; G 1721 +U 8212 ; WX 602 ; N emdash ; G 1722 +U 8213 ; WX 602 ; N uni2015 ; G 1723 +U 8214 ; WX 602 ; N uni2016 ; G 1724 +U 8215 ; WX 602 ; N underscoredbl ; G 1725 +U 8216 ; WX 602 ; N quoteleft ; G 1726 +U 8217 ; WX 602 ; N quoteright ; G 1727 +U 8218 ; WX 602 ; N quotesinglbase ; G 1728 +U 8219 ; WX 602 ; N quotereversed ; G 1729 +U 8220 ; WX 602 ; N quotedblleft ; G 1730 +U 8221 ; WX 602 ; N quotedblright ; G 1731 +U 8222 ; WX 602 ; N quotedblbase ; G 1732 +U 8223 ; WX 602 ; N uni201F ; G 1733 +U 8224 ; WX 602 ; N dagger ; G 1734 +U 8225 ; WX 602 ; N daggerdbl ; G 1735 +U 8226 ; WX 602 ; N bullet ; G 1736 +U 8227 ; WX 602 ; N uni2023 ; G 1737 +U 8230 ; WX 602 ; N ellipsis ; G 1738 +U 8239 ; WX 602 ; N uni202F ; G 1739 +U 8240 ; WX 602 ; N perthousand ; G 1740 +U 8241 ; WX 602 ; N uni2031 ; G 1741 +U 8242 ; WX 602 ; N minute ; G 1742 +U 8243 ; WX 602 ; N second ; G 1743 +U 8244 ; WX 602 ; N uni2034 ; G 1744 +U 8245 ; WX 602 ; N uni2035 ; G 1745 +U 8246 ; WX 602 ; N uni2036 ; G 1746 +U 8247 ; WX 602 ; N uni2037 ; G 1747 +U 8249 ; WX 602 ; N guilsinglleft ; G 1748 +U 8250 ; WX 602 ; N guilsinglright ; G 1749 +U 8252 ; WX 602 ; N exclamdbl ; G 1750 +U 8253 ; WX 602 ; N uni203D ; G 1751 +U 8254 ; WX 602 ; N uni203E ; G 1752 +U 8255 ; WX 602 ; N uni203F ; G 1753 +U 8261 ; WX 602 ; N uni2045 ; G 1754 +U 8262 ; WX 602 ; N uni2046 ; G 1755 +U 8263 ; WX 602 ; N uni2047 ; G 1756 +U 8264 ; WX 602 ; N uni2048 ; G 1757 +U 8265 ; WX 602 ; N uni2049 ; G 1758 +U 8267 ; WX 602 ; N uni204B ; G 1759 +U 8287 ; WX 602 ; N uni205F ; G 1760 +U 8304 ; WX 602 ; N uni2070 ; G 1761 +U 8305 ; WX 602 ; N uni2071 ; G 1762 +U 8308 ; WX 602 ; N uni2074 ; G 1763 +U 8309 ; WX 602 ; N uni2075 ; G 1764 +U 8310 ; WX 602 ; N uni2076 ; G 1765 +U 8311 ; WX 602 ; N uni2077 ; G 1766 +U 8312 ; WX 602 ; N uni2078 ; G 1767 +U 8313 ; WX 602 ; N uni2079 ; G 1768 +U 8314 ; WX 602 ; N uni207A ; G 1769 +U 8315 ; WX 602 ; N uni207B ; G 1770 +U 8316 ; WX 602 ; N uni207C ; G 1771 +U 8317 ; WX 602 ; N uni207D ; G 1772 +U 8318 ; WX 602 ; N uni207E ; G 1773 +U 8319 ; WX 602 ; N uni207F ; G 1774 +U 8320 ; WX 602 ; N uni2080 ; G 1775 +U 8321 ; WX 602 ; N uni2081 ; G 1776 +U 8322 ; WX 602 ; N uni2082 ; G 1777 +U 8323 ; WX 602 ; N uni2083 ; G 1778 +U 8324 ; WX 602 ; N uni2084 ; G 1779 +U 8325 ; WX 602 ; N uni2085 ; G 1780 +U 8326 ; WX 602 ; N uni2086 ; G 1781 +U 8327 ; WX 602 ; N uni2087 ; G 1782 +U 8328 ; WX 602 ; N uni2088 ; G 1783 +U 8329 ; WX 602 ; N uni2089 ; G 1784 +U 8330 ; WX 602 ; N uni208A ; G 1785 +U 8331 ; WX 602 ; N uni208B ; G 1786 +U 8332 ; WX 602 ; N uni208C ; G 1787 +U 8333 ; WX 602 ; N uni208D ; G 1788 +U 8334 ; WX 602 ; N uni208E ; G 1789 +U 8336 ; WX 602 ; N uni2090 ; G 1790 +U 8337 ; WX 602 ; N uni2091 ; G 1791 +U 8338 ; WX 602 ; N uni2092 ; G 1792 +U 8339 ; WX 602 ; N uni2093 ; G 1793 +U 8340 ; WX 602 ; N uni2094 ; G 1794 +U 8341 ; WX 602 ; N uni2095 ; G 1795 +U 8342 ; WX 602 ; N uni2096 ; G 1796 +U 8343 ; WX 602 ; N uni2097 ; G 1797 +U 8344 ; WX 602 ; N uni2098 ; G 1798 +U 8345 ; WX 602 ; N uni2099 ; G 1799 +U 8346 ; WX 602 ; N uni209A ; G 1800 +U 8347 ; WX 602 ; N uni209B ; G 1801 +U 8348 ; WX 602 ; N uni209C ; G 1802 +U 8352 ; WX 602 ; N uni20A0 ; G 1803 +U 8353 ; WX 602 ; N colonmonetary ; G 1804 +U 8354 ; WX 602 ; N uni20A2 ; G 1805 +U 8355 ; WX 602 ; N franc ; G 1806 +U 8356 ; WX 602 ; N lira ; G 1807 +U 8357 ; WX 602 ; N uni20A5 ; G 1808 +U 8358 ; WX 602 ; N uni20A6 ; G 1809 +U 8359 ; WX 602 ; N peseta ; G 1810 +U 8360 ; WX 602 ; N uni20A8 ; G 1811 +U 8361 ; WX 602 ; N uni20A9 ; G 1812 +U 8362 ; WX 602 ; N uni20AA ; G 1813 +U 8363 ; WX 602 ; N dong ; G 1814 +U 8364 ; WX 602 ; N Euro ; G 1815 +U 8365 ; WX 602 ; N uni20AD ; G 1816 +U 8366 ; WX 602 ; N uni20AE ; G 1817 +U 8367 ; WX 602 ; N uni20AF ; G 1818 +U 8368 ; WX 602 ; N uni20B0 ; G 1819 +U 8369 ; WX 602 ; N uni20B1 ; G 1820 +U 8370 ; WX 602 ; N uni20B2 ; G 1821 +U 8371 ; WX 602 ; N uni20B3 ; G 1822 +U 8372 ; WX 602 ; N uni20B4 ; G 1823 +U 8373 ; WX 602 ; N uni20B5 ; G 1824 +U 8376 ; WX 602 ; N uni20B8 ; G 1825 +U 8377 ; WX 602 ; N uni20B9 ; G 1826 +U 8378 ; WX 602 ; N uni20BA ; G 1827 +U 8381 ; WX 602 ; N uni20BD ; G 1828 +U 8450 ; WX 602 ; N uni2102 ; G 1829 +U 8453 ; WX 602 ; N uni2105 ; G 1830 +U 8461 ; WX 602 ; N uni210D ; G 1831 +U 8462 ; WX 602 ; N uni210E ; G 1832 +U 8463 ; WX 602 ; N uni210F ; G 1833 +U 8469 ; WX 602 ; N uni2115 ; G 1834 +U 8470 ; WX 602 ; N uni2116 ; G 1835 +U 8471 ; WX 602 ; N uni2117 ; G 1836 +U 8473 ; WX 602 ; N uni2119 ; G 1837 +U 8474 ; WX 602 ; N uni211A ; G 1838 +U 8477 ; WX 602 ; N uni211D ; G 1839 +U 8482 ; WX 602 ; N trademark ; G 1840 +U 8484 ; WX 602 ; N uni2124 ; G 1841 +U 8486 ; WX 602 ; N uni2126 ; G 1842 +U 8490 ; WX 602 ; N uni212A ; G 1843 +U 8491 ; WX 602 ; N uni212B ; G 1844 +U 8494 ; WX 602 ; N estimated ; G 1845 +U 8520 ; WX 602 ; N uni2148 ; G 1846 +U 8528 ; WX 602 ; N uni2150 ; G 1847 +U 8529 ; WX 602 ; N uni2151 ; G 1848 +U 8531 ; WX 602 ; N onethird ; G 1849 +U 8532 ; WX 602 ; N twothirds ; G 1850 +U 8533 ; WX 602 ; N uni2155 ; G 1851 +U 8534 ; WX 602 ; N uni2156 ; G 1852 +U 8535 ; WX 602 ; N uni2157 ; G 1853 +U 8536 ; WX 602 ; N uni2158 ; G 1854 +U 8537 ; WX 602 ; N uni2159 ; G 1855 +U 8538 ; WX 602 ; N uni215A ; G 1856 +U 8539 ; WX 602 ; N oneeighth ; G 1857 +U 8540 ; WX 602 ; N threeeighths ; G 1858 +U 8541 ; WX 602 ; N fiveeighths ; G 1859 +U 8542 ; WX 602 ; N seveneighths ; G 1860 +U 8543 ; WX 602 ; N uni215F ; G 1861 +U 8585 ; WX 602 ; N uni2189 ; G 1862 +U 8592 ; WX 602 ; N arrowleft ; G 1863 +U 8593 ; WX 602 ; N arrowup ; G 1864 +U 8594 ; WX 602 ; N arrowright ; G 1865 +U 8595 ; WX 602 ; N arrowdown ; G 1866 +U 8596 ; WX 602 ; N arrowboth ; G 1867 +U 8597 ; WX 602 ; N arrowupdn ; G 1868 +U 8598 ; WX 602 ; N uni2196 ; G 1869 +U 8599 ; WX 602 ; N uni2197 ; G 1870 +U 8600 ; WX 602 ; N uni2198 ; G 1871 +U 8601 ; WX 602 ; N uni2199 ; G 1872 +U 8602 ; WX 602 ; N uni219A ; G 1873 +U 8603 ; WX 602 ; N uni219B ; G 1874 +U 8604 ; WX 602 ; N uni219C ; G 1875 +U 8605 ; WX 602 ; N uni219D ; G 1876 +U 8606 ; WX 602 ; N uni219E ; G 1877 +U 8607 ; WX 602 ; N uni219F ; G 1878 +U 8608 ; WX 602 ; N uni21A0 ; G 1879 +U 8609 ; WX 602 ; N uni21A1 ; G 1880 +U 8610 ; WX 602 ; N uni21A2 ; G 1881 +U 8611 ; WX 602 ; N uni21A3 ; G 1882 +U 8612 ; WX 602 ; N uni21A4 ; G 1883 +U 8613 ; WX 602 ; N uni21A5 ; G 1884 +U 8614 ; WX 602 ; N uni21A6 ; G 1885 +U 8615 ; WX 602 ; N uni21A7 ; G 1886 +U 8616 ; WX 602 ; N arrowupdnbse ; G 1887 +U 8617 ; WX 602 ; N uni21A9 ; G 1888 +U 8618 ; WX 602 ; N uni21AA ; G 1889 +U 8619 ; WX 602 ; N uni21AB ; G 1890 +U 8620 ; WX 602 ; N uni21AC ; G 1891 +U 8621 ; WX 602 ; N uni21AD ; G 1892 +U 8622 ; WX 602 ; N uni21AE ; G 1893 +U 8623 ; WX 602 ; N uni21AF ; G 1894 +U 8624 ; WX 602 ; N uni21B0 ; G 1895 +U 8625 ; WX 602 ; N uni21B1 ; G 1896 +U 8626 ; WX 602 ; N uni21B2 ; G 1897 +U 8627 ; WX 602 ; N uni21B3 ; G 1898 +U 8628 ; WX 602 ; N uni21B4 ; G 1899 +U 8629 ; WX 602 ; N carriagereturn ; G 1900 +U 8630 ; WX 602 ; N uni21B6 ; G 1901 +U 8631 ; WX 602 ; N uni21B7 ; G 1902 +U 8632 ; WX 602 ; N uni21B8 ; G 1903 +U 8633 ; WX 602 ; N uni21B9 ; G 1904 +U 8634 ; WX 602 ; N uni21BA ; G 1905 +U 8635 ; WX 602 ; N uni21BB ; G 1906 +U 8636 ; WX 602 ; N uni21BC ; G 1907 +U 8637 ; WX 602 ; N uni21BD ; G 1908 +U 8638 ; WX 602 ; N uni21BE ; G 1909 +U 8639 ; WX 602 ; N uni21BF ; G 1910 +U 8640 ; WX 602 ; N uni21C0 ; G 1911 +U 8641 ; WX 602 ; N uni21C1 ; G 1912 +U 8642 ; WX 602 ; N uni21C2 ; G 1913 +U 8643 ; WX 602 ; N uni21C3 ; G 1914 +U 8644 ; WX 602 ; N uni21C4 ; G 1915 +U 8645 ; WX 602 ; N uni21C5 ; G 1916 +U 8646 ; WX 602 ; N uni21C6 ; G 1917 +U 8647 ; WX 602 ; N uni21C7 ; G 1918 +U 8648 ; WX 602 ; N uni21C8 ; G 1919 +U 8649 ; WX 602 ; N uni21C9 ; G 1920 +U 8650 ; WX 602 ; N uni21CA ; G 1921 +U 8651 ; WX 602 ; N uni21CB ; G 1922 +U 8652 ; WX 602 ; N uni21CC ; G 1923 +U 8653 ; WX 602 ; N uni21CD ; G 1924 +U 8654 ; WX 602 ; N uni21CE ; G 1925 +U 8655 ; WX 602 ; N uni21CF ; G 1926 +U 8656 ; WX 602 ; N arrowdblleft ; G 1927 +U 8657 ; WX 602 ; N arrowdblup ; G 1928 +U 8658 ; WX 602 ; N arrowdblright ; G 1929 +U 8659 ; WX 602 ; N arrowdbldown ; G 1930 +U 8660 ; WX 602 ; N arrowdblboth ; G 1931 +U 8661 ; WX 602 ; N uni21D5 ; G 1932 +U 8662 ; WX 602 ; N uni21D6 ; G 1933 +U 8663 ; WX 602 ; N uni21D7 ; G 1934 +U 8664 ; WX 602 ; N uni21D8 ; G 1935 +U 8665 ; WX 602 ; N uni21D9 ; G 1936 +U 8666 ; WX 602 ; N uni21DA ; G 1937 +U 8667 ; WX 602 ; N uni21DB ; G 1938 +U 8668 ; WX 602 ; N uni21DC ; G 1939 +U 8669 ; WX 602 ; N uni21DD ; G 1940 +U 8670 ; WX 602 ; N uni21DE ; G 1941 +U 8671 ; WX 602 ; N uni21DF ; G 1942 +U 8672 ; WX 602 ; N uni21E0 ; G 1943 +U 8673 ; WX 602 ; N uni21E1 ; G 1944 +U 8674 ; WX 602 ; N uni21E2 ; G 1945 +U 8675 ; WX 602 ; N uni21E3 ; G 1946 +U 8676 ; WX 602 ; N uni21E4 ; G 1947 +U 8677 ; WX 602 ; N uni21E5 ; G 1948 +U 8678 ; WX 602 ; N uni21E6 ; G 1949 +U 8679 ; WX 602 ; N uni21E7 ; G 1950 +U 8680 ; WX 602 ; N uni21E8 ; G 1951 +U 8681 ; WX 602 ; N uni21E9 ; G 1952 +U 8682 ; WX 602 ; N uni21EA ; G 1953 +U 8683 ; WX 602 ; N uni21EB ; G 1954 +U 8684 ; WX 602 ; N uni21EC ; G 1955 +U 8685 ; WX 602 ; N uni21ED ; G 1956 +U 8686 ; WX 602 ; N uni21EE ; G 1957 +U 8687 ; WX 602 ; N uni21EF ; G 1958 +U 8688 ; WX 602 ; N uni21F0 ; G 1959 +U 8689 ; WX 602 ; N uni21F1 ; G 1960 +U 8690 ; WX 602 ; N uni21F2 ; G 1961 +U 8691 ; WX 602 ; N uni21F3 ; G 1962 +U 8692 ; WX 602 ; N uni21F4 ; G 1963 +U 8693 ; WX 602 ; N uni21F5 ; G 1964 +U 8694 ; WX 602 ; N uni21F6 ; G 1965 +U 8695 ; WX 602 ; N uni21F7 ; G 1966 +U 8696 ; WX 602 ; N uni21F8 ; G 1967 +U 8697 ; WX 602 ; N uni21F9 ; G 1968 +U 8698 ; WX 602 ; N uni21FA ; G 1969 +U 8699 ; WX 602 ; N uni21FB ; G 1970 +U 8700 ; WX 602 ; N uni21FC ; G 1971 +U 8701 ; WX 602 ; N uni21FD ; G 1972 +U 8702 ; WX 602 ; N uni21FE ; G 1973 +U 8703 ; WX 602 ; N uni21FF ; G 1974 +U 8704 ; WX 602 ; N universal ; G 1975 +U 8705 ; WX 602 ; N uni2201 ; G 1976 +U 8706 ; WX 602 ; N partialdiff ; G 1977 +U 8707 ; WX 602 ; N existential ; G 1978 +U 8708 ; WX 602 ; N uni2204 ; G 1979 +U 8709 ; WX 602 ; N emptyset ; G 1980 +U 8710 ; WX 602 ; N increment ; G 1981 +U 8711 ; WX 602 ; N gradient ; G 1982 +U 8712 ; WX 602 ; N element ; G 1983 +U 8713 ; WX 602 ; N notelement ; G 1984 +U 8714 ; WX 602 ; N uni220A ; G 1985 +U 8715 ; WX 602 ; N suchthat ; G 1986 +U 8716 ; WX 602 ; N uni220C ; G 1987 +U 8717 ; WX 602 ; N uni220D ; G 1988 +U 8718 ; WX 602 ; N uni220E ; G 1989 +U 8719 ; WX 602 ; N product ; G 1990 +U 8720 ; WX 602 ; N uni2210 ; G 1991 +U 8721 ; WX 602 ; N summation ; G 1992 +U 8722 ; WX 602 ; N minus ; G 1993 +U 8723 ; WX 602 ; N uni2213 ; G 1994 +U 8725 ; WX 602 ; N uni2215 ; G 1995 +U 8727 ; WX 602 ; N asteriskmath ; G 1996 +U 8728 ; WX 602 ; N uni2218 ; G 1997 +U 8729 ; WX 602 ; N uni2219 ; G 1998 +U 8730 ; WX 602 ; N radical ; G 1999 +U 8731 ; WX 602 ; N uni221B ; G 2000 +U 8732 ; WX 602 ; N uni221C ; G 2001 +U 8733 ; WX 602 ; N proportional ; G 2002 +U 8734 ; WX 602 ; N infinity ; G 2003 +U 8735 ; WX 602 ; N orthogonal ; G 2004 +U 8736 ; WX 602 ; N angle ; G 2005 +U 8739 ; WX 602 ; N uni2223 ; G 2006 +U 8743 ; WX 602 ; N logicaland ; G 2007 +U 8744 ; WX 602 ; N logicalor ; G 2008 +U 8745 ; WX 602 ; N intersection ; G 2009 +U 8746 ; WX 602 ; N union ; G 2010 +U 8747 ; WX 602 ; N integral ; G 2011 +U 8748 ; WX 602 ; N uni222C ; G 2012 +U 8749 ; WX 602 ; N uni222D ; G 2013 +U 8756 ; WX 602 ; N therefore ; G 2014 +U 8757 ; WX 602 ; N uni2235 ; G 2015 +U 8758 ; WX 602 ; N uni2236 ; G 2016 +U 8759 ; WX 602 ; N uni2237 ; G 2017 +U 8760 ; WX 602 ; N uni2238 ; G 2018 +U 8761 ; WX 602 ; N uni2239 ; G 2019 +U 8762 ; WX 602 ; N uni223A ; G 2020 +U 8763 ; WX 602 ; N uni223B ; G 2021 +U 8764 ; WX 602 ; N similar ; G 2022 +U 8765 ; WX 602 ; N uni223D ; G 2023 +U 8769 ; WX 602 ; N uni2241 ; G 2024 +U 8770 ; WX 602 ; N uni2242 ; G 2025 +U 8771 ; WX 602 ; N uni2243 ; G 2026 +U 8772 ; WX 602 ; N uni2244 ; G 2027 +U 8773 ; WX 602 ; N congruent ; G 2028 +U 8774 ; WX 602 ; N uni2246 ; G 2029 +U 8775 ; WX 602 ; N uni2247 ; G 2030 +U 8776 ; WX 602 ; N approxequal ; G 2031 +U 8777 ; WX 602 ; N uni2249 ; G 2032 +U 8778 ; WX 602 ; N uni224A ; G 2033 +U 8779 ; WX 602 ; N uni224B ; G 2034 +U 8780 ; WX 602 ; N uni224C ; G 2035 +U 8781 ; WX 602 ; N uni224D ; G 2036 +U 8782 ; WX 602 ; N uni224E ; G 2037 +U 8783 ; WX 602 ; N uni224F ; G 2038 +U 8784 ; WX 602 ; N uni2250 ; G 2039 +U 8785 ; WX 602 ; N uni2251 ; G 2040 +U 8786 ; WX 602 ; N uni2252 ; G 2041 +U 8787 ; WX 602 ; N uni2253 ; G 2042 +U 8788 ; WX 602 ; N uni2254 ; G 2043 +U 8789 ; WX 602 ; N uni2255 ; G 2044 +U 8790 ; WX 602 ; N uni2256 ; G 2045 +U 8791 ; WX 602 ; N uni2257 ; G 2046 +U 8792 ; WX 602 ; N uni2258 ; G 2047 +U 8793 ; WX 602 ; N uni2259 ; G 2048 +U 8794 ; WX 602 ; N uni225A ; G 2049 +U 8795 ; WX 602 ; N uni225B ; G 2050 +U 8796 ; WX 602 ; N uni225C ; G 2051 +U 8797 ; WX 602 ; N uni225D ; G 2052 +U 8798 ; WX 602 ; N uni225E ; G 2053 +U 8799 ; WX 602 ; N uni225F ; G 2054 +U 8800 ; WX 602 ; N notequal ; G 2055 +U 8801 ; WX 602 ; N equivalence ; G 2056 +U 8802 ; WX 602 ; N uni2262 ; G 2057 +U 8803 ; WX 602 ; N uni2263 ; G 2058 +U 8804 ; WX 602 ; N lessequal ; G 2059 +U 8805 ; WX 602 ; N greaterequal ; G 2060 +U 8806 ; WX 602 ; N uni2266 ; G 2061 +U 8807 ; WX 602 ; N uni2267 ; G 2062 +U 8808 ; WX 602 ; N uni2268 ; G 2063 +U 8809 ; WX 602 ; N uni2269 ; G 2064 +U 8813 ; WX 602 ; N uni226D ; G 2065 +U 8814 ; WX 602 ; N uni226E ; G 2066 +U 8815 ; WX 602 ; N uni226F ; G 2067 +U 8816 ; WX 602 ; N uni2270 ; G 2068 +U 8817 ; WX 602 ; N uni2271 ; G 2069 +U 8818 ; WX 602 ; N uni2272 ; G 2070 +U 8819 ; WX 602 ; N uni2273 ; G 2071 +U 8820 ; WX 602 ; N uni2274 ; G 2072 +U 8821 ; WX 602 ; N uni2275 ; G 2073 +U 8822 ; WX 602 ; N uni2276 ; G 2074 +U 8823 ; WX 602 ; N uni2277 ; G 2075 +U 8824 ; WX 602 ; N uni2278 ; G 2076 +U 8825 ; WX 602 ; N uni2279 ; G 2077 +U 8826 ; WX 602 ; N uni227A ; G 2078 +U 8827 ; WX 602 ; N uni227B ; G 2079 +U 8828 ; WX 602 ; N uni227C ; G 2080 +U 8829 ; WX 602 ; N uni227D ; G 2081 +U 8830 ; WX 602 ; N uni227E ; G 2082 +U 8831 ; WX 602 ; N uni227F ; G 2083 +U 8832 ; WX 602 ; N uni2280 ; G 2084 +U 8833 ; WX 602 ; N uni2281 ; G 2085 +U 8834 ; WX 602 ; N propersubset ; G 2086 +U 8835 ; WX 602 ; N propersuperset ; G 2087 +U 8836 ; WX 602 ; N notsubset ; G 2088 +U 8837 ; WX 602 ; N uni2285 ; G 2089 +U 8838 ; WX 602 ; N reflexsubset ; G 2090 +U 8839 ; WX 602 ; N reflexsuperset ; G 2091 +U 8840 ; WX 602 ; N uni2288 ; G 2092 +U 8841 ; WX 602 ; N uni2289 ; G 2093 +U 8842 ; WX 602 ; N uni228A ; G 2094 +U 8843 ; WX 602 ; N uni228B ; G 2095 +U 8845 ; WX 602 ; N uni228D ; G 2096 +U 8846 ; WX 602 ; N uni228E ; G 2097 +U 8847 ; WX 602 ; N uni228F ; G 2098 +U 8848 ; WX 602 ; N uni2290 ; G 2099 +U 8849 ; WX 602 ; N uni2291 ; G 2100 +U 8850 ; WX 602 ; N uni2292 ; G 2101 +U 8851 ; WX 602 ; N uni2293 ; G 2102 +U 8852 ; WX 602 ; N uni2294 ; G 2103 +U 8853 ; WX 602 ; N circleplus ; G 2104 +U 8854 ; WX 602 ; N uni2296 ; G 2105 +U 8855 ; WX 602 ; N circlemultiply ; G 2106 +U 8856 ; WX 602 ; N uni2298 ; G 2107 +U 8857 ; WX 602 ; N uni2299 ; G 2108 +U 8858 ; WX 602 ; N uni229A ; G 2109 +U 8859 ; WX 602 ; N uni229B ; G 2110 +U 8860 ; WX 602 ; N uni229C ; G 2111 +U 8861 ; WX 602 ; N uni229D ; G 2112 +U 8862 ; WX 602 ; N uni229E ; G 2113 +U 8863 ; WX 602 ; N uni229F ; G 2114 +U 8864 ; WX 602 ; N uni22A0 ; G 2115 +U 8865 ; WX 602 ; N uni22A1 ; G 2116 +U 8866 ; WX 602 ; N uni22A2 ; G 2117 +U 8867 ; WX 602 ; N uni22A3 ; G 2118 +U 8868 ; WX 602 ; N uni22A4 ; G 2119 +U 8869 ; WX 602 ; N perpendicular ; G 2120 +U 8882 ; WX 602 ; N uni22B2 ; G 2121 +U 8883 ; WX 602 ; N uni22B3 ; G 2122 +U 8884 ; WX 602 ; N uni22B4 ; G 2123 +U 8885 ; WX 602 ; N uni22B5 ; G 2124 +U 8888 ; WX 602 ; N uni22B8 ; G 2125 +U 8898 ; WX 602 ; N uni22C2 ; G 2126 +U 8899 ; WX 602 ; N uni22C3 ; G 2127 +U 8900 ; WX 602 ; N uni22C4 ; G 2128 +U 8901 ; WX 602 ; N dotmath ; G 2129 +U 8902 ; WX 602 ; N uni22C6 ; G 2130 +U 8909 ; WX 602 ; N uni22CD ; G 2131 +U 8910 ; WX 602 ; N uni22CE ; G 2132 +U 8911 ; WX 602 ; N uni22CF ; G 2133 +U 8912 ; WX 602 ; N uni22D0 ; G 2134 +U 8913 ; WX 602 ; N uni22D1 ; G 2135 +U 8922 ; WX 602 ; N uni22DA ; G 2136 +U 8923 ; WX 602 ; N uni22DB ; G 2137 +U 8924 ; WX 602 ; N uni22DC ; G 2138 +U 8925 ; WX 602 ; N uni22DD ; G 2139 +U 8926 ; WX 602 ; N uni22DE ; G 2140 +U 8927 ; WX 602 ; N uni22DF ; G 2141 +U 8928 ; WX 602 ; N uni22E0 ; G 2142 +U 8929 ; WX 602 ; N uni22E1 ; G 2143 +U 8930 ; WX 602 ; N uni22E2 ; G 2144 +U 8931 ; WX 602 ; N uni22E3 ; G 2145 +U 8932 ; WX 602 ; N uni22E4 ; G 2146 +U 8933 ; WX 602 ; N uni22E5 ; G 2147 +U 8934 ; WX 602 ; N uni22E6 ; G 2148 +U 8935 ; WX 602 ; N uni22E7 ; G 2149 +U 8936 ; WX 602 ; N uni22E8 ; G 2150 +U 8937 ; WX 602 ; N uni22E9 ; G 2151 +U 8943 ; WX 602 ; N uni22EF ; G 2152 +U 8960 ; WX 602 ; N uni2300 ; G 2153 +U 8961 ; WX 602 ; N uni2301 ; G 2154 +U 8962 ; WX 602 ; N house ; G 2155 +U 8963 ; WX 602 ; N uni2303 ; G 2156 +U 8964 ; WX 602 ; N uni2304 ; G 2157 +U 8965 ; WX 602 ; N uni2305 ; G 2158 +U 8966 ; WX 602 ; N uni2306 ; G 2159 +U 8968 ; WX 602 ; N uni2308 ; G 2160 +U 8969 ; WX 602 ; N uni2309 ; G 2161 +U 8970 ; WX 602 ; N uni230A ; G 2162 +U 8971 ; WX 602 ; N uni230B ; G 2163 +U 8972 ; WX 602 ; N uni230C ; G 2164 +U 8973 ; WX 602 ; N uni230D ; G 2165 +U 8974 ; WX 602 ; N uni230E ; G 2166 +U 8975 ; WX 602 ; N uni230F ; G 2167 +U 8976 ; WX 602 ; N revlogicalnot ; G 2168 +U 8977 ; WX 602 ; N uni2311 ; G 2169 +U 8978 ; WX 602 ; N uni2312 ; G 2170 +U 8979 ; WX 602 ; N uni2313 ; G 2171 +U 8980 ; WX 602 ; N uni2314 ; G 2172 +U 8981 ; WX 602 ; N uni2315 ; G 2173 +U 8984 ; WX 602 ; N uni2318 ; G 2174 +U 8985 ; WX 602 ; N uni2319 ; G 2175 +U 8988 ; WX 602 ; N uni231C ; G 2176 +U 8989 ; WX 602 ; N uni231D ; G 2177 +U 8990 ; WX 602 ; N uni231E ; G 2178 +U 8991 ; WX 602 ; N uni231F ; G 2179 +U 8992 ; WX 602 ; N integraltp ; G 2180 +U 8993 ; WX 602 ; N integralbt ; G 2181 +U 8997 ; WX 602 ; N uni2325 ; G 2182 +U 8998 ; WX 602 ; N uni2326 ; G 2183 +U 8999 ; WX 602 ; N uni2327 ; G 2184 +U 9000 ; WX 602 ; N uni2328 ; G 2185 +U 9003 ; WX 602 ; N uni232B ; G 2186 +U 9013 ; WX 602 ; N uni2335 ; G 2187 +U 9014 ; WX 602 ; N uni2336 ; G 2188 +U 9015 ; WX 602 ; N uni2337 ; G 2189 +U 9016 ; WX 602 ; N uni2338 ; G 2190 +U 9017 ; WX 602 ; N uni2339 ; G 2191 +U 9018 ; WX 602 ; N uni233A ; G 2192 +U 9019 ; WX 602 ; N uni233B ; G 2193 +U 9020 ; WX 602 ; N uni233C ; G 2194 +U 9021 ; WX 602 ; N uni233D ; G 2195 +U 9022 ; WX 602 ; N uni233E ; G 2196 +U 9023 ; WX 602 ; N uni233F ; G 2197 +U 9024 ; WX 602 ; N uni2340 ; G 2198 +U 9025 ; WX 602 ; N uni2341 ; G 2199 +U 9026 ; WX 602 ; N uni2342 ; G 2200 +U 9027 ; WX 602 ; N uni2343 ; G 2201 +U 9028 ; WX 602 ; N uni2344 ; G 2202 +U 9029 ; WX 602 ; N uni2345 ; G 2203 +U 9030 ; WX 602 ; N uni2346 ; G 2204 +U 9031 ; WX 602 ; N uni2347 ; G 2205 +U 9032 ; WX 602 ; N uni2348 ; G 2206 +U 9033 ; WX 602 ; N uni2349 ; G 2207 +U 9034 ; WX 602 ; N uni234A ; G 2208 +U 9035 ; WX 602 ; N uni234B ; G 2209 +U 9036 ; WX 602 ; N uni234C ; G 2210 +U 9037 ; WX 602 ; N uni234D ; G 2211 +U 9038 ; WX 602 ; N uni234E ; G 2212 +U 9039 ; WX 602 ; N uni234F ; G 2213 +U 9040 ; WX 602 ; N uni2350 ; G 2214 +U 9041 ; WX 602 ; N uni2351 ; G 2215 +U 9042 ; WX 602 ; N uni2352 ; G 2216 +U 9043 ; WX 602 ; N uni2353 ; G 2217 +U 9044 ; WX 602 ; N uni2354 ; G 2218 +U 9045 ; WX 602 ; N uni2355 ; G 2219 +U 9046 ; WX 602 ; N uni2356 ; G 2220 +U 9047 ; WX 602 ; N uni2357 ; G 2221 +U 9048 ; WX 602 ; N uni2358 ; G 2222 +U 9049 ; WX 602 ; N uni2359 ; G 2223 +U 9050 ; WX 602 ; N uni235A ; G 2224 +U 9051 ; WX 602 ; N uni235B ; G 2225 +U 9052 ; WX 602 ; N uni235C ; G 2226 +U 9053 ; WX 602 ; N uni235D ; G 2227 +U 9054 ; WX 602 ; N uni235E ; G 2228 +U 9055 ; WX 602 ; N uni235F ; G 2229 +U 9056 ; WX 602 ; N uni2360 ; G 2230 +U 9057 ; WX 602 ; N uni2361 ; G 2231 +U 9058 ; WX 602 ; N uni2362 ; G 2232 +U 9059 ; WX 602 ; N uni2363 ; G 2233 +U 9060 ; WX 602 ; N uni2364 ; G 2234 +U 9061 ; WX 602 ; N uni2365 ; G 2235 +U 9062 ; WX 602 ; N uni2366 ; G 2236 +U 9063 ; WX 602 ; N uni2367 ; G 2237 +U 9064 ; WX 602 ; N uni2368 ; G 2238 +U 9065 ; WX 602 ; N uni2369 ; G 2239 +U 9066 ; WX 602 ; N uni236A ; G 2240 +U 9067 ; WX 602 ; N uni236B ; G 2241 +U 9068 ; WX 602 ; N uni236C ; G 2242 +U 9069 ; WX 602 ; N uni236D ; G 2243 +U 9070 ; WX 602 ; N uni236E ; G 2244 +U 9071 ; WX 602 ; N uni236F ; G 2245 +U 9072 ; WX 602 ; N uni2370 ; G 2246 +U 9073 ; WX 602 ; N uni2371 ; G 2247 +U 9074 ; WX 602 ; N uni2372 ; G 2248 +U 9075 ; WX 602 ; N uni2373 ; G 2249 +U 9076 ; WX 602 ; N uni2374 ; G 2250 +U 9077 ; WX 602 ; N uni2375 ; G 2251 +U 9078 ; WX 602 ; N uni2376 ; G 2252 +U 9079 ; WX 602 ; N uni2377 ; G 2253 +U 9080 ; WX 602 ; N uni2378 ; G 2254 +U 9081 ; WX 602 ; N uni2379 ; G 2255 +U 9082 ; WX 602 ; N uni237A ; G 2256 +U 9085 ; WX 602 ; N uni237D ; G 2257 +U 9088 ; WX 602 ; N uni2380 ; G 2258 +U 9089 ; WX 602 ; N uni2381 ; G 2259 +U 9090 ; WX 602 ; N uni2382 ; G 2260 +U 9091 ; WX 602 ; N uni2383 ; G 2261 +U 9096 ; WX 602 ; N uni2388 ; G 2262 +U 9097 ; WX 602 ; N uni2389 ; G 2263 +U 9098 ; WX 602 ; N uni238A ; G 2264 +U 9099 ; WX 602 ; N uni238B ; G 2265 +U 9109 ; WX 602 ; N uni2395 ; G 2266 +U 9115 ; WX 602 ; N uni239B ; G 2267 +U 9116 ; WX 602 ; N uni239C ; G 2268 +U 9117 ; WX 602 ; N uni239D ; G 2269 +U 9118 ; WX 602 ; N uni239E ; G 2270 +U 9119 ; WX 602 ; N uni239F ; G 2271 +U 9120 ; WX 602 ; N uni23A0 ; G 2272 +U 9121 ; WX 602 ; N uni23A1 ; G 2273 +U 9122 ; WX 602 ; N uni23A2 ; G 2274 +U 9123 ; WX 602 ; N uni23A3 ; G 2275 +U 9124 ; WX 602 ; N uni23A4 ; G 2276 +U 9125 ; WX 602 ; N uni23A5 ; G 2277 +U 9126 ; WX 602 ; N uni23A6 ; G 2278 +U 9127 ; WX 602 ; N uni23A7 ; G 2279 +U 9128 ; WX 602 ; N uni23A8 ; G 2280 +U 9129 ; WX 602 ; N uni23A9 ; G 2281 +U 9130 ; WX 602 ; N uni23AA ; G 2282 +U 9131 ; WX 602 ; N uni23AB ; G 2283 +U 9132 ; WX 602 ; N uni23AC ; G 2284 +U 9133 ; WX 602 ; N uni23AD ; G 2285 +U 9134 ; WX 602 ; N uni23AE ; G 2286 +U 9166 ; WX 602 ; N uni23CE ; G 2287 +U 9167 ; WX 602 ; N uni23CF ; G 2288 +U 9251 ; WX 602 ; N uni2423 ; G 2289 +U 9472 ; WX 602 ; N SF100000 ; G 2290 +U 9473 ; WX 602 ; N uni2501 ; G 2291 +U 9474 ; WX 602 ; N SF110000 ; G 2292 +U 9475 ; WX 602 ; N uni2503 ; G 2293 +U 9476 ; WX 602 ; N uni2504 ; G 2294 +U 9477 ; WX 602 ; N uni2505 ; G 2295 +U 9478 ; WX 602 ; N uni2506 ; G 2296 +U 9479 ; WX 602 ; N uni2507 ; G 2297 +U 9480 ; WX 602 ; N uni2508 ; G 2298 +U 9481 ; WX 602 ; N uni2509 ; G 2299 +U 9482 ; WX 602 ; N uni250A ; G 2300 +U 9483 ; WX 602 ; N uni250B ; G 2301 +U 9484 ; WX 602 ; N SF010000 ; G 2302 +U 9485 ; WX 602 ; N uni250D ; G 2303 +U 9486 ; WX 602 ; N uni250E ; G 2304 +U 9487 ; WX 602 ; N uni250F ; G 2305 +U 9488 ; WX 602 ; N SF030000 ; G 2306 +U 9489 ; WX 602 ; N uni2511 ; G 2307 +U 9490 ; WX 602 ; N uni2512 ; G 2308 +U 9491 ; WX 602 ; N uni2513 ; G 2309 +U 9492 ; WX 602 ; N SF020000 ; G 2310 +U 9493 ; WX 602 ; N uni2515 ; G 2311 +U 9494 ; WX 602 ; N uni2516 ; G 2312 +U 9495 ; WX 602 ; N uni2517 ; G 2313 +U 9496 ; WX 602 ; N SF040000 ; G 2314 +U 9497 ; WX 602 ; N uni2519 ; G 2315 +U 9498 ; WX 602 ; N uni251A ; G 2316 +U 9499 ; WX 602 ; N uni251B ; G 2317 +U 9500 ; WX 602 ; N SF080000 ; G 2318 +U 9501 ; WX 602 ; N uni251D ; G 2319 +U 9502 ; WX 602 ; N uni251E ; G 2320 +U 9503 ; WX 602 ; N uni251F ; G 2321 +U 9504 ; WX 602 ; N uni2520 ; G 2322 +U 9505 ; WX 602 ; N uni2521 ; G 2323 +U 9506 ; WX 602 ; N uni2522 ; G 2324 +U 9507 ; WX 602 ; N uni2523 ; G 2325 +U 9508 ; WX 602 ; N SF090000 ; G 2326 +U 9509 ; WX 602 ; N uni2525 ; G 2327 +U 9510 ; WX 602 ; N uni2526 ; G 2328 +U 9511 ; WX 602 ; N uni2527 ; G 2329 +U 9512 ; WX 602 ; N uni2528 ; G 2330 +U 9513 ; WX 602 ; N uni2529 ; G 2331 +U 9514 ; WX 602 ; N uni252A ; G 2332 +U 9515 ; WX 602 ; N uni252B ; G 2333 +U 9516 ; WX 602 ; N SF060000 ; G 2334 +U 9517 ; WX 602 ; N uni252D ; G 2335 +U 9518 ; WX 602 ; N uni252E ; G 2336 +U 9519 ; WX 602 ; N uni252F ; G 2337 +U 9520 ; WX 602 ; N uni2530 ; G 2338 +U 9521 ; WX 602 ; N uni2531 ; G 2339 +U 9522 ; WX 602 ; N uni2532 ; G 2340 +U 9523 ; WX 602 ; N uni2533 ; G 2341 +U 9524 ; WX 602 ; N SF070000 ; G 2342 +U 9525 ; WX 602 ; N uni2535 ; G 2343 +U 9526 ; WX 602 ; N uni2536 ; G 2344 +U 9527 ; WX 602 ; N uni2537 ; G 2345 +U 9528 ; WX 602 ; N uni2538 ; G 2346 +U 9529 ; WX 602 ; N uni2539 ; G 2347 +U 9530 ; WX 602 ; N uni253A ; G 2348 +U 9531 ; WX 602 ; N uni253B ; G 2349 +U 9532 ; WX 602 ; N SF050000 ; G 2350 +U 9533 ; WX 602 ; N uni253D ; G 2351 +U 9534 ; WX 602 ; N uni253E ; G 2352 +U 9535 ; WX 602 ; N uni253F ; G 2353 +U 9536 ; WX 602 ; N uni2540 ; G 2354 +U 9537 ; WX 602 ; N uni2541 ; G 2355 +U 9538 ; WX 602 ; N uni2542 ; G 2356 +U 9539 ; WX 602 ; N uni2543 ; G 2357 +U 9540 ; WX 602 ; N uni2544 ; G 2358 +U 9541 ; WX 602 ; N uni2545 ; G 2359 +U 9542 ; WX 602 ; N uni2546 ; G 2360 +U 9543 ; WX 602 ; N uni2547 ; G 2361 +U 9544 ; WX 602 ; N uni2548 ; G 2362 +U 9545 ; WX 602 ; N uni2549 ; G 2363 +U 9546 ; WX 602 ; N uni254A ; G 2364 +U 9547 ; WX 602 ; N uni254B ; G 2365 +U 9548 ; WX 602 ; N uni254C ; G 2366 +U 9549 ; WX 602 ; N uni254D ; G 2367 +U 9550 ; WX 602 ; N uni254E ; G 2368 +U 9551 ; WX 602 ; N uni254F ; G 2369 +U 9552 ; WX 602 ; N SF430000 ; G 2370 +U 9553 ; WX 602 ; N SF240000 ; G 2371 +U 9554 ; WX 602 ; N SF510000 ; G 2372 +U 9555 ; WX 602 ; N SF520000 ; G 2373 +U 9556 ; WX 602 ; N SF390000 ; G 2374 +U 9557 ; WX 602 ; N SF220000 ; G 2375 +U 9558 ; WX 602 ; N SF210000 ; G 2376 +U 9559 ; WX 602 ; N SF250000 ; G 2377 +U 9560 ; WX 602 ; N SF500000 ; G 2378 +U 9561 ; WX 602 ; N SF490000 ; G 2379 +U 9562 ; WX 602 ; N SF380000 ; G 2380 +U 9563 ; WX 602 ; N SF280000 ; G 2381 +U 9564 ; WX 602 ; N SF270000 ; G 2382 +U 9565 ; WX 602 ; N SF260000 ; G 2383 +U 9566 ; WX 602 ; N SF360000 ; G 2384 +U 9567 ; WX 602 ; N SF370000 ; G 2385 +U 9568 ; WX 602 ; N SF420000 ; G 2386 +U 9569 ; WX 602 ; N SF190000 ; G 2387 +U 9570 ; WX 602 ; N SF200000 ; G 2388 +U 9571 ; WX 602 ; N SF230000 ; G 2389 +U 9572 ; WX 602 ; N SF470000 ; G 2390 +U 9573 ; WX 602 ; N SF480000 ; G 2391 +U 9574 ; WX 602 ; N SF410000 ; G 2392 +U 9575 ; WX 602 ; N SF450000 ; G 2393 +U 9576 ; WX 602 ; N SF460000 ; G 2394 +U 9577 ; WX 602 ; N SF400000 ; G 2395 +U 9578 ; WX 602 ; N SF540000 ; G 2396 +U 9579 ; WX 602 ; N SF530000 ; G 2397 +U 9580 ; WX 602 ; N SF440000 ; G 2398 +U 9581 ; WX 602 ; N uni256D ; G 2399 +U 9582 ; WX 602 ; N uni256E ; G 2400 +U 9583 ; WX 602 ; N uni256F ; G 2401 +U 9584 ; WX 602 ; N uni2570 ; G 2402 +U 9585 ; WX 602 ; N uni2571 ; G 2403 +U 9586 ; WX 602 ; N uni2572 ; G 2404 +U 9587 ; WX 602 ; N uni2573 ; G 2405 +U 9588 ; WX 602 ; N uni2574 ; G 2406 +U 9589 ; WX 602 ; N uni2575 ; G 2407 +U 9590 ; WX 602 ; N uni2576 ; G 2408 +U 9591 ; WX 602 ; N uni2577 ; G 2409 +U 9592 ; WX 602 ; N uni2578 ; G 2410 +U 9593 ; WX 602 ; N uni2579 ; G 2411 +U 9594 ; WX 602 ; N uni257A ; G 2412 +U 9595 ; WX 602 ; N uni257B ; G 2413 +U 9596 ; WX 602 ; N uni257C ; G 2414 +U 9597 ; WX 602 ; N uni257D ; G 2415 +U 9598 ; WX 602 ; N uni257E ; G 2416 +U 9599 ; WX 602 ; N uni257F ; G 2417 +U 9600 ; WX 602 ; N upblock ; G 2418 +U 9601 ; WX 602 ; N uni2581 ; G 2419 +U 9602 ; WX 602 ; N uni2582 ; G 2420 +U 9603 ; WX 602 ; N uni2583 ; G 2421 +U 9604 ; WX 602 ; N dnblock ; G 2422 +U 9605 ; WX 602 ; N uni2585 ; G 2423 +U 9606 ; WX 602 ; N uni2586 ; G 2424 +U 9607 ; WX 602 ; N uni2587 ; G 2425 +U 9608 ; WX 602 ; N block ; G 2426 +U 9609 ; WX 602 ; N uni2589 ; G 2427 +U 9610 ; WX 602 ; N uni258A ; G 2428 +U 9611 ; WX 602 ; N uni258B ; G 2429 +U 9612 ; WX 602 ; N lfblock ; G 2430 +U 9613 ; WX 602 ; N uni258D ; G 2431 +U 9614 ; WX 602 ; N uni258E ; G 2432 +U 9615 ; WX 602 ; N uni258F ; G 2433 +U 9616 ; WX 602 ; N rtblock ; G 2434 +U 9617 ; WX 602 ; N ltshade ; G 2435 +U 9618 ; WX 602 ; N shade ; G 2436 +U 9619 ; WX 602 ; N dkshade ; G 2437 +U 9620 ; WX 602 ; N uni2594 ; G 2438 +U 9621 ; WX 602 ; N uni2595 ; G 2439 +U 9622 ; WX 602 ; N uni2596 ; G 2440 +U 9623 ; WX 602 ; N uni2597 ; G 2441 +U 9624 ; WX 602 ; N uni2598 ; G 2442 +U 9625 ; WX 602 ; N uni2599 ; G 2443 +U 9626 ; WX 602 ; N uni259A ; G 2444 +U 9627 ; WX 602 ; N uni259B ; G 2445 +U 9628 ; WX 602 ; N uni259C ; G 2446 +U 9629 ; WX 602 ; N uni259D ; G 2447 +U 9630 ; WX 602 ; N uni259E ; G 2448 +U 9631 ; WX 602 ; N uni259F ; G 2449 +U 9632 ; WX 602 ; N filledbox ; G 2450 +U 9633 ; WX 602 ; N H22073 ; G 2451 +U 9634 ; WX 602 ; N uni25A2 ; G 2452 +U 9635 ; WX 602 ; N uni25A3 ; G 2453 +U 9636 ; WX 602 ; N uni25A4 ; G 2454 +U 9637 ; WX 602 ; N uni25A5 ; G 2455 +U 9638 ; WX 602 ; N uni25A6 ; G 2456 +U 9639 ; WX 602 ; N uni25A7 ; G 2457 +U 9640 ; WX 602 ; N uni25A8 ; G 2458 +U 9641 ; WX 602 ; N uni25A9 ; G 2459 +U 9642 ; WX 602 ; N H18543 ; G 2460 +U 9643 ; WX 602 ; N H18551 ; G 2461 +U 9644 ; WX 602 ; N filledrect ; G 2462 +U 9645 ; WX 602 ; N uni25AD ; G 2463 +U 9646 ; WX 602 ; N uni25AE ; G 2464 +U 9647 ; WX 602 ; N uni25AF ; G 2465 +U 9648 ; WX 602 ; N uni25B0 ; G 2466 +U 9649 ; WX 602 ; N uni25B1 ; G 2467 +U 9650 ; WX 602 ; N triagup ; G 2468 +U 9651 ; WX 602 ; N uni25B3 ; G 2469 +U 9652 ; WX 602 ; N uni25B4 ; G 2470 +U 9653 ; WX 602 ; N uni25B5 ; G 2471 +U 9654 ; WX 602 ; N uni25B6 ; G 2472 +U 9655 ; WX 602 ; N uni25B7 ; G 2473 +U 9656 ; WX 602 ; N uni25B8 ; G 2474 +U 9657 ; WX 602 ; N uni25B9 ; G 2475 +U 9658 ; WX 602 ; N triagrt ; G 2476 +U 9659 ; WX 602 ; N uni25BB ; G 2477 +U 9660 ; WX 602 ; N triagdn ; G 2478 +U 9661 ; WX 602 ; N uni25BD ; G 2479 +U 9662 ; WX 602 ; N uni25BE ; G 2480 +U 9663 ; WX 602 ; N uni25BF ; G 2481 +U 9664 ; WX 602 ; N uni25C0 ; G 2482 +U 9665 ; WX 602 ; N uni25C1 ; G 2483 +U 9666 ; WX 602 ; N uni25C2 ; G 2484 +U 9667 ; WX 602 ; N uni25C3 ; G 2485 +U 9668 ; WX 602 ; N triaglf ; G 2486 +U 9669 ; WX 602 ; N uni25C5 ; G 2487 +U 9670 ; WX 602 ; N uni25C6 ; G 2488 +U 9671 ; WX 602 ; N uni25C7 ; G 2489 +U 9672 ; WX 602 ; N uni25C8 ; G 2490 +U 9673 ; WX 602 ; N uni25C9 ; G 2491 +U 9674 ; WX 602 ; N lozenge ; G 2492 +U 9675 ; WX 602 ; N circle ; G 2493 +U 9676 ; WX 602 ; N uni25CC ; G 2494 +U 9677 ; WX 602 ; N uni25CD ; G 2495 +U 9678 ; WX 602 ; N uni25CE ; G 2496 +U 9679 ; WX 602 ; N H18533 ; G 2497 +U 9680 ; WX 602 ; N uni25D0 ; G 2498 +U 9681 ; WX 602 ; N uni25D1 ; G 2499 +U 9682 ; WX 602 ; N uni25D2 ; G 2500 +U 9683 ; WX 602 ; N uni25D3 ; G 2501 +U 9684 ; WX 602 ; N uni25D4 ; G 2502 +U 9685 ; WX 602 ; N uni25D5 ; G 2503 +U 9686 ; WX 602 ; N uni25D6 ; G 2504 +U 9687 ; WX 602 ; N uni25D7 ; G 2505 +U 9688 ; WX 602 ; N invbullet ; G 2506 +U 9689 ; WX 602 ; N invcircle ; G 2507 +U 9690 ; WX 602 ; N uni25DA ; G 2508 +U 9691 ; WX 602 ; N uni25DB ; G 2509 +U 9692 ; WX 602 ; N uni25DC ; G 2510 +U 9693 ; WX 602 ; N uni25DD ; G 2511 +U 9694 ; WX 602 ; N uni25DE ; G 2512 +U 9695 ; WX 602 ; N uni25DF ; G 2513 +U 9696 ; WX 602 ; N uni25E0 ; G 2514 +U 9697 ; WX 602 ; N uni25E1 ; G 2515 +U 9698 ; WX 602 ; N uni25E2 ; G 2516 +U 9699 ; WX 602 ; N uni25E3 ; G 2517 +U 9700 ; WX 602 ; N uni25E4 ; G 2518 +U 9701 ; WX 602 ; N uni25E5 ; G 2519 +U 9702 ; WX 602 ; N openbullet ; G 2520 +U 9703 ; WX 602 ; N uni25E7 ; G 2521 +U 9704 ; WX 602 ; N uni25E8 ; G 2522 +U 9705 ; WX 602 ; N uni25E9 ; G 2523 +U 9706 ; WX 602 ; N uni25EA ; G 2524 +U 9707 ; WX 602 ; N uni25EB ; G 2525 +U 9708 ; WX 602 ; N uni25EC ; G 2526 +U 9709 ; WX 602 ; N uni25ED ; G 2527 +U 9710 ; WX 602 ; N uni25EE ; G 2528 +U 9711 ; WX 602 ; N uni25EF ; G 2529 +U 9712 ; WX 602 ; N uni25F0 ; G 2530 +U 9713 ; WX 602 ; N uni25F1 ; G 2531 +U 9714 ; WX 602 ; N uni25F2 ; G 2532 +U 9715 ; WX 602 ; N uni25F3 ; G 2533 +U 9716 ; WX 602 ; N uni25F4 ; G 2534 +U 9717 ; WX 602 ; N uni25F5 ; G 2535 +U 9718 ; WX 602 ; N uni25F6 ; G 2536 +U 9719 ; WX 602 ; N uni25F7 ; G 2537 +U 9720 ; WX 602 ; N uni25F8 ; G 2538 +U 9721 ; WX 602 ; N uni25F9 ; G 2539 +U 9722 ; WX 602 ; N uni25FA ; G 2540 +U 9723 ; WX 602 ; N uni25FB ; G 2541 +U 9724 ; WX 602 ; N uni25FC ; G 2542 +U 9725 ; WX 602 ; N uni25FD ; G 2543 +U 9726 ; WX 602 ; N uni25FE ; G 2544 +U 9727 ; WX 602 ; N uni25FF ; G 2545 +U 9728 ; WX 602 ; N uni2600 ; G 2546 +U 9784 ; WX 602 ; N uni2638 ; G 2547 +U 9785 ; WX 602 ; N uni2639 ; G 2548 +U 9786 ; WX 602 ; N smileface ; G 2549 +U 9787 ; WX 602 ; N invsmileface ; G 2550 +U 9788 ; WX 602 ; N sun ; G 2551 +U 9791 ; WX 602 ; N uni263F ; G 2552 +U 9792 ; WX 602 ; N female ; G 2553 +U 9793 ; WX 602 ; N uni2641 ; G 2554 +U 9794 ; WX 602 ; N male ; G 2555 +U 9795 ; WX 602 ; N uni2643 ; G 2556 +U 9796 ; WX 602 ; N uni2644 ; G 2557 +U 9797 ; WX 602 ; N uni2645 ; G 2558 +U 9798 ; WX 602 ; N uni2646 ; G 2559 +U 9799 ; WX 602 ; N uni2647 ; G 2560 +U 9824 ; WX 602 ; N spade ; G 2561 +U 9825 ; WX 602 ; N uni2661 ; G 2562 +U 9826 ; WX 602 ; N uni2662 ; G 2563 +U 9827 ; WX 602 ; N club ; G 2564 +U 9828 ; WX 602 ; N uni2664 ; G 2565 +U 9829 ; WX 602 ; N heart ; G 2566 +U 9830 ; WX 602 ; N diamond ; G 2567 +U 9831 ; WX 602 ; N uni2667 ; G 2568 +U 9833 ; WX 602 ; N uni2669 ; G 2569 +U 9834 ; WX 602 ; N musicalnote ; G 2570 +U 9835 ; WX 602 ; N musicalnotedbl ; G 2571 +U 9836 ; WX 602 ; N uni266C ; G 2572 +U 9837 ; WX 602 ; N uni266D ; G 2573 +U 9838 ; WX 602 ; N uni266E ; G 2574 +U 9839 ; WX 602 ; N uni266F ; G 2575 +U 10178 ; WX 602 ; N uni27C2 ; G 2576 +U 10181 ; WX 602 ; N uni27C5 ; G 2577 +U 10182 ; WX 602 ; N uni27C6 ; G 2578 +U 10204 ; WX 602 ; N uni27DC ; G 2579 +U 10208 ; WX 602 ; N uni27E0 ; G 2580 +U 10214 ; WX 602 ; N uni27E6 ; G 2581 +U 10215 ; WX 602 ; N uni27E7 ; G 2582 +U 10216 ; WX 602 ; N uni27E8 ; G 2583 +U 10217 ; WX 602 ; N uni27E9 ; G 2584 +U 10218 ; WX 602 ; N uni27EA ; G 2585 +U 10219 ; WX 602 ; N uni27EB ; G 2586 +U 10229 ; WX 602 ; N uni27F5 ; G 2587 +U 10230 ; WX 602 ; N uni27F6 ; G 2588 +U 10231 ; WX 602 ; N uni27F7 ; G 2589 +U 10631 ; WX 602 ; N uni2987 ; G 2590 +U 10632 ; WX 602 ; N uni2988 ; G 2591 +U 10647 ; WX 602 ; N uni2997 ; G 2592 +U 10648 ; WX 602 ; N uni2998 ; G 2593 +U 10731 ; WX 602 ; N uni29EB ; G 2594 +U 10746 ; WX 602 ; N uni29FA ; G 2595 +U 10747 ; WX 602 ; N uni29FB ; G 2596 +U 10752 ; WX 602 ; N uni2A00 ; G 2597 +U 10799 ; WX 602 ; N uni2A2F ; G 2598 +U 10858 ; WX 602 ; N uni2A6A ; G 2599 +U 10859 ; WX 602 ; N uni2A6B ; G 2600 +U 11013 ; WX 602 ; N uni2B05 ; G 2601 +U 11014 ; WX 602 ; N uni2B06 ; G 2602 +U 11015 ; WX 602 ; N uni2B07 ; G 2603 +U 11016 ; WX 602 ; N uni2B08 ; G 2604 +U 11017 ; WX 602 ; N uni2B09 ; G 2605 +U 11018 ; WX 602 ; N uni2B0A ; G 2606 +U 11019 ; WX 602 ; N uni2B0B ; G 2607 +U 11020 ; WX 602 ; N uni2B0C ; G 2608 +U 11021 ; WX 602 ; N uni2B0D ; G 2609 +U 11026 ; WX 602 ; N uni2B12 ; G 2610 +U 11027 ; WX 602 ; N uni2B13 ; G 2611 +U 11028 ; WX 602 ; N uni2B14 ; G 2612 +U 11029 ; WX 602 ; N uni2B15 ; G 2613 +U 11030 ; WX 602 ; N uni2B16 ; G 2614 +U 11031 ; WX 602 ; N uni2B17 ; G 2615 +U 11032 ; WX 602 ; N uni2B18 ; G 2616 +U 11033 ; WX 602 ; N uni2B19 ; G 2617 +U 11034 ; WX 602 ; N uni2B1A ; G 2618 +U 11364 ; WX 602 ; N uni2C64 ; G 2619 +U 11373 ; WX 602 ; N uni2C6D ; G 2620 +U 11374 ; WX 602 ; N uni2C6E ; G 2621 +U 11375 ; WX 602 ; N uni2C6F ; G 2622 +U 11376 ; WX 602 ; N uni2C70 ; G 2623 +U 11381 ; WX 602 ; N uni2C75 ; G 2624 +U 11382 ; WX 602 ; N uni2C76 ; G 2625 +U 11383 ; WX 602 ; N uni2C77 ; G 2626 +U 11385 ; WX 602 ; N uni2C79 ; G 2627 +U 11386 ; WX 602 ; N uni2C7A ; G 2628 +U 11388 ; WX 602 ; N uni2C7C ; G 2629 +U 11389 ; WX 602 ; N uni2C7D ; G 2630 +U 11390 ; WX 602 ; N uni2C7E ; G 2631 +U 11391 ; WX 602 ; N uni2C7F ; G 2632 +U 11800 ; WX 602 ; N uni2E18 ; G 2633 +U 11807 ; WX 602 ; N uni2E1F ; G 2634 +U 11810 ; WX 602 ; N uni2E22 ; G 2635 +U 11811 ; WX 602 ; N uni2E23 ; G 2636 +U 11812 ; WX 602 ; N uni2E24 ; G 2637 +U 11813 ; WX 602 ; N uni2E25 ; G 2638 +U 11822 ; WX 602 ; N uni2E2E ; G 2639 +U 42760 ; WX 602 ; N uniA708 ; G 2640 +U 42761 ; WX 602 ; N uniA709 ; G 2641 +U 42762 ; WX 602 ; N uniA70A ; G 2642 +U 42763 ; WX 602 ; N uniA70B ; G 2643 +U 42764 ; WX 602 ; N uniA70C ; G 2644 +U 42765 ; WX 602 ; N uniA70D ; G 2645 +U 42766 ; WX 602 ; N uniA70E ; G 2646 +U 42767 ; WX 602 ; N uniA70F ; G 2647 +U 42768 ; WX 602 ; N uniA710 ; G 2648 +U 42769 ; WX 602 ; N uniA711 ; G 2649 +U 42770 ; WX 602 ; N uniA712 ; G 2650 +U 42771 ; WX 602 ; N uniA713 ; G 2651 +U 42772 ; WX 602 ; N uniA714 ; G 2652 +U 42773 ; WX 602 ; N uniA715 ; G 2653 +U 42774 ; WX 602 ; N uniA716 ; G 2654 +U 42779 ; WX 602 ; N uniA71B ; G 2655 +U 42780 ; WX 602 ; N uniA71C ; G 2656 +U 42781 ; WX 602 ; N uniA71D ; G 2657 +U 42782 ; WX 602 ; N uniA71E ; G 2658 +U 42783 ; WX 602 ; N uniA71F ; G 2659 +U 42786 ; WX 602 ; N uniA722 ; G 2660 +U 42787 ; WX 602 ; N uniA723 ; G 2661 +U 42788 ; WX 602 ; N uniA724 ; G 2662 +U 42789 ; WX 602 ; N uniA725 ; G 2663 +U 42790 ; WX 602 ; N uniA726 ; G 2664 +U 42791 ; WX 602 ; N uniA727 ; G 2665 +U 42889 ; WX 602 ; N uniA789 ; G 2666 +U 42890 ; WX 602 ; N uniA78A ; G 2667 +U 42891 ; WX 602 ; N uniA78B ; G 2668 +U 42892 ; WX 602 ; N uniA78C ; G 2669 +U 42893 ; WX 602 ; N uniA78D ; G 2670 +U 42894 ; WX 602 ; N uniA78E ; G 2671 +U 42896 ; WX 602 ; N uniA790 ; G 2672 +U 42897 ; WX 602 ; N uniA791 ; G 2673 +U 42922 ; WX 602 ; N uniA7AA ; G 2674 +U 43000 ; WX 602 ; N uniA7F8 ; G 2675 +U 43001 ; WX 602 ; N uniA7F9 ; G 2676 +U 63173 ; WX 602 ; N uniF6C5 ; G 2677 +U 64257 ; WX 602 ; N fi ; G 2678 +U 64258 ; WX 602 ; N fl ; G 2679 +U 65529 ; WX 602 ; N uniFFF9 ; G 2680 +U 65530 ; WX 602 ; N uniFFFA ; G 2681 +U 65531 ; WX 602 ; N uniFFFB ; G 2682 +U 65532 ; WX 602 ; N uniFFFC ; G 2683 +U 65533 ; WX 602 ; N uniFFFD ; G 2684 +EndCharMetrics +EndFontMetrics diff --git a/public_html/2022/newcms/pdf/ttfonts/DejaVuSansMono.ttf b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSansMono.ttf similarity index 64% rename from public_html/2022/newcms/pdf/ttfonts/DejaVuSansMono.ttf rename to public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSansMono.ttf index b464c52..f578602 100644 Binary files a/public_html/2022/newcms/pdf/ttfonts/DejaVuSansMono.ttf and b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSansMono.ttf differ diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSansMono.ufm b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSansMono.ufm new file mode 100644 index 0000000..6b2d4ac --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSansMono.ufm @@ -0,0 +1,3284 @@ +StartFontMetrics 4.1 +Notice Converted by PHP-font-lib +Comment https://github.com/PhenX/php-font-lib +EncodingScheme FontSpecific +FontName DejaVu Sans Mono +FontSubfamily Book +UniqueID DejaVu Sans Mono +FullName DejaVu Sans Mono +Version Version 2.37 +PostScriptName DejaVuSansMono +Manufacturer DejaVu fonts team +FontVendorURL http://dejavu.sourceforge.net +LicenseURL http://dejavu.sourceforge.net/wiki/index.php/License +Weight Medium +ItalicAngle 0 +IsFixedPitch true +UnderlineThickness 44 +UnderlinePosition -63 +FontHeightOffset 0 +Ascender 928 +Descender -236 +FontBBox -558 -375 718 1028 +StartCharMetrics 3377 +U 32 ; WX 602 ; N space ; G 3 +U 33 ; WX 602 ; N exclam ; G 4 +U 34 ; WX 602 ; N quotedbl ; G 5 +U 35 ; WX 602 ; N numbersign ; G 6 +U 36 ; WX 602 ; N dollar ; G 7 +U 37 ; WX 602 ; N percent ; G 8 +U 38 ; WX 602 ; N ampersand ; G 9 +U 39 ; WX 602 ; N quotesingle ; G 10 +U 40 ; WX 602 ; N parenleft ; G 11 +U 41 ; WX 602 ; N parenright ; G 12 +U 42 ; WX 602 ; N asterisk ; G 13 +U 43 ; WX 602 ; N plus ; G 14 +U 44 ; WX 602 ; N comma ; G 15 +U 45 ; WX 602 ; N hyphen ; G 16 +U 46 ; WX 602 ; N period ; G 17 +U 47 ; WX 602 ; N slash ; G 18 +U 48 ; WX 602 ; N zero ; G 19 +U 49 ; WX 602 ; N one ; G 20 +U 50 ; WX 602 ; N two ; G 21 +U 51 ; WX 602 ; N three ; G 22 +U 52 ; WX 602 ; N four ; G 23 +U 53 ; WX 602 ; N five ; G 24 +U 54 ; WX 602 ; N six ; G 25 +U 55 ; WX 602 ; N seven ; G 26 +U 56 ; WX 602 ; N eight ; G 27 +U 57 ; WX 602 ; N nine ; G 28 +U 58 ; WX 602 ; N colon ; G 29 +U 59 ; WX 602 ; N semicolon ; G 30 +U 60 ; WX 602 ; N less ; G 31 +U 61 ; WX 602 ; N equal ; G 32 +U 62 ; WX 602 ; N greater ; G 33 +U 63 ; WX 602 ; N question ; G 34 +U 64 ; WX 602 ; N at ; G 35 +U 65 ; WX 602 ; N A ; G 36 +U 66 ; WX 602 ; N B ; G 37 +U 67 ; WX 602 ; N C ; G 38 +U 68 ; WX 602 ; N D ; G 39 +U 69 ; WX 602 ; N E ; G 40 +U 70 ; WX 602 ; N F ; G 41 +U 71 ; WX 602 ; N G ; G 42 +U 72 ; WX 602 ; N H ; G 43 +U 73 ; WX 602 ; N I ; G 44 +U 74 ; WX 602 ; N J ; G 45 +U 75 ; WX 602 ; N K ; G 46 +U 76 ; WX 602 ; N L ; G 47 +U 77 ; WX 602 ; N M ; G 48 +U 78 ; WX 602 ; N N ; G 49 +U 79 ; WX 602 ; N O ; G 50 +U 80 ; WX 602 ; N P ; G 51 +U 81 ; WX 602 ; N Q ; G 52 +U 82 ; WX 602 ; N R ; G 53 +U 83 ; WX 602 ; N S ; G 54 +U 84 ; WX 602 ; N T ; G 55 +U 85 ; WX 602 ; N U ; G 56 +U 86 ; WX 602 ; N V ; G 57 +U 87 ; WX 602 ; N W ; G 58 +U 88 ; WX 602 ; N X ; G 59 +U 89 ; WX 602 ; N Y ; G 60 +U 90 ; WX 602 ; N Z ; G 61 +U 91 ; WX 602 ; N bracketleft ; G 62 +U 92 ; WX 602 ; N backslash ; G 63 +U 93 ; WX 602 ; N bracketright ; G 64 +U 94 ; WX 602 ; N asciicircum ; G 65 +U 95 ; WX 602 ; N underscore ; G 66 +U 96 ; WX 602 ; N grave ; G 67 +U 97 ; WX 602 ; N a ; G 68 +U 98 ; WX 602 ; N b ; G 69 +U 99 ; WX 602 ; N c ; G 70 +U 100 ; WX 602 ; N d ; G 71 +U 101 ; WX 602 ; N e ; G 72 +U 102 ; WX 602 ; N f ; G 73 +U 103 ; WX 602 ; N g ; G 74 +U 104 ; WX 602 ; N h ; G 75 +U 105 ; WX 602 ; N i ; G 76 +U 106 ; WX 602 ; N j ; G 77 +U 107 ; WX 602 ; N k ; G 78 +U 108 ; WX 602 ; N l ; G 79 +U 109 ; WX 602 ; N m ; G 80 +U 110 ; WX 602 ; N n ; G 81 +U 111 ; WX 602 ; N o ; G 82 +U 112 ; WX 602 ; N p ; G 83 +U 113 ; WX 602 ; N q ; G 84 +U 114 ; WX 602 ; N r ; G 85 +U 115 ; WX 602 ; N s ; G 86 +U 116 ; WX 602 ; N t ; G 87 +U 117 ; WX 602 ; N u ; G 88 +U 118 ; WX 602 ; N v ; G 89 +U 119 ; WX 602 ; N w ; G 90 +U 120 ; WX 602 ; N x ; G 91 +U 121 ; WX 602 ; N y ; G 92 +U 122 ; WX 602 ; N z ; G 93 +U 123 ; WX 602 ; N braceleft ; G 94 +U 124 ; WX 602 ; N bar ; G 95 +U 125 ; WX 602 ; N braceright ; G 96 +U 126 ; WX 602 ; N asciitilde ; G 97 +U 160 ; WX 602 ; N nbspace ; G 98 +U 161 ; WX 602 ; N exclamdown ; G 99 +U 162 ; WX 602 ; N cent ; G 100 +U 163 ; WX 602 ; N sterling ; G 101 +U 164 ; WX 602 ; N currency ; G 102 +U 165 ; WX 602 ; N yen ; G 103 +U 166 ; WX 602 ; N brokenbar ; G 104 +U 167 ; WX 602 ; N section ; G 105 +U 168 ; WX 602 ; N dieresis ; G 106 +U 169 ; WX 602 ; N copyright ; G 107 +U 170 ; WX 602 ; N ordfeminine ; G 108 +U 171 ; WX 602 ; N guillemotleft ; G 109 +U 172 ; WX 602 ; N logicalnot ; G 110 +U 173 ; WX 602 ; N sfthyphen ; G 111 +U 174 ; WX 602 ; N registered ; G 112 +U 175 ; WX 602 ; N macron ; G 113 +U 176 ; WX 602 ; N degree ; G 114 +U 177 ; WX 602 ; N plusminus ; G 115 +U 178 ; WX 602 ; N twosuperior ; G 116 +U 179 ; WX 602 ; N threesuperior ; G 117 +U 180 ; WX 602 ; N acute ; G 118 +U 181 ; WX 602 ; N mu ; G 119 +U 182 ; WX 602 ; N paragraph ; G 120 +U 183 ; WX 602 ; N periodcentered ; G 121 +U 184 ; WX 602 ; N cedilla ; G 122 +U 185 ; WX 602 ; N onesuperior ; G 123 +U 186 ; WX 602 ; N ordmasculine ; G 124 +U 187 ; WX 602 ; N guillemotright ; G 125 +U 188 ; WX 602 ; N onequarter ; G 126 +U 189 ; WX 602 ; N onehalf ; G 127 +U 190 ; WX 602 ; N threequarters ; G 128 +U 191 ; WX 602 ; N questiondown ; G 129 +U 192 ; WX 602 ; N Agrave ; G 130 +U 193 ; WX 602 ; N Aacute ; G 131 +U 194 ; WX 602 ; N Acircumflex ; G 132 +U 195 ; WX 602 ; N Atilde ; G 133 +U 196 ; WX 602 ; N Adieresis ; G 134 +U 197 ; WX 602 ; N Aring ; G 135 +U 198 ; WX 602 ; N AE ; G 136 +U 199 ; WX 602 ; N Ccedilla ; G 137 +U 200 ; WX 602 ; N Egrave ; G 138 +U 201 ; WX 602 ; N Eacute ; G 139 +U 202 ; WX 602 ; N Ecircumflex ; G 140 +U 203 ; WX 602 ; N Edieresis ; G 141 +U 204 ; WX 602 ; N Igrave ; G 142 +U 205 ; WX 602 ; N Iacute ; G 143 +U 206 ; WX 602 ; N Icircumflex ; G 144 +U 207 ; WX 602 ; N Idieresis ; G 145 +U 208 ; WX 602 ; N Eth ; G 146 +U 209 ; WX 602 ; N Ntilde ; G 147 +U 210 ; WX 602 ; N Ograve ; G 148 +U 211 ; WX 602 ; N Oacute ; G 149 +U 212 ; WX 602 ; N Ocircumflex ; G 150 +U 213 ; WX 602 ; N Otilde ; G 151 +U 214 ; WX 602 ; N Odieresis ; G 152 +U 215 ; WX 602 ; N multiply ; G 153 +U 216 ; WX 602 ; N Oslash ; G 154 +U 217 ; WX 602 ; N Ugrave ; G 155 +U 218 ; WX 602 ; N Uacute ; G 156 +U 219 ; WX 602 ; N Ucircumflex ; G 157 +U 220 ; WX 602 ; N Udieresis ; G 158 +U 221 ; WX 602 ; N Yacute ; G 159 +U 222 ; WX 602 ; N Thorn ; G 160 +U 223 ; WX 602 ; N germandbls ; G 161 +U 224 ; WX 602 ; N agrave ; G 162 +U 225 ; WX 602 ; N aacute ; G 163 +U 226 ; WX 602 ; N acircumflex ; G 164 +U 227 ; WX 602 ; N atilde ; G 165 +U 228 ; WX 602 ; N adieresis ; G 166 +U 229 ; WX 602 ; N aring ; G 167 +U 230 ; WX 602 ; N ae ; G 168 +U 231 ; WX 602 ; N ccedilla ; G 169 +U 232 ; WX 602 ; N egrave ; G 170 +U 233 ; WX 602 ; N eacute ; G 171 +U 234 ; WX 602 ; N ecircumflex ; G 172 +U 235 ; WX 602 ; N edieresis ; G 173 +U 236 ; WX 602 ; N igrave ; G 174 +U 237 ; WX 602 ; N iacute ; G 175 +U 238 ; WX 602 ; N icircumflex ; G 176 +U 239 ; WX 602 ; N idieresis ; G 177 +U 240 ; WX 602 ; N eth ; G 178 +U 241 ; WX 602 ; N ntilde ; G 179 +U 242 ; WX 602 ; N ograve ; G 180 +U 243 ; WX 602 ; N oacute ; G 181 +U 244 ; WX 602 ; N ocircumflex ; G 182 +U 245 ; WX 602 ; N otilde ; G 183 +U 246 ; WX 602 ; N odieresis ; G 184 +U 247 ; WX 602 ; N divide ; G 185 +U 248 ; WX 602 ; N oslash ; G 186 +U 249 ; WX 602 ; N ugrave ; G 187 +U 250 ; WX 602 ; N uacute ; G 188 +U 251 ; WX 602 ; N ucircumflex ; G 189 +U 252 ; WX 602 ; N udieresis ; G 190 +U 253 ; WX 602 ; N yacute ; G 191 +U 254 ; WX 602 ; N thorn ; G 192 +U 255 ; WX 602 ; N ydieresis ; G 193 +U 256 ; WX 602 ; N Amacron ; G 194 +U 257 ; WX 602 ; N amacron ; G 195 +U 258 ; WX 602 ; N Abreve ; G 196 +U 259 ; WX 602 ; N abreve ; G 197 +U 260 ; WX 602 ; N Aogonek ; G 198 +U 261 ; WX 602 ; N aogonek ; G 199 +U 262 ; WX 602 ; N Cacute ; G 200 +U 263 ; WX 602 ; N cacute ; G 201 +U 264 ; WX 602 ; N Ccircumflex ; G 202 +U 265 ; WX 602 ; N ccircumflex ; G 203 +U 266 ; WX 602 ; N Cdotaccent ; G 204 +U 267 ; WX 602 ; N cdotaccent ; G 205 +U 268 ; WX 602 ; N Ccaron ; G 206 +U 269 ; WX 602 ; N ccaron ; G 207 +U 270 ; WX 602 ; N Dcaron ; G 208 +U 271 ; WX 602 ; N dcaron ; G 209 +U 272 ; WX 602 ; N Dcroat ; G 210 +U 273 ; WX 602 ; N dmacron ; G 211 +U 274 ; WX 602 ; N Emacron ; G 212 +U 275 ; WX 602 ; N emacron ; G 213 +U 276 ; WX 602 ; N Ebreve ; G 214 +U 277 ; WX 602 ; N ebreve ; G 215 +U 278 ; WX 602 ; N Edotaccent ; G 216 +U 279 ; WX 602 ; N edotaccent ; G 217 +U 280 ; WX 602 ; N Eogonek ; G 218 +U 281 ; WX 602 ; N eogonek ; G 219 +U 282 ; WX 602 ; N Ecaron ; G 220 +U 283 ; WX 602 ; N ecaron ; G 221 +U 284 ; WX 602 ; N Gcircumflex ; G 222 +U 285 ; WX 602 ; N gcircumflex ; G 223 +U 286 ; WX 602 ; N Gbreve ; G 224 +U 287 ; WX 602 ; N gbreve ; G 225 +U 288 ; WX 602 ; N Gdotaccent ; G 226 +U 289 ; WX 602 ; N gdotaccent ; G 227 +U 290 ; WX 602 ; N Gcommaaccent ; G 228 +U 291 ; WX 602 ; N gcommaaccent ; G 229 +U 292 ; WX 602 ; N Hcircumflex ; G 230 +U 293 ; WX 602 ; N hcircumflex ; G 231 +U 294 ; WX 602 ; N Hbar ; G 232 +U 295 ; WX 602 ; N hbar ; G 233 +U 296 ; WX 602 ; N Itilde ; G 234 +U 297 ; WX 602 ; N itilde ; G 235 +U 298 ; WX 602 ; N Imacron ; G 236 +U 299 ; WX 602 ; N imacron ; G 237 +U 300 ; WX 602 ; N Ibreve ; G 238 +U 301 ; WX 602 ; N ibreve ; G 239 +U 302 ; WX 602 ; N Iogonek ; G 240 +U 303 ; WX 602 ; N iogonek ; G 241 +U 304 ; WX 602 ; N Idot ; G 242 +U 305 ; WX 602 ; N dotlessi ; G 243 +U 306 ; WX 602 ; N IJ ; G 244 +U 307 ; WX 602 ; N ij ; G 245 +U 308 ; WX 602 ; N Jcircumflex ; G 246 +U 309 ; WX 602 ; N jcircumflex ; G 247 +U 310 ; WX 602 ; N Kcommaaccent ; G 248 +U 311 ; WX 602 ; N kcommaaccent ; G 249 +U 312 ; WX 602 ; N kgreenlandic ; G 250 +U 313 ; WX 602 ; N Lacute ; G 251 +U 314 ; WX 602 ; N lacute ; G 252 +U 315 ; WX 602 ; N Lcommaaccent ; G 253 +U 316 ; WX 602 ; N lcommaaccent ; G 254 +U 317 ; WX 602 ; N Lcaron ; G 255 +U 318 ; WX 602 ; N lcaron ; G 256 +U 319 ; WX 602 ; N Ldot ; G 257 +U 320 ; WX 602 ; N ldot ; G 258 +U 321 ; WX 602 ; N Lslash ; G 259 +U 322 ; WX 602 ; N lslash ; G 260 +U 323 ; WX 602 ; N Nacute ; G 261 +U 324 ; WX 602 ; N nacute ; G 262 +U 325 ; WX 602 ; N Ncommaaccent ; G 263 +U 326 ; WX 602 ; N ncommaaccent ; G 264 +U 327 ; WX 602 ; N Ncaron ; G 265 +U 328 ; WX 602 ; N ncaron ; G 266 +U 329 ; WX 602 ; N napostrophe ; G 267 +U 330 ; WX 602 ; N Eng ; G 268 +U 331 ; WX 602 ; N eng ; G 269 +U 332 ; WX 602 ; N Omacron ; G 270 +U 333 ; WX 602 ; N omacron ; G 271 +U 334 ; WX 602 ; N Obreve ; G 272 +U 335 ; WX 602 ; N obreve ; G 273 +U 336 ; WX 602 ; N Ohungarumlaut ; G 274 +U 337 ; WX 602 ; N ohungarumlaut ; G 275 +U 338 ; WX 602 ; N OE ; G 276 +U 339 ; WX 602 ; N oe ; G 277 +U 340 ; WX 602 ; N Racute ; G 278 +U 341 ; WX 602 ; N racute ; G 279 +U 342 ; WX 602 ; N Rcommaaccent ; G 280 +U 343 ; WX 602 ; N rcommaaccent ; G 281 +U 344 ; WX 602 ; N Rcaron ; G 282 +U 345 ; WX 602 ; N rcaron ; G 283 +U 346 ; WX 602 ; N Sacute ; G 284 +U 347 ; WX 602 ; N sacute ; G 285 +U 348 ; WX 602 ; N Scircumflex ; G 286 +U 349 ; WX 602 ; N scircumflex ; G 287 +U 350 ; WX 602 ; N Scedilla ; G 288 +U 351 ; WX 602 ; N scedilla ; G 289 +U 352 ; WX 602 ; N Scaron ; G 290 +U 353 ; WX 602 ; N scaron ; G 291 +U 354 ; WX 602 ; N Tcommaaccent ; G 292 +U 355 ; WX 602 ; N tcommaaccent ; G 293 +U 356 ; WX 602 ; N Tcaron ; G 294 +U 357 ; WX 602 ; N tcaron ; G 295 +U 358 ; WX 602 ; N Tbar ; G 296 +U 359 ; WX 602 ; N tbar ; G 297 +U 360 ; WX 602 ; N Utilde ; G 298 +U 361 ; WX 602 ; N utilde ; G 299 +U 362 ; WX 602 ; N Umacron ; G 300 +U 363 ; WX 602 ; N umacron ; G 301 +U 364 ; WX 602 ; N Ubreve ; G 302 +U 365 ; WX 602 ; N ubreve ; G 303 +U 366 ; WX 602 ; N Uring ; G 304 +U 367 ; WX 602 ; N uring ; G 305 +U 368 ; WX 602 ; N Uhungarumlaut ; G 306 +U 369 ; WX 602 ; N uhungarumlaut ; G 307 +U 370 ; WX 602 ; N Uogonek ; G 308 +U 371 ; WX 602 ; N uogonek ; G 309 +U 372 ; WX 602 ; N Wcircumflex ; G 310 +U 373 ; WX 602 ; N wcircumflex ; G 311 +U 374 ; WX 602 ; N Ycircumflex ; G 312 +U 375 ; WX 602 ; N ycircumflex ; G 313 +U 376 ; WX 602 ; N Ydieresis ; G 314 +U 377 ; WX 602 ; N Zacute ; G 315 +U 378 ; WX 602 ; N zacute ; G 316 +U 379 ; WX 602 ; N Zdotaccent ; G 317 +U 380 ; WX 602 ; N zdotaccent ; G 318 +U 381 ; WX 602 ; N Zcaron ; G 319 +U 382 ; WX 602 ; N zcaron ; G 320 +U 383 ; WX 602 ; N longs ; G 321 +U 384 ; WX 602 ; N uni0180 ; G 322 +U 385 ; WX 602 ; N uni0181 ; G 323 +U 386 ; WX 602 ; N uni0182 ; G 324 +U 387 ; WX 602 ; N uni0183 ; G 325 +U 388 ; WX 602 ; N uni0184 ; G 326 +U 389 ; WX 602 ; N uni0185 ; G 327 +U 390 ; WX 602 ; N uni0186 ; G 328 +U 391 ; WX 602 ; N uni0187 ; G 329 +U 392 ; WX 602 ; N uni0188 ; G 330 +U 393 ; WX 602 ; N uni0189 ; G 331 +U 394 ; WX 602 ; N uni018A ; G 332 +U 395 ; WX 602 ; N uni018B ; G 333 +U 396 ; WX 602 ; N uni018C ; G 334 +U 397 ; WX 602 ; N uni018D ; G 335 +U 398 ; WX 602 ; N uni018E ; G 336 +U 399 ; WX 602 ; N uni018F ; G 337 +U 400 ; WX 602 ; N uni0190 ; G 338 +U 401 ; WX 602 ; N uni0191 ; G 339 +U 402 ; WX 602 ; N florin ; G 340 +U 403 ; WX 602 ; N uni0193 ; G 341 +U 404 ; WX 602 ; N uni0194 ; G 342 +U 405 ; WX 602 ; N uni0195 ; G 343 +U 406 ; WX 602 ; N uni0196 ; G 344 +U 407 ; WX 602 ; N uni0197 ; G 345 +U 408 ; WX 602 ; N uni0198 ; G 346 +U 409 ; WX 602 ; N uni0199 ; G 347 +U 410 ; WX 602 ; N uni019A ; G 348 +U 411 ; WX 602 ; N uni019B ; G 349 +U 412 ; WX 602 ; N uni019C ; G 350 +U 413 ; WX 602 ; N uni019D ; G 351 +U 414 ; WX 602 ; N uni019E ; G 352 +U 415 ; WX 602 ; N uni019F ; G 353 +U 416 ; WX 602 ; N Ohorn ; G 354 +U 417 ; WX 602 ; N ohorn ; G 355 +U 418 ; WX 602 ; N uni01A2 ; G 356 +U 419 ; WX 602 ; N uni01A3 ; G 357 +U 420 ; WX 602 ; N uni01A4 ; G 358 +U 421 ; WX 602 ; N uni01A5 ; G 359 +U 422 ; WX 602 ; N uni01A6 ; G 360 +U 423 ; WX 602 ; N uni01A7 ; G 361 +U 424 ; WX 602 ; N uni01A8 ; G 362 +U 425 ; WX 602 ; N uni01A9 ; G 363 +U 426 ; WX 602 ; N uni01AA ; G 364 +U 427 ; WX 602 ; N uni01AB ; G 365 +U 428 ; WX 602 ; N uni01AC ; G 366 +U 429 ; WX 602 ; N uni01AD ; G 367 +U 430 ; WX 602 ; N uni01AE ; G 368 +U 431 ; WX 602 ; N Uhorn ; G 369 +U 432 ; WX 602 ; N uhorn ; G 370 +U 433 ; WX 602 ; N uni01B1 ; G 371 +U 434 ; WX 602 ; N uni01B2 ; G 372 +U 435 ; WX 602 ; N uni01B3 ; G 373 +U 436 ; WX 602 ; N uni01B4 ; G 374 +U 437 ; WX 602 ; N uni01B5 ; G 375 +U 438 ; WX 602 ; N uni01B6 ; G 376 +U 439 ; WX 602 ; N uni01B7 ; G 377 +U 440 ; WX 602 ; N uni01B8 ; G 378 +U 441 ; WX 602 ; N uni01B9 ; G 379 +U 442 ; WX 602 ; N uni01BA ; G 380 +U 443 ; WX 602 ; N uni01BB ; G 381 +U 444 ; WX 602 ; N uni01BC ; G 382 +U 445 ; WX 602 ; N uni01BD ; G 383 +U 446 ; WX 602 ; N uni01BE ; G 384 +U 447 ; WX 602 ; N uni01BF ; G 385 +U 448 ; WX 602 ; N uni01C0 ; G 386 +U 449 ; WX 602 ; N uni01C1 ; G 387 +U 450 ; WX 602 ; N uni01C2 ; G 388 +U 451 ; WX 602 ; N uni01C3 ; G 389 +U 461 ; WX 602 ; N uni01CD ; G 390 +U 462 ; WX 602 ; N uni01CE ; G 391 +U 463 ; WX 602 ; N uni01CF ; G 392 +U 464 ; WX 602 ; N uni01D0 ; G 393 +U 465 ; WX 602 ; N uni01D1 ; G 394 +U 466 ; WX 602 ; N uni01D2 ; G 395 +U 467 ; WX 602 ; N uni01D3 ; G 396 +U 468 ; WX 602 ; N uni01D4 ; G 397 +U 469 ; WX 602 ; N uni01D5 ; G 398 +U 470 ; WX 602 ; N uni01D6 ; G 399 +U 471 ; WX 602 ; N uni01D7 ; G 400 +U 472 ; WX 602 ; N uni01D8 ; G 401 +U 473 ; WX 602 ; N uni01D9 ; G 402 +U 474 ; WX 602 ; N uni01DA ; G 403 +U 475 ; WX 602 ; N uni01DB ; G 404 +U 476 ; WX 602 ; N uni01DC ; G 405 +U 477 ; WX 602 ; N uni01DD ; G 406 +U 478 ; WX 602 ; N uni01DE ; G 407 +U 479 ; WX 602 ; N uni01DF ; G 408 +U 480 ; WX 602 ; N uni01E0 ; G 409 +U 481 ; WX 602 ; N uni01E1 ; G 410 +U 482 ; WX 602 ; N uni01E2 ; G 411 +U 483 ; WX 602 ; N uni01E3 ; G 412 +U 486 ; WX 602 ; N Gcaron ; G 413 +U 487 ; WX 602 ; N gcaron ; G 414 +U 488 ; WX 602 ; N uni01E8 ; G 415 +U 489 ; WX 602 ; N uni01E9 ; G 416 +U 490 ; WX 602 ; N uni01EA ; G 417 +U 491 ; WX 602 ; N uni01EB ; G 418 +U 492 ; WX 602 ; N uni01EC ; G 419 +U 493 ; WX 602 ; N uni01ED ; G 420 +U 494 ; WX 602 ; N uni01EE ; G 421 +U 495 ; WX 602 ; N uni01EF ; G 422 +U 496 ; WX 602 ; N uni01F0 ; G 423 +U 500 ; WX 602 ; N uni01F4 ; G 424 +U 501 ; WX 602 ; N uni01F5 ; G 425 +U 502 ; WX 602 ; N uni01F6 ; G 426 +U 504 ; WX 602 ; N uni01F8 ; G 427 +U 505 ; WX 602 ; N uni01F9 ; G 428 +U 508 ; WX 602 ; N AEacute ; G 429 +U 509 ; WX 602 ; N aeacute ; G 430 +U 510 ; WX 602 ; N Oslashacute ; G 431 +U 511 ; WX 602 ; N oslashacute ; G 432 +U 512 ; WX 602 ; N uni0200 ; G 433 +U 513 ; WX 602 ; N uni0201 ; G 434 +U 514 ; WX 602 ; N uni0202 ; G 435 +U 515 ; WX 602 ; N uni0203 ; G 436 +U 516 ; WX 602 ; N uni0204 ; G 437 +U 517 ; WX 602 ; N uni0205 ; G 438 +U 518 ; WX 602 ; N uni0206 ; G 439 +U 519 ; WX 602 ; N uni0207 ; G 440 +U 520 ; WX 602 ; N uni0208 ; G 441 +U 521 ; WX 602 ; N uni0209 ; G 442 +U 522 ; WX 602 ; N uni020A ; G 443 +U 523 ; WX 602 ; N uni020B ; G 444 +U 524 ; WX 602 ; N uni020C ; G 445 +U 525 ; WX 602 ; N uni020D ; G 446 +U 526 ; WX 602 ; N uni020E ; G 447 +U 527 ; WX 602 ; N uni020F ; G 448 +U 528 ; WX 602 ; N uni0210 ; G 449 +U 529 ; WX 602 ; N uni0211 ; G 450 +U 530 ; WX 602 ; N uni0212 ; G 451 +U 531 ; WX 602 ; N uni0213 ; G 452 +U 532 ; WX 602 ; N uni0214 ; G 453 +U 533 ; WX 602 ; N uni0215 ; G 454 +U 534 ; WX 602 ; N uni0216 ; G 455 +U 535 ; WX 602 ; N uni0217 ; G 456 +U 536 ; WX 602 ; N Scommaaccent ; G 457 +U 537 ; WX 602 ; N scommaaccent ; G 458 +U 538 ; WX 602 ; N uni021A ; G 459 +U 539 ; WX 602 ; N uni021B ; G 460 +U 540 ; WX 602 ; N uni021C ; G 461 +U 541 ; WX 602 ; N uni021D ; G 462 +U 542 ; WX 602 ; N uni021E ; G 463 +U 543 ; WX 602 ; N uni021F ; G 464 +U 544 ; WX 602 ; N uni0220 ; G 465 +U 545 ; WX 602 ; N uni0221 ; G 466 +U 548 ; WX 602 ; N uni0224 ; G 467 +U 549 ; WX 602 ; N uni0225 ; G 468 +U 550 ; WX 602 ; N uni0226 ; G 469 +U 551 ; WX 602 ; N uni0227 ; G 470 +U 552 ; WX 602 ; N uni0228 ; G 471 +U 553 ; WX 602 ; N uni0229 ; G 472 +U 554 ; WX 602 ; N uni022A ; G 473 +U 555 ; WX 602 ; N uni022B ; G 474 +U 556 ; WX 602 ; N uni022C ; G 475 +U 557 ; WX 602 ; N uni022D ; G 476 +U 558 ; WX 602 ; N uni022E ; G 477 +U 559 ; WX 602 ; N uni022F ; G 478 +U 560 ; WX 602 ; N uni0230 ; G 479 +U 561 ; WX 602 ; N uni0231 ; G 480 +U 562 ; WX 602 ; N uni0232 ; G 481 +U 563 ; WX 602 ; N uni0233 ; G 482 +U 564 ; WX 602 ; N uni0234 ; G 483 +U 565 ; WX 602 ; N uni0235 ; G 484 +U 566 ; WX 602 ; N uni0236 ; G 485 +U 567 ; WX 602 ; N dotlessj ; G 486 +U 568 ; WX 602 ; N uni0238 ; G 487 +U 569 ; WX 602 ; N uni0239 ; G 488 +U 570 ; WX 602 ; N uni023A ; G 489 +U 571 ; WX 602 ; N uni023B ; G 490 +U 572 ; WX 602 ; N uni023C ; G 491 +U 573 ; WX 602 ; N uni023D ; G 492 +U 574 ; WX 602 ; N uni023E ; G 493 +U 575 ; WX 602 ; N uni023F ; G 494 +U 576 ; WX 602 ; N uni0240 ; G 495 +U 577 ; WX 602 ; N uni0241 ; G 496 +U 579 ; WX 602 ; N uni0243 ; G 497 +U 580 ; WX 602 ; N uni0244 ; G 498 +U 581 ; WX 602 ; N uni0245 ; G 499 +U 588 ; WX 602 ; N uni024C ; G 500 +U 589 ; WX 602 ; N uni024D ; G 501 +U 592 ; WX 602 ; N uni0250 ; G 502 +U 593 ; WX 602 ; N uni0251 ; G 503 +U 594 ; WX 602 ; N uni0252 ; G 504 +U 595 ; WX 602 ; N uni0253 ; G 505 +U 596 ; WX 602 ; N uni0254 ; G 506 +U 597 ; WX 602 ; N uni0255 ; G 507 +U 598 ; WX 602 ; N uni0256 ; G 508 +U 599 ; WX 602 ; N uni0257 ; G 509 +U 600 ; WX 602 ; N uni0258 ; G 510 +U 601 ; WX 602 ; N uni0259 ; G 511 +U 602 ; WX 602 ; N uni025A ; G 512 +U 603 ; WX 602 ; N uni025B ; G 513 +U 604 ; WX 602 ; N uni025C ; G 514 +U 605 ; WX 602 ; N uni025D ; G 515 +U 606 ; WX 602 ; N uni025E ; G 516 +U 607 ; WX 602 ; N uni025F ; G 517 +U 608 ; WX 602 ; N uni0260 ; G 518 +U 609 ; WX 602 ; N uni0261 ; G 519 +U 610 ; WX 602 ; N uni0262 ; G 520 +U 611 ; WX 602 ; N uni0263 ; G 521 +U 612 ; WX 602 ; N uni0264 ; G 522 +U 613 ; WX 602 ; N uni0265 ; G 523 +U 614 ; WX 602 ; N uni0266 ; G 524 +U 615 ; WX 602 ; N uni0267 ; G 525 +U 616 ; WX 602 ; N uni0268 ; G 526 +U 617 ; WX 602 ; N uni0269 ; G 527 +U 618 ; WX 602 ; N uni026A ; G 528 +U 619 ; WX 602 ; N uni026B ; G 529 +U 620 ; WX 602 ; N uni026C ; G 530 +U 621 ; WX 602 ; N uni026D ; G 531 +U 622 ; WX 602 ; N uni026E ; G 532 +U 623 ; WX 602 ; N uni026F ; G 533 +U 624 ; WX 602 ; N uni0270 ; G 534 +U 625 ; WX 602 ; N uni0271 ; G 535 +U 626 ; WX 602 ; N uni0272 ; G 536 +U 627 ; WX 602 ; N uni0273 ; G 537 +U 628 ; WX 602 ; N uni0274 ; G 538 +U 629 ; WX 602 ; N uni0275 ; G 539 +U 630 ; WX 602 ; N uni0276 ; G 540 +U 631 ; WX 602 ; N uni0277 ; G 541 +U 632 ; WX 602 ; N uni0278 ; G 542 +U 633 ; WX 602 ; N uni0279 ; G 543 +U 634 ; WX 602 ; N uni027A ; G 544 +U 635 ; WX 602 ; N uni027B ; G 545 +U 636 ; WX 602 ; N uni027C ; G 546 +U 637 ; WX 602 ; N uni027D ; G 547 +U 638 ; WX 602 ; N uni027E ; G 548 +U 639 ; WX 602 ; N uni027F ; G 549 +U 640 ; WX 602 ; N uni0280 ; G 550 +U 641 ; WX 602 ; N uni0281 ; G 551 +U 642 ; WX 602 ; N uni0282 ; G 552 +U 643 ; WX 602 ; N uni0283 ; G 553 +U 644 ; WX 602 ; N uni0284 ; G 554 +U 645 ; WX 602 ; N uni0285 ; G 555 +U 646 ; WX 602 ; N uni0286 ; G 556 +U 647 ; WX 602 ; N uni0287 ; G 557 +U 648 ; WX 602 ; N uni0288 ; G 558 +U 649 ; WX 602 ; N uni0289 ; G 559 +U 650 ; WX 602 ; N uni028A ; G 560 +U 651 ; WX 602 ; N uni028B ; G 561 +U 652 ; WX 602 ; N uni028C ; G 562 +U 653 ; WX 602 ; N uni028D ; G 563 +U 654 ; WX 602 ; N uni028E ; G 564 +U 655 ; WX 602 ; N uni028F ; G 565 +U 656 ; WX 602 ; N uni0290 ; G 566 +U 657 ; WX 602 ; N uni0291 ; G 567 +U 658 ; WX 602 ; N uni0292 ; G 568 +U 659 ; WX 602 ; N uni0293 ; G 569 +U 660 ; WX 602 ; N uni0294 ; G 570 +U 661 ; WX 602 ; N uni0295 ; G 571 +U 662 ; WX 602 ; N uni0296 ; G 572 +U 663 ; WX 602 ; N uni0297 ; G 573 +U 664 ; WX 602 ; N uni0298 ; G 574 +U 665 ; WX 602 ; N uni0299 ; G 575 +U 666 ; WX 602 ; N uni029A ; G 576 +U 667 ; WX 602 ; N uni029B ; G 577 +U 668 ; WX 602 ; N uni029C ; G 578 +U 669 ; WX 602 ; N uni029D ; G 579 +U 670 ; WX 602 ; N uni029E ; G 580 +U 671 ; WX 602 ; N uni029F ; G 581 +U 672 ; WX 602 ; N uni02A0 ; G 582 +U 673 ; WX 602 ; N uni02A1 ; G 583 +U 674 ; WX 602 ; N uni02A2 ; G 584 +U 675 ; WX 602 ; N uni02A3 ; G 585 +U 676 ; WX 602 ; N uni02A4 ; G 586 +U 677 ; WX 602 ; N uni02A5 ; G 587 +U 678 ; WX 602 ; N uni02A6 ; G 588 +U 679 ; WX 602 ; N uni02A7 ; G 589 +U 680 ; WX 602 ; N uni02A8 ; G 590 +U 681 ; WX 602 ; N uni02A9 ; G 591 +U 682 ; WX 602 ; N uni02AA ; G 592 +U 683 ; WX 602 ; N uni02AB ; G 593 +U 684 ; WX 602 ; N uni02AC ; G 594 +U 685 ; WX 602 ; N uni02AD ; G 595 +U 686 ; WX 602 ; N uni02AE ; G 596 +U 687 ; WX 602 ; N uni02AF ; G 597 +U 688 ; WX 602 ; N uni02B0 ; G 598 +U 689 ; WX 602 ; N uni02B1 ; G 599 +U 690 ; WX 602 ; N uni02B2 ; G 600 +U 691 ; WX 602 ; N uni02B3 ; G 601 +U 692 ; WX 602 ; N uni02B4 ; G 602 +U 693 ; WX 602 ; N uni02B5 ; G 603 +U 694 ; WX 602 ; N uni02B6 ; G 604 +U 695 ; WX 602 ; N uni02B7 ; G 605 +U 696 ; WX 602 ; N uni02B8 ; G 606 +U 697 ; WX 602 ; N uni02B9 ; G 607 +U 699 ; WX 602 ; N uni02BB ; G 608 +U 700 ; WX 602 ; N uni02BC ; G 609 +U 701 ; WX 602 ; N uni02BD ; G 610 +U 702 ; WX 602 ; N uni02BE ; G 611 +U 703 ; WX 602 ; N uni02BF ; G 612 +U 704 ; WX 602 ; N uni02C0 ; G 613 +U 705 ; WX 602 ; N uni02C1 ; G 614 +U 710 ; WX 602 ; N circumflex ; G 615 +U 711 ; WX 602 ; N caron ; G 616 +U 712 ; WX 602 ; N uni02C8 ; G 617 +U 713 ; WX 602 ; N uni02C9 ; G 618 +U 716 ; WX 602 ; N uni02CC ; G 619 +U 717 ; WX 602 ; N uni02CD ; G 620 +U 718 ; WX 602 ; N uni02CE ; G 621 +U 719 ; WX 602 ; N uni02CF ; G 622 +U 720 ; WX 602 ; N uni02D0 ; G 623 +U 721 ; WX 602 ; N uni02D1 ; G 624 +U 722 ; WX 602 ; N uni02D2 ; G 625 +U 723 ; WX 602 ; N uni02D3 ; G 626 +U 726 ; WX 602 ; N uni02D6 ; G 627 +U 727 ; WX 602 ; N uni02D7 ; G 628 +U 728 ; WX 602 ; N breve ; G 629 +U 729 ; WX 602 ; N dotaccent ; G 630 +U 730 ; WX 602 ; N ring ; G 631 +U 731 ; WX 602 ; N ogonek ; G 632 +U 732 ; WX 602 ; N tilde ; G 633 +U 733 ; WX 602 ; N hungarumlaut ; G 634 +U 734 ; WX 602 ; N uni02DE ; G 635 +U 736 ; WX 602 ; N uni02E0 ; G 636 +U 737 ; WX 602 ; N uni02E1 ; G 637 +U 738 ; WX 602 ; N uni02E2 ; G 638 +U 739 ; WX 602 ; N uni02E3 ; G 639 +U 740 ; WX 602 ; N uni02E4 ; G 640 +U 741 ; WX 602 ; N uni02E5 ; G 641 +U 742 ; WX 602 ; N uni02E6 ; G 642 +U 743 ; WX 602 ; N uni02E7 ; G 643 +U 744 ; WX 602 ; N uni02E8 ; G 644 +U 745 ; WX 602 ; N uni02E9 ; G 645 +U 750 ; WX 602 ; N uni02EE ; G 646 +U 755 ; WX 602 ; N uni02F3 ; G 647 +U 768 ; WX 602 ; N gravecomb ; G 648 +U 769 ; WX 602 ; N acutecomb ; G 649 +U 770 ; WX 602 ; N uni0302 ; G 650 +U 771 ; WX 602 ; N tildecomb ; G 651 +U 772 ; WX 602 ; N uni0304 ; G 652 +U 773 ; WX 602 ; N uni0305 ; G 653 +U 774 ; WX 602 ; N uni0306 ; G 654 +U 775 ; WX 602 ; N uni0307 ; G 655 +U 776 ; WX 602 ; N uni0308 ; G 656 +U 777 ; WX 602 ; N hookabovecomb ; G 657 +U 778 ; WX 602 ; N uni030A ; G 658 +U 779 ; WX 602 ; N uni030B ; G 659 +U 780 ; WX 602 ; N uni030C ; G 660 +U 781 ; WX 602 ; N uni030D ; G 661 +U 782 ; WX 602 ; N uni030E ; G 662 +U 783 ; WX 602 ; N uni030F ; G 663 +U 784 ; WX 602 ; N uni0310 ; G 664 +U 785 ; WX 602 ; N uni0311 ; G 665 +U 786 ; WX 602 ; N uni0312 ; G 666 +U 787 ; WX 602 ; N uni0313 ; G 667 +U 788 ; WX 602 ; N uni0314 ; G 668 +U 789 ; WX 602 ; N uni0315 ; G 669 +U 790 ; WX 602 ; N uni0316 ; G 670 +U 791 ; WX 602 ; N uni0317 ; G 671 +U 792 ; WX 602 ; N uni0318 ; G 672 +U 793 ; WX 602 ; N uni0319 ; G 673 +U 794 ; WX 602 ; N uni031A ; G 674 +U 795 ; WX 602 ; N uni031B ; G 675 +U 796 ; WX 602 ; N uni031C ; G 676 +U 797 ; WX 602 ; N uni031D ; G 677 +U 798 ; WX 602 ; N uni031E ; G 678 +U 799 ; WX 602 ; N uni031F ; G 679 +U 800 ; WX 602 ; N uni0320 ; G 680 +U 801 ; WX 602 ; N uni0321 ; G 681 +U 802 ; WX 602 ; N uni0322 ; G 682 +U 803 ; WX 602 ; N dotbelowcomb ; G 683 +U 804 ; WX 602 ; N uni0324 ; G 684 +U 805 ; WX 602 ; N uni0325 ; G 685 +U 806 ; WX 602 ; N uni0326 ; G 686 +U 807 ; WX 602 ; N uni0327 ; G 687 +U 808 ; WX 602 ; N uni0328 ; G 688 +U 809 ; WX 602 ; N uni0329 ; G 689 +U 810 ; WX 602 ; N uni032A ; G 690 +U 811 ; WX 602 ; N uni032B ; G 691 +U 812 ; WX 602 ; N uni032C ; G 692 +U 813 ; WX 602 ; N uni032D ; G 693 +U 814 ; WX 602 ; N uni032E ; G 694 +U 815 ; WX 602 ; N uni032F ; G 695 +U 816 ; WX 602 ; N uni0330 ; G 696 +U 817 ; WX 602 ; N uni0331 ; G 697 +U 818 ; WX 602 ; N uni0332 ; G 698 +U 819 ; WX 602 ; N uni0333 ; G 699 +U 820 ; WX 602 ; N uni0334 ; G 700 +U 821 ; WX 602 ; N uni0335 ; G 701 +U 822 ; WX 602 ; N uni0336 ; G 702 +U 823 ; WX 602 ; N uni0337 ; G 703 +U 824 ; WX 602 ; N uni0338 ; G 704 +U 825 ; WX 602 ; N uni0339 ; G 705 +U 826 ; WX 602 ; N uni033A ; G 706 +U 827 ; WX 602 ; N uni033B ; G 707 +U 828 ; WX 602 ; N uni033C ; G 708 +U 829 ; WX 602 ; N uni033D ; G 709 +U 830 ; WX 602 ; N uni033E ; G 710 +U 831 ; WX 602 ; N uni033F ; G 711 +U 835 ; WX 602 ; N uni0343 ; G 712 +U 856 ; WX 602 ; N uni0358 ; G 713 +U 865 ; WX 602 ; N uni0361 ; G 714 +U 884 ; WX 602 ; N uni0374 ; G 715 +U 885 ; WX 602 ; N uni0375 ; G 716 +U 886 ; WX 602 ; N uni0376 ; G 717 +U 887 ; WX 602 ; N uni0377 ; G 718 +U 890 ; WX 602 ; N uni037A ; G 719 +U 891 ; WX 602 ; N uni037B ; G 720 +U 892 ; WX 602 ; N uni037C ; G 721 +U 893 ; WX 602 ; N uni037D ; G 722 +U 894 ; WX 602 ; N uni037E ; G 723 +U 895 ; WX 602 ; N uni037F ; G 724 +U 900 ; WX 602 ; N tonos ; G 725 +U 901 ; WX 602 ; N dieresistonos ; G 726 +U 902 ; WX 602 ; N Alphatonos ; G 727 +U 903 ; WX 602 ; N anoteleia ; G 728 +U 904 ; WX 602 ; N Epsilontonos ; G 729 +U 905 ; WX 602 ; N Etatonos ; G 730 +U 906 ; WX 602 ; N Iotatonos ; G 731 +U 908 ; WX 602 ; N Omicrontonos ; G 732 +U 910 ; WX 602 ; N Upsilontonos ; G 733 +U 911 ; WX 602 ; N Omegatonos ; G 734 +U 912 ; WX 602 ; N iotadieresistonos ; G 735 +U 913 ; WX 602 ; N Alpha ; G 736 +U 914 ; WX 602 ; N Beta ; G 737 +U 915 ; WX 602 ; N Gamma ; G 738 +U 916 ; WX 602 ; N uni0394 ; G 739 +U 917 ; WX 602 ; N Epsilon ; G 740 +U 918 ; WX 602 ; N Zeta ; G 741 +U 919 ; WX 602 ; N Eta ; G 742 +U 920 ; WX 602 ; N Theta ; G 743 +U 921 ; WX 602 ; N Iota ; G 744 +U 922 ; WX 602 ; N Kappa ; G 745 +U 923 ; WX 602 ; N Lambda ; G 746 +U 924 ; WX 602 ; N Mu ; G 747 +U 925 ; WX 602 ; N Nu ; G 748 +U 926 ; WX 602 ; N Xi ; G 749 +U 927 ; WX 602 ; N Omicron ; G 750 +U 928 ; WX 602 ; N Pi ; G 751 +U 929 ; WX 602 ; N Rho ; G 752 +U 931 ; WX 602 ; N Sigma ; G 753 +U 932 ; WX 602 ; N Tau ; G 754 +U 933 ; WX 602 ; N Upsilon ; G 755 +U 934 ; WX 602 ; N Phi ; G 756 +U 935 ; WX 602 ; N Chi ; G 757 +U 936 ; WX 602 ; N Psi ; G 758 +U 937 ; WX 602 ; N Omega ; G 759 +U 938 ; WX 602 ; N Iotadieresis ; G 760 +U 939 ; WX 602 ; N Upsilondieresis ; G 761 +U 940 ; WX 602 ; N alphatonos ; G 762 +U 941 ; WX 602 ; N epsilontonos ; G 763 +U 942 ; WX 602 ; N etatonos ; G 764 +U 943 ; WX 602 ; N iotatonos ; G 765 +U 944 ; WX 602 ; N upsilondieresistonos ; G 766 +U 945 ; WX 602 ; N alpha ; G 767 +U 946 ; WX 602 ; N beta ; G 768 +U 947 ; WX 602 ; N gamma ; G 769 +U 948 ; WX 602 ; N delta ; G 770 +U 949 ; WX 602 ; N epsilon ; G 771 +U 950 ; WX 602 ; N zeta ; G 772 +U 951 ; WX 602 ; N eta ; G 773 +U 952 ; WX 602 ; N theta ; G 774 +U 953 ; WX 602 ; N iota ; G 775 +U 954 ; WX 602 ; N kappa ; G 776 +U 955 ; WX 602 ; N lambda ; G 777 +U 956 ; WX 602 ; N uni03BC ; G 778 +U 957 ; WX 602 ; N nu ; G 779 +U 958 ; WX 602 ; N xi ; G 780 +U 959 ; WX 602 ; N omicron ; G 781 +U 960 ; WX 602 ; N pi ; G 782 +U 961 ; WX 602 ; N rho ; G 783 +U 962 ; WX 602 ; N sigma1 ; G 784 +U 963 ; WX 602 ; N sigma ; G 785 +U 964 ; WX 602 ; N tau ; G 786 +U 965 ; WX 602 ; N upsilon ; G 787 +U 966 ; WX 602 ; N phi ; G 788 +U 967 ; WX 602 ; N chi ; G 789 +U 968 ; WX 602 ; N psi ; G 790 +U 969 ; WX 602 ; N omega ; G 791 +U 970 ; WX 602 ; N iotadieresis ; G 792 +U 971 ; WX 602 ; N upsilondieresis ; G 793 +U 972 ; WX 602 ; N omicrontonos ; G 794 +U 973 ; WX 602 ; N upsilontonos ; G 795 +U 974 ; WX 602 ; N omegatonos ; G 796 +U 976 ; WX 602 ; N uni03D0 ; G 797 +U 977 ; WX 602 ; N theta1 ; G 798 +U 978 ; WX 602 ; N Upsilon1 ; G 799 +U 979 ; WX 602 ; N uni03D3 ; G 800 +U 980 ; WX 602 ; N uni03D4 ; G 801 +U 981 ; WX 602 ; N phi1 ; G 802 +U 982 ; WX 602 ; N omega1 ; G 803 +U 983 ; WX 602 ; N uni03D7 ; G 804 +U 984 ; WX 602 ; N uni03D8 ; G 805 +U 985 ; WX 602 ; N uni03D9 ; G 806 +U 986 ; WX 602 ; N uni03DA ; G 807 +U 987 ; WX 602 ; N uni03DB ; G 808 +U 988 ; WX 602 ; N uni03DC ; G 809 +U 989 ; WX 602 ; N uni03DD ; G 810 +U 990 ; WX 602 ; N uni03DE ; G 811 +U 991 ; WX 602 ; N uni03DF ; G 812 +U 992 ; WX 602 ; N uni03E0 ; G 813 +U 993 ; WX 602 ; N uni03E1 ; G 814 +U 1008 ; WX 602 ; N uni03F0 ; G 815 +U 1009 ; WX 602 ; N uni03F1 ; G 816 +U 1010 ; WX 602 ; N uni03F2 ; G 817 +U 1011 ; WX 602 ; N uni03F3 ; G 818 +U 1012 ; WX 602 ; N uni03F4 ; G 819 +U 1013 ; WX 602 ; N uni03F5 ; G 820 +U 1014 ; WX 602 ; N uni03F6 ; G 821 +U 1015 ; WX 602 ; N uni03F7 ; G 822 +U 1016 ; WX 602 ; N uni03F8 ; G 823 +U 1017 ; WX 602 ; N uni03F9 ; G 824 +U 1018 ; WX 602 ; N uni03FA ; G 825 +U 1019 ; WX 602 ; N uni03FB ; G 826 +U 1020 ; WX 602 ; N uni03FC ; G 827 +U 1021 ; WX 602 ; N uni03FD ; G 828 +U 1022 ; WX 602 ; N uni03FE ; G 829 +U 1023 ; WX 602 ; N uni03FF ; G 830 +U 1024 ; WX 602 ; N uni0400 ; G 831 +U 1025 ; WX 602 ; N uni0401 ; G 832 +U 1026 ; WX 602 ; N uni0402 ; G 833 +U 1027 ; WX 602 ; N uni0403 ; G 834 +U 1028 ; WX 602 ; N uni0404 ; G 835 +U 1029 ; WX 602 ; N uni0405 ; G 836 +U 1030 ; WX 602 ; N uni0406 ; G 837 +U 1031 ; WX 602 ; N uni0407 ; G 838 +U 1032 ; WX 602 ; N uni0408 ; G 839 +U 1033 ; WX 602 ; N uni0409 ; G 840 +U 1034 ; WX 602 ; N uni040A ; G 841 +U 1035 ; WX 602 ; N uni040B ; G 842 +U 1036 ; WX 602 ; N uni040C ; G 843 +U 1037 ; WX 602 ; N uni040D ; G 844 +U 1038 ; WX 602 ; N uni040E ; G 845 +U 1039 ; WX 602 ; N uni040F ; G 846 +U 1040 ; WX 602 ; N uni0410 ; G 847 +U 1041 ; WX 602 ; N uni0411 ; G 848 +U 1042 ; WX 602 ; N uni0412 ; G 849 +U 1043 ; WX 602 ; N uni0413 ; G 850 +U 1044 ; WX 602 ; N uni0414 ; G 851 +U 1045 ; WX 602 ; N uni0415 ; G 852 +U 1046 ; WX 602 ; N uni0416 ; G 853 +U 1047 ; WX 602 ; N uni0417 ; G 854 +U 1048 ; WX 602 ; N uni0418 ; G 855 +U 1049 ; WX 602 ; N uni0419 ; G 856 +U 1050 ; WX 602 ; N uni041A ; G 857 +U 1051 ; WX 602 ; N uni041B ; G 858 +U 1052 ; WX 602 ; N uni041C ; G 859 +U 1053 ; WX 602 ; N uni041D ; G 860 +U 1054 ; WX 602 ; N uni041E ; G 861 +U 1055 ; WX 602 ; N uni041F ; G 862 +U 1056 ; WX 602 ; N uni0420 ; G 863 +U 1057 ; WX 602 ; N uni0421 ; G 864 +U 1058 ; WX 602 ; N uni0422 ; G 865 +U 1059 ; WX 602 ; N uni0423 ; G 866 +U 1060 ; WX 602 ; N uni0424 ; G 867 +U 1061 ; WX 602 ; N uni0425 ; G 868 +U 1062 ; WX 602 ; N uni0426 ; G 869 +U 1063 ; WX 602 ; N uni0427 ; G 870 +U 1064 ; WX 602 ; N uni0428 ; G 871 +U 1065 ; WX 602 ; N uni0429 ; G 872 +U 1066 ; WX 602 ; N uni042A ; G 873 +U 1067 ; WX 602 ; N uni042B ; G 874 +U 1068 ; WX 602 ; N uni042C ; G 875 +U 1069 ; WX 602 ; N uni042D ; G 876 +U 1070 ; WX 602 ; N uni042E ; G 877 +U 1071 ; WX 602 ; N uni042F ; G 878 +U 1072 ; WX 602 ; N uni0430 ; G 879 +U 1073 ; WX 602 ; N uni0431 ; G 880 +U 1074 ; WX 602 ; N uni0432 ; G 881 +U 1075 ; WX 602 ; N uni0433 ; G 882 +U 1076 ; WX 602 ; N uni0434 ; G 883 +U 1077 ; WX 602 ; N uni0435 ; G 884 +U 1078 ; WX 602 ; N uni0436 ; G 885 +U 1079 ; WX 602 ; N uni0437 ; G 886 +U 1080 ; WX 602 ; N uni0438 ; G 887 +U 1081 ; WX 602 ; N uni0439 ; G 888 +U 1082 ; WX 602 ; N uni043A ; G 889 +U 1083 ; WX 602 ; N uni043B ; G 890 +U 1084 ; WX 602 ; N uni043C ; G 891 +U 1085 ; WX 602 ; N uni043D ; G 892 +U 1086 ; WX 602 ; N uni043E ; G 893 +U 1087 ; WX 602 ; N uni043F ; G 894 +U 1088 ; WX 602 ; N uni0440 ; G 895 +U 1089 ; WX 602 ; N uni0441 ; G 896 +U 1090 ; WX 602 ; N uni0442 ; G 897 +U 1091 ; WX 602 ; N uni0443 ; G 898 +U 1092 ; WX 602 ; N uni0444 ; G 899 +U 1093 ; WX 602 ; N uni0445 ; G 900 +U 1094 ; WX 602 ; N uni0446 ; G 901 +U 1095 ; WX 602 ; N uni0447 ; G 902 +U 1096 ; WX 602 ; N uni0448 ; G 903 +U 1097 ; WX 602 ; N uni0449 ; G 904 +U 1098 ; WX 602 ; N uni044A ; G 905 +U 1099 ; WX 602 ; N uni044B ; G 906 +U 1100 ; WX 602 ; N uni044C ; G 907 +U 1101 ; WX 602 ; N uni044D ; G 908 +U 1102 ; WX 602 ; N uni044E ; G 909 +U 1103 ; WX 602 ; N uni044F ; G 910 +U 1104 ; WX 602 ; N uni0450 ; G 911 +U 1105 ; WX 602 ; N uni0451 ; G 912 +U 1106 ; WX 602 ; N uni0452 ; G 913 +U 1107 ; WX 602 ; N uni0453 ; G 914 +U 1108 ; WX 602 ; N uni0454 ; G 915 +U 1109 ; WX 602 ; N uni0455 ; G 916 +U 1110 ; WX 602 ; N uni0456 ; G 917 +U 1111 ; WX 602 ; N uni0457 ; G 918 +U 1112 ; WX 602 ; N uni0458 ; G 919 +U 1113 ; WX 602 ; N uni0459 ; G 920 +U 1114 ; WX 602 ; N uni045A ; G 921 +U 1115 ; WX 602 ; N uni045B ; G 922 +U 1116 ; WX 602 ; N uni045C ; G 923 +U 1117 ; WX 602 ; N uni045D ; G 924 +U 1118 ; WX 602 ; N uni045E ; G 925 +U 1119 ; WX 602 ; N uni045F ; G 926 +U 1122 ; WX 602 ; N uni0462 ; G 927 +U 1123 ; WX 602 ; N uni0463 ; G 928 +U 1138 ; WX 602 ; N uni0472 ; G 929 +U 1139 ; WX 602 ; N uni0473 ; G 930 +U 1168 ; WX 602 ; N uni0490 ; G 931 +U 1169 ; WX 602 ; N uni0491 ; G 932 +U 1170 ; WX 602 ; N uni0492 ; G 933 +U 1171 ; WX 602 ; N uni0493 ; G 934 +U 1172 ; WX 602 ; N uni0494 ; G 935 +U 1173 ; WX 602 ; N uni0495 ; G 936 +U 1174 ; WX 602 ; N uni0496 ; G 937 +U 1175 ; WX 602 ; N uni0497 ; G 938 +U 1176 ; WX 602 ; N uni0498 ; G 939 +U 1177 ; WX 602 ; N uni0499 ; G 940 +U 1178 ; WX 602 ; N uni049A ; G 941 +U 1179 ; WX 602 ; N uni049B ; G 942 +U 1186 ; WX 602 ; N uni04A2 ; G 943 +U 1187 ; WX 602 ; N uni04A3 ; G 944 +U 1188 ; WX 602 ; N uni04A4 ; G 945 +U 1189 ; WX 602 ; N uni04A5 ; G 946 +U 1194 ; WX 602 ; N uni04AA ; G 947 +U 1195 ; WX 602 ; N uni04AB ; G 948 +U 1196 ; WX 602 ; N uni04AC ; G 949 +U 1197 ; WX 602 ; N uni04AD ; G 950 +U 1198 ; WX 602 ; N uni04AE ; G 951 +U 1199 ; WX 602 ; N uni04AF ; G 952 +U 1200 ; WX 602 ; N uni04B0 ; G 953 +U 1201 ; WX 602 ; N uni04B1 ; G 954 +U 1202 ; WX 602 ; N uni04B2 ; G 955 +U 1203 ; WX 602 ; N uni04B3 ; G 956 +U 1210 ; WX 602 ; N uni04BA ; G 957 +U 1211 ; WX 602 ; N uni04BB ; G 958 +U 1216 ; WX 602 ; N uni04C0 ; G 959 +U 1217 ; WX 602 ; N uni04C1 ; G 960 +U 1218 ; WX 602 ; N uni04C2 ; G 961 +U 1219 ; WX 602 ; N uni04C3 ; G 962 +U 1220 ; WX 602 ; N uni04C4 ; G 963 +U 1223 ; WX 602 ; N uni04C7 ; G 964 +U 1224 ; WX 602 ; N uni04C8 ; G 965 +U 1227 ; WX 602 ; N uni04CB ; G 966 +U 1228 ; WX 602 ; N uni04CC ; G 967 +U 1231 ; WX 602 ; N uni04CF ; G 968 +U 1232 ; WX 602 ; N uni04D0 ; G 969 +U 1233 ; WX 602 ; N uni04D1 ; G 970 +U 1234 ; WX 602 ; N uni04D2 ; G 971 +U 1235 ; WX 602 ; N uni04D3 ; G 972 +U 1236 ; WX 602 ; N uni04D4 ; G 973 +U 1237 ; WX 602 ; N uni04D5 ; G 974 +U 1238 ; WX 602 ; N uni04D6 ; G 975 +U 1239 ; WX 602 ; N uni04D7 ; G 976 +U 1240 ; WX 602 ; N uni04D8 ; G 977 +U 1241 ; WX 602 ; N uni04D9 ; G 978 +U 1242 ; WX 602 ; N uni04DA ; G 979 +U 1243 ; WX 602 ; N uni04DB ; G 980 +U 1244 ; WX 602 ; N uni04DC ; G 981 +U 1245 ; WX 602 ; N uni04DD ; G 982 +U 1246 ; WX 602 ; N uni04DE ; G 983 +U 1247 ; WX 602 ; N uni04DF ; G 984 +U 1248 ; WX 602 ; N uni04E0 ; G 985 +U 1249 ; WX 602 ; N uni04E1 ; G 986 +U 1250 ; WX 602 ; N uni04E2 ; G 987 +U 1251 ; WX 602 ; N uni04E3 ; G 988 +U 1252 ; WX 602 ; N uni04E4 ; G 989 +U 1253 ; WX 602 ; N uni04E5 ; G 990 +U 1254 ; WX 602 ; N uni04E6 ; G 991 +U 1255 ; WX 602 ; N uni04E7 ; G 992 +U 1256 ; WX 602 ; N uni04E8 ; G 993 +U 1257 ; WX 602 ; N uni04E9 ; G 994 +U 1258 ; WX 602 ; N uni04EA ; G 995 +U 1259 ; WX 602 ; N uni04EB ; G 996 +U 1260 ; WX 602 ; N uni04EC ; G 997 +U 1261 ; WX 602 ; N uni04ED ; G 998 +U 1262 ; WX 602 ; N uni04EE ; G 999 +U 1263 ; WX 602 ; N uni04EF ; G 1000 +U 1264 ; WX 602 ; N uni04F0 ; G 1001 +U 1265 ; WX 602 ; N uni04F1 ; G 1002 +U 1266 ; WX 602 ; N uni04F2 ; G 1003 +U 1267 ; WX 602 ; N uni04F3 ; G 1004 +U 1268 ; WX 602 ; N uni04F4 ; G 1005 +U 1269 ; WX 602 ; N uni04F5 ; G 1006 +U 1270 ; WX 602 ; N uni04F6 ; G 1007 +U 1271 ; WX 602 ; N uni04F7 ; G 1008 +U 1272 ; WX 602 ; N uni04F8 ; G 1009 +U 1273 ; WX 602 ; N uni04F9 ; G 1010 +U 1296 ; WX 602 ; N uni0510 ; G 1011 +U 1297 ; WX 602 ; N uni0511 ; G 1012 +U 1306 ; WX 602 ; N uni051A ; G 1013 +U 1307 ; WX 602 ; N uni051B ; G 1014 +U 1308 ; WX 602 ; N uni051C ; G 1015 +U 1309 ; WX 602 ; N uni051D ; G 1016 +U 1329 ; WX 602 ; N uni0531 ; G 1017 +U 1330 ; WX 602 ; N uni0532 ; G 1018 +U 1331 ; WX 602 ; N uni0533 ; G 1019 +U 1332 ; WX 602 ; N uni0534 ; G 1020 +U 1333 ; WX 602 ; N uni0535 ; G 1021 +U 1334 ; WX 602 ; N uni0536 ; G 1022 +U 1335 ; WX 602 ; N uni0537 ; G 1023 +U 1336 ; WX 602 ; N uni0538 ; G 1024 +U 1337 ; WX 602 ; N uni0539 ; G 1025 +U 1338 ; WX 602 ; N uni053A ; G 1026 +U 1339 ; WX 602 ; N uni053B ; G 1027 +U 1340 ; WX 602 ; N uni053C ; G 1028 +U 1341 ; WX 602 ; N uni053D ; G 1029 +U 1342 ; WX 602 ; N uni053E ; G 1030 +U 1343 ; WX 602 ; N uni053F ; G 1031 +U 1344 ; WX 602 ; N uni0540 ; G 1032 +U 1345 ; WX 602 ; N uni0541 ; G 1033 +U 1346 ; WX 602 ; N uni0542 ; G 1034 +U 1347 ; WX 602 ; N uni0543 ; G 1035 +U 1348 ; WX 602 ; N uni0544 ; G 1036 +U 1349 ; WX 602 ; N uni0545 ; G 1037 +U 1350 ; WX 602 ; N uni0546 ; G 1038 +U 1351 ; WX 602 ; N uni0547 ; G 1039 +U 1352 ; WX 602 ; N uni0548 ; G 1040 +U 1353 ; WX 602 ; N uni0549 ; G 1041 +U 1354 ; WX 602 ; N uni054A ; G 1042 +U 1355 ; WX 602 ; N uni054B ; G 1043 +U 1356 ; WX 602 ; N uni054C ; G 1044 +U 1357 ; WX 602 ; N uni054D ; G 1045 +U 1358 ; WX 602 ; N uni054E ; G 1046 +U 1359 ; WX 602 ; N uni054F ; G 1047 +U 1360 ; WX 602 ; N uni0550 ; G 1048 +U 1361 ; WX 602 ; N uni0551 ; G 1049 +U 1362 ; WX 602 ; N uni0552 ; G 1050 +U 1363 ; WX 602 ; N uni0553 ; G 1051 +U 1364 ; WX 602 ; N uni0554 ; G 1052 +U 1365 ; WX 602 ; N uni0555 ; G 1053 +U 1366 ; WX 602 ; N uni0556 ; G 1054 +U 1369 ; WX 602 ; N uni0559 ; G 1055 +U 1370 ; WX 602 ; N uni055A ; G 1056 +U 1371 ; WX 602 ; N uni055B ; G 1057 +U 1372 ; WX 602 ; N uni055C ; G 1058 +U 1373 ; WX 602 ; N uni055D ; G 1059 +U 1374 ; WX 602 ; N uni055E ; G 1060 +U 1375 ; WX 602 ; N uni055F ; G 1061 +U 1377 ; WX 602 ; N uni0561 ; G 1062 +U 1378 ; WX 602 ; N uni0562 ; G 1063 +U 1379 ; WX 602 ; N uni0563 ; G 1064 +U 1380 ; WX 602 ; N uni0564 ; G 1065 +U 1381 ; WX 602 ; N uni0565 ; G 1066 +U 1382 ; WX 602 ; N uni0566 ; G 1067 +U 1383 ; WX 602 ; N uni0567 ; G 1068 +U 1384 ; WX 602 ; N uni0568 ; G 1069 +U 1385 ; WX 602 ; N uni0569 ; G 1070 +U 1386 ; WX 602 ; N uni056A ; G 1071 +U 1387 ; WX 602 ; N uni056B ; G 1072 +U 1388 ; WX 602 ; N uni056C ; G 1073 +U 1389 ; WX 602 ; N uni056D ; G 1074 +U 1390 ; WX 602 ; N uni056E ; G 1075 +U 1391 ; WX 602 ; N uni056F ; G 1076 +U 1392 ; WX 602 ; N uni0570 ; G 1077 +U 1393 ; WX 602 ; N uni0571 ; G 1078 +U 1394 ; WX 602 ; N uni0572 ; G 1079 +U 1395 ; WX 602 ; N uni0573 ; G 1080 +U 1396 ; WX 602 ; N uni0574 ; G 1081 +U 1397 ; WX 602 ; N uni0575 ; G 1082 +U 1398 ; WX 602 ; N uni0576 ; G 1083 +U 1399 ; WX 602 ; N uni0577 ; G 1084 +U 1400 ; WX 602 ; N uni0578 ; G 1085 +U 1401 ; WX 602 ; N uni0579 ; G 1086 +U 1402 ; WX 602 ; N uni057A ; G 1087 +U 1403 ; WX 602 ; N uni057B ; G 1088 +U 1404 ; WX 602 ; N uni057C ; G 1089 +U 1405 ; WX 602 ; N uni057D ; G 1090 +U 1406 ; WX 602 ; N uni057E ; G 1091 +U 1407 ; WX 602 ; N uni057F ; G 1092 +U 1408 ; WX 602 ; N uni0580 ; G 1093 +U 1409 ; WX 602 ; N uni0581 ; G 1094 +U 1410 ; WX 602 ; N uni0582 ; G 1095 +U 1411 ; WX 602 ; N uni0583 ; G 1096 +U 1412 ; WX 602 ; N uni0584 ; G 1097 +U 1413 ; WX 602 ; N uni0585 ; G 1098 +U 1414 ; WX 602 ; N uni0586 ; G 1099 +U 1415 ; WX 602 ; N uni0587 ; G 1100 +U 1417 ; WX 602 ; N uni0589 ; G 1101 +U 1418 ; WX 602 ; N uni058A ; G 1102 +U 1542 ; WX 602 ; N uni0606 ; G 1103 +U 1543 ; WX 602 ; N uni0607 ; G 1104 +U 1545 ; WX 602 ; N uni0609 ; G 1105 +U 1546 ; WX 602 ; N uni060A ; G 1106 +U 1548 ; WX 602 ; N uni060C ; G 1107 +U 1557 ; WX 602 ; N uni0615 ; G 1108 +U 1563 ; WX 602 ; N uni061B ; G 1109 +U 1567 ; WX 602 ; N uni061F ; G 1110 +U 1569 ; WX 602 ; N uni0621 ; G 1111 +U 1570 ; WX 602 ; N uni0622 ; G 1112 +U 1571 ; WX 602 ; N uni0623 ; G 1113 +U 1572 ; WX 602 ; N uni0624 ; G 1114 +U 1573 ; WX 602 ; N uni0625 ; G 1115 +U 1574 ; WX 602 ; N uni0626 ; G 1116 +U 1575 ; WX 602 ; N uni0627 ; G 1117 +U 1576 ; WX 602 ; N uni0628 ; G 1118 +U 1577 ; WX 602 ; N uni0629 ; G 1119 +U 1578 ; WX 602 ; N uni062A ; G 1120 +U 1579 ; WX 602 ; N uni062B ; G 1121 +U 1580 ; WX 602 ; N uni062C ; G 1122 +U 1581 ; WX 602 ; N uni062D ; G 1123 +U 1582 ; WX 602 ; N uni062E ; G 1124 +U 1583 ; WX 602 ; N uni062F ; G 1125 +U 1584 ; WX 602 ; N uni0630 ; G 1126 +U 1585 ; WX 602 ; N uni0631 ; G 1127 +U 1586 ; WX 602 ; N uni0632 ; G 1128 +U 1587 ; WX 602 ; N uni0633 ; G 1129 +U 1588 ; WX 602 ; N uni0634 ; G 1130 +U 1589 ; WX 602 ; N uni0635 ; G 1131 +U 1590 ; WX 602 ; N uni0636 ; G 1132 +U 1591 ; WX 602 ; N uni0637 ; G 1133 +U 1592 ; WX 602 ; N uni0638 ; G 1134 +U 1593 ; WX 602 ; N uni0639 ; G 1135 +U 1594 ; WX 602 ; N uni063A ; G 1136 +U 1600 ; WX 602 ; N uni0640 ; G 1137 +U 1601 ; WX 602 ; N uni0641 ; G 1138 +U 1602 ; WX 602 ; N uni0642 ; G 1139 +U 1603 ; WX 602 ; N uni0643 ; G 1140 +U 1604 ; WX 602 ; N uni0644 ; G 1141 +U 1605 ; WX 602 ; N uni0645 ; G 1142 +U 1606 ; WX 602 ; N uni0646 ; G 1143 +U 1607 ; WX 602 ; N uni0647 ; G 1144 +U 1608 ; WX 602 ; N uni0648 ; G 1145 +U 1609 ; WX 602 ; N uni0649 ; G 1146 +U 1610 ; WX 602 ; N uni064A ; G 1147 +U 1611 ; WX 602 ; N uni064B ; G 1148 +U 1612 ; WX 602 ; N uni064C ; G 1149 +U 1613 ; WX 602 ; N uni064D ; G 1150 +U 1614 ; WX 602 ; N uni064E ; G 1151 +U 1615 ; WX 602 ; N uni064F ; G 1152 +U 1616 ; WX 602 ; N uni0650 ; G 1153 +U 1617 ; WX 602 ; N uni0651 ; G 1154 +U 1618 ; WX 602 ; N uni0652 ; G 1155 +U 1619 ; WX 602 ; N uni0653 ; G 1156 +U 1620 ; WX 602 ; N uni0654 ; G 1157 +U 1621 ; WX 602 ; N uni0655 ; G 1158 +U 1626 ; WX 602 ; N uni065A ; G 1159 +U 1632 ; WX 602 ; N uni0660 ; G 1160 +U 1633 ; WX 602 ; N uni0661 ; G 1161 +U 1634 ; WX 602 ; N uni0662 ; G 1162 +U 1635 ; WX 602 ; N uni0663 ; G 1163 +U 1636 ; WX 602 ; N uni0664 ; G 1164 +U 1637 ; WX 602 ; N uni0665 ; G 1165 +U 1638 ; WX 602 ; N uni0666 ; G 1166 +U 1639 ; WX 602 ; N uni0667 ; G 1167 +U 1640 ; WX 602 ; N uni0668 ; G 1168 +U 1641 ; WX 602 ; N uni0669 ; G 1169 +U 1642 ; WX 602 ; N uni066A ; G 1170 +U 1643 ; WX 602 ; N uni066B ; G 1171 +U 1644 ; WX 602 ; N uni066C ; G 1172 +U 1645 ; WX 602 ; N uni066D ; G 1173 +U 1652 ; WX 602 ; N uni0674 ; G 1174 +U 1657 ; WX 602 ; N uni0679 ; G 1175 +U 1658 ; WX 602 ; N uni067A ; G 1176 +U 1659 ; WX 602 ; N uni067B ; G 1177 +U 1662 ; WX 602 ; N uni067E ; G 1178 +U 1663 ; WX 602 ; N uni067F ; G 1179 +U 1664 ; WX 602 ; N uni0680 ; G 1180 +U 1667 ; WX 602 ; N uni0683 ; G 1181 +U 1668 ; WX 602 ; N uni0684 ; G 1182 +U 1670 ; WX 602 ; N uni0686 ; G 1183 +U 1671 ; WX 602 ; N uni0687 ; G 1184 +U 1681 ; WX 602 ; N uni0691 ; G 1185 +U 1688 ; WX 602 ; N uni0698 ; G 1186 +U 1700 ; WX 602 ; N uni06A4 ; G 1187 +U 1705 ; WX 602 ; N uni06A9 ; G 1188 +U 1711 ; WX 602 ; N uni06AF ; G 1189 +U 1726 ; WX 602 ; N uni06BE ; G 1190 +U 1740 ; WX 602 ; N uni06CC ; G 1191 +U 1776 ; WX 602 ; N uni06F0 ; G 1192 +U 1777 ; WX 602 ; N uni06F1 ; G 1193 +U 1778 ; WX 602 ; N uni06F2 ; G 1194 +U 1779 ; WX 602 ; N uni06F3 ; G 1195 +U 1780 ; WX 602 ; N uni06F4 ; G 1196 +U 1781 ; WX 602 ; N uni06F5 ; G 1197 +U 1782 ; WX 602 ; N uni06F6 ; G 1198 +U 1783 ; WX 602 ; N uni06F7 ; G 1199 +U 1784 ; WX 602 ; N uni06F8 ; G 1200 +U 1785 ; WX 602 ; N uni06F9 ; G 1201 +U 3647 ; WX 602 ; N uni0E3F ; G 1202 +U 3713 ; WX 602 ; N uni0E81 ; G 1203 +U 3714 ; WX 602 ; N uni0E82 ; G 1204 +U 3716 ; WX 602 ; N uni0E84 ; G 1205 +U 3719 ; WX 602 ; N uni0E87 ; G 1206 +U 3720 ; WX 602 ; N uni0E88 ; G 1207 +U 3722 ; WX 602 ; N uni0E8A ; G 1208 +U 3725 ; WX 602 ; N uni0E8D ; G 1209 +U 3732 ; WX 602 ; N uni0E94 ; G 1210 +U 3733 ; WX 602 ; N uni0E95 ; G 1211 +U 3734 ; WX 602 ; N uni0E96 ; G 1212 +U 3735 ; WX 602 ; N uni0E97 ; G 1213 +U 3737 ; WX 602 ; N uni0E99 ; G 1214 +U 3738 ; WX 602 ; N uni0E9A ; G 1215 +U 3739 ; WX 602 ; N uni0E9B ; G 1216 +U 3740 ; WX 602 ; N uni0E9C ; G 1217 +U 3741 ; WX 602 ; N uni0E9D ; G 1218 +U 3742 ; WX 602 ; N uni0E9E ; G 1219 +U 3743 ; WX 602 ; N uni0E9F ; G 1220 +U 3745 ; WX 602 ; N uni0EA1 ; G 1221 +U 3746 ; WX 602 ; N uni0EA2 ; G 1222 +U 3747 ; WX 602 ; N uni0EA3 ; G 1223 +U 3749 ; WX 602 ; N uni0EA5 ; G 1224 +U 3751 ; WX 602 ; N uni0EA7 ; G 1225 +U 3754 ; WX 602 ; N uni0EAA ; G 1226 +U 3755 ; WX 602 ; N uni0EAB ; G 1227 +U 3757 ; WX 602 ; N uni0EAD ; G 1228 +U 3758 ; WX 602 ; N uni0EAE ; G 1229 +U 3759 ; WX 602 ; N uni0EAF ; G 1230 +U 3760 ; WX 602 ; N uni0EB0 ; G 1231 +U 3761 ; WX 602 ; N uni0EB1 ; G 1232 +U 3762 ; WX 602 ; N uni0EB2 ; G 1233 +U 3763 ; WX 602 ; N uni0EB3 ; G 1234 +U 3764 ; WX 602 ; N uni0EB4 ; G 1235 +U 3765 ; WX 602 ; N uni0EB5 ; G 1236 +U 3766 ; WX 602 ; N uni0EB6 ; G 1237 +U 3767 ; WX 602 ; N uni0EB7 ; G 1238 +U 3768 ; WX 602 ; N uni0EB8 ; G 1239 +U 3769 ; WX 602 ; N uni0EB9 ; G 1240 +U 3771 ; WX 602 ; N uni0EBB ; G 1241 +U 3772 ; WX 602 ; N uni0EBC ; G 1242 +U 3784 ; WX 602 ; N uni0EC8 ; G 1243 +U 3785 ; WX 602 ; N uni0EC9 ; G 1244 +U 3786 ; WX 602 ; N uni0ECA ; G 1245 +U 3787 ; WX 602 ; N uni0ECB ; G 1246 +U 3788 ; WX 602 ; N uni0ECC ; G 1247 +U 3789 ; WX 602 ; N uni0ECD ; G 1248 +U 4304 ; WX 602 ; N uni10D0 ; G 1249 +U 4305 ; WX 602 ; N uni10D1 ; G 1250 +U 4306 ; WX 602 ; N uni10D2 ; G 1251 +U 4307 ; WX 602 ; N uni10D3 ; G 1252 +U 4308 ; WX 602 ; N uni10D4 ; G 1253 +U 4309 ; WX 602 ; N uni10D5 ; G 1254 +U 4310 ; WX 602 ; N uni10D6 ; G 1255 +U 4311 ; WX 602 ; N uni10D7 ; G 1256 +U 4312 ; WX 602 ; N uni10D8 ; G 1257 +U 4313 ; WX 602 ; N uni10D9 ; G 1258 +U 4314 ; WX 602 ; N uni10DA ; G 1259 +U 4315 ; WX 602 ; N uni10DB ; G 1260 +U 4316 ; WX 602 ; N uni10DC ; G 1261 +U 4317 ; WX 602 ; N uni10DD ; G 1262 +U 4318 ; WX 602 ; N uni10DE ; G 1263 +U 4319 ; WX 602 ; N uni10DF ; G 1264 +U 4320 ; WX 602 ; N uni10E0 ; G 1265 +U 4321 ; WX 602 ; N uni10E1 ; G 1266 +U 4322 ; WX 602 ; N uni10E2 ; G 1267 +U 4323 ; WX 602 ; N uni10E3 ; G 1268 +U 4324 ; WX 602 ; N uni10E4 ; G 1269 +U 4325 ; WX 602 ; N uni10E5 ; G 1270 +U 4326 ; WX 602 ; N uni10E6 ; G 1271 +U 4327 ; WX 602 ; N uni10E7 ; G 1272 +U 4328 ; WX 602 ; N uni10E8 ; G 1273 +U 4329 ; WX 602 ; N uni10E9 ; G 1274 +U 4330 ; WX 602 ; N uni10EA ; G 1275 +U 4331 ; WX 602 ; N uni10EB ; G 1276 +U 4332 ; WX 602 ; N uni10EC ; G 1277 +U 4333 ; WX 602 ; N uni10ED ; G 1278 +U 4334 ; WX 602 ; N uni10EE ; G 1279 +U 4335 ; WX 602 ; N uni10EF ; G 1280 +U 4336 ; WX 602 ; N uni10F0 ; G 1281 +U 4337 ; WX 602 ; N uni10F1 ; G 1282 +U 4338 ; WX 602 ; N uni10F2 ; G 1283 +U 4339 ; WX 602 ; N uni10F3 ; G 1284 +U 4340 ; WX 602 ; N uni10F4 ; G 1285 +U 4341 ; WX 602 ; N uni10F5 ; G 1286 +U 4342 ; WX 602 ; N uni10F6 ; G 1287 +U 4343 ; WX 602 ; N uni10F7 ; G 1288 +U 4344 ; WX 602 ; N uni10F8 ; G 1289 +U 4345 ; WX 602 ; N uni10F9 ; G 1290 +U 4346 ; WX 602 ; N uni10FA ; G 1291 +U 4347 ; WX 602 ; N uni10FB ; G 1292 +U 4348 ; WX 602 ; N uni10FC ; G 1293 +U 7426 ; WX 602 ; N uni1D02 ; G 1294 +U 7432 ; WX 602 ; N uni1D08 ; G 1295 +U 7433 ; WX 602 ; N uni1D09 ; G 1296 +U 7444 ; WX 602 ; N uni1D14 ; G 1297 +U 7446 ; WX 602 ; N uni1D16 ; G 1298 +U 7447 ; WX 602 ; N uni1D17 ; G 1299 +U 7453 ; WX 602 ; N uni1D1D ; G 1300 +U 7454 ; WX 602 ; N uni1D1E ; G 1301 +U 7455 ; WX 602 ; N uni1D1F ; G 1302 +U 7468 ; WX 602 ; N uni1D2C ; G 1303 +U 7469 ; WX 602 ; N uni1D2D ; G 1304 +U 7470 ; WX 602 ; N uni1D2E ; G 1305 +U 7472 ; WX 602 ; N uni1D30 ; G 1306 +U 7473 ; WX 602 ; N uni1D31 ; G 1307 +U 7474 ; WX 602 ; N uni1D32 ; G 1308 +U 7475 ; WX 602 ; N uni1D33 ; G 1309 +U 7476 ; WX 602 ; N uni1D34 ; G 1310 +U 7477 ; WX 602 ; N uni1D35 ; G 1311 +U 7478 ; WX 602 ; N uni1D36 ; G 1312 +U 7479 ; WX 602 ; N uni1D37 ; G 1313 +U 7480 ; WX 602 ; N uni1D38 ; G 1314 +U 7481 ; WX 602 ; N uni1D39 ; G 1315 +U 7482 ; WX 602 ; N uni1D3A ; G 1316 +U 7483 ; WX 602 ; N uni1D3B ; G 1317 +U 7484 ; WX 602 ; N uni1D3C ; G 1318 +U 7486 ; WX 602 ; N uni1D3E ; G 1319 +U 7487 ; WX 602 ; N uni1D3F ; G 1320 +U 7488 ; WX 602 ; N uni1D40 ; G 1321 +U 7489 ; WX 602 ; N uni1D41 ; G 1322 +U 7490 ; WX 602 ; N uni1D42 ; G 1323 +U 7491 ; WX 602 ; N uni1D43 ; G 1324 +U 7492 ; WX 602 ; N uni1D44 ; G 1325 +U 7493 ; WX 602 ; N uni1D45 ; G 1326 +U 7494 ; WX 602 ; N uni1D46 ; G 1327 +U 7495 ; WX 602 ; N uni1D47 ; G 1328 +U 7496 ; WX 602 ; N uni1D48 ; G 1329 +U 7497 ; WX 602 ; N uni1D49 ; G 1330 +U 7498 ; WX 602 ; N uni1D4A ; G 1331 +U 7499 ; WX 602 ; N uni1D4B ; G 1332 +U 7500 ; WX 602 ; N uni1D4C ; G 1333 +U 7501 ; WX 602 ; N uni1D4D ; G 1334 +U 7502 ; WX 602 ; N uni1D4E ; G 1335 +U 7503 ; WX 602 ; N uni1D4F ; G 1336 +U 7504 ; WX 602 ; N uni1D50 ; G 1337 +U 7505 ; WX 602 ; N uni1D51 ; G 1338 +U 7506 ; WX 602 ; N uni1D52 ; G 1339 +U 7507 ; WX 602 ; N uni1D53 ; G 1340 +U 7508 ; WX 602 ; N uni1D54 ; G 1341 +U 7509 ; WX 602 ; N uni1D55 ; G 1342 +U 7510 ; WX 602 ; N uni1D56 ; G 1343 +U 7511 ; WX 602 ; N uni1D57 ; G 1344 +U 7512 ; WX 602 ; N uni1D58 ; G 1345 +U 7513 ; WX 602 ; N uni1D59 ; G 1346 +U 7514 ; WX 602 ; N uni1D5A ; G 1347 +U 7515 ; WX 602 ; N uni1D5B ; G 1348 +U 7522 ; WX 602 ; N uni1D62 ; G 1349 +U 7523 ; WX 602 ; N uni1D63 ; G 1350 +U 7524 ; WX 602 ; N uni1D64 ; G 1351 +U 7525 ; WX 602 ; N uni1D65 ; G 1352 +U 7543 ; WX 602 ; N uni1D77 ; G 1353 +U 7544 ; WX 602 ; N uni1D78 ; G 1354 +U 7547 ; WX 602 ; N uni1D7B ; G 1355 +U 7557 ; WX 602 ; N uni1D85 ; G 1356 +U 7579 ; WX 602 ; N uni1D9B ; G 1357 +U 7580 ; WX 602 ; N uni1D9C ; G 1358 +U 7581 ; WX 602 ; N uni1D9D ; G 1359 +U 7582 ; WX 602 ; N uni1D9E ; G 1360 +U 7583 ; WX 602 ; N uni1D9F ; G 1361 +U 7584 ; WX 602 ; N uni1DA0 ; G 1362 +U 7585 ; WX 602 ; N uni1DA1 ; G 1363 +U 7586 ; WX 602 ; N uni1DA2 ; G 1364 +U 7587 ; WX 602 ; N uni1DA3 ; G 1365 +U 7588 ; WX 602 ; N uni1DA4 ; G 1366 +U 7589 ; WX 602 ; N uni1DA5 ; G 1367 +U 7590 ; WX 602 ; N uni1DA6 ; G 1368 +U 7591 ; WX 602 ; N uni1DA7 ; G 1369 +U 7592 ; WX 602 ; N uni1DA8 ; G 1370 +U 7593 ; WX 602 ; N uni1DA9 ; G 1371 +U 7594 ; WX 602 ; N uni1DAA ; G 1372 +U 7595 ; WX 602 ; N uni1DAB ; G 1373 +U 7596 ; WX 602 ; N uni1DAC ; G 1374 +U 7597 ; WX 602 ; N uni1DAD ; G 1375 +U 7598 ; WX 602 ; N uni1DAE ; G 1376 +U 7599 ; WX 602 ; N uni1DAF ; G 1377 +U 7600 ; WX 602 ; N uni1DB0 ; G 1378 +U 7601 ; WX 602 ; N uni1DB1 ; G 1379 +U 7602 ; WX 602 ; N uni1DB2 ; G 1380 +U 7603 ; WX 602 ; N uni1DB3 ; G 1381 +U 7604 ; WX 602 ; N uni1DB4 ; G 1382 +U 7605 ; WX 602 ; N uni1DB5 ; G 1383 +U 7606 ; WX 602 ; N uni1DB6 ; G 1384 +U 7607 ; WX 602 ; N uni1DB7 ; G 1385 +U 7609 ; WX 602 ; N uni1DB9 ; G 1386 +U 7610 ; WX 602 ; N uni1DBA ; G 1387 +U 7611 ; WX 602 ; N uni1DBB ; G 1388 +U 7612 ; WX 602 ; N uni1DBC ; G 1389 +U 7613 ; WX 602 ; N uni1DBD ; G 1390 +U 7614 ; WX 602 ; N uni1DBE ; G 1391 +U 7615 ; WX 602 ; N uni1DBF ; G 1392 +U 7680 ; WX 602 ; N uni1E00 ; G 1393 +U 7681 ; WX 602 ; N uni1E01 ; G 1394 +U 7682 ; WX 602 ; N uni1E02 ; G 1395 +U 7683 ; WX 602 ; N uni1E03 ; G 1396 +U 7684 ; WX 602 ; N uni1E04 ; G 1397 +U 7685 ; WX 602 ; N uni1E05 ; G 1398 +U 7686 ; WX 602 ; N uni1E06 ; G 1399 +U 7687 ; WX 602 ; N uni1E07 ; G 1400 +U 7688 ; WX 602 ; N uni1E08 ; G 1401 +U 7689 ; WX 602 ; N uni1E09 ; G 1402 +U 7690 ; WX 602 ; N uni1E0A ; G 1403 +U 7691 ; WX 602 ; N uni1E0B ; G 1404 +U 7692 ; WX 602 ; N uni1E0C ; G 1405 +U 7693 ; WX 602 ; N uni1E0D ; G 1406 +U 7694 ; WX 602 ; N uni1E0E ; G 1407 +U 7695 ; WX 602 ; N uni1E0F ; G 1408 +U 7696 ; WX 602 ; N uni1E10 ; G 1409 +U 7697 ; WX 602 ; N uni1E11 ; G 1410 +U 7698 ; WX 602 ; N uni1E12 ; G 1411 +U 7699 ; WX 602 ; N uni1E13 ; G 1412 +U 7704 ; WX 602 ; N uni1E18 ; G 1413 +U 7705 ; WX 602 ; N uni1E19 ; G 1414 +U 7706 ; WX 602 ; N uni1E1A ; G 1415 +U 7707 ; WX 602 ; N uni1E1B ; G 1416 +U 7708 ; WX 602 ; N uni1E1C ; G 1417 +U 7709 ; WX 602 ; N uni1E1D ; G 1418 +U 7710 ; WX 602 ; N uni1E1E ; G 1419 +U 7711 ; WX 602 ; N uni1E1F ; G 1420 +U 7712 ; WX 602 ; N uni1E20 ; G 1421 +U 7713 ; WX 602 ; N uni1E21 ; G 1422 +U 7714 ; WX 602 ; N uni1E22 ; G 1423 +U 7715 ; WX 602 ; N uni1E23 ; G 1424 +U 7716 ; WX 602 ; N uni1E24 ; G 1425 +U 7717 ; WX 602 ; N uni1E25 ; G 1426 +U 7718 ; WX 602 ; N uni1E26 ; G 1427 +U 7719 ; WX 602 ; N uni1E27 ; G 1428 +U 7720 ; WX 602 ; N uni1E28 ; G 1429 +U 7721 ; WX 602 ; N uni1E29 ; G 1430 +U 7722 ; WX 602 ; N uni1E2A ; G 1431 +U 7723 ; WX 602 ; N uni1E2B ; G 1432 +U 7724 ; WX 602 ; N uni1E2C ; G 1433 +U 7725 ; WX 602 ; N uni1E2D ; G 1434 +U 7728 ; WX 602 ; N uni1E30 ; G 1435 +U 7729 ; WX 602 ; N uni1E31 ; G 1436 +U 7730 ; WX 602 ; N uni1E32 ; G 1437 +U 7731 ; WX 602 ; N uni1E33 ; G 1438 +U 7732 ; WX 602 ; N uni1E34 ; G 1439 +U 7733 ; WX 602 ; N uni1E35 ; G 1440 +U 7734 ; WX 602 ; N uni1E36 ; G 1441 +U 7735 ; WX 602 ; N uni1E37 ; G 1442 +U 7736 ; WX 602 ; N uni1E38 ; G 1443 +U 7737 ; WX 602 ; N uni1E39 ; G 1444 +U 7738 ; WX 602 ; N uni1E3A ; G 1445 +U 7739 ; WX 602 ; N uni1E3B ; G 1446 +U 7740 ; WX 602 ; N uni1E3C ; G 1447 +U 7741 ; WX 602 ; N uni1E3D ; G 1448 +U 7742 ; WX 602 ; N uni1E3E ; G 1449 +U 7743 ; WX 602 ; N uni1E3F ; G 1450 +U 7744 ; WX 602 ; N uni1E40 ; G 1451 +U 7745 ; WX 602 ; N uni1E41 ; G 1452 +U 7746 ; WX 602 ; N uni1E42 ; G 1453 +U 7747 ; WX 602 ; N uni1E43 ; G 1454 +U 7748 ; WX 602 ; N uni1E44 ; G 1455 +U 7749 ; WX 602 ; N uni1E45 ; G 1456 +U 7750 ; WX 602 ; N uni1E46 ; G 1457 +U 7751 ; WX 602 ; N uni1E47 ; G 1458 +U 7752 ; WX 602 ; N uni1E48 ; G 1459 +U 7753 ; WX 602 ; N uni1E49 ; G 1460 +U 7754 ; WX 602 ; N uni1E4A ; G 1461 +U 7755 ; WX 602 ; N uni1E4B ; G 1462 +U 7756 ; WX 602 ; N uni1E4C ; G 1463 +U 7757 ; WX 602 ; N uni1E4D ; G 1464 +U 7764 ; WX 602 ; N uni1E54 ; G 1465 +U 7765 ; WX 602 ; N uni1E55 ; G 1466 +U 7766 ; WX 602 ; N uni1E56 ; G 1467 +U 7767 ; WX 602 ; N uni1E57 ; G 1468 +U 7768 ; WX 602 ; N uni1E58 ; G 1469 +U 7769 ; WX 602 ; N uni1E59 ; G 1470 +U 7770 ; WX 602 ; N uni1E5A ; G 1471 +U 7771 ; WX 602 ; N uni1E5B ; G 1472 +U 7772 ; WX 602 ; N uni1E5C ; G 1473 +U 7773 ; WX 602 ; N uni1E5D ; G 1474 +U 7774 ; WX 602 ; N uni1E5E ; G 1475 +U 7775 ; WX 602 ; N uni1E5F ; G 1476 +U 7776 ; WX 602 ; N uni1E60 ; G 1477 +U 7777 ; WX 602 ; N uni1E61 ; G 1478 +U 7778 ; WX 602 ; N uni1E62 ; G 1479 +U 7779 ; WX 602 ; N uni1E63 ; G 1480 +U 7784 ; WX 602 ; N uni1E68 ; G 1481 +U 7785 ; WX 602 ; N uni1E69 ; G 1482 +U 7786 ; WX 602 ; N uni1E6A ; G 1483 +U 7787 ; WX 602 ; N uni1E6B ; G 1484 +U 7788 ; WX 602 ; N uni1E6C ; G 1485 +U 7789 ; WX 602 ; N uni1E6D ; G 1486 +U 7790 ; WX 602 ; N uni1E6E ; G 1487 +U 7791 ; WX 602 ; N uni1E6F ; G 1488 +U 7792 ; WX 602 ; N uni1E70 ; G 1489 +U 7793 ; WX 602 ; N uni1E71 ; G 1490 +U 7794 ; WX 602 ; N uni1E72 ; G 1491 +U 7795 ; WX 602 ; N uni1E73 ; G 1492 +U 7796 ; WX 602 ; N uni1E74 ; G 1493 +U 7797 ; WX 602 ; N uni1E75 ; G 1494 +U 7798 ; WX 602 ; N uni1E76 ; G 1495 +U 7799 ; WX 602 ; N uni1E77 ; G 1496 +U 7800 ; WX 602 ; N uni1E78 ; G 1497 +U 7801 ; WX 602 ; N uni1E79 ; G 1498 +U 7804 ; WX 602 ; N uni1E7C ; G 1499 +U 7805 ; WX 602 ; N uni1E7D ; G 1500 +U 7806 ; WX 602 ; N uni1E7E ; G 1501 +U 7807 ; WX 602 ; N uni1E7F ; G 1502 +U 7808 ; WX 602 ; N Wgrave ; G 1503 +U 7809 ; WX 602 ; N wgrave ; G 1504 +U 7810 ; WX 602 ; N Wacute ; G 1505 +U 7811 ; WX 602 ; N wacute ; G 1506 +U 7812 ; WX 602 ; N Wdieresis ; G 1507 +U 7813 ; WX 602 ; N wdieresis ; G 1508 +U 7814 ; WX 602 ; N uni1E86 ; G 1509 +U 7815 ; WX 602 ; N uni1E87 ; G 1510 +U 7816 ; WX 602 ; N uni1E88 ; G 1511 +U 7817 ; WX 602 ; N uni1E89 ; G 1512 +U 7818 ; WX 602 ; N uni1E8A ; G 1513 +U 7819 ; WX 602 ; N uni1E8B ; G 1514 +U 7820 ; WX 602 ; N uni1E8C ; G 1515 +U 7821 ; WX 602 ; N uni1E8D ; G 1516 +U 7822 ; WX 602 ; N uni1E8E ; G 1517 +U 7823 ; WX 602 ; N uni1E8F ; G 1518 +U 7824 ; WX 602 ; N uni1E90 ; G 1519 +U 7825 ; WX 602 ; N uni1E91 ; G 1520 +U 7826 ; WX 602 ; N uni1E92 ; G 1521 +U 7827 ; WX 602 ; N uni1E93 ; G 1522 +U 7828 ; WX 602 ; N uni1E94 ; G 1523 +U 7829 ; WX 602 ; N uni1E95 ; G 1524 +U 7830 ; WX 602 ; N uni1E96 ; G 1525 +U 7831 ; WX 602 ; N uni1E97 ; G 1526 +U 7832 ; WX 602 ; N uni1E98 ; G 1527 +U 7833 ; WX 602 ; N uni1E99 ; G 1528 +U 7835 ; WX 602 ; N uni1E9B ; G 1529 +U 7839 ; WX 602 ; N uni1E9F ; G 1530 +U 7840 ; WX 602 ; N uni1EA0 ; G 1531 +U 7841 ; WX 602 ; N uni1EA1 ; G 1532 +U 7852 ; WX 602 ; N uni1EAC ; G 1533 +U 7853 ; WX 602 ; N uni1EAD ; G 1534 +U 7856 ; WX 602 ; N uni1EB0 ; G 1535 +U 7857 ; WX 602 ; N uni1EB1 ; G 1536 +U 7862 ; WX 602 ; N uni1EB6 ; G 1537 +U 7863 ; WX 602 ; N uni1EB7 ; G 1538 +U 7864 ; WX 602 ; N uni1EB8 ; G 1539 +U 7865 ; WX 602 ; N uni1EB9 ; G 1540 +U 7868 ; WX 602 ; N uni1EBC ; G 1541 +U 7869 ; WX 602 ; N uni1EBD ; G 1542 +U 7878 ; WX 602 ; N uni1EC6 ; G 1543 +U 7879 ; WX 602 ; N uni1EC7 ; G 1544 +U 7882 ; WX 602 ; N uni1ECA ; G 1545 +U 7883 ; WX 602 ; N uni1ECB ; G 1546 +U 7884 ; WX 602 ; N uni1ECC ; G 1547 +U 7885 ; WX 602 ; N uni1ECD ; G 1548 +U 7896 ; WX 602 ; N uni1ED8 ; G 1549 +U 7897 ; WX 602 ; N uni1ED9 ; G 1550 +U 7898 ; WX 602 ; N uni1EDA ; G 1551 +U 7899 ; WX 602 ; N uni1EDB ; G 1552 +U 7900 ; WX 602 ; N uni1EDC ; G 1553 +U 7901 ; WX 602 ; N uni1EDD ; G 1554 +U 7904 ; WX 602 ; N uni1EE0 ; G 1555 +U 7905 ; WX 602 ; N uni1EE1 ; G 1556 +U 7906 ; WX 602 ; N uni1EE2 ; G 1557 +U 7907 ; WX 602 ; N uni1EE3 ; G 1558 +U 7908 ; WX 602 ; N uni1EE4 ; G 1559 +U 7909 ; WX 602 ; N uni1EE5 ; G 1560 +U 7912 ; WX 602 ; N uni1EE8 ; G 1561 +U 7913 ; WX 602 ; N uni1EE9 ; G 1562 +U 7914 ; WX 602 ; N uni1EEA ; G 1563 +U 7915 ; WX 602 ; N uni1EEB ; G 1564 +U 7918 ; WX 602 ; N uni1EEE ; G 1565 +U 7919 ; WX 602 ; N uni1EEF ; G 1566 +U 7920 ; WX 602 ; N uni1EF0 ; G 1567 +U 7921 ; WX 602 ; N uni1EF1 ; G 1568 +U 7922 ; WX 602 ; N Ygrave ; G 1569 +U 7923 ; WX 602 ; N ygrave ; G 1570 +U 7924 ; WX 602 ; N uni1EF4 ; G 1571 +U 7925 ; WX 602 ; N uni1EF5 ; G 1572 +U 7928 ; WX 602 ; N uni1EF8 ; G 1573 +U 7929 ; WX 602 ; N uni1EF9 ; G 1574 +U 7936 ; WX 602 ; N uni1F00 ; G 1575 +U 7937 ; WX 602 ; N uni1F01 ; G 1576 +U 7938 ; WX 602 ; N uni1F02 ; G 1577 +U 7939 ; WX 602 ; N uni1F03 ; G 1578 +U 7940 ; WX 602 ; N uni1F04 ; G 1579 +U 7941 ; WX 602 ; N uni1F05 ; G 1580 +U 7942 ; WX 602 ; N uni1F06 ; G 1581 +U 7943 ; WX 602 ; N uni1F07 ; G 1582 +U 7944 ; WX 602 ; N uni1F08 ; G 1583 +U 7945 ; WX 602 ; N uni1F09 ; G 1584 +U 7946 ; WX 602 ; N uni1F0A ; G 1585 +U 7947 ; WX 602 ; N uni1F0B ; G 1586 +U 7948 ; WX 602 ; N uni1F0C ; G 1587 +U 7949 ; WX 602 ; N uni1F0D ; G 1588 +U 7950 ; WX 602 ; N uni1F0E ; G 1589 +U 7951 ; WX 602 ; N uni1F0F ; G 1590 +U 7952 ; WX 602 ; N uni1F10 ; G 1591 +U 7953 ; WX 602 ; N uni1F11 ; G 1592 +U 7954 ; WX 602 ; N uni1F12 ; G 1593 +U 7955 ; WX 602 ; N uni1F13 ; G 1594 +U 7956 ; WX 602 ; N uni1F14 ; G 1595 +U 7957 ; WX 602 ; N uni1F15 ; G 1596 +U 7960 ; WX 602 ; N uni1F18 ; G 1597 +U 7961 ; WX 602 ; N uni1F19 ; G 1598 +U 7962 ; WX 602 ; N uni1F1A ; G 1599 +U 7963 ; WX 602 ; N uni1F1B ; G 1600 +U 7964 ; WX 602 ; N uni1F1C ; G 1601 +U 7965 ; WX 602 ; N uni1F1D ; G 1602 +U 7968 ; WX 602 ; N uni1F20 ; G 1603 +U 7969 ; WX 602 ; N uni1F21 ; G 1604 +U 7970 ; WX 602 ; N uni1F22 ; G 1605 +U 7971 ; WX 602 ; N uni1F23 ; G 1606 +U 7972 ; WX 602 ; N uni1F24 ; G 1607 +U 7973 ; WX 602 ; N uni1F25 ; G 1608 +U 7974 ; WX 602 ; N uni1F26 ; G 1609 +U 7975 ; WX 602 ; N uni1F27 ; G 1610 +U 7976 ; WX 602 ; N uni1F28 ; G 1611 +U 7977 ; WX 602 ; N uni1F29 ; G 1612 +U 7978 ; WX 602 ; N uni1F2A ; G 1613 +U 7979 ; WX 602 ; N uni1F2B ; G 1614 +U 7980 ; WX 602 ; N uni1F2C ; G 1615 +U 7981 ; WX 602 ; N uni1F2D ; G 1616 +U 7982 ; WX 602 ; N uni1F2E ; G 1617 +U 7983 ; WX 602 ; N uni1F2F ; G 1618 +U 7984 ; WX 602 ; N uni1F30 ; G 1619 +U 7985 ; WX 602 ; N uni1F31 ; G 1620 +U 7986 ; WX 602 ; N uni1F32 ; G 1621 +U 7987 ; WX 602 ; N uni1F33 ; G 1622 +U 7988 ; WX 602 ; N uni1F34 ; G 1623 +U 7989 ; WX 602 ; N uni1F35 ; G 1624 +U 7990 ; WX 602 ; N uni1F36 ; G 1625 +U 7991 ; WX 602 ; N uni1F37 ; G 1626 +U 7992 ; WX 602 ; N uni1F38 ; G 1627 +U 7993 ; WX 602 ; N uni1F39 ; G 1628 +U 7994 ; WX 602 ; N uni1F3A ; G 1629 +U 7995 ; WX 602 ; N uni1F3B ; G 1630 +U 7996 ; WX 602 ; N uni1F3C ; G 1631 +U 7997 ; WX 602 ; N uni1F3D ; G 1632 +U 7998 ; WX 602 ; N uni1F3E ; G 1633 +U 7999 ; WX 602 ; N uni1F3F ; G 1634 +U 8000 ; WX 602 ; N uni1F40 ; G 1635 +U 8001 ; WX 602 ; N uni1F41 ; G 1636 +U 8002 ; WX 602 ; N uni1F42 ; G 1637 +U 8003 ; WX 602 ; N uni1F43 ; G 1638 +U 8004 ; WX 602 ; N uni1F44 ; G 1639 +U 8005 ; WX 602 ; N uni1F45 ; G 1640 +U 8008 ; WX 602 ; N uni1F48 ; G 1641 +U 8009 ; WX 602 ; N uni1F49 ; G 1642 +U 8010 ; WX 602 ; N uni1F4A ; G 1643 +U 8011 ; WX 602 ; N uni1F4B ; G 1644 +U 8012 ; WX 602 ; N uni1F4C ; G 1645 +U 8013 ; WX 602 ; N uni1F4D ; G 1646 +U 8016 ; WX 602 ; N uni1F50 ; G 1647 +U 8017 ; WX 602 ; N uni1F51 ; G 1648 +U 8018 ; WX 602 ; N uni1F52 ; G 1649 +U 8019 ; WX 602 ; N uni1F53 ; G 1650 +U 8020 ; WX 602 ; N uni1F54 ; G 1651 +U 8021 ; WX 602 ; N uni1F55 ; G 1652 +U 8022 ; WX 602 ; N uni1F56 ; G 1653 +U 8023 ; WX 602 ; N uni1F57 ; G 1654 +U 8025 ; WX 602 ; N uni1F59 ; G 1655 +U 8027 ; WX 602 ; N uni1F5B ; G 1656 +U 8029 ; WX 602 ; N uni1F5D ; G 1657 +U 8031 ; WX 602 ; N uni1F5F ; G 1658 +U 8032 ; WX 602 ; N uni1F60 ; G 1659 +U 8033 ; WX 602 ; N uni1F61 ; G 1660 +U 8034 ; WX 602 ; N uni1F62 ; G 1661 +U 8035 ; WX 602 ; N uni1F63 ; G 1662 +U 8036 ; WX 602 ; N uni1F64 ; G 1663 +U 8037 ; WX 602 ; N uni1F65 ; G 1664 +U 8038 ; WX 602 ; N uni1F66 ; G 1665 +U 8039 ; WX 602 ; N uni1F67 ; G 1666 +U 8040 ; WX 602 ; N uni1F68 ; G 1667 +U 8041 ; WX 602 ; N uni1F69 ; G 1668 +U 8042 ; WX 602 ; N uni1F6A ; G 1669 +U 8043 ; WX 602 ; N uni1F6B ; G 1670 +U 8044 ; WX 602 ; N uni1F6C ; G 1671 +U 8045 ; WX 602 ; N uni1F6D ; G 1672 +U 8046 ; WX 602 ; N uni1F6E ; G 1673 +U 8047 ; WX 602 ; N uni1F6F ; G 1674 +U 8048 ; WX 602 ; N uni1F70 ; G 1675 +U 8049 ; WX 602 ; N uni1F71 ; G 1676 +U 8050 ; WX 602 ; N uni1F72 ; G 1677 +U 8051 ; WX 602 ; N uni1F73 ; G 1678 +U 8052 ; WX 602 ; N uni1F74 ; G 1679 +U 8053 ; WX 602 ; N uni1F75 ; G 1680 +U 8054 ; WX 602 ; N uni1F76 ; G 1681 +U 8055 ; WX 602 ; N uni1F77 ; G 1682 +U 8056 ; WX 602 ; N uni1F78 ; G 1683 +U 8057 ; WX 602 ; N uni1F79 ; G 1684 +U 8058 ; WX 602 ; N uni1F7A ; G 1685 +U 8059 ; WX 602 ; N uni1F7B ; G 1686 +U 8060 ; WX 602 ; N uni1F7C ; G 1687 +U 8061 ; WX 602 ; N uni1F7D ; G 1688 +U 8064 ; WX 602 ; N uni1F80 ; G 1689 +U 8065 ; WX 602 ; N uni1F81 ; G 1690 +U 8066 ; WX 602 ; N uni1F82 ; G 1691 +U 8067 ; WX 602 ; N uni1F83 ; G 1692 +U 8068 ; WX 602 ; N uni1F84 ; G 1693 +U 8069 ; WX 602 ; N uni1F85 ; G 1694 +U 8070 ; WX 602 ; N uni1F86 ; G 1695 +U 8071 ; WX 602 ; N uni1F87 ; G 1696 +U 8072 ; WX 602 ; N uni1F88 ; G 1697 +U 8073 ; WX 602 ; N uni1F89 ; G 1698 +U 8074 ; WX 602 ; N uni1F8A ; G 1699 +U 8075 ; WX 602 ; N uni1F8B ; G 1700 +U 8076 ; WX 602 ; N uni1F8C ; G 1701 +U 8077 ; WX 602 ; N uni1F8D ; G 1702 +U 8078 ; WX 602 ; N uni1F8E ; G 1703 +U 8079 ; WX 602 ; N uni1F8F ; G 1704 +U 8080 ; WX 602 ; N uni1F90 ; G 1705 +U 8081 ; WX 602 ; N uni1F91 ; G 1706 +U 8082 ; WX 602 ; N uni1F92 ; G 1707 +U 8083 ; WX 602 ; N uni1F93 ; G 1708 +U 8084 ; WX 602 ; N uni1F94 ; G 1709 +U 8085 ; WX 602 ; N uni1F95 ; G 1710 +U 8086 ; WX 602 ; N uni1F96 ; G 1711 +U 8087 ; WX 602 ; N uni1F97 ; G 1712 +U 8088 ; WX 602 ; N uni1F98 ; G 1713 +U 8089 ; WX 602 ; N uni1F99 ; G 1714 +U 8090 ; WX 602 ; N uni1F9A ; G 1715 +U 8091 ; WX 602 ; N uni1F9B ; G 1716 +U 8092 ; WX 602 ; N uni1F9C ; G 1717 +U 8093 ; WX 602 ; N uni1F9D ; G 1718 +U 8094 ; WX 602 ; N uni1F9E ; G 1719 +U 8095 ; WX 602 ; N uni1F9F ; G 1720 +U 8096 ; WX 602 ; N uni1FA0 ; G 1721 +U 8097 ; WX 602 ; N uni1FA1 ; G 1722 +U 8098 ; WX 602 ; N uni1FA2 ; G 1723 +U 8099 ; WX 602 ; N uni1FA3 ; G 1724 +U 8100 ; WX 602 ; N uni1FA4 ; G 1725 +U 8101 ; WX 602 ; N uni1FA5 ; G 1726 +U 8102 ; WX 602 ; N uni1FA6 ; G 1727 +U 8103 ; WX 602 ; N uni1FA7 ; G 1728 +U 8104 ; WX 602 ; N uni1FA8 ; G 1729 +U 8105 ; WX 602 ; N uni1FA9 ; G 1730 +U 8106 ; WX 602 ; N uni1FAA ; G 1731 +U 8107 ; WX 602 ; N uni1FAB ; G 1732 +U 8108 ; WX 602 ; N uni1FAC ; G 1733 +U 8109 ; WX 602 ; N uni1FAD ; G 1734 +U 8110 ; WX 602 ; N uni1FAE ; G 1735 +U 8111 ; WX 602 ; N uni1FAF ; G 1736 +U 8112 ; WX 602 ; N uni1FB0 ; G 1737 +U 8113 ; WX 602 ; N uni1FB1 ; G 1738 +U 8114 ; WX 602 ; N uni1FB2 ; G 1739 +U 8115 ; WX 602 ; N uni1FB3 ; G 1740 +U 8116 ; WX 602 ; N uni1FB4 ; G 1741 +U 8118 ; WX 602 ; N uni1FB6 ; G 1742 +U 8119 ; WX 602 ; N uni1FB7 ; G 1743 +U 8120 ; WX 602 ; N uni1FB8 ; G 1744 +U 8121 ; WX 602 ; N uni1FB9 ; G 1745 +U 8122 ; WX 602 ; N uni1FBA ; G 1746 +U 8123 ; WX 602 ; N uni1FBB ; G 1747 +U 8124 ; WX 602 ; N uni1FBC ; G 1748 +U 8125 ; WX 602 ; N uni1FBD ; G 1749 +U 8126 ; WX 602 ; N uni1FBE ; G 1750 +U 8127 ; WX 602 ; N uni1FBF ; G 1751 +U 8128 ; WX 602 ; N uni1FC0 ; G 1752 +U 8129 ; WX 602 ; N uni1FC1 ; G 1753 +U 8130 ; WX 602 ; N uni1FC2 ; G 1754 +U 8131 ; WX 602 ; N uni1FC3 ; G 1755 +U 8132 ; WX 602 ; N uni1FC4 ; G 1756 +U 8134 ; WX 602 ; N uni1FC6 ; G 1757 +U 8135 ; WX 602 ; N uni1FC7 ; G 1758 +U 8136 ; WX 602 ; N uni1FC8 ; G 1759 +U 8137 ; WX 602 ; N uni1FC9 ; G 1760 +U 8138 ; WX 602 ; N uni1FCA ; G 1761 +U 8139 ; WX 602 ; N uni1FCB ; G 1762 +U 8140 ; WX 602 ; N uni1FCC ; G 1763 +U 8141 ; WX 602 ; N uni1FCD ; G 1764 +U 8142 ; WX 602 ; N uni1FCE ; G 1765 +U 8143 ; WX 602 ; N uni1FCF ; G 1766 +U 8144 ; WX 602 ; N uni1FD0 ; G 1767 +U 8145 ; WX 602 ; N uni1FD1 ; G 1768 +U 8146 ; WX 602 ; N uni1FD2 ; G 1769 +U 8147 ; WX 602 ; N uni1FD3 ; G 1770 +U 8150 ; WX 602 ; N uni1FD6 ; G 1771 +U 8151 ; WX 602 ; N uni1FD7 ; G 1772 +U 8152 ; WX 602 ; N uni1FD8 ; G 1773 +U 8153 ; WX 602 ; N uni1FD9 ; G 1774 +U 8154 ; WX 602 ; N uni1FDA ; G 1775 +U 8155 ; WX 602 ; N uni1FDB ; G 1776 +U 8157 ; WX 602 ; N uni1FDD ; G 1777 +U 8158 ; WX 602 ; N uni1FDE ; G 1778 +U 8159 ; WX 602 ; N uni1FDF ; G 1779 +U 8160 ; WX 602 ; N uni1FE0 ; G 1780 +U 8161 ; WX 602 ; N uni1FE1 ; G 1781 +U 8162 ; WX 602 ; N uni1FE2 ; G 1782 +U 8163 ; WX 602 ; N uni1FE3 ; G 1783 +U 8164 ; WX 602 ; N uni1FE4 ; G 1784 +U 8165 ; WX 602 ; N uni1FE5 ; G 1785 +U 8166 ; WX 602 ; N uni1FE6 ; G 1786 +U 8167 ; WX 602 ; N uni1FE7 ; G 1787 +U 8168 ; WX 602 ; N uni1FE8 ; G 1788 +U 8169 ; WX 602 ; N uni1FE9 ; G 1789 +U 8170 ; WX 602 ; N uni1FEA ; G 1790 +U 8171 ; WX 602 ; N uni1FEB ; G 1791 +U 8172 ; WX 602 ; N uni1FEC ; G 1792 +U 8173 ; WX 602 ; N uni1FED ; G 1793 +U 8174 ; WX 602 ; N uni1FEE ; G 1794 +U 8175 ; WX 602 ; N uni1FEF ; G 1795 +U 8178 ; WX 602 ; N uni1FF2 ; G 1796 +U 8179 ; WX 602 ; N uni1FF3 ; G 1797 +U 8180 ; WX 602 ; N uni1FF4 ; G 1798 +U 8182 ; WX 602 ; N uni1FF6 ; G 1799 +U 8183 ; WX 602 ; N uni1FF7 ; G 1800 +U 8184 ; WX 602 ; N uni1FF8 ; G 1801 +U 8185 ; WX 602 ; N uni1FF9 ; G 1802 +U 8186 ; WX 602 ; N uni1FFA ; G 1803 +U 8187 ; WX 602 ; N uni1FFB ; G 1804 +U 8188 ; WX 602 ; N uni1FFC ; G 1805 +U 8189 ; WX 602 ; N uni1FFD ; G 1806 +U 8190 ; WX 602 ; N uni1FFE ; G 1807 +U 8192 ; WX 602 ; N uni2000 ; G 1808 +U 8193 ; WX 602 ; N uni2001 ; G 1809 +U 8194 ; WX 602 ; N uni2002 ; G 1810 +U 8195 ; WX 602 ; N uni2003 ; G 1811 +U 8196 ; WX 602 ; N uni2004 ; G 1812 +U 8197 ; WX 602 ; N uni2005 ; G 1813 +U 8198 ; WX 602 ; N uni2006 ; G 1814 +U 8199 ; WX 602 ; N uni2007 ; G 1815 +U 8200 ; WX 602 ; N uni2008 ; G 1816 +U 8201 ; WX 602 ; N uni2009 ; G 1817 +U 8202 ; WX 602 ; N uni200A ; G 1818 +U 8208 ; WX 602 ; N uni2010 ; G 1819 +U 8209 ; WX 602 ; N uni2011 ; G 1820 +U 8210 ; WX 602 ; N figuredash ; G 1821 +U 8211 ; WX 602 ; N endash ; G 1822 +U 8212 ; WX 602 ; N emdash ; G 1823 +U 8213 ; WX 602 ; N uni2015 ; G 1824 +U 8214 ; WX 602 ; N uni2016 ; G 1825 +U 8215 ; WX 602 ; N underscoredbl ; G 1826 +U 8216 ; WX 602 ; N quoteleft ; G 1827 +U 8217 ; WX 602 ; N quoteright ; G 1828 +U 8218 ; WX 602 ; N quotesinglbase ; G 1829 +U 8219 ; WX 602 ; N quotereversed ; G 1830 +U 8220 ; WX 602 ; N quotedblleft ; G 1831 +U 8221 ; WX 602 ; N quotedblright ; G 1832 +U 8222 ; WX 602 ; N quotedblbase ; G 1833 +U 8223 ; WX 602 ; N uni201F ; G 1834 +U 8224 ; WX 602 ; N dagger ; G 1835 +U 8225 ; WX 602 ; N daggerdbl ; G 1836 +U 8226 ; WX 602 ; N bullet ; G 1837 +U 8227 ; WX 602 ; N uni2023 ; G 1838 +U 8230 ; WX 602 ; N ellipsis ; G 1839 +U 8239 ; WX 602 ; N uni202F ; G 1840 +U 8240 ; WX 602 ; N perthousand ; G 1841 +U 8241 ; WX 602 ; N uni2031 ; G 1842 +U 8242 ; WX 602 ; N minute ; G 1843 +U 8243 ; WX 602 ; N second ; G 1844 +U 8244 ; WX 602 ; N uni2034 ; G 1845 +U 8245 ; WX 602 ; N uni2035 ; G 1846 +U 8246 ; WX 602 ; N uni2036 ; G 1847 +U 8247 ; WX 602 ; N uni2037 ; G 1848 +U 8249 ; WX 602 ; N guilsinglleft ; G 1849 +U 8250 ; WX 602 ; N guilsinglright ; G 1850 +U 8252 ; WX 602 ; N exclamdbl ; G 1851 +U 8253 ; WX 602 ; N uni203D ; G 1852 +U 8254 ; WX 602 ; N uni203E ; G 1853 +U 8255 ; WX 602 ; N uni203F ; G 1854 +U 8261 ; WX 602 ; N uni2045 ; G 1855 +U 8262 ; WX 602 ; N uni2046 ; G 1856 +U 8263 ; WX 602 ; N uni2047 ; G 1857 +U 8264 ; WX 602 ; N uni2048 ; G 1858 +U 8265 ; WX 602 ; N uni2049 ; G 1859 +U 8267 ; WX 602 ; N uni204B ; G 1860 +U 8287 ; WX 602 ; N uni205F ; G 1861 +U 8304 ; WX 602 ; N uni2070 ; G 1862 +U 8305 ; WX 602 ; N uni2071 ; G 1863 +U 8308 ; WX 602 ; N uni2074 ; G 1864 +U 8309 ; WX 602 ; N uni2075 ; G 1865 +U 8310 ; WX 602 ; N uni2076 ; G 1866 +U 8311 ; WX 602 ; N uni2077 ; G 1867 +U 8312 ; WX 602 ; N uni2078 ; G 1868 +U 8313 ; WX 602 ; N uni2079 ; G 1869 +U 8314 ; WX 602 ; N uni207A ; G 1870 +U 8315 ; WX 602 ; N uni207B ; G 1871 +U 8316 ; WX 602 ; N uni207C ; G 1872 +U 8317 ; WX 602 ; N uni207D ; G 1873 +U 8318 ; WX 602 ; N uni207E ; G 1874 +U 8319 ; WX 602 ; N uni207F ; G 1875 +U 8320 ; WX 602 ; N uni2080 ; G 1876 +U 8321 ; WX 602 ; N uni2081 ; G 1877 +U 8322 ; WX 602 ; N uni2082 ; G 1878 +U 8323 ; WX 602 ; N uni2083 ; G 1879 +U 8324 ; WX 602 ; N uni2084 ; G 1880 +U 8325 ; WX 602 ; N uni2085 ; G 1881 +U 8326 ; WX 602 ; N uni2086 ; G 1882 +U 8327 ; WX 602 ; N uni2087 ; G 1883 +U 8328 ; WX 602 ; N uni2088 ; G 1884 +U 8329 ; WX 602 ; N uni2089 ; G 1885 +U 8330 ; WX 602 ; N uni208A ; G 1886 +U 8331 ; WX 602 ; N uni208B ; G 1887 +U 8332 ; WX 602 ; N uni208C ; G 1888 +U 8333 ; WX 602 ; N uni208D ; G 1889 +U 8334 ; WX 602 ; N uni208E ; G 1890 +U 8336 ; WX 602 ; N uni2090 ; G 1891 +U 8337 ; WX 602 ; N uni2091 ; G 1892 +U 8338 ; WX 602 ; N uni2092 ; G 1893 +U 8339 ; WX 602 ; N uni2093 ; G 1894 +U 8340 ; WX 602 ; N uni2094 ; G 1895 +U 8341 ; WX 602 ; N uni2095 ; G 1896 +U 8342 ; WX 602 ; N uni2096 ; G 1897 +U 8343 ; WX 602 ; N uni2097 ; G 1898 +U 8344 ; WX 602 ; N uni2098 ; G 1899 +U 8345 ; WX 602 ; N uni2099 ; G 1900 +U 8346 ; WX 602 ; N uni209A ; G 1901 +U 8347 ; WX 602 ; N uni209B ; G 1902 +U 8348 ; WX 602 ; N uni209C ; G 1903 +U 8352 ; WX 602 ; N uni20A0 ; G 1904 +U 8353 ; WX 602 ; N colonmonetary ; G 1905 +U 8354 ; WX 602 ; N uni20A2 ; G 1906 +U 8355 ; WX 602 ; N franc ; G 1907 +U 8356 ; WX 602 ; N lira ; G 1908 +U 8357 ; WX 602 ; N uni20A5 ; G 1909 +U 8358 ; WX 602 ; N uni20A6 ; G 1910 +U 8359 ; WX 602 ; N peseta ; G 1911 +U 8360 ; WX 602 ; N uni20A8 ; G 1912 +U 8361 ; WX 602 ; N uni20A9 ; G 1913 +U 8362 ; WX 602 ; N uni20AA ; G 1914 +U 8363 ; WX 602 ; N dong ; G 1915 +U 8364 ; WX 602 ; N Euro ; G 1916 +U 8365 ; WX 602 ; N uni20AD ; G 1917 +U 8366 ; WX 602 ; N uni20AE ; G 1918 +U 8367 ; WX 602 ; N uni20AF ; G 1919 +U 8368 ; WX 602 ; N uni20B0 ; G 1920 +U 8369 ; WX 602 ; N uni20B1 ; G 1921 +U 8370 ; WX 602 ; N uni20B2 ; G 1922 +U 8371 ; WX 602 ; N uni20B3 ; G 1923 +U 8372 ; WX 602 ; N uni20B4 ; G 1924 +U 8373 ; WX 602 ; N uni20B5 ; G 1925 +U 8376 ; WX 602 ; N uni20B8 ; G 1926 +U 8377 ; WX 602 ; N uni20B9 ; G 1927 +U 8378 ; WX 602 ; N uni20BA ; G 1928 +U 8381 ; WX 602 ; N uni20BD ; G 1929 +U 8450 ; WX 602 ; N uni2102 ; G 1930 +U 8453 ; WX 602 ; N uni2105 ; G 1931 +U 8461 ; WX 602 ; N uni210D ; G 1932 +U 8462 ; WX 602 ; N uni210E ; G 1933 +U 8463 ; WX 602 ; N uni210F ; G 1934 +U 8469 ; WX 602 ; N uni2115 ; G 1935 +U 8470 ; WX 602 ; N uni2116 ; G 1936 +U 8471 ; WX 602 ; N uni2117 ; G 1937 +U 8473 ; WX 602 ; N uni2119 ; G 1938 +U 8474 ; WX 602 ; N uni211A ; G 1939 +U 8477 ; WX 602 ; N uni211D ; G 1940 +U 8482 ; WX 602 ; N trademark ; G 1941 +U 8484 ; WX 602 ; N uni2124 ; G 1942 +U 8486 ; WX 602 ; N uni2126 ; G 1943 +U 8490 ; WX 602 ; N uni212A ; G 1944 +U 8491 ; WX 602 ; N uni212B ; G 1945 +U 8494 ; WX 602 ; N estimated ; G 1946 +U 8520 ; WX 602 ; N uni2148 ; G 1947 +U 8528 ; WX 602 ; N uni2150 ; G 1948 +U 8529 ; WX 602 ; N uni2151 ; G 1949 +U 8531 ; WX 602 ; N onethird ; G 1950 +U 8532 ; WX 602 ; N twothirds ; G 1951 +U 8533 ; WX 602 ; N uni2155 ; G 1952 +U 8534 ; WX 602 ; N uni2156 ; G 1953 +U 8535 ; WX 602 ; N uni2157 ; G 1954 +U 8536 ; WX 602 ; N uni2158 ; G 1955 +U 8537 ; WX 602 ; N uni2159 ; G 1956 +U 8538 ; WX 602 ; N uni215A ; G 1957 +U 8539 ; WX 602 ; N oneeighth ; G 1958 +U 8540 ; WX 602 ; N threeeighths ; G 1959 +U 8541 ; WX 602 ; N fiveeighths ; G 1960 +U 8542 ; WX 602 ; N seveneighths ; G 1961 +U 8543 ; WX 602 ; N uni215F ; G 1962 +U 8585 ; WX 602 ; N uni2189 ; G 1963 +U 8592 ; WX 602 ; N arrowleft ; G 1964 +U 8593 ; WX 602 ; N arrowup ; G 1965 +U 8594 ; WX 602 ; N arrowright ; G 1966 +U 8595 ; WX 602 ; N arrowdown ; G 1967 +U 8596 ; WX 602 ; N arrowboth ; G 1968 +U 8597 ; WX 602 ; N arrowupdn ; G 1969 +U 8598 ; WX 602 ; N uni2196 ; G 1970 +U 8599 ; WX 602 ; N uni2197 ; G 1971 +U 8600 ; WX 602 ; N uni2198 ; G 1972 +U 8601 ; WX 602 ; N uni2199 ; G 1973 +U 8602 ; WX 602 ; N uni219A ; G 1974 +U 8603 ; WX 602 ; N uni219B ; G 1975 +U 8604 ; WX 602 ; N uni219C ; G 1976 +U 8605 ; WX 602 ; N uni219D ; G 1977 +U 8606 ; WX 602 ; N uni219E ; G 1978 +U 8607 ; WX 602 ; N uni219F ; G 1979 +U 8608 ; WX 602 ; N uni21A0 ; G 1980 +U 8609 ; WX 602 ; N uni21A1 ; G 1981 +U 8610 ; WX 602 ; N uni21A2 ; G 1982 +U 8611 ; WX 602 ; N uni21A3 ; G 1983 +U 8612 ; WX 602 ; N uni21A4 ; G 1984 +U 8613 ; WX 602 ; N uni21A5 ; G 1985 +U 8614 ; WX 602 ; N uni21A6 ; G 1986 +U 8615 ; WX 602 ; N uni21A7 ; G 1987 +U 8616 ; WX 602 ; N arrowupdnbse ; G 1988 +U 8617 ; WX 602 ; N uni21A9 ; G 1989 +U 8618 ; WX 602 ; N uni21AA ; G 1990 +U 8619 ; WX 602 ; N uni21AB ; G 1991 +U 8620 ; WX 602 ; N uni21AC ; G 1992 +U 8621 ; WX 602 ; N uni21AD ; G 1993 +U 8622 ; WX 602 ; N uni21AE ; G 1994 +U 8623 ; WX 602 ; N uni21AF ; G 1995 +U 8624 ; WX 602 ; N uni21B0 ; G 1996 +U 8625 ; WX 602 ; N uni21B1 ; G 1997 +U 8626 ; WX 602 ; N uni21B2 ; G 1998 +U 8627 ; WX 602 ; N uni21B3 ; G 1999 +U 8628 ; WX 602 ; N uni21B4 ; G 2000 +U 8629 ; WX 602 ; N carriagereturn ; G 2001 +U 8630 ; WX 602 ; N uni21B6 ; G 2002 +U 8631 ; WX 602 ; N uni21B7 ; G 2003 +U 8632 ; WX 602 ; N uni21B8 ; G 2004 +U 8633 ; WX 602 ; N uni21B9 ; G 2005 +U 8634 ; WX 602 ; N uni21BA ; G 2006 +U 8635 ; WX 602 ; N uni21BB ; G 2007 +U 8636 ; WX 602 ; N uni21BC ; G 2008 +U 8637 ; WX 602 ; N uni21BD ; G 2009 +U 8638 ; WX 602 ; N uni21BE ; G 2010 +U 8639 ; WX 602 ; N uni21BF ; G 2011 +U 8640 ; WX 602 ; N uni21C0 ; G 2012 +U 8641 ; WX 602 ; N uni21C1 ; G 2013 +U 8642 ; WX 602 ; N uni21C2 ; G 2014 +U 8643 ; WX 602 ; N uni21C3 ; G 2015 +U 8644 ; WX 602 ; N uni21C4 ; G 2016 +U 8645 ; WX 602 ; N uni21C5 ; G 2017 +U 8646 ; WX 602 ; N uni21C6 ; G 2018 +U 8647 ; WX 602 ; N uni21C7 ; G 2019 +U 8648 ; WX 602 ; N uni21C8 ; G 2020 +U 8649 ; WX 602 ; N uni21C9 ; G 2021 +U 8650 ; WX 602 ; N uni21CA ; G 2022 +U 8651 ; WX 602 ; N uni21CB ; G 2023 +U 8652 ; WX 602 ; N uni21CC ; G 2024 +U 8653 ; WX 602 ; N uni21CD ; G 2025 +U 8654 ; WX 602 ; N uni21CE ; G 2026 +U 8655 ; WX 602 ; N uni21CF ; G 2027 +U 8656 ; WX 602 ; N arrowdblleft ; G 2028 +U 8657 ; WX 602 ; N arrowdblup ; G 2029 +U 8658 ; WX 602 ; N arrowdblright ; G 2030 +U 8659 ; WX 602 ; N arrowdbldown ; G 2031 +U 8660 ; WX 602 ; N arrowdblboth ; G 2032 +U 8661 ; WX 602 ; N uni21D5 ; G 2033 +U 8662 ; WX 602 ; N uni21D6 ; G 2034 +U 8663 ; WX 602 ; N uni21D7 ; G 2035 +U 8664 ; WX 602 ; N uni21D8 ; G 2036 +U 8665 ; WX 602 ; N uni21D9 ; G 2037 +U 8666 ; WX 602 ; N uni21DA ; G 2038 +U 8667 ; WX 602 ; N uni21DB ; G 2039 +U 8668 ; WX 602 ; N uni21DC ; G 2040 +U 8669 ; WX 602 ; N uni21DD ; G 2041 +U 8670 ; WX 602 ; N uni21DE ; G 2042 +U 8671 ; WX 602 ; N uni21DF ; G 2043 +U 8672 ; WX 602 ; N uni21E0 ; G 2044 +U 8673 ; WX 602 ; N uni21E1 ; G 2045 +U 8674 ; WX 602 ; N uni21E2 ; G 2046 +U 8675 ; WX 602 ; N uni21E3 ; G 2047 +U 8676 ; WX 602 ; N uni21E4 ; G 2048 +U 8677 ; WX 602 ; N uni21E5 ; G 2049 +U 8678 ; WX 602 ; N uni21E6 ; G 2050 +U 8679 ; WX 602 ; N uni21E7 ; G 2051 +U 8680 ; WX 602 ; N uni21E8 ; G 2052 +U 8681 ; WX 602 ; N uni21E9 ; G 2053 +U 8682 ; WX 602 ; N uni21EA ; G 2054 +U 8683 ; WX 602 ; N uni21EB ; G 2055 +U 8684 ; WX 602 ; N uni21EC ; G 2056 +U 8685 ; WX 602 ; N uni21ED ; G 2057 +U 8686 ; WX 602 ; N uni21EE ; G 2058 +U 8687 ; WX 602 ; N uni21EF ; G 2059 +U 8688 ; WX 602 ; N uni21F0 ; G 2060 +U 8689 ; WX 602 ; N uni21F1 ; G 2061 +U 8690 ; WX 602 ; N uni21F2 ; G 2062 +U 8691 ; WX 602 ; N uni21F3 ; G 2063 +U 8692 ; WX 602 ; N uni21F4 ; G 2064 +U 8693 ; WX 602 ; N uni21F5 ; G 2065 +U 8694 ; WX 602 ; N uni21F6 ; G 2066 +U 8695 ; WX 602 ; N uni21F7 ; G 2067 +U 8696 ; WX 602 ; N uni21F8 ; G 2068 +U 8697 ; WX 602 ; N uni21F9 ; G 2069 +U 8698 ; WX 602 ; N uni21FA ; G 2070 +U 8699 ; WX 602 ; N uni21FB ; G 2071 +U 8700 ; WX 602 ; N uni21FC ; G 2072 +U 8701 ; WX 602 ; N uni21FD ; G 2073 +U 8702 ; WX 602 ; N uni21FE ; G 2074 +U 8703 ; WX 602 ; N uni21FF ; G 2075 +U 8704 ; WX 602 ; N universal ; G 2076 +U 8705 ; WX 602 ; N uni2201 ; G 2077 +U 8706 ; WX 602 ; N partialdiff ; G 2078 +U 8707 ; WX 602 ; N existential ; G 2079 +U 8708 ; WX 602 ; N uni2204 ; G 2080 +U 8709 ; WX 602 ; N emptyset ; G 2081 +U 8710 ; WX 602 ; N increment ; G 2082 +U 8711 ; WX 602 ; N gradient ; G 2083 +U 8712 ; WX 602 ; N element ; G 2084 +U 8713 ; WX 602 ; N notelement ; G 2085 +U 8714 ; WX 602 ; N uni220A ; G 2086 +U 8715 ; WX 602 ; N suchthat ; G 2087 +U 8716 ; WX 602 ; N uni220C ; G 2088 +U 8717 ; WX 602 ; N uni220D ; G 2089 +U 8718 ; WX 602 ; N uni220E ; G 2090 +U 8719 ; WX 602 ; N product ; G 2091 +U 8720 ; WX 602 ; N uni2210 ; G 2092 +U 8721 ; WX 602 ; N summation ; G 2093 +U 8722 ; WX 602 ; N minus ; G 2094 +U 8723 ; WX 602 ; N uni2213 ; G 2095 +U 8725 ; WX 602 ; N uni2215 ; G 2096 +U 8727 ; WX 602 ; N asteriskmath ; G 2097 +U 8728 ; WX 602 ; N uni2218 ; G 2098 +U 8729 ; WX 602 ; N uni2219 ; G 2099 +U 8730 ; WX 602 ; N radical ; G 2100 +U 8731 ; WX 602 ; N uni221B ; G 2101 +U 8732 ; WX 602 ; N uni221C ; G 2102 +U 8733 ; WX 602 ; N proportional ; G 2103 +U 8734 ; WX 602 ; N infinity ; G 2104 +U 8735 ; WX 602 ; N orthogonal ; G 2105 +U 8736 ; WX 602 ; N angle ; G 2106 +U 8739 ; WX 602 ; N uni2223 ; G 2107 +U 8743 ; WX 602 ; N logicaland ; G 2108 +U 8744 ; WX 602 ; N logicalor ; G 2109 +U 8745 ; WX 602 ; N intersection ; G 2110 +U 8746 ; WX 602 ; N union ; G 2111 +U 8747 ; WX 602 ; N integral ; G 2112 +U 8748 ; WX 602 ; N uni222C ; G 2113 +U 8749 ; WX 602 ; N uni222D ; G 2114 +U 8756 ; WX 602 ; N therefore ; G 2115 +U 8757 ; WX 602 ; N uni2235 ; G 2116 +U 8758 ; WX 602 ; N uni2236 ; G 2117 +U 8759 ; WX 602 ; N uni2237 ; G 2118 +U 8760 ; WX 602 ; N uni2238 ; G 2119 +U 8761 ; WX 602 ; N uni2239 ; G 2120 +U 8762 ; WX 602 ; N uni223A ; G 2121 +U 8763 ; WX 602 ; N uni223B ; G 2122 +U 8764 ; WX 602 ; N similar ; G 2123 +U 8765 ; WX 602 ; N uni223D ; G 2124 +U 8769 ; WX 602 ; N uni2241 ; G 2125 +U 8770 ; WX 602 ; N uni2242 ; G 2126 +U 8771 ; WX 602 ; N uni2243 ; G 2127 +U 8772 ; WX 602 ; N uni2244 ; G 2128 +U 8773 ; WX 602 ; N congruent ; G 2129 +U 8774 ; WX 602 ; N uni2246 ; G 2130 +U 8775 ; WX 602 ; N uni2247 ; G 2131 +U 8776 ; WX 602 ; N approxequal ; G 2132 +U 8777 ; WX 602 ; N uni2249 ; G 2133 +U 8778 ; WX 602 ; N uni224A ; G 2134 +U 8779 ; WX 602 ; N uni224B ; G 2135 +U 8780 ; WX 602 ; N uni224C ; G 2136 +U 8781 ; WX 602 ; N uni224D ; G 2137 +U 8782 ; WX 602 ; N uni224E ; G 2138 +U 8783 ; WX 602 ; N uni224F ; G 2139 +U 8784 ; WX 602 ; N uni2250 ; G 2140 +U 8785 ; WX 602 ; N uni2251 ; G 2141 +U 8786 ; WX 602 ; N uni2252 ; G 2142 +U 8787 ; WX 602 ; N uni2253 ; G 2143 +U 8788 ; WX 602 ; N uni2254 ; G 2144 +U 8789 ; WX 602 ; N uni2255 ; G 2145 +U 8790 ; WX 602 ; N uni2256 ; G 2146 +U 8791 ; WX 602 ; N uni2257 ; G 2147 +U 8792 ; WX 602 ; N uni2258 ; G 2148 +U 8793 ; WX 602 ; N uni2259 ; G 2149 +U 8794 ; WX 602 ; N uni225A ; G 2150 +U 8795 ; WX 602 ; N uni225B ; G 2151 +U 8796 ; WX 602 ; N uni225C ; G 2152 +U 8797 ; WX 602 ; N uni225D ; G 2153 +U 8798 ; WX 602 ; N uni225E ; G 2154 +U 8799 ; WX 602 ; N uni225F ; G 2155 +U 8800 ; WX 602 ; N notequal ; G 2156 +U 8801 ; WX 602 ; N equivalence ; G 2157 +U 8802 ; WX 602 ; N uni2262 ; G 2158 +U 8803 ; WX 602 ; N uni2263 ; G 2159 +U 8804 ; WX 602 ; N lessequal ; G 2160 +U 8805 ; WX 602 ; N greaterequal ; G 2161 +U 8806 ; WX 602 ; N uni2266 ; G 2162 +U 8807 ; WX 602 ; N uni2267 ; G 2163 +U 8808 ; WX 602 ; N uni2268 ; G 2164 +U 8809 ; WX 602 ; N uni2269 ; G 2165 +U 8813 ; WX 602 ; N uni226D ; G 2166 +U 8814 ; WX 602 ; N uni226E ; G 2167 +U 8815 ; WX 602 ; N uni226F ; G 2168 +U 8816 ; WX 602 ; N uni2270 ; G 2169 +U 8817 ; WX 602 ; N uni2271 ; G 2170 +U 8818 ; WX 602 ; N uni2272 ; G 2171 +U 8819 ; WX 602 ; N uni2273 ; G 2172 +U 8820 ; WX 602 ; N uni2274 ; G 2173 +U 8821 ; WX 602 ; N uni2275 ; G 2174 +U 8822 ; WX 602 ; N uni2276 ; G 2175 +U 8823 ; WX 602 ; N uni2277 ; G 2176 +U 8824 ; WX 602 ; N uni2278 ; G 2177 +U 8825 ; WX 602 ; N uni2279 ; G 2178 +U 8826 ; WX 602 ; N uni227A ; G 2179 +U 8827 ; WX 602 ; N uni227B ; G 2180 +U 8828 ; WX 602 ; N uni227C ; G 2181 +U 8829 ; WX 602 ; N uni227D ; G 2182 +U 8830 ; WX 602 ; N uni227E ; G 2183 +U 8831 ; WX 602 ; N uni227F ; G 2184 +U 8832 ; WX 602 ; N uni2280 ; G 2185 +U 8833 ; WX 602 ; N uni2281 ; G 2186 +U 8834 ; WX 602 ; N propersubset ; G 2187 +U 8835 ; WX 602 ; N propersuperset ; G 2188 +U 8836 ; WX 602 ; N notsubset ; G 2189 +U 8837 ; WX 602 ; N uni2285 ; G 2190 +U 8838 ; WX 602 ; N reflexsubset ; G 2191 +U 8839 ; WX 602 ; N reflexsuperset ; G 2192 +U 8840 ; WX 602 ; N uni2288 ; G 2193 +U 8841 ; WX 602 ; N uni2289 ; G 2194 +U 8842 ; WX 602 ; N uni228A ; G 2195 +U 8843 ; WX 602 ; N uni228B ; G 2196 +U 8845 ; WX 602 ; N uni228D ; G 2197 +U 8846 ; WX 602 ; N uni228E ; G 2198 +U 8847 ; WX 602 ; N uni228F ; G 2199 +U 8848 ; WX 602 ; N uni2290 ; G 2200 +U 8849 ; WX 602 ; N uni2291 ; G 2201 +U 8850 ; WX 602 ; N uni2292 ; G 2202 +U 8851 ; WX 602 ; N uni2293 ; G 2203 +U 8852 ; WX 602 ; N uni2294 ; G 2204 +U 8853 ; WX 602 ; N circleplus ; G 2205 +U 8854 ; WX 602 ; N uni2296 ; G 2206 +U 8855 ; WX 602 ; N circlemultiply ; G 2207 +U 8856 ; WX 602 ; N uni2298 ; G 2208 +U 8857 ; WX 602 ; N uni2299 ; G 2209 +U 8858 ; WX 602 ; N uni229A ; G 2210 +U 8859 ; WX 602 ; N uni229B ; G 2211 +U 8860 ; WX 602 ; N uni229C ; G 2212 +U 8861 ; WX 602 ; N uni229D ; G 2213 +U 8862 ; WX 602 ; N uni229E ; G 2214 +U 8863 ; WX 602 ; N uni229F ; G 2215 +U 8864 ; WX 602 ; N uni22A0 ; G 2216 +U 8865 ; WX 602 ; N uni22A1 ; G 2217 +U 8866 ; WX 602 ; N uni22A2 ; G 2218 +U 8867 ; WX 602 ; N uni22A3 ; G 2219 +U 8868 ; WX 602 ; N uni22A4 ; G 2220 +U 8869 ; WX 602 ; N perpendicular ; G 2221 +U 8882 ; WX 602 ; N uni22B2 ; G 2222 +U 8883 ; WX 602 ; N uni22B3 ; G 2223 +U 8884 ; WX 602 ; N uni22B4 ; G 2224 +U 8885 ; WX 602 ; N uni22B5 ; G 2225 +U 8888 ; WX 602 ; N uni22B8 ; G 2226 +U 8898 ; WX 602 ; N uni22C2 ; G 2227 +U 8899 ; WX 602 ; N uni22C3 ; G 2228 +U 8900 ; WX 602 ; N uni22C4 ; G 2229 +U 8901 ; WX 602 ; N dotmath ; G 2230 +U 8902 ; WX 602 ; N uni22C6 ; G 2231 +U 8909 ; WX 602 ; N uni22CD ; G 2232 +U 8910 ; WX 602 ; N uni22CE ; G 2233 +U 8911 ; WX 602 ; N uni22CF ; G 2234 +U 8912 ; WX 602 ; N uni22D0 ; G 2235 +U 8913 ; WX 602 ; N uni22D1 ; G 2236 +U 8922 ; WX 602 ; N uni22DA ; G 2237 +U 8923 ; WX 602 ; N uni22DB ; G 2238 +U 8924 ; WX 602 ; N uni22DC ; G 2239 +U 8925 ; WX 602 ; N uni22DD ; G 2240 +U 8926 ; WX 602 ; N uni22DE ; G 2241 +U 8927 ; WX 602 ; N uni22DF ; G 2242 +U 8928 ; WX 602 ; N uni22E0 ; G 2243 +U 8929 ; WX 602 ; N uni22E1 ; G 2244 +U 8930 ; WX 602 ; N uni22E2 ; G 2245 +U 8931 ; WX 602 ; N uni22E3 ; G 2246 +U 8932 ; WX 602 ; N uni22E4 ; G 2247 +U 8933 ; WX 602 ; N uni22E5 ; G 2248 +U 8934 ; WX 602 ; N uni22E6 ; G 2249 +U 8935 ; WX 602 ; N uni22E7 ; G 2250 +U 8936 ; WX 602 ; N uni22E8 ; G 2251 +U 8937 ; WX 602 ; N uni22E9 ; G 2252 +U 8943 ; WX 602 ; N uni22EF ; G 2253 +U 8960 ; WX 602 ; N uni2300 ; G 2254 +U 8961 ; WX 602 ; N uni2301 ; G 2255 +U 8962 ; WX 602 ; N house ; G 2256 +U 8963 ; WX 602 ; N uni2303 ; G 2257 +U 8964 ; WX 602 ; N uni2304 ; G 2258 +U 8965 ; WX 602 ; N uni2305 ; G 2259 +U 8966 ; WX 602 ; N uni2306 ; G 2260 +U 8968 ; WX 602 ; N uni2308 ; G 2261 +U 8969 ; WX 602 ; N uni2309 ; G 2262 +U 8970 ; WX 602 ; N uni230A ; G 2263 +U 8971 ; WX 602 ; N uni230B ; G 2264 +U 8972 ; WX 602 ; N uni230C ; G 2265 +U 8973 ; WX 602 ; N uni230D ; G 2266 +U 8974 ; WX 602 ; N uni230E ; G 2267 +U 8975 ; WX 602 ; N uni230F ; G 2268 +U 8976 ; WX 602 ; N revlogicalnot ; G 2269 +U 8977 ; WX 602 ; N uni2311 ; G 2270 +U 8978 ; WX 602 ; N uni2312 ; G 2271 +U 8979 ; WX 602 ; N uni2313 ; G 2272 +U 8980 ; WX 602 ; N uni2314 ; G 2273 +U 8981 ; WX 602 ; N uni2315 ; G 2274 +U 8984 ; WX 602 ; N uni2318 ; G 2275 +U 8985 ; WX 602 ; N uni2319 ; G 2276 +U 8988 ; WX 602 ; N uni231C ; G 2277 +U 8989 ; WX 602 ; N uni231D ; G 2278 +U 8990 ; WX 602 ; N uni231E ; G 2279 +U 8991 ; WX 602 ; N uni231F ; G 2280 +U 8992 ; WX 602 ; N integraltp ; G 2281 +U 8993 ; WX 602 ; N integralbt ; G 2282 +U 8997 ; WX 602 ; N uni2325 ; G 2283 +U 8998 ; WX 602 ; N uni2326 ; G 2284 +U 8999 ; WX 602 ; N uni2327 ; G 2285 +U 9000 ; WX 602 ; N uni2328 ; G 2286 +U 9003 ; WX 602 ; N uni232B ; G 2287 +U 9013 ; WX 602 ; N uni2335 ; G 2288 +U 9014 ; WX 602 ; N uni2336 ; G 2289 +U 9015 ; WX 602 ; N uni2337 ; G 2290 +U 9016 ; WX 602 ; N uni2338 ; G 2291 +U 9017 ; WX 602 ; N uni2339 ; G 2292 +U 9018 ; WX 602 ; N uni233A ; G 2293 +U 9019 ; WX 602 ; N uni233B ; G 2294 +U 9020 ; WX 602 ; N uni233C ; G 2295 +U 9021 ; WX 602 ; N uni233D ; G 2296 +U 9022 ; WX 602 ; N uni233E ; G 2297 +U 9023 ; WX 602 ; N uni233F ; G 2298 +U 9024 ; WX 602 ; N uni2340 ; G 2299 +U 9025 ; WX 602 ; N uni2341 ; G 2300 +U 9026 ; WX 602 ; N uni2342 ; G 2301 +U 9027 ; WX 602 ; N uni2343 ; G 2302 +U 9028 ; WX 602 ; N uni2344 ; G 2303 +U 9029 ; WX 602 ; N uni2345 ; G 2304 +U 9030 ; WX 602 ; N uni2346 ; G 2305 +U 9031 ; WX 602 ; N uni2347 ; G 2306 +U 9032 ; WX 602 ; N uni2348 ; G 2307 +U 9033 ; WX 602 ; N uni2349 ; G 2308 +U 9034 ; WX 602 ; N uni234A ; G 2309 +U 9035 ; WX 602 ; N uni234B ; G 2310 +U 9036 ; WX 602 ; N uni234C ; G 2311 +U 9037 ; WX 602 ; N uni234D ; G 2312 +U 9038 ; WX 602 ; N uni234E ; G 2313 +U 9039 ; WX 602 ; N uni234F ; G 2314 +U 9040 ; WX 602 ; N uni2350 ; G 2315 +U 9041 ; WX 602 ; N uni2351 ; G 2316 +U 9042 ; WX 602 ; N uni2352 ; G 2317 +U 9043 ; WX 602 ; N uni2353 ; G 2318 +U 9044 ; WX 602 ; N uni2354 ; G 2319 +U 9045 ; WX 602 ; N uni2355 ; G 2320 +U 9046 ; WX 602 ; N uni2356 ; G 2321 +U 9047 ; WX 602 ; N uni2357 ; G 2322 +U 9048 ; WX 602 ; N uni2358 ; G 2323 +U 9049 ; WX 602 ; N uni2359 ; G 2324 +U 9050 ; WX 602 ; N uni235A ; G 2325 +U 9051 ; WX 602 ; N uni235B ; G 2326 +U 9052 ; WX 602 ; N uni235C ; G 2327 +U 9053 ; WX 602 ; N uni235D ; G 2328 +U 9054 ; WX 602 ; N uni235E ; G 2329 +U 9055 ; WX 602 ; N uni235F ; G 2330 +U 9056 ; WX 602 ; N uni2360 ; G 2331 +U 9057 ; WX 602 ; N uni2361 ; G 2332 +U 9058 ; WX 602 ; N uni2362 ; G 2333 +U 9059 ; WX 602 ; N uni2363 ; G 2334 +U 9060 ; WX 602 ; N uni2364 ; G 2335 +U 9061 ; WX 602 ; N uni2365 ; G 2336 +U 9062 ; WX 602 ; N uni2366 ; G 2337 +U 9063 ; WX 602 ; N uni2367 ; G 2338 +U 9064 ; WX 602 ; N uni2368 ; G 2339 +U 9065 ; WX 602 ; N uni2369 ; G 2340 +U 9066 ; WX 602 ; N uni236A ; G 2341 +U 9067 ; WX 602 ; N uni236B ; G 2342 +U 9068 ; WX 602 ; N uni236C ; G 2343 +U 9069 ; WX 602 ; N uni236D ; G 2344 +U 9070 ; WX 602 ; N uni236E ; G 2345 +U 9071 ; WX 602 ; N uni236F ; G 2346 +U 9072 ; WX 602 ; N uni2370 ; G 2347 +U 9073 ; WX 602 ; N uni2371 ; G 2348 +U 9074 ; WX 602 ; N uni2372 ; G 2349 +U 9075 ; WX 602 ; N uni2373 ; G 2350 +U 9076 ; WX 602 ; N uni2374 ; G 2351 +U 9077 ; WX 602 ; N uni2375 ; G 2352 +U 9078 ; WX 602 ; N uni2376 ; G 2353 +U 9079 ; WX 602 ; N uni2377 ; G 2354 +U 9080 ; WX 602 ; N uni2378 ; G 2355 +U 9081 ; WX 602 ; N uni2379 ; G 2356 +U 9082 ; WX 602 ; N uni237A ; G 2357 +U 9085 ; WX 602 ; N uni237D ; G 2358 +U 9088 ; WX 602 ; N uni2380 ; G 2359 +U 9089 ; WX 602 ; N uni2381 ; G 2360 +U 9090 ; WX 602 ; N uni2382 ; G 2361 +U 9091 ; WX 602 ; N uni2383 ; G 2362 +U 9096 ; WX 602 ; N uni2388 ; G 2363 +U 9097 ; WX 602 ; N uni2389 ; G 2364 +U 9098 ; WX 602 ; N uni238A ; G 2365 +U 9099 ; WX 602 ; N uni238B ; G 2366 +U 9109 ; WX 602 ; N uni2395 ; G 2367 +U 9115 ; WX 602 ; N uni239B ; G 2368 +U 9116 ; WX 602 ; N uni239C ; G 2369 +U 9117 ; WX 602 ; N uni239D ; G 2370 +U 9118 ; WX 602 ; N uni239E ; G 2371 +U 9119 ; WX 602 ; N uni239F ; G 2372 +U 9120 ; WX 602 ; N uni23A0 ; G 2373 +U 9121 ; WX 602 ; N uni23A1 ; G 2374 +U 9122 ; WX 602 ; N uni23A2 ; G 2375 +U 9123 ; WX 602 ; N uni23A3 ; G 2376 +U 9124 ; WX 602 ; N uni23A4 ; G 2377 +U 9125 ; WX 602 ; N uni23A5 ; G 2378 +U 9126 ; WX 602 ; N uni23A6 ; G 2379 +U 9127 ; WX 602 ; N uni23A7 ; G 2380 +U 9128 ; WX 602 ; N uni23A8 ; G 2381 +U 9129 ; WX 602 ; N uni23A9 ; G 2382 +U 9130 ; WX 602 ; N uni23AA ; G 2383 +U 9131 ; WX 602 ; N uni23AB ; G 2384 +U 9132 ; WX 602 ; N uni23AC ; G 2385 +U 9133 ; WX 602 ; N uni23AD ; G 2386 +U 9134 ; WX 602 ; N uni23AE ; G 2387 +U 9166 ; WX 602 ; N uni23CE ; G 2388 +U 9167 ; WX 602 ; N uni23CF ; G 2389 +U 9251 ; WX 602 ; N uni2423 ; G 2390 +U 9472 ; WX 602 ; N SF100000 ; G 2391 +U 9473 ; WX 602 ; N uni2501 ; G 2392 +U 9474 ; WX 602 ; N SF110000 ; G 2393 +U 9475 ; WX 602 ; N uni2503 ; G 2394 +U 9476 ; WX 602 ; N uni2504 ; G 2395 +U 9477 ; WX 602 ; N uni2505 ; G 2396 +U 9478 ; WX 602 ; N uni2506 ; G 2397 +U 9479 ; WX 602 ; N uni2507 ; G 2398 +U 9480 ; WX 602 ; N uni2508 ; G 2399 +U 9481 ; WX 602 ; N uni2509 ; G 2400 +U 9482 ; WX 602 ; N uni250A ; G 2401 +U 9483 ; WX 602 ; N uni250B ; G 2402 +U 9484 ; WX 602 ; N SF010000 ; G 2403 +U 9485 ; WX 602 ; N uni250D ; G 2404 +U 9486 ; WX 602 ; N uni250E ; G 2405 +U 9487 ; WX 602 ; N uni250F ; G 2406 +U 9488 ; WX 602 ; N SF030000 ; G 2407 +U 9489 ; WX 602 ; N uni2511 ; G 2408 +U 9490 ; WX 602 ; N uni2512 ; G 2409 +U 9491 ; WX 602 ; N uni2513 ; G 2410 +U 9492 ; WX 602 ; N SF020000 ; G 2411 +U 9493 ; WX 602 ; N uni2515 ; G 2412 +U 9494 ; WX 602 ; N uni2516 ; G 2413 +U 9495 ; WX 602 ; N uni2517 ; G 2414 +U 9496 ; WX 602 ; N SF040000 ; G 2415 +U 9497 ; WX 602 ; N uni2519 ; G 2416 +U 9498 ; WX 602 ; N uni251A ; G 2417 +U 9499 ; WX 602 ; N uni251B ; G 2418 +U 9500 ; WX 602 ; N SF080000 ; G 2419 +U 9501 ; WX 602 ; N uni251D ; G 2420 +U 9502 ; WX 602 ; N uni251E ; G 2421 +U 9503 ; WX 602 ; N uni251F ; G 2422 +U 9504 ; WX 602 ; N uni2520 ; G 2423 +U 9505 ; WX 602 ; N uni2521 ; G 2424 +U 9506 ; WX 602 ; N uni2522 ; G 2425 +U 9507 ; WX 602 ; N uni2523 ; G 2426 +U 9508 ; WX 602 ; N SF090000 ; G 2427 +U 9509 ; WX 602 ; N uni2525 ; G 2428 +U 9510 ; WX 602 ; N uni2526 ; G 2429 +U 9511 ; WX 602 ; N uni2527 ; G 2430 +U 9512 ; WX 602 ; N uni2528 ; G 2431 +U 9513 ; WX 602 ; N uni2529 ; G 2432 +U 9514 ; WX 602 ; N uni252A ; G 2433 +U 9515 ; WX 602 ; N uni252B ; G 2434 +U 9516 ; WX 602 ; N SF060000 ; G 2435 +U 9517 ; WX 602 ; N uni252D ; G 2436 +U 9518 ; WX 602 ; N uni252E ; G 2437 +U 9519 ; WX 602 ; N uni252F ; G 2438 +U 9520 ; WX 602 ; N uni2530 ; G 2439 +U 9521 ; WX 602 ; N uni2531 ; G 2440 +U 9522 ; WX 602 ; N uni2532 ; G 2441 +U 9523 ; WX 602 ; N uni2533 ; G 2442 +U 9524 ; WX 602 ; N SF070000 ; G 2443 +U 9525 ; WX 602 ; N uni2535 ; G 2444 +U 9526 ; WX 602 ; N uni2536 ; G 2445 +U 9527 ; WX 602 ; N uni2537 ; G 2446 +U 9528 ; WX 602 ; N uni2538 ; G 2447 +U 9529 ; WX 602 ; N uni2539 ; G 2448 +U 9530 ; WX 602 ; N uni253A ; G 2449 +U 9531 ; WX 602 ; N uni253B ; G 2450 +U 9532 ; WX 602 ; N SF050000 ; G 2451 +U 9533 ; WX 602 ; N uni253D ; G 2452 +U 9534 ; WX 602 ; N uni253E ; G 2453 +U 9535 ; WX 602 ; N uni253F ; G 2454 +U 9536 ; WX 602 ; N uni2540 ; G 2455 +U 9537 ; WX 602 ; N uni2541 ; G 2456 +U 9538 ; WX 602 ; N uni2542 ; G 2457 +U 9539 ; WX 602 ; N uni2543 ; G 2458 +U 9540 ; WX 602 ; N uni2544 ; G 2459 +U 9541 ; WX 602 ; N uni2545 ; G 2460 +U 9542 ; WX 602 ; N uni2546 ; G 2461 +U 9543 ; WX 602 ; N uni2547 ; G 2462 +U 9544 ; WX 602 ; N uni2548 ; G 2463 +U 9545 ; WX 602 ; N uni2549 ; G 2464 +U 9546 ; WX 602 ; N uni254A ; G 2465 +U 9547 ; WX 602 ; N uni254B ; G 2466 +U 9548 ; WX 602 ; N uni254C ; G 2467 +U 9549 ; WX 602 ; N uni254D ; G 2468 +U 9550 ; WX 602 ; N uni254E ; G 2469 +U 9551 ; WX 602 ; N uni254F ; G 2470 +U 9552 ; WX 602 ; N SF430000 ; G 2471 +U 9553 ; WX 602 ; N SF240000 ; G 2472 +U 9554 ; WX 602 ; N SF510000 ; G 2473 +U 9555 ; WX 602 ; N SF520000 ; G 2474 +U 9556 ; WX 602 ; N SF390000 ; G 2475 +U 9557 ; WX 602 ; N SF220000 ; G 2476 +U 9558 ; WX 602 ; N SF210000 ; G 2477 +U 9559 ; WX 602 ; N SF250000 ; G 2478 +U 9560 ; WX 602 ; N SF500000 ; G 2479 +U 9561 ; WX 602 ; N SF490000 ; G 2480 +U 9562 ; WX 602 ; N SF380000 ; G 2481 +U 9563 ; WX 602 ; N SF280000 ; G 2482 +U 9564 ; WX 602 ; N SF270000 ; G 2483 +U 9565 ; WX 602 ; N SF260000 ; G 2484 +U 9566 ; WX 602 ; N SF360000 ; G 2485 +U 9567 ; WX 602 ; N SF370000 ; G 2486 +U 9568 ; WX 602 ; N SF420000 ; G 2487 +U 9569 ; WX 602 ; N SF190000 ; G 2488 +U 9570 ; WX 602 ; N SF200000 ; G 2489 +U 9571 ; WX 602 ; N SF230000 ; G 2490 +U 9572 ; WX 602 ; N SF470000 ; G 2491 +U 9573 ; WX 602 ; N SF480000 ; G 2492 +U 9574 ; WX 602 ; N SF410000 ; G 2493 +U 9575 ; WX 602 ; N SF450000 ; G 2494 +U 9576 ; WX 602 ; N SF460000 ; G 2495 +U 9577 ; WX 602 ; N SF400000 ; G 2496 +U 9578 ; WX 602 ; N SF540000 ; G 2497 +U 9579 ; WX 602 ; N SF530000 ; G 2498 +U 9580 ; WX 602 ; N SF440000 ; G 2499 +U 9581 ; WX 602 ; N uni256D ; G 2500 +U 9582 ; WX 602 ; N uni256E ; G 2501 +U 9583 ; WX 602 ; N uni256F ; G 2502 +U 9584 ; WX 602 ; N uni2570 ; G 2503 +U 9585 ; WX 602 ; N uni2571 ; G 2504 +U 9586 ; WX 602 ; N uni2572 ; G 2505 +U 9587 ; WX 602 ; N uni2573 ; G 2506 +U 9588 ; WX 602 ; N uni2574 ; G 2507 +U 9589 ; WX 602 ; N uni2575 ; G 2508 +U 9590 ; WX 602 ; N uni2576 ; G 2509 +U 9591 ; WX 602 ; N uni2577 ; G 2510 +U 9592 ; WX 602 ; N uni2578 ; G 2511 +U 9593 ; WX 602 ; N uni2579 ; G 2512 +U 9594 ; WX 602 ; N uni257A ; G 2513 +U 9595 ; WX 602 ; N uni257B ; G 2514 +U 9596 ; WX 602 ; N uni257C ; G 2515 +U 9597 ; WX 602 ; N uni257D ; G 2516 +U 9598 ; WX 602 ; N uni257E ; G 2517 +U 9599 ; WX 602 ; N uni257F ; G 2518 +U 9600 ; WX 602 ; N upblock ; G 2519 +U 9601 ; WX 602 ; N uni2581 ; G 2520 +U 9602 ; WX 602 ; N uni2582 ; G 2521 +U 9603 ; WX 602 ; N uni2583 ; G 2522 +U 9604 ; WX 602 ; N dnblock ; G 2523 +U 9605 ; WX 602 ; N uni2585 ; G 2524 +U 9606 ; WX 602 ; N uni2586 ; G 2525 +U 9607 ; WX 602 ; N uni2587 ; G 2526 +U 9608 ; WX 602 ; N block ; G 2527 +U 9609 ; WX 602 ; N uni2589 ; G 2528 +U 9610 ; WX 602 ; N uni258A ; G 2529 +U 9611 ; WX 602 ; N uni258B ; G 2530 +U 9612 ; WX 602 ; N lfblock ; G 2531 +U 9613 ; WX 602 ; N uni258D ; G 2532 +U 9614 ; WX 602 ; N uni258E ; G 2533 +U 9615 ; WX 602 ; N uni258F ; G 2534 +U 9616 ; WX 602 ; N rtblock ; G 2535 +U 9617 ; WX 602 ; N ltshade ; G 2536 +U 9618 ; WX 602 ; N shade ; G 2537 +U 9619 ; WX 602 ; N dkshade ; G 2538 +U 9620 ; WX 602 ; N uni2594 ; G 2539 +U 9621 ; WX 602 ; N uni2595 ; G 2540 +U 9622 ; WX 602 ; N uni2596 ; G 2541 +U 9623 ; WX 602 ; N uni2597 ; G 2542 +U 9624 ; WX 602 ; N uni2598 ; G 2543 +U 9625 ; WX 602 ; N uni2599 ; G 2544 +U 9626 ; WX 602 ; N uni259A ; G 2545 +U 9627 ; WX 602 ; N uni259B ; G 2546 +U 9628 ; WX 602 ; N uni259C ; G 2547 +U 9629 ; WX 602 ; N uni259D ; G 2548 +U 9630 ; WX 602 ; N uni259E ; G 2549 +U 9631 ; WX 602 ; N uni259F ; G 2550 +U 9632 ; WX 602 ; N filledbox ; G 2551 +U 9633 ; WX 602 ; N H22073 ; G 2552 +U 9634 ; WX 602 ; N uni25A2 ; G 2553 +U 9635 ; WX 602 ; N uni25A3 ; G 2554 +U 9636 ; WX 602 ; N uni25A4 ; G 2555 +U 9637 ; WX 602 ; N uni25A5 ; G 2556 +U 9638 ; WX 602 ; N uni25A6 ; G 2557 +U 9639 ; WX 602 ; N uni25A7 ; G 2558 +U 9640 ; WX 602 ; N uni25A8 ; G 2559 +U 9641 ; WX 602 ; N uni25A9 ; G 2560 +U 9642 ; WX 602 ; N H18543 ; G 2561 +U 9643 ; WX 602 ; N H18551 ; G 2562 +U 9644 ; WX 602 ; N filledrect ; G 2563 +U 9645 ; WX 602 ; N uni25AD ; G 2564 +U 9646 ; WX 602 ; N uni25AE ; G 2565 +U 9647 ; WX 602 ; N uni25AF ; G 2566 +U 9648 ; WX 602 ; N uni25B0 ; G 2567 +U 9649 ; WX 602 ; N uni25B1 ; G 2568 +U 9650 ; WX 602 ; N triagup ; G 2569 +U 9651 ; WX 602 ; N uni25B3 ; G 2570 +U 9652 ; WX 602 ; N uni25B4 ; G 2571 +U 9653 ; WX 602 ; N uni25B5 ; G 2572 +U 9654 ; WX 602 ; N uni25B6 ; G 2573 +U 9655 ; WX 602 ; N uni25B7 ; G 2574 +U 9656 ; WX 602 ; N uni25B8 ; G 2575 +U 9657 ; WX 602 ; N uni25B9 ; G 2576 +U 9658 ; WX 602 ; N triagrt ; G 2577 +U 9659 ; WX 602 ; N uni25BB ; G 2578 +U 9660 ; WX 602 ; N triagdn ; G 2579 +U 9661 ; WX 602 ; N uni25BD ; G 2580 +U 9662 ; WX 602 ; N uni25BE ; G 2581 +U 9663 ; WX 602 ; N uni25BF ; G 2582 +U 9664 ; WX 602 ; N uni25C0 ; G 2583 +U 9665 ; WX 602 ; N uni25C1 ; G 2584 +U 9666 ; WX 602 ; N uni25C2 ; G 2585 +U 9667 ; WX 602 ; N uni25C3 ; G 2586 +U 9668 ; WX 602 ; N triaglf ; G 2587 +U 9669 ; WX 602 ; N uni25C5 ; G 2588 +U 9670 ; WX 602 ; N uni25C6 ; G 2589 +U 9671 ; WX 602 ; N uni25C7 ; G 2590 +U 9672 ; WX 602 ; N uni25C8 ; G 2591 +U 9673 ; WX 602 ; N uni25C9 ; G 2592 +U 9674 ; WX 602 ; N lozenge ; G 2593 +U 9675 ; WX 602 ; N circle ; G 2594 +U 9676 ; WX 602 ; N uni25CC ; G 2595 +U 9677 ; WX 602 ; N uni25CD ; G 2596 +U 9678 ; WX 602 ; N uni25CE ; G 2597 +U 9679 ; WX 602 ; N H18533 ; G 2598 +U 9680 ; WX 602 ; N uni25D0 ; G 2599 +U 9681 ; WX 602 ; N uni25D1 ; G 2600 +U 9682 ; WX 602 ; N uni25D2 ; G 2601 +U 9683 ; WX 602 ; N uni25D3 ; G 2602 +U 9684 ; WX 602 ; N uni25D4 ; G 2603 +U 9685 ; WX 602 ; N uni25D5 ; G 2604 +U 9686 ; WX 602 ; N uni25D6 ; G 2605 +U 9687 ; WX 602 ; N uni25D7 ; G 2606 +U 9688 ; WX 602 ; N invbullet ; G 2607 +U 9689 ; WX 602 ; N invcircle ; G 2608 +U 9690 ; WX 602 ; N uni25DA ; G 2609 +U 9691 ; WX 602 ; N uni25DB ; G 2610 +U 9692 ; WX 602 ; N uni25DC ; G 2611 +U 9693 ; WX 602 ; N uni25DD ; G 2612 +U 9694 ; WX 602 ; N uni25DE ; G 2613 +U 9695 ; WX 602 ; N uni25DF ; G 2614 +U 9696 ; WX 602 ; N uni25E0 ; G 2615 +U 9697 ; WX 602 ; N uni25E1 ; G 2616 +U 9698 ; WX 602 ; N uni25E2 ; G 2617 +U 9699 ; WX 602 ; N uni25E3 ; G 2618 +U 9700 ; WX 602 ; N uni25E4 ; G 2619 +U 9701 ; WX 602 ; N uni25E5 ; G 2620 +U 9702 ; WX 602 ; N openbullet ; G 2621 +U 9703 ; WX 602 ; N uni25E7 ; G 2622 +U 9704 ; WX 602 ; N uni25E8 ; G 2623 +U 9705 ; WX 602 ; N uni25E9 ; G 2624 +U 9706 ; WX 602 ; N uni25EA ; G 2625 +U 9707 ; WX 602 ; N uni25EB ; G 2626 +U 9708 ; WX 602 ; N uni25EC ; G 2627 +U 9709 ; WX 602 ; N uni25ED ; G 2628 +U 9710 ; WX 602 ; N uni25EE ; G 2629 +U 9711 ; WX 602 ; N uni25EF ; G 2630 +U 9712 ; WX 602 ; N uni25F0 ; G 2631 +U 9713 ; WX 602 ; N uni25F1 ; G 2632 +U 9714 ; WX 602 ; N uni25F2 ; G 2633 +U 9715 ; WX 602 ; N uni25F3 ; G 2634 +U 9716 ; WX 602 ; N uni25F4 ; G 2635 +U 9717 ; WX 602 ; N uni25F5 ; G 2636 +U 9718 ; WX 602 ; N uni25F6 ; G 2637 +U 9719 ; WX 602 ; N uni25F7 ; G 2638 +U 9720 ; WX 602 ; N uni25F8 ; G 2639 +U 9721 ; WX 602 ; N uni25F9 ; G 2640 +U 9722 ; WX 602 ; N uni25FA ; G 2641 +U 9723 ; WX 602 ; N uni25FB ; G 2642 +U 9724 ; WX 602 ; N uni25FC ; G 2643 +U 9725 ; WX 602 ; N uni25FD ; G 2644 +U 9726 ; WX 602 ; N uni25FE ; G 2645 +U 9727 ; WX 602 ; N uni25FF ; G 2646 +U 9728 ; WX 602 ; N uni2600 ; G 2647 +U 9729 ; WX 602 ; N uni2601 ; G 2648 +U 9730 ; WX 602 ; N uni2602 ; G 2649 +U 9731 ; WX 602 ; N uni2603 ; G 2650 +U 9732 ; WX 602 ; N uni2604 ; G 2651 +U 9733 ; WX 602 ; N uni2605 ; G 2652 +U 9734 ; WX 602 ; N uni2606 ; G 2653 +U 9735 ; WX 602 ; N uni2607 ; G 2654 +U 9736 ; WX 602 ; N uni2608 ; G 2655 +U 9737 ; WX 602 ; N uni2609 ; G 2656 +U 9738 ; WX 602 ; N uni260A ; G 2657 +U 9739 ; WX 602 ; N uni260B ; G 2658 +U 9740 ; WX 602 ; N uni260C ; G 2659 +U 9741 ; WX 602 ; N uni260D ; G 2660 +U 9742 ; WX 602 ; N uni260E ; G 2661 +U 9743 ; WX 602 ; N uni260F ; G 2662 +U 9744 ; WX 602 ; N uni2610 ; G 2663 +U 9745 ; WX 602 ; N uni2611 ; G 2664 +U 9746 ; WX 602 ; N uni2612 ; G 2665 +U 9747 ; WX 602 ; N uni2613 ; G 2666 +U 9748 ; WX 602 ; N uni2614 ; G 2667 +U 9749 ; WX 602 ; N uni2615 ; G 2668 +U 9750 ; WX 602 ; N uni2616 ; G 2669 +U 9751 ; WX 602 ; N uni2617 ; G 2670 +U 9752 ; WX 602 ; N uni2618 ; G 2671 +U 9753 ; WX 602 ; N uni2619 ; G 2672 +U 9754 ; WX 602 ; N uni261A ; G 2673 +U 9755 ; WX 602 ; N uni261B ; G 2674 +U 9756 ; WX 602 ; N uni261C ; G 2675 +U 9757 ; WX 602 ; N uni261D ; G 2676 +U 9758 ; WX 602 ; N uni261E ; G 2677 +U 9759 ; WX 602 ; N uni261F ; G 2678 +U 9760 ; WX 602 ; N uni2620 ; G 2679 +U 9761 ; WX 602 ; N uni2621 ; G 2680 +U 9762 ; WX 602 ; N uni2622 ; G 2681 +U 9763 ; WX 602 ; N uni2623 ; G 2682 +U 9764 ; WX 602 ; N uni2624 ; G 2683 +U 9765 ; WX 602 ; N uni2625 ; G 2684 +U 9766 ; WX 602 ; N uni2626 ; G 2685 +U 9767 ; WX 602 ; N uni2627 ; G 2686 +U 9768 ; WX 602 ; N uni2628 ; G 2687 +U 9769 ; WX 602 ; N uni2629 ; G 2688 +U 9770 ; WX 602 ; N uni262A ; G 2689 +U 9771 ; WX 602 ; N uni262B ; G 2690 +U 9772 ; WX 602 ; N uni262C ; G 2691 +U 9773 ; WX 602 ; N uni262D ; G 2692 +U 9774 ; WX 602 ; N uni262E ; G 2693 +U 9775 ; WX 602 ; N uni262F ; G 2694 +U 9784 ; WX 602 ; N uni2638 ; G 2695 +U 9785 ; WX 602 ; N uni2639 ; G 2696 +U 9786 ; WX 602 ; N smileface ; G 2697 +U 9787 ; WX 602 ; N invsmileface ; G 2698 +U 9788 ; WX 602 ; N sun ; G 2699 +U 9789 ; WX 602 ; N uni263D ; G 2700 +U 9790 ; WX 602 ; N uni263E ; G 2701 +U 9791 ; WX 602 ; N uni263F ; G 2702 +U 9792 ; WX 602 ; N female ; G 2703 +U 9793 ; WX 602 ; N uni2641 ; G 2704 +U 9794 ; WX 602 ; N male ; G 2705 +U 9795 ; WX 602 ; N uni2643 ; G 2706 +U 9796 ; WX 602 ; N uni2644 ; G 2707 +U 9797 ; WX 602 ; N uni2645 ; G 2708 +U 9798 ; WX 602 ; N uni2646 ; G 2709 +U 9799 ; WX 602 ; N uni2647 ; G 2710 +U 9800 ; WX 602 ; N uni2648 ; G 2711 +U 9801 ; WX 602 ; N uni2649 ; G 2712 +U 9802 ; WX 602 ; N uni264A ; G 2713 +U 9803 ; WX 602 ; N uni264B ; G 2714 +U 9804 ; WX 602 ; N uni264C ; G 2715 +U 9805 ; WX 602 ; N uni264D ; G 2716 +U 9806 ; WX 602 ; N uni264E ; G 2717 +U 9807 ; WX 602 ; N uni264F ; G 2718 +U 9808 ; WX 602 ; N uni2650 ; G 2719 +U 9809 ; WX 602 ; N uni2651 ; G 2720 +U 9810 ; WX 602 ; N uni2652 ; G 2721 +U 9811 ; WX 602 ; N uni2653 ; G 2722 +U 9812 ; WX 602 ; N uni2654 ; G 2723 +U 9813 ; WX 602 ; N uni2655 ; G 2724 +U 9814 ; WX 602 ; N uni2656 ; G 2725 +U 9815 ; WX 602 ; N uni2657 ; G 2726 +U 9816 ; WX 602 ; N uni2658 ; G 2727 +U 9817 ; WX 602 ; N uni2659 ; G 2728 +U 9818 ; WX 602 ; N uni265A ; G 2729 +U 9819 ; WX 602 ; N uni265B ; G 2730 +U 9820 ; WX 602 ; N uni265C ; G 2731 +U 9821 ; WX 602 ; N uni265D ; G 2732 +U 9822 ; WX 602 ; N uni265E ; G 2733 +U 9823 ; WX 602 ; N uni265F ; G 2734 +U 9824 ; WX 602 ; N spade ; G 2735 +U 9825 ; WX 602 ; N uni2661 ; G 2736 +U 9826 ; WX 602 ; N uni2662 ; G 2737 +U 9827 ; WX 602 ; N club ; G 2738 +U 9828 ; WX 602 ; N uni2664 ; G 2739 +U 9829 ; WX 602 ; N heart ; G 2740 +U 9830 ; WX 602 ; N diamond ; G 2741 +U 9831 ; WX 602 ; N uni2667 ; G 2742 +U 9832 ; WX 602 ; N uni2668 ; G 2743 +U 9833 ; WX 602 ; N uni2669 ; G 2744 +U 9834 ; WX 602 ; N musicalnote ; G 2745 +U 9835 ; WX 602 ; N musicalnotedbl ; G 2746 +U 9836 ; WX 602 ; N uni266C ; G 2747 +U 9837 ; WX 602 ; N uni266D ; G 2748 +U 9838 ; WX 602 ; N uni266E ; G 2749 +U 9839 ; WX 602 ; N uni266F ; G 2750 +U 9840 ; WX 602 ; N uni2670 ; G 2751 +U 9841 ; WX 602 ; N uni2671 ; G 2752 +U 9842 ; WX 602 ; N uni2672 ; G 2753 +U 9843 ; WX 602 ; N uni2673 ; G 2754 +U 9844 ; WX 602 ; N uni2674 ; G 2755 +U 9845 ; WX 602 ; N uni2675 ; G 2756 +U 9846 ; WX 602 ; N uni2676 ; G 2757 +U 9847 ; WX 602 ; N uni2677 ; G 2758 +U 9848 ; WX 602 ; N uni2678 ; G 2759 +U 9849 ; WX 602 ; N uni2679 ; G 2760 +U 9850 ; WX 602 ; N uni267A ; G 2761 +U 9851 ; WX 602 ; N uni267B ; G 2762 +U 9852 ; WX 602 ; N uni267C ; G 2763 +U 9853 ; WX 602 ; N uni267D ; G 2764 +U 9854 ; WX 602 ; N uni267E ; G 2765 +U 9855 ; WX 602 ; N uni267F ; G 2766 +U 9856 ; WX 602 ; N uni2680 ; G 2767 +U 9857 ; WX 602 ; N uni2681 ; G 2768 +U 9858 ; WX 602 ; N uni2682 ; G 2769 +U 9859 ; WX 602 ; N uni2683 ; G 2770 +U 9860 ; WX 602 ; N uni2684 ; G 2771 +U 9861 ; WX 602 ; N uni2685 ; G 2772 +U 9862 ; WX 602 ; N uni2686 ; G 2773 +U 9863 ; WX 602 ; N uni2687 ; G 2774 +U 9864 ; WX 602 ; N uni2688 ; G 2775 +U 9865 ; WX 602 ; N uni2689 ; G 2776 +U 9866 ; WX 602 ; N uni268A ; G 2777 +U 9867 ; WX 602 ; N uni268B ; G 2778 +U 9872 ; WX 602 ; N uni2690 ; G 2779 +U 9873 ; WX 602 ; N uni2691 ; G 2780 +U 9874 ; WX 602 ; N uni2692 ; G 2781 +U 9875 ; WX 602 ; N uni2693 ; G 2782 +U 9876 ; WX 602 ; N uni2694 ; G 2783 +U 9877 ; WX 602 ; N uni2695 ; G 2784 +U 9878 ; WX 602 ; N uni2696 ; G 2785 +U 9879 ; WX 602 ; N uni2697 ; G 2786 +U 9880 ; WX 602 ; N uni2698 ; G 2787 +U 9881 ; WX 602 ; N uni2699 ; G 2788 +U 9882 ; WX 602 ; N uni269A ; G 2789 +U 9883 ; WX 602 ; N uni269B ; G 2790 +U 9884 ; WX 602 ; N uni269C ; G 2791 +U 9888 ; WX 602 ; N uni26A0 ; G 2792 +U 9889 ; WX 602 ; N uni26A1 ; G 2793 +U 9904 ; WX 602 ; N uni26B0 ; G 2794 +U 9905 ; WX 602 ; N uni26B1 ; G 2795 +U 9985 ; WX 602 ; N uni2701 ; G 2796 +U 9986 ; WX 602 ; N uni2702 ; G 2797 +U 9987 ; WX 602 ; N uni2703 ; G 2798 +U 9988 ; WX 602 ; N uni2704 ; G 2799 +U 9990 ; WX 602 ; N uni2706 ; G 2800 +U 9991 ; WX 602 ; N uni2707 ; G 2801 +U 9992 ; WX 602 ; N uni2708 ; G 2802 +U 9993 ; WX 602 ; N uni2709 ; G 2803 +U 9996 ; WX 602 ; N uni270C ; G 2804 +U 9997 ; WX 602 ; N uni270D ; G 2805 +U 9998 ; WX 602 ; N uni270E ; G 2806 +U 9999 ; WX 602 ; N uni270F ; G 2807 +U 10000 ; WX 602 ; N uni2710 ; G 2808 +U 10001 ; WX 602 ; N uni2711 ; G 2809 +U 10002 ; WX 602 ; N uni2712 ; G 2810 +U 10003 ; WX 602 ; N uni2713 ; G 2811 +U 10004 ; WX 602 ; N uni2714 ; G 2812 +U 10005 ; WX 602 ; N uni2715 ; G 2813 +U 10006 ; WX 602 ; N uni2716 ; G 2814 +U 10007 ; WX 602 ; N uni2717 ; G 2815 +U 10008 ; WX 602 ; N uni2718 ; G 2816 +U 10009 ; WX 602 ; N uni2719 ; G 2817 +U 10010 ; WX 602 ; N uni271A ; G 2818 +U 10011 ; WX 602 ; N uni271B ; G 2819 +U 10012 ; WX 602 ; N uni271C ; G 2820 +U 10013 ; WX 602 ; N uni271D ; G 2821 +U 10014 ; WX 602 ; N uni271E ; G 2822 +U 10015 ; WX 602 ; N uni271F ; G 2823 +U 10016 ; WX 602 ; N uni2720 ; G 2824 +U 10017 ; WX 602 ; N uni2721 ; G 2825 +U 10018 ; WX 602 ; N uni2722 ; G 2826 +U 10019 ; WX 602 ; N uni2723 ; G 2827 +U 10020 ; WX 602 ; N uni2724 ; G 2828 +U 10021 ; WX 602 ; N uni2725 ; G 2829 +U 10022 ; WX 602 ; N uni2726 ; G 2830 +U 10023 ; WX 602 ; N uni2727 ; G 2831 +U 10025 ; WX 602 ; N uni2729 ; G 2832 +U 10026 ; WX 602 ; N uni272A ; G 2833 +U 10027 ; WX 602 ; N uni272B ; G 2834 +U 10028 ; WX 602 ; N uni272C ; G 2835 +U 10029 ; WX 602 ; N uni272D ; G 2836 +U 10030 ; WX 602 ; N uni272E ; G 2837 +U 10031 ; WX 602 ; N uni272F ; G 2838 +U 10032 ; WX 602 ; N uni2730 ; G 2839 +U 10033 ; WX 602 ; N uni2731 ; G 2840 +U 10034 ; WX 602 ; N uni2732 ; G 2841 +U 10035 ; WX 602 ; N uni2733 ; G 2842 +U 10036 ; WX 602 ; N uni2734 ; G 2843 +U 10037 ; WX 602 ; N uni2735 ; G 2844 +U 10038 ; WX 602 ; N uni2736 ; G 2845 +U 10039 ; WX 602 ; N uni2737 ; G 2846 +U 10040 ; WX 602 ; N uni2738 ; G 2847 +U 10041 ; WX 602 ; N uni2739 ; G 2848 +U 10042 ; WX 602 ; N uni273A ; G 2849 +U 10043 ; WX 602 ; N uni273B ; G 2850 +U 10044 ; WX 602 ; N uni273C ; G 2851 +U 10045 ; WX 602 ; N uni273D ; G 2852 +U 10046 ; WX 602 ; N uni273E ; G 2853 +U 10047 ; WX 602 ; N uni273F ; G 2854 +U 10048 ; WX 602 ; N uni2740 ; G 2855 +U 10049 ; WX 602 ; N uni2741 ; G 2856 +U 10050 ; WX 602 ; N uni2742 ; G 2857 +U 10051 ; WX 602 ; N uni2743 ; G 2858 +U 10052 ; WX 602 ; N uni2744 ; G 2859 +U 10053 ; WX 602 ; N uni2745 ; G 2860 +U 10054 ; WX 602 ; N uni2746 ; G 2861 +U 10055 ; WX 602 ; N uni2747 ; G 2862 +U 10056 ; WX 602 ; N uni2748 ; G 2863 +U 10057 ; WX 602 ; N uni2749 ; G 2864 +U 10058 ; WX 602 ; N uni274A ; G 2865 +U 10059 ; WX 602 ; N uni274B ; G 2866 +U 10061 ; WX 602 ; N uni274D ; G 2867 +U 10063 ; WX 602 ; N uni274F ; G 2868 +U 10064 ; WX 602 ; N uni2750 ; G 2869 +U 10065 ; WX 602 ; N uni2751 ; G 2870 +U 10066 ; WX 602 ; N uni2752 ; G 2871 +U 10070 ; WX 602 ; N uni2756 ; G 2872 +U 10072 ; WX 602 ; N uni2758 ; G 2873 +U 10073 ; WX 602 ; N uni2759 ; G 2874 +U 10074 ; WX 602 ; N uni275A ; G 2875 +U 10075 ; WX 602 ; N uni275B ; G 2876 +U 10076 ; WX 602 ; N uni275C ; G 2877 +U 10077 ; WX 602 ; N uni275D ; G 2878 +U 10078 ; WX 602 ; N uni275E ; G 2879 +U 10081 ; WX 602 ; N uni2761 ; G 2880 +U 10082 ; WX 602 ; N uni2762 ; G 2881 +U 10083 ; WX 602 ; N uni2763 ; G 2882 +U 10084 ; WX 602 ; N uni2764 ; G 2883 +U 10085 ; WX 602 ; N uni2765 ; G 2884 +U 10086 ; WX 602 ; N uni2766 ; G 2885 +U 10087 ; WX 602 ; N uni2767 ; G 2886 +U 10088 ; WX 602 ; N uni2768 ; G 2887 +U 10089 ; WX 602 ; N uni2769 ; G 2888 +U 10090 ; WX 602 ; N uni276A ; G 2889 +U 10091 ; WX 602 ; N uni276B ; G 2890 +U 10092 ; WX 602 ; N uni276C ; G 2891 +U 10093 ; WX 602 ; N uni276D ; G 2892 +U 10094 ; WX 602 ; N uni276E ; G 2893 +U 10095 ; WX 602 ; N uni276F ; G 2894 +U 10096 ; WX 602 ; N uni2770 ; G 2895 +U 10097 ; WX 602 ; N uni2771 ; G 2896 +U 10098 ; WX 602 ; N uni2772 ; G 2897 +U 10099 ; WX 602 ; N uni2773 ; G 2898 +U 10100 ; WX 602 ; N uni2774 ; G 2899 +U 10101 ; WX 602 ; N uni2775 ; G 2900 +U 10132 ; WX 602 ; N uni2794 ; G 2901 +U 10136 ; WX 602 ; N uni2798 ; G 2902 +U 10137 ; WX 602 ; N uni2799 ; G 2903 +U 10138 ; WX 602 ; N uni279A ; G 2904 +U 10139 ; WX 602 ; N uni279B ; G 2905 +U 10140 ; WX 602 ; N uni279C ; G 2906 +U 10141 ; WX 602 ; N uni279D ; G 2907 +U 10142 ; WX 602 ; N uni279E ; G 2908 +U 10143 ; WX 602 ; N uni279F ; G 2909 +U 10144 ; WX 602 ; N uni27A0 ; G 2910 +U 10145 ; WX 602 ; N uni27A1 ; G 2911 +U 10146 ; WX 602 ; N uni27A2 ; G 2912 +U 10147 ; WX 602 ; N uni27A3 ; G 2913 +U 10148 ; WX 602 ; N uni27A4 ; G 2914 +U 10149 ; WX 602 ; N uni27A5 ; G 2915 +U 10150 ; WX 602 ; N uni27A6 ; G 2916 +U 10151 ; WX 602 ; N uni27A7 ; G 2917 +U 10152 ; WX 602 ; N uni27A8 ; G 2918 +U 10153 ; WX 602 ; N uni27A9 ; G 2919 +U 10154 ; WX 602 ; N uni27AA ; G 2920 +U 10155 ; WX 602 ; N uni27AB ; G 2921 +U 10156 ; WX 602 ; N uni27AC ; G 2922 +U 10157 ; WX 602 ; N uni27AD ; G 2923 +U 10158 ; WX 602 ; N uni27AE ; G 2924 +U 10159 ; WX 602 ; N uni27AF ; G 2925 +U 10161 ; WX 602 ; N uni27B1 ; G 2926 +U 10162 ; WX 602 ; N uni27B2 ; G 2927 +U 10163 ; WX 602 ; N uni27B3 ; G 2928 +U 10164 ; WX 602 ; N uni27B4 ; G 2929 +U 10165 ; WX 602 ; N uni27B5 ; G 2930 +U 10166 ; WX 602 ; N uni27B6 ; G 2931 +U 10167 ; WX 602 ; N uni27B7 ; G 2932 +U 10168 ; WX 602 ; N uni27B8 ; G 2933 +U 10169 ; WX 602 ; N uni27B9 ; G 2934 +U 10170 ; WX 602 ; N uni27BA ; G 2935 +U 10171 ; WX 602 ; N uni27BB ; G 2936 +U 10172 ; WX 602 ; N uni27BC ; G 2937 +U 10173 ; WX 602 ; N uni27BD ; G 2938 +U 10174 ; WX 602 ; N uni27BE ; G 2939 +U 10178 ; WX 602 ; N uni27C2 ; G 2940 +U 10181 ; WX 602 ; N uni27C5 ; G 2941 +U 10182 ; WX 602 ; N uni27C6 ; G 2942 +U 10204 ; WX 602 ; N uni27DC ; G 2943 +U 10208 ; WX 602 ; N uni27E0 ; G 2944 +U 10214 ; WX 602 ; N uni27E6 ; G 2945 +U 10215 ; WX 602 ; N uni27E7 ; G 2946 +U 10216 ; WX 602 ; N uni27E8 ; G 2947 +U 10217 ; WX 602 ; N uni27E9 ; G 2948 +U 10218 ; WX 602 ; N uni27EA ; G 2949 +U 10219 ; WX 602 ; N uni27EB ; G 2950 +U 10229 ; WX 602 ; N uni27F5 ; G 2951 +U 10230 ; WX 602 ; N uni27F6 ; G 2952 +U 10231 ; WX 602 ; N uni27F7 ; G 2953 +U 10631 ; WX 602 ; N uni2987 ; G 2954 +U 10632 ; WX 602 ; N uni2988 ; G 2955 +U 10647 ; WX 602 ; N uni2997 ; G 2956 +U 10648 ; WX 602 ; N uni2998 ; G 2957 +U 10731 ; WX 602 ; N uni29EB ; G 2958 +U 10746 ; WX 602 ; N uni29FA ; G 2959 +U 10747 ; WX 602 ; N uni29FB ; G 2960 +U 10752 ; WX 602 ; N uni2A00 ; G 2961 +U 10799 ; WX 602 ; N uni2A2F ; G 2962 +U 10858 ; WX 602 ; N uni2A6A ; G 2963 +U 10859 ; WX 602 ; N uni2A6B ; G 2964 +U 11013 ; WX 602 ; N uni2B05 ; G 2965 +U 11014 ; WX 602 ; N uni2B06 ; G 2966 +U 11015 ; WX 602 ; N uni2B07 ; G 2967 +U 11016 ; WX 602 ; N uni2B08 ; G 2968 +U 11017 ; WX 602 ; N uni2B09 ; G 2969 +U 11018 ; WX 602 ; N uni2B0A ; G 2970 +U 11019 ; WX 602 ; N uni2B0B ; G 2971 +U 11020 ; WX 602 ; N uni2B0C ; G 2972 +U 11021 ; WX 602 ; N uni2B0D ; G 2973 +U 11026 ; WX 602 ; N uni2B12 ; G 2974 +U 11027 ; WX 602 ; N uni2B13 ; G 2975 +U 11028 ; WX 602 ; N uni2B14 ; G 2976 +U 11029 ; WX 602 ; N uni2B15 ; G 2977 +U 11030 ; WX 602 ; N uni2B16 ; G 2978 +U 11031 ; WX 602 ; N uni2B17 ; G 2979 +U 11032 ; WX 602 ; N uni2B18 ; G 2980 +U 11033 ; WX 602 ; N uni2B19 ; G 2981 +U 11034 ; WX 602 ; N uni2B1A ; G 2982 +U 11364 ; WX 602 ; N uni2C64 ; G 2983 +U 11373 ; WX 602 ; N uni2C6D ; G 2984 +U 11374 ; WX 602 ; N uni2C6E ; G 2985 +U 11375 ; WX 602 ; N uni2C6F ; G 2986 +U 11376 ; WX 602 ; N uni2C70 ; G 2987 +U 11381 ; WX 602 ; N uni2C75 ; G 2988 +U 11382 ; WX 602 ; N uni2C76 ; G 2989 +U 11383 ; WX 602 ; N uni2C77 ; G 2990 +U 11385 ; WX 602 ; N uni2C79 ; G 2991 +U 11386 ; WX 602 ; N uni2C7A ; G 2992 +U 11388 ; WX 602 ; N uni2C7C ; G 2993 +U 11389 ; WX 602 ; N uni2C7D ; G 2994 +U 11390 ; WX 602 ; N uni2C7E ; G 2995 +U 11391 ; WX 602 ; N uni2C7F ; G 2996 +U 11800 ; WX 602 ; N uni2E18 ; G 2997 +U 11807 ; WX 602 ; N uni2E1F ; G 2998 +U 11810 ; WX 602 ; N uni2E22 ; G 2999 +U 11811 ; WX 602 ; N uni2E23 ; G 3000 +U 11812 ; WX 602 ; N uni2E24 ; G 3001 +U 11813 ; WX 602 ; N uni2E25 ; G 3002 +U 11822 ; WX 602 ; N uni2E2E ; G 3003 +U 42760 ; WX 602 ; N uniA708 ; G 3004 +U 42761 ; WX 602 ; N uniA709 ; G 3005 +U 42762 ; WX 602 ; N uniA70A ; G 3006 +U 42763 ; WX 602 ; N uniA70B ; G 3007 +U 42764 ; WX 602 ; N uniA70C ; G 3008 +U 42765 ; WX 602 ; N uniA70D ; G 3009 +U 42766 ; WX 602 ; N uniA70E ; G 3010 +U 42767 ; WX 602 ; N uniA70F ; G 3011 +U 42768 ; WX 602 ; N uniA710 ; G 3012 +U 42769 ; WX 602 ; N uniA711 ; G 3013 +U 42770 ; WX 602 ; N uniA712 ; G 3014 +U 42771 ; WX 602 ; N uniA713 ; G 3015 +U 42772 ; WX 602 ; N uniA714 ; G 3016 +U 42773 ; WX 602 ; N uniA715 ; G 3017 +U 42774 ; WX 602 ; N uniA716 ; G 3018 +U 42779 ; WX 602 ; N uniA71B ; G 3019 +U 42780 ; WX 602 ; N uniA71C ; G 3020 +U 42781 ; WX 602 ; N uniA71D ; G 3021 +U 42782 ; WX 602 ; N uniA71E ; G 3022 +U 42783 ; WX 602 ; N uniA71F ; G 3023 +U 42786 ; WX 602 ; N uniA722 ; G 3024 +U 42787 ; WX 602 ; N uniA723 ; G 3025 +U 42788 ; WX 602 ; N uniA724 ; G 3026 +U 42789 ; WX 602 ; N uniA725 ; G 3027 +U 42790 ; WX 602 ; N uniA726 ; G 3028 +U 42791 ; WX 602 ; N uniA727 ; G 3029 +U 42889 ; WX 602 ; N uniA789 ; G 3030 +U 42890 ; WX 602 ; N uniA78A ; G 3031 +U 42891 ; WX 602 ; N uniA78B ; G 3032 +U 42892 ; WX 602 ; N uniA78C ; G 3033 +U 42893 ; WX 602 ; N uniA78D ; G 3034 +U 42894 ; WX 602 ; N uniA78E ; G 3035 +U 42896 ; WX 602 ; N uniA790 ; G 3036 +U 42897 ; WX 602 ; N uniA791 ; G 3037 +U 42922 ; WX 602 ; N uniA7AA ; G 3038 +U 43000 ; WX 602 ; N uniA7F8 ; G 3039 +U 43001 ; WX 602 ; N uniA7F9 ; G 3040 +U 63173 ; WX 602 ; N uniF6C5 ; G 3041 +U 64257 ; WX 602 ; N fi ; G 3042 +U 64258 ; WX 602 ; N fl ; G 3043 +U 64338 ; WX 602 ; N uniFB52 ; G 3044 +U 64339 ; WX 602 ; N uniFB53 ; G 3045 +U 64340 ; WX 602 ; N uniFB54 ; G 3046 +U 64341 ; WX 602 ; N uniFB55 ; G 3047 +U 64342 ; WX 602 ; N uniFB56 ; G 3048 +U 64343 ; WX 602 ; N uniFB57 ; G 3049 +U 64344 ; WX 602 ; N uniFB58 ; G 3050 +U 64345 ; WX 602 ; N uniFB59 ; G 3051 +U 64346 ; WX 602 ; N uniFB5A ; G 3052 +U 64347 ; WX 602 ; N uniFB5B ; G 3053 +U 64348 ; WX 602 ; N uniFB5C ; G 3054 +U 64349 ; WX 602 ; N uniFB5D ; G 3055 +U 64350 ; WX 602 ; N uniFB5E ; G 3056 +U 64351 ; WX 602 ; N uniFB5F ; G 3057 +U 64352 ; WX 602 ; N uniFB60 ; G 3058 +U 64353 ; WX 602 ; N uniFB61 ; G 3059 +U 64354 ; WX 602 ; N uniFB62 ; G 3060 +U 64355 ; WX 602 ; N uniFB63 ; G 3061 +U 64356 ; WX 602 ; N uniFB64 ; G 3062 +U 64357 ; WX 602 ; N uniFB65 ; G 3063 +U 64358 ; WX 602 ; N uniFB66 ; G 3064 +U 64359 ; WX 602 ; N uniFB67 ; G 3065 +U 64360 ; WX 602 ; N uniFB68 ; G 3066 +U 64361 ; WX 602 ; N uniFB69 ; G 3067 +U 64362 ; WX 602 ; N uniFB6A ; G 3068 +U 64363 ; WX 602 ; N uniFB6B ; G 3069 +U 64364 ; WX 602 ; N uniFB6C ; G 3070 +U 64365 ; WX 602 ; N uniFB6D ; G 3071 +U 64366 ; WX 602 ; N uniFB6E ; G 3072 +U 64367 ; WX 602 ; N uniFB6F ; G 3073 +U 64368 ; WX 602 ; N uniFB70 ; G 3074 +U 64369 ; WX 602 ; N uniFB71 ; G 3075 +U 64370 ; WX 602 ; N uniFB72 ; G 3076 +U 64371 ; WX 602 ; N uniFB73 ; G 3077 +U 64372 ; WX 602 ; N uniFB74 ; G 3078 +U 64373 ; WX 602 ; N uniFB75 ; G 3079 +U 64374 ; WX 602 ; N uniFB76 ; G 3080 +U 64375 ; WX 602 ; N uniFB77 ; G 3081 +U 64376 ; WX 602 ; N uniFB78 ; G 3082 +U 64377 ; WX 602 ; N uniFB79 ; G 3083 +U 64378 ; WX 602 ; N uniFB7A ; G 3084 +U 64379 ; WX 602 ; N uniFB7B ; G 3085 +U 64380 ; WX 602 ; N uniFB7C ; G 3086 +U 64381 ; WX 602 ; N uniFB7D ; G 3087 +U 64382 ; WX 602 ; N uniFB7E ; G 3088 +U 64383 ; WX 602 ; N uniFB7F ; G 3089 +U 64384 ; WX 602 ; N uniFB80 ; G 3090 +U 64385 ; WX 602 ; N uniFB81 ; G 3091 +U 64394 ; WX 602 ; N uniFB8A ; G 3092 +U 64395 ; WX 602 ; N uniFB8B ; G 3093 +U 64396 ; WX 602 ; N uniFB8C ; G 3094 +U 64397 ; WX 602 ; N uniFB8D ; G 3095 +U 64398 ; WX 602 ; N uniFB8E ; G 3096 +U 64399 ; WX 602 ; N uniFB8F ; G 3097 +U 64400 ; WX 602 ; N uniFB90 ; G 3098 +U 64401 ; WX 602 ; N uniFB91 ; G 3099 +U 64402 ; WX 602 ; N uniFB92 ; G 3100 +U 64403 ; WX 602 ; N uniFB93 ; G 3101 +U 64404 ; WX 602 ; N uniFB94 ; G 3102 +U 64405 ; WX 602 ; N uniFB95 ; G 3103 +U 64414 ; WX 602 ; N uniFB9E ; G 3104 +U 64415 ; WX 602 ; N uniFB9F ; G 3105 +U 64426 ; WX 602 ; N uniFBAA ; G 3106 +U 64427 ; WX 602 ; N uniFBAB ; G 3107 +U 64428 ; WX 602 ; N uniFBAC ; G 3108 +U 64429 ; WX 602 ; N uniFBAD ; G 3109 +U 64488 ; WX 602 ; N uniFBE8 ; G 3110 +U 64489 ; WX 602 ; N uniFBE9 ; G 3111 +U 64508 ; WX 602 ; N uniFBFC ; G 3112 +U 64509 ; WX 602 ; N uniFBFD ; G 3113 +U 64510 ; WX 602 ; N uniFBFE ; G 3114 +U 64511 ; WX 602 ; N uniFBFF ; G 3115 +U 65136 ; WX 602 ; N uniFE70 ; G 3116 +U 65137 ; WX 602 ; N uniFE71 ; G 3117 +U 65138 ; WX 602 ; N uniFE72 ; G 3118 +U 65139 ; WX 602 ; N uniFE73 ; G 3119 +U 65140 ; WX 602 ; N uniFE74 ; G 3120 +U 65142 ; WX 602 ; N uniFE76 ; G 3121 +U 65143 ; WX 602 ; N uniFE77 ; G 3122 +U 65144 ; WX 602 ; N uniFE78 ; G 3123 +U 65145 ; WX 602 ; N uniFE79 ; G 3124 +U 65146 ; WX 602 ; N uniFE7A ; G 3125 +U 65147 ; WX 602 ; N uniFE7B ; G 3126 +U 65148 ; WX 602 ; N uniFE7C ; G 3127 +U 65149 ; WX 602 ; N uniFE7D ; G 3128 +U 65150 ; WX 602 ; N uniFE7E ; G 3129 +U 65151 ; WX 602 ; N uniFE7F ; G 3130 +U 65152 ; WX 602 ; N uniFE80 ; G 3131 +U 65153 ; WX 602 ; N uniFE81 ; G 3132 +U 65154 ; WX 602 ; N uniFE82 ; G 3133 +U 65155 ; WX 602 ; N uniFE83 ; G 3134 +U 65156 ; WX 602 ; N uniFE84 ; G 3135 +U 65157 ; WX 602 ; N uniFE85 ; G 3136 +U 65158 ; WX 602 ; N uniFE86 ; G 3137 +U 65159 ; WX 602 ; N uniFE87 ; G 3138 +U 65160 ; WX 602 ; N uniFE88 ; G 3139 +U 65161 ; WX 602 ; N uniFE89 ; G 3140 +U 65162 ; WX 602 ; N uniFE8A ; G 3141 +U 65163 ; WX 602 ; N uniFE8B ; G 3142 +U 65164 ; WX 602 ; N uniFE8C ; G 3143 +U 65165 ; WX 602 ; N uniFE8D ; G 3144 +U 65166 ; WX 602 ; N uniFE8E ; G 3145 +U 65167 ; WX 602 ; N uniFE8F ; G 3146 +U 65168 ; WX 602 ; N uniFE90 ; G 3147 +U 65169 ; WX 602 ; N uniFE91 ; G 3148 +U 65170 ; WX 602 ; N uniFE92 ; G 3149 +U 65171 ; WX 602 ; N uniFE93 ; G 3150 +U 65172 ; WX 602 ; N uniFE94 ; G 3151 +U 65173 ; WX 602 ; N uniFE95 ; G 3152 +U 65174 ; WX 602 ; N uniFE96 ; G 3153 +U 65175 ; WX 602 ; N uniFE97 ; G 3154 +U 65176 ; WX 602 ; N uniFE98 ; G 3155 +U 65177 ; WX 602 ; N uniFE99 ; G 3156 +U 65178 ; WX 602 ; N uniFE9A ; G 3157 +U 65179 ; WX 602 ; N uniFE9B ; G 3158 +U 65180 ; WX 602 ; N uniFE9C ; G 3159 +U 65181 ; WX 602 ; N uniFE9D ; G 3160 +U 65182 ; WX 602 ; N uniFE9E ; G 3161 +U 65183 ; WX 602 ; N uniFE9F ; G 3162 +U 65184 ; WX 602 ; N uniFEA0 ; G 3163 +U 65185 ; WX 602 ; N uniFEA1 ; G 3164 +U 65186 ; WX 602 ; N uniFEA2 ; G 3165 +U 65187 ; WX 602 ; N uniFEA3 ; G 3166 +U 65188 ; WX 602 ; N uniFEA4 ; G 3167 +U 65189 ; WX 602 ; N uniFEA5 ; G 3168 +U 65190 ; WX 602 ; N uniFEA6 ; G 3169 +U 65191 ; WX 602 ; N uniFEA7 ; G 3170 +U 65192 ; WX 602 ; N uniFEA8 ; G 3171 +U 65193 ; WX 602 ; N uniFEA9 ; G 3172 +U 65194 ; WX 602 ; N uniFEAA ; G 3173 +U 65195 ; WX 602 ; N uniFEAB ; G 3174 +U 65196 ; WX 602 ; N uniFEAC ; G 3175 +U 65197 ; WX 602 ; N uniFEAD ; G 3176 +U 65198 ; WX 602 ; N uniFEAE ; G 3177 +U 65199 ; WX 602 ; N uniFEAF ; G 3178 +U 65200 ; WX 602 ; N uniFEB0 ; G 3179 +U 65201 ; WX 602 ; N uniFEB1 ; G 3180 +U 65202 ; WX 602 ; N uniFEB2 ; G 3181 +U 65203 ; WX 602 ; N uniFEB3 ; G 3182 +U 65204 ; WX 602 ; N uniFEB4 ; G 3183 +U 65205 ; WX 602 ; N uniFEB5 ; G 3184 +U 65206 ; WX 602 ; N uniFEB6 ; G 3185 +U 65207 ; WX 602 ; N uniFEB7 ; G 3186 +U 65208 ; WX 602 ; N uniFEB8 ; G 3187 +U 65209 ; WX 602 ; N uniFEB9 ; G 3188 +U 65210 ; WX 602 ; N uniFEBA ; G 3189 +U 65211 ; WX 602 ; N uniFEBB ; G 3190 +U 65212 ; WX 602 ; N uniFEBC ; G 3191 +U 65213 ; WX 602 ; N uniFEBD ; G 3192 +U 65214 ; WX 602 ; N uniFEBE ; G 3193 +U 65215 ; WX 602 ; N uniFEBF ; G 3194 +U 65216 ; WX 602 ; N uniFEC0 ; G 3195 +U 65217 ; WX 602 ; N uniFEC1 ; G 3196 +U 65218 ; WX 602 ; N uniFEC2 ; G 3197 +U 65219 ; WX 602 ; N uniFEC3 ; G 3198 +U 65220 ; WX 602 ; N uniFEC4 ; G 3199 +U 65221 ; WX 602 ; N uniFEC5 ; G 3200 +U 65222 ; WX 602 ; N uniFEC6 ; G 3201 +U 65223 ; WX 602 ; N uniFEC7 ; G 3202 +U 65224 ; WX 602 ; N uniFEC8 ; G 3203 +U 65225 ; WX 602 ; N uniFEC9 ; G 3204 +U 65226 ; WX 602 ; N uniFECA ; G 3205 +U 65227 ; WX 602 ; N uniFECB ; G 3206 +U 65228 ; WX 602 ; N uniFECC ; G 3207 +U 65229 ; WX 602 ; N uniFECD ; G 3208 +U 65230 ; WX 602 ; N uniFECE ; G 3209 +U 65231 ; WX 602 ; N uniFECF ; G 3210 +U 65232 ; WX 602 ; N uniFED0 ; G 3211 +U 65233 ; WX 602 ; N uniFED1 ; G 3212 +U 65234 ; WX 602 ; N uniFED2 ; G 3213 +U 65235 ; WX 602 ; N uniFED3 ; G 3214 +U 65236 ; WX 602 ; N uniFED4 ; G 3215 +U 65237 ; WX 602 ; N uniFED5 ; G 3216 +U 65238 ; WX 602 ; N uniFED6 ; G 3217 +U 65239 ; WX 602 ; N uniFED7 ; G 3218 +U 65240 ; WX 602 ; N uniFED8 ; G 3219 +U 65241 ; WX 602 ; N uniFED9 ; G 3220 +U 65242 ; WX 602 ; N uniFEDA ; G 3221 +U 65243 ; WX 602 ; N uniFEDB ; G 3222 +U 65244 ; WX 602 ; N uniFEDC ; G 3223 +U 65245 ; WX 602 ; N uniFEDD ; G 3224 +U 65246 ; WX 602 ; N uniFEDE ; G 3225 +U 65247 ; WX 602 ; N uniFEDF ; G 3226 +U 65248 ; WX 602 ; N uniFEE0 ; G 3227 +U 65249 ; WX 602 ; N uniFEE1 ; G 3228 +U 65250 ; WX 602 ; N uniFEE2 ; G 3229 +U 65251 ; WX 602 ; N uniFEE3 ; G 3230 +U 65252 ; WX 602 ; N uniFEE4 ; G 3231 +U 65253 ; WX 602 ; N uniFEE5 ; G 3232 +U 65254 ; WX 602 ; N uniFEE6 ; G 3233 +U 65255 ; WX 602 ; N uniFEE7 ; G 3234 +U 65256 ; WX 602 ; N uniFEE8 ; G 3235 +U 65257 ; WX 602 ; N uniFEE9 ; G 3236 +U 65258 ; WX 602 ; N uniFEEA ; G 3237 +U 65259 ; WX 602 ; N uniFEEB ; G 3238 +U 65260 ; WX 602 ; N uniFEEC ; G 3239 +U 65261 ; WX 602 ; N uniFEED ; G 3240 +U 65262 ; WX 602 ; N uniFEEE ; G 3241 +U 65263 ; WX 602 ; N uniFEEF ; G 3242 +U 65264 ; WX 602 ; N uniFEF0 ; G 3243 +U 65265 ; WX 602 ; N uniFEF1 ; G 3244 +U 65266 ; WX 602 ; N uniFEF2 ; G 3245 +U 65267 ; WX 602 ; N uniFEF3 ; G 3246 +U 65268 ; WX 602 ; N uniFEF4 ; G 3247 +U 65269 ; WX 602 ; N uniFEF5 ; G 3248 +U 65270 ; WX 602 ; N uniFEF6 ; G 3249 +U 65271 ; WX 602 ; N uniFEF7 ; G 3250 +U 65272 ; WX 602 ; N uniFEF8 ; G 3251 +U 65273 ; WX 602 ; N uniFEF9 ; G 3252 +U 65274 ; WX 602 ; N uniFEFA ; G 3253 +U 65275 ; WX 602 ; N uniFEFB ; G 3254 +U 65276 ; WX 602 ; N uniFEFC ; G 3255 +U 65279 ; WX 602 ; N uniFEFF ; G 3256 +U 65529 ; WX 602 ; N uniFFF9 ; G 3257 +U 65530 ; WX 602 ; N uniFFFA ; G 3258 +U 65531 ; WX 602 ; N uniFFFB ; G 3259 +U 65532 ; WX 602 ; N uniFFFC ; G 3260 +U 65533 ; WX 602 ; N uniFFFD ; G 3261 +EndCharMetrics +EndFontMetrics diff --git a/public_html/2022/newcms/pdf/ttfonts/DejaVuSerif-Bold.ttf b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSerif-Bold.ttf similarity index 50% rename from public_html/2022/newcms/pdf/ttfonts/DejaVuSerif-Bold.ttf rename to public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSerif-Bold.ttf index 8c53b1a..3bb755f 100644 Binary files a/public_html/2022/newcms/pdf/ttfonts/DejaVuSerif-Bold.ttf and b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSerif-Bold.ttf differ diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSerif-Bold.ufm b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSerif-Bold.ufm new file mode 100644 index 0000000..7420dab --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSerif-Bold.ufm @@ -0,0 +1,4013 @@ +StartFontMetrics 4.1 +Notice Converted by PHP-font-lib +Comment https://github.com/PhenX/php-font-lib +EncodingScheme FontSpecific +FontName DejaVu Serif +FontSubfamily Bold +UniqueID DejaVu Serif Bold +FullName DejaVu Serif Bold +Version Version 2.37 +PostScriptName DejaVuSerif-Bold +Manufacturer DejaVu fonts team +FontVendorURL http://dejavu.sourceforge.net +LicenseURL http://dejavu.sourceforge.net/wiki/index.php/License +PreferredFamily DejaVu Serif +PreferredSubfamily Bold +Weight Bold +ItalicAngle 0 +IsFixedPitch false +UnderlineThickness 44 +UnderlinePosition -63 +FontHeightOffset 0 +Ascender 939 +Descender -236 +FontBBox -836 -389 1854 1145 +StartCharMetrics 3506 +U 32 ; WX 348 ; N space ; G 3 +U 33 ; WX 439 ; N exclam ; G 4 +U 34 ; WX 521 ; N quotedbl ; G 5 +U 35 ; WX 838 ; N numbersign ; G 6 +U 36 ; WX 696 ; N dollar ; G 7 +U 37 ; WX 950 ; N percent ; G 8 +U 38 ; WX 903 ; N ampersand ; G 9 +U 39 ; WX 306 ; N quotesingle ; G 10 +U 40 ; WX 473 ; N parenleft ; G 11 +U 41 ; WX 473 ; N parenright ; G 12 +U 42 ; WX 523 ; N asterisk ; G 13 +U 43 ; WX 838 ; N plus ; G 14 +U 44 ; WX 348 ; N comma ; G 15 +U 45 ; WX 415 ; N hyphen ; G 16 +U 46 ; WX 348 ; N period ; G 17 +U 47 ; WX 365 ; N slash ; G 18 +U 48 ; WX 696 ; N zero ; G 19 +U 49 ; WX 696 ; N one ; G 20 +U 50 ; WX 696 ; N two ; G 21 +U 51 ; WX 696 ; N three ; G 22 +U 52 ; WX 696 ; N four ; G 23 +U 53 ; WX 696 ; N five ; G 24 +U 54 ; WX 696 ; N six ; G 25 +U 55 ; WX 696 ; N seven ; G 26 +U 56 ; WX 696 ; N eight ; G 27 +U 57 ; WX 696 ; N nine ; G 28 +U 58 ; WX 369 ; N colon ; G 29 +U 59 ; WX 369 ; N semicolon ; G 30 +U 60 ; WX 838 ; N less ; G 31 +U 61 ; WX 838 ; N equal ; G 32 +U 62 ; WX 838 ; N greater ; G 33 +U 63 ; WX 586 ; N question ; G 34 +U 64 ; WX 1000 ; N at ; G 35 +U 65 ; WX 776 ; N A ; G 36 +U 66 ; WX 845 ; N B ; G 37 +U 67 ; WX 796 ; N C ; G 38 +U 68 ; WX 867 ; N D ; G 39 +U 69 ; WX 762 ; N E ; G 40 +U 70 ; WX 710 ; N F ; G 41 +U 71 ; WX 854 ; N G ; G 42 +U 72 ; WX 945 ; N H ; G 43 +U 73 ; WX 468 ; N I ; G 44 +U 74 ; WX 473 ; N J ; G 45 +U 75 ; WX 869 ; N K ; G 46 +U 76 ; WX 703 ; N L ; G 47 +U 77 ; WX 1107 ; N M ; G 48 +U 78 ; WX 914 ; N N ; G 49 +U 79 ; WX 871 ; N O ; G 50 +U 80 ; WX 752 ; N P ; G 51 +U 81 ; WX 871 ; N Q ; G 52 +U 82 ; WX 831 ; N R ; G 53 +U 83 ; WX 722 ; N S ; G 54 +U 84 ; WX 744 ; N T ; G 55 +U 85 ; WX 872 ; N U ; G 56 +U 86 ; WX 776 ; N V ; G 57 +U 87 ; WX 1123 ; N W ; G 58 +U 88 ; WX 776 ; N X ; G 59 +U 89 ; WX 714 ; N Y ; G 60 +U 90 ; WX 730 ; N Z ; G 61 +U 91 ; WX 473 ; N bracketleft ; G 62 +U 92 ; WX 365 ; N backslash ; G 63 +U 93 ; WX 473 ; N bracketright ; G 64 +U 94 ; WX 838 ; N asciicircum ; G 65 +U 95 ; WX 500 ; N underscore ; G 66 +U 96 ; WX 500 ; N grave ; G 67 +U 97 ; WX 648 ; N a ; G 68 +U 98 ; WX 699 ; N b ; G 69 +U 99 ; WX 609 ; N c ; G 70 +U 100 ; WX 699 ; N d ; G 71 +U 101 ; WX 636 ; N e ; G 72 +U 102 ; WX 430 ; N f ; G 73 +U 103 ; WX 699 ; N g ; G 74 +U 104 ; WX 727 ; N h ; G 75 +U 105 ; WX 380 ; N i ; G 76 +U 106 ; WX 362 ; N j ; G 77 +U 107 ; WX 693 ; N k ; G 78 +U 108 ; WX 380 ; N l ; G 79 +U 109 ; WX 1058 ; N m ; G 80 +U 110 ; WX 727 ; N n ; G 81 +U 111 ; WX 667 ; N o ; G 82 +U 112 ; WX 699 ; N p ; G 83 +U 113 ; WX 699 ; N q ; G 84 +U 114 ; WX 527 ; N r ; G 85 +U 115 ; WX 563 ; N s ; G 86 +U 116 ; WX 462 ; N t ; G 87 +U 117 ; WX 727 ; N u ; G 88 +U 118 ; WX 581 ; N v ; G 89 +U 119 ; WX 861 ; N w ; G 90 +U 120 ; WX 596 ; N x ; G 91 +U 121 ; WX 581 ; N y ; G 92 +U 122 ; WX 568 ; N z ; G 93 +U 123 ; WX 643 ; N braceleft ; G 94 +U 124 ; WX 364 ; N bar ; G 95 +U 125 ; WX 643 ; N braceright ; G 96 +U 126 ; WX 838 ; N asciitilde ; G 97 +U 160 ; WX 348 ; N nbspace ; G 98 +U 161 ; WX 439 ; N exclamdown ; G 99 +U 162 ; WX 696 ; N cent ; G 100 +U 163 ; WX 696 ; N sterling ; G 101 +U 164 ; WX 636 ; N currency ; G 102 +U 165 ; WX 696 ; N yen ; G 103 +U 166 ; WX 364 ; N brokenbar ; G 104 +U 167 ; WX 523 ; N section ; G 105 +U 168 ; WX 500 ; N dieresis ; G 106 +U 169 ; WX 1000 ; N copyright ; G 107 +U 170 ; WX 487 ; N ordfeminine ; G 108 +U 171 ; WX 625 ; N guillemotleft ; G 109 +U 172 ; WX 838 ; N logicalnot ; G 110 +U 173 ; WX 415 ; N sfthyphen ; G 111 +U 174 ; WX 1000 ; N registered ; G 112 +U 175 ; WX 500 ; N macron ; G 113 +U 176 ; WX 500 ; N degree ; G 114 +U 177 ; WX 838 ; N plusminus ; G 115 +U 178 ; WX 438 ; N twosuperior ; G 116 +U 179 ; WX 438 ; N threesuperior ; G 117 +U 180 ; WX 500 ; N acute ; G 118 +U 181 ; WX 732 ; N mu ; G 119 +U 182 ; WX 636 ; N paragraph ; G 120 +U 183 ; WX 348 ; N periodcentered ; G 121 +U 184 ; WX 500 ; N cedilla ; G 122 +U 185 ; WX 438 ; N onesuperior ; G 123 +U 186 ; WX 500 ; N ordmasculine ; G 124 +U 187 ; WX 625 ; N guillemotright ; G 125 +U 188 ; WX 1043 ; N onequarter ; G 126 +U 189 ; WX 1043 ; N onehalf ; G 127 +U 190 ; WX 1043 ; N threequarters ; G 128 +U 191 ; WX 586 ; N questiondown ; G 129 +U 192 ; WX 776 ; N Agrave ; G 130 +U 193 ; WX 776 ; N Aacute ; G 131 +U 194 ; WX 776 ; N Acircumflex ; G 132 +U 195 ; WX 776 ; N Atilde ; G 133 +U 196 ; WX 776 ; N Adieresis ; G 134 +U 197 ; WX 776 ; N Aring ; G 135 +U 198 ; WX 1034 ; N AE ; G 136 +U 199 ; WX 796 ; N Ccedilla ; G 137 +U 200 ; WX 762 ; N Egrave ; G 138 +U 201 ; WX 762 ; N Eacute ; G 139 +U 202 ; WX 762 ; N Ecircumflex ; G 140 +U 203 ; WX 762 ; N Edieresis ; G 141 +U 204 ; WX 468 ; N Igrave ; G 142 +U 205 ; WX 468 ; N Iacute ; G 143 +U 206 ; WX 468 ; N Icircumflex ; G 144 +U 207 ; WX 468 ; N Idieresis ; G 145 +U 208 ; WX 874 ; N Eth ; G 146 +U 209 ; WX 914 ; N Ntilde ; G 147 +U 210 ; WX 871 ; N Ograve ; G 148 +U 211 ; WX 871 ; N Oacute ; G 149 +U 212 ; WX 871 ; N Ocircumflex ; G 150 +U 213 ; WX 871 ; N Otilde ; G 151 +U 214 ; WX 871 ; N Odieresis ; G 152 +U 215 ; WX 838 ; N multiply ; G 153 +U 216 ; WX 871 ; N Oslash ; G 154 +U 217 ; WX 872 ; N Ugrave ; G 155 +U 218 ; WX 872 ; N Uacute ; G 156 +U 219 ; WX 872 ; N Ucircumflex ; G 157 +U 220 ; WX 872 ; N Udieresis ; G 158 +U 221 ; WX 714 ; N Yacute ; G 159 +U 222 ; WX 757 ; N Thorn ; G 160 +U 223 ; WX 760 ; N germandbls ; G 161 +U 224 ; WX 648 ; N agrave ; G 162 +U 225 ; WX 648 ; N aacute ; G 163 +U 226 ; WX 648 ; N acircumflex ; G 164 +U 227 ; WX 648 ; N atilde ; G 165 +U 228 ; WX 648 ; N adieresis ; G 166 +U 229 ; WX 648 ; N aring ; G 167 +U 230 ; WX 975 ; N ae ; G 168 +U 231 ; WX 609 ; N ccedilla ; G 169 +U 232 ; WX 636 ; N egrave ; G 170 +U 233 ; WX 636 ; N eacute ; G 171 +U 234 ; WX 636 ; N ecircumflex ; G 172 +U 235 ; WX 636 ; N edieresis ; G 173 +U 236 ; WX 380 ; N igrave ; G 174 +U 237 ; WX 380 ; N iacute ; G 175 +U 238 ; WX 380 ; N icircumflex ; G 176 +U 239 ; WX 380 ; N idieresis ; G 177 +U 240 ; WX 667 ; N eth ; G 178 +U 241 ; WX 727 ; N ntilde ; G 179 +U 242 ; WX 667 ; N ograve ; G 180 +U 243 ; WX 667 ; N oacute ; G 181 +U 244 ; WX 667 ; N ocircumflex ; G 182 +U 245 ; WX 667 ; N otilde ; G 183 +U 246 ; WX 667 ; N odieresis ; G 184 +U 247 ; WX 838 ; N divide ; G 185 +U 248 ; WX 667 ; N oslash ; G 186 +U 249 ; WX 727 ; N ugrave ; G 187 +U 250 ; WX 727 ; N uacute ; G 188 +U 251 ; WX 727 ; N ucircumflex ; G 189 +U 252 ; WX 727 ; N udieresis ; G 190 +U 253 ; WX 581 ; N yacute ; G 191 +U 254 ; WX 699 ; N thorn ; G 192 +U 255 ; WX 581 ; N ydieresis ; G 193 +U 256 ; WX 776 ; N Amacron ; G 194 +U 257 ; WX 648 ; N amacron ; G 195 +U 258 ; WX 776 ; N Abreve ; G 196 +U 259 ; WX 648 ; N abreve ; G 197 +U 260 ; WX 776 ; N Aogonek ; G 198 +U 261 ; WX 648 ; N aogonek ; G 199 +U 262 ; WX 796 ; N Cacute ; G 200 +U 263 ; WX 609 ; N cacute ; G 201 +U 264 ; WX 796 ; N Ccircumflex ; G 202 +U 265 ; WX 609 ; N ccircumflex ; G 203 +U 266 ; WX 796 ; N Cdotaccent ; G 204 +U 267 ; WX 609 ; N cdotaccent ; G 205 +U 268 ; WX 796 ; N Ccaron ; G 206 +U 269 ; WX 609 ; N ccaron ; G 207 +U 270 ; WX 867 ; N Dcaron ; G 208 +U 271 ; WX 699 ; N dcaron ; G 209 +U 272 ; WX 874 ; N Dcroat ; G 210 +U 273 ; WX 699 ; N dmacron ; G 211 +U 274 ; WX 762 ; N Emacron ; G 212 +U 275 ; WX 636 ; N emacron ; G 213 +U 276 ; WX 762 ; N Ebreve ; G 214 +U 277 ; WX 636 ; N ebreve ; G 215 +U 278 ; WX 762 ; N Edotaccent ; G 216 +U 279 ; WX 636 ; N edotaccent ; G 217 +U 280 ; WX 762 ; N Eogonek ; G 218 +U 281 ; WX 636 ; N eogonek ; G 219 +U 282 ; WX 762 ; N Ecaron ; G 220 +U 283 ; WX 636 ; N ecaron ; G 221 +U 284 ; WX 854 ; N Gcircumflex ; G 222 +U 285 ; WX 699 ; N gcircumflex ; G 223 +U 286 ; WX 854 ; N Gbreve ; G 224 +U 287 ; WX 699 ; N gbreve ; G 225 +U 288 ; WX 854 ; N Gdotaccent ; G 226 +U 289 ; WX 699 ; N gdotaccent ; G 227 +U 290 ; WX 854 ; N Gcommaaccent ; G 228 +U 291 ; WX 699 ; N gcommaaccent ; G 229 +U 292 ; WX 945 ; N Hcircumflex ; G 230 +U 293 ; WX 727 ; N hcircumflex ; G 231 +U 294 ; WX 945 ; N Hbar ; G 232 +U 295 ; WX 727 ; N hbar ; G 233 +U 296 ; WX 468 ; N Itilde ; G 234 +U 297 ; WX 380 ; N itilde ; G 235 +U 298 ; WX 468 ; N Imacron ; G 236 +U 299 ; WX 380 ; N imacron ; G 237 +U 300 ; WX 468 ; N Ibreve ; G 238 +U 301 ; WX 380 ; N ibreve ; G 239 +U 302 ; WX 468 ; N Iogonek ; G 240 +U 303 ; WX 380 ; N iogonek ; G 241 +U 304 ; WX 468 ; N Idot ; G 242 +U 305 ; WX 380 ; N dotlessi ; G 243 +U 306 ; WX 942 ; N IJ ; G 244 +U 307 ; WX 751 ; N ij ; G 245 +U 308 ; WX 473 ; N Jcircumflex ; G 246 +U 309 ; WX 362 ; N jcircumflex ; G 247 +U 310 ; WX 869 ; N Kcommaaccent ; G 248 +U 311 ; WX 693 ; N kcommaaccent ; G 249 +U 312 ; WX 693 ; N kgreenlandic ; G 250 +U 313 ; WX 703 ; N Lacute ; G 251 +U 314 ; WX 380 ; N lacute ; G 252 +U 315 ; WX 703 ; N Lcommaaccent ; G 253 +U 316 ; WX 380 ; N lcommaaccent ; G 254 +U 317 ; WX 703 ; N Lcaron ; G 255 +U 318 ; WX 380 ; N lcaron ; G 256 +U 319 ; WX 703 ; N Ldot ; G 257 +U 320 ; WX 380 ; N ldot ; G 258 +U 321 ; WX 710 ; N Lslash ; G 259 +U 322 ; WX 385 ; N lslash ; G 260 +U 323 ; WX 914 ; N Nacute ; G 261 +U 324 ; WX 727 ; N nacute ; G 262 +U 325 ; WX 914 ; N Ncommaaccent ; G 263 +U 326 ; WX 727 ; N ncommaaccent ; G 264 +U 327 ; WX 914 ; N Ncaron ; G 265 +U 328 ; WX 727 ; N ncaron ; G 266 +U 329 ; WX 1008 ; N napostrophe ; G 267 +U 330 ; WX 872 ; N Eng ; G 268 +U 331 ; WX 727 ; N eng ; G 269 +U 332 ; WX 871 ; N Omacron ; G 270 +U 333 ; WX 667 ; N omacron ; G 271 +U 334 ; WX 871 ; N Obreve ; G 272 +U 335 ; WX 667 ; N obreve ; G 273 +U 336 ; WX 871 ; N Ohungarumlaut ; G 274 +U 337 ; WX 667 ; N ohungarumlaut ; G 275 +U 338 ; WX 1180 ; N OE ; G 276 +U 339 ; WX 1028 ; N oe ; G 277 +U 340 ; WX 831 ; N Racute ; G 278 +U 341 ; WX 527 ; N racute ; G 279 +U 342 ; WX 831 ; N Rcommaaccent ; G 280 +U 343 ; WX 527 ; N rcommaaccent ; G 281 +U 344 ; WX 831 ; N Rcaron ; G 282 +U 345 ; WX 527 ; N rcaron ; G 283 +U 346 ; WX 722 ; N Sacute ; G 284 +U 347 ; WX 563 ; N sacute ; G 285 +U 348 ; WX 722 ; N Scircumflex ; G 286 +U 349 ; WX 563 ; N scircumflex ; G 287 +U 350 ; WX 722 ; N Scedilla ; G 288 +U 351 ; WX 563 ; N scedilla ; G 289 +U 352 ; WX 722 ; N Scaron ; G 290 +U 353 ; WX 563 ; N scaron ; G 291 +U 354 ; WX 744 ; N Tcommaaccent ; G 292 +U 355 ; WX 462 ; N tcommaaccent ; G 293 +U 356 ; WX 744 ; N Tcaron ; G 294 +U 357 ; WX 462 ; N tcaron ; G 295 +U 358 ; WX 744 ; N Tbar ; G 296 +U 359 ; WX 462 ; N tbar ; G 297 +U 360 ; WX 872 ; N Utilde ; G 298 +U 361 ; WX 727 ; N utilde ; G 299 +U 362 ; WX 872 ; N Umacron ; G 300 +U 363 ; WX 727 ; N umacron ; G 301 +U 364 ; WX 872 ; N Ubreve ; G 302 +U 365 ; WX 727 ; N ubreve ; G 303 +U 366 ; WX 872 ; N Uring ; G 304 +U 367 ; WX 727 ; N uring ; G 305 +U 368 ; WX 872 ; N Uhungarumlaut ; G 306 +U 369 ; WX 727 ; N uhungarumlaut ; G 307 +U 370 ; WX 872 ; N Uogonek ; G 308 +U 371 ; WX 727 ; N uogonek ; G 309 +U 372 ; WX 1123 ; N Wcircumflex ; G 310 +U 373 ; WX 861 ; N wcircumflex ; G 311 +U 374 ; WX 714 ; N Ycircumflex ; G 312 +U 375 ; WX 581 ; N ycircumflex ; G 313 +U 376 ; WX 714 ; N Ydieresis ; G 314 +U 377 ; WX 730 ; N Zacute ; G 315 +U 378 ; WX 568 ; N zacute ; G 316 +U 379 ; WX 730 ; N Zdotaccent ; G 317 +U 380 ; WX 568 ; N zdotaccent ; G 318 +U 381 ; WX 730 ; N Zcaron ; G 319 +U 382 ; WX 568 ; N zcaron ; G 320 +U 383 ; WX 430 ; N longs ; G 321 +U 384 ; WX 699 ; N uni0180 ; G 322 +U 385 ; WX 845 ; N uni0181 ; G 323 +U 386 ; WX 854 ; N uni0182 ; G 324 +U 387 ; WX 699 ; N uni0183 ; G 325 +U 388 ; WX 854 ; N uni0184 ; G 326 +U 389 ; WX 699 ; N uni0185 ; G 327 +U 390 ; WX 796 ; N uni0186 ; G 328 +U 391 ; WX 796 ; N uni0187 ; G 329 +U 392 ; WX 609 ; N uni0188 ; G 330 +U 393 ; WX 874 ; N uni0189 ; G 331 +U 394 ; WX 867 ; N uni018A ; G 332 +U 395 ; WX 854 ; N uni018B ; G 333 +U 396 ; WX 699 ; N uni018C ; G 334 +U 397 ; WX 667 ; N uni018D ; G 335 +U 398 ; WX 762 ; N uni018E ; G 336 +U 399 ; WX 871 ; N uni018F ; G 337 +U 400 ; WX 721 ; N uni0190 ; G 338 +U 401 ; WX 710 ; N uni0191 ; G 339 +U 402 ; WX 430 ; N florin ; G 340 +U 403 ; WX 854 ; N uni0193 ; G 341 +U 404 ; WX 771 ; N uni0194 ; G 342 +U 405 ; WX 1043 ; N uni0195 ; G 343 +U 406 ; WX 468 ; N uni0196 ; G 344 +U 407 ; WX 468 ; N uni0197 ; G 345 +U 408 ; WX 869 ; N uni0198 ; G 346 +U 409 ; WX 693 ; N uni0199 ; G 347 +U 410 ; WX 380 ; N uni019A ; G 348 +U 411 ; WX 701 ; N uni019B ; G 349 +U 412 ; WX 1058 ; N uni019C ; G 350 +U 413 ; WX 914 ; N uni019D ; G 351 +U 414 ; WX 727 ; N uni019E ; G 352 +U 415 ; WX 871 ; N uni019F ; G 353 +U 416 ; WX 871 ; N Ohorn ; G 354 +U 417 ; WX 667 ; N ohorn ; G 355 +U 418 ; WX 1200 ; N uni01A2 ; G 356 +U 419 ; WX 943 ; N uni01A3 ; G 357 +U 420 ; WX 752 ; N uni01A4 ; G 358 +U 421 ; WX 699 ; N uni01A5 ; G 359 +U 422 ; WX 831 ; N uni01A6 ; G 360 +U 423 ; WX 722 ; N uni01A7 ; G 361 +U 424 ; WX 563 ; N uni01A8 ; G 362 +U 425 ; WX 707 ; N uni01A9 ; G 363 +U 426 ; WX 331 ; N uni01AA ; G 364 +U 427 ; WX 462 ; N uni01AB ; G 365 +U 428 ; WX 744 ; N uni01AC ; G 366 +U 429 ; WX 462 ; N uni01AD ; G 367 +U 430 ; WX 744 ; N uni01AE ; G 368 +U 431 ; WX 872 ; N Uhorn ; G 369 +U 432 ; WX 727 ; N uhorn ; G 370 +U 433 ; WX 890 ; N uni01B1 ; G 371 +U 434 ; WX 890 ; N uni01B2 ; G 372 +U 435 ; WX 714 ; N uni01B3 ; G 373 +U 436 ; WX 708 ; N uni01B4 ; G 374 +U 437 ; WX 730 ; N uni01B5 ; G 375 +U 438 ; WX 568 ; N uni01B6 ; G 376 +U 439 ; WX 657 ; N uni01B7 ; G 377 +U 440 ; WX 657 ; N uni01B8 ; G 378 +U 441 ; WX 657 ; N uni01B9 ; G 379 +U 442 ; WX 657 ; N uni01BA ; G 380 +U 443 ; WX 696 ; N uni01BB ; G 381 +U 444 ; WX 754 ; N uni01BC ; G 382 +U 445 ; WX 568 ; N uni01BD ; G 383 +U 446 ; WX 536 ; N uni01BE ; G 384 +U 447 ; WX 716 ; N uni01BF ; G 385 +U 448 ; WX 295 ; N uni01C0 ; G 386 +U 449 ; WX 492 ; N uni01C1 ; G 387 +U 450 ; WX 459 ; N uni01C2 ; G 388 +U 451 ; WX 295 ; N uni01C3 ; G 389 +U 452 ; WX 1597 ; N uni01C4 ; G 390 +U 453 ; WX 1435 ; N uni01C5 ; G 391 +U 454 ; WX 1267 ; N uni01C6 ; G 392 +U 455 ; WX 1176 ; N uni01C7 ; G 393 +U 456 ; WX 1065 ; N uni01C8 ; G 394 +U 457 ; WX 742 ; N uni01C9 ; G 395 +U 458 ; WX 1387 ; N uni01CA ; G 396 +U 459 ; WX 1276 ; N uni01CB ; G 397 +U 460 ; WX 1089 ; N uni01CC ; G 398 +U 461 ; WX 776 ; N uni01CD ; G 399 +U 462 ; WX 648 ; N uni01CE ; G 400 +U 463 ; WX 468 ; N uni01CF ; G 401 +U 464 ; WX 380 ; N uni01D0 ; G 402 +U 465 ; WX 871 ; N uni01D1 ; G 403 +U 466 ; WX 667 ; N uni01D2 ; G 404 +U 467 ; WX 872 ; N uni01D3 ; G 405 +U 468 ; WX 727 ; N uni01D4 ; G 406 +U 469 ; WX 872 ; N uni01D5 ; G 407 +U 470 ; WX 727 ; N uni01D6 ; G 408 +U 471 ; WX 872 ; N uni01D7 ; G 409 +U 472 ; WX 727 ; N uni01D8 ; G 410 +U 473 ; WX 872 ; N uni01D9 ; G 411 +U 474 ; WX 727 ; N uni01DA ; G 412 +U 475 ; WX 872 ; N uni01DB ; G 413 +U 476 ; WX 727 ; N uni01DC ; G 414 +U 477 ; WX 636 ; N uni01DD ; G 415 +U 478 ; WX 776 ; N uni01DE ; G 416 +U 479 ; WX 648 ; N uni01DF ; G 417 +U 480 ; WX 776 ; N uni01E0 ; G 418 +U 481 ; WX 648 ; N uni01E1 ; G 419 +U 482 ; WX 1034 ; N uni01E2 ; G 420 +U 483 ; WX 975 ; N uni01E3 ; G 421 +U 484 ; WX 896 ; N uni01E4 ; G 422 +U 485 ; WX 699 ; N uni01E5 ; G 423 +U 486 ; WX 854 ; N Gcaron ; G 424 +U 487 ; WX 699 ; N gcaron ; G 425 +U 488 ; WX 869 ; N uni01E8 ; G 426 +U 489 ; WX 693 ; N uni01E9 ; G 427 +U 490 ; WX 871 ; N uni01EA ; G 428 +U 491 ; WX 667 ; N uni01EB ; G 429 +U 492 ; WX 871 ; N uni01EC ; G 430 +U 493 ; WX 667 ; N uni01ED ; G 431 +U 494 ; WX 657 ; N uni01EE ; G 432 +U 495 ; WX 568 ; N uni01EF ; G 433 +U 496 ; WX 380 ; N uni01F0 ; G 434 +U 497 ; WX 1597 ; N uni01F1 ; G 435 +U 498 ; WX 1435 ; N uni01F2 ; G 436 +U 499 ; WX 1267 ; N uni01F3 ; G 437 +U 500 ; WX 854 ; N uni01F4 ; G 438 +U 501 ; WX 699 ; N uni01F5 ; G 439 +U 502 ; WX 1221 ; N uni01F6 ; G 440 +U 503 ; WX 787 ; N uni01F7 ; G 441 +U 504 ; WX 914 ; N uni01F8 ; G 442 +U 505 ; WX 727 ; N uni01F9 ; G 443 +U 506 ; WX 776 ; N Aringacute ; G 444 +U 507 ; WX 648 ; N aringacute ; G 445 +U 508 ; WX 1034 ; N AEacute ; G 446 +U 509 ; WX 975 ; N aeacute ; G 447 +U 510 ; WX 871 ; N Oslashacute ; G 448 +U 511 ; WX 667 ; N oslashacute ; G 449 +U 512 ; WX 776 ; N uni0200 ; G 450 +U 513 ; WX 648 ; N uni0201 ; G 451 +U 514 ; WX 776 ; N uni0202 ; G 452 +U 515 ; WX 648 ; N uni0203 ; G 453 +U 516 ; WX 762 ; N uni0204 ; G 454 +U 517 ; WX 636 ; N uni0205 ; G 455 +U 518 ; WX 762 ; N uni0206 ; G 456 +U 519 ; WX 636 ; N uni0207 ; G 457 +U 520 ; WX 468 ; N uni0208 ; G 458 +U 521 ; WX 380 ; N uni0209 ; G 459 +U 522 ; WX 468 ; N uni020A ; G 460 +U 523 ; WX 380 ; N uni020B ; G 461 +U 524 ; WX 871 ; N uni020C ; G 462 +U 525 ; WX 667 ; N uni020D ; G 463 +U 526 ; WX 871 ; N uni020E ; G 464 +U 527 ; WX 667 ; N uni020F ; G 465 +U 528 ; WX 831 ; N uni0210 ; G 466 +U 529 ; WX 527 ; N uni0211 ; G 467 +U 530 ; WX 831 ; N uni0212 ; G 468 +U 531 ; WX 527 ; N uni0213 ; G 469 +U 532 ; WX 872 ; N uni0214 ; G 470 +U 533 ; WX 727 ; N uni0215 ; G 471 +U 534 ; WX 872 ; N uni0216 ; G 472 +U 535 ; WX 727 ; N uni0217 ; G 473 +U 536 ; WX 722 ; N Scommaaccent ; G 474 +U 537 ; WX 563 ; N scommaaccent ; G 475 +U 538 ; WX 744 ; N uni021A ; G 476 +U 539 ; WX 462 ; N uni021B ; G 477 +U 540 ; WX 690 ; N uni021C ; G 478 +U 541 ; WX 607 ; N uni021D ; G 479 +U 542 ; WX 945 ; N uni021E ; G 480 +U 543 ; WX 727 ; N uni021F ; G 481 +U 544 ; WX 872 ; N uni0220 ; G 482 +U 545 ; WX 791 ; N uni0221 ; G 483 +U 546 ; WX 703 ; N uni0222 ; G 484 +U 547 ; WX 616 ; N uni0223 ; G 485 +U 548 ; WX 730 ; N uni0224 ; G 486 +U 549 ; WX 568 ; N uni0225 ; G 487 +U 550 ; WX 776 ; N uni0226 ; G 488 +U 551 ; WX 648 ; N uni0227 ; G 489 +U 552 ; WX 762 ; N uni0228 ; G 490 +U 553 ; WX 636 ; N uni0229 ; G 491 +U 554 ; WX 871 ; N uni022A ; G 492 +U 555 ; WX 667 ; N uni022B ; G 493 +U 556 ; WX 871 ; N uni022C ; G 494 +U 557 ; WX 667 ; N uni022D ; G 495 +U 558 ; WX 871 ; N uni022E ; G 496 +U 559 ; WX 667 ; N uni022F ; G 497 +U 560 ; WX 871 ; N uni0230 ; G 498 +U 561 ; WX 667 ; N uni0231 ; G 499 +U 562 ; WX 714 ; N uni0232 ; G 500 +U 563 ; WX 581 ; N uni0233 ; G 501 +U 564 ; WX 573 ; N uni0234 ; G 502 +U 565 ; WX 922 ; N uni0235 ; G 503 +U 566 ; WX 564 ; N uni0236 ; G 504 +U 567 ; WX 362 ; N dotlessj ; G 505 +U 568 ; WX 1031 ; N uni0238 ; G 506 +U 569 ; WX 1031 ; N uni0239 ; G 507 +U 570 ; WX 776 ; N uni023A ; G 508 +U 571 ; WX 796 ; N uni023B ; G 509 +U 572 ; WX 609 ; N uni023C ; G 510 +U 573 ; WX 703 ; N uni023D ; G 511 +U 574 ; WX 744 ; N uni023E ; G 512 +U 575 ; WX 563 ; N uni023F ; G 513 +U 576 ; WX 568 ; N uni0240 ; G 514 +U 577 ; WX 660 ; N uni0241 ; G 515 +U 578 ; WX 547 ; N uni0242 ; G 516 +U 579 ; WX 845 ; N uni0243 ; G 517 +U 580 ; WX 872 ; N uni0244 ; G 518 +U 581 ; WX 776 ; N uni0245 ; G 519 +U 582 ; WX 762 ; N uni0246 ; G 520 +U 583 ; WX 636 ; N uni0247 ; G 521 +U 584 ; WX 473 ; N uni0248 ; G 522 +U 585 ; WX 387 ; N uni0249 ; G 523 +U 586 ; WX 848 ; N uni024A ; G 524 +U 587 ; WX 699 ; N uni024B ; G 525 +U 588 ; WX 831 ; N uni024C ; G 526 +U 589 ; WX 527 ; N uni024D ; G 527 +U 590 ; WX 714 ; N uni024E ; G 528 +U 591 ; WX 581 ; N uni024F ; G 529 +U 592 ; WX 648 ; N uni0250 ; G 530 +U 593 ; WX 699 ; N uni0251 ; G 531 +U 594 ; WX 699 ; N uni0252 ; G 532 +U 595 ; WX 699 ; N uni0253 ; G 533 +U 596 ; WX 609 ; N uni0254 ; G 534 +U 597 ; WX 609 ; N uni0255 ; G 535 +U 598 ; WX 699 ; N uni0256 ; G 536 +U 599 ; WX 730 ; N uni0257 ; G 537 +U 600 ; WX 636 ; N uni0258 ; G 538 +U 601 ; WX 636 ; N uni0259 ; G 539 +U 602 ; WX 907 ; N uni025A ; G 540 +U 603 ; WX 608 ; N uni025B ; G 541 +U 604 ; WX 562 ; N uni025C ; G 542 +U 605 ; WX 907 ; N uni025D ; G 543 +U 606 ; WX 714 ; N uni025E ; G 544 +U 607 ; WX 387 ; N uni025F ; G 545 +U 608 ; WX 699 ; N uni0260 ; G 546 +U 609 ; WX 699 ; N uni0261 ; G 547 +U 610 ; WX 638 ; N uni0262 ; G 548 +U 611 ; WX 601 ; N uni0263 ; G 549 +U 612 ; WX 627 ; N uni0264 ; G 550 +U 613 ; WX 727 ; N uni0265 ; G 551 +U 614 ; WX 727 ; N uni0266 ; G 552 +U 615 ; WX 727 ; N uni0267 ; G 553 +U 616 ; WX 380 ; N uni0268 ; G 554 +U 617 ; WX 380 ; N uni0269 ; G 555 +U 618 ; WX 380 ; N uni026A ; G 556 +U 619 ; WX 409 ; N uni026B ; G 557 +U 620 ; WX 514 ; N uni026C ; G 558 +U 621 ; WX 380 ; N uni026D ; G 559 +U 622 ; WX 795 ; N uni026E ; G 560 +U 623 ; WX 1058 ; N uni026F ; G 561 +U 624 ; WX 1058 ; N uni0270 ; G 562 +U 625 ; WX 1058 ; N uni0271 ; G 563 +U 626 ; WX 727 ; N uni0272 ; G 564 +U 627 ; WX 727 ; N uni0273 ; G 565 +U 628 ; WX 712 ; N uni0274 ; G 566 +U 629 ; WX 667 ; N uni0275 ; G 567 +U 630 ; WX 1061 ; N uni0276 ; G 568 +U 631 ; WX 944 ; N uni0277 ; G 569 +U 632 ; WX 797 ; N uni0278 ; G 570 +U 633 ; WX 571 ; N uni0279 ; G 571 +U 634 ; WX 571 ; N uni027A ; G 572 +U 635 ; WX 571 ; N uni027B ; G 573 +U 636 ; WX 527 ; N uni027C ; G 574 +U 637 ; WX 527 ; N uni027D ; G 575 +U 638 ; WX 452 ; N uni027E ; G 576 +U 639 ; WX 487 ; N uni027F ; G 577 +U 640 ; WX 694 ; N uni0280 ; G 578 +U 641 ; WX 694 ; N uni0281 ; G 579 +U 642 ; WX 563 ; N uni0282 ; G 580 +U 643 ; WX 331 ; N uni0283 ; G 581 +U 644 ; WX 430 ; N uni0284 ; G 582 +U 645 ; WX 540 ; N uni0285 ; G 583 +U 646 ; WX 331 ; N uni0286 ; G 584 +U 647 ; WX 492 ; N uni0287 ; G 585 +U 648 ; WX 462 ; N uni0288 ; G 586 +U 649 ; WX 727 ; N uni0289 ; G 587 +U 650 ; WX 679 ; N uni028A ; G 588 +U 651 ; WX 694 ; N uni028B ; G 589 +U 652 ; WX 641 ; N uni028C ; G 590 +U 653 ; WX 907 ; N uni028D ; G 591 +U 654 ; WX 635 ; N uni028E ; G 592 +U 655 ; WX 727 ; N uni028F ; G 593 +U 656 ; WX 568 ; N uni0290 ; G 594 +U 657 ; WX 568 ; N uni0291 ; G 595 +U 658 ; WX 568 ; N uni0292 ; G 596 +U 659 ; WX 568 ; N uni0293 ; G 597 +U 660 ; WX 551 ; N uni0294 ; G 598 +U 661 ; WX 551 ; N uni0295 ; G 599 +U 662 ; WX 551 ; N uni0296 ; G 600 +U 663 ; WX 545 ; N uni0297 ; G 601 +U 664 ; WX 871 ; N uni0298 ; G 602 +U 665 ; WX 695 ; N uni0299 ; G 603 +U 666 ; WX 714 ; N uni029A ; G 604 +U 667 ; WX 689 ; N uni029B ; G 605 +U 668 ; WX 732 ; N uni029C ; G 606 +U 669 ; WX 384 ; N uni029D ; G 607 +U 670 ; WX 740 ; N uni029E ; G 608 +U 671 ; WX 617 ; N uni029F ; G 609 +U 672 ; WX 699 ; N uni02A0 ; G 610 +U 673 ; WX 551 ; N uni02A1 ; G 611 +U 674 ; WX 551 ; N uni02A2 ; G 612 +U 675 ; WX 1117 ; N uni02A3 ; G 613 +U 676 ; WX 1179 ; N uni02A4 ; G 614 +U 677 ; WX 1117 ; N uni02A5 ; G 615 +U 678 ; WX 938 ; N uni02A6 ; G 616 +U 679 ; WX 715 ; N uni02A7 ; G 617 +U 680 ; WX 946 ; N uni02A8 ; G 618 +U 681 ; WX 1039 ; N uni02A9 ; G 619 +U 682 ; WX 870 ; N uni02AA ; G 620 +U 683 ; WX 795 ; N uni02AB ; G 621 +U 684 ; WX 662 ; N uni02AC ; G 622 +U 685 ; WX 443 ; N uni02AD ; G 623 +U 686 ; WX 613 ; N uni02AE ; G 624 +U 687 ; WX 717 ; N uni02AF ; G 625 +U 688 ; WX 521 ; N uni02B0 ; G 626 +U 689 ; WX 519 ; N uni02B1 ; G 627 +U 690 ; WX 313 ; N uni02B2 ; G 628 +U 691 ; WX 414 ; N uni02B3 ; G 629 +U 692 ; WX 414 ; N uni02B4 ; G 630 +U 693 ; WX 480 ; N uni02B5 ; G 631 +U 694 ; WX 527 ; N uni02B6 ; G 632 +U 695 ; WX 662 ; N uni02B7 ; G 633 +U 696 ; WX 485 ; N uni02B8 ; G 634 +U 697 ; WX 302 ; N uni02B9 ; G 635 +U 698 ; WX 521 ; N uni02BA ; G 636 +U 699 ; WX 348 ; N uni02BB ; G 637 +U 700 ; WX 348 ; N uni02BC ; G 638 +U 701 ; WX 348 ; N uni02BD ; G 639 +U 702 ; WX 366 ; N uni02BE ; G 640 +U 703 ; WX 366 ; N uni02BF ; G 641 +U 704 ; WX 313 ; N uni02C0 ; G 642 +U 705 ; WX 313 ; N uni02C1 ; G 643 +U 706 ; WX 500 ; N uni02C2 ; G 644 +U 707 ; WX 500 ; N uni02C3 ; G 645 +U 708 ; WX 500 ; N uni02C4 ; G 646 +U 709 ; WX 500 ; N uni02C5 ; G 647 +U 710 ; WX 500 ; N circumflex ; G 648 +U 711 ; WX 500 ; N caron ; G 649 +U 712 ; WX 282 ; N uni02C8 ; G 650 +U 713 ; WX 500 ; N uni02C9 ; G 651 +U 714 ; WX 500 ; N uni02CA ; G 652 +U 715 ; WX 500 ; N uni02CB ; G 653 +U 716 ; WX 282 ; N uni02CC ; G 654 +U 717 ; WX 500 ; N uni02CD ; G 655 +U 720 ; WX 369 ; N uni02D0 ; G 656 +U 721 ; WX 369 ; N uni02D1 ; G 657 +U 722 ; WX 366 ; N uni02D2 ; G 658 +U 723 ; WX 366 ; N uni02D3 ; G 659 +U 726 ; WX 392 ; N uni02D6 ; G 660 +U 727 ; WX 392 ; N uni02D7 ; G 661 +U 728 ; WX 500 ; N breve ; G 662 +U 729 ; WX 500 ; N dotaccent ; G 663 +U 730 ; WX 500 ; N ring ; G 664 +U 731 ; WX 500 ; N ogonek ; G 665 +U 732 ; WX 500 ; N tilde ; G 666 +U 733 ; WX 500 ; N hungarumlaut ; G 667 +U 734 ; WX 417 ; N uni02DE ; G 668 +U 736 ; WX 378 ; N uni02E0 ; G 669 +U 737 ; WX 292 ; N uni02E1 ; G 670 +U 738 ; WX 395 ; N uni02E2 ; G 671 +U 739 ; WX 475 ; N uni02E3 ; G 672 +U 740 ; WX 313 ; N uni02E4 ; G 673 +U 741 ; WX 500 ; N uni02E5 ; G 674 +U 742 ; WX 500 ; N uni02E6 ; G 675 +U 743 ; WX 500 ; N uni02E7 ; G 676 +U 744 ; WX 500 ; N uni02E8 ; G 677 +U 745 ; WX 500 ; N uni02E9 ; G 678 +U 748 ; WX 500 ; N uni02EC ; G 679 +U 750 ; WX 553 ; N uni02EE ; G 680 +U 751 ; WX 500 ; N uni02EF ; G 681 +U 752 ; WX 500 ; N uni02F0 ; G 682 +U 755 ; WX 500 ; N uni02F3 ; G 683 +U 759 ; WX 500 ; N uni02F7 ; G 684 +U 768 ; WX 0 ; N gravecomb ; G 685 +U 769 ; WX 0 ; N acutecomb ; G 686 +U 770 ; WX 0 ; N uni0302 ; G 687 +U 771 ; WX 0 ; N tildecomb ; G 688 +U 772 ; WX 0 ; N uni0304 ; G 689 +U 773 ; WX 0 ; N uni0305 ; G 690 +U 774 ; WX 0 ; N uni0306 ; G 691 +U 775 ; WX 0 ; N uni0307 ; G 692 +U 776 ; WX 0 ; N uni0308 ; G 693 +U 777 ; WX 0 ; N hookabovecomb ; G 694 +U 778 ; WX 0 ; N uni030A ; G 695 +U 779 ; WX 0 ; N uni030B ; G 696 +U 780 ; WX 0 ; N uni030C ; G 697 +U 781 ; WX 0 ; N uni030D ; G 698 +U 782 ; WX 0 ; N uni030E ; G 699 +U 783 ; WX 0 ; N uni030F ; G 700 +U 784 ; WX 0 ; N uni0310 ; G 701 +U 785 ; WX 0 ; N uni0311 ; G 702 +U 786 ; WX 0 ; N uni0312 ; G 703 +U 787 ; WX 0 ; N uni0313 ; G 704 +U 788 ; WX 0 ; N uni0314 ; G 705 +U 789 ; WX 0 ; N uni0315 ; G 706 +U 790 ; WX 0 ; N uni0316 ; G 707 +U 791 ; WX 0 ; N uni0317 ; G 708 +U 792 ; WX 0 ; N uni0318 ; G 709 +U 793 ; WX 0 ; N uni0319 ; G 710 +U 794 ; WX 0 ; N uni031A ; G 711 +U 795 ; WX 0 ; N uni031B ; G 712 +U 796 ; WX 0 ; N uni031C ; G 713 +U 797 ; WX 0 ; N uni031D ; G 714 +U 798 ; WX 0 ; N uni031E ; G 715 +U 799 ; WX 0 ; N uni031F ; G 716 +U 800 ; WX 0 ; N uni0320 ; G 717 +U 801 ; WX 0 ; N uni0321 ; G 718 +U 802 ; WX 0 ; N uni0322 ; G 719 +U 803 ; WX 0 ; N dotbelowcomb ; G 720 +U 804 ; WX 0 ; N uni0324 ; G 721 +U 805 ; WX 0 ; N uni0325 ; G 722 +U 806 ; WX 0 ; N uni0326 ; G 723 +U 807 ; WX 0 ; N uni0327 ; G 724 +U 808 ; WX 0 ; N uni0328 ; G 725 +U 809 ; WX 0 ; N uni0329 ; G 726 +U 810 ; WX 0 ; N uni032A ; G 727 +U 811 ; WX 0 ; N uni032B ; G 728 +U 812 ; WX 0 ; N uni032C ; G 729 +U 813 ; WX 0 ; N uni032D ; G 730 +U 814 ; WX 0 ; N uni032E ; G 731 +U 815 ; WX 0 ; N uni032F ; G 732 +U 816 ; WX 0 ; N uni0330 ; G 733 +U 817 ; WX 0 ; N uni0331 ; G 734 +U 818 ; WX 0 ; N uni0332 ; G 735 +U 819 ; WX 0 ; N uni0333 ; G 736 +U 820 ; WX 0 ; N uni0334 ; G 737 +U 821 ; WX 0 ; N uni0335 ; G 738 +U 822 ; WX 0 ; N uni0336 ; G 739 +U 823 ; WX 0 ; N uni0337 ; G 740 +U 824 ; WX 0 ; N uni0338 ; G 741 +U 825 ; WX 0 ; N uni0339 ; G 742 +U 826 ; WX 0 ; N uni033A ; G 743 +U 827 ; WX 0 ; N uni033B ; G 744 +U 828 ; WX 0 ; N uni033C ; G 745 +U 829 ; WX 0 ; N uni033D ; G 746 +U 830 ; WX 0 ; N uni033E ; G 747 +U 831 ; WX 0 ; N uni033F ; G 748 +U 835 ; WX 0 ; N uni0343 ; G 749 +U 847 ; WX 0 ; N uni034F ; G 750 +U 856 ; WX 0 ; N uni0358 ; G 751 +U 864 ; WX 0 ; N uni0360 ; G 752 +U 865 ; WX 0 ; N uni0361 ; G 753 +U 880 ; WX 779 ; N uni0370 ; G 754 +U 881 ; WX 576 ; N uni0371 ; G 755 +U 882 ; WX 803 ; N uni0372 ; G 756 +U 883 ; WX 777 ; N uni0373 ; G 757 +U 884 ; WX 302 ; N uni0374 ; G 758 +U 885 ; WX 302 ; N uni0375 ; G 759 +U 886 ; WX 963 ; N uni0376 ; G 760 +U 887 ; WX 737 ; N uni0377 ; G 761 +U 890 ; WX 500 ; N uni037A ; G 762 +U 891 ; WX 609 ; N uni037B ; G 763 +U 892 ; WX 609 ; N uni037C ; G 764 +U 893 ; WX 609 ; N uni037D ; G 765 +U 894 ; WX 369 ; N uni037E ; G 766 +U 895 ; WX 473 ; N uni037F ; G 767 +U 900 ; WX 500 ; N tonos ; G 768 +U 901 ; WX 500 ; N dieresistonos ; G 769 +U 902 ; WX 776 ; N Alphatonos ; G 770 +U 903 ; WX 348 ; N anoteleia ; G 771 +U 904 ; WX 947 ; N Epsilontonos ; G 772 +U 905 ; WX 1118 ; N Etatonos ; G 773 +U 906 ; WX 662 ; N Iotatonos ; G 774 +U 908 ; WX 887 ; N Omicrontonos ; G 775 +U 910 ; WX 953 ; N Upsilontonos ; G 776 +U 911 ; WX 911 ; N Omegatonos ; G 777 +U 912 ; WX 484 ; N iotadieresistonos ; G 778 +U 913 ; WX 776 ; N Alpha ; G 779 +U 914 ; WX 845 ; N Beta ; G 780 +U 915 ; WX 710 ; N Gamma ; G 781 +U 916 ; WX 776 ; N uni0394 ; G 782 +U 917 ; WX 762 ; N Epsilon ; G 783 +U 918 ; WX 730 ; N Zeta ; G 784 +U 919 ; WX 945 ; N Eta ; G 785 +U 920 ; WX 871 ; N Theta ; G 786 +U 921 ; WX 468 ; N Iota ; G 787 +U 922 ; WX 869 ; N Kappa ; G 788 +U 923 ; WX 776 ; N Lambda ; G 789 +U 924 ; WX 1107 ; N Mu ; G 790 +U 925 ; WX 914 ; N Nu ; G 791 +U 926 ; WX 704 ; N Xi ; G 792 +U 927 ; WX 871 ; N Omicron ; G 793 +U 928 ; WX 944 ; N Pi ; G 794 +U 929 ; WX 752 ; N Rho ; G 795 +U 931 ; WX 707 ; N Sigma ; G 796 +U 932 ; WX 744 ; N Tau ; G 797 +U 933 ; WX 714 ; N Upsilon ; G 798 +U 934 ; WX 871 ; N Phi ; G 799 +U 935 ; WX 776 ; N Chi ; G 800 +U 936 ; WX 913 ; N Psi ; G 801 +U 937 ; WX 890 ; N Omega ; G 802 +U 938 ; WX 468 ; N Iotadieresis ; G 803 +U 939 ; WX 714 ; N Upsilondieresis ; G 804 +U 940 ; WX 770 ; N alphatonos ; G 805 +U 941 ; WX 608 ; N epsilontonos ; G 806 +U 942 ; WX 727 ; N etatonos ; G 807 +U 943 ; WX 484 ; N iotatonos ; G 808 +U 944 ; WX 694 ; N upsilondieresistonos ; G 809 +U 945 ; WX 770 ; N alpha ; G 810 +U 946 ; WX 664 ; N beta ; G 811 +U 947 ; WX 660 ; N gamma ; G 812 +U 948 ; WX 667 ; N delta ; G 813 +U 949 ; WX 608 ; N epsilon ; G 814 +U 950 ; WX 592 ; N zeta ; G 815 +U 951 ; WX 727 ; N eta ; G 816 +U 952 ; WX 667 ; N theta ; G 817 +U 953 ; WX 484 ; N iota ; G 818 +U 954 ; WX 750 ; N kappa ; G 819 +U 955 ; WX 701 ; N lambda ; G 820 +U 956 ; WX 732 ; N uni03BC ; G 821 +U 957 ; WX 694 ; N nu ; G 822 +U 958 ; WX 592 ; N xi ; G 823 +U 959 ; WX 667 ; N omicron ; G 824 +U 960 ; WX 732 ; N pi ; G 825 +U 961 ; WX 665 ; N rho ; G 826 +U 962 ; WX 609 ; N sigma1 ; G 827 +U 963 ; WX 737 ; N sigma ; G 828 +U 964 ; WX 673 ; N tau ; G 829 +U 965 ; WX 694 ; N upsilon ; G 830 +U 966 ; WX 905 ; N phi ; G 831 +U 967 ; WX 658 ; N chi ; G 832 +U 968 ; WX 941 ; N psi ; G 833 +U 969 ; WX 952 ; N omega ; G 834 +U 970 ; WX 484 ; N iotadieresis ; G 835 +U 971 ; WX 694 ; N upsilondieresis ; G 836 +U 972 ; WX 667 ; N omicrontonos ; G 837 +U 973 ; WX 694 ; N upsilontonos ; G 838 +U 974 ; WX 952 ; N omegatonos ; G 839 +U 975 ; WX 869 ; N uni03CF ; G 840 +U 976 ; WX 667 ; N uni03D0 ; G 841 +U 977 ; WX 849 ; N theta1 ; G 842 +U 978 ; WX 764 ; N Upsilon1 ; G 843 +U 979 ; WX 969 ; N uni03D3 ; G 844 +U 980 ; WX 764 ; N uni03D4 ; G 845 +U 981 ; WX 941 ; N phi1 ; G 846 +U 982 ; WX 952 ; N omega1 ; G 847 +U 983 ; WX 655 ; N uni03D7 ; G 848 +U 984 ; WX 871 ; N uni03D8 ; G 849 +U 985 ; WX 667 ; N uni03D9 ; G 850 +U 986 ; WX 796 ; N uni03DA ; G 851 +U 987 ; WX 609 ; N uni03DB ; G 852 +U 988 ; WX 710 ; N uni03DC ; G 853 +U 989 ; WX 527 ; N uni03DD ; G 854 +U 990 ; WX 590 ; N uni03DE ; G 855 +U 991 ; WX 660 ; N uni03DF ; G 856 +U 992 ; WX 796 ; N uni03E0 ; G 857 +U 993 ; WX 667 ; N uni03E1 ; G 858 +U 1008 ; WX 655 ; N uni03F0 ; G 859 +U 1009 ; WX 665 ; N uni03F1 ; G 860 +U 1010 ; WX 609 ; N uni03F2 ; G 861 +U 1011 ; WX 362 ; N uni03F3 ; G 862 +U 1012 ; WX 871 ; N uni03F4 ; G 863 +U 1013 ; WX 609 ; N uni03F5 ; G 864 +U 1014 ; WX 609 ; N uni03F6 ; G 865 +U 1015 ; WX 757 ; N uni03F7 ; G 866 +U 1016 ; WX 699 ; N uni03F8 ; G 867 +U 1017 ; WX 796 ; N uni03F9 ; G 868 +U 1018 ; WX 1107 ; N uni03FA ; G 869 +U 1019 ; WX 860 ; N uni03FB ; G 870 +U 1020 ; WX 692 ; N uni03FC ; G 871 +U 1021 ; WX 796 ; N uni03FD ; G 872 +U 1022 ; WX 796 ; N uni03FE ; G 873 +U 1023 ; WX 796 ; N uni03FF ; G 874 +U 1024 ; WX 762 ; N uni0400 ; G 875 +U 1025 ; WX 762 ; N uni0401 ; G 876 +U 1026 ; WX 901 ; N uni0402 ; G 877 +U 1027 ; WX 690 ; N uni0403 ; G 878 +U 1028 ; WX 795 ; N uni0404 ; G 879 +U 1029 ; WX 722 ; N uni0405 ; G 880 +U 1030 ; WX 468 ; N uni0406 ; G 881 +U 1031 ; WX 468 ; N uni0407 ; G 882 +U 1032 ; WX 473 ; N uni0408 ; G 883 +U 1033 ; WX 1202 ; N uni0409 ; G 884 +U 1034 ; WX 1262 ; N uni040A ; G 885 +U 1035 ; WX 963 ; N uni040B ; G 886 +U 1036 ; WX 910 ; N uni040C ; G 887 +U 1037 ; WX 945 ; N uni040D ; G 888 +U 1038 ; WX 812 ; N uni040E ; G 889 +U 1039 ; WX 945 ; N uni040F ; G 890 +U 1040 ; WX 814 ; N uni0410 ; G 891 +U 1041 ; WX 854 ; N uni0411 ; G 892 +U 1042 ; WX 845 ; N uni0412 ; G 893 +U 1043 ; WX 690 ; N uni0413 ; G 894 +U 1044 ; WX 889 ; N uni0414 ; G 895 +U 1045 ; WX 762 ; N uni0415 ; G 896 +U 1046 ; WX 1312 ; N uni0416 ; G 897 +U 1047 ; WX 721 ; N uni0417 ; G 898 +U 1048 ; WX 945 ; N uni0418 ; G 899 +U 1049 ; WX 945 ; N uni0419 ; G 900 +U 1050 ; WX 910 ; N uni041A ; G 901 +U 1051 ; WX 884 ; N uni041B ; G 902 +U 1052 ; WX 1107 ; N uni041C ; G 903 +U 1053 ; WX 945 ; N uni041D ; G 904 +U 1054 ; WX 871 ; N uni041E ; G 905 +U 1055 ; WX 944 ; N uni041F ; G 906 +U 1056 ; WX 752 ; N uni0420 ; G 907 +U 1057 ; WX 796 ; N uni0421 ; G 908 +U 1058 ; WX 744 ; N uni0422 ; G 909 +U 1059 ; WX 812 ; N uni0423 ; G 910 +U 1060 ; WX 949 ; N uni0424 ; G 911 +U 1061 ; WX 776 ; N uni0425 ; G 912 +U 1062 ; WX 966 ; N uni0426 ; G 913 +U 1063 ; WX 913 ; N uni0427 ; G 914 +U 1064 ; WX 1268 ; N uni0428 ; G 915 +U 1065 ; WX 1293 ; N uni0429 ; G 916 +U 1066 ; WX 957 ; N uni042A ; G 917 +U 1067 ; WX 1202 ; N uni042B ; G 918 +U 1068 ; WX 825 ; N uni042C ; G 919 +U 1069 ; WX 795 ; N uni042D ; G 920 +U 1070 ; WX 1287 ; N uni042E ; G 921 +U 1071 ; WX 882 ; N uni042F ; G 922 +U 1072 ; WX 648 ; N uni0430 ; G 923 +U 1073 ; WX 667 ; N uni0431 ; G 924 +U 1074 ; WX 695 ; N uni0432 ; G 925 +U 1075 ; WX 613 ; N uni0433 ; G 926 +U 1076 ; WX 667 ; N uni0434 ; G 927 +U 1077 ; WX 636 ; N uni0435 ; G 928 +U 1078 ; WX 1010 ; N uni0436 ; G 929 +U 1079 ; WX 638 ; N uni0437 ; G 930 +U 1080 ; WX 742 ; N uni0438 ; G 931 +U 1081 ; WX 742 ; N uni0439 ; G 932 +U 1082 ; WX 722 ; N uni043A ; G 933 +U 1083 ; WX 705 ; N uni043B ; G 934 +U 1084 ; WX 869 ; N uni043C ; G 935 +U 1085 ; WX 732 ; N uni043D ; G 936 +U 1086 ; WX 667 ; N uni043E ; G 937 +U 1087 ; WX 732 ; N uni043F ; G 938 +U 1088 ; WX 699 ; N uni0440 ; G 939 +U 1089 ; WX 609 ; N uni0441 ; G 940 +U 1090 ; WX 620 ; N uni0442 ; G 941 +U 1091 ; WX 640 ; N uni0443 ; G 942 +U 1092 ; WX 902 ; N uni0444 ; G 943 +U 1093 ; WX 596 ; N uni0445 ; G 944 +U 1094 ; WX 739 ; N uni0446 ; G 945 +U 1095 ; WX 732 ; N uni0447 ; G 946 +U 1096 ; WX 1075 ; N uni0448 ; G 947 +U 1097 ; WX 1082 ; N uni0449 ; G 948 +U 1098 ; WX 767 ; N uni044A ; G 949 +U 1099 ; WX 1002 ; N uni044B ; G 950 +U 1100 ; WX 679 ; N uni044C ; G 951 +U 1101 ; WX 609 ; N uni044D ; G 952 +U 1102 ; WX 1025 ; N uni044E ; G 953 +U 1103 ; WX 739 ; N uni044F ; G 954 +U 1104 ; WX 636 ; N uni0450 ; G 955 +U 1105 ; WX 636 ; N uni0451 ; G 956 +U 1106 ; WX 719 ; N uni0452 ; G 957 +U 1107 ; WX 613 ; N uni0453 ; G 958 +U 1108 ; WX 609 ; N uni0454 ; G 959 +U 1109 ; WX 563 ; N uni0455 ; G 960 +U 1110 ; WX 380 ; N uni0456 ; G 961 +U 1111 ; WX 380 ; N uni0457 ; G 962 +U 1112 ; WX 362 ; N uni0458 ; G 963 +U 1113 ; WX 988 ; N uni0459 ; G 964 +U 1114 ; WX 1015 ; N uni045A ; G 965 +U 1115 ; WX 727 ; N uni045B ; G 966 +U 1116 ; WX 722 ; N uni045C ; G 967 +U 1117 ; WX 742 ; N uni045D ; G 968 +U 1118 ; WX 640 ; N uni045E ; G 969 +U 1119 ; WX 732 ; N uni045F ; G 970 +U 1122 ; WX 880 ; N uni0462 ; G 971 +U 1123 ; WX 703 ; N uni0463 ; G 972 +U 1124 ; WX 1195 ; N uni0464 ; G 973 +U 1125 ; WX 963 ; N uni0465 ; G 974 +U 1130 ; WX 1312 ; N uni046A ; G 975 +U 1131 ; WX 1010 ; N uni046B ; G 976 +U 1132 ; WX 1630 ; N uni046C ; G 977 +U 1133 ; WX 1297 ; N uni046D ; G 978 +U 1136 ; WX 1096 ; N uni0470 ; G 979 +U 1137 ; WX 1105 ; N uni0471 ; G 980 +U 1138 ; WX 871 ; N uni0472 ; G 981 +U 1139 ; WX 652 ; N uni0473 ; G 982 +U 1140 ; WX 916 ; N uni0474 ; G 983 +U 1141 ; WX 749 ; N uni0475 ; G 984 +U 1142 ; WX 916 ; N uni0476 ; G 985 +U 1143 ; WX 749 ; N uni0477 ; G 986 +U 1164 ; WX 846 ; N uni048C ; G 987 +U 1165 ; WX 673 ; N uni048D ; G 988 +U 1168 ; WX 700 ; N uni0490 ; G 989 +U 1169 ; WX 618 ; N uni0491 ; G 990 +U 1170 ; WX 690 ; N uni0492 ; G 991 +U 1171 ; WX 613 ; N uni0493 ; G 992 +U 1172 ; WX 868 ; N uni0494 ; G 993 +U 1173 ; WX 716 ; N uni0495 ; G 994 +U 1174 ; WX 1312 ; N uni0496 ; G 995 +U 1175 ; WX 1010 ; N uni0497 ; G 996 +U 1176 ; WX 721 ; N uni0498 ; G 997 +U 1177 ; WX 638 ; N uni0499 ; G 998 +U 1178 ; WX 947 ; N uni049A ; G 999 +U 1179 ; WX 744 ; N uni049B ; G 1000 +U 1182 ; WX 910 ; N uni049E ; G 1001 +U 1183 ; WX 722 ; N uni049F ; G 1002 +U 1184 ; WX 1041 ; N uni04A0 ; G 1003 +U 1185 ; WX 827 ; N uni04A1 ; G 1004 +U 1186 ; WX 966 ; N uni04A2 ; G 1005 +U 1187 ; WX 739 ; N uni04A3 ; G 1006 +U 1188 ; WX 1167 ; N uni04A4 ; G 1007 +U 1189 ; WX 956 ; N uni04A5 ; G 1008 +U 1190 ; WX 1345 ; N uni04A6 ; G 1009 +U 1191 ; WX 1059 ; N uni04A7 ; G 1010 +U 1194 ; WX 796 ; N uni04AA ; G 1011 +U 1195 ; WX 609 ; N uni04AB ; G 1012 +U 1196 ; WX 744 ; N uni04AC ; G 1013 +U 1197 ; WX 620 ; N uni04AD ; G 1014 +U 1198 ; WX 714 ; N uni04AE ; G 1015 +U 1199 ; WX 581 ; N uni04AF ; G 1016 +U 1200 ; WX 714 ; N uni04B0 ; G 1017 +U 1201 ; WX 581 ; N uni04B1 ; G 1018 +U 1202 ; WX 866 ; N uni04B2 ; G 1019 +U 1203 ; WX 649 ; N uni04B3 ; G 1020 +U 1204 ; WX 1022 ; N uni04B4 ; G 1021 +U 1205 ; WX 807 ; N uni04B5 ; G 1022 +U 1206 ; WX 928 ; N uni04B6 ; G 1023 +U 1207 ; WX 739 ; N uni04B7 ; G 1024 +U 1210 ; WX 910 ; N uni04BA ; G 1025 +U 1211 ; WX 727 ; N uni04BB ; G 1026 +U 1216 ; WX 468 ; N uni04C0 ; G 1027 +U 1217 ; WX 1312 ; N uni04C1 ; G 1028 +U 1218 ; WX 1010 ; N uni04C2 ; G 1029 +U 1219 ; WX 869 ; N uni04C3 ; G 1030 +U 1220 ; WX 693 ; N uni04C4 ; G 1031 +U 1223 ; WX 945 ; N uni04C7 ; G 1032 +U 1224 ; WX 732 ; N uni04C8 ; G 1033 +U 1227 ; WX 913 ; N uni04CB ; G 1034 +U 1228 ; WX 732 ; N uni04CC ; G 1035 +U 1231 ; WX 380 ; N uni04CF ; G 1036 +U 1232 ; WX 814 ; N uni04D0 ; G 1037 +U 1233 ; WX 648 ; N uni04D1 ; G 1038 +U 1234 ; WX 814 ; N uni04D2 ; G 1039 +U 1235 ; WX 648 ; N uni04D3 ; G 1040 +U 1236 ; WX 1034 ; N uni04D4 ; G 1041 +U 1237 ; WX 975 ; N uni04D5 ; G 1042 +U 1238 ; WX 762 ; N uni04D6 ; G 1043 +U 1239 ; WX 636 ; N uni04D7 ; G 1044 +U 1240 ; WX 871 ; N uni04D8 ; G 1045 +U 1241 ; WX 636 ; N uni04D9 ; G 1046 +U 1242 ; WX 871 ; N uni04DA ; G 1047 +U 1243 ; WX 636 ; N uni04DB ; G 1048 +U 1244 ; WX 1312 ; N uni04DC ; G 1049 +U 1245 ; WX 1010 ; N uni04DD ; G 1050 +U 1246 ; WX 721 ; N uni04DE ; G 1051 +U 1247 ; WX 638 ; N uni04DF ; G 1052 +U 1248 ; WX 657 ; N uni04E0 ; G 1053 +U 1249 ; WX 568 ; N uni04E1 ; G 1054 +U 1250 ; WX 945 ; N uni04E2 ; G 1055 +U 1251 ; WX 742 ; N uni04E3 ; G 1056 +U 1252 ; WX 945 ; N uni04E4 ; G 1057 +U 1253 ; WX 742 ; N uni04E5 ; G 1058 +U 1254 ; WX 871 ; N uni04E6 ; G 1059 +U 1255 ; WX 667 ; N uni04E7 ; G 1060 +U 1256 ; WX 871 ; N uni04E8 ; G 1061 +U 1257 ; WX 667 ; N uni04E9 ; G 1062 +U 1258 ; WX 871 ; N uni04EA ; G 1063 +U 1259 ; WX 667 ; N uni04EB ; G 1064 +U 1260 ; WX 795 ; N uni04EC ; G 1065 +U 1261 ; WX 609 ; N uni04ED ; G 1066 +U 1262 ; WX 812 ; N uni04EE ; G 1067 +U 1263 ; WX 640 ; N uni04EF ; G 1068 +U 1264 ; WX 812 ; N uni04F0 ; G 1069 +U 1265 ; WX 640 ; N uni04F1 ; G 1070 +U 1266 ; WX 812 ; N uni04F2 ; G 1071 +U 1267 ; WX 640 ; N uni04F3 ; G 1072 +U 1268 ; WX 913 ; N uni04F4 ; G 1073 +U 1269 ; WX 732 ; N uni04F5 ; G 1074 +U 1270 ; WX 690 ; N uni04F6 ; G 1075 +U 1271 ; WX 613 ; N uni04F7 ; G 1076 +U 1272 ; WX 1202 ; N uni04F8 ; G 1077 +U 1273 ; WX 1002 ; N uni04F9 ; G 1078 +U 1296 ; WX 721 ; N uni0510 ; G 1079 +U 1297 ; WX 638 ; N uni0511 ; G 1080 +U 1298 ; WX 884 ; N uni0512 ; G 1081 +U 1299 ; WX 705 ; N uni0513 ; G 1082 +U 1300 ; WX 1248 ; N uni0514 ; G 1083 +U 1301 ; WX 945 ; N uni0515 ; G 1084 +U 1306 ; WX 820 ; N uni051A ; G 1085 +U 1307 ; WX 640 ; N uni051B ; G 1086 +U 1308 ; WX 1028 ; N uni051C ; G 1087 +U 1309 ; WX 856 ; N uni051D ; G 1088 +U 1329 ; WX 942 ; N uni0531 ; G 1089 +U 1330 ; WX 832 ; N uni0532 ; G 1090 +U 1331 ; WX 894 ; N uni0533 ; G 1091 +U 1332 ; WX 909 ; N uni0534 ; G 1092 +U 1333 ; WX 822 ; N uni0535 ; G 1093 +U 1334 ; WX 821 ; N uni0536 ; G 1094 +U 1335 ; WX 747 ; N uni0537 ; G 1095 +U 1336 ; WX 832 ; N uni0538 ; G 1096 +U 1337 ; WX 1125 ; N uni0539 ; G 1097 +U 1338 ; WX 894 ; N uni053A ; G 1098 +U 1339 ; WX 803 ; N uni053B ; G 1099 +U 1340 ; WX 722 ; N uni053C ; G 1100 +U 1341 ; WX 1188 ; N uni053D ; G 1101 +U 1342 ; WX 887 ; N uni053E ; G 1102 +U 1343 ; WX 842 ; N uni053F ; G 1103 +U 1344 ; WX 737 ; N uni0540 ; G 1104 +U 1345 ; WX 863 ; N uni0541 ; G 1105 +U 1346 ; WX 918 ; N uni0542 ; G 1106 +U 1347 ; WX 851 ; N uni0543 ; G 1107 +U 1348 ; WX 977 ; N uni0544 ; G 1108 +U 1349 ; WX 833 ; N uni0545 ; G 1109 +U 1350 ; WX 914 ; N uni0546 ; G 1110 +U 1351 ; WX 843 ; N uni0547 ; G 1111 +U 1352 ; WX 871 ; N uni0548 ; G 1112 +U 1353 ; WX 818 ; N uni0549 ; G 1113 +U 1354 ; WX 1034 ; N uni054A ; G 1114 +U 1355 ; WX 846 ; N uni054B ; G 1115 +U 1356 ; WX 964 ; N uni054C ; G 1116 +U 1357 ; WX 871 ; N uni054D ; G 1117 +U 1358 ; WX 914 ; N uni054E ; G 1118 +U 1359 ; WX 808 ; N uni054F ; G 1119 +U 1360 ; WX 808 ; N uni0550 ; G 1120 +U 1361 ; WX 836 ; N uni0551 ; G 1121 +U 1362 ; WX 710 ; N uni0552 ; G 1122 +U 1363 ; WX 955 ; N uni0553 ; G 1123 +U 1364 ; WX 891 ; N uni0554 ; G 1124 +U 1365 ; WX 871 ; N uni0555 ; G 1125 +U 1366 ; WX 963 ; N uni0556 ; G 1126 +U 1369 ; WX 307 ; N uni0559 ; G 1127 +U 1370 ; WX 264 ; N uni055A ; G 1128 +U 1371 ; WX 293 ; N uni055B ; G 1129 +U 1372 ; WX 391 ; N uni055C ; G 1130 +U 1373 ; WX 323 ; N uni055D ; G 1131 +U 1374 ; WX 439 ; N uni055E ; G 1132 +U 1375 ; WX 500 ; N uni055F ; G 1133 +U 1377 ; WX 1055 ; N uni0561 ; G 1134 +U 1378 ; WX 695 ; N uni0562 ; G 1135 +U 1379 ; WX 776 ; N uni0563 ; G 1136 +U 1380 ; WX 801 ; N uni0564 ; G 1137 +U 1381 ; WX 729 ; N uni0565 ; G 1138 +U 1382 ; WX 742 ; N uni0566 ; G 1139 +U 1383 ; WX 599 ; N uni0567 ; G 1140 +U 1384 ; WX 733 ; N uni0568 ; G 1141 +U 1385 ; WX 909 ; N uni0569 ; G 1142 +U 1386 ; WX 768 ; N uni056A ; G 1143 +U 1387 ; WX 724 ; N uni056B ; G 1144 +U 1388 ; WX 398 ; N uni056C ; G 1145 +U 1389 ; WX 1087 ; N uni056D ; G 1146 +U 1390 ; WX 695 ; N uni056E ; G 1147 +U 1391 ; WX 719 ; N uni056F ; G 1148 +U 1392 ; WX 737 ; N uni0570 ; G 1149 +U 1393 ; WX 684 ; N uni0571 ; G 1150 +U 1394 ; WX 738 ; N uni0572 ; G 1151 +U 1395 ; WX 703 ; N uni0573 ; G 1152 +U 1396 ; WX 724 ; N uni0574 ; G 1153 +U 1397 ; WX 359 ; N uni0575 ; G 1154 +U 1398 ; WX 719 ; N uni0576 ; G 1155 +U 1399 ; WX 496 ; N uni0577 ; G 1156 +U 1400 ; WX 738 ; N uni0578 ; G 1157 +U 1401 ; WX 428 ; N uni0579 ; G 1158 +U 1402 ; WX 1059 ; N uni057A ; G 1159 +U 1403 ; WX 668 ; N uni057B ; G 1160 +U 1404 ; WX 744 ; N uni057C ; G 1161 +U 1405 ; WX 724 ; N uni057D ; G 1162 +U 1406 ; WX 724 ; N uni057E ; G 1163 +U 1407 ; WX 1040 ; N uni057F ; G 1164 +U 1408 ; WX 724 ; N uni0580 ; G 1165 +U 1409 ; WX 713 ; N uni0581 ; G 1166 +U 1410 ; WX 493 ; N uni0582 ; G 1167 +U 1411 ; WX 1040 ; N uni0583 ; G 1168 +U 1412 ; WX 734 ; N uni0584 ; G 1169 +U 1413 ; WX 693 ; N uni0585 ; G 1170 +U 1414 ; WX 956 ; N uni0586 ; G 1171 +U 1415 ; WX 833 ; N uni0587 ; G 1172 +U 1417 ; WX 340 ; N uni0589 ; G 1173 +U 1418 ; WX 388 ; N uni058A ; G 1174 +U 3647 ; WX 696 ; N uni0E3F ; G 1175 +U 4256 ; WX 755 ; N uni10A0 ; G 1176 +U 4257 ; WX 936 ; N uni10A1 ; G 1177 +U 4258 ; WX 866 ; N uni10A2 ; G 1178 +U 4259 ; WX 874 ; N uni10A3 ; G 1179 +U 4260 ; WX 781 ; N uni10A4 ; G 1180 +U 4261 ; WX 1078 ; N uni10A5 ; G 1181 +U 4262 ; WX 1014 ; N uni10A6 ; G 1182 +U 4263 ; WX 1213 ; N uni10A7 ; G 1183 +U 4264 ; WX 643 ; N uni10A8 ; G 1184 +U 4265 ; WX 818 ; N uni10A9 ; G 1185 +U 4266 ; WX 1051 ; N uni10AA ; G 1186 +U 4267 ; WX 1051 ; N uni10AB ; G 1187 +U 4268 ; WX 796 ; N uni10AC ; G 1188 +U 4269 ; WX 1135 ; N uni10AD ; G 1189 +U 4270 ; WX 969 ; N uni10AE ; G 1190 +U 4271 ; WX 902 ; N uni10AF ; G 1191 +U 4272 ; WX 1109 ; N uni10B0 ; G 1192 +U 4273 ; WX 792 ; N uni10B1 ; G 1193 +U 4274 ; WX 756 ; N uni10B2 ; G 1194 +U 4275 ; WX 1076 ; N uni10B3 ; G 1195 +U 4276 ; WX 976 ; N uni10B4 ; G 1196 +U 4277 ; WX 1066 ; N uni10B5 ; G 1197 +U 4278 ; WX 811 ; N uni10B6 ; G 1198 +U 4279 ; WX 833 ; N uni10B7 ; G 1199 +U 4280 ; WX 821 ; N uni10B8 ; G 1200 +U 4281 ; WX 833 ; N uni10B9 ; G 1201 +U 4282 ; WX 908 ; N uni10BA ; G 1202 +U 4283 ; WX 1077 ; N uni10BB ; G 1203 +U 4284 ; WX 769 ; N uni10BC ; G 1204 +U 4285 ; WX 822 ; N uni10BD ; G 1205 +U 4286 ; WX 813 ; N uni10BE ; G 1206 +U 4287 ; WX 1111 ; N uni10BF ; G 1207 +U 4288 ; WX 1123 ; N uni10C0 ; G 1208 +U 4289 ; WX 802 ; N uni10C1 ; G 1209 +U 4290 ; WX 892 ; N uni10C2 ; G 1210 +U 4291 ; WX 802 ; N uni10C3 ; G 1211 +U 4292 ; WX 880 ; N uni10C4 ; G 1212 +U 4293 ; WX 1063 ; N uni10C5 ; G 1213 +U 4304 ; WX 594 ; N uni10D0 ; G 1214 +U 4305 ; WX 625 ; N uni10D1 ; G 1215 +U 4306 ; WX 643 ; N uni10D2 ; G 1216 +U 4307 ; WX 887 ; N uni10D3 ; G 1217 +U 4308 ; WX 615 ; N uni10D4 ; G 1218 +U 4309 ; WX 611 ; N uni10D5 ; G 1219 +U 4310 ; WX 667 ; N uni10D6 ; G 1220 +U 4311 ; WX 915 ; N uni10D7 ; G 1221 +U 4312 ; WX 613 ; N uni10D8 ; G 1222 +U 4313 ; WX 600 ; N uni10D9 ; G 1223 +U 4314 ; WX 1120 ; N uni10DA ; G 1224 +U 4315 ; WX 640 ; N uni10DB ; G 1225 +U 4316 ; WX 640 ; N uni10DC ; G 1226 +U 4317 ; WX 879 ; N uni10DD ; G 1227 +U 4318 ; WX 624 ; N uni10DE ; G 1228 +U 4319 ; WX 634 ; N uni10DF ; G 1229 +U 4320 ; WX 877 ; N uni10E0 ; G 1230 +U 4321 ; WX 666 ; N uni10E1 ; G 1231 +U 4322 ; WX 780 ; N uni10E2 ; G 1232 +U 4323 ; WX 751 ; N uni10E3 ; G 1233 +U 4324 ; WX 869 ; N uni10E4 ; G 1234 +U 4325 ; WX 639 ; N uni10E5 ; G 1235 +U 4326 ; WX 912 ; N uni10E6 ; G 1236 +U 4327 ; WX 622 ; N uni10E7 ; G 1237 +U 4328 ; WX 647 ; N uni10E8 ; G 1238 +U 4329 ; WX 640 ; N uni10E9 ; G 1239 +U 4330 ; WX 729 ; N uni10EA ; G 1240 +U 4331 ; WX 641 ; N uni10EB ; G 1241 +U 4332 ; WX 630 ; N uni10EC ; G 1242 +U 4333 ; WX 629 ; N uni10ED ; G 1243 +U 4334 ; WX 670 ; N uni10EE ; G 1244 +U 4335 ; WX 753 ; N uni10EF ; G 1245 +U 4336 ; WX 625 ; N uni10F0 ; G 1246 +U 4337 ; WX 657 ; N uni10F1 ; G 1247 +U 4338 ; WX 625 ; N uni10F2 ; G 1248 +U 4339 ; WX 625 ; N uni10F3 ; G 1249 +U 4340 ; WX 624 ; N uni10F4 ; G 1250 +U 4341 ; WX 670 ; N uni10F5 ; G 1251 +U 4342 ; WX 940 ; N uni10F6 ; G 1252 +U 4343 ; WX 680 ; N uni10F7 ; G 1253 +U 4344 ; WX 636 ; N uni10F8 ; G 1254 +U 4345 ; WX 672 ; N uni10F9 ; G 1255 +U 4346 ; WX 625 ; N uni10FA ; G 1256 +U 4347 ; WX 588 ; N uni10FB ; G 1257 +U 4348 ; WX 354 ; N uni10FC ; G 1258 +U 7424 ; WX 641 ; N uni1D00 ; G 1259 +U 7425 ; WX 892 ; N uni1D01 ; G 1260 +U 7426 ; WX 940 ; N uni1D02 ; G 1261 +U 7427 ; WX 695 ; N uni1D03 ; G 1262 +U 7428 ; WX 609 ; N uni1D04 ; G 1263 +U 7429 ; WX 675 ; N uni1D05 ; G 1264 +U 7430 ; WX 675 ; N uni1D06 ; G 1265 +U 7431 ; WX 617 ; N uni1D07 ; G 1266 +U 7432 ; WX 509 ; N uni1D08 ; G 1267 +U 7433 ; WX 320 ; N uni1D09 ; G 1268 +U 7434 ; WX 561 ; N uni1D0A ; G 1269 +U 7435 ; WX 722 ; N uni1D0B ; G 1270 +U 7436 ; WX 617 ; N uni1D0C ; G 1271 +U 7437 ; WX 869 ; N uni1D0D ; G 1272 +U 7438 ; WX 737 ; N uni1D0E ; G 1273 +U 7439 ; WX 667 ; N uni1D0F ; G 1274 +U 7440 ; WX 609 ; N uni1D10 ; G 1275 +U 7441 ; WX 628 ; N uni1D11 ; G 1276 +U 7442 ; WX 628 ; N uni1D12 ; G 1277 +U 7443 ; WX 667 ; N uni1D13 ; G 1278 +U 7444 ; WX 989 ; N uni1D14 ; G 1279 +U 7445 ; WX 598 ; N uni1D15 ; G 1280 +U 7446 ; WX 667 ; N uni1D16 ; G 1281 +U 7447 ; WX 667 ; N uni1D17 ; G 1282 +U 7448 ; WX 586 ; N uni1D18 ; G 1283 +U 7449 ; WX 801 ; N uni1D19 ; G 1284 +U 7450 ; WX 801 ; N uni1D1A ; G 1285 +U 7451 ; WX 620 ; N uni1D1B ; G 1286 +U 7452 ; WX 647 ; N uni1D1C ; G 1287 +U 7453 ; WX 664 ; N uni1D1D ; G 1288 +U 7454 ; WX 923 ; N uni1D1E ; G 1289 +U 7455 ; WX 655 ; N uni1D1F ; G 1290 +U 7456 ; WX 581 ; N uni1D20 ; G 1291 +U 7457 ; WX 861 ; N uni1D21 ; G 1292 +U 7458 ; WX 568 ; N uni1D22 ; G 1293 +U 7459 ; WX 568 ; N uni1D23 ; G 1294 +U 7460 ; WX 588 ; N uni1D24 ; G 1295 +U 7461 ; WX 802 ; N uni1D25 ; G 1296 +U 7462 ; WX 586 ; N uni1D26 ; G 1297 +U 7463 ; WX 641 ; N uni1D27 ; G 1298 +U 7464 ; WX 732 ; N uni1D28 ; G 1299 +U 7465 ; WX 586 ; N uni1D29 ; G 1300 +U 7466 ; WX 854 ; N uni1D2A ; G 1301 +U 7467 ; WX 705 ; N uni1D2B ; G 1302 +U 7468 ; WX 489 ; N uni1D2C ; G 1303 +U 7469 ; WX 651 ; N uni1D2D ; G 1304 +U 7470 ; WX 532 ; N uni1D2E ; G 1305 +U 7471 ; WX 532 ; N uni1D2F ; G 1306 +U 7472 ; WX 546 ; N uni1D30 ; G 1307 +U 7473 ; WX 480 ; N uni1D31 ; G 1308 +U 7474 ; WX 480 ; N uni1D32 ; G 1309 +U 7475 ; WX 538 ; N uni1D33 ; G 1310 +U 7476 ; WX 595 ; N uni1D34 ; G 1311 +U 7477 ; WX 294 ; N uni1D35 ; G 1312 +U 7478 ; WX 298 ; N uni1D36 ; G 1313 +U 7479 ; WX 547 ; N uni1D37 ; G 1314 +U 7480 ; WX 443 ; N uni1D38 ; G 1315 +U 7481 ; WX 697 ; N uni1D39 ; G 1316 +U 7482 ; WX 576 ; N uni1D3A ; G 1317 +U 7483 ; WX 606 ; N uni1D3B ; G 1318 +U 7484 ; WX 548 ; N uni1D3C ; G 1319 +U 7485 ; WX 442 ; N uni1D3D ; G 1320 +U 7486 ; WX 474 ; N uni1D3E ; G 1321 +U 7487 ; WX 523 ; N uni1D3F ; G 1322 +U 7488 ; WX 455 ; N uni1D40 ; G 1323 +U 7489 ; WX 469 ; N uni1D41 ; G 1324 +U 7490 ; WX 549 ; N uni1D42 ; G 1325 +U 7491 ; WX 466 ; N uni1D43 ; G 1326 +U 7492 ; WX 466 ; N uni1D44 ; G 1327 +U 7493 ; WX 498 ; N uni1D45 ; G 1328 +U 7494 ; WX 657 ; N uni1D46 ; G 1329 +U 7495 ; WX 499 ; N uni1D47 ; G 1330 +U 7496 ; WX 498 ; N uni1D48 ; G 1331 +U 7497 ; WX 444 ; N uni1D49 ; G 1332 +U 7498 ; WX 444 ; N uni1D4A ; G 1333 +U 7499 ; WX 412 ; N uni1D4B ; G 1334 +U 7500 ; WX 412 ; N uni1D4C ; G 1335 +U 7501 ; WX 498 ; N uni1D4D ; G 1336 +U 7502 ; WX 300 ; N uni1D4E ; G 1337 +U 7503 ; WX 523 ; N uni1D4F ; G 1338 +U 7504 ; WX 729 ; N uni1D50 ; G 1339 +U 7505 ; WX 473 ; N uni1D51 ; G 1340 +U 7506 ; WX 467 ; N uni1D52 ; G 1341 +U 7507 ; WX 427 ; N uni1D53 ; G 1342 +U 7508 ; WX 467 ; N uni1D54 ; G 1343 +U 7509 ; WX 467 ; N uni1D55 ; G 1344 +U 7510 ; WX 499 ; N uni1D56 ; G 1345 +U 7511 ; WX 371 ; N uni1D57 ; G 1346 +U 7512 ; WX 520 ; N uni1D58 ; G 1347 +U 7513 ; WX 418 ; N uni1D59 ; G 1348 +U 7514 ; WX 729 ; N uni1D5A ; G 1349 +U 7515 ; WX 491 ; N uni1D5B ; G 1350 +U 7516 ; WX 505 ; N uni1D5C ; G 1351 +U 7517 ; WX 418 ; N uni1D5D ; G 1352 +U 7518 ; WX 416 ; N uni1D5E ; G 1353 +U 7519 ; WX 420 ; N uni1D5F ; G 1354 +U 7520 ; WX 570 ; N uni1D60 ; G 1355 +U 7521 ; WX 414 ; N uni1D61 ; G 1356 +U 7522 ; WX 239 ; N uni1D62 ; G 1357 +U 7523 ; WX 414 ; N uni1D63 ; G 1358 +U 7524 ; WX 520 ; N uni1D64 ; G 1359 +U 7525 ; WX 491 ; N uni1D65 ; G 1360 +U 7526 ; WX 418 ; N uni1D66 ; G 1361 +U 7527 ; WX 416 ; N uni1D67 ; G 1362 +U 7528 ; WX 419 ; N uni1D68 ; G 1363 +U 7529 ; WX 570 ; N uni1D69 ; G 1364 +U 7530 ; WX 414 ; N uni1D6A ; G 1365 +U 7531 ; WX 1041 ; N uni1D6B ; G 1366 +U 7543 ; WX 640 ; N uni1D77 ; G 1367 +U 7544 ; WX 595 ; N uni1D78 ; G 1368 +U 7547 ; WX 380 ; N uni1D7B ; G 1369 +U 7548 ; WX 380 ; N uni1D7C ; G 1370 +U 7549 ; WX 699 ; N uni1D7D ; G 1371 +U 7550 ; WX 647 ; N uni1D7E ; G 1372 +U 7551 ; WX 679 ; N uni1D7F ; G 1373 +U 7557 ; WX 380 ; N uni1D85 ; G 1374 +U 7579 ; WX 498 ; N uni1D9B ; G 1375 +U 7580 ; WX 427 ; N uni1D9C ; G 1376 +U 7581 ; WX 427 ; N uni1D9D ; G 1377 +U 7582 ; WX 467 ; N uni1D9E ; G 1378 +U 7583 ; WX 412 ; N uni1D9F ; G 1379 +U 7584 ; WX 383 ; N uni1DA0 ; G 1380 +U 7585 ; WX 373 ; N uni1DA1 ; G 1381 +U 7586 ; WX 498 ; N uni1DA2 ; G 1382 +U 7587 ; WX 522 ; N uni1DA3 ; G 1383 +U 7588 ; WX 300 ; N uni1DA4 ; G 1384 +U 7589 ; WX 307 ; N uni1DA5 ; G 1385 +U 7590 ; WX 300 ; N uni1DA6 ; G 1386 +U 7591 ; WX 300 ; N uni1DA7 ; G 1387 +U 7592 ; WX 370 ; N uni1DA8 ; G 1388 +U 7593 ; WX 368 ; N uni1DA9 ; G 1389 +U 7594 ; WX 321 ; N uni1DAA ; G 1390 +U 7595 ; WX 430 ; N uni1DAB ; G 1391 +U 7596 ; WX 682 ; N uni1DAC ; G 1392 +U 7597 ; WX 729 ; N uni1DAD ; G 1393 +U 7598 ; WX 588 ; N uni1DAE ; G 1394 +U 7599 ; WX 587 ; N uni1DAF ; G 1395 +U 7600 ; WX 472 ; N uni1DB0 ; G 1396 +U 7601 ; WX 467 ; N uni1DB1 ; G 1397 +U 7602 ; WX 522 ; N uni1DB2 ; G 1398 +U 7603 ; WX 400 ; N uni1DB3 ; G 1399 +U 7604 ; WX 387 ; N uni1DB4 ; G 1400 +U 7605 ; WX 371 ; N uni1DB5 ; G 1401 +U 7606 ; WX 520 ; N uni1DB6 ; G 1402 +U 7607 ; WX 475 ; N uni1DB7 ; G 1403 +U 7608 ; WX 408 ; N uni1DB8 ; G 1404 +U 7609 ; WX 489 ; N uni1DB9 ; G 1405 +U 7610 ; WX 491 ; N uni1DBA ; G 1406 +U 7611 ; WX 412 ; N uni1DBB ; G 1407 +U 7612 ; WX 527 ; N uni1DBC ; G 1408 +U 7613 ; WX 412 ; N uni1DBD ; G 1409 +U 7614 ; WX 452 ; N uni1DBE ; G 1410 +U 7615 ; WX 467 ; N uni1DBF ; G 1411 +U 7620 ; WX 0 ; N uni1DC4 ; G 1412 +U 7621 ; WX 0 ; N uni1DC5 ; G 1413 +U 7622 ; WX 0 ; N uni1DC6 ; G 1414 +U 7623 ; WX 0 ; N uni1DC7 ; G 1415 +U 7624 ; WX 0 ; N uni1DC8 ; G 1416 +U 7625 ; WX 0 ; N uni1DC9 ; G 1417 +U 7680 ; WX 776 ; N uni1E00 ; G 1418 +U 7681 ; WX 648 ; N uni1E01 ; G 1419 +U 7682 ; WX 845 ; N uni1E02 ; G 1420 +U 7683 ; WX 699 ; N uni1E03 ; G 1421 +U 7684 ; WX 845 ; N uni1E04 ; G 1422 +U 7685 ; WX 699 ; N uni1E05 ; G 1423 +U 7686 ; WX 845 ; N uni1E06 ; G 1424 +U 7687 ; WX 699 ; N uni1E07 ; G 1425 +U 7688 ; WX 796 ; N uni1E08 ; G 1426 +U 7689 ; WX 609 ; N uni1E09 ; G 1427 +U 7690 ; WX 867 ; N uni1E0A ; G 1428 +U 7691 ; WX 699 ; N uni1E0B ; G 1429 +U 7692 ; WX 867 ; N uni1E0C ; G 1430 +U 7693 ; WX 699 ; N uni1E0D ; G 1431 +U 7694 ; WX 867 ; N uni1E0E ; G 1432 +U 7695 ; WX 699 ; N uni1E0F ; G 1433 +U 7696 ; WX 867 ; N uni1E10 ; G 1434 +U 7697 ; WX 699 ; N uni1E11 ; G 1435 +U 7698 ; WX 867 ; N uni1E12 ; G 1436 +U 7699 ; WX 699 ; N uni1E13 ; G 1437 +U 7700 ; WX 762 ; N uni1E14 ; G 1438 +U 7701 ; WX 636 ; N uni1E15 ; G 1439 +U 7702 ; WX 762 ; N uni1E16 ; G 1440 +U 7703 ; WX 636 ; N uni1E17 ; G 1441 +U 7704 ; WX 762 ; N uni1E18 ; G 1442 +U 7705 ; WX 636 ; N uni1E19 ; G 1443 +U 7706 ; WX 762 ; N uni1E1A ; G 1444 +U 7707 ; WX 636 ; N uni1E1B ; G 1445 +U 7708 ; WX 762 ; N uni1E1C ; G 1446 +U 7709 ; WX 636 ; N uni1E1D ; G 1447 +U 7710 ; WX 710 ; N uni1E1E ; G 1448 +U 7711 ; WX 430 ; N uni1E1F ; G 1449 +U 7712 ; WX 854 ; N uni1E20 ; G 1450 +U 7713 ; WX 699 ; N uni1E21 ; G 1451 +U 7714 ; WX 945 ; N uni1E22 ; G 1452 +U 7715 ; WX 727 ; N uni1E23 ; G 1453 +U 7716 ; WX 945 ; N uni1E24 ; G 1454 +U 7717 ; WX 727 ; N uni1E25 ; G 1455 +U 7718 ; WX 945 ; N uni1E26 ; G 1456 +U 7719 ; WX 727 ; N uni1E27 ; G 1457 +U 7720 ; WX 945 ; N uni1E28 ; G 1458 +U 7721 ; WX 727 ; N uni1E29 ; G 1459 +U 7722 ; WX 945 ; N uni1E2A ; G 1460 +U 7723 ; WX 727 ; N uni1E2B ; G 1461 +U 7724 ; WX 468 ; N uni1E2C ; G 1462 +U 7725 ; WX 380 ; N uni1E2D ; G 1463 +U 7726 ; WX 468 ; N uni1E2E ; G 1464 +U 7727 ; WX 380 ; N uni1E2F ; G 1465 +U 7728 ; WX 869 ; N uni1E30 ; G 1466 +U 7729 ; WX 693 ; N uni1E31 ; G 1467 +U 7730 ; WX 869 ; N uni1E32 ; G 1468 +U 7731 ; WX 693 ; N uni1E33 ; G 1469 +U 7732 ; WX 869 ; N uni1E34 ; G 1470 +U 7733 ; WX 693 ; N uni1E35 ; G 1471 +U 7734 ; WX 703 ; N uni1E36 ; G 1472 +U 7735 ; WX 380 ; N uni1E37 ; G 1473 +U 7736 ; WX 703 ; N uni1E38 ; G 1474 +U 7737 ; WX 380 ; N uni1E39 ; G 1475 +U 7738 ; WX 703 ; N uni1E3A ; G 1476 +U 7739 ; WX 380 ; N uni1E3B ; G 1477 +U 7740 ; WX 703 ; N uni1E3C ; G 1478 +U 7741 ; WX 380 ; N uni1E3D ; G 1479 +U 7742 ; WX 1107 ; N uni1E3E ; G 1480 +U 7743 ; WX 1058 ; N uni1E3F ; G 1481 +U 7744 ; WX 1107 ; N uni1E40 ; G 1482 +U 7745 ; WX 1058 ; N uni1E41 ; G 1483 +U 7746 ; WX 1107 ; N uni1E42 ; G 1484 +U 7747 ; WX 1058 ; N uni1E43 ; G 1485 +U 7748 ; WX 914 ; N uni1E44 ; G 1486 +U 7749 ; WX 727 ; N uni1E45 ; G 1487 +U 7750 ; WX 914 ; N uni1E46 ; G 1488 +U 7751 ; WX 727 ; N uni1E47 ; G 1489 +U 7752 ; WX 914 ; N uni1E48 ; G 1490 +U 7753 ; WX 727 ; N uni1E49 ; G 1491 +U 7754 ; WX 914 ; N uni1E4A ; G 1492 +U 7755 ; WX 727 ; N uni1E4B ; G 1493 +U 7756 ; WX 871 ; N uni1E4C ; G 1494 +U 7757 ; WX 667 ; N uni1E4D ; G 1495 +U 7758 ; WX 871 ; N uni1E4E ; G 1496 +U 7759 ; WX 667 ; N uni1E4F ; G 1497 +U 7760 ; WX 871 ; N uni1E50 ; G 1498 +U 7761 ; WX 667 ; N uni1E51 ; G 1499 +U 7762 ; WX 871 ; N uni1E52 ; G 1500 +U 7763 ; WX 667 ; N uni1E53 ; G 1501 +U 7764 ; WX 752 ; N uni1E54 ; G 1502 +U 7765 ; WX 699 ; N uni1E55 ; G 1503 +U 7766 ; WX 752 ; N uni1E56 ; G 1504 +U 7767 ; WX 699 ; N uni1E57 ; G 1505 +U 7768 ; WX 831 ; N uni1E58 ; G 1506 +U 7769 ; WX 527 ; N uni1E59 ; G 1507 +U 7770 ; WX 831 ; N uni1E5A ; G 1508 +U 7771 ; WX 527 ; N uni1E5B ; G 1509 +U 7772 ; WX 831 ; N uni1E5C ; G 1510 +U 7773 ; WX 527 ; N uni1E5D ; G 1511 +U 7774 ; WX 831 ; N uni1E5E ; G 1512 +U 7775 ; WX 527 ; N uni1E5F ; G 1513 +U 7776 ; WX 722 ; N uni1E60 ; G 1514 +U 7777 ; WX 563 ; N uni1E61 ; G 1515 +U 7778 ; WX 722 ; N uni1E62 ; G 1516 +U 7779 ; WX 563 ; N uni1E63 ; G 1517 +U 7780 ; WX 722 ; N uni1E64 ; G 1518 +U 7781 ; WX 563 ; N uni1E65 ; G 1519 +U 7782 ; WX 722 ; N uni1E66 ; G 1520 +U 7783 ; WX 563 ; N uni1E67 ; G 1521 +U 7784 ; WX 722 ; N uni1E68 ; G 1522 +U 7785 ; WX 563 ; N uni1E69 ; G 1523 +U 7786 ; WX 744 ; N uni1E6A ; G 1524 +U 7787 ; WX 462 ; N uni1E6B ; G 1525 +U 7788 ; WX 744 ; N uni1E6C ; G 1526 +U 7789 ; WX 462 ; N uni1E6D ; G 1527 +U 7790 ; WX 744 ; N uni1E6E ; G 1528 +U 7791 ; WX 462 ; N uni1E6F ; G 1529 +U 7792 ; WX 744 ; N uni1E70 ; G 1530 +U 7793 ; WX 462 ; N uni1E71 ; G 1531 +U 7794 ; WX 872 ; N uni1E72 ; G 1532 +U 7795 ; WX 727 ; N uni1E73 ; G 1533 +U 7796 ; WX 872 ; N uni1E74 ; G 1534 +U 7797 ; WX 727 ; N uni1E75 ; G 1535 +U 7798 ; WX 872 ; N uni1E76 ; G 1536 +U 7799 ; WX 727 ; N uni1E77 ; G 1537 +U 7800 ; WX 872 ; N uni1E78 ; G 1538 +U 7801 ; WX 727 ; N uni1E79 ; G 1539 +U 7802 ; WX 872 ; N uni1E7A ; G 1540 +U 7803 ; WX 727 ; N uni1E7B ; G 1541 +U 7804 ; WX 776 ; N uni1E7C ; G 1542 +U 7805 ; WX 581 ; N uni1E7D ; G 1543 +U 7806 ; WX 776 ; N uni1E7E ; G 1544 +U 7807 ; WX 581 ; N uni1E7F ; G 1545 +U 7808 ; WX 1123 ; N Wgrave ; G 1546 +U 7809 ; WX 861 ; N wgrave ; G 1547 +U 7810 ; WX 1123 ; N Wacute ; G 1548 +U 7811 ; WX 861 ; N wacute ; G 1549 +U 7812 ; WX 1123 ; N Wdieresis ; G 1550 +U 7813 ; WX 861 ; N wdieresis ; G 1551 +U 7814 ; WX 1123 ; N uni1E86 ; G 1552 +U 7815 ; WX 861 ; N uni1E87 ; G 1553 +U 7816 ; WX 1123 ; N uni1E88 ; G 1554 +U 7817 ; WX 861 ; N uni1E89 ; G 1555 +U 7818 ; WX 776 ; N uni1E8A ; G 1556 +U 7819 ; WX 596 ; N uni1E8B ; G 1557 +U 7820 ; WX 776 ; N uni1E8C ; G 1558 +U 7821 ; WX 596 ; N uni1E8D ; G 1559 +U 7822 ; WX 714 ; N uni1E8E ; G 1560 +U 7823 ; WX 581 ; N uni1E8F ; G 1561 +U 7824 ; WX 730 ; N uni1E90 ; G 1562 +U 7825 ; WX 568 ; N uni1E91 ; G 1563 +U 7826 ; WX 730 ; N uni1E92 ; G 1564 +U 7827 ; WX 568 ; N uni1E93 ; G 1565 +U 7828 ; WX 730 ; N uni1E94 ; G 1566 +U 7829 ; WX 568 ; N uni1E95 ; G 1567 +U 7830 ; WX 727 ; N uni1E96 ; G 1568 +U 7831 ; WX 462 ; N uni1E97 ; G 1569 +U 7832 ; WX 861 ; N uni1E98 ; G 1570 +U 7833 ; WX 581 ; N uni1E99 ; G 1571 +U 7834 ; WX 1014 ; N uni1E9A ; G 1572 +U 7835 ; WX 430 ; N uni1E9B ; G 1573 +U 7836 ; WX 430 ; N uni1E9C ; G 1574 +U 7837 ; WX 430 ; N uni1E9D ; G 1575 +U 7838 ; WX 947 ; N uni1E9E ; G 1576 +U 7839 ; WX 667 ; N uni1E9F ; G 1577 +U 7840 ; WX 776 ; N uni1EA0 ; G 1578 +U 7841 ; WX 648 ; N uni1EA1 ; G 1579 +U 7842 ; WX 776 ; N uni1EA2 ; G 1580 +U 7843 ; WX 648 ; N uni1EA3 ; G 1581 +U 7844 ; WX 776 ; N uni1EA4 ; G 1582 +U 7845 ; WX 648 ; N uni1EA5 ; G 1583 +U 7846 ; WX 776 ; N uni1EA6 ; G 1584 +U 7847 ; WX 648 ; N uni1EA7 ; G 1585 +U 7848 ; WX 776 ; N uni1EA8 ; G 1586 +U 7849 ; WX 648 ; N uni1EA9 ; G 1587 +U 7850 ; WX 776 ; N uni1EAA ; G 1588 +U 7851 ; WX 648 ; N uni1EAB ; G 1589 +U 7852 ; WX 776 ; N uni1EAC ; G 1590 +U 7853 ; WX 648 ; N uni1EAD ; G 1591 +U 7854 ; WX 776 ; N uni1EAE ; G 1592 +U 7855 ; WX 648 ; N uni1EAF ; G 1593 +U 7856 ; WX 776 ; N uni1EB0 ; G 1594 +U 7857 ; WX 648 ; N uni1EB1 ; G 1595 +U 7858 ; WX 776 ; N uni1EB2 ; G 1596 +U 7859 ; WX 648 ; N uni1EB3 ; G 1597 +U 7860 ; WX 776 ; N uni1EB4 ; G 1598 +U 7861 ; WX 648 ; N uni1EB5 ; G 1599 +U 7862 ; WX 776 ; N uni1EB6 ; G 1600 +U 7863 ; WX 648 ; N uni1EB7 ; G 1601 +U 7864 ; WX 762 ; N uni1EB8 ; G 1602 +U 7865 ; WX 636 ; N uni1EB9 ; G 1603 +U 7866 ; WX 762 ; N uni1EBA ; G 1604 +U 7867 ; WX 636 ; N uni1EBB ; G 1605 +U 7868 ; WX 762 ; N uni1EBC ; G 1606 +U 7869 ; WX 636 ; N uni1EBD ; G 1607 +U 7870 ; WX 762 ; N uni1EBE ; G 1608 +U 7871 ; WX 636 ; N uni1EBF ; G 1609 +U 7872 ; WX 762 ; N uni1EC0 ; G 1610 +U 7873 ; WX 636 ; N uni1EC1 ; G 1611 +U 7874 ; WX 762 ; N uni1EC2 ; G 1612 +U 7875 ; WX 636 ; N uni1EC3 ; G 1613 +U 7876 ; WX 762 ; N uni1EC4 ; G 1614 +U 7877 ; WX 636 ; N uni1EC5 ; G 1615 +U 7878 ; WX 762 ; N uni1EC6 ; G 1616 +U 7879 ; WX 636 ; N uni1EC7 ; G 1617 +U 7880 ; WX 468 ; N uni1EC8 ; G 1618 +U 7881 ; WX 380 ; N uni1EC9 ; G 1619 +U 7882 ; WX 468 ; N uni1ECA ; G 1620 +U 7883 ; WX 380 ; N uni1ECB ; G 1621 +U 7884 ; WX 871 ; N uni1ECC ; G 1622 +U 7885 ; WX 667 ; N uni1ECD ; G 1623 +U 7886 ; WX 871 ; N uni1ECE ; G 1624 +U 7887 ; WX 667 ; N uni1ECF ; G 1625 +U 7888 ; WX 871 ; N uni1ED0 ; G 1626 +U 7889 ; WX 667 ; N uni1ED1 ; G 1627 +U 7890 ; WX 871 ; N uni1ED2 ; G 1628 +U 7891 ; WX 667 ; N uni1ED3 ; G 1629 +U 7892 ; WX 871 ; N uni1ED4 ; G 1630 +U 7893 ; WX 667 ; N uni1ED5 ; G 1631 +U 7894 ; WX 871 ; N uni1ED6 ; G 1632 +U 7895 ; WX 667 ; N uni1ED7 ; G 1633 +U 7896 ; WX 871 ; N uni1ED8 ; G 1634 +U 7897 ; WX 667 ; N uni1ED9 ; G 1635 +U 7898 ; WX 871 ; N uni1EDA ; G 1636 +U 7899 ; WX 667 ; N uni1EDB ; G 1637 +U 7900 ; WX 871 ; N uni1EDC ; G 1638 +U 7901 ; WX 667 ; N uni1EDD ; G 1639 +U 7902 ; WX 871 ; N uni1EDE ; G 1640 +U 7903 ; WX 667 ; N uni1EDF ; G 1641 +U 7904 ; WX 871 ; N uni1EE0 ; G 1642 +U 7905 ; WX 667 ; N uni1EE1 ; G 1643 +U 7906 ; WX 871 ; N uni1EE2 ; G 1644 +U 7907 ; WX 667 ; N uni1EE3 ; G 1645 +U 7908 ; WX 872 ; N uni1EE4 ; G 1646 +U 7909 ; WX 727 ; N uni1EE5 ; G 1647 +U 7910 ; WX 872 ; N uni1EE6 ; G 1648 +U 7911 ; WX 727 ; N uni1EE7 ; G 1649 +U 7912 ; WX 872 ; N uni1EE8 ; G 1650 +U 7913 ; WX 727 ; N uni1EE9 ; G 1651 +U 7914 ; WX 872 ; N uni1EEA ; G 1652 +U 7915 ; WX 727 ; N uni1EEB ; G 1653 +U 7916 ; WX 872 ; N uni1EEC ; G 1654 +U 7917 ; WX 727 ; N uni1EED ; G 1655 +U 7918 ; WX 872 ; N uni1EEE ; G 1656 +U 7919 ; WX 727 ; N uni1EEF ; G 1657 +U 7920 ; WX 872 ; N uni1EF0 ; G 1658 +U 7921 ; WX 727 ; N uni1EF1 ; G 1659 +U 7922 ; WX 714 ; N Ygrave ; G 1660 +U 7923 ; WX 581 ; N ygrave ; G 1661 +U 7924 ; WX 714 ; N uni1EF4 ; G 1662 +U 7925 ; WX 581 ; N uni1EF5 ; G 1663 +U 7926 ; WX 714 ; N uni1EF6 ; G 1664 +U 7927 ; WX 581 ; N uni1EF7 ; G 1665 +U 7928 ; WX 714 ; N uni1EF8 ; G 1666 +U 7929 ; WX 581 ; N uni1EF9 ; G 1667 +U 7930 ; WX 1078 ; N uni1EFA ; G 1668 +U 7931 ; WX 701 ; N uni1EFB ; G 1669 +U 7936 ; WX 770 ; N uni1F00 ; G 1670 +U 7937 ; WX 770 ; N uni1F01 ; G 1671 +U 7938 ; WX 770 ; N uni1F02 ; G 1672 +U 7939 ; WX 770 ; N uni1F03 ; G 1673 +U 7940 ; WX 770 ; N uni1F04 ; G 1674 +U 7941 ; WX 770 ; N uni1F05 ; G 1675 +U 7942 ; WX 770 ; N uni1F06 ; G 1676 +U 7943 ; WX 770 ; N uni1F07 ; G 1677 +U 7944 ; WX 776 ; N uni1F08 ; G 1678 +U 7945 ; WX 776 ; N uni1F09 ; G 1679 +U 7946 ; WX 978 ; N uni1F0A ; G 1680 +U 7947 ; WX 978 ; N uni1F0B ; G 1681 +U 7948 ; WX 832 ; N uni1F0C ; G 1682 +U 7949 ; WX 849 ; N uni1F0D ; G 1683 +U 7950 ; WX 776 ; N uni1F0E ; G 1684 +U 7951 ; WX 776 ; N uni1F0F ; G 1685 +U 7952 ; WX 608 ; N uni1F10 ; G 1686 +U 7953 ; WX 608 ; N uni1F11 ; G 1687 +U 7954 ; WX 608 ; N uni1F12 ; G 1688 +U 7955 ; WX 608 ; N uni1F13 ; G 1689 +U 7956 ; WX 608 ; N uni1F14 ; G 1690 +U 7957 ; WX 608 ; N uni1F15 ; G 1691 +U 7960 ; WX 917 ; N uni1F18 ; G 1692 +U 7961 ; WX 909 ; N uni1F19 ; G 1693 +U 7962 ; WX 1169 ; N uni1F1A ; G 1694 +U 7963 ; WX 1169 ; N uni1F1B ; G 1695 +U 7964 ; WX 1093 ; N uni1F1C ; G 1696 +U 7965 ; WX 1120 ; N uni1F1D ; G 1697 +U 7968 ; WX 727 ; N uni1F20 ; G 1698 +U 7969 ; WX 727 ; N uni1F21 ; G 1699 +U 7970 ; WX 727 ; N uni1F22 ; G 1700 +U 7971 ; WX 727 ; N uni1F23 ; G 1701 +U 7972 ; WX 727 ; N uni1F24 ; G 1702 +U 7973 ; WX 727 ; N uni1F25 ; G 1703 +U 7974 ; WX 727 ; N uni1F26 ; G 1704 +U 7975 ; WX 727 ; N uni1F27 ; G 1705 +U 7976 ; WX 1100 ; N uni1F28 ; G 1706 +U 7977 ; WX 1094 ; N uni1F29 ; G 1707 +U 7978 ; WX 1358 ; N uni1F2A ; G 1708 +U 7979 ; WX 1361 ; N uni1F2B ; G 1709 +U 7980 ; WX 1279 ; N uni1F2C ; G 1710 +U 7981 ; WX 1308 ; N uni1F2D ; G 1711 +U 7982 ; WX 1197 ; N uni1F2E ; G 1712 +U 7983 ; WX 1194 ; N uni1F2F ; G 1713 +U 7984 ; WX 484 ; N uni1F30 ; G 1714 +U 7985 ; WX 484 ; N uni1F31 ; G 1715 +U 7986 ; WX 484 ; N uni1F32 ; G 1716 +U 7987 ; WX 484 ; N uni1F33 ; G 1717 +U 7988 ; WX 484 ; N uni1F34 ; G 1718 +U 7989 ; WX 484 ; N uni1F35 ; G 1719 +U 7990 ; WX 484 ; N uni1F36 ; G 1720 +U 7991 ; WX 484 ; N uni1F37 ; G 1721 +U 7992 ; WX 629 ; N uni1F38 ; G 1722 +U 7993 ; WX 617 ; N uni1F39 ; G 1723 +U 7994 ; WX 878 ; N uni1F3A ; G 1724 +U 7995 ; WX 881 ; N uni1F3B ; G 1725 +U 7996 ; WX 799 ; N uni1F3C ; G 1726 +U 7997 ; WX 831 ; N uni1F3D ; G 1727 +U 7998 ; WX 723 ; N uni1F3E ; G 1728 +U 7999 ; WX 714 ; N uni1F3F ; G 1729 +U 8000 ; WX 667 ; N uni1F40 ; G 1730 +U 8001 ; WX 667 ; N uni1F41 ; G 1731 +U 8002 ; WX 667 ; N uni1F42 ; G 1732 +U 8003 ; WX 667 ; N uni1F43 ; G 1733 +U 8004 ; WX 667 ; N uni1F44 ; G 1734 +U 8005 ; WX 667 ; N uni1F45 ; G 1735 +U 8008 ; WX 900 ; N uni1F48 ; G 1736 +U 8009 ; WX 935 ; N uni1F49 ; G 1737 +U 8010 ; WX 1240 ; N uni1F4A ; G 1738 +U 8011 ; WX 1237 ; N uni1F4B ; G 1739 +U 8012 ; WX 1035 ; N uni1F4C ; G 1740 +U 8013 ; WX 1066 ; N uni1F4D ; G 1741 +U 8016 ; WX 694 ; N uni1F50 ; G 1742 +U 8017 ; WX 694 ; N uni1F51 ; G 1743 +U 8018 ; WX 694 ; N uni1F52 ; G 1744 +U 8019 ; WX 694 ; N uni1F53 ; G 1745 +U 8020 ; WX 694 ; N uni1F54 ; G 1746 +U 8021 ; WX 694 ; N uni1F55 ; G 1747 +U 8022 ; WX 694 ; N uni1F56 ; G 1748 +U 8023 ; WX 694 ; N uni1F57 ; G 1749 +U 8025 ; WX 922 ; N uni1F59 ; G 1750 +U 8027 ; WX 1186 ; N uni1F5B ; G 1751 +U 8029 ; WX 1133 ; N uni1F5D ; G 1752 +U 8031 ; WX 1019 ; N uni1F5F ; G 1753 +U 8032 ; WX 952 ; N uni1F60 ; G 1754 +U 8033 ; WX 952 ; N uni1F61 ; G 1755 +U 8034 ; WX 952 ; N uni1F62 ; G 1756 +U 8035 ; WX 952 ; N uni1F63 ; G 1757 +U 8036 ; WX 952 ; N uni1F64 ; G 1758 +U 8037 ; WX 952 ; N uni1F65 ; G 1759 +U 8038 ; WX 952 ; N uni1F66 ; G 1760 +U 8039 ; WX 952 ; N uni1F67 ; G 1761 +U 8040 ; WX 931 ; N uni1F68 ; G 1762 +U 8041 ; WX 963 ; N uni1F69 ; G 1763 +U 8042 ; WX 1268 ; N uni1F6A ; G 1764 +U 8043 ; WX 1274 ; N uni1F6B ; G 1765 +U 8044 ; WX 1054 ; N uni1F6C ; G 1766 +U 8045 ; WX 1088 ; N uni1F6D ; G 1767 +U 8046 ; WX 1023 ; N uni1F6E ; G 1768 +U 8047 ; WX 1060 ; N uni1F6F ; G 1769 +U 8048 ; WX 770 ; N uni1F70 ; G 1770 +U 8049 ; WX 770 ; N uni1F71 ; G 1771 +U 8050 ; WX 608 ; N uni1F72 ; G 1772 +U 8051 ; WX 608 ; N uni1F73 ; G 1773 +U 8052 ; WX 727 ; N uni1F74 ; G 1774 +U 8053 ; WX 727 ; N uni1F75 ; G 1775 +U 8054 ; WX 484 ; N uni1F76 ; G 1776 +U 8055 ; WX 484 ; N uni1F77 ; G 1777 +U 8056 ; WX 667 ; N uni1F78 ; G 1778 +U 8057 ; WX 667 ; N uni1F79 ; G 1779 +U 8058 ; WX 694 ; N uni1F7A ; G 1780 +U 8059 ; WX 694 ; N uni1F7B ; G 1781 +U 8060 ; WX 952 ; N uni1F7C ; G 1782 +U 8061 ; WX 952 ; N uni1F7D ; G 1783 +U 8064 ; WX 770 ; N uni1F80 ; G 1784 +U 8065 ; WX 770 ; N uni1F81 ; G 1785 +U 8066 ; WX 770 ; N uni1F82 ; G 1786 +U 8067 ; WX 770 ; N uni1F83 ; G 1787 +U 8068 ; WX 770 ; N uni1F84 ; G 1788 +U 8069 ; WX 770 ; N uni1F85 ; G 1789 +U 8070 ; WX 770 ; N uni1F86 ; G 1790 +U 8071 ; WX 770 ; N uni1F87 ; G 1791 +U 8072 ; WX 776 ; N uni1F88 ; G 1792 +U 8073 ; WX 776 ; N uni1F89 ; G 1793 +U 8074 ; WX 978 ; N uni1F8A ; G 1794 +U 8075 ; WX 978 ; N uni1F8B ; G 1795 +U 8076 ; WX 832 ; N uni1F8C ; G 1796 +U 8077 ; WX 849 ; N uni1F8D ; G 1797 +U 8078 ; WX 776 ; N uni1F8E ; G 1798 +U 8079 ; WX 776 ; N uni1F8F ; G 1799 +U 8080 ; WX 727 ; N uni1F90 ; G 1800 +U 8081 ; WX 727 ; N uni1F91 ; G 1801 +U 8082 ; WX 727 ; N uni1F92 ; G 1802 +U 8083 ; WX 727 ; N uni1F93 ; G 1803 +U 8084 ; WX 727 ; N uni1F94 ; G 1804 +U 8085 ; WX 727 ; N uni1F95 ; G 1805 +U 8086 ; WX 727 ; N uni1F96 ; G 1806 +U 8087 ; WX 727 ; N uni1F97 ; G 1807 +U 8088 ; WX 1100 ; N uni1F98 ; G 1808 +U 8089 ; WX 1094 ; N uni1F99 ; G 1809 +U 8090 ; WX 1358 ; N uni1F9A ; G 1810 +U 8091 ; WX 1361 ; N uni1F9B ; G 1811 +U 8092 ; WX 1279 ; N uni1F9C ; G 1812 +U 8093 ; WX 1308 ; N uni1F9D ; G 1813 +U 8094 ; WX 1197 ; N uni1F9E ; G 1814 +U 8095 ; WX 1194 ; N uni1F9F ; G 1815 +U 8096 ; WX 952 ; N uni1FA0 ; G 1816 +U 8097 ; WX 952 ; N uni1FA1 ; G 1817 +U 8098 ; WX 952 ; N uni1FA2 ; G 1818 +U 8099 ; WX 952 ; N uni1FA3 ; G 1819 +U 8100 ; WX 952 ; N uni1FA4 ; G 1820 +U 8101 ; WX 952 ; N uni1FA5 ; G 1821 +U 8102 ; WX 952 ; N uni1FA6 ; G 1822 +U 8103 ; WX 952 ; N uni1FA7 ; G 1823 +U 8104 ; WX 931 ; N uni1FA8 ; G 1824 +U 8105 ; WX 963 ; N uni1FA9 ; G 1825 +U 8106 ; WX 1268 ; N uni1FAA ; G 1826 +U 8107 ; WX 1274 ; N uni1FAB ; G 1827 +U 8108 ; WX 1054 ; N uni1FAC ; G 1828 +U 8109 ; WX 1088 ; N uni1FAD ; G 1829 +U 8110 ; WX 1023 ; N uni1FAE ; G 1830 +U 8111 ; WX 1060 ; N uni1FAF ; G 1831 +U 8112 ; WX 770 ; N uni1FB0 ; G 1832 +U 8113 ; WX 770 ; N uni1FB1 ; G 1833 +U 8114 ; WX 770 ; N uni1FB2 ; G 1834 +U 8115 ; WX 770 ; N uni1FB3 ; G 1835 +U 8116 ; WX 770 ; N uni1FB4 ; G 1836 +U 8118 ; WX 770 ; N uni1FB6 ; G 1837 +U 8119 ; WX 770 ; N uni1FB7 ; G 1838 +U 8120 ; WX 776 ; N uni1FB8 ; G 1839 +U 8121 ; WX 776 ; N uni1FB9 ; G 1840 +U 8122 ; WX 811 ; N uni1FBA ; G 1841 +U 8123 ; WX 776 ; N uni1FBB ; G 1842 +U 8124 ; WX 776 ; N uni1FBC ; G 1843 +U 8125 ; WX 500 ; N uni1FBD ; G 1844 +U 8126 ; WX 500 ; N uni1FBE ; G 1845 +U 8127 ; WX 500 ; N uni1FBF ; G 1846 +U 8128 ; WX 500 ; N uni1FC0 ; G 1847 +U 8129 ; WX 500 ; N uni1FC1 ; G 1848 +U 8130 ; WX 727 ; N uni1FC2 ; G 1849 +U 8131 ; WX 727 ; N uni1FC3 ; G 1850 +U 8132 ; WX 727 ; N uni1FC4 ; G 1851 +U 8134 ; WX 727 ; N uni1FC6 ; G 1852 +U 8135 ; WX 727 ; N uni1FC7 ; G 1853 +U 8136 ; WX 1000 ; N uni1FC8 ; G 1854 +U 8137 ; WX 947 ; N uni1FC9 ; G 1855 +U 8138 ; WX 1191 ; N uni1FCA ; G 1856 +U 8139 ; WX 1118 ; N uni1FCB ; G 1857 +U 8140 ; WX 945 ; N uni1FCC ; G 1858 +U 8141 ; WX 500 ; N uni1FCD ; G 1859 +U 8142 ; WX 500 ; N uni1FCE ; G 1860 +U 8143 ; WX 500 ; N uni1FCF ; G 1861 +U 8144 ; WX 484 ; N uni1FD0 ; G 1862 +U 8145 ; WX 484 ; N uni1FD1 ; G 1863 +U 8146 ; WX 484 ; N uni1FD2 ; G 1864 +U 8147 ; WX 484 ; N uni1FD3 ; G 1865 +U 8150 ; WX 484 ; N uni1FD6 ; G 1866 +U 8151 ; WX 484 ; N uni1FD7 ; G 1867 +U 8152 ; WX 468 ; N uni1FD8 ; G 1868 +U 8153 ; WX 468 ; N uni1FD9 ; G 1869 +U 8154 ; WX 714 ; N uni1FDA ; G 1870 +U 8155 ; WX 662 ; N uni1FDB ; G 1871 +U 8157 ; WX 500 ; N uni1FDD ; G 1872 +U 8158 ; WX 500 ; N uni1FDE ; G 1873 +U 8159 ; WX 500 ; N uni1FDF ; G 1874 +U 8160 ; WX 694 ; N uni1FE0 ; G 1875 +U 8161 ; WX 694 ; N uni1FE1 ; G 1876 +U 8162 ; WX 694 ; N uni1FE2 ; G 1877 +U 8163 ; WX 694 ; N uni1FE3 ; G 1878 +U 8164 ; WX 665 ; N uni1FE4 ; G 1879 +U 8165 ; WX 665 ; N uni1FE5 ; G 1880 +U 8166 ; WX 694 ; N uni1FE6 ; G 1881 +U 8167 ; WX 694 ; N uni1FE7 ; G 1882 +U 8168 ; WX 714 ; N uni1FE8 ; G 1883 +U 8169 ; WX 714 ; N uni1FE9 ; G 1884 +U 8170 ; WX 1019 ; N uni1FEA ; G 1885 +U 8171 ; WX 953 ; N uni1FEB ; G 1886 +U 8172 ; WX 910 ; N uni1FEC ; G 1887 +U 8173 ; WX 500 ; N uni1FED ; G 1888 +U 8174 ; WX 500 ; N uni1FEE ; G 1889 +U 8175 ; WX 500 ; N uni1FEF ; G 1890 +U 8178 ; WX 952 ; N uni1FF2 ; G 1891 +U 8179 ; WX 952 ; N uni1FF3 ; G 1892 +U 8180 ; WX 952 ; N uni1FF4 ; G 1893 +U 8182 ; WX 952 ; N uni1FF6 ; G 1894 +U 8183 ; WX 952 ; N uni1FF7 ; G 1895 +U 8184 ; WX 1069 ; N uni1FF8 ; G 1896 +U 8185 ; WX 887 ; N uni1FF9 ; G 1897 +U 8186 ; WX 1101 ; N uni1FFA ; G 1898 +U 8187 ; WX 911 ; N uni1FFB ; G 1899 +U 8188 ; WX 890 ; N uni1FFC ; G 1900 +U 8189 ; WX 500 ; N uni1FFD ; G 1901 +U 8190 ; WX 500 ; N uni1FFE ; G 1902 +U 8192 ; WX 500 ; N uni2000 ; G 1903 +U 8193 ; WX 1000 ; N uni2001 ; G 1904 +U 8194 ; WX 500 ; N uni2002 ; G 1905 +U 8195 ; WX 1000 ; N uni2003 ; G 1906 +U 8196 ; WX 330 ; N uni2004 ; G 1907 +U 8197 ; WX 250 ; N uni2005 ; G 1908 +U 8198 ; WX 167 ; N uni2006 ; G 1909 +U 8199 ; WX 696 ; N uni2007 ; G 1910 +U 8200 ; WX 348 ; N uni2008 ; G 1911 +U 8201 ; WX 200 ; N uni2009 ; G 1912 +U 8202 ; WX 100 ; N uni200A ; G 1913 +U 8203 ; WX 0 ; N uni200B ; G 1914 +U 8204 ; WX 0 ; N uni200C ; G 1915 +U 8205 ; WX 0 ; N uni200D ; G 1916 +U 8206 ; WX 0 ; N uni200E ; G 1917 +U 8207 ; WX 0 ; N uni200F ; G 1918 +U 8208 ; WX 415 ; N uni2010 ; G 1919 +U 8209 ; WX 415 ; N uni2011 ; G 1920 +U 8210 ; WX 696 ; N figuredash ; G 1921 +U 8211 ; WX 500 ; N endash ; G 1922 +U 8212 ; WX 1000 ; N emdash ; G 1923 +U 8213 ; WX 1000 ; N uni2015 ; G 1924 +U 8214 ; WX 500 ; N uni2016 ; G 1925 +U 8215 ; WX 500 ; N underscoredbl ; G 1926 +U 8216 ; WX 348 ; N quoteleft ; G 1927 +U 8217 ; WX 348 ; N quoteright ; G 1928 +U 8218 ; WX 348 ; N quotesinglbase ; G 1929 +U 8219 ; WX 348 ; N quotereversed ; G 1930 +U 8220 ; WX 575 ; N quotedblleft ; G 1931 +U 8221 ; WX 575 ; N quotedblright ; G 1932 +U 8222 ; WX 575 ; N quotedblbase ; G 1933 +U 8223 ; WX 575 ; N uni201F ; G 1934 +U 8224 ; WX 523 ; N dagger ; G 1935 +U 8225 ; WX 523 ; N daggerdbl ; G 1936 +U 8226 ; WX 639 ; N bullet ; G 1937 +U 8227 ; WX 639 ; N uni2023 ; G 1938 +U 8228 ; WX 348 ; N onedotenleader ; G 1939 +U 8229 ; WX 674 ; N twodotenleader ; G 1940 +U 8230 ; WX 1000 ; N ellipsis ; G 1941 +U 8234 ; WX 0 ; N uni202A ; G 1942 +U 8235 ; WX 0 ; N uni202B ; G 1943 +U 8236 ; WX 0 ; N uni202C ; G 1944 +U 8237 ; WX 0 ; N uni202D ; G 1945 +U 8238 ; WX 0 ; N uni202E ; G 1946 +U 8239 ; WX 200 ; N uni202F ; G 1947 +U 8240 ; WX 1385 ; N perthousand ; G 1948 +U 8241 ; WX 1820 ; N uni2031 ; G 1949 +U 8242 ; WX 264 ; N minute ; G 1950 +U 8243 ; WX 447 ; N second ; G 1951 +U 8244 ; WX 630 ; N uni2034 ; G 1952 +U 8245 ; WX 264 ; N uni2035 ; G 1953 +U 8246 ; WX 447 ; N uni2036 ; G 1954 +U 8247 ; WX 630 ; N uni2037 ; G 1955 +U 8248 ; WX 733 ; N uni2038 ; G 1956 +U 8249 ; WX 400 ; N guilsinglleft ; G 1957 +U 8250 ; WX 400 ; N guilsinglright ; G 1958 +U 8252 ; WX 629 ; N exclamdbl ; G 1959 +U 8253 ; WX 586 ; N uni203D ; G 1960 +U 8254 ; WX 500 ; N uni203E ; G 1961 +U 8258 ; WX 1023 ; N uni2042 ; G 1962 +U 8260 ; WX 167 ; N fraction ; G 1963 +U 8261 ; WX 473 ; N uni2045 ; G 1964 +U 8262 ; WX 473 ; N uni2046 ; G 1965 +U 8263 ; WX 1082 ; N uni2047 ; G 1966 +U 8264 ; WX 856 ; N uni2048 ; G 1967 +U 8265 ; WX 856 ; N uni2049 ; G 1968 +U 8267 ; WX 636 ; N uni204B ; G 1969 +U 8268 ; WX 500 ; N uni204C ; G 1970 +U 8269 ; WX 500 ; N uni204D ; G 1971 +U 8270 ; WX 523 ; N uni204E ; G 1972 +U 8271 ; WX 369 ; N uni204F ; G 1973 +U 8273 ; WX 523 ; N uni2051 ; G 1974 +U 8274 ; WX 556 ; N uni2052 ; G 1975 +U 8275 ; WX 1000 ; N uni2053 ; G 1976 +U 8279 ; WX 813 ; N uni2057 ; G 1977 +U 8287 ; WX 222 ; N uni205F ; G 1978 +U 8288 ; WX 0 ; N uni2060 ; G 1979 +U 8289 ; WX 0 ; N uni2061 ; G 1980 +U 8290 ; WX 0 ; N uni2062 ; G 1981 +U 8291 ; WX 0 ; N uni2063 ; G 1982 +U 8292 ; WX 0 ; N uni2064 ; G 1983 +U 8298 ; WX 0 ; N uni206A ; G 1984 +U 8299 ; WX 0 ; N uni206B ; G 1985 +U 8300 ; WX 0 ; N uni206C ; G 1986 +U 8301 ; WX 0 ; N uni206D ; G 1987 +U 8302 ; WX 0 ; N uni206E ; G 1988 +U 8303 ; WX 0 ; N uni206F ; G 1989 +U 8304 ; WX 438 ; N uni2070 ; G 1990 +U 8305 ; WX 239 ; N uni2071 ; G 1991 +U 8308 ; WX 438 ; N uni2074 ; G 1992 +U 8309 ; WX 438 ; N uni2075 ; G 1993 +U 8310 ; WX 438 ; N uni2076 ; G 1994 +U 8311 ; WX 438 ; N uni2077 ; G 1995 +U 8312 ; WX 438 ; N uni2078 ; G 1996 +U 8313 ; WX 438 ; N uni2079 ; G 1997 +U 8314 ; WX 528 ; N uni207A ; G 1998 +U 8315 ; WX 528 ; N uni207B ; G 1999 +U 8316 ; WX 528 ; N uni207C ; G 2000 +U 8317 ; WX 298 ; N uni207D ; G 2001 +U 8318 ; WX 298 ; N uni207E ; G 2002 +U 8319 ; WX 519 ; N uni207F ; G 2003 +U 8320 ; WX 438 ; N uni2080 ; G 2004 +U 8321 ; WX 438 ; N uni2081 ; G 2005 +U 8322 ; WX 438 ; N uni2082 ; G 2006 +U 8323 ; WX 438 ; N uni2083 ; G 2007 +U 8324 ; WX 438 ; N uni2084 ; G 2008 +U 8325 ; WX 438 ; N uni2085 ; G 2009 +U 8326 ; WX 438 ; N uni2086 ; G 2010 +U 8327 ; WX 438 ; N uni2087 ; G 2011 +U 8328 ; WX 438 ; N uni2088 ; G 2012 +U 8329 ; WX 438 ; N uni2089 ; G 2013 +U 8330 ; WX 528 ; N uni208A ; G 2014 +U 8331 ; WX 528 ; N uni208B ; G 2015 +U 8332 ; WX 528 ; N uni208C ; G 2016 +U 8333 ; WX 298 ; N uni208D ; G 2017 +U 8334 ; WX 298 ; N uni208E ; G 2018 +U 8336 ; WX 466 ; N uni2090 ; G 2019 +U 8337 ; WX 444 ; N uni2091 ; G 2020 +U 8338 ; WX 467 ; N uni2092 ; G 2021 +U 8339 ; WX 475 ; N uni2093 ; G 2022 +U 8340 ; WX 444 ; N uni2094 ; G 2023 +U 8341 ; WX 521 ; N uni2095 ; G 2024 +U 8342 ; WX 523 ; N uni2096 ; G 2025 +U 8343 ; WX 292 ; N uni2097 ; G 2026 +U 8344 ; WX 729 ; N uni2098 ; G 2027 +U 8345 ; WX 519 ; N uni2099 ; G 2028 +U 8346 ; WX 499 ; N uni209A ; G 2029 +U 8347 ; WX 395 ; N uni209B ; G 2030 +U 8348 ; WX 371 ; N uni209C ; G 2031 +U 8358 ; WX 696 ; N uni20A6 ; G 2032 +U 8364 ; WX 696 ; N Euro ; G 2033 +U 8367 ; WX 1155 ; N uni20AF ; G 2034 +U 8369 ; WX 790 ; N uni20B1 ; G 2035 +U 8372 ; WX 876 ; N uni20B4 ; G 2036 +U 8373 ; WX 696 ; N uni20B5 ; G 2037 +U 8376 ; WX 696 ; N uni20B8 ; G 2038 +U 8377 ; WX 696 ; N uni20B9 ; G 2039 +U 8378 ; WX 696 ; N uni20BA ; G 2040 +U 8381 ; WX 696 ; N uni20BD ; G 2041 +U 8451 ; WX 1198 ; N uni2103 ; G 2042 +U 8457 ; WX 1112 ; N uni2109 ; G 2043 +U 8462 ; WX 727 ; N uni210E ; G 2044 +U 8463 ; WX 727 ; N uni210F ; G 2045 +U 8470 ; WX 1087 ; N uni2116 ; G 2046 +U 8482 ; WX 1000 ; N trademark ; G 2047 +U 8486 ; WX 890 ; N uni2126 ; G 2048 +U 8487 ; WX 890 ; N uni2127 ; G 2049 +U 8490 ; WX 869 ; N uni212A ; G 2050 +U 8491 ; WX 776 ; N uni212B ; G 2051 +U 8498 ; WX 710 ; N uni2132 ; G 2052 +U 8513 ; WX 775 ; N uni2141 ; G 2053 +U 8514 ; WX 557 ; N uni2142 ; G 2054 +U 8515 ; WX 637 ; N uni2143 ; G 2055 +U 8516 ; WX 760 ; N uni2144 ; G 2056 +U 8523 ; WX 903 ; N uni214B ; G 2057 +U 8526 ; WX 592 ; N uni214E ; G 2058 +U 8528 ; WX 1035 ; N uni2150 ; G 2059 +U 8529 ; WX 1035 ; N uni2151 ; G 2060 +U 8530 ; WX 1473 ; N uni2152 ; G 2061 +U 8531 ; WX 1035 ; N onethird ; G 2062 +U 8532 ; WX 1035 ; N twothirds ; G 2063 +U 8533 ; WX 1035 ; N uni2155 ; G 2064 +U 8534 ; WX 1035 ; N uni2156 ; G 2065 +U 8535 ; WX 1035 ; N uni2157 ; G 2066 +U 8536 ; WX 1035 ; N uni2158 ; G 2067 +U 8537 ; WX 1035 ; N uni2159 ; G 2068 +U 8538 ; WX 1035 ; N uni215A ; G 2069 +U 8539 ; WX 1035 ; N oneeighth ; G 2070 +U 8540 ; WX 1035 ; N threeeighths ; G 2071 +U 8541 ; WX 1035 ; N fiveeighths ; G 2072 +U 8542 ; WX 1035 ; N seveneighths ; G 2073 +U 8543 ; WX 615 ; N uni215F ; G 2074 +U 8544 ; WX 468 ; N uni2160 ; G 2075 +U 8545 ; WX 843 ; N uni2161 ; G 2076 +U 8546 ; WX 1218 ; N uni2162 ; G 2077 +U 8547 ; WX 1135 ; N uni2163 ; G 2078 +U 8548 ; WX 776 ; N uni2164 ; G 2079 +U 8549 ; WX 1150 ; N uni2165 ; G 2080 +U 8550 ; WX 1525 ; N uni2166 ; G 2081 +U 8551 ; WX 1900 ; N uni2167 ; G 2082 +U 8552 ; WX 1126 ; N uni2168 ; G 2083 +U 8553 ; WX 776 ; N uni2169 ; G 2084 +U 8554 ; WX 1127 ; N uni216A ; G 2085 +U 8555 ; WX 1502 ; N uni216B ; G 2086 +U 8556 ; WX 703 ; N uni216C ; G 2087 +U 8557 ; WX 796 ; N uni216D ; G 2088 +U 8558 ; WX 867 ; N uni216E ; G 2089 +U 8559 ; WX 1107 ; N uni216F ; G 2090 +U 8560 ; WX 380 ; N uni2170 ; G 2091 +U 8561 ; WX 760 ; N uni2171 ; G 2092 +U 8562 ; WX 1140 ; N uni2172 ; G 2093 +U 8563 ; WX 961 ; N uni2173 ; G 2094 +U 8564 ; WX 581 ; N uni2174 ; G 2095 +U 8565 ; WX 961 ; N uni2175 ; G 2096 +U 8566 ; WX 1341 ; N uni2176 ; G 2097 +U 8567 ; WX 1721 ; N uni2177 ; G 2098 +U 8568 ; WX 976 ; N uni2178 ; G 2099 +U 8569 ; WX 596 ; N uni2179 ; G 2100 +U 8570 ; WX 976 ; N uni217A ; G 2101 +U 8571 ; WX 1356 ; N uni217B ; G 2102 +U 8572 ; WX 380 ; N uni217C ; G 2103 +U 8573 ; WX 609 ; N uni217D ; G 2104 +U 8574 ; WX 699 ; N uni217E ; G 2105 +U 8575 ; WX 1058 ; N uni217F ; G 2106 +U 8576 ; WX 1255 ; N uni2180 ; G 2107 +U 8577 ; WX 867 ; N uni2181 ; G 2108 +U 8578 ; WX 1268 ; N uni2182 ; G 2109 +U 8579 ; WX 796 ; N uni2183 ; G 2110 +U 8580 ; WX 609 ; N uni2184 ; G 2111 +U 8581 ; WX 796 ; N uni2185 ; G 2112 +U 8585 ; WX 1035 ; N uni2189 ; G 2113 +U 8592 ; WX 838 ; N arrowleft ; G 2114 +U 8593 ; WX 838 ; N arrowup ; G 2115 +U 8594 ; WX 838 ; N arrowright ; G 2116 +U 8595 ; WX 838 ; N arrowdown ; G 2117 +U 8596 ; WX 838 ; N arrowboth ; G 2118 +U 8597 ; WX 838 ; N arrowupdn ; G 2119 +U 8598 ; WX 838 ; N uni2196 ; G 2120 +U 8599 ; WX 838 ; N uni2197 ; G 2121 +U 8600 ; WX 838 ; N uni2198 ; G 2122 +U 8601 ; WX 838 ; N uni2199 ; G 2123 +U 8602 ; WX 838 ; N uni219A ; G 2124 +U 8603 ; WX 838 ; N uni219B ; G 2125 +U 8604 ; WX 838 ; N uni219C ; G 2126 +U 8605 ; WX 838 ; N uni219D ; G 2127 +U 8606 ; WX 838 ; N uni219E ; G 2128 +U 8607 ; WX 838 ; N uni219F ; G 2129 +U 8608 ; WX 838 ; N uni21A0 ; G 2130 +U 8609 ; WX 838 ; N uni21A1 ; G 2131 +U 8610 ; WX 838 ; N uni21A2 ; G 2132 +U 8611 ; WX 838 ; N uni21A3 ; G 2133 +U 8612 ; WX 838 ; N uni21A4 ; G 2134 +U 8613 ; WX 838 ; N uni21A5 ; G 2135 +U 8614 ; WX 838 ; N uni21A6 ; G 2136 +U 8615 ; WX 838 ; N uni21A7 ; G 2137 +U 8616 ; WX 838 ; N arrowupdnbse ; G 2138 +U 8617 ; WX 838 ; N uni21A9 ; G 2139 +U 8618 ; WX 838 ; N uni21AA ; G 2140 +U 8619 ; WX 838 ; N uni21AB ; G 2141 +U 8620 ; WX 838 ; N uni21AC ; G 2142 +U 8621 ; WX 838 ; N uni21AD ; G 2143 +U 8622 ; WX 838 ; N uni21AE ; G 2144 +U 8623 ; WX 850 ; N uni21AF ; G 2145 +U 8624 ; WX 838 ; N uni21B0 ; G 2146 +U 8625 ; WX 838 ; N uni21B1 ; G 2147 +U 8626 ; WX 838 ; N uni21B2 ; G 2148 +U 8627 ; WX 838 ; N uni21B3 ; G 2149 +U 8628 ; WX 838 ; N uni21B4 ; G 2150 +U 8629 ; WX 838 ; N carriagereturn ; G 2151 +U 8630 ; WX 838 ; N uni21B6 ; G 2152 +U 8631 ; WX 838 ; N uni21B7 ; G 2153 +U 8632 ; WX 838 ; N uni21B8 ; G 2154 +U 8633 ; WX 838 ; N uni21B9 ; G 2155 +U 8634 ; WX 838 ; N uni21BA ; G 2156 +U 8635 ; WX 838 ; N uni21BB ; G 2157 +U 8636 ; WX 838 ; N uni21BC ; G 2158 +U 8637 ; WX 838 ; N uni21BD ; G 2159 +U 8638 ; WX 838 ; N uni21BE ; G 2160 +U 8639 ; WX 838 ; N uni21BF ; G 2161 +U 8640 ; WX 838 ; N uni21C0 ; G 2162 +U 8641 ; WX 838 ; N uni21C1 ; G 2163 +U 8642 ; WX 838 ; N uni21C2 ; G 2164 +U 8643 ; WX 838 ; N uni21C3 ; G 2165 +U 8644 ; WX 838 ; N uni21C4 ; G 2166 +U 8645 ; WX 838 ; N uni21C5 ; G 2167 +U 8646 ; WX 838 ; N uni21C6 ; G 2168 +U 8647 ; WX 838 ; N uni21C7 ; G 2169 +U 8648 ; WX 838 ; N uni21C8 ; G 2170 +U 8649 ; WX 838 ; N uni21C9 ; G 2171 +U 8650 ; WX 838 ; N uni21CA ; G 2172 +U 8651 ; WX 838 ; N uni21CB ; G 2173 +U 8652 ; WX 838 ; N uni21CC ; G 2174 +U 8653 ; WX 838 ; N uni21CD ; G 2175 +U 8654 ; WX 838 ; N uni21CE ; G 2176 +U 8655 ; WX 838 ; N uni21CF ; G 2177 +U 8656 ; WX 838 ; N arrowdblleft ; G 2178 +U 8657 ; WX 838 ; N arrowdblup ; G 2179 +U 8658 ; WX 838 ; N arrowdblright ; G 2180 +U 8659 ; WX 838 ; N arrowdbldown ; G 2181 +U 8660 ; WX 838 ; N arrowdblboth ; G 2182 +U 8661 ; WX 838 ; N uni21D5 ; G 2183 +U 8662 ; WX 838 ; N uni21D6 ; G 2184 +U 8663 ; WX 838 ; N uni21D7 ; G 2185 +U 8664 ; WX 838 ; N uni21D8 ; G 2186 +U 8665 ; WX 838 ; N uni21D9 ; G 2187 +U 8666 ; WX 838 ; N uni21DA ; G 2188 +U 8667 ; WX 838 ; N uni21DB ; G 2189 +U 8668 ; WX 838 ; N uni21DC ; G 2190 +U 8669 ; WX 838 ; N uni21DD ; G 2191 +U 8670 ; WX 838 ; N uni21DE ; G 2192 +U 8671 ; WX 838 ; N uni21DF ; G 2193 +U 8672 ; WX 838 ; N uni21E0 ; G 2194 +U 8673 ; WX 838 ; N uni21E1 ; G 2195 +U 8674 ; WX 838 ; N uni21E2 ; G 2196 +U 8675 ; WX 838 ; N uni21E3 ; G 2197 +U 8676 ; WX 838 ; N uni21E4 ; G 2198 +U 8677 ; WX 838 ; N uni21E5 ; G 2199 +U 8678 ; WX 838 ; N uni21E6 ; G 2200 +U 8679 ; WX 838 ; N uni21E7 ; G 2201 +U 8680 ; WX 838 ; N uni21E8 ; G 2202 +U 8681 ; WX 838 ; N uni21E9 ; G 2203 +U 8682 ; WX 838 ; N uni21EA ; G 2204 +U 8683 ; WX 838 ; N uni21EB ; G 2205 +U 8684 ; WX 838 ; N uni21EC ; G 2206 +U 8685 ; WX 838 ; N uni21ED ; G 2207 +U 8686 ; WX 838 ; N uni21EE ; G 2208 +U 8687 ; WX 838 ; N uni21EF ; G 2209 +U 8688 ; WX 838 ; N uni21F0 ; G 2210 +U 8689 ; WX 838 ; N uni21F1 ; G 2211 +U 8690 ; WX 838 ; N uni21F2 ; G 2212 +U 8691 ; WX 838 ; N uni21F3 ; G 2213 +U 8692 ; WX 838 ; N uni21F4 ; G 2214 +U 8693 ; WX 838 ; N uni21F5 ; G 2215 +U 8694 ; WX 838 ; N uni21F6 ; G 2216 +U 8695 ; WX 838 ; N uni21F7 ; G 2217 +U 8696 ; WX 838 ; N uni21F8 ; G 2218 +U 8697 ; WX 838 ; N uni21F9 ; G 2219 +U 8698 ; WX 838 ; N uni21FA ; G 2220 +U 8699 ; WX 838 ; N uni21FB ; G 2221 +U 8700 ; WX 838 ; N uni21FC ; G 2222 +U 8701 ; WX 838 ; N uni21FD ; G 2223 +U 8702 ; WX 838 ; N uni21FE ; G 2224 +U 8703 ; WX 838 ; N uni21FF ; G 2225 +U 8704 ; WX 641 ; N universal ; G 2226 +U 8706 ; WX 534 ; N partialdiff ; G 2227 +U 8707 ; WX 620 ; N existential ; G 2228 +U 8708 ; WX 620 ; N uni2204 ; G 2229 +U 8710 ; WX 753 ; N increment ; G 2230 +U 8711 ; WX 753 ; N gradient ; G 2231 +U 8712 ; WX 740 ; N element ; G 2232 +U 8713 ; WX 740 ; N notelement ; G 2233 +U 8715 ; WX 740 ; N suchthat ; G 2234 +U 8716 ; WX 740 ; N uni220C ; G 2235 +U 8719 ; WX 842 ; N product ; G 2236 +U 8720 ; WX 842 ; N uni2210 ; G 2237 +U 8721 ; WX 753 ; N summation ; G 2238 +U 8722 ; WX 838 ; N minus ; G 2239 +U 8723 ; WX 838 ; N uni2213 ; G 2240 +U 8724 ; WX 838 ; N uni2214 ; G 2241 +U 8725 ; WX 365 ; N uni2215 ; G 2242 +U 8727 ; WX 691 ; N asteriskmath ; G 2243 +U 8728 ; WX 519 ; N uni2218 ; G 2244 +U 8729 ; WX 519 ; N uni2219 ; G 2245 +U 8730 ; WX 657 ; N radical ; G 2246 +U 8731 ; WX 657 ; N uni221B ; G 2247 +U 8732 ; WX 657 ; N uni221C ; G 2248 +U 8733 ; WX 672 ; N proportional ; G 2249 +U 8734 ; WX 833 ; N infinity ; G 2250 +U 8735 ; WX 838 ; N orthogonal ; G 2251 +U 8736 ; WX 838 ; N angle ; G 2252 +U 8739 ; WX 324 ; N uni2223 ; G 2253 +U 8740 ; WX 607 ; N uni2224 ; G 2254 +U 8741 ; WX 529 ; N uni2225 ; G 2255 +U 8742 ; WX 773 ; N uni2226 ; G 2256 +U 8743 ; WX 812 ; N logicaland ; G 2257 +U 8744 ; WX 812 ; N logicalor ; G 2258 +U 8745 ; WX 838 ; N intersection ; G 2259 +U 8746 ; WX 838 ; N union ; G 2260 +U 8747 ; WX 579 ; N integral ; G 2261 +U 8748 ; WX 1000 ; N uni222C ; G 2262 +U 8749 ; WX 1391 ; N uni222D ; G 2263 +U 8760 ; WX 838 ; N uni2238 ; G 2264 +U 8761 ; WX 838 ; N uni2239 ; G 2265 +U 8762 ; WX 838 ; N uni223A ; G 2266 +U 8763 ; WX 838 ; N uni223B ; G 2267 +U 8764 ; WX 838 ; N similar ; G 2268 +U 8765 ; WX 838 ; N uni223D ; G 2269 +U 8770 ; WX 838 ; N uni2242 ; G 2270 +U 8771 ; WX 838 ; N uni2243 ; G 2271 +U 8776 ; WX 838 ; N approxequal ; G 2272 +U 8784 ; WX 838 ; N uni2250 ; G 2273 +U 8785 ; WX 838 ; N uni2251 ; G 2274 +U 8786 ; WX 838 ; N uni2252 ; G 2275 +U 8787 ; WX 838 ; N uni2253 ; G 2276 +U 8788 ; WX 1082 ; N uni2254 ; G 2277 +U 8789 ; WX 1082 ; N uni2255 ; G 2278 +U 8800 ; WX 838 ; N notequal ; G 2279 +U 8801 ; WX 838 ; N equivalence ; G 2280 +U 8804 ; WX 838 ; N lessequal ; G 2281 +U 8805 ; WX 838 ; N greaterequal ; G 2282 +U 8834 ; WX 838 ; N propersubset ; G 2283 +U 8835 ; WX 838 ; N propersuperset ; G 2284 +U 8836 ; WX 838 ; N notsubset ; G 2285 +U 8837 ; WX 838 ; N uni2285 ; G 2286 +U 8838 ; WX 838 ; N reflexsubset ; G 2287 +U 8839 ; WX 838 ; N reflexsuperset ; G 2288 +U 8844 ; WX 838 ; N uni228C ; G 2289 +U 8845 ; WX 838 ; N uni228D ; G 2290 +U 8846 ; WX 838 ; N uni228E ; G 2291 +U 8847 ; WX 838 ; N uni228F ; G 2292 +U 8848 ; WX 838 ; N uni2290 ; G 2293 +U 8849 ; WX 838 ; N uni2291 ; G 2294 +U 8850 ; WX 838 ; N uni2292 ; G 2295 +U 8851 ; WX 838 ; N uni2293 ; G 2296 +U 8852 ; WX 838 ; N uni2294 ; G 2297 +U 8853 ; WX 838 ; N circleplus ; G 2298 +U 8854 ; WX 838 ; N uni2296 ; G 2299 +U 8855 ; WX 838 ; N circlemultiply ; G 2300 +U 8856 ; WX 838 ; N uni2298 ; G 2301 +U 8857 ; WX 838 ; N uni2299 ; G 2302 +U 8858 ; WX 838 ; N uni229A ; G 2303 +U 8859 ; WX 838 ; N uni229B ; G 2304 +U 8860 ; WX 838 ; N uni229C ; G 2305 +U 8861 ; WX 838 ; N uni229D ; G 2306 +U 8862 ; WX 838 ; N uni229E ; G 2307 +U 8863 ; WX 838 ; N uni229F ; G 2308 +U 8864 ; WX 838 ; N uni22A0 ; G 2309 +U 8865 ; WX 838 ; N uni22A1 ; G 2310 +U 8866 ; WX 884 ; N uni22A2 ; G 2311 +U 8867 ; WX 884 ; N uni22A3 ; G 2312 +U 8868 ; WX 960 ; N uni22A4 ; G 2313 +U 8869 ; WX 960 ; N perpendicular ; G 2314 +U 8870 ; WX 616 ; N uni22A6 ; G 2315 +U 8871 ; WX 616 ; N uni22A7 ; G 2316 +U 8872 ; WX 884 ; N uni22A8 ; G 2317 +U 8873 ; WX 884 ; N uni22A9 ; G 2318 +U 8874 ; WX 884 ; N uni22AA ; G 2319 +U 8875 ; WX 1080 ; N uni22AB ; G 2320 +U 8876 ; WX 884 ; N uni22AC ; G 2321 +U 8877 ; WX 884 ; N uni22AD ; G 2322 +U 8878 ; WX 884 ; N uni22AE ; G 2323 +U 8879 ; WX 1080 ; N uni22AF ; G 2324 +U 8900 ; WX 626 ; N uni22C4 ; G 2325 +U 8901 ; WX 398 ; N dotmath ; G 2326 +U 8962 ; WX 834 ; N house ; G 2327 +U 8968 ; WX 473 ; N uni2308 ; G 2328 +U 8969 ; WX 473 ; N uni2309 ; G 2329 +U 8970 ; WX 473 ; N uni230A ; G 2330 +U 8971 ; WX 473 ; N uni230B ; G 2331 +U 8976 ; WX 838 ; N revlogicalnot ; G 2332 +U 8977 ; WX 539 ; N uni2311 ; G 2333 +U 8984 ; WX 928 ; N uni2318 ; G 2334 +U 8985 ; WX 838 ; N uni2319 ; G 2335 +U 8992 ; WX 579 ; N integraltp ; G 2336 +U 8993 ; WX 579 ; N integralbt ; G 2337 +U 8997 ; WX 1000 ; N uni2325 ; G 2338 +U 9000 ; WX 1443 ; N uni2328 ; G 2339 +U 9085 ; WX 1008 ; N uni237D ; G 2340 +U 9115 ; WX 500 ; N uni239B ; G 2341 +U 9116 ; WX 500 ; N uni239C ; G 2342 +U 9117 ; WX 500 ; N uni239D ; G 2343 +U 9118 ; WX 500 ; N uni239E ; G 2344 +U 9119 ; WX 500 ; N uni239F ; G 2345 +U 9120 ; WX 500 ; N uni23A0 ; G 2346 +U 9121 ; WX 500 ; N uni23A1 ; G 2347 +U 9122 ; WX 500 ; N uni23A2 ; G 2348 +U 9123 ; WX 500 ; N uni23A3 ; G 2349 +U 9124 ; WX 500 ; N uni23A4 ; G 2350 +U 9125 ; WX 500 ; N uni23A5 ; G 2351 +U 9126 ; WX 500 ; N uni23A6 ; G 2352 +U 9127 ; WX 750 ; N uni23A7 ; G 2353 +U 9128 ; WX 750 ; N uni23A8 ; G 2354 +U 9129 ; WX 750 ; N uni23A9 ; G 2355 +U 9130 ; WX 750 ; N uni23AA ; G 2356 +U 9131 ; WX 750 ; N uni23AB ; G 2357 +U 9132 ; WX 750 ; N uni23AC ; G 2358 +U 9133 ; WX 750 ; N uni23AD ; G 2359 +U 9134 ; WX 579 ; N uni23AE ; G 2360 +U 9167 ; WX 945 ; N uni23CF ; G 2361 +U 9251 ; WX 834 ; N uni2423 ; G 2362 +U 9472 ; WX 602 ; N SF100000 ; G 2363 +U 9473 ; WX 602 ; N uni2501 ; G 2364 +U 9474 ; WX 602 ; N SF110000 ; G 2365 +U 9475 ; WX 602 ; N uni2503 ; G 2366 +U 9476 ; WX 602 ; N uni2504 ; G 2367 +U 9477 ; WX 602 ; N uni2505 ; G 2368 +U 9478 ; WX 602 ; N uni2506 ; G 2369 +U 9479 ; WX 602 ; N uni2507 ; G 2370 +U 9480 ; WX 602 ; N uni2508 ; G 2371 +U 9481 ; WX 602 ; N uni2509 ; G 2372 +U 9482 ; WX 602 ; N uni250A ; G 2373 +U 9483 ; WX 602 ; N uni250B ; G 2374 +U 9484 ; WX 602 ; N SF010000 ; G 2375 +U 9485 ; WX 602 ; N uni250D ; G 2376 +U 9486 ; WX 602 ; N uni250E ; G 2377 +U 9487 ; WX 602 ; N uni250F ; G 2378 +U 9488 ; WX 602 ; N SF030000 ; G 2379 +U 9489 ; WX 602 ; N uni2511 ; G 2380 +U 9490 ; WX 602 ; N uni2512 ; G 2381 +U 9491 ; WX 602 ; N uni2513 ; G 2382 +U 9492 ; WX 602 ; N SF020000 ; G 2383 +U 9493 ; WX 602 ; N uni2515 ; G 2384 +U 9494 ; WX 602 ; N uni2516 ; G 2385 +U 9495 ; WX 602 ; N uni2517 ; G 2386 +U 9496 ; WX 602 ; N SF040000 ; G 2387 +U 9497 ; WX 602 ; N uni2519 ; G 2388 +U 9498 ; WX 602 ; N uni251A ; G 2389 +U 9499 ; WX 602 ; N uni251B ; G 2390 +U 9500 ; WX 602 ; N SF080000 ; G 2391 +U 9501 ; WX 602 ; N uni251D ; G 2392 +U 9502 ; WX 602 ; N uni251E ; G 2393 +U 9503 ; WX 602 ; N uni251F ; G 2394 +U 9504 ; WX 602 ; N uni2520 ; G 2395 +U 9505 ; WX 602 ; N uni2521 ; G 2396 +U 9506 ; WX 602 ; N uni2522 ; G 2397 +U 9507 ; WX 602 ; N uni2523 ; G 2398 +U 9508 ; WX 602 ; N SF090000 ; G 2399 +U 9509 ; WX 602 ; N uni2525 ; G 2400 +U 9510 ; WX 602 ; N uni2526 ; G 2401 +U 9511 ; WX 602 ; N uni2527 ; G 2402 +U 9512 ; WX 602 ; N uni2528 ; G 2403 +U 9513 ; WX 602 ; N uni2529 ; G 2404 +U 9514 ; WX 602 ; N uni252A ; G 2405 +U 9515 ; WX 602 ; N uni252B ; G 2406 +U 9516 ; WX 602 ; N SF060000 ; G 2407 +U 9517 ; WX 602 ; N uni252D ; G 2408 +U 9518 ; WX 602 ; N uni252E ; G 2409 +U 9519 ; WX 602 ; N uni252F ; G 2410 +U 9520 ; WX 602 ; N uni2530 ; G 2411 +U 9521 ; WX 602 ; N uni2531 ; G 2412 +U 9522 ; WX 602 ; N uni2532 ; G 2413 +U 9523 ; WX 602 ; N uni2533 ; G 2414 +U 9524 ; WX 602 ; N SF070000 ; G 2415 +U 9525 ; WX 602 ; N uni2535 ; G 2416 +U 9526 ; WX 602 ; N uni2536 ; G 2417 +U 9527 ; WX 602 ; N uni2537 ; G 2418 +U 9528 ; WX 602 ; N uni2538 ; G 2419 +U 9529 ; WX 602 ; N uni2539 ; G 2420 +U 9530 ; WX 602 ; N uni253A ; G 2421 +U 9531 ; WX 602 ; N uni253B ; G 2422 +U 9532 ; WX 602 ; N SF050000 ; G 2423 +U 9533 ; WX 602 ; N uni253D ; G 2424 +U 9534 ; WX 602 ; N uni253E ; G 2425 +U 9535 ; WX 602 ; N uni253F ; G 2426 +U 9536 ; WX 602 ; N uni2540 ; G 2427 +U 9537 ; WX 602 ; N uni2541 ; G 2428 +U 9538 ; WX 602 ; N uni2542 ; G 2429 +U 9539 ; WX 602 ; N uni2543 ; G 2430 +U 9540 ; WX 602 ; N uni2544 ; G 2431 +U 9541 ; WX 602 ; N uni2545 ; G 2432 +U 9542 ; WX 602 ; N uni2546 ; G 2433 +U 9543 ; WX 602 ; N uni2547 ; G 2434 +U 9544 ; WX 602 ; N uni2548 ; G 2435 +U 9545 ; WX 602 ; N uni2549 ; G 2436 +U 9546 ; WX 602 ; N uni254A ; G 2437 +U 9547 ; WX 602 ; N uni254B ; G 2438 +U 9548 ; WX 602 ; N uni254C ; G 2439 +U 9549 ; WX 602 ; N uni254D ; G 2440 +U 9550 ; WX 602 ; N uni254E ; G 2441 +U 9551 ; WX 602 ; N uni254F ; G 2442 +U 9552 ; WX 602 ; N SF430000 ; G 2443 +U 9553 ; WX 602 ; N SF240000 ; G 2444 +U 9554 ; WX 602 ; N SF510000 ; G 2445 +U 9555 ; WX 602 ; N SF520000 ; G 2446 +U 9556 ; WX 602 ; N SF390000 ; G 2447 +U 9557 ; WX 602 ; N SF220000 ; G 2448 +U 9558 ; WX 602 ; N SF210000 ; G 2449 +U 9559 ; WX 602 ; N SF250000 ; G 2450 +U 9560 ; WX 602 ; N SF500000 ; G 2451 +U 9561 ; WX 602 ; N SF490000 ; G 2452 +U 9562 ; WX 602 ; N SF380000 ; G 2453 +U 9563 ; WX 602 ; N SF280000 ; G 2454 +U 9564 ; WX 602 ; N SF270000 ; G 2455 +U 9565 ; WX 602 ; N SF260000 ; G 2456 +U 9566 ; WX 602 ; N SF360000 ; G 2457 +U 9567 ; WX 602 ; N SF370000 ; G 2458 +U 9568 ; WX 602 ; N SF420000 ; G 2459 +U 9569 ; WX 602 ; N SF190000 ; G 2460 +U 9570 ; WX 602 ; N SF200000 ; G 2461 +U 9571 ; WX 602 ; N SF230000 ; G 2462 +U 9572 ; WX 602 ; N SF470000 ; G 2463 +U 9573 ; WX 602 ; N SF480000 ; G 2464 +U 9574 ; WX 602 ; N SF410000 ; G 2465 +U 9575 ; WX 602 ; N SF450000 ; G 2466 +U 9576 ; WX 602 ; N SF460000 ; G 2467 +U 9577 ; WX 602 ; N SF400000 ; G 2468 +U 9578 ; WX 602 ; N SF540000 ; G 2469 +U 9579 ; WX 602 ; N SF530000 ; G 2470 +U 9580 ; WX 602 ; N SF440000 ; G 2471 +U 9581 ; WX 602 ; N uni256D ; G 2472 +U 9582 ; WX 602 ; N uni256E ; G 2473 +U 9583 ; WX 602 ; N uni256F ; G 2474 +U 9584 ; WX 602 ; N uni2570 ; G 2475 +U 9585 ; WX 602 ; N uni2571 ; G 2476 +U 9586 ; WX 602 ; N uni2572 ; G 2477 +U 9587 ; WX 602 ; N uni2573 ; G 2478 +U 9588 ; WX 602 ; N uni2574 ; G 2479 +U 9589 ; WX 602 ; N uni2575 ; G 2480 +U 9590 ; WX 602 ; N uni2576 ; G 2481 +U 9591 ; WX 602 ; N uni2577 ; G 2482 +U 9592 ; WX 602 ; N uni2578 ; G 2483 +U 9593 ; WX 602 ; N uni2579 ; G 2484 +U 9594 ; WX 602 ; N uni257A ; G 2485 +U 9595 ; WX 602 ; N uni257B ; G 2486 +U 9596 ; WX 602 ; N uni257C ; G 2487 +U 9597 ; WX 602 ; N uni257D ; G 2488 +U 9598 ; WX 602 ; N uni257E ; G 2489 +U 9599 ; WX 602 ; N uni257F ; G 2490 +U 9600 ; WX 769 ; N upblock ; G 2491 +U 9601 ; WX 769 ; N uni2581 ; G 2492 +U 9602 ; WX 769 ; N uni2582 ; G 2493 +U 9603 ; WX 769 ; N uni2583 ; G 2494 +U 9604 ; WX 769 ; N dnblock ; G 2495 +U 9605 ; WX 769 ; N uni2585 ; G 2496 +U 9606 ; WX 769 ; N uni2586 ; G 2497 +U 9607 ; WX 769 ; N uni2587 ; G 2498 +U 9608 ; WX 769 ; N block ; G 2499 +U 9609 ; WX 769 ; N uni2589 ; G 2500 +U 9610 ; WX 769 ; N uni258A ; G 2501 +U 9611 ; WX 769 ; N uni258B ; G 2502 +U 9612 ; WX 769 ; N lfblock ; G 2503 +U 9613 ; WX 769 ; N uni258D ; G 2504 +U 9614 ; WX 769 ; N uni258E ; G 2505 +U 9615 ; WX 769 ; N uni258F ; G 2506 +U 9616 ; WX 769 ; N rtblock ; G 2507 +U 9617 ; WX 769 ; N ltshade ; G 2508 +U 9618 ; WX 769 ; N shade ; G 2509 +U 9619 ; WX 769 ; N dkshade ; G 2510 +U 9620 ; WX 769 ; N uni2594 ; G 2511 +U 9621 ; WX 769 ; N uni2595 ; G 2512 +U 9622 ; WX 769 ; N uni2596 ; G 2513 +U 9623 ; WX 769 ; N uni2597 ; G 2514 +U 9624 ; WX 769 ; N uni2598 ; G 2515 +U 9625 ; WX 769 ; N uni2599 ; G 2516 +U 9626 ; WX 769 ; N uni259A ; G 2517 +U 9627 ; WX 769 ; N uni259B ; G 2518 +U 9628 ; WX 769 ; N uni259C ; G 2519 +U 9629 ; WX 769 ; N uni259D ; G 2520 +U 9630 ; WX 769 ; N uni259E ; G 2521 +U 9631 ; WX 769 ; N uni259F ; G 2522 +U 9632 ; WX 945 ; N filledbox ; G 2523 +U 9633 ; WX 945 ; N H22073 ; G 2524 +U 9634 ; WX 945 ; N uni25A2 ; G 2525 +U 9635 ; WX 945 ; N uni25A3 ; G 2526 +U 9636 ; WX 945 ; N uni25A4 ; G 2527 +U 9637 ; WX 945 ; N uni25A5 ; G 2528 +U 9638 ; WX 945 ; N uni25A6 ; G 2529 +U 9639 ; WX 945 ; N uni25A7 ; G 2530 +U 9640 ; WX 945 ; N uni25A8 ; G 2531 +U 9641 ; WX 945 ; N uni25A9 ; G 2532 +U 9642 ; WX 678 ; N H18543 ; G 2533 +U 9643 ; WX 678 ; N H18551 ; G 2534 +U 9644 ; WX 945 ; N filledrect ; G 2535 +U 9645 ; WX 945 ; N uni25AD ; G 2536 +U 9646 ; WX 550 ; N uni25AE ; G 2537 +U 9647 ; WX 550 ; N uni25AF ; G 2538 +U 9648 ; WX 769 ; N uni25B0 ; G 2539 +U 9649 ; WX 769 ; N uni25B1 ; G 2540 +U 9650 ; WX 769 ; N triagup ; G 2541 +U 9651 ; WX 769 ; N uni25B3 ; G 2542 +U 9652 ; WX 502 ; N uni25B4 ; G 2543 +U 9653 ; WX 502 ; N uni25B5 ; G 2544 +U 9654 ; WX 769 ; N uni25B6 ; G 2545 +U 9655 ; WX 769 ; N uni25B7 ; G 2546 +U 9656 ; WX 502 ; N uni25B8 ; G 2547 +U 9657 ; WX 502 ; N uni25B9 ; G 2548 +U 9658 ; WX 769 ; N triagrt ; G 2549 +U 9659 ; WX 769 ; N uni25BB ; G 2550 +U 9660 ; WX 769 ; N triagdn ; G 2551 +U 9661 ; WX 769 ; N uni25BD ; G 2552 +U 9662 ; WX 502 ; N uni25BE ; G 2553 +U 9663 ; WX 502 ; N uni25BF ; G 2554 +U 9664 ; WX 769 ; N uni25C0 ; G 2555 +U 9665 ; WX 769 ; N uni25C1 ; G 2556 +U 9666 ; WX 502 ; N uni25C2 ; G 2557 +U 9667 ; WX 502 ; N uni25C3 ; G 2558 +U 9668 ; WX 769 ; N triaglf ; G 2559 +U 9669 ; WX 769 ; N uni25C5 ; G 2560 +U 9670 ; WX 769 ; N uni25C6 ; G 2561 +U 9671 ; WX 769 ; N uni25C7 ; G 2562 +U 9672 ; WX 769 ; N uni25C8 ; G 2563 +U 9673 ; WX 873 ; N uni25C9 ; G 2564 +U 9674 ; WX 494 ; N lozenge ; G 2565 +U 9675 ; WX 873 ; N circle ; G 2566 +U 9676 ; WX 873 ; N uni25CC ; G 2567 +U 9677 ; WX 873 ; N uni25CD ; G 2568 +U 9678 ; WX 873 ; N uni25CE ; G 2569 +U 9679 ; WX 873 ; N H18533 ; G 2570 +U 9680 ; WX 873 ; N uni25D0 ; G 2571 +U 9681 ; WX 873 ; N uni25D1 ; G 2572 +U 9682 ; WX 873 ; N uni25D2 ; G 2573 +U 9683 ; WX 873 ; N uni25D3 ; G 2574 +U 9684 ; WX 873 ; N uni25D4 ; G 2575 +U 9685 ; WX 873 ; N uni25D5 ; G 2576 +U 9686 ; WX 527 ; N uni25D6 ; G 2577 +U 9687 ; WX 527 ; N uni25D7 ; G 2578 +U 9688 ; WX 791 ; N invbullet ; G 2579 +U 9689 ; WX 970 ; N invcircle ; G 2580 +U 9690 ; WX 970 ; N uni25DA ; G 2581 +U 9691 ; WX 970 ; N uni25DB ; G 2582 +U 9692 ; WX 387 ; N uni25DC ; G 2583 +U 9693 ; WX 387 ; N uni25DD ; G 2584 +U 9694 ; WX 387 ; N uni25DE ; G 2585 +U 9695 ; WX 387 ; N uni25DF ; G 2586 +U 9696 ; WX 873 ; N uni25E0 ; G 2587 +U 9697 ; WX 873 ; N uni25E1 ; G 2588 +U 9698 ; WX 769 ; N uni25E2 ; G 2589 +U 9699 ; WX 769 ; N uni25E3 ; G 2590 +U 9700 ; WX 769 ; N uni25E4 ; G 2591 +U 9701 ; WX 769 ; N uni25E5 ; G 2592 +U 9702 ; WX 590 ; N openbullet ; G 2593 +U 9703 ; WX 945 ; N uni25E7 ; G 2594 +U 9704 ; WX 945 ; N uni25E8 ; G 2595 +U 9705 ; WX 945 ; N uni25E9 ; G 2596 +U 9706 ; WX 945 ; N uni25EA ; G 2597 +U 9707 ; WX 945 ; N uni25EB ; G 2598 +U 9708 ; WX 769 ; N uni25EC ; G 2599 +U 9709 ; WX 769 ; N uni25ED ; G 2600 +U 9710 ; WX 769 ; N uni25EE ; G 2601 +U 9711 ; WX 1119 ; N uni25EF ; G 2602 +U 9712 ; WX 945 ; N uni25F0 ; G 2603 +U 9713 ; WX 945 ; N uni25F1 ; G 2604 +U 9714 ; WX 945 ; N uni25F2 ; G 2605 +U 9715 ; WX 945 ; N uni25F3 ; G 2606 +U 9716 ; WX 873 ; N uni25F4 ; G 2607 +U 9717 ; WX 873 ; N uni25F5 ; G 2608 +U 9718 ; WX 873 ; N uni25F6 ; G 2609 +U 9719 ; WX 873 ; N uni25F7 ; G 2610 +U 9720 ; WX 769 ; N uni25F8 ; G 2611 +U 9721 ; WX 769 ; N uni25F9 ; G 2612 +U 9722 ; WX 769 ; N uni25FA ; G 2613 +U 9723 ; WX 830 ; N uni25FB ; G 2614 +U 9724 ; WX 830 ; N uni25FC ; G 2615 +U 9725 ; WX 732 ; N uni25FD ; G 2616 +U 9726 ; WX 732 ; N uni25FE ; G 2617 +U 9727 ; WX 769 ; N uni25FF ; G 2618 +U 9728 ; WX 896 ; N uni2600 ; G 2619 +U 9784 ; WX 896 ; N uni2638 ; G 2620 +U 9785 ; WX 896 ; N uni2639 ; G 2621 +U 9786 ; WX 896 ; N smileface ; G 2622 +U 9787 ; WX 896 ; N invsmileface ; G 2623 +U 9788 ; WX 896 ; N sun ; G 2624 +U 9791 ; WX 614 ; N uni263F ; G 2625 +U 9792 ; WX 731 ; N female ; G 2626 +U 9793 ; WX 731 ; N uni2641 ; G 2627 +U 9794 ; WX 896 ; N male ; G 2628 +U 9795 ; WX 896 ; N uni2643 ; G 2629 +U 9796 ; WX 896 ; N uni2644 ; G 2630 +U 9797 ; WX 896 ; N uni2645 ; G 2631 +U 9798 ; WX 896 ; N uni2646 ; G 2632 +U 9799 ; WX 896 ; N uni2647 ; G 2633 +U 9824 ; WX 896 ; N spade ; G 2634 +U 9825 ; WX 896 ; N uni2661 ; G 2635 +U 9826 ; WX 896 ; N uni2662 ; G 2636 +U 9827 ; WX 896 ; N club ; G 2637 +U 9828 ; WX 896 ; N uni2664 ; G 2638 +U 9829 ; WX 896 ; N heart ; G 2639 +U 9830 ; WX 896 ; N diamond ; G 2640 +U 9831 ; WX 896 ; N uni2667 ; G 2641 +U 9833 ; WX 472 ; N uni2669 ; G 2642 +U 9834 ; WX 638 ; N musicalnote ; G 2643 +U 9835 ; WX 896 ; N musicalnotedbl ; G 2644 +U 9836 ; WX 896 ; N uni266C ; G 2645 +U 9837 ; WX 472 ; N uni266D ; G 2646 +U 9838 ; WX 357 ; N uni266E ; G 2647 +U 9839 ; WX 484 ; N uni266F ; G 2648 +U 10145 ; WX 838 ; N uni27A1 ; G 2649 +U 10181 ; WX 457 ; N uni27C5 ; G 2650 +U 10182 ; WX 457 ; N uni27C6 ; G 2651 +U 10208 ; WX 494 ; N uni27E0 ; G 2652 +U 10216 ; WX 457 ; N uni27E8 ; G 2653 +U 10217 ; WX 457 ; N uni27E9 ; G 2654 +U 10224 ; WX 838 ; N uni27F0 ; G 2655 +U 10225 ; WX 838 ; N uni27F1 ; G 2656 +U 10226 ; WX 838 ; N uni27F2 ; G 2657 +U 10227 ; WX 838 ; N uni27F3 ; G 2658 +U 10228 ; WX 1033 ; N uni27F4 ; G 2659 +U 10229 ; WX 1434 ; N uni27F5 ; G 2660 +U 10230 ; WX 1434 ; N uni27F6 ; G 2661 +U 10231 ; WX 1434 ; N uni27F7 ; G 2662 +U 10232 ; WX 1434 ; N uni27F8 ; G 2663 +U 10233 ; WX 1434 ; N uni27F9 ; G 2664 +U 10234 ; WX 1434 ; N uni27FA ; G 2665 +U 10235 ; WX 1434 ; N uni27FB ; G 2666 +U 10236 ; WX 1434 ; N uni27FC ; G 2667 +U 10237 ; WX 1434 ; N uni27FD ; G 2668 +U 10238 ; WX 1434 ; N uni27FE ; G 2669 +U 10239 ; WX 1434 ; N uni27FF ; G 2670 +U 10240 ; WX 781 ; N uni2800 ; G 2671 +U 10241 ; WX 781 ; N uni2801 ; G 2672 +U 10242 ; WX 781 ; N uni2802 ; G 2673 +U 10243 ; WX 781 ; N uni2803 ; G 2674 +U 10244 ; WX 781 ; N uni2804 ; G 2675 +U 10245 ; WX 781 ; N uni2805 ; G 2676 +U 10246 ; WX 781 ; N uni2806 ; G 2677 +U 10247 ; WX 781 ; N uni2807 ; G 2678 +U 10248 ; WX 781 ; N uni2808 ; G 2679 +U 10249 ; WX 781 ; N uni2809 ; G 2680 +U 10250 ; WX 781 ; N uni280A ; G 2681 +U 10251 ; WX 781 ; N uni280B ; G 2682 +U 10252 ; WX 781 ; N uni280C ; G 2683 +U 10253 ; WX 781 ; N uni280D ; G 2684 +U 10254 ; WX 781 ; N uni280E ; G 2685 +U 10255 ; WX 781 ; N uni280F ; G 2686 +U 10256 ; WX 781 ; N uni2810 ; G 2687 +U 10257 ; WX 781 ; N uni2811 ; G 2688 +U 10258 ; WX 781 ; N uni2812 ; G 2689 +U 10259 ; WX 781 ; N uni2813 ; G 2690 +U 10260 ; WX 781 ; N uni2814 ; G 2691 +U 10261 ; WX 781 ; N uni2815 ; G 2692 +U 10262 ; WX 781 ; N uni2816 ; G 2693 +U 10263 ; WX 781 ; N uni2817 ; G 2694 +U 10264 ; WX 781 ; N uni2818 ; G 2695 +U 10265 ; WX 781 ; N uni2819 ; G 2696 +U 10266 ; WX 781 ; N uni281A ; G 2697 +U 10267 ; WX 781 ; N uni281B ; G 2698 +U 10268 ; WX 781 ; N uni281C ; G 2699 +U 10269 ; WX 781 ; N uni281D ; G 2700 +U 10270 ; WX 781 ; N uni281E ; G 2701 +U 10271 ; WX 781 ; N uni281F ; G 2702 +U 10272 ; WX 781 ; N uni2820 ; G 2703 +U 10273 ; WX 781 ; N uni2821 ; G 2704 +U 10274 ; WX 781 ; N uni2822 ; G 2705 +U 10275 ; WX 781 ; N uni2823 ; G 2706 +U 10276 ; WX 781 ; N uni2824 ; G 2707 +U 10277 ; WX 781 ; N uni2825 ; G 2708 +U 10278 ; WX 781 ; N uni2826 ; G 2709 +U 10279 ; WX 781 ; N uni2827 ; G 2710 +U 10280 ; WX 781 ; N uni2828 ; G 2711 +U 10281 ; WX 781 ; N uni2829 ; G 2712 +U 10282 ; WX 781 ; N uni282A ; G 2713 +U 10283 ; WX 781 ; N uni282B ; G 2714 +U 10284 ; WX 781 ; N uni282C ; G 2715 +U 10285 ; WX 781 ; N uni282D ; G 2716 +U 10286 ; WX 781 ; N uni282E ; G 2717 +U 10287 ; WX 781 ; N uni282F ; G 2718 +U 10288 ; WX 781 ; N uni2830 ; G 2719 +U 10289 ; WX 781 ; N uni2831 ; G 2720 +U 10290 ; WX 781 ; N uni2832 ; G 2721 +U 10291 ; WX 781 ; N uni2833 ; G 2722 +U 10292 ; WX 781 ; N uni2834 ; G 2723 +U 10293 ; WX 781 ; N uni2835 ; G 2724 +U 10294 ; WX 781 ; N uni2836 ; G 2725 +U 10295 ; WX 781 ; N uni2837 ; G 2726 +U 10296 ; WX 781 ; N uni2838 ; G 2727 +U 10297 ; WX 781 ; N uni2839 ; G 2728 +U 10298 ; WX 781 ; N uni283A ; G 2729 +U 10299 ; WX 781 ; N uni283B ; G 2730 +U 10300 ; WX 781 ; N uni283C ; G 2731 +U 10301 ; WX 781 ; N uni283D ; G 2732 +U 10302 ; WX 781 ; N uni283E ; G 2733 +U 10303 ; WX 781 ; N uni283F ; G 2734 +U 10304 ; WX 781 ; N uni2840 ; G 2735 +U 10305 ; WX 781 ; N uni2841 ; G 2736 +U 10306 ; WX 781 ; N uni2842 ; G 2737 +U 10307 ; WX 781 ; N uni2843 ; G 2738 +U 10308 ; WX 781 ; N uni2844 ; G 2739 +U 10309 ; WX 781 ; N uni2845 ; G 2740 +U 10310 ; WX 781 ; N uni2846 ; G 2741 +U 10311 ; WX 781 ; N uni2847 ; G 2742 +U 10312 ; WX 781 ; N uni2848 ; G 2743 +U 10313 ; WX 781 ; N uni2849 ; G 2744 +U 10314 ; WX 781 ; N uni284A ; G 2745 +U 10315 ; WX 781 ; N uni284B ; G 2746 +U 10316 ; WX 781 ; N uni284C ; G 2747 +U 10317 ; WX 781 ; N uni284D ; G 2748 +U 10318 ; WX 781 ; N uni284E ; G 2749 +U 10319 ; WX 781 ; N uni284F ; G 2750 +U 10320 ; WX 781 ; N uni2850 ; G 2751 +U 10321 ; WX 781 ; N uni2851 ; G 2752 +U 10322 ; WX 781 ; N uni2852 ; G 2753 +U 10323 ; WX 781 ; N uni2853 ; G 2754 +U 10324 ; WX 781 ; N uni2854 ; G 2755 +U 10325 ; WX 781 ; N uni2855 ; G 2756 +U 10326 ; WX 781 ; N uni2856 ; G 2757 +U 10327 ; WX 781 ; N uni2857 ; G 2758 +U 10328 ; WX 781 ; N uni2858 ; G 2759 +U 10329 ; WX 781 ; N uni2859 ; G 2760 +U 10330 ; WX 781 ; N uni285A ; G 2761 +U 10331 ; WX 781 ; N uni285B ; G 2762 +U 10332 ; WX 781 ; N uni285C ; G 2763 +U 10333 ; WX 781 ; N uni285D ; G 2764 +U 10334 ; WX 781 ; N uni285E ; G 2765 +U 10335 ; WX 781 ; N uni285F ; G 2766 +U 10336 ; WX 781 ; N uni2860 ; G 2767 +U 10337 ; WX 781 ; N uni2861 ; G 2768 +U 10338 ; WX 781 ; N uni2862 ; G 2769 +U 10339 ; WX 781 ; N uni2863 ; G 2770 +U 10340 ; WX 781 ; N uni2864 ; G 2771 +U 10341 ; WX 781 ; N uni2865 ; G 2772 +U 10342 ; WX 781 ; N uni2866 ; G 2773 +U 10343 ; WX 781 ; N uni2867 ; G 2774 +U 10344 ; WX 781 ; N uni2868 ; G 2775 +U 10345 ; WX 781 ; N uni2869 ; G 2776 +U 10346 ; WX 781 ; N uni286A ; G 2777 +U 10347 ; WX 781 ; N uni286B ; G 2778 +U 10348 ; WX 781 ; N uni286C ; G 2779 +U 10349 ; WX 781 ; N uni286D ; G 2780 +U 10350 ; WX 781 ; N uni286E ; G 2781 +U 10351 ; WX 781 ; N uni286F ; G 2782 +U 10352 ; WX 781 ; N uni2870 ; G 2783 +U 10353 ; WX 781 ; N uni2871 ; G 2784 +U 10354 ; WX 781 ; N uni2872 ; G 2785 +U 10355 ; WX 781 ; N uni2873 ; G 2786 +U 10356 ; WX 781 ; N uni2874 ; G 2787 +U 10357 ; WX 781 ; N uni2875 ; G 2788 +U 10358 ; WX 781 ; N uni2876 ; G 2789 +U 10359 ; WX 781 ; N uni2877 ; G 2790 +U 10360 ; WX 781 ; N uni2878 ; G 2791 +U 10361 ; WX 781 ; N uni2879 ; G 2792 +U 10362 ; WX 781 ; N uni287A ; G 2793 +U 10363 ; WX 781 ; N uni287B ; G 2794 +U 10364 ; WX 781 ; N uni287C ; G 2795 +U 10365 ; WX 781 ; N uni287D ; G 2796 +U 10366 ; WX 781 ; N uni287E ; G 2797 +U 10367 ; WX 781 ; N uni287F ; G 2798 +U 10368 ; WX 781 ; N uni2880 ; G 2799 +U 10369 ; WX 781 ; N uni2881 ; G 2800 +U 10370 ; WX 781 ; N uni2882 ; G 2801 +U 10371 ; WX 781 ; N uni2883 ; G 2802 +U 10372 ; WX 781 ; N uni2884 ; G 2803 +U 10373 ; WX 781 ; N uni2885 ; G 2804 +U 10374 ; WX 781 ; N uni2886 ; G 2805 +U 10375 ; WX 781 ; N uni2887 ; G 2806 +U 10376 ; WX 781 ; N uni2888 ; G 2807 +U 10377 ; WX 781 ; N uni2889 ; G 2808 +U 10378 ; WX 781 ; N uni288A ; G 2809 +U 10379 ; WX 781 ; N uni288B ; G 2810 +U 10380 ; WX 781 ; N uni288C ; G 2811 +U 10381 ; WX 781 ; N uni288D ; G 2812 +U 10382 ; WX 781 ; N uni288E ; G 2813 +U 10383 ; WX 781 ; N uni288F ; G 2814 +U 10384 ; WX 781 ; N uni2890 ; G 2815 +U 10385 ; WX 781 ; N uni2891 ; G 2816 +U 10386 ; WX 781 ; N uni2892 ; G 2817 +U 10387 ; WX 781 ; N uni2893 ; G 2818 +U 10388 ; WX 781 ; N uni2894 ; G 2819 +U 10389 ; WX 781 ; N uni2895 ; G 2820 +U 10390 ; WX 781 ; N uni2896 ; G 2821 +U 10391 ; WX 781 ; N uni2897 ; G 2822 +U 10392 ; WX 781 ; N uni2898 ; G 2823 +U 10393 ; WX 781 ; N uni2899 ; G 2824 +U 10394 ; WX 781 ; N uni289A ; G 2825 +U 10395 ; WX 781 ; N uni289B ; G 2826 +U 10396 ; WX 781 ; N uni289C ; G 2827 +U 10397 ; WX 781 ; N uni289D ; G 2828 +U 10398 ; WX 781 ; N uni289E ; G 2829 +U 10399 ; WX 781 ; N uni289F ; G 2830 +U 10400 ; WX 781 ; N uni28A0 ; G 2831 +U 10401 ; WX 781 ; N uni28A1 ; G 2832 +U 10402 ; WX 781 ; N uni28A2 ; G 2833 +U 10403 ; WX 781 ; N uni28A3 ; G 2834 +U 10404 ; WX 781 ; N uni28A4 ; G 2835 +U 10405 ; WX 781 ; N uni28A5 ; G 2836 +U 10406 ; WX 781 ; N uni28A6 ; G 2837 +U 10407 ; WX 781 ; N uni28A7 ; G 2838 +U 10408 ; WX 781 ; N uni28A8 ; G 2839 +U 10409 ; WX 781 ; N uni28A9 ; G 2840 +U 10410 ; WX 781 ; N uni28AA ; G 2841 +U 10411 ; WX 781 ; N uni28AB ; G 2842 +U 10412 ; WX 781 ; N uni28AC ; G 2843 +U 10413 ; WX 781 ; N uni28AD ; G 2844 +U 10414 ; WX 781 ; N uni28AE ; G 2845 +U 10415 ; WX 781 ; N uni28AF ; G 2846 +U 10416 ; WX 781 ; N uni28B0 ; G 2847 +U 10417 ; WX 781 ; N uni28B1 ; G 2848 +U 10418 ; WX 781 ; N uni28B2 ; G 2849 +U 10419 ; WX 781 ; N uni28B3 ; G 2850 +U 10420 ; WX 781 ; N uni28B4 ; G 2851 +U 10421 ; WX 781 ; N uni28B5 ; G 2852 +U 10422 ; WX 781 ; N uni28B6 ; G 2853 +U 10423 ; WX 781 ; N uni28B7 ; G 2854 +U 10424 ; WX 781 ; N uni28B8 ; G 2855 +U 10425 ; WX 781 ; N uni28B9 ; G 2856 +U 10426 ; WX 781 ; N uni28BA ; G 2857 +U 10427 ; WX 781 ; N uni28BB ; G 2858 +U 10428 ; WX 781 ; N uni28BC ; G 2859 +U 10429 ; WX 781 ; N uni28BD ; G 2860 +U 10430 ; WX 781 ; N uni28BE ; G 2861 +U 10431 ; WX 781 ; N uni28BF ; G 2862 +U 10432 ; WX 781 ; N uni28C0 ; G 2863 +U 10433 ; WX 781 ; N uni28C1 ; G 2864 +U 10434 ; WX 781 ; N uni28C2 ; G 2865 +U 10435 ; WX 781 ; N uni28C3 ; G 2866 +U 10436 ; WX 781 ; N uni28C4 ; G 2867 +U 10437 ; WX 781 ; N uni28C5 ; G 2868 +U 10438 ; WX 781 ; N uni28C6 ; G 2869 +U 10439 ; WX 781 ; N uni28C7 ; G 2870 +U 10440 ; WX 781 ; N uni28C8 ; G 2871 +U 10441 ; WX 781 ; N uni28C9 ; G 2872 +U 10442 ; WX 781 ; N uni28CA ; G 2873 +U 10443 ; WX 781 ; N uni28CB ; G 2874 +U 10444 ; WX 781 ; N uni28CC ; G 2875 +U 10445 ; WX 781 ; N uni28CD ; G 2876 +U 10446 ; WX 781 ; N uni28CE ; G 2877 +U 10447 ; WX 781 ; N uni28CF ; G 2878 +U 10448 ; WX 781 ; N uni28D0 ; G 2879 +U 10449 ; WX 781 ; N uni28D1 ; G 2880 +U 10450 ; WX 781 ; N uni28D2 ; G 2881 +U 10451 ; WX 781 ; N uni28D3 ; G 2882 +U 10452 ; WX 781 ; N uni28D4 ; G 2883 +U 10453 ; WX 781 ; N uni28D5 ; G 2884 +U 10454 ; WX 781 ; N uni28D6 ; G 2885 +U 10455 ; WX 781 ; N uni28D7 ; G 2886 +U 10456 ; WX 781 ; N uni28D8 ; G 2887 +U 10457 ; WX 781 ; N uni28D9 ; G 2888 +U 10458 ; WX 781 ; N uni28DA ; G 2889 +U 10459 ; WX 781 ; N uni28DB ; G 2890 +U 10460 ; WX 781 ; N uni28DC ; G 2891 +U 10461 ; WX 781 ; N uni28DD ; G 2892 +U 10462 ; WX 781 ; N uni28DE ; G 2893 +U 10463 ; WX 781 ; N uni28DF ; G 2894 +U 10464 ; WX 781 ; N uni28E0 ; G 2895 +U 10465 ; WX 781 ; N uni28E1 ; G 2896 +U 10466 ; WX 781 ; N uni28E2 ; G 2897 +U 10467 ; WX 781 ; N uni28E3 ; G 2898 +U 10468 ; WX 781 ; N uni28E4 ; G 2899 +U 10469 ; WX 781 ; N uni28E5 ; G 2900 +U 10470 ; WX 781 ; N uni28E6 ; G 2901 +U 10471 ; WX 781 ; N uni28E7 ; G 2902 +U 10472 ; WX 781 ; N uni28E8 ; G 2903 +U 10473 ; WX 781 ; N uni28E9 ; G 2904 +U 10474 ; WX 781 ; N uni28EA ; G 2905 +U 10475 ; WX 781 ; N uni28EB ; G 2906 +U 10476 ; WX 781 ; N uni28EC ; G 2907 +U 10477 ; WX 781 ; N uni28ED ; G 2908 +U 10478 ; WX 781 ; N uni28EE ; G 2909 +U 10479 ; WX 781 ; N uni28EF ; G 2910 +U 10480 ; WX 781 ; N uni28F0 ; G 2911 +U 10481 ; WX 781 ; N uni28F1 ; G 2912 +U 10482 ; WX 781 ; N uni28F2 ; G 2913 +U 10483 ; WX 781 ; N uni28F3 ; G 2914 +U 10484 ; WX 781 ; N uni28F4 ; G 2915 +U 10485 ; WX 781 ; N uni28F5 ; G 2916 +U 10486 ; WX 781 ; N uni28F6 ; G 2917 +U 10487 ; WX 781 ; N uni28F7 ; G 2918 +U 10488 ; WX 781 ; N uni28F8 ; G 2919 +U 10489 ; WX 781 ; N uni28F9 ; G 2920 +U 10490 ; WX 781 ; N uni28FA ; G 2921 +U 10491 ; WX 781 ; N uni28FB ; G 2922 +U 10492 ; WX 781 ; N uni28FC ; G 2923 +U 10493 ; WX 781 ; N uni28FD ; G 2924 +U 10494 ; WX 781 ; N uni28FE ; G 2925 +U 10495 ; WX 781 ; N uni28FF ; G 2926 +U 10496 ; WX 838 ; N uni2900 ; G 2927 +U 10497 ; WX 838 ; N uni2901 ; G 2928 +U 10498 ; WX 838 ; N uni2902 ; G 2929 +U 10499 ; WX 838 ; N uni2903 ; G 2930 +U 10500 ; WX 838 ; N uni2904 ; G 2931 +U 10501 ; WX 838 ; N uni2905 ; G 2932 +U 10502 ; WX 838 ; N uni2906 ; G 2933 +U 10503 ; WX 838 ; N uni2907 ; G 2934 +U 10504 ; WX 838 ; N uni2908 ; G 2935 +U 10505 ; WX 838 ; N uni2909 ; G 2936 +U 10506 ; WX 838 ; N uni290A ; G 2937 +U 10507 ; WX 838 ; N uni290B ; G 2938 +U 10508 ; WX 838 ; N uni290C ; G 2939 +U 10509 ; WX 838 ; N uni290D ; G 2940 +U 10510 ; WX 838 ; N uni290E ; G 2941 +U 10511 ; WX 838 ; N uni290F ; G 2942 +U 10512 ; WX 838 ; N uni2910 ; G 2943 +U 10513 ; WX 838 ; N uni2911 ; G 2944 +U 10514 ; WX 838 ; N uni2912 ; G 2945 +U 10515 ; WX 838 ; N uni2913 ; G 2946 +U 10516 ; WX 838 ; N uni2914 ; G 2947 +U 10517 ; WX 838 ; N uni2915 ; G 2948 +U 10518 ; WX 838 ; N uni2916 ; G 2949 +U 10519 ; WX 838 ; N uni2917 ; G 2950 +U 10520 ; WX 838 ; N uni2918 ; G 2951 +U 10521 ; WX 838 ; N uni2919 ; G 2952 +U 10522 ; WX 838 ; N uni291A ; G 2953 +U 10523 ; WX 838 ; N uni291B ; G 2954 +U 10524 ; WX 838 ; N uni291C ; G 2955 +U 10525 ; WX 838 ; N uni291D ; G 2956 +U 10526 ; WX 838 ; N uni291E ; G 2957 +U 10527 ; WX 838 ; N uni291F ; G 2958 +U 10528 ; WX 838 ; N uni2920 ; G 2959 +U 10529 ; WX 838 ; N uni2921 ; G 2960 +U 10530 ; WX 838 ; N uni2922 ; G 2961 +U 10531 ; WX 838 ; N uni2923 ; G 2962 +U 10532 ; WX 838 ; N uni2924 ; G 2963 +U 10533 ; WX 838 ; N uni2925 ; G 2964 +U 10534 ; WX 838 ; N uni2926 ; G 2965 +U 10535 ; WX 838 ; N uni2927 ; G 2966 +U 10536 ; WX 838 ; N uni2928 ; G 2967 +U 10537 ; WX 838 ; N uni2929 ; G 2968 +U 10538 ; WX 838 ; N uni292A ; G 2969 +U 10539 ; WX 838 ; N uni292B ; G 2970 +U 10540 ; WX 838 ; N uni292C ; G 2971 +U 10541 ; WX 838 ; N uni292D ; G 2972 +U 10542 ; WX 838 ; N uni292E ; G 2973 +U 10543 ; WX 838 ; N uni292F ; G 2974 +U 10544 ; WX 838 ; N uni2930 ; G 2975 +U 10545 ; WX 838 ; N uni2931 ; G 2976 +U 10546 ; WX 838 ; N uni2932 ; G 2977 +U 10547 ; WX 838 ; N uni2933 ; G 2978 +U 10548 ; WX 838 ; N uni2934 ; G 2979 +U 10549 ; WX 838 ; N uni2935 ; G 2980 +U 10550 ; WX 838 ; N uni2936 ; G 2981 +U 10551 ; WX 838 ; N uni2937 ; G 2982 +U 10552 ; WX 838 ; N uni2938 ; G 2983 +U 10553 ; WX 838 ; N uni2939 ; G 2984 +U 10554 ; WX 838 ; N uni293A ; G 2985 +U 10555 ; WX 838 ; N uni293B ; G 2986 +U 10556 ; WX 838 ; N uni293C ; G 2987 +U 10557 ; WX 838 ; N uni293D ; G 2988 +U 10558 ; WX 838 ; N uni293E ; G 2989 +U 10559 ; WX 838 ; N uni293F ; G 2990 +U 10560 ; WX 838 ; N uni2940 ; G 2991 +U 10561 ; WX 838 ; N uni2941 ; G 2992 +U 10562 ; WX 838 ; N uni2942 ; G 2993 +U 10563 ; WX 838 ; N uni2943 ; G 2994 +U 10564 ; WX 838 ; N uni2944 ; G 2995 +U 10565 ; WX 838 ; N uni2945 ; G 2996 +U 10566 ; WX 838 ; N uni2946 ; G 2997 +U 10567 ; WX 838 ; N uni2947 ; G 2998 +U 10568 ; WX 838 ; N uni2948 ; G 2999 +U 10569 ; WX 838 ; N uni2949 ; G 3000 +U 10570 ; WX 838 ; N uni294A ; G 3001 +U 10571 ; WX 838 ; N uni294B ; G 3002 +U 10572 ; WX 838 ; N uni294C ; G 3003 +U 10573 ; WX 838 ; N uni294D ; G 3004 +U 10574 ; WX 838 ; N uni294E ; G 3005 +U 10575 ; WX 838 ; N uni294F ; G 3006 +U 10576 ; WX 838 ; N uni2950 ; G 3007 +U 10577 ; WX 838 ; N uni2951 ; G 3008 +U 10578 ; WX 838 ; N uni2952 ; G 3009 +U 10579 ; WX 838 ; N uni2953 ; G 3010 +U 10580 ; WX 838 ; N uni2954 ; G 3011 +U 10581 ; WX 838 ; N uni2955 ; G 3012 +U 10582 ; WX 838 ; N uni2956 ; G 3013 +U 10583 ; WX 838 ; N uni2957 ; G 3014 +U 10584 ; WX 838 ; N uni2958 ; G 3015 +U 10585 ; WX 838 ; N uni2959 ; G 3016 +U 10586 ; WX 838 ; N uni295A ; G 3017 +U 10587 ; WX 838 ; N uni295B ; G 3018 +U 10588 ; WX 838 ; N uni295C ; G 3019 +U 10589 ; WX 838 ; N uni295D ; G 3020 +U 10590 ; WX 838 ; N uni295E ; G 3021 +U 10591 ; WX 838 ; N uni295F ; G 3022 +U 10592 ; WX 838 ; N uni2960 ; G 3023 +U 10593 ; WX 838 ; N uni2961 ; G 3024 +U 10594 ; WX 838 ; N uni2962 ; G 3025 +U 10595 ; WX 838 ; N uni2963 ; G 3026 +U 10596 ; WX 838 ; N uni2964 ; G 3027 +U 10597 ; WX 838 ; N uni2965 ; G 3028 +U 10598 ; WX 838 ; N uni2966 ; G 3029 +U 10599 ; WX 838 ; N uni2967 ; G 3030 +U 10600 ; WX 838 ; N uni2968 ; G 3031 +U 10601 ; WX 838 ; N uni2969 ; G 3032 +U 10602 ; WX 838 ; N uni296A ; G 3033 +U 10603 ; WX 838 ; N uni296B ; G 3034 +U 10604 ; WX 838 ; N uni296C ; G 3035 +U 10605 ; WX 838 ; N uni296D ; G 3036 +U 10606 ; WX 838 ; N uni296E ; G 3037 +U 10607 ; WX 838 ; N uni296F ; G 3038 +U 10608 ; WX 838 ; N uni2970 ; G 3039 +U 10609 ; WX 838 ; N uni2971 ; G 3040 +U 10610 ; WX 838 ; N uni2972 ; G 3041 +U 10611 ; WX 838 ; N uni2973 ; G 3042 +U 10612 ; WX 838 ; N uni2974 ; G 3043 +U 10613 ; WX 838 ; N uni2975 ; G 3044 +U 10614 ; WX 838 ; N uni2976 ; G 3045 +U 10615 ; WX 1032 ; N uni2977 ; G 3046 +U 10616 ; WX 838 ; N uni2978 ; G 3047 +U 10617 ; WX 838 ; N uni2979 ; G 3048 +U 10618 ; WX 960 ; N uni297A ; G 3049 +U 10619 ; WX 838 ; N uni297B ; G 3050 +U 10620 ; WX 838 ; N uni297C ; G 3051 +U 10621 ; WX 838 ; N uni297D ; G 3052 +U 10622 ; WX 838 ; N uni297E ; G 3053 +U 10623 ; WX 838 ; N uni297F ; G 3054 +U 10731 ; WX 494 ; N uni29EB ; G 3055 +U 10764 ; WX 1782 ; N uni2A0C ; G 3056 +U 10765 ; WX 610 ; N uni2A0D ; G 3057 +U 10766 ; WX 610 ; N uni2A0E ; G 3058 +U 10799 ; WX 838 ; N uni2A2F ; G 3059 +U 10858 ; WX 838 ; N uni2A6A ; G 3060 +U 10859 ; WX 838 ; N uni2A6B ; G 3061 +U 11008 ; WX 838 ; N uni2B00 ; G 3062 +U 11009 ; WX 838 ; N uni2B01 ; G 3063 +U 11010 ; WX 838 ; N uni2B02 ; G 3064 +U 11011 ; WX 838 ; N uni2B03 ; G 3065 +U 11012 ; WX 838 ; N uni2B04 ; G 3066 +U 11013 ; WX 838 ; N uni2B05 ; G 3067 +U 11014 ; WX 838 ; N uni2B06 ; G 3068 +U 11015 ; WX 838 ; N uni2B07 ; G 3069 +U 11016 ; WX 838 ; N uni2B08 ; G 3070 +U 11017 ; WX 838 ; N uni2B09 ; G 3071 +U 11018 ; WX 838 ; N uni2B0A ; G 3072 +U 11019 ; WX 838 ; N uni2B0B ; G 3073 +U 11020 ; WX 838 ; N uni2B0C ; G 3074 +U 11021 ; WX 838 ; N uni2B0D ; G 3075 +U 11022 ; WX 838 ; N uni2B0E ; G 3076 +U 11023 ; WX 838 ; N uni2B0F ; G 3077 +U 11024 ; WX 838 ; N uni2B10 ; G 3078 +U 11025 ; WX 838 ; N uni2B11 ; G 3079 +U 11026 ; WX 945 ; N uni2B12 ; G 3080 +U 11027 ; WX 945 ; N uni2B13 ; G 3081 +U 11028 ; WX 945 ; N uni2B14 ; G 3082 +U 11029 ; WX 945 ; N uni2B15 ; G 3083 +U 11030 ; WX 769 ; N uni2B16 ; G 3084 +U 11031 ; WX 769 ; N uni2B17 ; G 3085 +U 11032 ; WX 769 ; N uni2B18 ; G 3086 +U 11033 ; WX 769 ; N uni2B19 ; G 3087 +U 11034 ; WX 945 ; N uni2B1A ; G 3088 +U 11360 ; WX 703 ; N uni2C60 ; G 3089 +U 11361 ; WX 380 ; N uni2C61 ; G 3090 +U 11363 ; WX 752 ; N uni2C63 ; G 3091 +U 11364 ; WX 831 ; N uni2C64 ; G 3092 +U 11367 ; WX 945 ; N uni2C67 ; G 3093 +U 11368 ; WX 727 ; N uni2C68 ; G 3094 +U 11369 ; WX 869 ; N uni2C69 ; G 3095 +U 11370 ; WX 693 ; N uni2C6A ; G 3096 +U 11371 ; WX 730 ; N uni2C6B ; G 3097 +U 11372 ; WX 568 ; N uni2C6C ; G 3098 +U 11373 ; WX 848 ; N uni2C6D ; G 3099 +U 11374 ; WX 1107 ; N uni2C6E ; G 3100 +U 11375 ; WX 776 ; N uni2C6F ; G 3101 +U 11376 ; WX 848 ; N uni2C70 ; G 3102 +U 11377 ; WX 709 ; N uni2C71 ; G 3103 +U 11378 ; WX 1221 ; N uni2C72 ; G 3104 +U 11379 ; WX 984 ; N uni2C73 ; G 3105 +U 11381 ; WX 779 ; N uni2C75 ; G 3106 +U 11382 ; WX 601 ; N uni2C76 ; G 3107 +U 11383 ; WX 905 ; N uni2C77 ; G 3108 +U 11385 ; WX 571 ; N uni2C79 ; G 3109 +U 11386 ; WX 667 ; N uni2C7A ; G 3110 +U 11387 ; WX 617 ; N uni2C7B ; G 3111 +U 11388 ; WX 313 ; N uni2C7C ; G 3112 +U 11389 ; WX 489 ; N uni2C7D ; G 3113 +U 11390 ; WX 722 ; N uni2C7E ; G 3114 +U 11391 ; WX 730 ; N uni2C7F ; G 3115 +U 11520 ; WX 773 ; N uni2D00 ; G 3116 +U 11521 ; WX 635 ; N uni2D01 ; G 3117 +U 11522 ; WX 804 ; N uni2D02 ; G 3118 +U 11523 ; WX 658 ; N uni2D03 ; G 3119 +U 11524 ; WX 788 ; N uni2D04 ; G 3120 +U 11525 ; WX 962 ; N uni2D05 ; G 3121 +U 11526 ; WX 756 ; N uni2D06 ; G 3122 +U 11527 ; WX 960 ; N uni2D07 ; G 3123 +U 11528 ; WX 617 ; N uni2D08 ; G 3124 +U 11529 ; WX 646 ; N uni2D09 ; G 3125 +U 11530 ; WX 962 ; N uni2D0A ; G 3126 +U 11531 ; WX 631 ; N uni2D0B ; G 3127 +U 11532 ; WX 646 ; N uni2D0C ; G 3128 +U 11533 ; WX 962 ; N uni2D0D ; G 3129 +U 11534 ; WX 846 ; N uni2D0E ; G 3130 +U 11535 ; WX 866 ; N uni2D0F ; G 3131 +U 11536 ; WX 961 ; N uni2D10 ; G 3132 +U 11537 ; WX 645 ; N uni2D11 ; G 3133 +U 11538 ; WX 645 ; N uni2D12 ; G 3134 +U 11539 ; WX 959 ; N uni2D13 ; G 3135 +U 11540 ; WX 945 ; N uni2D14 ; G 3136 +U 11541 ; WX 863 ; N uni2D15 ; G 3137 +U 11542 ; WX 644 ; N uni2D16 ; G 3138 +U 11543 ; WX 646 ; N uni2D17 ; G 3139 +U 11544 ; WX 645 ; N uni2D18 ; G 3140 +U 11545 ; WX 649 ; N uni2D19 ; G 3141 +U 11546 ; WX 688 ; N uni2D1A ; G 3142 +U 11547 ; WX 936 ; N uni2D1B ; G 3143 +U 11548 ; WX 982 ; N uni2D1C ; G 3144 +U 11549 ; WX 681 ; N uni2D1D ; G 3145 +U 11550 ; WX 676 ; N uni2D1E ; G 3146 +U 11551 ; WX 852 ; N uni2D1F ; G 3147 +U 11552 ; WX 1113 ; N uni2D20 ; G 3148 +U 11553 ; WX 632 ; N uni2D21 ; G 3149 +U 11554 ; WX 645 ; N uni2D22 ; G 3150 +U 11555 ; WX 646 ; N uni2D23 ; G 3151 +U 11556 ; WX 749 ; N uni2D24 ; G 3152 +U 11557 ; WX 914 ; N uni2D25 ; G 3153 +U 11800 ; WX 586 ; N uni2E18 ; G 3154 +U 11807 ; WX 838 ; N uni2E1F ; G 3155 +U 11810 ; WX 473 ; N uni2E22 ; G 3156 +U 11811 ; WX 473 ; N uni2E23 ; G 3157 +U 11812 ; WX 473 ; N uni2E24 ; G 3158 +U 11813 ; WX 473 ; N uni2E25 ; G 3159 +U 11822 ; WX 586 ; N uni2E2E ; G 3160 +U 42564 ; WX 722 ; N uniA644 ; G 3161 +U 42565 ; WX 563 ; N uniA645 ; G 3162 +U 42566 ; WX 468 ; N uniA646 ; G 3163 +U 42567 ; WX 380 ; N uniA647 ; G 3164 +U 42576 ; WX 1333 ; N uniA650 ; G 3165 +U 42577 ; WX 1092 ; N uniA651 ; G 3166 +U 42580 ; WX 1287 ; N uniA654 ; G 3167 +U 42581 ; WX 1025 ; N uniA655 ; G 3168 +U 42582 ; WX 1287 ; N uniA656 ; G 3169 +U 42583 ; WX 1039 ; N uniA657 ; G 3170 +U 42648 ; WX 1448 ; N uniA698 ; G 3171 +U 42649 ; WX 1060 ; N uniA699 ; G 3172 +U 42760 ; WX 500 ; N uniA708 ; G 3173 +U 42761 ; WX 500 ; N uniA709 ; G 3174 +U 42762 ; WX 500 ; N uniA70A ; G 3175 +U 42763 ; WX 500 ; N uniA70B ; G 3176 +U 42764 ; WX 500 ; N uniA70C ; G 3177 +U 42765 ; WX 500 ; N uniA70D ; G 3178 +U 42766 ; WX 500 ; N uniA70E ; G 3179 +U 42767 ; WX 500 ; N uniA70F ; G 3180 +U 42768 ; WX 500 ; N uniA710 ; G 3181 +U 42769 ; WX 500 ; N uniA711 ; G 3182 +U 42770 ; WX 500 ; N uniA712 ; G 3183 +U 42771 ; WX 500 ; N uniA713 ; G 3184 +U 42772 ; WX 500 ; N uniA714 ; G 3185 +U 42773 ; WX 500 ; N uniA715 ; G 3186 +U 42774 ; WX 500 ; N uniA716 ; G 3187 +U 42779 ; WX 384 ; N uniA71B ; G 3188 +U 42780 ; WX 384 ; N uniA71C ; G 3189 +U 42781 ; WX 276 ; N uniA71D ; G 3190 +U 42782 ; WX 276 ; N uniA71E ; G 3191 +U 42783 ; WX 276 ; N uniA71F ; G 3192 +U 42790 ; WX 945 ; N uniA726 ; G 3193 +U 42791 ; WX 712 ; N uniA727 ; G 3194 +U 42792 ; WX 1003 ; N uniA728 ; G 3195 +U 42793 ; WX 909 ; N uniA729 ; G 3196 +U 42794 ; WX 696 ; N uniA72A ; G 3197 +U 42795 ; WX 609 ; N uniA72B ; G 3198 +U 42796 ; WX 634 ; N uniA72C ; G 3199 +U 42797 ; WX 598 ; N uniA72D ; G 3200 +U 42798 ; WX 741 ; N uniA72E ; G 3201 +U 42799 ; WX 706 ; N uniA72F ; G 3202 +U 42800 ; WX 592 ; N uniA730 ; G 3203 +U 42801 ; WX 563 ; N uniA731 ; G 3204 +U 42802 ; WX 1301 ; N uniA732 ; G 3205 +U 42803 ; WX 986 ; N uniA733 ; G 3206 +U 42804 ; WX 1261 ; N uniA734 ; G 3207 +U 42805 ; WX 1004 ; N uniA735 ; G 3208 +U 42806 ; WX 1168 ; N uniA736 ; G 3209 +U 42807 ; WX 1008 ; N uniA737 ; G 3210 +U 42808 ; WX 1016 ; N uniA738 ; G 3211 +U 42809 ; WX 813 ; N uniA739 ; G 3212 +U 42810 ; WX 1016 ; N uniA73A ; G 3213 +U 42811 ; WX 813 ; N uniA73B ; G 3214 +U 42812 ; WX 994 ; N uniA73C ; G 3215 +U 42813 ; WX 847 ; N uniA73D ; G 3216 +U 42814 ; WX 796 ; N uniA73E ; G 3217 +U 42815 ; WX 609 ; N uniA73F ; G 3218 +U 42816 ; WX 910 ; N uniA740 ; G 3219 +U 42817 ; WX 722 ; N uniA741 ; G 3220 +U 42822 ; WX 916 ; N uniA746 ; G 3221 +U 42823 ; WX 581 ; N uniA747 ; G 3222 +U 42826 ; WX 1010 ; N uniA74A ; G 3223 +U 42827 ; WX 770 ; N uniA74B ; G 3224 +U 42830 ; WX 1448 ; N uniA74E ; G 3225 +U 42831 ; WX 1060 ; N uniA74F ; G 3226 +U 42856 ; WX 787 ; N uniA768 ; G 3227 +U 42857 ; WX 716 ; N uniA769 ; G 3228 +U 42875 ; WX 694 ; N uniA77B ; G 3229 +U 42876 ; WX 527 ; N uniA77C ; G 3230 +U 42880 ; WX 703 ; N uniA780 ; G 3231 +U 42881 ; WX 380 ; N uniA781 ; G 3232 +U 42882 ; WX 872 ; N uniA782 ; G 3233 +U 42883 ; WX 727 ; N uniA783 ; G 3234 +U 42884 ; WX 694 ; N uniA784 ; G 3235 +U 42885 ; WX 527 ; N uniA785 ; G 3236 +U 42886 ; WX 796 ; N uniA786 ; G 3237 +U 42887 ; WX 609 ; N uniA787 ; G 3238 +U 42891 ; WX 439 ; N uniA78B ; G 3239 +U 42892 ; WX 306 ; N uniA78C ; G 3240 +U 42893 ; WX 913 ; N uniA78D ; G 3241 +U 42896 ; WX 914 ; N uniA790 ; G 3242 +U 42897 ; WX 727 ; N uniA791 ; G 3243 +U 42922 ; WX 945 ; N uniA7AA ; G 3244 +U 43000 ; WX 595 ; N uniA7F8 ; G 3245 +U 43001 ; WX 647 ; N uniA7F9 ; G 3246 +U 43002 ; WX 1069 ; N uniA7FA ; G 3247 +U 43003 ; WX 710 ; N uniA7FB ; G 3248 +U 43004 ; WX 752 ; N uniA7FC ; G 3249 +U 43005 ; WX 1107 ; N uniA7FD ; G 3250 +U 43006 ; WX 468 ; N uniA7FE ; G 3251 +U 43007 ; WX 1286 ; N uniA7FF ; G 3252 +U 62464 ; WX 705 ; N uniF400 ; G 3253 +U 62465 ; WX 716 ; N uniF401 ; G 3254 +U 62466 ; WX 765 ; N uniF402 ; G 3255 +U 62467 ; WX 999 ; N uniF403 ; G 3256 +U 62468 ; WX 716 ; N uniF404 ; G 3257 +U 62469 ; WX 710 ; N uniF405 ; G 3258 +U 62470 ; WX 776 ; N uniF406 ; G 3259 +U 62471 ; WX 1038 ; N uniF407 ; G 3260 +U 62472 ; WX 716 ; N uniF408 ; G 3261 +U 62473 ; WX 716 ; N uniF409 ; G 3262 +U 62474 ; WX 1309 ; N uniF40A ; G 3263 +U 62475 ; WX 734 ; N uniF40B ; G 3264 +U 62476 ; WX 733 ; N uniF40C ; G 3265 +U 62477 ; WX 1004 ; N uniF40D ; G 3266 +U 62478 ; WX 716 ; N uniF40E ; G 3267 +U 62479 ; WX 733 ; N uniF40F ; G 3268 +U 62480 ; WX 1050 ; N uniF410 ; G 3269 +U 62481 ; WX 797 ; N uniF411 ; G 3270 +U 62482 ; WX 850 ; N uniF412 ; G 3271 +U 62483 ; WX 799 ; N uniF413 ; G 3272 +U 62484 ; WX 996 ; N uniF414 ; G 3273 +U 62485 ; WX 732 ; N uniF415 ; G 3274 +U 62486 ; WX 987 ; N uniF416 ; G 3275 +U 62487 ; WX 731 ; N uniF417 ; G 3276 +U 62488 ; WX 739 ; N uniF418 ; G 3277 +U 62489 ; WX 733 ; N uniF419 ; G 3278 +U 62490 ; WX 780 ; N uniF41A ; G 3279 +U 62491 ; WX 733 ; N uniF41B ; G 3280 +U 62492 ; WX 739 ; N uniF41C ; G 3281 +U 62493 ; WX 717 ; N uniF41D ; G 3282 +U 62494 ; WX 780 ; N uniF41E ; G 3283 +U 62495 ; WX 936 ; N uniF41F ; G 3284 +U 62496 ; WX 716 ; N uniF420 ; G 3285 +U 62497 ; WX 826 ; N uniF421 ; G 3286 +U 62498 ; WX 717 ; N uniF422 ; G 3287 +U 62499 ; WX 716 ; N uniF423 ; G 3288 +U 62500 ; WX 716 ; N uniF424 ; G 3289 +U 62501 ; WX 773 ; N uniF425 ; G 3290 +U 62502 ; WX 1013 ; N uniF426 ; G 3291 +U 62504 ; WX 904 ; N uniF428 ; G 3292 +U 63173 ; WX 667 ; N uniF6C5 ; G 3293 +U 63185 ; WX 500 ; N cyrBreve ; G 3294 +U 63188 ; WX 500 ; N cyrbreve ; G 3295 +U 64256 ; WX 821 ; N uniFB00 ; G 3296 +U 64257 ; WX 727 ; N fi ; G 3297 +U 64258 ; WX 727 ; N fl ; G 3298 +U 64259 ; WX 1120 ; N uniFB03 ; G 3299 +U 64260 ; WX 1117 ; N uniFB04 ; G 3300 +U 64261 ; WX 871 ; N uniFB05 ; G 3301 +U 64262 ; WX 971 ; N uniFB06 ; G 3302 +U 65024 ; WX 0 ; N uniFE00 ; G 3303 +U 65025 ; WX 0 ; N uniFE01 ; G 3304 +U 65026 ; WX 0 ; N uniFE02 ; G 3305 +U 65027 ; WX 0 ; N uniFE03 ; G 3306 +U 65028 ; WX 0 ; N uniFE04 ; G 3307 +U 65029 ; WX 0 ; N uniFE05 ; G 3308 +U 65030 ; WX 0 ; N uniFE06 ; G 3309 +U 65031 ; WX 0 ; N uniFE07 ; G 3310 +U 65032 ; WX 0 ; N uniFE08 ; G 3311 +U 65033 ; WX 0 ; N uniFE09 ; G 3312 +U 65034 ; WX 0 ; N uniFE0A ; G 3313 +U 65035 ; WX 0 ; N uniFE0B ; G 3314 +U 65036 ; WX 0 ; N uniFE0C ; G 3315 +U 65037 ; WX 0 ; N uniFE0D ; G 3316 +U 65038 ; WX 0 ; N uniFE0E ; G 3317 +U 65039 ; WX 0 ; N uniFE0F ; G 3318 +U 65529 ; WX 0 ; N uniFFF9 ; G 3319 +U 65530 ; WX 0 ; N uniFFFA ; G 3320 +U 65531 ; WX 0 ; N uniFFFB ; G 3321 +U 65532 ; WX 0 ; N uniFFFC ; G 3322 +U 65533 ; WX 1113 ; N uniFFFD ; G 3323 +EndCharMetrics +StartKernData +StartKernPairs 1408 + +KPX dollar seven -112 +KPX dollar nine -149 +KPX dollar colon -102 +KPX dollar less -102 +KPX dollar I -36 +KPX dollar W -36 +KPX dollar Y -83 +KPX dollar Z -83 +KPX dollar backslash -83 +KPX dollar questiondown -83 +KPX dollar Aacute -83 +KPX dollar Hcircumflex -112 +KPX dollar hcircumflex -36 +KPX dollar Hbar -112 +KPX dollar hbar -36 +KPX dollar Kcommaaccent -102 +KPX dollar kcommaaccent -83 +KPX dollar kgreenlandic -102 +KPX dollar Lacute -83 +KPX dollar lacute -102 +KPX dollar uni01DC -112 +KPX dollar uni01DD -36 +KPX dollar uni01F4 -102 +KPX dollar uni01F5 -83 + +KPX percent ampersand 38 +KPX percent asterisk 38 +KPX percent two 38 +KPX percent less -36 +KPX percent Egrave 38 +KPX percent Ecircumflex 38 +KPX percent Igrave 38 +KPX percent Icircumflex 38 +KPX percent Thorn 38 +KPX percent agrave 38 +KPX percent acircumflex 38 +KPX percent adieresis 38 +KPX percent Dcaron 38 +KPX percent Dcroat 38 +KPX percent Emacron 38 +KPX percent Ebreve 38 +KPX percent kgreenlandic -36 +KPX percent lacute -36 +KPX percent uni01AC 38 +KPX percent uni01AE 38 +KPX percent uni01F0 38 +KPX percent uni01F4 -36 + + +KPX quotesingle nine -36 + + +KPX parenright dollar -120 +KPX parenright D -112 +KPX parenright H -112 +KPX parenright R -112 +KPX parenright U -36 +KPX parenright X -36 +KPX parenright cent -112 +KPX parenright sterling -112 +KPX parenright currency -112 +KPX parenright yen -112 +KPX parenright brokenbar -112 +KPX parenright section -112 +KPX parenright dieresis -112 +KPX parenright ordfeminine -112 +KPX parenright guillemotleft -112 +KPX parenright logicalnot -112 +KPX parenright sfthyphen -112 +KPX parenright acute -112 +KPX parenright mu -112 +KPX parenright paragraph -112 +KPX parenright periodcentered -112 +KPX parenright cedilla -112 +KPX parenright ordmasculine -112 +KPX parenright guillemotright -36 +KPX parenright onequarter -36 +KPX parenright onehalf -36 +KPX parenright threequarters -36 +KPX parenright Acircumflex -120 +KPX parenright Atilde -112 +KPX parenright Adieresis -120 +KPX parenright Aring -112 +KPX parenright AE -120 +KPX parenright Ccedilla -112 +KPX parenright Otilde -112 +KPX parenright multiply -112 +KPX parenright Ugrave -112 +KPX parenright Ucircumflex -112 +KPX parenright Yacute -112 +KPX parenright dcaron -112 +KPX parenright dmacron -112 +KPX parenright emacron -112 +KPX parenright ebreve -112 +KPX parenright edotaccent -36 +KPX parenright eogonek -36 +KPX parenright ecaron -36 +KPX parenright imacron -36 +KPX parenright ibreve -36 +KPX parenright iogonek -36 +KPX parenright dotlessi -36 +KPX parenright ij -36 +KPX parenright jcircumflex -36 +KPX parenright uni01A5 -112 +KPX parenright uni01AD -112 +KPX parenright Uhorn -112 +KPX parenright uni01F1 -112 + + + +KPX period dollar -83 +KPX period ampersand -55 +KPX period two -55 +KPX period eight -73 +KPX period colon -73 +KPX period less -55 +KPX period H -45 +KPX period R -45 +KPX period X -45 +KPX period backslash -92 +KPX period ordfeminine -45 +KPX period guillemotleft -45 +KPX period logicalnot -45 +KPX period sfthyphen -45 +KPX period acute -45 +KPX period mu -45 +KPX period paragraph -45 +KPX period periodcentered -45 +KPX period cedilla -45 +KPX period ordmasculine -36 +KPX period guillemotright -45 +KPX period onequarter -45 +KPX period onehalf -45 +KPX period threequarters -45 +KPX period questiondown -92 +KPX period Aacute -92 +KPX period Egrave -55 +KPX period Icircumflex -55 +KPX period Yacute -45 +KPX period Ebreve -55 +KPX period ebreve -45 +KPX period Idot -73 +KPX period dotlessi -45 +KPX period lacute -55 + +KPX slash seven -167 +KPX slash eight -112 +KPX slash nine -243 +KPX slash colon -139 +KPX slash less -131 +KPX slash backslash -73 +KPX slash questiondown -73 +KPX slash Aacute -73 +KPX slash Hbar -167 +KPX slash Idot -112 +KPX slash lacute -131 + + +KPX two nine -36 +KPX two semicolon -36 + +KPX three dollar -149 +KPX three D -55 +KPX three H -55 +KPX three R -55 +KPX three cent -55 +KPX three sterling -55 +KPX three currency -55 +KPX three yen -55 +KPX three brokenbar -55 +KPX three section -55 +KPX three dieresis -55 +KPX three ordfeminine -55 +KPX three guillemotleft -55 +KPX three logicalnot -55 +KPX three sfthyphen -55 +KPX three acute -55 +KPX three mu -55 +KPX three paragraph -55 +KPX three periodcentered -55 +KPX three cedilla -55 +KPX three ordmasculine -55 +KPX three Yacute -55 +KPX three ebreve -55 + + +KPX five seven -36 +KPX five nine -73 +KPX five colon -45 +KPX five less -63 +KPX five D 47 +KPX five backslash -36 +KPX five cent 47 +KPX five sterling 47 +KPX five currency 47 +KPX five yen 47 +KPX five brokenbar 47 +KPX five section 47 +KPX five dieresis 47 +KPX five ordmasculine 38 +KPX five questiondown -36 +KPX five Aacute -36 +KPX five Hbar -36 +KPX five lacute -63 + +KPX six six -45 +KPX six Gdotaccent -45 +KPX six Gcommaaccent -45 + +KPX seven dollar -112 +KPX seven seven -73 +KPX seven D -196 +KPX seven F -235 +KPX seven H -235 +KPX seven R -235 +KPX seven U -149 +KPX seven V -188 +KPX seven X -188 +KPX seven Z -225 +KPX seven backslash -225 +KPX seven m -149 +KPX seven braceright -149 +KPX seven cent -96 +KPX seven sterling -196 +KPX seven currency -96 +KPX seven yen -96 +KPX seven brokenbar -96 +KPX seven section -96 +KPX seven dieresis -159 +KPX seven copyright -235 +KPX seven ordfeminine -175 +KPX seven guillemotleft -235 +KPX seven logicalnot -175 +KPX seven sfthyphen -175 +KPX seven acute -155 +KPX seven mu -235 +KPX seven paragraph -155 +KPX seven periodcentered -155 +KPX seven cedilla -155 +KPX seven ordmasculine -159 +KPX seven guillemotright -158 +KPX seven onequarter -188 +KPX seven onehalf -158 +KPX seven threequarters -158 +KPX seven questiondown -225 +KPX seven Aacute -225 +KPX seven Eacute -235 +KPX seven Idieresis -235 +KPX seven Yacute -235 +KPX seven ebreve -159 +KPX seven edotaccent -149 +KPX seven ecaron -149 +KPX seven gdotaccent -188 +KPX seven gcommaaccent -188 +KPX seven Hbar -73 +KPX seven dotlessi -188 + +KPX eight dollar -63 + +KPX nine dollar -159 +KPX nine two -36 +KPX nine D -188 +KPX nine H -188 +KPX nine L -36 +KPX nine R -188 +KPX nine X -131 +KPX nine backslash -83 +KPX nine cent -188 +KPX nine sterling -188 +KPX nine currency -188 +KPX nine yen -188 +KPX nine brokenbar -188 +KPX nine section -188 +KPX nine dieresis -188 +KPX nine ordfeminine -188 +KPX nine guillemotleft -188 +KPX nine logicalnot -188 +KPX nine sfthyphen -188 +KPX nine acute -188 +KPX nine mu -188 +KPX nine paragraph -188 +KPX nine periodcentered -188 +KPX nine cedilla -188 +KPX nine ordmasculine -188 +KPX nine guillemotright -131 +KPX nine onequarter -131 +KPX nine onehalf -131 +KPX nine threequarters -131 +KPX nine questiondown -83 +KPX nine Aacute -83 +KPX nine Yacute -188 +KPX nine Ebreve -36 +KPX nine ebreve -188 +KPX nine dotlessi -131 + +KPX colon dollar -131 +KPX colon D -178 +KPX colon H -167 +KPX colon L -36 +KPX colon R -167 +KPX colon U -92 +KPX colon X -83 +KPX colon backslash -45 +KPX colon cent -178 +KPX colon sterling -178 +KPX colon currency -178 +KPX colon yen -178 +KPX colon brokenbar -178 +KPX colon section -178 +KPX colon dieresis -139 +KPX colon ordfeminine -167 +KPX colon guillemotleft -167 +KPX colon logicalnot -167 +KPX colon sfthyphen -167 +KPX colon acute -167 +KPX colon mu -167 +KPX colon paragraph -167 +KPX colon periodcentered -167 +KPX colon cedilla -167 +KPX colon ordmasculine -167 +KPX colon guillemotright -83 +KPX colon onequarter -83 +KPX colon onehalf -83 +KPX colon threequarters -83 +KPX colon questiondown -45 +KPX colon Aacute -45 +KPX colon Yacute -167 +KPX colon ebreve -167 +KPX colon edotaccent -92 +KPX colon ecaron -92 +KPX colon dotlessi -83 + +KPX semicolon dollar -73 +KPX semicolon ampersand -36 +KPX semicolon two -36 +KPX semicolon Egrave -36 +KPX semicolon Icircumflex -36 +KPX semicolon Ebreve -36 + +KPX less dollar -131 +KPX less ampersand -36 +KPX less D -159 +KPX less H -178 +KPX less L -36 +KPX less R -178 +KPX less X -178 +KPX less cent -159 +KPX less sterling -159 +KPX less currency -159 +KPX less yen -159 +KPX less brokenbar -159 +KPX less section -159 +KPX less dieresis -159 +KPX less ordfeminine -178 +KPX less guillemotleft -178 +KPX less logicalnot -178 +KPX less sfthyphen -178 +KPX less acute -178 +KPX less mu -178 +KPX less paragraph -178 +KPX less periodcentered -178 +KPX less cedilla -178 +KPX less ordmasculine -178 +KPX less guillemotright -178 +KPX less onequarter -178 +KPX less onehalf -178 +KPX less threequarters -178 +KPX less Egrave -36 +KPX less Icircumflex -36 +KPX less Yacute -178 +KPX less ebreve -178 +KPX less dotlessi -178 + + + + + + + + + + +KPX m hyphen -73 +KPX m seven -149 +KPX m Hbar -149 + +KPX braceright hyphen -73 +KPX braceright seven -149 +KPX braceright Hbar -149 + + + + + + + + + + + + +KPX Acircumflex seven -112 +KPX Acircumflex nine -149 +KPX Acircumflex colon -102 +KPX Acircumflex less -102 +KPX Acircumflex I -36 +KPX Acircumflex W -36 +KPX Acircumflex Y -83 +KPX Acircumflex Z -83 +KPX Acircumflex backslash -83 +KPX Acircumflex questiondown -83 +KPX Acircumflex Aacute -83 +KPX Acircumflex Hcircumflex -112 +KPX Acircumflex hcircumflex -36 +KPX Acircumflex Hbar -112 +KPX Acircumflex hbar -36 +KPX Acircumflex Kcommaaccent -102 +KPX Acircumflex kcommaaccent -83 +KPX Acircumflex kgreenlandic -102 +KPX Acircumflex Lacute -83 +KPX Acircumflex lacute -102 +KPX Acircumflex uni01DC -112 +KPX Acircumflex uni01DD -36 +KPX Acircumflex uni01F4 -102 +KPX Acircumflex uni01F5 -83 + +KPX Adieresis seven -112 +KPX Adieresis nine -149 +KPX Adieresis colon -102 +KPX Adieresis less -102 +KPX Adieresis I -36 +KPX Adieresis W -36 +KPX Adieresis Y -83 +KPX Adieresis Z -83 +KPX Adieresis backslash -83 +KPX Adieresis questiondown -83 +KPX Adieresis Aacute -83 +KPX Adieresis Hcircumflex -112 +KPX Adieresis hcircumflex -36 +KPX Adieresis Hbar -112 +KPX Adieresis hbar -36 +KPX Adieresis Kcommaaccent -102 +KPX Adieresis kcommaaccent -83 +KPX Adieresis kgreenlandic -102 +KPX Adieresis Lacute -83 +KPX Adieresis lacute -102 +KPX Adieresis uni01DC -112 +KPX Adieresis uni01DD -36 +KPX Adieresis uni01F4 -102 +KPX Adieresis uni01F5 -83 + +KPX AE seven -112 +KPX AE nine -149 +KPX AE colon -102 +KPX AE less -102 +KPX AE I -36 +KPX AE W -36 +KPX AE Y -83 +KPX AE Z -83 +KPX AE backslash -83 +KPX AE questiondown -83 +KPX AE Aacute -83 +KPX AE Hcircumflex -112 +KPX AE hcircumflex -36 +KPX AE Hbar -112 +KPX AE hbar -36 +KPX AE Kcommaaccent -102 +KPX AE kcommaaccent -83 +KPX AE kgreenlandic -102 +KPX AE Lacute -83 +KPX AE lacute -102 +KPX AE uni01DC -112 +KPX AE uni01DD -36 +KPX AE uni01F4 -102 +KPX AE uni01F5 -83 + + + + + +KPX Eth nine -36 + +KPX Ograve nine -36 + + + +KPX ucircumflex seven -167 +KPX ucircumflex eight -112 +KPX ucircumflex nine -243 +KPX ucircumflex colon -139 +KPX ucircumflex less -131 +KPX ucircumflex backslash -73 +KPX ucircumflex questiondown -73 +KPX ucircumflex Aacute -73 +KPX ucircumflex Hbar -167 +KPX ucircumflex Idot -112 +KPX ucircumflex lacute -131 + +KPX ydieresis seven -167 +KPX ydieresis eight -112 +KPX ydieresis nine -243 +KPX ydieresis colon -139 +KPX ydieresis less -131 +KPX ydieresis backslash -73 +KPX ydieresis questiondown -73 +KPX ydieresis Aacute -73 +KPX ydieresis Hbar -167 +KPX ydieresis Idot -112 +KPX ydieresis lacute -131 + +KPX Abreve O -241 + +KPX abreve seven -167 +KPX abreve eight -112 +KPX abreve nine -243 +KPX abreve colon -139 +KPX abreve less -131 +KPX abreve backslash -73 +KPX abreve questiondown -73 +KPX abreve Aacute -73 +KPX abreve Hbar -167 +KPX abreve Idot -112 +KPX abreve lacute -131 + + + +KPX Edotaccent seven -36 +KPX Edotaccent nine -73 +KPX Edotaccent colon -45 +KPX Edotaccent less -63 +KPX Edotaccent D 47 +KPX Edotaccent backslash -36 +KPX Edotaccent cent 47 +KPX Edotaccent sterling 47 +KPX Edotaccent currency 47 +KPX Edotaccent yen 47 +KPX Edotaccent brokenbar 47 +KPX Edotaccent section 47 +KPX Edotaccent dieresis 47 +KPX Edotaccent ordmasculine 38 +KPX Edotaccent questiondown -36 +KPX Edotaccent Aacute -36 +KPX Edotaccent Hbar -36 +KPX Edotaccent lacute -63 + + +KPX Ecaron seven -36 +KPX Ecaron nine -73 +KPX Ecaron colon -45 +KPX Ecaron less -63 +KPX Ecaron D 47 +KPX Ecaron backslash -36 +KPX Ecaron cent 47 +KPX Ecaron sterling 47 +KPX Ecaron currency 47 +KPX Ecaron yen 47 +KPX Ecaron brokenbar 47 +KPX Ecaron section 47 +KPX Ecaron dieresis 47 +KPX Ecaron ordmasculine 38 +KPX Ecaron questiondown -36 +KPX Ecaron Aacute -36 +KPX Ecaron Hbar -36 +KPX Ecaron lacute -63 + + +KPX Gdotaccent six -45 +KPX Gdotaccent Gdotaccent -45 +KPX Gdotaccent Gcommaaccent -45 + +KPX Gcommaaccent six -45 +KPX Gcommaaccent Gdotaccent -45 +KPX Gcommaaccent Gcommaaccent -45 + +KPX Hbar dollar -112 +KPX Hbar seven -73 +KPX Hbar D -196 +KPX Hbar F -235 +KPX Hbar H -235 +KPX Hbar R -235 +KPX Hbar U -149 +KPX Hbar V -188 +KPX Hbar X -188 +KPX Hbar Z -225 +KPX Hbar backslash -225 +KPX Hbar m -149 +KPX Hbar braceright -149 +KPX Hbar cent -196 +KPX Hbar sterling -196 +KPX Hbar currency -196 +KPX Hbar yen -196 +KPX Hbar brokenbar -196 +KPX Hbar section -196 +KPX Hbar dieresis -159 +KPX Hbar copyright -235 +KPX Hbar ordfeminine -235 +KPX Hbar guillemotleft -235 +KPX Hbar logicalnot -235 +KPX Hbar sfthyphen -235 +KPX Hbar acute -235 +KPX Hbar mu -235 +KPX Hbar paragraph -235 +KPX Hbar periodcentered -235 +KPX Hbar cedilla -235 +KPX Hbar ordmasculine -159 +KPX Hbar guillemotright -188 +KPX Hbar onequarter -188 +KPX Hbar onehalf -188 +KPX Hbar threequarters -188 +KPX Hbar questiondown -225 +KPX Hbar Aacute -225 +KPX Hbar Eacute -235 +KPX Hbar Idieresis -235 +KPX Hbar Yacute -235 +KPX Hbar ebreve -159 +KPX Hbar edotaccent -149 +KPX Hbar ecaron -149 +KPX Hbar gdotaccent -188 +KPX Hbar gcommaaccent -188 +KPX Hbar Hbar -73 +KPX Hbar dotlessi -188 + +KPX Idot dollar -63 + +KPX lacute dollar -131 +KPX lacute ampersand -36 +KPX lacute D -159 +KPX lacute H -178 +KPX lacute L -36 +KPX lacute R -178 +KPX lacute X -178 +KPX lacute cent -159 +KPX lacute sterling -159 +KPX lacute currency -159 +KPX lacute yen -159 +KPX lacute brokenbar -159 +KPX lacute section -159 +KPX lacute dieresis -159 +KPX lacute ordfeminine -178 +KPX lacute guillemotleft -178 +KPX lacute logicalnot -178 +KPX lacute sfthyphen -178 +KPX lacute acute -178 +KPX lacute mu -178 +KPX lacute paragraph -178 +KPX lacute periodcentered -178 +KPX lacute cedilla -178 +KPX lacute ordmasculine -178 +KPX lacute guillemotright -178 +KPX lacute onequarter -178 +KPX lacute onehalf -178 +KPX lacute threequarters -178 +KPX lacute Egrave -36 +KPX lacute Icircumflex -36 +KPX lacute Yacute -178 +KPX lacute ebreve -178 +KPX lacute dotlessi -178 + + +KPX uni027D dollar -282 +EndKernPairs +EndKernData +EndFontMetrics diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSerif-BoldItalic.ttf b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSerif-BoldItalic.ttf new file mode 100644 index 0000000..a36dd4b Binary files /dev/null and b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSerif-BoldItalic.ttf differ diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSerif-BoldItalic.ufm b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSerif-BoldItalic.ufm new file mode 100644 index 0000000..f6db21d --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSerif-BoldItalic.ufm @@ -0,0 +1,3892 @@ +StartFontMetrics 4.1 +Notice Converted by PHP-font-lib +Comment https://github.com/PhenX/php-font-lib +EncodingScheme FontSpecific +FontName DejaVu Serif +FontSubfamily Bold Italic +UniqueID DejaVu Serif Bold Italic +FullName DejaVu Serif Bold Italic +Version Version 2.37 +PostScriptName DejaVuSerif-BoldItalic +Manufacturer DejaVu fonts team +FontVendorURL http://dejavu.sourceforge.net +LicenseURL http://dejavu.sourceforge.net/wiki/index.php/License +PreferredFamily DejaVu Serif +PreferredSubfamily Bold Italic +Weight Bold +ItalicAngle -11 +IsFixedPitch false +UnderlineThickness 44 +UnderlinePosition -63 +FontHeightOffset 0 +Ascender 939 +Descender -236 +FontBBox -906 -389 1925 1145 +StartCharMetrics 3506 +U 32 ; WX 348 ; N space ; G 3 +U 33 ; WX 439 ; N exclam ; G 4 +U 34 ; WX 521 ; N quotedbl ; G 5 +U 35 ; WX 838 ; N numbersign ; G 6 +U 36 ; WX 696 ; N dollar ; G 7 +U 37 ; WX 950 ; N percent ; G 8 +U 38 ; WX 903 ; N ampersand ; G 9 +U 39 ; WX 306 ; N quotesingle ; G 10 +U 40 ; WX 473 ; N parenleft ; G 11 +U 41 ; WX 473 ; N parenright ; G 12 +U 42 ; WX 523 ; N asterisk ; G 13 +U 43 ; WX 838 ; N plus ; G 14 +U 44 ; WX 348 ; N comma ; G 15 +U 45 ; WX 415 ; N hyphen ; G 16 +U 46 ; WX 348 ; N period ; G 17 +U 47 ; WX 365 ; N slash ; G 18 +U 48 ; WX 696 ; N zero ; G 19 +U 49 ; WX 696 ; N one ; G 20 +U 50 ; WX 696 ; N two ; G 21 +U 51 ; WX 696 ; N three ; G 22 +U 52 ; WX 696 ; N four ; G 23 +U 53 ; WX 696 ; N five ; G 24 +U 54 ; WX 696 ; N six ; G 25 +U 55 ; WX 696 ; N seven ; G 26 +U 56 ; WX 696 ; N eight ; G 27 +U 57 ; WX 696 ; N nine ; G 28 +U 58 ; WX 369 ; N colon ; G 29 +U 59 ; WX 369 ; N semicolon ; G 30 +U 60 ; WX 838 ; N less ; G 31 +U 61 ; WX 838 ; N equal ; G 32 +U 62 ; WX 838 ; N greater ; G 33 +U 63 ; WX 586 ; N question ; G 34 +U 64 ; WX 1000 ; N at ; G 35 +U 65 ; WX 776 ; N A ; G 36 +U 66 ; WX 845 ; N B ; G 37 +U 67 ; WX 796 ; N C ; G 38 +U 68 ; WX 867 ; N D ; G 39 +U 69 ; WX 762 ; N E ; G 40 +U 70 ; WX 710 ; N F ; G 41 +U 71 ; WX 854 ; N G ; G 42 +U 72 ; WX 945 ; N H ; G 43 +U 73 ; WX 468 ; N I ; G 44 +U 74 ; WX 473 ; N J ; G 45 +U 75 ; WX 869 ; N K ; G 46 +U 76 ; WX 703 ; N L ; G 47 +U 77 ; WX 1107 ; N M ; G 48 +U 78 ; WX 914 ; N N ; G 49 +U 79 ; WX 871 ; N O ; G 50 +U 80 ; WX 752 ; N P ; G 51 +U 81 ; WX 871 ; N Q ; G 52 +U 82 ; WX 831 ; N R ; G 53 +U 83 ; WX 722 ; N S ; G 54 +U 84 ; WX 744 ; N T ; G 55 +U 85 ; WX 872 ; N U ; G 56 +U 86 ; WX 776 ; N V ; G 57 +U 87 ; WX 1123 ; N W ; G 58 +U 88 ; WX 776 ; N X ; G 59 +U 89 ; WX 714 ; N Y ; G 60 +U 90 ; WX 730 ; N Z ; G 61 +U 91 ; WX 473 ; N bracketleft ; G 62 +U 92 ; WX 365 ; N backslash ; G 63 +U 93 ; WX 473 ; N bracketright ; G 64 +U 94 ; WX 838 ; N asciicircum ; G 65 +U 95 ; WX 500 ; N underscore ; G 66 +U 96 ; WX 500 ; N grave ; G 67 +U 97 ; WX 648 ; N a ; G 68 +U 98 ; WX 699 ; N b ; G 69 +U 99 ; WX 609 ; N c ; G 70 +U 100 ; WX 699 ; N d ; G 71 +U 101 ; WX 636 ; N e ; G 72 +U 102 ; WX 430 ; N f ; G 73 +U 103 ; WX 699 ; N g ; G 74 +U 104 ; WX 727 ; N h ; G 75 +U 105 ; WX 380 ; N i ; G 76 +U 106 ; WX 362 ; N j ; G 77 +U 107 ; WX 693 ; N k ; G 78 +U 108 ; WX 380 ; N l ; G 79 +U 109 ; WX 1058 ; N m ; G 80 +U 110 ; WX 727 ; N n ; G 81 +U 111 ; WX 667 ; N o ; G 82 +U 112 ; WX 699 ; N p ; G 83 +U 113 ; WX 699 ; N q ; G 84 +U 114 ; WX 527 ; N r ; G 85 +U 115 ; WX 563 ; N s ; G 86 +U 116 ; WX 462 ; N t ; G 87 +U 117 ; WX 727 ; N u ; G 88 +U 118 ; WX 581 ; N v ; G 89 +U 119 ; WX 861 ; N w ; G 90 +U 120 ; WX 596 ; N x ; G 91 +U 121 ; WX 581 ; N y ; G 92 +U 122 ; WX 568 ; N z ; G 93 +U 123 ; WX 643 ; N braceleft ; G 94 +U 124 ; WX 364 ; N bar ; G 95 +U 125 ; WX 643 ; N braceright ; G 96 +U 126 ; WX 838 ; N asciitilde ; G 97 +U 160 ; WX 348 ; N nbspace ; G 98 +U 161 ; WX 439 ; N exclamdown ; G 99 +U 162 ; WX 696 ; N cent ; G 100 +U 163 ; WX 696 ; N sterling ; G 101 +U 164 ; WX 636 ; N currency ; G 102 +U 165 ; WX 696 ; N yen ; G 103 +U 166 ; WX 364 ; N brokenbar ; G 104 +U 167 ; WX 523 ; N section ; G 105 +U 168 ; WX 500 ; N dieresis ; G 106 +U 169 ; WX 1000 ; N copyright ; G 107 +U 170 ; WX 487 ; N ordfeminine ; G 108 +U 171 ; WX 625 ; N guillemotleft ; G 109 +U 172 ; WX 838 ; N logicalnot ; G 110 +U 173 ; WX 415 ; N sfthyphen ; G 111 +U 174 ; WX 1000 ; N registered ; G 112 +U 175 ; WX 500 ; N macron ; G 113 +U 176 ; WX 500 ; N degree ; G 114 +U 177 ; WX 838 ; N plusminus ; G 115 +U 178 ; WX 438 ; N twosuperior ; G 116 +U 179 ; WX 438 ; N threesuperior ; G 117 +U 180 ; WX 500 ; N acute ; G 118 +U 181 ; WX 732 ; N mu ; G 119 +U 182 ; WX 636 ; N paragraph ; G 120 +U 183 ; WX 348 ; N periodcentered ; G 121 +U 184 ; WX 500 ; N cedilla ; G 122 +U 185 ; WX 438 ; N onesuperior ; G 123 +U 186 ; WX 500 ; N ordmasculine ; G 124 +U 187 ; WX 625 ; N guillemotright ; G 125 +U 188 ; WX 1043 ; N onequarter ; G 126 +U 189 ; WX 1043 ; N onehalf ; G 127 +U 190 ; WX 1043 ; N threequarters ; G 128 +U 191 ; WX 586 ; N questiondown ; G 129 +U 192 ; WX 776 ; N Agrave ; G 130 +U 193 ; WX 776 ; N Aacute ; G 131 +U 194 ; WX 776 ; N Acircumflex ; G 132 +U 195 ; WX 776 ; N Atilde ; G 133 +U 196 ; WX 776 ; N Adieresis ; G 134 +U 197 ; WX 776 ; N Aring ; G 135 +U 198 ; WX 1034 ; N AE ; G 136 +U 199 ; WX 796 ; N Ccedilla ; G 137 +U 200 ; WX 762 ; N Egrave ; G 138 +U 201 ; WX 762 ; N Eacute ; G 139 +U 202 ; WX 762 ; N Ecircumflex ; G 140 +U 203 ; WX 762 ; N Edieresis ; G 141 +U 204 ; WX 468 ; N Igrave ; G 142 +U 205 ; WX 468 ; N Iacute ; G 143 +U 206 ; WX 468 ; N Icircumflex ; G 144 +U 207 ; WX 468 ; N Idieresis ; G 145 +U 208 ; WX 874 ; N Eth ; G 146 +U 209 ; WX 914 ; N Ntilde ; G 147 +U 210 ; WX 871 ; N Ograve ; G 148 +U 211 ; WX 871 ; N Oacute ; G 149 +U 212 ; WX 871 ; N Ocircumflex ; G 150 +U 213 ; WX 871 ; N Otilde ; G 151 +U 214 ; WX 871 ; N Odieresis ; G 152 +U 215 ; WX 838 ; N multiply ; G 153 +U 216 ; WX 871 ; N Oslash ; G 154 +U 217 ; WX 872 ; N Ugrave ; G 155 +U 218 ; WX 872 ; N Uacute ; G 156 +U 219 ; WX 872 ; N Ucircumflex ; G 157 +U 220 ; WX 872 ; N Udieresis ; G 158 +U 221 ; WX 714 ; N Yacute ; G 159 +U 222 ; WX 757 ; N Thorn ; G 160 +U 223 ; WX 760 ; N germandbls ; G 161 +U 224 ; WX 648 ; N agrave ; G 162 +U 225 ; WX 648 ; N aacute ; G 163 +U 226 ; WX 648 ; N acircumflex ; G 164 +U 227 ; WX 648 ; N atilde ; G 165 +U 228 ; WX 648 ; N adieresis ; G 166 +U 229 ; WX 648 ; N aring ; G 167 +U 230 ; WX 932 ; N ae ; G 168 +U 231 ; WX 609 ; N ccedilla ; G 169 +U 232 ; WX 636 ; N egrave ; G 170 +U 233 ; WX 636 ; N eacute ; G 171 +U 234 ; WX 636 ; N ecircumflex ; G 172 +U 235 ; WX 636 ; N edieresis ; G 173 +U 236 ; WX 380 ; N igrave ; G 174 +U 237 ; WX 380 ; N iacute ; G 175 +U 238 ; WX 380 ; N icircumflex ; G 176 +U 239 ; WX 380 ; N idieresis ; G 177 +U 240 ; WX 667 ; N eth ; G 178 +U 241 ; WX 727 ; N ntilde ; G 179 +U 242 ; WX 667 ; N ograve ; G 180 +U 243 ; WX 667 ; N oacute ; G 181 +U 244 ; WX 667 ; N ocircumflex ; G 182 +U 245 ; WX 667 ; N otilde ; G 183 +U 246 ; WX 667 ; N odieresis ; G 184 +U 247 ; WX 838 ; N divide ; G 185 +U 248 ; WX 667 ; N oslash ; G 186 +U 249 ; WX 727 ; N ugrave ; G 187 +U 250 ; WX 727 ; N uacute ; G 188 +U 251 ; WX 727 ; N ucircumflex ; G 189 +U 252 ; WX 727 ; N udieresis ; G 190 +U 253 ; WX 581 ; N yacute ; G 191 +U 254 ; WX 699 ; N thorn ; G 192 +U 255 ; WX 581 ; N ydieresis ; G 193 +U 256 ; WX 776 ; N Amacron ; G 194 +U 257 ; WX 648 ; N amacron ; G 195 +U 258 ; WX 776 ; N Abreve ; G 196 +U 259 ; WX 648 ; N abreve ; G 197 +U 260 ; WX 776 ; N Aogonek ; G 198 +U 261 ; WX 648 ; N aogonek ; G 199 +U 262 ; WX 796 ; N Cacute ; G 200 +U 263 ; WX 609 ; N cacute ; G 201 +U 264 ; WX 796 ; N Ccircumflex ; G 202 +U 265 ; WX 609 ; N ccircumflex ; G 203 +U 266 ; WX 796 ; N Cdotaccent ; G 204 +U 267 ; WX 609 ; N cdotaccent ; G 205 +U 268 ; WX 796 ; N Ccaron ; G 206 +U 269 ; WX 609 ; N ccaron ; G 207 +U 270 ; WX 867 ; N Dcaron ; G 208 +U 271 ; WX 699 ; N dcaron ; G 209 +U 272 ; WX 874 ; N Dcroat ; G 210 +U 273 ; WX 699 ; N dmacron ; G 211 +U 274 ; WX 762 ; N Emacron ; G 212 +U 275 ; WX 636 ; N emacron ; G 213 +U 276 ; WX 762 ; N Ebreve ; G 214 +U 277 ; WX 636 ; N ebreve ; G 215 +U 278 ; WX 762 ; N Edotaccent ; G 216 +U 279 ; WX 636 ; N edotaccent ; G 217 +U 280 ; WX 762 ; N Eogonek ; G 218 +U 281 ; WX 636 ; N eogonek ; G 219 +U 282 ; WX 762 ; N Ecaron ; G 220 +U 283 ; WX 636 ; N ecaron ; G 221 +U 284 ; WX 854 ; N Gcircumflex ; G 222 +U 285 ; WX 699 ; N gcircumflex ; G 223 +U 286 ; WX 854 ; N Gbreve ; G 224 +U 287 ; WX 699 ; N gbreve ; G 225 +U 288 ; WX 854 ; N Gdotaccent ; G 226 +U 289 ; WX 699 ; N gdotaccent ; G 227 +U 290 ; WX 854 ; N Gcommaaccent ; G 228 +U 291 ; WX 699 ; N gcommaaccent ; G 229 +U 292 ; WX 945 ; N Hcircumflex ; G 230 +U 293 ; WX 727 ; N hcircumflex ; G 231 +U 294 ; WX 945 ; N Hbar ; G 232 +U 295 ; WX 727 ; N hbar ; G 233 +U 296 ; WX 468 ; N Itilde ; G 234 +U 297 ; WX 380 ; N itilde ; G 235 +U 298 ; WX 468 ; N Imacron ; G 236 +U 299 ; WX 380 ; N imacron ; G 237 +U 300 ; WX 468 ; N Ibreve ; G 238 +U 301 ; WX 380 ; N ibreve ; G 239 +U 302 ; WX 468 ; N Iogonek ; G 240 +U 303 ; WX 380 ; N iogonek ; G 241 +U 304 ; WX 468 ; N Idot ; G 242 +U 305 ; WX 380 ; N dotlessi ; G 243 +U 306 ; WX 942 ; N IJ ; G 244 +U 307 ; WX 751 ; N ij ; G 245 +U 308 ; WX 473 ; N Jcircumflex ; G 246 +U 309 ; WX 362 ; N jcircumflex ; G 247 +U 310 ; WX 869 ; N Kcommaaccent ; G 248 +U 311 ; WX 693 ; N kcommaaccent ; G 249 +U 312 ; WX 693 ; N kgreenlandic ; G 250 +U 313 ; WX 703 ; N Lacute ; G 251 +U 314 ; WX 380 ; N lacute ; G 252 +U 315 ; WX 703 ; N Lcommaaccent ; G 253 +U 316 ; WX 380 ; N lcommaaccent ; G 254 +U 317 ; WX 703 ; N Lcaron ; G 255 +U 318 ; WX 508 ; N lcaron ; G 256 +U 319 ; WX 703 ; N Ldot ; G 257 +U 320 ; WX 557 ; N ldot ; G 258 +U 321 ; WX 710 ; N Lslash ; G 259 +U 322 ; WX 385 ; N lslash ; G 260 +U 323 ; WX 914 ; N Nacute ; G 261 +U 324 ; WX 727 ; N nacute ; G 262 +U 325 ; WX 914 ; N Ncommaaccent ; G 263 +U 326 ; WX 727 ; N ncommaaccent ; G 264 +U 327 ; WX 914 ; N Ncaron ; G 265 +U 328 ; WX 727 ; N ncaron ; G 266 +U 329 ; WX 1008 ; N napostrophe ; G 267 +U 330 ; WX 872 ; N Eng ; G 268 +U 331 ; WX 727 ; N eng ; G 269 +U 332 ; WX 871 ; N Omacron ; G 270 +U 333 ; WX 667 ; N omacron ; G 271 +U 334 ; WX 871 ; N Obreve ; G 272 +U 335 ; WX 667 ; N obreve ; G 273 +U 336 ; WX 871 ; N Ohungarumlaut ; G 274 +U 337 ; WX 667 ; N ohungarumlaut ; G 275 +U 338 ; WX 1180 ; N OE ; G 276 +U 339 ; WX 1028 ; N oe ; G 277 +U 340 ; WX 831 ; N Racute ; G 278 +U 341 ; WX 527 ; N racute ; G 279 +U 342 ; WX 831 ; N Rcommaaccent ; G 280 +U 343 ; WX 527 ; N rcommaaccent ; G 281 +U 344 ; WX 831 ; N Rcaron ; G 282 +U 345 ; WX 527 ; N rcaron ; G 283 +U 346 ; WX 722 ; N Sacute ; G 284 +U 347 ; WX 563 ; N sacute ; G 285 +U 348 ; WX 722 ; N Scircumflex ; G 286 +U 349 ; WX 563 ; N scircumflex ; G 287 +U 350 ; WX 722 ; N Scedilla ; G 288 +U 351 ; WX 563 ; N scedilla ; G 289 +U 352 ; WX 722 ; N Scaron ; G 290 +U 353 ; WX 563 ; N scaron ; G 291 +U 354 ; WX 744 ; N Tcommaaccent ; G 292 +U 355 ; WX 462 ; N tcommaaccent ; G 293 +U 356 ; WX 744 ; N Tcaron ; G 294 +U 357 ; WX 462 ; N tcaron ; G 295 +U 358 ; WX 744 ; N Tbar ; G 296 +U 359 ; WX 462 ; N tbar ; G 297 +U 360 ; WX 872 ; N Utilde ; G 298 +U 361 ; WX 727 ; N utilde ; G 299 +U 362 ; WX 872 ; N Umacron ; G 300 +U 363 ; WX 727 ; N umacron ; G 301 +U 364 ; WX 872 ; N Ubreve ; G 302 +U 365 ; WX 727 ; N ubreve ; G 303 +U 366 ; WX 872 ; N Uring ; G 304 +U 367 ; WX 727 ; N uring ; G 305 +U 368 ; WX 872 ; N Uhungarumlaut ; G 306 +U 369 ; WX 727 ; N uhungarumlaut ; G 307 +U 370 ; WX 872 ; N Uogonek ; G 308 +U 371 ; WX 727 ; N uogonek ; G 309 +U 372 ; WX 1123 ; N Wcircumflex ; G 310 +U 373 ; WX 861 ; N wcircumflex ; G 311 +U 374 ; WX 714 ; N Ycircumflex ; G 312 +U 375 ; WX 581 ; N ycircumflex ; G 313 +U 376 ; WX 714 ; N Ydieresis ; G 314 +U 377 ; WX 730 ; N Zacute ; G 315 +U 378 ; WX 568 ; N zacute ; G 316 +U 379 ; WX 730 ; N Zdotaccent ; G 317 +U 380 ; WX 568 ; N zdotaccent ; G 318 +U 381 ; WX 730 ; N Zcaron ; G 319 +U 382 ; WX 568 ; N zcaron ; G 320 +U 383 ; WX 430 ; N longs ; G 321 +U 384 ; WX 699 ; N uni0180 ; G 322 +U 385 ; WX 845 ; N uni0181 ; G 323 +U 386 ; WX 854 ; N uni0182 ; G 324 +U 387 ; WX 699 ; N uni0183 ; G 325 +U 388 ; WX 854 ; N uni0184 ; G 326 +U 389 ; WX 699 ; N uni0185 ; G 327 +U 390 ; WX 796 ; N uni0186 ; G 328 +U 391 ; WX 796 ; N uni0187 ; G 329 +U 392 ; WX 609 ; N uni0188 ; G 330 +U 393 ; WX 874 ; N uni0189 ; G 331 +U 394 ; WX 867 ; N uni018A ; G 332 +U 395 ; WX 854 ; N uni018B ; G 333 +U 396 ; WX 699 ; N uni018C ; G 334 +U 397 ; WX 667 ; N uni018D ; G 335 +U 398 ; WX 762 ; N uni018E ; G 336 +U 399 ; WX 871 ; N uni018F ; G 337 +U 400 ; WX 721 ; N uni0190 ; G 338 +U 401 ; WX 710 ; N uni0191 ; G 339 +U 402 ; WX 430 ; N florin ; G 340 +U 403 ; WX 854 ; N uni0193 ; G 341 +U 404 ; WX 771 ; N uni0194 ; G 342 +U 405 ; WX 1043 ; N uni0195 ; G 343 +U 406 ; WX 468 ; N uni0196 ; G 344 +U 407 ; WX 468 ; N uni0197 ; G 345 +U 408 ; WX 869 ; N uni0198 ; G 346 +U 409 ; WX 693 ; N uni0199 ; G 347 +U 410 ; WX 380 ; N uni019A ; G 348 +U 411 ; WX 701 ; N uni019B ; G 349 +U 412 ; WX 1058 ; N uni019C ; G 350 +U 413 ; WX 914 ; N uni019D ; G 351 +U 414 ; WX 727 ; N uni019E ; G 352 +U 415 ; WX 871 ; N uni019F ; G 353 +U 416 ; WX 871 ; N Ohorn ; G 354 +U 417 ; WX 667 ; N ohorn ; G 355 +U 418 ; WX 1200 ; N uni01A2 ; G 356 +U 419 ; WX 943 ; N uni01A3 ; G 357 +U 420 ; WX 752 ; N uni01A4 ; G 358 +U 421 ; WX 699 ; N uni01A5 ; G 359 +U 422 ; WX 831 ; N uni01A6 ; G 360 +U 423 ; WX 722 ; N uni01A7 ; G 361 +U 424 ; WX 563 ; N uni01A8 ; G 362 +U 425 ; WX 707 ; N uni01A9 ; G 363 +U 426 ; WX 331 ; N uni01AA ; G 364 +U 427 ; WX 462 ; N uni01AB ; G 365 +U 428 ; WX 744 ; N uni01AC ; G 366 +U 429 ; WX 462 ; N uni01AD ; G 367 +U 430 ; WX 744 ; N uni01AE ; G 368 +U 431 ; WX 872 ; N Uhorn ; G 369 +U 432 ; WX 727 ; N uhorn ; G 370 +U 433 ; WX 890 ; N uni01B1 ; G 371 +U 434 ; WX 890 ; N uni01B2 ; G 372 +U 435 ; WX 714 ; N uni01B3 ; G 373 +U 436 ; WX 699 ; N uni01B4 ; G 374 +U 437 ; WX 730 ; N uni01B5 ; G 375 +U 438 ; WX 568 ; N uni01B6 ; G 376 +U 439 ; WX 657 ; N uni01B7 ; G 377 +U 440 ; WX 657 ; N uni01B8 ; G 378 +U 441 ; WX 657 ; N uni01B9 ; G 379 +U 442 ; WX 657 ; N uni01BA ; G 380 +U 443 ; WX 696 ; N uni01BB ; G 381 +U 444 ; WX 754 ; N uni01BC ; G 382 +U 445 ; WX 568 ; N uni01BD ; G 383 +U 446 ; WX 536 ; N uni01BE ; G 384 +U 447 ; WX 716 ; N uni01BF ; G 385 +U 448 ; WX 295 ; N uni01C0 ; G 386 +U 449 ; WX 492 ; N uni01C1 ; G 387 +U 450 ; WX 459 ; N uni01C2 ; G 388 +U 451 ; WX 295 ; N uni01C3 ; G 389 +U 452 ; WX 1597 ; N uni01C4 ; G 390 +U 453 ; WX 1435 ; N uni01C5 ; G 391 +U 454 ; WX 1267 ; N uni01C6 ; G 392 +U 455 ; WX 1176 ; N uni01C7 ; G 393 +U 456 ; WX 1065 ; N uni01C8 ; G 394 +U 457 ; WX 742 ; N uni01C9 ; G 395 +U 458 ; WX 1387 ; N uni01CA ; G 396 +U 459 ; WX 1276 ; N uni01CB ; G 397 +U 460 ; WX 1089 ; N uni01CC ; G 398 +U 461 ; WX 776 ; N uni01CD ; G 399 +U 462 ; WX 648 ; N uni01CE ; G 400 +U 463 ; WX 468 ; N uni01CF ; G 401 +U 464 ; WX 380 ; N uni01D0 ; G 402 +U 465 ; WX 871 ; N uni01D1 ; G 403 +U 466 ; WX 667 ; N uni01D2 ; G 404 +U 467 ; WX 872 ; N uni01D3 ; G 405 +U 468 ; WX 727 ; N uni01D4 ; G 406 +U 469 ; WX 872 ; N uni01D5 ; G 407 +U 470 ; WX 727 ; N uni01D6 ; G 408 +U 471 ; WX 872 ; N uni01D7 ; G 409 +U 472 ; WX 727 ; N uni01D8 ; G 410 +U 473 ; WX 872 ; N uni01D9 ; G 411 +U 474 ; WX 727 ; N uni01DA ; G 412 +U 475 ; WX 872 ; N uni01DB ; G 413 +U 476 ; WX 727 ; N uni01DC ; G 414 +U 477 ; WX 636 ; N uni01DD ; G 415 +U 478 ; WX 776 ; N uni01DE ; G 416 +U 479 ; WX 648 ; N uni01DF ; G 417 +U 480 ; WX 776 ; N uni01E0 ; G 418 +U 481 ; WX 648 ; N uni01E1 ; G 419 +U 482 ; WX 1034 ; N uni01E2 ; G 420 +U 483 ; WX 975 ; N uni01E3 ; G 421 +U 484 ; WX 896 ; N uni01E4 ; G 422 +U 485 ; WX 699 ; N uni01E5 ; G 423 +U 486 ; WX 854 ; N Gcaron ; G 424 +U 487 ; WX 699 ; N gcaron ; G 425 +U 488 ; WX 869 ; N uni01E8 ; G 426 +U 489 ; WX 693 ; N uni01E9 ; G 427 +U 490 ; WX 871 ; N uni01EA ; G 428 +U 491 ; WX 667 ; N uni01EB ; G 429 +U 492 ; WX 871 ; N uni01EC ; G 430 +U 493 ; WX 667 ; N uni01ED ; G 431 +U 494 ; WX 657 ; N uni01EE ; G 432 +U 495 ; WX 568 ; N uni01EF ; G 433 +U 496 ; WX 362 ; N uni01F0 ; G 434 +U 497 ; WX 1597 ; N uni01F1 ; G 435 +U 498 ; WX 1435 ; N uni01F2 ; G 436 +U 499 ; WX 1267 ; N uni01F3 ; G 437 +U 500 ; WX 854 ; N uni01F4 ; G 438 +U 501 ; WX 699 ; N uni01F5 ; G 439 +U 502 ; WX 1221 ; N uni01F6 ; G 440 +U 503 ; WX 787 ; N uni01F7 ; G 441 +U 504 ; WX 914 ; N uni01F8 ; G 442 +U 505 ; WX 727 ; N uni01F9 ; G 443 +U 506 ; WX 776 ; N Aringacute ; G 444 +U 507 ; WX 648 ; N aringacute ; G 445 +U 508 ; WX 1034 ; N AEacute ; G 446 +U 509 ; WX 932 ; N aeacute ; G 447 +U 510 ; WX 871 ; N Oslashacute ; G 448 +U 511 ; WX 667 ; N oslashacute ; G 449 +U 512 ; WX 776 ; N uni0200 ; G 450 +U 513 ; WX 648 ; N uni0201 ; G 451 +U 514 ; WX 776 ; N uni0202 ; G 452 +U 515 ; WX 648 ; N uni0203 ; G 453 +U 516 ; WX 762 ; N uni0204 ; G 454 +U 517 ; WX 636 ; N uni0205 ; G 455 +U 518 ; WX 762 ; N uni0206 ; G 456 +U 519 ; WX 636 ; N uni0207 ; G 457 +U 520 ; WX 468 ; N uni0208 ; G 458 +U 521 ; WX 380 ; N uni0209 ; G 459 +U 522 ; WX 468 ; N uni020A ; G 460 +U 523 ; WX 380 ; N uni020B ; G 461 +U 524 ; WX 871 ; N uni020C ; G 462 +U 525 ; WX 667 ; N uni020D ; G 463 +U 526 ; WX 871 ; N uni020E ; G 464 +U 527 ; WX 667 ; N uni020F ; G 465 +U 528 ; WX 831 ; N uni0210 ; G 466 +U 529 ; WX 527 ; N uni0211 ; G 467 +U 530 ; WX 831 ; N uni0212 ; G 468 +U 531 ; WX 527 ; N uni0213 ; G 469 +U 532 ; WX 872 ; N uni0214 ; G 470 +U 533 ; WX 727 ; N uni0215 ; G 471 +U 534 ; WX 872 ; N uni0216 ; G 472 +U 535 ; WX 727 ; N uni0217 ; G 473 +U 536 ; WX 722 ; N Scommaaccent ; G 474 +U 537 ; WX 563 ; N scommaaccent ; G 475 +U 538 ; WX 744 ; N uni021A ; G 476 +U 539 ; WX 462 ; N uni021B ; G 477 +U 540 ; WX 690 ; N uni021C ; G 478 +U 541 ; WX 607 ; N uni021D ; G 479 +U 542 ; WX 945 ; N uni021E ; G 480 +U 543 ; WX 727 ; N uni021F ; G 481 +U 544 ; WX 872 ; N uni0220 ; G 482 +U 545 ; WX 791 ; N uni0221 ; G 483 +U 546 ; WX 703 ; N uni0222 ; G 484 +U 547 ; WX 616 ; N uni0223 ; G 485 +U 548 ; WX 730 ; N uni0224 ; G 486 +U 549 ; WX 568 ; N uni0225 ; G 487 +U 550 ; WX 776 ; N uni0226 ; G 488 +U 551 ; WX 648 ; N uni0227 ; G 489 +U 552 ; WX 762 ; N uni0228 ; G 490 +U 553 ; WX 636 ; N uni0229 ; G 491 +U 554 ; WX 871 ; N uni022A ; G 492 +U 555 ; WX 667 ; N uni022B ; G 493 +U 556 ; WX 871 ; N uni022C ; G 494 +U 557 ; WX 667 ; N uni022D ; G 495 +U 558 ; WX 871 ; N uni022E ; G 496 +U 559 ; WX 667 ; N uni022F ; G 497 +U 560 ; WX 871 ; N uni0230 ; G 498 +U 561 ; WX 667 ; N uni0231 ; G 499 +U 562 ; WX 714 ; N uni0232 ; G 500 +U 563 ; WX 581 ; N uni0233 ; G 501 +U 564 ; WX 573 ; N uni0234 ; G 502 +U 565 ; WX 922 ; N uni0235 ; G 503 +U 566 ; WX 564 ; N uni0236 ; G 504 +U 567 ; WX 362 ; N dotlessj ; G 505 +U 568 ; WX 1031 ; N uni0238 ; G 506 +U 569 ; WX 1031 ; N uni0239 ; G 507 +U 570 ; WX 776 ; N uni023A ; G 508 +U 571 ; WX 796 ; N uni023B ; G 509 +U 572 ; WX 609 ; N uni023C ; G 510 +U 573 ; WX 703 ; N uni023D ; G 511 +U 574 ; WX 744 ; N uni023E ; G 512 +U 575 ; WX 563 ; N uni023F ; G 513 +U 576 ; WX 568 ; N uni0240 ; G 514 +U 577 ; WX 660 ; N uni0241 ; G 515 +U 578 ; WX 547 ; N uni0242 ; G 516 +U 579 ; WX 845 ; N uni0243 ; G 517 +U 580 ; WX 872 ; N uni0244 ; G 518 +U 581 ; WX 776 ; N uni0245 ; G 519 +U 582 ; WX 762 ; N uni0246 ; G 520 +U 583 ; WX 636 ; N uni0247 ; G 521 +U 584 ; WX 473 ; N uni0248 ; G 522 +U 585 ; WX 387 ; N uni0249 ; G 523 +U 586 ; WX 848 ; N uni024A ; G 524 +U 587 ; WX 699 ; N uni024B ; G 525 +U 588 ; WX 831 ; N uni024C ; G 526 +U 589 ; WX 527 ; N uni024D ; G 527 +U 590 ; WX 714 ; N uni024E ; G 528 +U 591 ; WX 581 ; N uni024F ; G 529 +U 592 ; WX 648 ; N uni0250 ; G 530 +U 593 ; WX 770 ; N uni0251 ; G 531 +U 594 ; WX 770 ; N uni0252 ; G 532 +U 595 ; WX 699 ; N uni0253 ; G 533 +U 596 ; WX 609 ; N uni0254 ; G 534 +U 597 ; WX 609 ; N uni0255 ; G 535 +U 598 ; WX 699 ; N uni0256 ; G 536 +U 599 ; WX 730 ; N uni0257 ; G 537 +U 600 ; WX 636 ; N uni0258 ; G 538 +U 601 ; WX 636 ; N uni0259 ; G 539 +U 602 ; WX 907 ; N uni025A ; G 540 +U 603 ; WX 608 ; N uni025B ; G 541 +U 604 ; WX 562 ; N uni025C ; G 542 +U 605 ; WX 907 ; N uni025D ; G 543 +U 606 ; WX 714 ; N uni025E ; G 544 +U 607 ; WX 387 ; N uni025F ; G 545 +U 608 ; WX 699 ; N uni0260 ; G 546 +U 609 ; WX 699 ; N uni0261 ; G 547 +U 610 ; WX 638 ; N uni0262 ; G 548 +U 611 ; WX 601 ; N uni0263 ; G 549 +U 612 ; WX 627 ; N uni0264 ; G 550 +U 613 ; WX 727 ; N uni0265 ; G 551 +U 614 ; WX 727 ; N uni0266 ; G 552 +U 615 ; WX 727 ; N uni0267 ; G 553 +U 616 ; WX 380 ; N uni0268 ; G 554 +U 617 ; WX 380 ; N uni0269 ; G 555 +U 618 ; WX 380 ; N uni026A ; G 556 +U 619 ; WX 409 ; N uni026B ; G 557 +U 620 ; WX 514 ; N uni026C ; G 558 +U 621 ; WX 380 ; N uni026D ; G 559 +U 622 ; WX 795 ; N uni026E ; G 560 +U 623 ; WX 1058 ; N uni026F ; G 561 +U 624 ; WX 1058 ; N uni0270 ; G 562 +U 625 ; WX 1058 ; N uni0271 ; G 563 +U 626 ; WX 727 ; N uni0272 ; G 564 +U 627 ; WX 727 ; N uni0273 ; G 565 +U 628 ; WX 712 ; N uni0274 ; G 566 +U 629 ; WX 667 ; N uni0275 ; G 567 +U 630 ; WX 1061 ; N uni0276 ; G 568 +U 631 ; WX 944 ; N uni0277 ; G 569 +U 632 ; WX 797 ; N uni0278 ; G 570 +U 633 ; WX 571 ; N uni0279 ; G 571 +U 634 ; WX 571 ; N uni027A ; G 572 +U 635 ; WX 571 ; N uni027B ; G 573 +U 636 ; WX 527 ; N uni027C ; G 574 +U 637 ; WX 527 ; N uni027D ; G 575 +U 638 ; WX 452 ; N uni027E ; G 576 +U 639 ; WX 487 ; N uni027F ; G 577 +U 640 ; WX 694 ; N uni0280 ; G 578 +U 641 ; WX 694 ; N uni0281 ; G 579 +U 642 ; WX 563 ; N uni0282 ; G 580 +U 643 ; WX 331 ; N uni0283 ; G 581 +U 644 ; WX 430 ; N uni0284 ; G 582 +U 645 ; WX 540 ; N uni0285 ; G 583 +U 646 ; WX 331 ; N uni0286 ; G 584 +U 647 ; WX 492 ; N uni0287 ; G 585 +U 648 ; WX 462 ; N uni0288 ; G 586 +U 649 ; WX 727 ; N uni0289 ; G 587 +U 650 ; WX 679 ; N uni028A ; G 588 +U 651 ; WX 694 ; N uni028B ; G 589 +U 652 ; WX 581 ; N uni028C ; G 590 +U 653 ; WX 861 ; N uni028D ; G 591 +U 654 ; WX 635 ; N uni028E ; G 592 +U 655 ; WX 727 ; N uni028F ; G 593 +U 656 ; WX 568 ; N uni0290 ; G 594 +U 657 ; WX 568 ; N uni0291 ; G 595 +U 658 ; WX 568 ; N uni0292 ; G 596 +U 659 ; WX 568 ; N uni0293 ; G 597 +U 660 ; WX 551 ; N uni0294 ; G 598 +U 661 ; WX 551 ; N uni0295 ; G 599 +U 662 ; WX 551 ; N uni0296 ; G 600 +U 663 ; WX 545 ; N uni0297 ; G 601 +U 664 ; WX 871 ; N uni0298 ; G 602 +U 665 ; WX 695 ; N uni0299 ; G 603 +U 666 ; WX 714 ; N uni029A ; G 604 +U 667 ; WX 689 ; N uni029B ; G 605 +U 668 ; WX 732 ; N uni029C ; G 606 +U 669 ; WX 384 ; N uni029D ; G 607 +U 670 ; WX 740 ; N uni029E ; G 608 +U 671 ; WX 617 ; N uni029F ; G 609 +U 672 ; WX 699 ; N uni02A0 ; G 610 +U 673 ; WX 551 ; N uni02A1 ; G 611 +U 674 ; WX 551 ; N uni02A2 ; G 612 +U 675 ; WX 1117 ; N uni02A3 ; G 613 +U 676 ; WX 1179 ; N uni02A4 ; G 614 +U 677 ; WX 1117 ; N uni02A5 ; G 615 +U 678 ; WX 938 ; N uni02A6 ; G 616 +U 679 ; WX 715 ; N uni02A7 ; G 617 +U 680 ; WX 946 ; N uni02A8 ; G 618 +U 681 ; WX 1039 ; N uni02A9 ; G 619 +U 682 ; WX 870 ; N uni02AA ; G 620 +U 683 ; WX 795 ; N uni02AB ; G 621 +U 684 ; WX 662 ; N uni02AC ; G 622 +U 685 ; WX 443 ; N uni02AD ; G 623 +U 686 ; WX 613 ; N uni02AE ; G 624 +U 687 ; WX 717 ; N uni02AF ; G 625 +U 688 ; WX 521 ; N uni02B0 ; G 626 +U 689 ; WX 519 ; N uni02B1 ; G 627 +U 690 ; WX 313 ; N uni02B2 ; G 628 +U 691 ; WX 414 ; N uni02B3 ; G 629 +U 692 ; WX 414 ; N uni02B4 ; G 630 +U 693 ; WX 480 ; N uni02B5 ; G 631 +U 694 ; WX 527 ; N uni02B6 ; G 632 +U 695 ; WX 542 ; N uni02B7 ; G 633 +U 696 ; WX 366 ; N uni02B8 ; G 634 +U 697 ; WX 302 ; N uni02B9 ; G 635 +U 698 ; WX 521 ; N uni02BA ; G 636 +U 699 ; WX 348 ; N uni02BB ; G 637 +U 700 ; WX 348 ; N uni02BC ; G 638 +U 701 ; WX 348 ; N uni02BD ; G 639 +U 702 ; WX 366 ; N uni02BE ; G 640 +U 703 ; WX 366 ; N uni02BF ; G 641 +U 704 ; WX 313 ; N uni02C0 ; G 642 +U 705 ; WX 313 ; N uni02C1 ; G 643 +U 706 ; WX 500 ; N uni02C2 ; G 644 +U 707 ; WX 500 ; N uni02C3 ; G 645 +U 708 ; WX 500 ; N uni02C4 ; G 646 +U 709 ; WX 500 ; N uni02C5 ; G 647 +U 710 ; WX 500 ; N circumflex ; G 648 +U 711 ; WX 500 ; N caron ; G 649 +U 712 ; WX 282 ; N uni02C8 ; G 650 +U 713 ; WX 500 ; N uni02C9 ; G 651 +U 714 ; WX 500 ; N uni02CA ; G 652 +U 715 ; WX 500 ; N uni02CB ; G 653 +U 716 ; WX 282 ; N uni02CC ; G 654 +U 717 ; WX 500 ; N uni02CD ; G 655 +U 720 ; WX 369 ; N uni02D0 ; G 656 +U 721 ; WX 369 ; N uni02D1 ; G 657 +U 722 ; WX 366 ; N uni02D2 ; G 658 +U 723 ; WX 366 ; N uni02D3 ; G 659 +U 726 ; WX 392 ; N uni02D6 ; G 660 +U 727 ; WX 392 ; N uni02D7 ; G 661 +U 728 ; WX 500 ; N breve ; G 662 +U 729 ; WX 500 ; N dotaccent ; G 663 +U 730 ; WX 500 ; N ring ; G 664 +U 731 ; WX 500 ; N ogonek ; G 665 +U 732 ; WX 500 ; N tilde ; G 666 +U 733 ; WX 500 ; N hungarumlaut ; G 667 +U 734 ; WX 417 ; N uni02DE ; G 668 +U 736 ; WX 378 ; N uni02E0 ; G 669 +U 737 ; WX 292 ; N uni02E1 ; G 670 +U 738 ; WX 395 ; N uni02E2 ; G 671 +U 739 ; WX 375 ; N uni02E3 ; G 672 +U 740 ; WX 313 ; N uni02E4 ; G 673 +U 741 ; WX 500 ; N uni02E5 ; G 674 +U 742 ; WX 500 ; N uni02E6 ; G 675 +U 743 ; WX 500 ; N uni02E7 ; G 676 +U 744 ; WX 500 ; N uni02E8 ; G 677 +U 745 ; WX 500 ; N uni02E9 ; G 678 +U 748 ; WX 500 ; N uni02EC ; G 679 +U 750 ; WX 553 ; N uni02EE ; G 680 +U 751 ; WX 500 ; N uni02EF ; G 681 +U 752 ; WX 500 ; N uni02F0 ; G 682 +U 755 ; WX 500 ; N uni02F3 ; G 683 +U 759 ; WX 500 ; N uni02F7 ; G 684 +U 768 ; WX 0 ; N gravecomb ; G 685 +U 769 ; WX 0 ; N acutecomb ; G 686 +U 770 ; WX 0 ; N uni0302 ; G 687 +U 771 ; WX 0 ; N tildecomb ; G 688 +U 772 ; WX 0 ; N uni0304 ; G 689 +U 773 ; WX 0 ; N uni0305 ; G 690 +U 774 ; WX 0 ; N uni0306 ; G 691 +U 775 ; WX 0 ; N uni0307 ; G 692 +U 776 ; WX 0 ; N uni0308 ; G 693 +U 777 ; WX 0 ; N hookabovecomb ; G 694 +U 778 ; WX 0 ; N uni030A ; G 695 +U 779 ; WX 0 ; N uni030B ; G 696 +U 780 ; WX 0 ; N uni030C ; G 697 +U 781 ; WX 0 ; N uni030D ; G 698 +U 782 ; WX 0 ; N uni030E ; G 699 +U 783 ; WX 0 ; N uni030F ; G 700 +U 784 ; WX 0 ; N uni0310 ; G 701 +U 785 ; WX 0 ; N uni0311 ; G 702 +U 786 ; WX 0 ; N uni0312 ; G 703 +U 787 ; WX 0 ; N uni0313 ; G 704 +U 788 ; WX 0 ; N uni0314 ; G 705 +U 789 ; WX 0 ; N uni0315 ; G 706 +U 790 ; WX 0 ; N uni0316 ; G 707 +U 791 ; WX 0 ; N uni0317 ; G 708 +U 792 ; WX 0 ; N uni0318 ; G 709 +U 793 ; WX 0 ; N uni0319 ; G 710 +U 794 ; WX 0 ; N uni031A ; G 711 +U 795 ; WX 0 ; N uni031B ; G 712 +U 796 ; WX 0 ; N uni031C ; G 713 +U 797 ; WX 0 ; N uni031D ; G 714 +U 798 ; WX 0 ; N uni031E ; G 715 +U 799 ; WX 0 ; N uni031F ; G 716 +U 800 ; WX 0 ; N uni0320 ; G 717 +U 801 ; WX 0 ; N uni0321 ; G 718 +U 802 ; WX 0 ; N uni0322 ; G 719 +U 803 ; WX 0 ; N dotbelowcomb ; G 720 +U 804 ; WX 0 ; N uni0324 ; G 721 +U 805 ; WX 0 ; N uni0325 ; G 722 +U 806 ; WX 0 ; N uni0326 ; G 723 +U 807 ; WX 0 ; N uni0327 ; G 724 +U 808 ; WX 0 ; N uni0328 ; G 725 +U 809 ; WX 0 ; N uni0329 ; G 726 +U 810 ; WX 0 ; N uni032A ; G 727 +U 811 ; WX 0 ; N uni032B ; G 728 +U 812 ; WX 0 ; N uni032C ; G 729 +U 813 ; WX 0 ; N uni032D ; G 730 +U 814 ; WX 0 ; N uni032E ; G 731 +U 815 ; WX 0 ; N uni032F ; G 732 +U 816 ; WX 0 ; N uni0330 ; G 733 +U 817 ; WX 0 ; N uni0331 ; G 734 +U 818 ; WX 0 ; N uni0332 ; G 735 +U 819 ; WX 0 ; N uni0333 ; G 736 +U 820 ; WX 0 ; N uni0334 ; G 737 +U 821 ; WX 0 ; N uni0335 ; G 738 +U 822 ; WX 0 ; N uni0336 ; G 739 +U 823 ; WX 0 ; N uni0337 ; G 740 +U 824 ; WX 0 ; N uni0338 ; G 741 +U 825 ; WX 0 ; N uni0339 ; G 742 +U 826 ; WX 0 ; N uni033A ; G 743 +U 827 ; WX 0 ; N uni033B ; G 744 +U 828 ; WX 0 ; N uni033C ; G 745 +U 829 ; WX 0 ; N uni033D ; G 746 +U 830 ; WX 0 ; N uni033E ; G 747 +U 831 ; WX 0 ; N uni033F ; G 748 +U 835 ; WX 0 ; N uni0343 ; G 749 +U 847 ; WX 0 ; N uni034F ; G 750 +U 856 ; WX 0 ; N uni0358 ; G 751 +U 864 ; WX 0 ; N uni0360 ; G 752 +U 865 ; WX 0 ; N uni0361 ; G 753 +U 880 ; WX 779 ; N uni0370 ; G 754 +U 881 ; WX 576 ; N uni0371 ; G 755 +U 882 ; WX 803 ; N uni0372 ; G 756 +U 883 ; WX 777 ; N uni0373 ; G 757 +U 884 ; WX 302 ; N uni0374 ; G 758 +U 885 ; WX 302 ; N uni0375 ; G 759 +U 886 ; WX 963 ; N uni0376 ; G 760 +U 887 ; WX 737 ; N uni0377 ; G 761 +U 890 ; WX 500 ; N uni037A ; G 762 +U 891 ; WX 609 ; N uni037B ; G 763 +U 892 ; WX 609 ; N uni037C ; G 764 +U 893 ; WX 609 ; N uni037D ; G 765 +U 894 ; WX 369 ; N uni037E ; G 766 +U 895 ; WX 473 ; N uni037F ; G 767 +U 900 ; WX 500 ; N tonos ; G 768 +U 901 ; WX 500 ; N dieresistonos ; G 769 +U 902 ; WX 776 ; N Alphatonos ; G 770 +U 903 ; WX 348 ; N anoteleia ; G 771 +U 904 ; WX 947 ; N Epsilontonos ; G 772 +U 905 ; WX 1136 ; N Etatonos ; G 773 +U 906 ; WX 662 ; N Iotatonos ; G 774 +U 908 ; WX 887 ; N Omicrontonos ; G 775 +U 910 ; WX 953 ; N Upsilontonos ; G 776 +U 911 ; WX 911 ; N Omegatonos ; G 777 +U 912 ; WX 484 ; N iotadieresistonos ; G 778 +U 913 ; WX 776 ; N Alpha ; G 779 +U 914 ; WX 845 ; N Beta ; G 780 +U 915 ; WX 710 ; N Gamma ; G 781 +U 916 ; WX 776 ; N uni0394 ; G 782 +U 917 ; WX 762 ; N Epsilon ; G 783 +U 918 ; WX 730 ; N Zeta ; G 784 +U 919 ; WX 945 ; N Eta ; G 785 +U 920 ; WX 871 ; N Theta ; G 786 +U 921 ; WX 468 ; N Iota ; G 787 +U 922 ; WX 869 ; N Kappa ; G 788 +U 923 ; WX 776 ; N Lambda ; G 789 +U 924 ; WX 1107 ; N Mu ; G 790 +U 925 ; WX 914 ; N Nu ; G 791 +U 926 ; WX 704 ; N Xi ; G 792 +U 927 ; WX 871 ; N Omicron ; G 793 +U 928 ; WX 945 ; N Pi ; G 794 +U 929 ; WX 752 ; N Rho ; G 795 +U 931 ; WX 707 ; N Sigma ; G 796 +U 932 ; WX 744 ; N Tau ; G 797 +U 933 ; WX 714 ; N Upsilon ; G 798 +U 934 ; WX 871 ; N Phi ; G 799 +U 935 ; WX 776 ; N Chi ; G 800 +U 936 ; WX 913 ; N Psi ; G 801 +U 937 ; WX 890 ; N Omega ; G 802 +U 938 ; WX 468 ; N Iotadieresis ; G 803 +U 939 ; WX 714 ; N Upsilondieresis ; G 804 +U 940 ; WX 770 ; N alphatonos ; G 805 +U 941 ; WX 608 ; N epsilontonos ; G 806 +U 942 ; WX 727 ; N etatonos ; G 807 +U 943 ; WX 484 ; N iotatonos ; G 808 +U 944 ; WX 694 ; N upsilondieresistonos ; G 809 +U 945 ; WX 770 ; N alpha ; G 810 +U 946 ; WX 664 ; N beta ; G 811 +U 947 ; WX 660 ; N gamma ; G 812 +U 948 ; WX 667 ; N delta ; G 813 +U 949 ; WX 608 ; N epsilon ; G 814 +U 950 ; WX 592 ; N zeta ; G 815 +U 951 ; WX 727 ; N eta ; G 816 +U 952 ; WX 667 ; N theta ; G 817 +U 953 ; WX 484 ; N iota ; G 818 +U 954 ; WX 750 ; N kappa ; G 819 +U 955 ; WX 701 ; N lambda ; G 820 +U 956 ; WX 732 ; N uni03BC ; G 821 +U 957 ; WX 694 ; N nu ; G 822 +U 958 ; WX 592 ; N xi ; G 823 +U 959 ; WX 667 ; N omicron ; G 824 +U 960 ; WX 732 ; N pi ; G 825 +U 961 ; WX 665 ; N rho ; G 826 +U 962 ; WX 609 ; N sigma1 ; G 827 +U 963 ; WX 737 ; N sigma ; G 828 +U 964 ; WX 673 ; N tau ; G 829 +U 965 ; WX 694 ; N upsilon ; G 830 +U 966 ; WX 905 ; N phi ; G 831 +U 967 ; WX 658 ; N chi ; G 832 +U 968 ; WX 941 ; N psi ; G 833 +U 969 ; WX 952 ; N omega ; G 834 +U 970 ; WX 484 ; N iotadieresis ; G 835 +U 971 ; WX 694 ; N upsilondieresis ; G 836 +U 972 ; WX 667 ; N omicrontonos ; G 837 +U 973 ; WX 694 ; N upsilontonos ; G 838 +U 974 ; WX 952 ; N omegatonos ; G 839 +U 975 ; WX 869 ; N uni03CF ; G 840 +U 976 ; WX 667 ; N uni03D0 ; G 841 +U 977 ; WX 849 ; N theta1 ; G 842 +U 978 ; WX 764 ; N Upsilon1 ; G 843 +U 979 ; WX 969 ; N uni03D3 ; G 844 +U 980 ; WX 764 ; N uni03D4 ; G 845 +U 981 ; WX 941 ; N phi1 ; G 846 +U 982 ; WX 952 ; N omega1 ; G 847 +U 983 ; WX 655 ; N uni03D7 ; G 848 +U 984 ; WX 871 ; N uni03D8 ; G 849 +U 985 ; WX 667 ; N uni03D9 ; G 850 +U 986 ; WX 796 ; N uni03DA ; G 851 +U 987 ; WX 609 ; N uni03DB ; G 852 +U 988 ; WX 710 ; N uni03DC ; G 853 +U 989 ; WX 527 ; N uni03DD ; G 854 +U 990 ; WX 590 ; N uni03DE ; G 855 +U 991 ; WX 660 ; N uni03DF ; G 856 +U 992 ; WX 796 ; N uni03E0 ; G 857 +U 993 ; WX 667 ; N uni03E1 ; G 858 +U 1008 ; WX 655 ; N uni03F0 ; G 859 +U 1009 ; WX 665 ; N uni03F1 ; G 860 +U 1010 ; WX 609 ; N uni03F2 ; G 861 +U 1011 ; WX 362 ; N uni03F3 ; G 862 +U 1012 ; WX 871 ; N uni03F4 ; G 863 +U 1013 ; WX 609 ; N uni03F5 ; G 864 +U 1014 ; WX 609 ; N uni03F6 ; G 865 +U 1015 ; WX 757 ; N uni03F7 ; G 866 +U 1016 ; WX 699 ; N uni03F8 ; G 867 +U 1017 ; WX 796 ; N uni03F9 ; G 868 +U 1018 ; WX 1107 ; N uni03FA ; G 869 +U 1019 ; WX 860 ; N uni03FB ; G 870 +U 1020 ; WX 692 ; N uni03FC ; G 871 +U 1021 ; WX 796 ; N uni03FD ; G 872 +U 1022 ; WX 796 ; N uni03FE ; G 873 +U 1023 ; WX 796 ; N uni03FF ; G 874 +U 1024 ; WX 762 ; N uni0400 ; G 875 +U 1025 ; WX 762 ; N uni0401 ; G 876 +U 1026 ; WX 901 ; N uni0402 ; G 877 +U 1027 ; WX 690 ; N uni0403 ; G 878 +U 1028 ; WX 795 ; N uni0404 ; G 879 +U 1029 ; WX 722 ; N uni0405 ; G 880 +U 1030 ; WX 468 ; N uni0406 ; G 881 +U 1031 ; WX 468 ; N uni0407 ; G 882 +U 1032 ; WX 473 ; N uni0408 ; G 883 +U 1033 ; WX 1202 ; N uni0409 ; G 884 +U 1034 ; WX 1262 ; N uni040A ; G 885 +U 1035 ; WX 963 ; N uni040B ; G 886 +U 1036 ; WX 910 ; N uni040C ; G 887 +U 1037 ; WX 945 ; N uni040D ; G 888 +U 1038 ; WX 812 ; N uni040E ; G 889 +U 1039 ; WX 945 ; N uni040F ; G 890 +U 1040 ; WX 814 ; N uni0410 ; G 891 +U 1041 ; WX 854 ; N uni0411 ; G 892 +U 1042 ; WX 845 ; N uni0412 ; G 893 +U 1043 ; WX 690 ; N uni0413 ; G 894 +U 1044 ; WX 889 ; N uni0414 ; G 895 +U 1045 ; WX 762 ; N uni0415 ; G 896 +U 1046 ; WX 1312 ; N uni0416 ; G 897 +U 1047 ; WX 721 ; N uni0417 ; G 898 +U 1048 ; WX 945 ; N uni0418 ; G 899 +U 1049 ; WX 945 ; N uni0419 ; G 900 +U 1050 ; WX 910 ; N uni041A ; G 901 +U 1051 ; WX 884 ; N uni041B ; G 902 +U 1052 ; WX 1107 ; N uni041C ; G 903 +U 1053 ; WX 945 ; N uni041D ; G 904 +U 1054 ; WX 871 ; N uni041E ; G 905 +U 1055 ; WX 945 ; N uni041F ; G 906 +U 1056 ; WX 752 ; N uni0420 ; G 907 +U 1057 ; WX 796 ; N uni0421 ; G 908 +U 1058 ; WX 744 ; N uni0422 ; G 909 +U 1059 ; WX 812 ; N uni0423 ; G 910 +U 1060 ; WX 949 ; N uni0424 ; G 911 +U 1061 ; WX 776 ; N uni0425 ; G 912 +U 1062 ; WX 966 ; N uni0426 ; G 913 +U 1063 ; WX 913 ; N uni0427 ; G 914 +U 1064 ; WX 1268 ; N uni0428 ; G 915 +U 1065 ; WX 1293 ; N uni0429 ; G 916 +U 1066 ; WX 957 ; N uni042A ; G 917 +U 1067 ; WX 1202 ; N uni042B ; G 918 +U 1068 ; WX 825 ; N uni042C ; G 919 +U 1069 ; WX 795 ; N uni042D ; G 920 +U 1070 ; WX 1287 ; N uni042E ; G 921 +U 1071 ; WX 882 ; N uni042F ; G 922 +U 1072 ; WX 648 ; N uni0430 ; G 923 +U 1073 ; WX 722 ; N uni0431 ; G 924 +U 1074 ; WX 657 ; N uni0432 ; G 925 +U 1075 ; WX 563 ; N uni0433 ; G 926 +U 1076 ; WX 695 ; N uni0434 ; G 927 +U 1077 ; WX 636 ; N uni0435 ; G 928 +U 1078 ; WX 1306 ; N uni0436 ; G 929 +U 1079 ; WX 638 ; N uni0437 ; G 930 +U 1080 ; WX 727 ; N uni0438 ; G 931 +U 1081 ; WX 727 ; N uni0439 ; G 932 +U 1082 ; WX 677 ; N uni043A ; G 933 +U 1083 ; WX 732 ; N uni043B ; G 934 +U 1084 ; WX 951 ; N uni043C ; G 935 +U 1085 ; WX 729 ; N uni043D ; G 936 +U 1086 ; WX 667 ; N uni043E ; G 937 +U 1087 ; WX 727 ; N uni043F ; G 938 +U 1088 ; WX 699 ; N uni0440 ; G 939 +U 1089 ; WX 609 ; N uni0441 ; G 940 +U 1090 ; WX 1058 ; N uni0442 ; G 941 +U 1091 ; WX 598 ; N uni0443 ; G 942 +U 1092 ; WX 902 ; N uni0444 ; G 943 +U 1093 ; WX 596 ; N uni0445 ; G 944 +U 1094 ; WX 803 ; N uni0446 ; G 945 +U 1095 ; WX 715 ; N uni0447 ; G 946 +U 1096 ; WX 1058 ; N uni0448 ; G 947 +U 1097 ; WX 1134 ; N uni0449 ; G 948 +U 1098 ; WX 727 ; N uni044A ; G 949 +U 1099 ; WX 1018 ; N uni044B ; G 950 +U 1100 ; WX 660 ; N uni044C ; G 951 +U 1101 ; WX 645 ; N uni044D ; G 952 +U 1102 ; WX 1001 ; N uni044E ; G 953 +U 1103 ; WX 796 ; N uni044F ; G 954 +U 1104 ; WX 636 ; N uni0450 ; G 955 +U 1105 ; WX 636 ; N uni0451 ; G 956 +U 1106 ; WX 719 ; N uni0452 ; G 957 +U 1107 ; WX 563 ; N uni0453 ; G 958 +U 1108 ; WX 609 ; N uni0454 ; G 959 +U 1109 ; WX 563 ; N uni0455 ; G 960 +U 1110 ; WX 380 ; N uni0456 ; G 961 +U 1111 ; WX 380 ; N uni0457 ; G 962 +U 1112 ; WX 362 ; N uni0458 ; G 963 +U 1113 ; WX 1014 ; N uni0459 ; G 964 +U 1114 ; WX 1011 ; N uni045A ; G 965 +U 1115 ; WX 727 ; N uni045B ; G 966 +U 1116 ; WX 677 ; N uni045C ; G 967 +U 1117 ; WX 727 ; N uni045D ; G 968 +U 1118 ; WX 598 ; N uni045E ; G 969 +U 1119 ; WX 727 ; N uni045F ; G 970 +U 1122 ; WX 880 ; N uni0462 ; G 971 +U 1123 ; WX 1050 ; N uni0463 ; G 972 +U 1124 ; WX 1195 ; N uni0464 ; G 973 +U 1125 ; WX 963 ; N uni0465 ; G 974 +U 1130 ; WX 1312 ; N uni046A ; G 975 +U 1131 ; WX 1010 ; N uni046B ; G 976 +U 1132 ; WX 1630 ; N uni046C ; G 977 +U 1133 ; WX 1247 ; N uni046D ; G 978 +U 1136 ; WX 1096 ; N uni0470 ; G 979 +U 1137 ; WX 1105 ; N uni0471 ; G 980 +U 1138 ; WX 871 ; N uni0472 ; G 981 +U 1139 ; WX 652 ; N uni0473 ; G 982 +U 1140 ; WX 916 ; N uni0474 ; G 983 +U 1141 ; WX 749 ; N uni0475 ; G 984 +U 1142 ; WX 916 ; N uni0476 ; G 985 +U 1143 ; WX 749 ; N uni0477 ; G 986 +U 1164 ; WX 846 ; N uni048C ; G 987 +U 1165 ; WX 673 ; N uni048D ; G 988 +U 1168 ; WX 700 ; N uni0490 ; G 989 +U 1169 ; WX 618 ; N uni0491 ; G 990 +U 1170 ; WX 690 ; N uni0492 ; G 991 +U 1171 ; WX 563 ; N uni0493 ; G 992 +U 1172 ; WX 854 ; N uni0494 ; G 993 +U 1173 ; WX 705 ; N uni0495 ; G 994 +U 1174 ; WX 1312 ; N uni0496 ; G 995 +U 1175 ; WX 1306 ; N uni0497 ; G 996 +U 1176 ; WX 721 ; N uni0498 ; G 997 +U 1177 ; WX 638 ; N uni0499 ; G 998 +U 1178 ; WX 902 ; N uni049A ; G 999 +U 1179 ; WX 703 ; N uni049B ; G 1000 +U 1182 ; WX 910 ; N uni049E ; G 1001 +U 1183 ; WX 677 ; N uni049F ; G 1002 +U 1184 ; WX 1041 ; N uni04A0 ; G 1003 +U 1185 ; WX 760 ; N uni04A1 ; G 1004 +U 1186 ; WX 952 ; N uni04A2 ; G 1005 +U 1187 ; WX 805 ; N uni04A3 ; G 1006 +U 1188 ; WX 1167 ; N uni04A4 ; G 1007 +U 1189 ; WX 955 ; N uni04A5 ; G 1008 +U 1190 ; WX 1324 ; N uni04A6 ; G 1009 +U 1191 ; WX 1013 ; N uni04A7 ; G 1010 +U 1194 ; WX 796 ; N uni04AA ; G 1011 +U 1195 ; WX 609 ; N uni04AB ; G 1012 +U 1196 ; WX 744 ; N uni04AC ; G 1013 +U 1197 ; WX 1142 ; N uni04AD ; G 1014 +U 1198 ; WX 714 ; N uni04AE ; G 1015 +U 1199 ; WX 572 ; N uni04AF ; G 1016 +U 1200 ; WX 713 ; N uni04B0 ; G 1017 +U 1201 ; WX 572 ; N uni04B1 ; G 1018 +U 1202 ; WX 789 ; N uni04B2 ; G 1019 +U 1203 ; WX 596 ; N uni04B3 ; G 1020 +U 1204 ; WX 1010 ; N uni04B4 ; G 1021 +U 1205 ; WX 833 ; N uni04B5 ; G 1022 +U 1206 ; WX 913 ; N uni04B6 ; G 1023 +U 1207 ; WX 792 ; N uni04B7 ; G 1024 +U 1210 ; WX 910 ; N uni04BA ; G 1025 +U 1211 ; WX 727 ; N uni04BB ; G 1026 +U 1216 ; WX 468 ; N uni04C0 ; G 1027 +U 1217 ; WX 1312 ; N uni04C1 ; G 1028 +U 1218 ; WX 1306 ; N uni04C2 ; G 1029 +U 1219 ; WX 869 ; N uni04C3 ; G 1030 +U 1220 ; WX 693 ; N uni04C4 ; G 1031 +U 1223 ; WX 945 ; N uni04C7 ; G 1032 +U 1224 ; WX 732 ; N uni04C8 ; G 1033 +U 1227 ; WX 984 ; N uni04CB ; G 1034 +U 1228 ; WX 732 ; N uni04CC ; G 1035 +U 1231 ; WX 380 ; N uni04CF ; G 1036 +U 1232 ; WX 814 ; N uni04D0 ; G 1037 +U 1233 ; WX 648 ; N uni04D1 ; G 1038 +U 1234 ; WX 814 ; N uni04D2 ; G 1039 +U 1235 ; WX 648 ; N uni04D3 ; G 1040 +U 1236 ; WX 1034 ; N uni04D4 ; G 1041 +U 1237 ; WX 975 ; N uni04D5 ; G 1042 +U 1238 ; WX 762 ; N uni04D6 ; G 1043 +U 1239 ; WX 636 ; N uni04D7 ; G 1044 +U 1240 ; WX 871 ; N uni04D8 ; G 1045 +U 1241 ; WX 636 ; N uni04D9 ; G 1046 +U 1242 ; WX 871 ; N uni04DA ; G 1047 +U 1243 ; WX 636 ; N uni04DB ; G 1048 +U 1244 ; WX 1312 ; N uni04DC ; G 1049 +U 1245 ; WX 1306 ; N uni04DD ; G 1050 +U 1246 ; WX 721 ; N uni04DE ; G 1051 +U 1247 ; WX 638 ; N uni04DF ; G 1052 +U 1248 ; WX 657 ; N uni04E0 ; G 1053 +U 1249 ; WX 568 ; N uni04E1 ; G 1054 +U 1250 ; WX 945 ; N uni04E2 ; G 1055 +U 1251 ; WX 727 ; N uni04E3 ; G 1056 +U 1252 ; WX 945 ; N uni04E4 ; G 1057 +U 1253 ; WX 727 ; N uni04E5 ; G 1058 +U 1254 ; WX 871 ; N uni04E6 ; G 1059 +U 1255 ; WX 667 ; N uni04E7 ; G 1060 +U 1256 ; WX 871 ; N uni04E8 ; G 1061 +U 1257 ; WX 667 ; N uni04E9 ; G 1062 +U 1258 ; WX 871 ; N uni04EA ; G 1063 +U 1259 ; WX 667 ; N uni04EB ; G 1064 +U 1260 ; WX 795 ; N uni04EC ; G 1065 +U 1261 ; WX 645 ; N uni04ED ; G 1066 +U 1262 ; WX 812 ; N uni04EE ; G 1067 +U 1263 ; WX 598 ; N uni04EF ; G 1068 +U 1264 ; WX 812 ; N uni04F0 ; G 1069 +U 1265 ; WX 598 ; N uni04F1 ; G 1070 +U 1266 ; WX 812 ; N uni04F2 ; G 1071 +U 1267 ; WX 598 ; N uni04F3 ; G 1072 +U 1268 ; WX 913 ; N uni04F4 ; G 1073 +U 1269 ; WX 715 ; N uni04F5 ; G 1074 +U 1270 ; WX 690 ; N uni04F6 ; G 1075 +U 1271 ; WX 563 ; N uni04F7 ; G 1076 +U 1272 ; WX 1202 ; N uni04F8 ; G 1077 +U 1273 ; WX 1018 ; N uni04F9 ; G 1078 +U 1296 ; WX 721 ; N uni0510 ; G 1079 +U 1297 ; WX 638 ; N uni0511 ; G 1080 +U 1298 ; WX 884 ; N uni0512 ; G 1081 +U 1299 ; WX 732 ; N uni0513 ; G 1082 +U 1300 ; WX 1248 ; N uni0514 ; G 1083 +U 1301 ; WX 1005 ; N uni0515 ; G 1084 +U 1306 ; WX 820 ; N uni051A ; G 1085 +U 1307 ; WX 640 ; N uni051B ; G 1086 +U 1308 ; WX 1028 ; N uni051C ; G 1087 +U 1309 ; WX 856 ; N uni051D ; G 1088 +U 1329 ; WX 942 ; N uni0531 ; G 1089 +U 1330 ; WX 832 ; N uni0532 ; G 1090 +U 1331 ; WX 894 ; N uni0533 ; G 1091 +U 1332 ; WX 909 ; N uni0534 ; G 1092 +U 1333 ; WX 822 ; N uni0535 ; G 1093 +U 1334 ; WX 821 ; N uni0536 ; G 1094 +U 1335 ; WX 747 ; N uni0537 ; G 1095 +U 1336 ; WX 832 ; N uni0538 ; G 1096 +U 1337 ; WX 1125 ; N uni0539 ; G 1097 +U 1338 ; WX 894 ; N uni053A ; G 1098 +U 1339 ; WX 803 ; N uni053B ; G 1099 +U 1340 ; WX 722 ; N uni053C ; G 1100 +U 1341 ; WX 1188 ; N uni053D ; G 1101 +U 1342 ; WX 887 ; N uni053E ; G 1102 +U 1343 ; WX 842 ; N uni053F ; G 1103 +U 1344 ; WX 737 ; N uni0540 ; G 1104 +U 1345 ; WX 863 ; N uni0541 ; G 1105 +U 1346 ; WX 918 ; N uni0542 ; G 1106 +U 1347 ; WX 851 ; N uni0543 ; G 1107 +U 1348 ; WX 977 ; N uni0544 ; G 1108 +U 1349 ; WX 833 ; N uni0545 ; G 1109 +U 1350 ; WX 914 ; N uni0546 ; G 1110 +U 1351 ; WX 843 ; N uni0547 ; G 1111 +U 1352 ; WX 871 ; N uni0548 ; G 1112 +U 1353 ; WX 818 ; N uni0549 ; G 1113 +U 1354 ; WX 1034 ; N uni054A ; G 1114 +U 1355 ; WX 846 ; N uni054B ; G 1115 +U 1356 ; WX 964 ; N uni054C ; G 1116 +U 1357 ; WX 871 ; N uni054D ; G 1117 +U 1358 ; WX 914 ; N uni054E ; G 1118 +U 1359 ; WX 808 ; N uni054F ; G 1119 +U 1360 ; WX 808 ; N uni0550 ; G 1120 +U 1361 ; WX 836 ; N uni0551 ; G 1121 +U 1362 ; WX 710 ; N uni0552 ; G 1122 +U 1363 ; WX 955 ; N uni0553 ; G 1123 +U 1364 ; WX 891 ; N uni0554 ; G 1124 +U 1365 ; WX 871 ; N uni0555 ; G 1125 +U 1366 ; WX 963 ; N uni0556 ; G 1126 +U 1369 ; WX 307 ; N uni0559 ; G 1127 +U 1370 ; WX 264 ; N uni055A ; G 1128 +U 1371 ; WX 293 ; N uni055B ; G 1129 +U 1372 ; WX 391 ; N uni055C ; G 1130 +U 1373 ; WX 323 ; N uni055D ; G 1131 +U 1374 ; WX 439 ; N uni055E ; G 1132 +U 1375 ; WX 500 ; N uni055F ; G 1133 +U 1377 ; WX 1055 ; N uni0561 ; G 1134 +U 1378 ; WX 695 ; N uni0562 ; G 1135 +U 1379 ; WX 776 ; N uni0563 ; G 1136 +U 1380 ; WX 801 ; N uni0564 ; G 1137 +U 1381 ; WX 729 ; N uni0565 ; G 1138 +U 1382 ; WX 742 ; N uni0566 ; G 1139 +U 1383 ; WX 599 ; N uni0567 ; G 1140 +U 1384 ; WX 733 ; N uni0568 ; G 1141 +U 1385 ; WX 909 ; N uni0569 ; G 1142 +U 1386 ; WX 768 ; N uni056A ; G 1143 +U 1387 ; WX 724 ; N uni056B ; G 1144 +U 1388 ; WX 398 ; N uni056C ; G 1145 +U 1389 ; WX 1087 ; N uni056D ; G 1146 +U 1390 ; WX 695 ; N uni056E ; G 1147 +U 1391 ; WX 719 ; N uni056F ; G 1148 +U 1392 ; WX 737 ; N uni0570 ; G 1149 +U 1393 ; WX 684 ; N uni0571 ; G 1150 +U 1394 ; WX 738 ; N uni0572 ; G 1151 +U 1395 ; WX 703 ; N uni0573 ; G 1152 +U 1396 ; WX 724 ; N uni0574 ; G 1153 +U 1397 ; WX 359 ; N uni0575 ; G 1154 +U 1398 ; WX 719 ; N uni0576 ; G 1155 +U 1399 ; WX 496 ; N uni0577 ; G 1156 +U 1400 ; WX 738 ; N uni0578 ; G 1157 +U 1401 ; WX 428 ; N uni0579 ; G 1158 +U 1402 ; WX 1059 ; N uni057A ; G 1159 +U 1403 ; WX 668 ; N uni057B ; G 1160 +U 1404 ; WX 744 ; N uni057C ; G 1161 +U 1405 ; WX 724 ; N uni057D ; G 1162 +U 1406 ; WX 724 ; N uni057E ; G 1163 +U 1407 ; WX 1040 ; N uni057F ; G 1164 +U 1408 ; WX 724 ; N uni0580 ; G 1165 +U 1409 ; WX 713 ; N uni0581 ; G 1166 +U 1410 ; WX 493 ; N uni0582 ; G 1167 +U 1411 ; WX 1040 ; N uni0583 ; G 1168 +U 1412 ; WX 734 ; N uni0584 ; G 1169 +U 1413 ; WX 693 ; N uni0585 ; G 1170 +U 1414 ; WX 956 ; N uni0586 ; G 1171 +U 1415 ; WX 833 ; N uni0587 ; G 1172 +U 1417 ; WX 340 ; N uni0589 ; G 1173 +U 1418 ; WX 388 ; N uni058A ; G 1174 +U 3647 ; WX 696 ; N uni0E3F ; G 1175 +U 4256 ; WX 765 ; N uni10A0 ; G 1176 +U 4257 ; WX 945 ; N uni10A1 ; G 1177 +U 4258 ; WX 876 ; N uni10A2 ; G 1178 +U 4259 ; WX 884 ; N uni10A3 ; G 1179 +U 4260 ; WX 791 ; N uni10A4 ; G 1180 +U 4261 ; WX 1087 ; N uni10A5 ; G 1181 +U 4262 ; WX 1024 ; N uni10A6 ; G 1182 +U 4263 ; WX 1223 ; N uni10A7 ; G 1183 +U 4264 ; WX 653 ; N uni10A8 ; G 1184 +U 4265 ; WX 828 ; N uni10A9 ; G 1185 +U 4266 ; WX 1061 ; N uni10AA ; G 1186 +U 4267 ; WX 1061 ; N uni10AB ; G 1187 +U 4268 ; WX 806 ; N uni10AC ; G 1188 +U 4269 ; WX 1145 ; N uni10AD ; G 1189 +U 4270 ; WX 979 ; N uni10AE ; G 1190 +U 4271 ; WX 912 ; N uni10AF ; G 1191 +U 4272 ; WX 1119 ; N uni10B0 ; G 1192 +U 4273 ; WX 802 ; N uni10B1 ; G 1193 +U 4274 ; WX 766 ; N uni10B2 ; G 1194 +U 4275 ; WX 1085 ; N uni10B3 ; G 1195 +U 4276 ; WX 986 ; N uni10B4 ; G 1196 +U 4277 ; WX 1076 ; N uni10B5 ; G 1197 +U 4278 ; WX 820 ; N uni10B6 ; G 1198 +U 4279 ; WX 843 ; N uni10B7 ; G 1199 +U 4280 ; WX 831 ; N uni10B8 ; G 1200 +U 4281 ; WX 843 ; N uni10B9 ; G 1201 +U 4282 ; WX 918 ; N uni10BA ; G 1202 +U 4283 ; WX 1086 ; N uni10BB ; G 1203 +U 4284 ; WX 779 ; N uni10BC ; G 1204 +U 4285 ; WX 832 ; N uni10BD ; G 1205 +U 4286 ; WX 822 ; N uni10BE ; G 1206 +U 4287 ; WX 1121 ; N uni10BF ; G 1207 +U 4288 ; WX 1132 ; N uni10C0 ; G 1208 +U 4289 ; WX 812 ; N uni10C1 ; G 1209 +U 4290 ; WX 902 ; N uni10C2 ; G 1210 +U 4291 ; WX 812 ; N uni10C3 ; G 1211 +U 4292 ; WX 890 ; N uni10C4 ; G 1212 +U 4293 ; WX 1073 ; N uni10C5 ; G 1213 +U 4304 ; WX 594 ; N uni10D0 ; G 1214 +U 4305 ; WX 625 ; N uni10D1 ; G 1215 +U 4306 ; WX 643 ; N uni10D2 ; G 1216 +U 4307 ; WX 887 ; N uni10D3 ; G 1217 +U 4308 ; WX 615 ; N uni10D4 ; G 1218 +U 4309 ; WX 611 ; N uni10D5 ; G 1219 +U 4310 ; WX 666 ; N uni10D6 ; G 1220 +U 4311 ; WX 915 ; N uni10D7 ; G 1221 +U 4312 ; WX 613 ; N uni10D8 ; G 1222 +U 4313 ; WX 600 ; N uni10D9 ; G 1223 +U 4314 ; WX 1120 ; N uni10DA ; G 1224 +U 4315 ; WX 654 ; N uni10DB ; G 1225 +U 4316 ; WX 640 ; N uni10DC ; G 1226 +U 4317 ; WX 879 ; N uni10DD ; G 1227 +U 4318 ; WX 624 ; N uni10DE ; G 1228 +U 4319 ; WX 634 ; N uni10DF ; G 1229 +U 4320 ; WX 877 ; N uni10E0 ; G 1230 +U 4321 ; WX 657 ; N uni10E1 ; G 1231 +U 4322 ; WX 802 ; N uni10E2 ; G 1232 +U 4323 ; WX 751 ; N uni10E3 ; G 1233 +U 4324 ; WX 869 ; N uni10E4 ; G 1234 +U 4325 ; WX 639 ; N uni10E5 ; G 1235 +U 4326 ; WX 912 ; N uni10E6 ; G 1236 +U 4327 ; WX 622 ; N uni10E7 ; G 1237 +U 4328 ; WX 647 ; N uni10E8 ; G 1238 +U 4329 ; WX 640 ; N uni10E9 ; G 1239 +U 4330 ; WX 729 ; N uni10EA ; G 1240 +U 4331 ; WX 641 ; N uni10EB ; G 1241 +U 4332 ; WX 639 ; N uni10EC ; G 1242 +U 4333 ; WX 629 ; N uni10ED ; G 1243 +U 4334 ; WX 674 ; N uni10EE ; G 1244 +U 4335 ; WX 737 ; N uni10EF ; G 1245 +U 4336 ; WX 625 ; N uni10F0 ; G 1246 +U 4337 ; WX 657 ; N uni10F1 ; G 1247 +U 4338 ; WX 625 ; N uni10F2 ; G 1248 +U 4339 ; WX 625 ; N uni10F3 ; G 1249 +U 4340 ; WX 624 ; N uni10F4 ; G 1250 +U 4341 ; WX 670 ; N uni10F5 ; G 1251 +U 4342 ; WX 940 ; N uni10F6 ; G 1252 +U 4343 ; WX 680 ; N uni10F7 ; G 1253 +U 4344 ; WX 636 ; N uni10F8 ; G 1254 +U 4345 ; WX 672 ; N uni10F9 ; G 1255 +U 4346 ; WX 625 ; N uni10FA ; G 1256 +U 4347 ; WX 446 ; N uni10FB ; G 1257 +U 4348 ; WX 363 ; N uni10FC ; G 1258 +U 7424 ; WX 641 ; N uni1D00 ; G 1259 +U 7425 ; WX 892 ; N uni1D01 ; G 1260 +U 7426 ; WX 932 ; N uni1D02 ; G 1261 +U 7427 ; WX 695 ; N uni1D03 ; G 1262 +U 7428 ; WX 609 ; N uni1D04 ; G 1263 +U 7429 ; WX 675 ; N uni1D05 ; G 1264 +U 7430 ; WX 675 ; N uni1D06 ; G 1265 +U 7431 ; WX 617 ; N uni1D07 ; G 1266 +U 7432 ; WX 509 ; N uni1D08 ; G 1267 +U 7433 ; WX 320 ; N uni1D09 ; G 1268 +U 7434 ; WX 561 ; N uni1D0A ; G 1269 +U 7435 ; WX 722 ; N uni1D0B ; G 1270 +U 7436 ; WX 617 ; N uni1D0C ; G 1271 +U 7437 ; WX 869 ; N uni1D0D ; G 1272 +U 7438 ; WX 737 ; N uni1D0E ; G 1273 +U 7439 ; WX 667 ; N uni1D0F ; G 1274 +U 7440 ; WX 609 ; N uni1D10 ; G 1275 +U 7441 ; WX 628 ; N uni1D11 ; G 1276 +U 7442 ; WX 628 ; N uni1D12 ; G 1277 +U 7443 ; WX 667 ; N uni1D13 ; G 1278 +U 7444 ; WX 1028 ; N uni1D14 ; G 1279 +U 7445 ; WX 598 ; N uni1D15 ; G 1280 +U 7446 ; WX 667 ; N uni1D16 ; G 1281 +U 7447 ; WX 667 ; N uni1D17 ; G 1282 +U 7448 ; WX 586 ; N uni1D18 ; G 1283 +U 7449 ; WX 801 ; N uni1D19 ; G 1284 +U 7450 ; WX 801 ; N uni1D1A ; G 1285 +U 7451 ; WX 620 ; N uni1D1B ; G 1286 +U 7452 ; WX 647 ; N uni1D1C ; G 1287 +U 7453 ; WX 664 ; N uni1D1D ; G 1288 +U 7454 ; WX 923 ; N uni1D1E ; G 1289 +U 7455 ; WX 655 ; N uni1D1F ; G 1290 +U 7456 ; WX 581 ; N uni1D20 ; G 1291 +U 7457 ; WX 861 ; N uni1D21 ; G 1292 +U 7458 ; WX 568 ; N uni1D22 ; G 1293 +U 7459 ; WX 568 ; N uni1D23 ; G 1294 +U 7460 ; WX 588 ; N uni1D24 ; G 1295 +U 7461 ; WX 802 ; N uni1D25 ; G 1296 +U 7462 ; WX 586 ; N uni1D26 ; G 1297 +U 7463 ; WX 641 ; N uni1D27 ; G 1298 +U 7464 ; WX 732 ; N uni1D28 ; G 1299 +U 7465 ; WX 586 ; N uni1D29 ; G 1300 +U 7466 ; WX 854 ; N uni1D2A ; G 1301 +U 7467 ; WX 705 ; N uni1D2B ; G 1302 +U 7468 ; WX 489 ; N uni1D2C ; G 1303 +U 7469 ; WX 651 ; N uni1D2D ; G 1304 +U 7470 ; WX 532 ; N uni1D2E ; G 1305 +U 7471 ; WX 532 ; N uni1D2F ; G 1306 +U 7472 ; WX 546 ; N uni1D30 ; G 1307 +U 7473 ; WX 480 ; N uni1D31 ; G 1308 +U 7474 ; WX 480 ; N uni1D32 ; G 1309 +U 7475 ; WX 538 ; N uni1D33 ; G 1310 +U 7476 ; WX 595 ; N uni1D34 ; G 1311 +U 7477 ; WX 294 ; N uni1D35 ; G 1312 +U 7478 ; WX 298 ; N uni1D36 ; G 1313 +U 7479 ; WX 547 ; N uni1D37 ; G 1314 +U 7480 ; WX 443 ; N uni1D38 ; G 1315 +U 7481 ; WX 697 ; N uni1D39 ; G 1316 +U 7482 ; WX 576 ; N uni1D3A ; G 1317 +U 7483 ; WX 606 ; N uni1D3B ; G 1318 +U 7484 ; WX 548 ; N uni1D3C ; G 1319 +U 7485 ; WX 442 ; N uni1D3D ; G 1320 +U 7486 ; WX 474 ; N uni1D3E ; G 1321 +U 7487 ; WX 523 ; N uni1D3F ; G 1322 +U 7488 ; WX 469 ; N uni1D40 ; G 1323 +U 7489 ; WX 549 ; N uni1D41 ; G 1324 +U 7490 ; WX 708 ; N uni1D42 ; G 1325 +U 7491 ; WX 408 ; N uni1D43 ; G 1326 +U 7492 ; WX 408 ; N uni1D44 ; G 1327 +U 7493 ; WX 484 ; N uni1D45 ; G 1328 +U 7494 ; WX 587 ; N uni1D46 ; G 1329 +U 7495 ; WX 499 ; N uni1D47 ; G 1330 +U 7496 ; WX 498 ; N uni1D48 ; G 1331 +U 7497 ; WX 444 ; N uni1D49 ; G 1332 +U 7498 ; WX 444 ; N uni1D4A ; G 1333 +U 7499 ; WX 412 ; N uni1D4B ; G 1334 +U 7500 ; WX 412 ; N uni1D4C ; G 1335 +U 7501 ; WX 498 ; N uni1D4D ; G 1336 +U 7502 ; WX 300 ; N uni1D4E ; G 1337 +U 7503 ; WX 523 ; N uni1D4F ; G 1338 +U 7504 ; WX 729 ; N uni1D50 ; G 1339 +U 7505 ; WX 473 ; N uni1D51 ; G 1340 +U 7506 ; WX 467 ; N uni1D52 ; G 1341 +U 7507 ; WX 427 ; N uni1D53 ; G 1342 +U 7508 ; WX 467 ; N uni1D54 ; G 1343 +U 7509 ; WX 467 ; N uni1D55 ; G 1344 +U 7510 ; WX 499 ; N uni1D56 ; G 1345 +U 7511 ; WX 371 ; N uni1D57 ; G 1346 +U 7512 ; WX 520 ; N uni1D58 ; G 1347 +U 7513 ; WX 418 ; N uni1D59 ; G 1348 +U 7514 ; WX 729 ; N uni1D5A ; G 1349 +U 7515 ; WX 491 ; N uni1D5B ; G 1350 +U 7516 ; WX 505 ; N uni1D5C ; G 1351 +U 7517 ; WX 418 ; N uni1D5D ; G 1352 +U 7518 ; WX 416 ; N uni1D5E ; G 1353 +U 7519 ; WX 420 ; N uni1D5F ; G 1354 +U 7520 ; WX 570 ; N uni1D60 ; G 1355 +U 7521 ; WX 414 ; N uni1D61 ; G 1356 +U 7522 ; WX 239 ; N uni1D62 ; G 1357 +U 7523 ; WX 414 ; N uni1D63 ; G 1358 +U 7524 ; WX 520 ; N uni1D64 ; G 1359 +U 7525 ; WX 491 ; N uni1D65 ; G 1360 +U 7526 ; WX 418 ; N uni1D66 ; G 1361 +U 7527 ; WX 416 ; N uni1D67 ; G 1362 +U 7528 ; WX 419 ; N uni1D68 ; G 1363 +U 7529 ; WX 570 ; N uni1D69 ; G 1364 +U 7530 ; WX 414 ; N uni1D6A ; G 1365 +U 7531 ; WX 1042 ; N uni1D6B ; G 1366 +U 7543 ; WX 640 ; N uni1D77 ; G 1367 +U 7544 ; WX 595 ; N uni1D78 ; G 1368 +U 7547 ; WX 380 ; N uni1D7B ; G 1369 +U 7548 ; WX 380 ; N uni1D7C ; G 1370 +U 7549 ; WX 699 ; N uni1D7D ; G 1371 +U 7550 ; WX 647 ; N uni1D7E ; G 1372 +U 7551 ; WX 679 ; N uni1D7F ; G 1373 +U 7557 ; WX 380 ; N uni1D85 ; G 1374 +U 7579 ; WX 484 ; N uni1D9B ; G 1375 +U 7580 ; WX 427 ; N uni1D9C ; G 1376 +U 7581 ; WX 427 ; N uni1D9D ; G 1377 +U 7582 ; WX 467 ; N uni1D9E ; G 1378 +U 7583 ; WX 412 ; N uni1D9F ; G 1379 +U 7584 ; WX 271 ; N uni1DA0 ; G 1380 +U 7585 ; WX 373 ; N uni1DA1 ; G 1381 +U 7586 ; WX 498 ; N uni1DA2 ; G 1382 +U 7587 ; WX 522 ; N uni1DA3 ; G 1383 +U 7588 ; WX 300 ; N uni1DA4 ; G 1384 +U 7589 ; WX 307 ; N uni1DA5 ; G 1385 +U 7590 ; WX 300 ; N uni1DA6 ; G 1386 +U 7591 ; WX 300 ; N uni1DA7 ; G 1387 +U 7592 ; WX 370 ; N uni1DA8 ; G 1388 +U 7593 ; WX 368 ; N uni1DA9 ; G 1389 +U 7594 ; WX 321 ; N uni1DAA ; G 1390 +U 7595 ; WX 430 ; N uni1DAB ; G 1391 +U 7596 ; WX 682 ; N uni1DAC ; G 1392 +U 7597 ; WX 729 ; N uni1DAD ; G 1393 +U 7598 ; WX 588 ; N uni1DAE ; G 1394 +U 7599 ; WX 587 ; N uni1DAF ; G 1395 +U 7600 ; WX 472 ; N uni1DB0 ; G 1396 +U 7601 ; WX 467 ; N uni1DB1 ; G 1397 +U 7602 ; WX 522 ; N uni1DB2 ; G 1398 +U 7603 ; WX 400 ; N uni1DB3 ; G 1399 +U 7604 ; WX 387 ; N uni1DB4 ; G 1400 +U 7605 ; WX 371 ; N uni1DB5 ; G 1401 +U 7606 ; WX 520 ; N uni1DB6 ; G 1402 +U 7607 ; WX 475 ; N uni1DB7 ; G 1403 +U 7608 ; WX 408 ; N uni1DB8 ; G 1404 +U 7609 ; WX 489 ; N uni1DB9 ; G 1405 +U 7610 ; WX 366 ; N uni1DBA ; G 1406 +U 7611 ; WX 357 ; N uni1DBB ; G 1407 +U 7612 ; WX 527 ; N uni1DBC ; G 1408 +U 7613 ; WX 412 ; N uni1DBD ; G 1409 +U 7614 ; WX 452 ; N uni1DBE ; G 1410 +U 7615 ; WX 467 ; N uni1DBF ; G 1411 +U 7620 ; WX 0 ; N uni1DC4 ; G 1412 +U 7621 ; WX 0 ; N uni1DC5 ; G 1413 +U 7622 ; WX 0 ; N uni1DC6 ; G 1414 +U 7623 ; WX 0 ; N uni1DC7 ; G 1415 +U 7624 ; WX 0 ; N uni1DC8 ; G 1416 +U 7625 ; WX 0 ; N uni1DC9 ; G 1417 +U 7680 ; WX 776 ; N uni1E00 ; G 1418 +U 7681 ; WX 648 ; N uni1E01 ; G 1419 +U 7682 ; WX 845 ; N uni1E02 ; G 1420 +U 7683 ; WX 699 ; N uni1E03 ; G 1421 +U 7684 ; WX 845 ; N uni1E04 ; G 1422 +U 7685 ; WX 699 ; N uni1E05 ; G 1423 +U 7686 ; WX 845 ; N uni1E06 ; G 1424 +U 7687 ; WX 699 ; N uni1E07 ; G 1425 +U 7688 ; WX 796 ; N uni1E08 ; G 1426 +U 7689 ; WX 609 ; N uni1E09 ; G 1427 +U 7690 ; WX 867 ; N uni1E0A ; G 1428 +U 7691 ; WX 699 ; N uni1E0B ; G 1429 +U 7692 ; WX 867 ; N uni1E0C ; G 1430 +U 7693 ; WX 699 ; N uni1E0D ; G 1431 +U 7694 ; WX 867 ; N uni1E0E ; G 1432 +U 7695 ; WX 699 ; N uni1E0F ; G 1433 +U 7696 ; WX 867 ; N uni1E10 ; G 1434 +U 7697 ; WX 699 ; N uni1E11 ; G 1435 +U 7698 ; WX 867 ; N uni1E12 ; G 1436 +U 7699 ; WX 699 ; N uni1E13 ; G 1437 +U 7700 ; WX 762 ; N uni1E14 ; G 1438 +U 7701 ; WX 636 ; N uni1E15 ; G 1439 +U 7702 ; WX 762 ; N uni1E16 ; G 1440 +U 7703 ; WX 636 ; N uni1E17 ; G 1441 +U 7704 ; WX 762 ; N uni1E18 ; G 1442 +U 7705 ; WX 636 ; N uni1E19 ; G 1443 +U 7706 ; WX 762 ; N uni1E1A ; G 1444 +U 7707 ; WX 636 ; N uni1E1B ; G 1445 +U 7708 ; WX 762 ; N uni1E1C ; G 1446 +U 7709 ; WX 636 ; N uni1E1D ; G 1447 +U 7710 ; WX 710 ; N uni1E1E ; G 1448 +U 7711 ; WX 430 ; N uni1E1F ; G 1449 +U 7712 ; WX 854 ; N uni1E20 ; G 1450 +U 7713 ; WX 699 ; N uni1E21 ; G 1451 +U 7714 ; WX 945 ; N uni1E22 ; G 1452 +U 7715 ; WX 727 ; N uni1E23 ; G 1453 +U 7716 ; WX 945 ; N uni1E24 ; G 1454 +U 7717 ; WX 727 ; N uni1E25 ; G 1455 +U 7718 ; WX 945 ; N uni1E26 ; G 1456 +U 7719 ; WX 727 ; N uni1E27 ; G 1457 +U 7720 ; WX 945 ; N uni1E28 ; G 1458 +U 7721 ; WX 727 ; N uni1E29 ; G 1459 +U 7722 ; WX 945 ; N uni1E2A ; G 1460 +U 7723 ; WX 727 ; N uni1E2B ; G 1461 +U 7724 ; WX 468 ; N uni1E2C ; G 1462 +U 7725 ; WX 380 ; N uni1E2D ; G 1463 +U 7726 ; WX 468 ; N uni1E2E ; G 1464 +U 7727 ; WX 380 ; N uni1E2F ; G 1465 +U 7728 ; WX 869 ; N uni1E30 ; G 1466 +U 7729 ; WX 693 ; N uni1E31 ; G 1467 +U 7730 ; WX 869 ; N uni1E32 ; G 1468 +U 7731 ; WX 693 ; N uni1E33 ; G 1469 +U 7732 ; WX 869 ; N uni1E34 ; G 1470 +U 7733 ; WX 693 ; N uni1E35 ; G 1471 +U 7734 ; WX 703 ; N uni1E36 ; G 1472 +U 7735 ; WX 380 ; N uni1E37 ; G 1473 +U 7736 ; WX 703 ; N uni1E38 ; G 1474 +U 7737 ; WX 380 ; N uni1E39 ; G 1475 +U 7738 ; WX 703 ; N uni1E3A ; G 1476 +U 7739 ; WX 380 ; N uni1E3B ; G 1477 +U 7740 ; WX 703 ; N uni1E3C ; G 1478 +U 7741 ; WX 380 ; N uni1E3D ; G 1479 +U 7742 ; WX 1107 ; N uni1E3E ; G 1480 +U 7743 ; WX 1058 ; N uni1E3F ; G 1481 +U 7744 ; WX 1107 ; N uni1E40 ; G 1482 +U 7745 ; WX 1058 ; N uni1E41 ; G 1483 +U 7746 ; WX 1107 ; N uni1E42 ; G 1484 +U 7747 ; WX 1058 ; N uni1E43 ; G 1485 +U 7748 ; WX 914 ; N uni1E44 ; G 1486 +U 7749 ; WX 727 ; N uni1E45 ; G 1487 +U 7750 ; WX 914 ; N uni1E46 ; G 1488 +U 7751 ; WX 727 ; N uni1E47 ; G 1489 +U 7752 ; WX 914 ; N uni1E48 ; G 1490 +U 7753 ; WX 727 ; N uni1E49 ; G 1491 +U 7754 ; WX 914 ; N uni1E4A ; G 1492 +U 7755 ; WX 727 ; N uni1E4B ; G 1493 +U 7756 ; WX 871 ; N uni1E4C ; G 1494 +U 7757 ; WX 667 ; N uni1E4D ; G 1495 +U 7758 ; WX 871 ; N uni1E4E ; G 1496 +U 7759 ; WX 667 ; N uni1E4F ; G 1497 +U 7760 ; WX 871 ; N uni1E50 ; G 1498 +U 7761 ; WX 667 ; N uni1E51 ; G 1499 +U 7762 ; WX 871 ; N uni1E52 ; G 1500 +U 7763 ; WX 667 ; N uni1E53 ; G 1501 +U 7764 ; WX 752 ; N uni1E54 ; G 1502 +U 7765 ; WX 699 ; N uni1E55 ; G 1503 +U 7766 ; WX 752 ; N uni1E56 ; G 1504 +U 7767 ; WX 699 ; N uni1E57 ; G 1505 +U 7768 ; WX 831 ; N uni1E58 ; G 1506 +U 7769 ; WX 527 ; N uni1E59 ; G 1507 +U 7770 ; WX 831 ; N uni1E5A ; G 1508 +U 7771 ; WX 527 ; N uni1E5B ; G 1509 +U 7772 ; WX 831 ; N uni1E5C ; G 1510 +U 7773 ; WX 527 ; N uni1E5D ; G 1511 +U 7774 ; WX 831 ; N uni1E5E ; G 1512 +U 7775 ; WX 527 ; N uni1E5F ; G 1513 +U 7776 ; WX 722 ; N uni1E60 ; G 1514 +U 7777 ; WX 563 ; N uni1E61 ; G 1515 +U 7778 ; WX 722 ; N uni1E62 ; G 1516 +U 7779 ; WX 563 ; N uni1E63 ; G 1517 +U 7780 ; WX 722 ; N uni1E64 ; G 1518 +U 7781 ; WX 563 ; N uni1E65 ; G 1519 +U 7782 ; WX 722 ; N uni1E66 ; G 1520 +U 7783 ; WX 563 ; N uni1E67 ; G 1521 +U 7784 ; WX 722 ; N uni1E68 ; G 1522 +U 7785 ; WX 563 ; N uni1E69 ; G 1523 +U 7786 ; WX 744 ; N uni1E6A ; G 1524 +U 7787 ; WX 462 ; N uni1E6B ; G 1525 +U 7788 ; WX 744 ; N uni1E6C ; G 1526 +U 7789 ; WX 462 ; N uni1E6D ; G 1527 +U 7790 ; WX 744 ; N uni1E6E ; G 1528 +U 7791 ; WX 462 ; N uni1E6F ; G 1529 +U 7792 ; WX 744 ; N uni1E70 ; G 1530 +U 7793 ; WX 462 ; N uni1E71 ; G 1531 +U 7794 ; WX 872 ; N uni1E72 ; G 1532 +U 7795 ; WX 727 ; N uni1E73 ; G 1533 +U 7796 ; WX 872 ; N uni1E74 ; G 1534 +U 7797 ; WX 727 ; N uni1E75 ; G 1535 +U 7798 ; WX 872 ; N uni1E76 ; G 1536 +U 7799 ; WX 727 ; N uni1E77 ; G 1537 +U 7800 ; WX 872 ; N uni1E78 ; G 1538 +U 7801 ; WX 727 ; N uni1E79 ; G 1539 +U 7802 ; WX 872 ; N uni1E7A ; G 1540 +U 7803 ; WX 727 ; N uni1E7B ; G 1541 +U 7804 ; WX 776 ; N uni1E7C ; G 1542 +U 7805 ; WX 581 ; N uni1E7D ; G 1543 +U 7806 ; WX 776 ; N uni1E7E ; G 1544 +U 7807 ; WX 581 ; N uni1E7F ; G 1545 +U 7808 ; WX 1123 ; N Wgrave ; G 1546 +U 7809 ; WX 861 ; N wgrave ; G 1547 +U 7810 ; WX 1123 ; N Wacute ; G 1548 +U 7811 ; WX 861 ; N wacute ; G 1549 +U 7812 ; WX 1123 ; N Wdieresis ; G 1550 +U 7813 ; WX 861 ; N wdieresis ; G 1551 +U 7814 ; WX 1123 ; N uni1E86 ; G 1552 +U 7815 ; WX 861 ; N uni1E87 ; G 1553 +U 7816 ; WX 1123 ; N uni1E88 ; G 1554 +U 7817 ; WX 861 ; N uni1E89 ; G 1555 +U 7818 ; WX 776 ; N uni1E8A ; G 1556 +U 7819 ; WX 596 ; N uni1E8B ; G 1557 +U 7820 ; WX 776 ; N uni1E8C ; G 1558 +U 7821 ; WX 596 ; N uni1E8D ; G 1559 +U 7822 ; WX 714 ; N uni1E8E ; G 1560 +U 7823 ; WX 581 ; N uni1E8F ; G 1561 +U 7824 ; WX 730 ; N uni1E90 ; G 1562 +U 7825 ; WX 568 ; N uni1E91 ; G 1563 +U 7826 ; WX 730 ; N uni1E92 ; G 1564 +U 7827 ; WX 568 ; N uni1E93 ; G 1565 +U 7828 ; WX 730 ; N uni1E94 ; G 1566 +U 7829 ; WX 568 ; N uni1E95 ; G 1567 +U 7830 ; WX 727 ; N uni1E96 ; G 1568 +U 7831 ; WX 462 ; N uni1E97 ; G 1569 +U 7832 ; WX 861 ; N uni1E98 ; G 1570 +U 7833 ; WX 581 ; N uni1E99 ; G 1571 +U 7834 ; WX 1014 ; N uni1E9A ; G 1572 +U 7835 ; WX 430 ; N uni1E9B ; G 1573 +U 7836 ; WX 430 ; N uni1E9C ; G 1574 +U 7837 ; WX 430 ; N uni1E9D ; G 1575 +U 7838 ; WX 947 ; N uni1E9E ; G 1576 +U 7839 ; WX 667 ; N uni1E9F ; G 1577 +U 7840 ; WX 776 ; N uni1EA0 ; G 1578 +U 7841 ; WX 648 ; N uni1EA1 ; G 1579 +U 7842 ; WX 776 ; N uni1EA2 ; G 1580 +U 7843 ; WX 648 ; N uni1EA3 ; G 1581 +U 7844 ; WX 776 ; N uni1EA4 ; G 1582 +U 7845 ; WX 648 ; N uni1EA5 ; G 1583 +U 7846 ; WX 776 ; N uni1EA6 ; G 1584 +U 7847 ; WX 648 ; N uni1EA7 ; G 1585 +U 7848 ; WX 776 ; N uni1EA8 ; G 1586 +U 7849 ; WX 648 ; N uni1EA9 ; G 1587 +U 7850 ; WX 776 ; N uni1EAA ; G 1588 +U 7851 ; WX 648 ; N uni1EAB ; G 1589 +U 7852 ; WX 776 ; N uni1EAC ; G 1590 +U 7853 ; WX 648 ; N uni1EAD ; G 1591 +U 7854 ; WX 776 ; N uni1EAE ; G 1592 +U 7855 ; WX 648 ; N uni1EAF ; G 1593 +U 7856 ; WX 776 ; N uni1EB0 ; G 1594 +U 7857 ; WX 648 ; N uni1EB1 ; G 1595 +U 7858 ; WX 776 ; N uni1EB2 ; G 1596 +U 7859 ; WX 648 ; N uni1EB3 ; G 1597 +U 7860 ; WX 776 ; N uni1EB4 ; G 1598 +U 7861 ; WX 648 ; N uni1EB5 ; G 1599 +U 7862 ; WX 776 ; N uni1EB6 ; G 1600 +U 7863 ; WX 648 ; N uni1EB7 ; G 1601 +U 7864 ; WX 762 ; N uni1EB8 ; G 1602 +U 7865 ; WX 636 ; N uni1EB9 ; G 1603 +U 7866 ; WX 762 ; N uni1EBA ; G 1604 +U 7867 ; WX 636 ; N uni1EBB ; G 1605 +U 7868 ; WX 762 ; N uni1EBC ; G 1606 +U 7869 ; WX 636 ; N uni1EBD ; G 1607 +U 7870 ; WX 762 ; N uni1EBE ; G 1608 +U 7871 ; WX 636 ; N uni1EBF ; G 1609 +U 7872 ; WX 762 ; N uni1EC0 ; G 1610 +U 7873 ; WX 636 ; N uni1EC1 ; G 1611 +U 7874 ; WX 762 ; N uni1EC2 ; G 1612 +U 7875 ; WX 636 ; N uni1EC3 ; G 1613 +U 7876 ; WX 762 ; N uni1EC4 ; G 1614 +U 7877 ; WX 636 ; N uni1EC5 ; G 1615 +U 7878 ; WX 762 ; N uni1EC6 ; G 1616 +U 7879 ; WX 636 ; N uni1EC7 ; G 1617 +U 7880 ; WX 468 ; N uni1EC8 ; G 1618 +U 7881 ; WX 380 ; N uni1EC9 ; G 1619 +U 7882 ; WX 468 ; N uni1ECA ; G 1620 +U 7883 ; WX 380 ; N uni1ECB ; G 1621 +U 7884 ; WX 871 ; N uni1ECC ; G 1622 +U 7885 ; WX 667 ; N uni1ECD ; G 1623 +U 7886 ; WX 871 ; N uni1ECE ; G 1624 +U 7887 ; WX 667 ; N uni1ECF ; G 1625 +U 7888 ; WX 871 ; N uni1ED0 ; G 1626 +U 7889 ; WX 667 ; N uni1ED1 ; G 1627 +U 7890 ; WX 871 ; N uni1ED2 ; G 1628 +U 7891 ; WX 667 ; N uni1ED3 ; G 1629 +U 7892 ; WX 871 ; N uni1ED4 ; G 1630 +U 7893 ; WX 667 ; N uni1ED5 ; G 1631 +U 7894 ; WX 871 ; N uni1ED6 ; G 1632 +U 7895 ; WX 667 ; N uni1ED7 ; G 1633 +U 7896 ; WX 871 ; N uni1ED8 ; G 1634 +U 7897 ; WX 667 ; N uni1ED9 ; G 1635 +U 7898 ; WX 871 ; N uni1EDA ; G 1636 +U 7899 ; WX 667 ; N uni1EDB ; G 1637 +U 7900 ; WX 871 ; N uni1EDC ; G 1638 +U 7901 ; WX 667 ; N uni1EDD ; G 1639 +U 7902 ; WX 871 ; N uni1EDE ; G 1640 +U 7903 ; WX 667 ; N uni1EDF ; G 1641 +U 7904 ; WX 871 ; N uni1EE0 ; G 1642 +U 7905 ; WX 667 ; N uni1EE1 ; G 1643 +U 7906 ; WX 871 ; N uni1EE2 ; G 1644 +U 7907 ; WX 667 ; N uni1EE3 ; G 1645 +U 7908 ; WX 872 ; N uni1EE4 ; G 1646 +U 7909 ; WX 727 ; N uni1EE5 ; G 1647 +U 7910 ; WX 872 ; N uni1EE6 ; G 1648 +U 7911 ; WX 727 ; N uni1EE7 ; G 1649 +U 7912 ; WX 872 ; N uni1EE8 ; G 1650 +U 7913 ; WX 727 ; N uni1EE9 ; G 1651 +U 7914 ; WX 872 ; N uni1EEA ; G 1652 +U 7915 ; WX 727 ; N uni1EEB ; G 1653 +U 7916 ; WX 872 ; N uni1EEC ; G 1654 +U 7917 ; WX 727 ; N uni1EED ; G 1655 +U 7918 ; WX 872 ; N uni1EEE ; G 1656 +U 7919 ; WX 727 ; N uni1EEF ; G 1657 +U 7920 ; WX 872 ; N uni1EF0 ; G 1658 +U 7921 ; WX 727 ; N uni1EF1 ; G 1659 +U 7922 ; WX 714 ; N Ygrave ; G 1660 +U 7923 ; WX 581 ; N ygrave ; G 1661 +U 7924 ; WX 714 ; N uni1EF4 ; G 1662 +U 7925 ; WX 581 ; N uni1EF5 ; G 1663 +U 7926 ; WX 714 ; N uni1EF6 ; G 1664 +U 7927 ; WX 581 ; N uni1EF7 ; G 1665 +U 7928 ; WX 714 ; N uni1EF8 ; G 1666 +U 7929 ; WX 581 ; N uni1EF9 ; G 1667 +U 7930 ; WX 1078 ; N uni1EFA ; G 1668 +U 7931 ; WX 701 ; N uni1EFB ; G 1669 +U 7936 ; WX 770 ; N uni1F00 ; G 1670 +U 7937 ; WX 770 ; N uni1F01 ; G 1671 +U 7938 ; WX 770 ; N uni1F02 ; G 1672 +U 7939 ; WX 770 ; N uni1F03 ; G 1673 +U 7940 ; WX 770 ; N uni1F04 ; G 1674 +U 7941 ; WX 770 ; N uni1F05 ; G 1675 +U 7942 ; WX 770 ; N uni1F06 ; G 1676 +U 7943 ; WX 770 ; N uni1F07 ; G 1677 +U 7944 ; WX 776 ; N uni1F08 ; G 1678 +U 7945 ; WX 776 ; N uni1F09 ; G 1679 +U 7946 ; WX 978 ; N uni1F0A ; G 1680 +U 7947 ; WX 978 ; N uni1F0B ; G 1681 +U 7948 ; WX 832 ; N uni1F0C ; G 1682 +U 7949 ; WX 849 ; N uni1F0D ; G 1683 +U 7950 ; WX 776 ; N uni1F0E ; G 1684 +U 7951 ; WX 776 ; N uni1F0F ; G 1685 +U 7952 ; WX 608 ; N uni1F10 ; G 1686 +U 7953 ; WX 608 ; N uni1F11 ; G 1687 +U 7954 ; WX 608 ; N uni1F12 ; G 1688 +U 7955 ; WX 608 ; N uni1F13 ; G 1689 +U 7956 ; WX 608 ; N uni1F14 ; G 1690 +U 7957 ; WX 608 ; N uni1F15 ; G 1691 +U 7960 ; WX 917 ; N uni1F18 ; G 1692 +U 7961 ; WX 909 ; N uni1F19 ; G 1693 +U 7962 ; WX 1169 ; N uni1F1A ; G 1694 +U 7963 ; WX 1169 ; N uni1F1B ; G 1695 +U 7964 ; WX 1093 ; N uni1F1C ; G 1696 +U 7965 ; WX 1120 ; N uni1F1D ; G 1697 +U 7968 ; WX 727 ; N uni1F20 ; G 1698 +U 7969 ; WX 727 ; N uni1F21 ; G 1699 +U 7970 ; WX 727 ; N uni1F22 ; G 1700 +U 7971 ; WX 727 ; N uni1F23 ; G 1701 +U 7972 ; WX 727 ; N uni1F24 ; G 1702 +U 7973 ; WX 727 ; N uni1F25 ; G 1703 +U 7974 ; WX 727 ; N uni1F26 ; G 1704 +U 7975 ; WX 727 ; N uni1F27 ; G 1705 +U 7976 ; WX 1100 ; N uni1F28 ; G 1706 +U 7977 ; WX 1094 ; N uni1F29 ; G 1707 +U 7978 ; WX 1358 ; N uni1F2A ; G 1708 +U 7979 ; WX 1361 ; N uni1F2B ; G 1709 +U 7980 ; WX 1279 ; N uni1F2C ; G 1710 +U 7981 ; WX 1308 ; N uni1F2D ; G 1711 +U 7982 ; WX 1197 ; N uni1F2E ; G 1712 +U 7983 ; WX 1194 ; N uni1F2F ; G 1713 +U 7984 ; WX 484 ; N uni1F30 ; G 1714 +U 7985 ; WX 484 ; N uni1F31 ; G 1715 +U 7986 ; WX 484 ; N uni1F32 ; G 1716 +U 7987 ; WX 484 ; N uni1F33 ; G 1717 +U 7988 ; WX 484 ; N uni1F34 ; G 1718 +U 7989 ; WX 484 ; N uni1F35 ; G 1719 +U 7990 ; WX 484 ; N uni1F36 ; G 1720 +U 7991 ; WX 484 ; N uni1F37 ; G 1721 +U 7992 ; WX 629 ; N uni1F38 ; G 1722 +U 7993 ; WX 617 ; N uni1F39 ; G 1723 +U 7994 ; WX 878 ; N uni1F3A ; G 1724 +U 7995 ; WX 881 ; N uni1F3B ; G 1725 +U 7996 ; WX 799 ; N uni1F3C ; G 1726 +U 7997 ; WX 831 ; N uni1F3D ; G 1727 +U 7998 ; WX 723 ; N uni1F3E ; G 1728 +U 7999 ; WX 714 ; N uni1F3F ; G 1729 +U 8000 ; WX 667 ; N uni1F40 ; G 1730 +U 8001 ; WX 667 ; N uni1F41 ; G 1731 +U 8002 ; WX 667 ; N uni1F42 ; G 1732 +U 8003 ; WX 667 ; N uni1F43 ; G 1733 +U 8004 ; WX 667 ; N uni1F44 ; G 1734 +U 8005 ; WX 667 ; N uni1F45 ; G 1735 +U 8008 ; WX 900 ; N uni1F48 ; G 1736 +U 8009 ; WX 935 ; N uni1F49 ; G 1737 +U 8010 ; WX 1240 ; N uni1F4A ; G 1738 +U 8011 ; WX 1237 ; N uni1F4B ; G 1739 +U 8012 ; WX 1035 ; N uni1F4C ; G 1740 +U 8013 ; WX 1066 ; N uni1F4D ; G 1741 +U 8016 ; WX 694 ; N uni1F50 ; G 1742 +U 8017 ; WX 694 ; N uni1F51 ; G 1743 +U 8018 ; WX 694 ; N uni1F52 ; G 1744 +U 8019 ; WX 694 ; N uni1F53 ; G 1745 +U 8020 ; WX 694 ; N uni1F54 ; G 1746 +U 8021 ; WX 694 ; N uni1F55 ; G 1747 +U 8022 ; WX 694 ; N uni1F56 ; G 1748 +U 8023 ; WX 694 ; N uni1F57 ; G 1749 +U 8025 ; WX 922 ; N uni1F59 ; G 1750 +U 8027 ; WX 1186 ; N uni1F5B ; G 1751 +U 8029 ; WX 1133 ; N uni1F5D ; G 1752 +U 8031 ; WX 1019 ; N uni1F5F ; G 1753 +U 8032 ; WX 952 ; N uni1F60 ; G 1754 +U 8033 ; WX 952 ; N uni1F61 ; G 1755 +U 8034 ; WX 952 ; N uni1F62 ; G 1756 +U 8035 ; WX 952 ; N uni1F63 ; G 1757 +U 8036 ; WX 952 ; N uni1F64 ; G 1758 +U 8037 ; WX 952 ; N uni1F65 ; G 1759 +U 8038 ; WX 952 ; N uni1F66 ; G 1760 +U 8039 ; WX 952 ; N uni1F67 ; G 1761 +U 8040 ; WX 931 ; N uni1F68 ; G 1762 +U 8041 ; WX 963 ; N uni1F69 ; G 1763 +U 8042 ; WX 1268 ; N uni1F6A ; G 1764 +U 8043 ; WX 1274 ; N uni1F6B ; G 1765 +U 8044 ; WX 1054 ; N uni1F6C ; G 1766 +U 8045 ; WX 1088 ; N uni1F6D ; G 1767 +U 8046 ; WX 1023 ; N uni1F6E ; G 1768 +U 8047 ; WX 1060 ; N uni1F6F ; G 1769 +U 8048 ; WX 770 ; N uni1F70 ; G 1770 +U 8049 ; WX 770 ; N uni1F71 ; G 1771 +U 8050 ; WX 608 ; N uni1F72 ; G 1772 +U 8051 ; WX 608 ; N uni1F73 ; G 1773 +U 8052 ; WX 727 ; N uni1F74 ; G 1774 +U 8053 ; WX 727 ; N uni1F75 ; G 1775 +U 8054 ; WX 484 ; N uni1F76 ; G 1776 +U 8055 ; WX 484 ; N uni1F77 ; G 1777 +U 8056 ; WX 667 ; N uni1F78 ; G 1778 +U 8057 ; WX 667 ; N uni1F79 ; G 1779 +U 8058 ; WX 694 ; N uni1F7A ; G 1780 +U 8059 ; WX 694 ; N uni1F7B ; G 1781 +U 8060 ; WX 952 ; N uni1F7C ; G 1782 +U 8061 ; WX 952 ; N uni1F7D ; G 1783 +U 8064 ; WX 770 ; N uni1F80 ; G 1784 +U 8065 ; WX 770 ; N uni1F81 ; G 1785 +U 8066 ; WX 770 ; N uni1F82 ; G 1786 +U 8067 ; WX 770 ; N uni1F83 ; G 1787 +U 8068 ; WX 770 ; N uni1F84 ; G 1788 +U 8069 ; WX 770 ; N uni1F85 ; G 1789 +U 8070 ; WX 770 ; N uni1F86 ; G 1790 +U 8071 ; WX 770 ; N uni1F87 ; G 1791 +U 8072 ; WX 776 ; N uni1F88 ; G 1792 +U 8073 ; WX 776 ; N uni1F89 ; G 1793 +U 8074 ; WX 978 ; N uni1F8A ; G 1794 +U 8075 ; WX 978 ; N uni1F8B ; G 1795 +U 8076 ; WX 832 ; N uni1F8C ; G 1796 +U 8077 ; WX 849 ; N uni1F8D ; G 1797 +U 8078 ; WX 776 ; N uni1F8E ; G 1798 +U 8079 ; WX 776 ; N uni1F8F ; G 1799 +U 8080 ; WX 727 ; N uni1F90 ; G 1800 +U 8081 ; WX 727 ; N uni1F91 ; G 1801 +U 8082 ; WX 727 ; N uni1F92 ; G 1802 +U 8083 ; WX 727 ; N uni1F93 ; G 1803 +U 8084 ; WX 727 ; N uni1F94 ; G 1804 +U 8085 ; WX 727 ; N uni1F95 ; G 1805 +U 8086 ; WX 727 ; N uni1F96 ; G 1806 +U 8087 ; WX 727 ; N uni1F97 ; G 1807 +U 8088 ; WX 1100 ; N uni1F98 ; G 1808 +U 8089 ; WX 1094 ; N uni1F99 ; G 1809 +U 8090 ; WX 1358 ; N uni1F9A ; G 1810 +U 8091 ; WX 1361 ; N uni1F9B ; G 1811 +U 8092 ; WX 1279 ; N uni1F9C ; G 1812 +U 8093 ; WX 1308 ; N uni1F9D ; G 1813 +U 8094 ; WX 1197 ; N uni1F9E ; G 1814 +U 8095 ; WX 1194 ; N uni1F9F ; G 1815 +U 8096 ; WX 952 ; N uni1FA0 ; G 1816 +U 8097 ; WX 952 ; N uni1FA1 ; G 1817 +U 8098 ; WX 952 ; N uni1FA2 ; G 1818 +U 8099 ; WX 952 ; N uni1FA3 ; G 1819 +U 8100 ; WX 952 ; N uni1FA4 ; G 1820 +U 8101 ; WX 952 ; N uni1FA5 ; G 1821 +U 8102 ; WX 952 ; N uni1FA6 ; G 1822 +U 8103 ; WX 952 ; N uni1FA7 ; G 1823 +U 8104 ; WX 931 ; N uni1FA8 ; G 1824 +U 8105 ; WX 963 ; N uni1FA9 ; G 1825 +U 8106 ; WX 1268 ; N uni1FAA ; G 1826 +U 8107 ; WX 1274 ; N uni1FAB ; G 1827 +U 8108 ; WX 1054 ; N uni1FAC ; G 1828 +U 8109 ; WX 1088 ; N uni1FAD ; G 1829 +U 8110 ; WX 1023 ; N uni1FAE ; G 1830 +U 8111 ; WX 1060 ; N uni1FAF ; G 1831 +U 8112 ; WX 770 ; N uni1FB0 ; G 1832 +U 8113 ; WX 770 ; N uni1FB1 ; G 1833 +U 8114 ; WX 770 ; N uni1FB2 ; G 1834 +U 8115 ; WX 770 ; N uni1FB3 ; G 1835 +U 8116 ; WX 770 ; N uni1FB4 ; G 1836 +U 8118 ; WX 770 ; N uni1FB6 ; G 1837 +U 8119 ; WX 770 ; N uni1FB7 ; G 1838 +U 8120 ; WX 776 ; N uni1FB8 ; G 1839 +U 8121 ; WX 776 ; N uni1FB9 ; G 1840 +U 8122 ; WX 811 ; N uni1FBA ; G 1841 +U 8123 ; WX 776 ; N uni1FBB ; G 1842 +U 8124 ; WX 776 ; N uni1FBC ; G 1843 +U 8125 ; WX 500 ; N uni1FBD ; G 1844 +U 8126 ; WX 500 ; N uni1FBE ; G 1845 +U 8127 ; WX 500 ; N uni1FBF ; G 1846 +U 8128 ; WX 500 ; N uni1FC0 ; G 1847 +U 8129 ; WX 500 ; N uni1FC1 ; G 1848 +U 8130 ; WX 727 ; N uni1FC2 ; G 1849 +U 8131 ; WX 727 ; N uni1FC3 ; G 1850 +U 8132 ; WX 727 ; N uni1FC4 ; G 1851 +U 8134 ; WX 727 ; N uni1FC6 ; G 1852 +U 8135 ; WX 727 ; N uni1FC7 ; G 1853 +U 8136 ; WX 1000 ; N uni1FC8 ; G 1854 +U 8137 ; WX 947 ; N uni1FC9 ; G 1855 +U 8138 ; WX 1191 ; N uni1FCA ; G 1856 +U 8139 ; WX 1118 ; N uni1FCB ; G 1857 +U 8140 ; WX 945 ; N uni1FCC ; G 1858 +U 8141 ; WX 500 ; N uni1FCD ; G 1859 +U 8142 ; WX 500 ; N uni1FCE ; G 1860 +U 8143 ; WX 500 ; N uni1FCF ; G 1861 +U 8144 ; WX 484 ; N uni1FD0 ; G 1862 +U 8145 ; WX 484 ; N uni1FD1 ; G 1863 +U 8146 ; WX 484 ; N uni1FD2 ; G 1864 +U 8147 ; WX 484 ; N uni1FD3 ; G 1865 +U 8150 ; WX 484 ; N uni1FD6 ; G 1866 +U 8151 ; WX 484 ; N uni1FD7 ; G 1867 +U 8152 ; WX 468 ; N uni1FD8 ; G 1868 +U 8153 ; WX 468 ; N uni1FD9 ; G 1869 +U 8154 ; WX 714 ; N uni1FDA ; G 1870 +U 8155 ; WX 662 ; N uni1FDB ; G 1871 +U 8157 ; WX 500 ; N uni1FDD ; G 1872 +U 8158 ; WX 500 ; N uni1FDE ; G 1873 +U 8159 ; WX 500 ; N uni1FDF ; G 1874 +U 8160 ; WX 694 ; N uni1FE0 ; G 1875 +U 8161 ; WX 694 ; N uni1FE1 ; G 1876 +U 8162 ; WX 694 ; N uni1FE2 ; G 1877 +U 8163 ; WX 694 ; N uni1FE3 ; G 1878 +U 8164 ; WX 665 ; N uni1FE4 ; G 1879 +U 8165 ; WX 665 ; N uni1FE5 ; G 1880 +U 8166 ; WX 694 ; N uni1FE6 ; G 1881 +U 8167 ; WX 694 ; N uni1FE7 ; G 1882 +U 8168 ; WX 714 ; N uni1FE8 ; G 1883 +U 8169 ; WX 714 ; N uni1FE9 ; G 1884 +U 8170 ; WX 1019 ; N uni1FEA ; G 1885 +U 8171 ; WX 953 ; N uni1FEB ; G 1886 +U 8172 ; WX 910 ; N uni1FEC ; G 1887 +U 8173 ; WX 500 ; N uni1FED ; G 1888 +U 8174 ; WX 500 ; N uni1FEE ; G 1889 +U 8175 ; WX 500 ; N uni1FEF ; G 1890 +U 8178 ; WX 952 ; N uni1FF2 ; G 1891 +U 8179 ; WX 952 ; N uni1FF3 ; G 1892 +U 8180 ; WX 952 ; N uni1FF4 ; G 1893 +U 8182 ; WX 952 ; N uni1FF6 ; G 1894 +U 8183 ; WX 952 ; N uni1FF7 ; G 1895 +U 8184 ; WX 1069 ; N uni1FF8 ; G 1896 +U 8185 ; WX 887 ; N uni1FF9 ; G 1897 +U 8186 ; WX 1101 ; N uni1FFA ; G 1898 +U 8187 ; WX 911 ; N uni1FFB ; G 1899 +U 8188 ; WX 890 ; N uni1FFC ; G 1900 +U 8189 ; WX 500 ; N uni1FFD ; G 1901 +U 8190 ; WX 500 ; N uni1FFE ; G 1902 +U 8192 ; WX 500 ; N uni2000 ; G 1903 +U 8193 ; WX 1000 ; N uni2001 ; G 1904 +U 8194 ; WX 500 ; N uni2002 ; G 1905 +U 8195 ; WX 1000 ; N uni2003 ; G 1906 +U 8196 ; WX 330 ; N uni2004 ; G 1907 +U 8197 ; WX 250 ; N uni2005 ; G 1908 +U 8198 ; WX 167 ; N uni2006 ; G 1909 +U 8199 ; WX 696 ; N uni2007 ; G 1910 +U 8200 ; WX 348 ; N uni2008 ; G 1911 +U 8201 ; WX 200 ; N uni2009 ; G 1912 +U 8202 ; WX 100 ; N uni200A ; G 1913 +U 8203 ; WX 0 ; N uni200B ; G 1914 +U 8204 ; WX 0 ; N uni200C ; G 1915 +U 8205 ; WX 0 ; N uni200D ; G 1916 +U 8206 ; WX 0 ; N uni200E ; G 1917 +U 8207 ; WX 0 ; N uni200F ; G 1918 +U 8208 ; WX 415 ; N uni2010 ; G 1919 +U 8209 ; WX 415 ; N uni2011 ; G 1920 +U 8210 ; WX 696 ; N figuredash ; G 1921 +U 8211 ; WX 500 ; N endash ; G 1922 +U 8212 ; WX 1000 ; N emdash ; G 1923 +U 8213 ; WX 1000 ; N uni2015 ; G 1924 +U 8214 ; WX 500 ; N uni2016 ; G 1925 +U 8215 ; WX 500 ; N underscoredbl ; G 1926 +U 8216 ; WX 348 ; N quoteleft ; G 1927 +U 8217 ; WX 348 ; N quoteright ; G 1928 +U 8218 ; WX 348 ; N quotesinglbase ; G 1929 +U 8219 ; WX 348 ; N quotereversed ; G 1930 +U 8220 ; WX 575 ; N quotedblleft ; G 1931 +U 8221 ; WX 575 ; N quotedblright ; G 1932 +U 8222 ; WX 575 ; N quotedblbase ; G 1933 +U 8223 ; WX 575 ; N uni201F ; G 1934 +U 8224 ; WX 523 ; N dagger ; G 1935 +U 8225 ; WX 523 ; N daggerdbl ; G 1936 +U 8226 ; WX 639 ; N bullet ; G 1937 +U 8227 ; WX 639 ; N uni2023 ; G 1938 +U 8228 ; WX 348 ; N onedotenleader ; G 1939 +U 8229 ; WX 674 ; N twodotenleader ; G 1940 +U 8230 ; WX 1000 ; N ellipsis ; G 1941 +U 8234 ; WX 0 ; N uni202A ; G 1942 +U 8235 ; WX 0 ; N uni202B ; G 1943 +U 8236 ; WX 0 ; N uni202C ; G 1944 +U 8237 ; WX 0 ; N uni202D ; G 1945 +U 8238 ; WX 0 ; N uni202E ; G 1946 +U 8239 ; WX 200 ; N uni202F ; G 1947 +U 8240 ; WX 1385 ; N perthousand ; G 1948 +U 8241 ; WX 1813 ; N uni2031 ; G 1949 +U 8242 ; WX 264 ; N minute ; G 1950 +U 8243 ; WX 447 ; N second ; G 1951 +U 8244 ; WX 630 ; N uni2034 ; G 1952 +U 8245 ; WX 264 ; N uni2035 ; G 1953 +U 8246 ; WX 447 ; N uni2036 ; G 1954 +U 8247 ; WX 630 ; N uni2037 ; G 1955 +U 8248 ; WX 733 ; N uni2038 ; G 1956 +U 8249 ; WX 400 ; N guilsinglleft ; G 1957 +U 8250 ; WX 400 ; N guilsinglright ; G 1958 +U 8252 ; WX 629 ; N exclamdbl ; G 1959 +U 8253 ; WX 586 ; N uni203D ; G 1960 +U 8254 ; WX 500 ; N uni203E ; G 1961 +U 8258 ; WX 1023 ; N uni2042 ; G 1962 +U 8260 ; WX 167 ; N fraction ; G 1963 +U 8261 ; WX 473 ; N uni2045 ; G 1964 +U 8262 ; WX 473 ; N uni2046 ; G 1965 +U 8263 ; WX 1082 ; N uni2047 ; G 1966 +U 8264 ; WX 856 ; N uni2048 ; G 1967 +U 8265 ; WX 856 ; N uni2049 ; G 1968 +U 8267 ; WX 636 ; N uni204B ; G 1969 +U 8268 ; WX 500 ; N uni204C ; G 1970 +U 8269 ; WX 500 ; N uni204D ; G 1971 +U 8270 ; WX 523 ; N uni204E ; G 1972 +U 8271 ; WX 369 ; N uni204F ; G 1973 +U 8273 ; WX 523 ; N uni2051 ; G 1974 +U 8274 ; WX 556 ; N uni2052 ; G 1975 +U 8275 ; WX 1000 ; N uni2053 ; G 1976 +U 8279 ; WX 813 ; N uni2057 ; G 1977 +U 8287 ; WX 222 ; N uni205F ; G 1978 +U 8288 ; WX 0 ; N uni2060 ; G 1979 +U 8289 ; WX 0 ; N uni2061 ; G 1980 +U 8290 ; WX 0 ; N uni2062 ; G 1981 +U 8291 ; WX 0 ; N uni2063 ; G 1982 +U 8292 ; WX 0 ; N uni2064 ; G 1983 +U 8298 ; WX 0 ; N uni206A ; G 1984 +U 8299 ; WX 0 ; N uni206B ; G 1985 +U 8300 ; WX 0 ; N uni206C ; G 1986 +U 8301 ; WX 0 ; N uni206D ; G 1987 +U 8302 ; WX 0 ; N uni206E ; G 1988 +U 8303 ; WX 0 ; N uni206F ; G 1989 +U 8304 ; WX 438 ; N uni2070 ; G 1990 +U 8305 ; WX 239 ; N uni2071 ; G 1991 +U 8308 ; WX 438 ; N uni2074 ; G 1992 +U 8309 ; WX 438 ; N uni2075 ; G 1993 +U 8310 ; WX 438 ; N uni2076 ; G 1994 +U 8311 ; WX 438 ; N uni2077 ; G 1995 +U 8312 ; WX 438 ; N uni2078 ; G 1996 +U 8313 ; WX 438 ; N uni2079 ; G 1997 +U 8314 ; WX 528 ; N uni207A ; G 1998 +U 8315 ; WX 528 ; N uni207B ; G 1999 +U 8316 ; WX 528 ; N uni207C ; G 2000 +U 8317 ; WX 298 ; N uni207D ; G 2001 +U 8318 ; WX 298 ; N uni207E ; G 2002 +U 8319 ; WX 458 ; N uni207F ; G 2003 +U 8320 ; WX 438 ; N uni2080 ; G 2004 +U 8321 ; WX 438 ; N uni2081 ; G 2005 +U 8322 ; WX 438 ; N uni2082 ; G 2006 +U 8323 ; WX 438 ; N uni2083 ; G 2007 +U 8324 ; WX 438 ; N uni2084 ; G 2008 +U 8325 ; WX 438 ; N uni2085 ; G 2009 +U 8326 ; WX 438 ; N uni2086 ; G 2010 +U 8327 ; WX 438 ; N uni2087 ; G 2011 +U 8328 ; WX 438 ; N uni2088 ; G 2012 +U 8329 ; WX 438 ; N uni2089 ; G 2013 +U 8330 ; WX 528 ; N uni208A ; G 2014 +U 8331 ; WX 528 ; N uni208B ; G 2015 +U 8332 ; WX 528 ; N uni208C ; G 2016 +U 8333 ; WX 298 ; N uni208D ; G 2017 +U 8334 ; WX 298 ; N uni208E ; G 2018 +U 8336 ; WX 408 ; N uni2090 ; G 2019 +U 8337 ; WX 444 ; N uni2091 ; G 2020 +U 8338 ; WX 467 ; N uni2092 ; G 2021 +U 8339 ; WX 375 ; N uni2093 ; G 2022 +U 8340 ; WX 444 ; N uni2094 ; G 2023 +U 8341 ; WX 521 ; N uni2095 ; G 2024 +U 8342 ; WX 523 ; N uni2096 ; G 2025 +U 8343 ; WX 292 ; N uni2097 ; G 2026 +U 8344 ; WX 729 ; N uni2098 ; G 2027 +U 8345 ; WX 458 ; N uni2099 ; G 2028 +U 8346 ; WX 499 ; N uni209A ; G 2029 +U 8347 ; WX 395 ; N uni209B ; G 2030 +U 8348 ; WX 371 ; N uni209C ; G 2031 +U 8358 ; WX 696 ; N uni20A6 ; G 2032 +U 8364 ; WX 696 ; N Euro ; G 2033 +U 8367 ; WX 1155 ; N uni20AF ; G 2034 +U 8369 ; WX 790 ; N uni20B1 ; G 2035 +U 8372 ; WX 876 ; N uni20B4 ; G 2036 +U 8373 ; WX 696 ; N uni20B5 ; G 2037 +U 8376 ; WX 696 ; N uni20B8 ; G 2038 +U 8377 ; WX 696 ; N uni20B9 ; G 2039 +U 8378 ; WX 696 ; N uni20BA ; G 2040 +U 8381 ; WX 696 ; N uni20BD ; G 2041 +U 8451 ; WX 1198 ; N uni2103 ; G 2042 +U 8457 ; WX 1112 ; N uni2109 ; G 2043 +U 8462 ; WX 727 ; N uni210E ; G 2044 +U 8463 ; WX 727 ; N uni210F ; G 2045 +U 8470 ; WX 1087 ; N uni2116 ; G 2046 +U 8482 ; WX 1000 ; N trademark ; G 2047 +U 8486 ; WX 890 ; N uni2126 ; G 2048 +U 8487 ; WX 890 ; N uni2127 ; G 2049 +U 8490 ; WX 869 ; N uni212A ; G 2050 +U 8491 ; WX 776 ; N uni212B ; G 2051 +U 8498 ; WX 710 ; N uni2132 ; G 2052 +U 8513 ; WX 786 ; N uni2141 ; G 2053 +U 8514 ; WX 576 ; N uni2142 ; G 2054 +U 8515 ; WX 637 ; N uni2143 ; G 2055 +U 8516 ; WX 760 ; N uni2144 ; G 2056 +U 8523 ; WX 903 ; N uni214B ; G 2057 +U 8526 ; WX 592 ; N uni214E ; G 2058 +U 8528 ; WX 1035 ; N uni2150 ; G 2059 +U 8529 ; WX 1035 ; N uni2151 ; G 2060 +U 8530 ; WX 1473 ; N uni2152 ; G 2061 +U 8531 ; WX 1035 ; N onethird ; G 2062 +U 8532 ; WX 1035 ; N twothirds ; G 2063 +U 8533 ; WX 1035 ; N uni2155 ; G 2064 +U 8534 ; WX 1035 ; N uni2156 ; G 2065 +U 8535 ; WX 1035 ; N uni2157 ; G 2066 +U 8536 ; WX 1035 ; N uni2158 ; G 2067 +U 8537 ; WX 1035 ; N uni2159 ; G 2068 +U 8538 ; WX 1035 ; N uni215A ; G 2069 +U 8539 ; WX 1035 ; N oneeighth ; G 2070 +U 8540 ; WX 1035 ; N threeeighths ; G 2071 +U 8541 ; WX 1035 ; N fiveeighths ; G 2072 +U 8542 ; WX 1035 ; N seveneighths ; G 2073 +U 8543 ; WX 615 ; N uni215F ; G 2074 +U 8544 ; WX 468 ; N uni2160 ; G 2075 +U 8545 ; WX 843 ; N uni2161 ; G 2076 +U 8546 ; WX 1218 ; N uni2162 ; G 2077 +U 8547 ; WX 1135 ; N uni2163 ; G 2078 +U 8548 ; WX 776 ; N uni2164 ; G 2079 +U 8549 ; WX 1150 ; N uni2165 ; G 2080 +U 8550 ; WX 1525 ; N uni2166 ; G 2081 +U 8551 ; WX 1900 ; N uni2167 ; G 2082 +U 8552 ; WX 1126 ; N uni2168 ; G 2083 +U 8553 ; WX 776 ; N uni2169 ; G 2084 +U 8554 ; WX 1127 ; N uni216A ; G 2085 +U 8555 ; WX 1502 ; N uni216B ; G 2086 +U 8556 ; WX 703 ; N uni216C ; G 2087 +U 8557 ; WX 796 ; N uni216D ; G 2088 +U 8558 ; WX 867 ; N uni216E ; G 2089 +U 8559 ; WX 1107 ; N uni216F ; G 2090 +U 8560 ; WX 380 ; N uni2170 ; G 2091 +U 8561 ; WX 760 ; N uni2171 ; G 2092 +U 8562 ; WX 1140 ; N uni2172 ; G 2093 +U 8563 ; WX 961 ; N uni2173 ; G 2094 +U 8564 ; WX 581 ; N uni2174 ; G 2095 +U 8565 ; WX 961 ; N uni2175 ; G 2096 +U 8566 ; WX 1341 ; N uni2176 ; G 2097 +U 8567 ; WX 1721 ; N uni2177 ; G 2098 +U 8568 ; WX 976 ; N uni2178 ; G 2099 +U 8569 ; WX 596 ; N uni2179 ; G 2100 +U 8570 ; WX 976 ; N uni217A ; G 2101 +U 8571 ; WX 1356 ; N uni217B ; G 2102 +U 8572 ; WX 380 ; N uni217C ; G 2103 +U 8573 ; WX 609 ; N uni217D ; G 2104 +U 8574 ; WX 699 ; N uni217E ; G 2105 +U 8575 ; WX 1058 ; N uni217F ; G 2106 +U 8576 ; WX 1255 ; N uni2180 ; G 2107 +U 8577 ; WX 867 ; N uni2181 ; G 2108 +U 8578 ; WX 1268 ; N uni2182 ; G 2109 +U 8579 ; WX 796 ; N uni2183 ; G 2110 +U 8580 ; WX 609 ; N uni2184 ; G 2111 +U 8581 ; WX 796 ; N uni2185 ; G 2112 +U 8585 ; WX 1035 ; N uni2189 ; G 2113 +U 8592 ; WX 838 ; N arrowleft ; G 2114 +U 8593 ; WX 838 ; N arrowup ; G 2115 +U 8594 ; WX 838 ; N arrowright ; G 2116 +U 8595 ; WX 838 ; N arrowdown ; G 2117 +U 8596 ; WX 838 ; N arrowboth ; G 2118 +U 8597 ; WX 838 ; N arrowupdn ; G 2119 +U 8598 ; WX 838 ; N uni2196 ; G 2120 +U 8599 ; WX 838 ; N uni2197 ; G 2121 +U 8600 ; WX 838 ; N uni2198 ; G 2122 +U 8601 ; WX 838 ; N uni2199 ; G 2123 +U 8602 ; WX 838 ; N uni219A ; G 2124 +U 8603 ; WX 838 ; N uni219B ; G 2125 +U 8604 ; WX 838 ; N uni219C ; G 2126 +U 8605 ; WX 838 ; N uni219D ; G 2127 +U 8606 ; WX 838 ; N uni219E ; G 2128 +U 8607 ; WX 838 ; N uni219F ; G 2129 +U 8608 ; WX 838 ; N uni21A0 ; G 2130 +U 8609 ; WX 838 ; N uni21A1 ; G 2131 +U 8610 ; WX 838 ; N uni21A2 ; G 2132 +U 8611 ; WX 838 ; N uni21A3 ; G 2133 +U 8612 ; WX 838 ; N uni21A4 ; G 2134 +U 8613 ; WX 838 ; N uni21A5 ; G 2135 +U 8614 ; WX 838 ; N uni21A6 ; G 2136 +U 8615 ; WX 838 ; N uni21A7 ; G 2137 +U 8616 ; WX 838 ; N arrowupdnbse ; G 2138 +U 8617 ; WX 838 ; N uni21A9 ; G 2139 +U 8618 ; WX 838 ; N uni21AA ; G 2140 +U 8619 ; WX 838 ; N uni21AB ; G 2141 +U 8620 ; WX 838 ; N uni21AC ; G 2142 +U 8621 ; WX 838 ; N uni21AD ; G 2143 +U 8622 ; WX 838 ; N uni21AE ; G 2144 +U 8623 ; WX 850 ; N uni21AF ; G 2145 +U 8624 ; WX 838 ; N uni21B0 ; G 2146 +U 8625 ; WX 838 ; N uni21B1 ; G 2147 +U 8626 ; WX 838 ; N uni21B2 ; G 2148 +U 8627 ; WX 838 ; N uni21B3 ; G 2149 +U 8628 ; WX 838 ; N uni21B4 ; G 2150 +U 8629 ; WX 838 ; N carriagereturn ; G 2151 +U 8630 ; WX 838 ; N uni21B6 ; G 2152 +U 8631 ; WX 838 ; N uni21B7 ; G 2153 +U 8632 ; WX 838 ; N uni21B8 ; G 2154 +U 8633 ; WX 838 ; N uni21B9 ; G 2155 +U 8634 ; WX 838 ; N uni21BA ; G 2156 +U 8635 ; WX 838 ; N uni21BB ; G 2157 +U 8636 ; WX 838 ; N uni21BC ; G 2158 +U 8637 ; WX 838 ; N uni21BD ; G 2159 +U 8638 ; WX 838 ; N uni21BE ; G 2160 +U 8639 ; WX 838 ; N uni21BF ; G 2161 +U 8640 ; WX 838 ; N uni21C0 ; G 2162 +U 8641 ; WX 838 ; N uni21C1 ; G 2163 +U 8642 ; WX 838 ; N uni21C2 ; G 2164 +U 8643 ; WX 838 ; N uni21C3 ; G 2165 +U 8644 ; WX 838 ; N uni21C4 ; G 2166 +U 8645 ; WX 838 ; N uni21C5 ; G 2167 +U 8646 ; WX 838 ; N uni21C6 ; G 2168 +U 8647 ; WX 838 ; N uni21C7 ; G 2169 +U 8648 ; WX 838 ; N uni21C8 ; G 2170 +U 8649 ; WX 838 ; N uni21C9 ; G 2171 +U 8650 ; WX 838 ; N uni21CA ; G 2172 +U 8651 ; WX 838 ; N uni21CB ; G 2173 +U 8652 ; WX 838 ; N uni21CC ; G 2174 +U 8653 ; WX 838 ; N uni21CD ; G 2175 +U 8654 ; WX 838 ; N uni21CE ; G 2176 +U 8655 ; WX 838 ; N uni21CF ; G 2177 +U 8656 ; WX 838 ; N arrowdblleft ; G 2178 +U 8657 ; WX 838 ; N arrowdblup ; G 2179 +U 8658 ; WX 838 ; N arrowdblright ; G 2180 +U 8659 ; WX 838 ; N arrowdbldown ; G 2181 +U 8660 ; WX 838 ; N arrowdblboth ; G 2182 +U 8661 ; WX 838 ; N uni21D5 ; G 2183 +U 8662 ; WX 838 ; N uni21D6 ; G 2184 +U 8663 ; WX 838 ; N uni21D7 ; G 2185 +U 8664 ; WX 838 ; N uni21D8 ; G 2186 +U 8665 ; WX 838 ; N uni21D9 ; G 2187 +U 8666 ; WX 838 ; N uni21DA ; G 2188 +U 8667 ; WX 838 ; N uni21DB ; G 2189 +U 8668 ; WX 838 ; N uni21DC ; G 2190 +U 8669 ; WX 838 ; N uni21DD ; G 2191 +U 8670 ; WX 838 ; N uni21DE ; G 2192 +U 8671 ; WX 838 ; N uni21DF ; G 2193 +U 8672 ; WX 838 ; N uni21E0 ; G 2194 +U 8673 ; WX 838 ; N uni21E1 ; G 2195 +U 8674 ; WX 838 ; N uni21E2 ; G 2196 +U 8675 ; WX 838 ; N uni21E3 ; G 2197 +U 8676 ; WX 838 ; N uni21E4 ; G 2198 +U 8677 ; WX 838 ; N uni21E5 ; G 2199 +U 8678 ; WX 838 ; N uni21E6 ; G 2200 +U 8679 ; WX 838 ; N uni21E7 ; G 2201 +U 8680 ; WX 838 ; N uni21E8 ; G 2202 +U 8681 ; WX 838 ; N uni21E9 ; G 2203 +U 8682 ; WX 838 ; N uni21EA ; G 2204 +U 8683 ; WX 838 ; N uni21EB ; G 2205 +U 8684 ; WX 838 ; N uni21EC ; G 2206 +U 8685 ; WX 838 ; N uni21ED ; G 2207 +U 8686 ; WX 838 ; N uni21EE ; G 2208 +U 8687 ; WX 838 ; N uni21EF ; G 2209 +U 8688 ; WX 838 ; N uni21F0 ; G 2210 +U 8689 ; WX 838 ; N uni21F1 ; G 2211 +U 8690 ; WX 838 ; N uni21F2 ; G 2212 +U 8691 ; WX 838 ; N uni21F3 ; G 2213 +U 8692 ; WX 838 ; N uni21F4 ; G 2214 +U 8693 ; WX 838 ; N uni21F5 ; G 2215 +U 8694 ; WX 838 ; N uni21F6 ; G 2216 +U 8695 ; WX 838 ; N uni21F7 ; G 2217 +U 8696 ; WX 838 ; N uni21F8 ; G 2218 +U 8697 ; WX 838 ; N uni21F9 ; G 2219 +U 8698 ; WX 838 ; N uni21FA ; G 2220 +U 8699 ; WX 838 ; N uni21FB ; G 2221 +U 8700 ; WX 838 ; N uni21FC ; G 2222 +U 8701 ; WX 838 ; N uni21FD ; G 2223 +U 8702 ; WX 838 ; N uni21FE ; G 2224 +U 8703 ; WX 838 ; N uni21FF ; G 2225 +U 8704 ; WX 641 ; N universal ; G 2226 +U 8706 ; WX 534 ; N partialdiff ; G 2227 +U 8707 ; WX 620 ; N existential ; G 2228 +U 8708 ; WX 620 ; N uni2204 ; G 2229 +U 8710 ; WX 753 ; N increment ; G 2230 +U 8711 ; WX 753 ; N gradient ; G 2231 +U 8712 ; WX 740 ; N element ; G 2232 +U 8713 ; WX 740 ; N notelement ; G 2233 +U 8715 ; WX 740 ; N suchthat ; G 2234 +U 8716 ; WX 740 ; N uni220C ; G 2235 +U 8719 ; WX 842 ; N product ; G 2236 +U 8720 ; WX 842 ; N uni2210 ; G 2237 +U 8721 ; WX 753 ; N summation ; G 2238 +U 8722 ; WX 838 ; N minus ; G 2239 +U 8723 ; WX 838 ; N uni2213 ; G 2240 +U 8724 ; WX 838 ; N uni2214 ; G 2241 +U 8725 ; WX 365 ; N uni2215 ; G 2242 +U 8727 ; WX 691 ; N asteriskmath ; G 2243 +U 8728 ; WX 519 ; N uni2218 ; G 2244 +U 8729 ; WX 519 ; N uni2219 ; G 2245 +U 8730 ; WX 657 ; N radical ; G 2246 +U 8731 ; WX 657 ; N uni221B ; G 2247 +U 8732 ; WX 657 ; N uni221C ; G 2248 +U 8733 ; WX 672 ; N proportional ; G 2249 +U 8734 ; WX 833 ; N infinity ; G 2250 +U 8735 ; WX 838 ; N orthogonal ; G 2251 +U 8736 ; WX 838 ; N angle ; G 2252 +U 8739 ; WX 324 ; N uni2223 ; G 2253 +U 8740 ; WX 607 ; N uni2224 ; G 2254 +U 8741 ; WX 529 ; N uni2225 ; G 2255 +U 8742 ; WX 773 ; N uni2226 ; G 2256 +U 8743 ; WX 812 ; N logicaland ; G 2257 +U 8744 ; WX 812 ; N logicalor ; G 2258 +U 8745 ; WX 838 ; N intersection ; G 2259 +U 8746 ; WX 838 ; N union ; G 2260 +U 8747 ; WX 579 ; N integral ; G 2261 +U 8748 ; WX 1000 ; N uni222C ; G 2262 +U 8749 ; WX 1391 ; N uni222D ; G 2263 +U 8760 ; WX 838 ; N uni2238 ; G 2264 +U 8761 ; WX 838 ; N uni2239 ; G 2265 +U 8762 ; WX 838 ; N uni223A ; G 2266 +U 8763 ; WX 838 ; N uni223B ; G 2267 +U 8764 ; WX 838 ; N similar ; G 2268 +U 8765 ; WX 838 ; N uni223D ; G 2269 +U 8770 ; WX 838 ; N uni2242 ; G 2270 +U 8771 ; WX 838 ; N uni2243 ; G 2271 +U 8776 ; WX 838 ; N approxequal ; G 2272 +U 8784 ; WX 838 ; N uni2250 ; G 2273 +U 8785 ; WX 838 ; N uni2251 ; G 2274 +U 8786 ; WX 838 ; N uni2252 ; G 2275 +U 8787 ; WX 838 ; N uni2253 ; G 2276 +U 8788 ; WX 1082 ; N uni2254 ; G 2277 +U 8789 ; WX 1082 ; N uni2255 ; G 2278 +U 8800 ; WX 838 ; N notequal ; G 2279 +U 8801 ; WX 838 ; N equivalence ; G 2280 +U 8804 ; WX 838 ; N lessequal ; G 2281 +U 8805 ; WX 838 ; N greaterequal ; G 2282 +U 8834 ; WX 838 ; N propersubset ; G 2283 +U 8835 ; WX 838 ; N propersuperset ; G 2284 +U 8836 ; WX 838 ; N notsubset ; G 2285 +U 8837 ; WX 838 ; N uni2285 ; G 2286 +U 8838 ; WX 838 ; N reflexsubset ; G 2287 +U 8839 ; WX 838 ; N reflexsuperset ; G 2288 +U 8844 ; WX 838 ; N uni228C ; G 2289 +U 8845 ; WX 838 ; N uni228D ; G 2290 +U 8846 ; WX 838 ; N uni228E ; G 2291 +U 8847 ; WX 838 ; N uni228F ; G 2292 +U 8848 ; WX 838 ; N uni2290 ; G 2293 +U 8849 ; WX 838 ; N uni2291 ; G 2294 +U 8850 ; WX 838 ; N uni2292 ; G 2295 +U 8851 ; WX 838 ; N uni2293 ; G 2296 +U 8852 ; WX 838 ; N uni2294 ; G 2297 +U 8853 ; WX 838 ; N circleplus ; G 2298 +U 8854 ; WX 838 ; N uni2296 ; G 2299 +U 8855 ; WX 838 ; N circlemultiply ; G 2300 +U 8856 ; WX 838 ; N uni2298 ; G 2301 +U 8857 ; WX 838 ; N uni2299 ; G 2302 +U 8858 ; WX 838 ; N uni229A ; G 2303 +U 8859 ; WX 838 ; N uni229B ; G 2304 +U 8860 ; WX 838 ; N uni229C ; G 2305 +U 8861 ; WX 838 ; N uni229D ; G 2306 +U 8862 ; WX 838 ; N uni229E ; G 2307 +U 8863 ; WX 838 ; N uni229F ; G 2308 +U 8864 ; WX 838 ; N uni22A0 ; G 2309 +U 8865 ; WX 838 ; N uni22A1 ; G 2310 +U 8866 ; WX 884 ; N uni22A2 ; G 2311 +U 8867 ; WX 884 ; N uni22A3 ; G 2312 +U 8868 ; WX 960 ; N uni22A4 ; G 2313 +U 8869 ; WX 960 ; N perpendicular ; G 2314 +U 8870 ; WX 616 ; N uni22A6 ; G 2315 +U 8871 ; WX 616 ; N uni22A7 ; G 2316 +U 8872 ; WX 884 ; N uni22A8 ; G 2317 +U 8873 ; WX 884 ; N uni22A9 ; G 2318 +U 8874 ; WX 884 ; N uni22AA ; G 2319 +U 8875 ; WX 1080 ; N uni22AB ; G 2320 +U 8876 ; WX 884 ; N uni22AC ; G 2321 +U 8877 ; WX 884 ; N uni22AD ; G 2322 +U 8878 ; WX 884 ; N uni22AE ; G 2323 +U 8879 ; WX 1080 ; N uni22AF ; G 2324 +U 8900 ; WX 626 ; N uni22C4 ; G 2325 +U 8901 ; WX 398 ; N dotmath ; G 2326 +U 8962 ; WX 834 ; N house ; G 2327 +U 8968 ; WX 473 ; N uni2308 ; G 2328 +U 8969 ; WX 473 ; N uni2309 ; G 2329 +U 8970 ; WX 473 ; N uni230A ; G 2330 +U 8971 ; WX 473 ; N uni230B ; G 2331 +U 8976 ; WX 838 ; N revlogicalnot ; G 2332 +U 8977 ; WX 539 ; N uni2311 ; G 2333 +U 8984 ; WX 928 ; N uni2318 ; G 2334 +U 8985 ; WX 838 ; N uni2319 ; G 2335 +U 8992 ; WX 579 ; N integraltp ; G 2336 +U 8993 ; WX 579 ; N integralbt ; G 2337 +U 8997 ; WX 1000 ; N uni2325 ; G 2338 +U 9000 ; WX 1443 ; N uni2328 ; G 2339 +U 9085 ; WX 1008 ; N uni237D ; G 2340 +U 9115 ; WX 500 ; N uni239B ; G 2341 +U 9116 ; WX 500 ; N uni239C ; G 2342 +U 9117 ; WX 500 ; N uni239D ; G 2343 +U 9118 ; WX 500 ; N uni239E ; G 2344 +U 9119 ; WX 500 ; N uni239F ; G 2345 +U 9120 ; WX 500 ; N uni23A0 ; G 2346 +U 9121 ; WX 500 ; N uni23A1 ; G 2347 +U 9122 ; WX 500 ; N uni23A2 ; G 2348 +U 9123 ; WX 500 ; N uni23A3 ; G 2349 +U 9124 ; WX 500 ; N uni23A4 ; G 2350 +U 9125 ; WX 500 ; N uni23A5 ; G 2351 +U 9126 ; WX 500 ; N uni23A6 ; G 2352 +U 9127 ; WX 750 ; N uni23A7 ; G 2353 +U 9128 ; WX 750 ; N uni23A8 ; G 2354 +U 9129 ; WX 750 ; N uni23A9 ; G 2355 +U 9130 ; WX 750 ; N uni23AA ; G 2356 +U 9131 ; WX 750 ; N uni23AB ; G 2357 +U 9132 ; WX 750 ; N uni23AC ; G 2358 +U 9133 ; WX 750 ; N uni23AD ; G 2359 +U 9134 ; WX 579 ; N uni23AE ; G 2360 +U 9167 ; WX 945 ; N uni23CF ; G 2361 +U 9251 ; WX 834 ; N uni2423 ; G 2362 +U 9472 ; WX 602 ; N SF100000 ; G 2363 +U 9473 ; WX 602 ; N uni2501 ; G 2364 +U 9474 ; WX 602 ; N SF110000 ; G 2365 +U 9475 ; WX 602 ; N uni2503 ; G 2366 +U 9476 ; WX 602 ; N uni2504 ; G 2367 +U 9477 ; WX 602 ; N uni2505 ; G 2368 +U 9478 ; WX 602 ; N uni2506 ; G 2369 +U 9479 ; WX 602 ; N uni2507 ; G 2370 +U 9480 ; WX 602 ; N uni2508 ; G 2371 +U 9481 ; WX 602 ; N uni2509 ; G 2372 +U 9482 ; WX 602 ; N uni250A ; G 2373 +U 9483 ; WX 602 ; N uni250B ; G 2374 +U 9484 ; WX 602 ; N SF010000 ; G 2375 +U 9485 ; WX 602 ; N uni250D ; G 2376 +U 9486 ; WX 602 ; N uni250E ; G 2377 +U 9487 ; WX 602 ; N uni250F ; G 2378 +U 9488 ; WX 602 ; N SF030000 ; G 2379 +U 9489 ; WX 602 ; N uni2511 ; G 2380 +U 9490 ; WX 602 ; N uni2512 ; G 2381 +U 9491 ; WX 602 ; N uni2513 ; G 2382 +U 9492 ; WX 602 ; N SF020000 ; G 2383 +U 9493 ; WX 602 ; N uni2515 ; G 2384 +U 9494 ; WX 602 ; N uni2516 ; G 2385 +U 9495 ; WX 602 ; N uni2517 ; G 2386 +U 9496 ; WX 602 ; N SF040000 ; G 2387 +U 9497 ; WX 602 ; N uni2519 ; G 2388 +U 9498 ; WX 602 ; N uni251A ; G 2389 +U 9499 ; WX 602 ; N uni251B ; G 2390 +U 9500 ; WX 602 ; N SF080000 ; G 2391 +U 9501 ; WX 602 ; N uni251D ; G 2392 +U 9502 ; WX 602 ; N uni251E ; G 2393 +U 9503 ; WX 602 ; N uni251F ; G 2394 +U 9504 ; WX 602 ; N uni2520 ; G 2395 +U 9505 ; WX 602 ; N uni2521 ; G 2396 +U 9506 ; WX 602 ; N uni2522 ; G 2397 +U 9507 ; WX 602 ; N uni2523 ; G 2398 +U 9508 ; WX 602 ; N SF090000 ; G 2399 +U 9509 ; WX 602 ; N uni2525 ; G 2400 +U 9510 ; WX 602 ; N uni2526 ; G 2401 +U 9511 ; WX 602 ; N uni2527 ; G 2402 +U 9512 ; WX 602 ; N uni2528 ; G 2403 +U 9513 ; WX 602 ; N uni2529 ; G 2404 +U 9514 ; WX 602 ; N uni252A ; G 2405 +U 9515 ; WX 602 ; N uni252B ; G 2406 +U 9516 ; WX 602 ; N SF060000 ; G 2407 +U 9517 ; WX 602 ; N uni252D ; G 2408 +U 9518 ; WX 602 ; N uni252E ; G 2409 +U 9519 ; WX 602 ; N uni252F ; G 2410 +U 9520 ; WX 602 ; N uni2530 ; G 2411 +U 9521 ; WX 602 ; N uni2531 ; G 2412 +U 9522 ; WX 602 ; N uni2532 ; G 2413 +U 9523 ; WX 602 ; N uni2533 ; G 2414 +U 9524 ; WX 602 ; N SF070000 ; G 2415 +U 9525 ; WX 602 ; N uni2535 ; G 2416 +U 9526 ; WX 602 ; N uni2536 ; G 2417 +U 9527 ; WX 602 ; N uni2537 ; G 2418 +U 9528 ; WX 602 ; N uni2538 ; G 2419 +U 9529 ; WX 602 ; N uni2539 ; G 2420 +U 9530 ; WX 602 ; N uni253A ; G 2421 +U 9531 ; WX 602 ; N uni253B ; G 2422 +U 9532 ; WX 602 ; N SF050000 ; G 2423 +U 9533 ; WX 602 ; N uni253D ; G 2424 +U 9534 ; WX 602 ; N uni253E ; G 2425 +U 9535 ; WX 602 ; N uni253F ; G 2426 +U 9536 ; WX 602 ; N uni2540 ; G 2427 +U 9537 ; WX 602 ; N uni2541 ; G 2428 +U 9538 ; WX 602 ; N uni2542 ; G 2429 +U 9539 ; WX 602 ; N uni2543 ; G 2430 +U 9540 ; WX 602 ; N uni2544 ; G 2431 +U 9541 ; WX 602 ; N uni2545 ; G 2432 +U 9542 ; WX 602 ; N uni2546 ; G 2433 +U 9543 ; WX 602 ; N uni2547 ; G 2434 +U 9544 ; WX 602 ; N uni2548 ; G 2435 +U 9545 ; WX 602 ; N uni2549 ; G 2436 +U 9546 ; WX 602 ; N uni254A ; G 2437 +U 9547 ; WX 602 ; N uni254B ; G 2438 +U 9548 ; WX 602 ; N uni254C ; G 2439 +U 9549 ; WX 602 ; N uni254D ; G 2440 +U 9550 ; WX 602 ; N uni254E ; G 2441 +U 9551 ; WX 602 ; N uni254F ; G 2442 +U 9552 ; WX 602 ; N SF430000 ; G 2443 +U 9553 ; WX 602 ; N SF240000 ; G 2444 +U 9554 ; WX 602 ; N SF510000 ; G 2445 +U 9555 ; WX 602 ; N SF520000 ; G 2446 +U 9556 ; WX 602 ; N SF390000 ; G 2447 +U 9557 ; WX 602 ; N SF220000 ; G 2448 +U 9558 ; WX 602 ; N SF210000 ; G 2449 +U 9559 ; WX 602 ; N SF250000 ; G 2450 +U 9560 ; WX 602 ; N SF500000 ; G 2451 +U 9561 ; WX 602 ; N SF490000 ; G 2452 +U 9562 ; WX 602 ; N SF380000 ; G 2453 +U 9563 ; WX 602 ; N SF280000 ; G 2454 +U 9564 ; WX 602 ; N SF270000 ; G 2455 +U 9565 ; WX 602 ; N SF260000 ; G 2456 +U 9566 ; WX 602 ; N SF360000 ; G 2457 +U 9567 ; WX 602 ; N SF370000 ; G 2458 +U 9568 ; WX 602 ; N SF420000 ; G 2459 +U 9569 ; WX 602 ; N SF190000 ; G 2460 +U 9570 ; WX 602 ; N SF200000 ; G 2461 +U 9571 ; WX 602 ; N SF230000 ; G 2462 +U 9572 ; WX 602 ; N SF470000 ; G 2463 +U 9573 ; WX 602 ; N SF480000 ; G 2464 +U 9574 ; WX 602 ; N SF410000 ; G 2465 +U 9575 ; WX 602 ; N SF450000 ; G 2466 +U 9576 ; WX 602 ; N SF460000 ; G 2467 +U 9577 ; WX 602 ; N SF400000 ; G 2468 +U 9578 ; WX 602 ; N SF540000 ; G 2469 +U 9579 ; WX 602 ; N SF530000 ; G 2470 +U 9580 ; WX 602 ; N SF440000 ; G 2471 +U 9581 ; WX 602 ; N uni256D ; G 2472 +U 9582 ; WX 602 ; N uni256E ; G 2473 +U 9583 ; WX 602 ; N uni256F ; G 2474 +U 9584 ; WX 602 ; N uni2570 ; G 2475 +U 9585 ; WX 602 ; N uni2571 ; G 2476 +U 9586 ; WX 602 ; N uni2572 ; G 2477 +U 9587 ; WX 602 ; N uni2573 ; G 2478 +U 9588 ; WX 602 ; N uni2574 ; G 2479 +U 9589 ; WX 602 ; N uni2575 ; G 2480 +U 9590 ; WX 602 ; N uni2576 ; G 2481 +U 9591 ; WX 602 ; N uni2577 ; G 2482 +U 9592 ; WX 602 ; N uni2578 ; G 2483 +U 9593 ; WX 602 ; N uni2579 ; G 2484 +U 9594 ; WX 602 ; N uni257A ; G 2485 +U 9595 ; WX 602 ; N uni257B ; G 2486 +U 9596 ; WX 602 ; N uni257C ; G 2487 +U 9597 ; WX 602 ; N uni257D ; G 2488 +U 9598 ; WX 602 ; N uni257E ; G 2489 +U 9599 ; WX 602 ; N uni257F ; G 2490 +U 9600 ; WX 769 ; N upblock ; G 2491 +U 9601 ; WX 769 ; N uni2581 ; G 2492 +U 9602 ; WX 769 ; N uni2582 ; G 2493 +U 9603 ; WX 769 ; N uni2583 ; G 2494 +U 9604 ; WX 769 ; N dnblock ; G 2495 +U 9605 ; WX 769 ; N uni2585 ; G 2496 +U 9606 ; WX 769 ; N uni2586 ; G 2497 +U 9607 ; WX 769 ; N uni2587 ; G 2498 +U 9608 ; WX 769 ; N block ; G 2499 +U 9609 ; WX 769 ; N uni2589 ; G 2500 +U 9610 ; WX 769 ; N uni258A ; G 2501 +U 9611 ; WX 769 ; N uni258B ; G 2502 +U 9612 ; WX 769 ; N lfblock ; G 2503 +U 9613 ; WX 769 ; N uni258D ; G 2504 +U 9614 ; WX 769 ; N uni258E ; G 2505 +U 9615 ; WX 769 ; N uni258F ; G 2506 +U 9616 ; WX 769 ; N rtblock ; G 2507 +U 9617 ; WX 769 ; N ltshade ; G 2508 +U 9618 ; WX 769 ; N shade ; G 2509 +U 9619 ; WX 769 ; N dkshade ; G 2510 +U 9620 ; WX 769 ; N uni2594 ; G 2511 +U 9621 ; WX 769 ; N uni2595 ; G 2512 +U 9622 ; WX 769 ; N uni2596 ; G 2513 +U 9623 ; WX 769 ; N uni2597 ; G 2514 +U 9624 ; WX 769 ; N uni2598 ; G 2515 +U 9625 ; WX 769 ; N uni2599 ; G 2516 +U 9626 ; WX 769 ; N uni259A ; G 2517 +U 9627 ; WX 769 ; N uni259B ; G 2518 +U 9628 ; WX 769 ; N uni259C ; G 2519 +U 9629 ; WX 769 ; N uni259D ; G 2520 +U 9630 ; WX 769 ; N uni259E ; G 2521 +U 9631 ; WX 769 ; N uni259F ; G 2522 +U 9632 ; WX 945 ; N filledbox ; G 2523 +U 9633 ; WX 945 ; N H22073 ; G 2524 +U 9634 ; WX 945 ; N uni25A2 ; G 2525 +U 9635 ; WX 945 ; N uni25A3 ; G 2526 +U 9636 ; WX 945 ; N uni25A4 ; G 2527 +U 9637 ; WX 945 ; N uni25A5 ; G 2528 +U 9638 ; WX 945 ; N uni25A6 ; G 2529 +U 9639 ; WX 945 ; N uni25A7 ; G 2530 +U 9640 ; WX 945 ; N uni25A8 ; G 2531 +U 9641 ; WX 945 ; N uni25A9 ; G 2532 +U 9642 ; WX 678 ; N H18543 ; G 2533 +U 9643 ; WX 678 ; N H18551 ; G 2534 +U 9644 ; WX 945 ; N filledrect ; G 2535 +U 9645 ; WX 945 ; N uni25AD ; G 2536 +U 9646 ; WX 550 ; N uni25AE ; G 2537 +U 9647 ; WX 550 ; N uni25AF ; G 2538 +U 9648 ; WX 769 ; N uni25B0 ; G 2539 +U 9649 ; WX 769 ; N uni25B1 ; G 2540 +U 9650 ; WX 769 ; N triagup ; G 2541 +U 9651 ; WX 769 ; N uni25B3 ; G 2542 +U 9652 ; WX 502 ; N uni25B4 ; G 2543 +U 9653 ; WX 502 ; N uni25B5 ; G 2544 +U 9654 ; WX 769 ; N uni25B6 ; G 2545 +U 9655 ; WX 769 ; N uni25B7 ; G 2546 +U 9656 ; WX 502 ; N uni25B8 ; G 2547 +U 9657 ; WX 502 ; N uni25B9 ; G 2548 +U 9658 ; WX 769 ; N triagrt ; G 2549 +U 9659 ; WX 769 ; N uni25BB ; G 2550 +U 9660 ; WX 769 ; N triagdn ; G 2551 +U 9661 ; WX 769 ; N uni25BD ; G 2552 +U 9662 ; WX 502 ; N uni25BE ; G 2553 +U 9663 ; WX 502 ; N uni25BF ; G 2554 +U 9664 ; WX 769 ; N uni25C0 ; G 2555 +U 9665 ; WX 769 ; N uni25C1 ; G 2556 +U 9666 ; WX 502 ; N uni25C2 ; G 2557 +U 9667 ; WX 502 ; N uni25C3 ; G 2558 +U 9668 ; WX 769 ; N triaglf ; G 2559 +U 9669 ; WX 769 ; N uni25C5 ; G 2560 +U 9670 ; WX 769 ; N uni25C6 ; G 2561 +U 9671 ; WX 769 ; N uni25C7 ; G 2562 +U 9672 ; WX 769 ; N uni25C8 ; G 2563 +U 9673 ; WX 873 ; N uni25C9 ; G 2564 +U 9674 ; WX 494 ; N lozenge ; G 2565 +U 9675 ; WX 873 ; N circle ; G 2566 +U 9676 ; WX 873 ; N uni25CC ; G 2567 +U 9677 ; WX 873 ; N uni25CD ; G 2568 +U 9678 ; WX 873 ; N uni25CE ; G 2569 +U 9679 ; WX 873 ; N H18533 ; G 2570 +U 9680 ; WX 873 ; N uni25D0 ; G 2571 +U 9681 ; WX 873 ; N uni25D1 ; G 2572 +U 9682 ; WX 873 ; N uni25D2 ; G 2573 +U 9683 ; WX 873 ; N uni25D3 ; G 2574 +U 9684 ; WX 873 ; N uni25D4 ; G 2575 +U 9685 ; WX 873 ; N uni25D5 ; G 2576 +U 9686 ; WX 527 ; N uni25D6 ; G 2577 +U 9687 ; WX 527 ; N uni25D7 ; G 2578 +U 9688 ; WX 791 ; N invbullet ; G 2579 +U 9689 ; WX 970 ; N invcircle ; G 2580 +U 9690 ; WX 970 ; N uni25DA ; G 2581 +U 9691 ; WX 970 ; N uni25DB ; G 2582 +U 9692 ; WX 387 ; N uni25DC ; G 2583 +U 9693 ; WX 387 ; N uni25DD ; G 2584 +U 9694 ; WX 387 ; N uni25DE ; G 2585 +U 9695 ; WX 387 ; N uni25DF ; G 2586 +U 9696 ; WX 873 ; N uni25E0 ; G 2587 +U 9697 ; WX 873 ; N uni25E1 ; G 2588 +U 9698 ; WX 769 ; N uni25E2 ; G 2589 +U 9699 ; WX 769 ; N uni25E3 ; G 2590 +U 9700 ; WX 769 ; N uni25E4 ; G 2591 +U 9701 ; WX 769 ; N uni25E5 ; G 2592 +U 9702 ; WX 590 ; N openbullet ; G 2593 +U 9703 ; WX 945 ; N uni25E7 ; G 2594 +U 9704 ; WX 945 ; N uni25E8 ; G 2595 +U 9705 ; WX 945 ; N uni25E9 ; G 2596 +U 9706 ; WX 945 ; N uni25EA ; G 2597 +U 9707 ; WX 945 ; N uni25EB ; G 2598 +U 9708 ; WX 769 ; N uni25EC ; G 2599 +U 9709 ; WX 769 ; N uni25ED ; G 2600 +U 9710 ; WX 769 ; N uni25EE ; G 2601 +U 9711 ; WX 1119 ; N uni25EF ; G 2602 +U 9712 ; WX 945 ; N uni25F0 ; G 2603 +U 9713 ; WX 945 ; N uni25F1 ; G 2604 +U 9714 ; WX 945 ; N uni25F2 ; G 2605 +U 9715 ; WX 945 ; N uni25F3 ; G 2606 +U 9716 ; WX 873 ; N uni25F4 ; G 2607 +U 9717 ; WX 873 ; N uni25F5 ; G 2608 +U 9718 ; WX 873 ; N uni25F6 ; G 2609 +U 9719 ; WX 873 ; N uni25F7 ; G 2610 +U 9720 ; WX 769 ; N uni25F8 ; G 2611 +U 9721 ; WX 769 ; N uni25F9 ; G 2612 +U 9722 ; WX 769 ; N uni25FA ; G 2613 +U 9723 ; WX 830 ; N uni25FB ; G 2614 +U 9724 ; WX 830 ; N uni25FC ; G 2615 +U 9725 ; WX 732 ; N uni25FD ; G 2616 +U 9726 ; WX 732 ; N uni25FE ; G 2617 +U 9727 ; WX 769 ; N uni25FF ; G 2618 +U 9728 ; WX 896 ; N uni2600 ; G 2619 +U 9784 ; WX 896 ; N uni2638 ; G 2620 +U 9785 ; WX 896 ; N uni2639 ; G 2621 +U 9786 ; WX 896 ; N smileface ; G 2622 +U 9787 ; WX 896 ; N invsmileface ; G 2623 +U 9788 ; WX 896 ; N sun ; G 2624 +U 9791 ; WX 614 ; N uni263F ; G 2625 +U 9792 ; WX 731 ; N female ; G 2626 +U 9793 ; WX 731 ; N uni2641 ; G 2627 +U 9794 ; WX 896 ; N male ; G 2628 +U 9795 ; WX 896 ; N uni2643 ; G 2629 +U 9796 ; WX 896 ; N uni2644 ; G 2630 +U 9797 ; WX 896 ; N uni2645 ; G 2631 +U 9798 ; WX 896 ; N uni2646 ; G 2632 +U 9799 ; WX 896 ; N uni2647 ; G 2633 +U 9824 ; WX 896 ; N spade ; G 2634 +U 9825 ; WX 896 ; N uni2661 ; G 2635 +U 9826 ; WX 896 ; N uni2662 ; G 2636 +U 9827 ; WX 896 ; N club ; G 2637 +U 9828 ; WX 896 ; N uni2664 ; G 2638 +U 9829 ; WX 896 ; N heart ; G 2639 +U 9830 ; WX 896 ; N diamond ; G 2640 +U 9831 ; WX 896 ; N uni2667 ; G 2641 +U 9833 ; WX 472 ; N uni2669 ; G 2642 +U 9834 ; WX 638 ; N musicalnote ; G 2643 +U 9835 ; WX 896 ; N musicalnotedbl ; G 2644 +U 9836 ; WX 896 ; N uni266C ; G 2645 +U 9837 ; WX 472 ; N uni266D ; G 2646 +U 9838 ; WX 357 ; N uni266E ; G 2647 +U 9839 ; WX 484 ; N uni266F ; G 2648 +U 10145 ; WX 838 ; N uni27A1 ; G 2649 +U 10181 ; WX 457 ; N uni27C5 ; G 2650 +U 10182 ; WX 457 ; N uni27C6 ; G 2651 +U 10208 ; WX 494 ; N uni27E0 ; G 2652 +U 10216 ; WX 457 ; N uni27E8 ; G 2653 +U 10217 ; WX 457 ; N uni27E9 ; G 2654 +U 10224 ; WX 838 ; N uni27F0 ; G 2655 +U 10225 ; WX 838 ; N uni27F1 ; G 2656 +U 10226 ; WX 838 ; N uni27F2 ; G 2657 +U 10227 ; WX 838 ; N uni27F3 ; G 2658 +U 10228 ; WX 1033 ; N uni27F4 ; G 2659 +U 10229 ; WX 1434 ; N uni27F5 ; G 2660 +U 10230 ; WX 1434 ; N uni27F6 ; G 2661 +U 10231 ; WX 1434 ; N uni27F7 ; G 2662 +U 10232 ; WX 1434 ; N uni27F8 ; G 2663 +U 10233 ; WX 1434 ; N uni27F9 ; G 2664 +U 10234 ; WX 1434 ; N uni27FA ; G 2665 +U 10235 ; WX 1434 ; N uni27FB ; G 2666 +U 10236 ; WX 1434 ; N uni27FC ; G 2667 +U 10237 ; WX 1434 ; N uni27FD ; G 2668 +U 10238 ; WX 1434 ; N uni27FE ; G 2669 +U 10239 ; WX 1434 ; N uni27FF ; G 2670 +U 10240 ; WX 781 ; N uni2800 ; G 2671 +U 10241 ; WX 781 ; N uni2801 ; G 2672 +U 10242 ; WX 781 ; N uni2802 ; G 2673 +U 10243 ; WX 781 ; N uni2803 ; G 2674 +U 10244 ; WX 781 ; N uni2804 ; G 2675 +U 10245 ; WX 781 ; N uni2805 ; G 2676 +U 10246 ; WX 781 ; N uni2806 ; G 2677 +U 10247 ; WX 781 ; N uni2807 ; G 2678 +U 10248 ; WX 781 ; N uni2808 ; G 2679 +U 10249 ; WX 781 ; N uni2809 ; G 2680 +U 10250 ; WX 781 ; N uni280A ; G 2681 +U 10251 ; WX 781 ; N uni280B ; G 2682 +U 10252 ; WX 781 ; N uni280C ; G 2683 +U 10253 ; WX 781 ; N uni280D ; G 2684 +U 10254 ; WX 781 ; N uni280E ; G 2685 +U 10255 ; WX 781 ; N uni280F ; G 2686 +U 10256 ; WX 781 ; N uni2810 ; G 2687 +U 10257 ; WX 781 ; N uni2811 ; G 2688 +U 10258 ; WX 781 ; N uni2812 ; G 2689 +U 10259 ; WX 781 ; N uni2813 ; G 2690 +U 10260 ; WX 781 ; N uni2814 ; G 2691 +U 10261 ; WX 781 ; N uni2815 ; G 2692 +U 10262 ; WX 781 ; N uni2816 ; G 2693 +U 10263 ; WX 781 ; N uni2817 ; G 2694 +U 10264 ; WX 781 ; N uni2818 ; G 2695 +U 10265 ; WX 781 ; N uni2819 ; G 2696 +U 10266 ; WX 781 ; N uni281A ; G 2697 +U 10267 ; WX 781 ; N uni281B ; G 2698 +U 10268 ; WX 781 ; N uni281C ; G 2699 +U 10269 ; WX 781 ; N uni281D ; G 2700 +U 10270 ; WX 781 ; N uni281E ; G 2701 +U 10271 ; WX 781 ; N uni281F ; G 2702 +U 10272 ; WX 781 ; N uni2820 ; G 2703 +U 10273 ; WX 781 ; N uni2821 ; G 2704 +U 10274 ; WX 781 ; N uni2822 ; G 2705 +U 10275 ; WX 781 ; N uni2823 ; G 2706 +U 10276 ; WX 781 ; N uni2824 ; G 2707 +U 10277 ; WX 781 ; N uni2825 ; G 2708 +U 10278 ; WX 781 ; N uni2826 ; G 2709 +U 10279 ; WX 781 ; N uni2827 ; G 2710 +U 10280 ; WX 781 ; N uni2828 ; G 2711 +U 10281 ; WX 781 ; N uni2829 ; G 2712 +U 10282 ; WX 781 ; N uni282A ; G 2713 +U 10283 ; WX 781 ; N uni282B ; G 2714 +U 10284 ; WX 781 ; N uni282C ; G 2715 +U 10285 ; WX 781 ; N uni282D ; G 2716 +U 10286 ; WX 781 ; N uni282E ; G 2717 +U 10287 ; WX 781 ; N uni282F ; G 2718 +U 10288 ; WX 781 ; N uni2830 ; G 2719 +U 10289 ; WX 781 ; N uni2831 ; G 2720 +U 10290 ; WX 781 ; N uni2832 ; G 2721 +U 10291 ; WX 781 ; N uni2833 ; G 2722 +U 10292 ; WX 781 ; N uni2834 ; G 2723 +U 10293 ; WX 781 ; N uni2835 ; G 2724 +U 10294 ; WX 781 ; N uni2836 ; G 2725 +U 10295 ; WX 781 ; N uni2837 ; G 2726 +U 10296 ; WX 781 ; N uni2838 ; G 2727 +U 10297 ; WX 781 ; N uni2839 ; G 2728 +U 10298 ; WX 781 ; N uni283A ; G 2729 +U 10299 ; WX 781 ; N uni283B ; G 2730 +U 10300 ; WX 781 ; N uni283C ; G 2731 +U 10301 ; WX 781 ; N uni283D ; G 2732 +U 10302 ; WX 781 ; N uni283E ; G 2733 +U 10303 ; WX 781 ; N uni283F ; G 2734 +U 10304 ; WX 781 ; N uni2840 ; G 2735 +U 10305 ; WX 781 ; N uni2841 ; G 2736 +U 10306 ; WX 781 ; N uni2842 ; G 2737 +U 10307 ; WX 781 ; N uni2843 ; G 2738 +U 10308 ; WX 781 ; N uni2844 ; G 2739 +U 10309 ; WX 781 ; N uni2845 ; G 2740 +U 10310 ; WX 781 ; N uni2846 ; G 2741 +U 10311 ; WX 781 ; N uni2847 ; G 2742 +U 10312 ; WX 781 ; N uni2848 ; G 2743 +U 10313 ; WX 781 ; N uni2849 ; G 2744 +U 10314 ; WX 781 ; N uni284A ; G 2745 +U 10315 ; WX 781 ; N uni284B ; G 2746 +U 10316 ; WX 781 ; N uni284C ; G 2747 +U 10317 ; WX 781 ; N uni284D ; G 2748 +U 10318 ; WX 781 ; N uni284E ; G 2749 +U 10319 ; WX 781 ; N uni284F ; G 2750 +U 10320 ; WX 781 ; N uni2850 ; G 2751 +U 10321 ; WX 781 ; N uni2851 ; G 2752 +U 10322 ; WX 781 ; N uni2852 ; G 2753 +U 10323 ; WX 781 ; N uni2853 ; G 2754 +U 10324 ; WX 781 ; N uni2854 ; G 2755 +U 10325 ; WX 781 ; N uni2855 ; G 2756 +U 10326 ; WX 781 ; N uni2856 ; G 2757 +U 10327 ; WX 781 ; N uni2857 ; G 2758 +U 10328 ; WX 781 ; N uni2858 ; G 2759 +U 10329 ; WX 781 ; N uni2859 ; G 2760 +U 10330 ; WX 781 ; N uni285A ; G 2761 +U 10331 ; WX 781 ; N uni285B ; G 2762 +U 10332 ; WX 781 ; N uni285C ; G 2763 +U 10333 ; WX 781 ; N uni285D ; G 2764 +U 10334 ; WX 781 ; N uni285E ; G 2765 +U 10335 ; WX 781 ; N uni285F ; G 2766 +U 10336 ; WX 781 ; N uni2860 ; G 2767 +U 10337 ; WX 781 ; N uni2861 ; G 2768 +U 10338 ; WX 781 ; N uni2862 ; G 2769 +U 10339 ; WX 781 ; N uni2863 ; G 2770 +U 10340 ; WX 781 ; N uni2864 ; G 2771 +U 10341 ; WX 781 ; N uni2865 ; G 2772 +U 10342 ; WX 781 ; N uni2866 ; G 2773 +U 10343 ; WX 781 ; N uni2867 ; G 2774 +U 10344 ; WX 781 ; N uni2868 ; G 2775 +U 10345 ; WX 781 ; N uni2869 ; G 2776 +U 10346 ; WX 781 ; N uni286A ; G 2777 +U 10347 ; WX 781 ; N uni286B ; G 2778 +U 10348 ; WX 781 ; N uni286C ; G 2779 +U 10349 ; WX 781 ; N uni286D ; G 2780 +U 10350 ; WX 781 ; N uni286E ; G 2781 +U 10351 ; WX 781 ; N uni286F ; G 2782 +U 10352 ; WX 781 ; N uni2870 ; G 2783 +U 10353 ; WX 781 ; N uni2871 ; G 2784 +U 10354 ; WX 781 ; N uni2872 ; G 2785 +U 10355 ; WX 781 ; N uni2873 ; G 2786 +U 10356 ; WX 781 ; N uni2874 ; G 2787 +U 10357 ; WX 781 ; N uni2875 ; G 2788 +U 10358 ; WX 781 ; N uni2876 ; G 2789 +U 10359 ; WX 781 ; N uni2877 ; G 2790 +U 10360 ; WX 781 ; N uni2878 ; G 2791 +U 10361 ; WX 781 ; N uni2879 ; G 2792 +U 10362 ; WX 781 ; N uni287A ; G 2793 +U 10363 ; WX 781 ; N uni287B ; G 2794 +U 10364 ; WX 781 ; N uni287C ; G 2795 +U 10365 ; WX 781 ; N uni287D ; G 2796 +U 10366 ; WX 781 ; N uni287E ; G 2797 +U 10367 ; WX 781 ; N uni287F ; G 2798 +U 10368 ; WX 781 ; N uni2880 ; G 2799 +U 10369 ; WX 781 ; N uni2881 ; G 2800 +U 10370 ; WX 781 ; N uni2882 ; G 2801 +U 10371 ; WX 781 ; N uni2883 ; G 2802 +U 10372 ; WX 781 ; N uni2884 ; G 2803 +U 10373 ; WX 781 ; N uni2885 ; G 2804 +U 10374 ; WX 781 ; N uni2886 ; G 2805 +U 10375 ; WX 781 ; N uni2887 ; G 2806 +U 10376 ; WX 781 ; N uni2888 ; G 2807 +U 10377 ; WX 781 ; N uni2889 ; G 2808 +U 10378 ; WX 781 ; N uni288A ; G 2809 +U 10379 ; WX 781 ; N uni288B ; G 2810 +U 10380 ; WX 781 ; N uni288C ; G 2811 +U 10381 ; WX 781 ; N uni288D ; G 2812 +U 10382 ; WX 781 ; N uni288E ; G 2813 +U 10383 ; WX 781 ; N uni288F ; G 2814 +U 10384 ; WX 781 ; N uni2890 ; G 2815 +U 10385 ; WX 781 ; N uni2891 ; G 2816 +U 10386 ; WX 781 ; N uni2892 ; G 2817 +U 10387 ; WX 781 ; N uni2893 ; G 2818 +U 10388 ; WX 781 ; N uni2894 ; G 2819 +U 10389 ; WX 781 ; N uni2895 ; G 2820 +U 10390 ; WX 781 ; N uni2896 ; G 2821 +U 10391 ; WX 781 ; N uni2897 ; G 2822 +U 10392 ; WX 781 ; N uni2898 ; G 2823 +U 10393 ; WX 781 ; N uni2899 ; G 2824 +U 10394 ; WX 781 ; N uni289A ; G 2825 +U 10395 ; WX 781 ; N uni289B ; G 2826 +U 10396 ; WX 781 ; N uni289C ; G 2827 +U 10397 ; WX 781 ; N uni289D ; G 2828 +U 10398 ; WX 781 ; N uni289E ; G 2829 +U 10399 ; WX 781 ; N uni289F ; G 2830 +U 10400 ; WX 781 ; N uni28A0 ; G 2831 +U 10401 ; WX 781 ; N uni28A1 ; G 2832 +U 10402 ; WX 781 ; N uni28A2 ; G 2833 +U 10403 ; WX 781 ; N uni28A3 ; G 2834 +U 10404 ; WX 781 ; N uni28A4 ; G 2835 +U 10405 ; WX 781 ; N uni28A5 ; G 2836 +U 10406 ; WX 781 ; N uni28A6 ; G 2837 +U 10407 ; WX 781 ; N uni28A7 ; G 2838 +U 10408 ; WX 781 ; N uni28A8 ; G 2839 +U 10409 ; WX 781 ; N uni28A9 ; G 2840 +U 10410 ; WX 781 ; N uni28AA ; G 2841 +U 10411 ; WX 781 ; N uni28AB ; G 2842 +U 10412 ; WX 781 ; N uni28AC ; G 2843 +U 10413 ; WX 781 ; N uni28AD ; G 2844 +U 10414 ; WX 781 ; N uni28AE ; G 2845 +U 10415 ; WX 781 ; N uni28AF ; G 2846 +U 10416 ; WX 781 ; N uni28B0 ; G 2847 +U 10417 ; WX 781 ; N uni28B1 ; G 2848 +U 10418 ; WX 781 ; N uni28B2 ; G 2849 +U 10419 ; WX 781 ; N uni28B3 ; G 2850 +U 10420 ; WX 781 ; N uni28B4 ; G 2851 +U 10421 ; WX 781 ; N uni28B5 ; G 2852 +U 10422 ; WX 781 ; N uni28B6 ; G 2853 +U 10423 ; WX 781 ; N uni28B7 ; G 2854 +U 10424 ; WX 781 ; N uni28B8 ; G 2855 +U 10425 ; WX 781 ; N uni28B9 ; G 2856 +U 10426 ; WX 781 ; N uni28BA ; G 2857 +U 10427 ; WX 781 ; N uni28BB ; G 2858 +U 10428 ; WX 781 ; N uni28BC ; G 2859 +U 10429 ; WX 781 ; N uni28BD ; G 2860 +U 10430 ; WX 781 ; N uni28BE ; G 2861 +U 10431 ; WX 781 ; N uni28BF ; G 2862 +U 10432 ; WX 781 ; N uni28C0 ; G 2863 +U 10433 ; WX 781 ; N uni28C1 ; G 2864 +U 10434 ; WX 781 ; N uni28C2 ; G 2865 +U 10435 ; WX 781 ; N uni28C3 ; G 2866 +U 10436 ; WX 781 ; N uni28C4 ; G 2867 +U 10437 ; WX 781 ; N uni28C5 ; G 2868 +U 10438 ; WX 781 ; N uni28C6 ; G 2869 +U 10439 ; WX 781 ; N uni28C7 ; G 2870 +U 10440 ; WX 781 ; N uni28C8 ; G 2871 +U 10441 ; WX 781 ; N uni28C9 ; G 2872 +U 10442 ; WX 781 ; N uni28CA ; G 2873 +U 10443 ; WX 781 ; N uni28CB ; G 2874 +U 10444 ; WX 781 ; N uni28CC ; G 2875 +U 10445 ; WX 781 ; N uni28CD ; G 2876 +U 10446 ; WX 781 ; N uni28CE ; G 2877 +U 10447 ; WX 781 ; N uni28CF ; G 2878 +U 10448 ; WX 781 ; N uni28D0 ; G 2879 +U 10449 ; WX 781 ; N uni28D1 ; G 2880 +U 10450 ; WX 781 ; N uni28D2 ; G 2881 +U 10451 ; WX 781 ; N uni28D3 ; G 2882 +U 10452 ; WX 781 ; N uni28D4 ; G 2883 +U 10453 ; WX 781 ; N uni28D5 ; G 2884 +U 10454 ; WX 781 ; N uni28D6 ; G 2885 +U 10455 ; WX 781 ; N uni28D7 ; G 2886 +U 10456 ; WX 781 ; N uni28D8 ; G 2887 +U 10457 ; WX 781 ; N uni28D9 ; G 2888 +U 10458 ; WX 781 ; N uni28DA ; G 2889 +U 10459 ; WX 781 ; N uni28DB ; G 2890 +U 10460 ; WX 781 ; N uni28DC ; G 2891 +U 10461 ; WX 781 ; N uni28DD ; G 2892 +U 10462 ; WX 781 ; N uni28DE ; G 2893 +U 10463 ; WX 781 ; N uni28DF ; G 2894 +U 10464 ; WX 781 ; N uni28E0 ; G 2895 +U 10465 ; WX 781 ; N uni28E1 ; G 2896 +U 10466 ; WX 781 ; N uni28E2 ; G 2897 +U 10467 ; WX 781 ; N uni28E3 ; G 2898 +U 10468 ; WX 781 ; N uni28E4 ; G 2899 +U 10469 ; WX 781 ; N uni28E5 ; G 2900 +U 10470 ; WX 781 ; N uni28E6 ; G 2901 +U 10471 ; WX 781 ; N uni28E7 ; G 2902 +U 10472 ; WX 781 ; N uni28E8 ; G 2903 +U 10473 ; WX 781 ; N uni28E9 ; G 2904 +U 10474 ; WX 781 ; N uni28EA ; G 2905 +U 10475 ; WX 781 ; N uni28EB ; G 2906 +U 10476 ; WX 781 ; N uni28EC ; G 2907 +U 10477 ; WX 781 ; N uni28ED ; G 2908 +U 10478 ; WX 781 ; N uni28EE ; G 2909 +U 10479 ; WX 781 ; N uni28EF ; G 2910 +U 10480 ; WX 781 ; N uni28F0 ; G 2911 +U 10481 ; WX 781 ; N uni28F1 ; G 2912 +U 10482 ; WX 781 ; N uni28F2 ; G 2913 +U 10483 ; WX 781 ; N uni28F3 ; G 2914 +U 10484 ; WX 781 ; N uni28F4 ; G 2915 +U 10485 ; WX 781 ; N uni28F5 ; G 2916 +U 10486 ; WX 781 ; N uni28F6 ; G 2917 +U 10487 ; WX 781 ; N uni28F7 ; G 2918 +U 10488 ; WX 781 ; N uni28F8 ; G 2919 +U 10489 ; WX 781 ; N uni28F9 ; G 2920 +U 10490 ; WX 781 ; N uni28FA ; G 2921 +U 10491 ; WX 781 ; N uni28FB ; G 2922 +U 10492 ; WX 781 ; N uni28FC ; G 2923 +U 10493 ; WX 781 ; N uni28FD ; G 2924 +U 10494 ; WX 781 ; N uni28FE ; G 2925 +U 10495 ; WX 781 ; N uni28FF ; G 2926 +U 10496 ; WX 838 ; N uni2900 ; G 2927 +U 10497 ; WX 838 ; N uni2901 ; G 2928 +U 10498 ; WX 838 ; N uni2902 ; G 2929 +U 10499 ; WX 838 ; N uni2903 ; G 2930 +U 10500 ; WX 838 ; N uni2904 ; G 2931 +U 10501 ; WX 838 ; N uni2905 ; G 2932 +U 10502 ; WX 838 ; N uni2906 ; G 2933 +U 10503 ; WX 838 ; N uni2907 ; G 2934 +U 10504 ; WX 838 ; N uni2908 ; G 2935 +U 10505 ; WX 838 ; N uni2909 ; G 2936 +U 10506 ; WX 838 ; N uni290A ; G 2937 +U 10507 ; WX 838 ; N uni290B ; G 2938 +U 10508 ; WX 838 ; N uni290C ; G 2939 +U 10509 ; WX 838 ; N uni290D ; G 2940 +U 10510 ; WX 838 ; N uni290E ; G 2941 +U 10511 ; WX 838 ; N uni290F ; G 2942 +U 10512 ; WX 838 ; N uni2910 ; G 2943 +U 10513 ; WX 838 ; N uni2911 ; G 2944 +U 10514 ; WX 838 ; N uni2912 ; G 2945 +U 10515 ; WX 838 ; N uni2913 ; G 2946 +U 10516 ; WX 838 ; N uni2914 ; G 2947 +U 10517 ; WX 838 ; N uni2915 ; G 2948 +U 10518 ; WX 838 ; N uni2916 ; G 2949 +U 10519 ; WX 838 ; N uni2917 ; G 2950 +U 10520 ; WX 838 ; N uni2918 ; G 2951 +U 10521 ; WX 838 ; N uni2919 ; G 2952 +U 10522 ; WX 838 ; N uni291A ; G 2953 +U 10523 ; WX 838 ; N uni291B ; G 2954 +U 10524 ; WX 838 ; N uni291C ; G 2955 +U 10525 ; WX 838 ; N uni291D ; G 2956 +U 10526 ; WX 838 ; N uni291E ; G 2957 +U 10527 ; WX 838 ; N uni291F ; G 2958 +U 10528 ; WX 838 ; N uni2920 ; G 2959 +U 10529 ; WX 838 ; N uni2921 ; G 2960 +U 10530 ; WX 838 ; N uni2922 ; G 2961 +U 10531 ; WX 838 ; N uni2923 ; G 2962 +U 10532 ; WX 838 ; N uni2924 ; G 2963 +U 10533 ; WX 838 ; N uni2925 ; G 2964 +U 10534 ; WX 838 ; N uni2926 ; G 2965 +U 10535 ; WX 838 ; N uni2927 ; G 2966 +U 10536 ; WX 838 ; N uni2928 ; G 2967 +U 10537 ; WX 838 ; N uni2929 ; G 2968 +U 10538 ; WX 838 ; N uni292A ; G 2969 +U 10539 ; WX 838 ; N uni292B ; G 2970 +U 10540 ; WX 838 ; N uni292C ; G 2971 +U 10541 ; WX 838 ; N uni292D ; G 2972 +U 10542 ; WX 838 ; N uni292E ; G 2973 +U 10543 ; WX 838 ; N uni292F ; G 2974 +U 10544 ; WX 838 ; N uni2930 ; G 2975 +U 10545 ; WX 838 ; N uni2931 ; G 2976 +U 10546 ; WX 838 ; N uni2932 ; G 2977 +U 10547 ; WX 838 ; N uni2933 ; G 2978 +U 10548 ; WX 838 ; N uni2934 ; G 2979 +U 10549 ; WX 838 ; N uni2935 ; G 2980 +U 10550 ; WX 838 ; N uni2936 ; G 2981 +U 10551 ; WX 838 ; N uni2937 ; G 2982 +U 10552 ; WX 838 ; N uni2938 ; G 2983 +U 10553 ; WX 838 ; N uni2939 ; G 2984 +U 10554 ; WX 838 ; N uni293A ; G 2985 +U 10555 ; WX 838 ; N uni293B ; G 2986 +U 10556 ; WX 838 ; N uni293C ; G 2987 +U 10557 ; WX 838 ; N uni293D ; G 2988 +U 10558 ; WX 838 ; N uni293E ; G 2989 +U 10559 ; WX 838 ; N uni293F ; G 2990 +U 10560 ; WX 838 ; N uni2940 ; G 2991 +U 10561 ; WX 838 ; N uni2941 ; G 2992 +U 10562 ; WX 838 ; N uni2942 ; G 2993 +U 10563 ; WX 838 ; N uni2943 ; G 2994 +U 10564 ; WX 838 ; N uni2944 ; G 2995 +U 10565 ; WX 838 ; N uni2945 ; G 2996 +U 10566 ; WX 838 ; N uni2946 ; G 2997 +U 10567 ; WX 838 ; N uni2947 ; G 2998 +U 10568 ; WX 838 ; N uni2948 ; G 2999 +U 10569 ; WX 838 ; N uni2949 ; G 3000 +U 10570 ; WX 838 ; N uni294A ; G 3001 +U 10571 ; WX 838 ; N uni294B ; G 3002 +U 10572 ; WX 838 ; N uni294C ; G 3003 +U 10573 ; WX 838 ; N uni294D ; G 3004 +U 10574 ; WX 838 ; N uni294E ; G 3005 +U 10575 ; WX 838 ; N uni294F ; G 3006 +U 10576 ; WX 838 ; N uni2950 ; G 3007 +U 10577 ; WX 838 ; N uni2951 ; G 3008 +U 10578 ; WX 838 ; N uni2952 ; G 3009 +U 10579 ; WX 838 ; N uni2953 ; G 3010 +U 10580 ; WX 838 ; N uni2954 ; G 3011 +U 10581 ; WX 838 ; N uni2955 ; G 3012 +U 10582 ; WX 838 ; N uni2956 ; G 3013 +U 10583 ; WX 838 ; N uni2957 ; G 3014 +U 10584 ; WX 838 ; N uni2958 ; G 3015 +U 10585 ; WX 838 ; N uni2959 ; G 3016 +U 10586 ; WX 838 ; N uni295A ; G 3017 +U 10587 ; WX 838 ; N uni295B ; G 3018 +U 10588 ; WX 838 ; N uni295C ; G 3019 +U 10589 ; WX 838 ; N uni295D ; G 3020 +U 10590 ; WX 838 ; N uni295E ; G 3021 +U 10591 ; WX 838 ; N uni295F ; G 3022 +U 10592 ; WX 838 ; N uni2960 ; G 3023 +U 10593 ; WX 838 ; N uni2961 ; G 3024 +U 10594 ; WX 838 ; N uni2962 ; G 3025 +U 10595 ; WX 838 ; N uni2963 ; G 3026 +U 10596 ; WX 838 ; N uni2964 ; G 3027 +U 10597 ; WX 838 ; N uni2965 ; G 3028 +U 10598 ; WX 838 ; N uni2966 ; G 3029 +U 10599 ; WX 838 ; N uni2967 ; G 3030 +U 10600 ; WX 838 ; N uni2968 ; G 3031 +U 10601 ; WX 838 ; N uni2969 ; G 3032 +U 10602 ; WX 838 ; N uni296A ; G 3033 +U 10603 ; WX 838 ; N uni296B ; G 3034 +U 10604 ; WX 838 ; N uni296C ; G 3035 +U 10605 ; WX 838 ; N uni296D ; G 3036 +U 10606 ; WX 838 ; N uni296E ; G 3037 +U 10607 ; WX 838 ; N uni296F ; G 3038 +U 10608 ; WX 838 ; N uni2970 ; G 3039 +U 10609 ; WX 838 ; N uni2971 ; G 3040 +U 10610 ; WX 838 ; N uni2972 ; G 3041 +U 10611 ; WX 838 ; N uni2973 ; G 3042 +U 10612 ; WX 838 ; N uni2974 ; G 3043 +U 10613 ; WX 838 ; N uni2975 ; G 3044 +U 10614 ; WX 838 ; N uni2976 ; G 3045 +U 10615 ; WX 1032 ; N uni2977 ; G 3046 +U 10616 ; WX 838 ; N uni2978 ; G 3047 +U 10617 ; WX 838 ; N uni2979 ; G 3048 +U 10618 ; WX 960 ; N uni297A ; G 3049 +U 10619 ; WX 838 ; N uni297B ; G 3050 +U 10620 ; WX 838 ; N uni297C ; G 3051 +U 10621 ; WX 838 ; N uni297D ; G 3052 +U 10622 ; WX 838 ; N uni297E ; G 3053 +U 10623 ; WX 838 ; N uni297F ; G 3054 +U 10731 ; WX 494 ; N uni29EB ; G 3055 +U 10764 ; WX 1782 ; N uni2A0C ; G 3056 +U 10765 ; WX 610 ; N uni2A0D ; G 3057 +U 10766 ; WX 610 ; N uni2A0E ; G 3058 +U 10799 ; WX 838 ; N uni2A2F ; G 3059 +U 10858 ; WX 838 ; N uni2A6A ; G 3060 +U 10859 ; WX 838 ; N uni2A6B ; G 3061 +U 11008 ; WX 838 ; N uni2B00 ; G 3062 +U 11009 ; WX 838 ; N uni2B01 ; G 3063 +U 11010 ; WX 838 ; N uni2B02 ; G 3064 +U 11011 ; WX 838 ; N uni2B03 ; G 3065 +U 11012 ; WX 838 ; N uni2B04 ; G 3066 +U 11013 ; WX 838 ; N uni2B05 ; G 3067 +U 11014 ; WX 838 ; N uni2B06 ; G 3068 +U 11015 ; WX 838 ; N uni2B07 ; G 3069 +U 11016 ; WX 838 ; N uni2B08 ; G 3070 +U 11017 ; WX 838 ; N uni2B09 ; G 3071 +U 11018 ; WX 838 ; N uni2B0A ; G 3072 +U 11019 ; WX 838 ; N uni2B0B ; G 3073 +U 11020 ; WX 838 ; N uni2B0C ; G 3074 +U 11021 ; WX 838 ; N uni2B0D ; G 3075 +U 11022 ; WX 838 ; N uni2B0E ; G 3076 +U 11023 ; WX 838 ; N uni2B0F ; G 3077 +U 11024 ; WX 838 ; N uni2B10 ; G 3078 +U 11025 ; WX 838 ; N uni2B11 ; G 3079 +U 11026 ; WX 945 ; N uni2B12 ; G 3080 +U 11027 ; WX 945 ; N uni2B13 ; G 3081 +U 11028 ; WX 945 ; N uni2B14 ; G 3082 +U 11029 ; WX 945 ; N uni2B15 ; G 3083 +U 11030 ; WX 769 ; N uni2B16 ; G 3084 +U 11031 ; WX 769 ; N uni2B17 ; G 3085 +U 11032 ; WX 769 ; N uni2B18 ; G 3086 +U 11033 ; WX 769 ; N uni2B19 ; G 3087 +U 11034 ; WX 945 ; N uni2B1A ; G 3088 +U 11360 ; WX 703 ; N uni2C60 ; G 3089 +U 11361 ; WX 380 ; N uni2C61 ; G 3090 +U 11363 ; WX 752 ; N uni2C63 ; G 3091 +U 11364 ; WX 831 ; N uni2C64 ; G 3092 +U 11367 ; WX 945 ; N uni2C67 ; G 3093 +U 11368 ; WX 727 ; N uni2C68 ; G 3094 +U 11369 ; WX 869 ; N uni2C69 ; G 3095 +U 11370 ; WX 693 ; N uni2C6A ; G 3096 +U 11371 ; WX 730 ; N uni2C6B ; G 3097 +U 11372 ; WX 568 ; N uni2C6C ; G 3098 +U 11373 ; WX 848 ; N uni2C6D ; G 3099 +U 11374 ; WX 1107 ; N uni2C6E ; G 3100 +U 11375 ; WX 776 ; N uni2C6F ; G 3101 +U 11376 ; WX 848 ; N uni2C70 ; G 3102 +U 11377 ; WX 709 ; N uni2C71 ; G 3103 +U 11378 ; WX 1221 ; N uni2C72 ; G 3104 +U 11379 ; WX 984 ; N uni2C73 ; G 3105 +U 11381 ; WX 779 ; N uni2C75 ; G 3106 +U 11382 ; WX 576 ; N uni2C76 ; G 3107 +U 11383 ; WX 905 ; N uni2C77 ; G 3108 +U 11385 ; WX 571 ; N uni2C79 ; G 3109 +U 11386 ; WX 667 ; N uni2C7A ; G 3110 +U 11387 ; WX 617 ; N uni2C7B ; G 3111 +U 11388 ; WX 313 ; N uni2C7C ; G 3112 +U 11389 ; WX 489 ; N uni2C7D ; G 3113 +U 11390 ; WX 722 ; N uni2C7E ; G 3114 +U 11391 ; WX 730 ; N uni2C7F ; G 3115 +U 11520 ; WX 773 ; N uni2D00 ; G 3116 +U 11521 ; WX 635 ; N uni2D01 ; G 3117 +U 11522 ; WX 804 ; N uni2D02 ; G 3118 +U 11523 ; WX 658 ; N uni2D03 ; G 3119 +U 11524 ; WX 788 ; N uni2D04 ; G 3120 +U 11525 ; WX 962 ; N uni2D05 ; G 3121 +U 11526 ; WX 756 ; N uni2D06 ; G 3122 +U 11527 ; WX 960 ; N uni2D07 ; G 3123 +U 11528 ; WX 617 ; N uni2D08 ; G 3124 +U 11529 ; WX 646 ; N uni2D09 ; G 3125 +U 11530 ; WX 962 ; N uni2D0A ; G 3126 +U 11531 ; WX 631 ; N uni2D0B ; G 3127 +U 11532 ; WX 646 ; N uni2D0C ; G 3128 +U 11533 ; WX 962 ; N uni2D0D ; G 3129 +U 11534 ; WX 846 ; N uni2D0E ; G 3130 +U 11535 ; WX 866 ; N uni2D0F ; G 3131 +U 11536 ; WX 961 ; N uni2D10 ; G 3132 +U 11537 ; WX 645 ; N uni2D11 ; G 3133 +U 11538 ; WX 645 ; N uni2D12 ; G 3134 +U 11539 ; WX 959 ; N uni2D13 ; G 3135 +U 11540 ; WX 945 ; N uni2D14 ; G 3136 +U 11541 ; WX 863 ; N uni2D15 ; G 3137 +U 11542 ; WX 644 ; N uni2D16 ; G 3138 +U 11543 ; WX 646 ; N uni2D17 ; G 3139 +U 11544 ; WX 645 ; N uni2D18 ; G 3140 +U 11545 ; WX 649 ; N uni2D19 ; G 3141 +U 11546 ; WX 688 ; N uni2D1A ; G 3142 +U 11547 ; WX 936 ; N uni2D1B ; G 3143 +U 11548 ; WX 982 ; N uni2D1C ; G 3144 +U 11549 ; WX 681 ; N uni2D1D ; G 3145 +U 11550 ; WX 676 ; N uni2D1E ; G 3146 +U 11551 ; WX 852 ; N uni2D1F ; G 3147 +U 11552 ; WX 1113 ; N uni2D20 ; G 3148 +U 11553 ; WX 632 ; N uni2D21 ; G 3149 +U 11554 ; WX 645 ; N uni2D22 ; G 3150 +U 11555 ; WX 646 ; N uni2D23 ; G 3151 +U 11556 ; WX 749 ; N uni2D24 ; G 3152 +U 11557 ; WX 914 ; N uni2D25 ; G 3153 +U 11800 ; WX 586 ; N uni2E18 ; G 3154 +U 11807 ; WX 838 ; N uni2E1F ; G 3155 +U 11810 ; WX 473 ; N uni2E22 ; G 3156 +U 11811 ; WX 473 ; N uni2E23 ; G 3157 +U 11812 ; WX 473 ; N uni2E24 ; G 3158 +U 11813 ; WX 473 ; N uni2E25 ; G 3159 +U 11822 ; WX 586 ; N uni2E2E ; G 3160 +U 42564 ; WX 722 ; N uniA644 ; G 3161 +U 42565 ; WX 563 ; N uniA645 ; G 3162 +U 42566 ; WX 468 ; N uniA646 ; G 3163 +U 42567 ; WX 380 ; N uniA647 ; G 3164 +U 42576 ; WX 1333 ; N uniA650 ; G 3165 +U 42577 ; WX 1085 ; N uniA651 ; G 3166 +U 42580 ; WX 1287 ; N uniA654 ; G 3167 +U 42581 ; WX 1025 ; N uniA655 ; G 3168 +U 42582 ; WX 1287 ; N uniA656 ; G 3169 +U 42583 ; WX 1029 ; N uniA657 ; G 3170 +U 42648 ; WX 1448 ; N uniA698 ; G 3171 +U 42649 ; WX 1060 ; N uniA699 ; G 3172 +U 42760 ; WX 500 ; N uniA708 ; G 3173 +U 42761 ; WX 500 ; N uniA709 ; G 3174 +U 42762 ; WX 500 ; N uniA70A ; G 3175 +U 42763 ; WX 500 ; N uniA70B ; G 3176 +U 42764 ; WX 500 ; N uniA70C ; G 3177 +U 42765 ; WX 500 ; N uniA70D ; G 3178 +U 42766 ; WX 500 ; N uniA70E ; G 3179 +U 42767 ; WX 500 ; N uniA70F ; G 3180 +U 42768 ; WX 500 ; N uniA710 ; G 3181 +U 42769 ; WX 500 ; N uniA711 ; G 3182 +U 42770 ; WX 500 ; N uniA712 ; G 3183 +U 42771 ; WX 500 ; N uniA713 ; G 3184 +U 42772 ; WX 500 ; N uniA714 ; G 3185 +U 42773 ; WX 500 ; N uniA715 ; G 3186 +U 42774 ; WX 500 ; N uniA716 ; G 3187 +U 42779 ; WX 384 ; N uniA71B ; G 3188 +U 42780 ; WX 384 ; N uniA71C ; G 3189 +U 42781 ; WX 276 ; N uniA71D ; G 3190 +U 42782 ; WX 276 ; N uniA71E ; G 3191 +U 42783 ; WX 276 ; N uniA71F ; G 3192 +U 42790 ; WX 945 ; N uniA726 ; G 3193 +U 42791 ; WX 712 ; N uniA727 ; G 3194 +U 42792 ; WX 1003 ; N uniA728 ; G 3195 +U 42793 ; WX 909 ; N uniA729 ; G 3196 +U 42794 ; WX 696 ; N uniA72A ; G 3197 +U 42795 ; WX 609 ; N uniA72B ; G 3198 +U 42796 ; WX 634 ; N uniA72C ; G 3199 +U 42797 ; WX 598 ; N uniA72D ; G 3200 +U 42798 ; WX 741 ; N uniA72E ; G 3201 +U 42799 ; WX 706 ; N uniA72F ; G 3202 +U 42800 ; WX 592 ; N uniA730 ; G 3203 +U 42801 ; WX 563 ; N uniA731 ; G 3204 +U 42802 ; WX 1301 ; N uniA732 ; G 3205 +U 42803 ; WX 983 ; N uniA733 ; G 3206 +U 42804 ; WX 1261 ; N uniA734 ; G 3207 +U 42805 ; WX 985 ; N uniA735 ; G 3208 +U 42806 ; WX 1168 ; N uniA736 ; G 3209 +U 42807 ; WX 1007 ; N uniA737 ; G 3210 +U 42808 ; WX 1016 ; N uniA738 ; G 3211 +U 42809 ; WX 832 ; N uniA739 ; G 3212 +U 42810 ; WX 1016 ; N uniA73A ; G 3213 +U 42811 ; WX 832 ; N uniA73B ; G 3214 +U 42812 ; WX 994 ; N uniA73C ; G 3215 +U 42813 ; WX 746 ; N uniA73D ; G 3216 +U 42814 ; WX 796 ; N uniA73E ; G 3217 +U 42815 ; WX 609 ; N uniA73F ; G 3218 +U 42816 ; WX 869 ; N uniA740 ; G 3219 +U 42817 ; WX 693 ; N uniA741 ; G 3220 +U 42822 ; WX 916 ; N uniA746 ; G 3221 +U 42823 ; WX 581 ; N uniA747 ; G 3222 +U 42826 ; WX 1010 ; N uniA74A ; G 3223 +U 42827 ; WX 770 ; N uniA74B ; G 3224 +U 42830 ; WX 1448 ; N uniA74E ; G 3225 +U 42831 ; WX 1060 ; N uniA74F ; G 3226 +U 42856 ; WX 787 ; N uniA768 ; G 3227 +U 42857 ; WX 716 ; N uniA769 ; G 3228 +U 42875 ; WX 694 ; N uniA77B ; G 3229 +U 42876 ; WX 527 ; N uniA77C ; G 3230 +U 42880 ; WX 703 ; N uniA780 ; G 3231 +U 42881 ; WX 380 ; N uniA781 ; G 3232 +U 42882 ; WX 872 ; N uniA782 ; G 3233 +U 42883 ; WX 727 ; N uniA783 ; G 3234 +U 42884 ; WX 694 ; N uniA784 ; G 3235 +U 42885 ; WX 527 ; N uniA785 ; G 3236 +U 42886 ; WX 796 ; N uniA786 ; G 3237 +U 42887 ; WX 609 ; N uniA787 ; G 3238 +U 42891 ; WX 439 ; N uniA78B ; G 3239 +U 42892 ; WX 306 ; N uniA78C ; G 3240 +U 42893 ; WX 913 ; N uniA78D ; G 3241 +U 42896 ; WX 914 ; N uniA790 ; G 3242 +U 42897 ; WX 812 ; N uniA791 ; G 3243 +U 42922 ; WX 945 ; N uniA7AA ; G 3244 +U 43000 ; WX 595 ; N uniA7F8 ; G 3245 +U 43001 ; WX 647 ; N uniA7F9 ; G 3246 +U 43002 ; WX 1068 ; N uniA7FA ; G 3247 +U 43003 ; WX 710 ; N uniA7FB ; G 3248 +U 43004 ; WX 752 ; N uniA7FC ; G 3249 +U 43005 ; WX 1107 ; N uniA7FD ; G 3250 +U 43006 ; WX 468 ; N uniA7FE ; G 3251 +U 43007 ; WX 1286 ; N uniA7FF ; G 3252 +U 62464 ; WX 726 ; N uniF400 ; G 3253 +U 62465 ; WX 737 ; N uniF401 ; G 3254 +U 62466 ; WX 786 ; N uniF402 ; G 3255 +U 62467 ; WX 1019 ; N uniF403 ; G 3256 +U 62468 ; WX 737 ; N uniF404 ; G 3257 +U 62469 ; WX 731 ; N uniF405 ; G 3258 +U 62470 ; WX 796 ; N uniF406 ; G 3259 +U 62471 ; WX 1058 ; N uniF407 ; G 3260 +U 62472 ; WX 737 ; N uniF408 ; G 3261 +U 62473 ; WX 737 ; N uniF409 ; G 3262 +U 62474 ; WX 1329 ; N uniF40A ; G 3263 +U 62475 ; WX 754 ; N uniF40B ; G 3264 +U 62476 ; WX 753 ; N uniF40C ; G 3265 +U 62477 ; WX 1024 ; N uniF40D ; G 3266 +U 62478 ; WX 737 ; N uniF40E ; G 3267 +U 62479 ; WX 753 ; N uniF40F ; G 3268 +U 62480 ; WX 1070 ; N uniF410 ; G 3269 +U 62481 ; WX 818 ; N uniF411 ; G 3270 +U 62482 ; WX 870 ; N uniF412 ; G 3271 +U 62483 ; WX 819 ; N uniF413 ; G 3272 +U 62484 ; WX 1016 ; N uniF414 ; G 3273 +U 62485 ; WX 753 ; N uniF415 ; G 3274 +U 62486 ; WX 1008 ; N uniF416 ; G 3275 +U 62487 ; WX 752 ; N uniF417 ; G 3276 +U 62488 ; WX 760 ; N uniF418 ; G 3277 +U 62489 ; WX 753 ; N uniF419 ; G 3278 +U 62490 ; WX 800 ; N uniF41A ; G 3279 +U 62491 ; WX 753 ; N uniF41B ; G 3280 +U 62492 ; WX 760 ; N uniF41C ; G 3281 +U 62493 ; WX 738 ; N uniF41D ; G 3282 +U 62494 ; WX 801 ; N uniF41E ; G 3283 +U 62495 ; WX 956 ; N uniF41F ; G 3284 +U 62496 ; WX 736 ; N uniF420 ; G 3285 +U 62497 ; WX 847 ; N uniF421 ; G 3286 +U 62498 ; WX 737 ; N uniF422 ; G 3287 +U 62499 ; WX 737 ; N uniF423 ; G 3288 +U 62500 ; WX 737 ; N uniF424 ; G 3289 +U 62501 ; WX 793 ; N uniF425 ; G 3290 +U 62502 ; WX 1033 ; N uniF426 ; G 3291 +U 62504 ; WX 904 ; N uniF428 ; G 3292 +U 63172 ; WX 380 ; N uniF6C4 ; G 3293 +U 63173 ; WX 667 ; N uniF6C5 ; G 3294 +U 63174 ; WX 699 ; N uniF6C6 ; G 3295 +U 63175 ; WX 727 ; N uniF6C7 ; G 3296 +U 63176 ; WX 1058 ; N uniF6C8 ; G 3297 +U 63185 ; WX 500 ; N cyrBreve ; G 3298 +U 63188 ; WX 500 ; N cyrbreve ; G 3299 +U 64256 ; WX 827 ; N uniFB00 ; G 3300 +U 64257 ; WX 727 ; N fi ; G 3301 +U 64258 ; WX 727 ; N fl ; G 3302 +U 64259 ; WX 1108 ; N uniFB03 ; G 3303 +U 64260 ; WX 1146 ; N uniFB04 ; G 3304 +U 64261 ; WX 879 ; N uniFB05 ; G 3305 +U 64262 ; WX 971 ; N uniFB06 ; G 3306 +U 65024 ; WX 0 ; N uniFE00 ; G 3307 +U 65025 ; WX 0 ; N uniFE01 ; G 3308 +U 65026 ; WX 0 ; N uniFE02 ; G 3309 +U 65027 ; WX 0 ; N uniFE03 ; G 3310 +U 65028 ; WX 0 ; N uniFE04 ; G 3311 +U 65029 ; WX 0 ; N uniFE05 ; G 3312 +U 65030 ; WX 0 ; N uniFE06 ; G 3313 +U 65031 ; WX 0 ; N uniFE07 ; G 3314 +U 65032 ; WX 0 ; N uniFE08 ; G 3315 +U 65033 ; WX 0 ; N uniFE09 ; G 3316 +U 65034 ; WX 0 ; N uniFE0A ; G 3317 +U 65035 ; WX 0 ; N uniFE0B ; G 3318 +U 65036 ; WX 0 ; N uniFE0C ; G 3319 +U 65037 ; WX 0 ; N uniFE0D ; G 3320 +U 65038 ; WX 0 ; N uniFE0E ; G 3321 +U 65039 ; WX 0 ; N uniFE0F ; G 3322 +U 65529 ; WX 0 ; N uniFFF9 ; G 3323 +U 65530 ; WX 0 ; N uniFFFA ; G 3324 +U 65531 ; WX 0 ; N uniFFFB ; G 3325 +U 65532 ; WX 0 ; N uniFFFC ; G 3326 +U 65533 ; WX 1113 ; N uniFFFD ; G 3327 +EndCharMetrics +StartKernData +StartKernPairs 1153 + +KPX dollar seven -112 +KPX dollar nine -149 +KPX dollar colon -102 +KPX dollar less -102 +KPX dollar I -36 +KPX dollar W -36 +KPX dollar Y -83 +KPX dollar Z -83 +KPX dollar backslash -83 +KPX dollar questiondown -83 +KPX dollar Aacute -83 +KPX dollar Hbar -112 +KPX dollar hbar -36 +KPX dollar lacute -102 + +KPX percent ampersand 38 +KPX percent asterisk 38 +KPX percent two 38 +KPX percent less -36 +KPX percent Egrave 38 +KPX percent Icircumflex 38 +KPX percent agrave 38 +KPX percent Ebreve 38 +KPX percent lacute -36 + + +KPX quotesingle nine -36 + + +KPX parenright dollar -120 +KPX parenright D -112 +KPX parenright H -112 +KPX parenright R -112 +KPX parenright U -36 +KPX parenright X -36 +KPX parenright cent -112 +KPX parenright sterling -112 +KPX parenright currency -112 +KPX parenright yen -112 +KPX parenright brokenbar -112 +KPX parenright section -112 +KPX parenright dieresis -112 +KPX parenright ordfeminine -112 +KPX parenright guillemotleft -112 +KPX parenright logicalnot -112 +KPX parenright sfthyphen -112 +KPX parenright acute -112 +KPX parenright mu -112 +KPX parenright paragraph -112 +KPX parenright periodcentered -112 +KPX parenright cedilla -112 +KPX parenright ordmasculine -112 +KPX parenright guillemotright -36 +KPX parenright onequarter -36 +KPX parenright onehalf -36 +KPX parenright threequarters -36 +KPX parenright Yacute -112 +KPX parenright ebreve -112 +KPX parenright edotaccent -36 +KPX parenright ecaron -36 +KPX parenright dotlessi -36 + + + +KPX period dollar -83 +KPX period ampersand -55 +KPX period two -55 +KPX period eight -73 +KPX period colon -73 +KPX period less -55 +KPX period H -45 +KPX period R -45 +KPX period X -45 +KPX period backslash -92 +KPX period ordfeminine -45 +KPX period guillemotleft -45 +KPX period logicalnot -45 +KPX period sfthyphen -45 +KPX period acute -45 +KPX period mu -45 +KPX period paragraph -45 +KPX period periodcentered -45 +KPX period cedilla -45 +KPX period ordmasculine -36 +KPX period guillemotright -45 +KPX period onequarter -45 +KPX period onehalf -45 +KPX period threequarters -45 +KPX period questiondown -92 +KPX period Aacute -92 +KPX period Egrave -55 +KPX period Icircumflex -55 +KPX period Yacute -45 +KPX period Ebreve -55 +KPX period ebreve -45 +KPX period Idot -73 +KPX period dotlessi -45 +KPX period lacute -55 + +KPX slash seven -167 +KPX slash eight -112 +KPX slash nine -243 +KPX slash colon -139 +KPX slash less -131 +KPX slash backslash -73 +KPX slash questiondown -73 +KPX slash Aacute -73 +KPX slash Hbar -167 +KPX slash Idot -112 +KPX slash lacute -131 + + +KPX two nine -36 +KPX two semicolon -36 + +KPX three dollar -149 +KPX three D -55 +KPX three H -55 +KPX three R -55 +KPX three cent -55 +KPX three sterling -55 +KPX three currency -55 +KPX three yen -55 +KPX three brokenbar -55 +KPX three section -55 +KPX three dieresis -55 +KPX three ordfeminine -55 +KPX three guillemotleft -55 +KPX three logicalnot -55 +KPX three sfthyphen -55 +KPX three acute -55 +KPX three mu -55 +KPX three paragraph -55 +KPX three periodcentered -55 +KPX three cedilla -55 +KPX three ordmasculine -55 +KPX three Yacute -55 +KPX three ebreve -55 + + +KPX five seven -36 +KPX five nine -73 +KPX five colon -45 +KPX five less -63 +KPX five D 47 +KPX five backslash -36 +KPX five cent 47 +KPX five sterling 47 +KPX five currency 47 +KPX five yen 47 +KPX five brokenbar 47 +KPX five section 47 +KPX five dieresis 47 +KPX five ordmasculine 38 +KPX five questiondown -36 +KPX five Aacute -36 +KPX five Hbar -36 +KPX five lacute -63 + +KPX six six -45 +KPX six Gdotaccent -45 +KPX six Gcommaaccent -45 + +KPX seven dollar -112 +KPX seven seven -73 +KPX seven D -196 +KPX seven F -235 +KPX seven H -235 +KPX seven R -235 +KPX seven U -149 +KPX seven V -188 +KPX seven X -188 +KPX seven Z -225 +KPX seven backslash -225 +KPX seven m -149 +KPX seven braceright -149 +KPX seven cent -196 +KPX seven sterling -196 +KPX seven currency -196 +KPX seven yen -196 +KPX seven brokenbar -196 +KPX seven section -196 +KPX seven dieresis -159 +KPX seven copyright -235 +KPX seven ordfeminine -235 +KPX seven guillemotleft -235 +KPX seven logicalnot -235 +KPX seven sfthyphen -235 +KPX seven acute -235 +KPX seven mu -235 +KPX seven paragraph -235 +KPX seven periodcentered -235 +KPX seven cedilla -235 +KPX seven ordmasculine -159 +KPX seven guillemotright -188 +KPX seven onequarter -188 +KPX seven onehalf -188 +KPX seven threequarters -188 +KPX seven questiondown -225 +KPX seven Aacute -225 +KPX seven Eacute -235 +KPX seven Idieresis -235 +KPX seven Yacute -235 +KPX seven ebreve -159 +KPX seven edotaccent -149 +KPX seven ecaron -149 +KPX seven gdotaccent -188 +KPX seven gcommaaccent -188 +KPX seven Hbar -73 +KPX seven dotlessi -188 + +KPX eight dollar -63 + +KPX nine dollar -159 +KPX nine two -36 +KPX nine D -188 +KPX nine H -188 +KPX nine L -36 +KPX nine R -188 +KPX nine X -131 +KPX nine backslash -83 +KPX nine cent -188 +KPX nine sterling -188 +KPX nine currency -188 +KPX nine yen -188 +KPX nine brokenbar -188 +KPX nine section -188 +KPX nine dieresis -188 +KPX nine ordfeminine -188 +KPX nine guillemotleft -188 +KPX nine logicalnot -188 +KPX nine sfthyphen -188 +KPX nine acute -188 +KPX nine mu -188 +KPX nine paragraph -188 +KPX nine periodcentered -188 +KPX nine cedilla -188 +KPX nine ordmasculine -188 +KPX nine guillemotright -131 +KPX nine onequarter -131 +KPX nine onehalf -131 +KPX nine threequarters -131 +KPX nine questiondown -83 +KPX nine Aacute -83 +KPX nine Yacute -188 +KPX nine Ebreve -36 +KPX nine ebreve -188 +KPX nine dotlessi -131 + +KPX colon dollar -131 +KPX colon D -178 +KPX colon H -167 +KPX colon L -36 +KPX colon R -167 +KPX colon U -92 +KPX colon X -83 +KPX colon backslash -45 +KPX colon cent -178 +KPX colon sterling -178 +KPX colon currency -178 +KPX colon yen -178 +KPX colon brokenbar -178 +KPX colon section -178 +KPX colon dieresis -139 +KPX colon ordfeminine -167 +KPX colon guillemotleft -167 +KPX colon logicalnot -167 +KPX colon sfthyphen -167 +KPX colon acute -167 +KPX colon mu -167 +KPX colon paragraph -167 +KPX colon periodcentered -167 +KPX colon cedilla -167 +KPX colon ordmasculine -167 +KPX colon guillemotright -83 +KPX colon onequarter -83 +KPX colon onehalf -83 +KPX colon threequarters -83 +KPX colon questiondown -45 +KPX colon Aacute -45 +KPX colon Yacute -167 +KPX colon ebreve -167 +KPX colon edotaccent -92 +KPX colon ecaron -92 +KPX colon dotlessi -83 + +KPX semicolon dollar -73 +KPX semicolon ampersand -36 +KPX semicolon two -36 +KPX semicolon Egrave -36 +KPX semicolon Icircumflex -36 +KPX semicolon Ebreve -36 + +KPX less dollar -131 +KPX less ampersand -36 +KPX less D -159 +KPX less H -178 +KPX less L -36 +KPX less R -178 +KPX less X -178 +KPX less cent -159 +KPX less sterling -159 +KPX less currency -159 +KPX less yen -159 +KPX less brokenbar -159 +KPX less section -159 +KPX less dieresis -159 +KPX less ordfeminine -178 +KPX less guillemotleft -178 +KPX less logicalnot -178 +KPX less sfthyphen -178 +KPX less acute -178 +KPX less mu -178 +KPX less paragraph -178 +KPX less periodcentered -178 +KPX less cedilla -178 +KPX less ordmasculine -178 +KPX less guillemotright -178 +KPX less onequarter -178 +KPX less onehalf -178 +KPX less threequarters -178 +KPX less Egrave -36 +KPX less Icircumflex -36 +KPX less Yacute -178 +KPX less ebreve -178 +KPX less dotlessi -178 + + + + + + + + + + +KPX m hyphen -73 +KPX m seven -149 +KPX m Hbar -149 + +KPX braceright hyphen -73 +KPX braceright seven -149 +KPX braceright Hbar -149 + + + + + + + + + + + + + + +KPX Eth nine -36 + + + +KPX ucircumflex seven -167 +KPX ucircumflex eight -112 +KPX ucircumflex nine -243 +KPX ucircumflex colon -139 +KPX ucircumflex less -131 +KPX ucircumflex backslash -73 +KPX ucircumflex questiondown -73 +KPX ucircumflex Aacute -73 +KPX ucircumflex Hbar -167 +KPX ucircumflex Idot -112 +KPX ucircumflex lacute -131 + +KPX ydieresis seven -167 +KPX ydieresis eight -112 +KPX ydieresis nine -243 +KPX ydieresis colon -139 +KPX ydieresis less -131 +KPX ydieresis backslash -73 +KPX ydieresis questiondown -73 +KPX ydieresis Aacute -73 +KPX ydieresis Hbar -167 +KPX ydieresis Idot -112 +KPX ydieresis lacute -131 + +KPX Abreve O -241 + +KPX abreve seven -167 +KPX abreve eight -112 +KPX abreve nine -243 +KPX abreve colon -139 +KPX abreve less -131 +KPX abreve backslash -73 +KPX abreve questiondown -73 +KPX abreve Aacute -73 +KPX abreve Hbar -167 +KPX abreve Idot -112 +KPX abreve lacute -131 + + + +KPX Edotaccent seven -36 +KPX Edotaccent nine -73 +KPX Edotaccent colon -45 +KPX Edotaccent less -63 +KPX Edotaccent D 47 +KPX Edotaccent backslash -36 +KPX Edotaccent cent 47 +KPX Edotaccent sterling 47 +KPX Edotaccent currency 47 +KPX Edotaccent yen 47 +KPX Edotaccent brokenbar 47 +KPX Edotaccent section 47 +KPX Edotaccent dieresis 47 +KPX Edotaccent ordmasculine 38 +KPX Edotaccent questiondown -36 +KPX Edotaccent Aacute -36 +KPX Edotaccent Hbar -36 +KPX Edotaccent lacute -63 + + +KPX Ecaron seven -36 +KPX Ecaron nine -73 +KPX Ecaron colon -45 +KPX Ecaron less -63 +KPX Ecaron D 47 +KPX Ecaron backslash -36 +KPX Ecaron cent 47 +KPX Ecaron sterling 47 +KPX Ecaron currency 47 +KPX Ecaron yen 47 +KPX Ecaron brokenbar 47 +KPX Ecaron section 47 +KPX Ecaron dieresis 47 +KPX Ecaron ordmasculine 38 +KPX Ecaron questiondown -36 +KPX Ecaron Aacute -36 +KPX Ecaron Hbar -36 +KPX Ecaron lacute -63 + + +KPX Gdotaccent six -45 +KPX Gdotaccent Gdotaccent -45 +KPX Gdotaccent Gcommaaccent -45 + +KPX Gcommaaccent six -45 +KPX Gcommaaccent Gdotaccent -45 +KPX Gcommaaccent Gcommaaccent -45 + +KPX Hbar dollar -112 +KPX Hbar seven -73 +KPX Hbar D -196 +KPX Hbar F -235 +KPX Hbar H -235 +KPX Hbar R -235 +KPX Hbar U -149 +KPX Hbar V -188 +KPX Hbar X -188 +KPX Hbar Z -225 +KPX Hbar backslash -225 +KPX Hbar m -149 +KPX Hbar braceright -149 +KPX Hbar cent -196 +KPX Hbar sterling -196 +KPX Hbar currency -196 +KPX Hbar yen -196 +KPX Hbar brokenbar -196 +KPX Hbar section -196 +KPX Hbar dieresis -159 +KPX Hbar copyright -235 +KPX Hbar ordfeminine -235 +KPX Hbar guillemotleft -235 +KPX Hbar logicalnot -235 +KPX Hbar sfthyphen -235 +KPX Hbar acute -235 +KPX Hbar mu -235 +KPX Hbar paragraph -235 +KPX Hbar periodcentered -235 +KPX Hbar cedilla -235 +KPX Hbar ordmasculine -159 +KPX Hbar guillemotright -188 +KPX Hbar onequarter -188 +KPX Hbar onehalf -188 +KPX Hbar threequarters -188 +KPX Hbar questiondown -225 +KPX Hbar Aacute -225 +KPX Hbar Eacute -235 +KPX Hbar Idieresis -235 +KPX Hbar Yacute -235 +KPX Hbar ebreve -159 +KPX Hbar edotaccent -149 +KPX Hbar ecaron -149 +KPX Hbar gdotaccent -188 +KPX Hbar gcommaaccent -188 +KPX Hbar Hbar -73 +KPX Hbar dotlessi -188 + +KPX Idot dollar -63 + +KPX lacute dollar -131 +KPX lacute ampersand -36 +KPX lacute D -159 +KPX lacute H -178 +KPX lacute L -36 +KPX lacute R -178 +KPX lacute X -178 +KPX lacute cent -159 +KPX lacute sterling -159 +KPX lacute currency -159 +KPX lacute yen -159 +KPX lacute brokenbar -159 +KPX lacute section -159 +KPX lacute dieresis -159 +KPX lacute ordfeminine -178 +KPX lacute guillemotleft -178 +KPX lacute logicalnot -178 +KPX lacute sfthyphen -178 +KPX lacute acute -178 +KPX lacute mu -178 +KPX lacute paragraph -178 +KPX lacute periodcentered -178 +KPX lacute cedilla -178 +KPX lacute ordmasculine -178 +KPX lacute guillemotright -178 +KPX lacute onequarter -178 +KPX lacute onehalf -178 +KPX lacute threequarters -178 +KPX lacute Egrave -36 +KPX lacute Icircumflex -36 +KPX lacute Yacute -178 +KPX lacute ebreve -178 +KPX lacute dotlessi -178 + + +KPX uni027D dollar -282 +EndKernPairs +EndKernData +EndFontMetrics diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSerif-Italic.ttf b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSerif-Italic.ttf new file mode 100644 index 0000000..805daf2 Binary files /dev/null and b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSerif-Italic.ttf differ diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSerif-Italic.ufm b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSerif-Italic.ufm new file mode 100644 index 0000000..e9d62b8 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSerif-Italic.ufm @@ -0,0 +1,3883 @@ +StartFontMetrics 4.1 +Notice Converted by PHP-font-lib +Comment https://github.com/PhenX/php-font-lib +EncodingScheme FontSpecific +FontName DejaVu Serif +FontSubfamily Italic +UniqueID DejaVu Serif Italic +FullName DejaVu Serif Italic +Version Version 2.37 +PostScriptName DejaVuSerif-Italic +Manufacturer DejaVu fonts team +FontVendorURL http://dejavu.sourceforge.net +LicenseURL http://dejavu.sourceforge.net/wiki/index.php/License +PreferredFamily DejaVu Serif +PreferredSubfamily Italic +Weight Medium +ItalicAngle -11 +IsFixedPitch false +UnderlineThickness 44 +UnderlinePosition -63 +FontHeightOffset 0 +Ascender 928 +Descender -236 +FontBBox -839 -347 1645 1109 +StartCharMetrics 3507 +U 32 ; WX 318 ; N space ; G 3 +U 33 ; WX 402 ; N exclam ; G 4 +U 34 ; WX 460 ; N quotedbl ; G 5 +U 35 ; WX 838 ; N numbersign ; G 6 +U 36 ; WX 636 ; N dollar ; G 7 +U 37 ; WX 950 ; N percent ; G 8 +U 38 ; WX 890 ; N ampersand ; G 9 +U 39 ; WX 275 ; N quotesingle ; G 10 +U 40 ; WX 390 ; N parenleft ; G 11 +U 41 ; WX 390 ; N parenright ; G 12 +U 42 ; WX 500 ; N asterisk ; G 13 +U 43 ; WX 838 ; N plus ; G 14 +U 44 ; WX 318 ; N comma ; G 15 +U 45 ; WX 338 ; N hyphen ; G 16 +U 46 ; WX 318 ; N period ; G 17 +U 47 ; WX 337 ; N slash ; G 18 +U 48 ; WX 636 ; N zero ; G 19 +U 49 ; WX 636 ; N one ; G 20 +U 50 ; WX 636 ; N two ; G 21 +U 51 ; WX 636 ; N three ; G 22 +U 52 ; WX 636 ; N four ; G 23 +U 53 ; WX 636 ; N five ; G 24 +U 54 ; WX 636 ; N six ; G 25 +U 55 ; WX 636 ; N seven ; G 26 +U 56 ; WX 636 ; N eight ; G 27 +U 57 ; WX 636 ; N nine ; G 28 +U 58 ; WX 337 ; N colon ; G 29 +U 59 ; WX 337 ; N semicolon ; G 30 +U 60 ; WX 838 ; N less ; G 31 +U 61 ; WX 838 ; N equal ; G 32 +U 62 ; WX 838 ; N greater ; G 33 +U 63 ; WX 536 ; N question ; G 34 +U 64 ; WX 1000 ; N at ; G 35 +U 65 ; WX 722 ; N A ; G 36 +U 66 ; WX 735 ; N B ; G 37 +U 67 ; WX 765 ; N C ; G 38 +U 68 ; WX 802 ; N D ; G 39 +U 69 ; WX 730 ; N E ; G 40 +U 70 ; WX 694 ; N F ; G 41 +U 71 ; WX 799 ; N G ; G 42 +U 72 ; WX 872 ; N H ; G 43 +U 73 ; WX 395 ; N I ; G 44 +U 74 ; WX 401 ; N J ; G 45 +U 75 ; WX 747 ; N K ; G 46 +U 76 ; WX 664 ; N L ; G 47 +U 77 ; WX 1024 ; N M ; G 48 +U 78 ; WX 875 ; N N ; G 49 +U 79 ; WX 820 ; N O ; G 50 +U 80 ; WX 673 ; N P ; G 51 +U 81 ; WX 820 ; N Q ; G 52 +U 82 ; WX 753 ; N R ; G 53 +U 83 ; WX 685 ; N S ; G 54 +U 84 ; WX 667 ; N T ; G 55 +U 85 ; WX 843 ; N U ; G 56 +U 86 ; WX 722 ; N V ; G 57 +U 87 ; WX 1028 ; N W ; G 58 +U 88 ; WX 712 ; N X ; G 59 +U 89 ; WX 660 ; N Y ; G 60 +U 90 ; WX 695 ; N Z ; G 61 +U 91 ; WX 390 ; N bracketleft ; G 62 +U 92 ; WX 337 ; N backslash ; G 63 +U 93 ; WX 390 ; N bracketright ; G 64 +U 94 ; WX 838 ; N asciicircum ; G 65 +U 95 ; WX 500 ; N underscore ; G 66 +U 96 ; WX 500 ; N grave ; G 67 +U 97 ; WX 596 ; N a ; G 68 +U 98 ; WX 640 ; N b ; G 69 +U 99 ; WX 560 ; N c ; G 70 +U 100 ; WX 640 ; N d ; G 71 +U 101 ; WX 592 ; N e ; G 72 +U 102 ; WX 370 ; N f ; G 73 +U 103 ; WX 640 ; N g ; G 74 +U 104 ; WX 644 ; N h ; G 75 +U 105 ; WX 320 ; N i ; G 76 +U 106 ; WX 310 ; N j ; G 77 +U 107 ; WX 606 ; N k ; G 78 +U 108 ; WX 320 ; N l ; G 79 +U 109 ; WX 948 ; N m ; G 80 +U 110 ; WX 644 ; N n ; G 81 +U 111 ; WX 602 ; N o ; G 82 +U 112 ; WX 640 ; N p ; G 83 +U 113 ; WX 640 ; N q ; G 84 +U 114 ; WX 478 ; N r ; G 85 +U 115 ; WX 513 ; N s ; G 86 +U 116 ; WX 402 ; N t ; G 87 +U 117 ; WX 644 ; N u ; G 88 +U 118 ; WX 565 ; N v ; G 89 +U 119 ; WX 856 ; N w ; G 90 +U 120 ; WX 564 ; N x ; G 91 +U 121 ; WX 565 ; N y ; G 92 +U 122 ; WX 527 ; N z ; G 93 +U 123 ; WX 636 ; N braceleft ; G 94 +U 124 ; WX 337 ; N bar ; G 95 +U 125 ; WX 636 ; N braceright ; G 96 +U 126 ; WX 838 ; N asciitilde ; G 97 +U 160 ; WX 318 ; N nbspace ; G 98 +U 161 ; WX 402 ; N exclamdown ; G 99 +U 162 ; WX 636 ; N cent ; G 100 +U 163 ; WX 636 ; N sterling ; G 101 +U 164 ; WX 636 ; N currency ; G 102 +U 165 ; WX 636 ; N yen ; G 103 +U 166 ; WX 337 ; N brokenbar ; G 104 +U 167 ; WX 500 ; N section ; G 105 +U 168 ; WX 500 ; N dieresis ; G 106 +U 169 ; WX 1000 ; N copyright ; G 107 +U 170 ; WX 475 ; N ordfeminine ; G 108 +U 171 ; WX 612 ; N guillemotleft ; G 109 +U 172 ; WX 838 ; N logicalnot ; G 110 +U 173 ; WX 338 ; N sfthyphen ; G 111 +U 174 ; WX 1000 ; N registered ; G 112 +U 175 ; WX 500 ; N macron ; G 113 +U 176 ; WX 500 ; N degree ; G 114 +U 177 ; WX 838 ; N plusminus ; G 115 +U 178 ; WX 401 ; N twosuperior ; G 116 +U 179 ; WX 401 ; N threesuperior ; G 117 +U 180 ; WX 500 ; N acute ; G 118 +U 181 ; WX 650 ; N mu ; G 119 +U 182 ; WX 636 ; N paragraph ; G 120 +U 183 ; WX 318 ; N periodcentered ; G 121 +U 184 ; WX 500 ; N cedilla ; G 122 +U 185 ; WX 401 ; N onesuperior ; G 123 +U 186 ; WX 470 ; N ordmasculine ; G 124 +U 187 ; WX 612 ; N guillemotright ; G 125 +U 188 ; WX 969 ; N onequarter ; G 126 +U 189 ; WX 969 ; N onehalf ; G 127 +U 190 ; WX 969 ; N threequarters ; G 128 +U 191 ; WX 536 ; N questiondown ; G 129 +U 192 ; WX 722 ; N Agrave ; G 130 +U 193 ; WX 722 ; N Aacute ; G 131 +U 194 ; WX 722 ; N Acircumflex ; G 132 +U 195 ; WX 722 ; N Atilde ; G 133 +U 196 ; WX 722 ; N Adieresis ; G 134 +U 197 ; WX 722 ; N Aring ; G 135 +U 198 ; WX 1001 ; N AE ; G 136 +U 199 ; WX 765 ; N Ccedilla ; G 137 +U 200 ; WX 730 ; N Egrave ; G 138 +U 201 ; WX 730 ; N Eacute ; G 139 +U 202 ; WX 730 ; N Ecircumflex ; G 140 +U 203 ; WX 730 ; N Edieresis ; G 141 +U 204 ; WX 395 ; N Igrave ; G 142 +U 205 ; WX 395 ; N Iacute ; G 143 +U 206 ; WX 395 ; N Icircumflex ; G 144 +U 207 ; WX 395 ; N Idieresis ; G 145 +U 208 ; WX 807 ; N Eth ; G 146 +U 209 ; WX 875 ; N Ntilde ; G 147 +U 210 ; WX 820 ; N Ograve ; G 148 +U 211 ; WX 820 ; N Oacute ; G 149 +U 212 ; WX 820 ; N Ocircumflex ; G 150 +U 213 ; WX 820 ; N Otilde ; G 151 +U 214 ; WX 820 ; N Odieresis ; G 152 +U 215 ; WX 838 ; N multiply ; G 153 +U 216 ; WX 820 ; N Oslash ; G 154 +U 217 ; WX 843 ; N Ugrave ; G 155 +U 218 ; WX 843 ; N Uacute ; G 156 +U 219 ; WX 843 ; N Ucircumflex ; G 157 +U 220 ; WX 843 ; N Udieresis ; G 158 +U 221 ; WX 660 ; N Yacute ; G 159 +U 222 ; WX 676 ; N Thorn ; G 160 +U 223 ; WX 668 ; N germandbls ; G 161 +U 224 ; WX 596 ; N agrave ; G 162 +U 225 ; WX 596 ; N aacute ; G 163 +U 226 ; WX 596 ; N acircumflex ; G 164 +U 227 ; WX 596 ; N atilde ; G 165 +U 228 ; WX 596 ; N adieresis ; G 166 +U 229 ; WX 596 ; N aring ; G 167 +U 230 ; WX 940 ; N ae ; G 168 +U 231 ; WX 560 ; N ccedilla ; G 169 +U 232 ; WX 592 ; N egrave ; G 170 +U 233 ; WX 592 ; N eacute ; G 171 +U 234 ; WX 592 ; N ecircumflex ; G 172 +U 235 ; WX 592 ; N edieresis ; G 173 +U 236 ; WX 320 ; N igrave ; G 174 +U 237 ; WX 320 ; N iacute ; G 175 +U 238 ; WX 320 ; N icircumflex ; G 176 +U 239 ; WX 320 ; N idieresis ; G 177 +U 240 ; WX 602 ; N eth ; G 178 +U 241 ; WX 644 ; N ntilde ; G 179 +U 242 ; WX 602 ; N ograve ; G 180 +U 243 ; WX 602 ; N oacute ; G 181 +U 244 ; WX 602 ; N ocircumflex ; G 182 +U 245 ; WX 602 ; N otilde ; G 183 +U 246 ; WX 602 ; N odieresis ; G 184 +U 247 ; WX 838 ; N divide ; G 185 +U 248 ; WX 602 ; N oslash ; G 186 +U 249 ; WX 644 ; N ugrave ; G 187 +U 250 ; WX 644 ; N uacute ; G 188 +U 251 ; WX 644 ; N ucircumflex ; G 189 +U 252 ; WX 644 ; N udieresis ; G 190 +U 253 ; WX 565 ; N yacute ; G 191 +U 254 ; WX 640 ; N thorn ; G 192 +U 255 ; WX 565 ; N ydieresis ; G 193 +U 256 ; WX 722 ; N Amacron ; G 194 +U 257 ; WX 596 ; N amacron ; G 195 +U 258 ; WX 722 ; N Abreve ; G 196 +U 259 ; WX 596 ; N abreve ; G 197 +U 260 ; WX 722 ; N Aogonek ; G 198 +U 261 ; WX 596 ; N aogonek ; G 199 +U 262 ; WX 765 ; N Cacute ; G 200 +U 263 ; WX 560 ; N cacute ; G 201 +U 264 ; WX 765 ; N Ccircumflex ; G 202 +U 265 ; WX 560 ; N ccircumflex ; G 203 +U 266 ; WX 765 ; N Cdotaccent ; G 204 +U 267 ; WX 560 ; N cdotaccent ; G 205 +U 268 ; WX 765 ; N Ccaron ; G 206 +U 269 ; WX 560 ; N ccaron ; G 207 +U 270 ; WX 802 ; N Dcaron ; G 208 +U 271 ; WX 640 ; N dcaron ; G 209 +U 272 ; WX 807 ; N Dcroat ; G 210 +U 273 ; WX 640 ; N dmacron ; G 211 +U 274 ; WX 730 ; N Emacron ; G 212 +U 275 ; WX 592 ; N emacron ; G 213 +U 276 ; WX 730 ; N Ebreve ; G 214 +U 277 ; WX 592 ; N ebreve ; G 215 +U 278 ; WX 730 ; N Edotaccent ; G 216 +U 279 ; WX 592 ; N edotaccent ; G 217 +U 280 ; WX 730 ; N Eogonek ; G 218 +U 281 ; WX 592 ; N eogonek ; G 219 +U 282 ; WX 730 ; N Ecaron ; G 220 +U 283 ; WX 592 ; N ecaron ; G 221 +U 284 ; WX 799 ; N Gcircumflex ; G 222 +U 285 ; WX 640 ; N gcircumflex ; G 223 +U 286 ; WX 799 ; N Gbreve ; G 224 +U 287 ; WX 640 ; N gbreve ; G 225 +U 288 ; WX 799 ; N Gdotaccent ; G 226 +U 289 ; WX 640 ; N gdotaccent ; G 227 +U 290 ; WX 799 ; N Gcommaaccent ; G 228 +U 291 ; WX 640 ; N gcommaaccent ; G 229 +U 292 ; WX 872 ; N Hcircumflex ; G 230 +U 293 ; WX 644 ; N hcircumflex ; G 231 +U 294 ; WX 872 ; N Hbar ; G 232 +U 295 ; WX 644 ; N hbar ; G 233 +U 296 ; WX 395 ; N Itilde ; G 234 +U 297 ; WX 320 ; N itilde ; G 235 +U 298 ; WX 395 ; N Imacron ; G 236 +U 299 ; WX 320 ; N imacron ; G 237 +U 300 ; WX 395 ; N Ibreve ; G 238 +U 301 ; WX 320 ; N ibreve ; G 239 +U 302 ; WX 395 ; N Iogonek ; G 240 +U 303 ; WX 320 ; N iogonek ; G 241 +U 304 ; WX 395 ; N Idot ; G 242 +U 305 ; WX 320 ; N dotlessi ; G 243 +U 306 ; WX 801 ; N IJ ; G 244 +U 307 ; WX 533 ; N ij ; G 245 +U 308 ; WX 401 ; N Jcircumflex ; G 246 +U 309 ; WX 310 ; N jcircumflex ; G 247 +U 310 ; WX 747 ; N Kcommaaccent ; G 248 +U 311 ; WX 606 ; N kcommaaccent ; G 249 +U 312 ; WX 606 ; N kgreenlandic ; G 250 +U 313 ; WX 664 ; N Lacute ; G 251 +U 314 ; WX 320 ; N lacute ; G 252 +U 315 ; WX 664 ; N Lcommaaccent ; G 253 +U 316 ; WX 320 ; N lcommaaccent ; G 254 +U 317 ; WX 664 ; N Lcaron ; G 255 +U 318 ; WX 400 ; N lcaron ; G 256 +U 319 ; WX 671 ; N Ldot ; G 257 +U 320 ; WX 465 ; N ldot ; G 258 +U 321 ; WX 669 ; N Lslash ; G 259 +U 322 ; WX 324 ; N lslash ; G 260 +U 323 ; WX 875 ; N Nacute ; G 261 +U 324 ; WX 644 ; N nacute ; G 262 +U 325 ; WX 875 ; N Ncommaaccent ; G 263 +U 326 ; WX 644 ; N ncommaaccent ; G 264 +U 327 ; WX 875 ; N Ncaron ; G 265 +U 328 ; WX 644 ; N ncaron ; G 266 +U 329 ; WX 866 ; N napostrophe ; G 267 +U 330 ; WX 843 ; N Eng ; G 268 +U 331 ; WX 644 ; N eng ; G 269 +U 332 ; WX 820 ; N Omacron ; G 270 +U 333 ; WX 602 ; N omacron ; G 271 +U 334 ; WX 820 ; N Obreve ; G 272 +U 335 ; WX 602 ; N obreve ; G 273 +U 336 ; WX 820 ; N Ohungarumlaut ; G 274 +U 337 ; WX 602 ; N ohungarumlaut ; G 275 +U 338 ; WX 1137 ; N OE ; G 276 +U 339 ; WX 989 ; N oe ; G 277 +U 340 ; WX 753 ; N Racute ; G 278 +U 341 ; WX 478 ; N racute ; G 279 +U 342 ; WX 753 ; N Rcommaaccent ; G 280 +U 343 ; WX 478 ; N rcommaaccent ; G 281 +U 344 ; WX 753 ; N Rcaron ; G 282 +U 345 ; WX 478 ; N rcaron ; G 283 +U 346 ; WX 685 ; N Sacute ; G 284 +U 347 ; WX 513 ; N sacute ; G 285 +U 348 ; WX 685 ; N Scircumflex ; G 286 +U 349 ; WX 513 ; N scircumflex ; G 287 +U 350 ; WX 685 ; N Scedilla ; G 288 +U 351 ; WX 513 ; N scedilla ; G 289 +U 352 ; WX 685 ; N Scaron ; G 290 +U 353 ; WX 513 ; N scaron ; G 291 +U 354 ; WX 667 ; N Tcommaaccent ; G 292 +U 355 ; WX 402 ; N tcommaaccent ; G 293 +U 356 ; WX 667 ; N Tcaron ; G 294 +U 357 ; WX 402 ; N tcaron ; G 295 +U 358 ; WX 667 ; N Tbar ; G 296 +U 359 ; WX 402 ; N tbar ; G 297 +U 360 ; WX 843 ; N Utilde ; G 298 +U 361 ; WX 644 ; N utilde ; G 299 +U 362 ; WX 843 ; N Umacron ; G 300 +U 363 ; WX 644 ; N umacron ; G 301 +U 364 ; WX 843 ; N Ubreve ; G 302 +U 365 ; WX 644 ; N ubreve ; G 303 +U 366 ; WX 843 ; N Uring ; G 304 +U 367 ; WX 644 ; N uring ; G 305 +U 368 ; WX 843 ; N Uhungarumlaut ; G 306 +U 369 ; WX 644 ; N uhungarumlaut ; G 307 +U 370 ; WX 843 ; N Uogonek ; G 308 +U 371 ; WX 644 ; N uogonek ; G 309 +U 372 ; WX 1028 ; N Wcircumflex ; G 310 +U 373 ; WX 856 ; N wcircumflex ; G 311 +U 374 ; WX 660 ; N Ycircumflex ; G 312 +U 375 ; WX 565 ; N ycircumflex ; G 313 +U 376 ; WX 660 ; N Ydieresis ; G 314 +U 377 ; WX 695 ; N Zacute ; G 315 +U 378 ; WX 527 ; N zacute ; G 316 +U 379 ; WX 695 ; N Zdotaccent ; G 317 +U 380 ; WX 527 ; N zdotaccent ; G 318 +U 381 ; WX 695 ; N Zcaron ; G 319 +U 382 ; WX 527 ; N zcaron ; G 320 +U 383 ; WX 370 ; N longs ; G 321 +U 384 ; WX 640 ; N uni0180 ; G 322 +U 385 ; WX 735 ; N uni0181 ; G 323 +U 386 ; WX 735 ; N uni0182 ; G 324 +U 387 ; WX 640 ; N uni0183 ; G 325 +U 388 ; WX 735 ; N uni0184 ; G 326 +U 389 ; WX 640 ; N uni0185 ; G 327 +U 390 ; WX 765 ; N uni0186 ; G 328 +U 391 ; WX 765 ; N uni0187 ; G 329 +U 392 ; WX 560 ; N uni0188 ; G 330 +U 393 ; WX 807 ; N uni0189 ; G 331 +U 394 ; WX 802 ; N uni018A ; G 332 +U 395 ; WX 735 ; N uni018B ; G 333 +U 396 ; WX 640 ; N uni018C ; G 334 +U 397 ; WX 602 ; N uni018D ; G 335 +U 398 ; WX 730 ; N uni018E ; G 336 +U 399 ; WX 820 ; N uni018F ; G 337 +U 400 ; WX 623 ; N uni0190 ; G 338 +U 401 ; WX 694 ; N uni0191 ; G 339 +U 402 ; WX 370 ; N florin ; G 340 +U 403 ; WX 799 ; N uni0193 ; G 341 +U 404 ; WX 712 ; N uni0194 ; G 342 +U 405 ; WX 932 ; N uni0195 ; G 343 +U 406 ; WX 395 ; N uni0196 ; G 344 +U 407 ; WX 395 ; N uni0197 ; G 345 +U 408 ; WX 747 ; N uni0198 ; G 346 +U 409 ; WX 606 ; N uni0199 ; G 347 +U 410 ; WX 320 ; N uni019A ; G 348 +U 411 ; WX 634 ; N uni019B ; G 349 +U 412 ; WX 948 ; N uni019C ; G 350 +U 413 ; WX 875 ; N uni019D ; G 351 +U 414 ; WX 644 ; N uni019E ; G 352 +U 415 ; WX 820 ; N uni019F ; G 353 +U 416 ; WX 820 ; N Ohorn ; G 354 +U 417 ; WX 602 ; N ohorn ; G 355 +U 418 ; WX 1040 ; N uni01A2 ; G 356 +U 419 ; WX 807 ; N uni01A3 ; G 357 +U 420 ; WX 673 ; N uni01A4 ; G 358 +U 421 ; WX 640 ; N uni01A5 ; G 359 +U 422 ; WX 753 ; N uni01A6 ; G 360 +U 423 ; WX 685 ; N uni01A7 ; G 361 +U 424 ; WX 513 ; N uni01A8 ; G 362 +U 425 ; WX 707 ; N uni01A9 ; G 363 +U 426 ; WX 324 ; N uni01AA ; G 364 +U 427 ; WX 402 ; N uni01AB ; G 365 +U 428 ; WX 667 ; N uni01AC ; G 366 +U 429 ; WX 402 ; N uni01AD ; G 367 +U 430 ; WX 667 ; N uni01AE ; G 368 +U 431 ; WX 843 ; N Uhorn ; G 369 +U 432 ; WX 644 ; N uhorn ; G 370 +U 433 ; WX 829 ; N uni01B1 ; G 371 +U 434 ; WX 760 ; N uni01B2 ; G 372 +U 435 ; WX 738 ; N uni01B3 ; G 373 +U 436 ; WX 745 ; N uni01B4 ; G 374 +U 437 ; WX 695 ; N uni01B5 ; G 375 +U 438 ; WX 527 ; N uni01B6 ; G 376 +U 439 ; WX 564 ; N uni01B7 ; G 377 +U 440 ; WX 564 ; N uni01B8 ; G 378 +U 441 ; WX 564 ; N uni01B9 ; G 379 +U 442 ; WX 564 ; N uni01BA ; G 380 +U 443 ; WX 636 ; N uni01BB ; G 381 +U 444 ; WX 687 ; N uni01BC ; G 382 +U 445 ; WX 564 ; N uni01BD ; G 383 +U 446 ; WX 536 ; N uni01BE ; G 384 +U 447 ; WX 635 ; N uni01BF ; G 385 +U 448 ; WX 295 ; N uni01C0 ; G 386 +U 449 ; WX 492 ; N uni01C1 ; G 387 +U 450 ; WX 459 ; N uni01C2 ; G 388 +U 451 ; WX 295 ; N uni01C3 ; G 389 +U 452 ; WX 1497 ; N uni01C4 ; G 390 +U 453 ; WX 1329 ; N uni01C5 ; G 391 +U 454 ; WX 1167 ; N uni01C6 ; G 392 +U 455 ; WX 1065 ; N uni01C7 ; G 393 +U 456 ; WX 974 ; N uni01C8 ; G 394 +U 457 ; WX 630 ; N uni01C9 ; G 395 +U 458 ; WX 1276 ; N uni01CA ; G 396 +U 459 ; WX 1185 ; N uni01CB ; G 397 +U 460 ; WX 954 ; N uni01CC ; G 398 +U 461 ; WX 722 ; N uni01CD ; G 399 +U 462 ; WX 596 ; N uni01CE ; G 400 +U 463 ; WX 395 ; N uni01CF ; G 401 +U 464 ; WX 320 ; N uni01D0 ; G 402 +U 465 ; WX 820 ; N uni01D1 ; G 403 +U 466 ; WX 602 ; N uni01D2 ; G 404 +U 467 ; WX 843 ; N uni01D3 ; G 405 +U 468 ; WX 644 ; N uni01D4 ; G 406 +U 469 ; WX 843 ; N uni01D5 ; G 407 +U 470 ; WX 644 ; N uni01D6 ; G 408 +U 471 ; WX 843 ; N uni01D7 ; G 409 +U 472 ; WX 644 ; N uni01D8 ; G 410 +U 473 ; WX 843 ; N uni01D9 ; G 411 +U 474 ; WX 644 ; N uni01DA ; G 412 +U 475 ; WX 843 ; N uni01DB ; G 413 +U 476 ; WX 644 ; N uni01DC ; G 414 +U 477 ; WX 592 ; N uni01DD ; G 415 +U 478 ; WX 722 ; N uni01DE ; G 416 +U 479 ; WX 596 ; N uni01DF ; G 417 +U 480 ; WX 722 ; N uni01E0 ; G 418 +U 481 ; WX 596 ; N uni01E1 ; G 419 +U 482 ; WX 1001 ; N uni01E2 ; G 420 +U 483 ; WX 940 ; N uni01E3 ; G 421 +U 484 ; WX 848 ; N uni01E4 ; G 422 +U 485 ; WX 640 ; N uni01E5 ; G 423 +U 486 ; WX 799 ; N Gcaron ; G 424 +U 487 ; WX 640 ; N gcaron ; G 425 +U 488 ; WX 747 ; N uni01E8 ; G 426 +U 489 ; WX 606 ; N uni01E9 ; G 427 +U 490 ; WX 820 ; N uni01EA ; G 428 +U 491 ; WX 602 ; N uni01EB ; G 429 +U 492 ; WX 820 ; N uni01EC ; G 430 +U 493 ; WX 602 ; N uni01ED ; G 431 +U 494 ; WX 564 ; N uni01EE ; G 432 +U 495 ; WX 564 ; N uni01EF ; G 433 +U 496 ; WX 320 ; N uni01F0 ; G 434 +U 497 ; WX 1497 ; N uni01F1 ; G 435 +U 498 ; WX 1329 ; N uni01F2 ; G 436 +U 499 ; WX 1167 ; N uni01F3 ; G 437 +U 500 ; WX 799 ; N uni01F4 ; G 438 +U 501 ; WX 640 ; N uni01F5 ; G 439 +U 502 ; WX 1154 ; N uni01F6 ; G 440 +U 503 ; WX 707 ; N uni01F7 ; G 441 +U 504 ; WX 875 ; N uni01F8 ; G 442 +U 505 ; WX 644 ; N uni01F9 ; G 443 +U 506 ; WX 722 ; N Aringacute ; G 444 +U 507 ; WX 596 ; N aringacute ; G 445 +U 508 ; WX 1001 ; N AEacute ; G 446 +U 509 ; WX 940 ; N aeacute ; G 447 +U 510 ; WX 820 ; N Oslashacute ; G 448 +U 511 ; WX 602 ; N oslashacute ; G 449 +U 512 ; WX 722 ; N uni0200 ; G 450 +U 513 ; WX 596 ; N uni0201 ; G 451 +U 514 ; WX 722 ; N uni0202 ; G 452 +U 515 ; WX 596 ; N uni0203 ; G 453 +U 516 ; WX 730 ; N uni0204 ; G 454 +U 517 ; WX 592 ; N uni0205 ; G 455 +U 518 ; WX 730 ; N uni0206 ; G 456 +U 519 ; WX 592 ; N uni0207 ; G 457 +U 520 ; WX 395 ; N uni0208 ; G 458 +U 521 ; WX 320 ; N uni0209 ; G 459 +U 522 ; WX 395 ; N uni020A ; G 460 +U 523 ; WX 320 ; N uni020B ; G 461 +U 524 ; WX 820 ; N uni020C ; G 462 +U 525 ; WX 602 ; N uni020D ; G 463 +U 526 ; WX 820 ; N uni020E ; G 464 +U 527 ; WX 602 ; N uni020F ; G 465 +U 528 ; WX 753 ; N uni0210 ; G 466 +U 529 ; WX 478 ; N uni0211 ; G 467 +U 530 ; WX 753 ; N uni0212 ; G 468 +U 531 ; WX 478 ; N uni0213 ; G 469 +U 532 ; WX 843 ; N uni0214 ; G 470 +U 533 ; WX 644 ; N uni0215 ; G 471 +U 534 ; WX 843 ; N uni0216 ; G 472 +U 535 ; WX 644 ; N uni0217 ; G 473 +U 536 ; WX 685 ; N Scommaaccent ; G 474 +U 537 ; WX 513 ; N scommaaccent ; G 475 +U 538 ; WX 667 ; N uni021A ; G 476 +U 539 ; WX 402 ; N uni021B ; G 477 +U 540 ; WX 627 ; N uni021C ; G 478 +U 541 ; WX 521 ; N uni021D ; G 479 +U 542 ; WX 872 ; N uni021E ; G 480 +U 543 ; WX 644 ; N uni021F ; G 481 +U 544 ; WX 843 ; N uni0220 ; G 482 +U 545 ; WX 814 ; N uni0221 ; G 483 +U 546 ; WX 572 ; N uni0222 ; G 484 +U 547 ; WX 552 ; N uni0223 ; G 485 +U 548 ; WX 695 ; N uni0224 ; G 486 +U 549 ; WX 527 ; N uni0225 ; G 487 +U 550 ; WX 722 ; N uni0226 ; G 488 +U 551 ; WX 596 ; N uni0227 ; G 489 +U 552 ; WX 730 ; N uni0228 ; G 490 +U 553 ; WX 592 ; N uni0229 ; G 491 +U 554 ; WX 820 ; N uni022A ; G 492 +U 555 ; WX 602 ; N uni022B ; G 493 +U 556 ; WX 820 ; N uni022C ; G 494 +U 557 ; WX 602 ; N uni022D ; G 495 +U 558 ; WX 820 ; N uni022E ; G 496 +U 559 ; WX 602 ; N uni022F ; G 497 +U 560 ; WX 820 ; N uni0230 ; G 498 +U 561 ; WX 602 ; N uni0231 ; G 499 +U 562 ; WX 660 ; N uni0232 ; G 500 +U 563 ; WX 565 ; N uni0233 ; G 501 +U 564 ; WX 500 ; N uni0234 ; G 502 +U 565 ; WX 832 ; N uni0235 ; G 503 +U 566 ; WX 494 ; N uni0236 ; G 504 +U 567 ; WX 310 ; N dotlessj ; G 505 +U 568 ; WX 960 ; N uni0238 ; G 506 +U 569 ; WX 960 ; N uni0239 ; G 507 +U 570 ; WX 722 ; N uni023A ; G 508 +U 571 ; WX 765 ; N uni023B ; G 509 +U 572 ; WX 560 ; N uni023C ; G 510 +U 573 ; WX 664 ; N uni023D ; G 511 +U 574 ; WX 667 ; N uni023E ; G 512 +U 575 ; WX 513 ; N uni023F ; G 513 +U 576 ; WX 527 ; N uni0240 ; G 514 +U 577 ; WX 583 ; N uni0241 ; G 515 +U 578 ; WX 464 ; N uni0242 ; G 516 +U 579 ; WX 735 ; N uni0243 ; G 517 +U 580 ; WX 843 ; N uni0244 ; G 518 +U 581 ; WX 722 ; N uni0245 ; G 519 +U 582 ; WX 730 ; N uni0246 ; G 520 +U 583 ; WX 592 ; N uni0247 ; G 521 +U 584 ; WX 401 ; N uni0248 ; G 522 +U 585 ; WX 315 ; N uni0249 ; G 523 +U 586 ; WX 782 ; N uni024A ; G 524 +U 587 ; WX 640 ; N uni024B ; G 525 +U 588 ; WX 753 ; N uni024C ; G 526 +U 589 ; WX 478 ; N uni024D ; G 527 +U 590 ; WX 660 ; N uni024E ; G 528 +U 591 ; WX 565 ; N uni024F ; G 529 +U 592 ; WX 596 ; N uni0250 ; G 530 +U 593 ; WX 675 ; N uni0251 ; G 531 +U 594 ; WX 675 ; N uni0252 ; G 532 +U 595 ; WX 640 ; N uni0253 ; G 533 +U 596 ; WX 560 ; N uni0254 ; G 534 +U 597 ; WX 560 ; N uni0255 ; G 535 +U 598 ; WX 647 ; N uni0256 ; G 536 +U 599 ; WX 683 ; N uni0257 ; G 537 +U 600 ; WX 592 ; N uni0258 ; G 538 +U 601 ; WX 592 ; N uni0259 ; G 539 +U 602 ; WX 843 ; N uni025A ; G 540 +U 603 ; WX 537 ; N uni025B ; G 541 +U 604 ; WX 509 ; N uni025C ; G 542 +U 605 ; WX 773 ; N uni025D ; G 543 +U 606 ; WX 613 ; N uni025E ; G 544 +U 607 ; WX 315 ; N uni025F ; G 545 +U 608 ; WX 683 ; N uni0260 ; G 546 +U 609 ; WX 640 ; N uni0261 ; G 547 +U 610 ; WX 580 ; N uni0262 ; G 548 +U 611 ; WX 599 ; N uni0263 ; G 549 +U 612 ; WX 564 ; N uni0264 ; G 550 +U 613 ; WX 644 ; N uni0265 ; G 551 +U 614 ; WX 644 ; N uni0266 ; G 552 +U 615 ; WX 644 ; N uni0267 ; G 553 +U 616 ; WX 320 ; N uni0268 ; G 554 +U 617 ; WX 392 ; N uni0269 ; G 555 +U 618 ; WX 320 ; N uni026A ; G 556 +U 619 ; WX 380 ; N uni026B ; G 557 +U 620 ; WX 454 ; N uni026C ; G 558 +U 621 ; WX 363 ; N uni026D ; G 559 +U 622 ; WX 704 ; N uni026E ; G 560 +U 623 ; WX 948 ; N uni026F ; G 561 +U 624 ; WX 948 ; N uni0270 ; G 562 +U 625 ; WX 948 ; N uni0271 ; G 563 +U 626 ; WX 644 ; N uni0272 ; G 564 +U 627 ; WX 694 ; N uni0273 ; G 565 +U 628 ; WX 646 ; N uni0274 ; G 566 +U 629 ; WX 602 ; N uni0275 ; G 567 +U 630 ; WX 790 ; N uni0276 ; G 568 +U 631 ; WX 821 ; N uni0277 ; G 569 +U 632 ; WX 692 ; N uni0278 ; G 570 +U 633 ; WX 501 ; N uni0279 ; G 571 +U 634 ; WX 501 ; N uni027A ; G 572 +U 635 ; WX 551 ; N uni027B ; G 573 +U 636 ; WX 478 ; N uni027C ; G 574 +U 637 ; WX 478 ; N uni027D ; G 575 +U 638 ; WX 453 ; N uni027E ; G 576 +U 639 ; WX 453 ; N uni027F ; G 577 +U 640 ; WX 581 ; N uni0280 ; G 578 +U 641 ; WX 581 ; N uni0281 ; G 579 +U 642 ; WX 513 ; N uni0282 ; G 580 +U 643 ; WX 271 ; N uni0283 ; G 581 +U 644 ; WX 370 ; N uni0284 ; G 582 +U 645 ; WX 487 ; N uni0285 ; G 583 +U 646 ; WX 324 ; N uni0286 ; G 584 +U 647 ; WX 402 ; N uni0287 ; G 585 +U 648 ; WX 402 ; N uni0288 ; G 586 +U 649 ; WX 644 ; N uni0289 ; G 587 +U 650 ; WX 620 ; N uni028A ; G 588 +U 651 ; WX 608 ; N uni028B ; G 589 +U 652 ; WX 565 ; N uni028C ; G 590 +U 653 ; WX 856 ; N uni028D ; G 591 +U 654 ; WX 565 ; N uni028E ; G 592 +U 655 ; WX 655 ; N uni028F ; G 593 +U 656 ; WX 597 ; N uni0290 ; G 594 +U 657 ; WX 560 ; N uni0291 ; G 595 +U 658 ; WX 564 ; N uni0292 ; G 596 +U 659 ; WX 560 ; N uni0293 ; G 597 +U 660 ; WX 536 ; N uni0294 ; G 598 +U 661 ; WX 536 ; N uni0295 ; G 599 +U 662 ; WX 536 ; N uni0296 ; G 600 +U 663 ; WX 420 ; N uni0297 ; G 601 +U 664 ; WX 820 ; N uni0298 ; G 602 +U 665 ; WX 563 ; N uni0299 ; G 603 +U 666 ; WX 613 ; N uni029A ; G 604 +U 667 ; WX 660 ; N uni029B ; G 605 +U 668 ; WX 667 ; N uni029C ; G 606 +U 669 ; WX 366 ; N uni029D ; G 607 +U 670 ; WX 606 ; N uni029E ; G 608 +U 671 ; WX 543 ; N uni029F ; G 609 +U 672 ; WX 683 ; N uni02A0 ; G 610 +U 673 ; WX 536 ; N uni02A1 ; G 611 +U 674 ; WX 536 ; N uni02A2 ; G 612 +U 675 ; WX 996 ; N uni02A3 ; G 613 +U 676 ; WX 1033 ; N uni02A4 ; G 614 +U 677 ; WX 998 ; N uni02A5 ; G 615 +U 678 ; WX 823 ; N uni02A6 ; G 616 +U 679 ; WX 598 ; N uni02A7 ; G 617 +U 680 ; WX 825 ; N uni02A8 ; G 618 +U 681 ; WX 894 ; N uni02A9 ; G 619 +U 682 ; WX 725 ; N uni02AA ; G 620 +U 683 ; WX 676 ; N uni02AB ; G 621 +U 684 ; WX 598 ; N uni02AC ; G 622 +U 685 ; WX 443 ; N uni02AD ; G 623 +U 686 ; WX 781 ; N uni02AE ; G 624 +U 687 ; WX 767 ; N uni02AF ; G 625 +U 688 ; WX 433 ; N uni02B0 ; G 626 +U 689 ; WX 430 ; N uni02B1 ; G 627 +U 690 ; WX 264 ; N uni02B2 ; G 628 +U 691 ; WX 347 ; N uni02B3 ; G 629 +U 692 ; WX 347 ; N uni02B4 ; G 630 +U 693 ; WX 430 ; N uni02B5 ; G 631 +U 694 ; WX 392 ; N uni02B6 ; G 632 +U 695 ; WX 539 ; N uni02B7 ; G 633 +U 696 ; WX 355 ; N uni02B8 ; G 634 +U 697 ; WX 278 ; N uni02B9 ; G 635 +U 698 ; WX 460 ; N uni02BA ; G 636 +U 699 ; WX 318 ; N uni02BB ; G 637 +U 700 ; WX 318 ; N uni02BC ; G 638 +U 701 ; WX 318 ; N uni02BD ; G 639 +U 702 ; WX 307 ; N uni02BE ; G 640 +U 703 ; WX 307 ; N uni02BF ; G 641 +U 704 ; WX 280 ; N uni02C0 ; G 642 +U 705 ; WX 281 ; N uni02C1 ; G 643 +U 706 ; WX 500 ; N uni02C2 ; G 644 +U 707 ; WX 500 ; N uni02C3 ; G 645 +U 708 ; WX 500 ; N uni02C4 ; G 646 +U 709 ; WX 500 ; N uni02C5 ; G 647 +U 710 ; WX 500 ; N circumflex ; G 648 +U 711 ; WX 500 ; N caron ; G 649 +U 712 ; WX 282 ; N uni02C8 ; G 650 +U 713 ; WX 500 ; N uni02C9 ; G 651 +U 714 ; WX 500 ; N uni02CA ; G 652 +U 715 ; WX 500 ; N uni02CB ; G 653 +U 716 ; WX 282 ; N uni02CC ; G 654 +U 717 ; WX 500 ; N uni02CD ; G 655 +U 720 ; WX 337 ; N uni02D0 ; G 656 +U 721 ; WX 337 ; N uni02D1 ; G 657 +U 722 ; WX 307 ; N uni02D2 ; G 658 +U 723 ; WX 307 ; N uni02D3 ; G 659 +U 726 ; WX 392 ; N uni02D6 ; G 660 +U 727 ; WX 392 ; N uni02D7 ; G 661 +U 728 ; WX 500 ; N breve ; G 662 +U 729 ; WX 500 ; N dotaccent ; G 663 +U 730 ; WX 500 ; N ring ; G 664 +U 731 ; WX 500 ; N ogonek ; G 665 +U 732 ; WX 500 ; N tilde ; G 666 +U 733 ; WX 500 ; N hungarumlaut ; G 667 +U 734 ; WX 417 ; N uni02DE ; G 668 +U 736 ; WX 377 ; N uni02E0 ; G 669 +U 737 ; WX 243 ; N uni02E1 ; G 670 +U 738 ; WX 337 ; N uni02E2 ; G 671 +U 739 ; WX 355 ; N uni02E3 ; G 672 +U 740 ; WX 281 ; N uni02E4 ; G 673 +U 741 ; WX 493 ; N uni02E5 ; G 674 +U 742 ; WX 493 ; N uni02E6 ; G 675 +U 743 ; WX 493 ; N uni02E7 ; G 676 +U 744 ; WX 493 ; N uni02E8 ; G 677 +U 745 ; WX 493 ; N uni02E9 ; G 678 +U 748 ; WX 500 ; N uni02EC ; G 679 +U 750 ; WX 484 ; N uni02EE ; G 680 +U 751 ; WX 500 ; N uni02EF ; G 681 +U 752 ; WX 500 ; N uni02F0 ; G 682 +U 755 ; WX 500 ; N uni02F3 ; G 683 +U 759 ; WX 500 ; N uni02F7 ; G 684 +U 768 ; WX 0 ; N gravecomb ; G 685 +U 769 ; WX 0 ; N acutecomb ; G 686 +U 770 ; WX 0 ; N uni0302 ; G 687 +U 771 ; WX 0 ; N tildecomb ; G 688 +U 772 ; WX 0 ; N uni0304 ; G 689 +U 773 ; WX 0 ; N uni0305 ; G 690 +U 774 ; WX 0 ; N uni0306 ; G 691 +U 775 ; WX 0 ; N uni0307 ; G 692 +U 776 ; WX 0 ; N uni0308 ; G 693 +U 777 ; WX 0 ; N hookabovecomb ; G 694 +U 778 ; WX 0 ; N uni030A ; G 695 +U 779 ; WX 0 ; N uni030B ; G 696 +U 780 ; WX 0 ; N uni030C ; G 697 +U 781 ; WX 0 ; N uni030D ; G 698 +U 782 ; WX 0 ; N uni030E ; G 699 +U 783 ; WX 0 ; N uni030F ; G 700 +U 784 ; WX 0 ; N uni0310 ; G 701 +U 785 ; WX 0 ; N uni0311 ; G 702 +U 786 ; WX 0 ; N uni0312 ; G 703 +U 787 ; WX 0 ; N uni0313 ; G 704 +U 788 ; WX 0 ; N uni0314 ; G 705 +U 789 ; WX 0 ; N uni0315 ; G 706 +U 790 ; WX 0 ; N uni0316 ; G 707 +U 791 ; WX 0 ; N uni0317 ; G 708 +U 792 ; WX 0 ; N uni0318 ; G 709 +U 793 ; WX 0 ; N uni0319 ; G 710 +U 794 ; WX 0 ; N uni031A ; G 711 +U 795 ; WX 0 ; N uni031B ; G 712 +U 796 ; WX 0 ; N uni031C ; G 713 +U 797 ; WX 0 ; N uni031D ; G 714 +U 798 ; WX 0 ; N uni031E ; G 715 +U 799 ; WX 0 ; N uni031F ; G 716 +U 800 ; WX 0 ; N uni0320 ; G 717 +U 801 ; WX 0 ; N uni0321 ; G 718 +U 802 ; WX 0 ; N uni0322 ; G 719 +U 803 ; WX 0 ; N dotbelowcomb ; G 720 +U 804 ; WX 0 ; N uni0324 ; G 721 +U 805 ; WX 0 ; N uni0325 ; G 722 +U 806 ; WX 0 ; N uni0326 ; G 723 +U 807 ; WX 0 ; N uni0327 ; G 724 +U 808 ; WX 0 ; N uni0328 ; G 725 +U 809 ; WX 0 ; N uni0329 ; G 726 +U 810 ; WX 0 ; N uni032A ; G 727 +U 811 ; WX 0 ; N uni032B ; G 728 +U 812 ; WX 0 ; N uni032C ; G 729 +U 813 ; WX 0 ; N uni032D ; G 730 +U 814 ; WX 0 ; N uni032E ; G 731 +U 815 ; WX 0 ; N uni032F ; G 732 +U 816 ; WX 0 ; N uni0330 ; G 733 +U 817 ; WX 0 ; N uni0331 ; G 734 +U 818 ; WX 0 ; N uni0332 ; G 735 +U 819 ; WX 0 ; N uni0333 ; G 736 +U 820 ; WX 0 ; N uni0334 ; G 737 +U 821 ; WX 0 ; N uni0335 ; G 738 +U 822 ; WX 0 ; N uni0336 ; G 739 +U 823 ; WX 0 ; N uni0337 ; G 740 +U 824 ; WX 0 ; N uni0338 ; G 741 +U 825 ; WX 0 ; N uni0339 ; G 742 +U 826 ; WX 0 ; N uni033A ; G 743 +U 827 ; WX 0 ; N uni033B ; G 744 +U 828 ; WX 0 ; N uni033C ; G 745 +U 829 ; WX 0 ; N uni033D ; G 746 +U 830 ; WX 0 ; N uni033E ; G 747 +U 831 ; WX 0 ; N uni033F ; G 748 +U 835 ; WX 0 ; N uni0343 ; G 749 +U 847 ; WX 0 ; N uni034F ; G 750 +U 856 ; WX 0 ; N uni0358 ; G 751 +U 864 ; WX 0 ; N uni0360 ; G 752 +U 865 ; WX 0 ; N uni0361 ; G 753 +U 880 ; WX 740 ; N uni0370 ; G 754 +U 881 ; WX 531 ; N uni0371 ; G 755 +U 882 ; WX 667 ; N uni0372 ; G 756 +U 883 ; WX 553 ; N uni0373 ; G 757 +U 884 ; WX 278 ; N uni0374 ; G 758 +U 885 ; WX 278 ; N uni0375 ; G 759 +U 886 ; WX 875 ; N uni0376 ; G 760 +U 887 ; WX 667 ; N uni0377 ; G 761 +U 890 ; WX 500 ; N uni037A ; G 762 +U 891 ; WX 560 ; N uni037B ; G 763 +U 892 ; WX 560 ; N uni037C ; G 764 +U 893 ; WX 560 ; N uni037D ; G 765 +U 894 ; WX 337 ; N uni037E ; G 766 +U 895 ; WX 401 ; N uni037F ; G 767 +U 900 ; WX 500 ; N tonos ; G 768 +U 901 ; WX 500 ; N dieresistonos ; G 769 +U 902 ; WX 722 ; N Alphatonos ; G 770 +U 903 ; WX 318 ; N anoteleia ; G 771 +U 904 ; WX 900 ; N Epsilontonos ; G 772 +U 905 ; WX 1039 ; N Etatonos ; G 773 +U 906 ; WX 562 ; N Iotatonos ; G 774 +U 908 ; WX 835 ; N Omicrontonos ; G 775 +U 910 ; WX 897 ; N Upsilontonos ; G 776 +U 911 ; WX 853 ; N Omegatonos ; G 777 +U 912 ; WX 392 ; N iotadieresistonos ; G 778 +U 913 ; WX 722 ; N Alpha ; G 779 +U 914 ; WX 735 ; N Beta ; G 780 +U 915 ; WX 694 ; N Gamma ; G 781 +U 916 ; WX 722 ; N uni0394 ; G 782 +U 917 ; WX 730 ; N Epsilon ; G 783 +U 918 ; WX 695 ; N Zeta ; G 784 +U 919 ; WX 872 ; N Eta ; G 785 +U 920 ; WX 820 ; N Theta ; G 786 +U 921 ; WX 395 ; N Iota ; G 787 +U 922 ; WX 747 ; N Kappa ; G 788 +U 923 ; WX 722 ; N Lambda ; G 789 +U 924 ; WX 1024 ; N Mu ; G 790 +U 925 ; WX 875 ; N Nu ; G 791 +U 926 ; WX 704 ; N Xi ; G 792 +U 927 ; WX 820 ; N Omicron ; G 793 +U 928 ; WX 872 ; N Pi ; G 794 +U 929 ; WX 673 ; N Rho ; G 795 +U 931 ; WX 707 ; N Sigma ; G 796 +U 932 ; WX 667 ; N Tau ; G 797 +U 933 ; WX 660 ; N Upsilon ; G 798 +U 934 ; WX 820 ; N Phi ; G 799 +U 935 ; WX 712 ; N Chi ; G 800 +U 936 ; WX 877 ; N Psi ; G 801 +U 937 ; WX 829 ; N Omega ; G 802 +U 938 ; WX 395 ; N Iotadieresis ; G 803 +U 939 ; WX 660 ; N Upsilondieresis ; G 804 +U 940 ; WX 675 ; N alphatonos ; G 805 +U 941 ; WX 537 ; N epsilontonos ; G 806 +U 942 ; WX 599 ; N etatonos ; G 807 +U 943 ; WX 392 ; N iotatonos ; G 808 +U 944 ; WX 608 ; N upsilondieresistonos ; G 809 +U 945 ; WX 675 ; N alpha ; G 810 +U 946 ; WX 578 ; N beta ; G 811 +U 947 ; WX 598 ; N gamma ; G 812 +U 948 ; WX 602 ; N delta ; G 813 +U 949 ; WX 537 ; N epsilon ; G 814 +U 950 ; WX 542 ; N zeta ; G 815 +U 951 ; WX 599 ; N eta ; G 816 +U 952 ; WX 602 ; N theta ; G 817 +U 953 ; WX 392 ; N iota ; G 818 +U 954 ; WX 656 ; N kappa ; G 819 +U 955 ; WX 634 ; N lambda ; G 820 +U 956 ; WX 650 ; N uni03BC ; G 821 +U 957 ; WX 608 ; N nu ; G 822 +U 958 ; WX 551 ; N xi ; G 823 +U 959 ; WX 602 ; N omicron ; G 824 +U 960 ; WX 657 ; N pi ; G 825 +U 961 ; WX 588 ; N rho ; G 826 +U 962 ; WX 560 ; N sigma1 ; G 827 +U 963 ; WX 683 ; N sigma ; G 828 +U 964 ; WX 553 ; N tau ; G 829 +U 965 ; WX 608 ; N upsilon ; G 830 +U 966 ; WX 700 ; N phi ; G 831 +U 967 ; WX 606 ; N chi ; G 832 +U 968 ; WX 784 ; N psi ; G 833 +U 969 ; WX 815 ; N omega ; G 834 +U 970 ; WX 392 ; N iotadieresis ; G 835 +U 971 ; WX 608 ; N upsilondieresis ; G 836 +U 972 ; WX 602 ; N omicrontonos ; G 837 +U 973 ; WX 608 ; N upsilontonos ; G 838 +U 974 ; WX 815 ; N omegatonos ; G 839 +U 975 ; WX 747 ; N uni03CF ; G 840 +U 976 ; WX 583 ; N uni03D0 ; G 841 +U 977 ; WX 715 ; N theta1 ; G 842 +U 978 ; WX 687 ; N Upsilon1 ; G 843 +U 979 ; WX 874 ; N uni03D3 ; G 844 +U 980 ; WX 687 ; N uni03D4 ; G 845 +U 981 ; WX 682 ; N phi1 ; G 846 +U 982 ; WX 815 ; N omega1 ; G 847 +U 983 ; WX 624 ; N uni03D7 ; G 848 +U 984 ; WX 820 ; N uni03D8 ; G 849 +U 985 ; WX 602 ; N uni03D9 ; G 850 +U 986 ; WX 765 ; N uni03DA ; G 851 +U 987 ; WX 560 ; N uni03DB ; G 852 +U 988 ; WX 694 ; N uni03DC ; G 853 +U 989 ; WX 463 ; N uni03DD ; G 854 +U 990 ; WX 590 ; N uni03DE ; G 855 +U 991 ; WX 660 ; N uni03DF ; G 856 +U 992 ; WX 782 ; N uni03E0 ; G 857 +U 993 ; WX 577 ; N uni03E1 ; G 858 +U 1008 ; WX 624 ; N uni03F0 ; G 859 +U 1009 ; WX 588 ; N uni03F1 ; G 860 +U 1010 ; WX 560 ; N uni03F2 ; G 861 +U 1011 ; WX 310 ; N uni03F3 ; G 862 +U 1012 ; WX 820 ; N uni03F4 ; G 863 +U 1013 ; WX 560 ; N uni03F5 ; G 864 +U 1014 ; WX 560 ; N uni03F6 ; G 865 +U 1015 ; WX 676 ; N uni03F7 ; G 866 +U 1016 ; WX 640 ; N uni03F8 ; G 867 +U 1017 ; WX 765 ; N uni03F9 ; G 868 +U 1018 ; WX 1024 ; N uni03FA ; G 869 +U 1019 ; WX 708 ; N uni03FB ; G 870 +U 1020 ; WX 588 ; N uni03FC ; G 871 +U 1021 ; WX 765 ; N uni03FD ; G 872 +U 1022 ; WX 765 ; N uni03FE ; G 873 +U 1023 ; WX 765 ; N uni03FF ; G 874 +U 1024 ; WX 730 ; N uni0400 ; G 875 +U 1025 ; WX 730 ; N uni0401 ; G 876 +U 1026 ; WX 799 ; N uni0402 ; G 877 +U 1027 ; WX 662 ; N uni0403 ; G 878 +U 1028 ; WX 765 ; N uni0404 ; G 879 +U 1029 ; WX 685 ; N uni0405 ; G 880 +U 1030 ; WX 395 ; N uni0406 ; G 881 +U 1031 ; WX 395 ; N uni0407 ; G 882 +U 1032 ; WX 401 ; N uni0408 ; G 883 +U 1033 ; WX 1084 ; N uni0409 ; G 884 +U 1034 ; WX 1118 ; N uni040A ; G 885 +U 1035 ; WX 872 ; N uni040B ; G 886 +U 1036 ; WX 774 ; N uni040C ; G 887 +U 1037 ; WX 872 ; N uni040D ; G 888 +U 1038 ; WX 723 ; N uni040E ; G 889 +U 1039 ; WX 872 ; N uni040F ; G 890 +U 1040 ; WX 757 ; N uni0410 ; G 891 +U 1041 ; WX 735 ; N uni0411 ; G 892 +U 1042 ; WX 735 ; N uni0412 ; G 893 +U 1043 ; WX 662 ; N uni0413 ; G 894 +U 1044 ; WX 813 ; N uni0414 ; G 895 +U 1045 ; WX 730 ; N uni0415 ; G 896 +U 1046 ; WX 1124 ; N uni0416 ; G 897 +U 1047 ; WX 623 ; N uni0417 ; G 898 +U 1048 ; WX 872 ; N uni0418 ; G 899 +U 1049 ; WX 872 ; N uni0419 ; G 900 +U 1050 ; WX 774 ; N uni041A ; G 901 +U 1051 ; WX 834 ; N uni041B ; G 902 +U 1052 ; WX 1024 ; N uni041C ; G 903 +U 1053 ; WX 872 ; N uni041D ; G 904 +U 1054 ; WX 820 ; N uni041E ; G 905 +U 1055 ; WX 872 ; N uni041F ; G 906 +U 1056 ; WX 673 ; N uni0420 ; G 907 +U 1057 ; WX 765 ; N uni0421 ; G 908 +U 1058 ; WX 667 ; N uni0422 ; G 909 +U 1059 ; WX 723 ; N uni0423 ; G 910 +U 1060 ; WX 830 ; N uni0424 ; G 911 +U 1061 ; WX 712 ; N uni0425 ; G 912 +U 1062 ; WX 872 ; N uni0426 ; G 913 +U 1063 ; WX 773 ; N uni0427 ; G 914 +U 1064 ; WX 1141 ; N uni0428 ; G 915 +U 1065 ; WX 1141 ; N uni0429 ; G 916 +U 1066 ; WX 794 ; N uni042A ; G 917 +U 1067 ; WX 984 ; N uni042B ; G 918 +U 1068 ; WX 674 ; N uni042C ; G 919 +U 1069 ; WX 765 ; N uni042D ; G 920 +U 1070 ; WX 1193 ; N uni042E ; G 921 +U 1071 ; WX 808 ; N uni042F ; G 922 +U 1072 ; WX 596 ; N uni0430 ; G 923 +U 1073 ; WX 610 ; N uni0431 ; G 924 +U 1074 ; WX 582 ; N uni0432 ; G 925 +U 1075 ; WX 505 ; N uni0433 ; G 926 +U 1076 ; WX 634 ; N uni0434 ; G 927 +U 1077 ; WX 592 ; N uni0435 ; G 928 +U 1078 ; WX 1137 ; N uni0436 ; G 929 +U 1079 ; WX 545 ; N uni0437 ; G 930 +U 1080 ; WX 644 ; N uni0438 ; G 931 +U 1081 ; WX 644 ; N uni0439 ; G 932 +U 1082 ; WX 597 ; N uni043A ; G 933 +U 1083 ; WX 637 ; N uni043B ; G 934 +U 1084 ; WX 829 ; N uni043C ; G 935 +U 1085 ; WX 659 ; N uni043D ; G 936 +U 1086 ; WX 602 ; N uni043E ; G 937 +U 1087 ; WX 644 ; N uni043F ; G 938 +U 1088 ; WX 640 ; N uni0440 ; G 939 +U 1089 ; WX 560 ; N uni0441 ; G 940 +U 1090 ; WX 948 ; N uni0442 ; G 941 +U 1091 ; WX 580 ; N uni0443 ; G 942 +U 1092 ; WX 783 ; N uni0444 ; G 943 +U 1093 ; WX 564 ; N uni0445 ; G 944 +U 1094 ; WX 698 ; N uni0446 ; G 945 +U 1095 ; WX 622 ; N uni0447 ; G 946 +U 1096 ; WX 947 ; N uni0448 ; G 947 +U 1097 ; WX 1001 ; N uni0449 ; G 948 +U 1098 ; WX 667 ; N uni044A ; G 949 +U 1099 ; WX 814 ; N uni044B ; G 950 +U 1100 ; WX 544 ; N uni044C ; G 951 +U 1101 ; WX 560 ; N uni044D ; G 952 +U 1102 ; WX 880 ; N uni044E ; G 953 +U 1103 ; WX 662 ; N uni044F ; G 954 +U 1104 ; WX 592 ; N uni0450 ; G 955 +U 1105 ; WX 592 ; N uni0451 ; G 956 +U 1106 ; WX 624 ; N uni0452 ; G 957 +U 1107 ; WX 505 ; N uni0453 ; G 958 +U 1108 ; WX 560 ; N uni0454 ; G 959 +U 1109 ; WX 513 ; N uni0455 ; G 960 +U 1110 ; WX 320 ; N uni0456 ; G 961 +U 1111 ; WX 320 ; N uni0457 ; G 962 +U 1112 ; WX 310 ; N uni0458 ; G 963 +U 1113 ; WX 859 ; N uni0459 ; G 964 +U 1114 ; WX 878 ; N uni045A ; G 965 +U 1115 ; WX 644 ; N uni045B ; G 966 +U 1116 ; WX 597 ; N uni045C ; G 967 +U 1117 ; WX 644 ; N uni045D ; G 968 +U 1118 ; WX 580 ; N uni045E ; G 969 +U 1119 ; WX 644 ; N uni045F ; G 970 +U 1122 ; WX 762 ; N uni0462 ; G 971 +U 1123 ; WX 882 ; N uni0463 ; G 972 +U 1124 ; WX 1129 ; N uni0464 ; G 973 +U 1125 ; WX 834 ; N uni0465 ; G 974 +U 1130 ; WX 1124 ; N uni046A ; G 975 +U 1131 ; WX 920 ; N uni046B ; G 976 +U 1132 ; WX 1359 ; N uni046C ; G 977 +U 1133 ; WX 1063 ; N uni046D ; G 978 +U 1136 ; WX 944 ; N uni0470 ; G 979 +U 1137 ; WX 902 ; N uni0471 ; G 980 +U 1138 ; WX 820 ; N uni0472 ; G 981 +U 1139 ; WX 552 ; N uni0473 ; G 982 +U 1140 ; WX 859 ; N uni0474 ; G 983 +U 1141 ; WX 678 ; N uni0475 ; G 984 +U 1142 ; WX 859 ; N uni0476 ; G 985 +U 1143 ; WX 678 ; N uni0477 ; G 986 +U 1164 ; WX 707 ; N uni048C ; G 987 +U 1165 ; WX 544 ; N uni048D ; G 988 +U 1168 ; WX 672 ; N uni0490 ; G 989 +U 1169 ; WX 529 ; N uni0491 ; G 990 +U 1170 ; WX 662 ; N uni0492 ; G 991 +U 1171 ; WX 505 ; N uni0493 ; G 992 +U 1172 ; WX 730 ; N uni0494 ; G 993 +U 1173 ; WX 614 ; N uni0495 ; G 994 +U 1174 ; WX 1124 ; N uni0496 ; G 995 +U 1175 ; WX 1137 ; N uni0497 ; G 996 +U 1176 ; WX 623 ; N uni0498 ; G 997 +U 1177 ; WX 545 ; N uni0499 ; G 998 +U 1178 ; WX 774 ; N uni049A ; G 999 +U 1179 ; WX 604 ; N uni049B ; G 1000 +U 1182 ; WX 774 ; N uni049E ; G 1001 +U 1183 ; WX 597 ; N uni049F ; G 1002 +U 1184 ; WX 892 ; N uni04A0 ; G 1003 +U 1185 ; WX 669 ; N uni04A1 ; G 1004 +U 1186 ; WX 872 ; N uni04A2 ; G 1005 +U 1187 ; WX 712 ; N uni04A3 ; G 1006 +U 1188 ; WX 1139 ; N uni04A4 ; G 1007 +U 1189 ; WX 857 ; N uni04A5 ; G 1008 +U 1190 ; WX 1206 ; N uni04A6 ; G 1009 +U 1191 ; WX 943 ; N uni04A7 ; G 1010 +U 1194 ; WX 765 ; N uni04AA ; G 1011 +U 1195 ; WX 560 ; N uni04AB ; G 1012 +U 1196 ; WX 667 ; N uni04AC ; G 1013 +U 1197 ; WX 1013 ; N uni04AD ; G 1014 +U 1198 ; WX 660 ; N uni04AE ; G 1015 +U 1199 ; WX 571 ; N uni04AF ; G 1016 +U 1200 ; WX 660 ; N uni04B0 ; G 1017 +U 1201 ; WX 571 ; N uni04B1 ; G 1018 +U 1202 ; WX 712 ; N uni04B2 ; G 1019 +U 1203 ; WX 629 ; N uni04B3 ; G 1020 +U 1204 ; WX 936 ; N uni04B4 ; G 1021 +U 1205 ; WX 732 ; N uni04B5 ; G 1022 +U 1206 ; WX 749 ; N uni04B6 ; G 1023 +U 1207 ; WX 677 ; N uni04B7 ; G 1024 +U 1210 ; WX 749 ; N uni04BA ; G 1025 +U 1211 ; WX 644 ; N uni04BB ; G 1026 +U 1216 ; WX 395 ; N uni04C0 ; G 1027 +U 1217 ; WX 1124 ; N uni04C1 ; G 1028 +U 1218 ; WX 1137 ; N uni04C2 ; G 1029 +U 1219 ; WX 747 ; N uni04C3 ; G 1030 +U 1220 ; WX 606 ; N uni04C4 ; G 1031 +U 1223 ; WX 872 ; N uni04C7 ; G 1032 +U 1224 ; WX 667 ; N uni04C8 ; G 1033 +U 1227 ; WX 749 ; N uni04CB ; G 1034 +U 1228 ; WX 667 ; N uni04CC ; G 1035 +U 1231 ; WX 320 ; N uni04CF ; G 1036 +U 1232 ; WX 757 ; N uni04D0 ; G 1037 +U 1233 ; WX 596 ; N uni04D1 ; G 1038 +U 1234 ; WX 757 ; N uni04D2 ; G 1039 +U 1235 ; WX 596 ; N uni04D3 ; G 1040 +U 1236 ; WX 1001 ; N uni04D4 ; G 1041 +U 1237 ; WX 940 ; N uni04D5 ; G 1042 +U 1238 ; WX 730 ; N uni04D6 ; G 1043 +U 1239 ; WX 592 ; N uni04D7 ; G 1044 +U 1240 ; WX 820 ; N uni04D8 ; G 1045 +U 1241 ; WX 592 ; N uni04D9 ; G 1046 +U 1242 ; WX 820 ; N uni04DA ; G 1047 +U 1243 ; WX 592 ; N uni04DB ; G 1048 +U 1244 ; WX 1124 ; N uni04DC ; G 1049 +U 1245 ; WX 1137 ; N uni04DD ; G 1050 +U 1246 ; WX 623 ; N uni04DE ; G 1051 +U 1247 ; WX 545 ; N uni04DF ; G 1052 +U 1248 ; WX 564 ; N uni04E0 ; G 1053 +U 1249 ; WX 564 ; N uni04E1 ; G 1054 +U 1250 ; WX 872 ; N uni04E2 ; G 1055 +U 1251 ; WX 644 ; N uni04E3 ; G 1056 +U 1252 ; WX 872 ; N uni04E4 ; G 1057 +U 1253 ; WX 644 ; N uni04E5 ; G 1058 +U 1254 ; WX 820 ; N uni04E6 ; G 1059 +U 1255 ; WX 602 ; N uni04E7 ; G 1060 +U 1256 ; WX 820 ; N uni04E8 ; G 1061 +U 1257 ; WX 602 ; N uni04E9 ; G 1062 +U 1258 ; WX 820 ; N uni04EA ; G 1063 +U 1259 ; WX 602 ; N uni04EB ; G 1064 +U 1260 ; WX 765 ; N uni04EC ; G 1065 +U 1261 ; WX 560 ; N uni04ED ; G 1066 +U 1262 ; WX 723 ; N uni04EE ; G 1067 +U 1263 ; WX 580 ; N uni04EF ; G 1068 +U 1264 ; WX 723 ; N uni04F0 ; G 1069 +U 1265 ; WX 580 ; N uni04F1 ; G 1070 +U 1266 ; WX 723 ; N uni04F2 ; G 1071 +U 1267 ; WX 580 ; N uni04F3 ; G 1072 +U 1268 ; WX 773 ; N uni04F4 ; G 1073 +U 1269 ; WX 622 ; N uni04F5 ; G 1074 +U 1270 ; WX 662 ; N uni04F6 ; G 1075 +U 1271 ; WX 505 ; N uni04F7 ; G 1076 +U 1272 ; WX 984 ; N uni04F8 ; G 1077 +U 1273 ; WX 814 ; N uni04F9 ; G 1078 +U 1296 ; WX 623 ; N uni0510 ; G 1079 +U 1297 ; WX 545 ; N uni0511 ; G 1080 +U 1298 ; WX 834 ; N uni0512 ; G 1081 +U 1299 ; WX 637 ; N uni0513 ; G 1082 +U 1300 ; WX 1199 ; N uni0514 ; G 1083 +U 1301 ; WX 939 ; N uni0515 ; G 1084 +U 1306 ; WX 820 ; N uni051A ; G 1085 +U 1307 ; WX 640 ; N uni051B ; G 1086 +U 1308 ; WX 1028 ; N uni051C ; G 1087 +U 1309 ; WX 856 ; N uni051D ; G 1088 +U 1329 ; WX 810 ; N uni0531 ; G 1089 +U 1330 ; WX 811 ; N uni0532 ; G 1090 +U 1331 ; WX 806 ; N uni0533 ; G 1091 +U 1332 ; WX 828 ; N uni0534 ; G 1092 +U 1333 ; WX 806 ; N uni0535 ; G 1093 +U 1334 ; WX 826 ; N uni0536 ; G 1094 +U 1335 ; WX 761 ; N uni0537 ; G 1095 +U 1336 ; WX 811 ; N uni0538 ; G 1096 +U 1337 ; WX 968 ; N uni0539 ; G 1097 +U 1338 ; WX 816 ; N uni053A ; G 1098 +U 1339 ; WX 772 ; N uni053B ; G 1099 +U 1340 ; WX 682 ; N uni053C ; G 1100 +U 1341 ; WX 1097 ; N uni053D ; G 1101 +U 1342 ; WX 845 ; N uni053E ; G 1102 +U 1343 ; WX 804 ; N uni053F ; G 1103 +U 1344 ; WX 719 ; N uni0540 ; G 1104 +U 1345 ; WX 810 ; N uni0541 ; G 1105 +U 1346 ; WX 833 ; N uni0542 ; G 1106 +U 1347 ; WX 831 ; N uni0543 ; G 1107 +U 1348 ; WX 897 ; N uni0544 ; G 1108 +U 1349 ; WX 763 ; N uni0545 ; G 1109 +U 1350 ; WX 794 ; N uni0546 ; G 1110 +U 1351 ; WX 754 ; N uni0547 ; G 1111 +U 1352 ; WX 799 ; N uni0548 ; G 1112 +U 1353 ; WX 797 ; N uni0549 ; G 1113 +U 1354 ; WX 875 ; N uni054A ; G 1114 +U 1355 ; WX 830 ; N uni054B ; G 1115 +U 1356 ; WX 864 ; N uni054C ; G 1116 +U 1357 ; WX 799 ; N uni054D ; G 1117 +U 1358 ; WX 802 ; N uni054E ; G 1118 +U 1359 ; WX 731 ; N uni054F ; G 1119 +U 1360 ; WX 774 ; N uni0550 ; G 1120 +U 1361 ; WX 749 ; N uni0551 ; G 1121 +U 1362 ; WX 633 ; N uni0552 ; G 1122 +U 1363 ; WX 845 ; N uni0553 ; G 1123 +U 1364 ; WX 843 ; N uni0554 ; G 1124 +U 1365 ; WX 835 ; N uni0555 ; G 1125 +U 1366 ; WX 821 ; N uni0556 ; G 1126 +U 1369 ; WX 307 ; N uni0559 ; G 1127 +U 1370 ; WX 264 ; N uni055A ; G 1128 +U 1371 ; WX 229 ; N uni055B ; G 1129 +U 1372 ; WX 391 ; N uni055C ; G 1130 +U 1373 ; WX 364 ; N uni055D ; G 1131 +U 1374 ; WX 386 ; N uni055E ; G 1132 +U 1375 ; WX 500 ; N uni055F ; G 1133 +U 1377 ; WX 949 ; N uni0561 ; G 1134 +U 1378 ; WX 618 ; N uni0562 ; G 1135 +U 1379 ; WX 695 ; N uni0563 ; G 1136 +U 1380 ; WX 695 ; N uni0564 ; G 1137 +U 1381 ; WX 628 ; N uni0565 ; G 1138 +U 1382 ; WX 688 ; N uni0566 ; G 1139 +U 1383 ; WX 510 ; N uni0567 ; G 1140 +U 1384 ; WX 636 ; N uni0568 ; G 1141 +U 1385 ; WX 791 ; N uni0569 ; G 1142 +U 1386 ; WX 671 ; N uni056A ; G 1143 +U 1387 ; WX 635 ; N uni056B ; G 1144 +U 1388 ; WX 305 ; N uni056C ; G 1145 +U 1389 ; WX 973 ; N uni056D ; G 1146 +U 1390 ; WX 614 ; N uni056E ; G 1147 +U 1391 ; WX 628 ; N uni056F ; G 1148 +U 1392 ; WX 636 ; N uni0570 ; G 1149 +U 1393 ; WX 630 ; N uni0571 ; G 1150 +U 1394 ; WX 636 ; N uni0572 ; G 1151 +U 1395 ; WX 654 ; N uni0573 ; G 1152 +U 1396 ; WX 644 ; N uni0574 ; G 1153 +U 1397 ; WX 309 ; N uni0575 ; G 1154 +U 1398 ; WX 636 ; N uni0576 ; G 1155 +U 1399 ; WX 461 ; N uni0577 ; G 1156 +U 1400 ; WX 649 ; N uni0578 ; G 1157 +U 1401 ; WX 365 ; N uni0579 ; G 1158 +U 1402 ; WX 940 ; N uni057A ; G 1159 +U 1403 ; WX 562 ; N uni057B ; G 1160 +U 1404 ; WX 657 ; N uni057C ; G 1161 +U 1405 ; WX 644 ; N uni057D ; G 1162 +U 1406 ; WX 630 ; N uni057E ; G 1163 +U 1407 ; WX 930 ; N uni057F ; G 1164 +U 1408 ; WX 644 ; N uni0580 ; G 1165 +U 1409 ; WX 643 ; N uni0581 ; G 1166 +U 1410 ; WX 483 ; N uni0582 ; G 1167 +U 1411 ; WX 930 ; N uni0583 ; G 1168 +U 1412 ; WX 636 ; N uni0584 ; G 1169 +U 1413 ; WX 609 ; N uni0585 ; G 1170 +U 1414 ; WX 809 ; N uni0586 ; G 1171 +U 1415 ; WX 789 ; N uni0587 ; G 1172 +U 1417 ; WX 340 ; N uni0589 ; G 1173 +U 1418 ; WX 334 ; N uni058A ; G 1174 +U 3647 ; WX 636 ; N uni0E3F ; G 1175 +U 4256 ; WX 732 ; N uni10A0 ; G 1176 +U 4257 ; WX 860 ; N uni10A1 ; G 1177 +U 4258 ; WX 837 ; N uni10A2 ; G 1178 +U 4259 ; WX 869 ; N uni10A3 ; G 1179 +U 4260 ; WX 743 ; N uni10A4 ; G 1180 +U 4261 ; WX 991 ; N uni10A5 ; G 1181 +U 4262 ; WX 925 ; N uni10A6 ; G 1182 +U 4263 ; WX 1111 ; N uni10A7 ; G 1183 +U 4264 ; WX 576 ; N uni10A8 ; G 1184 +U 4265 ; WX 760 ; N uni10A9 ; G 1185 +U 4266 ; WX 972 ; N uni10AA ; G 1186 +U 4267 ; WX 951 ; N uni10AB ; G 1187 +U 4268 ; WX 753 ; N uni10AC ; G 1188 +U 4269 ; WX 1084 ; N uni10AD ; G 1189 +U 4270 ; WX 906 ; N uni10AE ; G 1190 +U 4271 ; WX 838 ; N uni10AF ; G 1191 +U 4272 ; WX 1049 ; N uni10B0 ; G 1192 +U 4273 ; WX 743 ; N uni10B1 ; G 1193 +U 4274 ; WX 679 ; N uni10B2 ; G 1194 +U 4275 ; WX 1025 ; N uni10B3 ; G 1195 +U 4276 ; WX 946 ; N uni10B4 ; G 1196 +U 4277 ; WX 1029 ; N uni10B5 ; G 1197 +U 4278 ; WX 741 ; N uni10B6 ; G 1198 +U 4279 ; WX 743 ; N uni10B7 ; G 1199 +U 4280 ; WX 742 ; N uni10B8 ; G 1200 +U 4281 ; WX 743 ; N uni10B9 ; G 1201 +U 4282 ; WX 889 ; N uni10BA ; G 1202 +U 4283 ; WX 946 ; N uni10BB ; G 1203 +U 4284 ; WX 724 ; N uni10BC ; G 1204 +U 4285 ; WX 765 ; N uni10BD ; G 1205 +U 4286 ; WX 743 ; N uni10BE ; G 1206 +U 4287 ; WX 968 ; N uni10BF ; G 1207 +U 4288 ; WX 1010 ; N uni10C0 ; G 1208 +U 4289 ; WX 712 ; N uni10C1 ; G 1209 +U 4290 ; WX 874 ; N uni10C2 ; G 1210 +U 4291 ; WX 744 ; N uni10C3 ; G 1211 +U 4292 ; WX 847 ; N uni10C4 ; G 1212 +U 4293 ; WX 960 ; N uni10C5 ; G 1213 +U 4304 ; WX 550 ; N uni10D0 ; G 1214 +U 4305 ; WX 581 ; N uni10D1 ; G 1215 +U 4306 ; WX 599 ; N uni10D2 ; G 1216 +U 4307 ; WX 843 ; N uni10D3 ; G 1217 +U 4308 ; WX 571 ; N uni10D4 ; G 1218 +U 4309 ; WX 567 ; N uni10D5 ; G 1219 +U 4310 ; WX 620 ; N uni10D6 ; G 1220 +U 4311 ; WX 871 ; N uni10D7 ; G 1221 +U 4312 ; WX 569 ; N uni10D8 ; G 1222 +U 4313 ; WX 556 ; N uni10D9 ; G 1223 +U 4314 ; WX 1076 ; N uni10DA ; G 1224 +U 4315 ; WX 596 ; N uni10DB ; G 1225 +U 4316 ; WX 596 ; N uni10DC ; G 1226 +U 4317 ; WX 835 ; N uni10DD ; G 1227 +U 4318 ; WX 580 ; N uni10DE ; G 1228 +U 4319 ; WX 590 ; N uni10DF ; G 1229 +U 4320 ; WX 833 ; N uni10E0 ; G 1230 +U 4321 ; WX 607 ; N uni10E1 ; G 1231 +U 4322 ; WX 758 ; N uni10E2 ; G 1232 +U 4323 ; WX 701 ; N uni10E3 ; G 1233 +U 4324 ; WX 825 ; N uni10E4 ; G 1234 +U 4325 ; WX 595 ; N uni10E5 ; G 1235 +U 4326 ; WX 868 ; N uni10E6 ; G 1236 +U 4327 ; WX 578 ; N uni10E7 ; G 1237 +U 4328 ; WX 604 ; N uni10E8 ; G 1238 +U 4329 ; WX 596 ; N uni10E9 ; G 1239 +U 4330 ; WX 685 ; N uni10EA ; G 1240 +U 4331 ; WX 597 ; N uni10EB ; G 1241 +U 4332 ; WX 557 ; N uni10EC ; G 1242 +U 4333 ; WX 585 ; N uni10ED ; G 1243 +U 4334 ; WX 625 ; N uni10EE ; G 1244 +U 4335 ; WX 693 ; N uni10EF ; G 1245 +U 4336 ; WX 582 ; N uni10F0 ; G 1246 +U 4337 ; WX 613 ; N uni10F1 ; G 1247 +U 4338 ; WX 581 ; N uni10F2 ; G 1248 +U 4339 ; WX 582 ; N uni10F3 ; G 1249 +U 4340 ; WX 580 ; N uni10F4 ; G 1250 +U 4341 ; WX 659 ; N uni10F5 ; G 1251 +U 4342 ; WX 896 ; N uni10F6 ; G 1252 +U 4343 ; WX 636 ; N uni10F7 ; G 1253 +U 4344 ; WX 592 ; N uni10F8 ; G 1254 +U 4345 ; WX 628 ; N uni10F9 ; G 1255 +U 4346 ; WX 581 ; N uni10FA ; G 1256 +U 4347 ; WX 456 ; N uni10FB ; G 1257 +U 4348 ; WX 373 ; N uni10FC ; G 1258 +U 7424 ; WX 565 ; N uni1D00 ; G 1259 +U 7425 ; WX 774 ; N uni1D01 ; G 1260 +U 7426 ; WX 940 ; N uni1D02 ; G 1261 +U 7427 ; WX 563 ; N uni1D03 ; G 1262 +U 7428 ; WX 560 ; N uni1D04 ; G 1263 +U 7429 ; WX 585 ; N uni1D05 ; G 1264 +U 7430 ; WX 585 ; N uni1D06 ; G 1265 +U 7431 ; WX 553 ; N uni1D07 ; G 1266 +U 7432 ; WX 509 ; N uni1D08 ; G 1267 +U 7433 ; WX 320 ; N uni1D09 ; G 1268 +U 7434 ; WX 499 ; N uni1D0A ; G 1269 +U 7435 ; WX 597 ; N uni1D0B ; G 1270 +U 7436 ; WX 543 ; N uni1D0C ; G 1271 +U 7437 ; WX 778 ; N uni1D0D ; G 1272 +U 7438 ; WX 667 ; N uni1D0E ; G 1273 +U 7439 ; WX 602 ; N uni1D0F ; G 1274 +U 7440 ; WX 560 ; N uni1D10 ; G 1275 +U 7441 ; WX 647 ; N uni1D11 ; G 1276 +U 7442 ; WX 647 ; N uni1D12 ; G 1277 +U 7443 ; WX 647 ; N uni1D13 ; G 1278 +U 7444 ; WX 989 ; N uni1D14 ; G 1279 +U 7445 ; WX 512 ; N uni1D15 ; G 1280 +U 7446 ; WX 602 ; N uni1D16 ; G 1281 +U 7447 ; WX 602 ; N uni1D17 ; G 1282 +U 7448 ; WX 553 ; N uni1D18 ; G 1283 +U 7449 ; WX 594 ; N uni1D19 ; G 1284 +U 7450 ; WX 594 ; N uni1D1A ; G 1285 +U 7451 ; WX 553 ; N uni1D1B ; G 1286 +U 7452 ; WX 585 ; N uni1D1C ; G 1287 +U 7453 ; WX 664 ; N uni1D1D ; G 1288 +U 7454 ; WX 923 ; N uni1D1E ; G 1289 +U 7455 ; WX 655 ; N uni1D1F ; G 1290 +U 7456 ; WX 565 ; N uni1D20 ; G 1291 +U 7457 ; WX 856 ; N uni1D21 ; G 1292 +U 7458 ; WX 527 ; N uni1D22 ; G 1293 +U 7459 ; WX 527 ; N uni1D23 ; G 1294 +U 7460 ; WX 531 ; N uni1D24 ; G 1295 +U 7461 ; WX 743 ; N uni1D25 ; G 1296 +U 7462 ; WX 524 ; N uni1D26 ; G 1297 +U 7463 ; WX 565 ; N uni1D27 ; G 1298 +U 7464 ; WX 657 ; N uni1D28 ; G 1299 +U 7465 ; WX 553 ; N uni1D29 ; G 1300 +U 7466 ; WX 703 ; N uni1D2A ; G 1301 +U 7467 ; WX 635 ; N uni1D2B ; G 1302 +U 7468 ; WX 455 ; N uni1D2C ; G 1303 +U 7469 ; WX 630 ; N uni1D2D ; G 1304 +U 7470 ; WX 463 ; N uni1D2E ; G 1305 +U 7471 ; WX 463 ; N uni1D2F ; G 1306 +U 7472 ; WX 505 ; N uni1D30 ; G 1307 +U 7473 ; WX 459 ; N uni1D31 ; G 1308 +U 7474 ; WX 459 ; N uni1D32 ; G 1309 +U 7475 ; WX 503 ; N uni1D33 ; G 1310 +U 7476 ; WX 549 ; N uni1D34 ; G 1311 +U 7477 ; WX 249 ; N uni1D35 ; G 1312 +U 7478 ; WX 252 ; N uni1D36 ; G 1313 +U 7479 ; WX 470 ; N uni1D37 ; G 1314 +U 7480 ; WX 418 ; N uni1D38 ; G 1315 +U 7481 ; WX 645 ; N uni1D39 ; G 1316 +U 7482 ; WX 551 ; N uni1D3A ; G 1317 +U 7483 ; WX 551 ; N uni1D3B ; G 1318 +U 7484 ; WX 516 ; N uni1D3C ; G 1319 +U 7485 ; WX 369 ; N uni1D3D ; G 1320 +U 7486 ; WX 424 ; N uni1D3E ; G 1321 +U 7487 ; WX 474 ; N uni1D3F ; G 1322 +U 7488 ; WX 420 ; N uni1D40 ; G 1323 +U 7489 ; WX 531 ; N uni1D41 ; G 1324 +U 7490 ; WX 647 ; N uni1D42 ; G 1325 +U 7491 ; WX 375 ; N uni1D43 ; G 1326 +U 7492 ; WX 375 ; N uni1D44 ; G 1327 +U 7493 ; WX 425 ; N uni1D45 ; G 1328 +U 7494 ; WX 592 ; N uni1D46 ; G 1329 +U 7495 ; WX 400 ; N uni1D47 ; G 1330 +U 7496 ; WX 400 ; N uni1D48 ; G 1331 +U 7497 ; WX 387 ; N uni1D49 ; G 1332 +U 7498 ; WX 387 ; N uni1D4A ; G 1333 +U 7499 ; WX 428 ; N uni1D4B ; G 1334 +U 7500 ; WX 340 ; N uni1D4C ; G 1335 +U 7501 ; WX 400 ; N uni1D4D ; G 1336 +U 7502 ; WX 175 ; N uni1D4E ; G 1337 +U 7503 ; WX 365 ; N uni1D4F ; G 1338 +U 7504 ; WX 613 ; N uni1D50 ; G 1339 +U 7505 ; WX 399 ; N uni1D51 ; G 1340 +U 7506 ; WX 385 ; N uni1D52 ; G 1341 +U 7507 ; WX 346 ; N uni1D53 ; G 1342 +U 7508 ; WX 385 ; N uni1D54 ; G 1343 +U 7509 ; WX 385 ; N uni1D55 ; G 1344 +U 7510 ; WX 400 ; N uni1D56 ; G 1345 +U 7511 ; WX 247 ; N uni1D57 ; G 1346 +U 7512 ; WX 399 ; N uni1D58 ; G 1347 +U 7513 ; WX 418 ; N uni1D59 ; G 1348 +U 7514 ; WX 613 ; N uni1D5A ; G 1349 +U 7515 ; WX 373 ; N uni1D5B ; G 1350 +U 7516 ; WX 468 ; N uni1D5C ; G 1351 +U 7517 ; WX 364 ; N uni1D5D ; G 1352 +U 7518 ; WX 376 ; N uni1D5E ; G 1353 +U 7519 ; WX 379 ; N uni1D5F ; G 1354 +U 7520 ; WX 441 ; N uni1D60 ; G 1355 +U 7521 ; WX 381 ; N uni1D61 ; G 1356 +U 7522 ; WX 201 ; N uni1D62 ; G 1357 +U 7523 ; WX 347 ; N uni1D63 ; G 1358 +U 7524 ; WX 399 ; N uni1D64 ; G 1359 +U 7525 ; WX 373 ; N uni1D65 ; G 1360 +U 7526 ; WX 364 ; N uni1D66 ; G 1361 +U 7527 ; WX 376 ; N uni1D67 ; G 1362 +U 7528 ; WX 370 ; N uni1D68 ; G 1363 +U 7529 ; WX 441 ; N uni1D69 ; G 1364 +U 7530 ; WX 381 ; N uni1D6A ; G 1365 +U 7531 ; WX 974 ; N uni1D6B ; G 1366 +U 7543 ; WX 640 ; N uni1D77 ; G 1367 +U 7544 ; WX 549 ; N uni1D78 ; G 1368 +U 7547 ; WX 320 ; N uni1D7B ; G 1369 +U 7548 ; WX 392 ; N uni1D7C ; G 1370 +U 7549 ; WX 640 ; N uni1D7D ; G 1371 +U 7550 ; WX 585 ; N uni1D7E ; G 1372 +U 7551 ; WX 620 ; N uni1D7F ; G 1373 +U 7557 ; WX 320 ; N uni1D85 ; G 1374 +U 7579 ; WX 425 ; N uni1D9B ; G 1375 +U 7580 ; WX 353 ; N uni1D9C ; G 1376 +U 7581 ; WX 353 ; N uni1D9D ; G 1377 +U 7582 ; WX 473 ; N uni1D9E ; G 1378 +U 7583 ; WX 428 ; N uni1D9F ; G 1379 +U 7584 ; WX 233 ; N uni1DA0 ; G 1380 +U 7585 ; WX 316 ; N uni1DA1 ; G 1381 +U 7586 ; WX 488 ; N uni1DA2 ; G 1382 +U 7587 ; WX 399 ; N uni1DA3 ; G 1383 +U 7588 ; WX 201 ; N uni1DA4 ; G 1384 +U 7589 ; WX 201 ; N uni1DA5 ; G 1385 +U 7590 ; WX 201 ; N uni1DA6 ; G 1386 +U 7591 ; WX 201 ; N uni1DA7 ; G 1387 +U 7592 ; WX 318 ; N uni1DA8 ; G 1388 +U 7593 ; WX 263 ; N uni1DA9 ; G 1389 +U 7594 ; WX 263 ; N uni1DAA ; G 1390 +U 7595 ; WX 455 ; N uni1DAB ; G 1391 +U 7596 ; WX 613 ; N uni1DAC ; G 1392 +U 7597 ; WX 613 ; N uni1DAD ; G 1393 +U 7598 ; WX 495 ; N uni1DAE ; G 1394 +U 7599 ; WX 492 ; N uni1DAF ; G 1395 +U 7600 ; WX 487 ; N uni1DB0 ; G 1396 +U 7601 ; WX 385 ; N uni1DB1 ; G 1397 +U 7602 ; WX 473 ; N uni1DB2 ; G 1398 +U 7603 ; WX 328 ; N uni1DB3 ; G 1399 +U 7604 ; WX 299 ; N uni1DB4 ; G 1400 +U 7605 ; WX 334 ; N uni1DB5 ; G 1401 +U 7606 ; WX 399 ; N uni1DB6 ; G 1402 +U 7607 ; WX 477 ; N uni1DB7 ; G 1403 +U 7608 ; WX 368 ; N uni1DB8 ; G 1404 +U 7609 ; WX 464 ; N uni1DB9 ; G 1405 +U 7610 ; WX 355 ; N uni1DBA ; G 1406 +U 7611 ; WX 332 ; N uni1DBB ; G 1407 +U 7612 ; WX 418 ; N uni1DBC ; G 1408 +U 7613 ; WX 418 ; N uni1DBD ; G 1409 +U 7614 ; WX 452 ; N uni1DBE ; G 1410 +U 7615 ; WX 473 ; N uni1DBF ; G 1411 +U 7620 ; WX 0 ; N uni1DC4 ; G 1412 +U 7621 ; WX 0 ; N uni1DC5 ; G 1413 +U 7622 ; WX 0 ; N uni1DC6 ; G 1414 +U 7623 ; WX 0 ; N uni1DC7 ; G 1415 +U 7624 ; WX 0 ; N uni1DC8 ; G 1416 +U 7625 ; WX 0 ; N uni1DC9 ; G 1417 +U 7680 ; WX 722 ; N uni1E00 ; G 1418 +U 7681 ; WX 596 ; N uni1E01 ; G 1419 +U 7682 ; WX 735 ; N uni1E02 ; G 1420 +U 7683 ; WX 640 ; N uni1E03 ; G 1421 +U 7684 ; WX 735 ; N uni1E04 ; G 1422 +U 7685 ; WX 640 ; N uni1E05 ; G 1423 +U 7686 ; WX 735 ; N uni1E06 ; G 1424 +U 7687 ; WX 640 ; N uni1E07 ; G 1425 +U 7688 ; WX 765 ; N uni1E08 ; G 1426 +U 7689 ; WX 560 ; N uni1E09 ; G 1427 +U 7690 ; WX 802 ; N uni1E0A ; G 1428 +U 7691 ; WX 640 ; N uni1E0B ; G 1429 +U 7692 ; WX 802 ; N uni1E0C ; G 1430 +U 7693 ; WX 640 ; N uni1E0D ; G 1431 +U 7694 ; WX 802 ; N uni1E0E ; G 1432 +U 7695 ; WX 640 ; N uni1E0F ; G 1433 +U 7696 ; WX 802 ; N uni1E10 ; G 1434 +U 7697 ; WX 640 ; N uni1E11 ; G 1435 +U 7698 ; WX 802 ; N uni1E12 ; G 1436 +U 7699 ; WX 640 ; N uni1E13 ; G 1437 +U 7700 ; WX 730 ; N uni1E14 ; G 1438 +U 7701 ; WX 592 ; N uni1E15 ; G 1439 +U 7702 ; WX 730 ; N uni1E16 ; G 1440 +U 7703 ; WX 592 ; N uni1E17 ; G 1441 +U 7704 ; WX 730 ; N uni1E18 ; G 1442 +U 7705 ; WX 592 ; N uni1E19 ; G 1443 +U 7706 ; WX 730 ; N uni1E1A ; G 1444 +U 7707 ; WX 592 ; N uni1E1B ; G 1445 +U 7708 ; WX 730 ; N uni1E1C ; G 1446 +U 7709 ; WX 592 ; N uni1E1D ; G 1447 +U 7710 ; WX 694 ; N uni1E1E ; G 1448 +U 7711 ; WX 370 ; N uni1E1F ; G 1449 +U 7712 ; WX 799 ; N uni1E20 ; G 1450 +U 7713 ; WX 640 ; N uni1E21 ; G 1451 +U 7714 ; WX 872 ; N uni1E22 ; G 1452 +U 7715 ; WX 644 ; N uni1E23 ; G 1453 +U 7716 ; WX 872 ; N uni1E24 ; G 1454 +U 7717 ; WX 644 ; N uni1E25 ; G 1455 +U 7718 ; WX 872 ; N uni1E26 ; G 1456 +U 7719 ; WX 644 ; N uni1E27 ; G 1457 +U 7720 ; WX 872 ; N uni1E28 ; G 1458 +U 7721 ; WX 644 ; N uni1E29 ; G 1459 +U 7722 ; WX 872 ; N uni1E2A ; G 1460 +U 7723 ; WX 644 ; N uni1E2B ; G 1461 +U 7724 ; WX 395 ; N uni1E2C ; G 1462 +U 7725 ; WX 320 ; N uni1E2D ; G 1463 +U 7726 ; WX 395 ; N uni1E2E ; G 1464 +U 7727 ; WX 320 ; N uni1E2F ; G 1465 +U 7728 ; WX 747 ; N uni1E30 ; G 1466 +U 7729 ; WX 606 ; N uni1E31 ; G 1467 +U 7730 ; WX 747 ; N uni1E32 ; G 1468 +U 7731 ; WX 606 ; N uni1E33 ; G 1469 +U 7732 ; WX 747 ; N uni1E34 ; G 1470 +U 7733 ; WX 606 ; N uni1E35 ; G 1471 +U 7734 ; WX 664 ; N uni1E36 ; G 1472 +U 7735 ; WX 320 ; N uni1E37 ; G 1473 +U 7736 ; WX 664 ; N uni1E38 ; G 1474 +U 7737 ; WX 320 ; N uni1E39 ; G 1475 +U 7738 ; WX 664 ; N uni1E3A ; G 1476 +U 7739 ; WX 320 ; N uni1E3B ; G 1477 +U 7740 ; WX 664 ; N uni1E3C ; G 1478 +U 7741 ; WX 320 ; N uni1E3D ; G 1479 +U 7742 ; WX 1024 ; N uni1E3E ; G 1480 +U 7743 ; WX 948 ; N uni1E3F ; G 1481 +U 7744 ; WX 1024 ; N uni1E40 ; G 1482 +U 7745 ; WX 948 ; N uni1E41 ; G 1483 +U 7746 ; WX 1024 ; N uni1E42 ; G 1484 +U 7747 ; WX 953 ; N uni1E43 ; G 1485 +U 7748 ; WX 875 ; N uni1E44 ; G 1486 +U 7749 ; WX 644 ; N uni1E45 ; G 1487 +U 7750 ; WX 875 ; N uni1E46 ; G 1488 +U 7751 ; WX 644 ; N uni1E47 ; G 1489 +U 7752 ; WX 875 ; N uni1E48 ; G 1490 +U 7753 ; WX 644 ; N uni1E49 ; G 1491 +U 7754 ; WX 875 ; N uni1E4A ; G 1492 +U 7755 ; WX 644 ; N uni1E4B ; G 1493 +U 7756 ; WX 820 ; N uni1E4C ; G 1494 +U 7757 ; WX 602 ; N uni1E4D ; G 1495 +U 7758 ; WX 820 ; N uni1E4E ; G 1496 +U 7759 ; WX 602 ; N uni1E4F ; G 1497 +U 7760 ; WX 820 ; N uni1E50 ; G 1498 +U 7761 ; WX 602 ; N uni1E51 ; G 1499 +U 7762 ; WX 820 ; N uni1E52 ; G 1500 +U 7763 ; WX 602 ; N uni1E53 ; G 1501 +U 7764 ; WX 673 ; N uni1E54 ; G 1502 +U 7765 ; WX 640 ; N uni1E55 ; G 1503 +U 7766 ; WX 673 ; N uni1E56 ; G 1504 +U 7767 ; WX 640 ; N uni1E57 ; G 1505 +U 7768 ; WX 753 ; N uni1E58 ; G 1506 +U 7769 ; WX 478 ; N uni1E59 ; G 1507 +U 7770 ; WX 753 ; N uni1E5A ; G 1508 +U 7771 ; WX 478 ; N uni1E5B ; G 1509 +U 7772 ; WX 753 ; N uni1E5C ; G 1510 +U 7773 ; WX 478 ; N uni1E5D ; G 1511 +U 7774 ; WX 753 ; N uni1E5E ; G 1512 +U 7775 ; WX 478 ; N uni1E5F ; G 1513 +U 7776 ; WX 685 ; N uni1E60 ; G 1514 +U 7777 ; WX 513 ; N uni1E61 ; G 1515 +U 7778 ; WX 685 ; N uni1E62 ; G 1516 +U 7779 ; WX 513 ; N uni1E63 ; G 1517 +U 7780 ; WX 685 ; N uni1E64 ; G 1518 +U 7781 ; WX 513 ; N uni1E65 ; G 1519 +U 7782 ; WX 685 ; N uni1E66 ; G 1520 +U 7783 ; WX 521 ; N uni1E67 ; G 1521 +U 7784 ; WX 685 ; N uni1E68 ; G 1522 +U 7785 ; WX 513 ; N uni1E69 ; G 1523 +U 7786 ; WX 667 ; N uni1E6A ; G 1524 +U 7787 ; WX 402 ; N uni1E6B ; G 1525 +U 7788 ; WX 667 ; N uni1E6C ; G 1526 +U 7789 ; WX 402 ; N uni1E6D ; G 1527 +U 7790 ; WX 667 ; N uni1E6E ; G 1528 +U 7791 ; WX 402 ; N uni1E6F ; G 1529 +U 7792 ; WX 667 ; N uni1E70 ; G 1530 +U 7793 ; WX 402 ; N uni1E71 ; G 1531 +U 7794 ; WX 843 ; N uni1E72 ; G 1532 +U 7795 ; WX 644 ; N uni1E73 ; G 1533 +U 7796 ; WX 843 ; N uni1E74 ; G 1534 +U 7797 ; WX 644 ; N uni1E75 ; G 1535 +U 7798 ; WX 843 ; N uni1E76 ; G 1536 +U 7799 ; WX 644 ; N uni1E77 ; G 1537 +U 7800 ; WX 843 ; N uni1E78 ; G 1538 +U 7801 ; WX 644 ; N uni1E79 ; G 1539 +U 7802 ; WX 843 ; N uni1E7A ; G 1540 +U 7803 ; WX 644 ; N uni1E7B ; G 1541 +U 7804 ; WX 722 ; N uni1E7C ; G 1542 +U 7805 ; WX 565 ; N uni1E7D ; G 1543 +U 7806 ; WX 722 ; N uni1E7E ; G 1544 +U 7807 ; WX 565 ; N uni1E7F ; G 1545 +U 7808 ; WX 1028 ; N Wgrave ; G 1546 +U 7809 ; WX 856 ; N wgrave ; G 1547 +U 7810 ; WX 1028 ; N Wacute ; G 1548 +U 7811 ; WX 856 ; N wacute ; G 1549 +U 7812 ; WX 1028 ; N Wdieresis ; G 1550 +U 7813 ; WX 856 ; N wdieresis ; G 1551 +U 7814 ; WX 1028 ; N uni1E86 ; G 1552 +U 7815 ; WX 856 ; N uni1E87 ; G 1553 +U 7816 ; WX 1028 ; N uni1E88 ; G 1554 +U 7817 ; WX 856 ; N uni1E89 ; G 1555 +U 7818 ; WX 712 ; N uni1E8A ; G 1556 +U 7819 ; WX 564 ; N uni1E8B ; G 1557 +U 7820 ; WX 712 ; N uni1E8C ; G 1558 +U 7821 ; WX 564 ; N uni1E8D ; G 1559 +U 7822 ; WX 660 ; N uni1E8E ; G 1560 +U 7823 ; WX 565 ; N uni1E8F ; G 1561 +U 7824 ; WX 695 ; N uni1E90 ; G 1562 +U 7825 ; WX 527 ; N uni1E91 ; G 1563 +U 7826 ; WX 695 ; N uni1E92 ; G 1564 +U 7827 ; WX 527 ; N uni1E93 ; G 1565 +U 7828 ; WX 695 ; N uni1E94 ; G 1566 +U 7829 ; WX 527 ; N uni1E95 ; G 1567 +U 7830 ; WX 644 ; N uni1E96 ; G 1568 +U 7831 ; WX 402 ; N uni1E97 ; G 1569 +U 7832 ; WX 856 ; N uni1E98 ; G 1570 +U 7833 ; WX 565 ; N uni1E99 ; G 1571 +U 7834 ; WX 903 ; N uni1E9A ; G 1572 +U 7835 ; WX 370 ; N uni1E9B ; G 1573 +U 7836 ; WX 370 ; N uni1E9C ; G 1574 +U 7837 ; WX 370 ; N uni1E9D ; G 1575 +U 7838 ; WX 829 ; N uni1E9E ; G 1576 +U 7839 ; WX 602 ; N uni1E9F ; G 1577 +U 7840 ; WX 722 ; N uni1EA0 ; G 1578 +U 7841 ; WX 596 ; N uni1EA1 ; G 1579 +U 7842 ; WX 722 ; N uni1EA2 ; G 1580 +U 7843 ; WX 596 ; N uni1EA3 ; G 1581 +U 7844 ; WX 722 ; N uni1EA4 ; G 1582 +U 7845 ; WX 613 ; N uni1EA5 ; G 1583 +U 7846 ; WX 722 ; N uni1EA6 ; G 1584 +U 7847 ; WX 613 ; N uni1EA7 ; G 1585 +U 7848 ; WX 722 ; N uni1EA8 ; G 1586 +U 7849 ; WX 613 ; N uni1EA9 ; G 1587 +U 7850 ; WX 722 ; N uni1EAA ; G 1588 +U 7851 ; WX 613 ; N uni1EAB ; G 1589 +U 7852 ; WX 722 ; N uni1EAC ; G 1590 +U 7853 ; WX 596 ; N uni1EAD ; G 1591 +U 7854 ; WX 722 ; N uni1EAE ; G 1592 +U 7855 ; WX 596 ; N uni1EAF ; G 1593 +U 7856 ; WX 722 ; N uni1EB0 ; G 1594 +U 7857 ; WX 596 ; N uni1EB1 ; G 1595 +U 7858 ; WX 722 ; N uni1EB2 ; G 1596 +U 7859 ; WX 596 ; N uni1EB3 ; G 1597 +U 7860 ; WX 722 ; N uni1EB4 ; G 1598 +U 7861 ; WX 596 ; N uni1EB5 ; G 1599 +U 7862 ; WX 722 ; N uni1EB6 ; G 1600 +U 7863 ; WX 596 ; N uni1EB7 ; G 1601 +U 7864 ; WX 730 ; N uni1EB8 ; G 1602 +U 7865 ; WX 592 ; N uni1EB9 ; G 1603 +U 7866 ; WX 730 ; N uni1EBA ; G 1604 +U 7867 ; WX 592 ; N uni1EBB ; G 1605 +U 7868 ; WX 730 ; N uni1EBC ; G 1606 +U 7869 ; WX 592 ; N uni1EBD ; G 1607 +U 7870 ; WX 730 ; N uni1EBE ; G 1608 +U 7871 ; WX 615 ; N uni1EBF ; G 1609 +U 7872 ; WX 730 ; N uni1EC0 ; G 1610 +U 7873 ; WX 615 ; N uni1EC1 ; G 1611 +U 7874 ; WX 730 ; N uni1EC2 ; G 1612 +U 7875 ; WX 615 ; N uni1EC3 ; G 1613 +U 7876 ; WX 730 ; N uni1EC4 ; G 1614 +U 7877 ; WX 615 ; N uni1EC5 ; G 1615 +U 7878 ; WX 730 ; N uni1EC6 ; G 1616 +U 7879 ; WX 592 ; N uni1EC7 ; G 1617 +U 7880 ; WX 395 ; N uni1EC8 ; G 1618 +U 7881 ; WX 320 ; N uni1EC9 ; G 1619 +U 7882 ; WX 395 ; N uni1ECA ; G 1620 +U 7883 ; WX 320 ; N uni1ECB ; G 1621 +U 7884 ; WX 820 ; N uni1ECC ; G 1622 +U 7885 ; WX 602 ; N uni1ECD ; G 1623 +U 7886 ; WX 820 ; N uni1ECE ; G 1624 +U 7887 ; WX 602 ; N uni1ECF ; G 1625 +U 7888 ; WX 820 ; N uni1ED0 ; G 1626 +U 7889 ; WX 612 ; N uni1ED1 ; G 1627 +U 7890 ; WX 820 ; N uni1ED2 ; G 1628 +U 7891 ; WX 612 ; N uni1ED3 ; G 1629 +U 7892 ; WX 820 ; N uni1ED4 ; G 1630 +U 7893 ; WX 612 ; N uni1ED5 ; G 1631 +U 7894 ; WX 820 ; N uni1ED6 ; G 1632 +U 7895 ; WX 612 ; N uni1ED7 ; G 1633 +U 7896 ; WX 820 ; N uni1ED8 ; G 1634 +U 7897 ; WX 602 ; N uni1ED9 ; G 1635 +U 7898 ; WX 820 ; N uni1EDA ; G 1636 +U 7899 ; WX 602 ; N uni1EDB ; G 1637 +U 7900 ; WX 820 ; N uni1EDC ; G 1638 +U 7901 ; WX 602 ; N uni1EDD ; G 1639 +U 7902 ; WX 820 ; N uni1EDE ; G 1640 +U 7903 ; WX 602 ; N uni1EDF ; G 1641 +U 7904 ; WX 820 ; N uni1EE0 ; G 1642 +U 7905 ; WX 602 ; N uni1EE1 ; G 1643 +U 7906 ; WX 820 ; N uni1EE2 ; G 1644 +U 7907 ; WX 602 ; N uni1EE3 ; G 1645 +U 7908 ; WX 843 ; N uni1EE4 ; G 1646 +U 7909 ; WX 644 ; N uni1EE5 ; G 1647 +U 7910 ; WX 843 ; N uni1EE6 ; G 1648 +U 7911 ; WX 644 ; N uni1EE7 ; G 1649 +U 7912 ; WX 843 ; N uni1EE8 ; G 1650 +U 7913 ; WX 644 ; N uni1EE9 ; G 1651 +U 7914 ; WX 843 ; N uni1EEA ; G 1652 +U 7915 ; WX 644 ; N uni1EEB ; G 1653 +U 7916 ; WX 843 ; N uni1EEC ; G 1654 +U 7917 ; WX 644 ; N uni1EED ; G 1655 +U 7918 ; WX 843 ; N uni1EEE ; G 1656 +U 7919 ; WX 644 ; N uni1EEF ; G 1657 +U 7920 ; WX 843 ; N uni1EF0 ; G 1658 +U 7921 ; WX 644 ; N uni1EF1 ; G 1659 +U 7922 ; WX 660 ; N Ygrave ; G 1660 +U 7923 ; WX 565 ; N ygrave ; G 1661 +U 7924 ; WX 660 ; N uni1EF4 ; G 1662 +U 7925 ; WX 565 ; N uni1EF5 ; G 1663 +U 7926 ; WX 660 ; N uni1EF6 ; G 1664 +U 7927 ; WX 565 ; N uni1EF7 ; G 1665 +U 7928 ; WX 660 ; N uni1EF8 ; G 1666 +U 7929 ; WX 565 ; N uni1EF9 ; G 1667 +U 7930 ; WX 949 ; N uni1EFA ; G 1668 +U 7931 ; WX 581 ; N uni1EFB ; G 1669 +U 7936 ; WX 675 ; N uni1F00 ; G 1670 +U 7937 ; WX 675 ; N uni1F01 ; G 1671 +U 7938 ; WX 675 ; N uni1F02 ; G 1672 +U 7939 ; WX 675 ; N uni1F03 ; G 1673 +U 7940 ; WX 675 ; N uni1F04 ; G 1674 +U 7941 ; WX 675 ; N uni1F05 ; G 1675 +U 7942 ; WX 675 ; N uni1F06 ; G 1676 +U 7943 ; WX 675 ; N uni1F07 ; G 1677 +U 7944 ; WX 722 ; N uni1F08 ; G 1678 +U 7945 ; WX 722 ; N uni1F09 ; G 1679 +U 7946 ; WX 869 ; N uni1F0A ; G 1680 +U 7947 ; WX 869 ; N uni1F0B ; G 1681 +U 7948 ; WX 734 ; N uni1F0C ; G 1682 +U 7949 ; WX 763 ; N uni1F0D ; G 1683 +U 7950 ; WX 722 ; N uni1F0E ; G 1684 +U 7951 ; WX 722 ; N uni1F0F ; G 1685 +U 7952 ; WX 537 ; N uni1F10 ; G 1686 +U 7953 ; WX 537 ; N uni1F11 ; G 1687 +U 7954 ; WX 537 ; N uni1F12 ; G 1688 +U 7955 ; WX 537 ; N uni1F13 ; G 1689 +U 7956 ; WX 537 ; N uni1F14 ; G 1690 +U 7957 ; WX 537 ; N uni1F15 ; G 1691 +U 7960 ; WX 853 ; N uni1F18 ; G 1692 +U 7961 ; WX 841 ; N uni1F19 ; G 1693 +U 7962 ; WX 1067 ; N uni1F1A ; G 1694 +U 7963 ; WX 1077 ; N uni1F1B ; G 1695 +U 7964 ; WX 1008 ; N uni1F1C ; G 1696 +U 7965 ; WX 1035 ; N uni1F1D ; G 1697 +U 7968 ; WX 599 ; N uni1F20 ; G 1698 +U 7969 ; WX 599 ; N uni1F21 ; G 1699 +U 7970 ; WX 599 ; N uni1F22 ; G 1700 +U 7971 ; WX 599 ; N uni1F23 ; G 1701 +U 7972 ; WX 599 ; N uni1F24 ; G 1702 +U 7973 ; WX 599 ; N uni1F25 ; G 1703 +U 7974 ; WX 599 ; N uni1F26 ; G 1704 +U 7975 ; WX 599 ; N uni1F27 ; G 1705 +U 7976 ; WX 998 ; N uni1F28 ; G 1706 +U 7977 ; WX 992 ; N uni1F29 ; G 1707 +U 7978 ; WX 1212 ; N uni1F2A ; G 1708 +U 7979 ; WX 1224 ; N uni1F2B ; G 1709 +U 7980 ; WX 1159 ; N uni1F2C ; G 1710 +U 7981 ; WX 1183 ; N uni1F2D ; G 1711 +U 7982 ; WX 1098 ; N uni1F2E ; G 1712 +U 7983 ; WX 1095 ; N uni1F2F ; G 1713 +U 7984 ; WX 392 ; N uni1F30 ; G 1714 +U 7985 ; WX 392 ; N uni1F31 ; G 1715 +U 7986 ; WX 392 ; N uni1F32 ; G 1716 +U 7987 ; WX 392 ; N uni1F33 ; G 1717 +U 7988 ; WX 392 ; N uni1F34 ; G 1718 +U 7989 ; WX 392 ; N uni1F35 ; G 1719 +U 7990 ; WX 392 ; N uni1F36 ; G 1720 +U 7991 ; WX 392 ; N uni1F37 ; G 1721 +U 7992 ; WX 521 ; N uni1F38 ; G 1722 +U 7993 ; WX 512 ; N uni1F39 ; G 1723 +U 7994 ; WX 735 ; N uni1F3A ; G 1724 +U 7995 ; WX 738 ; N uni1F3B ; G 1725 +U 7996 ; WX 679 ; N uni1F3C ; G 1726 +U 7997 ; WX 706 ; N uni1F3D ; G 1727 +U 7998 ; WX 624 ; N uni1F3E ; G 1728 +U 7999 ; WX 615 ; N uni1F3F ; G 1729 +U 8000 ; WX 602 ; N uni1F40 ; G 1730 +U 8001 ; WX 602 ; N uni1F41 ; G 1731 +U 8002 ; WX 602 ; N uni1F42 ; G 1732 +U 8003 ; WX 602 ; N uni1F43 ; G 1733 +U 8004 ; WX 602 ; N uni1F44 ; G 1734 +U 8005 ; WX 602 ; N uni1F45 ; G 1735 +U 8008 ; WX 820 ; N uni1F48 ; G 1736 +U 8009 ; WX 859 ; N uni1F49 ; G 1737 +U 8010 ; WX 1120 ; N uni1F4A ; G 1738 +U 8011 ; WX 1127 ; N uni1F4B ; G 1739 +U 8012 ; WX 937 ; N uni1F4C ; G 1740 +U 8013 ; WX 964 ; N uni1F4D ; G 1741 +U 8016 ; WX 608 ; N uni1F50 ; G 1742 +U 8017 ; WX 608 ; N uni1F51 ; G 1743 +U 8018 ; WX 608 ; N uni1F52 ; G 1744 +U 8019 ; WX 608 ; N uni1F53 ; G 1745 +U 8020 ; WX 608 ; N uni1F54 ; G 1746 +U 8021 ; WX 608 ; N uni1F55 ; G 1747 +U 8022 ; WX 608 ; N uni1F56 ; G 1748 +U 8023 ; WX 608 ; N uni1F57 ; G 1749 +U 8025 ; WX 851 ; N uni1F59 ; G 1750 +U 8027 ; WX 1079 ; N uni1F5B ; G 1751 +U 8029 ; WX 1044 ; N uni1F5D ; G 1752 +U 8031 ; WX 953 ; N uni1F5F ; G 1753 +U 8032 ; WX 815 ; N uni1F60 ; G 1754 +U 8033 ; WX 815 ; N uni1F61 ; G 1755 +U 8034 ; WX 815 ; N uni1F62 ; G 1756 +U 8035 ; WX 815 ; N uni1F63 ; G 1757 +U 8036 ; WX 815 ; N uni1F64 ; G 1758 +U 8037 ; WX 815 ; N uni1F65 ; G 1759 +U 8038 ; WX 815 ; N uni1F66 ; G 1760 +U 8039 ; WX 815 ; N uni1F67 ; G 1761 +U 8040 ; WX 829 ; N uni1F68 ; G 1762 +U 8041 ; WX 870 ; N uni1F69 ; G 1763 +U 8042 ; WX 1131 ; N uni1F6A ; G 1764 +U 8043 ; WX 1137 ; N uni1F6B ; G 1765 +U 8044 ; WX 946 ; N uni1F6C ; G 1766 +U 8045 ; WX 976 ; N uni1F6D ; G 1767 +U 8046 ; WX 938 ; N uni1F6E ; G 1768 +U 8047 ; WX 970 ; N uni1F6F ; G 1769 +U 8048 ; WX 675 ; N uni1F70 ; G 1770 +U 8049 ; WX 675 ; N uni1F71 ; G 1771 +U 8050 ; WX 537 ; N uni1F72 ; G 1772 +U 8051 ; WX 537 ; N uni1F73 ; G 1773 +U 8052 ; WX 599 ; N uni1F74 ; G 1774 +U 8053 ; WX 599 ; N uni1F75 ; G 1775 +U 8054 ; WX 392 ; N uni1F76 ; G 1776 +U 8055 ; WX 392 ; N uni1F77 ; G 1777 +U 8056 ; WX 602 ; N uni1F78 ; G 1778 +U 8057 ; WX 602 ; N uni1F79 ; G 1779 +U 8058 ; WX 608 ; N uni1F7A ; G 1780 +U 8059 ; WX 608 ; N uni1F7B ; G 1781 +U 8060 ; WX 815 ; N uni1F7C ; G 1782 +U 8061 ; WX 815 ; N uni1F7D ; G 1783 +U 8064 ; WX 675 ; N uni1F80 ; G 1784 +U 8065 ; WX 675 ; N uni1F81 ; G 1785 +U 8066 ; WX 675 ; N uni1F82 ; G 1786 +U 8067 ; WX 675 ; N uni1F83 ; G 1787 +U 8068 ; WX 675 ; N uni1F84 ; G 1788 +U 8069 ; WX 675 ; N uni1F85 ; G 1789 +U 8070 ; WX 675 ; N uni1F86 ; G 1790 +U 8071 ; WX 675 ; N uni1F87 ; G 1791 +U 8072 ; WX 722 ; N uni1F88 ; G 1792 +U 8073 ; WX 722 ; N uni1F89 ; G 1793 +U 8074 ; WX 869 ; N uni1F8A ; G 1794 +U 8075 ; WX 869 ; N uni1F8B ; G 1795 +U 8076 ; WX 734 ; N uni1F8C ; G 1796 +U 8077 ; WX 763 ; N uni1F8D ; G 1797 +U 8078 ; WX 722 ; N uni1F8E ; G 1798 +U 8079 ; WX 722 ; N uni1F8F ; G 1799 +U 8080 ; WX 599 ; N uni1F90 ; G 1800 +U 8081 ; WX 599 ; N uni1F91 ; G 1801 +U 8082 ; WX 599 ; N uni1F92 ; G 1802 +U 8083 ; WX 599 ; N uni1F93 ; G 1803 +U 8084 ; WX 599 ; N uni1F94 ; G 1804 +U 8085 ; WX 599 ; N uni1F95 ; G 1805 +U 8086 ; WX 599 ; N uni1F96 ; G 1806 +U 8087 ; WX 599 ; N uni1F97 ; G 1807 +U 8088 ; WX 998 ; N uni1F98 ; G 1808 +U 8089 ; WX 992 ; N uni1F99 ; G 1809 +U 8090 ; WX 1212 ; N uni1F9A ; G 1810 +U 8091 ; WX 1224 ; N uni1F9B ; G 1811 +U 8092 ; WX 1159 ; N uni1F9C ; G 1812 +U 8093 ; WX 1183 ; N uni1F9D ; G 1813 +U 8094 ; WX 1098 ; N uni1F9E ; G 1814 +U 8095 ; WX 1095 ; N uni1F9F ; G 1815 +U 8096 ; WX 815 ; N uni1FA0 ; G 1816 +U 8097 ; WX 815 ; N uni1FA1 ; G 1817 +U 8098 ; WX 815 ; N uni1FA2 ; G 1818 +U 8099 ; WX 815 ; N uni1FA3 ; G 1819 +U 8100 ; WX 815 ; N uni1FA4 ; G 1820 +U 8101 ; WX 815 ; N uni1FA5 ; G 1821 +U 8102 ; WX 815 ; N uni1FA6 ; G 1822 +U 8103 ; WX 815 ; N uni1FA7 ; G 1823 +U 8104 ; WX 829 ; N uni1FA8 ; G 1824 +U 8105 ; WX 870 ; N uni1FA9 ; G 1825 +U 8106 ; WX 1131 ; N uni1FAA ; G 1826 +U 8107 ; WX 1137 ; N uni1FAB ; G 1827 +U 8108 ; WX 946 ; N uni1FAC ; G 1828 +U 8109 ; WX 976 ; N uni1FAD ; G 1829 +U 8110 ; WX 938 ; N uni1FAE ; G 1830 +U 8111 ; WX 970 ; N uni1FAF ; G 1831 +U 8112 ; WX 675 ; N uni1FB0 ; G 1832 +U 8113 ; WX 675 ; N uni1FB1 ; G 1833 +U 8114 ; WX 675 ; N uni1FB2 ; G 1834 +U 8115 ; WX 675 ; N uni1FB3 ; G 1835 +U 8116 ; WX 675 ; N uni1FB4 ; G 1836 +U 8118 ; WX 675 ; N uni1FB6 ; G 1837 +U 8119 ; WX 675 ; N uni1FB7 ; G 1838 +U 8120 ; WX 722 ; N uni1FB8 ; G 1839 +U 8121 ; WX 722 ; N uni1FB9 ; G 1840 +U 8122 ; WX 722 ; N uni1FBA ; G 1841 +U 8123 ; WX 722 ; N uni1FBB ; G 1842 +U 8124 ; WX 722 ; N uni1FBC ; G 1843 +U 8125 ; WX 500 ; N uni1FBD ; G 1844 +U 8126 ; WX 500 ; N uni1FBE ; G 1845 +U 8127 ; WX 500 ; N uni1FBF ; G 1846 +U 8128 ; WX 500 ; N uni1FC0 ; G 1847 +U 8129 ; WX 500 ; N uni1FC1 ; G 1848 +U 8130 ; WX 599 ; N uni1FC2 ; G 1849 +U 8131 ; WX 599 ; N uni1FC3 ; G 1850 +U 8132 ; WX 599 ; N uni1FC4 ; G 1851 +U 8134 ; WX 599 ; N uni1FC6 ; G 1852 +U 8135 ; WX 599 ; N uni1FC7 ; G 1853 +U 8136 ; WX 912 ; N uni1FC8 ; G 1854 +U 8137 ; WX 900 ; N uni1FC9 ; G 1855 +U 8138 ; WX 1063 ; N uni1FCA ; G 1856 +U 8139 ; WX 1039 ; N uni1FCB ; G 1857 +U 8140 ; WX 872 ; N uni1FCC ; G 1858 +U 8141 ; WX 500 ; N uni1FCD ; G 1859 +U 8142 ; WX 500 ; N uni1FCE ; G 1860 +U 8143 ; WX 500 ; N uni1FCF ; G 1861 +U 8144 ; WX 392 ; N uni1FD0 ; G 1862 +U 8145 ; WX 392 ; N uni1FD1 ; G 1863 +U 8146 ; WX 392 ; N uni1FD2 ; G 1864 +U 8147 ; WX 392 ; N uni1FD3 ; G 1865 +U 8150 ; WX 392 ; N uni1FD6 ; G 1866 +U 8151 ; WX 392 ; N uni1FD7 ; G 1867 +U 8152 ; WX 395 ; N uni1FD8 ; G 1868 +U 8153 ; WX 395 ; N uni1FD9 ; G 1869 +U 8154 ; WX 588 ; N uni1FDA ; G 1870 +U 8155 ; WX 562 ; N uni1FDB ; G 1871 +U 8157 ; WX 500 ; N uni1FDD ; G 1872 +U 8158 ; WX 500 ; N uni1FDE ; G 1873 +U 8159 ; WX 500 ; N uni1FDF ; G 1874 +U 8160 ; WX 608 ; N uni1FE0 ; G 1875 +U 8161 ; WX 608 ; N uni1FE1 ; G 1876 +U 8162 ; WX 608 ; N uni1FE2 ; G 1877 +U 8163 ; WX 608 ; N uni1FE3 ; G 1878 +U 8164 ; WX 588 ; N uni1FE4 ; G 1879 +U 8165 ; WX 588 ; N uni1FE5 ; G 1880 +U 8166 ; WX 608 ; N uni1FE6 ; G 1881 +U 8167 ; WX 608 ; N uni1FE7 ; G 1882 +U 8168 ; WX 660 ; N uni1FE8 ; G 1883 +U 8169 ; WX 660 ; N uni1FE9 ; G 1884 +U 8170 ; WX 921 ; N uni1FEA ; G 1885 +U 8171 ; WX 897 ; N uni1FEB ; G 1886 +U 8172 ; WX 790 ; N uni1FEC ; G 1887 +U 8173 ; WX 500 ; N uni1FED ; G 1888 +U 8174 ; WX 500 ; N uni1FEE ; G 1889 +U 8175 ; WX 500 ; N uni1FEF ; G 1890 +U 8178 ; WX 815 ; N uni1FF2 ; G 1891 +U 8179 ; WX 815 ; N uni1FF3 ; G 1892 +U 8180 ; WX 815 ; N uni1FF4 ; G 1893 +U 8182 ; WX 815 ; N uni1FF6 ; G 1894 +U 8183 ; WX 815 ; N uni1FF7 ; G 1895 +U 8184 ; WX 961 ; N uni1FF8 ; G 1896 +U 8185 ; WX 835 ; N uni1FF9 ; G 1897 +U 8186 ; WX 984 ; N uni1FFA ; G 1898 +U 8187 ; WX 853 ; N uni1FFB ; G 1899 +U 8188 ; WX 829 ; N uni1FFC ; G 1900 +U 8189 ; WX 500 ; N uni1FFD ; G 1901 +U 8190 ; WX 500 ; N uni1FFE ; G 1902 +U 8192 ; WX 500 ; N uni2000 ; G 1903 +U 8193 ; WX 1000 ; N uni2001 ; G 1904 +U 8194 ; WX 500 ; N uni2002 ; G 1905 +U 8195 ; WX 1000 ; N uni2003 ; G 1906 +U 8196 ; WX 330 ; N uni2004 ; G 1907 +U 8197 ; WX 250 ; N uni2005 ; G 1908 +U 8198 ; WX 167 ; N uni2006 ; G 1909 +U 8199 ; WX 636 ; N uni2007 ; G 1910 +U 8200 ; WX 318 ; N uni2008 ; G 1911 +U 8201 ; WX 200 ; N uni2009 ; G 1912 +U 8202 ; WX 100 ; N uni200A ; G 1913 +U 8203 ; WX 0 ; N uni200B ; G 1914 +U 8204 ; WX 0 ; N uni200C ; G 1915 +U 8205 ; WX 0 ; N uni200D ; G 1916 +U 8206 ; WX 0 ; N uni200E ; G 1917 +U 8207 ; WX 0 ; N uni200F ; G 1918 +U 8208 ; WX 338 ; N uni2010 ; G 1919 +U 8209 ; WX 338 ; N uni2011 ; G 1920 +U 8210 ; WX 636 ; N figuredash ; G 1921 +U 8211 ; WX 500 ; N endash ; G 1922 +U 8212 ; WX 1000 ; N emdash ; G 1923 +U 8213 ; WX 1000 ; N uni2015 ; G 1924 +U 8214 ; WX 500 ; N uni2016 ; G 1925 +U 8215 ; WX 500 ; N underscoredbl ; G 1926 +U 8216 ; WX 318 ; N quoteleft ; G 1927 +U 8217 ; WX 318 ; N quoteright ; G 1928 +U 8218 ; WX 318 ; N quotesinglbase ; G 1929 +U 8219 ; WX 318 ; N quotereversed ; G 1930 +U 8220 ; WX 511 ; N quotedblleft ; G 1931 +U 8221 ; WX 511 ; N quotedblright ; G 1932 +U 8222 ; WX 518 ; N quotedblbase ; G 1933 +U 8223 ; WX 511 ; N uni201F ; G 1934 +U 8224 ; WX 500 ; N dagger ; G 1935 +U 8225 ; WX 500 ; N daggerdbl ; G 1936 +U 8226 ; WX 590 ; N bullet ; G 1937 +U 8227 ; WX 590 ; N uni2023 ; G 1938 +U 8228 ; WX 334 ; N onedotenleader ; G 1939 +U 8229 ; WX 667 ; N twodotenleader ; G 1940 +U 8230 ; WX 1000 ; N ellipsis ; G 1941 +U 8234 ; WX 0 ; N uni202A ; G 1942 +U 8235 ; WX 0 ; N uni202B ; G 1943 +U 8236 ; WX 0 ; N uni202C ; G 1944 +U 8237 ; WX 0 ; N uni202D ; G 1945 +U 8238 ; WX 0 ; N uni202E ; G 1946 +U 8239 ; WX 200 ; N uni202F ; G 1947 +U 8240 ; WX 1342 ; N perthousand ; G 1948 +U 8241 ; WX 1734 ; N uni2031 ; G 1949 +U 8242 ; WX 227 ; N minute ; G 1950 +U 8243 ; WX 374 ; N second ; G 1951 +U 8244 ; WX 520 ; N uni2034 ; G 1952 +U 8245 ; WX 227 ; N uni2035 ; G 1953 +U 8246 ; WX 374 ; N uni2036 ; G 1954 +U 8247 ; WX 520 ; N uni2037 ; G 1955 +U 8248 ; WX 339 ; N uni2038 ; G 1956 +U 8249 ; WX 400 ; N guilsinglleft ; G 1957 +U 8250 ; WX 400 ; N guilsinglright ; G 1958 +U 8252 ; WX 527 ; N exclamdbl ; G 1959 +U 8253 ; WX 536 ; N uni203D ; G 1960 +U 8254 ; WX 500 ; N uni203E ; G 1961 +U 8258 ; WX 1000 ; N uni2042 ; G 1962 +U 8260 ; WX 167 ; N fraction ; G 1963 +U 8261 ; WX 390 ; N uni2045 ; G 1964 +U 8262 ; WX 390 ; N uni2046 ; G 1965 +U 8263 ; WX 976 ; N uni2047 ; G 1966 +U 8264 ; WX 753 ; N uni2048 ; G 1967 +U 8265 ; WX 753 ; N uni2049 ; G 1968 +U 8267 ; WX 636 ; N uni204B ; G 1969 +U 8268 ; WX 500 ; N uni204C ; G 1970 +U 8269 ; WX 500 ; N uni204D ; G 1971 +U 8270 ; WX 500 ; N uni204E ; G 1972 +U 8271 ; WX 337 ; N uni204F ; G 1973 +U 8273 ; WX 500 ; N uni2051 ; G 1974 +U 8274 ; WX 450 ; N uni2052 ; G 1975 +U 8275 ; WX 1000 ; N uni2053 ; G 1976 +U 8279 ; WX 663 ; N uni2057 ; G 1977 +U 8287 ; WX 222 ; N uni205F ; G 1978 +U 8288 ; WX 0 ; N uni2060 ; G 1979 +U 8289 ; WX 0 ; N uni2061 ; G 1980 +U 8290 ; WX 0 ; N uni2062 ; G 1981 +U 8291 ; WX 0 ; N uni2063 ; G 1982 +U 8292 ; WX 0 ; N uni2064 ; G 1983 +U 8298 ; WX 0 ; N uni206A ; G 1984 +U 8299 ; WX 0 ; N uni206B ; G 1985 +U 8300 ; WX 0 ; N uni206C ; G 1986 +U 8301 ; WX 0 ; N uni206D ; G 1987 +U 8302 ; WX 0 ; N uni206E ; G 1988 +U 8303 ; WX 0 ; N uni206F ; G 1989 +U 8304 ; WX 401 ; N uni2070 ; G 1990 +U 8305 ; WX 201 ; N uni2071 ; G 1991 +U 8308 ; WX 401 ; N uni2074 ; G 1992 +U 8309 ; WX 401 ; N uni2075 ; G 1993 +U 8310 ; WX 401 ; N uni2076 ; G 1994 +U 8311 ; WX 401 ; N uni2077 ; G 1995 +U 8312 ; WX 401 ; N uni2078 ; G 1996 +U 8313 ; WX 401 ; N uni2079 ; G 1997 +U 8314 ; WX 528 ; N uni207A ; G 1998 +U 8315 ; WX 528 ; N uni207B ; G 1999 +U 8316 ; WX 528 ; N uni207C ; G 2000 +U 8317 ; WX 246 ; N uni207D ; G 2001 +U 8318 ; WX 246 ; N uni207E ; G 2002 +U 8319 ; WX 405 ; N uni207F ; G 2003 +U 8320 ; WX 401 ; N uni2080 ; G 2004 +U 8321 ; WX 401 ; N uni2081 ; G 2005 +U 8322 ; WX 401 ; N uni2082 ; G 2006 +U 8323 ; WX 401 ; N uni2083 ; G 2007 +U 8324 ; WX 401 ; N uni2084 ; G 2008 +U 8325 ; WX 401 ; N uni2085 ; G 2009 +U 8326 ; WX 401 ; N uni2086 ; G 2010 +U 8327 ; WX 401 ; N uni2087 ; G 2011 +U 8328 ; WX 401 ; N uni2088 ; G 2012 +U 8329 ; WX 401 ; N uni2089 ; G 2013 +U 8330 ; WX 528 ; N uni208A ; G 2014 +U 8331 ; WX 528 ; N uni208B ; G 2015 +U 8332 ; WX 528 ; N uni208C ; G 2016 +U 8333 ; WX 246 ; N uni208D ; G 2017 +U 8334 ; WX 246 ; N uni208E ; G 2018 +U 8336 ; WX 375 ; N uni2090 ; G 2019 +U 8337 ; WX 387 ; N uni2091 ; G 2020 +U 8338 ; WX 385 ; N uni2092 ; G 2021 +U 8339 ; WX 355 ; N uni2093 ; G 2022 +U 8340 ; WX 387 ; N uni2094 ; G 2023 +U 8341 ; WX 433 ; N uni2095 ; G 2024 +U 8342 ; WX 365 ; N uni2096 ; G 2025 +U 8343 ; WX 243 ; N uni2097 ; G 2026 +U 8344 ; WX 613 ; N uni2098 ; G 2027 +U 8345 ; WX 405 ; N uni2099 ; G 2028 +U 8346 ; WX 400 ; N uni209A ; G 2029 +U 8347 ; WX 337 ; N uni209B ; G 2030 +U 8348 ; WX 247 ; N uni209C ; G 2031 +U 8358 ; WX 636 ; N uni20A6 ; G 2032 +U 8364 ; WX 636 ; N Euro ; G 2033 +U 8367 ; WX 1057 ; N uni20AF ; G 2034 +U 8369 ; WX 706 ; N uni20B1 ; G 2035 +U 8372 ; WX 780 ; N uni20B4 ; G 2036 +U 8373 ; WX 636 ; N uni20B5 ; G 2037 +U 8376 ; WX 636 ; N uni20B8 ; G 2038 +U 8377 ; WX 636 ; N uni20B9 ; G 2039 +U 8378 ; WX 636 ; N uni20BA ; G 2040 +U 8381 ; WX 636 ; N uni20BD ; G 2041 +U 8451 ; WX 1119 ; N uni2103 ; G 2042 +U 8457 ; WX 1047 ; N uni2109 ; G 2043 +U 8462 ; WX 644 ; N uni210E ; G 2044 +U 8463 ; WX 644 ; N uni210F ; G 2045 +U 8470 ; WX 946 ; N uni2116 ; G 2046 +U 8482 ; WX 1000 ; N trademark ; G 2047 +U 8486 ; WX 829 ; N uni2126 ; G 2048 +U 8487 ; WX 829 ; N uni2127 ; G 2049 +U 8490 ; WX 747 ; N uni212A ; G 2050 +U 8491 ; WX 722 ; N uni212B ; G 2051 +U 8498 ; WX 694 ; N uni2132 ; G 2052 +U 8513 ; WX 775 ; N uni2141 ; G 2053 +U 8514 ; WX 557 ; N uni2142 ; G 2054 +U 8515 ; WX 557 ; N uni2143 ; G 2055 +U 8516 ; WX 611 ; N uni2144 ; G 2056 +U 8523 ; WX 890 ; N uni214B ; G 2057 +U 8526 ; WX 514 ; N uni214E ; G 2058 +U 8528 ; WX 969 ; N uni2150 ; G 2059 +U 8529 ; WX 969 ; N uni2151 ; G 2060 +U 8530 ; WX 1370 ; N uni2152 ; G 2061 +U 8531 ; WX 969 ; N onethird ; G 2062 +U 8532 ; WX 969 ; N twothirds ; G 2063 +U 8533 ; WX 969 ; N uni2155 ; G 2064 +U 8534 ; WX 969 ; N uni2156 ; G 2065 +U 8535 ; WX 969 ; N uni2157 ; G 2066 +U 8536 ; WX 969 ; N uni2158 ; G 2067 +U 8537 ; WX 969 ; N uni2159 ; G 2068 +U 8538 ; WX 969 ; N uni215A ; G 2069 +U 8539 ; WX 969 ; N oneeighth ; G 2070 +U 8540 ; WX 969 ; N threeeighths ; G 2071 +U 8541 ; WX 969 ; N fiveeighths ; G 2072 +U 8542 ; WX 969 ; N seveneighths ; G 2073 +U 8543 ; WX 568 ; N uni215F ; G 2074 +U 8544 ; WX 395 ; N uni2160 ; G 2075 +U 8545 ; WX 680 ; N uni2161 ; G 2076 +U 8546 ; WX 964 ; N uni2162 ; G 2077 +U 8547 ; WX 999 ; N uni2163 ; G 2078 +U 8548 ; WX 722 ; N uni2164 ; G 2079 +U 8549 ; WX 1006 ; N uni2165 ; G 2080 +U 8550 ; WX 1291 ; N uni2166 ; G 2081 +U 8551 ; WX 1575 ; N uni2167 ; G 2082 +U 8552 ; WX 965 ; N uni2168 ; G 2083 +U 8553 ; WX 712 ; N uni2169 ; G 2084 +U 8554 ; WX 969 ; N uni216A ; G 2085 +U 8555 ; WX 1253 ; N uni216B ; G 2086 +U 8556 ; WX 664 ; N uni216C ; G 2087 +U 8557 ; WX 765 ; N uni216D ; G 2088 +U 8558 ; WX 802 ; N uni216E ; G 2089 +U 8559 ; WX 1024 ; N uni216F ; G 2090 +U 8560 ; WX 320 ; N uni2170 ; G 2091 +U 8561 ; WX 640 ; N uni2171 ; G 2092 +U 8562 ; WX 959 ; N uni2172 ; G 2093 +U 8563 ; WX 885 ; N uni2173 ; G 2094 +U 8564 ; WX 565 ; N uni2174 ; G 2095 +U 8565 ; WX 885 ; N uni2175 ; G 2096 +U 8566 ; WX 1205 ; N uni2176 ; G 2097 +U 8567 ; WX 1524 ; N uni2177 ; G 2098 +U 8568 ; WX 884 ; N uni2178 ; G 2099 +U 8569 ; WX 564 ; N uni2179 ; G 2100 +U 8570 ; WX 884 ; N uni217A ; G 2101 +U 8571 ; WX 1204 ; N uni217B ; G 2102 +U 8572 ; WX 320 ; N uni217C ; G 2103 +U 8573 ; WX 560 ; N uni217D ; G 2104 +U 8574 ; WX 640 ; N uni217E ; G 2105 +U 8575 ; WX 948 ; N uni217F ; G 2106 +U 8576 ; WX 1206 ; N uni2180 ; G 2107 +U 8577 ; WX 802 ; N uni2181 ; G 2108 +U 8578 ; WX 1206 ; N uni2182 ; G 2109 +U 8579 ; WX 765 ; N uni2183 ; G 2110 +U 8580 ; WX 560 ; N uni2184 ; G 2111 +U 8581 ; WX 765 ; N uni2185 ; G 2112 +U 8585 ; WX 969 ; N uni2189 ; G 2113 +U 8592 ; WX 838 ; N arrowleft ; G 2114 +U 8593 ; WX 838 ; N arrowup ; G 2115 +U 8594 ; WX 838 ; N arrowright ; G 2116 +U 8595 ; WX 838 ; N arrowdown ; G 2117 +U 8596 ; WX 838 ; N arrowboth ; G 2118 +U 8597 ; WX 838 ; N arrowupdn ; G 2119 +U 8598 ; WX 838 ; N uni2196 ; G 2120 +U 8599 ; WX 838 ; N uni2197 ; G 2121 +U 8600 ; WX 838 ; N uni2198 ; G 2122 +U 8601 ; WX 838 ; N uni2199 ; G 2123 +U 8602 ; WX 838 ; N uni219A ; G 2124 +U 8603 ; WX 838 ; N uni219B ; G 2125 +U 8604 ; WX 838 ; N uni219C ; G 2126 +U 8605 ; WX 838 ; N uni219D ; G 2127 +U 8606 ; WX 838 ; N uni219E ; G 2128 +U 8607 ; WX 838 ; N uni219F ; G 2129 +U 8608 ; WX 838 ; N uni21A0 ; G 2130 +U 8609 ; WX 838 ; N uni21A1 ; G 2131 +U 8610 ; WX 838 ; N uni21A2 ; G 2132 +U 8611 ; WX 838 ; N uni21A3 ; G 2133 +U 8612 ; WX 838 ; N uni21A4 ; G 2134 +U 8613 ; WX 838 ; N uni21A5 ; G 2135 +U 8614 ; WX 838 ; N uni21A6 ; G 2136 +U 8615 ; WX 838 ; N uni21A7 ; G 2137 +U 8616 ; WX 838 ; N arrowupdnbse ; G 2138 +U 8617 ; WX 838 ; N uni21A9 ; G 2139 +U 8618 ; WX 838 ; N uni21AA ; G 2140 +U 8619 ; WX 838 ; N uni21AB ; G 2141 +U 8620 ; WX 838 ; N uni21AC ; G 2142 +U 8621 ; WX 838 ; N uni21AD ; G 2143 +U 8622 ; WX 838 ; N uni21AE ; G 2144 +U 8623 ; WX 838 ; N uni21AF ; G 2145 +U 8624 ; WX 838 ; N uni21B0 ; G 2146 +U 8625 ; WX 838 ; N uni21B1 ; G 2147 +U 8626 ; WX 838 ; N uni21B2 ; G 2148 +U 8627 ; WX 838 ; N uni21B3 ; G 2149 +U 8628 ; WX 838 ; N uni21B4 ; G 2150 +U 8629 ; WX 838 ; N carriagereturn ; G 2151 +U 8630 ; WX 838 ; N uni21B6 ; G 2152 +U 8631 ; WX 838 ; N uni21B7 ; G 2153 +U 8632 ; WX 838 ; N uni21B8 ; G 2154 +U 8633 ; WX 838 ; N uni21B9 ; G 2155 +U 8634 ; WX 838 ; N uni21BA ; G 2156 +U 8635 ; WX 838 ; N uni21BB ; G 2157 +U 8636 ; WX 838 ; N uni21BC ; G 2158 +U 8637 ; WX 838 ; N uni21BD ; G 2159 +U 8638 ; WX 838 ; N uni21BE ; G 2160 +U 8639 ; WX 838 ; N uni21BF ; G 2161 +U 8640 ; WX 838 ; N uni21C0 ; G 2162 +U 8641 ; WX 838 ; N uni21C1 ; G 2163 +U 8642 ; WX 838 ; N uni21C2 ; G 2164 +U 8643 ; WX 838 ; N uni21C3 ; G 2165 +U 8644 ; WX 838 ; N uni21C4 ; G 2166 +U 8645 ; WX 838 ; N uni21C5 ; G 2167 +U 8646 ; WX 838 ; N uni21C6 ; G 2168 +U 8647 ; WX 838 ; N uni21C7 ; G 2169 +U 8648 ; WX 838 ; N uni21C8 ; G 2170 +U 8649 ; WX 838 ; N uni21C9 ; G 2171 +U 8650 ; WX 838 ; N uni21CA ; G 2172 +U 8651 ; WX 838 ; N uni21CB ; G 2173 +U 8652 ; WX 838 ; N uni21CC ; G 2174 +U 8653 ; WX 838 ; N uni21CD ; G 2175 +U 8654 ; WX 838 ; N uni21CE ; G 2176 +U 8655 ; WX 838 ; N uni21CF ; G 2177 +U 8656 ; WX 838 ; N arrowdblleft ; G 2178 +U 8657 ; WX 838 ; N arrowdblup ; G 2179 +U 8658 ; WX 838 ; N arrowdblright ; G 2180 +U 8659 ; WX 838 ; N arrowdbldown ; G 2181 +U 8660 ; WX 838 ; N arrowdblboth ; G 2182 +U 8661 ; WX 838 ; N uni21D5 ; G 2183 +U 8662 ; WX 838 ; N uni21D6 ; G 2184 +U 8663 ; WX 838 ; N uni21D7 ; G 2185 +U 8664 ; WX 838 ; N uni21D8 ; G 2186 +U 8665 ; WX 838 ; N uni21D9 ; G 2187 +U 8666 ; WX 838 ; N uni21DA ; G 2188 +U 8667 ; WX 838 ; N uni21DB ; G 2189 +U 8668 ; WX 838 ; N uni21DC ; G 2190 +U 8669 ; WX 838 ; N uni21DD ; G 2191 +U 8670 ; WX 838 ; N uni21DE ; G 2192 +U 8671 ; WX 838 ; N uni21DF ; G 2193 +U 8672 ; WX 838 ; N uni21E0 ; G 2194 +U 8673 ; WX 838 ; N uni21E1 ; G 2195 +U 8674 ; WX 838 ; N uni21E2 ; G 2196 +U 8675 ; WX 838 ; N uni21E3 ; G 2197 +U 8676 ; WX 838 ; N uni21E4 ; G 2198 +U 8677 ; WX 838 ; N uni21E5 ; G 2199 +U 8678 ; WX 838 ; N uni21E6 ; G 2200 +U 8679 ; WX 838 ; N uni21E7 ; G 2201 +U 8680 ; WX 838 ; N uni21E8 ; G 2202 +U 8681 ; WX 838 ; N uni21E9 ; G 2203 +U 8682 ; WX 838 ; N uni21EA ; G 2204 +U 8683 ; WX 838 ; N uni21EB ; G 2205 +U 8684 ; WX 838 ; N uni21EC ; G 2206 +U 8685 ; WX 838 ; N uni21ED ; G 2207 +U 8686 ; WX 838 ; N uni21EE ; G 2208 +U 8687 ; WX 838 ; N uni21EF ; G 2209 +U 8688 ; WX 838 ; N uni21F0 ; G 2210 +U 8689 ; WX 838 ; N uni21F1 ; G 2211 +U 8690 ; WX 838 ; N uni21F2 ; G 2212 +U 8691 ; WX 838 ; N uni21F3 ; G 2213 +U 8692 ; WX 838 ; N uni21F4 ; G 2214 +U 8693 ; WX 838 ; N uni21F5 ; G 2215 +U 8694 ; WX 838 ; N uni21F6 ; G 2216 +U 8695 ; WX 838 ; N uni21F7 ; G 2217 +U 8696 ; WX 838 ; N uni21F8 ; G 2218 +U 8697 ; WX 838 ; N uni21F9 ; G 2219 +U 8698 ; WX 838 ; N uni21FA ; G 2220 +U 8699 ; WX 838 ; N uni21FB ; G 2221 +U 8700 ; WX 838 ; N uni21FC ; G 2222 +U 8701 ; WX 838 ; N uni21FD ; G 2223 +U 8702 ; WX 838 ; N uni21FE ; G 2224 +U 8703 ; WX 838 ; N uni21FF ; G 2225 +U 8704 ; WX 604 ; N universal ; G 2226 +U 8706 ; WX 517 ; N partialdiff ; G 2227 +U 8707 ; WX 542 ; N existential ; G 2228 +U 8708 ; WX 542 ; N uni2204 ; G 2229 +U 8710 ; WX 698 ; N increment ; G 2230 +U 8711 ; WX 698 ; N gradient ; G 2231 +U 8712 ; WX 740 ; N element ; G 2232 +U 8713 ; WX 740 ; N notelement ; G 2233 +U 8715 ; WX 740 ; N suchthat ; G 2234 +U 8716 ; WX 740 ; N uni220C ; G 2235 +U 8719 ; WX 796 ; N product ; G 2236 +U 8720 ; WX 796 ; N uni2210 ; G 2237 +U 8721 ; WX 714 ; N summation ; G 2238 +U 8722 ; WX 838 ; N minus ; G 2239 +U 8723 ; WX 838 ; N uni2213 ; G 2240 +U 8724 ; WX 838 ; N uni2214 ; G 2241 +U 8725 ; WX 337 ; N uni2215 ; G 2242 +U 8727 ; WX 680 ; N asteriskmath ; G 2243 +U 8728 ; WX 490 ; N uni2218 ; G 2244 +U 8729 ; WX 490 ; N uni2219 ; G 2245 +U 8730 ; WX 637 ; N radical ; G 2246 +U 8731 ; WX 637 ; N uni221B ; G 2247 +U 8732 ; WX 637 ; N uni221C ; G 2248 +U 8733 ; WX 677 ; N proportional ; G 2249 +U 8734 ; WX 833 ; N infinity ; G 2250 +U 8735 ; WX 838 ; N orthogonal ; G 2251 +U 8736 ; WX 838 ; N angle ; G 2252 +U 8739 ; WX 291 ; N uni2223 ; G 2253 +U 8740 ; WX 479 ; N uni2224 ; G 2254 +U 8741 ; WX 462 ; N uni2225 ; G 2255 +U 8742 ; WX 634 ; N uni2226 ; G 2256 +U 8743 ; WX 732 ; N logicaland ; G 2257 +U 8744 ; WX 732 ; N logicalor ; G 2258 +U 8745 ; WX 838 ; N intersection ; G 2259 +U 8746 ; WX 838 ; N union ; G 2260 +U 8747 ; WX 521 ; N integral ; G 2261 +U 8748 ; WX 852 ; N uni222C ; G 2262 +U 8749 ; WX 1182 ; N uni222D ; G 2263 +U 8760 ; WX 838 ; N uni2238 ; G 2264 +U 8761 ; WX 838 ; N uni2239 ; G 2265 +U 8762 ; WX 838 ; N uni223A ; G 2266 +U 8763 ; WX 838 ; N uni223B ; G 2267 +U 8764 ; WX 838 ; N similar ; G 2268 +U 8765 ; WX 838 ; N uni223D ; G 2269 +U 8770 ; WX 838 ; N uni2242 ; G 2270 +U 8771 ; WX 838 ; N uni2243 ; G 2271 +U 8776 ; WX 838 ; N approxequal ; G 2272 +U 8784 ; WX 838 ; N uni2250 ; G 2273 +U 8785 ; WX 838 ; N uni2251 ; G 2274 +U 8786 ; WX 838 ; N uni2252 ; G 2275 +U 8787 ; WX 838 ; N uni2253 ; G 2276 +U 8788 ; WX 1033 ; N uni2254 ; G 2277 +U 8789 ; WX 1033 ; N uni2255 ; G 2278 +U 8800 ; WX 838 ; N notequal ; G 2279 +U 8801 ; WX 838 ; N equivalence ; G 2280 +U 8804 ; WX 838 ; N lessequal ; G 2281 +U 8805 ; WX 838 ; N greaterequal ; G 2282 +U 8834 ; WX 838 ; N propersubset ; G 2283 +U 8835 ; WX 838 ; N propersuperset ; G 2284 +U 8836 ; WX 838 ; N notsubset ; G 2285 +U 8837 ; WX 838 ; N uni2285 ; G 2286 +U 8838 ; WX 838 ; N reflexsubset ; G 2287 +U 8839 ; WX 838 ; N reflexsuperset ; G 2288 +U 8844 ; WX 838 ; N uni228C ; G 2289 +U 8845 ; WX 838 ; N uni228D ; G 2290 +U 8846 ; WX 838 ; N uni228E ; G 2291 +U 8847 ; WX 846 ; N uni228F ; G 2292 +U 8848 ; WX 846 ; N uni2290 ; G 2293 +U 8849 ; WX 846 ; N uni2291 ; G 2294 +U 8850 ; WX 846 ; N uni2292 ; G 2295 +U 8851 ; WX 838 ; N uni2293 ; G 2296 +U 8852 ; WX 838 ; N uni2294 ; G 2297 +U 8853 ; WX 838 ; N circleplus ; G 2298 +U 8854 ; WX 838 ; N uni2296 ; G 2299 +U 8855 ; WX 838 ; N circlemultiply ; G 2300 +U 8856 ; WX 838 ; N uni2298 ; G 2301 +U 8857 ; WX 838 ; N uni2299 ; G 2302 +U 8858 ; WX 838 ; N uni229A ; G 2303 +U 8859 ; WX 838 ; N uni229B ; G 2304 +U 8860 ; WX 838 ; N uni229C ; G 2305 +U 8861 ; WX 838 ; N uni229D ; G 2306 +U 8862 ; WX 838 ; N uni229E ; G 2307 +U 8863 ; WX 838 ; N uni229F ; G 2308 +U 8864 ; WX 838 ; N uni22A0 ; G 2309 +U 8865 ; WX 838 ; N uni22A1 ; G 2310 +U 8866 ; WX 860 ; N uni22A2 ; G 2311 +U 8867 ; WX 860 ; N uni22A3 ; G 2312 +U 8868 ; WX 940 ; N uni22A4 ; G 2313 +U 8869 ; WX 940 ; N perpendicular ; G 2314 +U 8870 ; WX 567 ; N uni22A6 ; G 2315 +U 8871 ; WX 567 ; N uni22A7 ; G 2316 +U 8872 ; WX 860 ; N uni22A8 ; G 2317 +U 8873 ; WX 860 ; N uni22A9 ; G 2318 +U 8874 ; WX 860 ; N uni22AA ; G 2319 +U 8875 ; WX 1031 ; N uni22AB ; G 2320 +U 8876 ; WX 860 ; N uni22AC ; G 2321 +U 8877 ; WX 860 ; N uni22AD ; G 2322 +U 8878 ; WX 860 ; N uni22AE ; G 2323 +U 8879 ; WX 1031 ; N uni22AF ; G 2324 +U 8900 ; WX 626 ; N uni22C4 ; G 2325 +U 8901 ; WX 342 ; N dotmath ; G 2326 +U 8962 ; WX 764 ; N house ; G 2327 +U 8968 ; WX 390 ; N uni2308 ; G 2328 +U 8969 ; WX 390 ; N uni2309 ; G 2329 +U 8970 ; WX 390 ; N uni230A ; G 2330 +U 8971 ; WX 390 ; N uni230B ; G 2331 +U 8976 ; WX 838 ; N revlogicalnot ; G 2332 +U 8977 ; WX 513 ; N uni2311 ; G 2333 +U 8984 ; WX 1000 ; N uni2318 ; G 2334 +U 8985 ; WX 838 ; N uni2319 ; G 2335 +U 8992 ; WX 521 ; N integraltp ; G 2336 +U 8993 ; WX 521 ; N integralbt ; G 2337 +U 8997 ; WX 1000 ; N uni2325 ; G 2338 +U 9000 ; WX 1443 ; N uni2328 ; G 2339 +U 9085 ; WX 919 ; N uni237D ; G 2340 +U 9115 ; WX 500 ; N uni239B ; G 2341 +U 9116 ; WX 500 ; N uni239C ; G 2342 +U 9117 ; WX 500 ; N uni239D ; G 2343 +U 9118 ; WX 500 ; N uni239E ; G 2344 +U 9119 ; WX 500 ; N uni239F ; G 2345 +U 9120 ; WX 500 ; N uni23A0 ; G 2346 +U 9121 ; WX 500 ; N uni23A1 ; G 2347 +U 9122 ; WX 500 ; N uni23A2 ; G 2348 +U 9123 ; WX 500 ; N uni23A3 ; G 2349 +U 9124 ; WX 500 ; N uni23A4 ; G 2350 +U 9125 ; WX 500 ; N uni23A5 ; G 2351 +U 9126 ; WX 500 ; N uni23A6 ; G 2352 +U 9127 ; WX 750 ; N uni23A7 ; G 2353 +U 9128 ; WX 750 ; N uni23A8 ; G 2354 +U 9129 ; WX 750 ; N uni23A9 ; G 2355 +U 9130 ; WX 750 ; N uni23AA ; G 2356 +U 9131 ; WX 750 ; N uni23AB ; G 2357 +U 9132 ; WX 750 ; N uni23AC ; G 2358 +U 9133 ; WX 750 ; N uni23AD ; G 2359 +U 9134 ; WX 521 ; N uni23AE ; G 2360 +U 9167 ; WX 945 ; N uni23CF ; G 2361 +U 9251 ; WX 764 ; N uni2423 ; G 2362 +U 9472 ; WX 602 ; N SF100000 ; G 2363 +U 9473 ; WX 602 ; N uni2501 ; G 2364 +U 9474 ; WX 602 ; N SF110000 ; G 2365 +U 9475 ; WX 602 ; N uni2503 ; G 2366 +U 9476 ; WX 602 ; N uni2504 ; G 2367 +U 9477 ; WX 602 ; N uni2505 ; G 2368 +U 9478 ; WX 602 ; N uni2506 ; G 2369 +U 9479 ; WX 602 ; N uni2507 ; G 2370 +U 9480 ; WX 602 ; N uni2508 ; G 2371 +U 9481 ; WX 602 ; N uni2509 ; G 2372 +U 9482 ; WX 602 ; N uni250A ; G 2373 +U 9483 ; WX 602 ; N uni250B ; G 2374 +U 9484 ; WX 602 ; N SF010000 ; G 2375 +U 9485 ; WX 602 ; N uni250D ; G 2376 +U 9486 ; WX 602 ; N uni250E ; G 2377 +U 9487 ; WX 602 ; N uni250F ; G 2378 +U 9488 ; WX 602 ; N SF030000 ; G 2379 +U 9489 ; WX 602 ; N uni2511 ; G 2380 +U 9490 ; WX 602 ; N uni2512 ; G 2381 +U 9491 ; WX 602 ; N uni2513 ; G 2382 +U 9492 ; WX 602 ; N SF020000 ; G 2383 +U 9493 ; WX 602 ; N uni2515 ; G 2384 +U 9494 ; WX 602 ; N uni2516 ; G 2385 +U 9495 ; WX 602 ; N uni2517 ; G 2386 +U 9496 ; WX 602 ; N SF040000 ; G 2387 +U 9497 ; WX 602 ; N uni2519 ; G 2388 +U 9498 ; WX 602 ; N uni251A ; G 2389 +U 9499 ; WX 602 ; N uni251B ; G 2390 +U 9500 ; WX 602 ; N SF080000 ; G 2391 +U 9501 ; WX 602 ; N uni251D ; G 2392 +U 9502 ; WX 602 ; N uni251E ; G 2393 +U 9503 ; WX 602 ; N uni251F ; G 2394 +U 9504 ; WX 602 ; N uni2520 ; G 2395 +U 9505 ; WX 602 ; N uni2521 ; G 2396 +U 9506 ; WX 602 ; N uni2522 ; G 2397 +U 9507 ; WX 602 ; N uni2523 ; G 2398 +U 9508 ; WX 602 ; N SF090000 ; G 2399 +U 9509 ; WX 602 ; N uni2525 ; G 2400 +U 9510 ; WX 602 ; N uni2526 ; G 2401 +U 9511 ; WX 602 ; N uni2527 ; G 2402 +U 9512 ; WX 602 ; N uni2528 ; G 2403 +U 9513 ; WX 602 ; N uni2529 ; G 2404 +U 9514 ; WX 602 ; N uni252A ; G 2405 +U 9515 ; WX 602 ; N uni252B ; G 2406 +U 9516 ; WX 602 ; N SF060000 ; G 2407 +U 9517 ; WX 602 ; N uni252D ; G 2408 +U 9518 ; WX 602 ; N uni252E ; G 2409 +U 9519 ; WX 602 ; N uni252F ; G 2410 +U 9520 ; WX 602 ; N uni2530 ; G 2411 +U 9521 ; WX 602 ; N uni2531 ; G 2412 +U 9522 ; WX 602 ; N uni2532 ; G 2413 +U 9523 ; WX 602 ; N uni2533 ; G 2414 +U 9524 ; WX 602 ; N SF070000 ; G 2415 +U 9525 ; WX 602 ; N uni2535 ; G 2416 +U 9526 ; WX 602 ; N uni2536 ; G 2417 +U 9527 ; WX 602 ; N uni2537 ; G 2418 +U 9528 ; WX 602 ; N uni2538 ; G 2419 +U 9529 ; WX 602 ; N uni2539 ; G 2420 +U 9530 ; WX 602 ; N uni253A ; G 2421 +U 9531 ; WX 602 ; N uni253B ; G 2422 +U 9532 ; WX 602 ; N SF050000 ; G 2423 +U 9533 ; WX 602 ; N uni253D ; G 2424 +U 9534 ; WX 602 ; N uni253E ; G 2425 +U 9535 ; WX 602 ; N uni253F ; G 2426 +U 9536 ; WX 602 ; N uni2540 ; G 2427 +U 9537 ; WX 602 ; N uni2541 ; G 2428 +U 9538 ; WX 602 ; N uni2542 ; G 2429 +U 9539 ; WX 602 ; N uni2543 ; G 2430 +U 9540 ; WX 602 ; N uni2544 ; G 2431 +U 9541 ; WX 602 ; N uni2545 ; G 2432 +U 9542 ; WX 602 ; N uni2546 ; G 2433 +U 9543 ; WX 602 ; N uni2547 ; G 2434 +U 9544 ; WX 602 ; N uni2548 ; G 2435 +U 9545 ; WX 602 ; N uni2549 ; G 2436 +U 9546 ; WX 602 ; N uni254A ; G 2437 +U 9547 ; WX 602 ; N uni254B ; G 2438 +U 9548 ; WX 602 ; N uni254C ; G 2439 +U 9549 ; WX 602 ; N uni254D ; G 2440 +U 9550 ; WX 602 ; N uni254E ; G 2441 +U 9551 ; WX 602 ; N uni254F ; G 2442 +U 9552 ; WX 602 ; N SF430000 ; G 2443 +U 9553 ; WX 602 ; N SF240000 ; G 2444 +U 9554 ; WX 602 ; N SF510000 ; G 2445 +U 9555 ; WX 602 ; N SF520000 ; G 2446 +U 9556 ; WX 602 ; N SF390000 ; G 2447 +U 9557 ; WX 602 ; N SF220000 ; G 2448 +U 9558 ; WX 602 ; N SF210000 ; G 2449 +U 9559 ; WX 602 ; N SF250000 ; G 2450 +U 9560 ; WX 602 ; N SF500000 ; G 2451 +U 9561 ; WX 602 ; N SF490000 ; G 2452 +U 9562 ; WX 602 ; N SF380000 ; G 2453 +U 9563 ; WX 602 ; N SF280000 ; G 2454 +U 9564 ; WX 602 ; N SF270000 ; G 2455 +U 9565 ; WX 602 ; N SF260000 ; G 2456 +U 9566 ; WX 602 ; N SF360000 ; G 2457 +U 9567 ; WX 602 ; N SF370000 ; G 2458 +U 9568 ; WX 602 ; N SF420000 ; G 2459 +U 9569 ; WX 602 ; N SF190000 ; G 2460 +U 9570 ; WX 602 ; N SF200000 ; G 2461 +U 9571 ; WX 602 ; N SF230000 ; G 2462 +U 9572 ; WX 602 ; N SF470000 ; G 2463 +U 9573 ; WX 602 ; N SF480000 ; G 2464 +U 9574 ; WX 602 ; N SF410000 ; G 2465 +U 9575 ; WX 602 ; N SF450000 ; G 2466 +U 9576 ; WX 602 ; N SF460000 ; G 2467 +U 9577 ; WX 602 ; N SF400000 ; G 2468 +U 9578 ; WX 602 ; N SF540000 ; G 2469 +U 9579 ; WX 602 ; N SF530000 ; G 2470 +U 9580 ; WX 602 ; N SF440000 ; G 2471 +U 9581 ; WX 602 ; N uni256D ; G 2472 +U 9582 ; WX 602 ; N uni256E ; G 2473 +U 9583 ; WX 602 ; N uni256F ; G 2474 +U 9584 ; WX 602 ; N uni2570 ; G 2475 +U 9585 ; WX 602 ; N uni2571 ; G 2476 +U 9586 ; WX 602 ; N uni2572 ; G 2477 +U 9587 ; WX 602 ; N uni2573 ; G 2478 +U 9588 ; WX 602 ; N uni2574 ; G 2479 +U 9589 ; WX 602 ; N uni2575 ; G 2480 +U 9590 ; WX 602 ; N uni2576 ; G 2481 +U 9591 ; WX 602 ; N uni2577 ; G 2482 +U 9592 ; WX 602 ; N uni2578 ; G 2483 +U 9593 ; WX 602 ; N uni2579 ; G 2484 +U 9594 ; WX 602 ; N uni257A ; G 2485 +U 9595 ; WX 602 ; N uni257B ; G 2486 +U 9596 ; WX 602 ; N uni257C ; G 2487 +U 9597 ; WX 602 ; N uni257D ; G 2488 +U 9598 ; WX 602 ; N uni257E ; G 2489 +U 9599 ; WX 602 ; N uni257F ; G 2490 +U 9600 ; WX 769 ; N upblock ; G 2491 +U 9601 ; WX 769 ; N uni2581 ; G 2492 +U 9602 ; WX 769 ; N uni2582 ; G 2493 +U 9603 ; WX 769 ; N uni2583 ; G 2494 +U 9604 ; WX 769 ; N dnblock ; G 2495 +U 9605 ; WX 769 ; N uni2585 ; G 2496 +U 9606 ; WX 769 ; N uni2586 ; G 2497 +U 9607 ; WX 769 ; N uni2587 ; G 2498 +U 9608 ; WX 769 ; N block ; G 2499 +U 9609 ; WX 769 ; N uni2589 ; G 2500 +U 9610 ; WX 769 ; N uni258A ; G 2501 +U 9611 ; WX 769 ; N uni258B ; G 2502 +U 9612 ; WX 769 ; N lfblock ; G 2503 +U 9613 ; WX 769 ; N uni258D ; G 2504 +U 9614 ; WX 769 ; N uni258E ; G 2505 +U 9615 ; WX 769 ; N uni258F ; G 2506 +U 9616 ; WX 769 ; N rtblock ; G 2507 +U 9617 ; WX 769 ; N ltshade ; G 2508 +U 9618 ; WX 769 ; N shade ; G 2509 +U 9619 ; WX 769 ; N dkshade ; G 2510 +U 9620 ; WX 769 ; N uni2594 ; G 2511 +U 9621 ; WX 769 ; N uni2595 ; G 2512 +U 9622 ; WX 769 ; N uni2596 ; G 2513 +U 9623 ; WX 769 ; N uni2597 ; G 2514 +U 9624 ; WX 769 ; N uni2598 ; G 2515 +U 9625 ; WX 769 ; N uni2599 ; G 2516 +U 9626 ; WX 769 ; N uni259A ; G 2517 +U 9627 ; WX 769 ; N uni259B ; G 2518 +U 9628 ; WX 769 ; N uni259C ; G 2519 +U 9629 ; WX 769 ; N uni259D ; G 2520 +U 9630 ; WX 769 ; N uni259E ; G 2521 +U 9631 ; WX 769 ; N uni259F ; G 2522 +U 9632 ; WX 945 ; N filledbox ; G 2523 +U 9633 ; WX 945 ; N H22073 ; G 2524 +U 9634 ; WX 945 ; N uni25A2 ; G 2525 +U 9635 ; WX 945 ; N uni25A3 ; G 2526 +U 9636 ; WX 945 ; N uni25A4 ; G 2527 +U 9637 ; WX 945 ; N uni25A5 ; G 2528 +U 9638 ; WX 945 ; N uni25A6 ; G 2529 +U 9639 ; WX 945 ; N uni25A7 ; G 2530 +U 9640 ; WX 945 ; N uni25A8 ; G 2531 +U 9641 ; WX 945 ; N uni25A9 ; G 2532 +U 9642 ; WX 678 ; N H18543 ; G 2533 +U 9643 ; WX 678 ; N H18551 ; G 2534 +U 9644 ; WX 945 ; N filledrect ; G 2535 +U 9645 ; WX 945 ; N uni25AD ; G 2536 +U 9646 ; WX 550 ; N uni25AE ; G 2537 +U 9647 ; WX 550 ; N uni25AF ; G 2538 +U 9648 ; WX 769 ; N uni25B0 ; G 2539 +U 9649 ; WX 769 ; N uni25B1 ; G 2540 +U 9650 ; WX 769 ; N triagup ; G 2541 +U 9651 ; WX 769 ; N uni25B3 ; G 2542 +U 9652 ; WX 502 ; N uni25B4 ; G 2543 +U 9653 ; WX 502 ; N uni25B5 ; G 2544 +U 9654 ; WX 769 ; N uni25B6 ; G 2545 +U 9655 ; WX 769 ; N uni25B7 ; G 2546 +U 9656 ; WX 502 ; N uni25B8 ; G 2547 +U 9657 ; WX 502 ; N uni25B9 ; G 2548 +U 9658 ; WX 769 ; N triagrt ; G 2549 +U 9659 ; WX 769 ; N uni25BB ; G 2550 +U 9660 ; WX 769 ; N triagdn ; G 2551 +U 9661 ; WX 769 ; N uni25BD ; G 2552 +U 9662 ; WX 502 ; N uni25BE ; G 2553 +U 9663 ; WX 502 ; N uni25BF ; G 2554 +U 9664 ; WX 769 ; N uni25C0 ; G 2555 +U 9665 ; WX 769 ; N uni25C1 ; G 2556 +U 9666 ; WX 502 ; N uni25C2 ; G 2557 +U 9667 ; WX 502 ; N uni25C3 ; G 2558 +U 9668 ; WX 769 ; N triaglf ; G 2559 +U 9669 ; WX 769 ; N uni25C5 ; G 2560 +U 9670 ; WX 769 ; N uni25C6 ; G 2561 +U 9671 ; WX 769 ; N uni25C7 ; G 2562 +U 9672 ; WX 769 ; N uni25C8 ; G 2563 +U 9673 ; WX 873 ; N uni25C9 ; G 2564 +U 9674 ; WX 494 ; N lozenge ; G 2565 +U 9675 ; WX 873 ; N circle ; G 2566 +U 9676 ; WX 873 ; N uni25CC ; G 2567 +U 9677 ; WX 873 ; N uni25CD ; G 2568 +U 9678 ; WX 873 ; N uni25CE ; G 2569 +U 9679 ; WX 873 ; N H18533 ; G 2570 +U 9680 ; WX 873 ; N uni25D0 ; G 2571 +U 9681 ; WX 873 ; N uni25D1 ; G 2572 +U 9682 ; WX 873 ; N uni25D2 ; G 2573 +U 9683 ; WX 873 ; N uni25D3 ; G 2574 +U 9684 ; WX 873 ; N uni25D4 ; G 2575 +U 9685 ; WX 873 ; N uni25D5 ; G 2576 +U 9686 ; WX 527 ; N uni25D6 ; G 2577 +U 9687 ; WX 527 ; N uni25D7 ; G 2578 +U 9688 ; WX 791 ; N invbullet ; G 2579 +U 9689 ; WX 970 ; N invcircle ; G 2580 +U 9690 ; WX 970 ; N uni25DA ; G 2581 +U 9691 ; WX 970 ; N uni25DB ; G 2582 +U 9692 ; WX 387 ; N uni25DC ; G 2583 +U 9693 ; WX 387 ; N uni25DD ; G 2584 +U 9694 ; WX 387 ; N uni25DE ; G 2585 +U 9695 ; WX 387 ; N uni25DF ; G 2586 +U 9696 ; WX 873 ; N uni25E0 ; G 2587 +U 9697 ; WX 873 ; N uni25E1 ; G 2588 +U 9698 ; WX 769 ; N uni25E2 ; G 2589 +U 9699 ; WX 769 ; N uni25E3 ; G 2590 +U 9700 ; WX 769 ; N uni25E4 ; G 2591 +U 9701 ; WX 769 ; N uni25E5 ; G 2592 +U 9702 ; WX 590 ; N openbullet ; G 2593 +U 9703 ; WX 945 ; N uni25E7 ; G 2594 +U 9704 ; WX 945 ; N uni25E8 ; G 2595 +U 9705 ; WX 945 ; N uni25E9 ; G 2596 +U 9706 ; WX 945 ; N uni25EA ; G 2597 +U 9707 ; WX 945 ; N uni25EB ; G 2598 +U 9708 ; WX 769 ; N uni25EC ; G 2599 +U 9709 ; WX 769 ; N uni25ED ; G 2600 +U 9710 ; WX 769 ; N uni25EE ; G 2601 +U 9711 ; WX 1119 ; N uni25EF ; G 2602 +U 9712 ; WX 945 ; N uni25F0 ; G 2603 +U 9713 ; WX 945 ; N uni25F1 ; G 2604 +U 9714 ; WX 945 ; N uni25F2 ; G 2605 +U 9715 ; WX 945 ; N uni25F3 ; G 2606 +U 9716 ; WX 873 ; N uni25F4 ; G 2607 +U 9717 ; WX 873 ; N uni25F5 ; G 2608 +U 9718 ; WX 873 ; N uni25F6 ; G 2609 +U 9719 ; WX 873 ; N uni25F7 ; G 2610 +U 9720 ; WX 769 ; N uni25F8 ; G 2611 +U 9721 ; WX 769 ; N uni25F9 ; G 2612 +U 9722 ; WX 769 ; N uni25FA ; G 2613 +U 9723 ; WX 830 ; N uni25FB ; G 2614 +U 9724 ; WX 830 ; N uni25FC ; G 2615 +U 9725 ; WX 732 ; N uni25FD ; G 2616 +U 9726 ; WX 732 ; N uni25FE ; G 2617 +U 9727 ; WX 769 ; N uni25FF ; G 2618 +U 9728 ; WX 896 ; N uni2600 ; G 2619 +U 9784 ; WX 896 ; N uni2638 ; G 2620 +U 9785 ; WX 896 ; N uni2639 ; G 2621 +U 9786 ; WX 896 ; N smileface ; G 2622 +U 9787 ; WX 896 ; N invsmileface ; G 2623 +U 9788 ; WX 896 ; N sun ; G 2624 +U 9791 ; WX 614 ; N uni263F ; G 2625 +U 9792 ; WX 731 ; N female ; G 2626 +U 9793 ; WX 731 ; N uni2641 ; G 2627 +U 9794 ; WX 896 ; N male ; G 2628 +U 9795 ; WX 896 ; N uni2643 ; G 2629 +U 9796 ; WX 896 ; N uni2644 ; G 2630 +U 9797 ; WX 896 ; N uni2645 ; G 2631 +U 9798 ; WX 896 ; N uni2646 ; G 2632 +U 9799 ; WX 896 ; N uni2647 ; G 2633 +U 9824 ; WX 896 ; N spade ; G 2634 +U 9825 ; WX 896 ; N uni2661 ; G 2635 +U 9826 ; WX 896 ; N uni2662 ; G 2636 +U 9827 ; WX 896 ; N club ; G 2637 +U 9828 ; WX 896 ; N uni2664 ; G 2638 +U 9829 ; WX 896 ; N heart ; G 2639 +U 9830 ; WX 896 ; N diamond ; G 2640 +U 9831 ; WX 896 ; N uni2667 ; G 2641 +U 9833 ; WX 472 ; N uni2669 ; G 2642 +U 9834 ; WX 638 ; N musicalnote ; G 2643 +U 9835 ; WX 896 ; N musicalnotedbl ; G 2644 +U 9836 ; WX 896 ; N uni266C ; G 2645 +U 9837 ; WX 472 ; N uni266D ; G 2646 +U 9838 ; WX 357 ; N uni266E ; G 2647 +U 9839 ; WX 484 ; N uni266F ; G 2648 +U 10145 ; WX 838 ; N uni27A1 ; G 2649 +U 10181 ; WX 390 ; N uni27C5 ; G 2650 +U 10182 ; WX 390 ; N uni27C6 ; G 2651 +U 10208 ; WX 494 ; N uni27E0 ; G 2652 +U 10216 ; WX 390 ; N uni27E8 ; G 2653 +U 10217 ; WX 390 ; N uni27E9 ; G 2654 +U 10224 ; WX 838 ; N uni27F0 ; G 2655 +U 10225 ; WX 838 ; N uni27F1 ; G 2656 +U 10226 ; WX 838 ; N uni27F2 ; G 2657 +U 10227 ; WX 838 ; N uni27F3 ; G 2658 +U 10228 ; WX 1033 ; N uni27F4 ; G 2659 +U 10229 ; WX 1434 ; N uni27F5 ; G 2660 +U 10230 ; WX 1434 ; N uni27F6 ; G 2661 +U 10231 ; WX 1434 ; N uni27F7 ; G 2662 +U 10232 ; WX 1434 ; N uni27F8 ; G 2663 +U 10233 ; WX 1434 ; N uni27F9 ; G 2664 +U 10234 ; WX 1434 ; N uni27FA ; G 2665 +U 10235 ; WX 1434 ; N uni27FB ; G 2666 +U 10236 ; WX 1434 ; N uni27FC ; G 2667 +U 10237 ; WX 1434 ; N uni27FD ; G 2668 +U 10238 ; WX 1434 ; N uni27FE ; G 2669 +U 10239 ; WX 1434 ; N uni27FF ; G 2670 +U 10240 ; WX 732 ; N uni2800 ; G 2671 +U 10241 ; WX 732 ; N uni2801 ; G 2672 +U 10242 ; WX 732 ; N uni2802 ; G 2673 +U 10243 ; WX 732 ; N uni2803 ; G 2674 +U 10244 ; WX 732 ; N uni2804 ; G 2675 +U 10245 ; WX 732 ; N uni2805 ; G 2676 +U 10246 ; WX 732 ; N uni2806 ; G 2677 +U 10247 ; WX 732 ; N uni2807 ; G 2678 +U 10248 ; WX 732 ; N uni2808 ; G 2679 +U 10249 ; WX 732 ; N uni2809 ; G 2680 +U 10250 ; WX 732 ; N uni280A ; G 2681 +U 10251 ; WX 732 ; N uni280B ; G 2682 +U 10252 ; WX 732 ; N uni280C ; G 2683 +U 10253 ; WX 732 ; N uni280D ; G 2684 +U 10254 ; WX 732 ; N uni280E ; G 2685 +U 10255 ; WX 732 ; N uni280F ; G 2686 +U 10256 ; WX 732 ; N uni2810 ; G 2687 +U 10257 ; WX 732 ; N uni2811 ; G 2688 +U 10258 ; WX 732 ; N uni2812 ; G 2689 +U 10259 ; WX 732 ; N uni2813 ; G 2690 +U 10260 ; WX 732 ; N uni2814 ; G 2691 +U 10261 ; WX 732 ; N uni2815 ; G 2692 +U 10262 ; WX 732 ; N uni2816 ; G 2693 +U 10263 ; WX 732 ; N uni2817 ; G 2694 +U 10264 ; WX 732 ; N uni2818 ; G 2695 +U 10265 ; WX 732 ; N uni2819 ; G 2696 +U 10266 ; WX 732 ; N uni281A ; G 2697 +U 10267 ; WX 732 ; N uni281B ; G 2698 +U 10268 ; WX 732 ; N uni281C ; G 2699 +U 10269 ; WX 732 ; N uni281D ; G 2700 +U 10270 ; WX 732 ; N uni281E ; G 2701 +U 10271 ; WX 732 ; N uni281F ; G 2702 +U 10272 ; WX 732 ; N uni2820 ; G 2703 +U 10273 ; WX 732 ; N uni2821 ; G 2704 +U 10274 ; WX 732 ; N uni2822 ; G 2705 +U 10275 ; WX 732 ; N uni2823 ; G 2706 +U 10276 ; WX 732 ; N uni2824 ; G 2707 +U 10277 ; WX 732 ; N uni2825 ; G 2708 +U 10278 ; WX 732 ; N uni2826 ; G 2709 +U 10279 ; WX 732 ; N uni2827 ; G 2710 +U 10280 ; WX 732 ; N uni2828 ; G 2711 +U 10281 ; WX 732 ; N uni2829 ; G 2712 +U 10282 ; WX 732 ; N uni282A ; G 2713 +U 10283 ; WX 732 ; N uni282B ; G 2714 +U 10284 ; WX 732 ; N uni282C ; G 2715 +U 10285 ; WX 732 ; N uni282D ; G 2716 +U 10286 ; WX 732 ; N uni282E ; G 2717 +U 10287 ; WX 732 ; N uni282F ; G 2718 +U 10288 ; WX 732 ; N uni2830 ; G 2719 +U 10289 ; WX 732 ; N uni2831 ; G 2720 +U 10290 ; WX 732 ; N uni2832 ; G 2721 +U 10291 ; WX 732 ; N uni2833 ; G 2722 +U 10292 ; WX 732 ; N uni2834 ; G 2723 +U 10293 ; WX 732 ; N uni2835 ; G 2724 +U 10294 ; WX 732 ; N uni2836 ; G 2725 +U 10295 ; WX 732 ; N uni2837 ; G 2726 +U 10296 ; WX 732 ; N uni2838 ; G 2727 +U 10297 ; WX 732 ; N uni2839 ; G 2728 +U 10298 ; WX 732 ; N uni283A ; G 2729 +U 10299 ; WX 732 ; N uni283B ; G 2730 +U 10300 ; WX 732 ; N uni283C ; G 2731 +U 10301 ; WX 732 ; N uni283D ; G 2732 +U 10302 ; WX 732 ; N uni283E ; G 2733 +U 10303 ; WX 732 ; N uni283F ; G 2734 +U 10304 ; WX 732 ; N uni2840 ; G 2735 +U 10305 ; WX 732 ; N uni2841 ; G 2736 +U 10306 ; WX 732 ; N uni2842 ; G 2737 +U 10307 ; WX 732 ; N uni2843 ; G 2738 +U 10308 ; WX 732 ; N uni2844 ; G 2739 +U 10309 ; WX 732 ; N uni2845 ; G 2740 +U 10310 ; WX 732 ; N uni2846 ; G 2741 +U 10311 ; WX 732 ; N uni2847 ; G 2742 +U 10312 ; WX 732 ; N uni2848 ; G 2743 +U 10313 ; WX 732 ; N uni2849 ; G 2744 +U 10314 ; WX 732 ; N uni284A ; G 2745 +U 10315 ; WX 732 ; N uni284B ; G 2746 +U 10316 ; WX 732 ; N uni284C ; G 2747 +U 10317 ; WX 732 ; N uni284D ; G 2748 +U 10318 ; WX 732 ; N uni284E ; G 2749 +U 10319 ; WX 732 ; N uni284F ; G 2750 +U 10320 ; WX 732 ; N uni2850 ; G 2751 +U 10321 ; WX 732 ; N uni2851 ; G 2752 +U 10322 ; WX 732 ; N uni2852 ; G 2753 +U 10323 ; WX 732 ; N uni2853 ; G 2754 +U 10324 ; WX 732 ; N uni2854 ; G 2755 +U 10325 ; WX 732 ; N uni2855 ; G 2756 +U 10326 ; WX 732 ; N uni2856 ; G 2757 +U 10327 ; WX 732 ; N uni2857 ; G 2758 +U 10328 ; WX 732 ; N uni2858 ; G 2759 +U 10329 ; WX 732 ; N uni2859 ; G 2760 +U 10330 ; WX 732 ; N uni285A ; G 2761 +U 10331 ; WX 732 ; N uni285B ; G 2762 +U 10332 ; WX 732 ; N uni285C ; G 2763 +U 10333 ; WX 732 ; N uni285D ; G 2764 +U 10334 ; WX 732 ; N uni285E ; G 2765 +U 10335 ; WX 732 ; N uni285F ; G 2766 +U 10336 ; WX 732 ; N uni2860 ; G 2767 +U 10337 ; WX 732 ; N uni2861 ; G 2768 +U 10338 ; WX 732 ; N uni2862 ; G 2769 +U 10339 ; WX 732 ; N uni2863 ; G 2770 +U 10340 ; WX 732 ; N uni2864 ; G 2771 +U 10341 ; WX 732 ; N uni2865 ; G 2772 +U 10342 ; WX 732 ; N uni2866 ; G 2773 +U 10343 ; WX 732 ; N uni2867 ; G 2774 +U 10344 ; WX 732 ; N uni2868 ; G 2775 +U 10345 ; WX 732 ; N uni2869 ; G 2776 +U 10346 ; WX 732 ; N uni286A ; G 2777 +U 10347 ; WX 732 ; N uni286B ; G 2778 +U 10348 ; WX 732 ; N uni286C ; G 2779 +U 10349 ; WX 732 ; N uni286D ; G 2780 +U 10350 ; WX 732 ; N uni286E ; G 2781 +U 10351 ; WX 732 ; N uni286F ; G 2782 +U 10352 ; WX 732 ; N uni2870 ; G 2783 +U 10353 ; WX 732 ; N uni2871 ; G 2784 +U 10354 ; WX 732 ; N uni2872 ; G 2785 +U 10355 ; WX 732 ; N uni2873 ; G 2786 +U 10356 ; WX 732 ; N uni2874 ; G 2787 +U 10357 ; WX 732 ; N uni2875 ; G 2788 +U 10358 ; WX 732 ; N uni2876 ; G 2789 +U 10359 ; WX 732 ; N uni2877 ; G 2790 +U 10360 ; WX 732 ; N uni2878 ; G 2791 +U 10361 ; WX 732 ; N uni2879 ; G 2792 +U 10362 ; WX 732 ; N uni287A ; G 2793 +U 10363 ; WX 732 ; N uni287B ; G 2794 +U 10364 ; WX 732 ; N uni287C ; G 2795 +U 10365 ; WX 732 ; N uni287D ; G 2796 +U 10366 ; WX 732 ; N uni287E ; G 2797 +U 10367 ; WX 732 ; N uni287F ; G 2798 +U 10368 ; WX 732 ; N uni2880 ; G 2799 +U 10369 ; WX 732 ; N uni2881 ; G 2800 +U 10370 ; WX 732 ; N uni2882 ; G 2801 +U 10371 ; WX 732 ; N uni2883 ; G 2802 +U 10372 ; WX 732 ; N uni2884 ; G 2803 +U 10373 ; WX 732 ; N uni2885 ; G 2804 +U 10374 ; WX 732 ; N uni2886 ; G 2805 +U 10375 ; WX 732 ; N uni2887 ; G 2806 +U 10376 ; WX 732 ; N uni2888 ; G 2807 +U 10377 ; WX 732 ; N uni2889 ; G 2808 +U 10378 ; WX 732 ; N uni288A ; G 2809 +U 10379 ; WX 732 ; N uni288B ; G 2810 +U 10380 ; WX 732 ; N uni288C ; G 2811 +U 10381 ; WX 732 ; N uni288D ; G 2812 +U 10382 ; WX 732 ; N uni288E ; G 2813 +U 10383 ; WX 732 ; N uni288F ; G 2814 +U 10384 ; WX 732 ; N uni2890 ; G 2815 +U 10385 ; WX 732 ; N uni2891 ; G 2816 +U 10386 ; WX 732 ; N uni2892 ; G 2817 +U 10387 ; WX 732 ; N uni2893 ; G 2818 +U 10388 ; WX 732 ; N uni2894 ; G 2819 +U 10389 ; WX 732 ; N uni2895 ; G 2820 +U 10390 ; WX 732 ; N uni2896 ; G 2821 +U 10391 ; WX 732 ; N uni2897 ; G 2822 +U 10392 ; WX 732 ; N uni2898 ; G 2823 +U 10393 ; WX 732 ; N uni2899 ; G 2824 +U 10394 ; WX 732 ; N uni289A ; G 2825 +U 10395 ; WX 732 ; N uni289B ; G 2826 +U 10396 ; WX 732 ; N uni289C ; G 2827 +U 10397 ; WX 732 ; N uni289D ; G 2828 +U 10398 ; WX 732 ; N uni289E ; G 2829 +U 10399 ; WX 732 ; N uni289F ; G 2830 +U 10400 ; WX 732 ; N uni28A0 ; G 2831 +U 10401 ; WX 732 ; N uni28A1 ; G 2832 +U 10402 ; WX 732 ; N uni28A2 ; G 2833 +U 10403 ; WX 732 ; N uni28A3 ; G 2834 +U 10404 ; WX 732 ; N uni28A4 ; G 2835 +U 10405 ; WX 732 ; N uni28A5 ; G 2836 +U 10406 ; WX 732 ; N uni28A6 ; G 2837 +U 10407 ; WX 732 ; N uni28A7 ; G 2838 +U 10408 ; WX 732 ; N uni28A8 ; G 2839 +U 10409 ; WX 732 ; N uni28A9 ; G 2840 +U 10410 ; WX 732 ; N uni28AA ; G 2841 +U 10411 ; WX 732 ; N uni28AB ; G 2842 +U 10412 ; WX 732 ; N uni28AC ; G 2843 +U 10413 ; WX 732 ; N uni28AD ; G 2844 +U 10414 ; WX 732 ; N uni28AE ; G 2845 +U 10415 ; WX 732 ; N uni28AF ; G 2846 +U 10416 ; WX 732 ; N uni28B0 ; G 2847 +U 10417 ; WX 732 ; N uni28B1 ; G 2848 +U 10418 ; WX 732 ; N uni28B2 ; G 2849 +U 10419 ; WX 732 ; N uni28B3 ; G 2850 +U 10420 ; WX 732 ; N uni28B4 ; G 2851 +U 10421 ; WX 732 ; N uni28B5 ; G 2852 +U 10422 ; WX 732 ; N uni28B6 ; G 2853 +U 10423 ; WX 732 ; N uni28B7 ; G 2854 +U 10424 ; WX 732 ; N uni28B8 ; G 2855 +U 10425 ; WX 732 ; N uni28B9 ; G 2856 +U 10426 ; WX 732 ; N uni28BA ; G 2857 +U 10427 ; WX 732 ; N uni28BB ; G 2858 +U 10428 ; WX 732 ; N uni28BC ; G 2859 +U 10429 ; WX 732 ; N uni28BD ; G 2860 +U 10430 ; WX 732 ; N uni28BE ; G 2861 +U 10431 ; WX 732 ; N uni28BF ; G 2862 +U 10432 ; WX 732 ; N uni28C0 ; G 2863 +U 10433 ; WX 732 ; N uni28C1 ; G 2864 +U 10434 ; WX 732 ; N uni28C2 ; G 2865 +U 10435 ; WX 732 ; N uni28C3 ; G 2866 +U 10436 ; WX 732 ; N uni28C4 ; G 2867 +U 10437 ; WX 732 ; N uni28C5 ; G 2868 +U 10438 ; WX 732 ; N uni28C6 ; G 2869 +U 10439 ; WX 732 ; N uni28C7 ; G 2870 +U 10440 ; WX 732 ; N uni28C8 ; G 2871 +U 10441 ; WX 732 ; N uni28C9 ; G 2872 +U 10442 ; WX 732 ; N uni28CA ; G 2873 +U 10443 ; WX 732 ; N uni28CB ; G 2874 +U 10444 ; WX 732 ; N uni28CC ; G 2875 +U 10445 ; WX 732 ; N uni28CD ; G 2876 +U 10446 ; WX 732 ; N uni28CE ; G 2877 +U 10447 ; WX 732 ; N uni28CF ; G 2878 +U 10448 ; WX 732 ; N uni28D0 ; G 2879 +U 10449 ; WX 732 ; N uni28D1 ; G 2880 +U 10450 ; WX 732 ; N uni28D2 ; G 2881 +U 10451 ; WX 732 ; N uni28D3 ; G 2882 +U 10452 ; WX 732 ; N uni28D4 ; G 2883 +U 10453 ; WX 732 ; N uni28D5 ; G 2884 +U 10454 ; WX 732 ; N uni28D6 ; G 2885 +U 10455 ; WX 732 ; N uni28D7 ; G 2886 +U 10456 ; WX 732 ; N uni28D8 ; G 2887 +U 10457 ; WX 732 ; N uni28D9 ; G 2888 +U 10458 ; WX 732 ; N uni28DA ; G 2889 +U 10459 ; WX 732 ; N uni28DB ; G 2890 +U 10460 ; WX 732 ; N uni28DC ; G 2891 +U 10461 ; WX 732 ; N uni28DD ; G 2892 +U 10462 ; WX 732 ; N uni28DE ; G 2893 +U 10463 ; WX 732 ; N uni28DF ; G 2894 +U 10464 ; WX 732 ; N uni28E0 ; G 2895 +U 10465 ; WX 732 ; N uni28E1 ; G 2896 +U 10466 ; WX 732 ; N uni28E2 ; G 2897 +U 10467 ; WX 732 ; N uni28E3 ; G 2898 +U 10468 ; WX 732 ; N uni28E4 ; G 2899 +U 10469 ; WX 732 ; N uni28E5 ; G 2900 +U 10470 ; WX 732 ; N uni28E6 ; G 2901 +U 10471 ; WX 732 ; N uni28E7 ; G 2902 +U 10472 ; WX 732 ; N uni28E8 ; G 2903 +U 10473 ; WX 732 ; N uni28E9 ; G 2904 +U 10474 ; WX 732 ; N uni28EA ; G 2905 +U 10475 ; WX 732 ; N uni28EB ; G 2906 +U 10476 ; WX 732 ; N uni28EC ; G 2907 +U 10477 ; WX 732 ; N uni28ED ; G 2908 +U 10478 ; WX 732 ; N uni28EE ; G 2909 +U 10479 ; WX 732 ; N uni28EF ; G 2910 +U 10480 ; WX 732 ; N uni28F0 ; G 2911 +U 10481 ; WX 732 ; N uni28F1 ; G 2912 +U 10482 ; WX 732 ; N uni28F2 ; G 2913 +U 10483 ; WX 732 ; N uni28F3 ; G 2914 +U 10484 ; WX 732 ; N uni28F4 ; G 2915 +U 10485 ; WX 732 ; N uni28F5 ; G 2916 +U 10486 ; WX 732 ; N uni28F6 ; G 2917 +U 10487 ; WX 732 ; N uni28F7 ; G 2918 +U 10488 ; WX 732 ; N uni28F8 ; G 2919 +U 10489 ; WX 732 ; N uni28F9 ; G 2920 +U 10490 ; WX 732 ; N uni28FA ; G 2921 +U 10491 ; WX 732 ; N uni28FB ; G 2922 +U 10492 ; WX 732 ; N uni28FC ; G 2923 +U 10493 ; WX 732 ; N uni28FD ; G 2924 +U 10494 ; WX 732 ; N uni28FE ; G 2925 +U 10495 ; WX 732 ; N uni28FF ; G 2926 +U 10496 ; WX 838 ; N uni2900 ; G 2927 +U 10497 ; WX 838 ; N uni2901 ; G 2928 +U 10498 ; WX 838 ; N uni2902 ; G 2929 +U 10499 ; WX 838 ; N uni2903 ; G 2930 +U 10500 ; WX 838 ; N uni2904 ; G 2931 +U 10501 ; WX 838 ; N uni2905 ; G 2932 +U 10502 ; WX 838 ; N uni2906 ; G 2933 +U 10503 ; WX 838 ; N uni2907 ; G 2934 +U 10504 ; WX 838 ; N uni2908 ; G 2935 +U 10505 ; WX 838 ; N uni2909 ; G 2936 +U 10506 ; WX 838 ; N uni290A ; G 2937 +U 10507 ; WX 838 ; N uni290B ; G 2938 +U 10508 ; WX 838 ; N uni290C ; G 2939 +U 10509 ; WX 838 ; N uni290D ; G 2940 +U 10510 ; WX 838 ; N uni290E ; G 2941 +U 10511 ; WX 838 ; N uni290F ; G 2942 +U 10512 ; WX 838 ; N uni2910 ; G 2943 +U 10513 ; WX 838 ; N uni2911 ; G 2944 +U 10514 ; WX 838 ; N uni2912 ; G 2945 +U 10515 ; WX 838 ; N uni2913 ; G 2946 +U 10516 ; WX 838 ; N uni2914 ; G 2947 +U 10517 ; WX 838 ; N uni2915 ; G 2948 +U 10518 ; WX 838 ; N uni2916 ; G 2949 +U 10519 ; WX 838 ; N uni2917 ; G 2950 +U 10520 ; WX 838 ; N uni2918 ; G 2951 +U 10521 ; WX 838 ; N uni2919 ; G 2952 +U 10522 ; WX 838 ; N uni291A ; G 2953 +U 10523 ; WX 838 ; N uni291B ; G 2954 +U 10524 ; WX 838 ; N uni291C ; G 2955 +U 10525 ; WX 838 ; N uni291D ; G 2956 +U 10526 ; WX 838 ; N uni291E ; G 2957 +U 10527 ; WX 838 ; N uni291F ; G 2958 +U 10528 ; WX 838 ; N uni2920 ; G 2959 +U 10529 ; WX 838 ; N uni2921 ; G 2960 +U 10530 ; WX 838 ; N uni2922 ; G 2961 +U 10531 ; WX 838 ; N uni2923 ; G 2962 +U 10532 ; WX 838 ; N uni2924 ; G 2963 +U 10533 ; WX 838 ; N uni2925 ; G 2964 +U 10534 ; WX 838 ; N uni2926 ; G 2965 +U 10535 ; WX 838 ; N uni2927 ; G 2966 +U 10536 ; WX 838 ; N uni2928 ; G 2967 +U 10537 ; WX 838 ; N uni2929 ; G 2968 +U 10538 ; WX 838 ; N uni292A ; G 2969 +U 10539 ; WX 838 ; N uni292B ; G 2970 +U 10540 ; WX 838 ; N uni292C ; G 2971 +U 10541 ; WX 838 ; N uni292D ; G 2972 +U 10542 ; WX 838 ; N uni292E ; G 2973 +U 10543 ; WX 838 ; N uni292F ; G 2974 +U 10544 ; WX 838 ; N uni2930 ; G 2975 +U 10545 ; WX 838 ; N uni2931 ; G 2976 +U 10546 ; WX 838 ; N uni2932 ; G 2977 +U 10547 ; WX 838 ; N uni2933 ; G 2978 +U 10548 ; WX 838 ; N uni2934 ; G 2979 +U 10549 ; WX 838 ; N uni2935 ; G 2980 +U 10550 ; WX 838 ; N uni2936 ; G 2981 +U 10551 ; WX 838 ; N uni2937 ; G 2982 +U 10552 ; WX 838 ; N uni2938 ; G 2983 +U 10553 ; WX 838 ; N uni2939 ; G 2984 +U 10554 ; WX 838 ; N uni293A ; G 2985 +U 10555 ; WX 838 ; N uni293B ; G 2986 +U 10556 ; WX 838 ; N uni293C ; G 2987 +U 10557 ; WX 838 ; N uni293D ; G 2988 +U 10558 ; WX 838 ; N uni293E ; G 2989 +U 10559 ; WX 838 ; N uni293F ; G 2990 +U 10560 ; WX 838 ; N uni2940 ; G 2991 +U 10561 ; WX 838 ; N uni2941 ; G 2992 +U 10562 ; WX 838 ; N uni2942 ; G 2993 +U 10563 ; WX 838 ; N uni2943 ; G 2994 +U 10564 ; WX 838 ; N uni2944 ; G 2995 +U 10565 ; WX 838 ; N uni2945 ; G 2996 +U 10566 ; WX 838 ; N uni2946 ; G 2997 +U 10567 ; WX 838 ; N uni2947 ; G 2998 +U 10568 ; WX 838 ; N uni2948 ; G 2999 +U 10569 ; WX 838 ; N uni2949 ; G 3000 +U 10570 ; WX 838 ; N uni294A ; G 3001 +U 10571 ; WX 838 ; N uni294B ; G 3002 +U 10572 ; WX 838 ; N uni294C ; G 3003 +U 10573 ; WX 838 ; N uni294D ; G 3004 +U 10574 ; WX 838 ; N uni294E ; G 3005 +U 10575 ; WX 838 ; N uni294F ; G 3006 +U 10576 ; WX 838 ; N uni2950 ; G 3007 +U 10577 ; WX 838 ; N uni2951 ; G 3008 +U 10578 ; WX 838 ; N uni2952 ; G 3009 +U 10579 ; WX 838 ; N uni2953 ; G 3010 +U 10580 ; WX 838 ; N uni2954 ; G 3011 +U 10581 ; WX 838 ; N uni2955 ; G 3012 +U 10582 ; WX 838 ; N uni2956 ; G 3013 +U 10583 ; WX 838 ; N uni2957 ; G 3014 +U 10584 ; WX 838 ; N uni2958 ; G 3015 +U 10585 ; WX 838 ; N uni2959 ; G 3016 +U 10586 ; WX 838 ; N uni295A ; G 3017 +U 10587 ; WX 838 ; N uni295B ; G 3018 +U 10588 ; WX 838 ; N uni295C ; G 3019 +U 10589 ; WX 838 ; N uni295D ; G 3020 +U 10590 ; WX 838 ; N uni295E ; G 3021 +U 10591 ; WX 838 ; N uni295F ; G 3022 +U 10592 ; WX 838 ; N uni2960 ; G 3023 +U 10593 ; WX 838 ; N uni2961 ; G 3024 +U 10594 ; WX 838 ; N uni2962 ; G 3025 +U 10595 ; WX 838 ; N uni2963 ; G 3026 +U 10596 ; WX 838 ; N uni2964 ; G 3027 +U 10597 ; WX 838 ; N uni2965 ; G 3028 +U 10598 ; WX 838 ; N uni2966 ; G 3029 +U 10599 ; WX 838 ; N uni2967 ; G 3030 +U 10600 ; WX 838 ; N uni2968 ; G 3031 +U 10601 ; WX 838 ; N uni2969 ; G 3032 +U 10602 ; WX 838 ; N uni296A ; G 3033 +U 10603 ; WX 838 ; N uni296B ; G 3034 +U 10604 ; WX 838 ; N uni296C ; G 3035 +U 10605 ; WX 838 ; N uni296D ; G 3036 +U 10606 ; WX 838 ; N uni296E ; G 3037 +U 10607 ; WX 838 ; N uni296F ; G 3038 +U 10608 ; WX 838 ; N uni2970 ; G 3039 +U 10609 ; WX 838 ; N uni2971 ; G 3040 +U 10610 ; WX 838 ; N uni2972 ; G 3041 +U 10611 ; WX 838 ; N uni2973 ; G 3042 +U 10612 ; WX 838 ; N uni2974 ; G 3043 +U 10613 ; WX 838 ; N uni2975 ; G 3044 +U 10614 ; WX 838 ; N uni2976 ; G 3045 +U 10615 ; WX 981 ; N uni2977 ; G 3046 +U 10616 ; WX 838 ; N uni2978 ; G 3047 +U 10617 ; WX 838 ; N uni2979 ; G 3048 +U 10618 ; WX 984 ; N uni297A ; G 3049 +U 10619 ; WX 838 ; N uni297B ; G 3050 +U 10620 ; WX 838 ; N uni297C ; G 3051 +U 10621 ; WX 838 ; N uni297D ; G 3052 +U 10622 ; WX 838 ; N uni297E ; G 3053 +U 10623 ; WX 838 ; N uni297F ; G 3054 +U 10731 ; WX 494 ; N uni29EB ; G 3055 +U 10764 ; WX 1513 ; N uni2A0C ; G 3056 +U 10765 ; WX 521 ; N uni2A0D ; G 3057 +U 10766 ; WX 521 ; N uni2A0E ; G 3058 +U 10799 ; WX 838 ; N uni2A2F ; G 3059 +U 10858 ; WX 838 ; N uni2A6A ; G 3060 +U 10859 ; WX 838 ; N uni2A6B ; G 3061 +U 11008 ; WX 838 ; N uni2B00 ; G 3062 +U 11009 ; WX 838 ; N uni2B01 ; G 3063 +U 11010 ; WX 838 ; N uni2B02 ; G 3064 +U 11011 ; WX 838 ; N uni2B03 ; G 3065 +U 11012 ; WX 838 ; N uni2B04 ; G 3066 +U 11013 ; WX 838 ; N uni2B05 ; G 3067 +U 11014 ; WX 838 ; N uni2B06 ; G 3068 +U 11015 ; WX 838 ; N uni2B07 ; G 3069 +U 11016 ; WX 838 ; N uni2B08 ; G 3070 +U 11017 ; WX 838 ; N uni2B09 ; G 3071 +U 11018 ; WX 838 ; N uni2B0A ; G 3072 +U 11019 ; WX 838 ; N uni2B0B ; G 3073 +U 11020 ; WX 838 ; N uni2B0C ; G 3074 +U 11021 ; WX 838 ; N uni2B0D ; G 3075 +U 11022 ; WX 838 ; N uni2B0E ; G 3076 +U 11023 ; WX 838 ; N uni2B0F ; G 3077 +U 11024 ; WX 838 ; N uni2B10 ; G 3078 +U 11025 ; WX 838 ; N uni2B11 ; G 3079 +U 11026 ; WX 945 ; N uni2B12 ; G 3080 +U 11027 ; WX 945 ; N uni2B13 ; G 3081 +U 11028 ; WX 945 ; N uni2B14 ; G 3082 +U 11029 ; WX 945 ; N uni2B15 ; G 3083 +U 11030 ; WX 769 ; N uni2B16 ; G 3084 +U 11031 ; WX 769 ; N uni2B17 ; G 3085 +U 11032 ; WX 769 ; N uni2B18 ; G 3086 +U 11033 ; WX 769 ; N uni2B19 ; G 3087 +U 11034 ; WX 945 ; N uni2B1A ; G 3088 +U 11360 ; WX 664 ; N uni2C60 ; G 3089 +U 11361 ; WX 320 ; N uni2C61 ; G 3090 +U 11363 ; WX 673 ; N uni2C63 ; G 3091 +U 11364 ; WX 753 ; N uni2C64 ; G 3092 +U 11367 ; WX 872 ; N uni2C67 ; G 3093 +U 11368 ; WX 644 ; N uni2C68 ; G 3094 +U 11369 ; WX 747 ; N uni2C69 ; G 3095 +U 11370 ; WX 606 ; N uni2C6A ; G 3096 +U 11371 ; WX 695 ; N uni2C6B ; G 3097 +U 11372 ; WX 527 ; N uni2C6C ; G 3098 +U 11373 ; WX 782 ; N uni2C6D ; G 3099 +U 11374 ; WX 1024 ; N uni2C6E ; G 3100 +U 11375 ; WX 722 ; N uni2C6F ; G 3101 +U 11376 ; WX 782 ; N uni2C70 ; G 3102 +U 11377 ; WX 663 ; N uni2C71 ; G 3103 +U 11378 ; WX 1130 ; N uni2C72 ; G 3104 +U 11379 ; WX 939 ; N uni2C73 ; G 3105 +U 11381 ; WX 740 ; N uni2C75 ; G 3106 +U 11382 ; WX 531 ; N uni2C76 ; G 3107 +U 11383 ; WX 700 ; N uni2C77 ; G 3108 +U 11385 ; WX 501 ; N uni2C79 ; G 3109 +U 11386 ; WX 602 ; N uni2C7A ; G 3110 +U 11387 ; WX 553 ; N uni2C7B ; G 3111 +U 11388 ; WX 264 ; N uni2C7C ; G 3112 +U 11389 ; WX 455 ; N uni2C7D ; G 3113 +U 11390 ; WX 685 ; N uni2C7E ; G 3114 +U 11391 ; WX 695 ; N uni2C7F ; G 3115 +U 11520 ; WX 773 ; N uni2D00 ; G 3116 +U 11521 ; WX 635 ; N uni2D01 ; G 3117 +U 11522 ; WX 633 ; N uni2D02 ; G 3118 +U 11523 ; WX 658 ; N uni2D03 ; G 3119 +U 11524 ; WX 631 ; N uni2D04 ; G 3120 +U 11525 ; WX 962 ; N uni2D05 ; G 3121 +U 11526 ; WX 756 ; N uni2D06 ; G 3122 +U 11527 ; WX 960 ; N uni2D07 ; G 3123 +U 11528 ; WX 617 ; N uni2D08 ; G 3124 +U 11529 ; WX 646 ; N uni2D09 ; G 3125 +U 11530 ; WX 962 ; N uni2D0A ; G 3126 +U 11531 ; WX 632 ; N uni2D0B ; G 3127 +U 11532 ; WX 646 ; N uni2D0C ; G 3128 +U 11533 ; WX 962 ; N uni2D0D ; G 3129 +U 11534 ; WX 645 ; N uni2D0E ; G 3130 +U 11535 ; WX 866 ; N uni2D0F ; G 3131 +U 11536 ; WX 961 ; N uni2D10 ; G 3132 +U 11537 ; WX 645 ; N uni2D11 ; G 3133 +U 11538 ; WX 645 ; N uni2D12 ; G 3134 +U 11539 ; WX 959 ; N uni2D13 ; G 3135 +U 11540 ; WX 945 ; N uni2D14 ; G 3136 +U 11541 ; WX 863 ; N uni2D15 ; G 3137 +U 11542 ; WX 644 ; N uni2D16 ; G 3138 +U 11543 ; WX 646 ; N uni2D17 ; G 3139 +U 11544 ; WX 645 ; N uni2D18 ; G 3140 +U 11545 ; WX 649 ; N uni2D19 ; G 3141 +U 11546 ; WX 688 ; N uni2D1A ; G 3142 +U 11547 ; WX 634 ; N uni2D1B ; G 3143 +U 11548 ; WX 982 ; N uni2D1C ; G 3144 +U 11549 ; WX 681 ; N uni2D1D ; G 3145 +U 11550 ; WX 676 ; N uni2D1E ; G 3146 +U 11551 ; WX 852 ; N uni2D1F ; G 3147 +U 11552 ; WX 957 ; N uni2D20 ; G 3148 +U 11553 ; WX 632 ; N uni2D21 ; G 3149 +U 11554 ; WX 645 ; N uni2D22 ; G 3150 +U 11555 ; WX 646 ; N uni2D23 ; G 3151 +U 11556 ; WX 749 ; N uni2D24 ; G 3152 +U 11557 ; WX 914 ; N uni2D25 ; G 3153 +U 11800 ; WX 536 ; N uni2E18 ; G 3154 +U 11807 ; WX 838 ; N uni2E1F ; G 3155 +U 11810 ; WX 390 ; N uni2E22 ; G 3156 +U 11811 ; WX 390 ; N uni2E23 ; G 3157 +U 11812 ; WX 390 ; N uni2E24 ; G 3158 +U 11813 ; WX 390 ; N uni2E25 ; G 3159 +U 11822 ; WX 536 ; N uni2E2E ; G 3160 +U 42564 ; WX 685 ; N uniA644 ; G 3161 +U 42565 ; WX 513 ; N uniA645 ; G 3162 +U 42566 ; WX 395 ; N uniA646 ; G 3163 +U 42567 ; WX 392 ; N uniA647 ; G 3164 +U 42576 ; WX 1104 ; N uniA650 ; G 3165 +U 42577 ; WX 939 ; N uniA651 ; G 3166 +U 42580 ; WX 1193 ; N uniA654 ; G 3167 +U 42581 ; WX 871 ; N uniA655 ; G 3168 +U 42582 ; WX 1140 ; N uniA656 ; G 3169 +U 42583 ; WX 875 ; N uniA657 ; G 3170 +U 42648 ; WX 1416 ; N uniA698 ; G 3171 +U 42649 ; WX 999 ; N uniA699 ; G 3172 +U 42760 ; WX 493 ; N uniA708 ; G 3173 +U 42761 ; WX 493 ; N uniA709 ; G 3174 +U 42762 ; WX 493 ; N uniA70A ; G 3175 +U 42763 ; WX 493 ; N uniA70B ; G 3176 +U 42764 ; WX 493 ; N uniA70C ; G 3177 +U 42765 ; WX 493 ; N uniA70D ; G 3178 +U 42766 ; WX 493 ; N uniA70E ; G 3179 +U 42767 ; WX 493 ; N uniA70F ; G 3180 +U 42768 ; WX 493 ; N uniA710 ; G 3181 +U 42769 ; WX 493 ; N uniA711 ; G 3182 +U 42770 ; WX 493 ; N uniA712 ; G 3183 +U 42771 ; WX 493 ; N uniA713 ; G 3184 +U 42772 ; WX 493 ; N uniA714 ; G 3185 +U 42773 ; WX 493 ; N uniA715 ; G 3186 +U 42774 ; WX 493 ; N uniA716 ; G 3187 +U 42779 ; WX 369 ; N uniA71B ; G 3188 +U 42780 ; WX 369 ; N uniA71C ; G 3189 +U 42781 ; WX 253 ; N uniA71D ; G 3190 +U 42782 ; WX 253 ; N uniA71E ; G 3191 +U 42783 ; WX 253 ; N uniA71F ; G 3192 +U 42790 ; WX 872 ; N uniA726 ; G 3193 +U 42791 ; WX 634 ; N uniA727 ; G 3194 +U 42792 ; WX 843 ; N uniA728 ; G 3195 +U 42793 ; WX 754 ; N uniA729 ; G 3196 +U 42794 ; WX 612 ; N uniA72A ; G 3197 +U 42795 ; WX 560 ; N uniA72B ; G 3198 +U 42796 ; WX 548 ; N uniA72C ; G 3199 +U 42797 ; WX 531 ; N uniA72D ; G 3200 +U 42798 ; WX 629 ; N uniA72E ; G 3201 +U 42799 ; WX 610 ; N uniA72F ; G 3202 +U 42800 ; WX 514 ; N uniA730 ; G 3203 +U 42801 ; WX 513 ; N uniA731 ; G 3204 +U 42802 ; WX 1195 ; N uniA732 ; G 3205 +U 42803 ; WX 943 ; N uniA733 ; G 3206 +U 42804 ; WX 1226 ; N uniA734 ; G 3207 +U 42805 ; WX 950 ; N uniA735 ; G 3208 +U 42806 ; WX 1149 ; N uniA736 ; G 3209 +U 42807 ; WX 933 ; N uniA737 ; G 3210 +U 42808 ; WX 968 ; N uniA738 ; G 3211 +U 42809 ; WX 784 ; N uniA739 ; G 3212 +U 42810 ; WX 968 ; N uniA73A ; G 3213 +U 42811 ; WX 784 ; N uniA73B ; G 3214 +U 42812 ; WX 962 ; N uniA73C ; G 3215 +U 42813 ; WX 759 ; N uniA73D ; G 3216 +U 42814 ; WX 765 ; N uniA73E ; G 3217 +U 42815 ; WX 560 ; N uniA73F ; G 3218 +U 42816 ; WX 747 ; N uniA740 ; G 3219 +U 42817 ; WX 606 ; N uniA741 ; G 3220 +U 42822 ; WX 787 ; N uniA746 ; G 3221 +U 42823 ; WX 434 ; N uniA747 ; G 3222 +U 42826 ; WX 932 ; N uniA74A ; G 3223 +U 42827 ; WX 711 ; N uniA74B ; G 3224 +U 42830 ; WX 1416 ; N uniA74E ; G 3225 +U 42831 ; WX 999 ; N uniA74F ; G 3226 +U 42856 ; WX 707 ; N uniA768 ; G 3227 +U 42857 ; WX 610 ; N uniA769 ; G 3228 +U 42875 ; WX 612 ; N uniA77B ; G 3229 +U 42876 ; WX 478 ; N uniA77C ; G 3230 +U 42880 ; WX 664 ; N uniA780 ; G 3231 +U 42881 ; WX 320 ; N uniA781 ; G 3232 +U 42882 ; WX 843 ; N uniA782 ; G 3233 +U 42883 ; WX 644 ; N uniA783 ; G 3234 +U 42884 ; WX 612 ; N uniA784 ; G 3235 +U 42885 ; WX 478 ; N uniA785 ; G 3236 +U 42886 ; WX 765 ; N uniA786 ; G 3237 +U 42887 ; WX 560 ; N uniA787 ; G 3238 +U 42891 ; WX 402 ; N uniA78B ; G 3239 +U 42892 ; WX 275 ; N uniA78C ; G 3240 +U 42893 ; WX 773 ; N uniA78D ; G 3241 +U 42896 ; WX 875 ; N uniA790 ; G 3242 +U 42897 ; WX 698 ; N uniA791 ; G 3243 +U 42922 ; WX 872 ; N uniA7AA ; G 3244 +U 43000 ; WX 549 ; N uniA7F8 ; G 3245 +U 43001 ; WX 623 ; N uniA7F9 ; G 3246 +U 43002 ; WX 957 ; N uniA7FA ; G 3247 +U 43003 ; WX 694 ; N uniA7FB ; G 3248 +U 43004 ; WX 673 ; N uniA7FC ; G 3249 +U 43005 ; WX 1024 ; N uniA7FD ; G 3250 +U 43006 ; WX 395 ; N uniA7FE ; G 3251 +U 43007 ; WX 1201 ; N uniA7FF ; G 3252 +U 62464 ; WX 664 ; N uniF400 ; G 3253 +U 62465 ; WX 675 ; N uniF401 ; G 3254 +U 62466 ; WX 724 ; N uniF402 ; G 3255 +U 62467 ; WX 958 ; N uniF403 ; G 3256 +U 62468 ; WX 675 ; N uniF404 ; G 3257 +U 62469 ; WX 669 ; N uniF405 ; G 3258 +U 62470 ; WX 735 ; N uniF406 ; G 3259 +U 62471 ; WX 997 ; N uniF407 ; G 3260 +U 62472 ; WX 675 ; N uniF408 ; G 3261 +U 62473 ; WX 675 ; N uniF409 ; G 3262 +U 62474 ; WX 1268 ; N uniF40A ; G 3263 +U 62475 ; WX 693 ; N uniF40B ; G 3264 +U 62476 ; WX 692 ; N uniF40C ; G 3265 +U 62477 ; WX 963 ; N uniF40D ; G 3266 +U 62478 ; WX 675 ; N uniF40E ; G 3267 +U 62479 ; WX 692 ; N uniF40F ; G 3268 +U 62480 ; WX 1009 ; N uniF410 ; G 3269 +U 62481 ; WX 756 ; N uniF411 ; G 3270 +U 62482 ; WX 809 ; N uniF412 ; G 3271 +U 62483 ; WX 758 ; N uniF413 ; G 3272 +U 62484 ; WX 955 ; N uniF414 ; G 3273 +U 62485 ; WX 691 ; N uniF415 ; G 3274 +U 62486 ; WX 946 ; N uniF416 ; G 3275 +U 62487 ; WX 690 ; N uniF417 ; G 3276 +U 62488 ; WX 698 ; N uniF418 ; G 3277 +U 62489 ; WX 692 ; N uniF419 ; G 3278 +U 62490 ; WX 739 ; N uniF41A ; G 3279 +U 62491 ; WX 692 ; N uniF41B ; G 3280 +U 62492 ; WX 698 ; N uniF41C ; G 3281 +U 62493 ; WX 676 ; N uniF41D ; G 3282 +U 62494 ; WX 739 ; N uniF41E ; G 3283 +U 62495 ; WX 895 ; N uniF41F ; G 3284 +U 62496 ; WX 675 ; N uniF420 ; G 3285 +U 62497 ; WX 785 ; N uniF421 ; G 3286 +U 62498 ; WX 676 ; N uniF422 ; G 3287 +U 62499 ; WX 675 ; N uniF423 ; G 3288 +U 62500 ; WX 675 ; N uniF424 ; G 3289 +U 62501 ; WX 732 ; N uniF425 ; G 3290 +U 62502 ; WX 972 ; N uniF426 ; G 3291 +U 62504 ; WX 904 ; N uniF428 ; G 3292 +U 63172 ; WX 320 ; N uniF6C4 ; G 3293 +U 63173 ; WX 602 ; N uniF6C5 ; G 3294 +U 63174 ; WX 640 ; N uniF6C6 ; G 3295 +U 63175 ; WX 644 ; N uniF6C7 ; G 3296 +U 63176 ; WX 947 ; N uniF6C8 ; G 3297 +U 63185 ; WX 500 ; N cyrBreve ; G 3298 +U 63188 ; WX 500 ; N cyrbreve ; G 3299 +U 64256 ; WX 708 ; N uniFB00 ; G 3300 +U 64257 ; WX 667 ; N fi ; G 3301 +U 64258 ; WX 667 ; N fl ; G 3302 +U 64259 ; WX 941 ; N uniFB03 ; G 3303 +U 64260 ; WX 986 ; N uniFB04 ; G 3304 +U 64261 ; WX 744 ; N uniFB05 ; G 3305 +U 64262 ; WX 916 ; N uniFB06 ; G 3306 +U 65024 ; WX 0 ; N uniFE00 ; G 3307 +U 65025 ; WX 0 ; N uniFE01 ; G 3308 +U 65026 ; WX 0 ; N uniFE02 ; G 3309 +U 65027 ; WX 0 ; N uniFE03 ; G 3310 +U 65028 ; WX 0 ; N uniFE04 ; G 3311 +U 65029 ; WX 0 ; N uniFE05 ; G 3312 +U 65030 ; WX 0 ; N uniFE06 ; G 3313 +U 65031 ; WX 0 ; N uniFE07 ; G 3314 +U 65032 ; WX 0 ; N uniFE08 ; G 3315 +U 65033 ; WX 0 ; N uniFE09 ; G 3316 +U 65034 ; WX 0 ; N uniFE0A ; G 3317 +U 65035 ; WX 0 ; N uniFE0B ; G 3318 +U 65036 ; WX 0 ; N uniFE0C ; G 3319 +U 65037 ; WX 0 ; N uniFE0D ; G 3320 +U 65038 ; WX 0 ; N uniFE0E ; G 3321 +U 65039 ; WX 0 ; N uniFE0F ; G 3322 +U 65529 ; WX 0 ; N uniFFF9 ; G 3323 +U 65530 ; WX 0 ; N uniFFFA ; G 3324 +U 65531 ; WX 0 ; N uniFFFB ; G 3325 +U 65532 ; WX 0 ; N uniFFFC ; G 3326 +U 65533 ; WX 1025 ; N uniFFFD ; G 3327 +EndCharMetrics +StartKernData +StartKernPairs 1103 + +KPX dollar seven -112 +KPX dollar nine -102 +KPX dollar colon -83 +KPX dollar less -83 +KPX dollar I -36 +KPX dollar W -36 +KPX dollar Y -83 +KPX dollar Z -92 +KPX dollar backslash -83 +KPX dollar questiondown -83 +KPX dollar Aacute -83 +KPX dollar Hbar -112 +KPX dollar hbar -36 +KPX dollar lacute -83 + +KPX percent ampersand 38 +KPX percent asterisk 38 +KPX percent two 38 +KPX percent less -36 +KPX percent Egrave 38 +KPX percent Icircumflex 38 +KPX percent agrave 38 +KPX percent Ebreve 38 +KPX percent lacute -36 + + +KPX quotesingle nine -36 + + +KPX parenright dollar -178 +KPX parenright D -139 +KPX parenright H -112 +KPX parenright R -112 +KPX parenright cent -139 +KPX parenright sterling -139 +KPX parenright currency -139 +KPX parenright yen -139 +KPX parenright brokenbar -139 +KPX parenright section -139 +KPX parenright dieresis -139 +KPX parenright ordfeminine -112 +KPX parenright guillemotleft -112 +KPX parenright logicalnot -112 +KPX parenright sfthyphen -112 +KPX parenright acute -112 +KPX parenright mu -112 +KPX parenright paragraph -112 +KPX parenright periodcentered -112 +KPX parenright cedilla -112 +KPX parenright ordmasculine -112 +KPX parenright Yacute -112 +KPX parenright ebreve -112 + +KPX asterisk less -36 +KPX asterisk lacute -36 + + +KPX period dollar -83 +KPX period ampersand -55 +KPX period two -55 +KPX period eight -73 +KPX period colon -73 +KPX period less -55 +KPX period H -55 +KPX period R -55 +KPX period X -45 +KPX period backslash -131 +KPX period ordfeminine -55 +KPX period guillemotleft -55 +KPX period logicalnot -55 +KPX period sfthyphen -55 +KPX period acute -55 +KPX period mu -55 +KPX period paragraph -55 +KPX period periodcentered -55 +KPX period cedilla -55 +KPX period ordmasculine -36 +KPX period guillemotright -45 +KPX period onequarter -45 +KPX period onehalf -45 +KPX period threequarters -45 +KPX period questiondown -131 +KPX period Aacute -131 +KPX period Egrave -55 +KPX period Icircumflex -55 +KPX period Yacute -55 +KPX period Ebreve -55 +KPX period ebreve -55 +KPX period Idot -73 +KPX period dotlessi -45 +KPX period lacute -55 + +KPX slash seven -167 +KPX slash eight -112 +KPX slash nine -243 +KPX slash colon -178 +KPX slash less -131 +KPX slash backslash -36 +KPX slash questiondown -36 +KPX slash Aacute -36 +KPX slash Hbar -167 +KPX slash Idot -112 +KPX slash lacute -131 + + +KPX two nine -36 +KPX two semicolon -36 + +KPX three dollar -188 +KPX three eight -36 +KPX three D -92 +KPX three H -92 +KPX three R -83 +KPX three V -55 +KPX three cent -92 +KPX three sterling -92 +KPX three currency -92 +KPX three yen -92 +KPX three brokenbar -92 +KPX three section -92 +KPX three dieresis -92 +KPX three ordfeminine -92 +KPX three guillemotleft -92 +KPX three logicalnot -92 +KPX three sfthyphen -92 +KPX three acute -83 +KPX three mu -83 +KPX three paragraph -83 +KPX three periodcentered -83 +KPX three cedilla -83 +KPX three ordmasculine -83 +KPX three Yacute -92 +KPX three ebreve -83 +KPX three gdotaccent -55 +KPX three gcommaaccent -55 +KPX three Idot -36 + + +KPX five seven -36 +KPX five nine -73 +KPX five colon -45 +KPX five less -63 +KPX five D 47 +KPX five backslash -36 +KPX five cent 47 +KPX five sterling 47 +KPX five currency 47 +KPX five yen 47 +KPX five brokenbar 47 +KPX five section 47 +KPX five dieresis 47 +KPX five ordmasculine 38 +KPX five questiondown -36 +KPX five Aacute -36 +KPX five Hbar -36 +KPX five lacute -63 + +KPX six six -36 +KPX six Gdotaccent -36 +KPX six Gcommaaccent -36 + +KPX seven dollar -112 +KPX seven seven 38 +KPX seven D -159 +KPX seven F -159 +KPX seven H -159 +KPX seven R -159 +KPX seven V -149 +KPX seven Z -73 +KPX seven cent -159 +KPX seven sterling -159 +KPX seven currency -159 +KPX seven yen -159 +KPX seven brokenbar -159 +KPX seven section -159 +KPX seven dieresis -159 +KPX seven copyright -159 +KPX seven ordfeminine -159 +KPX seven guillemotleft -159 +KPX seven logicalnot -159 +KPX seven sfthyphen -159 +KPX seven acute -159 +KPX seven mu -159 +KPX seven paragraph -159 +KPX seven periodcentered -159 +KPX seven cedilla -159 +KPX seven ordmasculine -159 +KPX seven Eacute -159 +KPX seven Idieresis -159 +KPX seven Yacute -159 +KPX seven ebreve -159 +KPX seven gdotaccent -149 +KPX seven gcommaaccent -149 +KPX seven Hbar 38 + +KPX eight dollar -63 +KPX eight hyphen -55 + +KPX nine dollar -139 +KPX nine two -36 +KPX nine D -188 +KPX nine H -188 +KPX nine L -36 +KPX nine R -188 +KPX nine X -131 +KPX nine backslash -83 +KPX nine cent -188 +KPX nine sterling -188 +KPX nine currency -188 +KPX nine yen -188 +KPX nine brokenbar -188 +KPX nine section -188 +KPX nine dieresis -188 +KPX nine ordfeminine -188 +KPX nine guillemotleft -188 +KPX nine logicalnot -188 +KPX nine sfthyphen -188 +KPX nine acute -188 +KPX nine mu -188 +KPX nine paragraph -188 +KPX nine periodcentered -188 +KPX nine cedilla -188 +KPX nine ordmasculine -188 +KPX nine guillemotright -131 +KPX nine onequarter -131 +KPX nine onehalf -131 +KPX nine threequarters -131 +KPX nine questiondown -83 +KPX nine Aacute -83 +KPX nine Yacute -188 +KPX nine Ebreve -36 +KPX nine ebreve -188 +KPX nine dotlessi -131 + +KPX colon dollar -102 +KPX colon D -178 +KPX colon H -167 +KPX colon L -36 +KPX colon R -139 +KPX colon U -92 +KPX colon X -83 +KPX colon backslash -45 +KPX colon cent -178 +KPX colon sterling -178 +KPX colon currency -178 +KPX colon yen -178 +KPX colon brokenbar -178 +KPX colon section -178 +KPX colon dieresis -139 +KPX colon ordfeminine -167 +KPX colon guillemotleft -167 +KPX colon logicalnot -167 +KPX colon sfthyphen -167 +KPX colon acute -139 +KPX colon mu -139 +KPX colon paragraph -139 +KPX colon periodcentered -139 +KPX colon cedilla -139 +KPX colon ordmasculine -139 +KPX colon guillemotright -83 +KPX colon onequarter -83 +KPX colon onehalf -83 +KPX colon threequarters -83 +KPX colon questiondown -45 +KPX colon Aacute -45 +KPX colon Yacute -167 +KPX colon ebreve -139 +KPX colon edotaccent -92 +KPX colon ecaron -92 +KPX colon dotlessi -83 + +KPX semicolon dollar -73 +KPX semicolon ampersand -36 +KPX semicolon two -36 +KPX semicolon Egrave -36 +KPX semicolon Icircumflex -36 +KPX semicolon Ebreve -36 + +KPX less dollar -159 +KPX less ampersand -36 +KPX less D -159 +KPX less H -178 +KPX less L -36 +KPX less R -178 +KPX less X -178 +KPX less cent -159 +KPX less sterling -159 +KPX less currency -159 +KPX less yen -159 +KPX less brokenbar -159 +KPX less section -159 +KPX less dieresis -196 +KPX less ordfeminine -178 +KPX less guillemotleft -178 +KPX less logicalnot -178 +KPX less sfthyphen -178 +KPX less acute -178 +KPX less mu -178 +KPX less paragraph -178 +KPX less periodcentered -178 +KPX less cedilla -178 +KPX less ordmasculine -178 +KPX less guillemotright -178 +KPX less onequarter -178 +KPX less onehalf -178 +KPX less threequarters -178 +KPX less Egrave -36 +KPX less Icircumflex -36 +KPX less Yacute -178 +KPX less ebreve -215 +KPX less dotlessi -178 + + + + + + + + + + + + + + + + + + + + + + + +KPX Eth nine -36 + + +KPX agrave less -36 +KPX agrave lacute -36 + +KPX ucircumflex seven -167 +KPX ucircumflex eight -112 +KPX ucircumflex nine -243 +KPX ucircumflex colon -178 +KPX ucircumflex less -131 +KPX ucircumflex backslash -36 +KPX ucircumflex questiondown -36 +KPX ucircumflex Aacute -36 +KPX ucircumflex Hbar -167 +KPX ucircumflex Idot -112 +KPX ucircumflex lacute -131 + +KPX ydieresis seven -167 +KPX ydieresis eight -112 +KPX ydieresis nine -243 +KPX ydieresis colon -178 +KPX ydieresis less -131 +KPX ydieresis backslash -36 +KPX ydieresis questiondown -36 +KPX ydieresis Aacute -36 +KPX ydieresis Hbar -167 +KPX ydieresis Idot -112 +KPX ydieresis lacute -131 + +KPX Abreve O -227 + +KPX abreve seven -167 +KPX abreve eight -36 +KPX abreve nine -243 +KPX abreve colon -178 +KPX abreve less -206 +KPX abreve backslash -36 +KPX abreve questiondown -36 +KPX abreve Aacute -36 +KPX abreve Hbar -167 +KPX abreve Idot -36 +KPX abreve lacute -206 + + + +KPX Edotaccent seven -36 +KPX Edotaccent nine -73 +KPX Edotaccent colon -45 +KPX Edotaccent less -63 +KPX Edotaccent D 47 +KPX Edotaccent backslash -36 +KPX Edotaccent cent 47 +KPX Edotaccent sterling 47 +KPX Edotaccent currency 47 +KPX Edotaccent yen 47 +KPX Edotaccent brokenbar 47 +KPX Edotaccent section 47 +KPX Edotaccent dieresis 47 +KPX Edotaccent ordmasculine 38 +KPX Edotaccent questiondown -36 +KPX Edotaccent Aacute -36 +KPX Edotaccent Hbar -36 +KPX Edotaccent lacute -63 + + +KPX Ecaron seven -36 +KPX Ecaron nine -73 +KPX Ecaron colon -45 +KPX Ecaron less -63 +KPX Ecaron D 47 +KPX Ecaron backslash -36 +KPX Ecaron cent 47 +KPX Ecaron sterling 47 +KPX Ecaron currency 47 +KPX Ecaron yen 47 +KPX Ecaron brokenbar 47 +KPX Ecaron section 47 +KPX Ecaron dieresis 47 +KPX Ecaron ordmasculine 38 +KPX Ecaron questiondown -36 +KPX Ecaron Aacute -36 +KPX Ecaron Hbar -36 +KPX Ecaron lacute -63 + + +KPX Gdotaccent six -36 +KPX Gdotaccent Gdotaccent -36 +KPX Gdotaccent Gcommaaccent -36 + +KPX Gcommaaccent six -36 +KPX Gcommaaccent Gdotaccent -36 +KPX Gcommaaccent Gcommaaccent -36 + +KPX Hbar dollar -112 +KPX Hbar seven 38 +KPX Hbar D -159 +KPX Hbar F -159 +KPX Hbar H -159 +KPX Hbar R -159 +KPX Hbar V -149 +KPX Hbar Z -73 +KPX Hbar cent -159 +KPX Hbar sterling -159 +KPX Hbar currency -159 +KPX Hbar yen -159 +KPX Hbar brokenbar -159 +KPX Hbar section -159 +KPX Hbar dieresis -159 +KPX Hbar copyright -159 +KPX Hbar ordfeminine -159 +KPX Hbar guillemotleft -159 +KPX Hbar logicalnot -159 +KPX Hbar sfthyphen -159 +KPX Hbar acute -159 +KPX Hbar mu -159 +KPX Hbar paragraph -159 +KPX Hbar periodcentered -159 +KPX Hbar cedilla -159 +KPX Hbar ordmasculine -159 +KPX Hbar Eacute -159 +KPX Hbar Idieresis -159 +KPX Hbar Yacute -159 +KPX Hbar ebreve -159 +KPX Hbar gdotaccent -149 +KPX Hbar gcommaaccent -149 +KPX Hbar Hbar 38 + +KPX Idot dollar -63 +KPX Idot hyphen -55 + +KPX kcommaaccent D 110 +KPX kcommaaccent F 85 +KPX kcommaaccent G 97 +KPX kcommaaccent H 86 +KPX kcommaaccent I 220 +KPX kcommaaccent J 97 +KPX kcommaaccent L 220 +KPX kcommaaccent M 218 +KPX kcommaaccent P 125 +KPX kcommaaccent Q 125 +KPX kcommaaccent R 85 +KPX kcommaaccent S 140 +KPX kcommaaccent T 97 +KPX kcommaaccent U 125 +KPX kcommaaccent V 155 +KPX kcommaaccent W 235 +KPX kcommaaccent X 144 +KPX kcommaaccent Y 205 +KPX kcommaaccent Z 166 +KPX kcommaaccent bracketleft 174 +KPX kcommaaccent backslash 205 +KPX kcommaaccent bracketright 179 +KPX kcommaaccent kcommaaccent 261 + +KPX lacute dollar -159 +KPX lacute ampersand -36 +KPX lacute D -159 +KPX lacute H -178 +KPX lacute L -36 +KPX lacute R -178 +KPX lacute X -178 +KPX lacute cent -159 +KPX lacute sterling -159 +KPX lacute currency -159 +KPX lacute yen -159 +KPX lacute brokenbar -159 +KPX lacute section -159 +KPX lacute dieresis -196 +KPX lacute ordfeminine -178 +KPX lacute guillemotleft -178 +KPX lacute logicalnot -178 +KPX lacute sfthyphen -178 +KPX lacute acute -178 +KPX lacute mu -178 +KPX lacute paragraph -178 +KPX lacute periodcentered -178 +KPX lacute cedilla -178 +KPX lacute ordmasculine -178 +KPX lacute guillemotright -178 +KPX lacute onequarter -178 +KPX lacute onehalf -178 +KPX lacute threequarters -178 +KPX lacute Egrave -36 +KPX lacute Icircumflex -36 +KPX lacute Yacute -178 +KPX lacute ebreve -215 +KPX lacute dotlessi -178 + + +KPX uni027D dollar -264 +KPX uni027D hyphen 47 +EndKernPairs +EndKernData +EndFontMetrics diff --git a/public_html/2022/newcms/pdf/ttfonts/DejaVuSerif.ttf b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSerif.ttf similarity index 51% rename from public_html/2022/newcms/pdf/ttfonts/DejaVuSerif.ttf rename to public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSerif.ttf index 19eba33..0b803d2 100644 Binary files a/public_html/2022/newcms/pdf/ttfonts/DejaVuSerif.ttf and b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSerif.ttf differ diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSerif.ufm b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSerif.ufm new file mode 100644 index 0000000..358b026 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/DejaVuSerif.ufm @@ -0,0 +1,4012 @@ +StartFontMetrics 4.1 +Notice Converted by PHP-font-lib +Comment https://github.com/PhenX/php-font-lib +EncodingScheme FontSpecific +FontName DejaVu Serif +FontSubfamily Book +UniqueID DejaVu Serif +FullName DejaVu Serif +Version Version 2.37 +PostScriptName DejaVuSerif +Manufacturer DejaVu fonts team +FontVendorURL http://dejavu.sourceforge.net +LicenseURL http://dejavu.sourceforge.net/wiki/index.php/License +PreferredFamily DejaVu Serif +PreferredSubfamily Book +Weight Medium +ItalicAngle 0 +IsFixedPitch false +UnderlineThickness 44 +UnderlinePosition -63 +FontHeightOffset 0 +Ascender 928 +Descender -236 +FontBBox -770 -347 2105 1109 +StartCharMetrics 3528 +U 32 ; WX 318 ; N space ; G 3 +U 33 ; WX 402 ; N exclam ; G 4 +U 34 ; WX 460 ; N quotedbl ; G 5 +U 35 ; WX 838 ; N numbersign ; G 6 +U 36 ; WX 636 ; N dollar ; G 7 +U 37 ; WX 950 ; N percent ; G 8 +U 38 ; WX 890 ; N ampersand ; G 9 +U 39 ; WX 275 ; N quotesingle ; G 10 +U 40 ; WX 390 ; N parenleft ; G 11 +U 41 ; WX 390 ; N parenright ; G 12 +U 42 ; WX 500 ; N asterisk ; G 13 +U 43 ; WX 838 ; N plus ; G 14 +U 44 ; WX 318 ; N comma ; G 15 +U 45 ; WX 338 ; N hyphen ; G 16 +U 46 ; WX 318 ; N period ; G 17 +U 47 ; WX 337 ; N slash ; G 18 +U 48 ; WX 636 ; N zero ; G 19 +U 49 ; WX 636 ; N one ; G 20 +U 50 ; WX 636 ; N two ; G 21 +U 51 ; WX 636 ; N three ; G 22 +U 52 ; WX 636 ; N four ; G 23 +U 53 ; WX 636 ; N five ; G 24 +U 54 ; WX 636 ; N six ; G 25 +U 55 ; WX 636 ; N seven ; G 26 +U 56 ; WX 636 ; N eight ; G 27 +U 57 ; WX 636 ; N nine ; G 28 +U 58 ; WX 337 ; N colon ; G 29 +U 59 ; WX 337 ; N semicolon ; G 30 +U 60 ; WX 838 ; N less ; G 31 +U 61 ; WX 838 ; N equal ; G 32 +U 62 ; WX 838 ; N greater ; G 33 +U 63 ; WX 536 ; N question ; G 34 +U 64 ; WX 1000 ; N at ; G 35 +U 65 ; WX 722 ; N A ; G 36 +U 66 ; WX 735 ; N B ; G 37 +U 67 ; WX 765 ; N C ; G 38 +U 68 ; WX 802 ; N D ; G 39 +U 69 ; WX 730 ; N E ; G 40 +U 70 ; WX 694 ; N F ; G 41 +U 71 ; WX 799 ; N G ; G 42 +U 72 ; WX 872 ; N H ; G 43 +U 73 ; WX 395 ; N I ; G 44 +U 74 ; WX 401 ; N J ; G 45 +U 75 ; WX 747 ; N K ; G 46 +U 76 ; WX 664 ; N L ; G 47 +U 77 ; WX 1024 ; N M ; G 48 +U 78 ; WX 875 ; N N ; G 49 +U 79 ; WX 820 ; N O ; G 50 +U 80 ; WX 673 ; N P ; G 51 +U 81 ; WX 820 ; N Q ; G 52 +U 82 ; WX 753 ; N R ; G 53 +U 83 ; WX 685 ; N S ; G 54 +U 84 ; WX 667 ; N T ; G 55 +U 85 ; WX 843 ; N U ; G 56 +U 86 ; WX 722 ; N V ; G 57 +U 87 ; WX 1028 ; N W ; G 58 +U 88 ; WX 712 ; N X ; G 59 +U 89 ; WX 660 ; N Y ; G 60 +U 90 ; WX 695 ; N Z ; G 61 +U 91 ; WX 390 ; N bracketleft ; G 62 +U 92 ; WX 337 ; N backslash ; G 63 +U 93 ; WX 390 ; N bracketright ; G 64 +U 94 ; WX 838 ; N asciicircum ; G 65 +U 95 ; WX 500 ; N underscore ; G 66 +U 96 ; WX 500 ; N grave ; G 67 +U 97 ; WX 596 ; N a ; G 68 +U 98 ; WX 640 ; N b ; G 69 +U 99 ; WX 560 ; N c ; G 70 +U 100 ; WX 640 ; N d ; G 71 +U 101 ; WX 592 ; N e ; G 72 +U 102 ; WX 370 ; N f ; G 73 +U 103 ; WX 640 ; N g ; G 74 +U 104 ; WX 644 ; N h ; G 75 +U 105 ; WX 320 ; N i ; G 76 +U 106 ; WX 310 ; N j ; G 77 +U 107 ; WX 606 ; N k ; G 78 +U 108 ; WX 320 ; N l ; G 79 +U 109 ; WX 948 ; N m ; G 80 +U 110 ; WX 644 ; N n ; G 81 +U 111 ; WX 602 ; N o ; G 82 +U 112 ; WX 640 ; N p ; G 83 +U 113 ; WX 640 ; N q ; G 84 +U 114 ; WX 478 ; N r ; G 85 +U 115 ; WX 513 ; N s ; G 86 +U 116 ; WX 402 ; N t ; G 87 +U 117 ; WX 644 ; N u ; G 88 +U 118 ; WX 565 ; N v ; G 89 +U 119 ; WX 856 ; N w ; G 90 +U 120 ; WX 564 ; N x ; G 91 +U 121 ; WX 565 ; N y ; G 92 +U 122 ; WX 527 ; N z ; G 93 +U 123 ; WX 636 ; N braceleft ; G 94 +U 124 ; WX 337 ; N bar ; G 95 +U 125 ; WX 636 ; N braceright ; G 96 +U 126 ; WX 838 ; N asciitilde ; G 97 +U 160 ; WX 318 ; N nbspace ; G 98 +U 161 ; WX 402 ; N exclamdown ; G 99 +U 162 ; WX 636 ; N cent ; G 100 +U 163 ; WX 636 ; N sterling ; G 101 +U 164 ; WX 636 ; N currency ; G 102 +U 165 ; WX 636 ; N yen ; G 103 +U 166 ; WX 337 ; N brokenbar ; G 104 +U 167 ; WX 500 ; N section ; G 105 +U 168 ; WX 500 ; N dieresis ; G 106 +U 169 ; WX 1000 ; N copyright ; G 107 +U 170 ; WX 475 ; N ordfeminine ; G 108 +U 171 ; WX 612 ; N guillemotleft ; G 109 +U 172 ; WX 838 ; N logicalnot ; G 110 +U 173 ; WX 338 ; N sfthyphen ; G 111 +U 174 ; WX 1000 ; N registered ; G 112 +U 175 ; WX 500 ; N macron ; G 113 +U 176 ; WX 500 ; N degree ; G 114 +U 177 ; WX 838 ; N plusminus ; G 115 +U 178 ; WX 401 ; N twosuperior ; G 116 +U 179 ; WX 401 ; N threesuperior ; G 117 +U 180 ; WX 500 ; N acute ; G 118 +U 181 ; WX 650 ; N mu ; G 119 +U 182 ; WX 636 ; N paragraph ; G 120 +U 183 ; WX 318 ; N periodcentered ; G 121 +U 184 ; WX 500 ; N cedilla ; G 122 +U 185 ; WX 401 ; N onesuperior ; G 123 +U 186 ; WX 470 ; N ordmasculine ; G 124 +U 187 ; WX 612 ; N guillemotright ; G 125 +U 188 ; WX 969 ; N onequarter ; G 126 +U 189 ; WX 969 ; N onehalf ; G 127 +U 190 ; WX 969 ; N threequarters ; G 128 +U 191 ; WX 536 ; N questiondown ; G 129 +U 192 ; WX 722 ; N Agrave ; G 130 +U 193 ; WX 722 ; N Aacute ; G 131 +U 194 ; WX 722 ; N Acircumflex ; G 132 +U 195 ; WX 722 ; N Atilde ; G 133 +U 196 ; WX 722 ; N Adieresis ; G 134 +U 197 ; WX 722 ; N Aring ; G 135 +U 198 ; WX 1001 ; N AE ; G 136 +U 199 ; WX 765 ; N Ccedilla ; G 137 +U 200 ; WX 730 ; N Egrave ; G 138 +U 201 ; WX 730 ; N Eacute ; G 139 +U 202 ; WX 730 ; N Ecircumflex ; G 140 +U 203 ; WX 730 ; N Edieresis ; G 141 +U 204 ; WX 395 ; N Igrave ; G 142 +U 205 ; WX 395 ; N Iacute ; G 143 +U 206 ; WX 395 ; N Icircumflex ; G 144 +U 207 ; WX 395 ; N Idieresis ; G 145 +U 208 ; WX 807 ; N Eth ; G 146 +U 209 ; WX 875 ; N Ntilde ; G 147 +U 210 ; WX 820 ; N Ograve ; G 148 +U 211 ; WX 820 ; N Oacute ; G 149 +U 212 ; WX 820 ; N Ocircumflex ; G 150 +U 213 ; WX 820 ; N Otilde ; G 151 +U 214 ; WX 820 ; N Odieresis ; G 152 +U 215 ; WX 838 ; N multiply ; G 153 +U 216 ; WX 820 ; N Oslash ; G 154 +U 217 ; WX 843 ; N Ugrave ; G 155 +U 218 ; WX 843 ; N Uacute ; G 156 +U 219 ; WX 843 ; N Ucircumflex ; G 157 +U 220 ; WX 843 ; N Udieresis ; G 158 +U 221 ; WX 660 ; N Yacute ; G 159 +U 222 ; WX 676 ; N Thorn ; G 160 +U 223 ; WX 668 ; N germandbls ; G 161 +U 224 ; WX 596 ; N agrave ; G 162 +U 225 ; WX 596 ; N aacute ; G 163 +U 226 ; WX 596 ; N acircumflex ; G 164 +U 227 ; WX 596 ; N atilde ; G 165 +U 228 ; WX 596 ; N adieresis ; G 166 +U 229 ; WX 596 ; N aring ; G 167 +U 230 ; WX 940 ; N ae ; G 168 +U 231 ; WX 560 ; N ccedilla ; G 169 +U 232 ; WX 592 ; N egrave ; G 170 +U 233 ; WX 592 ; N eacute ; G 171 +U 234 ; WX 592 ; N ecircumflex ; G 172 +U 235 ; WX 592 ; N edieresis ; G 173 +U 236 ; WX 320 ; N igrave ; G 174 +U 237 ; WX 320 ; N iacute ; G 175 +U 238 ; WX 320 ; N icircumflex ; G 176 +U 239 ; WX 320 ; N idieresis ; G 177 +U 240 ; WX 602 ; N eth ; G 178 +U 241 ; WX 644 ; N ntilde ; G 179 +U 242 ; WX 602 ; N ograve ; G 180 +U 243 ; WX 602 ; N oacute ; G 181 +U 244 ; WX 602 ; N ocircumflex ; G 182 +U 245 ; WX 602 ; N otilde ; G 183 +U 246 ; WX 602 ; N odieresis ; G 184 +U 247 ; WX 838 ; N divide ; G 185 +U 248 ; WX 602 ; N oslash ; G 186 +U 249 ; WX 644 ; N ugrave ; G 187 +U 250 ; WX 644 ; N uacute ; G 188 +U 251 ; WX 644 ; N ucircumflex ; G 189 +U 252 ; WX 644 ; N udieresis ; G 190 +U 253 ; WX 565 ; N yacute ; G 191 +U 254 ; WX 640 ; N thorn ; G 192 +U 255 ; WX 565 ; N ydieresis ; G 193 +U 256 ; WX 722 ; N Amacron ; G 194 +U 257 ; WX 596 ; N amacron ; G 195 +U 258 ; WX 722 ; N Abreve ; G 196 +U 259 ; WX 596 ; N abreve ; G 197 +U 260 ; WX 722 ; N Aogonek ; G 198 +U 261 ; WX 596 ; N aogonek ; G 199 +U 262 ; WX 765 ; N Cacute ; G 200 +U 263 ; WX 560 ; N cacute ; G 201 +U 264 ; WX 765 ; N Ccircumflex ; G 202 +U 265 ; WX 560 ; N ccircumflex ; G 203 +U 266 ; WX 765 ; N Cdotaccent ; G 204 +U 267 ; WX 560 ; N cdotaccent ; G 205 +U 268 ; WX 765 ; N Ccaron ; G 206 +U 269 ; WX 560 ; N ccaron ; G 207 +U 270 ; WX 802 ; N Dcaron ; G 208 +U 271 ; WX 640 ; N dcaron ; G 209 +U 272 ; WX 807 ; N Dcroat ; G 210 +U 273 ; WX 640 ; N dmacron ; G 211 +U 274 ; WX 730 ; N Emacron ; G 212 +U 275 ; WX 592 ; N emacron ; G 213 +U 276 ; WX 730 ; N Ebreve ; G 214 +U 277 ; WX 592 ; N ebreve ; G 215 +U 278 ; WX 730 ; N Edotaccent ; G 216 +U 279 ; WX 592 ; N edotaccent ; G 217 +U 280 ; WX 730 ; N Eogonek ; G 218 +U 281 ; WX 592 ; N eogonek ; G 219 +U 282 ; WX 730 ; N Ecaron ; G 220 +U 283 ; WX 592 ; N ecaron ; G 221 +U 284 ; WX 799 ; N Gcircumflex ; G 222 +U 285 ; WX 640 ; N gcircumflex ; G 223 +U 286 ; WX 799 ; N Gbreve ; G 224 +U 287 ; WX 640 ; N gbreve ; G 225 +U 288 ; WX 799 ; N Gdotaccent ; G 226 +U 289 ; WX 640 ; N gdotaccent ; G 227 +U 290 ; WX 799 ; N Gcommaaccent ; G 228 +U 291 ; WX 640 ; N gcommaaccent ; G 229 +U 292 ; WX 872 ; N Hcircumflex ; G 230 +U 293 ; WX 644 ; N hcircumflex ; G 231 +U 294 ; WX 872 ; N Hbar ; G 232 +U 295 ; WX 644 ; N hbar ; G 233 +U 296 ; WX 395 ; N Itilde ; G 234 +U 297 ; WX 320 ; N itilde ; G 235 +U 298 ; WX 395 ; N Imacron ; G 236 +U 299 ; WX 320 ; N imacron ; G 237 +U 300 ; WX 395 ; N Ibreve ; G 238 +U 301 ; WX 320 ; N ibreve ; G 239 +U 302 ; WX 395 ; N Iogonek ; G 240 +U 303 ; WX 320 ; N iogonek ; G 241 +U 304 ; WX 395 ; N Idot ; G 242 +U 305 ; WX 320 ; N dotlessi ; G 243 +U 306 ; WX 801 ; N IJ ; G 244 +U 307 ; WX 533 ; N ij ; G 245 +U 308 ; WX 401 ; N Jcircumflex ; G 246 +U 309 ; WX 310 ; N jcircumflex ; G 247 +U 310 ; WX 747 ; N Kcommaaccent ; G 248 +U 311 ; WX 606 ; N kcommaaccent ; G 249 +U 312 ; WX 606 ; N kgreenlandic ; G 250 +U 313 ; WX 664 ; N Lacute ; G 251 +U 314 ; WX 320 ; N lacute ; G 252 +U 315 ; WX 664 ; N Lcommaaccent ; G 253 +U 316 ; WX 320 ; N lcommaaccent ; G 254 +U 317 ; WX 664 ; N Lcaron ; G 255 +U 318 ; WX 320 ; N lcaron ; G 256 +U 319 ; WX 664 ; N Ldot ; G 257 +U 320 ; WX 320 ; N ldot ; G 258 +U 321 ; WX 669 ; N Lslash ; G 259 +U 322 ; WX 324 ; N lslash ; G 260 +U 323 ; WX 875 ; N Nacute ; G 261 +U 324 ; WX 644 ; N nacute ; G 262 +U 325 ; WX 875 ; N Ncommaaccent ; G 263 +U 326 ; WX 644 ; N ncommaaccent ; G 264 +U 327 ; WX 875 ; N Ncaron ; G 265 +U 328 ; WX 644 ; N ncaron ; G 266 +U 329 ; WX 866 ; N napostrophe ; G 267 +U 330 ; WX 843 ; N Eng ; G 268 +U 331 ; WX 644 ; N eng ; G 269 +U 332 ; WX 820 ; N Omacron ; G 270 +U 333 ; WX 602 ; N omacron ; G 271 +U 334 ; WX 820 ; N Obreve ; G 272 +U 335 ; WX 602 ; N obreve ; G 273 +U 336 ; WX 820 ; N Ohungarumlaut ; G 274 +U 337 ; WX 602 ; N ohungarumlaut ; G 275 +U 338 ; WX 1137 ; N OE ; G 276 +U 339 ; WX 989 ; N oe ; G 277 +U 340 ; WX 753 ; N Racute ; G 278 +U 341 ; WX 478 ; N racute ; G 279 +U 342 ; WX 753 ; N Rcommaaccent ; G 280 +U 343 ; WX 478 ; N rcommaaccent ; G 281 +U 344 ; WX 753 ; N Rcaron ; G 282 +U 345 ; WX 478 ; N rcaron ; G 283 +U 346 ; WX 685 ; N Sacute ; G 284 +U 347 ; WX 513 ; N sacute ; G 285 +U 348 ; WX 685 ; N Scircumflex ; G 286 +U 349 ; WX 513 ; N scircumflex ; G 287 +U 350 ; WX 685 ; N Scedilla ; G 288 +U 351 ; WX 513 ; N scedilla ; G 289 +U 352 ; WX 685 ; N Scaron ; G 290 +U 353 ; WX 513 ; N scaron ; G 291 +U 354 ; WX 667 ; N Tcommaaccent ; G 292 +U 355 ; WX 402 ; N tcommaaccent ; G 293 +U 356 ; WX 667 ; N Tcaron ; G 294 +U 357 ; WX 402 ; N tcaron ; G 295 +U 358 ; WX 667 ; N Tbar ; G 296 +U 359 ; WX 402 ; N tbar ; G 297 +U 360 ; WX 843 ; N Utilde ; G 298 +U 361 ; WX 644 ; N utilde ; G 299 +U 362 ; WX 843 ; N Umacron ; G 300 +U 363 ; WX 644 ; N umacron ; G 301 +U 364 ; WX 843 ; N Ubreve ; G 302 +U 365 ; WX 644 ; N ubreve ; G 303 +U 366 ; WX 843 ; N Uring ; G 304 +U 367 ; WX 644 ; N uring ; G 305 +U 368 ; WX 843 ; N Uhungarumlaut ; G 306 +U 369 ; WX 644 ; N uhungarumlaut ; G 307 +U 370 ; WX 843 ; N Uogonek ; G 308 +U 371 ; WX 644 ; N uogonek ; G 309 +U 372 ; WX 1028 ; N Wcircumflex ; G 310 +U 373 ; WX 856 ; N wcircumflex ; G 311 +U 374 ; WX 660 ; N Ycircumflex ; G 312 +U 375 ; WX 565 ; N ycircumflex ; G 313 +U 376 ; WX 660 ; N Ydieresis ; G 314 +U 377 ; WX 695 ; N Zacute ; G 315 +U 378 ; WX 527 ; N zacute ; G 316 +U 379 ; WX 695 ; N Zdotaccent ; G 317 +U 380 ; WX 527 ; N zdotaccent ; G 318 +U 381 ; WX 695 ; N Zcaron ; G 319 +U 382 ; WX 527 ; N zcaron ; G 320 +U 383 ; WX 370 ; N longs ; G 321 +U 384 ; WX 640 ; N uni0180 ; G 322 +U 385 ; WX 735 ; N uni0181 ; G 323 +U 386 ; WX 735 ; N uni0182 ; G 324 +U 387 ; WX 640 ; N uni0183 ; G 325 +U 388 ; WX 735 ; N uni0184 ; G 326 +U 389 ; WX 640 ; N uni0185 ; G 327 +U 390 ; WX 765 ; N uni0186 ; G 328 +U 391 ; WX 765 ; N uni0187 ; G 329 +U 392 ; WX 560 ; N uni0188 ; G 330 +U 393 ; WX 807 ; N uni0189 ; G 331 +U 394 ; WX 802 ; N uni018A ; G 332 +U 395 ; WX 735 ; N uni018B ; G 333 +U 396 ; WX 640 ; N uni018C ; G 334 +U 397 ; WX 602 ; N uni018D ; G 335 +U 398 ; WX 730 ; N uni018E ; G 336 +U 399 ; WX 820 ; N uni018F ; G 337 +U 400 ; WX 623 ; N uni0190 ; G 338 +U 401 ; WX 694 ; N uni0191 ; G 339 +U 402 ; WX 370 ; N florin ; G 340 +U 403 ; WX 799 ; N uni0193 ; G 341 +U 404 ; WX 712 ; N uni0194 ; G 342 +U 405 ; WX 932 ; N uni0195 ; G 343 +U 406 ; WX 395 ; N uni0196 ; G 344 +U 407 ; WX 395 ; N uni0197 ; G 345 +U 408 ; WX 747 ; N uni0198 ; G 346 +U 409 ; WX 606 ; N uni0199 ; G 347 +U 410 ; WX 320 ; N uni019A ; G 348 +U 411 ; WX 634 ; N uni019B ; G 349 +U 412 ; WX 948 ; N uni019C ; G 350 +U 413 ; WX 875 ; N uni019D ; G 351 +U 414 ; WX 644 ; N uni019E ; G 352 +U 415 ; WX 820 ; N uni019F ; G 353 +U 416 ; WX 820 ; N Ohorn ; G 354 +U 417 ; WX 602 ; N ohorn ; G 355 +U 418 ; WX 1040 ; N uni01A2 ; G 356 +U 419 ; WX 807 ; N uni01A3 ; G 357 +U 420 ; WX 673 ; N uni01A4 ; G 358 +U 421 ; WX 640 ; N uni01A5 ; G 359 +U 422 ; WX 753 ; N uni01A6 ; G 360 +U 423 ; WX 685 ; N uni01A7 ; G 361 +U 424 ; WX 513 ; N uni01A8 ; G 362 +U 425 ; WX 707 ; N uni01A9 ; G 363 +U 426 ; WX 324 ; N uni01AA ; G 364 +U 427 ; WX 402 ; N uni01AB ; G 365 +U 428 ; WX 667 ; N uni01AC ; G 366 +U 429 ; WX 402 ; N uni01AD ; G 367 +U 430 ; WX 667 ; N uni01AE ; G 368 +U 431 ; WX 843 ; N Uhorn ; G 369 +U 432 ; WX 644 ; N uhorn ; G 370 +U 433 ; WX 829 ; N uni01B1 ; G 371 +U 434 ; WX 760 ; N uni01B2 ; G 372 +U 435 ; WX 738 ; N uni01B3 ; G 373 +U 436 ; WX 663 ; N uni01B4 ; G 374 +U 437 ; WX 695 ; N uni01B5 ; G 375 +U 438 ; WX 527 ; N uni01B6 ; G 376 +U 439 ; WX 564 ; N uni01B7 ; G 377 +U 440 ; WX 564 ; N uni01B8 ; G 378 +U 441 ; WX 564 ; N uni01B9 ; G 379 +U 442 ; WX 564 ; N uni01BA ; G 380 +U 443 ; WX 636 ; N uni01BB ; G 381 +U 444 ; WX 687 ; N uni01BC ; G 382 +U 445 ; WX 564 ; N uni01BD ; G 383 +U 446 ; WX 536 ; N uni01BE ; G 384 +U 447 ; WX 635 ; N uni01BF ; G 385 +U 448 ; WX 295 ; N uni01C0 ; G 386 +U 449 ; WX 492 ; N uni01C1 ; G 387 +U 450 ; WX 459 ; N uni01C2 ; G 388 +U 451 ; WX 295 ; N uni01C3 ; G 389 +U 452 ; WX 1497 ; N uni01C4 ; G 390 +U 453 ; WX 1329 ; N uni01C5 ; G 391 +U 454 ; WX 1167 ; N uni01C6 ; G 392 +U 455 ; WX 1065 ; N uni01C7 ; G 393 +U 456 ; WX 974 ; N uni01C8 ; G 394 +U 457 ; WX 630 ; N uni01C9 ; G 395 +U 458 ; WX 1276 ; N uni01CA ; G 396 +U 459 ; WX 1185 ; N uni01CB ; G 397 +U 460 ; WX 954 ; N uni01CC ; G 398 +U 461 ; WX 722 ; N uni01CD ; G 399 +U 462 ; WX 596 ; N uni01CE ; G 400 +U 463 ; WX 395 ; N uni01CF ; G 401 +U 464 ; WX 320 ; N uni01D0 ; G 402 +U 465 ; WX 820 ; N uni01D1 ; G 403 +U 466 ; WX 602 ; N uni01D2 ; G 404 +U 467 ; WX 843 ; N uni01D3 ; G 405 +U 468 ; WX 644 ; N uni01D4 ; G 406 +U 469 ; WX 843 ; N uni01D5 ; G 407 +U 470 ; WX 644 ; N uni01D6 ; G 408 +U 471 ; WX 843 ; N uni01D7 ; G 409 +U 472 ; WX 644 ; N uni01D8 ; G 410 +U 473 ; WX 843 ; N uni01D9 ; G 411 +U 474 ; WX 644 ; N uni01DA ; G 412 +U 475 ; WX 843 ; N uni01DB ; G 413 +U 476 ; WX 644 ; N uni01DC ; G 414 +U 477 ; WX 592 ; N uni01DD ; G 415 +U 478 ; WX 722 ; N uni01DE ; G 416 +U 479 ; WX 596 ; N uni01DF ; G 417 +U 480 ; WX 722 ; N uni01E0 ; G 418 +U 481 ; WX 596 ; N uni01E1 ; G 419 +U 482 ; WX 1001 ; N uni01E2 ; G 420 +U 483 ; WX 940 ; N uni01E3 ; G 421 +U 484 ; WX 848 ; N uni01E4 ; G 422 +U 485 ; WX 640 ; N uni01E5 ; G 423 +U 486 ; WX 799 ; N Gcaron ; G 424 +U 487 ; WX 640 ; N gcaron ; G 425 +U 488 ; WX 747 ; N uni01E8 ; G 426 +U 489 ; WX 606 ; N uni01E9 ; G 427 +U 490 ; WX 820 ; N uni01EA ; G 428 +U 491 ; WX 602 ; N uni01EB ; G 429 +U 492 ; WX 820 ; N uni01EC ; G 430 +U 493 ; WX 602 ; N uni01ED ; G 431 +U 494 ; WX 564 ; N uni01EE ; G 432 +U 495 ; WX 564 ; N uni01EF ; G 433 +U 496 ; WX 320 ; N uni01F0 ; G 434 +U 497 ; WX 1497 ; N uni01F1 ; G 435 +U 498 ; WX 1329 ; N uni01F2 ; G 436 +U 499 ; WX 1167 ; N uni01F3 ; G 437 +U 500 ; WX 799 ; N uni01F4 ; G 438 +U 501 ; WX 640 ; N uni01F5 ; G 439 +U 502 ; WX 1154 ; N uni01F6 ; G 440 +U 503 ; WX 707 ; N uni01F7 ; G 441 +U 504 ; WX 875 ; N uni01F8 ; G 442 +U 505 ; WX 644 ; N uni01F9 ; G 443 +U 506 ; WX 722 ; N Aringacute ; G 444 +U 507 ; WX 596 ; N aringacute ; G 445 +U 508 ; WX 1001 ; N AEacute ; G 446 +U 509 ; WX 940 ; N aeacute ; G 447 +U 510 ; WX 820 ; N Oslashacute ; G 448 +U 511 ; WX 602 ; N oslashacute ; G 449 +U 512 ; WX 722 ; N uni0200 ; G 450 +U 513 ; WX 596 ; N uni0201 ; G 451 +U 514 ; WX 722 ; N uni0202 ; G 452 +U 515 ; WX 596 ; N uni0203 ; G 453 +U 516 ; WX 730 ; N uni0204 ; G 454 +U 517 ; WX 592 ; N uni0205 ; G 455 +U 518 ; WX 730 ; N uni0206 ; G 456 +U 519 ; WX 592 ; N uni0207 ; G 457 +U 520 ; WX 395 ; N uni0208 ; G 458 +U 521 ; WX 320 ; N uni0209 ; G 459 +U 522 ; WX 395 ; N uni020A ; G 460 +U 523 ; WX 320 ; N uni020B ; G 461 +U 524 ; WX 820 ; N uni020C ; G 462 +U 525 ; WX 602 ; N uni020D ; G 463 +U 526 ; WX 820 ; N uni020E ; G 464 +U 527 ; WX 602 ; N uni020F ; G 465 +U 528 ; WX 753 ; N uni0210 ; G 466 +U 529 ; WX 478 ; N uni0211 ; G 467 +U 530 ; WX 753 ; N uni0212 ; G 468 +U 531 ; WX 478 ; N uni0213 ; G 469 +U 532 ; WX 843 ; N uni0214 ; G 470 +U 533 ; WX 644 ; N uni0215 ; G 471 +U 534 ; WX 843 ; N uni0216 ; G 472 +U 535 ; WX 644 ; N uni0217 ; G 473 +U 536 ; WX 685 ; N Scommaaccent ; G 474 +U 537 ; WX 513 ; N scommaaccent ; G 475 +U 538 ; WX 667 ; N uni021A ; G 476 +U 539 ; WX 402 ; N uni021B ; G 477 +U 540 ; WX 627 ; N uni021C ; G 478 +U 541 ; WX 521 ; N uni021D ; G 479 +U 542 ; WX 872 ; N uni021E ; G 480 +U 543 ; WX 644 ; N uni021F ; G 481 +U 544 ; WX 843 ; N uni0220 ; G 482 +U 545 ; WX 814 ; N uni0221 ; G 483 +U 546 ; WX 572 ; N uni0222 ; G 484 +U 547 ; WX 552 ; N uni0223 ; G 485 +U 548 ; WX 695 ; N uni0224 ; G 486 +U 549 ; WX 527 ; N uni0225 ; G 487 +U 550 ; WX 722 ; N uni0226 ; G 488 +U 551 ; WX 596 ; N uni0227 ; G 489 +U 552 ; WX 730 ; N uni0228 ; G 490 +U 553 ; WX 592 ; N uni0229 ; G 491 +U 554 ; WX 820 ; N uni022A ; G 492 +U 555 ; WX 602 ; N uni022B ; G 493 +U 556 ; WX 820 ; N uni022C ; G 494 +U 557 ; WX 602 ; N uni022D ; G 495 +U 558 ; WX 820 ; N uni022E ; G 496 +U 559 ; WX 602 ; N uni022F ; G 497 +U 560 ; WX 820 ; N uni0230 ; G 498 +U 561 ; WX 602 ; N uni0231 ; G 499 +U 562 ; WX 660 ; N uni0232 ; G 500 +U 563 ; WX 565 ; N uni0233 ; G 501 +U 564 ; WX 500 ; N uni0234 ; G 502 +U 565 ; WX 832 ; N uni0235 ; G 503 +U 566 ; WX 494 ; N uni0236 ; G 504 +U 567 ; WX 310 ; N dotlessj ; G 505 +U 568 ; WX 960 ; N uni0238 ; G 506 +U 569 ; WX 960 ; N uni0239 ; G 507 +U 570 ; WX 722 ; N uni023A ; G 508 +U 571 ; WX 765 ; N uni023B ; G 509 +U 572 ; WX 560 ; N uni023C ; G 510 +U 573 ; WX 664 ; N uni023D ; G 511 +U 574 ; WX 667 ; N uni023E ; G 512 +U 575 ; WX 513 ; N uni023F ; G 513 +U 576 ; WX 527 ; N uni0240 ; G 514 +U 577 ; WX 583 ; N uni0241 ; G 515 +U 578 ; WX 464 ; N uni0242 ; G 516 +U 579 ; WX 735 ; N uni0243 ; G 517 +U 580 ; WX 843 ; N uni0244 ; G 518 +U 581 ; WX 722 ; N uni0245 ; G 519 +U 582 ; WX 730 ; N uni0246 ; G 520 +U 583 ; WX 592 ; N uni0247 ; G 521 +U 584 ; WX 401 ; N uni0248 ; G 522 +U 585 ; WX 315 ; N uni0249 ; G 523 +U 586 ; WX 782 ; N uni024A ; G 524 +U 587 ; WX 640 ; N uni024B ; G 525 +U 588 ; WX 753 ; N uni024C ; G 526 +U 589 ; WX 478 ; N uni024D ; G 527 +U 590 ; WX 660 ; N uni024E ; G 528 +U 591 ; WX 565 ; N uni024F ; G 529 +U 592 ; WX 596 ; N uni0250 ; G 530 +U 593 ; WX 640 ; N uni0251 ; G 531 +U 594 ; WX 640 ; N uni0252 ; G 532 +U 595 ; WX 640 ; N uni0253 ; G 533 +U 596 ; WX 560 ; N uni0254 ; G 534 +U 597 ; WX 560 ; N uni0255 ; G 535 +U 598 ; WX 647 ; N uni0256 ; G 536 +U 599 ; WX 683 ; N uni0257 ; G 537 +U 600 ; WX 592 ; N uni0258 ; G 538 +U 601 ; WX 592 ; N uni0259 ; G 539 +U 602 ; WX 843 ; N uni025A ; G 540 +U 603 ; WX 518 ; N uni025B ; G 541 +U 604 ; WX 509 ; N uni025C ; G 542 +U 605 ; WX 773 ; N uni025D ; G 543 +U 606 ; WX 613 ; N uni025E ; G 544 +U 607 ; WX 315 ; N uni025F ; G 545 +U 608 ; WX 683 ; N uni0260 ; G 546 +U 609 ; WX 640 ; N uni0261 ; G 547 +U 610 ; WX 580 ; N uni0262 ; G 548 +U 611 ; WX 599 ; N uni0263 ; G 549 +U 612 ; WX 564 ; N uni0264 ; G 550 +U 613 ; WX 644 ; N uni0265 ; G 551 +U 614 ; WX 644 ; N uni0266 ; G 552 +U 615 ; WX 644 ; N uni0267 ; G 553 +U 616 ; WX 320 ; N uni0268 ; G 554 +U 617 ; WX 392 ; N uni0269 ; G 555 +U 618 ; WX 320 ; N uni026A ; G 556 +U 619 ; WX 380 ; N uni026B ; G 557 +U 620 ; WX 454 ; N uni026C ; G 558 +U 621 ; WX 363 ; N uni026D ; G 559 +U 622 ; WX 704 ; N uni026E ; G 560 +U 623 ; WX 948 ; N uni026F ; G 561 +U 624 ; WX 948 ; N uni0270 ; G 562 +U 625 ; WX 948 ; N uni0271 ; G 563 +U 626 ; WX 644 ; N uni0272 ; G 564 +U 627 ; WX 694 ; N uni0273 ; G 565 +U 628 ; WX 646 ; N uni0274 ; G 566 +U 629 ; WX 602 ; N uni0275 ; G 567 +U 630 ; WX 790 ; N uni0276 ; G 568 +U 631 ; WX 821 ; N uni0277 ; G 569 +U 632 ; WX 692 ; N uni0278 ; G 570 +U 633 ; WX 501 ; N uni0279 ; G 571 +U 634 ; WX 501 ; N uni027A ; G 572 +U 635 ; WX 551 ; N uni027B ; G 573 +U 636 ; WX 478 ; N uni027C ; G 574 +U 637 ; WX 478 ; N uni027D ; G 575 +U 638 ; WX 453 ; N uni027E ; G 576 +U 639 ; WX 453 ; N uni027F ; G 577 +U 640 ; WX 581 ; N uni0280 ; G 578 +U 641 ; WX 581 ; N uni0281 ; G 579 +U 642 ; WX 513 ; N uni0282 ; G 580 +U 643 ; WX 271 ; N uni0283 ; G 581 +U 644 ; WX 370 ; N uni0284 ; G 582 +U 645 ; WX 487 ; N uni0285 ; G 583 +U 646 ; WX 324 ; N uni0286 ; G 584 +U 647 ; WX 402 ; N uni0287 ; G 585 +U 648 ; WX 402 ; N uni0288 ; G 586 +U 649 ; WX 644 ; N uni0289 ; G 587 +U 650 ; WX 620 ; N uni028A ; G 588 +U 651 ; WX 608 ; N uni028B ; G 589 +U 652 ; WX 565 ; N uni028C ; G 590 +U 653 ; WX 856 ; N uni028D ; G 591 +U 654 ; WX 565 ; N uni028E ; G 592 +U 655 ; WX 655 ; N uni028F ; G 593 +U 656 ; WX 597 ; N uni0290 ; G 594 +U 657 ; WX 560 ; N uni0291 ; G 595 +U 658 ; WX 564 ; N uni0292 ; G 596 +U 659 ; WX 560 ; N uni0293 ; G 597 +U 660 ; WX 536 ; N uni0294 ; G 598 +U 661 ; WX 536 ; N uni0295 ; G 599 +U 662 ; WX 536 ; N uni0296 ; G 600 +U 663 ; WX 420 ; N uni0297 ; G 601 +U 664 ; WX 820 ; N uni0298 ; G 602 +U 665 ; WX 563 ; N uni0299 ; G 603 +U 666 ; WX 613 ; N uni029A ; G 604 +U 667 ; WX 660 ; N uni029B ; G 605 +U 668 ; WX 667 ; N uni029C ; G 606 +U 669 ; WX 366 ; N uni029D ; G 607 +U 670 ; WX 606 ; N uni029E ; G 608 +U 671 ; WX 543 ; N uni029F ; G 609 +U 672 ; WX 683 ; N uni02A0 ; G 610 +U 673 ; WX 536 ; N uni02A1 ; G 611 +U 674 ; WX 536 ; N uni02A2 ; G 612 +U 675 ; WX 996 ; N uni02A3 ; G 613 +U 676 ; WX 1033 ; N uni02A4 ; G 614 +U 677 ; WX 998 ; N uni02A5 ; G 615 +U 678 ; WX 823 ; N uni02A6 ; G 616 +U 679 ; WX 598 ; N uni02A7 ; G 617 +U 680 ; WX 825 ; N uni02A8 ; G 618 +U 681 ; WX 894 ; N uni02A9 ; G 619 +U 682 ; WX 725 ; N uni02AA ; G 620 +U 683 ; WX 676 ; N uni02AB ; G 621 +U 684 ; WX 598 ; N uni02AC ; G 622 +U 685 ; WX 443 ; N uni02AD ; G 623 +U 686 ; WX 781 ; N uni02AE ; G 624 +U 687 ; WX 767 ; N uni02AF ; G 625 +U 688 ; WX 433 ; N uni02B0 ; G 626 +U 689 ; WX 430 ; N uni02B1 ; G 627 +U 690 ; WX 264 ; N uni02B2 ; G 628 +U 691 ; WX 347 ; N uni02B3 ; G 629 +U 692 ; WX 347 ; N uni02B4 ; G 630 +U 693 ; WX 430 ; N uni02B5 ; G 631 +U 694 ; WX 392 ; N uni02B6 ; G 632 +U 695 ; WX 585 ; N uni02B7 ; G 633 +U 696 ; WX 423 ; N uni02B8 ; G 634 +U 697 ; WX 278 ; N uni02B9 ; G 635 +U 698 ; WX 460 ; N uni02BA ; G 636 +U 699 ; WX 318 ; N uni02BB ; G 637 +U 700 ; WX 318 ; N uni02BC ; G 638 +U 701 ; WX 318 ; N uni02BD ; G 639 +U 702 ; WX 307 ; N uni02BE ; G 640 +U 703 ; WX 307 ; N uni02BF ; G 641 +U 704 ; WX 280 ; N uni02C0 ; G 642 +U 705 ; WX 281 ; N uni02C1 ; G 643 +U 706 ; WX 500 ; N uni02C2 ; G 644 +U 707 ; WX 500 ; N uni02C3 ; G 645 +U 708 ; WX 500 ; N uni02C4 ; G 646 +U 709 ; WX 500 ; N uni02C5 ; G 647 +U 710 ; WX 500 ; N circumflex ; G 648 +U 711 ; WX 500 ; N caron ; G 649 +U 712 ; WX 275 ; N uni02C8 ; G 650 +U 713 ; WX 500 ; N uni02C9 ; G 651 +U 714 ; WX 500 ; N uni02CA ; G 652 +U 715 ; WX 500 ; N uni02CB ; G 653 +U 716 ; WX 275 ; N uni02CC ; G 654 +U 717 ; WX 500 ; N uni02CD ; G 655 +U 720 ; WX 337 ; N uni02D0 ; G 656 +U 721 ; WX 337 ; N uni02D1 ; G 657 +U 722 ; WX 307 ; N uni02D2 ; G 658 +U 723 ; WX 307 ; N uni02D3 ; G 659 +U 726 ; WX 329 ; N uni02D6 ; G 660 +U 727 ; WX 329 ; N uni02D7 ; G 661 +U 728 ; WX 500 ; N breve ; G 662 +U 729 ; WX 500 ; N dotaccent ; G 663 +U 730 ; WX 500 ; N ring ; G 664 +U 731 ; WX 500 ; N ogonek ; G 665 +U 732 ; WX 500 ; N tilde ; G 666 +U 733 ; WX 500 ; N hungarumlaut ; G 667 +U 734 ; WX 417 ; N uni02DE ; G 668 +U 736 ; WX 377 ; N uni02E0 ; G 669 +U 737 ; WX 243 ; N uni02E1 ; G 670 +U 738 ; WX 337 ; N uni02E2 ; G 671 +U 739 ; WX 424 ; N uni02E3 ; G 672 +U 740 ; WX 281 ; N uni02E4 ; G 673 +U 741 ; WX 493 ; N uni02E5 ; G 674 +U 742 ; WX 493 ; N uni02E6 ; G 675 +U 743 ; WX 493 ; N uni02E7 ; G 676 +U 744 ; WX 493 ; N uni02E8 ; G 677 +U 745 ; WX 493 ; N uni02E9 ; G 678 +U 748 ; WX 500 ; N uni02EC ; G 679 +U 750 ; WX 484 ; N uni02EE ; G 680 +U 751 ; WX 500 ; N uni02EF ; G 681 +U 752 ; WX 500 ; N uni02F0 ; G 682 +U 755 ; WX 500 ; N uni02F3 ; G 683 +U 759 ; WX 500 ; N uni02F7 ; G 684 +U 768 ; WX 0 ; N gravecomb ; G 685 +U 769 ; WX 0 ; N acutecomb ; G 686 +U 770 ; WX 0 ; N uni0302 ; G 687 +U 771 ; WX 0 ; N tildecomb ; G 688 +U 772 ; WX 0 ; N uni0304 ; G 689 +U 773 ; WX 0 ; N uni0305 ; G 690 +U 774 ; WX 0 ; N uni0306 ; G 691 +U 775 ; WX 0 ; N uni0307 ; G 692 +U 776 ; WX 0 ; N uni0308 ; G 693 +U 777 ; WX 0 ; N hookabovecomb ; G 694 +U 778 ; WX 0 ; N uni030A ; G 695 +U 779 ; WX 0 ; N uni030B ; G 696 +U 780 ; WX 0 ; N uni030C ; G 697 +U 781 ; WX 0 ; N uni030D ; G 698 +U 782 ; WX 0 ; N uni030E ; G 699 +U 783 ; WX 0 ; N uni030F ; G 700 +U 784 ; WX 0 ; N uni0310 ; G 701 +U 785 ; WX 0 ; N uni0311 ; G 702 +U 786 ; WX 0 ; N uni0312 ; G 703 +U 787 ; WX 0 ; N uni0313 ; G 704 +U 788 ; WX 0 ; N uni0314 ; G 705 +U 789 ; WX 0 ; N uni0315 ; G 706 +U 790 ; WX 0 ; N uni0316 ; G 707 +U 791 ; WX 0 ; N uni0317 ; G 708 +U 792 ; WX 0 ; N uni0318 ; G 709 +U 793 ; WX 0 ; N uni0319 ; G 710 +U 794 ; WX 0 ; N uni031A ; G 711 +U 795 ; WX 0 ; N uni031B ; G 712 +U 796 ; WX 0 ; N uni031C ; G 713 +U 797 ; WX 0 ; N uni031D ; G 714 +U 798 ; WX 0 ; N uni031E ; G 715 +U 799 ; WX 0 ; N uni031F ; G 716 +U 800 ; WX 0 ; N uni0320 ; G 717 +U 801 ; WX 0 ; N uni0321 ; G 718 +U 802 ; WX 0 ; N uni0322 ; G 719 +U 803 ; WX 0 ; N dotbelowcomb ; G 720 +U 804 ; WX 0 ; N uni0324 ; G 721 +U 805 ; WX 0 ; N uni0325 ; G 722 +U 806 ; WX 0 ; N uni0326 ; G 723 +U 807 ; WX 0 ; N uni0327 ; G 724 +U 808 ; WX 0 ; N uni0328 ; G 725 +U 809 ; WX 0 ; N uni0329 ; G 726 +U 810 ; WX 0 ; N uni032A ; G 727 +U 811 ; WX 0 ; N uni032B ; G 728 +U 812 ; WX 0 ; N uni032C ; G 729 +U 813 ; WX 0 ; N uni032D ; G 730 +U 814 ; WX 0 ; N uni032E ; G 731 +U 815 ; WX 0 ; N uni032F ; G 732 +U 816 ; WX 0 ; N uni0330 ; G 733 +U 817 ; WX 0 ; N uni0331 ; G 734 +U 818 ; WX 0 ; N uni0332 ; G 735 +U 819 ; WX 0 ; N uni0333 ; G 736 +U 820 ; WX 0 ; N uni0334 ; G 737 +U 821 ; WX 0 ; N uni0335 ; G 738 +U 822 ; WX 0 ; N uni0336 ; G 739 +U 823 ; WX 0 ; N uni0337 ; G 740 +U 824 ; WX 0 ; N uni0338 ; G 741 +U 825 ; WX 0 ; N uni0339 ; G 742 +U 826 ; WX 0 ; N uni033A ; G 743 +U 827 ; WX 0 ; N uni033B ; G 744 +U 828 ; WX 0 ; N uni033C ; G 745 +U 829 ; WX 0 ; N uni033D ; G 746 +U 830 ; WX 0 ; N uni033E ; G 747 +U 831 ; WX 0 ; N uni033F ; G 748 +U 835 ; WX 0 ; N uni0343 ; G 749 +U 847 ; WX 0 ; N uni034F ; G 750 +U 856 ; WX 0 ; N uni0358 ; G 751 +U 864 ; WX 0 ; N uni0360 ; G 752 +U 865 ; WX 0 ; N uni0361 ; G 753 +U 880 ; WX 740 ; N uni0370 ; G 754 +U 881 ; WX 531 ; N uni0371 ; G 755 +U 882 ; WX 667 ; N uni0372 ; G 756 +U 883 ; WX 553 ; N uni0373 ; G 757 +U 884 ; WX 278 ; N uni0374 ; G 758 +U 885 ; WX 278 ; N uni0375 ; G 759 +U 886 ; WX 875 ; N uni0376 ; G 760 +U 887 ; WX 667 ; N uni0377 ; G 761 +U 890 ; WX 500 ; N uni037A ; G 762 +U 891 ; WX 560 ; N uni037B ; G 763 +U 892 ; WX 560 ; N uni037C ; G 764 +U 893 ; WX 560 ; N uni037D ; G 765 +U 894 ; WX 337 ; N uni037E ; G 766 +U 895 ; WX 401 ; N uni037F ; G 767 +U 900 ; WX 500 ; N tonos ; G 768 +U 901 ; WX 500 ; N dieresistonos ; G 769 +U 902 ; WX 722 ; N Alphatonos ; G 770 +U 903 ; WX 318 ; N anoteleia ; G 771 +U 904 ; WX 900 ; N Epsilontonos ; G 772 +U 905 ; WX 1039 ; N Etatonos ; G 773 +U 906 ; WX 562 ; N Iotatonos ; G 774 +U 908 ; WX 835 ; N Omicrontonos ; G 775 +U 910 ; WX 897 ; N Upsilontonos ; G 776 +U 911 ; WX 853 ; N Omegatonos ; G 777 +U 912 ; WX 392 ; N iotadieresistonos ; G 778 +U 913 ; WX 722 ; N Alpha ; G 779 +U 914 ; WX 735 ; N Beta ; G 780 +U 915 ; WX 694 ; N Gamma ; G 781 +U 916 ; WX 722 ; N uni0394 ; G 782 +U 917 ; WX 730 ; N Epsilon ; G 783 +U 918 ; WX 695 ; N Zeta ; G 784 +U 919 ; WX 872 ; N Eta ; G 785 +U 920 ; WX 820 ; N Theta ; G 786 +U 921 ; WX 395 ; N Iota ; G 787 +U 922 ; WX 747 ; N Kappa ; G 788 +U 923 ; WX 722 ; N Lambda ; G 789 +U 924 ; WX 1024 ; N Mu ; G 790 +U 925 ; WX 875 ; N Nu ; G 791 +U 926 ; WX 704 ; N Xi ; G 792 +U 927 ; WX 820 ; N Omicron ; G 793 +U 928 ; WX 872 ; N Pi ; G 794 +U 929 ; WX 673 ; N Rho ; G 795 +U 931 ; WX 707 ; N Sigma ; G 796 +U 932 ; WX 667 ; N Tau ; G 797 +U 933 ; WX 660 ; N Upsilon ; G 798 +U 934 ; WX 820 ; N Phi ; G 799 +U 935 ; WX 712 ; N Chi ; G 800 +U 936 ; WX 877 ; N Psi ; G 801 +U 937 ; WX 829 ; N Omega ; G 802 +U 938 ; WX 395 ; N Iotadieresis ; G 803 +U 939 ; WX 660 ; N Upsilondieresis ; G 804 +U 940 ; WX 675 ; N alphatonos ; G 805 +U 941 ; WX 518 ; N epsilontonos ; G 806 +U 942 ; WX 599 ; N etatonos ; G 807 +U 943 ; WX 392 ; N iotatonos ; G 808 +U 944 ; WX 608 ; N upsilondieresistonos ; G 809 +U 945 ; WX 675 ; N alpha ; G 810 +U 946 ; WX 578 ; N beta ; G 811 +U 947 ; WX 598 ; N gamma ; G 812 +U 948 ; WX 602 ; N delta ; G 813 +U 949 ; WX 518 ; N epsilon ; G 814 +U 950 ; WX 542 ; N zeta ; G 815 +U 951 ; WX 599 ; N eta ; G 816 +U 952 ; WX 602 ; N theta ; G 817 +U 953 ; WX 392 ; N iota ; G 818 +U 954 ; WX 625 ; N kappa ; G 819 +U 955 ; WX 634 ; N lambda ; G 820 +U 956 ; WX 650 ; N uni03BC ; G 821 +U 957 ; WX 608 ; N nu ; G 822 +U 958 ; WX 551 ; N xi ; G 823 +U 959 ; WX 602 ; N omicron ; G 824 +U 960 ; WX 657 ; N pi ; G 825 +U 961 ; WX 588 ; N rho ; G 826 +U 962 ; WX 560 ; N sigma1 ; G 827 +U 963 ; WX 683 ; N sigma ; G 828 +U 964 ; WX 553 ; N tau ; G 829 +U 965 ; WX 608 ; N upsilon ; G 830 +U 966 ; WX 700 ; N phi ; G 831 +U 967 ; WX 606 ; N chi ; G 832 +U 968 ; WX 784 ; N psi ; G 833 +U 969 ; WX 815 ; N omega ; G 834 +U 970 ; WX 392 ; N iotadieresis ; G 835 +U 971 ; WX 608 ; N upsilondieresis ; G 836 +U 972 ; WX 602 ; N omicrontonos ; G 837 +U 973 ; WX 608 ; N upsilontonos ; G 838 +U 974 ; WX 815 ; N omegatonos ; G 839 +U 975 ; WX 747 ; N uni03CF ; G 840 +U 976 ; WX 583 ; N uni03D0 ; G 841 +U 977 ; WX 715 ; N theta1 ; G 842 +U 978 ; WX 687 ; N Upsilon1 ; G 843 +U 979 ; WX 874 ; N uni03D3 ; G 844 +U 980 ; WX 687 ; N uni03D4 ; G 845 +U 981 ; WX 682 ; N phi1 ; G 846 +U 982 ; WX 815 ; N omega1 ; G 847 +U 983 ; WX 624 ; N uni03D7 ; G 848 +U 984 ; WX 820 ; N uni03D8 ; G 849 +U 985 ; WX 602 ; N uni03D9 ; G 850 +U 986 ; WX 765 ; N uni03DA ; G 851 +U 987 ; WX 560 ; N uni03DB ; G 852 +U 988 ; WX 694 ; N uni03DC ; G 853 +U 989 ; WX 463 ; N uni03DD ; G 854 +U 990 ; WX 590 ; N uni03DE ; G 855 +U 991 ; WX 660 ; N uni03DF ; G 856 +U 992 ; WX 782 ; N uni03E0 ; G 857 +U 993 ; WX 577 ; N uni03E1 ; G 858 +U 1008 ; WX 624 ; N uni03F0 ; G 859 +U 1009 ; WX 588 ; N uni03F1 ; G 860 +U 1010 ; WX 560 ; N uni03F2 ; G 861 +U 1011 ; WX 310 ; N uni03F3 ; G 862 +U 1012 ; WX 820 ; N uni03F4 ; G 863 +U 1013 ; WX 560 ; N uni03F5 ; G 864 +U 1014 ; WX 560 ; N uni03F6 ; G 865 +U 1015 ; WX 676 ; N uni03F7 ; G 866 +U 1016 ; WX 640 ; N uni03F8 ; G 867 +U 1017 ; WX 765 ; N uni03F9 ; G 868 +U 1018 ; WX 1024 ; N uni03FA ; G 869 +U 1019 ; WX 708 ; N uni03FB ; G 870 +U 1020 ; WX 588 ; N uni03FC ; G 871 +U 1021 ; WX 765 ; N uni03FD ; G 872 +U 1022 ; WX 765 ; N uni03FE ; G 873 +U 1023 ; WX 765 ; N uni03FF ; G 874 +U 1024 ; WX 730 ; N uni0400 ; G 875 +U 1025 ; WX 730 ; N uni0401 ; G 876 +U 1026 ; WX 799 ; N uni0402 ; G 877 +U 1027 ; WX 662 ; N uni0403 ; G 878 +U 1028 ; WX 765 ; N uni0404 ; G 879 +U 1029 ; WX 685 ; N uni0405 ; G 880 +U 1030 ; WX 395 ; N uni0406 ; G 881 +U 1031 ; WX 395 ; N uni0407 ; G 882 +U 1032 ; WX 401 ; N uni0408 ; G 883 +U 1033 ; WX 1084 ; N uni0409 ; G 884 +U 1034 ; WX 1118 ; N uni040A ; G 885 +U 1035 ; WX 872 ; N uni040B ; G 886 +U 1036 ; WX 774 ; N uni040C ; G 887 +U 1037 ; WX 872 ; N uni040D ; G 888 +U 1038 ; WX 723 ; N uni040E ; G 889 +U 1039 ; WX 872 ; N uni040F ; G 890 +U 1040 ; WX 757 ; N uni0410 ; G 891 +U 1041 ; WX 735 ; N uni0411 ; G 892 +U 1042 ; WX 735 ; N uni0412 ; G 893 +U 1043 ; WX 662 ; N uni0413 ; G 894 +U 1044 ; WX 813 ; N uni0414 ; G 895 +U 1045 ; WX 730 ; N uni0415 ; G 896 +U 1046 ; WX 1124 ; N uni0416 ; G 897 +U 1047 ; WX 623 ; N uni0417 ; G 898 +U 1048 ; WX 872 ; N uni0418 ; G 899 +U 1049 ; WX 872 ; N uni0419 ; G 900 +U 1050 ; WX 774 ; N uni041A ; G 901 +U 1051 ; WX 834 ; N uni041B ; G 902 +U 1052 ; WX 1024 ; N uni041C ; G 903 +U 1053 ; WX 872 ; N uni041D ; G 904 +U 1054 ; WX 820 ; N uni041E ; G 905 +U 1055 ; WX 872 ; N uni041F ; G 906 +U 1056 ; WX 673 ; N uni0420 ; G 907 +U 1057 ; WX 765 ; N uni0421 ; G 908 +U 1058 ; WX 667 ; N uni0422 ; G 909 +U 1059 ; WX 723 ; N uni0423 ; G 910 +U 1060 ; WX 830 ; N uni0424 ; G 911 +U 1061 ; WX 712 ; N uni0425 ; G 912 +U 1062 ; WX 872 ; N uni0426 ; G 913 +U 1063 ; WX 773 ; N uni0427 ; G 914 +U 1064 ; WX 1141 ; N uni0428 ; G 915 +U 1065 ; WX 1141 ; N uni0429 ; G 916 +U 1066 ; WX 794 ; N uni042A ; G 917 +U 1067 ; WX 984 ; N uni042B ; G 918 +U 1068 ; WX 674 ; N uni042C ; G 919 +U 1069 ; WX 765 ; N uni042D ; G 920 +U 1070 ; WX 1193 ; N uni042E ; G 921 +U 1071 ; WX 808 ; N uni042F ; G 922 +U 1072 ; WX 596 ; N uni0430 ; G 923 +U 1073 ; WX 602 ; N uni0431 ; G 924 +U 1074 ; WX 563 ; N uni0432 ; G 925 +U 1075 ; WX 524 ; N uni0433 ; G 926 +U 1076 ; WX 616 ; N uni0434 ; G 927 +U 1077 ; WX 592 ; N uni0435 ; G 928 +U 1078 ; WX 920 ; N uni0436 ; G 929 +U 1079 ; WX 545 ; N uni0437 ; G 930 +U 1080 ; WX 667 ; N uni0438 ; G 931 +U 1081 ; WX 667 ; N uni0439 ; G 932 +U 1082 ; WX 625 ; N uni043A ; G 933 +U 1083 ; WX 635 ; N uni043B ; G 934 +U 1084 ; WX 778 ; N uni043C ; G 935 +U 1085 ; WX 667 ; N uni043D ; G 936 +U 1086 ; WX 602 ; N uni043E ; G 937 +U 1087 ; WX 667 ; N uni043F ; G 938 +U 1088 ; WX 640 ; N uni0440 ; G 939 +U 1089 ; WX 560 ; N uni0441 ; G 940 +U 1090 ; WX 553 ; N uni0442 ; G 941 +U 1091 ; WX 588 ; N uni0443 ; G 942 +U 1092 ; WX 783 ; N uni0444 ; G 943 +U 1093 ; WX 564 ; N uni0445 ; G 944 +U 1094 ; WX 643 ; N uni0446 ; G 945 +U 1095 ; WX 661 ; N uni0447 ; G 946 +U 1096 ; WX 930 ; N uni0448 ; G 947 +U 1097 ; WX 930 ; N uni0449 ; G 948 +U 1098 ; WX 636 ; N uni044A ; G 949 +U 1099 ; WX 796 ; N uni044B ; G 950 +U 1100 ; WX 544 ; N uni044C ; G 951 +U 1101 ; WX 560 ; N uni044D ; G 952 +U 1102 ; WX 871 ; N uni044E ; G 953 +U 1103 ; WX 631 ; N uni044F ; G 954 +U 1104 ; WX 592 ; N uni0450 ; G 955 +U 1105 ; WX 592 ; N uni0451 ; G 956 +U 1106 ; WX 624 ; N uni0452 ; G 957 +U 1107 ; WX 524 ; N uni0453 ; G 958 +U 1108 ; WX 560 ; N uni0454 ; G 959 +U 1109 ; WX 513 ; N uni0455 ; G 960 +U 1110 ; WX 320 ; N uni0456 ; G 961 +U 1111 ; WX 320 ; N uni0457 ; G 962 +U 1112 ; WX 310 ; N uni0458 ; G 963 +U 1113 ; WX 843 ; N uni0459 ; G 964 +U 1114 ; WX 860 ; N uni045A ; G 965 +U 1115 ; WX 644 ; N uni045B ; G 966 +U 1116 ; WX 625 ; N uni045C ; G 967 +U 1117 ; WX 667 ; N uni045D ; G 968 +U 1118 ; WX 588 ; N uni045E ; G 969 +U 1119 ; WX 656 ; N uni045F ; G 970 +U 1122 ; WX 762 ; N uni0462 ; G 971 +U 1123 ; WX 603 ; N uni0463 ; G 972 +U 1124 ; WX 1129 ; N uni0464 ; G 973 +U 1125 ; WX 834 ; N uni0465 ; G 974 +U 1130 ; WX 1124 ; N uni046A ; G 975 +U 1131 ; WX 920 ; N uni046B ; G 976 +U 1132 ; WX 1359 ; N uni046C ; G 977 +U 1133 ; WX 1113 ; N uni046D ; G 978 +U 1136 ; WX 944 ; N uni0470 ; G 979 +U 1137 ; WX 902 ; N uni0471 ; G 980 +U 1138 ; WX 820 ; N uni0472 ; G 981 +U 1139 ; WX 552 ; N uni0473 ; G 982 +U 1140 ; WX 859 ; N uni0474 ; G 983 +U 1141 ; WX 678 ; N uni0475 ; G 984 +U 1142 ; WX 859 ; N uni0476 ; G 985 +U 1143 ; WX 678 ; N uni0477 ; G 986 +U 1164 ; WX 707 ; N uni048C ; G 987 +U 1165 ; WX 544 ; N uni048D ; G 988 +U 1168 ; WX 672 ; N uni0490 ; G 989 +U 1169 ; WX 529 ; N uni0491 ; G 990 +U 1170 ; WX 662 ; N uni0492 ; G 991 +U 1171 ; WX 523 ; N uni0493 ; G 992 +U 1172 ; WX 728 ; N uni0494 ; G 993 +U 1173 ; WX 614 ; N uni0495 ; G 994 +U 1174 ; WX 1124 ; N uni0496 ; G 995 +U 1175 ; WX 920 ; N uni0497 ; G 996 +U 1176 ; WX 636 ; N uni0498 ; G 997 +U 1177 ; WX 537 ; N uni0499 ; G 998 +U 1178 ; WX 774 ; N uni049A ; G 999 +U 1179 ; WX 606 ; N uni049B ; G 1000 +U 1182 ; WX 774 ; N uni049E ; G 1001 +U 1183 ; WX 625 ; N uni049F ; G 1002 +U 1184 ; WX 891 ; N uni04A0 ; G 1003 +U 1185 ; WX 717 ; N uni04A1 ; G 1004 +U 1186 ; WX 872 ; N uni04A2 ; G 1005 +U 1187 ; WX 641 ; N uni04A3 ; G 1006 +U 1188 ; WX 1139 ; N uni04A4 ; G 1007 +U 1189 ; WX 852 ; N uni04A5 ; G 1008 +U 1190 ; WX 1205 ; N uni04A6 ; G 1009 +U 1191 ; WX 941 ; N uni04A7 ; G 1010 +U 1194 ; WX 765 ; N uni04AA ; G 1011 +U 1195 ; WX 560 ; N uni04AB ; G 1012 +U 1196 ; WX 667 ; N uni04AC ; G 1013 +U 1197 ; WX 553 ; N uni04AD ; G 1014 +U 1198 ; WX 660 ; N uni04AE ; G 1015 +U 1199 ; WX 565 ; N uni04AF ; G 1016 +U 1200 ; WX 660 ; N uni04B0 ; G 1017 +U 1201 ; WX 565 ; N uni04B1 ; G 1018 +U 1202 ; WX 712 ; N uni04B2 ; G 1019 +U 1203 ; WX 564 ; N uni04B3 ; G 1020 +U 1204 ; WX 952 ; N uni04B4 ; G 1021 +U 1205 ; WX 732 ; N uni04B5 ; G 1022 +U 1206 ; WX 749 ; N uni04B6 ; G 1023 +U 1207 ; WX 690 ; N uni04B7 ; G 1024 +U 1210 ; WX 749 ; N uni04BA ; G 1025 +U 1211 ; WX 644 ; N uni04BB ; G 1026 +U 1216 ; WX 395 ; N uni04C0 ; G 1027 +U 1217 ; WX 1124 ; N uni04C1 ; G 1028 +U 1218 ; WX 920 ; N uni04C2 ; G 1029 +U 1219 ; WX 747 ; N uni04C3 ; G 1030 +U 1220 ; WX 606 ; N uni04C4 ; G 1031 +U 1223 ; WX 872 ; N uni04C7 ; G 1032 +U 1224 ; WX 667 ; N uni04C8 ; G 1033 +U 1227 ; WX 749 ; N uni04CB ; G 1034 +U 1228 ; WX 667 ; N uni04CC ; G 1035 +U 1231 ; WX 320 ; N uni04CF ; G 1036 +U 1232 ; WX 757 ; N uni04D0 ; G 1037 +U 1233 ; WX 596 ; N uni04D1 ; G 1038 +U 1234 ; WX 757 ; N uni04D2 ; G 1039 +U 1235 ; WX 596 ; N uni04D3 ; G 1040 +U 1236 ; WX 1001 ; N uni04D4 ; G 1041 +U 1237 ; WX 940 ; N uni04D5 ; G 1042 +U 1238 ; WX 730 ; N uni04D6 ; G 1043 +U 1239 ; WX 592 ; N uni04D7 ; G 1044 +U 1240 ; WX 820 ; N uni04D8 ; G 1045 +U 1241 ; WX 592 ; N uni04D9 ; G 1046 +U 1242 ; WX 820 ; N uni04DA ; G 1047 +U 1243 ; WX 592 ; N uni04DB ; G 1048 +U 1244 ; WX 1124 ; N uni04DC ; G 1049 +U 1245 ; WX 920 ; N uni04DD ; G 1050 +U 1246 ; WX 623 ; N uni04DE ; G 1051 +U 1247 ; WX 545 ; N uni04DF ; G 1052 +U 1248 ; WX 564 ; N uni04E0 ; G 1053 +U 1249 ; WX 564 ; N uni04E1 ; G 1054 +U 1250 ; WX 872 ; N uni04E2 ; G 1055 +U 1251 ; WX 667 ; N uni04E3 ; G 1056 +U 1252 ; WX 872 ; N uni04E4 ; G 1057 +U 1253 ; WX 667 ; N uni04E5 ; G 1058 +U 1254 ; WX 820 ; N uni04E6 ; G 1059 +U 1255 ; WX 602 ; N uni04E7 ; G 1060 +U 1256 ; WX 820 ; N uni04E8 ; G 1061 +U 1257 ; WX 602 ; N uni04E9 ; G 1062 +U 1258 ; WX 820 ; N uni04EA ; G 1063 +U 1259 ; WX 602 ; N uni04EB ; G 1064 +U 1260 ; WX 765 ; N uni04EC ; G 1065 +U 1261 ; WX 560 ; N uni04ED ; G 1066 +U 1262 ; WX 723 ; N uni04EE ; G 1067 +U 1263 ; WX 588 ; N uni04EF ; G 1068 +U 1264 ; WX 723 ; N uni04F0 ; G 1069 +U 1265 ; WX 588 ; N uni04F1 ; G 1070 +U 1266 ; WX 723 ; N uni04F2 ; G 1071 +U 1267 ; WX 588 ; N uni04F3 ; G 1072 +U 1268 ; WX 773 ; N uni04F4 ; G 1073 +U 1269 ; WX 661 ; N uni04F5 ; G 1074 +U 1270 ; WX 662 ; N uni04F6 ; G 1075 +U 1271 ; WX 524 ; N uni04F7 ; G 1076 +U 1272 ; WX 984 ; N uni04F8 ; G 1077 +U 1273 ; WX 796 ; N uni04F9 ; G 1078 +U 1296 ; WX 623 ; N uni0510 ; G 1079 +U 1297 ; WX 545 ; N uni0511 ; G 1080 +U 1298 ; WX 834 ; N uni0512 ; G 1081 +U 1299 ; WX 635 ; N uni0513 ; G 1082 +U 1300 ; WX 1198 ; N uni0514 ; G 1083 +U 1301 ; WX 919 ; N uni0515 ; G 1084 +U 1306 ; WX 820 ; N uni051A ; G 1085 +U 1307 ; WX 640 ; N uni051B ; G 1086 +U 1308 ; WX 1028 ; N uni051C ; G 1087 +U 1309 ; WX 856 ; N uni051D ; G 1088 +U 1329 ; WX 810 ; N uni0531 ; G 1089 +U 1330 ; WX 811 ; N uni0532 ; G 1090 +U 1331 ; WX 826 ; N uni0533 ; G 1091 +U 1332 ; WX 847 ; N uni0534 ; G 1092 +U 1333 ; WX 806 ; N uni0535 ; G 1093 +U 1334 ; WX 826 ; N uni0536 ; G 1094 +U 1335 ; WX 761 ; N uni0537 ; G 1095 +U 1336 ; WX 811 ; N uni0538 ; G 1096 +U 1337 ; WX 968 ; N uni0539 ; G 1097 +U 1338 ; WX 816 ; N uni053A ; G 1098 +U 1339 ; WX 772 ; N uni053B ; G 1099 +U 1340 ; WX 682 ; N uni053C ; G 1100 +U 1341 ; WX 1097 ; N uni053D ; G 1101 +U 1342 ; WX 845 ; N uni053E ; G 1102 +U 1343 ; WX 804 ; N uni053F ; G 1103 +U 1344 ; WX 719 ; N uni0540 ; G 1104 +U 1345 ; WX 810 ; N uni0541 ; G 1105 +U 1346 ; WX 833 ; N uni0542 ; G 1106 +U 1347 ; WX 843 ; N uni0543 ; G 1107 +U 1348 ; WX 897 ; N uni0544 ; G 1108 +U 1349 ; WX 763 ; N uni0545 ; G 1109 +U 1350 ; WX 794 ; N uni0546 ; G 1110 +U 1351 ; WX 754 ; N uni0547 ; G 1111 +U 1352 ; WX 799 ; N uni0548 ; G 1112 +U 1353 ; WX 797 ; N uni0549 ; G 1113 +U 1354 ; WX 875 ; N uni054A ; G 1114 +U 1355 ; WX 830 ; N uni054B ; G 1115 +U 1356 ; WX 884 ; N uni054C ; G 1116 +U 1357 ; WX 799 ; N uni054D ; G 1117 +U 1358 ; WX 802 ; N uni054E ; G 1118 +U 1359 ; WX 731 ; N uni054F ; G 1119 +U 1360 ; WX 774 ; N uni0550 ; G 1120 +U 1361 ; WX 749 ; N uni0551 ; G 1121 +U 1362 ; WX 633 ; N uni0552 ; G 1122 +U 1363 ; WX 845 ; N uni0553 ; G 1123 +U 1364 ; WX 843 ; N uni0554 ; G 1124 +U 1365 ; WX 835 ; N uni0555 ; G 1125 +U 1366 ; WX 821 ; N uni0556 ; G 1126 +U 1369 ; WX 307 ; N uni0559 ; G 1127 +U 1370 ; WX 264 ; N uni055A ; G 1128 +U 1371 ; WX 229 ; N uni055B ; G 1129 +U 1372 ; WX 391 ; N uni055C ; G 1130 +U 1373 ; WX 364 ; N uni055D ; G 1131 +U 1374 ; WX 386 ; N uni055E ; G 1132 +U 1375 ; WX 500 ; N uni055F ; G 1133 +U 1377 ; WX 949 ; N uni0561 ; G 1134 +U 1378 ; WX 618 ; N uni0562 ; G 1135 +U 1379 ; WX 695 ; N uni0563 ; G 1136 +U 1380 ; WX 695 ; N uni0564 ; G 1137 +U 1381 ; WX 628 ; N uni0565 ; G 1138 +U 1382 ; WX 688 ; N uni0566 ; G 1139 +U 1383 ; WX 510 ; N uni0567 ; G 1140 +U 1384 ; WX 636 ; N uni0568 ; G 1141 +U 1385 ; WX 791 ; N uni0569 ; G 1142 +U 1386 ; WX 671 ; N uni056A ; G 1143 +U 1387 ; WX 635 ; N uni056B ; G 1144 +U 1388 ; WX 305 ; N uni056C ; G 1145 +U 1389 ; WX 973 ; N uni056D ; G 1146 +U 1390 ; WX 614 ; N uni056E ; G 1147 +U 1391 ; WX 628 ; N uni056F ; G 1148 +U 1392 ; WX 636 ; N uni0570 ; G 1149 +U 1393 ; WX 630 ; N uni0571 ; G 1150 +U 1394 ; WX 636 ; N uni0572 ; G 1151 +U 1395 ; WX 654 ; N uni0573 ; G 1152 +U 1396 ; WX 644 ; N uni0574 ; G 1153 +U 1397 ; WX 309 ; N uni0575 ; G 1154 +U 1398 ; WX 636 ; N uni0576 ; G 1155 +U 1399 ; WX 461 ; N uni0577 ; G 1156 +U 1400 ; WX 649 ; N uni0578 ; G 1157 +U 1401 ; WX 365 ; N uni0579 ; G 1158 +U 1402 ; WX 940 ; N uni057A ; G 1159 +U 1403 ; WX 562 ; N uni057B ; G 1160 +U 1404 ; WX 657 ; N uni057C ; G 1161 +U 1405 ; WX 644 ; N uni057D ; G 1162 +U 1406 ; WX 630 ; N uni057E ; G 1163 +U 1407 ; WX 930 ; N uni057F ; G 1164 +U 1408 ; WX 644 ; N uni0580 ; G 1165 +U 1409 ; WX 643 ; N uni0581 ; G 1166 +U 1410 ; WX 483 ; N uni0582 ; G 1167 +U 1411 ; WX 930 ; N uni0583 ; G 1168 +U 1412 ; WX 636 ; N uni0584 ; G 1169 +U 1413 ; WX 609 ; N uni0585 ; G 1170 +U 1414 ; WX 809 ; N uni0586 ; G 1171 +U 1415 ; WX 789 ; N uni0587 ; G 1172 +U 1417 ; WX 340 ; N uni0589 ; G 1173 +U 1418 ; WX 334 ; N uni058A ; G 1174 +U 3647 ; WX 636 ; N uni0E3F ; G 1175 +U 4256 ; WX 723 ; N uni10A0 ; G 1176 +U 4257 ; WX 850 ; N uni10A1 ; G 1177 +U 4258 ; WX 828 ; N uni10A2 ; G 1178 +U 4259 ; WX 859 ; N uni10A3 ; G 1179 +U 4260 ; WX 733 ; N uni10A4 ; G 1180 +U 4261 ; WX 981 ; N uni10A5 ; G 1181 +U 4262 ; WX 916 ; N uni10A6 ; G 1182 +U 4263 ; WX 1101 ; N uni10A7 ; G 1183 +U 4264 ; WX 566 ; N uni10A8 ; G 1184 +U 4265 ; WX 750 ; N uni10A9 ; G 1185 +U 4266 ; WX 962 ; N uni10AA ; G 1186 +U 4267 ; WX 941 ; N uni10AB ; G 1187 +U 4268 ; WX 743 ; N uni10AC ; G 1188 +U 4269 ; WX 1075 ; N uni10AD ; G 1189 +U 4270 ; WX 896 ; N uni10AE ; G 1190 +U 4271 ; WX 829 ; N uni10AF ; G 1191 +U 4272 ; WX 1040 ; N uni10B0 ; G 1192 +U 4273 ; WX 733 ; N uni10B1 ; G 1193 +U 4274 ; WX 669 ; N uni10B2 ; G 1194 +U 4275 ; WX 1015 ; N uni10B3 ; G 1195 +U 4276 ; WX 937 ; N uni10B4 ; G 1196 +U 4277 ; WX 1020 ; N uni10B5 ; G 1197 +U 4278 ; WX 731 ; N uni10B6 ; G 1198 +U 4279 ; WX 733 ; N uni10B7 ; G 1199 +U 4280 ; WX 732 ; N uni10B8 ; G 1200 +U 4281 ; WX 733 ; N uni10B9 ; G 1201 +U 4282 ; WX 879 ; N uni10BA ; G 1202 +U 4283 ; WX 937 ; N uni10BB ; G 1203 +U 4284 ; WX 714 ; N uni10BC ; G 1204 +U 4285 ; WX 755 ; N uni10BD ; G 1205 +U 4286 ; WX 733 ; N uni10BE ; G 1206 +U 4287 ; WX 958 ; N uni10BF ; G 1207 +U 4288 ; WX 1000 ; N uni10C0 ; G 1208 +U 4289 ; WX 702 ; N uni10C1 ; G 1209 +U 4290 ; WX 864 ; N uni10C2 ; G 1210 +U 4291 ; WX 734 ; N uni10C3 ; G 1211 +U 4292 ; WX 837 ; N uni10C4 ; G 1212 +U 4293 ; WX 951 ; N uni10C5 ; G 1213 +U 4304 ; WX 541 ; N uni10D0 ; G 1214 +U 4305 ; WX 571 ; N uni10D1 ; G 1215 +U 4306 ; WX 589 ; N uni10D2 ; G 1216 +U 4307 ; WX 833 ; N uni10D3 ; G 1217 +U 4308 ; WX 561 ; N uni10D4 ; G 1218 +U 4309 ; WX 557 ; N uni10D5 ; G 1219 +U 4310 ; WX 618 ; N uni10D6 ; G 1220 +U 4311 ; WX 861 ; N uni10D7 ; G 1221 +U 4312 ; WX 560 ; N uni10D8 ; G 1222 +U 4313 ; WX 546 ; N uni10D9 ; G 1223 +U 4314 ; WX 1066 ; N uni10DA ; G 1224 +U 4315 ; WX 586 ; N uni10DB ; G 1225 +U 4316 ; WX 586 ; N uni10DC ; G 1226 +U 4317 ; WX 825 ; N uni10DD ; G 1227 +U 4318 ; WX 570 ; N uni10DE ; G 1228 +U 4319 ; WX 581 ; N uni10DF ; G 1229 +U 4320 ; WX 824 ; N uni10E0 ; G 1230 +U 4321 ; WX 607 ; N uni10E1 ; G 1231 +U 4322 ; WX 748 ; N uni10E2 ; G 1232 +U 4323 ; WX 698 ; N uni10E3 ; G 1233 +U 4324 ; WX 815 ; N uni10E4 ; G 1234 +U 4325 ; WX 585 ; N uni10E5 ; G 1235 +U 4326 ; WX 858 ; N uni10E6 ; G 1236 +U 4327 ; WX 568 ; N uni10E7 ; G 1237 +U 4328 ; WX 594 ; N uni10E8 ; G 1238 +U 4329 ; WX 586 ; N uni10E9 ; G 1239 +U 4330 ; WX 675 ; N uni10EA ; G 1240 +U 4331 ; WX 587 ; N uni10EB ; G 1241 +U 4332 ; WX 582 ; N uni10EC ; G 1242 +U 4333 ; WX 576 ; N uni10ED ; G 1243 +U 4334 ; WX 612 ; N uni10EE ; G 1244 +U 4335 ; WX 683 ; N uni10EF ; G 1245 +U 4336 ; WX 572 ; N uni10F0 ; G 1246 +U 4337 ; WX 603 ; N uni10F1 ; G 1247 +U 4338 ; WX 571 ; N uni10F2 ; G 1248 +U 4339 ; WX 572 ; N uni10F3 ; G 1249 +U 4340 ; WX 570 ; N uni10F4 ; G 1250 +U 4341 ; WX 649 ; N uni10F5 ; G 1251 +U 4342 ; WX 886 ; N uni10F6 ; G 1252 +U 4343 ; WX 626 ; N uni10F7 ; G 1253 +U 4344 ; WX 582 ; N uni10F8 ; G 1254 +U 4345 ; WX 619 ; N uni10F9 ; G 1255 +U 4346 ; WX 571 ; N uni10FA ; G 1256 +U 4347 ; WX 437 ; N uni10FB ; G 1257 +U 4348 ; WX 354 ; N uni10FC ; G 1258 +U 7424 ; WX 565 ; N uni1D00 ; G 1259 +U 7425 ; WX 774 ; N uni1D01 ; G 1260 +U 7426 ; WX 940 ; N uni1D02 ; G 1261 +U 7427 ; WX 563 ; N uni1D03 ; G 1262 +U 7428 ; WX 560 ; N uni1D04 ; G 1263 +U 7429 ; WX 585 ; N uni1D05 ; G 1264 +U 7430 ; WX 585 ; N uni1D06 ; G 1265 +U 7431 ; WX 553 ; N uni1D07 ; G 1266 +U 7432 ; WX 509 ; N uni1D08 ; G 1267 +U 7433 ; WX 320 ; N uni1D09 ; G 1268 +U 7434 ; WX 499 ; N uni1D0A ; G 1269 +U 7435 ; WX 625 ; N uni1D0B ; G 1270 +U 7436 ; WX 543 ; N uni1D0C ; G 1271 +U 7437 ; WX 778 ; N uni1D0D ; G 1272 +U 7438 ; WX 667 ; N uni1D0E ; G 1273 +U 7439 ; WX 602 ; N uni1D0F ; G 1274 +U 7440 ; WX 560 ; N uni1D10 ; G 1275 +U 7441 ; WX 647 ; N uni1D11 ; G 1276 +U 7442 ; WX 647 ; N uni1D12 ; G 1277 +U 7443 ; WX 647 ; N uni1D13 ; G 1278 +U 7444 ; WX 989 ; N uni1D14 ; G 1279 +U 7445 ; WX 512 ; N uni1D15 ; G 1280 +U 7446 ; WX 602 ; N uni1D16 ; G 1281 +U 7447 ; WX 602 ; N uni1D17 ; G 1282 +U 7448 ; WX 553 ; N uni1D18 ; G 1283 +U 7449 ; WX 594 ; N uni1D19 ; G 1284 +U 7450 ; WX 594 ; N uni1D1A ; G 1285 +U 7451 ; WX 553 ; N uni1D1B ; G 1286 +U 7452 ; WX 585 ; N uni1D1C ; G 1287 +U 7453 ; WX 664 ; N uni1D1D ; G 1288 +U 7454 ; WX 923 ; N uni1D1E ; G 1289 +U 7455 ; WX 655 ; N uni1D1F ; G 1290 +U 7456 ; WX 565 ; N uni1D20 ; G 1291 +U 7457 ; WX 856 ; N uni1D21 ; G 1292 +U 7458 ; WX 527 ; N uni1D22 ; G 1293 +U 7459 ; WX 527 ; N uni1D23 ; G 1294 +U 7460 ; WX 531 ; N uni1D24 ; G 1295 +U 7461 ; WX 743 ; N uni1D25 ; G 1296 +U 7462 ; WX 524 ; N uni1D26 ; G 1297 +U 7463 ; WX 565 ; N uni1D27 ; G 1298 +U 7464 ; WX 657 ; N uni1D28 ; G 1299 +U 7465 ; WX 553 ; N uni1D29 ; G 1300 +U 7466 ; WX 703 ; N uni1D2A ; G 1301 +U 7467 ; WX 635 ; N uni1D2B ; G 1302 +U 7468 ; WX 455 ; N uni1D2C ; G 1303 +U 7469 ; WX 630 ; N uni1D2D ; G 1304 +U 7470 ; WX 463 ; N uni1D2E ; G 1305 +U 7471 ; WX 463 ; N uni1D2F ; G 1306 +U 7472 ; WX 505 ; N uni1D30 ; G 1307 +U 7473 ; WX 459 ; N uni1D31 ; G 1308 +U 7474 ; WX 459 ; N uni1D32 ; G 1309 +U 7475 ; WX 503 ; N uni1D33 ; G 1310 +U 7476 ; WX 549 ; N uni1D34 ; G 1311 +U 7477 ; WX 249 ; N uni1D35 ; G 1312 +U 7478 ; WX 252 ; N uni1D36 ; G 1313 +U 7479 ; WX 470 ; N uni1D37 ; G 1314 +U 7480 ; WX 418 ; N uni1D38 ; G 1315 +U 7481 ; WX 645 ; N uni1D39 ; G 1316 +U 7482 ; WX 551 ; N uni1D3A ; G 1317 +U 7483 ; WX 551 ; N uni1D3B ; G 1318 +U 7484 ; WX 516 ; N uni1D3C ; G 1319 +U 7485 ; WX 369 ; N uni1D3D ; G 1320 +U 7486 ; WX 424 ; N uni1D3E ; G 1321 +U 7487 ; WX 474 ; N uni1D3F ; G 1322 +U 7488 ; WX 420 ; N uni1D40 ; G 1323 +U 7489 ; WX 531 ; N uni1D41 ; G 1324 +U 7490 ; WX 647 ; N uni1D42 ; G 1325 +U 7491 ; WX 386 ; N uni1D43 ; G 1326 +U 7492 ; WX 386 ; N uni1D44 ; G 1327 +U 7493 ; WX 400 ; N uni1D45 ; G 1328 +U 7494 ; WX 618 ; N uni1D46 ; G 1329 +U 7495 ; WX 400 ; N uni1D47 ; G 1330 +U 7496 ; WX 400 ; N uni1D48 ; G 1331 +U 7497 ; WX 387 ; N uni1D49 ; G 1332 +U 7498 ; WX 387 ; N uni1D4A ; G 1333 +U 7499 ; WX 340 ; N uni1D4B ; G 1334 +U 7500 ; WX 340 ; N uni1D4C ; G 1335 +U 7501 ; WX 400 ; N uni1D4D ; G 1336 +U 7502 ; WX 175 ; N uni1D4E ; G 1337 +U 7503 ; WX 365 ; N uni1D4F ; G 1338 +U 7504 ; WX 613 ; N uni1D50 ; G 1339 +U 7505 ; WX 399 ; N uni1D51 ; G 1340 +U 7506 ; WX 385 ; N uni1D52 ; G 1341 +U 7507 ; WX 346 ; N uni1D53 ; G 1342 +U 7508 ; WX 385 ; N uni1D54 ; G 1343 +U 7509 ; WX 385 ; N uni1D55 ; G 1344 +U 7510 ; WX 400 ; N uni1D56 ; G 1345 +U 7511 ; WX 247 ; N uni1D57 ; G 1346 +U 7512 ; WX 399 ; N uni1D58 ; G 1347 +U 7513 ; WX 418 ; N uni1D59 ; G 1348 +U 7514 ; WX 613 ; N uni1D5A ; G 1349 +U 7515 ; WX 373 ; N uni1D5B ; G 1350 +U 7516 ; WX 468 ; N uni1D5C ; G 1351 +U 7517 ; WX 364 ; N uni1D5D ; G 1352 +U 7518 ; WX 376 ; N uni1D5E ; G 1353 +U 7519 ; WX 379 ; N uni1D5F ; G 1354 +U 7520 ; WX 441 ; N uni1D60 ; G 1355 +U 7521 ; WX 381 ; N uni1D61 ; G 1356 +U 7522 ; WX 201 ; N uni1D62 ; G 1357 +U 7523 ; WX 347 ; N uni1D63 ; G 1358 +U 7524 ; WX 399 ; N uni1D64 ; G 1359 +U 7525 ; WX 373 ; N uni1D65 ; G 1360 +U 7526 ; WX 364 ; N uni1D66 ; G 1361 +U 7527 ; WX 376 ; N uni1D67 ; G 1362 +U 7528 ; WX 370 ; N uni1D68 ; G 1363 +U 7529 ; WX 441 ; N uni1D69 ; G 1364 +U 7530 ; WX 381 ; N uni1D6A ; G 1365 +U 7531 ; WX 974 ; N uni1D6B ; G 1366 +U 7543 ; WX 640 ; N uni1D77 ; G 1367 +U 7544 ; WX 549 ; N uni1D78 ; G 1368 +U 7547 ; WX 320 ; N uni1D7B ; G 1369 +U 7548 ; WX 392 ; N uni1D7C ; G 1370 +U 7549 ; WX 640 ; N uni1D7D ; G 1371 +U 7550 ; WX 585 ; N uni1D7E ; G 1372 +U 7551 ; WX 620 ; N uni1D7F ; G 1373 +U 7557 ; WX 320 ; N uni1D85 ; G 1374 +U 7579 ; WX 400 ; N uni1D9B ; G 1375 +U 7580 ; WX 346 ; N uni1D9C ; G 1376 +U 7581 ; WX 346 ; N uni1D9D ; G 1377 +U 7582 ; WX 385 ; N uni1D9E ; G 1378 +U 7583 ; WX 340 ; N uni1D9F ; G 1379 +U 7584 ; WX 222 ; N uni1DA0 ; G 1380 +U 7585 ; WX 229 ; N uni1DA1 ; G 1381 +U 7586 ; WX 400 ; N uni1DA2 ; G 1382 +U 7587 ; WX 399 ; N uni1DA3 ; G 1383 +U 7588 ; WX 234 ; N uni1DA4 ; G 1384 +U 7589 ; WX 244 ; N uni1DA5 ; G 1385 +U 7590 ; WX 234 ; N uni1DA6 ; G 1386 +U 7591 ; WX 234 ; N uni1DA7 ; G 1387 +U 7592 ; WX 230 ; N uni1DA8 ; G 1388 +U 7593 ; WX 175 ; N uni1DA9 ; G 1389 +U 7594 ; WX 175 ; N uni1DAA ; G 1390 +U 7595 ; WX 367 ; N uni1DAB ; G 1391 +U 7596 ; WX 613 ; N uni1DAC ; G 1392 +U 7597 ; WX 613 ; N uni1DAD ; G 1393 +U 7598 ; WX 407 ; N uni1DAE ; G 1394 +U 7599 ; WX 404 ; N uni1DAF ; G 1395 +U 7600 ; WX 399 ; N uni1DB0 ; G 1396 +U 7601 ; WX 385 ; N uni1DB1 ; G 1397 +U 7602 ; WX 385 ; N uni1DB2 ; G 1398 +U 7603 ; WX 328 ; N uni1DB3 ; G 1399 +U 7604 ; WX 211 ; N uni1DB4 ; G 1400 +U 7605 ; WX 247 ; N uni1DB5 ; G 1401 +U 7606 ; WX 399 ; N uni1DB6 ; G 1402 +U 7607 ; WX 389 ; N uni1DB7 ; G 1403 +U 7608 ; WX 368 ; N uni1DB8 ; G 1404 +U 7609 ; WX 376 ; N uni1DB9 ; G 1405 +U 7610 ; WX 373 ; N uni1DBA ; G 1406 +U 7611 ; WX 331 ; N uni1DBB ; G 1407 +U 7612 ; WX 331 ; N uni1DBC ; G 1408 +U 7613 ; WX 331 ; N uni1DBD ; G 1409 +U 7614 ; WX 364 ; N uni1DBE ; G 1410 +U 7615 ; WX 385 ; N uni1DBF ; G 1411 +U 7620 ; WX 0 ; N uni1DC4 ; G 1412 +U 7621 ; WX 0 ; N uni1DC5 ; G 1413 +U 7622 ; WX 0 ; N uni1DC6 ; G 1414 +U 7623 ; WX 0 ; N uni1DC7 ; G 1415 +U 7624 ; WX 0 ; N uni1DC8 ; G 1416 +U 7625 ; WX 0 ; N uni1DC9 ; G 1417 +U 7680 ; WX 722 ; N uni1E00 ; G 1418 +U 7681 ; WX 596 ; N uni1E01 ; G 1419 +U 7682 ; WX 735 ; N uni1E02 ; G 1420 +U 7683 ; WX 640 ; N uni1E03 ; G 1421 +U 7684 ; WX 735 ; N uni1E04 ; G 1422 +U 7685 ; WX 640 ; N uni1E05 ; G 1423 +U 7686 ; WX 735 ; N uni1E06 ; G 1424 +U 7687 ; WX 640 ; N uni1E07 ; G 1425 +U 7688 ; WX 765 ; N uni1E08 ; G 1426 +U 7689 ; WX 560 ; N uni1E09 ; G 1427 +U 7690 ; WX 802 ; N uni1E0A ; G 1428 +U 7691 ; WX 640 ; N uni1E0B ; G 1429 +U 7692 ; WX 802 ; N uni1E0C ; G 1430 +U 7693 ; WX 640 ; N uni1E0D ; G 1431 +U 7694 ; WX 802 ; N uni1E0E ; G 1432 +U 7695 ; WX 640 ; N uni1E0F ; G 1433 +U 7696 ; WX 802 ; N uni1E10 ; G 1434 +U 7697 ; WX 640 ; N uni1E11 ; G 1435 +U 7698 ; WX 802 ; N uni1E12 ; G 1436 +U 7699 ; WX 640 ; N uni1E13 ; G 1437 +U 7700 ; WX 730 ; N uni1E14 ; G 1438 +U 7701 ; WX 592 ; N uni1E15 ; G 1439 +U 7702 ; WX 730 ; N uni1E16 ; G 1440 +U 7703 ; WX 592 ; N uni1E17 ; G 1441 +U 7704 ; WX 730 ; N uni1E18 ; G 1442 +U 7705 ; WX 592 ; N uni1E19 ; G 1443 +U 7706 ; WX 730 ; N uni1E1A ; G 1444 +U 7707 ; WX 592 ; N uni1E1B ; G 1445 +U 7708 ; WX 730 ; N uni1E1C ; G 1446 +U 7709 ; WX 592 ; N uni1E1D ; G 1447 +U 7710 ; WX 694 ; N uni1E1E ; G 1448 +U 7711 ; WX 370 ; N uni1E1F ; G 1449 +U 7712 ; WX 799 ; N uni1E20 ; G 1450 +U 7713 ; WX 640 ; N uni1E21 ; G 1451 +U 7714 ; WX 872 ; N uni1E22 ; G 1452 +U 7715 ; WX 644 ; N uni1E23 ; G 1453 +U 7716 ; WX 872 ; N uni1E24 ; G 1454 +U 7717 ; WX 644 ; N uni1E25 ; G 1455 +U 7718 ; WX 872 ; N uni1E26 ; G 1456 +U 7719 ; WX 644 ; N uni1E27 ; G 1457 +U 7720 ; WX 872 ; N uni1E28 ; G 1458 +U 7721 ; WX 644 ; N uni1E29 ; G 1459 +U 7722 ; WX 872 ; N uni1E2A ; G 1460 +U 7723 ; WX 644 ; N uni1E2B ; G 1461 +U 7724 ; WX 395 ; N uni1E2C ; G 1462 +U 7725 ; WX 320 ; N uni1E2D ; G 1463 +U 7726 ; WX 395 ; N uni1E2E ; G 1464 +U 7727 ; WX 320 ; N uni1E2F ; G 1465 +U 7728 ; WX 747 ; N uni1E30 ; G 1466 +U 7729 ; WX 606 ; N uni1E31 ; G 1467 +U 7730 ; WX 747 ; N uni1E32 ; G 1468 +U 7731 ; WX 606 ; N uni1E33 ; G 1469 +U 7732 ; WX 747 ; N uni1E34 ; G 1470 +U 7733 ; WX 606 ; N uni1E35 ; G 1471 +U 7734 ; WX 664 ; N uni1E36 ; G 1472 +U 7735 ; WX 320 ; N uni1E37 ; G 1473 +U 7736 ; WX 664 ; N uni1E38 ; G 1474 +U 7737 ; WX 320 ; N uni1E39 ; G 1475 +U 7738 ; WX 664 ; N uni1E3A ; G 1476 +U 7739 ; WX 320 ; N uni1E3B ; G 1477 +U 7740 ; WX 664 ; N uni1E3C ; G 1478 +U 7741 ; WX 320 ; N uni1E3D ; G 1479 +U 7742 ; WX 1024 ; N uni1E3E ; G 1480 +U 7743 ; WX 948 ; N uni1E3F ; G 1481 +U 7744 ; WX 1024 ; N uni1E40 ; G 1482 +U 7745 ; WX 948 ; N uni1E41 ; G 1483 +U 7746 ; WX 1024 ; N uni1E42 ; G 1484 +U 7747 ; WX 948 ; N uni1E43 ; G 1485 +U 7748 ; WX 875 ; N uni1E44 ; G 1486 +U 7749 ; WX 644 ; N uni1E45 ; G 1487 +U 7750 ; WX 875 ; N uni1E46 ; G 1488 +U 7751 ; WX 644 ; N uni1E47 ; G 1489 +U 7752 ; WX 875 ; N uni1E48 ; G 1490 +U 7753 ; WX 644 ; N uni1E49 ; G 1491 +U 7754 ; WX 875 ; N uni1E4A ; G 1492 +U 7755 ; WX 644 ; N uni1E4B ; G 1493 +U 7756 ; WX 820 ; N uni1E4C ; G 1494 +U 7757 ; WX 602 ; N uni1E4D ; G 1495 +U 7758 ; WX 820 ; N uni1E4E ; G 1496 +U 7759 ; WX 602 ; N uni1E4F ; G 1497 +U 7760 ; WX 820 ; N uni1E50 ; G 1498 +U 7761 ; WX 602 ; N uni1E51 ; G 1499 +U 7762 ; WX 820 ; N uni1E52 ; G 1500 +U 7763 ; WX 602 ; N uni1E53 ; G 1501 +U 7764 ; WX 673 ; N uni1E54 ; G 1502 +U 7765 ; WX 640 ; N uni1E55 ; G 1503 +U 7766 ; WX 673 ; N uni1E56 ; G 1504 +U 7767 ; WX 640 ; N uni1E57 ; G 1505 +U 7768 ; WX 753 ; N uni1E58 ; G 1506 +U 7769 ; WX 478 ; N uni1E59 ; G 1507 +U 7770 ; WX 753 ; N uni1E5A ; G 1508 +U 7771 ; WX 478 ; N uni1E5B ; G 1509 +U 7772 ; WX 753 ; N uni1E5C ; G 1510 +U 7773 ; WX 478 ; N uni1E5D ; G 1511 +U 7774 ; WX 753 ; N uni1E5E ; G 1512 +U 7775 ; WX 478 ; N uni1E5F ; G 1513 +U 7776 ; WX 685 ; N uni1E60 ; G 1514 +U 7777 ; WX 513 ; N uni1E61 ; G 1515 +U 7778 ; WX 685 ; N uni1E62 ; G 1516 +U 7779 ; WX 513 ; N uni1E63 ; G 1517 +U 7780 ; WX 685 ; N uni1E64 ; G 1518 +U 7781 ; WX 513 ; N uni1E65 ; G 1519 +U 7782 ; WX 685 ; N uni1E66 ; G 1520 +U 7783 ; WX 521 ; N uni1E67 ; G 1521 +U 7784 ; WX 685 ; N uni1E68 ; G 1522 +U 7785 ; WX 513 ; N uni1E69 ; G 1523 +U 7786 ; WX 667 ; N uni1E6A ; G 1524 +U 7787 ; WX 402 ; N uni1E6B ; G 1525 +U 7788 ; WX 667 ; N uni1E6C ; G 1526 +U 7789 ; WX 402 ; N uni1E6D ; G 1527 +U 7790 ; WX 667 ; N uni1E6E ; G 1528 +U 7791 ; WX 402 ; N uni1E6F ; G 1529 +U 7792 ; WX 667 ; N uni1E70 ; G 1530 +U 7793 ; WX 402 ; N uni1E71 ; G 1531 +U 7794 ; WX 843 ; N uni1E72 ; G 1532 +U 7795 ; WX 644 ; N uni1E73 ; G 1533 +U 7796 ; WX 843 ; N uni1E74 ; G 1534 +U 7797 ; WX 644 ; N uni1E75 ; G 1535 +U 7798 ; WX 843 ; N uni1E76 ; G 1536 +U 7799 ; WX 644 ; N uni1E77 ; G 1537 +U 7800 ; WX 843 ; N uni1E78 ; G 1538 +U 7801 ; WX 644 ; N uni1E79 ; G 1539 +U 7802 ; WX 843 ; N uni1E7A ; G 1540 +U 7803 ; WX 644 ; N uni1E7B ; G 1541 +U 7804 ; WX 722 ; N uni1E7C ; G 1542 +U 7805 ; WX 565 ; N uni1E7D ; G 1543 +U 7806 ; WX 722 ; N uni1E7E ; G 1544 +U 7807 ; WX 565 ; N uni1E7F ; G 1545 +U 7808 ; WX 1028 ; N Wgrave ; G 1546 +U 7809 ; WX 856 ; N wgrave ; G 1547 +U 7810 ; WX 1028 ; N Wacute ; G 1548 +U 7811 ; WX 856 ; N wacute ; G 1549 +U 7812 ; WX 1028 ; N Wdieresis ; G 1550 +U 7813 ; WX 856 ; N wdieresis ; G 1551 +U 7814 ; WX 1028 ; N uni1E86 ; G 1552 +U 7815 ; WX 856 ; N uni1E87 ; G 1553 +U 7816 ; WX 1028 ; N uni1E88 ; G 1554 +U 7817 ; WX 856 ; N uni1E89 ; G 1555 +U 7818 ; WX 712 ; N uni1E8A ; G 1556 +U 7819 ; WX 564 ; N uni1E8B ; G 1557 +U 7820 ; WX 712 ; N uni1E8C ; G 1558 +U 7821 ; WX 564 ; N uni1E8D ; G 1559 +U 7822 ; WX 660 ; N uni1E8E ; G 1560 +U 7823 ; WX 565 ; N uni1E8F ; G 1561 +U 7824 ; WX 695 ; N uni1E90 ; G 1562 +U 7825 ; WX 527 ; N uni1E91 ; G 1563 +U 7826 ; WX 695 ; N uni1E92 ; G 1564 +U 7827 ; WX 527 ; N uni1E93 ; G 1565 +U 7828 ; WX 695 ; N uni1E94 ; G 1566 +U 7829 ; WX 527 ; N uni1E95 ; G 1567 +U 7830 ; WX 644 ; N uni1E96 ; G 1568 +U 7831 ; WX 402 ; N uni1E97 ; G 1569 +U 7832 ; WX 856 ; N uni1E98 ; G 1570 +U 7833 ; WX 565 ; N uni1E99 ; G 1571 +U 7834 ; WX 903 ; N uni1E9A ; G 1572 +U 7835 ; WX 370 ; N uni1E9B ; G 1573 +U 7836 ; WX 370 ; N uni1E9C ; G 1574 +U 7837 ; WX 370 ; N uni1E9D ; G 1575 +U 7838 ; WX 829 ; N uni1E9E ; G 1576 +U 7839 ; WX 602 ; N uni1E9F ; G 1577 +U 7840 ; WX 722 ; N uni1EA0 ; G 1578 +U 7841 ; WX 596 ; N uni1EA1 ; G 1579 +U 7842 ; WX 722 ; N uni1EA2 ; G 1580 +U 7843 ; WX 596 ; N uni1EA3 ; G 1581 +U 7844 ; WX 722 ; N uni1EA4 ; G 1582 +U 7845 ; WX 613 ; N uni1EA5 ; G 1583 +U 7846 ; WX 722 ; N uni1EA6 ; G 1584 +U 7847 ; WX 613 ; N uni1EA7 ; G 1585 +U 7848 ; WX 722 ; N uni1EA8 ; G 1586 +U 7849 ; WX 613 ; N uni1EA9 ; G 1587 +U 7850 ; WX 722 ; N uni1EAA ; G 1588 +U 7851 ; WX 613 ; N uni1EAB ; G 1589 +U 7852 ; WX 722 ; N uni1EAC ; G 1590 +U 7853 ; WX 596 ; N uni1EAD ; G 1591 +U 7854 ; WX 722 ; N uni1EAE ; G 1592 +U 7855 ; WX 596 ; N uni1EAF ; G 1593 +U 7856 ; WX 722 ; N uni1EB0 ; G 1594 +U 7857 ; WX 596 ; N uni1EB1 ; G 1595 +U 7858 ; WX 722 ; N uni1EB2 ; G 1596 +U 7859 ; WX 596 ; N uni1EB3 ; G 1597 +U 7860 ; WX 722 ; N uni1EB4 ; G 1598 +U 7861 ; WX 596 ; N uni1EB5 ; G 1599 +U 7862 ; WX 722 ; N uni1EB6 ; G 1600 +U 7863 ; WX 596 ; N uni1EB7 ; G 1601 +U 7864 ; WX 730 ; N uni1EB8 ; G 1602 +U 7865 ; WX 592 ; N uni1EB9 ; G 1603 +U 7866 ; WX 730 ; N uni1EBA ; G 1604 +U 7867 ; WX 592 ; N uni1EBB ; G 1605 +U 7868 ; WX 730 ; N uni1EBC ; G 1606 +U 7869 ; WX 592 ; N uni1EBD ; G 1607 +U 7870 ; WX 730 ; N uni1ebe ; G 1608 +U 7871 ; WX 615 ; N uni1ebF ; G 1609 +U 7872 ; WX 730 ; N uni1EC0 ; G 1610 +U 7873 ; WX 615 ; N uni1EC1 ; G 1611 +U 7874 ; WX 730 ; N uni1EC2 ; G 1612 +U 7875 ; WX 615 ; N uni1EC3 ; G 1613 +U 7876 ; WX 730 ; N uni1EC4 ; G 1614 +U 7877 ; WX 615 ; N uni1EC5 ; G 1615 +U 7878 ; WX 730 ; N uni1EC6 ; G 1616 +U 7879 ; WX 592 ; N uni1EC7 ; G 1617 +U 7880 ; WX 395 ; N uni1EC8 ; G 1618 +U 7881 ; WX 320 ; N uni1EC9 ; G 1619 +U 7882 ; WX 395 ; N uni1ECA ; G 1620 +U 7883 ; WX 320 ; N uni1ECB ; G 1621 +U 7884 ; WX 820 ; N uni1ECC ; G 1622 +U 7885 ; WX 602 ; N uni1ECD ; G 1623 +U 7886 ; WX 820 ; N uni1ECE ; G 1624 +U 7887 ; WX 602 ; N uni1ECF ; G 1625 +U 7888 ; WX 820 ; N uni1ED0 ; G 1626 +U 7889 ; WX 612 ; N uni1ED1 ; G 1627 +U 7890 ; WX 820 ; N uni1ED2 ; G 1628 +U 7891 ; WX 612 ; N uni1ED3 ; G 1629 +U 7892 ; WX 820 ; N uni1ED4 ; G 1630 +U 7893 ; WX 612 ; N uni1ED5 ; G 1631 +U 7894 ; WX 820 ; N uni1ED6 ; G 1632 +U 7895 ; WX 612 ; N uni1ED7 ; G 1633 +U 7896 ; WX 820 ; N uni1ED8 ; G 1634 +U 7897 ; WX 602 ; N uni1ED9 ; G 1635 +U 7898 ; WX 820 ; N uni1EDA ; G 1636 +U 7899 ; WX 602 ; N uni1EDB ; G 1637 +U 7900 ; WX 820 ; N uni1EDC ; G 1638 +U 7901 ; WX 602 ; N uni1EDD ; G 1639 +U 7902 ; WX 820 ; N uni1EDE ; G 1640 +U 7903 ; WX 602 ; N uni1EDF ; G 1641 +U 7904 ; WX 820 ; N uni1EE0 ; G 1642 +U 7905 ; WX 602 ; N uni1EE1 ; G 1643 +U 7906 ; WX 820 ; N uni1EE2 ; G 1644 +U 7907 ; WX 602 ; N uni1EE3 ; G 1645 +U 7908 ; WX 843 ; N uni1EE4 ; G 1646 +U 7909 ; WX 644 ; N uni1EE5 ; G 1647 +U 7910 ; WX 843 ; N uni1EE6 ; G 1648 +U 7911 ; WX 644 ; N uni1EE7 ; G 1649 +U 7912 ; WX 843 ; N uni1EE8 ; G 1650 +U 7913 ; WX 644 ; N uni1EE9 ; G 1651 +U 7914 ; WX 843 ; N uni1EEA ; G 1652 +U 7915 ; WX 644 ; N uni1EEB ; G 1653 +U 7916 ; WX 843 ; N uni1EEC ; G 1654 +U 7917 ; WX 644 ; N uni1EED ; G 1655 +U 7918 ; WX 843 ; N uni1EEE ; G 1656 +U 7919 ; WX 644 ; N uni1EEF ; G 1657 +U 7920 ; WX 843 ; N uni1EF0 ; G 1658 +U 7921 ; WX 644 ; N uni1EF1 ; G 1659 +U 7922 ; WX 660 ; N Ygrave ; G 1660 +U 7923 ; WX 565 ; N ygrave ; G 1661 +U 7924 ; WX 660 ; N uni1EF4 ; G 1662 +U 7925 ; WX 565 ; N uni1EF5 ; G 1663 +U 7926 ; WX 660 ; N uni1EF6 ; G 1664 +U 7927 ; WX 565 ; N uni1EF7 ; G 1665 +U 7928 ; WX 660 ; N uni1EF8 ; G 1666 +U 7929 ; WX 565 ; N uni1EF9 ; G 1667 +U 7930 ; WX 949 ; N uni1EFA ; G 1668 +U 7931 ; WX 581 ; N uni1EFB ; G 1669 +U 7936 ; WX 675 ; N uni1F00 ; G 1670 +U 7937 ; WX 675 ; N uni1F01 ; G 1671 +U 7938 ; WX 675 ; N uni1F02 ; G 1672 +U 7939 ; WX 675 ; N uni1F03 ; G 1673 +U 7940 ; WX 675 ; N uni1F04 ; G 1674 +U 7941 ; WX 675 ; N uni1F05 ; G 1675 +U 7942 ; WX 675 ; N uni1F06 ; G 1676 +U 7943 ; WX 675 ; N uni1F07 ; G 1677 +U 7944 ; WX 722 ; N uni1F08 ; G 1678 +U 7945 ; WX 722 ; N uni1F09 ; G 1679 +U 7946 ; WX 869 ; N uni1F0A ; G 1680 +U 7947 ; WX 869 ; N uni1F0B ; G 1681 +U 7948 ; WX 734 ; N uni1F0C ; G 1682 +U 7949 ; WX 763 ; N uni1F0D ; G 1683 +U 7950 ; WX 722 ; N uni1F0E ; G 1684 +U 7951 ; WX 722 ; N uni1F0F ; G 1685 +U 7952 ; WX 537 ; N uni1F10 ; G 1686 +U 7953 ; WX 537 ; N uni1F11 ; G 1687 +U 7954 ; WX 537 ; N uni1F12 ; G 1688 +U 7955 ; WX 537 ; N uni1F13 ; G 1689 +U 7956 ; WX 537 ; N uni1F14 ; G 1690 +U 7957 ; WX 537 ; N uni1F15 ; G 1691 +U 7960 ; WX 853 ; N uni1F18 ; G 1692 +U 7961 ; WX 841 ; N uni1F19 ; G 1693 +U 7962 ; WX 1067 ; N uni1F1A ; G 1694 +U 7963 ; WX 1077 ; N uni1F1B ; G 1695 +U 7964 ; WX 1008 ; N uni1F1C ; G 1696 +U 7965 ; WX 1035 ; N uni1F1D ; G 1697 +U 7968 ; WX 599 ; N uni1F20 ; G 1698 +U 7969 ; WX 599 ; N uni1F21 ; G 1699 +U 7970 ; WX 599 ; N uni1F22 ; G 1700 +U 7971 ; WX 599 ; N uni1F23 ; G 1701 +U 7972 ; WX 599 ; N uni1F24 ; G 1702 +U 7973 ; WX 599 ; N uni1F25 ; G 1703 +U 7974 ; WX 599 ; N uni1F26 ; G 1704 +U 7975 ; WX 599 ; N uni1F27 ; G 1705 +U 7976 ; WX 998 ; N uni1F28 ; G 1706 +U 7977 ; WX 992 ; N uni1F29 ; G 1707 +U 7978 ; WX 1212 ; N uni1F2A ; G 1708 +U 7979 ; WX 1224 ; N uni1F2B ; G 1709 +U 7980 ; WX 1159 ; N uni1F2C ; G 1710 +U 7981 ; WX 1183 ; N uni1F2D ; G 1711 +U 7982 ; WX 1098 ; N uni1F2E ; G 1712 +U 7983 ; WX 1095 ; N uni1F2F ; G 1713 +U 7984 ; WX 392 ; N uni1F30 ; G 1714 +U 7985 ; WX 392 ; N uni1F31 ; G 1715 +U 7986 ; WX 392 ; N uni1F32 ; G 1716 +U 7987 ; WX 392 ; N uni1F33 ; G 1717 +U 7988 ; WX 392 ; N uni1F34 ; G 1718 +U 7989 ; WX 392 ; N uni1F35 ; G 1719 +U 7990 ; WX 392 ; N uni1F36 ; G 1720 +U 7991 ; WX 392 ; N uni1F37 ; G 1721 +U 7992 ; WX 521 ; N uni1F38 ; G 1722 +U 7993 ; WX 512 ; N uni1F39 ; G 1723 +U 7994 ; WX 735 ; N uni1F3A ; G 1724 +U 7995 ; WX 738 ; N uni1F3B ; G 1725 +U 7996 ; WX 679 ; N uni1F3C ; G 1726 +U 7997 ; WX 706 ; N uni1F3D ; G 1727 +U 7998 ; WX 624 ; N uni1F3E ; G 1728 +U 7999 ; WX 615 ; N uni1F3F ; G 1729 +U 8000 ; WX 602 ; N uni1F40 ; G 1730 +U 8001 ; WX 602 ; N uni1F41 ; G 1731 +U 8002 ; WX 602 ; N uni1F42 ; G 1732 +U 8003 ; WX 602 ; N uni1F43 ; G 1733 +U 8004 ; WX 602 ; N uni1F44 ; G 1734 +U 8005 ; WX 602 ; N uni1F45 ; G 1735 +U 8008 ; WX 820 ; N uni1F48 ; G 1736 +U 8009 ; WX 859 ; N uni1F49 ; G 1737 +U 8010 ; WX 1120 ; N uni1F4A ; G 1738 +U 8011 ; WX 1127 ; N uni1F4B ; G 1739 +U 8012 ; WX 937 ; N uni1F4C ; G 1740 +U 8013 ; WX 964 ; N uni1F4D ; G 1741 +U 8016 ; WX 608 ; N uni1F50 ; G 1742 +U 8017 ; WX 608 ; N uni1F51 ; G 1743 +U 8018 ; WX 608 ; N uni1F52 ; G 1744 +U 8019 ; WX 608 ; N uni1F53 ; G 1745 +U 8020 ; WX 608 ; N uni1F54 ; G 1746 +U 8021 ; WX 608 ; N uni1F55 ; G 1747 +U 8022 ; WX 608 ; N uni1F56 ; G 1748 +U 8023 ; WX 608 ; N uni1F57 ; G 1749 +U 8025 ; WX 851 ; N uni1F59 ; G 1750 +U 8027 ; WX 1079 ; N uni1F5B ; G 1751 +U 8029 ; WX 1044 ; N uni1F5D ; G 1752 +U 8031 ; WX 953 ; N uni1F5F ; G 1753 +U 8032 ; WX 815 ; N uni1F60 ; G 1754 +U 8033 ; WX 815 ; N uni1F61 ; G 1755 +U 8034 ; WX 815 ; N uni1F62 ; G 1756 +U 8035 ; WX 815 ; N uni1F63 ; G 1757 +U 8036 ; WX 815 ; N uni1F64 ; G 1758 +U 8037 ; WX 815 ; N uni1F65 ; G 1759 +U 8038 ; WX 815 ; N uni1F66 ; G 1760 +U 8039 ; WX 815 ; N uni1F67 ; G 1761 +U 8040 ; WX 829 ; N uni1F68 ; G 1762 +U 8041 ; WX 870 ; N uni1F69 ; G 1763 +U 8042 ; WX 1131 ; N uni1F6A ; G 1764 +U 8043 ; WX 1137 ; N uni1F6B ; G 1765 +U 8044 ; WX 946 ; N uni1F6C ; G 1766 +U 8045 ; WX 976 ; N uni1F6D ; G 1767 +U 8046 ; WX 938 ; N uni1F6E ; G 1768 +U 8047 ; WX 970 ; N uni1F6F ; G 1769 +U 8048 ; WX 675 ; N uni1F70 ; G 1770 +U 8049 ; WX 675 ; N uni1F71 ; G 1771 +U 8050 ; WX 537 ; N uni1F72 ; G 1772 +U 8051 ; WX 537 ; N uni1F73 ; G 1773 +U 8052 ; WX 599 ; N uni1F74 ; G 1774 +U 8053 ; WX 599 ; N uni1F75 ; G 1775 +U 8054 ; WX 392 ; N uni1F76 ; G 1776 +U 8055 ; WX 392 ; N uni1F77 ; G 1777 +U 8056 ; WX 602 ; N uni1F78 ; G 1778 +U 8057 ; WX 602 ; N uni1F79 ; G 1779 +U 8058 ; WX 608 ; N uni1F7A ; G 1780 +U 8059 ; WX 608 ; N uni1F7B ; G 1781 +U 8060 ; WX 815 ; N uni1F7C ; G 1782 +U 8061 ; WX 815 ; N uni1F7D ; G 1783 +U 8064 ; WX 675 ; N uni1F80 ; G 1784 +U 8065 ; WX 675 ; N uni1F81 ; G 1785 +U 8066 ; WX 675 ; N uni1F82 ; G 1786 +U 8067 ; WX 675 ; N uni1F83 ; G 1787 +U 8068 ; WX 675 ; N uni1F84 ; G 1788 +U 8069 ; WX 675 ; N uni1F85 ; G 1789 +U 8070 ; WX 675 ; N uni1F86 ; G 1790 +U 8071 ; WX 675 ; N uni1F87 ; G 1791 +U 8072 ; WX 722 ; N uni1F88 ; G 1792 +U 8073 ; WX 722 ; N uni1F89 ; G 1793 +U 8074 ; WX 869 ; N uni1F8A ; G 1794 +U 8075 ; WX 869 ; N uni1F8B ; G 1795 +U 8076 ; WX 734 ; N uni1F8C ; G 1796 +U 8077 ; WX 763 ; N uni1F8D ; G 1797 +U 8078 ; WX 722 ; N uni1F8E ; G 1798 +U 8079 ; WX 722 ; N uni1F8F ; G 1799 +U 8080 ; WX 599 ; N uni1F90 ; G 1800 +U 8081 ; WX 599 ; N uni1F91 ; G 1801 +U 8082 ; WX 599 ; N uni1F92 ; G 1802 +U 8083 ; WX 599 ; N uni1F93 ; G 1803 +U 8084 ; WX 599 ; N uni1F94 ; G 1804 +U 8085 ; WX 599 ; N uni1F95 ; G 1805 +U 8086 ; WX 599 ; N uni1F96 ; G 1806 +U 8087 ; WX 599 ; N uni1F97 ; G 1807 +U 8088 ; WX 998 ; N uni1F98 ; G 1808 +U 8089 ; WX 992 ; N uni1F99 ; G 1809 +U 8090 ; WX 1212 ; N uni1F9A ; G 1810 +U 8091 ; WX 1224 ; N uni1F9B ; G 1811 +U 8092 ; WX 1159 ; N uni1F9C ; G 1812 +U 8093 ; WX 1183 ; N uni1F9D ; G 1813 +U 8094 ; WX 1098 ; N uni1F9E ; G 1814 +U 8095 ; WX 1095 ; N uni1F9F ; G 1815 +U 8096 ; WX 815 ; N uni1FA0 ; G 1816 +U 8097 ; WX 815 ; N uni1FA1 ; G 1817 +U 8098 ; WX 815 ; N uni1FA2 ; G 1818 +U 8099 ; WX 815 ; N uni1FA3 ; G 1819 +U 8100 ; WX 815 ; N uni1FA4 ; G 1820 +U 8101 ; WX 815 ; N uni1FA5 ; G 1821 +U 8102 ; WX 815 ; N uni1FA6 ; G 1822 +U 8103 ; WX 815 ; N uni1FA7 ; G 1823 +U 8104 ; WX 829 ; N uni1FA8 ; G 1824 +U 8105 ; WX 870 ; N uni1FA9 ; G 1825 +U 8106 ; WX 1131 ; N uni1FAA ; G 1826 +U 8107 ; WX 1137 ; N uni1FAB ; G 1827 +U 8108 ; WX 946 ; N uni1FAC ; G 1828 +U 8109 ; WX 976 ; N uni1FAD ; G 1829 +U 8110 ; WX 938 ; N uni1FAE ; G 1830 +U 8111 ; WX 970 ; N uni1FAF ; G 1831 +U 8112 ; WX 675 ; N uni1FB0 ; G 1832 +U 8113 ; WX 675 ; N uni1FB1 ; G 1833 +U 8114 ; WX 675 ; N uni1FB2 ; G 1834 +U 8115 ; WX 675 ; N uni1FB3 ; G 1835 +U 8116 ; WX 675 ; N uni1FB4 ; G 1836 +U 8118 ; WX 675 ; N uni1FB6 ; G 1837 +U 8119 ; WX 675 ; N uni1FB7 ; G 1838 +U 8120 ; WX 722 ; N uni1FB8 ; G 1839 +U 8121 ; WX 722 ; N uni1FB9 ; G 1840 +U 8122 ; WX 722 ; N uni1FBA ; G 1841 +U 8123 ; WX 722 ; N uni1FBB ; G 1842 +U 8124 ; WX 722 ; N uni1FBC ; G 1843 +U 8125 ; WX 500 ; N uni1FBD ; G 1844 +U 8126 ; WX 500 ; N uni1FBE ; G 1845 +U 8127 ; WX 500 ; N uni1FBF ; G 1846 +U 8128 ; WX 500 ; N uni1FC0 ; G 1847 +U 8129 ; WX 500 ; N uni1FC1 ; G 1848 +U 8130 ; WX 599 ; N uni1FC2 ; G 1849 +U 8131 ; WX 599 ; N uni1FC3 ; G 1850 +U 8132 ; WX 599 ; N uni1FC4 ; G 1851 +U 8134 ; WX 599 ; N uni1FC6 ; G 1852 +U 8135 ; WX 599 ; N uni1FC7 ; G 1853 +U 8136 ; WX 912 ; N uni1FC8 ; G 1854 +U 8137 ; WX 900 ; N uni1FC9 ; G 1855 +U 8138 ; WX 1063 ; N uni1FCA ; G 1856 +U 8139 ; WX 1039 ; N uni1FCB ; G 1857 +U 8140 ; WX 872 ; N uni1FCC ; G 1858 +U 8141 ; WX 500 ; N uni1FCD ; G 1859 +U 8142 ; WX 500 ; N uni1FCE ; G 1860 +U 8143 ; WX 500 ; N uni1FCF ; G 1861 +U 8144 ; WX 392 ; N uni1FD0 ; G 1862 +U 8145 ; WX 392 ; N uni1FD1 ; G 1863 +U 8146 ; WX 392 ; N uni1FD2 ; G 1864 +U 8147 ; WX 392 ; N uni1FD3 ; G 1865 +U 8150 ; WX 392 ; N uni1FD6 ; G 1866 +U 8151 ; WX 392 ; N uni1FD7 ; G 1867 +U 8152 ; WX 395 ; N uni1FD8 ; G 1868 +U 8153 ; WX 395 ; N uni1FD9 ; G 1869 +U 8154 ; WX 588 ; N uni1FDA ; G 1870 +U 8155 ; WX 562 ; N uni1FDB ; G 1871 +U 8157 ; WX 500 ; N uni1FDD ; G 1872 +U 8158 ; WX 500 ; N uni1FDE ; G 1873 +U 8159 ; WX 500 ; N uni1FDF ; G 1874 +U 8160 ; WX 608 ; N uni1FE0 ; G 1875 +U 8161 ; WX 608 ; N uni1FE1 ; G 1876 +U 8162 ; WX 608 ; N uni1FE2 ; G 1877 +U 8163 ; WX 608 ; N uni1FE3 ; G 1878 +U 8164 ; WX 588 ; N uni1FE4 ; G 1879 +U 8165 ; WX 588 ; N uni1FE5 ; G 1880 +U 8166 ; WX 608 ; N uni1FE6 ; G 1881 +U 8167 ; WX 608 ; N uni1FE7 ; G 1882 +U 8168 ; WX 660 ; N uni1FE8 ; G 1883 +U 8169 ; WX 660 ; N uni1FE9 ; G 1884 +U 8170 ; WX 921 ; N uni1FEA ; G 1885 +U 8171 ; WX 897 ; N uni1FEB ; G 1886 +U 8172 ; WX 790 ; N uni1FEC ; G 1887 +U 8173 ; WX 500 ; N uni1FED ; G 1888 +U 8174 ; WX 500 ; N uni1FEE ; G 1889 +U 8175 ; WX 500 ; N uni1FEF ; G 1890 +U 8178 ; WX 815 ; N uni1FF2 ; G 1891 +U 8179 ; WX 815 ; N uni1FF3 ; G 1892 +U 8180 ; WX 815 ; N uni1FF4 ; G 1893 +U 8182 ; WX 815 ; N uni1FF6 ; G 1894 +U 8183 ; WX 815 ; N uni1FF7 ; G 1895 +U 8184 ; WX 961 ; N uni1FF8 ; G 1896 +U 8185 ; WX 835 ; N uni1FF9 ; G 1897 +U 8186 ; WX 984 ; N uni1FFA ; G 1898 +U 8187 ; WX 853 ; N uni1FFB ; G 1899 +U 8188 ; WX 829 ; N uni1FFC ; G 1900 +U 8189 ; WX 500 ; N uni1FFD ; G 1901 +U 8190 ; WX 500 ; N uni1FFE ; G 1902 +U 8192 ; WX 500 ; N uni2000 ; G 1903 +U 8193 ; WX 1000 ; N uni2001 ; G 1904 +U 8194 ; WX 500 ; N uni2002 ; G 1905 +U 8195 ; WX 1000 ; N uni2003 ; G 1906 +U 8196 ; WX 330 ; N uni2004 ; G 1907 +U 8197 ; WX 250 ; N uni2005 ; G 1908 +U 8198 ; WX 167 ; N uni2006 ; G 1909 +U 8199 ; WX 636 ; N uni2007 ; G 1910 +U 8200 ; WX 318 ; N uni2008 ; G 1911 +U 8201 ; WX 200 ; N uni2009 ; G 1912 +U 8202 ; WX 100 ; N uni200A ; G 1913 +U 8203 ; WX 0 ; N uni200B ; G 1914 +U 8204 ; WX 0 ; N uni200C ; G 1915 +U 8205 ; WX 0 ; N uni200D ; G 1916 +U 8206 ; WX 0 ; N uni200E ; G 1917 +U 8207 ; WX 0 ; N uni200F ; G 1918 +U 8208 ; WX 338 ; N uni2010 ; G 1919 +U 8209 ; WX 338 ; N uni2011 ; G 1920 +U 8210 ; WX 636 ; N figuredash ; G 1921 +U 8211 ; WX 500 ; N endash ; G 1922 +U 8212 ; WX 1000 ; N emdash ; G 1923 +U 8213 ; WX 1000 ; N uni2015 ; G 1924 +U 8214 ; WX 500 ; N uni2016 ; G 1925 +U 8215 ; WX 500 ; N underscoredbl ; G 1926 +U 8216 ; WX 318 ; N quoteleft ; G 1927 +U 8217 ; WX 318 ; N quoteright ; G 1928 +U 8218 ; WX 318 ; N quotesinglbase ; G 1929 +U 8219 ; WX 318 ; N quotereversed ; G 1930 +U 8220 ; WX 511 ; N quotedblleft ; G 1931 +U 8221 ; WX 511 ; N quotedblright ; G 1932 +U 8222 ; WX 518 ; N quotedblbase ; G 1933 +U 8223 ; WX 511 ; N uni201F ; G 1934 +U 8224 ; WX 500 ; N dagger ; G 1935 +U 8225 ; WX 500 ; N daggerdbl ; G 1936 +U 8226 ; WX 590 ; N bullet ; G 1937 +U 8227 ; WX 590 ; N uni2023 ; G 1938 +U 8228 ; WX 334 ; N onedotenleader ; G 1939 +U 8229 ; WX 667 ; N twodotenleader ; G 1940 +U 8230 ; WX 1000 ; N ellipsis ; G 1941 +U 8234 ; WX 0 ; N uni202A ; G 1942 +U 8235 ; WX 0 ; N uni202B ; G 1943 +U 8236 ; WX 0 ; N uni202C ; G 1944 +U 8237 ; WX 0 ; N uni202D ; G 1945 +U 8238 ; WX 0 ; N uni202E ; G 1946 +U 8239 ; WX 200 ; N uni202F ; G 1947 +U 8240 ; WX 1342 ; N perthousand ; G 1948 +U 8241 ; WX 1734 ; N uni2031 ; G 1949 +U 8242 ; WX 227 ; N minute ; G 1950 +U 8243 ; WX 374 ; N second ; G 1951 +U 8244 ; WX 520 ; N uni2034 ; G 1952 +U 8245 ; WX 227 ; N uni2035 ; G 1953 +U 8246 ; WX 374 ; N uni2036 ; G 1954 +U 8247 ; WX 520 ; N uni2037 ; G 1955 +U 8248 ; WX 339 ; N uni2038 ; G 1956 +U 8249 ; WX 400 ; N guilsinglleft ; G 1957 +U 8250 ; WX 400 ; N guilsinglright ; G 1958 +U 8252 ; WX 527 ; N exclamdbl ; G 1959 +U 8253 ; WX 536 ; N uni203D ; G 1960 +U 8254 ; WX 500 ; N uni203E ; G 1961 +U 8258 ; WX 1000 ; N uni2042 ; G 1962 +U 8260 ; WX 167 ; N fraction ; G 1963 +U 8261 ; WX 390 ; N uni2045 ; G 1964 +U 8262 ; WX 390 ; N uni2046 ; G 1965 +U 8263 ; WX 976 ; N uni2047 ; G 1966 +U 8264 ; WX 753 ; N uni2048 ; G 1967 +U 8265 ; WX 753 ; N uni2049 ; G 1968 +U 8267 ; WX 636 ; N uni204B ; G 1969 +U 8268 ; WX 500 ; N uni204C ; G 1970 +U 8269 ; WX 500 ; N uni204D ; G 1971 +U 8270 ; WX 500 ; N uni204E ; G 1972 +U 8271 ; WX 337 ; N uni204F ; G 1973 +U 8273 ; WX 500 ; N uni2051 ; G 1974 +U 8274 ; WX 450 ; N uni2052 ; G 1975 +U 8275 ; WX 1000 ; N uni2053 ; G 1976 +U 8279 ; WX 663 ; N uni2057 ; G 1977 +U 8287 ; WX 222 ; N uni205F ; G 1978 +U 8288 ; WX 0 ; N uni2060 ; G 1979 +U 8289 ; WX 0 ; N uni2061 ; G 1980 +U 8290 ; WX 0 ; N uni2062 ; G 1981 +U 8291 ; WX 0 ; N uni2063 ; G 1982 +U 8292 ; WX 0 ; N uni2064 ; G 1983 +U 8298 ; WX 0 ; N uni206A ; G 1984 +U 8299 ; WX 0 ; N uni206B ; G 1985 +U 8300 ; WX 0 ; N uni206C ; G 1986 +U 8301 ; WX 0 ; N uni206D ; G 1987 +U 8302 ; WX 0 ; N uni206E ; G 1988 +U 8303 ; WX 0 ; N uni206F ; G 1989 +U 8304 ; WX 401 ; N uni2070 ; G 1990 +U 8305 ; WX 201 ; N uni2071 ; G 1991 +U 8308 ; WX 401 ; N uni2074 ; G 1992 +U 8309 ; WX 401 ; N uni2075 ; G 1993 +U 8310 ; WX 401 ; N uni2076 ; G 1994 +U 8311 ; WX 401 ; N uni2077 ; G 1995 +U 8312 ; WX 401 ; N uni2078 ; G 1996 +U 8313 ; WX 401 ; N uni2079 ; G 1997 +U 8314 ; WX 528 ; N uni207A ; G 1998 +U 8315 ; WX 528 ; N uni207B ; G 1999 +U 8316 ; WX 528 ; N uni207C ; G 2000 +U 8317 ; WX 246 ; N uni207D ; G 2001 +U 8318 ; WX 246 ; N uni207E ; G 2002 +U 8319 ; WX 433 ; N uni207F ; G 2003 +U 8320 ; WX 401 ; N uni2080 ; G 2004 +U 8321 ; WX 401 ; N uni2081 ; G 2005 +U 8322 ; WX 401 ; N uni2082 ; G 2006 +U 8323 ; WX 401 ; N uni2083 ; G 2007 +U 8324 ; WX 401 ; N uni2084 ; G 2008 +U 8325 ; WX 401 ; N uni2085 ; G 2009 +U 8326 ; WX 401 ; N uni2086 ; G 2010 +U 8327 ; WX 401 ; N uni2087 ; G 2011 +U 8328 ; WX 401 ; N uni2088 ; G 2012 +U 8329 ; WX 401 ; N uni2089 ; G 2013 +U 8330 ; WX 528 ; N uni208A ; G 2014 +U 8331 ; WX 528 ; N uni208B ; G 2015 +U 8332 ; WX 528 ; N uni208C ; G 2016 +U 8333 ; WX 246 ; N uni208D ; G 2017 +U 8334 ; WX 246 ; N uni208E ; G 2018 +U 8336 ; WX 386 ; N uni2090 ; G 2019 +U 8337 ; WX 387 ; N uni2091 ; G 2020 +U 8338 ; WX 385 ; N uni2092 ; G 2021 +U 8339 ; WX 424 ; N uni2093 ; G 2022 +U 8340 ; WX 387 ; N uni2094 ; G 2023 +U 8341 ; WX 433 ; N uni2095 ; G 2024 +U 8342 ; WX 365 ; N uni2096 ; G 2025 +U 8343 ; WX 243 ; N uni2097 ; G 2026 +U 8344 ; WX 613 ; N uni2098 ; G 2027 +U 8345 ; WX 433 ; N uni2099 ; G 2028 +U 8346 ; WX 400 ; N uni209A ; G 2029 +U 8347 ; WX 337 ; N uni209B ; G 2030 +U 8348 ; WX 247 ; N uni209C ; G 2031 +U 8358 ; WX 636 ; N uni20A6 ; G 2032 +U 8364 ; WX 636 ; N Euro ; G 2033 +U 8367 ; WX 1057 ; N uni20AF ; G 2034 +U 8369 ; WX 706 ; N uni20B1 ; G 2035 +U 8372 ; WX 780 ; N uni20B4 ; G 2036 +U 8373 ; WX 636 ; N uni20B5 ; G 2037 +U 8376 ; WX 636 ; N uni20B8 ; G 2038 +U 8377 ; WX 636 ; N uni20B9 ; G 2039 +U 8378 ; WX 636 ; N uni20BA ; G 2040 +U 8381 ; WX 636 ; N uni20BD ; G 2041 +U 8450 ; WX 796 ; N uni2102 ; G 2042 +U 8451 ; WX 1119 ; N uni2103 ; G 2043 +U 8457 ; WX 1047 ; N uni2109 ; G 2044 +U 8461 ; WX 945 ; N uni210D ; G 2045 +U 8462 ; WX 644 ; N uni210E ; G 2046 +U 8463 ; WX 644 ; N uni210F ; G 2047 +U 8469 ; WX 914 ; N uni2115 ; G 2048 +U 8470 ; WX 946 ; N uni2116 ; G 2049 +U 8473 ; WX 752 ; N uni2119 ; G 2050 +U 8474 ; WX 871 ; N uni211A ; G 2051 +U 8477 ; WX 831 ; N uni211D ; G 2052 +U 8482 ; WX 1000 ; N trademark ; G 2053 +U 8484 ; WX 730 ; N uni2124 ; G 2054 +U 8486 ; WX 829 ; N uni2126 ; G 2055 +U 8487 ; WX 829 ; N uni2127 ; G 2056 +U 8490 ; WX 747 ; N uni212A ; G 2057 +U 8491 ; WX 722 ; N uni212B ; G 2058 +U 8498 ; WX 694 ; N uni2132 ; G 2059 +U 8508 ; WX 732 ; N uni213C ; G 2060 +U 8509 ; WX 660 ; N uni213D ; G 2061 +U 8510 ; WX 710 ; N uni213E ; G 2062 +U 8511 ; WX 944 ; N uni213F ; G 2063 +U 8512 ; WX 714 ; N uni2140 ; G 2064 +U 8513 ; WX 775 ; N uni2141 ; G 2065 +U 8514 ; WX 557 ; N uni2142 ; G 2066 +U 8515 ; WX 557 ; N uni2143 ; G 2067 +U 8516 ; WX 611 ; N uni2144 ; G 2068 +U 8517 ; WX 867 ; N uni2145 ; G 2069 +U 8518 ; WX 699 ; N uni2146 ; G 2070 +U 8519 ; WX 636 ; N uni2147 ; G 2071 +U 8520 ; WX 380 ; N uni2148 ; G 2072 +U 8521 ; WX 362 ; N uni2149 ; G 2073 +U 8523 ; WX 890 ; N uni214B ; G 2074 +U 8526 ; WX 514 ; N uni214E ; G 2075 +U 8528 ; WX 969 ; N uni2150 ; G 2076 +U 8529 ; WX 969 ; N uni2151 ; G 2077 +U 8530 ; WX 1370 ; N uni2152 ; G 2078 +U 8531 ; WX 969 ; N onethird ; G 2079 +U 8532 ; WX 969 ; N twothirds ; G 2080 +U 8533 ; WX 969 ; N uni2155 ; G 2081 +U 8534 ; WX 969 ; N uni2156 ; G 2082 +U 8535 ; WX 969 ; N uni2157 ; G 2083 +U 8536 ; WX 969 ; N uni2158 ; G 2084 +U 8537 ; WX 969 ; N uni2159 ; G 2085 +U 8538 ; WX 969 ; N uni215A ; G 2086 +U 8539 ; WX 969 ; N oneeighth ; G 2087 +U 8540 ; WX 969 ; N threeeighths ; G 2088 +U 8541 ; WX 969 ; N fiveeighths ; G 2089 +U 8542 ; WX 969 ; N seveneighths ; G 2090 +U 8543 ; WX 568 ; N uni215F ; G 2091 +U 8544 ; WX 395 ; N uni2160 ; G 2092 +U 8545 ; WX 680 ; N uni2161 ; G 2093 +U 8546 ; WX 964 ; N uni2162 ; G 2094 +U 8547 ; WX 999 ; N uni2163 ; G 2095 +U 8548 ; WX 722 ; N uni2164 ; G 2096 +U 8549 ; WX 1006 ; N uni2165 ; G 2097 +U 8550 ; WX 1291 ; N uni2166 ; G 2098 +U 8551 ; WX 1575 ; N uni2167 ; G 2099 +U 8552 ; WX 965 ; N uni2168 ; G 2100 +U 8553 ; WX 712 ; N uni2169 ; G 2101 +U 8554 ; WX 969 ; N uni216A ; G 2102 +U 8555 ; WX 1253 ; N uni216B ; G 2103 +U 8556 ; WX 664 ; N uni216C ; G 2104 +U 8557 ; WX 765 ; N uni216D ; G 2105 +U 8558 ; WX 802 ; N uni216E ; G 2106 +U 8559 ; WX 1024 ; N uni216F ; G 2107 +U 8560 ; WX 320 ; N uni2170 ; G 2108 +U 8561 ; WX 640 ; N uni2171 ; G 2109 +U 8562 ; WX 959 ; N uni2172 ; G 2110 +U 8563 ; WX 885 ; N uni2173 ; G 2111 +U 8564 ; WX 565 ; N uni2174 ; G 2112 +U 8565 ; WX 885 ; N uni2175 ; G 2113 +U 8566 ; WX 1205 ; N uni2176 ; G 2114 +U 8567 ; WX 1524 ; N uni2177 ; G 2115 +U 8568 ; WX 884 ; N uni2178 ; G 2116 +U 8569 ; WX 564 ; N uni2179 ; G 2117 +U 8570 ; WX 884 ; N uni217A ; G 2118 +U 8571 ; WX 1204 ; N uni217B ; G 2119 +U 8572 ; WX 320 ; N uni217C ; G 2120 +U 8573 ; WX 560 ; N uni217D ; G 2121 +U 8574 ; WX 640 ; N uni217E ; G 2122 +U 8575 ; WX 948 ; N uni217F ; G 2123 +U 8576 ; WX 1206 ; N uni2180 ; G 2124 +U 8577 ; WX 802 ; N uni2181 ; G 2125 +U 8578 ; WX 1206 ; N uni2182 ; G 2126 +U 8579 ; WX 765 ; N uni2183 ; G 2127 +U 8580 ; WX 560 ; N uni2184 ; G 2128 +U 8581 ; WX 765 ; N uni2185 ; G 2129 +U 8585 ; WX 969 ; N uni2189 ; G 2130 +U 8592 ; WX 838 ; N arrowleft ; G 2131 +U 8593 ; WX 838 ; N arrowup ; G 2132 +U 8594 ; WX 838 ; N arrowright ; G 2133 +U 8595 ; WX 838 ; N arrowdown ; G 2134 +U 8596 ; WX 838 ; N arrowboth ; G 2135 +U 8597 ; WX 838 ; N arrowupdn ; G 2136 +U 8598 ; WX 838 ; N uni2196 ; G 2137 +U 8599 ; WX 838 ; N uni2197 ; G 2138 +U 8600 ; WX 838 ; N uni2198 ; G 2139 +U 8601 ; WX 838 ; N uni2199 ; G 2140 +U 8602 ; WX 838 ; N uni219A ; G 2141 +U 8603 ; WX 838 ; N uni219B ; G 2142 +U 8604 ; WX 838 ; N uni219C ; G 2143 +U 8605 ; WX 838 ; N uni219D ; G 2144 +U 8606 ; WX 838 ; N uni219E ; G 2145 +U 8607 ; WX 838 ; N uni219F ; G 2146 +U 8608 ; WX 838 ; N uni21A0 ; G 2147 +U 8609 ; WX 838 ; N uni21A1 ; G 2148 +U 8610 ; WX 838 ; N uni21A2 ; G 2149 +U 8611 ; WX 838 ; N uni21A3 ; G 2150 +U 8612 ; WX 838 ; N uni21A4 ; G 2151 +U 8613 ; WX 838 ; N uni21A5 ; G 2152 +U 8614 ; WX 838 ; N uni21A6 ; G 2153 +U 8615 ; WX 838 ; N uni21A7 ; G 2154 +U 8616 ; WX 838 ; N arrowupdnbse ; G 2155 +U 8617 ; WX 838 ; N uni21A9 ; G 2156 +U 8618 ; WX 838 ; N uni21AA ; G 2157 +U 8619 ; WX 838 ; N uni21AB ; G 2158 +U 8620 ; WX 838 ; N uni21AC ; G 2159 +U 8621 ; WX 838 ; N uni21AD ; G 2160 +U 8622 ; WX 838 ; N uni21AE ; G 2161 +U 8623 ; WX 838 ; N uni21AF ; G 2162 +U 8624 ; WX 838 ; N uni21B0 ; G 2163 +U 8625 ; WX 838 ; N uni21B1 ; G 2164 +U 8626 ; WX 838 ; N uni21B2 ; G 2165 +U 8627 ; WX 838 ; N uni21B3 ; G 2166 +U 8628 ; WX 838 ; N uni21B4 ; G 2167 +U 8629 ; WX 838 ; N carriagereturn ; G 2168 +U 8630 ; WX 838 ; N uni21B6 ; G 2169 +U 8631 ; WX 838 ; N uni21B7 ; G 2170 +U 8632 ; WX 838 ; N uni21B8 ; G 2171 +U 8633 ; WX 838 ; N uni21B9 ; G 2172 +U 8634 ; WX 838 ; N uni21BA ; G 2173 +U 8635 ; WX 838 ; N uni21BB ; G 2174 +U 8636 ; WX 838 ; N uni21BC ; G 2175 +U 8637 ; WX 838 ; N uni21BD ; G 2176 +U 8638 ; WX 838 ; N uni21BE ; G 2177 +U 8639 ; WX 838 ; N uni21BF ; G 2178 +U 8640 ; WX 838 ; N uni21C0 ; G 2179 +U 8641 ; WX 838 ; N uni21C1 ; G 2180 +U 8642 ; WX 838 ; N uni21C2 ; G 2181 +U 8643 ; WX 838 ; N uni21C3 ; G 2182 +U 8644 ; WX 838 ; N uni21C4 ; G 2183 +U 8645 ; WX 838 ; N uni21C5 ; G 2184 +U 8646 ; WX 838 ; N uni21C6 ; G 2185 +U 8647 ; WX 838 ; N uni21C7 ; G 2186 +U 8648 ; WX 838 ; N uni21C8 ; G 2187 +U 8649 ; WX 838 ; N uni21C9 ; G 2188 +U 8650 ; WX 838 ; N uni21CA ; G 2189 +U 8651 ; WX 838 ; N uni21CB ; G 2190 +U 8652 ; WX 838 ; N uni21CC ; G 2191 +U 8653 ; WX 838 ; N uni21CD ; G 2192 +U 8654 ; WX 838 ; N uni21CE ; G 2193 +U 8655 ; WX 838 ; N uni21CF ; G 2194 +U 8656 ; WX 838 ; N arrowdblleft ; G 2195 +U 8657 ; WX 838 ; N arrowdblup ; G 2196 +U 8658 ; WX 838 ; N arrowdblright ; G 2197 +U 8659 ; WX 838 ; N arrowdbldown ; G 2198 +U 8660 ; WX 838 ; N arrowdblboth ; G 2199 +U 8661 ; WX 838 ; N uni21D5 ; G 2200 +U 8662 ; WX 838 ; N uni21D6 ; G 2201 +U 8663 ; WX 838 ; N uni21D7 ; G 2202 +U 8664 ; WX 838 ; N uni21D8 ; G 2203 +U 8665 ; WX 838 ; N uni21D9 ; G 2204 +U 8666 ; WX 838 ; N uni21DA ; G 2205 +U 8667 ; WX 838 ; N uni21DB ; G 2206 +U 8668 ; WX 838 ; N uni21DC ; G 2207 +U 8669 ; WX 838 ; N uni21DD ; G 2208 +U 8670 ; WX 838 ; N uni21DE ; G 2209 +U 8671 ; WX 838 ; N uni21DF ; G 2210 +U 8672 ; WX 838 ; N uni21E0 ; G 2211 +U 8673 ; WX 838 ; N uni21E1 ; G 2212 +U 8674 ; WX 838 ; N uni21E2 ; G 2213 +U 8675 ; WX 838 ; N uni21E3 ; G 2214 +U 8676 ; WX 838 ; N uni21E4 ; G 2215 +U 8677 ; WX 838 ; N uni21E5 ; G 2216 +U 8678 ; WX 838 ; N uni21E6 ; G 2217 +U 8679 ; WX 838 ; N uni21E7 ; G 2218 +U 8680 ; WX 838 ; N uni21E8 ; G 2219 +U 8681 ; WX 838 ; N uni21E9 ; G 2220 +U 8682 ; WX 838 ; N uni21EA ; G 2221 +U 8683 ; WX 838 ; N uni21EB ; G 2222 +U 8684 ; WX 838 ; N uni21EC ; G 2223 +U 8685 ; WX 838 ; N uni21ED ; G 2224 +U 8686 ; WX 838 ; N uni21EE ; G 2225 +U 8687 ; WX 838 ; N uni21EF ; G 2226 +U 8688 ; WX 838 ; N uni21F0 ; G 2227 +U 8689 ; WX 838 ; N uni21F1 ; G 2228 +U 8690 ; WX 838 ; N uni21F2 ; G 2229 +U 8691 ; WX 838 ; N uni21F3 ; G 2230 +U 8692 ; WX 838 ; N uni21F4 ; G 2231 +U 8693 ; WX 838 ; N uni21F5 ; G 2232 +U 8694 ; WX 838 ; N uni21F6 ; G 2233 +U 8695 ; WX 838 ; N uni21F7 ; G 2234 +U 8696 ; WX 838 ; N uni21F8 ; G 2235 +U 8697 ; WX 838 ; N uni21F9 ; G 2236 +U 8698 ; WX 838 ; N uni21FA ; G 2237 +U 8699 ; WX 838 ; N uni21FB ; G 2238 +U 8700 ; WX 838 ; N uni21FC ; G 2239 +U 8701 ; WX 838 ; N uni21FD ; G 2240 +U 8702 ; WX 838 ; N uni21FE ; G 2241 +U 8703 ; WX 838 ; N uni21FF ; G 2242 +U 8704 ; WX 604 ; N universal ; G 2243 +U 8706 ; WX 517 ; N partialdiff ; G 2244 +U 8707 ; WX 542 ; N existential ; G 2245 +U 8708 ; WX 542 ; N uni2204 ; G 2246 +U 8710 ; WX 698 ; N increment ; G 2247 +U 8711 ; WX 698 ; N gradient ; G 2248 +U 8712 ; WX 740 ; N element ; G 2249 +U 8713 ; WX 740 ; N notelement ; G 2250 +U 8715 ; WX 740 ; N suchthat ; G 2251 +U 8716 ; WX 740 ; N uni220C ; G 2252 +U 8719 ; WX 796 ; N product ; G 2253 +U 8720 ; WX 796 ; N uni2210 ; G 2254 +U 8721 ; WX 714 ; N summation ; G 2255 +U 8722 ; WX 838 ; N minus ; G 2256 +U 8723 ; WX 838 ; N uni2213 ; G 2257 +U 8724 ; WX 838 ; N uni2214 ; G 2258 +U 8725 ; WX 337 ; N uni2215 ; G 2259 +U 8727 ; WX 680 ; N asteriskmath ; G 2260 +U 8728 ; WX 490 ; N uni2218 ; G 2261 +U 8729 ; WX 490 ; N uni2219 ; G 2262 +U 8730 ; WX 637 ; N radical ; G 2263 +U 8731 ; WX 637 ; N uni221B ; G 2264 +U 8732 ; WX 637 ; N uni221C ; G 2265 +U 8733 ; WX 677 ; N proportional ; G 2266 +U 8734 ; WX 833 ; N infinity ; G 2267 +U 8735 ; WX 838 ; N orthogonal ; G 2268 +U 8736 ; WX 838 ; N angle ; G 2269 +U 8739 ; WX 291 ; N uni2223 ; G 2270 +U 8740 ; WX 479 ; N uni2224 ; G 2271 +U 8741 ; WX 462 ; N uni2225 ; G 2272 +U 8742 ; WX 634 ; N uni2226 ; G 2273 +U 8743 ; WX 732 ; N logicaland ; G 2274 +U 8744 ; WX 732 ; N logicalor ; G 2275 +U 8745 ; WX 838 ; N intersection ; G 2276 +U 8746 ; WX 838 ; N union ; G 2277 +U 8747 ; WX 521 ; N integral ; G 2278 +U 8748 ; WX 852 ; N uni222C ; G 2279 +U 8749 ; WX 1182 ; N uni222D ; G 2280 +U 8760 ; WX 838 ; N uni2238 ; G 2281 +U 8761 ; WX 838 ; N uni2239 ; G 2282 +U 8762 ; WX 838 ; N uni223A ; G 2283 +U 8763 ; WX 838 ; N uni223B ; G 2284 +U 8764 ; WX 838 ; N similar ; G 2285 +U 8765 ; WX 838 ; N uni223D ; G 2286 +U 8770 ; WX 838 ; N uni2242 ; G 2287 +U 8771 ; WX 838 ; N uni2243 ; G 2288 +U 8776 ; WX 838 ; N approxequal ; G 2289 +U 8784 ; WX 838 ; N uni2250 ; G 2290 +U 8785 ; WX 838 ; N uni2251 ; G 2291 +U 8786 ; WX 838 ; N uni2252 ; G 2292 +U 8787 ; WX 838 ; N uni2253 ; G 2293 +U 8788 ; WX 1033 ; N uni2254 ; G 2294 +U 8789 ; WX 1033 ; N uni2255 ; G 2295 +U 8800 ; WX 838 ; N notequal ; G 2296 +U 8801 ; WX 838 ; N equivalence ; G 2297 +U 8804 ; WX 838 ; N lessequal ; G 2298 +U 8805 ; WX 838 ; N greaterequal ; G 2299 +U 8834 ; WX 838 ; N propersubset ; G 2300 +U 8835 ; WX 838 ; N propersuperset ; G 2301 +U 8836 ; WX 838 ; N notsubset ; G 2302 +U 8837 ; WX 838 ; N uni2285 ; G 2303 +U 8838 ; WX 838 ; N reflexsubset ; G 2304 +U 8839 ; WX 838 ; N reflexsuperset ; G 2305 +U 8844 ; WX 838 ; N uni228C ; G 2306 +U 8845 ; WX 838 ; N uni228D ; G 2307 +U 8846 ; WX 838 ; N uni228E ; G 2308 +U 8847 ; WX 846 ; N uni228F ; G 2309 +U 8848 ; WX 846 ; N uni2290 ; G 2310 +U 8849 ; WX 846 ; N uni2291 ; G 2311 +U 8850 ; WX 846 ; N uni2292 ; G 2312 +U 8851 ; WX 838 ; N uni2293 ; G 2313 +U 8852 ; WX 838 ; N uni2294 ; G 2314 +U 8853 ; WX 838 ; N circleplus ; G 2315 +U 8854 ; WX 838 ; N uni2296 ; G 2316 +U 8855 ; WX 838 ; N circlemultiply ; G 2317 +U 8856 ; WX 838 ; N uni2298 ; G 2318 +U 8857 ; WX 838 ; N uni2299 ; G 2319 +U 8858 ; WX 838 ; N uni229A ; G 2320 +U 8859 ; WX 838 ; N uni229B ; G 2321 +U 8860 ; WX 838 ; N uni229C ; G 2322 +U 8861 ; WX 838 ; N uni229D ; G 2323 +U 8862 ; WX 838 ; N uni229E ; G 2324 +U 8863 ; WX 838 ; N uni229F ; G 2325 +U 8864 ; WX 838 ; N uni22A0 ; G 2326 +U 8865 ; WX 838 ; N uni22A1 ; G 2327 +U 8866 ; WX 860 ; N uni22A2 ; G 2328 +U 8867 ; WX 860 ; N uni22A3 ; G 2329 +U 8868 ; WX 940 ; N uni22A4 ; G 2330 +U 8869 ; WX 940 ; N perpendicular ; G 2331 +U 8870 ; WX 567 ; N uni22A6 ; G 2332 +U 8871 ; WX 567 ; N uni22A7 ; G 2333 +U 8872 ; WX 860 ; N uni22A8 ; G 2334 +U 8873 ; WX 860 ; N uni22A9 ; G 2335 +U 8874 ; WX 860 ; N uni22AA ; G 2336 +U 8875 ; WX 1031 ; N uni22AB ; G 2337 +U 8876 ; WX 860 ; N uni22AC ; G 2338 +U 8877 ; WX 860 ; N uni22AD ; G 2339 +U 8878 ; WX 860 ; N uni22AE ; G 2340 +U 8879 ; WX 1031 ; N uni22AF ; G 2341 +U 8900 ; WX 626 ; N uni22C4 ; G 2342 +U 8901 ; WX 342 ; N dotmath ; G 2343 +U 8962 ; WX 764 ; N house ; G 2344 +U 8968 ; WX 390 ; N uni2308 ; G 2345 +U 8969 ; WX 390 ; N uni2309 ; G 2346 +U 8970 ; WX 390 ; N uni230A ; G 2347 +U 8971 ; WX 390 ; N uni230B ; G 2348 +U 8976 ; WX 838 ; N revlogicalnot ; G 2349 +U 8977 ; WX 513 ; N uni2311 ; G 2350 +U 8984 ; WX 1000 ; N uni2318 ; G 2351 +U 8985 ; WX 838 ; N uni2319 ; G 2352 +U 8992 ; WX 521 ; N integraltp ; G 2353 +U 8993 ; WX 521 ; N integralbt ; G 2354 +U 8997 ; WX 1000 ; N uni2325 ; G 2355 +U 9000 ; WX 1443 ; N uni2328 ; G 2356 +U 9085 ; WX 919 ; N uni237D ; G 2357 +U 9115 ; WX 500 ; N uni239B ; G 2358 +U 9116 ; WX 500 ; N uni239C ; G 2359 +U 9117 ; WX 500 ; N uni239D ; G 2360 +U 9118 ; WX 500 ; N uni239E ; G 2361 +U 9119 ; WX 500 ; N uni239F ; G 2362 +U 9120 ; WX 500 ; N uni23A0 ; G 2363 +U 9121 ; WX 500 ; N uni23A1 ; G 2364 +U 9122 ; WX 500 ; N uni23A2 ; G 2365 +U 9123 ; WX 500 ; N uni23A3 ; G 2366 +U 9124 ; WX 500 ; N uni23A4 ; G 2367 +U 9125 ; WX 500 ; N uni23A5 ; G 2368 +U 9126 ; WX 500 ; N uni23A6 ; G 2369 +U 9127 ; WX 750 ; N uni23A7 ; G 2370 +U 9128 ; WX 750 ; N uni23A8 ; G 2371 +U 9129 ; WX 750 ; N uni23A9 ; G 2372 +U 9130 ; WX 750 ; N uni23AA ; G 2373 +U 9131 ; WX 750 ; N uni23AB ; G 2374 +U 9132 ; WX 750 ; N uni23AC ; G 2375 +U 9133 ; WX 750 ; N uni23AD ; G 2376 +U 9134 ; WX 521 ; N uni23AE ; G 2377 +U 9143 ; WX 637 ; N uni23B7 ; G 2378 +U 9167 ; WX 945 ; N uni23CF ; G 2379 +U 9251 ; WX 764 ; N uni2423 ; G 2380 +U 9472 ; WX 602 ; N SF100000 ; G 2381 +U 9473 ; WX 602 ; N uni2501 ; G 2382 +U 9474 ; WX 602 ; N SF110000 ; G 2383 +U 9475 ; WX 602 ; N uni2503 ; G 2384 +U 9476 ; WX 602 ; N uni2504 ; G 2385 +U 9477 ; WX 602 ; N uni2505 ; G 2386 +U 9478 ; WX 602 ; N uni2506 ; G 2387 +U 9479 ; WX 602 ; N uni2507 ; G 2388 +U 9480 ; WX 602 ; N uni2508 ; G 2389 +U 9481 ; WX 602 ; N uni2509 ; G 2390 +U 9482 ; WX 602 ; N uni250A ; G 2391 +U 9483 ; WX 602 ; N uni250B ; G 2392 +U 9484 ; WX 602 ; N SF010000 ; G 2393 +U 9485 ; WX 602 ; N uni250D ; G 2394 +U 9486 ; WX 602 ; N uni250E ; G 2395 +U 9487 ; WX 602 ; N uni250F ; G 2396 +U 9488 ; WX 602 ; N SF030000 ; G 2397 +U 9489 ; WX 602 ; N uni2511 ; G 2398 +U 9490 ; WX 602 ; N uni2512 ; G 2399 +U 9491 ; WX 602 ; N uni2513 ; G 2400 +U 9492 ; WX 602 ; N SF020000 ; G 2401 +U 9493 ; WX 602 ; N uni2515 ; G 2402 +U 9494 ; WX 602 ; N uni2516 ; G 2403 +U 9495 ; WX 602 ; N uni2517 ; G 2404 +U 9496 ; WX 602 ; N SF040000 ; G 2405 +U 9497 ; WX 602 ; N uni2519 ; G 2406 +U 9498 ; WX 602 ; N uni251A ; G 2407 +U 9499 ; WX 602 ; N uni251B ; G 2408 +U 9500 ; WX 602 ; N SF080000 ; G 2409 +U 9501 ; WX 602 ; N uni251D ; G 2410 +U 9502 ; WX 602 ; N uni251E ; G 2411 +U 9503 ; WX 602 ; N uni251F ; G 2412 +U 9504 ; WX 602 ; N uni2520 ; G 2413 +U 9505 ; WX 602 ; N uni2521 ; G 2414 +U 9506 ; WX 602 ; N uni2522 ; G 2415 +U 9507 ; WX 602 ; N uni2523 ; G 2416 +U 9508 ; WX 602 ; N SF090000 ; G 2417 +U 9509 ; WX 602 ; N uni2525 ; G 2418 +U 9510 ; WX 602 ; N uni2526 ; G 2419 +U 9511 ; WX 602 ; N uni2527 ; G 2420 +U 9512 ; WX 602 ; N uni2528 ; G 2421 +U 9513 ; WX 602 ; N uni2529 ; G 2422 +U 9514 ; WX 602 ; N uni252A ; G 2423 +U 9515 ; WX 602 ; N uni252B ; G 2424 +U 9516 ; WX 602 ; N SF060000 ; G 2425 +U 9517 ; WX 602 ; N uni252D ; G 2426 +U 9518 ; WX 602 ; N uni252E ; G 2427 +U 9519 ; WX 602 ; N uni252F ; G 2428 +U 9520 ; WX 602 ; N uni2530 ; G 2429 +U 9521 ; WX 602 ; N uni2531 ; G 2430 +U 9522 ; WX 602 ; N uni2532 ; G 2431 +U 9523 ; WX 602 ; N uni2533 ; G 2432 +U 9524 ; WX 602 ; N SF070000 ; G 2433 +U 9525 ; WX 602 ; N uni2535 ; G 2434 +U 9526 ; WX 602 ; N uni2536 ; G 2435 +U 9527 ; WX 602 ; N uni2537 ; G 2436 +U 9528 ; WX 602 ; N uni2538 ; G 2437 +U 9529 ; WX 602 ; N uni2539 ; G 2438 +U 9530 ; WX 602 ; N uni253A ; G 2439 +U 9531 ; WX 602 ; N uni253B ; G 2440 +U 9532 ; WX 602 ; N SF050000 ; G 2441 +U 9533 ; WX 602 ; N uni253D ; G 2442 +U 9534 ; WX 602 ; N uni253E ; G 2443 +U 9535 ; WX 602 ; N uni253F ; G 2444 +U 9536 ; WX 602 ; N uni2540 ; G 2445 +U 9537 ; WX 602 ; N uni2541 ; G 2446 +U 9538 ; WX 602 ; N uni2542 ; G 2447 +U 9539 ; WX 602 ; N uni2543 ; G 2448 +U 9540 ; WX 602 ; N uni2544 ; G 2449 +U 9541 ; WX 602 ; N uni2545 ; G 2450 +U 9542 ; WX 602 ; N uni2546 ; G 2451 +U 9543 ; WX 602 ; N uni2547 ; G 2452 +U 9544 ; WX 602 ; N uni2548 ; G 2453 +U 9545 ; WX 602 ; N uni2549 ; G 2454 +U 9546 ; WX 602 ; N uni254A ; G 2455 +U 9547 ; WX 602 ; N uni254B ; G 2456 +U 9548 ; WX 602 ; N uni254C ; G 2457 +U 9549 ; WX 602 ; N uni254D ; G 2458 +U 9550 ; WX 602 ; N uni254E ; G 2459 +U 9551 ; WX 602 ; N uni254F ; G 2460 +U 9552 ; WX 602 ; N SF430000 ; G 2461 +U 9553 ; WX 602 ; N SF240000 ; G 2462 +U 9554 ; WX 602 ; N SF510000 ; G 2463 +U 9555 ; WX 602 ; N SF520000 ; G 2464 +U 9556 ; WX 602 ; N SF390000 ; G 2465 +U 9557 ; WX 602 ; N SF220000 ; G 2466 +U 9558 ; WX 602 ; N SF210000 ; G 2467 +U 9559 ; WX 602 ; N SF250000 ; G 2468 +U 9560 ; WX 602 ; N SF500000 ; G 2469 +U 9561 ; WX 602 ; N SF490000 ; G 2470 +U 9562 ; WX 602 ; N SF380000 ; G 2471 +U 9563 ; WX 602 ; N SF280000 ; G 2472 +U 9564 ; WX 602 ; N SF270000 ; G 2473 +U 9565 ; WX 602 ; N SF260000 ; G 2474 +U 9566 ; WX 602 ; N SF360000 ; G 2475 +U 9567 ; WX 602 ; N SF370000 ; G 2476 +U 9568 ; WX 602 ; N SF420000 ; G 2477 +U 9569 ; WX 602 ; N SF190000 ; G 2478 +U 9570 ; WX 602 ; N SF200000 ; G 2479 +U 9571 ; WX 602 ; N SF230000 ; G 2480 +U 9572 ; WX 602 ; N SF470000 ; G 2481 +U 9573 ; WX 602 ; N SF480000 ; G 2482 +U 9574 ; WX 602 ; N SF410000 ; G 2483 +U 9575 ; WX 602 ; N SF450000 ; G 2484 +U 9576 ; WX 602 ; N SF460000 ; G 2485 +U 9577 ; WX 602 ; N SF400000 ; G 2486 +U 9578 ; WX 602 ; N SF540000 ; G 2487 +U 9579 ; WX 602 ; N SF530000 ; G 2488 +U 9580 ; WX 602 ; N SF440000 ; G 2489 +U 9581 ; WX 602 ; N uni256D ; G 2490 +U 9582 ; WX 602 ; N uni256E ; G 2491 +U 9583 ; WX 602 ; N uni256F ; G 2492 +U 9584 ; WX 602 ; N uni2570 ; G 2493 +U 9585 ; WX 602 ; N uni2571 ; G 2494 +U 9586 ; WX 602 ; N uni2572 ; G 2495 +U 9587 ; WX 602 ; N uni2573 ; G 2496 +U 9588 ; WX 602 ; N uni2574 ; G 2497 +U 9589 ; WX 602 ; N uni2575 ; G 2498 +U 9590 ; WX 602 ; N uni2576 ; G 2499 +U 9591 ; WX 602 ; N uni2577 ; G 2500 +U 9592 ; WX 602 ; N uni2578 ; G 2501 +U 9593 ; WX 602 ; N uni2579 ; G 2502 +U 9594 ; WX 602 ; N uni257A ; G 2503 +U 9595 ; WX 602 ; N uni257B ; G 2504 +U 9596 ; WX 602 ; N uni257C ; G 2505 +U 9597 ; WX 602 ; N uni257D ; G 2506 +U 9598 ; WX 602 ; N uni257E ; G 2507 +U 9599 ; WX 602 ; N uni257F ; G 2508 +U 9600 ; WX 769 ; N upblock ; G 2509 +U 9601 ; WX 769 ; N uni2581 ; G 2510 +U 9602 ; WX 769 ; N uni2582 ; G 2511 +U 9603 ; WX 769 ; N uni2583 ; G 2512 +U 9604 ; WX 769 ; N dnblock ; G 2513 +U 9605 ; WX 769 ; N uni2585 ; G 2514 +U 9606 ; WX 769 ; N uni2586 ; G 2515 +U 9607 ; WX 769 ; N uni2587 ; G 2516 +U 9608 ; WX 769 ; N block ; G 2517 +U 9609 ; WX 769 ; N uni2589 ; G 2518 +U 9610 ; WX 769 ; N uni258A ; G 2519 +U 9611 ; WX 769 ; N uni258B ; G 2520 +U 9612 ; WX 769 ; N lfblock ; G 2521 +U 9613 ; WX 769 ; N uni258D ; G 2522 +U 9614 ; WX 769 ; N uni258E ; G 2523 +U 9615 ; WX 769 ; N uni258F ; G 2524 +U 9616 ; WX 769 ; N rtblock ; G 2525 +U 9617 ; WX 769 ; N ltshade ; G 2526 +U 9618 ; WX 769 ; N shade ; G 2527 +U 9619 ; WX 769 ; N dkshade ; G 2528 +U 9620 ; WX 769 ; N uni2594 ; G 2529 +U 9621 ; WX 769 ; N uni2595 ; G 2530 +U 9622 ; WX 769 ; N uni2596 ; G 2531 +U 9623 ; WX 769 ; N uni2597 ; G 2532 +U 9624 ; WX 769 ; N uni2598 ; G 2533 +U 9625 ; WX 769 ; N uni2599 ; G 2534 +U 9626 ; WX 769 ; N uni259A ; G 2535 +U 9627 ; WX 769 ; N uni259B ; G 2536 +U 9628 ; WX 769 ; N uni259C ; G 2537 +U 9629 ; WX 769 ; N uni259D ; G 2538 +U 9630 ; WX 769 ; N uni259E ; G 2539 +U 9631 ; WX 769 ; N uni259F ; G 2540 +U 9632 ; WX 945 ; N filledbox ; G 2541 +U 9633 ; WX 945 ; N H22073 ; G 2542 +U 9634 ; WX 945 ; N uni25A2 ; G 2543 +U 9635 ; WX 945 ; N uni25A3 ; G 2544 +U 9636 ; WX 945 ; N uni25A4 ; G 2545 +U 9637 ; WX 945 ; N uni25A5 ; G 2546 +U 9638 ; WX 945 ; N uni25A6 ; G 2547 +U 9639 ; WX 945 ; N uni25A7 ; G 2548 +U 9640 ; WX 945 ; N uni25A8 ; G 2549 +U 9641 ; WX 945 ; N uni25A9 ; G 2550 +U 9642 ; WX 678 ; N H18543 ; G 2551 +U 9643 ; WX 678 ; N H18551 ; G 2552 +U 9644 ; WX 945 ; N filledrect ; G 2553 +U 9645 ; WX 945 ; N uni25AD ; G 2554 +U 9646 ; WX 550 ; N uni25AE ; G 2555 +U 9647 ; WX 550 ; N uni25AF ; G 2556 +U 9648 ; WX 769 ; N uni25B0 ; G 2557 +U 9649 ; WX 769 ; N uni25B1 ; G 2558 +U 9650 ; WX 769 ; N triagup ; G 2559 +U 9651 ; WX 769 ; N uni25B3 ; G 2560 +U 9652 ; WX 502 ; N uni25B4 ; G 2561 +U 9653 ; WX 502 ; N uni25B5 ; G 2562 +U 9654 ; WX 769 ; N uni25B6 ; G 2563 +U 9655 ; WX 769 ; N uni25B7 ; G 2564 +U 9656 ; WX 502 ; N uni25B8 ; G 2565 +U 9657 ; WX 502 ; N uni25B9 ; G 2566 +U 9658 ; WX 769 ; N triagrt ; G 2567 +U 9659 ; WX 769 ; N uni25BB ; G 2568 +U 9660 ; WX 769 ; N triagdn ; G 2569 +U 9661 ; WX 769 ; N uni25BD ; G 2570 +U 9662 ; WX 502 ; N uni25BE ; G 2571 +U 9663 ; WX 502 ; N uni25BF ; G 2572 +U 9664 ; WX 769 ; N uni25C0 ; G 2573 +U 9665 ; WX 769 ; N uni25C1 ; G 2574 +U 9666 ; WX 502 ; N uni25C2 ; G 2575 +U 9667 ; WX 502 ; N uni25C3 ; G 2576 +U 9668 ; WX 769 ; N triaglf ; G 2577 +U 9669 ; WX 769 ; N uni25C5 ; G 2578 +U 9670 ; WX 769 ; N uni25C6 ; G 2579 +U 9671 ; WX 769 ; N uni25C7 ; G 2580 +U 9672 ; WX 769 ; N uni25C8 ; G 2581 +U 9673 ; WX 873 ; N uni25C9 ; G 2582 +U 9674 ; WX 494 ; N lozenge ; G 2583 +U 9675 ; WX 873 ; N circle ; G 2584 +U 9676 ; WX 873 ; N uni25CC ; G 2585 +U 9677 ; WX 873 ; N uni25CD ; G 2586 +U 9678 ; WX 873 ; N uni25CE ; G 2587 +U 9679 ; WX 873 ; N H18533 ; G 2588 +U 9680 ; WX 873 ; N uni25D0 ; G 2589 +U 9681 ; WX 873 ; N uni25D1 ; G 2590 +U 9682 ; WX 873 ; N uni25D2 ; G 2591 +U 9683 ; WX 873 ; N uni25D3 ; G 2592 +U 9684 ; WX 873 ; N uni25D4 ; G 2593 +U 9685 ; WX 873 ; N uni25D5 ; G 2594 +U 9686 ; WX 527 ; N uni25D6 ; G 2595 +U 9687 ; WX 527 ; N uni25D7 ; G 2596 +U 9688 ; WX 791 ; N invbullet ; G 2597 +U 9689 ; WX 970 ; N invcircle ; G 2598 +U 9690 ; WX 970 ; N uni25DA ; G 2599 +U 9691 ; WX 970 ; N uni25DB ; G 2600 +U 9692 ; WX 387 ; N uni25DC ; G 2601 +U 9693 ; WX 387 ; N uni25DD ; G 2602 +U 9694 ; WX 387 ; N uni25DE ; G 2603 +U 9695 ; WX 387 ; N uni25DF ; G 2604 +U 9696 ; WX 873 ; N uni25E0 ; G 2605 +U 9697 ; WX 873 ; N uni25E1 ; G 2606 +U 9698 ; WX 769 ; N uni25E2 ; G 2607 +U 9699 ; WX 769 ; N uni25E3 ; G 2608 +U 9700 ; WX 769 ; N uni25E4 ; G 2609 +U 9701 ; WX 769 ; N uni25E5 ; G 2610 +U 9702 ; WX 590 ; N openbullet ; G 2611 +U 9703 ; WX 945 ; N uni25E7 ; G 2612 +U 9704 ; WX 945 ; N uni25E8 ; G 2613 +U 9705 ; WX 945 ; N uni25E9 ; G 2614 +U 9706 ; WX 945 ; N uni25EA ; G 2615 +U 9707 ; WX 945 ; N uni25EB ; G 2616 +U 9708 ; WX 769 ; N uni25EC ; G 2617 +U 9709 ; WX 769 ; N uni25ED ; G 2618 +U 9710 ; WX 769 ; N uni25EE ; G 2619 +U 9711 ; WX 1119 ; N uni25EF ; G 2620 +U 9712 ; WX 945 ; N uni25F0 ; G 2621 +U 9713 ; WX 945 ; N uni25F1 ; G 2622 +U 9714 ; WX 945 ; N uni25F2 ; G 2623 +U 9715 ; WX 945 ; N uni25F3 ; G 2624 +U 9716 ; WX 873 ; N uni25F4 ; G 2625 +U 9717 ; WX 873 ; N uni25F5 ; G 2626 +U 9718 ; WX 873 ; N uni25F6 ; G 2627 +U 9719 ; WX 873 ; N uni25F7 ; G 2628 +U 9720 ; WX 769 ; N uni25F8 ; G 2629 +U 9721 ; WX 769 ; N uni25F9 ; G 2630 +U 9722 ; WX 769 ; N uni25FA ; G 2631 +U 9723 ; WX 830 ; N uni25FB ; G 2632 +U 9724 ; WX 830 ; N uni25FC ; G 2633 +U 9725 ; WX 732 ; N uni25FD ; G 2634 +U 9726 ; WX 732 ; N uni25FE ; G 2635 +U 9727 ; WX 769 ; N uni25FF ; G 2636 +U 9728 ; WX 896 ; N uni2600 ; G 2637 +U 9784 ; WX 896 ; N uni2638 ; G 2638 +U 9785 ; WX 896 ; N uni2639 ; G 2639 +U 9786 ; WX 896 ; N smileface ; G 2640 +U 9787 ; WX 896 ; N invsmileface ; G 2641 +U 9788 ; WX 896 ; N sun ; G 2642 +U 9791 ; WX 614 ; N uni263F ; G 2643 +U 9792 ; WX 731 ; N female ; G 2644 +U 9793 ; WX 731 ; N uni2641 ; G 2645 +U 9794 ; WX 896 ; N male ; G 2646 +U 9795 ; WX 896 ; N uni2643 ; G 2647 +U 9796 ; WX 896 ; N uni2644 ; G 2648 +U 9797 ; WX 896 ; N uni2645 ; G 2649 +U 9798 ; WX 896 ; N uni2646 ; G 2650 +U 9799 ; WX 896 ; N uni2647 ; G 2651 +U 9824 ; WX 896 ; N spade ; G 2652 +U 9825 ; WX 896 ; N uni2661 ; G 2653 +U 9826 ; WX 896 ; N uni2662 ; G 2654 +U 9827 ; WX 896 ; N club ; G 2655 +U 9828 ; WX 896 ; N uni2664 ; G 2656 +U 9829 ; WX 896 ; N heart ; G 2657 +U 9830 ; WX 896 ; N diamond ; G 2658 +U 9831 ; WX 896 ; N uni2667 ; G 2659 +U 9833 ; WX 472 ; N uni2669 ; G 2660 +U 9834 ; WX 638 ; N musicalnote ; G 2661 +U 9835 ; WX 896 ; N musicalnotedbl ; G 2662 +U 9836 ; WX 896 ; N uni266C ; G 2663 +U 9837 ; WX 472 ; N uni266D ; G 2664 +U 9838 ; WX 357 ; N uni266E ; G 2665 +U 9839 ; WX 484 ; N uni266F ; G 2666 +U 10145 ; WX 838 ; N uni27A1 ; G 2667 +U 10181 ; WX 390 ; N uni27C5 ; G 2668 +U 10182 ; WX 390 ; N uni27C6 ; G 2669 +U 10208 ; WX 494 ; N uni27E0 ; G 2670 +U 10216 ; WX 390 ; N uni27E8 ; G 2671 +U 10217 ; WX 390 ; N uni27E9 ; G 2672 +U 10224 ; WX 838 ; N uni27F0 ; G 2673 +U 10225 ; WX 838 ; N uni27F1 ; G 2674 +U 10226 ; WX 838 ; N uni27F2 ; G 2675 +U 10227 ; WX 838 ; N uni27F3 ; G 2676 +U 10228 ; WX 1033 ; N uni27F4 ; G 2677 +U 10229 ; WX 1434 ; N uni27F5 ; G 2678 +U 10230 ; WX 1434 ; N uni27F6 ; G 2679 +U 10231 ; WX 1434 ; N uni27F7 ; G 2680 +U 10232 ; WX 1434 ; N uni27F8 ; G 2681 +U 10233 ; WX 1434 ; N uni27F9 ; G 2682 +U 10234 ; WX 1434 ; N uni27FA ; G 2683 +U 10235 ; WX 1434 ; N uni27FB ; G 2684 +U 10236 ; WX 1434 ; N uni27FC ; G 2685 +U 10237 ; WX 1434 ; N uni27FD ; G 2686 +U 10238 ; WX 1434 ; N uni27FE ; G 2687 +U 10239 ; WX 1434 ; N uni27FF ; G 2688 +U 10240 ; WX 732 ; N uni2800 ; G 2689 +U 10241 ; WX 732 ; N uni2801 ; G 2690 +U 10242 ; WX 732 ; N uni2802 ; G 2691 +U 10243 ; WX 732 ; N uni2803 ; G 2692 +U 10244 ; WX 732 ; N uni2804 ; G 2693 +U 10245 ; WX 732 ; N uni2805 ; G 2694 +U 10246 ; WX 732 ; N uni2806 ; G 2695 +U 10247 ; WX 732 ; N uni2807 ; G 2696 +U 10248 ; WX 732 ; N uni2808 ; G 2697 +U 10249 ; WX 732 ; N uni2809 ; G 2698 +U 10250 ; WX 732 ; N uni280A ; G 2699 +U 10251 ; WX 732 ; N uni280B ; G 2700 +U 10252 ; WX 732 ; N uni280C ; G 2701 +U 10253 ; WX 732 ; N uni280D ; G 2702 +U 10254 ; WX 732 ; N uni280E ; G 2703 +U 10255 ; WX 732 ; N uni280F ; G 2704 +U 10256 ; WX 732 ; N uni2810 ; G 2705 +U 10257 ; WX 732 ; N uni2811 ; G 2706 +U 10258 ; WX 732 ; N uni2812 ; G 2707 +U 10259 ; WX 732 ; N uni2813 ; G 2708 +U 10260 ; WX 732 ; N uni2814 ; G 2709 +U 10261 ; WX 732 ; N uni2815 ; G 2710 +U 10262 ; WX 732 ; N uni2816 ; G 2711 +U 10263 ; WX 732 ; N uni2817 ; G 2712 +U 10264 ; WX 732 ; N uni2818 ; G 2713 +U 10265 ; WX 732 ; N uni2819 ; G 2714 +U 10266 ; WX 732 ; N uni281A ; G 2715 +U 10267 ; WX 732 ; N uni281B ; G 2716 +U 10268 ; WX 732 ; N uni281C ; G 2717 +U 10269 ; WX 732 ; N uni281D ; G 2718 +U 10270 ; WX 732 ; N uni281E ; G 2719 +U 10271 ; WX 732 ; N uni281F ; G 2720 +U 10272 ; WX 732 ; N uni2820 ; G 2721 +U 10273 ; WX 732 ; N uni2821 ; G 2722 +U 10274 ; WX 732 ; N uni2822 ; G 2723 +U 10275 ; WX 732 ; N uni2823 ; G 2724 +U 10276 ; WX 732 ; N uni2824 ; G 2725 +U 10277 ; WX 732 ; N uni2825 ; G 2726 +U 10278 ; WX 732 ; N uni2826 ; G 2727 +U 10279 ; WX 732 ; N uni2827 ; G 2728 +U 10280 ; WX 732 ; N uni2828 ; G 2729 +U 10281 ; WX 732 ; N uni2829 ; G 2730 +U 10282 ; WX 732 ; N uni282A ; G 2731 +U 10283 ; WX 732 ; N uni282B ; G 2732 +U 10284 ; WX 732 ; N uni282C ; G 2733 +U 10285 ; WX 732 ; N uni282D ; G 2734 +U 10286 ; WX 732 ; N uni282E ; G 2735 +U 10287 ; WX 732 ; N uni282F ; G 2736 +U 10288 ; WX 732 ; N uni2830 ; G 2737 +U 10289 ; WX 732 ; N uni2831 ; G 2738 +U 10290 ; WX 732 ; N uni2832 ; G 2739 +U 10291 ; WX 732 ; N uni2833 ; G 2740 +U 10292 ; WX 732 ; N uni2834 ; G 2741 +U 10293 ; WX 732 ; N uni2835 ; G 2742 +U 10294 ; WX 732 ; N uni2836 ; G 2743 +U 10295 ; WX 732 ; N uni2837 ; G 2744 +U 10296 ; WX 732 ; N uni2838 ; G 2745 +U 10297 ; WX 732 ; N uni2839 ; G 2746 +U 10298 ; WX 732 ; N uni283A ; G 2747 +U 10299 ; WX 732 ; N uni283B ; G 2748 +U 10300 ; WX 732 ; N uni283C ; G 2749 +U 10301 ; WX 732 ; N uni283D ; G 2750 +U 10302 ; WX 732 ; N uni283E ; G 2751 +U 10303 ; WX 732 ; N uni283F ; G 2752 +U 10304 ; WX 732 ; N uni2840 ; G 2753 +U 10305 ; WX 732 ; N uni2841 ; G 2754 +U 10306 ; WX 732 ; N uni2842 ; G 2755 +U 10307 ; WX 732 ; N uni2843 ; G 2756 +U 10308 ; WX 732 ; N uni2844 ; G 2757 +U 10309 ; WX 732 ; N uni2845 ; G 2758 +U 10310 ; WX 732 ; N uni2846 ; G 2759 +U 10311 ; WX 732 ; N uni2847 ; G 2760 +U 10312 ; WX 732 ; N uni2848 ; G 2761 +U 10313 ; WX 732 ; N uni2849 ; G 2762 +U 10314 ; WX 732 ; N uni284A ; G 2763 +U 10315 ; WX 732 ; N uni284B ; G 2764 +U 10316 ; WX 732 ; N uni284C ; G 2765 +U 10317 ; WX 732 ; N uni284D ; G 2766 +U 10318 ; WX 732 ; N uni284E ; G 2767 +U 10319 ; WX 732 ; N uni284F ; G 2768 +U 10320 ; WX 732 ; N uni2850 ; G 2769 +U 10321 ; WX 732 ; N uni2851 ; G 2770 +U 10322 ; WX 732 ; N uni2852 ; G 2771 +U 10323 ; WX 732 ; N uni2853 ; G 2772 +U 10324 ; WX 732 ; N uni2854 ; G 2773 +U 10325 ; WX 732 ; N uni2855 ; G 2774 +U 10326 ; WX 732 ; N uni2856 ; G 2775 +U 10327 ; WX 732 ; N uni2857 ; G 2776 +U 10328 ; WX 732 ; N uni2858 ; G 2777 +U 10329 ; WX 732 ; N uni2859 ; G 2778 +U 10330 ; WX 732 ; N uni285A ; G 2779 +U 10331 ; WX 732 ; N uni285B ; G 2780 +U 10332 ; WX 732 ; N uni285C ; G 2781 +U 10333 ; WX 732 ; N uni285D ; G 2782 +U 10334 ; WX 732 ; N uni285E ; G 2783 +U 10335 ; WX 732 ; N uni285F ; G 2784 +U 10336 ; WX 732 ; N uni2860 ; G 2785 +U 10337 ; WX 732 ; N uni2861 ; G 2786 +U 10338 ; WX 732 ; N uni2862 ; G 2787 +U 10339 ; WX 732 ; N uni2863 ; G 2788 +U 10340 ; WX 732 ; N uni2864 ; G 2789 +U 10341 ; WX 732 ; N uni2865 ; G 2790 +U 10342 ; WX 732 ; N uni2866 ; G 2791 +U 10343 ; WX 732 ; N uni2867 ; G 2792 +U 10344 ; WX 732 ; N uni2868 ; G 2793 +U 10345 ; WX 732 ; N uni2869 ; G 2794 +U 10346 ; WX 732 ; N uni286A ; G 2795 +U 10347 ; WX 732 ; N uni286B ; G 2796 +U 10348 ; WX 732 ; N uni286C ; G 2797 +U 10349 ; WX 732 ; N uni286D ; G 2798 +U 10350 ; WX 732 ; N uni286E ; G 2799 +U 10351 ; WX 732 ; N uni286F ; G 2800 +U 10352 ; WX 732 ; N uni2870 ; G 2801 +U 10353 ; WX 732 ; N uni2871 ; G 2802 +U 10354 ; WX 732 ; N uni2872 ; G 2803 +U 10355 ; WX 732 ; N uni2873 ; G 2804 +U 10356 ; WX 732 ; N uni2874 ; G 2805 +U 10357 ; WX 732 ; N uni2875 ; G 2806 +U 10358 ; WX 732 ; N uni2876 ; G 2807 +U 10359 ; WX 732 ; N uni2877 ; G 2808 +U 10360 ; WX 732 ; N uni2878 ; G 2809 +U 10361 ; WX 732 ; N uni2879 ; G 2810 +U 10362 ; WX 732 ; N uni287A ; G 2811 +U 10363 ; WX 732 ; N uni287B ; G 2812 +U 10364 ; WX 732 ; N uni287C ; G 2813 +U 10365 ; WX 732 ; N uni287D ; G 2814 +U 10366 ; WX 732 ; N uni287E ; G 2815 +U 10367 ; WX 732 ; N uni287F ; G 2816 +U 10368 ; WX 732 ; N uni2880 ; G 2817 +U 10369 ; WX 732 ; N uni2881 ; G 2818 +U 10370 ; WX 732 ; N uni2882 ; G 2819 +U 10371 ; WX 732 ; N uni2883 ; G 2820 +U 10372 ; WX 732 ; N uni2884 ; G 2821 +U 10373 ; WX 732 ; N uni2885 ; G 2822 +U 10374 ; WX 732 ; N uni2886 ; G 2823 +U 10375 ; WX 732 ; N uni2887 ; G 2824 +U 10376 ; WX 732 ; N uni2888 ; G 2825 +U 10377 ; WX 732 ; N uni2889 ; G 2826 +U 10378 ; WX 732 ; N uni288A ; G 2827 +U 10379 ; WX 732 ; N uni288B ; G 2828 +U 10380 ; WX 732 ; N uni288C ; G 2829 +U 10381 ; WX 732 ; N uni288D ; G 2830 +U 10382 ; WX 732 ; N uni288E ; G 2831 +U 10383 ; WX 732 ; N uni288F ; G 2832 +U 10384 ; WX 732 ; N uni2890 ; G 2833 +U 10385 ; WX 732 ; N uni2891 ; G 2834 +U 10386 ; WX 732 ; N uni2892 ; G 2835 +U 10387 ; WX 732 ; N uni2893 ; G 2836 +U 10388 ; WX 732 ; N uni2894 ; G 2837 +U 10389 ; WX 732 ; N uni2895 ; G 2838 +U 10390 ; WX 732 ; N uni2896 ; G 2839 +U 10391 ; WX 732 ; N uni2897 ; G 2840 +U 10392 ; WX 732 ; N uni2898 ; G 2841 +U 10393 ; WX 732 ; N uni2899 ; G 2842 +U 10394 ; WX 732 ; N uni289A ; G 2843 +U 10395 ; WX 732 ; N uni289B ; G 2844 +U 10396 ; WX 732 ; N uni289C ; G 2845 +U 10397 ; WX 732 ; N uni289D ; G 2846 +U 10398 ; WX 732 ; N uni289E ; G 2847 +U 10399 ; WX 732 ; N uni289F ; G 2848 +U 10400 ; WX 732 ; N uni28A0 ; G 2849 +U 10401 ; WX 732 ; N uni28A1 ; G 2850 +U 10402 ; WX 732 ; N uni28A2 ; G 2851 +U 10403 ; WX 732 ; N uni28A3 ; G 2852 +U 10404 ; WX 732 ; N uni28A4 ; G 2853 +U 10405 ; WX 732 ; N uni28A5 ; G 2854 +U 10406 ; WX 732 ; N uni28A6 ; G 2855 +U 10407 ; WX 732 ; N uni28A7 ; G 2856 +U 10408 ; WX 732 ; N uni28A8 ; G 2857 +U 10409 ; WX 732 ; N uni28A9 ; G 2858 +U 10410 ; WX 732 ; N uni28AA ; G 2859 +U 10411 ; WX 732 ; N uni28AB ; G 2860 +U 10412 ; WX 732 ; N uni28AC ; G 2861 +U 10413 ; WX 732 ; N uni28AD ; G 2862 +U 10414 ; WX 732 ; N uni28AE ; G 2863 +U 10415 ; WX 732 ; N uni28AF ; G 2864 +U 10416 ; WX 732 ; N uni28B0 ; G 2865 +U 10417 ; WX 732 ; N uni28B1 ; G 2866 +U 10418 ; WX 732 ; N uni28B2 ; G 2867 +U 10419 ; WX 732 ; N uni28B3 ; G 2868 +U 10420 ; WX 732 ; N uni28B4 ; G 2869 +U 10421 ; WX 732 ; N uni28B5 ; G 2870 +U 10422 ; WX 732 ; N uni28B6 ; G 2871 +U 10423 ; WX 732 ; N uni28B7 ; G 2872 +U 10424 ; WX 732 ; N uni28B8 ; G 2873 +U 10425 ; WX 732 ; N uni28B9 ; G 2874 +U 10426 ; WX 732 ; N uni28BA ; G 2875 +U 10427 ; WX 732 ; N uni28BB ; G 2876 +U 10428 ; WX 732 ; N uni28BC ; G 2877 +U 10429 ; WX 732 ; N uni28BD ; G 2878 +U 10430 ; WX 732 ; N uni28BE ; G 2879 +U 10431 ; WX 732 ; N uni28BF ; G 2880 +U 10432 ; WX 732 ; N uni28C0 ; G 2881 +U 10433 ; WX 732 ; N uni28C1 ; G 2882 +U 10434 ; WX 732 ; N uni28C2 ; G 2883 +U 10435 ; WX 732 ; N uni28C3 ; G 2884 +U 10436 ; WX 732 ; N uni28C4 ; G 2885 +U 10437 ; WX 732 ; N uni28C5 ; G 2886 +U 10438 ; WX 732 ; N uni28C6 ; G 2887 +U 10439 ; WX 732 ; N uni28C7 ; G 2888 +U 10440 ; WX 732 ; N uni28C8 ; G 2889 +U 10441 ; WX 732 ; N uni28C9 ; G 2890 +U 10442 ; WX 732 ; N uni28CA ; G 2891 +U 10443 ; WX 732 ; N uni28CB ; G 2892 +U 10444 ; WX 732 ; N uni28CC ; G 2893 +U 10445 ; WX 732 ; N uni28CD ; G 2894 +U 10446 ; WX 732 ; N uni28CE ; G 2895 +U 10447 ; WX 732 ; N uni28CF ; G 2896 +U 10448 ; WX 732 ; N uni28D0 ; G 2897 +U 10449 ; WX 732 ; N uni28D1 ; G 2898 +U 10450 ; WX 732 ; N uni28D2 ; G 2899 +U 10451 ; WX 732 ; N uni28D3 ; G 2900 +U 10452 ; WX 732 ; N uni28D4 ; G 2901 +U 10453 ; WX 732 ; N uni28D5 ; G 2902 +U 10454 ; WX 732 ; N uni28D6 ; G 2903 +U 10455 ; WX 732 ; N uni28D7 ; G 2904 +U 10456 ; WX 732 ; N uni28D8 ; G 2905 +U 10457 ; WX 732 ; N uni28D9 ; G 2906 +U 10458 ; WX 732 ; N uni28DA ; G 2907 +U 10459 ; WX 732 ; N uni28DB ; G 2908 +U 10460 ; WX 732 ; N uni28DC ; G 2909 +U 10461 ; WX 732 ; N uni28DD ; G 2910 +U 10462 ; WX 732 ; N uni28DE ; G 2911 +U 10463 ; WX 732 ; N uni28DF ; G 2912 +U 10464 ; WX 732 ; N uni28E0 ; G 2913 +U 10465 ; WX 732 ; N uni28E1 ; G 2914 +U 10466 ; WX 732 ; N uni28E2 ; G 2915 +U 10467 ; WX 732 ; N uni28E3 ; G 2916 +U 10468 ; WX 732 ; N uni28E4 ; G 2917 +U 10469 ; WX 732 ; N uni28E5 ; G 2918 +U 10470 ; WX 732 ; N uni28E6 ; G 2919 +U 10471 ; WX 732 ; N uni28E7 ; G 2920 +U 10472 ; WX 732 ; N uni28E8 ; G 2921 +U 10473 ; WX 732 ; N uni28E9 ; G 2922 +U 10474 ; WX 732 ; N uni28EA ; G 2923 +U 10475 ; WX 732 ; N uni28EB ; G 2924 +U 10476 ; WX 732 ; N uni28EC ; G 2925 +U 10477 ; WX 732 ; N uni28ED ; G 2926 +U 10478 ; WX 732 ; N uni28EE ; G 2927 +U 10479 ; WX 732 ; N uni28EF ; G 2928 +U 10480 ; WX 732 ; N uni28F0 ; G 2929 +U 10481 ; WX 732 ; N uni28F1 ; G 2930 +U 10482 ; WX 732 ; N uni28F2 ; G 2931 +U 10483 ; WX 732 ; N uni28F3 ; G 2932 +U 10484 ; WX 732 ; N uni28F4 ; G 2933 +U 10485 ; WX 732 ; N uni28F5 ; G 2934 +U 10486 ; WX 732 ; N uni28F6 ; G 2935 +U 10487 ; WX 732 ; N uni28F7 ; G 2936 +U 10488 ; WX 732 ; N uni28F8 ; G 2937 +U 10489 ; WX 732 ; N uni28F9 ; G 2938 +U 10490 ; WX 732 ; N uni28FA ; G 2939 +U 10491 ; WX 732 ; N uni28FB ; G 2940 +U 10492 ; WX 732 ; N uni28FC ; G 2941 +U 10493 ; WX 732 ; N uni28FD ; G 2942 +U 10494 ; WX 732 ; N uni28FE ; G 2943 +U 10495 ; WX 732 ; N uni28FF ; G 2944 +U 10496 ; WX 838 ; N uni2900 ; G 2945 +U 10497 ; WX 838 ; N uni2901 ; G 2946 +U 10498 ; WX 838 ; N uni2902 ; G 2947 +U 10499 ; WX 838 ; N uni2903 ; G 2948 +U 10500 ; WX 838 ; N uni2904 ; G 2949 +U 10501 ; WX 838 ; N uni2905 ; G 2950 +U 10502 ; WX 838 ; N uni2906 ; G 2951 +U 10503 ; WX 838 ; N uni2907 ; G 2952 +U 10504 ; WX 838 ; N uni2908 ; G 2953 +U 10505 ; WX 838 ; N uni2909 ; G 2954 +U 10506 ; WX 838 ; N uni290A ; G 2955 +U 10507 ; WX 838 ; N uni290B ; G 2956 +U 10508 ; WX 838 ; N uni290C ; G 2957 +U 10509 ; WX 838 ; N uni290D ; G 2958 +U 10510 ; WX 838 ; N uni290E ; G 2959 +U 10511 ; WX 838 ; N uni290F ; G 2960 +U 10512 ; WX 838 ; N uni2910 ; G 2961 +U 10513 ; WX 838 ; N uni2911 ; G 2962 +U 10514 ; WX 838 ; N uni2912 ; G 2963 +U 10515 ; WX 838 ; N uni2913 ; G 2964 +U 10516 ; WX 838 ; N uni2914 ; G 2965 +U 10517 ; WX 838 ; N uni2915 ; G 2966 +U 10518 ; WX 838 ; N uni2916 ; G 2967 +U 10519 ; WX 838 ; N uni2917 ; G 2968 +U 10520 ; WX 838 ; N uni2918 ; G 2969 +U 10521 ; WX 838 ; N uni2919 ; G 2970 +U 10522 ; WX 838 ; N uni291A ; G 2971 +U 10523 ; WX 838 ; N uni291B ; G 2972 +U 10524 ; WX 838 ; N uni291C ; G 2973 +U 10525 ; WX 838 ; N uni291D ; G 2974 +U 10526 ; WX 838 ; N uni291E ; G 2975 +U 10527 ; WX 838 ; N uni291F ; G 2976 +U 10528 ; WX 838 ; N uni2920 ; G 2977 +U 10529 ; WX 838 ; N uni2921 ; G 2978 +U 10530 ; WX 838 ; N uni2922 ; G 2979 +U 10531 ; WX 838 ; N uni2923 ; G 2980 +U 10532 ; WX 838 ; N uni2924 ; G 2981 +U 10533 ; WX 838 ; N uni2925 ; G 2982 +U 10534 ; WX 838 ; N uni2926 ; G 2983 +U 10535 ; WX 838 ; N uni2927 ; G 2984 +U 10536 ; WX 838 ; N uni2928 ; G 2985 +U 10537 ; WX 838 ; N uni2929 ; G 2986 +U 10538 ; WX 838 ; N uni292A ; G 2987 +U 10539 ; WX 838 ; N uni292B ; G 2988 +U 10540 ; WX 838 ; N uni292C ; G 2989 +U 10541 ; WX 838 ; N uni292D ; G 2990 +U 10542 ; WX 838 ; N uni292E ; G 2991 +U 10543 ; WX 838 ; N uni292F ; G 2992 +U 10544 ; WX 838 ; N uni2930 ; G 2993 +U 10545 ; WX 838 ; N uni2931 ; G 2994 +U 10546 ; WX 838 ; N uni2932 ; G 2995 +U 10547 ; WX 838 ; N uni2933 ; G 2996 +U 10548 ; WX 838 ; N uni2934 ; G 2997 +U 10549 ; WX 838 ; N uni2935 ; G 2998 +U 10550 ; WX 838 ; N uni2936 ; G 2999 +U 10551 ; WX 838 ; N uni2937 ; G 3000 +U 10552 ; WX 838 ; N uni2938 ; G 3001 +U 10553 ; WX 838 ; N uni2939 ; G 3002 +U 10554 ; WX 838 ; N uni293A ; G 3003 +U 10555 ; WX 838 ; N uni293B ; G 3004 +U 10556 ; WX 838 ; N uni293C ; G 3005 +U 10557 ; WX 838 ; N uni293D ; G 3006 +U 10558 ; WX 838 ; N uni293E ; G 3007 +U 10559 ; WX 838 ; N uni293F ; G 3008 +U 10560 ; WX 838 ; N uni2940 ; G 3009 +U 10561 ; WX 838 ; N uni2941 ; G 3010 +U 10562 ; WX 838 ; N uni2942 ; G 3011 +U 10563 ; WX 838 ; N uni2943 ; G 3012 +U 10564 ; WX 838 ; N uni2944 ; G 3013 +U 10565 ; WX 838 ; N uni2945 ; G 3014 +U 10566 ; WX 838 ; N uni2946 ; G 3015 +U 10567 ; WX 838 ; N uni2947 ; G 3016 +U 10568 ; WX 838 ; N uni2948 ; G 3017 +U 10569 ; WX 838 ; N uni2949 ; G 3018 +U 10570 ; WX 838 ; N uni294A ; G 3019 +U 10571 ; WX 838 ; N uni294B ; G 3020 +U 10572 ; WX 838 ; N uni294C ; G 3021 +U 10573 ; WX 838 ; N uni294D ; G 3022 +U 10574 ; WX 838 ; N uni294E ; G 3023 +U 10575 ; WX 838 ; N uni294F ; G 3024 +U 10576 ; WX 838 ; N uni2950 ; G 3025 +U 10577 ; WX 838 ; N uni2951 ; G 3026 +U 10578 ; WX 838 ; N uni2952 ; G 3027 +U 10579 ; WX 838 ; N uni2953 ; G 3028 +U 10580 ; WX 838 ; N uni2954 ; G 3029 +U 10581 ; WX 838 ; N uni2955 ; G 3030 +U 10582 ; WX 838 ; N uni2956 ; G 3031 +U 10583 ; WX 838 ; N uni2957 ; G 3032 +U 10584 ; WX 838 ; N uni2958 ; G 3033 +U 10585 ; WX 838 ; N uni2959 ; G 3034 +U 10586 ; WX 838 ; N uni295A ; G 3035 +U 10587 ; WX 838 ; N uni295B ; G 3036 +U 10588 ; WX 838 ; N uni295C ; G 3037 +U 10589 ; WX 838 ; N uni295D ; G 3038 +U 10590 ; WX 838 ; N uni295E ; G 3039 +U 10591 ; WX 838 ; N uni295F ; G 3040 +U 10592 ; WX 838 ; N uni2960 ; G 3041 +U 10593 ; WX 838 ; N uni2961 ; G 3042 +U 10594 ; WX 838 ; N uni2962 ; G 3043 +U 10595 ; WX 838 ; N uni2963 ; G 3044 +U 10596 ; WX 838 ; N uni2964 ; G 3045 +U 10597 ; WX 838 ; N uni2965 ; G 3046 +U 10598 ; WX 838 ; N uni2966 ; G 3047 +U 10599 ; WX 838 ; N uni2967 ; G 3048 +U 10600 ; WX 838 ; N uni2968 ; G 3049 +U 10601 ; WX 838 ; N uni2969 ; G 3050 +U 10602 ; WX 838 ; N uni296A ; G 3051 +U 10603 ; WX 838 ; N uni296B ; G 3052 +U 10604 ; WX 838 ; N uni296C ; G 3053 +U 10605 ; WX 838 ; N uni296D ; G 3054 +U 10606 ; WX 838 ; N uni296E ; G 3055 +U 10607 ; WX 838 ; N uni296F ; G 3056 +U 10608 ; WX 838 ; N uni2970 ; G 3057 +U 10609 ; WX 838 ; N uni2971 ; G 3058 +U 10610 ; WX 838 ; N uni2972 ; G 3059 +U 10611 ; WX 838 ; N uni2973 ; G 3060 +U 10612 ; WX 838 ; N uni2974 ; G 3061 +U 10613 ; WX 838 ; N uni2975 ; G 3062 +U 10614 ; WX 838 ; N uni2976 ; G 3063 +U 10615 ; WX 981 ; N uni2977 ; G 3064 +U 10616 ; WX 838 ; N uni2978 ; G 3065 +U 10617 ; WX 838 ; N uni2979 ; G 3066 +U 10618 ; WX 984 ; N uni297A ; G 3067 +U 10619 ; WX 838 ; N uni297B ; G 3068 +U 10620 ; WX 838 ; N uni297C ; G 3069 +U 10621 ; WX 838 ; N uni297D ; G 3070 +U 10622 ; WX 838 ; N uni297E ; G 3071 +U 10623 ; WX 838 ; N uni297F ; G 3072 +U 10731 ; WX 494 ; N uni29EB ; G 3073 +U 10764 ; WX 1513 ; N uni2A0C ; G 3074 +U 10765 ; WX 521 ; N uni2A0D ; G 3075 +U 10766 ; WX 521 ; N uni2A0E ; G 3076 +U 10799 ; WX 838 ; N uni2A2F ; G 3077 +U 10858 ; WX 838 ; N uni2A6A ; G 3078 +U 10859 ; WX 838 ; N uni2A6B ; G 3079 +U 11008 ; WX 838 ; N uni2B00 ; G 3080 +U 11009 ; WX 838 ; N uni2B01 ; G 3081 +U 11010 ; WX 838 ; N uni2B02 ; G 3082 +U 11011 ; WX 838 ; N uni2B03 ; G 3083 +U 11012 ; WX 838 ; N uni2B04 ; G 3084 +U 11013 ; WX 838 ; N uni2B05 ; G 3085 +U 11014 ; WX 838 ; N uni2B06 ; G 3086 +U 11015 ; WX 838 ; N uni2B07 ; G 3087 +U 11016 ; WX 838 ; N uni2B08 ; G 3088 +U 11017 ; WX 838 ; N uni2B09 ; G 3089 +U 11018 ; WX 838 ; N uni2B0A ; G 3090 +U 11019 ; WX 838 ; N uni2B0B ; G 3091 +U 11020 ; WX 838 ; N uni2B0C ; G 3092 +U 11021 ; WX 838 ; N uni2B0D ; G 3093 +U 11022 ; WX 838 ; N uni2B0E ; G 3094 +U 11023 ; WX 838 ; N uni2B0F ; G 3095 +U 11024 ; WX 838 ; N uni2B10 ; G 3096 +U 11025 ; WX 838 ; N uni2B11 ; G 3097 +U 11026 ; WX 945 ; N uni2B12 ; G 3098 +U 11027 ; WX 945 ; N uni2B13 ; G 3099 +U 11028 ; WX 945 ; N uni2B14 ; G 3100 +U 11029 ; WX 945 ; N uni2B15 ; G 3101 +U 11030 ; WX 769 ; N uni2B16 ; G 3102 +U 11031 ; WX 769 ; N uni2B17 ; G 3103 +U 11032 ; WX 769 ; N uni2B18 ; G 3104 +U 11033 ; WX 769 ; N uni2B19 ; G 3105 +U 11034 ; WX 945 ; N uni2B1A ; G 3106 +U 11360 ; WX 664 ; N uni2C60 ; G 3107 +U 11361 ; WX 320 ; N uni2C61 ; G 3108 +U 11363 ; WX 673 ; N uni2C63 ; G 3109 +U 11364 ; WX 753 ; N uni2C64 ; G 3110 +U 11367 ; WX 872 ; N uni2C67 ; G 3111 +U 11368 ; WX 644 ; N uni2C68 ; G 3112 +U 11369 ; WX 747 ; N uni2C69 ; G 3113 +U 11370 ; WX 606 ; N uni2C6A ; G 3114 +U 11371 ; WX 695 ; N uni2C6B ; G 3115 +U 11372 ; WX 527 ; N uni2C6C ; G 3116 +U 11373 ; WX 782 ; N uni2C6D ; G 3117 +U 11374 ; WX 1024 ; N uni2C6E ; G 3118 +U 11375 ; WX 722 ; N uni2C6F ; G 3119 +U 11376 ; WX 782 ; N uni2C70 ; G 3120 +U 11377 ; WX 663 ; N uni2C71 ; G 3121 +U 11378 ; WX 1130 ; N uni2C72 ; G 3122 +U 11379 ; WX 939 ; N uni2C73 ; G 3123 +U 11381 ; WX 740 ; N uni2C75 ; G 3124 +U 11382 ; WX 556 ; N uni2C76 ; G 3125 +U 11383 ; WX 700 ; N uni2C77 ; G 3126 +U 11385 ; WX 501 ; N uni2C79 ; G 3127 +U 11386 ; WX 602 ; N uni2C7A ; G 3128 +U 11387 ; WX 553 ; N uni2C7B ; G 3129 +U 11388 ; WX 264 ; N uni2C7C ; G 3130 +U 11389 ; WX 455 ; N uni2C7D ; G 3131 +U 11390 ; WX 685 ; N uni2C7E ; G 3132 +U 11391 ; WX 695 ; N uni2C7F ; G 3133 +U 11520 ; WX 773 ; N uni2D00 ; G 3134 +U 11521 ; WX 635 ; N uni2D01 ; G 3135 +U 11522 ; WX 633 ; N uni2D02 ; G 3136 +U 11523 ; WX 658 ; N uni2D03 ; G 3137 +U 11524 ; WX 631 ; N uni2D04 ; G 3138 +U 11525 ; WX 962 ; N uni2D05 ; G 3139 +U 11526 ; WX 756 ; N uni2D06 ; G 3140 +U 11527 ; WX 960 ; N uni2D07 ; G 3141 +U 11528 ; WX 617 ; N uni2D08 ; G 3142 +U 11529 ; WX 646 ; N uni2D09 ; G 3143 +U 11530 ; WX 962 ; N uni2D0A ; G 3144 +U 11531 ; WX 632 ; N uni2D0B ; G 3145 +U 11532 ; WX 646 ; N uni2D0C ; G 3146 +U 11533 ; WX 962 ; N uni2D0D ; G 3147 +U 11534 ; WX 645 ; N uni2D0E ; G 3148 +U 11535 ; WX 866 ; N uni2D0F ; G 3149 +U 11536 ; WX 961 ; N uni2D10 ; G 3150 +U 11537 ; WX 645 ; N uni2D11 ; G 3151 +U 11538 ; WX 645 ; N uni2D12 ; G 3152 +U 11539 ; WX 959 ; N uni2D13 ; G 3153 +U 11540 ; WX 945 ; N uni2D14 ; G 3154 +U 11541 ; WX 863 ; N uni2D15 ; G 3155 +U 11542 ; WX 644 ; N uni2D16 ; G 3156 +U 11543 ; WX 646 ; N uni2D17 ; G 3157 +U 11544 ; WX 645 ; N uni2D18 ; G 3158 +U 11545 ; WX 649 ; N uni2D19 ; G 3159 +U 11546 ; WX 688 ; N uni2D1A ; G 3160 +U 11547 ; WX 634 ; N uni2D1B ; G 3161 +U 11548 ; WX 982 ; N uni2D1C ; G 3162 +U 11549 ; WX 681 ; N uni2D1D ; G 3163 +U 11550 ; WX 676 ; N uni2D1E ; G 3164 +U 11551 ; WX 852 ; N uni2D1F ; G 3165 +U 11552 ; WX 957 ; N uni2D20 ; G 3166 +U 11553 ; WX 632 ; N uni2D21 ; G 3167 +U 11554 ; WX 645 ; N uni2D22 ; G 3168 +U 11555 ; WX 646 ; N uni2D23 ; G 3169 +U 11556 ; WX 749 ; N uni2D24 ; G 3170 +U 11557 ; WX 914 ; N uni2D25 ; G 3171 +U 11800 ; WX 536 ; N uni2E18 ; G 3172 +U 11807 ; WX 838 ; N uni2E1F ; G 3173 +U 11810 ; WX 390 ; N uni2E22 ; G 3174 +U 11811 ; WX 390 ; N uni2E23 ; G 3175 +U 11812 ; WX 390 ; N uni2E24 ; G 3176 +U 11813 ; WX 390 ; N uni2E25 ; G 3177 +U 11822 ; WX 536 ; N uni2E2E ; G 3178 +U 42564 ; WX 685 ; N uniA644 ; G 3179 +U 42565 ; WX 513 ; N uniA645 ; G 3180 +U 42566 ; WX 395 ; N uniA646 ; G 3181 +U 42567 ; WX 392 ; N uniA647 ; G 3182 +U 42576 ; WX 1104 ; N uniA650 ; G 3183 +U 42577 ; WX 888 ; N uniA651 ; G 3184 +U 42580 ; WX 1193 ; N uniA654 ; G 3185 +U 42581 ; WX 871 ; N uniA655 ; G 3186 +U 42582 ; WX 1140 ; N uniA656 ; G 3187 +U 42583 ; WX 899 ; N uniA657 ; G 3188 +U 42648 ; WX 1416 ; N uniA698 ; G 3189 +U 42649 ; WX 999 ; N uniA699 ; G 3190 +U 42760 ; WX 493 ; N uniA708 ; G 3191 +U 42761 ; WX 493 ; N uniA709 ; G 3192 +U 42762 ; WX 493 ; N uniA70A ; G 3193 +U 42763 ; WX 493 ; N uniA70B ; G 3194 +U 42764 ; WX 493 ; N uniA70C ; G 3195 +U 42765 ; WX 493 ; N uniA70D ; G 3196 +U 42766 ; WX 493 ; N uniA70E ; G 3197 +U 42767 ; WX 493 ; N uniA70F ; G 3198 +U 42768 ; WX 493 ; N uniA710 ; G 3199 +U 42769 ; WX 493 ; N uniA711 ; G 3200 +U 42770 ; WX 493 ; N uniA712 ; G 3201 +U 42771 ; WX 493 ; N uniA713 ; G 3202 +U 42772 ; WX 493 ; N uniA714 ; G 3203 +U 42773 ; WX 493 ; N uniA715 ; G 3204 +U 42774 ; WX 493 ; N uniA716 ; G 3205 +U 42779 ; WX 369 ; N uniA71B ; G 3206 +U 42780 ; WX 369 ; N uniA71C ; G 3207 +U 42781 ; WX 253 ; N uniA71D ; G 3208 +U 42782 ; WX 253 ; N uniA71E ; G 3209 +U 42783 ; WX 253 ; N uniA71F ; G 3210 +U 42790 ; WX 872 ; N uniA726 ; G 3211 +U 42791 ; WX 634 ; N uniA727 ; G 3212 +U 42792 ; WX 843 ; N uniA728 ; G 3213 +U 42793 ; WX 754 ; N uniA729 ; G 3214 +U 42794 ; WX 612 ; N uniA72A ; G 3215 +U 42795 ; WX 560 ; N uniA72B ; G 3216 +U 42796 ; WX 548 ; N uniA72C ; G 3217 +U 42797 ; WX 531 ; N uniA72D ; G 3218 +U 42798 ; WX 629 ; N uniA72E ; G 3219 +U 42799 ; WX 610 ; N uniA72F ; G 3220 +U 42800 ; WX 514 ; N uniA730 ; G 3221 +U 42801 ; WX 513 ; N uniA731 ; G 3222 +U 42802 ; WX 1195 ; N uniA732 ; G 3223 +U 42803 ; WX 944 ; N uniA733 ; G 3224 +U 42804 ; WX 1226 ; N uniA734 ; G 3225 +U 42805 ; WX 950 ; N uniA735 ; G 3226 +U 42806 ; WX 1149 ; N uniA736 ; G 3227 +U 42807 ; WX 934 ; N uniA737 ; G 3228 +U 42808 ; WX 968 ; N uniA738 ; G 3229 +U 42809 ; WX 784 ; N uniA739 ; G 3230 +U 42810 ; WX 968 ; N uniA73A ; G 3231 +U 42811 ; WX 784 ; N uniA73B ; G 3232 +U 42812 ; WX 962 ; N uniA73C ; G 3233 +U 42813 ; WX 824 ; N uniA73D ; G 3234 +U 42814 ; WX 765 ; N uniA73E ; G 3235 +U 42815 ; WX 560 ; N uniA73F ; G 3236 +U 42816 ; WX 774 ; N uniA740 ; G 3237 +U 42817 ; WX 625 ; N uniA741 ; G 3238 +U 42822 ; WX 787 ; N uniA746 ; G 3239 +U 42823 ; WX 434 ; N uniA747 ; G 3240 +U 42826 ; WX 932 ; N uniA74A ; G 3241 +U 42827 ; WX 711 ; N uniA74B ; G 3242 +U 42830 ; WX 1416 ; N uniA74E ; G 3243 +U 42831 ; WX 999 ; N uniA74F ; G 3244 +U 42856 ; WX 707 ; N uniA768 ; G 3245 +U 42857 ; WX 610 ; N uniA769 ; G 3246 +U 42875 ; WX 612 ; N uniA77B ; G 3247 +U 42876 ; WX 478 ; N uniA77C ; G 3248 +U 42880 ; WX 664 ; N uniA780 ; G 3249 +U 42881 ; WX 320 ; N uniA781 ; G 3250 +U 42882 ; WX 843 ; N uniA782 ; G 3251 +U 42883 ; WX 644 ; N uniA783 ; G 3252 +U 42884 ; WX 612 ; N uniA784 ; G 3253 +U 42885 ; WX 478 ; N uniA785 ; G 3254 +U 42886 ; WX 765 ; N uniA786 ; G 3255 +U 42887 ; WX 560 ; N uniA787 ; G 3256 +U 42891 ; WX 402 ; N uniA78B ; G 3257 +U 42892 ; WX 275 ; N uniA78C ; G 3258 +U 42893 ; WX 773 ; N uniA78D ; G 3259 +U 42896 ; WX 875 ; N uniA790 ; G 3260 +U 42897 ; WX 644 ; N uniA791 ; G 3261 +U 42922 ; WX 872 ; N uniA7AA ; G 3262 +U 43000 ; WX 549 ; N uniA7F8 ; G 3263 +U 43001 ; WX 623 ; N uniA7F9 ; G 3264 +U 43002 ; WX 957 ; N uniA7FA ; G 3265 +U 43003 ; WX 694 ; N uniA7FB ; G 3266 +U 43004 ; WX 673 ; N uniA7FC ; G 3267 +U 43005 ; WX 1024 ; N uniA7FD ; G 3268 +U 43006 ; WX 395 ; N uniA7FE ; G 3269 +U 43007 ; WX 1201 ; N uniA7FF ; G 3270 +U 62464 ; WX 654 ; N uniF400 ; G 3271 +U 62465 ; WX 665 ; N uniF401 ; G 3272 +U 62466 ; WX 714 ; N uniF402 ; G 3273 +U 62467 ; WX 947 ; N uniF403 ; G 3274 +U 62468 ; WX 665 ; N uniF404 ; G 3275 +U 62469 ; WX 659 ; N uniF405 ; G 3276 +U 62470 ; WX 725 ; N uniF406 ; G 3277 +U 62471 ; WX 986 ; N uniF407 ; G 3278 +U 62472 ; WX 665 ; N uniF408 ; G 3279 +U 62473 ; WX 665 ; N uniF409 ; G 3280 +U 62474 ; WX 1257 ; N uniF40A ; G 3281 +U 62475 ; WX 683 ; N uniF40B ; G 3282 +U 62476 ; WX 682 ; N uniF40C ; G 3283 +U 62477 ; WX 953 ; N uniF40D ; G 3284 +U 62478 ; WX 665 ; N uniF40E ; G 3285 +U 62479 ; WX 682 ; N uniF40F ; G 3286 +U 62480 ; WX 999 ; N uniF410 ; G 3287 +U 62481 ; WX 746 ; N uniF411 ; G 3288 +U 62482 ; WX 798 ; N uniF412 ; G 3289 +U 62483 ; WX 748 ; N uniF413 ; G 3290 +U 62484 ; WX 944 ; N uniF414 ; G 3291 +U 62485 ; WX 681 ; N uniF415 ; G 3292 +U 62486 ; WX 936 ; N uniF416 ; G 3293 +U 62487 ; WX 680 ; N uniF417 ; G 3294 +U 62488 ; WX 688 ; N uniF418 ; G 3295 +U 62489 ; WX 682 ; N uniF419 ; G 3296 +U 62490 ; WX 729 ; N uniF41A ; G 3297 +U 62491 ; WX 682 ; N uniF41B ; G 3298 +U 62492 ; WX 688 ; N uniF41C ; G 3299 +U 62493 ; WX 666 ; N uniF41D ; G 3300 +U 62494 ; WX 729 ; N uniF41E ; G 3301 +U 62495 ; WX 884 ; N uniF41F ; G 3302 +U 62496 ; WX 665 ; N uniF420 ; G 3303 +U 62497 ; WX 706 ; N uniF421 ; G 3304 +U 62498 ; WX 666 ; N uniF422 ; G 3305 +U 62499 ; WX 665 ; N uniF423 ; G 3306 +U 62500 ; WX 665 ; N uniF424 ; G 3307 +U 62501 ; WX 722 ; N uniF425 ; G 3308 +U 62502 ; WX 961 ; N uniF426 ; G 3309 +U 62504 ; WX 904 ; N uniF428 ; G 3310 +U 63173 ; WX 602 ; N uniF6C5 ; G 3311 +U 63185 ; WX 500 ; N cyrBreve ; G 3312 +U 63188 ; WX 500 ; N cyrbreve ; G 3313 +U 64256 ; WX 710 ; N uniFB00 ; G 3314 +U 64257 ; WX 667 ; N fi ; G 3315 +U 64258 ; WX 667 ; N fl ; G 3316 +U 64259 ; WX 1028 ; N uniFB03 ; G 3317 +U 64260 ; WX 1030 ; N uniFB04 ; G 3318 +U 64261 ; WX 771 ; N uniFB05 ; G 3319 +U 64262 ; WX 933 ; N uniFB06 ; G 3320 +U 65024 ; WX 0 ; N uniFE00 ; G 3321 +U 65025 ; WX 0 ; N uniFE01 ; G 3322 +U 65026 ; WX 0 ; N uniFE02 ; G 3323 +U 65027 ; WX 0 ; N uniFE03 ; G 3324 +U 65028 ; WX 0 ; N uniFE04 ; G 3325 +U 65029 ; WX 0 ; N uniFE05 ; G 3326 +U 65030 ; WX 0 ; N uniFE06 ; G 3327 +U 65031 ; WX 0 ; N uniFE07 ; G 3328 +U 65032 ; WX 0 ; N uniFE08 ; G 3329 +U 65033 ; WX 0 ; N uniFE09 ; G 3330 +U 65034 ; WX 0 ; N uniFE0A ; G 3331 +U 65035 ; WX 0 ; N uniFE0B ; G 3332 +U 65036 ; WX 0 ; N uniFE0C ; G 3333 +U 65037 ; WX 0 ; N uniFE0D ; G 3334 +U 65038 ; WX 0 ; N uniFE0E ; G 3335 +U 65039 ; WX 0 ; N uniFE0F ; G 3336 +U 65529 ; WX 0 ; N uniFFF9 ; G 3337 +U 65530 ; WX 0 ; N uniFFFA ; G 3338 +U 65531 ; WX 0 ; N uniFFFB ; G 3339 +U 65532 ; WX 0 ; N uniFFFC ; G 3340 +U 65533 ; WX 1025 ; N uniFFFD ; G 3341 +EndCharMetrics +StartKernData +StartKernPairs 1367 + +KPX dollar seven -112 +KPX dollar nine -102 +KPX dollar colon -83 +KPX dollar less -83 +KPX dollar I -36 +KPX dollar W -36 +KPX dollar Y -83 +KPX dollar Z -92 +KPX dollar backslash -83 +KPX dollar questiondown -83 +KPX dollar Aacute -83 +KPX dollar Hcircumflex -112 +KPX dollar hcircumflex -36 +KPX dollar Hbar -112 +KPX dollar hbar -36 +KPX dollar Kcommaaccent -83 +KPX dollar kcommaaccent -92 +KPX dollar kgreenlandic -83 +KPX dollar Lacute -83 +KPX dollar lacute -83 +KPX dollar uni01DC -112 +KPX dollar uni01DD -36 +KPX dollar uni01F4 -83 + +KPX percent ampersand 38 +KPX percent asterisk 38 +KPX percent two 38 +KPX percent less -36 +KPX percent Egrave 38 +KPX percent Ecircumflex 38 +KPX percent Igrave 38 +KPX percent Icircumflex 38 +KPX percent Thorn 38 +KPX percent agrave 38 +KPX percent acircumflex 38 +KPX percent adieresis 38 +KPX percent Dcaron 38 +KPX percent Dcroat 38 +KPX percent Emacron 38 +KPX percent Ebreve 38 +KPX percent kgreenlandic -36 +KPX percent lacute -36 +KPX percent uni01AC 38 +KPX percent uni01AE 38 +KPX percent uni01F0 38 +KPX percent uni01F4 -36 + + +KPX quotesingle nine -36 + + +KPX parenright dollar -178 +KPX parenright D -139 +KPX parenright H -112 +KPX parenright R -112 +KPX parenright cent -139 +KPX parenright sterling -139 +KPX parenright currency -139 +KPX parenright yen -139 +KPX parenright brokenbar -139 +KPX parenright section -139 +KPX parenright dieresis -139 +KPX parenright ordfeminine -112 +KPX parenright guillemotleft -112 +KPX parenright logicalnot -112 +KPX parenright sfthyphen -112 +KPX parenright acute -112 +KPX parenright mu -112 +KPX parenright paragraph -112 +KPX parenright periodcentered -112 +KPX parenright cedilla -112 +KPX parenright ordmasculine -112 +KPX parenright Acircumflex -178 +KPX parenright Atilde -139 +KPX parenright Adieresis -178 +KPX parenright Aring -139 +KPX parenright AE -178 +KPX parenright Ccedilla -139 +KPX parenright Otilde -112 +KPX parenright multiply -112 +KPX parenright Ugrave -112 +KPX parenright Ucircumflex -112 +KPX parenright Yacute -112 +KPX parenright dcaron -112 +KPX parenright dmacron -112 +KPX parenright emacron -112 +KPX parenright ebreve -112 +KPX parenright uni01A5 -139 +KPX parenright uni01AD -112 +KPX parenright Uhorn -112 +KPX parenright uni01F1 -112 + +KPX asterisk less -36 +KPX asterisk lacute -36 + + +KPX period dollar -83 +KPX period ampersand -55 +KPX period two -55 +KPX period eight -73 +KPX period colon -73 +KPX period less -55 +KPX period H -55 +KPX period R -55 +KPX period X -45 +KPX period backslash -131 +KPX period ordfeminine -55 +KPX period guillemotleft -55 +KPX period logicalnot -55 +KPX period sfthyphen -55 +KPX period acute -55 +KPX period mu -55 +KPX period paragraph -55 +KPX period periodcentered -55 +KPX period cedilla -55 +KPX period ordmasculine -36 +KPX period guillemotright -45 +KPX period onequarter -45 +KPX period onehalf -45 +KPX period threequarters -45 +KPX period questiondown -131 +KPX period Aacute -131 +KPX period Egrave -55 +KPX period Icircumflex -55 +KPX period Yacute -55 +KPX period Ebreve -55 +KPX period ebreve -55 +KPX period Idot -73 +KPX period dotlessi -45 +KPX period lacute -55 + +KPX slash seven -167 +KPX slash eight -112 +KPX slash nine -243 +KPX slash colon -178 +KPX slash less -131 +KPX slash backslash -36 +KPX slash questiondown -36 +KPX slash Aacute -36 +KPX slash Hbar -167 +KPX slash Idot -112 +KPX slash lacute -131 + + +KPX two nine -36 +KPX two semicolon -36 + +KPX three dollar -188 +KPX three eight -36 +KPX three D -92 +KPX three H -92 +KPX three R -83 +KPX three V -55 +KPX three cent -92 +KPX three sterling -92 +KPX three currency -92 +KPX three yen -92 +KPX three brokenbar -92 +KPX three section -92 +KPX three dieresis -92 +KPX three ordfeminine -92 +KPX three guillemotleft -92 +KPX three logicalnot -92 +KPX three sfthyphen -92 +KPX three acute -83 +KPX three mu -83 +KPX three paragraph -83 +KPX three periodcentered -83 +KPX three cedilla -83 +KPX three ordmasculine -83 +KPX three Yacute -92 +KPX three ebreve -83 +KPX three gdotaccent -55 +KPX three gcommaaccent -55 +KPX three Idot -36 + + +KPX five seven -36 +KPX five nine -73 +KPX five colon -45 +KPX five less -63 +KPX five D 47 +KPX five backslash -36 +KPX five cent 47 +KPX five sterling 47 +KPX five currency 47 +KPX five yen 47 +KPX five brokenbar 47 +KPX five section 47 +KPX five dieresis 47 +KPX five ordmasculine 38 +KPX five questiondown -36 +KPX five Aacute -36 +KPX five Hbar -36 +KPX five lacute -63 + +KPX six six -36 +KPX six Gdotaccent -36 +KPX six Gcommaaccent -36 + +KPX seven dollar -112 +KPX seven seven 38 +KPX seven D -159 +KPX seven F -159 +KPX seven H -159 +KPX seven R -159 +KPX seven V -149 +KPX seven Z -73 +KPX seven cent -59 +KPX seven sterling -159 +KPX seven currency -59 +KPX seven yen -59 +KPX seven brokenbar -59 +KPX seven section -59 +KPX seven dieresis -159 +KPX seven copyright -159 +KPX seven ordfeminine -99 +KPX seven guillemotleft -159 +KPX seven logicalnot -99 +KPX seven sfthyphen -99 +KPX seven acute -79 +KPX seven mu -159 +KPX seven paragraph -79 +KPX seven periodcentered -79 +KPX seven cedilla -79 +KPX seven ordmasculine -159 +KPX seven Eacute -159 +KPX seven Idieresis -159 +KPX seven Yacute -159 +KPX seven ebreve -159 +KPX seven gdotaccent -149 +KPX seven gcommaaccent -149 +KPX seven Hbar 38 + +KPX eight dollar -63 +KPX eight hyphen -55 + +KPX nine dollar -139 +KPX nine two -36 +KPX nine D -188 +KPX nine H -188 +KPX nine L -36 +KPX nine R -188 +KPX nine X -131 +KPX nine backslash -83 +KPX nine cent -188 +KPX nine sterling -188 +KPX nine currency -188 +KPX nine yen -188 +KPX nine brokenbar -188 +KPX nine section -188 +KPX nine dieresis -188 +KPX nine ordfeminine -188 +KPX nine guillemotleft -188 +KPX nine logicalnot -188 +KPX nine sfthyphen -188 +KPX nine acute -188 +KPX nine mu -188 +KPX nine paragraph -188 +KPX nine periodcentered -188 +KPX nine cedilla -188 +KPX nine ordmasculine -188 +KPX nine guillemotright -131 +KPX nine onequarter -131 +KPX nine onehalf -131 +KPX nine threequarters -131 +KPX nine questiondown -83 +KPX nine Aacute -83 +KPX nine Yacute -188 +KPX nine Ebreve -36 +KPX nine ebreve -188 +KPX nine dotlessi -131 + +KPX colon dollar -102 +KPX colon D -178 +KPX colon H -167 +KPX colon L -36 +KPX colon R -139 +KPX colon U -92 +KPX colon X -83 +KPX colon backslash -45 +KPX colon cent -178 +KPX colon sterling -178 +KPX colon currency -178 +KPX colon yen -178 +KPX colon brokenbar -178 +KPX colon section -178 +KPX colon dieresis -139 +KPX colon ordfeminine -167 +KPX colon guillemotleft -167 +KPX colon logicalnot -167 +KPX colon sfthyphen -167 +KPX colon acute -139 +KPX colon mu -139 +KPX colon paragraph -139 +KPX colon periodcentered -139 +KPX colon cedilla -139 +KPX colon ordmasculine -139 +KPX colon guillemotright -83 +KPX colon onequarter -83 +KPX colon onehalf -83 +KPX colon threequarters -83 +KPX colon questiondown -45 +KPX colon Aacute -45 +KPX colon Yacute -167 +KPX colon ebreve -139 +KPX colon edotaccent -92 +KPX colon ecaron -92 +KPX colon dotlessi -83 + +KPX semicolon dollar -73 +KPX semicolon ampersand -36 +KPX semicolon two -36 +KPX semicolon Egrave -36 +KPX semicolon Icircumflex -36 +KPX semicolon Ebreve -36 + +KPX less dollar -159 +KPX less ampersand -36 +KPX less D -159 +KPX less H -178 +KPX less L -36 +KPX less R -178 +KPX less X -178 +KPX less cent -159 +KPX less sterling -159 +KPX less currency -159 +KPX less yen -159 +KPX less brokenbar -159 +KPX less section -159 +KPX less dieresis -196 +KPX less ordfeminine -178 +KPX less guillemotleft -178 +KPX less logicalnot -178 +KPX less sfthyphen -178 +KPX less acute -178 +KPX less mu -178 +KPX less paragraph -178 +KPX less periodcentered -178 +KPX less cedilla -178 +KPX less ordmasculine -178 +KPX less guillemotright -178 +KPX less onequarter -178 +KPX less onehalf -178 +KPX less threequarters -178 +KPX less Egrave -36 +KPX less Icircumflex -36 +KPX less Yacute -178 +KPX less ebreve -215 +KPX less dotlessi -178 + + + + + + + + + + + + + + + + + + + + + +KPX Acircumflex seven -112 +KPX Acircumflex nine -102 +KPX Acircumflex colon -83 +KPX Acircumflex less -83 +KPX Acircumflex I -36 +KPX Acircumflex W -36 +KPX Acircumflex Y -83 +KPX Acircumflex Z -92 +KPX Acircumflex backslash -83 +KPX Acircumflex questiondown -83 +KPX Acircumflex Aacute -83 +KPX Acircumflex Hcircumflex -112 +KPX Acircumflex hcircumflex -36 +KPX Acircumflex Hbar -112 +KPX Acircumflex hbar -36 +KPX Acircumflex Kcommaaccent -83 +KPX Acircumflex kcommaaccent -92 +KPX Acircumflex kgreenlandic -83 +KPX Acircumflex Lacute -83 +KPX Acircumflex lacute -83 +KPX Acircumflex uni01DC -112 +KPX Acircumflex uni01DD -36 +KPX Acircumflex uni01F4 -83 + +KPX Adieresis seven -112 +KPX Adieresis nine -102 +KPX Adieresis colon -83 +KPX Adieresis less -83 +KPX Adieresis I -36 +KPX Adieresis W -36 +KPX Adieresis Y -83 +KPX Adieresis Z -92 +KPX Adieresis backslash -83 +KPX Adieresis questiondown -83 +KPX Adieresis Aacute -83 +KPX Adieresis Hcircumflex -112 +KPX Adieresis hcircumflex -36 +KPX Adieresis Hbar -112 +KPX Adieresis hbar -36 +KPX Adieresis Kcommaaccent -83 +KPX Adieresis kcommaaccent -92 +KPX Adieresis kgreenlandic -83 +KPX Adieresis Lacute -83 +KPX Adieresis lacute -83 +KPX Adieresis uni01DC -112 +KPX Adieresis uni01DD -36 +KPX Adieresis uni01F4 -83 + +KPX AE seven -112 +KPX AE nine -102 +KPX AE colon -83 +KPX AE less -83 +KPX AE I -36 +KPX AE W -36 +KPX AE Y -83 +KPX AE Z -92 +KPX AE backslash -83 +KPX AE questiondown -83 +KPX AE Aacute -83 +KPX AE Hcircumflex -112 +KPX AE hcircumflex -36 +KPX AE Hbar -112 +KPX AE hbar -36 +KPX AE Kcommaaccent -83 +KPX AE kcommaaccent -92 +KPX AE kgreenlandic -83 +KPX AE Lacute -83 +KPX AE lacute -83 +KPX AE uni01DC -112 +KPX AE uni01DD -36 +KPX AE uni01F4 -83 + + + + + +KPX Eth nine -36 + +KPX Ograve nine -36 + + +KPX agrave less -36 +KPX agrave lacute -36 + +KPX ucircumflex seven -167 +KPX ucircumflex eight -112 +KPX ucircumflex nine -243 +KPX ucircumflex colon -178 +KPX ucircumflex less -131 +KPX ucircumflex backslash -36 +KPX ucircumflex questiondown -36 +KPX ucircumflex Aacute -36 +KPX ucircumflex Hbar -167 +KPX ucircumflex Idot -112 +KPX ucircumflex lacute -131 + +KPX ydieresis seven -167 +KPX ydieresis eight -112 +KPX ydieresis nine -243 +KPX ydieresis colon -178 +KPX ydieresis less -131 +KPX ydieresis backslash -36 +KPX ydieresis questiondown -36 +KPX ydieresis Aacute -36 +KPX ydieresis Hbar -167 +KPX ydieresis Idot -112 +KPX ydieresis lacute -131 + +KPX Abreve O -227 + +KPX abreve seven -167 +KPX abreve eight -36 +KPX abreve nine -243 +KPX abreve colon -178 +KPX abreve less -206 +KPX abreve backslash -36 +KPX abreve questiondown -36 +KPX abreve Aacute -36 +KPX abreve Hbar -167 +KPX abreve Idot -36 +KPX abreve lacute -206 + + + +KPX Edotaccent seven -36 +KPX Edotaccent nine -73 +KPX Edotaccent colon -45 +KPX Edotaccent less -63 +KPX Edotaccent D 47 +KPX Edotaccent backslash -36 +KPX Edotaccent cent 47 +KPX Edotaccent sterling 47 +KPX Edotaccent currency 47 +KPX Edotaccent yen 47 +KPX Edotaccent brokenbar 47 +KPX Edotaccent section 47 +KPX Edotaccent dieresis 47 +KPX Edotaccent ordmasculine 38 +KPX Edotaccent questiondown -36 +KPX Edotaccent Aacute -36 +KPX Edotaccent Hbar -36 +KPX Edotaccent lacute -63 + + +KPX Ecaron seven -36 +KPX Ecaron nine -73 +KPX Ecaron colon -45 +KPX Ecaron less -63 +KPX Ecaron D 47 +KPX Ecaron backslash -36 +KPX Ecaron cent 47 +KPX Ecaron sterling 47 +KPX Ecaron currency 47 +KPX Ecaron yen 47 +KPX Ecaron brokenbar 47 +KPX Ecaron section 47 +KPX Ecaron dieresis 47 +KPX Ecaron ordmasculine 38 +KPX Ecaron questiondown -36 +KPX Ecaron Aacute -36 +KPX Ecaron Hbar -36 +KPX Ecaron lacute -63 + + +KPX Gdotaccent six -36 +KPX Gdotaccent Gdotaccent -36 +KPX Gdotaccent Gcommaaccent -36 + +KPX Gcommaaccent six -36 +KPX Gcommaaccent Gdotaccent -36 +KPX Gcommaaccent Gcommaaccent -36 + +KPX Hbar dollar -112 +KPX Hbar seven 38 +KPX Hbar D -159 +KPX Hbar F -159 +KPX Hbar H -159 +KPX Hbar R -159 +KPX Hbar V -149 +KPX Hbar Z -73 +KPX Hbar cent -159 +KPX Hbar sterling -159 +KPX Hbar currency -159 +KPX Hbar yen -159 +KPX Hbar brokenbar -159 +KPX Hbar section -159 +KPX Hbar dieresis -159 +KPX Hbar copyright -159 +KPX Hbar ordfeminine -159 +KPX Hbar guillemotleft -159 +KPX Hbar logicalnot -159 +KPX Hbar sfthyphen -159 +KPX Hbar acute -159 +KPX Hbar mu -159 +KPX Hbar paragraph -159 +KPX Hbar periodcentered -159 +KPX Hbar cedilla -159 +KPX Hbar ordmasculine -159 +KPX Hbar Eacute -159 +KPX Hbar Idieresis -159 +KPX Hbar Yacute -159 +KPX Hbar ebreve -159 +KPX Hbar gdotaccent -149 +KPX Hbar gcommaaccent -149 +KPX Hbar Hbar 38 + +KPX Idot dollar -63 +KPX Idot hyphen -55 + +KPX kcommaaccent D 110 +KPX kcommaaccent F 85 +KPX kcommaaccent G 97 +KPX kcommaaccent H 86 +KPX kcommaaccent I 220 +KPX kcommaaccent J 97 +KPX kcommaaccent L 220 +KPX kcommaaccent M 218 +KPX kcommaaccent P 125 +KPX kcommaaccent Q 125 +KPX kcommaaccent R 85 +KPX kcommaaccent S 140 +KPX kcommaaccent T 97 +KPX kcommaaccent U 125 +KPX kcommaaccent V 155 +KPX kcommaaccent W 235 +KPX kcommaaccent X 144 +KPX kcommaaccent Y 205 +KPX kcommaaccent Z 166 +KPX kcommaaccent bracketleft 174 +KPX kcommaaccent backslash 205 +KPX kcommaaccent bracketright 179 +KPX kcommaaccent kcommaaccent 261 + +KPX lacute dollar -159 +KPX lacute ampersand -36 +KPX lacute D -159 +KPX lacute H -178 +KPX lacute L -36 +KPX lacute R -178 +KPX lacute X -178 +KPX lacute cent -159 +KPX lacute sterling -159 +KPX lacute currency -159 +KPX lacute yen -159 +KPX lacute brokenbar -159 +KPX lacute section -159 +KPX lacute dieresis -196 +KPX lacute ordfeminine -178 +KPX lacute guillemotleft -178 +KPX lacute logicalnot -178 +KPX lacute sfthyphen -178 +KPX lacute acute -178 +KPX lacute mu -178 +KPX lacute paragraph -178 +KPX lacute periodcentered -178 +KPX lacute cedilla -178 +KPX lacute ordmasculine -178 +KPX lacute guillemotright -178 +KPX lacute onequarter -178 +KPX lacute onehalf -178 +KPX lacute threequarters -178 +KPX lacute Egrave -36 +KPX lacute Icircumflex -36 +KPX lacute Yacute -178 +KPX lacute ebreve -215 +KPX lacute dotlessi -178 + + +KPX uni027D dollar -264 +KPX uni027D hyphen 47 +EndKernPairs +EndKernData +EndFontMetrics diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/Helvetica-Bold.afm b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/Helvetica-Bold.afm new file mode 100644 index 0000000..f65e6df --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/Helvetica-Bold.afm @@ -0,0 +1,2829 @@ +StartFontMetrics 4.1 +Comment Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Thu May 1 12:43:52 1997 +Comment UniqueID 43052 +Comment VMusage 37169 48194 +FontName Helvetica-Bold +FullName Helvetica Bold +FamilyName Helvetica +Weight Bold +ItalicAngle 0 +IsFixedPitch false +CharacterSet ExtendedRoman +FontBBox -170 -228 1003 962 +UnderlinePosition -100 +UnderlineThickness 50 +Version 002.000 +Notice Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype-Hell AG and/or its subsidiaries. +EncodingScheme WinAnsiEncoding +CapHeight 718 +XHeight 532 +Ascender 718 +Descender -207 +StdHW 118 +StdVW 140 +StartCharMetrics 317 +C 32 ; WX 278 ; N space ; B 0 0 0 0 ; +C 160 ; WX 278 ; N space ; B 0 0 0 0 ; +C 33 ; WX 333 ; N exclam ; B 90 0 244 718 ; +C 34 ; WX 474 ; N quotedbl ; B 98 447 376 718 ; +C 35 ; WX 556 ; N numbersign ; B 18 0 538 698 ; +C 36 ; WX 556 ; N dollar ; B 30 -115 523 775 ; +C 37 ; WX 889 ; N percent ; B 28 -19 861 710 ; +C 38 ; WX 722 ; N ampersand ; B 54 -19 701 718 ; +C 146 ; WX 278 ; N quoteright ; B 69 445 209 718 ; +C 40 ; WX 333 ; N parenleft ; B 35 -208 314 734 ; +C 41 ; WX 333 ; N parenright ; B 19 -208 298 734 ; +C 42 ; WX 389 ; N asterisk ; B 27 387 362 718 ; +C 43 ; WX 584 ; N plus ; B 40 0 544 506 ; +C 44 ; WX 278 ; N comma ; B 64 -168 214 146 ; +C 45 ; WX 333 ; N hyphen ; B 27 215 306 345 ; +C 173 ; WX 333 ; N hyphen ; B 44 232 289 322 ; +C 46 ; WX 278 ; N period ; B 64 0 214 146 ; +C 47 ; WX 278 ; N slash ; B -33 -19 311 737 ; +C 48 ; WX 556 ; N zero ; B 32 -19 524 710 ; +C 49 ; WX 556 ; N one ; B 69 0 378 710 ; +C 50 ; WX 556 ; N two ; B 26 0 511 710 ; +C 51 ; WX 556 ; N three ; B 27 -19 516 710 ; +C 52 ; WX 556 ; N four ; B 27 0 526 710 ; +C 53 ; WX 556 ; N five ; B 27 -19 516 698 ; +C 54 ; WX 556 ; N six ; B 31 -19 520 710 ; +C 55 ; WX 556 ; N seven ; B 25 0 528 698 ; +C 56 ; WX 556 ; N eight ; B 32 -19 524 710 ; +C 57 ; WX 556 ; N nine ; B 30 -19 522 710 ; +C 58 ; WX 333 ; N colon ; B 92 0 242 512 ; +C 59 ; WX 333 ; N semicolon ; B 92 -168 242 512 ; +C 60 ; WX 584 ; N less ; B 38 -8 546 514 ; +C 61 ; WX 584 ; N equal ; B 40 87 544 419 ; +C 62 ; WX 584 ; N greater ; B 38 -8 546 514 ; +C 63 ; WX 611 ; N question ; B 60 0 556 727 ; +C 64 ; WX 975 ; N at ; B 118 -19 856 737 ; +C 65 ; WX 722 ; N A ; B 20 0 702 718 ; +C 66 ; WX 722 ; N B ; B 76 0 669 718 ; +C 67 ; WX 722 ; N C ; B 44 -19 684 737 ; +C 68 ; WX 722 ; N D ; B 76 0 685 718 ; +C 69 ; WX 667 ; N E ; B 76 0 621 718 ; +C 70 ; WX 611 ; N F ; B 76 0 587 718 ; +C 71 ; WX 778 ; N G ; B 44 -19 713 737 ; +C 72 ; WX 722 ; N H ; B 71 0 651 718 ; +C 73 ; WX 278 ; N I ; B 64 0 214 718 ; +C 74 ; WX 556 ; N J ; B 22 -18 484 718 ; +C 75 ; WX 722 ; N K ; B 87 0 722 718 ; +C 76 ; WX 611 ; N L ; B 76 0 583 718 ; +C 77 ; WX 833 ; N M ; B 69 0 765 718 ; +C 78 ; WX 722 ; N N ; B 69 0 654 718 ; +C 79 ; WX 778 ; N O ; B 44 -19 734 737 ; +C 80 ; WX 667 ; N P ; B 76 0 627 718 ; +C 81 ; WX 778 ; N Q ; B 44 -52 737 737 ; +C 82 ; WX 722 ; N R ; B 76 0 677 718 ; +C 83 ; WX 667 ; N S ; B 39 -19 629 737 ; +C 84 ; WX 611 ; N T ; B 14 0 598 718 ; +C 85 ; WX 722 ; N U ; B 72 -19 651 718 ; +C 86 ; WX 667 ; N V ; B 19 0 648 718 ; +C 87 ; WX 944 ; N W ; B 16 0 929 718 ; +C 88 ; WX 667 ; N X ; B 14 0 653 718 ; +C 89 ; WX 667 ; N Y ; B 15 0 653 718 ; +C 90 ; WX 611 ; N Z ; B 25 0 586 718 ; +C 91 ; WX 333 ; N bracketleft ; B 63 -196 309 722 ; +C 92 ; WX 278 ; N backslash ; B -33 -19 311 737 ; +C 93 ; WX 333 ; N bracketright ; B 24 -196 270 722 ; +C 94 ; WX 584 ; N asciicircum ; B 62 323 522 698 ; +C 95 ; WX 556 ; N underscore ; B 0 -125 556 -75 ; +C 145 ; WX 278 ; N quoteleft ; B 69 454 209 727 ; +C 97 ; WX 556 ; N a ; B 29 -14 527 546 ; +C 98 ; WX 611 ; N b ; B 61 -14 578 718 ; +C 99 ; WX 556 ; N c ; B 34 -14 524 546 ; +C 100 ; WX 611 ; N d ; B 34 -14 551 718 ; +C 101 ; WX 556 ; N e ; B 23 -14 528 546 ; +C 102 ; WX 333 ; N f ; B 10 0 318 727 ; L i fi ; L l fl ; +C 103 ; WX 611 ; N g ; B 40 -217 553 546 ; +C 104 ; WX 611 ; N h ; B 65 0 546 718 ; +C 105 ; WX 278 ; N i ; B 69 0 209 725 ; +C 106 ; WX 278 ; N j ; B 3 -214 209 725 ; +C 107 ; WX 556 ; N k ; B 69 0 562 718 ; +C 108 ; WX 278 ; N l ; B 69 0 209 718 ; +C 109 ; WX 889 ; N m ; B 64 0 826 546 ; +C 110 ; WX 611 ; N n ; B 65 0 546 546 ; +C 111 ; WX 611 ; N o ; B 34 -14 578 546 ; +C 112 ; WX 611 ; N p ; B 62 -207 578 546 ; +C 113 ; WX 611 ; N q ; B 34 -207 552 546 ; +C 114 ; WX 389 ; N r ; B 64 0 373 546 ; +C 115 ; WX 556 ; N s ; B 30 -14 519 546 ; +C 116 ; WX 333 ; N t ; B 10 -6 309 676 ; +C 117 ; WX 611 ; N u ; B 66 -14 545 532 ; +C 118 ; WX 556 ; N v ; B 13 0 543 532 ; +C 119 ; WX 778 ; N w ; B 10 0 769 532 ; +C 120 ; WX 556 ; N x ; B 15 0 541 532 ; +C 121 ; WX 556 ; N y ; B 10 -214 539 532 ; +C 122 ; WX 500 ; N z ; B 20 0 480 532 ; +C 123 ; WX 389 ; N braceleft ; B 48 -196 365 722 ; +C 124 ; WX 280 ; N bar ; B 84 -225 196 775 ; +C 125 ; WX 389 ; N braceright ; B 24 -196 341 722 ; +C 126 ; WX 584 ; N asciitilde ; B 61 163 523 343 ; +C 161 ; WX 333 ; N exclamdown ; B 90 -186 244 532 ; +C 162 ; WX 556 ; N cent ; B 34 -118 524 628 ; +C 163 ; WX 556 ; N sterling ; B 28 -16 541 718 ; +C -1 ; WX 167 ; N fraction ; B -170 -19 336 710 ; +C 165 ; WX 556 ; N yen ; B -9 0 565 698 ; +C 131 ; WX 556 ; N florin ; B -10 -210 516 737 ; +C 167 ; WX 556 ; N section ; B 34 -184 522 727 ; +C 164 ; WX 556 ; N currency ; B -3 76 559 636 ; +C 39 ; WX 238 ; N quotesingle ; B 70 447 168 718 ; +C 147 ; WX 500 ; N quotedblleft ; B 64 454 436 727 ; +C 171 ; WX 556 ; N guillemotleft ; B 88 76 468 484 ; +C 139 ; WX 333 ; N guilsinglleft ; B 83 76 250 484 ; +C 155 ; WX 333 ; N guilsinglright ; B 83 76 250 484 ; +C -1 ; WX 611 ; N fi ; B 10 0 542 727 ; +C -1 ; WX 611 ; N fl ; B 10 0 542 727 ; +C 150 ; WX 556 ; N endash ; B 0 227 556 333 ; +C 134 ; WX 556 ; N dagger ; B 36 -171 520 718 ; +C 135 ; WX 556 ; N daggerdbl ; B 36 -171 520 718 ; +C 183 ; WX 278 ; N periodcentered ; B 58 172 220 334 ; +C 182 ; WX 556 ; N paragraph ; B -8 -191 539 700 ; +C 149 ; WX 350 ; N bullet ; B 10 194 340 524 ; +C 130 ; WX 278 ; N quotesinglbase ; B 69 -146 209 127 ; +C 132 ; WX 500 ; N quotedblbase ; B 64 -146 436 127 ; +C 148 ; WX 500 ; N quotedblright ; B 64 445 436 718 ; +C 187 ; WX 556 ; N guillemotright ; B 88 76 468 484 ; +C 133 ; WX 1000 ; N ellipsis ; B 92 0 908 146 ; +C 137 ; WX 1000 ; N perthousand ; B -3 -19 1003 710 ; +C 191 ; WX 611 ; N questiondown ; B 55 -195 551 532 ; +C 96 ; WX 333 ; N grave ; B -23 604 225 750 ; +C 180 ; WX 333 ; N acute ; B 108 604 356 750 ; +C 136 ; WX 333 ; N circumflex ; B -10 604 343 750 ; +C 152 ; WX 333 ; N tilde ; B -17 610 350 737 ; +C 175 ; WX 333 ; N macron ; B -6 604 339 678 ; +C -1 ; WX 333 ; N breve ; B -2 604 335 750 ; +C -1 ; WX 333 ; N dotaccent ; B 104 614 230 729 ; +C 168 ; WX 333 ; N dieresis ; B 6 614 327 729 ; +C -1 ; WX 333 ; N ring ; B 59 568 275 776 ; +C 184 ; WX 333 ; N cedilla ; B 6 -228 245 0 ; +C -1 ; WX 333 ; N hungarumlaut ; B 9 604 486 750 ; +C -1 ; WX 333 ; N ogonek ; B 71 -228 304 0 ; +C -1 ; WX 333 ; N caron ; B -10 604 343 750 ; +C 151 ; WX 1000 ; N emdash ; B 0 227 1000 333 ; +C 198 ; WX 1000 ; N AE ; B 5 0 954 718 ; +C 170 ; WX 370 ; N ordfeminine ; B 22 401 347 737 ; +C -1 ; WX 611 ; N Lslash ; B -20 0 583 718 ; +C 216 ; WX 778 ; N Oslash ; B 33 -27 744 745 ; +C 140 ; WX 1000 ; N OE ; B 37 -19 961 737 ; +C 186 ; WX 365 ; N ordmasculine ; B 6 401 360 737 ; +C 230 ; WX 889 ; N ae ; B 29 -14 858 546 ; +C -1 ; WX 278 ; N dotlessi ; B 69 0 209 532 ; +C -1 ; WX 278 ; N lslash ; B -18 0 296 718 ; +C 248 ; WX 611 ; N oslash ; B 22 -29 589 560 ; +C 156 ; WX 944 ; N oe ; B 34 -14 912 546 ; +C 223 ; WX 611 ; N germandbls ; B 69 -14 579 731 ; +C 207 ; WX 278 ; N Idieresis ; B -21 0 300 915 ; +C 233 ; WX 556 ; N eacute ; B 23 -14 528 750 ; +C -1 ; WX 556 ; N abreve ; B 29 -14 527 750 ; +C -1 ; WX 611 ; N uhungarumlaut ; B 66 -14 625 750 ; +C -1 ; WX 556 ; N ecaron ; B 23 -14 528 750 ; +C 159 ; WX 667 ; N Ydieresis ; B 15 0 653 915 ; +C 247 ; WX 584 ; N divide ; B 40 -42 544 548 ; +C 221 ; WX 667 ; N Yacute ; B 15 0 653 936 ; +C 194 ; WX 722 ; N Acircumflex ; B 20 0 702 936 ; +C 225 ; WX 556 ; N aacute ; B 29 -14 527 750 ; +C 219 ; WX 722 ; N Ucircumflex ; B 72 -19 651 936 ; +C 253 ; WX 556 ; N yacute ; B 10 -214 539 750 ; +C -1 ; WX 556 ; N scommaaccent ; B 30 -228 519 546 ; +C 234 ; WX 556 ; N ecircumflex ; B 23 -14 528 750 ; +C -1 ; WX 722 ; N Uring ; B 72 -19 651 962 ; +C 220 ; WX 722 ; N Udieresis ; B 72 -19 651 915 ; +C -1 ; WX 556 ; N aogonek ; B 29 -224 545 546 ; +C 218 ; WX 722 ; N Uacute ; B 72 -19 651 936 ; +C -1 ; WX 611 ; N uogonek ; B 66 -228 545 532 ; +C 203 ; WX 667 ; N Edieresis ; B 76 0 621 915 ; +C -1 ; WX 722 ; N Dcroat ; B -5 0 685 718 ; +C -1 ; WX 250 ; N commaaccent ; B 64 -228 199 -50 ; +C 169 ; WX 737 ; N copyright ; B -11 -19 749 737 ; +C -1 ; WX 667 ; N Emacron ; B 76 0 621 864 ; +C -1 ; WX 556 ; N ccaron ; B 34 -14 524 750 ; +C 229 ; WX 556 ; N aring ; B 29 -14 527 776 ; +C -1 ; WX 722 ; N Ncommaaccent ; B 69 -228 654 718 ; +C -1 ; WX 278 ; N lacute ; B 69 0 329 936 ; +C 224 ; WX 556 ; N agrave ; B 29 -14 527 750 ; +C -1 ; WX 611 ; N Tcommaaccent ; B 14 -228 598 718 ; +C -1 ; WX 722 ; N Cacute ; B 44 -19 684 936 ; +C 227 ; WX 556 ; N atilde ; B 29 -14 527 737 ; +C -1 ; WX 667 ; N Edotaccent ; B 76 0 621 915 ; +C 154 ; WX 556 ; N scaron ; B 30 -14 519 750 ; +C -1 ; WX 556 ; N scedilla ; B 30 -228 519 546 ; +C 237 ; WX 278 ; N iacute ; B 69 0 329 750 ; +C -1 ; WX 494 ; N lozenge ; B 10 0 484 745 ; +C -1 ; WX 722 ; N Rcaron ; B 76 0 677 936 ; +C -1 ; WX 778 ; N Gcommaaccent ; B 44 -228 713 737 ; +C 251 ; WX 611 ; N ucircumflex ; B 66 -14 545 750 ; +C 226 ; WX 556 ; N acircumflex ; B 29 -14 527 750 ; +C -1 ; WX 722 ; N Amacron ; B 20 0 702 864 ; +C -1 ; WX 389 ; N rcaron ; B 18 0 373 750 ; +C 231 ; WX 556 ; N ccedilla ; B 34 -228 524 546 ; +C -1 ; WX 611 ; N Zdotaccent ; B 25 0 586 915 ; +C 222 ; WX 667 ; N Thorn ; B 76 0 627 718 ; +C -1 ; WX 778 ; N Omacron ; B 44 -19 734 864 ; +C -1 ; WX 722 ; N Racute ; B 76 0 677 936 ; +C -1 ; WX 667 ; N Sacute ; B 39 -19 629 936 ; +C -1 ; WX 743 ; N dcaron ; B 34 -14 750 718 ; +C -1 ; WX 722 ; N Umacron ; B 72 -19 651 864 ; +C -1 ; WX 611 ; N uring ; B 66 -14 545 776 ; +C 179 ; WX 333 ; N threesuperior ; B 8 271 326 710 ; +C 210 ; WX 778 ; N Ograve ; B 44 -19 734 936 ; +C 192 ; WX 722 ; N Agrave ; B 20 0 702 936 ; +C -1 ; WX 722 ; N Abreve ; B 20 0 702 936 ; +C 215 ; WX 584 ; N multiply ; B 40 1 545 505 ; +C 250 ; WX 611 ; N uacute ; B 66 -14 545 750 ; +C -1 ; WX 611 ; N Tcaron ; B 14 0 598 936 ; +C -1 ; WX 494 ; N partialdiff ; B 11 -21 494 750 ; +C 255 ; WX 556 ; N ydieresis ; B 10 -214 539 729 ; +C -1 ; WX 722 ; N Nacute ; B 69 0 654 936 ; +C 238 ; WX 278 ; N icircumflex ; B -37 0 316 750 ; +C 202 ; WX 667 ; N Ecircumflex ; B 76 0 621 936 ; +C 228 ; WX 556 ; N adieresis ; B 29 -14 527 729 ; +C 235 ; WX 556 ; N edieresis ; B 23 -14 528 729 ; +C -1 ; WX 556 ; N cacute ; B 34 -14 524 750 ; +C -1 ; WX 611 ; N nacute ; B 65 0 546 750 ; +C -1 ; WX 611 ; N umacron ; B 66 -14 545 678 ; +C -1 ; WX 722 ; N Ncaron ; B 69 0 654 936 ; +C 205 ; WX 278 ; N Iacute ; B 64 0 329 936 ; +C 177 ; WX 584 ; N plusminus ; B 40 0 544 506 ; +C 166 ; WX 280 ; N brokenbar ; B 84 -150 196 700 ; +C 174 ; WX 737 ; N registered ; B -11 -19 748 737 ; +C -1 ; WX 778 ; N Gbreve ; B 44 -19 713 936 ; +C -1 ; WX 278 ; N Idotaccent ; B 64 0 214 915 ; +C -1 ; WX 600 ; N summation ; B 14 -10 585 706 ; +C 200 ; WX 667 ; N Egrave ; B 76 0 621 936 ; +C -1 ; WX 389 ; N racute ; B 64 0 384 750 ; +C -1 ; WX 611 ; N omacron ; B 34 -14 578 678 ; +C -1 ; WX 611 ; N Zacute ; B 25 0 586 936 ; +C 142 ; WX 611 ; N Zcaron ; B 25 0 586 936 ; +C -1 ; WX 549 ; N greaterequal ; B 26 0 523 704 ; +C 208 ; WX 722 ; N Eth ; B -5 0 685 718 ; +C 199 ; WX 722 ; N Ccedilla ; B 44 -228 684 737 ; +C -1 ; WX 278 ; N lcommaaccent ; B 69 -228 213 718 ; +C -1 ; WX 389 ; N tcaron ; B 10 -6 421 878 ; +C -1 ; WX 556 ; N eogonek ; B 23 -228 528 546 ; +C -1 ; WX 722 ; N Uogonek ; B 72 -228 651 718 ; +C 193 ; WX 722 ; N Aacute ; B 20 0 702 936 ; +C 196 ; WX 722 ; N Adieresis ; B 20 0 702 915 ; +C 232 ; WX 556 ; N egrave ; B 23 -14 528 750 ; +C -1 ; WX 500 ; N zacute ; B 20 0 480 750 ; +C -1 ; WX 278 ; N iogonek ; B 16 -224 249 725 ; +C 211 ; WX 778 ; N Oacute ; B 44 -19 734 936 ; +C 243 ; WX 611 ; N oacute ; B 34 -14 578 750 ; +C -1 ; WX 556 ; N amacron ; B 29 -14 527 678 ; +C -1 ; WX 556 ; N sacute ; B 30 -14 519 750 ; +C 239 ; WX 278 ; N idieresis ; B -21 0 300 729 ; +C 212 ; WX 778 ; N Ocircumflex ; B 44 -19 734 936 ; +C 217 ; WX 722 ; N Ugrave ; B 72 -19 651 936 ; +C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ; +C 254 ; WX 611 ; N thorn ; B 62 -208 578 718 ; +C 178 ; WX 333 ; N twosuperior ; B 9 283 324 710 ; +C 214 ; WX 778 ; N Odieresis ; B 44 -19 734 915 ; +C 181 ; WX 611 ; N mu ; B 66 -207 545 532 ; +C 236 ; WX 278 ; N igrave ; B -50 0 209 750 ; +C -1 ; WX 611 ; N ohungarumlaut ; B 34 -14 625 750 ; +C -1 ; WX 667 ; N Eogonek ; B 76 -224 639 718 ; +C -1 ; WX 611 ; N dcroat ; B 34 -14 650 718 ; +C 190 ; WX 834 ; N threequarters ; B 16 -19 799 710 ; +C -1 ; WX 667 ; N Scedilla ; B 39 -228 629 737 ; +C -1 ; WX 400 ; N lcaron ; B 69 0 408 718 ; +C -1 ; WX 722 ; N Kcommaaccent ; B 87 -228 722 718 ; +C -1 ; WX 611 ; N Lacute ; B 76 0 583 936 ; +C 153 ; WX 1000 ; N trademark ; B 44 306 956 718 ; +C -1 ; WX 556 ; N edotaccent ; B 23 -14 528 729 ; +C 204 ; WX 278 ; N Igrave ; B -50 0 214 936 ; +C -1 ; WX 278 ; N Imacron ; B -33 0 312 864 ; +C -1 ; WX 611 ; N Lcaron ; B 76 0 583 718 ; +C 189 ; WX 834 ; N onehalf ; B 26 -19 794 710 ; +C -1 ; WX 549 ; N lessequal ; B 29 0 526 704 ; +C 244 ; WX 611 ; N ocircumflex ; B 34 -14 578 750 ; +C 241 ; WX 611 ; N ntilde ; B 65 0 546 737 ; +C -1 ; WX 722 ; N Uhungarumlaut ; B 72 -19 681 936 ; +C 201 ; WX 667 ; N Eacute ; B 76 0 621 936 ; +C -1 ; WX 556 ; N emacron ; B 23 -14 528 678 ; +C -1 ; WX 611 ; N gbreve ; B 40 -217 553 750 ; +C 188 ; WX 834 ; N onequarter ; B 26 -19 766 710 ; +C 138 ; WX 667 ; N Scaron ; B 39 -19 629 936 ; +C -1 ; WX 667 ; N Scommaaccent ; B 39 -228 629 737 ; +C -1 ; WX 778 ; N Ohungarumlaut ; B 44 -19 734 936 ; +C 176 ; WX 400 ; N degree ; B 57 426 343 712 ; +C 242 ; WX 611 ; N ograve ; B 34 -14 578 750 ; +C -1 ; WX 722 ; N Ccaron ; B 44 -19 684 936 ; +C 249 ; WX 611 ; N ugrave ; B 66 -14 545 750 ; +C -1 ; WX 549 ; N radical ; B 10 -46 512 850 ; +C -1 ; WX 722 ; N Dcaron ; B 76 0 685 936 ; +C -1 ; WX 389 ; N rcommaaccent ; B 64 -228 373 546 ; +C 209 ; WX 722 ; N Ntilde ; B 69 0 654 923 ; +C 245 ; WX 611 ; N otilde ; B 34 -14 578 737 ; +C -1 ; WX 722 ; N Rcommaaccent ; B 76 -228 677 718 ; +C -1 ; WX 611 ; N Lcommaaccent ; B 76 -228 583 718 ; +C 195 ; WX 722 ; N Atilde ; B 20 0 702 923 ; +C -1 ; WX 722 ; N Aogonek ; B 20 -224 742 718 ; +C 197 ; WX 722 ; N Aring ; B 20 0 702 962 ; +C 213 ; WX 778 ; N Otilde ; B 44 -19 734 923 ; +C -1 ; WX 500 ; N zdotaccent ; B 20 0 480 729 ; +C -1 ; WX 667 ; N Ecaron ; B 76 0 621 936 ; +C -1 ; WX 278 ; N Iogonek ; B -11 -228 222 718 ; +C -1 ; WX 556 ; N kcommaaccent ; B 69 -228 562 718 ; +C -1 ; WX 584 ; N minus ; B 40 197 544 309 ; +C 206 ; WX 278 ; N Icircumflex ; B -37 0 316 936 ; +C -1 ; WX 611 ; N ncaron ; B 65 0 546 750 ; +C -1 ; WX 333 ; N tcommaaccent ; B 10 -228 309 676 ; +C 172 ; WX 584 ; N logicalnot ; B 40 108 544 419 ; +C 246 ; WX 611 ; N odieresis ; B 34 -14 578 729 ; +C 252 ; WX 611 ; N udieresis ; B 66 -14 545 729 ; +C -1 ; WX 549 ; N notequal ; B 15 -49 540 570 ; +C -1 ; WX 611 ; N gcommaaccent ; B 40 -217 553 850 ; +C 240 ; WX 611 ; N eth ; B 34 -14 578 737 ; +C 158 ; WX 500 ; N zcaron ; B 20 0 480 750 ; +C -1 ; WX 611 ; N ncommaaccent ; B 65 -228 546 546 ; +C 185 ; WX 333 ; N onesuperior ; B 26 283 237 710 ; +C -1 ; WX 278 ; N imacron ; B -8 0 285 678 ; +C 128 ; WX 556 ; N Euro ; B 0 0 0 0 ; +EndCharMetrics +StartKernData +StartKernPairs 2481 +KPX A C -40 +KPX A Cacute -40 +KPX A Ccaron -40 +KPX A Ccedilla -40 +KPX A G -50 +KPX A Gbreve -50 +KPX A Gcommaaccent -50 +KPX A O -40 +KPX A Oacute -40 +KPX A Ocircumflex -40 +KPX A Odieresis -40 +KPX A Ograve -40 +KPX A Ohungarumlaut -40 +KPX A Omacron -40 +KPX A Oslash -40 +KPX A Otilde -40 +KPX A Q -40 +KPX A T -90 +KPX A Tcaron -90 +KPX A Tcommaaccent -90 +KPX A U -50 +KPX A Uacute -50 +KPX A Ucircumflex -50 +KPX A Udieresis -50 +KPX A Ugrave -50 +KPX A Uhungarumlaut -50 +KPX A Umacron -50 +KPX A Uogonek -50 +KPX A Uring -50 +KPX A V -80 +KPX A W -60 +KPX A Y -110 +KPX A Yacute -110 +KPX A Ydieresis -110 +KPX A u -30 +KPX A uacute -30 +KPX A ucircumflex -30 +KPX A udieresis -30 +KPX A ugrave -30 +KPX A uhungarumlaut -30 +KPX A umacron -30 +KPX A uogonek -30 +KPX A uring -30 +KPX A v -40 +KPX A w -30 +KPX A y -30 +KPX A yacute -30 +KPX A ydieresis -30 +KPX Aacute C -40 +KPX Aacute Cacute -40 +KPX Aacute Ccaron -40 +KPX Aacute Ccedilla -40 +KPX Aacute G -50 +KPX Aacute Gbreve -50 +KPX Aacute Gcommaaccent -50 +KPX Aacute O -40 +KPX Aacute Oacute -40 +KPX Aacute Ocircumflex -40 +KPX Aacute Odieresis -40 +KPX Aacute Ograve -40 +KPX Aacute Ohungarumlaut -40 +KPX Aacute Omacron -40 +KPX Aacute Oslash -40 +KPX Aacute Otilde -40 +KPX Aacute Q -40 +KPX Aacute T -90 +KPX Aacute Tcaron -90 +KPX Aacute Tcommaaccent -90 +KPX Aacute U -50 +KPX Aacute Uacute -50 +KPX Aacute Ucircumflex -50 +KPX Aacute Udieresis -50 +KPX Aacute Ugrave -50 +KPX Aacute Uhungarumlaut -50 +KPX Aacute Umacron -50 +KPX Aacute Uogonek -50 +KPX Aacute Uring -50 +KPX Aacute V -80 +KPX Aacute W -60 +KPX Aacute Y -110 +KPX Aacute Yacute -110 +KPX Aacute Ydieresis -110 +KPX Aacute u -30 +KPX Aacute uacute -30 +KPX Aacute ucircumflex -30 +KPX Aacute udieresis -30 +KPX Aacute ugrave -30 +KPX Aacute uhungarumlaut -30 +KPX Aacute umacron -30 +KPX Aacute uogonek -30 +KPX Aacute uring -30 +KPX Aacute v -40 +KPX Aacute w -30 +KPX Aacute y -30 +KPX Aacute yacute -30 +KPX Aacute ydieresis -30 +KPX Abreve C -40 +KPX Abreve Cacute -40 +KPX Abreve Ccaron -40 +KPX Abreve Ccedilla -40 +KPX Abreve G -50 +KPX Abreve Gbreve -50 +KPX Abreve Gcommaaccent -50 +KPX Abreve O -40 +KPX Abreve Oacute -40 +KPX Abreve Ocircumflex -40 +KPX Abreve Odieresis -40 +KPX Abreve Ograve -40 +KPX Abreve Ohungarumlaut -40 +KPX Abreve Omacron -40 +KPX Abreve Oslash -40 +KPX Abreve Otilde -40 +KPX Abreve Q -40 +KPX Abreve T -90 +KPX Abreve Tcaron -90 +KPX Abreve Tcommaaccent -90 +KPX Abreve U -50 +KPX Abreve Uacute -50 +KPX Abreve Ucircumflex -50 +KPX Abreve Udieresis -50 +KPX Abreve Ugrave -50 +KPX Abreve Uhungarumlaut -50 +KPX Abreve Umacron -50 +KPX Abreve Uogonek -50 +KPX Abreve Uring -50 +KPX Abreve V -80 +KPX Abreve W -60 +KPX Abreve Y -110 +KPX Abreve Yacute -110 +KPX Abreve Ydieresis -110 +KPX Abreve u -30 +KPX Abreve uacute -30 +KPX Abreve ucircumflex -30 +KPX Abreve udieresis -30 +KPX Abreve ugrave -30 +KPX Abreve uhungarumlaut -30 +KPX Abreve umacron -30 +KPX Abreve uogonek -30 +KPX Abreve uring -30 +KPX Abreve v -40 +KPX Abreve w -30 +KPX Abreve y -30 +KPX Abreve yacute -30 +KPX Abreve ydieresis -30 +KPX Acircumflex C -40 +KPX Acircumflex Cacute -40 +KPX Acircumflex Ccaron -40 +KPX Acircumflex Ccedilla -40 +KPX Acircumflex G -50 +KPX Acircumflex Gbreve -50 +KPX Acircumflex Gcommaaccent -50 +KPX Acircumflex O -40 +KPX Acircumflex Oacute -40 +KPX Acircumflex Ocircumflex -40 +KPX Acircumflex Odieresis -40 +KPX Acircumflex Ograve -40 +KPX Acircumflex Ohungarumlaut -40 +KPX Acircumflex Omacron -40 +KPX Acircumflex Oslash -40 +KPX Acircumflex Otilde -40 +KPX Acircumflex Q -40 +KPX Acircumflex T -90 +KPX Acircumflex Tcaron -90 +KPX Acircumflex Tcommaaccent -90 +KPX Acircumflex U -50 +KPX Acircumflex Uacute -50 +KPX Acircumflex Ucircumflex -50 +KPX Acircumflex Udieresis -50 +KPX Acircumflex Ugrave -50 +KPX Acircumflex Uhungarumlaut -50 +KPX Acircumflex Umacron -50 +KPX Acircumflex Uogonek -50 +KPX Acircumflex Uring -50 +KPX Acircumflex V -80 +KPX Acircumflex W -60 +KPX Acircumflex Y -110 +KPX Acircumflex Yacute -110 +KPX Acircumflex Ydieresis -110 +KPX Acircumflex u -30 +KPX Acircumflex uacute -30 +KPX Acircumflex ucircumflex -30 +KPX Acircumflex udieresis -30 +KPX Acircumflex ugrave -30 +KPX Acircumflex uhungarumlaut -30 +KPX Acircumflex umacron -30 +KPX Acircumflex uogonek -30 +KPX Acircumflex uring -30 +KPX Acircumflex v -40 +KPX Acircumflex w -30 +KPX Acircumflex y -30 +KPX Acircumflex yacute -30 +KPX Acircumflex ydieresis -30 +KPX Adieresis C -40 +KPX Adieresis Cacute -40 +KPX Adieresis Ccaron -40 +KPX Adieresis Ccedilla -40 +KPX Adieresis G -50 +KPX Adieresis Gbreve -50 +KPX Adieresis Gcommaaccent -50 +KPX Adieresis O -40 +KPX Adieresis Oacute -40 +KPX Adieresis Ocircumflex -40 +KPX Adieresis Odieresis -40 +KPX Adieresis Ograve -40 +KPX Adieresis Ohungarumlaut -40 +KPX Adieresis Omacron -40 +KPX Adieresis Oslash -40 +KPX Adieresis Otilde -40 +KPX Adieresis Q -40 +KPX Adieresis T -90 +KPX Adieresis Tcaron -90 +KPX Adieresis Tcommaaccent -90 +KPX Adieresis U -50 +KPX Adieresis Uacute -50 +KPX Adieresis Ucircumflex -50 +KPX Adieresis Udieresis -50 +KPX Adieresis Ugrave -50 +KPX Adieresis Uhungarumlaut -50 +KPX Adieresis Umacron -50 +KPX Adieresis Uogonek -50 +KPX Adieresis Uring -50 +KPX Adieresis V -80 +KPX Adieresis W -60 +KPX Adieresis Y -110 +KPX Adieresis Yacute -110 +KPX Adieresis Ydieresis -110 +KPX Adieresis u -30 +KPX Adieresis uacute -30 +KPX Adieresis ucircumflex -30 +KPX Adieresis udieresis -30 +KPX Adieresis ugrave -30 +KPX Adieresis uhungarumlaut -30 +KPX Adieresis umacron -30 +KPX Adieresis uogonek -30 +KPX Adieresis uring -30 +KPX Adieresis v -40 +KPX Adieresis w -30 +KPX Adieresis y -30 +KPX Adieresis yacute -30 +KPX Adieresis ydieresis -30 +KPX Agrave C -40 +KPX Agrave Cacute -40 +KPX Agrave Ccaron -40 +KPX Agrave Ccedilla -40 +KPX Agrave G -50 +KPX Agrave Gbreve -50 +KPX Agrave Gcommaaccent -50 +KPX Agrave O -40 +KPX Agrave Oacute -40 +KPX Agrave Ocircumflex -40 +KPX Agrave Odieresis -40 +KPX Agrave Ograve -40 +KPX Agrave Ohungarumlaut -40 +KPX Agrave Omacron -40 +KPX Agrave Oslash -40 +KPX Agrave Otilde -40 +KPX Agrave Q -40 +KPX Agrave T -90 +KPX Agrave Tcaron -90 +KPX Agrave Tcommaaccent -90 +KPX Agrave U -50 +KPX Agrave Uacute -50 +KPX Agrave Ucircumflex -50 +KPX Agrave Udieresis -50 +KPX Agrave Ugrave -50 +KPX Agrave Uhungarumlaut -50 +KPX Agrave Umacron -50 +KPX Agrave Uogonek -50 +KPX Agrave Uring -50 +KPX Agrave V -80 +KPX Agrave W -60 +KPX Agrave Y -110 +KPX Agrave Yacute -110 +KPX Agrave Ydieresis -110 +KPX Agrave u -30 +KPX Agrave uacute -30 +KPX Agrave ucircumflex -30 +KPX Agrave udieresis -30 +KPX Agrave ugrave -30 +KPX Agrave uhungarumlaut -30 +KPX Agrave umacron -30 +KPX Agrave uogonek -30 +KPX Agrave uring -30 +KPX Agrave v -40 +KPX Agrave w -30 +KPX Agrave y -30 +KPX Agrave yacute -30 +KPX Agrave ydieresis -30 +KPX Amacron C -40 +KPX Amacron Cacute -40 +KPX Amacron Ccaron -40 +KPX Amacron Ccedilla -40 +KPX Amacron G -50 +KPX Amacron Gbreve -50 +KPX Amacron Gcommaaccent -50 +KPX Amacron O -40 +KPX Amacron Oacute -40 +KPX Amacron Ocircumflex -40 +KPX Amacron Odieresis -40 +KPX Amacron Ograve -40 +KPX Amacron Ohungarumlaut -40 +KPX Amacron Omacron -40 +KPX Amacron Oslash -40 +KPX Amacron Otilde -40 +KPX Amacron Q -40 +KPX Amacron T -90 +KPX Amacron Tcaron -90 +KPX Amacron Tcommaaccent -90 +KPX Amacron U -50 +KPX Amacron Uacute -50 +KPX Amacron Ucircumflex -50 +KPX Amacron Udieresis -50 +KPX Amacron Ugrave -50 +KPX Amacron Uhungarumlaut -50 +KPX Amacron Umacron -50 +KPX Amacron Uogonek -50 +KPX Amacron Uring -50 +KPX Amacron V -80 +KPX Amacron W -60 +KPX Amacron Y -110 +KPX Amacron Yacute -110 +KPX Amacron Ydieresis -110 +KPX Amacron u -30 +KPX Amacron uacute -30 +KPX Amacron ucircumflex -30 +KPX Amacron udieresis -30 +KPX Amacron ugrave -30 +KPX Amacron uhungarumlaut -30 +KPX Amacron umacron -30 +KPX Amacron uogonek -30 +KPX Amacron uring -30 +KPX Amacron v -40 +KPX Amacron w -30 +KPX Amacron y -30 +KPX Amacron yacute -30 +KPX Amacron ydieresis -30 +KPX Aogonek C -40 +KPX Aogonek Cacute -40 +KPX Aogonek Ccaron -40 +KPX Aogonek Ccedilla -40 +KPX Aogonek G -50 +KPX Aogonek Gbreve -50 +KPX Aogonek Gcommaaccent -50 +KPX Aogonek O -40 +KPX Aogonek Oacute -40 +KPX Aogonek Ocircumflex -40 +KPX Aogonek Odieresis -40 +KPX Aogonek Ograve -40 +KPX Aogonek Ohungarumlaut -40 +KPX Aogonek Omacron -40 +KPX Aogonek Oslash -40 +KPX Aogonek Otilde -40 +KPX Aogonek Q -40 +KPX Aogonek T -90 +KPX Aogonek Tcaron -90 +KPX Aogonek Tcommaaccent -90 +KPX Aogonek U -50 +KPX Aogonek Uacute -50 +KPX Aogonek Ucircumflex -50 +KPX Aogonek Udieresis -50 +KPX Aogonek Ugrave -50 +KPX Aogonek Uhungarumlaut -50 +KPX Aogonek Umacron -50 +KPX Aogonek Uogonek -50 +KPX Aogonek Uring -50 +KPX Aogonek V -80 +KPX Aogonek W -60 +KPX Aogonek Y -110 +KPX Aogonek Yacute -110 +KPX Aogonek Ydieresis -110 +KPX Aogonek u -30 +KPX Aogonek uacute -30 +KPX Aogonek ucircumflex -30 +KPX Aogonek udieresis -30 +KPX Aogonek ugrave -30 +KPX Aogonek uhungarumlaut -30 +KPX Aogonek umacron -30 +KPX Aogonek uogonek -30 +KPX Aogonek uring -30 +KPX Aogonek v -40 +KPX Aogonek w -30 +KPX Aogonek y -30 +KPX Aogonek yacute -30 +KPX Aogonek ydieresis -30 +KPX Aring C -40 +KPX Aring Cacute -40 +KPX Aring Ccaron -40 +KPX Aring Ccedilla -40 +KPX Aring G -50 +KPX Aring Gbreve -50 +KPX Aring Gcommaaccent -50 +KPX Aring O -40 +KPX Aring Oacute -40 +KPX Aring Ocircumflex -40 +KPX Aring Odieresis -40 +KPX Aring Ograve -40 +KPX Aring Ohungarumlaut -40 +KPX Aring Omacron -40 +KPX Aring Oslash -40 +KPX Aring Otilde -40 +KPX Aring Q -40 +KPX Aring T -90 +KPX Aring Tcaron -90 +KPX Aring Tcommaaccent -90 +KPX Aring U -50 +KPX Aring Uacute -50 +KPX Aring Ucircumflex -50 +KPX Aring Udieresis -50 +KPX Aring Ugrave -50 +KPX Aring Uhungarumlaut -50 +KPX Aring Umacron -50 +KPX Aring Uogonek -50 +KPX Aring Uring -50 +KPX Aring V -80 +KPX Aring W -60 +KPX Aring Y -110 +KPX Aring Yacute -110 +KPX Aring Ydieresis -110 +KPX Aring u -30 +KPX Aring uacute -30 +KPX Aring ucircumflex -30 +KPX Aring udieresis -30 +KPX Aring ugrave -30 +KPX Aring uhungarumlaut -30 +KPX Aring umacron -30 +KPX Aring uogonek -30 +KPX Aring uring -30 +KPX Aring v -40 +KPX Aring w -30 +KPX Aring y -30 +KPX Aring yacute -30 +KPX Aring ydieresis -30 +KPX Atilde C -40 +KPX Atilde Cacute -40 +KPX Atilde Ccaron -40 +KPX Atilde Ccedilla -40 +KPX Atilde G -50 +KPX Atilde Gbreve -50 +KPX Atilde Gcommaaccent -50 +KPX Atilde O -40 +KPX Atilde Oacute -40 +KPX Atilde Ocircumflex -40 +KPX Atilde Odieresis -40 +KPX Atilde Ograve -40 +KPX Atilde Ohungarumlaut -40 +KPX Atilde Omacron -40 +KPX Atilde Oslash -40 +KPX Atilde Otilde -40 +KPX Atilde Q -40 +KPX Atilde T -90 +KPX Atilde Tcaron -90 +KPX Atilde Tcommaaccent -90 +KPX Atilde U -50 +KPX Atilde Uacute -50 +KPX Atilde Ucircumflex -50 +KPX Atilde Udieresis -50 +KPX Atilde Ugrave -50 +KPX Atilde Uhungarumlaut -50 +KPX Atilde Umacron -50 +KPX Atilde Uogonek -50 +KPX Atilde Uring -50 +KPX Atilde V -80 +KPX Atilde W -60 +KPX Atilde Y -110 +KPX Atilde Yacute -110 +KPX Atilde Ydieresis -110 +KPX Atilde u -30 +KPX Atilde uacute -30 +KPX Atilde ucircumflex -30 +KPX Atilde udieresis -30 +KPX Atilde ugrave -30 +KPX Atilde uhungarumlaut -30 +KPX Atilde umacron -30 +KPX Atilde uogonek -30 +KPX Atilde uring -30 +KPX Atilde v -40 +KPX Atilde w -30 +KPX Atilde y -30 +KPX Atilde yacute -30 +KPX Atilde ydieresis -30 +KPX B A -30 +KPX B Aacute -30 +KPX B Abreve -30 +KPX B Acircumflex -30 +KPX B Adieresis -30 +KPX B Agrave -30 +KPX B Amacron -30 +KPX B Aogonek -30 +KPX B Aring -30 +KPX B Atilde -30 +KPX B U -10 +KPX B Uacute -10 +KPX B Ucircumflex -10 +KPX B Udieresis -10 +KPX B Ugrave -10 +KPX B Uhungarumlaut -10 +KPX B Umacron -10 +KPX B Uogonek -10 +KPX B Uring -10 +KPX D A -40 +KPX D Aacute -40 +KPX D Abreve -40 +KPX D Acircumflex -40 +KPX D Adieresis -40 +KPX D Agrave -40 +KPX D Amacron -40 +KPX D Aogonek -40 +KPX D Aring -40 +KPX D Atilde -40 +KPX D V -40 +KPX D W -40 +KPX D Y -70 +KPX D Yacute -70 +KPX D Ydieresis -70 +KPX D comma -30 +KPX D period -30 +KPX Dcaron A -40 +KPX Dcaron Aacute -40 +KPX Dcaron Abreve -40 +KPX Dcaron Acircumflex -40 +KPX Dcaron Adieresis -40 +KPX Dcaron Agrave -40 +KPX Dcaron Amacron -40 +KPX Dcaron Aogonek -40 +KPX Dcaron Aring -40 +KPX Dcaron Atilde -40 +KPX Dcaron V -40 +KPX Dcaron W -40 +KPX Dcaron Y -70 +KPX Dcaron Yacute -70 +KPX Dcaron Ydieresis -70 +KPX Dcaron comma -30 +KPX Dcaron period -30 +KPX Dcroat A -40 +KPX Dcroat Aacute -40 +KPX Dcroat Abreve -40 +KPX Dcroat Acircumflex -40 +KPX Dcroat Adieresis -40 +KPX Dcroat Agrave -40 +KPX Dcroat Amacron -40 +KPX Dcroat Aogonek -40 +KPX Dcroat Aring -40 +KPX Dcroat Atilde -40 +KPX Dcroat V -40 +KPX Dcroat W -40 +KPX Dcroat Y -70 +KPX Dcroat Yacute -70 +KPX Dcroat Ydieresis -70 +KPX Dcroat comma -30 +KPX Dcroat period -30 +KPX F A -80 +KPX F Aacute -80 +KPX F Abreve -80 +KPX F Acircumflex -80 +KPX F Adieresis -80 +KPX F Agrave -80 +KPX F Amacron -80 +KPX F Aogonek -80 +KPX F Aring -80 +KPX F Atilde -80 +KPX F a -20 +KPX F aacute -20 +KPX F abreve -20 +KPX F acircumflex -20 +KPX F adieresis -20 +KPX F agrave -20 +KPX F amacron -20 +KPX F aogonek -20 +KPX F aring -20 +KPX F atilde -20 +KPX F comma -100 +KPX F period -100 +KPX J A -20 +KPX J Aacute -20 +KPX J Abreve -20 +KPX J Acircumflex -20 +KPX J Adieresis -20 +KPX J Agrave -20 +KPX J Amacron -20 +KPX J Aogonek -20 +KPX J Aring -20 +KPX J Atilde -20 +KPX J comma -20 +KPX J period -20 +KPX J u -20 +KPX J uacute -20 +KPX J ucircumflex -20 +KPX J udieresis -20 +KPX J ugrave -20 +KPX J uhungarumlaut -20 +KPX J umacron -20 +KPX J uogonek -20 +KPX J uring -20 +KPX K O -30 +KPX K Oacute -30 +KPX K Ocircumflex -30 +KPX K Odieresis -30 +KPX K Ograve -30 +KPX K Ohungarumlaut -30 +KPX K Omacron -30 +KPX K Oslash -30 +KPX K Otilde -30 +KPX K e -15 +KPX K eacute -15 +KPX K ecaron -15 +KPX K ecircumflex -15 +KPX K edieresis -15 +KPX K edotaccent -15 +KPX K egrave -15 +KPX K emacron -15 +KPX K eogonek -15 +KPX K o -35 +KPX K oacute -35 +KPX K ocircumflex -35 +KPX K odieresis -35 +KPX K ograve -35 +KPX K ohungarumlaut -35 +KPX K omacron -35 +KPX K oslash -35 +KPX K otilde -35 +KPX K u -30 +KPX K uacute -30 +KPX K ucircumflex -30 +KPX K udieresis -30 +KPX K ugrave -30 +KPX K uhungarumlaut -30 +KPX K umacron -30 +KPX K uogonek -30 +KPX K uring -30 +KPX K y -40 +KPX K yacute -40 +KPX K ydieresis -40 +KPX Kcommaaccent O -30 +KPX Kcommaaccent Oacute -30 +KPX Kcommaaccent Ocircumflex -30 +KPX Kcommaaccent Odieresis -30 +KPX Kcommaaccent Ograve -30 +KPX Kcommaaccent Ohungarumlaut -30 +KPX Kcommaaccent Omacron -30 +KPX Kcommaaccent Oslash -30 +KPX Kcommaaccent Otilde -30 +KPX Kcommaaccent e -15 +KPX Kcommaaccent eacute -15 +KPX Kcommaaccent ecaron -15 +KPX Kcommaaccent ecircumflex -15 +KPX Kcommaaccent edieresis -15 +KPX Kcommaaccent edotaccent -15 +KPX Kcommaaccent egrave -15 +KPX Kcommaaccent emacron -15 +KPX Kcommaaccent eogonek -15 +KPX Kcommaaccent o -35 +KPX Kcommaaccent oacute -35 +KPX Kcommaaccent ocircumflex -35 +KPX Kcommaaccent odieresis -35 +KPX Kcommaaccent ograve -35 +KPX Kcommaaccent ohungarumlaut -35 +KPX Kcommaaccent omacron -35 +KPX Kcommaaccent oslash -35 +KPX Kcommaaccent otilde -35 +KPX Kcommaaccent u -30 +KPX Kcommaaccent uacute -30 +KPX Kcommaaccent ucircumflex -30 +KPX Kcommaaccent udieresis -30 +KPX Kcommaaccent ugrave -30 +KPX Kcommaaccent uhungarumlaut -30 +KPX Kcommaaccent umacron -30 +KPX Kcommaaccent uogonek -30 +KPX Kcommaaccent uring -30 +KPX Kcommaaccent y -40 +KPX Kcommaaccent yacute -40 +KPX Kcommaaccent ydieresis -40 +KPX L T -90 +KPX L Tcaron -90 +KPX L Tcommaaccent -90 +KPX L V -110 +KPX L W -80 +KPX L Y -120 +KPX L Yacute -120 +KPX L Ydieresis -120 +KPX L quotedblright -140 +KPX L quoteright -140 +KPX L y -30 +KPX L yacute -30 +KPX L ydieresis -30 +KPX Lacute T -90 +KPX Lacute Tcaron -90 +KPX Lacute Tcommaaccent -90 +KPX Lacute V -110 +KPX Lacute W -80 +KPX Lacute Y -120 +KPX Lacute Yacute -120 +KPX Lacute Ydieresis -120 +KPX Lacute quotedblright -140 +KPX Lacute quoteright -140 +KPX Lacute y -30 +KPX Lacute yacute -30 +KPX Lacute ydieresis -30 +KPX Lcommaaccent T -90 +KPX Lcommaaccent Tcaron -90 +KPX Lcommaaccent Tcommaaccent -90 +KPX Lcommaaccent V -110 +KPX Lcommaaccent W -80 +KPX Lcommaaccent Y -120 +KPX Lcommaaccent Yacute -120 +KPX Lcommaaccent Ydieresis -120 +KPX Lcommaaccent quotedblright -140 +KPX Lcommaaccent quoteright -140 +KPX Lcommaaccent y -30 +KPX Lcommaaccent yacute -30 +KPX Lcommaaccent ydieresis -30 +KPX Lslash T -90 +KPX Lslash Tcaron -90 +KPX Lslash Tcommaaccent -90 +KPX Lslash V -110 +KPX Lslash W -80 +KPX Lslash Y -120 +KPX Lslash Yacute -120 +KPX Lslash Ydieresis -120 +KPX Lslash quotedblright -140 +KPX Lslash quoteright -140 +KPX Lslash y -30 +KPX Lslash yacute -30 +KPX Lslash ydieresis -30 +KPX O A -50 +KPX O Aacute -50 +KPX O Abreve -50 +KPX O Acircumflex -50 +KPX O Adieresis -50 +KPX O Agrave -50 +KPX O Amacron -50 +KPX O Aogonek -50 +KPX O Aring -50 +KPX O Atilde -50 +KPX O T -40 +KPX O Tcaron -40 +KPX O Tcommaaccent -40 +KPX O V -50 +KPX O W -50 +KPX O X -50 +KPX O Y -70 +KPX O Yacute -70 +KPX O Ydieresis -70 +KPX O comma -40 +KPX O period -40 +KPX Oacute A -50 +KPX Oacute Aacute -50 +KPX Oacute Abreve -50 +KPX Oacute Acircumflex -50 +KPX Oacute Adieresis -50 +KPX Oacute Agrave -50 +KPX Oacute Amacron -50 +KPX Oacute Aogonek -50 +KPX Oacute Aring -50 +KPX Oacute Atilde -50 +KPX Oacute T -40 +KPX Oacute Tcaron -40 +KPX Oacute Tcommaaccent -40 +KPX Oacute V -50 +KPX Oacute W -50 +KPX Oacute X -50 +KPX Oacute Y -70 +KPX Oacute Yacute -70 +KPX Oacute Ydieresis -70 +KPX Oacute comma -40 +KPX Oacute period -40 +KPX Ocircumflex A -50 +KPX Ocircumflex Aacute -50 +KPX Ocircumflex Abreve -50 +KPX Ocircumflex Acircumflex -50 +KPX Ocircumflex Adieresis -50 +KPX Ocircumflex Agrave -50 +KPX Ocircumflex Amacron -50 +KPX Ocircumflex Aogonek -50 +KPX Ocircumflex Aring -50 +KPX Ocircumflex Atilde -50 +KPX Ocircumflex T -40 +KPX Ocircumflex Tcaron -40 +KPX Ocircumflex Tcommaaccent -40 +KPX Ocircumflex V -50 +KPX Ocircumflex W -50 +KPX Ocircumflex X -50 +KPX Ocircumflex Y -70 +KPX Ocircumflex Yacute -70 +KPX Ocircumflex Ydieresis -70 +KPX Ocircumflex comma -40 +KPX Ocircumflex period -40 +KPX Odieresis A -50 +KPX Odieresis Aacute -50 +KPX Odieresis Abreve -50 +KPX Odieresis Acircumflex -50 +KPX Odieresis Adieresis -50 +KPX Odieresis Agrave -50 +KPX Odieresis Amacron -50 +KPX Odieresis Aogonek -50 +KPX Odieresis Aring -50 +KPX Odieresis Atilde -50 +KPX Odieresis T -40 +KPX Odieresis Tcaron -40 +KPX Odieresis Tcommaaccent -40 +KPX Odieresis V -50 +KPX Odieresis W -50 +KPX Odieresis X -50 +KPX Odieresis Y -70 +KPX Odieresis Yacute -70 +KPX Odieresis Ydieresis -70 +KPX Odieresis comma -40 +KPX Odieresis period -40 +KPX Ograve A -50 +KPX Ograve Aacute -50 +KPX Ograve Abreve -50 +KPX Ograve Acircumflex -50 +KPX Ograve Adieresis -50 +KPX Ograve Agrave -50 +KPX Ograve Amacron -50 +KPX Ograve Aogonek -50 +KPX Ograve Aring -50 +KPX Ograve Atilde -50 +KPX Ograve T -40 +KPX Ograve Tcaron -40 +KPX Ograve Tcommaaccent -40 +KPX Ograve V -50 +KPX Ograve W -50 +KPX Ograve X -50 +KPX Ograve Y -70 +KPX Ograve Yacute -70 +KPX Ograve Ydieresis -70 +KPX Ograve comma -40 +KPX Ograve period -40 +KPX Ohungarumlaut A -50 +KPX Ohungarumlaut Aacute -50 +KPX Ohungarumlaut Abreve -50 +KPX Ohungarumlaut Acircumflex -50 +KPX Ohungarumlaut Adieresis -50 +KPX Ohungarumlaut Agrave -50 +KPX Ohungarumlaut Amacron -50 +KPX Ohungarumlaut Aogonek -50 +KPX Ohungarumlaut Aring -50 +KPX Ohungarumlaut Atilde -50 +KPX Ohungarumlaut T -40 +KPX Ohungarumlaut Tcaron -40 +KPX Ohungarumlaut Tcommaaccent -40 +KPX Ohungarumlaut V -50 +KPX Ohungarumlaut W -50 +KPX Ohungarumlaut X -50 +KPX Ohungarumlaut Y -70 +KPX Ohungarumlaut Yacute -70 +KPX Ohungarumlaut Ydieresis -70 +KPX Ohungarumlaut comma -40 +KPX Ohungarumlaut period -40 +KPX Omacron A -50 +KPX Omacron Aacute -50 +KPX Omacron Abreve -50 +KPX Omacron Acircumflex -50 +KPX Omacron Adieresis -50 +KPX Omacron Agrave -50 +KPX Omacron Amacron -50 +KPX Omacron Aogonek -50 +KPX Omacron Aring -50 +KPX Omacron Atilde -50 +KPX Omacron T -40 +KPX Omacron Tcaron -40 +KPX Omacron Tcommaaccent -40 +KPX Omacron V -50 +KPX Omacron W -50 +KPX Omacron X -50 +KPX Omacron Y -70 +KPX Omacron Yacute -70 +KPX Omacron Ydieresis -70 +KPX Omacron comma -40 +KPX Omacron period -40 +KPX Oslash A -50 +KPX Oslash Aacute -50 +KPX Oslash Abreve -50 +KPX Oslash Acircumflex -50 +KPX Oslash Adieresis -50 +KPX Oslash Agrave -50 +KPX Oslash Amacron -50 +KPX Oslash Aogonek -50 +KPX Oslash Aring -50 +KPX Oslash Atilde -50 +KPX Oslash T -40 +KPX Oslash Tcaron -40 +KPX Oslash Tcommaaccent -40 +KPX Oslash V -50 +KPX Oslash W -50 +KPX Oslash X -50 +KPX Oslash Y -70 +KPX Oslash Yacute -70 +KPX Oslash Ydieresis -70 +KPX Oslash comma -40 +KPX Oslash period -40 +KPX Otilde A -50 +KPX Otilde Aacute -50 +KPX Otilde Abreve -50 +KPX Otilde Acircumflex -50 +KPX Otilde Adieresis -50 +KPX Otilde Agrave -50 +KPX Otilde Amacron -50 +KPX Otilde Aogonek -50 +KPX Otilde Aring -50 +KPX Otilde Atilde -50 +KPX Otilde T -40 +KPX Otilde Tcaron -40 +KPX Otilde Tcommaaccent -40 +KPX Otilde V -50 +KPX Otilde W -50 +KPX Otilde X -50 +KPX Otilde Y -70 +KPX Otilde Yacute -70 +KPX Otilde Ydieresis -70 +KPX Otilde comma -40 +KPX Otilde period -40 +KPX P A -100 +KPX P Aacute -100 +KPX P Abreve -100 +KPX P Acircumflex -100 +KPX P Adieresis -100 +KPX P Agrave -100 +KPX P Amacron -100 +KPX P Aogonek -100 +KPX P Aring -100 +KPX P Atilde -100 +KPX P a -30 +KPX P aacute -30 +KPX P abreve -30 +KPX P acircumflex -30 +KPX P adieresis -30 +KPX P agrave -30 +KPX P amacron -30 +KPX P aogonek -30 +KPX P aring -30 +KPX P atilde -30 +KPX P comma -120 +KPX P e -30 +KPX P eacute -30 +KPX P ecaron -30 +KPX P ecircumflex -30 +KPX P edieresis -30 +KPX P edotaccent -30 +KPX P egrave -30 +KPX P emacron -30 +KPX P eogonek -30 +KPX P o -40 +KPX P oacute -40 +KPX P ocircumflex -40 +KPX P odieresis -40 +KPX P ograve -40 +KPX P ohungarumlaut -40 +KPX P omacron -40 +KPX P oslash -40 +KPX P otilde -40 +KPX P period -120 +KPX Q U -10 +KPX Q Uacute -10 +KPX Q Ucircumflex -10 +KPX Q Udieresis -10 +KPX Q Ugrave -10 +KPX Q Uhungarumlaut -10 +KPX Q Umacron -10 +KPX Q Uogonek -10 +KPX Q Uring -10 +KPX Q comma 20 +KPX Q period 20 +KPX R O -20 +KPX R Oacute -20 +KPX R Ocircumflex -20 +KPX R Odieresis -20 +KPX R Ograve -20 +KPX R Ohungarumlaut -20 +KPX R Omacron -20 +KPX R Oslash -20 +KPX R Otilde -20 +KPX R T -20 +KPX R Tcaron -20 +KPX R Tcommaaccent -20 +KPX R U -20 +KPX R Uacute -20 +KPX R Ucircumflex -20 +KPX R Udieresis -20 +KPX R Ugrave -20 +KPX R Uhungarumlaut -20 +KPX R Umacron -20 +KPX R Uogonek -20 +KPX R Uring -20 +KPX R V -50 +KPX R W -40 +KPX R Y -50 +KPX R Yacute -50 +KPX R Ydieresis -50 +KPX Racute O -20 +KPX Racute Oacute -20 +KPX Racute Ocircumflex -20 +KPX Racute Odieresis -20 +KPX Racute Ograve -20 +KPX Racute Ohungarumlaut -20 +KPX Racute Omacron -20 +KPX Racute Oslash -20 +KPX Racute Otilde -20 +KPX Racute T -20 +KPX Racute Tcaron -20 +KPX Racute Tcommaaccent -20 +KPX Racute U -20 +KPX Racute Uacute -20 +KPX Racute Ucircumflex -20 +KPX Racute Udieresis -20 +KPX Racute Ugrave -20 +KPX Racute Uhungarumlaut -20 +KPX Racute Umacron -20 +KPX Racute Uogonek -20 +KPX Racute Uring -20 +KPX Racute V -50 +KPX Racute W -40 +KPX Racute Y -50 +KPX Racute Yacute -50 +KPX Racute Ydieresis -50 +KPX Rcaron O -20 +KPX Rcaron Oacute -20 +KPX Rcaron Ocircumflex -20 +KPX Rcaron Odieresis -20 +KPX Rcaron Ograve -20 +KPX Rcaron Ohungarumlaut -20 +KPX Rcaron Omacron -20 +KPX Rcaron Oslash -20 +KPX Rcaron Otilde -20 +KPX Rcaron T -20 +KPX Rcaron Tcaron -20 +KPX Rcaron Tcommaaccent -20 +KPX Rcaron U -20 +KPX Rcaron Uacute -20 +KPX Rcaron Ucircumflex -20 +KPX Rcaron Udieresis -20 +KPX Rcaron Ugrave -20 +KPX Rcaron Uhungarumlaut -20 +KPX Rcaron Umacron -20 +KPX Rcaron Uogonek -20 +KPX Rcaron Uring -20 +KPX Rcaron V -50 +KPX Rcaron W -40 +KPX Rcaron Y -50 +KPX Rcaron Yacute -50 +KPX Rcaron Ydieresis -50 +KPX Rcommaaccent O -20 +KPX Rcommaaccent Oacute -20 +KPX Rcommaaccent Ocircumflex -20 +KPX Rcommaaccent Odieresis -20 +KPX Rcommaaccent Ograve -20 +KPX Rcommaaccent Ohungarumlaut -20 +KPX Rcommaaccent Omacron -20 +KPX Rcommaaccent Oslash -20 +KPX Rcommaaccent Otilde -20 +KPX Rcommaaccent T -20 +KPX Rcommaaccent Tcaron -20 +KPX Rcommaaccent Tcommaaccent -20 +KPX Rcommaaccent U -20 +KPX Rcommaaccent Uacute -20 +KPX Rcommaaccent Ucircumflex -20 +KPX Rcommaaccent Udieresis -20 +KPX Rcommaaccent Ugrave -20 +KPX Rcommaaccent Uhungarumlaut -20 +KPX Rcommaaccent Umacron -20 +KPX Rcommaaccent Uogonek -20 +KPX Rcommaaccent Uring -20 +KPX Rcommaaccent V -50 +KPX Rcommaaccent W -40 +KPX Rcommaaccent Y -50 +KPX Rcommaaccent Yacute -50 +KPX Rcommaaccent Ydieresis -50 +KPX T A -90 +KPX T Aacute -90 +KPX T Abreve -90 +KPX T Acircumflex -90 +KPX T Adieresis -90 +KPX T Agrave -90 +KPX T Amacron -90 +KPX T Aogonek -90 +KPX T Aring -90 +KPX T Atilde -90 +KPX T O -40 +KPX T Oacute -40 +KPX T Ocircumflex -40 +KPX T Odieresis -40 +KPX T Ograve -40 +KPX T Ohungarumlaut -40 +KPX T Omacron -40 +KPX T Oslash -40 +KPX T Otilde -40 +KPX T a -80 +KPX T aacute -80 +KPX T abreve -80 +KPX T acircumflex -80 +KPX T adieresis -80 +KPX T agrave -80 +KPX T amacron -80 +KPX T aogonek -80 +KPX T aring -80 +KPX T atilde -80 +KPX T colon -40 +KPX T comma -80 +KPX T e -60 +KPX T eacute -60 +KPX T ecaron -60 +KPX T ecircumflex -60 +KPX T edieresis -60 +KPX T edotaccent -60 +KPX T egrave -60 +KPX T emacron -60 +KPX T eogonek -60 +KPX T hyphen -120 +KPX T o -80 +KPX T oacute -80 +KPX T ocircumflex -80 +KPX T odieresis -80 +KPX T ograve -80 +KPX T ohungarumlaut -80 +KPX T omacron -80 +KPX T oslash -80 +KPX T otilde -80 +KPX T period -80 +KPX T r -80 +KPX T racute -80 +KPX T rcommaaccent -80 +KPX T semicolon -40 +KPX T u -90 +KPX T uacute -90 +KPX T ucircumflex -90 +KPX T udieresis -90 +KPX T ugrave -90 +KPX T uhungarumlaut -90 +KPX T umacron -90 +KPX T uogonek -90 +KPX T uring -90 +KPX T w -60 +KPX T y -60 +KPX T yacute -60 +KPX T ydieresis -60 +KPX Tcaron A -90 +KPX Tcaron Aacute -90 +KPX Tcaron Abreve -90 +KPX Tcaron Acircumflex -90 +KPX Tcaron Adieresis -90 +KPX Tcaron Agrave -90 +KPX Tcaron Amacron -90 +KPX Tcaron Aogonek -90 +KPX Tcaron Aring -90 +KPX Tcaron Atilde -90 +KPX Tcaron O -40 +KPX Tcaron Oacute -40 +KPX Tcaron Ocircumflex -40 +KPX Tcaron Odieresis -40 +KPX Tcaron Ograve -40 +KPX Tcaron Ohungarumlaut -40 +KPX Tcaron Omacron -40 +KPX Tcaron Oslash -40 +KPX Tcaron Otilde -40 +KPX Tcaron a -80 +KPX Tcaron aacute -80 +KPX Tcaron abreve -80 +KPX Tcaron acircumflex -80 +KPX Tcaron adieresis -80 +KPX Tcaron agrave -80 +KPX Tcaron amacron -80 +KPX Tcaron aogonek -80 +KPX Tcaron aring -80 +KPX Tcaron atilde -80 +KPX Tcaron colon -40 +KPX Tcaron comma -80 +KPX Tcaron e -60 +KPX Tcaron eacute -60 +KPX Tcaron ecaron -60 +KPX Tcaron ecircumflex -60 +KPX Tcaron edieresis -60 +KPX Tcaron edotaccent -60 +KPX Tcaron egrave -60 +KPX Tcaron emacron -60 +KPX Tcaron eogonek -60 +KPX Tcaron hyphen -120 +KPX Tcaron o -80 +KPX Tcaron oacute -80 +KPX Tcaron ocircumflex -80 +KPX Tcaron odieresis -80 +KPX Tcaron ograve -80 +KPX Tcaron ohungarumlaut -80 +KPX Tcaron omacron -80 +KPX Tcaron oslash -80 +KPX Tcaron otilde -80 +KPX Tcaron period -80 +KPX Tcaron r -80 +KPX Tcaron racute -80 +KPX Tcaron rcommaaccent -80 +KPX Tcaron semicolon -40 +KPX Tcaron u -90 +KPX Tcaron uacute -90 +KPX Tcaron ucircumflex -90 +KPX Tcaron udieresis -90 +KPX Tcaron ugrave -90 +KPX Tcaron uhungarumlaut -90 +KPX Tcaron umacron -90 +KPX Tcaron uogonek -90 +KPX Tcaron uring -90 +KPX Tcaron w -60 +KPX Tcaron y -60 +KPX Tcaron yacute -60 +KPX Tcaron ydieresis -60 +KPX Tcommaaccent A -90 +KPX Tcommaaccent Aacute -90 +KPX Tcommaaccent Abreve -90 +KPX Tcommaaccent Acircumflex -90 +KPX Tcommaaccent Adieresis -90 +KPX Tcommaaccent Agrave -90 +KPX Tcommaaccent Amacron -90 +KPX Tcommaaccent Aogonek -90 +KPX Tcommaaccent Aring -90 +KPX Tcommaaccent Atilde -90 +KPX Tcommaaccent O -40 +KPX Tcommaaccent Oacute -40 +KPX Tcommaaccent Ocircumflex -40 +KPX Tcommaaccent Odieresis -40 +KPX Tcommaaccent Ograve -40 +KPX Tcommaaccent Ohungarumlaut -40 +KPX Tcommaaccent Omacron -40 +KPX Tcommaaccent Oslash -40 +KPX Tcommaaccent Otilde -40 +KPX Tcommaaccent a -80 +KPX Tcommaaccent aacute -80 +KPX Tcommaaccent abreve -80 +KPX Tcommaaccent acircumflex -80 +KPX Tcommaaccent adieresis -80 +KPX Tcommaaccent agrave -80 +KPX Tcommaaccent amacron -80 +KPX Tcommaaccent aogonek -80 +KPX Tcommaaccent aring -80 +KPX Tcommaaccent atilde -80 +KPX Tcommaaccent colon -40 +KPX Tcommaaccent comma -80 +KPX Tcommaaccent e -60 +KPX Tcommaaccent eacute -60 +KPX Tcommaaccent ecaron -60 +KPX Tcommaaccent ecircumflex -60 +KPX Tcommaaccent edieresis -60 +KPX Tcommaaccent edotaccent -60 +KPX Tcommaaccent egrave -60 +KPX Tcommaaccent emacron -60 +KPX Tcommaaccent eogonek -60 +KPX Tcommaaccent hyphen -120 +KPX Tcommaaccent o -80 +KPX Tcommaaccent oacute -80 +KPX Tcommaaccent ocircumflex -80 +KPX Tcommaaccent odieresis -80 +KPX Tcommaaccent ograve -80 +KPX Tcommaaccent ohungarumlaut -80 +KPX Tcommaaccent omacron -80 +KPX Tcommaaccent oslash -80 +KPX Tcommaaccent otilde -80 +KPX Tcommaaccent period -80 +KPX Tcommaaccent r -80 +KPX Tcommaaccent racute -80 +KPX Tcommaaccent rcommaaccent -80 +KPX Tcommaaccent semicolon -40 +KPX Tcommaaccent u -90 +KPX Tcommaaccent uacute -90 +KPX Tcommaaccent ucircumflex -90 +KPX Tcommaaccent udieresis -90 +KPX Tcommaaccent ugrave -90 +KPX Tcommaaccent uhungarumlaut -90 +KPX Tcommaaccent umacron -90 +KPX Tcommaaccent uogonek -90 +KPX Tcommaaccent uring -90 +KPX Tcommaaccent w -60 +KPX Tcommaaccent y -60 +KPX Tcommaaccent yacute -60 +KPX Tcommaaccent ydieresis -60 +KPX U A -50 +KPX U Aacute -50 +KPX U Abreve -50 +KPX U Acircumflex -50 +KPX U Adieresis -50 +KPX U Agrave -50 +KPX U Amacron -50 +KPX U Aogonek -50 +KPX U Aring -50 +KPX U Atilde -50 +KPX U comma -30 +KPX U period -30 +KPX Uacute A -50 +KPX Uacute Aacute -50 +KPX Uacute Abreve -50 +KPX Uacute Acircumflex -50 +KPX Uacute Adieresis -50 +KPX Uacute Agrave -50 +KPX Uacute Amacron -50 +KPX Uacute Aogonek -50 +KPX Uacute Aring -50 +KPX Uacute Atilde -50 +KPX Uacute comma -30 +KPX Uacute period -30 +KPX Ucircumflex A -50 +KPX Ucircumflex Aacute -50 +KPX Ucircumflex Abreve -50 +KPX Ucircumflex Acircumflex -50 +KPX Ucircumflex Adieresis -50 +KPX Ucircumflex Agrave -50 +KPX Ucircumflex Amacron -50 +KPX Ucircumflex Aogonek -50 +KPX Ucircumflex Aring -50 +KPX Ucircumflex Atilde -50 +KPX Ucircumflex comma -30 +KPX Ucircumflex period -30 +KPX Udieresis A -50 +KPX Udieresis Aacute -50 +KPX Udieresis Abreve -50 +KPX Udieresis Acircumflex -50 +KPX Udieresis Adieresis -50 +KPX Udieresis Agrave -50 +KPX Udieresis Amacron -50 +KPX Udieresis Aogonek -50 +KPX Udieresis Aring -50 +KPX Udieresis Atilde -50 +KPX Udieresis comma -30 +KPX Udieresis period -30 +KPX Ugrave A -50 +KPX Ugrave Aacute -50 +KPX Ugrave Abreve -50 +KPX Ugrave Acircumflex -50 +KPX Ugrave Adieresis -50 +KPX Ugrave Agrave -50 +KPX Ugrave Amacron -50 +KPX Ugrave Aogonek -50 +KPX Ugrave Aring -50 +KPX Ugrave Atilde -50 +KPX Ugrave comma -30 +KPX Ugrave period -30 +KPX Uhungarumlaut A -50 +KPX Uhungarumlaut Aacute -50 +KPX Uhungarumlaut Abreve -50 +KPX Uhungarumlaut Acircumflex -50 +KPX Uhungarumlaut Adieresis -50 +KPX Uhungarumlaut Agrave -50 +KPX Uhungarumlaut Amacron -50 +KPX Uhungarumlaut Aogonek -50 +KPX Uhungarumlaut Aring -50 +KPX Uhungarumlaut Atilde -50 +KPX Uhungarumlaut comma -30 +KPX Uhungarumlaut period -30 +KPX Umacron A -50 +KPX Umacron Aacute -50 +KPX Umacron Abreve -50 +KPX Umacron Acircumflex -50 +KPX Umacron Adieresis -50 +KPX Umacron Agrave -50 +KPX Umacron Amacron -50 +KPX Umacron Aogonek -50 +KPX Umacron Aring -50 +KPX Umacron Atilde -50 +KPX Umacron comma -30 +KPX Umacron period -30 +KPX Uogonek A -50 +KPX Uogonek Aacute -50 +KPX Uogonek Abreve -50 +KPX Uogonek Acircumflex -50 +KPX Uogonek Adieresis -50 +KPX Uogonek Agrave -50 +KPX Uogonek Amacron -50 +KPX Uogonek Aogonek -50 +KPX Uogonek Aring -50 +KPX Uogonek Atilde -50 +KPX Uogonek comma -30 +KPX Uogonek period -30 +KPX Uring A -50 +KPX Uring Aacute -50 +KPX Uring Abreve -50 +KPX Uring Acircumflex -50 +KPX Uring Adieresis -50 +KPX Uring Agrave -50 +KPX Uring Amacron -50 +KPX Uring Aogonek -50 +KPX Uring Aring -50 +KPX Uring Atilde -50 +KPX Uring comma -30 +KPX Uring period -30 +KPX V A -80 +KPX V Aacute -80 +KPX V Abreve -80 +KPX V Acircumflex -80 +KPX V Adieresis -80 +KPX V Agrave -80 +KPX V Amacron -80 +KPX V Aogonek -80 +KPX V Aring -80 +KPX V Atilde -80 +KPX V G -50 +KPX V Gbreve -50 +KPX V Gcommaaccent -50 +KPX V O -50 +KPX V Oacute -50 +KPX V Ocircumflex -50 +KPX V Odieresis -50 +KPX V Ograve -50 +KPX V Ohungarumlaut -50 +KPX V Omacron -50 +KPX V Oslash -50 +KPX V Otilde -50 +KPX V a -60 +KPX V aacute -60 +KPX V abreve -60 +KPX V acircumflex -60 +KPX V adieresis -60 +KPX V agrave -60 +KPX V amacron -60 +KPX V aogonek -60 +KPX V aring -60 +KPX V atilde -60 +KPX V colon -40 +KPX V comma -120 +KPX V e -50 +KPX V eacute -50 +KPX V ecaron -50 +KPX V ecircumflex -50 +KPX V edieresis -50 +KPX V edotaccent -50 +KPX V egrave -50 +KPX V emacron -50 +KPX V eogonek -50 +KPX V hyphen -80 +KPX V o -90 +KPX V oacute -90 +KPX V ocircumflex -90 +KPX V odieresis -90 +KPX V ograve -90 +KPX V ohungarumlaut -90 +KPX V omacron -90 +KPX V oslash -90 +KPX V otilde -90 +KPX V period -120 +KPX V semicolon -40 +KPX V u -60 +KPX V uacute -60 +KPX V ucircumflex -60 +KPX V udieresis -60 +KPX V ugrave -60 +KPX V uhungarumlaut -60 +KPX V umacron -60 +KPX V uogonek -60 +KPX V uring -60 +KPX W A -60 +KPX W Aacute -60 +KPX W Abreve -60 +KPX W Acircumflex -60 +KPX W Adieresis -60 +KPX W Agrave -60 +KPX W Amacron -60 +KPX W Aogonek -60 +KPX W Aring -60 +KPX W Atilde -60 +KPX W O -20 +KPX W Oacute -20 +KPX W Ocircumflex -20 +KPX W Odieresis -20 +KPX W Ograve -20 +KPX W Ohungarumlaut -20 +KPX W Omacron -20 +KPX W Oslash -20 +KPX W Otilde -20 +KPX W a -40 +KPX W aacute -40 +KPX W abreve -40 +KPX W acircumflex -40 +KPX W adieresis -40 +KPX W agrave -40 +KPX W amacron -40 +KPX W aogonek -40 +KPX W aring -40 +KPX W atilde -40 +KPX W colon -10 +KPX W comma -80 +KPX W e -35 +KPX W eacute -35 +KPX W ecaron -35 +KPX W ecircumflex -35 +KPX W edieresis -35 +KPX W edotaccent -35 +KPX W egrave -35 +KPX W emacron -35 +KPX W eogonek -35 +KPX W hyphen -40 +KPX W o -60 +KPX W oacute -60 +KPX W ocircumflex -60 +KPX W odieresis -60 +KPX W ograve -60 +KPX W ohungarumlaut -60 +KPX W omacron -60 +KPX W oslash -60 +KPX W otilde -60 +KPX W period -80 +KPX W semicolon -10 +KPX W u -45 +KPX W uacute -45 +KPX W ucircumflex -45 +KPX W udieresis -45 +KPX W ugrave -45 +KPX W uhungarumlaut -45 +KPX W umacron -45 +KPX W uogonek -45 +KPX W uring -45 +KPX W y -20 +KPX W yacute -20 +KPX W ydieresis -20 +KPX Y A -110 +KPX Y Aacute -110 +KPX Y Abreve -110 +KPX Y Acircumflex -110 +KPX Y Adieresis -110 +KPX Y Agrave -110 +KPX Y Amacron -110 +KPX Y Aogonek -110 +KPX Y Aring -110 +KPX Y Atilde -110 +KPX Y O -70 +KPX Y Oacute -70 +KPX Y Ocircumflex -70 +KPX Y Odieresis -70 +KPX Y Ograve -70 +KPX Y Ohungarumlaut -70 +KPX Y Omacron -70 +KPX Y Oslash -70 +KPX Y Otilde -70 +KPX Y a -90 +KPX Y aacute -90 +KPX Y abreve -90 +KPX Y acircumflex -90 +KPX Y adieresis -90 +KPX Y agrave -90 +KPX Y amacron -90 +KPX Y aogonek -90 +KPX Y aring -90 +KPX Y atilde -90 +KPX Y colon -50 +KPX Y comma -100 +KPX Y e -80 +KPX Y eacute -80 +KPX Y ecaron -80 +KPX Y ecircumflex -80 +KPX Y edieresis -80 +KPX Y edotaccent -80 +KPX Y egrave -80 +KPX Y emacron -80 +KPX Y eogonek -80 +KPX Y o -100 +KPX Y oacute -100 +KPX Y ocircumflex -100 +KPX Y odieresis -100 +KPX Y ograve -100 +KPX Y ohungarumlaut -100 +KPX Y omacron -100 +KPX Y oslash -100 +KPX Y otilde -100 +KPX Y period -100 +KPX Y semicolon -50 +KPX Y u -100 +KPX Y uacute -100 +KPX Y ucircumflex -100 +KPX Y udieresis -100 +KPX Y ugrave -100 +KPX Y uhungarumlaut -100 +KPX Y umacron -100 +KPX Y uogonek -100 +KPX Y uring -100 +KPX Yacute A -110 +KPX Yacute Aacute -110 +KPX Yacute Abreve -110 +KPX Yacute Acircumflex -110 +KPX Yacute Adieresis -110 +KPX Yacute Agrave -110 +KPX Yacute Amacron -110 +KPX Yacute Aogonek -110 +KPX Yacute Aring -110 +KPX Yacute Atilde -110 +KPX Yacute O -70 +KPX Yacute Oacute -70 +KPX Yacute Ocircumflex -70 +KPX Yacute Odieresis -70 +KPX Yacute Ograve -70 +KPX Yacute Ohungarumlaut -70 +KPX Yacute Omacron -70 +KPX Yacute Oslash -70 +KPX Yacute Otilde -70 +KPX Yacute a -90 +KPX Yacute aacute -90 +KPX Yacute abreve -90 +KPX Yacute acircumflex -90 +KPX Yacute adieresis -90 +KPX Yacute agrave -90 +KPX Yacute amacron -90 +KPX Yacute aogonek -90 +KPX Yacute aring -90 +KPX Yacute atilde -90 +KPX Yacute colon -50 +KPX Yacute comma -100 +KPX Yacute e -80 +KPX Yacute eacute -80 +KPX Yacute ecaron -80 +KPX Yacute ecircumflex -80 +KPX Yacute edieresis -80 +KPX Yacute edotaccent -80 +KPX Yacute egrave -80 +KPX Yacute emacron -80 +KPX Yacute eogonek -80 +KPX Yacute o -100 +KPX Yacute oacute -100 +KPX Yacute ocircumflex -100 +KPX Yacute odieresis -100 +KPX Yacute ograve -100 +KPX Yacute ohungarumlaut -100 +KPX Yacute omacron -100 +KPX Yacute oslash -100 +KPX Yacute otilde -100 +KPX Yacute period -100 +KPX Yacute semicolon -50 +KPX Yacute u -100 +KPX Yacute uacute -100 +KPX Yacute ucircumflex -100 +KPX Yacute udieresis -100 +KPX Yacute ugrave -100 +KPX Yacute uhungarumlaut -100 +KPX Yacute umacron -100 +KPX Yacute uogonek -100 +KPX Yacute uring -100 +KPX Ydieresis A -110 +KPX Ydieresis Aacute -110 +KPX Ydieresis Abreve -110 +KPX Ydieresis Acircumflex -110 +KPX Ydieresis Adieresis -110 +KPX Ydieresis Agrave -110 +KPX Ydieresis Amacron -110 +KPX Ydieresis Aogonek -110 +KPX Ydieresis Aring -110 +KPX Ydieresis Atilde -110 +KPX Ydieresis O -70 +KPX Ydieresis Oacute -70 +KPX Ydieresis Ocircumflex -70 +KPX Ydieresis Odieresis -70 +KPX Ydieresis Ograve -70 +KPX Ydieresis Ohungarumlaut -70 +KPX Ydieresis Omacron -70 +KPX Ydieresis Oslash -70 +KPX Ydieresis Otilde -70 +KPX Ydieresis a -90 +KPX Ydieresis aacute -90 +KPX Ydieresis abreve -90 +KPX Ydieresis acircumflex -90 +KPX Ydieresis adieresis -90 +KPX Ydieresis agrave -90 +KPX Ydieresis amacron -90 +KPX Ydieresis aogonek -90 +KPX Ydieresis aring -90 +KPX Ydieresis atilde -90 +KPX Ydieresis colon -50 +KPX Ydieresis comma -100 +KPX Ydieresis e -80 +KPX Ydieresis eacute -80 +KPX Ydieresis ecaron -80 +KPX Ydieresis ecircumflex -80 +KPX Ydieresis edieresis -80 +KPX Ydieresis edotaccent -80 +KPX Ydieresis egrave -80 +KPX Ydieresis emacron -80 +KPX Ydieresis eogonek -80 +KPX Ydieresis o -100 +KPX Ydieresis oacute -100 +KPX Ydieresis ocircumflex -100 +KPX Ydieresis odieresis -100 +KPX Ydieresis ograve -100 +KPX Ydieresis ohungarumlaut -100 +KPX Ydieresis omacron -100 +KPX Ydieresis oslash -100 +KPX Ydieresis otilde -100 +KPX Ydieresis period -100 +KPX Ydieresis semicolon -50 +KPX Ydieresis u -100 +KPX Ydieresis uacute -100 +KPX Ydieresis ucircumflex -100 +KPX Ydieresis udieresis -100 +KPX Ydieresis ugrave -100 +KPX Ydieresis uhungarumlaut -100 +KPX Ydieresis umacron -100 +KPX Ydieresis uogonek -100 +KPX Ydieresis uring -100 +KPX a g -10 +KPX a gbreve -10 +KPX a gcommaaccent -10 +KPX a v -15 +KPX a w -15 +KPX a y -20 +KPX a yacute -20 +KPX a ydieresis -20 +KPX aacute g -10 +KPX aacute gbreve -10 +KPX aacute gcommaaccent -10 +KPX aacute v -15 +KPX aacute w -15 +KPX aacute y -20 +KPX aacute yacute -20 +KPX aacute ydieresis -20 +KPX abreve g -10 +KPX abreve gbreve -10 +KPX abreve gcommaaccent -10 +KPX abreve v -15 +KPX abreve w -15 +KPX abreve y -20 +KPX abreve yacute -20 +KPX abreve ydieresis -20 +KPX acircumflex g -10 +KPX acircumflex gbreve -10 +KPX acircumflex gcommaaccent -10 +KPX acircumflex v -15 +KPX acircumflex w -15 +KPX acircumflex y -20 +KPX acircumflex yacute -20 +KPX acircumflex ydieresis -20 +KPX adieresis g -10 +KPX adieresis gbreve -10 +KPX adieresis gcommaaccent -10 +KPX adieresis v -15 +KPX adieresis w -15 +KPX adieresis y -20 +KPX adieresis yacute -20 +KPX adieresis ydieresis -20 +KPX agrave g -10 +KPX agrave gbreve -10 +KPX agrave gcommaaccent -10 +KPX agrave v -15 +KPX agrave w -15 +KPX agrave y -20 +KPX agrave yacute -20 +KPX agrave ydieresis -20 +KPX amacron g -10 +KPX amacron gbreve -10 +KPX amacron gcommaaccent -10 +KPX amacron v -15 +KPX amacron w -15 +KPX amacron y -20 +KPX amacron yacute -20 +KPX amacron ydieresis -20 +KPX aogonek g -10 +KPX aogonek gbreve -10 +KPX aogonek gcommaaccent -10 +KPX aogonek v -15 +KPX aogonek w -15 +KPX aogonek y -20 +KPX aogonek yacute -20 +KPX aogonek ydieresis -20 +KPX aring g -10 +KPX aring gbreve -10 +KPX aring gcommaaccent -10 +KPX aring v -15 +KPX aring w -15 +KPX aring y -20 +KPX aring yacute -20 +KPX aring ydieresis -20 +KPX atilde g -10 +KPX atilde gbreve -10 +KPX atilde gcommaaccent -10 +KPX atilde v -15 +KPX atilde w -15 +KPX atilde y -20 +KPX atilde yacute -20 +KPX atilde ydieresis -20 +KPX b l -10 +KPX b lacute -10 +KPX b lcommaaccent -10 +KPX b lslash -10 +KPX b u -20 +KPX b uacute -20 +KPX b ucircumflex -20 +KPX b udieresis -20 +KPX b ugrave -20 +KPX b uhungarumlaut -20 +KPX b umacron -20 +KPX b uogonek -20 +KPX b uring -20 +KPX b v -20 +KPX b y -20 +KPX b yacute -20 +KPX b ydieresis -20 +KPX c h -10 +KPX c k -20 +KPX c kcommaaccent -20 +KPX c l -20 +KPX c lacute -20 +KPX c lcommaaccent -20 +KPX c lslash -20 +KPX c y -10 +KPX c yacute -10 +KPX c ydieresis -10 +KPX cacute h -10 +KPX cacute k -20 +KPX cacute kcommaaccent -20 +KPX cacute l -20 +KPX cacute lacute -20 +KPX cacute lcommaaccent -20 +KPX cacute lslash -20 +KPX cacute y -10 +KPX cacute yacute -10 +KPX cacute ydieresis -10 +KPX ccaron h -10 +KPX ccaron k -20 +KPX ccaron kcommaaccent -20 +KPX ccaron l -20 +KPX ccaron lacute -20 +KPX ccaron lcommaaccent -20 +KPX ccaron lslash -20 +KPX ccaron y -10 +KPX ccaron yacute -10 +KPX ccaron ydieresis -10 +KPX ccedilla h -10 +KPX ccedilla k -20 +KPX ccedilla kcommaaccent -20 +KPX ccedilla l -20 +KPX ccedilla lacute -20 +KPX ccedilla lcommaaccent -20 +KPX ccedilla lslash -20 +KPX ccedilla y -10 +KPX ccedilla yacute -10 +KPX ccedilla ydieresis -10 +KPX colon space -40 +KPX comma quotedblright -120 +KPX comma quoteright -120 +KPX comma space -40 +KPX d d -10 +KPX d dcroat -10 +KPX d v -15 +KPX d w -15 +KPX d y -15 +KPX d yacute -15 +KPX d ydieresis -15 +KPX dcroat d -10 +KPX dcroat dcroat -10 +KPX dcroat v -15 +KPX dcroat w -15 +KPX dcroat y -15 +KPX dcroat yacute -15 +KPX dcroat ydieresis -15 +KPX e comma 10 +KPX e period 20 +KPX e v -15 +KPX e w -15 +KPX e x -15 +KPX e y -15 +KPX e yacute -15 +KPX e ydieresis -15 +KPX eacute comma 10 +KPX eacute period 20 +KPX eacute v -15 +KPX eacute w -15 +KPX eacute x -15 +KPX eacute y -15 +KPX eacute yacute -15 +KPX eacute ydieresis -15 +KPX ecaron comma 10 +KPX ecaron period 20 +KPX ecaron v -15 +KPX ecaron w -15 +KPX ecaron x -15 +KPX ecaron y -15 +KPX ecaron yacute -15 +KPX ecaron ydieresis -15 +KPX ecircumflex comma 10 +KPX ecircumflex period 20 +KPX ecircumflex v -15 +KPX ecircumflex w -15 +KPX ecircumflex x -15 +KPX ecircumflex y -15 +KPX ecircumflex yacute -15 +KPX ecircumflex ydieresis -15 +KPX edieresis comma 10 +KPX edieresis period 20 +KPX edieresis v -15 +KPX edieresis w -15 +KPX edieresis x -15 +KPX edieresis y -15 +KPX edieresis yacute -15 +KPX edieresis ydieresis -15 +KPX edotaccent comma 10 +KPX edotaccent period 20 +KPX edotaccent v -15 +KPX edotaccent w -15 +KPX edotaccent x -15 +KPX edotaccent y -15 +KPX edotaccent yacute -15 +KPX edotaccent ydieresis -15 +KPX egrave comma 10 +KPX egrave period 20 +KPX egrave v -15 +KPX egrave w -15 +KPX egrave x -15 +KPX egrave y -15 +KPX egrave yacute -15 +KPX egrave ydieresis -15 +KPX emacron comma 10 +KPX emacron period 20 +KPX emacron v -15 +KPX emacron w -15 +KPX emacron x -15 +KPX emacron y -15 +KPX emacron yacute -15 +KPX emacron ydieresis -15 +KPX eogonek comma 10 +KPX eogonek period 20 +KPX eogonek v -15 +KPX eogonek w -15 +KPX eogonek x -15 +KPX eogonek y -15 +KPX eogonek yacute -15 +KPX eogonek ydieresis -15 +KPX f comma -10 +KPX f e -10 +KPX f eacute -10 +KPX f ecaron -10 +KPX f ecircumflex -10 +KPX f edieresis -10 +KPX f edotaccent -10 +KPX f egrave -10 +KPX f emacron -10 +KPX f eogonek -10 +KPX f o -20 +KPX f oacute -20 +KPX f ocircumflex -20 +KPX f odieresis -20 +KPX f ograve -20 +KPX f ohungarumlaut -20 +KPX f omacron -20 +KPX f oslash -20 +KPX f otilde -20 +KPX f period -10 +KPX f quotedblright 30 +KPX f quoteright 30 +KPX g e 10 +KPX g eacute 10 +KPX g ecaron 10 +KPX g ecircumflex 10 +KPX g edieresis 10 +KPX g edotaccent 10 +KPX g egrave 10 +KPX g emacron 10 +KPX g eogonek 10 +KPX g g -10 +KPX g gbreve -10 +KPX g gcommaaccent -10 +KPX gbreve e 10 +KPX gbreve eacute 10 +KPX gbreve ecaron 10 +KPX gbreve ecircumflex 10 +KPX gbreve edieresis 10 +KPX gbreve edotaccent 10 +KPX gbreve egrave 10 +KPX gbreve emacron 10 +KPX gbreve eogonek 10 +KPX gbreve g -10 +KPX gbreve gbreve -10 +KPX gbreve gcommaaccent -10 +KPX gcommaaccent e 10 +KPX gcommaaccent eacute 10 +KPX gcommaaccent ecaron 10 +KPX gcommaaccent ecircumflex 10 +KPX gcommaaccent edieresis 10 +KPX gcommaaccent edotaccent 10 +KPX gcommaaccent egrave 10 +KPX gcommaaccent emacron 10 +KPX gcommaaccent eogonek 10 +KPX gcommaaccent g -10 +KPX gcommaaccent gbreve -10 +KPX gcommaaccent gcommaaccent -10 +KPX h y -20 +KPX h yacute -20 +KPX h ydieresis -20 +KPX k o -15 +KPX k oacute -15 +KPX k ocircumflex -15 +KPX k odieresis -15 +KPX k ograve -15 +KPX k ohungarumlaut -15 +KPX k omacron -15 +KPX k oslash -15 +KPX k otilde -15 +KPX kcommaaccent o -15 +KPX kcommaaccent oacute -15 +KPX kcommaaccent ocircumflex -15 +KPX kcommaaccent odieresis -15 +KPX kcommaaccent ograve -15 +KPX kcommaaccent ohungarumlaut -15 +KPX kcommaaccent omacron -15 +KPX kcommaaccent oslash -15 +KPX kcommaaccent otilde -15 +KPX l w -15 +KPX l y -15 +KPX l yacute -15 +KPX l ydieresis -15 +KPX lacute w -15 +KPX lacute y -15 +KPX lacute yacute -15 +KPX lacute ydieresis -15 +KPX lcommaaccent w -15 +KPX lcommaaccent y -15 +KPX lcommaaccent yacute -15 +KPX lcommaaccent ydieresis -15 +KPX lslash w -15 +KPX lslash y -15 +KPX lslash yacute -15 +KPX lslash ydieresis -15 +KPX m u -20 +KPX m uacute -20 +KPX m ucircumflex -20 +KPX m udieresis -20 +KPX m ugrave -20 +KPX m uhungarumlaut -20 +KPX m umacron -20 +KPX m uogonek -20 +KPX m uring -20 +KPX m y -30 +KPX m yacute -30 +KPX m ydieresis -30 +KPX n u -10 +KPX n uacute -10 +KPX n ucircumflex -10 +KPX n udieresis -10 +KPX n ugrave -10 +KPX n uhungarumlaut -10 +KPX n umacron -10 +KPX n uogonek -10 +KPX n uring -10 +KPX n v -40 +KPX n y -20 +KPX n yacute -20 +KPX n ydieresis -20 +KPX nacute u -10 +KPX nacute uacute -10 +KPX nacute ucircumflex -10 +KPX nacute udieresis -10 +KPX nacute ugrave -10 +KPX nacute uhungarumlaut -10 +KPX nacute umacron -10 +KPX nacute uogonek -10 +KPX nacute uring -10 +KPX nacute v -40 +KPX nacute y -20 +KPX nacute yacute -20 +KPX nacute ydieresis -20 +KPX ncaron u -10 +KPX ncaron uacute -10 +KPX ncaron ucircumflex -10 +KPX ncaron udieresis -10 +KPX ncaron ugrave -10 +KPX ncaron uhungarumlaut -10 +KPX ncaron umacron -10 +KPX ncaron uogonek -10 +KPX ncaron uring -10 +KPX ncaron v -40 +KPX ncaron y -20 +KPX ncaron yacute -20 +KPX ncaron ydieresis -20 +KPX ncommaaccent u -10 +KPX ncommaaccent uacute -10 +KPX ncommaaccent ucircumflex -10 +KPX ncommaaccent udieresis -10 +KPX ncommaaccent ugrave -10 +KPX ncommaaccent uhungarumlaut -10 +KPX ncommaaccent umacron -10 +KPX ncommaaccent uogonek -10 +KPX ncommaaccent uring -10 +KPX ncommaaccent v -40 +KPX ncommaaccent y -20 +KPX ncommaaccent yacute -20 +KPX ncommaaccent ydieresis -20 +KPX ntilde u -10 +KPX ntilde uacute -10 +KPX ntilde ucircumflex -10 +KPX ntilde udieresis -10 +KPX ntilde ugrave -10 +KPX ntilde uhungarumlaut -10 +KPX ntilde umacron -10 +KPX ntilde uogonek -10 +KPX ntilde uring -10 +KPX ntilde v -40 +KPX ntilde y -20 +KPX ntilde yacute -20 +KPX ntilde ydieresis -20 +KPX o v -20 +KPX o w -15 +KPX o x -30 +KPX o y -20 +KPX o yacute -20 +KPX o ydieresis -20 +KPX oacute v -20 +KPX oacute w -15 +KPX oacute x -30 +KPX oacute y -20 +KPX oacute yacute -20 +KPX oacute ydieresis -20 +KPX ocircumflex v -20 +KPX ocircumflex w -15 +KPX ocircumflex x -30 +KPX ocircumflex y -20 +KPX ocircumflex yacute -20 +KPX ocircumflex ydieresis -20 +KPX odieresis v -20 +KPX odieresis w -15 +KPX odieresis x -30 +KPX odieresis y -20 +KPX odieresis yacute -20 +KPX odieresis ydieresis -20 +KPX ograve v -20 +KPX ograve w -15 +KPX ograve x -30 +KPX ograve y -20 +KPX ograve yacute -20 +KPX ograve ydieresis -20 +KPX ohungarumlaut v -20 +KPX ohungarumlaut w -15 +KPX ohungarumlaut x -30 +KPX ohungarumlaut y -20 +KPX ohungarumlaut yacute -20 +KPX ohungarumlaut ydieresis -20 +KPX omacron v -20 +KPX omacron w -15 +KPX omacron x -30 +KPX omacron y -20 +KPX omacron yacute -20 +KPX omacron ydieresis -20 +KPX oslash v -20 +KPX oslash w -15 +KPX oslash x -30 +KPX oslash y -20 +KPX oslash yacute -20 +KPX oslash ydieresis -20 +KPX otilde v -20 +KPX otilde w -15 +KPX otilde x -30 +KPX otilde y -20 +KPX otilde yacute -20 +KPX otilde ydieresis -20 +KPX p y -15 +KPX p yacute -15 +KPX p ydieresis -15 +KPX period quotedblright -120 +KPX period quoteright -120 +KPX period space -40 +KPX quotedblright space -80 +KPX quoteleft quoteleft -46 +KPX quoteright d -80 +KPX quoteright dcroat -80 +KPX quoteright l -20 +KPX quoteright lacute -20 +KPX quoteright lcommaaccent -20 +KPX quoteright lslash -20 +KPX quoteright quoteright -46 +KPX quoteright r -40 +KPX quoteright racute -40 +KPX quoteright rcaron -40 +KPX quoteright rcommaaccent -40 +KPX quoteright s -60 +KPX quoteright sacute -60 +KPX quoteright scaron -60 +KPX quoteright scedilla -60 +KPX quoteright scommaaccent -60 +KPX quoteright space -80 +KPX quoteright v -20 +KPX r c -20 +KPX r cacute -20 +KPX r ccaron -20 +KPX r ccedilla -20 +KPX r comma -60 +KPX r d -20 +KPX r dcroat -20 +KPX r g -15 +KPX r gbreve -15 +KPX r gcommaaccent -15 +KPX r hyphen -20 +KPX r o -20 +KPX r oacute -20 +KPX r ocircumflex -20 +KPX r odieresis -20 +KPX r ograve -20 +KPX r ohungarumlaut -20 +KPX r omacron -20 +KPX r oslash -20 +KPX r otilde -20 +KPX r period -60 +KPX r q -20 +KPX r s -15 +KPX r sacute -15 +KPX r scaron -15 +KPX r scedilla -15 +KPX r scommaaccent -15 +KPX r t 20 +KPX r tcommaaccent 20 +KPX r v 10 +KPX r y 10 +KPX r yacute 10 +KPX r ydieresis 10 +KPX racute c -20 +KPX racute cacute -20 +KPX racute ccaron -20 +KPX racute ccedilla -20 +KPX racute comma -60 +KPX racute d -20 +KPX racute dcroat -20 +KPX racute g -15 +KPX racute gbreve -15 +KPX racute gcommaaccent -15 +KPX racute hyphen -20 +KPX racute o -20 +KPX racute oacute -20 +KPX racute ocircumflex -20 +KPX racute odieresis -20 +KPX racute ograve -20 +KPX racute ohungarumlaut -20 +KPX racute omacron -20 +KPX racute oslash -20 +KPX racute otilde -20 +KPX racute period -60 +KPX racute q -20 +KPX racute s -15 +KPX racute sacute -15 +KPX racute scaron -15 +KPX racute scedilla -15 +KPX racute scommaaccent -15 +KPX racute t 20 +KPX racute tcommaaccent 20 +KPX racute v 10 +KPX racute y 10 +KPX racute yacute 10 +KPX racute ydieresis 10 +KPX rcaron c -20 +KPX rcaron cacute -20 +KPX rcaron ccaron -20 +KPX rcaron ccedilla -20 +KPX rcaron comma -60 +KPX rcaron d -20 +KPX rcaron dcroat -20 +KPX rcaron g -15 +KPX rcaron gbreve -15 +KPX rcaron gcommaaccent -15 +KPX rcaron hyphen -20 +KPX rcaron o -20 +KPX rcaron oacute -20 +KPX rcaron ocircumflex -20 +KPX rcaron odieresis -20 +KPX rcaron ograve -20 +KPX rcaron ohungarumlaut -20 +KPX rcaron omacron -20 +KPX rcaron oslash -20 +KPX rcaron otilde -20 +KPX rcaron period -60 +KPX rcaron q -20 +KPX rcaron s -15 +KPX rcaron sacute -15 +KPX rcaron scaron -15 +KPX rcaron scedilla -15 +KPX rcaron scommaaccent -15 +KPX rcaron t 20 +KPX rcaron tcommaaccent 20 +KPX rcaron v 10 +KPX rcaron y 10 +KPX rcaron yacute 10 +KPX rcaron ydieresis 10 +KPX rcommaaccent c -20 +KPX rcommaaccent cacute -20 +KPX rcommaaccent ccaron -20 +KPX rcommaaccent ccedilla -20 +KPX rcommaaccent comma -60 +KPX rcommaaccent d -20 +KPX rcommaaccent dcroat -20 +KPX rcommaaccent g -15 +KPX rcommaaccent gbreve -15 +KPX rcommaaccent gcommaaccent -15 +KPX rcommaaccent hyphen -20 +KPX rcommaaccent o -20 +KPX rcommaaccent oacute -20 +KPX rcommaaccent ocircumflex -20 +KPX rcommaaccent odieresis -20 +KPX rcommaaccent ograve -20 +KPX rcommaaccent ohungarumlaut -20 +KPX rcommaaccent omacron -20 +KPX rcommaaccent oslash -20 +KPX rcommaaccent otilde -20 +KPX rcommaaccent period -60 +KPX rcommaaccent q -20 +KPX rcommaaccent s -15 +KPX rcommaaccent sacute -15 +KPX rcommaaccent scaron -15 +KPX rcommaaccent scedilla -15 +KPX rcommaaccent scommaaccent -15 +KPX rcommaaccent t 20 +KPX rcommaaccent tcommaaccent 20 +KPX rcommaaccent v 10 +KPX rcommaaccent y 10 +KPX rcommaaccent yacute 10 +KPX rcommaaccent ydieresis 10 +KPX s w -15 +KPX sacute w -15 +KPX scaron w -15 +KPX scedilla w -15 +KPX scommaaccent w -15 +KPX semicolon space -40 +KPX space T -100 +KPX space Tcaron -100 +KPX space Tcommaaccent -100 +KPX space V -80 +KPX space W -80 +KPX space Y -120 +KPX space Yacute -120 +KPX space Ydieresis -120 +KPX space quotedblleft -80 +KPX space quoteleft -60 +KPX v a -20 +KPX v aacute -20 +KPX v abreve -20 +KPX v acircumflex -20 +KPX v adieresis -20 +KPX v agrave -20 +KPX v amacron -20 +KPX v aogonek -20 +KPX v aring -20 +KPX v atilde -20 +KPX v comma -80 +KPX v o -30 +KPX v oacute -30 +KPX v ocircumflex -30 +KPX v odieresis -30 +KPX v ograve -30 +KPX v ohungarumlaut -30 +KPX v omacron -30 +KPX v oslash -30 +KPX v otilde -30 +KPX v period -80 +KPX w comma -40 +KPX w o -20 +KPX w oacute -20 +KPX w ocircumflex -20 +KPX w odieresis -20 +KPX w ograve -20 +KPX w ohungarumlaut -20 +KPX w omacron -20 +KPX w oslash -20 +KPX w otilde -20 +KPX w period -40 +KPX x e -10 +KPX x eacute -10 +KPX x ecaron -10 +KPX x ecircumflex -10 +KPX x edieresis -10 +KPX x edotaccent -10 +KPX x egrave -10 +KPX x emacron -10 +KPX x eogonek -10 +KPX y a -30 +KPX y aacute -30 +KPX y abreve -30 +KPX y acircumflex -30 +KPX y adieresis -30 +KPX y agrave -30 +KPX y amacron -30 +KPX y aogonek -30 +KPX y aring -30 +KPX y atilde -30 +KPX y comma -80 +KPX y e -10 +KPX y eacute -10 +KPX y ecaron -10 +KPX y ecircumflex -10 +KPX y edieresis -10 +KPX y edotaccent -10 +KPX y egrave -10 +KPX y emacron -10 +KPX y eogonek -10 +KPX y o -25 +KPX y oacute -25 +KPX y ocircumflex -25 +KPX y odieresis -25 +KPX y ograve -25 +KPX y ohungarumlaut -25 +KPX y omacron -25 +KPX y oslash -25 +KPX y otilde -25 +KPX y period -80 +KPX yacute a -30 +KPX yacute aacute -30 +KPX yacute abreve -30 +KPX yacute acircumflex -30 +KPX yacute adieresis -30 +KPX yacute agrave -30 +KPX yacute amacron -30 +KPX yacute aogonek -30 +KPX yacute aring -30 +KPX yacute atilde -30 +KPX yacute comma -80 +KPX yacute e -10 +KPX yacute eacute -10 +KPX yacute ecaron -10 +KPX yacute ecircumflex -10 +KPX yacute edieresis -10 +KPX yacute edotaccent -10 +KPX yacute egrave -10 +KPX yacute emacron -10 +KPX yacute eogonek -10 +KPX yacute o -25 +KPX yacute oacute -25 +KPX yacute ocircumflex -25 +KPX yacute odieresis -25 +KPX yacute ograve -25 +KPX yacute ohungarumlaut -25 +KPX yacute omacron -25 +KPX yacute oslash -25 +KPX yacute otilde -25 +KPX yacute period -80 +KPX ydieresis a -30 +KPX ydieresis aacute -30 +KPX ydieresis abreve -30 +KPX ydieresis acircumflex -30 +KPX ydieresis adieresis -30 +KPX ydieresis agrave -30 +KPX ydieresis amacron -30 +KPX ydieresis aogonek -30 +KPX ydieresis aring -30 +KPX ydieresis atilde -30 +KPX ydieresis comma -80 +KPX ydieresis e -10 +KPX ydieresis eacute -10 +KPX ydieresis ecaron -10 +KPX ydieresis ecircumflex -10 +KPX ydieresis edieresis -10 +KPX ydieresis edotaccent -10 +KPX ydieresis egrave -10 +KPX ydieresis emacron -10 +KPX ydieresis eogonek -10 +KPX ydieresis o -25 +KPX ydieresis oacute -25 +KPX ydieresis ocircumflex -25 +KPX ydieresis odieresis -25 +KPX ydieresis ograve -25 +KPX ydieresis ohungarumlaut -25 +KPX ydieresis omacron -25 +KPX ydieresis oslash -25 +KPX ydieresis otilde -25 +KPX ydieresis period -80 +KPX z e 10 +KPX z eacute 10 +KPX z ecaron 10 +KPX z ecircumflex 10 +KPX z edieresis 10 +KPX z edotaccent 10 +KPX z egrave 10 +KPX z emacron 10 +KPX z eogonek 10 +KPX zacute e 10 +KPX zacute eacute 10 +KPX zacute ecaron 10 +KPX zacute ecircumflex 10 +KPX zacute edieresis 10 +KPX zacute edotaccent 10 +KPX zacute egrave 10 +KPX zacute emacron 10 +KPX zacute eogonek 10 +KPX zcaron e 10 +KPX zcaron eacute 10 +KPX zcaron ecaron 10 +KPX zcaron ecircumflex 10 +KPX zcaron edieresis 10 +KPX zcaron edotaccent 10 +KPX zcaron egrave 10 +KPX zcaron emacron 10 +KPX zcaron eogonek 10 +KPX zdotaccent e 10 +KPX zdotaccent eacute 10 +KPX zdotaccent ecaron 10 +KPX zdotaccent ecircumflex 10 +KPX zdotaccent edieresis 10 +KPX zdotaccent edotaccent 10 +KPX zdotaccent egrave 10 +KPX zdotaccent emacron 10 +KPX zdotaccent eogonek 10 +EndKernPairs +EndKernData +EndFontMetrics diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/Helvetica-BoldOblique.afm b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/Helvetica-BoldOblique.afm new file mode 100644 index 0000000..337f712 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/Helvetica-BoldOblique.afm @@ -0,0 +1,2829 @@ +StartFontMetrics 4.1 +Comment Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Thu May 1 12:45:12 1997 +Comment UniqueID 43053 +Comment VMusage 14482 68586 +FontName Helvetica-BoldOblique +FullName Helvetica Bold Oblique +FamilyName Helvetica +Weight Bold +ItalicAngle -12 +IsFixedPitch false +CharacterSet ExtendedRoman +FontBBox -174 -228 1114 962 +UnderlinePosition -100 +UnderlineThickness 50 +Version 002.000 +Notice Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype-Hell AG and/or its subsidiaries. +EncodingScheme WinAnsiEncoding +CapHeight 718 +XHeight 532 +Ascender 718 +Descender -207 +StdHW 118 +StdVW 140 +StartCharMetrics 317 +C 32 ; WX 278 ; N space ; B 0 0 0 0 ; +C 160 ; WX 278 ; N space ; B 0 0 0 0 ; +C 33 ; WX 333 ; N exclam ; B 94 0 397 718 ; +C 34 ; WX 474 ; N quotedbl ; B 193 447 529 718 ; +C 35 ; WX 556 ; N numbersign ; B 60 0 644 698 ; +C 36 ; WX 556 ; N dollar ; B 67 -115 622 775 ; +C 37 ; WX 889 ; N percent ; B 136 -19 901 710 ; +C 38 ; WX 722 ; N ampersand ; B 89 -19 732 718 ; +C 146 ; WX 278 ; N quoteright ; B 167 445 362 718 ; +C 40 ; WX 333 ; N parenleft ; B 76 -208 470 734 ; +C 41 ; WX 333 ; N parenright ; B -25 -208 369 734 ; +C 42 ; WX 389 ; N asterisk ; B 146 387 481 718 ; +C 43 ; WX 584 ; N plus ; B 82 0 610 506 ; +C 44 ; WX 278 ; N comma ; B 28 -168 245 146 ; +C 45 ; WX 333 ; N hyphen ; B 73 215 379 345 ; +C 173 ; WX 333 ; N hyphen ; B 44 232 289 322 ; +C 46 ; WX 278 ; N period ; B 64 0 245 146 ; +C 47 ; WX 278 ; N slash ; B -37 -19 468 737 ; +C 48 ; WX 556 ; N zero ; B 86 -19 617 710 ; +C 49 ; WX 556 ; N one ; B 173 0 529 710 ; +C 50 ; WX 556 ; N two ; B 26 0 619 710 ; +C 51 ; WX 556 ; N three ; B 65 -19 608 710 ; +C 52 ; WX 556 ; N four ; B 60 0 598 710 ; +C 53 ; WX 556 ; N five ; B 64 -19 636 698 ; +C 54 ; WX 556 ; N six ; B 85 -19 619 710 ; +C 55 ; WX 556 ; N seven ; B 125 0 676 698 ; +C 56 ; WX 556 ; N eight ; B 69 -19 616 710 ; +C 57 ; WX 556 ; N nine ; B 78 -19 615 710 ; +C 58 ; WX 333 ; N colon ; B 92 0 351 512 ; +C 59 ; WX 333 ; N semicolon ; B 56 -168 351 512 ; +C 60 ; WX 584 ; N less ; B 82 -8 655 514 ; +C 61 ; WX 584 ; N equal ; B 58 87 633 419 ; +C 62 ; WX 584 ; N greater ; B 36 -8 609 514 ; +C 63 ; WX 611 ; N question ; B 165 0 671 727 ; +C 64 ; WX 975 ; N at ; B 186 -19 954 737 ; +C 65 ; WX 722 ; N A ; B 20 0 702 718 ; +C 66 ; WX 722 ; N B ; B 76 0 764 718 ; +C 67 ; WX 722 ; N C ; B 107 -19 789 737 ; +C 68 ; WX 722 ; N D ; B 76 0 777 718 ; +C 69 ; WX 667 ; N E ; B 76 0 757 718 ; +C 70 ; WX 611 ; N F ; B 76 0 740 718 ; +C 71 ; WX 778 ; N G ; B 108 -19 817 737 ; +C 72 ; WX 722 ; N H ; B 71 0 804 718 ; +C 73 ; WX 278 ; N I ; B 64 0 367 718 ; +C 74 ; WX 556 ; N J ; B 60 -18 637 718 ; +C 75 ; WX 722 ; N K ; B 87 0 858 718 ; +C 76 ; WX 611 ; N L ; B 76 0 611 718 ; +C 77 ; WX 833 ; N M ; B 69 0 918 718 ; +C 78 ; WX 722 ; N N ; B 69 0 807 718 ; +C 79 ; WX 778 ; N O ; B 107 -19 823 737 ; +C 80 ; WX 667 ; N P ; B 76 0 738 718 ; +C 81 ; WX 778 ; N Q ; B 107 -52 823 737 ; +C 82 ; WX 722 ; N R ; B 76 0 778 718 ; +C 83 ; WX 667 ; N S ; B 81 -19 718 737 ; +C 84 ; WX 611 ; N T ; B 140 0 751 718 ; +C 85 ; WX 722 ; N U ; B 116 -19 804 718 ; +C 86 ; WX 667 ; N V ; B 172 0 801 718 ; +C 87 ; WX 944 ; N W ; B 169 0 1082 718 ; +C 88 ; WX 667 ; N X ; B 14 0 791 718 ; +C 89 ; WX 667 ; N Y ; B 168 0 806 718 ; +C 90 ; WX 611 ; N Z ; B 25 0 737 718 ; +C 91 ; WX 333 ; N bracketleft ; B 21 -196 462 722 ; +C 92 ; WX 278 ; N backslash ; B 124 -19 307 737 ; +C 93 ; WX 333 ; N bracketright ; B -18 -196 423 722 ; +C 94 ; WX 584 ; N asciicircum ; B 131 323 591 698 ; +C 95 ; WX 556 ; N underscore ; B -27 -125 540 -75 ; +C 145 ; WX 278 ; N quoteleft ; B 165 454 361 727 ; +C 97 ; WX 556 ; N a ; B 55 -14 583 546 ; +C 98 ; WX 611 ; N b ; B 61 -14 645 718 ; +C 99 ; WX 556 ; N c ; B 79 -14 599 546 ; +C 100 ; WX 611 ; N d ; B 82 -14 704 718 ; +C 101 ; WX 556 ; N e ; B 70 -14 593 546 ; +C 102 ; WX 333 ; N f ; B 87 0 469 727 ; L i fi ; L l fl ; +C 103 ; WX 611 ; N g ; B 38 -217 666 546 ; +C 104 ; WX 611 ; N h ; B 65 0 629 718 ; +C 105 ; WX 278 ; N i ; B 69 0 363 725 ; +C 106 ; WX 278 ; N j ; B -42 -214 363 725 ; +C 107 ; WX 556 ; N k ; B 69 0 670 718 ; +C 108 ; WX 278 ; N l ; B 69 0 362 718 ; +C 109 ; WX 889 ; N m ; B 64 0 909 546 ; +C 110 ; WX 611 ; N n ; B 65 0 629 546 ; +C 111 ; WX 611 ; N o ; B 82 -14 643 546 ; +C 112 ; WX 611 ; N p ; B 18 -207 645 546 ; +C 113 ; WX 611 ; N q ; B 80 -207 665 546 ; +C 114 ; WX 389 ; N r ; B 64 0 489 546 ; +C 115 ; WX 556 ; N s ; B 63 -14 584 546 ; +C 116 ; WX 333 ; N t ; B 100 -6 422 676 ; +C 117 ; WX 611 ; N u ; B 98 -14 658 532 ; +C 118 ; WX 556 ; N v ; B 126 0 656 532 ; +C 119 ; WX 778 ; N w ; B 123 0 882 532 ; +C 120 ; WX 556 ; N x ; B 15 0 648 532 ; +C 121 ; WX 556 ; N y ; B 42 -214 652 532 ; +C 122 ; WX 500 ; N z ; B 20 0 583 532 ; +C 123 ; WX 389 ; N braceleft ; B 94 -196 518 722 ; +C 124 ; WX 280 ; N bar ; B 36 -225 361 775 ; +C 125 ; WX 389 ; N braceright ; B -18 -196 407 722 ; +C 126 ; WX 584 ; N asciitilde ; B 115 163 577 343 ; +C 161 ; WX 333 ; N exclamdown ; B 50 -186 353 532 ; +C 162 ; WX 556 ; N cent ; B 79 -118 599 628 ; +C 163 ; WX 556 ; N sterling ; B 50 -16 635 718 ; +C -1 ; WX 167 ; N fraction ; B -174 -19 487 710 ; +C 165 ; WX 556 ; N yen ; B 60 0 713 698 ; +C 131 ; WX 556 ; N florin ; B -50 -210 669 737 ; +C 167 ; WX 556 ; N section ; B 61 -184 598 727 ; +C 164 ; WX 556 ; N currency ; B 27 76 680 636 ; +C 39 ; WX 238 ; N quotesingle ; B 165 447 321 718 ; +C 147 ; WX 500 ; N quotedblleft ; B 160 454 588 727 ; +C 171 ; WX 556 ; N guillemotleft ; B 135 76 571 484 ; +C 139 ; WX 333 ; N guilsinglleft ; B 130 76 353 484 ; +C 155 ; WX 333 ; N guilsinglright ; B 99 76 322 484 ; +C -1 ; WX 611 ; N fi ; B 87 0 696 727 ; +C -1 ; WX 611 ; N fl ; B 87 0 695 727 ; +C 150 ; WX 556 ; N endash ; B 48 227 627 333 ; +C 134 ; WX 556 ; N dagger ; B 118 -171 626 718 ; +C 135 ; WX 556 ; N daggerdbl ; B 46 -171 628 718 ; +C 183 ; WX 278 ; N periodcentered ; B 110 172 276 334 ; +C 182 ; WX 556 ; N paragraph ; B 98 -191 688 700 ; +C 149 ; WX 350 ; N bullet ; B 83 194 420 524 ; +C 130 ; WX 278 ; N quotesinglbase ; B 41 -146 236 127 ; +C 132 ; WX 500 ; N quotedblbase ; B 36 -146 463 127 ; +C 148 ; WX 500 ; N quotedblright ; B 162 445 589 718 ; +C 187 ; WX 556 ; N guillemotright ; B 104 76 540 484 ; +C 133 ; WX 1000 ; N ellipsis ; B 92 0 939 146 ; +C 137 ; WX 1000 ; N perthousand ; B 76 -19 1038 710 ; +C 191 ; WX 611 ; N questiondown ; B 53 -195 559 532 ; +C 96 ; WX 333 ; N grave ; B 136 604 353 750 ; +C 180 ; WX 333 ; N acute ; B 236 604 515 750 ; +C 136 ; WX 333 ; N circumflex ; B 118 604 471 750 ; +C 152 ; WX 333 ; N tilde ; B 113 610 507 737 ; +C 175 ; WX 333 ; N macron ; B 122 604 483 678 ; +C -1 ; WX 333 ; N breve ; B 156 604 494 750 ; +C -1 ; WX 333 ; N dotaccent ; B 235 614 385 729 ; +C 168 ; WX 333 ; N dieresis ; B 137 614 482 729 ; +C -1 ; WX 333 ; N ring ; B 200 568 420 776 ; +C 184 ; WX 333 ; N cedilla ; B -37 -228 220 0 ; +C -1 ; WX 333 ; N hungarumlaut ; B 137 604 645 750 ; +C -1 ; WX 333 ; N ogonek ; B 41 -228 264 0 ; +C -1 ; WX 333 ; N caron ; B 149 604 502 750 ; +C 151 ; WX 1000 ; N emdash ; B 48 227 1071 333 ; +C 198 ; WX 1000 ; N AE ; B 5 0 1100 718 ; +C 170 ; WX 370 ; N ordfeminine ; B 125 401 465 737 ; +C -1 ; WX 611 ; N Lslash ; B 34 0 611 718 ; +C 216 ; WX 778 ; N Oslash ; B 35 -27 894 745 ; +C 140 ; WX 1000 ; N OE ; B 99 -19 1114 737 ; +C 186 ; WX 365 ; N ordmasculine ; B 123 401 485 737 ; +C 230 ; WX 889 ; N ae ; B 56 -14 923 546 ; +C -1 ; WX 278 ; N dotlessi ; B 69 0 322 532 ; +C -1 ; WX 278 ; N lslash ; B 40 0 407 718 ; +C 248 ; WX 611 ; N oslash ; B 22 -29 701 560 ; +C 156 ; WX 944 ; N oe ; B 82 -14 977 546 ; +C 223 ; WX 611 ; N germandbls ; B 69 -14 657 731 ; +C 207 ; WX 278 ; N Idieresis ; B 64 0 494 915 ; +C 233 ; WX 556 ; N eacute ; B 70 -14 627 750 ; +C -1 ; WX 556 ; N abreve ; B 55 -14 606 750 ; +C -1 ; WX 611 ; N uhungarumlaut ; B 98 -14 784 750 ; +C -1 ; WX 556 ; N ecaron ; B 70 -14 614 750 ; +C 159 ; WX 667 ; N Ydieresis ; B 168 0 806 915 ; +C 247 ; WX 584 ; N divide ; B 82 -42 610 548 ; +C 221 ; WX 667 ; N Yacute ; B 168 0 806 936 ; +C 194 ; WX 722 ; N Acircumflex ; B 20 0 706 936 ; +C 225 ; WX 556 ; N aacute ; B 55 -14 627 750 ; +C 219 ; WX 722 ; N Ucircumflex ; B 116 -19 804 936 ; +C 253 ; WX 556 ; N yacute ; B 42 -214 652 750 ; +C -1 ; WX 556 ; N scommaaccent ; B 63 -228 584 546 ; +C 234 ; WX 556 ; N ecircumflex ; B 70 -14 593 750 ; +C -1 ; WX 722 ; N Uring ; B 116 -19 804 962 ; +C 220 ; WX 722 ; N Udieresis ; B 116 -19 804 915 ; +C -1 ; WX 556 ; N aogonek ; B 55 -224 583 546 ; +C 218 ; WX 722 ; N Uacute ; B 116 -19 804 936 ; +C -1 ; WX 611 ; N uogonek ; B 98 -228 658 532 ; +C 203 ; WX 667 ; N Edieresis ; B 76 0 757 915 ; +C -1 ; WX 722 ; N Dcroat ; B 62 0 777 718 ; +C -1 ; WX 250 ; N commaaccent ; B 16 -228 188 -50 ; +C 169 ; WX 737 ; N copyright ; B 56 -19 835 737 ; +C -1 ; WX 667 ; N Emacron ; B 76 0 757 864 ; +C -1 ; WX 556 ; N ccaron ; B 79 -14 614 750 ; +C 229 ; WX 556 ; N aring ; B 55 -14 583 776 ; +C -1 ; WX 722 ; N Ncommaaccent ; B 69 -228 807 718 ; +C -1 ; WX 278 ; N lacute ; B 69 0 528 936 ; +C 224 ; WX 556 ; N agrave ; B 55 -14 583 750 ; +C -1 ; WX 611 ; N Tcommaaccent ; B 140 -228 751 718 ; +C -1 ; WX 722 ; N Cacute ; B 107 -19 789 936 ; +C 227 ; WX 556 ; N atilde ; B 55 -14 619 737 ; +C -1 ; WX 667 ; N Edotaccent ; B 76 0 757 915 ; +C 154 ; WX 556 ; N scaron ; B 63 -14 614 750 ; +C -1 ; WX 556 ; N scedilla ; B 63 -228 584 546 ; +C 237 ; WX 278 ; N iacute ; B 69 0 488 750 ; +C -1 ; WX 494 ; N lozenge ; B 90 0 564 745 ; +C -1 ; WX 722 ; N Rcaron ; B 76 0 778 936 ; +C -1 ; WX 778 ; N Gcommaaccent ; B 108 -228 817 737 ; +C 251 ; WX 611 ; N ucircumflex ; B 98 -14 658 750 ; +C 226 ; WX 556 ; N acircumflex ; B 55 -14 583 750 ; +C -1 ; WX 722 ; N Amacron ; B 20 0 718 864 ; +C -1 ; WX 389 ; N rcaron ; B 64 0 530 750 ; +C 231 ; WX 556 ; N ccedilla ; B 79 -228 599 546 ; +C -1 ; WX 611 ; N Zdotaccent ; B 25 0 737 915 ; +C 222 ; WX 667 ; N Thorn ; B 76 0 716 718 ; +C -1 ; WX 778 ; N Omacron ; B 107 -19 823 864 ; +C -1 ; WX 722 ; N Racute ; B 76 0 778 936 ; +C -1 ; WX 667 ; N Sacute ; B 81 -19 722 936 ; +C -1 ; WX 743 ; N dcaron ; B 82 -14 903 718 ; +C -1 ; WX 722 ; N Umacron ; B 116 -19 804 864 ; +C -1 ; WX 611 ; N uring ; B 98 -14 658 776 ; +C 179 ; WX 333 ; N threesuperior ; B 91 271 441 710 ; +C 210 ; WX 778 ; N Ograve ; B 107 -19 823 936 ; +C 192 ; WX 722 ; N Agrave ; B 20 0 702 936 ; +C -1 ; WX 722 ; N Abreve ; B 20 0 729 936 ; +C 215 ; WX 584 ; N multiply ; B 57 1 635 505 ; +C 250 ; WX 611 ; N uacute ; B 98 -14 658 750 ; +C -1 ; WX 611 ; N Tcaron ; B 140 0 751 936 ; +C -1 ; WX 494 ; N partialdiff ; B 43 -21 585 750 ; +C 255 ; WX 556 ; N ydieresis ; B 42 -214 652 729 ; +C -1 ; WX 722 ; N Nacute ; B 69 0 807 936 ; +C 238 ; WX 278 ; N icircumflex ; B 69 0 444 750 ; +C 202 ; WX 667 ; N Ecircumflex ; B 76 0 757 936 ; +C 228 ; WX 556 ; N adieresis ; B 55 -14 594 729 ; +C 235 ; WX 556 ; N edieresis ; B 70 -14 594 729 ; +C -1 ; WX 556 ; N cacute ; B 79 -14 627 750 ; +C -1 ; WX 611 ; N nacute ; B 65 0 654 750 ; +C -1 ; WX 611 ; N umacron ; B 98 -14 658 678 ; +C -1 ; WX 722 ; N Ncaron ; B 69 0 807 936 ; +C 205 ; WX 278 ; N Iacute ; B 64 0 528 936 ; +C 177 ; WX 584 ; N plusminus ; B 40 0 625 506 ; +C 166 ; WX 280 ; N brokenbar ; B 52 -150 345 700 ; +C 174 ; WX 737 ; N registered ; B 55 -19 834 737 ; +C -1 ; WX 778 ; N Gbreve ; B 108 -19 817 936 ; +C -1 ; WX 278 ; N Idotaccent ; B 64 0 397 915 ; +C -1 ; WX 600 ; N summation ; B 14 -10 670 706 ; +C 200 ; WX 667 ; N Egrave ; B 76 0 757 936 ; +C -1 ; WX 389 ; N racute ; B 64 0 543 750 ; +C -1 ; WX 611 ; N omacron ; B 82 -14 643 678 ; +C -1 ; WX 611 ; N Zacute ; B 25 0 737 936 ; +C 142 ; WX 611 ; N Zcaron ; B 25 0 737 936 ; +C -1 ; WX 549 ; N greaterequal ; B 26 0 629 704 ; +C 208 ; WX 722 ; N Eth ; B 62 0 777 718 ; +C 199 ; WX 722 ; N Ccedilla ; B 107 -228 789 737 ; +C -1 ; WX 278 ; N lcommaaccent ; B 30 -228 362 718 ; +C -1 ; WX 389 ; N tcaron ; B 100 -6 608 878 ; +C -1 ; WX 556 ; N eogonek ; B 70 -228 593 546 ; +C -1 ; WX 722 ; N Uogonek ; B 116 -228 804 718 ; +C 193 ; WX 722 ; N Aacute ; B 20 0 750 936 ; +C 196 ; WX 722 ; N Adieresis ; B 20 0 716 915 ; +C 232 ; WX 556 ; N egrave ; B 70 -14 593 750 ; +C -1 ; WX 500 ; N zacute ; B 20 0 599 750 ; +C -1 ; WX 278 ; N iogonek ; B -14 -224 363 725 ; +C 211 ; WX 778 ; N Oacute ; B 107 -19 823 936 ; +C 243 ; WX 611 ; N oacute ; B 82 -14 654 750 ; +C -1 ; WX 556 ; N amacron ; B 55 -14 595 678 ; +C -1 ; WX 556 ; N sacute ; B 63 -14 627 750 ; +C 239 ; WX 278 ; N idieresis ; B 69 0 455 729 ; +C 212 ; WX 778 ; N Ocircumflex ; B 107 -19 823 936 ; +C 217 ; WX 722 ; N Ugrave ; B 116 -19 804 936 ; +C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ; +C 254 ; WX 611 ; N thorn ; B 18 -208 645 718 ; +C 178 ; WX 333 ; N twosuperior ; B 69 283 449 710 ; +C 214 ; WX 778 ; N Odieresis ; B 107 -19 823 915 ; +C 181 ; WX 611 ; N mu ; B 22 -207 658 532 ; +C 236 ; WX 278 ; N igrave ; B 69 0 326 750 ; +C -1 ; WX 611 ; N ohungarumlaut ; B 82 -14 784 750 ; +C -1 ; WX 667 ; N Eogonek ; B 76 -224 757 718 ; +C -1 ; WX 611 ; N dcroat ; B 82 -14 789 718 ; +C 190 ; WX 834 ; N threequarters ; B 99 -19 839 710 ; +C -1 ; WX 667 ; N Scedilla ; B 81 -228 718 737 ; +C -1 ; WX 400 ; N lcaron ; B 69 0 561 718 ; +C -1 ; WX 722 ; N Kcommaaccent ; B 87 -228 858 718 ; +C -1 ; WX 611 ; N Lacute ; B 76 0 611 936 ; +C 153 ; WX 1000 ; N trademark ; B 179 306 1109 718 ; +C -1 ; WX 556 ; N edotaccent ; B 70 -14 593 729 ; +C 204 ; WX 278 ; N Igrave ; B 64 0 367 936 ; +C -1 ; WX 278 ; N Imacron ; B 64 0 496 864 ; +C -1 ; WX 611 ; N Lcaron ; B 76 0 643 718 ; +C 189 ; WX 834 ; N onehalf ; B 132 -19 858 710 ; +C -1 ; WX 549 ; N lessequal ; B 29 0 676 704 ; +C 244 ; WX 611 ; N ocircumflex ; B 82 -14 643 750 ; +C 241 ; WX 611 ; N ntilde ; B 65 0 646 737 ; +C -1 ; WX 722 ; N Uhungarumlaut ; B 116 -19 880 936 ; +C 201 ; WX 667 ; N Eacute ; B 76 0 757 936 ; +C -1 ; WX 556 ; N emacron ; B 70 -14 595 678 ; +C -1 ; WX 611 ; N gbreve ; B 38 -217 666 750 ; +C 188 ; WX 834 ; N onequarter ; B 132 -19 806 710 ; +C 138 ; WX 667 ; N Scaron ; B 81 -19 718 936 ; +C -1 ; WX 667 ; N Scommaaccent ; B 81 -228 718 737 ; +C -1 ; WX 778 ; N Ohungarumlaut ; B 107 -19 908 936 ; +C 176 ; WX 400 ; N degree ; B 175 426 467 712 ; +C 242 ; WX 611 ; N ograve ; B 82 -14 643 750 ; +C -1 ; WX 722 ; N Ccaron ; B 107 -19 789 936 ; +C 249 ; WX 611 ; N ugrave ; B 98 -14 658 750 ; +C -1 ; WX 549 ; N radical ; B 112 -46 689 850 ; +C -1 ; WX 722 ; N Dcaron ; B 76 0 777 936 ; +C -1 ; WX 389 ; N rcommaaccent ; B 26 -228 489 546 ; +C 209 ; WX 722 ; N Ntilde ; B 69 0 807 923 ; +C 245 ; WX 611 ; N otilde ; B 82 -14 646 737 ; +C -1 ; WX 722 ; N Rcommaaccent ; B 76 -228 778 718 ; +C -1 ; WX 611 ; N Lcommaaccent ; B 76 -228 611 718 ; +C 195 ; WX 722 ; N Atilde ; B 20 0 741 923 ; +C -1 ; WX 722 ; N Aogonek ; B 20 -224 702 718 ; +C 197 ; WX 722 ; N Aring ; B 20 0 702 962 ; +C 213 ; WX 778 ; N Otilde ; B 107 -19 823 923 ; +C -1 ; WX 500 ; N zdotaccent ; B 20 0 583 729 ; +C -1 ; WX 667 ; N Ecaron ; B 76 0 757 936 ; +C -1 ; WX 278 ; N Iogonek ; B -41 -228 367 718 ; +C -1 ; WX 556 ; N kcommaaccent ; B 69 -228 670 718 ; +C -1 ; WX 584 ; N minus ; B 82 197 610 309 ; +C 206 ; WX 278 ; N Icircumflex ; B 64 0 484 936 ; +C -1 ; WX 611 ; N ncaron ; B 65 0 641 750 ; +C -1 ; WX 333 ; N tcommaaccent ; B 58 -228 422 676 ; +C 172 ; WX 584 ; N logicalnot ; B 105 108 633 419 ; +C 246 ; WX 611 ; N odieresis ; B 82 -14 643 729 ; +C 252 ; WX 611 ; N udieresis ; B 98 -14 658 729 ; +C -1 ; WX 549 ; N notequal ; B 32 -49 630 570 ; +C -1 ; WX 611 ; N gcommaaccent ; B 38 -217 666 850 ; +C 240 ; WX 611 ; N eth ; B 82 -14 670 737 ; +C 158 ; WX 500 ; N zcaron ; B 20 0 586 750 ; +C -1 ; WX 611 ; N ncommaaccent ; B 65 -228 629 546 ; +C 185 ; WX 333 ; N onesuperior ; B 148 283 388 710 ; +C -1 ; WX 278 ; N imacron ; B 69 0 429 678 ; +C 128 ; WX 556 ; N Euro ; B 0 0 0 0 ; +EndCharMetrics +StartKernData +StartKernPairs 2481 +KPX A C -40 +KPX A Cacute -40 +KPX A Ccaron -40 +KPX A Ccedilla -40 +KPX A G -50 +KPX A Gbreve -50 +KPX A Gcommaaccent -50 +KPX A O -40 +KPX A Oacute -40 +KPX A Ocircumflex -40 +KPX A Odieresis -40 +KPX A Ograve -40 +KPX A Ohungarumlaut -40 +KPX A Omacron -40 +KPX A Oslash -40 +KPX A Otilde -40 +KPX A Q -40 +KPX A T -90 +KPX A Tcaron -90 +KPX A Tcommaaccent -90 +KPX A U -50 +KPX A Uacute -50 +KPX A Ucircumflex -50 +KPX A Udieresis -50 +KPX A Ugrave -50 +KPX A Uhungarumlaut -50 +KPX A Umacron -50 +KPX A Uogonek -50 +KPX A Uring -50 +KPX A V -80 +KPX A W -60 +KPX A Y -110 +KPX A Yacute -110 +KPX A Ydieresis -110 +KPX A u -30 +KPX A uacute -30 +KPX A ucircumflex -30 +KPX A udieresis -30 +KPX A ugrave -30 +KPX A uhungarumlaut -30 +KPX A umacron -30 +KPX A uogonek -30 +KPX A uring -30 +KPX A v -40 +KPX A w -30 +KPX A y -30 +KPX A yacute -30 +KPX A ydieresis -30 +KPX Aacute C -40 +KPX Aacute Cacute -40 +KPX Aacute Ccaron -40 +KPX Aacute Ccedilla -40 +KPX Aacute G -50 +KPX Aacute Gbreve -50 +KPX Aacute Gcommaaccent -50 +KPX Aacute O -40 +KPX Aacute Oacute -40 +KPX Aacute Ocircumflex -40 +KPX Aacute Odieresis -40 +KPX Aacute Ograve -40 +KPX Aacute Ohungarumlaut -40 +KPX Aacute Omacron -40 +KPX Aacute Oslash -40 +KPX Aacute Otilde -40 +KPX Aacute Q -40 +KPX Aacute T -90 +KPX Aacute Tcaron -90 +KPX Aacute Tcommaaccent -90 +KPX Aacute U -50 +KPX Aacute Uacute -50 +KPX Aacute Ucircumflex -50 +KPX Aacute Udieresis -50 +KPX Aacute Ugrave -50 +KPX Aacute Uhungarumlaut -50 +KPX Aacute Umacron -50 +KPX Aacute Uogonek -50 +KPX Aacute Uring -50 +KPX Aacute V -80 +KPX Aacute W -60 +KPX Aacute Y -110 +KPX Aacute Yacute -110 +KPX Aacute Ydieresis -110 +KPX Aacute u -30 +KPX Aacute uacute -30 +KPX Aacute ucircumflex -30 +KPX Aacute udieresis -30 +KPX Aacute ugrave -30 +KPX Aacute uhungarumlaut -30 +KPX Aacute umacron -30 +KPX Aacute uogonek -30 +KPX Aacute uring -30 +KPX Aacute v -40 +KPX Aacute w -30 +KPX Aacute y -30 +KPX Aacute yacute -30 +KPX Aacute ydieresis -30 +KPX Abreve C -40 +KPX Abreve Cacute -40 +KPX Abreve Ccaron -40 +KPX Abreve Ccedilla -40 +KPX Abreve G -50 +KPX Abreve Gbreve -50 +KPX Abreve Gcommaaccent -50 +KPX Abreve O -40 +KPX Abreve Oacute -40 +KPX Abreve Ocircumflex -40 +KPX Abreve Odieresis -40 +KPX Abreve Ograve -40 +KPX Abreve Ohungarumlaut -40 +KPX Abreve Omacron -40 +KPX Abreve Oslash -40 +KPX Abreve Otilde -40 +KPX Abreve Q -40 +KPX Abreve T -90 +KPX Abreve Tcaron -90 +KPX Abreve Tcommaaccent -90 +KPX Abreve U -50 +KPX Abreve Uacute -50 +KPX Abreve Ucircumflex -50 +KPX Abreve Udieresis -50 +KPX Abreve Ugrave -50 +KPX Abreve Uhungarumlaut -50 +KPX Abreve Umacron -50 +KPX Abreve Uogonek -50 +KPX Abreve Uring -50 +KPX Abreve V -80 +KPX Abreve W -60 +KPX Abreve Y -110 +KPX Abreve Yacute -110 +KPX Abreve Ydieresis -110 +KPX Abreve u -30 +KPX Abreve uacute -30 +KPX Abreve ucircumflex -30 +KPX Abreve udieresis -30 +KPX Abreve ugrave -30 +KPX Abreve uhungarumlaut -30 +KPX Abreve umacron -30 +KPX Abreve uogonek -30 +KPX Abreve uring -30 +KPX Abreve v -40 +KPX Abreve w -30 +KPX Abreve y -30 +KPX Abreve yacute -30 +KPX Abreve ydieresis -30 +KPX Acircumflex C -40 +KPX Acircumflex Cacute -40 +KPX Acircumflex Ccaron -40 +KPX Acircumflex Ccedilla -40 +KPX Acircumflex G -50 +KPX Acircumflex Gbreve -50 +KPX Acircumflex Gcommaaccent -50 +KPX Acircumflex O -40 +KPX Acircumflex Oacute -40 +KPX Acircumflex Ocircumflex -40 +KPX Acircumflex Odieresis -40 +KPX Acircumflex Ograve -40 +KPX Acircumflex Ohungarumlaut -40 +KPX Acircumflex Omacron -40 +KPX Acircumflex Oslash -40 +KPX Acircumflex Otilde -40 +KPX Acircumflex Q -40 +KPX Acircumflex T -90 +KPX Acircumflex Tcaron -90 +KPX Acircumflex Tcommaaccent -90 +KPX Acircumflex U -50 +KPX Acircumflex Uacute -50 +KPX Acircumflex Ucircumflex -50 +KPX Acircumflex Udieresis -50 +KPX Acircumflex Ugrave -50 +KPX Acircumflex Uhungarumlaut -50 +KPX Acircumflex Umacron -50 +KPX Acircumflex Uogonek -50 +KPX Acircumflex Uring -50 +KPX Acircumflex V -80 +KPX Acircumflex W -60 +KPX Acircumflex Y -110 +KPX Acircumflex Yacute -110 +KPX Acircumflex Ydieresis -110 +KPX Acircumflex u -30 +KPX Acircumflex uacute -30 +KPX Acircumflex ucircumflex -30 +KPX Acircumflex udieresis -30 +KPX Acircumflex ugrave -30 +KPX Acircumflex uhungarumlaut -30 +KPX Acircumflex umacron -30 +KPX Acircumflex uogonek -30 +KPX Acircumflex uring -30 +KPX Acircumflex v -40 +KPX Acircumflex w -30 +KPX Acircumflex y -30 +KPX Acircumflex yacute -30 +KPX Acircumflex ydieresis -30 +KPX Adieresis C -40 +KPX Adieresis Cacute -40 +KPX Adieresis Ccaron -40 +KPX Adieresis Ccedilla -40 +KPX Adieresis G -50 +KPX Adieresis Gbreve -50 +KPX Adieresis Gcommaaccent -50 +KPX Adieresis O -40 +KPX Adieresis Oacute -40 +KPX Adieresis Ocircumflex -40 +KPX Adieresis Odieresis -40 +KPX Adieresis Ograve -40 +KPX Adieresis Ohungarumlaut -40 +KPX Adieresis Omacron -40 +KPX Adieresis Oslash -40 +KPX Adieresis Otilde -40 +KPX Adieresis Q -40 +KPX Adieresis T -90 +KPX Adieresis Tcaron -90 +KPX Adieresis Tcommaaccent -90 +KPX Adieresis U -50 +KPX Adieresis Uacute -50 +KPX Adieresis Ucircumflex -50 +KPX Adieresis Udieresis -50 +KPX Adieresis Ugrave -50 +KPX Adieresis Uhungarumlaut -50 +KPX Adieresis Umacron -50 +KPX Adieresis Uogonek -50 +KPX Adieresis Uring -50 +KPX Adieresis V -80 +KPX Adieresis W -60 +KPX Adieresis Y -110 +KPX Adieresis Yacute -110 +KPX Adieresis Ydieresis -110 +KPX Adieresis u -30 +KPX Adieresis uacute -30 +KPX Adieresis ucircumflex -30 +KPX Adieresis udieresis -30 +KPX Adieresis ugrave -30 +KPX Adieresis uhungarumlaut -30 +KPX Adieresis umacron -30 +KPX Adieresis uogonek -30 +KPX Adieresis uring -30 +KPX Adieresis v -40 +KPX Adieresis w -30 +KPX Adieresis y -30 +KPX Adieresis yacute -30 +KPX Adieresis ydieresis -30 +KPX Agrave C -40 +KPX Agrave Cacute -40 +KPX Agrave Ccaron -40 +KPX Agrave Ccedilla -40 +KPX Agrave G -50 +KPX Agrave Gbreve -50 +KPX Agrave Gcommaaccent -50 +KPX Agrave O -40 +KPX Agrave Oacute -40 +KPX Agrave Ocircumflex -40 +KPX Agrave Odieresis -40 +KPX Agrave Ograve -40 +KPX Agrave Ohungarumlaut -40 +KPX Agrave Omacron -40 +KPX Agrave Oslash -40 +KPX Agrave Otilde -40 +KPX Agrave Q -40 +KPX Agrave T -90 +KPX Agrave Tcaron -90 +KPX Agrave Tcommaaccent -90 +KPX Agrave U -50 +KPX Agrave Uacute -50 +KPX Agrave Ucircumflex -50 +KPX Agrave Udieresis -50 +KPX Agrave Ugrave -50 +KPX Agrave Uhungarumlaut -50 +KPX Agrave Umacron -50 +KPX Agrave Uogonek -50 +KPX Agrave Uring -50 +KPX Agrave V -80 +KPX Agrave W -60 +KPX Agrave Y -110 +KPX Agrave Yacute -110 +KPX Agrave Ydieresis -110 +KPX Agrave u -30 +KPX Agrave uacute -30 +KPX Agrave ucircumflex -30 +KPX Agrave udieresis -30 +KPX Agrave ugrave -30 +KPX Agrave uhungarumlaut -30 +KPX Agrave umacron -30 +KPX Agrave uogonek -30 +KPX Agrave uring -30 +KPX Agrave v -40 +KPX Agrave w -30 +KPX Agrave y -30 +KPX Agrave yacute -30 +KPX Agrave ydieresis -30 +KPX Amacron C -40 +KPX Amacron Cacute -40 +KPX Amacron Ccaron -40 +KPX Amacron Ccedilla -40 +KPX Amacron G -50 +KPX Amacron Gbreve -50 +KPX Amacron Gcommaaccent -50 +KPX Amacron O -40 +KPX Amacron Oacute -40 +KPX Amacron Ocircumflex -40 +KPX Amacron Odieresis -40 +KPX Amacron Ograve -40 +KPX Amacron Ohungarumlaut -40 +KPX Amacron Omacron -40 +KPX Amacron Oslash -40 +KPX Amacron Otilde -40 +KPX Amacron Q -40 +KPX Amacron T -90 +KPX Amacron Tcaron -90 +KPX Amacron Tcommaaccent -90 +KPX Amacron U -50 +KPX Amacron Uacute -50 +KPX Amacron Ucircumflex -50 +KPX Amacron Udieresis -50 +KPX Amacron Ugrave -50 +KPX Amacron Uhungarumlaut -50 +KPX Amacron Umacron -50 +KPX Amacron Uogonek -50 +KPX Amacron Uring -50 +KPX Amacron V -80 +KPX Amacron W -60 +KPX Amacron Y -110 +KPX Amacron Yacute -110 +KPX Amacron Ydieresis -110 +KPX Amacron u -30 +KPX Amacron uacute -30 +KPX Amacron ucircumflex -30 +KPX Amacron udieresis -30 +KPX Amacron ugrave -30 +KPX Amacron uhungarumlaut -30 +KPX Amacron umacron -30 +KPX Amacron uogonek -30 +KPX Amacron uring -30 +KPX Amacron v -40 +KPX Amacron w -30 +KPX Amacron y -30 +KPX Amacron yacute -30 +KPX Amacron ydieresis -30 +KPX Aogonek C -40 +KPX Aogonek Cacute -40 +KPX Aogonek Ccaron -40 +KPX Aogonek Ccedilla -40 +KPX Aogonek G -50 +KPX Aogonek Gbreve -50 +KPX Aogonek Gcommaaccent -50 +KPX Aogonek O -40 +KPX Aogonek Oacute -40 +KPX Aogonek Ocircumflex -40 +KPX Aogonek Odieresis -40 +KPX Aogonek Ograve -40 +KPX Aogonek Ohungarumlaut -40 +KPX Aogonek Omacron -40 +KPX Aogonek Oslash -40 +KPX Aogonek Otilde -40 +KPX Aogonek Q -40 +KPX Aogonek T -90 +KPX Aogonek Tcaron -90 +KPX Aogonek Tcommaaccent -90 +KPX Aogonek U -50 +KPX Aogonek Uacute -50 +KPX Aogonek Ucircumflex -50 +KPX Aogonek Udieresis -50 +KPX Aogonek Ugrave -50 +KPX Aogonek Uhungarumlaut -50 +KPX Aogonek Umacron -50 +KPX Aogonek Uogonek -50 +KPX Aogonek Uring -50 +KPX Aogonek V -80 +KPX Aogonek W -60 +KPX Aogonek Y -110 +KPX Aogonek Yacute -110 +KPX Aogonek Ydieresis -110 +KPX Aogonek u -30 +KPX Aogonek uacute -30 +KPX Aogonek ucircumflex -30 +KPX Aogonek udieresis -30 +KPX Aogonek ugrave -30 +KPX Aogonek uhungarumlaut -30 +KPX Aogonek umacron -30 +KPX Aogonek uogonek -30 +KPX Aogonek uring -30 +KPX Aogonek v -40 +KPX Aogonek w -30 +KPX Aogonek y -30 +KPX Aogonek yacute -30 +KPX Aogonek ydieresis -30 +KPX Aring C -40 +KPX Aring Cacute -40 +KPX Aring Ccaron -40 +KPX Aring Ccedilla -40 +KPX Aring G -50 +KPX Aring Gbreve -50 +KPX Aring Gcommaaccent -50 +KPX Aring O -40 +KPX Aring Oacute -40 +KPX Aring Ocircumflex -40 +KPX Aring Odieresis -40 +KPX Aring Ograve -40 +KPX Aring Ohungarumlaut -40 +KPX Aring Omacron -40 +KPX Aring Oslash -40 +KPX Aring Otilde -40 +KPX Aring Q -40 +KPX Aring T -90 +KPX Aring Tcaron -90 +KPX Aring Tcommaaccent -90 +KPX Aring U -50 +KPX Aring Uacute -50 +KPX Aring Ucircumflex -50 +KPX Aring Udieresis -50 +KPX Aring Ugrave -50 +KPX Aring Uhungarumlaut -50 +KPX Aring Umacron -50 +KPX Aring Uogonek -50 +KPX Aring Uring -50 +KPX Aring V -80 +KPX Aring W -60 +KPX Aring Y -110 +KPX Aring Yacute -110 +KPX Aring Ydieresis -110 +KPX Aring u -30 +KPX Aring uacute -30 +KPX Aring ucircumflex -30 +KPX Aring udieresis -30 +KPX Aring ugrave -30 +KPX Aring uhungarumlaut -30 +KPX Aring umacron -30 +KPX Aring uogonek -30 +KPX Aring uring -30 +KPX Aring v -40 +KPX Aring w -30 +KPX Aring y -30 +KPX Aring yacute -30 +KPX Aring ydieresis -30 +KPX Atilde C -40 +KPX Atilde Cacute -40 +KPX Atilde Ccaron -40 +KPX Atilde Ccedilla -40 +KPX Atilde G -50 +KPX Atilde Gbreve -50 +KPX Atilde Gcommaaccent -50 +KPX Atilde O -40 +KPX Atilde Oacute -40 +KPX Atilde Ocircumflex -40 +KPX Atilde Odieresis -40 +KPX Atilde Ograve -40 +KPX Atilde Ohungarumlaut -40 +KPX Atilde Omacron -40 +KPX Atilde Oslash -40 +KPX Atilde Otilde -40 +KPX Atilde Q -40 +KPX Atilde T -90 +KPX Atilde Tcaron -90 +KPX Atilde Tcommaaccent -90 +KPX Atilde U -50 +KPX Atilde Uacute -50 +KPX Atilde Ucircumflex -50 +KPX Atilde Udieresis -50 +KPX Atilde Ugrave -50 +KPX Atilde Uhungarumlaut -50 +KPX Atilde Umacron -50 +KPX Atilde Uogonek -50 +KPX Atilde Uring -50 +KPX Atilde V -80 +KPX Atilde W -60 +KPX Atilde Y -110 +KPX Atilde Yacute -110 +KPX Atilde Ydieresis -110 +KPX Atilde u -30 +KPX Atilde uacute -30 +KPX Atilde ucircumflex -30 +KPX Atilde udieresis -30 +KPX Atilde ugrave -30 +KPX Atilde uhungarumlaut -30 +KPX Atilde umacron -30 +KPX Atilde uogonek -30 +KPX Atilde uring -30 +KPX Atilde v -40 +KPX Atilde w -30 +KPX Atilde y -30 +KPX Atilde yacute -30 +KPX Atilde ydieresis -30 +KPX B A -30 +KPX B Aacute -30 +KPX B Abreve -30 +KPX B Acircumflex -30 +KPX B Adieresis -30 +KPX B Agrave -30 +KPX B Amacron -30 +KPX B Aogonek -30 +KPX B Aring -30 +KPX B Atilde -30 +KPX B U -10 +KPX B Uacute -10 +KPX B Ucircumflex -10 +KPX B Udieresis -10 +KPX B Ugrave -10 +KPX B Uhungarumlaut -10 +KPX B Umacron -10 +KPX B Uogonek -10 +KPX B Uring -10 +KPX D A -40 +KPX D Aacute -40 +KPX D Abreve -40 +KPX D Acircumflex -40 +KPX D Adieresis -40 +KPX D Agrave -40 +KPX D Amacron -40 +KPX D Aogonek -40 +KPX D Aring -40 +KPX D Atilde -40 +KPX D V -40 +KPX D W -40 +KPX D Y -70 +KPX D Yacute -70 +KPX D Ydieresis -70 +KPX D comma -30 +KPX D period -30 +KPX Dcaron A -40 +KPX Dcaron Aacute -40 +KPX Dcaron Abreve -40 +KPX Dcaron Acircumflex -40 +KPX Dcaron Adieresis -40 +KPX Dcaron Agrave -40 +KPX Dcaron Amacron -40 +KPX Dcaron Aogonek -40 +KPX Dcaron Aring -40 +KPX Dcaron Atilde -40 +KPX Dcaron V -40 +KPX Dcaron W -40 +KPX Dcaron Y -70 +KPX Dcaron Yacute -70 +KPX Dcaron Ydieresis -70 +KPX Dcaron comma -30 +KPX Dcaron period -30 +KPX Dcroat A -40 +KPX Dcroat Aacute -40 +KPX Dcroat Abreve -40 +KPX Dcroat Acircumflex -40 +KPX Dcroat Adieresis -40 +KPX Dcroat Agrave -40 +KPX Dcroat Amacron -40 +KPX Dcroat Aogonek -40 +KPX Dcroat Aring -40 +KPX Dcroat Atilde -40 +KPX Dcroat V -40 +KPX Dcroat W -40 +KPX Dcroat Y -70 +KPX Dcroat Yacute -70 +KPX Dcroat Ydieresis -70 +KPX Dcroat comma -30 +KPX Dcroat period -30 +KPX F A -80 +KPX F Aacute -80 +KPX F Abreve -80 +KPX F Acircumflex -80 +KPX F Adieresis -80 +KPX F Agrave -80 +KPX F Amacron -80 +KPX F Aogonek -80 +KPX F Aring -80 +KPX F Atilde -80 +KPX F a -20 +KPX F aacute -20 +KPX F abreve -20 +KPX F acircumflex -20 +KPX F adieresis -20 +KPX F agrave -20 +KPX F amacron -20 +KPX F aogonek -20 +KPX F aring -20 +KPX F atilde -20 +KPX F comma -100 +KPX F period -100 +KPX J A -20 +KPX J Aacute -20 +KPX J Abreve -20 +KPX J Acircumflex -20 +KPX J Adieresis -20 +KPX J Agrave -20 +KPX J Amacron -20 +KPX J Aogonek -20 +KPX J Aring -20 +KPX J Atilde -20 +KPX J comma -20 +KPX J period -20 +KPX J u -20 +KPX J uacute -20 +KPX J ucircumflex -20 +KPX J udieresis -20 +KPX J ugrave -20 +KPX J uhungarumlaut -20 +KPX J umacron -20 +KPX J uogonek -20 +KPX J uring -20 +KPX K O -30 +KPX K Oacute -30 +KPX K Ocircumflex -30 +KPX K Odieresis -30 +KPX K Ograve -30 +KPX K Ohungarumlaut -30 +KPX K Omacron -30 +KPX K Oslash -30 +KPX K Otilde -30 +KPX K e -15 +KPX K eacute -15 +KPX K ecaron -15 +KPX K ecircumflex -15 +KPX K edieresis -15 +KPX K edotaccent -15 +KPX K egrave -15 +KPX K emacron -15 +KPX K eogonek -15 +KPX K o -35 +KPX K oacute -35 +KPX K ocircumflex -35 +KPX K odieresis -35 +KPX K ograve -35 +KPX K ohungarumlaut -35 +KPX K omacron -35 +KPX K oslash -35 +KPX K otilde -35 +KPX K u -30 +KPX K uacute -30 +KPX K ucircumflex -30 +KPX K udieresis -30 +KPX K ugrave -30 +KPX K uhungarumlaut -30 +KPX K umacron -30 +KPX K uogonek -30 +KPX K uring -30 +KPX K y -40 +KPX K yacute -40 +KPX K ydieresis -40 +KPX Kcommaaccent O -30 +KPX Kcommaaccent Oacute -30 +KPX Kcommaaccent Ocircumflex -30 +KPX Kcommaaccent Odieresis -30 +KPX Kcommaaccent Ograve -30 +KPX Kcommaaccent Ohungarumlaut -30 +KPX Kcommaaccent Omacron -30 +KPX Kcommaaccent Oslash -30 +KPX Kcommaaccent Otilde -30 +KPX Kcommaaccent e -15 +KPX Kcommaaccent eacute -15 +KPX Kcommaaccent ecaron -15 +KPX Kcommaaccent ecircumflex -15 +KPX Kcommaaccent edieresis -15 +KPX Kcommaaccent edotaccent -15 +KPX Kcommaaccent egrave -15 +KPX Kcommaaccent emacron -15 +KPX Kcommaaccent eogonek -15 +KPX Kcommaaccent o -35 +KPX Kcommaaccent oacute -35 +KPX Kcommaaccent ocircumflex -35 +KPX Kcommaaccent odieresis -35 +KPX Kcommaaccent ograve -35 +KPX Kcommaaccent ohungarumlaut -35 +KPX Kcommaaccent omacron -35 +KPX Kcommaaccent oslash -35 +KPX Kcommaaccent otilde -35 +KPX Kcommaaccent u -30 +KPX Kcommaaccent uacute -30 +KPX Kcommaaccent ucircumflex -30 +KPX Kcommaaccent udieresis -30 +KPX Kcommaaccent ugrave -30 +KPX Kcommaaccent uhungarumlaut -30 +KPX Kcommaaccent umacron -30 +KPX Kcommaaccent uogonek -30 +KPX Kcommaaccent uring -30 +KPX Kcommaaccent y -40 +KPX Kcommaaccent yacute -40 +KPX Kcommaaccent ydieresis -40 +KPX L T -90 +KPX L Tcaron -90 +KPX L Tcommaaccent -90 +KPX L V -110 +KPX L W -80 +KPX L Y -120 +KPX L Yacute -120 +KPX L Ydieresis -120 +KPX L quotedblright -140 +KPX L quoteright -140 +KPX L y -30 +KPX L yacute -30 +KPX L ydieresis -30 +KPX Lacute T -90 +KPX Lacute Tcaron -90 +KPX Lacute Tcommaaccent -90 +KPX Lacute V -110 +KPX Lacute W -80 +KPX Lacute Y -120 +KPX Lacute Yacute -120 +KPX Lacute Ydieresis -120 +KPX Lacute quotedblright -140 +KPX Lacute quoteright -140 +KPX Lacute y -30 +KPX Lacute yacute -30 +KPX Lacute ydieresis -30 +KPX Lcommaaccent T -90 +KPX Lcommaaccent Tcaron -90 +KPX Lcommaaccent Tcommaaccent -90 +KPX Lcommaaccent V -110 +KPX Lcommaaccent W -80 +KPX Lcommaaccent Y -120 +KPX Lcommaaccent Yacute -120 +KPX Lcommaaccent Ydieresis -120 +KPX Lcommaaccent quotedblright -140 +KPX Lcommaaccent quoteright -140 +KPX Lcommaaccent y -30 +KPX Lcommaaccent yacute -30 +KPX Lcommaaccent ydieresis -30 +KPX Lslash T -90 +KPX Lslash Tcaron -90 +KPX Lslash Tcommaaccent -90 +KPX Lslash V -110 +KPX Lslash W -80 +KPX Lslash Y -120 +KPX Lslash Yacute -120 +KPX Lslash Ydieresis -120 +KPX Lslash quotedblright -140 +KPX Lslash quoteright -140 +KPX Lslash y -30 +KPX Lslash yacute -30 +KPX Lslash ydieresis -30 +KPX O A -50 +KPX O Aacute -50 +KPX O Abreve -50 +KPX O Acircumflex -50 +KPX O Adieresis -50 +KPX O Agrave -50 +KPX O Amacron -50 +KPX O Aogonek -50 +KPX O Aring -50 +KPX O Atilde -50 +KPX O T -40 +KPX O Tcaron -40 +KPX O Tcommaaccent -40 +KPX O V -50 +KPX O W -50 +KPX O X -50 +KPX O Y -70 +KPX O Yacute -70 +KPX O Ydieresis -70 +KPX O comma -40 +KPX O period -40 +KPX Oacute A -50 +KPX Oacute Aacute -50 +KPX Oacute Abreve -50 +KPX Oacute Acircumflex -50 +KPX Oacute Adieresis -50 +KPX Oacute Agrave -50 +KPX Oacute Amacron -50 +KPX Oacute Aogonek -50 +KPX Oacute Aring -50 +KPX Oacute Atilde -50 +KPX Oacute T -40 +KPX Oacute Tcaron -40 +KPX Oacute Tcommaaccent -40 +KPX Oacute V -50 +KPX Oacute W -50 +KPX Oacute X -50 +KPX Oacute Y -70 +KPX Oacute Yacute -70 +KPX Oacute Ydieresis -70 +KPX Oacute comma -40 +KPX Oacute period -40 +KPX Ocircumflex A -50 +KPX Ocircumflex Aacute -50 +KPX Ocircumflex Abreve -50 +KPX Ocircumflex Acircumflex -50 +KPX Ocircumflex Adieresis -50 +KPX Ocircumflex Agrave -50 +KPX Ocircumflex Amacron -50 +KPX Ocircumflex Aogonek -50 +KPX Ocircumflex Aring -50 +KPX Ocircumflex Atilde -50 +KPX Ocircumflex T -40 +KPX Ocircumflex Tcaron -40 +KPX Ocircumflex Tcommaaccent -40 +KPX Ocircumflex V -50 +KPX Ocircumflex W -50 +KPX Ocircumflex X -50 +KPX Ocircumflex Y -70 +KPX Ocircumflex Yacute -70 +KPX Ocircumflex Ydieresis -70 +KPX Ocircumflex comma -40 +KPX Ocircumflex period -40 +KPX Odieresis A -50 +KPX Odieresis Aacute -50 +KPX Odieresis Abreve -50 +KPX Odieresis Acircumflex -50 +KPX Odieresis Adieresis -50 +KPX Odieresis Agrave -50 +KPX Odieresis Amacron -50 +KPX Odieresis Aogonek -50 +KPX Odieresis Aring -50 +KPX Odieresis Atilde -50 +KPX Odieresis T -40 +KPX Odieresis Tcaron -40 +KPX Odieresis Tcommaaccent -40 +KPX Odieresis V -50 +KPX Odieresis W -50 +KPX Odieresis X -50 +KPX Odieresis Y -70 +KPX Odieresis Yacute -70 +KPX Odieresis Ydieresis -70 +KPX Odieresis comma -40 +KPX Odieresis period -40 +KPX Ograve A -50 +KPX Ograve Aacute -50 +KPX Ograve Abreve -50 +KPX Ograve Acircumflex -50 +KPX Ograve Adieresis -50 +KPX Ograve Agrave -50 +KPX Ograve Amacron -50 +KPX Ograve Aogonek -50 +KPX Ograve Aring -50 +KPX Ograve Atilde -50 +KPX Ograve T -40 +KPX Ograve Tcaron -40 +KPX Ograve Tcommaaccent -40 +KPX Ograve V -50 +KPX Ograve W -50 +KPX Ograve X -50 +KPX Ograve Y -70 +KPX Ograve Yacute -70 +KPX Ograve Ydieresis -70 +KPX Ograve comma -40 +KPX Ograve period -40 +KPX Ohungarumlaut A -50 +KPX Ohungarumlaut Aacute -50 +KPX Ohungarumlaut Abreve -50 +KPX Ohungarumlaut Acircumflex -50 +KPX Ohungarumlaut Adieresis -50 +KPX Ohungarumlaut Agrave -50 +KPX Ohungarumlaut Amacron -50 +KPX Ohungarumlaut Aogonek -50 +KPX Ohungarumlaut Aring -50 +KPX Ohungarumlaut Atilde -50 +KPX Ohungarumlaut T -40 +KPX Ohungarumlaut Tcaron -40 +KPX Ohungarumlaut Tcommaaccent -40 +KPX Ohungarumlaut V -50 +KPX Ohungarumlaut W -50 +KPX Ohungarumlaut X -50 +KPX Ohungarumlaut Y -70 +KPX Ohungarumlaut Yacute -70 +KPX Ohungarumlaut Ydieresis -70 +KPX Ohungarumlaut comma -40 +KPX Ohungarumlaut period -40 +KPX Omacron A -50 +KPX Omacron Aacute -50 +KPX Omacron Abreve -50 +KPX Omacron Acircumflex -50 +KPX Omacron Adieresis -50 +KPX Omacron Agrave -50 +KPX Omacron Amacron -50 +KPX Omacron Aogonek -50 +KPX Omacron Aring -50 +KPX Omacron Atilde -50 +KPX Omacron T -40 +KPX Omacron Tcaron -40 +KPX Omacron Tcommaaccent -40 +KPX Omacron V -50 +KPX Omacron W -50 +KPX Omacron X -50 +KPX Omacron Y -70 +KPX Omacron Yacute -70 +KPX Omacron Ydieresis -70 +KPX Omacron comma -40 +KPX Omacron period -40 +KPX Oslash A -50 +KPX Oslash Aacute -50 +KPX Oslash Abreve -50 +KPX Oslash Acircumflex -50 +KPX Oslash Adieresis -50 +KPX Oslash Agrave -50 +KPX Oslash Amacron -50 +KPX Oslash Aogonek -50 +KPX Oslash Aring -50 +KPX Oslash Atilde -50 +KPX Oslash T -40 +KPX Oslash Tcaron -40 +KPX Oslash Tcommaaccent -40 +KPX Oslash V -50 +KPX Oslash W -50 +KPX Oslash X -50 +KPX Oslash Y -70 +KPX Oslash Yacute -70 +KPX Oslash Ydieresis -70 +KPX Oslash comma -40 +KPX Oslash period -40 +KPX Otilde A -50 +KPX Otilde Aacute -50 +KPX Otilde Abreve -50 +KPX Otilde Acircumflex -50 +KPX Otilde Adieresis -50 +KPX Otilde Agrave -50 +KPX Otilde Amacron -50 +KPX Otilde Aogonek -50 +KPX Otilde Aring -50 +KPX Otilde Atilde -50 +KPX Otilde T -40 +KPX Otilde Tcaron -40 +KPX Otilde Tcommaaccent -40 +KPX Otilde V -50 +KPX Otilde W -50 +KPX Otilde X -50 +KPX Otilde Y -70 +KPX Otilde Yacute -70 +KPX Otilde Ydieresis -70 +KPX Otilde comma -40 +KPX Otilde period -40 +KPX P A -100 +KPX P Aacute -100 +KPX P Abreve -100 +KPX P Acircumflex -100 +KPX P Adieresis -100 +KPX P Agrave -100 +KPX P Amacron -100 +KPX P Aogonek -100 +KPX P Aring -100 +KPX P Atilde -100 +KPX P a -30 +KPX P aacute -30 +KPX P abreve -30 +KPX P acircumflex -30 +KPX P adieresis -30 +KPX P agrave -30 +KPX P amacron -30 +KPX P aogonek -30 +KPX P aring -30 +KPX P atilde -30 +KPX P comma -120 +KPX P e -30 +KPX P eacute -30 +KPX P ecaron -30 +KPX P ecircumflex -30 +KPX P edieresis -30 +KPX P edotaccent -30 +KPX P egrave -30 +KPX P emacron -30 +KPX P eogonek -30 +KPX P o -40 +KPX P oacute -40 +KPX P ocircumflex -40 +KPX P odieresis -40 +KPX P ograve -40 +KPX P ohungarumlaut -40 +KPX P omacron -40 +KPX P oslash -40 +KPX P otilde -40 +KPX P period -120 +KPX Q U -10 +KPX Q Uacute -10 +KPX Q Ucircumflex -10 +KPX Q Udieresis -10 +KPX Q Ugrave -10 +KPX Q Uhungarumlaut -10 +KPX Q Umacron -10 +KPX Q Uogonek -10 +KPX Q Uring -10 +KPX Q comma 20 +KPX Q period 20 +KPX R O -20 +KPX R Oacute -20 +KPX R Ocircumflex -20 +KPX R Odieresis -20 +KPX R Ograve -20 +KPX R Ohungarumlaut -20 +KPX R Omacron -20 +KPX R Oslash -20 +KPX R Otilde -20 +KPX R T -20 +KPX R Tcaron -20 +KPX R Tcommaaccent -20 +KPX R U -20 +KPX R Uacute -20 +KPX R Ucircumflex -20 +KPX R Udieresis -20 +KPX R Ugrave -20 +KPX R Uhungarumlaut -20 +KPX R Umacron -20 +KPX R Uogonek -20 +KPX R Uring -20 +KPX R V -50 +KPX R W -40 +KPX R Y -50 +KPX R Yacute -50 +KPX R Ydieresis -50 +KPX Racute O -20 +KPX Racute Oacute -20 +KPX Racute Ocircumflex -20 +KPX Racute Odieresis -20 +KPX Racute Ograve -20 +KPX Racute Ohungarumlaut -20 +KPX Racute Omacron -20 +KPX Racute Oslash -20 +KPX Racute Otilde -20 +KPX Racute T -20 +KPX Racute Tcaron -20 +KPX Racute Tcommaaccent -20 +KPX Racute U -20 +KPX Racute Uacute -20 +KPX Racute Ucircumflex -20 +KPX Racute Udieresis -20 +KPX Racute Ugrave -20 +KPX Racute Uhungarumlaut -20 +KPX Racute Umacron -20 +KPX Racute Uogonek -20 +KPX Racute Uring -20 +KPX Racute V -50 +KPX Racute W -40 +KPX Racute Y -50 +KPX Racute Yacute -50 +KPX Racute Ydieresis -50 +KPX Rcaron O -20 +KPX Rcaron Oacute -20 +KPX Rcaron Ocircumflex -20 +KPX Rcaron Odieresis -20 +KPX Rcaron Ograve -20 +KPX Rcaron Ohungarumlaut -20 +KPX Rcaron Omacron -20 +KPX Rcaron Oslash -20 +KPX Rcaron Otilde -20 +KPX Rcaron T -20 +KPX Rcaron Tcaron -20 +KPX Rcaron Tcommaaccent -20 +KPX Rcaron U -20 +KPX Rcaron Uacute -20 +KPX Rcaron Ucircumflex -20 +KPX Rcaron Udieresis -20 +KPX Rcaron Ugrave -20 +KPX Rcaron Uhungarumlaut -20 +KPX Rcaron Umacron -20 +KPX Rcaron Uogonek -20 +KPX Rcaron Uring -20 +KPX Rcaron V -50 +KPX Rcaron W -40 +KPX Rcaron Y -50 +KPX Rcaron Yacute -50 +KPX Rcaron Ydieresis -50 +KPX Rcommaaccent O -20 +KPX Rcommaaccent Oacute -20 +KPX Rcommaaccent Ocircumflex -20 +KPX Rcommaaccent Odieresis -20 +KPX Rcommaaccent Ograve -20 +KPX Rcommaaccent Ohungarumlaut -20 +KPX Rcommaaccent Omacron -20 +KPX Rcommaaccent Oslash -20 +KPX Rcommaaccent Otilde -20 +KPX Rcommaaccent T -20 +KPX Rcommaaccent Tcaron -20 +KPX Rcommaaccent Tcommaaccent -20 +KPX Rcommaaccent U -20 +KPX Rcommaaccent Uacute -20 +KPX Rcommaaccent Ucircumflex -20 +KPX Rcommaaccent Udieresis -20 +KPX Rcommaaccent Ugrave -20 +KPX Rcommaaccent Uhungarumlaut -20 +KPX Rcommaaccent Umacron -20 +KPX Rcommaaccent Uogonek -20 +KPX Rcommaaccent Uring -20 +KPX Rcommaaccent V -50 +KPX Rcommaaccent W -40 +KPX Rcommaaccent Y -50 +KPX Rcommaaccent Yacute -50 +KPX Rcommaaccent Ydieresis -50 +KPX T A -90 +KPX T Aacute -90 +KPX T Abreve -90 +KPX T Acircumflex -90 +KPX T Adieresis -90 +KPX T Agrave -90 +KPX T Amacron -90 +KPX T Aogonek -90 +KPX T Aring -90 +KPX T Atilde -90 +KPX T O -40 +KPX T Oacute -40 +KPX T Ocircumflex -40 +KPX T Odieresis -40 +KPX T Ograve -40 +KPX T Ohungarumlaut -40 +KPX T Omacron -40 +KPX T Oslash -40 +KPX T Otilde -40 +KPX T a -80 +KPX T aacute -80 +KPX T abreve -80 +KPX T acircumflex -80 +KPX T adieresis -80 +KPX T agrave -80 +KPX T amacron -80 +KPX T aogonek -80 +KPX T aring -80 +KPX T atilde -80 +KPX T colon -40 +KPX T comma -80 +KPX T e -60 +KPX T eacute -60 +KPX T ecaron -60 +KPX T ecircumflex -60 +KPX T edieresis -60 +KPX T edotaccent -60 +KPX T egrave -60 +KPX T emacron -60 +KPX T eogonek -60 +KPX T hyphen -120 +KPX T o -80 +KPX T oacute -80 +KPX T ocircumflex -80 +KPX T odieresis -80 +KPX T ograve -80 +KPX T ohungarumlaut -80 +KPX T omacron -80 +KPX T oslash -80 +KPX T otilde -80 +KPX T period -80 +KPX T r -80 +KPX T racute -80 +KPX T rcommaaccent -80 +KPX T semicolon -40 +KPX T u -90 +KPX T uacute -90 +KPX T ucircumflex -90 +KPX T udieresis -90 +KPX T ugrave -90 +KPX T uhungarumlaut -90 +KPX T umacron -90 +KPX T uogonek -90 +KPX T uring -90 +KPX T w -60 +KPX T y -60 +KPX T yacute -60 +KPX T ydieresis -60 +KPX Tcaron A -90 +KPX Tcaron Aacute -90 +KPX Tcaron Abreve -90 +KPX Tcaron Acircumflex -90 +KPX Tcaron Adieresis -90 +KPX Tcaron Agrave -90 +KPX Tcaron Amacron -90 +KPX Tcaron Aogonek -90 +KPX Tcaron Aring -90 +KPX Tcaron Atilde -90 +KPX Tcaron O -40 +KPX Tcaron Oacute -40 +KPX Tcaron Ocircumflex -40 +KPX Tcaron Odieresis -40 +KPX Tcaron Ograve -40 +KPX Tcaron Ohungarumlaut -40 +KPX Tcaron Omacron -40 +KPX Tcaron Oslash -40 +KPX Tcaron Otilde -40 +KPX Tcaron a -80 +KPX Tcaron aacute -80 +KPX Tcaron abreve -80 +KPX Tcaron acircumflex -80 +KPX Tcaron adieresis -80 +KPX Tcaron agrave -80 +KPX Tcaron amacron -80 +KPX Tcaron aogonek -80 +KPX Tcaron aring -80 +KPX Tcaron atilde -80 +KPX Tcaron colon -40 +KPX Tcaron comma -80 +KPX Tcaron e -60 +KPX Tcaron eacute -60 +KPX Tcaron ecaron -60 +KPX Tcaron ecircumflex -60 +KPX Tcaron edieresis -60 +KPX Tcaron edotaccent -60 +KPX Tcaron egrave -60 +KPX Tcaron emacron -60 +KPX Tcaron eogonek -60 +KPX Tcaron hyphen -120 +KPX Tcaron o -80 +KPX Tcaron oacute -80 +KPX Tcaron ocircumflex -80 +KPX Tcaron odieresis -80 +KPX Tcaron ograve -80 +KPX Tcaron ohungarumlaut -80 +KPX Tcaron omacron -80 +KPX Tcaron oslash -80 +KPX Tcaron otilde -80 +KPX Tcaron period -80 +KPX Tcaron r -80 +KPX Tcaron racute -80 +KPX Tcaron rcommaaccent -80 +KPX Tcaron semicolon -40 +KPX Tcaron u -90 +KPX Tcaron uacute -90 +KPX Tcaron ucircumflex -90 +KPX Tcaron udieresis -90 +KPX Tcaron ugrave -90 +KPX Tcaron uhungarumlaut -90 +KPX Tcaron umacron -90 +KPX Tcaron uogonek -90 +KPX Tcaron uring -90 +KPX Tcaron w -60 +KPX Tcaron y -60 +KPX Tcaron yacute -60 +KPX Tcaron ydieresis -60 +KPX Tcommaaccent A -90 +KPX Tcommaaccent Aacute -90 +KPX Tcommaaccent Abreve -90 +KPX Tcommaaccent Acircumflex -90 +KPX Tcommaaccent Adieresis -90 +KPX Tcommaaccent Agrave -90 +KPX Tcommaaccent Amacron -90 +KPX Tcommaaccent Aogonek -90 +KPX Tcommaaccent Aring -90 +KPX Tcommaaccent Atilde -90 +KPX Tcommaaccent O -40 +KPX Tcommaaccent Oacute -40 +KPX Tcommaaccent Ocircumflex -40 +KPX Tcommaaccent Odieresis -40 +KPX Tcommaaccent Ograve -40 +KPX Tcommaaccent Ohungarumlaut -40 +KPX Tcommaaccent Omacron -40 +KPX Tcommaaccent Oslash -40 +KPX Tcommaaccent Otilde -40 +KPX Tcommaaccent a -80 +KPX Tcommaaccent aacute -80 +KPX Tcommaaccent abreve -80 +KPX Tcommaaccent acircumflex -80 +KPX Tcommaaccent adieresis -80 +KPX Tcommaaccent agrave -80 +KPX Tcommaaccent amacron -80 +KPX Tcommaaccent aogonek -80 +KPX Tcommaaccent aring -80 +KPX Tcommaaccent atilde -80 +KPX Tcommaaccent colon -40 +KPX Tcommaaccent comma -80 +KPX Tcommaaccent e -60 +KPX Tcommaaccent eacute -60 +KPX Tcommaaccent ecaron -60 +KPX Tcommaaccent ecircumflex -60 +KPX Tcommaaccent edieresis -60 +KPX Tcommaaccent edotaccent -60 +KPX Tcommaaccent egrave -60 +KPX Tcommaaccent emacron -60 +KPX Tcommaaccent eogonek -60 +KPX Tcommaaccent hyphen -120 +KPX Tcommaaccent o -80 +KPX Tcommaaccent oacute -80 +KPX Tcommaaccent ocircumflex -80 +KPX Tcommaaccent odieresis -80 +KPX Tcommaaccent ograve -80 +KPX Tcommaaccent ohungarumlaut -80 +KPX Tcommaaccent omacron -80 +KPX Tcommaaccent oslash -80 +KPX Tcommaaccent otilde -80 +KPX Tcommaaccent period -80 +KPX Tcommaaccent r -80 +KPX Tcommaaccent racute -80 +KPX Tcommaaccent rcommaaccent -80 +KPX Tcommaaccent semicolon -40 +KPX Tcommaaccent u -90 +KPX Tcommaaccent uacute -90 +KPX Tcommaaccent ucircumflex -90 +KPX Tcommaaccent udieresis -90 +KPX Tcommaaccent ugrave -90 +KPX Tcommaaccent uhungarumlaut -90 +KPX Tcommaaccent umacron -90 +KPX Tcommaaccent uogonek -90 +KPX Tcommaaccent uring -90 +KPX Tcommaaccent w -60 +KPX Tcommaaccent y -60 +KPX Tcommaaccent yacute -60 +KPX Tcommaaccent ydieresis -60 +KPX U A -50 +KPX U Aacute -50 +KPX U Abreve -50 +KPX U Acircumflex -50 +KPX U Adieresis -50 +KPX U Agrave -50 +KPX U Amacron -50 +KPX U Aogonek -50 +KPX U Aring -50 +KPX U Atilde -50 +KPX U comma -30 +KPX U period -30 +KPX Uacute A -50 +KPX Uacute Aacute -50 +KPX Uacute Abreve -50 +KPX Uacute Acircumflex -50 +KPX Uacute Adieresis -50 +KPX Uacute Agrave -50 +KPX Uacute Amacron -50 +KPX Uacute Aogonek -50 +KPX Uacute Aring -50 +KPX Uacute Atilde -50 +KPX Uacute comma -30 +KPX Uacute period -30 +KPX Ucircumflex A -50 +KPX Ucircumflex Aacute -50 +KPX Ucircumflex Abreve -50 +KPX Ucircumflex Acircumflex -50 +KPX Ucircumflex Adieresis -50 +KPX Ucircumflex Agrave -50 +KPX Ucircumflex Amacron -50 +KPX Ucircumflex Aogonek -50 +KPX Ucircumflex Aring -50 +KPX Ucircumflex Atilde -50 +KPX Ucircumflex comma -30 +KPX Ucircumflex period -30 +KPX Udieresis A -50 +KPX Udieresis Aacute -50 +KPX Udieresis Abreve -50 +KPX Udieresis Acircumflex -50 +KPX Udieresis Adieresis -50 +KPX Udieresis Agrave -50 +KPX Udieresis Amacron -50 +KPX Udieresis Aogonek -50 +KPX Udieresis Aring -50 +KPX Udieresis Atilde -50 +KPX Udieresis comma -30 +KPX Udieresis period -30 +KPX Ugrave A -50 +KPX Ugrave Aacute -50 +KPX Ugrave Abreve -50 +KPX Ugrave Acircumflex -50 +KPX Ugrave Adieresis -50 +KPX Ugrave Agrave -50 +KPX Ugrave Amacron -50 +KPX Ugrave Aogonek -50 +KPX Ugrave Aring -50 +KPX Ugrave Atilde -50 +KPX Ugrave comma -30 +KPX Ugrave period -30 +KPX Uhungarumlaut A -50 +KPX Uhungarumlaut Aacute -50 +KPX Uhungarumlaut Abreve -50 +KPX Uhungarumlaut Acircumflex -50 +KPX Uhungarumlaut Adieresis -50 +KPX Uhungarumlaut Agrave -50 +KPX Uhungarumlaut Amacron -50 +KPX Uhungarumlaut Aogonek -50 +KPX Uhungarumlaut Aring -50 +KPX Uhungarumlaut Atilde -50 +KPX Uhungarumlaut comma -30 +KPX Uhungarumlaut period -30 +KPX Umacron A -50 +KPX Umacron Aacute -50 +KPX Umacron Abreve -50 +KPX Umacron Acircumflex -50 +KPX Umacron Adieresis -50 +KPX Umacron Agrave -50 +KPX Umacron Amacron -50 +KPX Umacron Aogonek -50 +KPX Umacron Aring -50 +KPX Umacron Atilde -50 +KPX Umacron comma -30 +KPX Umacron period -30 +KPX Uogonek A -50 +KPX Uogonek Aacute -50 +KPX Uogonek Abreve -50 +KPX Uogonek Acircumflex -50 +KPX Uogonek Adieresis -50 +KPX Uogonek Agrave -50 +KPX Uogonek Amacron -50 +KPX Uogonek Aogonek -50 +KPX Uogonek Aring -50 +KPX Uogonek Atilde -50 +KPX Uogonek comma -30 +KPX Uogonek period -30 +KPX Uring A -50 +KPX Uring Aacute -50 +KPX Uring Abreve -50 +KPX Uring Acircumflex -50 +KPX Uring Adieresis -50 +KPX Uring Agrave -50 +KPX Uring Amacron -50 +KPX Uring Aogonek -50 +KPX Uring Aring -50 +KPX Uring Atilde -50 +KPX Uring comma -30 +KPX Uring period -30 +KPX V A -80 +KPX V Aacute -80 +KPX V Abreve -80 +KPX V Acircumflex -80 +KPX V Adieresis -80 +KPX V Agrave -80 +KPX V Amacron -80 +KPX V Aogonek -80 +KPX V Aring -80 +KPX V Atilde -80 +KPX V G -50 +KPX V Gbreve -50 +KPX V Gcommaaccent -50 +KPX V O -50 +KPX V Oacute -50 +KPX V Ocircumflex -50 +KPX V Odieresis -50 +KPX V Ograve -50 +KPX V Ohungarumlaut -50 +KPX V Omacron -50 +KPX V Oslash -50 +KPX V Otilde -50 +KPX V a -60 +KPX V aacute -60 +KPX V abreve -60 +KPX V acircumflex -60 +KPX V adieresis -60 +KPX V agrave -60 +KPX V amacron -60 +KPX V aogonek -60 +KPX V aring -60 +KPX V atilde -60 +KPX V colon -40 +KPX V comma -120 +KPX V e -50 +KPX V eacute -50 +KPX V ecaron -50 +KPX V ecircumflex -50 +KPX V edieresis -50 +KPX V edotaccent -50 +KPX V egrave -50 +KPX V emacron -50 +KPX V eogonek -50 +KPX V hyphen -80 +KPX V o -90 +KPX V oacute -90 +KPX V ocircumflex -90 +KPX V odieresis -90 +KPX V ograve -90 +KPX V ohungarumlaut -90 +KPX V omacron -90 +KPX V oslash -90 +KPX V otilde -90 +KPX V period -120 +KPX V semicolon -40 +KPX V u -60 +KPX V uacute -60 +KPX V ucircumflex -60 +KPX V udieresis -60 +KPX V ugrave -60 +KPX V uhungarumlaut -60 +KPX V umacron -60 +KPX V uogonek -60 +KPX V uring -60 +KPX W A -60 +KPX W Aacute -60 +KPX W Abreve -60 +KPX W Acircumflex -60 +KPX W Adieresis -60 +KPX W Agrave -60 +KPX W Amacron -60 +KPX W Aogonek -60 +KPX W Aring -60 +KPX W Atilde -60 +KPX W O -20 +KPX W Oacute -20 +KPX W Ocircumflex -20 +KPX W Odieresis -20 +KPX W Ograve -20 +KPX W Ohungarumlaut -20 +KPX W Omacron -20 +KPX W Oslash -20 +KPX W Otilde -20 +KPX W a -40 +KPX W aacute -40 +KPX W abreve -40 +KPX W acircumflex -40 +KPX W adieresis -40 +KPX W agrave -40 +KPX W amacron -40 +KPX W aogonek -40 +KPX W aring -40 +KPX W atilde -40 +KPX W colon -10 +KPX W comma -80 +KPX W e -35 +KPX W eacute -35 +KPX W ecaron -35 +KPX W ecircumflex -35 +KPX W edieresis -35 +KPX W edotaccent -35 +KPX W egrave -35 +KPX W emacron -35 +KPX W eogonek -35 +KPX W hyphen -40 +KPX W o -60 +KPX W oacute -60 +KPX W ocircumflex -60 +KPX W odieresis -60 +KPX W ograve -60 +KPX W ohungarumlaut -60 +KPX W omacron -60 +KPX W oslash -60 +KPX W otilde -60 +KPX W period -80 +KPX W semicolon -10 +KPX W u -45 +KPX W uacute -45 +KPX W ucircumflex -45 +KPX W udieresis -45 +KPX W ugrave -45 +KPX W uhungarumlaut -45 +KPX W umacron -45 +KPX W uogonek -45 +KPX W uring -45 +KPX W y -20 +KPX W yacute -20 +KPX W ydieresis -20 +KPX Y A -110 +KPX Y Aacute -110 +KPX Y Abreve -110 +KPX Y Acircumflex -110 +KPX Y Adieresis -110 +KPX Y Agrave -110 +KPX Y Amacron -110 +KPX Y Aogonek -110 +KPX Y Aring -110 +KPX Y Atilde -110 +KPX Y O -70 +KPX Y Oacute -70 +KPX Y Ocircumflex -70 +KPX Y Odieresis -70 +KPX Y Ograve -70 +KPX Y Ohungarumlaut -70 +KPX Y Omacron -70 +KPX Y Oslash -70 +KPX Y Otilde -70 +KPX Y a -90 +KPX Y aacute -90 +KPX Y abreve -90 +KPX Y acircumflex -90 +KPX Y adieresis -90 +KPX Y agrave -90 +KPX Y amacron -90 +KPX Y aogonek -90 +KPX Y aring -90 +KPX Y atilde -90 +KPX Y colon -50 +KPX Y comma -100 +KPX Y e -80 +KPX Y eacute -80 +KPX Y ecaron -80 +KPX Y ecircumflex -80 +KPX Y edieresis -80 +KPX Y edotaccent -80 +KPX Y egrave -80 +KPX Y emacron -80 +KPX Y eogonek -80 +KPX Y o -100 +KPX Y oacute -100 +KPX Y ocircumflex -100 +KPX Y odieresis -100 +KPX Y ograve -100 +KPX Y ohungarumlaut -100 +KPX Y omacron -100 +KPX Y oslash -100 +KPX Y otilde -100 +KPX Y period -100 +KPX Y semicolon -50 +KPX Y u -100 +KPX Y uacute -100 +KPX Y ucircumflex -100 +KPX Y udieresis -100 +KPX Y ugrave -100 +KPX Y uhungarumlaut -100 +KPX Y umacron -100 +KPX Y uogonek -100 +KPX Y uring -100 +KPX Yacute A -110 +KPX Yacute Aacute -110 +KPX Yacute Abreve -110 +KPX Yacute Acircumflex -110 +KPX Yacute Adieresis -110 +KPX Yacute Agrave -110 +KPX Yacute Amacron -110 +KPX Yacute Aogonek -110 +KPX Yacute Aring -110 +KPX Yacute Atilde -110 +KPX Yacute O -70 +KPX Yacute Oacute -70 +KPX Yacute Ocircumflex -70 +KPX Yacute Odieresis -70 +KPX Yacute Ograve -70 +KPX Yacute Ohungarumlaut -70 +KPX Yacute Omacron -70 +KPX Yacute Oslash -70 +KPX Yacute Otilde -70 +KPX Yacute a -90 +KPX Yacute aacute -90 +KPX Yacute abreve -90 +KPX Yacute acircumflex -90 +KPX Yacute adieresis -90 +KPX Yacute agrave -90 +KPX Yacute amacron -90 +KPX Yacute aogonek -90 +KPX Yacute aring -90 +KPX Yacute atilde -90 +KPX Yacute colon -50 +KPX Yacute comma -100 +KPX Yacute e -80 +KPX Yacute eacute -80 +KPX Yacute ecaron -80 +KPX Yacute ecircumflex -80 +KPX Yacute edieresis -80 +KPX Yacute edotaccent -80 +KPX Yacute egrave -80 +KPX Yacute emacron -80 +KPX Yacute eogonek -80 +KPX Yacute o -100 +KPX Yacute oacute -100 +KPX Yacute ocircumflex -100 +KPX Yacute odieresis -100 +KPX Yacute ograve -100 +KPX Yacute ohungarumlaut -100 +KPX Yacute omacron -100 +KPX Yacute oslash -100 +KPX Yacute otilde -100 +KPX Yacute period -100 +KPX Yacute semicolon -50 +KPX Yacute u -100 +KPX Yacute uacute -100 +KPX Yacute ucircumflex -100 +KPX Yacute udieresis -100 +KPX Yacute ugrave -100 +KPX Yacute uhungarumlaut -100 +KPX Yacute umacron -100 +KPX Yacute uogonek -100 +KPX Yacute uring -100 +KPX Ydieresis A -110 +KPX Ydieresis Aacute -110 +KPX Ydieresis Abreve -110 +KPX Ydieresis Acircumflex -110 +KPX Ydieresis Adieresis -110 +KPX Ydieresis Agrave -110 +KPX Ydieresis Amacron -110 +KPX Ydieresis Aogonek -110 +KPX Ydieresis Aring -110 +KPX Ydieresis Atilde -110 +KPX Ydieresis O -70 +KPX Ydieresis Oacute -70 +KPX Ydieresis Ocircumflex -70 +KPX Ydieresis Odieresis -70 +KPX Ydieresis Ograve -70 +KPX Ydieresis Ohungarumlaut -70 +KPX Ydieresis Omacron -70 +KPX Ydieresis Oslash -70 +KPX Ydieresis Otilde -70 +KPX Ydieresis a -90 +KPX Ydieresis aacute -90 +KPX Ydieresis abreve -90 +KPX Ydieresis acircumflex -90 +KPX Ydieresis adieresis -90 +KPX Ydieresis agrave -90 +KPX Ydieresis amacron -90 +KPX Ydieresis aogonek -90 +KPX Ydieresis aring -90 +KPX Ydieresis atilde -90 +KPX Ydieresis colon -50 +KPX Ydieresis comma -100 +KPX Ydieresis e -80 +KPX Ydieresis eacute -80 +KPX Ydieresis ecaron -80 +KPX Ydieresis ecircumflex -80 +KPX Ydieresis edieresis -80 +KPX Ydieresis edotaccent -80 +KPX Ydieresis egrave -80 +KPX Ydieresis emacron -80 +KPX Ydieresis eogonek -80 +KPX Ydieresis o -100 +KPX Ydieresis oacute -100 +KPX Ydieresis ocircumflex -100 +KPX Ydieresis odieresis -100 +KPX Ydieresis ograve -100 +KPX Ydieresis ohungarumlaut -100 +KPX Ydieresis omacron -100 +KPX Ydieresis oslash -100 +KPX Ydieresis otilde -100 +KPX Ydieresis period -100 +KPX Ydieresis semicolon -50 +KPX Ydieresis u -100 +KPX Ydieresis uacute -100 +KPX Ydieresis ucircumflex -100 +KPX Ydieresis udieresis -100 +KPX Ydieresis ugrave -100 +KPX Ydieresis uhungarumlaut -100 +KPX Ydieresis umacron -100 +KPX Ydieresis uogonek -100 +KPX Ydieresis uring -100 +KPX a g -10 +KPX a gbreve -10 +KPX a gcommaaccent -10 +KPX a v -15 +KPX a w -15 +KPX a y -20 +KPX a yacute -20 +KPX a ydieresis -20 +KPX aacute g -10 +KPX aacute gbreve -10 +KPX aacute gcommaaccent -10 +KPX aacute v -15 +KPX aacute w -15 +KPX aacute y -20 +KPX aacute yacute -20 +KPX aacute ydieresis -20 +KPX abreve g -10 +KPX abreve gbreve -10 +KPX abreve gcommaaccent -10 +KPX abreve v -15 +KPX abreve w -15 +KPX abreve y -20 +KPX abreve yacute -20 +KPX abreve ydieresis -20 +KPX acircumflex g -10 +KPX acircumflex gbreve -10 +KPX acircumflex gcommaaccent -10 +KPX acircumflex v -15 +KPX acircumflex w -15 +KPX acircumflex y -20 +KPX acircumflex yacute -20 +KPX acircumflex ydieresis -20 +KPX adieresis g -10 +KPX adieresis gbreve -10 +KPX adieresis gcommaaccent -10 +KPX adieresis v -15 +KPX adieresis w -15 +KPX adieresis y -20 +KPX adieresis yacute -20 +KPX adieresis ydieresis -20 +KPX agrave g -10 +KPX agrave gbreve -10 +KPX agrave gcommaaccent -10 +KPX agrave v -15 +KPX agrave w -15 +KPX agrave y -20 +KPX agrave yacute -20 +KPX agrave ydieresis -20 +KPX amacron g -10 +KPX amacron gbreve -10 +KPX amacron gcommaaccent -10 +KPX amacron v -15 +KPX amacron w -15 +KPX amacron y -20 +KPX amacron yacute -20 +KPX amacron ydieresis -20 +KPX aogonek g -10 +KPX aogonek gbreve -10 +KPX aogonek gcommaaccent -10 +KPX aogonek v -15 +KPX aogonek w -15 +KPX aogonek y -20 +KPX aogonek yacute -20 +KPX aogonek ydieresis -20 +KPX aring g -10 +KPX aring gbreve -10 +KPX aring gcommaaccent -10 +KPX aring v -15 +KPX aring w -15 +KPX aring y -20 +KPX aring yacute -20 +KPX aring ydieresis -20 +KPX atilde g -10 +KPX atilde gbreve -10 +KPX atilde gcommaaccent -10 +KPX atilde v -15 +KPX atilde w -15 +KPX atilde y -20 +KPX atilde yacute -20 +KPX atilde ydieresis -20 +KPX b l -10 +KPX b lacute -10 +KPX b lcommaaccent -10 +KPX b lslash -10 +KPX b u -20 +KPX b uacute -20 +KPX b ucircumflex -20 +KPX b udieresis -20 +KPX b ugrave -20 +KPX b uhungarumlaut -20 +KPX b umacron -20 +KPX b uogonek -20 +KPX b uring -20 +KPX b v -20 +KPX b y -20 +KPX b yacute -20 +KPX b ydieresis -20 +KPX c h -10 +KPX c k -20 +KPX c kcommaaccent -20 +KPX c l -20 +KPX c lacute -20 +KPX c lcommaaccent -20 +KPX c lslash -20 +KPX c y -10 +KPX c yacute -10 +KPX c ydieresis -10 +KPX cacute h -10 +KPX cacute k -20 +KPX cacute kcommaaccent -20 +KPX cacute l -20 +KPX cacute lacute -20 +KPX cacute lcommaaccent -20 +KPX cacute lslash -20 +KPX cacute y -10 +KPX cacute yacute -10 +KPX cacute ydieresis -10 +KPX ccaron h -10 +KPX ccaron k -20 +KPX ccaron kcommaaccent -20 +KPX ccaron l -20 +KPX ccaron lacute -20 +KPX ccaron lcommaaccent -20 +KPX ccaron lslash -20 +KPX ccaron y -10 +KPX ccaron yacute -10 +KPX ccaron ydieresis -10 +KPX ccedilla h -10 +KPX ccedilla k -20 +KPX ccedilla kcommaaccent -20 +KPX ccedilla l -20 +KPX ccedilla lacute -20 +KPX ccedilla lcommaaccent -20 +KPX ccedilla lslash -20 +KPX ccedilla y -10 +KPX ccedilla yacute -10 +KPX ccedilla ydieresis -10 +KPX colon space -40 +KPX comma quotedblright -120 +KPX comma quoteright -120 +KPX comma space -40 +KPX d d -10 +KPX d dcroat -10 +KPX d v -15 +KPX d w -15 +KPX d y -15 +KPX d yacute -15 +KPX d ydieresis -15 +KPX dcroat d -10 +KPX dcroat dcroat -10 +KPX dcroat v -15 +KPX dcroat w -15 +KPX dcroat y -15 +KPX dcroat yacute -15 +KPX dcroat ydieresis -15 +KPX e comma 10 +KPX e period 20 +KPX e v -15 +KPX e w -15 +KPX e x -15 +KPX e y -15 +KPX e yacute -15 +KPX e ydieresis -15 +KPX eacute comma 10 +KPX eacute period 20 +KPX eacute v -15 +KPX eacute w -15 +KPX eacute x -15 +KPX eacute y -15 +KPX eacute yacute -15 +KPX eacute ydieresis -15 +KPX ecaron comma 10 +KPX ecaron period 20 +KPX ecaron v -15 +KPX ecaron w -15 +KPX ecaron x -15 +KPX ecaron y -15 +KPX ecaron yacute -15 +KPX ecaron ydieresis -15 +KPX ecircumflex comma 10 +KPX ecircumflex period 20 +KPX ecircumflex v -15 +KPX ecircumflex w -15 +KPX ecircumflex x -15 +KPX ecircumflex y -15 +KPX ecircumflex yacute -15 +KPX ecircumflex ydieresis -15 +KPX edieresis comma 10 +KPX edieresis period 20 +KPX edieresis v -15 +KPX edieresis w -15 +KPX edieresis x -15 +KPX edieresis y -15 +KPX edieresis yacute -15 +KPX edieresis ydieresis -15 +KPX edotaccent comma 10 +KPX edotaccent period 20 +KPX edotaccent v -15 +KPX edotaccent w -15 +KPX edotaccent x -15 +KPX edotaccent y -15 +KPX edotaccent yacute -15 +KPX edotaccent ydieresis -15 +KPX egrave comma 10 +KPX egrave period 20 +KPX egrave v -15 +KPX egrave w -15 +KPX egrave x -15 +KPX egrave y -15 +KPX egrave yacute -15 +KPX egrave ydieresis -15 +KPX emacron comma 10 +KPX emacron period 20 +KPX emacron v -15 +KPX emacron w -15 +KPX emacron x -15 +KPX emacron y -15 +KPX emacron yacute -15 +KPX emacron ydieresis -15 +KPX eogonek comma 10 +KPX eogonek period 20 +KPX eogonek v -15 +KPX eogonek w -15 +KPX eogonek x -15 +KPX eogonek y -15 +KPX eogonek yacute -15 +KPX eogonek ydieresis -15 +KPX f comma -10 +KPX f e -10 +KPX f eacute -10 +KPX f ecaron -10 +KPX f ecircumflex -10 +KPX f edieresis -10 +KPX f edotaccent -10 +KPX f egrave -10 +KPX f emacron -10 +KPX f eogonek -10 +KPX f o -20 +KPX f oacute -20 +KPX f ocircumflex -20 +KPX f odieresis -20 +KPX f ograve -20 +KPX f ohungarumlaut -20 +KPX f omacron -20 +KPX f oslash -20 +KPX f otilde -20 +KPX f period -10 +KPX f quotedblright 30 +KPX f quoteright 30 +KPX g e 10 +KPX g eacute 10 +KPX g ecaron 10 +KPX g ecircumflex 10 +KPX g edieresis 10 +KPX g edotaccent 10 +KPX g egrave 10 +KPX g emacron 10 +KPX g eogonek 10 +KPX g g -10 +KPX g gbreve -10 +KPX g gcommaaccent -10 +KPX gbreve e 10 +KPX gbreve eacute 10 +KPX gbreve ecaron 10 +KPX gbreve ecircumflex 10 +KPX gbreve edieresis 10 +KPX gbreve edotaccent 10 +KPX gbreve egrave 10 +KPX gbreve emacron 10 +KPX gbreve eogonek 10 +KPX gbreve g -10 +KPX gbreve gbreve -10 +KPX gbreve gcommaaccent -10 +KPX gcommaaccent e 10 +KPX gcommaaccent eacute 10 +KPX gcommaaccent ecaron 10 +KPX gcommaaccent ecircumflex 10 +KPX gcommaaccent edieresis 10 +KPX gcommaaccent edotaccent 10 +KPX gcommaaccent egrave 10 +KPX gcommaaccent emacron 10 +KPX gcommaaccent eogonek 10 +KPX gcommaaccent g -10 +KPX gcommaaccent gbreve -10 +KPX gcommaaccent gcommaaccent -10 +KPX h y -20 +KPX h yacute -20 +KPX h ydieresis -20 +KPX k o -15 +KPX k oacute -15 +KPX k ocircumflex -15 +KPX k odieresis -15 +KPX k ograve -15 +KPX k ohungarumlaut -15 +KPX k omacron -15 +KPX k oslash -15 +KPX k otilde -15 +KPX kcommaaccent o -15 +KPX kcommaaccent oacute -15 +KPX kcommaaccent ocircumflex -15 +KPX kcommaaccent odieresis -15 +KPX kcommaaccent ograve -15 +KPX kcommaaccent ohungarumlaut -15 +KPX kcommaaccent omacron -15 +KPX kcommaaccent oslash -15 +KPX kcommaaccent otilde -15 +KPX l w -15 +KPX l y -15 +KPX l yacute -15 +KPX l ydieresis -15 +KPX lacute w -15 +KPX lacute y -15 +KPX lacute yacute -15 +KPX lacute ydieresis -15 +KPX lcommaaccent w -15 +KPX lcommaaccent y -15 +KPX lcommaaccent yacute -15 +KPX lcommaaccent ydieresis -15 +KPX lslash w -15 +KPX lslash y -15 +KPX lslash yacute -15 +KPX lslash ydieresis -15 +KPX m u -20 +KPX m uacute -20 +KPX m ucircumflex -20 +KPX m udieresis -20 +KPX m ugrave -20 +KPX m uhungarumlaut -20 +KPX m umacron -20 +KPX m uogonek -20 +KPX m uring -20 +KPX m y -30 +KPX m yacute -30 +KPX m ydieresis -30 +KPX n u -10 +KPX n uacute -10 +KPX n ucircumflex -10 +KPX n udieresis -10 +KPX n ugrave -10 +KPX n uhungarumlaut -10 +KPX n umacron -10 +KPX n uogonek -10 +KPX n uring -10 +KPX n v -40 +KPX n y -20 +KPX n yacute -20 +KPX n ydieresis -20 +KPX nacute u -10 +KPX nacute uacute -10 +KPX nacute ucircumflex -10 +KPX nacute udieresis -10 +KPX nacute ugrave -10 +KPX nacute uhungarumlaut -10 +KPX nacute umacron -10 +KPX nacute uogonek -10 +KPX nacute uring -10 +KPX nacute v -40 +KPX nacute y -20 +KPX nacute yacute -20 +KPX nacute ydieresis -20 +KPX ncaron u -10 +KPX ncaron uacute -10 +KPX ncaron ucircumflex -10 +KPX ncaron udieresis -10 +KPX ncaron ugrave -10 +KPX ncaron uhungarumlaut -10 +KPX ncaron umacron -10 +KPX ncaron uogonek -10 +KPX ncaron uring -10 +KPX ncaron v -40 +KPX ncaron y -20 +KPX ncaron yacute -20 +KPX ncaron ydieresis -20 +KPX ncommaaccent u -10 +KPX ncommaaccent uacute -10 +KPX ncommaaccent ucircumflex -10 +KPX ncommaaccent udieresis -10 +KPX ncommaaccent ugrave -10 +KPX ncommaaccent uhungarumlaut -10 +KPX ncommaaccent umacron -10 +KPX ncommaaccent uogonek -10 +KPX ncommaaccent uring -10 +KPX ncommaaccent v -40 +KPX ncommaaccent y -20 +KPX ncommaaccent yacute -20 +KPX ncommaaccent ydieresis -20 +KPX ntilde u -10 +KPX ntilde uacute -10 +KPX ntilde ucircumflex -10 +KPX ntilde udieresis -10 +KPX ntilde ugrave -10 +KPX ntilde uhungarumlaut -10 +KPX ntilde umacron -10 +KPX ntilde uogonek -10 +KPX ntilde uring -10 +KPX ntilde v -40 +KPX ntilde y -20 +KPX ntilde yacute -20 +KPX ntilde ydieresis -20 +KPX o v -20 +KPX o w -15 +KPX o x -30 +KPX o y -20 +KPX o yacute -20 +KPX o ydieresis -20 +KPX oacute v -20 +KPX oacute w -15 +KPX oacute x -30 +KPX oacute y -20 +KPX oacute yacute -20 +KPX oacute ydieresis -20 +KPX ocircumflex v -20 +KPX ocircumflex w -15 +KPX ocircumflex x -30 +KPX ocircumflex y -20 +KPX ocircumflex yacute -20 +KPX ocircumflex ydieresis -20 +KPX odieresis v -20 +KPX odieresis w -15 +KPX odieresis x -30 +KPX odieresis y -20 +KPX odieresis yacute -20 +KPX odieresis ydieresis -20 +KPX ograve v -20 +KPX ograve w -15 +KPX ograve x -30 +KPX ograve y -20 +KPX ograve yacute -20 +KPX ograve ydieresis -20 +KPX ohungarumlaut v -20 +KPX ohungarumlaut w -15 +KPX ohungarumlaut x -30 +KPX ohungarumlaut y -20 +KPX ohungarumlaut yacute -20 +KPX ohungarumlaut ydieresis -20 +KPX omacron v -20 +KPX omacron w -15 +KPX omacron x -30 +KPX omacron y -20 +KPX omacron yacute -20 +KPX omacron ydieresis -20 +KPX oslash v -20 +KPX oslash w -15 +KPX oslash x -30 +KPX oslash y -20 +KPX oslash yacute -20 +KPX oslash ydieresis -20 +KPX otilde v -20 +KPX otilde w -15 +KPX otilde x -30 +KPX otilde y -20 +KPX otilde yacute -20 +KPX otilde ydieresis -20 +KPX p y -15 +KPX p yacute -15 +KPX p ydieresis -15 +KPX period quotedblright -120 +KPX period quoteright -120 +KPX period space -40 +KPX quotedblright space -80 +KPX quoteleft quoteleft -46 +KPX quoteright d -80 +KPX quoteright dcroat -80 +KPX quoteright l -20 +KPX quoteright lacute -20 +KPX quoteright lcommaaccent -20 +KPX quoteright lslash -20 +KPX quoteright quoteright -46 +KPX quoteright r -40 +KPX quoteright racute -40 +KPX quoteright rcaron -40 +KPX quoteright rcommaaccent -40 +KPX quoteright s -60 +KPX quoteright sacute -60 +KPX quoteright scaron -60 +KPX quoteright scedilla -60 +KPX quoteright scommaaccent -60 +KPX quoteright space -80 +KPX quoteright v -20 +KPX r c -20 +KPX r cacute -20 +KPX r ccaron -20 +KPX r ccedilla -20 +KPX r comma -60 +KPX r d -20 +KPX r dcroat -20 +KPX r g -15 +KPX r gbreve -15 +KPX r gcommaaccent -15 +KPX r hyphen -20 +KPX r o -20 +KPX r oacute -20 +KPX r ocircumflex -20 +KPX r odieresis -20 +KPX r ograve -20 +KPX r ohungarumlaut -20 +KPX r omacron -20 +KPX r oslash -20 +KPX r otilde -20 +KPX r period -60 +KPX r q -20 +KPX r s -15 +KPX r sacute -15 +KPX r scaron -15 +KPX r scedilla -15 +KPX r scommaaccent -15 +KPX r t 20 +KPX r tcommaaccent 20 +KPX r v 10 +KPX r y 10 +KPX r yacute 10 +KPX r ydieresis 10 +KPX racute c -20 +KPX racute cacute -20 +KPX racute ccaron -20 +KPX racute ccedilla -20 +KPX racute comma -60 +KPX racute d -20 +KPX racute dcroat -20 +KPX racute g -15 +KPX racute gbreve -15 +KPX racute gcommaaccent -15 +KPX racute hyphen -20 +KPX racute o -20 +KPX racute oacute -20 +KPX racute ocircumflex -20 +KPX racute odieresis -20 +KPX racute ograve -20 +KPX racute ohungarumlaut -20 +KPX racute omacron -20 +KPX racute oslash -20 +KPX racute otilde -20 +KPX racute period -60 +KPX racute q -20 +KPX racute s -15 +KPX racute sacute -15 +KPX racute scaron -15 +KPX racute scedilla -15 +KPX racute scommaaccent -15 +KPX racute t 20 +KPX racute tcommaaccent 20 +KPX racute v 10 +KPX racute y 10 +KPX racute yacute 10 +KPX racute ydieresis 10 +KPX rcaron c -20 +KPX rcaron cacute -20 +KPX rcaron ccaron -20 +KPX rcaron ccedilla -20 +KPX rcaron comma -60 +KPX rcaron d -20 +KPX rcaron dcroat -20 +KPX rcaron g -15 +KPX rcaron gbreve -15 +KPX rcaron gcommaaccent -15 +KPX rcaron hyphen -20 +KPX rcaron o -20 +KPX rcaron oacute -20 +KPX rcaron ocircumflex -20 +KPX rcaron odieresis -20 +KPX rcaron ograve -20 +KPX rcaron ohungarumlaut -20 +KPX rcaron omacron -20 +KPX rcaron oslash -20 +KPX rcaron otilde -20 +KPX rcaron period -60 +KPX rcaron q -20 +KPX rcaron s -15 +KPX rcaron sacute -15 +KPX rcaron scaron -15 +KPX rcaron scedilla -15 +KPX rcaron scommaaccent -15 +KPX rcaron t 20 +KPX rcaron tcommaaccent 20 +KPX rcaron v 10 +KPX rcaron y 10 +KPX rcaron yacute 10 +KPX rcaron ydieresis 10 +KPX rcommaaccent c -20 +KPX rcommaaccent cacute -20 +KPX rcommaaccent ccaron -20 +KPX rcommaaccent ccedilla -20 +KPX rcommaaccent comma -60 +KPX rcommaaccent d -20 +KPX rcommaaccent dcroat -20 +KPX rcommaaccent g -15 +KPX rcommaaccent gbreve -15 +KPX rcommaaccent gcommaaccent -15 +KPX rcommaaccent hyphen -20 +KPX rcommaaccent o -20 +KPX rcommaaccent oacute -20 +KPX rcommaaccent ocircumflex -20 +KPX rcommaaccent odieresis -20 +KPX rcommaaccent ograve -20 +KPX rcommaaccent ohungarumlaut -20 +KPX rcommaaccent omacron -20 +KPX rcommaaccent oslash -20 +KPX rcommaaccent otilde -20 +KPX rcommaaccent period -60 +KPX rcommaaccent q -20 +KPX rcommaaccent s -15 +KPX rcommaaccent sacute -15 +KPX rcommaaccent scaron -15 +KPX rcommaaccent scedilla -15 +KPX rcommaaccent scommaaccent -15 +KPX rcommaaccent t 20 +KPX rcommaaccent tcommaaccent 20 +KPX rcommaaccent v 10 +KPX rcommaaccent y 10 +KPX rcommaaccent yacute 10 +KPX rcommaaccent ydieresis 10 +KPX s w -15 +KPX sacute w -15 +KPX scaron w -15 +KPX scedilla w -15 +KPX scommaaccent w -15 +KPX semicolon space -40 +KPX space T -100 +KPX space Tcaron -100 +KPX space Tcommaaccent -100 +KPX space V -80 +KPX space W -80 +KPX space Y -120 +KPX space Yacute -120 +KPX space Ydieresis -120 +KPX space quotedblleft -80 +KPX space quoteleft -60 +KPX v a -20 +KPX v aacute -20 +KPX v abreve -20 +KPX v acircumflex -20 +KPX v adieresis -20 +KPX v agrave -20 +KPX v amacron -20 +KPX v aogonek -20 +KPX v aring -20 +KPX v atilde -20 +KPX v comma -80 +KPX v o -30 +KPX v oacute -30 +KPX v ocircumflex -30 +KPX v odieresis -30 +KPX v ograve -30 +KPX v ohungarumlaut -30 +KPX v omacron -30 +KPX v oslash -30 +KPX v otilde -30 +KPX v period -80 +KPX w comma -40 +KPX w o -20 +KPX w oacute -20 +KPX w ocircumflex -20 +KPX w odieresis -20 +KPX w ograve -20 +KPX w ohungarumlaut -20 +KPX w omacron -20 +KPX w oslash -20 +KPX w otilde -20 +KPX w period -40 +KPX x e -10 +KPX x eacute -10 +KPX x ecaron -10 +KPX x ecircumflex -10 +KPX x edieresis -10 +KPX x edotaccent -10 +KPX x egrave -10 +KPX x emacron -10 +KPX x eogonek -10 +KPX y a -30 +KPX y aacute -30 +KPX y abreve -30 +KPX y acircumflex -30 +KPX y adieresis -30 +KPX y agrave -30 +KPX y amacron -30 +KPX y aogonek -30 +KPX y aring -30 +KPX y atilde -30 +KPX y comma -80 +KPX y e -10 +KPX y eacute -10 +KPX y ecaron -10 +KPX y ecircumflex -10 +KPX y edieresis -10 +KPX y edotaccent -10 +KPX y egrave -10 +KPX y emacron -10 +KPX y eogonek -10 +KPX y o -25 +KPX y oacute -25 +KPX y ocircumflex -25 +KPX y odieresis -25 +KPX y ograve -25 +KPX y ohungarumlaut -25 +KPX y omacron -25 +KPX y oslash -25 +KPX y otilde -25 +KPX y period -80 +KPX yacute a -30 +KPX yacute aacute -30 +KPX yacute abreve -30 +KPX yacute acircumflex -30 +KPX yacute adieresis -30 +KPX yacute agrave -30 +KPX yacute amacron -30 +KPX yacute aogonek -30 +KPX yacute aring -30 +KPX yacute atilde -30 +KPX yacute comma -80 +KPX yacute e -10 +KPX yacute eacute -10 +KPX yacute ecaron -10 +KPX yacute ecircumflex -10 +KPX yacute edieresis -10 +KPX yacute edotaccent -10 +KPX yacute egrave -10 +KPX yacute emacron -10 +KPX yacute eogonek -10 +KPX yacute o -25 +KPX yacute oacute -25 +KPX yacute ocircumflex -25 +KPX yacute odieresis -25 +KPX yacute ograve -25 +KPX yacute ohungarumlaut -25 +KPX yacute omacron -25 +KPX yacute oslash -25 +KPX yacute otilde -25 +KPX yacute period -80 +KPX ydieresis a -30 +KPX ydieresis aacute -30 +KPX ydieresis abreve -30 +KPX ydieresis acircumflex -30 +KPX ydieresis adieresis -30 +KPX ydieresis agrave -30 +KPX ydieresis amacron -30 +KPX ydieresis aogonek -30 +KPX ydieresis aring -30 +KPX ydieresis atilde -30 +KPX ydieresis comma -80 +KPX ydieresis e -10 +KPX ydieresis eacute -10 +KPX ydieresis ecaron -10 +KPX ydieresis ecircumflex -10 +KPX ydieresis edieresis -10 +KPX ydieresis edotaccent -10 +KPX ydieresis egrave -10 +KPX ydieresis emacron -10 +KPX ydieresis eogonek -10 +KPX ydieresis o -25 +KPX ydieresis oacute -25 +KPX ydieresis ocircumflex -25 +KPX ydieresis odieresis -25 +KPX ydieresis ograve -25 +KPX ydieresis ohungarumlaut -25 +KPX ydieresis omacron -25 +KPX ydieresis oslash -25 +KPX ydieresis otilde -25 +KPX ydieresis period -80 +KPX z e 10 +KPX z eacute 10 +KPX z ecaron 10 +KPX z ecircumflex 10 +KPX z edieresis 10 +KPX z edotaccent 10 +KPX z egrave 10 +KPX z emacron 10 +KPX z eogonek 10 +KPX zacute e 10 +KPX zacute eacute 10 +KPX zacute ecaron 10 +KPX zacute ecircumflex 10 +KPX zacute edieresis 10 +KPX zacute edotaccent 10 +KPX zacute egrave 10 +KPX zacute emacron 10 +KPX zacute eogonek 10 +KPX zcaron e 10 +KPX zcaron eacute 10 +KPX zcaron ecaron 10 +KPX zcaron ecircumflex 10 +KPX zcaron edieresis 10 +KPX zcaron edotaccent 10 +KPX zcaron egrave 10 +KPX zcaron emacron 10 +KPX zcaron eogonek 10 +KPX zdotaccent e 10 +KPX zdotaccent eacute 10 +KPX zdotaccent ecaron 10 +KPX zdotaccent ecircumflex 10 +KPX zdotaccent edieresis 10 +KPX zdotaccent edotaccent 10 +KPX zdotaccent egrave 10 +KPX zdotaccent emacron 10 +KPX zdotaccent eogonek 10 +EndKernPairs +EndKernData +EndFontMetrics diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/Helvetica-Oblique.afm b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/Helvetica-Oblique.afm new file mode 100644 index 0000000..08bc2e5 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/Helvetica-Oblique.afm @@ -0,0 +1,3053 @@ +StartFontMetrics 4.1 +Comment Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Thu May 1 12:44:31 1997 +Comment UniqueID 43055 +Comment VMusage 14960 69346 +FontName Helvetica-Oblique +FullName Helvetica Oblique +FamilyName Helvetica +Weight Medium +ItalicAngle -12 +IsFixedPitch false +CharacterSet ExtendedRoman +FontBBox -170 -225 1116 931 +UnderlinePosition -100 +UnderlineThickness 50 +Version 002.000 +Notice Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype-Hell AG and/or its subsidiaries. +EncodingScheme WinAnsiEncoding +CapHeight 718 +XHeight 523 +Ascender 718 +Descender -207 +StdHW 76 +StdVW 88 +StartCharMetrics 317 +C 32 ; WX 278 ; N space ; B 0 0 0 0 ; +C 160 ; WX 278 ; N space ; B 0 0 0 0 ; +C 33 ; WX 278 ; N exclam ; B 90 0 340 718 ; +C 34 ; WX 355 ; N quotedbl ; B 168 463 438 718 ; +C 35 ; WX 556 ; N numbersign ; B 73 0 631 688 ; +C 36 ; WX 556 ; N dollar ; B 69 -115 617 775 ; +C 37 ; WX 889 ; N percent ; B 147 -19 889 703 ; +C 38 ; WX 667 ; N ampersand ; B 77 -15 647 718 ; +C 146 ; WX 222 ; N quoteright ; B 151 463 310 718 ; +C 40 ; WX 333 ; N parenleft ; B 108 -207 454 733 ; +C 41 ; WX 333 ; N parenright ; B -9 -207 337 733 ; +C 42 ; WX 389 ; N asterisk ; B 165 431 475 718 ; +C 43 ; WX 584 ; N plus ; B 85 0 606 505 ; +C 44 ; WX 278 ; N comma ; B 56 -147 214 106 ; +C 45 ; WX 333 ; N hyphen ; B 93 232 357 322 ; +C 173 ; WX 333 ; N hyphen ; B 44 232 289 322 ; +C 46 ; WX 278 ; N period ; B 87 0 214 106 ; +C 47 ; WX 278 ; N slash ; B -21 -19 452 737 ; +C 48 ; WX 556 ; N zero ; B 93 -19 608 703 ; +C 49 ; WX 556 ; N one ; B 207 0 508 703 ; +C 50 ; WX 556 ; N two ; B 26 0 617 703 ; +C 51 ; WX 556 ; N three ; B 75 -19 610 703 ; +C 52 ; WX 556 ; N four ; B 61 0 576 703 ; +C 53 ; WX 556 ; N five ; B 68 -19 621 688 ; +C 54 ; WX 556 ; N six ; B 91 -19 615 703 ; +C 55 ; WX 556 ; N seven ; B 137 0 669 688 ; +C 56 ; WX 556 ; N eight ; B 74 -19 607 703 ; +C 57 ; WX 556 ; N nine ; B 82 -19 609 703 ; +C 58 ; WX 278 ; N colon ; B 87 0 301 516 ; +C 59 ; WX 278 ; N semicolon ; B 56 -147 301 516 ; +C 60 ; WX 584 ; N less ; B 94 11 641 495 ; +C 61 ; WX 584 ; N equal ; B 63 115 628 390 ; +C 62 ; WX 584 ; N greater ; B 50 11 597 495 ; +C 63 ; WX 556 ; N question ; B 161 0 610 727 ; +C 64 ; WX 1015 ; N at ; B 215 -19 965 737 ; +C 65 ; WX 667 ; N A ; B 14 0 654 718 ; +C 66 ; WX 667 ; N B ; B 74 0 712 718 ; +C 67 ; WX 722 ; N C ; B 108 -19 782 737 ; +C 68 ; WX 722 ; N D ; B 81 0 764 718 ; +C 69 ; WX 667 ; N E ; B 86 0 762 718 ; +C 70 ; WX 611 ; N F ; B 86 0 736 718 ; +C 71 ; WX 778 ; N G ; B 111 -19 799 737 ; +C 72 ; WX 722 ; N H ; B 77 0 799 718 ; +C 73 ; WX 278 ; N I ; B 91 0 341 718 ; +C 74 ; WX 500 ; N J ; B 47 -19 581 718 ; +C 75 ; WX 667 ; N K ; B 76 0 808 718 ; +C 76 ; WX 556 ; N L ; B 76 0 555 718 ; +C 77 ; WX 833 ; N M ; B 73 0 914 718 ; +C 78 ; WX 722 ; N N ; B 76 0 799 718 ; +C 79 ; WX 778 ; N O ; B 105 -19 826 737 ; +C 80 ; WX 667 ; N P ; B 86 0 737 718 ; +C 81 ; WX 778 ; N Q ; B 105 -56 826 737 ; +C 82 ; WX 722 ; N R ; B 88 0 773 718 ; +C 83 ; WX 667 ; N S ; B 90 -19 713 737 ; +C 84 ; WX 611 ; N T ; B 148 0 750 718 ; +C 85 ; WX 722 ; N U ; B 123 -19 797 718 ; +C 86 ; WX 667 ; N V ; B 173 0 800 718 ; +C 87 ; WX 944 ; N W ; B 169 0 1081 718 ; +C 88 ; WX 667 ; N X ; B 19 0 790 718 ; +C 89 ; WX 667 ; N Y ; B 167 0 806 718 ; +C 90 ; WX 611 ; N Z ; B 23 0 741 718 ; +C 91 ; WX 278 ; N bracketleft ; B 21 -196 403 722 ; +C 92 ; WX 278 ; N backslash ; B 140 -19 291 737 ; +C 93 ; WX 278 ; N bracketright ; B -14 -196 368 722 ; +C 94 ; WX 469 ; N asciicircum ; B 42 264 539 688 ; +C 95 ; WX 556 ; N underscore ; B -27 -125 540 -75 ; +C 145 ; WX 222 ; N quoteleft ; B 165 470 323 725 ; +C 97 ; WX 556 ; N a ; B 61 -15 559 538 ; +C 98 ; WX 556 ; N b ; B 58 -15 584 718 ; +C 99 ; WX 500 ; N c ; B 74 -15 553 538 ; +C 100 ; WX 556 ; N d ; B 84 -15 652 718 ; +C 101 ; WX 556 ; N e ; B 84 -15 578 538 ; +C 102 ; WX 278 ; N f ; B 86 0 416 728 ; L i fi ; L l fl ; +C 103 ; WX 556 ; N g ; B 42 -220 610 538 ; +C 104 ; WX 556 ; N h ; B 65 0 573 718 ; +C 105 ; WX 222 ; N i ; B 67 0 308 718 ; +C 106 ; WX 222 ; N j ; B -60 -210 308 718 ; +C 107 ; WX 500 ; N k ; B 67 0 600 718 ; +C 108 ; WX 222 ; N l ; B 67 0 308 718 ; +C 109 ; WX 833 ; N m ; B 65 0 852 538 ; +C 110 ; WX 556 ; N n ; B 65 0 573 538 ; +C 111 ; WX 556 ; N o ; B 83 -14 585 538 ; +C 112 ; WX 556 ; N p ; B 14 -207 584 538 ; +C 113 ; WX 556 ; N q ; B 84 -207 605 538 ; +C 114 ; WX 333 ; N r ; B 77 0 446 538 ; +C 115 ; WX 500 ; N s ; B 63 -15 529 538 ; +C 116 ; WX 278 ; N t ; B 102 -7 368 669 ; +C 117 ; WX 556 ; N u ; B 94 -15 600 523 ; +C 118 ; WX 500 ; N v ; B 119 0 603 523 ; +C 119 ; WX 722 ; N w ; B 125 0 820 523 ; +C 120 ; WX 500 ; N x ; B 11 0 594 523 ; +C 121 ; WX 500 ; N y ; B 15 -214 600 523 ; +C 122 ; WX 500 ; N z ; B 31 0 571 523 ; +C 123 ; WX 334 ; N braceleft ; B 92 -196 445 722 ; +C 124 ; WX 260 ; N bar ; B 46 -225 332 775 ; +C 125 ; WX 334 ; N braceright ; B 0 -196 354 722 ; +C 126 ; WX 584 ; N asciitilde ; B 111 180 580 326 ; +C 161 ; WX 333 ; N exclamdown ; B 77 -195 326 523 ; +C 162 ; WX 556 ; N cent ; B 95 -115 584 623 ; +C 163 ; WX 556 ; N sterling ; B 49 -16 634 718 ; +C -1 ; WX 167 ; N fraction ; B -170 -19 482 703 ; +C 165 ; WX 556 ; N yen ; B 81 0 699 688 ; +C 131 ; WX 556 ; N florin ; B -52 -207 654 737 ; +C 167 ; WX 556 ; N section ; B 76 -191 584 737 ; +C 164 ; WX 556 ; N currency ; B 60 99 646 603 ; +C 39 ; WX 191 ; N quotesingle ; B 157 463 285 718 ; +C 147 ; WX 333 ; N quotedblleft ; B 138 470 461 725 ; +C 171 ; WX 556 ; N guillemotleft ; B 146 108 554 446 ; +C 139 ; WX 333 ; N guilsinglleft ; B 137 108 340 446 ; +C 155 ; WX 333 ; N guilsinglright ; B 111 108 314 446 ; +C -1 ; WX 500 ; N fi ; B 86 0 587 728 ; +C -1 ; WX 500 ; N fl ; B 86 0 585 728 ; +C 150 ; WX 556 ; N endash ; B 51 240 623 313 ; +C 134 ; WX 556 ; N dagger ; B 135 -159 622 718 ; +C 135 ; WX 556 ; N daggerdbl ; B 52 -159 623 718 ; +C 183 ; WX 278 ; N periodcentered ; B 129 190 257 315 ; +C 182 ; WX 537 ; N paragraph ; B 126 -173 650 718 ; +C 149 ; WX 350 ; N bullet ; B 91 202 413 517 ; +C 130 ; WX 222 ; N quotesinglbase ; B 21 -149 180 106 ; +C 132 ; WX 333 ; N quotedblbase ; B -6 -149 318 106 ; +C 148 ; WX 333 ; N quotedblright ; B 124 463 448 718 ; +C 187 ; WX 556 ; N guillemotright ; B 120 108 528 446 ; +C 133 ; WX 1000 ; N ellipsis ; B 115 0 908 106 ; +C 137 ; WX 1000 ; N perthousand ; B 88 -19 1029 703 ; +C 191 ; WX 611 ; N questiondown ; B 85 -201 534 525 ; +C 96 ; WX 333 ; N grave ; B 170 593 337 734 ; +C 180 ; WX 333 ; N acute ; B 248 593 475 734 ; +C 136 ; WX 333 ; N circumflex ; B 147 593 438 734 ; +C 152 ; WX 333 ; N tilde ; B 125 606 490 722 ; +C 175 ; WX 333 ; N macron ; B 143 627 468 684 ; +C -1 ; WX 333 ; N breve ; B 167 595 476 731 ; +C -1 ; WX 333 ; N dotaccent ; B 249 604 362 706 ; +C 168 ; WX 333 ; N dieresis ; B 168 604 443 706 ; +C -1 ; WX 333 ; N ring ; B 214 572 402 756 ; +C 184 ; WX 333 ; N cedilla ; B 2 -225 232 0 ; +C -1 ; WX 333 ; N hungarumlaut ; B 157 593 565 734 ; +C -1 ; WX 333 ; N ogonek ; B 43 -225 249 0 ; +C -1 ; WX 333 ; N caron ; B 177 593 468 734 ; +C 151 ; WX 1000 ; N emdash ; B 51 240 1067 313 ; +C 198 ; WX 1000 ; N AE ; B 8 0 1097 718 ; +C 170 ; WX 370 ; N ordfeminine ; B 127 405 449 737 ; +C -1 ; WX 556 ; N Lslash ; B 41 0 555 718 ; +C 216 ; WX 778 ; N Oslash ; B 43 -19 890 737 ; +C 140 ; WX 1000 ; N OE ; B 98 -19 1116 737 ; +C 186 ; WX 365 ; N ordmasculine ; B 141 405 468 737 ; +C 230 ; WX 889 ; N ae ; B 61 -15 909 538 ; +C -1 ; WX 278 ; N dotlessi ; B 95 0 294 523 ; +C -1 ; WX 222 ; N lslash ; B 41 0 347 718 ; +C 248 ; WX 611 ; N oslash ; B 29 -22 647 545 ; +C 156 ; WX 944 ; N oe ; B 83 -15 964 538 ; +C 223 ; WX 611 ; N germandbls ; B 67 -15 658 728 ; +C 207 ; WX 278 ; N Idieresis ; B 91 0 458 901 ; +C 233 ; WX 556 ; N eacute ; B 84 -15 587 734 ; +C -1 ; WX 556 ; N abreve ; B 61 -15 578 731 ; +C -1 ; WX 556 ; N uhungarumlaut ; B 94 -15 677 734 ; +C -1 ; WX 556 ; N ecaron ; B 84 -15 580 734 ; +C 159 ; WX 667 ; N Ydieresis ; B 167 0 806 901 ; +C 247 ; WX 584 ; N divide ; B 85 -19 606 524 ; +C 221 ; WX 667 ; N Yacute ; B 167 0 806 929 ; +C 194 ; WX 667 ; N Acircumflex ; B 14 0 654 929 ; +C 225 ; WX 556 ; N aacute ; B 61 -15 587 734 ; +C 219 ; WX 722 ; N Ucircumflex ; B 123 -19 797 929 ; +C 253 ; WX 500 ; N yacute ; B 15 -214 600 734 ; +C -1 ; WX 500 ; N scommaaccent ; B 63 -225 529 538 ; +C 234 ; WX 556 ; N ecircumflex ; B 84 -15 578 734 ; +C -1 ; WX 722 ; N Uring ; B 123 -19 797 931 ; +C 220 ; WX 722 ; N Udieresis ; B 123 -19 797 901 ; +C -1 ; WX 556 ; N aogonek ; B 61 -220 559 538 ; +C 218 ; WX 722 ; N Uacute ; B 123 -19 797 929 ; +C -1 ; WX 556 ; N uogonek ; B 94 -225 600 523 ; +C 203 ; WX 667 ; N Edieresis ; B 86 0 762 901 ; +C -1 ; WX 722 ; N Dcroat ; B 69 0 764 718 ; +C -1 ; WX 250 ; N commaaccent ; B 39 -225 172 -40 ; +C 169 ; WX 737 ; N copyright ; B 54 -19 837 737 ; +C -1 ; WX 667 ; N Emacron ; B 86 0 762 879 ; +C -1 ; WX 500 ; N ccaron ; B 74 -15 553 734 ; +C 229 ; WX 556 ; N aring ; B 61 -15 559 756 ; +C -1 ; WX 722 ; N Ncommaaccent ; B 76 -225 799 718 ; +C -1 ; WX 222 ; N lacute ; B 67 0 461 929 ; +C 224 ; WX 556 ; N agrave ; B 61 -15 559 734 ; +C -1 ; WX 611 ; N Tcommaaccent ; B 148 -225 750 718 ; +C -1 ; WX 722 ; N Cacute ; B 108 -19 782 929 ; +C 227 ; WX 556 ; N atilde ; B 61 -15 592 722 ; +C -1 ; WX 667 ; N Edotaccent ; B 86 0 762 901 ; +C 154 ; WX 500 ; N scaron ; B 63 -15 552 734 ; +C -1 ; WX 500 ; N scedilla ; B 63 -225 529 538 ; +C 237 ; WX 278 ; N iacute ; B 95 0 448 734 ; +C -1 ; WX 471 ; N lozenge ; B 88 0 540 728 ; +C -1 ; WX 722 ; N Rcaron ; B 88 0 773 929 ; +C -1 ; WX 778 ; N Gcommaaccent ; B 111 -225 799 737 ; +C 251 ; WX 556 ; N ucircumflex ; B 94 -15 600 734 ; +C 226 ; WX 556 ; N acircumflex ; B 61 -15 559 734 ; +C -1 ; WX 667 ; N Amacron ; B 14 0 677 879 ; +C -1 ; WX 333 ; N rcaron ; B 77 0 508 734 ; +C 231 ; WX 500 ; N ccedilla ; B 74 -225 553 538 ; +C -1 ; WX 611 ; N Zdotaccent ; B 23 0 741 901 ; +C 222 ; WX 667 ; N Thorn ; B 86 0 712 718 ; +C -1 ; WX 778 ; N Omacron ; B 105 -19 826 879 ; +C -1 ; WX 722 ; N Racute ; B 88 0 773 929 ; +C -1 ; WX 667 ; N Sacute ; B 90 -19 713 929 ; +C -1 ; WX 643 ; N dcaron ; B 84 -15 808 718 ; +C -1 ; WX 722 ; N Umacron ; B 123 -19 797 879 ; +C -1 ; WX 556 ; N uring ; B 94 -15 600 756 ; +C 179 ; WX 333 ; N threesuperior ; B 90 270 436 703 ; +C 210 ; WX 778 ; N Ograve ; B 105 -19 826 929 ; +C 192 ; WX 667 ; N Agrave ; B 14 0 654 929 ; +C -1 ; WX 667 ; N Abreve ; B 14 0 685 926 ; +C 215 ; WX 584 ; N multiply ; B 50 0 642 506 ; +C 250 ; WX 556 ; N uacute ; B 94 -15 600 734 ; +C -1 ; WX 611 ; N Tcaron ; B 148 0 750 929 ; +C -1 ; WX 476 ; N partialdiff ; B 41 -38 550 714 ; +C 255 ; WX 500 ; N ydieresis ; B 15 -214 600 706 ; +C -1 ; WX 722 ; N Nacute ; B 76 0 799 929 ; +C 238 ; WX 278 ; N icircumflex ; B 95 0 411 734 ; +C 202 ; WX 667 ; N Ecircumflex ; B 86 0 762 929 ; +C 228 ; WX 556 ; N adieresis ; B 61 -15 559 706 ; +C 235 ; WX 556 ; N edieresis ; B 84 -15 578 706 ; +C -1 ; WX 500 ; N cacute ; B 74 -15 559 734 ; +C -1 ; WX 556 ; N nacute ; B 65 0 587 734 ; +C -1 ; WX 556 ; N umacron ; B 94 -15 600 684 ; +C -1 ; WX 722 ; N Ncaron ; B 76 0 799 929 ; +C 205 ; WX 278 ; N Iacute ; B 91 0 489 929 ; +C 177 ; WX 584 ; N plusminus ; B 39 0 618 506 ; +C 166 ; WX 260 ; N brokenbar ; B 62 -150 316 700 ; +C 174 ; WX 737 ; N registered ; B 54 -19 837 737 ; +C -1 ; WX 778 ; N Gbreve ; B 111 -19 799 926 ; +C -1 ; WX 278 ; N Idotaccent ; B 91 0 377 901 ; +C -1 ; WX 600 ; N summation ; B 15 -10 671 706 ; +C 200 ; WX 667 ; N Egrave ; B 86 0 762 929 ; +C -1 ; WX 333 ; N racute ; B 77 0 475 734 ; +C -1 ; WX 556 ; N omacron ; B 83 -14 585 684 ; +C -1 ; WX 611 ; N Zacute ; B 23 0 741 929 ; +C 142 ; WX 611 ; N Zcaron ; B 23 0 741 929 ; +C -1 ; WX 549 ; N greaterequal ; B 26 0 620 674 ; +C 208 ; WX 722 ; N Eth ; B 69 0 764 718 ; +C 199 ; WX 722 ; N Ccedilla ; B 108 -225 782 737 ; +C -1 ; WX 222 ; N lcommaaccent ; B 25 -225 308 718 ; +C -1 ; WX 317 ; N tcaron ; B 102 -7 501 808 ; +C -1 ; WX 556 ; N eogonek ; B 84 -225 578 538 ; +C -1 ; WX 722 ; N Uogonek ; B 123 -225 797 718 ; +C 193 ; WX 667 ; N Aacute ; B 14 0 683 929 ; +C 196 ; WX 667 ; N Adieresis ; B 14 0 654 901 ; +C 232 ; WX 556 ; N egrave ; B 84 -15 578 734 ; +C -1 ; WX 500 ; N zacute ; B 31 0 571 734 ; +C -1 ; WX 222 ; N iogonek ; B -61 -225 308 718 ; +C 211 ; WX 778 ; N Oacute ; B 105 -19 826 929 ; +C 243 ; WX 556 ; N oacute ; B 83 -14 587 734 ; +C -1 ; WX 556 ; N amacron ; B 61 -15 580 684 ; +C -1 ; WX 500 ; N sacute ; B 63 -15 559 734 ; +C 239 ; WX 278 ; N idieresis ; B 95 0 416 706 ; +C 212 ; WX 778 ; N Ocircumflex ; B 105 -19 826 929 ; +C 217 ; WX 722 ; N Ugrave ; B 123 -19 797 929 ; +C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ; +C 254 ; WX 556 ; N thorn ; B 14 -207 584 718 ; +C 178 ; WX 333 ; N twosuperior ; B 64 281 449 703 ; +C 214 ; WX 778 ; N Odieresis ; B 105 -19 826 901 ; +C 181 ; WX 556 ; N mu ; B 24 -207 600 523 ; +C 236 ; WX 278 ; N igrave ; B 95 0 310 734 ; +C -1 ; WX 556 ; N ohungarumlaut ; B 83 -14 677 734 ; +C -1 ; WX 667 ; N Eogonek ; B 86 -220 762 718 ; +C -1 ; WX 556 ; N dcroat ; B 84 -15 689 718 ; +C 190 ; WX 834 ; N threequarters ; B 130 -19 861 703 ; +C -1 ; WX 667 ; N Scedilla ; B 90 -225 713 737 ; +C -1 ; WX 299 ; N lcaron ; B 67 0 464 718 ; +C -1 ; WX 667 ; N Kcommaaccent ; B 76 -225 808 718 ; +C -1 ; WX 556 ; N Lacute ; B 76 0 555 929 ; +C 153 ; WX 1000 ; N trademark ; B 186 306 1056 718 ; +C -1 ; WX 556 ; N edotaccent ; B 84 -15 578 706 ; +C 204 ; WX 278 ; N Igrave ; B 91 0 351 929 ; +C -1 ; WX 278 ; N Imacron ; B 91 0 483 879 ; +C -1 ; WX 556 ; N Lcaron ; B 76 0 570 718 ; +C 189 ; WX 834 ; N onehalf ; B 114 -19 839 703 ; +C -1 ; WX 549 ; N lessequal ; B 26 0 666 674 ; +C 244 ; WX 556 ; N ocircumflex ; B 83 -14 585 734 ; +C 241 ; WX 556 ; N ntilde ; B 65 0 592 722 ; +C -1 ; WX 722 ; N Uhungarumlaut ; B 123 -19 801 929 ; +C 201 ; WX 667 ; N Eacute ; B 86 0 762 929 ; +C -1 ; WX 556 ; N emacron ; B 84 -15 580 684 ; +C -1 ; WX 556 ; N gbreve ; B 42 -220 610 731 ; +C 188 ; WX 834 ; N onequarter ; B 150 -19 802 703 ; +C 138 ; WX 667 ; N Scaron ; B 90 -19 713 929 ; +C -1 ; WX 667 ; N Scommaaccent ; B 90 -225 713 737 ; +C -1 ; WX 778 ; N Ohungarumlaut ; B 105 -19 829 929 ; +C 176 ; WX 400 ; N degree ; B 169 411 468 703 ; +C 242 ; WX 556 ; N ograve ; B 83 -14 585 734 ; +C -1 ; WX 722 ; N Ccaron ; B 108 -19 782 929 ; +C 249 ; WX 556 ; N ugrave ; B 94 -15 600 734 ; +C -1 ; WX 453 ; N radical ; B 79 -80 617 762 ; +C -1 ; WX 722 ; N Dcaron ; B 81 0 764 929 ; +C -1 ; WX 333 ; N rcommaaccent ; B 30 -225 446 538 ; +C 209 ; WX 722 ; N Ntilde ; B 76 0 799 917 ; +C 245 ; WX 556 ; N otilde ; B 83 -14 602 722 ; +C -1 ; WX 722 ; N Rcommaaccent ; B 88 -225 773 718 ; +C -1 ; WX 556 ; N Lcommaaccent ; B 76 -225 555 718 ; +C 195 ; WX 667 ; N Atilde ; B 14 0 699 917 ; +C -1 ; WX 667 ; N Aogonek ; B 14 -225 654 718 ; +C 197 ; WX 667 ; N Aring ; B 14 0 654 931 ; +C 213 ; WX 778 ; N Otilde ; B 105 -19 826 917 ; +C -1 ; WX 500 ; N zdotaccent ; B 31 0 571 706 ; +C -1 ; WX 667 ; N Ecaron ; B 86 0 762 929 ; +C -1 ; WX 278 ; N Iogonek ; B -33 -225 341 718 ; +C -1 ; WX 500 ; N kcommaaccent ; B 67 -225 600 718 ; +C -1 ; WX 584 ; N minus ; B 85 216 606 289 ; +C 206 ; WX 278 ; N Icircumflex ; B 91 0 452 929 ; +C -1 ; WX 556 ; N ncaron ; B 65 0 580 734 ; +C -1 ; WX 278 ; N tcommaaccent ; B 63 -225 368 669 ; +C 172 ; WX 584 ; N logicalnot ; B 106 108 628 390 ; +C 246 ; WX 556 ; N odieresis ; B 83 -14 585 706 ; +C 252 ; WX 556 ; N udieresis ; B 94 -15 600 706 ; +C -1 ; WX 549 ; N notequal ; B 34 -35 623 551 ; +C -1 ; WX 556 ; N gcommaaccent ; B 42 -220 610 822 ; +C 240 ; WX 556 ; N eth ; B 81 -15 617 737 ; +C 158 ; WX 500 ; N zcaron ; B 31 0 571 734 ; +C -1 ; WX 556 ; N ncommaaccent ; B 65 -225 573 538 ; +C 185 ; WX 333 ; N onesuperior ; B 166 281 371 703 ; +C -1 ; WX 278 ; N imacron ; B 95 0 417 684 ; +C 128 ; WX 556 ; N Euro ; B 0 0 0 0 ; +EndCharMetrics +StartKernData +StartKernPairs 2705 +KPX A C -30 +KPX A Cacute -30 +KPX A Ccaron -30 +KPX A Ccedilla -30 +KPX A G -30 +KPX A Gbreve -30 +KPX A Gcommaaccent -30 +KPX A O -30 +KPX A Oacute -30 +KPX A Ocircumflex -30 +KPX A Odieresis -30 +KPX A Ograve -30 +KPX A Ohungarumlaut -30 +KPX A Omacron -30 +KPX A Oslash -30 +KPX A Otilde -30 +KPX A Q -30 +KPX A T -120 +KPX A Tcaron -120 +KPX A Tcommaaccent -120 +KPX A U -50 +KPX A Uacute -50 +KPX A Ucircumflex -50 +KPX A Udieresis -50 +KPX A Ugrave -50 +KPX A Uhungarumlaut -50 +KPX A Umacron -50 +KPX A Uogonek -50 +KPX A Uring -50 +KPX A V -70 +KPX A W -50 +KPX A Y -100 +KPX A Yacute -100 +KPX A Ydieresis -100 +KPX A u -30 +KPX A uacute -30 +KPX A ucircumflex -30 +KPX A udieresis -30 +KPX A ugrave -30 +KPX A uhungarumlaut -30 +KPX A umacron -30 +KPX A uogonek -30 +KPX A uring -30 +KPX A v -40 +KPX A w -40 +KPX A y -40 +KPX A yacute -40 +KPX A ydieresis -40 +KPX Aacute C -30 +KPX Aacute Cacute -30 +KPX Aacute Ccaron -30 +KPX Aacute Ccedilla -30 +KPX Aacute G -30 +KPX Aacute Gbreve -30 +KPX Aacute Gcommaaccent -30 +KPX Aacute O -30 +KPX Aacute Oacute -30 +KPX Aacute Ocircumflex -30 +KPX Aacute Odieresis -30 +KPX Aacute Ograve -30 +KPX Aacute Ohungarumlaut -30 +KPX Aacute Omacron -30 +KPX Aacute Oslash -30 +KPX Aacute Otilde -30 +KPX Aacute Q -30 +KPX Aacute T -120 +KPX Aacute Tcaron -120 +KPX Aacute Tcommaaccent -120 +KPX Aacute U -50 +KPX Aacute Uacute -50 +KPX Aacute Ucircumflex -50 +KPX Aacute Udieresis -50 +KPX Aacute Ugrave -50 +KPX Aacute Uhungarumlaut -50 +KPX Aacute Umacron -50 +KPX Aacute Uogonek -50 +KPX Aacute Uring -50 +KPX Aacute V -70 +KPX Aacute W -50 +KPX Aacute Y -100 +KPX Aacute Yacute -100 +KPX Aacute Ydieresis -100 +KPX Aacute u -30 +KPX Aacute uacute -30 +KPX Aacute ucircumflex -30 +KPX Aacute udieresis -30 +KPX Aacute ugrave -30 +KPX Aacute uhungarumlaut -30 +KPX Aacute umacron -30 +KPX Aacute uogonek -30 +KPX Aacute uring -30 +KPX Aacute v -40 +KPX Aacute w -40 +KPX Aacute y -40 +KPX Aacute yacute -40 +KPX Aacute ydieresis -40 +KPX Abreve C -30 +KPX Abreve Cacute -30 +KPX Abreve Ccaron -30 +KPX Abreve Ccedilla -30 +KPX Abreve G -30 +KPX Abreve Gbreve -30 +KPX Abreve Gcommaaccent -30 +KPX Abreve O -30 +KPX Abreve Oacute -30 +KPX Abreve Ocircumflex -30 +KPX Abreve Odieresis -30 +KPX Abreve Ograve -30 +KPX Abreve Ohungarumlaut -30 +KPX Abreve Omacron -30 +KPX Abreve Oslash -30 +KPX Abreve Otilde -30 +KPX Abreve Q -30 +KPX Abreve T -120 +KPX Abreve Tcaron -120 +KPX Abreve Tcommaaccent -120 +KPX Abreve U -50 +KPX Abreve Uacute -50 +KPX Abreve Ucircumflex -50 +KPX Abreve Udieresis -50 +KPX Abreve Ugrave -50 +KPX Abreve Uhungarumlaut -50 +KPX Abreve Umacron -50 +KPX Abreve Uogonek -50 +KPX Abreve Uring -50 +KPX Abreve V -70 +KPX Abreve W -50 +KPX Abreve Y -100 +KPX Abreve Yacute -100 +KPX Abreve Ydieresis -100 +KPX Abreve u -30 +KPX Abreve uacute -30 +KPX Abreve ucircumflex -30 +KPX Abreve udieresis -30 +KPX Abreve ugrave -30 +KPX Abreve uhungarumlaut -30 +KPX Abreve umacron -30 +KPX Abreve uogonek -30 +KPX Abreve uring -30 +KPX Abreve v -40 +KPX Abreve w -40 +KPX Abreve y -40 +KPX Abreve yacute -40 +KPX Abreve ydieresis -40 +KPX Acircumflex C -30 +KPX Acircumflex Cacute -30 +KPX Acircumflex Ccaron -30 +KPX Acircumflex Ccedilla -30 +KPX Acircumflex G -30 +KPX Acircumflex Gbreve -30 +KPX Acircumflex Gcommaaccent -30 +KPX Acircumflex O -30 +KPX Acircumflex Oacute -30 +KPX Acircumflex Ocircumflex -30 +KPX Acircumflex Odieresis -30 +KPX Acircumflex Ograve -30 +KPX Acircumflex Ohungarumlaut -30 +KPX Acircumflex Omacron -30 +KPX Acircumflex Oslash -30 +KPX Acircumflex Otilde -30 +KPX Acircumflex Q -30 +KPX Acircumflex T -120 +KPX Acircumflex Tcaron -120 +KPX Acircumflex Tcommaaccent -120 +KPX Acircumflex U -50 +KPX Acircumflex Uacute -50 +KPX Acircumflex Ucircumflex -50 +KPX Acircumflex Udieresis -50 +KPX Acircumflex Ugrave -50 +KPX Acircumflex Uhungarumlaut -50 +KPX Acircumflex Umacron -50 +KPX Acircumflex Uogonek -50 +KPX Acircumflex Uring -50 +KPX Acircumflex V -70 +KPX Acircumflex W -50 +KPX Acircumflex Y -100 +KPX Acircumflex Yacute -100 +KPX Acircumflex Ydieresis -100 +KPX Acircumflex u -30 +KPX Acircumflex uacute -30 +KPX Acircumflex ucircumflex -30 +KPX Acircumflex udieresis -30 +KPX Acircumflex ugrave -30 +KPX Acircumflex uhungarumlaut -30 +KPX Acircumflex umacron -30 +KPX Acircumflex uogonek -30 +KPX Acircumflex uring -30 +KPX Acircumflex v -40 +KPX Acircumflex w -40 +KPX Acircumflex y -40 +KPX Acircumflex yacute -40 +KPX Acircumflex ydieresis -40 +KPX Adieresis C -30 +KPX Adieresis Cacute -30 +KPX Adieresis Ccaron -30 +KPX Adieresis Ccedilla -30 +KPX Adieresis G -30 +KPX Adieresis Gbreve -30 +KPX Adieresis Gcommaaccent -30 +KPX Adieresis O -30 +KPX Adieresis Oacute -30 +KPX Adieresis Ocircumflex -30 +KPX Adieresis Odieresis -30 +KPX Adieresis Ograve -30 +KPX Adieresis Ohungarumlaut -30 +KPX Adieresis Omacron -30 +KPX Adieresis Oslash -30 +KPX Adieresis Otilde -30 +KPX Adieresis Q -30 +KPX Adieresis T -120 +KPX Adieresis Tcaron -120 +KPX Adieresis Tcommaaccent -120 +KPX Adieresis U -50 +KPX Adieresis Uacute -50 +KPX Adieresis Ucircumflex -50 +KPX Adieresis Udieresis -50 +KPX Adieresis Ugrave -50 +KPX Adieresis Uhungarumlaut -50 +KPX Adieresis Umacron -50 +KPX Adieresis Uogonek -50 +KPX Adieresis Uring -50 +KPX Adieresis V -70 +KPX Adieresis W -50 +KPX Adieresis Y -100 +KPX Adieresis Yacute -100 +KPX Adieresis Ydieresis -100 +KPX Adieresis u -30 +KPX Adieresis uacute -30 +KPX Adieresis ucircumflex -30 +KPX Adieresis udieresis -30 +KPX Adieresis ugrave -30 +KPX Adieresis uhungarumlaut -30 +KPX Adieresis umacron -30 +KPX Adieresis uogonek -30 +KPX Adieresis uring -30 +KPX Adieresis v -40 +KPX Adieresis w -40 +KPX Adieresis y -40 +KPX Adieresis yacute -40 +KPX Adieresis ydieresis -40 +KPX Agrave C -30 +KPX Agrave Cacute -30 +KPX Agrave Ccaron -30 +KPX Agrave Ccedilla -30 +KPX Agrave G -30 +KPX Agrave Gbreve -30 +KPX Agrave Gcommaaccent -30 +KPX Agrave O -30 +KPX Agrave Oacute -30 +KPX Agrave Ocircumflex -30 +KPX Agrave Odieresis -30 +KPX Agrave Ograve -30 +KPX Agrave Ohungarumlaut -30 +KPX Agrave Omacron -30 +KPX Agrave Oslash -30 +KPX Agrave Otilde -30 +KPX Agrave Q -30 +KPX Agrave T -120 +KPX Agrave Tcaron -120 +KPX Agrave Tcommaaccent -120 +KPX Agrave U -50 +KPX Agrave Uacute -50 +KPX Agrave Ucircumflex -50 +KPX Agrave Udieresis -50 +KPX Agrave Ugrave -50 +KPX Agrave Uhungarumlaut -50 +KPX Agrave Umacron -50 +KPX Agrave Uogonek -50 +KPX Agrave Uring -50 +KPX Agrave V -70 +KPX Agrave W -50 +KPX Agrave Y -100 +KPX Agrave Yacute -100 +KPX Agrave Ydieresis -100 +KPX Agrave u -30 +KPX Agrave uacute -30 +KPX Agrave ucircumflex -30 +KPX Agrave udieresis -30 +KPX Agrave ugrave -30 +KPX Agrave uhungarumlaut -30 +KPX Agrave umacron -30 +KPX Agrave uogonek -30 +KPX Agrave uring -30 +KPX Agrave v -40 +KPX Agrave w -40 +KPX Agrave y -40 +KPX Agrave yacute -40 +KPX Agrave ydieresis -40 +KPX Amacron C -30 +KPX Amacron Cacute -30 +KPX Amacron Ccaron -30 +KPX Amacron Ccedilla -30 +KPX Amacron G -30 +KPX Amacron Gbreve -30 +KPX Amacron Gcommaaccent -30 +KPX Amacron O -30 +KPX Amacron Oacute -30 +KPX Amacron Ocircumflex -30 +KPX Amacron Odieresis -30 +KPX Amacron Ograve -30 +KPX Amacron Ohungarumlaut -30 +KPX Amacron Omacron -30 +KPX Amacron Oslash -30 +KPX Amacron Otilde -30 +KPX Amacron Q -30 +KPX Amacron T -120 +KPX Amacron Tcaron -120 +KPX Amacron Tcommaaccent -120 +KPX Amacron U -50 +KPX Amacron Uacute -50 +KPX Amacron Ucircumflex -50 +KPX Amacron Udieresis -50 +KPX Amacron Ugrave -50 +KPX Amacron Uhungarumlaut -50 +KPX Amacron Umacron -50 +KPX Amacron Uogonek -50 +KPX Amacron Uring -50 +KPX Amacron V -70 +KPX Amacron W -50 +KPX Amacron Y -100 +KPX Amacron Yacute -100 +KPX Amacron Ydieresis -100 +KPX Amacron u -30 +KPX Amacron uacute -30 +KPX Amacron ucircumflex -30 +KPX Amacron udieresis -30 +KPX Amacron ugrave -30 +KPX Amacron uhungarumlaut -30 +KPX Amacron umacron -30 +KPX Amacron uogonek -30 +KPX Amacron uring -30 +KPX Amacron v -40 +KPX Amacron w -40 +KPX Amacron y -40 +KPX Amacron yacute -40 +KPX Amacron ydieresis -40 +KPX Aogonek C -30 +KPX Aogonek Cacute -30 +KPX Aogonek Ccaron -30 +KPX Aogonek Ccedilla -30 +KPX Aogonek G -30 +KPX Aogonek Gbreve -30 +KPX Aogonek Gcommaaccent -30 +KPX Aogonek O -30 +KPX Aogonek Oacute -30 +KPX Aogonek Ocircumflex -30 +KPX Aogonek Odieresis -30 +KPX Aogonek Ograve -30 +KPX Aogonek Ohungarumlaut -30 +KPX Aogonek Omacron -30 +KPX Aogonek Oslash -30 +KPX Aogonek Otilde -30 +KPX Aogonek Q -30 +KPX Aogonek T -120 +KPX Aogonek Tcaron -120 +KPX Aogonek Tcommaaccent -120 +KPX Aogonek U -50 +KPX Aogonek Uacute -50 +KPX Aogonek Ucircumflex -50 +KPX Aogonek Udieresis -50 +KPX Aogonek Ugrave -50 +KPX Aogonek Uhungarumlaut -50 +KPX Aogonek Umacron -50 +KPX Aogonek Uogonek -50 +KPX Aogonek Uring -50 +KPX Aogonek V -70 +KPX Aogonek W -50 +KPX Aogonek Y -100 +KPX Aogonek Yacute -100 +KPX Aogonek Ydieresis -100 +KPX Aogonek u -30 +KPX Aogonek uacute -30 +KPX Aogonek ucircumflex -30 +KPX Aogonek udieresis -30 +KPX Aogonek ugrave -30 +KPX Aogonek uhungarumlaut -30 +KPX Aogonek umacron -30 +KPX Aogonek uogonek -30 +KPX Aogonek uring -30 +KPX Aogonek v -40 +KPX Aogonek w -40 +KPX Aogonek y -40 +KPX Aogonek yacute -40 +KPX Aogonek ydieresis -40 +KPX Aring C -30 +KPX Aring Cacute -30 +KPX Aring Ccaron -30 +KPX Aring Ccedilla -30 +KPX Aring G -30 +KPX Aring Gbreve -30 +KPX Aring Gcommaaccent -30 +KPX Aring O -30 +KPX Aring Oacute -30 +KPX Aring Ocircumflex -30 +KPX Aring Odieresis -30 +KPX Aring Ograve -30 +KPX Aring Ohungarumlaut -30 +KPX Aring Omacron -30 +KPX Aring Oslash -30 +KPX Aring Otilde -30 +KPX Aring Q -30 +KPX Aring T -120 +KPX Aring Tcaron -120 +KPX Aring Tcommaaccent -120 +KPX Aring U -50 +KPX Aring Uacute -50 +KPX Aring Ucircumflex -50 +KPX Aring Udieresis -50 +KPX Aring Ugrave -50 +KPX Aring Uhungarumlaut -50 +KPX Aring Umacron -50 +KPX Aring Uogonek -50 +KPX Aring Uring -50 +KPX Aring V -70 +KPX Aring W -50 +KPX Aring Y -100 +KPX Aring Yacute -100 +KPX Aring Ydieresis -100 +KPX Aring u -30 +KPX Aring uacute -30 +KPX Aring ucircumflex -30 +KPX Aring udieresis -30 +KPX Aring ugrave -30 +KPX Aring uhungarumlaut -30 +KPX Aring umacron -30 +KPX Aring uogonek -30 +KPX Aring uring -30 +KPX Aring v -40 +KPX Aring w -40 +KPX Aring y -40 +KPX Aring yacute -40 +KPX Aring ydieresis -40 +KPX Atilde C -30 +KPX Atilde Cacute -30 +KPX Atilde Ccaron -30 +KPX Atilde Ccedilla -30 +KPX Atilde G -30 +KPX Atilde Gbreve -30 +KPX Atilde Gcommaaccent -30 +KPX Atilde O -30 +KPX Atilde Oacute -30 +KPX Atilde Ocircumflex -30 +KPX Atilde Odieresis -30 +KPX Atilde Ograve -30 +KPX Atilde Ohungarumlaut -30 +KPX Atilde Omacron -30 +KPX Atilde Oslash -30 +KPX Atilde Otilde -30 +KPX Atilde Q -30 +KPX Atilde T -120 +KPX Atilde Tcaron -120 +KPX Atilde Tcommaaccent -120 +KPX Atilde U -50 +KPX Atilde Uacute -50 +KPX Atilde Ucircumflex -50 +KPX Atilde Udieresis -50 +KPX Atilde Ugrave -50 +KPX Atilde Uhungarumlaut -50 +KPX Atilde Umacron -50 +KPX Atilde Uogonek -50 +KPX Atilde Uring -50 +KPX Atilde V -70 +KPX Atilde W -50 +KPX Atilde Y -100 +KPX Atilde Yacute -100 +KPX Atilde Ydieresis -100 +KPX Atilde u -30 +KPX Atilde uacute -30 +KPX Atilde ucircumflex -30 +KPX Atilde udieresis -30 +KPX Atilde ugrave -30 +KPX Atilde uhungarumlaut -30 +KPX Atilde umacron -30 +KPX Atilde uogonek -30 +KPX Atilde uring -30 +KPX Atilde v -40 +KPX Atilde w -40 +KPX Atilde y -40 +KPX Atilde yacute -40 +KPX Atilde ydieresis -40 +KPX B U -10 +KPX B Uacute -10 +KPX B Ucircumflex -10 +KPX B Udieresis -10 +KPX B Ugrave -10 +KPX B Uhungarumlaut -10 +KPX B Umacron -10 +KPX B Uogonek -10 +KPX B Uring -10 +KPX B comma -20 +KPX B period -20 +KPX C comma -30 +KPX C period -30 +KPX Cacute comma -30 +KPX Cacute period -30 +KPX Ccaron comma -30 +KPX Ccaron period -30 +KPX Ccedilla comma -30 +KPX Ccedilla period -30 +KPX D A -40 +KPX D Aacute -40 +KPX D Abreve -40 +KPX D Acircumflex -40 +KPX D Adieresis -40 +KPX D Agrave -40 +KPX D Amacron -40 +KPX D Aogonek -40 +KPX D Aring -40 +KPX D Atilde -40 +KPX D V -70 +KPX D W -40 +KPX D Y -90 +KPX D Yacute -90 +KPX D Ydieresis -90 +KPX D comma -70 +KPX D period -70 +KPX Dcaron A -40 +KPX Dcaron Aacute -40 +KPX Dcaron Abreve -40 +KPX Dcaron Acircumflex -40 +KPX Dcaron Adieresis -40 +KPX Dcaron Agrave -40 +KPX Dcaron Amacron -40 +KPX Dcaron Aogonek -40 +KPX Dcaron Aring -40 +KPX Dcaron Atilde -40 +KPX Dcaron V -70 +KPX Dcaron W -40 +KPX Dcaron Y -90 +KPX Dcaron Yacute -90 +KPX Dcaron Ydieresis -90 +KPX Dcaron comma -70 +KPX Dcaron period -70 +KPX Dcroat A -40 +KPX Dcroat Aacute -40 +KPX Dcroat Abreve -40 +KPX Dcroat Acircumflex -40 +KPX Dcroat Adieresis -40 +KPX Dcroat Agrave -40 +KPX Dcroat Amacron -40 +KPX Dcroat Aogonek -40 +KPX Dcroat Aring -40 +KPX Dcroat Atilde -40 +KPX Dcroat V -70 +KPX Dcroat W -40 +KPX Dcroat Y -90 +KPX Dcroat Yacute -90 +KPX Dcroat Ydieresis -90 +KPX Dcroat comma -70 +KPX Dcroat period -70 +KPX F A -80 +KPX F Aacute -80 +KPX F Abreve -80 +KPX F Acircumflex -80 +KPX F Adieresis -80 +KPX F Agrave -80 +KPX F Amacron -80 +KPX F Aogonek -80 +KPX F Aring -80 +KPX F Atilde -80 +KPX F a -50 +KPX F aacute -50 +KPX F abreve -50 +KPX F acircumflex -50 +KPX F adieresis -50 +KPX F agrave -50 +KPX F amacron -50 +KPX F aogonek -50 +KPX F aring -50 +KPX F atilde -50 +KPX F comma -150 +KPX F e -30 +KPX F eacute -30 +KPX F ecaron -30 +KPX F ecircumflex -30 +KPX F edieresis -30 +KPX F edotaccent -30 +KPX F egrave -30 +KPX F emacron -30 +KPX F eogonek -30 +KPX F o -30 +KPX F oacute -30 +KPX F ocircumflex -30 +KPX F odieresis -30 +KPX F ograve -30 +KPX F ohungarumlaut -30 +KPX F omacron -30 +KPX F oslash -30 +KPX F otilde -30 +KPX F period -150 +KPX F r -45 +KPX F racute -45 +KPX F rcaron -45 +KPX F rcommaaccent -45 +KPX J A -20 +KPX J Aacute -20 +KPX J Abreve -20 +KPX J Acircumflex -20 +KPX J Adieresis -20 +KPX J Agrave -20 +KPX J Amacron -20 +KPX J Aogonek -20 +KPX J Aring -20 +KPX J Atilde -20 +KPX J a -20 +KPX J aacute -20 +KPX J abreve -20 +KPX J acircumflex -20 +KPX J adieresis -20 +KPX J agrave -20 +KPX J amacron -20 +KPX J aogonek -20 +KPX J aring -20 +KPX J atilde -20 +KPX J comma -30 +KPX J period -30 +KPX J u -20 +KPX J uacute -20 +KPX J ucircumflex -20 +KPX J udieresis -20 +KPX J ugrave -20 +KPX J uhungarumlaut -20 +KPX J umacron -20 +KPX J uogonek -20 +KPX J uring -20 +KPX K O -50 +KPX K Oacute -50 +KPX K Ocircumflex -50 +KPX K Odieresis -50 +KPX K Ograve -50 +KPX K Ohungarumlaut -50 +KPX K Omacron -50 +KPX K Oslash -50 +KPX K Otilde -50 +KPX K e -40 +KPX K eacute -40 +KPX K ecaron -40 +KPX K ecircumflex -40 +KPX K edieresis -40 +KPX K edotaccent -40 +KPX K egrave -40 +KPX K emacron -40 +KPX K eogonek -40 +KPX K o -40 +KPX K oacute -40 +KPX K ocircumflex -40 +KPX K odieresis -40 +KPX K ograve -40 +KPX K ohungarumlaut -40 +KPX K omacron -40 +KPX K oslash -40 +KPX K otilde -40 +KPX K u -30 +KPX K uacute -30 +KPX K ucircumflex -30 +KPX K udieresis -30 +KPX K ugrave -30 +KPX K uhungarumlaut -30 +KPX K umacron -30 +KPX K uogonek -30 +KPX K uring -30 +KPX K y -50 +KPX K yacute -50 +KPX K ydieresis -50 +KPX Kcommaaccent O -50 +KPX Kcommaaccent Oacute -50 +KPX Kcommaaccent Ocircumflex -50 +KPX Kcommaaccent Odieresis -50 +KPX Kcommaaccent Ograve -50 +KPX Kcommaaccent Ohungarumlaut -50 +KPX Kcommaaccent Omacron -50 +KPX Kcommaaccent Oslash -50 +KPX Kcommaaccent Otilde -50 +KPX Kcommaaccent e -40 +KPX Kcommaaccent eacute -40 +KPX Kcommaaccent ecaron -40 +KPX Kcommaaccent ecircumflex -40 +KPX Kcommaaccent edieresis -40 +KPX Kcommaaccent edotaccent -40 +KPX Kcommaaccent egrave -40 +KPX Kcommaaccent emacron -40 +KPX Kcommaaccent eogonek -40 +KPX Kcommaaccent o -40 +KPX Kcommaaccent oacute -40 +KPX Kcommaaccent ocircumflex -40 +KPX Kcommaaccent odieresis -40 +KPX Kcommaaccent ograve -40 +KPX Kcommaaccent ohungarumlaut -40 +KPX Kcommaaccent omacron -40 +KPX Kcommaaccent oslash -40 +KPX Kcommaaccent otilde -40 +KPX Kcommaaccent u -30 +KPX Kcommaaccent uacute -30 +KPX Kcommaaccent ucircumflex -30 +KPX Kcommaaccent udieresis -30 +KPX Kcommaaccent ugrave -30 +KPX Kcommaaccent uhungarumlaut -30 +KPX Kcommaaccent umacron -30 +KPX Kcommaaccent uogonek -30 +KPX Kcommaaccent uring -30 +KPX Kcommaaccent y -50 +KPX Kcommaaccent yacute -50 +KPX Kcommaaccent ydieresis -50 +KPX L T -110 +KPX L Tcaron -110 +KPX L Tcommaaccent -110 +KPX L V -110 +KPX L W -70 +KPX L Y -140 +KPX L Yacute -140 +KPX L Ydieresis -140 +KPX L quotedblright -140 +KPX L quoteright -160 +KPX L y -30 +KPX L yacute -30 +KPX L ydieresis -30 +KPX Lacute T -110 +KPX Lacute Tcaron -110 +KPX Lacute Tcommaaccent -110 +KPX Lacute V -110 +KPX Lacute W -70 +KPX Lacute Y -140 +KPX Lacute Yacute -140 +KPX Lacute Ydieresis -140 +KPX Lacute quotedblright -140 +KPX Lacute quoteright -160 +KPX Lacute y -30 +KPX Lacute yacute -30 +KPX Lacute ydieresis -30 +KPX Lcaron T -110 +KPX Lcaron Tcaron -110 +KPX Lcaron Tcommaaccent -110 +KPX Lcaron V -110 +KPX Lcaron W -70 +KPX Lcaron Y -140 +KPX Lcaron Yacute -140 +KPX Lcaron Ydieresis -140 +KPX Lcaron quotedblright -140 +KPX Lcaron quoteright -160 +KPX Lcaron y -30 +KPX Lcaron yacute -30 +KPX Lcaron ydieresis -30 +KPX Lcommaaccent T -110 +KPX Lcommaaccent Tcaron -110 +KPX Lcommaaccent Tcommaaccent -110 +KPX Lcommaaccent V -110 +KPX Lcommaaccent W -70 +KPX Lcommaaccent Y -140 +KPX Lcommaaccent Yacute -140 +KPX Lcommaaccent Ydieresis -140 +KPX Lcommaaccent quotedblright -140 +KPX Lcommaaccent quoteright -160 +KPX Lcommaaccent y -30 +KPX Lcommaaccent yacute -30 +KPX Lcommaaccent ydieresis -30 +KPX Lslash T -110 +KPX Lslash Tcaron -110 +KPX Lslash Tcommaaccent -110 +KPX Lslash V -110 +KPX Lslash W -70 +KPX Lslash Y -140 +KPX Lslash Yacute -140 +KPX Lslash Ydieresis -140 +KPX Lslash quotedblright -140 +KPX Lslash quoteright -160 +KPX Lslash y -30 +KPX Lslash yacute -30 +KPX Lslash ydieresis -30 +KPX O A -20 +KPX O Aacute -20 +KPX O Abreve -20 +KPX O Acircumflex -20 +KPX O Adieresis -20 +KPX O Agrave -20 +KPX O Amacron -20 +KPX O Aogonek -20 +KPX O Aring -20 +KPX O Atilde -20 +KPX O T -40 +KPX O Tcaron -40 +KPX O Tcommaaccent -40 +KPX O V -50 +KPX O W -30 +KPX O X -60 +KPX O Y -70 +KPX O Yacute -70 +KPX O Ydieresis -70 +KPX O comma -40 +KPX O period -40 +KPX Oacute A -20 +KPX Oacute Aacute -20 +KPX Oacute Abreve -20 +KPX Oacute Acircumflex -20 +KPX Oacute Adieresis -20 +KPX Oacute Agrave -20 +KPX Oacute Amacron -20 +KPX Oacute Aogonek -20 +KPX Oacute Aring -20 +KPX Oacute Atilde -20 +KPX Oacute T -40 +KPX Oacute Tcaron -40 +KPX Oacute Tcommaaccent -40 +KPX Oacute V -50 +KPX Oacute W -30 +KPX Oacute X -60 +KPX Oacute Y -70 +KPX Oacute Yacute -70 +KPX Oacute Ydieresis -70 +KPX Oacute comma -40 +KPX Oacute period -40 +KPX Ocircumflex A -20 +KPX Ocircumflex Aacute -20 +KPX Ocircumflex Abreve -20 +KPX Ocircumflex Acircumflex -20 +KPX Ocircumflex Adieresis -20 +KPX Ocircumflex Agrave -20 +KPX Ocircumflex Amacron -20 +KPX Ocircumflex Aogonek -20 +KPX Ocircumflex Aring -20 +KPX Ocircumflex Atilde -20 +KPX Ocircumflex T -40 +KPX Ocircumflex Tcaron -40 +KPX Ocircumflex Tcommaaccent -40 +KPX Ocircumflex V -50 +KPX Ocircumflex W -30 +KPX Ocircumflex X -60 +KPX Ocircumflex Y -70 +KPX Ocircumflex Yacute -70 +KPX Ocircumflex Ydieresis -70 +KPX Ocircumflex comma -40 +KPX Ocircumflex period -40 +KPX Odieresis A -20 +KPX Odieresis Aacute -20 +KPX Odieresis Abreve -20 +KPX Odieresis Acircumflex -20 +KPX Odieresis Adieresis -20 +KPX Odieresis Agrave -20 +KPX Odieresis Amacron -20 +KPX Odieresis Aogonek -20 +KPX Odieresis Aring -20 +KPX Odieresis Atilde -20 +KPX Odieresis T -40 +KPX Odieresis Tcaron -40 +KPX Odieresis Tcommaaccent -40 +KPX Odieresis V -50 +KPX Odieresis W -30 +KPX Odieresis X -60 +KPX Odieresis Y -70 +KPX Odieresis Yacute -70 +KPX Odieresis Ydieresis -70 +KPX Odieresis comma -40 +KPX Odieresis period -40 +KPX Ograve A -20 +KPX Ograve Aacute -20 +KPX Ograve Abreve -20 +KPX Ograve Acircumflex -20 +KPX Ograve Adieresis -20 +KPX Ograve Agrave -20 +KPX Ograve Amacron -20 +KPX Ograve Aogonek -20 +KPX Ograve Aring -20 +KPX Ograve Atilde -20 +KPX Ograve T -40 +KPX Ograve Tcaron -40 +KPX Ograve Tcommaaccent -40 +KPX Ograve V -50 +KPX Ograve W -30 +KPX Ograve X -60 +KPX Ograve Y -70 +KPX Ograve Yacute -70 +KPX Ograve Ydieresis -70 +KPX Ograve comma -40 +KPX Ograve period -40 +KPX Ohungarumlaut A -20 +KPX Ohungarumlaut Aacute -20 +KPX Ohungarumlaut Abreve -20 +KPX Ohungarumlaut Acircumflex -20 +KPX Ohungarumlaut Adieresis -20 +KPX Ohungarumlaut Agrave -20 +KPX Ohungarumlaut Amacron -20 +KPX Ohungarumlaut Aogonek -20 +KPX Ohungarumlaut Aring -20 +KPX Ohungarumlaut Atilde -20 +KPX Ohungarumlaut T -40 +KPX Ohungarumlaut Tcaron -40 +KPX Ohungarumlaut Tcommaaccent -40 +KPX Ohungarumlaut V -50 +KPX Ohungarumlaut W -30 +KPX Ohungarumlaut X -60 +KPX Ohungarumlaut Y -70 +KPX Ohungarumlaut Yacute -70 +KPX Ohungarumlaut Ydieresis -70 +KPX Ohungarumlaut comma -40 +KPX Ohungarumlaut period -40 +KPX Omacron A -20 +KPX Omacron Aacute -20 +KPX Omacron Abreve -20 +KPX Omacron Acircumflex -20 +KPX Omacron Adieresis -20 +KPX Omacron Agrave -20 +KPX Omacron Amacron -20 +KPX Omacron Aogonek -20 +KPX Omacron Aring -20 +KPX Omacron Atilde -20 +KPX Omacron T -40 +KPX Omacron Tcaron -40 +KPX Omacron Tcommaaccent -40 +KPX Omacron V -50 +KPX Omacron W -30 +KPX Omacron X -60 +KPX Omacron Y -70 +KPX Omacron Yacute -70 +KPX Omacron Ydieresis -70 +KPX Omacron comma -40 +KPX Omacron period -40 +KPX Oslash A -20 +KPX Oslash Aacute -20 +KPX Oslash Abreve -20 +KPX Oslash Acircumflex -20 +KPX Oslash Adieresis -20 +KPX Oslash Agrave -20 +KPX Oslash Amacron -20 +KPX Oslash Aogonek -20 +KPX Oslash Aring -20 +KPX Oslash Atilde -20 +KPX Oslash T -40 +KPX Oslash Tcaron -40 +KPX Oslash Tcommaaccent -40 +KPX Oslash V -50 +KPX Oslash W -30 +KPX Oslash X -60 +KPX Oslash Y -70 +KPX Oslash Yacute -70 +KPX Oslash Ydieresis -70 +KPX Oslash comma -40 +KPX Oslash period -40 +KPX Otilde A -20 +KPX Otilde Aacute -20 +KPX Otilde Abreve -20 +KPX Otilde Acircumflex -20 +KPX Otilde Adieresis -20 +KPX Otilde Agrave -20 +KPX Otilde Amacron -20 +KPX Otilde Aogonek -20 +KPX Otilde Aring -20 +KPX Otilde Atilde -20 +KPX Otilde T -40 +KPX Otilde Tcaron -40 +KPX Otilde Tcommaaccent -40 +KPX Otilde V -50 +KPX Otilde W -30 +KPX Otilde X -60 +KPX Otilde Y -70 +KPX Otilde Yacute -70 +KPX Otilde Ydieresis -70 +KPX Otilde comma -40 +KPX Otilde period -40 +KPX P A -120 +KPX P Aacute -120 +KPX P Abreve -120 +KPX P Acircumflex -120 +KPX P Adieresis -120 +KPX P Agrave -120 +KPX P Amacron -120 +KPX P Aogonek -120 +KPX P Aring -120 +KPX P Atilde -120 +KPX P a -40 +KPX P aacute -40 +KPX P abreve -40 +KPX P acircumflex -40 +KPX P adieresis -40 +KPX P agrave -40 +KPX P amacron -40 +KPX P aogonek -40 +KPX P aring -40 +KPX P atilde -40 +KPX P comma -180 +KPX P e -50 +KPX P eacute -50 +KPX P ecaron -50 +KPX P ecircumflex -50 +KPX P edieresis -50 +KPX P edotaccent -50 +KPX P egrave -50 +KPX P emacron -50 +KPX P eogonek -50 +KPX P o -50 +KPX P oacute -50 +KPX P ocircumflex -50 +KPX P odieresis -50 +KPX P ograve -50 +KPX P ohungarumlaut -50 +KPX P omacron -50 +KPX P oslash -50 +KPX P otilde -50 +KPX P period -180 +KPX Q U -10 +KPX Q Uacute -10 +KPX Q Ucircumflex -10 +KPX Q Udieresis -10 +KPX Q Ugrave -10 +KPX Q Uhungarumlaut -10 +KPX Q Umacron -10 +KPX Q Uogonek -10 +KPX Q Uring -10 +KPX R O -20 +KPX R Oacute -20 +KPX R Ocircumflex -20 +KPX R Odieresis -20 +KPX R Ograve -20 +KPX R Ohungarumlaut -20 +KPX R Omacron -20 +KPX R Oslash -20 +KPX R Otilde -20 +KPX R T -30 +KPX R Tcaron -30 +KPX R Tcommaaccent -30 +KPX R U -40 +KPX R Uacute -40 +KPX R Ucircumflex -40 +KPX R Udieresis -40 +KPX R Ugrave -40 +KPX R Uhungarumlaut -40 +KPX R Umacron -40 +KPX R Uogonek -40 +KPX R Uring -40 +KPX R V -50 +KPX R W -30 +KPX R Y -50 +KPX R Yacute -50 +KPX R Ydieresis -50 +KPX Racute O -20 +KPX Racute Oacute -20 +KPX Racute Ocircumflex -20 +KPX Racute Odieresis -20 +KPX Racute Ograve -20 +KPX Racute Ohungarumlaut -20 +KPX Racute Omacron -20 +KPX Racute Oslash -20 +KPX Racute Otilde -20 +KPX Racute T -30 +KPX Racute Tcaron -30 +KPX Racute Tcommaaccent -30 +KPX Racute U -40 +KPX Racute Uacute -40 +KPX Racute Ucircumflex -40 +KPX Racute Udieresis -40 +KPX Racute Ugrave -40 +KPX Racute Uhungarumlaut -40 +KPX Racute Umacron -40 +KPX Racute Uogonek -40 +KPX Racute Uring -40 +KPX Racute V -50 +KPX Racute W -30 +KPX Racute Y -50 +KPX Racute Yacute -50 +KPX Racute Ydieresis -50 +KPX Rcaron O -20 +KPX Rcaron Oacute -20 +KPX Rcaron Ocircumflex -20 +KPX Rcaron Odieresis -20 +KPX Rcaron Ograve -20 +KPX Rcaron Ohungarumlaut -20 +KPX Rcaron Omacron -20 +KPX Rcaron Oslash -20 +KPX Rcaron Otilde -20 +KPX Rcaron T -30 +KPX Rcaron Tcaron -30 +KPX Rcaron Tcommaaccent -30 +KPX Rcaron U -40 +KPX Rcaron Uacute -40 +KPX Rcaron Ucircumflex -40 +KPX Rcaron Udieresis -40 +KPX Rcaron Ugrave -40 +KPX Rcaron Uhungarumlaut -40 +KPX Rcaron Umacron -40 +KPX Rcaron Uogonek -40 +KPX Rcaron Uring -40 +KPX Rcaron V -50 +KPX Rcaron W -30 +KPX Rcaron Y -50 +KPX Rcaron Yacute -50 +KPX Rcaron Ydieresis -50 +KPX Rcommaaccent O -20 +KPX Rcommaaccent Oacute -20 +KPX Rcommaaccent Ocircumflex -20 +KPX Rcommaaccent Odieresis -20 +KPX Rcommaaccent Ograve -20 +KPX Rcommaaccent Ohungarumlaut -20 +KPX Rcommaaccent Omacron -20 +KPX Rcommaaccent Oslash -20 +KPX Rcommaaccent Otilde -20 +KPX Rcommaaccent T -30 +KPX Rcommaaccent Tcaron -30 +KPX Rcommaaccent Tcommaaccent -30 +KPX Rcommaaccent U -40 +KPX Rcommaaccent Uacute -40 +KPX Rcommaaccent Ucircumflex -40 +KPX Rcommaaccent Udieresis -40 +KPX Rcommaaccent Ugrave -40 +KPX Rcommaaccent Uhungarumlaut -40 +KPX Rcommaaccent Umacron -40 +KPX Rcommaaccent Uogonek -40 +KPX Rcommaaccent Uring -40 +KPX Rcommaaccent V -50 +KPX Rcommaaccent W -30 +KPX Rcommaaccent Y -50 +KPX Rcommaaccent Yacute -50 +KPX Rcommaaccent Ydieresis -50 +KPX S comma -20 +KPX S period -20 +KPX Sacute comma -20 +KPX Sacute period -20 +KPX Scaron comma -20 +KPX Scaron period -20 +KPX Scedilla comma -20 +KPX Scedilla period -20 +KPX Scommaaccent comma -20 +KPX Scommaaccent period -20 +KPX T A -120 +KPX T Aacute -120 +KPX T Abreve -120 +KPX T Acircumflex -120 +KPX T Adieresis -120 +KPX T Agrave -120 +KPX T Amacron -120 +KPX T Aogonek -120 +KPX T Aring -120 +KPX T Atilde -120 +KPX T O -40 +KPX T Oacute -40 +KPX T Ocircumflex -40 +KPX T Odieresis -40 +KPX T Ograve -40 +KPX T Ohungarumlaut -40 +KPX T Omacron -40 +KPX T Oslash -40 +KPX T Otilde -40 +KPX T a -120 +KPX T aacute -120 +KPX T abreve -60 +KPX T acircumflex -120 +KPX T adieresis -120 +KPX T agrave -120 +KPX T amacron -60 +KPX T aogonek -120 +KPX T aring -120 +KPX T atilde -60 +KPX T colon -20 +KPX T comma -120 +KPX T e -120 +KPX T eacute -120 +KPX T ecaron -120 +KPX T ecircumflex -120 +KPX T edieresis -120 +KPX T edotaccent -120 +KPX T egrave -60 +KPX T emacron -60 +KPX T eogonek -120 +KPX T hyphen -140 +KPX T o -120 +KPX T oacute -120 +KPX T ocircumflex -120 +KPX T odieresis -120 +KPX T ograve -120 +KPX T ohungarumlaut -120 +KPX T omacron -60 +KPX T oslash -120 +KPX T otilde -60 +KPX T period -120 +KPX T r -120 +KPX T racute -120 +KPX T rcaron -120 +KPX T rcommaaccent -120 +KPX T semicolon -20 +KPX T u -120 +KPX T uacute -120 +KPX T ucircumflex -120 +KPX T udieresis -120 +KPX T ugrave -120 +KPX T uhungarumlaut -120 +KPX T umacron -60 +KPX T uogonek -120 +KPX T uring -120 +KPX T w -120 +KPX T y -120 +KPX T yacute -120 +KPX T ydieresis -60 +KPX Tcaron A -120 +KPX Tcaron Aacute -120 +KPX Tcaron Abreve -120 +KPX Tcaron Acircumflex -120 +KPX Tcaron Adieresis -120 +KPX Tcaron Agrave -120 +KPX Tcaron Amacron -120 +KPX Tcaron Aogonek -120 +KPX Tcaron Aring -120 +KPX Tcaron Atilde -120 +KPX Tcaron O -40 +KPX Tcaron Oacute -40 +KPX Tcaron Ocircumflex -40 +KPX Tcaron Odieresis -40 +KPX Tcaron Ograve -40 +KPX Tcaron Ohungarumlaut -40 +KPX Tcaron Omacron -40 +KPX Tcaron Oslash -40 +KPX Tcaron Otilde -40 +KPX Tcaron a -120 +KPX Tcaron aacute -120 +KPX Tcaron abreve -60 +KPX Tcaron acircumflex -120 +KPX Tcaron adieresis -120 +KPX Tcaron agrave -120 +KPX Tcaron amacron -60 +KPX Tcaron aogonek -120 +KPX Tcaron aring -120 +KPX Tcaron atilde -60 +KPX Tcaron colon -20 +KPX Tcaron comma -120 +KPX Tcaron e -120 +KPX Tcaron eacute -120 +KPX Tcaron ecaron -120 +KPX Tcaron ecircumflex -120 +KPX Tcaron edieresis -120 +KPX Tcaron edotaccent -120 +KPX Tcaron egrave -60 +KPX Tcaron emacron -60 +KPX Tcaron eogonek -120 +KPX Tcaron hyphen -140 +KPX Tcaron o -120 +KPX Tcaron oacute -120 +KPX Tcaron ocircumflex -120 +KPX Tcaron odieresis -120 +KPX Tcaron ograve -120 +KPX Tcaron ohungarumlaut -120 +KPX Tcaron omacron -60 +KPX Tcaron oslash -120 +KPX Tcaron otilde -60 +KPX Tcaron period -120 +KPX Tcaron r -120 +KPX Tcaron racute -120 +KPX Tcaron rcaron -120 +KPX Tcaron rcommaaccent -120 +KPX Tcaron semicolon -20 +KPX Tcaron u -120 +KPX Tcaron uacute -120 +KPX Tcaron ucircumflex -120 +KPX Tcaron udieresis -120 +KPX Tcaron ugrave -120 +KPX Tcaron uhungarumlaut -120 +KPX Tcaron umacron -60 +KPX Tcaron uogonek -120 +KPX Tcaron uring -120 +KPX Tcaron w -120 +KPX Tcaron y -120 +KPX Tcaron yacute -120 +KPX Tcaron ydieresis -60 +KPX Tcommaaccent A -120 +KPX Tcommaaccent Aacute -120 +KPX Tcommaaccent Abreve -120 +KPX Tcommaaccent Acircumflex -120 +KPX Tcommaaccent Adieresis -120 +KPX Tcommaaccent Agrave -120 +KPX Tcommaaccent Amacron -120 +KPX Tcommaaccent Aogonek -120 +KPX Tcommaaccent Aring -120 +KPX Tcommaaccent Atilde -120 +KPX Tcommaaccent O -40 +KPX Tcommaaccent Oacute -40 +KPX Tcommaaccent Ocircumflex -40 +KPX Tcommaaccent Odieresis -40 +KPX Tcommaaccent Ograve -40 +KPX Tcommaaccent Ohungarumlaut -40 +KPX Tcommaaccent Omacron -40 +KPX Tcommaaccent Oslash -40 +KPX Tcommaaccent Otilde -40 +KPX Tcommaaccent a -120 +KPX Tcommaaccent aacute -120 +KPX Tcommaaccent abreve -60 +KPX Tcommaaccent acircumflex -120 +KPX Tcommaaccent adieresis -120 +KPX Tcommaaccent agrave -120 +KPX Tcommaaccent amacron -60 +KPX Tcommaaccent aogonek -120 +KPX Tcommaaccent aring -120 +KPX Tcommaaccent atilde -60 +KPX Tcommaaccent colon -20 +KPX Tcommaaccent comma -120 +KPX Tcommaaccent e -120 +KPX Tcommaaccent eacute -120 +KPX Tcommaaccent ecaron -120 +KPX Tcommaaccent ecircumflex -120 +KPX Tcommaaccent edieresis -120 +KPX Tcommaaccent edotaccent -120 +KPX Tcommaaccent egrave -60 +KPX Tcommaaccent emacron -60 +KPX Tcommaaccent eogonek -120 +KPX Tcommaaccent hyphen -140 +KPX Tcommaaccent o -120 +KPX Tcommaaccent oacute -120 +KPX Tcommaaccent ocircumflex -120 +KPX Tcommaaccent odieresis -120 +KPX Tcommaaccent ograve -120 +KPX Tcommaaccent ohungarumlaut -120 +KPX Tcommaaccent omacron -60 +KPX Tcommaaccent oslash -120 +KPX Tcommaaccent otilde -60 +KPX Tcommaaccent period -120 +KPX Tcommaaccent r -120 +KPX Tcommaaccent racute -120 +KPX Tcommaaccent rcaron -120 +KPX Tcommaaccent rcommaaccent -120 +KPX Tcommaaccent semicolon -20 +KPX Tcommaaccent u -120 +KPX Tcommaaccent uacute -120 +KPX Tcommaaccent ucircumflex -120 +KPX Tcommaaccent udieresis -120 +KPX Tcommaaccent ugrave -120 +KPX Tcommaaccent uhungarumlaut -120 +KPX Tcommaaccent umacron -60 +KPX Tcommaaccent uogonek -120 +KPX Tcommaaccent uring -120 +KPX Tcommaaccent w -120 +KPX Tcommaaccent y -120 +KPX Tcommaaccent yacute -120 +KPX Tcommaaccent ydieresis -60 +KPX U A -40 +KPX U Aacute -40 +KPX U Abreve -40 +KPX U Acircumflex -40 +KPX U Adieresis -40 +KPX U Agrave -40 +KPX U Amacron -40 +KPX U Aogonek -40 +KPX U Aring -40 +KPX U Atilde -40 +KPX U comma -40 +KPX U period -40 +KPX Uacute A -40 +KPX Uacute Aacute -40 +KPX Uacute Abreve -40 +KPX Uacute Acircumflex -40 +KPX Uacute Adieresis -40 +KPX Uacute Agrave -40 +KPX Uacute Amacron -40 +KPX Uacute Aogonek -40 +KPX Uacute Aring -40 +KPX Uacute Atilde -40 +KPX Uacute comma -40 +KPX Uacute period -40 +KPX Ucircumflex A -40 +KPX Ucircumflex Aacute -40 +KPX Ucircumflex Abreve -40 +KPX Ucircumflex Acircumflex -40 +KPX Ucircumflex Adieresis -40 +KPX Ucircumflex Agrave -40 +KPX Ucircumflex Amacron -40 +KPX Ucircumflex Aogonek -40 +KPX Ucircumflex Aring -40 +KPX Ucircumflex Atilde -40 +KPX Ucircumflex comma -40 +KPX Ucircumflex period -40 +KPX Udieresis A -40 +KPX Udieresis Aacute -40 +KPX Udieresis Abreve -40 +KPX Udieresis Acircumflex -40 +KPX Udieresis Adieresis -40 +KPX Udieresis Agrave -40 +KPX Udieresis Amacron -40 +KPX Udieresis Aogonek -40 +KPX Udieresis Aring -40 +KPX Udieresis Atilde -40 +KPX Udieresis comma -40 +KPX Udieresis period -40 +KPX Ugrave A -40 +KPX Ugrave Aacute -40 +KPX Ugrave Abreve -40 +KPX Ugrave Acircumflex -40 +KPX Ugrave Adieresis -40 +KPX Ugrave Agrave -40 +KPX Ugrave Amacron -40 +KPX Ugrave Aogonek -40 +KPX Ugrave Aring -40 +KPX Ugrave Atilde -40 +KPX Ugrave comma -40 +KPX Ugrave period -40 +KPX Uhungarumlaut A -40 +KPX Uhungarumlaut Aacute -40 +KPX Uhungarumlaut Abreve -40 +KPX Uhungarumlaut Acircumflex -40 +KPX Uhungarumlaut Adieresis -40 +KPX Uhungarumlaut Agrave -40 +KPX Uhungarumlaut Amacron -40 +KPX Uhungarumlaut Aogonek -40 +KPX Uhungarumlaut Aring -40 +KPX Uhungarumlaut Atilde -40 +KPX Uhungarumlaut comma -40 +KPX Uhungarumlaut period -40 +KPX Umacron A -40 +KPX Umacron Aacute -40 +KPX Umacron Abreve -40 +KPX Umacron Acircumflex -40 +KPX Umacron Adieresis -40 +KPX Umacron Agrave -40 +KPX Umacron Amacron -40 +KPX Umacron Aogonek -40 +KPX Umacron Aring -40 +KPX Umacron Atilde -40 +KPX Umacron comma -40 +KPX Umacron period -40 +KPX Uogonek A -40 +KPX Uogonek Aacute -40 +KPX Uogonek Abreve -40 +KPX Uogonek Acircumflex -40 +KPX Uogonek Adieresis -40 +KPX Uogonek Agrave -40 +KPX Uogonek Amacron -40 +KPX Uogonek Aogonek -40 +KPX Uogonek Aring -40 +KPX Uogonek Atilde -40 +KPX Uogonek comma -40 +KPX Uogonek period -40 +KPX Uring A -40 +KPX Uring Aacute -40 +KPX Uring Abreve -40 +KPX Uring Acircumflex -40 +KPX Uring Adieresis -40 +KPX Uring Agrave -40 +KPX Uring Amacron -40 +KPX Uring Aogonek -40 +KPX Uring Aring -40 +KPX Uring Atilde -40 +KPX Uring comma -40 +KPX Uring period -40 +KPX V A -80 +KPX V Aacute -80 +KPX V Abreve -80 +KPX V Acircumflex -80 +KPX V Adieresis -80 +KPX V Agrave -80 +KPX V Amacron -80 +KPX V Aogonek -80 +KPX V Aring -80 +KPX V Atilde -80 +KPX V G -40 +KPX V Gbreve -40 +KPX V Gcommaaccent -40 +KPX V O -40 +KPX V Oacute -40 +KPX V Ocircumflex -40 +KPX V Odieresis -40 +KPX V Ograve -40 +KPX V Ohungarumlaut -40 +KPX V Omacron -40 +KPX V Oslash -40 +KPX V Otilde -40 +KPX V a -70 +KPX V aacute -70 +KPX V abreve -70 +KPX V acircumflex -70 +KPX V adieresis -70 +KPX V agrave -70 +KPX V amacron -70 +KPX V aogonek -70 +KPX V aring -70 +KPX V atilde -70 +KPX V colon -40 +KPX V comma -125 +KPX V e -80 +KPX V eacute -80 +KPX V ecaron -80 +KPX V ecircumflex -80 +KPX V edieresis -80 +KPX V edotaccent -80 +KPX V egrave -80 +KPX V emacron -80 +KPX V eogonek -80 +KPX V hyphen -80 +KPX V o -80 +KPX V oacute -80 +KPX V ocircumflex -80 +KPX V odieresis -80 +KPX V ograve -80 +KPX V ohungarumlaut -80 +KPX V omacron -80 +KPX V oslash -80 +KPX V otilde -80 +KPX V period -125 +KPX V semicolon -40 +KPX V u -70 +KPX V uacute -70 +KPX V ucircumflex -70 +KPX V udieresis -70 +KPX V ugrave -70 +KPX V uhungarumlaut -70 +KPX V umacron -70 +KPX V uogonek -70 +KPX V uring -70 +KPX W A -50 +KPX W Aacute -50 +KPX W Abreve -50 +KPX W Acircumflex -50 +KPX W Adieresis -50 +KPX W Agrave -50 +KPX W Amacron -50 +KPX W Aogonek -50 +KPX W Aring -50 +KPX W Atilde -50 +KPX W O -20 +KPX W Oacute -20 +KPX W Ocircumflex -20 +KPX W Odieresis -20 +KPX W Ograve -20 +KPX W Ohungarumlaut -20 +KPX W Omacron -20 +KPX W Oslash -20 +KPX W Otilde -20 +KPX W a -40 +KPX W aacute -40 +KPX W abreve -40 +KPX W acircumflex -40 +KPX W adieresis -40 +KPX W agrave -40 +KPX W amacron -40 +KPX W aogonek -40 +KPX W aring -40 +KPX W atilde -40 +KPX W comma -80 +KPX W e -30 +KPX W eacute -30 +KPX W ecaron -30 +KPX W ecircumflex -30 +KPX W edieresis -30 +KPX W edotaccent -30 +KPX W egrave -30 +KPX W emacron -30 +KPX W eogonek -30 +KPX W hyphen -40 +KPX W o -30 +KPX W oacute -30 +KPX W ocircumflex -30 +KPX W odieresis -30 +KPX W ograve -30 +KPX W ohungarumlaut -30 +KPX W omacron -30 +KPX W oslash -30 +KPX W otilde -30 +KPX W period -80 +KPX W u -30 +KPX W uacute -30 +KPX W ucircumflex -30 +KPX W udieresis -30 +KPX W ugrave -30 +KPX W uhungarumlaut -30 +KPX W umacron -30 +KPX W uogonek -30 +KPX W uring -30 +KPX W y -20 +KPX W yacute -20 +KPX W ydieresis -20 +KPX Y A -110 +KPX Y Aacute -110 +KPX Y Abreve -110 +KPX Y Acircumflex -110 +KPX Y Adieresis -110 +KPX Y Agrave -110 +KPX Y Amacron -110 +KPX Y Aogonek -110 +KPX Y Aring -110 +KPX Y Atilde -110 +KPX Y O -85 +KPX Y Oacute -85 +KPX Y Ocircumflex -85 +KPX Y Odieresis -85 +KPX Y Ograve -85 +KPX Y Ohungarumlaut -85 +KPX Y Omacron -85 +KPX Y Oslash -85 +KPX Y Otilde -85 +KPX Y a -140 +KPX Y aacute -140 +KPX Y abreve -70 +KPX Y acircumflex -140 +KPX Y adieresis -140 +KPX Y agrave -140 +KPX Y amacron -70 +KPX Y aogonek -140 +KPX Y aring -140 +KPX Y atilde -140 +KPX Y colon -60 +KPX Y comma -140 +KPX Y e -140 +KPX Y eacute -140 +KPX Y ecaron -140 +KPX Y ecircumflex -140 +KPX Y edieresis -140 +KPX Y edotaccent -140 +KPX Y egrave -140 +KPX Y emacron -70 +KPX Y eogonek -140 +KPX Y hyphen -140 +KPX Y i -20 +KPX Y iacute -20 +KPX Y iogonek -20 +KPX Y o -140 +KPX Y oacute -140 +KPX Y ocircumflex -140 +KPX Y odieresis -140 +KPX Y ograve -140 +KPX Y ohungarumlaut -140 +KPX Y omacron -140 +KPX Y oslash -140 +KPX Y otilde -140 +KPX Y period -140 +KPX Y semicolon -60 +KPX Y u -110 +KPX Y uacute -110 +KPX Y ucircumflex -110 +KPX Y udieresis -110 +KPX Y ugrave -110 +KPX Y uhungarumlaut -110 +KPX Y umacron -110 +KPX Y uogonek -110 +KPX Y uring -110 +KPX Yacute A -110 +KPX Yacute Aacute -110 +KPX Yacute Abreve -110 +KPX Yacute Acircumflex -110 +KPX Yacute Adieresis -110 +KPX Yacute Agrave -110 +KPX Yacute Amacron -110 +KPX Yacute Aogonek -110 +KPX Yacute Aring -110 +KPX Yacute Atilde -110 +KPX Yacute O -85 +KPX Yacute Oacute -85 +KPX Yacute Ocircumflex -85 +KPX Yacute Odieresis -85 +KPX Yacute Ograve -85 +KPX Yacute Ohungarumlaut -85 +KPX Yacute Omacron -85 +KPX Yacute Oslash -85 +KPX Yacute Otilde -85 +KPX Yacute a -140 +KPX Yacute aacute -140 +KPX Yacute abreve -70 +KPX Yacute acircumflex -140 +KPX Yacute adieresis -140 +KPX Yacute agrave -140 +KPX Yacute amacron -70 +KPX Yacute aogonek -140 +KPX Yacute aring -140 +KPX Yacute atilde -70 +KPX Yacute colon -60 +KPX Yacute comma -140 +KPX Yacute e -140 +KPX Yacute eacute -140 +KPX Yacute ecaron -140 +KPX Yacute ecircumflex -140 +KPX Yacute edieresis -140 +KPX Yacute edotaccent -140 +KPX Yacute egrave -140 +KPX Yacute emacron -70 +KPX Yacute eogonek -140 +KPX Yacute hyphen -140 +KPX Yacute i -20 +KPX Yacute iacute -20 +KPX Yacute iogonek -20 +KPX Yacute o -140 +KPX Yacute oacute -140 +KPX Yacute ocircumflex -140 +KPX Yacute odieresis -140 +KPX Yacute ograve -140 +KPX Yacute ohungarumlaut -140 +KPX Yacute omacron -70 +KPX Yacute oslash -140 +KPX Yacute otilde -140 +KPX Yacute period -140 +KPX Yacute semicolon -60 +KPX Yacute u -110 +KPX Yacute uacute -110 +KPX Yacute ucircumflex -110 +KPX Yacute udieresis -110 +KPX Yacute ugrave -110 +KPX Yacute uhungarumlaut -110 +KPX Yacute umacron -110 +KPX Yacute uogonek -110 +KPX Yacute uring -110 +KPX Ydieresis A -110 +KPX Ydieresis Aacute -110 +KPX Ydieresis Abreve -110 +KPX Ydieresis Acircumflex -110 +KPX Ydieresis Adieresis -110 +KPX Ydieresis Agrave -110 +KPX Ydieresis Amacron -110 +KPX Ydieresis Aogonek -110 +KPX Ydieresis Aring -110 +KPX Ydieresis Atilde -110 +KPX Ydieresis O -85 +KPX Ydieresis Oacute -85 +KPX Ydieresis Ocircumflex -85 +KPX Ydieresis Odieresis -85 +KPX Ydieresis Ograve -85 +KPX Ydieresis Ohungarumlaut -85 +KPX Ydieresis Omacron -85 +KPX Ydieresis Oslash -85 +KPX Ydieresis Otilde -85 +KPX Ydieresis a -140 +KPX Ydieresis aacute -140 +KPX Ydieresis abreve -70 +KPX Ydieresis acircumflex -140 +KPX Ydieresis adieresis -140 +KPX Ydieresis agrave -140 +KPX Ydieresis amacron -70 +KPX Ydieresis aogonek -140 +KPX Ydieresis aring -140 +KPX Ydieresis atilde -70 +KPX Ydieresis colon -60 +KPX Ydieresis comma -140 +KPX Ydieresis e -140 +KPX Ydieresis eacute -140 +KPX Ydieresis ecaron -140 +KPX Ydieresis ecircumflex -140 +KPX Ydieresis edieresis -140 +KPX Ydieresis edotaccent -140 +KPX Ydieresis egrave -140 +KPX Ydieresis emacron -70 +KPX Ydieresis eogonek -140 +KPX Ydieresis hyphen -140 +KPX Ydieresis i -20 +KPX Ydieresis iacute -20 +KPX Ydieresis iogonek -20 +KPX Ydieresis o -140 +KPX Ydieresis oacute -140 +KPX Ydieresis ocircumflex -140 +KPX Ydieresis odieresis -140 +KPX Ydieresis ograve -140 +KPX Ydieresis ohungarumlaut -140 +KPX Ydieresis omacron -140 +KPX Ydieresis oslash -140 +KPX Ydieresis otilde -140 +KPX Ydieresis period -140 +KPX Ydieresis semicolon -60 +KPX Ydieresis u -110 +KPX Ydieresis uacute -110 +KPX Ydieresis ucircumflex -110 +KPX Ydieresis udieresis -110 +KPX Ydieresis ugrave -110 +KPX Ydieresis uhungarumlaut -110 +KPX Ydieresis umacron -110 +KPX Ydieresis uogonek -110 +KPX Ydieresis uring -110 +KPX a v -20 +KPX a w -20 +KPX a y -30 +KPX a yacute -30 +KPX a ydieresis -30 +KPX aacute v -20 +KPX aacute w -20 +KPX aacute y -30 +KPX aacute yacute -30 +KPX aacute ydieresis -30 +KPX abreve v -20 +KPX abreve w -20 +KPX abreve y -30 +KPX abreve yacute -30 +KPX abreve ydieresis -30 +KPX acircumflex v -20 +KPX acircumflex w -20 +KPX acircumflex y -30 +KPX acircumflex yacute -30 +KPX acircumflex ydieresis -30 +KPX adieresis v -20 +KPX adieresis w -20 +KPX adieresis y -30 +KPX adieresis yacute -30 +KPX adieresis ydieresis -30 +KPX agrave v -20 +KPX agrave w -20 +KPX agrave y -30 +KPX agrave yacute -30 +KPX agrave ydieresis -30 +KPX amacron v -20 +KPX amacron w -20 +KPX amacron y -30 +KPX amacron yacute -30 +KPX amacron ydieresis -30 +KPX aogonek v -20 +KPX aogonek w -20 +KPX aogonek y -30 +KPX aogonek yacute -30 +KPX aogonek ydieresis -30 +KPX aring v -20 +KPX aring w -20 +KPX aring y -30 +KPX aring yacute -30 +KPX aring ydieresis -30 +KPX atilde v -20 +KPX atilde w -20 +KPX atilde y -30 +KPX atilde yacute -30 +KPX atilde ydieresis -30 +KPX b b -10 +KPX b comma -40 +KPX b l -20 +KPX b lacute -20 +KPX b lcommaaccent -20 +KPX b lslash -20 +KPX b period -40 +KPX b u -20 +KPX b uacute -20 +KPX b ucircumflex -20 +KPX b udieresis -20 +KPX b ugrave -20 +KPX b uhungarumlaut -20 +KPX b umacron -20 +KPX b uogonek -20 +KPX b uring -20 +KPX b v -20 +KPX b y -20 +KPX b yacute -20 +KPX b ydieresis -20 +KPX c comma -15 +KPX c k -20 +KPX c kcommaaccent -20 +KPX cacute comma -15 +KPX cacute k -20 +KPX cacute kcommaaccent -20 +KPX ccaron comma -15 +KPX ccaron k -20 +KPX ccaron kcommaaccent -20 +KPX ccedilla comma -15 +KPX ccedilla k -20 +KPX ccedilla kcommaaccent -20 +KPX colon space -50 +KPX comma quotedblright -100 +KPX comma quoteright -100 +KPX e comma -15 +KPX e period -15 +KPX e v -30 +KPX e w -20 +KPX e x -30 +KPX e y -20 +KPX e yacute -20 +KPX e ydieresis -20 +KPX eacute comma -15 +KPX eacute period -15 +KPX eacute v -30 +KPX eacute w -20 +KPX eacute x -30 +KPX eacute y -20 +KPX eacute yacute -20 +KPX eacute ydieresis -20 +KPX ecaron comma -15 +KPX ecaron period -15 +KPX ecaron v -30 +KPX ecaron w -20 +KPX ecaron x -30 +KPX ecaron y -20 +KPX ecaron yacute -20 +KPX ecaron ydieresis -20 +KPX ecircumflex comma -15 +KPX ecircumflex period -15 +KPX ecircumflex v -30 +KPX ecircumflex w -20 +KPX ecircumflex x -30 +KPX ecircumflex y -20 +KPX ecircumflex yacute -20 +KPX ecircumflex ydieresis -20 +KPX edieresis comma -15 +KPX edieresis period -15 +KPX edieresis v -30 +KPX edieresis w -20 +KPX edieresis x -30 +KPX edieresis y -20 +KPX edieresis yacute -20 +KPX edieresis ydieresis -20 +KPX edotaccent comma -15 +KPX edotaccent period -15 +KPX edotaccent v -30 +KPX edotaccent w -20 +KPX edotaccent x -30 +KPX edotaccent y -20 +KPX edotaccent yacute -20 +KPX edotaccent ydieresis -20 +KPX egrave comma -15 +KPX egrave period -15 +KPX egrave v -30 +KPX egrave w -20 +KPX egrave x -30 +KPX egrave y -20 +KPX egrave yacute -20 +KPX egrave ydieresis -20 +KPX emacron comma -15 +KPX emacron period -15 +KPX emacron v -30 +KPX emacron w -20 +KPX emacron x -30 +KPX emacron y -20 +KPX emacron yacute -20 +KPX emacron ydieresis -20 +KPX eogonek comma -15 +KPX eogonek period -15 +KPX eogonek v -30 +KPX eogonek w -20 +KPX eogonek x -30 +KPX eogonek y -20 +KPX eogonek yacute -20 +KPX eogonek ydieresis -20 +KPX f a -30 +KPX f aacute -30 +KPX f abreve -30 +KPX f acircumflex -30 +KPX f adieresis -30 +KPX f agrave -30 +KPX f amacron -30 +KPX f aogonek -30 +KPX f aring -30 +KPX f atilde -30 +KPX f comma -30 +KPX f dotlessi -28 +KPX f e -30 +KPX f eacute -30 +KPX f ecaron -30 +KPX f ecircumflex -30 +KPX f edieresis -30 +KPX f edotaccent -30 +KPX f egrave -30 +KPX f emacron -30 +KPX f eogonek -30 +KPX f o -30 +KPX f oacute -30 +KPX f ocircumflex -30 +KPX f odieresis -30 +KPX f ograve -30 +KPX f ohungarumlaut -30 +KPX f omacron -30 +KPX f oslash -30 +KPX f otilde -30 +KPX f period -30 +KPX f quotedblright 60 +KPX f quoteright 50 +KPX g r -10 +KPX g racute -10 +KPX g rcaron -10 +KPX g rcommaaccent -10 +KPX gbreve r -10 +KPX gbreve racute -10 +KPX gbreve rcaron -10 +KPX gbreve rcommaaccent -10 +KPX gcommaaccent r -10 +KPX gcommaaccent racute -10 +KPX gcommaaccent rcaron -10 +KPX gcommaaccent rcommaaccent -10 +KPX h y -30 +KPX h yacute -30 +KPX h ydieresis -30 +KPX k e -20 +KPX k eacute -20 +KPX k ecaron -20 +KPX k ecircumflex -20 +KPX k edieresis -20 +KPX k edotaccent -20 +KPX k egrave -20 +KPX k emacron -20 +KPX k eogonek -20 +KPX k o -20 +KPX k oacute -20 +KPX k ocircumflex -20 +KPX k odieresis -20 +KPX k ograve -20 +KPX k ohungarumlaut -20 +KPX k omacron -20 +KPX k oslash -20 +KPX k otilde -20 +KPX kcommaaccent e -20 +KPX kcommaaccent eacute -20 +KPX kcommaaccent ecaron -20 +KPX kcommaaccent ecircumflex -20 +KPX kcommaaccent edieresis -20 +KPX kcommaaccent edotaccent -20 +KPX kcommaaccent egrave -20 +KPX kcommaaccent emacron -20 +KPX kcommaaccent eogonek -20 +KPX kcommaaccent o -20 +KPX kcommaaccent oacute -20 +KPX kcommaaccent ocircumflex -20 +KPX kcommaaccent odieresis -20 +KPX kcommaaccent ograve -20 +KPX kcommaaccent ohungarumlaut -20 +KPX kcommaaccent omacron -20 +KPX kcommaaccent oslash -20 +KPX kcommaaccent otilde -20 +KPX m u -10 +KPX m uacute -10 +KPX m ucircumflex -10 +KPX m udieresis -10 +KPX m ugrave -10 +KPX m uhungarumlaut -10 +KPX m umacron -10 +KPX m uogonek -10 +KPX m uring -10 +KPX m y -15 +KPX m yacute -15 +KPX m ydieresis -15 +KPX n u -10 +KPX n uacute -10 +KPX n ucircumflex -10 +KPX n udieresis -10 +KPX n ugrave -10 +KPX n uhungarumlaut -10 +KPX n umacron -10 +KPX n uogonek -10 +KPX n uring -10 +KPX n v -20 +KPX n y -15 +KPX n yacute -15 +KPX n ydieresis -15 +KPX nacute u -10 +KPX nacute uacute -10 +KPX nacute ucircumflex -10 +KPX nacute udieresis -10 +KPX nacute ugrave -10 +KPX nacute uhungarumlaut -10 +KPX nacute umacron -10 +KPX nacute uogonek -10 +KPX nacute uring -10 +KPX nacute v -20 +KPX nacute y -15 +KPX nacute yacute -15 +KPX nacute ydieresis -15 +KPX ncaron u -10 +KPX ncaron uacute -10 +KPX ncaron ucircumflex -10 +KPX ncaron udieresis -10 +KPX ncaron ugrave -10 +KPX ncaron uhungarumlaut -10 +KPX ncaron umacron -10 +KPX ncaron uogonek -10 +KPX ncaron uring -10 +KPX ncaron v -20 +KPX ncaron y -15 +KPX ncaron yacute -15 +KPX ncaron ydieresis -15 +KPX ncommaaccent u -10 +KPX ncommaaccent uacute -10 +KPX ncommaaccent ucircumflex -10 +KPX ncommaaccent udieresis -10 +KPX ncommaaccent ugrave -10 +KPX ncommaaccent uhungarumlaut -10 +KPX ncommaaccent umacron -10 +KPX ncommaaccent uogonek -10 +KPX ncommaaccent uring -10 +KPX ncommaaccent v -20 +KPX ncommaaccent y -15 +KPX ncommaaccent yacute -15 +KPX ncommaaccent ydieresis -15 +KPX ntilde u -10 +KPX ntilde uacute -10 +KPX ntilde ucircumflex -10 +KPX ntilde udieresis -10 +KPX ntilde ugrave -10 +KPX ntilde uhungarumlaut -10 +KPX ntilde umacron -10 +KPX ntilde uogonek -10 +KPX ntilde uring -10 +KPX ntilde v -20 +KPX ntilde y -15 +KPX ntilde yacute -15 +KPX ntilde ydieresis -15 +KPX o comma -40 +KPX o period -40 +KPX o v -15 +KPX o w -15 +KPX o x -30 +KPX o y -30 +KPX o yacute -30 +KPX o ydieresis -30 +KPX oacute comma -40 +KPX oacute period -40 +KPX oacute v -15 +KPX oacute w -15 +KPX oacute x -30 +KPX oacute y -30 +KPX oacute yacute -30 +KPX oacute ydieresis -30 +KPX ocircumflex comma -40 +KPX ocircumflex period -40 +KPX ocircumflex v -15 +KPX ocircumflex w -15 +KPX ocircumflex x -30 +KPX ocircumflex y -30 +KPX ocircumflex yacute -30 +KPX ocircumflex ydieresis -30 +KPX odieresis comma -40 +KPX odieresis period -40 +KPX odieresis v -15 +KPX odieresis w -15 +KPX odieresis x -30 +KPX odieresis y -30 +KPX odieresis yacute -30 +KPX odieresis ydieresis -30 +KPX ograve comma -40 +KPX ograve period -40 +KPX ograve v -15 +KPX ograve w -15 +KPX ograve x -30 +KPX ograve y -30 +KPX ograve yacute -30 +KPX ograve ydieresis -30 +KPX ohungarumlaut comma -40 +KPX ohungarumlaut period -40 +KPX ohungarumlaut v -15 +KPX ohungarumlaut w -15 +KPX ohungarumlaut x -30 +KPX ohungarumlaut y -30 +KPX ohungarumlaut yacute -30 +KPX ohungarumlaut ydieresis -30 +KPX omacron comma -40 +KPX omacron period -40 +KPX omacron v -15 +KPX omacron w -15 +KPX omacron x -30 +KPX omacron y -30 +KPX omacron yacute -30 +KPX omacron ydieresis -30 +KPX oslash a -55 +KPX oslash aacute -55 +KPX oslash abreve -55 +KPX oslash acircumflex -55 +KPX oslash adieresis -55 +KPX oslash agrave -55 +KPX oslash amacron -55 +KPX oslash aogonek -55 +KPX oslash aring -55 +KPX oslash atilde -55 +KPX oslash b -55 +KPX oslash c -55 +KPX oslash cacute -55 +KPX oslash ccaron -55 +KPX oslash ccedilla -55 +KPX oslash comma -95 +KPX oslash d -55 +KPX oslash dcroat -55 +KPX oslash e -55 +KPX oslash eacute -55 +KPX oslash ecaron -55 +KPX oslash ecircumflex -55 +KPX oslash edieresis -55 +KPX oslash edotaccent -55 +KPX oslash egrave -55 +KPX oslash emacron -55 +KPX oslash eogonek -55 +KPX oslash f -55 +KPX oslash g -55 +KPX oslash gbreve -55 +KPX oslash gcommaaccent -55 +KPX oslash h -55 +KPX oslash i -55 +KPX oslash iacute -55 +KPX oslash icircumflex -55 +KPX oslash idieresis -55 +KPX oslash igrave -55 +KPX oslash imacron -55 +KPX oslash iogonek -55 +KPX oslash j -55 +KPX oslash k -55 +KPX oslash kcommaaccent -55 +KPX oslash l -55 +KPX oslash lacute -55 +KPX oslash lcommaaccent -55 +KPX oslash lslash -55 +KPX oslash m -55 +KPX oslash n -55 +KPX oslash nacute -55 +KPX oslash ncaron -55 +KPX oslash ncommaaccent -55 +KPX oslash ntilde -55 +KPX oslash o -55 +KPX oslash oacute -55 +KPX oslash ocircumflex -55 +KPX oslash odieresis -55 +KPX oslash ograve -55 +KPX oslash ohungarumlaut -55 +KPX oslash omacron -55 +KPX oslash oslash -55 +KPX oslash otilde -55 +KPX oslash p -55 +KPX oslash period -95 +KPX oslash q -55 +KPX oslash r -55 +KPX oslash racute -55 +KPX oslash rcaron -55 +KPX oslash rcommaaccent -55 +KPX oslash s -55 +KPX oslash sacute -55 +KPX oslash scaron -55 +KPX oslash scedilla -55 +KPX oslash scommaaccent -55 +KPX oslash t -55 +KPX oslash tcommaaccent -55 +KPX oslash u -55 +KPX oslash uacute -55 +KPX oslash ucircumflex -55 +KPX oslash udieresis -55 +KPX oslash ugrave -55 +KPX oslash uhungarumlaut -55 +KPX oslash umacron -55 +KPX oslash uogonek -55 +KPX oslash uring -55 +KPX oslash v -70 +KPX oslash w -70 +KPX oslash x -85 +KPX oslash y -70 +KPX oslash yacute -70 +KPX oslash ydieresis -70 +KPX oslash z -55 +KPX oslash zacute -55 +KPX oslash zcaron -55 +KPX oslash zdotaccent -55 +KPX otilde comma -40 +KPX otilde period -40 +KPX otilde v -15 +KPX otilde w -15 +KPX otilde x -30 +KPX otilde y -30 +KPX otilde yacute -30 +KPX otilde ydieresis -30 +KPX p comma -35 +KPX p period -35 +KPX p y -30 +KPX p yacute -30 +KPX p ydieresis -30 +KPX period quotedblright -100 +KPX period quoteright -100 +KPX period space -60 +KPX quotedblright space -40 +KPX quoteleft quoteleft -57 +KPX quoteright d -50 +KPX quoteright dcroat -50 +KPX quoteright quoteright -57 +KPX quoteright r -50 +KPX quoteright racute -50 +KPX quoteright rcaron -50 +KPX quoteright rcommaaccent -50 +KPX quoteright s -50 +KPX quoteright sacute -50 +KPX quoteright scaron -50 +KPX quoteright scedilla -50 +KPX quoteright scommaaccent -50 +KPX quoteright space -70 +KPX r a -10 +KPX r aacute -10 +KPX r abreve -10 +KPX r acircumflex -10 +KPX r adieresis -10 +KPX r agrave -10 +KPX r amacron -10 +KPX r aogonek -10 +KPX r aring -10 +KPX r atilde -10 +KPX r colon 30 +KPX r comma -50 +KPX r i 15 +KPX r iacute 15 +KPX r icircumflex 15 +KPX r idieresis 15 +KPX r igrave 15 +KPX r imacron 15 +KPX r iogonek 15 +KPX r k 15 +KPX r kcommaaccent 15 +KPX r l 15 +KPX r lacute 15 +KPX r lcommaaccent 15 +KPX r lslash 15 +KPX r m 25 +KPX r n 25 +KPX r nacute 25 +KPX r ncaron 25 +KPX r ncommaaccent 25 +KPX r ntilde 25 +KPX r p 30 +KPX r period -50 +KPX r semicolon 30 +KPX r t 40 +KPX r tcommaaccent 40 +KPX r u 15 +KPX r uacute 15 +KPX r ucircumflex 15 +KPX r udieresis 15 +KPX r ugrave 15 +KPX r uhungarumlaut 15 +KPX r umacron 15 +KPX r uogonek 15 +KPX r uring 15 +KPX r v 30 +KPX r y 30 +KPX r yacute 30 +KPX r ydieresis 30 +KPX racute a -10 +KPX racute aacute -10 +KPX racute abreve -10 +KPX racute acircumflex -10 +KPX racute adieresis -10 +KPX racute agrave -10 +KPX racute amacron -10 +KPX racute aogonek -10 +KPX racute aring -10 +KPX racute atilde -10 +KPX racute colon 30 +KPX racute comma -50 +KPX racute i 15 +KPX racute iacute 15 +KPX racute icircumflex 15 +KPX racute idieresis 15 +KPX racute igrave 15 +KPX racute imacron 15 +KPX racute iogonek 15 +KPX racute k 15 +KPX racute kcommaaccent 15 +KPX racute l 15 +KPX racute lacute 15 +KPX racute lcommaaccent 15 +KPX racute lslash 15 +KPX racute m 25 +KPX racute n 25 +KPX racute nacute 25 +KPX racute ncaron 25 +KPX racute ncommaaccent 25 +KPX racute ntilde 25 +KPX racute p 30 +KPX racute period -50 +KPX racute semicolon 30 +KPX racute t 40 +KPX racute tcommaaccent 40 +KPX racute u 15 +KPX racute uacute 15 +KPX racute ucircumflex 15 +KPX racute udieresis 15 +KPX racute ugrave 15 +KPX racute uhungarumlaut 15 +KPX racute umacron 15 +KPX racute uogonek 15 +KPX racute uring 15 +KPX racute v 30 +KPX racute y 30 +KPX racute yacute 30 +KPX racute ydieresis 30 +KPX rcaron a -10 +KPX rcaron aacute -10 +KPX rcaron abreve -10 +KPX rcaron acircumflex -10 +KPX rcaron adieresis -10 +KPX rcaron agrave -10 +KPX rcaron amacron -10 +KPX rcaron aogonek -10 +KPX rcaron aring -10 +KPX rcaron atilde -10 +KPX rcaron colon 30 +KPX rcaron comma -50 +KPX rcaron i 15 +KPX rcaron iacute 15 +KPX rcaron icircumflex 15 +KPX rcaron idieresis 15 +KPX rcaron igrave 15 +KPX rcaron imacron 15 +KPX rcaron iogonek 15 +KPX rcaron k 15 +KPX rcaron kcommaaccent 15 +KPX rcaron l 15 +KPX rcaron lacute 15 +KPX rcaron lcommaaccent 15 +KPX rcaron lslash 15 +KPX rcaron m 25 +KPX rcaron n 25 +KPX rcaron nacute 25 +KPX rcaron ncaron 25 +KPX rcaron ncommaaccent 25 +KPX rcaron ntilde 25 +KPX rcaron p 30 +KPX rcaron period -50 +KPX rcaron semicolon 30 +KPX rcaron t 40 +KPX rcaron tcommaaccent 40 +KPX rcaron u 15 +KPX rcaron uacute 15 +KPX rcaron ucircumflex 15 +KPX rcaron udieresis 15 +KPX rcaron ugrave 15 +KPX rcaron uhungarumlaut 15 +KPX rcaron umacron 15 +KPX rcaron uogonek 15 +KPX rcaron uring 15 +KPX rcaron v 30 +KPX rcaron y 30 +KPX rcaron yacute 30 +KPX rcaron ydieresis 30 +KPX rcommaaccent a -10 +KPX rcommaaccent aacute -10 +KPX rcommaaccent abreve -10 +KPX rcommaaccent acircumflex -10 +KPX rcommaaccent adieresis -10 +KPX rcommaaccent agrave -10 +KPX rcommaaccent amacron -10 +KPX rcommaaccent aogonek -10 +KPX rcommaaccent aring -10 +KPX rcommaaccent atilde -10 +KPX rcommaaccent colon 30 +KPX rcommaaccent comma -50 +KPX rcommaaccent i 15 +KPX rcommaaccent iacute 15 +KPX rcommaaccent icircumflex 15 +KPX rcommaaccent idieresis 15 +KPX rcommaaccent igrave 15 +KPX rcommaaccent imacron 15 +KPX rcommaaccent iogonek 15 +KPX rcommaaccent k 15 +KPX rcommaaccent kcommaaccent 15 +KPX rcommaaccent l 15 +KPX rcommaaccent lacute 15 +KPX rcommaaccent lcommaaccent 15 +KPX rcommaaccent lslash 15 +KPX rcommaaccent m 25 +KPX rcommaaccent n 25 +KPX rcommaaccent nacute 25 +KPX rcommaaccent ncaron 25 +KPX rcommaaccent ncommaaccent 25 +KPX rcommaaccent ntilde 25 +KPX rcommaaccent p 30 +KPX rcommaaccent period -50 +KPX rcommaaccent semicolon 30 +KPX rcommaaccent t 40 +KPX rcommaaccent tcommaaccent 40 +KPX rcommaaccent u 15 +KPX rcommaaccent uacute 15 +KPX rcommaaccent ucircumflex 15 +KPX rcommaaccent udieresis 15 +KPX rcommaaccent ugrave 15 +KPX rcommaaccent uhungarumlaut 15 +KPX rcommaaccent umacron 15 +KPX rcommaaccent uogonek 15 +KPX rcommaaccent uring 15 +KPX rcommaaccent v 30 +KPX rcommaaccent y 30 +KPX rcommaaccent yacute 30 +KPX rcommaaccent ydieresis 30 +KPX s comma -15 +KPX s period -15 +KPX s w -30 +KPX sacute comma -15 +KPX sacute period -15 +KPX sacute w -30 +KPX scaron comma -15 +KPX scaron period -15 +KPX scaron w -30 +KPX scedilla comma -15 +KPX scedilla period -15 +KPX scedilla w -30 +KPX scommaaccent comma -15 +KPX scommaaccent period -15 +KPX scommaaccent w -30 +KPX semicolon space -50 +KPX space T -50 +KPX space Tcaron -50 +KPX space Tcommaaccent -50 +KPX space V -50 +KPX space W -40 +KPX space Y -90 +KPX space Yacute -90 +KPX space Ydieresis -90 +KPX space quotedblleft -30 +KPX space quoteleft -60 +KPX v a -25 +KPX v aacute -25 +KPX v abreve -25 +KPX v acircumflex -25 +KPX v adieresis -25 +KPX v agrave -25 +KPX v amacron -25 +KPX v aogonek -25 +KPX v aring -25 +KPX v atilde -25 +KPX v comma -80 +KPX v e -25 +KPX v eacute -25 +KPX v ecaron -25 +KPX v ecircumflex -25 +KPX v edieresis -25 +KPX v edotaccent -25 +KPX v egrave -25 +KPX v emacron -25 +KPX v eogonek -25 +KPX v o -25 +KPX v oacute -25 +KPX v ocircumflex -25 +KPX v odieresis -25 +KPX v ograve -25 +KPX v ohungarumlaut -25 +KPX v omacron -25 +KPX v oslash -25 +KPX v otilde -25 +KPX v period -80 +KPX w a -15 +KPX w aacute -15 +KPX w abreve -15 +KPX w acircumflex -15 +KPX w adieresis -15 +KPX w agrave -15 +KPX w amacron -15 +KPX w aogonek -15 +KPX w aring -15 +KPX w atilde -15 +KPX w comma -60 +KPX w e -10 +KPX w eacute -10 +KPX w ecaron -10 +KPX w ecircumflex -10 +KPX w edieresis -10 +KPX w edotaccent -10 +KPX w egrave -10 +KPX w emacron -10 +KPX w eogonek -10 +KPX w o -10 +KPX w oacute -10 +KPX w ocircumflex -10 +KPX w odieresis -10 +KPX w ograve -10 +KPX w ohungarumlaut -10 +KPX w omacron -10 +KPX w oslash -10 +KPX w otilde -10 +KPX w period -60 +KPX x e -30 +KPX x eacute -30 +KPX x ecaron -30 +KPX x ecircumflex -30 +KPX x edieresis -30 +KPX x edotaccent -30 +KPX x egrave -30 +KPX x emacron -30 +KPX x eogonek -30 +KPX y a -20 +KPX y aacute -20 +KPX y abreve -20 +KPX y acircumflex -20 +KPX y adieresis -20 +KPX y agrave -20 +KPX y amacron -20 +KPX y aogonek -20 +KPX y aring -20 +KPX y atilde -20 +KPX y comma -100 +KPX y e -20 +KPX y eacute -20 +KPX y ecaron -20 +KPX y ecircumflex -20 +KPX y edieresis -20 +KPX y edotaccent -20 +KPX y egrave -20 +KPX y emacron -20 +KPX y eogonek -20 +KPX y o -20 +KPX y oacute -20 +KPX y ocircumflex -20 +KPX y odieresis -20 +KPX y ograve -20 +KPX y ohungarumlaut -20 +KPX y omacron -20 +KPX y oslash -20 +KPX y otilde -20 +KPX y period -100 +KPX yacute a -20 +KPX yacute aacute -20 +KPX yacute abreve -20 +KPX yacute acircumflex -20 +KPX yacute adieresis -20 +KPX yacute agrave -20 +KPX yacute amacron -20 +KPX yacute aogonek -20 +KPX yacute aring -20 +KPX yacute atilde -20 +KPX yacute comma -100 +KPX yacute e -20 +KPX yacute eacute -20 +KPX yacute ecaron -20 +KPX yacute ecircumflex -20 +KPX yacute edieresis -20 +KPX yacute edotaccent -20 +KPX yacute egrave -20 +KPX yacute emacron -20 +KPX yacute eogonek -20 +KPX yacute o -20 +KPX yacute oacute -20 +KPX yacute ocircumflex -20 +KPX yacute odieresis -20 +KPX yacute ograve -20 +KPX yacute ohungarumlaut -20 +KPX yacute omacron -20 +KPX yacute oslash -20 +KPX yacute otilde -20 +KPX yacute period -100 +KPX ydieresis a -20 +KPX ydieresis aacute -20 +KPX ydieresis abreve -20 +KPX ydieresis acircumflex -20 +KPX ydieresis adieresis -20 +KPX ydieresis agrave -20 +KPX ydieresis amacron -20 +KPX ydieresis aogonek -20 +KPX ydieresis aring -20 +KPX ydieresis atilde -20 +KPX ydieresis comma -100 +KPX ydieresis e -20 +KPX ydieresis eacute -20 +KPX ydieresis ecaron -20 +KPX ydieresis ecircumflex -20 +KPX ydieresis edieresis -20 +KPX ydieresis edotaccent -20 +KPX ydieresis egrave -20 +KPX ydieresis emacron -20 +KPX ydieresis eogonek -20 +KPX ydieresis o -20 +KPX ydieresis oacute -20 +KPX ydieresis ocircumflex -20 +KPX ydieresis odieresis -20 +KPX ydieresis ograve -20 +KPX ydieresis ohungarumlaut -20 +KPX ydieresis omacron -20 +KPX ydieresis oslash -20 +KPX ydieresis otilde -20 +KPX ydieresis period -100 +KPX z e -15 +KPX z eacute -15 +KPX z ecaron -15 +KPX z ecircumflex -15 +KPX z edieresis -15 +KPX z edotaccent -15 +KPX z egrave -15 +KPX z emacron -15 +KPX z eogonek -15 +KPX z o -15 +KPX z oacute -15 +KPX z ocircumflex -15 +KPX z odieresis -15 +KPX z ograve -15 +KPX z ohungarumlaut -15 +KPX z omacron -15 +KPX z oslash -15 +KPX z otilde -15 +KPX zacute e -15 +KPX zacute eacute -15 +KPX zacute ecaron -15 +KPX zacute ecircumflex -15 +KPX zacute edieresis -15 +KPX zacute edotaccent -15 +KPX zacute egrave -15 +KPX zacute emacron -15 +KPX zacute eogonek -15 +KPX zacute o -15 +KPX zacute oacute -15 +KPX zacute ocircumflex -15 +KPX zacute odieresis -15 +KPX zacute ograve -15 +KPX zacute ohungarumlaut -15 +KPX zacute omacron -15 +KPX zacute oslash -15 +KPX zacute otilde -15 +KPX zcaron e -15 +KPX zcaron eacute -15 +KPX zcaron ecaron -15 +KPX zcaron ecircumflex -15 +KPX zcaron edieresis -15 +KPX zcaron edotaccent -15 +KPX zcaron egrave -15 +KPX zcaron emacron -15 +KPX zcaron eogonek -15 +KPX zcaron o -15 +KPX zcaron oacute -15 +KPX zcaron ocircumflex -15 +KPX zcaron odieresis -15 +KPX zcaron ograve -15 +KPX zcaron ohungarumlaut -15 +KPX zcaron omacron -15 +KPX zcaron oslash -15 +KPX zcaron otilde -15 +KPX zdotaccent e -15 +KPX zdotaccent eacute -15 +KPX zdotaccent ecaron -15 +KPX zdotaccent ecircumflex -15 +KPX zdotaccent edieresis -15 +KPX zdotaccent edotaccent -15 +KPX zdotaccent egrave -15 +KPX zdotaccent emacron -15 +KPX zdotaccent eogonek -15 +KPX zdotaccent o -15 +KPX zdotaccent oacute -15 +KPX zdotaccent ocircumflex -15 +KPX zdotaccent odieresis -15 +KPX zdotaccent ograve -15 +KPX zdotaccent ohungarumlaut -15 +KPX zdotaccent omacron -15 +KPX zdotaccent oslash -15 +KPX zdotaccent otilde -15 +EndKernPairs +EndKernData +EndFontMetrics diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/Helvetica.afm b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/Helvetica.afm new file mode 100644 index 0000000..c418dc1 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/Helvetica.afm @@ -0,0 +1,3053 @@ +StartFontMetrics 4.1 +Comment Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Thu May 1 12:38:23 1997 +Comment UniqueID 43054 +Comment VMusage 37069 48094 +FontName Helvetica +FullName Helvetica +FamilyName Helvetica +Weight Medium +ItalicAngle 0 +IsFixedPitch false +CharacterSet ExtendedRoman +FontBBox -166 -225 1000 931 +UnderlinePosition -100 +UnderlineThickness 50 +Version 002.000 +Notice Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype-Hell AG and/or its subsidiaries. +EncodingScheme WinAnsiEncoding +CapHeight 718 +XHeight 523 +Ascender 718 +Descender -207 +StdHW 76 +StdVW 88 +StartCharMetrics 317 +C 32 ; WX 278 ; N space ; B 0 0 0 0 ; +C 160 ; WX 278 ; N space ; B 0 0 0 0 ; +C 33 ; WX 278 ; N exclam ; B 90 0 187 718 ; +C 34 ; WX 355 ; N quotedbl ; B 70 463 285 718 ; +C 35 ; WX 556 ; N numbersign ; B 28 0 529 688 ; +C 36 ; WX 556 ; N dollar ; B 32 -115 520 775 ; +C 37 ; WX 889 ; N percent ; B 39 -19 850 703 ; +C 38 ; WX 667 ; N ampersand ; B 44 -15 645 718 ; +C 146 ; WX 222 ; N quoteright ; B 53 463 157 718 ; +C 40 ; WX 333 ; N parenleft ; B 68 -207 299 733 ; +C 41 ; WX 333 ; N parenright ; B 34 -207 265 733 ; +C 42 ; WX 389 ; N asterisk ; B 39 431 349 718 ; +C 43 ; WX 584 ; N plus ; B 39 0 545 505 ; +C 44 ; WX 278 ; N comma ; B 87 -147 191 106 ; +C 45 ; WX 333 ; N hyphen ; B 44 232 289 322 ; +C 173 ; WX 333 ; N hyphen ; B 44 232 289 322 ; +C 46 ; WX 278 ; N period ; B 87 0 191 106 ; +C 47 ; WX 278 ; N slash ; B -17 -19 295 737 ; +C 48 ; WX 556 ; N zero ; B 37 -19 519 703 ; +C 49 ; WX 556 ; N one ; B 101 0 359 703 ; +C 50 ; WX 556 ; N two ; B 26 0 507 703 ; +C 51 ; WX 556 ; N three ; B 34 -19 522 703 ; +C 52 ; WX 556 ; N four ; B 25 0 523 703 ; +C 53 ; WX 556 ; N five ; B 32 -19 514 688 ; +C 54 ; WX 556 ; N six ; B 38 -19 518 703 ; +C 55 ; WX 556 ; N seven ; B 37 0 523 688 ; +C 56 ; WX 556 ; N eight ; B 38 -19 517 703 ; +C 57 ; WX 556 ; N nine ; B 42 -19 514 703 ; +C 58 ; WX 278 ; N colon ; B 87 0 191 516 ; +C 59 ; WX 278 ; N semicolon ; B 87 -147 191 516 ; +C 60 ; WX 584 ; N less ; B 48 11 536 495 ; +C 61 ; WX 584 ; N equal ; B 39 115 545 390 ; +C 62 ; WX 584 ; N greater ; B 48 11 536 495 ; +C 63 ; WX 556 ; N question ; B 56 0 492 727 ; +C 64 ; WX 1015 ; N at ; B 147 -19 868 737 ; +C 65 ; WX 667 ; N A ; B 14 0 654 718 ; +C 66 ; WX 667 ; N B ; B 74 0 627 718 ; +C 67 ; WX 722 ; N C ; B 44 -19 681 737 ; +C 68 ; WX 722 ; N D ; B 81 0 674 718 ; +C 69 ; WX 667 ; N E ; B 86 0 616 718 ; +C 70 ; WX 611 ; N F ; B 86 0 583 718 ; +C 71 ; WX 778 ; N G ; B 48 -19 704 737 ; +C 72 ; WX 722 ; N H ; B 77 0 646 718 ; +C 73 ; WX 278 ; N I ; B 91 0 188 718 ; +C 74 ; WX 500 ; N J ; B 17 -19 428 718 ; +C 75 ; WX 667 ; N K ; B 76 0 663 718 ; +C 76 ; WX 556 ; N L ; B 76 0 537 718 ; +C 77 ; WX 833 ; N M ; B 73 0 761 718 ; +C 78 ; WX 722 ; N N ; B 76 0 646 718 ; +C 79 ; WX 778 ; N O ; B 39 -19 739 737 ; +C 80 ; WX 667 ; N P ; B 86 0 622 718 ; +C 81 ; WX 778 ; N Q ; B 39 -56 739 737 ; +C 82 ; WX 722 ; N R ; B 88 0 684 718 ; +C 83 ; WX 667 ; N S ; B 49 -19 620 737 ; +C 84 ; WX 611 ; N T ; B 14 0 597 718 ; +C 85 ; WX 722 ; N U ; B 79 -19 644 718 ; +C 86 ; WX 667 ; N V ; B 20 0 647 718 ; +C 87 ; WX 944 ; N W ; B 16 0 928 718 ; +C 88 ; WX 667 ; N X ; B 19 0 648 718 ; +C 89 ; WX 667 ; N Y ; B 14 0 653 718 ; +C 90 ; WX 611 ; N Z ; B 23 0 588 718 ; +C 91 ; WX 278 ; N bracketleft ; B 63 -196 250 722 ; +C 92 ; WX 278 ; N backslash ; B -17 -19 295 737 ; +C 93 ; WX 278 ; N bracketright ; B 28 -196 215 722 ; +C 94 ; WX 469 ; N asciicircum ; B -14 264 483 688 ; +C 95 ; WX 556 ; N underscore ; B 0 -125 556 -75 ; +C 145 ; WX 222 ; N quoteleft ; B 65 470 169 725 ; +C 97 ; WX 556 ; N a ; B 36 -15 530 538 ; +C 98 ; WX 556 ; N b ; B 58 -15 517 718 ; +C 99 ; WX 500 ; N c ; B 30 -15 477 538 ; +C 100 ; WX 556 ; N d ; B 35 -15 499 718 ; +C 101 ; WX 556 ; N e ; B 40 -15 516 538 ; +C 102 ; WX 278 ; N f ; B 14 0 262 728 ; L i fi ; L l fl ; +C 103 ; WX 556 ; N g ; B 40 -220 499 538 ; +C 104 ; WX 556 ; N h ; B 65 0 491 718 ; +C 105 ; WX 222 ; N i ; B 67 0 155 718 ; +C 106 ; WX 222 ; N j ; B -16 -210 155 718 ; +C 107 ; WX 500 ; N k ; B 67 0 501 718 ; +C 108 ; WX 222 ; N l ; B 67 0 155 718 ; +C 109 ; WX 833 ; N m ; B 65 0 769 538 ; +C 110 ; WX 556 ; N n ; B 65 0 491 538 ; +C 111 ; WX 556 ; N o ; B 35 -14 521 538 ; +C 112 ; WX 556 ; N p ; B 58 -207 517 538 ; +C 113 ; WX 556 ; N q ; B 35 -207 494 538 ; +C 114 ; WX 333 ; N r ; B 77 0 332 538 ; +C 115 ; WX 500 ; N s ; B 32 -15 464 538 ; +C 116 ; WX 278 ; N t ; B 14 -7 257 669 ; +C 117 ; WX 556 ; N u ; B 68 -15 489 523 ; +C 118 ; WX 500 ; N v ; B 8 0 492 523 ; +C 119 ; WX 722 ; N w ; B 14 0 709 523 ; +C 120 ; WX 500 ; N x ; B 11 0 490 523 ; +C 121 ; WX 500 ; N y ; B 11 -214 489 523 ; +C 122 ; WX 500 ; N z ; B 31 0 469 523 ; +C 123 ; WX 334 ; N braceleft ; B 42 -196 292 722 ; +C 124 ; WX 260 ; N bar ; B 94 -225 167 775 ; +C 125 ; WX 334 ; N braceright ; B 42 -196 292 722 ; +C 126 ; WX 584 ; N asciitilde ; B 61 180 523 326 ; +C 161 ; WX 333 ; N exclamdown ; B 118 -195 215 523 ; +C 162 ; WX 556 ; N cent ; B 51 -115 513 623 ; +C 163 ; WX 556 ; N sterling ; B 33 -16 539 718 ; +C -1 ; WX 167 ; N fraction ; B -166 -19 333 703 ; +C 165 ; WX 556 ; N yen ; B 3 0 553 688 ; +C 131 ; WX 556 ; N florin ; B -11 -207 501 737 ; +C 167 ; WX 556 ; N section ; B 43 -191 512 737 ; +C 164 ; WX 556 ; N currency ; B 28 99 528 603 ; +C 39 ; WX 191 ; N quotesingle ; B 59 463 132 718 ; +C 147 ; WX 333 ; N quotedblleft ; B 38 470 307 725 ; +C 171 ; WX 556 ; N guillemotleft ; B 97 108 459 446 ; +C 139 ; WX 333 ; N guilsinglleft ; B 88 108 245 446 ; +C 155 ; WX 333 ; N guilsinglright ; B 88 108 245 446 ; +C -1 ; WX 500 ; N fi ; B 14 0 434 728 ; +C -1 ; WX 500 ; N fl ; B 14 0 432 728 ; +C 150 ; WX 556 ; N endash ; B 0 240 556 313 ; +C 134 ; WX 556 ; N dagger ; B 43 -159 514 718 ; +C 135 ; WX 556 ; N daggerdbl ; B 43 -159 514 718 ; +C 183 ; WX 278 ; N periodcentered ; B 77 190 202 315 ; +C 182 ; WX 537 ; N paragraph ; B 18 -173 497 718 ; +C 149 ; WX 350 ; N bullet ; B 18 202 333 517 ; +C 130 ; WX 222 ; N quotesinglbase ; B 53 -149 157 106 ; +C 132 ; WX 333 ; N quotedblbase ; B 26 -149 295 106 ; +C 148 ; WX 333 ; N quotedblright ; B 26 463 295 718 ; +C 187 ; WX 556 ; N guillemotright ; B 97 108 459 446 ; +C 133 ; WX 1000 ; N ellipsis ; B 115 0 885 106 ; +C 137 ; WX 1000 ; N perthousand ; B 7 -19 994 703 ; +C 191 ; WX 611 ; N questiondown ; B 91 -201 527 525 ; +C 96 ; WX 333 ; N grave ; B 14 593 211 734 ; +C 180 ; WX 333 ; N acute ; B 122 593 319 734 ; +C 136 ; WX 333 ; N circumflex ; B 21 593 312 734 ; +C 152 ; WX 333 ; N tilde ; B -4 606 337 722 ; +C 175 ; WX 333 ; N macron ; B 10 627 323 684 ; +C -1 ; WX 333 ; N breve ; B 13 595 321 731 ; +C -1 ; WX 333 ; N dotaccent ; B 121 604 212 706 ; +C 168 ; WX 333 ; N dieresis ; B 40 604 293 706 ; +C -1 ; WX 333 ; N ring ; B 75 572 259 756 ; +C 184 ; WX 333 ; N cedilla ; B 45 -225 259 0 ; +C -1 ; WX 333 ; N hungarumlaut ; B 31 593 409 734 ; +C -1 ; WX 333 ; N ogonek ; B 73 -225 287 0 ; +C -1 ; WX 333 ; N caron ; B 21 593 312 734 ; +C 151 ; WX 1000 ; N emdash ; B 0 240 1000 313 ; +C 198 ; WX 1000 ; N AE ; B 8 0 951 718 ; +C 170 ; WX 370 ; N ordfeminine ; B 24 405 346 737 ; +C -1 ; WX 556 ; N Lslash ; B -20 0 537 718 ; +C 216 ; WX 778 ; N Oslash ; B 39 -19 740 737 ; +C 140 ; WX 1000 ; N OE ; B 36 -19 965 737 ; +C 186 ; WX 365 ; N ordmasculine ; B 25 405 341 737 ; +C 230 ; WX 889 ; N ae ; B 36 -15 847 538 ; +C -1 ; WX 278 ; N dotlessi ; B 95 0 183 523 ; +C -1 ; WX 222 ; N lslash ; B -20 0 242 718 ; +C 248 ; WX 611 ; N oslash ; B 28 -22 537 545 ; +C 156 ; WX 944 ; N oe ; B 35 -15 902 538 ; +C 223 ; WX 611 ; N germandbls ; B 67 -15 571 728 ; +C 207 ; WX 278 ; N Idieresis ; B 13 0 266 901 ; +C 233 ; WX 556 ; N eacute ; B 40 -15 516 734 ; +C -1 ; WX 556 ; N abreve ; B 36 -15 530 731 ; +C -1 ; WX 556 ; N uhungarumlaut ; B 68 -15 521 734 ; +C -1 ; WX 556 ; N ecaron ; B 40 -15 516 734 ; +C 159 ; WX 667 ; N Ydieresis ; B 14 0 653 901 ; +C 247 ; WX 584 ; N divide ; B 39 -19 545 524 ; +C 221 ; WX 667 ; N Yacute ; B 14 0 653 929 ; +C 194 ; WX 667 ; N Acircumflex ; B 14 0 654 929 ; +C 225 ; WX 556 ; N aacute ; B 36 -15 530 734 ; +C 219 ; WX 722 ; N Ucircumflex ; B 79 -19 644 929 ; +C 253 ; WX 500 ; N yacute ; B 11 -214 489 734 ; +C -1 ; WX 500 ; N scommaaccent ; B 32 -225 464 538 ; +C 234 ; WX 556 ; N ecircumflex ; B 40 -15 516 734 ; +C -1 ; WX 722 ; N Uring ; B 79 -19 644 931 ; +C 220 ; WX 722 ; N Udieresis ; B 79 -19 644 901 ; +C -1 ; WX 556 ; N aogonek ; B 36 -220 547 538 ; +C 218 ; WX 722 ; N Uacute ; B 79 -19 644 929 ; +C -1 ; WX 556 ; N uogonek ; B 68 -225 519 523 ; +C 203 ; WX 667 ; N Edieresis ; B 86 0 616 901 ; +C -1 ; WX 722 ; N Dcroat ; B 0 0 674 718 ; +C -1 ; WX 250 ; N commaaccent ; B 87 -225 181 -40 ; +C 169 ; WX 737 ; N copyright ; B -14 -19 752 737 ; +C -1 ; WX 667 ; N Emacron ; B 86 0 616 879 ; +C -1 ; WX 500 ; N ccaron ; B 30 -15 477 734 ; +C 229 ; WX 556 ; N aring ; B 36 -15 530 756 ; +C -1 ; WX 722 ; N Ncommaaccent ; B 76 -225 646 718 ; +C -1 ; WX 222 ; N lacute ; B 67 0 264 929 ; +C 224 ; WX 556 ; N agrave ; B 36 -15 530 734 ; +C -1 ; WX 611 ; N Tcommaaccent ; B 14 -225 597 718 ; +C -1 ; WX 722 ; N Cacute ; B 44 -19 681 929 ; +C 227 ; WX 556 ; N atilde ; B 36 -15 530 722 ; +C -1 ; WX 667 ; N Edotaccent ; B 86 0 616 901 ; +C 154 ; WX 500 ; N scaron ; B 32 -15 464 734 ; +C -1 ; WX 500 ; N scedilla ; B 32 -225 464 538 ; +C 237 ; WX 278 ; N iacute ; B 95 0 292 734 ; +C -1 ; WX 471 ; N lozenge ; B 10 0 462 728 ; +C -1 ; WX 722 ; N Rcaron ; B 88 0 684 929 ; +C -1 ; WX 778 ; N Gcommaaccent ; B 48 -225 704 737 ; +C 251 ; WX 556 ; N ucircumflex ; B 68 -15 489 734 ; +C 226 ; WX 556 ; N acircumflex ; B 36 -15 530 734 ; +C -1 ; WX 667 ; N Amacron ; B 14 0 654 879 ; +C -1 ; WX 333 ; N rcaron ; B 61 0 352 734 ; +C 231 ; WX 500 ; N ccedilla ; B 30 -225 477 538 ; +C -1 ; WX 611 ; N Zdotaccent ; B 23 0 588 901 ; +C 222 ; WX 667 ; N Thorn ; B 86 0 622 718 ; +C -1 ; WX 778 ; N Omacron ; B 39 -19 739 879 ; +C -1 ; WX 722 ; N Racute ; B 88 0 684 929 ; +C -1 ; WX 667 ; N Sacute ; B 49 -19 620 929 ; +C -1 ; WX 643 ; N dcaron ; B 35 -15 655 718 ; +C -1 ; WX 722 ; N Umacron ; B 79 -19 644 879 ; +C -1 ; WX 556 ; N uring ; B 68 -15 489 756 ; +C 179 ; WX 333 ; N threesuperior ; B 5 270 325 703 ; +C 210 ; WX 778 ; N Ograve ; B 39 -19 739 929 ; +C 192 ; WX 667 ; N Agrave ; B 14 0 654 929 ; +C -1 ; WX 667 ; N Abreve ; B 14 0 654 926 ; +C 215 ; WX 584 ; N multiply ; B 39 0 545 506 ; +C 250 ; WX 556 ; N uacute ; B 68 -15 489 734 ; +C -1 ; WX 611 ; N Tcaron ; B 14 0 597 929 ; +C -1 ; WX 476 ; N partialdiff ; B 13 -38 463 714 ; +C 255 ; WX 500 ; N ydieresis ; B 11 -214 489 706 ; +C -1 ; WX 722 ; N Nacute ; B 76 0 646 929 ; +C 238 ; WX 278 ; N icircumflex ; B -6 0 285 734 ; +C 202 ; WX 667 ; N Ecircumflex ; B 86 0 616 929 ; +C 228 ; WX 556 ; N adieresis ; B 36 -15 530 706 ; +C 235 ; WX 556 ; N edieresis ; B 40 -15 516 706 ; +C -1 ; WX 500 ; N cacute ; B 30 -15 477 734 ; +C -1 ; WX 556 ; N nacute ; B 65 0 491 734 ; +C -1 ; WX 556 ; N umacron ; B 68 -15 489 684 ; +C -1 ; WX 722 ; N Ncaron ; B 76 0 646 929 ; +C 205 ; WX 278 ; N Iacute ; B 91 0 292 929 ; +C 177 ; WX 584 ; N plusminus ; B 39 0 545 506 ; +C 166 ; WX 260 ; N brokenbar ; B 94 -150 167 700 ; +C 174 ; WX 737 ; N registered ; B -14 -19 752 737 ; +C -1 ; WX 778 ; N Gbreve ; B 48 -19 704 926 ; +C -1 ; WX 278 ; N Idotaccent ; B 91 0 188 901 ; +C -1 ; WX 600 ; N summation ; B 15 -10 586 706 ; +C 200 ; WX 667 ; N Egrave ; B 86 0 616 929 ; +C -1 ; WX 333 ; N racute ; B 77 0 332 734 ; +C -1 ; WX 556 ; N omacron ; B 35 -14 521 684 ; +C -1 ; WX 611 ; N Zacute ; B 23 0 588 929 ; +C 142 ; WX 611 ; N Zcaron ; B 23 0 588 929 ; +C -1 ; WX 549 ; N greaterequal ; B 26 0 523 674 ; +C 208 ; WX 722 ; N Eth ; B 0 0 674 718 ; +C 199 ; WX 722 ; N Ccedilla ; B 44 -225 681 737 ; +C -1 ; WX 222 ; N lcommaaccent ; B 67 -225 167 718 ; +C -1 ; WX 317 ; N tcaron ; B 14 -7 329 808 ; +C -1 ; WX 556 ; N eogonek ; B 40 -225 516 538 ; +C -1 ; WX 722 ; N Uogonek ; B 79 -225 644 718 ; +C 193 ; WX 667 ; N Aacute ; B 14 0 654 929 ; +C 196 ; WX 667 ; N Adieresis ; B 14 0 654 901 ; +C 232 ; WX 556 ; N egrave ; B 40 -15 516 734 ; +C -1 ; WX 500 ; N zacute ; B 31 0 469 734 ; +C -1 ; WX 222 ; N iogonek ; B -31 -225 183 718 ; +C 211 ; WX 778 ; N Oacute ; B 39 -19 739 929 ; +C 243 ; WX 556 ; N oacute ; B 35 -14 521 734 ; +C -1 ; WX 556 ; N amacron ; B 36 -15 530 684 ; +C -1 ; WX 500 ; N sacute ; B 32 -15 464 734 ; +C 239 ; WX 278 ; N idieresis ; B 13 0 266 706 ; +C 212 ; WX 778 ; N Ocircumflex ; B 39 -19 739 929 ; +C 217 ; WX 722 ; N Ugrave ; B 79 -19 644 929 ; +C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ; +C 254 ; WX 556 ; N thorn ; B 58 -207 517 718 ; +C 178 ; WX 333 ; N twosuperior ; B 4 281 323 703 ; +C 214 ; WX 778 ; N Odieresis ; B 39 -19 739 901 ; +C 181 ; WX 556 ; N mu ; B 68 -207 489 523 ; +C 236 ; WX 278 ; N igrave ; B -13 0 184 734 ; +C -1 ; WX 556 ; N ohungarumlaut ; B 35 -14 521 734 ; +C -1 ; WX 667 ; N Eogonek ; B 86 -220 633 718 ; +C -1 ; WX 556 ; N dcroat ; B 35 -15 550 718 ; +C 190 ; WX 834 ; N threequarters ; B 45 -19 810 703 ; +C -1 ; WX 667 ; N Scedilla ; B 49 -225 620 737 ; +C -1 ; WX 299 ; N lcaron ; B 67 0 311 718 ; +C -1 ; WX 667 ; N Kcommaaccent ; B 76 -225 663 718 ; +C -1 ; WX 556 ; N Lacute ; B 76 0 537 929 ; +C 153 ; WX 1000 ; N trademark ; B 46 306 903 718 ; +C -1 ; WX 556 ; N edotaccent ; B 40 -15 516 706 ; +C 204 ; WX 278 ; N Igrave ; B -13 0 188 929 ; +C -1 ; WX 278 ; N Imacron ; B -17 0 296 879 ; +C -1 ; WX 556 ; N Lcaron ; B 76 0 537 718 ; +C 189 ; WX 834 ; N onehalf ; B 43 -19 773 703 ; +C -1 ; WX 549 ; N lessequal ; B 26 0 523 674 ; +C 244 ; WX 556 ; N ocircumflex ; B 35 -14 521 734 ; +C 241 ; WX 556 ; N ntilde ; B 65 0 491 722 ; +C -1 ; WX 722 ; N Uhungarumlaut ; B 79 -19 644 929 ; +C 201 ; WX 667 ; N Eacute ; B 86 0 616 929 ; +C -1 ; WX 556 ; N emacron ; B 40 -15 516 684 ; +C -1 ; WX 556 ; N gbreve ; B 40 -220 499 731 ; +C 188 ; WX 834 ; N onequarter ; B 73 -19 756 703 ; +C 138 ; WX 667 ; N Scaron ; B 49 -19 620 929 ; +C -1 ; WX 667 ; N Scommaaccent ; B 49 -225 620 737 ; +C -1 ; WX 778 ; N Ohungarumlaut ; B 39 -19 739 929 ; +C 176 ; WX 400 ; N degree ; B 54 411 346 703 ; +C 242 ; WX 556 ; N ograve ; B 35 -14 521 734 ; +C -1 ; WX 722 ; N Ccaron ; B 44 -19 681 929 ; +C 249 ; WX 556 ; N ugrave ; B 68 -15 489 734 ; +C -1 ; WX 453 ; N radical ; B -4 -80 458 762 ; +C -1 ; WX 722 ; N Dcaron ; B 81 0 674 929 ; +C -1 ; WX 333 ; N rcommaaccent ; B 77 -225 332 538 ; +C 209 ; WX 722 ; N Ntilde ; B 76 0 646 917 ; +C 245 ; WX 556 ; N otilde ; B 35 -14 521 722 ; +C -1 ; WX 722 ; N Rcommaaccent ; B 88 -225 684 718 ; +C -1 ; WX 556 ; N Lcommaaccent ; B 76 -225 537 718 ; +C 195 ; WX 667 ; N Atilde ; B 14 0 654 917 ; +C -1 ; WX 667 ; N Aogonek ; B 14 -225 654 718 ; +C 197 ; WX 667 ; N Aring ; B 14 0 654 931 ; +C 213 ; WX 778 ; N Otilde ; B 39 -19 739 917 ; +C -1 ; WX 500 ; N zdotaccent ; B 31 0 469 706 ; +C -1 ; WX 667 ; N Ecaron ; B 86 0 616 929 ; +C -1 ; WX 278 ; N Iogonek ; B -3 -225 211 718 ; +C -1 ; WX 500 ; N kcommaaccent ; B 67 -225 501 718 ; +C -1 ; WX 584 ; N minus ; B 39 216 545 289 ; +C 206 ; WX 278 ; N Icircumflex ; B -6 0 285 929 ; +C -1 ; WX 556 ; N ncaron ; B 65 0 491 734 ; +C -1 ; WX 278 ; N tcommaaccent ; B 14 -225 257 669 ; +C 172 ; WX 584 ; N logicalnot ; B 39 108 545 390 ; +C 246 ; WX 556 ; N odieresis ; B 35 -14 521 706 ; +C 252 ; WX 556 ; N udieresis ; B 68 -15 489 706 ; +C -1 ; WX 549 ; N notequal ; B 12 -35 537 551 ; +C -1 ; WX 556 ; N gcommaaccent ; B 40 -220 499 822 ; +C 240 ; WX 556 ; N eth ; B 35 -15 522 737 ; +C 158 ; WX 500 ; N zcaron ; B 31 0 469 734 ; +C -1 ; WX 556 ; N ncommaaccent ; B 65 -225 491 538 ; +C 185 ; WX 333 ; N onesuperior ; B 43 281 222 703 ; +C -1 ; WX 278 ; N imacron ; B 5 0 272 684 ; +C 128 ; WX 556 ; N Euro ; B 0 0 0 0 ; +EndCharMetrics +StartKernData +StartKernPairs 2705 +KPX A C -30 +KPX A Cacute -30 +KPX A Ccaron -30 +KPX A Ccedilla -30 +KPX A G -30 +KPX A Gbreve -30 +KPX A Gcommaaccent -30 +KPX A O -30 +KPX A Oacute -30 +KPX A Ocircumflex -30 +KPX A Odieresis -30 +KPX A Ograve -30 +KPX A Ohungarumlaut -30 +KPX A Omacron -30 +KPX A Oslash -30 +KPX A Otilde -30 +KPX A Q -30 +KPX A T -120 +KPX A Tcaron -120 +KPX A Tcommaaccent -120 +KPX A U -50 +KPX A Uacute -50 +KPX A Ucircumflex -50 +KPX A Udieresis -50 +KPX A Ugrave -50 +KPX A Uhungarumlaut -50 +KPX A Umacron -50 +KPX A Uogonek -50 +KPX A Uring -50 +KPX A V -70 +KPX A W -50 +KPX A Y -100 +KPX A Yacute -100 +KPX A Ydieresis -100 +KPX A u -30 +KPX A uacute -30 +KPX A ucircumflex -30 +KPX A udieresis -30 +KPX A ugrave -30 +KPX A uhungarumlaut -30 +KPX A umacron -30 +KPX A uogonek -30 +KPX A uring -30 +KPX A v -40 +KPX A w -40 +KPX A y -40 +KPX A yacute -40 +KPX A ydieresis -40 +KPX Aacute C -30 +KPX Aacute Cacute -30 +KPX Aacute Ccaron -30 +KPX Aacute Ccedilla -30 +KPX Aacute G -30 +KPX Aacute Gbreve -30 +KPX Aacute Gcommaaccent -30 +KPX Aacute O -30 +KPX Aacute Oacute -30 +KPX Aacute Ocircumflex -30 +KPX Aacute Odieresis -30 +KPX Aacute Ograve -30 +KPX Aacute Ohungarumlaut -30 +KPX Aacute Omacron -30 +KPX Aacute Oslash -30 +KPX Aacute Otilde -30 +KPX Aacute Q -30 +KPX Aacute T -120 +KPX Aacute Tcaron -120 +KPX Aacute Tcommaaccent -120 +KPX Aacute U -50 +KPX Aacute Uacute -50 +KPX Aacute Ucircumflex -50 +KPX Aacute Udieresis -50 +KPX Aacute Ugrave -50 +KPX Aacute Uhungarumlaut -50 +KPX Aacute Umacron -50 +KPX Aacute Uogonek -50 +KPX Aacute Uring -50 +KPX Aacute V -70 +KPX Aacute W -50 +KPX Aacute Y -100 +KPX Aacute Yacute -100 +KPX Aacute Ydieresis -100 +KPX Aacute u -30 +KPX Aacute uacute -30 +KPX Aacute ucircumflex -30 +KPX Aacute udieresis -30 +KPX Aacute ugrave -30 +KPX Aacute uhungarumlaut -30 +KPX Aacute umacron -30 +KPX Aacute uogonek -30 +KPX Aacute uring -30 +KPX Aacute v -40 +KPX Aacute w -40 +KPX Aacute y -40 +KPX Aacute yacute -40 +KPX Aacute ydieresis -40 +KPX Abreve C -30 +KPX Abreve Cacute -30 +KPX Abreve Ccaron -30 +KPX Abreve Ccedilla -30 +KPX Abreve G -30 +KPX Abreve Gbreve -30 +KPX Abreve Gcommaaccent -30 +KPX Abreve O -30 +KPX Abreve Oacute -30 +KPX Abreve Ocircumflex -30 +KPX Abreve Odieresis -30 +KPX Abreve Ograve -30 +KPX Abreve Ohungarumlaut -30 +KPX Abreve Omacron -30 +KPX Abreve Oslash -30 +KPX Abreve Otilde -30 +KPX Abreve Q -30 +KPX Abreve T -120 +KPX Abreve Tcaron -120 +KPX Abreve Tcommaaccent -120 +KPX Abreve U -50 +KPX Abreve Uacute -50 +KPX Abreve Ucircumflex -50 +KPX Abreve Udieresis -50 +KPX Abreve Ugrave -50 +KPX Abreve Uhungarumlaut -50 +KPX Abreve Umacron -50 +KPX Abreve Uogonek -50 +KPX Abreve Uring -50 +KPX Abreve V -70 +KPX Abreve W -50 +KPX Abreve Y -100 +KPX Abreve Yacute -100 +KPX Abreve Ydieresis -100 +KPX Abreve u -30 +KPX Abreve uacute -30 +KPX Abreve ucircumflex -30 +KPX Abreve udieresis -30 +KPX Abreve ugrave -30 +KPX Abreve uhungarumlaut -30 +KPX Abreve umacron -30 +KPX Abreve uogonek -30 +KPX Abreve uring -30 +KPX Abreve v -40 +KPX Abreve w -40 +KPX Abreve y -40 +KPX Abreve yacute -40 +KPX Abreve ydieresis -40 +KPX Acircumflex C -30 +KPX Acircumflex Cacute -30 +KPX Acircumflex Ccaron -30 +KPX Acircumflex Ccedilla -30 +KPX Acircumflex G -30 +KPX Acircumflex Gbreve -30 +KPX Acircumflex Gcommaaccent -30 +KPX Acircumflex O -30 +KPX Acircumflex Oacute -30 +KPX Acircumflex Ocircumflex -30 +KPX Acircumflex Odieresis -30 +KPX Acircumflex Ograve -30 +KPX Acircumflex Ohungarumlaut -30 +KPX Acircumflex Omacron -30 +KPX Acircumflex Oslash -30 +KPX Acircumflex Otilde -30 +KPX Acircumflex Q -30 +KPX Acircumflex T -120 +KPX Acircumflex Tcaron -120 +KPX Acircumflex Tcommaaccent -120 +KPX Acircumflex U -50 +KPX Acircumflex Uacute -50 +KPX Acircumflex Ucircumflex -50 +KPX Acircumflex Udieresis -50 +KPX Acircumflex Ugrave -50 +KPX Acircumflex Uhungarumlaut -50 +KPX Acircumflex Umacron -50 +KPX Acircumflex Uogonek -50 +KPX Acircumflex Uring -50 +KPX Acircumflex V -70 +KPX Acircumflex W -50 +KPX Acircumflex Y -100 +KPX Acircumflex Yacute -100 +KPX Acircumflex Ydieresis -100 +KPX Acircumflex u -30 +KPX Acircumflex uacute -30 +KPX Acircumflex ucircumflex -30 +KPX Acircumflex udieresis -30 +KPX Acircumflex ugrave -30 +KPX Acircumflex uhungarumlaut -30 +KPX Acircumflex umacron -30 +KPX Acircumflex uogonek -30 +KPX Acircumflex uring -30 +KPX Acircumflex v -40 +KPX Acircumflex w -40 +KPX Acircumflex y -40 +KPX Acircumflex yacute -40 +KPX Acircumflex ydieresis -40 +KPX Adieresis C -30 +KPX Adieresis Cacute -30 +KPX Adieresis Ccaron -30 +KPX Adieresis Ccedilla -30 +KPX Adieresis G -30 +KPX Adieresis Gbreve -30 +KPX Adieresis Gcommaaccent -30 +KPX Adieresis O -30 +KPX Adieresis Oacute -30 +KPX Adieresis Ocircumflex -30 +KPX Adieresis Odieresis -30 +KPX Adieresis Ograve -30 +KPX Adieresis Ohungarumlaut -30 +KPX Adieresis Omacron -30 +KPX Adieresis Oslash -30 +KPX Adieresis Otilde -30 +KPX Adieresis Q -30 +KPX Adieresis T -120 +KPX Adieresis Tcaron -120 +KPX Adieresis Tcommaaccent -120 +KPX Adieresis U -50 +KPX Adieresis Uacute -50 +KPX Adieresis Ucircumflex -50 +KPX Adieresis Udieresis -50 +KPX Adieresis Ugrave -50 +KPX Adieresis Uhungarumlaut -50 +KPX Adieresis Umacron -50 +KPX Adieresis Uogonek -50 +KPX Adieresis Uring -50 +KPX Adieresis V -70 +KPX Adieresis W -50 +KPX Adieresis Y -100 +KPX Adieresis Yacute -100 +KPX Adieresis Ydieresis -100 +KPX Adieresis u -30 +KPX Adieresis uacute -30 +KPX Adieresis ucircumflex -30 +KPX Adieresis udieresis -30 +KPX Adieresis ugrave -30 +KPX Adieresis uhungarumlaut -30 +KPX Adieresis umacron -30 +KPX Adieresis uogonek -30 +KPX Adieresis uring -30 +KPX Adieresis v -40 +KPX Adieresis w -40 +KPX Adieresis y -40 +KPX Adieresis yacute -40 +KPX Adieresis ydieresis -40 +KPX Agrave C -30 +KPX Agrave Cacute -30 +KPX Agrave Ccaron -30 +KPX Agrave Ccedilla -30 +KPX Agrave G -30 +KPX Agrave Gbreve -30 +KPX Agrave Gcommaaccent -30 +KPX Agrave O -30 +KPX Agrave Oacute -30 +KPX Agrave Ocircumflex -30 +KPX Agrave Odieresis -30 +KPX Agrave Ograve -30 +KPX Agrave Ohungarumlaut -30 +KPX Agrave Omacron -30 +KPX Agrave Oslash -30 +KPX Agrave Otilde -30 +KPX Agrave Q -30 +KPX Agrave T -120 +KPX Agrave Tcaron -120 +KPX Agrave Tcommaaccent -120 +KPX Agrave U -50 +KPX Agrave Uacute -50 +KPX Agrave Ucircumflex -50 +KPX Agrave Udieresis -50 +KPX Agrave Ugrave -50 +KPX Agrave Uhungarumlaut -50 +KPX Agrave Umacron -50 +KPX Agrave Uogonek -50 +KPX Agrave Uring -50 +KPX Agrave V -70 +KPX Agrave W -50 +KPX Agrave Y -100 +KPX Agrave Yacute -100 +KPX Agrave Ydieresis -100 +KPX Agrave u -30 +KPX Agrave uacute -30 +KPX Agrave ucircumflex -30 +KPX Agrave udieresis -30 +KPX Agrave ugrave -30 +KPX Agrave uhungarumlaut -30 +KPX Agrave umacron -30 +KPX Agrave uogonek -30 +KPX Agrave uring -30 +KPX Agrave v -40 +KPX Agrave w -40 +KPX Agrave y -40 +KPX Agrave yacute -40 +KPX Agrave ydieresis -40 +KPX Amacron C -30 +KPX Amacron Cacute -30 +KPX Amacron Ccaron -30 +KPX Amacron Ccedilla -30 +KPX Amacron G -30 +KPX Amacron Gbreve -30 +KPX Amacron Gcommaaccent -30 +KPX Amacron O -30 +KPX Amacron Oacute -30 +KPX Amacron Ocircumflex -30 +KPX Amacron Odieresis -30 +KPX Amacron Ograve -30 +KPX Amacron Ohungarumlaut -30 +KPX Amacron Omacron -30 +KPX Amacron Oslash -30 +KPX Amacron Otilde -30 +KPX Amacron Q -30 +KPX Amacron T -120 +KPX Amacron Tcaron -120 +KPX Amacron Tcommaaccent -120 +KPX Amacron U -50 +KPX Amacron Uacute -50 +KPX Amacron Ucircumflex -50 +KPX Amacron Udieresis -50 +KPX Amacron Ugrave -50 +KPX Amacron Uhungarumlaut -50 +KPX Amacron Umacron -50 +KPX Amacron Uogonek -50 +KPX Amacron Uring -50 +KPX Amacron V -70 +KPX Amacron W -50 +KPX Amacron Y -100 +KPX Amacron Yacute -100 +KPX Amacron Ydieresis -100 +KPX Amacron u -30 +KPX Amacron uacute -30 +KPX Amacron ucircumflex -30 +KPX Amacron udieresis -30 +KPX Amacron ugrave -30 +KPX Amacron uhungarumlaut -30 +KPX Amacron umacron -30 +KPX Amacron uogonek -30 +KPX Amacron uring -30 +KPX Amacron v -40 +KPX Amacron w -40 +KPX Amacron y -40 +KPX Amacron yacute -40 +KPX Amacron ydieresis -40 +KPX Aogonek C -30 +KPX Aogonek Cacute -30 +KPX Aogonek Ccaron -30 +KPX Aogonek Ccedilla -30 +KPX Aogonek G -30 +KPX Aogonek Gbreve -30 +KPX Aogonek Gcommaaccent -30 +KPX Aogonek O -30 +KPX Aogonek Oacute -30 +KPX Aogonek Ocircumflex -30 +KPX Aogonek Odieresis -30 +KPX Aogonek Ograve -30 +KPX Aogonek Ohungarumlaut -30 +KPX Aogonek Omacron -30 +KPX Aogonek Oslash -30 +KPX Aogonek Otilde -30 +KPX Aogonek Q -30 +KPX Aogonek T -120 +KPX Aogonek Tcaron -120 +KPX Aogonek Tcommaaccent -120 +KPX Aogonek U -50 +KPX Aogonek Uacute -50 +KPX Aogonek Ucircumflex -50 +KPX Aogonek Udieresis -50 +KPX Aogonek Ugrave -50 +KPX Aogonek Uhungarumlaut -50 +KPX Aogonek Umacron -50 +KPX Aogonek Uogonek -50 +KPX Aogonek Uring -50 +KPX Aogonek V -70 +KPX Aogonek W -50 +KPX Aogonek Y -100 +KPX Aogonek Yacute -100 +KPX Aogonek Ydieresis -100 +KPX Aogonek u -30 +KPX Aogonek uacute -30 +KPX Aogonek ucircumflex -30 +KPX Aogonek udieresis -30 +KPX Aogonek ugrave -30 +KPX Aogonek uhungarumlaut -30 +KPX Aogonek umacron -30 +KPX Aogonek uogonek -30 +KPX Aogonek uring -30 +KPX Aogonek v -40 +KPX Aogonek w -40 +KPX Aogonek y -40 +KPX Aogonek yacute -40 +KPX Aogonek ydieresis -40 +KPX Aring C -30 +KPX Aring Cacute -30 +KPX Aring Ccaron -30 +KPX Aring Ccedilla -30 +KPX Aring G -30 +KPX Aring Gbreve -30 +KPX Aring Gcommaaccent -30 +KPX Aring O -30 +KPX Aring Oacute -30 +KPX Aring Ocircumflex -30 +KPX Aring Odieresis -30 +KPX Aring Ograve -30 +KPX Aring Ohungarumlaut -30 +KPX Aring Omacron -30 +KPX Aring Oslash -30 +KPX Aring Otilde -30 +KPX Aring Q -30 +KPX Aring T -120 +KPX Aring Tcaron -120 +KPX Aring Tcommaaccent -120 +KPX Aring U -50 +KPX Aring Uacute -50 +KPX Aring Ucircumflex -50 +KPX Aring Udieresis -50 +KPX Aring Ugrave -50 +KPX Aring Uhungarumlaut -50 +KPX Aring Umacron -50 +KPX Aring Uogonek -50 +KPX Aring Uring -50 +KPX Aring V -70 +KPX Aring W -50 +KPX Aring Y -100 +KPX Aring Yacute -100 +KPX Aring Ydieresis -100 +KPX Aring u -30 +KPX Aring uacute -30 +KPX Aring ucircumflex -30 +KPX Aring udieresis -30 +KPX Aring ugrave -30 +KPX Aring uhungarumlaut -30 +KPX Aring umacron -30 +KPX Aring uogonek -30 +KPX Aring uring -30 +KPX Aring v -40 +KPX Aring w -40 +KPX Aring y -40 +KPX Aring yacute -40 +KPX Aring ydieresis -40 +KPX Atilde C -30 +KPX Atilde Cacute -30 +KPX Atilde Ccaron -30 +KPX Atilde Ccedilla -30 +KPX Atilde G -30 +KPX Atilde Gbreve -30 +KPX Atilde Gcommaaccent -30 +KPX Atilde O -30 +KPX Atilde Oacute -30 +KPX Atilde Ocircumflex -30 +KPX Atilde Odieresis -30 +KPX Atilde Ograve -30 +KPX Atilde Ohungarumlaut -30 +KPX Atilde Omacron -30 +KPX Atilde Oslash -30 +KPX Atilde Otilde -30 +KPX Atilde Q -30 +KPX Atilde T -120 +KPX Atilde Tcaron -120 +KPX Atilde Tcommaaccent -120 +KPX Atilde U -50 +KPX Atilde Uacute -50 +KPX Atilde Ucircumflex -50 +KPX Atilde Udieresis -50 +KPX Atilde Ugrave -50 +KPX Atilde Uhungarumlaut -50 +KPX Atilde Umacron -50 +KPX Atilde Uogonek -50 +KPX Atilde Uring -50 +KPX Atilde V -70 +KPX Atilde W -50 +KPX Atilde Y -100 +KPX Atilde Yacute -100 +KPX Atilde Ydieresis -100 +KPX Atilde u -30 +KPX Atilde uacute -30 +KPX Atilde ucircumflex -30 +KPX Atilde udieresis -30 +KPX Atilde ugrave -30 +KPX Atilde uhungarumlaut -30 +KPX Atilde umacron -30 +KPX Atilde uogonek -30 +KPX Atilde uring -30 +KPX Atilde v -40 +KPX Atilde w -40 +KPX Atilde y -40 +KPX Atilde yacute -40 +KPX Atilde ydieresis -40 +KPX B U -10 +KPX B Uacute -10 +KPX B Ucircumflex -10 +KPX B Udieresis -10 +KPX B Ugrave -10 +KPX B Uhungarumlaut -10 +KPX B Umacron -10 +KPX B Uogonek -10 +KPX B Uring -10 +KPX B comma -20 +KPX B period -20 +KPX C comma -30 +KPX C period -30 +KPX Cacute comma -30 +KPX Cacute period -30 +KPX Ccaron comma -30 +KPX Ccaron period -30 +KPX Ccedilla comma -30 +KPX Ccedilla period -30 +KPX D A -40 +KPX D Aacute -40 +KPX D Abreve -40 +KPX D Acircumflex -40 +KPX D Adieresis -40 +KPX D Agrave -40 +KPX D Amacron -40 +KPX D Aogonek -40 +KPX D Aring -40 +KPX D Atilde -40 +KPX D V -70 +KPX D W -40 +KPX D Y -90 +KPX D Yacute -90 +KPX D Ydieresis -90 +KPX D comma -70 +KPX D period -70 +KPX Dcaron A -40 +KPX Dcaron Aacute -40 +KPX Dcaron Abreve -40 +KPX Dcaron Acircumflex -40 +KPX Dcaron Adieresis -40 +KPX Dcaron Agrave -40 +KPX Dcaron Amacron -40 +KPX Dcaron Aogonek -40 +KPX Dcaron Aring -40 +KPX Dcaron Atilde -40 +KPX Dcaron V -70 +KPX Dcaron W -40 +KPX Dcaron Y -90 +KPX Dcaron Yacute -90 +KPX Dcaron Ydieresis -90 +KPX Dcaron comma -70 +KPX Dcaron period -70 +KPX Dcroat A -40 +KPX Dcroat Aacute -40 +KPX Dcroat Abreve -40 +KPX Dcroat Acircumflex -40 +KPX Dcroat Adieresis -40 +KPX Dcroat Agrave -40 +KPX Dcroat Amacron -40 +KPX Dcroat Aogonek -40 +KPX Dcroat Aring -40 +KPX Dcroat Atilde -40 +KPX Dcroat V -70 +KPX Dcroat W -40 +KPX Dcroat Y -90 +KPX Dcroat Yacute -90 +KPX Dcroat Ydieresis -90 +KPX Dcroat comma -70 +KPX Dcroat period -70 +KPX F A -80 +KPX F Aacute -80 +KPX F Abreve -80 +KPX F Acircumflex -80 +KPX F Adieresis -80 +KPX F Agrave -80 +KPX F Amacron -80 +KPX F Aogonek -80 +KPX F Aring -80 +KPX F Atilde -80 +KPX F a -50 +KPX F aacute -50 +KPX F abreve -50 +KPX F acircumflex -50 +KPX F adieresis -50 +KPX F agrave -50 +KPX F amacron -50 +KPX F aogonek -50 +KPX F aring -50 +KPX F atilde -50 +KPX F comma -150 +KPX F e -30 +KPX F eacute -30 +KPX F ecaron -30 +KPX F ecircumflex -30 +KPX F edieresis -30 +KPX F edotaccent -30 +KPX F egrave -30 +KPX F emacron -30 +KPX F eogonek -30 +KPX F o -30 +KPX F oacute -30 +KPX F ocircumflex -30 +KPX F odieresis -30 +KPX F ograve -30 +KPX F ohungarumlaut -30 +KPX F omacron -30 +KPX F oslash -30 +KPX F otilde -30 +KPX F period -150 +KPX F r -45 +KPX F racute -45 +KPX F rcaron -45 +KPX F rcommaaccent -45 +KPX J A -20 +KPX J Aacute -20 +KPX J Abreve -20 +KPX J Acircumflex -20 +KPX J Adieresis -20 +KPX J Agrave -20 +KPX J Amacron -20 +KPX J Aogonek -20 +KPX J Aring -20 +KPX J Atilde -20 +KPX J a -20 +KPX J aacute -20 +KPX J abreve -20 +KPX J acircumflex -20 +KPX J adieresis -20 +KPX J agrave -20 +KPX J amacron -20 +KPX J aogonek -20 +KPX J aring -20 +KPX J atilde -20 +KPX J comma -30 +KPX J period -30 +KPX J u -20 +KPX J uacute -20 +KPX J ucircumflex -20 +KPX J udieresis -20 +KPX J ugrave -20 +KPX J uhungarumlaut -20 +KPX J umacron -20 +KPX J uogonek -20 +KPX J uring -20 +KPX K O -50 +KPX K Oacute -50 +KPX K Ocircumflex -50 +KPX K Odieresis -50 +KPX K Ograve -50 +KPX K Ohungarumlaut -50 +KPX K Omacron -50 +KPX K Oslash -50 +KPX K Otilde -50 +KPX K e -40 +KPX K eacute -40 +KPX K ecaron -40 +KPX K ecircumflex -40 +KPX K edieresis -40 +KPX K edotaccent -40 +KPX K egrave -40 +KPX K emacron -40 +KPX K eogonek -40 +KPX K o -40 +KPX K oacute -40 +KPX K ocircumflex -40 +KPX K odieresis -40 +KPX K ograve -40 +KPX K ohungarumlaut -40 +KPX K omacron -40 +KPX K oslash -40 +KPX K otilde -40 +KPX K u -30 +KPX K uacute -30 +KPX K ucircumflex -30 +KPX K udieresis -30 +KPX K ugrave -30 +KPX K uhungarumlaut -30 +KPX K umacron -30 +KPX K uogonek -30 +KPX K uring -30 +KPX K y -50 +KPX K yacute -50 +KPX K ydieresis -50 +KPX Kcommaaccent O -50 +KPX Kcommaaccent Oacute -50 +KPX Kcommaaccent Ocircumflex -50 +KPX Kcommaaccent Odieresis -50 +KPX Kcommaaccent Ograve -50 +KPX Kcommaaccent Ohungarumlaut -50 +KPX Kcommaaccent Omacron -50 +KPX Kcommaaccent Oslash -50 +KPX Kcommaaccent Otilde -50 +KPX Kcommaaccent e -40 +KPX Kcommaaccent eacute -40 +KPX Kcommaaccent ecaron -40 +KPX Kcommaaccent ecircumflex -40 +KPX Kcommaaccent edieresis -40 +KPX Kcommaaccent edotaccent -40 +KPX Kcommaaccent egrave -40 +KPX Kcommaaccent emacron -40 +KPX Kcommaaccent eogonek -40 +KPX Kcommaaccent o -40 +KPX Kcommaaccent oacute -40 +KPX Kcommaaccent ocircumflex -40 +KPX Kcommaaccent odieresis -40 +KPX Kcommaaccent ograve -40 +KPX Kcommaaccent ohungarumlaut -40 +KPX Kcommaaccent omacron -40 +KPX Kcommaaccent oslash -40 +KPX Kcommaaccent otilde -40 +KPX Kcommaaccent u -30 +KPX Kcommaaccent uacute -30 +KPX Kcommaaccent ucircumflex -30 +KPX Kcommaaccent udieresis -30 +KPX Kcommaaccent ugrave -30 +KPX Kcommaaccent uhungarumlaut -30 +KPX Kcommaaccent umacron -30 +KPX Kcommaaccent uogonek -30 +KPX Kcommaaccent uring -30 +KPX Kcommaaccent y -50 +KPX Kcommaaccent yacute -50 +KPX Kcommaaccent ydieresis -50 +KPX L T -110 +KPX L Tcaron -110 +KPX L Tcommaaccent -110 +KPX L V -110 +KPX L W -70 +KPX L Y -140 +KPX L Yacute -140 +KPX L Ydieresis -140 +KPX L quotedblright -140 +KPX L quoteright -160 +KPX L y -30 +KPX L yacute -30 +KPX L ydieresis -30 +KPX Lacute T -110 +KPX Lacute Tcaron -110 +KPX Lacute Tcommaaccent -110 +KPX Lacute V -110 +KPX Lacute W -70 +KPX Lacute Y -140 +KPX Lacute Yacute -140 +KPX Lacute Ydieresis -140 +KPX Lacute quotedblright -140 +KPX Lacute quoteright -160 +KPX Lacute y -30 +KPX Lacute yacute -30 +KPX Lacute ydieresis -30 +KPX Lcaron T -110 +KPX Lcaron Tcaron -110 +KPX Lcaron Tcommaaccent -110 +KPX Lcaron V -110 +KPX Lcaron W -70 +KPX Lcaron Y -140 +KPX Lcaron Yacute -140 +KPX Lcaron Ydieresis -140 +KPX Lcaron quotedblright -140 +KPX Lcaron quoteright -160 +KPX Lcaron y -30 +KPX Lcaron yacute -30 +KPX Lcaron ydieresis -30 +KPX Lcommaaccent T -110 +KPX Lcommaaccent Tcaron -110 +KPX Lcommaaccent Tcommaaccent -110 +KPX Lcommaaccent V -110 +KPX Lcommaaccent W -70 +KPX Lcommaaccent Y -140 +KPX Lcommaaccent Yacute -140 +KPX Lcommaaccent Ydieresis -140 +KPX Lcommaaccent quotedblright -140 +KPX Lcommaaccent quoteright -160 +KPX Lcommaaccent y -30 +KPX Lcommaaccent yacute -30 +KPX Lcommaaccent ydieresis -30 +KPX Lslash T -110 +KPX Lslash Tcaron -110 +KPX Lslash Tcommaaccent -110 +KPX Lslash V -110 +KPX Lslash W -70 +KPX Lslash Y -140 +KPX Lslash Yacute -140 +KPX Lslash Ydieresis -140 +KPX Lslash quotedblright -140 +KPX Lslash quoteright -160 +KPX Lslash y -30 +KPX Lslash yacute -30 +KPX Lslash ydieresis -30 +KPX O A -20 +KPX O Aacute -20 +KPX O Abreve -20 +KPX O Acircumflex -20 +KPX O Adieresis -20 +KPX O Agrave -20 +KPX O Amacron -20 +KPX O Aogonek -20 +KPX O Aring -20 +KPX O Atilde -20 +KPX O T -40 +KPX O Tcaron -40 +KPX O Tcommaaccent -40 +KPX O V -50 +KPX O W -30 +KPX O X -60 +KPX O Y -70 +KPX O Yacute -70 +KPX O Ydieresis -70 +KPX O comma -40 +KPX O period -40 +KPX Oacute A -20 +KPX Oacute Aacute -20 +KPX Oacute Abreve -20 +KPX Oacute Acircumflex -20 +KPX Oacute Adieresis -20 +KPX Oacute Agrave -20 +KPX Oacute Amacron -20 +KPX Oacute Aogonek -20 +KPX Oacute Aring -20 +KPX Oacute Atilde -20 +KPX Oacute T -40 +KPX Oacute Tcaron -40 +KPX Oacute Tcommaaccent -40 +KPX Oacute V -50 +KPX Oacute W -30 +KPX Oacute X -60 +KPX Oacute Y -70 +KPX Oacute Yacute -70 +KPX Oacute Ydieresis -70 +KPX Oacute comma -40 +KPX Oacute period -40 +KPX Ocircumflex A -20 +KPX Ocircumflex Aacute -20 +KPX Ocircumflex Abreve -20 +KPX Ocircumflex Acircumflex -20 +KPX Ocircumflex Adieresis -20 +KPX Ocircumflex Agrave -20 +KPX Ocircumflex Amacron -20 +KPX Ocircumflex Aogonek -20 +KPX Ocircumflex Aring -20 +KPX Ocircumflex Atilde -20 +KPX Ocircumflex T -40 +KPX Ocircumflex Tcaron -40 +KPX Ocircumflex Tcommaaccent -40 +KPX Ocircumflex V -50 +KPX Ocircumflex W -30 +KPX Ocircumflex X -60 +KPX Ocircumflex Y -70 +KPX Ocircumflex Yacute -70 +KPX Ocircumflex Ydieresis -70 +KPX Ocircumflex comma -40 +KPX Ocircumflex period -40 +KPX Odieresis A -20 +KPX Odieresis Aacute -20 +KPX Odieresis Abreve -20 +KPX Odieresis Acircumflex -20 +KPX Odieresis Adieresis -20 +KPX Odieresis Agrave -20 +KPX Odieresis Amacron -20 +KPX Odieresis Aogonek -20 +KPX Odieresis Aring -20 +KPX Odieresis Atilde -20 +KPX Odieresis T -40 +KPX Odieresis Tcaron -40 +KPX Odieresis Tcommaaccent -40 +KPX Odieresis V -50 +KPX Odieresis W -30 +KPX Odieresis X -60 +KPX Odieresis Y -70 +KPX Odieresis Yacute -70 +KPX Odieresis Ydieresis -70 +KPX Odieresis comma -40 +KPX Odieresis period -40 +KPX Ograve A -20 +KPX Ograve Aacute -20 +KPX Ograve Abreve -20 +KPX Ograve Acircumflex -20 +KPX Ograve Adieresis -20 +KPX Ograve Agrave -20 +KPX Ograve Amacron -20 +KPX Ograve Aogonek -20 +KPX Ograve Aring -20 +KPX Ograve Atilde -20 +KPX Ograve T -40 +KPX Ograve Tcaron -40 +KPX Ograve Tcommaaccent -40 +KPX Ograve V -50 +KPX Ograve W -30 +KPX Ograve X -60 +KPX Ograve Y -70 +KPX Ograve Yacute -70 +KPX Ograve Ydieresis -70 +KPX Ograve comma -40 +KPX Ograve period -40 +KPX Ohungarumlaut A -20 +KPX Ohungarumlaut Aacute -20 +KPX Ohungarumlaut Abreve -20 +KPX Ohungarumlaut Acircumflex -20 +KPX Ohungarumlaut Adieresis -20 +KPX Ohungarumlaut Agrave -20 +KPX Ohungarumlaut Amacron -20 +KPX Ohungarumlaut Aogonek -20 +KPX Ohungarumlaut Aring -20 +KPX Ohungarumlaut Atilde -20 +KPX Ohungarumlaut T -40 +KPX Ohungarumlaut Tcaron -40 +KPX Ohungarumlaut Tcommaaccent -40 +KPX Ohungarumlaut V -50 +KPX Ohungarumlaut W -30 +KPX Ohungarumlaut X -60 +KPX Ohungarumlaut Y -70 +KPX Ohungarumlaut Yacute -70 +KPX Ohungarumlaut Ydieresis -70 +KPX Ohungarumlaut comma -40 +KPX Ohungarumlaut period -40 +KPX Omacron A -20 +KPX Omacron Aacute -20 +KPX Omacron Abreve -20 +KPX Omacron Acircumflex -20 +KPX Omacron Adieresis -20 +KPX Omacron Agrave -20 +KPX Omacron Amacron -20 +KPX Omacron Aogonek -20 +KPX Omacron Aring -20 +KPX Omacron Atilde -20 +KPX Omacron T -40 +KPX Omacron Tcaron -40 +KPX Omacron Tcommaaccent -40 +KPX Omacron V -50 +KPX Omacron W -30 +KPX Omacron X -60 +KPX Omacron Y -70 +KPX Omacron Yacute -70 +KPX Omacron Ydieresis -70 +KPX Omacron comma -40 +KPX Omacron period -40 +KPX Oslash A -20 +KPX Oslash Aacute -20 +KPX Oslash Abreve -20 +KPX Oslash Acircumflex -20 +KPX Oslash Adieresis -20 +KPX Oslash Agrave -20 +KPX Oslash Amacron -20 +KPX Oslash Aogonek -20 +KPX Oslash Aring -20 +KPX Oslash Atilde -20 +KPX Oslash T -40 +KPX Oslash Tcaron -40 +KPX Oslash Tcommaaccent -40 +KPX Oslash V -50 +KPX Oslash W -30 +KPX Oslash X -60 +KPX Oslash Y -70 +KPX Oslash Yacute -70 +KPX Oslash Ydieresis -70 +KPX Oslash comma -40 +KPX Oslash period -40 +KPX Otilde A -20 +KPX Otilde Aacute -20 +KPX Otilde Abreve -20 +KPX Otilde Acircumflex -20 +KPX Otilde Adieresis -20 +KPX Otilde Agrave -20 +KPX Otilde Amacron -20 +KPX Otilde Aogonek -20 +KPX Otilde Aring -20 +KPX Otilde Atilde -20 +KPX Otilde T -40 +KPX Otilde Tcaron -40 +KPX Otilde Tcommaaccent -40 +KPX Otilde V -50 +KPX Otilde W -30 +KPX Otilde X -60 +KPX Otilde Y -70 +KPX Otilde Yacute -70 +KPX Otilde Ydieresis -70 +KPX Otilde comma -40 +KPX Otilde period -40 +KPX P A -120 +KPX P Aacute -120 +KPX P Abreve -120 +KPX P Acircumflex -120 +KPX P Adieresis -120 +KPX P Agrave -120 +KPX P Amacron -120 +KPX P Aogonek -120 +KPX P Aring -120 +KPX P Atilde -120 +KPX P a -40 +KPX P aacute -40 +KPX P abreve -40 +KPX P acircumflex -40 +KPX P adieresis -40 +KPX P agrave -40 +KPX P amacron -40 +KPX P aogonek -40 +KPX P aring -40 +KPX P atilde -40 +KPX P comma -180 +KPX P e -50 +KPX P eacute -50 +KPX P ecaron -50 +KPX P ecircumflex -50 +KPX P edieresis -50 +KPX P edotaccent -50 +KPX P egrave -50 +KPX P emacron -50 +KPX P eogonek -50 +KPX P o -50 +KPX P oacute -50 +KPX P ocircumflex -50 +KPX P odieresis -50 +KPX P ograve -50 +KPX P ohungarumlaut -50 +KPX P omacron -50 +KPX P oslash -50 +KPX P otilde -50 +KPX P period -180 +KPX Q U -10 +KPX Q Uacute -10 +KPX Q Ucircumflex -10 +KPX Q Udieresis -10 +KPX Q Ugrave -10 +KPX Q Uhungarumlaut -10 +KPX Q Umacron -10 +KPX Q Uogonek -10 +KPX Q Uring -10 +KPX R O -20 +KPX R Oacute -20 +KPX R Ocircumflex -20 +KPX R Odieresis -20 +KPX R Ograve -20 +KPX R Ohungarumlaut -20 +KPX R Omacron -20 +KPX R Oslash -20 +KPX R Otilde -20 +KPX R T -30 +KPX R Tcaron -30 +KPX R Tcommaaccent -30 +KPX R U -40 +KPX R Uacute -40 +KPX R Ucircumflex -40 +KPX R Udieresis -40 +KPX R Ugrave -40 +KPX R Uhungarumlaut -40 +KPX R Umacron -40 +KPX R Uogonek -40 +KPX R Uring -40 +KPX R V -50 +KPX R W -30 +KPX R Y -50 +KPX R Yacute -50 +KPX R Ydieresis -50 +KPX Racute O -20 +KPX Racute Oacute -20 +KPX Racute Ocircumflex -20 +KPX Racute Odieresis -20 +KPX Racute Ograve -20 +KPX Racute Ohungarumlaut -20 +KPX Racute Omacron -20 +KPX Racute Oslash -20 +KPX Racute Otilde -20 +KPX Racute T -30 +KPX Racute Tcaron -30 +KPX Racute Tcommaaccent -30 +KPX Racute U -40 +KPX Racute Uacute -40 +KPX Racute Ucircumflex -40 +KPX Racute Udieresis -40 +KPX Racute Ugrave -40 +KPX Racute Uhungarumlaut -40 +KPX Racute Umacron -40 +KPX Racute Uogonek -40 +KPX Racute Uring -40 +KPX Racute V -50 +KPX Racute W -30 +KPX Racute Y -50 +KPX Racute Yacute -50 +KPX Racute Ydieresis -50 +KPX Rcaron O -20 +KPX Rcaron Oacute -20 +KPX Rcaron Ocircumflex -20 +KPX Rcaron Odieresis -20 +KPX Rcaron Ograve -20 +KPX Rcaron Ohungarumlaut -20 +KPX Rcaron Omacron -20 +KPX Rcaron Oslash -20 +KPX Rcaron Otilde -20 +KPX Rcaron T -30 +KPX Rcaron Tcaron -30 +KPX Rcaron Tcommaaccent -30 +KPX Rcaron U -40 +KPX Rcaron Uacute -40 +KPX Rcaron Ucircumflex -40 +KPX Rcaron Udieresis -40 +KPX Rcaron Ugrave -40 +KPX Rcaron Uhungarumlaut -40 +KPX Rcaron Umacron -40 +KPX Rcaron Uogonek -40 +KPX Rcaron Uring -40 +KPX Rcaron V -50 +KPX Rcaron W -30 +KPX Rcaron Y -50 +KPX Rcaron Yacute -50 +KPX Rcaron Ydieresis -50 +KPX Rcommaaccent O -20 +KPX Rcommaaccent Oacute -20 +KPX Rcommaaccent Ocircumflex -20 +KPX Rcommaaccent Odieresis -20 +KPX Rcommaaccent Ograve -20 +KPX Rcommaaccent Ohungarumlaut -20 +KPX Rcommaaccent Omacron -20 +KPX Rcommaaccent Oslash -20 +KPX Rcommaaccent Otilde -20 +KPX Rcommaaccent T -30 +KPX Rcommaaccent Tcaron -30 +KPX Rcommaaccent Tcommaaccent -30 +KPX Rcommaaccent U -40 +KPX Rcommaaccent Uacute -40 +KPX Rcommaaccent Ucircumflex -40 +KPX Rcommaaccent Udieresis -40 +KPX Rcommaaccent Ugrave -40 +KPX Rcommaaccent Uhungarumlaut -40 +KPX Rcommaaccent Umacron -40 +KPX Rcommaaccent Uogonek -40 +KPX Rcommaaccent Uring -40 +KPX Rcommaaccent V -50 +KPX Rcommaaccent W -30 +KPX Rcommaaccent Y -50 +KPX Rcommaaccent Yacute -50 +KPX Rcommaaccent Ydieresis -50 +KPX S comma -20 +KPX S period -20 +KPX Sacute comma -20 +KPX Sacute period -20 +KPX Scaron comma -20 +KPX Scaron period -20 +KPX Scedilla comma -20 +KPX Scedilla period -20 +KPX Scommaaccent comma -20 +KPX Scommaaccent period -20 +KPX T A -120 +KPX T Aacute -120 +KPX T Abreve -120 +KPX T Acircumflex -120 +KPX T Adieresis -120 +KPX T Agrave -120 +KPX T Amacron -120 +KPX T Aogonek -120 +KPX T Aring -120 +KPX T Atilde -120 +KPX T O -40 +KPX T Oacute -40 +KPX T Ocircumflex -40 +KPX T Odieresis -40 +KPX T Ograve -40 +KPX T Ohungarumlaut -40 +KPX T Omacron -40 +KPX T Oslash -40 +KPX T Otilde -40 +KPX T a -120 +KPX T aacute -120 +KPX T abreve -60 +KPX T acircumflex -120 +KPX T adieresis -120 +KPX T agrave -120 +KPX T amacron -60 +KPX T aogonek -120 +KPX T aring -120 +KPX T atilde -60 +KPX T colon -20 +KPX T comma -120 +KPX T e -120 +KPX T eacute -120 +KPX T ecaron -120 +KPX T ecircumflex -120 +KPX T edieresis -120 +KPX T edotaccent -120 +KPX T egrave -60 +KPX T emacron -60 +KPX T eogonek -120 +KPX T hyphen -140 +KPX T o -120 +KPX T oacute -120 +KPX T ocircumflex -120 +KPX T odieresis -120 +KPX T ograve -120 +KPX T ohungarumlaut -120 +KPX T omacron -60 +KPX T oslash -120 +KPX T otilde -60 +KPX T period -120 +KPX T r -120 +KPX T racute -120 +KPX T rcaron -120 +KPX T rcommaaccent -120 +KPX T semicolon -20 +KPX T u -120 +KPX T uacute -120 +KPX T ucircumflex -120 +KPX T udieresis -120 +KPX T ugrave -120 +KPX T uhungarumlaut -120 +KPX T umacron -60 +KPX T uogonek -120 +KPX T uring -120 +KPX T w -120 +KPX T y -120 +KPX T yacute -120 +KPX T ydieresis -60 +KPX Tcaron A -120 +KPX Tcaron Aacute -120 +KPX Tcaron Abreve -120 +KPX Tcaron Acircumflex -120 +KPX Tcaron Adieresis -120 +KPX Tcaron Agrave -120 +KPX Tcaron Amacron -120 +KPX Tcaron Aogonek -120 +KPX Tcaron Aring -120 +KPX Tcaron Atilde -120 +KPX Tcaron O -40 +KPX Tcaron Oacute -40 +KPX Tcaron Ocircumflex -40 +KPX Tcaron Odieresis -40 +KPX Tcaron Ograve -40 +KPX Tcaron Ohungarumlaut -40 +KPX Tcaron Omacron -40 +KPX Tcaron Oslash -40 +KPX Tcaron Otilde -40 +KPX Tcaron a -120 +KPX Tcaron aacute -120 +KPX Tcaron abreve -60 +KPX Tcaron acircumflex -120 +KPX Tcaron adieresis -120 +KPX Tcaron agrave -120 +KPX Tcaron amacron -60 +KPX Tcaron aogonek -120 +KPX Tcaron aring -120 +KPX Tcaron atilde -60 +KPX Tcaron colon -20 +KPX Tcaron comma -120 +KPX Tcaron e -120 +KPX Tcaron eacute -120 +KPX Tcaron ecaron -120 +KPX Tcaron ecircumflex -120 +KPX Tcaron edieresis -120 +KPX Tcaron edotaccent -120 +KPX Tcaron egrave -60 +KPX Tcaron emacron -60 +KPX Tcaron eogonek -120 +KPX Tcaron hyphen -140 +KPX Tcaron o -120 +KPX Tcaron oacute -120 +KPX Tcaron ocircumflex -120 +KPX Tcaron odieresis -120 +KPX Tcaron ograve -120 +KPX Tcaron ohungarumlaut -120 +KPX Tcaron omacron -60 +KPX Tcaron oslash -120 +KPX Tcaron otilde -60 +KPX Tcaron period -120 +KPX Tcaron r -120 +KPX Tcaron racute -120 +KPX Tcaron rcaron -120 +KPX Tcaron rcommaaccent -120 +KPX Tcaron semicolon -20 +KPX Tcaron u -120 +KPX Tcaron uacute -120 +KPX Tcaron ucircumflex -120 +KPX Tcaron udieresis -120 +KPX Tcaron ugrave -120 +KPX Tcaron uhungarumlaut -120 +KPX Tcaron umacron -60 +KPX Tcaron uogonek -120 +KPX Tcaron uring -120 +KPX Tcaron w -120 +KPX Tcaron y -120 +KPX Tcaron yacute -120 +KPX Tcaron ydieresis -60 +KPX Tcommaaccent A -120 +KPX Tcommaaccent Aacute -120 +KPX Tcommaaccent Abreve -120 +KPX Tcommaaccent Acircumflex -120 +KPX Tcommaaccent Adieresis -120 +KPX Tcommaaccent Agrave -120 +KPX Tcommaaccent Amacron -120 +KPX Tcommaaccent Aogonek -120 +KPX Tcommaaccent Aring -120 +KPX Tcommaaccent Atilde -120 +KPX Tcommaaccent O -40 +KPX Tcommaaccent Oacute -40 +KPX Tcommaaccent Ocircumflex -40 +KPX Tcommaaccent Odieresis -40 +KPX Tcommaaccent Ograve -40 +KPX Tcommaaccent Ohungarumlaut -40 +KPX Tcommaaccent Omacron -40 +KPX Tcommaaccent Oslash -40 +KPX Tcommaaccent Otilde -40 +KPX Tcommaaccent a -120 +KPX Tcommaaccent aacute -120 +KPX Tcommaaccent abreve -60 +KPX Tcommaaccent acircumflex -120 +KPX Tcommaaccent adieresis -120 +KPX Tcommaaccent agrave -120 +KPX Tcommaaccent amacron -60 +KPX Tcommaaccent aogonek -120 +KPX Tcommaaccent aring -120 +KPX Tcommaaccent atilde -60 +KPX Tcommaaccent colon -20 +KPX Tcommaaccent comma -120 +KPX Tcommaaccent e -120 +KPX Tcommaaccent eacute -120 +KPX Tcommaaccent ecaron -120 +KPX Tcommaaccent ecircumflex -120 +KPX Tcommaaccent edieresis -120 +KPX Tcommaaccent edotaccent -120 +KPX Tcommaaccent egrave -60 +KPX Tcommaaccent emacron -60 +KPX Tcommaaccent eogonek -120 +KPX Tcommaaccent hyphen -140 +KPX Tcommaaccent o -120 +KPX Tcommaaccent oacute -120 +KPX Tcommaaccent ocircumflex -120 +KPX Tcommaaccent odieresis -120 +KPX Tcommaaccent ograve -120 +KPX Tcommaaccent ohungarumlaut -120 +KPX Tcommaaccent omacron -60 +KPX Tcommaaccent oslash -120 +KPX Tcommaaccent otilde -60 +KPX Tcommaaccent period -120 +KPX Tcommaaccent r -120 +KPX Tcommaaccent racute -120 +KPX Tcommaaccent rcaron -120 +KPX Tcommaaccent rcommaaccent -120 +KPX Tcommaaccent semicolon -20 +KPX Tcommaaccent u -120 +KPX Tcommaaccent uacute -120 +KPX Tcommaaccent ucircumflex -120 +KPX Tcommaaccent udieresis -120 +KPX Tcommaaccent ugrave -120 +KPX Tcommaaccent uhungarumlaut -120 +KPX Tcommaaccent umacron -60 +KPX Tcommaaccent uogonek -120 +KPX Tcommaaccent uring -120 +KPX Tcommaaccent w -120 +KPX Tcommaaccent y -120 +KPX Tcommaaccent yacute -120 +KPX Tcommaaccent ydieresis -60 +KPX U A -40 +KPX U Aacute -40 +KPX U Abreve -40 +KPX U Acircumflex -40 +KPX U Adieresis -40 +KPX U Agrave -40 +KPX U Amacron -40 +KPX U Aogonek -40 +KPX U Aring -40 +KPX U Atilde -40 +KPX U comma -40 +KPX U period -40 +KPX Uacute A -40 +KPX Uacute Aacute -40 +KPX Uacute Abreve -40 +KPX Uacute Acircumflex -40 +KPX Uacute Adieresis -40 +KPX Uacute Agrave -40 +KPX Uacute Amacron -40 +KPX Uacute Aogonek -40 +KPX Uacute Aring -40 +KPX Uacute Atilde -40 +KPX Uacute comma -40 +KPX Uacute period -40 +KPX Ucircumflex A -40 +KPX Ucircumflex Aacute -40 +KPX Ucircumflex Abreve -40 +KPX Ucircumflex Acircumflex -40 +KPX Ucircumflex Adieresis -40 +KPX Ucircumflex Agrave -40 +KPX Ucircumflex Amacron -40 +KPX Ucircumflex Aogonek -40 +KPX Ucircumflex Aring -40 +KPX Ucircumflex Atilde -40 +KPX Ucircumflex comma -40 +KPX Ucircumflex period -40 +KPX Udieresis A -40 +KPX Udieresis Aacute -40 +KPX Udieresis Abreve -40 +KPX Udieresis Acircumflex -40 +KPX Udieresis Adieresis -40 +KPX Udieresis Agrave -40 +KPX Udieresis Amacron -40 +KPX Udieresis Aogonek -40 +KPX Udieresis Aring -40 +KPX Udieresis Atilde -40 +KPX Udieresis comma -40 +KPX Udieresis period -40 +KPX Ugrave A -40 +KPX Ugrave Aacute -40 +KPX Ugrave Abreve -40 +KPX Ugrave Acircumflex -40 +KPX Ugrave Adieresis -40 +KPX Ugrave Agrave -40 +KPX Ugrave Amacron -40 +KPX Ugrave Aogonek -40 +KPX Ugrave Aring -40 +KPX Ugrave Atilde -40 +KPX Ugrave comma -40 +KPX Ugrave period -40 +KPX Uhungarumlaut A -40 +KPX Uhungarumlaut Aacute -40 +KPX Uhungarumlaut Abreve -40 +KPX Uhungarumlaut Acircumflex -40 +KPX Uhungarumlaut Adieresis -40 +KPX Uhungarumlaut Agrave -40 +KPX Uhungarumlaut Amacron -40 +KPX Uhungarumlaut Aogonek -40 +KPX Uhungarumlaut Aring -40 +KPX Uhungarumlaut Atilde -40 +KPX Uhungarumlaut comma -40 +KPX Uhungarumlaut period -40 +KPX Umacron A -40 +KPX Umacron Aacute -40 +KPX Umacron Abreve -40 +KPX Umacron Acircumflex -40 +KPX Umacron Adieresis -40 +KPX Umacron Agrave -40 +KPX Umacron Amacron -40 +KPX Umacron Aogonek -40 +KPX Umacron Aring -40 +KPX Umacron Atilde -40 +KPX Umacron comma -40 +KPX Umacron period -40 +KPX Uogonek A -40 +KPX Uogonek Aacute -40 +KPX Uogonek Abreve -40 +KPX Uogonek Acircumflex -40 +KPX Uogonek Adieresis -40 +KPX Uogonek Agrave -40 +KPX Uogonek Amacron -40 +KPX Uogonek Aogonek -40 +KPX Uogonek Aring -40 +KPX Uogonek Atilde -40 +KPX Uogonek comma -40 +KPX Uogonek period -40 +KPX Uring A -40 +KPX Uring Aacute -40 +KPX Uring Abreve -40 +KPX Uring Acircumflex -40 +KPX Uring Adieresis -40 +KPX Uring Agrave -40 +KPX Uring Amacron -40 +KPX Uring Aogonek -40 +KPX Uring Aring -40 +KPX Uring Atilde -40 +KPX Uring comma -40 +KPX Uring period -40 +KPX V A -80 +KPX V Aacute -80 +KPX V Abreve -80 +KPX V Acircumflex -80 +KPX V Adieresis -80 +KPX V Agrave -80 +KPX V Amacron -80 +KPX V Aogonek -80 +KPX V Aring -80 +KPX V Atilde -80 +KPX V G -40 +KPX V Gbreve -40 +KPX V Gcommaaccent -40 +KPX V O -40 +KPX V Oacute -40 +KPX V Ocircumflex -40 +KPX V Odieresis -40 +KPX V Ograve -40 +KPX V Ohungarumlaut -40 +KPX V Omacron -40 +KPX V Oslash -40 +KPX V Otilde -40 +KPX V a -70 +KPX V aacute -70 +KPX V abreve -70 +KPX V acircumflex -70 +KPX V adieresis -70 +KPX V agrave -70 +KPX V amacron -70 +KPX V aogonek -70 +KPX V aring -70 +KPX V atilde -70 +KPX V colon -40 +KPX V comma -125 +KPX V e -80 +KPX V eacute -80 +KPX V ecaron -80 +KPX V ecircumflex -80 +KPX V edieresis -80 +KPX V edotaccent -80 +KPX V egrave -80 +KPX V emacron -80 +KPX V eogonek -80 +KPX V hyphen -80 +KPX V o -80 +KPX V oacute -80 +KPX V ocircumflex -80 +KPX V odieresis -80 +KPX V ograve -80 +KPX V ohungarumlaut -80 +KPX V omacron -80 +KPX V oslash -80 +KPX V otilde -80 +KPX V period -125 +KPX V semicolon -40 +KPX V u -70 +KPX V uacute -70 +KPX V ucircumflex -70 +KPX V udieresis -70 +KPX V ugrave -70 +KPX V uhungarumlaut -70 +KPX V umacron -70 +KPX V uogonek -70 +KPX V uring -70 +KPX W A -50 +KPX W Aacute -50 +KPX W Abreve -50 +KPX W Acircumflex -50 +KPX W Adieresis -50 +KPX W Agrave -50 +KPX W Amacron -50 +KPX W Aogonek -50 +KPX W Aring -50 +KPX W Atilde -50 +KPX W O -20 +KPX W Oacute -20 +KPX W Ocircumflex -20 +KPX W Odieresis -20 +KPX W Ograve -20 +KPX W Ohungarumlaut -20 +KPX W Omacron -20 +KPX W Oslash -20 +KPX W Otilde -20 +KPX W a -40 +KPX W aacute -40 +KPX W abreve -40 +KPX W acircumflex -40 +KPX W adieresis -40 +KPX W agrave -40 +KPX W amacron -40 +KPX W aogonek -40 +KPX W aring -40 +KPX W atilde -40 +KPX W comma -80 +KPX W e -30 +KPX W eacute -30 +KPX W ecaron -30 +KPX W ecircumflex -30 +KPX W edieresis -30 +KPX W edotaccent -30 +KPX W egrave -30 +KPX W emacron -30 +KPX W eogonek -30 +KPX W hyphen -40 +KPX W o -30 +KPX W oacute -30 +KPX W ocircumflex -30 +KPX W odieresis -30 +KPX W ograve -30 +KPX W ohungarumlaut -30 +KPX W omacron -30 +KPX W oslash -30 +KPX W otilde -30 +KPX W period -80 +KPX W u -30 +KPX W uacute -30 +KPX W ucircumflex -30 +KPX W udieresis -30 +KPX W ugrave -30 +KPX W uhungarumlaut -30 +KPX W umacron -30 +KPX W uogonek -30 +KPX W uring -30 +KPX W y -20 +KPX W yacute -20 +KPX W ydieresis -20 +KPX Y A -110 +KPX Y Aacute -110 +KPX Y Abreve -110 +KPX Y Acircumflex -110 +KPX Y Adieresis -110 +KPX Y Agrave -110 +KPX Y Amacron -110 +KPX Y Aogonek -110 +KPX Y Aring -110 +KPX Y Atilde -110 +KPX Y O -85 +KPX Y Oacute -85 +KPX Y Ocircumflex -85 +KPX Y Odieresis -85 +KPX Y Ograve -85 +KPX Y Ohungarumlaut -85 +KPX Y Omacron -85 +KPX Y Oslash -85 +KPX Y Otilde -85 +KPX Y a -140 +KPX Y aacute -140 +KPX Y abreve -70 +KPX Y acircumflex -140 +KPX Y adieresis -140 +KPX Y agrave -140 +KPX Y amacron -70 +KPX Y aogonek -140 +KPX Y aring -140 +KPX Y atilde -140 +KPX Y colon -60 +KPX Y comma -140 +KPX Y e -140 +KPX Y eacute -140 +KPX Y ecaron -140 +KPX Y ecircumflex -140 +KPX Y edieresis -140 +KPX Y edotaccent -140 +KPX Y egrave -140 +KPX Y emacron -70 +KPX Y eogonek -140 +KPX Y hyphen -140 +KPX Y i -20 +KPX Y iacute -20 +KPX Y iogonek -20 +KPX Y o -140 +KPX Y oacute -140 +KPX Y ocircumflex -140 +KPX Y odieresis -140 +KPX Y ograve -140 +KPX Y ohungarumlaut -140 +KPX Y omacron -140 +KPX Y oslash -140 +KPX Y otilde -140 +KPX Y period -140 +KPX Y semicolon -60 +KPX Y u -110 +KPX Y uacute -110 +KPX Y ucircumflex -110 +KPX Y udieresis -110 +KPX Y ugrave -110 +KPX Y uhungarumlaut -110 +KPX Y umacron -110 +KPX Y uogonek -110 +KPX Y uring -110 +KPX Yacute A -110 +KPX Yacute Aacute -110 +KPX Yacute Abreve -110 +KPX Yacute Acircumflex -110 +KPX Yacute Adieresis -110 +KPX Yacute Agrave -110 +KPX Yacute Amacron -110 +KPX Yacute Aogonek -110 +KPX Yacute Aring -110 +KPX Yacute Atilde -110 +KPX Yacute O -85 +KPX Yacute Oacute -85 +KPX Yacute Ocircumflex -85 +KPX Yacute Odieresis -85 +KPX Yacute Ograve -85 +KPX Yacute Ohungarumlaut -85 +KPX Yacute Omacron -85 +KPX Yacute Oslash -85 +KPX Yacute Otilde -85 +KPX Yacute a -140 +KPX Yacute aacute -140 +KPX Yacute abreve -70 +KPX Yacute acircumflex -140 +KPX Yacute adieresis -140 +KPX Yacute agrave -140 +KPX Yacute amacron -70 +KPX Yacute aogonek -140 +KPX Yacute aring -140 +KPX Yacute atilde -70 +KPX Yacute colon -60 +KPX Yacute comma -140 +KPX Yacute e -140 +KPX Yacute eacute -140 +KPX Yacute ecaron -140 +KPX Yacute ecircumflex -140 +KPX Yacute edieresis -140 +KPX Yacute edotaccent -140 +KPX Yacute egrave -140 +KPX Yacute emacron -70 +KPX Yacute eogonek -140 +KPX Yacute hyphen -140 +KPX Yacute i -20 +KPX Yacute iacute -20 +KPX Yacute iogonek -20 +KPX Yacute o -140 +KPX Yacute oacute -140 +KPX Yacute ocircumflex -140 +KPX Yacute odieresis -140 +KPX Yacute ograve -140 +KPX Yacute ohungarumlaut -140 +KPX Yacute omacron -70 +KPX Yacute oslash -140 +KPX Yacute otilde -140 +KPX Yacute period -140 +KPX Yacute semicolon -60 +KPX Yacute u -110 +KPX Yacute uacute -110 +KPX Yacute ucircumflex -110 +KPX Yacute udieresis -110 +KPX Yacute ugrave -110 +KPX Yacute uhungarumlaut -110 +KPX Yacute umacron -110 +KPX Yacute uogonek -110 +KPX Yacute uring -110 +KPX Ydieresis A -110 +KPX Ydieresis Aacute -110 +KPX Ydieresis Abreve -110 +KPX Ydieresis Acircumflex -110 +KPX Ydieresis Adieresis -110 +KPX Ydieresis Agrave -110 +KPX Ydieresis Amacron -110 +KPX Ydieresis Aogonek -110 +KPX Ydieresis Aring -110 +KPX Ydieresis Atilde -110 +KPX Ydieresis O -85 +KPX Ydieresis Oacute -85 +KPX Ydieresis Ocircumflex -85 +KPX Ydieresis Odieresis -85 +KPX Ydieresis Ograve -85 +KPX Ydieresis Ohungarumlaut -85 +KPX Ydieresis Omacron -85 +KPX Ydieresis Oslash -85 +KPX Ydieresis Otilde -85 +KPX Ydieresis a -140 +KPX Ydieresis aacute -140 +KPX Ydieresis abreve -70 +KPX Ydieresis acircumflex -140 +KPX Ydieresis adieresis -140 +KPX Ydieresis agrave -140 +KPX Ydieresis amacron -70 +KPX Ydieresis aogonek -140 +KPX Ydieresis aring -140 +KPX Ydieresis atilde -70 +KPX Ydieresis colon -60 +KPX Ydieresis comma -140 +KPX Ydieresis e -140 +KPX Ydieresis eacute -140 +KPX Ydieresis ecaron -140 +KPX Ydieresis ecircumflex -140 +KPX Ydieresis edieresis -140 +KPX Ydieresis edotaccent -140 +KPX Ydieresis egrave -140 +KPX Ydieresis emacron -70 +KPX Ydieresis eogonek -140 +KPX Ydieresis hyphen -140 +KPX Ydieresis i -20 +KPX Ydieresis iacute -20 +KPX Ydieresis iogonek -20 +KPX Ydieresis o -140 +KPX Ydieresis oacute -140 +KPX Ydieresis ocircumflex -140 +KPX Ydieresis odieresis -140 +KPX Ydieresis ograve -140 +KPX Ydieresis ohungarumlaut -140 +KPX Ydieresis omacron -140 +KPX Ydieresis oslash -140 +KPX Ydieresis otilde -140 +KPX Ydieresis period -140 +KPX Ydieresis semicolon -60 +KPX Ydieresis u -110 +KPX Ydieresis uacute -110 +KPX Ydieresis ucircumflex -110 +KPX Ydieresis udieresis -110 +KPX Ydieresis ugrave -110 +KPX Ydieresis uhungarumlaut -110 +KPX Ydieresis umacron -110 +KPX Ydieresis uogonek -110 +KPX Ydieresis uring -110 +KPX a v -20 +KPX a w -20 +KPX a y -30 +KPX a yacute -30 +KPX a ydieresis -30 +KPX aacute v -20 +KPX aacute w -20 +KPX aacute y -30 +KPX aacute yacute -30 +KPX aacute ydieresis -30 +KPX abreve v -20 +KPX abreve w -20 +KPX abreve y -30 +KPX abreve yacute -30 +KPX abreve ydieresis -30 +KPX acircumflex v -20 +KPX acircumflex w -20 +KPX acircumflex y -30 +KPX acircumflex yacute -30 +KPX acircumflex ydieresis -30 +KPX adieresis v -20 +KPX adieresis w -20 +KPX adieresis y -30 +KPX adieresis yacute -30 +KPX adieresis ydieresis -30 +KPX agrave v -20 +KPX agrave w -20 +KPX agrave y -30 +KPX agrave yacute -30 +KPX agrave ydieresis -30 +KPX amacron v -20 +KPX amacron w -20 +KPX amacron y -30 +KPX amacron yacute -30 +KPX amacron ydieresis -30 +KPX aogonek v -20 +KPX aogonek w -20 +KPX aogonek y -30 +KPX aogonek yacute -30 +KPX aogonek ydieresis -30 +KPX aring v -20 +KPX aring w -20 +KPX aring y -30 +KPX aring yacute -30 +KPX aring ydieresis -30 +KPX atilde v -20 +KPX atilde w -20 +KPX atilde y -30 +KPX atilde yacute -30 +KPX atilde ydieresis -30 +KPX b b -10 +KPX b comma -40 +KPX b l -20 +KPX b lacute -20 +KPX b lcommaaccent -20 +KPX b lslash -20 +KPX b period -40 +KPX b u -20 +KPX b uacute -20 +KPX b ucircumflex -20 +KPX b udieresis -20 +KPX b ugrave -20 +KPX b uhungarumlaut -20 +KPX b umacron -20 +KPX b uogonek -20 +KPX b uring -20 +KPX b v -20 +KPX b y -20 +KPX b yacute -20 +KPX b ydieresis -20 +KPX c comma -15 +KPX c k -20 +KPX c kcommaaccent -20 +KPX cacute comma -15 +KPX cacute k -20 +KPX cacute kcommaaccent -20 +KPX ccaron comma -15 +KPX ccaron k -20 +KPX ccaron kcommaaccent -20 +KPX ccedilla comma -15 +KPX ccedilla k -20 +KPX ccedilla kcommaaccent -20 +KPX colon space -50 +KPX comma quotedblright -100 +KPX comma quoteright -100 +KPX e comma -15 +KPX e period -15 +KPX e v -30 +KPX e w -20 +KPX e x -30 +KPX e y -20 +KPX e yacute -20 +KPX e ydieresis -20 +KPX eacute comma -15 +KPX eacute period -15 +KPX eacute v -30 +KPX eacute w -20 +KPX eacute x -30 +KPX eacute y -20 +KPX eacute yacute -20 +KPX eacute ydieresis -20 +KPX ecaron comma -15 +KPX ecaron period -15 +KPX ecaron v -30 +KPX ecaron w -20 +KPX ecaron x -30 +KPX ecaron y -20 +KPX ecaron yacute -20 +KPX ecaron ydieresis -20 +KPX ecircumflex comma -15 +KPX ecircumflex period -15 +KPX ecircumflex v -30 +KPX ecircumflex w -20 +KPX ecircumflex x -30 +KPX ecircumflex y -20 +KPX ecircumflex yacute -20 +KPX ecircumflex ydieresis -20 +KPX edieresis comma -15 +KPX edieresis period -15 +KPX edieresis v -30 +KPX edieresis w -20 +KPX edieresis x -30 +KPX edieresis y -20 +KPX edieresis yacute -20 +KPX edieresis ydieresis -20 +KPX edotaccent comma -15 +KPX edotaccent period -15 +KPX edotaccent v -30 +KPX edotaccent w -20 +KPX edotaccent x -30 +KPX edotaccent y -20 +KPX edotaccent yacute -20 +KPX edotaccent ydieresis -20 +KPX egrave comma -15 +KPX egrave period -15 +KPX egrave v -30 +KPX egrave w -20 +KPX egrave x -30 +KPX egrave y -20 +KPX egrave yacute -20 +KPX egrave ydieresis -20 +KPX emacron comma -15 +KPX emacron period -15 +KPX emacron v -30 +KPX emacron w -20 +KPX emacron x -30 +KPX emacron y -20 +KPX emacron yacute -20 +KPX emacron ydieresis -20 +KPX eogonek comma -15 +KPX eogonek period -15 +KPX eogonek v -30 +KPX eogonek w -20 +KPX eogonek x -30 +KPX eogonek y -20 +KPX eogonek yacute -20 +KPX eogonek ydieresis -20 +KPX f a -30 +KPX f aacute -30 +KPX f abreve -30 +KPX f acircumflex -30 +KPX f adieresis -30 +KPX f agrave -30 +KPX f amacron -30 +KPX f aogonek -30 +KPX f aring -30 +KPX f atilde -30 +KPX f comma -30 +KPX f dotlessi -28 +KPX f e -30 +KPX f eacute -30 +KPX f ecaron -30 +KPX f ecircumflex -30 +KPX f edieresis -30 +KPX f edotaccent -30 +KPX f egrave -30 +KPX f emacron -30 +KPX f eogonek -30 +KPX f o -30 +KPX f oacute -30 +KPX f ocircumflex -30 +KPX f odieresis -30 +KPX f ograve -30 +KPX f ohungarumlaut -30 +KPX f omacron -30 +KPX f oslash -30 +KPX f otilde -30 +KPX f period -30 +KPX f quotedblright 60 +KPX f quoteright 50 +KPX g r -10 +KPX g racute -10 +KPX g rcaron -10 +KPX g rcommaaccent -10 +KPX gbreve r -10 +KPX gbreve racute -10 +KPX gbreve rcaron -10 +KPX gbreve rcommaaccent -10 +KPX gcommaaccent r -10 +KPX gcommaaccent racute -10 +KPX gcommaaccent rcaron -10 +KPX gcommaaccent rcommaaccent -10 +KPX h y -30 +KPX h yacute -30 +KPX h ydieresis -30 +KPX k e -20 +KPX k eacute -20 +KPX k ecaron -20 +KPX k ecircumflex -20 +KPX k edieresis -20 +KPX k edotaccent -20 +KPX k egrave -20 +KPX k emacron -20 +KPX k eogonek -20 +KPX k o -20 +KPX k oacute -20 +KPX k ocircumflex -20 +KPX k odieresis -20 +KPX k ograve -20 +KPX k ohungarumlaut -20 +KPX k omacron -20 +KPX k oslash -20 +KPX k otilde -20 +KPX kcommaaccent e -20 +KPX kcommaaccent eacute -20 +KPX kcommaaccent ecaron -20 +KPX kcommaaccent ecircumflex -20 +KPX kcommaaccent edieresis -20 +KPX kcommaaccent edotaccent -20 +KPX kcommaaccent egrave -20 +KPX kcommaaccent emacron -20 +KPX kcommaaccent eogonek -20 +KPX kcommaaccent o -20 +KPX kcommaaccent oacute -20 +KPX kcommaaccent ocircumflex -20 +KPX kcommaaccent odieresis -20 +KPX kcommaaccent ograve -20 +KPX kcommaaccent ohungarumlaut -20 +KPX kcommaaccent omacron -20 +KPX kcommaaccent oslash -20 +KPX kcommaaccent otilde -20 +KPX m u -10 +KPX m uacute -10 +KPX m ucircumflex -10 +KPX m udieresis -10 +KPX m ugrave -10 +KPX m uhungarumlaut -10 +KPX m umacron -10 +KPX m uogonek -10 +KPX m uring -10 +KPX m y -15 +KPX m yacute -15 +KPX m ydieresis -15 +KPX n u -10 +KPX n uacute -10 +KPX n ucircumflex -10 +KPX n udieresis -10 +KPX n ugrave -10 +KPX n uhungarumlaut -10 +KPX n umacron -10 +KPX n uogonek -10 +KPX n uring -10 +KPX n v -20 +KPX n y -15 +KPX n yacute -15 +KPX n ydieresis -15 +KPX nacute u -10 +KPX nacute uacute -10 +KPX nacute ucircumflex -10 +KPX nacute udieresis -10 +KPX nacute ugrave -10 +KPX nacute uhungarumlaut -10 +KPX nacute umacron -10 +KPX nacute uogonek -10 +KPX nacute uring -10 +KPX nacute v -20 +KPX nacute y -15 +KPX nacute yacute -15 +KPX nacute ydieresis -15 +KPX ncaron u -10 +KPX ncaron uacute -10 +KPX ncaron ucircumflex -10 +KPX ncaron udieresis -10 +KPX ncaron ugrave -10 +KPX ncaron uhungarumlaut -10 +KPX ncaron umacron -10 +KPX ncaron uogonek -10 +KPX ncaron uring -10 +KPX ncaron v -20 +KPX ncaron y -15 +KPX ncaron yacute -15 +KPX ncaron ydieresis -15 +KPX ncommaaccent u -10 +KPX ncommaaccent uacute -10 +KPX ncommaaccent ucircumflex -10 +KPX ncommaaccent udieresis -10 +KPX ncommaaccent ugrave -10 +KPX ncommaaccent uhungarumlaut -10 +KPX ncommaaccent umacron -10 +KPX ncommaaccent uogonek -10 +KPX ncommaaccent uring -10 +KPX ncommaaccent v -20 +KPX ncommaaccent y -15 +KPX ncommaaccent yacute -15 +KPX ncommaaccent ydieresis -15 +KPX ntilde u -10 +KPX ntilde uacute -10 +KPX ntilde ucircumflex -10 +KPX ntilde udieresis -10 +KPX ntilde ugrave -10 +KPX ntilde uhungarumlaut -10 +KPX ntilde umacron -10 +KPX ntilde uogonek -10 +KPX ntilde uring -10 +KPX ntilde v -20 +KPX ntilde y -15 +KPX ntilde yacute -15 +KPX ntilde ydieresis -15 +KPX o comma -40 +KPX o period -40 +KPX o v -15 +KPX o w -15 +KPX o x -30 +KPX o y -30 +KPX o yacute -30 +KPX o ydieresis -30 +KPX oacute comma -40 +KPX oacute period -40 +KPX oacute v -15 +KPX oacute w -15 +KPX oacute x -30 +KPX oacute y -30 +KPX oacute yacute -30 +KPX oacute ydieresis -30 +KPX ocircumflex comma -40 +KPX ocircumflex period -40 +KPX ocircumflex v -15 +KPX ocircumflex w -15 +KPX ocircumflex x -30 +KPX ocircumflex y -30 +KPX ocircumflex yacute -30 +KPX ocircumflex ydieresis -30 +KPX odieresis comma -40 +KPX odieresis period -40 +KPX odieresis v -15 +KPX odieresis w -15 +KPX odieresis x -30 +KPX odieresis y -30 +KPX odieresis yacute -30 +KPX odieresis ydieresis -30 +KPX ograve comma -40 +KPX ograve period -40 +KPX ograve v -15 +KPX ograve w -15 +KPX ograve x -30 +KPX ograve y -30 +KPX ograve yacute -30 +KPX ograve ydieresis -30 +KPX ohungarumlaut comma -40 +KPX ohungarumlaut period -40 +KPX ohungarumlaut v -15 +KPX ohungarumlaut w -15 +KPX ohungarumlaut x -30 +KPX ohungarumlaut y -30 +KPX ohungarumlaut yacute -30 +KPX ohungarumlaut ydieresis -30 +KPX omacron comma -40 +KPX omacron period -40 +KPX omacron v -15 +KPX omacron w -15 +KPX omacron x -30 +KPX omacron y -30 +KPX omacron yacute -30 +KPX omacron ydieresis -30 +KPX oslash a -55 +KPX oslash aacute -55 +KPX oslash abreve -55 +KPX oslash acircumflex -55 +KPX oslash adieresis -55 +KPX oslash agrave -55 +KPX oslash amacron -55 +KPX oslash aogonek -55 +KPX oslash aring -55 +KPX oslash atilde -55 +KPX oslash b -55 +KPX oslash c -55 +KPX oslash cacute -55 +KPX oslash ccaron -55 +KPX oslash ccedilla -55 +KPX oslash comma -95 +KPX oslash d -55 +KPX oslash dcroat -55 +KPX oslash e -55 +KPX oslash eacute -55 +KPX oslash ecaron -55 +KPX oslash ecircumflex -55 +KPX oslash edieresis -55 +KPX oslash edotaccent -55 +KPX oslash egrave -55 +KPX oslash emacron -55 +KPX oslash eogonek -55 +KPX oslash f -55 +KPX oslash g -55 +KPX oslash gbreve -55 +KPX oslash gcommaaccent -55 +KPX oslash h -55 +KPX oslash i -55 +KPX oslash iacute -55 +KPX oslash icircumflex -55 +KPX oslash idieresis -55 +KPX oslash igrave -55 +KPX oslash imacron -55 +KPX oslash iogonek -55 +KPX oslash j -55 +KPX oslash k -55 +KPX oslash kcommaaccent -55 +KPX oslash l -55 +KPX oslash lacute -55 +KPX oslash lcommaaccent -55 +KPX oslash lslash -55 +KPX oslash m -55 +KPX oslash n -55 +KPX oslash nacute -55 +KPX oslash ncaron -55 +KPX oslash ncommaaccent -55 +KPX oslash ntilde -55 +KPX oslash o -55 +KPX oslash oacute -55 +KPX oslash ocircumflex -55 +KPX oslash odieresis -55 +KPX oslash ograve -55 +KPX oslash ohungarumlaut -55 +KPX oslash omacron -55 +KPX oslash oslash -55 +KPX oslash otilde -55 +KPX oslash p -55 +KPX oslash period -95 +KPX oslash q -55 +KPX oslash r -55 +KPX oslash racute -55 +KPX oslash rcaron -55 +KPX oslash rcommaaccent -55 +KPX oslash s -55 +KPX oslash sacute -55 +KPX oslash scaron -55 +KPX oslash scedilla -55 +KPX oslash scommaaccent -55 +KPX oslash t -55 +KPX oslash tcommaaccent -55 +KPX oslash u -55 +KPX oslash uacute -55 +KPX oslash ucircumflex -55 +KPX oslash udieresis -55 +KPX oslash ugrave -55 +KPX oslash uhungarumlaut -55 +KPX oslash umacron -55 +KPX oslash uogonek -55 +KPX oslash uring -55 +KPX oslash v -70 +KPX oslash w -70 +KPX oslash x -85 +KPX oslash y -70 +KPX oslash yacute -70 +KPX oslash ydieresis -70 +KPX oslash z -55 +KPX oslash zacute -55 +KPX oslash zcaron -55 +KPX oslash zdotaccent -55 +KPX otilde comma -40 +KPX otilde period -40 +KPX otilde v -15 +KPX otilde w -15 +KPX otilde x -30 +KPX otilde y -30 +KPX otilde yacute -30 +KPX otilde ydieresis -30 +KPX p comma -35 +KPX p period -35 +KPX p y -30 +KPX p yacute -30 +KPX p ydieresis -30 +KPX period quotedblright -100 +KPX period quoteright -100 +KPX period space -60 +KPX quotedblright space -40 +KPX quoteleft quoteleft -57 +KPX quoteright d -50 +KPX quoteright dcroat -50 +KPX quoteright quoteright -57 +KPX quoteright r -50 +KPX quoteright racute -50 +KPX quoteright rcaron -50 +KPX quoteright rcommaaccent -50 +KPX quoteright s -50 +KPX quoteright sacute -50 +KPX quoteright scaron -50 +KPX quoteright scedilla -50 +KPX quoteright scommaaccent -50 +KPX quoteright space -70 +KPX r a -10 +KPX r aacute -10 +KPX r abreve -10 +KPX r acircumflex -10 +KPX r adieresis -10 +KPX r agrave -10 +KPX r amacron -10 +KPX r aogonek -10 +KPX r aring -10 +KPX r atilde -10 +KPX r colon 30 +KPX r comma -50 +KPX r i 15 +KPX r iacute 15 +KPX r icircumflex 15 +KPX r idieresis 15 +KPX r igrave 15 +KPX r imacron 15 +KPX r iogonek 15 +KPX r k 15 +KPX r kcommaaccent 15 +KPX r l 15 +KPX r lacute 15 +KPX r lcommaaccent 15 +KPX r lslash 15 +KPX r m 25 +KPX r n 25 +KPX r nacute 25 +KPX r ncaron 25 +KPX r ncommaaccent 25 +KPX r ntilde 25 +KPX r p 30 +KPX r period -50 +KPX r semicolon 30 +KPX r t 40 +KPX r tcommaaccent 40 +KPX r u 15 +KPX r uacute 15 +KPX r ucircumflex 15 +KPX r udieresis 15 +KPX r ugrave 15 +KPX r uhungarumlaut 15 +KPX r umacron 15 +KPX r uogonek 15 +KPX r uring 15 +KPX r v 30 +KPX r y 30 +KPX r yacute 30 +KPX r ydieresis 30 +KPX racute a -10 +KPX racute aacute -10 +KPX racute abreve -10 +KPX racute acircumflex -10 +KPX racute adieresis -10 +KPX racute agrave -10 +KPX racute amacron -10 +KPX racute aogonek -10 +KPX racute aring -10 +KPX racute atilde -10 +KPX racute colon 30 +KPX racute comma -50 +KPX racute i 15 +KPX racute iacute 15 +KPX racute icircumflex 15 +KPX racute idieresis 15 +KPX racute igrave 15 +KPX racute imacron 15 +KPX racute iogonek 15 +KPX racute k 15 +KPX racute kcommaaccent 15 +KPX racute l 15 +KPX racute lacute 15 +KPX racute lcommaaccent 15 +KPX racute lslash 15 +KPX racute m 25 +KPX racute n 25 +KPX racute nacute 25 +KPX racute ncaron 25 +KPX racute ncommaaccent 25 +KPX racute ntilde 25 +KPX racute p 30 +KPX racute period -50 +KPX racute semicolon 30 +KPX racute t 40 +KPX racute tcommaaccent 40 +KPX racute u 15 +KPX racute uacute 15 +KPX racute ucircumflex 15 +KPX racute udieresis 15 +KPX racute ugrave 15 +KPX racute uhungarumlaut 15 +KPX racute umacron 15 +KPX racute uogonek 15 +KPX racute uring 15 +KPX racute v 30 +KPX racute y 30 +KPX racute yacute 30 +KPX racute ydieresis 30 +KPX rcaron a -10 +KPX rcaron aacute -10 +KPX rcaron abreve -10 +KPX rcaron acircumflex -10 +KPX rcaron adieresis -10 +KPX rcaron agrave -10 +KPX rcaron amacron -10 +KPX rcaron aogonek -10 +KPX rcaron aring -10 +KPX rcaron atilde -10 +KPX rcaron colon 30 +KPX rcaron comma -50 +KPX rcaron i 15 +KPX rcaron iacute 15 +KPX rcaron icircumflex 15 +KPX rcaron idieresis 15 +KPX rcaron igrave 15 +KPX rcaron imacron 15 +KPX rcaron iogonek 15 +KPX rcaron k 15 +KPX rcaron kcommaaccent 15 +KPX rcaron l 15 +KPX rcaron lacute 15 +KPX rcaron lcommaaccent 15 +KPX rcaron lslash 15 +KPX rcaron m 25 +KPX rcaron n 25 +KPX rcaron nacute 25 +KPX rcaron ncaron 25 +KPX rcaron ncommaaccent 25 +KPX rcaron ntilde 25 +KPX rcaron p 30 +KPX rcaron period -50 +KPX rcaron semicolon 30 +KPX rcaron t 40 +KPX rcaron tcommaaccent 40 +KPX rcaron u 15 +KPX rcaron uacute 15 +KPX rcaron ucircumflex 15 +KPX rcaron udieresis 15 +KPX rcaron ugrave 15 +KPX rcaron uhungarumlaut 15 +KPX rcaron umacron 15 +KPX rcaron uogonek 15 +KPX rcaron uring 15 +KPX rcaron v 30 +KPX rcaron y 30 +KPX rcaron yacute 30 +KPX rcaron ydieresis 30 +KPX rcommaaccent a -10 +KPX rcommaaccent aacute -10 +KPX rcommaaccent abreve -10 +KPX rcommaaccent acircumflex -10 +KPX rcommaaccent adieresis -10 +KPX rcommaaccent agrave -10 +KPX rcommaaccent amacron -10 +KPX rcommaaccent aogonek -10 +KPX rcommaaccent aring -10 +KPX rcommaaccent atilde -10 +KPX rcommaaccent colon 30 +KPX rcommaaccent comma -50 +KPX rcommaaccent i 15 +KPX rcommaaccent iacute 15 +KPX rcommaaccent icircumflex 15 +KPX rcommaaccent idieresis 15 +KPX rcommaaccent igrave 15 +KPX rcommaaccent imacron 15 +KPX rcommaaccent iogonek 15 +KPX rcommaaccent k 15 +KPX rcommaaccent kcommaaccent 15 +KPX rcommaaccent l 15 +KPX rcommaaccent lacute 15 +KPX rcommaaccent lcommaaccent 15 +KPX rcommaaccent lslash 15 +KPX rcommaaccent m 25 +KPX rcommaaccent n 25 +KPX rcommaaccent nacute 25 +KPX rcommaaccent ncaron 25 +KPX rcommaaccent ncommaaccent 25 +KPX rcommaaccent ntilde 25 +KPX rcommaaccent p 30 +KPX rcommaaccent period -50 +KPX rcommaaccent semicolon 30 +KPX rcommaaccent t 40 +KPX rcommaaccent tcommaaccent 40 +KPX rcommaaccent u 15 +KPX rcommaaccent uacute 15 +KPX rcommaaccent ucircumflex 15 +KPX rcommaaccent udieresis 15 +KPX rcommaaccent ugrave 15 +KPX rcommaaccent uhungarumlaut 15 +KPX rcommaaccent umacron 15 +KPX rcommaaccent uogonek 15 +KPX rcommaaccent uring 15 +KPX rcommaaccent v 30 +KPX rcommaaccent y 30 +KPX rcommaaccent yacute 30 +KPX rcommaaccent ydieresis 30 +KPX s comma -15 +KPX s period -15 +KPX s w -30 +KPX sacute comma -15 +KPX sacute period -15 +KPX sacute w -30 +KPX scaron comma -15 +KPX scaron period -15 +KPX scaron w -30 +KPX scedilla comma -15 +KPX scedilla period -15 +KPX scedilla w -30 +KPX scommaaccent comma -15 +KPX scommaaccent period -15 +KPX scommaaccent w -30 +KPX semicolon space -50 +KPX space T -50 +KPX space Tcaron -50 +KPX space Tcommaaccent -50 +KPX space V -50 +KPX space W -40 +KPX space Y -90 +KPX space Yacute -90 +KPX space Ydieresis -90 +KPX space quotedblleft -30 +KPX space quoteleft -60 +KPX v a -25 +KPX v aacute -25 +KPX v abreve -25 +KPX v acircumflex -25 +KPX v adieresis -25 +KPX v agrave -25 +KPX v amacron -25 +KPX v aogonek -25 +KPX v aring -25 +KPX v atilde -25 +KPX v comma -80 +KPX v e -25 +KPX v eacute -25 +KPX v ecaron -25 +KPX v ecircumflex -25 +KPX v edieresis -25 +KPX v edotaccent -25 +KPX v egrave -25 +KPX v emacron -25 +KPX v eogonek -25 +KPX v o -25 +KPX v oacute -25 +KPX v ocircumflex -25 +KPX v odieresis -25 +KPX v ograve -25 +KPX v ohungarumlaut -25 +KPX v omacron -25 +KPX v oslash -25 +KPX v otilde -25 +KPX v period -80 +KPX w a -15 +KPX w aacute -15 +KPX w abreve -15 +KPX w acircumflex -15 +KPX w adieresis -15 +KPX w agrave -15 +KPX w amacron -15 +KPX w aogonek -15 +KPX w aring -15 +KPX w atilde -15 +KPX w comma -60 +KPX w e -10 +KPX w eacute -10 +KPX w ecaron -10 +KPX w ecircumflex -10 +KPX w edieresis -10 +KPX w edotaccent -10 +KPX w egrave -10 +KPX w emacron -10 +KPX w eogonek -10 +KPX w o -10 +KPX w oacute -10 +KPX w ocircumflex -10 +KPX w odieresis -10 +KPX w ograve -10 +KPX w ohungarumlaut -10 +KPX w omacron -10 +KPX w oslash -10 +KPX w otilde -10 +KPX w period -60 +KPX x e -30 +KPX x eacute -30 +KPX x ecaron -30 +KPX x ecircumflex -30 +KPX x edieresis -30 +KPX x edotaccent -30 +KPX x egrave -30 +KPX x emacron -30 +KPX x eogonek -30 +KPX y a -20 +KPX y aacute -20 +KPX y abreve -20 +KPX y acircumflex -20 +KPX y adieresis -20 +KPX y agrave -20 +KPX y amacron -20 +KPX y aogonek -20 +KPX y aring -20 +KPX y atilde -20 +KPX y comma -100 +KPX y e -20 +KPX y eacute -20 +KPX y ecaron -20 +KPX y ecircumflex -20 +KPX y edieresis -20 +KPX y edotaccent -20 +KPX y egrave -20 +KPX y emacron -20 +KPX y eogonek -20 +KPX y o -20 +KPX y oacute -20 +KPX y ocircumflex -20 +KPX y odieresis -20 +KPX y ograve -20 +KPX y ohungarumlaut -20 +KPX y omacron -20 +KPX y oslash -20 +KPX y otilde -20 +KPX y period -100 +KPX yacute a -20 +KPX yacute aacute -20 +KPX yacute abreve -20 +KPX yacute acircumflex -20 +KPX yacute adieresis -20 +KPX yacute agrave -20 +KPX yacute amacron -20 +KPX yacute aogonek -20 +KPX yacute aring -20 +KPX yacute atilde -20 +KPX yacute comma -100 +KPX yacute e -20 +KPX yacute eacute -20 +KPX yacute ecaron -20 +KPX yacute ecircumflex -20 +KPX yacute edieresis -20 +KPX yacute edotaccent -20 +KPX yacute egrave -20 +KPX yacute emacron -20 +KPX yacute eogonek -20 +KPX yacute o -20 +KPX yacute oacute -20 +KPX yacute ocircumflex -20 +KPX yacute odieresis -20 +KPX yacute ograve -20 +KPX yacute ohungarumlaut -20 +KPX yacute omacron -20 +KPX yacute oslash -20 +KPX yacute otilde -20 +KPX yacute period -100 +KPX ydieresis a -20 +KPX ydieresis aacute -20 +KPX ydieresis abreve -20 +KPX ydieresis acircumflex -20 +KPX ydieresis adieresis -20 +KPX ydieresis agrave -20 +KPX ydieresis amacron -20 +KPX ydieresis aogonek -20 +KPX ydieresis aring -20 +KPX ydieresis atilde -20 +KPX ydieresis comma -100 +KPX ydieresis e -20 +KPX ydieresis eacute -20 +KPX ydieresis ecaron -20 +KPX ydieresis ecircumflex -20 +KPX ydieresis edieresis -20 +KPX ydieresis edotaccent -20 +KPX ydieresis egrave -20 +KPX ydieresis emacron -20 +KPX ydieresis eogonek -20 +KPX ydieresis o -20 +KPX ydieresis oacute -20 +KPX ydieresis ocircumflex -20 +KPX ydieresis odieresis -20 +KPX ydieresis ograve -20 +KPX ydieresis ohungarumlaut -20 +KPX ydieresis omacron -20 +KPX ydieresis oslash -20 +KPX ydieresis otilde -20 +KPX ydieresis period -100 +KPX z e -15 +KPX z eacute -15 +KPX z ecaron -15 +KPX z ecircumflex -15 +KPX z edieresis -15 +KPX z edotaccent -15 +KPX z egrave -15 +KPX z emacron -15 +KPX z eogonek -15 +KPX z o -15 +KPX z oacute -15 +KPX z ocircumflex -15 +KPX z odieresis -15 +KPX z ograve -15 +KPX z ohungarumlaut -15 +KPX z omacron -15 +KPX z oslash -15 +KPX z otilde -15 +KPX zacute e -15 +KPX zacute eacute -15 +KPX zacute ecaron -15 +KPX zacute ecircumflex -15 +KPX zacute edieresis -15 +KPX zacute edotaccent -15 +KPX zacute egrave -15 +KPX zacute emacron -15 +KPX zacute eogonek -15 +KPX zacute o -15 +KPX zacute oacute -15 +KPX zacute ocircumflex -15 +KPX zacute odieresis -15 +KPX zacute ograve -15 +KPX zacute ohungarumlaut -15 +KPX zacute omacron -15 +KPX zacute oslash -15 +KPX zacute otilde -15 +KPX zcaron e -15 +KPX zcaron eacute -15 +KPX zcaron ecaron -15 +KPX zcaron ecircumflex -15 +KPX zcaron edieresis -15 +KPX zcaron edotaccent -15 +KPX zcaron egrave -15 +KPX zcaron emacron -15 +KPX zcaron eogonek -15 +KPX zcaron o -15 +KPX zcaron oacute -15 +KPX zcaron ocircumflex -15 +KPX zcaron odieresis -15 +KPX zcaron ograve -15 +KPX zcaron ohungarumlaut -15 +KPX zcaron omacron -15 +KPX zcaron oslash -15 +KPX zcaron otilde -15 +KPX zdotaccent e -15 +KPX zdotaccent eacute -15 +KPX zdotaccent ecaron -15 +KPX zdotaccent ecircumflex -15 +KPX zdotaccent edieresis -15 +KPX zdotaccent edotaccent -15 +KPX zdotaccent egrave -15 +KPX zdotaccent emacron -15 +KPX zdotaccent eogonek -15 +KPX zdotaccent o -15 +KPX zdotaccent oacute -15 +KPX zdotaccent ocircumflex -15 +KPX zdotaccent odieresis -15 +KPX zdotaccent ograve -15 +KPX zdotaccent ohungarumlaut -15 +KPX zdotaccent omacron -15 +KPX zdotaccent oslash -15 +KPX zdotaccent otilde -15 +EndKernPairs +EndKernData +EndFontMetrics diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/Symbol.afm b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/Symbol.afm new file mode 100644 index 0000000..6a5386a --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/Symbol.afm @@ -0,0 +1,213 @@ +StartFontMetrics 4.1 +Comment Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All rights reserved. +Comment Creation Date: Thu May 1 15:12:25 1997 +Comment UniqueID 43064 +Comment VMusage 30820 39997 +FontName Symbol +FullName Symbol +FamilyName Symbol +Weight Medium +ItalicAngle 0 +IsFixedPitch false +CharacterSet Special +FontBBox -180 -293 1090 1010 +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.008 +Notice Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All rights reserved. +EncodingScheme FontSpecific +StdHW 92 +StdVW 85 +StartCharMetrics 190 +C 32 ; WX 250 ; N space ; B 0 0 0 0 ; +C 33 ; WX 333 ; N exclam ; B 128 -17 240 672 ; +C 34 ; WX 713 ; N universal ; B 31 0 681 705 ; +C 35 ; WX 500 ; N numbersign ; B 20 -16 481 673 ; +C 36 ; WX 549 ; N existential ; B 25 0 478 707 ; +C 37 ; WX 833 ; N percent ; B 63 -36 771 655 ; +C 38 ; WX 778 ; N ampersand ; B 41 -18 750 661 ; +C 39 ; WX 439 ; N suchthat ; B 48 -17 414 500 ; +C 40 ; WX 333 ; N parenleft ; B 53 -191 300 673 ; +C 41 ; WX 333 ; N parenright ; B 30 -191 277 673 ; +C 42 ; WX 500 ; N asteriskmath ; B 65 134 427 551 ; +C 43 ; WX 549 ; N plus ; B 10 0 539 533 ; +C 44 ; WX 250 ; N comma ; B 56 -152 194 104 ; +C 45 ; WX 549 ; N minus ; B 11 233 535 288 ; +C 46 ; WX 250 ; N period ; B 69 -17 181 95 ; +C 47 ; WX 278 ; N slash ; B 0 -18 254 646 ; +C 48 ; WX 500 ; N zero ; B 24 -14 476 685 ; +C 49 ; WX 500 ; N one ; B 117 0 390 673 ; +C 50 ; WX 500 ; N two ; B 25 0 475 685 ; +C 51 ; WX 500 ; N three ; B 43 -14 435 685 ; +C 52 ; WX 500 ; N four ; B 15 0 469 685 ; +C 53 ; WX 500 ; N five ; B 32 -14 445 690 ; +C 54 ; WX 500 ; N six ; B 34 -14 468 685 ; +C 55 ; WX 500 ; N seven ; B 24 -16 448 673 ; +C 56 ; WX 500 ; N eight ; B 56 -14 445 685 ; +C 57 ; WX 500 ; N nine ; B 30 -18 459 685 ; +C 58 ; WX 278 ; N colon ; B 81 -17 193 460 ; +C 59 ; WX 278 ; N semicolon ; B 83 -152 221 460 ; +C 60 ; WX 549 ; N less ; B 26 0 523 522 ; +C 61 ; WX 549 ; N equal ; B 11 141 537 390 ; +C 62 ; WX 549 ; N greater ; B 26 0 523 522 ; +C 63 ; WX 444 ; N question ; B 70 -17 412 686 ; +C 64 ; WX 549 ; N congruent ; B 11 0 537 475 ; +C 65 ; WX 722 ; N Alpha ; B 4 0 684 673 ; +C 66 ; WX 667 ; N Beta ; B 29 0 592 673 ; +C 67 ; WX 722 ; N Chi ; B -9 0 704 673 ; +C 68 ; WX 612 ; N Delta ; B 6 0 608 688 ; +C 69 ; WX 611 ; N Epsilon ; B 32 0 617 673 ; +C 70 ; WX 763 ; N Phi ; B 26 0 741 673 ; +C 71 ; WX 603 ; N Gamma ; B 24 0 609 673 ; +C 72 ; WX 722 ; N Eta ; B 39 0 729 673 ; +C 73 ; WX 333 ; N Iota ; B 32 0 316 673 ; +C 74 ; WX 631 ; N theta1 ; B 18 -18 623 689 ; +C 75 ; WX 722 ; N Kappa ; B 35 0 722 673 ; +C 76 ; WX 686 ; N Lambda ; B 6 0 680 688 ; +C 77 ; WX 889 ; N Mu ; B 28 0 887 673 ; +C 78 ; WX 722 ; N Nu ; B 29 -8 720 673 ; +C 79 ; WX 722 ; N Omicron ; B 41 -17 715 685 ; +C 80 ; WX 768 ; N Pi ; B 25 0 745 673 ; +C 81 ; WX 741 ; N Theta ; B 41 -17 715 685 ; +C 82 ; WX 556 ; N Rho ; B 28 0 563 673 ; +C 83 ; WX 592 ; N Sigma ; B 5 0 589 673 ; +C 84 ; WX 611 ; N Tau ; B 33 0 607 673 ; +C 85 ; WX 690 ; N Upsilon ; B -8 0 694 673 ; +C 86 ; WX 439 ; N sigma1 ; B 40 -233 436 500 ; +C 87 ; WX 768 ; N Omega ; B 34 0 736 688 ; +C 88 ; WX 645 ; N Xi ; B 40 0 599 673 ; +C 89 ; WX 795 ; N Psi ; B 15 0 781 684 ; +C 90 ; WX 611 ; N Zeta ; B 44 0 636 673 ; +C 91 ; WX 333 ; N bracketleft ; B 86 -155 299 674 ; +C 92 ; WX 863 ; N therefore ; B 163 0 701 487 ; +C 93 ; WX 333 ; N bracketright ; B 33 -155 246 674 ; +C 94 ; WX 658 ; N perpendicular ; B 15 0 652 674 ; +C 95 ; WX 500 ; N underscore ; B -2 -125 502 -75 ; +C 96 ; WX 500 ; N radicalex ; B 480 881 1090 917 ; +C 97 ; WX 631 ; N alpha ; B 41 -18 622 500 ; +C 98 ; WX 549 ; N beta ; B 61 -223 515 741 ; +C 99 ; WX 549 ; N chi ; B 12 -231 522 499 ; +C 100 ; WX 494 ; N delta ; B 40 -19 481 740 ; +C 101 ; WX 439 ; N epsilon ; B 22 -19 427 502 ; +C 102 ; WX 521 ; N phi ; B 28 -224 492 673 ; +C 103 ; WX 411 ; N gamma ; B 5 -225 484 499 ; +C 104 ; WX 603 ; N eta ; B 0 -202 527 514 ; +C 105 ; WX 329 ; N iota ; B 0 -17 301 503 ; +C 106 ; WX 603 ; N phi1 ; B 36 -224 587 499 ; +C 107 ; WX 549 ; N kappa ; B 33 0 558 501 ; +C 108 ; WX 549 ; N lambda ; B 24 -17 548 739 ; +C 109 ; WX 576 ; N mu ; B 33 -223 567 500 ; +C 110 ; WX 521 ; N nu ; B -9 -16 475 507 ; +C 111 ; WX 549 ; N omicron ; B 35 -19 501 499 ; +C 112 ; WX 549 ; N pi ; B 10 -19 530 487 ; +C 113 ; WX 521 ; N theta ; B 43 -17 485 690 ; +C 114 ; WX 549 ; N rho ; B 50 -230 490 499 ; +C 115 ; WX 603 ; N sigma ; B 30 -21 588 500 ; +C 116 ; WX 439 ; N tau ; B 10 -19 418 500 ; +C 117 ; WX 576 ; N upsilon ; B 7 -18 535 507 ; +C 118 ; WX 713 ; N omega1 ; B 12 -18 671 583 ; +C 119 ; WX 686 ; N omega ; B 42 -17 684 500 ; +C 120 ; WX 493 ; N xi ; B 27 -224 469 766 ; +C 121 ; WX 686 ; N psi ; B 12 -228 701 500 ; +C 122 ; WX 494 ; N zeta ; B 60 -225 467 756 ; +C 123 ; WX 480 ; N braceleft ; B 58 -183 397 673 ; +C 124 ; WX 200 ; N bar ; B 65 -293 135 707 ; +C 125 ; WX 480 ; N braceright ; B 79 -183 418 673 ; +C 126 ; WX 549 ; N similar ; B 17 203 529 307 ; +C 160 ; WX 750 ; N Euro ; B 20 -12 714 685 ; +C 161 ; WX 620 ; N Upsilon1 ; B -2 0 610 685 ; +C 162 ; WX 247 ; N minute ; B 27 459 228 735 ; +C 163 ; WX 549 ; N lessequal ; B 29 0 526 639 ; +C 164 ; WX 167 ; N fraction ; B -180 -12 340 677 ; +C 165 ; WX 713 ; N infinity ; B 26 124 688 404 ; +C 166 ; WX 500 ; N florin ; B 2 -193 494 686 ; +C 167 ; WX 753 ; N club ; B 86 -26 660 533 ; +C 168 ; WX 753 ; N diamond ; B 142 -36 600 550 ; +C 169 ; WX 753 ; N heart ; B 117 -33 631 532 ; +C 170 ; WX 753 ; N spade ; B 113 -36 629 548 ; +C 171 ; WX 1042 ; N arrowboth ; B 24 -15 1024 511 ; +C 172 ; WX 987 ; N arrowleft ; B 32 -15 942 511 ; +C 173 ; WX 603 ; N arrowup ; B 45 0 571 910 ; +C 174 ; WX 987 ; N arrowright ; B 49 -15 959 511 ; +C 175 ; WX 603 ; N arrowdown ; B 45 -22 571 888 ; +C 176 ; WX 400 ; N degree ; B 50 385 350 685 ; +C 177 ; WX 549 ; N plusminus ; B 10 0 539 645 ; +C 178 ; WX 411 ; N second ; B 20 459 413 737 ; +C 179 ; WX 549 ; N greaterequal ; B 29 0 526 639 ; +C 180 ; WX 549 ; N multiply ; B 17 8 533 524 ; +C 181 ; WX 713 ; N proportional ; B 27 123 639 404 ; +C 182 ; WX 494 ; N partialdiff ; B 26 -20 462 746 ; +C 183 ; WX 460 ; N bullet ; B 50 113 410 473 ; +C 184 ; WX 549 ; N divide ; B 10 71 536 456 ; +C 185 ; WX 549 ; N notequal ; B 15 -25 540 549 ; +C 186 ; WX 549 ; N equivalence ; B 14 82 538 443 ; +C 187 ; WX 549 ; N approxequal ; B 14 135 527 394 ; +C 188 ; WX 1000 ; N ellipsis ; B 111 -17 889 95 ; +C 189 ; WX 603 ; N arrowvertex ; B 280 -120 336 1010 ; +C 190 ; WX 1000 ; N arrowhorizex ; B -60 220 1050 276 ; +C 191 ; WX 658 ; N carriagereturn ; B 15 -16 602 629 ; +C 192 ; WX 823 ; N aleph ; B 175 -18 661 658 ; +C 193 ; WX 686 ; N Ifraktur ; B 10 -53 578 740 ; +C 194 ; WX 795 ; N Rfraktur ; B 26 -15 759 734 ; +C 195 ; WX 987 ; N weierstrass ; B 159 -211 870 573 ; +C 196 ; WX 768 ; N circlemultiply ; B 43 -17 733 673 ; +C 197 ; WX 768 ; N circleplus ; B 43 -15 733 675 ; +C 198 ; WX 823 ; N emptyset ; B 39 -24 781 719 ; +C 199 ; WX 768 ; N intersection ; B 40 0 732 509 ; +C 200 ; WX 768 ; N union ; B 40 -17 732 492 ; +C 201 ; WX 713 ; N propersuperset ; B 20 0 673 470 ; +C 202 ; WX 713 ; N reflexsuperset ; B 20 -125 673 470 ; +C 203 ; WX 713 ; N notsubset ; B 36 -70 690 540 ; +C 204 ; WX 713 ; N propersubset ; B 37 0 690 470 ; +C 205 ; WX 713 ; N reflexsubset ; B 37 -125 690 470 ; +C 206 ; WX 713 ; N element ; B 45 0 505 468 ; +C 207 ; WX 713 ; N notelement ; B 45 -58 505 555 ; +C 208 ; WX 768 ; N angle ; B 26 0 738 673 ; +C 209 ; WX 713 ; N gradient ; B 36 -19 681 718 ; +C 210 ; WX 790 ; N registerserif ; B 50 -17 740 673 ; +C 211 ; WX 790 ; N copyrightserif ; B 51 -15 741 675 ; +C 212 ; WX 890 ; N trademarkserif ; B 18 293 855 673 ; +C 213 ; WX 823 ; N product ; B 25 -101 803 751 ; +C 214 ; WX 549 ; N radical ; B 10 -38 515 917 ; +C 215 ; WX 250 ; N dotmath ; B 69 210 169 310 ; +C 216 ; WX 713 ; N logicalnot ; B 15 0 680 288 ; +C 217 ; WX 603 ; N logicaland ; B 23 0 583 454 ; +C 218 ; WX 603 ; N logicalor ; B 30 0 578 477 ; +C 219 ; WX 1042 ; N arrowdblboth ; B 27 -20 1023 510 ; +C 220 ; WX 987 ; N arrowdblleft ; B 30 -15 939 513 ; +C 221 ; WX 603 ; N arrowdblup ; B 39 2 567 911 ; +C 222 ; WX 987 ; N arrowdblright ; B 45 -20 954 508 ; +C 223 ; WX 603 ; N arrowdbldown ; B 44 -19 572 890 ; +C 224 ; WX 494 ; N lozenge ; B 18 0 466 745 ; +C 225 ; WX 329 ; N angleleft ; B 25 -198 306 746 ; +C 226 ; WX 790 ; N registersans ; B 50 -20 740 670 ; +C 227 ; WX 790 ; N copyrightsans ; B 49 -15 739 675 ; +C 228 ; WX 786 ; N trademarksans ; B 5 293 725 673 ; +C 229 ; WX 713 ; N summation ; B 14 -108 695 752 ; +C 230 ; WX 384 ; N parenlefttp ; B 24 -293 436 926 ; +C 231 ; WX 384 ; N parenleftex ; B 24 -85 108 925 ; +C 232 ; WX 384 ; N parenleftbt ; B 24 -293 436 926 ; +C 233 ; WX 384 ; N bracketlefttp ; B 0 -80 349 926 ; +C 234 ; WX 384 ; N bracketleftex ; B 0 -79 77 925 ; +C 235 ; WX 384 ; N bracketleftbt ; B 0 -80 349 926 ; +C 236 ; WX 494 ; N bracelefttp ; B 209 -85 445 925 ; +C 237 ; WX 494 ; N braceleftmid ; B 20 -85 284 935 ; +C 238 ; WX 494 ; N braceleftbt ; B 209 -75 445 935 ; +C 239 ; WX 494 ; N braceex ; B 209 -85 284 935 ; +C 241 ; WX 329 ; N angleright ; B 21 -198 302 746 ; +C 242 ; WX 274 ; N integral ; B 2 -107 291 916 ; +C 243 ; WX 686 ; N integraltp ; B 308 -88 675 920 ; +C 244 ; WX 686 ; N integralex ; B 308 -88 378 975 ; +C 245 ; WX 686 ; N integralbt ; B 11 -87 378 921 ; +C 246 ; WX 384 ; N parenrighttp ; B 54 -293 466 926 ; +C 247 ; WX 384 ; N parenrightex ; B 382 -85 466 925 ; +C 248 ; WX 384 ; N parenrightbt ; B 54 -293 466 926 ; +C 249 ; WX 384 ; N bracketrighttp ; B 22 -80 371 926 ; +C 250 ; WX 384 ; N bracketrightex ; B 294 -79 371 925 ; +C 251 ; WX 384 ; N bracketrightbt ; B 22 -80 371 926 ; +C 252 ; WX 494 ; N bracerighttp ; B 48 -85 284 925 ; +C 253 ; WX 494 ; N bracerightmid ; B 209 -85 473 935 ; +C 254 ; WX 494 ; N bracerightbt ; B 48 -75 284 935 ; +C -1 ; WX 790 ; N apple ; B 56 -3 733 808 ; +EndCharMetrics +EndFontMetrics diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/Times-Bold.afm b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/Times-Bold.afm new file mode 100644 index 0000000..5907c3d --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/Times-Bold.afm @@ -0,0 +1,2590 @@ +StartFontMetrics 4.1 +Comment Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Thu May 1 12:52:56 1997 +Comment UniqueID 43065 +Comment VMusage 41636 52661 +FontName Times-Bold +FullName Times Bold +FamilyName Times +Weight Bold +ItalicAngle 0 +IsFixedPitch false +CharacterSet ExtendedRoman +FontBBox -168 -218 1000 935 +UnderlinePosition -100 +UnderlineThickness 50 +Version 002.000 +Notice Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.Times is a trademark of Linotype-Hell AG and/or its subsidiaries. +EncodingScheme WinAnsiEncoding +CapHeight 676 +XHeight 461 +Ascender 683 +Descender -217 +StdHW 44 +StdVW 139 +StartCharMetrics 317 +C 32 ; WX 250 ; N space ; B 0 0 0 0 ; +C 160 ; WX 250 ; N space ; B 0 0 0 0 ; +C 33 ; WX 333 ; N exclam ; B 81 -13 251 691 ; +C 34 ; WX 555 ; N quotedbl ; B 83 404 472 691 ; +C 35 ; WX 500 ; N numbersign ; B 4 0 496 700 ; +C 36 ; WX 500 ; N dollar ; B 29 -99 472 750 ; +C 37 ; WX 1000 ; N percent ; B 124 -14 877 692 ; +C 38 ; WX 833 ; N ampersand ; B 62 -16 787 691 ; +C 146 ; WX 333 ; N quoteright ; B 79 356 263 691 ; +C 40 ; WX 333 ; N parenleft ; B 46 -168 306 694 ; +C 41 ; WX 333 ; N parenright ; B 27 -168 287 694 ; +C 42 ; WX 500 ; N asterisk ; B 56 255 447 691 ; +C 43 ; WX 570 ; N plus ; B 33 0 537 506 ; +C 44 ; WX 250 ; N comma ; B 39 -180 223 155 ; +C 45 ; WX 333 ; N hyphen ; B 44 171 287 287 ; +C 173 ; WX 333 ; N hyphen ; B 44 171 287 287 ; +C 46 ; WX 250 ; N period ; B 41 -13 210 156 ; +C 47 ; WX 278 ; N slash ; B -24 -19 302 691 ; +C 48 ; WX 500 ; N zero ; B 24 -13 476 688 ; +C 49 ; WX 500 ; N one ; B 65 0 442 688 ; +C 50 ; WX 500 ; N two ; B 17 0 478 688 ; +C 51 ; WX 500 ; N three ; B 16 -14 468 688 ; +C 52 ; WX 500 ; N four ; B 19 0 475 688 ; +C 53 ; WX 500 ; N five ; B 22 -8 470 676 ; +C 54 ; WX 500 ; N six ; B 28 -13 475 688 ; +C 55 ; WX 500 ; N seven ; B 17 0 477 676 ; +C 56 ; WX 500 ; N eight ; B 28 -13 472 688 ; +C 57 ; WX 500 ; N nine ; B 26 -13 473 688 ; +C 58 ; WX 333 ; N colon ; B 82 -13 251 472 ; +C 59 ; WX 333 ; N semicolon ; B 82 -180 266 472 ; +C 60 ; WX 570 ; N less ; B 31 -8 539 514 ; +C 61 ; WX 570 ; N equal ; B 33 107 537 399 ; +C 62 ; WX 570 ; N greater ; B 31 -8 539 514 ; +C 63 ; WX 500 ; N question ; B 57 -13 445 689 ; +C 64 ; WX 930 ; N at ; B 108 -19 822 691 ; +C 65 ; WX 722 ; N A ; B 9 0 689 690 ; +C 66 ; WX 667 ; N B ; B 16 0 619 676 ; +C 67 ; WX 722 ; N C ; B 49 -19 687 691 ; +C 68 ; WX 722 ; N D ; B 14 0 690 676 ; +C 69 ; WX 667 ; N E ; B 16 0 641 676 ; +C 70 ; WX 611 ; N F ; B 16 0 583 676 ; +C 71 ; WX 778 ; N G ; B 37 -19 755 691 ; +C 72 ; WX 778 ; N H ; B 21 0 759 676 ; +C 73 ; WX 389 ; N I ; B 20 0 370 676 ; +C 74 ; WX 500 ; N J ; B 3 -96 479 676 ; +C 75 ; WX 778 ; N K ; B 30 0 769 676 ; +C 76 ; WX 667 ; N L ; B 19 0 638 676 ; +C 77 ; WX 944 ; N M ; B 14 0 921 676 ; +C 78 ; WX 722 ; N N ; B 16 -18 701 676 ; +C 79 ; WX 778 ; N O ; B 35 -19 743 691 ; +C 80 ; WX 611 ; N P ; B 16 0 600 676 ; +C 81 ; WX 778 ; N Q ; B 35 -176 743 691 ; +C 82 ; WX 722 ; N R ; B 26 0 715 676 ; +C 83 ; WX 556 ; N S ; B 35 -19 513 692 ; +C 84 ; WX 667 ; N T ; B 31 0 636 676 ; +C 85 ; WX 722 ; N U ; B 16 -19 701 676 ; +C 86 ; WX 722 ; N V ; B 16 -18 701 676 ; +C 87 ; WX 1000 ; N W ; B 19 -15 981 676 ; +C 88 ; WX 722 ; N X ; B 16 0 699 676 ; +C 89 ; WX 722 ; N Y ; B 15 0 699 676 ; +C 90 ; WX 667 ; N Z ; B 28 0 634 676 ; +C 91 ; WX 333 ; N bracketleft ; B 67 -149 301 678 ; +C 92 ; WX 278 ; N backslash ; B -25 -19 303 691 ; +C 93 ; WX 333 ; N bracketright ; B 32 -149 266 678 ; +C 94 ; WX 581 ; N asciicircum ; B 73 311 509 676 ; +C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; +C 145 ; WX 333 ; N quoteleft ; B 70 356 254 691 ; +C 97 ; WX 500 ; N a ; B 25 -14 488 473 ; +C 98 ; WX 556 ; N b ; B 17 -14 521 676 ; +C 99 ; WX 444 ; N c ; B 25 -14 430 473 ; +C 100 ; WX 556 ; N d ; B 25 -14 534 676 ; +C 101 ; WX 444 ; N e ; B 25 -14 426 473 ; +C 102 ; WX 333 ; N f ; B 14 0 389 691 ; L i fi ; L l fl ; +C 103 ; WX 500 ; N g ; B 28 -206 483 473 ; +C 104 ; WX 556 ; N h ; B 16 0 534 676 ; +C 105 ; WX 278 ; N i ; B 16 0 255 691 ; +C 106 ; WX 333 ; N j ; B -57 -203 263 691 ; +C 107 ; WX 556 ; N k ; B 22 0 543 676 ; +C 108 ; WX 278 ; N l ; B 16 0 255 676 ; +C 109 ; WX 833 ; N m ; B 16 0 814 473 ; +C 110 ; WX 556 ; N n ; B 21 0 539 473 ; +C 111 ; WX 500 ; N o ; B 25 -14 476 473 ; +C 112 ; WX 556 ; N p ; B 19 -205 524 473 ; +C 113 ; WX 556 ; N q ; B 34 -205 536 473 ; +C 114 ; WX 444 ; N r ; B 29 0 434 473 ; +C 115 ; WX 389 ; N s ; B 25 -14 361 473 ; +C 116 ; WX 333 ; N t ; B 20 -12 332 630 ; +C 117 ; WX 556 ; N u ; B 16 -14 537 461 ; +C 118 ; WX 500 ; N v ; B 21 -14 485 461 ; +C 119 ; WX 722 ; N w ; B 23 -14 707 461 ; +C 120 ; WX 500 ; N x ; B 12 0 484 461 ; +C 121 ; WX 500 ; N y ; B 16 -205 480 461 ; +C 122 ; WX 444 ; N z ; B 21 0 420 461 ; +C 123 ; WX 394 ; N braceleft ; B 22 -175 340 698 ; +C 124 ; WX 220 ; N bar ; B 66 -218 154 782 ; +C 125 ; WX 394 ; N braceright ; B 54 -175 372 698 ; +C 126 ; WX 520 ; N asciitilde ; B 29 173 491 333 ; +C 161 ; WX 333 ; N exclamdown ; B 82 -203 252 501 ; +C 162 ; WX 500 ; N cent ; B 53 -140 458 588 ; +C 163 ; WX 500 ; N sterling ; B 21 -14 477 684 ; +C -1 ; WX 167 ; N fraction ; B -168 -12 329 688 ; +C 165 ; WX 500 ; N yen ; B -64 0 547 676 ; +C 131 ; WX 500 ; N florin ; B 0 -155 498 706 ; +C 167 ; WX 500 ; N section ; B 57 -132 443 691 ; +C 164 ; WX 500 ; N currency ; B -26 61 526 613 ; +C 39 ; WX 278 ; N quotesingle ; B 75 404 204 691 ; +C 147 ; WX 500 ; N quotedblleft ; B 32 356 486 691 ; +C 171 ; WX 500 ; N guillemotleft ; B 23 36 473 415 ; +C 139 ; WX 333 ; N guilsinglleft ; B 51 36 305 415 ; +C 155 ; WX 333 ; N guilsinglright ; B 28 36 282 415 ; +C -1 ; WX 556 ; N fi ; B 14 0 536 691 ; +C -1 ; WX 556 ; N fl ; B 14 0 536 691 ; +C 150 ; WX 500 ; N endash ; B 0 181 500 271 ; +C 134 ; WX 500 ; N dagger ; B 47 -134 453 691 ; +C 135 ; WX 500 ; N daggerdbl ; B 45 -132 456 691 ; +C 183 ; WX 250 ; N periodcentered ; B 41 248 210 417 ; +C 182 ; WX 540 ; N paragraph ; B 0 -186 519 676 ; +C 149 ; WX 350 ; N bullet ; B 35 198 315 478 ; +C 130 ; WX 333 ; N quotesinglbase ; B 79 -180 263 155 ; +C 132 ; WX 500 ; N quotedblbase ; B 14 -180 468 155 ; +C 148 ; WX 500 ; N quotedblright ; B 14 356 468 691 ; +C 187 ; WX 500 ; N guillemotright ; B 27 36 477 415 ; +C 133 ; WX 1000 ; N ellipsis ; B 82 -13 917 156 ; +C 137 ; WX 1000 ; N perthousand ; B 7 -29 995 706 ; +C 191 ; WX 500 ; N questiondown ; B 55 -201 443 501 ; +C 96 ; WX 333 ; N grave ; B 8 528 246 713 ; +C 180 ; WX 333 ; N acute ; B 86 528 324 713 ; +C 136 ; WX 333 ; N circumflex ; B -2 528 335 704 ; +C 152 ; WX 333 ; N tilde ; B -16 547 349 674 ; +C 175 ; WX 333 ; N macron ; B 1 565 331 637 ; +C -1 ; WX 333 ; N breve ; B 15 528 318 691 ; +C -1 ; WX 333 ; N dotaccent ; B 103 536 258 691 ; +C 168 ; WX 333 ; N dieresis ; B -2 537 335 667 ; +C -1 ; WX 333 ; N ring ; B 60 527 273 740 ; +C 184 ; WX 333 ; N cedilla ; B 68 -218 294 0 ; +C -1 ; WX 333 ; N hungarumlaut ; B -13 528 425 713 ; +C -1 ; WX 333 ; N ogonek ; B 90 -193 319 24 ; +C -1 ; WX 333 ; N caron ; B -2 528 335 704 ; +C 151 ; WX 1000 ; N emdash ; B 0 181 1000 271 ; +C 198 ; WX 1000 ; N AE ; B 4 0 951 676 ; +C 170 ; WX 300 ; N ordfeminine ; B -1 397 301 688 ; +C -1 ; WX 667 ; N Lslash ; B 19 0 638 676 ; +C 216 ; WX 778 ; N Oslash ; B 35 -74 743 737 ; +C 140 ; WX 1000 ; N OE ; B 22 -5 981 684 ; +C 186 ; WX 330 ; N ordmasculine ; B 18 397 312 688 ; +C 230 ; WX 722 ; N ae ; B 33 -14 693 473 ; +C -1 ; WX 278 ; N dotlessi ; B 16 0 255 461 ; +C -1 ; WX 278 ; N lslash ; B -22 0 303 676 ; +C 248 ; WX 500 ; N oslash ; B 25 -92 476 549 ; +C 156 ; WX 722 ; N oe ; B 22 -14 696 473 ; +C 223 ; WX 556 ; N germandbls ; B 19 -12 517 691 ; +C 207 ; WX 389 ; N Idieresis ; B 20 0 370 877 ; +C 233 ; WX 444 ; N eacute ; B 25 -14 426 713 ; +C -1 ; WX 500 ; N abreve ; B 25 -14 488 691 ; +C -1 ; WX 556 ; N uhungarumlaut ; B 16 -14 557 713 ; +C -1 ; WX 444 ; N ecaron ; B 25 -14 426 704 ; +C 159 ; WX 722 ; N Ydieresis ; B 15 0 699 877 ; +C 247 ; WX 570 ; N divide ; B 33 -31 537 537 ; +C 221 ; WX 722 ; N Yacute ; B 15 0 699 923 ; +C 194 ; WX 722 ; N Acircumflex ; B 9 0 689 914 ; +C 225 ; WX 500 ; N aacute ; B 25 -14 488 713 ; +C 219 ; WX 722 ; N Ucircumflex ; B 16 -19 701 914 ; +C 253 ; WX 500 ; N yacute ; B 16 -205 480 713 ; +C -1 ; WX 389 ; N scommaaccent ; B 25 -218 361 473 ; +C 234 ; WX 444 ; N ecircumflex ; B 25 -14 426 704 ; +C -1 ; WX 722 ; N Uring ; B 16 -19 701 935 ; +C 220 ; WX 722 ; N Udieresis ; B 16 -19 701 877 ; +C -1 ; WX 500 ; N aogonek ; B 25 -193 504 473 ; +C 218 ; WX 722 ; N Uacute ; B 16 -19 701 923 ; +C -1 ; WX 556 ; N uogonek ; B 16 -193 539 461 ; +C 203 ; WX 667 ; N Edieresis ; B 16 0 641 877 ; +C -1 ; WX 722 ; N Dcroat ; B 6 0 690 676 ; +C -1 ; WX 250 ; N commaaccent ; B 47 -218 203 -50 ; +C 169 ; WX 747 ; N copyright ; B 26 -19 721 691 ; +C -1 ; WX 667 ; N Emacron ; B 16 0 641 847 ; +C -1 ; WX 444 ; N ccaron ; B 25 -14 430 704 ; +C 229 ; WX 500 ; N aring ; B 25 -14 488 740 ; +C -1 ; WX 722 ; N Ncommaaccent ; B 16 -188 701 676 ; +C -1 ; WX 278 ; N lacute ; B 16 0 297 923 ; +C 224 ; WX 500 ; N agrave ; B 25 -14 488 713 ; +C -1 ; WX 667 ; N Tcommaaccent ; B 31 -218 636 676 ; +C -1 ; WX 722 ; N Cacute ; B 49 -19 687 923 ; +C 227 ; WX 500 ; N atilde ; B 25 -14 488 674 ; +C -1 ; WX 667 ; N Edotaccent ; B 16 0 641 901 ; +C 154 ; WX 389 ; N scaron ; B 25 -14 363 704 ; +C -1 ; WX 389 ; N scedilla ; B 25 -218 361 473 ; +C 237 ; WX 278 ; N iacute ; B 16 0 289 713 ; +C -1 ; WX 494 ; N lozenge ; B 10 0 484 745 ; +C -1 ; WX 722 ; N Rcaron ; B 26 0 715 914 ; +C -1 ; WX 778 ; N Gcommaaccent ; B 37 -218 755 691 ; +C 251 ; WX 556 ; N ucircumflex ; B 16 -14 537 704 ; +C 226 ; WX 500 ; N acircumflex ; B 25 -14 488 704 ; +C -1 ; WX 722 ; N Amacron ; B 9 0 689 847 ; +C -1 ; WX 444 ; N rcaron ; B 29 0 434 704 ; +C 231 ; WX 444 ; N ccedilla ; B 25 -218 430 473 ; +C -1 ; WX 667 ; N Zdotaccent ; B 28 0 634 901 ; +C 222 ; WX 611 ; N Thorn ; B 16 0 600 676 ; +C -1 ; WX 778 ; N Omacron ; B 35 -19 743 847 ; +C -1 ; WX 722 ; N Racute ; B 26 0 715 923 ; +C -1 ; WX 556 ; N Sacute ; B 35 -19 513 923 ; +C -1 ; WX 672 ; N dcaron ; B 25 -14 681 682 ; +C -1 ; WX 722 ; N Umacron ; B 16 -19 701 847 ; +C -1 ; WX 556 ; N uring ; B 16 -14 537 740 ; +C 179 ; WX 300 ; N threesuperior ; B 3 268 297 688 ; +C 210 ; WX 778 ; N Ograve ; B 35 -19 743 923 ; +C 192 ; WX 722 ; N Agrave ; B 9 0 689 923 ; +C -1 ; WX 722 ; N Abreve ; B 9 0 689 901 ; +C 215 ; WX 570 ; N multiply ; B 48 16 522 490 ; +C 250 ; WX 556 ; N uacute ; B 16 -14 537 713 ; +C -1 ; WX 667 ; N Tcaron ; B 31 0 636 914 ; +C -1 ; WX 494 ; N partialdiff ; B 11 -21 494 750 ; +C 255 ; WX 500 ; N ydieresis ; B 16 -205 480 667 ; +C -1 ; WX 722 ; N Nacute ; B 16 -18 701 923 ; +C 238 ; WX 278 ; N icircumflex ; B -37 0 300 704 ; +C 202 ; WX 667 ; N Ecircumflex ; B 16 0 641 914 ; +C 228 ; WX 500 ; N adieresis ; B 25 -14 488 667 ; +C 235 ; WX 444 ; N edieresis ; B 25 -14 426 667 ; +C -1 ; WX 444 ; N cacute ; B 25 -14 430 713 ; +C -1 ; WX 556 ; N nacute ; B 21 0 539 713 ; +C -1 ; WX 556 ; N umacron ; B 16 -14 537 637 ; +C -1 ; WX 722 ; N Ncaron ; B 16 -18 701 914 ; +C 205 ; WX 389 ; N Iacute ; B 20 0 370 923 ; +C 177 ; WX 570 ; N plusminus ; B 33 0 537 506 ; +C 166 ; WX 220 ; N brokenbar ; B 66 -143 154 707 ; +C 174 ; WX 747 ; N registered ; B 26 -19 721 691 ; +C -1 ; WX 778 ; N Gbreve ; B 37 -19 755 901 ; +C -1 ; WX 389 ; N Idotaccent ; B 20 0 370 901 ; +C -1 ; WX 600 ; N summation ; B 14 -10 585 706 ; +C 200 ; WX 667 ; N Egrave ; B 16 0 641 923 ; +C -1 ; WX 444 ; N racute ; B 29 0 434 713 ; +C -1 ; WX 500 ; N omacron ; B 25 -14 476 637 ; +C -1 ; WX 667 ; N Zacute ; B 28 0 634 923 ; +C 142 ; WX 667 ; N Zcaron ; B 28 0 634 914 ; +C -1 ; WX 549 ; N greaterequal ; B 26 0 523 704 ; +C 208 ; WX 722 ; N Eth ; B 6 0 690 676 ; +C 199 ; WX 722 ; N Ccedilla ; B 49 -218 687 691 ; +C -1 ; WX 278 ; N lcommaaccent ; B 16 -218 255 676 ; +C -1 ; WX 416 ; N tcaron ; B 20 -12 425 815 ; +C -1 ; WX 444 ; N eogonek ; B 25 -193 426 473 ; +C -1 ; WX 722 ; N Uogonek ; B 16 -193 701 676 ; +C 193 ; WX 722 ; N Aacute ; B 9 0 689 923 ; +C 196 ; WX 722 ; N Adieresis ; B 9 0 689 877 ; +C 232 ; WX 444 ; N egrave ; B 25 -14 426 713 ; +C -1 ; WX 444 ; N zacute ; B 21 0 420 713 ; +C -1 ; WX 278 ; N iogonek ; B 16 -193 274 691 ; +C 211 ; WX 778 ; N Oacute ; B 35 -19 743 923 ; +C 243 ; WX 500 ; N oacute ; B 25 -14 476 713 ; +C -1 ; WX 500 ; N amacron ; B 25 -14 488 637 ; +C -1 ; WX 389 ; N sacute ; B 25 -14 361 713 ; +C 239 ; WX 278 ; N idieresis ; B -37 0 300 667 ; +C 212 ; WX 778 ; N Ocircumflex ; B 35 -19 743 914 ; +C 217 ; WX 722 ; N Ugrave ; B 16 -19 701 923 ; +C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ; +C 254 ; WX 556 ; N thorn ; B 19 -205 524 676 ; +C 178 ; WX 300 ; N twosuperior ; B 0 275 300 688 ; +C 214 ; WX 778 ; N Odieresis ; B 35 -19 743 877 ; +C 181 ; WX 556 ; N mu ; B 33 -206 536 461 ; +C 236 ; WX 278 ; N igrave ; B -27 0 255 713 ; +C -1 ; WX 500 ; N ohungarumlaut ; B 25 -14 529 713 ; +C -1 ; WX 667 ; N Eogonek ; B 16 -193 644 676 ; +C -1 ; WX 556 ; N dcroat ; B 25 -14 534 676 ; +C 190 ; WX 750 ; N threequarters ; B 23 -12 733 688 ; +C -1 ; WX 556 ; N Scedilla ; B 35 -218 513 692 ; +C -1 ; WX 394 ; N lcaron ; B 16 0 412 682 ; +C -1 ; WX 778 ; N Kcommaaccent ; B 30 -218 769 676 ; +C -1 ; WX 667 ; N Lacute ; B 19 0 638 923 ; +C 153 ; WX 1000 ; N trademark ; B 24 271 977 676 ; +C -1 ; WX 444 ; N edotaccent ; B 25 -14 426 691 ; +C 204 ; WX 389 ; N Igrave ; B 20 0 370 923 ; +C -1 ; WX 389 ; N Imacron ; B 20 0 370 847 ; +C -1 ; WX 667 ; N Lcaron ; B 19 0 652 682 ; +C 189 ; WX 750 ; N onehalf ; B -7 -12 775 688 ; +C -1 ; WX 549 ; N lessequal ; B 29 0 526 704 ; +C 244 ; WX 500 ; N ocircumflex ; B 25 -14 476 704 ; +C 241 ; WX 556 ; N ntilde ; B 21 0 539 674 ; +C -1 ; WX 722 ; N Uhungarumlaut ; B 16 -19 701 923 ; +C 201 ; WX 667 ; N Eacute ; B 16 0 641 923 ; +C -1 ; WX 444 ; N emacron ; B 25 -14 426 637 ; +C -1 ; WX 500 ; N gbreve ; B 28 -206 483 691 ; +C 188 ; WX 750 ; N onequarter ; B 28 -12 743 688 ; +C 138 ; WX 556 ; N Scaron ; B 35 -19 513 914 ; +C -1 ; WX 556 ; N Scommaaccent ; B 35 -218 513 692 ; +C -1 ; WX 778 ; N Ohungarumlaut ; B 35 -19 743 923 ; +C 176 ; WX 400 ; N degree ; B 57 402 343 688 ; +C 242 ; WX 500 ; N ograve ; B 25 -14 476 713 ; +C -1 ; WX 722 ; N Ccaron ; B 49 -19 687 914 ; +C 249 ; WX 556 ; N ugrave ; B 16 -14 537 713 ; +C -1 ; WX 549 ; N radical ; B 10 -46 512 850 ; +C -1 ; WX 722 ; N Dcaron ; B 14 0 690 914 ; +C -1 ; WX 444 ; N rcommaaccent ; B 29 -218 434 473 ; +C 209 ; WX 722 ; N Ntilde ; B 16 -18 701 884 ; +C 245 ; WX 500 ; N otilde ; B 25 -14 476 674 ; +C -1 ; WX 722 ; N Rcommaaccent ; B 26 -218 715 676 ; +C -1 ; WX 667 ; N Lcommaaccent ; B 19 -218 638 676 ; +C 195 ; WX 722 ; N Atilde ; B 9 0 689 884 ; +C -1 ; WX 722 ; N Aogonek ; B 9 -193 699 690 ; +C 197 ; WX 722 ; N Aring ; B 9 0 689 935 ; +C 213 ; WX 778 ; N Otilde ; B 35 -19 743 884 ; +C -1 ; WX 444 ; N zdotaccent ; B 21 0 420 691 ; +C -1 ; WX 667 ; N Ecaron ; B 16 0 641 914 ; +C -1 ; WX 389 ; N Iogonek ; B 20 -193 370 676 ; +C -1 ; WX 556 ; N kcommaaccent ; B 22 -218 543 676 ; +C -1 ; WX 570 ; N minus ; B 33 209 537 297 ; +C 206 ; WX 389 ; N Icircumflex ; B 20 0 370 914 ; +C -1 ; WX 556 ; N ncaron ; B 21 0 539 704 ; +C -1 ; WX 333 ; N tcommaaccent ; B 20 -218 332 630 ; +C 172 ; WX 570 ; N logicalnot ; B 33 108 537 399 ; +C 246 ; WX 500 ; N odieresis ; B 25 -14 476 667 ; +C 252 ; WX 556 ; N udieresis ; B 16 -14 537 667 ; +C -1 ; WX 549 ; N notequal ; B 15 -49 540 570 ; +C -1 ; WX 500 ; N gcommaaccent ; B 28 -206 483 829 ; +C 240 ; WX 500 ; N eth ; B 25 -14 476 691 ; +C 158 ; WX 444 ; N zcaron ; B 21 0 420 704 ; +C -1 ; WX 556 ; N ncommaaccent ; B 21 -218 539 473 ; +C 185 ; WX 300 ; N onesuperior ; B 28 275 273 688 ; +C -1 ; WX 278 ; N imacron ; B -8 0 272 637 ; +C 128 ; WX 500 ; N Euro ; B 0 0 0 0 ; +EndCharMetrics +StartKernData +StartKernPairs 2242 +KPX A C -55 +KPX A Cacute -55 +KPX A Ccaron -55 +KPX A Ccedilla -55 +KPX A G -55 +KPX A Gbreve -55 +KPX A Gcommaaccent -55 +KPX A O -45 +KPX A Oacute -45 +KPX A Ocircumflex -45 +KPX A Odieresis -45 +KPX A Ograve -45 +KPX A Ohungarumlaut -45 +KPX A Omacron -45 +KPX A Oslash -45 +KPX A Otilde -45 +KPX A Q -45 +KPX A T -95 +KPX A Tcaron -95 +KPX A Tcommaaccent -95 +KPX A U -50 +KPX A Uacute -50 +KPX A Ucircumflex -50 +KPX A Udieresis -50 +KPX A Ugrave -50 +KPX A Uhungarumlaut -50 +KPX A Umacron -50 +KPX A Uogonek -50 +KPX A Uring -50 +KPX A V -145 +KPX A W -130 +KPX A Y -100 +KPX A Yacute -100 +KPX A Ydieresis -100 +KPX A p -25 +KPX A quoteright -74 +KPX A u -50 +KPX A uacute -50 +KPX A ucircumflex -50 +KPX A udieresis -50 +KPX A ugrave -50 +KPX A uhungarumlaut -50 +KPX A umacron -50 +KPX A uogonek -50 +KPX A uring -50 +KPX A v -100 +KPX A w -90 +KPX A y -74 +KPX A yacute -74 +KPX A ydieresis -74 +KPX Aacute C -55 +KPX Aacute Cacute -55 +KPX Aacute Ccaron -55 +KPX Aacute Ccedilla -55 +KPX Aacute G -55 +KPX Aacute Gbreve -55 +KPX Aacute Gcommaaccent -55 +KPX Aacute O -45 +KPX Aacute Oacute -45 +KPX Aacute Ocircumflex -45 +KPX Aacute Odieresis -45 +KPX Aacute Ograve -45 +KPX Aacute Ohungarumlaut -45 +KPX Aacute Omacron -45 +KPX Aacute Oslash -45 +KPX Aacute Otilde -45 +KPX Aacute Q -45 +KPX Aacute T -95 +KPX Aacute Tcaron -95 +KPX Aacute Tcommaaccent -95 +KPX Aacute U -50 +KPX Aacute Uacute -50 +KPX Aacute Ucircumflex -50 +KPX Aacute Udieresis -50 +KPX Aacute Ugrave -50 +KPX Aacute Uhungarumlaut -50 +KPX Aacute Umacron -50 +KPX Aacute Uogonek -50 +KPX Aacute Uring -50 +KPX Aacute V -145 +KPX Aacute W -130 +KPX Aacute Y -100 +KPX Aacute Yacute -100 +KPX Aacute Ydieresis -100 +KPX Aacute p -25 +KPX Aacute quoteright -74 +KPX Aacute u -50 +KPX Aacute uacute -50 +KPX Aacute ucircumflex -50 +KPX Aacute udieresis -50 +KPX Aacute ugrave -50 +KPX Aacute uhungarumlaut -50 +KPX Aacute umacron -50 +KPX Aacute uogonek -50 +KPX Aacute uring -50 +KPX Aacute v -100 +KPX Aacute w -90 +KPX Aacute y -74 +KPX Aacute yacute -74 +KPX Aacute ydieresis -74 +KPX Abreve C -55 +KPX Abreve Cacute -55 +KPX Abreve Ccaron -55 +KPX Abreve Ccedilla -55 +KPX Abreve G -55 +KPX Abreve Gbreve -55 +KPX Abreve Gcommaaccent -55 +KPX Abreve O -45 +KPX Abreve Oacute -45 +KPX Abreve Ocircumflex -45 +KPX Abreve Odieresis -45 +KPX Abreve Ograve -45 +KPX Abreve Ohungarumlaut -45 +KPX Abreve Omacron -45 +KPX Abreve Oslash -45 +KPX Abreve Otilde -45 +KPX Abreve Q -45 +KPX Abreve T -95 +KPX Abreve Tcaron -95 +KPX Abreve Tcommaaccent -95 +KPX Abreve U -50 +KPX Abreve Uacute -50 +KPX Abreve Ucircumflex -50 +KPX Abreve Udieresis -50 +KPX Abreve Ugrave -50 +KPX Abreve Uhungarumlaut -50 +KPX Abreve Umacron -50 +KPX Abreve Uogonek -50 +KPX Abreve Uring -50 +KPX Abreve V -145 +KPX Abreve W -130 +KPX Abreve Y -100 +KPX Abreve Yacute -100 +KPX Abreve Ydieresis -100 +KPX Abreve p -25 +KPX Abreve quoteright -74 +KPX Abreve u -50 +KPX Abreve uacute -50 +KPX Abreve ucircumflex -50 +KPX Abreve udieresis -50 +KPX Abreve ugrave -50 +KPX Abreve uhungarumlaut -50 +KPX Abreve umacron -50 +KPX Abreve uogonek -50 +KPX Abreve uring -50 +KPX Abreve v -100 +KPX Abreve w -90 +KPX Abreve y -74 +KPX Abreve yacute -74 +KPX Abreve ydieresis -74 +KPX Acircumflex C -55 +KPX Acircumflex Cacute -55 +KPX Acircumflex Ccaron -55 +KPX Acircumflex Ccedilla -55 +KPX Acircumflex G -55 +KPX Acircumflex Gbreve -55 +KPX Acircumflex Gcommaaccent -55 +KPX Acircumflex O -45 +KPX Acircumflex Oacute -45 +KPX Acircumflex Ocircumflex -45 +KPX Acircumflex Odieresis -45 +KPX Acircumflex Ograve -45 +KPX Acircumflex Ohungarumlaut -45 +KPX Acircumflex Omacron -45 +KPX Acircumflex Oslash -45 +KPX Acircumflex Otilde -45 +KPX Acircumflex Q -45 +KPX Acircumflex T -95 +KPX Acircumflex Tcaron -95 +KPX Acircumflex Tcommaaccent -95 +KPX Acircumflex U -50 +KPX Acircumflex Uacute -50 +KPX Acircumflex Ucircumflex -50 +KPX Acircumflex Udieresis -50 +KPX Acircumflex Ugrave -50 +KPX Acircumflex Uhungarumlaut -50 +KPX Acircumflex Umacron -50 +KPX Acircumflex Uogonek -50 +KPX Acircumflex Uring -50 +KPX Acircumflex V -145 +KPX Acircumflex W -130 +KPX Acircumflex Y -100 +KPX Acircumflex Yacute -100 +KPX Acircumflex Ydieresis -100 +KPX Acircumflex p -25 +KPX Acircumflex quoteright -74 +KPX Acircumflex u -50 +KPX Acircumflex uacute -50 +KPX Acircumflex ucircumflex -50 +KPX Acircumflex udieresis -50 +KPX Acircumflex ugrave -50 +KPX Acircumflex uhungarumlaut -50 +KPX Acircumflex umacron -50 +KPX Acircumflex uogonek -50 +KPX Acircumflex uring -50 +KPX Acircumflex v -100 +KPX Acircumflex w -90 +KPX Acircumflex y -74 +KPX Acircumflex yacute -74 +KPX Acircumflex ydieresis -74 +KPX Adieresis C -55 +KPX Adieresis Cacute -55 +KPX Adieresis Ccaron -55 +KPX Adieresis Ccedilla -55 +KPX Adieresis G -55 +KPX Adieresis Gbreve -55 +KPX Adieresis Gcommaaccent -55 +KPX Adieresis O -45 +KPX Adieresis Oacute -45 +KPX Adieresis Ocircumflex -45 +KPX Adieresis Odieresis -45 +KPX Adieresis Ograve -45 +KPX Adieresis Ohungarumlaut -45 +KPX Adieresis Omacron -45 +KPX Adieresis Oslash -45 +KPX Adieresis Otilde -45 +KPX Adieresis Q -45 +KPX Adieresis T -95 +KPX Adieresis Tcaron -95 +KPX Adieresis Tcommaaccent -95 +KPX Adieresis U -50 +KPX Adieresis Uacute -50 +KPX Adieresis Ucircumflex -50 +KPX Adieresis Udieresis -50 +KPX Adieresis Ugrave -50 +KPX Adieresis Uhungarumlaut -50 +KPX Adieresis Umacron -50 +KPX Adieresis Uogonek -50 +KPX Adieresis Uring -50 +KPX Adieresis V -145 +KPX Adieresis W -130 +KPX Adieresis Y -100 +KPX Adieresis Yacute -100 +KPX Adieresis Ydieresis -100 +KPX Adieresis p -25 +KPX Adieresis quoteright -74 +KPX Adieresis u -50 +KPX Adieresis uacute -50 +KPX Adieresis ucircumflex -50 +KPX Adieresis udieresis -50 +KPX Adieresis ugrave -50 +KPX Adieresis uhungarumlaut -50 +KPX Adieresis umacron -50 +KPX Adieresis uogonek -50 +KPX Adieresis uring -50 +KPX Adieresis v -100 +KPX Adieresis w -90 +KPX Adieresis y -74 +KPX Adieresis yacute -74 +KPX Adieresis ydieresis -74 +KPX Agrave C -55 +KPX Agrave Cacute -55 +KPX Agrave Ccaron -55 +KPX Agrave Ccedilla -55 +KPX Agrave G -55 +KPX Agrave Gbreve -55 +KPX Agrave Gcommaaccent -55 +KPX Agrave O -45 +KPX Agrave Oacute -45 +KPX Agrave Ocircumflex -45 +KPX Agrave Odieresis -45 +KPX Agrave Ograve -45 +KPX Agrave Ohungarumlaut -45 +KPX Agrave Omacron -45 +KPX Agrave Oslash -45 +KPX Agrave Otilde -45 +KPX Agrave Q -45 +KPX Agrave T -95 +KPX Agrave Tcaron -95 +KPX Agrave Tcommaaccent -95 +KPX Agrave U -50 +KPX Agrave Uacute -50 +KPX Agrave Ucircumflex -50 +KPX Agrave Udieresis -50 +KPX Agrave Ugrave -50 +KPX Agrave Uhungarumlaut -50 +KPX Agrave Umacron -50 +KPX Agrave Uogonek -50 +KPX Agrave Uring -50 +KPX Agrave V -145 +KPX Agrave W -130 +KPX Agrave Y -100 +KPX Agrave Yacute -100 +KPX Agrave Ydieresis -100 +KPX Agrave p -25 +KPX Agrave quoteright -74 +KPX Agrave u -50 +KPX Agrave uacute -50 +KPX Agrave ucircumflex -50 +KPX Agrave udieresis -50 +KPX Agrave ugrave -50 +KPX Agrave uhungarumlaut -50 +KPX Agrave umacron -50 +KPX Agrave uogonek -50 +KPX Agrave uring -50 +KPX Agrave v -100 +KPX Agrave w -90 +KPX Agrave y -74 +KPX Agrave yacute -74 +KPX Agrave ydieresis -74 +KPX Amacron C -55 +KPX Amacron Cacute -55 +KPX Amacron Ccaron -55 +KPX Amacron Ccedilla -55 +KPX Amacron G -55 +KPX Amacron Gbreve -55 +KPX Amacron Gcommaaccent -55 +KPX Amacron O -45 +KPX Amacron Oacute -45 +KPX Amacron Ocircumflex -45 +KPX Amacron Odieresis -45 +KPX Amacron Ograve -45 +KPX Amacron Ohungarumlaut -45 +KPX Amacron Omacron -45 +KPX Amacron Oslash -45 +KPX Amacron Otilde -45 +KPX Amacron Q -45 +KPX Amacron T -95 +KPX Amacron Tcaron -95 +KPX Amacron Tcommaaccent -95 +KPX Amacron U -50 +KPX Amacron Uacute -50 +KPX Amacron Ucircumflex -50 +KPX Amacron Udieresis -50 +KPX Amacron Ugrave -50 +KPX Amacron Uhungarumlaut -50 +KPX Amacron Umacron -50 +KPX Amacron Uogonek -50 +KPX Amacron Uring -50 +KPX Amacron V -145 +KPX Amacron W -130 +KPX Amacron Y -100 +KPX Amacron Yacute -100 +KPX Amacron Ydieresis -100 +KPX Amacron p -25 +KPX Amacron quoteright -74 +KPX Amacron u -50 +KPX Amacron uacute -50 +KPX Amacron ucircumflex -50 +KPX Amacron udieresis -50 +KPX Amacron ugrave -50 +KPX Amacron uhungarumlaut -50 +KPX Amacron umacron -50 +KPX Amacron uogonek -50 +KPX Amacron uring -50 +KPX Amacron v -100 +KPX Amacron w -90 +KPX Amacron y -74 +KPX Amacron yacute -74 +KPX Amacron ydieresis -74 +KPX Aogonek C -55 +KPX Aogonek Cacute -55 +KPX Aogonek Ccaron -55 +KPX Aogonek Ccedilla -55 +KPX Aogonek G -55 +KPX Aogonek Gbreve -55 +KPX Aogonek Gcommaaccent -55 +KPX Aogonek O -45 +KPX Aogonek Oacute -45 +KPX Aogonek Ocircumflex -45 +KPX Aogonek Odieresis -45 +KPX Aogonek Ograve -45 +KPX Aogonek Ohungarumlaut -45 +KPX Aogonek Omacron -45 +KPX Aogonek Oslash -45 +KPX Aogonek Otilde -45 +KPX Aogonek Q -45 +KPX Aogonek T -95 +KPX Aogonek Tcaron -95 +KPX Aogonek Tcommaaccent -95 +KPX Aogonek U -50 +KPX Aogonek Uacute -50 +KPX Aogonek Ucircumflex -50 +KPX Aogonek Udieresis -50 +KPX Aogonek Ugrave -50 +KPX Aogonek Uhungarumlaut -50 +KPX Aogonek Umacron -50 +KPX Aogonek Uogonek -50 +KPX Aogonek Uring -50 +KPX Aogonek V -145 +KPX Aogonek W -130 +KPX Aogonek Y -100 +KPX Aogonek Yacute -100 +KPX Aogonek Ydieresis -100 +KPX Aogonek p -25 +KPX Aogonek quoteright -74 +KPX Aogonek u -50 +KPX Aogonek uacute -50 +KPX Aogonek ucircumflex -50 +KPX Aogonek udieresis -50 +KPX Aogonek ugrave -50 +KPX Aogonek uhungarumlaut -50 +KPX Aogonek umacron -50 +KPX Aogonek uogonek -50 +KPX Aogonek uring -50 +KPX Aogonek v -100 +KPX Aogonek w -90 +KPX Aogonek y -34 +KPX Aogonek yacute -34 +KPX Aogonek ydieresis -34 +KPX Aring C -55 +KPX Aring Cacute -55 +KPX Aring Ccaron -55 +KPX Aring Ccedilla -55 +KPX Aring G -55 +KPX Aring Gbreve -55 +KPX Aring Gcommaaccent -55 +KPX Aring O -45 +KPX Aring Oacute -45 +KPX Aring Ocircumflex -45 +KPX Aring Odieresis -45 +KPX Aring Ograve -45 +KPX Aring Ohungarumlaut -45 +KPX Aring Omacron -45 +KPX Aring Oslash -45 +KPX Aring Otilde -45 +KPX Aring Q -45 +KPX Aring T -95 +KPX Aring Tcaron -95 +KPX Aring Tcommaaccent -95 +KPX Aring U -50 +KPX Aring Uacute -50 +KPX Aring Ucircumflex -50 +KPX Aring Udieresis -50 +KPX Aring Ugrave -50 +KPX Aring Uhungarumlaut -50 +KPX Aring Umacron -50 +KPX Aring Uogonek -50 +KPX Aring Uring -50 +KPX Aring V -145 +KPX Aring W -130 +KPX Aring Y -100 +KPX Aring Yacute -100 +KPX Aring Ydieresis -100 +KPX Aring p -25 +KPX Aring quoteright -74 +KPX Aring u -50 +KPX Aring uacute -50 +KPX Aring ucircumflex -50 +KPX Aring udieresis -50 +KPX Aring ugrave -50 +KPX Aring uhungarumlaut -50 +KPX Aring umacron -50 +KPX Aring uogonek -50 +KPX Aring uring -50 +KPX Aring v -100 +KPX Aring w -90 +KPX Aring y -74 +KPX Aring yacute -74 +KPX Aring ydieresis -74 +KPX Atilde C -55 +KPX Atilde Cacute -55 +KPX Atilde Ccaron -55 +KPX Atilde Ccedilla -55 +KPX Atilde G -55 +KPX Atilde Gbreve -55 +KPX Atilde Gcommaaccent -55 +KPX Atilde O -45 +KPX Atilde Oacute -45 +KPX Atilde Ocircumflex -45 +KPX Atilde Odieresis -45 +KPX Atilde Ograve -45 +KPX Atilde Ohungarumlaut -45 +KPX Atilde Omacron -45 +KPX Atilde Oslash -45 +KPX Atilde Otilde -45 +KPX Atilde Q -45 +KPX Atilde T -95 +KPX Atilde Tcaron -95 +KPX Atilde Tcommaaccent -95 +KPX Atilde U -50 +KPX Atilde Uacute -50 +KPX Atilde Ucircumflex -50 +KPX Atilde Udieresis -50 +KPX Atilde Ugrave -50 +KPX Atilde Uhungarumlaut -50 +KPX Atilde Umacron -50 +KPX Atilde Uogonek -50 +KPX Atilde Uring -50 +KPX Atilde V -145 +KPX Atilde W -130 +KPX Atilde Y -100 +KPX Atilde Yacute -100 +KPX Atilde Ydieresis -100 +KPX Atilde p -25 +KPX Atilde quoteright -74 +KPX Atilde u -50 +KPX Atilde uacute -50 +KPX Atilde ucircumflex -50 +KPX Atilde udieresis -50 +KPX Atilde ugrave -50 +KPX Atilde uhungarumlaut -50 +KPX Atilde umacron -50 +KPX Atilde uogonek -50 +KPX Atilde uring -50 +KPX Atilde v -100 +KPX Atilde w -90 +KPX Atilde y -74 +KPX Atilde yacute -74 +KPX Atilde ydieresis -74 +KPX B A -30 +KPX B Aacute -30 +KPX B Abreve -30 +KPX B Acircumflex -30 +KPX B Adieresis -30 +KPX B Agrave -30 +KPX B Amacron -30 +KPX B Aogonek -30 +KPX B Aring -30 +KPX B Atilde -30 +KPX B U -10 +KPX B Uacute -10 +KPX B Ucircumflex -10 +KPX B Udieresis -10 +KPX B Ugrave -10 +KPX B Uhungarumlaut -10 +KPX B Umacron -10 +KPX B Uogonek -10 +KPX B Uring -10 +KPX D A -35 +KPX D Aacute -35 +KPX D Abreve -35 +KPX D Acircumflex -35 +KPX D Adieresis -35 +KPX D Agrave -35 +KPX D Amacron -35 +KPX D Aogonek -35 +KPX D Aring -35 +KPX D Atilde -35 +KPX D V -40 +KPX D W -40 +KPX D Y -40 +KPX D Yacute -40 +KPX D Ydieresis -40 +KPX D period -20 +KPX Dcaron A -35 +KPX Dcaron Aacute -35 +KPX Dcaron Abreve -35 +KPX Dcaron Acircumflex -35 +KPX Dcaron Adieresis -35 +KPX Dcaron Agrave -35 +KPX Dcaron Amacron -35 +KPX Dcaron Aogonek -35 +KPX Dcaron Aring -35 +KPX Dcaron Atilde -35 +KPX Dcaron V -40 +KPX Dcaron W -40 +KPX Dcaron Y -40 +KPX Dcaron Yacute -40 +KPX Dcaron Ydieresis -40 +KPX Dcaron period -20 +KPX Dcroat A -35 +KPX Dcroat Aacute -35 +KPX Dcroat Abreve -35 +KPX Dcroat Acircumflex -35 +KPX Dcroat Adieresis -35 +KPX Dcroat Agrave -35 +KPX Dcroat Amacron -35 +KPX Dcroat Aogonek -35 +KPX Dcroat Aring -35 +KPX Dcroat Atilde -35 +KPX Dcroat V -40 +KPX Dcroat W -40 +KPX Dcroat Y -40 +KPX Dcroat Yacute -40 +KPX Dcroat Ydieresis -40 +KPX Dcroat period -20 +KPX F A -90 +KPX F Aacute -90 +KPX F Abreve -90 +KPX F Acircumflex -90 +KPX F Adieresis -90 +KPX F Agrave -90 +KPX F Amacron -90 +KPX F Aogonek -90 +KPX F Aring -90 +KPX F Atilde -90 +KPX F a -25 +KPX F aacute -25 +KPX F abreve -25 +KPX F acircumflex -25 +KPX F adieresis -25 +KPX F agrave -25 +KPX F amacron -25 +KPX F aogonek -25 +KPX F aring -25 +KPX F atilde -25 +KPX F comma -92 +KPX F e -25 +KPX F eacute -25 +KPX F ecaron -25 +KPX F ecircumflex -25 +KPX F edieresis -25 +KPX F edotaccent -25 +KPX F egrave -25 +KPX F emacron -25 +KPX F eogonek -25 +KPX F o -25 +KPX F oacute -25 +KPX F ocircumflex -25 +KPX F odieresis -25 +KPX F ograve -25 +KPX F ohungarumlaut -25 +KPX F omacron -25 +KPX F oslash -25 +KPX F otilde -25 +KPX F period -110 +KPX J A -30 +KPX J Aacute -30 +KPX J Abreve -30 +KPX J Acircumflex -30 +KPX J Adieresis -30 +KPX J Agrave -30 +KPX J Amacron -30 +KPX J Aogonek -30 +KPX J Aring -30 +KPX J Atilde -30 +KPX J a -15 +KPX J aacute -15 +KPX J abreve -15 +KPX J acircumflex -15 +KPX J adieresis -15 +KPX J agrave -15 +KPX J amacron -15 +KPX J aogonek -15 +KPX J aring -15 +KPX J atilde -15 +KPX J e -15 +KPX J eacute -15 +KPX J ecaron -15 +KPX J ecircumflex -15 +KPX J edieresis -15 +KPX J edotaccent -15 +KPX J egrave -15 +KPX J emacron -15 +KPX J eogonek -15 +KPX J o -15 +KPX J oacute -15 +KPX J ocircumflex -15 +KPX J odieresis -15 +KPX J ograve -15 +KPX J ohungarumlaut -15 +KPX J omacron -15 +KPX J oslash -15 +KPX J otilde -15 +KPX J period -20 +KPX J u -15 +KPX J uacute -15 +KPX J ucircumflex -15 +KPX J udieresis -15 +KPX J ugrave -15 +KPX J uhungarumlaut -15 +KPX J umacron -15 +KPX J uogonek -15 +KPX J uring -15 +KPX K O -30 +KPX K Oacute -30 +KPX K Ocircumflex -30 +KPX K Odieresis -30 +KPX K Ograve -30 +KPX K Ohungarumlaut -30 +KPX K Omacron -30 +KPX K Oslash -30 +KPX K Otilde -30 +KPX K e -25 +KPX K eacute -25 +KPX K ecaron -25 +KPX K ecircumflex -25 +KPX K edieresis -25 +KPX K edotaccent -25 +KPX K egrave -25 +KPX K emacron -25 +KPX K eogonek -25 +KPX K o -25 +KPX K oacute -25 +KPX K ocircumflex -25 +KPX K odieresis -25 +KPX K ograve -25 +KPX K ohungarumlaut -25 +KPX K omacron -25 +KPX K oslash -25 +KPX K otilde -25 +KPX K u -15 +KPX K uacute -15 +KPX K ucircumflex -15 +KPX K udieresis -15 +KPX K ugrave -15 +KPX K uhungarumlaut -15 +KPX K umacron -15 +KPX K uogonek -15 +KPX K uring -15 +KPX K y -45 +KPX K yacute -45 +KPX K ydieresis -45 +KPX Kcommaaccent O -30 +KPX Kcommaaccent Oacute -30 +KPX Kcommaaccent Ocircumflex -30 +KPX Kcommaaccent Odieresis -30 +KPX Kcommaaccent Ograve -30 +KPX Kcommaaccent Ohungarumlaut -30 +KPX Kcommaaccent Omacron -30 +KPX Kcommaaccent Oslash -30 +KPX Kcommaaccent Otilde -30 +KPX Kcommaaccent e -25 +KPX Kcommaaccent eacute -25 +KPX Kcommaaccent ecaron -25 +KPX Kcommaaccent ecircumflex -25 +KPX Kcommaaccent edieresis -25 +KPX Kcommaaccent edotaccent -25 +KPX Kcommaaccent egrave -25 +KPX Kcommaaccent emacron -25 +KPX Kcommaaccent eogonek -25 +KPX Kcommaaccent o -25 +KPX Kcommaaccent oacute -25 +KPX Kcommaaccent ocircumflex -25 +KPX Kcommaaccent odieresis -25 +KPX Kcommaaccent ograve -25 +KPX Kcommaaccent ohungarumlaut -25 +KPX Kcommaaccent omacron -25 +KPX Kcommaaccent oslash -25 +KPX Kcommaaccent otilde -25 +KPX Kcommaaccent u -15 +KPX Kcommaaccent uacute -15 +KPX Kcommaaccent ucircumflex -15 +KPX Kcommaaccent udieresis -15 +KPX Kcommaaccent ugrave -15 +KPX Kcommaaccent uhungarumlaut -15 +KPX Kcommaaccent umacron -15 +KPX Kcommaaccent uogonek -15 +KPX Kcommaaccent uring -15 +KPX Kcommaaccent y -45 +KPX Kcommaaccent yacute -45 +KPX Kcommaaccent ydieresis -45 +KPX L T -92 +KPX L Tcaron -92 +KPX L Tcommaaccent -92 +KPX L V -92 +KPX L W -92 +KPX L Y -92 +KPX L Yacute -92 +KPX L Ydieresis -92 +KPX L quotedblright -20 +KPX L quoteright -110 +KPX L y -55 +KPX L yacute -55 +KPX L ydieresis -55 +KPX Lacute T -92 +KPX Lacute Tcaron -92 +KPX Lacute Tcommaaccent -92 +KPX Lacute V -92 +KPX Lacute W -92 +KPX Lacute Y -92 +KPX Lacute Yacute -92 +KPX Lacute Ydieresis -92 +KPX Lacute quotedblright -20 +KPX Lacute quoteright -110 +KPX Lacute y -55 +KPX Lacute yacute -55 +KPX Lacute ydieresis -55 +KPX Lcommaaccent T -92 +KPX Lcommaaccent Tcaron -92 +KPX Lcommaaccent Tcommaaccent -92 +KPX Lcommaaccent V -92 +KPX Lcommaaccent W -92 +KPX Lcommaaccent Y -92 +KPX Lcommaaccent Yacute -92 +KPX Lcommaaccent Ydieresis -92 +KPX Lcommaaccent quotedblright -20 +KPX Lcommaaccent quoteright -110 +KPX Lcommaaccent y -55 +KPX Lcommaaccent yacute -55 +KPX Lcommaaccent ydieresis -55 +KPX Lslash T -92 +KPX Lslash Tcaron -92 +KPX Lslash Tcommaaccent -92 +KPX Lslash V -92 +KPX Lslash W -92 +KPX Lslash Y -92 +KPX Lslash Yacute -92 +KPX Lslash Ydieresis -92 +KPX Lslash quotedblright -20 +KPX Lslash quoteright -110 +KPX Lslash y -55 +KPX Lslash yacute -55 +KPX Lslash ydieresis -55 +KPX N A -20 +KPX N Aacute -20 +KPX N Abreve -20 +KPX N Acircumflex -20 +KPX N Adieresis -20 +KPX N Agrave -20 +KPX N Amacron -20 +KPX N Aogonek -20 +KPX N Aring -20 +KPX N Atilde -20 +KPX Nacute A -20 +KPX Nacute Aacute -20 +KPX Nacute Abreve -20 +KPX Nacute Acircumflex -20 +KPX Nacute Adieresis -20 +KPX Nacute Agrave -20 +KPX Nacute Amacron -20 +KPX Nacute Aogonek -20 +KPX Nacute Aring -20 +KPX Nacute Atilde -20 +KPX Ncaron A -20 +KPX Ncaron Aacute -20 +KPX Ncaron Abreve -20 +KPX Ncaron Acircumflex -20 +KPX Ncaron Adieresis -20 +KPX Ncaron Agrave -20 +KPX Ncaron Amacron -20 +KPX Ncaron Aogonek -20 +KPX Ncaron Aring -20 +KPX Ncaron Atilde -20 +KPX Ncommaaccent A -20 +KPX Ncommaaccent Aacute -20 +KPX Ncommaaccent Abreve -20 +KPX Ncommaaccent Acircumflex -20 +KPX Ncommaaccent Adieresis -20 +KPX Ncommaaccent Agrave -20 +KPX Ncommaaccent Amacron -20 +KPX Ncommaaccent Aogonek -20 +KPX Ncommaaccent Aring -20 +KPX Ncommaaccent Atilde -20 +KPX Ntilde A -20 +KPX Ntilde Aacute -20 +KPX Ntilde Abreve -20 +KPX Ntilde Acircumflex -20 +KPX Ntilde Adieresis -20 +KPX Ntilde Agrave -20 +KPX Ntilde Amacron -20 +KPX Ntilde Aogonek -20 +KPX Ntilde Aring -20 +KPX Ntilde Atilde -20 +KPX O A -40 +KPX O Aacute -40 +KPX O Abreve -40 +KPX O Acircumflex -40 +KPX O Adieresis -40 +KPX O Agrave -40 +KPX O Amacron -40 +KPX O Aogonek -40 +KPX O Aring -40 +KPX O Atilde -40 +KPX O T -40 +KPX O Tcaron -40 +KPX O Tcommaaccent -40 +KPX O V -50 +KPX O W -50 +KPX O X -40 +KPX O Y -50 +KPX O Yacute -50 +KPX O Ydieresis -50 +KPX Oacute A -40 +KPX Oacute Aacute -40 +KPX Oacute Abreve -40 +KPX Oacute Acircumflex -40 +KPX Oacute Adieresis -40 +KPX Oacute Agrave -40 +KPX Oacute Amacron -40 +KPX Oacute Aogonek -40 +KPX Oacute Aring -40 +KPX Oacute Atilde -40 +KPX Oacute T -40 +KPX Oacute Tcaron -40 +KPX Oacute Tcommaaccent -40 +KPX Oacute V -50 +KPX Oacute W -50 +KPX Oacute X -40 +KPX Oacute Y -50 +KPX Oacute Yacute -50 +KPX Oacute Ydieresis -50 +KPX Ocircumflex A -40 +KPX Ocircumflex Aacute -40 +KPX Ocircumflex Abreve -40 +KPX Ocircumflex Acircumflex -40 +KPX Ocircumflex Adieresis -40 +KPX Ocircumflex Agrave -40 +KPX Ocircumflex Amacron -40 +KPX Ocircumflex Aogonek -40 +KPX Ocircumflex Aring -40 +KPX Ocircumflex Atilde -40 +KPX Ocircumflex T -40 +KPX Ocircumflex Tcaron -40 +KPX Ocircumflex Tcommaaccent -40 +KPX Ocircumflex V -50 +KPX Ocircumflex W -50 +KPX Ocircumflex X -40 +KPX Ocircumflex Y -50 +KPX Ocircumflex Yacute -50 +KPX Ocircumflex Ydieresis -50 +KPX Odieresis A -40 +KPX Odieresis Aacute -40 +KPX Odieresis Abreve -40 +KPX Odieresis Acircumflex -40 +KPX Odieresis Adieresis -40 +KPX Odieresis Agrave -40 +KPX Odieresis Amacron -40 +KPX Odieresis Aogonek -40 +KPX Odieresis Aring -40 +KPX Odieresis Atilde -40 +KPX Odieresis T -40 +KPX Odieresis Tcaron -40 +KPX Odieresis Tcommaaccent -40 +KPX Odieresis V -50 +KPX Odieresis W -50 +KPX Odieresis X -40 +KPX Odieresis Y -50 +KPX Odieresis Yacute -50 +KPX Odieresis Ydieresis -50 +KPX Ograve A -40 +KPX Ograve Aacute -40 +KPX Ograve Abreve -40 +KPX Ograve Acircumflex -40 +KPX Ograve Adieresis -40 +KPX Ograve Agrave -40 +KPX Ograve Amacron -40 +KPX Ograve Aogonek -40 +KPX Ograve Aring -40 +KPX Ograve Atilde -40 +KPX Ograve T -40 +KPX Ograve Tcaron -40 +KPX Ograve Tcommaaccent -40 +KPX Ograve V -50 +KPX Ograve W -50 +KPX Ograve X -40 +KPX Ograve Y -50 +KPX Ograve Yacute -50 +KPX Ograve Ydieresis -50 +KPX Ohungarumlaut A -40 +KPX Ohungarumlaut Aacute -40 +KPX Ohungarumlaut Abreve -40 +KPX Ohungarumlaut Acircumflex -40 +KPX Ohungarumlaut Adieresis -40 +KPX Ohungarumlaut Agrave -40 +KPX Ohungarumlaut Amacron -40 +KPX Ohungarumlaut Aogonek -40 +KPX Ohungarumlaut Aring -40 +KPX Ohungarumlaut Atilde -40 +KPX Ohungarumlaut T -40 +KPX Ohungarumlaut Tcaron -40 +KPX Ohungarumlaut Tcommaaccent -40 +KPX Ohungarumlaut V -50 +KPX Ohungarumlaut W -50 +KPX Ohungarumlaut X -40 +KPX Ohungarumlaut Y -50 +KPX Ohungarumlaut Yacute -50 +KPX Ohungarumlaut Ydieresis -50 +KPX Omacron A -40 +KPX Omacron Aacute -40 +KPX Omacron Abreve -40 +KPX Omacron Acircumflex -40 +KPX Omacron Adieresis -40 +KPX Omacron Agrave -40 +KPX Omacron Amacron -40 +KPX Omacron Aogonek -40 +KPX Omacron Aring -40 +KPX Omacron Atilde -40 +KPX Omacron T -40 +KPX Omacron Tcaron -40 +KPX Omacron Tcommaaccent -40 +KPX Omacron V -50 +KPX Omacron W -50 +KPX Omacron X -40 +KPX Omacron Y -50 +KPX Omacron Yacute -50 +KPX Omacron Ydieresis -50 +KPX Oslash A -40 +KPX Oslash Aacute -40 +KPX Oslash Abreve -40 +KPX Oslash Acircumflex -40 +KPX Oslash Adieresis -40 +KPX Oslash Agrave -40 +KPX Oslash Amacron -40 +KPX Oslash Aogonek -40 +KPX Oslash Aring -40 +KPX Oslash Atilde -40 +KPX Oslash T -40 +KPX Oslash Tcaron -40 +KPX Oslash Tcommaaccent -40 +KPX Oslash V -50 +KPX Oslash W -50 +KPX Oslash X -40 +KPX Oslash Y -50 +KPX Oslash Yacute -50 +KPX Oslash Ydieresis -50 +KPX Otilde A -40 +KPX Otilde Aacute -40 +KPX Otilde Abreve -40 +KPX Otilde Acircumflex -40 +KPX Otilde Adieresis -40 +KPX Otilde Agrave -40 +KPX Otilde Amacron -40 +KPX Otilde Aogonek -40 +KPX Otilde Aring -40 +KPX Otilde Atilde -40 +KPX Otilde T -40 +KPX Otilde Tcaron -40 +KPX Otilde Tcommaaccent -40 +KPX Otilde V -50 +KPX Otilde W -50 +KPX Otilde X -40 +KPX Otilde Y -50 +KPX Otilde Yacute -50 +KPX Otilde Ydieresis -50 +KPX P A -74 +KPX P Aacute -74 +KPX P Abreve -74 +KPX P Acircumflex -74 +KPX P Adieresis -74 +KPX P Agrave -74 +KPX P Amacron -74 +KPX P Aogonek -74 +KPX P Aring -74 +KPX P Atilde -74 +KPX P a -10 +KPX P aacute -10 +KPX P abreve -10 +KPX P acircumflex -10 +KPX P adieresis -10 +KPX P agrave -10 +KPX P amacron -10 +KPX P aogonek -10 +KPX P aring -10 +KPX P atilde -10 +KPX P comma -92 +KPX P e -20 +KPX P eacute -20 +KPX P ecaron -20 +KPX P ecircumflex -20 +KPX P edieresis -20 +KPX P edotaccent -20 +KPX P egrave -20 +KPX P emacron -20 +KPX P eogonek -20 +KPX P o -20 +KPX P oacute -20 +KPX P ocircumflex -20 +KPX P odieresis -20 +KPX P ograve -20 +KPX P ohungarumlaut -20 +KPX P omacron -20 +KPX P oslash -20 +KPX P otilde -20 +KPX P period -110 +KPX Q U -10 +KPX Q Uacute -10 +KPX Q Ucircumflex -10 +KPX Q Udieresis -10 +KPX Q Ugrave -10 +KPX Q Uhungarumlaut -10 +KPX Q Umacron -10 +KPX Q Uogonek -10 +KPX Q Uring -10 +KPX Q period -20 +KPX R O -30 +KPX R Oacute -30 +KPX R Ocircumflex -30 +KPX R Odieresis -30 +KPX R Ograve -30 +KPX R Ohungarumlaut -30 +KPX R Omacron -30 +KPX R Oslash -30 +KPX R Otilde -30 +KPX R T -40 +KPX R Tcaron -40 +KPX R Tcommaaccent -40 +KPX R U -30 +KPX R Uacute -30 +KPX R Ucircumflex -30 +KPX R Udieresis -30 +KPX R Ugrave -30 +KPX R Uhungarumlaut -30 +KPX R Umacron -30 +KPX R Uogonek -30 +KPX R Uring -30 +KPX R V -55 +KPX R W -35 +KPX R Y -35 +KPX R Yacute -35 +KPX R Ydieresis -35 +KPX Racute O -30 +KPX Racute Oacute -30 +KPX Racute Ocircumflex -30 +KPX Racute Odieresis -30 +KPX Racute Ograve -30 +KPX Racute Ohungarumlaut -30 +KPX Racute Omacron -30 +KPX Racute Oslash -30 +KPX Racute Otilde -30 +KPX Racute T -40 +KPX Racute Tcaron -40 +KPX Racute Tcommaaccent -40 +KPX Racute U -30 +KPX Racute Uacute -30 +KPX Racute Ucircumflex -30 +KPX Racute Udieresis -30 +KPX Racute Ugrave -30 +KPX Racute Uhungarumlaut -30 +KPX Racute Umacron -30 +KPX Racute Uogonek -30 +KPX Racute Uring -30 +KPX Racute V -55 +KPX Racute W -35 +KPX Racute Y -35 +KPX Racute Yacute -35 +KPX Racute Ydieresis -35 +KPX Rcaron O -30 +KPX Rcaron Oacute -30 +KPX Rcaron Ocircumflex -30 +KPX Rcaron Odieresis -30 +KPX Rcaron Ograve -30 +KPX Rcaron Ohungarumlaut -30 +KPX Rcaron Omacron -30 +KPX Rcaron Oslash -30 +KPX Rcaron Otilde -30 +KPX Rcaron T -40 +KPX Rcaron Tcaron -40 +KPX Rcaron Tcommaaccent -40 +KPX Rcaron U -30 +KPX Rcaron Uacute -30 +KPX Rcaron Ucircumflex -30 +KPX Rcaron Udieresis -30 +KPX Rcaron Ugrave -30 +KPX Rcaron Uhungarumlaut -30 +KPX Rcaron Umacron -30 +KPX Rcaron Uogonek -30 +KPX Rcaron Uring -30 +KPX Rcaron V -55 +KPX Rcaron W -35 +KPX Rcaron Y -35 +KPX Rcaron Yacute -35 +KPX Rcaron Ydieresis -35 +KPX Rcommaaccent O -30 +KPX Rcommaaccent Oacute -30 +KPX Rcommaaccent Ocircumflex -30 +KPX Rcommaaccent Odieresis -30 +KPX Rcommaaccent Ograve -30 +KPX Rcommaaccent Ohungarumlaut -30 +KPX Rcommaaccent Omacron -30 +KPX Rcommaaccent Oslash -30 +KPX Rcommaaccent Otilde -30 +KPX Rcommaaccent T -40 +KPX Rcommaaccent Tcaron -40 +KPX Rcommaaccent Tcommaaccent -40 +KPX Rcommaaccent U -30 +KPX Rcommaaccent Uacute -30 +KPX Rcommaaccent Ucircumflex -30 +KPX Rcommaaccent Udieresis -30 +KPX Rcommaaccent Ugrave -30 +KPX Rcommaaccent Uhungarumlaut -30 +KPX Rcommaaccent Umacron -30 +KPX Rcommaaccent Uogonek -30 +KPX Rcommaaccent Uring -30 +KPX Rcommaaccent V -55 +KPX Rcommaaccent W -35 +KPX Rcommaaccent Y -35 +KPX Rcommaaccent Yacute -35 +KPX Rcommaaccent Ydieresis -35 +KPX T A -90 +KPX T Aacute -90 +KPX T Abreve -90 +KPX T Acircumflex -90 +KPX T Adieresis -90 +KPX T Agrave -90 +KPX T Amacron -90 +KPX T Aogonek -90 +KPX T Aring -90 +KPX T Atilde -90 +KPX T O -18 +KPX T Oacute -18 +KPX T Ocircumflex -18 +KPX T Odieresis -18 +KPX T Ograve -18 +KPX T Ohungarumlaut -18 +KPX T Omacron -18 +KPX T Oslash -18 +KPX T Otilde -18 +KPX T a -92 +KPX T aacute -92 +KPX T abreve -52 +KPX T acircumflex -52 +KPX T adieresis -52 +KPX T agrave -52 +KPX T amacron -52 +KPX T aogonek -92 +KPX T aring -92 +KPX T atilde -52 +KPX T colon -74 +KPX T comma -74 +KPX T e -92 +KPX T eacute -92 +KPX T ecaron -92 +KPX T ecircumflex -92 +KPX T edieresis -52 +KPX T edotaccent -92 +KPX T egrave -52 +KPX T emacron -52 +KPX T eogonek -92 +KPX T hyphen -92 +KPX T i -18 +KPX T iacute -18 +KPX T iogonek -18 +KPX T o -92 +KPX T oacute -92 +KPX T ocircumflex -92 +KPX T odieresis -92 +KPX T ograve -92 +KPX T ohungarumlaut -92 +KPX T omacron -92 +KPX T oslash -92 +KPX T otilde -92 +KPX T period -90 +KPX T r -74 +KPX T racute -74 +KPX T rcaron -74 +KPX T rcommaaccent -74 +KPX T semicolon -74 +KPX T u -92 +KPX T uacute -92 +KPX T ucircumflex -92 +KPX T udieresis -92 +KPX T ugrave -92 +KPX T uhungarumlaut -92 +KPX T umacron -92 +KPX T uogonek -92 +KPX T uring -92 +KPX T w -74 +KPX T y -34 +KPX T yacute -34 +KPX T ydieresis -34 +KPX Tcaron A -90 +KPX Tcaron Aacute -90 +KPX Tcaron Abreve -90 +KPX Tcaron Acircumflex -90 +KPX Tcaron Adieresis -90 +KPX Tcaron Agrave -90 +KPX Tcaron Amacron -90 +KPX Tcaron Aogonek -90 +KPX Tcaron Aring -90 +KPX Tcaron Atilde -90 +KPX Tcaron O -18 +KPX Tcaron Oacute -18 +KPX Tcaron Ocircumflex -18 +KPX Tcaron Odieresis -18 +KPX Tcaron Ograve -18 +KPX Tcaron Ohungarumlaut -18 +KPX Tcaron Omacron -18 +KPX Tcaron Oslash -18 +KPX Tcaron Otilde -18 +KPX Tcaron a -92 +KPX Tcaron aacute -92 +KPX Tcaron abreve -52 +KPX Tcaron acircumflex -52 +KPX Tcaron adieresis -52 +KPX Tcaron agrave -52 +KPX Tcaron amacron -52 +KPX Tcaron aogonek -92 +KPX Tcaron aring -92 +KPX Tcaron atilde -52 +KPX Tcaron colon -74 +KPX Tcaron comma -74 +KPX Tcaron e -92 +KPX Tcaron eacute -92 +KPX Tcaron ecaron -92 +KPX Tcaron ecircumflex -92 +KPX Tcaron edieresis -52 +KPX Tcaron edotaccent -92 +KPX Tcaron egrave -52 +KPX Tcaron emacron -52 +KPX Tcaron eogonek -92 +KPX Tcaron hyphen -92 +KPX Tcaron i -18 +KPX Tcaron iacute -18 +KPX Tcaron iogonek -18 +KPX Tcaron o -92 +KPX Tcaron oacute -92 +KPX Tcaron ocircumflex -92 +KPX Tcaron odieresis -92 +KPX Tcaron ograve -92 +KPX Tcaron ohungarumlaut -92 +KPX Tcaron omacron -92 +KPX Tcaron oslash -92 +KPX Tcaron otilde -92 +KPX Tcaron period -90 +KPX Tcaron r -74 +KPX Tcaron racute -74 +KPX Tcaron rcaron -74 +KPX Tcaron rcommaaccent -74 +KPX Tcaron semicolon -74 +KPX Tcaron u -92 +KPX Tcaron uacute -92 +KPX Tcaron ucircumflex -92 +KPX Tcaron udieresis -92 +KPX Tcaron ugrave -92 +KPX Tcaron uhungarumlaut -92 +KPX Tcaron umacron -92 +KPX Tcaron uogonek -92 +KPX Tcaron uring -92 +KPX Tcaron w -74 +KPX Tcaron y -34 +KPX Tcaron yacute -34 +KPX Tcaron ydieresis -34 +KPX Tcommaaccent A -90 +KPX Tcommaaccent Aacute -90 +KPX Tcommaaccent Abreve -90 +KPX Tcommaaccent Acircumflex -90 +KPX Tcommaaccent Adieresis -90 +KPX Tcommaaccent Agrave -90 +KPX Tcommaaccent Amacron -90 +KPX Tcommaaccent Aogonek -90 +KPX Tcommaaccent Aring -90 +KPX Tcommaaccent Atilde -90 +KPX Tcommaaccent O -18 +KPX Tcommaaccent Oacute -18 +KPX Tcommaaccent Ocircumflex -18 +KPX Tcommaaccent Odieresis -18 +KPX Tcommaaccent Ograve -18 +KPX Tcommaaccent Ohungarumlaut -18 +KPX Tcommaaccent Omacron -18 +KPX Tcommaaccent Oslash -18 +KPX Tcommaaccent Otilde -18 +KPX Tcommaaccent a -92 +KPX Tcommaaccent aacute -92 +KPX Tcommaaccent abreve -52 +KPX Tcommaaccent acircumflex -52 +KPX Tcommaaccent adieresis -52 +KPX Tcommaaccent agrave -52 +KPX Tcommaaccent amacron -52 +KPX Tcommaaccent aogonek -92 +KPX Tcommaaccent aring -92 +KPX Tcommaaccent atilde -52 +KPX Tcommaaccent colon -74 +KPX Tcommaaccent comma -74 +KPX Tcommaaccent e -92 +KPX Tcommaaccent eacute -92 +KPX Tcommaaccent ecaron -92 +KPX Tcommaaccent ecircumflex -92 +KPX Tcommaaccent edieresis -52 +KPX Tcommaaccent edotaccent -92 +KPX Tcommaaccent egrave -52 +KPX Tcommaaccent emacron -52 +KPX Tcommaaccent eogonek -92 +KPX Tcommaaccent hyphen -92 +KPX Tcommaaccent i -18 +KPX Tcommaaccent iacute -18 +KPX Tcommaaccent iogonek -18 +KPX Tcommaaccent o -92 +KPX Tcommaaccent oacute -92 +KPX Tcommaaccent ocircumflex -92 +KPX Tcommaaccent odieresis -92 +KPX Tcommaaccent ograve -92 +KPX Tcommaaccent ohungarumlaut -92 +KPX Tcommaaccent omacron -92 +KPX Tcommaaccent oslash -92 +KPX Tcommaaccent otilde -92 +KPX Tcommaaccent period -90 +KPX Tcommaaccent r -74 +KPX Tcommaaccent racute -74 +KPX Tcommaaccent rcaron -74 +KPX Tcommaaccent rcommaaccent -74 +KPX Tcommaaccent semicolon -74 +KPX Tcommaaccent u -92 +KPX Tcommaaccent uacute -92 +KPX Tcommaaccent ucircumflex -92 +KPX Tcommaaccent udieresis -92 +KPX Tcommaaccent ugrave -92 +KPX Tcommaaccent uhungarumlaut -92 +KPX Tcommaaccent umacron -92 +KPX Tcommaaccent uogonek -92 +KPX Tcommaaccent uring -92 +KPX Tcommaaccent w -74 +KPX Tcommaaccent y -34 +KPX Tcommaaccent yacute -34 +KPX Tcommaaccent ydieresis -34 +KPX U A -60 +KPX U Aacute -60 +KPX U Abreve -60 +KPX U Acircumflex -60 +KPX U Adieresis -60 +KPX U Agrave -60 +KPX U Amacron -60 +KPX U Aogonek -60 +KPX U Aring -60 +KPX U Atilde -60 +KPX U comma -50 +KPX U period -50 +KPX Uacute A -60 +KPX Uacute Aacute -60 +KPX Uacute Abreve -60 +KPX Uacute Acircumflex -60 +KPX Uacute Adieresis -60 +KPX Uacute Agrave -60 +KPX Uacute Amacron -60 +KPX Uacute Aogonek -60 +KPX Uacute Aring -60 +KPX Uacute Atilde -60 +KPX Uacute comma -50 +KPX Uacute period -50 +KPX Ucircumflex A -60 +KPX Ucircumflex Aacute -60 +KPX Ucircumflex Abreve -60 +KPX Ucircumflex Acircumflex -60 +KPX Ucircumflex Adieresis -60 +KPX Ucircumflex Agrave -60 +KPX Ucircumflex Amacron -60 +KPX Ucircumflex Aogonek -60 +KPX Ucircumflex Aring -60 +KPX Ucircumflex Atilde -60 +KPX Ucircumflex comma -50 +KPX Ucircumflex period -50 +KPX Udieresis A -60 +KPX Udieresis Aacute -60 +KPX Udieresis Abreve -60 +KPX Udieresis Acircumflex -60 +KPX Udieresis Adieresis -60 +KPX Udieresis Agrave -60 +KPX Udieresis Amacron -60 +KPX Udieresis Aogonek -60 +KPX Udieresis Aring -60 +KPX Udieresis Atilde -60 +KPX Udieresis comma -50 +KPX Udieresis period -50 +KPX Ugrave A -60 +KPX Ugrave Aacute -60 +KPX Ugrave Abreve -60 +KPX Ugrave Acircumflex -60 +KPX Ugrave Adieresis -60 +KPX Ugrave Agrave -60 +KPX Ugrave Amacron -60 +KPX Ugrave Aogonek -60 +KPX Ugrave Aring -60 +KPX Ugrave Atilde -60 +KPX Ugrave comma -50 +KPX Ugrave period -50 +KPX Uhungarumlaut A -60 +KPX Uhungarumlaut Aacute -60 +KPX Uhungarumlaut Abreve -60 +KPX Uhungarumlaut Acircumflex -60 +KPX Uhungarumlaut Adieresis -60 +KPX Uhungarumlaut Agrave -60 +KPX Uhungarumlaut Amacron -60 +KPX Uhungarumlaut Aogonek -60 +KPX Uhungarumlaut Aring -60 +KPX Uhungarumlaut Atilde -60 +KPX Uhungarumlaut comma -50 +KPX Uhungarumlaut period -50 +KPX Umacron A -60 +KPX Umacron Aacute -60 +KPX Umacron Abreve -60 +KPX Umacron Acircumflex -60 +KPX Umacron Adieresis -60 +KPX Umacron Agrave -60 +KPX Umacron Amacron -60 +KPX Umacron Aogonek -60 +KPX Umacron Aring -60 +KPX Umacron Atilde -60 +KPX Umacron comma -50 +KPX Umacron period -50 +KPX Uogonek A -60 +KPX Uogonek Aacute -60 +KPX Uogonek Abreve -60 +KPX Uogonek Acircumflex -60 +KPX Uogonek Adieresis -60 +KPX Uogonek Agrave -60 +KPX Uogonek Amacron -60 +KPX Uogonek Aogonek -60 +KPX Uogonek Aring -60 +KPX Uogonek Atilde -60 +KPX Uogonek comma -50 +KPX Uogonek period -50 +KPX Uring A -60 +KPX Uring Aacute -60 +KPX Uring Abreve -60 +KPX Uring Acircumflex -60 +KPX Uring Adieresis -60 +KPX Uring Agrave -60 +KPX Uring Amacron -60 +KPX Uring Aogonek -60 +KPX Uring Aring -60 +KPX Uring Atilde -60 +KPX Uring comma -50 +KPX Uring period -50 +KPX V A -135 +KPX V Aacute -135 +KPX V Abreve -135 +KPX V Acircumflex -135 +KPX V Adieresis -135 +KPX V Agrave -135 +KPX V Amacron -135 +KPX V Aogonek -135 +KPX V Aring -135 +KPX V Atilde -135 +KPX V G -30 +KPX V Gbreve -30 +KPX V Gcommaaccent -30 +KPX V O -45 +KPX V Oacute -45 +KPX V Ocircumflex -45 +KPX V Odieresis -45 +KPX V Ograve -45 +KPX V Ohungarumlaut -45 +KPX V Omacron -45 +KPX V Oslash -45 +KPX V Otilde -45 +KPX V a -92 +KPX V aacute -92 +KPX V abreve -92 +KPX V acircumflex -92 +KPX V adieresis -92 +KPX V agrave -92 +KPX V amacron -92 +KPX V aogonek -92 +KPX V aring -92 +KPX V atilde -92 +KPX V colon -92 +KPX V comma -129 +KPX V e -100 +KPX V eacute -100 +KPX V ecaron -100 +KPX V ecircumflex -100 +KPX V edieresis -100 +KPX V edotaccent -100 +KPX V egrave -100 +KPX V emacron -100 +KPX V eogonek -100 +KPX V hyphen -74 +KPX V i -37 +KPX V iacute -37 +KPX V icircumflex -37 +KPX V idieresis -37 +KPX V igrave -37 +KPX V imacron -37 +KPX V iogonek -37 +KPX V o -100 +KPX V oacute -100 +KPX V ocircumflex -100 +KPX V odieresis -100 +KPX V ograve -100 +KPX V ohungarumlaut -100 +KPX V omacron -100 +KPX V oslash -100 +KPX V otilde -100 +KPX V period -145 +KPX V semicolon -92 +KPX V u -92 +KPX V uacute -92 +KPX V ucircumflex -92 +KPX V udieresis -92 +KPX V ugrave -92 +KPX V uhungarumlaut -92 +KPX V umacron -92 +KPX V uogonek -92 +KPX V uring -92 +KPX W A -120 +KPX W Aacute -120 +KPX W Abreve -120 +KPX W Acircumflex -120 +KPX W Adieresis -120 +KPX W Agrave -120 +KPX W Amacron -120 +KPX W Aogonek -120 +KPX W Aring -120 +KPX W Atilde -120 +KPX W O -10 +KPX W Oacute -10 +KPX W Ocircumflex -10 +KPX W Odieresis -10 +KPX W Ograve -10 +KPX W Ohungarumlaut -10 +KPX W Omacron -10 +KPX W Oslash -10 +KPX W Otilde -10 +KPX W a -65 +KPX W aacute -65 +KPX W abreve -65 +KPX W acircumflex -65 +KPX W adieresis -65 +KPX W agrave -65 +KPX W amacron -65 +KPX W aogonek -65 +KPX W aring -65 +KPX W atilde -65 +KPX W colon -55 +KPX W comma -92 +KPX W e -65 +KPX W eacute -65 +KPX W ecaron -65 +KPX W ecircumflex -65 +KPX W edieresis -65 +KPX W edotaccent -65 +KPX W egrave -65 +KPX W emacron -65 +KPX W eogonek -65 +KPX W hyphen -37 +KPX W i -18 +KPX W iacute -18 +KPX W iogonek -18 +KPX W o -75 +KPX W oacute -75 +KPX W ocircumflex -75 +KPX W odieresis -75 +KPX W ograve -75 +KPX W ohungarumlaut -75 +KPX W omacron -75 +KPX W oslash -75 +KPX W otilde -75 +KPX W period -92 +KPX W semicolon -55 +KPX W u -50 +KPX W uacute -50 +KPX W ucircumflex -50 +KPX W udieresis -50 +KPX W ugrave -50 +KPX W uhungarumlaut -50 +KPX W umacron -50 +KPX W uogonek -50 +KPX W uring -50 +KPX W y -60 +KPX W yacute -60 +KPX W ydieresis -60 +KPX Y A -110 +KPX Y Aacute -110 +KPX Y Abreve -110 +KPX Y Acircumflex -110 +KPX Y Adieresis -110 +KPX Y Agrave -110 +KPX Y Amacron -110 +KPX Y Aogonek -110 +KPX Y Aring -110 +KPX Y Atilde -110 +KPX Y O -35 +KPX Y Oacute -35 +KPX Y Ocircumflex -35 +KPX Y Odieresis -35 +KPX Y Ograve -35 +KPX Y Ohungarumlaut -35 +KPX Y Omacron -35 +KPX Y Oslash -35 +KPX Y Otilde -35 +KPX Y a -85 +KPX Y aacute -85 +KPX Y abreve -85 +KPX Y acircumflex -85 +KPX Y adieresis -85 +KPX Y agrave -85 +KPX Y amacron -85 +KPX Y aogonek -85 +KPX Y aring -85 +KPX Y atilde -85 +KPX Y colon -92 +KPX Y comma -92 +KPX Y e -111 +KPX Y eacute -111 +KPX Y ecaron -111 +KPX Y ecircumflex -111 +KPX Y edieresis -71 +KPX Y edotaccent -111 +KPX Y egrave -71 +KPX Y emacron -71 +KPX Y eogonek -111 +KPX Y hyphen -92 +KPX Y i -37 +KPX Y iacute -37 +KPX Y iogonek -37 +KPX Y o -111 +KPX Y oacute -111 +KPX Y ocircumflex -111 +KPX Y odieresis -111 +KPX Y ograve -111 +KPX Y ohungarumlaut -111 +KPX Y omacron -111 +KPX Y oslash -111 +KPX Y otilde -111 +KPX Y period -92 +KPX Y semicolon -92 +KPX Y u -92 +KPX Y uacute -92 +KPX Y ucircumflex -92 +KPX Y udieresis -92 +KPX Y ugrave -92 +KPX Y uhungarumlaut -92 +KPX Y umacron -92 +KPX Y uogonek -92 +KPX Y uring -92 +KPX Yacute A -110 +KPX Yacute Aacute -110 +KPX Yacute Abreve -110 +KPX Yacute Acircumflex -110 +KPX Yacute Adieresis -110 +KPX Yacute Agrave -110 +KPX Yacute Amacron -110 +KPX Yacute Aogonek -110 +KPX Yacute Aring -110 +KPX Yacute Atilde -110 +KPX Yacute O -35 +KPX Yacute Oacute -35 +KPX Yacute Ocircumflex -35 +KPX Yacute Odieresis -35 +KPX Yacute Ograve -35 +KPX Yacute Ohungarumlaut -35 +KPX Yacute Omacron -35 +KPX Yacute Oslash -35 +KPX Yacute Otilde -35 +KPX Yacute a -85 +KPX Yacute aacute -85 +KPX Yacute abreve -85 +KPX Yacute acircumflex -85 +KPX Yacute adieresis -85 +KPX Yacute agrave -85 +KPX Yacute amacron -85 +KPX Yacute aogonek -85 +KPX Yacute aring -85 +KPX Yacute atilde -85 +KPX Yacute colon -92 +KPX Yacute comma -92 +KPX Yacute e -111 +KPX Yacute eacute -111 +KPX Yacute ecaron -111 +KPX Yacute ecircumflex -111 +KPX Yacute edieresis -71 +KPX Yacute edotaccent -111 +KPX Yacute egrave -71 +KPX Yacute emacron -71 +KPX Yacute eogonek -111 +KPX Yacute hyphen -92 +KPX Yacute i -37 +KPX Yacute iacute -37 +KPX Yacute iogonek -37 +KPX Yacute o -111 +KPX Yacute oacute -111 +KPX Yacute ocircumflex -111 +KPX Yacute odieresis -111 +KPX Yacute ograve -111 +KPX Yacute ohungarumlaut -111 +KPX Yacute omacron -111 +KPX Yacute oslash -111 +KPX Yacute otilde -111 +KPX Yacute period -92 +KPX Yacute semicolon -92 +KPX Yacute u -92 +KPX Yacute uacute -92 +KPX Yacute ucircumflex -92 +KPX Yacute udieresis -92 +KPX Yacute ugrave -92 +KPX Yacute uhungarumlaut -92 +KPX Yacute umacron -92 +KPX Yacute uogonek -92 +KPX Yacute uring -92 +KPX Ydieresis A -110 +KPX Ydieresis Aacute -110 +KPX Ydieresis Abreve -110 +KPX Ydieresis Acircumflex -110 +KPX Ydieresis Adieresis -110 +KPX Ydieresis Agrave -110 +KPX Ydieresis Amacron -110 +KPX Ydieresis Aogonek -110 +KPX Ydieresis Aring -110 +KPX Ydieresis Atilde -110 +KPX Ydieresis O -35 +KPX Ydieresis Oacute -35 +KPX Ydieresis Ocircumflex -35 +KPX Ydieresis Odieresis -35 +KPX Ydieresis Ograve -35 +KPX Ydieresis Ohungarumlaut -35 +KPX Ydieresis Omacron -35 +KPX Ydieresis Oslash -35 +KPX Ydieresis Otilde -35 +KPX Ydieresis a -85 +KPX Ydieresis aacute -85 +KPX Ydieresis abreve -85 +KPX Ydieresis acircumflex -85 +KPX Ydieresis adieresis -85 +KPX Ydieresis agrave -85 +KPX Ydieresis amacron -85 +KPX Ydieresis aogonek -85 +KPX Ydieresis aring -85 +KPX Ydieresis atilde -85 +KPX Ydieresis colon -92 +KPX Ydieresis comma -92 +KPX Ydieresis e -111 +KPX Ydieresis eacute -111 +KPX Ydieresis ecaron -111 +KPX Ydieresis ecircumflex -111 +KPX Ydieresis edieresis -71 +KPX Ydieresis edotaccent -111 +KPX Ydieresis egrave -71 +KPX Ydieresis emacron -71 +KPX Ydieresis eogonek -111 +KPX Ydieresis hyphen -92 +KPX Ydieresis i -37 +KPX Ydieresis iacute -37 +KPX Ydieresis iogonek -37 +KPX Ydieresis o -111 +KPX Ydieresis oacute -111 +KPX Ydieresis ocircumflex -111 +KPX Ydieresis odieresis -111 +KPX Ydieresis ograve -111 +KPX Ydieresis ohungarumlaut -111 +KPX Ydieresis omacron -111 +KPX Ydieresis oslash -111 +KPX Ydieresis otilde -111 +KPX Ydieresis period -92 +KPX Ydieresis semicolon -92 +KPX Ydieresis u -92 +KPX Ydieresis uacute -92 +KPX Ydieresis ucircumflex -92 +KPX Ydieresis udieresis -92 +KPX Ydieresis ugrave -92 +KPX Ydieresis uhungarumlaut -92 +KPX Ydieresis umacron -92 +KPX Ydieresis uogonek -92 +KPX Ydieresis uring -92 +KPX a v -25 +KPX aacute v -25 +KPX abreve v -25 +KPX acircumflex v -25 +KPX adieresis v -25 +KPX agrave v -25 +KPX amacron v -25 +KPX aogonek v -25 +KPX aring v -25 +KPX atilde v -25 +KPX b b -10 +KPX b period -40 +KPX b u -20 +KPX b uacute -20 +KPX b ucircumflex -20 +KPX b udieresis -20 +KPX b ugrave -20 +KPX b uhungarumlaut -20 +KPX b umacron -20 +KPX b uogonek -20 +KPX b uring -20 +KPX b v -15 +KPX comma quotedblright -45 +KPX comma quoteright -55 +KPX d w -15 +KPX dcroat w -15 +KPX e v -15 +KPX eacute v -15 +KPX ecaron v -15 +KPX ecircumflex v -15 +KPX edieresis v -15 +KPX edotaccent v -15 +KPX egrave v -15 +KPX emacron v -15 +KPX eogonek v -15 +KPX f comma -15 +KPX f dotlessi -35 +KPX f i -25 +KPX f o -25 +KPX f oacute -25 +KPX f ocircumflex -25 +KPX f odieresis -25 +KPX f ograve -25 +KPX f ohungarumlaut -25 +KPX f omacron -25 +KPX f oslash -25 +KPX f otilde -25 +KPX f period -15 +KPX f quotedblright 50 +KPX f quoteright 55 +KPX g period -15 +KPX gbreve period -15 +KPX gcommaaccent period -15 +KPX h y -15 +KPX h yacute -15 +KPX h ydieresis -15 +KPX i v -10 +KPX iacute v -10 +KPX icircumflex v -10 +KPX idieresis v -10 +KPX igrave v -10 +KPX imacron v -10 +KPX iogonek v -10 +KPX k e -10 +KPX k eacute -10 +KPX k ecaron -10 +KPX k ecircumflex -10 +KPX k edieresis -10 +KPX k edotaccent -10 +KPX k egrave -10 +KPX k emacron -10 +KPX k eogonek -10 +KPX k o -15 +KPX k oacute -15 +KPX k ocircumflex -15 +KPX k odieresis -15 +KPX k ograve -15 +KPX k ohungarumlaut -15 +KPX k omacron -15 +KPX k oslash -15 +KPX k otilde -15 +KPX k y -15 +KPX k yacute -15 +KPX k ydieresis -15 +KPX kcommaaccent e -10 +KPX kcommaaccent eacute -10 +KPX kcommaaccent ecaron -10 +KPX kcommaaccent ecircumflex -10 +KPX kcommaaccent edieresis -10 +KPX kcommaaccent edotaccent -10 +KPX kcommaaccent egrave -10 +KPX kcommaaccent emacron -10 +KPX kcommaaccent eogonek -10 +KPX kcommaaccent o -15 +KPX kcommaaccent oacute -15 +KPX kcommaaccent ocircumflex -15 +KPX kcommaaccent odieresis -15 +KPX kcommaaccent ograve -15 +KPX kcommaaccent ohungarumlaut -15 +KPX kcommaaccent omacron -15 +KPX kcommaaccent oslash -15 +KPX kcommaaccent otilde -15 +KPX kcommaaccent y -15 +KPX kcommaaccent yacute -15 +KPX kcommaaccent ydieresis -15 +KPX n v -40 +KPX nacute v -40 +KPX ncaron v -40 +KPX ncommaaccent v -40 +KPX ntilde v -40 +KPX o v -10 +KPX o w -10 +KPX oacute v -10 +KPX oacute w -10 +KPX ocircumflex v -10 +KPX ocircumflex w -10 +KPX odieresis v -10 +KPX odieresis w -10 +KPX ograve v -10 +KPX ograve w -10 +KPX ohungarumlaut v -10 +KPX ohungarumlaut w -10 +KPX omacron v -10 +KPX omacron w -10 +KPX oslash v -10 +KPX oslash w -10 +KPX otilde v -10 +KPX otilde w -10 +KPX period quotedblright -55 +KPX period quoteright -55 +KPX quotedblleft A -10 +KPX quotedblleft Aacute -10 +KPX quotedblleft Abreve -10 +KPX quotedblleft Acircumflex -10 +KPX quotedblleft Adieresis -10 +KPX quotedblleft Agrave -10 +KPX quotedblleft Amacron -10 +KPX quotedblleft Aogonek -10 +KPX quotedblleft Aring -10 +KPX quotedblleft Atilde -10 +KPX quoteleft A -10 +KPX quoteleft Aacute -10 +KPX quoteleft Abreve -10 +KPX quoteleft Acircumflex -10 +KPX quoteleft Adieresis -10 +KPX quoteleft Agrave -10 +KPX quoteleft Amacron -10 +KPX quoteleft Aogonek -10 +KPX quoteleft Aring -10 +KPX quoteleft Atilde -10 +KPX quoteleft quoteleft -63 +KPX quoteright d -20 +KPX quoteright dcroat -20 +KPX quoteright quoteright -63 +KPX quoteright r -20 +KPX quoteright racute -20 +KPX quoteright rcaron -20 +KPX quoteright rcommaaccent -20 +KPX quoteright s -37 +KPX quoteright sacute -37 +KPX quoteright scaron -37 +KPX quoteright scedilla -37 +KPX quoteright scommaaccent -37 +KPX quoteright space -74 +KPX quoteright v -20 +KPX r c -18 +KPX r cacute -18 +KPX r ccaron -18 +KPX r ccedilla -18 +KPX r comma -92 +KPX r e -18 +KPX r eacute -18 +KPX r ecaron -18 +KPX r ecircumflex -18 +KPX r edieresis -18 +KPX r edotaccent -18 +KPX r egrave -18 +KPX r emacron -18 +KPX r eogonek -18 +KPX r g -10 +KPX r gbreve -10 +KPX r gcommaaccent -10 +KPX r hyphen -37 +KPX r n -15 +KPX r nacute -15 +KPX r ncaron -15 +KPX r ncommaaccent -15 +KPX r ntilde -15 +KPX r o -18 +KPX r oacute -18 +KPX r ocircumflex -18 +KPX r odieresis -18 +KPX r ograve -18 +KPX r ohungarumlaut -18 +KPX r omacron -18 +KPX r oslash -18 +KPX r otilde -18 +KPX r p -10 +KPX r period -100 +KPX r q -18 +KPX r v -10 +KPX racute c -18 +KPX racute cacute -18 +KPX racute ccaron -18 +KPX racute ccedilla -18 +KPX racute comma -92 +KPX racute e -18 +KPX racute eacute -18 +KPX racute ecaron -18 +KPX racute ecircumflex -18 +KPX racute edieresis -18 +KPX racute edotaccent -18 +KPX racute egrave -18 +KPX racute emacron -18 +KPX racute eogonek -18 +KPX racute g -10 +KPX racute gbreve -10 +KPX racute gcommaaccent -10 +KPX racute hyphen -37 +KPX racute n -15 +KPX racute nacute -15 +KPX racute ncaron -15 +KPX racute ncommaaccent -15 +KPX racute ntilde -15 +KPX racute o -18 +KPX racute oacute -18 +KPX racute ocircumflex -18 +KPX racute odieresis -18 +KPX racute ograve -18 +KPX racute ohungarumlaut -18 +KPX racute omacron -18 +KPX racute oslash -18 +KPX racute otilde -18 +KPX racute p -10 +KPX racute period -100 +KPX racute q -18 +KPX racute v -10 +KPX rcaron c -18 +KPX rcaron cacute -18 +KPX rcaron ccaron -18 +KPX rcaron ccedilla -18 +KPX rcaron comma -92 +KPX rcaron e -18 +KPX rcaron eacute -18 +KPX rcaron ecaron -18 +KPX rcaron ecircumflex -18 +KPX rcaron edieresis -18 +KPX rcaron edotaccent -18 +KPX rcaron egrave -18 +KPX rcaron emacron -18 +KPX rcaron eogonek -18 +KPX rcaron g -10 +KPX rcaron gbreve -10 +KPX rcaron gcommaaccent -10 +KPX rcaron hyphen -37 +KPX rcaron n -15 +KPX rcaron nacute -15 +KPX rcaron ncaron -15 +KPX rcaron ncommaaccent -15 +KPX rcaron ntilde -15 +KPX rcaron o -18 +KPX rcaron oacute -18 +KPX rcaron ocircumflex -18 +KPX rcaron odieresis -18 +KPX rcaron ograve -18 +KPX rcaron ohungarumlaut -18 +KPX rcaron omacron -18 +KPX rcaron oslash -18 +KPX rcaron otilde -18 +KPX rcaron p -10 +KPX rcaron period -100 +KPX rcaron q -18 +KPX rcaron v -10 +KPX rcommaaccent c -18 +KPX rcommaaccent cacute -18 +KPX rcommaaccent ccaron -18 +KPX rcommaaccent ccedilla -18 +KPX rcommaaccent comma -92 +KPX rcommaaccent e -18 +KPX rcommaaccent eacute -18 +KPX rcommaaccent ecaron -18 +KPX rcommaaccent ecircumflex -18 +KPX rcommaaccent edieresis -18 +KPX rcommaaccent edotaccent -18 +KPX rcommaaccent egrave -18 +KPX rcommaaccent emacron -18 +KPX rcommaaccent eogonek -18 +KPX rcommaaccent g -10 +KPX rcommaaccent gbreve -10 +KPX rcommaaccent gcommaaccent -10 +KPX rcommaaccent hyphen -37 +KPX rcommaaccent n -15 +KPX rcommaaccent nacute -15 +KPX rcommaaccent ncaron -15 +KPX rcommaaccent ncommaaccent -15 +KPX rcommaaccent ntilde -15 +KPX rcommaaccent o -18 +KPX rcommaaccent oacute -18 +KPX rcommaaccent ocircumflex -18 +KPX rcommaaccent odieresis -18 +KPX rcommaaccent ograve -18 +KPX rcommaaccent ohungarumlaut -18 +KPX rcommaaccent omacron -18 +KPX rcommaaccent oslash -18 +KPX rcommaaccent otilde -18 +KPX rcommaaccent p -10 +KPX rcommaaccent period -100 +KPX rcommaaccent q -18 +KPX rcommaaccent v -10 +KPX space A -55 +KPX space Aacute -55 +KPX space Abreve -55 +KPX space Acircumflex -55 +KPX space Adieresis -55 +KPX space Agrave -55 +KPX space Amacron -55 +KPX space Aogonek -55 +KPX space Aring -55 +KPX space Atilde -55 +KPX space T -30 +KPX space Tcaron -30 +KPX space Tcommaaccent -30 +KPX space V -45 +KPX space W -30 +KPX space Y -55 +KPX space Yacute -55 +KPX space Ydieresis -55 +KPX v a -10 +KPX v aacute -10 +KPX v abreve -10 +KPX v acircumflex -10 +KPX v adieresis -10 +KPX v agrave -10 +KPX v amacron -10 +KPX v aogonek -10 +KPX v aring -10 +KPX v atilde -10 +KPX v comma -55 +KPX v e -10 +KPX v eacute -10 +KPX v ecaron -10 +KPX v ecircumflex -10 +KPX v edieresis -10 +KPX v edotaccent -10 +KPX v egrave -10 +KPX v emacron -10 +KPX v eogonek -10 +KPX v o -10 +KPX v oacute -10 +KPX v ocircumflex -10 +KPX v odieresis -10 +KPX v ograve -10 +KPX v ohungarumlaut -10 +KPX v omacron -10 +KPX v oslash -10 +KPX v otilde -10 +KPX v period -70 +KPX w comma -55 +KPX w o -10 +KPX w oacute -10 +KPX w ocircumflex -10 +KPX w odieresis -10 +KPX w ograve -10 +KPX w ohungarumlaut -10 +KPX w omacron -10 +KPX w oslash -10 +KPX w otilde -10 +KPX w period -70 +KPX y comma -55 +KPX y e -10 +KPX y eacute -10 +KPX y ecaron -10 +KPX y ecircumflex -10 +KPX y edieresis -10 +KPX y edotaccent -10 +KPX y egrave -10 +KPX y emacron -10 +KPX y eogonek -10 +KPX y o -25 +KPX y oacute -25 +KPX y ocircumflex -25 +KPX y odieresis -25 +KPX y ograve -25 +KPX y ohungarumlaut -25 +KPX y omacron -25 +KPX y oslash -25 +KPX y otilde -25 +KPX y period -70 +KPX yacute comma -55 +KPX yacute e -10 +KPX yacute eacute -10 +KPX yacute ecaron -10 +KPX yacute ecircumflex -10 +KPX yacute edieresis -10 +KPX yacute edotaccent -10 +KPX yacute egrave -10 +KPX yacute emacron -10 +KPX yacute eogonek -10 +KPX yacute o -25 +KPX yacute oacute -25 +KPX yacute ocircumflex -25 +KPX yacute odieresis -25 +KPX yacute ograve -25 +KPX yacute ohungarumlaut -25 +KPX yacute omacron -25 +KPX yacute oslash -25 +KPX yacute otilde -25 +KPX yacute period -70 +KPX ydieresis comma -55 +KPX ydieresis e -10 +KPX ydieresis eacute -10 +KPX ydieresis ecaron -10 +KPX ydieresis ecircumflex -10 +KPX ydieresis edieresis -10 +KPX ydieresis edotaccent -10 +KPX ydieresis egrave -10 +KPX ydieresis emacron -10 +KPX ydieresis eogonek -10 +KPX ydieresis o -25 +KPX ydieresis oacute -25 +KPX ydieresis ocircumflex -25 +KPX ydieresis odieresis -25 +KPX ydieresis ograve -25 +KPX ydieresis ohungarumlaut -25 +KPX ydieresis omacron -25 +KPX ydieresis oslash -25 +KPX ydieresis otilde -25 +KPX ydieresis period -70 +EndKernPairs +EndKernData +EndFontMetrics diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/Times-Bold.afm.json b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/Times-Bold.afm.json new file mode 100644 index 0000000..33d0c90 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/Times-Bold.afm.json @@ -0,0 +1,569 @@ +{ + "codeToName": { + "32": "space", + "160": "space", + "33": "exclam", + "34": "quotedbl", + "35": "numbersign", + "36": "dollar", + "37": "percent", + "38": "ampersand", + "146": "quoteright", + "40": "parenleft", + "41": "parenright", + "42": "asterisk", + "43": "plus", + "44": "comma", + "45": "hyphen", + "173": "hyphen", + "46": "period", + "47": "slash", + "48": "zero", + "49": "one", + "50": "two", + "51": "three", + "52": "four", + "53": "five", + "54": "six", + "55": "seven", + "56": "eight", + "57": "nine", + "58": "colon", + "59": "semicolon", + "60": "less", + "61": "equal", + "62": "greater", + "63": "question", + "64": "at", + "65": "A", + "66": "B", + "67": "C", + "68": "D", + "69": "E", + "70": "F", + "71": "G", + "72": "H", + "73": "I", + "74": "J", + "75": "K", + "76": "L", + "77": "M", + "78": "N", + "79": "O", + "80": "P", + "81": "Q", + "82": "R", + "83": "S", + "84": "T", + "85": "U", + "86": "V", + "87": "W", + "88": "X", + "89": "Y", + "90": "Z", + "91": "bracketleft", + "92": "backslash", + "93": "bracketright", + "94": "asciicircum", + "95": "underscore", + "145": "quoteleft", + "97": "a", + "98": "b", + "99": "c", + "100": "d", + "101": "e", + "102": "f", + "103": "g", + "104": "h", + "105": "i", + "106": "j", + "107": "k", + "108": "l", + "109": "m", + "110": "n", + "111": "o", + "112": "p", + "113": "q", + "114": "r", + "115": "s", + "116": "t", + "117": "u", + "118": "v", + "119": "w", + "120": "x", + "121": "y", + "122": "z", + "123": "braceleft", + "124": "bar", + "125": "braceright", + "126": "asciitilde", + "161": "exclamdown", + "162": "cent", + "163": "sterling", + "165": "yen", + "131": "florin", + "167": "section", + "164": "currency", + "39": "quotesingle", + "147": "quotedblleft", + "171": "guillemotleft", + "139": "guilsinglleft", + "155": "guilsinglright", + "150": "endash", + "134": "dagger", + "135": "daggerdbl", + "183": "periodcentered", + "182": "paragraph", + "149": "bullet", + "130": "quotesinglbase", + "132": "quotedblbase", + "148": "quotedblright", + "187": "guillemotright", + "133": "ellipsis", + "137": "perthousand", + "191": "questiondown", + "96": "grave", + "180": "acute", + "136": "circumflex", + "152": "tilde", + "175": "macron", + "168": "dieresis", + "184": "cedilla", + "151": "emdash", + "198": "AE", + "170": "ordfeminine", + "216": "Oslash", + "140": "OE", + "186": "ordmasculine", + "230": "ae", + "248": "oslash", + "156": "oe", + "223": "germandbls", + "207": "Idieresis", + "233": "eacute", + "159": "Ydieresis", + "247": "divide", + "221": "Yacute", + "194": "Acircumflex", + "225": "aacute", + "219": "Ucircumflex", + "253": "yacute", + "234": "ecircumflex", + "220": "Udieresis", + "218": "Uacute", + "203": "Edieresis", + "169": "copyright", + "229": "aring", + "224": "agrave", + "227": "atilde", + "154": "scaron", + "237": "iacute", + "251": "ucircumflex", + "226": "acircumflex", + "231": "ccedilla", + "222": "Thorn", + "179": "threesuperior", + "210": "Ograve", + "192": "Agrave", + "215": "multiply", + "250": "uacute", + "255": "ydieresis", + "238": "icircumflex", + "202": "Ecircumflex", + "228": "adieresis", + "235": "edieresis", + "205": "Iacute", + "177": "plusminus", + "166": "brokenbar", + "174": "registered", + "200": "Egrave", + "142": "Zcaron", + "208": "Eth", + "199": "Ccedilla", + "193": "Aacute", + "196": "Adieresis", + "232": "egrave", + "211": "Oacute", + "243": "oacute", + "239": "idieresis", + "212": "Ocircumflex", + "217": "Ugrave", + "254": "thorn", + "178": "twosuperior", + "214": "Odieresis", + "181": "mu", + "236": "igrave", + "190": "threequarters", + "153": "trademark", + "204": "Igrave", + "189": "onehalf", + "244": "ocircumflex", + "241": "ntilde", + "201": "Eacute", + "188": "onequarter", + "138": "Scaron", + "176": "degree", + "242": "ograve", + "249": "ugrave", + "209": "Ntilde", + "245": "otilde", + "195": "Atilde", + "197": "Aring", + "213": "Otilde", + "206": "Icircumflex", + "172": "logicalnot", + "246": "odieresis", + "252": "udieresis", + "240": "eth", + "158": "zcaron", + "185": "onesuperior", + "128": "Euro" + }, + "isUnicode": false, + "FontName": "Times-Bold", + "FullName": "Times Bold", + "FamilyName": "Times", + "Weight": "Bold", + "ItalicAngle": "0", + "IsFixedPitch": "false", + "CharacterSet": "ExtendedRoman", + "FontBBox": [ + "-168", + "-218", + "1000", + "935" + ], + "UnderlinePosition": "-100", + "UnderlineThickness": "50", + "Version": "002.000", + "EncodingScheme": "WinAnsiEncoding", + "CapHeight": "676", + "XHeight": "461", + "Ascender": "683", + "Descender": "-217", + "StdHW": "44", + "StdVW": "139", + "StartCharMetrics": "317", + "C": { + "32": 250, + "160": 250, + "33": 333, + "34": 555, + "35": 500, + "36": 500, + "37": 1000, + "38": 833, + "146": 333, + "40": 333, + "41": 333, + "42": 500, + "43": 570, + "44": 250, + "45": 333, + "173": 333, + "46": 250, + "47": 278, + "48": 500, + "49": 500, + "50": 500, + "51": 500, + "52": 500, + "53": 500, + "54": 500, + "55": 500, + "56": 500, + "57": 500, + "58": 333, + "59": 333, + "60": 570, + "61": 570, + "62": 570, + "63": 500, + "64": 930, + "65": 722, + "66": 667, + "67": 722, + "68": 722, + "69": 667, + "70": 611, + "71": 778, + "72": 778, + "73": 389, + "74": 500, + "75": 778, + "76": 667, + "77": 944, + "78": 722, + "79": 778, + "80": 611, + "81": 778, + "82": 722, + "83": 556, + "84": 667, + "85": 722, + "86": 722, + "87": 1000, + "88": 722, + "89": 722, + "90": 667, + "91": 333, + "92": 278, + "93": 333, + "94": 581, + "95": 500, + "145": 333, + "97": 500, + "98": 556, + "99": 444, + "100": 556, + "101": 444, + "102": 333, + "103": 500, + "104": 556, + "105": 278, + "106": 333, + "107": 556, + "108": 278, + "109": 833, + "110": 556, + "111": 500, + "112": 556, + "113": 556, + "114": 444, + "115": 389, + "116": 333, + "117": 556, + "118": 500, + "119": 722, + "120": 500, + "121": 500, + "122": 444, + "123": 394, + "124": 220, + "125": 394, + "126": 520, + "161": 333, + "162": 500, + "163": 500, + "fraction": 167, + "165": 500, + "131": 500, + "167": 500, + "164": 500, + "39": 278, + "147": 500, + "171": 500, + "139": 333, + "155": 333, + "fi": 556, + "fl": 556, + "150": 500, + "134": 500, + "135": 500, + "183": 250, + "182": 540, + "149": 350, + "130": 333, + "132": 500, + "148": 500, + "187": 500, + "133": 1000, + "137": 1000, + "191": 500, + "96": 333, + "180": 333, + "136": 333, + "152": 333, + "175": 333, + "breve": 333, + "dotaccent": 333, + "168": 333, + "ring": 333, + "184": 333, + "hungarumlaut": 333, + "ogonek": 333, + "caron": 333, + "151": 1000, + "198": 1000, + "170": 300, + "Lslash": 667, + "216": 778, + "140": 1000, + "186": 330, + "230": 722, + "dotlessi": 278, + "lslash": 278, + "248": 500, + "156": 722, + "223": 556, + "207": 389, + "233": 444, + "abreve": 500, + "uhungarumlaut": 556, + "ecaron": 444, + "159": 722, + "247": 570, + "221": 722, + "194": 722, + "225": 500, + "219": 722, + "253": 500, + "scommaaccent": 389, + "234": 444, + "Uring": 722, + "220": 722, + "aogonek": 500, + "218": 722, + "uogonek": 556, + "203": 667, + "Dcroat": 722, + "commaaccent": 250, + "169": 747, + "Emacron": 667, + "ccaron": 444, + "229": 500, + "Ncommaaccent": 722, + "lacute": 278, + "224": 500, + "Tcommaaccent": 667, + "Cacute": 722, + "227": 500, + "Edotaccent": 667, + "154": 389, + "scedilla": 389, + "237": 278, + "lozenge": 494, + "Rcaron": 722, + "Gcommaaccent": 778, + "251": 556, + "226": 500, + "Amacron": 722, + "rcaron": 444, + "231": 444, + "Zdotaccent": 667, + "222": 611, + "Omacron": 778, + "Racute": 722, + "Sacute": 556, + "dcaron": 672, + "Umacron": 722, + "uring": 556, + "179": 300, + "210": 778, + "192": 722, + "Abreve": 722, + "215": 570, + "250": 556, + "Tcaron": 667, + "partialdiff": 494, + "255": 500, + "Nacute": 722, + "238": 278, + "202": 667, + "228": 500, + "235": 444, + "cacute": 444, + "nacute": 556, + "umacron": 556, + "Ncaron": 722, + "205": 389, + "177": 570, + "166": 220, + "174": 747, + "Gbreve": 778, + "Idotaccent": 389, + "summation": 600, + "200": 667, + "racute": 444, + "omacron": 500, + "Zacute": 667, + "142": 667, + "greaterequal": 549, + "208": 722, + "199": 722, + "lcommaaccent": 278, + "tcaron": 416, + "eogonek": 444, + "Uogonek": 722, + "193": 722, + "196": 722, + "232": 444, + "zacute": 444, + "iogonek": 278, + "211": 778, + "243": 500, + "amacron": 500, + "sacute": 389, + "239": 278, + "212": 778, + "217": 722, + "Delta": 612, + "254": 556, + "178": 300, + "214": 778, + "181": 556, + "236": 278, + "ohungarumlaut": 500, + "Eogonek": 667, + "dcroat": 556, + "190": 750, + "Scedilla": 556, + "lcaron": 394, + "Kcommaaccent": 778, + "Lacute": 667, + "153": 1000, + "edotaccent": 444, + "204": 389, + "Imacron": 389, + "Lcaron": 667, + "189": 750, + "lessequal": 549, + "244": 500, + "241": 556, + "Uhungarumlaut": 722, + "201": 667, + "emacron": 444, + "gbreve": 500, + "188": 750, + "138": 556, + "Scommaaccent": 556, + "Ohungarumlaut": 778, + "176": 400, + "242": 500, + "Ccaron": 722, + "249": 556, + "radical": 549, + "Dcaron": 722, + "rcommaaccent": 444, + "209": 722, + "245": 500, + "Rcommaaccent": 722, + "Lcommaaccent": 667, + "195": 722, + "Aogonek": 722, + "197": 722, + "213": 778, + "zdotaccent": 444, + "Ecaron": 667, + "Iogonek": 389, + "kcommaaccent": 556, + "minus": 570, + "206": 389, + "ncaron": 556, + "tcommaaccent": 333, + "172": 570, + "246": 500, + "252": 556, + "notequal": 549, + "gcommaaccent": 500, + "240": 500, + "158": 444, + "ncommaaccent": 556, + "185": 300, + "imacron": 278, + "128": 500 + }, + "CIDtoGID_Compressed": true, + "CIDtoGID": "eJwDAAAAAAE=", + "_version_": 6 +} \ No newline at end of file diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/Times-BoldItalic.afm b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/Times-BoldItalic.afm new file mode 100644 index 0000000..396987c --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/Times-BoldItalic.afm @@ -0,0 +1,2386 @@ +StartFontMetrics 4.1 +Comment Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Thu May 1 13:04:06 1997 +Comment UniqueID 43066 +Comment VMusage 45874 56899 +FontName Times-BoldItalic +FullName Times Bold Italic +FamilyName Times +Weight Bold +ItalicAngle -15 +IsFixedPitch false +CharacterSet ExtendedRoman +FontBBox -200 -218 996 921 +UnderlinePosition -100 +UnderlineThickness 50 +Version 002.000 +Notice Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.Times is a trademark of Linotype-Hell AG and/or its subsidiaries. +EncodingScheme WinAnsiEncoding +CapHeight 669 +XHeight 462 +Ascender 683 +Descender -217 +StdHW 42 +StdVW 121 +StartCharMetrics 317 +C 32 ; WX 250 ; N space ; B 0 0 0 0 ; +C 160 ; WX 250 ; N space ; B 0 0 0 0 ; +C 33 ; WX 389 ; N exclam ; B 67 -13 370 684 ; +C 34 ; WX 555 ; N quotedbl ; B 136 398 536 685 ; +C 35 ; WX 500 ; N numbersign ; B -33 0 533 700 ; +C 36 ; WX 500 ; N dollar ; B -20 -100 497 733 ; +C 37 ; WX 833 ; N percent ; B 39 -10 793 692 ; +C 38 ; WX 778 ; N ampersand ; B 5 -19 699 682 ; +C 146 ; WX 333 ; N quoteright ; B 98 369 302 685 ; +C 40 ; WX 333 ; N parenleft ; B 28 -179 344 685 ; +C 41 ; WX 333 ; N parenright ; B -44 -179 271 685 ; +C 42 ; WX 500 ; N asterisk ; B 65 249 456 685 ; +C 43 ; WX 570 ; N plus ; B 33 0 537 506 ; +C 44 ; WX 250 ; N comma ; B -60 -182 144 134 ; +C 45 ; WX 333 ; N hyphen ; B 2 166 271 282 ; +C 173 ; WX 333 ; N hyphen ; B 2 166 271 282 ; +C 46 ; WX 250 ; N period ; B -9 -13 139 135 ; +C 47 ; WX 278 ; N slash ; B -64 -18 342 685 ; +C 48 ; WX 500 ; N zero ; B 17 -14 477 683 ; +C 49 ; WX 500 ; N one ; B 5 0 419 683 ; +C 50 ; WX 500 ; N two ; B -27 0 446 683 ; +C 51 ; WX 500 ; N three ; B -15 -13 450 683 ; +C 52 ; WX 500 ; N four ; B -15 0 503 683 ; +C 53 ; WX 500 ; N five ; B -11 -13 487 669 ; +C 54 ; WX 500 ; N six ; B 23 -15 509 679 ; +C 55 ; WX 500 ; N seven ; B 52 0 525 669 ; +C 56 ; WX 500 ; N eight ; B 3 -13 476 683 ; +C 57 ; WX 500 ; N nine ; B -12 -10 475 683 ; +C 58 ; WX 333 ; N colon ; B 23 -13 264 459 ; +C 59 ; WX 333 ; N semicolon ; B -25 -183 264 459 ; +C 60 ; WX 570 ; N less ; B 31 -8 539 514 ; +C 61 ; WX 570 ; N equal ; B 33 107 537 399 ; +C 62 ; WX 570 ; N greater ; B 31 -8 539 514 ; +C 63 ; WX 500 ; N question ; B 79 -13 470 684 ; +C 64 ; WX 832 ; N at ; B 63 -18 770 685 ; +C 65 ; WX 667 ; N A ; B -67 0 593 683 ; +C 66 ; WX 667 ; N B ; B -24 0 624 669 ; +C 67 ; WX 667 ; N C ; B 32 -18 677 685 ; +C 68 ; WX 722 ; N D ; B -46 0 685 669 ; +C 69 ; WX 667 ; N E ; B -27 0 653 669 ; +C 70 ; WX 667 ; N F ; B -13 0 660 669 ; +C 71 ; WX 722 ; N G ; B 21 -18 706 685 ; +C 72 ; WX 778 ; N H ; B -24 0 799 669 ; +C 73 ; WX 389 ; N I ; B -32 0 406 669 ; +C 74 ; WX 500 ; N J ; B -46 -99 524 669 ; +C 75 ; WX 667 ; N K ; B -21 0 702 669 ; +C 76 ; WX 611 ; N L ; B -22 0 590 669 ; +C 77 ; WX 889 ; N M ; B -29 -12 917 669 ; +C 78 ; WX 722 ; N N ; B -27 -15 748 669 ; +C 79 ; WX 722 ; N O ; B 27 -18 691 685 ; +C 80 ; WX 611 ; N P ; B -27 0 613 669 ; +C 81 ; WX 722 ; N Q ; B 27 -208 691 685 ; +C 82 ; WX 667 ; N R ; B -29 0 623 669 ; +C 83 ; WX 556 ; N S ; B 2 -18 526 685 ; +C 84 ; WX 611 ; N T ; B 50 0 650 669 ; +C 85 ; WX 722 ; N U ; B 67 -18 744 669 ; +C 86 ; WX 667 ; N V ; B 65 -18 715 669 ; +C 87 ; WX 889 ; N W ; B 65 -18 940 669 ; +C 88 ; WX 667 ; N X ; B -24 0 694 669 ; +C 89 ; WX 611 ; N Y ; B 73 0 659 669 ; +C 90 ; WX 611 ; N Z ; B -11 0 590 669 ; +C 91 ; WX 333 ; N bracketleft ; B -37 -159 362 674 ; +C 92 ; WX 278 ; N backslash ; B -1 -18 279 685 ; +C 93 ; WX 333 ; N bracketright ; B -56 -157 343 674 ; +C 94 ; WX 570 ; N asciicircum ; B 67 304 503 669 ; +C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; +C 145 ; WX 333 ; N quoteleft ; B 128 369 332 685 ; +C 97 ; WX 500 ; N a ; B -21 -14 455 462 ; +C 98 ; WX 500 ; N b ; B -14 -13 444 699 ; +C 99 ; WX 444 ; N c ; B -5 -13 392 462 ; +C 100 ; WX 500 ; N d ; B -21 -13 517 699 ; +C 101 ; WX 444 ; N e ; B 5 -13 398 462 ; +C 102 ; WX 333 ; N f ; B -169 -205 446 698 ; L i fi ; L l fl ; +C 103 ; WX 500 ; N g ; B -52 -203 478 462 ; +C 104 ; WX 556 ; N h ; B -13 -9 498 699 ; +C 105 ; WX 278 ; N i ; B 2 -9 263 684 ; +C 106 ; WX 278 ; N j ; B -189 -207 279 684 ; +C 107 ; WX 500 ; N k ; B -23 -8 483 699 ; +C 108 ; WX 278 ; N l ; B 2 -9 290 699 ; +C 109 ; WX 778 ; N m ; B -14 -9 722 462 ; +C 110 ; WX 556 ; N n ; B -6 -9 493 462 ; +C 111 ; WX 500 ; N o ; B -3 -13 441 462 ; +C 112 ; WX 500 ; N p ; B -120 -205 446 462 ; +C 113 ; WX 500 ; N q ; B 1 -205 471 462 ; +C 114 ; WX 389 ; N r ; B -21 0 389 462 ; +C 115 ; WX 389 ; N s ; B -19 -13 333 462 ; +C 116 ; WX 278 ; N t ; B -11 -9 281 594 ; +C 117 ; WX 556 ; N u ; B 15 -9 492 462 ; +C 118 ; WX 444 ; N v ; B 16 -13 401 462 ; +C 119 ; WX 667 ; N w ; B 16 -13 614 462 ; +C 120 ; WX 500 ; N x ; B -46 -13 469 462 ; +C 121 ; WX 444 ; N y ; B -94 -205 392 462 ; +C 122 ; WX 389 ; N z ; B -43 -78 368 449 ; +C 123 ; WX 348 ; N braceleft ; B 5 -187 436 686 ; +C 124 ; WX 220 ; N bar ; B 66 -218 154 782 ; +C 125 ; WX 348 ; N braceright ; B -129 -187 302 686 ; +C 126 ; WX 570 ; N asciitilde ; B 54 173 516 333 ; +C 161 ; WX 389 ; N exclamdown ; B 19 -205 322 492 ; +C 162 ; WX 500 ; N cent ; B 42 -143 439 576 ; +C 163 ; WX 500 ; N sterling ; B -32 -12 510 683 ; +C -1 ; WX 167 ; N fraction ; B -169 -14 324 683 ; +C 165 ; WX 500 ; N yen ; B 33 0 628 669 ; +C 131 ; WX 500 ; N florin ; B -87 -156 537 707 ; +C 167 ; WX 500 ; N section ; B 36 -143 459 685 ; +C 164 ; WX 500 ; N currency ; B -26 34 526 586 ; +C 39 ; WX 278 ; N quotesingle ; B 128 398 268 685 ; +C 147 ; WX 500 ; N quotedblleft ; B 53 369 513 685 ; +C 171 ; WX 500 ; N guillemotleft ; B 12 32 468 415 ; +C 139 ; WX 333 ; N guilsinglleft ; B 32 32 303 415 ; +C 155 ; WX 333 ; N guilsinglright ; B 10 32 281 415 ; +C -1 ; WX 556 ; N fi ; B -188 -205 514 703 ; +C -1 ; WX 556 ; N fl ; B -186 -205 553 704 ; +C 150 ; WX 500 ; N endash ; B -40 178 477 269 ; +C 134 ; WX 500 ; N dagger ; B 91 -145 494 685 ; +C 135 ; WX 500 ; N daggerdbl ; B 10 -139 493 685 ; +C 183 ; WX 250 ; N periodcentered ; B 51 257 199 405 ; +C 182 ; WX 500 ; N paragraph ; B -57 -193 562 669 ; +C 149 ; WX 350 ; N bullet ; B 0 175 350 525 ; +C 130 ; WX 333 ; N quotesinglbase ; B -5 -182 199 134 ; +C 132 ; WX 500 ; N quotedblbase ; B -57 -182 403 134 ; +C 148 ; WX 500 ; N quotedblright ; B 53 369 513 685 ; +C 187 ; WX 500 ; N guillemotright ; B 12 32 468 415 ; +C 133 ; WX 1000 ; N ellipsis ; B 40 -13 852 135 ; +C 137 ; WX 1000 ; N perthousand ; B 7 -29 996 706 ; +C 191 ; WX 500 ; N questiondown ; B 30 -205 421 492 ; +C 96 ; WX 333 ; N grave ; B 85 516 297 697 ; +C 180 ; WX 333 ; N acute ; B 139 516 379 697 ; +C 136 ; WX 333 ; N circumflex ; B 40 516 367 690 ; +C 152 ; WX 333 ; N tilde ; B 48 536 407 655 ; +C 175 ; WX 333 ; N macron ; B 51 553 393 623 ; +C -1 ; WX 333 ; N breve ; B 71 516 387 678 ; +C -1 ; WX 333 ; N dotaccent ; B 163 550 298 684 ; +C 168 ; WX 333 ; N dieresis ; B 55 550 402 684 ; +C -1 ; WX 333 ; N ring ; B 127 516 340 729 ; +C 184 ; WX 333 ; N cedilla ; B -80 -218 156 5 ; +C -1 ; WX 333 ; N hungarumlaut ; B 69 516 498 697 ; +C -1 ; WX 333 ; N ogonek ; B 15 -183 244 34 ; +C -1 ; WX 333 ; N caron ; B 79 516 411 690 ; +C 151 ; WX 1000 ; N emdash ; B -40 178 977 269 ; +C 198 ; WX 944 ; N AE ; B -64 0 918 669 ; +C 170 ; WX 266 ; N ordfeminine ; B 16 399 330 685 ; +C -1 ; WX 611 ; N Lslash ; B -22 0 590 669 ; +C 216 ; WX 722 ; N Oslash ; B 27 -125 691 764 ; +C 140 ; WX 944 ; N OE ; B 23 -8 946 677 ; +C 186 ; WX 300 ; N ordmasculine ; B 56 400 347 685 ; +C 230 ; WX 722 ; N ae ; B -5 -13 673 462 ; +C -1 ; WX 278 ; N dotlessi ; B 2 -9 238 462 ; +C -1 ; WX 278 ; N lslash ; B -7 -9 307 699 ; +C 248 ; WX 500 ; N oslash ; B -3 -119 441 560 ; +C 156 ; WX 722 ; N oe ; B 6 -13 674 462 ; +C 223 ; WX 500 ; N germandbls ; B -200 -200 473 705 ; +C 207 ; WX 389 ; N Idieresis ; B -32 0 450 862 ; +C 233 ; WX 444 ; N eacute ; B 5 -13 435 697 ; +C -1 ; WX 500 ; N abreve ; B -21 -14 471 678 ; +C -1 ; WX 556 ; N uhungarumlaut ; B 15 -9 610 697 ; +C -1 ; WX 444 ; N ecaron ; B 5 -13 467 690 ; +C 159 ; WX 611 ; N Ydieresis ; B 73 0 659 862 ; +C 247 ; WX 570 ; N divide ; B 33 -29 537 535 ; +C 221 ; WX 611 ; N Yacute ; B 73 0 659 904 ; +C 194 ; WX 667 ; N Acircumflex ; B -67 0 593 897 ; +C 225 ; WX 500 ; N aacute ; B -21 -14 463 697 ; +C 219 ; WX 722 ; N Ucircumflex ; B 67 -18 744 897 ; +C 253 ; WX 444 ; N yacute ; B -94 -205 435 697 ; +C -1 ; WX 389 ; N scommaaccent ; B -19 -218 333 462 ; +C 234 ; WX 444 ; N ecircumflex ; B 5 -13 423 690 ; +C -1 ; WX 722 ; N Uring ; B 67 -18 744 921 ; +C 220 ; WX 722 ; N Udieresis ; B 67 -18 744 862 ; +C -1 ; WX 500 ; N aogonek ; B -21 -183 455 462 ; +C 218 ; WX 722 ; N Uacute ; B 67 -18 744 904 ; +C -1 ; WX 556 ; N uogonek ; B 15 -183 492 462 ; +C 203 ; WX 667 ; N Edieresis ; B -27 0 653 862 ; +C -1 ; WX 722 ; N Dcroat ; B -31 0 700 669 ; +C -1 ; WX 250 ; N commaaccent ; B -36 -218 131 -50 ; +C 169 ; WX 747 ; N copyright ; B 30 -18 718 685 ; +C -1 ; WX 667 ; N Emacron ; B -27 0 653 830 ; +C -1 ; WX 444 ; N ccaron ; B -5 -13 467 690 ; +C 229 ; WX 500 ; N aring ; B -21 -14 455 729 ; +C -1 ; WX 722 ; N Ncommaaccent ; B -27 -218 748 669 ; +C -1 ; WX 278 ; N lacute ; B 2 -9 392 904 ; +C 224 ; WX 500 ; N agrave ; B -21 -14 455 697 ; +C -1 ; WX 611 ; N Tcommaaccent ; B 50 -218 650 669 ; +C -1 ; WX 667 ; N Cacute ; B 32 -18 677 904 ; +C 227 ; WX 500 ; N atilde ; B -21 -14 491 655 ; +C -1 ; WX 667 ; N Edotaccent ; B -27 0 653 862 ; +C 154 ; WX 389 ; N scaron ; B -19 -13 424 690 ; +C -1 ; WX 389 ; N scedilla ; B -19 -218 333 462 ; +C 237 ; WX 278 ; N iacute ; B 2 -9 352 697 ; +C -1 ; WX 494 ; N lozenge ; B 10 0 484 745 ; +C -1 ; WX 667 ; N Rcaron ; B -29 0 623 897 ; +C -1 ; WX 722 ; N Gcommaaccent ; B 21 -218 706 685 ; +C 251 ; WX 556 ; N ucircumflex ; B 15 -9 492 690 ; +C 226 ; WX 500 ; N acircumflex ; B -21 -14 455 690 ; +C -1 ; WX 667 ; N Amacron ; B -67 0 593 830 ; +C -1 ; WX 389 ; N rcaron ; B -21 0 424 690 ; +C 231 ; WX 444 ; N ccedilla ; B -5 -218 392 462 ; +C -1 ; WX 611 ; N Zdotaccent ; B -11 0 590 862 ; +C 222 ; WX 611 ; N Thorn ; B -27 0 573 669 ; +C -1 ; WX 722 ; N Omacron ; B 27 -18 691 830 ; +C -1 ; WX 667 ; N Racute ; B -29 0 623 904 ; +C -1 ; WX 556 ; N Sacute ; B 2 -18 531 904 ; +C -1 ; WX 608 ; N dcaron ; B -21 -13 675 708 ; +C -1 ; WX 722 ; N Umacron ; B 67 -18 744 830 ; +C -1 ; WX 556 ; N uring ; B 15 -9 492 729 ; +C 179 ; WX 300 ; N threesuperior ; B 17 265 321 683 ; +C 210 ; WX 722 ; N Ograve ; B 27 -18 691 904 ; +C 192 ; WX 667 ; N Agrave ; B -67 0 593 904 ; +C -1 ; WX 667 ; N Abreve ; B -67 0 593 885 ; +C 215 ; WX 570 ; N multiply ; B 48 16 522 490 ; +C 250 ; WX 556 ; N uacute ; B 15 -9 492 697 ; +C -1 ; WX 611 ; N Tcaron ; B 50 0 650 897 ; +C -1 ; WX 494 ; N partialdiff ; B 11 -21 494 750 ; +C 255 ; WX 444 ; N ydieresis ; B -94 -205 443 655 ; +C -1 ; WX 722 ; N Nacute ; B -27 -15 748 904 ; +C 238 ; WX 278 ; N icircumflex ; B -3 -9 324 690 ; +C 202 ; WX 667 ; N Ecircumflex ; B -27 0 653 897 ; +C 228 ; WX 500 ; N adieresis ; B -21 -14 476 655 ; +C 235 ; WX 444 ; N edieresis ; B 5 -13 448 655 ; +C -1 ; WX 444 ; N cacute ; B -5 -13 435 697 ; +C -1 ; WX 556 ; N nacute ; B -6 -9 493 697 ; +C -1 ; WX 556 ; N umacron ; B 15 -9 492 623 ; +C -1 ; WX 722 ; N Ncaron ; B -27 -15 748 897 ; +C 205 ; WX 389 ; N Iacute ; B -32 0 432 904 ; +C 177 ; WX 570 ; N plusminus ; B 33 0 537 506 ; +C 166 ; WX 220 ; N brokenbar ; B 66 -143 154 707 ; +C 174 ; WX 747 ; N registered ; B 30 -18 718 685 ; +C -1 ; WX 722 ; N Gbreve ; B 21 -18 706 885 ; +C -1 ; WX 389 ; N Idotaccent ; B -32 0 406 862 ; +C -1 ; WX 600 ; N summation ; B 14 -10 585 706 ; +C 200 ; WX 667 ; N Egrave ; B -27 0 653 904 ; +C -1 ; WX 389 ; N racute ; B -21 0 407 697 ; +C -1 ; WX 500 ; N omacron ; B -3 -13 462 623 ; +C -1 ; WX 611 ; N Zacute ; B -11 0 590 904 ; +C 142 ; WX 611 ; N Zcaron ; B -11 0 590 897 ; +C -1 ; WX 549 ; N greaterequal ; B 26 0 523 704 ; +C 208 ; WX 722 ; N Eth ; B -31 0 700 669 ; +C 199 ; WX 667 ; N Ccedilla ; B 32 -218 677 685 ; +C -1 ; WX 278 ; N lcommaaccent ; B -42 -218 290 699 ; +C -1 ; WX 366 ; N tcaron ; B -11 -9 434 754 ; +C -1 ; WX 444 ; N eogonek ; B 5 -183 398 462 ; +C -1 ; WX 722 ; N Uogonek ; B 67 -183 744 669 ; +C 193 ; WX 667 ; N Aacute ; B -67 0 593 904 ; +C 196 ; WX 667 ; N Adieresis ; B -67 0 593 862 ; +C 232 ; WX 444 ; N egrave ; B 5 -13 398 697 ; +C -1 ; WX 389 ; N zacute ; B -43 -78 407 697 ; +C -1 ; WX 278 ; N iogonek ; B -20 -183 263 684 ; +C 211 ; WX 722 ; N Oacute ; B 27 -18 691 904 ; +C 243 ; WX 500 ; N oacute ; B -3 -13 463 697 ; +C -1 ; WX 500 ; N amacron ; B -21 -14 467 623 ; +C -1 ; WX 389 ; N sacute ; B -19 -13 407 697 ; +C 239 ; WX 278 ; N idieresis ; B 2 -9 364 655 ; +C 212 ; WX 722 ; N Ocircumflex ; B 27 -18 691 897 ; +C 217 ; WX 722 ; N Ugrave ; B 67 -18 744 904 ; +C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ; +C 254 ; WX 500 ; N thorn ; B -120 -205 446 699 ; +C 178 ; WX 300 ; N twosuperior ; B 2 274 313 683 ; +C 214 ; WX 722 ; N Odieresis ; B 27 -18 691 862 ; +C 181 ; WX 576 ; N mu ; B -60 -207 516 449 ; +C 236 ; WX 278 ; N igrave ; B 2 -9 259 697 ; +C -1 ; WX 500 ; N ohungarumlaut ; B -3 -13 582 697 ; +C -1 ; WX 667 ; N Eogonek ; B -27 -183 653 669 ; +C -1 ; WX 500 ; N dcroat ; B -21 -13 552 699 ; +C 190 ; WX 750 ; N threequarters ; B 7 -14 726 683 ; +C -1 ; WX 556 ; N Scedilla ; B 2 -218 526 685 ; +C -1 ; WX 382 ; N lcaron ; B 2 -9 448 708 ; +C -1 ; WX 667 ; N Kcommaaccent ; B -21 -218 702 669 ; +C -1 ; WX 611 ; N Lacute ; B -22 0 590 904 ; +C 153 ; WX 1000 ; N trademark ; B 32 263 968 669 ; +C -1 ; WX 444 ; N edotaccent ; B 5 -13 398 655 ; +C 204 ; WX 389 ; N Igrave ; B -32 0 406 904 ; +C -1 ; WX 389 ; N Imacron ; B -32 0 461 830 ; +C -1 ; WX 611 ; N Lcaron ; B -22 0 671 718 ; +C 189 ; WX 750 ; N onehalf ; B -9 -14 723 683 ; +C -1 ; WX 549 ; N lessequal ; B 29 0 526 704 ; +C 244 ; WX 500 ; N ocircumflex ; B -3 -13 451 690 ; +C 241 ; WX 556 ; N ntilde ; B -6 -9 504 655 ; +C -1 ; WX 722 ; N Uhungarumlaut ; B 67 -18 744 904 ; +C 201 ; WX 667 ; N Eacute ; B -27 0 653 904 ; +C -1 ; WX 444 ; N emacron ; B 5 -13 439 623 ; +C -1 ; WX 500 ; N gbreve ; B -52 -203 478 678 ; +C 188 ; WX 750 ; N onequarter ; B 7 -14 721 683 ; +C 138 ; WX 556 ; N Scaron ; B 2 -18 553 897 ; +C -1 ; WX 556 ; N Scommaaccent ; B 2 -218 526 685 ; +C -1 ; WX 722 ; N Ohungarumlaut ; B 27 -18 723 904 ; +C 176 ; WX 400 ; N degree ; B 83 397 369 683 ; +C 242 ; WX 500 ; N ograve ; B -3 -13 441 697 ; +C -1 ; WX 667 ; N Ccaron ; B 32 -18 677 897 ; +C 249 ; WX 556 ; N ugrave ; B 15 -9 492 697 ; +C -1 ; WX 549 ; N radical ; B 10 -46 512 850 ; +C -1 ; WX 722 ; N Dcaron ; B -46 0 685 897 ; +C -1 ; WX 389 ; N rcommaaccent ; B -67 -218 389 462 ; +C 209 ; WX 722 ; N Ntilde ; B -27 -15 748 862 ; +C 245 ; WX 500 ; N otilde ; B -3 -13 491 655 ; +C -1 ; WX 667 ; N Rcommaaccent ; B -29 -218 623 669 ; +C -1 ; WX 611 ; N Lcommaaccent ; B -22 -218 590 669 ; +C 195 ; WX 667 ; N Atilde ; B -67 0 593 862 ; +C -1 ; WX 667 ; N Aogonek ; B -67 -183 604 683 ; +C 197 ; WX 667 ; N Aring ; B -67 0 593 921 ; +C 213 ; WX 722 ; N Otilde ; B 27 -18 691 862 ; +C -1 ; WX 389 ; N zdotaccent ; B -43 -78 368 655 ; +C -1 ; WX 667 ; N Ecaron ; B -27 0 653 897 ; +C -1 ; WX 389 ; N Iogonek ; B -32 -183 406 669 ; +C -1 ; WX 500 ; N kcommaaccent ; B -23 -218 483 699 ; +C -1 ; WX 606 ; N minus ; B 51 209 555 297 ; +C 206 ; WX 389 ; N Icircumflex ; B -32 0 450 897 ; +C -1 ; WX 556 ; N ncaron ; B -6 -9 523 690 ; +C -1 ; WX 278 ; N tcommaaccent ; B -62 -218 281 594 ; +C 172 ; WX 606 ; N logicalnot ; B 51 108 555 399 ; +C 246 ; WX 500 ; N odieresis ; B -3 -13 471 655 ; +C 252 ; WX 556 ; N udieresis ; B 15 -9 499 655 ; +C -1 ; WX 549 ; N notequal ; B 15 -49 540 570 ; +C -1 ; WX 500 ; N gcommaaccent ; B -52 -203 478 767 ; +C 240 ; WX 500 ; N eth ; B -3 -13 454 699 ; +C 158 ; WX 389 ; N zcaron ; B -43 -78 424 690 ; +C -1 ; WX 556 ; N ncommaaccent ; B -6 -218 493 462 ; +C 185 ; WX 300 ; N onesuperior ; B 30 274 301 683 ; +C -1 ; WX 278 ; N imacron ; B 2 -9 294 623 ; +C 128 ; WX 500 ; N Euro ; B 0 0 0 0 ; +EndCharMetrics +StartKernData +StartKernPairs 2038 +KPX A C -65 +KPX A Cacute -65 +KPX A Ccaron -65 +KPX A Ccedilla -65 +KPX A G -60 +KPX A Gbreve -60 +KPX A Gcommaaccent -60 +KPX A O -50 +KPX A Oacute -50 +KPX A Ocircumflex -50 +KPX A Odieresis -50 +KPX A Ograve -50 +KPX A Ohungarumlaut -50 +KPX A Omacron -50 +KPX A Oslash -50 +KPX A Otilde -50 +KPX A Q -55 +KPX A T -55 +KPX A Tcaron -55 +KPX A Tcommaaccent -55 +KPX A U -50 +KPX A Uacute -50 +KPX A Ucircumflex -50 +KPX A Udieresis -50 +KPX A Ugrave -50 +KPX A Uhungarumlaut -50 +KPX A Umacron -50 +KPX A Uogonek -50 +KPX A Uring -50 +KPX A V -95 +KPX A W -100 +KPX A Y -70 +KPX A Yacute -70 +KPX A Ydieresis -70 +KPX A quoteright -74 +KPX A u -30 +KPX A uacute -30 +KPX A ucircumflex -30 +KPX A udieresis -30 +KPX A ugrave -30 +KPX A uhungarumlaut -30 +KPX A umacron -30 +KPX A uogonek -30 +KPX A uring -30 +KPX A v -74 +KPX A w -74 +KPX A y -74 +KPX A yacute -74 +KPX A ydieresis -74 +KPX Aacute C -65 +KPX Aacute Cacute -65 +KPX Aacute Ccaron -65 +KPX Aacute Ccedilla -65 +KPX Aacute G -60 +KPX Aacute Gbreve -60 +KPX Aacute Gcommaaccent -60 +KPX Aacute O -50 +KPX Aacute Oacute -50 +KPX Aacute Ocircumflex -50 +KPX Aacute Odieresis -50 +KPX Aacute Ograve -50 +KPX Aacute Ohungarumlaut -50 +KPX Aacute Omacron -50 +KPX Aacute Oslash -50 +KPX Aacute Otilde -50 +KPX Aacute Q -55 +KPX Aacute T -55 +KPX Aacute Tcaron -55 +KPX Aacute Tcommaaccent -55 +KPX Aacute U -50 +KPX Aacute Uacute -50 +KPX Aacute Ucircumflex -50 +KPX Aacute Udieresis -50 +KPX Aacute Ugrave -50 +KPX Aacute Uhungarumlaut -50 +KPX Aacute Umacron -50 +KPX Aacute Uogonek -50 +KPX Aacute Uring -50 +KPX Aacute V -95 +KPX Aacute W -100 +KPX Aacute Y -70 +KPX Aacute Yacute -70 +KPX Aacute Ydieresis -70 +KPX Aacute quoteright -74 +KPX Aacute u -30 +KPX Aacute uacute -30 +KPX Aacute ucircumflex -30 +KPX Aacute udieresis -30 +KPX Aacute ugrave -30 +KPX Aacute uhungarumlaut -30 +KPX Aacute umacron -30 +KPX Aacute uogonek -30 +KPX Aacute uring -30 +KPX Aacute v -74 +KPX Aacute w -74 +KPX Aacute y -74 +KPX Aacute yacute -74 +KPX Aacute ydieresis -74 +KPX Abreve C -65 +KPX Abreve Cacute -65 +KPX Abreve Ccaron -65 +KPX Abreve Ccedilla -65 +KPX Abreve G -60 +KPX Abreve Gbreve -60 +KPX Abreve Gcommaaccent -60 +KPX Abreve O -50 +KPX Abreve Oacute -50 +KPX Abreve Ocircumflex -50 +KPX Abreve Odieresis -50 +KPX Abreve Ograve -50 +KPX Abreve Ohungarumlaut -50 +KPX Abreve Omacron -50 +KPX Abreve Oslash -50 +KPX Abreve Otilde -50 +KPX Abreve Q -55 +KPX Abreve T -55 +KPX Abreve Tcaron -55 +KPX Abreve Tcommaaccent -55 +KPX Abreve U -50 +KPX Abreve Uacute -50 +KPX Abreve Ucircumflex -50 +KPX Abreve Udieresis -50 +KPX Abreve Ugrave -50 +KPX Abreve Uhungarumlaut -50 +KPX Abreve Umacron -50 +KPX Abreve Uogonek -50 +KPX Abreve Uring -50 +KPX Abreve V -95 +KPX Abreve W -100 +KPX Abreve Y -70 +KPX Abreve Yacute -70 +KPX Abreve Ydieresis -70 +KPX Abreve quoteright -74 +KPX Abreve u -30 +KPX Abreve uacute -30 +KPX Abreve ucircumflex -30 +KPX Abreve udieresis -30 +KPX Abreve ugrave -30 +KPX Abreve uhungarumlaut -30 +KPX Abreve umacron -30 +KPX Abreve uogonek -30 +KPX Abreve uring -30 +KPX Abreve v -74 +KPX Abreve w -74 +KPX Abreve y -74 +KPX Abreve yacute -74 +KPX Abreve ydieresis -74 +KPX Acircumflex C -65 +KPX Acircumflex Cacute -65 +KPX Acircumflex Ccaron -65 +KPX Acircumflex Ccedilla -65 +KPX Acircumflex G -60 +KPX Acircumflex Gbreve -60 +KPX Acircumflex Gcommaaccent -60 +KPX Acircumflex O -50 +KPX Acircumflex Oacute -50 +KPX Acircumflex Ocircumflex -50 +KPX Acircumflex Odieresis -50 +KPX Acircumflex Ograve -50 +KPX Acircumflex Ohungarumlaut -50 +KPX Acircumflex Omacron -50 +KPX Acircumflex Oslash -50 +KPX Acircumflex Otilde -50 +KPX Acircumflex Q -55 +KPX Acircumflex T -55 +KPX Acircumflex Tcaron -55 +KPX Acircumflex Tcommaaccent -55 +KPX Acircumflex U -50 +KPX Acircumflex Uacute -50 +KPX Acircumflex Ucircumflex -50 +KPX Acircumflex Udieresis -50 +KPX Acircumflex Ugrave -50 +KPX Acircumflex Uhungarumlaut -50 +KPX Acircumflex Umacron -50 +KPX Acircumflex Uogonek -50 +KPX Acircumflex Uring -50 +KPX Acircumflex V -95 +KPX Acircumflex W -100 +KPX Acircumflex Y -70 +KPX Acircumflex Yacute -70 +KPX Acircumflex Ydieresis -70 +KPX Acircumflex quoteright -74 +KPX Acircumflex u -30 +KPX Acircumflex uacute -30 +KPX Acircumflex ucircumflex -30 +KPX Acircumflex udieresis -30 +KPX Acircumflex ugrave -30 +KPX Acircumflex uhungarumlaut -30 +KPX Acircumflex umacron -30 +KPX Acircumflex uogonek -30 +KPX Acircumflex uring -30 +KPX Acircumflex v -74 +KPX Acircumflex w -74 +KPX Acircumflex y -74 +KPX Acircumflex yacute -74 +KPX Acircumflex ydieresis -74 +KPX Adieresis C -65 +KPX Adieresis Cacute -65 +KPX Adieresis Ccaron -65 +KPX Adieresis Ccedilla -65 +KPX Adieresis G -60 +KPX Adieresis Gbreve -60 +KPX Adieresis Gcommaaccent -60 +KPX Adieresis O -50 +KPX Adieresis Oacute -50 +KPX Adieresis Ocircumflex -50 +KPX Adieresis Odieresis -50 +KPX Adieresis Ograve -50 +KPX Adieresis Ohungarumlaut -50 +KPX Adieresis Omacron -50 +KPX Adieresis Oslash -50 +KPX Adieresis Otilde -50 +KPX Adieresis Q -55 +KPX Adieresis T -55 +KPX Adieresis Tcaron -55 +KPX Adieresis Tcommaaccent -55 +KPX Adieresis U -50 +KPX Adieresis Uacute -50 +KPX Adieresis Ucircumflex -50 +KPX Adieresis Udieresis -50 +KPX Adieresis Ugrave -50 +KPX Adieresis Uhungarumlaut -50 +KPX Adieresis Umacron -50 +KPX Adieresis Uogonek -50 +KPX Adieresis Uring -50 +KPX Adieresis V -95 +KPX Adieresis W -100 +KPX Adieresis Y -70 +KPX Adieresis Yacute -70 +KPX Adieresis Ydieresis -70 +KPX Adieresis quoteright -74 +KPX Adieresis u -30 +KPX Adieresis uacute -30 +KPX Adieresis ucircumflex -30 +KPX Adieresis udieresis -30 +KPX Adieresis ugrave -30 +KPX Adieresis uhungarumlaut -30 +KPX Adieresis umacron -30 +KPX Adieresis uogonek -30 +KPX Adieresis uring -30 +KPX Adieresis v -74 +KPX Adieresis w -74 +KPX Adieresis y -74 +KPX Adieresis yacute -74 +KPX Adieresis ydieresis -74 +KPX Agrave C -65 +KPX Agrave Cacute -65 +KPX Agrave Ccaron -65 +KPX Agrave Ccedilla -65 +KPX Agrave G -60 +KPX Agrave Gbreve -60 +KPX Agrave Gcommaaccent -60 +KPX Agrave O -50 +KPX Agrave Oacute -50 +KPX Agrave Ocircumflex -50 +KPX Agrave Odieresis -50 +KPX Agrave Ograve -50 +KPX Agrave Ohungarumlaut -50 +KPX Agrave Omacron -50 +KPX Agrave Oslash -50 +KPX Agrave Otilde -50 +KPX Agrave Q -55 +KPX Agrave T -55 +KPX Agrave Tcaron -55 +KPX Agrave Tcommaaccent -55 +KPX Agrave U -50 +KPX Agrave Uacute -50 +KPX Agrave Ucircumflex -50 +KPX Agrave Udieresis -50 +KPX Agrave Ugrave -50 +KPX Agrave Uhungarumlaut -50 +KPX Agrave Umacron -50 +KPX Agrave Uogonek -50 +KPX Agrave Uring -50 +KPX Agrave V -95 +KPX Agrave W -100 +KPX Agrave Y -70 +KPX Agrave Yacute -70 +KPX Agrave Ydieresis -70 +KPX Agrave quoteright -74 +KPX Agrave u -30 +KPX Agrave uacute -30 +KPX Agrave ucircumflex -30 +KPX Agrave udieresis -30 +KPX Agrave ugrave -30 +KPX Agrave uhungarumlaut -30 +KPX Agrave umacron -30 +KPX Agrave uogonek -30 +KPX Agrave uring -30 +KPX Agrave v -74 +KPX Agrave w -74 +KPX Agrave y -74 +KPX Agrave yacute -74 +KPX Agrave ydieresis -74 +KPX Amacron C -65 +KPX Amacron Cacute -65 +KPX Amacron Ccaron -65 +KPX Amacron Ccedilla -65 +KPX Amacron G -60 +KPX Amacron Gbreve -60 +KPX Amacron Gcommaaccent -60 +KPX Amacron O -50 +KPX Amacron Oacute -50 +KPX Amacron Ocircumflex -50 +KPX Amacron Odieresis -50 +KPX Amacron Ograve -50 +KPX Amacron Ohungarumlaut -50 +KPX Amacron Omacron -50 +KPX Amacron Oslash -50 +KPX Amacron Otilde -50 +KPX Amacron Q -55 +KPX Amacron T -55 +KPX Amacron Tcaron -55 +KPX Amacron Tcommaaccent -55 +KPX Amacron U -50 +KPX Amacron Uacute -50 +KPX Amacron Ucircumflex -50 +KPX Amacron Udieresis -50 +KPX Amacron Ugrave -50 +KPX Amacron Uhungarumlaut -50 +KPX Amacron Umacron -50 +KPX Amacron Uogonek -50 +KPX Amacron Uring -50 +KPX Amacron V -95 +KPX Amacron W -100 +KPX Amacron Y -70 +KPX Amacron Yacute -70 +KPX Amacron Ydieresis -70 +KPX Amacron quoteright -74 +KPX Amacron u -30 +KPX Amacron uacute -30 +KPX Amacron ucircumflex -30 +KPX Amacron udieresis -30 +KPX Amacron ugrave -30 +KPX Amacron uhungarumlaut -30 +KPX Amacron umacron -30 +KPX Amacron uogonek -30 +KPX Amacron uring -30 +KPX Amacron v -74 +KPX Amacron w -74 +KPX Amacron y -74 +KPX Amacron yacute -74 +KPX Amacron ydieresis -74 +KPX Aogonek C -65 +KPX Aogonek Cacute -65 +KPX Aogonek Ccaron -65 +KPX Aogonek Ccedilla -65 +KPX Aogonek G -60 +KPX Aogonek Gbreve -60 +KPX Aogonek Gcommaaccent -60 +KPX Aogonek O -50 +KPX Aogonek Oacute -50 +KPX Aogonek Ocircumflex -50 +KPX Aogonek Odieresis -50 +KPX Aogonek Ograve -50 +KPX Aogonek Ohungarumlaut -50 +KPX Aogonek Omacron -50 +KPX Aogonek Oslash -50 +KPX Aogonek Otilde -50 +KPX Aogonek Q -55 +KPX Aogonek T -55 +KPX Aogonek Tcaron -55 +KPX Aogonek Tcommaaccent -55 +KPX Aogonek U -50 +KPX Aogonek Uacute -50 +KPX Aogonek Ucircumflex -50 +KPX Aogonek Udieresis -50 +KPX Aogonek Ugrave -50 +KPX Aogonek Uhungarumlaut -50 +KPX Aogonek Umacron -50 +KPX Aogonek Uogonek -50 +KPX Aogonek Uring -50 +KPX Aogonek V -95 +KPX Aogonek W -100 +KPX Aogonek Y -70 +KPX Aogonek Yacute -70 +KPX Aogonek Ydieresis -70 +KPX Aogonek quoteright -74 +KPX Aogonek u -30 +KPX Aogonek uacute -30 +KPX Aogonek ucircumflex -30 +KPX Aogonek udieresis -30 +KPX Aogonek ugrave -30 +KPX Aogonek uhungarumlaut -30 +KPX Aogonek umacron -30 +KPX Aogonek uogonek -30 +KPX Aogonek uring -30 +KPX Aogonek v -74 +KPX Aogonek w -74 +KPX Aogonek y -34 +KPX Aogonek yacute -34 +KPX Aogonek ydieresis -34 +KPX Aring C -65 +KPX Aring Cacute -65 +KPX Aring Ccaron -65 +KPX Aring Ccedilla -65 +KPX Aring G -60 +KPX Aring Gbreve -60 +KPX Aring Gcommaaccent -60 +KPX Aring O -50 +KPX Aring Oacute -50 +KPX Aring Ocircumflex -50 +KPX Aring Odieresis -50 +KPX Aring Ograve -50 +KPX Aring Ohungarumlaut -50 +KPX Aring Omacron -50 +KPX Aring Oslash -50 +KPX Aring Otilde -50 +KPX Aring Q -55 +KPX Aring T -55 +KPX Aring Tcaron -55 +KPX Aring Tcommaaccent -55 +KPX Aring U -50 +KPX Aring Uacute -50 +KPX Aring Ucircumflex -50 +KPX Aring Udieresis -50 +KPX Aring Ugrave -50 +KPX Aring Uhungarumlaut -50 +KPX Aring Umacron -50 +KPX Aring Uogonek -50 +KPX Aring Uring -50 +KPX Aring V -95 +KPX Aring W -100 +KPX Aring Y -70 +KPX Aring Yacute -70 +KPX Aring Ydieresis -70 +KPX Aring quoteright -74 +KPX Aring u -30 +KPX Aring uacute -30 +KPX Aring ucircumflex -30 +KPX Aring udieresis -30 +KPX Aring ugrave -30 +KPX Aring uhungarumlaut -30 +KPX Aring umacron -30 +KPX Aring uogonek -30 +KPX Aring uring -30 +KPX Aring v -74 +KPX Aring w -74 +KPX Aring y -74 +KPX Aring yacute -74 +KPX Aring ydieresis -74 +KPX Atilde C -65 +KPX Atilde Cacute -65 +KPX Atilde Ccaron -65 +KPX Atilde Ccedilla -65 +KPX Atilde G -60 +KPX Atilde Gbreve -60 +KPX Atilde Gcommaaccent -60 +KPX Atilde O -50 +KPX Atilde Oacute -50 +KPX Atilde Ocircumflex -50 +KPX Atilde Odieresis -50 +KPX Atilde Ograve -50 +KPX Atilde Ohungarumlaut -50 +KPX Atilde Omacron -50 +KPX Atilde Oslash -50 +KPX Atilde Otilde -50 +KPX Atilde Q -55 +KPX Atilde T -55 +KPX Atilde Tcaron -55 +KPX Atilde Tcommaaccent -55 +KPX Atilde U -50 +KPX Atilde Uacute -50 +KPX Atilde Ucircumflex -50 +KPX Atilde Udieresis -50 +KPX Atilde Ugrave -50 +KPX Atilde Uhungarumlaut -50 +KPX Atilde Umacron -50 +KPX Atilde Uogonek -50 +KPX Atilde Uring -50 +KPX Atilde V -95 +KPX Atilde W -100 +KPX Atilde Y -70 +KPX Atilde Yacute -70 +KPX Atilde Ydieresis -70 +KPX Atilde quoteright -74 +KPX Atilde u -30 +KPX Atilde uacute -30 +KPX Atilde ucircumflex -30 +KPX Atilde udieresis -30 +KPX Atilde ugrave -30 +KPX Atilde uhungarumlaut -30 +KPX Atilde umacron -30 +KPX Atilde uogonek -30 +KPX Atilde uring -30 +KPX Atilde v -74 +KPX Atilde w -74 +KPX Atilde y -74 +KPX Atilde yacute -74 +KPX Atilde ydieresis -74 +KPX B A -25 +KPX B Aacute -25 +KPX B Abreve -25 +KPX B Acircumflex -25 +KPX B Adieresis -25 +KPX B Agrave -25 +KPX B Amacron -25 +KPX B Aogonek -25 +KPX B Aring -25 +KPX B Atilde -25 +KPX B U -10 +KPX B Uacute -10 +KPX B Ucircumflex -10 +KPX B Udieresis -10 +KPX B Ugrave -10 +KPX B Uhungarumlaut -10 +KPX B Umacron -10 +KPX B Uogonek -10 +KPX B Uring -10 +KPX D A -25 +KPX D Aacute -25 +KPX D Abreve -25 +KPX D Acircumflex -25 +KPX D Adieresis -25 +KPX D Agrave -25 +KPX D Amacron -25 +KPX D Aogonek -25 +KPX D Aring -25 +KPX D Atilde -25 +KPX D V -50 +KPX D W -40 +KPX D Y -50 +KPX D Yacute -50 +KPX D Ydieresis -50 +KPX Dcaron A -25 +KPX Dcaron Aacute -25 +KPX Dcaron Abreve -25 +KPX Dcaron Acircumflex -25 +KPX Dcaron Adieresis -25 +KPX Dcaron Agrave -25 +KPX Dcaron Amacron -25 +KPX Dcaron Aogonek -25 +KPX Dcaron Aring -25 +KPX Dcaron Atilde -25 +KPX Dcaron V -50 +KPX Dcaron W -40 +KPX Dcaron Y -50 +KPX Dcaron Yacute -50 +KPX Dcaron Ydieresis -50 +KPX Dcroat A -25 +KPX Dcroat Aacute -25 +KPX Dcroat Abreve -25 +KPX Dcroat Acircumflex -25 +KPX Dcroat Adieresis -25 +KPX Dcroat Agrave -25 +KPX Dcroat Amacron -25 +KPX Dcroat Aogonek -25 +KPX Dcroat Aring -25 +KPX Dcroat Atilde -25 +KPX Dcroat V -50 +KPX Dcroat W -40 +KPX Dcroat Y -50 +KPX Dcroat Yacute -50 +KPX Dcroat Ydieresis -50 +KPX F A -100 +KPX F Aacute -100 +KPX F Abreve -100 +KPX F Acircumflex -100 +KPX F Adieresis -100 +KPX F Agrave -100 +KPX F Amacron -100 +KPX F Aogonek -100 +KPX F Aring -100 +KPX F Atilde -100 +KPX F a -95 +KPX F aacute -95 +KPX F abreve -95 +KPX F acircumflex -95 +KPX F adieresis -95 +KPX F agrave -95 +KPX F amacron -95 +KPX F aogonek -95 +KPX F aring -95 +KPX F atilde -95 +KPX F comma -129 +KPX F e -100 +KPX F eacute -100 +KPX F ecaron -100 +KPX F ecircumflex -100 +KPX F edieresis -100 +KPX F edotaccent -100 +KPX F egrave -100 +KPX F emacron -100 +KPX F eogonek -100 +KPX F i -40 +KPX F iacute -40 +KPX F icircumflex -40 +KPX F idieresis -40 +KPX F igrave -40 +KPX F imacron -40 +KPX F iogonek -40 +KPX F o -70 +KPX F oacute -70 +KPX F ocircumflex -70 +KPX F odieresis -70 +KPX F ograve -70 +KPX F ohungarumlaut -70 +KPX F omacron -70 +KPX F oslash -70 +KPX F otilde -70 +KPX F period -129 +KPX F r -50 +KPX F racute -50 +KPX F rcaron -50 +KPX F rcommaaccent -50 +KPX J A -25 +KPX J Aacute -25 +KPX J Abreve -25 +KPX J Acircumflex -25 +KPX J Adieresis -25 +KPX J Agrave -25 +KPX J Amacron -25 +KPX J Aogonek -25 +KPX J Aring -25 +KPX J Atilde -25 +KPX J a -40 +KPX J aacute -40 +KPX J abreve -40 +KPX J acircumflex -40 +KPX J adieresis -40 +KPX J agrave -40 +KPX J amacron -40 +KPX J aogonek -40 +KPX J aring -40 +KPX J atilde -40 +KPX J comma -10 +KPX J e -40 +KPX J eacute -40 +KPX J ecaron -40 +KPX J ecircumflex -40 +KPX J edieresis -40 +KPX J edotaccent -40 +KPX J egrave -40 +KPX J emacron -40 +KPX J eogonek -40 +KPX J o -40 +KPX J oacute -40 +KPX J ocircumflex -40 +KPX J odieresis -40 +KPX J ograve -40 +KPX J ohungarumlaut -40 +KPX J omacron -40 +KPX J oslash -40 +KPX J otilde -40 +KPX J period -10 +KPX J u -40 +KPX J uacute -40 +KPX J ucircumflex -40 +KPX J udieresis -40 +KPX J ugrave -40 +KPX J uhungarumlaut -40 +KPX J umacron -40 +KPX J uogonek -40 +KPX J uring -40 +KPX K O -30 +KPX K Oacute -30 +KPX K Ocircumflex -30 +KPX K Odieresis -30 +KPX K Ograve -30 +KPX K Ohungarumlaut -30 +KPX K Omacron -30 +KPX K Oslash -30 +KPX K Otilde -30 +KPX K e -25 +KPX K eacute -25 +KPX K ecaron -25 +KPX K ecircumflex -25 +KPX K edieresis -25 +KPX K edotaccent -25 +KPX K egrave -25 +KPX K emacron -25 +KPX K eogonek -25 +KPX K o -25 +KPX K oacute -25 +KPX K ocircumflex -25 +KPX K odieresis -25 +KPX K ograve -25 +KPX K ohungarumlaut -25 +KPX K omacron -25 +KPX K oslash -25 +KPX K otilde -25 +KPX K u -20 +KPX K uacute -20 +KPX K ucircumflex -20 +KPX K udieresis -20 +KPX K ugrave -20 +KPX K uhungarumlaut -20 +KPX K umacron -20 +KPX K uogonek -20 +KPX K uring -20 +KPX K y -20 +KPX K yacute -20 +KPX K ydieresis -20 +KPX Kcommaaccent O -30 +KPX Kcommaaccent Oacute -30 +KPX Kcommaaccent Ocircumflex -30 +KPX Kcommaaccent Odieresis -30 +KPX Kcommaaccent Ograve -30 +KPX Kcommaaccent Ohungarumlaut -30 +KPX Kcommaaccent Omacron -30 +KPX Kcommaaccent Oslash -30 +KPX Kcommaaccent Otilde -30 +KPX Kcommaaccent e -25 +KPX Kcommaaccent eacute -25 +KPX Kcommaaccent ecaron -25 +KPX Kcommaaccent ecircumflex -25 +KPX Kcommaaccent edieresis -25 +KPX Kcommaaccent edotaccent -25 +KPX Kcommaaccent egrave -25 +KPX Kcommaaccent emacron -25 +KPX Kcommaaccent eogonek -25 +KPX Kcommaaccent o -25 +KPX Kcommaaccent oacute -25 +KPX Kcommaaccent ocircumflex -25 +KPX Kcommaaccent odieresis -25 +KPX Kcommaaccent ograve -25 +KPX Kcommaaccent ohungarumlaut -25 +KPX Kcommaaccent omacron -25 +KPX Kcommaaccent oslash -25 +KPX Kcommaaccent otilde -25 +KPX Kcommaaccent u -20 +KPX Kcommaaccent uacute -20 +KPX Kcommaaccent ucircumflex -20 +KPX Kcommaaccent udieresis -20 +KPX Kcommaaccent ugrave -20 +KPX Kcommaaccent uhungarumlaut -20 +KPX Kcommaaccent umacron -20 +KPX Kcommaaccent uogonek -20 +KPX Kcommaaccent uring -20 +KPX Kcommaaccent y -20 +KPX Kcommaaccent yacute -20 +KPX Kcommaaccent ydieresis -20 +KPX L T -18 +KPX L Tcaron -18 +KPX L Tcommaaccent -18 +KPX L V -37 +KPX L W -37 +KPX L Y -37 +KPX L Yacute -37 +KPX L Ydieresis -37 +KPX L quoteright -55 +KPX L y -37 +KPX L yacute -37 +KPX L ydieresis -37 +KPX Lacute T -18 +KPX Lacute Tcaron -18 +KPX Lacute Tcommaaccent -18 +KPX Lacute V -37 +KPX Lacute W -37 +KPX Lacute Y -37 +KPX Lacute Yacute -37 +KPX Lacute Ydieresis -37 +KPX Lacute quoteright -55 +KPX Lacute y -37 +KPX Lacute yacute -37 +KPX Lacute ydieresis -37 +KPX Lcommaaccent T -18 +KPX Lcommaaccent Tcaron -18 +KPX Lcommaaccent Tcommaaccent -18 +KPX Lcommaaccent V -37 +KPX Lcommaaccent W -37 +KPX Lcommaaccent Y -37 +KPX Lcommaaccent Yacute -37 +KPX Lcommaaccent Ydieresis -37 +KPX Lcommaaccent quoteright -55 +KPX Lcommaaccent y -37 +KPX Lcommaaccent yacute -37 +KPX Lcommaaccent ydieresis -37 +KPX Lslash T -18 +KPX Lslash Tcaron -18 +KPX Lslash Tcommaaccent -18 +KPX Lslash V -37 +KPX Lslash W -37 +KPX Lslash Y -37 +KPX Lslash Yacute -37 +KPX Lslash Ydieresis -37 +KPX Lslash quoteright -55 +KPX Lslash y -37 +KPX Lslash yacute -37 +KPX Lslash ydieresis -37 +KPX N A -30 +KPX N Aacute -30 +KPX N Abreve -30 +KPX N Acircumflex -30 +KPX N Adieresis -30 +KPX N Agrave -30 +KPX N Amacron -30 +KPX N Aogonek -30 +KPX N Aring -30 +KPX N Atilde -30 +KPX Nacute A -30 +KPX Nacute Aacute -30 +KPX Nacute Abreve -30 +KPX Nacute Acircumflex -30 +KPX Nacute Adieresis -30 +KPX Nacute Agrave -30 +KPX Nacute Amacron -30 +KPX Nacute Aogonek -30 +KPX Nacute Aring -30 +KPX Nacute Atilde -30 +KPX Ncaron A -30 +KPX Ncaron Aacute -30 +KPX Ncaron Abreve -30 +KPX Ncaron Acircumflex -30 +KPX Ncaron Adieresis -30 +KPX Ncaron Agrave -30 +KPX Ncaron Amacron -30 +KPX Ncaron Aogonek -30 +KPX Ncaron Aring -30 +KPX Ncaron Atilde -30 +KPX Ncommaaccent A -30 +KPX Ncommaaccent Aacute -30 +KPX Ncommaaccent Abreve -30 +KPX Ncommaaccent Acircumflex -30 +KPX Ncommaaccent Adieresis -30 +KPX Ncommaaccent Agrave -30 +KPX Ncommaaccent Amacron -30 +KPX Ncommaaccent Aogonek -30 +KPX Ncommaaccent Aring -30 +KPX Ncommaaccent Atilde -30 +KPX Ntilde A -30 +KPX Ntilde Aacute -30 +KPX Ntilde Abreve -30 +KPX Ntilde Acircumflex -30 +KPX Ntilde Adieresis -30 +KPX Ntilde Agrave -30 +KPX Ntilde Amacron -30 +KPX Ntilde Aogonek -30 +KPX Ntilde Aring -30 +KPX Ntilde Atilde -30 +KPX O A -40 +KPX O Aacute -40 +KPX O Abreve -40 +KPX O Acircumflex -40 +KPX O Adieresis -40 +KPX O Agrave -40 +KPX O Amacron -40 +KPX O Aogonek -40 +KPX O Aring -40 +KPX O Atilde -40 +KPX O T -40 +KPX O Tcaron -40 +KPX O Tcommaaccent -40 +KPX O V -50 +KPX O W -50 +KPX O X -40 +KPX O Y -50 +KPX O Yacute -50 +KPX O Ydieresis -50 +KPX Oacute A -40 +KPX Oacute Aacute -40 +KPX Oacute Abreve -40 +KPX Oacute Acircumflex -40 +KPX Oacute Adieresis -40 +KPX Oacute Agrave -40 +KPX Oacute Amacron -40 +KPX Oacute Aogonek -40 +KPX Oacute Aring -40 +KPX Oacute Atilde -40 +KPX Oacute T -40 +KPX Oacute Tcaron -40 +KPX Oacute Tcommaaccent -40 +KPX Oacute V -50 +KPX Oacute W -50 +KPX Oacute X -40 +KPX Oacute Y -50 +KPX Oacute Yacute -50 +KPX Oacute Ydieresis -50 +KPX Ocircumflex A -40 +KPX Ocircumflex Aacute -40 +KPX Ocircumflex Abreve -40 +KPX Ocircumflex Acircumflex -40 +KPX Ocircumflex Adieresis -40 +KPX Ocircumflex Agrave -40 +KPX Ocircumflex Amacron -40 +KPX Ocircumflex Aogonek -40 +KPX Ocircumflex Aring -40 +KPX Ocircumflex Atilde -40 +KPX Ocircumflex T -40 +KPX Ocircumflex Tcaron -40 +KPX Ocircumflex Tcommaaccent -40 +KPX Ocircumflex V -50 +KPX Ocircumflex W -50 +KPX Ocircumflex X -40 +KPX Ocircumflex Y -50 +KPX Ocircumflex Yacute -50 +KPX Ocircumflex Ydieresis -50 +KPX Odieresis A -40 +KPX Odieresis Aacute -40 +KPX Odieresis Abreve -40 +KPX Odieresis Acircumflex -40 +KPX Odieresis Adieresis -40 +KPX Odieresis Agrave -40 +KPX Odieresis Amacron -40 +KPX Odieresis Aogonek -40 +KPX Odieresis Aring -40 +KPX Odieresis Atilde -40 +KPX Odieresis T -40 +KPX Odieresis Tcaron -40 +KPX Odieresis Tcommaaccent -40 +KPX Odieresis V -50 +KPX Odieresis W -50 +KPX Odieresis X -40 +KPX Odieresis Y -50 +KPX Odieresis Yacute -50 +KPX Odieresis Ydieresis -50 +KPX Ograve A -40 +KPX Ograve Aacute -40 +KPX Ograve Abreve -40 +KPX Ograve Acircumflex -40 +KPX Ograve Adieresis -40 +KPX Ograve Agrave -40 +KPX Ograve Amacron -40 +KPX Ograve Aogonek -40 +KPX Ograve Aring -40 +KPX Ograve Atilde -40 +KPX Ograve T -40 +KPX Ograve Tcaron -40 +KPX Ograve Tcommaaccent -40 +KPX Ograve V -50 +KPX Ograve W -50 +KPX Ograve X -40 +KPX Ograve Y -50 +KPX Ograve Yacute -50 +KPX Ograve Ydieresis -50 +KPX Ohungarumlaut A -40 +KPX Ohungarumlaut Aacute -40 +KPX Ohungarumlaut Abreve -40 +KPX Ohungarumlaut Acircumflex -40 +KPX Ohungarumlaut Adieresis -40 +KPX Ohungarumlaut Agrave -40 +KPX Ohungarumlaut Amacron -40 +KPX Ohungarumlaut Aogonek -40 +KPX Ohungarumlaut Aring -40 +KPX Ohungarumlaut Atilde -40 +KPX Ohungarumlaut T -40 +KPX Ohungarumlaut Tcaron -40 +KPX Ohungarumlaut Tcommaaccent -40 +KPX Ohungarumlaut V -50 +KPX Ohungarumlaut W -50 +KPX Ohungarumlaut X -40 +KPX Ohungarumlaut Y -50 +KPX Ohungarumlaut Yacute -50 +KPX Ohungarumlaut Ydieresis -50 +KPX Omacron A -40 +KPX Omacron Aacute -40 +KPX Omacron Abreve -40 +KPX Omacron Acircumflex -40 +KPX Omacron Adieresis -40 +KPX Omacron Agrave -40 +KPX Omacron Amacron -40 +KPX Omacron Aogonek -40 +KPX Omacron Aring -40 +KPX Omacron Atilde -40 +KPX Omacron T -40 +KPX Omacron Tcaron -40 +KPX Omacron Tcommaaccent -40 +KPX Omacron V -50 +KPX Omacron W -50 +KPX Omacron X -40 +KPX Omacron Y -50 +KPX Omacron Yacute -50 +KPX Omacron Ydieresis -50 +KPX Oslash A -40 +KPX Oslash Aacute -40 +KPX Oslash Abreve -40 +KPX Oslash Acircumflex -40 +KPX Oslash Adieresis -40 +KPX Oslash Agrave -40 +KPX Oslash Amacron -40 +KPX Oslash Aogonek -40 +KPX Oslash Aring -40 +KPX Oslash Atilde -40 +KPX Oslash T -40 +KPX Oslash Tcaron -40 +KPX Oslash Tcommaaccent -40 +KPX Oslash V -50 +KPX Oslash W -50 +KPX Oslash X -40 +KPX Oslash Y -50 +KPX Oslash Yacute -50 +KPX Oslash Ydieresis -50 +KPX Otilde A -40 +KPX Otilde Aacute -40 +KPX Otilde Abreve -40 +KPX Otilde Acircumflex -40 +KPX Otilde Adieresis -40 +KPX Otilde Agrave -40 +KPX Otilde Amacron -40 +KPX Otilde Aogonek -40 +KPX Otilde Aring -40 +KPX Otilde Atilde -40 +KPX Otilde T -40 +KPX Otilde Tcaron -40 +KPX Otilde Tcommaaccent -40 +KPX Otilde V -50 +KPX Otilde W -50 +KPX Otilde X -40 +KPX Otilde Y -50 +KPX Otilde Yacute -50 +KPX Otilde Ydieresis -50 +KPX P A -85 +KPX P Aacute -85 +KPX P Abreve -85 +KPX P Acircumflex -85 +KPX P Adieresis -85 +KPX P Agrave -85 +KPX P Amacron -85 +KPX P Aogonek -85 +KPX P Aring -85 +KPX P Atilde -85 +KPX P a -40 +KPX P aacute -40 +KPX P abreve -40 +KPX P acircumflex -40 +KPX P adieresis -40 +KPX P agrave -40 +KPX P amacron -40 +KPX P aogonek -40 +KPX P aring -40 +KPX P atilde -40 +KPX P comma -129 +KPX P e -50 +KPX P eacute -50 +KPX P ecaron -50 +KPX P ecircumflex -50 +KPX P edieresis -50 +KPX P edotaccent -50 +KPX P egrave -50 +KPX P emacron -50 +KPX P eogonek -50 +KPX P o -55 +KPX P oacute -55 +KPX P ocircumflex -55 +KPX P odieresis -55 +KPX P ograve -55 +KPX P ohungarumlaut -55 +KPX P omacron -55 +KPX P oslash -55 +KPX P otilde -55 +KPX P period -129 +KPX Q U -10 +KPX Q Uacute -10 +KPX Q Ucircumflex -10 +KPX Q Udieresis -10 +KPX Q Ugrave -10 +KPX Q Uhungarumlaut -10 +KPX Q Umacron -10 +KPX Q Uogonek -10 +KPX Q Uring -10 +KPX R O -40 +KPX R Oacute -40 +KPX R Ocircumflex -40 +KPX R Odieresis -40 +KPX R Ograve -40 +KPX R Ohungarumlaut -40 +KPX R Omacron -40 +KPX R Oslash -40 +KPX R Otilde -40 +KPX R T -30 +KPX R Tcaron -30 +KPX R Tcommaaccent -30 +KPX R U -40 +KPX R Uacute -40 +KPX R Ucircumflex -40 +KPX R Udieresis -40 +KPX R Ugrave -40 +KPX R Uhungarumlaut -40 +KPX R Umacron -40 +KPX R Uogonek -40 +KPX R Uring -40 +KPX R V -18 +KPX R W -18 +KPX R Y -18 +KPX R Yacute -18 +KPX R Ydieresis -18 +KPX Racute O -40 +KPX Racute Oacute -40 +KPX Racute Ocircumflex -40 +KPX Racute Odieresis -40 +KPX Racute Ograve -40 +KPX Racute Ohungarumlaut -40 +KPX Racute Omacron -40 +KPX Racute Oslash -40 +KPX Racute Otilde -40 +KPX Racute T -30 +KPX Racute Tcaron -30 +KPX Racute Tcommaaccent -30 +KPX Racute U -40 +KPX Racute Uacute -40 +KPX Racute Ucircumflex -40 +KPX Racute Udieresis -40 +KPX Racute Ugrave -40 +KPX Racute Uhungarumlaut -40 +KPX Racute Umacron -40 +KPX Racute Uogonek -40 +KPX Racute Uring -40 +KPX Racute V -18 +KPX Racute W -18 +KPX Racute Y -18 +KPX Racute Yacute -18 +KPX Racute Ydieresis -18 +KPX Rcaron O -40 +KPX Rcaron Oacute -40 +KPX Rcaron Ocircumflex -40 +KPX Rcaron Odieresis -40 +KPX Rcaron Ograve -40 +KPX Rcaron Ohungarumlaut -40 +KPX Rcaron Omacron -40 +KPX Rcaron Oslash -40 +KPX Rcaron Otilde -40 +KPX Rcaron T -30 +KPX Rcaron Tcaron -30 +KPX Rcaron Tcommaaccent -30 +KPX Rcaron U -40 +KPX Rcaron Uacute -40 +KPX Rcaron Ucircumflex -40 +KPX Rcaron Udieresis -40 +KPX Rcaron Ugrave -40 +KPX Rcaron Uhungarumlaut -40 +KPX Rcaron Umacron -40 +KPX Rcaron Uogonek -40 +KPX Rcaron Uring -40 +KPX Rcaron V -18 +KPX Rcaron W -18 +KPX Rcaron Y -18 +KPX Rcaron Yacute -18 +KPX Rcaron Ydieresis -18 +KPX Rcommaaccent O -40 +KPX Rcommaaccent Oacute -40 +KPX Rcommaaccent Ocircumflex -40 +KPX Rcommaaccent Odieresis -40 +KPX Rcommaaccent Ograve -40 +KPX Rcommaaccent Ohungarumlaut -40 +KPX Rcommaaccent Omacron -40 +KPX Rcommaaccent Oslash -40 +KPX Rcommaaccent Otilde -40 +KPX Rcommaaccent T -30 +KPX Rcommaaccent Tcaron -30 +KPX Rcommaaccent Tcommaaccent -30 +KPX Rcommaaccent U -40 +KPX Rcommaaccent Uacute -40 +KPX Rcommaaccent Ucircumflex -40 +KPX Rcommaaccent Udieresis -40 +KPX Rcommaaccent Ugrave -40 +KPX Rcommaaccent Uhungarumlaut -40 +KPX Rcommaaccent Umacron -40 +KPX Rcommaaccent Uogonek -40 +KPX Rcommaaccent Uring -40 +KPX Rcommaaccent V -18 +KPX Rcommaaccent W -18 +KPX Rcommaaccent Y -18 +KPX Rcommaaccent Yacute -18 +KPX Rcommaaccent Ydieresis -18 +KPX T A -55 +KPX T Aacute -55 +KPX T Abreve -55 +KPX T Acircumflex -55 +KPX T Adieresis -55 +KPX T Agrave -55 +KPX T Amacron -55 +KPX T Aogonek -55 +KPX T Aring -55 +KPX T Atilde -55 +KPX T O -18 +KPX T Oacute -18 +KPX T Ocircumflex -18 +KPX T Odieresis -18 +KPX T Ograve -18 +KPX T Ohungarumlaut -18 +KPX T Omacron -18 +KPX T Oslash -18 +KPX T Otilde -18 +KPX T a -92 +KPX T aacute -92 +KPX T abreve -92 +KPX T acircumflex -92 +KPX T adieresis -92 +KPX T agrave -92 +KPX T amacron -92 +KPX T aogonek -92 +KPX T aring -92 +KPX T atilde -92 +KPX T colon -74 +KPX T comma -92 +KPX T e -92 +KPX T eacute -92 +KPX T ecaron -92 +KPX T ecircumflex -92 +KPX T edieresis -52 +KPX T edotaccent -92 +KPX T egrave -52 +KPX T emacron -52 +KPX T eogonek -92 +KPX T hyphen -92 +KPX T i -37 +KPX T iacute -37 +KPX T iogonek -37 +KPX T o -95 +KPX T oacute -95 +KPX T ocircumflex -95 +KPX T odieresis -95 +KPX T ograve -95 +KPX T ohungarumlaut -95 +KPX T omacron -95 +KPX T oslash -95 +KPX T otilde -95 +KPX T period -92 +KPX T r -37 +KPX T racute -37 +KPX T rcaron -37 +KPX T rcommaaccent -37 +KPX T semicolon -74 +KPX T u -37 +KPX T uacute -37 +KPX T ucircumflex -37 +KPX T udieresis -37 +KPX T ugrave -37 +KPX T uhungarumlaut -37 +KPX T umacron -37 +KPX T uogonek -37 +KPX T uring -37 +KPX T w -37 +KPX T y -37 +KPX T yacute -37 +KPX T ydieresis -37 +KPX Tcaron A -55 +KPX Tcaron Aacute -55 +KPX Tcaron Abreve -55 +KPX Tcaron Acircumflex -55 +KPX Tcaron Adieresis -55 +KPX Tcaron Agrave -55 +KPX Tcaron Amacron -55 +KPX Tcaron Aogonek -55 +KPX Tcaron Aring -55 +KPX Tcaron Atilde -55 +KPX Tcaron O -18 +KPX Tcaron Oacute -18 +KPX Tcaron Ocircumflex -18 +KPX Tcaron Odieresis -18 +KPX Tcaron Ograve -18 +KPX Tcaron Ohungarumlaut -18 +KPX Tcaron Omacron -18 +KPX Tcaron Oslash -18 +KPX Tcaron Otilde -18 +KPX Tcaron a -92 +KPX Tcaron aacute -92 +KPX Tcaron abreve -92 +KPX Tcaron acircumflex -92 +KPX Tcaron adieresis -92 +KPX Tcaron agrave -92 +KPX Tcaron amacron -92 +KPX Tcaron aogonek -92 +KPX Tcaron aring -92 +KPX Tcaron atilde -92 +KPX Tcaron colon -74 +KPX Tcaron comma -92 +KPX Tcaron e -92 +KPX Tcaron eacute -92 +KPX Tcaron ecaron -92 +KPX Tcaron ecircumflex -92 +KPX Tcaron edieresis -52 +KPX Tcaron edotaccent -92 +KPX Tcaron egrave -52 +KPX Tcaron emacron -52 +KPX Tcaron eogonek -92 +KPX Tcaron hyphen -92 +KPX Tcaron i -37 +KPX Tcaron iacute -37 +KPX Tcaron iogonek -37 +KPX Tcaron o -95 +KPX Tcaron oacute -95 +KPX Tcaron ocircumflex -95 +KPX Tcaron odieresis -95 +KPX Tcaron ograve -95 +KPX Tcaron ohungarumlaut -95 +KPX Tcaron omacron -95 +KPX Tcaron oslash -95 +KPX Tcaron otilde -95 +KPX Tcaron period -92 +KPX Tcaron r -37 +KPX Tcaron racute -37 +KPX Tcaron rcaron -37 +KPX Tcaron rcommaaccent -37 +KPX Tcaron semicolon -74 +KPX Tcaron u -37 +KPX Tcaron uacute -37 +KPX Tcaron ucircumflex -37 +KPX Tcaron udieresis -37 +KPX Tcaron ugrave -37 +KPX Tcaron uhungarumlaut -37 +KPX Tcaron umacron -37 +KPX Tcaron uogonek -37 +KPX Tcaron uring -37 +KPX Tcaron w -37 +KPX Tcaron y -37 +KPX Tcaron yacute -37 +KPX Tcaron ydieresis -37 +KPX Tcommaaccent A -55 +KPX Tcommaaccent Aacute -55 +KPX Tcommaaccent Abreve -55 +KPX Tcommaaccent Acircumflex -55 +KPX Tcommaaccent Adieresis -55 +KPX Tcommaaccent Agrave -55 +KPX Tcommaaccent Amacron -55 +KPX Tcommaaccent Aogonek -55 +KPX Tcommaaccent Aring -55 +KPX Tcommaaccent Atilde -55 +KPX Tcommaaccent O -18 +KPX Tcommaaccent Oacute -18 +KPX Tcommaaccent Ocircumflex -18 +KPX Tcommaaccent Odieresis -18 +KPX Tcommaaccent Ograve -18 +KPX Tcommaaccent Ohungarumlaut -18 +KPX Tcommaaccent Omacron -18 +KPX Tcommaaccent Oslash -18 +KPX Tcommaaccent Otilde -18 +KPX Tcommaaccent a -92 +KPX Tcommaaccent aacute -92 +KPX Tcommaaccent abreve -92 +KPX Tcommaaccent acircumflex -92 +KPX Tcommaaccent adieresis -92 +KPX Tcommaaccent agrave -92 +KPX Tcommaaccent amacron -92 +KPX Tcommaaccent aogonek -92 +KPX Tcommaaccent aring -92 +KPX Tcommaaccent atilde -92 +KPX Tcommaaccent colon -74 +KPX Tcommaaccent comma -92 +KPX Tcommaaccent e -92 +KPX Tcommaaccent eacute -92 +KPX Tcommaaccent ecaron -92 +KPX Tcommaaccent ecircumflex -92 +KPX Tcommaaccent edieresis -52 +KPX Tcommaaccent edotaccent -92 +KPX Tcommaaccent egrave -52 +KPX Tcommaaccent emacron -52 +KPX Tcommaaccent eogonek -92 +KPX Tcommaaccent hyphen -92 +KPX Tcommaaccent i -37 +KPX Tcommaaccent iacute -37 +KPX Tcommaaccent iogonek -37 +KPX Tcommaaccent o -95 +KPX Tcommaaccent oacute -95 +KPX Tcommaaccent ocircumflex -95 +KPX Tcommaaccent odieresis -95 +KPX Tcommaaccent ograve -95 +KPX Tcommaaccent ohungarumlaut -95 +KPX Tcommaaccent omacron -95 +KPX Tcommaaccent oslash -95 +KPX Tcommaaccent otilde -95 +KPX Tcommaaccent period -92 +KPX Tcommaaccent r -37 +KPX Tcommaaccent racute -37 +KPX Tcommaaccent rcaron -37 +KPX Tcommaaccent rcommaaccent -37 +KPX Tcommaaccent semicolon -74 +KPX Tcommaaccent u -37 +KPX Tcommaaccent uacute -37 +KPX Tcommaaccent ucircumflex -37 +KPX Tcommaaccent udieresis -37 +KPX Tcommaaccent ugrave -37 +KPX Tcommaaccent uhungarumlaut -37 +KPX Tcommaaccent umacron -37 +KPX Tcommaaccent uogonek -37 +KPX Tcommaaccent uring -37 +KPX Tcommaaccent w -37 +KPX Tcommaaccent y -37 +KPX Tcommaaccent yacute -37 +KPX Tcommaaccent ydieresis -37 +KPX U A -45 +KPX U Aacute -45 +KPX U Abreve -45 +KPX U Acircumflex -45 +KPX U Adieresis -45 +KPX U Agrave -45 +KPX U Amacron -45 +KPX U Aogonek -45 +KPX U Aring -45 +KPX U Atilde -45 +KPX Uacute A -45 +KPX Uacute Aacute -45 +KPX Uacute Abreve -45 +KPX Uacute Acircumflex -45 +KPX Uacute Adieresis -45 +KPX Uacute Agrave -45 +KPX Uacute Amacron -45 +KPX Uacute Aogonek -45 +KPX Uacute Aring -45 +KPX Uacute Atilde -45 +KPX Ucircumflex A -45 +KPX Ucircumflex Aacute -45 +KPX Ucircumflex Abreve -45 +KPX Ucircumflex Acircumflex -45 +KPX Ucircumflex Adieresis -45 +KPX Ucircumflex Agrave -45 +KPX Ucircumflex Amacron -45 +KPX Ucircumflex Aogonek -45 +KPX Ucircumflex Aring -45 +KPX Ucircumflex Atilde -45 +KPX Udieresis A -45 +KPX Udieresis Aacute -45 +KPX Udieresis Abreve -45 +KPX Udieresis Acircumflex -45 +KPX Udieresis Adieresis -45 +KPX Udieresis Agrave -45 +KPX Udieresis Amacron -45 +KPX Udieresis Aogonek -45 +KPX Udieresis Aring -45 +KPX Udieresis Atilde -45 +KPX Ugrave A -45 +KPX Ugrave Aacute -45 +KPX Ugrave Abreve -45 +KPX Ugrave Acircumflex -45 +KPX Ugrave Adieresis -45 +KPX Ugrave Agrave -45 +KPX Ugrave Amacron -45 +KPX Ugrave Aogonek -45 +KPX Ugrave Aring -45 +KPX Ugrave Atilde -45 +KPX Uhungarumlaut A -45 +KPX Uhungarumlaut Aacute -45 +KPX Uhungarumlaut Abreve -45 +KPX Uhungarumlaut Acircumflex -45 +KPX Uhungarumlaut Adieresis -45 +KPX Uhungarumlaut Agrave -45 +KPX Uhungarumlaut Amacron -45 +KPX Uhungarumlaut Aogonek -45 +KPX Uhungarumlaut Aring -45 +KPX Uhungarumlaut Atilde -45 +KPX Umacron A -45 +KPX Umacron Aacute -45 +KPX Umacron Abreve -45 +KPX Umacron Acircumflex -45 +KPX Umacron Adieresis -45 +KPX Umacron Agrave -45 +KPX Umacron Amacron -45 +KPX Umacron Aogonek -45 +KPX Umacron Aring -45 +KPX Umacron Atilde -45 +KPX Uogonek A -45 +KPX Uogonek Aacute -45 +KPX Uogonek Abreve -45 +KPX Uogonek Acircumflex -45 +KPX Uogonek Adieresis -45 +KPX Uogonek Agrave -45 +KPX Uogonek Amacron -45 +KPX Uogonek Aogonek -45 +KPX Uogonek Aring -45 +KPX Uogonek Atilde -45 +KPX Uring A -45 +KPX Uring Aacute -45 +KPX Uring Abreve -45 +KPX Uring Acircumflex -45 +KPX Uring Adieresis -45 +KPX Uring Agrave -45 +KPX Uring Amacron -45 +KPX Uring Aogonek -45 +KPX Uring Aring -45 +KPX Uring Atilde -45 +KPX V A -85 +KPX V Aacute -85 +KPX V Abreve -85 +KPX V Acircumflex -85 +KPX V Adieresis -85 +KPX V Agrave -85 +KPX V Amacron -85 +KPX V Aogonek -85 +KPX V Aring -85 +KPX V Atilde -85 +KPX V G -10 +KPX V Gbreve -10 +KPX V Gcommaaccent -10 +KPX V O -30 +KPX V Oacute -30 +KPX V Ocircumflex -30 +KPX V Odieresis -30 +KPX V Ograve -30 +KPX V Ohungarumlaut -30 +KPX V Omacron -30 +KPX V Oslash -30 +KPX V Otilde -30 +KPX V a -111 +KPX V aacute -111 +KPX V abreve -111 +KPX V acircumflex -111 +KPX V adieresis -111 +KPX V agrave -111 +KPX V amacron -111 +KPX V aogonek -111 +KPX V aring -111 +KPX V atilde -111 +KPX V colon -74 +KPX V comma -129 +KPX V e -111 +KPX V eacute -111 +KPX V ecaron -111 +KPX V ecircumflex -111 +KPX V edieresis -71 +KPX V edotaccent -111 +KPX V egrave -71 +KPX V emacron -71 +KPX V eogonek -111 +KPX V hyphen -70 +KPX V i -55 +KPX V iacute -55 +KPX V iogonek -55 +KPX V o -111 +KPX V oacute -111 +KPX V ocircumflex -111 +KPX V odieresis -111 +KPX V ograve -111 +KPX V ohungarumlaut -111 +KPX V omacron -111 +KPX V oslash -111 +KPX V otilde -111 +KPX V period -129 +KPX V semicolon -74 +KPX V u -55 +KPX V uacute -55 +KPX V ucircumflex -55 +KPX V udieresis -55 +KPX V ugrave -55 +KPX V uhungarumlaut -55 +KPX V umacron -55 +KPX V uogonek -55 +KPX V uring -55 +KPX W A -74 +KPX W Aacute -74 +KPX W Abreve -74 +KPX W Acircumflex -74 +KPX W Adieresis -74 +KPX W Agrave -74 +KPX W Amacron -74 +KPX W Aogonek -74 +KPX W Aring -74 +KPX W Atilde -74 +KPX W O -15 +KPX W Oacute -15 +KPX W Ocircumflex -15 +KPX W Odieresis -15 +KPX W Ograve -15 +KPX W Ohungarumlaut -15 +KPX W Omacron -15 +KPX W Oslash -15 +KPX W Otilde -15 +KPX W a -85 +KPX W aacute -85 +KPX W abreve -85 +KPX W acircumflex -85 +KPX W adieresis -85 +KPX W agrave -85 +KPX W amacron -85 +KPX W aogonek -85 +KPX W aring -85 +KPX W atilde -85 +KPX W colon -55 +KPX W comma -74 +KPX W e -90 +KPX W eacute -90 +KPX W ecaron -90 +KPX W ecircumflex -90 +KPX W edieresis -50 +KPX W edotaccent -90 +KPX W egrave -50 +KPX W emacron -50 +KPX W eogonek -90 +KPX W hyphen -50 +KPX W i -37 +KPX W iacute -37 +KPX W iogonek -37 +KPX W o -80 +KPX W oacute -80 +KPX W ocircumflex -80 +KPX W odieresis -80 +KPX W ograve -80 +KPX W ohungarumlaut -80 +KPX W omacron -80 +KPX W oslash -80 +KPX W otilde -80 +KPX W period -74 +KPX W semicolon -55 +KPX W u -55 +KPX W uacute -55 +KPX W ucircumflex -55 +KPX W udieresis -55 +KPX W ugrave -55 +KPX W uhungarumlaut -55 +KPX W umacron -55 +KPX W uogonek -55 +KPX W uring -55 +KPX W y -55 +KPX W yacute -55 +KPX W ydieresis -55 +KPX Y A -74 +KPX Y Aacute -74 +KPX Y Abreve -74 +KPX Y Acircumflex -74 +KPX Y Adieresis -74 +KPX Y Agrave -74 +KPX Y Amacron -74 +KPX Y Aogonek -74 +KPX Y Aring -74 +KPX Y Atilde -74 +KPX Y O -25 +KPX Y Oacute -25 +KPX Y Ocircumflex -25 +KPX Y Odieresis -25 +KPX Y Ograve -25 +KPX Y Ohungarumlaut -25 +KPX Y Omacron -25 +KPX Y Oslash -25 +KPX Y Otilde -25 +KPX Y a -92 +KPX Y aacute -92 +KPX Y abreve -92 +KPX Y acircumflex -92 +KPX Y adieresis -92 +KPX Y agrave -92 +KPX Y amacron -92 +KPX Y aogonek -92 +KPX Y aring -92 +KPX Y atilde -92 +KPX Y colon -92 +KPX Y comma -92 +KPX Y e -111 +KPX Y eacute -111 +KPX Y ecaron -111 +KPX Y ecircumflex -71 +KPX Y edieresis -71 +KPX Y edotaccent -111 +KPX Y egrave -71 +KPX Y emacron -71 +KPX Y eogonek -111 +KPX Y hyphen -92 +KPX Y i -55 +KPX Y iacute -55 +KPX Y iogonek -55 +KPX Y o -111 +KPX Y oacute -111 +KPX Y ocircumflex -111 +KPX Y odieresis -111 +KPX Y ograve -111 +KPX Y ohungarumlaut -111 +KPX Y omacron -111 +KPX Y oslash -111 +KPX Y otilde -111 +KPX Y period -74 +KPX Y semicolon -92 +KPX Y u -92 +KPX Y uacute -92 +KPX Y ucircumflex -92 +KPX Y udieresis -92 +KPX Y ugrave -92 +KPX Y uhungarumlaut -92 +KPX Y umacron -92 +KPX Y uogonek -92 +KPX Y uring -92 +KPX Yacute A -74 +KPX Yacute Aacute -74 +KPX Yacute Abreve -74 +KPX Yacute Acircumflex -74 +KPX Yacute Adieresis -74 +KPX Yacute Agrave -74 +KPX Yacute Amacron -74 +KPX Yacute Aogonek -74 +KPX Yacute Aring -74 +KPX Yacute Atilde -74 +KPX Yacute O -25 +KPX Yacute Oacute -25 +KPX Yacute Ocircumflex -25 +KPX Yacute Odieresis -25 +KPX Yacute Ograve -25 +KPX Yacute Ohungarumlaut -25 +KPX Yacute Omacron -25 +KPX Yacute Oslash -25 +KPX Yacute Otilde -25 +KPX Yacute a -92 +KPX Yacute aacute -92 +KPX Yacute abreve -92 +KPX Yacute acircumflex -92 +KPX Yacute adieresis -92 +KPX Yacute agrave -92 +KPX Yacute amacron -92 +KPX Yacute aogonek -92 +KPX Yacute aring -92 +KPX Yacute atilde -92 +KPX Yacute colon -92 +KPX Yacute comma -92 +KPX Yacute e -111 +KPX Yacute eacute -111 +KPX Yacute ecaron -111 +KPX Yacute ecircumflex -71 +KPX Yacute edieresis -71 +KPX Yacute edotaccent -111 +KPX Yacute egrave -71 +KPX Yacute emacron -71 +KPX Yacute eogonek -111 +KPX Yacute hyphen -92 +KPX Yacute i -55 +KPX Yacute iacute -55 +KPX Yacute iogonek -55 +KPX Yacute o -111 +KPX Yacute oacute -111 +KPX Yacute ocircumflex -111 +KPX Yacute odieresis -111 +KPX Yacute ograve -111 +KPX Yacute ohungarumlaut -111 +KPX Yacute omacron -111 +KPX Yacute oslash -111 +KPX Yacute otilde -111 +KPX Yacute period -74 +KPX Yacute semicolon -92 +KPX Yacute u -92 +KPX Yacute uacute -92 +KPX Yacute ucircumflex -92 +KPX Yacute udieresis -92 +KPX Yacute ugrave -92 +KPX Yacute uhungarumlaut -92 +KPX Yacute umacron -92 +KPX Yacute uogonek -92 +KPX Yacute uring -92 +KPX Ydieresis A -74 +KPX Ydieresis Aacute -74 +KPX Ydieresis Abreve -74 +KPX Ydieresis Acircumflex -74 +KPX Ydieresis Adieresis -74 +KPX Ydieresis Agrave -74 +KPX Ydieresis Amacron -74 +KPX Ydieresis Aogonek -74 +KPX Ydieresis Aring -74 +KPX Ydieresis Atilde -74 +KPX Ydieresis O -25 +KPX Ydieresis Oacute -25 +KPX Ydieresis Ocircumflex -25 +KPX Ydieresis Odieresis -25 +KPX Ydieresis Ograve -25 +KPX Ydieresis Ohungarumlaut -25 +KPX Ydieresis Omacron -25 +KPX Ydieresis Oslash -25 +KPX Ydieresis Otilde -25 +KPX Ydieresis a -92 +KPX Ydieresis aacute -92 +KPX Ydieresis abreve -92 +KPX Ydieresis acircumflex -92 +KPX Ydieresis adieresis -92 +KPX Ydieresis agrave -92 +KPX Ydieresis amacron -92 +KPX Ydieresis aogonek -92 +KPX Ydieresis aring -92 +KPX Ydieresis atilde -92 +KPX Ydieresis colon -92 +KPX Ydieresis comma -92 +KPX Ydieresis e -111 +KPX Ydieresis eacute -111 +KPX Ydieresis ecaron -111 +KPX Ydieresis ecircumflex -71 +KPX Ydieresis edieresis -71 +KPX Ydieresis edotaccent -111 +KPX Ydieresis egrave -71 +KPX Ydieresis emacron -71 +KPX Ydieresis eogonek -111 +KPX Ydieresis hyphen -92 +KPX Ydieresis i -55 +KPX Ydieresis iacute -55 +KPX Ydieresis iogonek -55 +KPX Ydieresis o -111 +KPX Ydieresis oacute -111 +KPX Ydieresis ocircumflex -111 +KPX Ydieresis odieresis -111 +KPX Ydieresis ograve -111 +KPX Ydieresis ohungarumlaut -111 +KPX Ydieresis omacron -111 +KPX Ydieresis oslash -111 +KPX Ydieresis otilde -111 +KPX Ydieresis period -74 +KPX Ydieresis semicolon -92 +KPX Ydieresis u -92 +KPX Ydieresis uacute -92 +KPX Ydieresis ucircumflex -92 +KPX Ydieresis udieresis -92 +KPX Ydieresis ugrave -92 +KPX Ydieresis uhungarumlaut -92 +KPX Ydieresis umacron -92 +KPX Ydieresis uogonek -92 +KPX Ydieresis uring -92 +KPX b b -10 +KPX b period -40 +KPX b u -20 +KPX b uacute -20 +KPX b ucircumflex -20 +KPX b udieresis -20 +KPX b ugrave -20 +KPX b uhungarumlaut -20 +KPX b umacron -20 +KPX b uogonek -20 +KPX b uring -20 +KPX c h -10 +KPX c k -10 +KPX c kcommaaccent -10 +KPX cacute h -10 +KPX cacute k -10 +KPX cacute kcommaaccent -10 +KPX ccaron h -10 +KPX ccaron k -10 +KPX ccaron kcommaaccent -10 +KPX ccedilla h -10 +KPX ccedilla k -10 +KPX ccedilla kcommaaccent -10 +KPX comma quotedblright -95 +KPX comma quoteright -95 +KPX e b -10 +KPX eacute b -10 +KPX ecaron b -10 +KPX ecircumflex b -10 +KPX edieresis b -10 +KPX edotaccent b -10 +KPX egrave b -10 +KPX emacron b -10 +KPX eogonek b -10 +KPX f comma -10 +KPX f dotlessi -30 +KPX f e -10 +KPX f eacute -10 +KPX f edotaccent -10 +KPX f eogonek -10 +KPX f f -18 +KPX f o -10 +KPX f oacute -10 +KPX f ocircumflex -10 +KPX f ograve -10 +KPX f ohungarumlaut -10 +KPX f oslash -10 +KPX f otilde -10 +KPX f period -10 +KPX f quoteright 55 +KPX k e -30 +KPX k eacute -30 +KPX k ecaron -30 +KPX k ecircumflex -30 +KPX k edieresis -30 +KPX k edotaccent -30 +KPX k egrave -30 +KPX k emacron -30 +KPX k eogonek -30 +KPX k o -10 +KPX k oacute -10 +KPX k ocircumflex -10 +KPX k odieresis -10 +KPX k ograve -10 +KPX k ohungarumlaut -10 +KPX k omacron -10 +KPX k oslash -10 +KPX k otilde -10 +KPX kcommaaccent e -30 +KPX kcommaaccent eacute -30 +KPX kcommaaccent ecaron -30 +KPX kcommaaccent ecircumflex -30 +KPX kcommaaccent edieresis -30 +KPX kcommaaccent edotaccent -30 +KPX kcommaaccent egrave -30 +KPX kcommaaccent emacron -30 +KPX kcommaaccent eogonek -30 +KPX kcommaaccent o -10 +KPX kcommaaccent oacute -10 +KPX kcommaaccent ocircumflex -10 +KPX kcommaaccent odieresis -10 +KPX kcommaaccent ograve -10 +KPX kcommaaccent ohungarumlaut -10 +KPX kcommaaccent omacron -10 +KPX kcommaaccent oslash -10 +KPX kcommaaccent otilde -10 +KPX n v -40 +KPX nacute v -40 +KPX ncaron v -40 +KPX ncommaaccent v -40 +KPX ntilde v -40 +KPX o v -15 +KPX o w -25 +KPX o x -10 +KPX o y -10 +KPX o yacute -10 +KPX o ydieresis -10 +KPX oacute v -15 +KPX oacute w -25 +KPX oacute x -10 +KPX oacute y -10 +KPX oacute yacute -10 +KPX oacute ydieresis -10 +KPX ocircumflex v -15 +KPX ocircumflex w -25 +KPX ocircumflex x -10 +KPX ocircumflex y -10 +KPX ocircumflex yacute -10 +KPX ocircumflex ydieresis -10 +KPX odieresis v -15 +KPX odieresis w -25 +KPX odieresis x -10 +KPX odieresis y -10 +KPX odieresis yacute -10 +KPX odieresis ydieresis -10 +KPX ograve v -15 +KPX ograve w -25 +KPX ograve x -10 +KPX ograve y -10 +KPX ograve yacute -10 +KPX ograve ydieresis -10 +KPX ohungarumlaut v -15 +KPX ohungarumlaut w -25 +KPX ohungarumlaut x -10 +KPX ohungarumlaut y -10 +KPX ohungarumlaut yacute -10 +KPX ohungarumlaut ydieresis -10 +KPX omacron v -15 +KPX omacron w -25 +KPX omacron x -10 +KPX omacron y -10 +KPX omacron yacute -10 +KPX omacron ydieresis -10 +KPX oslash v -15 +KPX oslash w -25 +KPX oslash x -10 +KPX oslash y -10 +KPX oslash yacute -10 +KPX oslash ydieresis -10 +KPX otilde v -15 +KPX otilde w -25 +KPX otilde x -10 +KPX otilde y -10 +KPX otilde yacute -10 +KPX otilde ydieresis -10 +KPX period quotedblright -95 +KPX period quoteright -95 +KPX quoteleft quoteleft -74 +KPX quoteright d -15 +KPX quoteright dcroat -15 +KPX quoteright quoteright -74 +KPX quoteright r -15 +KPX quoteright racute -15 +KPX quoteright rcaron -15 +KPX quoteright rcommaaccent -15 +KPX quoteright s -74 +KPX quoteright sacute -74 +KPX quoteright scaron -74 +KPX quoteright scedilla -74 +KPX quoteright scommaaccent -74 +KPX quoteright space -74 +KPX quoteright t -37 +KPX quoteright tcommaaccent -37 +KPX quoteright v -15 +KPX r comma -65 +KPX r period -65 +KPX racute comma -65 +KPX racute period -65 +KPX rcaron comma -65 +KPX rcaron period -65 +KPX rcommaaccent comma -65 +KPX rcommaaccent period -65 +KPX space A -37 +KPX space Aacute -37 +KPX space Abreve -37 +KPX space Acircumflex -37 +KPX space Adieresis -37 +KPX space Agrave -37 +KPX space Amacron -37 +KPX space Aogonek -37 +KPX space Aring -37 +KPX space Atilde -37 +KPX space V -70 +KPX space W -70 +KPX space Y -70 +KPX space Yacute -70 +KPX space Ydieresis -70 +KPX v comma -37 +KPX v e -15 +KPX v eacute -15 +KPX v ecaron -15 +KPX v ecircumflex -15 +KPX v edieresis -15 +KPX v edotaccent -15 +KPX v egrave -15 +KPX v emacron -15 +KPX v eogonek -15 +KPX v o -15 +KPX v oacute -15 +KPX v ocircumflex -15 +KPX v odieresis -15 +KPX v ograve -15 +KPX v ohungarumlaut -15 +KPX v omacron -15 +KPX v oslash -15 +KPX v otilde -15 +KPX v period -37 +KPX w a -10 +KPX w aacute -10 +KPX w abreve -10 +KPX w acircumflex -10 +KPX w adieresis -10 +KPX w agrave -10 +KPX w amacron -10 +KPX w aogonek -10 +KPX w aring -10 +KPX w atilde -10 +KPX w comma -37 +KPX w e -10 +KPX w eacute -10 +KPX w ecaron -10 +KPX w ecircumflex -10 +KPX w edieresis -10 +KPX w edotaccent -10 +KPX w egrave -10 +KPX w emacron -10 +KPX w eogonek -10 +KPX w o -15 +KPX w oacute -15 +KPX w ocircumflex -15 +KPX w odieresis -15 +KPX w ograve -15 +KPX w ohungarumlaut -15 +KPX w omacron -15 +KPX w oslash -15 +KPX w otilde -15 +KPX w period -37 +KPX x e -10 +KPX x eacute -10 +KPX x ecaron -10 +KPX x ecircumflex -10 +KPX x edieresis -10 +KPX x edotaccent -10 +KPX x egrave -10 +KPX x emacron -10 +KPX x eogonek -10 +KPX y comma -37 +KPX y period -37 +KPX yacute comma -37 +KPX yacute period -37 +KPX ydieresis comma -37 +KPX ydieresis period -37 +EndKernPairs +EndKernData +EndFontMetrics diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/Times-BoldItalic.afm.json b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/Times-BoldItalic.afm.json new file mode 100644 index 0000000..0790901 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/Times-BoldItalic.afm.json @@ -0,0 +1,569 @@ +{ + "codeToName": { + "32": "space", + "160": "space", + "33": "exclam", + "34": "quotedbl", + "35": "numbersign", + "36": "dollar", + "37": "percent", + "38": "ampersand", + "146": "quoteright", + "40": "parenleft", + "41": "parenright", + "42": "asterisk", + "43": "plus", + "44": "comma", + "45": "hyphen", + "173": "hyphen", + "46": "period", + "47": "slash", + "48": "zero", + "49": "one", + "50": "two", + "51": "three", + "52": "four", + "53": "five", + "54": "six", + "55": "seven", + "56": "eight", + "57": "nine", + "58": "colon", + "59": "semicolon", + "60": "less", + "61": "equal", + "62": "greater", + "63": "question", + "64": "at", + "65": "A", + "66": "B", + "67": "C", + "68": "D", + "69": "E", + "70": "F", + "71": "G", + "72": "H", + "73": "I", + "74": "J", + "75": "K", + "76": "L", + "77": "M", + "78": "N", + "79": "O", + "80": "P", + "81": "Q", + "82": "R", + "83": "S", + "84": "T", + "85": "U", + "86": "V", + "87": "W", + "88": "X", + "89": "Y", + "90": "Z", + "91": "bracketleft", + "92": "backslash", + "93": "bracketright", + "94": "asciicircum", + "95": "underscore", + "145": "quoteleft", + "97": "a", + "98": "b", + "99": "c", + "100": "d", + "101": "e", + "102": "f", + "103": "g", + "104": "h", + "105": "i", + "106": "j", + "107": "k", + "108": "l", + "109": "m", + "110": "n", + "111": "o", + "112": "p", + "113": "q", + "114": "r", + "115": "s", + "116": "t", + "117": "u", + "118": "v", + "119": "w", + "120": "x", + "121": "y", + "122": "z", + "123": "braceleft", + "124": "bar", + "125": "braceright", + "126": "asciitilde", + "161": "exclamdown", + "162": "cent", + "163": "sterling", + "165": "yen", + "131": "florin", + "167": "section", + "164": "currency", + "39": "quotesingle", + "147": "quotedblleft", + "171": "guillemotleft", + "139": "guilsinglleft", + "155": "guilsinglright", + "150": "endash", + "134": "dagger", + "135": "daggerdbl", + "183": "periodcentered", + "182": "paragraph", + "149": "bullet", + "130": "quotesinglbase", + "132": "quotedblbase", + "148": "quotedblright", + "187": "guillemotright", + "133": "ellipsis", + "137": "perthousand", + "191": "questiondown", + "96": "grave", + "180": "acute", + "136": "circumflex", + "152": "tilde", + "175": "macron", + "168": "dieresis", + "184": "cedilla", + "151": "emdash", + "198": "AE", + "170": "ordfeminine", + "216": "Oslash", + "140": "OE", + "186": "ordmasculine", + "230": "ae", + "248": "oslash", + "156": "oe", + "223": "germandbls", + "207": "Idieresis", + "233": "eacute", + "159": "Ydieresis", + "247": "divide", + "221": "Yacute", + "194": "Acircumflex", + "225": "aacute", + "219": "Ucircumflex", + "253": "yacute", + "234": "ecircumflex", + "220": "Udieresis", + "218": "Uacute", + "203": "Edieresis", + "169": "copyright", + "229": "aring", + "224": "agrave", + "227": "atilde", + "154": "scaron", + "237": "iacute", + "251": "ucircumflex", + "226": "acircumflex", + "231": "ccedilla", + "222": "Thorn", + "179": "threesuperior", + "210": "Ograve", + "192": "Agrave", + "215": "multiply", + "250": "uacute", + "255": "ydieresis", + "238": "icircumflex", + "202": "Ecircumflex", + "228": "adieresis", + "235": "edieresis", + "205": "Iacute", + "177": "plusminus", + "166": "brokenbar", + "174": "registered", + "200": "Egrave", + "142": "Zcaron", + "208": "Eth", + "199": "Ccedilla", + "193": "Aacute", + "196": "Adieresis", + "232": "egrave", + "211": "Oacute", + "243": "oacute", + "239": "idieresis", + "212": "Ocircumflex", + "217": "Ugrave", + "254": "thorn", + "178": "twosuperior", + "214": "Odieresis", + "181": "mu", + "236": "igrave", + "190": "threequarters", + "153": "trademark", + "204": "Igrave", + "189": "onehalf", + "244": "ocircumflex", + "241": "ntilde", + "201": "Eacute", + "188": "onequarter", + "138": "Scaron", + "176": "degree", + "242": "ograve", + "249": "ugrave", + "209": "Ntilde", + "245": "otilde", + "195": "Atilde", + "197": "Aring", + "213": "Otilde", + "206": "Icircumflex", + "172": "logicalnot", + "246": "odieresis", + "252": "udieresis", + "240": "eth", + "158": "zcaron", + "185": "onesuperior", + "128": "Euro" + }, + "isUnicode": false, + "FontName": "Times-BoldItalic", + "FullName": "Times Bold Italic", + "FamilyName": "Times", + "Weight": "Bold", + "ItalicAngle": "-15", + "IsFixedPitch": "false", + "CharacterSet": "ExtendedRoman", + "FontBBox": [ + "-200", + "-218", + "996", + "921" + ], + "UnderlinePosition": "-100", + "UnderlineThickness": "50", + "Version": "002.000", + "EncodingScheme": "WinAnsiEncoding", + "CapHeight": "669", + "XHeight": "462", + "Ascender": "683", + "Descender": "-217", + "StdHW": "42", + "StdVW": "121", + "StartCharMetrics": "317", + "C": { + "32": 250, + "160": 250, + "33": 389, + "34": 555, + "35": 500, + "36": 500, + "37": 833, + "38": 778, + "146": 333, + "40": 333, + "41": 333, + "42": 500, + "43": 570, + "44": 250, + "45": 333, + "173": 333, + "46": 250, + "47": 278, + "48": 500, + "49": 500, + "50": 500, + "51": 500, + "52": 500, + "53": 500, + "54": 500, + "55": 500, + "56": 500, + "57": 500, + "58": 333, + "59": 333, + "60": 570, + "61": 570, + "62": 570, + "63": 500, + "64": 832, + "65": 667, + "66": 667, + "67": 667, + "68": 722, + "69": 667, + "70": 667, + "71": 722, + "72": 778, + "73": 389, + "74": 500, + "75": 667, + "76": 611, + "77": 889, + "78": 722, + "79": 722, + "80": 611, + "81": 722, + "82": 667, + "83": 556, + "84": 611, + "85": 722, + "86": 667, + "87": 889, + "88": 667, + "89": 611, + "90": 611, + "91": 333, + "92": 278, + "93": 333, + "94": 570, + "95": 500, + "145": 333, + "97": 500, + "98": 500, + "99": 444, + "100": 500, + "101": 444, + "102": 333, + "103": 500, + "104": 556, + "105": 278, + "106": 278, + "107": 500, + "108": 278, + "109": 778, + "110": 556, + "111": 500, + "112": 500, + "113": 500, + "114": 389, + "115": 389, + "116": 278, + "117": 556, + "118": 444, + "119": 667, + "120": 500, + "121": 444, + "122": 389, + "123": 348, + "124": 220, + "125": 348, + "126": 570, + "161": 389, + "162": 500, + "163": 500, + "fraction": 167, + "165": 500, + "131": 500, + "167": 500, + "164": 500, + "39": 278, + "147": 500, + "171": 500, + "139": 333, + "155": 333, + "fi": 556, + "fl": 556, + "150": 500, + "134": 500, + "135": 500, + "183": 250, + "182": 500, + "149": 350, + "130": 333, + "132": 500, + "148": 500, + "187": 500, + "133": 1000, + "137": 1000, + "191": 500, + "96": 333, + "180": 333, + "136": 333, + "152": 333, + "175": 333, + "breve": 333, + "dotaccent": 333, + "168": 333, + "ring": 333, + "184": 333, + "hungarumlaut": 333, + "ogonek": 333, + "caron": 333, + "151": 1000, + "198": 944, + "170": 266, + "Lslash": 611, + "216": 722, + "140": 944, + "186": 300, + "230": 722, + "dotlessi": 278, + "lslash": 278, + "248": 500, + "156": 722, + "223": 500, + "207": 389, + "233": 444, + "abreve": 500, + "uhungarumlaut": 556, + "ecaron": 444, + "159": 611, + "247": 570, + "221": 611, + "194": 667, + "225": 500, + "219": 722, + "253": 444, + "scommaaccent": 389, + "234": 444, + "Uring": 722, + "220": 722, + "aogonek": 500, + "218": 722, + "uogonek": 556, + "203": 667, + "Dcroat": 722, + "commaaccent": 250, + "169": 747, + "Emacron": 667, + "ccaron": 444, + "229": 500, + "Ncommaaccent": 722, + "lacute": 278, + "224": 500, + "Tcommaaccent": 611, + "Cacute": 667, + "227": 500, + "Edotaccent": 667, + "154": 389, + "scedilla": 389, + "237": 278, + "lozenge": 494, + "Rcaron": 667, + "Gcommaaccent": 722, + "251": 556, + "226": 500, + "Amacron": 667, + "rcaron": 389, + "231": 444, + "Zdotaccent": 611, + "222": 611, + "Omacron": 722, + "Racute": 667, + "Sacute": 556, + "dcaron": 608, + "Umacron": 722, + "uring": 556, + "179": 300, + "210": 722, + "192": 667, + "Abreve": 667, + "215": 570, + "250": 556, + "Tcaron": 611, + "partialdiff": 494, + "255": 444, + "Nacute": 722, + "238": 278, + "202": 667, + "228": 500, + "235": 444, + "cacute": 444, + "nacute": 556, + "umacron": 556, + "Ncaron": 722, + "205": 389, + "177": 570, + "166": 220, + "174": 747, + "Gbreve": 722, + "Idotaccent": 389, + "summation": 600, + "200": 667, + "racute": 389, + "omacron": 500, + "Zacute": 611, + "142": 611, + "greaterequal": 549, + "208": 722, + "199": 667, + "lcommaaccent": 278, + "tcaron": 366, + "eogonek": 444, + "Uogonek": 722, + "193": 667, + "196": 667, + "232": 444, + "zacute": 389, + "iogonek": 278, + "211": 722, + "243": 500, + "amacron": 500, + "sacute": 389, + "239": 278, + "212": 722, + "217": 722, + "Delta": 612, + "254": 500, + "178": 300, + "214": 722, + "181": 576, + "236": 278, + "ohungarumlaut": 500, + "Eogonek": 667, + "dcroat": 500, + "190": 750, + "Scedilla": 556, + "lcaron": 382, + "Kcommaaccent": 667, + "Lacute": 611, + "153": 1000, + "edotaccent": 444, + "204": 389, + "Imacron": 389, + "Lcaron": 611, + "189": 750, + "lessequal": 549, + "244": 500, + "241": 556, + "Uhungarumlaut": 722, + "201": 667, + "emacron": 444, + "gbreve": 500, + "188": 750, + "138": 556, + "Scommaaccent": 556, + "Ohungarumlaut": 722, + "176": 400, + "242": 500, + "Ccaron": 667, + "249": 556, + "radical": 549, + "Dcaron": 722, + "rcommaaccent": 389, + "209": 722, + "245": 500, + "Rcommaaccent": 667, + "Lcommaaccent": 611, + "195": 667, + "Aogonek": 667, + "197": 667, + "213": 722, + "zdotaccent": 389, + "Ecaron": 667, + "Iogonek": 389, + "kcommaaccent": 500, + "minus": 606, + "206": 389, + "ncaron": 556, + "tcommaaccent": 278, + "172": 606, + "246": 500, + "252": 556, + "notequal": 549, + "gcommaaccent": 500, + "240": 500, + "158": 389, + "ncommaaccent": 556, + "185": 300, + "imacron": 278, + "128": 500 + }, + "CIDtoGID_Compressed": true, + "CIDtoGID": "eJwDAAAAAAE=", + "_version_": 6 +} \ No newline at end of file diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/Times-Italic.afm b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/Times-Italic.afm new file mode 100644 index 0000000..3d3fd8d --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/Times-Italic.afm @@ -0,0 +1,2669 @@ +StartFontMetrics 4.1 +Comment Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Thu May 1 12:56:55 1997 +Comment UniqueID 43067 +Comment VMusage 47727 58752 +FontName Times-Italic +FullName Times Italic +FamilyName Times +Weight Medium +ItalicAngle -15.5 +IsFixedPitch false +CharacterSet ExtendedRoman +FontBBox -169 -217 1010 883 +UnderlinePosition -100 +UnderlineThickness 50 +Version 002.000 +Notice Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.Times is a trademark of Linotype-Hell AG and/or its subsidiaries. +EncodingScheme WinAnsiEncoding +CapHeight 653 +XHeight 441 +Ascender 683 +Descender -217 +StdHW 32 +StdVW 76 +StartCharMetrics 317 +C 32 ; WX 250 ; N space ; B 0 0 0 0 ; +C 160 ; WX 250 ; N space ; B 0 0 0 0 ; +C 33 ; WX 333 ; N exclam ; B 39 -11 302 667 ; +C 34 ; WX 420 ; N quotedbl ; B 144 421 432 666 ; +C 35 ; WX 500 ; N numbersign ; B 2 0 540 676 ; +C 36 ; WX 500 ; N dollar ; B 31 -89 497 731 ; +C 37 ; WX 833 ; N percent ; B 79 -13 790 676 ; +C 38 ; WX 778 ; N ampersand ; B 76 -18 723 666 ; +C 146 ; WX 333 ; N quoteright ; B 151 436 290 666 ; +C 40 ; WX 333 ; N parenleft ; B 42 -181 315 669 ; +C 41 ; WX 333 ; N parenright ; B 16 -180 289 669 ; +C 42 ; WX 500 ; N asterisk ; B 128 255 492 666 ; +C 43 ; WX 675 ; N plus ; B 86 0 590 506 ; +C 44 ; WX 250 ; N comma ; B -4 -129 135 101 ; +C 45 ; WX 333 ; N hyphen ; B 49 192 282 255 ; +C 173 ; WX 333 ; N hyphen ; B 49 192 282 255 ; +C 46 ; WX 250 ; N period ; B 27 -11 138 100 ; +C 47 ; WX 278 ; N slash ; B -65 -18 386 666 ; +C 48 ; WX 500 ; N zero ; B 32 -7 497 676 ; +C 49 ; WX 500 ; N one ; B 49 0 409 676 ; +C 50 ; WX 500 ; N two ; B 12 0 452 676 ; +C 51 ; WX 500 ; N three ; B 15 -7 465 676 ; +C 52 ; WX 500 ; N four ; B 1 0 479 676 ; +C 53 ; WX 500 ; N five ; B 15 -7 491 666 ; +C 54 ; WX 500 ; N six ; B 30 -7 521 686 ; +C 55 ; WX 500 ; N seven ; B 75 -8 537 666 ; +C 56 ; WX 500 ; N eight ; B 30 -7 493 676 ; +C 57 ; WX 500 ; N nine ; B 23 -17 492 676 ; +C 58 ; WX 333 ; N colon ; B 50 -11 261 441 ; +C 59 ; WX 333 ; N semicolon ; B 27 -129 261 441 ; +C 60 ; WX 675 ; N less ; B 84 -8 592 514 ; +C 61 ; WX 675 ; N equal ; B 86 120 590 386 ; +C 62 ; WX 675 ; N greater ; B 84 -8 592 514 ; +C 63 ; WX 500 ; N question ; B 132 -12 472 664 ; +C 64 ; WX 920 ; N at ; B 118 -18 806 666 ; +C 65 ; WX 611 ; N A ; B -51 0 564 668 ; +C 66 ; WX 611 ; N B ; B -8 0 588 653 ; +C 67 ; WX 667 ; N C ; B 66 -18 689 666 ; +C 68 ; WX 722 ; N D ; B -8 0 700 653 ; +C 69 ; WX 611 ; N E ; B -1 0 634 653 ; +C 70 ; WX 611 ; N F ; B 8 0 645 653 ; +C 71 ; WX 722 ; N G ; B 52 -18 722 666 ; +C 72 ; WX 722 ; N H ; B -8 0 767 653 ; +C 73 ; WX 333 ; N I ; B -8 0 384 653 ; +C 74 ; WX 444 ; N J ; B -6 -18 491 653 ; +C 75 ; WX 667 ; N K ; B 7 0 722 653 ; +C 76 ; WX 556 ; N L ; B -8 0 559 653 ; +C 77 ; WX 833 ; N M ; B -18 0 873 653 ; +C 78 ; WX 667 ; N N ; B -20 -15 727 653 ; +C 79 ; WX 722 ; N O ; B 60 -18 699 666 ; +C 80 ; WX 611 ; N P ; B 0 0 605 653 ; +C 81 ; WX 722 ; N Q ; B 59 -182 699 666 ; +C 82 ; WX 611 ; N R ; B -13 0 588 653 ; +C 83 ; WX 500 ; N S ; B 17 -18 508 667 ; +C 84 ; WX 556 ; N T ; B 59 0 633 653 ; +C 85 ; WX 722 ; N U ; B 102 -18 765 653 ; +C 86 ; WX 611 ; N V ; B 76 -18 688 653 ; +C 87 ; WX 833 ; N W ; B 71 -18 906 653 ; +C 88 ; WX 611 ; N X ; B -29 0 655 653 ; +C 89 ; WX 556 ; N Y ; B 78 0 633 653 ; +C 90 ; WX 556 ; N Z ; B -6 0 606 653 ; +C 91 ; WX 389 ; N bracketleft ; B 21 -153 391 663 ; +C 92 ; WX 278 ; N backslash ; B -41 -18 319 666 ; +C 93 ; WX 389 ; N bracketright ; B 12 -153 382 663 ; +C 94 ; WX 422 ; N asciicircum ; B 0 301 422 666 ; +C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; +C 145 ; WX 333 ; N quoteleft ; B 171 436 310 666 ; +C 97 ; WX 500 ; N a ; B 17 -11 476 441 ; +C 98 ; WX 500 ; N b ; B 23 -11 473 683 ; +C 99 ; WX 444 ; N c ; B 30 -11 425 441 ; +C 100 ; WX 500 ; N d ; B 15 -13 527 683 ; +C 101 ; WX 444 ; N e ; B 31 -11 412 441 ; +C 102 ; WX 278 ; N f ; B -147 -207 424 678 ; L i fi ; L l fl ; +C 103 ; WX 500 ; N g ; B 8 -206 472 441 ; +C 104 ; WX 500 ; N h ; B 19 -9 478 683 ; +C 105 ; WX 278 ; N i ; B 49 -11 264 654 ; +C 106 ; WX 278 ; N j ; B -124 -207 276 654 ; +C 107 ; WX 444 ; N k ; B 14 -11 461 683 ; +C 108 ; WX 278 ; N l ; B 41 -11 279 683 ; +C 109 ; WX 722 ; N m ; B 12 -9 704 441 ; +C 110 ; WX 500 ; N n ; B 14 -9 474 441 ; +C 111 ; WX 500 ; N o ; B 27 -11 468 441 ; +C 112 ; WX 500 ; N p ; B -75 -205 469 441 ; +C 113 ; WX 500 ; N q ; B 25 -209 483 441 ; +C 114 ; WX 389 ; N r ; B 45 0 412 441 ; +C 115 ; WX 389 ; N s ; B 16 -13 366 442 ; +C 116 ; WX 278 ; N t ; B 37 -11 296 546 ; +C 117 ; WX 500 ; N u ; B 42 -11 475 441 ; +C 118 ; WX 444 ; N v ; B 21 -18 426 441 ; +C 119 ; WX 667 ; N w ; B 16 -18 648 441 ; +C 120 ; WX 444 ; N x ; B -27 -11 447 441 ; +C 121 ; WX 444 ; N y ; B -24 -206 426 441 ; +C 122 ; WX 389 ; N z ; B -2 -81 380 428 ; +C 123 ; WX 400 ; N braceleft ; B 51 -177 407 687 ; +C 124 ; WX 275 ; N bar ; B 105 -217 171 783 ; +C 125 ; WX 400 ; N braceright ; B -7 -177 349 687 ; +C 126 ; WX 541 ; N asciitilde ; B 40 183 502 323 ; +C 161 ; WX 389 ; N exclamdown ; B 59 -205 322 473 ; +C 162 ; WX 500 ; N cent ; B 77 -143 472 560 ; +C 163 ; WX 500 ; N sterling ; B 10 -6 517 670 ; +C -1 ; WX 167 ; N fraction ; B -169 -10 337 676 ; +C 165 ; WX 500 ; N yen ; B 27 0 603 653 ; +C 131 ; WX 500 ; N florin ; B 25 -182 507 682 ; +C 167 ; WX 500 ; N section ; B 53 -162 461 666 ; +C 164 ; WX 500 ; N currency ; B -22 53 522 597 ; +C 39 ; WX 214 ; N quotesingle ; B 132 421 241 666 ; +C 147 ; WX 556 ; N quotedblleft ; B 166 436 514 666 ; +C 171 ; WX 500 ; N guillemotleft ; B 53 37 445 403 ; +C 139 ; WX 333 ; N guilsinglleft ; B 51 37 281 403 ; +C 155 ; WX 333 ; N guilsinglright ; B 52 37 282 403 ; +C -1 ; WX 500 ; N fi ; B -141 -207 481 681 ; +C -1 ; WX 500 ; N fl ; B -141 -204 518 682 ; +C 150 ; WX 500 ; N endash ; B -6 197 505 243 ; +C 134 ; WX 500 ; N dagger ; B 101 -159 488 666 ; +C 135 ; WX 500 ; N daggerdbl ; B 22 -143 491 666 ; +C 183 ; WX 250 ; N periodcentered ; B 70 199 181 310 ; +C 182 ; WX 523 ; N paragraph ; B 55 -123 616 653 ; +C 149 ; WX 350 ; N bullet ; B 40 191 310 461 ; +C 130 ; WX 333 ; N quotesinglbase ; B 44 -129 183 101 ; +C 132 ; WX 556 ; N quotedblbase ; B 57 -129 405 101 ; +C 148 ; WX 556 ; N quotedblright ; B 151 436 499 666 ; +C 187 ; WX 500 ; N guillemotright ; B 55 37 447 403 ; +C 133 ; WX 889 ; N ellipsis ; B 57 -11 762 100 ; +C 137 ; WX 1000 ; N perthousand ; B 25 -19 1010 706 ; +C 191 ; WX 500 ; N questiondown ; B 28 -205 368 471 ; +C 96 ; WX 333 ; N grave ; B 121 492 311 664 ; +C 180 ; WX 333 ; N acute ; B 180 494 403 664 ; +C 136 ; WX 333 ; N circumflex ; B 91 492 385 661 ; +C 152 ; WX 333 ; N tilde ; B 100 517 427 624 ; +C 175 ; WX 333 ; N macron ; B 99 532 411 583 ; +C -1 ; WX 333 ; N breve ; B 117 492 418 650 ; +C -1 ; WX 333 ; N dotaccent ; B 207 548 305 646 ; +C 168 ; WX 333 ; N dieresis ; B 107 548 405 646 ; +C -1 ; WX 333 ; N ring ; B 155 492 355 691 ; +C 184 ; WX 333 ; N cedilla ; B -30 -217 182 0 ; +C -1 ; WX 333 ; N hungarumlaut ; B 93 494 486 664 ; +C -1 ; WX 333 ; N ogonek ; B 20 -169 203 40 ; +C -1 ; WX 333 ; N caron ; B 121 492 426 661 ; +C 151 ; WX 889 ; N emdash ; B -6 197 894 243 ; +C 198 ; WX 889 ; N AE ; B -27 0 911 653 ; +C 170 ; WX 276 ; N ordfeminine ; B 42 406 352 676 ; +C -1 ; WX 556 ; N Lslash ; B -8 0 559 653 ; +C 216 ; WX 722 ; N Oslash ; B 60 -105 699 722 ; +C 140 ; WX 944 ; N OE ; B 49 -8 964 666 ; +C 186 ; WX 310 ; N ordmasculine ; B 67 406 362 676 ; +C 230 ; WX 667 ; N ae ; B 23 -11 640 441 ; +C -1 ; WX 278 ; N dotlessi ; B 49 -11 235 441 ; +C -1 ; WX 278 ; N lslash ; B 41 -11 312 683 ; +C 248 ; WX 500 ; N oslash ; B 28 -135 469 554 ; +C 156 ; WX 667 ; N oe ; B 20 -12 646 441 ; +C 223 ; WX 500 ; N germandbls ; B -168 -207 493 679 ; +C 207 ; WX 333 ; N Idieresis ; B -8 0 435 818 ; +C 233 ; WX 444 ; N eacute ; B 31 -11 459 664 ; +C -1 ; WX 500 ; N abreve ; B 17 -11 502 650 ; +C -1 ; WX 500 ; N uhungarumlaut ; B 42 -11 580 664 ; +C -1 ; WX 444 ; N ecaron ; B 31 -11 482 661 ; +C 159 ; WX 556 ; N Ydieresis ; B 78 0 633 818 ; +C 247 ; WX 675 ; N divide ; B 86 -11 590 517 ; +C 221 ; WX 556 ; N Yacute ; B 78 0 633 876 ; +C 194 ; WX 611 ; N Acircumflex ; B -51 0 564 873 ; +C 225 ; WX 500 ; N aacute ; B 17 -11 487 664 ; +C 219 ; WX 722 ; N Ucircumflex ; B 102 -18 765 873 ; +C 253 ; WX 444 ; N yacute ; B -24 -206 459 664 ; +C -1 ; WX 389 ; N scommaaccent ; B 16 -217 366 442 ; +C 234 ; WX 444 ; N ecircumflex ; B 31 -11 441 661 ; +C -1 ; WX 722 ; N Uring ; B 102 -18 765 883 ; +C 220 ; WX 722 ; N Udieresis ; B 102 -18 765 818 ; +C -1 ; WX 500 ; N aogonek ; B 17 -169 476 441 ; +C 218 ; WX 722 ; N Uacute ; B 102 -18 765 876 ; +C -1 ; WX 500 ; N uogonek ; B 42 -169 477 441 ; +C 203 ; WX 611 ; N Edieresis ; B -1 0 634 818 ; +C -1 ; WX 722 ; N Dcroat ; B -8 0 700 653 ; +C -1 ; WX 250 ; N commaaccent ; B 8 -217 133 -50 ; +C 169 ; WX 760 ; N copyright ; B 41 -18 719 666 ; +C -1 ; WX 611 ; N Emacron ; B -1 0 634 795 ; +C -1 ; WX 444 ; N ccaron ; B 30 -11 482 661 ; +C 229 ; WX 500 ; N aring ; B 17 -11 476 691 ; +C -1 ; WX 667 ; N Ncommaaccent ; B -20 -187 727 653 ; +C -1 ; WX 278 ; N lacute ; B 41 -11 395 876 ; +C 224 ; WX 500 ; N agrave ; B 17 -11 476 664 ; +C -1 ; WX 556 ; N Tcommaaccent ; B 59 -217 633 653 ; +C -1 ; WX 667 ; N Cacute ; B 66 -18 690 876 ; +C 227 ; WX 500 ; N atilde ; B 17 -11 511 624 ; +C -1 ; WX 611 ; N Edotaccent ; B -1 0 634 818 ; +C 154 ; WX 389 ; N scaron ; B 16 -13 454 661 ; +C -1 ; WX 389 ; N scedilla ; B 16 -217 366 442 ; +C 237 ; WX 278 ; N iacute ; B 49 -11 355 664 ; +C -1 ; WX 471 ; N lozenge ; B 13 0 459 724 ; +C -1 ; WX 611 ; N Rcaron ; B -13 0 588 873 ; +C -1 ; WX 722 ; N Gcommaaccent ; B 52 -217 722 666 ; +C 251 ; WX 500 ; N ucircumflex ; B 42 -11 475 661 ; +C 226 ; WX 500 ; N acircumflex ; B 17 -11 476 661 ; +C -1 ; WX 611 ; N Amacron ; B -51 0 564 795 ; +C -1 ; WX 389 ; N rcaron ; B 45 0 434 661 ; +C 231 ; WX 444 ; N ccedilla ; B 30 -217 425 441 ; +C -1 ; WX 556 ; N Zdotaccent ; B -6 0 606 818 ; +C 222 ; WX 611 ; N Thorn ; B 0 0 569 653 ; +C -1 ; WX 722 ; N Omacron ; B 60 -18 699 795 ; +C -1 ; WX 611 ; N Racute ; B -13 0 588 876 ; +C -1 ; WX 500 ; N Sacute ; B 17 -18 508 876 ; +C -1 ; WX 544 ; N dcaron ; B 15 -13 658 683 ; +C -1 ; WX 722 ; N Umacron ; B 102 -18 765 795 ; +C -1 ; WX 500 ; N uring ; B 42 -11 475 691 ; +C 179 ; WX 300 ; N threesuperior ; B 43 268 339 676 ; +C 210 ; WX 722 ; N Ograve ; B 60 -18 699 876 ; +C 192 ; WX 611 ; N Agrave ; B -51 0 564 876 ; +C -1 ; WX 611 ; N Abreve ; B -51 0 564 862 ; +C 215 ; WX 675 ; N multiply ; B 93 8 582 497 ; +C 250 ; WX 500 ; N uacute ; B 42 -11 477 664 ; +C -1 ; WX 556 ; N Tcaron ; B 59 0 633 873 ; +C -1 ; WX 476 ; N partialdiff ; B 17 -38 459 710 ; +C 255 ; WX 444 ; N ydieresis ; B -24 -206 441 606 ; +C -1 ; WX 667 ; N Nacute ; B -20 -15 727 876 ; +C 238 ; WX 278 ; N icircumflex ; B 33 -11 327 661 ; +C 202 ; WX 611 ; N Ecircumflex ; B -1 0 634 873 ; +C 228 ; WX 500 ; N adieresis ; B 17 -11 489 606 ; +C 235 ; WX 444 ; N edieresis ; B 31 -11 451 606 ; +C -1 ; WX 444 ; N cacute ; B 30 -11 459 664 ; +C -1 ; WX 500 ; N nacute ; B 14 -9 477 664 ; +C -1 ; WX 500 ; N umacron ; B 42 -11 485 583 ; +C -1 ; WX 667 ; N Ncaron ; B -20 -15 727 873 ; +C 205 ; WX 333 ; N Iacute ; B -8 0 433 876 ; +C 177 ; WX 675 ; N plusminus ; B 86 0 590 506 ; +C 166 ; WX 275 ; N brokenbar ; B 105 -142 171 708 ; +C 174 ; WX 760 ; N registered ; B 41 -18 719 666 ; +C -1 ; WX 722 ; N Gbreve ; B 52 -18 722 862 ; +C -1 ; WX 333 ; N Idotaccent ; B -8 0 384 818 ; +C -1 ; WX 600 ; N summation ; B 15 -10 585 706 ; +C 200 ; WX 611 ; N Egrave ; B -1 0 634 876 ; +C -1 ; WX 389 ; N racute ; B 45 0 431 664 ; +C -1 ; WX 500 ; N omacron ; B 27 -11 495 583 ; +C -1 ; WX 556 ; N Zacute ; B -6 0 606 876 ; +C 142 ; WX 556 ; N Zcaron ; B -6 0 606 873 ; +C -1 ; WX 549 ; N greaterequal ; B 26 0 523 658 ; +C 208 ; WX 722 ; N Eth ; B -8 0 700 653 ; +C 199 ; WX 667 ; N Ccedilla ; B 66 -217 689 666 ; +C -1 ; WX 278 ; N lcommaaccent ; B 22 -217 279 683 ; +C -1 ; WX 300 ; N tcaron ; B 37 -11 407 681 ; +C -1 ; WX 444 ; N eogonek ; B 31 -169 412 441 ; +C -1 ; WX 722 ; N Uogonek ; B 102 -184 765 653 ; +C 193 ; WX 611 ; N Aacute ; B -51 0 564 876 ; +C 196 ; WX 611 ; N Adieresis ; B -51 0 564 818 ; +C 232 ; WX 444 ; N egrave ; B 31 -11 412 664 ; +C -1 ; WX 389 ; N zacute ; B -2 -81 431 664 ; +C -1 ; WX 278 ; N iogonek ; B 49 -169 264 654 ; +C 211 ; WX 722 ; N Oacute ; B 60 -18 699 876 ; +C 243 ; WX 500 ; N oacute ; B 27 -11 487 664 ; +C -1 ; WX 500 ; N amacron ; B 17 -11 495 583 ; +C -1 ; WX 389 ; N sacute ; B 16 -13 431 664 ; +C 239 ; WX 278 ; N idieresis ; B 49 -11 352 606 ; +C 212 ; WX 722 ; N Ocircumflex ; B 60 -18 699 873 ; +C 217 ; WX 722 ; N Ugrave ; B 102 -18 765 876 ; +C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ; +C 254 ; WX 500 ; N thorn ; B -75 -205 469 683 ; +C 178 ; WX 300 ; N twosuperior ; B 33 271 324 676 ; +C 214 ; WX 722 ; N Odieresis ; B 60 -18 699 818 ; +C 181 ; WX 500 ; N mu ; B -30 -209 497 428 ; +C 236 ; WX 278 ; N igrave ; B 49 -11 284 664 ; +C -1 ; WX 500 ; N ohungarumlaut ; B 27 -11 590 664 ; +C -1 ; WX 611 ; N Eogonek ; B -1 -169 634 653 ; +C -1 ; WX 500 ; N dcroat ; B 15 -13 572 683 ; +C 190 ; WX 750 ; N threequarters ; B 23 -10 736 676 ; +C -1 ; WX 500 ; N Scedilla ; B 17 -217 508 667 ; +C -1 ; WX 300 ; N lcaron ; B 41 -11 407 683 ; +C -1 ; WX 667 ; N Kcommaaccent ; B 7 -217 722 653 ; +C -1 ; WX 556 ; N Lacute ; B -8 0 559 876 ; +C 153 ; WX 980 ; N trademark ; B 30 247 957 653 ; +C -1 ; WX 444 ; N edotaccent ; B 31 -11 412 606 ; +C 204 ; WX 333 ; N Igrave ; B -8 0 384 876 ; +C -1 ; WX 333 ; N Imacron ; B -8 0 441 795 ; +C -1 ; WX 611 ; N Lcaron ; B -8 0 586 653 ; +C 189 ; WX 750 ; N onehalf ; B 34 -10 749 676 ; +C -1 ; WX 549 ; N lessequal ; B 26 0 523 658 ; +C 244 ; WX 500 ; N ocircumflex ; B 27 -11 468 661 ; +C 241 ; WX 500 ; N ntilde ; B 14 -9 476 624 ; +C -1 ; WX 722 ; N Uhungarumlaut ; B 102 -18 765 876 ; +C 201 ; WX 611 ; N Eacute ; B -1 0 634 876 ; +C -1 ; WX 444 ; N emacron ; B 31 -11 457 583 ; +C -1 ; WX 500 ; N gbreve ; B 8 -206 487 650 ; +C 188 ; WX 750 ; N onequarter ; B 33 -10 736 676 ; +C 138 ; WX 500 ; N Scaron ; B 17 -18 520 873 ; +C -1 ; WX 500 ; N Scommaaccent ; B 17 -217 508 667 ; +C -1 ; WX 722 ; N Ohungarumlaut ; B 60 -18 699 876 ; +C 176 ; WX 400 ; N degree ; B 101 390 387 676 ; +C 242 ; WX 500 ; N ograve ; B 27 -11 468 664 ; +C -1 ; WX 667 ; N Ccaron ; B 66 -18 689 873 ; +C 249 ; WX 500 ; N ugrave ; B 42 -11 475 664 ; +C -1 ; WX 453 ; N radical ; B 2 -60 452 768 ; +C -1 ; WX 722 ; N Dcaron ; B -8 0 700 873 ; +C -1 ; WX 389 ; N rcommaaccent ; B -3 -217 412 441 ; +C 209 ; WX 667 ; N Ntilde ; B -20 -15 727 836 ; +C 245 ; WX 500 ; N otilde ; B 27 -11 496 624 ; +C -1 ; WX 611 ; N Rcommaaccent ; B -13 -187 588 653 ; +C -1 ; WX 556 ; N Lcommaaccent ; B -8 -217 559 653 ; +C 195 ; WX 611 ; N Atilde ; B -51 0 566 836 ; +C -1 ; WX 611 ; N Aogonek ; B -51 -169 566 668 ; +C 197 ; WX 611 ; N Aring ; B -51 0 564 883 ; +C 213 ; WX 722 ; N Otilde ; B 60 -18 699 836 ; +C -1 ; WX 389 ; N zdotaccent ; B -2 -81 380 606 ; +C -1 ; WX 611 ; N Ecaron ; B -1 0 634 873 ; +C -1 ; WX 333 ; N Iogonek ; B -8 -169 384 653 ; +C -1 ; WX 444 ; N kcommaaccent ; B 14 -187 461 683 ; +C -1 ; WX 675 ; N minus ; B 86 220 590 286 ; +C 206 ; WX 333 ; N Icircumflex ; B -8 0 425 873 ; +C -1 ; WX 500 ; N ncaron ; B 14 -9 510 661 ; +C -1 ; WX 278 ; N tcommaaccent ; B 2 -217 296 546 ; +C 172 ; WX 675 ; N logicalnot ; B 86 108 590 386 ; +C 246 ; WX 500 ; N odieresis ; B 27 -11 489 606 ; +C 252 ; WX 500 ; N udieresis ; B 42 -11 479 606 ; +C -1 ; WX 549 ; N notequal ; B 12 -29 537 541 ; +C -1 ; WX 500 ; N gcommaaccent ; B 8 -206 472 706 ; +C 240 ; WX 500 ; N eth ; B 27 -11 482 683 ; +C 158 ; WX 389 ; N zcaron ; B -2 -81 434 661 ; +C -1 ; WX 500 ; N ncommaaccent ; B 14 -187 474 441 ; +C 185 ; WX 300 ; N onesuperior ; B 43 271 284 676 ; +C -1 ; WX 278 ; N imacron ; B 46 -11 311 583 ; +C 128 ; WX 500 ; N Euro ; B 0 0 0 0 ; +EndCharMetrics +StartKernData +StartKernPairs 2321 +KPX A C -30 +KPX A Cacute -30 +KPX A Ccaron -30 +KPX A Ccedilla -30 +KPX A G -35 +KPX A Gbreve -35 +KPX A Gcommaaccent -35 +KPX A O -40 +KPX A Oacute -40 +KPX A Ocircumflex -40 +KPX A Odieresis -40 +KPX A Ograve -40 +KPX A Ohungarumlaut -40 +KPX A Omacron -40 +KPX A Oslash -40 +KPX A Otilde -40 +KPX A Q -40 +KPX A T -37 +KPX A Tcaron -37 +KPX A Tcommaaccent -37 +KPX A U -50 +KPX A Uacute -50 +KPX A Ucircumflex -50 +KPX A Udieresis -50 +KPX A Ugrave -50 +KPX A Uhungarumlaut -50 +KPX A Umacron -50 +KPX A Uogonek -50 +KPX A Uring -50 +KPX A V -105 +KPX A W -95 +KPX A Y -55 +KPX A Yacute -55 +KPX A Ydieresis -55 +KPX A quoteright -37 +KPX A u -20 +KPX A uacute -20 +KPX A ucircumflex -20 +KPX A udieresis -20 +KPX A ugrave -20 +KPX A uhungarumlaut -20 +KPX A umacron -20 +KPX A uogonek -20 +KPX A uring -20 +KPX A v -55 +KPX A w -55 +KPX A y -55 +KPX A yacute -55 +KPX A ydieresis -55 +KPX Aacute C -30 +KPX Aacute Cacute -30 +KPX Aacute Ccaron -30 +KPX Aacute Ccedilla -30 +KPX Aacute G -35 +KPX Aacute Gbreve -35 +KPX Aacute Gcommaaccent -35 +KPX Aacute O -40 +KPX Aacute Oacute -40 +KPX Aacute Ocircumflex -40 +KPX Aacute Odieresis -40 +KPX Aacute Ograve -40 +KPX Aacute Ohungarumlaut -40 +KPX Aacute Omacron -40 +KPX Aacute Oslash -40 +KPX Aacute Otilde -40 +KPX Aacute Q -40 +KPX Aacute T -37 +KPX Aacute Tcaron -37 +KPX Aacute Tcommaaccent -37 +KPX Aacute U -50 +KPX Aacute Uacute -50 +KPX Aacute Ucircumflex -50 +KPX Aacute Udieresis -50 +KPX Aacute Ugrave -50 +KPX Aacute Uhungarumlaut -50 +KPX Aacute Umacron -50 +KPX Aacute Uogonek -50 +KPX Aacute Uring -50 +KPX Aacute V -105 +KPX Aacute W -95 +KPX Aacute Y -55 +KPX Aacute Yacute -55 +KPX Aacute Ydieresis -55 +KPX Aacute quoteright -37 +KPX Aacute u -20 +KPX Aacute uacute -20 +KPX Aacute ucircumflex -20 +KPX Aacute udieresis -20 +KPX Aacute ugrave -20 +KPX Aacute uhungarumlaut -20 +KPX Aacute umacron -20 +KPX Aacute uogonek -20 +KPX Aacute uring -20 +KPX Aacute v -55 +KPX Aacute w -55 +KPX Aacute y -55 +KPX Aacute yacute -55 +KPX Aacute ydieresis -55 +KPX Abreve C -30 +KPX Abreve Cacute -30 +KPX Abreve Ccaron -30 +KPX Abreve Ccedilla -30 +KPX Abreve G -35 +KPX Abreve Gbreve -35 +KPX Abreve Gcommaaccent -35 +KPX Abreve O -40 +KPX Abreve Oacute -40 +KPX Abreve Ocircumflex -40 +KPX Abreve Odieresis -40 +KPX Abreve Ograve -40 +KPX Abreve Ohungarumlaut -40 +KPX Abreve Omacron -40 +KPX Abreve Oslash -40 +KPX Abreve Otilde -40 +KPX Abreve Q -40 +KPX Abreve T -37 +KPX Abreve Tcaron -37 +KPX Abreve Tcommaaccent -37 +KPX Abreve U -50 +KPX Abreve Uacute -50 +KPX Abreve Ucircumflex -50 +KPX Abreve Udieresis -50 +KPX Abreve Ugrave -50 +KPX Abreve Uhungarumlaut -50 +KPX Abreve Umacron -50 +KPX Abreve Uogonek -50 +KPX Abreve Uring -50 +KPX Abreve V -105 +KPX Abreve W -95 +KPX Abreve Y -55 +KPX Abreve Yacute -55 +KPX Abreve Ydieresis -55 +KPX Abreve quoteright -37 +KPX Abreve u -20 +KPX Abreve uacute -20 +KPX Abreve ucircumflex -20 +KPX Abreve udieresis -20 +KPX Abreve ugrave -20 +KPX Abreve uhungarumlaut -20 +KPX Abreve umacron -20 +KPX Abreve uogonek -20 +KPX Abreve uring -20 +KPX Abreve v -55 +KPX Abreve w -55 +KPX Abreve y -55 +KPX Abreve yacute -55 +KPX Abreve ydieresis -55 +KPX Acircumflex C -30 +KPX Acircumflex Cacute -30 +KPX Acircumflex Ccaron -30 +KPX Acircumflex Ccedilla -30 +KPX Acircumflex G -35 +KPX Acircumflex Gbreve -35 +KPX Acircumflex Gcommaaccent -35 +KPX Acircumflex O -40 +KPX Acircumflex Oacute -40 +KPX Acircumflex Ocircumflex -40 +KPX Acircumflex Odieresis -40 +KPX Acircumflex Ograve -40 +KPX Acircumflex Ohungarumlaut -40 +KPX Acircumflex Omacron -40 +KPX Acircumflex Oslash -40 +KPX Acircumflex Otilde -40 +KPX Acircumflex Q -40 +KPX Acircumflex T -37 +KPX Acircumflex Tcaron -37 +KPX Acircumflex Tcommaaccent -37 +KPX Acircumflex U -50 +KPX Acircumflex Uacute -50 +KPX Acircumflex Ucircumflex -50 +KPX Acircumflex Udieresis -50 +KPX Acircumflex Ugrave -50 +KPX Acircumflex Uhungarumlaut -50 +KPX Acircumflex Umacron -50 +KPX Acircumflex Uogonek -50 +KPX Acircumflex Uring -50 +KPX Acircumflex V -105 +KPX Acircumflex W -95 +KPX Acircumflex Y -55 +KPX Acircumflex Yacute -55 +KPX Acircumflex Ydieresis -55 +KPX Acircumflex quoteright -37 +KPX Acircumflex u -20 +KPX Acircumflex uacute -20 +KPX Acircumflex ucircumflex -20 +KPX Acircumflex udieresis -20 +KPX Acircumflex ugrave -20 +KPX Acircumflex uhungarumlaut -20 +KPX Acircumflex umacron -20 +KPX Acircumflex uogonek -20 +KPX Acircumflex uring -20 +KPX Acircumflex v -55 +KPX Acircumflex w -55 +KPX Acircumflex y -55 +KPX Acircumflex yacute -55 +KPX Acircumflex ydieresis -55 +KPX Adieresis C -30 +KPX Adieresis Cacute -30 +KPX Adieresis Ccaron -30 +KPX Adieresis Ccedilla -30 +KPX Adieresis G -35 +KPX Adieresis Gbreve -35 +KPX Adieresis Gcommaaccent -35 +KPX Adieresis O -40 +KPX Adieresis Oacute -40 +KPX Adieresis Ocircumflex -40 +KPX Adieresis Odieresis -40 +KPX Adieresis Ograve -40 +KPX Adieresis Ohungarumlaut -40 +KPX Adieresis Omacron -40 +KPX Adieresis Oslash -40 +KPX Adieresis Otilde -40 +KPX Adieresis Q -40 +KPX Adieresis T -37 +KPX Adieresis Tcaron -37 +KPX Adieresis Tcommaaccent -37 +KPX Adieresis U -50 +KPX Adieresis Uacute -50 +KPX Adieresis Ucircumflex -50 +KPX Adieresis Udieresis -50 +KPX Adieresis Ugrave -50 +KPX Adieresis Uhungarumlaut -50 +KPX Adieresis Umacron -50 +KPX Adieresis Uogonek -50 +KPX Adieresis Uring -50 +KPX Adieresis V -105 +KPX Adieresis W -95 +KPX Adieresis Y -55 +KPX Adieresis Yacute -55 +KPX Adieresis Ydieresis -55 +KPX Adieresis quoteright -37 +KPX Adieresis u -20 +KPX Adieresis uacute -20 +KPX Adieresis ucircumflex -20 +KPX Adieresis udieresis -20 +KPX Adieresis ugrave -20 +KPX Adieresis uhungarumlaut -20 +KPX Adieresis umacron -20 +KPX Adieresis uogonek -20 +KPX Adieresis uring -20 +KPX Adieresis v -55 +KPX Adieresis w -55 +KPX Adieresis y -55 +KPX Adieresis yacute -55 +KPX Adieresis ydieresis -55 +KPX Agrave C -30 +KPX Agrave Cacute -30 +KPX Agrave Ccaron -30 +KPX Agrave Ccedilla -30 +KPX Agrave G -35 +KPX Agrave Gbreve -35 +KPX Agrave Gcommaaccent -35 +KPX Agrave O -40 +KPX Agrave Oacute -40 +KPX Agrave Ocircumflex -40 +KPX Agrave Odieresis -40 +KPX Agrave Ograve -40 +KPX Agrave Ohungarumlaut -40 +KPX Agrave Omacron -40 +KPX Agrave Oslash -40 +KPX Agrave Otilde -40 +KPX Agrave Q -40 +KPX Agrave T -37 +KPX Agrave Tcaron -37 +KPX Agrave Tcommaaccent -37 +KPX Agrave U -50 +KPX Agrave Uacute -50 +KPX Agrave Ucircumflex -50 +KPX Agrave Udieresis -50 +KPX Agrave Ugrave -50 +KPX Agrave Uhungarumlaut -50 +KPX Agrave Umacron -50 +KPX Agrave Uogonek -50 +KPX Agrave Uring -50 +KPX Agrave V -105 +KPX Agrave W -95 +KPX Agrave Y -55 +KPX Agrave Yacute -55 +KPX Agrave Ydieresis -55 +KPX Agrave quoteright -37 +KPX Agrave u -20 +KPX Agrave uacute -20 +KPX Agrave ucircumflex -20 +KPX Agrave udieresis -20 +KPX Agrave ugrave -20 +KPX Agrave uhungarumlaut -20 +KPX Agrave umacron -20 +KPX Agrave uogonek -20 +KPX Agrave uring -20 +KPX Agrave v -55 +KPX Agrave w -55 +KPX Agrave y -55 +KPX Agrave yacute -55 +KPX Agrave ydieresis -55 +KPX Amacron C -30 +KPX Amacron Cacute -30 +KPX Amacron Ccaron -30 +KPX Amacron Ccedilla -30 +KPX Amacron G -35 +KPX Amacron Gbreve -35 +KPX Amacron Gcommaaccent -35 +KPX Amacron O -40 +KPX Amacron Oacute -40 +KPX Amacron Ocircumflex -40 +KPX Amacron Odieresis -40 +KPX Amacron Ograve -40 +KPX Amacron Ohungarumlaut -40 +KPX Amacron Omacron -40 +KPX Amacron Oslash -40 +KPX Amacron Otilde -40 +KPX Amacron Q -40 +KPX Amacron T -37 +KPX Amacron Tcaron -37 +KPX Amacron Tcommaaccent -37 +KPX Amacron U -50 +KPX Amacron Uacute -50 +KPX Amacron Ucircumflex -50 +KPX Amacron Udieresis -50 +KPX Amacron Ugrave -50 +KPX Amacron Uhungarumlaut -50 +KPX Amacron Umacron -50 +KPX Amacron Uogonek -50 +KPX Amacron Uring -50 +KPX Amacron V -105 +KPX Amacron W -95 +KPX Amacron Y -55 +KPX Amacron Yacute -55 +KPX Amacron Ydieresis -55 +KPX Amacron quoteright -37 +KPX Amacron u -20 +KPX Amacron uacute -20 +KPX Amacron ucircumflex -20 +KPX Amacron udieresis -20 +KPX Amacron ugrave -20 +KPX Amacron uhungarumlaut -20 +KPX Amacron umacron -20 +KPX Amacron uogonek -20 +KPX Amacron uring -20 +KPX Amacron v -55 +KPX Amacron w -55 +KPX Amacron y -55 +KPX Amacron yacute -55 +KPX Amacron ydieresis -55 +KPX Aogonek C -30 +KPX Aogonek Cacute -30 +KPX Aogonek Ccaron -30 +KPX Aogonek Ccedilla -30 +KPX Aogonek G -35 +KPX Aogonek Gbreve -35 +KPX Aogonek Gcommaaccent -35 +KPX Aogonek O -40 +KPX Aogonek Oacute -40 +KPX Aogonek Ocircumflex -40 +KPX Aogonek Odieresis -40 +KPX Aogonek Ograve -40 +KPX Aogonek Ohungarumlaut -40 +KPX Aogonek Omacron -40 +KPX Aogonek Oslash -40 +KPX Aogonek Otilde -40 +KPX Aogonek Q -40 +KPX Aogonek T -37 +KPX Aogonek Tcaron -37 +KPX Aogonek Tcommaaccent -37 +KPX Aogonek U -50 +KPX Aogonek Uacute -50 +KPX Aogonek Ucircumflex -50 +KPX Aogonek Udieresis -50 +KPX Aogonek Ugrave -50 +KPX Aogonek Uhungarumlaut -50 +KPX Aogonek Umacron -50 +KPX Aogonek Uogonek -50 +KPX Aogonek Uring -50 +KPX Aogonek V -105 +KPX Aogonek W -95 +KPX Aogonek Y -55 +KPX Aogonek Yacute -55 +KPX Aogonek Ydieresis -55 +KPX Aogonek quoteright -37 +KPX Aogonek u -20 +KPX Aogonek uacute -20 +KPX Aogonek ucircumflex -20 +KPX Aogonek udieresis -20 +KPX Aogonek ugrave -20 +KPX Aogonek uhungarumlaut -20 +KPX Aogonek umacron -20 +KPX Aogonek uogonek -20 +KPX Aogonek uring -20 +KPX Aogonek v -55 +KPX Aogonek w -55 +KPX Aogonek y -55 +KPX Aogonek yacute -55 +KPX Aogonek ydieresis -55 +KPX Aring C -30 +KPX Aring Cacute -30 +KPX Aring Ccaron -30 +KPX Aring Ccedilla -30 +KPX Aring G -35 +KPX Aring Gbreve -35 +KPX Aring Gcommaaccent -35 +KPX Aring O -40 +KPX Aring Oacute -40 +KPX Aring Ocircumflex -40 +KPX Aring Odieresis -40 +KPX Aring Ograve -40 +KPX Aring Ohungarumlaut -40 +KPX Aring Omacron -40 +KPX Aring Oslash -40 +KPX Aring Otilde -40 +KPX Aring Q -40 +KPX Aring T -37 +KPX Aring Tcaron -37 +KPX Aring Tcommaaccent -37 +KPX Aring U -50 +KPX Aring Uacute -50 +KPX Aring Ucircumflex -50 +KPX Aring Udieresis -50 +KPX Aring Ugrave -50 +KPX Aring Uhungarumlaut -50 +KPX Aring Umacron -50 +KPX Aring Uogonek -50 +KPX Aring Uring -50 +KPX Aring V -105 +KPX Aring W -95 +KPX Aring Y -55 +KPX Aring Yacute -55 +KPX Aring Ydieresis -55 +KPX Aring quoteright -37 +KPX Aring u -20 +KPX Aring uacute -20 +KPX Aring ucircumflex -20 +KPX Aring udieresis -20 +KPX Aring ugrave -20 +KPX Aring uhungarumlaut -20 +KPX Aring umacron -20 +KPX Aring uogonek -20 +KPX Aring uring -20 +KPX Aring v -55 +KPX Aring w -55 +KPX Aring y -55 +KPX Aring yacute -55 +KPX Aring ydieresis -55 +KPX Atilde C -30 +KPX Atilde Cacute -30 +KPX Atilde Ccaron -30 +KPX Atilde Ccedilla -30 +KPX Atilde G -35 +KPX Atilde Gbreve -35 +KPX Atilde Gcommaaccent -35 +KPX Atilde O -40 +KPX Atilde Oacute -40 +KPX Atilde Ocircumflex -40 +KPX Atilde Odieresis -40 +KPX Atilde Ograve -40 +KPX Atilde Ohungarumlaut -40 +KPX Atilde Omacron -40 +KPX Atilde Oslash -40 +KPX Atilde Otilde -40 +KPX Atilde Q -40 +KPX Atilde T -37 +KPX Atilde Tcaron -37 +KPX Atilde Tcommaaccent -37 +KPX Atilde U -50 +KPX Atilde Uacute -50 +KPX Atilde Ucircumflex -50 +KPX Atilde Udieresis -50 +KPX Atilde Ugrave -50 +KPX Atilde Uhungarumlaut -50 +KPX Atilde Umacron -50 +KPX Atilde Uogonek -50 +KPX Atilde Uring -50 +KPX Atilde V -105 +KPX Atilde W -95 +KPX Atilde Y -55 +KPX Atilde Yacute -55 +KPX Atilde Ydieresis -55 +KPX Atilde quoteright -37 +KPX Atilde u -20 +KPX Atilde uacute -20 +KPX Atilde ucircumflex -20 +KPX Atilde udieresis -20 +KPX Atilde ugrave -20 +KPX Atilde uhungarumlaut -20 +KPX Atilde umacron -20 +KPX Atilde uogonek -20 +KPX Atilde uring -20 +KPX Atilde v -55 +KPX Atilde w -55 +KPX Atilde y -55 +KPX Atilde yacute -55 +KPX Atilde ydieresis -55 +KPX B A -25 +KPX B Aacute -25 +KPX B Abreve -25 +KPX B Acircumflex -25 +KPX B Adieresis -25 +KPX B Agrave -25 +KPX B Amacron -25 +KPX B Aogonek -25 +KPX B Aring -25 +KPX B Atilde -25 +KPX B U -10 +KPX B Uacute -10 +KPX B Ucircumflex -10 +KPX B Udieresis -10 +KPX B Ugrave -10 +KPX B Uhungarumlaut -10 +KPX B Umacron -10 +KPX B Uogonek -10 +KPX B Uring -10 +KPX D A -35 +KPX D Aacute -35 +KPX D Abreve -35 +KPX D Acircumflex -35 +KPX D Adieresis -35 +KPX D Agrave -35 +KPX D Amacron -35 +KPX D Aogonek -35 +KPX D Aring -35 +KPX D Atilde -35 +KPX D V -40 +KPX D W -40 +KPX D Y -40 +KPX D Yacute -40 +KPX D Ydieresis -40 +KPX Dcaron A -35 +KPX Dcaron Aacute -35 +KPX Dcaron Abreve -35 +KPX Dcaron Acircumflex -35 +KPX Dcaron Adieresis -35 +KPX Dcaron Agrave -35 +KPX Dcaron Amacron -35 +KPX Dcaron Aogonek -35 +KPX Dcaron Aring -35 +KPX Dcaron Atilde -35 +KPX Dcaron V -40 +KPX Dcaron W -40 +KPX Dcaron Y -40 +KPX Dcaron Yacute -40 +KPX Dcaron Ydieresis -40 +KPX Dcroat A -35 +KPX Dcroat Aacute -35 +KPX Dcroat Abreve -35 +KPX Dcroat Acircumflex -35 +KPX Dcroat Adieresis -35 +KPX Dcroat Agrave -35 +KPX Dcroat Amacron -35 +KPX Dcroat Aogonek -35 +KPX Dcroat Aring -35 +KPX Dcroat Atilde -35 +KPX Dcroat V -40 +KPX Dcroat W -40 +KPX Dcroat Y -40 +KPX Dcroat Yacute -40 +KPX Dcroat Ydieresis -40 +KPX F A -115 +KPX F Aacute -115 +KPX F Abreve -115 +KPX F Acircumflex -115 +KPX F Adieresis -115 +KPX F Agrave -115 +KPX F Amacron -115 +KPX F Aogonek -115 +KPX F Aring -115 +KPX F Atilde -115 +KPX F a -75 +KPX F aacute -75 +KPX F abreve -75 +KPX F acircumflex -75 +KPX F adieresis -75 +KPX F agrave -75 +KPX F amacron -75 +KPX F aogonek -75 +KPX F aring -75 +KPX F atilde -75 +KPX F comma -135 +KPX F e -75 +KPX F eacute -75 +KPX F ecaron -75 +KPX F ecircumflex -75 +KPX F edieresis -75 +KPX F edotaccent -75 +KPX F egrave -75 +KPX F emacron -75 +KPX F eogonek -75 +KPX F i -45 +KPX F iacute -45 +KPX F icircumflex -45 +KPX F idieresis -45 +KPX F igrave -45 +KPX F imacron -45 +KPX F iogonek -45 +KPX F o -105 +KPX F oacute -105 +KPX F ocircumflex -105 +KPX F odieresis -105 +KPX F ograve -105 +KPX F ohungarumlaut -105 +KPX F omacron -105 +KPX F oslash -105 +KPX F otilde -105 +KPX F period -135 +KPX F r -55 +KPX F racute -55 +KPX F rcaron -55 +KPX F rcommaaccent -55 +KPX J A -40 +KPX J Aacute -40 +KPX J Abreve -40 +KPX J Acircumflex -40 +KPX J Adieresis -40 +KPX J Agrave -40 +KPX J Amacron -40 +KPX J Aogonek -40 +KPX J Aring -40 +KPX J Atilde -40 +KPX J a -35 +KPX J aacute -35 +KPX J abreve -35 +KPX J acircumflex -35 +KPX J adieresis -35 +KPX J agrave -35 +KPX J amacron -35 +KPX J aogonek -35 +KPX J aring -35 +KPX J atilde -35 +KPX J comma -25 +KPX J e -25 +KPX J eacute -25 +KPX J ecaron -25 +KPX J ecircumflex -25 +KPX J edieresis -25 +KPX J edotaccent -25 +KPX J egrave -25 +KPX J emacron -25 +KPX J eogonek -25 +KPX J o -25 +KPX J oacute -25 +KPX J ocircumflex -25 +KPX J odieresis -25 +KPX J ograve -25 +KPX J ohungarumlaut -25 +KPX J omacron -25 +KPX J oslash -25 +KPX J otilde -25 +KPX J period -25 +KPX J u -35 +KPX J uacute -35 +KPX J ucircumflex -35 +KPX J udieresis -35 +KPX J ugrave -35 +KPX J uhungarumlaut -35 +KPX J umacron -35 +KPX J uogonek -35 +KPX J uring -35 +KPX K O -50 +KPX K Oacute -50 +KPX K Ocircumflex -50 +KPX K Odieresis -50 +KPX K Ograve -50 +KPX K Ohungarumlaut -50 +KPX K Omacron -50 +KPX K Oslash -50 +KPX K Otilde -50 +KPX K e -35 +KPX K eacute -35 +KPX K ecaron -35 +KPX K ecircumflex -35 +KPX K edieresis -35 +KPX K edotaccent -35 +KPX K egrave -35 +KPX K emacron -35 +KPX K eogonek -35 +KPX K o -40 +KPX K oacute -40 +KPX K ocircumflex -40 +KPX K odieresis -40 +KPX K ograve -40 +KPX K ohungarumlaut -40 +KPX K omacron -40 +KPX K oslash -40 +KPX K otilde -40 +KPX K u -40 +KPX K uacute -40 +KPX K ucircumflex -40 +KPX K udieresis -40 +KPX K ugrave -40 +KPX K uhungarumlaut -40 +KPX K umacron -40 +KPX K uogonek -40 +KPX K uring -40 +KPX K y -40 +KPX K yacute -40 +KPX K ydieresis -40 +KPX Kcommaaccent O -50 +KPX Kcommaaccent Oacute -50 +KPX Kcommaaccent Ocircumflex -50 +KPX Kcommaaccent Odieresis -50 +KPX Kcommaaccent Ograve -50 +KPX Kcommaaccent Ohungarumlaut -50 +KPX Kcommaaccent Omacron -50 +KPX Kcommaaccent Oslash -50 +KPX Kcommaaccent Otilde -50 +KPX Kcommaaccent e -35 +KPX Kcommaaccent eacute -35 +KPX Kcommaaccent ecaron -35 +KPX Kcommaaccent ecircumflex -35 +KPX Kcommaaccent edieresis -35 +KPX Kcommaaccent edotaccent -35 +KPX Kcommaaccent egrave -35 +KPX Kcommaaccent emacron -35 +KPX Kcommaaccent eogonek -35 +KPX Kcommaaccent o -40 +KPX Kcommaaccent oacute -40 +KPX Kcommaaccent ocircumflex -40 +KPX Kcommaaccent odieresis -40 +KPX Kcommaaccent ograve -40 +KPX Kcommaaccent ohungarumlaut -40 +KPX Kcommaaccent omacron -40 +KPX Kcommaaccent oslash -40 +KPX Kcommaaccent otilde -40 +KPX Kcommaaccent u -40 +KPX Kcommaaccent uacute -40 +KPX Kcommaaccent ucircumflex -40 +KPX Kcommaaccent udieresis -40 +KPX Kcommaaccent ugrave -40 +KPX Kcommaaccent uhungarumlaut -40 +KPX Kcommaaccent umacron -40 +KPX Kcommaaccent uogonek -40 +KPX Kcommaaccent uring -40 +KPX Kcommaaccent y -40 +KPX Kcommaaccent yacute -40 +KPX Kcommaaccent ydieresis -40 +KPX L T -20 +KPX L Tcaron -20 +KPX L Tcommaaccent -20 +KPX L V -55 +KPX L W -55 +KPX L Y -20 +KPX L Yacute -20 +KPX L Ydieresis -20 +KPX L quoteright -37 +KPX L y -30 +KPX L yacute -30 +KPX L ydieresis -30 +KPX Lacute T -20 +KPX Lacute Tcaron -20 +KPX Lacute Tcommaaccent -20 +KPX Lacute V -55 +KPX Lacute W -55 +KPX Lacute Y -20 +KPX Lacute Yacute -20 +KPX Lacute Ydieresis -20 +KPX Lacute quoteright -37 +KPX Lacute y -30 +KPX Lacute yacute -30 +KPX Lacute ydieresis -30 +KPX Lcommaaccent T -20 +KPX Lcommaaccent Tcaron -20 +KPX Lcommaaccent Tcommaaccent -20 +KPX Lcommaaccent V -55 +KPX Lcommaaccent W -55 +KPX Lcommaaccent Y -20 +KPX Lcommaaccent Yacute -20 +KPX Lcommaaccent Ydieresis -20 +KPX Lcommaaccent quoteright -37 +KPX Lcommaaccent y -30 +KPX Lcommaaccent yacute -30 +KPX Lcommaaccent ydieresis -30 +KPX Lslash T -20 +KPX Lslash Tcaron -20 +KPX Lslash Tcommaaccent -20 +KPX Lslash V -55 +KPX Lslash W -55 +KPX Lslash Y -20 +KPX Lslash Yacute -20 +KPX Lslash Ydieresis -20 +KPX Lslash quoteright -37 +KPX Lslash y -30 +KPX Lslash yacute -30 +KPX Lslash ydieresis -30 +KPX N A -27 +KPX N Aacute -27 +KPX N Abreve -27 +KPX N Acircumflex -27 +KPX N Adieresis -27 +KPX N Agrave -27 +KPX N Amacron -27 +KPX N Aogonek -27 +KPX N Aring -27 +KPX N Atilde -27 +KPX Nacute A -27 +KPX Nacute Aacute -27 +KPX Nacute Abreve -27 +KPX Nacute Acircumflex -27 +KPX Nacute Adieresis -27 +KPX Nacute Agrave -27 +KPX Nacute Amacron -27 +KPX Nacute Aogonek -27 +KPX Nacute Aring -27 +KPX Nacute Atilde -27 +KPX Ncaron A -27 +KPX Ncaron Aacute -27 +KPX Ncaron Abreve -27 +KPX Ncaron Acircumflex -27 +KPX Ncaron Adieresis -27 +KPX Ncaron Agrave -27 +KPX Ncaron Amacron -27 +KPX Ncaron Aogonek -27 +KPX Ncaron Aring -27 +KPX Ncaron Atilde -27 +KPX Ncommaaccent A -27 +KPX Ncommaaccent Aacute -27 +KPX Ncommaaccent Abreve -27 +KPX Ncommaaccent Acircumflex -27 +KPX Ncommaaccent Adieresis -27 +KPX Ncommaaccent Agrave -27 +KPX Ncommaaccent Amacron -27 +KPX Ncommaaccent Aogonek -27 +KPX Ncommaaccent Aring -27 +KPX Ncommaaccent Atilde -27 +KPX Ntilde A -27 +KPX Ntilde Aacute -27 +KPX Ntilde Abreve -27 +KPX Ntilde Acircumflex -27 +KPX Ntilde Adieresis -27 +KPX Ntilde Agrave -27 +KPX Ntilde Amacron -27 +KPX Ntilde Aogonek -27 +KPX Ntilde Aring -27 +KPX Ntilde Atilde -27 +KPX O A -55 +KPX O Aacute -55 +KPX O Abreve -55 +KPX O Acircumflex -55 +KPX O Adieresis -55 +KPX O Agrave -55 +KPX O Amacron -55 +KPX O Aogonek -55 +KPX O Aring -55 +KPX O Atilde -55 +KPX O T -40 +KPX O Tcaron -40 +KPX O Tcommaaccent -40 +KPX O V -50 +KPX O W -50 +KPX O X -40 +KPX O Y -50 +KPX O Yacute -50 +KPX O Ydieresis -50 +KPX Oacute A -55 +KPX Oacute Aacute -55 +KPX Oacute Abreve -55 +KPX Oacute Acircumflex -55 +KPX Oacute Adieresis -55 +KPX Oacute Agrave -55 +KPX Oacute Amacron -55 +KPX Oacute Aogonek -55 +KPX Oacute Aring -55 +KPX Oacute Atilde -55 +KPX Oacute T -40 +KPX Oacute Tcaron -40 +KPX Oacute Tcommaaccent -40 +KPX Oacute V -50 +KPX Oacute W -50 +KPX Oacute X -40 +KPX Oacute Y -50 +KPX Oacute Yacute -50 +KPX Oacute Ydieresis -50 +KPX Ocircumflex A -55 +KPX Ocircumflex Aacute -55 +KPX Ocircumflex Abreve -55 +KPX Ocircumflex Acircumflex -55 +KPX Ocircumflex Adieresis -55 +KPX Ocircumflex Agrave -55 +KPX Ocircumflex Amacron -55 +KPX Ocircumflex Aogonek -55 +KPX Ocircumflex Aring -55 +KPX Ocircumflex Atilde -55 +KPX Ocircumflex T -40 +KPX Ocircumflex Tcaron -40 +KPX Ocircumflex Tcommaaccent -40 +KPX Ocircumflex V -50 +KPX Ocircumflex W -50 +KPX Ocircumflex X -40 +KPX Ocircumflex Y -50 +KPX Ocircumflex Yacute -50 +KPX Ocircumflex Ydieresis -50 +KPX Odieresis A -55 +KPX Odieresis Aacute -55 +KPX Odieresis Abreve -55 +KPX Odieresis Acircumflex -55 +KPX Odieresis Adieresis -55 +KPX Odieresis Agrave -55 +KPX Odieresis Amacron -55 +KPX Odieresis Aogonek -55 +KPX Odieresis Aring -55 +KPX Odieresis Atilde -55 +KPX Odieresis T -40 +KPX Odieresis Tcaron -40 +KPX Odieresis Tcommaaccent -40 +KPX Odieresis V -50 +KPX Odieresis W -50 +KPX Odieresis X -40 +KPX Odieresis Y -50 +KPX Odieresis Yacute -50 +KPX Odieresis Ydieresis -50 +KPX Ograve A -55 +KPX Ograve Aacute -55 +KPX Ograve Abreve -55 +KPX Ograve Acircumflex -55 +KPX Ograve Adieresis -55 +KPX Ograve Agrave -55 +KPX Ograve Amacron -55 +KPX Ograve Aogonek -55 +KPX Ograve Aring -55 +KPX Ograve Atilde -55 +KPX Ograve T -40 +KPX Ograve Tcaron -40 +KPX Ograve Tcommaaccent -40 +KPX Ograve V -50 +KPX Ograve W -50 +KPX Ograve X -40 +KPX Ograve Y -50 +KPX Ograve Yacute -50 +KPX Ograve Ydieresis -50 +KPX Ohungarumlaut A -55 +KPX Ohungarumlaut Aacute -55 +KPX Ohungarumlaut Abreve -55 +KPX Ohungarumlaut Acircumflex -55 +KPX Ohungarumlaut Adieresis -55 +KPX Ohungarumlaut Agrave -55 +KPX Ohungarumlaut Amacron -55 +KPX Ohungarumlaut Aogonek -55 +KPX Ohungarumlaut Aring -55 +KPX Ohungarumlaut Atilde -55 +KPX Ohungarumlaut T -40 +KPX Ohungarumlaut Tcaron -40 +KPX Ohungarumlaut Tcommaaccent -40 +KPX Ohungarumlaut V -50 +KPX Ohungarumlaut W -50 +KPX Ohungarumlaut X -40 +KPX Ohungarumlaut Y -50 +KPX Ohungarumlaut Yacute -50 +KPX Ohungarumlaut Ydieresis -50 +KPX Omacron A -55 +KPX Omacron Aacute -55 +KPX Omacron Abreve -55 +KPX Omacron Acircumflex -55 +KPX Omacron Adieresis -55 +KPX Omacron Agrave -55 +KPX Omacron Amacron -55 +KPX Omacron Aogonek -55 +KPX Omacron Aring -55 +KPX Omacron Atilde -55 +KPX Omacron T -40 +KPX Omacron Tcaron -40 +KPX Omacron Tcommaaccent -40 +KPX Omacron V -50 +KPX Omacron W -50 +KPX Omacron X -40 +KPX Omacron Y -50 +KPX Omacron Yacute -50 +KPX Omacron Ydieresis -50 +KPX Oslash A -55 +KPX Oslash Aacute -55 +KPX Oslash Abreve -55 +KPX Oslash Acircumflex -55 +KPX Oslash Adieresis -55 +KPX Oslash Agrave -55 +KPX Oslash Amacron -55 +KPX Oslash Aogonek -55 +KPX Oslash Aring -55 +KPX Oslash Atilde -55 +KPX Oslash T -40 +KPX Oslash Tcaron -40 +KPX Oslash Tcommaaccent -40 +KPX Oslash V -50 +KPX Oslash W -50 +KPX Oslash X -40 +KPX Oslash Y -50 +KPX Oslash Yacute -50 +KPX Oslash Ydieresis -50 +KPX Otilde A -55 +KPX Otilde Aacute -55 +KPX Otilde Abreve -55 +KPX Otilde Acircumflex -55 +KPX Otilde Adieresis -55 +KPX Otilde Agrave -55 +KPX Otilde Amacron -55 +KPX Otilde Aogonek -55 +KPX Otilde Aring -55 +KPX Otilde Atilde -55 +KPX Otilde T -40 +KPX Otilde Tcaron -40 +KPX Otilde Tcommaaccent -40 +KPX Otilde V -50 +KPX Otilde W -50 +KPX Otilde X -40 +KPX Otilde Y -50 +KPX Otilde Yacute -50 +KPX Otilde Ydieresis -50 +KPX P A -90 +KPX P Aacute -90 +KPX P Abreve -90 +KPX P Acircumflex -90 +KPX P Adieresis -90 +KPX P Agrave -90 +KPX P Amacron -90 +KPX P Aogonek -90 +KPX P Aring -90 +KPX P Atilde -90 +KPX P a -80 +KPX P aacute -80 +KPX P abreve -80 +KPX P acircumflex -80 +KPX P adieresis -80 +KPX P agrave -80 +KPX P amacron -80 +KPX P aogonek -80 +KPX P aring -80 +KPX P atilde -80 +KPX P comma -135 +KPX P e -80 +KPX P eacute -80 +KPX P ecaron -80 +KPX P ecircumflex -80 +KPX P edieresis -80 +KPX P edotaccent -80 +KPX P egrave -80 +KPX P emacron -80 +KPX P eogonek -80 +KPX P o -80 +KPX P oacute -80 +KPX P ocircumflex -80 +KPX P odieresis -80 +KPX P ograve -80 +KPX P ohungarumlaut -80 +KPX P omacron -80 +KPX P oslash -80 +KPX P otilde -80 +KPX P period -135 +KPX Q U -10 +KPX Q Uacute -10 +KPX Q Ucircumflex -10 +KPX Q Udieresis -10 +KPX Q Ugrave -10 +KPX Q Uhungarumlaut -10 +KPX Q Umacron -10 +KPX Q Uogonek -10 +KPX Q Uring -10 +KPX R O -40 +KPX R Oacute -40 +KPX R Ocircumflex -40 +KPX R Odieresis -40 +KPX R Ograve -40 +KPX R Ohungarumlaut -40 +KPX R Omacron -40 +KPX R Oslash -40 +KPX R Otilde -40 +KPX R U -40 +KPX R Uacute -40 +KPX R Ucircumflex -40 +KPX R Udieresis -40 +KPX R Ugrave -40 +KPX R Uhungarumlaut -40 +KPX R Umacron -40 +KPX R Uogonek -40 +KPX R Uring -40 +KPX R V -18 +KPX R W -18 +KPX R Y -18 +KPX R Yacute -18 +KPX R Ydieresis -18 +KPX Racute O -40 +KPX Racute Oacute -40 +KPX Racute Ocircumflex -40 +KPX Racute Odieresis -40 +KPX Racute Ograve -40 +KPX Racute Ohungarumlaut -40 +KPX Racute Omacron -40 +KPX Racute Oslash -40 +KPX Racute Otilde -40 +KPX Racute U -40 +KPX Racute Uacute -40 +KPX Racute Ucircumflex -40 +KPX Racute Udieresis -40 +KPX Racute Ugrave -40 +KPX Racute Uhungarumlaut -40 +KPX Racute Umacron -40 +KPX Racute Uogonek -40 +KPX Racute Uring -40 +KPX Racute V -18 +KPX Racute W -18 +KPX Racute Y -18 +KPX Racute Yacute -18 +KPX Racute Ydieresis -18 +KPX Rcaron O -40 +KPX Rcaron Oacute -40 +KPX Rcaron Ocircumflex -40 +KPX Rcaron Odieresis -40 +KPX Rcaron Ograve -40 +KPX Rcaron Ohungarumlaut -40 +KPX Rcaron Omacron -40 +KPX Rcaron Oslash -40 +KPX Rcaron Otilde -40 +KPX Rcaron U -40 +KPX Rcaron Uacute -40 +KPX Rcaron Ucircumflex -40 +KPX Rcaron Udieresis -40 +KPX Rcaron Ugrave -40 +KPX Rcaron Uhungarumlaut -40 +KPX Rcaron Umacron -40 +KPX Rcaron Uogonek -40 +KPX Rcaron Uring -40 +KPX Rcaron V -18 +KPX Rcaron W -18 +KPX Rcaron Y -18 +KPX Rcaron Yacute -18 +KPX Rcaron Ydieresis -18 +KPX Rcommaaccent O -40 +KPX Rcommaaccent Oacute -40 +KPX Rcommaaccent Ocircumflex -40 +KPX Rcommaaccent Odieresis -40 +KPX Rcommaaccent Ograve -40 +KPX Rcommaaccent Ohungarumlaut -40 +KPX Rcommaaccent Omacron -40 +KPX Rcommaaccent Oslash -40 +KPX Rcommaaccent Otilde -40 +KPX Rcommaaccent U -40 +KPX Rcommaaccent Uacute -40 +KPX Rcommaaccent Ucircumflex -40 +KPX Rcommaaccent Udieresis -40 +KPX Rcommaaccent Ugrave -40 +KPX Rcommaaccent Uhungarumlaut -40 +KPX Rcommaaccent Umacron -40 +KPX Rcommaaccent Uogonek -40 +KPX Rcommaaccent Uring -40 +KPX Rcommaaccent V -18 +KPX Rcommaaccent W -18 +KPX Rcommaaccent Y -18 +KPX Rcommaaccent Yacute -18 +KPX Rcommaaccent Ydieresis -18 +KPX T A -50 +KPX T Aacute -50 +KPX T Abreve -50 +KPX T Acircumflex -50 +KPX T Adieresis -50 +KPX T Agrave -50 +KPX T Amacron -50 +KPX T Aogonek -50 +KPX T Aring -50 +KPX T Atilde -50 +KPX T O -18 +KPX T Oacute -18 +KPX T Ocircumflex -18 +KPX T Odieresis -18 +KPX T Ograve -18 +KPX T Ohungarumlaut -18 +KPX T Omacron -18 +KPX T Oslash -18 +KPX T Otilde -18 +KPX T a -92 +KPX T aacute -92 +KPX T abreve -92 +KPX T acircumflex -92 +KPX T adieresis -92 +KPX T agrave -92 +KPX T amacron -92 +KPX T aogonek -92 +KPX T aring -92 +KPX T atilde -92 +KPX T colon -55 +KPX T comma -74 +KPX T e -92 +KPX T eacute -92 +KPX T ecaron -92 +KPX T ecircumflex -52 +KPX T edieresis -52 +KPX T edotaccent -92 +KPX T egrave -52 +KPX T emacron -52 +KPX T eogonek -92 +KPX T hyphen -74 +KPX T i -55 +KPX T iacute -55 +KPX T iogonek -55 +KPX T o -92 +KPX T oacute -92 +KPX T ocircumflex -92 +KPX T odieresis -92 +KPX T ograve -92 +KPX T ohungarumlaut -92 +KPX T omacron -92 +KPX T oslash -92 +KPX T otilde -92 +KPX T period -74 +KPX T r -55 +KPX T racute -55 +KPX T rcaron -55 +KPX T rcommaaccent -55 +KPX T semicolon -65 +KPX T u -55 +KPX T uacute -55 +KPX T ucircumflex -55 +KPX T udieresis -55 +KPX T ugrave -55 +KPX T uhungarumlaut -55 +KPX T umacron -55 +KPX T uogonek -55 +KPX T uring -55 +KPX T w -74 +KPX T y -74 +KPX T yacute -74 +KPX T ydieresis -34 +KPX Tcaron A -50 +KPX Tcaron Aacute -50 +KPX Tcaron Abreve -50 +KPX Tcaron Acircumflex -50 +KPX Tcaron Adieresis -50 +KPX Tcaron Agrave -50 +KPX Tcaron Amacron -50 +KPX Tcaron Aogonek -50 +KPX Tcaron Aring -50 +KPX Tcaron Atilde -50 +KPX Tcaron O -18 +KPX Tcaron Oacute -18 +KPX Tcaron Ocircumflex -18 +KPX Tcaron Odieresis -18 +KPX Tcaron Ograve -18 +KPX Tcaron Ohungarumlaut -18 +KPX Tcaron Omacron -18 +KPX Tcaron Oslash -18 +KPX Tcaron Otilde -18 +KPX Tcaron a -92 +KPX Tcaron aacute -92 +KPX Tcaron abreve -92 +KPX Tcaron acircumflex -92 +KPX Tcaron adieresis -92 +KPX Tcaron agrave -92 +KPX Tcaron amacron -92 +KPX Tcaron aogonek -92 +KPX Tcaron aring -92 +KPX Tcaron atilde -92 +KPX Tcaron colon -55 +KPX Tcaron comma -74 +KPX Tcaron e -92 +KPX Tcaron eacute -92 +KPX Tcaron ecaron -92 +KPX Tcaron ecircumflex -52 +KPX Tcaron edieresis -52 +KPX Tcaron edotaccent -92 +KPX Tcaron egrave -52 +KPX Tcaron emacron -52 +KPX Tcaron eogonek -92 +KPX Tcaron hyphen -74 +KPX Tcaron i -55 +KPX Tcaron iacute -55 +KPX Tcaron iogonek -55 +KPX Tcaron o -92 +KPX Tcaron oacute -92 +KPX Tcaron ocircumflex -92 +KPX Tcaron odieresis -92 +KPX Tcaron ograve -92 +KPX Tcaron ohungarumlaut -92 +KPX Tcaron omacron -92 +KPX Tcaron oslash -92 +KPX Tcaron otilde -92 +KPX Tcaron period -74 +KPX Tcaron r -55 +KPX Tcaron racute -55 +KPX Tcaron rcaron -55 +KPX Tcaron rcommaaccent -55 +KPX Tcaron semicolon -65 +KPX Tcaron u -55 +KPX Tcaron uacute -55 +KPX Tcaron ucircumflex -55 +KPX Tcaron udieresis -55 +KPX Tcaron ugrave -55 +KPX Tcaron uhungarumlaut -55 +KPX Tcaron umacron -55 +KPX Tcaron uogonek -55 +KPX Tcaron uring -55 +KPX Tcaron w -74 +KPX Tcaron y -74 +KPX Tcaron yacute -74 +KPX Tcaron ydieresis -34 +KPX Tcommaaccent A -50 +KPX Tcommaaccent Aacute -50 +KPX Tcommaaccent Abreve -50 +KPX Tcommaaccent Acircumflex -50 +KPX Tcommaaccent Adieresis -50 +KPX Tcommaaccent Agrave -50 +KPX Tcommaaccent Amacron -50 +KPX Tcommaaccent Aogonek -50 +KPX Tcommaaccent Aring -50 +KPX Tcommaaccent Atilde -50 +KPX Tcommaaccent O -18 +KPX Tcommaaccent Oacute -18 +KPX Tcommaaccent Ocircumflex -18 +KPX Tcommaaccent Odieresis -18 +KPX Tcommaaccent Ograve -18 +KPX Tcommaaccent Ohungarumlaut -18 +KPX Tcommaaccent Omacron -18 +KPX Tcommaaccent Oslash -18 +KPX Tcommaaccent Otilde -18 +KPX Tcommaaccent a -92 +KPX Tcommaaccent aacute -92 +KPX Tcommaaccent abreve -92 +KPX Tcommaaccent acircumflex -92 +KPX Tcommaaccent adieresis -92 +KPX Tcommaaccent agrave -92 +KPX Tcommaaccent amacron -92 +KPX Tcommaaccent aogonek -92 +KPX Tcommaaccent aring -92 +KPX Tcommaaccent atilde -92 +KPX Tcommaaccent colon -55 +KPX Tcommaaccent comma -74 +KPX Tcommaaccent e -92 +KPX Tcommaaccent eacute -92 +KPX Tcommaaccent ecaron -92 +KPX Tcommaaccent ecircumflex -52 +KPX Tcommaaccent edieresis -52 +KPX Tcommaaccent edotaccent -92 +KPX Tcommaaccent egrave -52 +KPX Tcommaaccent emacron -52 +KPX Tcommaaccent eogonek -92 +KPX Tcommaaccent hyphen -74 +KPX Tcommaaccent i -55 +KPX Tcommaaccent iacute -55 +KPX Tcommaaccent iogonek -55 +KPX Tcommaaccent o -92 +KPX Tcommaaccent oacute -92 +KPX Tcommaaccent ocircumflex -92 +KPX Tcommaaccent odieresis -92 +KPX Tcommaaccent ograve -92 +KPX Tcommaaccent ohungarumlaut -92 +KPX Tcommaaccent omacron -92 +KPX Tcommaaccent oslash -92 +KPX Tcommaaccent otilde -92 +KPX Tcommaaccent period -74 +KPX Tcommaaccent r -55 +KPX Tcommaaccent racute -55 +KPX Tcommaaccent rcaron -55 +KPX Tcommaaccent rcommaaccent -55 +KPX Tcommaaccent semicolon -65 +KPX Tcommaaccent u -55 +KPX Tcommaaccent uacute -55 +KPX Tcommaaccent ucircumflex -55 +KPX Tcommaaccent udieresis -55 +KPX Tcommaaccent ugrave -55 +KPX Tcommaaccent uhungarumlaut -55 +KPX Tcommaaccent umacron -55 +KPX Tcommaaccent uogonek -55 +KPX Tcommaaccent uring -55 +KPX Tcommaaccent w -74 +KPX Tcommaaccent y -74 +KPX Tcommaaccent yacute -74 +KPX Tcommaaccent ydieresis -34 +KPX U A -40 +KPX U Aacute -40 +KPX U Abreve -40 +KPX U Acircumflex -40 +KPX U Adieresis -40 +KPX U Agrave -40 +KPX U Amacron -40 +KPX U Aogonek -40 +KPX U Aring -40 +KPX U Atilde -40 +KPX U comma -25 +KPX U period -25 +KPX Uacute A -40 +KPX Uacute Aacute -40 +KPX Uacute Abreve -40 +KPX Uacute Acircumflex -40 +KPX Uacute Adieresis -40 +KPX Uacute Agrave -40 +KPX Uacute Amacron -40 +KPX Uacute Aogonek -40 +KPX Uacute Aring -40 +KPX Uacute Atilde -40 +KPX Uacute comma -25 +KPX Uacute period -25 +KPX Ucircumflex A -40 +KPX Ucircumflex Aacute -40 +KPX Ucircumflex Abreve -40 +KPX Ucircumflex Acircumflex -40 +KPX Ucircumflex Adieresis -40 +KPX Ucircumflex Agrave -40 +KPX Ucircumflex Amacron -40 +KPX Ucircumflex Aogonek -40 +KPX Ucircumflex Aring -40 +KPX Ucircumflex Atilde -40 +KPX Ucircumflex comma -25 +KPX Ucircumflex period -25 +KPX Udieresis A -40 +KPX Udieresis Aacute -40 +KPX Udieresis Abreve -40 +KPX Udieresis Acircumflex -40 +KPX Udieresis Adieresis -40 +KPX Udieresis Agrave -40 +KPX Udieresis Amacron -40 +KPX Udieresis Aogonek -40 +KPX Udieresis Aring -40 +KPX Udieresis Atilde -40 +KPX Udieresis comma -25 +KPX Udieresis period -25 +KPX Ugrave A -40 +KPX Ugrave Aacute -40 +KPX Ugrave Abreve -40 +KPX Ugrave Acircumflex -40 +KPX Ugrave Adieresis -40 +KPX Ugrave Agrave -40 +KPX Ugrave Amacron -40 +KPX Ugrave Aogonek -40 +KPX Ugrave Aring -40 +KPX Ugrave Atilde -40 +KPX Ugrave comma -25 +KPX Ugrave period -25 +KPX Uhungarumlaut A -40 +KPX Uhungarumlaut Aacute -40 +KPX Uhungarumlaut Abreve -40 +KPX Uhungarumlaut Acircumflex -40 +KPX Uhungarumlaut Adieresis -40 +KPX Uhungarumlaut Agrave -40 +KPX Uhungarumlaut Amacron -40 +KPX Uhungarumlaut Aogonek -40 +KPX Uhungarumlaut Aring -40 +KPX Uhungarumlaut Atilde -40 +KPX Uhungarumlaut comma -25 +KPX Uhungarumlaut period -25 +KPX Umacron A -40 +KPX Umacron Aacute -40 +KPX Umacron Abreve -40 +KPX Umacron Acircumflex -40 +KPX Umacron Adieresis -40 +KPX Umacron Agrave -40 +KPX Umacron Amacron -40 +KPX Umacron Aogonek -40 +KPX Umacron Aring -40 +KPX Umacron Atilde -40 +KPX Umacron comma -25 +KPX Umacron period -25 +KPX Uogonek A -40 +KPX Uogonek Aacute -40 +KPX Uogonek Abreve -40 +KPX Uogonek Acircumflex -40 +KPX Uogonek Adieresis -40 +KPX Uogonek Agrave -40 +KPX Uogonek Amacron -40 +KPX Uogonek Aogonek -40 +KPX Uogonek Aring -40 +KPX Uogonek Atilde -40 +KPX Uogonek comma -25 +KPX Uogonek period -25 +KPX Uring A -40 +KPX Uring Aacute -40 +KPX Uring Abreve -40 +KPX Uring Acircumflex -40 +KPX Uring Adieresis -40 +KPX Uring Agrave -40 +KPX Uring Amacron -40 +KPX Uring Aogonek -40 +KPX Uring Aring -40 +KPX Uring Atilde -40 +KPX Uring comma -25 +KPX Uring period -25 +KPX V A -60 +KPX V Aacute -60 +KPX V Abreve -60 +KPX V Acircumflex -60 +KPX V Adieresis -60 +KPX V Agrave -60 +KPX V Amacron -60 +KPX V Aogonek -60 +KPX V Aring -60 +KPX V Atilde -60 +KPX V O -30 +KPX V Oacute -30 +KPX V Ocircumflex -30 +KPX V Odieresis -30 +KPX V Ograve -30 +KPX V Ohungarumlaut -30 +KPX V Omacron -30 +KPX V Oslash -30 +KPX V Otilde -30 +KPX V a -111 +KPX V aacute -111 +KPX V abreve -111 +KPX V acircumflex -111 +KPX V adieresis -111 +KPX V agrave -111 +KPX V amacron -111 +KPX V aogonek -111 +KPX V aring -111 +KPX V atilde -111 +KPX V colon -65 +KPX V comma -129 +KPX V e -111 +KPX V eacute -111 +KPX V ecaron -111 +KPX V ecircumflex -111 +KPX V edieresis -71 +KPX V edotaccent -111 +KPX V egrave -71 +KPX V emacron -71 +KPX V eogonek -111 +KPX V hyphen -55 +KPX V i -74 +KPX V iacute -74 +KPX V icircumflex -34 +KPX V idieresis -34 +KPX V igrave -34 +KPX V imacron -34 +KPX V iogonek -74 +KPX V o -111 +KPX V oacute -111 +KPX V ocircumflex -111 +KPX V odieresis -111 +KPX V ograve -111 +KPX V ohungarumlaut -111 +KPX V omacron -111 +KPX V oslash -111 +KPX V otilde -111 +KPX V period -129 +KPX V semicolon -74 +KPX V u -74 +KPX V uacute -74 +KPX V ucircumflex -74 +KPX V udieresis -74 +KPX V ugrave -74 +KPX V uhungarumlaut -74 +KPX V umacron -74 +KPX V uogonek -74 +KPX V uring -74 +KPX W A -60 +KPX W Aacute -60 +KPX W Abreve -60 +KPX W Acircumflex -60 +KPX W Adieresis -60 +KPX W Agrave -60 +KPX W Amacron -60 +KPX W Aogonek -60 +KPX W Aring -60 +KPX W Atilde -60 +KPX W O -25 +KPX W Oacute -25 +KPX W Ocircumflex -25 +KPX W Odieresis -25 +KPX W Ograve -25 +KPX W Ohungarumlaut -25 +KPX W Omacron -25 +KPX W Oslash -25 +KPX W Otilde -25 +KPX W a -92 +KPX W aacute -92 +KPX W abreve -92 +KPX W acircumflex -92 +KPX W adieresis -92 +KPX W agrave -92 +KPX W amacron -92 +KPX W aogonek -92 +KPX W aring -92 +KPX W atilde -92 +KPX W colon -65 +KPX W comma -92 +KPX W e -92 +KPX W eacute -92 +KPX W ecaron -92 +KPX W ecircumflex -92 +KPX W edieresis -52 +KPX W edotaccent -92 +KPX W egrave -52 +KPX W emacron -52 +KPX W eogonek -92 +KPX W hyphen -37 +KPX W i -55 +KPX W iacute -55 +KPX W iogonek -55 +KPX W o -92 +KPX W oacute -92 +KPX W ocircumflex -92 +KPX W odieresis -92 +KPX W ograve -92 +KPX W ohungarumlaut -92 +KPX W omacron -92 +KPX W oslash -92 +KPX W otilde -92 +KPX W period -92 +KPX W semicolon -65 +KPX W u -55 +KPX W uacute -55 +KPX W ucircumflex -55 +KPX W udieresis -55 +KPX W ugrave -55 +KPX W uhungarumlaut -55 +KPX W umacron -55 +KPX W uogonek -55 +KPX W uring -55 +KPX W y -70 +KPX W yacute -70 +KPX W ydieresis -70 +KPX Y A -50 +KPX Y Aacute -50 +KPX Y Abreve -50 +KPX Y Acircumflex -50 +KPX Y Adieresis -50 +KPX Y Agrave -50 +KPX Y Amacron -50 +KPX Y Aogonek -50 +KPX Y Aring -50 +KPX Y Atilde -50 +KPX Y O -15 +KPX Y Oacute -15 +KPX Y Ocircumflex -15 +KPX Y Odieresis -15 +KPX Y Ograve -15 +KPX Y Ohungarumlaut -15 +KPX Y Omacron -15 +KPX Y Oslash -15 +KPX Y Otilde -15 +KPX Y a -92 +KPX Y aacute -92 +KPX Y abreve -92 +KPX Y acircumflex -92 +KPX Y adieresis -92 +KPX Y agrave -92 +KPX Y amacron -92 +KPX Y aogonek -92 +KPX Y aring -92 +KPX Y atilde -92 +KPX Y colon -65 +KPX Y comma -92 +KPX Y e -92 +KPX Y eacute -92 +KPX Y ecaron -92 +KPX Y ecircumflex -92 +KPX Y edieresis -52 +KPX Y edotaccent -92 +KPX Y egrave -52 +KPX Y emacron -52 +KPX Y eogonek -92 +KPX Y hyphen -74 +KPX Y i -74 +KPX Y iacute -74 +KPX Y icircumflex -34 +KPX Y idieresis -34 +KPX Y igrave -34 +KPX Y imacron -34 +KPX Y iogonek -74 +KPX Y o -92 +KPX Y oacute -92 +KPX Y ocircumflex -92 +KPX Y odieresis -92 +KPX Y ograve -92 +KPX Y ohungarumlaut -92 +KPX Y omacron -92 +KPX Y oslash -92 +KPX Y otilde -92 +KPX Y period -92 +KPX Y semicolon -65 +KPX Y u -92 +KPX Y uacute -92 +KPX Y ucircumflex -92 +KPX Y udieresis -92 +KPX Y ugrave -92 +KPX Y uhungarumlaut -92 +KPX Y umacron -92 +KPX Y uogonek -92 +KPX Y uring -92 +KPX Yacute A -50 +KPX Yacute Aacute -50 +KPX Yacute Abreve -50 +KPX Yacute Acircumflex -50 +KPX Yacute Adieresis -50 +KPX Yacute Agrave -50 +KPX Yacute Amacron -50 +KPX Yacute Aogonek -50 +KPX Yacute Aring -50 +KPX Yacute Atilde -50 +KPX Yacute O -15 +KPX Yacute Oacute -15 +KPX Yacute Ocircumflex -15 +KPX Yacute Odieresis -15 +KPX Yacute Ograve -15 +KPX Yacute Ohungarumlaut -15 +KPX Yacute Omacron -15 +KPX Yacute Oslash -15 +KPX Yacute Otilde -15 +KPX Yacute a -92 +KPX Yacute aacute -92 +KPX Yacute abreve -92 +KPX Yacute acircumflex -92 +KPX Yacute adieresis -92 +KPX Yacute agrave -92 +KPX Yacute amacron -92 +KPX Yacute aogonek -92 +KPX Yacute aring -92 +KPX Yacute atilde -92 +KPX Yacute colon -65 +KPX Yacute comma -92 +KPX Yacute e -92 +KPX Yacute eacute -92 +KPX Yacute ecaron -92 +KPX Yacute ecircumflex -92 +KPX Yacute edieresis -52 +KPX Yacute edotaccent -92 +KPX Yacute egrave -52 +KPX Yacute emacron -52 +KPX Yacute eogonek -92 +KPX Yacute hyphen -74 +KPX Yacute i -74 +KPX Yacute iacute -74 +KPX Yacute icircumflex -34 +KPX Yacute idieresis -34 +KPX Yacute igrave -34 +KPX Yacute imacron -34 +KPX Yacute iogonek -74 +KPX Yacute o -92 +KPX Yacute oacute -92 +KPX Yacute ocircumflex -92 +KPX Yacute odieresis -92 +KPX Yacute ograve -92 +KPX Yacute ohungarumlaut -92 +KPX Yacute omacron -92 +KPX Yacute oslash -92 +KPX Yacute otilde -92 +KPX Yacute period -92 +KPX Yacute semicolon -65 +KPX Yacute u -92 +KPX Yacute uacute -92 +KPX Yacute ucircumflex -92 +KPX Yacute udieresis -92 +KPX Yacute ugrave -92 +KPX Yacute uhungarumlaut -92 +KPX Yacute umacron -92 +KPX Yacute uogonek -92 +KPX Yacute uring -92 +KPX Ydieresis A -50 +KPX Ydieresis Aacute -50 +KPX Ydieresis Abreve -50 +KPX Ydieresis Acircumflex -50 +KPX Ydieresis Adieresis -50 +KPX Ydieresis Agrave -50 +KPX Ydieresis Amacron -50 +KPX Ydieresis Aogonek -50 +KPX Ydieresis Aring -50 +KPX Ydieresis Atilde -50 +KPX Ydieresis O -15 +KPX Ydieresis Oacute -15 +KPX Ydieresis Ocircumflex -15 +KPX Ydieresis Odieresis -15 +KPX Ydieresis Ograve -15 +KPX Ydieresis Ohungarumlaut -15 +KPX Ydieresis Omacron -15 +KPX Ydieresis Oslash -15 +KPX Ydieresis Otilde -15 +KPX Ydieresis a -92 +KPX Ydieresis aacute -92 +KPX Ydieresis abreve -92 +KPX Ydieresis acircumflex -92 +KPX Ydieresis adieresis -92 +KPX Ydieresis agrave -92 +KPX Ydieresis amacron -92 +KPX Ydieresis aogonek -92 +KPX Ydieresis aring -92 +KPX Ydieresis atilde -92 +KPX Ydieresis colon -65 +KPX Ydieresis comma -92 +KPX Ydieresis e -92 +KPX Ydieresis eacute -92 +KPX Ydieresis ecaron -92 +KPX Ydieresis ecircumflex -92 +KPX Ydieresis edieresis -52 +KPX Ydieresis edotaccent -92 +KPX Ydieresis egrave -52 +KPX Ydieresis emacron -52 +KPX Ydieresis eogonek -92 +KPX Ydieresis hyphen -74 +KPX Ydieresis i -74 +KPX Ydieresis iacute -74 +KPX Ydieresis icircumflex -34 +KPX Ydieresis idieresis -34 +KPX Ydieresis igrave -34 +KPX Ydieresis imacron -34 +KPX Ydieresis iogonek -74 +KPX Ydieresis o -92 +KPX Ydieresis oacute -92 +KPX Ydieresis ocircumflex -92 +KPX Ydieresis odieresis -92 +KPX Ydieresis ograve -92 +KPX Ydieresis ohungarumlaut -92 +KPX Ydieresis omacron -92 +KPX Ydieresis oslash -92 +KPX Ydieresis otilde -92 +KPX Ydieresis period -92 +KPX Ydieresis semicolon -65 +KPX Ydieresis u -92 +KPX Ydieresis uacute -92 +KPX Ydieresis ucircumflex -92 +KPX Ydieresis udieresis -92 +KPX Ydieresis ugrave -92 +KPX Ydieresis uhungarumlaut -92 +KPX Ydieresis umacron -92 +KPX Ydieresis uogonek -92 +KPX Ydieresis uring -92 +KPX a g -10 +KPX a gbreve -10 +KPX a gcommaaccent -10 +KPX aacute g -10 +KPX aacute gbreve -10 +KPX aacute gcommaaccent -10 +KPX abreve g -10 +KPX abreve gbreve -10 +KPX abreve gcommaaccent -10 +KPX acircumflex g -10 +KPX acircumflex gbreve -10 +KPX acircumflex gcommaaccent -10 +KPX adieresis g -10 +KPX adieresis gbreve -10 +KPX adieresis gcommaaccent -10 +KPX agrave g -10 +KPX agrave gbreve -10 +KPX agrave gcommaaccent -10 +KPX amacron g -10 +KPX amacron gbreve -10 +KPX amacron gcommaaccent -10 +KPX aogonek g -10 +KPX aogonek gbreve -10 +KPX aogonek gcommaaccent -10 +KPX aring g -10 +KPX aring gbreve -10 +KPX aring gcommaaccent -10 +KPX atilde g -10 +KPX atilde gbreve -10 +KPX atilde gcommaaccent -10 +KPX b period -40 +KPX b u -20 +KPX b uacute -20 +KPX b ucircumflex -20 +KPX b udieresis -20 +KPX b ugrave -20 +KPX b uhungarumlaut -20 +KPX b umacron -20 +KPX b uogonek -20 +KPX b uring -20 +KPX c h -15 +KPX c k -20 +KPX c kcommaaccent -20 +KPX cacute h -15 +KPX cacute k -20 +KPX cacute kcommaaccent -20 +KPX ccaron h -15 +KPX ccaron k -20 +KPX ccaron kcommaaccent -20 +KPX ccedilla h -15 +KPX ccedilla k -20 +KPX ccedilla kcommaaccent -20 +KPX comma quotedblright -140 +KPX comma quoteright -140 +KPX e comma -10 +KPX e g -40 +KPX e gbreve -40 +KPX e gcommaaccent -40 +KPX e period -15 +KPX e v -15 +KPX e w -15 +KPX e x -20 +KPX e y -30 +KPX e yacute -30 +KPX e ydieresis -30 +KPX eacute comma -10 +KPX eacute g -40 +KPX eacute gbreve -40 +KPX eacute gcommaaccent -40 +KPX eacute period -15 +KPX eacute v -15 +KPX eacute w -15 +KPX eacute x -20 +KPX eacute y -30 +KPX eacute yacute -30 +KPX eacute ydieresis -30 +KPX ecaron comma -10 +KPX ecaron g -40 +KPX ecaron gbreve -40 +KPX ecaron gcommaaccent -40 +KPX ecaron period -15 +KPX ecaron v -15 +KPX ecaron w -15 +KPX ecaron x -20 +KPX ecaron y -30 +KPX ecaron yacute -30 +KPX ecaron ydieresis -30 +KPX ecircumflex comma -10 +KPX ecircumflex g -40 +KPX ecircumflex gbreve -40 +KPX ecircumflex gcommaaccent -40 +KPX ecircumflex period -15 +KPX ecircumflex v -15 +KPX ecircumflex w -15 +KPX ecircumflex x -20 +KPX ecircumflex y -30 +KPX ecircumflex yacute -30 +KPX ecircumflex ydieresis -30 +KPX edieresis comma -10 +KPX edieresis g -40 +KPX edieresis gbreve -40 +KPX edieresis gcommaaccent -40 +KPX edieresis period -15 +KPX edieresis v -15 +KPX edieresis w -15 +KPX edieresis x -20 +KPX edieresis y -30 +KPX edieresis yacute -30 +KPX edieresis ydieresis -30 +KPX edotaccent comma -10 +KPX edotaccent g -40 +KPX edotaccent gbreve -40 +KPX edotaccent gcommaaccent -40 +KPX edotaccent period -15 +KPX edotaccent v -15 +KPX edotaccent w -15 +KPX edotaccent x -20 +KPX edotaccent y -30 +KPX edotaccent yacute -30 +KPX edotaccent ydieresis -30 +KPX egrave comma -10 +KPX egrave g -40 +KPX egrave gbreve -40 +KPX egrave gcommaaccent -40 +KPX egrave period -15 +KPX egrave v -15 +KPX egrave w -15 +KPX egrave x -20 +KPX egrave y -30 +KPX egrave yacute -30 +KPX egrave ydieresis -30 +KPX emacron comma -10 +KPX emacron g -40 +KPX emacron gbreve -40 +KPX emacron gcommaaccent -40 +KPX emacron period -15 +KPX emacron v -15 +KPX emacron w -15 +KPX emacron x -20 +KPX emacron y -30 +KPX emacron yacute -30 +KPX emacron ydieresis -30 +KPX eogonek comma -10 +KPX eogonek g -40 +KPX eogonek gbreve -40 +KPX eogonek gcommaaccent -40 +KPX eogonek period -15 +KPX eogonek v -15 +KPX eogonek w -15 +KPX eogonek x -20 +KPX eogonek y -30 +KPX eogonek yacute -30 +KPX eogonek ydieresis -30 +KPX f comma -10 +KPX f dotlessi -60 +KPX f f -18 +KPX f i -20 +KPX f iogonek -20 +KPX f period -15 +KPX f quoteright 92 +KPX g comma -10 +KPX g e -10 +KPX g eacute -10 +KPX g ecaron -10 +KPX g ecircumflex -10 +KPX g edieresis -10 +KPX g edotaccent -10 +KPX g egrave -10 +KPX g emacron -10 +KPX g eogonek -10 +KPX g g -10 +KPX g gbreve -10 +KPX g gcommaaccent -10 +KPX g period -15 +KPX gbreve comma -10 +KPX gbreve e -10 +KPX gbreve eacute -10 +KPX gbreve ecaron -10 +KPX gbreve ecircumflex -10 +KPX gbreve edieresis -10 +KPX gbreve edotaccent -10 +KPX gbreve egrave -10 +KPX gbreve emacron -10 +KPX gbreve eogonek -10 +KPX gbreve g -10 +KPX gbreve gbreve -10 +KPX gbreve gcommaaccent -10 +KPX gbreve period -15 +KPX gcommaaccent comma -10 +KPX gcommaaccent e -10 +KPX gcommaaccent eacute -10 +KPX gcommaaccent ecaron -10 +KPX gcommaaccent ecircumflex -10 +KPX gcommaaccent edieresis -10 +KPX gcommaaccent edotaccent -10 +KPX gcommaaccent egrave -10 +KPX gcommaaccent emacron -10 +KPX gcommaaccent eogonek -10 +KPX gcommaaccent g -10 +KPX gcommaaccent gbreve -10 +KPX gcommaaccent gcommaaccent -10 +KPX gcommaaccent period -15 +KPX k e -10 +KPX k eacute -10 +KPX k ecaron -10 +KPX k ecircumflex -10 +KPX k edieresis -10 +KPX k edotaccent -10 +KPX k egrave -10 +KPX k emacron -10 +KPX k eogonek -10 +KPX k o -10 +KPX k oacute -10 +KPX k ocircumflex -10 +KPX k odieresis -10 +KPX k ograve -10 +KPX k ohungarumlaut -10 +KPX k omacron -10 +KPX k oslash -10 +KPX k otilde -10 +KPX k y -10 +KPX k yacute -10 +KPX k ydieresis -10 +KPX kcommaaccent e -10 +KPX kcommaaccent eacute -10 +KPX kcommaaccent ecaron -10 +KPX kcommaaccent ecircumflex -10 +KPX kcommaaccent edieresis -10 +KPX kcommaaccent edotaccent -10 +KPX kcommaaccent egrave -10 +KPX kcommaaccent emacron -10 +KPX kcommaaccent eogonek -10 +KPX kcommaaccent o -10 +KPX kcommaaccent oacute -10 +KPX kcommaaccent ocircumflex -10 +KPX kcommaaccent odieresis -10 +KPX kcommaaccent ograve -10 +KPX kcommaaccent ohungarumlaut -10 +KPX kcommaaccent omacron -10 +KPX kcommaaccent oslash -10 +KPX kcommaaccent otilde -10 +KPX kcommaaccent y -10 +KPX kcommaaccent yacute -10 +KPX kcommaaccent ydieresis -10 +KPX n v -40 +KPX nacute v -40 +KPX ncaron v -40 +KPX ncommaaccent v -40 +KPX ntilde v -40 +KPX o g -10 +KPX o gbreve -10 +KPX o gcommaaccent -10 +KPX o v -10 +KPX oacute g -10 +KPX oacute gbreve -10 +KPX oacute gcommaaccent -10 +KPX oacute v -10 +KPX ocircumflex g -10 +KPX ocircumflex gbreve -10 +KPX ocircumflex gcommaaccent -10 +KPX ocircumflex v -10 +KPX odieresis g -10 +KPX odieresis gbreve -10 +KPX odieresis gcommaaccent -10 +KPX odieresis v -10 +KPX ograve g -10 +KPX ograve gbreve -10 +KPX ograve gcommaaccent -10 +KPX ograve v -10 +KPX ohungarumlaut g -10 +KPX ohungarumlaut gbreve -10 +KPX ohungarumlaut gcommaaccent -10 +KPX ohungarumlaut v -10 +KPX omacron g -10 +KPX omacron gbreve -10 +KPX omacron gcommaaccent -10 +KPX omacron v -10 +KPX oslash g -10 +KPX oslash gbreve -10 +KPX oslash gcommaaccent -10 +KPX oslash v -10 +KPX otilde g -10 +KPX otilde gbreve -10 +KPX otilde gcommaaccent -10 +KPX otilde v -10 +KPX period quotedblright -140 +KPX period quoteright -140 +KPX quoteleft quoteleft -111 +KPX quoteright d -25 +KPX quoteright dcroat -25 +KPX quoteright quoteright -111 +KPX quoteright r -25 +KPX quoteright racute -25 +KPX quoteright rcaron -25 +KPX quoteright rcommaaccent -25 +KPX quoteright s -40 +KPX quoteright sacute -40 +KPX quoteright scaron -40 +KPX quoteright scedilla -40 +KPX quoteright scommaaccent -40 +KPX quoteright space -111 +KPX quoteright t -30 +KPX quoteright tcommaaccent -30 +KPX quoteright v -10 +KPX r a -15 +KPX r aacute -15 +KPX r abreve -15 +KPX r acircumflex -15 +KPX r adieresis -15 +KPX r agrave -15 +KPX r amacron -15 +KPX r aogonek -15 +KPX r aring -15 +KPX r atilde -15 +KPX r c -37 +KPX r cacute -37 +KPX r ccaron -37 +KPX r ccedilla -37 +KPX r comma -111 +KPX r d -37 +KPX r dcroat -37 +KPX r e -37 +KPX r eacute -37 +KPX r ecaron -37 +KPX r ecircumflex -37 +KPX r edieresis -37 +KPX r edotaccent -37 +KPX r egrave -37 +KPX r emacron -37 +KPX r eogonek -37 +KPX r g -37 +KPX r gbreve -37 +KPX r gcommaaccent -37 +KPX r hyphen -20 +KPX r o -45 +KPX r oacute -45 +KPX r ocircumflex -45 +KPX r odieresis -45 +KPX r ograve -45 +KPX r ohungarumlaut -45 +KPX r omacron -45 +KPX r oslash -45 +KPX r otilde -45 +KPX r period -111 +KPX r q -37 +KPX r s -10 +KPX r sacute -10 +KPX r scaron -10 +KPX r scedilla -10 +KPX r scommaaccent -10 +KPX racute a -15 +KPX racute aacute -15 +KPX racute abreve -15 +KPX racute acircumflex -15 +KPX racute adieresis -15 +KPX racute agrave -15 +KPX racute amacron -15 +KPX racute aogonek -15 +KPX racute aring -15 +KPX racute atilde -15 +KPX racute c -37 +KPX racute cacute -37 +KPX racute ccaron -37 +KPX racute ccedilla -37 +KPX racute comma -111 +KPX racute d -37 +KPX racute dcroat -37 +KPX racute e -37 +KPX racute eacute -37 +KPX racute ecaron -37 +KPX racute ecircumflex -37 +KPX racute edieresis -37 +KPX racute edotaccent -37 +KPX racute egrave -37 +KPX racute emacron -37 +KPX racute eogonek -37 +KPX racute g -37 +KPX racute gbreve -37 +KPX racute gcommaaccent -37 +KPX racute hyphen -20 +KPX racute o -45 +KPX racute oacute -45 +KPX racute ocircumflex -45 +KPX racute odieresis -45 +KPX racute ograve -45 +KPX racute ohungarumlaut -45 +KPX racute omacron -45 +KPX racute oslash -45 +KPX racute otilde -45 +KPX racute period -111 +KPX racute q -37 +KPX racute s -10 +KPX racute sacute -10 +KPX racute scaron -10 +KPX racute scedilla -10 +KPX racute scommaaccent -10 +KPX rcaron a -15 +KPX rcaron aacute -15 +KPX rcaron abreve -15 +KPX rcaron acircumflex -15 +KPX rcaron adieresis -15 +KPX rcaron agrave -15 +KPX rcaron amacron -15 +KPX rcaron aogonek -15 +KPX rcaron aring -15 +KPX rcaron atilde -15 +KPX rcaron c -37 +KPX rcaron cacute -37 +KPX rcaron ccaron -37 +KPX rcaron ccedilla -37 +KPX rcaron comma -111 +KPX rcaron d -37 +KPX rcaron dcroat -37 +KPX rcaron e -37 +KPX rcaron eacute -37 +KPX rcaron ecaron -37 +KPX rcaron ecircumflex -37 +KPX rcaron edieresis -37 +KPX rcaron edotaccent -37 +KPX rcaron egrave -37 +KPX rcaron emacron -37 +KPX rcaron eogonek -37 +KPX rcaron g -37 +KPX rcaron gbreve -37 +KPX rcaron gcommaaccent -37 +KPX rcaron hyphen -20 +KPX rcaron o -45 +KPX rcaron oacute -45 +KPX rcaron ocircumflex -45 +KPX rcaron odieresis -45 +KPX rcaron ograve -45 +KPX rcaron ohungarumlaut -45 +KPX rcaron omacron -45 +KPX rcaron oslash -45 +KPX rcaron otilde -45 +KPX rcaron period -111 +KPX rcaron q -37 +KPX rcaron s -10 +KPX rcaron sacute -10 +KPX rcaron scaron -10 +KPX rcaron scedilla -10 +KPX rcaron scommaaccent -10 +KPX rcommaaccent a -15 +KPX rcommaaccent aacute -15 +KPX rcommaaccent abreve -15 +KPX rcommaaccent acircumflex -15 +KPX rcommaaccent adieresis -15 +KPX rcommaaccent agrave -15 +KPX rcommaaccent amacron -15 +KPX rcommaaccent aogonek -15 +KPX rcommaaccent aring -15 +KPX rcommaaccent atilde -15 +KPX rcommaaccent c -37 +KPX rcommaaccent cacute -37 +KPX rcommaaccent ccaron -37 +KPX rcommaaccent ccedilla -37 +KPX rcommaaccent comma -111 +KPX rcommaaccent d -37 +KPX rcommaaccent dcroat -37 +KPX rcommaaccent e -37 +KPX rcommaaccent eacute -37 +KPX rcommaaccent ecaron -37 +KPX rcommaaccent ecircumflex -37 +KPX rcommaaccent edieresis -37 +KPX rcommaaccent edotaccent -37 +KPX rcommaaccent egrave -37 +KPX rcommaaccent emacron -37 +KPX rcommaaccent eogonek -37 +KPX rcommaaccent g -37 +KPX rcommaaccent gbreve -37 +KPX rcommaaccent gcommaaccent -37 +KPX rcommaaccent hyphen -20 +KPX rcommaaccent o -45 +KPX rcommaaccent oacute -45 +KPX rcommaaccent ocircumflex -45 +KPX rcommaaccent odieresis -45 +KPX rcommaaccent ograve -45 +KPX rcommaaccent ohungarumlaut -45 +KPX rcommaaccent omacron -45 +KPX rcommaaccent oslash -45 +KPX rcommaaccent otilde -45 +KPX rcommaaccent period -111 +KPX rcommaaccent q -37 +KPX rcommaaccent s -10 +KPX rcommaaccent sacute -10 +KPX rcommaaccent scaron -10 +KPX rcommaaccent scedilla -10 +KPX rcommaaccent scommaaccent -10 +KPX space A -18 +KPX space Aacute -18 +KPX space Abreve -18 +KPX space Acircumflex -18 +KPX space Adieresis -18 +KPX space Agrave -18 +KPX space Amacron -18 +KPX space Aogonek -18 +KPX space Aring -18 +KPX space Atilde -18 +KPX space T -18 +KPX space Tcaron -18 +KPX space Tcommaaccent -18 +KPX space V -35 +KPX space W -40 +KPX space Y -75 +KPX space Yacute -75 +KPX space Ydieresis -75 +KPX v comma -74 +KPX v period -74 +KPX w comma -74 +KPX w period -74 +KPX y comma -55 +KPX y period -55 +KPX yacute comma -55 +KPX yacute period -55 +KPX ydieresis comma -55 +KPX ydieresis period -55 +EndKernPairs +EndKernData +EndFontMetrics diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/Times-Roman.afm b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/Times-Roman.afm new file mode 100644 index 0000000..ffea269 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/Times-Roman.afm @@ -0,0 +1,2421 @@ +StartFontMetrics 4.1 +Comment Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Thu May 1 12:49:17 1997 +Comment UniqueID 43068 +Comment VMusage 43909 54934 +FontName Times-Roman +FullName Times Roman +FamilyName Times +Weight Roman +ItalicAngle 0 +IsFixedPitch false +CharacterSet ExtendedRoman +FontBBox -168 -218 1000 898 +UnderlinePosition -100 +UnderlineThickness 50 +Version 002.00 +Notice Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.Times is a trademark of Linotype-Hell AG and/or its subsidiaries. +EncodingScheme WinAnsiEncoding +CapHeight 662 +XHeight 450 +Ascender 683 +Descender -217 +StdHW 28 +StdVW 84 +StartCharMetrics 317 +C 32 ; WX 250 ; N space ; B 0 0 0 0 ; +C 160 ; WX 250 ; N space ; B 0 0 0 0 ; +C 33 ; WX 333 ; N exclam ; B 130 -9 238 676 ; +C 34 ; WX 408 ; N quotedbl ; B 77 431 331 676 ; +C 35 ; WX 500 ; N numbersign ; B 5 0 496 662 ; +C 36 ; WX 500 ; N dollar ; B 44 -87 457 727 ; +C 37 ; WX 833 ; N percent ; B 61 -13 772 676 ; +C 38 ; WX 778 ; N ampersand ; B 42 -13 750 676 ; +C 146 ; WX 333 ; N quoteright ; B 79 433 218 676 ; +C 40 ; WX 333 ; N parenleft ; B 48 -177 304 676 ; +C 41 ; WX 333 ; N parenright ; B 29 -177 285 676 ; +C 42 ; WX 500 ; N asterisk ; B 69 265 432 676 ; +C 43 ; WX 564 ; N plus ; B 30 0 534 506 ; +C 44 ; WX 250 ; N comma ; B 56 -141 195 102 ; +C 45 ; WX 333 ; N hyphen ; B 39 194 285 257 ; +C 173 ; WX 333 ; N hyphen ; B 39 194 285 257 ; +C 46 ; WX 250 ; N period ; B 70 -11 181 100 ; +C 47 ; WX 278 ; N slash ; B -9 -14 287 676 ; +C 48 ; WX 500 ; N zero ; B 24 -14 476 676 ; +C 49 ; WX 500 ; N one ; B 111 0 394 676 ; +C 50 ; WX 500 ; N two ; B 30 0 475 676 ; +C 51 ; WX 500 ; N three ; B 43 -14 431 676 ; +C 52 ; WX 500 ; N four ; B 12 0 472 676 ; +C 53 ; WX 500 ; N five ; B 32 -14 438 688 ; +C 54 ; WX 500 ; N six ; B 34 -14 468 684 ; +C 55 ; WX 500 ; N seven ; B 20 -8 449 662 ; +C 56 ; WX 500 ; N eight ; B 56 -14 445 676 ; +C 57 ; WX 500 ; N nine ; B 30 -22 459 676 ; +C 58 ; WX 278 ; N colon ; B 81 -11 192 459 ; +C 59 ; WX 278 ; N semicolon ; B 80 -141 219 459 ; +C 60 ; WX 564 ; N less ; B 28 -8 536 514 ; +C 61 ; WX 564 ; N equal ; B 30 120 534 386 ; +C 62 ; WX 564 ; N greater ; B 28 -8 536 514 ; +C 63 ; WX 444 ; N question ; B 68 -8 414 676 ; +C 64 ; WX 921 ; N at ; B 116 -14 809 676 ; +C 65 ; WX 722 ; N A ; B 15 0 706 674 ; +C 66 ; WX 667 ; N B ; B 17 0 593 662 ; +C 67 ; WX 667 ; N C ; B 28 -14 633 676 ; +C 68 ; WX 722 ; N D ; B 16 0 685 662 ; +C 69 ; WX 611 ; N E ; B 12 0 597 662 ; +C 70 ; WX 556 ; N F ; B 12 0 546 662 ; +C 71 ; WX 722 ; N G ; B 32 -14 709 676 ; +C 72 ; WX 722 ; N H ; B 19 0 702 662 ; +C 73 ; WX 333 ; N I ; B 18 0 315 662 ; +C 74 ; WX 389 ; N J ; B 10 -14 370 662 ; +C 75 ; WX 722 ; N K ; B 34 0 723 662 ; +C 76 ; WX 611 ; N L ; B 12 0 598 662 ; +C 77 ; WX 889 ; N M ; B 12 0 863 662 ; +C 78 ; WX 722 ; N N ; B 12 -11 707 662 ; +C 79 ; WX 722 ; N O ; B 34 -14 688 676 ; +C 80 ; WX 556 ; N P ; B 16 0 542 662 ; +C 81 ; WX 722 ; N Q ; B 34 -178 701 676 ; +C 82 ; WX 667 ; N R ; B 17 0 659 662 ; +C 83 ; WX 556 ; N S ; B 42 -14 491 676 ; +C 84 ; WX 611 ; N T ; B 17 0 593 662 ; +C 85 ; WX 722 ; N U ; B 14 -14 705 662 ; +C 86 ; WX 722 ; N V ; B 16 -11 697 662 ; +C 87 ; WX 944 ; N W ; B 5 -11 932 662 ; +C 88 ; WX 722 ; N X ; B 10 0 704 662 ; +C 89 ; WX 722 ; N Y ; B 22 0 703 662 ; +C 90 ; WX 611 ; N Z ; B 9 0 597 662 ; +C 91 ; WX 333 ; N bracketleft ; B 88 -156 299 662 ; +C 92 ; WX 278 ; N backslash ; B -9 -14 287 676 ; +C 93 ; WX 333 ; N bracketright ; B 34 -156 245 662 ; +C 94 ; WX 469 ; N asciicircum ; B 24 297 446 662 ; +C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; +C 145 ; WX 333 ; N quoteleft ; B 115 433 254 676 ; +C 97 ; WX 444 ; N a ; B 37 -10 442 460 ; +C 98 ; WX 500 ; N b ; B 3 -10 468 683 ; +C 99 ; WX 444 ; N c ; B 25 -10 412 460 ; +C 100 ; WX 500 ; N d ; B 27 -10 491 683 ; +C 101 ; WX 444 ; N e ; B 25 -10 424 460 ; +C 102 ; WX 333 ; N f ; B 20 0 383 683 ; L i fi ; L l fl ; +C 103 ; WX 500 ; N g ; B 28 -218 470 460 ; +C 104 ; WX 500 ; N h ; B 9 0 487 683 ; +C 105 ; WX 278 ; N i ; B 16 0 253 683 ; +C 106 ; WX 278 ; N j ; B -70 -218 194 683 ; +C 107 ; WX 500 ; N k ; B 7 0 505 683 ; +C 108 ; WX 278 ; N l ; B 19 0 257 683 ; +C 109 ; WX 778 ; N m ; B 16 0 775 460 ; +C 110 ; WX 500 ; N n ; B 16 0 485 460 ; +C 111 ; WX 500 ; N o ; B 29 -10 470 460 ; +C 112 ; WX 500 ; N p ; B 5 -217 470 460 ; +C 113 ; WX 500 ; N q ; B 24 -217 488 460 ; +C 114 ; WX 333 ; N r ; B 5 0 335 460 ; +C 115 ; WX 389 ; N s ; B 51 -10 348 460 ; +C 116 ; WX 278 ; N t ; B 13 -10 279 579 ; +C 117 ; WX 500 ; N u ; B 9 -10 479 450 ; +C 118 ; WX 500 ; N v ; B 19 -14 477 450 ; +C 119 ; WX 722 ; N w ; B 21 -14 694 450 ; +C 120 ; WX 500 ; N x ; B 17 0 479 450 ; +C 121 ; WX 500 ; N y ; B 14 -218 475 450 ; +C 122 ; WX 444 ; N z ; B 27 0 418 450 ; +C 123 ; WX 480 ; N braceleft ; B 100 -181 350 680 ; +C 124 ; WX 200 ; N bar ; B 67 -218 133 782 ; +C 125 ; WX 480 ; N braceright ; B 130 -181 380 680 ; +C 126 ; WX 541 ; N asciitilde ; B 40 183 502 323 ; +C 161 ; WX 333 ; N exclamdown ; B 97 -218 205 467 ; +C 162 ; WX 500 ; N cent ; B 53 -138 448 579 ; +C 163 ; WX 500 ; N sterling ; B 12 -8 490 676 ; +C -1 ; WX 167 ; N fraction ; B -168 -14 331 676 ; +C 165 ; WX 500 ; N yen ; B -53 0 512 662 ; +C 131 ; WX 500 ; N florin ; B 7 -189 490 676 ; +C 167 ; WX 500 ; N section ; B 70 -148 426 676 ; +C 164 ; WX 500 ; N currency ; B -22 58 522 602 ; +C 39 ; WX 180 ; N quotesingle ; B 48 431 133 676 ; +C 147 ; WX 444 ; N quotedblleft ; B 43 433 414 676 ; +C 171 ; WX 500 ; N guillemotleft ; B 42 33 456 416 ; +C 139 ; WX 333 ; N guilsinglleft ; B 63 33 285 416 ; +C 155 ; WX 333 ; N guilsinglright ; B 48 33 270 416 ; +C -1 ; WX 556 ; N fi ; B 31 0 521 683 ; +C -1 ; WX 556 ; N fl ; B 32 0 521 683 ; +C 150 ; WX 500 ; N endash ; B 0 201 500 250 ; +C 134 ; WX 500 ; N dagger ; B 59 -149 442 676 ; +C 135 ; WX 500 ; N daggerdbl ; B 58 -153 442 676 ; +C 183 ; WX 250 ; N periodcentered ; B 70 199 181 310 ; +C 182 ; WX 453 ; N paragraph ; B -22 -154 450 662 ; +C 149 ; WX 350 ; N bullet ; B 40 196 310 466 ; +C 130 ; WX 333 ; N quotesinglbase ; B 79 -141 218 102 ; +C 132 ; WX 444 ; N quotedblbase ; B 45 -141 416 102 ; +C 148 ; WX 444 ; N quotedblright ; B 30 433 401 676 ; +C 187 ; WX 500 ; N guillemotright ; B 44 33 458 416 ; +C 133 ; WX 1000 ; N ellipsis ; B 111 -11 888 100 ; +C 137 ; WX 1000 ; N perthousand ; B 7 -19 994 706 ; +C 191 ; WX 444 ; N questiondown ; B 30 -218 376 466 ; +C 96 ; WX 333 ; N grave ; B 19 507 242 678 ; +C 180 ; WX 333 ; N acute ; B 93 507 317 678 ; +C 136 ; WX 333 ; N circumflex ; B 11 507 322 674 ; +C 152 ; WX 333 ; N tilde ; B 1 532 331 638 ; +C 175 ; WX 333 ; N macron ; B 11 547 322 601 ; +C -1 ; WX 333 ; N breve ; B 26 507 307 664 ; +C -1 ; WX 333 ; N dotaccent ; B 118 581 216 681 ; +C 168 ; WX 333 ; N dieresis ; B 18 581 315 681 ; +C -1 ; WX 333 ; N ring ; B 67 512 266 711 ; +C 184 ; WX 333 ; N cedilla ; B 52 -215 261 0 ; +C -1 ; WX 333 ; N hungarumlaut ; B -3 507 377 678 ; +C -1 ; WX 333 ; N ogonek ; B 62 -165 243 0 ; +C -1 ; WX 333 ; N caron ; B 11 507 322 674 ; +C 151 ; WX 1000 ; N emdash ; B 0 201 1000 250 ; +C 198 ; WX 889 ; N AE ; B 0 0 863 662 ; +C 170 ; WX 276 ; N ordfeminine ; B 4 394 270 676 ; +C -1 ; WX 611 ; N Lslash ; B 12 0 598 662 ; +C 216 ; WX 722 ; N Oslash ; B 34 -80 688 734 ; +C 140 ; WX 889 ; N OE ; B 30 -6 885 668 ; +C 186 ; WX 310 ; N ordmasculine ; B 6 394 304 676 ; +C 230 ; WX 667 ; N ae ; B 38 -10 632 460 ; +C -1 ; WX 278 ; N dotlessi ; B 16 0 253 460 ; +C -1 ; WX 278 ; N lslash ; B 19 0 259 683 ; +C 248 ; WX 500 ; N oslash ; B 29 -112 470 551 ; +C 156 ; WX 722 ; N oe ; B 30 -10 690 460 ; +C 223 ; WX 500 ; N germandbls ; B 12 -9 468 683 ; +C 207 ; WX 333 ; N Idieresis ; B 18 0 315 835 ; +C 233 ; WX 444 ; N eacute ; B 25 -10 424 678 ; +C -1 ; WX 444 ; N abreve ; B 37 -10 442 664 ; +C -1 ; WX 500 ; N uhungarumlaut ; B 9 -10 501 678 ; +C -1 ; WX 444 ; N ecaron ; B 25 -10 424 674 ; +C 159 ; WX 722 ; N Ydieresis ; B 22 0 703 835 ; +C 247 ; WX 564 ; N divide ; B 30 -10 534 516 ; +C 221 ; WX 722 ; N Yacute ; B 22 0 703 890 ; +C 194 ; WX 722 ; N Acircumflex ; B 15 0 706 886 ; +C 225 ; WX 444 ; N aacute ; B 37 -10 442 678 ; +C 219 ; WX 722 ; N Ucircumflex ; B 14 -14 705 886 ; +C 253 ; WX 500 ; N yacute ; B 14 -218 475 678 ; +C -1 ; WX 389 ; N scommaaccent ; B 51 -218 348 460 ; +C 234 ; WX 444 ; N ecircumflex ; B 25 -10 424 674 ; +C -1 ; WX 722 ; N Uring ; B 14 -14 705 898 ; +C 220 ; WX 722 ; N Udieresis ; B 14 -14 705 835 ; +C -1 ; WX 444 ; N aogonek ; B 37 -165 469 460 ; +C 218 ; WX 722 ; N Uacute ; B 14 -14 705 890 ; +C -1 ; WX 500 ; N uogonek ; B 9 -155 487 450 ; +C 203 ; WX 611 ; N Edieresis ; B 12 0 597 835 ; +C -1 ; WX 722 ; N Dcroat ; B 16 0 685 662 ; +C -1 ; WX 250 ; N commaaccent ; B 59 -218 184 -50 ; +C 169 ; WX 760 ; N copyright ; B 38 -14 722 676 ; +C -1 ; WX 611 ; N Emacron ; B 12 0 597 813 ; +C -1 ; WX 444 ; N ccaron ; B 25 -10 412 674 ; +C 229 ; WX 444 ; N aring ; B 37 -10 442 711 ; +C -1 ; WX 722 ; N Ncommaaccent ; B 12 -198 707 662 ; +C -1 ; WX 278 ; N lacute ; B 19 0 290 890 ; +C 224 ; WX 444 ; N agrave ; B 37 -10 442 678 ; +C -1 ; WX 611 ; N Tcommaaccent ; B 17 -218 593 662 ; +C -1 ; WX 667 ; N Cacute ; B 28 -14 633 890 ; +C 227 ; WX 444 ; N atilde ; B 37 -10 442 638 ; +C -1 ; WX 611 ; N Edotaccent ; B 12 0 597 835 ; +C 154 ; WX 389 ; N scaron ; B 39 -10 350 674 ; +C -1 ; WX 389 ; N scedilla ; B 51 -215 348 460 ; +C 237 ; WX 278 ; N iacute ; B 16 0 290 678 ; +C -1 ; WX 471 ; N lozenge ; B 13 0 459 724 ; +C -1 ; WX 667 ; N Rcaron ; B 17 0 659 886 ; +C -1 ; WX 722 ; N Gcommaaccent ; B 32 -218 709 676 ; +C 251 ; WX 500 ; N ucircumflex ; B 9 -10 479 674 ; +C 226 ; WX 444 ; N acircumflex ; B 37 -10 442 674 ; +C -1 ; WX 722 ; N Amacron ; B 15 0 706 813 ; +C -1 ; WX 333 ; N rcaron ; B 5 0 335 674 ; +C 231 ; WX 444 ; N ccedilla ; B 25 -215 412 460 ; +C -1 ; WX 611 ; N Zdotaccent ; B 9 0 597 835 ; +C 222 ; WX 556 ; N Thorn ; B 16 0 542 662 ; +C -1 ; WX 722 ; N Omacron ; B 34 -14 688 813 ; +C -1 ; WX 667 ; N Racute ; B 17 0 659 890 ; +C -1 ; WX 556 ; N Sacute ; B 42 -14 491 890 ; +C -1 ; WX 588 ; N dcaron ; B 27 -10 589 695 ; +C -1 ; WX 722 ; N Umacron ; B 14 -14 705 813 ; +C -1 ; WX 500 ; N uring ; B 9 -10 479 711 ; +C 179 ; WX 300 ; N threesuperior ; B 15 262 291 676 ; +C 210 ; WX 722 ; N Ograve ; B 34 -14 688 890 ; +C 192 ; WX 722 ; N Agrave ; B 15 0 706 890 ; +C -1 ; WX 722 ; N Abreve ; B 15 0 706 876 ; +C 215 ; WX 564 ; N multiply ; B 38 8 527 497 ; +C 250 ; WX 500 ; N uacute ; B 9 -10 479 678 ; +C -1 ; WX 611 ; N Tcaron ; B 17 0 593 886 ; +C -1 ; WX 476 ; N partialdiff ; B 17 -38 459 710 ; +C 255 ; WX 500 ; N ydieresis ; B 14 -218 475 623 ; +C -1 ; WX 722 ; N Nacute ; B 12 -11 707 890 ; +C 238 ; WX 278 ; N icircumflex ; B -16 0 295 674 ; +C 202 ; WX 611 ; N Ecircumflex ; B 12 0 597 886 ; +C 228 ; WX 444 ; N adieresis ; B 37 -10 442 623 ; +C 235 ; WX 444 ; N edieresis ; B 25 -10 424 623 ; +C -1 ; WX 444 ; N cacute ; B 25 -10 413 678 ; +C -1 ; WX 500 ; N nacute ; B 16 0 485 678 ; +C -1 ; WX 500 ; N umacron ; B 9 -10 479 601 ; +C -1 ; WX 722 ; N Ncaron ; B 12 -11 707 886 ; +C 205 ; WX 333 ; N Iacute ; B 18 0 317 890 ; +C 177 ; WX 564 ; N plusminus ; B 30 0 534 506 ; +C 166 ; WX 200 ; N brokenbar ; B 67 -143 133 707 ; +C 174 ; WX 760 ; N registered ; B 38 -14 722 676 ; +C -1 ; WX 722 ; N Gbreve ; B 32 -14 709 876 ; +C -1 ; WX 333 ; N Idotaccent ; B 18 0 315 835 ; +C -1 ; WX 600 ; N summation ; B 15 -10 585 706 ; +C 200 ; WX 611 ; N Egrave ; B 12 0 597 890 ; +C -1 ; WX 333 ; N racute ; B 5 0 335 678 ; +C -1 ; WX 500 ; N omacron ; B 29 -10 470 601 ; +C -1 ; WX 611 ; N Zacute ; B 9 0 597 890 ; +C 142 ; WX 611 ; N Zcaron ; B 9 0 597 886 ; +C -1 ; WX 549 ; N greaterequal ; B 26 0 523 666 ; +C 208 ; WX 722 ; N Eth ; B 16 0 685 662 ; +C 199 ; WX 667 ; N Ccedilla ; B 28 -215 633 676 ; +C -1 ; WX 278 ; N lcommaaccent ; B 19 -218 257 683 ; +C -1 ; WX 326 ; N tcaron ; B 13 -10 318 722 ; +C -1 ; WX 444 ; N eogonek ; B 25 -165 424 460 ; +C -1 ; WX 722 ; N Uogonek ; B 14 -165 705 662 ; +C 193 ; WX 722 ; N Aacute ; B 15 0 706 890 ; +C 196 ; WX 722 ; N Adieresis ; B 15 0 706 835 ; +C 232 ; WX 444 ; N egrave ; B 25 -10 424 678 ; +C -1 ; WX 444 ; N zacute ; B 27 0 418 678 ; +C -1 ; WX 278 ; N iogonek ; B 16 -165 265 683 ; +C 211 ; WX 722 ; N Oacute ; B 34 -14 688 890 ; +C 243 ; WX 500 ; N oacute ; B 29 -10 470 678 ; +C -1 ; WX 444 ; N amacron ; B 37 -10 442 601 ; +C -1 ; WX 389 ; N sacute ; B 51 -10 348 678 ; +C 239 ; WX 278 ; N idieresis ; B -9 0 288 623 ; +C 212 ; WX 722 ; N Ocircumflex ; B 34 -14 688 886 ; +C 217 ; WX 722 ; N Ugrave ; B 14 -14 705 890 ; +C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ; +C 254 ; WX 500 ; N thorn ; B 5 -217 470 683 ; +C 178 ; WX 300 ; N twosuperior ; B 1 270 296 676 ; +C 214 ; WX 722 ; N Odieresis ; B 34 -14 688 835 ; +C 181 ; WX 500 ; N mu ; B 36 -218 512 450 ; +C 236 ; WX 278 ; N igrave ; B -8 0 253 678 ; +C -1 ; WX 500 ; N ohungarumlaut ; B 29 -10 491 678 ; +C -1 ; WX 611 ; N Eogonek ; B 12 -165 597 662 ; +C -1 ; WX 500 ; N dcroat ; B 27 -10 500 683 ; +C 190 ; WX 750 ; N threequarters ; B 15 -14 718 676 ; +C -1 ; WX 556 ; N Scedilla ; B 42 -215 491 676 ; +C -1 ; WX 344 ; N lcaron ; B 19 0 347 695 ; +C -1 ; WX 722 ; N Kcommaaccent ; B 34 -198 723 662 ; +C -1 ; WX 611 ; N Lacute ; B 12 0 598 890 ; +C 153 ; WX 980 ; N trademark ; B 30 256 957 662 ; +C -1 ; WX 444 ; N edotaccent ; B 25 -10 424 623 ; +C 204 ; WX 333 ; N Igrave ; B 18 0 315 890 ; +C -1 ; WX 333 ; N Imacron ; B 11 0 322 813 ; +C -1 ; WX 611 ; N Lcaron ; B 12 0 598 676 ; +C 189 ; WX 750 ; N onehalf ; B 31 -14 746 676 ; +C -1 ; WX 549 ; N lessequal ; B 26 0 523 666 ; +C 244 ; WX 500 ; N ocircumflex ; B 29 -10 470 674 ; +C 241 ; WX 500 ; N ntilde ; B 16 0 485 638 ; +C -1 ; WX 722 ; N Uhungarumlaut ; B 14 -14 705 890 ; +C 201 ; WX 611 ; N Eacute ; B 12 0 597 890 ; +C -1 ; WX 444 ; N emacron ; B 25 -10 424 601 ; +C -1 ; WX 500 ; N gbreve ; B 28 -218 470 664 ; +C 188 ; WX 750 ; N onequarter ; B 37 -14 718 676 ; +C 138 ; WX 556 ; N Scaron ; B 42 -14 491 886 ; +C -1 ; WX 556 ; N Scommaaccent ; B 42 -218 491 676 ; +C -1 ; WX 722 ; N Ohungarumlaut ; B 34 -14 688 890 ; +C 176 ; WX 400 ; N degree ; B 57 390 343 676 ; +C 242 ; WX 500 ; N ograve ; B 29 -10 470 678 ; +C -1 ; WX 667 ; N Ccaron ; B 28 -14 633 886 ; +C 249 ; WX 500 ; N ugrave ; B 9 -10 479 678 ; +C -1 ; WX 453 ; N radical ; B 2 -60 452 768 ; +C -1 ; WX 722 ; N Dcaron ; B 16 0 685 886 ; +C -1 ; WX 333 ; N rcommaaccent ; B 5 -218 335 460 ; +C 209 ; WX 722 ; N Ntilde ; B 12 -11 707 850 ; +C 245 ; WX 500 ; N otilde ; B 29 -10 470 638 ; +C -1 ; WX 667 ; N Rcommaaccent ; B 17 -198 659 662 ; +C -1 ; WX 611 ; N Lcommaaccent ; B 12 -218 598 662 ; +C 195 ; WX 722 ; N Atilde ; B 15 0 706 850 ; +C -1 ; WX 722 ; N Aogonek ; B 15 -165 738 674 ; +C 197 ; WX 722 ; N Aring ; B 15 0 706 898 ; +C 213 ; WX 722 ; N Otilde ; B 34 -14 688 850 ; +C -1 ; WX 444 ; N zdotaccent ; B 27 0 418 623 ; +C -1 ; WX 611 ; N Ecaron ; B 12 0 597 886 ; +C -1 ; WX 333 ; N Iogonek ; B 18 -165 315 662 ; +C -1 ; WX 500 ; N kcommaaccent ; B 7 -218 505 683 ; +C -1 ; WX 564 ; N minus ; B 30 220 534 286 ; +C 206 ; WX 333 ; N Icircumflex ; B 11 0 322 886 ; +C -1 ; WX 500 ; N ncaron ; B 16 0 485 674 ; +C -1 ; WX 278 ; N tcommaaccent ; B 13 -218 279 579 ; +C 172 ; WX 564 ; N logicalnot ; B 30 108 534 386 ; +C 246 ; WX 500 ; N odieresis ; B 29 -10 470 623 ; +C 252 ; WX 500 ; N udieresis ; B 9 -10 479 623 ; +C -1 ; WX 549 ; N notequal ; B 12 -31 537 547 ; +C -1 ; WX 500 ; N gcommaaccent ; B 28 -218 470 749 ; +C 240 ; WX 500 ; N eth ; B 29 -10 471 686 ; +C 158 ; WX 444 ; N zcaron ; B 27 0 418 674 ; +C -1 ; WX 500 ; N ncommaaccent ; B 16 -218 485 460 ; +C 185 ; WX 300 ; N onesuperior ; B 57 270 248 676 ; +C -1 ; WX 278 ; N imacron ; B 6 0 271 601 ; +C 128 ; WX 500 ; N Euro ; B 0 0 0 0 ; +EndCharMetrics +StartKernData +StartKernPairs 2073 +KPX A C -40 +KPX A Cacute -40 +KPX A Ccaron -40 +KPX A Ccedilla -40 +KPX A G -40 +KPX A Gbreve -40 +KPX A Gcommaaccent -40 +KPX A O -55 +KPX A Oacute -55 +KPX A Ocircumflex -55 +KPX A Odieresis -55 +KPX A Ograve -55 +KPX A Ohungarumlaut -55 +KPX A Omacron -55 +KPX A Oslash -55 +KPX A Otilde -55 +KPX A Q -55 +KPX A T -111 +KPX A Tcaron -111 +KPX A Tcommaaccent -111 +KPX A U -55 +KPX A Uacute -55 +KPX A Ucircumflex -55 +KPX A Udieresis -55 +KPX A Ugrave -55 +KPX A Uhungarumlaut -55 +KPX A Umacron -55 +KPX A Uogonek -55 +KPX A Uring -55 +KPX A V -135 +KPX A W -90 +KPX A Y -105 +KPX A Yacute -105 +KPX A Ydieresis -105 +KPX A quoteright -111 +KPX A v -74 +KPX A w -92 +KPX A y -92 +KPX A yacute -92 +KPX A ydieresis -92 +KPX Aacute C -40 +KPX Aacute Cacute -40 +KPX Aacute Ccaron -40 +KPX Aacute Ccedilla -40 +KPX Aacute G -40 +KPX Aacute Gbreve -40 +KPX Aacute Gcommaaccent -40 +KPX Aacute O -55 +KPX Aacute Oacute -55 +KPX Aacute Ocircumflex -55 +KPX Aacute Odieresis -55 +KPX Aacute Ograve -55 +KPX Aacute Ohungarumlaut -55 +KPX Aacute Omacron -55 +KPX Aacute Oslash -55 +KPX Aacute Otilde -55 +KPX Aacute Q -55 +KPX Aacute T -111 +KPX Aacute Tcaron -111 +KPX Aacute Tcommaaccent -111 +KPX Aacute U -55 +KPX Aacute Uacute -55 +KPX Aacute Ucircumflex -55 +KPX Aacute Udieresis -55 +KPX Aacute Ugrave -55 +KPX Aacute Uhungarumlaut -55 +KPX Aacute Umacron -55 +KPX Aacute Uogonek -55 +KPX Aacute Uring -55 +KPX Aacute V -135 +KPX Aacute W -90 +KPX Aacute Y -105 +KPX Aacute Yacute -105 +KPX Aacute Ydieresis -105 +KPX Aacute quoteright -111 +KPX Aacute v -74 +KPX Aacute w -92 +KPX Aacute y -92 +KPX Aacute yacute -92 +KPX Aacute ydieresis -92 +KPX Abreve C -40 +KPX Abreve Cacute -40 +KPX Abreve Ccaron -40 +KPX Abreve Ccedilla -40 +KPX Abreve G -40 +KPX Abreve Gbreve -40 +KPX Abreve Gcommaaccent -40 +KPX Abreve O -55 +KPX Abreve Oacute -55 +KPX Abreve Ocircumflex -55 +KPX Abreve Odieresis -55 +KPX Abreve Ograve -55 +KPX Abreve Ohungarumlaut -55 +KPX Abreve Omacron -55 +KPX Abreve Oslash -55 +KPX Abreve Otilde -55 +KPX Abreve Q -55 +KPX Abreve T -111 +KPX Abreve Tcaron -111 +KPX Abreve Tcommaaccent -111 +KPX Abreve U -55 +KPX Abreve Uacute -55 +KPX Abreve Ucircumflex -55 +KPX Abreve Udieresis -55 +KPX Abreve Ugrave -55 +KPX Abreve Uhungarumlaut -55 +KPX Abreve Umacron -55 +KPX Abreve Uogonek -55 +KPX Abreve Uring -55 +KPX Abreve V -135 +KPX Abreve W -90 +KPX Abreve Y -105 +KPX Abreve Yacute -105 +KPX Abreve Ydieresis -105 +KPX Abreve quoteright -111 +KPX Abreve v -74 +KPX Abreve w -92 +KPX Abreve y -92 +KPX Abreve yacute -92 +KPX Abreve ydieresis -92 +KPX Acircumflex C -40 +KPX Acircumflex Cacute -40 +KPX Acircumflex Ccaron -40 +KPX Acircumflex Ccedilla -40 +KPX Acircumflex G -40 +KPX Acircumflex Gbreve -40 +KPX Acircumflex Gcommaaccent -40 +KPX Acircumflex O -55 +KPX Acircumflex Oacute -55 +KPX Acircumflex Ocircumflex -55 +KPX Acircumflex Odieresis -55 +KPX Acircumflex Ograve -55 +KPX Acircumflex Ohungarumlaut -55 +KPX Acircumflex Omacron -55 +KPX Acircumflex Oslash -55 +KPX Acircumflex Otilde -55 +KPX Acircumflex Q -55 +KPX Acircumflex T -111 +KPX Acircumflex Tcaron -111 +KPX Acircumflex Tcommaaccent -111 +KPX Acircumflex U -55 +KPX Acircumflex Uacute -55 +KPX Acircumflex Ucircumflex -55 +KPX Acircumflex Udieresis -55 +KPX Acircumflex Ugrave -55 +KPX Acircumflex Uhungarumlaut -55 +KPX Acircumflex Umacron -55 +KPX Acircumflex Uogonek -55 +KPX Acircumflex Uring -55 +KPX Acircumflex V -135 +KPX Acircumflex W -90 +KPX Acircumflex Y -105 +KPX Acircumflex Yacute -105 +KPX Acircumflex Ydieresis -105 +KPX Acircumflex quoteright -111 +KPX Acircumflex v -74 +KPX Acircumflex w -92 +KPX Acircumflex y -92 +KPX Acircumflex yacute -92 +KPX Acircumflex ydieresis -92 +KPX Adieresis C -40 +KPX Adieresis Cacute -40 +KPX Adieresis Ccaron -40 +KPX Adieresis Ccedilla -40 +KPX Adieresis G -40 +KPX Adieresis Gbreve -40 +KPX Adieresis Gcommaaccent -40 +KPX Adieresis O -55 +KPX Adieresis Oacute -55 +KPX Adieresis Ocircumflex -55 +KPX Adieresis Odieresis -55 +KPX Adieresis Ograve -55 +KPX Adieresis Ohungarumlaut -55 +KPX Adieresis Omacron -55 +KPX Adieresis Oslash -55 +KPX Adieresis Otilde -55 +KPX Adieresis Q -55 +KPX Adieresis T -111 +KPX Adieresis Tcaron -111 +KPX Adieresis Tcommaaccent -111 +KPX Adieresis U -55 +KPX Adieresis Uacute -55 +KPX Adieresis Ucircumflex -55 +KPX Adieresis Udieresis -55 +KPX Adieresis Ugrave -55 +KPX Adieresis Uhungarumlaut -55 +KPX Adieresis Umacron -55 +KPX Adieresis Uogonek -55 +KPX Adieresis Uring -55 +KPX Adieresis V -135 +KPX Adieresis W -90 +KPX Adieresis Y -105 +KPX Adieresis Yacute -105 +KPX Adieresis Ydieresis -105 +KPX Adieresis quoteright -111 +KPX Adieresis v -74 +KPX Adieresis w -92 +KPX Adieresis y -92 +KPX Adieresis yacute -92 +KPX Adieresis ydieresis -92 +KPX Agrave C -40 +KPX Agrave Cacute -40 +KPX Agrave Ccaron -40 +KPX Agrave Ccedilla -40 +KPX Agrave G -40 +KPX Agrave Gbreve -40 +KPX Agrave Gcommaaccent -40 +KPX Agrave O -55 +KPX Agrave Oacute -55 +KPX Agrave Ocircumflex -55 +KPX Agrave Odieresis -55 +KPX Agrave Ograve -55 +KPX Agrave Ohungarumlaut -55 +KPX Agrave Omacron -55 +KPX Agrave Oslash -55 +KPX Agrave Otilde -55 +KPX Agrave Q -55 +KPX Agrave T -111 +KPX Agrave Tcaron -111 +KPX Agrave Tcommaaccent -111 +KPX Agrave U -55 +KPX Agrave Uacute -55 +KPX Agrave Ucircumflex -55 +KPX Agrave Udieresis -55 +KPX Agrave Ugrave -55 +KPX Agrave Uhungarumlaut -55 +KPX Agrave Umacron -55 +KPX Agrave Uogonek -55 +KPX Agrave Uring -55 +KPX Agrave V -135 +KPX Agrave W -90 +KPX Agrave Y -105 +KPX Agrave Yacute -105 +KPX Agrave Ydieresis -105 +KPX Agrave quoteright -111 +KPX Agrave v -74 +KPX Agrave w -92 +KPX Agrave y -92 +KPX Agrave yacute -92 +KPX Agrave ydieresis -92 +KPX Amacron C -40 +KPX Amacron Cacute -40 +KPX Amacron Ccaron -40 +KPX Amacron Ccedilla -40 +KPX Amacron G -40 +KPX Amacron Gbreve -40 +KPX Amacron Gcommaaccent -40 +KPX Amacron O -55 +KPX Amacron Oacute -55 +KPX Amacron Ocircumflex -55 +KPX Amacron Odieresis -55 +KPX Amacron Ograve -55 +KPX Amacron Ohungarumlaut -55 +KPX Amacron Omacron -55 +KPX Amacron Oslash -55 +KPX Amacron Otilde -55 +KPX Amacron Q -55 +KPX Amacron T -111 +KPX Amacron Tcaron -111 +KPX Amacron Tcommaaccent -111 +KPX Amacron U -55 +KPX Amacron Uacute -55 +KPX Amacron Ucircumflex -55 +KPX Amacron Udieresis -55 +KPX Amacron Ugrave -55 +KPX Amacron Uhungarumlaut -55 +KPX Amacron Umacron -55 +KPX Amacron Uogonek -55 +KPX Amacron Uring -55 +KPX Amacron V -135 +KPX Amacron W -90 +KPX Amacron Y -105 +KPX Amacron Yacute -105 +KPX Amacron Ydieresis -105 +KPX Amacron quoteright -111 +KPX Amacron v -74 +KPX Amacron w -92 +KPX Amacron y -92 +KPX Amacron yacute -92 +KPX Amacron ydieresis -92 +KPX Aogonek C -40 +KPX Aogonek Cacute -40 +KPX Aogonek Ccaron -40 +KPX Aogonek Ccedilla -40 +KPX Aogonek G -40 +KPX Aogonek Gbreve -40 +KPX Aogonek Gcommaaccent -40 +KPX Aogonek O -55 +KPX Aogonek Oacute -55 +KPX Aogonek Ocircumflex -55 +KPX Aogonek Odieresis -55 +KPX Aogonek Ograve -55 +KPX Aogonek Ohungarumlaut -55 +KPX Aogonek Omacron -55 +KPX Aogonek Oslash -55 +KPX Aogonek Otilde -55 +KPX Aogonek Q -55 +KPX Aogonek T -111 +KPX Aogonek Tcaron -111 +KPX Aogonek Tcommaaccent -111 +KPX Aogonek U -55 +KPX Aogonek Uacute -55 +KPX Aogonek Ucircumflex -55 +KPX Aogonek Udieresis -55 +KPX Aogonek Ugrave -55 +KPX Aogonek Uhungarumlaut -55 +KPX Aogonek Umacron -55 +KPX Aogonek Uogonek -55 +KPX Aogonek Uring -55 +KPX Aogonek V -135 +KPX Aogonek W -90 +KPX Aogonek Y -105 +KPX Aogonek Yacute -105 +KPX Aogonek Ydieresis -105 +KPX Aogonek quoteright -111 +KPX Aogonek v -74 +KPX Aogonek w -52 +KPX Aogonek y -52 +KPX Aogonek yacute -52 +KPX Aogonek ydieresis -52 +KPX Aring C -40 +KPX Aring Cacute -40 +KPX Aring Ccaron -40 +KPX Aring Ccedilla -40 +KPX Aring G -40 +KPX Aring Gbreve -40 +KPX Aring Gcommaaccent -40 +KPX Aring O -55 +KPX Aring Oacute -55 +KPX Aring Ocircumflex -55 +KPX Aring Odieresis -55 +KPX Aring Ograve -55 +KPX Aring Ohungarumlaut -55 +KPX Aring Omacron -55 +KPX Aring Oslash -55 +KPX Aring Otilde -55 +KPX Aring Q -55 +KPX Aring T -111 +KPX Aring Tcaron -111 +KPX Aring Tcommaaccent -111 +KPX Aring U -55 +KPX Aring Uacute -55 +KPX Aring Ucircumflex -55 +KPX Aring Udieresis -55 +KPX Aring Ugrave -55 +KPX Aring Uhungarumlaut -55 +KPX Aring Umacron -55 +KPX Aring Uogonek -55 +KPX Aring Uring -55 +KPX Aring V -135 +KPX Aring W -90 +KPX Aring Y -105 +KPX Aring Yacute -105 +KPX Aring Ydieresis -105 +KPX Aring quoteright -111 +KPX Aring v -74 +KPX Aring w -92 +KPX Aring y -92 +KPX Aring yacute -92 +KPX Aring ydieresis -92 +KPX Atilde C -40 +KPX Atilde Cacute -40 +KPX Atilde Ccaron -40 +KPX Atilde Ccedilla -40 +KPX Atilde G -40 +KPX Atilde Gbreve -40 +KPX Atilde Gcommaaccent -40 +KPX Atilde O -55 +KPX Atilde Oacute -55 +KPX Atilde Ocircumflex -55 +KPX Atilde Odieresis -55 +KPX Atilde Ograve -55 +KPX Atilde Ohungarumlaut -55 +KPX Atilde Omacron -55 +KPX Atilde Oslash -55 +KPX Atilde Otilde -55 +KPX Atilde Q -55 +KPX Atilde T -111 +KPX Atilde Tcaron -111 +KPX Atilde Tcommaaccent -111 +KPX Atilde U -55 +KPX Atilde Uacute -55 +KPX Atilde Ucircumflex -55 +KPX Atilde Udieresis -55 +KPX Atilde Ugrave -55 +KPX Atilde Uhungarumlaut -55 +KPX Atilde Umacron -55 +KPX Atilde Uogonek -55 +KPX Atilde Uring -55 +KPX Atilde V -135 +KPX Atilde W -90 +KPX Atilde Y -105 +KPX Atilde Yacute -105 +KPX Atilde Ydieresis -105 +KPX Atilde quoteright -111 +KPX Atilde v -74 +KPX Atilde w -92 +KPX Atilde y -92 +KPX Atilde yacute -92 +KPX Atilde ydieresis -92 +KPX B A -35 +KPX B Aacute -35 +KPX B Abreve -35 +KPX B Acircumflex -35 +KPX B Adieresis -35 +KPX B Agrave -35 +KPX B Amacron -35 +KPX B Aogonek -35 +KPX B Aring -35 +KPX B Atilde -35 +KPX B U -10 +KPX B Uacute -10 +KPX B Ucircumflex -10 +KPX B Udieresis -10 +KPX B Ugrave -10 +KPX B Uhungarumlaut -10 +KPX B Umacron -10 +KPX B Uogonek -10 +KPX B Uring -10 +KPX D A -40 +KPX D Aacute -40 +KPX D Abreve -40 +KPX D Acircumflex -40 +KPX D Adieresis -40 +KPX D Agrave -40 +KPX D Amacron -40 +KPX D Aogonek -40 +KPX D Aring -40 +KPX D Atilde -40 +KPX D V -40 +KPX D W -30 +KPX D Y -55 +KPX D Yacute -55 +KPX D Ydieresis -55 +KPX Dcaron A -40 +KPX Dcaron Aacute -40 +KPX Dcaron Abreve -40 +KPX Dcaron Acircumflex -40 +KPX Dcaron Adieresis -40 +KPX Dcaron Agrave -40 +KPX Dcaron Amacron -40 +KPX Dcaron Aogonek -40 +KPX Dcaron Aring -40 +KPX Dcaron Atilde -40 +KPX Dcaron V -40 +KPX Dcaron W -30 +KPX Dcaron Y -55 +KPX Dcaron Yacute -55 +KPX Dcaron Ydieresis -55 +KPX Dcroat A -40 +KPX Dcroat Aacute -40 +KPX Dcroat Abreve -40 +KPX Dcroat Acircumflex -40 +KPX Dcroat Adieresis -40 +KPX Dcroat Agrave -40 +KPX Dcroat Amacron -40 +KPX Dcroat Aogonek -40 +KPX Dcroat Aring -40 +KPX Dcroat Atilde -40 +KPX Dcroat V -40 +KPX Dcroat W -30 +KPX Dcroat Y -55 +KPX Dcroat Yacute -55 +KPX Dcroat Ydieresis -55 +KPX F A -74 +KPX F Aacute -74 +KPX F Abreve -74 +KPX F Acircumflex -74 +KPX F Adieresis -74 +KPX F Agrave -74 +KPX F Amacron -74 +KPX F Aogonek -74 +KPX F Aring -74 +KPX F Atilde -74 +KPX F a -15 +KPX F aacute -15 +KPX F abreve -15 +KPX F acircumflex -15 +KPX F adieresis -15 +KPX F agrave -15 +KPX F amacron -15 +KPX F aogonek -15 +KPX F aring -15 +KPX F atilde -15 +KPX F comma -80 +KPX F o -15 +KPX F oacute -15 +KPX F ocircumflex -15 +KPX F odieresis -15 +KPX F ograve -15 +KPX F ohungarumlaut -15 +KPX F omacron -15 +KPX F oslash -15 +KPX F otilde -15 +KPX F period -80 +KPX J A -60 +KPX J Aacute -60 +KPX J Abreve -60 +KPX J Acircumflex -60 +KPX J Adieresis -60 +KPX J Agrave -60 +KPX J Amacron -60 +KPX J Aogonek -60 +KPX J Aring -60 +KPX J Atilde -60 +KPX K O -30 +KPX K Oacute -30 +KPX K Ocircumflex -30 +KPX K Odieresis -30 +KPX K Ograve -30 +KPX K Ohungarumlaut -30 +KPX K Omacron -30 +KPX K Oslash -30 +KPX K Otilde -30 +KPX K e -25 +KPX K eacute -25 +KPX K ecaron -25 +KPX K ecircumflex -25 +KPX K edieresis -25 +KPX K edotaccent -25 +KPX K egrave -25 +KPX K emacron -25 +KPX K eogonek -25 +KPX K o -35 +KPX K oacute -35 +KPX K ocircumflex -35 +KPX K odieresis -35 +KPX K ograve -35 +KPX K ohungarumlaut -35 +KPX K omacron -35 +KPX K oslash -35 +KPX K otilde -35 +KPX K u -15 +KPX K uacute -15 +KPX K ucircumflex -15 +KPX K udieresis -15 +KPX K ugrave -15 +KPX K uhungarumlaut -15 +KPX K umacron -15 +KPX K uogonek -15 +KPX K uring -15 +KPX K y -25 +KPX K yacute -25 +KPX K ydieresis -25 +KPX Kcommaaccent O -30 +KPX Kcommaaccent Oacute -30 +KPX Kcommaaccent Ocircumflex -30 +KPX Kcommaaccent Odieresis -30 +KPX Kcommaaccent Ograve -30 +KPX Kcommaaccent Ohungarumlaut -30 +KPX Kcommaaccent Omacron -30 +KPX Kcommaaccent Oslash -30 +KPX Kcommaaccent Otilde -30 +KPX Kcommaaccent e -25 +KPX Kcommaaccent eacute -25 +KPX Kcommaaccent ecaron -25 +KPX Kcommaaccent ecircumflex -25 +KPX Kcommaaccent edieresis -25 +KPX Kcommaaccent edotaccent -25 +KPX Kcommaaccent egrave -25 +KPX Kcommaaccent emacron -25 +KPX Kcommaaccent eogonek -25 +KPX Kcommaaccent o -35 +KPX Kcommaaccent oacute -35 +KPX Kcommaaccent ocircumflex -35 +KPX Kcommaaccent odieresis -35 +KPX Kcommaaccent ograve -35 +KPX Kcommaaccent ohungarumlaut -35 +KPX Kcommaaccent omacron -35 +KPX Kcommaaccent oslash -35 +KPX Kcommaaccent otilde -35 +KPX Kcommaaccent u -15 +KPX Kcommaaccent uacute -15 +KPX Kcommaaccent ucircumflex -15 +KPX Kcommaaccent udieresis -15 +KPX Kcommaaccent ugrave -15 +KPX Kcommaaccent uhungarumlaut -15 +KPX Kcommaaccent umacron -15 +KPX Kcommaaccent uogonek -15 +KPX Kcommaaccent uring -15 +KPX Kcommaaccent y -25 +KPX Kcommaaccent yacute -25 +KPX Kcommaaccent ydieresis -25 +KPX L T -92 +KPX L Tcaron -92 +KPX L Tcommaaccent -92 +KPX L V -100 +KPX L W -74 +KPX L Y -100 +KPX L Yacute -100 +KPX L Ydieresis -100 +KPX L quoteright -92 +KPX L y -55 +KPX L yacute -55 +KPX L ydieresis -55 +KPX Lacute T -92 +KPX Lacute Tcaron -92 +KPX Lacute Tcommaaccent -92 +KPX Lacute V -100 +KPX Lacute W -74 +KPX Lacute Y -100 +KPX Lacute Yacute -100 +KPX Lacute Ydieresis -100 +KPX Lacute quoteright -92 +KPX Lacute y -55 +KPX Lacute yacute -55 +KPX Lacute ydieresis -55 +KPX Lcaron quoteright -92 +KPX Lcaron y -55 +KPX Lcaron yacute -55 +KPX Lcaron ydieresis -55 +KPX Lcommaaccent T -92 +KPX Lcommaaccent Tcaron -92 +KPX Lcommaaccent Tcommaaccent -92 +KPX Lcommaaccent V -100 +KPX Lcommaaccent W -74 +KPX Lcommaaccent Y -100 +KPX Lcommaaccent Yacute -100 +KPX Lcommaaccent Ydieresis -100 +KPX Lcommaaccent quoteright -92 +KPX Lcommaaccent y -55 +KPX Lcommaaccent yacute -55 +KPX Lcommaaccent ydieresis -55 +KPX Lslash T -92 +KPX Lslash Tcaron -92 +KPX Lslash Tcommaaccent -92 +KPX Lslash V -100 +KPX Lslash W -74 +KPX Lslash Y -100 +KPX Lslash Yacute -100 +KPX Lslash Ydieresis -100 +KPX Lslash quoteright -92 +KPX Lslash y -55 +KPX Lslash yacute -55 +KPX Lslash ydieresis -55 +KPX N A -35 +KPX N Aacute -35 +KPX N Abreve -35 +KPX N Acircumflex -35 +KPX N Adieresis -35 +KPX N Agrave -35 +KPX N Amacron -35 +KPX N Aogonek -35 +KPX N Aring -35 +KPX N Atilde -35 +KPX Nacute A -35 +KPX Nacute Aacute -35 +KPX Nacute Abreve -35 +KPX Nacute Acircumflex -35 +KPX Nacute Adieresis -35 +KPX Nacute Agrave -35 +KPX Nacute Amacron -35 +KPX Nacute Aogonek -35 +KPX Nacute Aring -35 +KPX Nacute Atilde -35 +KPX Ncaron A -35 +KPX Ncaron Aacute -35 +KPX Ncaron Abreve -35 +KPX Ncaron Acircumflex -35 +KPX Ncaron Adieresis -35 +KPX Ncaron Agrave -35 +KPX Ncaron Amacron -35 +KPX Ncaron Aogonek -35 +KPX Ncaron Aring -35 +KPX Ncaron Atilde -35 +KPX Ncommaaccent A -35 +KPX Ncommaaccent Aacute -35 +KPX Ncommaaccent Abreve -35 +KPX Ncommaaccent Acircumflex -35 +KPX Ncommaaccent Adieresis -35 +KPX Ncommaaccent Agrave -35 +KPX Ncommaaccent Amacron -35 +KPX Ncommaaccent Aogonek -35 +KPX Ncommaaccent Aring -35 +KPX Ncommaaccent Atilde -35 +KPX Ntilde A -35 +KPX Ntilde Aacute -35 +KPX Ntilde Abreve -35 +KPX Ntilde Acircumflex -35 +KPX Ntilde Adieresis -35 +KPX Ntilde Agrave -35 +KPX Ntilde Amacron -35 +KPX Ntilde Aogonek -35 +KPX Ntilde Aring -35 +KPX Ntilde Atilde -35 +KPX O A -35 +KPX O Aacute -35 +KPX O Abreve -35 +KPX O Acircumflex -35 +KPX O Adieresis -35 +KPX O Agrave -35 +KPX O Amacron -35 +KPX O Aogonek -35 +KPX O Aring -35 +KPX O Atilde -35 +KPX O T -40 +KPX O Tcaron -40 +KPX O Tcommaaccent -40 +KPX O V -50 +KPX O W -35 +KPX O X -40 +KPX O Y -50 +KPX O Yacute -50 +KPX O Ydieresis -50 +KPX Oacute A -35 +KPX Oacute Aacute -35 +KPX Oacute Abreve -35 +KPX Oacute Acircumflex -35 +KPX Oacute Adieresis -35 +KPX Oacute Agrave -35 +KPX Oacute Amacron -35 +KPX Oacute Aogonek -35 +KPX Oacute Aring -35 +KPX Oacute Atilde -35 +KPX Oacute T -40 +KPX Oacute Tcaron -40 +KPX Oacute Tcommaaccent -40 +KPX Oacute V -50 +KPX Oacute W -35 +KPX Oacute X -40 +KPX Oacute Y -50 +KPX Oacute Yacute -50 +KPX Oacute Ydieresis -50 +KPX Ocircumflex A -35 +KPX Ocircumflex Aacute -35 +KPX Ocircumflex Abreve -35 +KPX Ocircumflex Acircumflex -35 +KPX Ocircumflex Adieresis -35 +KPX Ocircumflex Agrave -35 +KPX Ocircumflex Amacron -35 +KPX Ocircumflex Aogonek -35 +KPX Ocircumflex Aring -35 +KPX Ocircumflex Atilde -35 +KPX Ocircumflex T -40 +KPX Ocircumflex Tcaron -40 +KPX Ocircumflex Tcommaaccent -40 +KPX Ocircumflex V -50 +KPX Ocircumflex W -35 +KPX Ocircumflex X -40 +KPX Ocircumflex Y -50 +KPX Ocircumflex Yacute -50 +KPX Ocircumflex Ydieresis -50 +KPX Odieresis A -35 +KPX Odieresis Aacute -35 +KPX Odieresis Abreve -35 +KPX Odieresis Acircumflex -35 +KPX Odieresis Adieresis -35 +KPX Odieresis Agrave -35 +KPX Odieresis Amacron -35 +KPX Odieresis Aogonek -35 +KPX Odieresis Aring -35 +KPX Odieresis Atilde -35 +KPX Odieresis T -40 +KPX Odieresis Tcaron -40 +KPX Odieresis Tcommaaccent -40 +KPX Odieresis V -50 +KPX Odieresis W -35 +KPX Odieresis X -40 +KPX Odieresis Y -50 +KPX Odieresis Yacute -50 +KPX Odieresis Ydieresis -50 +KPX Ograve A -35 +KPX Ograve Aacute -35 +KPX Ograve Abreve -35 +KPX Ograve Acircumflex -35 +KPX Ograve Adieresis -35 +KPX Ograve Agrave -35 +KPX Ograve Amacron -35 +KPX Ograve Aogonek -35 +KPX Ograve Aring -35 +KPX Ograve Atilde -35 +KPX Ograve T -40 +KPX Ograve Tcaron -40 +KPX Ograve Tcommaaccent -40 +KPX Ograve V -50 +KPX Ograve W -35 +KPX Ograve X -40 +KPX Ograve Y -50 +KPX Ograve Yacute -50 +KPX Ograve Ydieresis -50 +KPX Ohungarumlaut A -35 +KPX Ohungarumlaut Aacute -35 +KPX Ohungarumlaut Abreve -35 +KPX Ohungarumlaut Acircumflex -35 +KPX Ohungarumlaut Adieresis -35 +KPX Ohungarumlaut Agrave -35 +KPX Ohungarumlaut Amacron -35 +KPX Ohungarumlaut Aogonek -35 +KPX Ohungarumlaut Aring -35 +KPX Ohungarumlaut Atilde -35 +KPX Ohungarumlaut T -40 +KPX Ohungarumlaut Tcaron -40 +KPX Ohungarumlaut Tcommaaccent -40 +KPX Ohungarumlaut V -50 +KPX Ohungarumlaut W -35 +KPX Ohungarumlaut X -40 +KPX Ohungarumlaut Y -50 +KPX Ohungarumlaut Yacute -50 +KPX Ohungarumlaut Ydieresis -50 +KPX Omacron A -35 +KPX Omacron Aacute -35 +KPX Omacron Abreve -35 +KPX Omacron Acircumflex -35 +KPX Omacron Adieresis -35 +KPX Omacron Agrave -35 +KPX Omacron Amacron -35 +KPX Omacron Aogonek -35 +KPX Omacron Aring -35 +KPX Omacron Atilde -35 +KPX Omacron T -40 +KPX Omacron Tcaron -40 +KPX Omacron Tcommaaccent -40 +KPX Omacron V -50 +KPX Omacron W -35 +KPX Omacron X -40 +KPX Omacron Y -50 +KPX Omacron Yacute -50 +KPX Omacron Ydieresis -50 +KPX Oslash A -35 +KPX Oslash Aacute -35 +KPX Oslash Abreve -35 +KPX Oslash Acircumflex -35 +KPX Oslash Adieresis -35 +KPX Oslash Agrave -35 +KPX Oslash Amacron -35 +KPX Oslash Aogonek -35 +KPX Oslash Aring -35 +KPX Oslash Atilde -35 +KPX Oslash T -40 +KPX Oslash Tcaron -40 +KPX Oslash Tcommaaccent -40 +KPX Oslash V -50 +KPX Oslash W -35 +KPX Oslash X -40 +KPX Oslash Y -50 +KPX Oslash Yacute -50 +KPX Oslash Ydieresis -50 +KPX Otilde A -35 +KPX Otilde Aacute -35 +KPX Otilde Abreve -35 +KPX Otilde Acircumflex -35 +KPX Otilde Adieresis -35 +KPX Otilde Agrave -35 +KPX Otilde Amacron -35 +KPX Otilde Aogonek -35 +KPX Otilde Aring -35 +KPX Otilde Atilde -35 +KPX Otilde T -40 +KPX Otilde Tcaron -40 +KPX Otilde Tcommaaccent -40 +KPX Otilde V -50 +KPX Otilde W -35 +KPX Otilde X -40 +KPX Otilde Y -50 +KPX Otilde Yacute -50 +KPX Otilde Ydieresis -50 +KPX P A -92 +KPX P Aacute -92 +KPX P Abreve -92 +KPX P Acircumflex -92 +KPX P Adieresis -92 +KPX P Agrave -92 +KPX P Amacron -92 +KPX P Aogonek -92 +KPX P Aring -92 +KPX P Atilde -92 +KPX P a -15 +KPX P aacute -15 +KPX P abreve -15 +KPX P acircumflex -15 +KPX P adieresis -15 +KPX P agrave -15 +KPX P amacron -15 +KPX P aogonek -15 +KPX P aring -15 +KPX P atilde -15 +KPX P comma -111 +KPX P period -111 +KPX Q U -10 +KPX Q Uacute -10 +KPX Q Ucircumflex -10 +KPX Q Udieresis -10 +KPX Q Ugrave -10 +KPX Q Uhungarumlaut -10 +KPX Q Umacron -10 +KPX Q Uogonek -10 +KPX Q Uring -10 +KPX R O -40 +KPX R Oacute -40 +KPX R Ocircumflex -40 +KPX R Odieresis -40 +KPX R Ograve -40 +KPX R Ohungarumlaut -40 +KPX R Omacron -40 +KPX R Oslash -40 +KPX R Otilde -40 +KPX R T -60 +KPX R Tcaron -60 +KPX R Tcommaaccent -60 +KPX R U -40 +KPX R Uacute -40 +KPX R Ucircumflex -40 +KPX R Udieresis -40 +KPX R Ugrave -40 +KPX R Uhungarumlaut -40 +KPX R Umacron -40 +KPX R Uogonek -40 +KPX R Uring -40 +KPX R V -80 +KPX R W -55 +KPX R Y -65 +KPX R Yacute -65 +KPX R Ydieresis -65 +KPX Racute O -40 +KPX Racute Oacute -40 +KPX Racute Ocircumflex -40 +KPX Racute Odieresis -40 +KPX Racute Ograve -40 +KPX Racute Ohungarumlaut -40 +KPX Racute Omacron -40 +KPX Racute Oslash -40 +KPX Racute Otilde -40 +KPX Racute T -60 +KPX Racute Tcaron -60 +KPX Racute Tcommaaccent -60 +KPX Racute U -40 +KPX Racute Uacute -40 +KPX Racute Ucircumflex -40 +KPX Racute Udieresis -40 +KPX Racute Ugrave -40 +KPX Racute Uhungarumlaut -40 +KPX Racute Umacron -40 +KPX Racute Uogonek -40 +KPX Racute Uring -40 +KPX Racute V -80 +KPX Racute W -55 +KPX Racute Y -65 +KPX Racute Yacute -65 +KPX Racute Ydieresis -65 +KPX Rcaron O -40 +KPX Rcaron Oacute -40 +KPX Rcaron Ocircumflex -40 +KPX Rcaron Odieresis -40 +KPX Rcaron Ograve -40 +KPX Rcaron Ohungarumlaut -40 +KPX Rcaron Omacron -40 +KPX Rcaron Oslash -40 +KPX Rcaron Otilde -40 +KPX Rcaron T -60 +KPX Rcaron Tcaron -60 +KPX Rcaron Tcommaaccent -60 +KPX Rcaron U -40 +KPX Rcaron Uacute -40 +KPX Rcaron Ucircumflex -40 +KPX Rcaron Udieresis -40 +KPX Rcaron Ugrave -40 +KPX Rcaron Uhungarumlaut -40 +KPX Rcaron Umacron -40 +KPX Rcaron Uogonek -40 +KPX Rcaron Uring -40 +KPX Rcaron V -80 +KPX Rcaron W -55 +KPX Rcaron Y -65 +KPX Rcaron Yacute -65 +KPX Rcaron Ydieresis -65 +KPX Rcommaaccent O -40 +KPX Rcommaaccent Oacute -40 +KPX Rcommaaccent Ocircumflex -40 +KPX Rcommaaccent Odieresis -40 +KPX Rcommaaccent Ograve -40 +KPX Rcommaaccent Ohungarumlaut -40 +KPX Rcommaaccent Omacron -40 +KPX Rcommaaccent Oslash -40 +KPX Rcommaaccent Otilde -40 +KPX Rcommaaccent T -60 +KPX Rcommaaccent Tcaron -60 +KPX Rcommaaccent Tcommaaccent -60 +KPX Rcommaaccent U -40 +KPX Rcommaaccent Uacute -40 +KPX Rcommaaccent Ucircumflex -40 +KPX Rcommaaccent Udieresis -40 +KPX Rcommaaccent Ugrave -40 +KPX Rcommaaccent Uhungarumlaut -40 +KPX Rcommaaccent Umacron -40 +KPX Rcommaaccent Uogonek -40 +KPX Rcommaaccent Uring -40 +KPX Rcommaaccent V -80 +KPX Rcommaaccent W -55 +KPX Rcommaaccent Y -65 +KPX Rcommaaccent Yacute -65 +KPX Rcommaaccent Ydieresis -65 +KPX T A -93 +KPX T Aacute -93 +KPX T Abreve -93 +KPX T Acircumflex -93 +KPX T Adieresis -93 +KPX T Agrave -93 +KPX T Amacron -93 +KPX T Aogonek -93 +KPX T Aring -93 +KPX T Atilde -93 +KPX T O -18 +KPX T Oacute -18 +KPX T Ocircumflex -18 +KPX T Odieresis -18 +KPX T Ograve -18 +KPX T Ohungarumlaut -18 +KPX T Omacron -18 +KPX T Oslash -18 +KPX T Otilde -18 +KPX T a -80 +KPX T aacute -80 +KPX T abreve -80 +KPX T acircumflex -80 +KPX T adieresis -40 +KPX T agrave -40 +KPX T amacron -40 +KPX T aogonek -80 +KPX T aring -80 +KPX T atilde -40 +KPX T colon -50 +KPX T comma -74 +KPX T e -70 +KPX T eacute -70 +KPX T ecaron -70 +KPX T ecircumflex -70 +KPX T edieresis -30 +KPX T edotaccent -70 +KPX T egrave -70 +KPX T emacron -30 +KPX T eogonek -70 +KPX T hyphen -92 +KPX T i -35 +KPX T iacute -35 +KPX T iogonek -35 +KPX T o -80 +KPX T oacute -80 +KPX T ocircumflex -80 +KPX T odieresis -80 +KPX T ograve -80 +KPX T ohungarumlaut -80 +KPX T omacron -80 +KPX T oslash -80 +KPX T otilde -80 +KPX T period -74 +KPX T r -35 +KPX T racute -35 +KPX T rcaron -35 +KPX T rcommaaccent -35 +KPX T semicolon -55 +KPX T u -45 +KPX T uacute -45 +KPX T ucircumflex -45 +KPX T udieresis -45 +KPX T ugrave -45 +KPX T uhungarumlaut -45 +KPX T umacron -45 +KPX T uogonek -45 +KPX T uring -45 +KPX T w -80 +KPX T y -80 +KPX T yacute -80 +KPX T ydieresis -80 +KPX Tcaron A -93 +KPX Tcaron Aacute -93 +KPX Tcaron Abreve -93 +KPX Tcaron Acircumflex -93 +KPX Tcaron Adieresis -93 +KPX Tcaron Agrave -93 +KPX Tcaron Amacron -93 +KPX Tcaron Aogonek -93 +KPX Tcaron Aring -93 +KPX Tcaron Atilde -93 +KPX Tcaron O -18 +KPX Tcaron Oacute -18 +KPX Tcaron Ocircumflex -18 +KPX Tcaron Odieresis -18 +KPX Tcaron Ograve -18 +KPX Tcaron Ohungarumlaut -18 +KPX Tcaron Omacron -18 +KPX Tcaron Oslash -18 +KPX Tcaron Otilde -18 +KPX Tcaron a -80 +KPX Tcaron aacute -80 +KPX Tcaron abreve -80 +KPX Tcaron acircumflex -80 +KPX Tcaron adieresis -40 +KPX Tcaron agrave -40 +KPX Tcaron amacron -40 +KPX Tcaron aogonek -80 +KPX Tcaron aring -80 +KPX Tcaron atilde -40 +KPX Tcaron colon -50 +KPX Tcaron comma -74 +KPX Tcaron e -70 +KPX Tcaron eacute -70 +KPX Tcaron ecaron -70 +KPX Tcaron ecircumflex -30 +KPX Tcaron edieresis -30 +KPX Tcaron edotaccent -70 +KPX Tcaron egrave -70 +KPX Tcaron emacron -30 +KPX Tcaron eogonek -70 +KPX Tcaron hyphen -92 +KPX Tcaron i -35 +KPX Tcaron iacute -35 +KPX Tcaron iogonek -35 +KPX Tcaron o -80 +KPX Tcaron oacute -80 +KPX Tcaron ocircumflex -80 +KPX Tcaron odieresis -80 +KPX Tcaron ograve -80 +KPX Tcaron ohungarumlaut -80 +KPX Tcaron omacron -80 +KPX Tcaron oslash -80 +KPX Tcaron otilde -80 +KPX Tcaron period -74 +KPX Tcaron r -35 +KPX Tcaron racute -35 +KPX Tcaron rcaron -35 +KPX Tcaron rcommaaccent -35 +KPX Tcaron semicolon -55 +KPX Tcaron u -45 +KPX Tcaron uacute -45 +KPX Tcaron ucircumflex -45 +KPX Tcaron udieresis -45 +KPX Tcaron ugrave -45 +KPX Tcaron uhungarumlaut -45 +KPX Tcaron umacron -45 +KPX Tcaron uogonek -45 +KPX Tcaron uring -45 +KPX Tcaron w -80 +KPX Tcaron y -80 +KPX Tcaron yacute -80 +KPX Tcaron ydieresis -80 +KPX Tcommaaccent A -93 +KPX Tcommaaccent Aacute -93 +KPX Tcommaaccent Abreve -93 +KPX Tcommaaccent Acircumflex -93 +KPX Tcommaaccent Adieresis -93 +KPX Tcommaaccent Agrave -93 +KPX Tcommaaccent Amacron -93 +KPX Tcommaaccent Aogonek -93 +KPX Tcommaaccent Aring -93 +KPX Tcommaaccent Atilde -93 +KPX Tcommaaccent O -18 +KPX Tcommaaccent Oacute -18 +KPX Tcommaaccent Ocircumflex -18 +KPX Tcommaaccent Odieresis -18 +KPX Tcommaaccent Ograve -18 +KPX Tcommaaccent Ohungarumlaut -18 +KPX Tcommaaccent Omacron -18 +KPX Tcommaaccent Oslash -18 +KPX Tcommaaccent Otilde -18 +KPX Tcommaaccent a -80 +KPX Tcommaaccent aacute -80 +KPX Tcommaaccent abreve -80 +KPX Tcommaaccent acircumflex -80 +KPX Tcommaaccent adieresis -40 +KPX Tcommaaccent agrave -40 +KPX Tcommaaccent amacron -40 +KPX Tcommaaccent aogonek -80 +KPX Tcommaaccent aring -80 +KPX Tcommaaccent atilde -40 +KPX Tcommaaccent colon -50 +KPX Tcommaaccent comma -74 +KPX Tcommaaccent e -70 +KPX Tcommaaccent eacute -70 +KPX Tcommaaccent ecaron -70 +KPX Tcommaaccent ecircumflex -30 +KPX Tcommaaccent edieresis -30 +KPX Tcommaaccent edotaccent -70 +KPX Tcommaaccent egrave -30 +KPX Tcommaaccent emacron -70 +KPX Tcommaaccent eogonek -70 +KPX Tcommaaccent hyphen -92 +KPX Tcommaaccent i -35 +KPX Tcommaaccent iacute -35 +KPX Tcommaaccent iogonek -35 +KPX Tcommaaccent o -80 +KPX Tcommaaccent oacute -80 +KPX Tcommaaccent ocircumflex -80 +KPX Tcommaaccent odieresis -80 +KPX Tcommaaccent ograve -80 +KPX Tcommaaccent ohungarumlaut -80 +KPX Tcommaaccent omacron -80 +KPX Tcommaaccent oslash -80 +KPX Tcommaaccent otilde -80 +KPX Tcommaaccent period -74 +KPX Tcommaaccent r -35 +KPX Tcommaaccent racute -35 +KPX Tcommaaccent rcaron -35 +KPX Tcommaaccent rcommaaccent -35 +KPX Tcommaaccent semicolon -55 +KPX Tcommaaccent u -45 +KPX Tcommaaccent uacute -45 +KPX Tcommaaccent ucircumflex -45 +KPX Tcommaaccent udieresis -45 +KPX Tcommaaccent ugrave -45 +KPX Tcommaaccent uhungarumlaut -45 +KPX Tcommaaccent umacron -45 +KPX Tcommaaccent uogonek -45 +KPX Tcommaaccent uring -45 +KPX Tcommaaccent w -80 +KPX Tcommaaccent y -80 +KPX Tcommaaccent yacute -80 +KPX Tcommaaccent ydieresis -80 +KPX U A -40 +KPX U Aacute -40 +KPX U Abreve -40 +KPX U Acircumflex -40 +KPX U Adieresis -40 +KPX U Agrave -40 +KPX U Amacron -40 +KPX U Aogonek -40 +KPX U Aring -40 +KPX U Atilde -40 +KPX Uacute A -40 +KPX Uacute Aacute -40 +KPX Uacute Abreve -40 +KPX Uacute Acircumflex -40 +KPX Uacute Adieresis -40 +KPX Uacute Agrave -40 +KPX Uacute Amacron -40 +KPX Uacute Aogonek -40 +KPX Uacute Aring -40 +KPX Uacute Atilde -40 +KPX Ucircumflex A -40 +KPX Ucircumflex Aacute -40 +KPX Ucircumflex Abreve -40 +KPX Ucircumflex Acircumflex -40 +KPX Ucircumflex Adieresis -40 +KPX Ucircumflex Agrave -40 +KPX Ucircumflex Amacron -40 +KPX Ucircumflex Aogonek -40 +KPX Ucircumflex Aring -40 +KPX Ucircumflex Atilde -40 +KPX Udieresis A -40 +KPX Udieresis Aacute -40 +KPX Udieresis Abreve -40 +KPX Udieresis Acircumflex -40 +KPX Udieresis Adieresis -40 +KPX Udieresis Agrave -40 +KPX Udieresis Amacron -40 +KPX Udieresis Aogonek -40 +KPX Udieresis Aring -40 +KPX Udieresis Atilde -40 +KPX Ugrave A -40 +KPX Ugrave Aacute -40 +KPX Ugrave Abreve -40 +KPX Ugrave Acircumflex -40 +KPX Ugrave Adieresis -40 +KPX Ugrave Agrave -40 +KPX Ugrave Amacron -40 +KPX Ugrave Aogonek -40 +KPX Ugrave Aring -40 +KPX Ugrave Atilde -40 +KPX Uhungarumlaut A -40 +KPX Uhungarumlaut Aacute -40 +KPX Uhungarumlaut Abreve -40 +KPX Uhungarumlaut Acircumflex -40 +KPX Uhungarumlaut Adieresis -40 +KPX Uhungarumlaut Agrave -40 +KPX Uhungarumlaut Amacron -40 +KPX Uhungarumlaut Aogonek -40 +KPX Uhungarumlaut Aring -40 +KPX Uhungarumlaut Atilde -40 +KPX Umacron A -40 +KPX Umacron Aacute -40 +KPX Umacron Abreve -40 +KPX Umacron Acircumflex -40 +KPX Umacron Adieresis -40 +KPX Umacron Agrave -40 +KPX Umacron Amacron -40 +KPX Umacron Aogonek -40 +KPX Umacron Aring -40 +KPX Umacron Atilde -40 +KPX Uogonek A -40 +KPX Uogonek Aacute -40 +KPX Uogonek Abreve -40 +KPX Uogonek Acircumflex -40 +KPX Uogonek Adieresis -40 +KPX Uogonek Agrave -40 +KPX Uogonek Amacron -40 +KPX Uogonek Aogonek -40 +KPX Uogonek Aring -40 +KPX Uogonek Atilde -40 +KPX Uring A -40 +KPX Uring Aacute -40 +KPX Uring Abreve -40 +KPX Uring Acircumflex -40 +KPX Uring Adieresis -40 +KPX Uring Agrave -40 +KPX Uring Amacron -40 +KPX Uring Aogonek -40 +KPX Uring Aring -40 +KPX Uring Atilde -40 +KPX V A -135 +KPX V Aacute -135 +KPX V Abreve -135 +KPX V Acircumflex -135 +KPX V Adieresis -135 +KPX V Agrave -135 +KPX V Amacron -135 +KPX V Aogonek -135 +KPX V Aring -135 +KPX V Atilde -135 +KPX V G -15 +KPX V Gbreve -15 +KPX V Gcommaaccent -15 +KPX V O -40 +KPX V Oacute -40 +KPX V Ocircumflex -40 +KPX V Odieresis -40 +KPX V Ograve -40 +KPX V Ohungarumlaut -40 +KPX V Omacron -40 +KPX V Oslash -40 +KPX V Otilde -40 +KPX V a -111 +KPX V aacute -111 +KPX V abreve -111 +KPX V acircumflex -71 +KPX V adieresis -71 +KPX V agrave -71 +KPX V amacron -71 +KPX V aogonek -111 +KPX V aring -111 +KPX V atilde -71 +KPX V colon -74 +KPX V comma -129 +KPX V e -111 +KPX V eacute -111 +KPX V ecaron -71 +KPX V ecircumflex -71 +KPX V edieresis -71 +KPX V edotaccent -111 +KPX V egrave -71 +KPX V emacron -71 +KPX V eogonek -111 +KPX V hyphen -100 +KPX V i -60 +KPX V iacute -60 +KPX V icircumflex -20 +KPX V idieresis -20 +KPX V igrave -20 +KPX V imacron -20 +KPX V iogonek -60 +KPX V o -129 +KPX V oacute -129 +KPX V ocircumflex -129 +KPX V odieresis -89 +KPX V ograve -89 +KPX V ohungarumlaut -129 +KPX V omacron -89 +KPX V oslash -129 +KPX V otilde -89 +KPX V period -129 +KPX V semicolon -74 +KPX V u -75 +KPX V uacute -75 +KPX V ucircumflex -75 +KPX V udieresis -75 +KPX V ugrave -75 +KPX V uhungarumlaut -75 +KPX V umacron -75 +KPX V uogonek -75 +KPX V uring -75 +KPX W A -120 +KPX W Aacute -120 +KPX W Abreve -120 +KPX W Acircumflex -120 +KPX W Adieresis -120 +KPX W Agrave -120 +KPX W Amacron -120 +KPX W Aogonek -120 +KPX W Aring -120 +KPX W Atilde -120 +KPX W O -10 +KPX W Oacute -10 +KPX W Ocircumflex -10 +KPX W Odieresis -10 +KPX W Ograve -10 +KPX W Ohungarumlaut -10 +KPX W Omacron -10 +KPX W Oslash -10 +KPX W Otilde -10 +KPX W a -80 +KPX W aacute -80 +KPX W abreve -80 +KPX W acircumflex -80 +KPX W adieresis -80 +KPX W agrave -80 +KPX W amacron -80 +KPX W aogonek -80 +KPX W aring -80 +KPX W atilde -80 +KPX W colon -37 +KPX W comma -92 +KPX W e -80 +KPX W eacute -80 +KPX W ecaron -80 +KPX W ecircumflex -80 +KPX W edieresis -40 +KPX W edotaccent -80 +KPX W egrave -40 +KPX W emacron -40 +KPX W eogonek -80 +KPX W hyphen -65 +KPX W i -40 +KPX W iacute -40 +KPX W iogonek -40 +KPX W o -80 +KPX W oacute -80 +KPX W ocircumflex -80 +KPX W odieresis -80 +KPX W ograve -80 +KPX W ohungarumlaut -80 +KPX W omacron -80 +KPX W oslash -80 +KPX W otilde -80 +KPX W period -92 +KPX W semicolon -37 +KPX W u -50 +KPX W uacute -50 +KPX W ucircumflex -50 +KPX W udieresis -50 +KPX W ugrave -50 +KPX W uhungarumlaut -50 +KPX W umacron -50 +KPX W uogonek -50 +KPX W uring -50 +KPX W y -73 +KPX W yacute -73 +KPX W ydieresis -73 +KPX Y A -120 +KPX Y Aacute -120 +KPX Y Abreve -120 +KPX Y Acircumflex -120 +KPX Y Adieresis -120 +KPX Y Agrave -120 +KPX Y Amacron -120 +KPX Y Aogonek -120 +KPX Y Aring -120 +KPX Y Atilde -120 +KPX Y O -30 +KPX Y Oacute -30 +KPX Y Ocircumflex -30 +KPX Y Odieresis -30 +KPX Y Ograve -30 +KPX Y Ohungarumlaut -30 +KPX Y Omacron -30 +KPX Y Oslash -30 +KPX Y Otilde -30 +KPX Y a -100 +KPX Y aacute -100 +KPX Y abreve -100 +KPX Y acircumflex -100 +KPX Y adieresis -60 +KPX Y agrave -60 +KPX Y amacron -60 +KPX Y aogonek -100 +KPX Y aring -100 +KPX Y atilde -60 +KPX Y colon -92 +KPX Y comma -129 +KPX Y e -100 +KPX Y eacute -100 +KPX Y ecaron -100 +KPX Y ecircumflex -100 +KPX Y edieresis -60 +KPX Y edotaccent -100 +KPX Y egrave -60 +KPX Y emacron -60 +KPX Y eogonek -100 +KPX Y hyphen -111 +KPX Y i -55 +KPX Y iacute -55 +KPX Y iogonek -55 +KPX Y o -110 +KPX Y oacute -110 +KPX Y ocircumflex -110 +KPX Y odieresis -70 +KPX Y ograve -70 +KPX Y ohungarumlaut -110 +KPX Y omacron -70 +KPX Y oslash -110 +KPX Y otilde -70 +KPX Y period -129 +KPX Y semicolon -92 +KPX Y u -111 +KPX Y uacute -111 +KPX Y ucircumflex -111 +KPX Y udieresis -71 +KPX Y ugrave -71 +KPX Y uhungarumlaut -111 +KPX Y umacron -71 +KPX Y uogonek -111 +KPX Y uring -111 +KPX Yacute A -120 +KPX Yacute Aacute -120 +KPX Yacute Abreve -120 +KPX Yacute Acircumflex -120 +KPX Yacute Adieresis -120 +KPX Yacute Agrave -120 +KPX Yacute Amacron -120 +KPX Yacute Aogonek -120 +KPX Yacute Aring -120 +KPX Yacute Atilde -120 +KPX Yacute O -30 +KPX Yacute Oacute -30 +KPX Yacute Ocircumflex -30 +KPX Yacute Odieresis -30 +KPX Yacute Ograve -30 +KPX Yacute Ohungarumlaut -30 +KPX Yacute Omacron -30 +KPX Yacute Oslash -30 +KPX Yacute Otilde -30 +KPX Yacute a -100 +KPX Yacute aacute -100 +KPX Yacute abreve -100 +KPX Yacute acircumflex -100 +KPX Yacute adieresis -60 +KPX Yacute agrave -60 +KPX Yacute amacron -60 +KPX Yacute aogonek -100 +KPX Yacute aring -100 +KPX Yacute atilde -60 +KPX Yacute colon -92 +KPX Yacute comma -129 +KPX Yacute e -100 +KPX Yacute eacute -100 +KPX Yacute ecaron -100 +KPX Yacute ecircumflex -100 +KPX Yacute edieresis -60 +KPX Yacute edotaccent -100 +KPX Yacute egrave -60 +KPX Yacute emacron -60 +KPX Yacute eogonek -100 +KPX Yacute hyphen -111 +KPX Yacute i -55 +KPX Yacute iacute -55 +KPX Yacute iogonek -55 +KPX Yacute o -110 +KPX Yacute oacute -110 +KPX Yacute ocircumflex -110 +KPX Yacute odieresis -70 +KPX Yacute ograve -70 +KPX Yacute ohungarumlaut -110 +KPX Yacute omacron -70 +KPX Yacute oslash -110 +KPX Yacute otilde -70 +KPX Yacute period -129 +KPX Yacute semicolon -92 +KPX Yacute u -111 +KPX Yacute uacute -111 +KPX Yacute ucircumflex -111 +KPX Yacute udieresis -71 +KPX Yacute ugrave -71 +KPX Yacute uhungarumlaut -111 +KPX Yacute umacron -71 +KPX Yacute uogonek -111 +KPX Yacute uring -111 +KPX Ydieresis A -120 +KPX Ydieresis Aacute -120 +KPX Ydieresis Abreve -120 +KPX Ydieresis Acircumflex -120 +KPX Ydieresis Adieresis -120 +KPX Ydieresis Agrave -120 +KPX Ydieresis Amacron -120 +KPX Ydieresis Aogonek -120 +KPX Ydieresis Aring -120 +KPX Ydieresis Atilde -120 +KPX Ydieresis O -30 +KPX Ydieresis Oacute -30 +KPX Ydieresis Ocircumflex -30 +KPX Ydieresis Odieresis -30 +KPX Ydieresis Ograve -30 +KPX Ydieresis Ohungarumlaut -30 +KPX Ydieresis Omacron -30 +KPX Ydieresis Oslash -30 +KPX Ydieresis Otilde -30 +KPX Ydieresis a -100 +KPX Ydieresis aacute -100 +KPX Ydieresis abreve -100 +KPX Ydieresis acircumflex -100 +KPX Ydieresis adieresis -60 +KPX Ydieresis agrave -60 +KPX Ydieresis amacron -60 +KPX Ydieresis aogonek -100 +KPX Ydieresis aring -100 +KPX Ydieresis atilde -100 +KPX Ydieresis colon -92 +KPX Ydieresis comma -129 +KPX Ydieresis e -100 +KPX Ydieresis eacute -100 +KPX Ydieresis ecaron -100 +KPX Ydieresis ecircumflex -100 +KPX Ydieresis edieresis -60 +KPX Ydieresis edotaccent -100 +KPX Ydieresis egrave -60 +KPX Ydieresis emacron -60 +KPX Ydieresis eogonek -100 +KPX Ydieresis hyphen -111 +KPX Ydieresis i -55 +KPX Ydieresis iacute -55 +KPX Ydieresis iogonek -55 +KPX Ydieresis o -110 +KPX Ydieresis oacute -110 +KPX Ydieresis ocircumflex -110 +KPX Ydieresis odieresis -70 +KPX Ydieresis ograve -70 +KPX Ydieresis ohungarumlaut -110 +KPX Ydieresis omacron -70 +KPX Ydieresis oslash -110 +KPX Ydieresis otilde -70 +KPX Ydieresis period -129 +KPX Ydieresis semicolon -92 +KPX Ydieresis u -111 +KPX Ydieresis uacute -111 +KPX Ydieresis ucircumflex -111 +KPX Ydieresis udieresis -71 +KPX Ydieresis ugrave -71 +KPX Ydieresis uhungarumlaut -111 +KPX Ydieresis umacron -71 +KPX Ydieresis uogonek -111 +KPX Ydieresis uring -111 +KPX a v -20 +KPX a w -15 +KPX aacute v -20 +KPX aacute w -15 +KPX abreve v -20 +KPX abreve w -15 +KPX acircumflex v -20 +KPX acircumflex w -15 +KPX adieresis v -20 +KPX adieresis w -15 +KPX agrave v -20 +KPX agrave w -15 +KPX amacron v -20 +KPX amacron w -15 +KPX aogonek v -20 +KPX aogonek w -15 +KPX aring v -20 +KPX aring w -15 +KPX atilde v -20 +KPX atilde w -15 +KPX b period -40 +KPX b u -20 +KPX b uacute -20 +KPX b ucircumflex -20 +KPX b udieresis -20 +KPX b ugrave -20 +KPX b uhungarumlaut -20 +KPX b umacron -20 +KPX b uogonek -20 +KPX b uring -20 +KPX b v -15 +KPX c y -15 +KPX c yacute -15 +KPX c ydieresis -15 +KPX cacute y -15 +KPX cacute yacute -15 +KPX cacute ydieresis -15 +KPX ccaron y -15 +KPX ccaron yacute -15 +KPX ccaron ydieresis -15 +KPX ccedilla y -15 +KPX ccedilla yacute -15 +KPX ccedilla ydieresis -15 +KPX comma quotedblright -70 +KPX comma quoteright -70 +KPX e g -15 +KPX e gbreve -15 +KPX e gcommaaccent -15 +KPX e v -25 +KPX e w -25 +KPX e x -15 +KPX e y -15 +KPX e yacute -15 +KPX e ydieresis -15 +KPX eacute g -15 +KPX eacute gbreve -15 +KPX eacute gcommaaccent -15 +KPX eacute v -25 +KPX eacute w -25 +KPX eacute x -15 +KPX eacute y -15 +KPX eacute yacute -15 +KPX eacute ydieresis -15 +KPX ecaron g -15 +KPX ecaron gbreve -15 +KPX ecaron gcommaaccent -15 +KPX ecaron v -25 +KPX ecaron w -25 +KPX ecaron x -15 +KPX ecaron y -15 +KPX ecaron yacute -15 +KPX ecaron ydieresis -15 +KPX ecircumflex g -15 +KPX ecircumflex gbreve -15 +KPX ecircumflex gcommaaccent -15 +KPX ecircumflex v -25 +KPX ecircumflex w -25 +KPX ecircumflex x -15 +KPX ecircumflex y -15 +KPX ecircumflex yacute -15 +KPX ecircumflex ydieresis -15 +KPX edieresis g -15 +KPX edieresis gbreve -15 +KPX edieresis gcommaaccent -15 +KPX edieresis v -25 +KPX edieresis w -25 +KPX edieresis x -15 +KPX edieresis y -15 +KPX edieresis yacute -15 +KPX edieresis ydieresis -15 +KPX edotaccent g -15 +KPX edotaccent gbreve -15 +KPX edotaccent gcommaaccent -15 +KPX edotaccent v -25 +KPX edotaccent w -25 +KPX edotaccent x -15 +KPX edotaccent y -15 +KPX edotaccent yacute -15 +KPX edotaccent ydieresis -15 +KPX egrave g -15 +KPX egrave gbreve -15 +KPX egrave gcommaaccent -15 +KPX egrave v -25 +KPX egrave w -25 +KPX egrave x -15 +KPX egrave y -15 +KPX egrave yacute -15 +KPX egrave ydieresis -15 +KPX emacron g -15 +KPX emacron gbreve -15 +KPX emacron gcommaaccent -15 +KPX emacron v -25 +KPX emacron w -25 +KPX emacron x -15 +KPX emacron y -15 +KPX emacron yacute -15 +KPX emacron ydieresis -15 +KPX eogonek g -15 +KPX eogonek gbreve -15 +KPX eogonek gcommaaccent -15 +KPX eogonek v -25 +KPX eogonek w -25 +KPX eogonek x -15 +KPX eogonek y -15 +KPX eogonek yacute -15 +KPX eogonek ydieresis -15 +KPX f a -10 +KPX f aacute -10 +KPX f abreve -10 +KPX f acircumflex -10 +KPX f adieresis -10 +KPX f agrave -10 +KPX f amacron -10 +KPX f aogonek -10 +KPX f aring -10 +KPX f atilde -10 +KPX f dotlessi -50 +KPX f f -25 +KPX f i -20 +KPX f iacute -20 +KPX f quoteright 55 +KPX g a -5 +KPX g aacute -5 +KPX g abreve -5 +KPX g acircumflex -5 +KPX g adieresis -5 +KPX g agrave -5 +KPX g amacron -5 +KPX g aogonek -5 +KPX g aring -5 +KPX g atilde -5 +KPX gbreve a -5 +KPX gbreve aacute -5 +KPX gbreve abreve -5 +KPX gbreve acircumflex -5 +KPX gbreve adieresis -5 +KPX gbreve agrave -5 +KPX gbreve amacron -5 +KPX gbreve aogonek -5 +KPX gbreve aring -5 +KPX gbreve atilde -5 +KPX gcommaaccent a -5 +KPX gcommaaccent aacute -5 +KPX gcommaaccent abreve -5 +KPX gcommaaccent acircumflex -5 +KPX gcommaaccent adieresis -5 +KPX gcommaaccent agrave -5 +KPX gcommaaccent amacron -5 +KPX gcommaaccent aogonek -5 +KPX gcommaaccent aring -5 +KPX gcommaaccent atilde -5 +KPX h y -5 +KPX h yacute -5 +KPX h ydieresis -5 +KPX i v -25 +KPX iacute v -25 +KPX icircumflex v -25 +KPX idieresis v -25 +KPX igrave v -25 +KPX imacron v -25 +KPX iogonek v -25 +KPX k e -10 +KPX k eacute -10 +KPX k ecaron -10 +KPX k ecircumflex -10 +KPX k edieresis -10 +KPX k edotaccent -10 +KPX k egrave -10 +KPX k emacron -10 +KPX k eogonek -10 +KPX k o -10 +KPX k oacute -10 +KPX k ocircumflex -10 +KPX k odieresis -10 +KPX k ograve -10 +KPX k ohungarumlaut -10 +KPX k omacron -10 +KPX k oslash -10 +KPX k otilde -10 +KPX k y -15 +KPX k yacute -15 +KPX k ydieresis -15 +KPX kcommaaccent e -10 +KPX kcommaaccent eacute -10 +KPX kcommaaccent ecaron -10 +KPX kcommaaccent ecircumflex -10 +KPX kcommaaccent edieresis -10 +KPX kcommaaccent edotaccent -10 +KPX kcommaaccent egrave -10 +KPX kcommaaccent emacron -10 +KPX kcommaaccent eogonek -10 +KPX kcommaaccent o -10 +KPX kcommaaccent oacute -10 +KPX kcommaaccent ocircumflex -10 +KPX kcommaaccent odieresis -10 +KPX kcommaaccent ograve -10 +KPX kcommaaccent ohungarumlaut -10 +KPX kcommaaccent omacron -10 +KPX kcommaaccent oslash -10 +KPX kcommaaccent otilde -10 +KPX kcommaaccent y -15 +KPX kcommaaccent yacute -15 +KPX kcommaaccent ydieresis -15 +KPX l w -10 +KPX lacute w -10 +KPX lcommaaccent w -10 +KPX lslash w -10 +KPX n v -40 +KPX n y -15 +KPX n yacute -15 +KPX n ydieresis -15 +KPX nacute v -40 +KPX nacute y -15 +KPX nacute yacute -15 +KPX nacute ydieresis -15 +KPX ncaron v -40 +KPX ncaron y -15 +KPX ncaron yacute -15 +KPX ncaron ydieresis -15 +KPX ncommaaccent v -40 +KPX ncommaaccent y -15 +KPX ncommaaccent yacute -15 +KPX ncommaaccent ydieresis -15 +KPX ntilde v -40 +KPX ntilde y -15 +KPX ntilde yacute -15 +KPX ntilde ydieresis -15 +KPX o v -15 +KPX o w -25 +KPX o y -10 +KPX o yacute -10 +KPX o ydieresis -10 +KPX oacute v -15 +KPX oacute w -25 +KPX oacute y -10 +KPX oacute yacute -10 +KPX oacute ydieresis -10 +KPX ocircumflex v -15 +KPX ocircumflex w -25 +KPX ocircumflex y -10 +KPX ocircumflex yacute -10 +KPX ocircumflex ydieresis -10 +KPX odieresis v -15 +KPX odieresis w -25 +KPX odieresis y -10 +KPX odieresis yacute -10 +KPX odieresis ydieresis -10 +KPX ograve v -15 +KPX ograve w -25 +KPX ograve y -10 +KPX ograve yacute -10 +KPX ograve ydieresis -10 +KPX ohungarumlaut v -15 +KPX ohungarumlaut w -25 +KPX ohungarumlaut y -10 +KPX ohungarumlaut yacute -10 +KPX ohungarumlaut ydieresis -10 +KPX omacron v -15 +KPX omacron w -25 +KPX omacron y -10 +KPX omacron yacute -10 +KPX omacron ydieresis -10 +KPX oslash v -15 +KPX oslash w -25 +KPX oslash y -10 +KPX oslash yacute -10 +KPX oslash ydieresis -10 +KPX otilde v -15 +KPX otilde w -25 +KPX otilde y -10 +KPX otilde yacute -10 +KPX otilde ydieresis -10 +KPX p y -10 +KPX p yacute -10 +KPX p ydieresis -10 +KPX period quotedblright -70 +KPX period quoteright -70 +KPX quotedblleft A -80 +KPX quotedblleft Aacute -80 +KPX quotedblleft Abreve -80 +KPX quotedblleft Acircumflex -80 +KPX quotedblleft Adieresis -80 +KPX quotedblleft Agrave -80 +KPX quotedblleft Amacron -80 +KPX quotedblleft Aogonek -80 +KPX quotedblleft Aring -80 +KPX quotedblleft Atilde -80 +KPX quoteleft A -80 +KPX quoteleft Aacute -80 +KPX quoteleft Abreve -80 +KPX quoteleft Acircumflex -80 +KPX quoteleft Adieresis -80 +KPX quoteleft Agrave -80 +KPX quoteleft Amacron -80 +KPX quoteleft Aogonek -80 +KPX quoteleft Aring -80 +KPX quoteleft Atilde -80 +KPX quoteleft quoteleft -74 +KPX quoteright d -50 +KPX quoteright dcroat -50 +KPX quoteright l -10 +KPX quoteright lacute -10 +KPX quoteright lcommaaccent -10 +KPX quoteright lslash -10 +KPX quoteright quoteright -74 +KPX quoteright r -50 +KPX quoteright racute -50 +KPX quoteright rcaron -50 +KPX quoteright rcommaaccent -50 +KPX quoteright s -55 +KPX quoteright sacute -55 +KPX quoteright scaron -55 +KPX quoteright scedilla -55 +KPX quoteright scommaaccent -55 +KPX quoteright space -74 +KPX quoteright t -18 +KPX quoteright tcommaaccent -18 +KPX quoteright v -50 +KPX r comma -40 +KPX r g -18 +KPX r gbreve -18 +KPX r gcommaaccent -18 +KPX r hyphen -20 +KPX r period -55 +KPX racute comma -40 +KPX racute g -18 +KPX racute gbreve -18 +KPX racute gcommaaccent -18 +KPX racute hyphen -20 +KPX racute period -55 +KPX rcaron comma -40 +KPX rcaron g -18 +KPX rcaron gbreve -18 +KPX rcaron gcommaaccent -18 +KPX rcaron hyphen -20 +KPX rcaron period -55 +KPX rcommaaccent comma -40 +KPX rcommaaccent g -18 +KPX rcommaaccent gbreve -18 +KPX rcommaaccent gcommaaccent -18 +KPX rcommaaccent hyphen -20 +KPX rcommaaccent period -55 +KPX space A -55 +KPX space Aacute -55 +KPX space Abreve -55 +KPX space Acircumflex -55 +KPX space Adieresis -55 +KPX space Agrave -55 +KPX space Amacron -55 +KPX space Aogonek -55 +KPX space Aring -55 +KPX space Atilde -55 +KPX space T -18 +KPX space Tcaron -18 +KPX space Tcommaaccent -18 +KPX space V -50 +KPX space W -30 +KPX space Y -90 +KPX space Yacute -90 +KPX space Ydieresis -90 +KPX v a -25 +KPX v aacute -25 +KPX v abreve -25 +KPX v acircumflex -25 +KPX v adieresis -25 +KPX v agrave -25 +KPX v amacron -25 +KPX v aogonek -25 +KPX v aring -25 +KPX v atilde -25 +KPX v comma -65 +KPX v e -15 +KPX v eacute -15 +KPX v ecaron -15 +KPX v ecircumflex -15 +KPX v edieresis -15 +KPX v edotaccent -15 +KPX v egrave -15 +KPX v emacron -15 +KPX v eogonek -15 +KPX v o -20 +KPX v oacute -20 +KPX v ocircumflex -20 +KPX v odieresis -20 +KPX v ograve -20 +KPX v ohungarumlaut -20 +KPX v omacron -20 +KPX v oslash -20 +KPX v otilde -20 +KPX v period -65 +KPX w a -10 +KPX w aacute -10 +KPX w abreve -10 +KPX w acircumflex -10 +KPX w adieresis -10 +KPX w agrave -10 +KPX w amacron -10 +KPX w aogonek -10 +KPX w aring -10 +KPX w atilde -10 +KPX w comma -65 +KPX w o -10 +KPX w oacute -10 +KPX w ocircumflex -10 +KPX w odieresis -10 +KPX w ograve -10 +KPX w ohungarumlaut -10 +KPX w omacron -10 +KPX w oslash -10 +KPX w otilde -10 +KPX w period -65 +KPX x e -15 +KPX x eacute -15 +KPX x ecaron -15 +KPX x ecircumflex -15 +KPX x edieresis -15 +KPX x edotaccent -15 +KPX x egrave -15 +KPX x emacron -15 +KPX x eogonek -15 +KPX y comma -65 +KPX y period -65 +KPX yacute comma -65 +KPX yacute period -65 +KPX ydieresis comma -65 +KPX ydieresis period -65 +EndKernPairs +EndKernData +EndFontMetrics diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/Times-Roman.afm.json b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/Times-Roman.afm.json new file mode 100644 index 0000000..c96b2fc --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/Times-Roman.afm.json @@ -0,0 +1,569 @@ +{ + "codeToName": { + "32": "space", + "160": "space", + "33": "exclam", + "34": "quotedbl", + "35": "numbersign", + "36": "dollar", + "37": "percent", + "38": "ampersand", + "146": "quoteright", + "40": "parenleft", + "41": "parenright", + "42": "asterisk", + "43": "plus", + "44": "comma", + "45": "hyphen", + "173": "hyphen", + "46": "period", + "47": "slash", + "48": "zero", + "49": "one", + "50": "two", + "51": "three", + "52": "four", + "53": "five", + "54": "six", + "55": "seven", + "56": "eight", + "57": "nine", + "58": "colon", + "59": "semicolon", + "60": "less", + "61": "equal", + "62": "greater", + "63": "question", + "64": "at", + "65": "A", + "66": "B", + "67": "C", + "68": "D", + "69": "E", + "70": "F", + "71": "G", + "72": "H", + "73": "I", + "74": "J", + "75": "K", + "76": "L", + "77": "M", + "78": "N", + "79": "O", + "80": "P", + "81": "Q", + "82": "R", + "83": "S", + "84": "T", + "85": "U", + "86": "V", + "87": "W", + "88": "X", + "89": "Y", + "90": "Z", + "91": "bracketleft", + "92": "backslash", + "93": "bracketright", + "94": "asciicircum", + "95": "underscore", + "145": "quoteleft", + "97": "a", + "98": "b", + "99": "c", + "100": "d", + "101": "e", + "102": "f", + "103": "g", + "104": "h", + "105": "i", + "106": "j", + "107": "k", + "108": "l", + "109": "m", + "110": "n", + "111": "o", + "112": "p", + "113": "q", + "114": "r", + "115": "s", + "116": "t", + "117": "u", + "118": "v", + "119": "w", + "120": "x", + "121": "y", + "122": "z", + "123": "braceleft", + "124": "bar", + "125": "braceright", + "126": "asciitilde", + "161": "exclamdown", + "162": "cent", + "163": "sterling", + "165": "yen", + "131": "florin", + "167": "section", + "164": "currency", + "39": "quotesingle", + "147": "quotedblleft", + "171": "guillemotleft", + "139": "guilsinglleft", + "155": "guilsinglright", + "150": "endash", + "134": "dagger", + "135": "daggerdbl", + "183": "periodcentered", + "182": "paragraph", + "149": "bullet", + "130": "quotesinglbase", + "132": "quotedblbase", + "148": "quotedblright", + "187": "guillemotright", + "133": "ellipsis", + "137": "perthousand", + "191": "questiondown", + "96": "grave", + "180": "acute", + "136": "circumflex", + "152": "tilde", + "175": "macron", + "168": "dieresis", + "184": "cedilla", + "151": "emdash", + "198": "AE", + "170": "ordfeminine", + "216": "Oslash", + "140": "OE", + "186": "ordmasculine", + "230": "ae", + "248": "oslash", + "156": "oe", + "223": "germandbls", + "207": "Idieresis", + "233": "eacute", + "159": "Ydieresis", + "247": "divide", + "221": "Yacute", + "194": "Acircumflex", + "225": "aacute", + "219": "Ucircumflex", + "253": "yacute", + "234": "ecircumflex", + "220": "Udieresis", + "218": "Uacute", + "203": "Edieresis", + "169": "copyright", + "229": "aring", + "224": "agrave", + "227": "atilde", + "154": "scaron", + "237": "iacute", + "251": "ucircumflex", + "226": "acircumflex", + "231": "ccedilla", + "222": "Thorn", + "179": "threesuperior", + "210": "Ograve", + "192": "Agrave", + "215": "multiply", + "250": "uacute", + "255": "ydieresis", + "238": "icircumflex", + "202": "Ecircumflex", + "228": "adieresis", + "235": "edieresis", + "205": "Iacute", + "177": "plusminus", + "166": "brokenbar", + "174": "registered", + "200": "Egrave", + "142": "Zcaron", + "208": "Eth", + "199": "Ccedilla", + "193": "Aacute", + "196": "Adieresis", + "232": "egrave", + "211": "Oacute", + "243": "oacute", + "239": "idieresis", + "212": "Ocircumflex", + "217": "Ugrave", + "254": "thorn", + "178": "twosuperior", + "214": "Odieresis", + "181": "mu", + "236": "igrave", + "190": "threequarters", + "153": "trademark", + "204": "Igrave", + "189": "onehalf", + "244": "ocircumflex", + "241": "ntilde", + "201": "Eacute", + "188": "onequarter", + "138": "Scaron", + "176": "degree", + "242": "ograve", + "249": "ugrave", + "209": "Ntilde", + "245": "otilde", + "195": "Atilde", + "197": "Aring", + "213": "Otilde", + "206": "Icircumflex", + "172": "logicalnot", + "246": "odieresis", + "252": "udieresis", + "240": "eth", + "158": "zcaron", + "185": "onesuperior", + "128": "Euro" + }, + "isUnicode": false, + "FontName": "Times-Roman", + "FullName": "Times Roman", + "FamilyName": "Times", + "Weight": "Roman", + "ItalicAngle": "0", + "IsFixedPitch": "false", + "CharacterSet": "ExtendedRoman", + "FontBBox": [ + "-168", + "-218", + "1000", + "898" + ], + "UnderlinePosition": "-100", + "UnderlineThickness": "50", + "Version": "002.00", + "EncodingScheme": "WinAnsiEncoding", + "CapHeight": "662", + "XHeight": "450", + "Ascender": "683", + "Descender": "-217", + "StdHW": "28", + "StdVW": "84", + "StartCharMetrics": "317", + "C": { + "32": 250, + "160": 250, + "33": 333, + "34": 408, + "35": 500, + "36": 500, + "37": 833, + "38": 778, + "146": 333, + "40": 333, + "41": 333, + "42": 500, + "43": 564, + "44": 250, + "45": 333, + "173": 333, + "46": 250, + "47": 278, + "48": 500, + "49": 500, + "50": 500, + "51": 500, + "52": 500, + "53": 500, + "54": 500, + "55": 500, + "56": 500, + "57": 500, + "58": 278, + "59": 278, + "60": 564, + "61": 564, + "62": 564, + "63": 444, + "64": 921, + "65": 722, + "66": 667, + "67": 667, + "68": 722, + "69": 611, + "70": 556, + "71": 722, + "72": 722, + "73": 333, + "74": 389, + "75": 722, + "76": 611, + "77": 889, + "78": 722, + "79": 722, + "80": 556, + "81": 722, + "82": 667, + "83": 556, + "84": 611, + "85": 722, + "86": 722, + "87": 944, + "88": 722, + "89": 722, + "90": 611, + "91": 333, + "92": 278, + "93": 333, + "94": 469, + "95": 500, + "145": 333, + "97": 444, + "98": 500, + "99": 444, + "100": 500, + "101": 444, + "102": 333, + "103": 500, + "104": 500, + "105": 278, + "106": 278, + "107": 500, + "108": 278, + "109": 778, + "110": 500, + "111": 500, + "112": 500, + "113": 500, + "114": 333, + "115": 389, + "116": 278, + "117": 500, + "118": 500, + "119": 722, + "120": 500, + "121": 500, + "122": 444, + "123": 480, + "124": 200, + "125": 480, + "126": 541, + "161": 333, + "162": 500, + "163": 500, + "fraction": 167, + "165": 500, + "131": 500, + "167": 500, + "164": 500, + "39": 180, + "147": 444, + "171": 500, + "139": 333, + "155": 333, + "fi": 556, + "fl": 556, + "150": 500, + "134": 500, + "135": 500, + "183": 250, + "182": 453, + "149": 350, + "130": 333, + "132": 444, + "148": 444, + "187": 500, + "133": 1000, + "137": 1000, + "191": 444, + "96": 333, + "180": 333, + "136": 333, + "152": 333, + "175": 333, + "breve": 333, + "dotaccent": 333, + "168": 333, + "ring": 333, + "184": 333, + "hungarumlaut": 333, + "ogonek": 333, + "caron": 333, + "151": 1000, + "198": 889, + "170": 276, + "Lslash": 611, + "216": 722, + "140": 889, + "186": 310, + "230": 667, + "dotlessi": 278, + "lslash": 278, + "248": 500, + "156": 722, + "223": 500, + "207": 333, + "233": 444, + "abreve": 444, + "uhungarumlaut": 500, + "ecaron": 444, + "159": 722, + "247": 564, + "221": 722, + "194": 722, + "225": 444, + "219": 722, + "253": 500, + "scommaaccent": 389, + "234": 444, + "Uring": 722, + "220": 722, + "aogonek": 444, + "218": 722, + "uogonek": 500, + "203": 611, + "Dcroat": 722, + "commaaccent": 250, + "169": 760, + "Emacron": 611, + "ccaron": 444, + "229": 444, + "Ncommaaccent": 722, + "lacute": 278, + "224": 444, + "Tcommaaccent": 611, + "Cacute": 667, + "227": 444, + "Edotaccent": 611, + "154": 389, + "scedilla": 389, + "237": 278, + "lozenge": 471, + "Rcaron": 667, + "Gcommaaccent": 722, + "251": 500, + "226": 444, + "Amacron": 722, + "rcaron": 333, + "231": 444, + "Zdotaccent": 611, + "222": 556, + "Omacron": 722, + "Racute": 667, + "Sacute": 556, + "dcaron": 588, + "Umacron": 722, + "uring": 500, + "179": 300, + "210": 722, + "192": 722, + "Abreve": 722, + "215": 564, + "250": 500, + "Tcaron": 611, + "partialdiff": 476, + "255": 500, + "Nacute": 722, + "238": 278, + "202": 611, + "228": 444, + "235": 444, + "cacute": 444, + "nacute": 500, + "umacron": 500, + "Ncaron": 722, + "205": 333, + "177": 564, + "166": 200, + "174": 760, + "Gbreve": 722, + "Idotaccent": 333, + "summation": 600, + "200": 611, + "racute": 333, + "omacron": 500, + "Zacute": 611, + "142": 611, + "greaterequal": 549, + "208": 722, + "199": 667, + "lcommaaccent": 278, + "tcaron": 326, + "eogonek": 444, + "Uogonek": 722, + "193": 722, + "196": 722, + "232": 444, + "zacute": 444, + "iogonek": 278, + "211": 722, + "243": 500, + "amacron": 444, + "sacute": 389, + "239": 278, + "212": 722, + "217": 722, + "Delta": 612, + "254": 500, + "178": 300, + "214": 722, + "181": 500, + "236": 278, + "ohungarumlaut": 500, + "Eogonek": 611, + "dcroat": 500, + "190": 750, + "Scedilla": 556, + "lcaron": 344, + "Kcommaaccent": 722, + "Lacute": 611, + "153": 980, + "edotaccent": 444, + "204": 333, + "Imacron": 333, + "Lcaron": 611, + "189": 750, + "lessequal": 549, + "244": 500, + "241": 500, + "Uhungarumlaut": 722, + "201": 611, + "emacron": 444, + "gbreve": 500, + "188": 750, + "138": 556, + "Scommaaccent": 556, + "Ohungarumlaut": 722, + "176": 400, + "242": 500, + "Ccaron": 667, + "249": 500, + "radical": 453, + "Dcaron": 722, + "rcommaaccent": 333, + "209": 722, + "245": 500, + "Rcommaaccent": 667, + "Lcommaaccent": 611, + "195": 722, + "Aogonek": 722, + "197": 722, + "213": 722, + "zdotaccent": 444, + "Ecaron": 611, + "Iogonek": 333, + "kcommaaccent": 500, + "minus": 564, + "206": 333, + "ncaron": 500, + "tcommaaccent": 278, + "172": 564, + "246": 500, + "252": 500, + "notequal": 549, + "gcommaaccent": 500, + "240": 500, + "158": 444, + "ncommaaccent": 500, + "185": 300, + "imacron": 278, + "128": 500 + }, + "CIDtoGID_Compressed": true, + "CIDtoGID": "eJwDAAAAAAE=", + "_version_": 6 +} \ No newline at end of file diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/ZapfDingbats.afm b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/ZapfDingbats.afm new file mode 100644 index 0000000..b274505 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/ZapfDingbats.afm @@ -0,0 +1,225 @@ +StartFontMetrics 4.1 +Comment Copyright (c) 1985, 1987, 1988, 1989, 1997 Adobe Systems Incorporated. All Rights Reserved. +Comment Creation Date: Thu May 1 15:14:13 1997 +Comment UniqueID 43082 +Comment VMusage 45775 55535 +FontName ZapfDingbats +FullName ITC Zapf Dingbats +FamilyName ZapfDingbats +Weight Medium +ItalicAngle 0 +IsFixedPitch false +CharacterSet Special +FontBBox -1 -143 981 820 +UnderlinePosition -100 +UnderlineThickness 50 +Version 002.000 +Notice Copyright (c) 1985, 1987, 1988, 1989, 1997 Adobe Systems Incorporated. All Rights Reserved.ITC Zapf Dingbats is a registered trademark of International Typeface Corporation. +EncodingScheme FontSpecific +StdHW 28 +StdVW 90 +StartCharMetrics 202 +C 32 ; WX 278 ; N space ; B 0 0 0 0 ; +C 33 ; WX 974 ; N a1 ; B 35 72 939 621 ; +C 34 ; WX 961 ; N a2 ; B 35 81 927 611 ; +C 35 ; WX 974 ; N a202 ; B 35 72 939 621 ; +C 36 ; WX 980 ; N a3 ; B 35 0 945 692 ; +C 37 ; WX 719 ; N a4 ; B 34 139 685 566 ; +C 38 ; WX 789 ; N a5 ; B 35 -14 755 705 ; +C 39 ; WX 790 ; N a119 ; B 35 -14 755 705 ; +C 40 ; WX 791 ; N a118 ; B 35 -13 761 705 ; +C 41 ; WX 690 ; N a117 ; B 34 138 655 553 ; +C 42 ; WX 960 ; N a11 ; B 35 123 925 568 ; +C 43 ; WX 939 ; N a12 ; B 35 134 904 559 ; +C 44 ; WX 549 ; N a13 ; B 29 -11 516 705 ; +C 45 ; WX 855 ; N a14 ; B 34 59 820 632 ; +C 46 ; WX 911 ; N a15 ; B 35 50 876 642 ; +C 47 ; WX 933 ; N a16 ; B 35 139 899 550 ; +C 48 ; WX 911 ; N a105 ; B 35 50 876 642 ; +C 49 ; WX 945 ; N a17 ; B 35 139 909 553 ; +C 50 ; WX 974 ; N a18 ; B 35 104 938 587 ; +C 51 ; WX 755 ; N a19 ; B 34 -13 721 705 ; +C 52 ; WX 846 ; N a20 ; B 36 -14 811 705 ; +C 53 ; WX 762 ; N a21 ; B 35 0 727 692 ; +C 54 ; WX 761 ; N a22 ; B 35 0 727 692 ; +C 55 ; WX 571 ; N a23 ; B -1 -68 571 661 ; +C 56 ; WX 677 ; N a24 ; B 36 -13 642 705 ; +C 57 ; WX 763 ; N a25 ; B 35 0 728 692 ; +C 58 ; WX 760 ; N a26 ; B 35 0 726 692 ; +C 59 ; WX 759 ; N a27 ; B 35 0 725 692 ; +C 60 ; WX 754 ; N a28 ; B 35 0 720 692 ; +C 61 ; WX 494 ; N a6 ; B 35 0 460 692 ; +C 62 ; WX 552 ; N a7 ; B 35 0 517 692 ; +C 63 ; WX 537 ; N a8 ; B 35 0 503 692 ; +C 64 ; WX 577 ; N a9 ; B 35 96 542 596 ; +C 65 ; WX 692 ; N a10 ; B 35 -14 657 705 ; +C 66 ; WX 786 ; N a29 ; B 35 -14 751 705 ; +C 67 ; WX 788 ; N a30 ; B 35 -14 752 705 ; +C 68 ; WX 788 ; N a31 ; B 35 -14 753 705 ; +C 69 ; WX 790 ; N a32 ; B 35 -14 756 705 ; +C 70 ; WX 793 ; N a33 ; B 35 -13 759 705 ; +C 71 ; WX 794 ; N a34 ; B 35 -13 759 705 ; +C 72 ; WX 816 ; N a35 ; B 35 -14 782 705 ; +C 73 ; WX 823 ; N a36 ; B 35 -14 787 705 ; +C 74 ; WX 789 ; N a37 ; B 35 -14 754 705 ; +C 75 ; WX 841 ; N a38 ; B 35 -14 807 705 ; +C 76 ; WX 823 ; N a39 ; B 35 -14 789 705 ; +C 77 ; WX 833 ; N a40 ; B 35 -14 798 705 ; +C 78 ; WX 816 ; N a41 ; B 35 -13 782 705 ; +C 79 ; WX 831 ; N a42 ; B 35 -14 796 705 ; +C 80 ; WX 923 ; N a43 ; B 35 -14 888 705 ; +C 81 ; WX 744 ; N a44 ; B 35 0 710 692 ; +C 82 ; WX 723 ; N a45 ; B 35 0 688 692 ; +C 83 ; WX 749 ; N a46 ; B 35 0 714 692 ; +C 84 ; WX 790 ; N a47 ; B 34 -14 756 705 ; +C 85 ; WX 792 ; N a48 ; B 35 -14 758 705 ; +C 86 ; WX 695 ; N a49 ; B 35 -14 661 706 ; +C 87 ; WX 776 ; N a50 ; B 35 -6 741 699 ; +C 88 ; WX 768 ; N a51 ; B 35 -7 734 699 ; +C 89 ; WX 792 ; N a52 ; B 35 -14 757 705 ; +C 90 ; WX 759 ; N a53 ; B 35 0 725 692 ; +C 91 ; WX 707 ; N a54 ; B 35 -13 672 704 ; +C 92 ; WX 708 ; N a55 ; B 35 -14 672 705 ; +C 93 ; WX 682 ; N a56 ; B 35 -14 647 705 ; +C 94 ; WX 701 ; N a57 ; B 35 -14 666 705 ; +C 95 ; WX 826 ; N a58 ; B 35 -14 791 705 ; +C 96 ; WX 815 ; N a59 ; B 35 -14 780 705 ; +C 97 ; WX 789 ; N a60 ; B 35 -14 754 705 ; +C 98 ; WX 789 ; N a61 ; B 35 -14 754 705 ; +C 99 ; WX 707 ; N a62 ; B 34 -14 673 705 ; +C 100 ; WX 687 ; N a63 ; B 36 0 651 692 ; +C 101 ; WX 696 ; N a64 ; B 35 0 661 691 ; +C 102 ; WX 689 ; N a65 ; B 35 0 655 692 ; +C 103 ; WX 786 ; N a66 ; B 34 -14 751 705 ; +C 104 ; WX 787 ; N a67 ; B 35 -14 752 705 ; +C 105 ; WX 713 ; N a68 ; B 35 -14 678 705 ; +C 106 ; WX 791 ; N a69 ; B 35 -14 756 705 ; +C 107 ; WX 785 ; N a70 ; B 36 -14 751 705 ; +C 108 ; WX 791 ; N a71 ; B 35 -14 757 705 ; +C 109 ; WX 873 ; N a72 ; B 35 -14 838 705 ; +C 110 ; WX 761 ; N a73 ; B 35 0 726 692 ; +C 111 ; WX 762 ; N a74 ; B 35 0 727 692 ; +C 112 ; WX 762 ; N a203 ; B 35 0 727 692 ; +C 113 ; WX 759 ; N a75 ; B 35 0 725 692 ; +C 114 ; WX 759 ; N a204 ; B 35 0 725 692 ; +C 115 ; WX 892 ; N a76 ; B 35 0 858 705 ; +C 116 ; WX 892 ; N a77 ; B 35 -14 858 692 ; +C 117 ; WX 788 ; N a78 ; B 35 -14 754 705 ; +C 118 ; WX 784 ; N a79 ; B 35 -14 749 705 ; +C 119 ; WX 438 ; N a81 ; B 35 -14 403 705 ; +C 120 ; WX 138 ; N a82 ; B 35 0 104 692 ; +C 121 ; WX 277 ; N a83 ; B 35 0 242 692 ; +C 122 ; WX 415 ; N a84 ; B 35 0 380 692 ; +C 123 ; WX 392 ; N a97 ; B 35 263 357 705 ; +C 124 ; WX 392 ; N a98 ; B 34 263 357 705 ; +C 125 ; WX 668 ; N a99 ; B 35 263 633 705 ; +C 126 ; WX 668 ; N a100 ; B 36 263 634 705 ; +C 128 ; WX 390 ; N a89 ; B 35 -14 356 705 ; +C 129 ; WX 390 ; N a90 ; B 35 -14 355 705 ; +C 130 ; WX 317 ; N a93 ; B 35 0 283 692 ; +C 131 ; WX 317 ; N a94 ; B 35 0 283 692 ; +C 132 ; WX 276 ; N a91 ; B 35 0 242 692 ; +C 133 ; WX 276 ; N a92 ; B 35 0 242 692 ; +C 134 ; WX 509 ; N a205 ; B 35 0 475 692 ; +C 135 ; WX 509 ; N a85 ; B 35 0 475 692 ; +C 136 ; WX 410 ; N a206 ; B 35 0 375 692 ; +C 137 ; WX 410 ; N a86 ; B 35 0 375 692 ; +C 138 ; WX 234 ; N a87 ; B 35 -14 199 705 ; +C 139 ; WX 234 ; N a88 ; B 35 -14 199 705 ; +C 140 ; WX 334 ; N a95 ; B 35 0 299 692 ; +C 141 ; WX 334 ; N a96 ; B 35 0 299 692 ; +C 161 ; WX 732 ; N a101 ; B 35 -143 697 806 ; +C 162 ; WX 544 ; N a102 ; B 56 -14 488 706 ; +C 163 ; WX 544 ; N a103 ; B 34 -14 508 705 ; +C 164 ; WX 910 ; N a104 ; B 35 40 875 651 ; +C 165 ; WX 667 ; N a106 ; B 35 -14 633 705 ; +C 166 ; WX 760 ; N a107 ; B 35 -14 726 705 ; +C 167 ; WX 760 ; N a108 ; B 0 121 758 569 ; +C 168 ; WX 776 ; N a112 ; B 35 0 741 705 ; +C 169 ; WX 595 ; N a111 ; B 34 -14 560 705 ; +C 170 ; WX 694 ; N a110 ; B 35 -14 659 705 ; +C 171 ; WX 626 ; N a109 ; B 34 0 591 705 ; +C 172 ; WX 788 ; N a120 ; B 35 -14 754 705 ; +C 173 ; WX 788 ; N a121 ; B 35 -14 754 705 ; +C 174 ; WX 788 ; N a122 ; B 35 -14 754 705 ; +C 175 ; WX 788 ; N a123 ; B 35 -14 754 705 ; +C 176 ; WX 788 ; N a124 ; B 35 -14 754 705 ; +C 177 ; WX 788 ; N a125 ; B 35 -14 754 705 ; +C 178 ; WX 788 ; N a126 ; B 35 -14 754 705 ; +C 179 ; WX 788 ; N a127 ; B 35 -14 754 705 ; +C 180 ; WX 788 ; N a128 ; B 35 -14 754 705 ; +C 181 ; WX 788 ; N a129 ; B 35 -14 754 705 ; +C 182 ; WX 788 ; N a130 ; B 35 -14 754 705 ; +C 183 ; WX 788 ; N a131 ; B 35 -14 754 705 ; +C 184 ; WX 788 ; N a132 ; B 35 -14 754 705 ; +C 185 ; WX 788 ; N a133 ; B 35 -14 754 705 ; +C 186 ; WX 788 ; N a134 ; B 35 -14 754 705 ; +C 187 ; WX 788 ; N a135 ; B 35 -14 754 705 ; +C 188 ; WX 788 ; N a136 ; B 35 -14 754 705 ; +C 189 ; WX 788 ; N a137 ; B 35 -14 754 705 ; +C 190 ; WX 788 ; N a138 ; B 35 -14 754 705 ; +C 191 ; WX 788 ; N a139 ; B 35 -14 754 705 ; +C 192 ; WX 788 ; N a140 ; B 35 -14 754 705 ; +C 193 ; WX 788 ; N a141 ; B 35 -14 754 705 ; +C 194 ; WX 788 ; N a142 ; B 35 -14 754 705 ; +C 195 ; WX 788 ; N a143 ; B 35 -14 754 705 ; +C 196 ; WX 788 ; N a144 ; B 35 -14 754 705 ; +C 197 ; WX 788 ; N a145 ; B 35 -14 754 705 ; +C 198 ; WX 788 ; N a146 ; B 35 -14 754 705 ; +C 199 ; WX 788 ; N a147 ; B 35 -14 754 705 ; +C 200 ; WX 788 ; N a148 ; B 35 -14 754 705 ; +C 201 ; WX 788 ; N a149 ; B 35 -14 754 705 ; +C 202 ; WX 788 ; N a150 ; B 35 -14 754 705 ; +C 203 ; WX 788 ; N a151 ; B 35 -14 754 705 ; +C 204 ; WX 788 ; N a152 ; B 35 -14 754 705 ; +C 205 ; WX 788 ; N a153 ; B 35 -14 754 705 ; +C 206 ; WX 788 ; N a154 ; B 35 -14 754 705 ; +C 207 ; WX 788 ; N a155 ; B 35 -14 754 705 ; +C 208 ; WX 788 ; N a156 ; B 35 -14 754 705 ; +C 209 ; WX 788 ; N a157 ; B 35 -14 754 705 ; +C 210 ; WX 788 ; N a158 ; B 35 -14 754 705 ; +C 211 ; WX 788 ; N a159 ; B 35 -14 754 705 ; +C 212 ; WX 894 ; N a160 ; B 35 58 860 634 ; +C 213 ; WX 838 ; N a161 ; B 35 152 803 540 ; +C 214 ; WX 1016 ; N a163 ; B 34 152 981 540 ; +C 215 ; WX 458 ; N a164 ; B 35 -127 422 820 ; +C 216 ; WX 748 ; N a196 ; B 35 94 698 597 ; +C 217 ; WX 924 ; N a165 ; B 35 140 890 552 ; +C 218 ; WX 748 ; N a192 ; B 35 94 698 597 ; +C 219 ; WX 918 ; N a166 ; B 35 166 884 526 ; +C 220 ; WX 927 ; N a167 ; B 35 32 892 660 ; +C 221 ; WX 928 ; N a168 ; B 35 129 891 562 ; +C 222 ; WX 928 ; N a169 ; B 35 128 893 563 ; +C 223 ; WX 834 ; N a170 ; B 35 155 799 537 ; +C 224 ; WX 873 ; N a171 ; B 35 93 838 599 ; +C 225 ; WX 828 ; N a172 ; B 35 104 791 588 ; +C 226 ; WX 924 ; N a173 ; B 35 98 889 594 ; +C 227 ; WX 924 ; N a162 ; B 35 98 889 594 ; +C 228 ; WX 917 ; N a174 ; B 35 0 882 692 ; +C 229 ; WX 930 ; N a175 ; B 35 84 896 608 ; +C 230 ; WX 931 ; N a176 ; B 35 84 896 608 ; +C 231 ; WX 463 ; N a177 ; B 35 -99 429 791 ; +C 232 ; WX 883 ; N a178 ; B 35 71 848 623 ; +C 233 ; WX 836 ; N a179 ; B 35 44 802 648 ; +C 234 ; WX 836 ; N a193 ; B 35 44 802 648 ; +C 235 ; WX 867 ; N a180 ; B 35 101 832 591 ; +C 236 ; WX 867 ; N a199 ; B 35 101 832 591 ; +C 237 ; WX 696 ; N a181 ; B 35 44 661 648 ; +C 238 ; WX 696 ; N a200 ; B 35 44 661 648 ; +C 239 ; WX 874 ; N a182 ; B 35 77 840 619 ; +C 241 ; WX 874 ; N a201 ; B 35 73 840 615 ; +C 242 ; WX 760 ; N a183 ; B 35 0 725 692 ; +C 243 ; WX 946 ; N a184 ; B 35 160 911 533 ; +C 244 ; WX 771 ; N a197 ; B 34 37 736 655 ; +C 245 ; WX 865 ; N a185 ; B 35 207 830 481 ; +C 246 ; WX 771 ; N a194 ; B 34 37 736 655 ; +C 247 ; WX 888 ; N a198 ; B 34 -19 853 712 ; +C 248 ; WX 967 ; N a186 ; B 35 124 932 568 ; +C 249 ; WX 888 ; N a195 ; B 34 -19 853 712 ; +C 250 ; WX 831 ; N a187 ; B 35 113 796 579 ; +C 251 ; WX 873 ; N a188 ; B 36 118 838 578 ; +C 252 ; WX 927 ; N a189 ; B 35 150 891 542 ; +C 253 ; WX 970 ; N a190 ; B 35 76 931 616 ; +C 254 ; WX 918 ; N a191 ; B 34 99 884 593 ; +EndCharMetrics +EndFontMetrics diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/installed-fonts.dist.json b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/installed-fonts.dist.json new file mode 100644 index 0000000..c6abf15 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/installed-fonts.dist.json @@ -0,0 +1,80 @@ +{ + "sans-serif": { + "normal": "Helvetica", + "bold": "Helvetica-Bold", + "italic": "Helvetica-Oblique", + "bold_italic": "Helvetica-BoldOblique" + }, + "times": { + "normal": "Times-Roman", + "bold": "Times-Bold", + "italic": "Times-Italic", + "bold_italic": "Times-BoldItalic" + }, + "times-roman": { + "normal": "Times-Roman", + "bold": "Times-Bold", + "italic": "Times-Italic", + "bold_italic": "Times-BoldItalic" + }, + "courier": { + "normal": "Courier", + "bold": "Courier-Bold", + "italic": "Courier-Oblique", + "bold_italic": "Courier-BoldOblique" + }, + "helvetica": { + "normal": "Helvetica", + "bold": "Helvetica-Bold", + "italic": "Helvetica-Oblique", + "bold_italic": "Helvetica-BoldOblique" + }, + "zapfdingbats": { + "normal": "ZapfDingbats", + "bold": "ZapfDingbats", + "italic": "ZapfDingbats", + "bold_italic": "ZapfDingbats" + }, + "symbol": { + "normal": "Symbol", + "bold": "Symbol", + "italic": "Symbol", + "bold_italic": "Symbol" + }, + "serif": { + "normal": "Times-Roman", + "bold": "Times-Bold", + "italic": "Times-Italic", + "bold_italic": "Times-BoldItalic" + }, + "monospace": { + "normal": "Courier", + "bold": "Courier-Bold", + "italic": "Courier-Oblique", + "bold_italic": "Courier-BoldOblique" + }, + "fixed": { + "normal": "Courier", + "bold": "Courier-Bold", + "italic": "Courier-Oblique", + "bold_italic": "Courier-BoldOblique" + }, + "dejavu sans": { + "bold": "DejaVuSans-Bold", + "bold_italic": "DejaVuSans-BoldOblique", + "italic": "DejaVuSans-Oblique", + "normal": "DejaVuSans" + }, + "dejavu sans mono": { + "bold": "DejaVuSansMono-Bold", + "bold_italic": "DejaVuSansMono-BoldOblique", + "italic": "DejaVuSansMono-Oblique", + "normal": "DejaVuSansMono" + }, + "dejavu serif": { + "bold": "DejaVuSerif-Bold", + "bold_italic": "DejaVuSerif-BoldItalic", + "italic": "DejaVuSerif-Italic", + "normal": "DejaVuSerif" + } +} \ No newline at end of file diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/mustRead.html b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/mustRead.html new file mode 100644 index 0000000..b9f4ba2 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/fonts/mustRead.html @@ -0,0 +1,17 @@ + + + + + Core 14 AFM Files - ReadMe + + + or + + + + + +
This file and the 14 PostScript(R) AFM files it accompanies may be used, copied, and distributed for any purpose and without charge, with or without modification, provided that all copyright notices are retained; that the AFM files are not distributed without this file; that all modifications to this file or any of the AFM files are prominently noted in the modified file(s); and that this paragraph is not modified. Adobe Systems has no responsibility or obligation to support the use of the AFM files. Col
+

Source http://www.adobe.com/devnet/font/#pcfi

+ + \ No newline at end of file diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/res/broken_image.png b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/res/broken_image.png new file mode 100644 index 0000000..771a1a3 Binary files /dev/null and b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/res/broken_image.png differ diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/res/broken_image.svg b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/res/broken_image.svg new file mode 100644 index 0000000..83ba7e7 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/res/broken_image.svg @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/res/html.css b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/res/html.css new file mode 100644 index 0000000..89dcde6 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/lib/res/html.css @@ -0,0 +1,518 @@ +/** + * dompdf default stylesheet. + * + * @package dompdf + * @link https://github.com/dompdf/dompdf + * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License + * + * Portions from Mozilla + * @link https://dxr.mozilla.org/mozilla-central/source/layout/style/res/html.css + * @license http://mozilla.org/MPL/2.0/ Mozilla Public License, v. 2.0 + * + * Portions from W3C + * @link https://drafts.csswg.org/css-ui-3/#default-style-sheet + * + */ + +@page { + margin: 1.2cm; +} + +html { + display: -dompdf-page !important; + counter-reset: page; +} + +/* blocks */ + +article, +aside, +details, +div, +dt, +figcaption, +footer, +form, +header, +hgroup, +main, +nav, +noscript, +section, +summary { + display: block; +} + +body { + page-break-before: avoid; + display: block !important; + counter-increment: page; +} + +p, dl, multicol { + display: block; + margin: 1em 0; +} + +dd { + display: block; + margin-left: 40px; +} + +blockquote, figure { + display: block; + margin: 1em 40px; +} + +address { + display: block; + font-style: italic; +} + +center { + display: block; + text-align: center; +} + +blockquote[type=cite] { + display: block; + margin: 1em 0; + padding-left: 1em; + border-left: solid; + border-color: blue; + border-width: thin; +} + +h1, h2, h3, h4, h5, h6 { + display: block; + font-weight: bold; +} + +h1 { + font-size: 2em; + margin: .67em 0; +} + +h2 { + font-size: 1.5em; + margin: .83em 0; +} + +h3 { + font-size: 1.17em; + margin: 1em 0; +} + +h4 { + margin: 1.33em 0; +} + +h5 { + font-size: 0.83em; + margin: 1.67em 0; +} + +h6 { + font-size: 0.67em; + margin: 2.33em 0; +} + +listing { + display: block; + font-family: fixed; + font-size: medium; + white-space: pre; + margin: 1em 0; +} + +plaintext, pre, xmp { + display: block; + font-family: fixed; + white-space: pre; + margin: 1em 0; +} + +/* tables */ + +table { + display: table; + border-spacing: 2px; + border-collapse: separate; + margin-top: 0; + margin-bottom: 0; + text-indent: 0; + text-align: left; /* quirk */ +} + +table[border] { + border: outset gray; +} + +table[border] td, +table[border] th { + border: 1px inset gray; +} + +table[border="0"] td, +table[border="0"] th { + border-width: 0; +} + +/* make sure backgrounds are inherited in tables -- see bug 4510 */ +td, th, tr { + background: inherit; +} + +/* caption inherits from table not table-outer */ +caption { + display: table-caption; + text-align: center; +} + +tr { + display: table-row; + vertical-align: inherit; +} + +col { + display: table-column; +} + +colgroup { + display: table-column-group; +} + +tbody { + display: table-row-group; + vertical-align: middle; +} + +thead { + display: table-header-group; + vertical-align: middle; +} + +tfoot { + display: table-footer-group; + vertical-align: middle; +} + +/* To simulate tbody auto-insertion */ +table > tr { + vertical-align: middle; +} + +td { + display: table-cell; + vertical-align: inherit; + text-align: inherit; + padding: 1px; +} + +th { + display: table-cell; + vertical-align: inherit; + text-align: center; + font-weight: bold; + padding: 1px; +} + +/* inlines */ + +q:before { + content: open-quote; +} + +q:after { + content: close-quote; +} + +:link { + color: #00c; + text-decoration: underline; +} + +b, strong { + font-weight: bolder; +} + +i, cite, em, var, dfn { + font-style: italic; +} + +tt, code, kbd, samp { + font-family: fixed; +} + +u, ins { + text-decoration: underline; +} + +s, strike, del { + text-decoration: line-through; +} + +big { + font-size: larger; +} + +small { + font-size: smaller; +} + +sub { + vertical-align: sub; + font-size: smaller; + line-height: normal; +} + +sup { + vertical-align: super; + font-size: smaller; + line-height: normal; +} + +nobr { + white-space: nowrap; +} + +mark { + background: yellow; + color: black; +} + +/* titles */ + +abbr[title], acronym[title] { + text-decoration: dotted underline; +} + +/* lists */ + +ul, menu, dir { + display: block; + list-style-type: disc; + margin: 1em 0; + padding-left: 40px; +} + +ol { + display: block; + list-style-type: decimal; + margin: 1em 0; + padding-left: 40px; +} + +li { + display: list-item; +} + +/*li:before { + display: -dompdf-list-bullet !important; + content: counter(-dompdf-default-counter) ". "; + padding-right: 0.5em; +}*/ + +/* nested lists have no top/bottom margins */ +:matches(ul, ol, dir, menu, dl) ul, +:matches(ul, ol, dir, menu, dl) ol, +:matches(ul, ol, dir, menu, dl) dir, +:matches(ul, ol, dir, menu, dl) menu, +:matches(ul, ol, dir, menu, dl) dl { + margin-top: 0; + margin-bottom: 0; +} + +/* 2 deep unordered lists use a circle */ +:matches(ul, ol, dir, menu) ul, +:matches(ul, ol, dir, menu) ul, +:matches(ul, ol, dir, menu) ul, +:matches(ul, ol, dir, menu) ul { + list-style-type: circle; +} + +/* 3 deep (or more) unordered lists use a square */ +:matches(ul, ol, dir, menu) :matches(ul, ol, dir, menu) ul, +:matches(ul, ol, dir, menu) :matches(ul, ol, dir, menu) menu, +:matches(ul, ol, dir, menu) :matches(ul, ol, dir, menu) dir { + list-style-type: square; +} + +/* forms */ +/* From https://drafts.csswg.org/css-ui-3/#default-style-sheet */ +form { + display: block; +} + +input, button, select { + display: inline-block; + font-family: sans-serif; +} + +input[type=text], +input[type=password], +select { + width: 12em; +} + +input[type=text], +input[type=password], +input[type=button], +input[type=submit], +input[type=reset], +input[type=file], +button, +textarea, +select { + background: #FFF; + border: 1px solid #999; + padding: 2px; + margin: 2px; +} + +input[type=button], +input[type=submit], +input[type=reset], +input[type=file], +button { + background: #CCC; + text-align: center; +} + +input[type=file] { + width: 8em; +} + +input[type=text]:before, +input[type=button]:before, +input[type=submit]:before, +input[type=reset]:before { + content: attr(value); +} + +input[type=file]:before { + content: "Choose a file"; +} + +input[type=password][value]:before { + font-family: "DejaVu Sans" !important; + content: "\2022\2022\2022\2022\2022\2022\2022\2022"; + line-height: 1em; +} + +input[type=checkbox], +input[type=radio], +select:after { + font-family: "DejaVu Sans" !important; + font-size: 18px; + line-height: 1; +} + +input[type=checkbox]:before { + content: "\2610"; +} + +input[type=checkbox][checked]:before { + content: "\2611"; +} + +input[type=radio]:before { + content: "\25CB"; +} + +input[type=radio][checked]:before { + content: "\25C9"; +} + +textarea { + display: block; + height: 3em; + overflow: hidden; + font-family: monospace; + white-space: pre-wrap; + word-wrap: break-word; +} + +select { + position: relative!important; + overflow: hidden!important; +} + +select:after { + position: absolute; + right: 0; + top: 0; + height: 5em; + width: 1.4em; + text-align: center; + background: #CCC; + content: "\25BE"; +} + +select option { + display: none; +} + +select option[selected] { + display: inline; +} + +fieldset { + display: block; + margin: 0.6em 2px 2px; + padding: 0.75em; + border: 1pt groove #666; + position: relative; +} + +fieldset > legend { + position: absolute; + top: -0.6em; + left: 0.75em; + padding: 0 0.3em; + background: white; +} + +legend { + display: inline-block; +} + +/* leafs */ + +hr { + display: block; + height: 0; + border: 1px inset; + margin: 0.5em auto 0.5em auto; +} + +hr[size="1"] { + border-style: solid none none none; +} + +iframe { + border: 2px inset; +} + +noframes { + display: block; +} + +br { + display: -dompdf-br; +} + +img, img_generated { + display: -dompdf-image !important; +} + +dompdf_generated { + display: inline; +} + +/* hidden elements */ +area, base, basefont, head, meta, script, style, title, +noembed, param { + display: none; + -dompdf-keep: yes; +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Adapter/CPDF.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Adapter/CPDF.php new file mode 100644 index 0000000..1f765c2 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Adapter/CPDF.php @@ -0,0 +1,945 @@ + [0.0, 0.0, 4767.87, 6740.79], + "2a0" => [0.0, 0.0, 3370.39, 4767.87], + "a0" => [0.0, 0.0, 2383.94, 3370.39], + "a1" => [0.0, 0.0, 1683.78, 2383.94], + "a2" => [0.0, 0.0, 1190.55, 1683.78], + "a3" => [0.0, 0.0, 841.89, 1190.55], + "a4" => [0.0, 0.0, 595.28, 841.89], + "a5" => [0.0, 0.0, 419.53, 595.28], + "a6" => [0.0, 0.0, 297.64, 419.53], + "a7" => [0.0, 0.0, 209.76, 297.64], + "a8" => [0.0, 0.0, 147.40, 209.76], + "a9" => [0.0, 0.0, 104.88, 147.40], + "a10" => [0.0, 0.0, 73.70, 104.88], + "b0" => [0.0, 0.0, 2834.65, 4008.19], + "b1" => [0.0, 0.0, 2004.09, 2834.65], + "b2" => [0.0, 0.0, 1417.32, 2004.09], + "b3" => [0.0, 0.0, 1000.63, 1417.32], + "b4" => [0.0, 0.0, 708.66, 1000.63], + "b5" => [0.0, 0.0, 498.90, 708.66], + "b6" => [0.0, 0.0, 354.33, 498.90], + "b7" => [0.0, 0.0, 249.45, 354.33], + "b8" => [0.0, 0.0, 175.75, 249.45], + "b9" => [0.0, 0.0, 124.72, 175.75], + "b10" => [0.0, 0.0, 87.87, 124.72], + "c0" => [0.0, 0.0, 2599.37, 3676.54], + "c1" => [0.0, 0.0, 1836.85, 2599.37], + "c2" => [0.0, 0.0, 1298.27, 1836.85], + "c3" => [0.0, 0.0, 918.43, 1298.27], + "c4" => [0.0, 0.0, 649.13, 918.43], + "c5" => [0.0, 0.0, 459.21, 649.13], + "c6" => [0.0, 0.0, 323.15, 459.21], + "c7" => [0.0, 0.0, 229.61, 323.15], + "c8" => [0.0, 0.0, 161.57, 229.61], + "c9" => [0.0, 0.0, 113.39, 161.57], + "c10" => [0.0, 0.0, 79.37, 113.39], + "ra0" => [0.0, 0.0, 2437.80, 3458.27], + "ra1" => [0.0, 0.0, 1729.13, 2437.80], + "ra2" => [0.0, 0.0, 1218.90, 1729.13], + "ra3" => [0.0, 0.0, 864.57, 1218.90], + "ra4" => [0.0, 0.0, 609.45, 864.57], + "sra0" => [0.0, 0.0, 2551.18, 3628.35], + "sra1" => [0.0, 0.0, 1814.17, 2551.18], + "sra2" => [0.0, 0.0, 1275.59, 1814.17], + "sra3" => [0.0, 0.0, 907.09, 1275.59], + "sra4" => [0.0, 0.0, 637.80, 907.09], + "letter" => [0.0, 0.0, 612.00, 792.00], + "half-letter" => [0.0, 0.0, 396.00, 612.00], + "legal" => [0.0, 0.0, 612.00, 1008.00], + "ledger" => [0.0, 0.0, 1224.00, 792.00], + "tabloid" => [0.0, 0.0, 792.00, 1224.00], + "executive" => [0.0, 0.0, 521.86, 756.00], + "folio" => [0.0, 0.0, 612.00, 936.00], + "commercial #10 envelope" => [0.0, 0.0, 684.00, 297.00], + "catalog #10 1/2 envelope" => [0.0, 0.0, 648.00, 864.00], + "8.5x11" => [0.0, 0.0, 612.00, 792.00], + "8.5x14" => [0.0, 0.0, 612.00, 1008.00], + "11x17" => [0.0, 0.0, 792.00, 1224.00], + ]; + + /** + * The Dompdf object + * + * @var Dompdf + */ + protected $_dompdf; + + /** + * Instance of Cpdf class + * + * @var \Dompdf\Cpdf + */ + protected $_pdf; + + /** + * PDF width, in points + * + * @var float + */ + protected $_width; + + /** + * PDF height, in points + * + * @var float + */ + protected $_height; + + /** + * Current page number + * + * @var int + */ + protected $_page_number; + + /** + * Total number of pages + * + * @var int + */ + protected $_page_count; + + /** + * Array of pages for accessing after rendering is initially complete + * + * @var array + */ + protected $_pages; + + /** + * Currently-applied opacity level (0 - 1) + * + * @var float + */ + protected $_current_opacity = 1; + + public function __construct($paper = "letter", $orientation = "portrait", ?Dompdf $dompdf = null) + { + if (is_array($paper)) { + $size = array_map("floatval", $paper); + } else { + $paper = strtolower($paper); + $size = self::$PAPER_SIZES[$paper] ?? self::$PAPER_SIZES["letter"]; + } + + if (strtolower($orientation) === "landscape") { + [$size[2], $size[3]] = [$size[3], $size[2]]; + } + + if ($dompdf === null) { + $this->_dompdf = new Dompdf(); + } else { + $this->_dompdf = $dompdf; + } + + $this->_pdf = new \Dompdf\Cpdf( + $size, + true, + $this->_dompdf->getOptions()->getFontCache(), + $this->_dompdf->getOptions()->getTempDir() + ); + + $this->_pdf->addInfo("Producer", sprintf("%s + CPDF", $this->_dompdf->version)); + $time = substr_replace(date('YmdHisO'), '\'', -2, 0) . '\''; + $this->_pdf->addInfo("CreationDate", "D:$time"); + $this->_pdf->addInfo("ModDate", "D:$time"); + + $this->_width = $size[2] - $size[0]; + $this->_height = $size[3] - $size[1]; + + $this->_page_number = $this->_page_count = 1; + + $this->_pages = [$this->_pdf->getFirstPageId()]; + } + + public function get_dompdf() + { + return $this->_dompdf; + } + + /** + * Returns the Cpdf instance + * + * @return \Dompdf\Cpdf + */ + public function get_cpdf() + { + return $this->_pdf; + } + + public function add_info(string $label, string $value): void + { + $this->_pdf->addInfo($label, $value); + } + + /** + * Opens a new 'object' + * + * While an object is open, all drawing actions are recorded in the object, + * as opposed to being drawn on the current page. Objects can be added + * later to a specific page or to several pages. + * + * The return value is an integer ID for the new object. + * + * @see CPDF::close_object() + * @see CPDF::add_object() + * + * @return int + */ + public function open_object() + { + $ret = $this->_pdf->openObject(); + $this->_pdf->saveState(); + return $ret; + } + + /** + * Reopens an existing 'object' + * + * @see CPDF::open_object() + * @param int $object the ID of a previously opened object + */ + public function reopen_object($object) + { + $this->_pdf->reopenObject($object); + $this->_pdf->saveState(); + } + + /** + * Closes the current 'object' + * + * @see CPDF::open_object() + */ + public function close_object() + { + $this->_pdf->restoreState(); + $this->_pdf->closeObject(); + } + + /** + * Adds a specified 'object' to the document + * + * $object int specifying an object created with {@link + * CPDF::open_object()}. $where can be one of: + * - 'add' add to current page only + * - 'all' add to every page from the current one onwards + * - 'odd' add to all odd numbered pages from now on + * - 'even' add to all even numbered pages from now on + * - 'next' add the object to the next page only + * - 'nextodd' add to all odd numbered pages from the next one + * - 'nexteven' add to all even numbered pages from the next one + * + * @see Cpdf::addObject() + * + * @param int $object + * @param string $where + */ + public function add_object($object, $where = 'all') + { + $this->_pdf->addObject($object, $where); + } + + /** + * Stops the specified 'object' from appearing in the document. + * + * The object will stop being displayed on the page following the current + * one. + * + * @param int $object + */ + public function stop_object($object) + { + $this->_pdf->stopObject($object); + } + + /** + * Serialize the pdf object's current state for retrieval later + */ + public function serialize_object($id) + { + return $this->_pdf->serializeObject($id); + } + + public function reopen_serialized_object($obj) + { + return $this->_pdf->restoreSerializedObject($obj); + } + + //........................................................................ + + public function get_width() + { + return $this->_width; + } + + public function get_height() + { + return $this->_height; + } + + public function get_page_number() + { + return $this->_page_number; + } + + public function get_page_count() + { + return $this->_page_count; + } + + /** + * Sets the current page number + * + * @param int $num + */ + public function set_page_number($num) + { + $this->_page_number = $num; + } + + public function set_page_count($count) + { + $this->_page_count = $count; + } + + /** + * Sets the stroke color + * + * See {@link Style::set_color()} for the format of the color array. + * + * @param array $color + */ + protected function _set_stroke_color($color) + { + $this->_pdf->setStrokeColor($color); + $alpha = isset($color["alpha"]) ? $color["alpha"] : 1; + $alpha *= $this->_current_opacity; + $this->_set_line_transparency("Normal", $alpha); + } + + /** + * Sets the fill colour + * + * See {@link Style::set_color()} for the format of the colour array. + * + * @param array $color + */ + protected function _set_fill_color($color) + { + $this->_pdf->setColor($color); + $alpha = isset($color["alpha"]) ? $color["alpha"] : 1; + $alpha *= $this->_current_opacity; + $this->_set_fill_transparency("Normal", $alpha); + } + + /** + * Sets line transparency + * @see Cpdf::setLineTransparency() + * + * Valid blend modes are (case-sensitive): + * + * Normal, Multiply, Screen, Overlay, Darken, Lighten, + * ColorDodge, ColorBurn, HardLight, SoftLight, Difference, + * Exclusion + * + * @param string $mode the blending mode to use + * @param float $opacity 0.0 fully transparent, 1.0 fully opaque + */ + protected function _set_line_transparency($mode, $opacity) + { + $this->_pdf->setLineTransparency($mode, $opacity); + } + + /** + * Sets fill transparency + * @see Cpdf::setFillTransparency() + * + * Valid blend modes are (case-sensitive): + * + * Normal, Multiply, Screen, Overlay, Darken, Lighten, + * ColorDogde, ColorBurn, HardLight, SoftLight, Difference, + * Exclusion + * + * @param string $mode the blending mode to use + * @param float $opacity 0.0 fully transparent, 1.0 fully opaque + */ + protected function _set_fill_transparency($mode, $opacity) + { + $this->_pdf->setFillTransparency($mode, $opacity); + } + + /** + * Sets the line style + * + * @see Cpdf::setLineStyle() + * + * @param float $width + * @param string $cap + * @param string $join + * @param array $dash + */ + protected function _set_line_style($width, $cap, $join, $dash) + { + $this->_pdf->setLineStyle($width, $cap, $join, $dash); + } + + public function set_opacity(float $opacity, string $mode = "Normal"): void + { + $this->_set_line_transparency($mode, $opacity); + $this->_set_fill_transparency($mode, $opacity); + $this->_current_opacity = $opacity; + } + + public function set_default_view($view, $options = []) + { + array_unshift($options, $view); + call_user_func_array([$this->_pdf, "openHere"], $options); + } + + /** + * Remaps y coords from 4th to 1st quadrant + * + * @param float $y + * @return float + */ + protected function y($y) + { + return $this->_height - $y; + } + + public function line($x1, $y1, $x2, $y2, $color, $width, $style = [], $cap = "butt") + { + $this->_set_stroke_color($color); + $this->_set_line_style($width, $cap, "", $style); + + $this->_pdf->line($x1, $this->y($y1), + $x2, $this->y($y2)); + $this->_set_line_transparency("Normal", $this->_current_opacity); + } + + public function arc($x, $y, $r1, $r2, $astart, $aend, $color, $width, $style = [], $cap = "butt") + { + $this->_set_stroke_color($color); + $this->_set_line_style($width, $cap, "", $style); + + $this->_pdf->ellipse($x, $this->y($y), $r1, $r2, 0, 8, $astart, $aend, false, false, true, false); + $this->_set_line_transparency("Normal", $this->_current_opacity); + } + + public function rectangle($x1, $y1, $w, $h, $color, $width, $style = [], $cap = "butt") + { + $this->_set_stroke_color($color); + $this->_set_line_style($width, $cap, "", $style); + $this->_pdf->rectangle($x1, $this->y($y1) - $h, $w, $h); + $this->_set_line_transparency("Normal", $this->_current_opacity); + } + + public function filled_rectangle($x1, $y1, $w, $h, $color) + { + $this->_set_fill_color($color); + $this->_pdf->filledRectangle($x1, $this->y($y1) - $h, $w, $h); + $this->_set_fill_transparency("Normal", $this->_current_opacity); + } + + public function clipping_rectangle($x1, $y1, $w, $h) + { + $this->_pdf->clippingRectangle($x1, $this->y($y1) - $h, $w, $h); + } + + public function clipping_roundrectangle($x1, $y1, $w, $h, $rTL, $rTR, $rBR, $rBL) + { + $this->_pdf->clippingRectangleRounded($x1, $this->y($y1) - $h, $w, $h, $rTL, $rTR, $rBR, $rBL); + } + + public function clipping_polygon(array $points): void + { + // Adjust y values + for ($i = 1; $i < count($points); $i += 2) { + $points[$i] = $this->y($points[$i]); + } + + $this->_pdf->clippingPolygon($points); + } + + public function clipping_end() + { + $this->_pdf->clippingEnd(); + } + + public function save() + { + $this->_pdf->saveState(); + } + + public function restore() + { + $this->_pdf->restoreState(); + } + + public function rotate($angle, $x, $y) + { + $this->_pdf->rotate($angle, $x, $y); + } + + public function skew($angle_x, $angle_y, $x, $y) + { + $this->_pdf->skew($angle_x, $angle_y, $x, $y); + } + + public function scale($s_x, $s_y, $x, $y) + { + $this->_pdf->scale($s_x, $s_y, $x, $y); + } + + public function translate($t_x, $t_y) + { + $this->_pdf->translate($t_x, $t_y); + } + + public function transform($a, $b, $c, $d, $e, $f) + { + $this->_pdf->transform([$a, $b, $c, $d, $e, $f]); + } + + public function polygon($points, $color, $width = null, $style = [], $fill = false) + { + $this->_set_fill_color($color); + $this->_set_stroke_color($color); + + if (!$fill && isset($width)) { + $this->_set_line_style($width, "square", "miter", $style); + } + + // Adjust y values + for ($i = 1; $i < count($points); $i += 2) { + $points[$i] = $this->y($points[$i]); + } + + $this->_pdf->polygon($points, $fill); + + $this->_set_fill_transparency("Normal", $this->_current_opacity); + $this->_set_line_transparency("Normal", $this->_current_opacity); + } + + public function circle($x, $y, $r, $color, $width = null, $style = [], $fill = false) + { + $this->_set_fill_color($color); + $this->_set_stroke_color($color); + + if (!$fill && isset($width)) { + $this->_set_line_style($width, "round", "round", $style); + } + + $this->_pdf->ellipse($x, $this->y($y), $r, 0, 0, 8, 0, 360, 1, $fill); + + $this->_set_fill_transparency("Normal", $this->_current_opacity); + $this->_set_line_transparency("Normal", $this->_current_opacity); + } + + /** + * Convert image to a PNG image + * + * @param string $image_url + * @param string $type + * + * @return string|null The url of the newly converted image + */ + protected function _convert_to_png($image_url, $type) + { + $filename = Cache::getTempImage($image_url); + + if ($filename !== null && file_exists($filename)) { + return $filename; + } + + $func_name = "imagecreatefrom$type"; + + set_error_handler([Helpers::class, "record_warnings"]); + + if (!function_exists($func_name)) { + if (!method_exists(Helpers::class, $func_name)) { + throw new Exception("Function $func_name() not found. Cannot convert $type image: $image_url. Please install the image PHP extension."); + } + $func_name = [Helpers::class, $func_name]; + } + + try { + $im = call_user_func($func_name, $image_url); + + if ($im) { + imageinterlace($im, false); + + $tmp_dir = $this->_dompdf->getOptions()->getTempDir(); + $tmp_name = @tempnam($tmp_dir, "{$type}_dompdf_img_"); + @unlink($tmp_name); + $filename = "$tmp_name.png"; + + imagepng($im, $filename); + imagedestroy($im); + } else { + $filename = null; + } + } finally { + restore_error_handler(); + } + + if ($filename !== null) { + Cache::addTempImage($image_url, $filename); + } + + return $filename; + } + + public function image($img, $x, $y, $w, $h, $resolution = "normal") + { + [$width, $height, $type] = Helpers::dompdf_getimagesize($img, $this->get_dompdf()->getHttpContext()); + + $debug_png = $this->_dompdf->getOptions()->getDebugPng(); + + if ($debug_png) { + print "[image:$img|$width|$height|$type]"; + } + + switch ($type) { + case "jpeg": + if ($debug_png) { + print '!!!jpg!!!'; + } + $this->_pdf->addJpegFromFile($img, $x, $this->y($y) - $h, $w, $h); + break; + + case "webp": + /** @noinspection PhpMissingBreakStatementInspection */ + case "gif": + /** @noinspection PhpMissingBreakStatementInspection */ + case "bmp": + if ($debug_png) print "!!!{$type}!!!"; + $img = $this->_convert_to_png($img, $type); + if ($img === null) { + if ($debug_png) print '!!!conversion to PDF failed!!!'; + $this->image(Cache::$broken_image, $x, $y, $w, $h, $resolution); + break; + } + + case "png": + if ($debug_png) print '!!!png!!!'; + + $this->_pdf->addPngFromFile($img, $x, $this->y($y) - $h, $w, $h); + break; + + case "svg": + if ($debug_png) print '!!!SVG!!!'; + + $this->_pdf->addSvgFromFile($img, $x, $this->y($y) - $h, $w, $h); + break; + + default: + if ($debug_png) print '!!!unknown!!!'; + } + } + + public function select($x, $y, $w, $h, $font, $size, $color = [0, 0, 0], $opts = []) + { + $pdf = $this->_pdf; + + $font .= ".afm"; + $pdf->selectFont($font); + + if (!isset($pdf->acroFormId)) { + $pdf->addForm(); + } + + $ft = \Dompdf\Cpdf::ACROFORM_FIELD_CHOICE; + $ff = \Dompdf\Cpdf::ACROFORM_FIELD_CHOICE_COMBO; + + $id = $pdf->addFormField($ft, rand(), $x, $this->y($y) - $h, $x + $w, $this->y($y), $ff, $size, $color); + $pdf->setFormFieldOpt($id, $opts); + } + + public function textarea($x, $y, $w, $h, $font, $size, $color = [0, 0, 0]) + { + $pdf = $this->_pdf; + + $font .= ".afm"; + $pdf->selectFont($font); + + if (!isset($pdf->acroFormId)) { + $pdf->addForm(); + } + + $ft = \Dompdf\Cpdf::ACROFORM_FIELD_TEXT; + $ff = \Dompdf\Cpdf::ACROFORM_FIELD_TEXT_MULTILINE; + + $pdf->addFormField($ft, rand(), $x, $this->y($y) - $h, $x + $w, $this->y($y), $ff, $size, $color); + } + + public function input($x, $y, $w, $h, $type, $font, $size, $color = [0, 0, 0]) + { + $pdf = $this->_pdf; + + $font .= ".afm"; + $pdf->selectFont($font); + + if (!isset($pdf->acroFormId)) { + $pdf->addForm(); + } + + $ft = \Dompdf\Cpdf::ACROFORM_FIELD_TEXT; + $ff = 0; + + switch ($type) { + case 'text': + $ft = \Dompdf\Cpdf::ACROFORM_FIELD_TEXT; + break; + case 'password': + $ft = \Dompdf\Cpdf::ACROFORM_FIELD_TEXT; + $ff = \Dompdf\Cpdf::ACROFORM_FIELD_TEXT_PASSWORD; + break; + case 'submit': + $ft = \Dompdf\Cpdf::ACROFORM_FIELD_BUTTON; + break; + } + + $pdf->addFormField($ft, rand(), $x, $this->y($y) - $h, $x + $w, $this->y($y), $ff, $size, $color); + } + + public function text($x, $y, $text, $font, $size, $color = [0, 0, 0], $word_space = 0.0, $char_space = 0.0, $angle = 0.0) + { + $pdf = $this->_pdf; + + $this->_set_fill_color($color); + + $is_font_subsetting = $this->_dompdf->getOptions()->getIsFontSubsettingEnabled(); + $pdf->selectFont($font . '.afm', '', true, $is_font_subsetting); + + $pdf->addText($x, $this->y($y) - $pdf->getFontHeight($size), $size, $text, $angle, $word_space, $char_space); + + $this->_set_fill_transparency("Normal", $this->_current_opacity); + } + + public function javascript($code) + { + $this->_pdf->addJavascript($code); + } + + //........................................................................ + + public function add_named_dest($anchorname) + { + $this->_pdf->addDestination($anchorname, "Fit"); + } + + public function add_link($url, $x, $y, $width, $height) + { + $y = $this->y($y) - $height; + + if (strpos($url, '#') === 0) { + // Local link + $name = substr($url, 1); + if ($name) { + $this->_pdf->addInternalLink($name, $x, $y, $x + $width, $y + $height); + } + } else { + $this->_pdf->addLink($url, $x, $y, $x + $width, $y + $height); + } + } + + /** + * @throws FontNotFoundException + */ + public function get_text_width($text, $font, $size, $word_spacing = 0.0, $char_spacing = 0.0) + { + $this->_pdf->selectFont($font, '', true, $this->_dompdf->getOptions()->getIsFontSubsettingEnabled()); + return $this->_pdf->getTextWidth($size, $text, $word_spacing, $char_spacing); + } + + /** + * @throws FontNotFoundException + */ + public function get_font_height($font, $size) + { + $options = $this->_dompdf->getOptions(); + $this->_pdf->selectFont($font, '', true, $options->getIsFontSubsettingEnabled()); + + return $this->_pdf->getFontHeight($size) * $options->getFontHeightRatio(); + } + + /*function get_font_x_height($font, $size) { + $this->_pdf->selectFont($font); + $ratio = $this->_dompdf->getOptions()->getFontHeightRatio(); + return $this->_pdf->getFontXHeight($size) * $ratio; + }*/ + + /** + * @throws FontNotFoundException + */ + public function get_font_baseline($font, $size) + { + $ratio = $this->_dompdf->getOptions()->getFontHeightRatio(); + return $this->get_font_height($font, $size) / $ratio; + } + + /** + * Processes a callback or script on every page. + * + * The callback function receives the four parameters `int $pageNumber`, + * `int $pageCount`, `Canvas $canvas`, and `FontMetrics $fontMetrics`, in + * that order. If a script is passed as string, the variables `$PAGE_NUM`, + * `$PAGE_COUNT`, `$pdf`, and `$fontMetrics` are available instead. Passing + * a script as string is deprecated and will be removed in a future version. + * + * This function can be used to add page numbers to all pages after the + * first one, for example. + * + * @param callable|string $callback The callback function or PHP script to process on every page + */ + public function page_script($callback): void + { + if (is_string($callback)) { + $this->processPageScript(function ( + int $PAGE_NUM, + int $PAGE_COUNT, + self $pdf, + FontMetrics $fontMetrics + ) use ($callback) { + eval($callback); + }); + return; + } + + $this->processPageScript($callback); + } + + public function page_text($x, $y, $text, $font, $size, $color = [0, 0, 0], $word_space = 0.0, $char_space = 0.0, $angle = 0.0) + { + $this->processPageScript(function (int $pageNumber, int $pageCount) use ($x, $y, $text, $font, $size, $color, $word_space, $char_space, $angle) { + $text = str_replace( + ["{PAGE_NUM}", "{PAGE_COUNT}"], + [$pageNumber, $pageCount], + $text + ); + $this->text($x, $y, $text, $font, $size, $color, $word_space, $char_space, $angle); + }); + } + + public function page_line($x1, $y1, $x2, $y2, $color, $width, $style = []) + { + $this->processPageScript(function () use ($x1, $y1, $x2, $y2, $color, $width, $style) { + $this->line($x1, $y1, $x2, $y2, $color, $width, $style); + }); + } + + /** + * @return int + */ + public function new_page() + { + $this->_page_number++; + $this->_page_count++; + + $ret = $this->_pdf->newPage(); + $this->_pages[] = $ret; + return $ret; + } + + protected function processPageScript(callable $callback): void + { + $pageNumber = 1; + + foreach ($this->_pages as $pid) { + $this->reopen_object($pid); + + $fontMetrics = $this->_dompdf->getFontMetrics(); + $callback($pageNumber, $this->_page_count, $this, $fontMetrics); + + $this->close_object(); + $pageNumber++; + } + } + + public function stream($filename = "document.pdf", $options = []) + { + + if (headers_sent()) { + die("B Unable to stream pdf: headers already sent"); + } + + if (!isset($options["compress"])) $options["compress"] = true; + if (!isset($options["Attachment"])) $options["Attachment"] = true; + + $debug = !$options['compress']; + $tmp = ltrim($this->_pdf->output($debug)); + + header("Cache-Control: private"); + header("Content-Type: application/pdf"); + header("Content-Length: " . mb_strlen($tmp, "8bit")); + + $filename = str_replace(["\n", "'"], "", basename($filename, ".pdf")) . ".pdf"; + $attachment = $options["Attachment"] ? "attachment" : "inline"; + header(Helpers::buildContentDispositionHeader($attachment, $filename)); + + echo $tmp; + flush(); + } + + public function output($options = []) + { + if (!isset($options["compress"])) $options["compress"] = true; + + $debug = !$options['compress']; + + return $this->_pdf->output($debug); + } + + /** + * Returns logging messages generated by the Cpdf class + * + * @return string + */ + public function get_messages() + { + return $this->_pdf->messages; + } +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Adapter/GD.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Adapter/GD.php new file mode 100644 index 0000000..8c10e47 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Adapter/GD.php @@ -0,0 +1,929 @@ +_dompdf = new Dompdf(); + } else { + $this->_dompdf = $dompdf; + } + + $this->dpi = $this->get_dompdf()->getOptions()->getDpi(); + + if ($aa_factor < 1) { + $aa_factor = 1; + } + + $this->_aa_factor = $aa_factor; + + $size[2] *= $aa_factor; + $size[3] *= $aa_factor; + + $this->_width = $size[2] - $size[0]; + $this->_height = $size[3] - $size[1]; + + $this->_actual_width = $this->_upscale($this->_width); + $this->_actual_height = $this->_upscale($this->_height); + + $this->_page_number = $this->_page_count = 0; + + if (is_null($bg_color) || !is_array($bg_color)) { + // Pure white bg + $bg_color = [1, 1, 1, 0]; + } + + $this->_bg_color_array = $bg_color; + + $this->new_page(); + } + + public function get_dompdf() + { + return $this->_dompdf; + } + + /** + * Return the GD image resource + * + * @return \GdImage|resource + */ + public function get_image() + { + return $this->_img; + } + + /** + * Return the image's width in pixels + * + * @return int + */ + public function get_width() + { + return round($this->_width / $this->_aa_factor); + } + + /** + * Return the image's height in pixels + * + * @return int + */ + public function get_height() + { + return round($this->_height / $this->_aa_factor); + } + + public function get_page_number() + { + return $this->_page_number; + } + + public function get_page_count() + { + return $this->_page_count; + } + + /** + * Sets the current page number + * + * @param int $num + */ + public function set_page_number($num) + { + $this->_page_number = $num; + } + + public function set_page_count($count) + { + $this->_page_count = $count; + } + + public function set_opacity(float $opacity, string $mode = "Normal"): void + { + // FIXME + } + + /** + * Allocate a new color. Allocate with GD as needed and store + * previously allocated colors in $this->_colors. + * + * @param array $color The new current color + * @return int The allocated color + */ + protected function _allocate_color($color) + { + $a = isset($color["alpha"]) ? $color["alpha"] : 1; + + if (isset($color["c"])) { + $color = Helpers::cmyk_to_rgb($color); + } + + list($r, $g, $b) = $color; + + $r = round($r * 255); + $g = round($g * 255); + $b = round($b * 255); + $a = round(127 - ($a * 127)); + + // Clip values + $r = $r > 255 ? 255 : $r; + $g = $g > 255 ? 255 : $g; + $b = $b > 255 ? 255 : $b; + $a = $a > 127 ? 127 : $a; + + $r = $r < 0 ? 0 : $r; + $g = $g < 0 ? 0 : $g; + $b = $b < 0 ? 0 : $b; + $a = $a < 0 ? 0 : $a; + + $key = sprintf("#%02X%02X%02X%02X", $r, $g, $b, $a); + + if (isset($this->_colors[$key])) { + return $this->_colors[$key]; + } + + if ($a != 0) { + $this->_colors[$key] = imagecolorallocatealpha($this->get_image(), $r, $g, $b, $a); + } else { + $this->_colors[$key] = imagecolorallocate($this->get_image(), $r, $g, $b); + } + + return $this->_colors[$key]; + } + + /** + * Scales value up to the current canvas DPI from 72 DPI + * + * @param float $length + * @return int + */ + protected function _upscale($length) + { + return round(($length * $this->dpi) / 72 * $this->_aa_factor); + } + + /** + * Scales value down from the current canvas DPI to 72 DPI + * + * @param float $length + * @return float + */ + protected function _downscale($length) + { + return round(($length / $this->dpi * 72) / $this->_aa_factor); + } + + protected function convertStyle(array $style, int $color, int $width): array + { + $gdStyle = []; + + if (count($style) === 1) { + $style[] = $style[0]; + } + + foreach ($style as $index => $s) { + $d = $this->_upscale($s); + + for ($i = 0; $i < $d; $i++) { + for ($j = 0; $j < $width; $j++) { + $gdStyle[] = $index % 2 === 0 + ? $color + : IMG_COLOR_TRANSPARENT; + } + } + } + + return $gdStyle; + } + + public function line($x1, $y1, $x2, $y2, $color, $width, $style = [], $cap = "butt") + { + // Account for the fact that round and square caps are expected to + // extend outwards + if ($cap === "round" || $cap === "square") { + // Shift line by half width + $w = $width / 2; + $a = $x2 - $x1; + $b = $y2 - $y1; + $c = sqrt($a ** 2 + $b ** 2); + $dx = $a * $w / $c; + $dy = $b * $w / $c; + + $x1 -= $dx; + $x2 -= $dx; + $y1 -= $dy; + $y2 -= $dy; + + // Adapt dash pattern + if (is_array($style)) { + foreach ($style as $index => &$s) { + $s = $index % 2 === 0 ? $s + $width : $s - $width; + } + } + } + + // Scale by the AA factor and DPI + $x1 = $this->_upscale($x1); + $y1 = $this->_upscale($y1); + $x2 = $this->_upscale($x2); + $y2 = $this->_upscale($y2); + $width = $this->_upscale($width); + + $c = $this->_allocate_color($color); + + // Convert the style array if required + if (is_array($style) && count($style) > 0) { + $gd_style = $this->convertStyle($style, $c, $width); + + if (!empty($gd_style)) { + imagesetstyle($this->get_image(), $gd_style); + $c = IMG_COLOR_STYLED; + } + } + + imagesetthickness($this->get_image(), $width); + + imageline($this->get_image(), $x1, $y1, $x2, $y2, $c); + } + + public function arc($x, $y, $r1, $r2, $astart, $aend, $color, $width, $style = [], $cap = "butt") + { + // Account for the fact that round and square caps are expected to + // extend outwards + if ($cap === "round" || $cap === "square") { + // Adapt dash pattern + if (is_array($style)) { + foreach ($style as $index => &$s) { + $s = $index % 2 === 0 ? $s + $width : $s - $width; + } + } + } + + // Scale by the AA factor and DPI + $x = $this->_upscale($x); + $y = $this->_upscale($y); + $w = $this->_upscale($r1 * 2); + $h = $this->_upscale($r2 * 2); + $width = $this->_upscale($width); + + // Adapt angles as imagearc counts clockwise + $start = 360 - $aend; + $end = 360 - $astart; + + $c = $this->_allocate_color($color); + + // Convert the style array if required + if (is_array($style) && count($style) > 0) { + $gd_style = $this->convertStyle($style, $c, $width); + + if (!empty($gd_style)) { + imagesetstyle($this->get_image(), $gd_style); + $c = IMG_COLOR_STYLED; + } + } + + imagesetthickness($this->get_image(), $width); + + imagearc($this->get_image(), $x, $y, $w, $h, $start, $end, $c); + } + + public function rectangle($x1, $y1, $w, $h, $color, $width, $style = [], $cap = "butt") + { + // Account for the fact that round and square caps are expected to + // extend outwards + if ($cap === "round" || $cap === "square") { + // Adapt dash pattern + if (is_array($style)) { + foreach ($style as $index => &$s) { + $s = $index % 2 === 0 ? $s + $width : $s - $width; + } + } + } + + // Scale by the AA factor and DPI + $x1 = $this->_upscale($x1); + $y1 = $this->_upscale($y1); + $w = $this->_upscale($w); + $h = $this->_upscale($h); + $width = $this->_upscale($width); + + $c = $this->_allocate_color($color); + + // Convert the style array if required + if (is_array($style) && count($style) > 0) { + $gd_style = $this->convertStyle($style, $c, $width); + + if (!empty($gd_style)) { + imagesetstyle($this->get_image(), $gd_style); + $c = IMG_COLOR_STYLED; + } + } + + imagesetthickness($this->get_image(), $width); + + if ($c === IMG_COLOR_STYLED) { + imagepolygon($this->get_image(), [ + $x1, $y1, + $x1 + $w, $y1, + $x1 + $w, $y1 + $h, + $x1, $y1 + $h + ], $c); + } else { + imagerectangle($this->get_image(), $x1, $y1, $x1 + $w, $y1 + $h, $c); + } + } + + public function filled_rectangle($x1, $y1, $w, $h, $color) + { + // Scale by the AA factor and DPI + $x1 = $this->_upscale($x1); + $y1 = $this->_upscale($y1); + $w = $this->_upscale($w); + $h = $this->_upscale($h); + + $c = $this->_allocate_color($color); + + imagefilledrectangle($this->get_image(), $x1, $y1, $x1 + $w, $y1 + $h, $c); + } + + public function clipping_rectangle($x1, $y1, $w, $h) + { + // @todo + } + + public function clipping_roundrectangle($x1, $y1, $w, $h, $rTL, $rTR, $rBR, $rBL) + { + // @todo + } + + public function clipping_polygon(array $points): void + { + // @todo + } + + public function clipping_end() + { + // @todo + } + + public function save() + { + $this->get_dompdf()->getOptions()->setDpi(72); + } + + public function restore() + { + $this->get_dompdf()->getOptions()->setDpi($this->dpi); + } + + public function rotate($angle, $x, $y) + { + // @todo + } + + public function skew($angle_x, $angle_y, $x, $y) + { + // @todo + } + + public function scale($s_x, $s_y, $x, $y) + { + // @todo + } + + public function translate($t_x, $t_y) + { + // @todo + } + + public function transform($a, $b, $c, $d, $e, $f) + { + // @todo + } + + public function polygon($points, $color, $width = null, $style = [], $fill = false) + { + // Scale each point by the AA factor and DPI + foreach (array_keys($points) as $i) { + $points[$i] = $this->_upscale($points[$i]); + } + + $width = isset($width) ? $this->_upscale($width) : null; + + $c = $this->_allocate_color($color); + + // Convert the style array if required + if (is_array($style) && count($style) > 0 && isset($width) && !$fill) { + $gd_style = $this->convertStyle($style, $c, $width); + + if (!empty($gd_style)) { + imagesetstyle($this->get_image(), $gd_style); + $c = IMG_COLOR_STYLED; + } + } + + imagesetthickness($this->get_image(), isset($width) ? $width : 0); + + if ($fill) { + imagefilledpolygon($this->get_image(), $points, $c); + } else { + imagepolygon($this->get_image(), $points, $c); + } + } + + public function circle($x, $y, $r, $color, $width = null, $style = [], $fill = false) + { + // Scale by the AA factor and DPI + $x = $this->_upscale($x); + $y = $this->_upscale($y); + $d = $this->_upscale(2 * $r); + $width = isset($width) ? $this->_upscale($width) : null; + + $c = $this->_allocate_color($color); + + // Convert the style array if required + if (is_array($style) && count($style) > 0 && isset($width) && !$fill) { + $gd_style = $this->convertStyle($style, $c, $width); + + if (!empty($gd_style)) { + imagesetstyle($this->get_image(), $gd_style); + $c = IMG_COLOR_STYLED; + } + } + + imagesetthickness($this->get_image(), isset($width) ? $width : 0); + + if ($fill) { + imagefilledellipse($this->get_image(), $x, $y, $d, $d, $c); + } else { + imageellipse($this->get_image(), $x, $y, $d, $d, $c); + } + } + + /** + * @throws \Exception + */ + public function image($img, $x, $y, $w, $h, $resolution = "normal") + { + $img_type = Cache::detect_type($img, $this->get_dompdf()->getHttpContext()); + + if (!$img_type) { + return; + } + + $func_name = "imagecreatefrom$img_type"; + if (!function_exists($func_name)) { + if (!method_exists(Helpers::class, $func_name)) { + throw new \Exception("Function $func_name() not found. Cannot convert $img_type image: $img. Please install the image PHP extension."); + } + $func_name = [Helpers::class, $func_name]; + } + $src = @call_user_func($func_name, $img); + + if (!$src) { + return; // Probably should add to $_dompdf_errors or whatever here + } + + // Scale by the AA factor and DPI + $x = $this->_upscale($x); + $y = $this->_upscale($y); + + $w = $this->_upscale($w); + $h = $this->_upscale($h); + + $img_w = imagesx($src); + $img_h = imagesy($src); + + imagecopyresampled($this->get_image(), $src, $x, $y, 0, 0, $w, $h, $img_w, $img_h); + } + + public function text($x, $y, $text, $font, $size, $color = [0, 0, 0], $word_spacing = 0.0, $char_spacing = 0.0, $angle = 0.0) + { + // Scale by the AA factor and DPI + $x = $this->_upscale($x); + $y = $this->_upscale($y); + $size = $this->_upscale($size) * self::FONT_SCALE; + + $h = round($this->get_font_height_actual($font, $size)); + $c = $this->_allocate_color($color); + + // imagettftext() converts numeric entities to their respective + // character. Preserve any originally double encoded entities to be + // represented as is. + // eg: &#160; will render   rather than its character. + $text = preg_replace('/&(#(?:x[a-fA-F0-9]+|[0-9]+);)/', '&\1', $text); + + $text = mb_encode_numericentity($text, [0x0080, 0xff, 0, 0xff], 'UTF-8'); + + $font = $this->get_ttf_file($font); + + // FIXME: word spacing + imagettftext($this->get_image(), $size, $angle, $x, $y + $h, $c, $font, $text); + } + + public function javascript($code) + { + // Not implemented + } + + public function add_named_dest($anchorname) + { + // Not implemented + } + + public function add_link($url, $x, $y, $width, $height) + { + // Not implemented + } + + public function add_info(string $label, string $value): void + { + // N/A + } + + public function set_default_view($view, $options = []) + { + // N/A + } + + public function get_text_width($text, $font, $size, $word_spacing = 0.0, $char_spacing = 0.0) + { + $font = $this->get_ttf_file($font); + $size = $this->_upscale($size) * self::FONT_SCALE; + + // imagettfbbox() converts numeric entities to their respective + // character. Preserve any originally double encoded entities to be + // represented as is. + // eg: &#160; will render   rather than its character. + $text = preg_replace('/&(#(?:x[a-fA-F0-9]+|[0-9]+);)/', '&\1', $text); + + $text = mb_encode_numericentity($text, [0x0080, 0xffff, 0, 0xffff], 'UTF-8'); + + // FIXME: word spacing + list($x1, , $x2) = imagettfbbox($size, 0, $font, $text); + + // Add additional 1pt to prevent text overflow issues + return $this->_downscale($x2 - $x1) + 1; + } + + /** + * @param string|null $font + * @return string + */ + public function get_ttf_file($font) + { + if ($font === null) { + $font = ""; + } + + if ( stripos($font, ".ttf") === false ) { + $font .= ".ttf"; + } + + if (!file_exists($font)) { + $font_metrics = $this->_dompdf->getFontMetrics(); + $font = $font_metrics->getFont($this->_dompdf->getOptions()->getDefaultFont()) . ".ttf"; + if (!file_exists($font)) { + if (strpos($font, "mono")) { + $font = $font_metrics->getFont("DejaVu Mono") . ".ttf"; + } elseif (strpos($font, "sans") !== false) { + $font = $font_metrics->getFont("DejaVu Sans") . ".ttf"; + } elseif (strpos($font, "serif")) { + $font = $font_metrics->getFont("DejaVu Serif") . ".ttf"; + } else { + $font = $font_metrics->getFont("DejaVu Sans") . ".ttf"; + } + } + } + + return $font; + } + + public function get_font_height($font, $size) + { + $size = $this->_upscale($size) * self::FONT_SCALE; + + $height = $this->get_font_height_actual($font, $size); + + return $this->_downscale($height); + } + + /** + * @param string $font + * @param float $size + * + * @return float + */ + protected function get_font_height_actual($font, $size) + { + $font = $this->get_ttf_file($font); + $ratio = $this->_dompdf->getOptions()->getFontHeightRatio(); + + // FIXME: word spacing + list(, $y2, , , , $y1) = imagettfbbox($size, 0, $font, "MXjpqytfhl"); // Test string with ascenders, descenders and caps + return ($y2 - $y1) * $ratio; + } + + public function get_font_baseline($font, $size) + { + $ratio = $this->_dompdf->getOptions()->getFontHeightRatio(); + return $this->get_font_height($font, $size) / $ratio; + } + + public function new_page() + { + $this->_page_number++; + $this->_page_count++; + + $this->_img = imagecreatetruecolor($this->_actual_width, $this->_actual_height); + + $this->_bg_color = $this->_allocate_color($this->_bg_color_array); + imagealphablending($this->_img, true); + imagesavealpha($this->_img, true); + imagefill($this->_img, 0, 0, $this->_bg_color); + + $this->_imgs[] = $this->_img; + } + + public function open_object() + { + // N/A + } + + public function close_object() + { + // N/A + } + + public function add_object() + { + // N/A + } + + public function page_script($callback): void + { + // N/A + } + + public function page_text($x, $y, $text, $font, $size, $color = [0, 0, 0], $word_space = 0.0, $char_space = 0.0, $angle = 0.0) + { + // N/A + } + + public function page_line($x1, $y1, $x2, $y2, $color, $width, $style = []) + { + // N/A + } + + /** + * Streams the image to the client. + * + * @param string $filename The filename to present to the client. + * @param array $options Associative array: 'type' => jpeg|jpg|png; 'quality' => 0 - 100 (JPEG only); + * 'page' => Number of the page to output (defaults to the first); 'Attachment': 1 or 0 (default 1). + */ + public function stream($filename, $options = []) + { + if (headers_sent()) { + die("Unable to stream image: headers already sent"); + } + + if (!isset($options["type"])) $options["type"] = "png"; + if (!isset($options["Attachment"])) $options["Attachment"] = true; + $type = strtolower($options["type"]); + + switch ($type) { + case "jpg": + case "jpeg": + $contentType = "image/jpeg"; + $extension = ".jpg"; + break; + case "png": + default: + $contentType = "image/png"; + $extension = ".png"; + break; + } + + header("Cache-Control: private"); + header("Content-Type: $contentType"); + + $filename = str_replace(["\n", "'"], "", basename($filename, ".$type")) . $extension; + $attachment = $options["Attachment"] ? "attachment" : "inline"; + header(Helpers::buildContentDispositionHeader($attachment, $filename)); + + $this->_output($options); + flush(); + } + + /** + * Returns the image as a string. + * + * @param array $options Associative array: 'type' => jpeg|jpg|png; 'quality' => 0 - 100 (JPEG only); + * 'page' => Number of the page to output (defaults to the first). + * @return string + */ + public function output($options = []) + { + ob_start(); + + $this->_output($options); + + return ob_get_clean(); + } + + /** + * Outputs the image stream directly. + * + * @param array $options Associative array: 'type' => jpeg|jpg|png; 'quality' => 0 - 100 (JPEG only); + * 'page' => Number of the page to output (defaults to the first). + */ + protected function _output($options = []) + { + if (!isset($options["type"])) $options["type"] = "png"; + if (!isset($options["page"])) $options["page"] = 1; + $type = strtolower($options["type"]); + + if (isset($this->_imgs[$options["page"] - 1])) { + $img = $this->_imgs[$options["page"] - 1]; + } else { + $img = $this->_imgs[0]; + } + + // Perform any antialiasing + if ($this->_aa_factor != 1) { + $dst_w = round($this->_actual_width / $this->_aa_factor); + $dst_h = round($this->_actual_height / $this->_aa_factor); + $dst = imagecreatetruecolor($dst_w, $dst_h); + imagecopyresampled($dst, $img, 0, 0, 0, 0, + $dst_w, $dst_h, + $this->_actual_width, $this->_actual_height); + } else { + $dst = $img; + } + + switch ($type) { + case "jpg": + case "jpeg": + if (!isset($options["quality"])) { + $options["quality"] = 75; + } + + imagejpeg($dst, null, $options["quality"]); + break; + case "png": + default: + imagepng($dst); + break; + } + + if ($this->_aa_factor != 1) { + imagedestroy($dst); + } + } +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Adapter/PDFLib.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Adapter/PDFLib.php new file mode 100644 index 0000000..ff4bd0c --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Adapter/PDFLib.php @@ -0,0 +1,1450 @@ + "Courier", + "courier-bold" => "Courier-Bold", + "courier-oblique" => "Courier-Oblique", + "courier-boldoblique" => "Courier-BoldOblique", + "helvetica" => "Helvetica", + "helvetica-bold" => "Helvetica-Bold", + "helvetica-oblique" => "Helvetica-Oblique", + "helvetica-boldoblique" => "Helvetica-BoldOblique", + "times" => "Times-Roman", + "times-roman" => "Times-Roman", + "times-bold" => "Times-Bold", + "times-italic" => "Times-Italic", + "times-bolditalic" => "Times-BoldItalic", + "symbol" => "Symbol", + "zapfdinbats" => "ZapfDingbats", + "zapfdingbats" => "ZapfDingbats", + ]; + + /** + * @var \Dompdf\Dompdf + */ + protected $_dompdf; + + /** + * Instance of PDFLib class + * + * @var \PDFLib + */ + protected $_pdf; + + /** + * Name of temporary file used for PDFs created on disk + * + * @var string + */ + protected $_file; + + /** + * PDF width, in points + * + * @var float + */ + protected $_width; + + /** + * PDF height, in points + * + * @var float + */ + protected $_height; + + /** + * Last fill color used + * + * @var array + */ + protected $_last_fill_color; + + /** + * Last stroke color used + * + * @var array + */ + protected $_last_stroke_color; + + /** + * The current opacity level + * + * @var float|null + */ + protected $_current_opacity; + + /** + * Cache of image handles + * + * @var array + */ + protected $_imgs; + + /** + * Cache of font handles + * + * @var array + */ + protected $_fonts; + + /** + * Cache of fontFile checks + * + * @var array + */ + protected $_fontsFiles; + + /** + * List of objects (templates) to add to multiple pages + * + * @var array + */ + protected $_objs; + + /** + * List of gstate objects created for this PDF (for reuse) + * + * @var array + */ + protected $_gstates = []; + + /** + * Current page number + * + * @var int + */ + protected $_page_number; + + /** + * Total number of pages + * + * @var int + */ + protected $_page_count; + + /** + * Array of pages for accessing after rendering is initially complete + * + * @var array + */ + protected $_pages; + + public function __construct($paper = "letter", $orientation = "portrait", ?Dompdf $dompdf = null) + { + if (is_array($paper)) { + $size = array_map("floatval", $paper); + } else { + $paper = strtolower($paper); + $size = self::$PAPER_SIZES[$paper] ?? self::$PAPER_SIZES["letter"]; + } + + if (strtolower($orientation) === "landscape") { + [$size[2], $size[3]] = [$size[3], $size[2]]; + } + + $this->_width = $size[2] - $size[0]; + $this->_height = $size[3] - $size[1]; + + if ($dompdf === null) { + $this->_dompdf = new Dompdf(); + } else { + $this->_dompdf = $dompdf; + } + + $this->_pdf = new \PDFLib(); + + $license = $dompdf->getOptions()->getPdflibLicense(); + if (strlen($license) > 0) { + $this->setPDFLibParameter("license", $license); + } + + if ($this->getPDFLibMajorVersion() < 10) { + $this->setPDFLibParameter("textformat", "utf8"); + } + if ($this->getPDFLibMajorVersion() >= 7) { + $this->setPDFLibParameter("errorpolicy", "return"); + // $this->_pdf->set_option('logging={filename=' . \APP_PATH . '/logs/pdflib.log classes={api=1 warning=2}}'); + // $this->_pdf->set_option('errorpolicy=exception'); + } else { + $this->setPDFLibParameter("fontwarning", "false"); + } + + $searchPath = $this->_dompdf->getOptions()->getFontDir(); + if (empty($searchPath) === false) { + $this->_pdf->set_option('searchpath={' . $searchPath . '}'); + } + + // fetch PDFLib version information for the producer field + $this->_pdf->set_info("Producer Addendum", sprintf("%s + PDFLib %s", $dompdf->version, $this->getPDFLibMajorVersion())); + + // Silence pedantic warnings about missing TZ settings + $tz = @date_default_timezone_get(); + date_default_timezone_set("UTC"); + $this->_pdf->set_info("Date", date("Y-m-d")); + date_default_timezone_set($tz); + + if (self::$IN_MEMORY) { + $this->_pdf->begin_document("", ""); + } else { + $tmp_dir = $this->_dompdf->getOptions()->getTempDir(); + $tmp_name = @tempnam($tmp_dir, "libdompdf_pdf_"); + @unlink($tmp_name); + $this->_file = "$tmp_name.pdf"; + $this->_pdf->begin_document($this->_file, ""); + } + + $this->_pdf->begin_page_ext($this->_width, $this->_height, ""); + + $this->_page_number = $this->_page_count = 1; + + $this->_imgs = []; + $this->_fonts = []; + $this->_objs = []; + } + + function get_dompdf() + { + return $this->_dompdf; + } + + /** + * Close the pdf + */ + protected function _close() + { + $this->_place_objects(); + + // Close all pages + $this->_pdf->suspend_page(""); + for ($p = 1; $p <= $this->_page_count; $p++) { + $this->_pdf->resume_page("pagenumber=$p"); + $this->_pdf->end_page_ext(""); + } + + $this->_pdf->end_document(""); + } + + + /** + * Returns the PDFLib instance + * + * @return PDFLib + */ + public function get_pdflib() + { + return $this->_pdf; + } + + public function add_info(string $label, string $value): void + { + $this->_pdf->set_info($label, $value); + } + + /** + * Opens a new 'object' (template in PDFLib-speak) + * + * While an object is open, all drawing actions are recorded to the + * object instead of being drawn on the current page. Objects can + * be added later to a specific page or to several pages. + * + * The return value is an integer ID for the new object. + * + * @see PDFLib::close_object() + * @see PDFLib::add_object() + * + * @return int + */ + public function open_object() + { + $this->_pdf->suspend_page(""); + if ($this->getPDFLibMajorVersion() >= 7) { + $ret = $this->_pdf->begin_template_ext($this->_width, $this->_height, null); + } else { + $ret = $this->_pdf->begin_template($this->_width, $this->_height); + } + $this->_pdf->save(); + $this->_objs[$ret] = ["start_page" => $this->_page_number]; + + return $ret; + } + + /** + * Reopen an existing object (NOT IMPLEMENTED) + * PDFLib does not seem to support reopening templates. + * + * @param int $object the ID of a previously opened object + * + * @throws Exception + * @return void + */ + public function reopen_object($object) + { + throw new Exception("PDFLib does not support reopening objects."); + } + + /** + * Close the current template + * + * @see PDFLib::open_object() + */ + public function close_object() + { + $this->_pdf->restore(); + if ($this->getPDFLibMajorVersion() >= 7) { + $this->_pdf->end_template_ext($this->_width, $this->_height); + } else { + $this->_pdf->end_template(); + } + $this->_pdf->resume_page("pagenumber=" . $this->_page_number); + } + + /** + * Adds the specified object to the document + * + * $where can be one of: + * - 'add' add to current page only + * - 'all' add to every page from the current one onwards + * - 'odd' add to all odd numbered pages from now on + * - 'even' add to all even numbered pages from now on + * - 'next' add the object to the next page only + * - 'nextodd' add to all odd numbered pages from the next one + * - 'nexteven' add to all even numbered pages from the next one + * + * @param int $object the object handle returned by open_object() + * @param string $where + */ + public function add_object($object, $where = 'all') + { + + if (mb_strpos($where, "next") !== false) { + $this->_objs[$object]["start_page"]++; + $where = str_replace("next", "", $where); + if ($where == "") { + $where = "add"; + } + } + + $this->_objs[$object]["where"] = $where; + } + + /** + * Stops the specified template from appearing in the document. + * + * The object will stop being displayed on the page following the + * current one. + * + * @param int $object + */ + public function stop_object($object) + { + + if (!isset($this->_objs[$object])) { + return; + } + + $start = $this->_objs[$object]["start_page"]; + $where = $this->_objs[$object]["where"]; + + // Place the object on this page if required + if ($this->_page_number >= $start && + (($this->_page_number % 2 == 0 && $where === "even") || + ($this->_page_number % 2 == 1 && $where === "odd") || + ($where === "all")) + ) { + $this->_pdf->fit_image($object, 0, 0, ""); + } + + $this->_objs[$object] = null; + unset($this->_objs[$object]); + } + + /** + * Add all active objects to the current page + */ + protected function _place_objects() + { + + foreach ($this->_objs as $obj => $props) { + $start = $props["start_page"]; + $where = $props["where"]; + + // Place the object on this page if required + if ($this->_page_number >= $start && + (($this->_page_number % 2 == 0 && $where === "even") || + ($this->_page_number % 2 == 1 && $where === "odd") || + ($where === "all")) + ) { + $this->_pdf->fit_image($obj, 0, 0, ""); + } + } + } + + public function get_width() + { + return $this->_width; + } + + public function get_height() + { + return $this->_height; + } + + public function get_page_number() + { + return $this->_page_number; + } + + public function get_page_count() + { + return $this->_page_count; + } + + /** + * @param $num + */ + public function set_page_number($num) + { + $this->_page_number = (int)$num; + } + + public function set_page_count($count) + { + $this->_page_count = (int)$count; + } + + /** + * Sets the line style + * + * @param float $width + * @param string $cap + * @param string $join + * @param array $dash + */ + protected function _set_line_style($width, $cap, $join, $dash) + { + if (!is_array($dash)) { + $dash = []; + } + + // Work around PDFLib limitation with 0 dash length: + // Value 0 for option 'dasharray' is too small (minimum 1.5e-05) + foreach ($dash as &$d) { + if ($d == 0) { + $d = 1.5e-5; + } + } + + if (count($dash) === 1) { + $dash[] = $dash[0]; + } + + if ($this->getPDFLibMajorVersion() >= 9) { + if (count($dash) > 1) { + $this->_pdf->set_graphics_option("dasharray={" . implode(" ", $dash) . "}"); + } else { + $this->_pdf->set_graphics_option("dasharray=none"); + } + } else { + if (count($dash) > 1) { + $this->_pdf->setdashpattern("dasharray={" . implode(" ", $dash) . "}"); + } else { + $this->_pdf->setdash(0, 0); + } + } + + switch ($join) { + case "miter": + if ($this->getPDFLibMajorVersion() >= 9) { + $this->_pdf->set_graphics_option('linejoin=0'); + } else { + $this->_pdf->setlinejoin(0); + } + break; + + case "round": + if ($this->getPDFLibMajorVersion() >= 9) { + $this->_pdf->set_graphics_option('linejoin=1'); + } else { + $this->_pdf->setlinejoin(1); + } + break; + + case "bevel": + if ($this->getPDFLibMajorVersion() >= 9) { + $this->_pdf->set_graphics_option('linejoin=2'); + } else { + $this->_pdf->setlinejoin(2); + } + break; + + default: + break; + } + + switch ($cap) { + case "butt": + if ($this->getPDFLibMajorVersion() >= 9) { + $this->_pdf->set_graphics_option('linecap=0'); + } else { + $this->_pdf->setlinecap(0); + } + break; + + case "round": + if ($this->getPDFLibMajorVersion() >= 9) { + $this->_pdf->set_graphics_option('linecap=1'); + } else { + $this->_pdf->setlinecap(1); + } + break; + + case "square": + if ($this->getPDFLibMajorVersion() >= 9) { + $this->_pdf->set_graphics_option('linecap=2'); + } else { + $this->_pdf->setlinecap(2); + } + break; + + default: + break; + } + + $this->_pdf->setlinewidth($width); + } + + /** + * Sets the line color + * + * @param array $color array(r,g,b) + */ + protected function _set_stroke_color($color) + { + // TODO: we should check the current PDF stroke color + // instead of the cached value + if ($this->_last_stroke_color == $color) { + // FIXME: do nothing, this optimization is broken by the + // stroke being set as a side effect of other operations + //return; + } + + $alpha = isset($color["alpha"]) ? $color["alpha"] : 1; + if (isset($this->_current_opacity)) { + $alpha *= $this->_current_opacity; + } + + $this->_last_stroke_color = $color; + + if (isset($color[3])) { + $type = "cmyk"; + list($c1, $c2, $c3, $c4) = [$color[0], $color[1], $color[2], $color[3]]; + } elseif (isset($color[2])) { + $type = "rgb"; + list($c1, $c2, $c3, $c4) = [$color[0], $color[1], $color[2], null]; + } else { + $type = "gray"; + list($c1, $c2, $c3, $c4) = [$color[0], $color[1], null, null]; + } + + $this->_set_stroke_opacity($alpha, "Normal"); + $this->_pdf->setcolor("stroke", $type, $c1, $c2, $c3, $c4); + } + + /** + * Sets the fill color + * + * @param array $color array(r,g,b) + */ + protected function _set_fill_color($color) + { + // TODO: we should check the current PDF fill color + // instead of the cached value + if ($this->_last_fill_color == $color) { + // FIXME: do nothing, this optimization is broken by the + // fill being set as a side effect of other operations + //return; + } + + $alpha = isset($color["alpha"]) ? $color["alpha"] : 1; + if (isset($this->_current_opacity)) { + $alpha *= $this->_current_opacity; + } + + $this->_last_fill_color = $color; + + if (isset($color[3])) { + $type = "cmyk"; + list($c1, $c2, $c3, $c4) = [$color[0], $color[1], $color[2], $color[3]]; + } elseif (isset($color[2])) { + $type = "rgb"; + list($c1, $c2, $c3, $c4) = [$color[0], $color[1], $color[2], null]; + } else { + $type = "gray"; + list($c1, $c2, $c3, $c4) = [$color[0], $color[1], null, null]; + } + + $this->_set_fill_opacity($alpha, "Normal"); + $this->_pdf->setcolor("fill", $type, $c1, $c2, $c3, $c4); + } + + /** + * Sets the fill opacity + * + * @param float $opacity + * @param string $mode + */ + public function _set_fill_opacity($opacity, $mode = "Normal") + { + if ($mode === "Normal" && isset($opacity)) { + $this->_set_gstate("opacityfill=$opacity"); + } + } + + /** + * Sets the stroke opacity + * + * @param float $opacity + * @param string $mode + */ + public function _set_stroke_opacity($opacity, $mode = "Normal") + { + if ($mode === "Normal" && isset($opacity)) { + $this->_set_gstate("opacitystroke=$opacity"); + } + } + + public function set_opacity(float $opacity, string $mode = "Normal"): void + { + if ($mode === "Normal") { + $this->_set_gstate("opacityfill=$opacity opacitystroke=$opacity"); + $this->_current_opacity = $opacity; + } + } + + /** + * Sets the gstate + * + * @param $gstate_options + * @return int + */ + public function _set_gstate($gstate_options) + { + if (($gstate = array_search($gstate_options, $this->_gstates)) === false) { + $gstate = $this->_pdf->create_gstate($gstate_options); + $this->_gstates[$gstate] = $gstate_options; + } + + return $this->_pdf->set_gstate($gstate); + } + + public function set_default_view($view, $options = []) + { + // TODO + // http://www.pdflib.com/fileadmin/pdflib/pdf/manuals/PDFlib-8.0.2-API-reference.pdf + /** + * fitheight Fit the page height to the window, with the x coordinate left at the left edge of the window. + * fitrect Fit the rectangle specified by left, bottom, right, and top to the window. + * fitvisible Fit the visible contents of the page (the ArtBox) to the window. + * fitvisibleheight Fit the visible contents of the page to the window with the x coordinate left at the left edge of the window. + * fitvisiblewidth Fit the visible contents of the page to the window with the y coordinate top at the top edge of the window. + * fitwidth Fit the page width to the window, with the y coordinate top at the top edge of the window. + * fitwindow Fit the complete page to the window. + * fixed + */ + //$this->setPDFLibParameter("openaction", $view); + } + + /** + * Loads a specific font and stores the corresponding descriptor. + * + * @param string $font + * @param string $encoding + * @param string $options + * + * @return int the font descriptor for the font + */ + protected function _load_font($font, $encoding = null, $options = "") + { + // Fix for PDFLibs case-sensitive font names + $baseFont = basename($font); + $isNativeFont = false; + if (isset(self::$nativeFontsTpPDFLib[$baseFont])) { + $font = self::$nativeFontsTpPDFLib[$baseFont]; + $isNativeFont = true; + } + + // Check if the font is a native PDF font + // Embed non-native fonts + $test = strtolower($baseFont); + if (in_array($test, DOMPDF::$nativeFonts)) { + $font = basename($font); + } else { + // Embed non-native fonts + $options .= " embedding=true"; + } + + $options .= " autosubsetting=" . ($this->_dompdf->getOptions()->getIsFontSubsettingEnabled() === false ? "false" : "true"); + + if (is_null($encoding)) { + // Unicode encoding is only available for the commerical + // version of PDFlib and not PDFlib-Lite + if (strlen($this->_dompdf->getOptions()->getPdflibLicense()) > 0) { + $encoding = "unicode"; + } else { + $encoding = "auto"; + } + } + + $key = "$font:$encoding:$options"; + if (isset($this->_fonts[$key])) { + return $this->_fonts[$key]; + } + + // Native fonts are build in, just load it + if ($isNativeFont) { + $this->_fonts[$key] = $this->_pdf->load_font($font, $encoding, $options); + + return $this->_fonts[$key]; + } + + $fontOutline = $this->getPDFLibParameter("FontOutline", 1); + if ($fontOutline === "" || $fontOutline <= 0) { + $families = $this->_dompdf->getFontMetrics()->getFontFamilies(); + foreach ($families as $files) { + foreach ($files as $file) { + $face = basename($file); + $afm = null; + + if (isset($this->_fontsFiles[$face])) { + continue; + } + + // Prefer ttfs to afms + if (file_exists("$file.ttf")) { + $outline = "$file.ttf"; + } elseif (file_exists("$file.TTF")) { + $outline = "$file.TTF"; + } elseif (file_exists("$file.pfb")) { + $outline = "$file.pfb"; + if (file_exists("$file.afm")) { + $afm = "$file.afm"; + } + } elseif (file_exists("$file.PFB")) { + $outline = "$file.PFB"; + if (file_exists("$file.AFM")) { + $afm = "$file.AFM"; + } + } else { + continue; + } + + $this->_fontsFiles[$face] = true; + + if ($this->getPDFLibMajorVersion() >= 9) { + $this->setPDFLibParameter("FontOutline", '{' . "$face=$outline" . '}'); + } else { + $this->setPDFLibParameter("FontOutline", "\{$face\}=\{$outline\}"); + } + + if (is_null($afm)) { + continue; + } + if ($this->getPDFLibMajorVersion() >= 9) { + $this->setPDFLibParameter("FontAFM", '{' . "$face=$afm" . '}'); + } else { + $this->setPDFLibParameter("FontAFM", "\{$face\}=\{$afm\}"); + } + } + } + } + + $this->_fonts[$key] = $this->_pdf->load_font($font, $encoding, $options); + + return $this->_fonts[$key]; + } + + /** + * Remaps y coords from 4th to 1st quadrant + * + * @param float $y + * @return float + */ + protected function y($y) + { + return $this->_height - $y; + } + + public function line($x1, $y1, $x2, $y2, $color, $width, $style = [], $cap = "butt") + { + $this->_set_line_style($width, $cap, "", $style); + $this->_set_stroke_color($color); + + $y1 = $this->y($y1); + $y2 = $this->y($y2); + + $this->_pdf->moveto($x1, $y1); + $this->_pdf->lineto($x2, $y2); + $this->_pdf->stroke(); + + $this->_set_stroke_opacity($this->_current_opacity, "Normal"); + } + + public function arc($x, $y, $r1, $r2, $astart, $aend, $color, $width, $style = [], $cap = "butt") + { + $this->_set_line_style($width, $cap, "", $style); + $this->_set_stroke_color($color); + + $y = $this->y($y); + + $this->_pdf->arc($x, $y, $r1, $astart, $aend); + $this->_pdf->stroke(); + + $this->_set_stroke_opacity($this->_current_opacity, "Normal"); + } + + public function rectangle($x1, $y1, $w, $h, $color, $width, $style = [], $cap = "butt") + { + $this->_set_stroke_color($color); + $this->_set_line_style($width, $cap, "", $style); + + $y1 = $this->y($y1) - $h; + + $this->_pdf->rect($x1, $y1, $w, $h); + $this->_pdf->stroke(); + + $this->_set_stroke_opacity($this->_current_opacity, "Normal"); + } + + public function filled_rectangle($x1, $y1, $w, $h, $color) + { + $this->_set_fill_color($color); + + $y1 = $this->y($y1) - $h; + + $this->_pdf->rect(floatval($x1), floatval($y1), floatval($w), floatval($h)); + $this->_pdf->fill(); + + $this->_set_fill_opacity($this->_current_opacity, "Normal"); + } + + public function clipping_rectangle($x1, $y1, $w, $h) + { + $this->_pdf->save(); + + $y1 = $this->y($y1) - $h; + + $this->_pdf->rect(floatval($x1), floatval($y1), floatval($w), floatval($h)); + $this->_pdf->clip(); + } + + public function clipping_roundrectangle($x1, $y1, $w, $h, $rTL, $rTR, $rBR, $rBL) + { + if ($this->getPDFLibMajorVersion() < 9) { + //TODO: add PDFLib7 support + $this->clipping_rectangle($x1, $y1, $w, $h); + return; + } + + $this->_pdf->save(); + + // we use 0,0 for the base coordinates for the path points + // since we're drawing the path at the $x1,$y1 coordinates + + $path = 0; + //start: left edge, top end + $path = $this->_pdf->add_path_point($path, 0, 0 - $rTL + $h, "move", ""); + // line: left edge, bottom end + $path = $this->_pdf->add_path_point($path, 0, 0 + $rBL, "line", ""); + // curve: bottom-left corner + if ($rBL > 0) { + $path = $this->_pdf->add_path_point($path, 0 + $rBL, 0, "elliptical", "radius=$rBL clockwise=false"); + } + // line: bottom edge, left end + $path = $this->_pdf->add_path_point($path, 0 - $rBR + $w, 0, "line", ""); + // curve: bottom-right corner + if ($rBR > 0) { + $path = $this->_pdf->add_path_point($path, 0 + $w, 0 + $rBR, "elliptical", "radius=$rBR clockwise=false"); + } + // line: right edge, top end + $path = $this->_pdf->add_path_point($path, 0 + $w, 0 - $rTR + $h, "line", ""); + // curve: top-right corner + if ($rTR > 0) { + $path = $this->_pdf->add_path_point($path, 0 - $rTR + $w, 0 + $h, "elliptical", "radius=$rTR clockwise=false"); + } + // line: top edge, left end + $path = $this->_pdf->add_path_point($path, 0 + $rTL, 0 + $h, "line", ""); + // curve: top-left corner + if ($rTL > 0) { + $path = $this->_pdf->add_path_point($path, 0, 0 - $rTL + $h, "elliptical", "radius=$rTL clockwise=false"); + } + $this->_pdf->draw_path($path, $x1, $this->_height-$y1-$h, "clip=true"); + } + + public function clipping_polygon(array $points): void + { + $this->_pdf->save(); + + $y = $this->y(array_pop($points)); + $x = array_pop($points); + $this->_pdf->moveto($x, $y); + + while (count($points) > 1) { + $y = $this->y(array_pop($points)); + $x = array_pop($points); + $this->_pdf->lineto($x, $y); + } + + $this->_pdf->closepath(); + $this->_pdf->clip(); + } + + public function clipping_end() + { + $this->_pdf->restore(); + } + + public function save() + { + $this->_pdf->save(); + } + + function restore() + { + $this->_pdf->restore(); + } + + public function rotate($angle, $x, $y) + { + $pdf = $this->_pdf; + $pdf->translate($x, $this->_height - $y); + $pdf->rotate(-$angle); + $pdf->translate(-$x, -$this->_height + $y); + } + + public function skew($angle_x, $angle_y, $x, $y) + { + $pdf = $this->_pdf; + $pdf->translate($x, $this->_height - $y); + $pdf->skew($angle_y, $angle_x); // Needs to be inverted + $pdf->translate(-$x, -$this->_height + $y); + } + + public function scale($s_x, $s_y, $x, $y) + { + $pdf = $this->_pdf; + $pdf->translate($x, $this->_height - $y); + $pdf->scale($s_x, $s_y); + $pdf->translate(-$x, -$this->_height + $y); + } + + public function translate($t_x, $t_y) + { + $this->_pdf->translate($t_x, -$t_y); + } + + public function transform($a, $b, $c, $d, $e, $f) + { + $this->_pdf->concat($a, $b, $c, $d, $e, $f); + } + + public function polygon($points, $color, $width = null, $style = [], $fill = false) + { + $this->_set_fill_color($color); + $this->_set_stroke_color($color); + + if (!$fill && isset($width)) { + $this->_set_line_style($width, "square", "miter", $style); + } + + $y = $this->y(array_pop($points)); + $x = array_pop($points); + $this->_pdf->moveto($x, $y); + + while (count($points) > 1) { + $y = $this->y(array_pop($points)); + $x = array_pop($points); + $this->_pdf->lineto($x, $y); + } + + if ($fill) { + $this->_pdf->fill(); + } else { + $this->_pdf->closepath_stroke(); + } + + $this->_set_fill_opacity($this->_current_opacity, "Normal"); + $this->_set_stroke_opacity($this->_current_opacity, "Normal"); + } + + public function circle($x, $y, $r, $color, $width = null, $style = [], $fill = false) + { + $this->_set_fill_color($color); + $this->_set_stroke_color($color); + + if (!$fill && isset($width)) { + $this->_set_line_style($width, "round", "round", $style); + } + + $y = $this->y($y); + + $this->_pdf->circle($x, $y, $r); + + if ($fill) { + $this->_pdf->fill(); + } else { + $this->_pdf->stroke(); + } + + $this->_set_fill_opacity($this->_current_opacity, "Normal"); + $this->_set_stroke_opacity($this->_current_opacity, "Normal"); + } + + public function image($img, $x, $y, $w, $h, $resolution = "normal") + { + $w = (int)$w; + $h = (int)$h; + + $img_type = Cache::detect_type($img, $this->get_dompdf()->getHttpContext()); + + // Strip file:// prefix + if (substr($img, 0, 7) === "file://") { + $img = substr($img, 7); + } + + if (!isset($this->_imgs[$img])) { + if (strtolower($img_type) === "svg") { + //FIXME: PDFLib loads SVG but returns error message "Function must not be called in 'page' scope" + $image_load_response = $this->_pdf->load_graphics($img_type, $img, ""); + } else { + $image_load_response = $this->_pdf->load_image($img_type, $img, ""); + } + if ($image_load_response === 0) { + //TODO: should do something with the error message + $error = $this->_pdf->get_errmsg(); + return; + } + $this->_imgs[$img] = $image_load_response; + } + + $img = $this->_imgs[$img]; + + $y = $this->y($y) - $h; + if (strtolower($img_type) === "svg") { + $this->_pdf->fit_graphics($img, $x, $y, 'boxsize={' . "$w $h" . '} fitmethod=entire'); + } else { + $this->_pdf->fit_image($img, $x, $y, 'boxsize={' . "$w $h" . '} fitmethod=entire'); + } + } + + public function text($x, $y, $text, $font, $size, $color = [0, 0, 0], $word_spacing = 0, $char_spacing = 0, $angle = 0) + { + if ($size == 0) { + return; + } + + $fh = $this->_load_font($font); + + $this->_pdf->setfont($fh, $size); + $this->_set_fill_color($color); + + $y = $this->y($y) - $this->get_font_height($font, $size); + + $word_spacing = (float)$word_spacing; + $char_spacing = (float)$char_spacing; + $angle = -(float)$angle; + + $this->_pdf->fit_textline($text, $x, $y, "rotate=$angle wordspacing=$word_spacing charspacing=$char_spacing "); + + $this->_set_fill_opacity($this->_current_opacity, "Normal"); + } + + public function javascript($code) + { + if (strlen($this->_dompdf->getOptions()->getPdflibLicense()) > 0) { + $this->_pdf->create_action("JavaScript", $code); + } + } + + public function add_named_dest($anchorname) + { + $this->_pdf->add_nameddest($anchorname, ""); + } + + public function add_link($url, $x, $y, $width, $height) + { + $y = $this->y($y) - $height; + if (strpos($url, '#') === 0) { + // Local link + $name = substr($url, 1); + if ($name) { + $this->_pdf->create_annotation($x, $y, $x + $width, $y + $height, 'Link', + "contents={$url} destname=" . substr($url, 1) . " linewidth=0"); + } + } else { + //TODO: PDFLib::create_action does not permit non-HTTP links for URI actions + $action = $this->_pdf->create_action("URI", "url={{$url}}"); + // add the annotation only if the action was created + if ($action !== 0) { + $this->_pdf->create_annotation($x, $y, $x + $width, $y + $height, 'Link', "contents={{$url}} action={activate=$action} linewidth=0"); + } + } + } + + public function get_text_width($text, $font, $size, $word_spacing = 0.0, $letter_spacing = 0.0) + { + if ($size == 0) { + return 0.0; + } + + $fh = $this->_load_font($font); + + // Determine the additional width due to extra spacing + $num_spaces = mb_substr_count($text, " "); + $delta = $word_spacing * $num_spaces; + + if ($letter_spacing) { + $num_chars = mb_strlen($text); + $delta += $num_chars * $letter_spacing; + } + + return $this->_pdf->stringwidth($text, $fh, $size) + $delta; + } + + public function get_font_height($font, $size) + { + if ($size == 0) { + return 0.0; + } + + $fh = $this->_load_font($font); + + $this->_pdf->setfont($fh, $size); + + $asc = $this->_pdf->info_font($fh, "ascender", "fontsize=$size"); + $desc = $this->_pdf->info_font($fh, "descender", "fontsize=$size"); + + // $desc is usually < 0, + $ratio = $this->_dompdf->getOptions()->getFontHeightRatio(); + + return (abs($asc) + abs($desc)) * $ratio; + } + + public function get_font_baseline($font, $size) + { + $ratio = $this->_dompdf->getOptions()->getFontHeightRatio(); + + return $this->get_font_height($font, $size) / $ratio * 1.1; + } + + /** + * Processes a callback or script on every page. + * + * The callback function receives the four parameters `int $pageNumber`, + * `int $pageCount`, `Canvas $canvas`, and `FontMetrics $fontMetrics`, in + * that order. If a script is passed as string, the variables `$PAGE_NUM`, + * `$PAGE_COUNT`, `$pdf`, and `$fontMetrics` are available instead. Passing + * a script as string is deprecated and will be removed in a future version. + * + * This function can be used to add page numbers to all pages after the + * first one, for example. + * + * @param callable|string $callback The callback function or PHP script to process on every page + */ + public function page_script($callback): void + { + if (is_string($callback)) { + $this->processPageScript(function ( + int $PAGE_NUM, + int $PAGE_COUNT, + self $pdf, + FontMetrics $fontMetrics + ) use ($callback) { + eval($callback); + }); + return; + } + + $this->processPageScript($callback); + } + + public function page_text($x, $y, $text, $font, $size, $color = [0, 0, 0], $word_space = 0.0, $char_space = 0.0, $angle = 0.0) + { + $this->processPageScript(function (int $pageNumber, int $pageCount) use ($x, $y, $text, $font, $size, $color, $word_space, $char_space, $angle) { + $text = str_replace( + ["{PAGE_NUM}", "{PAGE_COUNT}"], + [$pageNumber, $pageCount], + $text + ); + $this->text($x, $y, $text, $font, $size, $color, $word_space, $char_space, $angle); + }); + } + + public function page_line($x1, $y1, $x2, $y2, $color, $width, $style = []) + { + $this->processPageScript(function () use ($x1, $y1, $x2, $y2, $color, $width, $style) { + $this->line($x1, $y1, $x2, $y2, $color, $width, $style); + }); + } + + public function new_page() + { + // Add objects to the current page + $this->_place_objects(); + + $this->_pdf->suspend_page(""); + $this->_pdf->begin_page_ext($this->_width, $this->_height, ""); + $this->_page_number = ++$this->_page_count; + } + + protected function processPageScript(callable $callback): void + { + $this->_pdf->suspend_page(""); + + for ($p = 1; $p <= $this->_page_count; $p++) { + $this->_pdf->resume_page("pagenumber=$p"); + + $fontMetrics = $this->_dompdf->getFontMetrics(); + $callback($p, $this->_page_count, $this, $fontMetrics); + + $this->_pdf->suspend_page(""); + } + + $this->_pdf->resume_page("pagenumber=" . $this->_page_number); + } + + /** + * @throws Exception + */ + public function stream($filename = "document.pdf", $options = []) + { + if (headers_sent()) { + die("C Unable to stream pdf: headers already sent"); + } + + if (!isset($options["compress"])) { + $options["compress"] = true; + } + if (!isset($options["Attachment"])) { + $options["Attachment"] = true; + } + + if ($options["compress"]) { + $this->setPDFLibValue("compress", 6); + } else { + $this->setPDFLibValue("compress", 0); + } + + $this->_close(); + + $data = ""; + + if (self::$IN_MEMORY) { + $data = $this->_pdf->get_buffer(); + $size = mb_strlen($data, "8bit"); + } else { + $size = filesize($this->_file); + } + + header("Cache-Control: private"); + header("Content-Type: application/pdf"); + header("Content-Length: " . $size); + + $filename = str_replace(["\n", "'"], "", basename($filename, ".pdf")) . ".pdf"; + $attachment = $options["Attachment"] ? "attachment" : "inline"; + header(Helpers::buildContentDispositionHeader($attachment, $filename)); + + if (self::$IN_MEMORY) { + echo $data; + } else { + // Chunked readfile() + $chunk = (1 << 21); // 2 MB + $fh = fopen($this->_file, "rb"); + if (!$fh) { + throw new Exception("Unable to load temporary PDF file: " . $this->_file); + } + + while (!feof($fh)) { + echo fread($fh, $chunk); + } + fclose($fh); + + //debugpng + if ($this->_dompdf->getOptions()->getDebugPng()) { + print '[pdflib stream unlink ' . $this->_file . ']'; + } + if (!$this->_dompdf->getOptions()->getDebugKeepTemp()) { + unlink($this->_file); + } + $this->_file = null; + unset($this->_file); + } + + flush(); + } + + public function output($options = []) + { + if (!isset($options["compress"])) { + $options["compress"] = true; + } + + if ($options["compress"]) { + $this->setPDFLibValue("compress", 6); + } else { + $this->setPDFLibValue("compress", 0); + } + + $this->_close(); + + if (self::$IN_MEMORY) { + $data = $this->_pdf->get_buffer(); + } else { + $data = file_get_contents($this->_file); + + //debugpng + if ($this->_dompdf->getOptions()->getDebugPng()) { + print '[pdflib output unlink ' . $this->_file . ']'; + } + if (!$this->_dompdf->getOptions()->getDebugKeepTemp()) { + unlink($this->_file); + } + $this->_file = null; + unset($this->_file); + } + + return $data; + } + + /** + * @param string $keyword + * @param string $optlist + * @return mixed + */ + protected function getPDFLibParameter($keyword, $optlist = "") + { + if ($this->getPDFLibMajorVersion() >= 9) { + return $this->_pdf->get_option($keyword, ""); + } + + return $this->_pdf->get_parameter($keyword, $optlist); + } + + /** + * @param string $keyword + * @param string $value + * @return mixed + */ + protected function setPDFLibParameter($keyword, $value) + { + if ($this->getPDFLibMajorVersion() >= 9) { + return $this->_pdf->set_option($keyword . "=" . $value); + } + + return $this->_pdf->set_parameter($keyword, $value); + } + + /** + * @param string $keyword + * @param string $optlist + * @return mixed + */ + protected function getPDFLibValue($keyword, $optlist = "") + { + if ($this->getPDFLibMajorVersion() >= 9) { + return $this->getPDFLibParameter($keyword, $optlist); + } + + return $this->_pdf->get_value($keyword); + } + + /** + * @param string $keyword + * @param string $value + * @return mixed + */ + protected function setPDFLibValue($keyword, $value) + { + if ($this->getPDFLibMajorVersion() >= 9) { + return $this->setPDFLibParameter($keyword, $value); + } + + return $this->_pdf->set_value($keyword, $value); + } + + /** + * @return int + */ + protected function getPDFLibMajorVersion() + { + if (is_null(self::$MAJOR_VERSION)) { + if (method_exists($this->_pdf, "get_option")) { + self::$MAJOR_VERSION = abs(intval($this->_pdf->get_option("major", ""))); + } else { + self::$MAJOR_VERSION = abs(intval($this->_pdf->get_value("major", ""))); + } + } + + return self::$MAJOR_VERSION; + } +} + +// Workaround for idiotic limitation on statics... +PDFLib::$PAPER_SIZES = CPDF::$PAPER_SIZES; diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Canvas.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Canvas.php new file mode 100644 index 0000000..1812def --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Canvas.php @@ -0,0 +1,477 @@ + alpha]` + * where r, g, b, and alpha are float values between 0 and 1 + * @param float $width + * @param array $style + * @param string $cap `butt`, `round`, or `square` + */ + function line($x1, $y1, $x2, $y2, $color, $width, $style = [], $cap = "butt"); + + /** + * Draws an arc + * + * See {@link Cpdf::setLineStyle()} for a description of the format of the + * $style and $cap parameters (aka dash and cap). + * + * @param float $x X coordinate of the arc + * @param float $y Y coordinate of the arc + * @param float $r1 Radius 1 + * @param float $r2 Radius 2 + * @param float $astart Start angle in degrees + * @param float $aend End angle in degrees + * @param array $color Color array in the format `[r, g, b, "alpha" => alpha]` + * where r, g, b, and alpha are float values between 0 and 1 + * @param float $width + * @param array $style + * @param string $cap `butt`, `round`, or `square` + */ + function arc($x, $y, $r1, $r2, $astart, $aend, $color, $width, $style = [], $cap = "butt"); + + /** + * Draws a rectangle at x1,y1 with width w and height h + * + * See {@link Cpdf::setLineStyle()} for a description of the format of the + * $style and $cap parameters (aka dash and cap). + * + * @param float $x1 + * @param float $y1 + * @param float $w + * @param float $h + * @param array $color Color array in the format `[r, g, b, "alpha" => alpha]` + * where r, g, b, and alpha are float values between 0 and 1 + * @param float $width + * @param array $style + * @param string $cap `butt`, `round`, or `square` + */ + function rectangle($x1, $y1, $w, $h, $color, $width, $style = [], $cap = "butt"); + + /** + * Draws a filled rectangle at x1,y1 with width w and height h + * + * @param float $x1 + * @param float $y1 + * @param float $w + * @param float $h + * @param array $color Color array in the format `[r, g, b, "alpha" => alpha]` + * where r, g, b, and alpha are float values between 0 and 1 + */ + function filled_rectangle($x1, $y1, $w, $h, $color); + + /** + * Starts a clipping rectangle at x1,y1 with width w and height h + * + * @param float $x1 + * @param float $y1 + * @param float $w + * @param float $h + */ + function clipping_rectangle($x1, $y1, $w, $h); + + /** + * Starts a rounded clipping rectangle at x1,y1 with width w and height h + * + * @param float $x1 + * @param float $y1 + * @param float $w + * @param float $h + * @param float $tl + * @param float $tr + * @param float $br + * @param float $bl + */ + function clipping_roundrectangle($x1, $y1, $w, $h, $tl, $tr, $br, $bl); + + /** + * Starts a clipping polygon + * + * @param float[] $points + */ + public function clipping_polygon(array $points): void; + + /** + * Ends the last clipping shape + */ + function clipping_end(); + + /** + * Processes a callback on every page. + * + * The callback function receives the four parameters `int $pageNumber`, + * `int $pageCount`, `Canvas $canvas`, and `FontMetrics $fontMetrics`, in + * that order. + * + * This function can be used to add page numbers to all pages after the + * first one, for example. + * + * @param callable $callback The callback function to process on every page + */ + public function page_script($callback): void; + + /** + * Writes text at the specified x and y coordinates on every page. + * + * The strings '{PAGE_NUM}' and '{PAGE_COUNT}' are automatically replaced + * with their current values. + * + * @param float $x + * @param float $y + * @param string $text The text to write + * @param string $font The font file to use + * @param float $size The font size, in points + * @param array $color Color array in the format `[r, g, b, "alpha" => alpha]` + * where r, g, b, and alpha are float values between 0 and 1 + * @param float $word_space Word spacing adjustment + * @param float $char_space Char spacing adjustment + * @param float $angle Angle to write the text at, measured clockwise starting from the x-axis + */ + public function page_text($x, $y, $text, $font, $size, $color = [0, 0, 0], $word_space = 0.0, $char_space = 0.0, $angle = 0.0); + + /** + * Draws a line at the specified coordinates on every page. + * + * @param float $x1 + * @param float $y1 + * @param float $x2 + * @param float $y2 + * @param array $color Color array in the format `[r, g, b, "alpha" => alpha]` + * where r, g, b, and alpha are float values between 0 and 1 + * @param float $width + * @param array $style + */ + public function page_line($x1, $y1, $x2, $y2, $color, $width, $style = []); + + /** + * Save current state + */ + function save(); + + /** + * Restore last state + */ + function restore(); + + /** + * Rotate + * + * @param float $angle angle in degrees for counter-clockwise rotation + * @param float $x Origin abscissa + * @param float $y Origin ordinate + */ + function rotate($angle, $x, $y); + + /** + * Skew + * + * @param float $angle_x + * @param float $angle_y + * @param float $x Origin abscissa + * @param float $y Origin ordinate + */ + function skew($angle_x, $angle_y, $x, $y); + + /** + * Scale + * + * @param float $s_x scaling factor for width as percent + * @param float $s_y scaling factor for height as percent + * @param float $x Origin abscissa + * @param float $y Origin ordinate + */ + function scale($s_x, $s_y, $x, $y); + + /** + * Translate + * + * @param float $t_x movement to the right + * @param float $t_y movement to the bottom + */ + function translate($t_x, $t_y); + + /** + * Transform + * + * @param float $a + * @param float $b + * @param float $c + * @param float $d + * @param float $e + * @param float $f + */ + function transform($a, $b, $c, $d, $e, $f); + + /** + * Draws a polygon + * + * The polygon is formed by joining all the points stored in the $points + * array. $points has the following structure: + * ``` + * array(0 => x1, + * 1 => y1, + * 2 => x2, + * 3 => y2, + * ... + * ); + * ``` + * + * See {@link Cpdf::setLineStyle()} for a description of the format of the + * $style parameter (aka dash). + * + * @param array $points + * @param array $color Color array in the format `[r, g, b, "alpha" => alpha]` + * where r, g, b, and alpha are float values between 0 and 1 + * @param float $width + * @param array $style + * @param bool $fill Fills the polygon if true + */ + function polygon($points, $color, $width = null, $style = [], $fill = false); + + /** + * Draws a circle at $x,$y with radius $r + * + * See {@link Cpdf::setLineStyle()} for a description of the format of the + * $style parameter (aka dash). + * + * @param float $x + * @param float $y + * @param float $r + * @param array $color Color array in the format `[r, g, b, "alpha" => alpha]` + * where r, g, b, and alpha are float values between 0 and 1 + * @param float $width + * @param array $style + * @param bool $fill Fills the circle if true + */ + function circle($x, $y, $r, $color, $width = null, $style = [], $fill = false); + + /** + * Add an image to the pdf. + * + * The image is placed at the specified x and y coordinates with the + * given width and height. + * + * @param string $img The path to the image + * @param float $x X position + * @param float $y Y position + * @param float $w Width + * @param float $h Height + * @param string $resolution The resolution of the image + */ + function image($img, $x, $y, $w, $h, $resolution = "normal"); + + /** + * Writes text at the specified x and y coordinates + * + * @param float $x + * @param float $y + * @param string $text The text to write + * @param string $font The font file to use + * @param float $size The font size, in points + * @param array $color Color array in the format `[r, g, b, "alpha" => alpha]` + * where r, g, b, and alpha are float values between 0 and 1 + * @param float $word_space Word spacing adjustment + * @param float $char_space Char spacing adjustment + * @param float $angle Angle to write the text at, measured clockwise starting from the x-axis + */ + function text($x, $y, $text, $font, $size, $color = [0, 0, 0], $word_space = 0.0, $char_space = 0.0, $angle = 0.0); + + /** + * Add a named destination (similar to ... in html) + * + * @param string $anchorname The name of the named destination + */ + function add_named_dest($anchorname); + + /** + * Add a link to the pdf + * + * @param string $url The url to link to + * @param float $x The x position of the link + * @param float $y The y position of the link + * @param float $width The width of the link + * @param float $height The height of the link + */ + function add_link($url, $x, $y, $width, $height); + + /** + * Add meta information to the PDF. + * + * @param string $label Label of the value (Creator, Producer, etc.) + * @param string $value The text to set + */ + public function add_info(string $label, string $value): void; + + /** + * Calculates text size, in points + * + * @param string $text The text to be sized + * @param string $font The font file to use + * @param float $size The font size, in points + * @param float $word_spacing Word spacing, if any + * @param float $char_spacing Char spacing, if any + * + * @return float + */ + function get_text_width($text, $font, $size, $word_spacing = 0.0, $char_spacing = 0.0); + + /** + * Calculates font height, in points + * + * @param string $font The font file to use + * @param float $size The font size, in points + * + * @return float + */ + function get_font_height($font, $size); + + /** + * Returns the font x-height, in points + * + * @param string $font The font file to use + * @param float $size The font size, in points + * + * @return float + */ + //function get_font_x_height($font, $size); + + /** + * Calculates font baseline, in points + * + * @param string $font The font file to use + * @param float $size The font size, in points + * + * @return float + */ + function get_font_baseline($font, $size); + + /** + * Returns the PDF's width in points + * + * @return float + */ + function get_width(); + + /** + * Returns the PDF's height in points + * + * @return float + */ + function get_height(); + + /** + * Sets the opacity + * + * @param float $opacity + * @param string $mode + */ + public function set_opacity(float $opacity, string $mode = "Normal"): void; + + /** + * Sets the default view + * + * @param string $view + * 'XYZ' left, top, zoom + * 'Fit' + * 'FitH' top + * 'FitV' left + * 'FitR' left,bottom,right + * 'FitB' + * 'FitBH' top + * 'FitBV' left + * @param array $options + */ + function set_default_view($view, $options = []); + + /** + * @param string $code + */ + function javascript($code); + + /** + * Starts a new page + * + * Subsequent drawing operations will appear on the new page. + */ + function new_page(); + + /** + * Streams the PDF to the client. + * + * @param string $filename The filename to present to the client. + * @param array $options Associative array: 'compress' => 1 or 0 (default 1); 'Attachment' => 1 or 0 (default 1). + */ + function stream($filename, $options = []); + + /** + * Returns the PDF as a string. + * + * @param array $options Associative array: 'compress' => 1 or 0 (default 1). + * + * @return string + */ + function output($options = []); +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/CanvasFactory.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/CanvasFactory.php new file mode 100644 index 0000000..86352e1 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/CanvasFactory.php @@ -0,0 +1,58 @@ +getOptions()->getPdfBackend()); + + if (isset($class) && class_exists($class, false)) { + $class .= "_Adapter"; + } else { + if (($backend === "auto" || $backend === "pdflib") && + class_exists("PDFLib", false) + ) { + $class = "Dompdf\\Adapter\\PDFLib"; + } + + else { + if ($backend === "gd" && extension_loaded('gd')) { + $class = "Dompdf\\Adapter\\GD"; + } else { + $class = "Dompdf\\Adapter\\CPDF"; + } + } + } + + return new $class($paper, $orientation, $dompdf); + } +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Cellmap.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Cellmap.php new file mode 100644 index 0000000..e6c1c68 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Cellmap.php @@ -0,0 +1,999 @@ + 8, + "solid" => 7, + "dashed" => 6, + "dotted" => 5, + "ridge" => 4, + "outset" => 3, + "groove" => 2, + "inset" => 1, + "none" => 0 + ]; + + /** + * The table object this cellmap is attached to. + * + * @var TableFrameDecorator + */ + protected $_table; + + /** + * The total number of rows in the table + * + * @var int + */ + protected $_num_rows; + + /** + * The total number of columns in the table + * + * @var int + */ + protected $_num_cols; + + /** + * 2D array mapping to frames + * + * @var Frame[][] + */ + protected $_cells; + + /** + * 1D array of column dimensions + * + * @var array + */ + protected $_columns; + + /** + * 1D array of row dimensions + * + * @var array + */ + protected $_rows; + + /** + * 2D array of border specs + * + * @var array + */ + protected $_borders; + + /** + * 1D Array mapping frames to (multiple) pairs, keyed on frame_id. + * + * @var array[] + */ + protected $_frames; + + /** + * Current column when adding cells, 0-based + * + * @var int + */ + private $__col; + + /** + * Current row when adding cells, 0-based + * + * @var int + */ + private $__row; + + /** + * Tells whether the columns' width can be modified + * + * @var bool + */ + private $_columns_locked = false; + + /** + * Tells whether the table has table-layout:fixed + * + * @var bool + */ + private $_fixed_layout = false; + + /** + * @param TableFrameDecorator $table + */ + public function __construct(TableFrameDecorator $table) + { + $this->_table = $table; + $this->reset(); + } + + public function reset(): void + { + $this->_num_rows = 0; + $this->_num_cols = 0; + + $this->_cells = []; + $this->_frames = []; + + if (!$this->_columns_locked) { + $this->_columns = []; + } + + $this->_rows = []; + + $this->_borders = []; + + $this->__col = $this->__row = 0; + } + + public function lock_columns(): void + { + $this->_columns_locked = true; + } + + /** + * @return bool + */ + public function is_columns_locked() + { + return $this->_columns_locked; + } + + /** + * @param bool $fixed + */ + public function set_layout_fixed(bool $fixed) + { + $this->_fixed_layout = $fixed; + } + + /** + * @return bool + */ + public function is_layout_fixed() + { + return $this->_fixed_layout; + } + + /** + * @return int + */ + public function get_num_rows() + { + return $this->_num_rows; + } + + /** + * @return int + */ + public function get_num_cols() + { + return $this->_num_cols; + } + + /** + * @return array + */ + public function &get_columns() + { + return $this->_columns; + } + + /** + * @param $columns + */ + public function set_columns($columns) + { + $this->_columns = $columns; + } + + /** + * @param int $i + * + * @return mixed + */ + public function &get_column($i) + { + if (!isset($this->_columns[$i])) { + $this->_columns[$i] = [ + "x" => 0, + "min-width" => 0, + "max-width" => 0, + "used-width" => null, + "absolute" => 0, + "percent" => 0, + "auto" => true, + ]; + } + + return $this->_columns[$i]; + } + + /** + * @return array + */ + public function &get_rows() + { + return $this->_rows; + } + + /** + * @param int $j + * + * @return mixed + */ + public function &get_row($j) + { + if (!isset($this->_rows[$j])) { + $this->_rows[$j] = [ + "y" => 0, + "first-column" => 0, + "height" => null, + ]; + } + + return $this->_rows[$j]; + } + + /** + * @param int $i + * @param int $j + * @param mixed $h_v + * @param null|mixed $prop + * + * @return mixed + */ + public function get_border($i, $j, $h_v, $prop = null) + { + if (!isset($this->_borders[$i][$j][$h_v])) { + $this->_borders[$i][$j][$h_v] = [ + "width" => 0, + "style" => "solid", + "color" => "black", + ]; + } + + if (isset($prop)) { + return $this->_borders[$i][$j][$h_v][$prop]; + } + + return $this->_borders[$i][$j][$h_v]; + } + + /** + * @param int $i + * @param int $j + * + * @return array + */ + public function get_border_properties($i, $j) + { + return [ + "top" => $this->get_border($i, $j, "horizontal"), + "right" => $this->get_border($i, $j + 1, "vertical"), + "bottom" => $this->get_border($i + 1, $j, "horizontal"), + "left" => $this->get_border($i, $j, "vertical"), + ]; + } + + /** + * @param Frame $frame + * + * @return array|null + */ + public function get_spanned_cells(Frame $frame) + { + $key = $frame->get_id(); + + if (isset($this->_frames[$key])) { + return $this->_frames[$key]; + } + + return null; + } + + /** + * @param Frame $frame + * + * @return bool + */ + public function frame_exists_in_cellmap(Frame $frame) + { + $key = $frame->get_id(); + + return isset($this->_frames[$key]); + } + + /** + * @param Frame $frame + * + * @return array + * @throws Exception + */ + public function get_frame_position(Frame $frame) + { + global $_dompdf_warnings; + + $key = $frame->get_id(); + + if (!isset($this->_frames[$key])) { + throw new Exception("Frame not found in cellmap"); + } + + // Positions are stored relative to the table position + [$table_x, $table_y] = $this->_table->get_position(); + $col = $this->_frames[$key]["columns"][0]; + $row = $this->_frames[$key]["rows"][0]; + + if (!isset($this->_columns[$col])) { + $_dompdf_warnings[] = "Frame not found in columns array. Check your table layout for missing or extra TDs."; + $x = $table_x; + } else { + $x = $table_x + $this->_columns[$col]["x"]; + } + + if (!isset($this->_rows[$row])) { + $_dompdf_warnings[] = "Frame not found in row array. Check your table layout for missing or extra TDs."; + $y = $table_y; + } else { + $y = $table_y + $this->_rows[$row]["y"]; + } + + return [$x, $y, "x" => $x, "y" => $y]; + } + + /** + * @param Frame $frame + * + * @return int + * @throws Exception + */ + public function get_frame_width(Frame $frame) + { + $key = $frame->get_id(); + + if (!isset($this->_frames[$key])) { + throw new Exception("Frame not found in cellmap"); + } + + $cols = $this->_frames[$key]["columns"]; + $w = 0; + foreach ($cols as $i) { + $w += $this->_columns[$i]["used-width"]; + } + + return $w; + } + + /** + * @param Frame $frame + * + * @return int + * @throws Exception + * @throws Exception + */ + public function get_frame_height(Frame $frame) + { + $key = $frame->get_id(); + + if (!isset($this->_frames[$key])) { + throw new Exception("Frame not found in cellmap"); + } + + $rows = $this->_frames[$key]["rows"]; + $h = 0; + foreach ($rows as $i) { + if (!isset($this->_rows[$i])) { + throw new Exception("The row #$i could not be found, please file an issue in the tracker with the HTML code"); + } + + $h += $this->_rows[$i]["height"]; + } + + return $h; + } + + /** + * @param int $j + * @param mixed $width + */ + public function set_column_width($j, $width) + { + if ($this->_columns_locked) { + return; + } + + $col =& $this->get_column($j); + $col["used-width"] = $width; + $next_col =& $this->get_column($j + 1); + $next_col["x"] = $col["x"] + $width; + } + + /** + * @param int $i + * @param long $height + */ + public function set_row_height($i, $height) + { + $row =& $this->get_row($i); + if ($height > $row["height"]) { + $row["height"] = $height; + } + $next_row =& $this->get_row($i + 1); + $next_row["y"] = $row["y"] + $row["height"]; + } + + /** + * https://www.w3.org/TR/CSS21/tables.html#border-conflict-resolution + * + * @param int $i + * @param int $j + * @param string $h_v `horizontal` or `vertical` + * @param array $border_spec + */ + protected function resolve_border(int $i, int $j, string $h_v, array $border_spec): void + { + if (!isset($this->_borders[$i][$j][$h_v])) { + $this->_borders[$i][$j][$h_v] = $border_spec; + return; + } + + $border = $this->_borders[$i][$j][$h_v]; + + $n_width = $border_spec["width"]; + $n_style = $border_spec["style"]; + $o_width = $border["width"]; + $o_style = $border["style"]; + + if ($o_style === "hidden") { + return; + } + + // A style of `none` has lowest priority independent of its specified + // width here, as its resolved width is always 0 + if ($n_style === "hidden" || $n_width > $o_width + || ($o_width == $n_width + && isset(self::BORDER_STYLE_SCORE[$n_style]) + && isset(self::BORDER_STYLE_SCORE[$o_style]) + && self::BORDER_STYLE_SCORE[$n_style] > self::BORDER_STYLE_SCORE[$o_style]) + ) { + $this->_borders[$i][$j][$h_v] = $border_spec; + } + } + + /** + * Get the resolved border properties for the given frame. + * + * @param AbstractFrameDecorator $frame + * + * @return array[] + */ + protected function get_resolved_border(AbstractFrameDecorator $frame): array + { + $key = $frame->get_id(); + $columns = $this->_frames[$key]["columns"]; + $rows = $this->_frames[$key]["rows"]; + + $first_col = $columns[0]; + $last_col = $columns[count($columns) - 1]; + $first_row = $rows[0]; + $last_row = $rows[count($rows) - 1]; + + $max_top = null; + $max_bottom = null; + $max_left = null; + $max_right = null; + + foreach ($columns as $col) { + $top = $this->_borders[$first_row][$col]["horizontal"]; + $bottom = $this->_borders[$last_row + 1][$col]["horizontal"]; + + if ($max_top === null || $top["width"] > $max_top["width"]) { + $max_top = $top; + } + if ($max_bottom === null || $bottom["width"] > $max_bottom["width"]) { + $max_bottom = $bottom; + } + } + + foreach ($rows as $row) { + $left = $this->_borders[$row][$first_col]["vertical"]; + $right = $this->_borders[$row][$last_col + 1]["vertical"]; + + if ($max_left === null || $left["width"] > $max_left["width"]) { + $max_left = $left; + } + if ($max_right === null || $right["width"] > $max_right["width"]) { + $max_right = $right; + } + } + + return [$max_top, $max_right, $max_bottom, $max_left]; + } + + /** + * @param AbstractFrameDecorator $frame + */ + public function add_frame(Frame $frame): void + { + $style = $frame->get_style(); + $display = $style->display; + + $collapse = $this->_table->get_style()->border_collapse === "collapse"; + + // Recursively add the frames within the table, its row groups and rows + if ($frame === $this->_table + || $display === "table-row" + || in_array($display, TableFrameDecorator::ROW_GROUPS, true) + ) { + $start_row = $this->__row; + + foreach ($frame->get_children() as $child) { + $this->add_frame($child); + } + + if ($display === "table-row") { + $this->add_row(); + } + + $num_rows = $this->__row - $start_row - 1; + $key = $frame->get_id(); + + // Row groups always span across the entire table + $this->_frames[$key]["columns"] = range(0, max(0, $this->_num_cols - 1)); + $this->_frames[$key]["rows"] = range($start_row, max(0, $this->__row - 1)); + $this->_frames[$key]["frame"] = $frame; + + if ($collapse) { + $bp = $style->get_border_properties(); + + // Resolve vertical borders + for ($i = 0; $i < $num_rows + 1; $i++) { + $this->resolve_border($start_row + $i, 0, "vertical", $bp["left"]); + $this->resolve_border($start_row + $i, $this->_num_cols, "vertical", $bp["right"]); + } + + // Resolve horizontal borders + for ($j = 0; $j < $this->_num_cols; $j++) { + $this->resolve_border($start_row, $j, "horizontal", $bp["top"]); + $this->resolve_border($this->__row, $j, "horizontal", $bp["bottom"]); + } + + if ($frame === $this->_table) { + // Clear borders because the cells are now using them. The + // border width still needs to be set to half the resolved + // width so that the table is positioned properly + [$top, $right, $bottom, $left] = $this->get_resolved_border($frame); + + $style->set_used("border_top_width", $top["width"] / 2); + $style->set_used("border_right_width", $right["width"] / 2); + $style->set_used("border_bottom_width", $bottom["width"] / 2); + $style->set_used("border_left_width", $left["width"] / 2); + $style->set_used("border_style", "none"); + } else { + // Clear borders for rows and row groups + $style->set_used("border_width", 0); + $style->set_used("border_style", "none"); + } + } + + if ($frame === $this->_table) { + // Apply resolved borders to table cells and calculate column + // widths after all frames have been added + $this->calculate_column_widths(); + } + return; + } + + // Add the frame to the cellmap + $key = $frame->get_id(); + $node = $frame->get_node(); + $bp = $style->get_border_properties(); + + // Determine where this cell is going + $colspan = max((int) $node->getAttribute("colspan"), 1); + $rowspan = max((int) $node->getAttribute("rowspan"), 1); + + // Find the next available column (fix by Ciro Mondueri) + $ac = $this->__col; + while (isset($this->_cells[$this->__row][$ac])) { + $ac++; + } + + $this->__col = $ac; + + // Rows: + for ($i = 0; $i < $rowspan; $i++) { + $row = $this->__row + $i; + + $this->_frames[$key]["rows"][] = $row; + + for ($j = 0; $j < $colspan; $j++) { + $this->_cells[$row][$this->__col + $j] = $frame; + } + + if ($collapse) { + // Resolve vertical borders + $this->resolve_border($row, $this->__col, "vertical", $bp["left"]); + $this->resolve_border($row, $this->__col + $colspan, "vertical", $bp["right"]); + } + } + + // Columns: + for ($j = 0; $j < $colspan; $j++) { + $col = $this->__col + $j; + $this->_frames[$key]["columns"][] = $col; + + if ($collapse) { + // Resolve horizontal borders + $this->resolve_border($this->__row, $col, "horizontal", $bp["top"]); + $this->resolve_border($this->__row + $rowspan, $col, "horizontal", $bp["bottom"]); + } + } + + $this->_frames[$key]["frame"] = $frame; + + $this->__col += $colspan; + if ($this->__col > $this->_num_cols) { + $this->_num_cols = $this->__col; + } + } + + /** + * Apply resolved borders to table cells and calculate column widths. + */ + protected function calculate_column_widths(): void + { + $table = $this->_table; + $table_style = $table->get_style(); + $collapse = $table_style->border_collapse === "collapse"; + + if ($collapse) { + $v_spacing = 0; + $h_spacing = 0; + } else { + // The additional 1/2 width gets added to the table proper + [$h, $v] = $table_style->border_spacing; + $v_spacing = $v / 2; + $h_spacing = $h / 2; + } + + foreach ($this->_frames as $frame_info) { + /** @var TableCellFrameDecorator */ + $frame = $frame_info["frame"]; + $style = $frame->get_style(); + $display = $style->display; + + if ($display !== "table-cell") { + continue; + } + + if ($collapse) { + // Set the resolved border at half width + [$top, $right, $bottom, $left] = $this->get_resolved_border($frame); + + $style->set_used("border_top_width", $top["width"] / 2); + $style->set_used("border_top_style", $top["style"]); + $style->set_used("border_top_color", $top["color"]); + $style->set_used("border_right_width", $right["width"] / 2); + $style->set_used("border_right_style", $right["style"]); + $style->set_used("border_right_color", $right["color"]); + $style->set_used("border_bottom_width", $bottom["width"] / 2); + $style->set_used("border_bottom_style", $bottom["style"]); + $style->set_used("border_bottom_color", $bottom["color"]); + $style->set_used("border_left_width", $left["width"] / 2); + $style->set_used("border_left_style", $left["style"]); + $style->set_used("border_left_color", $left["color"]); + $style->set_used("margin", 0); + } else { + // Border spacing is effectively a margin between cells + $style->set_used("margin_top", $v_spacing); + $style->set_used("margin_bottom", $v_spacing); + $style->set_used("margin_left", $h_spacing); + $style->set_used("margin_right", $h_spacing); + } + + if ($this->_columns_locked) { + continue; + } + + $node = $frame->get_node(); + $colspan = max((int) $node->getAttribute("colspan"), 1); + $first_col = $frame_info["columns"][0]; + + // Resolve the frame's width + if ($this->_fixed_layout) { + list($frame_min, $frame_max) = [0, 10e-10]; + } else { + list($frame_min, $frame_max) = $frame->get_min_max_width(); + } + + $width = $style->width; + + $val = null; + if (Helpers::is_percent($width) && $colspan === 1) { + $var = "percent"; + $val = (float)rtrim($width, "% "); + } elseif ($width !== "auto" && $colspan === 1) { + $var = "absolute"; + $val = $frame_min; + } + + $min = 0; + $max = 0; + for ($cs = 0; $cs < $colspan; $cs++) { + + // Resolve the frame's width(s) with other cells + $col =& $this->get_column($first_col + $cs); + + // Note: $var is either 'percent' or 'absolute'. We compare the + // requested percentage or absolute values with the existing widths + // and adjust accordingly. + if (isset($var) && $val > $col[$var]) { + $col[$var] = $val; + $col["auto"] = false; + } + + $min += $col["min-width"]; + $max += $col["max-width"]; + } + + if ($frame_min > $min && $colspan === 1) { + // The frame needs more space. Expand each sub-column + // FIXME try to avoid putting this dummy value when table-layout:fixed + $inc = ($this->is_layout_fixed() ? 10e-10 : ($frame_min - $min)); + for ($c = 0; $c < $colspan; $c++) { + $col =& $this->get_column($first_col + $c); + $col["min-width"] += $inc; + } + } + + if ($frame_max > $max) { + // FIXME try to avoid putting this dummy value when table-layout:fixed + $inc = ($this->is_layout_fixed() ? 10e-10 : ($frame_max - $max) / $colspan); + for ($c = 0; $c < $colspan; $c++) { + $col =& $this->get_column($first_col + $c); + $col["max-width"] += $inc; + } + } + } + + // Adjust absolute columns so that the absolute (and max) width is the + // largest minimum width of all cells. This accounts for cells without + // absolute width within an absolute column + foreach ($this->_columns as &$col) { + if ($col["absolute"] > 0) { + $col["absolute"] = $col["min-width"]; + $col["max-width"] = $col["min-width"]; + } + } + } + + protected function add_row(): void + { + $this->__row++; + $this->_num_rows++; + + // Find the next available column + $i = 0; + while (isset($this->_cells[$this->__row][$i])) { + $i++; + } + + $this->__col = $i; + } + + /** + * Remove a row from the cellmap. + * + * @param Frame + */ + public function remove_row(Frame $row) + { + $key = $row->get_id(); + if (!isset($this->_frames[$key])) { + return; // Presumably this row has already been removed + } + + $this->__row = $this->_num_rows--; + + $rows = $this->_frames[$key]["rows"]; + $columns = $this->_frames[$key]["columns"]; + + // Remove all frames from this row + foreach ($rows as $r) { + foreach ($columns as $c) { + if (isset($this->_cells[$r][$c])) { + $id = $this->_cells[$r][$c]->get_id(); + + $this->_cells[$r][$c] = null; + unset($this->_cells[$r][$c]); + + // has multiple rows? + if (isset($this->_frames[$id]) && count($this->_frames[$id]["rows"]) > 1) { + // remove just the desired row, but leave the frame + if (($row_key = array_search($r, $this->_frames[$id]["rows"])) !== false) { + unset($this->_frames[$id]["rows"][$row_key]); + } + continue; + } + + $this->_frames[$id] = null; + unset($this->_frames[$id]); + } + } + + $this->_rows[$r] = null; + unset($this->_rows[$r]); + } + + $this->_frames[$key] = null; + unset($this->_frames[$key]); + } + + /** + * Remove a row group from the cellmap. + * + * @param Frame $group The group to remove + */ + public function remove_row_group(Frame $group) + { + $key = $group->get_id(); + if (!isset($this->_frames[$key])) { + return; // Presumably this row has already been removed + } + + $iter = $group->get_first_child(); + while ($iter) { + $this->remove_row($iter); + $iter = $iter->get_next_sibling(); + } + + $this->_frames[$key] = null; + unset($this->_frames[$key]); + } + + /** + * Update a row group after rows have been removed + * + * @param Frame $group The group to update + * @param Frame $last_row The last row in the row group + */ + public function update_row_group(Frame $group, Frame $last_row) + { + $g_key = $group->get_id(); + + $first_index = $this->_frames[$g_key]["rows"][0]; + $last_index = $first_index; + $row = $last_row; + while ($row = $row->get_prev_sibling()) { + $last_index++; + } + + $this->_frames[$g_key]["rows"] = range($first_index, $last_index); + } + + public function assign_x_positions(): void + { + // Pre-condition: widths must be resolved and assigned to columns and + // column[0]["x"] must be set. + + if ($this->_columns_locked) { + return; + } + + $x = $this->_columns[0]["x"]; + foreach (array_keys($this->_columns) as $j) { + $this->_columns[$j]["x"] = $x; + $x += $this->_columns[$j]["used-width"]; + } + } + + public function assign_frame_heights(): void + { + // Pre-condition: widths and heights of each column & row must be + // calcluated + foreach ($this->_frames as $arr) { + $frame = $arr["frame"]; + + $h = 0.0; + foreach ($arr["rows"] as $row) { + if (!isset($this->_rows[$row])) { + // The row has been removed because of a page split, so skip it. + continue; + } + + $h += $this->_rows[$row]["height"]; + } + + if ($frame instanceof TableCellFrameDecorator) { + $frame->set_cell_height($h); + } else { + $frame->get_style()->set_used("height", $h); + } + } + } + + /** + * Re-adjust frame height if the table height is larger than its content + */ + public function set_frame_heights(float $table_height, float $content_height): void + { + // Distribute the increased height proportionally amongst each row + foreach ($this->_frames as $arr) { + $frame = $arr["frame"]; + + $h = 0.0; + foreach ($arr["rows"] as $row) { + if (!isset($this->_rows[$row])) { + continue; + } + + $h += $this->_rows[$row]["height"]; + } + + if ($content_height > 0) { + $new_height = ($h / $content_height) * $table_height; + } else { + $new_height = 0.0; + } + + if ($frame instanceof TableCellFrameDecorator) { + $frame->set_cell_height($new_height); + } else { + $frame->get_style()->set_used("height", $new_height); + } + } + } + + /** + * Used for debugging: + * + * @return string + */ + public function __toString(): string + { + $str = ""; + $str .= "Columns:
"; + $str .= Helpers::pre_r($this->_columns, true); + $str .= "Rows:
"; + $str .= Helpers::pre_r($this->_rows, true); + + $str .= "Frames:
"; + $arr = []; + foreach ($this->_frames as $key => $val) { + $arr[$key] = ["columns" => $val["columns"], "rows" => $val["rows"]]; + } + + $str .= Helpers::pre_r($arr, true); + + if (php_sapi_name() == "cli") { + $str = strip_tags(str_replace(["
", "", ""], + ["\n", chr(27) . "[01;33m", chr(27) . "[0m"], + $str)); + } + + return $str; + } +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Css/AttributeTranslator.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Css/AttributeTranslator.php new file mode 100644 index 0000000..b2013e1 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Css/AttributeTranslator.php @@ -0,0 +1,652 @@ + array ( 'align' => '', ), + 'img' => [ + 'align' => [ + 'bottom' => 'vertical-align: baseline;', + 'middle' => 'vertical-align: middle;', + 'top' => 'vertical-align: top;', + 'left' => 'float: left;', + 'right' => 'float: right;' + ], + 'border' => 'border: %0.2Fpx solid;', + 'height' => '_set_px_height', + 'hspace' => 'padding-left: %1$0.2Fpx; padding-right: %1$0.2Fpx;', + 'vspace' => 'padding-top: %1$0.2Fpx; padding-bottom: %1$0.2Fpx;', + 'width' => '_set_px_width', + ], + 'table' => [ + 'align' => [ + 'left' => 'margin-left: 0; margin-right: auto;', + 'center' => 'margin-left: auto; margin-right: auto;', + 'right' => 'margin-left: auto; margin-right: 0;' + ], + 'bgcolor' => 'background-color: %s;', + 'border' => '_set_table_border', + 'cellpadding' => '_set_table_cellpadding', //'border-spacing: %0.2F; border-collapse: separate;', + 'cellspacing' => '_set_table_cellspacing', + 'frame' => [ + 'void' => 'border-style: none;', + 'above' => 'border-top-style: solid;', + 'below' => 'border-bottom-style: solid;', + 'hsides' => 'border-left-style: solid; border-right-style: solid;', + 'vsides' => 'border-top-style: solid; border-bottom-style: solid;', + 'lhs' => 'border-left-style: solid;', + 'rhs' => 'border-right-style: solid;', + 'box' => 'border-style: solid;', + 'border' => 'border-style: solid;' + ], + 'rules' => '_set_table_rules', + 'width' => 'width: %s;', + ], + 'hr' => [ + 'align' => '_set_hr_align', // Need to grab width to set 'left' & 'right' correctly + 'noshade' => 'border-style: solid;', + 'size' => '_set_hr_size', //'border-width: %0.2F px;', + 'width' => 'width: %s;', + ], + 'div' => [ + 'align' => 'text-align: %s;', + ], + 'h1' => [ + 'align' => 'text-align: %s;', + ], + 'h2' => [ + 'align' => 'text-align: %s;', + ], + 'h3' => [ + 'align' => 'text-align: %s;', + ], + 'h4' => [ + 'align' => 'text-align: %s;', + ], + 'h5' => [ + 'align' => 'text-align: %s;', + ], + 'h6' => [ + 'align' => 'text-align: %s;', + ], + //TODO: translate more form element attributes + 'input' => [ + 'size' => '_set_input_width' + ], + 'p' => [ + 'align' => 'text-align: %s;', + ], +// 'col' => array( +// 'align' => '', +// 'valign' => '', +// ), +// 'colgroup' => array( +// 'align' => '', +// 'valign' => '', +// ), + 'tbody' => [ + 'align' => '_set_table_row_align', + 'valign' => '_set_table_row_valign', + ], + 'td' => [ + 'align' => 'text-align: %s;', + 'bgcolor' => '_set_background_color', + 'height' => 'height: %s;', + 'nowrap' => 'white-space: nowrap;', + 'valign' => 'vertical-align: %s;', + 'width' => 'width: %s;', + ], + 'tfoot' => [ + 'align' => '_set_table_row_align', + 'valign' => '_set_table_row_valign', + ], + 'th' => [ + 'align' => 'text-align: %s;', + 'bgcolor' => '_set_background_color', + 'height' => 'height: %s;', + 'nowrap' => 'white-space: nowrap;', + 'valign' => 'vertical-align: %s;', + 'width' => 'width: %s;', + ], + 'thead' => [ + 'align' => '_set_table_row_align', + 'valign' => '_set_table_row_valign', + ], + 'tr' => [ + 'align' => '_set_table_row_align', + 'bgcolor' => '_set_table_row_bgcolor', + 'valign' => '_set_table_row_valign', + ], + 'body' => [ + 'background' => 'background-image: url(%s);', + 'bgcolor' => '_set_background_color', + 'link' => '_set_body_link', + 'text' => '_set_color', + ], + 'br' => [ + 'clear' => 'clear: %s;', + ], + 'basefont' => [ + 'color' => '_set_color', + 'face' => 'font-family: %s;', + 'size' => '_set_basefont_size', + ], + 'font' => [ + 'color' => '_set_color', + 'face' => 'font-family: %s;', + 'size' => '_set_font_size', + ], + 'dir' => [ + 'compact' => 'margin: 0.5em 0;', + ], + 'dl' => [ + 'compact' => 'margin: 0.5em 0;', + ], + 'menu' => [ + 'compact' => 'margin: 0.5em 0;', + ], + 'ol' => [ + 'compact' => 'margin: 0.5em 0;', + 'start' => 'counter-reset: -dompdf-default-counter %d;', + 'type' => 'list-style-type: %s;', + ], + 'ul' => [ + 'compact' => 'margin: 0.5em 0;', + 'type' => 'list-style-type: %s;', + ], + 'li' => [ + 'type' => 'list-style-type: %s;', + 'value' => 'counter-reset: -dompdf-default-counter %d;', + ], + 'pre' => [ + 'width' => 'width: %s;', + ], + ]; + + protected static $_last_basefont_size = 3; + protected static $_font_size_lookup = [ + // For basefont support + -3 => "4pt", + -2 => "5pt", + -1 => "6pt", + 0 => "7pt", + + 1 => "8pt", + 2 => "10pt", + 3 => "12pt", + 4 => "14pt", + 5 => "18pt", + 6 => "24pt", + 7 => "34pt", + + // For basefont support + 8 => "48pt", + 9 => "44pt", + 10 => "52pt", + 11 => "60pt", + ]; + + /** + * @param Frame $frame + */ + static function translate_attributes(Frame $frame) + { + $node = $frame->get_node(); + $tag = $node->nodeName; + + if (!isset(self::$__ATTRIBUTE_LOOKUP[$tag])) { + return; + } + + $valid_attrs = self::$__ATTRIBUTE_LOOKUP[$tag]; + $attrs = $node->attributes; + $style = rtrim($node->getAttribute(self::$_style_attr), "; "); + if ($style != "") { + $style .= ";"; + } + + foreach ($attrs as $attr => $attr_node) { + if (!isset($valid_attrs[$attr])) { + continue; + } + + $value = $attr_node->value; + + $target = $valid_attrs[$attr]; + + // Look up $value in $target, if $target is an array: + if (is_array($target)) { + if (isset($target[$value])) { + $style .= " " . self::_resolve_target($node, $target[$value], $value); + } + } else { + // otherwise use target directly + $style .= " " . self::_resolve_target($node, $target, $value); + } + } + + if (!is_null($style)) { + $style = ltrim($style); + $node->setAttribute(self::$_style_attr, $style); + } + } + + /** + * @param \DOMNode $node + * @param string $target + * @param string $value + * + * @return string + */ + protected static function _resolve_target(\DOMNode $node, $target, $value) + { + if ($target[0] === "_") { + return self::$target($node, $value); + } + + return $value ? sprintf($target, $value) : ""; + } + + /** + * @param \DOMElement $node + * @param string $new_style + */ + static function append_style(\DOMElement $node, $new_style) + { + $style = rtrim($node->getAttribute(self::$_style_attr), ";"); + $style .= $new_style; + $style = ltrim($style, ";"); + $node->setAttribute(self::$_style_attr, $style); + } + + /** + * @param \DOMNode $node + * + * @return \DOMNodeList|\DOMElement[] + */ + protected static function get_cell_list(\DOMNode $node) + { + $xpath = new \DOMXpath($node->ownerDocument); + + switch ($node->nodeName) { + default: + case "table": + $query = "tr/td | thead/tr/td | tbody/tr/td | tfoot/tr/td | tr/th | thead/tr/th | tbody/tr/th | tfoot/tr/th"; + break; + + case "tbody": + case "tfoot": + case "thead": + $query = "tr/td | tr/th"; + break; + + case "tr": + $query = "td | th"; + break; + } + + return $xpath->query($query, $node); + } + + /** + * @param string $value + * + * @return string + */ + protected static function _get_valid_color($value) + { + if (preg_match('/^#?([0-9A-F]{6})$/i', $value, $matches)) { + $value = "#$matches[1]"; + } + + return $value; + } + + /** + * @param \DOMElement $node + * @param string $value + * + * @return string + */ + protected static function _set_color(\DOMElement $node, $value) + { + $value = self::_get_valid_color($value); + + return "color: $value;"; + } + + /** + * @param \DOMElement $node + * @param string $value + * + * @return string + */ + protected static function _set_background_color(\DOMElement $node, $value) + { + $value = self::_get_valid_color($value); + + return "background-color: $value;"; + } + + protected static function _set_px_width(\DOMElement $node, string $value): string + { + $v = trim($value); + + if (Helpers::is_percent($v)) { + return sprintf("width: %s;", $v); + } + + if (is_numeric(mb_substr($v, 0, 1))) { + return sprintf("width: %spx;", (float) $v); + } + + return ""; + } + + protected static function _set_px_height(\DOMElement $node, string $value): string + { + $v = trim($value); + + if (Helpers::is_percent($v)) { + return sprintf("height: %s;", $v); + } + + if (is_numeric(mb_substr($v, 0, 1))) { + return sprintf("height: %spx;", (float) $v); + } + + return ""; + } + + /** + * @param \DOMElement $node + * @param string $value + * + * @return null + */ + protected static function _set_table_cellpadding(\DOMElement $node, $value) + { + $cell_list = self::get_cell_list($node); + + foreach ($cell_list as $cell) { + self::append_style($cell, "; padding: {$value}px;"); + } + + return null; + } + + /** + * @param \DOMElement $node + * @param string $value + * + * @return string + */ + protected static function _set_table_border(\DOMElement $node, $value) + { + return "border-width: $value" . "px;"; + } + + /** + * @param \DOMElement $node + * @param string $value + * + * @return string + */ + protected static function _set_table_cellspacing(\DOMElement $node, $value) + { + $style = rtrim($node->getAttribute(self::$_style_attr), ";"); + + if ($value == 0) { + $style .= "; border-collapse: collapse;"; + } else { + $style .= "; border-spacing: {$value}px; border-collapse: separate;"; + } + + return ltrim($style, ";"); + } + + /** + * @param \DOMElement $node + * @param string $value + * + * @return null|string + */ + protected static function _set_table_rules(\DOMElement $node, $value) + { + $new_style = "; border-collapse: collapse;"; + + switch ($value) { + case "none": + $new_style .= "border-style: none;"; + break; + + case "groups": + // FIXME: unsupported + return null; + + case "rows": + $new_style .= "border-style: solid none solid none; border-width: 1px; "; + break; + + case "cols": + $new_style .= "border-style: none solid none solid; border-width: 1px; "; + break; + + case "all": + $new_style .= "border-style: solid; border-width: 1px; "; + break; + + default: + // Invalid value + return null; + } + + $cell_list = self::get_cell_list($node); + + foreach ($cell_list as $cell) { + $style = $cell->getAttribute(self::$_style_attr); + $style .= $new_style; + $cell->setAttribute(self::$_style_attr, $style); + } + + $style = rtrim($node->getAttribute(self::$_style_attr), ";"); + $style .= "; border-collapse: collapse; "; + + return ltrim($style, "; "); + } + + /** + * @param \DOMElement $node + * @param string $value + * + * @return string + */ + protected static function _set_hr_size(\DOMElement $node, $value) + { + $style = rtrim($node->getAttribute(self::$_style_attr), ";"); + $style .= "; border-width: " . max(0, $value - 2) . "; "; + + return ltrim($style, "; "); + } + + /** + * @param \DOMElement $node + * @param string $value + * + * @return null|string + */ + protected static function _set_hr_align(\DOMElement $node, $value) + { + $style = rtrim($node->getAttribute(self::$_style_attr), ";"); + $width = $node->getAttribute("width"); + + if ($width == "") { + $width = "100%"; + } + + $remainder = 100 - (double)rtrim($width, "% "); + + switch ($value) { + case "left": + $style .= "; margin-right: $remainder %;"; + break; + + case "right": + $style .= "; margin-left: $remainder %;"; + break; + + case "center": + $style .= "; margin-left: auto; margin-right: auto;"; + break; + + default: + return null; + } + + return ltrim($style, "; "); + } + + /** + * @param \DOMElement $node + * @param string $value + * + * @return null|string + */ + protected static function _set_input_width(\DOMElement $node, $value) + { + if (empty($value)) { return null; } + + if ($node->hasAttribute("type") && in_array(strtolower($node->getAttribute("type")), ["text","password"])) { + return sprintf("width: %Fem", (((int)$value * .65)+2)); + } else { + return sprintf("width: %upx;", (int)$value); + } + } + + /** + * @param \DOMElement $node + * @param string $value + * + * @return null + */ + protected static function _set_table_row_align(\DOMElement $node, $value) + { + $cell_list = self::get_cell_list($node); + + foreach ($cell_list as $cell) { + self::append_style($cell, "; text-align: $value;"); + } + + return null; + } + + /** + * @param \DOMElement $node + * @param string $value + * + * @return null + */ + protected static function _set_table_row_valign(\DOMElement $node, $value) + { + $cell_list = self::get_cell_list($node); + + foreach ($cell_list as $cell) { + self::append_style($cell, "; vertical-align: $value;"); + } + + return null; + } + + /** + * @param \DOMElement $node + * @param string $value + * + * @return null + */ + protected static function _set_table_row_bgcolor(\DOMElement $node, $value) + { + $cell_list = self::get_cell_list($node); + $value = self::_get_valid_color($value); + + foreach ($cell_list as $cell) { + self::append_style($cell, "; background-color: $value;"); + } + + return null; + } + + /** + * @param \DOMElement $node + * @param string $value + * + * @return null + */ + protected static function _set_body_link(\DOMElement $node, $value) + { + $a_list = $node->getElementsByTagName("a"); + $value = self::_get_valid_color($value); + + foreach ($a_list as $a) { + self::append_style($a, "; color: $value;"); + } + + return null; + } + + /** + * @param \DOMElement $node + * @param string $value + * + * @return null + */ + protected static function _set_basefont_size(\DOMElement $node, $value) + { + // FIXME: ? we don't actually set the font size of anything here, just + // the base size for later modification by tags. + self::$_last_basefont_size = $value; + + return null; + } + + /** + * @param \DOMElement $node + * @param string $value + * + * @return string + */ + protected static function _set_font_size(\DOMElement $node, $value) + { + $style = $node->getAttribute(self::$_style_attr); + + if ($value[0] === "-" || $value[0] === "+") { + $value = self::$_last_basefont_size + (int)$value; + } + + if (isset(self::$_font_size_lookup[$value])) { + $style .= "; font-size: " . self::$_font_size_lookup[$value] . ";"; + } else { + $style .= "; font-size: $value;"; + } + + return ltrim($style, "; "); + } +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Css/Color.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Css/Color.php new file mode 100644 index 0000000..28a9f56 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Css/Color.php @@ -0,0 +1,339 @@ + "F0F8FF", + "antiquewhite" => "FAEBD7", + "aqua" => "00FFFF", + "aquamarine" => "7FFFD4", + "azure" => "F0FFFF", + "beige" => "F5F5DC", + "bisque" => "FFE4C4", + "black" => "000000", + "blanchedalmond" => "FFEBCD", + "blue" => "0000FF", + "blueviolet" => "8A2BE2", + "brown" => "A52A2A", + "burlywood" => "DEB887", + "cadetblue" => "5F9EA0", + "chartreuse" => "7FFF00", + "chocolate" => "D2691E", + "coral" => "FF7F50", + "cornflowerblue" => "6495ED", + "cornsilk" => "FFF8DC", + "crimson" => "DC143C", + "cyan" => "00FFFF", + "darkblue" => "00008B", + "darkcyan" => "008B8B", + "darkgoldenrod" => "B8860B", + "darkgray" => "A9A9A9", + "darkgreen" => "006400", + "darkgrey" => "A9A9A9", + "darkkhaki" => "BDB76B", + "darkmagenta" => "8B008B", + "darkolivegreen" => "556B2F", + "darkorange" => "FF8C00", + "darkorchid" => "9932CC", + "darkred" => "8B0000", + "darksalmon" => "E9967A", + "darkseagreen" => "8FBC8F", + "darkslateblue" => "483D8B", + "darkslategray" => "2F4F4F", + "darkslategrey" => "2F4F4F", + "darkturquoise" => "00CED1", + "darkviolet" => "9400D3", + "deeppink" => "FF1493", + "deepskyblue" => "00BFFF", + "dimgray" => "696969", + "dimgrey" => "696969", + "dodgerblue" => "1E90FF", + "firebrick" => "B22222", + "floralwhite" => "FFFAF0", + "forestgreen" => "228B22", + "fuchsia" => "FF00FF", + "gainsboro" => "DCDCDC", + "ghostwhite" => "F8F8FF", + "gold" => "FFD700", + "goldenrod" => "DAA520", + "gray" => "808080", + "green" => "008000", + "greenyellow" => "ADFF2F", + "grey" => "808080", + "honeydew" => "F0FFF0", + "hotpink" => "FF69B4", + "indianred" => "CD5C5C", + "indigo" => "4B0082", + "ivory" => "FFFFF0", + "khaki" => "F0E68C", + "lavender" => "E6E6FA", + "lavenderblush" => "FFF0F5", + "lawngreen" => "7CFC00", + "lemonchiffon" => "FFFACD", + "lightblue" => "ADD8E6", + "lightcoral" => "F08080", + "lightcyan" => "E0FFFF", + "lightgoldenrodyellow" => "FAFAD2", + "lightgray" => "D3D3D3", + "lightgreen" => "90EE90", + "lightgrey" => "D3D3D3", + "lightpink" => "FFB6C1", + "lightsalmon" => "FFA07A", + "lightseagreen" => "20B2AA", + "lightskyblue" => "87CEFA", + "lightslategray" => "778899", + "lightslategrey" => "778899", + "lightsteelblue" => "B0C4DE", + "lightyellow" => "FFFFE0", + "lime" => "00FF00", + "limegreen" => "32CD32", + "linen" => "FAF0E6", + "magenta" => "FF00FF", + "maroon" => "800000", + "mediumaquamarine" => "66CDAA", + "mediumblue" => "0000CD", + "mediumorchid" => "BA55D3", + "mediumpurple" => "9370DB", + "mediumseagreen" => "3CB371", + "mediumslateblue" => "7B68EE", + "mediumspringgreen" => "00FA9A", + "mediumturquoise" => "48D1CC", + "mediumvioletred" => "C71585", + "midnightblue" => "191970", + "mintcream" => "F5FFFA", + "mistyrose" => "FFE4E1", + "moccasin" => "FFE4B5", + "navajowhite" => "FFDEAD", + "navy" => "000080", + "oldlace" => "FDF5E6", + "olive" => "808000", + "olivedrab" => "6B8E23", + "orange" => "FFA500", + "orangered" => "FF4500", + "orchid" => "DA70D6", + "palegoldenrod" => "EEE8AA", + "palegreen" => "98FB98", + "paleturquoise" => "AFEEEE", + "palevioletred" => "DB7093", + "papayawhip" => "FFEFD5", + "peachpuff" => "FFDAB9", + "peru" => "CD853F", + "pink" => "FFC0CB", + "plum" => "DDA0DD", + "powderblue" => "B0E0E6", + "purple" => "800080", + "red" => "FF0000", + "rosybrown" => "BC8F8F", + "royalblue" => "4169E1", + "saddlebrown" => "8B4513", + "salmon" => "FA8072", + "sandybrown" => "F4A460", + "seagreen" => "2E8B57", + "seashell" => "FFF5EE", + "sienna" => "A0522D", + "silver" => "C0C0C0", + "skyblue" => "87CEEB", + "slateblue" => "6A5ACD", + "slategray" => "708090", + "slategrey" => "708090", + "snow" => "FFFAFA", + "springgreen" => "00FF7F", + "steelblue" => "4682B4", + "tan" => "D2B48C", + "teal" => "008080", + "thistle" => "D8BFD8", + "tomato" => "FF6347", + "turquoise" => "40E0D0", + "violet" => "EE82EE", + "wheat" => "F5DEB3", + "white" => "FFFFFF", + "whitesmoke" => "F5F5F5", + "yellow" => "FFFF00", + "yellowgreen" => "9ACD32", + ]; + + /** + * @param array|string|null $color + * @return array|string|null + */ + static function parse($color) + { + if ($color === null) { + return null; + } + + if (is_array($color)) { + // Assume the array has the right format... + // FIXME: should/could verify this. + return $color; + } + + static $cache = []; + + $color = strtolower($color); + + if (isset($cache[$color])) { + return $cache[$color]; + } + + if ($color === "transparent") { + return $cache[$color] = $color; + } + + if (isset(self::$cssColorNames[$color])) { + return $cache[$color] = self::getArray(self::$cssColorNames[$color]); + } + + // https://www.w3.org/TR/css-color-4/#hex-notation + if (mb_substr($color, 0, 1) === "#") { + $length = mb_strlen($color); + $alpha = 1.0; + + // #rgb format + if ($length === 4) { + return $cache[$color] = self::getArray($color[1] . $color[1] . $color[2] . $color[2] . $color[3] . $color[3]); + } + + // #rgba format + if ($length === 5) { + if (ctype_xdigit($color[4])) { + $alpha = round(hexdec($color[4] . $color[4])/255, 2); + } + return $cache[$color] = self::getArray($color[1] . $color[1] . $color[2] . $color[2] . $color[3] . $color[3], $alpha); + } + + // #rrggbb format + if ($length === 7) { + return $cache[$color] = self::getArray(mb_substr($color, 1, 6)); + } + + // #rrggbbaa format + if ($length === 9) { + if (ctype_xdigit(mb_substr($color, 7, 2))) { + $alpha = round(hexdec(mb_substr($color, 7, 2))/255, 2); + } + return $cache[$color] = self::getArray(mb_substr($color, 1, 6), $alpha); + } + + return null; + } + + // rgb( r g b [/α] ) / rgb( r,g,b[,α] ) format and alias rgba() + // https://www.w3.org/TR/css-color-4/#rgb-functions + if (mb_substr($color, 0, 4) === "rgb(" || mb_substr($color, 0, 5) === "rgba(") { + $i = mb_strpos($color, "("); + $j = mb_strpos($color, ")"); + + // Bad color value + if ($i === false || $j === false) { + return null; + } + + $value_decl = trim(mb_substr($color, $i + 1, $j - $i - 1)); + + if (mb_strpos($value_decl, ",") === false) { + // Space-separated values syntax `r g b` or `r g b / α` + $parts = preg_split("/\s*\/\s*/", $value_decl); + $triplet = preg_split("/\s+/", $parts[0]); + $alpha = $parts[1] ?? 1.0; + } else { + // Comma-separated values syntax `r, g, b` or `r, g, b, α` + $parts = preg_split("/\s*,\s*/", $value_decl); + $triplet = array_slice($parts, 0, 3); + $alpha = $parts[3] ?? 1.0; + } + + if (count($triplet) !== 3) { + return null; + } + + // Parse alpha value + if (Helpers::is_percent($alpha)) { + $alpha = (float) $alpha / 100; + } else { + $alpha = (float) $alpha; + } + + $alpha = max(0.0, min($alpha, 1.0)); + + foreach ($triplet as &$c) { + if (Helpers::is_percent($c)) { + $c = round((float) $c * 2.55); + } + } + + return $cache[$color] = self::getArray(vsprintf("%02X%02X%02X", $triplet), $alpha); + } + + // cmyk( c,m,y,k ) format + // http://www.w3.org/TR/css3-gcpm/#cmyk-colors + if (mb_substr($color, 0, 5) === "cmyk(") { + $i = mb_strpos($color, "("); + $j = mb_strpos($color, ")"); + + // Bad color value + if ($i === false || $j === false) { + return null; + } + + $values = explode(",", mb_substr($color, $i + 1, $j - $i - 1)); + + if (count($values) != 4) { + return null; + } + + $values = array_map(function ($c) { + return min(1.0, max(0.0, floatval(trim($c)))); + }, $values); + + return $cache[$color] = self::getArray($values); + } + + // Invalid or unsupported color format + return null; + } + + /** + * @param array|string $color + * @param float $alpha + * @return array + */ + static function getArray($color, $alpha = 1.0) + { + $c = [null, null, null, null, "alpha" => $alpha, "hex" => null]; + + if (is_array($color)) { + $c = $color; + $c["c"] = $c[0]; + $c["m"] = $c[1]; + $c["y"] = $c[2]; + $c["k"] = $c[3]; + $c["alpha"] = $alpha; + $c["hex"] = "cmyk($c[0],$c[1],$c[2],$c[3])"; + } else { + if (ctype_xdigit($color) === false || mb_strlen($color) !== 6) { + // invalid color value ... expected 6-character hex + return $c; + } + $c[0] = hexdec(mb_substr($color, 0, 2)) / 0xff; + $c[1] = hexdec(mb_substr($color, 2, 2)) / 0xff; + $c[2] = hexdec(mb_substr($color, 4, 2)) / 0xff; + $c["r"] = $c[0]; + $c["g"] = $c[1]; + $c["b"] = $c[2]; + $c["alpha"] = $alpha; + $c["hex"] = sprintf("#%s%02X", $color, round($alpha * 255)); + } + + return $c; + } +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Css/Style.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Css/Style.php new file mode 100644 index 0000000..2d4c9d7 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Css/Style.php @@ -0,0 +1,3743 @@ +margin_top = 10.0; + * echo $style->margin_top; // Returns `10.0` + * ``` + * + * To declare a property from a string, use {@link Style::set_prop()}: + * + * ``` + * $style->set_prop("margin_top", "1em"); + * echo $style->get_specified("margin_top"); // Returns `1em` + * echo $style->margin_top; // Returns `12.0`, assuming the default font size + * ``` + * + * Actual CSS parsing is performed in the {@link Stylesheet} class. + * + * @property string $azimuth + * @property string $background_attachment + * @property array|string $background_color + * @property string $background_image Image URL or `none` + * @property string $background_image_resolution + * @property array $background_position + * @property string $background_repeat + * @property array|string $background_size `cover`, `contain`, or `[width, height]`, each being a length, percentage, or `auto` + * @property string $border_collapse + * @property string $border_color Only use for setting all sides to the same color + * @property float[] $border_spacing Pair of `[horizontal, vertical]` spacing + * @property string $border_style Only use for setting all sides to the same style + * @property array|string $border_top_color + * @property array|string $border_right_color + * @property array|string $border_bottom_color + * @property array|string $border_left_color + * @property string $border_top_style Valid border style + * @property string $border_right_style Valid border style + * @property string $border_bottom_style Valid border style + * @property string $border_left_style Valid border style + * @property float $border_top_width Length in pt + * @property float $border_right_width Length in pt + * @property float $border_bottom_width Length in pt + * @property float $border_left_width Length in pt + * @property string $border_width Only use for setting all sides to the same width + * @property float|string $border_bottom_left_radius Radius in pt or a percentage value + * @property float|string $border_bottom_right_radius Radius in pt or a percentage value + * @property float|string $border_top_left_radius Radius in pt or a percentage value + * @property float|string $border_top_right_radius Radius in pt or a percentage value + * @property string $border_radius Only use for setting all corners to the same radius + * @property float|string $bottom Length in pt, a percentage value, or `auto` + * @property string $caption_side + * @property string $clear + * @property string $clip + * @property array|string $color + * @property string[]|string $content List of content components, `normal`, or `none` + * @property array|string $counter_increment Array defining the counters to increment or `none` + * @property array|string $counter_reset Array defining the counters to reset or `none` + * @property string $cue_after + * @property string $cue_before + * @property string $cue + * @property string $cursor + * @property string $direction + * @property string $display + * @property string $elevation + * @property string $empty_cells + * @property string $float + * @property string $font_family + * @property float $font_size Length in pt + * @property string $font_style + * @property string $font_variant + * @property string $font_weight + * @property float|string $height Length in pt, a percentage value, or `auto` + * @property string $image_resolution + * @property string $inset Only use for setting all box insets to the same length + * @property float|string $left Length in pt, a percentage value, or `auto` + * @property float $letter_spacing Length in pt + * @property float $line_height Length in pt + * @property string $list_style_image Image URL or `none` + * @property string $list_style_position + * @property string $list_style_type + * @property float|string $margin_right Length in pt, a percentage value, or `auto` + * @property float|string $margin_left Length in pt, a percentage value, or `auto` + * @property float|string $margin_top Length in pt, a percentage value, or `auto` + * @property float|string $margin_bottom Length in pt, a percentage value, or `auto` + * @property string $margin Only use for setting all sides to the same length + * @property float|string $max_height Length in pt, a percentage value, or `none` + * @property float|string $max_width Length in pt, a percentage value, or `none` + * @property float|string $min_height Length in pt, a percentage value, or `auto` + * @property float|string $min_width Length in pt, a percentage value, or `auto` + * @property float $opacity Number in the range [0, 1] + * @property int $orphans + * @property array|string $outline_color + * @property string $outline_style Valid border style, except for `hidden` + * @property float $outline_width Length in pt + * @property float $outline_offset Length in pt + * @property string $overflow + * @property string $overflow_wrap + * @property float|string $padding_top Length in pt or a percentage value + * @property float|string $padding_right Length in pt or a percentage value + * @property float|string $padding_bottom Length in pt or a percentage value + * @property float|string $padding_left Length in pt or a percentage value + * @property string $padding Only use for setting all sides to the same length + * @property string $page_break_after + * @property string $page_break_before + * @property string $page_break_inside + * @property string $pause_after + * @property string $pause_before + * @property string $pause + * @property string $pitch_range + * @property string $pitch + * @property string $play_during + * @property string $position + * @property string $quotes + * @property string $richness + * @property float|string $right Length in pt, a percentage value, or `auto` + * @property float[]|string $size Pair of `[width, height]` or `auto` + * @property string $speak_header + * @property string $speak_numeral + * @property string $speak_punctuation + * @property string $speak + * @property string $speech_rate + * @property string $src + * @property string $stress + * @property string $table_layout + * @property string $text_align + * @property string $text_decoration + * @property float|string $text_indent Length in pt or a percentage value + * @property string $text_transform + * @property float|string $top Length in pt, a percentage value, or `auto` + * @property array $transform List of transforms + * @property array $transform_origin + * @property string $unicode_bidi + * @property string $unicode_range + * @property string $vertical_align + * @property string $visibility + * @property string $voice_family + * @property string $volume + * @property string $white_space + * @property int $widows + * @property float|string $width Length in pt, a percentage value, or `auto` + * @property string $word_break + * @property float $word_spacing Length in pt + * @property int|string $z_index Integer value or `auto` + * @property string $_dompdf_keep + * + * @package dompdf + */ +class Style +{ + protected const CSS_IDENTIFIER = "-?[_a-zA-Z]+[_a-zA-Z0-9-]*"; + protected const CSS_INTEGER = "[+-]?\d+"; + protected const CSS_NUMBER = "[+-]?\d*\.?\d+(?:[eE][+-]?\d+)?"; + + /** + * Default font size, in points. + * + * @var float + */ + public static $default_font_size = 12; + + /** + * Default line height, as a fraction of the font size. + * + * @var float + */ + public static $default_line_height = 1.2; + + /** + * Default "absolute" font sizes relative to the default font-size + * https://www.w3.org/TR/css-fonts-3/#absolute-size-value + * + * @var array + */ + public static $font_size_keywords = [ + "xx-small" => 0.6, // 3/5 + "x-small" => 0.75, // 3/4 + "small" => 0.889, // 8/9 + "medium" => 1, // 1 + "large" => 1.2, // 6/5 + "x-large" => 1.5, // 3/2 + "xx-large" => 2.0, // 2/1 + ]; + + /** + * List of valid text-align keywords. + */ + public const TEXT_ALIGN_KEYWORDS = ["left", "right", "center", "justify"]; + + /** + * List of valid vertical-align keywords. + */ + public const VERTICAL_ALIGN_KEYWORDS = ["baseline", "bottom", "middle", + "sub", "super", "text-bottom", "text-top", "top"]; + + /** + * List of all block-level (outer) display types. + * * https://www.w3.org/TR/css-display-3/#display-type + * * https://www.w3.org/TR/css-display-3/#block-level + */ + public const BLOCK_LEVEL_TYPES = [ + "block", + // "flow-root", + "list-item", + // "flex", + // "grid", + "table" + ]; + + /** + * List of all inline-level (outer) display types. + * * https://www.w3.org/TR/css-display-3/#display-type + * * https://www.w3.org/TR/css-display-3/#inline-level + */ + public const INLINE_LEVEL_TYPES = [ + "inline", + "inline-block", + // "inline-flex", + // "inline-grid", + "inline-table" + ]; + + /** + * List of all table-internal (outer) display types. + * * https://www.w3.org/TR/css-display-3/#layout-specific-display + */ + public const TABLE_INTERNAL_TYPES = [ + "table-row-group", + "table-header-group", + "table-footer-group", + "table-row", + "table-cell", + "table-column-group", + "table-column", + "table-caption" + ]; + + /** + * List of all inline (inner) display types. + */ + public const INLINE_TYPES = ["inline"]; + + /** + * List of all block (inner) display types. + */ + public const BLOCK_TYPES = ["block", "inline-block", "table-cell", "list-item"]; + + /** + * List of all table (inner) display types. + */ + public const TABLE_TYPES = ["table", "inline-table"]; + + /** + * Lookup table for valid display types. Initially computed from the + * different constants. + * + * @var array + */ + protected static $valid_display_types = []; + + /** + * List of all positioned types. + */ + public const POSITIONED_TYPES = ["relative", "absolute", "fixed"]; + + /** + * List of valid border styles. + */ + public const BORDER_STYLES = [ + "none", "hidden", + "dotted", "dashed", "solid", + "double", "groove", "ridge", "inset", "outset" + ]; + + /** + * List of valid outline-style values. + * Same as the border styles, except `auto` is allowed, `hidden` is not. + * + * @link https://www.w3.org/TR/css-ui-4/#typedef-outline-line-style + */ + protected const OUTLINE_STYLES = [ + "auto", "none", + "dotted", "dashed", "solid", + "double", "groove", "ridge", "inset", "outset" + ]; + + /** + * Map of CSS shorthand properties and their corresponding sub-properties. + * The order of the sub-properties is relevant for the fallback getter, + * which is used in case no specific getter method is defined. + * + * @var array + */ + protected static $_props_shorthand = [ + "background" => [ + "background_image", + "background_position", + "background_size", + "background_repeat", + // "background_origin", + // "background_clip", + "background_attachment", + "background_color" + ], + "border" => [ + "border_top_width", + "border_right_width", + "border_bottom_width", + "border_left_width", + "border_top_style", + "border_right_style", + "border_bottom_style", + "border_left_style", + "border_top_color", + "border_right_color", + "border_bottom_color", + "border_left_color" + ], + "border_top" => [ + "border_top_width", + "border_top_style", + "border_top_color" + ], + "border_right" => [ + "border_right_width", + "border_right_style", + "border_right_color" + ], + "border_bottom" => [ + "border_bottom_width", + "border_bottom_style", + "border_bottom_color" + ], + "border_left" => [ + "border_left_width", + "border_left_style", + "border_left_color" + ], + "border_width" => [ + "border_top_width", + "border_right_width", + "border_bottom_width", + "border_left_width" + ], + "border_style" => [ + "border_top_style", + "border_right_style", + "border_bottom_style", + "border_left_style" + ], + "border_color" => [ + "border_top_color", + "border_right_color", + "border_bottom_color", + "border_left_color" + ], + "border_radius" => [ + "border_top_left_radius", + "border_top_right_radius", + "border_bottom_right_radius", + "border_bottom_left_radius" + ], + "font" => [ + "font_family", + "font_size", + // "font_stretch", + "font_style", + "font_variant", + "font_weight", + "line_height" + ], + "inset" => [ + "top", + "right", + "bottom", + "left" + ], + "list_style" => [ + "list_style_image", + "list_style_position", + "list_style_type" + ], + "margin" => [ + "margin_top", + "margin_right", + "margin_bottom", + "margin_left" + ], + "padding" => [ + "padding_top", + "padding_right", + "padding_bottom", + "padding_left" + ], + "outline" => [ + "outline_width", + "outline_style", + "outline_color" + ] + ]; + + /** + * Maps legacy property names to actual property names. + * + * @var array + */ + protected static $_props_alias = [ + "word_wrap" => "overflow_wrap", + "_dompdf_background_image_resolution" => "background_image_resolution", + "_dompdf_image_resolution" => "image_resolution", + "_webkit_transform" => "transform", + "_webkit_transform_origin" => "transform_origin" + ]; + + /** + * Default style values. + * + * @link https://www.w3.org/TR/CSS21/propidx.html + * + * @var array + */ + protected static $_defaults = null; + + /** + * List of inherited properties + * + * @link https://www.w3.org/TR/CSS21/propidx.html + * + * @var array + */ + protected static $_inherited = null; + + /** + * Caches method_exists result + * + * @var array + */ + protected static $_methods_cache = []; + + /** + * The stylesheet this style belongs to + * + * @var Stylesheet + */ + protected $_stylesheet; + + /** + * Media queries attached to the style + * + * @var array + */ + protected $_media_queries; + + /** + * Properties set by an `!important` declaration. + * + * @var array + */ + protected $_important_props = []; + + /** + * Specified (or declared) values of the CSS properties. + * + * https://www.w3.org/TR/css-cascade-3/#value-stages + * + * @var array + */ + protected $_props = []; + + /** + * Computed values of the CSS properties. + * + * @var array + */ + protected $_props_computed = []; + + /** + * Used values of the CSS properties. + * + * @var array + */ + protected $_props_used = []; + + /** + * Marks properties with non-final used values that should be cleared on + * style reset. + * + * @var array + */ + protected $non_final_used = []; + + protected static $_dependency_map = [ + "border_top_style" => [ + "border_top_width" + ], + "border_bottom_style" => [ + "border_bottom_width" + ], + "border_left_style" => [ + "border_left_width" + ], + "border_right_style" => [ + "border_right_width" + ], + "direction" => [ + "text_align" + ], + "font_size" => [ + "background_position", + "background_size", + "border_top_width", + "border_right_width", + "border_bottom_width", + "border_left_width", + "border_top_left_radius", + "border_top_right_radius", + "border_bottom_right_radius", + "border_bottom_left_radius", + "letter_spacing", + "line_height", + "margin_top", + "margin_right", + "margin_bottom", + "margin_left", + "outline_width", + "outline_offset", + "padding_top", + "padding_right", + "padding_bottom", + "padding_left", + "word_spacing", + "width", + "height", + "min-width", + "min-height", + "max-width", + "max-height" + ], + "float" => [ + "display" + ], + "position" => [ + "display" + ], + "outline_style" => [ + "outline_width" + ] + ]; + + /** + * Lookup table for dependent properties. Initially computed from the + * dependency map. + * + * @var array + */ + protected static $_dependent_props = []; + + /** + * Style of the parent element in document tree. + * + * @var Style + */ + protected $parent_style; + + /** + * @var Frame|null + */ + protected $_frame; + + /** + * The origin of the style + * + * @var int + */ + protected $_origin = Stylesheet::ORIG_AUTHOR; + + /** + * The computed bottom spacing + * + * @var float|string|null + */ + private $_computed_bottom_spacing = null; + + /** + * @var bool|null + */ + private $has_border_radius_cache = null; + + /** + * @var array|null + */ + private $resolved_border_radius = null; + + /** + * @var FontMetrics + */ + private $fontMetrics; + + /** + * @param Stylesheet $stylesheet The stylesheet the style is associated with. + * @param int $origin + */ + public function __construct(Stylesheet $stylesheet, int $origin = Stylesheet::ORIG_AUTHOR) + { + $this->fontMetrics = $stylesheet->getFontMetrics(); + + $this->_stylesheet = $stylesheet; + $this->_media_queries = []; + $this->_origin = $origin; + $this->parent_style = null; + + if (!isset(self::$_defaults)) { + + // Shorthand + $d =& self::$_defaults; + + // All CSS 2.1 properties, and their default values + // Some properties are specified with their computed value for + // efficiency; this only works if the computed value is not + // dependent on another property + $d["azimuth"] = "center"; + $d["background_attachment"] = "scroll"; + $d["background_color"] = "transparent"; + $d["background_image"] = "none"; + $d["background_image_resolution"] = "normal"; + $d["background_position"] = ["0%", "0%"]; + $d["background_repeat"] = "repeat"; + $d["background"] = ""; + $d["border_collapse"] = "separate"; + $d["border_color"] = ""; + $d["border_spacing"] = [0.0, 0.0]; + $d["border_style"] = ""; + $d["border_top"] = ""; + $d["border_right"] = ""; + $d["border_bottom"] = ""; + $d["border_left"] = ""; + $d["border_top_color"] = "currentcolor"; + $d["border_right_color"] = "currentcolor"; + $d["border_bottom_color"] = "currentcolor"; + $d["border_left_color"] = "currentcolor"; + $d["border_top_style"] = "none"; + $d["border_right_style"] = "none"; + $d["border_bottom_style"] = "none"; + $d["border_left_style"] = "none"; + $d["border_top_width"] = "medium"; + $d["border_right_width"] = "medium"; + $d["border_bottom_width"] = "medium"; + $d["border_left_width"] = "medium"; + $d["border_width"] = ""; + $d["border_bottom_left_radius"] = 0.0; + $d["border_bottom_right_radius"] = 0.0; + $d["border_top_left_radius"] = 0.0; + $d["border_top_right_radius"] = 0.0; + $d["border_radius"] = ""; + $d["border"] = ""; + $d["bottom"] = "auto"; + $d["caption_side"] = "top"; + $d["clear"] = "none"; + $d["clip"] = "auto"; + $d["color"] = "#000000"; + $d["content"] = "normal"; + $d["counter_increment"] = "none"; + $d["counter_reset"] = "none"; + $d["cue_after"] = "none"; + $d["cue_before"] = "none"; + $d["cue"] = ""; + $d["cursor"] = "auto"; + $d["direction"] = "ltr"; + $d["display"] = "inline"; + $d["elevation"] = "level"; + $d["empty_cells"] = "show"; + $d["float"] = "none"; + $d["font_family"] = $stylesheet->get_dompdf()->getOptions()->getDefaultFont(); + $d["font_size"] = "medium"; + $d["font_style"] = "normal"; + $d["font_variant"] = "normal"; + $d["font_weight"] = "normal"; + $d["font"] = ""; + $d["height"] = "auto"; + $d["image_resolution"] = "normal"; + $d["inset"] = ""; + $d["left"] = "auto"; + $d["letter_spacing"] = "normal"; + $d["line_height"] = "normal"; + $d["list_style_image"] = "none"; + $d["list_style_position"] = "outside"; + $d["list_style_type"] = "disc"; + $d["list_style"] = ""; + $d["margin_right"] = 0.0; + $d["margin_left"] = 0.0; + $d["margin_top"] = 0.0; + $d["margin_bottom"] = 0.0; + $d["margin"] = ""; + $d["max_height"] = "none"; + $d["max_width"] = "none"; + $d["min_height"] = "auto"; + $d["min_width"] = "auto"; + $d["orphans"] = 2; + $d["outline_color"] = "currentcolor"; // "invert" special color is not supported + $d["outline_style"] = "none"; + $d["outline_width"] = "medium"; + $d["outline_offset"] = 0.0; + $d["outline"] = ""; + $d["overflow"] = "visible"; + $d["overflow_wrap"] = "normal"; + $d["padding_top"] = 0.0; + $d["padding_right"] = 0.0; + $d["padding_bottom"] = 0.0; + $d["padding_left"] = 0.0; + $d["padding"] = ""; + $d["page_break_after"] = "auto"; + $d["page_break_before"] = "auto"; + $d["page_break_inside"] = "auto"; + $d["pause_after"] = "0"; + $d["pause_before"] = "0"; + $d["pause"] = ""; + $d["pitch_range"] = "50"; + $d["pitch"] = "medium"; + $d["play_during"] = "auto"; + $d["position"] = "static"; + $d["quotes"] = "auto"; + $d["richness"] = "50"; + $d["right"] = "auto"; + $d["size"] = "auto"; // @page + $d["speak_header"] = "once"; + $d["speak_numeral"] = "continuous"; + $d["speak_punctuation"] = "none"; + $d["speak"] = "normal"; + $d["speech_rate"] = "medium"; + $d["stress"] = "50"; + $d["table_layout"] = "auto"; + $d["text_align"] = ""; + $d["text_decoration"] = "none"; + $d["text_indent"] = 0.0; + $d["text_transform"] = "none"; + $d["top"] = "auto"; + $d["unicode_bidi"] = "normal"; + $d["vertical_align"] = "baseline"; + $d["visibility"] = "visible"; + $d["voice_family"] = ""; + $d["volume"] = "medium"; + $d["white_space"] = "normal"; + $d["widows"] = 2; + $d["width"] = "auto"; + $d["word_break"] = "normal"; + $d["word_spacing"] = "normal"; + $d["z_index"] = "auto"; + + // CSS3 + $d["opacity"] = 1.0; + $d["background_size"] = ["auto", "auto"]; + $d["transform"] = "none"; + $d["transform_origin"] = "50% 50%"; + + // for @font-face + $d["src"] = ""; + $d["unicode_range"] = ""; + + // vendor-prefixed properties + $d["_dompdf_keep"] = ""; + + // Properties that inherit by default + self::$_inherited = [ + "azimuth", + "background_image_resolution", + "border_collapse", + "border_spacing", + "caption_side", + "color", + "cursor", + "direction", + "elevation", + "empty_cells", + "font_family", + "font_size", + "font_style", + "font_variant", + "font_weight", + "font", + "image_resolution", + "letter_spacing", + "line_height", + "list_style_image", + "list_style_position", + "list_style_type", + "list_style", + "orphans", + "overflow_wrap", + "pitch_range", + "pitch", + "quotes", + "richness", + "speak_header", + "speak_numeral", + "speak_punctuation", + "speak", + "speech_rate", + "stress", + "text_align", + "text_indent", + "text_transform", + "visibility", + "voice_family", + "volume", + "white_space", + "widows", + "word_break", + "word_spacing", + ]; + + // Compute dependent props from dependency map + foreach (self::$_dependency_map as $props) { + foreach ($props as $prop) { + self::$_dependent_props[$prop] = true; + } + } + + // Compute valid display-type lookup table + self::$valid_display_types = [ + "none" => true, + "-dompdf-br" => true, + "-dompdf-image" => true, + "-dompdf-list-bullet" => true, + "-dompdf-page" => true + ]; + foreach (self::BLOCK_LEVEL_TYPES as $val) { + self::$valid_display_types[$val] = true; + } + foreach (self::INLINE_LEVEL_TYPES as $val) { + self::$valid_display_types[$val] = true; + } + foreach (self::TABLE_INTERNAL_TYPES as $val) { + self::$valid_display_types[$val] = true; + } + } + } + + /** + * Clear all non-final used values. + * + * @return void + */ + public function reset(): void + { + foreach (array_keys($this->non_final_used) as $prop) { + unset($this->_props_used[$prop]); + } + + $this->non_final_used = []; + } + + /** + * @param array $media_queries + */ + public function set_media_queries(array $media_queries): void + { + $this->_media_queries = $media_queries; + } + + /** + * @return array + */ + public function get_media_queries(): array + { + return $this->_media_queries; + } + + /** + * @param Frame $frame + */ + public function set_frame(Frame $frame): void + { + $this->_frame = $frame; + } + + /** + * @return Frame|null + */ + public function get_frame(): ?Frame + { + return $this->_frame; + } + + /** + * @param int $origin + */ + public function set_origin(int $origin): void + { + $this->_origin = $origin; + } + + /** + * @return int + */ + public function get_origin(): int + { + return $this->_origin; + } + + /** + * Returns the {@link Stylesheet} the style is associated with. + * + * @return Stylesheet + */ + public function get_stylesheet(): Stylesheet + { + return $this->_stylesheet; + } + + public function is_absolute(): bool + { + $position = $this->__get("position"); + return $position === "absolute" || $position === "fixed"; + } + + public function is_in_flow(): bool + { + $float = $this->__get("float"); + return $float === "none" && !$this->is_absolute(); + } + + /** + * Converts any CSS length value into an absolute length in points. + * + * length_in_pt() takes a single length (e.g. '1em') or an array of + * lengths and returns an absolute length. If an array is passed, then + * the return value is the sum of all elements. If any of the lengths + * provided are "auto" or "none" then that value is returned. + * + * If a reference size is not provided, the current font size is used. + * + * @param float|string|array $length The numeric length (or string measurement) or array of lengths to resolve. + * @param float|null $ref_size An absolute reference size to resolve percentage lengths. + * + * @return float|string + */ + public function length_in_pt($length, ?float $ref_size = null) + { + $font_size = $this->__get("font_size"); + $ref_size = $ref_size ?? $font_size; + + if (!\is_array($length)) { + $length = [$length]; + } + + $ret = 0.0; + + foreach ($length as $l) { + if ($l === "auto" || $l === "none") { + return $l; + } + + // Assume numeric values are already in points + if (is_numeric($l)) { + $ret += (float) $l; + continue; + } + + $val = $this->single_length_in_pt((string) $l, $ref_size, $font_size); + $ret += $val ?? 0; + } + + return $ret; + } + + /** + * Convert a length declaration to pt. + * + * @param string $l The length declaration. + * @param float $ref_size Reference size for percentage declarations. + * @param float|null $font_size Font size for resolving font-size relative units. + * + * @return float|null The length in pt, or `null` for invalid declarations. + */ + protected function single_length_in_pt(string $l, float $ref_size = 0, ?float $font_size = null): ?float + { + static $cache = []; + + $font_size = $font_size ?? $this->__get("font_size"); + + $key = "$l/$ref_size/$font_size"; + + if (\array_key_exists($key, $cache)) { + return $cache[$key]; + } + + $number = self::CSS_NUMBER; + $pattern = "/^($number)(.*)?$/"; + + if (!preg_match($pattern, $l, $matches)) { + return null; + } + + $v = (float) $matches[1]; + $unit = mb_strtolower($matches[2]); + + if ($unit === "") { + // Legacy support for unitless values, not covered by spec. Might + // want to restrict this to unitless `0` in the future + $value = $v; + } + + elseif ($unit === "%") { + $value = $v / 100 * $ref_size; + } + + elseif ($unit === "px") { + $dpi = $this->_stylesheet->get_dompdf()->getOptions()->getDpi(); + $value = ($v * 72) / $dpi; + } + + elseif ($unit === "pt") { + $value = $v; + } + + elseif ($unit === "rem") { + $tree = $this->_stylesheet->get_dompdf()->getTree(); + $root_style = $tree !== null ? $tree->get_root()->get_style() : null; + $root_font_size = $root_style === null || $root_style === $this + ? $font_size + : $root_style->__get("font_size"); + $value = $v * $root_font_size; + + // Skip caching if the root style is not available yet, as to avoid + // incorrectly cached values if the root font size is different from + // the default + if ($root_style === null) { + return $value; + } + } + + elseif ($unit === "em") { + $value = $v * $font_size; + } + + elseif ($unit === "cm") { + $value = $v * 72 / 2.54; + } + + elseif ($unit === "mm") { + $value = $v * 72 / 25.4; + } + + elseif ($unit === "ex") { + // FIXME: em:ex ratio? + $value = $v * $font_size / 2; + } + + elseif ($unit === "in") { + $value = $v * 72; + } + + elseif ($unit === "pc") { + $value = $v * 12; + } + + else { + // Invalid or unsupported declaration + $value = null; + } + + return $cache[$key] = $value; + } + + /** + * Resolve inherited property values using the provided parent style or the + * default values, in case no parent style exists. + * + * https://www.w3.org/TR/css-cascade-3/#inheriting + * + * @param Style|null $parent + */ + public function inherit(?Style $parent = null): void + { + $this->parent_style = $parent; + + // Clear the computed font size, as it might depend on the parent + // font size + unset($this->_props_computed["font_size"]); + unset($this->_props_used["font_size"]); + + if ($parent) { + foreach (self::$_inherited as $prop) { + // For properties that inherit by default: When the cascade did + // not result in a value, inherit the parent value. Inheritance + // is handled via the specific sub-properties for shorthands + if (isset($this->_props[$prop]) || isset(self::$_props_shorthand[$prop])) { + continue; + } + + if (isset($parent->_props[$prop])) { + $parent_val = $parent->computed($prop); + + $this->_props[$prop] = $parent_val; + $this->_props_computed[$prop] = $parent_val; + $this->_props_used[$prop] = null; + } + } + } + + foreach ($this->_props as $prop => $val) { + if ($val === "inherit") { + if ($parent && isset($parent->_props[$prop])) { + $parent_val = $parent->computed($prop); + + $this->_props[$prop] = $parent_val; + $this->_props_computed[$prop] = $parent_val; + $this->_props_used[$prop] = null; + } else { + // Parent prop not set, use default + $this->_props[$prop] = self::$_defaults[$prop]; + unset($this->_props_computed[$prop]); + unset($this->_props_used[$prop]); + } + } + } + } + + /** + * Override properties in this style with those in $style + * + * @param Style $style + */ + public function merge(Style $style): void + { + foreach ($style->_props as $prop => $val) { + $important = isset($style->_important_props[$prop]); + + // `!important` declarations take precedence over normal ones + if (!$important && isset($this->_important_props[$prop])) { + continue; + } + + if ($important) { + $this->_important_props[$prop] = true; + } + + $this->_props[$prop] = $val; + + // Copy an existing computed value only for non-dependent + // properties; otherwise it may be invalid for the current style + if (!isset(self::$_dependent_props[$prop]) + && \array_key_exists($prop, $style->_props_computed) + ) { + $this->_props_computed[$prop] = $style->_props_computed[$prop]; + $this->_props_used[$prop] = null; + } else { + unset($this->_props_computed[$prop]); + unset($this->_props_used[$prop]); + } + } + } + + /** + * Clear information about important declarations after the style has been + * finalized during stylesheet loading. + */ + public function clear_important(): void + { + $this->_important_props = []; + } + + /** + * Clear border-radius and bottom-spacing cache as necessary when a given + * property is set. + * + * @param string $prop The property that is set. + */ + protected function clear_cache(string $prop): void + { + // Clear border-radius cache on setting any border-radius + // property + if ($prop === "border_top_left_radius" + || $prop === "border_top_right_radius" + || $prop === "border_bottom_left_radius" + || $prop === "border_bottom_right_radius" + ) { + $this->has_border_radius_cache = null; + $this->resolved_border_radius = null; + } + + // Clear bottom-spacing cache if necessary. Border style can + // disable/enable border calculations + if ($prop === "margin_bottom" + || $prop === "padding_bottom" + || $prop === "border_bottom_width" + || $prop === "border_bottom_style" + ) { + $this->_computed_bottom_spacing = null; + } + } + + /** + * Set a style property from a value declaration. + * + * Setting `$clear_dependencies` to `false` is useful for saving a bit of + * unnecessary work while loading stylesheets. + * + * @param string $prop The property to set. + * @param mixed $val The value declaration or computed value. + * @param bool $important Whether the declaration is important. + * @param bool $clear_dependencies Whether to clear computed values of dependent properties. + */ + public function set_prop(string $prop, $val, bool $important = false, bool $clear_dependencies = true): void + { + $prop = str_replace("-", "_", $prop); + + // Legacy property aliases + if (isset(self::$_props_alias[$prop])) { + $prop = self::$_props_alias[$prop]; + } + + if (!isset(self::$_defaults[$prop])) { + global $_dompdf_warnings; + $_dompdf_warnings[] = "'$prop' is not a recognized CSS property."; + return; + } + + if ($prop !== "content" && \is_string($val) && mb_strpos($val, "url") === false && mb_strlen($val) > 1) { + $val = mb_strtolower(trim(str_replace(["\n", "\t"], [" "], $val))); + } + + if (isset(self::$_props_shorthand[$prop])) { + // Shorthand properties directly set their respective sub-properties + // https://www.w3.org/TR/css-cascade-3/#shorthand + if ($val === "initial" || $val === "inherit" || $val === "unset") { + foreach (self::$_props_shorthand[$prop] as $sub_prop) { + $this->set_prop($sub_prop, $val, $important, $clear_dependencies); + } + } else { + $method = "_set_$prop"; + + if (!isset(self::$_methods_cache[$method])) { + self::$_methods_cache[$method] = method_exists($this, $method); + } + + if (self::$_methods_cache[$method]) { + $values = $this->$method($val); + + if ($values === []) { + return; + } + + // Each missing sub-property is assigned its initial value + // https://www.w3.org/TR/css-cascade-3/#shorthand + foreach (self::$_props_shorthand[$prop] as $sub_prop) { + $sub_val = $values[$sub_prop] ?? self::$_defaults[$sub_prop]; + $this->set_prop($sub_prop, $sub_val, $important, $clear_dependencies); + } + } + } + } else { + // Legacy support for `word-break: break-word` + // https://www.w3.org/TR/css-text-3/#valdef-word-break-break-word + if ($prop === "word_break" && $val === "break-word") { + $val = "normal"; + $this->set_prop("overflow_wrap", "anywhere", $important, $clear_dependencies); + } + + // `!important` declarations take precedence over normal ones + if (!$important && isset($this->_important_props[$prop])) { + return; + } + + if ($important) { + $this->_important_props[$prop] = true; + } + + // https://www.w3.org/TR/css-cascade-3/#inherit-initial + if ($val === "unset") { + $val = \in_array($prop, self::$_inherited, true) + ? "inherit" + : "initial"; + } + + // https://www.w3.org/TR/css-cascade-3/#valdef-all-initial + if ($val === "initial") { + $val = self::$_defaults[$prop]; + } + + $computed = $this->compute_prop($prop, $val); + + // Skip invalid declarations + if ($computed === null) { + return; + } + + $this->_props[$prop] = $val; + $this->_props_computed[$prop] = $computed; + $this->_props_used[$prop] = null; + + if ($clear_dependencies) { + // Clear the computed values of any dependent properties, so + // they can be re-computed + if (isset(self::$_dependency_map[$prop])) { + foreach (self::$_dependency_map[$prop] as $dependent) { + unset($this->_props_computed[$dependent]); + unset($this->_props_used[$dependent]); + } + } + + $this->clear_cache($prop); + } + } + } + + /** + * Get the specified value of a style property. + * + * @param string $prop + * + * @return mixed + * @throws Exception + */ + public function get_specified(string $prop) + { + // Legacy property aliases + if (isset(self::$_props_alias[$prop])) { + $prop = self::$_props_alias[$prop]; + } + + if (!isset(self::$_defaults[$prop])) { + throw new Exception("'$prop' is not a recognized CSS property."); + } + + return $this->_props[$prop] ?? self::$_defaults[$prop]; + } + + /** + * Set a style property to its final value. + * + * This sets the specified and used value of the style property to the given + * value, meaning the value is not parsed and thus should have a type + * compatible with the property. + * + * If a shorthand property is specified, all of its sub-properties are set + * to the given value. + * + * @param string $prop The property to set. + * @param mixed $val The final value of the property. + * + * @throws Exception + */ + public function __set(string $prop, $val) + { + // Legacy property aliases + if (isset(self::$_props_alias[$prop])) { + $prop = self::$_props_alias[$prop]; + } + + if (!isset(self::$_defaults[$prop])) { + throw new Exception("'$prop' is not a recognized CSS property."); + } + + if (isset(self::$_props_shorthand[$prop])) { + foreach (self::$_props_shorthand[$prop] as $sub_prop) { + $this->__set($sub_prop, $val); + } + } else { + $this->_props[$prop] = $val; + $this->_props_computed[$prop] = $val; + $this->_props_used[$prop] = $val; + + $this->clear_cache($prop); + } + } + + /** + * Set the used value of a style property. + * + * Used values are cleared on style reset. + * + * If a shorthand property is specified, all of its sub-properties are set + * to the given value. + * + * @param string $prop The property to set. + * @param mixed $val The used value of the property. + * + * @throws Exception + */ + public function set_used(string $prop, $val): void + { + // Legacy property aliases + if (isset(self::$_props_alias[$prop])) { + $prop = self::$_props_alias[$prop]; + } + + if (!isset(self::$_defaults[$prop])) { + throw new Exception("'$prop' is not a recognized CSS property."); + } + + if (isset(self::$_props_shorthand[$prop])) { + foreach (self::$_props_shorthand[$prop] as $sub_prop) { + $this->set_used($sub_prop, $val); + } + } else { + $this->_props_used[$prop] = $val; + $this->non_final_used[$prop] = true; + } + } + + /** + * Get the used or computed value of a style property, depending on whether + * the used value has been determined yet. + * + * @param string $prop + * + * @return mixed + * @throws Exception + */ + public function __get(string $prop) + { + // Legacy property aliases + if (isset(self::$_props_alias[$prop])) { + $prop = self::$_props_alias[$prop]; + } + + if (!isset(self::$_defaults[$prop])) { + throw new Exception("'$prop' is not a recognized CSS property."); + } + + if (isset($this->_props_used[$prop])) { + return $this->_props_used[$prop]; + } + + $method = "_get_$prop"; + + if (!isset(self::$_methods_cache[$method])) { + self::$_methods_cache[$method] = method_exists($this, $method); + } + + if (isset(self::$_props_shorthand[$prop])) { + // Don't cache shorthand values, always use getter. If no dedicated + // getter exists, use a simple fallback getter concatenating all + // sub-property values + if (self::$_methods_cache[$method]) { + return $this->$method(); + } else { + return implode(" ", array_map(function ($sub_prop) { + $val = $this->__get($sub_prop); + return \is_array($val) ? implode(" ", $val) : $val; + }, self::$_props_shorthand[$prop])); + } + } else { + $computed = $this->computed($prop); + $used = self::$_methods_cache[$method] + ? $this->$method($computed) + : $computed; + + $this->_props_used[$prop] = $used; + return $used; + } + } + + /** + * @param string $prop The property to compute. + * @param mixed $val The value to compute. Non-string values are treated as already computed. + * + * @return mixed The computed value. + */ + protected function compute_prop(string $prop, $val) + { + // During style merge, the parent style is not available yet, so + // temporarily use the initial value for `inherit` properties. The + // keyword is properly resolved during inheritance + if ($val === "inherit") { + $val = self::$_defaults[$prop]; + } + + // Check for values which are already computed + if (!\is_string($val)) { + return $val; + } + + $method = "_compute_$prop"; + + if (!isset(self::$_methods_cache[$method])) { + self::$_methods_cache[$method] = method_exists($this, $method); + } + + if (self::$_methods_cache[$method]) { + return $this->$method($val); + } elseif ($val !== "") { + return $val; + } else { + return null; + } + } + + /** + * Get the computed value for the given property. + * + * @param string $prop The property to get the computed value of. + * + * @return mixed The computed value. + */ + protected function computed(string $prop) + { + if (!\array_key_exists($prop, $this->_props_computed)) { + $val = $this->_props[$prop] ?? self::$_defaults[$prop]; + $computed = $this->compute_prop($prop, $val); + + $this->_props_computed[$prop] = $computed; + } + + return $this->_props_computed[$prop]; + } + + /** + * @param float $cbw The width of the containing block. + * @return float|string|null + */ + public function computed_bottom_spacing(float $cbw) + { + // Caching the bottom spacing independently of the given width is a bit + // iffy, but should be okay, as the containing block should only + // potentially change after a page break, and the style is reset in that + // case + if ($this->_computed_bottom_spacing !== null) { + return $this->_computed_bottom_spacing; + } + return $this->_computed_bottom_spacing = $this->length_in_pt( + [ + $this->margin_bottom, + $this->padding_bottom, + $this->border_bottom_width + ], + $cbw + ); + } + + /** + * Returns an `array(r, g, b, "r" => r, "g" => g, "b" => b, "alpha" => alpha, "hex" => "#rrggbb")` + * based on the provided CSS color value. + * + * @param string|null $color + * @return array|string|null + */ + public function munge_color($color) + { + return Color::parse($color); + } + + /** + * @return string + */ + public function get_font_family_raw(): string + { + return trim($this->_props["font_family"], " \t\n\r\x0B\"'"); + } + + /** + * Getter for the `font-family` CSS property. + * + * Uses the {@link FontMetrics} class to resolve the font family into an + * actual font file. + * + * @param string $computed + * @return string + * @throws Exception + * + * @link https://www.w3.org/TR/CSS21/fonts.html#propdef-font-family + */ + protected function _get_font_family($computed): string + { + //TODO: we should be using the calculated prop rather than perform the entire family parsing operation again + + $fontMetrics = $this->getFontMetrics(); + $DEBUGCSS = $this->_stylesheet->get_dompdf()->getOptions()->getDebugCss(); + + // Select the appropriate font. First determine the subtype, then check + // the specified font-families for a candidate. + + // Resolve font-weight + $weight = $this->__get("font_weight"); + if ($weight === 'bold') { + $weight = 700; + } elseif (preg_match('/^[0-9]+$/', $weight, $match)) { + $weight = (int)$match[0]; + } else { + $weight = 400; + } + + // Resolve font-style + $font_style = $this->__get("font_style"); + $subtype = $fontMetrics->getType($weight . ' ' . $font_style); + + $families = preg_split("/\s*,\s*/", $computed); + + $font = null; + foreach ($families as $family) { + //remove leading and trailing string delimiters, e.g. on font names with spaces; + //remove leading and trailing whitespace + $family = trim($family, " \t\n\r\x0B\"'"); + if ($DEBUGCSS) { + print '(' . $family . ')'; + } + $font = $fontMetrics->getFont($family, $subtype); + + if ($font) { + if ($DEBUGCSS) { + print "
[get_font_family:";
+                    print '(' . $computed . '.' . $font_style . '.' . $weight . '.' . $subtype . ')';
+                    print '(' . $font . ")get_font_family]\n
"; + } + return $font; + } + } + + $family = null; + if ($DEBUGCSS) { + print '(default)'; + } + $font = $fontMetrics->getFont($family, $subtype); + + if ($font) { + if ($DEBUGCSS) { + print '(' . $font . ")get_font_family]\n"; + } + return $font; + } + + throw new Exception("Unable to find a suitable font replacement for: '" . $computed . "'"); + } + + /** + * @param float|string $computed + * @return float + * + * @link https://www.w3.org/TR/css-text-4/#word-spacing-property + */ + protected function _get_word_spacing($computed) + { + if (\is_float($computed)) { + return $computed; + } + + // Resolve percentage values + $font_size = $this->__get("font_size"); + return $this->single_length_in_pt($computed, $font_size); + } + + /** + * @param float|string $computed + * @return float + * + * @link https://www.w3.org/TR/css-text-4/#letter-spacing-property + */ + protected function _get_letter_spacing($computed) + { + if (\is_float($computed)) { + return $computed; + } + + // Resolve percentage values + $font_size = $this->__get("font_size"); + return $this->single_length_in_pt($computed, $font_size); + } + + /** + * @param float|string $computed + * @return float + * + * @link https://www.w3.org/TR/CSS21/visudet.html#propdef-line-height + */ + protected function _get_line_height($computed) + { + // Lengths have been computed to float, number values to string + if (\is_float($computed)) { + return $computed; + } + + $font_size = $this->__get("font_size"); + $factor = $computed === "normal" + ? self::$default_line_height + : (float) $computed; + + return $factor * $font_size; + } + + /** + * @param string $computed + * @param bool $current_is_parent + * + * @return array|string + */ + protected function get_color_value($computed, bool $current_is_parent = false) + { + if ($computed === "currentcolor") { + // https://www.w3.org/TR/css-color-4/#resolving-other-colors + if ($current_is_parent) { + // Use the `color` value from the parent for the `color` + // property itself + return isset($this->parent_style) + ? $this->parent_style->__get("color") + : $this->munge_color(self::$_defaults["color"]); + } + + return $this->__get("color"); + } + + return $this->munge_color($computed) ?? "transparent"; + } + + /** + * Returns the color as an array + * + * The array has the following format: + * `array(r, g, b, "r" => r, "g" => g, "b" => b, "alpha" => alpha, "hex" => "#rrggbb")` + * + * @param string $computed + * @return array|string + * + * @link https://www.w3.org/TR/CSS21/colors.html#propdef-color + */ + protected function _get_color($computed) + { + return $this->get_color_value($computed, true); + } + + /** + * Returns the background color as an array + * + * See {@link Style::_get_color()} for format of the color array. + * + * @param string $computed + * @return array|string + * + * @link https://www.w3.org/TR/CSS21/colors.html#propdef-background-color + */ + protected function _get_background_color($computed) + { + return $this->get_color_value($computed); + } + + /** + * Returns the background image URI, or "none" + * + * @param string $computed + * @return string + * + * @link https://www.w3.org/TR/CSS21/colors.html#propdef-background-image + */ + protected function _get_background_image($computed): string + { + return $this->_stylesheet->resolve_url($computed); + } + + /** + * Returns the border color as an array + * + * See {@link Style::_get_color()} for format of the color array. + * + * @param string $computed + * @return array|string + * + * @link https://www.w3.org/TR/CSS21/box.html#border-color-properties + */ + protected function _get_border_top_color($computed) + { + return $this->get_color_value($computed); + } + + /** + * @param string $computed + * @return array|string + */ + protected function _get_border_right_color($computed) + { + return $this->get_color_value($computed); + } + + /** + * @param string $computed + * @return array|string + */ + protected function _get_border_bottom_color($computed) + { + return $this->get_color_value($computed); + } + + /** + * @param string $computed + * @return array|string + */ + protected function _get_border_left_color($computed) + { + return $this->get_color_value($computed); + } + + /** + * Return an array of all border properties. + * + * The returned array has the following structure: + * + * ``` + * array("top" => array("width" => [border-width], + * "style" => [border-style], + * "color" => [border-color (array)]), + * "bottom" ... ) + * ``` + * + * @return array + */ + public function get_border_properties(): array + { + return [ + "top" => [ + "width" => $this->__get("border_top_width"), + "style" => $this->__get("border_top_style"), + "color" => $this->__get("border_top_color"), + ], + "bottom" => [ + "width" => $this->__get("border_bottom_width"), + "style" => $this->__get("border_bottom_style"), + "color" => $this->__get("border_bottom_color"), + ], + "right" => [ + "width" => $this->__get("border_right_width"), + "style" => $this->__get("border_right_style"), + "color" => $this->__get("border_right_color"), + ], + "left" => [ + "width" => $this->__get("border_left_width"), + "style" => $this->__get("border_left_style"), + "color" => $this->__get("border_left_color"), + ], + ]; + } + + /** + * Return a single border-side property + * + * @param string $side + * @return string + */ + protected function get_border_side(string $side): string + { + $color = $this->__get("border_{$side}_color"); + + return $this->__get("border_{$side}_width") . " " . + $this->__get("border_{$side}_style") . " " . + (\is_array($color) ? $color["hex"] : $color); + } + + /** + * Return full border properties as a string + * + * Border properties are returned just as specified in CSS: + * `[width] [style] [color]` + * e.g. "1px solid blue" + * + * @return string + * + * @link https://www.w3.org/TR/CSS21/box.html#border-shorthand-properties + */ + protected function _get_border_top(): string + { + return $this->get_border_side("top"); + } + + /** + * @return string + */ + protected function _get_border_right(): string + { + return $this->get_border_side("right"); + } + + /** + * @return string + */ + protected function _get_border_bottom(): string + { + return $this->get_border_side("bottom"); + } + + /** + * @return string + */ + protected function _get_border_left(): string + { + return $this->get_border_side("left"); + } + + public function has_border_radius(): bool + { + if (isset($this->has_border_radius_cache)) { + return $this->has_border_radius_cache; + } + + // Use a fixed ref size here. We don't know the border-box width here + // and font size might be 0. Since we are only interested in whether + // there is any border radius at all, this should do + $tl = (float) $this->length_in_pt($this->border_top_left_radius, 12); + $tr = (float) $this->length_in_pt($this->border_top_right_radius, 12); + $br = (float) $this->length_in_pt($this->border_bottom_right_radius, 12); + $bl = (float) $this->length_in_pt($this->border_bottom_left_radius, 12); + + $this->has_border_radius_cache = $tl + $tr + $br + $bl > 0; + return $this->has_border_radius_cache; + } + + /** + * Get the final border-radius values to use. + * + * Percentage values are resolved relative to the width of the border box. + * The border radius is additionally scaled for the given render box, and + * constrained by its width and height. + * + * @param float[] $border_box The border box of the frame. + * @param float[]|null $render_box The box to resolve the border radius for. + * + * @return float[] A 4-tuple of top-left, top-right, bottom-right, and bottom-left radius. + */ + public function resolve_border_radius( + array $border_box, + ?array $render_box = null + ): array { + $render_box = $render_box ?? $border_box; + $use_cache = $render_box === $border_box; + + if ($use_cache && isset($this->resolved_border_radius)) { + return $this->resolved_border_radius; + } + + [$x, $y, $w, $h] = $border_box; + + // Resolve percentages relative to width, as long as we have no support + // for per-axis radii + $tl = (float) $this->length_in_pt($this->border_top_left_radius, $w); + $tr = (float) $this->length_in_pt($this->border_top_right_radius, $w); + $br = (float) $this->length_in_pt($this->border_bottom_right_radius, $w); + $bl = (float) $this->length_in_pt($this->border_bottom_left_radius, $w); + + if ($tl + $tr + $br + $bl > 0) { + [$rx, $ry, $rw, $rh] = $render_box; + + $t_offset = $y - $ry; + $r_offset = $rx + $rw - $x - $w; + $b_offset = $ry + $rh - $y - $h; + $l_offset = $x - $rx; + + if ($tl > 0) { + $tl = max($tl + ($t_offset + $l_offset) / 2, 0); + } + if ($tr > 0) { + $tr = max($tr + ($t_offset + $r_offset) / 2, 0); + } + if ($br > 0) { + $br = max($br + ($b_offset + $r_offset) / 2, 0); + } + if ($bl > 0) { + $bl = max($bl + ($b_offset + $l_offset) / 2, 0); + } + + if ($tl + $bl > $rh) { + $f = $rh / ($tl + $bl); + $tl = $f * $tl; + $bl = $f * $bl; + } + if ($tr + $br > $rh) { + $f = $rh / ($tr + $br); + $tr = $f * $tr; + $br = $f * $br; + } + if ($tl + $tr > $rw) { + $f = $rw / ($tl + $tr); + $tl = $f * $tl; + $tr = $f * $tr; + } + if ($bl + $br > $rw) { + $f = $rw / ($bl + $br); + $bl = $f * $bl; + $br = $f * $br; + } + } + + $values = [$tl, $tr, $br, $bl]; + + if ($use_cache) { + $this->resolved_border_radius = $values; + } + + return $values; + } + + /** + * Returns the outline color as an array + * + * See {@link Style::_get_color()} for format of the color array. + * + * @param string $computed + * @return array|string + * + * @link https://www.w3.org/TR/css-ui-4/#propdef-outline-color + */ + protected function _get_outline_color($computed) + { + return $this->get_color_value($computed); + } + + /** + * @param string $computed + * @return string + * + * @link https://www.w3.org/TR/css-ui-4/#propdef-outline-style + */ + protected function _get_outline_style($computed): string + { + return $computed === "auto" ? "solid" : $computed; + } + + /** + * Return full outline properties as a string + * + * Outline properties are returned just as specified in CSS: + * `[width] [style] [color]` + * e.g. "1px solid blue" + * + * @return string + * + * @link https://www.w3.org/TR/CSS21/box.html#border-shorthand-properties + */ + protected function _get_outline(): string + { + $color = $this->__get("outline_color"); + + return $this->__get("outline_width") . " " . + $this->__get("outline_style") . " " . + (\is_array($color) ? $color["hex"] : $color); + } + + /** + * Returns the list style image URI, or "none" + * + * @param string $computed + * @return string + * + * @link https://www.w3.org/TR/CSS21/generate.html#propdef-list-style-image + */ + protected function _get_list_style_image($computed): string + { + return $this->_stylesheet->resolve_url($computed); + } + + /** + * @param string $value + * @param int $default + * + * @return array|string + */ + protected function parse_counter_prop(string $value, int $default) + { + $ident = self::CSS_IDENTIFIER; + $integer = self::CSS_INTEGER; + $pattern = "/($ident)(?:\s+($integer))?/"; + + if (!preg_match_all($pattern, $value, $matches, PREG_SET_ORDER)) { + return "none"; + } + + $counters = []; + + foreach ($matches as $match) { + $counter = $match[1]; + $value = isset($match[2]) ? (int) $match[2] : $default; + $counters[$counter] = $value; + } + + return $counters; + } + + /** + * @param string $computed + * @return array|string + * + * @link https://www.w3.org/TR/CSS21/generate.html#propdef-counter-increment + */ + protected function _get_counter_increment($computed) + { + if ($computed === "none") { + return $computed; + } + + return $this->parse_counter_prop($computed, 1); + } + + /** + * @param string $computed + * @return array|string + * + * @link https://www.w3.org/TR/CSS21/generate.html#propdef-counter-reset + */ + protected function _get_counter_reset($computed) + { + if ($computed === "none") { + return $computed; + } + + return $this->parse_counter_prop($computed, 0); + } + + /** + * @param string $computed + * @return string[]|string + * + * @link https://www.w3.org/TR/CSS21/generate.html#propdef-content + */ + protected function _get_content($computed) + { + if ($computed === "normal" || $computed === "none") { + return $computed; + } + + return $this->parse_property_value($computed); + } + + /*==============================*/ + + /** + * Parse a property value into its components. + * + * @param string $value + * + * @return string[] + */ + protected function parse_property_value(string $value): array + { + $ident = self::CSS_IDENTIFIER; + $number = self::CSS_NUMBER; + + $pattern = "/\n" . + "\s* \" ( (?:[^\"]|\\\\[\"])* ) (?munge_color($val) + : $val; + + if ($munged_color === null) { + return null; + } + + return \is_array($munged_color) ? $munged_color["hex"] : $munged_color; + } + + /** + * @param string $val + * @return int|null + */ + protected function compute_integer(string $val): ?int + { + $integer = self::CSS_INTEGER; + return preg_match("/^$integer$/", $val) + ? (int) $val + : null; + } + + /** + * @param string $val + * @return float|null + */ + protected function compute_length(string $val): ?float + { + return mb_strpos($val, "%") === false + ? $this->single_length_in_pt($val) + : null; + } + + /** + * @param string $val + * @return float|null + */ + protected function compute_length_positive(string $val): ?float + { + $computed = $this->compute_length($val); + return $computed !== null && $computed >= 0 ? $computed : null; + } + + /** + * @param string $val + * @return float|string|null + */ + protected function compute_length_percentage(string $val) + { + // Compute with a fixed ref size to decide whether percentage values + // are valid + $computed = $this->single_length_in_pt($val, 12); + + if ($computed === null) { + return null; + } + + // Retain valid percentage declarations + return mb_strpos($val, "%") === false ? $computed : $val; + } + + /** + * @param string $val + * @return float|string|null + */ + protected function compute_length_percentage_positive(string $val) + { + // Compute with a fixed ref size to decide whether percentage values + // are valid + $computed = $this->single_length_in_pt($val, 12); + + if ($computed === null || $computed < 0) { + return null; + } + + // Retain valid percentage declarations + return mb_strpos($val, "%") === false ? $computed : $val; + } + + /** + * @param string $val + * @param string $style_prop The corresponding border-/outline-style property. + * + * @return float|null + * + * @link https://www.w3.org/TR/css-backgrounds-3/#typedef-line-width + */ + protected function compute_line_width(string $val, string $style_prop): ?float + { + // Border-width keywords + if ($val === "thin") { + $computed = 0.5; + } elseif ($val === "medium") { + $computed = 1.5; + } elseif ($val === "thick") { + $computed = 2.5; + } else { + $computed = $this->compute_length_positive($val); + } + + if ($computed === null) { + return null; + } + + // Computed width is 0 if the line style is `none` or `hidden` + // https://www.w3.org/TR/css-backgrounds-3/#border-width + // https://www.w3.org/TR/css-ui-4/#outline-width + $lineStyle = $this->__get($style_prop); + $hasLineStyle = $lineStyle !== "none" && $lineStyle !== "hidden"; + + return $hasLineStyle ? $computed : 0.0; + } + + /** + * @param string $val + * @return string|null + */ + protected function compute_border_style(string $val): ?string + { + return \in_array($val, self::BORDER_STYLES, true) ? $val : null; + } + + /** + * Parse a property value with 1 to 4 components into 4 values, as required + * by shorthand properties such as `margin`, `padding`, and `border-radius`. + * + * @param string $prop The shorthand property with exactly 4 sub-properties to handle. + * @param string $value The property value to parse. + * + * @return string[] + */ + protected function set_quad_shorthand(string $prop, string $value): array + { + $v = $this->parse_property_value($value); + + switch (\count($v)) { + case 1: + $values = [$v[0], $v[0], $v[0], $v[0]]; + break; + case 2: + $values = [$v[0], $v[1], $v[0], $v[1]]; + break; + case 3: + $values = [$v[0], $v[1], $v[2], $v[1]]; + break; + case 4: + $values = [$v[0], $v[1], $v[2], $v[3]]; + break; + default: + return []; + } + + return array_combine(self::$_props_shorthand[$prop], $values); + } + + /*======================*/ + + /** + * @link https://www.w3.org/TR/CSS21/visuren.html#display-prop + */ + protected function _compute_display(string $val) + { + // Make sure that common valid, but unsupported display types have an + // appropriate fallback display type + switch ($val) { + case "flow-root": + case "flex": + case "grid": + case "table-caption": + $val = "block"; + break; + case "inline-flex": + case "inline-grid": + $val = "inline-block"; + break; + } + + if (!isset(self::$valid_display_types[$val])) { + return null; + } + + // https://www.w3.org/TR/CSS21/visuren.html#dis-pos-flo + if ($this->is_in_flow()) { + return $val; + } else { + switch ($val) { + case "inline": + case "inline-block": + // case "table-row-group": + // case "table-header-group": + // case "table-footer-group": + // case "table-row": + // case "table-cell": + // case "table-column-group": + // case "table-column": + // case "table-caption": + return "block"; + case "inline-table": + return "table"; + default: + return $val; + } + } + } + + /** + * @link https://www.w3.org/TR/CSS21/colors.html#propdef-color + */ + protected function _compute_color(string $color) + { + return $this->compute_color_value($color); + } + + /** + * @link https://www.w3.org/TR/CSS21/colors.html#propdef-background-color + */ + protected function _compute_background_color(string $color) + { + return $this->compute_color_value($color); + } + + /** + * @link https://www.w3.org/TR/CSS21/colors.html#propdef-background-image + */ + protected function _compute_background_image(string $val) + { + $parsed_val = $this->_stylesheet->resolve_url($val); + + if ($parsed_val === "none") { + return "none"; + } else { + return "url($parsed_val)"; + } + } + + /** + * @link https://www.w3.org/TR/CSS21/colors.html#propdef-background-repeat + */ + protected function _compute_background_repeat(string $val) + { + $keywords = ["repeat", "repeat-x", "repeat-y", "no-repeat"]; + return \in_array($val, $keywords, true) ? $val : null; + } + + /** + * @link https://www.w3.org/TR/CSS21/colors.html#propdef-background-attachment + */ + protected function _compute_background_attachment(string $val) + { + $keywords = ["scroll", "fixed"]; + return \in_array($val, $keywords, true) ? $val : null; + } + + /** + * @link https://www.w3.org/TR/CSS21/colors.html#propdef-background-position + */ + protected function _compute_background_position(string $val) + { + $parts = preg_split("/\s+/", $val); + + if (\count($parts) > 2) { + return null; + } + + switch ($parts[0]) { + case "left": + $x = "0%"; + break; + + case "right": + $x = "100%"; + break; + + case "top": + $y = "0%"; + break; + + case "bottom": + $y = "100%"; + break; + + case "center": + $x = "50%"; + $y = "50%"; + break; + + default: + $x = $parts[0]; + break; + } + + if (isset($parts[1])) { + switch ($parts[1]) { + case "left": + $x = "0%"; + break; + + case "right": + $x = "100%"; + break; + + case "top": + $y = "0%"; + break; + + case "bottom": + $y = "100%"; + break; + + case "center": + if ($parts[0] === "left" || $parts[0] === "right" || $parts[0] === "center") { + $y = "50%"; + } else { + $x = "50%"; + } + break; + + default: + $y = $parts[1]; + break; + } + } else { + $y = "50%"; + } + + if (!isset($x)) { + $x = "0%"; + } + + if (!isset($y)) { + $y = "0%"; + } + + return [$x, $y]; + } + + /** + * Compute `background-size`. + * + * Computes to one of the following values: + * * `cover` + * * `contain` + * * `[width, height]`, each being a length, percentage, or `auto` + * + * @link https://www.w3.org/TR/css-backgrounds-3/#background-size + */ + protected function _compute_background_size(string $val) + { + if ($val === "cover" || $val === "contain") { + return $val; + } + + $parts = preg_split("/\s+/", $val); + + if (\count($parts) > 2) { + return null; + } + + $width = $parts[0]; + if ($width !== "auto") { + $width = $this->compute_length_percentage_positive($width); + } + + $height = $parts[1] ?? "auto"; + if ($height !== "auto") { + $height = $this->compute_length_percentage_positive($height); + } + + if ($width === null || $height === null) { + return null; + } + + return [$width, $height]; + } + + /** + * @link https://www.w3.org/TR/css-backgrounds-3/#propdef-background + */ + protected function _set_background(string $value): array + { + $components = $this->parse_property_value($value); + $props = []; + $pos_size = []; + + foreach ($components as $val) { + if ($val === "none" || mb_substr($val, 0, 4) === "url(") { + $props["background_image"] = $val; + } elseif ($val === "scroll" || $val === "fixed") { + $props["background_attachment"] = $val; + } elseif ($val === "repeat" || $val === "repeat-x" || $val === "repeat-y" || $val === "no-repeat") { + $props["background_repeat"] = $val; + } elseif ($this->is_color_value($val)) { + $props["background_color"] = $val; + } else { + $pos_size[] = $val; + } + } + + if (\count($pos_size)) { + // Split value list at "/" + $index = array_search("/", $pos_size, true); + + if ($index !== false) { + $pos = \array_slice($pos_size, 0, $index); + $size = \array_slice($pos_size, $index + 1); + } else { + $pos = $pos_size; + $size = []; + } + + $props["background_position"] = implode(" ", $pos); + + if (\count($size)) { + $props["background_size"] = implode(" ", $size); + } + } + + return $props; + } + + /** + * @link https://www.w3.org/TR/CSS21/fonts.html#propdef-font-size + */ + protected function _compute_font_size(string $size) + { + $parent_font_size = isset($this->parent_style) + ? $this->parent_style->__get("font_size") + : self::$default_font_size; + + switch ($size) { + case "xx-small": + case "x-small": + case "small": + case "medium": + case "large": + case "x-large": + case "xx-large": + $fs = self::$default_font_size * self::$font_size_keywords[$size]; + break; + + case "smaller": + $fs = 8 / 9 * $parent_font_size; + break; + + case "larger": + $fs = 6 / 5 * $parent_font_size; + break; + + default: + $fs = $this->single_length_in_pt($size, $parent_font_size, $parent_font_size); + break; + } + + return $fs; + } + + /** + * @link https://www.w3.org/TR/CSS21/fonts.html#font-boldness + */ + protected function _compute_font_weight(string $weight) + { + $computed_weight = $weight; + + if ($weight === "bolder") { + //TODO: One font weight heavier than the parent element (among the available weights of the font). + $computed_weight = "bold"; + } elseif ($weight === "lighter") { + //TODO: One font weight lighter than the parent element (among the available weights of the font). + $computed_weight = "normal"; + } + + return $computed_weight; + } + + /** + * Handle the `font` shorthand property. + * + * `[ font-style || font-variant || font-weight ] font-size [ / line-height ] font-family` + * + * @link https://www.w3.org/TR/CSS21/fonts.html#font-shorthand + */ + protected function _set_font(string $value): array + { + $components = $this->parse_property_value($value); + $props = []; + + $number = self::CSS_NUMBER; + $unit = "pt|px|pc|rem|em|ex|in|cm|mm|%"; + $sizePattern = "/^(xx-small|x-small|small|medium|large|x-large|xx-large|smaller|larger|$number(?:$unit))$/"; + $sizeIndex = null; + + // Find index of font-size to split the component list + foreach ($components as $i => $val) { + if (preg_match($sizePattern, $val)) { + $sizeIndex = $i; + $props["font_size"] = $val; + break; + } + } + + // `font-size` is mandatory + if ($sizeIndex === null) { + return []; + } + + // `font-style`, `font-variant`, `font-weight` in any order + $styleVariantWeight = \array_slice($components, 0, $sizeIndex); + $stylePattern = "/^(italic|oblique)$/"; + $variantPattern = "/^(small-caps)$/"; + $weightPattern = "/^(bold|bolder|lighter|100|200|300|400|500|600|700|800|900)$/"; + + if (\count($styleVariantWeight) > 3) { + return []; + } + + foreach ($styleVariantWeight as $val) { + if ($val === "normal") { + // Ignore any `normal` value, as it is valid and the initial + // value for all three properties + } elseif (!isset($props["font_style"]) && preg_match($stylePattern, $val)) { + $props["font_style"] = $val; + } elseif (!isset($props["font_variant"]) && preg_match($variantPattern, $val)) { + $props["font_variant"] = $val; + } elseif (!isset($props["font_weight"]) && preg_match($weightPattern, $val)) { + $props["font_weight"] = $val; + } else { + // Duplicates and other values disallowed here + return []; + } + } + + // Optional slash + `line-height` followed by mandatory `font-family` + $lineFamily = \array_slice($components, $sizeIndex + 1); + $hasLineHeight = $lineFamily !== [] && $lineFamily[0] === "/"; + $lineHeight = $hasLineHeight ? \array_slice($lineFamily, 1, 1) : []; + $fontFamily = $hasLineHeight ? \array_slice($lineFamily, 2) : $lineFamily; + $lineHeightPattern = "/^(normal|$number(?:$unit)?)$/"; + + // Missing `font-family` or `line-height` after slash + if ($fontFamily === [] + || ($hasLineHeight && !preg_match($lineHeightPattern, $lineHeight[0])) + ) { + return []; + } + + if ($hasLineHeight) { + $props["line_height"] = $lineHeight[0]; + } + + $props["font_family"] = implode("", $fontFamily); + + return $props; + } + + /** + * Compute `text-align`. + * + * If no alignment is set on the element and the direction is rtl then + * the property is set to "right", otherwise it is set to "left". + * + * @link https://www.w3.org/TR/CSS21/text.html#propdef-text-align + */ + protected function _compute_text_align(string $val) + { + $alignment = $val; + if ($alignment === "") { + $alignment = "left"; + if ($this->__get("direction") === "rtl") { + $alignment = "right"; + } + } + + if (!\in_array($alignment, self::TEXT_ALIGN_KEYWORDS, true)) { + return null; + } + + return $alignment; + } + + /** + * @link https://www.w3.org/TR/css-text-4/#word-spacing-property + */ + protected function _compute_word_spacing(string $val) + { + if ($val === "normal") { + return 0.0; + } + + return $this->compute_length_percentage($val); + } + + /** + * @link https://www.w3.org/TR/css-text-4/#letter-spacing-property + */ + protected function _compute_letter_spacing(string $val) + { + if ($val === "normal") { + return 0.0; + } + + return $this->compute_length_percentage($val); + } + + /** + * @link https://www.w3.org/TR/CSS21/visudet.html#propdef-line-height + */ + protected function _compute_line_height(string $val) + { + if ($val === "normal") { + return $val; + } + + // Compute number values to string and lengths to float (in pt) + if (is_numeric($val)) { + return (string) $val; + } + + $font_size = $this->__get("font_size"); + $computed = $this->single_length_in_pt($val, $font_size); + return $computed !== null && $computed >= 0 ? $computed : null; + } + + /** + * @link https://www.w3.org/TR/css-text-3/#text-indent-property + */ + protected function _compute_text_indent(string $val) + { + return $this->compute_length_percentage($val); + } + + /** + * @link https://www.w3.org/TR/CSS21/page.html#propdef-page-break-before + */ + protected function _compute_page_break_before(string $break) + { + if ($break === "left" || $break === "right") { + $break = "always"; + } + + return $break; + } + + /** + * @link https://www.w3.org/TR/CSS21/page.html#propdef-page-break-after + */ + protected function _compute_page_break_after(string $break) + { + if ($break === "left" || $break === "right") { + $break = "always"; + } + + return $break; + } + + /** + * @link https://www.w3.org/TR/CSS21/visudet.html#propdef-width + */ + protected function _compute_width(string $val) + { + if ($val === "auto") { + return $val; + } + + return $this->compute_length_percentage_positive($val); + } + + /** + * @link https://www.w3.org/TR/CSS21/visudet.html#propdef-height + */ + protected function _compute_height(string $val) + { + if ($val === "auto") { + return $val; + } + + return $this->compute_length_percentage_positive($val); + } + + /** + * @link https://www.w3.org/TR/CSS21/visudet.html#propdef-min-width + */ + protected function _compute_min_width(string $val) + { + // Legacy support for `none`, not covered by spec + if ($val === "auto" || $val === "none") { + return "auto"; + } + + return $this->compute_length_percentage_positive($val); + } + + /** + * @link https://www.w3.org/TR/CSS21/visudet.html#propdef-min-height + */ + protected function _compute_min_height(string $val) + { + // Legacy support for `none`, not covered by spec + if ($val === "auto" || $val === "none") { + return "auto"; + } + + return $this->compute_length_percentage_positive($val); + } + + /** + * @link https://www.w3.org/TR/CSS21/visudet.html#propdef-max-width + */ + protected function _compute_max_width(string $val) + { + // Legacy support for `auto`, not covered by spec + if ($val === "none" || $val === "auto") { + return "none"; + } + + return $this->compute_length_percentage_positive($val); + } + + /** + * @link https://www.w3.org/TR/CSS21/visudet.html#propdef-max-height + */ + protected function _compute_max_height(string $val) + { + // Legacy support for `auto`, not covered by spec + if ($val === "none" || $val === "auto") { + return "none"; + } + + return $this->compute_length_percentage_positive($val); + } + + /** + * @link https://www.w3.org/TR/css-position-3/#inset-properties + * @link https://www.w3.org/TR/css-position-3/#propdef-inset + */ + protected function _set_inset(string $val): array + { + return $this->set_quad_shorthand("inset", $val); + } + + /** + * @param string $val + * @return float|string|null + */ + protected function compute_box_inset(string $val) + { + if ($val === "auto") { + return $val; + } + + return $this->compute_length_percentage($val); + } + + protected function _compute_top(string $val) + { + return $this->compute_box_inset($val); + } + + protected function _compute_right(string $val) + { + return $this->compute_box_inset($val); + } + + protected function _compute_bottom(string $val) + { + return $this->compute_box_inset($val); + } + + protected function _compute_left(string $val) + { + return $this->compute_box_inset($val); + } + + /** + * @link https://www.w3.org/TR/CSS21/box.html#margin-properties + * @link https://www.w3.org/TR/CSS21/box.html#propdef-margin + */ + protected function _set_margin(string $val): array + { + return $this->set_quad_shorthand("margin", $val); + } + + /** + * @param string $val + * @return float|string|null + */ + protected function compute_margin(string $val) + { + // Legacy support for `none` keyword, not covered by spec + if ($val === "none") { + return 0.0; + } + + if ($val === "auto") { + return $val; + } + + return $this->compute_length_percentage($val); + } + + protected function _compute_margin_top(string $val) + { + return $this->compute_margin($val); + } + + protected function _compute_margin_right(string $val) + { + return $this->compute_margin($val); + } + + protected function _compute_margin_bottom(string $val) + { + return $this->compute_margin($val); + } + + protected function _compute_margin_left(string $val) + { + return $this->compute_margin($val); + } + + /** + * @link https://www.w3.org/TR/CSS21/box.html#padding-properties + * @link https://www.w3.org/TR/CSS21/box.html#propdef-padding + */ + protected function _set_padding(string $val): array + { + return $this->set_quad_shorthand("padding", $val); + } + + /** + * @param string $val + * @return float|string|null + */ + protected function compute_padding(string $val) + { + // Legacy support for `none` keyword, not covered by spec + if ($val === "none") { + return 0.0; + } + + return $this->compute_length_percentage_positive($val); + } + + protected function _compute_padding_top(string $val) + { + return $this->compute_padding($val); + } + + protected function _compute_padding_right(string $val) + { + return $this->compute_padding($val); + } + + protected function _compute_padding_bottom(string $val) + { + return $this->compute_padding($val); + } + + protected function _compute_padding_left(string $val) + { + return $this->compute_padding($val); + } + + /** + * @param string $value `width || style || color` + * @param string[] $styles The list of border styles to accept. + * + * @return array Array of `[width, style, color]`, or `null` if the declaration is invalid. + */ + protected function parse_border_side(string $value, array $styles = self::BORDER_STYLES): ?array + { + $components = $this->parse_property_value($value); + $width = null; + $style = null; + $color = null; + + foreach ($components as $val) { + if ($style === null && \in_array($val, $styles, true)) { + $style = $val; + } elseif ($color === null && $this->is_color_value($val)) { + $color = $val; + } elseif ($width === null) { + // Assume width + $width = $val; + } else { + // Duplicates are not allowed + return null; + } + } + + return [$width, $style, $color]; + } + + /** + * @link https://www.w3.org/TR/CSS21/box.html#border-properties + * @link https://www.w3.org/TR/CSS21/box.html#propdef-border + */ + protected function _set_border(string $value): array + { + $values = $this->parse_border_side($value); + + if ($values === null) { + return []; + } + + return array_merge( + array_combine(self::$_props_shorthand["border_top"], $values), + array_combine(self::$_props_shorthand["border_right"], $values), + array_combine(self::$_props_shorthand["border_bottom"], $values), + array_combine(self::$_props_shorthand["border_left"], $values) + ); + } + + /** + * @param string $prop + * @param string $value + * @return array + */ + protected function set_border_side(string $prop, string $value): array + { + $values = $this->parse_border_side($value); + + if ($values === null) { + return []; + } + + return array_combine(self::$_props_shorthand[$prop], $values); + } + + protected function _set_border_top(string $val): array + { + return $this->set_border_side("border_top", $val); + } + + protected function _set_border_right(string $val): array + { + return $this->set_border_side("border_right", $val); + } + + protected function _set_border_bottom(string $val): array + { + return $this->set_border_side("border_bottom", $val); + } + + protected function _set_border_left(string $val): array + { + return $this->set_border_side("border_left", $val); + } + + /** + * @link https://www.w3.org/TR/CSS21/box.html#propdef-border-color + */ + protected function _set_border_color(string $val): array + { + return $this->set_quad_shorthand("border_color", $val); + } + + protected function _compute_border_top_color(string $val) + { + return $this->compute_color_value($val); + } + + protected function _compute_border_right_color(string $val) + { + return $this->compute_color_value($val); + } + + protected function _compute_border_bottom_color(string $val) + { + return $this->compute_color_value($val); + } + + protected function _compute_border_left_color(string $val) + { + return $this->compute_color_value($val); + } + + /** + * @link https://www.w3.org/TR/CSS21/box.html#propdef-border-style + */ + protected function _set_border_style(string $val): array + { + return $this->set_quad_shorthand("border_style", $val); + } + + protected function _compute_border_top_style(string $val) + { + return $this->compute_border_style($val); + } + + protected function _compute_border_right_style(string $val) + { + return $this->compute_border_style($val); + } + + protected function _compute_border_bottom_style(string $val) + { + return $this->compute_border_style($val); + } + + protected function _compute_border_left_style(string $val) + { + return $this->compute_border_style($val); + } + + /** + * @link https://www.w3.org/TR/CSS21/box.html#propdef-border-width + */ + protected function _set_border_width(string $val): array + { + return $this->set_quad_shorthand("border_width", $val); + } + + protected function _compute_border_top_width(string $val) + { + return $this->compute_line_width($val, "border_top_style"); + } + + protected function _compute_border_right_width(string $val) + { + return $this->compute_line_width($val, "border_right_style"); + } + + protected function _compute_border_bottom_width(string $val) + { + return $this->compute_line_width($val, "border_bottom_style"); + } + + protected function _compute_border_left_width(string $val) + { + return $this->compute_line_width($val, "border_left_style"); + } + + /** + * @link https://www.w3.org/TR/css-backgrounds-3/#corners + * @link https://www.w3.org/TR/css-backgrounds-3/#propdef-border-radius + */ + protected function _set_border_radius(string $val): array + { + return $this->set_quad_shorthand("border_radius", $val); + } + + protected function _compute_border_top_left_radius(string $val) + { + return $this->compute_length_percentage_positive($val); + } + + protected function _compute_border_top_right_radius(string $val) + { + return $this->compute_length_percentage_positive($val); + } + + protected function _compute_border_bottom_right_radius(string $val) + { + return $this->compute_length_percentage_positive($val); + } + + protected function _compute_border_bottom_left_radius(string $val) + { + return $this->compute_length_percentage_positive($val); + } + + /** + * @link https://www.w3.org/TR/css-ui-4/#outline-props + * @link https://www.w3.org/TR/css-ui-4/#propdef-outline + */ + protected function _set_outline(string $value): array + { + $values = $this->parse_border_side($value, self::OUTLINE_STYLES); + + if ($values === null) { + return []; + } + + return array_combine(self::$_props_shorthand["outline"], $values); + } + + protected function _compute_outline_color(string $val) + { + return $this->compute_color_value($val); + } + + protected function _compute_outline_style(string $val) + { + return \in_array($val, self::OUTLINE_STYLES, true) ? $val : null; + } + + protected function _compute_outline_width(string $val) + { + return $this->compute_line_width($val, "outline_style"); + } + + /** + * @link https://www.w3.org/TR/css-ui-4/#propdef-outline-offset + */ + protected function _compute_outline_offset(string $val) + { + return $this->compute_length($val); + } + + /** + * Compute `border-spacing` to two lengths of the form + * `[horizontal, vertical]`. + * + * @link https://www.w3.org/TR/CSS21/tables.html#propdef-border-spacing + */ + protected function _compute_border_spacing(string $val) + { + $parts = preg_split("/\s+/", $val); + + if (\count($parts) > 2) { + return null; + } + + $h = $this->compute_length_positive($parts[0]); + $v = isset($parts[1]) + ? $this->compute_length_positive($parts[1]) + : $h; + + if ($h === null || $v === null) { + return null; + } + + return [$h, $v]; + } + + /** + * @link https://www.w3.org/TR/CSS21/generate.html#propdef-list-style-image + */ + protected function _compute_list_style_image(string $val) + { + $parsed_val = $this->_stylesheet->resolve_url($val); + + if ($parsed_val === "none") { + return "none"; + } else { + return "url($parsed_val)"; + } + } + + /** + * @link https://www.w3.org/TR/CSS21/generate.html#propdef-list-style + */ + protected function _set_list_style(string $value): array + { + static $positions = ["inside", "outside"]; + static $types = [ + "disc", "circle", "square", + "decimal-leading-zero", "decimal", "1", + "lower-roman", "upper-roman", "a", "A", + "lower-greek", + "lower-latin", "upper-latin", + "lower-alpha", "upper-alpha", + "armenian", "georgian", "hebrew", + "cjk-ideographic", "hiragana", "katakana", + "hiragana-iroha", "katakana-iroha", "none" + ]; + + $components = $this->parse_property_value($value); + $props = []; + + foreach ($components as $val) { + /* https://www.w3.org/TR/CSS21/generate.html#list-style + * A value of 'none' for the 'list-style' property sets both 'list-style-type' and 'list-style-image' to 'none' + */ + if ($val === "none") { + $props["list_style_type"] = $val; + $props["list_style_image"] = $val; + continue; + } + + //On setting or merging or inheriting list_style_image as well as list_style_type, + //and url exists, then url has precedence, otherwise fall back to list_style_type + //Firefox is wrong here (list_style_image gets overwritten on explicit list_style_type) + //Internet Explorer 7/8 and dompdf is right. + + if (mb_substr($val, 0, 4) === "url(") { + $props["list_style_image"] = $val; + continue; + } + + if (\in_array($val, $types, true)) { + $props["list_style_type"] = $val; + } elseif (\in_array($val, $positions, true)) { + $props["list_style_position"] = $val; + } + } + + return $props; + } + + /** + * @link https://www.w3.org/TR/css-page-3/#page-size-prop + */ + protected function _compute_size(string $val) + { + if ($val === "auto") { + return $val; + } + + $parts = $this->parse_property_value($val); + $count = \count($parts); + + if ($count === 0 || $count > 3) { + return null; + } + + $size = null; + $orientation = null; + $lengths = []; + + foreach ($parts as $part) { + if ($size === null && isset(CPDF::$PAPER_SIZES[$part])) { + $size = $part; + } elseif ($orientation === null && ($part === "portrait" || $part === "landscape")) { + $orientation = $part; + } else { + $lengths[] = $part; + } + } + + if ($size !== null && $lengths !== []) { + return null; + } + + if ($size !== null) { + // Standard paper size + [$l1, $l2] = \array_slice(CPDF::$PAPER_SIZES[$size], 2, 2); + } elseif ($lengths === []) { + // Orientation only, use default paper size + $dims = $this->_stylesheet->get_dompdf()->getPaperSize(); + [$l1, $l2] = \array_slice($dims, 2, 2); + } else { + // Custom paper size + $l1 = $this->compute_length_positive($lengths[0]); + $l2 = isset($lengths[1]) ? $this->compute_length_positive($lengths[1]) : $l1; + + if ($l1 === null || $l2 === null) { + return null; + } + } + + if (($orientation === "portrait" && $l1 > $l2) + || ($orientation === "landscape" && $l2 > $l1) + ) { + return [$l2, $l1]; + } + + return [$l1, $l2]; + } + + /** + * @param string $computed + * @return array + * + * @link https://www.w3.org/TR/css-transforms-1/#transform-property + */ + protected function _get_transform($computed) + { + //TODO: should be handled in setter (lengths set to absolute) + + $number = "\s*([^,\s]+)\s*"; + $tr_value = "\s*([^,\s]+)\s*"; + $angle = "\s*([^,\s]+(?:deg|rad)?)\s*"; + + if (!preg_match_all("/[a-z]+\([^\)]+\)/i", $computed, $parts, PREG_SET_ORDER)) { + return []; + } + + $functions = [ + //"matrix" => "\($number,$number,$number,$number,$number,$number\)", + + "translate" => "\($tr_value(?:,$tr_value)?\)", + "translateX" => "\($tr_value\)", + "translateY" => "\($tr_value\)", + + "scale" => "\($number(?:,$number)?\)", + "scaleX" => "\($number\)", + "scaleY" => "\($number\)", + + "rotate" => "\($angle\)", + + "skew" => "\($angle(?:,$angle)?\)", + "skewX" => "\($angle\)", + "skewY" => "\($angle\)", + ]; + + $transforms = []; + + foreach ($parts as $part) { + $t = $part[0]; + + foreach ($functions as $name => $pattern) { + if (preg_match("/$name\s*$pattern/i", $t, $matches)) { + $values = \array_slice($matches, 1); + + switch ($name) { + // units + case "rotate": + case "skew": + case "skewX": + case "skewY": + + foreach ($values as $i => $value) { + if (strpos($value, "rad")) { + $values[$i] = rad2deg((float) $value); + } else { + $values[$i] = (float) $value; + } + } + + switch ($name) { + case "skew": + if (!isset($values[1])) { + $values[1] = 0; + } + break; + case "skewX": + $name = "skew"; + $values = [$values[0], 0]; + break; + case "skewY": + $name = "skew"; + $values = [0, $values[0]]; + break; + } + break; + + // units + case "translate": + $values[0] = $this->length_in_pt($values[0], (float)$this->length_in_pt($this->width)); + + if (isset($values[1])) { + $values[1] = $this->length_in_pt($values[1], (float)$this->length_in_pt($this->height)); + } else { + $values[1] = 0; + } + break; + + case "translateX": + $name = "translate"; + $values = [$this->length_in_pt($values[0], (float)$this->length_in_pt($this->width)), 0]; + break; + + case "translateY": + $name = "translate"; + $values = [0, $this->length_in_pt($values[0], (float)$this->length_in_pt($this->height))]; + break; + + // units + case "scale": + if (!isset($values[1])) { + $values[1] = $values[0]; + } + break; + + case "scaleX": + $name = "scale"; + $values = [$values[0], 1.0]; + break; + + case "scaleY": + $name = "scale"; + $values = [1.0, $values[0]]; + break; + } + + $transforms[] = [ + $name, + $values, + ]; + } + } + } + + return $transforms; + } + + /** + * @param string $computed + * @return array + * + * @link https://www.w3.org/TR/css-transforms-1/#transform-origin-property + */ + protected function _get_transform_origin($computed) + { + //TODO: should be handled in setter + + $values = preg_split("/\s+/", $computed); + + $values = array_map(function ($value) { + if (\in_array($value, ["top", "left"], true)) { + return 0; + } elseif (\in_array($value, ["bottom", "right"], true)) { + return "100%"; + } else { + return $value; + } + }, $values); + + if (!isset($values[1])) { + $values[1] = $values[0]; + } + + return $values; + } + + /** + * @param string $val + * @return string|null + */ + protected function parse_image_resolution(string $val): ?string + { + // If exif data could be get: + // $re = '/^\s*(\d+|normal|auto)(?:\s*,\s*(\d+|normal))?\s*$/'; + + $re = '/^\s*(\d+|normal|auto)\s*$/'; + + if (!preg_match($re, $val, $matches)) { + return null; + } + + return $matches[1]; + } + + /** + * auto | normal | dpi + */ + protected function _compute_background_image_resolution(string $val) + { + return $this->parse_image_resolution($val); + } + + /** + * auto | normal | dpi + */ + protected function _compute_image_resolution(string $val) + { + return $this->parse_image_resolution($val); + } + + /** + * @link https://www.w3.org/TR/css-break-3/#propdef-orphans + */ + protected function _compute_orphans(string $val) + { + return $this->compute_integer($val); + } + + /** + * @link https://www.w3.org/TR/css-break-3/#propdef-widows + */ + protected function _compute_widows(string $val) + { + return $this->compute_integer($val); + } + + /** + * @link https://www.w3.org/TR/css-color-4/#propdef-opacity + */ + protected function _compute_opacity(string $val) + { + $number = self::CSS_NUMBER; + $pattern = "/^($number)(%?)$/"; + + if (!preg_match($pattern, $val, $matches)) { + return null; + } + + $v = (float) $matches[1]; + $percent = $matches[2] === "%"; + $opacity = $percent ? ($v / 100) : $v; + + return max(0.0, min($opacity, 1.0)); + } + + /** + * @link https://www.w3.org/TR/CSS21//visuren.html#propdef-z-index + */ + protected function _compute_z_index(string $val) + { + if ($val === "auto") { + return $val; + } + + return $this->compute_integer($val); + } + + /** + * @param FontMetrics $fontMetrics + * @return $this + */ + public function setFontMetrics(FontMetrics $fontMetrics) + { + $this->fontMetrics = $fontMetrics; + return $this; + } + + /** + * @return FontMetrics + */ + public function getFontMetrics() + { + return $this->fontMetrics; + } + + /** + * Generate a string representation of the Style + * + * This dumps the entire property array into a string via print_r. Useful + * for debugging. + * + * @return string + */ + /*DEBUGCSS print: see below additional debugging util*/ + public function __toString(): string + { + $parent_font_size = $this->parent_style + ? $this->parent_style->font_size + : self::$default_font_size; + + return print_r(array_merge(["parent_font_size" => $parent_font_size], + $this->_props), true); + } + + /*DEBUGCSS*/ + public function debug_print(): void + { + $parent_font_size = $this->parent_style + ? $this->parent_style->font_size + : self::$default_font_size; + + print " parent_font_size:" . $parent_font_size . ";\n"; + print " Props [\n"; + print " specified [\n"; + foreach ($this->_props as $prop => $val) { + print ' ' . $prop . ': ' . preg_replace("/\r\n/", ' ', print_r($val, true)); + if (isset($this->_important_props[$prop])) { + print ' !important'; + } + print ";\n"; + } + print " ]\n"; + print " computed [\n"; + foreach ($this->_props_computed as $prop => $val) { + print ' ' . $prop . ': ' . preg_replace("/\r\n/", ' ', print_r($val, true)); + print ";\n"; + } + print " ]\n"; + print " cached [\n"; + foreach ($this->_props_used as $prop => $val) { + print ' ' . $prop . ': ' . preg_replace("/\r\n/", ' ', print_r($val, true)); + print ";\n"; + } + print " ]\n"; + print " ]\n"; + } +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Css/Stylesheet.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Css/Stylesheet.php new file mode 100644 index 0000000..20e019a --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Css/Stylesheet.php @@ -0,0 +1,1689 @@ + 0x00000000, // user agent declarations + self::ORIG_USER => 0x10000000, // user normal declarations + self::ORIG_AUTHOR => 0x30000000, // author normal declarations + ]; + + /** + * Non-CSS presentational hints (i.e. HTML 4 attributes) are handled as if added + * to the beginning of an author stylesheet, i.e. anything in author stylesheets + * should override them. + */ + const SPEC_NON_CSS = 0x20000000; + + /** + * Current dompdf instance + * + * @var Dompdf + */ + private $_dompdf; + + /** + * Array of currently defined styles + * + * @var Style[] + */ + private $_styles; + + /** + * Base protocol of the document being parsed + * Used to handle relative urls. + * + * @var string + */ + private $_protocol = ""; + + /** + * Base hostname of the document being parsed + * Used to handle relative urls. + * + * @var string + */ + private $_base_host = ""; + + /** + * Base path of the document being parsed + * Used to handle relative urls. + * + * @var string + */ + private $_base_path = ""; + + /** + * The styles defined by @page rules + * + * @var array + $child = $child->nextSibling; + } + } else { + $css = $tag->nodeValue; + } + + // Set the base path of the Stylesheet to that of the file being processed + $this->css->set_protocol($this->protocol); + $this->css->set_host($this->baseHost); + $this->css->set_base_path($this->basePath); + + $this->css->load_css($css, Stylesheet::ORIG_AUTHOR); + break; + } + + // Set the base path of the Stylesheet to that of the file being processed + $this->css->set_protocol($this->protocol); + $this->css->set_host($this->baseHost); + $this->css->set_base_path($this->basePath); + } + } + + /** + * @param string $cacheId + * @deprecated + */ + public function enable_caching($cacheId) + { + $this->enableCaching($cacheId); + } + + /** + * Enable experimental caching capability + * + * @param string $cacheId + */ + public function enableCaching($cacheId) + { + $this->cacheId = $cacheId; + } + + /** + * @param string $value + * @return bool + * @deprecated + */ + public function parse_default_view($value) + { + return $this->parseDefaultView($value); + } + + /** + * @param string $value + * @return bool + */ + public function parseDefaultView($value) + { + $valid = ["XYZ", "Fit", "FitH", "FitV", "FitR", "FitB", "FitBH", "FitBV"]; + + $options = preg_split("/\s*,\s*/", trim($value)); + $defaultView = array_shift($options); + + if (!in_array($defaultView, $valid)) { + return false; + } + + $this->setDefaultView($defaultView, $options); + return true; + } + + /** + * Renders the HTML to PDF + */ + public function render() + { + $this->setPhpConfig(); + + $logOutputFile = $this->options->getLogOutputFile(); + if ($logOutputFile) { + if (!file_exists($logOutputFile) && is_writable(dirname($logOutputFile))) { + touch($logOutputFile); + } + + $startTime = microtime(true); + if (is_writable($logOutputFile)) { + ob_start(); + } + } + + $this->processHtml(); + + $this->css->apply_styles($this->tree); + + // @page style rules : size, margins + $pageStyles = $this->css->get_page_styles(); + $basePageStyle = $pageStyles["base"]; + unset($pageStyles["base"]); + + foreach ($pageStyles as $pageStyle) { + $pageStyle->inherit($basePageStyle); + } + + // Set paper size if defined via CSS + if (is_array($basePageStyle->size)) { + [$width, $height] = $basePageStyle->size; + $this->setPaper([0, 0, $width, $height]); + } + + // Create a new canvas instance if the current one does not match the + // desired paper size + $canvasWidth = $this->canvas->get_width(); + $canvasHeight = $this->canvas->get_height(); + $size = $this->getPaperSize(); + + if ($canvasWidth !== $size[2] || $canvasHeight !== $size[3]) { + $this->canvas = CanvasFactory::get_instance($this, $this->paperSize, $this->paperOrientation); + $this->fontMetrics->setCanvas($this->canvas); + } + + $canvas = $this->canvas; + + $root_frame = $this->tree->get_root(); + $root = Factory::decorate_root($root_frame, $this); + foreach ($this->tree as $frame) { + if ($frame === $root_frame) { + continue; + } + Factory::decorate_frame($frame, $this, $root); + } + + // Add meta information + $title = $this->dom->getElementsByTagName("title"); + if ($title->length) { + $canvas->add_info("Title", trim($title->item(0)->nodeValue)); + } + + $metas = $this->dom->getElementsByTagName("meta"); + $labels = [ + "author" => "Author", + "keywords" => "Keywords", + "description" => "Subject", + ]; + /** @var \DOMElement $meta */ + foreach ($metas as $meta) { + $name = mb_strtolower($meta->getAttribute("name")); + $value = trim($meta->getAttribute("content")); + + if (isset($labels[$name])) { + $canvas->add_info($labels[$name], $value); + continue; + } + + if ($name === "dompdf.view" && $this->parseDefaultView($value)) { + $canvas->set_default_view($this->defaultView, $this->defaultViewOptions); + } + } + + $root->set_containing_block(0, 0, $canvas->get_width(), $canvas->get_height()); + $root->set_renderer(new Renderer($this)); + + // This is where the magic happens: + $root->reflow(); + + if (isset($this->callbacks["end_document"])) { + $fs = $this->callbacks["end_document"]; + + foreach ($fs as $f) { + $canvas->page_script($f); + } + } + + // Clean up cached images + if (!$this->options->getDebugKeepTemp()) { + Cache::clear($this->options->getDebugPng()); + } + + global $_dompdf_warnings, $_dompdf_show_warnings; + if ($_dompdf_show_warnings && isset($_dompdf_warnings)) { + echo 'Dompdf Warnings
';
+            foreach ($_dompdf_warnings as $msg) {
+                echo $msg . "\n";
+            }
+
+            if ($canvas instanceof CPDF) {
+                echo $canvas->get_cpdf()->messages;
+            }
+            echo '
'; + flush(); + } + + if ($logOutputFile && is_writable($logOutputFile)) { + $this->writeLog($logOutputFile, $startTime); + ob_end_clean(); + } + + $this->restorePhpConfig(); + } + + /** + * Writes the output buffer in the log file + * + * @param string $logOutputFile + * @param float $startTime + */ + private function writeLog(string $logOutputFile, float $startTime): void + { + $frames = Frame::$ID_COUNTER; + $memory = memory_get_peak_usage(true) / 1024; + $time = (microtime(true) - $startTime) * 1000; + + $out = sprintf( + "%6d" . + "%10.2f KB" . + "%10.2f ms" . + " " . + ($this->quirksmode ? " ON" : "OFF") . + "
", $frames, $memory, $time); + + $out .= ob_get_contents(); + ob_clean(); + + file_put_contents($logOutputFile, $out); + } + + /** + * Add meta information to the PDF after rendering. + * + * @deprecated + */ + public function add_info($label, $value) + { + $this->addInfo($label, $value); + } + + /** + * Add meta information to the PDF after rendering. + * + * @param string $label Label of the value (Creator, Producer, etc.) + * @param string $value The text to set + */ + public function addInfo(string $label, string $value): void + { + $this->canvas->add_info($label, $value); + } + + /** + * Streams the PDF to the client. + * + * The file will open a download dialog by default. The options + * parameter controls the output. Accepted options (array keys) are: + * + * 'compress' = > 1 (=default) or 0: + * Apply content stream compression + * + * 'Attachment' => 1 (=default) or 0: + * Set the 'Content-Disposition:' HTTP header to 'attachment' + * (thereby causing the browser to open a download dialog) + * + * @param string $filename the name of the streamed file + * @param array $options header options (see above) + */ + public function stream($filename = "document.pdf", $options = []) + { + $this->setPhpConfig(); + + $this->canvas->stream($filename, $options); + + $this->restorePhpConfig(); + } + + /** + * Returns the PDF as a string. + * + * The options parameter controls the output. Accepted options are: + * + * 'compress' = > 1 or 0 - apply content stream compression, this is + * on (1) by default + * + * @param array $options options (see above) + * + * @return string|null + */ + public function output($options = []) + { + $this->setPhpConfig(); + + $output = $this->canvas->output($options); + + $this->restorePhpConfig(); + + return $output; + } + + /** + * @return string + * @deprecated + */ + public function output_html() + { + return $this->outputHtml(); + } + + /** + * Returns the underlying HTML document as a string + * + * @return string + */ + public function outputHtml() + { + return $this->dom->saveHTML(); + } + + /** + * Get the dompdf option value + * + * @param string $key + * @return mixed + * @deprecated + */ + public function get_option($key) + { + return $this->options->get($key); + } + + /** + * @param string $key + * @param mixed $value + * @return $this + * @deprecated + */ + public function set_option($key, $value) + { + $this->options->set($key, $value); + return $this; + } + + /** + * @param array $options + * @return $this + * @deprecated + */ + public function set_options(array $options) + { + $this->options->set($options); + return $this; + } + + /** + * @param string $size + * @param string $orientation + * @deprecated + */ + public function set_paper($size, $orientation = "portrait") + { + $this->setPaper($size, $orientation); + } + + /** + * Sets the paper size & orientation + * + * @param string|float[] $size 'letter', 'legal', 'A4', etc. {@link Dompdf\Adapter\CPDF::$PAPER_SIZES} + * @param string $orientation 'portrait' or 'landscape' + * @return $this + */ + public function setPaper($size, $orientation = "portrait") + { + $this->paperSize = $size; + $this->paperOrientation = $orientation; + return $this; + } + + /** + * Gets the paper size + * + * @return float[] A four-element float array + */ + public function getPaperSize() + { + $paper = $this->paperSize; + $orientation = $this->paperOrientation; + + if (is_array($paper)) { + $size = array_map("floatval", $paper); + } else { + $paper = strtolower($paper); + $size = CPDF::$PAPER_SIZES[$paper] ?? CPDF::$PAPER_SIZES["letter"]; + } + + if (strtolower($orientation) === "landscape") { + [$size[2], $size[3]] = [$size[3], $size[2]]; + } + + return $size; + } + + /** + * Gets the paper orientation + * + * @return string Either "portrait" or "landscape" + */ + public function getPaperOrientation() + { + return $this->paperOrientation; + } + + /** + * @param FrameTree $tree + * @return $this + */ + public function setTree(FrameTree $tree) + { + $this->tree = $tree; + return $this; + } + + /** + * @return FrameTree + * @deprecated + */ + public function get_tree() + { + return $this->getTree(); + } + + /** + * Returns the underlying {@link FrameTree} object + * + * @return FrameTree + */ + public function getTree() + { + return $this->tree; + } + + /** + * @param string $protocol + * @return $this + * @deprecated + */ + public function set_protocol($protocol) + { + return $this->setProtocol($protocol); + } + + /** + * Sets the protocol to use + * FIXME validate these + * + * @param string $protocol + * @return $this + */ + public function setProtocol(string $protocol) + { + $this->protocol = $protocol; + return $this; + } + + /** + * @return string + * @deprecated + */ + public function get_protocol() + { + return $this->getProtocol(); + } + + /** + * Returns the protocol in use + * + * @return string + */ + public function getProtocol() + { + return $this->protocol; + } + + /** + * @param string $host + * @deprecated + */ + public function set_host($host) + { + $this->setBaseHost($host); + } + + /** + * Sets the base hostname + * + * @param string $baseHost + * @return $this + */ + public function setBaseHost(string $baseHost) + { + $this->baseHost = $baseHost; + return $this; + } + + /** + * @return string + * @deprecated + */ + public function get_host() + { + return $this->getBaseHost(); + } + + /** + * Returns the base hostname + * + * @return string + */ + public function getBaseHost() + { + return $this->baseHost; + } + + /** + * Sets the base path + * + * @param string $path + * @deprecated + */ + public function set_base_path($path) + { + $this->setBasePath($path); + } + + /** + * Sets the base path + * + * @param string $basePath + * @return $this + */ + public function setBasePath(string $basePath) + { + $this->basePath = $basePath; + return $this; + } + + /** + * @return string + * @deprecated + */ + public function get_base_path() + { + return $this->getBasePath(); + } + + /** + * Returns the base path + * + * @return string + */ + public function getBasePath() + { + return $this->basePath; + } + + /** + * @param string $default_view The default document view + * @param array $options The view's options + * @return $this + * @deprecated + */ + public function set_default_view($default_view, $options) + { + return $this->setDefaultView($default_view, $options); + } + + /** + * Sets the default view + * + * @param string $defaultView The default document view + * @param array $options The view's options + * @return $this + */ + public function setDefaultView($defaultView, $options) + { + $this->defaultView = $defaultView; + $this->defaultViewOptions = $options; + return $this; + } + + /** + * @param resource $http_context + * @return $this + * @deprecated + */ + public function set_http_context($http_context) + { + return $this->setHttpContext($http_context); + } + + /** + * Sets the HTTP context + * + * @param resource|array $httpContext + * @return $this + */ + public function setHttpContext($httpContext) + { + $this->options->setHttpContext($httpContext); + return $this; + } + + /** + * @return resource + * @deprecated + */ + public function get_http_context() + { + return $this->getHttpContext(); + } + + /** + * Returns the HTTP context + * + * @return resource + */ + public function getHttpContext() + { + return $this->options->getHttpContext(); + } + + /** + * Set a custom `Canvas` instance to render the document to. + * + * Be aware that the instance will be replaced on render if the document + * defines a paper size different from the canvas. + * + * @param Canvas $canvas + * @return $this + */ + public function setCanvas(Canvas $canvas) + { + $this->canvas = $canvas; + return $this; + } + + /** + * @return Canvas + * @deprecated + */ + public function get_canvas() + { + return $this->getCanvas(); + } + + /** + * Return the underlying Canvas instance (e.g. Dompdf\Adapter\CPDF, Dompdf\Adapter\GD) + * + * @return Canvas + */ + public function getCanvas() + { + return $this->canvas; + } + + /** + * @param Stylesheet $css + * @return $this + */ + public function setCss(Stylesheet $css) + { + $this->css = $css; + return $this; + } + + /** + * @return Stylesheet + * @deprecated + */ + public function get_css() + { + return $this->getCss(); + } + + /** + * Returns the stylesheet + * + * @return Stylesheet + */ + public function getCss() + { + return $this->css; + } + + /** + * @param DOMDocument $dom + * @return $this + */ + public function setDom(DOMDocument $dom) + { + $this->dom = $dom; + return $this; + } + + /** + * @return DOMDocument + * @deprecated + */ + public function get_dom() + { + return $this->getDom(); + } + + /** + * @return DOMDocument + */ + public function getDom() + { + return $this->dom; + } + + /** + * @param Options $options + * @return $this + */ + public function setOptions(Options $options) + { + // For backwards compatibility + if ($this->options && $this->options->getHttpContext() && !$options->getHttpContext()) { + $options->setHttpContext($this->options->getHttpContext()); + } + + $this->options = $options; + $fontMetrics = $this->fontMetrics; + if (isset($fontMetrics)) { + $fontMetrics->setOptions($options); + } + return $this; + } + + /** + * @return Options + */ + public function getOptions() + { + return $this->options; + } + + /** + * @return array + * @deprecated + */ + public function get_callbacks() + { + return $this->getCallbacks(); + } + + /** + * Returns the callbacks array + * + * @return array + */ + public function getCallbacks() + { + return $this->callbacks; + } + + /** + * @param array $callbacks the set of callbacks to set + * @return $this + * @deprecated + */ + public function set_callbacks($callbacks) + { + return $this->setCallbacks($callbacks); + } + + /** + * Define callbacks that allow modifying the document during render. + * + * The callbacks array should contain arrays with `event` set to a callback + * event name and `f` set to a function or any other callable. + * + * The available callback events are: + * * `begin_page_reflow`: called before page reflow + * * `begin_frame`: called before a frame is rendered + * * `end_frame`: called after frame rendering is complete + * * `begin_page_render`: called before a page is rendered + * * `end_page_render`: called after page rendering is complete + * * `end_document`: called for every page after rendering is complete + * + * The function `f` receives three arguments `Frame $frame`, `Canvas $canvas`, + * and `FontMetrics $fontMetrics` for all events but `end_document`. For + * `end_document`, the function receives four arguments `int $pageNumber`, + * `int $pageCount`, `Canvas $canvas`, and `FontMetrics $fontMetrics` instead. + * + * @param array $callbacks The set of callbacks to set. + * @return $this + */ + public function setCallbacks(array $callbacks): self + { + $this->callbacks = []; + + foreach ($callbacks as $c) { + if (is_array($c) && isset($c["event"]) && isset($c["f"])) { + $event = $c["event"]; + $f = $c["f"]; + if (is_string($event) && is_callable($f)) { + $this->callbacks[$event][] = $f; + } + } + } + + return $this; + } + + /** + * @return boolean + * @deprecated + */ + public function get_quirksmode() + { + return $this->getQuirksmode(); + } + + /** + * Get the quirks mode + * + * @return boolean true if quirks mode is active + */ + public function getQuirksmode() + { + return $this->quirksmode; + } + + /** + * @param FontMetrics $fontMetrics + * @return $this + */ + public function setFontMetrics(FontMetrics $fontMetrics) + { + $this->fontMetrics = $fontMetrics; + return $this; + } + + /** + * @return FontMetrics + */ + public function getFontMetrics() + { + return $this->fontMetrics; + } + + /** + * PHP5 overloaded getter + * Along with {@link Dompdf::__set()} __get() provides access to all + * properties directly. Typically __get() is not called directly outside + * of this class. + * + * @param string $prop + * + * @throws Exception + * @return mixed + */ + function __get($prop) + { + switch ($prop) { + case 'version': + return $this->version; + default: + throw new Exception('Invalid property: ' . $prop); + } + } +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Exception.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Exception.php new file mode 100644 index 0000000..3a90e47 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Exception.php @@ -0,0 +1,27 @@ +setCanvas($canvas); + $this->setOptions($options); + $this->loadFontFamilies(); + } + + /** + * @deprecated + */ + public function save_font_families() + { + $this->saveFontFamilies(); + } + + /** + * Saves the stored font family cache + * + * The name and location of the cache file are determined by {@link + * FontMetrics::USER_FONTS_FILE}. This file should be writable by the + * webserver process. + * + * @see FontMetrics::loadFontFamilies() + */ + public function saveFontFamilies() + { + file_put_contents($this->getUserFontsFilePath(), json_encode($this->userFonts, JSON_PRETTY_PRINT)); + } + + /** + * @deprecated + */ + public function load_font_families() + { + $this->loadFontFamilies(); + } + + /** + * Loads the stored font family cache + * + * @see FontMetrics::saveFontFamilies() + */ + public function loadFontFamilies() + { + $file = $this->options->getRootDir() . "/lib/fonts/installed-fonts.dist.json"; + $this->bundledFonts = json_decode(file_get_contents($file), true); + + if (is_readable($this->getUserFontsFilePath())) { + $this->userFonts = json_decode(file_get_contents($this->getUserFontsFilePath()), true); + } else { + $this->loadFontFamiliesLegacy(); + } + } + + private function loadFontFamiliesLegacy() + { + $legacyCacheFile = $this->options->getFontDir() . '/dompdf_font_family_cache.php'; + if (is_readable($legacyCacheFile)) { + $fontDir = $this->options->getFontDir(); + $rootDir = $this->options->getRootDir(); + + if (!defined("DOMPDF_DIR")) { define("DOMPDF_DIR", $rootDir); } + if (!defined("DOMPDF_FONT_DIR")) { define("DOMPDF_FONT_DIR", $fontDir); } + + $cacheDataClosure = require $legacyCacheFile; + $cacheData = is_array($cacheDataClosure) ? $cacheDataClosure : $cacheDataClosure($fontDir, $rootDir); + if (is_array($cacheData)) { + foreach ($cacheData as $family => $variants) { + if (!isset($this->bundledFonts[$family]) && is_array($variants)) { + foreach ($variants as $variant => $variantPath) { + $variantName = basename($variantPath); + $variantDir = dirname($variantPath); + if ($variantDir == $fontDir) { + $this->userFonts[$family][$variant] = $variantName; + } else { + $this->userFonts[$family][$variant] = $variantPath; + } + } + } + } + $this->saveFontFamilies(); + } + } + } + + /** + * @param array $style + * @param string $remote_file + * @param resource $context + * @return bool + * @deprecated + */ + public function register_font($style, $remote_file, $context = null) + { + return $this->registerFont($style, $remote_file); + } + + /** + * @param array $style + * @param string $remoteFile + * @param resource $context + * @return bool + */ + public function registerFont($style, $remoteFile, $context = null) + { + $fontname = mb_strtolower($style["family"]); + $families = $this->getFontFamilies(); + + $entry = []; + if (isset($families[$fontname])) { + $entry = $families[$fontname]; + } + + $styleString = $this->getType("{$style['weight']} {$style['style']}"); + + $remoteHash = md5($remoteFile); + + $prefix = $fontname . "_" . $styleString; + $prefix = trim($prefix, "-"); + if (function_exists('iconv')) { + $prefix = @iconv('utf-8', 'us-ascii//TRANSLIT', $prefix); + } + $prefix_encoding = mb_detect_encoding($prefix, mb_detect_order(), true); + $substchar = mb_substitute_character(); + mb_substitute_character(0x005F); + $prefix = mb_convert_encoding($prefix, "ISO-8859-1", $prefix_encoding); + mb_substitute_character($substchar); + $prefix = preg_replace("[\W]", "_", $prefix); + $prefix = preg_replace("/[^-_\w]+/", "", $prefix); + + $localFile = $prefix . "_" . $remoteHash; + $localFilePath = $this->getOptions()->getFontDir() . "/" . $localFile; + + if (isset($entry[$styleString]) && $localFilePath == $entry[$styleString]) { + return true; + } + + + $entry[$styleString] = $localFile; + + // Download the remote file + [$protocol] = Helpers::explode_url($remoteFile); + $allowed_protocols = $this->options->getAllowedProtocols(); + if (!array_key_exists($protocol, $allowed_protocols)) { + Helpers::record_warnings(E_USER_WARNING, "Permission denied on $remoteFile. The communication protocol is not supported.", __FILE__, __LINE__); + return false; + } + + foreach ($allowed_protocols[$protocol]["rules"] as $rule) { + [$result, $message] = $rule($remoteFile); + if ($result !== true) { + Helpers::record_warnings(E_USER_WARNING, "Error loading $remoteFile: $message", __FILE__, __LINE__); + return false; + } + } + + list($remoteFileContent, $http_response_header) = @Helpers::getFileContent($remoteFile, $context); + if ($remoteFileContent === null) { + return false; + } + + $localTempFile = @tempnam($this->options->get("tempDir"), "dompdf-font-"); + file_put_contents($localTempFile, $remoteFileContent); + + $font = Font::load($localTempFile); + + if (!$font) { + unlink($localTempFile); + return false; + } + + $font->parse(); + $font->saveAdobeFontMetrics("$localFilePath.ufm"); + $font->close(); + + unlink($localTempFile); + + if ( !file_exists("$localFilePath.ufm") ) { + return false; + } + + $fontExtension = ".ttf"; + switch ($font->getFontType()) { + case "TrueType": + default: + $fontExtension = ".ttf"; + break; + } + + // Save the changes + file_put_contents($localFilePath.$fontExtension, $remoteFileContent); + + if ( !file_exists($localFilePath.$fontExtension) ) { + unlink("$localFilePath.ufm"); + return false; + } + + $this->setFontFamily($fontname, $entry); + + return true; + } + + /** + * @param $text + * @param $font + * @param $size + * @param float $word_spacing + * @param float $char_spacing + * @return float + * @deprecated + */ + public function get_text_width($text, $font, $size, $word_spacing = 0.0, $char_spacing = 0.0) + { + //return self::$_pdf->get_text_width($text, $font, $size, $word_spacing, $char_spacing); + return $this->getTextWidth($text, $font, $size, $word_spacing, $char_spacing); + } + + /** + * Calculates text size, in points + * + * @param string $text The text to be sized + * @param string $font The font file to use + * @param float $size The font size, in points + * @param float $wordSpacing Word spacing, if any + * @param float $charSpacing Char spacing, if any + * + * @return float + */ + public function getTextWidth(string $text, $font, float $size, float $wordSpacing = 0.0, float $charSpacing = 0.0): float + { + // @todo Make sure this cache is efficient before enabling it + static $cache = []; + + if ($text === "") { + return 0; + } + + // Don't cache long strings + $useCache = !isset($text[50]); // Faster than strlen + + // Text-size calculations depend on the canvas used. Make sure to not + // return wrong values when switching canvas backends + $canvasClass = get_class($this->canvas); + $key = "$canvasClass/$font/$size/$wordSpacing/$charSpacing"; + + if ($useCache && isset($cache[$key][$text])) { + return $cache[$key][$text]; + } + + $width = $this->canvas->get_text_width($text, $font, $size, $wordSpacing, $charSpacing); + + if ($useCache) { + $cache[$key][$text] = $width; + } + + return $width; + } + + /** + * @param $font + * @param $size + * @return float + * @deprecated + */ + public function get_font_height($font, $size) + { + return $this->getFontHeight($font, $size); + } + + /** + * Calculates font height, in points + * + * @param string $font The font file to use + * @param float $size The font size, in points + * + * @return float + */ + public function getFontHeight($font, float $size): float + { + return $this->canvas->get_font_height($font, $size); + } + + /** + * Calculates font baseline, in points + * + * @param string $font The font file to use + * @param float $size The font size, in points + * + * @return float + */ + public function getFontBaseline($font, float $size): float + { + return $this->canvas->get_font_baseline($font, $size); + } + + /** + * @param $family_raw + * @param string $subtype_raw + * @return string + * @deprecated + */ + public function get_font($family_raw, $subtype_raw = "normal") + { + return $this->getFont($family_raw, $subtype_raw); + } + + /** + * Resolves a font family & subtype into an actual font file + * Subtype can be one of 'normal', 'bold', 'italic' or 'bold_italic'. If + * the particular font family has no suitable font file, the default font + * ({@link Options::defaultFont}) is used. The font file returned + * is the absolute pathname to the font file on the system. + * + * @param string|null $familyRaw + * @param string $subtypeRaw + * + * @return string|null + */ + public function getFont($familyRaw, $subtypeRaw = "normal") + { + static $cache = []; + + if (isset($cache[$familyRaw][$subtypeRaw])) { + return $cache[$familyRaw][$subtypeRaw]; + } + + /* Allow calling for various fonts in search path. Therefore not immediately + * return replacement on non match. + * Only when called with NULL try replacement. + * When this is also missing there is really trouble. + * If only the subtype fails, nevertheless return failure. + * Only on checking the fallback font, check various subtypes on same font. + */ + + $subtype = strtolower($subtypeRaw); + + $families = $this->getFontFamilies(); + if ($familyRaw) { + $family = str_replace(["'", '"'], "", strtolower($familyRaw)); + + if (isset($families[$family][$subtype])) { + return $cache[$familyRaw][$subtypeRaw] = $families[$family][$subtype]; + } + + return null; + } + + $fallback_families = [strtolower($this->options->getDefaultFont()), "serif"]; + foreach ($fallback_families as $family) { + if (isset($families[$family][$subtype])) { + return $cache[$familyRaw][$subtypeRaw] = $families[$family][$subtype]; + } + + if (!isset($families[$family])) { + continue; + } + + $family = $families[$family]; + + foreach ($family as $sub => $font) { + if (strpos($subtype, $sub) !== false) { + return $cache[$familyRaw][$subtypeRaw] = $font; + } + } + + if ($subtype !== "normal") { + foreach ($family as $sub => $font) { + if ($sub !== "normal") { + return $cache[$familyRaw][$subtypeRaw] = $font; + } + } + } + + $subtype = "normal"; + + if (isset($family[$subtype])) { + return $cache[$familyRaw][$subtypeRaw] = $family[$subtype]; + } + } + + return null; + } + + /** + * @param $family + * @return null|string + * @deprecated + */ + public function get_family($family) + { + return $this->getFamily($family); + } + + /** + * @param string $family + * @return null|string + */ + public function getFamily($family) + { + $family = str_replace(["'", '"'], "", mb_strtolower($family)); + $families = $this->getFontFamilies(); + + if (isset($families[$family])) { + return $families[$family]; + } + + return null; + } + + /** + * @param $type + * @return string + * @deprecated + */ + public function get_type($type) + { + return $this->getType($type); + } + + /** + * @param string $type + * @return string + */ + public function getType($type) + { + if (preg_match('/bold/i', $type)) { + $weight = 700; + } elseif (preg_match('/([1-9]00)/', $type, $match)) { + $weight = (int)$match[0]; + } else { + $weight = 400; + } + $weight = $weight === 400 ? 'normal' : $weight; + $weight = $weight === 700 ? 'bold' : $weight; + + $style = preg_match('/italic|oblique/i', $type) ? 'italic' : null; + + if ($weight === 'normal' && $style !== null) { + return $style; + } + + return $style === null + ? $weight + : $weight.'_'.$style; + } + + /** + * @return array + * @deprecated + */ + public function get_font_families() + { + return $this->getFontFamilies(); + } + + /** + * Returns the current font lookup table + * + * @return array + */ + public function getFontFamilies() + { + if (!isset($this->fontFamilies)) { + $this->setFontFamilies(); + } + return $this->fontFamilies; + } + + /** + * Convert loaded fonts to font lookup table + * + * @return array + */ + public function setFontFamilies() + { + $fontFamilies = []; + if (isset($this->bundledFonts) && is_array($this->bundledFonts)) { + foreach ($this->bundledFonts as $family => $variants) { + if (!isset($fontFamilies[$family])) { + $fontFamilies[$family] = array_map(function ($variant) { + return $this->getOptions()->getRootDir() . '/lib/fonts/' . $variant; + }, $variants); + } + } + } + if (isset($this->userFonts) && is_array($this->userFonts)) { + foreach ($this->userFonts as $family => $variants) { + $fontFamilies[$family] = array_map(function ($variant) { + $variantName = basename($variant); + if ($variantName === $variant) { + return $this->getOptions()->getFontDir() . '/' . $variant; + } + return $variant; + }, $variants); + } + } + $this->fontFamilies = $fontFamilies; + } + + /** + * @param string $fontname + * @param mixed $entry + * @deprecated + */ + public function set_font_family($fontname, $entry) + { + $this->setFontFamily($fontname, $entry); + } + + /** + * @param string $fontname + * @param mixed $entry + */ + public function setFontFamily($fontname, $entry) + { + $this->userFonts[mb_strtolower($fontname)] = $entry; + $this->saveFontFamilies(); + unset($this->fontFamilies); + } + + /** + * @return string + */ + public function getUserFontsFilePath() + { + return $this->options->getFontDir() . '/' . self::USER_FONTS_FILE; + } + + /** + * @param Options $options + * @return $this + */ + public function setOptions(Options $options) + { + $this->options = $options; + unset($this->fontFamilies); + return $this; + } + + /** + * @return Options + */ + public function getOptions() + { + return $this->options; + } + + /** + * @param Canvas $canvas + * @return $this + */ + public function setCanvas(Canvas $canvas) + { + $this->canvas = $canvas; + return $this; + } + + /** + * @return Canvas + */ + public function getCanvas() + { + return $this->canvas; + } +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Frame.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Frame.php new file mode 100644 index 0000000..55136b2 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Frame.php @@ -0,0 +1,1217 @@ +_node = $node; + + $this->_parent = null; + $this->_first_child = null; + $this->_last_child = null; + $this->_prev_sibling = $this->_next_sibling = null; + + $this->_style = null; + + $this->_containing_block = [ + "x" => null, + "y" => null, + "w" => null, + "h" => null, + ]; + + $this->_containing_block[0] =& $this->_containing_block["x"]; + $this->_containing_block[1] =& $this->_containing_block["y"]; + $this->_containing_block[2] =& $this->_containing_block["w"]; + $this->_containing_block[3] =& $this->_containing_block["h"]; + + $this->_position = [ + "x" => null, + "y" => null, + ]; + + $this->_position[0] =& $this->_position["x"]; + $this->_position[1] =& $this->_position["y"]; + + $this->_opacity = 1.0; + $this->_decorator = null; + + $this->set_id(self::$ID_COUNTER++); + } + + /** + * WIP : preprocessing to remove all the unused whitespace + */ + protected function ws_trim() + { + if ($this->ws_keep()) { + return; + } + + if (self::$_ws_state === self::WS_SPACE) { + $node = $this->_node; + + if ($node->nodeName === "#text" && !empty($node->nodeValue)) { + $node->nodeValue = preg_replace("/[ \t\r\n\f]+/u", " ", trim($node->nodeValue)); + self::$_ws_state = self::WS_TEXT; + } + } + } + + /** + * @return bool + */ + protected function ws_keep() + { + $whitespace = $this->get_style()->white_space; + + return in_array($whitespace, ["pre", "pre-wrap", "pre-line"]); + } + + /** + * @return bool + */ + protected function ws_is_text() + { + $node = $this->get_node(); + + if ($node->nodeName === "img") { + return true; + } + + if (!$this->is_in_flow()) { + return false; + } + + if ($this->is_text_node()) { + return trim($node->nodeValue) !== ""; + } + + return true; + } + + /** + * "Destructor": forcibly free all references held by this frame + * + * @param bool $recursive if true, call dispose on all children + */ + public function dispose($recursive = false) + { + if ($recursive) { + while ($child = $this->_first_child) { + $child->dispose(true); + } + } + + // Remove this frame from the tree + if ($this->_prev_sibling) { + $this->_prev_sibling->_next_sibling = $this->_next_sibling; + } + + if ($this->_next_sibling) { + $this->_next_sibling->_prev_sibling = $this->_prev_sibling; + } + + if ($this->_parent && $this->_parent->_first_child === $this) { + $this->_parent->_first_child = $this->_next_sibling; + } + + if ($this->_parent && $this->_parent->_last_child === $this) { + $this->_parent->_last_child = $this->_prev_sibling; + } + + if ($this->_parent) { + $this->_parent->get_node()->removeChild($this->_node); + } + + $this->_style = null; + unset($this->_style); + } + + /** + * Re-initialize the frame + */ + public function reset() + { + $this->_position["x"] = null; + $this->_position["y"] = null; + + $this->_containing_block["x"] = null; + $this->_containing_block["y"] = null; + $this->_containing_block["w"] = null; + $this->_containing_block["h"] = null; + + $this->_style->reset(); + } + + /** + * @return \DOMElement|\DOMText + */ + public function get_node() + { + return $this->_node; + } + + /** + * @return int + */ + public function get_id() + { + return $this->_id; + } + + /** + * @return Style + */ + public function get_style() + { + return $this->_style; + } + + /** + * @deprecated + * @return Style + */ + public function get_original_style() + { + return $this->_style; + } + + /** + * @return Frame + */ + public function get_parent() + { + return $this->_parent; + } + + /** + * @return FrameDecorator\AbstractFrameDecorator + */ + public function get_decorator() + { + return $this->_decorator; + } + + /** + * @return Frame + */ + public function get_first_child() + { + return $this->_first_child; + } + + /** + * @return Frame + */ + public function get_last_child() + { + return $this->_last_child; + } + + /** + * @return Frame + */ + public function get_prev_sibling() + { + return $this->_prev_sibling; + } + + /** + * @return Frame + */ + public function get_next_sibling() + { + return $this->_next_sibling; + } + + /** + * @return FrameListIterator + */ + public function get_children(): FrameListIterator + { + return new FrameListIterator($this); + } + + // Layout property accessors + + /** + * Containing block dimensions + * + * @param string|null $i The key of the wanted containing block's dimension (x, y, w, h) + * + * @return float[]|float + */ + public function get_containing_block($i = null) + { + if (isset($i)) { + return $this->_containing_block[$i]; + } + + return $this->_containing_block; + } + + /** + * Block position + * + * @param string|null $i The key of the wanted position value (x, y) + * + * @return float[]|float + */ + public function get_position($i = null) + { + if (isset($i)) { + return $this->_position[$i]; + } + + return $this->_position; + } + + //........................................................................ + + /** + * Return the width of the margin box of the frame, in pt. Meaningless + * unless the width has been calculated properly. + * + * @return float + */ + public function get_margin_width(): float + { + $style = $this->_style; + + return (float)$style->length_in_pt([ + $style->width, + $style->margin_left, + $style->margin_right, + $style->border_left_width, + $style->border_right_width, + $style->padding_left, + $style->padding_right + ], $this->_containing_block["w"]); + } + + /** + * Return the height of the margin box of the frame, in pt. Meaningless + * unless the height has been calculated properly. + * + * @return float + */ + public function get_margin_height(): float + { + $style = $this->_style; + + return (float)$style->length_in_pt( + [ + $style->height, + (float)$style->length_in_pt( + [ + $style->border_top_width, + $style->border_bottom_width, + $style->margin_top, + $style->margin_bottom, + $style->padding_top, + $style->padding_bottom + ], $this->_containing_block["w"] + ) + ], + $this->_containing_block["h"] + ); + } + + /** + * Return the content box (x,y,w,h) of the frame. + * + * Width and height might be reported as 0 if they have not been resolved + * yet. + * + * @return float[] + */ + public function get_content_box(): array + { + $style = $this->_style; + $cb = $this->_containing_block; + + $x = $this->_position["x"] + + (float)$style->length_in_pt( + [ + $style->margin_left, + $style->border_left_width, + $style->padding_left + ], + $cb["w"] + ); + + $y = $this->_position["y"] + + (float)$style->length_in_pt( + [ + $style->margin_top, + $style->border_top_width, + $style->padding_top + ], $cb["w"] + ); + + $w = (float)$style->length_in_pt($style->width, $cb["w"]); + + $h = (float)$style->length_in_pt($style->height, $cb["h"]); + + return [0 => $x, "x" => $x, + 1 => $y, "y" => $y, + 2 => $w, "w" => $w, + 3 => $h, "h" => $h]; + } + + /** + * Return the padding box (x,y,w,h) of the frame. + * + * Width and height might be reported as 0 if they have not been resolved + * yet. + * + * @return float[] + */ + public function get_padding_box(): array + { + $style = $this->_style; + $cb = $this->_containing_block; + + $x = $this->_position["x"] + + (float)$style->length_in_pt( + [ + $style->margin_left, + $style->border_left_width + ], + $cb["w"] + ); + + $y = $this->_position["y"] + + (float)$style->length_in_pt( + [ + $style->margin_top, + $style->border_top_width + ], + $cb["h"] + ); + + $w = (float)$style->length_in_pt( + [ + $style->padding_left, + $style->width, + $style->padding_right + ], + $cb["w"] + ); + + $h = (float)$style->length_in_pt( + [ + $style->padding_top, + $style->padding_bottom, + $style->length_in_pt($style->height, $cb["h"]) + ], + $cb["w"] + ); + + return [0 => $x, "x" => $x, + 1 => $y, "y" => $y, + 2 => $w, "w" => $w, + 3 => $h, "h" => $h]; + } + + /** + * Return the border box of the frame. + * + * Width and height might be reported as 0 if they have not been resolved + * yet. + * + * @return float[] + */ + public function get_border_box(): array + { + $style = $this->_style; + $cb = $this->_containing_block; + + $x = $this->_position["x"] + (float)$style->length_in_pt($style->margin_left, $cb["w"]); + + $y = $this->_position["y"] + (float)$style->length_in_pt($style->margin_top, $cb["w"]); + + $w = (float)$style->length_in_pt( + [ + $style->border_left_width, + $style->padding_left, + $style->width, + $style->padding_right, + $style->border_right_width + ], + $cb["w"] + ); + + $h = (float)$style->length_in_pt( + [ + $style->border_top_width, + $style->padding_top, + $style->padding_bottom, + $style->border_bottom_width, + $style->length_in_pt($style->height, $cb["h"]) + ], + $cb["w"] + ); + + return [0 => $x, "x" => $x, + 1 => $y, "y" => $y, + 2 => $w, "w" => $w, + 3 => $h, "h" => $h]; + } + + /** + * @param float|null $opacity + * + * @return float + */ + public function get_opacity(?float $opacity = null): float + { + if ($opacity !== null) { + $this->set_opacity($opacity); + } + + return $this->_opacity; + } + + /** + * @return LineBox|null + */ + public function &get_containing_line() + { + return $this->_containing_line; + } + + //........................................................................ + // Set methods + + /** + * @param int $id + */ + public function set_id($id) + { + $this->_id = $id; + + // We can only set attributes of DOMElement objects (nodeType == 1). + // Since these are the only objects that we can assign CSS rules to, + // this shortcoming is okay. + if ($this->_node->nodeType == XML_ELEMENT_NODE) { + $this->_node->setAttribute("frame_id", $id); + } + } + + /** + * @param Style $style + */ + public function set_style(Style $style): void + { + // $style->set_frame($this); + $this->_style = $style; + } + + /** + * @param FrameDecorator\AbstractFrameDecorator $decorator + */ + public function set_decorator(FrameDecorator\AbstractFrameDecorator $decorator) + { + $this->_decorator = $decorator; + } + + /** + * @param float|float[]|null $x + * @param float|null $y + * @param float|null $w + * @param float|null $h + */ + public function set_containing_block($x = null, $y = null, $w = null, $h = null) + { + if (is_array($x)) { + foreach ($x as $key => $val) { + $$key = $val; + } + } + + if (is_numeric($x)) { + $this->_containing_block["x"] = $x; + } + + if (is_numeric($y)) { + $this->_containing_block["y"] = $y; + } + + if (is_numeric($w)) { + $this->_containing_block["w"] = $w; + } + + if (is_numeric($h)) { + $this->_containing_block["h"] = $h; + } + } + + /** + * @param float|float[]|null $x + * @param float|null $y + */ + public function set_position($x = null, $y = null) + { + if (is_array($x)) { + list($x, $y) = [$x["x"], $x["y"]]; + } + + if (is_numeric($x)) { + $this->_position["x"] = $x; + } + + if (is_numeric($y)) { + $this->_position["y"] = $y; + } + } + + /** + * @param float $opacity + */ + public function set_opacity(float $opacity): void + { + $parent = $this->get_parent(); + $base_opacity = $parent && $parent->_opacity !== null ? $parent->_opacity : 1.0; + $this->_opacity = $base_opacity * $opacity; + } + + /** + * @param LineBox $line + */ + public function set_containing_line(LineBox $line) + { + $this->_containing_line = $line; + } + + /** + * Indicates if the margin height is auto sized + * + * @return bool + */ + public function is_auto_height() + { + $style = $this->_style; + + return in_array( + "auto", + [ + $style->height, + $style->margin_top, + $style->margin_bottom, + $style->border_top_width, + $style->border_bottom_width, + $style->padding_top, + $style->padding_bottom, + $this->_containing_block["h"] + ], + true + ); + } + + /** + * Indicates if the margin width is auto sized + * + * @return bool + */ + public function is_auto_width() + { + $style = $this->_style; + + return in_array( + "auto", + [ + $style->width, + $style->margin_left, + $style->margin_right, + $style->border_left_width, + $style->border_right_width, + $style->padding_left, + $style->padding_right, + $this->_containing_block["w"] + ], + true + ); + } + + /** + * Tells if the frame is a text node + * + * @return bool + */ + public function is_text_node(): bool + { + if (isset($this->_is_cache["text_node"])) { + return $this->_is_cache["text_node"]; + } + + return $this->_is_cache["text_node"] = ($this->get_node()->nodeName === "#text"); + } + + /** + * @return bool + */ + public function is_positioned(): bool + { + if (isset($this->_is_cache["positioned"])) { + return $this->_is_cache["positioned"]; + } + + $position = $this->get_style()->position; + + return $this->_is_cache["positioned"] = in_array($position, Style::POSITIONED_TYPES, true); + } + + /** + * @return bool + */ + public function is_absolute(): bool + { + if (isset($this->_is_cache["absolute"])) { + return $this->_is_cache["absolute"]; + } + + return $this->_is_cache["absolute"] = $this->get_style()->is_absolute(); + } + + /** + * Whether the frame is a block container. + * + * @return bool + */ + public function is_block(): bool + { + if (isset($this->_is_cache["block"])) { + return $this->_is_cache["block"]; + } + + return $this->_is_cache["block"] = in_array($this->get_style()->display, Style::BLOCK_TYPES, true); + } + + /** + * Whether the frame has a block-level display type. + * + * @return bool + */ + public function is_block_level(): bool + { + if (isset($this->_is_cache["block_level"])) { + return $this->_is_cache["block_level"]; + } + + $display = $this->get_style()->display; + + return $this->_is_cache["block_level"] = in_array($display, Style::BLOCK_LEVEL_TYPES, true); + } + + /** + * Whether the frame has an inline-level display type. + * + * @return bool + */ + public function is_inline_level(): bool + { + if (isset($this->_is_cache["inline_level"])) { + return $this->_is_cache["inline_level"]; + } + + $display = $this->get_style()->display; + + return $this->_is_cache["inline_level"] = in_array($display, Style::INLINE_LEVEL_TYPES, true); + } + + /** + * @return bool + */ + public function is_in_flow(): bool + { + if (isset($this->_is_cache["in_flow"])) { + return $this->_is_cache["in_flow"]; + } + + return $this->_is_cache["in_flow"] = $this->get_style()->is_in_flow(); + } + + /** + * @return bool + */ + public function is_pre(): bool + { + if (isset($this->_is_cache["pre"])) { + return $this->_is_cache["pre"]; + } + + $white_space = $this->get_style()->white_space; + + return $this->_is_cache["pre"] = in_array($white_space, ["pre", "pre-wrap"], true); + } + + /** + * @return bool + */ + public function is_table(): bool + { + if (isset($this->_is_cache["table"])) { + return $this->_is_cache["table"]; + } + + $display = $this->get_style()->display; + + return $this->_is_cache["table"] = in_array($display, Style::TABLE_TYPES, true); + } + + + /** + * Inserts a new child at the beginning of the Frame + * + * @param Frame $child The new Frame to insert + * @param bool $update_node Whether or not to update the DOM + */ + public function prepend_child(Frame $child, $update_node = true) + { + if ($update_node) { + $this->_node->insertBefore($child->_node, $this->_first_child ? $this->_first_child->_node : null); + } + + // Remove the child from its parent + if ($child->_parent) { + $child->_parent->remove_child($child, false); + } + + $child->_parent = $this; + $child->_prev_sibling = null; + + // Handle the first child + if (!$this->_first_child) { + $this->_first_child = $child; + $this->_last_child = $child; + $child->_next_sibling = null; + } else { + $this->_first_child->_prev_sibling = $child; + $child->_next_sibling = $this->_first_child; + $this->_first_child = $child; + } + } + + /** + * Inserts a new child at the end of the Frame + * + * @param Frame $child The new Frame to insert + * @param bool $update_node Whether or not to update the DOM + */ + public function append_child(Frame $child, $update_node = true) + { + if ($update_node) { + $this->_node->appendChild($child->_node); + } + + // Remove the child from its parent + if ($child->_parent) { + $child->_parent->remove_child($child, false); + } + + $child->_parent = $this; + $decorator = $child->get_decorator(); + // force an update to the cached parent + if ($decorator !== null) { + $decorator->get_parent(false); + } + $child->_next_sibling = null; + + // Handle the first child + if (!$this->_last_child) { + $this->_first_child = $child; + $this->_last_child = $child; + $child->_prev_sibling = null; + } else { + $this->_last_child->_next_sibling = $child; + $child->_prev_sibling = $this->_last_child; + $this->_last_child = $child; + } + } + + /** + * Inserts a new child immediately before the specified frame + * + * @param Frame $new_child The new Frame to insert + * @param Frame $ref The Frame after the new Frame + * @param bool $update_node Whether or not to update the DOM + * + * @throws Exception + */ + public function insert_child_before(Frame $new_child, Frame $ref, $update_node = true) + { + if ($ref === $this->_first_child) { + $this->prepend_child($new_child, $update_node); + + return; + } + + if (is_null($ref)) { + $this->append_child($new_child, $update_node); + + return; + } + + if ($ref->_parent !== $this) { + throw new Exception("Reference child is not a child of this node."); + } + + // Update the node + if ($update_node) { + $this->_node->insertBefore($new_child->_node, $ref->_node); + } + + // Remove the child from its parent + if ($new_child->_parent) { + $new_child->_parent->remove_child($new_child, false); + } + + $new_child->_parent = $this; + $new_child->_next_sibling = $ref; + $new_child->_prev_sibling = $ref->_prev_sibling; + + if ($ref->_prev_sibling) { + $ref->_prev_sibling->_next_sibling = $new_child; + } + + $ref->_prev_sibling = $new_child; + } + + /** + * Inserts a new child immediately after the specified frame + * + * @param Frame $new_child The new Frame to insert + * @param Frame $ref The Frame before the new Frame + * @param bool $update_node Whether or not to update the DOM + * + * @throws Exception + */ + public function insert_child_after(Frame $new_child, Frame $ref, $update_node = true) + { + if ($ref === $this->_last_child) { + $this->append_child($new_child, $update_node); + + return; + } + + if (is_null($ref)) { + $this->prepend_child($new_child, $update_node); + + return; + } + + if ($ref->_parent !== $this) { + throw new Exception("Reference child is not a child of this node."); + } + + // Update the node + if ($update_node) { + if ($ref->_next_sibling) { + $next_node = $ref->_next_sibling->_node; + $this->_node->insertBefore($new_child->_node, $next_node); + } else { + $new_child->_node = $this->_node->appendChild($new_child->_node); + } + } + + // Remove the child from its parent + if ($new_child->_parent) { + $new_child->_parent->remove_child($new_child, false); + } + + $new_child->_parent = $this; + $new_child->_prev_sibling = $ref; + $new_child->_next_sibling = $ref->_next_sibling; + + if ($ref->_next_sibling) { + $ref->_next_sibling->_prev_sibling = $new_child; + } + + $ref->_next_sibling = $new_child; + } + + /** + * Remove a child frame + * + * @param Frame $child + * @param bool $update_node Whether or not to remove the DOM node + * + * @throws Exception + * @return Frame The removed child frame + */ + public function remove_child(Frame $child, $update_node = true) + { + if ($child->_parent !== $this) { + throw new Exception("Child not found in this frame"); + } + + if ($update_node) { + $this->_node->removeChild($child->_node); + } + + if ($child === $this->_first_child) { + $this->_first_child = $child->_next_sibling; + } + + if ($child === $this->_last_child) { + $this->_last_child = $child->_prev_sibling; + } + + if ($child->_prev_sibling) { + $child->_prev_sibling->_next_sibling = $child->_next_sibling; + } + + if ($child->_next_sibling) { + $child->_next_sibling->_prev_sibling = $child->_prev_sibling; + } + + $child->_next_sibling = null; + $child->_prev_sibling = null; + $child->_parent = null; + + return $child; + } + + //........................................................................ + + // Debugging function: + /** + * @return string + */ + public function __toString() + { + // Skip empty text frames +// if ( $this->is_text_node() && +// preg_replace("/\s/", "", $this->_node->data) === "" ) +// return ""; + + + $str = "" . $this->_node->nodeName . ":
"; + //$str .= spl_object_hash($this->_node) . "
"; + $str .= "Id: " . $this->get_id() . "
"; + $str .= "Class: " . get_class($this) . "
"; + + if ($this->is_text_node()) { + $tmp = htmlspecialchars($this->_node->nodeValue); + $str .= "
'" . mb_substr($tmp, 0, 70) .
+                (mb_strlen($tmp) > 70 ? "..." : "") . "'
"; + } elseif ($css_class = $this->_node->getAttribute("class")) { + $str .= "CSS class: '$css_class'
"; + } + + if ($this->_parent) { + $str .= "\nParent:" . $this->_parent->_node->nodeName . + " (" . spl_object_hash($this->_parent->_node) . ") " . + "
"; + } + + if ($this->_prev_sibling) { + $str .= "Prev: " . $this->_prev_sibling->_node->nodeName . + " (" . spl_object_hash($this->_prev_sibling->_node) . ") " . + "
"; + } + + if ($this->_next_sibling) { + $str .= "Next: " . $this->_next_sibling->_node->nodeName . + " (" . spl_object_hash($this->_next_sibling->_node) . ") " . + "
"; + } + + $d = $this->get_decorator(); + while ($d && $d != $d->get_decorator()) { + $str .= "Decorator: " . get_class($d) . "
"; + $d = $d->get_decorator(); + } + + $str .= "Position: " . Helpers::pre_r($this->_position, true); + $str .= "\nContaining block: " . Helpers::pre_r($this->_containing_block, true); + $str .= "\nMargin width: " . Helpers::pre_r($this->get_margin_width(), true); + $str .= "\nMargin height: " . Helpers::pre_r($this->get_margin_height(), true); + + $str .= "\nStyle:
" . $this->_style->__toString() . "
"; + + if ($this->_decorator instanceof FrameDecorator\Block) { + $str .= "Lines:
";
+            foreach ($this->_decorator->get_line_boxes() as $line) {
+                foreach ($line->get_frames() as $frame) {
+                    if ($frame instanceof FrameDecorator\Text) {
+                        $str .= "\ntext: ";
+                        $str .= "'" . htmlspecialchars($frame->get_text()) . "'";
+                    } else {
+                        $str .= "\nBlock: " . $frame->get_node()->nodeName . " (" . spl_object_hash($frame->get_node()) . ")";
+                    }
+                }
+
+                $str .=
+                    "\ny => " . $line->y . "\n" .
+                    "w => " . $line->w . "\n" .
+                    "h => " . $line->h . "\n" .
+                    "left => " . $line->left . "\n" .
+                    "right => " . $line->right . "\n";
+            }
+            $str .= "
"; + } + + $str .= "\n"; + if (php_sapi_name() === "cli") { + $str = strip_tags(str_replace(["
", "", ""], + ["\n", "", ""], + $str)); + } + + return $str; + } +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Frame/Factory.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Frame/Factory.php new file mode 100644 index 0000000..b4bab88 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Frame/Factory.php @@ -0,0 +1,263 @@ +set_reflower(new PageFrameReflower($frame)); + $root->set_decorator($frame); + + return $frame; + } + + /** + * Decorate a Frame + * + * @param Frame $frame The frame to decorate + * @param Dompdf $dompdf The dompdf instance + * @param Frame $root The root of the frame + * + * @throws Exception + * @return AbstractFrameDecorator + * FIXME: this is admittedly a little smelly... + */ + static function decorate_frame(Frame $frame, Dompdf $dompdf, Frame $root = null) + { + $style = $frame->get_style(); + $display = $style->display; + + switch ($display) { + + case "block": + $positioner = "Block"; + $decorator = "Block"; + $reflower = "Block"; + break; + + case "inline-block": + $positioner = "Inline"; + $decorator = "Block"; + $reflower = "Block"; + break; + + case "inline": + $positioner = "Inline"; + if ($frame->is_text_node()) { + $decorator = "Text"; + $reflower = "Text"; + } else { + $decorator = "Inline"; + $reflower = "Inline"; + } + break; + + case "table": + $positioner = "Block"; + $decorator = "Table"; + $reflower = "Table"; + break; + + case "inline-table": + $positioner = "Inline"; + $decorator = "Table"; + $reflower = "Table"; + break; + + case "table-row-group": + case "table-header-group": + case "table-footer-group": + $positioner = "NullPositioner"; + $decorator = "TableRowGroup"; + $reflower = "TableRowGroup"; + break; + + case "table-row": + $positioner = "NullPositioner"; + $decorator = "TableRow"; + $reflower = "TableRow"; + break; + + case "table-cell": + $positioner = "TableCell"; + $decorator = "TableCell"; + $reflower = "TableCell"; + break; + + case "list-item": + $positioner = "Block"; + $decorator = "Block"; + $reflower = "Block"; + break; + + case "-dompdf-list-bullet": + if ($style->list_style_position === "inside") { + $positioner = "Inline"; + } else { + $positioner = "ListBullet"; + } + + if ($style->list_style_image !== "none") { + $decorator = "ListBulletImage"; + } else { + $decorator = "ListBullet"; + } + + $reflower = "ListBullet"; + break; + + case "-dompdf-image": + $positioner = "Inline"; + $decorator = "Image"; + $reflower = "Image"; + break; + + case "-dompdf-br": + $positioner = "Inline"; + $decorator = "Inline"; + $reflower = "Inline"; + break; + + default: + case "none": + if ($style->_dompdf_keep !== "yes") { + // Remove the node and the frame + $frame->get_parent()->remove_child($frame); + return; + } + + $positioner = "NullPositioner"; + $decorator = "NullFrameDecorator"; + $reflower = "NullFrameReflower"; + break; + } + + // Handle CSS position + $position = $style->position; + + if ($position === "absolute") { + $positioner = "Absolute"; + } else { + if ($position === "fixed") { + $positioner = "Fixed"; + } + } + + $node = $frame->get_node(); + + // Handle nodeName + if ($node->nodeName === "img") { + $style->set_prop("display", "-dompdf-image"); + $decorator = "Image"; + $reflower = "Image"; + } + + $decorator = "Dompdf\\FrameDecorator\\$decorator"; + $reflower = "Dompdf\\FrameReflower\\$reflower"; + + /** @var AbstractFrameDecorator $deco */ + $deco = new $decorator($frame, $dompdf); + + $deco->set_positioner(self::getPositionerInstance($positioner)); + $deco->set_reflower(new $reflower($deco, $dompdf->getFontMetrics())); + + if ($root) { + $deco->set_root($root); + } + + if ($display === "list-item") { + // Insert a list-bullet frame + $xml = $dompdf->getDom(); + $bullet_node = $xml->createElement("bullet"); // arbitrary choice + $b_f = new Frame($bullet_node); + + $node = $frame->get_node(); + $parent_node = $node->parentNode; + if ($parent_node && $parent_node instanceof \DOMElement) { + if (!$parent_node->hasAttribute("dompdf-children-count")) { + $xpath = new DOMXPath($xml); + $count = $xpath->query("li", $parent_node)->length; + $parent_node->setAttribute("dompdf-children-count", $count); + } + + if (is_numeric($node->getAttribute("value"))) { + $index = intval($node->getAttribute("value")); + } else { + if (!$parent_node->hasAttribute("dompdf-counter")) { + $index = ($parent_node->hasAttribute("start") ? $parent_node->getAttribute("start") : 1); + } else { + $index = (int)$parent_node->getAttribute("dompdf-counter") + 1; + } + } + + $parent_node->setAttribute("dompdf-counter", $index); + $bullet_node->setAttribute("dompdf-counter", $index); + } + + $new_style = $dompdf->getCss()->create_style(); + $new_style->set_prop("display", "-dompdf-list-bullet"); + $new_style->inherit($style); + $b_f->set_style($new_style); + + $deco->prepend_child(Factory::decorate_frame($b_f, $dompdf, $root)); + } + + return $deco; + } + + /** + * Creates Positioners + * + * @param string $type type of positioner to use + * @return AbstractPositioner + */ + protected static function getPositionerInstance($type) + { + if (!isset(self::$_positioners[$type])) { + $class = '\\Dompdf\\Positioner\\'.$type; + self::$_positioners[$type] = new $class(); + } + return self::$_positioners[$type]; + } +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Frame/FrameListIterator.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Frame/FrameListIterator.php new file mode 100644 index 0000000..0157550 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Frame/FrameListIterator.php @@ -0,0 +1,100 @@ +parent = $frame; + $this->rewind(); + } + + public function rewind(): void + { + $this->cur = $this->parent->get_first_child(); + $this->prev = null; + $this->num = 0; + } + + /** + * @return bool + */ + public function valid(): bool + { + return $this->cur !== null; + } + + /** + * @return int + */ + public function key(): int + { + return $this->num; + } + + /** + * @return Frame|null + */ + public function current(): ?Frame + { + return $this->cur; + } + + public function next(): void + { + if ($this->cur === null) { + return; + } + + if ($this->cur->get_parent() === $this->parent) { + $this->prev = $this->cur; + $this->cur = $this->cur->get_next_sibling(); + $this->num++; + } else { + // Continue from the previous child if the current frame has been + // moved to another parent + $this->cur = $this->prev !== null + ? $this->prev->get_next_sibling() + : $this->parent->get_first_child(); + } + } +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Frame/FrameTree.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Frame/FrameTree.php new file mode 100644 index 0000000..6d012d8 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Frame/FrameTree.php @@ -0,0 +1,324 @@ +_dom = $dom; + $this->_root = null; + $this->_registry = []; + } + + /** + * Returns the DOMDocument object representing the current html document + * + * @return DOMDocument + */ + public function get_dom() + { + return $this->_dom; + } + + /** + * Returns the root frame of the tree + * + * @return Frame + */ + public function get_root() + { + return $this->_root; + } + + /** + * Returns a specific frame given its id + * + * @param string $id + * + * @return Frame|null + */ + public function get_frame($id) + { + return isset($this->_registry[$id]) ? $this->_registry[$id] : null; + } + + /** + * Returns a post-order iterator for all frames in the tree + * + * @deprecated Iterate the tree directly instead + * @return FrameTreeIterator + */ + public function get_frames(): FrameTreeIterator + { + return new FrameTreeIterator($this->_root); + } + + /** + * Returns a post-order iterator for all frames in the tree + * + * @return FrameTreeIterator + */ + public function getIterator(): FrameTreeIterator + { + return new FrameTreeIterator($this->_root); + } + + /** + * Builds the tree + */ + public function build_tree() + { + $html = $this->_dom->getElementsByTagName("html")->item(0); + if (is_null($html)) { + $html = $this->_dom->firstChild; + } + + if (is_null($html)) { + throw new Exception("Requested HTML document contains no data."); + } + + $this->fix_tables(); + + $this->_root = $this->_build_tree_r($html); + } + + /** + * Adds missing TBODYs around TR + */ + protected function fix_tables() + { + $xp = new DOMXPath($this->_dom); + + // Move table caption before the table + // FIXME find a better way to deal with it... + $captions = $xp->query('//table/caption'); + foreach ($captions as $caption) { + $table = $caption->parentNode; + $table->parentNode->insertBefore($caption, $table); + } + + $firstRows = $xp->query('//table/tr[1]'); + /** @var DOMElement $tableChild */ + foreach ($firstRows as $tableChild) { + $tbody = $this->_dom->createElement('tbody'); + $tableNode = $tableChild->parentNode; + do { + if ($tableChild->nodeName === 'tr') { + $tmpNode = $tableChild; + $tableChild = $tableChild->nextSibling; + $tableNode->removeChild($tmpNode); + $tbody->appendChild($tmpNode); + } else { + if ($tbody->hasChildNodes() === true) { + $tableNode->insertBefore($tbody, $tableChild); + $tbody = $this->_dom->createElement('tbody'); + } + $tableChild = $tableChild->nextSibling; + } + } while ($tableChild); + if ($tbody->hasChildNodes() === true) { + $tableNode->appendChild($tbody); + } + } + } + + // FIXME: temporary hack, preferably we will improve rendering of sequential #text nodes + /** + * Remove a child from a node + * + * Remove a child from a node. If the removed node results in two + * adjacent #text nodes then combine them. + * + * @param DOMNode $node the current DOMNode being considered + * @param array $children an array of nodes that are the children of $node + * @param int $index index from the $children array of the node to remove + */ + protected function _remove_node(DOMNode $node, array &$children, $index) + { + $child = $children[$index]; + $previousChild = $child->previousSibling; + $nextChild = $child->nextSibling; + $node->removeChild($child); + if (isset($previousChild, $nextChild)) { + if ($previousChild->nodeName === "#text" && $nextChild->nodeName === "#text") { + $previousChild->nodeValue .= $nextChild->nodeValue; + $this->_remove_node($node, $children, $index+1); + } + } + array_splice($children, $index, 1); + } + + /** + * Recursively adds {@link Frame} objects to the tree + * + * Recursively build a tree of Frame objects based on a dom tree. + * No layout information is calculated at this time, although the + * tree may be adjusted (i.e. nodes and frames for generated content + * and images may be created). + * + * @param DOMNode $node the current DOMNode being considered + * + * @return Frame + */ + protected function _build_tree_r(DOMNode $node) + { + $frame = new Frame($node); + $id = $frame->get_id(); + $this->_registry[$id] = $frame; + + if (!$node->hasChildNodes()) { + return $frame; + } + + // Store the children in an array so that the tree can be modified + $children = []; + $length = $node->childNodes->length; + for ($i = 0; $i < $length; $i++) { + $children[] = $node->childNodes->item($i); + } + $index = 0; + // INFO: We don't advance $index if a node is removed to avoid skipping nodes + while ($index < count($children)) { + $child = $children[$index]; + $nodeName = strtolower($child->nodeName); + + // Skip non-displaying nodes + if (in_array($nodeName, self::$HIDDEN_TAGS)) { + if ($nodeName !== "head" && $nodeName !== "style") { + $this->_remove_node($node, $children, $index); + } else { + $index++; + } + continue; + } + // Skip empty text nodes + if ($nodeName === "#text" && $child->nodeValue === "") { + $this->_remove_node($node, $children, $index); + continue; + } + // Skip empty image nodes + if ($nodeName === "img" && $child->getAttribute("src") === "") { + $this->_remove_node($node, $children, $index); + continue; + } + + if (is_object($child)) { + $frame->append_child($this->_build_tree_r($child), false); + } + $index++; + } + + return $frame; + } + + /** + * @param DOMElement $node + * @param DOMElement $new_node + * @param string $pos + * + * @return mixed + */ + public function insert_node(DOMElement $node, DOMElement $new_node, $pos) + { + if ($pos === "after" || !$node->firstChild) { + $node->appendChild($new_node); + } else { + $node->insertBefore($new_node, $node->firstChild); + } + + $this->_build_tree_r($new_node); + + $frame_id = $new_node->getAttribute("frame_id"); + $frame = $this->get_frame($frame_id); + + $parent_id = $node->getAttribute("frame_id"); + $parent = $this->get_frame($parent_id); + + if ($parent) { + if ($pos === "before") { + $parent->prepend_child($frame, false); + } else { + $parent->append_child($frame, false); + } + } + + return $frame_id; + } +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Frame/FrameTreeIterator.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Frame/FrameTreeIterator.php new file mode 100644 index 0000000..4da8da1 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Frame/FrameTreeIterator.php @@ -0,0 +1,88 @@ +_stack[] = $this->_root = $root; + $this->_num = 0; + } + + public function rewind(): void + { + $this->_stack = [$this->_root]; + $this->_num = 0; + } + + /** + * @return bool + */ + public function valid(): bool + { + return count($this->_stack) > 0; + } + + /** + * @return int + */ + public function key(): int + { + return $this->_num; + } + + /** + * @return Frame + */ + public function current(): Frame + { + return end($this->_stack); + } + + public function next(): void + { + $b = array_pop($this->_stack); + $this->_num++; + + // Push all children onto the stack in reverse order + if ($c = $b->get_last_child()) { + $this->_stack[] = $c; + while ($c = $c->get_prev_sibling()) { + $this->_stack[] = $c; + } + } + } +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameDecorator/AbstractFrameDecorator.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameDecorator/AbstractFrameDecorator.php new file mode 100644 index 0000000..2c1fcc5 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameDecorator/AbstractFrameDecorator.php @@ -0,0 +1,923 @@ + counter_value) (for generated content) + * + * @var array + */ + public $_counters = []; + + /** + * The root node of the DOM tree + * + * @var Frame + */ + protected $_root; + + /** + * The decorated frame + * + * @var Frame + */ + protected $_frame; + + /** + * AbstractPositioner object used to position this frame (Strategy pattern) + * + * @var AbstractPositioner + */ + protected $_positioner; + + /** + * Reflower object used to calculate frame dimensions (Strategy pattern) + * + * @var AbstractFrameReflower + */ + protected $_reflower; + + /** + * Reference to the current dompdf instance + * + * @var Dompdf + */ + protected $_dompdf; + + /** + * First block parent + * + * @var Block + */ + private $_block_parent; + + /** + * First positioned parent (position: relative | absolute | fixed) + * + * @var AbstractFrameDecorator + */ + private $_positioned_parent; + + /** + * Cache for the get_parent while loop results + * + * @var Frame + */ + private $_cached_parent; + + /** + * Whether generated content and counters have been set. + * + * @var bool + */ + public $content_set = false; + + /** + * Whether the frame has been split + * + * @var bool + */ + public $is_split = false; + + /** + * Whether the frame is a split-off frame + * + * @var bool + */ + public $is_split_off = false; + + /** + * Class constructor + * + * @param Frame $frame The decoration target + * @param Dompdf $dompdf The Dompdf object + */ + function __construct(Frame $frame, Dompdf $dompdf) + { + $this->_frame = $frame; + $this->_root = null; + $this->_dompdf = $dompdf; + $frame->set_decorator($this); + } + + /** + * "Destructor": forcibly free all references held by this object + * + * @param bool $recursive if true, call dispose on all children + */ + function dispose($recursive = false) + { + if ($recursive) { + while ($child = $this->get_first_child()) { + $child->dispose(true); + } + } + + $this->_root = null; + unset($this->_root); + + $this->_frame->dispose(true); + $this->_frame = null; + unset($this->_frame); + + $this->_positioner = null; + unset($this->_positioner); + + $this->_reflower = null; + unset($this->_reflower); + } + + /** + * Return a copy of this frame with $node as its node + * + * @param DOMNode $node + * + * @return AbstractFrameDecorator + */ + function copy(DOMNode $node) + { + $frame = new Frame($node); + $style = clone $this->_frame->get_style(); + + $style->reset(); + $frame->set_style($style); + + if ($node instanceof DOMElement && $node->hasAttribute("id")) { + $node->setAttribute("data-dompdf-original-id", $node->getAttribute("id")); + $node->removeAttribute("id"); + } + + return Factory::decorate_frame($frame, $this->_dompdf, $this->_root); + } + + /** + * Create a deep copy: copy this node and all children + * + * @return AbstractFrameDecorator + */ + function deep_copy() + { + $node = $this->_frame->get_node()->cloneNode(); + $frame = new Frame($node); + $style = clone $this->_frame->get_style(); + + $style->reset(); + $frame->set_style($style); + + if ($node instanceof DOMElement && $node->hasAttribute("id")) { + $node->setAttribute("data-dompdf-original-id", $node->getAttribute("id")); + $node->removeAttribute("id"); + } + + $deco = Factory::decorate_frame($frame, $this->_dompdf, $this->_root); + + foreach ($this->get_children() as $child) { + $deco->append_child($child->deep_copy()); + } + + return $deco; + } + + /** + * Create an anonymous child frame, inheriting styles from this frame. + * + * @param string $node_name + * @param string $display + * + * @return AbstractFrameDecorator + */ + public function create_anonymous_child(string $node_name, string $display): AbstractFrameDecorator + { + $style = $this->get_style(); + $child_style = $style->get_stylesheet()->create_style(); + $child_style->set_prop("display", $display); + $child_style->inherit($style); + + $node = $this->get_node()->ownerDocument->createElement($node_name); + $frame = new Frame($node); + $frame->set_style($child_style); + + return Factory::decorate_frame($frame, $this->_dompdf, $this->_root); + } + + function reset() + { + $this->_frame->reset(); + $this->_reflower->reset(); + $this->reset_generated_content(); + $this->revert_counter_increment(); + + $this->content_set = false; + $this->_counters = []; + + // clear parent lookup caches + $this->_cached_parent = null; + $this->_block_parent = null; + $this->_positioned_parent = null; + + // Reset all children + foreach ($this->get_children() as $child) { + $child->reset(); + } + } + + /** + * If this represents a generated node then child nodes represent generated + * content. Remove the children since the content will be generated next + * time this frame is reflowed. + */ + protected function reset_generated_content(): void + { + if ($this->content_set + && $this->get_node()->nodeName === "dompdf_generated" + ) { + $content = $this->get_style()->content; + + if ($content !== "normal" && $content !== "none") { + foreach ($this->get_children() as $child) { + $this->remove_child($child); + } + } + } + } + + /** + * Decrement any counters that were incremented on the current node, unless + * that node is the body. + */ + protected function revert_counter_increment(): void + { + if ($this->content_set + && $this->get_node()->nodeName !== "body" + && ($decrement = $this->get_style()->counter_increment) !== "none" + ) { + $this->decrement_counters($decrement); + } + } + + // Getters ----------- + + function get_id() + { + return $this->_frame->get_id(); + } + + /** + * @return Frame + */ + function get_frame() + { + return $this->_frame; + } + + function get_node() + { + return $this->_frame->get_node(); + } + + function get_style() + { + return $this->_frame->get_style(); + } + + /** + * @deprecated + */ + function get_original_style() + { + return $this->_frame->get_style(); + } + + function get_containing_block($i = null) + { + return $this->_frame->get_containing_block($i); + } + + function get_position($i = null) + { + return $this->_frame->get_position($i); + } + + /** + * @return Dompdf + */ + function get_dompdf() + { + return $this->_dompdf; + } + + public function get_margin_width(): float + { + return $this->_frame->get_margin_width(); + } + + public function get_margin_height(): float + { + return $this->_frame->get_margin_height(); + } + + public function get_content_box(): array + { + return $this->_frame->get_content_box(); + } + + public function get_padding_box(): array + { + return $this->_frame->get_padding_box(); + } + + public function get_border_box(): array + { + return $this->_frame->get_border_box(); + } + + function set_id($id) + { + $this->_frame->set_id($id); + } + + public function set_style(Style $style): void + { + $this->_frame->set_style($style); + } + + function set_containing_block($x = null, $y = null, $w = null, $h = null) + { + $this->_frame->set_containing_block($x, $y, $w, $h); + } + + function set_position($x = null, $y = null) + { + $this->_frame->set_position($x, $y); + } + + function is_auto_height() + { + return $this->_frame->is_auto_height(); + } + + function is_auto_width() + { + return $this->_frame->is_auto_width(); + } + + function __toString() + { + return $this->_frame->__toString(); + } + + function prepend_child(Frame $child, $update_node = true) + { + while ($child instanceof AbstractFrameDecorator) { + $child = $child->_frame; + } + + $this->_frame->prepend_child($child, $update_node); + } + + function append_child(Frame $child, $update_node = true) + { + while ($child instanceof AbstractFrameDecorator) { + $child = $child->_frame; + } + + $this->_frame->append_child($child, $update_node); + } + + function insert_child_before(Frame $new_child, Frame $ref, $update_node = true) + { + while ($new_child instanceof AbstractFrameDecorator) { + $new_child = $new_child->_frame; + } + + if ($ref instanceof AbstractFrameDecorator) { + $ref = $ref->_frame; + } + + $this->_frame->insert_child_before($new_child, $ref, $update_node); + } + + function insert_child_after(Frame $new_child, Frame $ref, $update_node = true) + { + $insert_frame = $new_child; + while ($insert_frame instanceof AbstractFrameDecorator) { + $insert_frame = $insert_frame->_frame; + } + + $reference_frame = $ref; + while ($reference_frame instanceof AbstractFrameDecorator) { + $reference_frame = $reference_frame->_frame; + } + + $this->_frame->insert_child_after($insert_frame, $reference_frame, $update_node); + } + + function remove_child(Frame $child, $update_node = true) + { + while ($child instanceof AbstractFrameDecorator) { + $child = $child->_frame; + } + + return $this->_frame->remove_child($child, $update_node); + } + + /** + * @param bool $use_cache + * @return AbstractFrameDecorator + */ + function get_parent($use_cache = true) + { + if ($use_cache && $this->_cached_parent) { + return $this->_cached_parent; + } + $p = $this->_frame->get_parent(); + if ($p && $deco = $p->get_decorator()) { + while ($tmp = $deco->get_decorator()) { + $deco = $tmp; + } + + return $this->_cached_parent = $deco; + } else { + return $this->_cached_parent = $p; + } + } + + /** + * @return AbstractFrameDecorator + */ + function get_first_child() + { + $c = $this->_frame->get_first_child(); + if ($c && $deco = $c->get_decorator()) { + while ($tmp = $deco->get_decorator()) { + $deco = $tmp; + } + + return $deco; + } else { + if ($c) { + return $c; + } + } + + return null; + } + + /** + * @return AbstractFrameDecorator + */ + function get_last_child() + { + $c = $this->_frame->get_last_child(); + if ($c && $deco = $c->get_decorator()) { + while ($tmp = $deco->get_decorator()) { + $deco = $tmp; + } + + return $deco; + } else { + if ($c) { + return $c; + } + } + + return null; + } + + /** + * @return AbstractFrameDecorator + */ + function get_prev_sibling() + { + $s = $this->_frame->get_prev_sibling(); + if ($s && $deco = $s->get_decorator()) { + while ($tmp = $deco->get_decorator()) { + $deco = $tmp; + } + + return $deco; + } else { + if ($s) { + return $s; + } + } + + return null; + } + + /** + * @return AbstractFrameDecorator + */ + function get_next_sibling() + { + $s = $this->_frame->get_next_sibling(); + if ($s && $deco = $s->get_decorator()) { + while ($tmp = $deco->get_decorator()) { + $deco = $tmp; + } + + return $deco; + } else { + if ($s) { + return $s; + } + } + + return null; + } + + /** + * @return FrameListIterator + */ + public function get_children(): FrameListIterator + { + return new FrameListIterator($this); + } + + /** + * @return FrameTreeIterator + */ + function get_subtree(): FrameTreeIterator + { + return new FrameTreeIterator($this); + } + + function set_positioner(AbstractPositioner $posn) + { + $this->_positioner = $posn; + if ($this->_frame instanceof AbstractFrameDecorator) { + $this->_frame->set_positioner($posn); + } + } + + function set_reflower(AbstractFrameReflower $reflower) + { + $this->_reflower = $reflower; + if ($this->_frame instanceof AbstractFrameDecorator) { + $this->_frame->set_reflower($reflower); + } + } + + /** + * @return AbstractPositioner + */ + function get_positioner() + { + return $this->_positioner; + } + + /** + * @return AbstractFrameReflower + */ + function get_reflower() + { + return $this->_reflower; + } + + /** + * @param Frame $root + */ + function set_root(Frame $root) + { + $this->_root = $root; + + if ($this->_frame instanceof AbstractFrameDecorator) { + $this->_frame->set_root($root); + } + } + + /** + * @return Page + */ + function get_root() + { + return $this->_root; + } + + /** + * @return Block + */ + function find_block_parent() + { + // Find our nearest block level parent + if (isset($this->_block_parent)) { + return $this->_block_parent; + } + + $p = $this->get_parent(); + + while ($p) { + if ($p->is_block()) { + break; + } + + $p = $p->get_parent(); + } + + return $this->_block_parent = $p; + } + + /** + * @return AbstractFrameDecorator + */ + function find_positioned_parent() + { + // Find our nearest relative positioned parent + if (isset($this->_positioned_parent)) { + return $this->_positioned_parent; + } + + $p = $this->get_parent(); + while ($p) { + if ($p->is_positioned()) { + break; + } + + $p = $p->get_parent(); + } + + if (!$p) { + $p = $this->_root; + } + + return $this->_positioned_parent = $p; + } + + /** + * Split this frame at $child. + * The current frame is cloned and $child and all children following + * $child are added to the clone. The clone is then passed to the + * current frame's parent->split() method. + * + * @param Frame|null $child + * @param bool $page_break + * @param bool $forced Whether the page break is forced. + * + * @throws Exception + */ + public function split(?Frame $child = null, bool $page_break = false, bool $forced = false): void + { + if (is_null($child)) { + $this->get_parent()->split($this, $page_break, $forced); + return; + } + + if ($child->get_parent() !== $this) { + throw new Exception("Unable to split: frame is not a child of this one."); + } + + $this->revert_counter_increment(); + + $node = $this->_frame->get_node(); + $split = $this->copy($node->cloneNode()); + + $style = $this->_frame->get_style(); + $split_style = $split->get_style(); + + // Truncate the box decoration at the split, except for the body + if ($node->nodeName !== "body") { + // Clear bottom decoration of original frame + $style->margin_bottom = 0.0; + $style->padding_bottom = 0.0; + $style->border_bottom_width = 0.0; + $style->border_bottom_left_radius = 0.0; + $style->border_bottom_right_radius = 0.0; + + // Clear top decoration of split frame + $split_style->margin_top = 0.0; + $split_style->padding_top = 0.0; + $split_style->border_top_width = 0.0; + $split_style->border_top_left_radius = 0.0; + $split_style->border_top_right_radius = 0.0; + $split_style->page_break_before = "auto"; + } + + $split_style->text_indent = 0.0; + $split_style->counter_reset = "none"; + + $this->is_split = true; + $split->is_split_off = true; + $split->_already_pushed = true; + + $this->get_parent()->insert_child_after($split, $this); + + if ($this instanceof Block) { + // Remove the frames that will be moved to the new split node from + // the line boxes + $this->remove_frames_from_line($child); + + // recalculate the float offsets after paging + foreach ($this->get_line_boxes() as $line_box) { + $line_box->get_float_offsets(); + } + } + + if (!$forced) { + // Reset top margin in case of an unforced page break + // https://www.w3.org/TR/CSS21/page.html#allowed-page-breaks + $child->get_style()->margin_top = 0.0; + } + + // Add $child and all following siblings to the new split node + $iter = $child; + while ($iter) { + $frame = $iter; + $iter = $iter->get_next_sibling(); + $frame->reset(); + $split->append_child($frame); + } + + $this->get_parent()->split($split, $page_break, $forced); + + // Preserve the current counter values. This must be done after the + // parent split, as counters get reset on frame reset + $split->_counters = $this->_counters; + } + + /** + * @param array $counters + */ + public function reset_counters(array $counters): void + { + foreach ($counters as $id => $value) { + $this->reset_counter($id, $value); + } + } + + /** + * @param string $id + * @param int $value + */ + public function reset_counter(string $id = self::DEFAULT_COUNTER, int $value = 0): void + { + $this->get_parent()->_counters[$id] = $value; + } + + /** + * @param array $counters + */ + public function decrement_counters(array $counters): void + { + foreach ($counters as $id => $increment) { + $this->increment_counter($id, $increment * -1); + } + } + + /** + * @param array $counters + */ + public function increment_counters(array $counters): void + { + foreach ($counters as $id => $increment) { + $this->increment_counter($id, $increment); + } + } + + /** + * @param string $id + * @param int $increment + */ + public function increment_counter(string $id = self::DEFAULT_COUNTER, int $increment = 1): void + { + $counter_frame = $this->lookup_counter_frame($id); + + if ($counter_frame) { + if (!isset($counter_frame->_counters[$id])) { + $counter_frame->_counters[$id] = 0; + } + + $counter_frame->_counters[$id] += $increment; + } + } + + /** + * @param string $id + * @return AbstractFrameDecorator|null + */ + function lookup_counter_frame($id = self::DEFAULT_COUNTER) + { + $f = $this->get_parent(); + + while ($f) { + if (isset($f->_counters[$id])) { + return $f; + } + $fp = $f->get_parent(); + + if (!$fp) { + return $f; + } + + $f = $fp; + } + + return null; + } + + /** + * @param string $id + * @param string $type + * @return bool|string + * + * TODO: What version is the best : this one or the one in ListBullet ? + */ + function counter_value(string $id = self::DEFAULT_COUNTER, string $type = "decimal") + { + $type = mb_strtolower($type); + + if (!isset($this->_counters[$id])) { + $this->_counters[$id] = 0; + } + + $value = $this->_counters[$id]; + + switch ($type) { + default: + case "decimal": + return $value; + + case "decimal-leading-zero": + return str_pad($value, 2, "0", STR_PAD_LEFT); + + case "lower-roman": + return Helpers::dec2roman($value); + + case "upper-roman": + return mb_strtoupper(Helpers::dec2roman($value)); + + case "lower-latin": + case "lower-alpha": + return chr((($value - 1) % 26) + ord('a')); + + case "upper-latin": + case "upper-alpha": + return chr((($value - 1) % 26) + ord('A')); + + case "lower-greek": + return Helpers::unichr($value + 944); + + case "upper-greek": + return Helpers::unichr($value + 912); + } + } + + final function position() + { + $this->_positioner->position($this); + } + + /** + * @param float $offset_x + * @param float $offset_y + * @param bool $ignore_self + */ + final function move(float $offset_x, float $offset_y, bool $ignore_self = false): void + { + $this->_positioner->move($this, $offset_x, $offset_y, $ignore_self); + } + + /** + * @param Block|null $block + */ + final function reflow(Block $block = null) + { + // Uncomment this to see the frames before they're laid out, instead of + // during rendering. + //echo $this->_frame; flush(); + $this->_reflower->reflow($block); + } + + /** + * @return array + */ + final public function get_min_max_width(): array + { + return $this->_reflower->get_min_max_width(); + } +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameDecorator/Block.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameDecorator/Block.php new file mode 100644 index 0000000..1fcf134 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameDecorator/Block.php @@ -0,0 +1,256 @@ +_line_boxes = [new LineBox($this)]; + $this->_cl = 0; + $this->dangling_markers = []; + } + + function reset() + { + parent::reset(); + + $this->_line_boxes = [new LineBox($this)]; + $this->_cl = 0; + $this->dangling_markers = []; + } + + /** + * @return LineBox + */ + function get_current_line_box() + { + return $this->_line_boxes[$this->_cl]; + } + + /** + * @return int + */ + function get_current_line_number() + { + return $this->_cl; + } + + /** + * @return LineBox[] + */ + function get_line_boxes() + { + return $this->_line_boxes; + } + + /** + * @param int $line_number + * @return int + */ + function set_current_line_number($line_number) + { + $line_boxes_count = count($this->_line_boxes); + $cl = max(min($line_number, $line_boxes_count), 0); + return ($this->_cl = $cl); + } + + /** + * @param int $i + */ + function clear_line($i) + { + if (isset($this->_line_boxes[$i])) { + unset($this->_line_boxes[$i]); + } + } + + /** + * @param Frame $frame + * @return LineBox|null + */ + public function add_frame_to_line(Frame $frame): ?LineBox + { + $current_line = $this->_line_boxes[$this->_cl]; + $frame->set_containing_line($current_line); + + // Inline frames are currently treated as wrappers, and are not actually + // added to the line + if ($frame instanceof Inline) { + return null; + } + + $current_line->add_frame($frame); + + $this->increase_line_width($frame->get_margin_width()); + $this->maximize_line_height($frame->get_margin_height(), $frame); + + // Add any dangling list markers to the first line box if it is inline + if ($this->_cl === 0 && $current_line->inline + && $this->dangling_markers !== [] + ) { + foreach ($this->dangling_markers as $marker) { + $current_line->add_list_marker($marker); + $this->maximize_line_height($marker->get_margin_height(), $marker); + } + + $this->dangling_markers = []; + } + + return $current_line; + } + + /** + * Remove the given frame and all following frames and lines from the block. + * + * @param Frame $frame + */ + public function remove_frames_from_line(Frame $frame): void + { + // Inline frames are not added to line boxes themselves, only their + // text frame children + $actualFrame = $frame; + while ($actualFrame !== null && $actualFrame instanceof Inline) { + $actualFrame = $actualFrame->get_first_child(); + } + + if ($actualFrame === null) { + return; + } + + // Search backwards through the lines for $frame + $frame = $actualFrame; + $i = $this->_cl; + $j = null; + + while ($i > 0) { + $line = $this->_line_boxes[$i]; + foreach ($line->get_frames() as $index => $f) { + if ($frame === $f) { + $j = $index; + break 2; + } + } + $i--; + } + + if ($j === null) { + return; + } + + // Remove all lines that follow + for ($k = $this->_cl; $k > $i; $k--) { + unset($this->_line_boxes[$k]); + } + + // Remove the line, if it is empty + if ($j > 0) { + $line->remove_frames($j); + } else { + unset($this->_line_boxes[$i]); + } + + // Reset array indices + $this->_line_boxes = array_values($this->_line_boxes); + $this->_cl = count($this->_line_boxes) - 1; + } + + /** + * @param float $w + */ + public function increase_line_width(float $w): void + { + $this->_line_boxes[$this->_cl]->w += $w; + } + + /** + * @param float $val + * @param Frame $frame + */ + public function maximize_line_height(float $val, Frame $frame): void + { + if ($val > $this->_line_boxes[$this->_cl]->h) { + $this->_line_boxes[$this->_cl]->tallest_frame = $frame; + $this->_line_boxes[$this->_cl]->h = $val; + } + } + + /** + * @param bool $br + */ + public function add_line(bool $br = false): void + { + $line = $this->_line_boxes[$this->_cl]; + + $line->br = $br; + $y = $line->y + $line->h; + + $new_line = new LineBox($this, $y); + + $this->_line_boxes[++$this->_cl] = $new_line; + } + + /** + * @param ListBullet $marker + */ + public function add_dangling_marker(ListBullet $marker): void + { + $this->dangling_markers[] = $marker; + } + + /** + * Inherit any dangling markers from the parent block. + * + * @param Block $block + */ + public function inherit_dangling_markers(self $block): void + { + if ($block->dangling_markers !== []) { + $this->dangling_markers = $block->dangling_markers; + $block->dangling_markers = []; + } + } +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameDecorator/Image.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameDecorator/Image.php new file mode 100644 index 0000000..92ac491 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameDecorator/Image.php @@ -0,0 +1,120 @@ +get_node()->getAttribute("src"); + + $debug_png = $dompdf->getOptions()->getDebugPng(); + if ($debug_png) { + print '[__construct ' . $url . ']'; + } + + list($this->_image_url, /*$type*/, $this->_image_msg) = Cache::resolve_url( + $url, + $dompdf->getProtocol(), + $dompdf->getBaseHost(), + $dompdf->getBasePath(), + $dompdf->getOptions() + ); + + if (Cache::is_broken($this->_image_url) && + $alt = $frame->get_node()->getAttribute("alt") + ) { + $fontMetrics = $dompdf->getFontMetrics(); + $style = $frame->get_style(); + $font = $style->font_family; + $size = $style->font_size; + $word_spacing = $style->word_spacing; + $letter_spacing = $style->letter_spacing; + + $style->width = (4 / 3) * $fontMetrics->getTextWidth($alt, $font, $size, $word_spacing, $letter_spacing); + $style->height = $fontMetrics->getFontHeight($font, $size); + } + } + + /** + * Get the intrinsic pixel dimensions of the image. + * + * @return array Width and height as `float|int`. + */ + public function get_intrinsic_dimensions(): array + { + [$width, $height] = Helpers::dompdf_getimagesize($this->_image_url, $this->_dompdf->getHttpContext()); + + return [$width, $height]; + } + + /** + * Resample the given pixel length according to dpi. + * + * @param float|int $length + * @return float + */ + public function resample($length): float + { + $dpi = $this->_dompdf->getOptions()->getDpi(); + return ($length * 72) / $dpi; + } + + /** + * Return the image's url + * + * @return string The url of this image + */ + function get_image_url() + { + return $this->_image_url; + } + + /** + * Return the image's error message + * + * @return string The image's error message + */ + function get_image_msg() + { + return $this->_image_msg; + } + +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameDecorator/Inline.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameDecorator/Inline.php new file mode 100644 index 0000000..668d795 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameDecorator/Inline.php @@ -0,0 +1,121 @@ +get_style(); + $font = $style->font_family; + $size = $style->font_size; + $fontHeight = $this->_dompdf->getFontMetrics()->getFontHeight($font, $size); + + return ($style->line_height / ($size > 0 ? $size : 1)) * $fontHeight; + } + + public function split(?Frame $child = null, bool $page_break = false, bool $forced = false): void + { + if (is_null($child)) { + $this->get_parent()->split($this, $page_break, $forced); + return; + } + + if ($child->get_parent() !== $this) { + throw new Exception("Unable to split: frame is not a child of this one."); + } + + $this->revert_counter_increment(); + $node = $this->_frame->get_node(); + $split = $this->copy($node->cloneNode()); + + $style = $this->_frame->get_style(); + $split_style = $split->get_style(); + + // Unset the current node's right style properties + $style->margin_right = 0.0; + $style->padding_right = 0.0; + $style->border_right_width = 0.0; + $style->border_top_right_radius = 0.0; + $style->border_bottom_right_radius = 0.0; + + // Unset the split node's left style properties since we don't want them + // to propagate + $split_style->margin_left = 0.0; + $split_style->padding_left = 0.0; + $split_style->border_left_width = 0.0; + $split_style->border_top_left_radius = 0.0; + $split_style->border_bottom_left_radius = 0.0; + + // If this is a generated node don't propagate the content style + if ($split->get_node()->nodeName == "dompdf_generated") { + $split_style->content = "normal"; + } + + //On continuation of inline element on next line, + //don't repeat non-horizontally repeatable background images + //See e.g. in testcase image_variants, long descriptions + if (($url = $style->background_image) && $url !== "none" + && ($repeat = $style->background_repeat) && $repeat !== "repeat" && $repeat !== "repeat-x" + ) { + $split_style->background_image = "none"; + } + + $this->get_parent()->insert_child_after($split, $this); + + // Add $child and all following siblings to the new split node + $iter = $child; + while ($iter) { + $frame = $iter; + $iter = $iter->get_next_sibling(); + $frame->reset(); + $split->append_child($frame); + } + + $parent = $this->get_parent(); + + if ($page_break) { + $parent->split($split, $page_break, $forced); + } elseif ($parent instanceof Inline) { + $parent->split($split); + } + } + +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameDecorator/ListBullet.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameDecorator/ListBullet.php new file mode 100644 index 0000000..703f467 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameDecorator/ListBullet.php @@ -0,0 +1,117 @@ +_frame->get_style(); + + if ($style->list_style_type === "none") { + return 0.0; + } + + return $style->font_size * self::BULLET_SIZE; + } + + /** + * Get the height of the bullet symbol. + * + * @return float + */ + public function get_height(): float + { + $style = $this->_frame->get_style(); + + if ($style->list_style_type === "none") { + return 0.0; + } + + return $style->font_size * self::BULLET_SIZE; + } + + /** + * Get the width of the bullet, including indentation. + */ + public function get_margin_width(): float + { + $style = $this->get_style(); + + if ($style->list_style_type === "none") { + return 0.0; + } + + return $style->font_size * (self::BULLET_SIZE + self::MARKER_INDENT); + } + + /** + * Get the line height for the bullet. + * + * This increases the height of the corresponding line box when necessary. + */ + public function get_margin_height(): float + { + $style = $this->get_style(); + + if ($style->list_style_type === "none") { + return 0.0; + } + + // TODO: This is a copy of `FrameDecorator\Text::get_margin_height()` + // Would be nice to properly refactor that at some point + $font = $style->font_family; + $size = $style->font_size; + $fontHeight = $this->_dompdf->getFontMetrics()->getFontHeight($font, $size); + + return ($style->line_height / ($size > 0 ? $size : 1)) * $fontHeight; + } +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameDecorator/ListBulletImage.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameDecorator/ListBulletImage.php new file mode 100644 index 0000000..d921929 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameDecorator/ListBulletImage.php @@ -0,0 +1,112 @@ +get_style(); + $url = $style->list_style_image; + $frame->get_node()->setAttribute("src", $url); + $this->_img = new Image($frame, $dompdf); + parent::__construct($this->_img, $dompdf); + + $url = $this->_img->get_image_url(); + + if (Cache::is_broken($url)) { + $this->_width = parent::get_width(); + $this->_height = parent::get_height(); + } else { + // Resample the bullet image to be consistent with 'auto' sized images + [$width, $height] = $this->_img->get_intrinsic_dimensions(); + $this->_width = $this->_img->resample($width); + $this->_height = $this->_img->resample($height); + } + } + + public function get_width(): float + { + return $this->_width; + } + + public function get_height(): float + { + return $this->_height; + } + + public function get_margin_width(): float + { + $style = $this->get_style(); + return $this->_width + $style->font_size * self::MARKER_INDENT; + } + + public function get_margin_height(): float + { + $fontMetrics = $this->_dompdf->getFontMetrics(); + $style = $this->get_style(); + $font = $style->font_family; + $size = $style->font_size; + $fontHeight = $fontMetrics->getFontHeight($font, $size); + $baseline = $fontMetrics->getFontBaseline($font, $size); + + // This is the same factor as used in + // `FrameDecorator\Text::get_margin_height()` + $f = $style->line_height / ($size > 0 ? $size : 1); + + // FIXME: Tries to approximate replacing the space above the font + // baseline with the image + return $f * ($fontHeight - $baseline) + $this->_height; + } + + /** + * Return image url + * + * @return string + */ + function get_image_url() + { + return $this->_img->get_image_url(); + } +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameDecorator/NullFrameDecorator.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameDecorator/NullFrameDecorator.php new file mode 100644 index 0000000..f083816 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameDecorator/NullFrameDecorator.php @@ -0,0 +1,33 @@ +_frame->get_style(); + $style->width = 0; + $style->height = 0; + $style->margin = 0; + $style->padding = 0; + } +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameDecorator/Page.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameDecorator/Page.php new file mode 100644 index 0000000..25ef240 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameDecorator/Page.php @@ -0,0 +1,753 @@ +_page_full = false; + $this->_in_table = 0; + $this->bottom_page_edge = null; + } + + /** + * Set the renderer used for this pdf + * + * @param Renderer $renderer the renderer to use + */ + function set_renderer($renderer) + { + $this->_renderer = $renderer; + } + + /** + * Return the renderer used for this pdf + * + * @return Renderer + */ + function get_renderer() + { + return $this->_renderer; + } + + /** + * Calculate the bottom edge of the page area after margins have been + * applied for the current page. + */ + public function calculate_bottom_page_edge(): void + { + [, , , $cbh] = $this->get_containing_block(); + $style = $this->get_style(); + $margin_bottom = (float) $style->length_in_pt($style->margin_bottom, $cbh); + + $this->bottom_page_edge = $cbh - $margin_bottom; + } + + /** + * Returns true if the page is full and is no longer accepting frames. + * + * @return bool + */ + function is_full() + { + return $this->_page_full; + } + + /** + * Start a new page by resetting the full flag. + */ + function next_page() + { + $this->_floating_frames = []; + $this->_renderer->new_page(); + $this->_page_full = false; + } + + /** + * Indicate to the page that a table is currently being reflowed. + */ + function table_reflow_start() + { + $this->_in_table++; + } + + /** + * Indicate to the page that table reflow is finished. + */ + function table_reflow_end() + { + $this->_in_table--; + } + + /** + * Return whether we are currently in a nested table or not + * + * @return bool + */ + function in_nested_table() + { + return $this->_in_table > 1; + } + + /** + * Check if a forced page break is required before $frame. This uses the + * frame's page_break_before property as well as the preceding frame's + * page_break_after property. + * + * @link http://www.w3.org/TR/CSS21/page.html#forced + * + * @param AbstractFrameDecorator $frame the frame to check + * + * @return bool true if a page break occurred + */ + function check_forced_page_break(Frame $frame) + { + // Skip check if page is already split and for the body + if ($this->_page_full || $frame->get_node()->nodeName === "body") { + return false; + } + + $page_breaks = ["always", "left", "right"]; + $style = $frame->get_style(); + + if (($frame->is_block_level() || $style->display === "table-row") + && in_array($style->page_break_before, $page_breaks, true) + ) { + // Prevent cascading splits + $frame->split(null, true, true); + $style->page_break_before = "auto"; + $this->_page_full = true; + $frame->_already_pushed = true; + + return true; + } + + // Find the preceding block-level sibling (or table row). Inline + // elements are treated as if wrapped in an anonymous block container + // here. See https://www.w3.org/TR/CSS21/visuren.html#anonymous-block-level + $prev = $frame->get_prev_sibling(); + while ($prev && (($prev->is_text_node() && $prev->get_node()->nodeValue === "") + || $prev->get_node()->nodeName === "bullet") + ) { + $prev = $prev->get_prev_sibling(); + } + + if ($prev && ($prev->is_block_level() || $prev->get_style()->display === "table-row")) { + if (in_array($prev->get_style()->page_break_after, $page_breaks, true)) { + // Prevent cascading splits + $frame->split(null, true, true); + $prev->get_style()->page_break_after = "auto"; + $this->_page_full = true; + $frame->_already_pushed = true; + + return true; + } + + $prev_last_child = $prev->get_last_child(); + while ($prev_last_child && (($prev_last_child->is_text_node() && $prev_last_child->get_node()->nodeValue === "") + || $prev_last_child->get_node()->nodeName === "bullet") + ) { + $prev_last_child = $prev_last_child->get_prev_sibling(); + } + + if ($prev_last_child + && $prev_last_child->is_block_level() + && in_array($prev_last_child->get_style()->page_break_after, $page_breaks, true) + ) { + $frame->split(null, true, true); + $prev_last_child->get_style()->page_break_after = "auto"; + $this->_page_full = true; + $frame->_already_pushed = true; + + return true; + } + } + + return false; + } + + /** + * Check for a gap between the top content edge of a frame and its child + * content. + * + * Additionally, the top margin, border, and padding of the frame must fit + * on the current page. + * + * @param float $childPos The top margin or line-box edge of the child content. + * @param Frame $frame The parent frame to check. + * @return bool + */ + protected function hasGap(float $childPos, Frame $frame): bool + { + $style = $frame->get_style(); + $cbw = $frame->get_containing_block("w"); + $contentEdge = $frame->get_position("y") + (float) $style->length_in_pt([ + $style->margin_top, + $style->border_top_width, + $style->padding_top + ], $cbw); + + return Helpers::lengthGreater($childPos, $contentEdge) + && Helpers::lengthLessOrEqual($contentEdge, $this->bottom_page_edge); + } + + /** + * Determine if a page break is allowed before $frame + * http://www.w3.org/TR/CSS21/page.html#allowed-page-breaks + * + * In the normal flow, page breaks can occur at the following places: + * + * 1. In the vertical margin between block boxes. When an + * unforced page break occurs here, the used values of the + * relevant 'margin-top' and 'margin-bottom' properties are set + * to '0'. When a forced page break occurs here, the used value + * of the relevant 'margin-bottom' property is set to '0'; the + * relevant 'margin-top' used value may either be set to '0' or + * retained. + * 2. Between line boxes inside a block container box. + * 3. Between the content edge of a block container box and the + * outer edges of its child content (margin edges of block-level + * children or line box edges for inline-level children) if there + * is a (non-zero) gap between them. + * + * These breaks are subject to the following rules: + * + * * Rule A: Breaking at (1) is allowed only if the + * 'page-break-after' and 'page-break-before' properties of all + * the elements generating boxes that meet at this margin allow + * it, which is when at least one of them has the value + * 'always', 'left', or 'right', or when all of them are 'auto'. + * + * * Rule B: However, if all of them are 'auto' and a common + * ancestor of all the elements has a 'page-break-inside' value + * of 'avoid', then breaking here is not allowed. + * + * * Rule C: Breaking at (2) is allowed only if the number of line + * boxes between the break and the start of the enclosing block + * box is the value of 'orphans' or more, and the number of line + * boxes between the break and the end of the box is the value + * of 'widows' or more. + * + * * Rule D: In addition, breaking at (2) or (3) is allowed only + * if the 'page-break-inside' property of the element and all + * its ancestors is 'auto'. + * + * If the above does not provide enough break points to keep content + * from overflowing the page boxes, then rules A, B and D are + * dropped in order to find additional breakpoints. + * + * If that still does not lead to sufficient break points, rule C is + * dropped as well, to find still more break points. + * + * We also allow breaks between table rows. + * + * @param AbstractFrameDecorator $frame the frame to check + * + * @return bool true if a break is allowed, false otherwise + */ + protected function _page_break_allowed(Frame $frame) + { + Helpers::dompdf_debug("page-break", "_page_break_allowed(" . $frame->get_node()->nodeName . ")"); + $display = $frame->get_style()->display; + + // Block Frames (1): + if ($frame->is_block_level() || $display === "-dompdf-image") { + + // Avoid breaks within table-cells + if ($this->_in_table > ($display === "table" ? 1 : 0)) { + Helpers::dompdf_debug("page-break", "In table: " . $this->_in_table); + + return false; + } + + // Rule A + if ($frame->get_style()->page_break_before === "avoid") { + Helpers::dompdf_debug("page-break", "before: avoid"); + + return false; + } + + // Find the preceding block-level sibling. Inline elements are + // treated as if wrapped in an anonymous block container here. See + // https://www.w3.org/TR/CSS21/visuren.html#anonymous-block-level + $prev = $frame->get_prev_sibling(); + while ($prev && (($prev->is_text_node() && $prev->get_node()->nodeValue === "") + || $prev->get_node()->nodeName === "bullet") + ) { + $prev = $prev->get_prev_sibling(); + } + + // Does the previous element allow a page break after? + if ($prev && ($prev->is_block_level() || $prev->get_style()->display === "-dompdf-image") + && $prev->get_style()->page_break_after === "avoid" + ) { + Helpers::dompdf_debug("page-break", "after: avoid"); + + return false; + } + + // Rules B & D + $parent = $frame->get_parent(); + $p = $parent; + while ($p) { + if ($p->get_style()->page_break_inside === "avoid") { + Helpers::dompdf_debug("page-break", "parent->inside: avoid"); + + return false; + } + $p = $p->find_block_parent(); + } + + // To prevent cascading page breaks when a top-level element has + // page-break-inside: avoid, ensure that at least one frame is + // on the page before splitting. + if ($parent->get_node()->nodeName === "body" && !$prev) { + // We are the body's first child + Helpers::dompdf_debug("page-break", "Body's first child."); + + return false; + } + + // Check for a possible type (3) break + if (!$prev && $parent && !$this->hasGap($frame->get_position("y"), $parent)) { + Helpers::dompdf_debug("page-break", "First block-level frame, no gap"); + + return false; + } + + Helpers::dompdf_debug("page-break", "block: break allowed"); + + return true; + + } // Inline frames (2): + else { + if ($frame->is_inline_level()) { + + // Avoid breaks within table-cells + if ($this->_in_table) { + Helpers::dompdf_debug("page-break", "In table: " . $this->_in_table); + + return false; + } + + // Rule C + $block_parent = $frame->find_block_parent(); + $parent_style = $block_parent->get_style(); + $line = $block_parent->get_current_line_box(); + $line_count = count($block_parent->get_line_boxes()); + $line_number = $frame->get_containing_line() && empty($line->get_frames()) + ? $line_count - 1 + : $line_count; + + // The line number of the frame can be less than the current + // number of line boxes, in case we are backtracking. As long as + // we are not checking for widows yet, just checking against the + // number of line boxes is sufficient in most cases, though. + if ($line_number <= $parent_style->orphans) { + Helpers::dompdf_debug("page-break", "orphans"); + + return false; + } + + // FIXME: Checking widows is tricky without having laid out the + // remaining line boxes. Just ignore it for now... + + // Rule D + $p = $block_parent; + while ($p) { + if ($p->get_style()->page_break_inside === "avoid") { + Helpers::dompdf_debug("page-break", "parent->inside: avoid"); + + return false; + } + $p = $p->find_block_parent(); + } + + // To prevent cascading page breaks when a top-level element has + // page-break-inside: avoid, ensure that at least one frame with + // some content is on the page before splitting. + $prev = $frame->get_prev_sibling(); + while ($prev && ($prev->is_text_node() && trim($prev->get_node()->nodeValue) == "")) { + $prev = $prev->get_prev_sibling(); + } + + if ($block_parent->get_node()->nodeName === "body" && !$prev) { + // We are the body's first child + Helpers::dompdf_debug("page-break", "Body's first child."); + + return false; + } + + Helpers::dompdf_debug("page-break", "inline: break allowed"); + + return true; + + // Table-rows + } else { + if ($display === "table-row") { + + // If this is a nested table, prevent the page from breaking + if ($this->_in_table > 1) { + Helpers::dompdf_debug("page-break", "table: nested table"); + + return false; + } + + // Rule A (table row) + if ($frame->get_style()->page_break_before === "avoid") { + Helpers::dompdf_debug("page-break", "before: avoid"); + + return false; + } + + // Find the preceding row + $prev = $frame->get_prev_sibling(); + + if (!$prev) { + $prev_group = $frame->get_parent()->get_prev_sibling(); + + if ($prev_group + && in_array($prev_group->get_style()->display, Table::ROW_GROUPS, true) + ) { + $prev = $prev_group->get_last_child(); + } + } + + // Check if a page break is allowed after the preceding row + if ($prev && $prev->get_style()->page_break_after === "avoid") { + Helpers::dompdf_debug("page-break", "after: avoid"); + + return false; + } + + // Avoid breaking before the first row of a table + if (!$prev) { + Helpers::dompdf_debug("page-break", "table: first-row"); + + return false; + } + + // Rule B (table row) + // Check if the page_break_inside property is not 'avoid' + // for the parent table or any of its ancestors + $table = Table::find_parent_table($frame); + + $p = $table; + while ($p) { + if ($p->get_style()->page_break_inside === "avoid") { + Helpers::dompdf_debug("page-break", "parent->inside: avoid"); + + return false; + } + $p = $p->find_block_parent(); + } + + Helpers::dompdf_debug("page-break", "table-row: break allowed"); + + return true; + } else { + if (in_array($display, Table::ROW_GROUPS, true)) { + + // Disallow breaks at row-groups: only split at row boundaries + return false; + + } else { + Helpers::dompdf_debug("page-break", "? " . $display); + + return false; + } + } + } + } + } + + /** + * Check if $frame will fit on the page. If the frame does not fit, + * the frame tree is modified so that a page break occurs in the + * correct location. + * + * @param AbstractFrameDecorator $frame the frame to check + * + * @return bool + */ + function check_page_break(Frame $frame) + { + if ($this->_page_full || $frame->_already_pushed + // Never check for breaks on empty text nodes + || ($frame->is_text_node() && $frame->get_node()->nodeValue === "") + ) { + return false; + } + + $p = $frame; + do { + $display = $p->get_style()->display; + if ($display == "table-row") { + if ($p->_already_pushed) { return false; } + } + } while ($p = $p->get_parent()); + + // If the frame is absolute or fixed it shouldn't break + $p = $frame; + do { + if ($p->is_absolute()) { + return false; + } + } while ($p = $p->get_parent()); + + $margin_height = $frame->get_margin_height(); + + // Determine the frame's maximum y value + $max_y = (float)$frame->get_position("y") + $margin_height; + + // If a split is to occur here, then the bottom margins & paddings of all + // parents of $frame must fit on the page as well: + $p = $frame->get_parent(); + while ($p && $p !== $this) { + $cbw = $p->get_containing_block("w"); + $max_y += (float) $p->get_style()->computed_bottom_spacing($cbw); + $p = $p->get_parent(); + } + + // Check if $frame flows off the page + if (Helpers::lengthLessOrEqual($max_y, $this->bottom_page_edge)) { + // no: do nothing + return false; + } + + Helpers::dompdf_debug("page-break", "check_page_break"); + Helpers::dompdf_debug("page-break", "in_table: " . $this->_in_table); + + // yes: determine page break location + $iter = $frame; + $flg = false; + $pushed_flg = false; + + $in_table = $this->_in_table; + + Helpers::dompdf_debug("page-break", "Starting search"); + while ($iter) { + // echo "\nbacktrack: " .$iter->get_node()->nodeName ." ".spl_object_hash($iter->get_node()). ""; + if ($iter === $this) { + Helpers::dompdf_debug("page-break", "reached root."); + // We've reached the root in our search. Just split at $frame. + break; + } + + if ($iter->_already_pushed) { + $pushed_flg = true; + } elseif ($this->_page_break_allowed($iter)) { + Helpers::dompdf_debug("page-break", "break allowed, splitting."); + $iter->split(null, true); + $this->_page_full = true; + $this->_in_table = $in_table; + $iter->_already_pushed = true; + $frame->_already_pushed = true; + + return true; + } + + if (!$flg && $next = $iter->get_last_child()) { + Helpers::dompdf_debug("page-break", "following last child."); + + if ($next->is_table()) { + $this->_in_table++; + } + + $iter = $next; + $pushed_flg = false; + continue; + } + + if ($pushed_flg) { + // The frame was already pushed, avoid breaking on a previous page + break; + } + + $next = $iter->get_prev_sibling(); + // Skip empty text nodes + while ($next && $next->is_text_node() && $next->get_node()->nodeValue === "") { + $next = $next->get_prev_sibling(); + } + + if ($next) { + Helpers::dompdf_debug("page-break", "following prev sibling."); + + if ($next->is_table() && !$iter->is_table()) { + $this->_in_table++; + } elseif (!$next->is_table() && $iter->is_table()) { + $this->_in_table--; + } + + $iter = $next; + $flg = false; + continue; + } + + if ($next = $iter->get_parent()) { + Helpers::dompdf_debug("page-break", "following parent."); + + if ($iter->is_table()) { + $this->_in_table--; + } + + $iter = $next; + $flg = true; + continue; + } + + break; + } + + $this->_in_table = $in_table; + + // No valid page break found. Just break at $frame. + Helpers::dompdf_debug("page-break", "no valid break found, just splitting."); + + // If we are in a table, backtrack to the nearest top-level table row + if ($this->_in_table) { + $iter = $frame; + while ($iter && $iter->get_style()->display !== "table-row" && $iter->get_style()->display !== 'table-row-group' && $iter->_already_pushed === false) { + $iter = $iter->get_parent(); + } + + if ($iter) { + $iter->split(null, true); + $iter->_already_pushed = true; + } else { + return false; + } + } else { + $frame->split(null, true); + } + + $this->_page_full = true; + $frame->_already_pushed = true; + + return true; + } + + //........................................................................ + + public function split(?Frame $child = null, bool $page_break = false, bool $forced = false): void + { + // Do nothing + } + + /** + * Add a floating frame + * + * @param Frame $frame + * + * @return void + */ + function add_floating_frame(Frame $frame) + { + array_unshift($this->_floating_frames, $frame); + } + + /** + * @return Frame[] + */ + function get_floating_frames() + { + return $this->_floating_frames; + } + + /** + * @param $key + */ + public function remove_floating_frame($key) + { + unset($this->_floating_frames[$key]); + } + + /** + * @param Frame $child + * @return int|mixed + */ + public function get_lowest_float_offset(Frame $child) + { + $style = $child->get_style(); + $side = $style->clear; + $float = $style->float; + + $y = 0; + + if ($float === "none") { + foreach ($this->_floating_frames as $key => $frame) { + if ($side === "both" || $frame->get_style()->float === $side) { + $y = max($y, $frame->get_position("y") + $frame->get_margin_height()); + } + $this->remove_floating_frame($key); + } + } + + if ($y > 0) { + $y++; // add 1px buffer from float + } + + return $y; + } +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameDecorator/Table.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameDecorator/Table.php new file mode 100644 index 0000000..2770cbe --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameDecorator/Table.php @@ -0,0 +1,343 @@ +_cellmap = new Cellmap($this); + + if ($frame->get_style()->table_layout === "fixed") { + $this->_cellmap->set_layout_fixed(true); + } + + $this->_headers = []; + $this->_footers = []; + } + + public function reset() + { + parent::reset(); + $this->_cellmap->reset(); + $this->_headers = []; + $this->_footers = []; + $this->_reflower->reset(); + } + + //........................................................................ + + /** + * Split the table at $row. $row and all subsequent rows will be + * added to the clone. This method is overridden in order to remove + * frames from the cellmap properly. + */ + public function split(?Frame $child = null, bool $page_break = false, bool $forced = false): void + { + if (is_null($child)) { + parent::split($child, $page_break, $forced); + return; + } + + // If $child is a header or if it is the first non-header row, do + // not duplicate headers, simply move the table to the next page. + if (count($this->_headers) + && !in_array($child, $this->_headers, true) + && !in_array($child->get_prev_sibling(), $this->_headers, true) + ) { + $first_header = null; + + // Insert copies of the table headers before $child + foreach ($this->_headers as $header) { + + $new_header = $header->deep_copy(); + + if (is_null($first_header)) { + $first_header = $new_header; + } + + $this->insert_child_before($new_header, $child); + } + + parent::split($first_header, $page_break, $forced); + + } elseif (in_array($child->get_style()->display, self::ROW_GROUPS, true)) { + + // Individual rows should have already been handled + parent::split($child, $page_break, $forced); + + } else { + + $iter = $child; + + while ($iter) { + $this->_cellmap->remove_row($iter); + $iter = $iter->get_next_sibling(); + } + + parent::split($child, $page_break, $forced); + } + } + + public function copy(DOMNode $node) + { + $deco = parent::copy($node); + + // In order to keep columns' widths through pages + $deco->_cellmap->set_columns($this->_cellmap->get_columns()); + $deco->_cellmap->lock_columns(); + + return $deco; + } + + /** + * Static function to locate the parent table of a frame + * + * @param Frame $frame + * + * @return Table the table that is an ancestor of $frame + */ + public static function find_parent_table(Frame $frame) + { + while ($frame = $frame->get_parent()) { + if ($frame->is_table()) { + break; + } + } + + return $frame; + } + + /** + * Return this table's Cellmap + * + * @return Cellmap + */ + public function get_cellmap() + { + return $this->_cellmap; + } + + //........................................................................ + + /** + * Check for text nodes between valid table children that only contain white + * space, except if white space is to be preserved. + * + * @param AbstractFrameDecorator $frame + * + * @return bool + */ + private function isEmptyTextNode(AbstractFrameDecorator $frame): bool + { + // This is based on the white-space pattern in `FrameReflower\Text`, + // i.e. only match on collapsible white space + $wsPattern = '/^[^\S\xA0\x{202F}\x{2007}]*$/u'; + $validChildOrNull = function ($frame) { + return $frame === null + || in_array($frame->get_style()->display, self::VALID_CHILDREN, true); + }; + + return $frame instanceof Text + && !$frame->is_pre() + && preg_match($wsPattern, $frame->get_text()) + && $validChildOrNull($frame->get_prev_sibling()) + && $validChildOrNull($frame->get_next_sibling()); + } + + /** + * Restructure tree so that the table has the correct structure. Misplaced + * children are appropriately wrapped in anonymous row groups, rows, and + * cells. + * + * https://www.w3.org/TR/CSS21/tables.html#anonymous-boxes + */ + public function normalize(): void + { + $column_caption = ["table-column-group", "table-column", "table-caption"]; + $children = iterator_to_array($this->get_children()); + $tbody = null; + + foreach ($children as $child) { + $display = $child->get_style()->display; + + if (in_array($display, self::ROW_GROUPS, true)) { + // Reset anonymous tbody + $tbody = null; + + // Add headers and footers + if ($display === "table-header-group") { + $this->_headers[] = $child; + } elseif ($display === "table-footer-group") { + $this->_footers[] = $child; + } + continue; + } + + if (in_array($display, $column_caption, true)) { + continue; + } + + // Remove empty text nodes between valid children + if ($this->isEmptyTextNode($child)) { + $this->remove_child($child); + continue; + } + + // Catch consecutive misplaced frames within a single anonymous group + if ($tbody === null) { + $tbody = $this->create_anonymous_child("tbody", "table-row-group"); + $this->insert_child_before($tbody, $child); + } + + $tbody->append_child($child); + } + + // Handle empty table: Make sure there is at least one row group + if (!$this->get_first_child()) { + $tbody = $this->create_anonymous_child("tbody", "table-row-group"); + $this->append_child($tbody); + } + + foreach ($this->get_children() as $child) { + $display = $child->get_style()->display; + + if (in_array($display, self::ROW_GROUPS, true)) { + $this->normalizeRowGroup($child); + } + } + } + + private function normalizeRowGroup(AbstractFrameDecorator $frame): void + { + $children = iterator_to_array($frame->get_children()); + $tr = null; + + foreach ($children as $child) { + $display = $child->get_style()->display; + + if ($display === "table-row") { + // Reset anonymous tr + $tr = null; + continue; + } + + // Remove empty text nodes between valid children + if ($this->isEmptyTextNode($child)) { + $frame->remove_child($child); + continue; + } + + // Catch consecutive misplaced frames within a single anonymous row + if ($tr === null) { + $tr = $frame->create_anonymous_child("tr", "table-row"); + $frame->insert_child_before($tr, $child); + } + + $tr->append_child($child); + } + + // Handle empty row group: Make sure there is at least one row + if (!$frame->get_first_child()) { + $tr = $frame->create_anonymous_child("tr", "table-row"); + $frame->append_child($tr); + } + + foreach ($frame->get_children() as $child) { + $this->normalizeRow($child); + } + } + + private function normalizeRow(AbstractFrameDecorator $frame): void + { + $children = iterator_to_array($frame->get_children()); + $td = null; + + foreach ($children as $child) { + $display = $child->get_style()->display; + + if ($display === "table-cell") { + // Reset anonymous td + $td = null; + continue; + } + + // Remove empty text nodes between valid children + if ($this->isEmptyTextNode($child)) { + $frame->remove_child($child); + continue; + } + + // Catch consecutive misplaced frames within a single anonymous cell + if ($td === null) { + $td = $frame->create_anonymous_child("td", "table-cell"); + $frame->insert_child_before($td, $child); + } + + $td->append_child($child); + } + + // Handle empty row: Make sure there is at least one cell + if (!$frame->get_first_child()) { + $td = $frame->create_anonymous_child("td", "table-cell"); + $frame->append_child($td); + } + } +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameDecorator/TableCell.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameDecorator/TableCell.php new file mode 100644 index 0000000..d382164 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameDecorator/TableCell.php @@ -0,0 +1,143 @@ +_resolved_borders = []; + $this->_content_height = 0; + } + + //........................................................................ + + function reset() + { + parent::reset(); + $this->_resolved_borders = []; + $this->_content_height = 0; + $this->_frame->reset(); + } + + /** + * @return int + */ + function get_content_height() + { + return $this->_content_height; + } + + /** + * @param $height + */ + function set_content_height($height) + { + $this->_content_height = $height; + } + + /** + * @param $height + */ + function set_cell_height($height) + { + $style = $this->get_style(); + $v_space = (float)$style->length_in_pt( + [ + $style->margin_top, + $style->padding_top, + $style->border_top_width, + $style->border_bottom_width, + $style->padding_bottom, + $style->margin_bottom + ], + (float)$style->length_in_pt($style->height) + ); + + $new_height = $height - $v_space; + $style->set_used("height", $new_height); + + if ($new_height > $this->_content_height) { + $y_offset = 0; + + // Adjust our vertical alignment + switch ($style->vertical_align) { + default: + case "baseline": + // FIXME: this isn't right + + case "top": + // Don't need to do anything + return; + + case "middle": + $y_offset = ($new_height - $this->_content_height) / 2; + break; + + case "bottom": + $y_offset = $new_height - $this->_content_height; + break; + } + + if ($y_offset) { + // Move our children + foreach ($this->get_line_boxes() as $line) { + foreach ($line->get_frames() as $frame) { + $frame->move(0, $y_offset); + } + } + } + } + } + + /** + * @param $side + * @param $border_spec + */ + function set_resolved_border($side, $border_spec) + { + $this->_resolved_borders[$side] = $border_spec; + } + + /** + * @param $side + * @return mixed + */ + function get_resolved_border($side) + { + return $this->_resolved_borders[$side]; + } + + /** + * @return array + */ + function get_resolved_borders() + { + return $this->_resolved_borders; + } +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameDecorator/TableRow.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameDecorator/TableRow.php new file mode 100644 index 0000000..ba985c9 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameDecorator/TableRow.php @@ -0,0 +1,28 @@ +get_parent(); + $cellmap = $parent->get_cellmap(); + $iter = $child; + + while ($iter) { + $cellmap->remove_row($iter); + $iter = $iter->get_next_sibling(); + } + + // Remove all subsequent row groups from the cellmap + $iter = $this->get_next_sibling(); + + while ($iter) { + $cellmap->remove_row_group($iter); + $iter = $iter->get_next_sibling(); + } + + // If we are splitting at the first child remove the + // table-row-group from the cellmap as well + if ($child === $this->get_first_child()) { + $cellmap->remove_row_group($this); + parent::split(null, $page_break, $forced); + return; + } + + $cellmap->update_row_group($this, $child->get_prev_sibling()); + parent::split($child, $page_break, $forced); + } +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameDecorator/Text.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameDecorator/Text.php new file mode 100644 index 0000000..9d66934 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameDecorator/Text.php @@ -0,0 +1,191 @@ +is_text_node()) { + throw new Exception("Text_Decorator can only be applied to #text nodes."); + } + + parent::__construct($frame, $dompdf); + $this->text_spacing = 0.0; + } + + function reset() + { + parent::reset(); + $this->text_spacing = 0.0; + } + + // Accessor methods + + /** + * @return float + */ + public function get_text_spacing(): float + { + return $this->text_spacing; + } + + /** + * @return string + */ + function get_text() + { + // FIXME: this should be in a child class (and is incorrect) +// if ( $this->_frame->get_style()->content !== "normal" ) { +// $this->_frame->get_node()->data = $this->_frame->get_style()->content; +// $this->_frame->get_style()->content = "normal"; +// } + +// Helpers::pre_r("---"); +// $style = $this->_frame->get_style(); +// var_dump($text = $this->_frame->get_node()->data); +// var_dump($asc = utf8_decode($text)); +// for ($i = 0; $i < strlen($asc); $i++) +// Helpers::pre_r("$i: " . $asc[$i] . " - " . ord($asc[$i])); +// Helpers::pre_r("width: " . $this->_dompdf->getFontMetrics()->getTextWidth($text, $style->font_family, $style->font_size)); + + return $this->_frame->get_node()->data; + } + + //........................................................................ + + /** + * Vertical padding, border, and margin do not apply when determining the + * height for inline frames. + * + * http://www.w3.org/TR/CSS21/visudet.html#inline-non-replaced + * + * The vertical padding, border and margin of an inline, non-replaced box + * start at the top and bottom of the content area, not the + * 'line-height'. But only the 'line-height' is used to calculate the + * height of the line box. + * + * @return float + */ + public function get_margin_height(): float + { + // This function is also called in add_frame_to_line() and is used to + // determine the line height + $style = $this->get_style(); + $font = $style->font_family; + $size = $style->font_size; + $fontHeight = $this->_dompdf->getFontMetrics()->getFontHeight($font, $size); + + return ($style->line_height / ($size > 0 ? $size : 1)) * $fontHeight; + } + + public function get_padding_box(): array + { + $style = $this->_frame->get_style(); + $pb = $this->_frame->get_padding_box(); + $pb[3] = $pb["h"] = (float) $style->length_in_pt($style->height); + return $pb; + } + + /** + * @param float $spacing + */ + public function set_text_spacing(float $spacing): void + { + $this->text_spacing = $spacing; + $this->recalculate_width(); + } + + /** + * Recalculate the text width + * + * @return float + */ + public function recalculate_width(): float + { + $fontMetrics = $this->_dompdf->getFontMetrics(); + $style = $this->get_style(); + $text = $this->get_text(); + $font = $style->font_family; + $size = $style->font_size; + $word_spacing = $this->text_spacing + $style->word_spacing; + $letter_spacing = $style->letter_spacing; + $text_width = $fontMetrics->getTextWidth($text, $font, $size, $word_spacing, $letter_spacing); + + $style->set_used("width", $text_width); + return $text_width; + } + + // Text manipulation methods + + /** + * Split the text in this frame at the offset specified. The remaining + * text is added as a sibling frame following this one and is returned. + * + * @param int $offset + * @return Frame|null + */ + function split_text($offset) + { + if ($offset == 0) { + return null; + } + + $split = $this->_frame->get_node()->splitText($offset); + if ($split === false) { + return null; + } + + $deco = $this->copy($split); + + $p = $this->get_parent(); + $p->insert_child_after($deco, $this, false); + + if ($p instanceof Inline) { + $p->split($deco); + } + + return $deco; + } + + /** + * @param int $offset + * @param int $count + */ + function delete_text($offset, $count) + { + $this->_frame->get_node()->deleteData($offset, $count); + } + + /** + * @param string $text + */ + function set_text($text) + { + $this->_frame->get_node()->data = $text; + } +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameReflower/AbstractFrameReflower.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameReflower/AbstractFrameReflower.php new file mode 100644 index 0000000..fa0cc51 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameReflower/AbstractFrameReflower.php @@ -0,0 +1,705 @@ +_frame = $frame; + $this->_min_max_child_cache = null; + $this->_min_max_cache = null; + } + + /** + * @return Dompdf + */ + function get_dompdf() + { + return $this->_frame->get_dompdf(); + } + + public function reset(): void + { + $this->_min_max_child_cache = null; + $this->_min_max_cache = null; + } + + /** + * Determine the actual containing block for absolute and fixed position. + * + * https://www.w3.org/TR/CSS21/visudet.html#containing-block-details + */ + protected function determine_absolute_containing_block(): void + { + $frame = $this->_frame; + $style = $frame->get_style(); + + switch ($style->position) { + case "absolute": + $parent = $frame->find_positioned_parent(); + if ($parent !== $frame->get_root()) { + $parent_style = $parent->get_style(); + $parent_padding_box = $parent->get_padding_box(); + //FIXME: an accurate measure of the positioned parent height + // is not possible until reflow has completed; + // we'll fall back to the parent's containing block, + // which is wrong for auto-height parents + if ($parent_style->height === "auto") { + $parent_containing_block = $parent->get_containing_block(); + $containing_block_height = $parent_containing_block["h"] - + (float)$parent_style->length_in_pt([ + $parent_style->margin_top, + $parent_style->margin_bottom, + $parent_style->border_top_width, + $parent_style->border_bottom_width + ], $parent_containing_block["w"]); + } else { + $containing_block_height = $parent_padding_box["h"]; + } + $frame->set_containing_block($parent_padding_box["x"], $parent_padding_box["y"], $parent_padding_box["w"], $containing_block_height); + break; + } + case "fixed": + $initial_cb = $frame->get_root()->get_first_child()->get_containing_block(); + $frame->set_containing_block($initial_cb["x"], $initial_cb["y"], $initial_cb["w"], $initial_cb["h"]); + break; + default: + // Nothing to do, containing block already set via parent + break; + } + } + + /** + * Collapse frames margins + * http://www.w3.org/TR/CSS21/box.html#collapsing-margins + */ + protected function _collapse_margins(): void + { + $frame = $this->_frame; + + // Margins of float/absolutely positioned/inline-level elements do not collapse + if (!$frame->is_in_flow() || $frame->is_inline_level() + || $frame->get_root() === $frame || $frame->get_parent() === $frame->get_root() + ) { + return; + } + + $cb = $frame->get_containing_block(); + $style = $frame->get_style(); + + $t = $style->length_in_pt($style->margin_top, $cb["w"]); + $b = $style->length_in_pt($style->margin_bottom, $cb["w"]); + + // Handle 'auto' values + if ($t === "auto") { + $style->set_used("margin_top", 0.0); + $t = 0.0; + } + + if ($b === "auto") { + $style->set_used("margin_bottom", 0.0); + $b = 0.0; + } + + // Collapse vertical margins: + $n = $frame->get_next_sibling(); + if ( $n && !($n->is_block_level() && $n->is_in_flow()) ) { + while ($n = $n->get_next_sibling()) { + if ($n->is_block_level() && $n->is_in_flow()) { + break; + } + + if (!$n->get_first_child()) { + $n = null; + break; + } + } + } + + if ($n) { + $n_style = $n->get_style(); + $n_t = (float)$n_style->length_in_pt($n_style->margin_top, $cb["w"]); + + $b = $this->get_collapsed_margin_length($b, $n_t); + $style->set_used("margin_bottom", $b); + $n_style->set_used("margin_top", 0.0); + } + + // Collapse our first child's margin, if there is no border or padding + if ($style->border_top_width == 0 && $style->length_in_pt($style->padding_top) == 0) { + $f = $this->_frame->get_first_child(); + if ( $f && !($f->is_block_level() && $f->is_in_flow()) ) { + while ($f = $f->get_next_sibling()) { + if ($f->is_block_level() && $f->is_in_flow()) { + break; + } + + if (!$f->get_first_child()) { + $f = null; + break; + } + } + } + + // Margins are collapsed only between block-level boxes + if ($f) { + $f_style = $f->get_style(); + $f_t = (float)$f_style->length_in_pt($f_style->margin_top, $cb["w"]); + + $t = $this->get_collapsed_margin_length($t, $f_t); + $style->set_used("margin_top", $t); + $f_style->set_used("margin_top", 0.0); + } + } + + // Collapse our last child's margin, if there is no border or padding + if ($style->border_bottom_width == 0 && $style->length_in_pt($style->padding_bottom) == 0) { + $l = $this->_frame->get_last_child(); + if ( $l && !($l->is_block_level() && $l->is_in_flow()) ) { + while ($l = $l->get_prev_sibling()) { + if ($l->is_block_level() && $l->is_in_flow()) { + break; + } + + if (!$l->get_last_child()) { + $l = null; + break; + } + } + } + + // Margins are collapsed only between block-level boxes + if ($l) { + $l_style = $l->get_style(); + $l_b = (float)$l_style->length_in_pt($l_style->margin_bottom, $cb["w"]); + + $b = $this->get_collapsed_margin_length($b, $l_b); + $style->set_used("margin_bottom", $b); + $l_style->set_used("margin_bottom", 0.0); + } + } + } + + /** + * Get the combined (collapsed) length of two adjoining margins. + * + * See http://www.w3.org/TR/CSS21/box.html#collapsing-margins. + * + * @param float $l1 + * @param float $l2 + * + * @return float + */ + private function get_collapsed_margin_length(float $l1, float $l2): float + { + if ($l1 < 0 && $l2 < 0) { + return min($l1, $l2); // min(x, y) = - max(abs(x), abs(y)), if x < 0 && y < 0 + } + + if ($l1 < 0 || $l2 < 0) { + return $l1 + $l2; // x + y = x - abs(y), if y < 0 + } + + return max($l1, $l2); + } + + /** + * Handle relative positioning according to + * https://www.w3.org/TR/CSS21/visuren.html#relative-positioning. + * + * @param AbstractFrameDecorator $frame The frame to handle. + */ + protected function position_relative(AbstractFrameDecorator $frame): void + { + $style = $frame->get_style(); + + if ($style->position === "relative") { + $cb = $frame->get_containing_block(); + $top = $style->length_in_pt($style->top, $cb["h"]); + $right = $style->length_in_pt($style->right, $cb["w"]); + $bottom = $style->length_in_pt($style->bottom, $cb["h"]); + $left = $style->length_in_pt($style->left, $cb["w"]); + + // FIXME RTL case: + // if ($left !== "auto" && $right !== "auto") $left = -$right; + if ($left === "auto" && $right === "auto") { + $left = 0; + } elseif ($left === "auto") { + $left = -$right; + } + + if ($top === "auto" && $bottom === "auto") { + $top = 0; + } elseif ($top === "auto") { + $top = -$bottom; + } + + $frame->move($left, $top); + } + } + + /** + * @param Block|null $block + */ + abstract function reflow(Block $block = null); + + /** + * Resolve the `min-width` property. + * + * Resolves to 0 if not set or if a percentage and the containing-block + * width is not defined. + * + * @param float|null $cbw Width of the containing block. + * + * @return float + */ + protected function resolve_min_width(?float $cbw): float + { + $style = $this->_frame->get_style(); + $min_width = $style->min_width; + + return $min_width !== "auto" + ? $style->length_in_pt($min_width, $cbw ?? 0) + : 0.0; + } + + /** + * Resolve the `max-width` property. + * + * Resolves to `INF` if not set or if a percentage and the containing-block + * width is not defined. + * + * @param float|null $cbw Width of the containing block. + * + * @return float + */ + protected function resolve_max_width(?float $cbw): float + { + $style = $this->_frame->get_style(); + $max_width = $style->max_width; + + return $max_width !== "none" + ? $style->length_in_pt($max_width, $cbw ?? INF) + : INF; + } + + /** + * Resolve the `min-height` property. + * + * Resolves to 0 if not set or if a percentage and the containing-block + * height is not defined. + * + * @param float|null $cbh Height of the containing block. + * + * @return float + */ + protected function resolve_min_height(?float $cbh): float + { + $style = $this->_frame->get_style(); + $min_height = $style->min_height; + + return $min_height !== "auto" + ? $style->length_in_pt($min_height, $cbh ?? 0) + : 0.0; + } + + /** + * Resolve the `max-height` property. + * + * Resolves to `INF` if not set or if a percentage and the containing-block + * height is not defined. + * + * @param float|null $cbh Height of the containing block. + * + * @return float + */ + protected function resolve_max_height(?float $cbh): float + { + $style = $this->_frame->get_style(); + $max_height = $style->max_height; + + return $max_height !== "none" + ? $style->length_in_pt($style->max_height, $cbh ?? INF) + : INF; + } + + /** + * Get the minimum and maximum preferred width of the contents of the frame, + * as requested by its children. + * + * @return array A two-element array of min and max width. + */ + public function get_min_max_child_width(): array + { + if (!is_null($this->_min_max_child_cache)) { + return $this->_min_max_child_cache; + } + + $low = []; + $high = []; + + for ($iter = $this->_frame->get_children(); $iter->valid(); $iter->next()) { + $inline_min = 0; + $inline_max = 0; + + // Add all adjacent inline widths together to calculate max width + while ($iter->valid() && ($iter->current()->is_inline_level() || $iter->current()->get_style()->display === "-dompdf-image")) { + /** @var AbstractFrameDecorator */ + $child = $iter->current(); + $child->get_reflower()->_set_content(); + $minmax = $child->get_min_max_width(); + + if (in_array($child->get_style()->white_space, ["pre", "nowrap"], true)) { + $inline_min += $minmax["min"]; + } else { + $low[] = $minmax["min"]; + } + + $inline_max += $minmax["max"]; + $iter->next(); + } + + if ($inline_min > 0) { + $low[] = $inline_min; + } + if ($inline_max > 0) { + $high[] = $inline_max; + } + + // Skip children with absolute position + if ($iter->valid() && !$iter->current()->is_absolute()) { + /** @var AbstractFrameDecorator */ + $child = $iter->current(); + $child->get_reflower()->_set_content(); + list($low[], $high[]) = $child->get_min_max_width(); + } + } + + $min = count($low) ? max($low) : 0; + $max = count($high) ? max($high) : 0; + + return $this->_min_max_child_cache = [$min, $max]; + } + + /** + * Get the minimum and maximum preferred content-box width of the frame. + * + * @return array A two-element array of min and max width. + */ + public function get_min_max_content_width(): array + { + return $this->get_min_max_child_width(); + } + + /** + * Get the minimum and maximum preferred border-box width of the frame. + * + * Required for shrink-to-fit width calculation, as used in automatic table + * layout, absolute positioning, float and inline-block. This provides a + * basic implementation. Child classes should override this or + * `get_min_max_content_width` as necessary. + * + * @return array An array `[0 => min, 1 => max, "min" => min, "max" => max]` + * of min and max width. + */ + public function get_min_max_width(): array + { + if (!is_null($this->_min_max_cache)) { + return $this->_min_max_cache; + } + + $style = $this->_frame->get_style(); + [$min, $max] = $this->get_min_max_content_width(); + + // Account for margins, borders, and padding + $dims = [ + $style->padding_left, + $style->padding_right, + $style->border_left_width, + $style->border_right_width, + $style->margin_left, + $style->margin_right + ]; + + // The containing block is not defined yet, treat percentages as 0 + $delta = (float) $style->length_in_pt($dims, 0); + $min += $delta; + $max += $delta; + + return $this->_min_max_cache = [$min, $max, "min" => $min, "max" => $max]; + } + + /** + * Parses a CSS string containing quotes and escaped hex characters + * + * @param $string string The CSS string to parse + * @param $single_trim + * @return string + */ + protected function _parse_string($string, $single_trim = false) + { + if ($single_trim) { + $string = preg_replace('/^[\"\']/', "", $string); + $string = preg_replace('/[\"\']$/', "", $string); + } else { + $string = trim($string, "'\""); + } + + $string = str_replace(["\\\n", '\\"', "\\'"], + ["", '"', "'"], $string); + + // Convert escaped hex characters into ascii characters (e.g. \A => newline) + $string = preg_replace_callback("/\\\\([0-9a-fA-F]{0,6})/", + function ($matches) { return \Dompdf\Helpers::unichr(hexdec($matches[1])); }, + $string); + return $string; + } + + /** + * Parses a CSS "quotes" property + * + * https://www.w3.org/TR/css-content-3/#quotes + * + * @return array An array of pairs of quotes + */ + protected function _parse_quotes(): array + { + $quotes = $this->_frame->get_style()->quotes; + + if ($quotes === "none") { + return []; + } + + if ($quotes === "auto") { + // TODO: Use typographically appropriate quotes for the current + // language here + return [['"', '"'], ["'", "'"]]; + } + + // Matches quote types + $re = '/(\'[^\']*\')|(\"[^\"]*\")/'; + + // Split on spaces, except within quotes + if (!preg_match_all($re, $quotes, $matches, PREG_SET_ORDER)) { + return []; + } + + $quotes_array = []; + foreach ($matches as $_quote) { + $quotes_array[] = $this->_parse_string($_quote[0], true); + } + + return array_chunk($quotes_array, 2); + } + + /** + * Parses the CSS "content" property + * + * https://www.w3.org/TR/CSS21/generate.html#content + * + * @return string The resulting string + */ + protected function _parse_content(): string + { + $style = $this->_frame->get_style(); + $content = $style->content; + + if ($content === "normal" || $content === "none") { + return ""; + } + + $quotes = $this->_parse_quotes(); + $text = ""; + + foreach ($content as $val) { + // String + if (in_array(mb_substr($val, 0, 1), ['"', "'"], true)) { + $text .= $this->_parse_string($val); + continue; + } + + $val = mb_strtolower($val); + + // Keywords + if ($val === "open-quote") { + // FIXME: Take quotation depth into account + if (isset($quotes[0][0])) { + $text .= $quotes[0][0]; + } + continue; + } elseif ($val === "close-quote") { + // FIXME: Take quotation depth into account + if (isset($quotes[0][1])) { + $text .= $quotes[0][1]; + } + continue; + } elseif ($val === "no-open-quote") { + // FIXME: Increment quotation depth + continue; + } elseif ($val === "no-close-quote") { + // FIXME: Decrement quotation depth + continue; + } + + // attr() + if (mb_substr($val, 0, 5) === "attr(") { + $i = mb_strpos($val, ")"); + if ($i === false) { + continue; + } + + $attr = trim(mb_substr($val, 5, $i - 5)); + if ($attr === "") { + continue; + } + + $text .= $this->_frame->get_parent()->get_node()->getAttribute($attr); + continue; + } + + // counter()/counters() + if (mb_substr($val, 0, 7) === "counter") { + // Handle counter() references: + // http://www.w3.org/TR/CSS21/generate.html#content + + $i = mb_strpos($val, ")"); + if ($i === false) { + continue; + } + + preg_match('/(counters?)(^\()*?\(\s*([^\s,]+)\s*(,\s*["\']?([^"\'\)]*)["\']?\s*(,\s*([^\s)]+)\s*)?)?\)/i', $val, $args); + $counter_id = $args[3]; + + if (strtolower($args[1]) === "counter") { + // counter(name [,style]) + if (isset($args[5])) { + $type = trim($args[5]); + } else { + $type = "decimal"; + } + $p = $this->_frame->lookup_counter_frame($counter_id); + + $text .= $p->counter_value($counter_id, $type); + } elseif (strtolower($args[1]) === "counters") { + // counters(name, string [,style]) + if (isset($args[5])) { + $string = $this->_parse_string($args[5]); + } else { + $string = ""; + } + + if (isset($args[7])) { + $type = trim($args[7]); + } else { + $type = "decimal"; + } + + $p = $this->_frame->lookup_counter_frame($counter_id); + $tmp = []; + while ($p) { + // We only want to use the counter values when they actually increment the counter + if (array_key_exists($counter_id, $p->_counters)) { + array_unshift($tmp, $p->counter_value($counter_id, $type)); + } + $p = $p->lookup_counter_frame($counter_id); + } + $text .= implode($string, $tmp); + } else { + // countertops? + } + + continue; + } + } + + return $text; + } + + /** + * Handle counters and set generated content if the frame is a + * generated-content frame. + */ + protected function _set_content(): void + { + $frame = $this->_frame; + + if ($frame->content_set) { + return; + } + + $style = $frame->get_style(); + + if (($reset = $style->counter_reset) !== "none") { + $frame->reset_counters($reset); + } + + if (($increment = $style->counter_increment) !== "none") { + $frame->increment_counters($increment); + } + + if ($frame->get_node()->nodeName === "dompdf_generated") { + $content = $this->_parse_content(); + + if ($content !== "") { + $node = $frame->get_node()->ownerDocument->createTextNode($content); + + $new_style = $style->get_stylesheet()->create_style(); + $new_style->inherit($style); + + $new_frame = new Frame($node); + $new_frame->set_style($new_style); + + Factory::decorate_frame($new_frame, $frame->get_dompdf(), $frame->get_root()); + $frame->append_child($new_frame); + } + } + + $frame->content_set = true; + } +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameReflower/Block.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameReflower/Block.php new file mode 100644 index 0000000..f9e50a6 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameReflower/Block.php @@ -0,0 +1,949 @@ +_frame; + $style = $frame->get_style(); + $absolute = $frame->is_absolute(); + + $cb = $frame->get_containing_block(); + $w = $cb["w"]; + + $rm = $style->length_in_pt($style->margin_right, $w); + $lm = $style->length_in_pt($style->margin_left, $w); + + $left = $style->length_in_pt($style->left, $w); + $right = $style->length_in_pt($style->right, $w); + + // Handle 'auto' values + $dims = [$style->border_left_width, + $style->border_right_width, + $style->padding_left, + $style->padding_right, + $width !== "auto" ? $width : 0, + $rm !== "auto" ? $rm : 0, + $lm !== "auto" ? $lm : 0]; + + // absolutely positioned boxes take the 'left' and 'right' properties into account + if ($absolute) { + $dims[] = $left !== "auto" ? $left : 0; + $dims[] = $right !== "auto" ? $right : 0; + } + + $sum = (float)$style->length_in_pt($dims, $w); + + // Compare to the containing block + $diff = $w - $sum; + + if ($absolute) { + // Absolutely positioned + // http://www.w3.org/TR/CSS21/visudet.html#abs-non-replaced-width + + if ($width === "auto" || $left === "auto" || $right === "auto") { + // "all of the three are 'auto'" logic + otherwise case + if ($lm === "auto") { + $lm = 0; + } + if ($rm === "auto") { + $rm = 0; + } + + $block_parent = $frame->find_block_parent(); + $parent_content = $block_parent->get_content_box(); + $line = $block_parent->get_current_line_box(); + + // TODO: This is the in-flow inline position. Use the in-flow + // block position if the original display type is block-level + $inflow_x = $parent_content["x"] - $cb["x"] + $line->left + $line->w; + + if ($width === "auto" && $left === "auto" && $right === "auto") { + // rule 3, per instruction preceding rule set + // shrink-to-fit width + $left = $inflow_x; + [$min, $max] = $this->get_min_max_child_width(); + $width = min(max($min, $diff - $left), $max); + $right = $diff - $left - $width; + } elseif ($width === "auto" && $left === "auto") { + // rule 1 + // shrink-to-fit width + [$min, $max] = $this->get_min_max_child_width(); + $width = min(max($min, $diff), $max); + $left = $diff - $width; + } elseif ($width === "auto" && $right === "auto") { + // rule 3 + // shrink-to-fit width + [$min, $max] = $this->get_min_max_child_width(); + $width = min(max($min, $diff), $max); + $right = $diff - $width; + } elseif ($left === "auto" && $right === "auto") { + // rule 2 + $left = $inflow_x; + $right = $diff - $left; + } elseif ($left === "auto") { + // rule 4 + $left = $diff; + } elseif ($width === "auto") { + // rule 5 + $width = max($diff, 0); + } else { + // $right === "auto" + // rule 6 + $right = $diff; + } + } else { + // "none of the three are 'auto'" logic described in paragraph preceding the rules + if ($diff >= 0) { + if ($lm === "auto" && $rm === "auto") { + $lm = $rm = $diff / 2; + } elseif ($lm === "auto") { + $lm = $diff; + } elseif ($rm === "auto") { + $rm = $diff; + } + } else { + // over-constrained, solve for right + $right = $right + $diff; + + if ($lm === "auto") { + $lm = 0; + } + if ($rm === "auto") { + $rm = 0; + } + } + } + } elseif ($style->float !== "none" || $style->display === "inline-block") { + // Shrink-to-fit width for float and inline block + // https://www.w3.org/TR/CSS21/visudet.html#float-width + // https://www.w3.org/TR/CSS21/visudet.html#inlineblock-width + + if ($width === "auto") { + [$min, $max] = $this->get_min_max_child_width(); + $width = min(max($min, $diff), $max); + } + if ($lm === "auto") { + $lm = 0; + } + if ($rm === "auto") { + $rm = 0; + } + } else { + // Block-level, normal flow + // https://www.w3.org/TR/CSS21/visudet.html#blockwidth + + if ($diff >= 0) { + // Find auto properties and get them to take up the slack + if ($width === "auto") { + $width = $diff; + + if ($lm === "auto") { + $lm = 0; + } + if ($rm === "auto") { + $rm = 0; + } + } elseif ($lm === "auto" && $rm === "auto") { + $lm = $rm = $diff / 2; + } elseif ($lm === "auto") { + $lm = $diff; + } elseif ($rm === "auto") { + $rm = $diff; + } + } else { + // We are over constrained--set margin-right to the difference + $rm = (float) $rm + $diff; + + if ($width === "auto") { + $width = 0; + } + if ($lm === "auto") { + $lm = 0; + } + } + } + + return [ + "width" => $width, + "margin_left" => $lm, + "margin_right" => $rm, + "left" => $left, + "right" => $right, + ]; + } + + /** + * Call the above function, but resolve max/min widths + * + * @throws Exception + * @return array + */ + protected function _calculate_restricted_width() + { + $frame = $this->_frame; + $style = $frame->get_style(); + $cb = $frame->get_containing_block(); + + if (!isset($cb["w"])) { + throw new Exception("Box property calculation requires containing block width"); + } + + $width = $style->length_in_pt($style->width, $cb["w"]); + + $values = $this->_calculate_width($width); + $margin_left = $values["margin_left"]; + $margin_right = $values["margin_right"]; + $width = $values["width"]; + $left = $values["left"]; + $right = $values["right"]; + + // Handle min/max width + // https://www.w3.org/TR/CSS21/visudet.html#min-max-widths + $min_width = $this->resolve_min_width($cb["w"]); + $max_width = $this->resolve_max_width($cb["w"]); + + if ($width > $max_width) { + $values = $this->_calculate_width($max_width); + $margin_left = $values["margin_left"]; + $margin_right = $values["margin_right"]; + $width = $values["width"]; + $left = $values["left"]; + $right = $values["right"]; + } + + if ($width < $min_width) { + $values = $this->_calculate_width($min_width); + $margin_left = $values["margin_left"]; + $margin_right = $values["margin_right"]; + $width = $values["width"]; + $left = $values["left"]; + $right = $values["right"]; + } + + return [$width, $margin_left, $margin_right, $left, $right]; + } + + /** + * Determine the unrestricted height of content within the block + * not by adding each line's height, but by getting the last line's position. + * This because lines could have been pushed lower by a clearing element. + * + * @return float + */ + protected function _calculate_content_height() + { + $height = 0; + $lines = $this->_frame->get_line_boxes(); + if (count($lines) > 0) { + $last_line = end($lines); + $content_box = $this->_frame->get_content_box(); + $height = $last_line->y + $last_line->h - $content_box["y"]; + } + return $height; + } + + /** + * Determine the frame's restricted height + * + * @return array + */ + protected function _calculate_restricted_height() + { + $frame = $this->_frame; + $style = $frame->get_style(); + $content_height = $this->_calculate_content_height(); + $cb = $frame->get_containing_block(); + + $height = $style->length_in_pt($style->height, $cb["h"]); + $margin_top = $style->length_in_pt($style->margin_top, $cb["w"]); + $margin_bottom = $style->length_in_pt($style->margin_bottom, $cb["w"]); + + $top = $style->length_in_pt($style->top, $cb["h"]); + $bottom = $style->length_in_pt($style->bottom, $cb["h"]); + + if ($frame->is_absolute()) { + // Absolutely positioned + // http://www.w3.org/TR/CSS21/visudet.html#abs-non-replaced-height + + $h_dims = [ + $top !== "auto" ? $top : 0, + $height !== "auto" ? $height : 0, + $bottom !== "auto" ? $bottom : 0 + ]; + $w_dims = [ + $style->margin_top !== "auto" ? $style->margin_top : 0, + $style->padding_top, + $style->border_top_width, + $style->border_bottom_width, + $style->padding_bottom, + $style->margin_bottom !== "auto" ? $style->margin_bottom : 0 + ]; + + $sum = (float)$style->length_in_pt($h_dims, $cb["h"]) + + (float)$style->length_in_pt($w_dims, $cb["w"]); + + $diff = $cb["h"] - $sum; + + if ($height === "auto" || $top === "auto" || $bottom === "auto") { + // "all of the three are 'auto'" logic + otherwise case + if ($margin_top === "auto") { + $margin_top = 0; + } + if ($margin_bottom === "auto") { + $margin_bottom = 0; + } + + $block_parent = $frame->find_block_parent(); + $current_line = $block_parent->get_current_line_box(); + + // TODO: This is the in-flow inline position. Use the in-flow + // block position if the original display type is block-level + $inflow_y = $current_line->y - $cb["y"]; + + if ($height === "auto" && $top === "auto" && $bottom === "auto") { + // rule 3, per instruction preceding rule set + $top = $inflow_y; + $height = $content_height; + $bottom = $diff - $top - $height; + } elseif ($height === "auto" && $top === "auto") { + // rule 1 + $height = $content_height; + $top = $diff - $height; + } elseif ($height === "auto" && $bottom === "auto") { + // rule 3 + $height = $content_height; + $bottom = $diff - $height; + } elseif ($top === "auto" && $bottom === "auto") { + // rule 2 + $top = $inflow_y; + $bottom = $diff - $top; + } elseif ($top === "auto") { + // rule 4 + $top = $diff; + } elseif ($height === "auto") { + // rule 5 + $height = max($diff, 0); + } else { + // $bottom === "auto" + // rule 6 + $bottom = $diff; + } + } else { + // "none of the three are 'auto'" logic described in paragraph preceding the rules + if ($diff >= 0) { + if ($margin_top === "auto" && $margin_bottom === "auto") { + $margin_top = $margin_bottom = $diff / 2; + } elseif ($margin_top === "auto") { + $margin_top = $diff; + } elseif ($margin_bottom === "auto") { + $margin_bottom = $diff; + } + } else { + // over-constrained, solve for bottom + $bottom = $bottom + $diff; + + if ($margin_top === "auto") { + $margin_top = 0; + } + if ($margin_bottom === "auto") { + $margin_bottom = 0; + } + } + } + } else { + // https://www.w3.org/TR/CSS21/visudet.html#normal-block + // https://www.w3.org/TR/CSS21/visudet.html#block-root-margin + + if ($height === "auto") { + $height = $content_height; + } + if ($margin_top === "auto") { + $margin_top = 0; + } + if ($margin_bottom === "auto") { + $margin_bottom = 0; + } + + // Handle min/max height + // https://www.w3.org/TR/CSS21/visudet.html#min-max-heights + $min_height = $this->resolve_min_height($cb["h"]); + $max_height = $this->resolve_max_height($cb["h"]); + $height = Helpers::clamp($height, $min_height, $max_height); + } + + // TODO: Need to also take min/max height into account for absolute + // positioning, using similar logic to the `_calculate_width`/ + // `calculate_restricted_width` split above. The non-absolute case + // can simply clamp height within min/max, as margins and offsets are + // not affected + + return [$height, $margin_top, $margin_bottom, $top, $bottom]; + } + + /** + * Adjust the justification of each of our lines. + * http://www.w3.org/TR/CSS21/text.html#propdef-text-align + */ + protected function _text_align() + { + $style = $this->_frame->get_style(); + $w = $this->_frame->get_containing_block("w"); + $width = (float)$style->length_in_pt($style->width, $w); + $text_indent = (float)$style->length_in_pt($style->text_indent, $w); + + switch ($style->text_align) { + default: + case "left": + foreach ($this->_frame->get_line_boxes() as $line) { + if (!$line->inline) { + continue; + } + + $line->trim_trailing_ws(); + + if ($line->left) { + foreach ($line->frames_to_align() as $frame) { + $frame->move($line->left, 0); + } + } + } + break; + + case "right": + foreach ($this->_frame->get_line_boxes() as $i => $line) { + if (!$line->inline) { + continue; + } + + $line->trim_trailing_ws(); + + $indent = $i === 0 ? $text_indent : 0; + $dx = $width - $line->w - $line->right - $indent; + + foreach ($line->frames_to_align() as $frame) { + $frame->move($dx, 0); + } + } + break; + + case "justify": + // We justify all lines except the last one, unless the frame + // has been split, in which case the actual last line is part of + // the split-off frame + $lines = $this->_frame->get_line_boxes(); + $last_line_index = $this->_frame->is_split ? null : count($lines) - 1; + + foreach ($lines as $i => $line) { + if (!$line->inline) { + continue; + } + + $line->trim_trailing_ws(); + + if ($line->left) { + foreach ($line->frames_to_align() as $frame) { + $frame->move($line->left, 0); + } + } + + if ($line->br || $i === $last_line_index) { + continue; + } + + $frames = $line->get_frames(); + $other_frame_count = 0; + + foreach ($frames as $frame) { + if (!($frame instanceof TextFrameDecorator)) { + $other_frame_count++; + } + } + + $word_count = $line->wc + $other_frame_count; + + // Set the spacing for each child + if ($word_count > 1) { + $indent = $i === 0 ? $text_indent : 0; + $spacing = ($width - $line->get_width() - $indent) / ($word_count - 1); + } else { + $spacing = 0; + } + + $dx = 0; + foreach ($frames as $frame) { + if ($frame instanceof TextFrameDecorator) { + $text = $frame->get_text(); + $spaces = mb_substr_count($text, " "); + + $frame->move($dx, 0); + $frame->set_text_spacing($spacing); + + $dx += $spaces * $spacing; + } else { + $frame->move($dx, 0); + } + } + + // The line (should) now occupy the entire width + $line->w = $width; + } + break; + + case "center": + case "centre": + foreach ($this->_frame->get_line_boxes() as $i => $line) { + if (!$line->inline) { + continue; + } + + $line->trim_trailing_ws(); + + $indent = $i === 0 ? $text_indent : 0; + $dx = ($width + $line->left - $line->w - $line->right - $indent) / 2; + + foreach ($line->frames_to_align() as $frame) { + $frame->move($dx, 0); + } + } + break; + } + } + + /** + * Align inline children vertically. + * Aligns each child vertically after each line is reflowed + */ + function vertical_align() + { + $fontMetrics = $this->get_dompdf()->getFontMetrics(); + + foreach ($this->_frame->get_line_boxes() as $line) { + $height = $line->h; + + // Move all markers to the top of the line box + foreach ($line->get_list_markers() as $marker) { + $x = $marker->get_position("x"); + $marker->set_position($x, $line->y); + } + + foreach ($line->frames_to_align() as $frame) { + $style = $frame->get_style(); + $isInlineBlock = $style->display !== "inline" + && $style->display !== "-dompdf-list-bullet"; + + $baseline = $fontMetrics->getFontBaseline($style->font_family, $style->font_size); + $y_offset = 0; + + //FIXME: The 0.8 ratio applied to the height is arbitrary (used to accommodate descenders?) + if ($isInlineBlock) { + // Workaround: Skip vertical alignment if the frame is the + // only one one the line, excluding empty text frames, which + // may be the result of trailing white space + // FIXME: This special case should be removed once vertical + // alignment is properly fixed + $skip = true; + + foreach ($line->get_frames() as $other) { + if ($other !== $frame + && !($other->is_text_node() && $other->get_node()->nodeValue === "") + ) { + $skip = false; + break; + } + } + + if ($skip) { + continue; + } + + $marginHeight = $frame->get_margin_height(); + $imageHeightDiff = $height * 0.8 - $marginHeight; + + $align = $frame->get_style()->vertical_align; + if (in_array($align, Style::VERTICAL_ALIGN_KEYWORDS, true)) { + switch ($align) { + case "middle": + $y_offset = $imageHeightDiff / 2; + break; + + case "sub": + $y_offset = 0.3 * $height + $imageHeightDiff; + break; + + case "super": + $y_offset = -0.2 * $height + $imageHeightDiff; + break; + + case "text-top": // FIXME: this should be the height of the frame minus the height of the text + $y_offset = $height - $style->line_height; + break; + + case "top": + break; + + case "text-bottom": // FIXME: align bottom of image with the descender? + case "bottom": + $y_offset = 0.3 * $height + $imageHeightDiff; + break; + + case "baseline": + default: + $y_offset = $imageHeightDiff; + break; + } + } else { + $y_offset = $baseline - (float)$style->length_in_pt($align, $style->font_size) - $marginHeight; + } + } else { + $parent = $frame->get_parent(); + if ($parent instanceof TableCellFrameDecorator) { + $align = "baseline"; + } else { + $align = $parent->get_style()->vertical_align; + } + if (in_array($align, Style::VERTICAL_ALIGN_KEYWORDS, true)) { + switch ($align) { + case "middle": + $y_offset = ($height * 0.8 - $baseline) / 2; + break; + + case "sub": + $y_offset = $height * 0.8 - $baseline * 0.5; + break; + + case "super": + $y_offset = $height * 0.8 - $baseline * 1.4; + break; + + case "text-top": + case "top": // Not strictly accurate, but good enough for now + break; + + case "text-bottom": + case "bottom": + $y_offset = $height * 0.8 - $baseline; + break; + + case "baseline": + default: + $y_offset = $height * 0.8 - $baseline; + break; + } + } else { + $y_offset = $height * 0.8 - $baseline - (float)$style->length_in_pt($align, $style->font_size); + } + } + + if ($y_offset !== 0) { + $frame->move(0, $y_offset); + } + } + } + } + + /** + * @param AbstractFrameDecorator $child + */ + function process_clear(AbstractFrameDecorator $child) + { + $child_style = $child->get_style(); + $root = $this->_frame->get_root(); + + // Handle "clear" + if ($child_style->clear !== "none") { + //TODO: this is a WIP for handling clear/float frames that are in between inline frames + if ($child->get_prev_sibling() !== null) { + $this->_frame->add_line(); + } + if ($child_style->float !== "none" && $child->get_next_sibling()) { + $this->_frame->set_current_line_number($this->_frame->get_current_line_number() - 1); + } + + $lowest_y = $root->get_lowest_float_offset($child); + + // If a float is still applying, we handle it + if ($lowest_y) { + if ($child->is_in_flow()) { + $line_box = $this->_frame->get_current_line_box(); + $line_box->y = $lowest_y + $child->get_margin_height(); + $line_box->left = 0; + $line_box->right = 0; + } + + $child->move(0, $lowest_y - $child->get_position("y")); + } + } + } + + /** + * @param AbstractFrameDecorator $child + * @param float $cb_x + * @param float $cb_w + */ + function process_float(AbstractFrameDecorator $child, $cb_x, $cb_w) + { + $child_style = $child->get_style(); + $root = $this->_frame->get_root(); + + // Handle "float" + if ($child_style->float !== "none") { + $root->add_floating_frame($child); + + // Remove next frame's beginning whitespace + $next = $child->get_next_sibling(); + if ($next && $next instanceof TextFrameDecorator) { + $next->set_text(ltrim($next->get_text())); + } + + $line_box = $this->_frame->get_current_line_box(); + list($old_x, $old_y) = $child->get_position(); + + $float_x = $cb_x; + $float_y = $old_y; + $float_w = $child->get_margin_width(); + + if ($child_style->clear === "none") { + switch ($child_style->float) { + case "left": + $float_x += $line_box->left; + break; + case "right": + $float_x += ($cb_w - $line_box->right - $float_w); + break; + } + } else { + if ($child_style->float === "right") { + $float_x += ($cb_w - $float_w); + } + } + + if ($cb_w < $float_x + $float_w - $old_x) { + // TODO handle when floating elements don't fit + } + + $line_box->get_float_offsets(); + + if ($child->_float_next_line) { + $float_y += $line_box->h; + } + + $child->set_position($float_x, $float_y); + $child->move($float_x - $old_x, $float_y - $old_y, true); + } + } + + /** + * @param BlockFrameDecorator $block + */ + function reflow(BlockFrameDecorator $block = null) + { + + // Check if a page break is forced + $page = $this->_frame->get_root(); + $page->check_forced_page_break($this->_frame); + + // Bail if the page is full + if ($page->is_full()) { + return; + } + + $this->determine_absolute_containing_block(); + + // Counters and generated content + $this->_set_content(); + + // Inherit any dangling list markers + if ($block && $this->_frame->is_in_flow()) { + $this->_frame->inherit_dangling_markers($block); + } + + // Collapse margins if required + $this->_collapse_margins(); + + $style = $this->_frame->get_style(); + $cb = $this->_frame->get_containing_block(); + + // Determine the constraints imposed by this frame: calculate the width + // of the content area: + [$width, $margin_left, $margin_right, $left, $right] = $this->_calculate_restricted_width(); + + // Store the calculated properties + $style->set_used("width", $width); + $style->set_used("margin_left", $margin_left); + $style->set_used("margin_right", $margin_right); + $style->set_used("left", $left); + $style->set_used("right", $right); + + $margin_top = $style->length_in_pt($style->margin_top, $cb["w"]); + $margin_bottom = $style->length_in_pt($style->margin_bottom, $cb["w"]); + + $auto_top = $style->top === "auto"; + $auto_margin_top = $margin_top === "auto"; + + // Update the position + $this->_frame->position(); + [$x, $y] = $this->_frame->get_position(); + + // Adjust the first line based on the text-indent property + $indent = (float)$style->length_in_pt($style->text_indent, $cb["w"]); + $this->_frame->increase_line_width($indent); + + // Determine the content edge + $top = (float)$style->length_in_pt([ + $margin_top !== "auto" ? $margin_top : 0, + $style->border_top_width, + $style->padding_top + ], $cb["w"]); + $bottom = (float)$style->length_in_pt([ + $margin_bottom !== "auto" ? $margin_bottom : 0, + $style->border_bottom_width, + $style->padding_bottom + ], $cb["w"]); + + $cb_x = $x + (float)$margin_left + (float)$style->length_in_pt([$style->border_left_width, + $style->padding_left], $cb["w"]); + + $cb_y = $y + $top; + + $height = $style->length_in_pt($style->height, $cb["h"]); + if ($height === "auto") { + $height = ($cb["h"] + $cb["y"]) - $bottom - $cb_y; + } + + // Set the y position of the first line in this block + $line_box = $this->_frame->get_current_line_box(); + $line_box->y = $cb_y; + $line_box->get_float_offsets(); + + // Set the containing blocks and reflow each child + foreach ($this->_frame->get_children() as $child) { + $child->set_containing_block($cb_x, $cb_y, $width, $height); + $this->process_clear($child); + $child->reflow($this->_frame); + + // Check for a page break before the child + $page->check_page_break($child); + + // Don't add the child to the line if a page break has occurred + // before it (possibly via a descendant), in which case it has been + // reset, including its position + if ($page->is_full() && $child->get_position("x") === null) { + break; + } + + $this->process_float($child, $cb_x, $width); + } + + // Stop reflow if a page break has occurred before the frame, in which + // case it has been reset, including its position + if ($page->is_full() && $this->_frame->get_position("x") === null) { + return; + } + + // Determine our height + [$height, $margin_top, $margin_bottom, $top, $bottom] = $this->_calculate_restricted_height(); + + $style->set_used("height", $height); + $style->set_used("margin_top", $margin_top); + $style->set_used("margin_bottom", $margin_bottom); + $style->set_used("top", $top); + $style->set_used("bottom", $bottom); + + if ($this->_frame->is_absolute()) { + if ($auto_top) { + $this->_frame->move(0, $top); + } + if ($auto_margin_top) { + $this->_frame->move(0, $margin_top, true); + } + } + + $this->_text_align(); + $this->vertical_align(); + + // Handle relative positioning + foreach ($this->_frame->get_children() as $child) { + $this->position_relative($child); + } + + if ($block && $this->_frame->is_in_flow()) { + $block->add_frame_to_line($this->_frame); + + if ($this->_frame->is_block_level()) { + $block->add_line(); + } + } + } + + public function get_min_max_content_width(): array + { + // TODO: While the containing block is not set yet on the frame, it can + // already be determined in some cases due to fixed dimensions on the + // ancestor forming the containing block. In such cases, percentage + // values could be resolved here + $style = $this->_frame->get_style(); + $width = $style->width; + $fixed_width = $width !== "auto" && !Helpers::is_percent($width); + + // If the frame has a specified width, then we don't need to check + // its children + if ($fixed_width) { + $min = (float) $style->length_in_pt($width, 0); + $max = $min; + } else { + [$min, $max] = $this->get_min_max_child_width(); + } + + // Handle min/max width style properties + $min_width = $this->resolve_min_width(null); + $max_width = $this->resolve_max_width(null); + $min = Helpers::clamp($min, $min_width, $max_width); + $max = Helpers::clamp($max, $min_width, $max_width); + + return [$min, $max]; + } +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameReflower/Image.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameReflower/Image.php new file mode 100644 index 0000000..eae3408 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameReflower/Image.php @@ -0,0 +1,213 @@ +determine_absolute_containing_block(); + + // Counters and generated content + $this->_set_content(); + + //FLOAT + //$frame = $this->_frame; + //$page = $frame->get_root(); + + //if ($frame->get_style()->float !== "none" ) { + // $page->add_floating_frame($this); + //} + + $this->resolve_dimensions(); + $this->resolve_margins(); + + $frame = $this->_frame; + $frame->position(); + + if ($block && $frame->is_in_flow()) { + $block->add_frame_to_line($frame); + } + } + + public function get_min_max_content_width(): array + { + // TODO: While the containing block is not set yet on the frame, it can + // already be determined in some cases due to fixed dimensions on the + // ancestor forming the containing block. In such cases, percentage + // values could be resolved here + $style = $this->_frame->get_style(); + + [$width] = $this->calculate_size(null, null); + $min_width = $this->resolve_min_width(null); + $percent_width = Helpers::is_percent($style->width) + || Helpers::is_percent($style->max_width) + || ($style->width === "auto" + && (Helpers::is_percent($style->height) || Helpers::is_percent($style->max_height))); + + // Use the specified min width as minimum when width or max width depend + // on the containing block and cannot be resolved yet. This mimics + // browser behavior + $min = $percent_width ? $min_width : $width; + $max = $width; + + return [$min, $max]; + } + + /** + * Calculate width and height, accounting for min/max constraints. + * + * * https://www.w3.org/TR/CSS21/visudet.html#inline-replaced-width + * * https://www.w3.org/TR/CSS21/visudet.html#inline-replaced-height + * * https://www.w3.org/TR/CSS21/visudet.html#min-max-widths + * * https://www.w3.org/TR/CSS21/visudet.html#min-max-heights + * + * @param float|null $cbw Width of the containing block. + * @param float|null $cbh Height of the containing block. + * + * @return float[] + */ + protected function calculate_size(?float $cbw, ?float $cbh): array + { + /** @var ImageFrameDecorator */ + $frame = $this->_frame; + $style = $frame->get_style(); + + $computed_width = $style->width; + $computed_height = $style->height; + + $width = $cbw === null && Helpers::is_percent($computed_width) + ? "auto" + : $style->length_in_pt($computed_width, $cbw ?? 0); + $height = $cbh === null && Helpers::is_percent($computed_height) + ? "auto" + : $style->length_in_pt($computed_height, $cbh ?? 0); + $min_width = $this->resolve_min_width($cbw); + $max_width = $this->resolve_max_width($cbw); + $min_height = $this->resolve_min_height($cbh); + $max_height = $this->resolve_max_height($cbh); + + if ($width === "auto" && $height === "auto") { + // Use intrinsic dimensions, resampled to pt + [$img_width, $img_height] = $frame->get_intrinsic_dimensions(); + $w = $frame->resample($img_width); + $h = $frame->resample($img_height); + + // Resolve min/max constraints according to the constraint-violation + // table in https://www.w3.org/TR/CSS21/visudet.html#min-max-widths + $max_width = max($min_width, $max_width); + $max_height = max($min_height, $max_height); + + if (($w > $max_width && $h <= $max_height) + || ($w > $max_width && $h > $max_height && $max_width / $w <= $max_height / $h) + || ($w < $min_width && $h > $min_height) + || ($w < $min_width && $h < $min_height && $min_width / $w > $min_height / $h) + ) { + $width = Helpers::clamp($w, $min_width, $max_width); + $height = $width * ($img_height / $img_width); + $height = Helpers::clamp($height, $min_height, $max_height); + } else { + $height = Helpers::clamp($h, $min_height, $max_height); + $width = $height * ($img_width / $img_height); + $width = Helpers::clamp($width, $min_width, $max_width); + } + } elseif ($height === "auto") { + // Width is fixed, scale height according to aspect ratio + [$img_width, $img_height] = $frame->get_intrinsic_dimensions(); + $width = Helpers::clamp((float) $width, $min_width, $max_width); + $height = $width * ($img_height / $img_width); + $height = Helpers::clamp($height, $min_height, $max_height); + } elseif ($width === "auto") { + // Height is fixed, scale width according to aspect ratio + [$img_width, $img_height] = $frame->get_intrinsic_dimensions(); + $height = Helpers::clamp((float) $height, $min_height, $max_height); + $width = $height * ($img_width / $img_height); + $width = Helpers::clamp($width, $min_width, $max_width); + } else { + // Width and height are fixed + $width = Helpers::clamp((float) $width, $min_width, $max_width); + $height = Helpers::clamp((float) $height, $min_height, $max_height); + } + + return [$width, $height]; + } + + protected function resolve_dimensions(): void + { + /** @var ImageFrameDecorator */ + $frame = $this->_frame; + $style = $frame->get_style(); + + $debug_png = $this->get_dompdf()->getOptions()->getDebugPng(); + + if ($debug_png) { + [$img_width, $img_height] = $frame->get_intrinsic_dimensions(); + print "resolve_dimensions() " . + $frame->get_style()->width . " " . + $frame->get_style()->height . ";" . + $frame->get_parent()->get_style()->width . " " . + $frame->get_parent()->get_style()->height . ";" . + $frame->get_parent()->get_parent()->get_style()->width . " " . + $frame->get_parent()->get_parent()->get_style()->height . ";" . + $img_width . " " . + $img_height . "|"; + } + + [, , $cbw, $cbh] = $frame->get_containing_block(); + [$width, $height] = $this->calculate_size($cbw, $cbh); + + if ($debug_png) { + print $width . " " . $height . ";"; + } + + $style->set_used("width", $width); + $style->set_used("height", $height); + } + + protected function resolve_margins(): void + { + // Only handle the inline case for now + // https://www.w3.org/TR/CSS21/visudet.html#inline-replaced-width + // https://www.w3.org/TR/CSS21/visudet.html#inline-replaced-height + $style = $this->_frame->get_style(); + + if ($style->margin_left === "auto") { + $style->set_used("margin_left", 0.0); + } + if ($style->margin_right === "auto") { + $style->set_used("margin_right", 0.0); + } + if ($style->margin_top === "auto") { + $style->set_used("margin_top", 0.0); + } + if ($style->margin_bottom === "auto") { + $style->set_used("margin_bottom", 0.0); + } + } +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameReflower/Inline.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameReflower/Inline.php new file mode 100644 index 0000000..34a6686 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameReflower/Inline.php @@ -0,0 +1,188 @@ +_frame; + $style = $frame->get_style(); + + // Resolve width, so the margin width can be checked + $style->set_used("width", 0.0); + + $cb = $frame->get_containing_block(); + $line = $block->get_current_line_box(); + $width = $frame->get_margin_width(); + + if ($width > ($cb["w"] - $line->left - $line->w - $line->right)) { + $block->add_line(); + + // Find the appropriate inline ancestor to split + $child = $frame; + $p = $child->get_parent(); + while ($p instanceof InlineFrameDecorator && !$child->get_prev_sibling()) { + $child = $p; + $p = $p->get_parent(); + } + + if ($p instanceof InlineFrameDecorator) { + // Split parent and stop current reflow. Reflow continues + // via child-reflow loop of split parent + $p->split($child); + return; + } + } + + $frame->position(); + $block->add_frame_to_line($frame); + } + + /** + * @param BlockFrameDecorator|null $block + */ + function reflow(BlockFrameDecorator $block = null) + { + /** @var InlineFrameDecorator */ + $frame = $this->_frame; + + // Check if a page break is forced + $page = $frame->get_root(); + $page->check_forced_page_break($frame); + + if ($page->is_full()) { + return; + } + + // Counters and generated content + $this->_set_content(); + + $style = $frame->get_style(); + + // Resolve auto margins + // https://www.w3.org/TR/CSS21/visudet.html#inline-width + // https://www.w3.org/TR/CSS21/visudet.html#inline-non-replaced + if ($style->margin_left === "auto") { + $style->set_used("margin_left", 0.0); + } + if ($style->margin_right === "auto") { + $style->set_used("margin_right", 0.0); + } + if ($style->margin_top === "auto") { + $style->set_used("margin_top", 0.0); + } + if ($style->margin_bottom === "auto") { + $style->set_used("margin_bottom", 0.0); + } + + // Handle line breaks + if ($frame->get_node()->nodeName === "br") { + if ($block) { + $line = $block->get_current_line_box(); + $frame->set_containing_line($line); + $block->maximize_line_height($frame->get_margin_height(), $frame); + $block->add_line(true); + + $next = $frame->get_next_sibling(); + $p = $frame->get_parent(); + + if ($next && $p instanceof InlineFrameDecorator) { + $p->split($next); + } + } + return; + } + + // Handle empty inline frames + if (!$frame->get_first_child()) { + if ($block) { + $this->reflow_empty($block); + } + return; + } + + // Add our margin, padding & border to the first and last children + if (($f = $frame->get_first_child()) && $f instanceof TextFrameDecorator) { + $f_style = $f->get_style(); + $f_style->margin_left = $style->margin_left; + $f_style->padding_left = $style->padding_left; + $f_style->border_left_width = $style->border_left_width; + $f_style->border_left_style = $style->border_left_style; + $f_style->border_left_color = $style->border_left_color; + } + + if (($l = $frame->get_last_child()) && $l instanceof TextFrameDecorator) { + $l_style = $l->get_style(); + $l_style->margin_right = $style->margin_right; + $l_style->padding_right = $style->padding_right; + $l_style->border_right_width = $style->border_right_width; + $l_style->border_right_style = $style->border_right_style; + $l_style->border_right_color = $style->border_right_color; + } + + $cb = $frame->get_containing_block(); + + // Set the containing blocks and reflow each child. The containing + // block is not changed by line boxes. + foreach ($frame->get_children() as $child) { + $child->set_containing_block($cb); + $child->reflow($block); + + // Stop reflow if the frame has been reset by a line or page break + // due to child reflow + if (!$frame->content_set) { + return; + } + } + + if (!$frame->get_first_child()) { + return; + } + + // Assume the position of the first child + [$x, $y] = $frame->get_first_child()->get_position(); + $frame->set_position($x, $y); + + // Handle relative positioning + foreach ($frame->get_children() as $child) { + $this->position_relative($child); + } + + if ($block) { + $block->add_frame_to_line($frame); + } + } +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameReflower/ListBullet.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameReflower/ListBullet.php new file mode 100644 index 0000000..f735bae --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameReflower/ListBullet.php @@ -0,0 +1,47 @@ +_frame; + $style = $frame->get_style(); + + $style->set_used("width", $frame->get_width()); + $frame->position(); + + if ($style->list_style_position === "inside") { + $block->add_frame_to_line($frame); + } else { + $block->add_dangling_marker($frame); + } + } +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameReflower/NullFrameReflower.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameReflower/NullFrameReflower.php new file mode 100644 index 0000000..8d7e558 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameReflower/NullFrameReflower.php @@ -0,0 +1,37 @@ +get_style(); + $page_styles = $style->get_stylesheet()->get_page_styles(); + + // http://www.w3.org/TR/CSS21/page.html#page-selectors + if (count($page_styles) > 1) { + $odd = $page_number % 2 == 1; + $first = $page_number == 1; + + $style = clone $page_styles["base"]; + + // FIXME RTL + if ($odd && isset($page_styles[":right"])) { + $style->merge($page_styles[":right"]); + } + + if ($odd && isset($page_styles[":odd"])) { + $style->merge($page_styles[":odd"]); + } + + // FIXME RTL + if (!$odd && isset($page_styles[":left"])) { + $style->merge($page_styles[":left"]); + } + + if (!$odd && isset($page_styles[":even"])) { + $style->merge($page_styles[":even"]); + } + + if ($first && isset($page_styles[":first"])) { + $style->merge($page_styles[":first"]); + } + + $frame->set_style($style); + } + + $frame->calculate_bottom_page_edge(); + } + + /** + * Paged layout: + * http://www.w3.org/TR/CSS21/page.html + * + * @param BlockFrameDecorator|null $block + */ + function reflow(BlockFrameDecorator $block = null) + { + /** @var PageFrameDecorator $frame */ + $frame = $this->_frame; + $child = $frame->get_first_child(); + $fixed_children = []; + $prev_child = null; + $current_page = 0; + + while ($child) { + $this->apply_page_style($frame, $current_page + 1); + + $style = $frame->get_style(); + + // Pages are only concerned with margins + $cb = $frame->get_containing_block(); + $left = (float)$style->length_in_pt($style->margin_left, $cb["w"]); + $right = (float)$style->length_in_pt($style->margin_right, $cb["w"]); + $top = (float)$style->length_in_pt($style->margin_top, $cb["h"]); + $bottom = (float)$style->length_in_pt($style->margin_bottom, $cb["h"]); + + $content_x = $cb["x"] + $left; + $content_y = $cb["y"] + $top; + $content_width = $cb["w"] - $left - $right; + $content_height = $cb["h"] - $top - $bottom; + + // Only if it's the first page, we save the nodes with a fixed position + if ($current_page == 0) { + foreach ($child->get_children() as $onechild) { + if ($onechild->get_style()->position === "fixed") { + $fixed_children[] = $onechild->deep_copy(); + } + } + $fixed_children = array_reverse($fixed_children); + } + + $child->set_containing_block($content_x, $content_y, $content_width, $content_height); + + // Check for begin reflow callback + $this->_check_callbacks("begin_page_reflow", $child); + + //Insert a copy of each node which have a fixed position + if ($current_page >= 1) { + foreach ($fixed_children as $fixed_child) { + $child->insert_child_before($fixed_child->deep_copy(), $child->get_first_child()); + } + } + + $child->reflow(); + $next_child = $child->get_next_sibling(); + + // Check for begin render callback + $this->_check_callbacks("begin_page_render", $child); + + // Render the page + $frame->get_renderer()->render($child); + + // Check for end render callback + $this->_check_callbacks("end_page_render", $child); + + if ($next_child) { + $frame->next_page(); + } + + // Wait to dispose of all frames on the previous page + // so callback will have access to them + if ($prev_child) { + $prev_child->dispose(true); + } + $prev_child = $child; + $child = $next_child; + $current_page++; + } + + // Dispose of previous page if it still exists + if ($prev_child) { + $prev_child->dispose(true); + } + } + + /** + * Check for callbacks that need to be performed when a given event + * gets triggered on a page + * + * @param string $event The type of event + * @param Frame $frame The frame that event is triggered on + */ + protected function _check_callbacks(string $event, Frame $frame): void + { + if (!isset($this->_callbacks)) { + $dompdf = $this->get_dompdf(); + $this->_callbacks = $dompdf->getCallbacks(); + $this->_canvas = $dompdf->getCanvas(); + } + + if (isset($this->_callbacks[$event])) { + $fs = $this->_callbacks[$event]; + $canvas = $this->_canvas; + $fontMetrics = $this->get_dompdf()->getFontMetrics(); + + foreach ($fs as $f) { + $f($frame, $canvas, $fontMetrics); + } + } + } +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameReflower/Table.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameReflower/Table.php new file mode 100644 index 0000000..5173738 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameReflower/Table.php @@ -0,0 +1,523 @@ +_state = null; + parent::__construct($frame); + } + + /** + * State is held here so it needs to be reset along with the decorator + */ + public function reset(): void + { + parent::reset(); + $this->_state = null; + } + + protected function _assign_widths() + { + $style = $this->_frame->get_style(); + + // Find the min/max width of the table and sort the columns into + // absolute/percent/auto arrays + $delta = $this->_state["width_delta"]; + $min_width = $this->_state["min_width"]; + $max_width = $this->_state["max_width"]; + $percent_used = $this->_state["percent_used"]; + $absolute_used = $this->_state["absolute_used"]; + $auto_min = $this->_state["auto_min"]; + + $absolute =& $this->_state["absolute"]; + $percent =& $this->_state["percent"]; + $auto =& $this->_state["auto"]; + + // Determine the actual width of the table (excluding borders and + // padding) + $cb = $this->_frame->get_containing_block(); + $columns =& $this->_frame->get_cellmap()->get_columns(); + + $width = $style->width; + $min_table_width = $this->resolve_min_width($cb["w"]) - $delta; + + if ($width !== "auto") { + $preferred_width = (float) $style->length_in_pt($width, $cb["w"]) - $delta; + + if ($preferred_width < $min_table_width) { + $preferred_width = $min_table_width; + } + + if ($preferred_width > $min_width) { + $width = $preferred_width; + } else { + $width = $min_width; + } + + } else { + if ($max_width + $delta < $cb["w"]) { + $width = $max_width; + } elseif ($cb["w"] - $delta > $min_width) { + $width = $cb["w"] - $delta; + } else { + $width = $min_width; + } + + if ($width < $min_table_width) { + $width = $min_table_width; + } + + } + + // Store our resolved width + $style->set_used("width", $width); + + $cellmap = $this->_frame->get_cellmap(); + + if ($cellmap->is_columns_locked()) { + return; + } + + // If the whole table fits on the page, then assign each column it's max width + if ($width == $max_width) { + foreach ($columns as $i => $col) { + $cellmap->set_column_width($i, $col["max-width"]); + } + + return; + } + + // Determine leftover and assign it evenly to all columns + if ($width > $min_width) { + // We have three cases to deal with: + // + // 1. All columns are auto or absolute width. In this case we + // distribute extra space across all auto columns weighted by the + // difference between their max and min width, or by max width only + // if the width of the table is larger than the max width for all + // columns. + // + // 2. Only absolute widths have been specified, no auto columns. In + // this case we distribute extra space across all columns weighted + // by their absolute width. + // + // 3. Percentage widths have been specified. In this case we normalize + // the percentage values and try to assign widths as fractions of + // the table width. Absolute column widths are fully satisfied and + // any remaining space is evenly distributed among all auto columns. + + // Case 1: + if ($percent_used == 0 && count($auto)) { + foreach ($absolute as $i) { + $w = $columns[$i]["min-width"]; + $cellmap->set_column_width($i, $w); + } + + if ($width < $max_width) { + $increment = $width - $min_width; + $table_delta = $max_width - $min_width; + + foreach ($auto as $i) { + $min = $columns[$i]["min-width"]; + $max = $columns[$i]["max-width"]; + $col_delta = $max - $min; + $w = $min + $increment * ($col_delta / $table_delta); + $cellmap->set_column_width($i, $w); + } + } else { + $increment = $width - $max_width; + $auto_max = $max_width - $absolute_used; + + foreach ($auto as $i) { + $max = $columns[$i]["max-width"]; + $f = $auto_max > 0 ? $max / $auto_max : 1 / count($auto); + $w = $max + $increment * $f; + $cellmap->set_column_width($i, $w); + } + } + return; + } + + // Case 2: + if ($percent_used == 0 && !count($auto)) { + $increment = $width - $absolute_used; + + foreach ($absolute as $i) { + $abs = $columns[$i]["min-width"]; + $f = $absolute_used > 0 ? $abs / $absolute_used : 1 / count($absolute); + $w = $abs + $increment * $f; + $cellmap->set_column_width($i, $w); + } + return; + } + + // Case 3: + if ($percent_used > 0) { + // Scale percent values if the total percentage is > 100 or + // there are no auto values to take up slack + if ($percent_used > 100 || count($auto) == 0) { + $scale = 100 / $percent_used; + } else { + $scale = 1; + } + + // Account for the minimum space used by the unassigned auto + // columns, by the columns with absolute widths, and the + // percentage columns following the current one + $used_width = $auto_min + $absolute_used; + + foreach ($absolute as $i) { + $w = $columns[$i]["min-width"]; + $cellmap->set_column_width($i, $w); + } + + $percent_min = 0; + + foreach ($percent as $i) { + $percent_min += $columns[$i]["min-width"]; + } + + // First-come, first served + foreach ($percent as $i) { + $min = $columns[$i]["min-width"]; + $percent_min -= $min; + $slack = $width - $used_width - $percent_min; + + $columns[$i]["percent"] *= $scale; + $w = min($columns[$i]["percent"] * $width / 100, $slack); + + if ($w < $min) { + $w = $min; + } + + $cellmap->set_column_width($i, $w); + $used_width += $w; + } + + // This works because $used_width includes the min-width of each + // unassigned column + if (count($auto) > 0) { + $increment = ($width - $used_width) / count($auto); + + foreach ($auto as $i) { + $w = $columns[$i]["min-width"] + $increment; + $cellmap->set_column_width($i, $w); + } + } + return; + } + } else { + // We are over-constrained: + // Each column gets its minimum width + foreach ($columns as $i => $col) { + $cellmap->set_column_width($i, $col["min-width"]); + } + } + } + + /** + * Determine the frame's height based on min/max height + * + * @return float + */ + protected function _calculate_height() + { + $frame = $this->_frame; + $style = $frame->get_style(); + $cb = $frame->get_containing_block(); + + $height = $style->length_in_pt($style->height, $cb["h"]); + + $cellmap = $frame->get_cellmap(); + $cellmap->assign_frame_heights(); + $rows = $cellmap->get_rows(); + + // Determine our content height + $content_height = 0.0; + foreach ($rows as $r) { + $content_height += $r["height"]; + } + + if ($height === "auto") { + $height = $content_height; + } + + // Handle min/max height + // https://www.w3.org/TR/CSS21/visudet.html#min-max-heights + $min_height = $this->resolve_min_height($cb["h"]); + $max_height = $this->resolve_max_height($cb["h"]); + $height = Helpers::clamp($height, $min_height, $max_height); + + // Use the content height or the height value, whichever is greater + if ($height <= $content_height) { + $height = $content_height; + } else { + // FIXME: Borders and row positions are not properly updated by this + // $cellmap->set_frame_heights($height, $content_height); + } + + return $height; + } + + /** + * @param BlockFrameDecorator|null $block + */ + function reflow(BlockFrameDecorator $block = null) + { + /** @var TableFrameDecorator */ + $frame = $this->_frame; + + // Check if a page break is forced + $page = $frame->get_root(); + $page->check_forced_page_break($frame); + + // Bail if the page is full + if ($page->is_full()) { + return; + } + + // Let the page know that we're reflowing a table so that splits + // are suppressed (simply setting page-break-inside: avoid won't + // work because we may have an arbitrary number of block elements + // inside tds.) + $page->table_reflow_start(); + + $this->determine_absolute_containing_block(); + + // Counters and generated content + $this->_set_content(); + + // Collapse vertical margins, if required + $this->_collapse_margins(); + + // Table layout algorithm: + // http://www.w3.org/TR/CSS21/tables.html#auto-table-layout + + if (is_null($this->_state)) { + $this->get_min_max_width(); + } + + $cb = $frame->get_containing_block(); + $style = $frame->get_style(); + + // This is slightly inexact, but should be okay. Add half the + // border-spacing to the table as padding. The other half is added to + // the cells themselves. + if ($style->border_collapse === "separate") { + [$h, $v] = $style->border_spacing; + $v = $v / 2; + $h = $h / 2; + + $style->set_used("padding_left", (float)$style->length_in_pt($style->padding_left, $cb["w"]) + $h); + $style->set_used("padding_right", (float)$style->length_in_pt($style->padding_right, $cb["w"]) + $h); + $style->set_used("padding_top", (float)$style->length_in_pt($style->padding_top, $cb["w"]) + $v); + $style->set_used("padding_bottom", (float)$style->length_in_pt($style->padding_bottom, $cb["w"]) + $v); + } + + $this->_assign_widths(); + + // Adjust left & right margins, if they are auto + $delta = $this->_state["width_delta"]; + $width = $style->width; + $left = $style->length_in_pt($style->margin_left, $cb["w"]); + $right = $style->length_in_pt($style->margin_right, $cb["w"]); + + $diff = (float) $cb["w"] - (float) $width - $delta; + + if ($left === "auto" && $right === "auto") { + if ($diff < 0) { + $left = 0; + $right = $diff; + } else { + $left = $right = $diff / 2; + } + } else { + if ($left === "auto") { + $left = max($diff - $right, 0); + } + if ($right === "auto") { + $right = max($diff - $left, 0); + } + } + + $style->set_used("margin_left", $left); + $style->set_used("margin_right", $right); + + $frame->position(); + [$x, $y] = $frame->get_position(); + + // Determine the content edge + $offset_x = (float)$left + (float)$style->length_in_pt([ + $style->padding_left, + $style->border_left_width + ], $cb["w"]); + $offset_y = (float)$style->length_in_pt([ + $style->margin_top, + $style->border_top_width, + $style->padding_top + ], $cb["w"]); + $content_x = $x + $offset_x; + $content_y = $y + $offset_y; + + if (isset($cb["h"])) { + $h = $cb["h"]; + } else { + $h = null; + } + + $cellmap = $frame->get_cellmap(); + $col =& $cellmap->get_column(0); + $col["x"] = $offset_x; + + $row =& $cellmap->get_row(0); + $row["y"] = $offset_y; + + $cellmap->assign_x_positions(); + + // Set the containing block of each child & reflow + foreach ($frame->get_children() as $child) { + $child->set_containing_block($content_x, $content_y, $width, $h); + $child->reflow(); + + if (!$page->in_nested_table()) { + // Check if a split has occurred + $page->check_page_break($child); + + if ($page->is_full()) { + break; + } + } + } + + // Stop reflow if a page break has occurred before the frame, in which + // case it has been reset, including its position + if ($page->is_full() && $frame->get_position("x") === null) { + $page->table_reflow_end(); + return; + } + + // Assign heights to our cells: + $style->set_used("height", $this->_calculate_height()); + + $page->table_reflow_end(); + + if ($block && $frame->is_in_flow()) { + $block->add_frame_to_line($frame); + + if ($frame->is_block_level()) { + $block->add_line(); + } + } + } + + public function get_min_max_width(): array + { + if (!is_null($this->_min_max_cache)) { + return $this->_min_max_cache; + } + + $style = $this->_frame->get_style(); + $cellmap = $this->_frame->get_cellmap(); + + $this->_frame->normalize(); + + // Add the cells to the cellmap (this will calculate column widths as + // frames are added) + $cellmap->add_frame($this->_frame); + + // Find the min/max width of the table and sort the columns into + // absolute/percent/auto arrays + $this->_state = []; + $this->_state["min_width"] = 0; + $this->_state["max_width"] = 0; + + $this->_state["percent_used"] = 0; + $this->_state["absolute_used"] = 0; + $this->_state["auto_min"] = 0; + + $this->_state["absolute"] = []; + $this->_state["percent"] = []; + $this->_state["auto"] = []; + + $columns =& $cellmap->get_columns(); + foreach ($columns as $i => $col) { + $this->_state["min_width"] += $col["min-width"]; + $this->_state["max_width"] += $col["max-width"]; + + if ($col["absolute"] > 0) { + $this->_state["absolute"][] = $i; + $this->_state["absolute_used"] += $col["min-width"]; + } elseif ($col["percent"] > 0) { + $this->_state["percent"][] = $i; + $this->_state["percent_used"] += $col["percent"]; + } else { + $this->_state["auto"][] = $i; + $this->_state["auto_min"] += $col["min-width"]; + } + } + + // Account for margins, borders, padding, and border spacing + $cb_w = $this->_frame->get_containing_block("w"); + $lm = (float) $style->length_in_pt($style->margin_left, $cb_w); + $rm = (float) $style->length_in_pt($style->margin_right, $cb_w); + + $dims = [ + $style->border_left_width, + $style->border_right_width, + $style->padding_left, + $style->padding_right + ]; + + if ($style->border_collapse !== "collapse") { + list($dims[]) = $style->border_spacing; + } + + $delta = (float) $style->length_in_pt($dims, $cb_w); + + $this->_state["width_delta"] = $delta; + + $min_width = $this->_state["min_width"] + $delta + $lm + $rm; + $max_width = $this->_state["max_width"] + $delta + $lm + $rm; + + return $this->_min_max_cache = [ + $min_width, + $max_width, + "min" => $min_width, + "max" => $max_width + ]; + } +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameReflower/TableCell.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameReflower/TableCell.php new file mode 100644 index 0000000..f5ce35d --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameReflower/TableCell.php @@ -0,0 +1,161 @@ +_set_content(); + + $style = $this->_frame->get_style(); + + $table = TableFrameDecorator::find_parent_table($this->_frame); + $cellmap = $table->get_cellmap(); + + list($x, $y) = $cellmap->get_frame_position($this->_frame); + $this->_frame->set_position($x, $y); + + $cells = $cellmap->get_spanned_cells($this->_frame); + + $w = 0; + foreach ($cells["columns"] as $i) { + $col = $cellmap->get_column($i); + $w += $col["used-width"]; + } + + //FIXME? + $h = $this->_frame->get_containing_block("h"); + + $left_space = (float)$style->length_in_pt([$style->margin_left, + $style->padding_left, + $style->border_left_width], + $w); + + $right_space = (float)$style->length_in_pt([$style->padding_right, + $style->margin_right, + $style->border_right_width], + $w); + + $top_space = (float)$style->length_in_pt([$style->margin_top, + $style->padding_top, + $style->border_top_width], + $h); + $bottom_space = (float)$style->length_in_pt([$style->margin_bottom, + $style->padding_bottom, + $style->border_bottom_width], + $h); + + $cb_w = $w - $left_space - $right_space; + $style->set_used("width", $cb_w); + + $content_x = $x + $left_space; + $content_y = $line_y = $y + $top_space; + + // Adjust the first line based on the text-indent property + $indent = (float)$style->length_in_pt($style->text_indent, $w); + $this->_frame->increase_line_width($indent); + + $page = $this->_frame->get_root(); + + // Set the y position of the first line in the cell + $line_box = $this->_frame->get_current_line_box(); + $line_box->y = $line_y; + + // Set the containing blocks and reflow each child + foreach ($this->_frame->get_children() as $child) { + $child->set_containing_block($content_x, $content_y, $cb_w, $h); + $this->process_clear($child); + $child->reflow($this->_frame); + $this->process_float($child, $content_x, $cb_w); + + if ($page->is_full()) { + break; + } + } + + // Determine our height + $style_height = (float)$style->length_in_pt($style->height, $h); + + /** @var FrameDecorator\TableCell */ + $frame = $this->_frame; + + $frame->set_content_height($this->_calculate_content_height()); + + $height = max($style_height, (float)$frame->get_content_height()); + + // Let the cellmap know our height + $cell_height = $height / count($cells["rows"]); + + if ($style_height <= $height) { + $cell_height += $top_space + $bottom_space; + } + + foreach ($cells["rows"] as $i) { + $cellmap->set_row_height($i, $cell_height); + } + + $style->set_used("height", $height); + + $this->_text_align(); + $this->vertical_align(); + + // Handle relative positioning + foreach ($this->_frame->get_children() as $child) { + $this->position_relative($child); + } + } + + public function get_min_max_content_width(): array + { + // Ignore percentage values for a specified width here, as they are + // relative to the table width, which is not determined yet + $style = $this->_frame->get_style(); + $width = $style->width; + $fixed_width = $width !== "auto" && !Helpers::is_percent($width); + + [$min, $max] = $this->get_min_max_child_width(); + + // For table cells: Use specified width if it is greater than the + // minimum defined by the content + if ($fixed_width) { + $width = (float) $style->length_in_pt($width, 0); + $min = max($width, $min); + $max = $min; + } + + // Handle min/max width style properties + $min_width = $this->resolve_min_width(null); + $max_width = $this->resolve_max_width(null); + $min = Helpers::clamp($min, $min_width, $max_width); + $max = Helpers::clamp($max, $min_width, $max_width); + + return [$min, $max]; + } +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameReflower/TableRow.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameReflower/TableRow.php new file mode 100644 index 0000000..f84c125 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameReflower/TableRow.php @@ -0,0 +1,82 @@ +_frame; + + // Check if a page break is forced + $page = $frame->get_root(); + $page->check_forced_page_break($frame); + + // Bail if the page is full + if ($page->is_full()) { + return; + } + + // Counters and generated content + $this->_set_content(); + + $this->_frame->position(); + $style = $this->_frame->get_style(); + $cb = $this->_frame->get_containing_block(); + + foreach ($this->_frame->get_children() as $child) { + $child->set_containing_block($cb); + $child->reflow(); + + if ($page->is_full()) { + break; + } + } + + if ($page->is_full()) { + return; + } + + $table = TableFrameDecorator::find_parent_table($this->_frame); + $cellmap = $table->get_cellmap(); + $style->set_used("width", $cellmap->get_frame_width($this->_frame)); + $style->set_used("height", $cellmap->get_frame_height($this->_frame)); + + $this->_frame->set_position($cellmap->get_frame_position($this->_frame)); + } + + /** + * @throws Exception + */ + public function get_min_max_width(): array + { + throw new Exception("Min/max width is undefined for table rows"); + } +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameReflower/TableRowGroup.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameReflower/TableRowGroup.php new file mode 100644 index 0000000..c8b19aa --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameReflower/TableRowGroup.php @@ -0,0 +1,71 @@ +_frame; + $page = $frame->get_root(); + + // Counters and generated content + $this->_set_content(); + + $style = $frame->get_style(); + $cb = $frame->get_containing_block(); + + foreach ($frame->get_children() as $child) { + $child->set_containing_block($cb["x"], $cb["y"], $cb["w"], $cb["h"]); + $child->reflow(); + + // Check if a split has occurred + $page->check_page_break($child); + + if ($page->is_full()) { + break; + } + } + + $table = TableFrameDecorator::find_parent_table($frame); + $cellmap = $table->get_cellmap(); + + // Stop reflow if a page break has occurred before the frame, in which + // case it is not part of its parent table's cell map yet + if ($page->is_full() && !$cellmap->frame_exists_in_cellmap($frame)) { + return; + } + + $style->set_used("width", $cellmap->get_frame_width($frame)); + $style->set_used("height", $cellmap->get_frame_height($frame)); + + $frame->set_position($cellmap->get_frame_position($frame)); + } +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameReflower/Text.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameReflower/Text.php new file mode 100644 index 0000000..57439ae --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/FrameReflower/Text.php @@ -0,0 +1,605 @@ + + */ + const SOFT_HYPHEN = "\xC2\xAD"; + + /** + * The regex splits on everything that's a separator (^\S double negative), + * excluding the following non-breaking space characters: + * * nbsp (\xA0) + * * narrow nbsp (\x{202F}) + * * figure space (\x{2007}) + */ + public static $_whitespace_pattern = '/([^\S\xA0\x{202F}\x{2007}]+)/u'; + + /** + * The regex splits on everything that's a separator (^\S double negative) + * plus dashes, excluding the following non-breaking space characters: + * * nbsp (\xA0) + * * narrow nbsp (\x{202F}) + * * figure space (\x{2007}) + */ + public static $_wordbreak_pattern = '/([^\S\xA0\x{202F}\x{2007}\n]+|\R|\-+|\xAD+)/u'; + + /** + * Frame for this reflower + * + * @var TextFrameDecorator + */ + protected $_frame; + + /** + * Saves trailing whitespace trimmed after a line break, so it can be + * restored when needed. + * + * @var string|null + */ + protected $trailingWs = null; + + /** + * @var FontMetrics + */ + private $fontMetrics; + + /** + * @param TextFrameDecorator $frame + * @param FontMetrics $fontMetrics + */ + public function __construct(TextFrameDecorator $frame, FontMetrics $fontMetrics) + { + parent::__construct($frame); + $this->setFontMetrics($fontMetrics); + } + + /** + * Apply text transform and white-space collapse according to style. + * + * * http://www.w3.org/TR/CSS21/text.html#propdef-text-transform + * * http://www.w3.org/TR/CSS21/text.html#propdef-white-space + * + * @param string $text + * @return string + */ + protected function pre_process_text(string $text): string + { + $style = $this->_frame->get_style(); + + // Handle text transform + switch ($style->text_transform) { + case "capitalize": + $text = Helpers::mb_ucwords($text); + break; + case "uppercase": + $text = mb_convert_case($text, MB_CASE_UPPER); + break; + case "lowercase": + $text = mb_convert_case($text, MB_CASE_LOWER); + break; + default: + break; + } + + // Handle white-space collapse + switch ($style->white_space) { + default: + case "normal": + case "nowrap": + $text = preg_replace(self::$_whitespace_pattern, " ", $text) ?? ""; + break; + + case "pre-line": + // Collapse white space except for line breaks + $text = preg_replace('/([^\S\xA0\x{202F}\x{2007}\n]+)/u', " ", $text) ?? ""; + break; + + case "pre": + case "pre-wrap": + break; + + } + + return $text; + } + + /** + * @param string $text + * @param BlockFrameDecorator $block + * @param bool $nowrap + * + * @return bool|int + */ + protected function line_break(string $text, BlockFrameDecorator $block, bool $nowrap = false) + { + $fontMetrics = $this->getFontMetrics(); + $frame = $this->_frame; + $style = $frame->get_style(); + $font = $style->font_family; + $size = $style->font_size; + $word_spacing = $style->word_spacing; + $letter_spacing = $style->letter_spacing; + + // Determine the available width + $current_line = $block->get_current_line_box(); + $line_width = $frame->get_containing_block("w"); + $current_line_width = $current_line->left + $current_line->w + $current_line->right; + $available_width = $line_width - $current_line_width; + + // Determine the frame width including margin, padding & border + $visible_text = preg_replace('/\xAD/u', "", $text); + $text_width = $fontMetrics->getTextWidth($visible_text, $font, $size, $word_spacing, $letter_spacing); + $mbp_width = (float) $style->length_in_pt([ + $style->margin_left, + $style->border_left_width, + $style->padding_left, + $style->padding_right, + $style->border_right_width, + $style->margin_right + ], $line_width); + $frame_width = $text_width + $mbp_width; + + if (Helpers::lengthLessOrEqual($frame_width, $available_width)) { + return false; + } + + if ($nowrap) { + return $current_line_width == 0 ? false : 0; + } + + // Split the text into words + $words = preg_split(self::$_wordbreak_pattern, $text, -1, PREG_SPLIT_DELIM_CAPTURE); + $wc = count($words); + + // Determine the split point + $width = 0.0; + $str = ""; + + $space_width = $fontMetrics->getTextWidth(" ", $font, $size, $word_spacing, $letter_spacing); + $shy_width = $fontMetrics->getTextWidth(self::SOFT_HYPHEN, $font, $size); + + // @todo support + for ($i = 0; $i < $wc; $i += 2) { + // Allow trailing white space to overflow. White space is always + // collapsed to the standard space character currently, so only + // handle that for now + $sep = $words[$i + 1] ?? ""; + $word = $sep === " " ? $words[$i] : $words[$i] . $sep; + $word_width = $fontMetrics->getTextWidth($word, $font, $size, $word_spacing, $letter_spacing); + $used_width = $width + $word_width + $mbp_width; + + if (Helpers::lengthGreater($used_width, $available_width)) { + // If the previous split happened by soft hyphen, we have to + // append its width again because the last hyphen of a line + // won't be removed + if (isset($words[$i - 1]) && self::SOFT_HYPHEN === $words[$i - 1]) { + $width += $shy_width; + } + break; + } + + // If the word is splitted by soft hyphen, but no line break is needed + // we have to reduce the width. But the str is not modified, otherwise + // the wrong offset is calculated at the end of this method. + if ($sep === self::SOFT_HYPHEN) { + $width += $word_width - $shy_width; + $str .= $word; + } elseif ($sep === " ") { + $width += $word_width + $space_width; + $str .= $word . $sep; + } else { + $width += $word_width; + $str .= $word; + } + } + + // The first word has overflowed. Force it onto the line, or as many + // characters as fit if breaking words is allowed + if ($current_line_width == 0 && $width === 0.0) { + if ($sep === " ") { + $word .= $sep; + } + + // https://www.w3.org/TR/css-text-3/#overflow-wrap-property + $wrap = $style->overflow_wrap; + $break_word = $wrap === "anywhere" || $wrap === "break-word"; + + if ($break_word) { + $s = ""; + + for ($j = 0; $j < mb_strlen($word); $j++) { + $c = mb_substr($word, $j, 1); + $w = $fontMetrics->getTextWidth($s . $c, $font, $size, $word_spacing, $letter_spacing); + + if (Helpers::lengthGreater($w, $available_width)) { + break; + } + + $s .= $c; + } + + // Always force the first character onto the line + $str = $j === 0 ? $s . $c : $s; + } else { + $str = $word; + } + } + + $offset = mb_strlen($str); + return $offset; + } + + /** + * @param string $text + * @return bool|int + */ + protected function newline_break(string $text) + { + if (($i = mb_strpos($text, "\n")) === false) { + return false; + } + + return $i + 1; + } + + /** + * @param BlockFrameDecorator $block + * @return bool|null Whether to add a new line at the end. `null` if reflow + * should be stopped. + */ + protected function layout_line(BlockFrameDecorator $block): ?bool + { + $frame = $this->_frame; + $style = $frame->get_style(); + $current_line = $block->get_current_line_box(); + $text = $frame->get_text(); + + // Trim leading white space if this is the first text on the line + if ($current_line->w === 0.0 && !$frame->is_pre()) { + $text = ltrim($text, " "); + } + + // Exclude wrapped white space. This handles white space between block + // elements in case white space is collapsed + if ($text === "") { + $frame->set_text(""); + $style->set_used("width", 0.0); + return null; + } + + // Determine the next line break + // http://www.w3.org/TR/CSS21/text.html#propdef-white-space + $white_space = $style->white_space; + $nowrap = $white_space === "nowrap" || $white_space === "pre"; + + switch ($white_space) { + default: + case "normal": + case "nowrap": + $split = $this->line_break($text, $block, $nowrap); + $add_line = false; + break; + + case "pre": + case "pre-line": + case "pre-wrap": + $hard_split = $this->newline_break($text); + $first_line = $hard_split !== false + ? mb_substr($text, 0, $hard_split) + : $text; + $soft_split = $this->line_break($first_line, $block, $nowrap); + + $split = $soft_split !== false ? $soft_split : $hard_split; + $add_line = $hard_split !== false; + break; + } + + if ($split === 0) { + // Make sure to move text when floating frames leave no space to + // place anything onto the line + // TODO: Would probably be better to move just below the current + // floating frame instead of trying to place text in line-height + // increments + if ($current_line->h === 0.0) { + // Line height might be 0 + $h = max($frame->get_margin_height(), 1.0); + $block->maximize_line_height($h, $frame); + } + + // Break line and repeat layout + $block->add_line(); + + // Find the appropriate inline ancestor to split + $child = $frame; + $p = $child->get_parent(); + while ($p instanceof InlineFrameDecorator && !$child->get_prev_sibling()) { + $child = $p; + $p = $p->get_parent(); + } + + if ($p instanceof InlineFrameDecorator) { + // Split parent and stop current reflow. Reflow continues + // via child-reflow loop of split parent + $p->split($child); + return null; + } + + return $this->layout_line($block); + } + + // Final split point is determined + if ($split !== false && $split < mb_strlen($text)) { + // Split the line + $frame->set_text($text); + $frame->split_text($split); + $add_line = true; + + // Remove inner soft hyphens + $t = $frame->get_text(); + $shyPosition = mb_strpos($t, self::SOFT_HYPHEN); + if (false !== $shyPosition && $shyPosition < mb_strlen($t) - 1) { + $t = str_replace(self::SOFT_HYPHEN, "", mb_substr($t, 0, -1)) . mb_substr($t, -1); + $frame->set_text($t); + } + } else { + // No split required + // Remove soft hyphens + $text = str_replace(self::SOFT_HYPHEN, "", $text); + $frame->set_text($text); + } + + // Set our new width + $frame->recalculate_width(); + + return $add_line; + } + + /** + * @param BlockFrameDecorator|null $block + */ + function reflow(BlockFrameDecorator $block = null) + { + $frame = $this->_frame; + $page = $frame->get_root(); + $page->check_forced_page_break($frame); + + if ($page->is_full()) { + return; + } + + // Determine the text height + $style = $frame->get_style(); + $size = $style->font_size; + $font = $style->font_family; + $font_height = $this->getFontMetrics()->getFontHeight($font, $size); + $style->set_used("height", $font_height); + + // Handle text transform and white space + $text = $this->pre_process_text($frame->get_text()); + $frame->set_text($text); + + $add_line = $this->layout_line($block); + + if ($add_line === null) { + return; + } + + $frame->position(); + + if ($block) { + $line = $block->add_frame_to_line($frame); + $trimmed = trim($frame->get_text()); + + // Split the text into words (used to determine spacing between + // words on justified lines) + if ($trimmed !== "") { + $words = preg_split(self::$_whitespace_pattern, $trimmed); + $line->wc += count($words); + } + + if ($add_line) { + $block->add_line(); + } + } + } + + /** + * Trim trailing white space from the frame text. + */ + public function trim_trailing_ws(): void + { + $frame = $this->_frame; + $text = $frame->get_text(); + $trailing = mb_substr($text, -1); + + // White space is always collapsed to the standard space character + // currently, so only handle that for now + if ($trailing === " ") { + $this->trailingWs = $trailing; + $frame->set_text(mb_substr($text, 0, -1)); + $frame->recalculate_width(); + } + } + + public function reset(): void + { + parent::reset(); + + // Restore trimmed trailing white space, as the frame will go through + // another reflow and line breaks might be different after a split + if ($this->trailingWs !== null) { + $text = $this->_frame->get_text(); + $this->_frame->set_text($text . $this->trailingWs); + $this->trailingWs = null; + } + } + + //........................................................................ + + public function get_min_max_width(): array + { + $fontMetrics = $this->getFontMetrics(); + $frame = $this->_frame; + $style = $frame->get_style(); + $text = $frame->get_text(); + $font = $style->font_family; + $size = $style->font_size; + $word_spacing = $style->word_spacing; + $letter_spacing = $style->letter_spacing; + + // Handle text transform and white space + $text = $this->pre_process_text($frame->get_text()); + + if (!$frame->is_pre()) { + // Determine whether the frame is at the start of its parent block. + // Trim leading white space in that case + $child = $frame; + $p = $frame->get_parent(); + while (!$p->is_block() && !$child->get_prev_sibling()) { + $child = $p; + $p = $p->get_parent(); + } + + if (!$child->get_prev_sibling()) { + $text = ltrim($text, " "); + } + + // Determine whether the frame is at the end of its parent block. + // Trim trailing white space in that case + $child = $frame; + $p = $frame->get_parent(); + while (!$p->is_block() && !$child->get_next_sibling()) { + $child = $p; + $p = $p->get_parent(); + } + + if (!$child->get_next_sibling()) { + $text = rtrim($text, " "); + } + } + + // Strip soft hyphens for max-line-width calculations + $visible_text = preg_replace('/\xAD/u', "", $text); + + // Determine minimum text width + switch ($style->white_space) { + default: + case "normal": + case "pre-line": + case "pre-wrap": + // The min width is the longest word or, if breaking words is + // allowed with the `anywhere` keyword, the widest character. + // For performance reasons, we only check the first character in + // the latter case. + // https://www.w3.org/TR/css-text-3/#overflow-wrap-property + if ($style->overflow_wrap === "anywhere") { + $char = mb_substr($visible_text, 0, 1); + $min = $fontMetrics->getTextWidth($char, $font, $size, $word_spacing, $letter_spacing); + } else { + // Find the longest word + $words = preg_split(self::$_wordbreak_pattern, $text, -1, PREG_SPLIT_DELIM_CAPTURE); + $lengths = array_map(function ($chunk) use ($fontMetrics, $font, $size, $word_spacing, $letter_spacing) { + // Allow trailing white space to overflow. As in actual + // layout above, only handle a single space for now + $sep = $chunk[1] ?? ""; + $word = $sep === " " ? $chunk[0] : $chunk[0] . $sep; + return $fontMetrics->getTextWidth($word, $font, $size, $word_spacing, $letter_spacing); + }, array_chunk($words, 2)); + $min = max($lengths); + } + break; + + case "pre": + // Find the longest line + $lines = array_flip(preg_split("/\R/u", $visible_text)); + array_walk($lines, function (&$chunked_text_width, $chunked_text) use ($fontMetrics, $font, $size, $word_spacing, $letter_spacing) { + $chunked_text_width = $fontMetrics->getTextWidth($chunked_text, $font, $size, $word_spacing, $letter_spacing); + }); + arsort($lines); + $min = reset($lines); + break; + + case "nowrap": + $min = $fontMetrics->getTextWidth($visible_text, $font, $size, $word_spacing, $letter_spacing); + break; + } + + // Determine maximum text width + switch ($style->white_space) { + default: + case "normal": + $max = $fontMetrics->getTextWidth($visible_text, $font, $size, $word_spacing, $letter_spacing); + break; + + case "pre-line": + case "pre-wrap": + // Find the longest line + $lines = array_flip(preg_split("/\R/u", $visible_text)); + array_walk($lines, function (&$chunked_text_width, $chunked_text) use ($fontMetrics, $font, $size, $word_spacing, $letter_spacing) { + $chunked_text_width = $fontMetrics->getTextWidth($chunked_text, $font, $size, $word_spacing, $letter_spacing); + }); + arsort($lines); + $max = reset($lines); + break; + + case "pre": + case "nowrap": + $max = $min; + break; + } + + // Account for margins, borders, and padding + $dims = [ + $style->padding_left, + $style->padding_right, + $style->border_left_width, + $style->border_right_width, + $style->margin_left, + $style->margin_right + ]; + + // The containing block is not defined yet, treat percentages as 0 + $delta = (float) $style->length_in_pt($dims, 0); + $min += $delta; + $max += $delta; + + return [$min, $max, "min" => $min, "max" => $max]; + } + + /** + * @param FontMetrics $fontMetrics + * @return $this + */ + public function setFontMetrics(FontMetrics $fontMetrics) + { + $this->fontMetrics = $fontMetrics; + return $this; + } + + /** + * @return FontMetrics + */ + public function getFontMetrics() + { + return $this->fontMetrics; + } +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Helpers.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Helpers.php new file mode 100644 index 0000000..ba78515 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Helpers.php @@ -0,0 +1,1093 @@ + tags if the current sapi is not 'cli'. + * Returns the output string instead of displaying it if $return is true. + * + * @param mixed $mixed variable or expression to display + * @param bool $return + * + * @return string|null + */ + public static function pre_r($mixed, $return = false) + { + if ($return) { + return "
" . print_r($mixed, true) . "
"; + } + + if (php_sapi_name() !== "cli") { + echo "
";
+        }
+
+        print_r($mixed);
+
+        if (php_sapi_name() !== "cli") {
+            echo "
"; + } else { + echo "\n"; + } + + flush(); + + return null; + } + + /** + * builds a full url given a protocol, hostname, base path and url + * + * @param string $protocol + * @param string $host + * @param string $base_path + * @param string $url + * @return string + * + * Initially the trailing slash of $base_path was optional, and conditionally appended. + * However on dynamically created sites, where the page is given as url parameter, + * the base path might not end with an url. + * Therefore do not append a slash, and **require** the $base_url to ending in a slash + * when needed. + * Vice versa, on using the local file system path of a file, make sure that the slash + * is appended (o.k. also for Windows) + */ + public static function build_url($protocol, $host, $base_path, $url) + { + $protocol = mb_strtolower($protocol); + if (empty($protocol)) { + $protocol = "file://"; + } + if ($url === "") { + return null; + } + + $url_lc = mb_strtolower($url); + + // Is the url already fully qualified, a Data URI, or a reference to a named anchor? + // File-protocol URLs may require additional processing (e.g. for URLs with a relative path) + if ( + ( + mb_strpos($url_lc, "://") !== false + && !in_array(substr($url_lc, 0, 7), ["file://", "phar://"], true) + ) + || mb_substr($url_lc, 0, 1) === "#" + || mb_strpos($url_lc, "data:") === 0 + || mb_strpos($url_lc, "mailto:") === 0 + || mb_strpos($url_lc, "tel:") === 0 + ) { + return $url; + } + + $res = ""; + if (strpos($url_lc, "file://") === 0) { + $url = substr($url, 7); + $protocol = "file://"; + } elseif (strpos($url_lc, "phar://") === 0) { + $res = substr($url, strpos($url_lc, ".phar")+5); + $url = substr($url, 7, strpos($url_lc, ".phar")-2); + $protocol = "phar://"; + } + + $ret = ""; + + $is_local_path = in_array($protocol, ["file://", "phar://"], true); + + if ($is_local_path) { + //On Windows local file, an abs path can begin also with a '\' or a drive letter and colon + //drive: followed by a relative path would be a drive specific default folder. + //not known in php app code, treat as abs path + //($url[1] !== ':' || ($url[2]!=='\\' && $url[2]!=='/')) + if ($url[0] !== '/' && (strtoupper(substr(PHP_OS, 0, 3)) !== 'WIN' || (mb_strlen($url) > 1 && $url[0] !== '\\' && $url[1] !== ':'))) { + // For rel path and local access we ignore the host, and run the path through realpath() + $ret .= realpath($base_path) . '/'; + } + $ret .= $url; + $ret = preg_replace('/\?(.*)$/', "", $ret); + + $filepath = realpath($ret); + if ($filepath === false) { + return null; + } + + $ret = "$protocol$filepath$res"; + + return $ret; + } + + $ret = $protocol; + // Protocol relative urls (e.g. "//example.org/style.css") + if (strpos($url, '//') === 0) { + $ret .= substr($url, 2); + //remote urls with backslash in html/css are not really correct, but lets be genereous + } elseif ($url[0] === '/' || $url[0] === '\\') { + // Absolute path + $ret .= $host . $url; + } else { + // Relative path + //$base_path = $base_path !== "" ? rtrim($base_path, "/\\") . "/" : ""; + $ret .= $host . $base_path . $url; + } + + // URL should now be complete, final cleanup + $parsed_url = parse_url($ret); + + // reproduced from https://www.php.net/manual/en/function.parse-url.php#106731 + $scheme = isset($parsed_url['scheme']) ? $parsed_url['scheme'] . '://' : ''; + $host = isset($parsed_url['host']) ? $parsed_url['host'] : ''; + $port = isset($parsed_url['port']) ? ':' . $parsed_url['port'] : ''; + $user = isset($parsed_url['user']) ? $parsed_url['user'] : ''; + $pass = isset($parsed_url['pass']) ? ':' . $parsed_url['pass'] : ''; + $pass = ($user || $pass) ? "$pass@" : ''; + $path = isset($parsed_url['path']) ? $parsed_url['path'] : ''; + $query = isset($parsed_url['query']) ? '?' . $parsed_url['query'] : ''; + $fragment = isset($parsed_url['fragment']) ? '#' . $parsed_url['fragment'] : ''; + + // partially reproduced from https://stackoverflow.com/a/1243431/264628 + /* replace '//' or '/./' or '/foo/../' with '/' */ + $re = array('#(/\.?/)#', '#/(?!\.\.)[^/]+/\.\./#'); + for ($n=1; $n>0; $path=preg_replace($re, '/', $path, -1, $n)) {} + + $ret = "$scheme$user$pass$host$port$path$query$fragment"; + + return $ret; + } + + /** + * Builds a HTTP Content-Disposition header string using `$dispositionType` + * and `$filename`. + * + * If the filename contains any characters not in the ISO-8859-1 character + * set, a fallback filename will be included for clients not supporting the + * `filename*` parameter. + * + * @param string $dispositionType + * @param string $filename + * @return string + */ + public static function buildContentDispositionHeader($dispositionType, $filename) + { + $encoding = mb_detect_encoding($filename); + $fallbackfilename = mb_convert_encoding($filename, "ISO-8859-1", $encoding); + $fallbackfilename = str_replace("\"", "", $fallbackfilename); + $encodedfilename = rawurlencode($filename); + + $contentDisposition = "Content-Disposition: $dispositionType; filename=\"$fallbackfilename\""; + if ($fallbackfilename !== $filename) { + $contentDisposition .= "; filename*=UTF-8''$encodedfilename"; + } + + return $contentDisposition; + } + + /** + * Converts decimal numbers to roman numerals. + * + * As numbers larger than 3999 (and smaller than 1) cannot be represented in + * the standard form of roman numerals, those are left in decimal form. + * + * See https://en.wikipedia.org/wiki/Roman_numerals#Standard_form + * + * @param int|string $num + * + * @throws Exception + * @return string + */ + public static function dec2roman($num): string + { + + static $ones = ["", "i", "ii", "iii", "iv", "v", "vi", "vii", "viii", "ix"]; + static $tens = ["", "x", "xx", "xxx", "xl", "l", "lx", "lxx", "lxxx", "xc"]; + static $hund = ["", "c", "cc", "ccc", "cd", "d", "dc", "dcc", "dccc", "cm"]; + static $thou = ["", "m", "mm", "mmm"]; + + if (!is_numeric($num)) { + throw new Exception("dec2roman() requires a numeric argument."); + } + + if ($num >= 4000 || $num <= 0) { + return (string) $num; + } + + $num = strrev((string)$num); + + $ret = ""; + switch (mb_strlen($num)) { + /** @noinspection PhpMissingBreakStatementInspection */ + case 4: + $ret .= $thou[$num[3]]; + /** @noinspection PhpMissingBreakStatementInspection */ + case 3: + $ret .= $hund[$num[2]]; + /** @noinspection PhpMissingBreakStatementInspection */ + case 2: + $ret .= $tens[$num[1]]; + /** @noinspection PhpMissingBreakStatementInspection */ + case 1: + $ret .= $ones[$num[0]]; + default: + break; + } + + return $ret; + } + + /** + * Restrict a length to the given range. + * + * If min > max, the result is min. + * + * @param float $length + * @param float $min + * @param float $max + * + * @return float + */ + public static function clamp(float $length, float $min, float $max): float + { + return max($min, min($length, $max)); + } + + /** + * Determines whether $value is a percentage or not + * + * @param string|float|int $value + * + * @return bool + */ + public static function is_percent($value): bool + { + return is_string($value) && false !== mb_strpos($value, "%"); + } + + /** + * Parses a data URI scheme + * http://en.wikipedia.org/wiki/Data_URI_scheme + * + * @param string $data_uri The data URI to parse + * + * @return array|bool The result with charset, mime type and decoded data + */ + public static function parse_data_uri($data_uri) + { + if (!preg_match('/^data:(?P[a-z0-9\/+-.]+)(;charset=(?P[a-z0-9-])+)?(?P;base64)?\,(?P.*)?/is', $data_uri, $match)) { + return false; + } + + $match['data'] = rawurldecode($match['data']); + $result = [ + 'charset' => $match['charset'] ? $match['charset'] : 'US-ASCII', + 'mime' => $match['mime'] ? $match['mime'] : 'text/plain', + 'data' => $match['base64'] ? base64_decode($match['data']) : $match['data'], + ]; + + return $result; + } + + /** + * Encodes a Uniform Resource Identifier (URI) by replacing non-alphanumeric + * characters with a percent (%) sign followed by two hex digits, excepting + * characters in the URI reserved character set. + * + * Assumes that the URI is a complete URI, so does not encode reserved + * characters that have special meaning in the URI. + * + * Simulates the encodeURI function available in JavaScript + * https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/encodeURI + * + * Source: http://stackoverflow.com/q/4929584/264628 + * + * @param string $uri The URI to encode + * @return string The original URL with special characters encoded + */ + public static function encodeURI($uri) { + $unescaped = [ + '%2D'=>'-','%5F'=>'_','%2E'=>'.','%21'=>'!', '%7E'=>'~', + '%2A'=>'*', '%27'=>"'", '%28'=>'(', '%29'=>')' + ]; + $reserved = [ + '%3B'=>';','%2C'=>',','%2F'=>'/','%3F'=>'?','%3A'=>':', + '%40'=>'@','%26'=>'&','%3D'=>'=','%2B'=>'+','%24'=>'$' + ]; + $score = [ + '%23'=>'#' + ]; + return strtr(rawurlencode(rawurldecode($uri)), array_merge($reserved, $unescaped, $score)); + } + + /** + * Decoder for RLE8 compression in windows bitmaps + * http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/bitmaps_6x0u.asp + * + * @param string $str Data to decode + * @param int $width Image width + * + * @return string + */ + public static function rle8_decode($str, $width) + { + $lineWidth = $width + (3 - ($width - 1) % 4); + $out = ''; + $cnt = strlen($str); + + for ($i = 0; $i < $cnt; $i++) { + $o = ord($str[$i]); + switch ($o) { + case 0: # ESCAPE + $i++; + switch (ord($str[$i])) { + case 0: # NEW LINE + $padCnt = $lineWidth - strlen($out) % $lineWidth; + if ($padCnt < $lineWidth) { + $out .= str_repeat(chr(0), $padCnt); # pad line + } + break; + case 1: # END OF FILE + $padCnt = $lineWidth - strlen($out) % $lineWidth; + if ($padCnt < $lineWidth) { + $out .= str_repeat(chr(0), $padCnt); # pad line + } + break 3; + case 2: # DELTA + $i += 2; + break; + default: # ABSOLUTE MODE + $num = ord($str[$i]); + for ($j = 0; $j < $num; $j++) { + $out .= $str[++$i]; + } + if ($num % 2) { + $i++; + } + } + break; + default: + $out .= str_repeat($str[++$i], $o); + } + } + return $out; + } + + /** + * Decoder for RLE4 compression in windows bitmaps + * see http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/bitmaps_6x0u.asp + * + * @param string $str Data to decode + * @param int $width Image width + * + * @return string + */ + public static function rle4_decode($str, $width) + { + $w = floor($width / 2) + ($width % 2); + $lineWidth = $w + (3 - (($width - 1) / 2) % 4); + $pixels = []; + $cnt = strlen($str); + $c = 0; + + for ($i = 0; $i < $cnt; $i++) { + $o = ord($str[$i]); + switch ($o) { + case 0: # ESCAPE + $i++; + switch (ord($str[$i])) { + case 0: # NEW LINE + while (count($pixels) % $lineWidth != 0) { + $pixels[] = 0; + } + break; + case 1: # END OF FILE + while (count($pixels) % $lineWidth != 0) { + $pixels[] = 0; + } + break 3; + case 2: # DELTA + $i += 2; + break; + default: # ABSOLUTE MODE + $num = ord($str[$i]); + for ($j = 0; $j < $num; $j++) { + if ($j % 2 == 0) { + $c = ord($str[++$i]); + $pixels[] = ($c & 240) >> 4; + } else { + $pixels[] = $c & 15; + } + } + + if ($num % 2 == 0) { + $i++; + } + } + break; + default: + $c = ord($str[++$i]); + for ($j = 0; $j < $o; $j++) { + $pixels[] = ($j % 2 == 0 ? ($c & 240) >> 4 : $c & 15); + } + } + } + + $out = ''; + if (count($pixels) % 2) { + $pixels[] = 0; + } + + $cnt = count($pixels) / 2; + + for ($i = 0; $i < $cnt; $i++) { + $out .= chr(16 * $pixels[2 * $i] + $pixels[2 * $i + 1]); + } + + return $out; + } + + /** + * parse a full url or pathname and return an array(protocol, host, path, + * file + query + fragment) + * + * @param string $url + * @return array + */ + public static function explode_url($url) + { + $protocol = ""; + $host = ""; + $path = ""; + $file = ""; + $res = ""; + + $arr = parse_url($url); + if ( isset($arr["scheme"]) ) { + $arr["scheme"] = mb_strtolower($arr["scheme"]); + } + + if (isset($arr["scheme"]) && $arr["scheme"] !== "file" && $arr["scheme"] !== "phar" && strlen($arr["scheme"]) > 1) { + $protocol = $arr["scheme"] . "://"; + + if (isset($arr["user"])) { + $host .= $arr["user"]; + + if (isset($arr["pass"])) { + $host .= ":" . $arr["pass"]; + } + + $host .= "@"; + } + + if (isset($arr["host"])) { + $host .= $arr["host"]; + } + + if (isset($arr["port"])) { + $host .= ":" . $arr["port"]; + } + + if (isset($arr["path"]) && $arr["path"] !== "") { + // Do we have a trailing slash? + if ($arr["path"][mb_strlen($arr["path"]) - 1] === "/") { + $path = $arr["path"]; + $file = ""; + } else { + $path = rtrim(dirname($arr["path"]), '/\\') . "/"; + $file = basename($arr["path"]); + } + } + + if (isset($arr["query"])) { + $file .= "?" . $arr["query"]; + } + + if (isset($arr["fragment"])) { + $file .= "#" . $arr["fragment"]; + } + + } else { + + $protocol = ""; + $host = ""; // localhost, really + + $i = mb_stripos($url, "://"); + if ($i !== false) { + $protocol = mb_strtolower(mb_substr($url, 0, $i + 3)); + $url = mb_substr($url, $i + 3); + } else { + $protocol = "file://"; + } + + if ($protocol === "phar://") { + $res = substr($url, stripos($url, ".phar")+5); + $url = substr($url, 7, stripos($url, ".phar")-2); + } + + $file = basename($url); + $path = dirname($url) . "/"; + } + + $ret = [$protocol, $host, $path, $file, + "protocol" => $protocol, + "host" => $host, + "path" => $path, + "file" => $file, + "resource" => $res]; + return $ret; + } + + /** + * Print debug messages + * + * @param string $type The type of debug messages to print + * @param string $msg The message to show + */ + public static function dompdf_debug($type, $msg) + { + global $_DOMPDF_DEBUG_TYPES, $_dompdf_show_warnings, $_dompdf_debug; + if (isset($_DOMPDF_DEBUG_TYPES[$type]) && ($_dompdf_show_warnings || $_dompdf_debug)) { + $arr = debug_backtrace(); + + echo basename($arr[0]["file"]) . " (" . $arr[0]["line"] . "): " . $arr[1]["function"] . ": "; + Helpers::pre_r($msg); + } + } + + /** + * Stores warnings in an array for display later + * This function allows warnings generated by the DomDocument parser + * and CSS loader ({@link Stylesheet}) to be captured and displayed + * later. Without this function, errors are displayed immediately and + * PDF streaming is impossible. + * @see http://www.php.net/manual/en/function.set-error_handler.php + * + * @param int $errno + * @param string $errstr + * @param string $errfile + * @param string $errline + * + * @throws Exception + */ + public static function record_warnings($errno, $errstr, $errfile, $errline) + { + // Not a warning or notice + if (!($errno & (E_WARNING | E_NOTICE | E_USER_NOTICE | E_USER_WARNING | E_STRICT | E_DEPRECATED | E_USER_DEPRECATED))) { + throw new Exception($errstr . " $errno"); + } + + global $_dompdf_warnings; + global $_dompdf_show_warnings; + + if ($_dompdf_show_warnings) { + echo $errstr . "\n"; + } + + $_dompdf_warnings[] = $errstr; + } + + /** + * @param $c + * @return bool|string + */ + public static function unichr($c) + { + if ($c <= 0x7F) { + return chr($c); + } elseif ($c <= 0x7FF) { + return chr(0xC0 | $c >> 6) . chr(0x80 | $c & 0x3F); + } elseif ($c <= 0xFFFF) { + return chr(0xE0 | $c >> 12) . chr(0x80 | $c >> 6 & 0x3F) + . chr(0x80 | $c & 0x3F); + } elseif ($c <= 0x10FFFF) { + return chr(0xF0 | $c >> 18) . chr(0x80 | $c >> 12 & 0x3F) + . chr(0x80 | $c >> 6 & 0x3F) + . chr(0x80 | $c & 0x3F); + } + return false; + } + + /** + * Converts a CMYK color to RGB + * + * @param float|float[] $c + * @param float $m + * @param float $y + * @param float $k + * + * @return float[] + */ + public static function cmyk_to_rgb($c, $m = null, $y = null, $k = null) + { + if (is_array($c)) { + [$c, $m, $y, $k] = $c; + } + + $c *= 255; + $m *= 255; + $y *= 255; + $k *= 255; + + $r = (1 - round(2.55 * ($c + $k))); + $g = (1 - round(2.55 * ($m + $k))); + $b = (1 - round(2.55 * ($y + $k))); + + if ($r < 0) { + $r = 0; + } + if ($g < 0) { + $g = 0; + } + if ($b < 0) { + $b = 0; + } + + return [ + $r, $g, $b, + "r" => $r, "g" => $g, "b" => $b + ]; + } + + /** + * getimagesize doesn't give a good size for 32bit BMP image v5 + * + * @param string $filename + * @param resource $context + * @return array An array of three elements: width and height as + * `float|int`, and image type as `string|null`. + */ + public static function dompdf_getimagesize($filename, $context = null) + { + static $cache = []; + + if (isset($cache[$filename])) { + return $cache[$filename]; + } + + [$width, $height, $type] = getimagesize($filename); + + // Custom types + $types = [ + IMAGETYPE_JPEG => "jpeg", + IMAGETYPE_GIF => "gif", + IMAGETYPE_BMP => "bmp", + IMAGETYPE_PNG => "png", + IMAGETYPE_WEBP => "webp", + ]; + + $type = $types[$type] ?? null; + + if ($width == null || $height == null) { + [$data] = Helpers::getFileContent($filename, $context); + + if ($data !== null) { + if (substr($data, 0, 2) === "BM") { + $meta = unpack("vtype/Vfilesize/Vreserved/Voffset/Vheadersize/Vwidth/Vheight", $data); + $width = (int) $meta["width"]; + $height = (int) $meta["height"]; + $type = "bmp"; + } elseif (strpos($data, "loadFile($filename); + + [$width, $height] = $doc->getDimensions(); + $width = (float) $width; + $height = (float) $height; + $type = "svg"; + } + } + } + + return $cache[$filename] = [$width ?? 0, $height ?? 0, $type]; + } + + /** + * Credit goes to mgutt + * http://www.programmierer-forum.de/function-imagecreatefrombmp-welche-variante-laeuft-t143137.htm + * Modified by Fabien Menager to support RGB555 BMP format + */ + public static function imagecreatefrombmp($filename, $context = null) + { + if (!function_exists("imagecreatetruecolor")) { + trigger_error("The PHP GD extension is required, but is not installed.", E_ERROR); + return false; + } + + // version 1.00 + if (!($fh = fopen($filename, 'rb'))) { + trigger_error('imagecreatefrombmp: Can not open ' . $filename, E_USER_WARNING); + return false; + } + + $bytes_read = 0; + + // read file header + $meta = unpack('vtype/Vfilesize/Vreserved/Voffset', fread($fh, 14)); + + // check for bitmap + if ($meta['type'] != 19778) { + trigger_error('imagecreatefrombmp: ' . $filename . ' is not a bitmap!', E_USER_WARNING); + return false; + } + + // read image header + $meta += unpack('Vheadersize/Vwidth/Vheight/vplanes/vbits/Vcompression/Vimagesize/Vxres/Vyres/Vcolors/Vimportant', fread($fh, 40)); + $bytes_read += 40; + + // read additional bitfield header + if ($meta['compression'] == 3) { + $meta += unpack('VrMask/VgMask/VbMask', fread($fh, 12)); + $bytes_read += 12; + } + + // set bytes and padding + $meta['bytes'] = $meta['bits'] / 8; + $meta['decal'] = 4 - (4 * (($meta['width'] * $meta['bytes'] / 4) - floor($meta['width'] * $meta['bytes'] / 4))); + if ($meta['decal'] == 4) { + $meta['decal'] = 0; + } + + // obtain imagesize + if ($meta['imagesize'] < 1) { + $meta['imagesize'] = $meta['filesize'] - $meta['offset']; + // in rare cases filesize is equal to offset so we need to read physical size + if ($meta['imagesize'] < 1) { + $meta['imagesize'] = @filesize($filename) - $meta['offset']; + if ($meta['imagesize'] < 1) { + trigger_error('imagecreatefrombmp: Can not obtain filesize of ' . $filename . '!', E_USER_WARNING); + return false; + } + } + } + + // calculate colors + $meta['colors'] = !$meta['colors'] ? pow(2, $meta['bits']) : $meta['colors']; + + // read color palette + $palette = []; + if ($meta['bits'] < 16) { + $palette = unpack('l' . $meta['colors'], fread($fh, $meta['colors'] * 4)); + // in rare cases the color value is signed + if ($palette[1] < 0) { + foreach ($palette as $i => $color) { + $palette[$i] = $color + 16777216; + } + } + } + + // ignore extra bitmap headers + if ($meta['headersize'] > $bytes_read) { + fread($fh, $meta['headersize'] - $bytes_read); + } + + // create gd image + $im = imagecreatetruecolor($meta['width'], $meta['height']); + $data = fread($fh, $meta['imagesize']); + + // uncompress data + switch ($meta['compression']) { + case 1: + $data = Helpers::rle8_decode($data, $meta['width']); + break; + case 2: + $data = Helpers::rle4_decode($data, $meta['width']); + break; + } + + $p = 0; + $vide = chr(0); + $y = $meta['height'] - 1; + $error = 'imagecreatefrombmp: ' . $filename . ' has not enough data!'; + + // loop through the image data beginning with the lower left corner + while ($y >= 0) { + $x = 0; + while ($x < $meta['width']) { + switch ($meta['bits']) { + case 32: + case 24: + if (!($part = substr($data, $p, 3 /*$meta['bytes']*/))) { + trigger_error($error, E_USER_WARNING); + return $im; + } + $color = unpack('V', $part . $vide); + break; + case 16: + if (!($part = substr($data, $p, 2 /*$meta['bytes']*/))) { + trigger_error($error, E_USER_WARNING); + return $im; + } + $color = unpack('v', $part); + + if (empty($meta['rMask']) || $meta['rMask'] != 0xf800) { + $color[1] = (($color[1] & 0x7c00) >> 7) * 65536 + (($color[1] & 0x03e0) >> 2) * 256 + (($color[1] & 0x001f) << 3); // 555 + } else { + $color[1] = (($color[1] & 0xf800) >> 8) * 65536 + (($color[1] & 0x07e0) >> 3) * 256 + (($color[1] & 0x001f) << 3); // 565 + } + break; + case 8: + $color = unpack('n', $vide . substr($data, $p, 1)); + $color[1] = $palette[$color[1] + 1]; + break; + case 4: + $color = unpack('n', $vide . substr($data, floor($p), 1)); + $color[1] = ($p * 2) % 2 == 0 ? $color[1] >> 4 : $color[1] & 0x0F; + $color[1] = $palette[$color[1] + 1]; + break; + case 1: + $color = unpack('n', $vide . substr($data, floor($p), 1)); + switch (($p * 8) % 8) { + case 0: + $color[1] = $color[1] >> 7; + break; + case 1: + $color[1] = ($color[1] & 0x40) >> 6; + break; + case 2: + $color[1] = ($color[1] & 0x20) >> 5; + break; + case 3: + $color[1] = ($color[1] & 0x10) >> 4; + break; + case 4: + $color[1] = ($color[1] & 0x8) >> 3; + break; + case 5: + $color[1] = ($color[1] & 0x4) >> 2; + break; + case 6: + $color[1] = ($color[1] & 0x2) >> 1; + break; + case 7: + $color[1] = ($color[1] & 0x1); + break; + } + $color[1] = $palette[$color[1] + 1]; + break; + default: + trigger_error('imagecreatefrombmp: ' . $filename . ' has ' . $meta['bits'] . ' bits and this is not supported!', E_USER_WARNING); + return false; + } + imagesetpixel($im, $x, $y, $color[1]); + $x++; + $p += $meta['bytes']; + } + $y--; + $p += $meta['decal']; + } + fclose($fh); + return $im; + } + + /** + * Gets the content of the file at the specified path using one of + * the following methods, in preferential order: + * - file_get_contents: if allow_url_fopen is true or the file is local + * - curl: if allow_url_fopen is false and curl is available + * + * @param string $uri + * @param resource $context + * @param int $offset + * @param int $maxlen + * @return string[] + */ + public static function getFileContent($uri, $context = null, $offset = 0, $maxlen = null) + { + $content = null; + $headers = null; + [$protocol] = Helpers::explode_url($uri); + $is_local_path = in_array(strtolower($protocol), ["", "file://", "phar://"], true); + $can_use_curl = in_array(strtolower($protocol), ["http://", "https://"], true); + + set_error_handler([self::class, 'record_warnings']); + + try { + if ($is_local_path || ini_get('allow_url_fopen') || !$can_use_curl) { + if ($is_local_path === false) { + $uri = Helpers::encodeURI($uri); + } + if (isset($maxlen)) { + $result = file_get_contents($uri, false, $context, $offset, $maxlen); + } else { + $result = file_get_contents($uri, false, $context, $offset); + } + if ($result !== false) { + $content = $result; + } + if (isset($http_response_header)) { + $headers = $http_response_header; + } + + } elseif ($can_use_curl && function_exists('curl_exec')) { + $curl = curl_init($uri); + + curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); + curl_setopt($curl, CURLOPT_HEADER, true); + if ($offset > 0) { + curl_setopt($curl, CURLOPT_RESUME_FROM, $offset); + } + + if ($maxlen > 0) { + curl_setopt($curl, CURLOPT_BUFFERSIZE, 128); + curl_setopt($curl, CURLOPT_NOPROGRESS, false); + curl_setopt($curl, CURLOPT_PROGRESSFUNCTION, function ($res, $download_size_total, $download_size, $upload_size_total, $upload_size) use ($maxlen) { + return ($download_size > $maxlen) ? 1 : 0; + }); + } + + $context_options = []; + if (!is_null($context)) { + $context_options = stream_context_get_options($context); + } + foreach ($context_options as $stream => $options) { + foreach ($options as $option => $value) { + $key = strtolower($stream) . ":" . strtolower($option); + switch ($key) { + case "curl:curl_verify_ssl_host": + curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, !$value ? 0 : 2); + break; + case "curl:max_redirects": + curl_setopt($curl, CURLOPT_MAXREDIRS, $value); + break; + case "http:follow_location": + curl_setopt($curl, CURLOPT_FOLLOWLOCATION, $value); + break; + case "http:header": + if (is_string($value)) { + curl_setopt($curl, CURLOPT_HTTPHEADER, [$value]); + } else { + curl_setopt($curl, CURLOPT_HTTPHEADER, $value); + } + break; + case "http:timeout": + curl_setopt($curl, CURLOPT_TIMEOUT, $value); + break; + case "http:user_agent": + curl_setopt($curl, CURLOPT_USERAGENT, $value); + break; + case "curl:curl_verify_ssl_peer": + case "ssl:verify_peer": + curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, $value); + break; + } + } + } + + $data = curl_exec($curl); + + if ($data !== false && !curl_errno($curl)) { + switch ($http_code = curl_getinfo($curl, CURLINFO_HTTP_CODE)) { + case 200: + $raw_headers = substr($data, 0, curl_getinfo($curl, CURLINFO_HEADER_SIZE)); + $headers = preg_split("/[\n\r]+/", trim($raw_headers)); + $content = substr($data, curl_getinfo($curl, CURLINFO_HEADER_SIZE)); + break; + } + } + curl_close($curl); + } + } finally { + restore_error_handler(); + } + + return [$content, $headers]; + } + + /** + * @param string $str + * @return string + */ + public static function mb_ucwords(string $str): string + { + $max_len = mb_strlen($str); + if ($max_len === 1) { + return mb_strtoupper($str); + } + + $str = mb_strtoupper(mb_substr($str, 0, 1)) . mb_substr($str, 1); + + foreach ([' ', '.', ',', '!', '?', '-', '+'] as $s) { + $pos = 0; + while (($pos = mb_strpos($str, $s, $pos)) !== false) { + $pos++; + // Nothing to do if the separator is the last char of the string + if ($pos !== false && $pos < $max_len) { + // If the char we want to upper is the last char there is nothing to append behind + if ($pos + 1 < $max_len) { + $str = mb_substr($str, 0, $pos) . mb_strtoupper(mb_substr($str, $pos, 1)) . mb_substr($str, $pos + 1); + } else { + $str = mb_substr($str, 0, $pos) . mb_strtoupper(mb_substr($str, $pos, 1)); + } + } + } + } + + return $str; + } + + /** + * Check whether two lengths should be considered equal, accounting for + * inaccuracies in float computation. + * + * The implementation relies on the fact that we are neither dealing with + * very large, nor with very small numbers in layout. Adapted from + * https://floating-point-gui.de/errors/comparison/. + * + * @param float $a + * @param float $b + * + * @return bool + */ + public static function lengthEqual(float $a, float $b): bool + { + // The epsilon results in a precision of at least: + // * 7 decimal digits at around 1 + // * 4 decimal digits at around 1000 (around the size of common paper formats) + // * 2 decimal digits at around 100,000 (100,000pt ~ 35.28m) + static $epsilon = 1e-8; + static $almostZero = 1e-12; + + $diff = abs($a - $b); + + if ($a === $b || $diff < $almostZero) { + return true; + } + + return $diff < $epsilon * max(abs($a), abs($b)); + } + + /** + * Check `$a < $b`, accounting for inaccuracies in float computation. + */ + public static function lengthLess(float $a, float $b): bool + { + return $a < $b && !self::lengthEqual($a, $b); + } + + /** + * Check `$a <= $b`, accounting for inaccuracies in float computation. + */ + public static function lengthLessOrEqual(float $a, float $b): bool + { + return $a <= $b || self::lengthEqual($a, $b); + } + + /** + * Check `$a > $b`, accounting for inaccuracies in float computation. + */ + public static function lengthGreater(float $a, float $b): bool + { + return $a > $b && !self::lengthEqual($a, $b); + } + + /** + * Check `$a >= $b`, accounting for inaccuracies in float computation. + */ + public static function lengthGreaterOrEqual(float $a, float $b): bool + { + return $a >= $b || self::lengthEqual($a, $b); + } +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Image/Cache.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Image/Cache.php new file mode 100644 index 0000000..f337bbb --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Image/Cache.php @@ -0,0 +1,254 @@ +getAllowedProtocols(); + if (!array_key_exists($protocol, $allowed_protocols)) { + throw new ImageException("Permission denied on $url. The communication protocol is not supported.", E_WARNING); + } + foreach ($allowed_protocols[$protocol]["rules"] as $rule) { + [$result, $message] = $rule($full_url); + if (!$result) { + throw new ImageException("Error loading $url: $message", E_WARNING); + } + } + } + + if ($protocol === "file://") { + $resolved_url = $full_url; + } elseif (isset(self::$_cache[$full_url])) { + $resolved_url = self::$_cache[$full_url]; + } else { + $tmp_dir = $options->getTempDir(); + if (($resolved_url = @tempnam($tmp_dir, "ca_dompdf_img_")) === false) { + throw new ImageException("Unable to create temporary image in " . $tmp_dir, E_WARNING); + } + $tempfile = $resolved_url; + + $image = null; + if ($is_data_uri) { + if (($parsed_data_uri = Helpers::parse_data_uri($url)) !== false) { + $image = $parsed_data_uri["data"]; + } + } else { + list($image, $http_response_header) = Helpers::getFileContent($full_url, $options->getHttpContext()); + } + + // Image not found or invalid + if ($image === null) { + $msg = ($is_data_uri ? "Data-URI could not be parsed" : "Image not found"); + throw new ImageException($msg, E_WARNING); + } + + if (@file_put_contents($resolved_url, $image) === false) { + throw new ImageException("Unable to create temporary image in " . $tmp_dir, E_WARNING); + } + + self::$_cache[$full_url] = $resolved_url; + } + + // Check if the local file is readable + if (!is_readable($resolved_url) || !filesize($resolved_url)) { + throw new ImageException("Image not readable or empty", E_WARNING); + } + + list($width, $height, $type) = Helpers::dompdf_getimagesize($resolved_url, $options->getHttpContext()); + + if (($width && $height && in_array($type, ["gif", "png", "jpeg", "bmp", "svg","webp"], true)) === false) { + throw new ImageException("Image type unknown", E_WARNING); + } + + if ($type === "svg") { + $parser = xml_parser_create("utf-8"); + xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, false); + xml_set_element_handler( + $parser, + function ($parser, $name, $attributes) use ($options, $parsed_url, $full_url) { + if ($name === "image") { + $attributes = array_change_key_case($attributes, CASE_LOWER); + $url = $attributes["xlink:href"] ?? $attributes["href"]; + if (!empty($url)) { + $inner_full_url = Helpers::build_url($parsed_url["protocol"], $parsed_url["host"], $parsed_url["path"], $url); + if ($inner_full_url === $full_url) { + throw new ImageException("SVG self-reference is not allowed", E_WARNING); + } + [$resolved_url, $type, $message] = self::resolve_url($url, $parsed_url["protocol"], $parsed_url["host"], $parsed_url["path"], $options); + if (!empty($message)) { + throw new ImageException("This SVG document references a restricted resource. $message", E_WARNING); + } + } + } + }, + false + ); + + if (($fp = fopen($resolved_url, "r")) !== false) { + while ($line = fread($fp, 8192)) { + xml_parse($parser, $line, false); + } + fclose($fp); + } + xml_parser_free($parser); + } + } catch (ImageException $e) { + if ($tempfile) { + unlink($tempfile); + } + $resolved_url = self::$broken_image; + list($width, $height, $type) = Helpers::dompdf_getimagesize($resolved_url, $options->getHttpContext()); + $message = self::$error_message; + Helpers::record_warnings($e->getCode(), $e->getMessage() . " \n $url", $e->getFile(), $e->getLine()); + self::$_cache[$full_url] = $resolved_url; + } + + return [$resolved_url, $type, $message]; + } + + /** + * Register a temp file for the given original image file. + * + * @param string $filePath The path of the original image. + * @param string $tempPath The path of the temp file to register. + * @param string $key An optional key to register the temp file at. + */ + static function addTempImage(string $filePath, string $tempPath, string $key = "default"): void + { + if (!isset(self::$tempImages[$filePath])) { + self::$tempImages[$filePath] = []; + } + + self::$tempImages[$filePath][$key] = $tempPath; + } + + /** + * Get the path of a temp file registered for the given original image file. + * + * @param string $filePath The path of the original image. + * @param string $key The key the temp file is registered at. + */ + static function getTempImage(string $filePath, string $key = "default"): ?string + { + return self::$tempImages[$filePath][$key] ?? null; + } + + /** + * Unlink all cached images (i.e. temporary images either downloaded + * or converted) except for the bundled "broken image" + */ + static function clear(bool $debugPng = false) + { + foreach (self::$_cache as $file) { + if ($file === self::$broken_image) { + continue; + } + if ($debugPng) { + print "[clear unlink $file]"; + } + if (file_exists($file)) { + unlink($file); + } + } + + foreach (self::$tempImages as $versions) { + foreach ($versions as $file) { + if ($file === self::$broken_image) { + continue; + } + if ($debugPng) { + print "[unlink temp image $file]"; + } + if (file_exists($file)) { + unlink($file); + } + } + } + + self::$_cache = []; + self::$tempImages = []; + } + + static function detect_type($file, $context = null) + { + list(, , $type) = Helpers::dompdf_getimagesize($file, $context); + + return $type; + } + + static function is_broken($url) + { + return $url === self::$broken_image; + } +} + +if (file_exists(realpath(__DIR__ . "/../../lib/res/broken_image.svg"))) { + Cache::$broken_image = realpath(__DIR__ . "/../../lib/res/broken_image.svg"); +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/JavascriptEmbedder.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/JavascriptEmbedder.php new file mode 100644 index 0000000..f4b9bc2 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/JavascriptEmbedder.php @@ -0,0 +1,51 @@ +_dompdf = $dompdf; + } + + /** + * @param $script + */ + public function insert($script) + { + $this->_dompdf->getCanvas()->javascript($script); + } + + /** + * @param Frame $frame + */ + public function render(Frame $frame) + { + if (!$this->_dompdf->getOptions()->getIsJavascriptEnabled()) { + return; + } + + $this->insert($frame->get_node()->nodeValue); + } +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/LineBox.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/LineBox.php new file mode 100644 index 0000000..11b83c1 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/LineBox.php @@ -0,0 +1,412 @@ +_block_frame = $frame; + $this->_frames = []; + $this->y = $y; + + $this->get_float_offsets(); + } + + /** + * Returns the floating elements inside the first floating parent + * + * @param Page $root + * + * @return Frame[] + */ + public function get_floats_inside(Page $root) + { + $floating_frames = $root->get_floating_frames(); + + if (count($floating_frames) == 0) { + return $floating_frames; + } + + // Find nearest floating element + $p = $this->_block_frame; + while ($p->get_style()->float === "none") { + $parent = $p->get_parent(); + + if (!$parent) { + break; + } + + $p = $parent; + } + + if ($p == $root) { + return $floating_frames; + } + + $parent = $p; + + $childs = []; + + foreach ($floating_frames as $_floating) { + $p = $_floating->get_parent(); + + while (($p = $p->get_parent()) && $p !== $parent); + + if ($p) { + $childs[] = $p; + } + } + + return $childs; + } + + public function get_float_offsets() + { + static $anti_infinite_loop = 10000; // FIXME smelly hack + + $reflower = $this->_block_frame->get_reflower(); + + if (!$reflower) { + return; + } + + $cb_w = null; + + $block = $this->_block_frame; + $root = $block->get_root(); + + if (!$root) { + return; + } + + $style = $this->_block_frame->get_style(); + $floating_frames = $this->get_floats_inside($root); + $inside_left_floating_width = 0; + $inside_right_floating_width = 0; + $outside_left_floating_width = 0; + $outside_right_floating_width = 0; + + foreach ($floating_frames as $child_key => $floating_frame) { + $floating_frame_parent = $floating_frame->get_parent(); + $id = $floating_frame->get_id(); + + if (isset($this->floating_blocks[$id])) { + continue; + } + + $float = $floating_frame->get_style()->float; + $floating_width = $floating_frame->get_margin_width(); + + if (!$cb_w) { + $cb_w = $floating_frame->get_containing_block("w"); + } + + $line_w = $this->get_width(); + + if (!$floating_frame->_float_next_line && ($cb_w <= $line_w + $floating_width) && ($cb_w > $line_w)) { + $floating_frame->_float_next_line = true; + continue; + } + + // If the child is still shifted by the floating element + if ($anti_infinite_loop-- > 0 && + $floating_frame->get_position("y") + $floating_frame->get_margin_height() >= $this->y && + $block->get_position("x") + $block->get_margin_width() >= $floating_frame->get_position("x") + ) { + if ($float === "left") { + if ($floating_frame_parent === $this->_block_frame) { + $inside_left_floating_width += $floating_width; + } else { + $outside_left_floating_width += $floating_width; + } + } elseif ($float === "right") { + if ($floating_frame_parent === $this->_block_frame) { + $inside_right_floating_width += $floating_width; + } else { + $outside_right_floating_width += $floating_width; + } + } + + $this->floating_blocks[$id] = true; + } // else, the floating element won't shift anymore + else { + $root->remove_floating_frame($child_key); + } + } + + $this->left += $inside_left_floating_width; + if ($outside_left_floating_width > 0 && $outside_left_floating_width > ((float)$style->length_in_pt($style->margin_left) + (float)$style->length_in_pt($style->padding_left))) { + $this->left += $outside_left_floating_width - (float)$style->length_in_pt($style->margin_left) - (float)$style->length_in_pt($style->padding_left); + } + $this->right += $inside_right_floating_width; + if ($outside_right_floating_width > 0 && $outside_right_floating_width > ((float)$style->length_in_pt($style->margin_left) + (float)$style->length_in_pt($style->padding_right))) { + $this->right += $outside_right_floating_width - (float)$style->length_in_pt($style->margin_right) - (float)$style->length_in_pt($style->padding_right); + } + } + + /** + * @return float + */ + public function get_width() + { + return $this->left + $this->w + $this->right; + } + + /** + * @return Block + */ + public function get_block_frame() + { + return $this->_block_frame; + } + + /** + * @return AbstractFrameDecorator[] + */ + function &get_frames() + { + return $this->_frames; + } + + /** + * @param AbstractFrameDecorator $frame + */ + public function add_frame(Frame $frame): void + { + $this->_frames[] = $frame; + + if ($frame->get_positioner() instanceof InlinePositioner) { + $this->inline = true; + } + } + + /** + * Remove the frame at the given index and all following frames from the + * line. + * + * @param int $index + */ + public function remove_frames(int $index): void + { + $lastIndex = count($this->_frames) - 1; + + if ($index < 0 || $index > $lastIndex) { + return; + } + + for ($i = $lastIndex; $i >= $index; $i--) { + $f = $this->_frames[$i]; + unset($this->_frames[$i]); + $this->w -= $f->get_margin_width(); + } + + // Reset array indices + $this->_frames = array_values($this->_frames); + + // Recalculate the height of the line + $h = 0.0; + $this->inline = false; + + foreach ($this->_frames as $f) { + $h = max($h, $f->get_margin_height()); + + if ($f->get_positioner() instanceof InlinePositioner) { + $this->inline = true; + } + } + + $this->h = $h; + } + + /** + * Get the `outside` positioned list markers to be vertically aligned with + * the line box. + * + * @return ListBullet[] + */ + public function get_list_markers(): array + { + return $this->list_markers; + } + + /** + * Add a list marker to the line box. + * + * The list marker is only added for the purpose of vertical alignment, it + * is not actually added to the list of frames of the line box. + */ + public function add_list_marker(ListBullet $marker): void + { + $this->list_markers[] = $marker; + } + + /** + * An iterator of all list markers and inline positioned frames of the line + * box. + * + * @return \Iterator + */ + public function frames_to_align(): \Iterator + { + yield from $this->list_markers; + + foreach ($this->_frames as $frame) { + if ($frame->get_positioner() instanceof InlinePositioner) { + yield $frame; + } + } + } + + /** + * Trim trailing whitespace from the line. + */ + public function trim_trailing_ws(): void + { + $lastIndex = count($this->_frames) - 1; + + if ($lastIndex < 0) { + return; + } + + $lastFrame = $this->_frames[$lastIndex]; + $reflower = $lastFrame->get_reflower(); + + if ($reflower instanceof TextFrameReflower && !$lastFrame->is_pre()) { + $reflower->trim_trailing_ws(); + $this->recalculate_width(); + } + } + + /** + * Recalculate LineBox width based on the contained frames total width. + * + * @return float + */ + public function recalculate_width(): float + { + $width = 0.0; + + foreach ($this->_frames as $frame) { + $width += $frame->get_margin_width(); + } + + return $this->w = $width; + } + + /** + * @return string + */ + public function __toString(): string + { + $props = ["wc", "y", "w", "h", "left", "right", "br"]; + $s = ""; + foreach ($props as $prop) { + $s .= "$prop: " . $this->$prop . "\n"; + } + $s .= count($this->_frames) . " frames\n"; + + return $s; + } +} + +/* +class LineBoxList implements Iterator { + private $_p = 0; + private $_lines = array(); + +} +*/ diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Options.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Options.php new file mode 100644 index 0000000..de127d2 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Options.php @@ -0,0 +1,1159 @@ + ["rules" => []], + "http://" => ["rules" => []], + "https://" => ["rules" => []] + ]; + + /** + * @var string + */ + private $logOutputFile; + + /** + * Styles targeted to this media type are applied to the document. + * This is on top of the media types that are always applied: + * all, static, visual, bitmap, paged, dompdf + * + * @var string + */ + private $defaultMediaType = "screen"; + + /** + * The default paper size. + * + * North America standard is "letter"; other countries generally "a4" + * @see \Dompdf\Adapter\CPDF::PAPER_SIZES for valid sizes + * + * @var string + */ + private $defaultPaperSize = "letter"; + + /** + * The default paper orientation. + * + * The orientation of the page (portrait or landscape). + * + * @var string + */ + private $defaultPaperOrientation = "portrait"; + + /** + * The default font family + * + * Used if no suitable fonts can be found. This must exist in the font folder. + * + * @var string + */ + private $defaultFont = "serif"; + + /** + * Image DPI setting + * + * This setting determines the default DPI setting for images and fonts. The + * DPI may be overridden for inline images by explicitly setting the + * image's width & height style attributes (i.e. if the image's native + * width is 600 pixels and you specify the image's width as 72 points, + * the image will have a DPI of 600 in the rendered PDF. The DPI of + * background images can not be overridden and is controlled entirely + * via this parameter. + * + * For the purposes of DOMPDF, pixels per inch (PPI) = dots per inch (DPI). + * If a size in html is given as px (or without unit as image size), + * this tells the corresponding size in pt at 72 DPI. + * This adjusts the relative sizes to be similar to the rendering of the + * html page in a reference browser. + * + * In pdf, always 1 pt = 1/72 inch + * + * @var int + */ + private $dpi = 96; + + /** + * A ratio applied to the fonts height to be more like browsers' line height + * + * @var float + */ + private $fontHeightRatio = 1.1; + + /** + * Enable embedded PHP + * + * If this setting is set to true then DOMPDF will automatically evaluate + * embedded PHP contained within tags. + * + * ==== IMPORTANT ==== + * Enabling this for documents you do not trust (e.g. arbitrary remote html + * pages) is a security risk. Embedded scripts are run with the same level of + * system access available to dompdf. Set this option to false (recommended) + * if you wish to process untrusted documents. + * + * This setting may increase the risk of system exploit. Do not change + * this settings without understanding the consequences. Additional + * documentation is available on the dompdf wiki at: + * https://github.com/dompdf/dompdf/wiki + * + * @var bool + */ + private $isPhpEnabled = false; + + /** + * Enable remote file access + * + * If this setting is set to true, DOMPDF will access remote sites for + * images and CSS files as required. + * + * ==== IMPORTANT ==== + * This can be a security risk, in particular in combination with isPhpEnabled and + * allowing remote html code to be passed to $dompdf = new DOMPDF(); $dompdf->load_html(...); + * This allows anonymous users to download legally doubtful internet content which on + * tracing back appears to being downloaded by your server, or allows malicious php code + * in remote html pages to be executed by your server with your account privileges. + * + * This setting may increase the risk of system exploit. Do not change + * this settings without understanding the consequences. Additional + * documentation is available on the dompdf wiki at: + * https://github.com/dompdf/dompdf/wiki + * + * @var bool + */ + private $isRemoteEnabled = false; + + /** + * Enable inline JavaScript + * + * If this setting is set to true then DOMPDF will automatically insert + * JavaScript code contained within + * tags as written into the PDF. + * + * NOTE: This is PDF-based JavaScript to be executed by the PDF viewer, + * not browser-based JavaScript executed by Dompdf. + * + * @var bool + */ + private $isJavascriptEnabled = true; + + /** + * Use the HTML5 Lib parser + * + * @deprecated + * @var bool + */ + private $isHtml5ParserEnabled = true; + + /** + * Whether to enable font subsetting or not. + * + * @var bool + */ + private $isFontSubsettingEnabled = true; + + /** + * @var bool + */ + private $debugPng = false; + + /** + * @var bool + */ + private $debugKeepTemp = false; + + /** + * @var bool + */ + private $debugCss = false; + + /** + * @var bool + */ + private $debugLayout = false; + + /** + * @var bool + */ + private $debugLayoutLines = true; + + /** + * @var bool + */ + private $debugLayoutBlocks = true; + + /** + * @var bool + */ + private $debugLayoutInline = true; + + /** + * @var bool + */ + private $debugLayoutPaddingBox = true; + + /** + * The PDF rendering backend to use + * + * Valid settings are 'PDFLib', 'CPDF', 'GD', and 'auto'. 'auto' will + * look for PDFLib and use it if found, or if not it will fall back on + * CPDF. 'GD' renders PDFs to graphic files. {@link Dompdf\CanvasFactory} + * ultimately determines which rendering class to instantiate + * based on this setting. + * + * @var string + */ + private $pdfBackend = "CPDF"; + + /** + * PDFlib license key + * + * If you are using a licensed, commercial version of PDFlib, specify + * your license key here. If you are using PDFlib-Lite or are evaluating + * the commercial version of PDFlib, comment out this setting. + * + * @link http://www.pdflib.com + * + * If pdflib present in web server and auto or selected explicitly above, + * a real license code must exist! + * + * @var string + */ + private $pdflibLicense = ""; + + /** + * HTTP context created with stream_context_create() + * Will be used for file_get_contents + * + * @link https://www.php.net/manual/context.php + * + * @var resource + */ + private $httpContext; + + /** + * @param array $attributes + */ + public function __construct(array $attributes = null) + { + $rootDir = realpath(__DIR__ . "/../"); + $this->setChroot(array($rootDir)); + $this->setRootDir($rootDir); + $this->setTempDir(sys_get_temp_dir()); + $this->setFontDir($rootDir . "/lib/fonts"); + $this->setFontCache($this->getFontDir()); + + $ver = ""; + $versionFile = realpath(__DIR__ . '/../VERSION'); + if (($version = file_get_contents($versionFile)) !== false) { + $version = trim($version); + if ($version !== '$Format:<%h>$') { + $ver = "/$version"; + } + } + $this->setHttpContext([ + "http" => [ + "follow_location" => false, + "user_agent" => "Dompdf$ver https://github.com/dompdf/dompdf" + ] + ]); + + $this->setAllowedProtocols(["file://", "http://", "https://"]); + + if (null !== $attributes) { + $this->set($attributes); + } + } + + /** + * @param array|string $attributes + * @param null|mixed $value + * @return $this + */ + public function set($attributes, $value = null) + { + if (!is_array($attributes)) { + $attributes = [$attributes => $value]; + } + foreach ($attributes as $key => $value) { + if ($key === 'tempDir' || $key === 'temp_dir') { + $this->setTempDir($value); + } elseif ($key === 'fontDir' || $key === 'font_dir') { + $this->setFontDir($value); + } elseif ($key === 'fontCache' || $key === 'font_cache') { + $this->setFontCache($value); + } elseif ($key === 'chroot') { + $this->setChroot($value); + } elseif ($key === 'allowedProtocols') { + $this->setAllowedProtocols($value); + } elseif ($key === 'logOutputFile' || $key === 'log_output_file') { + $this->setLogOutputFile($value); + } elseif ($key === 'defaultMediaType' || $key === 'default_media_type') { + $this->setDefaultMediaType($value); + } elseif ($key === 'defaultPaperSize' || $key === 'default_paper_size') { + $this->setDefaultPaperSize($value); + } elseif ($key === 'defaultPaperOrientation' || $key === 'default_paper_orientation') { + $this->setDefaultPaperOrientation($value); + } elseif ($key === 'defaultFont' || $key === 'default_font') { + $this->setDefaultFont($value); + } elseif ($key === 'dpi') { + $this->setDpi($value); + } elseif ($key === 'fontHeightRatio' || $key === 'font_height_ratio') { + $this->setFontHeightRatio($value); + } elseif ($key === 'isPhpEnabled' || $key === 'is_php_enabled' || $key === 'enable_php') { + $this->setIsPhpEnabled($value); + } elseif ($key === 'isRemoteEnabled' || $key === 'is_remote_enabled' || $key === 'enable_remote') { + $this->setIsRemoteEnabled($value); + } elseif ($key === 'isJavascriptEnabled' || $key === 'is_javascript_enabled' || $key === 'enable_javascript') { + $this->setIsJavascriptEnabled($value); + } elseif ($key === 'isHtml5ParserEnabled' || $key === 'is_html5_parser_enabled' || $key === 'enable_html5_parser') { + $this->setIsHtml5ParserEnabled($value); + } elseif ($key === 'isFontSubsettingEnabled' || $key === 'is_font_subsetting_enabled' || $key === 'enable_font_subsetting') { + $this->setIsFontSubsettingEnabled($value); + } elseif ($key === 'debugPng' || $key === 'debug_png') { + $this->setDebugPng($value); + } elseif ($key === 'debugKeepTemp' || $key === 'debug_keep_temp') { + $this->setDebugKeepTemp($value); + } elseif ($key === 'debugCss' || $key === 'debug_css') { + $this->setDebugCss($value); + } elseif ($key === 'debugLayout' || $key === 'debug_layout') { + $this->setDebugLayout($value); + } elseif ($key === 'debugLayoutLines' || $key === 'debug_layout_lines') { + $this->setDebugLayoutLines($value); + } elseif ($key === 'debugLayoutBlocks' || $key === 'debug_layout_blocks') { + $this->setDebugLayoutBlocks($value); + } elseif ($key === 'debugLayoutInline' || $key === 'debug_layout_inline') { + $this->setDebugLayoutInline($value); + } elseif ($key === 'debugLayoutPaddingBox' || $key === 'debug_layout_padding_box') { + $this->setDebugLayoutPaddingBox($value); + } elseif ($key === 'pdfBackend' || $key === 'pdf_backend') { + $this->setPdfBackend($value); + } elseif ($key === 'pdflibLicense' || $key === 'pdflib_license') { + $this->setPdflibLicense($value); + } elseif ($key === 'httpContext' || $key === 'http_context') { + $this->setHttpContext($value); + } + } + return $this; + } + + /** + * @param string $key + * @return mixed + */ + public function get($key) + { + if ($key === 'tempDir' || $key === 'temp_dir') { + return $this->getTempDir(); + } elseif ($key === 'fontDir' || $key === 'font_dir') { + return $this->getFontDir(); + } elseif ($key === 'fontCache' || $key === 'font_cache') { + return $this->getFontCache(); + } elseif ($key === 'chroot') { + return $this->getChroot(); + } elseif ($key === 'allowedProtocols') { + return $this->getAllowedProtocols(); + } elseif ($key === 'logOutputFile' || $key === 'log_output_file') { + return $this->getLogOutputFile(); + } elseif ($key === 'defaultMediaType' || $key === 'default_media_type') { + return $this->getDefaultMediaType(); + } elseif ($key === 'defaultPaperSize' || $key === 'default_paper_size') { + return $this->getDefaultPaperSize(); + } elseif ($key === 'defaultPaperOrientation' || $key === 'default_paper_orientation') { + return $this->getDefaultPaperOrientation(); + } elseif ($key === 'defaultFont' || $key === 'default_font') { + return $this->getDefaultFont(); + } elseif ($key === 'dpi') { + return $this->getDpi(); + } elseif ($key === 'fontHeightRatio' || $key === 'font_height_ratio') { + return $this->getFontHeightRatio(); + } elseif ($key === 'isPhpEnabled' || $key === 'is_php_enabled' || $key === 'enable_php') { + return $this->getIsPhpEnabled(); + } elseif ($key === 'isRemoteEnabled' || $key === 'is_remote_enabled' || $key === 'enable_remote') { + return $this->getIsRemoteEnabled(); + } elseif ($key === 'isJavascriptEnabled' || $key === 'is_javascript_enabled' || $key === 'enable_javascript') { + return $this->getIsJavascriptEnabled(); + } elseif ($key === 'isHtml5ParserEnabled' || $key === 'is_html5_parser_enabled' || $key === 'enable_html5_parser') { + return $this->getIsHtml5ParserEnabled(); + } elseif ($key === 'isFontSubsettingEnabled' || $key === 'is_font_subsetting_enabled' || $key === 'enable_font_subsetting') { + return $this->getIsFontSubsettingEnabled(); + } elseif ($key === 'debugPng' || $key === 'debug_png') { + return $this->getDebugPng(); + } elseif ($key === 'debugKeepTemp' || $key === 'debug_keep_temp') { + return $this->getDebugKeepTemp(); + } elseif ($key === 'debugCss' || $key === 'debug_css') { + return $this->getDebugCss(); + } elseif ($key === 'debugLayout' || $key === 'debug_layout') { + return $this->getDebugLayout(); + } elseif ($key === 'debugLayoutLines' || $key === 'debug_layout_lines') { + return $this->getDebugLayoutLines(); + } elseif ($key === 'debugLayoutBlocks' || $key === 'debug_layout_blocks') { + return $this->getDebugLayoutBlocks(); + } elseif ($key === 'debugLayoutInline' || $key === 'debug_layout_inline') { + return $this->getDebugLayoutInline(); + } elseif ($key === 'debugLayoutPaddingBox' || $key === 'debug_layout_padding_box') { + return $this->getDebugLayoutPaddingBox(); + } elseif ($key === 'pdfBackend' || $key === 'pdf_backend') { + return $this->getPdfBackend(); + } elseif ($key === 'pdflibLicense' || $key === 'pdflib_license') { + return $this->getPdflibLicense(); + } elseif ($key === 'httpContext' || $key === 'http_context') { + return $this->getHttpContext(); + } + return null; + } + + /** + * @param string $pdfBackend + * @return $this + */ + public function setPdfBackend($pdfBackend) + { + $this->pdfBackend = $pdfBackend; + return $this; + } + + /** + * @return string + */ + public function getPdfBackend() + { + return $this->pdfBackend; + } + + /** + * @param string $pdflibLicense + * @return $this + */ + public function setPdflibLicense($pdflibLicense) + { + $this->pdflibLicense = $pdflibLicense; + return $this; + } + + /** + * @return string + */ + public function getPdflibLicense() + { + return $this->pdflibLicense; + } + + /** + * @param array|string $chroot + * @return $this + */ + public function setChroot($chroot, $delimiter = ',') + { + if (is_string($chroot)) { + $this->chroot = explode($delimiter, $chroot); + } elseif (is_array($chroot)) { + $this->chroot = $chroot; + } + return $this; + } + + /** + * @return array + */ + public function getAllowedProtocols() + { + return $this->allowedProtocols; + } + + /** + * @param array $allowedProtocols The protocols to allow, as an array + * formatted as ["protocol://" => ["rules" => [callable]], ...] + * or ["protocol://", ...] + * + * @return $this + */ + public function setAllowedProtocols(array $allowedProtocols) + { + $protocols = []; + foreach ($allowedProtocols as $protocol => $config) { + if (is_string($protocol)) { + $protocols[$protocol] = []; + if (is_array($config)) { + $protocols[$protocol] = $config; + } + } elseif (is_string($config)) { + $protocols[$config] = []; + } + } + $this->allowedProtocols = []; + foreach ($protocols as $protocol => $config) { + $this->addAllowedProtocol($protocol, ...($config["rules"] ?? [])); + } + return $this; + } + + /** + * Adds a new protocol to the allowed protocols collection + * + * @param string $protocol The scheme to add (e.g. "http://") + * @param callable $rule A callable that validates the protocol + * @return $this + */ + public function addAllowedProtocol(string $protocol, callable ...$rules) + { + $protocol = strtolower($protocol); + if (empty($rules)) { + $rules = []; + switch ($protocol) { + case "file://": + $rules[] = [$this, "validateLocalUri"]; + break; + case "http://": + case "https://": + $rules[] = [$this, "validateRemoteUri"]; + break; + case "phar://": + $rules[] = [$this, "validatePharUri"]; + break; + } + } + $this->allowedProtocols[$protocol] = ["rules" => $rules]; + return $this; + } + + /** + * @return array + */ + public function getChroot() + { + $chroot = []; + if (is_array($this->chroot)) { + $chroot = $this->chroot; + } + return $chroot; + } + + /** + * @param boolean $debugCss + * @return $this + */ + public function setDebugCss($debugCss) + { + $this->debugCss = $debugCss; + return $this; + } + + /** + * @return boolean + */ + public function getDebugCss() + { + return $this->debugCss; + } + + /** + * @param boolean $debugKeepTemp + * @return $this + */ + public function setDebugKeepTemp($debugKeepTemp) + { + $this->debugKeepTemp = $debugKeepTemp; + return $this; + } + + /** + * @return boolean + */ + public function getDebugKeepTemp() + { + return $this->debugKeepTemp; + } + + /** + * @param boolean $debugLayout + * @return $this + */ + public function setDebugLayout($debugLayout) + { + $this->debugLayout = $debugLayout; + return $this; + } + + /** + * @return boolean + */ + public function getDebugLayout() + { + return $this->debugLayout; + } + + /** + * @param boolean $debugLayoutBlocks + * @return $this + */ + public function setDebugLayoutBlocks($debugLayoutBlocks) + { + $this->debugLayoutBlocks = $debugLayoutBlocks; + return $this; + } + + /** + * @return boolean + */ + public function getDebugLayoutBlocks() + { + return $this->debugLayoutBlocks; + } + + /** + * @param boolean $debugLayoutInline + * @return $this + */ + public function setDebugLayoutInline($debugLayoutInline) + { + $this->debugLayoutInline = $debugLayoutInline; + return $this; + } + + /** + * @return boolean + */ + public function getDebugLayoutInline() + { + return $this->debugLayoutInline; + } + + /** + * @param boolean $debugLayoutLines + * @return $this + */ + public function setDebugLayoutLines($debugLayoutLines) + { + $this->debugLayoutLines = $debugLayoutLines; + return $this; + } + + /** + * @return boolean + */ + public function getDebugLayoutLines() + { + return $this->debugLayoutLines; + } + + /** + * @param boolean $debugLayoutPaddingBox + * @return $this + */ + public function setDebugLayoutPaddingBox($debugLayoutPaddingBox) + { + $this->debugLayoutPaddingBox = $debugLayoutPaddingBox; + return $this; + } + + /** + * @return boolean + */ + public function getDebugLayoutPaddingBox() + { + return $this->debugLayoutPaddingBox; + } + + /** + * @param boolean $debugPng + * @return $this + */ + public function setDebugPng($debugPng) + { + $this->debugPng = $debugPng; + return $this; + } + + /** + * @return boolean + */ + public function getDebugPng() + { + return $this->debugPng; + } + + /** + * @param string $defaultFont + * @return $this + */ + public function setDefaultFont($defaultFont) + { + if (!($defaultFont === null || trim($defaultFont) === "")) { + $this->defaultFont = $defaultFont; + } else { + $this->defaultFont = "serif"; + } + return $this; + } + + /** + * @return string + */ + public function getDefaultFont() + { + return $this->defaultFont; + } + + /** + * @param string $defaultMediaType + * @return $this + */ + public function setDefaultMediaType($defaultMediaType) + { + $this->defaultMediaType = $defaultMediaType; + return $this; + } + + /** + * @return string + */ + public function getDefaultMediaType() + { + return $this->defaultMediaType; + } + + /** + * @param string $defaultPaperSize + * @return $this + */ + public function setDefaultPaperSize($defaultPaperSize) + { + $this->defaultPaperSize = $defaultPaperSize; + return $this; + } + + /** + * @param string $defaultPaperOrientation + * @return $this + */ + public function setDefaultPaperOrientation($defaultPaperOrientation) + { + $this->defaultPaperOrientation = $defaultPaperOrientation; + return $this; + } + + /** + * @return string + */ + public function getDefaultPaperSize() + { + return $this->defaultPaperSize; + } + + /** + * @return string + */ + public function getDefaultPaperOrientation() + { + return $this->defaultPaperOrientation; + } + + /** + * @param int $dpi + * @return $this + */ + public function setDpi($dpi) + { + $this->dpi = $dpi; + return $this; + } + + /** + * @return int + */ + public function getDpi() + { + return $this->dpi; + } + + /** + * @param string $fontCache + * @return $this + */ + public function setFontCache($fontCache) + { + $this->fontCache = $fontCache; + return $this; + } + + /** + * @return string + */ + public function getFontCache() + { + return $this->fontCache; + } + + /** + * @param string $fontDir + * @return $this + */ + public function setFontDir($fontDir) + { + $this->fontDir = $fontDir; + return $this; + } + + /** + * @return string + */ + public function getFontDir() + { + return $this->fontDir; + } + + /** + * @param float $fontHeightRatio + * @return $this + */ + public function setFontHeightRatio($fontHeightRatio) + { + $this->fontHeightRatio = $fontHeightRatio; + return $this; + } + + /** + * @return float + */ + public function getFontHeightRatio() + { + return $this->fontHeightRatio; + } + + /** + * @param boolean $isFontSubsettingEnabled + * @return $this + */ + public function setIsFontSubsettingEnabled($isFontSubsettingEnabled) + { + $this->isFontSubsettingEnabled = $isFontSubsettingEnabled; + return $this; + } + + /** + * @return boolean + */ + public function getIsFontSubsettingEnabled() + { + return $this->isFontSubsettingEnabled; + } + + /** + * @return boolean + */ + public function isFontSubsettingEnabled() + { + return $this->getIsFontSubsettingEnabled(); + } + + /** + * @deprecated + * @param boolean $isHtml5ParserEnabled + * @return $this + */ + public function setIsHtml5ParserEnabled($isHtml5ParserEnabled) + { + $this->isHtml5ParserEnabled = $isHtml5ParserEnabled; + return $this; + } + + /** + * @deprecated + * @return boolean + */ + public function getIsHtml5ParserEnabled() + { + return $this->isHtml5ParserEnabled; + } + + /** + * @deprecated + * @return boolean + */ + public function isHtml5ParserEnabled() + { + return $this->getIsHtml5ParserEnabled(); + } + + /** + * @param boolean $isJavascriptEnabled + * @return $this + */ + public function setIsJavascriptEnabled($isJavascriptEnabled) + { + $this->isJavascriptEnabled = $isJavascriptEnabled; + return $this; + } + + /** + * @return boolean + */ + public function getIsJavascriptEnabled() + { + return $this->isJavascriptEnabled; + } + + /** + * @return boolean + */ + public function isJavascriptEnabled() + { + return $this->getIsJavascriptEnabled(); + } + + /** + * @param boolean $isPhpEnabled + * @return $this + */ + public function setIsPhpEnabled($isPhpEnabled) + { + $this->isPhpEnabled = $isPhpEnabled; + return $this; + } + + /** + * @return boolean + */ + public function getIsPhpEnabled() + { + return $this->isPhpEnabled; + } + + /** + * @return boolean + */ + public function isPhpEnabled() + { + return $this->getIsPhpEnabled(); + } + + /** + * @param boolean $isRemoteEnabled + * @return $this + */ + public function setIsRemoteEnabled($isRemoteEnabled) + { + $this->isRemoteEnabled = $isRemoteEnabled; + return $this; + } + + /** + * @return boolean + */ + public function getIsRemoteEnabled() + { + return $this->isRemoteEnabled; + } + + /** + * @return boolean + */ + public function isRemoteEnabled() + { + return $this->getIsRemoteEnabled(); + } + + /** + * @param string $logOutputFile + * @return $this + */ + public function setLogOutputFile($logOutputFile) + { + $this->logOutputFile = $logOutputFile; + return $this; + } + + /** + * @return string + */ + public function getLogOutputFile() + { + return $this->logOutputFile; + } + + /** + * @param string $tempDir + * @return $this + */ + public function setTempDir($tempDir) + { + $this->tempDir = $tempDir; + return $this; + } + + /** + * @return string + */ + public function getTempDir() + { + return $this->tempDir; + } + + /** + * @param string $rootDir + * @return $this + */ + public function setRootDir($rootDir) + { + $this->rootDir = $rootDir; + return $this; + } + + /** + * @return string + */ + public function getRootDir() + { + return $this->rootDir; + } + + /** + * Sets the HTTP context + * + * @param resource|array $httpContext + * @return $this + */ + public function setHttpContext($httpContext) + { + $this->httpContext = is_array($httpContext) ? stream_context_create($httpContext) : $httpContext; + return $this; + } + + /** + * Returns the HTTP context + * + * @return resource + */ + public function getHttpContext() + { + return $this->httpContext; + } + + public function validateLocalUri(string $uri) + { + if ($uri === null || strlen($uri) === 0) { + return [false, "The URI must not be empty."]; + } + + $realfile = realpath(str_replace("file://", "", $uri)); + + $dirs = $this->chroot; + $dirs[] = $this->rootDir; + $chrootValid = false; + foreach ($dirs as $chrootPath) { + $chrootPath = realpath($chrootPath); + if ($chrootPath !== false && strpos($realfile, $chrootPath) === 0) { + $chrootValid = true; + break; + } + } + if ($chrootValid !== true) { + return [false, "Permission denied. The file could not be found under the paths specified by Options::chroot."]; + } + + if (!$realfile) { + return [false, "File not found."]; + } + + return [true, null]; + } + + public function validatePharUri(string $uri) + { + if ($uri === null || strlen($uri) === 0) { + return [false, "The URI must not be empty."]; + } + + $file = substr(substr($uri, 0, strpos($uri, ".phar") + 5), 7); + return $this->validateLocalUri($file); + } + + public function validateRemoteUri(string $uri) + { + if ($uri === null || strlen($uri) === 0) { + return [false, "The URI must not be empty."]; + } + + if (!$this->isRemoteEnabled) { + return [false, "Remote file requested, but remote file download is disabled."]; + } + + return [true, null]; + } +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/PhpEvaluator.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/PhpEvaluator.php new file mode 100644 index 0000000..4a46555 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/PhpEvaluator.php @@ -0,0 +1,62 @@ +_canvas = $canvas; + } + + /** + * @param $code + * @param array $vars + */ + public function evaluate($code, $vars = []) + { + if (!$this->_canvas->get_dompdf()->getOptions()->getIsPhpEnabled()) { + return; + } + + // Set up some variables for the inline code + $pdf = $this->_canvas; + $fontMetrics = $pdf->get_dompdf()->getFontMetrics(); + $PAGE_NUM = $pdf->get_page_number(); + $PAGE_COUNT = $pdf->get_page_count(); + + // Override those variables if passed in + foreach ($vars as $k => $v) { + $$k = $v; + } + + eval($code); + } + + /** + * @param Frame $frame + */ + public function render(Frame $frame) + { + $this->evaluate($frame->get_node()->nodeValue); + } +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Positioner/Absolute.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Positioner/Absolute.php new file mode 100644 index 0000000..2df9a74 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Positioner/Absolute.php @@ -0,0 +1,128 @@ +get_reflower() instanceof Block) { + $style = $frame->get_style(); + [$cbx, $cby, $cbw, $cbh] = $frame->get_containing_block(); + + // If the `top` value is `auto`, the frame will be repositioned + // after its height has been resolved + $left = (float) $style->length_in_pt($style->left, $cbw); + $top = (float) $style->length_in_pt($style->top, $cbh); + + $frame->set_position($cbx + $left, $cby + $top); + } else { + // Legacy positioning logic for image and table frames + // TODO: Resolve dimensions, margins, and offsets similar to the + // block case in the reflowers and use the simplified logic above + $style = $frame->get_style(); + $block_parent = $frame->find_block_parent(); + $current_line = $block_parent->get_current_line_box(); + + list($x, $y, $w, $h) = $frame->get_containing_block(); + $inflow_x = $block_parent->get_content_box()["x"] + $current_line->left + $current_line->w; + $inflow_y = $current_line->y; + + $top = $style->length_in_pt($style->top, $h); + $right = $style->length_in_pt($style->right, $w); + $bottom = $style->length_in_pt($style->bottom, $h); + $left = $style->length_in_pt($style->left, $w); + + list($width, $height) = [$frame->get_margin_width(), $frame->get_margin_height()]; + + $orig_width = $style->get_specified("width"); + $orig_height = $style->get_specified("height"); + + /**************************** + * + * Width auto: + * ____________| left=auto | left=fixed | + * right=auto | A | B | + * right=fixed | C | D | + * + * Width fixed: + * ____________| left=auto | left=fixed | + * right=auto | E | F | + * right=fixed | G | H | + *****************************/ + + if ($left === "auto") { + if ($right === "auto") { + // A or E - Keep the frame at the same position + $x = $inflow_x; + } else { + if ($orig_width === "auto") { + // C + $x += $w - $width - $right; + } else { + // G + $x += $w - $width - $right; + } + } + } else { + if ($right === "auto") { + // B or F + $x += (float)$left; + } else { + if ($orig_width === "auto") { + // D - TODO change width + $x += (float)$left; + } else { + // H - Everything is fixed: left + width win + $x += (float)$left; + } + } + } + + // The same vertically + if ($top === "auto") { + if ($bottom === "auto") { + // A or E - Keep the frame at the same position + $y = $inflow_y; + } else { + if ($orig_height === "auto") { + // C + $y += (float)$h - $height - (float)$bottom; + } else { + // G + $y += (float)$h - $height - (float)$bottom; + } + } + } else { + if ($bottom === "auto") { + // B or F + $y += (float)$top; + } else { + if ($orig_height === "auto") { + // D - TODO change height + $y += (float)$top; + } else { + // H - Everything is fixed: top + height win + $y += (float)$top; + } + } + } + + $frame->set_position($x, $y); + } + } +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Positioner/AbstractPositioner.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Positioner/AbstractPositioner.php new file mode 100644 index 0000000..a75c09f --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Positioner/AbstractPositioner.php @@ -0,0 +1,48 @@ +get_position(); + + if (!$ignore_self) { + $frame->set_position($x + $offset_x, $y + $offset_y); + } + + foreach ($frame->get_children() as $child) { + $child->move($offset_x, $offset_y); + } + } +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Positioner/Block.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Positioner/Block.php new file mode 100644 index 0000000..e6f65ea --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Positioner/Block.php @@ -0,0 +1,40 @@ +get_style(); + $cb = $frame->get_containing_block(); + $p = $frame->find_block_parent(); + + if ($p) { + $float = $style->float; + + if (!$float || $float === "none") { + $p->add_line(true); + } + $y = $p->get_current_line_box()->y; + } else { + $y = $cb["y"]; + } + + $x = $cb["x"]; + + $frame->set_position($x, $y); + } +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Positioner/Fixed.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Positioner/Fixed.php new file mode 100644 index 0000000..13eb9e9 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Positioner/Fixed.php @@ -0,0 +1,92 @@ +get_reflower() instanceof Block) { + parent::position($frame); + } else { + // Legacy positioning logic for image and table frames + // TODO: Resolve dimensions, margins, and offsets similar to the + // block case in the reflowers and use the simplified logic above + $style = $frame->get_style(); + $root = $frame->get_root(); + $initialcb = $root->get_containing_block(); + $initialcb_style = $root->get_style(); + + $p = $frame->find_block_parent(); + if ($p) { + $p->add_line(); + } + // Compute the margins of the @page style + $margin_top = (float)$initialcb_style->length_in_pt($initialcb_style->margin_top, $initialcb["h"]); + $margin_right = (float)$initialcb_style->length_in_pt($initialcb_style->margin_right, $initialcb["w"]); + $margin_bottom = (float)$initialcb_style->length_in_pt($initialcb_style->margin_bottom, $initialcb["h"]); + $margin_left = (float)$initialcb_style->length_in_pt($initialcb_style->margin_left, $initialcb["w"]); + + // The needed computed style of the element + $height = (float)$style->length_in_pt($style->get_specified("height"), $initialcb["h"]); + $width = (float)$style->length_in_pt($style->get_specified("width"), $initialcb["w"]); + + $top = $style->length_in_pt($style->get_specified("top"), $initialcb["h"]); + $right = $style->length_in_pt($style->get_specified("right"), $initialcb["w"]); + $bottom = $style->length_in_pt($style->get_specified("bottom"), $initialcb["h"]); + $left = $style->length_in_pt($style->get_specified("left"), $initialcb["w"]); + + $y = $margin_top; + if (isset($top)) { + $y = (float)$top + $margin_top; + if ($top === "auto") { + $y = $margin_top; + if (isset($bottom) && $bottom !== "auto") { + $y = $initialcb["h"] - $bottom - $margin_bottom; + if ($frame->is_auto_height()) { + $y -= $height; + } else { + $y -= $frame->get_margin_height(); + } + } + } + } + + $x = $margin_left; + if (isset($left)) { + $x = (float)$left + $margin_left; + if ($left === "auto") { + $x = $margin_left; + if (isset($right) && $right !== "auto") { + $x = $initialcb["w"] - $right - $margin_right; + if ($frame->is_auto_width()) { + $x -= $width; + } else { + $x -= $frame->get_margin_width(); + } + } + } + } + + $frame->set_position($x, $y); + + foreach ($frame->get_children() as $child) { + $child->set_position($x, $y); + } + } + } +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Positioner/Inline.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Positioner/Inline.php new file mode 100644 index 0000000..c0bdaf2 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Positioner/Inline.php @@ -0,0 +1,52 @@ +find_block_parent(); + + if (!$block) { + throw new Exception("No block-level parent found. Not good."); + } + + $cb = $frame->get_containing_block(); + $line = $block->get_current_line_box(); + + if (!$frame->is_text_node() && !($frame instanceof InlineFrameDecorator)) { + // Atomic inline boxes and replaced inline elements + // (inline-block, inline-table, img etc.) + $width = $frame->get_margin_width(); + $available_width = $cb["w"] - $line->left - $line->w - $line->right; + + if (Helpers::lengthGreater($width, $available_width)) { + $block->add_line(); + $line = $block->get_current_line_box(); + } + } + + $frame->set_position($cb["x"] + $line->w, $line->y); + } +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Positioner/ListBullet.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Positioner/ListBullet.php new file mode 100644 index 0000000..081d594 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Positioner/ListBullet.php @@ -0,0 +1,42 @@ +get_parent(); + $style = $parent->get_style(); + $cbw = $parent->get_containing_block("w"); + $margin_left = (float) $style->length_in_pt($style->margin_left, $cbw); + $border_edge = $parent->get_position("x") + $margin_left; + + // This includes the marker indentation + $x = $border_edge - $frame->get_margin_width(); + + // The marker is later vertically aligned with the corresponding line + // box and its vertical position is fine-tuned in the renderer + $p = $frame->find_block_parent(); + $y = $p->get_current_line_box()->y; + + $frame->set_position($x, $y); + } +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Positioner/NullPositioner.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Positioner/NullPositioner.php new file mode 100644 index 0000000..6ad425c --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Positioner/NullPositioner.php @@ -0,0 +1,26 @@ +get_cellmap(); + $frame->set_position($cellmap->get_frame_position($frame)); + } +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Positioner/TableRow.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Positioner/TableRow.php new file mode 100644 index 0000000..79c0fcf --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Positioner/TableRow.php @@ -0,0 +1,34 @@ +get_containing_block(); + $p = $frame->get_prev_sibling(); + + if ($p) { + $y = $p->get_position("y") + $p->get_margin_height(); + } else { + $y = $cb["y"]; + } + $frame->set_position($cb["x"], $y); + } +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Renderer.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Renderer.php new file mode 100644 index 0000000..e3cacc1 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Renderer.php @@ -0,0 +1,291 @@ +_canvas->new_page(); + } + + /** + * Render frames recursively + * + * @param Frame $frame the frame to render + */ + public function render(Frame $frame) + { + global $_dompdf_debug; + + $this->_check_callbacks("begin_frame", $frame); + + if ($_dompdf_debug) { + echo $frame; + flush(); + } + + $style = $frame->get_style(); + + if (in_array($style->visibility, ["hidden", "collapse"], true)) { + return; + } + + $display = $style->display; + $transformList = $style->transform; + $hasTransform = $transformList !== []; + + // Starts the CSS transformation + if ($hasTransform) { + $this->_canvas->save(); + list($x, $y) = $frame->get_padding_box(); + $origin = $style->transform_origin; + + foreach ($transformList as $transform) { + list($function, $values) = $transform; + if ($function === "matrix") { + $function = "transform"; + } + + $values = array_map("floatval", $values); + $values[] = $x + (float)$style->length_in_pt($origin[0], (float)$style->length_in_pt($style->width)); + $values[] = $y + (float)$style->length_in_pt($origin[1], (float)$style->length_in_pt($style->height)); + + call_user_func_array([$this->_canvas, $function], $values); + } + } + + switch ($display) { + + case "block": + case "list-item": + case "inline-block": + case "table": + case "inline-table": + $this->_render_frame("block", $frame); + break; + + case "inline": + if ($frame->is_text_node()) { + $this->_render_frame("text", $frame); + } else { + $this->_render_frame("inline", $frame); + } + break; + + case "table-cell": + $this->_render_frame("table-cell", $frame); + break; + + case "table-row-group": + case "table-header-group": + case "table-footer-group": + $this->_render_frame("table-row-group", $frame); + break; + + case "-dompdf-list-bullet": + $this->_render_frame("list-bullet", $frame); + break; + + case "-dompdf-image": + $this->_render_frame("image", $frame); + break; + + case "none": + $node = $frame->get_node(); + + if ($node->nodeName === "script") { + if ($node->getAttribute("type") === "text/php" || + $node->getAttribute("language") === "php" + ) { + // Evaluate embedded php scripts + $this->_render_frame("php", $frame); + } elseif ($node->getAttribute("type") === "text/javascript" || + $node->getAttribute("language") === "javascript" + ) { + // Insert JavaScript + $this->_render_frame("javascript", $frame); + } + } + + // Don't render children, so skip to next iter + return; + + default: + break; + + } + + // Starts the overflow: hidden box + if ($style->overflow === "hidden") { + $padding_box = $frame->get_padding_box(); + [$x, $y, $w, $h] = $padding_box; + $style = $frame->get_style(); + + if ($style->has_border_radius()) { + $border_box = $frame->get_border_box(); + [$tl, $tr, $br, $bl] = $style->resolve_border_radius($border_box, $padding_box); + $this->_canvas->clipping_roundrectangle($x, $y, $w, $h, $tl, $tr, $br, $bl); + } else { + $this->_canvas->clipping_rectangle($x, $y, $w, $h); + } + } + + $stack = []; + + foreach ($frame->get_children() as $child) { + // < 0 : negative z-index + // = 0 : no z-index, no stacking context + // = 1 : stacking context without z-index + // > 1 : z-index + $child_style = $child->get_style(); + $child_z_index = $child_style->z_index; + $z_index = 0; + + if ($child_z_index !== "auto") { + $z_index = $child_z_index + 1; + } elseif ($child_style->float !== "none" || $child->is_positioned()) { + $z_index = 1; + } + + $stack[$z_index][] = $child; + } + + ksort($stack); + + foreach ($stack as $by_index) { + foreach ($by_index as $child) { + $this->render($child); + } + } + + // Ends the overflow: hidden box + if ($style->overflow === "hidden") { + $this->_canvas->clipping_end(); + } + + if ($hasTransform) { + $this->_canvas->restore(); + } + + // Check for end frame callback + $this->_check_callbacks("end_frame", $frame); + } + + /** + * Check for callbacks that need to be performed when a given event + * gets triggered on a frame + * + * @param string $event The type of event + * @param Frame $frame The frame that event is triggered on + */ + protected function _check_callbacks(string $event, Frame $frame): void + { + if (!isset($this->_callbacks)) { + $this->_callbacks = $this->_dompdf->getCallbacks(); + } + + if (isset($this->_callbacks[$event])) { + $fs = $this->_callbacks[$event]; + $canvas = $this->_canvas; + $fontMetrics = $this->_dompdf->getFontMetrics(); + + foreach ($fs as $f) { + $f($frame, $canvas, $fontMetrics); + } + } + } + + /** + * Render a single frame + * + * Creates Renderer objects on demand + * + * @param string $type type of renderer to use + * @param Frame $frame the frame to render + */ + protected function _render_frame($type, $frame) + { + + if (!isset($this->_renderers[$type])) { + + switch ($type) { + case "block": + $this->_renderers[$type] = new Block($this->_dompdf); + break; + + case "inline": + $this->_renderers[$type] = new Renderer\Inline($this->_dompdf); + break; + + case "text": + $this->_renderers[$type] = new Text($this->_dompdf); + break; + + case "image": + $this->_renderers[$type] = new Image($this->_dompdf); + break; + + case "table-cell": + $this->_renderers[$type] = new TableCell($this->_dompdf); + break; + + case "table-row-group": + $this->_renderers[$type] = new TableRowGroup($this->_dompdf); + break; + + case "list-bullet": + $this->_renderers[$type] = new ListBullet($this->_dompdf); + break; + + case "php": + $this->_renderers[$type] = new PhpEvaluator($this->_canvas); + break; + + case "javascript": + $this->_renderers[$type] = new JavascriptEmbedder($this->_dompdf); + break; + + } + } + + $this->_renderers[$type]->render($frame); + } +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Renderer/AbstractRenderer.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Renderer/AbstractRenderer.php new file mode 100644 index 0000000..8b01ef8 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Renderer/AbstractRenderer.php @@ -0,0 +1,1244 @@ +_dompdf = $dompdf; + $this->_canvas = $dompdf->getCanvas(); + } + + /** + * Render a frame. + * + * Specialized in child classes + * + * @param Frame $frame The frame to render + */ + abstract function render(Frame $frame); + + /** + * @param Frame $frame + * @param float[] $border_box + */ + protected function _render_background(Frame $frame, array $border_box): void + { + $style = $frame->get_style(); + $color = $style->background_color; + $image = $style->background_image; + [$x, $y, $w, $h] = $border_box; + + if ($color === "transparent" && $image === "none") { + return; + } + + if ($style->has_border_radius()) { + [$tl, $tr, $br, $bl] = $style->resolve_border_radius($border_box); + $this->_canvas->clipping_roundrectangle($x, $y, $w, $h, $tl, $tr, $br, $bl); + } + + if ($color !== "transparent") { + $this->_canvas->filled_rectangle($x, $y, $w, $h, $color); + } + + if ($image !== "none") { + $this->_background_image($image, $x, $y, $w, $h, $style); + } + + if ($style->has_border_radius()) { + $this->_canvas->clipping_end(); + } + } + + /** + * @param Frame $frame + * @param float[] $border_box + * @param string $corner_style + */ + protected function _render_border(Frame $frame, array $border_box, string $corner_style = "bevel"): void + { + $style = $frame->get_style(); + $bp = $style->get_border_properties(); + [$x, $y, $w, $h] = $border_box; + [$tl, $tr, $br, $bl] = $style->resolve_border_radius($border_box); + + // Short-cut: If all the borders are "solid" with the same color and + // style, and no radius, we'd better draw a rectangle + if ($bp["top"]["style"] === "solid" && + $bp["top"] === $bp["right"] && + $bp["right"] === $bp["bottom"] && + $bp["bottom"] === $bp["left"] && + !$style->has_border_radius() + ) { + $props = $bp["top"]; + if ($props["color"] === "transparent" || $props["width"] <= 0) { + return; + } + + $width = (float)$style->length_in_pt($props["width"]); + $this->_canvas->rectangle($x + $width / 2, $y + $width / 2, $w - $width, $h - $width, $props["color"], $width); + return; + } + + // Do it the long way + $widths = [ + (float)$style->length_in_pt($bp["top"]["width"]), + (float)$style->length_in_pt($bp["right"]["width"]), + (float)$style->length_in_pt($bp["bottom"]["width"]), + (float)$style->length_in_pt($bp["left"]["width"]) + ]; + + foreach ($bp as $side => $props) { + if ($props["style"] === "none" || + $props["style"] === "hidden" || + $props["color"] === "transparent" || + $props["width"] <= 0 + ) { + continue; + } + + [$x, $y, $w, $h] = $border_box; + $method = "_border_" . $props["style"]; + + switch ($side) { + case "top": + $length = $w; + $r1 = $tl; + $r2 = $tr; + break; + + case "bottom": + $length = $w; + $y += $h; + $r1 = $bl; + $r2 = $br; + break; + + case "left": + $length = $h; + $r1 = $tl; + $r2 = $bl; + break; + + case "right": + $length = $h; + $x += $w; + $r1 = $tr; + $r2 = $br; + break; + + default: + break; + } + + // draw rounded corners + $this->$method($x, $y, $length, $props["color"], $widths, $side, $corner_style, $r1, $r2); + } + } + + /** + * @param Frame $frame + * @param float[] $border_box + * @param string $corner_style + */ + protected function _render_outline(Frame $frame, array $border_box, string $corner_style = "bevel"): void + { + $style = $frame->get_style(); + + $width = $style->outline_width; + $outline_style = $style->outline_style; + $color = $style->outline_color; + + if ($outline_style === "none" || $color === "transparent" || $width <= 0) { + return; + } + + $offset = $style->outline_offset; + + [$x, $y, $w, $h] = $border_box; + $d = $width + $offset; + $outline_box = [$x - $d, $y - $d, $w + $d * 2, $h + $d * 2]; + [$tl, $tr, $br, $bl] = $style->resolve_border_radius($border_box, $outline_box); + + $x -= $offset; + $y -= $offset; + $w += $offset * 2; + $h += $offset * 2; + + // For a simple outline, we can draw a rectangle + if ($outline_style === "solid" && !$style->has_border_radius()) { + $x -= $width / 2; + $y -= $width / 2; + $w += $width; + $h += $width; + + $this->_canvas->rectangle($x, $y, $w, $h, $color, $width); + return; + } + + $x -= $width; + $y -= $width; + $w += $width * 2; + $h += $width * 2; + + $method = "_border_" . $outline_style; + $widths = array_fill(0, 4, $width); + $sides = ["top", "right", "left", "bottom"]; + + foreach ($sides as $side) { + switch ($side) { + case "top": + $length = $w; + $side_x = $x; + $side_y = $y; + $r1 = $tl; + $r2 = $tr; + break; + + case "bottom": + $length = $w; + $side_x = $x; + $side_y = $y + $h; + $r1 = $bl; + $r2 = $br; + break; + + case "left": + $length = $h; + $side_x = $x; + $side_y = $y; + $r1 = $tl; + $r2 = $bl; + break; + + case "right": + $length = $h; + $side_x = $x + $w; + $side_y = $y; + $r1 = $tr; + $r2 = $br; + break; + + default: + break; + } + + $this->$method($side_x, $side_y, $length, $color, $widths, $side, $corner_style, $r1, $r2); + } + } + + /** + * Render a background image over a rectangular area + * + * @param string $url The background image to load + * @param float $x The left edge of the rectangular area + * @param float $y The top edge of the rectangular area + * @param float $width The width of the rectangular area + * @param float $height The height of the rectangular area + * @param Style $style The associated Style object + * + * @throws \Exception + */ + protected function _background_image($url, $x, $y, $width, $height, $style) + { + if (!function_exists("imagecreatetruecolor")) { + throw new \Exception("The PHP GD extension is required, but is not installed."); + } + + $sheet = $style->get_stylesheet(); + + // Skip degenerate cases + if ($width == 0 || $height == 0) { + return; + } + + $box_width = $width; + $box_height = $height; + + //debugpng + if ($this->_dompdf->getOptions()->getDebugPng()) { + print '[_background_image ' . $url . ']'; + } + + list($img, $type, /*$msg*/) = Cache::resolve_url( + $url, + $sheet->get_protocol(), + $sheet->get_host(), + $sheet->get_base_path(), + $this->_dompdf->getOptions() + ); + + // Bail if the image is no good + if (Cache::is_broken($img)) { + return; + } + + //Try to optimize away reading and composing of same background multiple times + //Postponing read with imagecreatefrom ...() + //final composition parameters and name not known yet + //Therefore read dimension directly from file, instead of creating gd object first. + //$img_w = imagesx($src); $img_h = imagesy($src); + + list($img_w, $img_h) = Helpers::dompdf_getimagesize($img, $this->_dompdf->getHttpContext()); + if ($img_w == 0 || $img_h == 0) { + return; + } + + // save for later check if file needs to be resized. + $org_img_w = $img_w; + $org_img_h = $img_h; + + $repeat = $style->background_repeat; + $dpi = $this->_dompdf->getOptions()->getDpi(); + + //Increase background resolution and dependent box size according to image resolution to be placed in + //Then image can be copied in without resize + $bg_width = round((float)($width * $dpi) / 72); + $bg_height = round((float)($height * $dpi) / 72); + + list($img_w, $img_h) = $this->_resize_background_image( + $img_w, + $img_h, + $bg_width, + $bg_height, + $style->background_size, + $dpi + ); + //Need %bg_x, $bg_y as background pos, where img starts, converted to pixel + + list($bg_x, $bg_y) = $style->background_position; + + if (Helpers::is_percent($bg_x)) { + // The point $bg_x % from the left edge of the image is placed + // $bg_x % from the left edge of the background rectangle + $p = ((float)$bg_x) / 100.0; + $x1 = $p * $img_w; + $x2 = $p * $bg_width; + + $bg_x = $x2 - $x1; + } else { + $bg_x = (float)($style->length_in_pt($bg_x) * $dpi) / 72; + } + + $bg_x = round($bg_x + (float)$style->length_in_pt($style->border_left_width) * $dpi / 72); + + if (Helpers::is_percent($bg_y)) { + // The point $bg_y % from the left edge of the image is placed + // $bg_y % from the left edge of the background rectangle + $p = ((float)$bg_y) / 100.0; + $y1 = $p * $img_h; + $y2 = $p * $bg_height; + + $bg_y = $y2 - $y1; + } else { + $bg_y = (float)($style->length_in_pt($bg_y) * $dpi) / 72; + } + + $bg_y = round($bg_y + (float)$style->length_in_pt($style->border_top_width) * $dpi / 72); + + //clip background to the image area on partial repeat. Nothing to do if img off area + //On repeat, normalize start position to the tile at immediate left/top or 0/0 of area + //On no repeat with positive offset: move size/start to have offset==0 + //Handle x/y Dimensions separately + + if ($repeat !== "repeat" && $repeat !== "repeat-x") { + //No repeat x + if ($bg_x < 0) { + $bg_width = $img_w + $bg_x; + } else { + $x += ($bg_x * 72) / $dpi; + $bg_width = $bg_width - $bg_x; + if ($bg_width > $img_w) { + $bg_width = $img_w; + } + $bg_x = 0; + } + + if ($bg_width <= 0) { + return; + } + + $width = (float)($bg_width * 72) / $dpi; + } else { + //repeat x + if ($bg_x < 0) { + $bg_x = -((-$bg_x) % $img_w); + } else { + $bg_x = $bg_x % $img_w; + if ($bg_x > 0) { + $bg_x -= $img_w; + } + } + } + + if ($repeat !== "repeat" && $repeat !== "repeat-y") { + //no repeat y + if ($bg_y < 0) { + $bg_height = $img_h + $bg_y; + } else { + $y += ($bg_y * 72) / $dpi; + $bg_height = $bg_height - $bg_y; + if ($bg_height > $img_h) { + $bg_height = $img_h; + } + $bg_y = 0; + } + if ($bg_height <= 0) { + return; + } + $height = (float)($bg_height * 72) / $dpi; + } else { + //repeat y + if ($bg_y < 0) { + $bg_y = -((-$bg_y) % $img_h); + } else { + $bg_y = $bg_y % $img_h; + if ($bg_y > 0) { + $bg_y -= $img_h; + } + } + } + + //Optimization, if repeat has no effect + if ($repeat === "repeat" && $bg_y <= 0 && $img_h + $bg_y >= $bg_height) { + $repeat = "repeat-x"; + } + + if ($repeat === "repeat" && $bg_x <= 0 && $img_w + $bg_x >= $bg_width) { + $repeat = "repeat-y"; + } + + if (($repeat === "repeat-x" && $bg_x <= 0 && $img_w + $bg_x >= $bg_width) || + ($repeat === "repeat-y" && $bg_y <= 0 && $img_h + $bg_y >= $bg_height) + ) { + $repeat = "no-repeat"; + } + + // Avoid rendering identical background-image variants multiple times + // This is not dependent of background color of box! .'_'.(is_array($bg_color) ? $bg_color["hex"] : $bg_color) + // Note: Here, bg_* are the start values, not end values after going through the tile loops! + + $key = implode("_", [$bg_width, $bg_height, $img_w, $img_h, $bg_x, $bg_y, $repeat]); + // FIXME: This will fail when a file with that exact name exists in the + // same directory, included in the document as regular image + $cpdfKey = $img . "_" . $key; + $tmpFile = Cache::getTempImage($img, $key); + $cached = ($this->_canvas instanceof CPDF && $this->_canvas->get_cpdf()->image_iscached($cpdfKey)) + || ($tmpFile !== null && file_exists($tmpFile)); + + if (!$cached) { + // img: image url string + // img_w, img_h: original image size in px + // width, height: box size in pt + // bg_width, bg_height: box size in px + // x, y: left/top edge of box on page in pt + // start_x, start_y: placement of image relative to pattern + // $repeat: repeat mode + // $bg: GD object of result image + // $src: GD object of original image + + // Create a new image to fit over the background rectangle + $bg = imagecreatetruecolor($bg_width, $bg_height); + $cpdfFromGd = true; + + switch (strtolower($type)) { + case "png": + $cpdfFromGd = false; + imagesavealpha($bg, true); + imagealphablending($bg, false); + $src = @imagecreatefrompng($img); + break; + + case "jpeg": + $src = @imagecreatefromjpeg($img); + break; + + case "webp": + $src = @imagecreatefromwebp($img); + break; + + case "gif": + $src = @imagecreatefromgif($img); + break; + + case "bmp": + $src = @Helpers::imagecreatefrombmp($img); + break; + + default: + return; // Unsupported image type + } + + if ($src == null) { + return; + } + + if ($img_w != $org_img_w || $img_h != $org_img_h) { + $newSrc = imagescale($src, $img_w, $img_h); + imagedestroy($src); + $src = $newSrc; + } + + if ($src == null) { + return; + } + + //Background color if box is not relevant here + //Non transparent image: box clipped to real size. Background non relevant. + //Transparent image: The image controls the transparency and lets shine through whatever background. + //However on transparent image preset the composed image with the transparency color, + //to keep the transparency when copying over the non transparent parts of the tiles. + $ti = imagecolortransparent($src); + $palletsize = imagecolorstotal($src); + + if ($ti >= 0 && $ti < $palletsize) { + $tc = imagecolorsforindex($src, $ti); + $ti = imagecolorallocate($bg, $tc['red'], $tc['green'], $tc['blue']); + imagefill($bg, 0, 0, $ti); + imagecolortransparent($bg, $ti); + } + + //This has only an effect for the non repeatable dimension. + //compute start of src and dest coordinates of the single copy + if ($bg_x < 0) { + $dst_x = 0; + $src_x = -$bg_x; + } else { + $src_x = 0; + $dst_x = $bg_x; + } + + if ($bg_y < 0) { + $dst_y = 0; + $src_y = -$bg_y; + } else { + $src_y = 0; + $dst_y = $bg_y; + } + + //For historical reasons exchange meanings of variables: + //start_* will be the start values, while bg_* will be the temporary start values in the loops + $start_x = $bg_x; + $start_y = $bg_y; + + // Copy regions from the source image to the background + if ($repeat === "no-repeat") { + // Simply place the image on the background + imagecopy($bg, $src, $dst_x, $dst_y, $src_x, $src_y, $img_w, $img_h); + + } elseif ($repeat === "repeat-x") { + for ($bg_x = $start_x; $bg_x < $bg_width; $bg_x += $img_w) { + if ($bg_x < 0) { + $dst_x = 0; + $src_x = -$bg_x; + $w = $img_w + $bg_x; + } else { + $dst_x = $bg_x; + $src_x = 0; + $w = $img_w; + } + imagecopy($bg, $src, $dst_x, $dst_y, $src_x, $src_y, $w, $img_h); + } + } elseif ($repeat === "repeat-y") { + + for ($bg_y = $start_y; $bg_y < $bg_height; $bg_y += $img_h) { + if ($bg_y < 0) { + $dst_y = 0; + $src_y = -$bg_y; + $h = $img_h + $bg_y; + } else { + $dst_y = $bg_y; + $src_y = 0; + $h = $img_h; + } + imagecopy($bg, $src, $dst_x, $dst_y, $src_x, $src_y, $img_w, $h); + } + } elseif ($repeat === "repeat") { + for ($bg_y = $start_y; $bg_y < $bg_height; $bg_y += $img_h) { + for ($bg_x = $start_x; $bg_x < $bg_width; $bg_x += $img_w) { + if ($bg_x < 0) { + $dst_x = 0; + $src_x = -$bg_x; + $w = $img_w + $bg_x; + } else { + $dst_x = $bg_x; + $src_x = 0; + $w = $img_w; + } + + if ($bg_y < 0) { + $dst_y = 0; + $src_y = -$bg_y; + $h = $img_h + $bg_y; + } else { + $dst_y = $bg_y; + $src_y = 0; + $h = $img_h; + } + imagecopy($bg, $src, $dst_x, $dst_y, $src_x, $src_y, $w, $h); + } + } + } else { + print 'Unknown repeat!'; + } + + imagedestroy($src); + + if ($cpdfFromGd && $this->_canvas instanceof CPDF) { + // Skip writing temp file as the GD object is added directly + } else { + $tmpDir = $this->_dompdf->getOptions()->getTempDir(); + $tmpName = @tempnam($tmpDir, "bg_dompdf_img_"); + @unlink($tmpName); + $tmpFile = "$tmpName.png"; + + imagepng($bg, $tmpFile); + imagedestroy($bg); + + Cache::addTempImage($img, $tmpFile, $key); + } + } else { + $bg = null; + $cpdfFromGd = $tmpFile === null; + } + + if ($this->_dompdf->getOptions()->getDebugPng()) { + print '[_background_image ' . $tmpFile . ']'; + } + + $this->_canvas->clipping_rectangle($x, $y, $box_width, $box_height); + + // When using cpdf and optimization to direct png creation from gd object is available, + // don't create temp file, but place gd object directly into the pdf + if ($cpdfFromGd && $this->_canvas instanceof CPDF) { + // Note: CPDF_Adapter image converts y position + $this->_canvas->get_cpdf()->addImagePng($bg, $cpdfKey, $x, $this->_canvas->get_height() - $y - $height, $width, $height); + + if (isset($bg)) { + imagedestroy($bg); + } + } else { + $this->_canvas->image($tmpFile, $x, $y, $width, $height); + } + + $this->_canvas->clipping_end(); + } + + // Border rendering functions + + /** + * @param float $x + * @param float $y + * @param float $length + * @param array $color + * @param float[] $widths + * @param string $side + * @param string $corner_style + * @param float $r1 + * @param float $r2 + */ + protected function _border_dotted($x, $y, $length, $color, $widths, $side, $corner_style = "bevel", $r1 = 0, $r2 = 0) + { + $this->_border_line($x, $y, $length, $color, $widths, $side, $corner_style, "dotted", $r1, $r2); + } + + /** + * @param float $x + * @param float $y + * @param float $length + * @param array $color + * @param float[] $widths + * @param string $side + * @param string $corner_style + * @param float $r1 + * @param float $r2 + */ + protected function _border_dashed($x, $y, $length, $color, $widths, $side, $corner_style = "bevel", $r1 = 0, $r2 = 0) + { + $this->_border_line($x, $y, $length, $color, $widths, $side, $corner_style, "dashed", $r1, $r2); + } + + /** + * @param float $x + * @param float $y + * @param float $length + * @param array $color + * @param float[] $widths + * @param string $side + * @param string $corner_style + * @param float $r1 + * @param float $r2 + */ + protected function _border_solid($x, $y, $length, $color, $widths, $side, $corner_style = "bevel", $r1 = 0, $r2 = 0) + { + $this->_border_line($x, $y, $length, $color, $widths, $side, $corner_style, "solid", $r1, $r2); + } + + /** + * @param string $side + * @param float $ratio + * @param float $top + * @param float $right + * @param float $bottom + * @param float $left + * @param float $x + * @param float $y + * @param float $length + * @param float $r1 + * @param float $r2 + */ + protected function _apply_ratio($side, $ratio, $top, $right, $bottom, $left, &$x, &$y, &$length, &$r1, &$r2) + { + switch ($side) { + case "top": + $r1 -= $left * $ratio; + $r2 -= $right * $ratio; + $x += $left * $ratio; + $y += $top * $ratio; + $length -= $left * $ratio + $right * $ratio; + break; + + case "bottom": + $r1 -= $right * $ratio; + $r2 -= $left * $ratio; + $x += $left * $ratio; + $y -= $bottom * $ratio; + $length -= $left * $ratio + $right * $ratio; + break; + + case "left": + $r1 -= $top * $ratio; + $r2 -= $bottom * $ratio; + $x += $left * $ratio; + $y += $top * $ratio; + $length -= $top * $ratio + $bottom * $ratio; + break; + + case "right": + $r1 -= $bottom * $ratio; + $r2 -= $top * $ratio; + $x -= $right * $ratio; + $y += $top * $ratio; + $length -= $top * $ratio + $bottom * $ratio; + break; + + default: + return; + } + } + + /** + * @param float $x + * @param float $y + * @param float $length + * @param array $color + * @param float[] $widths + * @param string $side + * @param string $corner_style + * @param float $r1 + * @param float $r2 + */ + protected function _border_double($x, $y, $length, $color, $widths, $side, $corner_style = "bevel", $r1 = 0, $r2 = 0) + { + list($top, $right, $bottom, $left) = $widths; + + $third_widths = [$top / 3, $right / 3, $bottom / 3, $left / 3]; + + // draw the outer border + $this->_border_solid($x, $y, $length, $color, $third_widths, $side, $corner_style, $r1, $r2); + + $this->_apply_ratio($side, 2 / 3, $top, $right, $bottom, $left, $x, $y, $length, $r1, $r2); + + $this->_border_solid($x, $y, $length, $color, $third_widths, $side, $corner_style, $r1, $r2); + } + + /** + * @param float $x + * @param float $y + * @param float $length + * @param array $color + * @param float[] $widths + * @param string $side + * @param string $corner_style + * @param float $r1 + * @param float $r2 + */ + protected function _border_groove($x, $y, $length, $color, $widths, $side, $corner_style = "bevel", $r1 = 0, $r2 = 0) + { + list($top, $right, $bottom, $left) = $widths; + + $half_widths = [$top / 2, $right / 2, $bottom / 2, $left / 2]; + + $this->_border_inset($x, $y, $length, $color, $half_widths, $side, $corner_style, $r1, $r2); + + $this->_apply_ratio($side, 0.5, $top, $right, $bottom, $left, $x, $y, $length, $r1, $r2); + + $this->_border_outset($x, $y, $length, $color, $half_widths, $side, $corner_style, $r1, $r2); + } + + /** + * @param float $x + * @param float $y + * @param float $length + * @param array $color + * @param float[] $widths + * @param string $side + * @param string $corner_style + * @param float $r1 + * @param float $r2 + */ + protected function _border_ridge($x, $y, $length, $color, $widths, $side, $corner_style = "bevel", $r1 = 0, $r2 = 0) + { + list($top, $right, $bottom, $left) = $widths; + + $half_widths = [$top / 2, $right / 2, $bottom / 2, $left / 2]; + + $this->_border_outset($x, $y, $length, $color, $half_widths, $side, $corner_style, $r1, $r2); + + $this->_apply_ratio($side, 0.5, $top, $right, $bottom, $left, $x, $y, $length, $r1, $r2); + + $this->_border_inset($x, $y, $length, $color, $half_widths, $side, $corner_style, $r1, $r2); + } + + /** + * @param $c + * @return mixed + */ + protected function _tint($c) + { + if (!is_numeric($c)) { + return $c; + } + + return min(1, $c + 0.16); + } + + /** + * @param $c + * @return mixed + */ + protected function _shade($c) + { + if (!is_numeric($c)) { + return $c; + } + + return max(0, $c - 0.33); + } + + /** + * @param float $x + * @param float $y + * @param float $length + * @param array $color + * @param float[] $widths + * @param string $side + * @param string $corner_style + * @param float $r1 + * @param float $r2 + */ + protected function _border_inset($x, $y, $length, $color, $widths, $side, $corner_style = "bevel", $r1 = 0, $r2 = 0) + { + switch ($side) { + case "top": + case "left": + $shade = array_map([$this, "_shade"], $color); + $this->_border_solid($x, $y, $length, $shade, $widths, $side, $corner_style, $r1, $r2); + break; + + case "bottom": + case "right": + $tint = array_map([$this, "_tint"], $color); + $this->_border_solid($x, $y, $length, $tint, $widths, $side, $corner_style, $r1, $r2); + break; + + default: + return; + } + } + + /** + * @param float $x + * @param float $y + * @param float $length + * @param array $color + * @param float[] $widths + * @param string $side + * @param string $corner_style + * @param float $r1 + * @param float $r2 + */ + protected function _border_outset($x, $y, $length, $color, $widths, $side, $corner_style = "bevel", $r1 = 0, $r2 = 0) + { + switch ($side) { + case "top": + case "left": + $tint = array_map([$this, "_tint"], $color); + $this->_border_solid($x, $y, $length, $tint, $widths, $side, $corner_style, $r1, $r2); + break; + + case "bottom": + case "right": + $shade = array_map([$this, "_shade"], $color); + $this->_border_solid($x, $y, $length, $shade, $widths, $side, $corner_style, $r1, $r2); + break; + + default: + return; + } + } + + /** + * Get the dash pattern and cap style for the given border style, width, and + * line length. + * + * The base pattern is adjusted so that it fits the given line length + * symmetrically. + * + * @param string $style + * @param float $width + * @param float $length + * + * @return array + */ + protected function dashPattern(string $style, float $width, float $length): array + { + if ($style === "dashed") { + $w = 3 * $width; + + if ($length < $w) { + $s = $w; + } else { + // Scale dashes and gaps + $r = round($length / $w); + $r = $r % 2 === 0 ? $r + 1 : $r; + $s = $length / $r; + } + + return [[$s], "butt"]; + } + + if ($style === "dotted") { + // Draw circles along the line + // Round caps extend outwards by half line width, so a zero dash + // width results in a circle + $gap = $width <= 1 ? 2 : 1; + $w = ($gap + 1) * $width; + + if ($length < $w) { + $s = $w; + } else { + // Only scale gaps + $l = $length - $width; + $r = max(round($l / $w), 1); + $s = $l / $r; + } + + return [[0, $s], "round"]; + } + + return [[], "butt"]; + } + + /** + * Draws a solid, dotted, or dashed line, observing the border radius + * + * @param float $x + * @param float $y + * @param float $length + * @param array $color + * @param float[] $widths + * @param string $side + * @param string $corner_style + * @param string $pattern_name + * @param float $r1 + * @param float $r2 + */ + protected function _border_line($x, $y, $length, $color, $widths, $side, $corner_style = "bevel", $pattern_name = "none", $r1 = 0, $r2 = 0) + { + /** used by $$side */ + [$top, $right, $bottom, $left] = $widths; + $width = $$side; + + // No need to clip corners if border radius is large enough + $cornerClip = $corner_style === "bevel" && ($r1 < $width || $r2 < $width); + $lineLength = $length - $r1 - $r2; + [$pattern, $cap] = $this->dashPattern($pattern_name, $width, $lineLength); + + // Determine arc border radius for corner arcs + $halfWidth = $width / 2; + $ar1 = max($r1 - $halfWidth, 0); + $ar2 = max($r2 - $halfWidth, 0); + + // Small angle adjustments to prevent the background from shining through + $adj1 = $ar1 / 80; + $adj2 = $ar2 / 80; + + // Adjust line width and corner angles to account for the fact that + // round caps extend outwards. The line is actually only shifted below, + // not shortened, as otherwise the end dash (circle) will vanish + // occasionally + $dl = $cap === "round" ? $halfWidth : 0; + + if ($cap === "round" && $ar1 > 0) { + $adj1 -= rad2deg(asin($halfWidth / $ar1)); + } + if ($cap === "round" && $ar2 > 0) { + $adj2 -= rad2deg(asin($halfWidth / $ar2)); + } + + switch ($side) { + case "top": + if ($cornerClip) { + $points = [ + $x, $y, + $x, $y - 1, // Extend outwards to avoid gaps + $x + $length, $y - 1, // Extend outwards to avoid gaps + $x + $length, $y, + $x + $length - max($right, $r2), $y + max($width, $r2), + $x + max($left, $r1), $y + max($width, $r1) + ]; + $this->_canvas->clipping_polygon($points); + } + + $y += $halfWidth; + + if ($ar1 > 0 && $adj1 > -22.5) { + $this->_canvas->arc($x + $r1, $y + $ar1, $ar1, $ar1, 90 - $adj1, 135 + $adj1, $color, $width, $pattern, $cap); + } + + if ($lineLength > 0) { + $this->_canvas->line($x + $dl + $r1, $y, $x + $dl + $length - $r2, $y, $color, $width, $pattern, $cap); + } + + if ($ar2 > 0 && $adj2 > -22.5) { + $this->_canvas->arc($x + $length - $r2, $y + $ar2, $ar2, $ar2, 45 - $adj2, 90 + $adj2, $color, $width, $pattern, $cap); + } + break; + + case "bottom": + if ($cornerClip) { + $points = [ + $x, $y, + $x, $y + 1, // Extend outwards to avoid gaps + $x + $length, $y + 1, // Extend outwards to avoid gaps + $x + $length, $y, + $x + $length - max($right, $r2), $y - max($width, $r2), + $x + max($left, $r1), $y - max($width, $r1) + ]; + $this->_canvas->clipping_polygon($points); + } + + $y -= $halfWidth; + + if ($ar1 > 0 && $adj1 > -22.5) { + $this->_canvas->arc($x + $r1, $y - $ar1, $ar1, $ar1, 225 - $adj1, 270 + $adj1, $color, $width, $pattern, $cap); + } + + if ($lineLength > 0) { + $this->_canvas->line($x + $dl + $r1, $y, $x + $dl + $length - $r2, $y, $color, $width, $pattern, $cap); + } + + if ($ar2 > 0 && $adj2 > -22.5) { + $this->_canvas->arc($x + $length - $r2, $y - $ar2, $ar2, $ar2, 270 - $adj2, 315 + $adj2, $color, $width, $pattern, $cap); + } + break; + + case "left": + if ($cornerClip) { + $points = [ + $x, $y, + $x - 1, $y, // Extend outwards to avoid gaps + $x - 1, $y + $length, // Extend outwards to avoid gaps + $x, $y + $length, + $x + max($width, $r2), $y + $length - max($bottom, $r2), + $x + max($width, $r1), $y + max($top, $r1) + ]; + $this->_canvas->clipping_polygon($points); + } + + $x += $halfWidth; + + if ($ar1 > 0 && $adj1 > -22.5) { + $this->_canvas->arc($x + $ar1, $y + $r1, $ar1, $ar1, 135 - $adj1, 180 + $adj1, $color, $width, $pattern, $cap); + } + + if ($lineLength > 0) { + $this->_canvas->line($x, $y + $dl + $r1, $x, $y + $dl + $length - $r2, $color, $width, $pattern, $cap); + } + + if ($ar2 > 0 && $adj2 > -22.5) { + $this->_canvas->arc($x + $ar2, $y + $length - $r2, $ar2, $ar2, 180 - $adj2, 225 + $adj2, $color, $width, $pattern, $cap); + } + break; + + case "right": + if ($cornerClip) { + $points = [ + $x, $y, + $x + 1, $y, // Extend outwards to avoid gaps + $x + 1, $y + $length, // Extend outwards to avoid gaps + $x, $y + $length, + $x - max($width, $r2), $y + $length - max($bottom, $r2), + $x - max($width, $r1), $y + max($top, $r1) + ]; + $this->_canvas->clipping_polygon($points); + } + + $x -= $halfWidth; + + if ($ar1 > 0 && $adj1 > -22.5) { + $this->_canvas->arc($x - $ar1, $y + $r1, $ar1, $ar1, 0 - $adj1, 45 + $adj1, $color, $width, $pattern, $cap); + } + + if ($lineLength > 0) { + $this->_canvas->line($x, $y + $dl + $r1, $x, $y + $dl + $length - $r2, $color, $width, $pattern, $cap); + } + + if ($ar2 > 0 && $adj2 > -22.5) { + $this->_canvas->arc($x - $ar2, $y + $length - $r2, $ar2, $ar2, 315 - $adj2, 360 + $adj2, $color, $width, $pattern, $cap); + } + break; + } + + if ($cornerClip) { + $this->_canvas->clipping_end(); + } + } + + /** + * @param float $opacity + */ + protected function _set_opacity(float $opacity): void + { + if ($opacity >= 0.0 && $opacity <= 1.0) { + $this->_canvas->set_opacity($opacity); + } + } + + /** + * @param float[] $box + * @param string $color + * @param array $style + */ + protected function _debug_layout($box, $color = "red", $style = []) + { + $this->_canvas->rectangle($box[0], $box[1], $box[2], $box[3], Color::parse($color), 0.1, $style); + } + + /** + * @param float $img_width + * @param float $img_height + * @param float $container_width + * @param float $container_height + * @param array|string $bg_resize + * @param int $dpi + * + * @return array + */ + protected function _resize_background_image( + $img_width, + $img_height, + $container_width, + $container_height, + $bg_resize, + $dpi + ) { + // We got two some specific numbers and/or auto definitions + if (is_array($bg_resize)) { + $is_auto_width = $bg_resize[0] === 'auto'; + if ($is_auto_width) { + $new_img_width = $img_width; + } else { + $new_img_width = $bg_resize[0]; + if (Helpers::is_percent($new_img_width)) { + $new_img_width = round(($container_width / 100) * (float)$new_img_width); + } else { + $new_img_width = round($new_img_width * $dpi / 72); + } + } + + $is_auto_height = $bg_resize[1] === 'auto'; + if ($is_auto_height) { + $new_img_height = $img_height; + } else { + $new_img_height = $bg_resize[1]; + if (Helpers::is_percent($new_img_height)) { + $new_img_height = round(($container_height / 100) * (float)$new_img_height); + } else { + $new_img_height = round($new_img_height * $dpi / 72); + } + } + + // if one of both was set to auto the other one needs to scale proportionally + if ($is_auto_width !== $is_auto_height) { + if ($is_auto_height) { + $new_img_height = round($new_img_width * ($img_height / $img_width)); + } else { + $new_img_width = round($new_img_height * ($img_width / $img_height)); + } + } + } else { + $container_ratio = $container_height / $container_width; + + if ($bg_resize === 'cover' || $bg_resize === 'contain') { + $img_ratio = $img_height / $img_width; + + if ( + ($bg_resize === 'cover' && $container_ratio > $img_ratio) || + ($bg_resize === 'contain' && $container_ratio < $img_ratio) + ) { + $new_img_height = $container_height; + $new_img_width = round($container_height / $img_ratio); + } else { + $new_img_width = $container_width; + $new_img_height = round($container_width * $img_ratio); + } + } else { + $new_img_width = $img_width; + $new_img_height = $img_height; + } + } + + return [$new_img_width, $new_img_height]; + } +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Renderer/Block.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Renderer/Block.php new file mode 100644 index 0000000..99db192 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Renderer/Block.php @@ -0,0 +1,88 @@ +get_style(); + $node = $frame->get_node(); + $dompdf = $this->_dompdf; + + $this->_set_opacity($frame->get_opacity($style->opacity)); + + [$x, $y, $w, $h] = $frame->get_border_box(); + + if ($node->nodeName === "body") { + // Margins should be fully resolved at this point + $mt = $style->margin_top; + $mb = $style->margin_bottom; + $h = $frame->get_containing_block("h") - $mt - $mb; + } + + $border_box = [$x, $y, $w, $h]; + + // Draw our background, border and content + $this->_render_background($frame, $border_box); + $this->_render_border($frame, $border_box); + $this->_render_outline($frame, $border_box); + + // Handle anchors & links + if ($node->nodeName === "a" && $href = $node->getAttribute("href")) { + $href = Helpers::build_url($dompdf->getProtocol(), $dompdf->getBaseHost(), $dompdf->getBasePath(), $href) ?? $href; + $this->_canvas->add_link($href, $x, $y, $w, $h); + } + + $id = $frame->get_node()->getAttribute("id"); + if (strlen($id) > 0) { + $this->_canvas->add_named_dest($id); + } + + $this->debugBlockLayout($frame, "red", false); + } + + protected function debugBlockLayout(Frame $frame, ?string $color, bool $lines = false): void + { + $options = $this->_dompdf->getOptions(); + $debugLayout = $options->getDebugLayout(); + + if (!$debugLayout) { + return; + } + + if ($color && $options->getDebugLayoutBlocks()) { + $this->_debug_layout($frame->get_border_box(), $color); + + if ($options->getDebugLayoutPaddingBox()) { + $this->_debug_layout($frame->get_padding_box(), $color, [0.5, 0.5]); + } + } + + if ($lines && $options->getDebugLayoutLines() && $frame instanceof BlockFrameDecorator) { + [$cx, , $cw] = $frame->get_content_box(); + + foreach ($frame->get_line_boxes() as $line) { + $lw = $cw - $line->left - $line->right; + $this->_debug_layout([$cx + $line->left, $line->y, $lw, $line->h], "orange"); + } + } + } +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Renderer/Image.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Renderer/Image.php new file mode 100644 index 0000000..61f684f --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Renderer/Image.php @@ -0,0 +1,90 @@ +get_style(); + $border_box = $frame->get_border_box(); + + $this->_set_opacity($frame->get_opacity($style->opacity)); + + // Render background & borders + $this->_render_background($frame, $border_box); + $this->_render_border($frame, $border_box); + $this->_render_outline($frame, $border_box); + + $content_box = $frame->get_content_box(); + [$x, $y, $w, $h] = $content_box; + + $src = $frame->get_image_url(); + $alt = null; + + if (Cache::is_broken($src) && + $alt = $frame->get_node()->getAttribute("alt") + ) { + $font = $style->font_family; + $size = $style->font_size; + $word_spacing = $style->word_spacing; + $letter_spacing = $style->letter_spacing; + + $this->_canvas->text( + $x, + $y, + $alt, + $font, + $size, + $style->color, + $word_spacing, + $letter_spacing + ); + } elseif ($w > 0 && $h > 0) { + if ($style->has_border_radius()) { + [$tl, $tr, $br, $bl] = $style->resolve_border_radius($border_box, $content_box); + $this->_canvas->clipping_roundrectangle($x, $y, $w, $h, $tl, $tr, $br, $bl); + } + + $this->_canvas->image($src, $x, $y, $w, $h, $style->image_resolution); + + if ($style->has_border_radius()) { + $this->_canvas->clipping_end(); + } + } + + if ($msg = $frame->get_image_msg()) { + $parts = preg_split("/\s*\n\s*/", $msg); + $font = $style->font_family; + $height = 10; + $_y = $alt ? $y + $h - count($parts) * $height : $y; + + foreach ($parts as $i => $_part) { + $this->_canvas->text($x, $_y + $i * $height, $_part, $font, $height * 0.8, [0.5, 0.5, 0.5]); + } + } + + $id = $frame->get_node()->getAttribute("id"); + if (strlen($id) > 0) { + $this->_canvas->add_named_dest($id); + } + + $this->debugBlockLayout($frame, "blue"); + } +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Renderer/Inline.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Renderer/Inline.php new file mode 100644 index 0000000..ad35464 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Renderer/Inline.php @@ -0,0 +1,126 @@ +get_first_child()) { + return; // No children, no service + } + + $style = $frame->get_style(); + $dompdf = $this->_dompdf; + + $this->_set_opacity($frame->get_opacity($style->opacity)); + + $do_debug_layout_line = $dompdf->getOptions()->getDebugLayout() + && $dompdf->getOptions()->getDebugLayoutInline(); + + // Draw the background & border behind each child. To do this we need + // to figure out just how much space each child takes: + [$x, $y] = $frame->get_first_child()->get_position(); + [$w, $h] = $this->get_child_size($frame, $do_debug_layout_line); + + [, , $cbw] = $frame->get_containing_block(); + $margin_left = $style->length_in_pt($style->margin_left, $cbw); + $pt = $style->length_in_pt($style->padding_top, $cbw); + $pb = $style->length_in_pt($style->padding_bottom, $cbw); + + // Make sure that border and background start inside the left margin + // Extend the drawn box by border and padding in vertical direction, as + // these do not affect layout + // FIXME: Using a small vertical offset of a fraction of the height here + // to work around the vertical position being slightly off in general + $x += $margin_left; + $y -= $style->border_top_width + $pt - ($h * 0.1); + $w += $style->border_left_width + $style->border_right_width; + $h += $style->border_top_width + $pt + $style->border_bottom_width + $pb; + + $border_box = [$x, $y, $w, $h]; + $this->_render_background($frame, $border_box); + $this->_render_border($frame, $border_box); + $this->_render_outline($frame, $border_box); + + $node = $frame->get_node(); + $id = $node->getAttribute("id"); + if (strlen($id) > 0) { + $this->_canvas->add_named_dest($id); + } + + // Only two levels of links frames + $is_link_node = $node->nodeName === "a"; + if ($is_link_node) { + if (($name = $node->getAttribute("name"))) { + $this->_canvas->add_named_dest($name); + } + } + + if ($frame->get_parent() && $frame->get_parent()->get_node()->nodeName === "a") { + $link_node = $frame->get_parent()->get_node(); + } + + // Handle anchors & links + if ($is_link_node) { + if ($href = $node->getAttribute("href")) { + $href = Helpers::build_url($dompdf->getProtocol(), $dompdf->getBaseHost(), $dompdf->getBasePath(), $href) ?? $href; + $this->_canvas->add_link($href, $x, $y, $w, $h); + } + } + } + + protected function get_child_size(Frame $frame, bool $do_debug_layout_line): array + { + $w = 0.0; + $h = 0.0; + + foreach ($frame->get_children() as $child) { + if ($child->get_node()->nodeValue === " " && $child->get_prev_sibling() && !$child->get_next_sibling()) { + break; + } + + $style = $child->get_style(); + $auto_width = $style->width === "auto"; + $auto_height = $style->height === "auto"; + [, , $child_w, $child_h] = $child->get_padding_box(); + + if ($auto_width || $auto_height) { + [$child_w2, $child_h2] = $this->get_child_size($child, $do_debug_layout_line); + + if ($auto_width) { + $child_w = $child_w2; + } + + if ($auto_height) { + $child_h = $child_h2; + } + } + + $w += $child_w; + $h = max($h, $child_h); + + if ($do_debug_layout_line) { + $this->_debug_layout($child->get_border_box(), "blue"); + + if ($this->_dompdf->getOptions()->getDebugLayoutPaddingBox()) { + $this->_debug_layout($child->get_padding_box(), "blue", [0.5, 0.5]); + } + } + } + + return [$w, $h]; + } +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Renderer/ListBullet.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Renderer/ListBullet.php new file mode 100644 index 0000000..2df6696 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Renderer/ListBullet.php @@ -0,0 +1,235 @@ +get_parent(); + $style = $frame->get_style(); + + $this->_set_opacity($frame->get_opacity($style->opacity)); + + // Don't render bullets twice if the list item was split + if ($li->is_split_off) { + return; + } + + $font_family = $style->font_family; + $font_size = $style->font_size; + $baseline = $this->_canvas->get_font_baseline($font_family, $font_size); + + // Handle list-style-image + // If list style image is requested but missing, fall back to predefined types + if ($frame instanceof ListBulletImage && !Cache::is_broken($img = $frame->get_image_url())) { + [$x, $y] = $frame->get_position(); + $w = $frame->get_width(); + $h = $frame->get_height(); + $y += $baseline - $h; + + $this->_canvas->image($img, $x, $y, $w, $h); + } else { + $bullet_style = $style->list_style_type; + + switch ($bullet_style) { + default: + case "disc": + case "circle": + [$x, $y] = $frame->get_position(); + $offset = $font_size * ListBulletFrameDecorator::BULLET_OFFSET; + $r = ($font_size * ListBulletFrameDecorator::BULLET_SIZE) / 2; + $x += $r; + $y += $baseline - $r - $offset; + $o = $font_size * ListBulletFrameDecorator::BULLET_THICKNESS; + $this->_canvas->circle($x, $y, $r, $style->color, $o, null, $bullet_style !== "circle"); + break; + + case "square": + [$x, $y] = $frame->get_position(); + $offset = $font_size * ListBulletFrameDecorator::BULLET_OFFSET; + $w = $font_size * ListBulletFrameDecorator::BULLET_SIZE; + $y += $baseline - $w - $offset; + $this->_canvas->filled_rectangle($x, $y, $w, $w, $style->color); + break; + + case "decimal-leading-zero": + case "decimal": + case "lower-alpha": + case "lower-latin": + case "lower-roman": + case "lower-greek": + case "upper-alpha": + case "upper-latin": + case "upper-roman": + case "1": // HTML 4.0 compatibility + case "a": + case "i": + case "A": + case "I": + $pad = null; + if ($bullet_style === "decimal-leading-zero") { + $pad = strlen($li->get_parent()->get_node()->getAttribute("dompdf-children-count")); + } + + $node = $frame->get_node(); + + if (!$node->hasAttribute("dompdf-counter")) { + return; + } + + $index = $node->getAttribute("dompdf-counter"); + $text = $this->make_counter($index, $bullet_style, $pad); + + if (trim($text) === "") { + return; + } + + $word_spacing = $style->word_spacing; + $letter_spacing = $style->letter_spacing; + $text_width = $this->_dompdf->getFontMetrics()->getTextWidth($text, $font_family, $font_size, $word_spacing, $letter_spacing); + + [$x, $y] = $frame->get_position(); + // Correct for static frame width applied by positioner + $x += $frame->get_width() - $text_width; + + $this->_canvas->text($x, $y, $text, + $font_family, $font_size, + $style->color, $word_spacing, $letter_spacing); + + case "none": + break; + } + } + + $id = $frame->get_node()->getAttribute("id"); + if (strlen($id) > 0) { + $this->_canvas->add_named_dest($id); + } + } +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Renderer/TableCell.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Renderer/TableCell.php new file mode 100644 index 0000000..cbbffd3 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Renderer/TableCell.php @@ -0,0 +1,188 @@ +get_style(); + + if (trim($frame->get_node()->nodeValue) === "" && $style->empty_cells === "hide") { + return; + } + + $this->_set_opacity($frame->get_opacity($style->opacity)); + + $border_box = $frame->get_border_box(); + $table = Table::find_parent_table($frame); + + if ($table->get_style()->border_collapse !== "collapse") { + $this->_render_background($frame, $border_box); + $this->_render_border($frame, $border_box); + $this->_render_outline($frame, $border_box); + } else { + // The collapsed case is slightly complicated... + + $cells = $table->get_cellmap()->get_spanned_cells($frame); + + if (is_null($cells)) { + return; + } + + // Render the background to the padding box, as the cells are + // rendered individually one after another, and we don't want the + // background to overlap an adjacent border + $padding_box = $frame->get_padding_box(); + + $this->_render_background($frame, $padding_box); + $this->_render_collapsed_border($frame, $table); + + // FIXME: Outline should be drawn over other cells + $this->_render_outline($frame, $border_box); + } + + $id = $frame->get_node()->getAttribute("id"); + if (strlen($id) > 0) { + $this->_canvas->add_named_dest($id); + } + + // $this->debugBlockLayout($frame, "red", false); + } + + /** + * @param Frame $frame + * @param Table $table + */ + protected function _render_collapsed_border(Frame $frame, Table $table): void + { + $cellmap = $table->get_cellmap(); + $cells = $cellmap->get_spanned_cells($frame); + $num_rows = $cellmap->get_num_rows(); + $num_cols = $cellmap->get_num_cols(); + + [$table_x, $table_y] = $table->get_position(); + + // Determine the top row spanned by this cell + $i = $cells["rows"][0]; + $top_row = $cellmap->get_row($i); + + // Determine if this cell borders on the bottom of the table. If so, + // then we draw its bottom border. Otherwise the next row down will + // draw its top border instead. + if (in_array($num_rows - 1, $cells["rows"])) { + $draw_bottom = true; + $bottom_row = $cellmap->get_row($num_rows - 1); + } else { + $draw_bottom = false; + } + + // Draw the horizontal borders + foreach ($cells["columns"] as $j) { + $bp = $cellmap->get_border_properties($i, $j); + $col = $cellmap->get_column($j); + + $x = $table_x + $col["x"] - $bp["left"]["width"] / 2; + $y = $table_y + $top_row["y"] - $bp["top"]["width"] / 2; + $w = $col["used-width"] + ($bp["left"]["width"] + $bp["right"]["width"]) / 2; + + if ($bp["top"]["width"] > 0) { + $widths = [ + (float)$bp["top"]["width"], + (float)$bp["right"]["width"], + (float)$bp["bottom"]["width"], + (float)$bp["left"]["width"] + ]; + + $method = "_border_" . $bp["top"]["style"]; + $this->$method($x, $y, $w, $bp["top"]["color"], $widths, "top", "square"); + } + + if ($draw_bottom) { + $bp = $cellmap->get_border_properties($num_rows - 1, $j); + if ($bp["bottom"]["width"] <= 0) { + continue; + } + + $widths = [ + (float)$bp["top"]["width"], + (float)$bp["right"]["width"], + (float)$bp["bottom"]["width"], + (float)$bp["left"]["width"] + ]; + + $y = $table_y + $bottom_row["y"] + $bottom_row["height"] + $bp["bottom"]["width"] / 2; + + $method = "_border_" . $bp["bottom"]["style"]; + $this->$method($x, $y, $w, $bp["bottom"]["color"], $widths, "bottom", "square"); + } + } + + $j = $cells["columns"][0]; + $left_col = $cellmap->get_column($j); + + if (in_array($num_cols - 1, $cells["columns"])) { + $draw_right = true; + $right_col = $cellmap->get_column($num_cols - 1); + } else { + $draw_right = false; + } + + // Draw the vertical borders + foreach ($cells["rows"] as $i) { + $bp = $cellmap->get_border_properties($i, $j); + $row = $cellmap->get_row($i); + + $x = $table_x + $left_col["x"] - $bp["left"]["width"] / 2; + $y = $table_y + $row["y"] - $bp["top"]["width"] / 2; + $h = $row["height"] + ($bp["top"]["width"] + $bp["bottom"]["width"]) / 2; + + if ($bp["left"]["width"] > 0) { + $widths = [ + (float)$bp["top"]["width"], + (float)$bp["right"]["width"], + (float)$bp["bottom"]["width"], + (float)$bp["left"]["width"] + ]; + + $method = "_border_" . $bp["left"]["style"]; + $this->$method($x, $y, $h, $bp["left"]["color"], $widths, "left", "square"); + } + + if ($draw_right) { + $bp = $cellmap->get_border_properties($i, $num_cols - 1); + if ($bp["right"]["width"] <= 0) { + continue; + } + + $widths = [ + (float)$bp["top"]["width"], + (float)$bp["right"]["width"], + (float)$bp["bottom"]["width"], + (float)$bp["left"]["width"] + ]; + + $x = $table_x + $right_col["x"] + $right_col["used-width"] + $bp["right"]["width"] / 2; + + $method = "_border_" . $bp["right"]["style"]; + $this->$method($x, $y, $h, $bp["right"]["color"], $widths, "right", "square"); + } + } + } +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Renderer/TableRowGroup.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Renderer/TableRowGroup.php new file mode 100644 index 0000000..295ccde --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Renderer/TableRowGroup.php @@ -0,0 +1,40 @@ +get_style(); + + $this->_set_opacity($frame->get_opacity($style->opacity)); + + $border_box = $frame->get_border_box(); + + $this->_render_border($frame, $border_box); + $this->_render_outline($frame, $border_box); + + $id = $frame->get_node()->getAttribute("id"); + if (strlen($id) > 0) { + $this->_canvas->add_named_dest($id); + } + + $this->debugBlockLayout($frame, "red"); + } +} diff --git a/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Renderer/Text.php b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Renderer/Text.php new file mode 100644 index 0000000..e7baa0a --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/dompdf/dompdf/src/Renderer/Text.php @@ -0,0 +1,158 @@ +_canvas, "get_cpdf" ) + //- For cpdf these can and must stay 0, because font metrics are used directly. + //- For other renderers, if different values are wanted, separate the parameter sets. + // But $size and $size-$height seem to be accurate enough + + /** Relative to bottom of text, as fraction of height */ + const UNDERLINE_OFFSET = 0.0; + + /** Relative to top of text */ + const OVERLINE_OFFSET = 0.0; + + /** Relative to centre of text. */ + const LINETHROUGH_OFFSET = 0.0; + + /** How far to extend lines past either end, in pt */ + const DECO_EXTENSION = 0.0; + + /** + * @param \Dompdf\FrameDecorator\Text $frame + */ + function render(Frame $frame) + { + $style = $frame->get_style(); + $text = $frame->get_text(); + + if (trim($text) === "") { + return; + } + + $this->_set_opacity($frame->get_opacity($style->opacity)); + + list($x, $y) = $frame->get_position(); + $cb = $frame->get_containing_block(); + + $ml = $style->margin_left; + $pl = $style->padding_left; + $bl = $style->border_left_width; + $x += (float) $style->length_in_pt([$ml, $pl, $bl], $cb["w"]); + + $font = $style->font_family; + $size = $style->font_size; + $frame_font_size = $frame->get_dompdf()->getFontMetrics()->getFontHeight($font, $size); + $word_spacing = $frame->get_text_spacing() + $style->word_spacing; + $letter_spacing = $style->letter_spacing; + $width = (float) $style->width; + + /*$text = str_replace( + array("{PAGE_NUM}"), + array($this->_canvas->get_page_number()), + $text + );*/ + + $this->_canvas->text($x, $y, $text, + $font, $size, + $style->color, $word_spacing, $letter_spacing); + + $line = $frame->get_containing_line(); + + // FIXME Instead of using the tallest frame to position, + // the decoration, the text should be well placed + if (false && $line->tallest_frame) { + $base_frame = $line->tallest_frame; + $style = $base_frame->get_style(); + $size = $style->font_size; + } + + $line_thickness = $size * self::DECO_THICKNESS; + $underline_offset = $size * self::UNDERLINE_OFFSET; + $overline_offset = $size * self::OVERLINE_OFFSET; + $linethrough_offset = $size * self::LINETHROUGH_OFFSET; + $underline_position = -0.08; + + if ($this->_canvas instanceof CPDF) { + $cpdf_font = $this->_canvas->get_cpdf()->fonts[$style->font_family]; + + if (isset($cpdf_font["UnderlinePosition"])) { + $underline_position = $cpdf_font["UnderlinePosition"] / 1000; + } + + if (isset($cpdf_font["UnderlineThickness"])) { + $line_thickness = $size * ($cpdf_font["UnderlineThickness"] / 1000); + } + } + + $descent = $size * $underline_position; + $base = $frame_font_size; + + // Handle text decoration: + // http://www.w3.org/TR/CSS21/text.html#propdef-text-decoration + + // Draw all applicable text-decorations. Start with the root and work our way down. + $p = $frame; + $stack = []; + while ($p = $p->get_parent()) { + $stack[] = $p; + } + + while (isset($stack[0])) { + $f = array_pop($stack); + + if (($text_deco = $f->get_style()->text_decoration) === "none") { + continue; + } + + $deco_y = $y; //$line->y; + $color = $f->get_style()->color; + + switch ($text_deco) { + default: + continue 2; + + case "underline": + $deco_y += $base - $descent + $underline_offset + $line_thickness / 2; + break; + + case "overline": + $deco_y += $overline_offset + $line_thickness / 2; + break; + + case "line-through": + $deco_y += $base * 0.7 + $linethrough_offset; + break; + } + + $dx = 0; + $x1 = $x - self::DECO_EXTENSION; + $x2 = $x + $width + $dx + self::DECO_EXTENSION; + $this->_canvas->line($x1, $deco_y, $x2, $deco_y, $color, $line_thickness); + } + + if ($this->_dompdf->getOptions()->getDebugLayout() && $this->_dompdf->getOptions()->getDebugLayoutLines()) { + $text_width = $this->_dompdf->getFontMetrics()->getTextWidth($text, $font, $size, $word_spacing, $letter_spacing); + $this->_debug_layout([$x, $y, $text_width, $frame_font_size], "orange", [0.5, 0.5]); + } + } +} diff --git a/public_html/2022/newcms/lib/vendor/masterminds/html5/CREDITS b/public_html/2022/newcms/lib/vendor/masterminds/html5/CREDITS new file mode 100644 index 0000000..c2dbc4b --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/masterminds/html5/CREDITS @@ -0,0 +1,11 @@ +Matt Butcher [technosophos] (lead) +Matt Farina [mattfarina] (lead) +Asmir Mustafic [goetas] (contributor) +Edward Z. Yang [ezyang] (contributor) +Geoffrey Sneddon [gsnedders] (contributor) +Kukhar Vasily [ngreduce] (contributor) +Rune Christensen [MrElectronic] (contributor) +Mišo Belica [miso-belica] (contributor) +Asmir Mustafic [goetas] (contributor) +KITAITI Makoto [KitaitiMakoto] (contributor) +Jacob Floyd [cognifloyd] (contributor) diff --git a/public_html/2022/newcms/lib/vendor/masterminds/html5/LICENSE.txt b/public_html/2022/newcms/lib/vendor/masterminds/html5/LICENSE.txt new file mode 100644 index 0000000..3c275b5 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/masterminds/html5/LICENSE.txt @@ -0,0 +1,66 @@ +## HTML5-PHP License + +Copyright (c) 2013 The Authors of HTML5-PHP + +Matt Butcher - mattbutcher@google.com +Matt Farina - matt@mattfarina.com +Asmir Mustafic - goetas@gmail.com + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +## HTML5Lib License + +Portions of this are based on html5lib's PHP version, which was a +sub-project of html5lib. The following is the list of contributors from +html5lib: + +html5lib: + +Copyright (c) 2006-2009 The Authors + +Contributors: +James Graham - jg307@cam.ac.uk +Anne van Kesteren - annevankesteren@gmail.com +Lachlan Hunt - lachlan.hunt@lachy.id.au +Matt McDonald - kanashii@kanashii.ca +Sam Ruby - rubys@intertwingly.net +Ian Hickson (Google) - ian@hixie.ch +Thomas Broyer - t.broyer@ltgt.net +Jacques Distler - distler@golem.ph.utexas.edu +Henri Sivonen - hsivonen@iki.fi +Adam Barth - abarth@webkit.org +Eric Seidel - eric@webkit.org +The Mozilla Foundation (contributions from Henri Sivonen since 2008) +David Flanagan (Mozilla) - dflanagan@mozilla.com + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/public_html/2022/newcms/lib/vendor/masterminds/html5/README.md b/public_html/2022/newcms/lib/vendor/masterminds/html5/README.md new file mode 100644 index 0000000..b1ca1e3 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/masterminds/html5/README.md @@ -0,0 +1,270 @@ +> # UKRAINE NEEDS YOUR HELP NOW! +> +> On 24 February 2022, Russian [President Vladimir Putin ordered an invasion of Ukraine by Russian Armed Forces](https://www.bbc.com/news/world-europe-60504334). +> +> Your support is urgently needed. +> +> - Donate to the volunteers. Here is the volunteer fund helping the Ukrainian army to provide all the necessary equipment: +> https://bank.gov.ua/en/news/all/natsionalniy-bank-vidkriv-spetsrahunok-dlya-zboru-koshtiv-na-potrebi-armiyi or https://savelife.in.ua/en/donate/ +> - Triple-check social media sources. Russian disinformation is attempting to coverup and distort the reality in Ukraine. +> - Help Ukrainian refugees who are fleeing Russian attacks and shellings: https://www.globalcitizen.org/en/content/ways-to-help-ukraine-conflict/ +> - Put pressure on your political representatives to provide help to Ukraine. +> - Believe in the Ukrainian people, they will not surrender, they don't have another Ukraine. +> +> THANK YOU! +---- + +# HTML5-PHP + +HTML5 is a standards-compliant HTML5 parser and writer written entirely in PHP. +It is stable and used in many production websites, and has +well over [five million downloads](https://packagist.org/packages/masterminds/html5). + +HTML5 provides the following features. + +- An HTML5 serializer +- Support for PHP namespaces +- Composer support +- Event-based (SAX-like) parser +- A DOM tree builder +- Interoperability with [QueryPath](https://github.com/technosophos/querypath) +- Runs on **PHP** 5.3.0 or newer + +[![Build Status](https://travis-ci.org/Masterminds/html5-php.png?branch=master)](https://travis-ci.org/Masterminds/html5-php) +[![Latest Stable Version](https://poser.pugx.org/masterminds/html5/v/stable.png)](https://packagist.org/packages/masterminds/html5) +[![Code Coverage](https://scrutinizer-ci.com/g/Masterminds/html5-php/badges/coverage.png?b=master)](https://scrutinizer-ci.com/g/Masterminds/html5-php/?branch=master) +[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/Masterminds/html5-php/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/Masterminds/html5-php/?branch=master) +[![Stability: Sustained](https://masterminds.github.io/stability/sustained.svg)](https://masterminds.github.io/stability/sustained.html) + +## Installation + +Install HTML5-PHP using [composer](http://getcomposer.org/). + +By adding the `masterminds/html5` dependency to your `composer.json` file: + +```json +{ + "require" : { + "masterminds/html5": "^2.0" + }, +} +``` + +By invoking require command via composer executable: + +```bash +composer require masterminds/html5 +``` + +## Basic Usage + +HTML5-PHP has a high-level API and a low-level API. + +Here is how you use the high-level `HTML5` library API: + +```php + + + TEST + + +

Hello World

+

This is a test of the HTML5 parser.

+ + +HERE; + +// Parse the document. $dom is a DOMDocument. +$html5 = new HTML5(); +$dom = $html5->loadHTML($html); + +// Render it as HTML5: +print $html5->saveHTML($dom); + +// Or save it to a file: +$html5->save($dom, 'out.html'); +``` + +The `$dom` created by the parser is a full `DOMDocument` object. And the +`save()` and `saveHTML()` methods will take any DOMDocument. + +### Options + +It is possible to pass in an array of configuration options when loading +an HTML5 document. + +```php +// An associative array of options +$options = array( + 'option_name' => 'option_value', +); + +// Provide the options to the constructor +$html5 = new HTML5($options); + +$dom = $html5->loadHTML($html); +``` + +The following options are supported: + +* `encode_entities` (boolean): Indicates that the serializer should aggressively + encode characters as entities. Without this, it only encodes the bare + minimum. +* `disable_html_ns` (boolean): Prevents the parser from automatically + assigning the HTML5 namespace to the DOM document. This is for + non-namespace aware DOM tools. +* `target_document` (\DOMDocument): A DOM document that will be used as the + destination for the parsed nodes. +* `implicit_namespaces` (array): An assoc array of namespaces that should be + used by the parser. Name is tag prefix, value is NS URI. + +## The Low-Level API + +This library provides the following low-level APIs that you can use to +create more customized HTML5 tools: + +- A SAX-like event-based parser that you can hook into for special kinds +of parsing. +- A flexible error-reporting mechanism that can be tuned to document +syntax checking. +- A DOM implementation that uses PHP's built-in DOM library. + +The unit tests exercise each piece of the API, and every public function +is well-documented. + +### Parser Design + +The parser is designed as follows: + +- The `Scanner` handles scanning on behalf of the parser. +- The `Tokenizer` requests data off of the scanner, parses it, clasifies +it, and sends it to an `EventHandler`. It is a *recursive descent parser.* +- The `EventHandler` receives notifications and data for each specific +semantic event that occurs during tokenization. +- The `DOMBuilder` is an `EventHandler` that listens for tokenizing +events and builds a document tree (`DOMDocument`) based on the events. + +### Serializer Design + +The serializer takes a data structure (the `DOMDocument`) and transforms +it into a character representation -- an HTML5 document. + +The serializer is broken into three parts: + +- The `OutputRules` contain the rules to turn DOM elements into strings. The +rules are an implementation of the interface `RulesInterface` allowing for +different rule sets to be used. +- The `Traverser`, which is a special-purpose tree walker. It visits +each node node in the tree and uses the `OutputRules` to transform the node +into a string. +- `HTML5` manages the `Traverser` and stores the resultant data +in the correct place. + +The serializer (`save()`, `saveHTML()`) follows the +[section 8.9 of the HTML 5.0 spec](http://www.w3.org/TR/2012/CR-html5-20121217/syntax.html#serializing-html-fragments). +So tags are serialized according to these rules: + +- A tag with children: <foo>CHILDREN</foo> +- A tag that cannot have content: <foo> (no closing tag) +- A tag that could have content, but doesn't: <foo></foo> + +## Known Issues (Or, Things We Designed Against the Spec) + +Please check the issue queue for a full list, but the following are +issues known issues that are not presently on the roadmap: + +- Namespaces: HTML5 only [supports a selected list of namespaces](http://www.w3.org/TR/html5/infrastructure.html#namespaces) + and they do not operate in the same way as XML namespaces. A `:` has no special + meaning. + By default the parser does not support XML style namespaces via `:`; + to enable the XML namespaces see the [XML Namespaces section](#xml-namespaces) +- Scripts: This parser does not contain a JavaScript or a CSS + interpreter. While one may be supplied, not all features will be + supported. +- Rentrance: The current parser is not re-entrant. (Thus you can't pause + the parser to modify the HTML string mid-parse.) +- Validation: The current tree builder is **not** a validating parser. + While it will correct some HTML, it does not check that the HTML + conforms to the standard. (Should you wish, you can build a validating + parser by extending DOMTree or building your own EventHandler + implementation.) + * There is limited support for insertion modes. + * Some autocorrection is done automatically. + * Per the spec, many legacy tags are admitted and correctly handled, + even though they are technically not part of HTML5. +- Attribute names and values: Due to the implementation details of the + PHP implementation of DOM, attribute names that do not follow the + XML 1.0 standard are not inserted into the DOM. (Effectively, they + are ignored.) If you've got a clever fix for this, jump in! +- Processor Instructions: The HTML5 spec does not allow processor + instructions. We do. Since this is a server-side library, we think + this is useful. And that means, dear reader, that in some cases you + can parse the HTML from a mixed PHP/HTML document. This, however, + is an incidental feature, not a core feature. +- HTML manifests: Unsupported. +- PLAINTEXT: Unsupported. +- Adoption Agency Algorithm: Not yet implemented. (8.2.5.4.7) + +## XML Namespaces + +To use XML style namespaces you have to configure well the main `HTML5` instance. + +```php +use Masterminds\HTML5; +$html = new HTML5(array( + "xmlNamespaces" => true +)); + +$dom = $html->loadHTML(''); + +$dom->documentElement->namespaceURI; // http://www.example.com + +``` + +You can also add some default prefixes that will not require the namespace declaration, +but its elements will be namespaced. + +```php +use Masterminds\HTML5; +$html = new HTML5(array( + "implicitNamespaces"=>array( + "t"=>"http://www.example.com" + ) +)); + +$dom = $html->loadHTML(''); + +$dom->documentElement->namespaceURI; // http://www.example.com + +``` + +## Thanks to... + +The dedicated (and patient) contributors of patches small and large, +who have already made this library better.See the CREDITS file for +a list of contributors. + +We owe a huge debt of gratitude to the original authors of html5lib. + +While not much of the original parser remains, we learned a lot from +reading the html5lib library. And some pieces remain here. In +particular, much of the UTF-8 and Unicode handling is derived from the +html5lib project. + +## License + +This software is released under the MIT license. The original html5lib +library was also released under the MIT license. + +See LICENSE.txt + +Certain files contain copyright assertions by specific individuals +involved with html5lib. Those have been retained where appropriate. diff --git a/public_html/2022/newcms/lib/vendor/masterminds/html5/RELEASE.md b/public_html/2022/newcms/lib/vendor/masterminds/html5/RELEASE.md new file mode 100644 index 0000000..33007ed --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/masterminds/html5/RELEASE.md @@ -0,0 +1,157 @@ +# Release Notes + +2.7.6 (2021-08-18) + +- #218: Address comment handling issues + +2.7.5 (2021-07-01) + +- #204: Travis: Enable tests on PHP 8.0 +- #207: Fix PHP 8.1 deprecations + +2.7.4 (2020-10-01) + +- #191: Fix travisci build +- #195: Add .gitattributes file with export-ignore rules +- #194: Fix query parameter parsed as character entity + +2.7.3 (2020-07-05) + +- #190: mitigate cyclic reference between output rules and the traverser objects + +2.7.2 (2020-07-01) + +- #187: Fixed memory leak in HTML5::saveHTML() +- #186: Add special case for end tag
+ +2.7.1 (2020-06-14) + +- #171: add PHP 7.4 job +- #178: Prevent infinite loop on un-terminated entity declaration at EOF + +2.7.0 (2019-07-25) + +- #164: Drop HHVM support +- #168: Set default encoding in the DOMDocument object + +2.6.0 (2019-03-10) + +- #163: Allow to pass a charset to the Scanner + +2.5.0 (2018-12-27) + +- #162, #161, #155, #154, #153, #151: big performance improvements +- #156: fixed typos +- #160: adopt and enforce code style +- #159: remove deprecated php unit base test case +- #150: backport changes from old master branch + +2.4.0 (2018-11-17) + +- #148: Improve performance by moving sequence matching +- #147: Improve the Tokenizer performance +- #146: Improve performance by relying on a native string instead of InputStream +- #144: Add DOM extension in composer.json +- #145: Add more extensions on composer.json, improve phpdocs and remove dead code +- #143: Remove experimental comment + +2.3.1 (2018-10-18) + +- #121: Audio is not a block tag (fixed by #141) +- #136: Handle illegal self-closing according to spec (fixed by #137) +- #141: Minor fixes in the README + +2.3.0 (2017-09-04) + +- #129: image within inline svg breaks system (fixed by #133) +- #131: ² does not work (fixed by #132) +- #134: Improve tokenizer performance by 20% (alternative version of #130 thanks to @MichaelHeerklotz) +- #135: Raw & in attributes + +2.2.2 (2016-09-22) + +- #116: In XML mode, tags are case sensitive +- #115: Fix PHP Notice in OutputRules +- #112: fix parsing of options of an optgroup +- #111: Adding test for the address tag + +2.2.1 (2016-05-10) + +- #109: Fixed issue where address tag could be written without closing tag (thanks sylus) + +2.2.0 (2016-04-11) + +- #105: Enable composer cache (for CI/CD) +- #100: Use mb_substitute_character inset of ini_set for environments where ini_set is disable (e.g., shared hosting) +- #98: Allow link, meta, style tags in noscript tags +- #96: Fixed xml:href on svgs that use the "use" breaking +- #94: Counting UTF8 characters performance improvement +- #93: Use newer version of coveralls package +- #90: Remove duplicate test +- #87: Allow multiple root nodes + +2.1.2 (2015-06-07) +- #82: Support for PHP7 +- #84: Improved boolean attribute handling + +2.1.1 (2015-03-23) +- #78: Fixes bug where unmatched entity like string drops everything after &. + +2.1.0 (2015-02-01) +- #74: Added `disable_html_ns` and `target_doc` dom parsing options +- Unified option names +- #73: Fixed alphabet, ß now can be detected +- #75 and #76: Allow whitespace in RCDATA tags +- #77: Fixed parsing blunder for json embeds +- #72: Add options to HTML methods + +2.0.2 (2014-12-17) +- #50: empty document handling +- #63: tags with strange capitalization +- #65: dashes and underscores as allowed characters in tag names +- #68: Fixed issue with non-inline elements inside inline containers + +2.0.1 (2014-09-23) +- #59: Fixed issue parsing some fragments. +- #56: Incorrectly saw 0 as empty string +- Sami as new documentation generator + +2.0.0 (2014-07-28) +- #53: Improved boolean attributes handling +- #52: Facebook HHVM compatibility +- #48: Adopted PSR-2 as coding standard +- #47: Moved everything to Masterminds namespace +- #45: Added custom namespaces +- #44: Added support to XML-style namespaces +- #37: Refactored HTML5 class removing static methods + +1.0.5 (2014-06-10) +- #38: Set the dev-master branch as the 1.0.x branch for composer (goetas) +- #34: Tests use PSR-4 for autoloading. (goetas) +- #40, #41: Fix entity handling in RCDATA sections. (KitaitiMakoto) +- #32: Fixed issue where wharacter references were being incorrectly encoded in style tags. + +1.0.4 (2014-04-29) +- #30/#31 Don't throw an exception for invalid tag names. + +1.0.3 (2014-02-28) +- #23 and #29: Ignore attributes with illegal chars in name for the PHP DOM. + +1.0.2 (2014-02-12) +- #23: Handle missing tag close in attribute list. +- #25: Fixed text escaping in the serializer (HTML% 8.3). +- #27: Fixed tests on Windows: changed "\n" -> PHP_EOL. +- #28: Fixed infinite loop for char "&" in unquoted attribute in parser. +- #26: Updated tag name case handling to deal with uppercase usage. +- #24: Newlines and tabs are allowed inside quoted attributes (HTML5 8.2.4). +- Fixed Travis CI testing. + +1.0.1 (2013-11-07) +- CDATA encoding is improved. (Non-standard; Issue #19) +- Some parser rules were not returning the new current element. (Issue #20) +- Added, to the README, details on code test coverage and to packagist version. +- Fixed processor instructions. +- Improved test coverage and documentation coverage. + +1.0.0 (2013-10-02) +- Initial release. diff --git a/public_html/2022/newcms/lib/vendor/masterminds/html5/UPGRADING.md b/public_html/2022/newcms/lib/vendor/masterminds/html5/UPGRADING.md new file mode 100644 index 0000000..76e3a19 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/masterminds/html5/UPGRADING.md @@ -0,0 +1,21 @@ +From 1.x to 2.x +================= + +- All classes uses `Masterminds` namespace. +- All public static methods has been removed from `HTML5` class and the general API to access the HTML5 functionalities has changed. + + Before: + + $dom = \HTML5::loadHTML('....'); + \HTML5::saveHTML($dom); + + After: + + use Masterminds\HTML5; + + $html5 = new HTML5(); + + $dom = $html5->loadHTML('....'); + echo $html5->saveHTML($dom); + + diff --git a/public_html/2022/newcms/lib/vendor/masterminds/html5/bin/entities.php b/public_html/2022/newcms/lib/vendor/masterminds/html5/bin/entities.php new file mode 100644 index 0000000..56323a3 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/masterminds/html5/bin/entities.php @@ -0,0 +1,26 @@ + $obj) { + $sname = substr($name, 1, -1); + $table[$sname] = $obj->characters; +} + +echo '=5.3.0" + }, + "require-dev": { + "phpunit/phpunit" : "^4.8.35 || ^5.7.21 || ^6 || ^7" + }, + "autoload": { + "psr-4": {"Masterminds\\": "src"} + }, + "autoload-dev": { + "psr-4": {"Masterminds\\HTML5\\Tests\\": "test/HTML5"} + }, + "extra": { + "branch-alias": { + "dev-master": "2.7-dev" + } + } +} diff --git a/public_html/2022/newcms/lib/vendor/masterminds/html5/src/HTML5.php b/public_html/2022/newcms/lib/vendor/masterminds/html5/src/HTML5.php new file mode 100644 index 0000000..c857145 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/masterminds/html5/src/HTML5.php @@ -0,0 +1,246 @@ + false, + + // Prevents the parser from automatically assigning the HTML5 namespace to the DOM document. + 'disable_html_ns' => false, + ); + + protected $errors = array(); + + public function __construct(array $defaultOptions = array()) + { + $this->defaultOptions = array_merge($this->defaultOptions, $defaultOptions); + } + + /** + * Get the current default options. + * + * @return array + */ + public function getOptions() + { + return $this->defaultOptions; + } + + /** + * Load and parse an HTML file. + * + * This will apply the HTML5 parser, which is tolerant of many + * varieties of HTML, including XHTML 1, HTML 4, and well-formed HTML + * 3. Note that in these cases, not all of the old data will be + * preserved. For example, XHTML's XML declaration will be removed. + * + * The rules governing parsing are set out in the HTML 5 spec. + * + * @param string|resource $file The path to the file to parse. If this is a resource, it is + * assumed to be an open stream whose pointer is set to the first + * byte of input. + * @param array $options Configuration options when parsing the HTML. + * + * @return \DOMDocument A DOM document. These object type is defined by the libxml + * library, and should have been included with your version of PHP. + */ + public function load($file, array $options = array()) + { + // Handle the case where file is a resource. + if (is_resource($file)) { + return $this->parse(stream_get_contents($file), $options); + } + + return $this->parse(file_get_contents($file), $options); + } + + /** + * Parse a HTML Document from a string. + * + * Take a string of HTML 5 (or earlier) and parse it into a + * DOMDocument. + * + * @param string $string A html5 document as a string. + * @param array $options Configuration options when parsing the HTML. + * + * @return \DOMDocument A DOM document. DOM is part of libxml, which is included with + * almost all distribtions of PHP. + */ + public function loadHTML($string, array $options = array()) + { + return $this->parse($string, $options); + } + + /** + * Convenience function to load an HTML file. + * + * This is here to provide backwards compatibility with the + * PHP DOM implementation. It simply calls load(). + * + * @param string $file The path to the file to parse. If this is a resource, it is + * assumed to be an open stream whose pointer is set to the first + * byte of input. + * @param array $options Configuration options when parsing the HTML. + * + * @return \DOMDocument A DOM document. These object type is defined by the libxml + * library, and should have been included with your version of PHP. + */ + public function loadHTMLFile($file, array $options = array()) + { + return $this->load($file, $options); + } + + /** + * Parse a HTML fragment from a string. + * + * @param string $string the HTML5 fragment as a string + * @param array $options Configuration options when parsing the HTML + * + * @return \DOMDocumentFragment A DOM fragment. The DOM is part of libxml, which is included with + * almost all distributions of PHP. + */ + public function loadHTMLFragment($string, array $options = array()) + { + return $this->parseFragment($string, $options); + } + + /** + * Return all errors encountered into parsing phase. + * + * @return array + */ + public function getErrors() + { + return $this->errors; + } + + /** + * Return true it some errors were encountered into parsing phase. + * + * @return bool + */ + public function hasErrors() + { + return count($this->errors) > 0; + } + + /** + * Parse an input string. + * + * @param string $input + * @param array $options + * + * @return \DOMDocument + */ + public function parse($input, array $options = array()) + { + $this->errors = array(); + $options = array_merge($this->defaultOptions, $options); + $events = new DOMTreeBuilder(false, $options); + $scanner = new Scanner($input, !empty($options['encoding']) ? $options['encoding'] : 'UTF-8'); + $parser = new Tokenizer($scanner, $events, !empty($options['xmlNamespaces']) ? Tokenizer::CONFORMANT_XML : Tokenizer::CONFORMANT_HTML); + + $parser->parse(); + $this->errors = $events->getErrors(); + + return $events->document(); + } + + /** + * Parse an input stream where the stream is a fragment. + * + * Lower-level loading function. This requires an input stream instead + * of a string, file, or resource. + * + * @param string $input The input data to parse in the form of a string. + * @param array $options An array of options. + * + * @return \DOMDocumentFragment + */ + public function parseFragment($input, array $options = array()) + { + $options = array_merge($this->defaultOptions, $options); + $events = new DOMTreeBuilder(true, $options); + $scanner = new Scanner($input, !empty($options['encoding']) ? $options['encoding'] : 'UTF-8'); + $parser = new Tokenizer($scanner, $events, !empty($options['xmlNamespaces']) ? Tokenizer::CONFORMANT_XML : Tokenizer::CONFORMANT_HTML); + + $parser->parse(); + $this->errors = $events->getErrors(); + + return $events->fragment(); + } + + /** + * Save a DOM into a given file as HTML5. + * + * @param mixed $dom The DOM to be serialized. + * @param string|resource $file The filename to be written or resource to write to. + * @param array $options Configuration options when serializing the DOM. These include: + * - encode_entities: Text written to the output is escaped by default and not all + * entities are encoded. If this is set to true all entities will be encoded. + * Defaults to false. + */ + public function save($dom, $file, $options = array()) + { + $close = true; + if (is_resource($file)) { + $stream = $file; + $close = false; + } else { + $stream = fopen($file, 'wb'); + } + $options = array_merge($this->defaultOptions, $options); + $rules = new OutputRules($stream, $options); + $trav = new Traverser($dom, $stream, $rules, $options); + + $trav->walk(); + /* + * release the traverser to avoid cyclic references and allow PHP to free memory without waiting for gc_collect_cycles + */ + $rules->unsetTraverser(); + if ($close) { + fclose($stream); + } + } + + /** + * Convert a DOM into an HTML5 string. + * + * @param mixed $dom The DOM to be serialized. + * @param array $options Configuration options when serializing the DOM. These include: + * - encode_entities: Text written to the output is escaped by default and not all + * entities are encoded. If this is set to true all entities will be encoded. + * Defaults to false. + * + * @return string A HTML5 documented generated from the DOM. + */ + public function saveHTML($dom, $options = array()) + { + $stream = fopen('php://temp', 'wb'); + $this->save($dom, $stream, array_merge($this->defaultOptions, $options)); + + $html = stream_get_contents($stream, -1, 0); + + fclose($stream); + + return $html; + } +} diff --git a/public_html/2022/newcms/lib/vendor/masterminds/html5/src/HTML5/Elements.php b/public_html/2022/newcms/lib/vendor/masterminds/html5/src/HTML5/Elements.php new file mode 100644 index 0000000..8fe7987 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/masterminds/html5/src/HTML5/Elements.php @@ -0,0 +1,619 @@ + 1, + 'abbr' => 1, + 'address' => 65, // NORMAL | BLOCK_TAG + 'area' => 9, // NORMAL | VOID_TAG + 'article' => 81, // NORMAL | AUTOCLOSE_P | BLOCK_TAG + 'aside' => 81, // NORMAL | AUTOCLOSE_P | BLOCK_TAG + 'audio' => 1, // NORMAL + 'b' => 1, + 'base' => 9, // NORMAL | VOID_TAG + 'bdi' => 1, + 'bdo' => 1, + 'blockquote' => 81, // NORMAL | AUTOCLOSE_P | BLOCK_TAG + 'body' => 1, + 'br' => 9, // NORMAL | VOID_TAG + 'button' => 1, + 'canvas' => 65, // NORMAL | BLOCK_TAG + 'caption' => 1, + 'cite' => 1, + 'code' => 1, + 'col' => 9, // NORMAL | VOID_TAG + 'colgroup' => 1, + 'command' => 9, // NORMAL | VOID_TAG + // "data" => 1, // This is highly experimental and only part of the whatwg spec (not w3c). See https://developer.mozilla.org/en-US/docs/HTML/Element/data + 'datalist' => 1, + 'dd' => 65, // NORMAL | BLOCK_TAG + 'del' => 1, + 'details' => 17, // NORMAL | AUTOCLOSE_P, + 'dfn' => 1, + 'dialog' => 17, // NORMAL | AUTOCLOSE_P, + 'div' => 81, // NORMAL | AUTOCLOSE_P | BLOCK_TAG + 'dl' => 81, // NORMAL | AUTOCLOSE_P | BLOCK_TAG + 'dt' => 1, + 'em' => 1, + 'embed' => 9, // NORMAL | VOID_TAG + 'fieldset' => 81, // NORMAL | AUTOCLOSE_P | BLOCK_TAG + 'figcaption' => 81, // NORMAL | AUTOCLOSE_P | BLOCK_TAG + 'figure' => 81, // NORMAL | AUTOCLOSE_P | BLOCK_TAG + 'footer' => 81, // NORMAL | AUTOCLOSE_P | BLOCK_TAG + 'form' => 81, // NORMAL | AUTOCLOSE_P | BLOCK_TAG + 'h1' => 81, // NORMAL | AUTOCLOSE_P | BLOCK_TAG + 'h2' => 81, // NORMAL | AUTOCLOSE_P | BLOCK_TAG + 'h3' => 81, // NORMAL | AUTOCLOSE_P | BLOCK_TAG + 'h4' => 81, // NORMAL | AUTOCLOSE_P | BLOCK_TAG + 'h5' => 81, // NORMAL | AUTOCLOSE_P | BLOCK_TAG + 'h6' => 81, // NORMAL | AUTOCLOSE_P | BLOCK_TAG + 'head' => 1, + 'header' => 81, // NORMAL | AUTOCLOSE_P | BLOCK_TAG + 'hgroup' => 81, // NORMAL | AUTOCLOSE_P | BLOCK_TAG + 'hr' => 73, // NORMAL | VOID_TAG + 'html' => 1, + 'i' => 1, + 'iframe' => 3, // NORMAL | TEXT_RAW + 'img' => 9, // NORMAL | VOID_TAG + 'input' => 9, // NORMAL | VOID_TAG + 'kbd' => 1, + 'ins' => 1, + 'keygen' => 9, // NORMAL | VOID_TAG + 'label' => 1, + 'legend' => 1, + 'li' => 1, + 'link' => 9, // NORMAL | VOID_TAG + 'map' => 1, + 'mark' => 1, + 'menu' => 17, // NORMAL | AUTOCLOSE_P, + 'meta' => 9, // NORMAL | VOID_TAG + 'meter' => 1, + 'nav' => 17, // NORMAL | AUTOCLOSE_P, + 'noscript' => 65, // NORMAL | BLOCK_TAG + 'object' => 1, + 'ol' => 81, // NORMAL | AUTOCLOSE_P | BLOCK_TAG + 'optgroup' => 1, + 'option' => 1, + 'output' => 65, // NORMAL | BLOCK_TAG + 'p' => 209, // NORMAL | AUTOCLOSE_P | BLOCK_TAG | BLOCK_ONLY_INLINE + 'param' => 9, // NORMAL | VOID_TAG + 'pre' => 81, // NORMAL | AUTOCLOSE_P | BLOCK_TAG + 'progress' => 1, + 'q' => 1, + 'rp' => 1, + 'rt' => 1, + 'ruby' => 1, + 's' => 1, + 'samp' => 1, + 'script' => 3, // NORMAL | TEXT_RAW + 'section' => 81, // NORMAL | AUTOCLOSE_P | BLOCK_TAG + 'select' => 1, + 'small' => 1, + 'source' => 9, // NORMAL | VOID_TAG + 'span' => 1, + 'strong' => 1, + 'style' => 3, // NORMAL | TEXT_RAW + 'sub' => 1, + 'summary' => 17, // NORMAL | AUTOCLOSE_P, + 'sup' => 1, + 'table' => 65, // NORMAL | BLOCK_TAG + 'tbody' => 1, + 'td' => 1, + 'textarea' => 5, // NORMAL | TEXT_RCDATA + 'tfoot' => 65, // NORMAL | BLOCK_TAG + 'th' => 1, + 'thead' => 1, + 'time' => 1, + 'title' => 5, // NORMAL | TEXT_RCDATA + 'tr' => 1, + 'track' => 9, // NORMAL | VOID_TAG + 'u' => 1, + 'ul' => 81, // NORMAL | AUTOCLOSE_P | BLOCK_TAG + 'var' => 1, + 'video' => 65, // NORMAL | BLOCK_TAG + 'wbr' => 9, // NORMAL | VOID_TAG + + // Legacy? + 'basefont' => 8, // VOID_TAG + 'bgsound' => 8, // VOID_TAG + 'noframes' => 2, // RAW_TEXT + 'frame' => 9, // NORMAL | VOID_TAG + 'frameset' => 1, + 'center' => 16, + 'dir' => 16, + 'listing' => 16, // AUTOCLOSE_P + 'plaintext' => 48, // AUTOCLOSE_P | TEXT_PLAINTEXT + 'applet' => 0, + 'marquee' => 0, + 'isindex' => 8, // VOID_TAG + 'xmp' => 20, // AUTOCLOSE_P | VOID_TAG | RAW_TEXT + 'noembed' => 2, // RAW_TEXT + ); + + /** + * The MathML elements. + * See http://www.w3.org/wiki/MathML/Elements. + * + * In our case we are only concerned with presentation MathML and not content + * MathML. There is a nice list of this subset at https://developer.mozilla.org/en-US/docs/MathML/Element. + * + * @var array + */ + public static $mathml = array( + 'maction' => 1, + 'maligngroup' => 1, + 'malignmark' => 1, + 'math' => 1, + 'menclose' => 1, + 'merror' => 1, + 'mfenced' => 1, + 'mfrac' => 1, + 'mglyph' => 1, + 'mi' => 1, + 'mlabeledtr' => 1, + 'mlongdiv' => 1, + 'mmultiscripts' => 1, + 'mn' => 1, + 'mo' => 1, + 'mover' => 1, + 'mpadded' => 1, + 'mphantom' => 1, + 'mroot' => 1, + 'mrow' => 1, + 'ms' => 1, + 'mscarries' => 1, + 'mscarry' => 1, + 'msgroup' => 1, + 'msline' => 1, + 'mspace' => 1, + 'msqrt' => 1, + 'msrow' => 1, + 'mstack' => 1, + 'mstyle' => 1, + 'msub' => 1, + 'msup' => 1, + 'msubsup' => 1, + 'mtable' => 1, + 'mtd' => 1, + 'mtext' => 1, + 'mtr' => 1, + 'munder' => 1, + 'munderover' => 1, + ); + + /** + * The svg elements. + * + * The Mozilla documentation has a good list at https://developer.mozilla.org/en-US/docs/SVG/Element. + * The w3c list appears to be lacking in some areas like filter effect elements. + * That list can be found at http://www.w3.org/wiki/SVG/Elements. + * + * Note, FireFox appears to do a better job rendering filter effects than chrome. + * While they are in the spec I'm not sure how widely implemented they are. + * + * @var array + */ + public static $svg = array( + 'a' => 1, + 'altGlyph' => 1, + 'altGlyphDef' => 1, + 'altGlyphItem' => 1, + 'animate' => 1, + 'animateColor' => 1, + 'animateMotion' => 1, + 'animateTransform' => 1, + 'circle' => 1, + 'clipPath' => 1, + 'color-profile' => 1, + 'cursor' => 1, + 'defs' => 1, + 'desc' => 1, + 'ellipse' => 1, + 'feBlend' => 1, + 'feColorMatrix' => 1, + 'feComponentTransfer' => 1, + 'feComposite' => 1, + 'feConvolveMatrix' => 1, + 'feDiffuseLighting' => 1, + 'feDisplacementMap' => 1, + 'feDistantLight' => 1, + 'feFlood' => 1, + 'feFuncA' => 1, + 'feFuncB' => 1, + 'feFuncG' => 1, + 'feFuncR' => 1, + 'feGaussianBlur' => 1, + 'feImage' => 1, + 'feMerge' => 1, + 'feMergeNode' => 1, + 'feMorphology' => 1, + 'feOffset' => 1, + 'fePointLight' => 1, + 'feSpecularLighting' => 1, + 'feSpotLight' => 1, + 'feTile' => 1, + 'feTurbulence' => 1, + 'filter' => 1, + 'font' => 1, + 'font-face' => 1, + 'font-face-format' => 1, + 'font-face-name' => 1, + 'font-face-src' => 1, + 'font-face-uri' => 1, + 'foreignObject' => 1, + 'g' => 1, + 'glyph' => 1, + 'glyphRef' => 1, + 'hkern' => 1, + 'image' => 1, + 'line' => 1, + 'linearGradient' => 1, + 'marker' => 1, + 'mask' => 1, + 'metadata' => 1, + 'missing-glyph' => 1, + 'mpath' => 1, + 'path' => 1, + 'pattern' => 1, + 'polygon' => 1, + 'polyline' => 1, + 'radialGradient' => 1, + 'rect' => 1, + 'script' => 3, // NORMAL | RAW_TEXT + 'set' => 1, + 'stop' => 1, + 'style' => 3, // NORMAL | RAW_TEXT + 'svg' => 1, + 'switch' => 1, + 'symbol' => 1, + 'text' => 1, + 'textPath' => 1, + 'title' => 1, + 'tref' => 1, + 'tspan' => 1, + 'use' => 1, + 'view' => 1, + 'vkern' => 1, + ); + + /** + * Some attributes in SVG are case sensitive. + * + * This map contains key/value pairs with the key as the lowercase attribute + * name and the value with the correct casing. + */ + public static $svgCaseSensitiveAttributeMap = array( + 'attributename' => 'attributeName', + 'attributetype' => 'attributeType', + 'basefrequency' => 'baseFrequency', + 'baseprofile' => 'baseProfile', + 'calcmode' => 'calcMode', + 'clippathunits' => 'clipPathUnits', + 'contentscripttype' => 'contentScriptType', + 'contentstyletype' => 'contentStyleType', + 'diffuseconstant' => 'diffuseConstant', + 'edgemode' => 'edgeMode', + 'externalresourcesrequired' => 'externalResourcesRequired', + 'filterres' => 'filterRes', + 'filterunits' => 'filterUnits', + 'glyphref' => 'glyphRef', + 'gradienttransform' => 'gradientTransform', + 'gradientunits' => 'gradientUnits', + 'kernelmatrix' => 'kernelMatrix', + 'kernelunitlength' => 'kernelUnitLength', + 'keypoints' => 'keyPoints', + 'keysplines' => 'keySplines', + 'keytimes' => 'keyTimes', + 'lengthadjust' => 'lengthAdjust', + 'limitingconeangle' => 'limitingConeAngle', + 'markerheight' => 'markerHeight', + 'markerunits' => 'markerUnits', + 'markerwidth' => 'markerWidth', + 'maskcontentunits' => 'maskContentUnits', + 'maskunits' => 'maskUnits', + 'numoctaves' => 'numOctaves', + 'pathlength' => 'pathLength', + 'patterncontentunits' => 'patternContentUnits', + 'patterntransform' => 'patternTransform', + 'patternunits' => 'patternUnits', + 'pointsatx' => 'pointsAtX', + 'pointsaty' => 'pointsAtY', + 'pointsatz' => 'pointsAtZ', + 'preservealpha' => 'preserveAlpha', + 'preserveaspectratio' => 'preserveAspectRatio', + 'primitiveunits' => 'primitiveUnits', + 'refx' => 'refX', + 'refy' => 'refY', + 'repeatcount' => 'repeatCount', + 'repeatdur' => 'repeatDur', + 'requiredextensions' => 'requiredExtensions', + 'requiredfeatures' => 'requiredFeatures', + 'specularconstant' => 'specularConstant', + 'specularexponent' => 'specularExponent', + 'spreadmethod' => 'spreadMethod', + 'startoffset' => 'startOffset', + 'stddeviation' => 'stdDeviation', + 'stitchtiles' => 'stitchTiles', + 'surfacescale' => 'surfaceScale', + 'systemlanguage' => 'systemLanguage', + 'tablevalues' => 'tableValues', + 'targetx' => 'targetX', + 'targety' => 'targetY', + 'textlength' => 'textLength', + 'viewbox' => 'viewBox', + 'viewtarget' => 'viewTarget', + 'xchannelselector' => 'xChannelSelector', + 'ychannelselector' => 'yChannelSelector', + 'zoomandpan' => 'zoomAndPan', + ); + + /** + * Some SVG elements are case sensitive. + * This map contains these. + * + * The map contains key/value store of the name is lowercase as the keys and + * the correct casing as the value. + */ + public static $svgCaseSensitiveElementMap = array( + 'altglyph' => 'altGlyph', + 'altglyphdef' => 'altGlyphDef', + 'altglyphitem' => 'altGlyphItem', + 'animatecolor' => 'animateColor', + 'animatemotion' => 'animateMotion', + 'animatetransform' => 'animateTransform', + 'clippath' => 'clipPath', + 'feblend' => 'feBlend', + 'fecolormatrix' => 'feColorMatrix', + 'fecomponenttransfer' => 'feComponentTransfer', + 'fecomposite' => 'feComposite', + 'feconvolvematrix' => 'feConvolveMatrix', + 'fediffuselighting' => 'feDiffuseLighting', + 'fedisplacementmap' => 'feDisplacementMap', + 'fedistantlight' => 'feDistantLight', + 'feflood' => 'feFlood', + 'fefunca' => 'feFuncA', + 'fefuncb' => 'feFuncB', + 'fefuncg' => 'feFuncG', + 'fefuncr' => 'feFuncR', + 'fegaussianblur' => 'feGaussianBlur', + 'feimage' => 'feImage', + 'femerge' => 'feMerge', + 'femergenode' => 'feMergeNode', + 'femorphology' => 'feMorphology', + 'feoffset' => 'feOffset', + 'fepointlight' => 'fePointLight', + 'fespecularlighting' => 'feSpecularLighting', + 'fespotlight' => 'feSpotLight', + 'fetile' => 'feTile', + 'feturbulence' => 'feTurbulence', + 'foreignobject' => 'foreignObject', + 'glyphref' => 'glyphRef', + 'lineargradient' => 'linearGradient', + 'radialgradient' => 'radialGradient', + 'textpath' => 'textPath', + ); + + /** + * Check whether the given element meets the given criterion. + * + * Example: + * + * Elements::isA('script', Elements::TEXT_RAW); // Returns true. + * + * Elements::isA('script', Elements::TEXT_RCDATA); // Returns false. + * + * @param string $name The element name. + * @param int $mask One of the constants on this class. + * + * @return bool true if the element matches the mask, false otherwise. + */ + public static function isA($name, $mask) + { + return (static::element($name) & $mask) === $mask; + } + + /** + * Test if an element is a valid html5 element. + * + * @param string $name The name of the element. + * + * @return bool true if a html5 element and false otherwise. + */ + public static function isHtml5Element($name) + { + // html5 element names are case insensitive. Forcing lowercase for the check. + // Do we need this check or will all data passed here already be lowercase? + return isset(static::$html5[strtolower($name)]); + } + + /** + * Test if an element name is a valid MathML presentation element. + * + * @param string $name The name of the element. + * + * @return bool true if a MathML name and false otherwise. + */ + public static function isMathMLElement($name) + { + // MathML is case-sensitive unlike html5 elements. + return isset(static::$mathml[$name]); + } + + /** + * Test if an element is a valid SVG element. + * + * @param string $name The name of the element. + * + * @return bool true if a SVG element and false otherise. + */ + public static function isSvgElement($name) + { + // SVG is case-sensitive unlike html5 elements. + return isset(static::$svg[$name]); + } + + /** + * Is an element name valid in an html5 document. + * This includes html5 elements along with other allowed embedded content + * such as svg and mathml. + * + * @param string $name The name of the element. + * + * @return bool true if valid and false otherwise. + */ + public static function isElement($name) + { + return static::isHtml5Element($name) || static::isMathMLElement($name) || static::isSvgElement($name); + } + + /** + * Get the element mask for the given element name. + * + * @param string $name The name of the element. + * + * @return int the element mask. + */ + public static function element($name) + { + if (isset(static::$html5[$name])) { + return static::$html5[$name]; + } + if (isset(static::$svg[$name])) { + return static::$svg[$name]; + } + if (isset(static::$mathml[$name])) { + return static::$mathml[$name]; + } + + return 0; + } + + /** + * Normalize a SVG element name to its proper case and form. + * + * @param string $name The name of the element. + * + * @return string the normalized form of the element name. + */ + public static function normalizeSvgElement($name) + { + $name = strtolower($name); + if (isset(static::$svgCaseSensitiveElementMap[$name])) { + $name = static::$svgCaseSensitiveElementMap[$name]; + } + + return $name; + } + + /** + * Normalize a SVG attribute name to its proper case and form. + * + * @param string $name The name of the attribute. + * + * @return string The normalized form of the attribute name. + */ + public static function normalizeSvgAttribute($name) + { + $name = strtolower($name); + if (isset(static::$svgCaseSensitiveAttributeMap[$name])) { + $name = static::$svgCaseSensitiveAttributeMap[$name]; + } + + return $name; + } + + /** + * Normalize a MathML attribute name to its proper case and form. + * Note, all MathML element names are lowercase. + * + * @param string $name The name of the attribute. + * + * @return string The normalized form of the attribute name. + */ + public static function normalizeMathMlAttribute($name) + { + $name = strtolower($name); + + // Only one attribute has a mixed case form for MathML. + if ('definitionurl' === $name) { + $name = 'definitionURL'; + } + + return $name; + } +} diff --git a/public_html/2022/newcms/lib/vendor/masterminds/html5/src/HTML5/Entities.php b/public_html/2022/newcms/lib/vendor/masterminds/html5/src/HTML5/Entities.php new file mode 100644 index 0000000..0e7227d --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/masterminds/html5/src/HTML5/Entities.php @@ -0,0 +1,2236 @@ + 'Á', + 'Aacut' => 'Á', + 'aacute' => 'á', + 'aacut' => 'á', + 'Abreve' => 'Ă', + 'abreve' => 'ă', + 'ac' => '∾', + 'acd' => '∿', + 'acE' => '∾̳', + 'Acirc' => 'Â', + 'Acir' => 'Â', + 'acirc' => 'â', + 'acir' => 'â', + 'acute' => '´', + 'acut' => '´', + 'Acy' => 'А', + 'acy' => 'а', + 'AElig' => 'Æ', + 'AEli' => 'Æ', + 'aelig' => 'æ', + 'aeli' => 'æ', + 'af' => '⁡', + 'Afr' => '𝔄', + 'afr' => '𝔞', + 'Agrave' => 'À', + 'Agrav' => 'À', + 'agrave' => 'à', + 'agrav' => 'à', + 'alefsym' => 'ℵ', + 'aleph' => 'ℵ', + 'Alpha' => 'Α', + 'alpha' => 'α', + 'Amacr' => 'Ā', + 'amacr' => 'ā', + 'amalg' => '⨿', + 'AMP' => '&', + 'AM' => '&', + 'amp' => '&', + 'am' => '&', + 'And' => '⩓', + 'and' => '∧', + 'andand' => '⩕', + 'andd' => '⩜', + 'andslope' => '⩘', + 'andv' => '⩚', + 'ang' => '∠', + 'ange' => '⦤', + 'angle' => '∠', + 'angmsd' => '∡', + 'angmsdaa' => '⦨', + 'angmsdab' => '⦩', + 'angmsdac' => '⦪', + 'angmsdad' => '⦫', + 'angmsdae' => '⦬', + 'angmsdaf' => '⦭', + 'angmsdag' => '⦮', + 'angmsdah' => '⦯', + 'angrt' => '∟', + 'angrtvb' => '⊾', + 'angrtvbd' => '⦝', + 'angsph' => '∢', + 'angst' => 'Å', + 'angzarr' => '⍼', + 'Aogon' => 'Ą', + 'aogon' => 'ą', + 'Aopf' => '𝔸', + 'aopf' => '𝕒', + 'ap' => '≈', + 'apacir' => '⩯', + 'apE' => 'â©°', + 'ape' => '≊', + 'apid' => '≋', + 'apos' => '\'', + 'ApplyFunction' => '⁡', + 'approx' => '≈', + 'approxeq' => '≊', + 'Aring' => 'Å', + 'Arin' => 'Å', + 'aring' => 'Ã¥', + 'arin' => 'Ã¥', + 'Ascr' => '𝒜', + 'ascr' => '𝒶', + 'Assign' => '≔', + 'ast' => '*', + 'asymp' => '≈', + 'asympeq' => '≍', + 'Atilde' => 'Ã', + 'Atild' => 'Ã', + 'atilde' => 'ã', + 'atild' => 'ã', + 'Auml' => 'Ä', + 'Aum' => 'Ä', + 'auml' => 'ä', + 'aum' => 'ä', + 'awconint' => '∳', + 'awint' => '⨑', + 'backcong' => '≌', + 'backepsilon' => '϶', + 'backprime' => '‵', + 'backsim' => '∽', + 'backsimeq' => '⋍', + 'Backslash' => '∖', + 'Barv' => 'â«§', + 'barvee' => '⊽', + 'Barwed' => '⌆', + 'barwed' => '⌅', + 'barwedge' => '⌅', + 'bbrk' => '⎵', + 'bbrktbrk' => '⎶', + 'bcong' => '≌', + 'Bcy' => 'Б', + 'bcy' => 'б', + 'bdquo' => '„', + 'becaus' => '∵', + 'Because' => '∵', + 'because' => '∵', + 'bemptyv' => '⦰', + 'bepsi' => '϶', + 'bernou' => 'ℬ', + 'Bernoullis' => 'ℬ', + 'Beta' => 'Β', + 'beta' => 'β', + 'beth' => 'ℶ', + 'between' => '≬', + 'Bfr' => '𝔅', + 'bfr' => '𝔟', + 'bigcap' => '⋂', + 'bigcirc' => '◯', + 'bigcup' => '⋃', + 'bigodot' => '⨀', + 'bigoplus' => '⨁', + 'bigotimes' => '⨂', + 'bigsqcup' => '⨆', + 'bigstar' => '★', + 'bigtriangledown' => '▽', + 'bigtriangleup' => '△', + 'biguplus' => '⨄', + 'bigvee' => '⋁', + 'bigwedge' => '⋀', + 'bkarow' => '⤍', + 'blacklozenge' => 'â§«', + 'blacksquare' => '▪', + 'blacktriangle' => '▴', + 'blacktriangledown' => '▾', + 'blacktriangleleft' => '◂', + 'blacktriangleright' => '▸', + 'blank' => '␣', + 'blk12' => '▒', + 'blk14' => '░', + 'blk34' => '▓', + 'block' => '█', + 'bne' => '=⃥', + 'bnequiv' => '≡⃥', + 'bNot' => 'â«­', + 'bnot' => '⌐', + 'Bopf' => '𝔹', + 'bopf' => '𝕓', + 'bot' => '⊥', + 'bottom' => '⊥', + 'bowtie' => '⋈', + 'boxbox' => '⧉', + 'boxDL' => '╗', + 'boxDl' => '╖', + 'boxdL' => '╕', + 'boxdl' => '┐', + 'boxDR' => '╔', + 'boxDr' => '╓', + 'boxdR' => '╒', + 'boxdr' => '┌', + 'boxH' => '═', + 'boxh' => '─', + 'boxHD' => '╦', + 'boxHd' => '╤', + 'boxhD' => '╥', + 'boxhd' => '┬', + 'boxHU' => '╩', + 'boxHu' => '╧', + 'boxhU' => '╨', + 'boxhu' => '┴', + 'boxminus' => '⊟', + 'boxplus' => '⊞', + 'boxtimes' => '⊠', + 'boxUL' => '╝', + 'boxUl' => '╜', + 'boxuL' => '╛', + 'boxul' => '┘', + 'boxUR' => '╚', + 'boxUr' => '╙', + 'boxuR' => '╘', + 'boxur' => '└', + 'boxV' => '║', + 'boxv' => '│', + 'boxVH' => '╬', + 'boxVh' => '╫', + 'boxvH' => '╪', + 'boxvh' => '┼', + 'boxVL' => '╣', + 'boxVl' => '╢', + 'boxvL' => '╡', + 'boxvl' => '┤', + 'boxVR' => '╠', + 'boxVr' => '╟', + 'boxvR' => '╞', + 'boxvr' => '├', + 'bprime' => '‵', + 'Breve' => '˘', + 'breve' => '˘', + 'brvbar' => '¦', + 'brvba' => '¦', + 'Bscr' => 'ℬ', + 'bscr' => '𝒷', + 'bsemi' => '⁏', + 'bsim' => '∽', + 'bsime' => '⋍', + 'bsol' => '\\', + 'bsolb' => '⧅', + 'bsolhsub' => '⟈', + 'bull' => '•', + 'bullet' => '•', + 'bump' => '≎', + 'bumpE' => '⪮', + 'bumpe' => '≏', + 'Bumpeq' => '≎', + 'bumpeq' => '≏', + 'Cacute' => 'Ć', + 'cacute' => 'ć', + 'Cap' => '⋒', + 'cap' => '∩', + 'capand' => '⩄', + 'capbrcup' => '⩉', + 'capcap' => '⩋', + 'capcup' => '⩇', + 'capdot' => '⩀', + 'CapitalDifferentialD' => 'ⅅ', + 'caps' => '∩︀', + 'caret' => '⁁', + 'caron' => 'ˇ', + 'Cayleys' => 'ℭ', + 'ccaps' => '⩍', + 'Ccaron' => 'Č', + 'ccaron' => 'č', + 'Ccedil' => 'Ç', + 'Ccedi' => 'Ç', + 'ccedil' => 'ç', + 'ccedi' => 'ç', + 'Ccirc' => 'Ĉ', + 'ccirc' => 'ĉ', + 'Cconint' => '∰', + 'ccups' => '⩌', + 'ccupssm' => '⩐', + 'Cdot' => 'Ċ', + 'cdot' => 'ċ', + 'cedil' => '¸', + 'cedi' => '¸', + 'Cedilla' => '¸', + 'cemptyv' => '⦲', + 'cent' => '¢', + 'cen' => '¢', + 'CenterDot' => '·', + 'centerdot' => '·', + 'Cfr' => 'ℭ', + 'cfr' => '𝔠', + 'CHcy' => 'Ч', + 'chcy' => 'ч', + 'check' => '✓', + 'checkmark' => '✓', + 'Chi' => 'Χ', + 'chi' => 'χ', + 'cir' => '○', + 'circ' => 'ˆ', + 'circeq' => '≗', + 'circlearrowleft' => '↺', + 'circlearrowright' => '↻', + 'circledast' => '⊛', + 'circledcirc' => '⊚', + 'circleddash' => '⊝', + 'CircleDot' => '⊙', + 'circledR' => '®', + 'circledS' => 'Ⓢ', + 'CircleMinus' => '⊖', + 'CirclePlus' => '⊕', + 'CircleTimes' => '⊗', + 'cirE' => '⧃', + 'cire' => '≗', + 'cirfnint' => '⨐', + 'cirmid' => '⫯', + 'cirscir' => '⧂', + 'ClockwiseContourIntegral' => '∲', + 'CloseCurlyDoubleQuote' => '”', + 'CloseCurlyQuote' => '’', + 'clubs' => '♣', + 'clubsuit' => '♣', + 'Colon' => '∷', + 'colon' => ':', + 'Colone' => 'â©´', + 'colone' => '≔', + 'coloneq' => '≔', + 'comma' => ',', + 'commat' => '@', + 'comp' => '∁', + 'compfn' => '∘', + 'complement' => '∁', + 'complexes' => 'ℂ', + 'cong' => '≅', + 'congdot' => 'â©­', + 'Congruent' => '≡', + 'Conint' => '∯', + 'conint' => '∮', + 'ContourIntegral' => '∮', + 'Copf' => 'ℂ', + 'copf' => '𝕔', + 'coprod' => '∐', + 'Coproduct' => '∐', + 'COPY' => '©', + 'COP' => '©', + 'copy' => '©', + 'cop' => '©', + 'copysr' => '℗', + 'CounterClockwiseContourIntegral' => '∳', + 'crarr' => '↵', + 'Cross' => '⨯', + 'cross' => '✗', + 'Cscr' => '𝒞', + 'cscr' => '𝒸', + 'csub' => '⫏', + 'csube' => '⫑', + 'csup' => '⫐', + 'csupe' => '⫒', + 'ctdot' => '⋯', + 'cudarrl' => '⤸', + 'cudarrr' => '⤵', + 'cuepr' => '⋞', + 'cuesc' => '⋟', + 'cularr' => '↶', + 'cularrp' => '⤽', + 'Cup' => '⋓', + 'cup' => '∪', + 'cupbrcap' => '⩈', + 'CupCap' => '≍', + 'cupcap' => '⩆', + 'cupcup' => '⩊', + 'cupdot' => '⊍', + 'cupor' => '⩅', + 'cups' => '∪︀', + 'curarr' => '↷', + 'curarrm' => '⤼', + 'curlyeqprec' => '⋞', + 'curlyeqsucc' => '⋟', + 'curlyvee' => '⋎', + 'curlywedge' => '⋏', + 'curren' => '¤', + 'curre' => '¤', + 'curvearrowleft' => '↶', + 'curvearrowright' => '↷', + 'cuvee' => '⋎', + 'cuwed' => '⋏', + 'cwconint' => '∲', + 'cwint' => '∱', + 'cylcty' => '⌭', + 'Dagger' => '‡', + 'dagger' => '†', + 'daleth' => 'ℸ', + 'Darr' => '↡', + 'dArr' => '⇓', + 'darr' => '↓', + 'dash' => '‐', + 'Dashv' => '⫤', + 'dashv' => '⊣', + 'dbkarow' => '⤏', + 'dblac' => '˝', + 'Dcaron' => 'Ď', + 'dcaron' => 'ď', + 'Dcy' => 'Д', + 'dcy' => 'д', + 'DD' => 'ⅅ', + 'dd' => 'ⅆ', + 'ddagger' => '‡', + 'ddarr' => '⇊', + 'DDotrahd' => '⤑', + 'ddotseq' => 'â©·', + 'deg' => '°', + 'de' => '°', + 'Del' => '∇', + 'Delta' => 'Δ', + 'delta' => 'δ', + 'demptyv' => '⦱', + 'dfisht' => '⥿', + 'Dfr' => '𝔇', + 'dfr' => '𝔡', + 'dHar' => '⥥', + 'dharl' => '⇃', + 'dharr' => '⇂', + 'DiacriticalAcute' => '´', + 'DiacriticalDot' => '˙', + 'DiacriticalDoubleAcute' => '˝', + 'DiacriticalGrave' => '`', + 'DiacriticalTilde' => '˜', + 'diam' => '⋄', + 'Diamond' => '⋄', + 'diamond' => '⋄', + 'diamondsuit' => '♦', + 'diams' => '♦', + 'die' => '¨', + 'DifferentialD' => 'ⅆ', + 'digamma' => 'ϝ', + 'disin' => '⋲', + 'div' => '÷', + 'divide' => '÷', + 'divid' => '÷', + 'divideontimes' => '⋇', + 'divonx' => '⋇', + 'DJcy' => 'Ђ', + 'djcy' => 'ђ', + 'dlcorn' => '⌞', + 'dlcrop' => '⌍', + 'dollar' => '$', + 'Dopf' => '𝔻', + 'dopf' => '𝕕', + 'Dot' => '¨', + 'dot' => '˙', + 'DotDot' => '⃜', + 'doteq' => '≐', + 'doteqdot' => '≑', + 'DotEqual' => '≐', + 'dotminus' => '∸', + 'dotplus' => '∔', + 'dotsquare' => '⊡', + 'doublebarwedge' => '⌆', + 'DoubleContourIntegral' => '∯', + 'DoubleDot' => '¨', + 'DoubleDownArrow' => '⇓', + 'DoubleLeftArrow' => '⇐', + 'DoubleLeftRightArrow' => '⇔', + 'DoubleLeftTee' => '⫤', + 'DoubleLongLeftArrow' => '⟸', + 'DoubleLongLeftRightArrow' => '⟺', + 'DoubleLongRightArrow' => '⟹', + 'DoubleRightArrow' => '⇒', + 'DoubleRightTee' => '⊨', + 'DoubleUpArrow' => '⇑', + 'DoubleUpDownArrow' => '⇕', + 'DoubleVerticalBar' => '∥', + 'DownArrow' => '↓', + 'Downarrow' => '⇓', + 'downarrow' => '↓', + 'DownArrowBar' => '⤓', + 'DownArrowUpArrow' => '⇵', + 'DownBreve' => '̑', + 'downdownarrows' => '⇊', + 'downharpoonleft' => '⇃', + 'downharpoonright' => '⇂', + 'DownLeftRightVector' => '⥐', + 'DownLeftTeeVector' => '⥞', + 'DownLeftVector' => '↽', + 'DownLeftVectorBar' => '⥖', + 'DownRightTeeVector' => '⥟', + 'DownRightVector' => '⇁', + 'DownRightVectorBar' => '⥗', + 'DownTee' => '⊤', + 'DownTeeArrow' => '↧', + 'drbkarow' => '⤐', + 'drcorn' => '⌟', + 'drcrop' => '⌌', + 'Dscr' => '𝒟', + 'dscr' => '𝒹', + 'DScy' => 'Ѕ', + 'dscy' => 'ѕ', + 'dsol' => 'â§¶', + 'Dstrok' => 'Đ', + 'dstrok' => 'đ', + 'dtdot' => '⋱', + 'dtri' => '▿', + 'dtrif' => '▾', + 'duarr' => '⇵', + 'duhar' => '⥯', + 'dwangle' => '⦦', + 'DZcy' => 'Џ', + 'dzcy' => 'џ', + 'dzigrarr' => '⟿', + 'Eacute' => 'É', + 'Eacut' => 'É', + 'eacute' => 'é', + 'eacut' => 'é', + 'easter' => 'â©®', + 'Ecaron' => 'Ě', + 'ecaron' => 'ě', + 'ecir' => 'ê', + 'Ecirc' => 'Ê', + 'Ecir' => 'Ê', + 'ecirc' => 'ê', + 'ecolon' => '≕', + 'Ecy' => 'Э', + 'ecy' => 'э', + 'eDDot' => 'â©·', + 'Edot' => 'Ė', + 'eDot' => '≑', + 'edot' => 'ė', + 'ee' => 'ⅇ', + 'efDot' => '≒', + 'Efr' => '𝔈', + 'efr' => '𝔢', + 'eg' => '⪚', + 'Egrave' => 'È', + 'Egrav' => 'È', + 'egrave' => 'è', + 'egrav' => 'è', + 'egs' => '⪖', + 'egsdot' => '⪘', + 'el' => '⪙', + 'Element' => '∈', + 'elinters' => '⏧', + 'ell' => 'ℓ', + 'els' => '⪕', + 'elsdot' => '⪗', + 'Emacr' => 'Ē', + 'emacr' => 'ē', + 'empty' => '∅', + 'emptyset' => '∅', + 'EmptySmallSquare' => '◻', + 'emptyv' => '∅', + 'EmptyVerySmallSquare' => '▫', + 'emsp' => ' ', + 'emsp13' => ' ', + 'emsp14' => ' ', + 'ENG' => 'Ŋ', + 'eng' => 'ŋ', + 'ensp' => ' ', + 'Eogon' => 'Ę', + 'eogon' => 'ę', + 'Eopf' => '𝔼', + 'eopf' => '𝕖', + 'epar' => '⋕', + 'eparsl' => 'â§£', + 'eplus' => '⩱', + 'epsi' => 'ε', + 'Epsilon' => 'Ε', + 'epsilon' => 'ε', + 'epsiv' => 'ϵ', + 'eqcirc' => '≖', + 'eqcolon' => '≕', + 'eqsim' => '≂', + 'eqslantgtr' => '⪖', + 'eqslantless' => '⪕', + 'Equal' => '⩵', + 'equals' => '=', + 'EqualTilde' => '≂', + 'equest' => '≟', + 'Equilibrium' => '⇌', + 'equiv' => '≡', + 'equivDD' => '⩸', + 'eqvparsl' => 'â§¥', + 'erarr' => '⥱', + 'erDot' => '≓', + 'Escr' => 'ℰ', + 'escr' => 'ℯ', + 'esdot' => '≐', + 'Esim' => '⩳', + 'esim' => '≂', + 'Eta' => 'Η', + 'eta' => 'η', + 'ETH' => 'Ð', + 'ET' => 'Ð', + 'eth' => 'ð', + 'et' => 'ð', + 'Euml' => 'Ë', + 'Eum' => 'Ë', + 'euml' => 'ë', + 'eum' => 'ë', + 'euro' => '€', + 'excl' => '!', + 'exist' => '∃', + 'Exists' => '∃', + 'expectation' => 'ℰ', + 'ExponentialE' => 'ⅇ', + 'exponentiale' => 'ⅇ', + 'fallingdotseq' => '≒', + 'Fcy' => 'Ф', + 'fcy' => 'ф', + 'female' => '♀', + 'ffilig' => 'ffi', + 'fflig' => 'ff', + 'ffllig' => 'ffl', + 'Ffr' => '𝔉', + 'ffr' => '𝔣', + 'filig' => 'fi', + 'FilledSmallSquare' => '◼', + 'FilledVerySmallSquare' => '▪', + 'fjlig' => 'fj', + 'flat' => '♭', + 'fllig' => 'fl', + 'fltns' => '▱', + 'fnof' => 'ƒ', + 'Fopf' => '𝔽', + 'fopf' => '𝕗', + 'ForAll' => '∀', + 'forall' => '∀', + 'fork' => '⋔', + 'forkv' => '⫙', + 'Fouriertrf' => 'ℱ', + 'fpartint' => '⨍', + 'frac12' => '½', + 'frac1' => '¼', + 'frac13' => '⅓', + 'frac14' => '¼', + 'frac15' => '⅕', + 'frac16' => '⅙', + 'frac18' => '⅛', + 'frac23' => '⅔', + 'frac25' => '⅖', + 'frac34' => '¾', + 'frac3' => '¾', + 'frac35' => '⅗', + 'frac38' => '⅜', + 'frac45' => '⅘', + 'frac56' => '⅚', + 'frac58' => '⅝', + 'frac78' => '⅞', + 'frasl' => '⁄', + 'frown' => '⌢', + 'Fscr' => 'ℱ', + 'fscr' => '𝒻', + 'gacute' => 'ǵ', + 'Gamma' => 'Γ', + 'gamma' => 'γ', + 'Gammad' => 'Ϝ', + 'gammad' => 'ϝ', + 'gap' => '⪆', + 'Gbreve' => 'Ğ', + 'gbreve' => 'ğ', + 'Gcedil' => 'Ä¢', + 'Gcirc' => 'Ĝ', + 'gcirc' => 'ĝ', + 'Gcy' => 'Г', + 'gcy' => 'г', + 'Gdot' => 'Ä ', + 'gdot' => 'Ä¡', + 'gE' => '≧', + 'ge' => '≥', + 'gEl' => '⪌', + 'gel' => '⋛', + 'geq' => '≥', + 'geqq' => '≧', + 'geqslant' => '⩾', + 'ges' => '⩾', + 'gescc' => '⪩', + 'gesdot' => '⪀', + 'gesdoto' => '⪂', + 'gesdotol' => '⪄', + 'gesl' => '⋛︀', + 'gesles' => '⪔', + 'Gfr' => '𝔊', + 'gfr' => '𝔤', + 'Gg' => '⋙', + 'gg' => '≫', + 'ggg' => '⋙', + 'gimel' => 'ℷ', + 'GJcy' => 'Ѓ', + 'gjcy' => 'ѓ', + 'gl' => '≷', + 'gla' => '⪥', + 'glE' => '⪒', + 'glj' => '⪤', + 'gnap' => '⪊', + 'gnapprox' => '⪊', + 'gnE' => '≩', + 'gne' => '⪈', + 'gneq' => '⪈', + 'gneqq' => '≩', + 'gnsim' => '⋧', + 'Gopf' => '𝔾', + 'gopf' => '𝕘', + 'grave' => '`', + 'GreaterEqual' => '≥', + 'GreaterEqualLess' => '⋛', + 'GreaterFullEqual' => '≧', + 'GreaterGreater' => '⪢', + 'GreaterLess' => '≷', + 'GreaterSlantEqual' => '⩾', + 'GreaterTilde' => '≳', + 'Gscr' => '𝒢', + 'gscr' => 'ℊ', + 'gsim' => '≳', + 'gsime' => '⪎', + 'gsiml' => '⪐', + 'GT' => '>', + 'G' => '>', + 'Gt' => '≫', + 'gt' => '>', + 'g' => '>', + 'gtcc' => '⪧', + 'gtcir' => '⩺', + 'gtdot' => '⋗', + 'gtlPar' => '⦕', + 'gtquest' => '⩼', + 'gtrapprox' => '⪆', + 'gtrarr' => '⥸', + 'gtrdot' => '⋗', + 'gtreqless' => '⋛', + 'gtreqqless' => '⪌', + 'gtrless' => '≷', + 'gtrsim' => '≳', + 'gvertneqq' => '≩︀', + 'gvnE' => '≩︀', + 'Hacek' => 'ˇ', + 'hairsp' => ' ', + 'half' => '½', + 'hamilt' => 'ℋ', + 'HARDcy' => 'Ъ', + 'hardcy' => 'ъ', + 'hArr' => '⇔', + 'harr' => '↔', + 'harrcir' => '⥈', + 'harrw' => '↭', + 'Hat' => '^', + 'hbar' => 'ℏ', + 'Hcirc' => 'Ĥ', + 'hcirc' => 'Ä¥', + 'hearts' => '♥', + 'heartsuit' => '♥', + 'hellip' => '…', + 'hercon' => '⊹', + 'Hfr' => 'ℌ', + 'hfr' => '𝔥', + 'HilbertSpace' => 'ℋ', + 'hksearow' => '⤥', + 'hkswarow' => '⤦', + 'hoarr' => '⇿', + 'homtht' => '∻', + 'hookleftarrow' => '↩', + 'hookrightarrow' => '↪', + 'Hopf' => 'ℍ', + 'hopf' => '𝕙', + 'horbar' => '―', + 'HorizontalLine' => '─', + 'Hscr' => 'ℋ', + 'hscr' => '𝒽', + 'hslash' => 'ℏ', + 'Hstrok' => 'Ħ', + 'hstrok' => 'ħ', + 'HumpDownHump' => '≎', + 'HumpEqual' => '≏', + 'hybull' => '⁃', + 'hyphen' => '‐', + 'Iacute' => 'Í', + 'Iacut' => 'Í', + 'iacute' => 'í', + 'iacut' => 'í', + 'ic' => '⁣', + 'Icirc' => 'Î', + 'Icir' => 'Î', + 'icirc' => 'î', + 'icir' => 'î', + 'Icy' => 'И', + 'icy' => 'и', + 'Idot' => 'İ', + 'IEcy' => 'Е', + 'iecy' => 'е', + 'iexcl' => '¡', + 'iexc' => '¡', + 'iff' => '⇔', + 'Ifr' => 'ℑ', + 'ifr' => '𝔦', + 'Igrave' => 'Ì', + 'Igrav' => 'Ì', + 'igrave' => 'ì', + 'igrav' => 'ì', + 'ii' => 'ⅈ', + 'iiiint' => '⨌', + 'iiint' => '∭', + 'iinfin' => '⧜', + 'iiota' => '℩', + 'IJlig' => 'IJ', + 'ijlig' => 'ij', + 'Im' => 'ℑ', + 'Imacr' => 'Ī', + 'imacr' => 'Ä«', + 'image' => 'ℑ', + 'ImaginaryI' => 'ⅈ', + 'imagline' => 'ℐ', + 'imagpart' => 'ℑ', + 'imath' => 'ı', + 'imof' => '⊷', + 'imped' => 'Ƶ', + 'Implies' => '⇒', + 'in' => '∈', + 'incare' => '℅', + 'infin' => '∞', + 'infintie' => '⧝', + 'inodot' => 'ı', + 'Int' => '∬', + 'int' => '∫', + 'intcal' => '⊺', + 'integers' => 'ℤ', + 'Integral' => '∫', + 'intercal' => '⊺', + 'Intersection' => '⋂', + 'intlarhk' => '⨗', + 'intprod' => '⨼', + 'InvisibleComma' => '⁣', + 'InvisibleTimes' => '⁢', + 'IOcy' => 'Ё', + 'iocy' => 'ё', + 'Iogon' => 'Ä®', + 'iogon' => 'į', + 'Iopf' => '𝕀', + 'iopf' => '𝕚', + 'Iota' => 'Ι', + 'iota' => 'ι', + 'iprod' => '⨼', + 'iquest' => '¿', + 'iques' => '¿', + 'Iscr' => 'ℐ', + 'iscr' => '𝒾', + 'isin' => '∈', + 'isindot' => '⋵', + 'isinE' => '⋹', + 'isins' => '⋴', + 'isinsv' => '⋳', + 'isinv' => '∈', + 'it' => '⁢', + 'Itilde' => 'Ĩ', + 'itilde' => 'Ä©', + 'Iukcy' => 'І', + 'iukcy' => 'і', + 'Iuml' => 'Ï', + 'Ium' => 'Ï', + 'iuml' => 'ï', + 'ium' => 'ï', + 'Jcirc' => 'Ä´', + 'jcirc' => 'ĵ', + 'Jcy' => 'Й', + 'jcy' => 'й', + 'Jfr' => '𝔍', + 'jfr' => '𝔧', + 'jmath' => 'È·', + 'Jopf' => '𝕁', + 'jopf' => '𝕛', + 'Jscr' => '𝒥', + 'jscr' => '𝒿', + 'Jsercy' => 'Ј', + 'jsercy' => 'ј', + 'Jukcy' => 'Є', + 'jukcy' => 'є', + 'Kappa' => 'Κ', + 'kappa' => 'κ', + 'kappav' => 'ϰ', + 'Kcedil' => 'Ķ', + 'kcedil' => 'Ä·', + 'Kcy' => 'К', + 'kcy' => 'к', + 'Kfr' => '𝔎', + 'kfr' => '𝔨', + 'kgreen' => 'ĸ', + 'KHcy' => 'Ð¥', + 'khcy' => 'х', + 'KJcy' => 'Ќ', + 'kjcy' => 'ќ', + 'Kopf' => '𝕂', + 'kopf' => '𝕜', + 'Kscr' => '𝒦', + 'kscr' => '𝓀', + 'lAarr' => '⇚', + 'Lacute' => 'Ĺ', + 'lacute' => 'ĺ', + 'laemptyv' => '⦴', + 'lagran' => 'ℒ', + 'Lambda' => 'Λ', + 'lambda' => 'λ', + 'Lang' => '⟪', + 'lang' => '⟨', + 'langd' => '⦑', + 'langle' => '⟨', + 'lap' => '⪅', + 'Laplacetrf' => 'ℒ', + 'laquo' => '«', + 'laqu' => '«', + 'Larr' => '↞', + 'lArr' => '⇐', + 'larr' => '←', + 'larrb' => '⇤', + 'larrbfs' => '⤟', + 'larrfs' => '⤝', + 'larrhk' => '↩', + 'larrlp' => '↫', + 'larrpl' => '⤹', + 'larrsim' => '⥳', + 'larrtl' => '↢', + 'lat' => '⪫', + 'lAtail' => '⤛', + 'latail' => '⤙', + 'late' => '⪭', + 'lates' => '⪭︀', + 'lBarr' => '⤎', + 'lbarr' => '⤌', + 'lbbrk' => '❲', + 'lbrace' => '{', + 'lbrack' => '[', + 'lbrke' => '⦋', + 'lbrksld' => '⦏', + 'lbrkslu' => '⦍', + 'Lcaron' => 'Ľ', + 'lcaron' => 'ľ', + 'Lcedil' => 'Ä»', + 'lcedil' => 'ļ', + 'lceil' => '⌈', + 'lcub' => '{', + 'Lcy' => 'Л', + 'lcy' => 'л', + 'ldca' => '⤶', + 'ldquo' => '“', + 'ldquor' => '„', + 'ldrdhar' => '⥧', + 'ldrushar' => '⥋', + 'ldsh' => '↲', + 'lE' => '≦', + 'le' => '≤', + 'LeftAngleBracket' => '⟨', + 'LeftArrow' => '←', + 'Leftarrow' => '⇐', + 'leftarrow' => '←', + 'LeftArrowBar' => '⇤', + 'LeftArrowRightArrow' => '⇆', + 'leftarrowtail' => '↢', + 'LeftCeiling' => '⌈', + 'LeftDoubleBracket' => '⟦', + 'LeftDownTeeVector' => '⥡', + 'LeftDownVector' => '⇃', + 'LeftDownVectorBar' => '⥙', + 'LeftFloor' => '⌊', + 'leftharpoondown' => '↽', + 'leftharpoonup' => '↼', + 'leftleftarrows' => '⇇', + 'LeftRightArrow' => '↔', + 'Leftrightarrow' => '⇔', + 'leftrightarrow' => '↔', + 'leftrightarrows' => '⇆', + 'leftrightharpoons' => '⇋', + 'leftrightsquigarrow' => '↭', + 'LeftRightVector' => '⥎', + 'LeftTee' => '⊣', + 'LeftTeeArrow' => '↤', + 'LeftTeeVector' => '⥚', + 'leftthreetimes' => '⋋', + 'LeftTriangle' => '⊲', + 'LeftTriangleBar' => '⧏', + 'LeftTriangleEqual' => '⊴', + 'LeftUpDownVector' => '⥑', + 'LeftUpTeeVector' => '⥠', + 'LeftUpVector' => '↿', + 'LeftUpVectorBar' => '⥘', + 'LeftVector' => '↼', + 'LeftVectorBar' => '⥒', + 'lEg' => '⪋', + 'leg' => '⋚', + 'leq' => '≤', + 'leqq' => '≦', + 'leqslant' => '⩽', + 'les' => '⩽', + 'lescc' => '⪨', + 'lesdot' => 'â©¿', + 'lesdoto' => '⪁', + 'lesdotor' => '⪃', + 'lesg' => '⋚︀', + 'lesges' => '⪓', + 'lessapprox' => '⪅', + 'lessdot' => '⋖', + 'lesseqgtr' => '⋚', + 'lesseqqgtr' => '⪋', + 'LessEqualGreater' => '⋚', + 'LessFullEqual' => '≦', + 'LessGreater' => '≶', + 'lessgtr' => '≶', + 'LessLess' => '⪡', + 'lesssim' => '≲', + 'LessSlantEqual' => '⩽', + 'LessTilde' => '≲', + 'lfisht' => '⥼', + 'lfloor' => '⌊', + 'Lfr' => '𝔏', + 'lfr' => '𝔩', + 'lg' => '≶', + 'lgE' => '⪑', + 'lHar' => '⥢', + 'lhard' => '↽', + 'lharu' => '↼', + 'lharul' => '⥪', + 'lhblk' => '▄', + 'LJcy' => 'Љ', + 'ljcy' => 'љ', + 'Ll' => '⋘', + 'll' => '≪', + 'llarr' => '⇇', + 'llcorner' => '⌞', + 'Lleftarrow' => '⇚', + 'llhard' => '⥫', + 'lltri' => '◺', + 'Lmidot' => 'Ä¿', + 'lmidot' => 'ŀ', + 'lmoust' => '⎰', + 'lmoustache' => '⎰', + 'lnap' => '⪉', + 'lnapprox' => '⪉', + 'lnE' => '≨', + 'lne' => '⪇', + 'lneq' => '⪇', + 'lneqq' => '≨', + 'lnsim' => '⋦', + 'loang' => '⟬', + 'loarr' => '⇽', + 'lobrk' => '⟦', + 'LongLeftArrow' => '⟵', + 'Longleftarrow' => '⟸', + 'longleftarrow' => '⟵', + 'LongLeftRightArrow' => '⟷', + 'Longleftrightarrow' => '⟺', + 'longleftrightarrow' => '⟷', + 'longmapsto' => '⟼', + 'LongRightArrow' => '⟶', + 'Longrightarrow' => '⟹', + 'longrightarrow' => '⟶', + 'looparrowleft' => '↫', + 'looparrowright' => '↬', + 'lopar' => '⦅', + 'Lopf' => '𝕃', + 'lopf' => '𝕝', + 'loplus' => '⨭', + 'lotimes' => '⨴', + 'lowast' => '∗', + 'lowbar' => '_', + 'LowerLeftArrow' => '↙', + 'LowerRightArrow' => '↘', + 'loz' => '◊', + 'lozenge' => '◊', + 'lozf' => 'â§«', + 'lpar' => '(', + 'lparlt' => '⦓', + 'lrarr' => '⇆', + 'lrcorner' => '⌟', + 'lrhar' => '⇋', + 'lrhard' => '⥭', + 'lrm' => '‎', + 'lrtri' => '⊿', + 'lsaquo' => '‹', + 'Lscr' => 'ℒ', + 'lscr' => '𝓁', + 'Lsh' => '↰', + 'lsh' => '↰', + 'lsim' => '≲', + 'lsime' => '⪍', + 'lsimg' => '⪏', + 'lsqb' => '[', + 'lsquo' => '‘', + 'lsquor' => '‚', + 'Lstrok' => 'Ł', + 'lstrok' => 'ł', + 'LT' => '<', + 'L' => '<', + 'Lt' => '≪', + 'lt' => '<', + 'l' => '<', + 'ltcc' => '⪦', + 'ltcir' => '⩹', + 'ltdot' => '⋖', + 'lthree' => '⋋', + 'ltimes' => '⋉', + 'ltlarr' => '⥶', + 'ltquest' => 'â©»', + 'ltri' => '◃', + 'ltrie' => '⊴', + 'ltrif' => '◂', + 'ltrPar' => '⦖', + 'lurdshar' => '⥊', + 'luruhar' => '⥦', + 'lvertneqq' => '≨︀', + 'lvnE' => '≨︀', + 'macr' => '¯', + 'mac' => '¯', + 'male' => '♂', + 'malt' => '✠', + 'maltese' => '✠', + 'Map' => '⤅', + 'map' => '↦', + 'mapsto' => '↦', + 'mapstodown' => '↧', + 'mapstoleft' => '↤', + 'mapstoup' => '↥', + 'marker' => '▮', + 'mcomma' => '⨩', + 'Mcy' => 'М', + 'mcy' => 'м', + 'mdash' => '—', + 'mDDot' => '∺', + 'measuredangle' => '∡', + 'MediumSpace' => ' ', + 'Mellintrf' => 'ℳ', + 'Mfr' => '𝔐', + 'mfr' => '𝔪', + 'mho' => '℧', + 'micro' => 'µ', + 'micr' => 'µ', + 'mid' => '∣', + 'midast' => '*', + 'midcir' => 'â«°', + 'middot' => '·', + 'middo' => '·', + 'minus' => '−', + 'minusb' => '⊟', + 'minusd' => '∸', + 'minusdu' => '⨪', + 'MinusPlus' => '∓', + 'mlcp' => '⫛', + 'mldr' => '…', + 'mnplus' => '∓', + 'models' => '⊧', + 'Mopf' => '𝕄', + 'mopf' => '𝕞', + 'mp' => '∓', + 'Mscr' => 'ℳ', + 'mscr' => '𝓂', + 'mstpos' => '∾', + 'Mu' => 'Μ', + 'mu' => 'μ', + 'multimap' => '⊸', + 'mumap' => '⊸', + 'nabla' => '∇', + 'Nacute' => 'Ń', + 'nacute' => 'ń', + 'nang' => '∠⃒', + 'nap' => '≉', + 'napE' => '⩰̸', + 'napid' => '≋̸', + 'napos' => 'ʼn', + 'napprox' => '≉', + 'natur' => '♮', + 'natural' => '♮', + 'naturals' => 'ℕ', + 'nbsp' => ' ', + 'nbs' => ' ', + 'nbump' => '≎̸', + 'nbumpe' => '≏̸', + 'ncap' => '⩃', + 'Ncaron' => 'Ň', + 'ncaron' => 'ň', + 'Ncedil' => 'Ņ', + 'ncedil' => 'ņ', + 'ncong' => '≇', + 'ncongdot' => '⩭̸', + 'ncup' => '⩂', + 'Ncy' => 'Н', + 'ncy' => 'н', + 'ndash' => '–', + 'ne' => '≠', + 'nearhk' => '⤤', + 'neArr' => '⇗', + 'nearr' => '↗', + 'nearrow' => '↗', + 'nedot' => '≐̸', + 'NegativeMediumSpace' => '​', + 'NegativeThickSpace' => '​', + 'NegativeThinSpace' => '​', + 'NegativeVeryThinSpace' => '​', + 'nequiv' => '≢', + 'nesear' => '⤨', + 'nesim' => '≂̸', + 'NestedGreaterGreater' => '≫', + 'NestedLessLess' => '≪', + 'NewLine' => ' +', + 'nexist' => '∄', + 'nexists' => '∄', + 'Nfr' => '𝔑', + 'nfr' => '𝔫', + 'ngE' => '≧̸', + 'nge' => '≱', + 'ngeq' => '≱', + 'ngeqq' => '≧̸', + 'ngeqslant' => '⩾̸', + 'nges' => '⩾̸', + 'nGg' => '⋙̸', + 'ngsim' => '≵', + 'nGt' => '≫⃒', + 'ngt' => '≯', + 'ngtr' => '≯', + 'nGtv' => '≫̸', + 'nhArr' => '⇎', + 'nharr' => '↮', + 'nhpar' => '⫲', + 'ni' => '∋', + 'nis' => '⋼', + 'nisd' => '⋺', + 'niv' => '∋', + 'NJcy' => 'Њ', + 'njcy' => 'њ', + 'nlArr' => '⇍', + 'nlarr' => '↚', + 'nldr' => '‥', + 'nlE' => '≦̸', + 'nle' => '≰', + 'nLeftarrow' => '⇍', + 'nleftarrow' => '↚', + 'nLeftrightarrow' => '⇎', + 'nleftrightarrow' => '↮', + 'nleq' => '≰', + 'nleqq' => '≦̸', + 'nleqslant' => '⩽̸', + 'nles' => '⩽̸', + 'nless' => '≮', + 'nLl' => '⋘̸', + 'nlsim' => '≴', + 'nLt' => '≪⃒', + 'nlt' => '≮', + 'nltri' => '⋪', + 'nltrie' => '⋬', + 'nLtv' => '≪̸', + 'nmid' => '∤', + 'NoBreak' => '⁠', + 'NonBreakingSpace' => ' ', + 'Nopf' => 'ℕ', + 'nopf' => '𝕟', + 'Not' => '⫬', + 'not' => '¬', + 'no' => '¬', + 'NotCongruent' => '≢', + 'NotCupCap' => '≭', + 'NotDoubleVerticalBar' => '∦', + 'NotElement' => '∉', + 'NotEqual' => '≠', + 'NotEqualTilde' => '≂̸', + 'NotExists' => '∄', + 'NotGreater' => '≯', + 'NotGreaterEqual' => '≱', + 'NotGreaterFullEqual' => '≧̸', + 'NotGreaterGreater' => '≫̸', + 'NotGreaterLess' => '≹', + 'NotGreaterSlantEqual' => '⩾̸', + 'NotGreaterTilde' => '≵', + 'NotHumpDownHump' => '≎̸', + 'NotHumpEqual' => '≏̸', + 'notin' => '∉', + 'notindot' => '⋵̸', + 'notinE' => '⋹̸', + 'notinva' => '∉', + 'notinvb' => '⋷', + 'notinvc' => '⋶', + 'NotLeftTriangle' => '⋪', + 'NotLeftTriangleBar' => '⧏̸', + 'NotLeftTriangleEqual' => '⋬', + 'NotLess' => '≮', + 'NotLessEqual' => '≰', + 'NotLessGreater' => '≸', + 'NotLessLess' => '≪̸', + 'NotLessSlantEqual' => '⩽̸', + 'NotLessTilde' => '≴', + 'NotNestedGreaterGreater' => '⪢̸', + 'NotNestedLessLess' => '⪡̸', + 'notni' => '∌', + 'notniva' => '∌', + 'notnivb' => '⋾', + 'notnivc' => '⋽', + 'NotPrecedes' => '⊀', + 'NotPrecedesEqual' => '⪯̸', + 'NotPrecedesSlantEqual' => '⋠', + 'NotReverseElement' => '∌', + 'NotRightTriangle' => '⋫', + 'NotRightTriangleBar' => '⧐̸', + 'NotRightTriangleEqual' => '⋭', + 'NotSquareSubset' => '⊏̸', + 'NotSquareSubsetEqual' => '⋢', + 'NotSquareSuperset' => '⊐̸', + 'NotSquareSupersetEqual' => '⋣', + 'NotSubset' => '⊂⃒', + 'NotSubsetEqual' => '⊈', + 'NotSucceeds' => '⊁', + 'NotSucceedsEqual' => '⪰̸', + 'NotSucceedsSlantEqual' => '⋡', + 'NotSucceedsTilde' => '≿̸', + 'NotSuperset' => '⊃⃒', + 'NotSupersetEqual' => '⊉', + 'NotTilde' => '≁', + 'NotTildeEqual' => '≄', + 'NotTildeFullEqual' => '≇', + 'NotTildeTilde' => '≉', + 'NotVerticalBar' => '∤', + 'npar' => '∦', + 'nparallel' => '∦', + 'nparsl' => '⫽⃥', + 'npart' => '∂̸', + 'npolint' => '⨔', + 'npr' => '⊀', + 'nprcue' => '⋠', + 'npre' => '⪯̸', + 'nprec' => '⊀', + 'npreceq' => '⪯̸', + 'nrArr' => '⇏', + 'nrarr' => '↛', + 'nrarrc' => '⤳̸', + 'nrarrw' => '↝̸', + 'nRightarrow' => '⇏', + 'nrightarrow' => '↛', + 'nrtri' => '⋫', + 'nrtrie' => '⋭', + 'nsc' => '⊁', + 'nsccue' => '⋡', + 'nsce' => '⪰̸', + 'Nscr' => '𝒩', + 'nscr' => '𝓃', + 'nshortmid' => '∤', + 'nshortparallel' => '∦', + 'nsim' => '≁', + 'nsime' => '≄', + 'nsimeq' => '≄', + 'nsmid' => '∤', + 'nspar' => '∦', + 'nsqsube' => '⋢', + 'nsqsupe' => '⋣', + 'nsub' => '⊄', + 'nsubE' => '⫅̸', + 'nsube' => '⊈', + 'nsubset' => '⊂⃒', + 'nsubseteq' => '⊈', + 'nsubseteqq' => '⫅̸', + 'nsucc' => '⊁', + 'nsucceq' => '⪰̸', + 'nsup' => '⊅', + 'nsupE' => '⫆̸', + 'nsupe' => '⊉', + 'nsupset' => '⊃⃒', + 'nsupseteq' => '⊉', + 'nsupseteqq' => '⫆̸', + 'ntgl' => '≹', + 'Ntilde' => 'Ñ', + 'Ntild' => 'Ñ', + 'ntilde' => 'ñ', + 'ntild' => 'ñ', + 'ntlg' => '≸', + 'ntriangleleft' => '⋪', + 'ntrianglelefteq' => '⋬', + 'ntriangleright' => '⋫', + 'ntrianglerighteq' => '⋭', + 'Nu' => 'Ν', + 'nu' => 'ν', + 'num' => '#', + 'numero' => '№', + 'numsp' => ' ', + 'nvap' => '≍⃒', + 'nVDash' => '⊯', + 'nVdash' => '⊮', + 'nvDash' => '⊭', + 'nvdash' => '⊬', + 'nvge' => '≥⃒', + 'nvgt' => '>⃒', + 'nvHarr' => '⤄', + 'nvinfin' => '⧞', + 'nvlArr' => '⤂', + 'nvle' => '≤⃒', + 'nvlt' => '<⃒', + 'nvltrie' => '⊴⃒', + 'nvrArr' => '⤃', + 'nvrtrie' => '⊵⃒', + 'nvsim' => '∼⃒', + 'nwarhk' => '⤣', + 'nwArr' => '⇖', + 'nwarr' => '↖', + 'nwarrow' => '↖', + 'nwnear' => '⤧', + 'Oacute' => 'Ó', + 'Oacut' => 'Ó', + 'oacute' => 'ó', + 'oacut' => 'ó', + 'oast' => '⊛', + 'ocir' => 'ô', + 'Ocirc' => 'Ô', + 'Ocir' => 'Ô', + 'ocirc' => 'ô', + 'Ocy' => 'О', + 'ocy' => 'о', + 'odash' => '⊝', + 'Odblac' => 'Ő', + 'odblac' => 'ő', + 'odiv' => '⨸', + 'odot' => '⊙', + 'odsold' => '⦼', + 'OElig' => 'Œ', + 'oelig' => 'œ', + 'ofcir' => '⦿', + 'Ofr' => '𝔒', + 'ofr' => '𝔬', + 'ogon' => '˛', + 'Ograve' => 'Ò', + 'Ograv' => 'Ò', + 'ograve' => 'ò', + 'ograv' => 'ò', + 'ogt' => '⧁', + 'ohbar' => '⦵', + 'ohm' => 'Ω', + 'oint' => '∮', + 'olarr' => '↺', + 'olcir' => '⦾', + 'olcross' => '⦻', + 'oline' => '‾', + 'olt' => '⧀', + 'Omacr' => 'Ō', + 'omacr' => 'ō', + 'Omega' => 'Ω', + 'omega' => 'ω', + 'Omicron' => 'Ο', + 'omicron' => 'ο', + 'omid' => '⦶', + 'ominus' => '⊖', + 'Oopf' => '𝕆', + 'oopf' => '𝕠', + 'opar' => '⦷', + 'OpenCurlyDoubleQuote' => '“', + 'OpenCurlyQuote' => '‘', + 'operp' => '⦹', + 'oplus' => '⊕', + 'Or' => '⩔', + 'or' => '∨', + 'orarr' => '↻', + 'ord' => 'º', + 'order' => 'ℴ', + 'orderof' => 'ℴ', + 'ordf' => 'ª', + 'ordm' => 'º', + 'origof' => '⊶', + 'oror' => '⩖', + 'orslope' => '⩗', + 'orv' => '⩛', + 'oS' => 'Ⓢ', + 'Oscr' => '𝒪', + 'oscr' => 'ℴ', + 'Oslash' => 'Ø', + 'Oslas' => 'Ø', + 'oslash' => 'ø', + 'oslas' => 'ø', + 'osol' => '⊘', + 'Otilde' => 'Õ', + 'Otild' => 'Õ', + 'otilde' => 'õ', + 'otild' => 'õ', + 'Otimes' => '⨷', + 'otimes' => '⊗', + 'otimesas' => '⨶', + 'Ouml' => 'Ö', + 'Oum' => 'Ö', + 'ouml' => 'ö', + 'oum' => 'ö', + 'ovbar' => '⌽', + 'OverBar' => '‾', + 'OverBrace' => '⏞', + 'OverBracket' => '⎴', + 'OverParenthesis' => '⏜', + 'par' => '¶', + 'para' => '¶', + 'parallel' => '∥', + 'parsim' => '⫳', + 'parsl' => '⫽', + 'part' => '∂', + 'PartialD' => '∂', + 'Pcy' => 'П', + 'pcy' => 'п', + 'percnt' => '%', + 'period' => '.', + 'permil' => '‰', + 'perp' => '⊥', + 'pertenk' => '‱', + 'Pfr' => '𝔓', + 'pfr' => '𝔭', + 'Phi' => 'Φ', + 'phi' => 'φ', + 'phiv' => 'ϕ', + 'phmmat' => 'ℳ', + 'phone' => '☎', + 'Pi' => 'Π', + 'pi' => 'π', + 'pitchfork' => '⋔', + 'piv' => 'ϖ', + 'planck' => 'ℏ', + 'planckh' => 'ℎ', + 'plankv' => 'ℏ', + 'plus' => '+', + 'plusacir' => '⨣', + 'plusb' => '⊞', + 'pluscir' => '⨢', + 'plusdo' => '∔', + 'plusdu' => '⨥', + 'pluse' => '⩲', + 'PlusMinus' => '±', + 'plusmn' => '±', + 'plusm' => '±', + 'plussim' => '⨦', + 'plustwo' => '⨧', + 'pm' => '±', + 'Poincareplane' => 'ℌ', + 'pointint' => '⨕', + 'Popf' => 'ℙ', + 'popf' => '𝕡', + 'pound' => '£', + 'poun' => '£', + 'Pr' => '⪻', + 'pr' => '≺', + 'prap' => '⪷', + 'prcue' => '≼', + 'prE' => '⪳', + 'pre' => '⪯', + 'prec' => '≺', + 'precapprox' => '⪷', + 'preccurlyeq' => '≼', + 'Precedes' => '≺', + 'PrecedesEqual' => '⪯', + 'PrecedesSlantEqual' => '≼', + 'PrecedesTilde' => '≾', + 'preceq' => '⪯', + 'precnapprox' => '⪹', + 'precneqq' => '⪵', + 'precnsim' => '⋨', + 'precsim' => '≾', + 'Prime' => '″', + 'prime' => '′', + 'primes' => 'ℙ', + 'prnap' => '⪹', + 'prnE' => '⪵', + 'prnsim' => '⋨', + 'prod' => '∏', + 'Product' => '∏', + 'profalar' => '⌮', + 'profline' => '⌒', + 'profsurf' => '⌓', + 'prop' => '∝', + 'Proportion' => '∷', + 'Proportional' => '∝', + 'propto' => '∝', + 'prsim' => '≾', + 'prurel' => '⊰', + 'Pscr' => '𝒫', + 'pscr' => '𝓅', + 'Psi' => 'Ψ', + 'psi' => 'ψ', + 'puncsp' => ' ', + 'Qfr' => '𝔔', + 'qfr' => '𝔮', + 'qint' => '⨌', + 'Qopf' => 'ℚ', + 'qopf' => '𝕢', + 'qprime' => '⁗', + 'Qscr' => '𝒬', + 'qscr' => '𝓆', + 'quaternions' => 'ℍ', + 'quatint' => '⨖', + 'quest' => '?', + 'questeq' => '≟', + 'QUOT' => '"', + 'QUO' => '"', + 'quot' => '"', + 'quo' => '"', + 'rAarr' => '⇛', + 'race' => '∽̱', + 'Racute' => 'Ŕ', + 'racute' => 'ŕ', + 'radic' => '√', + 'raemptyv' => '⦳', + 'Rang' => '⟫', + 'rang' => '⟩', + 'rangd' => '⦒', + 'range' => '⦥', + 'rangle' => '⟩', + 'raquo' => '»', + 'raqu' => '»', + 'Rarr' => '↠', + 'rArr' => '⇒', + 'rarr' => '→', + 'rarrap' => '⥵', + 'rarrb' => '⇥', + 'rarrbfs' => '⤠', + 'rarrc' => '⤳', + 'rarrfs' => '⤞', + 'rarrhk' => '↪', + 'rarrlp' => '↬', + 'rarrpl' => '⥅', + 'rarrsim' => '⥴', + 'Rarrtl' => '⤖', + 'rarrtl' => '↣', + 'rarrw' => '↝', + 'rAtail' => '⤜', + 'ratail' => '⤚', + 'ratio' => '∶', + 'rationals' => 'ℚ', + 'RBarr' => '⤐', + 'rBarr' => '⤏', + 'rbarr' => '⤍', + 'rbbrk' => '❳', + 'rbrace' => '}', + 'rbrack' => ']', + 'rbrke' => '⦌', + 'rbrksld' => '⦎', + 'rbrkslu' => '⦐', + 'Rcaron' => 'Ř', + 'rcaron' => 'ř', + 'Rcedil' => 'Ŗ', + 'rcedil' => 'ŗ', + 'rceil' => '⌉', + 'rcub' => '}', + 'Rcy' => 'Р', + 'rcy' => 'р', + 'rdca' => '⤷', + 'rdldhar' => '⥩', + 'rdquo' => '”', + 'rdquor' => '”', + 'rdsh' => '↳', + 'Re' => 'ℜ', + 'real' => 'ℜ', + 'realine' => 'ℛ', + 'realpart' => 'ℜ', + 'reals' => 'ℝ', + 'rect' => '▭', + 'REG' => '®', + 'RE' => '®', + 'reg' => '®', + 're' => '®', + 'ReverseElement' => '∋', + 'ReverseEquilibrium' => '⇋', + 'ReverseUpEquilibrium' => '⥯', + 'rfisht' => '⥽', + 'rfloor' => '⌋', + 'Rfr' => 'ℜ', + 'rfr' => '𝔯', + 'rHar' => '⥤', + 'rhard' => '⇁', + 'rharu' => '⇀', + 'rharul' => '⥬', + 'Rho' => 'Ρ', + 'rho' => 'ρ', + 'rhov' => 'ϱ', + 'RightAngleBracket' => '⟩', + 'RightArrow' => '→', + 'Rightarrow' => '⇒', + 'rightarrow' => '→', + 'RightArrowBar' => '⇥', + 'RightArrowLeftArrow' => '⇄', + 'rightarrowtail' => '↣', + 'RightCeiling' => '⌉', + 'RightDoubleBracket' => '⟧', + 'RightDownTeeVector' => '⥝', + 'RightDownVector' => '⇂', + 'RightDownVectorBar' => '⥕', + 'RightFloor' => '⌋', + 'rightharpoondown' => '⇁', + 'rightharpoonup' => '⇀', + 'rightleftarrows' => '⇄', + 'rightleftharpoons' => '⇌', + 'rightrightarrows' => '⇉', + 'rightsquigarrow' => '↝', + 'RightTee' => '⊢', + 'RightTeeArrow' => '↦', + 'RightTeeVector' => '⥛', + 'rightthreetimes' => '⋌', + 'RightTriangle' => '⊳', + 'RightTriangleBar' => '⧐', + 'RightTriangleEqual' => '⊵', + 'RightUpDownVector' => '⥏', + 'RightUpTeeVector' => '⥜', + 'RightUpVector' => '↾', + 'RightUpVectorBar' => '⥔', + 'RightVector' => '⇀', + 'RightVectorBar' => '⥓', + 'ring' => '˚', + 'risingdotseq' => '≓', + 'rlarr' => '⇄', + 'rlhar' => '⇌', + 'rlm' => '‏', + 'rmoust' => '⎱', + 'rmoustache' => '⎱', + 'rnmid' => 'â«®', + 'roang' => '⟭', + 'roarr' => '⇾', + 'robrk' => '⟧', + 'ropar' => '⦆', + 'Ropf' => 'ℝ', + 'ropf' => '𝕣', + 'roplus' => '⨮', + 'rotimes' => '⨵', + 'RoundImplies' => '⥰', + 'rpar' => ')', + 'rpargt' => '⦔', + 'rppolint' => '⨒', + 'rrarr' => '⇉', + 'Rrightarrow' => '⇛', + 'rsaquo' => '›', + 'Rscr' => 'ℛ', + 'rscr' => '𝓇', + 'Rsh' => '↱', + 'rsh' => '↱', + 'rsqb' => ']', + 'rsquo' => '’', + 'rsquor' => '’', + 'rthree' => '⋌', + 'rtimes' => '⋊', + 'rtri' => '▹', + 'rtrie' => '⊵', + 'rtrif' => '▸', + 'rtriltri' => '⧎', + 'RuleDelayed' => 'â§´', + 'ruluhar' => '⥨', + 'rx' => '℞', + 'Sacute' => 'Ś', + 'sacute' => 'ś', + 'sbquo' => '‚', + 'Sc' => '⪼', + 'sc' => '≻', + 'scap' => '⪸', + 'Scaron' => 'Å ', + 'scaron' => 'Å¡', + 'sccue' => '≽', + 'scE' => '⪴', + 'sce' => '⪰', + 'Scedil' => 'Ş', + 'scedil' => 'ş', + 'Scirc' => 'Ŝ', + 'scirc' => 'ŝ', + 'scnap' => '⪺', + 'scnE' => '⪶', + 'scnsim' => '⋩', + 'scpolint' => '⨓', + 'scsim' => '≿', + 'Scy' => 'С', + 'scy' => 'с', + 'sdot' => '⋅', + 'sdotb' => '⊡', + 'sdote' => '⩦', + 'searhk' => '⤥', + 'seArr' => '⇘', + 'searr' => '↘', + 'searrow' => '↘', + 'sect' => '§', + 'sec' => '§', + 'semi' => ';', + 'seswar' => '⤩', + 'setminus' => '∖', + 'setmn' => '∖', + 'sext' => '✶', + 'Sfr' => '𝔖', + 'sfr' => '𝔰', + 'sfrown' => '⌢', + 'sharp' => '♯', + 'SHCHcy' => 'Щ', + 'shchcy' => 'щ', + 'SHcy' => 'Ш', + 'shcy' => 'ш', + 'ShortDownArrow' => '↓', + 'ShortLeftArrow' => '←', + 'shortmid' => '∣', + 'shortparallel' => '∥', + 'ShortRightArrow' => '→', + 'ShortUpArrow' => '↑', + 'shy' => '­', + 'sh' => '­', + 'Sigma' => 'Σ', + 'sigma' => 'σ', + 'sigmaf' => 'ς', + 'sigmav' => 'ς', + 'sim' => '∼', + 'simdot' => '⩪', + 'sime' => '≃', + 'simeq' => '≃', + 'simg' => '⪞', + 'simgE' => '⪠', + 'siml' => '⪝', + 'simlE' => '⪟', + 'simne' => '≆', + 'simplus' => '⨤', + 'simrarr' => '⥲', + 'slarr' => '←', + 'SmallCircle' => '∘', + 'smallsetminus' => '∖', + 'smashp' => '⨳', + 'smeparsl' => '⧤', + 'smid' => '∣', + 'smile' => '⌣', + 'smt' => '⪪', + 'smte' => '⪬', + 'smtes' => '⪬︀', + 'SOFTcy' => 'Ь', + 'softcy' => 'ь', + 'sol' => '/', + 'solb' => '⧄', + 'solbar' => '⌿', + 'Sopf' => '𝕊', + 'sopf' => '𝕤', + 'spades' => '♠', + 'spadesuit' => '♠', + 'spar' => '∥', + 'sqcap' => '⊓', + 'sqcaps' => '⊓︀', + 'sqcup' => '⊔', + 'sqcups' => '⊔︀', + 'Sqrt' => '√', + 'sqsub' => '⊏', + 'sqsube' => '⊑', + 'sqsubset' => '⊏', + 'sqsubseteq' => '⊑', + 'sqsup' => '⊐', + 'sqsupe' => '⊒', + 'sqsupset' => '⊐', + 'sqsupseteq' => '⊒', + 'squ' => '□', + 'Square' => '□', + 'square' => '□', + 'SquareIntersection' => '⊓', + 'SquareSubset' => '⊏', + 'SquareSubsetEqual' => '⊑', + 'SquareSuperset' => '⊐', + 'SquareSupersetEqual' => '⊒', + 'SquareUnion' => '⊔', + 'squarf' => '▪', + 'squf' => '▪', + 'srarr' => '→', + 'Sscr' => '𝒮', + 'sscr' => '𝓈', + 'ssetmn' => '∖', + 'ssmile' => '⌣', + 'sstarf' => '⋆', + 'Star' => '⋆', + 'star' => '☆', + 'starf' => '★', + 'straightepsilon' => 'ϵ', + 'straightphi' => 'ϕ', + 'strns' => '¯', + 'Sub' => '⋐', + 'sub' => '⊂', + 'subdot' => '⪽', + 'subE' => '⫅', + 'sube' => '⊆', + 'subedot' => '⫃', + 'submult' => '⫁', + 'subnE' => '⫋', + 'subne' => '⊊', + 'subplus' => '⪿', + 'subrarr' => '⥹', + 'Subset' => '⋐', + 'subset' => '⊂', + 'subseteq' => '⊆', + 'subseteqq' => '⫅', + 'SubsetEqual' => '⊆', + 'subsetneq' => '⊊', + 'subsetneqq' => '⫋', + 'subsim' => '⫇', + 'subsub' => '⫕', + 'subsup' => '⫓', + 'succ' => '≻', + 'succapprox' => '⪸', + 'succcurlyeq' => '≽', + 'Succeeds' => '≻', + 'SucceedsEqual' => '⪰', + 'SucceedsSlantEqual' => '≽', + 'SucceedsTilde' => '≿', + 'succeq' => '⪰', + 'succnapprox' => '⪺', + 'succneqq' => '⪶', + 'succnsim' => '⋩', + 'succsim' => '≿', + 'SuchThat' => '∋', + 'Sum' => '∑', + 'sum' => '∑', + 'sung' => '♪', + 'Sup' => '⋑', + 'sup' => '³', + 'sup1' => '¹', + 'sup2' => '²', + 'sup3' => '³', + 'supdot' => '⪾', + 'supdsub' => '⫘', + 'supE' => '⫆', + 'supe' => '⊇', + 'supedot' => '⫄', + 'Superset' => '⊃', + 'SupersetEqual' => '⊇', + 'suphsol' => '⟉', + 'suphsub' => '⫗', + 'suplarr' => '⥻', + 'supmult' => '⫂', + 'supnE' => '⫌', + 'supne' => '⊋', + 'supplus' => '⫀', + 'Supset' => '⋑', + 'supset' => '⊃', + 'supseteq' => '⊇', + 'supseteqq' => '⫆', + 'supsetneq' => '⊋', + 'supsetneqq' => '⫌', + 'supsim' => '⫈', + 'supsub' => '⫔', + 'supsup' => '⫖', + 'swarhk' => '⤦', + 'swArr' => '⇙', + 'swarr' => '↙', + 'swarrow' => '↙', + 'swnwar' => '⤪', + 'szlig' => 'ß', + 'szli' => 'ß', + 'Tab' => ' ', + 'target' => '⌖', + 'Tau' => 'Τ', + 'tau' => 'τ', + 'tbrk' => '⎴', + 'Tcaron' => 'Ť', + 'tcaron' => 'Å¥', + 'Tcedil' => 'Å¢', + 'tcedil' => 'Å£', + 'Tcy' => 'Т', + 'tcy' => 'т', + 'tdot' => '⃛', + 'telrec' => '⌕', + 'Tfr' => '𝔗', + 'tfr' => '𝔱', + 'there4' => '∴', + 'Therefore' => '∴', + 'therefore' => '∴', + 'Theta' => 'Θ', + 'theta' => 'θ', + 'thetasym' => 'ϑ', + 'thetav' => 'ϑ', + 'thickapprox' => '≈', + 'thicksim' => '∼', + 'ThickSpace' => '  ', + 'thinsp' => ' ', + 'ThinSpace' => ' ', + 'thkap' => '≈', + 'thksim' => '∼', + 'THORN' => 'Þ', + 'THOR' => 'Þ', + 'thorn' => 'þ', + 'thor' => 'þ', + 'Tilde' => '∼', + 'tilde' => '˜', + 'TildeEqual' => '≃', + 'TildeFullEqual' => '≅', + 'TildeTilde' => '≈', + 'times' => '×', + 'time' => '×', + 'timesb' => '⊠', + 'timesbar' => '⨱', + 'timesd' => '⨰', + 'tint' => '∭', + 'toea' => '⤨', + 'top' => '⊤', + 'topbot' => '⌶', + 'topcir' => '⫱', + 'Topf' => '𝕋', + 'topf' => '𝕥', + 'topfork' => '⫚', + 'tosa' => '⤩', + 'tprime' => '‴', + 'TRADE' => '™', + 'trade' => '™', + 'triangle' => '▵', + 'triangledown' => '▿', + 'triangleleft' => '◃', + 'trianglelefteq' => '⊴', + 'triangleq' => '≜', + 'triangleright' => '▹', + 'trianglerighteq' => '⊵', + 'tridot' => '◬', + 'trie' => '≜', + 'triminus' => '⨺', + 'TripleDot' => '⃛', + 'triplus' => '⨹', + 'trisb' => '⧍', + 'tritime' => '⨻', + 'trpezium' => '⏢', + 'Tscr' => '𝒯', + 'tscr' => '𝓉', + 'TScy' => 'Ц', + 'tscy' => 'ц', + 'TSHcy' => 'Ћ', + 'tshcy' => 'ћ', + 'Tstrok' => 'Ŧ', + 'tstrok' => 'ŧ', + 'twixt' => '≬', + 'twoheadleftarrow' => '↞', + 'twoheadrightarrow' => '↠', + 'Uacute' => 'Ú', + 'Uacut' => 'Ú', + 'uacute' => 'ú', + 'uacut' => 'ú', + 'Uarr' => '↟', + 'uArr' => '⇑', + 'uarr' => '↑', + 'Uarrocir' => '⥉', + 'Ubrcy' => 'Ў', + 'ubrcy' => 'ў', + 'Ubreve' => 'Ŭ', + 'ubreve' => 'Å­', + 'Ucirc' => 'Û', + 'Ucir' => 'Û', + 'ucirc' => 'û', + 'ucir' => 'û', + 'Ucy' => 'У', + 'ucy' => 'у', + 'udarr' => '⇅', + 'Udblac' => 'Ű', + 'udblac' => 'ű', + 'udhar' => '⥮', + 'ufisht' => '⥾', + 'Ufr' => '𝔘', + 'ufr' => '𝔲', + 'Ugrave' => 'Ù', + 'Ugrav' => 'Ù', + 'ugrave' => 'ù', + 'ugrav' => 'ù', + 'uHar' => '⥣', + 'uharl' => '↿', + 'uharr' => '↾', + 'uhblk' => '▀', + 'ulcorn' => '⌜', + 'ulcorner' => '⌜', + 'ulcrop' => '⌏', + 'ultri' => '◸', + 'Umacr' => 'Ū', + 'umacr' => 'Å«', + 'uml' => '¨', + 'um' => '¨', + 'UnderBar' => '_', + 'UnderBrace' => '⏟', + 'UnderBracket' => '⎵', + 'UnderParenthesis' => '⏝', + 'Union' => '⋃', + 'UnionPlus' => '⊎', + 'Uogon' => 'Ų', + 'uogon' => 'ų', + 'Uopf' => '𝕌', + 'uopf' => '𝕦', + 'UpArrow' => '↑', + 'Uparrow' => '⇑', + 'uparrow' => '↑', + 'UpArrowBar' => '⤒', + 'UpArrowDownArrow' => '⇅', + 'UpDownArrow' => '↕', + 'Updownarrow' => '⇕', + 'updownarrow' => '↕', + 'UpEquilibrium' => '⥮', + 'upharpoonleft' => '↿', + 'upharpoonright' => '↾', + 'uplus' => '⊎', + 'UpperLeftArrow' => '↖', + 'UpperRightArrow' => '↗', + 'Upsi' => 'ϒ', + 'upsi' => 'υ', + 'upsih' => 'ϒ', + 'Upsilon' => 'Î¥', + 'upsilon' => 'υ', + 'UpTee' => '⊥', + 'UpTeeArrow' => '↥', + 'upuparrows' => '⇈', + 'urcorn' => '⌝', + 'urcorner' => '⌝', + 'urcrop' => '⌎', + 'Uring' => 'Å®', + 'uring' => 'ů', + 'urtri' => '◹', + 'Uscr' => '𝒰', + 'uscr' => '𝓊', + 'utdot' => '⋰', + 'Utilde' => 'Ũ', + 'utilde' => 'Å©', + 'utri' => '▵', + 'utrif' => '▴', + 'uuarr' => '⇈', + 'Uuml' => 'Ü', + 'Uum' => 'Ü', + 'uuml' => 'ü', + 'uum' => 'ü', + 'uwangle' => '⦧', + 'vangrt' => '⦜', + 'varepsilon' => 'ϵ', + 'varkappa' => 'ϰ', + 'varnothing' => '∅', + 'varphi' => 'ϕ', + 'varpi' => 'ϖ', + 'varpropto' => '∝', + 'vArr' => '⇕', + 'varr' => '↕', + 'varrho' => 'ϱ', + 'varsigma' => 'ς', + 'varsubsetneq' => '⊊︀', + 'varsubsetneqq' => '⫋︀', + 'varsupsetneq' => '⊋︀', + 'varsupsetneqq' => '⫌︀', + 'vartheta' => 'ϑ', + 'vartriangleleft' => '⊲', + 'vartriangleright' => '⊳', + 'Vbar' => 'â««', + 'vBar' => '⫨', + 'vBarv' => 'â«©', + 'Vcy' => 'В', + 'vcy' => 'в', + 'VDash' => '⊫', + 'Vdash' => '⊩', + 'vDash' => '⊨', + 'vdash' => '⊢', + 'Vdashl' => '⫦', + 'Vee' => '⋁', + 'vee' => '∨', + 'veebar' => '⊻', + 'veeeq' => '≚', + 'vellip' => '⋮', + 'Verbar' => '‖', + 'verbar' => '|', + 'Vert' => '‖', + 'vert' => '|', + 'VerticalBar' => '∣', + 'VerticalLine' => '|', + 'VerticalSeparator' => '❘', + 'VerticalTilde' => '≀', + 'VeryThinSpace' => ' ', + 'Vfr' => '𝔙', + 'vfr' => '𝔳', + 'vltri' => '⊲', + 'vnsub' => '⊂⃒', + 'vnsup' => '⊃⃒', + 'Vopf' => '𝕍', + 'vopf' => '𝕧', + 'vprop' => '∝', + 'vrtri' => '⊳', + 'Vscr' => '𝒱', + 'vscr' => '𝓋', + 'vsubnE' => '⫋︀', + 'vsubne' => '⊊︀', + 'vsupnE' => '⫌︀', + 'vsupne' => '⊋︀', + 'Vvdash' => '⊪', + 'vzigzag' => '⦚', + 'Wcirc' => 'Å´', + 'wcirc' => 'ŵ', + 'wedbar' => '⩟', + 'Wedge' => '⋀', + 'wedge' => '∧', + 'wedgeq' => '≙', + 'weierp' => '℘', + 'Wfr' => '𝔚', + 'wfr' => '𝔴', + 'Wopf' => '𝕎', + 'wopf' => '𝕨', + 'wp' => '℘', + 'wr' => '≀', + 'wreath' => '≀', + 'Wscr' => '𝒲', + 'wscr' => '𝓌', + 'xcap' => '⋂', + 'xcirc' => '◯', + 'xcup' => '⋃', + 'xdtri' => '▽', + 'Xfr' => '𝔛', + 'xfr' => '𝔵', + 'xhArr' => '⟺', + 'xharr' => '⟷', + 'Xi' => 'Ξ', + 'xi' => 'ξ', + 'xlArr' => '⟸', + 'xlarr' => '⟵', + 'xmap' => '⟼', + 'xnis' => '⋻', + 'xodot' => '⨀', + 'Xopf' => '𝕏', + 'xopf' => '𝕩', + 'xoplus' => '⨁', + 'xotime' => '⨂', + 'xrArr' => '⟹', + 'xrarr' => '⟶', + 'Xscr' => '𝒳', + 'xscr' => '𝓍', + 'xsqcup' => '⨆', + 'xuplus' => '⨄', + 'xutri' => '△', + 'xvee' => '⋁', + 'xwedge' => '⋀', + 'Yacute' => 'Ý', + 'Yacut' => 'Ý', + 'yacute' => 'ý', + 'yacut' => 'ý', + 'YAcy' => 'Я', + 'yacy' => 'я', + 'Ycirc' => 'Ŷ', + 'ycirc' => 'Å·', + 'Ycy' => 'Ы', + 'ycy' => 'ы', + 'yen' => 'Â¥', + 'ye' => 'Â¥', + 'Yfr' => '𝔜', + 'yfr' => '𝔶', + 'YIcy' => 'Ї', + 'yicy' => 'ї', + 'Yopf' => '𝕐', + 'yopf' => '𝕪', + 'Yscr' => '𝒴', + 'yscr' => '𝓎', + 'YUcy' => 'Ю', + 'yucy' => 'ю', + 'Yuml' => 'Ÿ', + 'yuml' => 'ÿ', + 'yum' => 'ÿ', + 'Zacute' => 'Ź', + 'zacute' => 'ź', + 'Zcaron' => 'Ž', + 'zcaron' => 'ž', + 'Zcy' => 'З', + 'zcy' => 'з', + 'Zdot' => 'Å»', + 'zdot' => 'ż', + 'zeetrf' => 'ℨ', + 'ZeroWidthSpace' => '​', + 'Zeta' => 'Ζ', + 'zeta' => 'ζ', + 'Zfr' => 'ℨ', + 'zfr' => '𝔷', + 'ZHcy' => 'Ж', + 'zhcy' => 'ж', + 'zigrarr' => '⇝', + 'Zopf' => 'ℤ', + 'zopf' => '𝕫', + 'Zscr' => '𝒵', + 'zscr' => '𝓏', + 'zwj' => '‍', + 'zwnj' => '‌', + ); +} diff --git a/public_html/2022/newcms/lib/vendor/masterminds/html5/src/HTML5/Exception.php b/public_html/2022/newcms/lib/vendor/masterminds/html5/src/HTML5/Exception.php new file mode 100644 index 0000000..64e97e6 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/masterminds/html5/src/HTML5/Exception.php @@ -0,0 +1,10 @@ + self::NAMESPACE_HTML, + 'svg' => self::NAMESPACE_SVG, + 'math' => self::NAMESPACE_MATHML, + ); + + /** + * Holds the always available namespaces (which does not require the XMLNS declaration). + * + * @var array + */ + protected $implicitNamespaces = array( + 'xml' => self::NAMESPACE_XML, + 'xmlns' => self::NAMESPACE_XMLNS, + 'xlink' => self::NAMESPACE_XLINK, + ); + + /** + * Holds a stack of currently active namespaces. + * + * @var array + */ + protected $nsStack = array(); + + /** + * Holds the number of namespaces declared by a node. + * + * @var array + */ + protected $pushes = array(); + + /** + * Defined in 8.2.5. + */ + const IM_INITIAL = 0; + + const IM_BEFORE_HTML = 1; + + const IM_BEFORE_HEAD = 2; + + const IM_IN_HEAD = 3; + + const IM_IN_HEAD_NOSCRIPT = 4; + + const IM_AFTER_HEAD = 5; + + const IM_IN_BODY = 6; + + const IM_TEXT = 7; + + const IM_IN_TABLE = 8; + + const IM_IN_TABLE_TEXT = 9; + + const IM_IN_CAPTION = 10; + + const IM_IN_COLUMN_GROUP = 11; + + const IM_IN_TABLE_BODY = 12; + + const IM_IN_ROW = 13; + + const IM_IN_CELL = 14; + + const IM_IN_SELECT = 15; + + const IM_IN_SELECT_IN_TABLE = 16; + + const IM_AFTER_BODY = 17; + + const IM_IN_FRAMESET = 18; + + const IM_AFTER_FRAMESET = 19; + + const IM_AFTER_AFTER_BODY = 20; + + const IM_AFTER_AFTER_FRAMESET = 21; + + const IM_IN_SVG = 22; + + const IM_IN_MATHML = 23; + + protected $options = array(); + + protected $stack = array(); + + protected $current; // Pointer in the tag hierarchy. + protected $rules; + protected $doc; + + protected $frag; + + protected $processor; + + protected $insertMode = 0; + + /** + * Track if we are in an element that allows only inline child nodes. + * + * @var string|null + */ + protected $onlyInline; + + /** + * Quirks mode is enabled by default. + * Any document that is missing the DT will be considered to be in quirks mode. + */ + protected $quirks = true; + + protected $errors = array(); + + public function __construct($isFragment = false, array $options = array()) + { + $this->options = $options; + + if (isset($options[self::OPT_TARGET_DOC])) { + $this->doc = $options[self::OPT_TARGET_DOC]; + } else { + $impl = new \DOMImplementation(); + // XXX: + // Create the doctype. For now, we are always creating HTML5 + // documents, and attempting to up-convert any older DTDs to HTML5. + $dt = $impl->createDocumentType('html'); + // $this->doc = \DOMImplementation::createDocument(NULL, 'html', $dt); + $this->doc = $impl->createDocument(null, '', $dt); + $this->doc->encoding = !empty($options['encoding']) ? $options['encoding'] : 'UTF-8'; + } + + $this->errors = array(); + + $this->current = $this->doc; // ->documentElement; + + // Create a rules engine for tags. + $this->rules = new TreeBuildingRules(); + + $implicitNS = array(); + if (isset($this->options[self::OPT_IMPLICIT_NS])) { + $implicitNS = $this->options[self::OPT_IMPLICIT_NS]; + } elseif (isset($this->options['implicitNamespaces'])) { + $implicitNS = $this->options['implicitNamespaces']; + } + + // Fill $nsStack with the defalut HTML5 namespaces, plus the "implicitNamespaces" array taken form $options + array_unshift($this->nsStack, $implicitNS + array('' => self::NAMESPACE_HTML) + $this->implicitNamespaces); + + if ($isFragment) { + $this->insertMode = static::IM_IN_BODY; + $this->frag = $this->doc->createDocumentFragment(); + $this->current = $this->frag; + } + } + + /** + * Get the document. + */ + public function document() + { + return $this->doc; + } + + /** + * Get the DOM fragment for the body. + * + * This returns a DOMNodeList because a fragment may have zero or more + * DOMNodes at its root. + * + * @see http://www.w3.org/TR/2012/CR-html5-20121217/syntax.html#concept-frag-parse-context + * + * @return \DOMDocumentFragment + */ + public function fragment() + { + return $this->frag; + } + + /** + * Provide an instruction processor. + * + * This is used for handling Processor Instructions as they are + * inserted. If omitted, PI's are inserted directly into the DOM tree. + * + * @param InstructionProcessor $proc + */ + public function setInstructionProcessor(InstructionProcessor $proc) + { + $this->processor = $proc; + } + + public function doctype($name, $idType = 0, $id = null, $quirks = false) + { + // This is used solely for setting quirks mode. Currently we don't + // try to preserve the inbound DT. We convert it to HTML5. + $this->quirks = $quirks; + + if ($this->insertMode > static::IM_INITIAL) { + $this->parseError('Illegal placement of DOCTYPE tag. Ignoring: ' . $name); + + return; + } + + $this->insertMode = static::IM_BEFORE_HTML; + } + + /** + * Process the start tag. + * + * @todo - XMLNS namespace handling (we need to parse, even if it's not valid) + * - XLink, MathML and SVG namespace handling + * - Omission rules: 8.1.2.4 Optional tags + * + * @param string $name + * @param array $attributes + * @param bool $selfClosing + * + * @return int + */ + public function startTag($name, $attributes = array(), $selfClosing = false) + { + $lname = $this->normalizeTagName($name); + + // Make sure we have an html element. + if (!$this->doc->documentElement && 'html' !== $name && !$this->frag) { + $this->startTag('html'); + } + + // Set quirks mode if we're at IM_INITIAL with no doctype. + if ($this->insertMode === static::IM_INITIAL) { + $this->quirks = true; + $this->parseError('No DOCTYPE specified.'); + } + + // SPECIAL TAG HANDLING: + // Spec says do this, and "don't ask." + // find the spec where this is defined... looks problematic + if ('image' === $name && !($this->insertMode === static::IM_IN_SVG || $this->insertMode === static::IM_IN_MATHML)) { + $name = 'img'; + } + + // Autoclose p tags where appropriate. + if ($this->insertMode >= static::IM_IN_BODY && Elements::isA($name, Elements::AUTOCLOSE_P)) { + $this->autoclose('p'); + } + + // Set insert mode: + switch ($name) { + case 'html': + $this->insertMode = static::IM_BEFORE_HEAD; + break; + case 'head': + if ($this->insertMode > static::IM_BEFORE_HEAD) { + $this->parseError('Unexpected head tag outside of head context.'); + } else { + $this->insertMode = static::IM_IN_HEAD; + } + break; + case 'body': + $this->insertMode = static::IM_IN_BODY; + break; + case 'svg': + $this->insertMode = static::IM_IN_SVG; + break; + case 'math': + $this->insertMode = static::IM_IN_MATHML; + break; + case 'noscript': + if ($this->insertMode === static::IM_IN_HEAD) { + $this->insertMode = static::IM_IN_HEAD_NOSCRIPT; + } + break; + } + + // Special case handling for SVG. + if ($this->insertMode === static::IM_IN_SVG) { + $lname = Elements::normalizeSvgElement($lname); + } + + $pushes = 0; + // when we found a tag thats appears inside $nsRoots, we have to switch the defalut namespace + if (isset($this->nsRoots[$lname]) && $this->nsStack[0][''] !== $this->nsRoots[$lname]) { + array_unshift($this->nsStack, array( + '' => $this->nsRoots[$lname], + ) + $this->nsStack[0]); + ++$pushes; + } + $needsWorkaround = false; + if (isset($this->options['xmlNamespaces']) && $this->options['xmlNamespaces']) { + // when xmlNamespaces is true a and we found a 'xmlns' or 'xmlns:*' attribute, we should add a new item to the $nsStack + foreach ($attributes as $aName => $aVal) { + if ('xmlns' === $aName) { + $needsWorkaround = $aVal; + array_unshift($this->nsStack, array( + '' => $aVal, + ) + $this->nsStack[0]); + ++$pushes; + } elseif ('xmlns' === (($pos = strpos($aName, ':')) ? substr($aName, 0, $pos) : '')) { + array_unshift($this->nsStack, array( + substr($aName, $pos + 1) => $aVal, + ) + $this->nsStack[0]); + ++$pushes; + } + } + } + + if ($this->onlyInline && Elements::isA($lname, Elements::BLOCK_TAG)) { + $this->autoclose($this->onlyInline); + $this->onlyInline = null; + } + + try { + $prefix = ($pos = strpos($lname, ':')) ? substr($lname, 0, $pos) : ''; + + if (false !== $needsWorkaround) { + $xml = "<$lname xmlns=\"$needsWorkaround\" " . (strlen($prefix) && isset($this->nsStack[0][$prefix]) ? ("xmlns:$prefix=\"" . $this->nsStack[0][$prefix] . '"') : '') . '/>'; + + $frag = new \DOMDocument('1.0', 'UTF-8'); + $frag->loadXML($xml); + + $ele = $this->doc->importNode($frag->documentElement, true); + } else { + if (!isset($this->nsStack[0][$prefix]) || ('' === $prefix && isset($this->options[self::OPT_DISABLE_HTML_NS]) && $this->options[self::OPT_DISABLE_HTML_NS])) { + $ele = $this->doc->createElement($lname); + } else { + $ele = $this->doc->createElementNS($this->nsStack[0][$prefix], $lname); + } + } + } catch (\DOMException $e) { + $this->parseError("Illegal tag name: <$lname>. Replaced with ."); + $ele = $this->doc->createElement('invalid'); + } + + if (Elements::isA($lname, Elements::BLOCK_ONLY_INLINE)) { + $this->onlyInline = $lname; + } + + // When we add some namespacess, we have to track them. Later, when "endElement" is invoked, we have to remove them. + // When we are on a void tag, we do not need to care about namesapce nesting. + if ($pushes > 0 && !Elements::isA($name, Elements::VOID_TAG)) { + // PHP tends to free the memory used by DOM, + // to avoid spl_object_hash collisions whe have to avoid garbage collection of $ele storing it into $pushes + // see https://bugs.php.net/bug.php?id=67459 + $this->pushes[spl_object_hash($ele)] = array($pushes, $ele); + } + + foreach ($attributes as $aName => $aVal) { + // xmlns attributes can't be set + if ('xmlns' === $aName) { + continue; + } + + if ($this->insertMode === static::IM_IN_SVG) { + $aName = Elements::normalizeSvgAttribute($aName); + } elseif ($this->insertMode === static::IM_IN_MATHML) { + $aName = Elements::normalizeMathMlAttribute($aName); + } + + $aVal = (string) $aVal; + + try { + $prefix = ($pos = strpos($aName, ':')) ? substr($aName, 0, $pos) : false; + + if ('xmlns' === $prefix) { + $ele->setAttributeNS(self::NAMESPACE_XMLNS, $aName, $aVal); + } elseif (false !== $prefix && isset($this->nsStack[0][$prefix])) { + $ele->setAttributeNS($this->nsStack[0][$prefix], $aName, $aVal); + } else { + $ele->setAttribute($aName, $aVal); + } + } catch (\DOMException $e) { + $this->parseError("Illegal attribute name for tag $name. Ignoring: $aName"); + continue; + } + + // This is necessary on a non-DTD schema, like HTML5. + if ('id' === $aName) { + $ele->setIdAttribute('id', true); + } + } + + if ($this->frag !== $this->current && $this->rules->hasRules($name)) { + // Some elements have special processing rules. Handle those separately. + $this->current = $this->rules->evaluate($ele, $this->current); + } else { + // Otherwise, it's a standard element. + $this->current->appendChild($ele); + + if (!Elements::isA($name, Elements::VOID_TAG)) { + $this->current = $ele; + } + + // Self-closing tags should only be respected on foreign elements + // (and are implied on void elements) + // See: https://www.w3.org/TR/html5/syntax.html#start-tags + if (Elements::isHtml5Element($name)) { + $selfClosing = false; + } + } + + // This is sort of a last-ditch attempt to correct for cases where no head/body + // elements are provided. + if ($this->insertMode <= static::IM_BEFORE_HEAD && 'head' !== $name && 'html' !== $name) { + $this->insertMode = static::IM_IN_BODY; + } + + // When we are on a void tag, we do not need to care about namesapce nesting, + // but we have to remove the namespaces pushed to $nsStack. + if ($pushes > 0 && Elements::isA($name, Elements::VOID_TAG)) { + // remove the namespaced definded by current node + for ($i = 0; $i < $pushes; ++$i) { + array_shift($this->nsStack); + } + } + + if ($selfClosing) { + $this->endTag($name); + } + + // Return the element mask, which the tokenizer can then use to set + // various processing rules. + return Elements::element($name); + } + + public function endTag($name) + { + $lname = $this->normalizeTagName($name); + + // Special case within 12.2.6.4.7: An end tag whose tag name is "br" should be treated as an opening tag + if ('br' === $name) { + $this->parseError('Closing tag encountered for void element br.'); + + $this->startTag('br'); + } + // Ignore closing tags for other unary elements. + elseif (Elements::isA($name, Elements::VOID_TAG)) { + return; + } + + if ($this->insertMode <= static::IM_BEFORE_HTML) { + // 8.2.5.4.2 + if (in_array($name, array( + 'html', + 'br', + 'head', + 'title', + ))) { + $this->startTag('html'); + $this->endTag($name); + $this->insertMode = static::IM_BEFORE_HEAD; + + return; + } + + // Ignore the tag. + $this->parseError('Illegal closing tag at global scope.'); + + return; + } + + // Special case handling for SVG. + if ($this->insertMode === static::IM_IN_SVG) { + $lname = Elements::normalizeSvgElement($lname); + } + + $cid = spl_object_hash($this->current); + + // XXX: HTML has no parent. What do we do, though, + // if this element appears in the wrong place? + if ('html' === $lname) { + return; + } + + // remove the namespaced definded by current node + if (isset($this->pushes[$cid])) { + for ($i = 0; $i < $this->pushes[$cid][0]; ++$i) { + array_shift($this->nsStack); + } + unset($this->pushes[$cid]); + } + + if (!$this->autoclose($lname)) { + $this->parseError('Could not find closing tag for ' . $lname); + } + + switch ($lname) { + case 'head': + $this->insertMode = static::IM_AFTER_HEAD; + break; + case 'body': + $this->insertMode = static::IM_AFTER_BODY; + break; + case 'svg': + case 'mathml': + $this->insertMode = static::IM_IN_BODY; + break; + } + } + + public function comment($cdata) + { + // TODO: Need to handle case where comment appears outside of the HTML tag. + $node = $this->doc->createComment($cdata); + $this->current->appendChild($node); + } + + public function text($data) + { + // XXX: Hmmm.... should we really be this strict? + if ($this->insertMode < static::IM_IN_HEAD) { + // Per '8.2.5.4.3 The "before head" insertion mode' the characters + // " \t\n\r\f" should be ignored but no mention of a parse error. This is + // practical as most documents contain these characters. Other text is not + // expected here so recording a parse error is necessary. + $dataTmp = trim($data, " \t\n\r\f"); + if (!empty($dataTmp)) { + // fprintf(STDOUT, "Unexpected insert mode: %d", $this->insertMode); + $this->parseError('Unexpected text. Ignoring: ' . $dataTmp); + } + + return; + } + // fprintf(STDOUT, "Appending text %s.", $data); + $node = $this->doc->createTextNode($data); + $this->current->appendChild($node); + } + + public function eof() + { + // If the $current isn't the $root, do we need to do anything? + } + + public function parseError($msg, $line = 0, $col = 0) + { + $this->errors[] = sprintf('Line %d, Col %d: %s', $line, $col, $msg); + } + + public function getErrors() + { + return $this->errors; + } + + public function cdata($data) + { + $node = $this->doc->createCDATASection($data); + $this->current->appendChild($node); + } + + public function processingInstruction($name, $data = null) + { + // XXX: Ignore initial XML declaration, per the spec. + if ($this->insertMode === static::IM_INITIAL && 'xml' === strtolower($name)) { + return; + } + + // Important: The processor may modify the current DOM tree however it sees fit. + if ($this->processor instanceof InstructionProcessor) { + $res = $this->processor->process($this->current, $name, $data); + if (!empty($res)) { + $this->current = $res; + } + + return; + } + + // Otherwise, this is just a dumb PI element. + $node = $this->doc->createProcessingInstruction($name, $data); + + $this->current->appendChild($node); + } + + // ========================================================================== + // UTILITIES + // ========================================================================== + + /** + * Apply normalization rules to a tag name. + * See sections 2.9 and 8.1.2. + * + * @param string $tagName + * + * @return string The normalized tag name. + */ + protected function normalizeTagName($tagName) + { + /* + * Section 2.9 suggests that we should not do this. if (strpos($name, ':') !== false) { // We know from the grammar that there must be at least one other // char besides :, since : is not a legal tag start. $parts = explode(':', $name); return array_pop($parts); } + */ + return $tagName; + } + + protected function quirksTreeResolver($name) + { + throw new \Exception('Not implemented.'); + } + + /** + * Automatically climb the tree and close the closest node with the matching $tag. + * + * @param string $tagName + * + * @return bool + */ + protected function autoclose($tagName) + { + $working = $this->current; + do { + if (XML_ELEMENT_NODE !== $working->nodeType) { + return false; + } + if ($working->tagName === $tagName) { + $this->current = $working->parentNode; + + return true; + } + } while ($working = $working->parentNode); + + return false; + } + + /** + * Checks if the given tagname is an ancestor of the present candidate. + * + * If $this->current or anything above $this->current matches the given tag + * name, this returns true. + * + * @param string $tagName + * + * @return bool + */ + protected function isAncestor($tagName) + { + $candidate = $this->current; + while (XML_ELEMENT_NODE === $candidate->nodeType) { + if ($candidate->tagName === $tagName) { + return true; + } + $candidate = $candidate->parentNode; + } + + return false; + } + + /** + * Returns true if the immediate parent element is of the given tagname. + * + * @param string $tagName + * + * @return bool + */ + protected function isParent($tagName) + { + return $this->current->tagName === $tagName; + } +} diff --git a/public_html/2022/newcms/lib/vendor/masterminds/html5/src/HTML5/Parser/EventHandler.php b/public_html/2022/newcms/lib/vendor/masterminds/html5/src/HTML5/Parser/EventHandler.php new file mode 100644 index 0000000..9893a71 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/masterminds/html5/src/HTML5/Parser/EventHandler.php @@ -0,0 +1,114 @@ +). + * + * @return int one of the Tokenizer::TEXTMODE_* constants + */ + public function startTag($name, $attributes = array(), $selfClosing = false); + + /** + * An end-tag. + */ + public function endTag($name); + + /** + * A comment section (unparsed character data). + */ + public function comment($cdata); + + /** + * A unit of parsed character data. + * + * Entities in this text are *already decoded*. + */ + public function text($cdata); + + /** + * Indicates that the document has been entirely processed. + */ + public function eof(); + + /** + * Emitted when the parser encounters an error condition. + */ + public function parseError($msg, $line, $col); + + /** + * A CDATA section. + * + * @param string $data + * The unparsed character data + */ + public function cdata($data); + + /** + * This is a holdover from the XML spec. + * + * While user agents don't get PIs, server-side does. + * + * @param string $name The name of the processor (e.g. 'php'). + * @param string $data The unparsed data. + */ + public function processingInstruction($name, $data = null); +} diff --git a/public_html/2022/newcms/lib/vendor/masterminds/html5/src/HTML5/Parser/FileInputStream.php b/public_html/2022/newcms/lib/vendor/masterminds/html5/src/HTML5/Parser/FileInputStream.php new file mode 100644 index 0000000..b081ed9 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/masterminds/html5/src/HTML5/Parser/FileInputStream.php @@ -0,0 +1,33 @@ +errors = UTF8Utils::checkForIllegalCodepoints($data); + + $data = $this->replaceLinefeeds($data); + + $this->data = $data; + $this->char = 0; + $this->EOF = strlen($data); + } + + /** + * Check if upcomming chars match the given sequence. + * + * This will read the stream for the $sequence. If it's + * found, this will return true. If not, return false. + * Since this unconsumes any chars it reads, the caller + * will still need to read the next sequence, even if + * this returns true. + * + * Example: $this->scanner->sequenceMatches('') will + * see if the input stream is at the start of a + * '' string. + * + * @param string $sequence + * @param bool $caseSensitive + * + * @return bool + */ + public function sequenceMatches($sequence, $caseSensitive = true) + { + $portion = substr($this->data, $this->char, strlen($sequence)); + + return $caseSensitive ? $portion === $sequence : 0 === strcasecmp($portion, $sequence); + } + + /** + * Get the current position. + * + * @return int The current intiger byte position. + */ + public function position() + { + return $this->char; + } + + /** + * Take a peek at the next character in the data. + * + * @return string The next character. + */ + public function peek() + { + if (($this->char + 1) < $this->EOF) { + return $this->data[$this->char + 1]; + } + + return false; + } + + /** + * Get the next character. + * Note: This advances the pointer. + * + * @return string The next character. + */ + public function next() + { + ++$this->char; + + if ($this->char < $this->EOF) { + return $this->data[$this->char]; + } + + return false; + } + + /** + * Get the current character. + * Note, this does not advance the pointer. + * + * @return string The current character. + */ + public function current() + { + if ($this->char < $this->EOF) { + return $this->data[$this->char]; + } + + return false; + } + + /** + * Silently consume N chars. + * + * @param int $count + */ + public function consume($count = 1) + { + $this->char += $count; + } + + /** + * Unconsume some of the data. + * This moves the data pointer backwards. + * + * @param int $howMany The number of characters to move the pointer back. + */ + public function unconsume($howMany = 1) + { + if (($this->char - $howMany) >= 0) { + $this->char -= $howMany; + } + } + + /** + * Get the next group of that contains hex characters. + * Note, along with getting the characters the pointer in the data will be + * moved as well. + * + * @return string The next group that is hex characters. + */ + public function getHex() + { + return $this->doCharsWhile(static::CHARS_HEX); + } + + /** + * Get the next group of characters that are ASCII Alpha characters. + * Note, along with getting the characters the pointer in the data will be + * moved as well. + * + * @return string The next group of ASCII alpha characters. + */ + public function getAsciiAlpha() + { + return $this->doCharsWhile(static::CHARS_ALPHA); + } + + /** + * Get the next group of characters that are ASCII Alpha characters and numbers. + * Note, along with getting the characters the pointer in the data will be + * moved as well. + * + * @return string The next group of ASCII alpha characters and numbers. + */ + public function getAsciiAlphaNum() + { + return $this->doCharsWhile(static::CHARS_ALNUM); + } + + /** + * Get the next group of numbers. + * Note, along with getting the characters the pointer in the data will be + * moved as well. + * + * @return string The next group of numbers. + */ + public function getNumeric() + { + return $this->doCharsWhile('0123456789'); + } + + /** + * Consume whitespace. + * Whitespace in HTML5 is: formfeed, tab, newline, space. + * + * @return int The length of the matched whitespaces. + */ + public function whitespace() + { + if ($this->char >= $this->EOF) { + return false; + } + + $len = strspn($this->data, "\n\t\f ", $this->char); + + $this->char += $len; + + return $len; + } + + /** + * Returns the current line that is being consumed. + * + * @return int The current line number. + */ + public function currentLine() + { + if (empty($this->EOF) || 0 === $this->char) { + return 1; + } + + // Add one to $this->char because we want the number for the next + // byte to be processed. + return substr_count($this->data, "\n", 0, min($this->char, $this->EOF)) + 1; + } + + /** + * Read chars until something in the mask is encountered. + * + * @param string $mask + * + * @return mixed + */ + public function charsUntil($mask) + { + return $this->doCharsUntil($mask); + } + + /** + * Read chars as long as the mask matches. + * + * @param string $mask + * + * @return int + */ + public function charsWhile($mask) + { + return $this->doCharsWhile($mask); + } + + /** + * Returns the current column of the current line that the tokenizer is at. + * + * Newlines are column 0. The first char after a newline is column 1. + * + * @return int The column number. + */ + public function columnOffset() + { + // Short circuit for the first char. + if (0 === $this->char) { + return 0; + } + + // strrpos is weird, and the offset needs to be negative for what we + // want (i.e., the last \n before $this->char). This needs to not have + // one (to make it point to the next character, the one we want the + // position of) added to it because strrpos's behaviour includes the + // final offset byte. + $backwardFrom = $this->char - 1 - strlen($this->data); + $lastLine = strrpos($this->data, "\n", $backwardFrom); + + // However, for here we want the length up until the next byte to be + // processed, so add one to the current byte ($this->char). + if (false !== $lastLine) { + $findLengthOf = substr($this->data, $lastLine + 1, $this->char - 1 - $lastLine); + } else { + // After a newline. + $findLengthOf = substr($this->data, 0, $this->char); + } + + return UTF8Utils::countChars($findLengthOf); + } + + /** + * Get all characters until EOF. + * + * This consumes characters until the EOF. + * + * @return int The number of characters remaining. + */ + public function remainingChars() + { + if ($this->char < $this->EOF) { + $data = substr($this->data, $this->char); + $this->char = $this->EOF; + + return $data; + } + + return ''; // false; + } + + /** + * Replace linefeed characters according to the spec. + * + * @param $data + * + * @return string + */ + private function replaceLinefeeds($data) + { + /* + * U+000D CARRIAGE RETURN (CR) characters and U+000A LINE FEED (LF) characters are treated specially. + * Any CR characters that are followed by LF characters must be removed, and any CR characters not + * followed by LF characters must be converted to LF characters. Thus, newlines in HTML DOMs are + * represented by LF characters, and there are never any CR characters in the input to the tokenization + * stage. + */ + $crlfTable = array( + "\0" => "\xEF\xBF\xBD", + "\r\n" => "\n", + "\r" => "\n", + ); + + return strtr($data, $crlfTable); + } + + /** + * Read to a particular match (or until $max bytes are consumed). + * + * This operates on byte sequences, not characters. + * + * Matches as far as possible until we reach a certain set of bytes + * and returns the matched substring. + * + * @param string $bytes Bytes to match. + * @param int $max Maximum number of bytes to scan. + * + * @return mixed Index or false if no match is found. You should use strong + * equality when checking the result, since index could be 0. + */ + private function doCharsUntil($bytes, $max = null) + { + if ($this->char >= $this->EOF) { + return false; + } + + if (0 === $max || $max) { + $len = strcspn($this->data, $bytes, $this->char, $max); + } else { + $len = strcspn($this->data, $bytes, $this->char); + } + + $string = (string) substr($this->data, $this->char, $len); + $this->char += $len; + + return $string; + } + + /** + * Returns the string so long as $bytes matches. + * + * Matches as far as possible with a certain set of bytes + * and returns the matched substring. + * + * @param string $bytes A mask of bytes to match. If ANY byte in this mask matches the + * current char, the pointer advances and the char is part of the + * substring. + * @param int $max The max number of chars to read. + * + * @return string + */ + private function doCharsWhile($bytes, $max = null) + { + if ($this->char >= $this->EOF) { + return false; + } + + if (0 === $max || $max) { + $len = strspn($this->data, $bytes, $this->char, $max); + } else { + $len = strspn($this->data, $bytes, $this->char); + } + + $string = (string) substr($this->data, $this->char, $len); + $this->char += $len; + + return $string; + } +} diff --git a/public_html/2022/newcms/lib/vendor/masterminds/html5/src/HTML5/Parser/StringInputStream.php b/public_html/2022/newcms/lib/vendor/masterminds/html5/src/HTML5/Parser/StringInputStream.php new file mode 100644 index 0000000..0c213fe --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/masterminds/html5/src/HTML5/Parser/StringInputStream.php @@ -0,0 +1,331 @@ + + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +*/ + +// Some conventions: +// - /* */ indicates verbatim text from the HTML 5 specification +// MPB: Not sure which version of the spec. Moving from HTML5lib to +// HTML5-PHP, I have been using this version: +// http://www.w3.org/TR/2012/CR-html5-20121217/Overview.html#contents +// +// - // indicates regular comments + +/** + * @deprecated since 2.4, to remove in 3.0. Use a string in the scanner instead. + */ +class StringInputStream implements InputStream +{ + /** + * The string data we're parsing. + */ + private $data; + + /** + * The current integer byte position we are in $data. + */ + private $char; + + /** + * Length of $data; when $char === $data, we are at the end-of-file. + */ + private $EOF; + + /** + * Parse errors. + */ + public $errors = array(); + + /** + * Create a new InputStream wrapper. + * + * @param string $data Data to parse. + * @param string $encoding The encoding to use for the data. + * @param string $debug A fprintf format to use to echo the data on stdout. + */ + public function __construct($data, $encoding = 'UTF-8', $debug = '') + { + $data = UTF8Utils::convertToUTF8($data, $encoding); + if ($debug) { + fprintf(STDOUT, $debug, $data, strlen($data)); + } + + // There is good reason to question whether it makes sense to + // do this here, since most of these checks are done during + // parsing, and since this check doesn't actually *do* anything. + $this->errors = UTF8Utils::checkForIllegalCodepoints($data); + + $data = $this->replaceLinefeeds($data); + + $this->data = $data; + $this->char = 0; + $this->EOF = strlen($data); + } + + public function __toString() + { + return $this->data; + } + + /** + * Replace linefeed characters according to the spec. + */ + protected function replaceLinefeeds($data) + { + /* + * U+000D CARRIAGE RETURN (CR) characters and U+000A LINE FEED (LF) characters are treated specially. + * Any CR characters that are followed by LF characters must be removed, and any CR characters not + * followed by LF characters must be converted to LF characters. Thus, newlines in HTML DOMs are + * represented by LF characters, and there are never any CR characters in the input to the tokenization + * stage. + */ + $crlfTable = array( + "\0" => "\xEF\xBF\xBD", + "\r\n" => "\n", + "\r" => "\n", + ); + + return strtr($data, $crlfTable); + } + + /** + * Returns the current line that the tokenizer is at. + */ + public function currentLine() + { + if (empty($this->EOF) || 0 === $this->char) { + return 1; + } + // Add one to $this->char because we want the number for the next + // byte to be processed. + return substr_count($this->data, "\n", 0, min($this->char, $this->EOF)) + 1; + } + + /** + * @deprecated + */ + public function getCurrentLine() + { + return $this->currentLine(); + } + + /** + * Returns the current column of the current line that the tokenizer is at. + * Newlines are column 0. The first char after a newline is column 1. + * + * @return int The column number. + */ + public function columnOffset() + { + // Short circuit for the first char. + if (0 === $this->char) { + return 0; + } + // strrpos is weird, and the offset needs to be negative for what we + // want (i.e., the last \n before $this->char). This needs to not have + // one (to make it point to the next character, the one we want the + // position of) added to it because strrpos's behaviour includes the + // final offset byte. + $backwardFrom = $this->char - 1 - strlen($this->data); + $lastLine = strrpos($this->data, "\n", $backwardFrom); + + // However, for here we want the length up until the next byte to be + // processed, so add one to the current byte ($this->char). + if (false !== $lastLine) { + $findLengthOf = substr($this->data, $lastLine + 1, $this->char - 1 - $lastLine); + } else { + // After a newline. + $findLengthOf = substr($this->data, 0, $this->char); + } + + return UTF8Utils::countChars($findLengthOf); + } + + /** + * @deprecated + */ + public function getColumnOffset() + { + return $this->columnOffset(); + } + + /** + * Get the current character. + * + * @return string The current character. + */ + public function current() + { + return $this->data[$this->char]; + } + + /** + * Advance the pointer. + * This is part of the Iterator interface. + */ + public function next() + { + ++$this->char; + } + + /** + * Rewind to the start of the string. + */ + public function rewind() + { + $this->char = 0; + } + + /** + * Is the current pointer location valid. + * + * @return bool Whether the current pointer location is valid. + */ + public function valid() + { + return $this->char < $this->EOF; + } + + /** + * Get all characters until EOF. + * + * This reads to the end of the file, and sets the read marker at the + * end of the file. + * + * Note this performs bounds checking. + * + * @return string Returns the remaining text. If called when the InputStream is + * already exhausted, it returns an empty string. + */ + public function remainingChars() + { + if ($this->char < $this->EOF) { + $data = substr($this->data, $this->char); + $this->char = $this->EOF; + + return $data; + } + + return ''; // false; + } + + /** + * Read to a particular match (or until $max bytes are consumed). + * + * This operates on byte sequences, not characters. + * + * Matches as far as possible until we reach a certain set of bytes + * and returns the matched substring. + * + * @param string $bytes Bytes to match. + * @param int $max Maximum number of bytes to scan. + * + * @return mixed Index or false if no match is found. You should use strong + * equality when checking the result, since index could be 0. + */ + public function charsUntil($bytes, $max = null) + { + if ($this->char >= $this->EOF) { + return false; + } + + if (0 === $max || $max) { + $len = strcspn($this->data, $bytes, $this->char, $max); + } else { + $len = strcspn($this->data, $bytes, $this->char); + } + + $string = (string) substr($this->data, $this->char, $len); + $this->char += $len; + + return $string; + } + + /** + * Returns the string so long as $bytes matches. + * + * Matches as far as possible with a certain set of bytes + * and returns the matched substring. + * + * @param string $bytes A mask of bytes to match. If ANY byte in this mask matches the + * current char, the pointer advances and the char is part of the + * substring. + * @param int $max The max number of chars to read. + * + * @return string + */ + public function charsWhile($bytes, $max = null) + { + if ($this->char >= $this->EOF) { + return false; + } + + if (0 === $max || $max) { + $len = strspn($this->data, $bytes, $this->char, $max); + } else { + $len = strspn($this->data, $bytes, $this->char); + } + $string = (string) substr($this->data, $this->char, $len); + $this->char += $len; + + return $string; + } + + /** + * Unconsume characters. + * + * @param int $howMany The number of characters to unconsume. + */ + public function unconsume($howMany = 1) + { + if (($this->char - $howMany) >= 0) { + $this->char -= $howMany; + } + } + + /** + * Look ahead without moving cursor. + */ + public function peek() + { + if (($this->char + 1) <= $this->EOF) { + return $this->data[$this->char + 1]; + } + + return false; + } + + public function key() + { + return $this->char; + } +} diff --git a/public_html/2022/newcms/lib/vendor/masterminds/html5/src/HTML5/Parser/Tokenizer.php b/public_html/2022/newcms/lib/vendor/masterminds/html5/src/HTML5/Parser/Tokenizer.php new file mode 100644 index 0000000..016919a --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/masterminds/html5/src/HTML5/Parser/Tokenizer.php @@ -0,0 +1,1197 @@ +scanner = $scanner; + $this->events = $eventHandler; + $this->mode = $mode; + } + + /** + * Begin parsing. + * + * This will begin scanning the document, tokenizing as it goes. + * Tokens are emitted into the event handler. + * + * Tokenizing will continue until the document is completely + * read. Errors are emitted into the event handler, but + * the parser will attempt to continue parsing until the + * entire input stream is read. + */ + public function parse() + { + do { + $this->consumeData(); + // FIXME: Add infinite loop protection. + } while ($this->carryOn); + } + + /** + * Set the text mode for the character data reader. + * + * HTML5 defines three different modes for reading text: + * - Normal: Read until a tag is encountered. + * - RCDATA: Read until a tag is encountered, but skip a few otherwise- + * special characters. + * - Raw: Read until a special closing tag is encountered (viz. pre, script) + * + * This allows those modes to be set. + * + * Normally, setting is done by the event handler via a special return code on + * startTag(), but it can also be set manually using this function. + * + * @param int $textmode One of Elements::TEXT_*. + * @param string $untilTag The tag that should stop RAW or RCDATA mode. Normal mode does not + * use this indicator. + */ + public function setTextMode($textmode, $untilTag = null) + { + $this->textMode = $textmode & (Elements::TEXT_RAW | Elements::TEXT_RCDATA); + $this->untilTag = $untilTag; + } + + /** + * Consume a character and make a move. + * HTML5 8.2.4.1. + */ + protected function consumeData() + { + $tok = $this->scanner->current(); + + if ('&' === $tok) { + // Character reference + $ref = $this->decodeCharacterReference(); + $this->buffer($ref); + + $tok = $this->scanner->current(); + } + + // Parse tag + if ('<' === $tok) { + // Any buffered text data can go out now. + $this->flushBuffer(); + + $tok = $this->scanner->next(); + + if ('!' === $tok) { + $this->markupDeclaration(); + } elseif ('/' === $tok) { + $this->endTag(); + } elseif ('?' === $tok) { + $this->processingInstruction(); + } elseif (ctype_alpha($tok)) { + $this->tagName(); + } else { + $this->parseError('Illegal tag opening'); + // TODO is this necessary ? + $this->characterData(); + } + + $tok = $this->scanner->current(); + } + + if (false === $tok) { + // Handle end of document + $this->eof(); + } else { + // Parse character + switch ($this->textMode) { + case Elements::TEXT_RAW: + $this->rawText($tok); + break; + + case Elements::TEXT_RCDATA: + $this->rcdata($tok); + break; + + default: + if ('<' === $tok || '&' === $tok) { + break; + } + + // NULL character + if ("\00" === $tok) { + $this->parseError('Received null character.'); + + $this->text .= $tok; + $this->scanner->consume(); + + break; + } + + $this->text .= $this->scanner->charsUntil("<&\0"); + } + } + + return $this->carryOn; + } + + /** + * Parse anything that looks like character data. + * + * Different rules apply based on the current text mode. + * + * @see Elements::TEXT_RAW Elements::TEXT_RCDATA. + */ + protected function characterData() + { + $tok = $this->scanner->current(); + if (false === $tok) { + return false; + } + switch ($this->textMode) { + case Elements::TEXT_RAW: + return $this->rawText($tok); + case Elements::TEXT_RCDATA: + return $this->rcdata($tok); + default: + if ('<' === $tok || '&' === $tok) { + return false; + } + + return $this->text($tok); + } + } + + /** + * This buffers the current token as character data. + * + * @param string $tok The current token. + * + * @return bool + */ + protected function text($tok) + { + // This should never happen... + if (false === $tok) { + return false; + } + + // NULL character + if ("\00" === $tok) { + $this->parseError('Received null character.'); + } + + $this->buffer($tok); + $this->scanner->consume(); + + return true; + } + + /** + * Read text in RAW mode. + * + * @param string $tok The current token. + * + * @return bool + */ + protected function rawText($tok) + { + if (is_null($this->untilTag)) { + return $this->text($tok); + } + + $sequence = 'untilTag . '>'; + $txt = $this->readUntilSequence($sequence); + $this->events->text($txt); + $this->setTextMode(0); + + return $this->endTag(); + } + + /** + * Read text in RCDATA mode. + * + * @param string $tok The current token. + * + * @return bool + */ + protected function rcdata($tok) + { + if (is_null($this->untilTag)) { + return $this->text($tok); + } + + $sequence = 'untilTag; + $txt = ''; + + $caseSensitive = !Elements::isHtml5Element($this->untilTag); + while (false !== $tok && !('<' == $tok && ($this->scanner->sequenceMatches($sequence, $caseSensitive)))) { + if ('&' == $tok) { + $txt .= $this->decodeCharacterReference(); + $tok = $this->scanner->current(); + } else { + $txt .= $tok; + $tok = $this->scanner->next(); + } + } + $len = strlen($sequence); + $this->scanner->consume($len); + $len += $this->scanner->whitespace(); + if ('>' !== $this->scanner->current()) { + $this->parseError('Unclosed RCDATA end tag'); + } + + $this->scanner->unconsume($len); + $this->events->text($txt); + $this->setTextMode(0); + + return $this->endTag(); + } + + /** + * If the document is read, emit an EOF event. + */ + protected function eof() + { + // fprintf(STDOUT, "EOF"); + $this->flushBuffer(); + $this->events->eof(); + $this->carryOn = false; + } + + /** + * Look for markup. + */ + protected function markupDeclaration() + { + $tok = $this->scanner->next(); + + // Comment: + if ('-' == $tok && '-' == $this->scanner->peek()) { + $this->scanner->consume(2); + + return $this->comment(); + } elseif ('D' == $tok || 'd' == $tok) { // Doctype + return $this->doctype(); + } elseif ('[' == $tok) { // CDATA section + return $this->cdataSection(); + } + + // FINISH + $this->parseError('Expected . Emit an empty comment because 8.2.4.46 says to. + if ('>' == $tok) { + // Parse error. Emit the comment token. + $this->parseError("Expected comment data, got '>'"); + $this->events->comment(''); + $this->scanner->consume(); + + return true; + } + + // Replace NULL with the replacement char. + if ("\0" == $tok) { + $tok = UTF8Utils::FFFD; + } + while (!$this->isCommentEnd()) { + $comment .= $tok; + $tok = $this->scanner->next(); + } + + $this->events->comment($comment); + $this->scanner->consume(); + + return true; + } + + /** + * Check if the scanner has reached the end of a comment. + * + * @return bool + */ + protected function isCommentEnd() + { + $tok = $this->scanner->current(); + + // EOF + if (false === $tok) { + // Hit the end. + $this->parseError('Unexpected EOF in a comment.'); + + return true; + } + + // If next two tokens are not '--', not the end. + if ('-' != $tok || '-' != $this->scanner->peek()) { + return false; + } + + $this->scanner->consume(2); // Consume '-' and one of '!' or '>' + + // Test for '>' + if ('>' == $this->scanner->current()) { + return true; + } + // Test for '!>' + if ('!' == $this->scanner->current() && '>' == $this->scanner->peek()) { + $this->scanner->consume(); // Consume the last '>' + return true; + } + // Unread '-' and one of '!' or '>'; + $this->scanner->unconsume(2); + + return false; + } + + /** + * Parse a DOCTYPE. + * + * Parse a DOCTYPE declaration. This method has strong bearing on whether or + * not Quirksmode is enabled on the event handler. + * + * @todo This method is a little long. Should probably refactor. + * + * @return bool + */ + protected function doctype() + { + // Check that string is DOCTYPE. + if ($this->scanner->sequenceMatches('DOCTYPE', false)) { + $this->scanner->consume(7); + } else { + $chars = $this->scanner->charsWhile('DOCTYPEdoctype'); + $this->parseError('Expected DOCTYPE, got %s', $chars); + + return $this->bogusComment('scanner->whitespace(); + $tok = $this->scanner->current(); + + // EOF: die. + if (false === $tok) { + $this->events->doctype('html5', EventHandler::DOCTYPE_NONE, '', true); + $this->eof(); + + return true; + } + + // NULL char: convert. + if ("\0" === $tok) { + $this->parseError('Unexpected null character in DOCTYPE.'); + } + + $stop = " \n\f>"; + $doctypeName = $this->scanner->charsUntil($stop); + // Lowercase ASCII, replace \0 with FFFD + $doctypeName = strtolower(strtr($doctypeName, "\0", UTF8Utils::FFFD)); + + $tok = $this->scanner->current(); + + // If false, emit a parse error, DOCTYPE, and return. + if (false === $tok) { + $this->parseError('Unexpected EOF in DOCTYPE declaration.'); + $this->events->doctype($doctypeName, EventHandler::DOCTYPE_NONE, null, true); + + return true; + } + + // Short DOCTYPE, like + if ('>' == $tok) { + // DOCTYPE without a name. + if (0 == strlen($doctypeName)) { + $this->parseError('Expected a DOCTYPE name. Got nothing.'); + $this->events->doctype($doctypeName, 0, null, true); + $this->scanner->consume(); + + return true; + } + $this->events->doctype($doctypeName); + $this->scanner->consume(); + + return true; + } + $this->scanner->whitespace(); + + $pub = strtoupper($this->scanner->getAsciiAlpha()); + $white = $this->scanner->whitespace(); + + // Get ID, and flag it as pub or system. + if (('PUBLIC' == $pub || 'SYSTEM' == $pub) && $white > 0) { + // Get the sys ID. + $type = 'PUBLIC' == $pub ? EventHandler::DOCTYPE_PUBLIC : EventHandler::DOCTYPE_SYSTEM; + $id = $this->quotedString("\0>"); + if (false === $id) { + $this->events->doctype($doctypeName, $type, $pub, false); + + return true; + } + + // Premature EOF. + if (false === $this->scanner->current()) { + $this->parseError('Unexpected EOF in DOCTYPE'); + $this->events->doctype($doctypeName, $type, $id, true); + + return true; + } + + // Well-formed complete DOCTYPE. + $this->scanner->whitespace(); + if ('>' == $this->scanner->current()) { + $this->events->doctype($doctypeName, $type, $id, false); + $this->scanner->consume(); + + return true; + } + + // If we get here, we have scanner->charsUntil('>'); + $this->parseError('Malformed DOCTYPE.'); + $this->events->doctype($doctypeName, $type, $id, true); + $this->scanner->consume(); + + return true; + } + + // Else it's a bogus DOCTYPE. + // Consume to > and trash. + $this->scanner->charsUntil('>'); + + $this->parseError('Expected PUBLIC or SYSTEM. Got %s.', $pub); + $this->events->doctype($doctypeName, 0, null, true); + $this->scanner->consume(); + + return true; + } + + /** + * Utility for reading a quoted string. + * + * @param string $stopchars Characters (in addition to a close-quote) that should stop the string. + * E.g. sometimes '>' is higher precedence than '"' or "'". + * + * @return mixed String if one is found (quotations omitted). + */ + protected function quotedString($stopchars) + { + $tok = $this->scanner->current(); + if ('"' == $tok || "'" == $tok) { + $this->scanner->consume(); + $ret = $this->scanner->charsUntil($tok . $stopchars); + if ($this->scanner->current() == $tok) { + $this->scanner->consume(); + } else { + // Parse error because no close quote. + $this->parseError('Expected %s, got %s', $tok, $this->scanner->current()); + } + + return $ret; + } + + return false; + } + + /** + * Handle a CDATA section. + * + * @return bool + */ + protected function cdataSection() + { + $cdata = ''; + $this->scanner->consume(); + + $chars = $this->scanner->charsWhile('CDAT'); + if ('CDATA' != $chars || '[' != $this->scanner->current()) { + $this->parseError('Expected [CDATA[, got %s', $chars); + + return $this->bogusComment('scanner->next(); + do { + if (false === $tok) { + $this->parseError('Unexpected EOF inside CDATA.'); + $this->bogusComment('scanner->next(); + } while (!$this->scanner->sequenceMatches(']]>')); + + // Consume ]]> + $this->scanner->consume(3); + + $this->events->cdata($cdata); + + return true; + } + + // ================================================================ + // Non-HTML5 + // ================================================================ + + /** + * Handle a processing instruction. + * + * XML processing instructions are supposed to be ignored in HTML5, + * treated as "bogus comments". However, since we're not a user + * agent, we allow them. We consume until ?> and then issue a + * EventListener::processingInstruction() event. + * + * @return bool + */ + protected function processingInstruction() + { + if ('?' != $this->scanner->current()) { + return false; + } + + $tok = $this->scanner->next(); + $procName = $this->scanner->getAsciiAlpha(); + $white = $this->scanner->whitespace(); + + // If not a PI, send to bogusComment. + if (0 == strlen($procName) || 0 == $white || false == $this->scanner->current()) { + $this->parseError("Expected processing instruction name, got $tok"); + $this->bogusComment('. + while (!('?' == $this->scanner->current() && '>' == $this->scanner->peek())) { + $data .= $this->scanner->current(); + + $tok = $this->scanner->next(); + if (false === $tok) { + $this->parseError('Unexpected EOF in processing instruction.'); + $this->events->processingInstruction($procName, $data); + + return true; + } + } + + $this->scanner->consume(2); // Consume the closing tag + $this->events->processingInstruction($procName, $data); + + return true; + } + + // ================================================================ + // UTILITY FUNCTIONS + // ================================================================ + + /** + * Read from the input stream until we get to the desired sequene + * or hit the end of the input stream. + * + * @param string $sequence + * + * @return string + */ + protected function readUntilSequence($sequence) + { + $buffer = ''; + + // Optimization for reading larger blocks faster. + $first = substr($sequence, 0, 1); + while (false !== $this->scanner->current()) { + $buffer .= $this->scanner->charsUntil($first); + + // Stop as soon as we hit the stopping condition. + if ($this->scanner->sequenceMatches($sequence, false)) { + return $buffer; + } + $buffer .= $this->scanner->current(); + $this->scanner->consume(); + } + + // If we get here, we hit the EOF. + $this->parseError('Unexpected EOF during text read.'); + + return $buffer; + } + + /** + * Check if upcomming chars match the given sequence. + * + * This will read the stream for the $sequence. If it's + * found, this will return true. If not, return false. + * Since this unconsumes any chars it reads, the caller + * will still need to read the next sequence, even if + * this returns true. + * + * Example: $this->scanner->sequenceMatches('') will + * see if the input stream is at the start of a + * '' string. + * + * @param string $sequence + * @param bool $caseSensitive + * + * @return bool + */ + protected function sequenceMatches($sequence, $caseSensitive = true) + { + @trigger_error(__METHOD__ . ' method is deprecated since version 2.4 and will be removed in 3.0. Use Scanner::sequenceMatches() instead.', E_USER_DEPRECATED); + + return $this->scanner->sequenceMatches($sequence, $caseSensitive); + } + + /** + * Send a TEXT event with the contents of the text buffer. + * + * This emits an EventHandler::text() event with the current contents of the + * temporary text buffer. (The buffer is used to group as much PCDATA + * as we can instead of emitting lots and lots of TEXT events.) + */ + protected function flushBuffer() + { + if ('' === $this->text) { + return; + } + $this->events->text($this->text); + $this->text = ''; + } + + /** + * Add text to the temporary buffer. + * + * @see flushBuffer() + * + * @param string $str + */ + protected function buffer($str) + { + $this->text .= $str; + } + + /** + * Emit a parse error. + * + * A parse error always returns false because it never consumes any + * characters. + * + * @param string $msg + * + * @return string + */ + protected function parseError($msg) + { + $args = func_get_args(); + + if (count($args) > 1) { + array_shift($args); + $msg = vsprintf($msg, $args); + } + + $line = $this->scanner->currentLine(); + $col = $this->scanner->columnOffset(); + $this->events->parseError($msg, $line, $col); + + return false; + } + + /** + * Decode a character reference and return the string. + * + * If $inAttribute is set to true, a bare & will be returned as-is. + * + * @param bool $inAttribute Set to true if the text is inside of an attribute value. + * false otherwise. + * + * @return string + */ + protected function decodeCharacterReference($inAttribute = false) + { + // Next char after &. + $tok = $this->scanner->next(); + $start = $this->scanner->position(); + + if (false === $tok) { + return '&'; + } + + // These indicate not an entity. We return just + // the &. + if ("\t" === $tok || "\n" === $tok || "\f" === $tok || ' ' === $tok || '&' === $tok || '<' === $tok) { + // $this->scanner->next(); + return '&'; + } + + // Numeric entity + if ('#' === $tok) { + $tok = $this->scanner->next(); + + if (false === $tok) { + $this->parseError('Expected &#DEC; &#HEX;, got EOF'); + $this->scanner->unconsume(1); + + return '&'; + } + + // Hexidecimal encoding. + // X[0-9a-fA-F]+; + // x[0-9a-fA-F]+; + if ('x' === $tok || 'X' === $tok) { + $tok = $this->scanner->next(); // Consume x + + // Convert from hex code to char. + $hex = $this->scanner->getHex(); + if (empty($hex)) { + $this->parseError('Expected &#xHEX;, got &#x%s', $tok); + // We unconsume because we don't know what parser rules might + // be in effect for the remaining chars. For example. '&#>' + // might result in a specific parsing rule inside of tag + // contexts, while not inside of pcdata context. + $this->scanner->unconsume(2); + + return '&'; + } + $entity = CharacterReference::lookupHex($hex); + } // Decimal encoding. + // [0-9]+; + else { + // Convert from decimal to char. + $numeric = $this->scanner->getNumeric(); + if (false === $numeric) { + $this->parseError('Expected &#DIGITS;, got &#%s', $tok); + $this->scanner->unconsume(2); + + return '&'; + } + $entity = CharacterReference::lookupDecimal($numeric); + } + } elseif ('=' === $tok && $inAttribute) { + return '&'; + } else { // String entity. + // Attempt to consume a string up to a ';'. + // [a-zA-Z0-9]+; + $cname = $this->scanner->getAsciiAlphaNum(); + $entity = CharacterReference::lookupName($cname); + + // When no entity is found provide the name of the unmatched string + // and continue on as the & is not part of an entity. The & will + // be converted to & elsewhere. + if (null === $entity) { + if (!$inAttribute || '' === $cname) { + $this->parseError("No match in entity table for '%s'", $cname); + } + $this->scanner->unconsume($this->scanner->position() - $start); + + return '&'; + } + } + + // The scanner has advanced the cursor for us. + $tok = $this->scanner->current(); + + // We have an entity. We're done here. + if (';' === $tok) { + $this->scanner->consume(); + + return $entity; + } + + // Failing to match ; means unconsume the entire string. + $this->scanner->unconsume($this->scanner->position() - $start); + + $this->parseError('Expected &ENTITY;, got &ENTITY%s (no trailing ;) ', $tok); + + return '&'; + } +} diff --git a/public_html/2022/newcms/lib/vendor/masterminds/html5/src/HTML5/Parser/TreeBuildingRules.php b/public_html/2022/newcms/lib/vendor/masterminds/html5/src/HTML5/Parser/TreeBuildingRules.php new file mode 100644 index 0000000..00d3951 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/masterminds/html5/src/HTML5/Parser/TreeBuildingRules.php @@ -0,0 +1,127 @@ + 1, + 'dd' => 1, + 'dt' => 1, + 'rt' => 1, + 'rp' => 1, + 'tr' => 1, + 'th' => 1, + 'td' => 1, + 'thead' => 1, + 'tfoot' => 1, + 'tbody' => 1, + 'table' => 1, + 'optgroup' => 1, + 'option' => 1, + ); + + /** + * Returns true if the given tagname has special processing rules. + */ + public function hasRules($tagname) + { + return isset(static::$tags[$tagname]); + } + + /** + * Evaluate the rule for the current tag name. + * + * This may modify the existing DOM. + * + * @return \DOMElement The new Current DOM element. + */ + public function evaluate($new, $current) + { + switch ($new->tagName) { + case 'li': + return $this->handleLI($new, $current); + case 'dt': + case 'dd': + return $this->handleDT($new, $current); + case 'rt': + case 'rp': + return $this->handleRT($new, $current); + case 'optgroup': + return $this->closeIfCurrentMatches($new, $current, array( + 'optgroup', + )); + case 'option': + return $this->closeIfCurrentMatches($new, $current, array( + 'option', + )); + case 'tr': + return $this->closeIfCurrentMatches($new, $current, array( + 'tr', + )); + case 'td': + case 'th': + return $this->closeIfCurrentMatches($new, $current, array( + 'th', + 'td', + )); + case 'tbody': + case 'thead': + case 'tfoot': + case 'table': // Spec isn't explicit about this, but it's necessary. + + return $this->closeIfCurrentMatches($new, $current, array( + 'thead', + 'tfoot', + 'tbody', + )); + } + + return $current; + } + + protected function handleLI($ele, $current) + { + return $this->closeIfCurrentMatches($ele, $current, array( + 'li', + )); + } + + protected function handleDT($ele, $current) + { + return $this->closeIfCurrentMatches($ele, $current, array( + 'dt', + 'dd', + )); + } + + protected function handleRT($ele, $current) + { + return $this->closeIfCurrentMatches($ele, $current, array( + 'rt', + 'rp', + )); + } + + protected function closeIfCurrentMatches($ele, $current, $match) + { + if (in_array($current->tagName, $match, true)) { + $current->parentNode->appendChild($ele); + } else { + $current->appendChild($ele); + } + + return $ele; + } +} diff --git a/public_html/2022/newcms/lib/vendor/masterminds/html5/src/HTML5/Parser/UTF8Utils.php b/public_html/2022/newcms/lib/vendor/masterminds/html5/src/HTML5/Parser/UTF8Utils.php new file mode 100644 index 0000000..f6a70bf --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/masterminds/html5/src/HTML5/Parser/UTF8Utils.php @@ -0,0 +1,183 @@ + + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + +use Masterminds\HTML5\Exception; + +class UTF8Utils +{ + /** + * The Unicode replacement character. + */ + const FFFD = "\xEF\xBF\xBD"; + + /** + * Count the number of characters in a string. + * UTF-8 aware. This will try (in order) iconv, MB, libxml, and finally a custom counter. + * + * @param string $string + * + * @return int + */ + public static function countChars($string) + { + // Get the length for the string we need. + if (function_exists('mb_strlen')) { + return mb_strlen($string, 'utf-8'); + } + + if (function_exists('iconv_strlen')) { + return iconv_strlen($string, 'utf-8'); + } + + if (function_exists('utf8_decode')) { + // MPB: Will this work? Won't certain decodes lead to two chars + // extrapolated out of 2-byte chars? + return strlen(utf8_decode($string)); + } + + $count = count_chars($string); + + // 0x80 = 0x7F - 0 + 1 (one added to get inclusive range) + // 0x33 = 0xF4 - 0x2C + 1 (one added to get inclusive range) + return array_sum(array_slice($count, 0, 0x80)) + array_sum(array_slice($count, 0xC2, 0x33)); + } + + /** + * Convert data from the given encoding to UTF-8. + * + * This has not yet been tested with charactersets other than UTF-8. + * It should work with ISO-8859-1/-13 and standard Latin Win charsets. + * + * @param string $data The data to convert + * @param string $encoding A valid encoding. Examples: http://www.php.net/manual/en/mbstring.supported-encodings.php + * + * @return string + */ + public static function convertToUTF8($data, $encoding = 'UTF-8') + { + /* + * From the HTML5 spec: Given an encoding, the bytes in the input stream must be converted + * to Unicode characters for the tokeniser, as described by the rules for that encoding, + * except that the leading U+FEFF BYTE ORDER MARK character, if any, must not be stripped + * by the encoding layer (it is stripped by the rule below). Bytes or sequences of bytes + * in the original byte stream that could not be converted to Unicode characters must be + * converted to U+FFFD REPLACEMENT CHARACTER code points. + */ + + // mb_convert_encoding is chosen over iconv because of a bug. The best + // details for the bug are on http://us1.php.net/manual/en/function.iconv.php#108643 + // which contains links to the actual but reports as well as work around + // details. + if (function_exists('mb_convert_encoding')) { + // mb library has the following behaviors: + // - UTF-16 surrogates result in false. + // - Overlongs and outside Plane 16 result in empty strings. + + // Before we run mb_convert_encoding we need to tell it what to do with + // characters it does not know. This could be different than the parent + // application executing this library so we store the value, change it + // to our needs, and then change it back when we are done. This feels + // a little excessive and it would be great if there was a better way. + $save = mb_substitute_character(); + mb_substitute_character('none'); + $data = mb_convert_encoding($data, 'UTF-8', $encoding); + mb_substitute_character($save); + } + // @todo Get iconv running in at least some environments if that is possible. + elseif (function_exists('iconv') && 'auto' !== $encoding) { + // fprintf(STDOUT, "iconv found\n"); + // iconv has the following behaviors: + // - Overlong representations are ignored. + // - Beyond Plane 16 is replaced with a lower char. + // - Incomplete sequences generate a warning. + $data = @iconv($encoding, 'UTF-8//IGNORE', $data); + } else { + throw new Exception('Not implemented, please install mbstring or iconv'); + } + + /* + * One leading U+FEFF BYTE ORDER MARK character must be ignored if any are present. + */ + if ("\xEF\xBB\xBF" === substr($data, 0, 3)) { + $data = substr($data, 3); + } + + return $data; + } + + /** + * Checks for Unicode code points that are not valid in a document. + * + * @param string $data A string to analyze + * + * @return array An array of (string) error messages produced by the scanning + */ + public static function checkForIllegalCodepoints($data) + { + // Vestigal error handling. + $errors = array(); + + /* + * All U+0000 null characters in the input must be replaced by U+FFFD REPLACEMENT CHARACTERs. + * Any occurrences of such characters is a parse error. + */ + for ($i = 0, $count = substr_count($data, "\0"); $i < $count; ++$i) { + $errors[] = 'null-character'; + } + + /* + * Any occurrences of any characters in the ranges U+0001 to U+0008, U+000B, U+000E to U+001F, U+007F + * to U+009F, U+D800 to U+DFFF , U+FDD0 to U+FDEF, and characters U+FFFE, U+FFFF, U+1FFFE, U+1FFFF, + * U+2FFFE, U+2FFFF, U+3FFFE, U+3FFFF, U+4FFFE, U+4FFFF, U+5FFFE, U+5FFFF, U+6FFFE, U+6FFFF, U+7FFFE, + * U+7FFFF, U+8FFFE, U+8FFFF, U+9FFFE, U+9FFFF, U+AFFFE, U+AFFFF, U+BFFFE, U+BFFFF, U+CFFFE, U+CFFFF, + * U+DFFFE, U+DFFFF, U+EFFFE, U+EFFFF, U+FFFFE, U+FFFFF, U+10FFFE, and U+10FFFF are parse errors. + * (These are all control characters or permanently undefined Unicode characters.) + */ + // Check PCRE is loaded. + $count = preg_match_all( + '/(?: + [\x01-\x08\x0B\x0E-\x1F\x7F] # U+0001 to U+0008, U+000B, U+000E to U+001F and U+007F + | + \xC2[\x80-\x9F] # U+0080 to U+009F + | + \xED(?:\xA0[\x80-\xFF]|[\xA1-\xBE][\x00-\xFF]|\xBF[\x00-\xBF]) # U+D800 to U+DFFFF + | + \xEF\xB7[\x90-\xAF] # U+FDD0 to U+FDEF + | + \xEF\xBF[\xBE\xBF] # U+FFFE and U+FFFF + | + [\xF0-\xF4][\x8F-\xBF]\xBF[\xBE\xBF] # U+nFFFE and U+nFFFF (1 <= n <= 10_{16}) + )/x', $data, $matches); + for ($i = 0; $i < $count; ++$i) { + $errors[] = 'invalid-codepoint'; + } + + return $errors; + } +} diff --git a/public_html/2022/newcms/lib/vendor/masterminds/html5/src/HTML5/Serializer/HTML5Entities.php b/public_html/2022/newcms/lib/vendor/masterminds/html5/src/HTML5/Serializer/HTML5Entities.php new file mode 100644 index 0000000..e9421a1 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/masterminds/html5/src/HTML5/Serializer/HTML5Entities.php @@ -0,0 +1,1533 @@ + ' ', + "\n" => ' ', + '!' => '!', + '"' => '"', + '#' => '#', + '$' => '$', + '%' => '%', + '&' => '&', + '\'' => ''', + '(' => '(', + ')' => ')', + '*' => '*', + '+' => '+', + ',' => ',', + '.' => '.', + '/' => '/', + ':' => ':', + ';' => ';', + '<' => '<', + '<⃒' => '&nvlt', + '=' => '=', + '=⃥' => '&bne', + '>' => '>', + '>⃒' => '&nvgt', + '?' => '?', + '@' => '@', + '[' => '[', + '\\' => '\', + ']' => ']', + '^' => '^', + '_' => '_', + '`' => '`', + 'fj' => '&fjlig', + '{' => '{', + '|' => '|', + '}' => '}', + ' ' => ' ', + '¡' => '¡', + '¢' => '¢', + '£' => '£', + '¤' => '¤', + 'Â¥' => '¥', + '¦' => '¦', + '§' => '§', + '¨' => '¨', + '©' => '©', + 'ª' => 'ª', + '«' => '«', + '¬' => '¬', + '­' => '­', + '®' => '®', + '¯' => '¯', + '°' => '°', + '±' => '±', + '²' => '²', + '³' => '³', + '´' => '´', + 'µ' => 'µ', + '¶' => '¶', + '·' => '·', + '¸' => '¸', + '¹' => '¹', + 'º' => 'º', + '»' => '»', + '¼' => '¼', + '½' => '½', + '¾' => '¾', + '¿' => '¿', + 'À' => 'À', + 'Á' => 'Á', + 'Â' => 'Â', + 'Ã' => 'Ã', + 'Ä' => 'Ä', + 'Å' => 'Å', + 'Æ' => 'Æ', + 'Ç' => 'Ç', + 'È' => 'È', + 'É' => 'É', + 'Ê' => 'Ê', + 'Ë' => 'Ë', + 'Ì' => 'Ì', + 'Í' => 'Í', + 'Î' => 'Î', + 'Ï' => 'Ï', + 'Ð' => 'Ð', + 'Ñ' => 'Ñ', + 'Ò' => 'Ò', + 'Ó' => 'Ó', + 'Ô' => 'Ô', + 'Õ' => 'Õ', + 'Ö' => 'Ö', + '×' => '×', + 'Ø' => 'Ø', + 'Ù' => 'Ù', + 'Ú' => 'Ú', + 'Û' => 'Û', + 'Ü' => 'Ü', + 'Ý' => 'Ý', + 'Þ' => 'Þ', + 'ß' => 'ß', + 'à' => 'à', + 'á' => 'á', + 'â' => 'â', + 'ã' => 'ã', + 'ä' => 'ä', + 'Ã¥' => 'å', + 'æ' => 'æ', + 'ç' => 'ç', + 'è' => 'è', + 'é' => 'é', + 'ê' => 'ê', + 'ë' => 'ë', + 'ì' => 'ì', + 'í' => 'í', + 'î' => 'î', + 'ï' => 'ï', + 'ð' => 'ð', + 'ñ' => 'ñ', + 'ò' => 'ò', + 'ó' => 'ó', + 'ô' => 'ô', + 'õ' => 'õ', + 'ö' => 'ö', + '÷' => '÷', + 'ø' => 'ø', + 'ù' => 'ù', + 'ú' => 'ú', + 'û' => 'û', + 'ü' => 'ü', + 'ý' => 'ý', + 'þ' => 'þ', + 'ÿ' => 'ÿ', + 'Ā' => 'Ā', + 'ā' => 'ā', + 'Ă' => 'Ă', + 'ă' => 'ă', + 'Ą' => 'Ą', + 'ą' => 'ą', + 'Ć' => 'Ć', + 'ć' => 'ć', + 'Ĉ' => 'Ĉ', + 'ĉ' => 'ĉ', + 'Ċ' => 'Ċ', + 'ċ' => 'ċ', + 'Č' => 'Č', + 'č' => 'č', + 'Ď' => 'Ď', + 'ď' => 'ď', + 'Đ' => 'Đ', + 'đ' => 'đ', + 'Ē' => 'Ē', + 'ē' => 'ē', + 'Ė' => 'Ė', + 'ė' => 'ė', + 'Ę' => 'Ę', + 'ę' => 'ę', + 'Ě' => 'Ě', + 'ě' => 'ě', + 'Ĝ' => 'Ĝ', + 'ĝ' => 'ĝ', + 'Ğ' => 'Ğ', + 'ğ' => 'ğ', + 'Ä ' => 'Ġ', + 'Ä¡' => 'ġ', + 'Ä¢' => 'Ģ', + 'Ĥ' => 'Ĥ', + 'Ä¥' => 'ĥ', + 'Ħ' => 'Ħ', + 'ħ' => 'ħ', + 'Ĩ' => 'Ĩ', + 'Ä©' => 'ĩ', + 'Ī' => 'Ī', + 'Ä«' => 'ī', + 'Ä®' => 'Į', + 'į' => 'į', + 'İ' => 'İ', + 'ı' => 'ı', + 'IJ' => 'IJ', + 'ij' => 'ij', + 'Ä´' => 'Ĵ', + 'ĵ' => 'ĵ', + 'Ķ' => 'Ķ', + 'Ä·' => 'ķ', + 'ĸ' => 'ĸ', + 'Ĺ' => 'Ĺ', + 'ĺ' => 'ĺ', + 'Ä»' => 'Ļ', + 'ļ' => 'ļ', + 'Ľ' => 'Ľ', + 'ľ' => 'ľ', + 'Ä¿' => 'Ŀ', + 'ŀ' => 'ŀ', + 'Ł' => 'Ł', + 'ł' => 'ł', + 'Ń' => 'Ń', + 'ń' => 'ń', + 'Ņ' => 'Ņ', + 'ņ' => 'ņ', + 'Ň' => 'Ň', + 'ň' => 'ň', + 'ʼn' => 'ʼn', + 'Ŋ' => 'Ŋ', + 'ŋ' => 'ŋ', + 'Ō' => 'Ō', + 'ō' => 'ō', + 'Ő' => 'Ő', + 'ő' => 'ő', + 'Œ' => 'Œ', + 'œ' => 'œ', + 'Ŕ' => 'Ŕ', + 'ŕ' => 'ŕ', + 'Ŗ' => 'Ŗ', + 'ŗ' => 'ŗ', + 'Ř' => 'Ř', + 'ř' => 'ř', + 'Ś' => 'Ś', + 'ś' => 'ś', + 'Ŝ' => 'Ŝ', + 'ŝ' => 'ŝ', + 'Ş' => 'Ş', + 'ş' => 'ş', + 'Å ' => 'Š', + 'Å¡' => 'š', + 'Å¢' => 'Ţ', + 'Å£' => 'ţ', + 'Ť' => 'Ť', + 'Å¥' => 'ť', + 'Ŧ' => 'Ŧ', + 'ŧ' => 'ŧ', + 'Ũ' => 'Ũ', + 'Å©' => 'ũ', + 'Ū' => 'Ū', + 'Å«' => 'ū', + 'Ŭ' => 'Ŭ', + 'Å­' => 'ŭ', + 'Å®' => 'Ů', + 'ů' => 'ů', + 'Ű' => 'Ű', + 'ű' => 'ű', + 'Ų' => 'Ų', + 'ų' => 'ų', + 'Å´' => 'Ŵ', + 'ŵ' => 'ŵ', + 'Ŷ' => 'Ŷ', + 'Å·' => 'ŷ', + 'Ÿ' => 'Ÿ', + 'Ź' => 'Ź', + 'ź' => 'ź', + 'Å»' => 'Ż', + 'ż' => 'ż', + 'Ž' => 'Ž', + 'ž' => 'ž', + 'ƒ' => 'ƒ', + 'Ƶ' => 'Ƶ', + 'ǵ' => 'ǵ', + 'È·' => 'ȷ', + 'ˆ' => 'ˆ', + 'ˇ' => 'ˇ', + '˘' => '˘', + '˙' => '˙', + '˚' => '˚', + '˛' => '˛', + '˜' => '˜', + '˝' => '˝', + '̑' => '̑', + 'Α' => 'Α', + 'Β' => 'Β', + 'Γ' => 'Γ', + 'Δ' => 'Δ', + 'Ε' => 'Ε', + 'Ζ' => 'Ζ', + 'Η' => 'Η', + 'Θ' => 'Θ', + 'Ι' => 'Ι', + 'Κ' => 'Κ', + 'Λ' => 'Λ', + 'Μ' => 'Μ', + 'Ν' => 'Ν', + 'Ξ' => 'Ξ', + 'Ο' => 'Ο', + 'Π' => 'Π', + 'Ρ' => 'Ρ', + 'Σ' => 'Σ', + 'Τ' => 'Τ', + 'Î¥' => 'Υ', + 'Φ' => 'Φ', + 'Χ' => 'Χ', + 'Ψ' => 'Ψ', + 'Ω' => 'Ω', + 'α' => 'α', + 'β' => 'β', + 'γ' => 'γ', + 'δ' => 'δ', + 'ε' => 'ε', + 'ζ' => 'ζ', + 'η' => 'η', + 'θ' => 'θ', + 'ι' => 'ι', + 'κ' => 'κ', + 'λ' => 'λ', + 'μ' => 'μ', + 'ν' => 'ν', + 'ξ' => 'ξ', + 'ο' => 'ο', + 'π' => 'π', + 'ρ' => 'ρ', + 'ς' => 'ς', + 'σ' => 'σ', + 'τ' => 'τ', + 'υ' => 'υ', + 'φ' => 'φ', + 'χ' => 'χ', + 'ψ' => 'ψ', + 'ω' => 'ω', + 'ϑ' => 'ϑ', + 'ϒ' => 'ϒ', + 'ϕ' => 'ϕ', + 'ϖ' => 'ϖ', + 'Ϝ' => 'Ϝ', + 'ϝ' => 'ϝ', + 'ϰ' => 'ϰ', + 'ϱ' => 'ϱ', + 'ϵ' => 'ϵ', + '϶' => '϶', + 'Ё' => 'Ё', + 'Ђ' => 'Ђ', + 'Ѓ' => 'Ѓ', + 'Є' => 'Є', + 'Ѕ' => 'Ѕ', + 'І' => 'І', + 'Ї' => 'Ї', + 'Ј' => 'Ј', + 'Љ' => 'Љ', + 'Њ' => 'Њ', + 'Ћ' => 'Ћ', + 'Ќ' => 'Ќ', + 'Ў' => 'Ў', + 'Џ' => 'Џ', + 'А' => 'А', + 'Б' => 'Б', + 'В' => 'В', + 'Г' => 'Г', + 'Д' => 'Д', + 'Е' => 'Е', + 'Ж' => 'Ж', + 'З' => 'З', + 'И' => 'И', + 'Й' => 'Й', + 'К' => 'К', + 'Л' => 'Л', + 'М' => 'М', + 'Н' => 'Н', + 'О' => 'О', + 'П' => 'П', + 'Р' => 'Р', + 'С' => 'С', + 'Т' => 'Т', + 'У' => 'У', + 'Ф' => 'Ф', + 'Ð¥' => 'Х', + 'Ц' => 'Ц', + 'Ч' => 'Ч', + 'Ш' => 'Ш', + 'Щ' => 'Щ', + 'Ъ' => 'Ъ', + 'Ы' => 'Ы', + 'Ь' => 'Ь', + 'Э' => 'Э', + 'Ю' => 'Ю', + 'Я' => 'Я', + 'а' => 'а', + 'б' => 'б', + 'в' => 'в', + 'г' => 'г', + 'д' => 'д', + 'е' => 'е', + 'ж' => 'ж', + 'з' => 'з', + 'и' => 'и', + 'й' => 'й', + 'к' => 'к', + 'л' => 'л', + 'м' => 'м', + 'н' => 'н', + 'о' => 'о', + 'п' => 'п', + 'р' => 'р', + 'с' => 'с', + 'т' => 'т', + 'у' => 'у', + 'ф' => 'ф', + 'х' => 'х', + 'ц' => 'ц', + 'ч' => 'ч', + 'ш' => 'ш', + 'щ' => 'щ', + 'ъ' => 'ъ', + 'ы' => 'ы', + 'ь' => 'ь', + 'э' => 'э', + 'ю' => 'ю', + 'я' => 'я', + 'ё' => 'ё', + 'ђ' => 'ђ', + 'ѓ' => 'ѓ', + 'є' => 'є', + 'ѕ' => 'ѕ', + 'і' => 'і', + 'ї' => 'ї', + 'ј' => 'ј', + 'љ' => 'љ', + 'њ' => 'њ', + 'ћ' => 'ћ', + 'ќ' => 'ќ', + 'ў' => 'ў', + 'џ' => 'џ', + ' ' => ' ', + ' ' => ' ', + ' ' => ' ', + ' ' => ' ', + ' ' => ' ', + ' ' => ' ', + ' ' => ' ', + ' ' => ' ', + '​' => '​', + '‌' => '‌', + '‍' => '‍', + '‎' => '‎', + '‏' => '‏', + '‐' => '‐', + '–' => '–', + '—' => '—', + '―' => '―', + '‖' => '‖', + '‘' => '‘', + '’' => '’', + '‚' => '‚', + '“' => '“', + '”' => '”', + '„' => '„', + '†' => '†', + '‡' => '‡', + '•' => '•', + '‥' => '‥', + '…' => '…', + '‰' => '‰', + '‱' => '‱', + '′' => '′', + '″' => '″', + '‴' => '‴', + '‵' => '‵', + '‹' => '‹', + '›' => '›', + '‾' => '‾', + '⁁' => '⁁', + '⁃' => '⁃', + '⁄' => '⁄', + '⁏' => '⁏', + '⁗' => '⁗', + ' ' => ' ', + '  ' => '&ThickSpace', + '⁠' => '⁠', + '⁡' => '⁡', + '⁢' => '⁢', + '⁣' => '⁣', + '€' => '€', + '⃛' => '⃛', + '⃜' => '⃜', + 'ℂ' => 'ℂ', + '℅' => '℅', + 'ℊ' => 'ℊ', + 'ℋ' => 'ℋ', + 'ℌ' => 'ℌ', + 'ℍ' => 'ℍ', + 'ℎ' => 'ℎ', + 'ℏ' => 'ℏ', + 'ℐ' => 'ℐ', + 'ℑ' => 'ℑ', + 'ℒ' => 'ℒ', + 'ℓ' => 'ℓ', + 'ℕ' => 'ℕ', + '№' => '№', + '℗' => '℗', + '℘' => '℘', + 'ℙ' => 'ℙ', + 'ℚ' => 'ℚ', + 'ℛ' => 'ℛ', + 'ℜ' => 'ℜ', + 'ℝ' => 'ℝ', + '℞' => '℞', + '™' => '™', + 'ℤ' => 'ℤ', + '℧' => '℧', + 'ℨ' => 'ℨ', + '℩' => '℩', + 'ℬ' => 'ℬ', + 'ℭ' => 'ℭ', + 'ℯ' => 'ℯ', + 'ℰ' => 'ℰ', + 'ℱ' => 'ℱ', + 'ℳ' => 'ℳ', + 'ℴ' => 'ℴ', + 'ℵ' => 'ℵ', + 'ℶ' => 'ℶ', + 'ℷ' => 'ℷ', + 'ℸ' => 'ℸ', + 'ⅅ' => 'ⅅ', + 'ⅆ' => 'ⅆ', + 'ⅇ' => 'ⅇ', + 'ⅈ' => 'ⅈ', + '⅓' => '⅓', + '⅔' => '⅔', + '⅕' => '⅕', + '⅖' => '⅖', + '⅗' => '⅗', + '⅘' => '⅘', + '⅙' => '⅙', + '⅚' => '⅚', + '⅛' => '⅛', + '⅜' => '⅜', + '⅝' => '⅝', + '⅞' => '⅞', + '←' => '←', + '↑' => '↑', + '→' => '→', + '↓' => '↓', + '↔' => '↔', + '↕' => '↕', + '↖' => '↖', + '↗' => '↗', + '↘' => '↘', + '↙' => '↙', + '↚' => '↚', + '↛' => '↛', + '↝' => '↝', + '↝̸' => '&nrarrw', + '↞' => '↞', + '↟' => '↟', + '↠' => '↠', + '↡' => '↡', + '↢' => '↢', + '↣' => '↣', + '↤' => '↤', + '↥' => '↥', + '↦' => '↦', + '↧' => '↧', + '↩' => '↩', + '↪' => '↪', + '↫' => '↫', + '↬' => '↬', + '↭' => '↭', + '↮' => '↮', + '↰' => '↰', + '↱' => '↱', + '↲' => '↲', + '↳' => '↳', + '↵' => '↵', + '↶' => '↶', + '↷' => '↷', + '↺' => '↺', + '↻' => '↻', + '↼' => '↼', + '↽' => '↽', + '↾' => '↾', + '↿' => '↿', + '⇀' => '⇀', + '⇁' => '⇁', + '⇂' => '⇂', + '⇃' => '⇃', + '⇄' => '⇄', + '⇅' => '⇅', + '⇆' => '⇆', + '⇇' => '⇇', + '⇈' => '⇈', + '⇉' => '⇉', + '⇊' => '⇊', + '⇋' => '⇋', + '⇌' => '⇌', + '⇍' => '⇍', + '⇎' => '⇎', + '⇏' => '⇏', + '⇐' => '⇐', + '⇑' => '⇑', + '⇒' => '⇒', + '⇓' => '⇓', + '⇔' => '⇔', + '⇕' => '⇕', + '⇖' => '⇖', + '⇗' => '⇗', + '⇘' => '⇘', + '⇙' => '⇙', + '⇚' => '⇚', + '⇛' => '⇛', + '⇝' => '⇝', + '⇤' => '⇤', + '⇥' => '⇥', + '⇵' => '⇵', + '⇽' => '⇽', + '⇾' => '⇾', + '⇿' => '⇿', + '∀' => '∀', + '∁' => '∁', + '∂' => '∂', + '∂̸' => '&npart', + '∃' => '∃', + '∄' => '∄', + '∅' => '∅', + '∇' => '∇', + '∈' => '∈', + '∉' => '∉', + '∋' => '∋', + '∌' => '∌', + '∏' => '∏', + '∐' => '∐', + '∑' => '∑', + '−' => '−', + '∓' => '∓', + '∔' => '∔', + '∖' => '∖', + '∗' => '∗', + '∘' => '∘', + '√' => '√', + '∝' => '∝', + '∞' => '∞', + '∟' => '∟', + '∠' => '∠', + '∠⃒' => '&nang', + '∡' => '∡', + '∢' => '∢', + '∣' => '∣', + '∤' => '∤', + '∥' => '∥', + '∦' => '∦', + '∧' => '∧', + '∨' => '∨', + '∩' => '∩', + '∩︀' => '&caps', + '∪' => '∪', + '∪︀' => '&cups', + '∫' => '∫', + '∬' => '∬', + '∭' => '∭', + '∮' => '∮', + '∯' => '∯', + '∰' => '∰', + '∱' => '∱', + '∲' => '∲', + '∳' => '∳', + '∴' => '∴', + '∵' => '∵', + '∶' => '∶', + '∷' => '∷', + '∸' => '∸', + '∺' => '∺', + '∻' => '∻', + '∼' => '∼', + '∼⃒' => '&nvsim', + '∽' => '∽', + '∽̱' => '&race', + '∾' => '∾', + '∾̳' => '&acE', + '∿' => '∿', + '≀' => '≀', + '≁' => '≁', + '≂' => '≂', + '≂̸' => '&nesim', + '≃' => '≃', + '≄' => '≄', + '≅' => '≅', + '≆' => '≆', + '≇' => '≇', + '≈' => '≈', + '≉' => '≉', + '≊' => '≊', + '≋' => '≋', + '≋̸' => '&napid', + '≌' => '≌', + '≍' => '≍', + '≍⃒' => '&nvap', + '≎' => '≎', + '≎̸' => '&nbump', + '≏' => '≏', + '≏̸' => '&nbumpe', + '≐' => '≐', + '≐̸' => '&nedot', + '≑' => '≑', + '≒' => '≒', + '≓' => '≓', + '≔' => '≔', + '≕' => '≕', + '≖' => '≖', + '≗' => '≗', + '≙' => '≙', + '≚' => '≚', + '≜' => '≜', + '≟' => '≟', + '≠' => '≠', + '≡' => '≡', + '≡⃥' => '&bnequiv', + '≢' => '≢', + '≤' => '≤', + '≤⃒' => '&nvle', + '≥' => '≥', + '≥⃒' => '&nvge', + '≦' => '≦', + '≦̸' => '&nlE', + '≧' => '≧', + '≧̸' => '&NotGreaterFullEqual', + '≨' => '≨', + '≨︀' => '&lvertneqq', + '≩' => '≩', + '≩︀' => '&gvertneqq', + '≪' => '≪', + '≪̸' => '&nLtv', + '≪⃒' => '&nLt', + '≫' => '≫', + '≫̸' => '&NotGreaterGreater', + '≫⃒' => '&nGt', + '≬' => '≬', + '≭' => '≭', + '≮' => '≮', + '≯' => '≯', + '≰' => '≰', + '≱' => '≱', + '≲' => '≲', + '≳' => '≳', + '≴' => '≴', + '≵' => '≵', + '≶' => '≶', + '≷' => '≷', + '≸' => '≸', + '≹' => '≹', + '≺' => '≺', + '≻' => '≻', + '≼' => '≼', + '≽' => '≽', + '≾' => '≾', + '≿' => '≿', + '≿̸' => '&NotSucceedsTilde', + '⊀' => '⊀', + '⊁' => '⊁', + '⊂' => '⊂', + '⊂⃒' => '&vnsub', + '⊃' => '⊃', + '⊃⃒' => '&nsupset', + '⊄' => '⊄', + '⊅' => '⊅', + '⊆' => '⊆', + '⊇' => '⊇', + '⊈' => '⊈', + '⊉' => '⊉', + '⊊' => '⊊', + '⊊︀' => '&vsubne', + '⊋' => '⊋', + '⊋︀' => '&vsupne', + '⊍' => '⊍', + '⊎' => '⊎', + '⊏' => '⊏', + '⊏̸' => '&NotSquareSubset', + '⊐' => '⊐', + '⊐̸' => '&NotSquareSuperset', + '⊑' => '⊑', + '⊒' => '⊒', + '⊓' => '⊓', + '⊓︀' => '&sqcaps', + '⊔' => '⊔', + '⊔︀' => '&sqcups', + '⊕' => '⊕', + '⊖' => '⊖', + '⊗' => '⊗', + '⊘' => '⊘', + '⊙' => '⊙', + '⊚' => '⊚', + '⊛' => '⊛', + '⊝' => '⊝', + '⊞' => '⊞', + '⊟' => '⊟', + '⊠' => '⊠', + '⊡' => '⊡', + '⊢' => '⊢', + '⊣' => '⊣', + '⊤' => '⊤', + '⊥' => '⊥', + '⊧' => '⊧', + '⊨' => '⊨', + '⊩' => '⊩', + '⊪' => '⊪', + '⊫' => '⊫', + '⊬' => '⊬', + '⊭' => '⊭', + '⊮' => '⊮', + '⊯' => '⊯', + '⊰' => '⊰', + '⊲' => '⊲', + '⊳' => '⊳', + '⊴' => '⊴', + '⊴⃒' => '&nvltrie', + '⊵' => '⊵', + '⊵⃒' => '&nvrtrie', + '⊶' => '⊶', + '⊷' => '⊷', + '⊸' => '⊸', + '⊹' => '⊹', + '⊺' => '⊺', + '⊻' => '⊻', + '⊽' => '⊽', + '⊾' => '⊾', + '⊿' => '⊿', + '⋀' => '⋀', + '⋁' => '⋁', + '⋂' => '⋂', + '⋃' => '⋃', + '⋄' => '⋄', + '⋅' => '⋅', + '⋆' => '⋆', + '⋇' => '⋇', + '⋈' => '⋈', + '⋉' => '⋉', + '⋊' => '⋊', + '⋋' => '⋋', + '⋌' => '⋌', + '⋍' => '⋍', + '⋎' => '⋎', + '⋏' => '⋏', + '⋐' => '⋐', + '⋑' => '⋑', + '⋒' => '⋒', + '⋓' => '⋓', + '⋔' => '⋔', + '⋕' => '⋕', + '⋖' => '⋖', + '⋗' => '⋗', + '⋘' => '⋘', + '⋘̸' => '&nLl', + '⋙' => '⋙', + '⋙̸' => '&nGg', + '⋚' => '⋚', + '⋚︀' => '&lesg', + '⋛' => '⋛', + '⋛︀' => '&gesl', + '⋞' => '⋞', + '⋟' => '⋟', + '⋠' => '⋠', + '⋡' => '⋡', + '⋢' => '⋢', + '⋣' => '⋣', + '⋦' => '⋦', + '⋧' => '⋧', + '⋨' => '⋨', + '⋩' => '⋩', + '⋪' => '⋪', + '⋫' => '⋫', + '⋬' => '⋬', + '⋭' => '⋭', + '⋮' => '⋮', + '⋯' => '⋯', + '⋰' => '⋰', + '⋱' => '⋱', + '⋲' => '⋲', + '⋳' => '⋳', + '⋴' => '⋴', + '⋵' => '⋵', + '⋵̸' => '¬indot', + '⋶' => '⋶', + '⋷' => '⋷', + '⋹' => '⋹', + '⋹̸' => '¬inE', + '⋺' => '⋺', + '⋻' => '⋻', + '⋼' => '⋼', + '⋽' => '⋽', + '⋾' => '⋾', + '⌅' => '⌅', + '⌆' => '⌆', + '⌈' => '⌈', + '⌉' => '⌉', + '⌊' => '⌊', + '⌋' => '⌋', + '⌌' => '⌌', + '⌍' => '⌍', + '⌎' => '⌎', + '⌏' => '⌏', + '⌐' => '⌐', + '⌒' => '⌒', + '⌓' => '⌓', + '⌕' => '⌕', + '⌖' => '⌖', + '⌜' => '⌜', + '⌝' => '⌝', + '⌞' => '⌞', + '⌟' => '⌟', + '⌢' => '⌢', + '⌣' => '⌣', + '⌭' => '⌭', + '⌮' => '⌮', + '⌶' => '⌶', + '⌽' => '⌽', + '⌿' => '⌿', + '⍼' => '⍼', + '⎰' => '⎰', + '⎱' => '⎱', + '⎴' => '⎴', + '⎵' => '⎵', + '⎶' => '⎶', + '⏜' => '⏜', + '⏝' => '⏝', + '⏞' => '⏞', + '⏟' => '⏟', + '⏢' => '⏢', + '⏧' => '⏧', + '␣' => '␣', + 'Ⓢ' => 'Ⓢ', + '─' => '─', + '│' => '│', + '┌' => '┌', + '┐' => '┐', + '└' => '└', + '┘' => '┘', + '├' => '├', + '┤' => '┤', + '┬' => '┬', + '┴' => '┴', + '┼' => '┼', + '═' => '═', + '║' => '║', + '╒' => '╒', + '╓' => '╓', + '╔' => '╔', + '╕' => '╕', + '╖' => '╖', + '╗' => '╗', + '╘' => '╘', + '╙' => '╙', + '╚' => '╚', + '╛' => '╛', + '╜' => '╜', + '╝' => '╝', + '╞' => '╞', + '╟' => '╟', + '╠' => '╠', + '╡' => '╡', + '╢' => '╢', + '╣' => '╣', + '╤' => '╤', + '╥' => '╥', + '╦' => '╦', + '╧' => '╧', + '╨' => '╨', + '╩' => '╩', + '╪' => '╪', + '╫' => '╫', + '╬' => '╬', + '▀' => '▀', + '▄' => '▄', + '█' => '█', + '░' => '░', + '▒' => '▒', + '▓' => '▓', + '□' => '□', + '▪' => '▪', + '▫' => '▫', + '▭' => '▭', + '▮' => '▮', + '▱' => '▱', + '△' => '△', + '▴' => '▴', + '▵' => '▵', + '▸' => '▸', + '▹' => '▹', + '▽' => '▽', + '▾' => '▾', + '▿' => '▿', + '◂' => '◂', + '◃' => '◃', + '◊' => '◊', + '○' => '○', + '◬' => '◬', + '◯' => '◯', + '◸' => '◸', + '◹' => '◹', + '◺' => '◺', + '◻' => '◻', + '◼' => '◼', + '★' => '★', + '☆' => '☆', + '☎' => '☎', + '♀' => '♀', + '♂' => '♂', + '♠' => '♠', + '♣' => '♣', + '♥' => '♥', + '♦' => '♦', + '♪' => '♪', + '♭' => '♭', + '♮' => '♮', + '♯' => '♯', + '✓' => '✓', + '✗' => '✗', + '✠' => '✠', + '✶' => '✶', + '❘' => '❘', + '❲' => '❲', + '❳' => '❳', + '⟈' => '⟈', + '⟉' => '⟉', + '⟦' => '⟦', + '⟧' => '⟧', + '⟨' => '⟨', + '⟩' => '⟩', + '⟪' => '⟪', + '⟫' => '⟫', + '⟬' => '⟬', + '⟭' => '⟭', + '⟵' => '⟵', + '⟶' => '⟶', + '⟷' => '⟷', + '⟸' => '⟸', + '⟹' => '⟹', + '⟺' => '⟺', + '⟼' => '⟼', + '⟿' => '⟿', + '⤂' => '⤂', + '⤃' => '⤃', + '⤄' => '⤄', + '⤅' => '⤅', + '⤌' => '⤌', + '⤍' => '⤍', + '⤎' => '⤎', + '⤏' => '⤏', + '⤐' => '⤐', + '⤑' => '⤑', + '⤒' => '⤒', + '⤓' => '⤓', + '⤖' => '⤖', + '⤙' => '⤙', + '⤚' => '⤚', + '⤛' => '⤛', + '⤜' => '⤜', + '⤝' => '⤝', + '⤞' => '⤞', + '⤟' => '⤟', + '⤠' => '⤠', + '⤣' => '⤣', + '⤤' => '⤤', + '⤥' => '⤥', + '⤦' => '⤦', + '⤧' => '⤧', + '⤨' => '⤨', + '⤩' => '⤩', + '⤪' => '⤪', + '⤳' => '⤳', + '⤳̸' => '&nrarrc', + '⤵' => '⤵', + '⤶' => '⤶', + '⤷' => '⤷', + '⤸' => '⤸', + '⤹' => '⤹', + '⤼' => '⤼', + '⤽' => '⤽', + '⥅' => '⥅', + '⥈' => '⥈', + '⥉' => '⥉', + '⥊' => '⥊', + '⥋' => '⥋', + '⥎' => '⥎', + '⥏' => '⥏', + '⥐' => '⥐', + '⥑' => '⥑', + '⥒' => '⥒', + '⥓' => '⥓', + '⥔' => '⥔', + '⥕' => '⥕', + '⥖' => '⥖', + '⥗' => '⥗', + '⥘' => '⥘', + '⥙' => '⥙', + '⥚' => '⥚', + '⥛' => '⥛', + '⥜' => '⥜', + '⥝' => '⥝', + '⥞' => '⥞', + '⥟' => '⥟', + '⥠' => '⥠', + '⥡' => '⥡', + '⥢' => '⥢', + '⥣' => '⥣', + '⥤' => '⥤', + '⥥' => '⥥', + '⥦' => '⥦', + '⥧' => '⥧', + '⥨' => '⥨', + '⥩' => '⥩', + '⥪' => '⥪', + '⥫' => '⥫', + '⥬' => '⥬', + '⥭' => '⥭', + '⥮' => '⥮', + '⥯' => '⥯', + '⥰' => '⥰', + '⥱' => '⥱', + '⥲' => '⥲', + '⥳' => '⥳', + '⥴' => '⥴', + '⥵' => '⥵', + '⥶' => '⥶', + '⥸' => '⥸', + '⥹' => '⥹', + '⥻' => '⥻', + '⥼' => '⥼', + '⥽' => '⥽', + '⥾' => '⥾', + '⥿' => '⥿', + '⦅' => '⦅', + '⦆' => '⦆', + '⦋' => '⦋', + '⦌' => '⦌', + '⦍' => '⦍', + '⦎' => '⦎', + '⦏' => '⦏', + '⦐' => '⦐', + '⦑' => '⦑', + '⦒' => '⦒', + '⦓' => '⦓', + '⦔' => '⦔', + '⦕' => '⦕', + '⦖' => '⦖', + '⦚' => '⦚', + '⦜' => '⦜', + '⦝' => '⦝', + '⦤' => '⦤', + '⦥' => '⦥', + '⦦' => '⦦', + '⦧' => '⦧', + '⦨' => '⦨', + '⦩' => '⦩', + '⦪' => '⦪', + '⦫' => '⦫', + '⦬' => '⦬', + '⦭' => '⦭', + '⦮' => '⦮', + '⦯' => '⦯', + '⦰' => '⦰', + '⦱' => '⦱', + '⦲' => '⦲', + '⦳' => '⦳', + '⦴' => '⦴', + '⦵' => '⦵', + '⦶' => '⦶', + '⦷' => '⦷', + '⦹' => '⦹', + '⦻' => '⦻', + '⦼' => '⦼', + '⦾' => '⦾', + '⦿' => '⦿', + '⧀' => '⧀', + '⧁' => '⧁', + '⧂' => '⧂', + '⧃' => '⧃', + '⧄' => '⧄', + '⧅' => '⧅', + '⧉' => '⧉', + '⧍' => '⧍', + '⧎' => '⧎', + '⧏' => '⧏', + '⧏̸' => '&NotLeftTriangleBar', + '⧐' => '⧐', + '⧐̸' => '&NotRightTriangleBar', + '⧜' => '⧜', + '⧝' => '⧝', + '⧞' => '⧞', + 'â§£' => '⧣', + '⧤' => '⧤', + 'â§¥' => '⧥', + 'â§«' => '⧫', + 'â§´' => '⧴', + 'â§¶' => '⧶', + '⨀' => '⨀', + '⨁' => '⨁', + '⨂' => '⨂', + '⨄' => '⨄', + '⨆' => '⨆', + '⨌' => '⨌', + '⨍' => '⨍', + '⨐' => '⨐', + '⨑' => '⨑', + '⨒' => '⨒', + '⨓' => '⨓', + '⨔' => '⨔', + '⨕' => '⨕', + '⨖' => '⨖', + '⨗' => '⨗', + '⨢' => '⨢', + '⨣' => '⨣', + '⨤' => '⨤', + '⨥' => '⨥', + '⨦' => '⨦', + '⨧' => '⨧', + '⨩' => '⨩', + '⨪' => '⨪', + '⨭' => '⨭', + '⨮' => '⨮', + '⨯' => '⨯', + '⨰' => '⨰', + '⨱' => '⨱', + '⨳' => '⨳', + '⨴' => '⨴', + '⨵' => '⨵', + '⨶' => '⨶', + '⨷' => '⨷', + '⨸' => '⨸', + '⨹' => '⨹', + '⨺' => '⨺', + '⨻' => '⨻', + '⨼' => '⨼', + '⨿' => '⨿', + '⩀' => '⩀', + '⩂' => '⩂', + '⩃' => '⩃', + '⩄' => '⩄', + '⩅' => '⩅', + '⩆' => '⩆', + '⩇' => '⩇', + '⩈' => '⩈', + '⩉' => '⩉', + '⩊' => '⩊', + '⩋' => '⩋', + '⩌' => '⩌', + '⩍' => '⩍', + '⩐' => '⩐', + '⩓' => '⩓', + '⩔' => '⩔', + '⩕' => '⩕', + '⩖' => '⩖', + '⩗' => '⩗', + '⩘' => '⩘', + '⩚' => '⩚', + '⩛' => '⩛', + '⩜' => '⩜', + '⩝' => '⩝', + '⩟' => '⩟', + '⩦' => '⩦', + '⩪' => '⩪', + 'â©­' => '⩭', + '⩭̸' => '&ncongdot', + 'â©®' => '⩮', + '⩯' => '⩯', + 'â©°' => '⩰', + '⩰̸' => '&napE', + '⩱' => '⩱', + '⩲' => '⩲', + '⩳' => '⩳', + 'â©´' => '⩴', + '⩵' => '⩵', + 'â©·' => '⩷', + '⩸' => '⩸', + '⩹' => '⩹', + '⩺' => '⩺', + 'â©»' => '⩻', + '⩼' => '⩼', + '⩽' => '⩽', + '⩽̸' => '&nles', + '⩾' => '⩾', + '⩾̸' => '&nges', + 'â©¿' => '⩿', + '⪀' => '⪀', + '⪁' => '⪁', + '⪂' => '⪂', + '⪃' => '⪃', + '⪄' => '⪄', + '⪅' => '⪅', + '⪆' => '⪆', + '⪇' => '⪇', + '⪈' => '⪈', + '⪉' => '⪉', + '⪊' => '⪊', + '⪋' => '⪋', + '⪌' => '⪌', + '⪍' => '⪍', + '⪎' => '⪎', + '⪏' => '⪏', + '⪐' => '⪐', + '⪑' => '⪑', + '⪒' => '⪒', + '⪓' => '⪓', + '⪔' => '⪔', + '⪕' => '⪕', + '⪖' => '⪖', + '⪗' => '⪗', + '⪘' => '⪘', + '⪙' => '⪙', + '⪚' => '⪚', + '⪝' => '⪝', + '⪞' => '⪞', + '⪟' => '⪟', + '⪠' => '⪠', + '⪡' => '⪡', + '⪡̸' => '&NotNestedLessLess', + '⪢' => '⪢', + '⪢̸' => '&NotNestedGreaterGreater', + '⪤' => '⪤', + '⪥' => '⪥', + '⪦' => '⪦', + '⪧' => '⪧', + '⪨' => '⪨', + '⪩' => '⪩', + '⪪' => '⪪', + '⪫' => '⪫', + '⪬' => '⪬', + '⪬︀' => '&smtes', + '⪭' => '⪭', + '⪭︀' => '&lates', + '⪮' => '⪮', + '⪯' => '⪯', + '⪯̸' => '&NotPrecedesEqual', + '⪰' => '⪰', + '⪰̸' => '&NotSucceedsEqual', + '⪳' => '⪳', + '⪴' => '⪴', + '⪵' => '⪵', + '⪶' => '⪶', + '⪷' => '⪷', + '⪸' => '⪸', + '⪹' => '⪹', + '⪺' => '⪺', + '⪻' => '⪻', + '⪼' => '⪼', + '⪽' => '⪽', + '⪾' => '⪾', + '⪿' => '⪿', + '⫀' => '⫀', + '⫁' => '⫁', + '⫂' => '⫂', + '⫃' => '⫃', + '⫄' => '⫄', + '⫅' => '⫅', + '⫅̸' => '&nsubE', + '⫆' => '⫆', + '⫆̸' => '&nsupseteqq', + '⫇' => '⫇', + '⫈' => '⫈', + '⫋' => '⫋', + '⫋︀' => '&vsubnE', + '⫌' => '⫌', + '⫌︀' => '&varsupsetneqq', + '⫏' => '⫏', + '⫐' => '⫐', + '⫑' => '⫑', + '⫒' => '⫒', + '⫓' => '⫓', + '⫔' => '⫔', + '⫕' => '⫕', + '⫖' => '⫖', + '⫗' => '⫗', + '⫘' => '⫘', + '⫙' => '⫙', + '⫚' => '⫚', + '⫛' => '⫛', + '⫤' => '⫤', + '⫦' => '⫦', + 'â«§' => '⫧', + '⫨' => '⫨', + 'â«©' => '⫩', + 'â««' => '⫫', + '⫬' => '⫬', + 'â«­' => '⫭', + 'â«®' => '⫮', + '⫯' => '⫯', + 'â«°' => '⫰', + '⫱' => '⫱', + '⫲' => '⫲', + '⫳' => '⫳', + '⫽︀' => '&varsupsetneqq', + 'ff' => 'ff', + 'fi' => 'fi', + 'fl' => 'fl', + 'ffi' => 'ffi', + 'ffl' => 'ffl', + '𝒜' => '𝒜', + '𝒞' => '𝒞', + '𝒟' => '𝒟', + '𝒢' => '𝒢', + '𝒥' => '𝒥', + '𝒦' => '𝒦', + '𝒩' => '𝒩', + '𝒪' => '𝒪', + '𝒫' => '𝒫', + '𝒬' => '𝒬', + '𝒮' => '𝒮', + '𝒯' => '𝒯', + '𝒰' => '𝒰', + '𝒱' => '𝒱', + '𝒲' => '𝒲', + '𝒳' => '𝒳', + '𝒴' => '𝒴', + '𝒵' => '𝒵', + '𝒶' => '𝒶', + '𝒷' => '𝒷', + '𝒸' => '𝒸', + '𝒹' => '𝒹', + '𝒻' => '𝒻', + '𝒽' => '𝒽', + '𝒾' => '𝒾', + '𝒿' => '𝒿', + '𝓀' => '𝓀', + '𝓁' => '𝓁', + '𝓂' => '𝓂', + '𝓃' => '𝓃', + '𝓅' => '𝓅', + '𝓆' => '𝓆', + '𝓇' => '𝓇', + '𝓈' => '𝓈', + '𝓉' => '𝓉', + '𝓊' => '𝓊', + '𝓋' => '𝓋', + '𝓌' => '𝓌', + '𝓍' => '𝓍', + '𝓎' => '𝓎', + '𝓏' => '𝓏', + '𝔄' => '𝔄', + '𝔅' => '𝔅', + '𝔇' => '𝔇', + '𝔈' => '𝔈', + '𝔉' => '𝔉', + '𝔊' => '𝔊', + '𝔍' => '𝔍', + '𝔎' => '𝔎', + '𝔏' => '𝔏', + '𝔐' => '𝔐', + '𝔑' => '𝔑', + '𝔒' => '𝔒', + '𝔓' => '𝔓', + '𝔔' => '𝔔', + '𝔖' => '𝔖', + '𝔗' => '𝔗', + '𝔘' => '𝔘', + '𝔙' => '𝔙', + '𝔚' => '𝔚', + '𝔛' => '𝔛', + '𝔜' => '𝔜', + '𝔞' => '𝔞', + '𝔟' => '𝔟', + '𝔠' => '𝔠', + '𝔡' => '𝔡', + '𝔢' => '𝔢', + '𝔣' => '𝔣', + '𝔤' => '𝔤', + '𝔥' => '𝔥', + '𝔦' => '𝔦', + '𝔧' => '𝔧', + '𝔨' => '𝔨', + '𝔩' => '𝔩', + '𝔪' => '𝔪', + '𝔫' => '𝔫', + '𝔬' => '𝔬', + '𝔭' => '𝔭', + '𝔮' => '𝔮', + '𝔯' => '𝔯', + '𝔰' => '𝔰', + '𝔱' => '𝔱', + '𝔲' => '𝔲', + '𝔳' => '𝔳', + '𝔴' => '𝔴', + '𝔵' => '𝔵', + '𝔶' => '𝔶', + '𝔷' => '𝔷', + '𝔸' => '𝔸', + '𝔹' => '𝔹', + '𝔻' => '𝔻', + '𝔼' => '𝔼', + '𝔽' => '𝔽', + '𝔾' => '𝔾', + '𝕀' => '𝕀', + '𝕁' => '𝕁', + '𝕂' => '𝕂', + '𝕃' => '𝕃', + '𝕄' => '𝕄', + '𝕆' => '𝕆', + '𝕊' => '𝕊', + '𝕋' => '𝕋', + '𝕌' => '𝕌', + '𝕍' => '𝕍', + '𝕎' => '𝕎', + '𝕏' => '𝕏', + '𝕐' => '𝕐', + '𝕒' => '𝕒', + '𝕓' => '𝕓', + '𝕔' => '𝕔', + '𝕕' => '𝕕', + '𝕖' => '𝕖', + '𝕗' => '𝕗', + '𝕘' => '𝕘', + '𝕙' => '𝕙', + '𝕚' => '𝕚', + '𝕛' => '𝕛', + '𝕜' => '𝕜', + '𝕝' => '𝕝', + '𝕞' => '𝕞', + '𝕟' => '𝕟', + '𝕠' => '𝕠', + '𝕡' => '𝕡', + '𝕢' => '𝕢', + '𝕣' => '𝕣', + '𝕤' => '𝕤', + '𝕥' => '𝕥', + '𝕦' => '𝕦', + '𝕧' => '𝕧', + '𝕨' => '𝕨', + '𝕩' => '𝕩', + '𝕪' => '𝕪', + '𝕫' => '𝕫', + ); +} diff --git a/public_html/2022/newcms/lib/vendor/masterminds/html5/src/HTML5/Serializer/OutputRules.php b/public_html/2022/newcms/lib/vendor/masterminds/html5/src/HTML5/Serializer/OutputRules.php new file mode 100644 index 0000000..ec467f2 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/masterminds/html5/src/HTML5/Serializer/OutputRules.php @@ -0,0 +1,553 @@ +'http://www.w3.org/1999/xhtml', + 'attrNamespace'=>'http://www.w3.org/1999/xhtml', + + 'nodeName'=>'img', 'nodeName'=>array('img', 'a'), + 'attrName'=>'alt', 'attrName'=>array('title', 'alt'), + ), + */ + array( + 'nodeNamespace' => 'http://www.w3.org/1999/xhtml', + 'attrName' => array('href', + 'hreflang', + 'http-equiv', + 'icon', + 'id', + 'keytype', + 'kind', + 'label', + 'lang', + 'language', + 'list', + 'maxlength', + 'media', + 'method', + 'name', + 'placeholder', + 'rel', + 'rows', + 'rowspan', + 'sandbox', + 'spellcheck', + 'scope', + 'seamless', + 'shape', + 'size', + 'sizes', + 'span', + 'src', + 'srcdoc', + 'srclang', + 'srcset', + 'start', + 'step', + 'style', + 'summary', + 'tabindex', + 'target', + 'title', + 'type', + 'value', + 'width', + 'border', + 'charset', + 'cite', + 'class', + 'code', + 'codebase', + 'color', + 'cols', + 'colspan', + 'content', + 'coords', + 'data', + 'datetime', + 'default', + 'dir', + 'dirname', + 'enctype', + 'for', + 'form', + 'formaction', + 'headers', + 'height', + 'accept', + 'accept-charset', + 'accesskey', + 'action', + 'align', + 'alt', + 'bgcolor', + ), + ), + array( + 'nodeNamespace' => 'http://www.w3.org/1999/xhtml', + 'xpath' => 'starts-with(local-name(), \'data-\')', + ), + ); + + const DOCTYPE = ''; + + public function __construct($output, $options = array()) + { + if (isset($options['encode_entities'])) { + $this->encode = $options['encode_entities']; + } + + $this->outputMode = static::IM_IN_HTML; + $this->out = $output; + $this->hasHTML5 = defined('ENT_HTML5'); + } + + public function addRule(array $rule) + { + $this->nonBooleanAttributes[] = $rule; + } + + public function setTraverser(Traverser $traverser) + { + $this->traverser = $traverser; + + return $this; + } + + public function unsetTraverser() + { + $this->traverser = null; + + return $this; + } + + public function document($dom) + { + $this->doctype(); + if ($dom->documentElement) { + foreach ($dom->childNodes as $node) { + $this->traverser->node($node); + } + $this->nl(); + } + } + + protected function doctype() + { + $this->wr(static::DOCTYPE); + $this->nl(); + } + + public function element($ele) + { + $name = $ele->tagName; + + // Per spec: + // If the element has a declared namespace in the HTML, MathML or + // SVG namespaces, we use the lname instead of the tagName. + if ($this->traverser->isLocalElement($ele)) { + $name = $ele->localName; + } + + // If we are in SVG or MathML there is special handling. + // Using if/elseif instead of switch because it's faster in PHP. + if ('svg' == $name) { + $this->outputMode = static::IM_IN_SVG; + $name = Elements::normalizeSvgElement($name); + } elseif ('math' == $name) { + $this->outputMode = static::IM_IN_MATHML; + } + + $this->openTag($ele); + if (Elements::isA($name, Elements::TEXT_RAW)) { + foreach ($ele->childNodes as $child) { + if ($child instanceof \DOMCharacterData) { + $this->wr($child->data); + } elseif ($child instanceof \DOMElement) { + $this->element($child); + } + } + } else { + // Handle children. + if ($ele->hasChildNodes()) { + $this->traverser->children($ele->childNodes); + } + + // Close out the SVG or MathML special handling. + if ('svg' == $name || 'math' == $name) { + $this->outputMode = static::IM_IN_HTML; + } + } + + // If not unary, add a closing tag. + if (!Elements::isA($name, Elements::VOID_TAG)) { + $this->closeTag($ele); + } + } + + /** + * Write a text node. + * + * @param \DOMText $ele The text node to write. + */ + public function text($ele) + { + if (isset($ele->parentNode) && isset($ele->parentNode->tagName) && Elements::isA($ele->parentNode->localName, Elements::TEXT_RAW)) { + $this->wr($ele->data); + + return; + } + + // FIXME: This probably needs some flags set. + $this->wr($this->enc($ele->data)); + } + + public function cdata($ele) + { + // This encodes CDATA. + $this->wr($ele->ownerDocument->saveXML($ele)); + } + + public function comment($ele) + { + // These produce identical output. + // $this->wr(''); + $this->wr($ele->ownerDocument->saveXML($ele)); + } + + public function processorInstruction($ele) + { + $this->wr('wr($ele->target) + ->wr(' ') + ->wr($ele->data) + ->wr('?>'); + } + + /** + * Write the namespace attributes. + * + * @param \DOMNode $ele The element being written. + */ + protected function namespaceAttrs($ele) + { + if (!$this->xpath || $this->xpath->document !== $ele->ownerDocument) { + $this->xpath = new \DOMXPath($ele->ownerDocument); + } + + foreach ($this->xpath->query('namespace::*[not(.=../../namespace::*)]', $ele) as $nsNode) { + if (!in_array($nsNode->nodeValue, $this->implicitNamespaces)) { + $this->wr(' ')->wr($nsNode->nodeName)->wr('="')->wr($nsNode->nodeValue)->wr('"'); + } + } + } + + /** + * Write the opening tag. + * + * Tags for HTML, MathML, and SVG are in the local name. Otherwise, use the + * qualified name (8.3). + * + * @param \DOMNode $ele The element being written. + */ + protected function openTag($ele) + { + $this->wr('<')->wr($this->traverser->isLocalElement($ele) ? $ele->localName : $ele->tagName); + + $this->attrs($ele); + $this->namespaceAttrs($ele); + + if ($this->outputMode == static::IM_IN_HTML) { + $this->wr('>'); + } // If we are not in html mode we are in SVG, MathML, or XML embedded content. + else { + if ($ele->hasChildNodes()) { + $this->wr('>'); + } // If there are no children this is self closing. + else { + $this->wr(' />'); + } + } + } + + protected function attrs($ele) + { + // FIXME: Needs support for xml, xmlns, xlink, and namespaced elements. + if (!$ele->hasAttributes()) { + return $this; + } + + // TODO: Currently, this always writes name="value", and does not do + // value-less attributes. + $map = $ele->attributes; + $len = $map->length; + for ($i = 0; $i < $len; ++$i) { + $node = $map->item($i); + $val = $this->enc($node->value, true); + + // XXX: The spec says that we need to ensure that anything in + // the XML, XMLNS, or XLink NS's should use the canonical + // prefix. It seems that DOM does this for us already, but there + // may be exceptions. + $name = $node->nodeName; + + // Special handling for attributes in SVG and MathML. + // Using if/elseif instead of switch because it's faster in PHP. + if ($this->outputMode == static::IM_IN_SVG) { + $name = Elements::normalizeSvgAttribute($name); + } elseif ($this->outputMode == static::IM_IN_MATHML) { + $name = Elements::normalizeMathMlAttribute($name); + } + + $this->wr(' ')->wr($name); + + if ((isset($val) && '' !== $val) || $this->nonBooleanAttribute($node)) { + $this->wr('="')->wr($val)->wr('"'); + } + } + } + + protected function nonBooleanAttribute(\DOMAttr $attr) + { + $ele = $attr->ownerElement; + foreach ($this->nonBooleanAttributes as $rule) { + if (isset($rule['nodeNamespace']) && $rule['nodeNamespace'] !== $ele->namespaceURI) { + continue; + } + if (isset($rule['attNamespace']) && $rule['attNamespace'] !== $attr->namespaceURI) { + continue; + } + if (isset($rule['nodeName']) && !is_array($rule['nodeName']) && $rule['nodeName'] !== $ele->localName) { + continue; + } + if (isset($rule['nodeName']) && is_array($rule['nodeName']) && !in_array($ele->localName, $rule['nodeName'], true)) { + continue; + } + if (isset($rule['attrName']) && !is_array($rule['attrName']) && $rule['attrName'] !== $attr->localName) { + continue; + } + if (isset($rule['attrName']) && is_array($rule['attrName']) && !in_array($attr->localName, $rule['attrName'], true)) { + continue; + } + if (isset($rule['xpath'])) { + $xp = $this->getXPath($attr); + if (isset($rule['prefixes'])) { + foreach ($rule['prefixes'] as $nsPrefix => $ns) { + $xp->registerNamespace($nsPrefix, $ns); + } + } + if (!$xp->evaluate($rule['xpath'], $attr)) { + continue; + } + } + + return true; + } + + return false; + } + + private function getXPath(\DOMNode $node) + { + if (!$this->xpath) { + $this->xpath = new \DOMXPath($node->ownerDocument); + } + + return $this->xpath; + } + + /** + * Write the closing tag. + * + * Tags for HTML, MathML, and SVG are in the local name. Otherwise, use the + * qualified name (8.3). + * + * @param \DOMNode $ele The element being written. + */ + protected function closeTag($ele) + { + if ($this->outputMode == static::IM_IN_HTML || $ele->hasChildNodes()) { + $this->wr('wr($this->traverser->isLocalElement($ele) ? $ele->localName : $ele->tagName)->wr('>'); + } + } + + /** + * Write to the output. + * + * @param string $text The string to put into the output + * + * @return $this + */ + protected function wr($text) + { + fwrite($this->out, $text); + + return $this; + } + + /** + * Write a new line character. + * + * @return $this + */ + protected function nl() + { + fwrite($this->out, PHP_EOL); + + return $this; + } + + /** + * Encode text. + * + * When encode is set to false, the default value, the text passed in is + * escaped per section 8.3 of the html5 spec. For details on how text is + * escaped see the escape() method. + * + * When encoding is set to true the text is converted to named character + * references where appropriate. Section 8.1.4 Character references of the + * html5 spec refers to using named character references. This is useful for + * characters that can't otherwise legally be used in the text. + * + * The named character references are listed in section 8.5. + * + * @see http://www.w3.org/TR/2013/CR-html5-20130806/syntax.html#named-character-references True encoding will turn all named character references into their entities. + * This includes such characters as +.# and many other common ones. By default + * encoding here will just escape &'<>". + * + * Note, PHP 5.4+ has better html5 encoding. + * + * @todo Use the Entities class in php 5.3 to have html5 entities. + * + * @param string $text Text to encode. + * @param bool $attribute True if we are encoding an attrubute, false otherwise. + * + * @return string The encoded text. + */ + protected function enc($text, $attribute = false) + { + // Escape the text rather than convert to named character references. + if (!$this->encode) { + return $this->escape($text, $attribute); + } + + // If we are in PHP 5.4+ we can use the native html5 entity functionality to + // convert the named character references. + + if ($this->hasHTML5) { + return htmlentities($text, ENT_HTML5 | ENT_SUBSTITUTE | ENT_QUOTES, 'UTF-8', false); + } // If a version earlier than 5.4 html5 entities are not entirely handled. + // This manually handles them. + else { + return strtr($text, HTML5Entities::$map); + } + } + + /** + * Escape test. + * + * According to the html5 spec section 8.3 Serializing HTML fragments, text + * within tags that are not style, script, xmp, iframe, noembed, and noframes + * need to be properly escaped. + * + * The & should be converted to &, no breaking space unicode characters + * converted to  , when in attribute mode the " should be converted to + * ", and when not in attribute mode the < and > should be converted to + * < and >. + * + * @see http://www.w3.org/TR/2013/CR-html5-20130806/syntax.html#escapingString + * + * @param string $text Text to escape. + * @param bool $attribute True if we are escaping an attrubute, false otherwise. + */ + protected function escape($text, $attribute = false) + { + // Not using htmlspecialchars because, while it does escaping, it doesn't + // match the requirements of section 8.5. For example, it doesn't handle + // non-breaking spaces. + if ($attribute) { + $replace = array( + '"' => '"', + '&' => '&', + "\xc2\xa0" => ' ', + ); + } else { + $replace = array( + '<' => '<', + '>' => '>', + '&' => '&', + "\xc2\xa0" => ' ', + ); + } + + return strtr($text, $replace); + } +} diff --git a/public_html/2022/newcms/lib/vendor/masterminds/html5/src/HTML5/Serializer/README.md b/public_html/2022/newcms/lib/vendor/masterminds/html5/src/HTML5/Serializer/README.md new file mode 100644 index 0000000..849a47f --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/masterminds/html5/src/HTML5/Serializer/README.md @@ -0,0 +1,33 @@ +# The Serializer (Writer) Model + +The serializer roughly follows sections _8.1 Writing HTML documents_ and section +_8.3 Serializing HTML fragments_ by converting DOMDocument, DOMDocumentFragment, +and DOMNodeList into HTML5. + + [ HTML5 ] // Interface for saving. + || + [ Traverser ] // Walk the DOM + || + [ Rules ] // Convert DOM elements into strings. + || + [ HTML5 ] // HTML5 document or fragment in text. + + +## HTML5 Class + +Provides the top level interface for saving. + +## The Traverser + +Walks the DOM finding each element and passing it off to the output rules to +convert to HTML5. + +## Output Rules + +The output rules are defined in the RulesInterface which can have multiple +implementations. Currently, the OutputRules is the default implementation that +converts a DOM as is into HTML5. + +## HTML5 String + +The output of the process it HTML5 as a string or saved to a file. \ No newline at end of file diff --git a/public_html/2022/newcms/lib/vendor/masterminds/html5/src/HTML5/Serializer/RulesInterface.php b/public_html/2022/newcms/lib/vendor/masterminds/html5/src/HTML5/Serializer/RulesInterface.php new file mode 100644 index 0000000..69a6ecd --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/masterminds/html5/src/HTML5/Serializer/RulesInterface.php @@ -0,0 +1,99 @@ + 'html', + 'http://www.w3.org/1998/Math/MathML' => 'math', + 'http://www.w3.org/2000/svg' => 'svg', + ); + + protected $dom; + + protected $options; + + protected $encode = false; + + protected $rules; + + protected $out; + + /** + * Create a traverser. + * + * @param \DOMNode|\DOMNodeList $dom The document or node to traverse. + * @param resource $out A stream that allows writing. The traverser will output into this + * stream. + * @param array $options An array of options for the traverser as key/value pairs. These include: + * - encode_entities: A bool to specify if full encding should happen for all named + * charachter references. Defaults to false which escapes &'<>". + * - output_rules: The path to the class handling the output rules. + */ + public function __construct($dom, $out, RulesInterface $rules, $options = array()) + { + $this->dom = $dom; + $this->out = $out; + $this->rules = $rules; + $this->options = $options; + + $this->rules->setTraverser($this); + } + + /** + * Tell the traverser to walk the DOM. + * + * @return resource $out Returns the output stream. + */ + public function walk() + { + if ($this->dom instanceof \DOMDocument) { + $this->rules->document($this->dom); + } elseif ($this->dom instanceof \DOMDocumentFragment) { + // Document fragments are a special case. Only the children need to + // be serialized. + if ($this->dom->hasChildNodes()) { + $this->children($this->dom->childNodes); + } + } // If NodeList, loop + elseif ($this->dom instanceof \DOMNodeList) { + // If this is a NodeList of DOMDocuments this will not work. + $this->children($this->dom); + } // Else assume this is a DOMNode-like datastructure. + else { + $this->node($this->dom); + } + + return $this->out; + } + + /** + * Process a node in the DOM. + * + * @param mixed $node A node implementing \DOMNode. + */ + public function node($node) + { + // A listing of types is at http://php.net/manual/en/dom.constants.php + switch ($node->nodeType) { + case XML_ELEMENT_NODE: + $this->rules->element($node); + break; + case XML_TEXT_NODE: + $this->rules->text($node); + break; + case XML_CDATA_SECTION_NODE: + $this->rules->cdata($node); + break; + case XML_PI_NODE: + $this->rules->processorInstruction($node); + break; + case XML_COMMENT_NODE: + $this->rules->comment($node); + break; + // Currently we don't support embedding DTDs. + default: + //print ''; + break; + } + } + + /** + * Walk through all the nodes on a node list. + * + * @param \DOMNodeList $nl A list of child elements to walk through. + */ + public function children($nl) + { + foreach ($nl as $node) { + $this->node($node); + } + } + + /** + * Is an element local? + * + * @param mixed $ele An element that implement \DOMNode. + * + * @return bool true if local and false otherwise. + */ + public function isLocalElement($ele) + { + $uri = $ele->namespaceURI; + if (empty($uri)) { + return false; + } + + return isset(static::$local_ns[$uri]); + } +} diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/.github/workflows/phpunit.yml b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/.github/workflows/phpunit.yml new file mode 100644 index 0000000..82eeb85 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/.github/workflows/phpunit.yml @@ -0,0 +1,44 @@ +name: PHPUnit tests + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + php-version: + + runs-on: ubuntu-latest + + strategy: + fail-fast: false + matrix: + php-version: + - "5.4" + - "5.5" + - "5.6" + - "7.0" + - "7.1" + - "7.2" + - "7.3" + - "7.4" + - "8.0" + - "8.1" + + steps: + + - uses: actions/checkout@v2 + + - name: Install PHP + uses: "shivammathur/setup-php@v2" + with: + php-version: "${{ matrix.php-version }}" + coverage: "none" + ini-values: "zend.assertions=1" + + - name: Install Composer dependencies + run: composer install --no-progress --ansi + + - name: Run tests ${{ matrix.php-version }} + run: SYMFONY_PHPUNIT_REMOVE_RETURN_TYPEHINT=1 bin/simple-phpunit --color=always diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/.htaccess b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/.htaccess new file mode 100644 index 0000000..d02bd68 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/.htaccess @@ -0,0 +1 @@ +#deny from all \ No newline at end of file diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/LICENSE b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/LICENSE new file mode 100644 index 0000000..bca992d --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/LICENSE @@ -0,0 +1,456 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. \ No newline at end of file diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/README.md b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/README.md new file mode 100644 index 0000000..0fa24ee --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/README.md @@ -0,0 +1,28 @@ +[![PHPUnit tests](https://github.com/dompdf/php-font-lib/actions/workflows/phpunit.yml/badge.svg)](https://github.com/dompdf/php-font-lib/actions/workflows/phpunit.yml) + +# PHP Font Lib + +This library can be used to: + * Read TrueType, OpenType (with TrueType glyphs), WOFF font files + * Extract basic info (name, style, etc) + * Extract advanced info (horizontal metrics, glyph names, glyph shapes, etc) + * Make an Adobe Font Metrics (AFM) file from a font + +You can find a demo GUI [here](http://pxd.me/php-font-lib/www/font_explorer.html). + +This project was initiated by the need to read font files in the [DOMPDF project](https://github.com/dompdf/dompdf). + +Usage Example +------------- + +``` +$font = \FontLib\Font::load('../../fontfile.ttf'); +$font->parse(); // for getFontWeight() to work this call must be done first! +echo $font->getFontName() .'
'; +echo $font->getFontSubfamily() .'
'; +echo $font->getFontSubfamilyID() .'
'; +echo $font->getFontFullName() .'
'; +echo $font->getFontVersion() .'
'; +echo $font->getFontWeight() .'
'; +echo $font->getFontPostscriptName() .'
'; +``` diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/bower.json b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/bower.json new file mode 100644 index 0000000..0a4a45b --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/bower.json @@ -0,0 +1,23 @@ +{ + "name": "php-font-lib", + "version": "0.3.1", + "license": "LGPL-3.0", + "keywords": [ + "font", + "parse", + "export", + "truetype", + "opentype", + "woff" + ], + "homepage": "https://github.com/PhenX/php-font-lib", + "_release": "0.3.1", + "_resolution": { + "type": "version", + "tag": "v0.3.1", + "commit": "d13682b7e27d14a6323c441426f3dde1cd86c751" + }, + "_source": "https://github.com/PhenX/php-font-lib.git", + "_target": "*", + "_originalSource": "https://github.com/PhenX/php-font-lib.git" +} \ No newline at end of file diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/composer.json b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/composer.json new file mode 100644 index 0000000..29b0653 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/composer.json @@ -0,0 +1,32 @@ +{ + "name": "phenx/php-font-lib", + "type": "library", + "description": "A library to read, parse, export and make subsets of different types of font files.", + "homepage": "https://github.com/PhenX/php-font-lib", + "license": "LGPL-3.0", + "authors": [ + { + "name": "Fabien Ménager", + "email": "fabien.menager@gmail.com" + } + ], + "autoload": { + "psr-4": { + "FontLib\\": "src/FontLib" + } + }, + "autoload-dev": { + "psr-4": { + "FontLib\\Tests\\": "tests/FontLib" + } + }, + "config": { + "bin-dir": "bin" + }, + "require": { + "ext-mbstring": "*" + }, + "require-dev": { + "symfony/phpunit-bridge" : "^3 || ^4 || ^5" + } +} diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/index.php b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/index.php new file mode 100644 index 0000000..7ed173a --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/index.php @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/adobe-standard-encoding.map b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/adobe-standard-encoding.map new file mode 100644 index 0000000..230d4a1 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/adobe-standard-encoding.map @@ -0,0 +1,231 @@ +// Adobe Standard Encoding table for ttf2pt1 +// Thomas Henlich + +=20 U+0020 SPACE +=21 U+0021 EXCLAMATION MARK +=22 U+0022 QUOTATION MARK +=23 U+0023 NUMBER SIGN +=24 U+0024 DOLLAR SIGN +=25 U+0025 PERCENT SIGN +=26 U+0026 AMPERSAND +=27 U+2019 RIGHT SINGLE QUOTATION MARK +=28 U+0028 LEFT PARENTHESIS +=29 U+0029 RIGHT PARENTHESIS +=2A U+002A ASTERISK +=2B U+002B PLUS SIGN +=2C U+002C COMMA +=2D U+002D HYPHEN-MINUS +=2E U+002E FULL STOP +=2F U+002F SOLIDUS +=30 U+0030 DIGIT ZERO +=31 U+0031 DIGIT ONE +=32 U+0032 DIGIT TWO +=33 U+0033 DIGIT THREE +=34 U+0034 DIGIT FOUR +=35 U+0035 DIGIT FIVE +=36 U+0036 DIGIT SIX +=37 U+0037 DIGIT SEVEN +=38 U+0038 DIGIT EIGHT +=39 U+0039 DIGIT NINE +=3A U+003A COLON +=3B U+003B SEMICOLON +=3C U+003C LESS-THAN SIGN +=3D U+003D EQUALS SIGN +=3E U+003E GREATER-THAN SIGN +=3F U+003F QUESTION MARK +=40 U+0040 COMMERCIAL AT +=41 U+0041 LATIN CAPITAL LETTER A +=42 U+0042 LATIN CAPITAL LETTER B +=43 U+0043 LATIN CAPITAL LETTER C +=44 U+0044 LATIN CAPITAL LETTER D +=45 U+0045 LATIN CAPITAL LETTER E +=46 U+0046 LATIN CAPITAL LETTER F +=47 U+0047 LATIN CAPITAL LETTER G +=48 U+0048 LATIN CAPITAL LETTER H +=49 U+0049 LATIN CAPITAL LETTER I +=4A U+004A LATIN CAPITAL LETTER J +=4B U+004B LATIN CAPITAL LETTER K +=4C U+004C LATIN CAPITAL LETTER L +=4D U+004D LATIN CAPITAL LETTER M +=4E U+004E LATIN CAPITAL LETTER N +=4F U+004F LATIN CAPITAL LETTER O +=50 U+0050 LATIN CAPITAL LETTER P +=51 U+0051 LATIN CAPITAL LETTER Q +=52 U+0052 LATIN CAPITAL LETTER R +=53 U+0053 LATIN CAPITAL LETTER S +=54 U+0054 LATIN CAPITAL LETTER T +=55 U+0055 LATIN CAPITAL LETTER U +=56 U+0056 LATIN CAPITAL LETTER V +=57 U+0057 LATIN CAPITAL LETTER W +=58 U+0058 LATIN CAPITAL LETTER X +=59 U+0059 LATIN CAPITAL LETTER Y +=5A U+005A LATIN CAPITAL LETTER Z +=5B U+005B LEFT SQUARE BRACKET +=5C U+005C REVERSE SOLIDUS +=5D U+005D RIGHT SQUARE BRACKET +=5E U+005E CIRCUMFLEX ACCENT +=5F U+005F LOW LINE +=60 U+2018 LEFT SINGLE QUOTATION MARK +=61 U+0061 LATIN SMALL LETTER A +=62 U+0062 LATIN SMALL LETTER B +=63 U+0063 LATIN SMALL LETTER C +=64 U+0064 LATIN SMALL LETTER D +=65 U+0065 LATIN SMALL LETTER E +=66 U+0066 LATIN SMALL LETTER F +=67 U+0067 LATIN SMALL LETTER G +=68 U+0068 LATIN SMALL LETTER H +=69 U+0069 LATIN SMALL LETTER I +=6A U+006A LATIN SMALL LETTER J +=6B U+006B LATIN SMALL LETTER K +=6C U+006C LATIN SMALL LETTER L +=6D U+006D LATIN SMALL LETTER M +=6E U+006E LATIN SMALL LETTER N +=6F U+006F LATIN SMALL LETTER O +=70 U+0070 LATIN SMALL LETTER P +=71 U+0071 LATIN SMALL LETTER Q +=72 U+0072 LATIN SMALL LETTER R +=73 U+0073 LATIN SMALL LETTER S +=74 U+0074 LATIN SMALL LETTER T +=75 U+0075 LATIN SMALL LETTER U +=76 U+0076 LATIN SMALL LETTER V +=77 U+0077 LATIN SMALL LETTER W +=78 U+0078 LATIN SMALL LETTER X +=79 U+0079 LATIN SMALL LETTER Y +=7A U+007A LATIN SMALL LETTER Z +=7B U+007B LEFT CURLY BRACKET +=7C U+007C VERTICAL LINE +=7D U+007D RIGHT CURLY BRACKET +=7E U+007E TILDE +=A1 U+00A1 INVERTED EXCLAMATION MARK +=A2 U+00A2 CENT SIGN +=A3 U+00A3 POUND SIGN +=A4 U+2044 FRACTION SLASH +=A5 U+00A5 YEN SIGN +=A6 U+0192 LATIN SMALL LETTER F WITH HOOK +=A7 U+00A7 SECTION SIGN +=A8 U+00A4 CURRENCY SIGN +=A9 U+0027 APOSTROPHE +=AA U+201C LEFT DOUBLE QUOTATION MARK +=AB U+00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +=AC U+2039 SINGLE LEFT-POINTING ANGLE QUOTATION MARK +=AD U+203A SINGLE RIGHT-POINTING ANGLE QUOTATION MARK +=AE U+FB01 LATIN SMALL LIGATURE FI +=AF U+FB02 LATIN SMALL LIGATURE FL +=B1 U+2013 EN DASH +=B2 U+2020 DAGGER +=B3 U+2021 DOUBLE DAGGER +=B4 U+00B7 MIDDLE DOT +=B6 U+00B6 PILCROW SIGN +=B7 U+2022 BULLET +=B8 U+201A SINGLE LOW-9 QUOTATION MARK +=B9 U+201E DOUBLE LOW-9 QUOTATION MARK +=BA U+201D RIGHT DOUBLE QUOTATION MARK +=BB U+00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +=BC U+2026 HORIZONTAL ELLIPSIS +=BD U+2030 PER MILLE SIGN +=BF U+00BF INVERTED QUESTION MARK +=C1 U+0060 GRAVE ACCENT +=C2 U+00B4 ACUTE ACCENT +=C3 U+02C6 MODIFIER LETTER CIRCUMFLEX ACCENT +=C4 U+02DC SMALL TILDE +=C5 U+00AF MACRON +=C6 U+02D8 BREVE +=C7 U+02D9 DOT ABOVE +=C8 U+00A8 DIAERESIS +=CA U+02DA RING ABOVE +=CB U+00B8 CEDILLA +=CD U+02DD DOUBLE ACUTE ACCENT +=CE U+02DB OGONEK +=CF U+02C7 CARON +=D0 U+2014 EM DASH +=E1 U+00C6 LATIN CAPITAL LETTER AE +=E3 U+00AA FEMININE ORDINAL INDICATOR +=E8 U+0141 LATIN CAPITAL LETTER L WITH STROKE +=E9 U+00D8 LATIN CAPITAL LETTER O WITH STROKE +=EA U+0152 LATIN CAPITAL LIGATURE OE +=EB U+00BA MASCULINE ORDINAL INDICATOR +=F1 U+00E6 LATIN SMALL LETTER AE +=F5 U+0131 LATIN SMALL LETTER DOTLESS I +=F8 U+0142 LATIN SMALL LETTER L WITH STROKE +=F9 U+00F8 LATIN SMALL LETTER O WITH STROKE +=FA U+0153 LATIN SMALL LIGATURE OE +=FB U+00DF LATIN SMALL LETTER SHARP S + +// unencoded characters: +=100 U+00E7 LATIN SMALL LETTER C WITH CEDILLA +=101 U+00FF LATIN SMALL LETTER Y WITH DIAERESIS +=102 U+00E3 LATIN SMALL LETTER A WITH TILDE +=103 U+00EE LATIN SMALL LETTER I WITH CIRCUMFLEX +=104 U+00B3 SUPERSCRIPT THREE +=105 U+00EA LATIN SMALL LETTER E WITH CIRCUMFLEX +=106 U+00FE LATIN SMALL LETTER THORN +=107 U+00E8 LATIN SMALL LETTER E WITH GRAVE +=108 U+00B2 SUPERSCRIPT TWO +=109 U+00E9 LATIN SMALL LETTER E WITH ACUTE +=10A U+00F5 LATIN SMALL LETTER O WITH TILDE +=10B U+00C1 LATIN CAPITAL LETTER A WITH ACUTE +=10C U+00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX +=10D U+00FD LATIN SMALL LETTER Y WITH ACUTE +=10E U+00FC LATIN SMALL LETTER U WITH DIAERESIS +=10F U+00BE VULGAR FRACTION THREE QUARTERS +=110 U+00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX +=111 U+00D0 LATIN CAPITAL LETTER ETH +=112 U+00EB LATIN SMALL LETTER E WITH DIAERESIS +=113 U+00F9 LATIN SMALL LETTER U WITH GRAVE +=114 U+2122 TRADE MARK SIGN +=115 U+00F2 LATIN SMALL LETTER O WITH GRAVE +=116 U+0161 LATIN SMALL LETTER S WITH CARON +=117 U+00CF LATIN CAPITAL LETTER I WITH DIAERESIS +=118 U+00FA LATIN SMALL LETTER U WITH ACUTE +=119 U+00E0 LATIN SMALL LETTER A WITH GRAVE +=11A U+00F1 LATIN SMALL LETTER N WITH TILDE +=11B U+00E5 LATIN SMALL LETTER A WITH RING ABOVE +=11C U+017E LATIN SMALL LETTER Z WITH CARON +=11D U+00CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX +=11E U+00D1 LATIN CAPITAL LETTER N WITH TILDE +=11F U+00FB LATIN SMALL LETTER U WITH CIRCUMFLEX +=120 U+00CA LATIN CAPITAL LETTER E WITH CIRCUMFLEX +=121 U+00CD LATIN CAPITAL LETTER I WITH ACUTE +=122 U+00C7 LATIN CAPITAL LETTER C WITH CEDILLA +=123 U+00D6 LATIN CAPITAL LETTER O WITH DIAERESIS +=124 U+0160 LATIN CAPITAL LETTER S WITH CARON +=125 U+00CC LATIN CAPITAL LETTER I WITH GRAVE +=126 U+00E4 LATIN SMALL LETTER A WITH DIAERESIS +=127 U+00D2 LATIN CAPITAL LETTER O WITH GRAVE +=128 U+00C8 LATIN CAPITAL LETTER E WITH GRAVE +=129 U+0178 LATIN CAPITAL LETTER Y WITH DIAERESIS +=12A U+00AE REGISTERED SIGN +=12B U+00D5 LATIN CAPITAL LETTER O WITH TILDE +=12C U+00BC VULGAR FRACTION ONE QUARTER +=12D U+00D9 LATIN CAPITAL LETTER U WITH GRAVE +=12E U+00DB LATIN CAPITAL LETTER U WITH CIRCUMFLEX +=12F U+00DE LATIN CAPITAL LETTER THORN +=130 U+00F7 DIVISION SIGN +=131 U+00C3 LATIN CAPITAL LETTER A WITH TILDE +=132 U+00DA LATIN CAPITAL LETTER U WITH ACUTE +=133 U+00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX +=134 U+00AC NOT SIGN +=135 U+00C5 LATIN CAPITAL LETTER A WITH RING ABOVE +=136 U+00EF LATIN SMALL LETTER I WITH DIAERESIS +=137 U+00ED LATIN SMALL LETTER I WITH ACUTE +=138 U+00E1 LATIN SMALL LETTER A WITH ACUTE +=139 U+00B1 PLUS-MINUS SIGN +=13A U+00D7 MULTIPLICATION SIGN +=13B U+00DC LATIN CAPITAL LETTER U WITH DIAERESIS +=13C U+2212 MINUS SIGN +=13D U+00B9 SUPERSCRIPT ONE +=13E U+00C9 LATIN CAPITAL LETTER E WITH ACUTE +=13F U+00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX +=140 U+00A9 COPYRIGHT SIGN +=141 U+00C0 LATIN CAPITAL LETTER A WITH GRAVE +=142 U+00F6 LATIN SMALL LETTER O WITH DIAERESIS +=143 U+00F3 LATIN SMALL LETTER O WITH ACUTE +=144 U+00B0 DEGREE SIGN +=145 U+00EC LATIN SMALL LETTER I WITH GRAVE +=146 U+00B5 MICRO SIGN +=147 U+00D3 LATIN CAPITAL LETTER O WITH ACUTE +=148 U+00F0 LATIN SMALL LETTER ETH +=149 U+00C4 LATIN CAPITAL LETTER A WITH DIAERESIS +=14A U+00DD LATIN CAPITAL LETTER Y WITH ACUTE +=14B U+00A6 BROKEN BAR +=14C U+00BD VULGAR FRACTION ONE HALF diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/cp1250.map b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/cp1250.map new file mode 100644 index 0000000..ec110af --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/cp1250.map @@ -0,0 +1,251 @@ +!00 U+0000 .notdef +!01 U+0001 .notdef +!02 U+0002 .notdef +!03 U+0003 .notdef +!04 U+0004 .notdef +!05 U+0005 .notdef +!06 U+0006 .notdef +!07 U+0007 .notdef +!08 U+0008 .notdef +!09 U+0009 .notdef +!0A U+000A .notdef +!0B U+000B .notdef +!0C U+000C .notdef +!0D U+000D .notdef +!0E U+000E .notdef +!0F U+000F .notdef +!10 U+0010 .notdef +!11 U+0011 .notdef +!12 U+0012 .notdef +!13 U+0013 .notdef +!14 U+0014 .notdef +!15 U+0015 .notdef +!16 U+0016 .notdef +!17 U+0017 .notdef +!18 U+0018 .notdef +!19 U+0019 .notdef +!1A U+001A .notdef +!1B U+001B .notdef +!1C U+001C .notdef +!1D U+001D .notdef +!1E U+001E .notdef +!1F U+001F .notdef +!20 U+0020 space +!21 U+0021 exclam +!22 U+0022 quotedbl +!23 U+0023 numbersign +!24 U+0024 dollar +!25 U+0025 percent +!26 U+0026 ampersand +!27 U+0027 quotesingle +!28 U+0028 parenleft +!29 U+0029 parenright +!2A U+002A asterisk +!2B U+002B plus +!2C U+002C comma +!2D U+002D hyphen +!2E U+002E period +!2F U+002F slash +!30 U+0030 zero +!31 U+0031 one +!32 U+0032 two +!33 U+0033 three +!34 U+0034 four +!35 U+0035 five +!36 U+0036 six +!37 U+0037 seven +!38 U+0038 eight +!39 U+0039 nine +!3A U+003A colon +!3B U+003B semicolon +!3C U+003C less +!3D U+003D equal +!3E U+003E greater +!3F U+003F question +!40 U+0040 at +!41 U+0041 A +!42 U+0042 B +!43 U+0043 C +!44 U+0044 D +!45 U+0045 E +!46 U+0046 F +!47 U+0047 G +!48 U+0048 H +!49 U+0049 I +!4A U+004A J +!4B U+004B K +!4C U+004C L +!4D U+004D M +!4E U+004E N +!4F U+004F O +!50 U+0050 P +!51 U+0051 Q +!52 U+0052 R +!53 U+0053 S +!54 U+0054 T +!55 U+0055 U +!56 U+0056 V +!57 U+0057 W +!58 U+0058 X +!59 U+0059 Y +!5A U+005A Z +!5B U+005B bracketleft +!5C U+005C backslash +!5D U+005D bracketright +!5E U+005E asciicircum +!5F U+005F underscore +!60 U+0060 grave +!61 U+0061 a +!62 U+0062 b +!63 U+0063 c +!64 U+0064 d +!65 U+0065 e +!66 U+0066 f +!67 U+0067 g +!68 U+0068 h +!69 U+0069 i +!6A U+006A j +!6B U+006B k +!6C U+006C l +!6D U+006D m +!6E U+006E n +!6F U+006F o +!70 U+0070 p +!71 U+0071 q +!72 U+0072 r +!73 U+0073 s +!74 U+0074 t +!75 U+0075 u +!76 U+0076 v +!77 U+0077 w +!78 U+0078 x +!79 U+0079 y +!7A U+007A z +!7B U+007B braceleft +!7C U+007C bar +!7D U+007D braceright +!7E U+007E asciitilde +!7F U+007F .notdef +!80 U+20AC Euro +!82 U+201A quotesinglbase +!84 U+201E quotedblbase +!85 U+2026 ellipsis +!86 U+2020 dagger +!87 U+2021 daggerdbl +!89 U+2030 perthousand +!8A U+0160 Scaron +!8B U+2039 guilsinglleft +!8C U+015A Sacute +!8D U+0164 Tcaron +!8E U+017D Zcaron +!8F U+0179 Zacute +!91 U+2018 quoteleft +!92 U+2019 quoteright +!93 U+201C quotedblleft +!94 U+201D quotedblright +!95 U+2022 bullet +!96 U+2013 endash +!97 U+2014 emdash +!99 U+2122 trademark +!9A U+0161 scaron +!9B U+203A guilsinglright +!9C U+015B sacute +!9D U+0165 tcaron +!9E U+017E zcaron +!9F U+017A zacute +!A0 U+00A0 space +!A1 U+02C7 caron +!A2 U+02D8 breve +!A3 U+0141 Lslash +!A4 U+00A4 currency +!A5 U+0104 Aogonek +!A6 U+00A6 brokenbar +!A7 U+00A7 section +!A8 U+00A8 dieresis +!A9 U+00A9 copyright +!AA U+015E Scedilla +!AB U+00AB guillemotleft +!AC U+00AC logicalnot +!AD U+00AD hyphen +!AE U+00AE registered +!AF U+017B Zdotaccent +!B0 U+00B0 degree +!B1 U+00B1 plusminus +!B2 U+02DB ogonek +!B3 U+0142 lslash +!B4 U+00B4 acute +!B5 U+00B5 mu +!B6 U+00B6 paragraph +!B7 U+00B7 periodcentered +!B8 U+00B8 cedilla +!B9 U+0105 aogonek +!BA U+015F scedilla +!BB U+00BB guillemotright +!BC U+013D Lcaron +!BD U+02DD hungarumlaut +!BE U+013E lcaron +!BF U+017C zdotaccent +!C0 U+0154 Racute +!C1 U+00C1 Aacute +!C2 U+00C2 Acircumflex +!C3 U+0102 Abreve +!C4 U+00C4 Adieresis +!C5 U+0139 Lacute +!C6 U+0106 Cacute +!C7 U+00C7 Ccedilla +!C8 U+010C Ccaron +!C9 U+00C9 Eacute +!CA U+0118 Eogonek +!CB U+00CB Edieresis +!CC U+011A Ecaron +!CD U+00CD Iacute +!CE U+00CE Icircumflex +!CF U+010E Dcaron +!D0 U+0110 Dcroat +!D1 U+0143 Nacute +!D2 U+0147 Ncaron +!D3 U+00D3 Oacute +!D4 U+00D4 Ocircumflex +!D5 U+0150 Ohungarumlaut +!D6 U+00D6 Odieresis +!D7 U+00D7 multiply +!D8 U+0158 Rcaron +!D9 U+016E Uring +!DA U+00DA Uacute +!DB U+0170 Uhungarumlaut +!DC U+00DC Udieresis +!DD U+00DD Yacute +!DE U+0162 Tcommaaccent +!DF U+00DF germandbls +!E0 U+0155 racute +!E1 U+00E1 aacute +!E2 U+00E2 acircumflex +!E3 U+0103 abreve +!E4 U+00E4 adieresis +!E5 U+013A lacute +!E6 U+0107 cacute +!E7 U+00E7 ccedilla +!E8 U+010D ccaron +!E9 U+00E9 eacute +!EA U+0119 eogonek +!EB U+00EB edieresis +!EC U+011B ecaron +!ED U+00ED iacute +!EE U+00EE icircumflex +!EF U+010F dcaron +!F0 U+0111 dcroat +!F1 U+0144 nacute +!F2 U+0148 ncaron +!F3 U+00F3 oacute +!F4 U+00F4 ocircumflex +!F5 U+0151 ohungarumlaut +!F6 U+00F6 odieresis +!F7 U+00F7 divide +!F8 U+0159 rcaron +!F9 U+016F uring +!FA U+00FA uacute +!FB U+0171 uhungarumlaut +!FC U+00FC udieresis +!FD U+00FD yacute +!FE U+0163 tcommaaccent +!FF U+02D9 dotaccent diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/cp1251.map b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/cp1251.map new file mode 100644 index 0000000..de6a198 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/cp1251.map @@ -0,0 +1,255 @@ +!00 U+0000 .notdef +!01 U+0001 .notdef +!02 U+0002 .notdef +!03 U+0003 .notdef +!04 U+0004 .notdef +!05 U+0005 .notdef +!06 U+0006 .notdef +!07 U+0007 .notdef +!08 U+0008 .notdef +!09 U+0009 .notdef +!0A U+000A .notdef +!0B U+000B .notdef +!0C U+000C .notdef +!0D U+000D .notdef +!0E U+000E .notdef +!0F U+000F .notdef +!10 U+0010 .notdef +!11 U+0011 .notdef +!12 U+0012 .notdef +!13 U+0013 .notdef +!14 U+0014 .notdef +!15 U+0015 .notdef +!16 U+0016 .notdef +!17 U+0017 .notdef +!18 U+0018 .notdef +!19 U+0019 .notdef +!1A U+001A .notdef +!1B U+001B .notdef +!1C U+001C .notdef +!1D U+001D .notdef +!1E U+001E .notdef +!1F U+001F .notdef +!20 U+0020 space +!21 U+0021 exclam +!22 U+0022 quotedbl +!23 U+0023 numbersign +!24 U+0024 dollar +!25 U+0025 percent +!26 U+0026 ampersand +!27 U+0027 quotesingle +!28 U+0028 parenleft +!29 U+0029 parenright +!2A U+002A asterisk +!2B U+002B plus +!2C U+002C comma +!2D U+002D hyphen +!2E U+002E period +!2F U+002F slash +!30 U+0030 zero +!31 U+0031 one +!32 U+0032 two +!33 U+0033 three +!34 U+0034 four +!35 U+0035 five +!36 U+0036 six +!37 U+0037 seven +!38 U+0038 eight +!39 U+0039 nine +!3A U+003A colon +!3B U+003B semicolon +!3C U+003C less +!3D U+003D equal +!3E U+003E greater +!3F U+003F question +!40 U+0040 at +!41 U+0041 A +!42 U+0042 B +!43 U+0043 C +!44 U+0044 D +!45 U+0045 E +!46 U+0046 F +!47 U+0047 G +!48 U+0048 H +!49 U+0049 I +!4A U+004A J +!4B U+004B K +!4C U+004C L +!4D U+004D M +!4E U+004E N +!4F U+004F O +!50 U+0050 P +!51 U+0051 Q +!52 U+0052 R +!53 U+0053 S +!54 U+0054 T +!55 U+0055 U +!56 U+0056 V +!57 U+0057 W +!58 U+0058 X +!59 U+0059 Y +!5A U+005A Z +!5B U+005B bracketleft +!5C U+005C backslash +!5D U+005D bracketright +!5E U+005E asciicircum +!5F U+005F underscore +!60 U+0060 grave +!61 U+0061 a +!62 U+0062 b +!63 U+0063 c +!64 U+0064 d +!65 U+0065 e +!66 U+0066 f +!67 U+0067 g +!68 U+0068 h +!69 U+0069 i +!6A U+006A j +!6B U+006B k +!6C U+006C l +!6D U+006D m +!6E U+006E n +!6F U+006F o +!70 U+0070 p +!71 U+0071 q +!72 U+0072 r +!73 U+0073 s +!74 U+0074 t +!75 U+0075 u +!76 U+0076 v +!77 U+0077 w +!78 U+0078 x +!79 U+0079 y +!7A U+007A z +!7B U+007B braceleft +!7C U+007C bar +!7D U+007D braceright +!7E U+007E asciitilde +!7F U+007F .notdef +!80 U+0402 afii10051 +!81 U+0403 afii10052 +!82 U+201A quotesinglbase +!83 U+0453 afii10100 +!84 U+201E quotedblbase +!85 U+2026 ellipsis +!86 U+2020 dagger +!87 U+2021 daggerdbl +!88 U+20AC Euro +!89 U+2030 perthousand +!8A U+0409 afii10058 +!8B U+2039 guilsinglleft +!8C U+040A afii10059 +!8D U+040C afii10061 +!8E U+040B afii10060 +!8F U+040F afii10145 +!90 U+0452 afii10099 +!91 U+2018 quoteleft +!92 U+2019 quoteright +!93 U+201C quotedblleft +!94 U+201D quotedblright +!95 U+2022 bullet +!96 U+2013 endash +!97 U+2014 emdash +!99 U+2122 trademark +!9A U+0459 afii10106 +!9B U+203A guilsinglright +!9C U+045A afii10107 +!9D U+045C afii10109 +!9E U+045B afii10108 +!9F U+045F afii10193 +!A0 U+00A0 space +!A1 U+040E afii10062 +!A2 U+045E afii10110 +!A3 U+0408 afii10057 +!A4 U+00A4 currency +!A5 U+0490 afii10050 +!A6 U+00A6 brokenbar +!A7 U+00A7 section +!A8 U+0401 afii10023 +!A9 U+00A9 copyright +!AA U+0404 afii10053 +!AB U+00AB guillemotleft +!AC U+00AC logicalnot +!AD U+00AD hyphen +!AE U+00AE registered +!AF U+0407 afii10056 +!B0 U+00B0 degree +!B1 U+00B1 plusminus +!B2 U+0406 afii10055 +!B3 U+0456 afii10103 +!B4 U+0491 afii10098 +!B5 U+00B5 mu +!B6 U+00B6 paragraph +!B7 U+00B7 periodcentered +!B8 U+0451 afii10071 +!B9 U+2116 afii61352 +!BA U+0454 afii10101 +!BB U+00BB guillemotright +!BC U+0458 afii10105 +!BD U+0405 afii10054 +!BE U+0455 afii10102 +!BF U+0457 afii10104 +!C0 U+0410 afii10017 +!C1 U+0411 afii10018 +!C2 U+0412 afii10019 +!C3 U+0413 afii10020 +!C4 U+0414 afii10021 +!C5 U+0415 afii10022 +!C6 U+0416 afii10024 +!C7 U+0417 afii10025 +!C8 U+0418 afii10026 +!C9 U+0419 afii10027 +!CA U+041A afii10028 +!CB U+041B afii10029 +!CC U+041C afii10030 +!CD U+041D afii10031 +!CE U+041E afii10032 +!CF U+041F afii10033 +!D0 U+0420 afii10034 +!D1 U+0421 afii10035 +!D2 U+0422 afii10036 +!D3 U+0423 afii10037 +!D4 U+0424 afii10038 +!D5 U+0425 afii10039 +!D6 U+0426 afii10040 +!D7 U+0427 afii10041 +!D8 U+0428 afii10042 +!D9 U+0429 afii10043 +!DA U+042A afii10044 +!DB U+042B afii10045 +!DC U+042C afii10046 +!DD U+042D afii10047 +!DE U+042E afii10048 +!DF U+042F afii10049 +!E0 U+0430 afii10065 +!E1 U+0431 afii10066 +!E2 U+0432 afii10067 +!E3 U+0433 afii10068 +!E4 U+0434 afii10069 +!E5 U+0435 afii10070 +!E6 U+0436 afii10072 +!E7 U+0437 afii10073 +!E8 U+0438 afii10074 +!E9 U+0439 afii10075 +!EA U+043A afii10076 +!EB U+043B afii10077 +!EC U+043C afii10078 +!ED U+043D afii10079 +!EE U+043E afii10080 +!EF U+043F afii10081 +!F0 U+0440 afii10082 +!F1 U+0441 afii10083 +!F2 U+0442 afii10084 +!F3 U+0443 afii10085 +!F4 U+0444 afii10086 +!F5 U+0445 afii10087 +!F6 U+0446 afii10088 +!F7 U+0447 afii10089 +!F8 U+0448 afii10090 +!F9 U+0449 afii10091 +!FA U+044A afii10092 +!FB U+044B afii10093 +!FC U+044C afii10094 +!FD U+044D afii10095 +!FE U+044E afii10096 +!FF U+044F afii10097 diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/cp1252.map b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/cp1252.map new file mode 100644 index 0000000..dd490e5 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/cp1252.map @@ -0,0 +1,251 @@ +!00 U+0000 .notdef +!01 U+0001 .notdef +!02 U+0002 .notdef +!03 U+0003 .notdef +!04 U+0004 .notdef +!05 U+0005 .notdef +!06 U+0006 .notdef +!07 U+0007 .notdef +!08 U+0008 .notdef +!09 U+0009 .notdef +!0A U+000A .notdef +!0B U+000B .notdef +!0C U+000C .notdef +!0D U+000D .notdef +!0E U+000E .notdef +!0F U+000F .notdef +!10 U+0010 .notdef +!11 U+0011 .notdef +!12 U+0012 .notdef +!13 U+0013 .notdef +!14 U+0014 .notdef +!15 U+0015 .notdef +!16 U+0016 .notdef +!17 U+0017 .notdef +!18 U+0018 .notdef +!19 U+0019 .notdef +!1A U+001A .notdef +!1B U+001B .notdef +!1C U+001C .notdef +!1D U+001D .notdef +!1E U+001E .notdef +!1F U+001F .notdef +!20 U+0020 space +!21 U+0021 exclam +!22 U+0022 quotedbl +!23 U+0023 numbersign +!24 U+0024 dollar +!25 U+0025 percent +!26 U+0026 ampersand +!27 U+0027 quotesingle +!28 U+0028 parenleft +!29 U+0029 parenright +!2A U+002A asterisk +!2B U+002B plus +!2C U+002C comma +!2D U+002D hyphen +!2E U+002E period +!2F U+002F slash +!30 U+0030 zero +!31 U+0031 one +!32 U+0032 two +!33 U+0033 three +!34 U+0034 four +!35 U+0035 five +!36 U+0036 six +!37 U+0037 seven +!38 U+0038 eight +!39 U+0039 nine +!3A U+003A colon +!3B U+003B semicolon +!3C U+003C less +!3D U+003D equal +!3E U+003E greater +!3F U+003F question +!40 U+0040 at +!41 U+0041 A +!42 U+0042 B +!43 U+0043 C +!44 U+0044 D +!45 U+0045 E +!46 U+0046 F +!47 U+0047 G +!48 U+0048 H +!49 U+0049 I +!4A U+004A J +!4B U+004B K +!4C U+004C L +!4D U+004D M +!4E U+004E N +!4F U+004F O +!50 U+0050 P +!51 U+0051 Q +!52 U+0052 R +!53 U+0053 S +!54 U+0054 T +!55 U+0055 U +!56 U+0056 V +!57 U+0057 W +!58 U+0058 X +!59 U+0059 Y +!5A U+005A Z +!5B U+005B bracketleft +!5C U+005C backslash +!5D U+005D bracketright +!5E U+005E asciicircum +!5F U+005F underscore +!60 U+0060 grave +!61 U+0061 a +!62 U+0062 b +!63 U+0063 c +!64 U+0064 d +!65 U+0065 e +!66 U+0066 f +!67 U+0067 g +!68 U+0068 h +!69 U+0069 i +!6A U+006A j +!6B U+006B k +!6C U+006C l +!6D U+006D m +!6E U+006E n +!6F U+006F o +!70 U+0070 p +!71 U+0071 q +!72 U+0072 r +!73 U+0073 s +!74 U+0074 t +!75 U+0075 u +!76 U+0076 v +!77 U+0077 w +!78 U+0078 x +!79 U+0079 y +!7A U+007A z +!7B U+007B braceleft +!7C U+007C bar +!7D U+007D braceright +!7E U+007E asciitilde +!7F U+007F .notdef +!80 U+20AC Euro +!82 U+201A quotesinglbase +!83 U+0192 florin +!84 U+201E quotedblbase +!85 U+2026 ellipsis +!86 U+2020 dagger +!87 U+2021 daggerdbl +!88 U+02C6 circumflex +!89 U+2030 perthousand +!8A U+0160 Scaron +!8B U+2039 guilsinglleft +!8C U+0152 OE +!8E U+017D Zcaron +!91 U+2018 quoteleft +!92 U+2019 quoteright +!93 U+201C quotedblleft +!94 U+201D quotedblright +!95 U+2022 bullet +!96 U+2013 endash +!97 U+2014 emdash +!98 U+02DC tilde +!99 U+2122 trademark +!9A U+0161 scaron +!9B U+203A guilsinglright +!9C U+0153 oe +!9E U+017E zcaron +!9F U+0178 Ydieresis +!A0 U+00A0 space +!A1 U+00A1 exclamdown +!A2 U+00A2 cent +!A3 U+00A3 sterling +!A4 U+00A4 currency +!A5 U+00A5 yen +!A6 U+00A6 brokenbar +!A7 U+00A7 section +!A8 U+00A8 dieresis +!A9 U+00A9 copyright +!AA U+00AA ordfeminine +!AB U+00AB guillemotleft +!AC U+00AC logicalnot +!AD U+00AD hyphen +!AE U+00AE registered +!AF U+00AF macron +!B0 U+00B0 degree +!B1 U+00B1 plusminus +!B2 U+00B2 twosuperior +!B3 U+00B3 threesuperior +!B4 U+00B4 acute +!B5 U+00B5 mu +!B6 U+00B6 paragraph +!B7 U+00B7 periodcentered +!B8 U+00B8 cedilla +!B9 U+00B9 onesuperior +!BA U+00BA ordmasculine +!BB U+00BB guillemotright +!BC U+00BC onequarter +!BD U+00BD onehalf +!BE U+00BE threequarters +!BF U+00BF questiondown +!C0 U+00C0 Agrave +!C1 U+00C1 Aacute +!C2 U+00C2 Acircumflex +!C3 U+00C3 Atilde +!C4 U+00C4 Adieresis +!C5 U+00C5 Aring +!C6 U+00C6 AE +!C7 U+00C7 Ccedilla +!C8 U+00C8 Egrave +!C9 U+00C9 Eacute +!CA U+00CA Ecircumflex +!CB U+00CB Edieresis +!CC U+00CC Igrave +!CD U+00CD Iacute +!CE U+00CE Icircumflex +!CF U+00CF Idieresis +!D0 U+00D0 Eth +!D1 U+00D1 Ntilde +!D2 U+00D2 Ograve +!D3 U+00D3 Oacute +!D4 U+00D4 Ocircumflex +!D5 U+00D5 Otilde +!D6 U+00D6 Odieresis +!D7 U+00D7 multiply +!D8 U+00D8 Oslash +!D9 U+00D9 Ugrave +!DA U+00DA Uacute +!DB U+00DB Ucircumflex +!DC U+00DC Udieresis +!DD U+00DD Yacute +!DE U+00DE Thorn +!DF U+00DF germandbls +!E0 U+00E0 agrave +!E1 U+00E1 aacute +!E2 U+00E2 acircumflex +!E3 U+00E3 atilde +!E4 U+00E4 adieresis +!E5 U+00E5 aring +!E6 U+00E6 ae +!E7 U+00E7 ccedilla +!E8 U+00E8 egrave +!E9 U+00E9 eacute +!EA U+00EA ecircumflex +!EB U+00EB edieresis +!EC U+00EC igrave +!ED U+00ED iacute +!EE U+00EE icircumflex +!EF U+00EF idieresis +!F0 U+00F0 eth +!F1 U+00F1 ntilde +!F2 U+00F2 ograve +!F3 U+00F3 oacute +!F4 U+00F4 ocircumflex +!F5 U+00F5 otilde +!F6 U+00F6 odieresis +!F7 U+00F7 divide +!F8 U+00F8 oslash +!F9 U+00F9 ugrave +!FA U+00FA uacute +!FB U+00FB ucircumflex +!FC U+00FC udieresis +!FD U+00FD yacute +!FE U+00FE thorn +!FF U+00FF ydieresis diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/cp1253.map b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/cp1253.map new file mode 100644 index 0000000..4bd826f --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/cp1253.map @@ -0,0 +1,239 @@ +!00 U+0000 .notdef +!01 U+0001 .notdef +!02 U+0002 .notdef +!03 U+0003 .notdef +!04 U+0004 .notdef +!05 U+0005 .notdef +!06 U+0006 .notdef +!07 U+0007 .notdef +!08 U+0008 .notdef +!09 U+0009 .notdef +!0A U+000A .notdef +!0B U+000B .notdef +!0C U+000C .notdef +!0D U+000D .notdef +!0E U+000E .notdef +!0F U+000F .notdef +!10 U+0010 .notdef +!11 U+0011 .notdef +!12 U+0012 .notdef +!13 U+0013 .notdef +!14 U+0014 .notdef +!15 U+0015 .notdef +!16 U+0016 .notdef +!17 U+0017 .notdef +!18 U+0018 .notdef +!19 U+0019 .notdef +!1A U+001A .notdef +!1B U+001B .notdef +!1C U+001C .notdef +!1D U+001D .notdef +!1E U+001E .notdef +!1F U+001F .notdef +!20 U+0020 space +!21 U+0021 exclam +!22 U+0022 quotedbl +!23 U+0023 numbersign +!24 U+0024 dollar +!25 U+0025 percent +!26 U+0026 ampersand +!27 U+0027 quotesingle +!28 U+0028 parenleft +!29 U+0029 parenright +!2A U+002A asterisk +!2B U+002B plus +!2C U+002C comma +!2D U+002D hyphen +!2E U+002E period +!2F U+002F slash +!30 U+0030 zero +!31 U+0031 one +!32 U+0032 two +!33 U+0033 three +!34 U+0034 four +!35 U+0035 five +!36 U+0036 six +!37 U+0037 seven +!38 U+0038 eight +!39 U+0039 nine +!3A U+003A colon +!3B U+003B semicolon +!3C U+003C less +!3D U+003D equal +!3E U+003E greater +!3F U+003F question +!40 U+0040 at +!41 U+0041 A +!42 U+0042 B +!43 U+0043 C +!44 U+0044 D +!45 U+0045 E +!46 U+0046 F +!47 U+0047 G +!48 U+0048 H +!49 U+0049 I +!4A U+004A J +!4B U+004B K +!4C U+004C L +!4D U+004D M +!4E U+004E N +!4F U+004F O +!50 U+0050 P +!51 U+0051 Q +!52 U+0052 R +!53 U+0053 S +!54 U+0054 T +!55 U+0055 U +!56 U+0056 V +!57 U+0057 W +!58 U+0058 X +!59 U+0059 Y +!5A U+005A Z +!5B U+005B bracketleft +!5C U+005C backslash +!5D U+005D bracketright +!5E U+005E asciicircum +!5F U+005F underscore +!60 U+0060 grave +!61 U+0061 a +!62 U+0062 b +!63 U+0063 c +!64 U+0064 d +!65 U+0065 e +!66 U+0066 f +!67 U+0067 g +!68 U+0068 h +!69 U+0069 i +!6A U+006A j +!6B U+006B k +!6C U+006C l +!6D U+006D m +!6E U+006E n +!6F U+006F o +!70 U+0070 p +!71 U+0071 q +!72 U+0072 r +!73 U+0073 s +!74 U+0074 t +!75 U+0075 u +!76 U+0076 v +!77 U+0077 w +!78 U+0078 x +!79 U+0079 y +!7A U+007A z +!7B U+007B braceleft +!7C U+007C bar +!7D U+007D braceright +!7E U+007E asciitilde +!7F U+007F .notdef +!80 U+20AC Euro +!82 U+201A quotesinglbase +!83 U+0192 florin +!84 U+201E quotedblbase +!85 U+2026 ellipsis +!86 U+2020 dagger +!87 U+2021 daggerdbl +!89 U+2030 perthousand +!8B U+2039 guilsinglleft +!91 U+2018 quoteleft +!92 U+2019 quoteright +!93 U+201C quotedblleft +!94 U+201D quotedblright +!95 U+2022 bullet +!96 U+2013 endash +!97 U+2014 emdash +!99 U+2122 trademark +!9B U+203A guilsinglright +!A0 U+00A0 space +!A1 U+0385 dieresistonos +!A2 U+0386 Alphatonos +!A3 U+00A3 sterling +!A4 U+00A4 currency +!A5 U+00A5 yen +!A6 U+00A6 brokenbar +!A7 U+00A7 section +!A8 U+00A8 dieresis +!A9 U+00A9 copyright +!AB U+00AB guillemotleft +!AC U+00AC logicalnot +!AD U+00AD hyphen +!AE U+00AE registered +!AF U+2015 afii00208 +!B0 U+00B0 degree +!B1 U+00B1 plusminus +!B2 U+00B2 twosuperior +!B3 U+00B3 threesuperior +!B4 U+0384 tonos +!B5 U+00B5 mu +!B6 U+00B6 paragraph +!B7 U+00B7 periodcentered +!B8 U+0388 Epsilontonos +!B9 U+0389 Etatonos +!BA U+038A Iotatonos +!BB U+00BB guillemotright +!BC U+038C Omicrontonos +!BD U+00BD onehalf +!BE U+038E Upsilontonos +!BF U+038F Omegatonos +!C0 U+0390 iotadieresistonos +!C1 U+0391 Alpha +!C2 U+0392 Beta +!C3 U+0393 Gamma +!C4 U+0394 Delta +!C5 U+0395 Epsilon +!C6 U+0396 Zeta +!C7 U+0397 Eta +!C8 U+0398 Theta +!C9 U+0399 Iota +!CA U+039A Kappa +!CB U+039B Lambda +!CC U+039C Mu +!CD U+039D Nu +!CE U+039E Xi +!CF U+039F Omicron +!D0 U+03A0 Pi +!D1 U+03A1 Rho +!D3 U+03A3 Sigma +!D4 U+03A4 Tau +!D5 U+03A5 Upsilon +!D6 U+03A6 Phi +!D7 U+03A7 Chi +!D8 U+03A8 Psi +!D9 U+03A9 Omega +!DA U+03AA Iotadieresis +!DB U+03AB Upsilondieresis +!DC U+03AC alphatonos +!DD U+03AD epsilontonos +!DE U+03AE etatonos +!DF U+03AF iotatonos +!E0 U+03B0 upsilondieresistonos +!E1 U+03B1 alpha +!E2 U+03B2 beta +!E3 U+03B3 gamma +!E4 U+03B4 delta +!E5 U+03B5 epsilon +!E6 U+03B6 zeta +!E7 U+03B7 eta +!E8 U+03B8 theta +!E9 U+03B9 iota +!EA U+03BA kappa +!EB U+03BB lambda +!EC U+03BC mu +!ED U+03BD nu +!EE U+03BE xi +!EF U+03BF omicron +!F0 U+03C0 pi +!F1 U+03C1 rho +!F2 U+03C2 sigma1 +!F3 U+03C3 sigma +!F4 U+03C4 tau +!F5 U+03C5 upsilon +!F6 U+03C6 phi +!F7 U+03C7 chi +!F8 U+03C8 psi +!F9 U+03C9 omega +!FA U+03CA iotadieresis +!FB U+03CB upsilondieresis +!FC U+03CC omicrontonos +!FD U+03CD upsilontonos +!FE U+03CE omegatonos diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/cp1254.map b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/cp1254.map new file mode 100644 index 0000000..829473b --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/cp1254.map @@ -0,0 +1,249 @@ +!00 U+0000 .notdef +!01 U+0001 .notdef +!02 U+0002 .notdef +!03 U+0003 .notdef +!04 U+0004 .notdef +!05 U+0005 .notdef +!06 U+0006 .notdef +!07 U+0007 .notdef +!08 U+0008 .notdef +!09 U+0009 .notdef +!0A U+000A .notdef +!0B U+000B .notdef +!0C U+000C .notdef +!0D U+000D .notdef +!0E U+000E .notdef +!0F U+000F .notdef +!10 U+0010 .notdef +!11 U+0011 .notdef +!12 U+0012 .notdef +!13 U+0013 .notdef +!14 U+0014 .notdef +!15 U+0015 .notdef +!16 U+0016 .notdef +!17 U+0017 .notdef +!18 U+0018 .notdef +!19 U+0019 .notdef +!1A U+001A .notdef +!1B U+001B .notdef +!1C U+001C .notdef +!1D U+001D .notdef +!1E U+001E .notdef +!1F U+001F .notdef +!20 U+0020 space +!21 U+0021 exclam +!22 U+0022 quotedbl +!23 U+0023 numbersign +!24 U+0024 dollar +!25 U+0025 percent +!26 U+0026 ampersand +!27 U+0027 quotesingle +!28 U+0028 parenleft +!29 U+0029 parenright +!2A U+002A asterisk +!2B U+002B plus +!2C U+002C comma +!2D U+002D hyphen +!2E U+002E period +!2F U+002F slash +!30 U+0030 zero +!31 U+0031 one +!32 U+0032 two +!33 U+0033 three +!34 U+0034 four +!35 U+0035 five +!36 U+0036 six +!37 U+0037 seven +!38 U+0038 eight +!39 U+0039 nine +!3A U+003A colon +!3B U+003B semicolon +!3C U+003C less +!3D U+003D equal +!3E U+003E greater +!3F U+003F question +!40 U+0040 at +!41 U+0041 A +!42 U+0042 B +!43 U+0043 C +!44 U+0044 D +!45 U+0045 E +!46 U+0046 F +!47 U+0047 G +!48 U+0048 H +!49 U+0049 I +!4A U+004A J +!4B U+004B K +!4C U+004C L +!4D U+004D M +!4E U+004E N +!4F U+004F O +!50 U+0050 P +!51 U+0051 Q +!52 U+0052 R +!53 U+0053 S +!54 U+0054 T +!55 U+0055 U +!56 U+0056 V +!57 U+0057 W +!58 U+0058 X +!59 U+0059 Y +!5A U+005A Z +!5B U+005B bracketleft +!5C U+005C backslash +!5D U+005D bracketright +!5E U+005E asciicircum +!5F U+005F underscore +!60 U+0060 grave +!61 U+0061 a +!62 U+0062 b +!63 U+0063 c +!64 U+0064 d +!65 U+0065 e +!66 U+0066 f +!67 U+0067 g +!68 U+0068 h +!69 U+0069 i +!6A U+006A j +!6B U+006B k +!6C U+006C l +!6D U+006D m +!6E U+006E n +!6F U+006F o +!70 U+0070 p +!71 U+0071 q +!72 U+0072 r +!73 U+0073 s +!74 U+0074 t +!75 U+0075 u +!76 U+0076 v +!77 U+0077 w +!78 U+0078 x +!79 U+0079 y +!7A U+007A z +!7B U+007B braceleft +!7C U+007C bar +!7D U+007D braceright +!7E U+007E asciitilde +!7F U+007F .notdef +!80 U+20AC Euro +!82 U+201A quotesinglbase +!83 U+0192 florin +!84 U+201E quotedblbase +!85 U+2026 ellipsis +!86 U+2020 dagger +!87 U+2021 daggerdbl +!88 U+02C6 circumflex +!89 U+2030 perthousand +!8A U+0160 Scaron +!8B U+2039 guilsinglleft +!8C U+0152 OE +!91 U+2018 quoteleft +!92 U+2019 quoteright +!93 U+201C quotedblleft +!94 U+201D quotedblright +!95 U+2022 bullet +!96 U+2013 endash +!97 U+2014 emdash +!98 U+02DC tilde +!99 U+2122 trademark +!9A U+0161 scaron +!9B U+203A guilsinglright +!9C U+0153 oe +!9F U+0178 Ydieresis +!A0 U+00A0 space +!A1 U+00A1 exclamdown +!A2 U+00A2 cent +!A3 U+00A3 sterling +!A4 U+00A4 currency +!A5 U+00A5 yen +!A6 U+00A6 brokenbar +!A7 U+00A7 section +!A8 U+00A8 dieresis +!A9 U+00A9 copyright +!AA U+00AA ordfeminine +!AB U+00AB guillemotleft +!AC U+00AC logicalnot +!AD U+00AD hyphen +!AE U+00AE registered +!AF U+00AF macron +!B0 U+00B0 degree +!B1 U+00B1 plusminus +!B2 U+00B2 twosuperior +!B3 U+00B3 threesuperior +!B4 U+00B4 acute +!B5 U+00B5 mu +!B6 U+00B6 paragraph +!B7 U+00B7 periodcentered +!B8 U+00B8 cedilla +!B9 U+00B9 onesuperior +!BA U+00BA ordmasculine +!BB U+00BB guillemotright +!BC U+00BC onequarter +!BD U+00BD onehalf +!BE U+00BE threequarters +!BF U+00BF questiondown +!C0 U+00C0 Agrave +!C1 U+00C1 Aacute +!C2 U+00C2 Acircumflex +!C3 U+00C3 Atilde +!C4 U+00C4 Adieresis +!C5 U+00C5 Aring +!C6 U+00C6 AE +!C7 U+00C7 Ccedilla +!C8 U+00C8 Egrave +!C9 U+00C9 Eacute +!CA U+00CA Ecircumflex +!CB U+00CB Edieresis +!CC U+00CC Igrave +!CD U+00CD Iacute +!CE U+00CE Icircumflex +!CF U+00CF Idieresis +!D0 U+011E Gbreve +!D1 U+00D1 Ntilde +!D2 U+00D2 Ograve +!D3 U+00D3 Oacute +!D4 U+00D4 Ocircumflex +!D5 U+00D5 Otilde +!D6 U+00D6 Odieresis +!D7 U+00D7 multiply +!D8 U+00D8 Oslash +!D9 U+00D9 Ugrave +!DA U+00DA Uacute +!DB U+00DB Ucircumflex +!DC U+00DC Udieresis +!DD U+0130 Idotaccent +!DE U+015E Scedilla +!DF U+00DF germandbls +!E0 U+00E0 agrave +!E1 U+00E1 aacute +!E2 U+00E2 acircumflex +!E3 U+00E3 atilde +!E4 U+00E4 adieresis +!E5 U+00E5 aring +!E6 U+00E6 ae +!E7 U+00E7 ccedilla +!E8 U+00E8 egrave +!E9 U+00E9 eacute +!EA U+00EA ecircumflex +!EB U+00EB edieresis +!EC U+00EC igrave +!ED U+00ED iacute +!EE U+00EE icircumflex +!EF U+00EF idieresis +!F0 U+011F gbreve +!F1 U+00F1 ntilde +!F2 U+00F2 ograve +!F3 U+00F3 oacute +!F4 U+00F4 ocircumflex +!F5 U+00F5 otilde +!F6 U+00F6 odieresis +!F7 U+00F7 divide +!F8 U+00F8 oslash +!F9 U+00F9 ugrave +!FA U+00FA uacute +!FB U+00FB ucircumflex +!FC U+00FC udieresis +!FD U+0131 dotlessi +!FE U+015F scedilla +!FF U+00FF ydieresis diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/cp1255.map b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/cp1255.map new file mode 100644 index 0000000..079e10c --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/cp1255.map @@ -0,0 +1,233 @@ +!00 U+0000 .notdef +!01 U+0001 .notdef +!02 U+0002 .notdef +!03 U+0003 .notdef +!04 U+0004 .notdef +!05 U+0005 .notdef +!06 U+0006 .notdef +!07 U+0007 .notdef +!08 U+0008 .notdef +!09 U+0009 .notdef +!0A U+000A .notdef +!0B U+000B .notdef +!0C U+000C .notdef +!0D U+000D .notdef +!0E U+000E .notdef +!0F U+000F .notdef +!10 U+0010 .notdef +!11 U+0011 .notdef +!12 U+0012 .notdef +!13 U+0013 .notdef +!14 U+0014 .notdef +!15 U+0015 .notdef +!16 U+0016 .notdef +!17 U+0017 .notdef +!18 U+0018 .notdef +!19 U+0019 .notdef +!1A U+001A .notdef +!1B U+001B .notdef +!1C U+001C .notdef +!1D U+001D .notdef +!1E U+001E .notdef +!1F U+001F .notdef +!20 U+0020 space +!21 U+0021 exclam +!22 U+0022 quotedbl +!23 U+0023 numbersign +!24 U+0024 dollar +!25 U+0025 percent +!26 U+0026 ampersand +!27 U+0027 quotesingle +!28 U+0028 parenleft +!29 U+0029 parenright +!2A U+002A asterisk +!2B U+002B plus +!2C U+002C comma +!2D U+002D hyphen +!2E U+002E period +!2F U+002F slash +!30 U+0030 zero +!31 U+0031 one +!32 U+0032 two +!33 U+0033 three +!34 U+0034 four +!35 U+0035 five +!36 U+0036 six +!37 U+0037 seven +!38 U+0038 eight +!39 U+0039 nine +!3A U+003A colon +!3B U+003B semicolon +!3C U+003C less +!3D U+003D equal +!3E U+003E greater +!3F U+003F question +!40 U+0040 at +!41 U+0041 A +!42 U+0042 B +!43 U+0043 C +!44 U+0044 D +!45 U+0045 E +!46 U+0046 F +!47 U+0047 G +!48 U+0048 H +!49 U+0049 I +!4A U+004A J +!4B U+004B K +!4C U+004C L +!4D U+004D M +!4E U+004E N +!4F U+004F O +!50 U+0050 P +!51 U+0051 Q +!52 U+0052 R +!53 U+0053 S +!54 U+0054 T +!55 U+0055 U +!56 U+0056 V +!57 U+0057 W +!58 U+0058 X +!59 U+0059 Y +!5A U+005A Z +!5B U+005B bracketleft +!5C U+005C backslash +!5D U+005D bracketright +!5E U+005E asciicircum +!5F U+005F underscore +!60 U+0060 grave +!61 U+0061 a +!62 U+0062 b +!63 U+0063 c +!64 U+0064 d +!65 U+0065 e +!66 U+0066 f +!67 U+0067 g +!68 U+0068 h +!69 U+0069 i +!6A U+006A j +!6B U+006B k +!6C U+006C l +!6D U+006D m +!6E U+006E n +!6F U+006F o +!70 U+0070 p +!71 U+0071 q +!72 U+0072 r +!73 U+0073 s +!74 U+0074 t +!75 U+0075 u +!76 U+0076 v +!77 U+0077 w +!78 U+0078 x +!79 U+0079 y +!7A U+007A z +!7B U+007B braceleft +!7C U+007C bar +!7D U+007D braceright +!7E U+007E asciitilde +!7F U+007F .notdef +!80 U+20AC Euro +!82 U+201A quotesinglbase +!83 U+0192 florin +!84 U+201E quotedblbase +!85 U+2026 ellipsis +!86 U+2020 dagger +!87 U+2021 daggerdbl +!88 U+02C6 circumflex +!89 U+2030 perthousand +!8B U+2039 guilsinglleft +!91 U+2018 quoteleft +!92 U+2019 quoteright +!93 U+201C quotedblleft +!94 U+201D quotedblright +!95 U+2022 bullet +!96 U+2013 endash +!97 U+2014 emdash +!98 U+02DC tilde +!99 U+2122 trademark +!9B U+203A guilsinglright +!A0 U+00A0 space +!A1 U+00A1 exclamdown +!A2 U+00A2 cent +!A3 U+00A3 sterling +!A4 U+20AA afii57636 +!A5 U+00A5 yen +!A6 U+00A6 brokenbar +!A7 U+00A7 section +!A8 U+00A8 dieresis +!A9 U+00A9 copyright +!AA U+00D7 multiply +!AB U+00AB guillemotleft +!AC U+00AC logicalnot +!AD U+00AD sfthyphen +!AE U+00AE registered +!AF U+00AF macron +!B0 U+00B0 degree +!B1 U+00B1 plusminus +!B2 U+00B2 twosuperior +!B3 U+00B3 threesuperior +!B4 U+00B4 acute +!B5 U+00B5 mu +!B6 U+00B6 paragraph +!B7 U+00B7 middot +!B8 U+00B8 cedilla +!B9 U+00B9 onesuperior +!BA U+00F7 divide +!BB U+00BB guillemotright +!BC U+00BC onequarter +!BD U+00BD onehalf +!BE U+00BE threequarters +!BF U+00BF questiondown +!C0 U+05B0 afii57799 +!C1 U+05B1 afii57801 +!C2 U+05B2 afii57800 +!C3 U+05B3 afii57802 +!C4 U+05B4 afii57793 +!C5 U+05B5 afii57794 +!C6 U+05B6 afii57795 +!C7 U+05B7 afii57798 +!C8 U+05B8 afii57797 +!C9 U+05B9 afii57806 +!CB U+05BB afii57796 +!CC U+05BC afii57807 +!CD U+05BD afii57839 +!CE U+05BE afii57645 +!CF U+05BF afii57841 +!D0 U+05C0 afii57842 +!D1 U+05C1 afii57804 +!D2 U+05C2 afii57803 +!D3 U+05C3 afii57658 +!D4 U+05F0 afii57716 +!D5 U+05F1 afii57717 +!D6 U+05F2 afii57718 +!D7 U+05F3 gereshhebrew +!D8 U+05F4 gershayimhebrew +!E0 U+05D0 afii57664 +!E1 U+05D1 afii57665 +!E2 U+05D2 afii57666 +!E3 U+05D3 afii57667 +!E4 U+05D4 afii57668 +!E5 U+05D5 afii57669 +!E6 U+05D6 afii57670 +!E7 U+05D7 afii57671 +!E8 U+05D8 afii57672 +!E9 U+05D9 afii57673 +!EA U+05DA afii57674 +!EB U+05DB afii57675 +!EC U+05DC afii57676 +!ED U+05DD afii57677 +!EE U+05DE afii57678 +!EF U+05DF afii57679 +!F0 U+05E0 afii57680 +!F1 U+05E1 afii57681 +!F2 U+05E2 afii57682 +!F3 U+05E3 afii57683 +!F4 U+05E4 afii57684 +!F5 U+05E5 afii57685 +!F6 U+05E6 afii57686 +!F7 U+05E7 afii57687 +!F8 U+05E8 afii57688 +!F9 U+05E9 afii57689 +!FA U+05EA afii57690 +!FD U+200E afii299 +!FE U+200F afii300 diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/cp1257.map b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/cp1257.map new file mode 100644 index 0000000..2f2ecfa --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/cp1257.map @@ -0,0 +1,244 @@ +!00 U+0000 .notdef +!01 U+0001 .notdef +!02 U+0002 .notdef +!03 U+0003 .notdef +!04 U+0004 .notdef +!05 U+0005 .notdef +!06 U+0006 .notdef +!07 U+0007 .notdef +!08 U+0008 .notdef +!09 U+0009 .notdef +!0A U+000A .notdef +!0B U+000B .notdef +!0C U+000C .notdef +!0D U+000D .notdef +!0E U+000E .notdef +!0F U+000F .notdef +!10 U+0010 .notdef +!11 U+0011 .notdef +!12 U+0012 .notdef +!13 U+0013 .notdef +!14 U+0014 .notdef +!15 U+0015 .notdef +!16 U+0016 .notdef +!17 U+0017 .notdef +!18 U+0018 .notdef +!19 U+0019 .notdef +!1A U+001A .notdef +!1B U+001B .notdef +!1C U+001C .notdef +!1D U+001D .notdef +!1E U+001E .notdef +!1F U+001F .notdef +!20 U+0020 space +!21 U+0021 exclam +!22 U+0022 quotedbl +!23 U+0023 numbersign +!24 U+0024 dollar +!25 U+0025 percent +!26 U+0026 ampersand +!27 U+0027 quotesingle +!28 U+0028 parenleft +!29 U+0029 parenright +!2A U+002A asterisk +!2B U+002B plus +!2C U+002C comma +!2D U+002D hyphen +!2E U+002E period +!2F U+002F slash +!30 U+0030 zero +!31 U+0031 one +!32 U+0032 two +!33 U+0033 three +!34 U+0034 four +!35 U+0035 five +!36 U+0036 six +!37 U+0037 seven +!38 U+0038 eight +!39 U+0039 nine +!3A U+003A colon +!3B U+003B semicolon +!3C U+003C less +!3D U+003D equal +!3E U+003E greater +!3F U+003F question +!40 U+0040 at +!41 U+0041 A +!42 U+0042 B +!43 U+0043 C +!44 U+0044 D +!45 U+0045 E +!46 U+0046 F +!47 U+0047 G +!48 U+0048 H +!49 U+0049 I +!4A U+004A J +!4B U+004B K +!4C U+004C L +!4D U+004D M +!4E U+004E N +!4F U+004F O +!50 U+0050 P +!51 U+0051 Q +!52 U+0052 R +!53 U+0053 S +!54 U+0054 T +!55 U+0055 U +!56 U+0056 V +!57 U+0057 W +!58 U+0058 X +!59 U+0059 Y +!5A U+005A Z +!5B U+005B bracketleft +!5C U+005C backslash +!5D U+005D bracketright +!5E U+005E asciicircum +!5F U+005F underscore +!60 U+0060 grave +!61 U+0061 a +!62 U+0062 b +!63 U+0063 c +!64 U+0064 d +!65 U+0065 e +!66 U+0066 f +!67 U+0067 g +!68 U+0068 h +!69 U+0069 i +!6A U+006A j +!6B U+006B k +!6C U+006C l +!6D U+006D m +!6E U+006E n +!6F U+006F o +!70 U+0070 p +!71 U+0071 q +!72 U+0072 r +!73 U+0073 s +!74 U+0074 t +!75 U+0075 u +!76 U+0076 v +!77 U+0077 w +!78 U+0078 x +!79 U+0079 y +!7A U+007A z +!7B U+007B braceleft +!7C U+007C bar +!7D U+007D braceright +!7E U+007E asciitilde +!7F U+007F .notdef +!80 U+20AC Euro +!82 U+201A quotesinglbase +!84 U+201E quotedblbase +!85 U+2026 ellipsis +!86 U+2020 dagger +!87 U+2021 daggerdbl +!89 U+2030 perthousand +!8B U+2039 guilsinglleft +!8D U+00A8 dieresis +!8E U+02C7 caron +!8F U+00B8 cedilla +!91 U+2018 quoteleft +!92 U+2019 quoteright +!93 U+201C quotedblleft +!94 U+201D quotedblright +!95 U+2022 bullet +!96 U+2013 endash +!97 U+2014 emdash +!99 U+2122 trademark +!9B U+203A guilsinglright +!9D U+00AF macron +!9E U+02DB ogonek +!A0 U+00A0 space +!A2 U+00A2 cent +!A3 U+00A3 sterling +!A4 U+00A4 currency +!A6 U+00A6 brokenbar +!A7 U+00A7 section +!A8 U+00D8 Oslash +!A9 U+00A9 copyright +!AA U+0156 Rcommaaccent +!AB U+00AB guillemotleft +!AC U+00AC logicalnot +!AD U+00AD hyphen +!AE U+00AE registered +!AF U+00C6 AE +!B0 U+00B0 degree +!B1 U+00B1 plusminus +!B2 U+00B2 twosuperior +!B3 U+00B3 threesuperior +!B4 U+00B4 acute +!B5 U+00B5 mu +!B6 U+00B6 paragraph +!B7 U+00B7 periodcentered +!B8 U+00F8 oslash +!B9 U+00B9 onesuperior +!BA U+0157 rcommaaccent +!BB U+00BB guillemotright +!BC U+00BC onequarter +!BD U+00BD onehalf +!BE U+00BE threequarters +!BF U+00E6 ae +!C0 U+0104 Aogonek +!C1 U+012E Iogonek +!C2 U+0100 Amacron +!C3 U+0106 Cacute +!C4 U+00C4 Adieresis +!C5 U+00C5 Aring +!C6 U+0118 Eogonek +!C7 U+0112 Emacron +!C8 U+010C Ccaron +!C9 U+00C9 Eacute +!CA U+0179 Zacute +!CB U+0116 Edotaccent +!CC U+0122 Gcommaaccent +!CD U+0136 Kcommaaccent +!CE U+012A Imacron +!CF U+013B Lcommaaccent +!D0 U+0160 Scaron +!D1 U+0143 Nacute +!D2 U+0145 Ncommaaccent +!D3 U+00D3 Oacute +!D4 U+014C Omacron +!D5 U+00D5 Otilde +!D6 U+00D6 Odieresis +!D7 U+00D7 multiply +!D8 U+0172 Uogonek +!D9 U+0141 Lslash +!DA U+015A Sacute +!DB U+016A Umacron +!DC U+00DC Udieresis +!DD U+017B Zdotaccent +!DE U+017D Zcaron +!DF U+00DF germandbls +!E0 U+0105 aogonek +!E1 U+012F iogonek +!E2 U+0101 amacron +!E3 U+0107 cacute +!E4 U+00E4 adieresis +!E5 U+00E5 aring +!E6 U+0119 eogonek +!E7 U+0113 emacron +!E8 U+010D ccaron +!E9 U+00E9 eacute +!EA U+017A zacute +!EB U+0117 edotaccent +!EC U+0123 gcommaaccent +!ED U+0137 kcommaaccent +!EE U+012B imacron +!EF U+013C lcommaaccent +!F0 U+0161 scaron +!F1 U+0144 nacute +!F2 U+0146 ncommaaccent +!F3 U+00F3 oacute +!F4 U+014D omacron +!F5 U+00F5 otilde +!F6 U+00F6 odieresis +!F7 U+00F7 divide +!F8 U+0173 uogonek +!F9 U+0142 lslash +!FA U+015B sacute +!FB U+016B umacron +!FC U+00FC udieresis +!FD U+017C zdotaccent +!FE U+017E zcaron +!FF U+02D9 dotaccent diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/cp1258.map b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/cp1258.map new file mode 100644 index 0000000..fed915f --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/cp1258.map @@ -0,0 +1,247 @@ +!00 U+0000 .notdef +!01 U+0001 .notdef +!02 U+0002 .notdef +!03 U+0003 .notdef +!04 U+0004 .notdef +!05 U+0005 .notdef +!06 U+0006 .notdef +!07 U+0007 .notdef +!08 U+0008 .notdef +!09 U+0009 .notdef +!0A U+000A .notdef +!0B U+000B .notdef +!0C U+000C .notdef +!0D U+000D .notdef +!0E U+000E .notdef +!0F U+000F .notdef +!10 U+0010 .notdef +!11 U+0011 .notdef +!12 U+0012 .notdef +!13 U+0013 .notdef +!14 U+0014 .notdef +!15 U+0015 .notdef +!16 U+0016 .notdef +!17 U+0017 .notdef +!18 U+0018 .notdef +!19 U+0019 .notdef +!1A U+001A .notdef +!1B U+001B .notdef +!1C U+001C .notdef +!1D U+001D .notdef +!1E U+001E .notdef +!1F U+001F .notdef +!20 U+0020 space +!21 U+0021 exclam +!22 U+0022 quotedbl +!23 U+0023 numbersign +!24 U+0024 dollar +!25 U+0025 percent +!26 U+0026 ampersand +!27 U+0027 quotesingle +!28 U+0028 parenleft +!29 U+0029 parenright +!2A U+002A asterisk +!2B U+002B plus +!2C U+002C comma +!2D U+002D hyphen +!2E U+002E period +!2F U+002F slash +!30 U+0030 zero +!31 U+0031 one +!32 U+0032 two +!33 U+0033 three +!34 U+0034 four +!35 U+0035 five +!36 U+0036 six +!37 U+0037 seven +!38 U+0038 eight +!39 U+0039 nine +!3A U+003A colon +!3B U+003B semicolon +!3C U+003C less +!3D U+003D equal +!3E U+003E greater +!3F U+003F question +!40 U+0040 at +!41 U+0041 A +!42 U+0042 B +!43 U+0043 C +!44 U+0044 D +!45 U+0045 E +!46 U+0046 F +!47 U+0047 G +!48 U+0048 H +!49 U+0049 I +!4A U+004A J +!4B U+004B K +!4C U+004C L +!4D U+004D M +!4E U+004E N +!4F U+004F O +!50 U+0050 P +!51 U+0051 Q +!52 U+0052 R +!53 U+0053 S +!54 U+0054 T +!55 U+0055 U +!56 U+0056 V +!57 U+0057 W +!58 U+0058 X +!59 U+0059 Y +!5A U+005A Z +!5B U+005B bracketleft +!5C U+005C backslash +!5D U+005D bracketright +!5E U+005E asciicircum +!5F U+005F underscore +!60 U+0060 grave +!61 U+0061 a +!62 U+0062 b +!63 U+0063 c +!64 U+0064 d +!65 U+0065 e +!66 U+0066 f +!67 U+0067 g +!68 U+0068 h +!69 U+0069 i +!6A U+006A j +!6B U+006B k +!6C U+006C l +!6D U+006D m +!6E U+006E n +!6F U+006F o +!70 U+0070 p +!71 U+0071 q +!72 U+0072 r +!73 U+0073 s +!74 U+0074 t +!75 U+0075 u +!76 U+0076 v +!77 U+0077 w +!78 U+0078 x +!79 U+0079 y +!7A U+007A z +!7B U+007B braceleft +!7C U+007C bar +!7D U+007D braceright +!7E U+007E asciitilde +!7F U+007F .notdef +!80 U+20AC Euro +!82 U+201A quotesinglbase +!83 U+0192 florin +!84 U+201E quotedblbase +!85 U+2026 ellipsis +!86 U+2020 dagger +!87 U+2021 daggerdbl +!88 U+02C6 circumflex +!89 U+2030 perthousand +!8B U+2039 guilsinglleft +!8C U+0152 OE +!91 U+2018 quoteleft +!92 U+2019 quoteright +!93 U+201C quotedblleft +!94 U+201D quotedblright +!95 U+2022 bullet +!96 U+2013 endash +!97 U+2014 emdash +!98 U+02DC tilde +!99 U+2122 trademark +!9B U+203A guilsinglright +!9C U+0153 oe +!9F U+0178 Ydieresis +!A0 U+00A0 space +!A1 U+00A1 exclamdown +!A2 U+00A2 cent +!A3 U+00A3 sterling +!A4 U+00A4 currency +!A5 U+00A5 yen +!A6 U+00A6 brokenbar +!A7 U+00A7 section +!A8 U+00A8 dieresis +!A9 U+00A9 copyright +!AA U+00AA ordfeminine +!AB U+00AB guillemotleft +!AC U+00AC logicalnot +!AD U+00AD hyphen +!AE U+00AE registered +!AF U+00AF macron +!B0 U+00B0 degree +!B1 U+00B1 plusminus +!B2 U+00B2 twosuperior +!B3 U+00B3 threesuperior +!B4 U+00B4 acute +!B5 U+00B5 mu +!B6 U+00B6 paragraph +!B7 U+00B7 periodcentered +!B8 U+00B8 cedilla +!B9 U+00B9 onesuperior +!BA U+00BA ordmasculine +!BB U+00BB guillemotright +!BC U+00BC onequarter +!BD U+00BD onehalf +!BE U+00BE threequarters +!BF U+00BF questiondown +!C0 U+00C0 Agrave +!C1 U+00C1 Aacute +!C2 U+00C2 Acircumflex +!C3 U+0102 Abreve +!C4 U+00C4 Adieresis +!C5 U+00C5 Aring +!C6 U+00C6 AE +!C7 U+00C7 Ccedilla +!C8 U+00C8 Egrave +!C9 U+00C9 Eacute +!CA U+00CA Ecircumflex +!CB U+00CB Edieresis +!CC U+0300 gravecomb +!CD U+00CD Iacute +!CE U+00CE Icircumflex +!CF U+00CF Idieresis +!D0 U+0110 Dcroat +!D1 U+00D1 Ntilde +!D2 U+0309 hookabovecomb +!D3 U+00D3 Oacute +!D4 U+00D4 Ocircumflex +!D5 U+01A0 Ohorn +!D6 U+00D6 Odieresis +!D7 U+00D7 multiply +!D8 U+00D8 Oslash +!D9 U+00D9 Ugrave +!DA U+00DA Uacute +!DB U+00DB Ucircumflex +!DC U+00DC Udieresis +!DD U+01AF Uhorn +!DE U+0303 tildecomb +!DF U+00DF germandbls +!E0 U+00E0 agrave +!E1 U+00E1 aacute +!E2 U+00E2 acircumflex +!E3 U+0103 abreve +!E4 U+00E4 adieresis +!E5 U+00E5 aring +!E6 U+00E6 ae +!E7 U+00E7 ccedilla +!E8 U+00E8 egrave +!E9 U+00E9 eacute +!EA U+00EA ecircumflex +!EB U+00EB edieresis +!EC U+0301 acutecomb +!ED U+00ED iacute +!EE U+00EE icircumflex +!EF U+00EF idieresis +!F0 U+0111 dcroat +!F1 U+00F1 ntilde +!F2 U+0323 dotbelowcomb +!F3 U+00F3 oacute +!F4 U+00F4 ocircumflex +!F5 U+01A1 ohorn +!F6 U+00F6 odieresis +!F7 U+00F7 divide +!F8 U+00F8 oslash +!F9 U+00F9 ugrave +!FA U+00FA uacute +!FB U+00FB ucircumflex +!FC U+00FC udieresis +!FD U+01B0 uhorn +!FE U+20AB dong +!FF U+00FF ydieresis diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/cp874.map b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/cp874.map new file mode 100644 index 0000000..1006e6b --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/cp874.map @@ -0,0 +1,225 @@ +!00 U+0000 .notdef +!01 U+0001 .notdef +!02 U+0002 .notdef +!03 U+0003 .notdef +!04 U+0004 .notdef +!05 U+0005 .notdef +!06 U+0006 .notdef +!07 U+0007 .notdef +!08 U+0008 .notdef +!09 U+0009 .notdef +!0A U+000A .notdef +!0B U+000B .notdef +!0C U+000C .notdef +!0D U+000D .notdef +!0E U+000E .notdef +!0F U+000F .notdef +!10 U+0010 .notdef +!11 U+0011 .notdef +!12 U+0012 .notdef +!13 U+0013 .notdef +!14 U+0014 .notdef +!15 U+0015 .notdef +!16 U+0016 .notdef +!17 U+0017 .notdef +!18 U+0018 .notdef +!19 U+0019 .notdef +!1A U+001A .notdef +!1B U+001B .notdef +!1C U+001C .notdef +!1D U+001D .notdef +!1E U+001E .notdef +!1F U+001F .notdef +!20 U+0020 space +!21 U+0021 exclam +!22 U+0022 quotedbl +!23 U+0023 numbersign +!24 U+0024 dollar +!25 U+0025 percent +!26 U+0026 ampersand +!27 U+0027 quotesingle +!28 U+0028 parenleft +!29 U+0029 parenright +!2A U+002A asterisk +!2B U+002B plus +!2C U+002C comma +!2D U+002D hyphen +!2E U+002E period +!2F U+002F slash +!30 U+0030 zero +!31 U+0031 one +!32 U+0032 two +!33 U+0033 three +!34 U+0034 four +!35 U+0035 five +!36 U+0036 six +!37 U+0037 seven +!38 U+0038 eight +!39 U+0039 nine +!3A U+003A colon +!3B U+003B semicolon +!3C U+003C less +!3D U+003D equal +!3E U+003E greater +!3F U+003F question +!40 U+0040 at +!41 U+0041 A +!42 U+0042 B +!43 U+0043 C +!44 U+0044 D +!45 U+0045 E +!46 U+0046 F +!47 U+0047 G +!48 U+0048 H +!49 U+0049 I +!4A U+004A J +!4B U+004B K +!4C U+004C L +!4D U+004D M +!4E U+004E N +!4F U+004F O +!50 U+0050 P +!51 U+0051 Q +!52 U+0052 R +!53 U+0053 S +!54 U+0054 T +!55 U+0055 U +!56 U+0056 V +!57 U+0057 W +!58 U+0058 X +!59 U+0059 Y +!5A U+005A Z +!5B U+005B bracketleft +!5C U+005C backslash +!5D U+005D bracketright +!5E U+005E asciicircum +!5F U+005F underscore +!60 U+0060 grave +!61 U+0061 a +!62 U+0062 b +!63 U+0063 c +!64 U+0064 d +!65 U+0065 e +!66 U+0066 f +!67 U+0067 g +!68 U+0068 h +!69 U+0069 i +!6A U+006A j +!6B U+006B k +!6C U+006C l +!6D U+006D m +!6E U+006E n +!6F U+006F o +!70 U+0070 p +!71 U+0071 q +!72 U+0072 r +!73 U+0073 s +!74 U+0074 t +!75 U+0075 u +!76 U+0076 v +!77 U+0077 w +!78 U+0078 x +!79 U+0079 y +!7A U+007A z +!7B U+007B braceleft +!7C U+007C bar +!7D U+007D braceright +!7E U+007E asciitilde +!7F U+007F .notdef +!80 U+20AC Euro +!85 U+2026 ellipsis +!91 U+2018 quoteleft +!92 U+2019 quoteright +!93 U+201C quotedblleft +!94 U+201D quotedblright +!95 U+2022 bullet +!96 U+2013 endash +!97 U+2014 emdash +!A0 U+00A0 space +!A1 U+0E01 kokaithai +!A2 U+0E02 khokhaithai +!A3 U+0E03 khokhuatthai +!A4 U+0E04 khokhwaithai +!A5 U+0E05 khokhonthai +!A6 U+0E06 khorakhangthai +!A7 U+0E07 ngonguthai +!A8 U+0E08 chochanthai +!A9 U+0E09 chochingthai +!AA U+0E0A chochangthai +!AB U+0E0B sosothai +!AC U+0E0C chochoethai +!AD U+0E0D yoyingthai +!AE U+0E0E dochadathai +!AF U+0E0F topatakthai +!B0 U+0E10 thothanthai +!B1 U+0E11 thonangmonthothai +!B2 U+0E12 thophuthaothai +!B3 U+0E13 nonenthai +!B4 U+0E14 dodekthai +!B5 U+0E15 totaothai +!B6 U+0E16 thothungthai +!B7 U+0E17 thothahanthai +!B8 U+0E18 thothongthai +!B9 U+0E19 nonuthai +!BA U+0E1A bobaimaithai +!BB U+0E1B poplathai +!BC U+0E1C phophungthai +!BD U+0E1D fofathai +!BE U+0E1E phophanthai +!BF U+0E1F fofanthai +!C0 U+0E20 phosamphaothai +!C1 U+0E21 momathai +!C2 U+0E22 yoyakthai +!C3 U+0E23 roruathai +!C4 U+0E24 ruthai +!C5 U+0E25 lolingthai +!C6 U+0E26 luthai +!C7 U+0E27 wowaenthai +!C8 U+0E28 sosalathai +!C9 U+0E29 sorusithai +!CA U+0E2A sosuathai +!CB U+0E2B hohipthai +!CC U+0E2C lochulathai +!CD U+0E2D oangthai +!CE U+0E2E honokhukthai +!CF U+0E2F paiyannoithai +!D0 U+0E30 saraathai +!D1 U+0E31 maihanakatthai +!D2 U+0E32 saraaathai +!D3 U+0E33 saraamthai +!D4 U+0E34 saraithai +!D5 U+0E35 saraiithai +!D6 U+0E36 sarauethai +!D7 U+0E37 saraueethai +!D8 U+0E38 sarauthai +!D9 U+0E39 sarauuthai +!DA U+0E3A phinthuthai +!DF U+0E3F bahtthai +!E0 U+0E40 saraethai +!E1 U+0E41 saraaethai +!E2 U+0E42 saraothai +!E3 U+0E43 saraaimaimuanthai +!E4 U+0E44 saraaimaimalaithai +!E5 U+0E45 lakkhangyaothai +!E6 U+0E46 maiyamokthai +!E7 U+0E47 maitaikhuthai +!E8 U+0E48 maiekthai +!E9 U+0E49 maithothai +!EA U+0E4A maitrithai +!EB U+0E4B maichattawathai +!EC U+0E4C thanthakhatthai +!ED U+0E4D nikhahitthai +!EE U+0E4E yamakkanthai +!EF U+0E4F fongmanthai +!F0 U+0E50 zerothai +!F1 U+0E51 onethai +!F2 U+0E52 twothai +!F3 U+0E53 threethai +!F4 U+0E54 fourthai +!F5 U+0E55 fivethai +!F6 U+0E56 sixthai +!F7 U+0E57 seventhai +!F8 U+0E58 eightthai +!F9 U+0E59 ninethai +!FA U+0E5A angkhankhuthai +!FB U+0E5B khomutthai diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/iso-8859-1.map b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/iso-8859-1.map new file mode 100644 index 0000000..61740a3 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/iso-8859-1.map @@ -0,0 +1,256 @@ +!00 U+0000 .notdef +!01 U+0001 .notdef +!02 U+0002 .notdef +!03 U+0003 .notdef +!04 U+0004 .notdef +!05 U+0005 .notdef +!06 U+0006 .notdef +!07 U+0007 .notdef +!08 U+0008 .notdef +!09 U+0009 .notdef +!0A U+000A .notdef +!0B U+000B .notdef +!0C U+000C .notdef +!0D U+000D .notdef +!0E U+000E .notdef +!0F U+000F .notdef +!10 U+0010 .notdef +!11 U+0011 .notdef +!12 U+0012 .notdef +!13 U+0013 .notdef +!14 U+0014 .notdef +!15 U+0015 .notdef +!16 U+0016 .notdef +!17 U+0017 .notdef +!18 U+0018 .notdef +!19 U+0019 .notdef +!1A U+001A .notdef +!1B U+001B .notdef +!1C U+001C .notdef +!1D U+001D .notdef +!1E U+001E .notdef +!1F U+001F .notdef +!20 U+0020 space +!21 U+0021 exclam +!22 U+0022 quotedbl +!23 U+0023 numbersign +!24 U+0024 dollar +!25 U+0025 percent +!26 U+0026 ampersand +!27 U+0027 quotesingle +!28 U+0028 parenleft +!29 U+0029 parenright +!2A U+002A asterisk +!2B U+002B plus +!2C U+002C comma +!2D U+002D hyphen +!2E U+002E period +!2F U+002F slash +!30 U+0030 zero +!31 U+0031 one +!32 U+0032 two +!33 U+0033 three +!34 U+0034 four +!35 U+0035 five +!36 U+0036 six +!37 U+0037 seven +!38 U+0038 eight +!39 U+0039 nine +!3A U+003A colon +!3B U+003B semicolon +!3C U+003C less +!3D U+003D equal +!3E U+003E greater +!3F U+003F question +!40 U+0040 at +!41 U+0041 A +!42 U+0042 B +!43 U+0043 C +!44 U+0044 D +!45 U+0045 E +!46 U+0046 F +!47 U+0047 G +!48 U+0048 H +!49 U+0049 I +!4A U+004A J +!4B U+004B K +!4C U+004C L +!4D U+004D M +!4E U+004E N +!4F U+004F O +!50 U+0050 P +!51 U+0051 Q +!52 U+0052 R +!53 U+0053 S +!54 U+0054 T +!55 U+0055 U +!56 U+0056 V +!57 U+0057 W +!58 U+0058 X +!59 U+0059 Y +!5A U+005A Z +!5B U+005B bracketleft +!5C U+005C backslash +!5D U+005D bracketright +!5E U+005E asciicircum +!5F U+005F underscore +!60 U+0060 grave +!61 U+0061 a +!62 U+0062 b +!63 U+0063 c +!64 U+0064 d +!65 U+0065 e +!66 U+0066 f +!67 U+0067 g +!68 U+0068 h +!69 U+0069 i +!6A U+006A j +!6B U+006B k +!6C U+006C l +!6D U+006D m +!6E U+006E n +!6F U+006F o +!70 U+0070 p +!71 U+0071 q +!72 U+0072 r +!73 U+0073 s +!74 U+0074 t +!75 U+0075 u +!76 U+0076 v +!77 U+0077 w +!78 U+0078 x +!79 U+0079 y +!7A U+007A z +!7B U+007B braceleft +!7C U+007C bar +!7D U+007D braceright +!7E U+007E asciitilde +!7F U+007F .notdef +!80 U+0080 .notdef +!81 U+0081 .notdef +!82 U+0082 .notdef +!83 U+0083 .notdef +!84 U+0084 .notdef +!85 U+0085 .notdef +!86 U+0086 .notdef +!87 U+0087 .notdef +!88 U+0088 .notdef +!89 U+0089 .notdef +!8A U+008A .notdef +!8B U+008B .notdef +!8C U+008C .notdef +!8D U+008D .notdef +!8E U+008E .notdef +!8F U+008F .notdef +!90 U+0090 .notdef +!91 U+0091 .notdef +!92 U+0092 .notdef +!93 U+0093 .notdef +!94 U+0094 .notdef +!95 U+0095 .notdef +!96 U+0096 .notdef +!97 U+0097 .notdef +!98 U+0098 .notdef +!99 U+0099 .notdef +!9A U+009A .notdef +!9B U+009B .notdef +!9C U+009C .notdef +!9D U+009D .notdef +!9E U+009E .notdef +!9F U+009F .notdef +!A0 U+00A0 space +!A1 U+00A1 exclamdown +!A2 U+00A2 cent +!A3 U+00A3 sterling +!A4 U+00A4 currency +!A5 U+00A5 yen +!A6 U+00A6 brokenbar +!A7 U+00A7 section +!A8 U+00A8 dieresis +!A9 U+00A9 copyright +!AA U+00AA ordfeminine +!AB U+00AB guillemotleft +!AC U+00AC logicalnot +!AD U+00AD hyphen +!AE U+00AE registered +!AF U+00AF macron +!B0 U+00B0 degree +!B1 U+00B1 plusminus +!B2 U+00B2 twosuperior +!B3 U+00B3 threesuperior +!B4 U+00B4 acute +!B5 U+00B5 mu +!B6 U+00B6 paragraph +!B7 U+00B7 periodcentered +!B8 U+00B8 cedilla +!B9 U+00B9 onesuperior +!BA U+00BA ordmasculine +!BB U+00BB guillemotright +!BC U+00BC onequarter +!BD U+00BD onehalf +!BE U+00BE threequarters +!BF U+00BF questiondown +!C0 U+00C0 Agrave +!C1 U+00C1 Aacute +!C2 U+00C2 Acircumflex +!C3 U+00C3 Atilde +!C4 U+00C4 Adieresis +!C5 U+00C5 Aring +!C6 U+00C6 AE +!C7 U+00C7 Ccedilla +!C8 U+00C8 Egrave +!C9 U+00C9 Eacute +!CA U+00CA Ecircumflex +!CB U+00CB Edieresis +!CC U+00CC Igrave +!CD U+00CD Iacute +!CE U+00CE Icircumflex +!CF U+00CF Idieresis +!D0 U+00D0 Eth +!D1 U+00D1 Ntilde +!D2 U+00D2 Ograve +!D3 U+00D3 Oacute +!D4 U+00D4 Ocircumflex +!D5 U+00D5 Otilde +!D6 U+00D6 Odieresis +!D7 U+00D7 multiply +!D8 U+00D8 Oslash +!D9 U+00D9 Ugrave +!DA U+00DA Uacute +!DB U+00DB Ucircumflex +!DC U+00DC Udieresis +!DD U+00DD Yacute +!DE U+00DE Thorn +!DF U+00DF germandbls +!E0 U+00E0 agrave +!E1 U+00E1 aacute +!E2 U+00E2 acircumflex +!E3 U+00E3 atilde +!E4 U+00E4 adieresis +!E5 U+00E5 aring +!E6 U+00E6 ae +!E7 U+00E7 ccedilla +!E8 U+00E8 egrave +!E9 U+00E9 eacute +!EA U+00EA ecircumflex +!EB U+00EB edieresis +!EC U+00EC igrave +!ED U+00ED iacute +!EE U+00EE icircumflex +!EF U+00EF idieresis +!F0 U+00F0 eth +!F1 U+00F1 ntilde +!F2 U+00F2 ograve +!F3 U+00F3 oacute +!F4 U+00F4 ocircumflex +!F5 U+00F5 otilde +!F6 U+00F6 odieresis +!F7 U+00F7 divide +!F8 U+00F8 oslash +!F9 U+00F9 ugrave +!FA U+00FA uacute +!FB U+00FB ucircumflex +!FC U+00FC udieresis +!FD U+00FD yacute +!FE U+00FE thorn +!FF U+00FF ydieresis diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/iso-8859-11.map b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/iso-8859-11.map new file mode 100644 index 0000000..9168812 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/iso-8859-11.map @@ -0,0 +1,248 @@ +!00 U+0000 .notdef +!01 U+0001 .notdef +!02 U+0002 .notdef +!03 U+0003 .notdef +!04 U+0004 .notdef +!05 U+0005 .notdef +!06 U+0006 .notdef +!07 U+0007 .notdef +!08 U+0008 .notdef +!09 U+0009 .notdef +!0A U+000A .notdef +!0B U+000B .notdef +!0C U+000C .notdef +!0D U+000D .notdef +!0E U+000E .notdef +!0F U+000F .notdef +!10 U+0010 .notdef +!11 U+0011 .notdef +!12 U+0012 .notdef +!13 U+0013 .notdef +!14 U+0014 .notdef +!15 U+0015 .notdef +!16 U+0016 .notdef +!17 U+0017 .notdef +!18 U+0018 .notdef +!19 U+0019 .notdef +!1A U+001A .notdef +!1B U+001B .notdef +!1C U+001C .notdef +!1D U+001D .notdef +!1E U+001E .notdef +!1F U+001F .notdef +!20 U+0020 space +!21 U+0021 exclam +!22 U+0022 quotedbl +!23 U+0023 numbersign +!24 U+0024 dollar +!25 U+0025 percent +!26 U+0026 ampersand +!27 U+0027 quotesingle +!28 U+0028 parenleft +!29 U+0029 parenright +!2A U+002A asterisk +!2B U+002B plus +!2C U+002C comma +!2D U+002D hyphen +!2E U+002E period +!2F U+002F slash +!30 U+0030 zero +!31 U+0031 one +!32 U+0032 two +!33 U+0033 three +!34 U+0034 four +!35 U+0035 five +!36 U+0036 six +!37 U+0037 seven +!38 U+0038 eight +!39 U+0039 nine +!3A U+003A colon +!3B U+003B semicolon +!3C U+003C less +!3D U+003D equal +!3E U+003E greater +!3F U+003F question +!40 U+0040 at +!41 U+0041 A +!42 U+0042 B +!43 U+0043 C +!44 U+0044 D +!45 U+0045 E +!46 U+0046 F +!47 U+0047 G +!48 U+0048 H +!49 U+0049 I +!4A U+004A J +!4B U+004B K +!4C U+004C L +!4D U+004D M +!4E U+004E N +!4F U+004F O +!50 U+0050 P +!51 U+0051 Q +!52 U+0052 R +!53 U+0053 S +!54 U+0054 T +!55 U+0055 U +!56 U+0056 V +!57 U+0057 W +!58 U+0058 X +!59 U+0059 Y +!5A U+005A Z +!5B U+005B bracketleft +!5C U+005C backslash +!5D U+005D bracketright +!5E U+005E asciicircum +!5F U+005F underscore +!60 U+0060 grave +!61 U+0061 a +!62 U+0062 b +!63 U+0063 c +!64 U+0064 d +!65 U+0065 e +!66 U+0066 f +!67 U+0067 g +!68 U+0068 h +!69 U+0069 i +!6A U+006A j +!6B U+006B k +!6C U+006C l +!6D U+006D m +!6E U+006E n +!6F U+006F o +!70 U+0070 p +!71 U+0071 q +!72 U+0072 r +!73 U+0073 s +!74 U+0074 t +!75 U+0075 u +!76 U+0076 v +!77 U+0077 w +!78 U+0078 x +!79 U+0079 y +!7A U+007A z +!7B U+007B braceleft +!7C U+007C bar +!7D U+007D braceright +!7E U+007E asciitilde +!7F U+007F .notdef +!80 U+0080 .notdef +!81 U+0081 .notdef +!82 U+0082 .notdef +!83 U+0083 .notdef +!84 U+0084 .notdef +!85 U+0085 .notdef +!86 U+0086 .notdef +!87 U+0087 .notdef +!88 U+0088 .notdef +!89 U+0089 .notdef +!8A U+008A .notdef +!8B U+008B .notdef +!8C U+008C .notdef +!8D U+008D .notdef +!8E U+008E .notdef +!8F U+008F .notdef +!90 U+0090 .notdef +!91 U+0091 .notdef +!92 U+0092 .notdef +!93 U+0093 .notdef +!94 U+0094 .notdef +!95 U+0095 .notdef +!96 U+0096 .notdef +!97 U+0097 .notdef +!98 U+0098 .notdef +!99 U+0099 .notdef +!9A U+009A .notdef +!9B U+009B .notdef +!9C U+009C .notdef +!9D U+009D .notdef +!9E U+009E .notdef +!9F U+009F .notdef +!A0 U+00A0 space +!A1 U+0E01 kokaithai +!A2 U+0E02 khokhaithai +!A3 U+0E03 khokhuatthai +!A4 U+0E04 khokhwaithai +!A5 U+0E05 khokhonthai +!A6 U+0E06 khorakhangthai +!A7 U+0E07 ngonguthai +!A8 U+0E08 chochanthai +!A9 U+0E09 chochingthai +!AA U+0E0A chochangthai +!AB U+0E0B sosothai +!AC U+0E0C chochoethai +!AD U+0E0D yoyingthai +!AE U+0E0E dochadathai +!AF U+0E0F topatakthai +!B0 U+0E10 thothanthai +!B1 U+0E11 thonangmonthothai +!B2 U+0E12 thophuthaothai +!B3 U+0E13 nonenthai +!B4 U+0E14 dodekthai +!B5 U+0E15 totaothai +!B6 U+0E16 thothungthai +!B7 U+0E17 thothahanthai +!B8 U+0E18 thothongthai +!B9 U+0E19 nonuthai +!BA U+0E1A bobaimaithai +!BB U+0E1B poplathai +!BC U+0E1C phophungthai +!BD U+0E1D fofathai +!BE U+0E1E phophanthai +!BF U+0E1F fofanthai +!C0 U+0E20 phosamphaothai +!C1 U+0E21 momathai +!C2 U+0E22 yoyakthai +!C3 U+0E23 roruathai +!C4 U+0E24 ruthai +!C5 U+0E25 lolingthai +!C6 U+0E26 luthai +!C7 U+0E27 wowaenthai +!C8 U+0E28 sosalathai +!C9 U+0E29 sorusithai +!CA U+0E2A sosuathai +!CB U+0E2B hohipthai +!CC U+0E2C lochulathai +!CD U+0E2D oangthai +!CE U+0E2E honokhukthai +!CF U+0E2F paiyannoithai +!D0 U+0E30 saraathai +!D1 U+0E31 maihanakatthai +!D2 U+0E32 saraaathai +!D3 U+0E33 saraamthai +!D4 U+0E34 saraithai +!D5 U+0E35 saraiithai +!D6 U+0E36 sarauethai +!D7 U+0E37 saraueethai +!D8 U+0E38 sarauthai +!D9 U+0E39 sarauuthai +!DA U+0E3A phinthuthai +!DF U+0E3F bahtthai +!E0 U+0E40 saraethai +!E1 U+0E41 saraaethai +!E2 U+0E42 saraothai +!E3 U+0E43 saraaimaimuanthai +!E4 U+0E44 saraaimaimalaithai +!E5 U+0E45 lakkhangyaothai +!E6 U+0E46 maiyamokthai +!E7 U+0E47 maitaikhuthai +!E8 U+0E48 maiekthai +!E9 U+0E49 maithothai +!EA U+0E4A maitrithai +!EB U+0E4B maichattawathai +!EC U+0E4C thanthakhatthai +!ED U+0E4D nikhahitthai +!EE U+0E4E yamakkanthai +!EF U+0E4F fongmanthai +!F0 U+0E50 zerothai +!F1 U+0E51 onethai +!F2 U+0E52 twothai +!F3 U+0E53 threethai +!F4 U+0E54 fourthai +!F5 U+0E55 fivethai +!F6 U+0E56 sixthai +!F7 U+0E57 seventhai +!F8 U+0E58 eightthai +!F9 U+0E59 ninethai +!FA U+0E5A angkhankhuthai +!FB U+0E5B khomutthai diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/iso-8859-15.map b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/iso-8859-15.map new file mode 100644 index 0000000..6c2b571 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/iso-8859-15.map @@ -0,0 +1,256 @@ +!00 U+0000 .notdef +!01 U+0001 .notdef +!02 U+0002 .notdef +!03 U+0003 .notdef +!04 U+0004 .notdef +!05 U+0005 .notdef +!06 U+0006 .notdef +!07 U+0007 .notdef +!08 U+0008 .notdef +!09 U+0009 .notdef +!0A U+000A .notdef +!0B U+000B .notdef +!0C U+000C .notdef +!0D U+000D .notdef +!0E U+000E .notdef +!0F U+000F .notdef +!10 U+0010 .notdef +!11 U+0011 .notdef +!12 U+0012 .notdef +!13 U+0013 .notdef +!14 U+0014 .notdef +!15 U+0015 .notdef +!16 U+0016 .notdef +!17 U+0017 .notdef +!18 U+0018 .notdef +!19 U+0019 .notdef +!1A U+001A .notdef +!1B U+001B .notdef +!1C U+001C .notdef +!1D U+001D .notdef +!1E U+001E .notdef +!1F U+001F .notdef +!20 U+0020 space +!21 U+0021 exclam +!22 U+0022 quotedbl +!23 U+0023 numbersign +!24 U+0024 dollar +!25 U+0025 percent +!26 U+0026 ampersand +!27 U+0027 quotesingle +!28 U+0028 parenleft +!29 U+0029 parenright +!2A U+002A asterisk +!2B U+002B plus +!2C U+002C comma +!2D U+002D hyphen +!2E U+002E period +!2F U+002F slash +!30 U+0030 zero +!31 U+0031 one +!32 U+0032 two +!33 U+0033 three +!34 U+0034 four +!35 U+0035 five +!36 U+0036 six +!37 U+0037 seven +!38 U+0038 eight +!39 U+0039 nine +!3A U+003A colon +!3B U+003B semicolon +!3C U+003C less +!3D U+003D equal +!3E U+003E greater +!3F U+003F question +!40 U+0040 at +!41 U+0041 A +!42 U+0042 B +!43 U+0043 C +!44 U+0044 D +!45 U+0045 E +!46 U+0046 F +!47 U+0047 G +!48 U+0048 H +!49 U+0049 I +!4A U+004A J +!4B U+004B K +!4C U+004C L +!4D U+004D M +!4E U+004E N +!4F U+004F O +!50 U+0050 P +!51 U+0051 Q +!52 U+0052 R +!53 U+0053 S +!54 U+0054 T +!55 U+0055 U +!56 U+0056 V +!57 U+0057 W +!58 U+0058 X +!59 U+0059 Y +!5A U+005A Z +!5B U+005B bracketleft +!5C U+005C backslash +!5D U+005D bracketright +!5E U+005E asciicircum +!5F U+005F underscore +!60 U+0060 grave +!61 U+0061 a +!62 U+0062 b +!63 U+0063 c +!64 U+0064 d +!65 U+0065 e +!66 U+0066 f +!67 U+0067 g +!68 U+0068 h +!69 U+0069 i +!6A U+006A j +!6B U+006B k +!6C U+006C l +!6D U+006D m +!6E U+006E n +!6F U+006F o +!70 U+0070 p +!71 U+0071 q +!72 U+0072 r +!73 U+0073 s +!74 U+0074 t +!75 U+0075 u +!76 U+0076 v +!77 U+0077 w +!78 U+0078 x +!79 U+0079 y +!7A U+007A z +!7B U+007B braceleft +!7C U+007C bar +!7D U+007D braceright +!7E U+007E asciitilde +!7F U+007F .notdef +!80 U+0080 .notdef +!81 U+0081 .notdef +!82 U+0082 .notdef +!83 U+0083 .notdef +!84 U+0084 .notdef +!85 U+0085 .notdef +!86 U+0086 .notdef +!87 U+0087 .notdef +!88 U+0088 .notdef +!89 U+0089 .notdef +!8A U+008A .notdef +!8B U+008B .notdef +!8C U+008C .notdef +!8D U+008D .notdef +!8E U+008E .notdef +!8F U+008F .notdef +!90 U+0090 .notdef +!91 U+0091 .notdef +!92 U+0092 .notdef +!93 U+0093 .notdef +!94 U+0094 .notdef +!95 U+0095 .notdef +!96 U+0096 .notdef +!97 U+0097 .notdef +!98 U+0098 .notdef +!99 U+0099 .notdef +!9A U+009A .notdef +!9B U+009B .notdef +!9C U+009C .notdef +!9D U+009D .notdef +!9E U+009E .notdef +!9F U+009F .notdef +!A0 U+00A0 space +!A1 U+00A1 exclamdown +!A2 U+00A2 cent +!A3 U+00A3 sterling +!A4 U+20AC Euro +!A5 U+00A5 yen +!A6 U+0160 Scaron +!A7 U+00A7 section +!A8 U+0161 scaron +!A9 U+00A9 copyright +!AA U+00AA ordfeminine +!AB U+00AB guillemotleft +!AC U+00AC logicalnot +!AD U+00AD hyphen +!AE U+00AE registered +!AF U+00AF macron +!B0 U+00B0 degree +!B1 U+00B1 plusminus +!B2 U+00B2 twosuperior +!B3 U+00B3 threesuperior +!B4 U+017D Zcaron +!B5 U+00B5 mu +!B6 U+00B6 paragraph +!B7 U+00B7 periodcentered +!B8 U+017E zcaron +!B9 U+00B9 onesuperior +!BA U+00BA ordmasculine +!BB U+00BB guillemotright +!BC U+0152 OE +!BD U+0153 oe +!BE U+0178 Ydieresis +!BF U+00BF questiondown +!C0 U+00C0 Agrave +!C1 U+00C1 Aacute +!C2 U+00C2 Acircumflex +!C3 U+00C3 Atilde +!C4 U+00C4 Adieresis +!C5 U+00C5 Aring +!C6 U+00C6 AE +!C7 U+00C7 Ccedilla +!C8 U+00C8 Egrave +!C9 U+00C9 Eacute +!CA U+00CA Ecircumflex +!CB U+00CB Edieresis +!CC U+00CC Igrave +!CD U+00CD Iacute +!CE U+00CE Icircumflex +!CF U+00CF Idieresis +!D0 U+00D0 Eth +!D1 U+00D1 Ntilde +!D2 U+00D2 Ograve +!D3 U+00D3 Oacute +!D4 U+00D4 Ocircumflex +!D5 U+00D5 Otilde +!D6 U+00D6 Odieresis +!D7 U+00D7 multiply +!D8 U+00D8 Oslash +!D9 U+00D9 Ugrave +!DA U+00DA Uacute +!DB U+00DB Ucircumflex +!DC U+00DC Udieresis +!DD U+00DD Yacute +!DE U+00DE Thorn +!DF U+00DF germandbls +!E0 U+00E0 agrave +!E1 U+00E1 aacute +!E2 U+00E2 acircumflex +!E3 U+00E3 atilde +!E4 U+00E4 adieresis +!E5 U+00E5 aring +!E6 U+00E6 ae +!E7 U+00E7 ccedilla +!E8 U+00E8 egrave +!E9 U+00E9 eacute +!EA U+00EA ecircumflex +!EB U+00EB edieresis +!EC U+00EC igrave +!ED U+00ED iacute +!EE U+00EE icircumflex +!EF U+00EF idieresis +!F0 U+00F0 eth +!F1 U+00F1 ntilde +!F2 U+00F2 ograve +!F3 U+00F3 oacute +!F4 U+00F4 ocircumflex +!F5 U+00F5 otilde +!F6 U+00F6 odieresis +!F7 U+00F7 divide +!F8 U+00F8 oslash +!F9 U+00F9 ugrave +!FA U+00FA uacute +!FB U+00FB ucircumflex +!FC U+00FC udieresis +!FD U+00FD yacute +!FE U+00FE thorn +!FF U+00FF ydieresis diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/iso-8859-16.map b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/iso-8859-16.map new file mode 100644 index 0000000..202c8fe --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/iso-8859-16.map @@ -0,0 +1,256 @@ +!00 U+0000 .notdef +!01 U+0001 .notdef +!02 U+0002 .notdef +!03 U+0003 .notdef +!04 U+0004 .notdef +!05 U+0005 .notdef +!06 U+0006 .notdef +!07 U+0007 .notdef +!08 U+0008 .notdef +!09 U+0009 .notdef +!0A U+000A .notdef +!0B U+000B .notdef +!0C U+000C .notdef +!0D U+000D .notdef +!0E U+000E .notdef +!0F U+000F .notdef +!10 U+0010 .notdef +!11 U+0011 .notdef +!12 U+0012 .notdef +!13 U+0013 .notdef +!14 U+0014 .notdef +!15 U+0015 .notdef +!16 U+0016 .notdef +!17 U+0017 .notdef +!18 U+0018 .notdef +!19 U+0019 .notdef +!1A U+001A .notdef +!1B U+001B .notdef +!1C U+001C .notdef +!1D U+001D .notdef +!1E U+001E .notdef +!1F U+001F .notdef +!20 U+0020 space +!21 U+0021 exclam +!22 U+0022 quotedbl +!23 U+0023 numbersign +!24 U+0024 dollar +!25 U+0025 percent +!26 U+0026 ampersand +!27 U+0027 quotesingle +!28 U+0028 parenleft +!29 U+0029 parenright +!2A U+002A asterisk +!2B U+002B plus +!2C U+002C comma +!2D U+002D hyphen +!2E U+002E period +!2F U+002F slash +!30 U+0030 zero +!31 U+0031 one +!32 U+0032 two +!33 U+0033 three +!34 U+0034 four +!35 U+0035 five +!36 U+0036 six +!37 U+0037 seven +!38 U+0038 eight +!39 U+0039 nine +!3A U+003A colon +!3B U+003B semicolon +!3C U+003C less +!3D U+003D equal +!3E U+003E greater +!3F U+003F question +!40 U+0040 at +!41 U+0041 A +!42 U+0042 B +!43 U+0043 C +!44 U+0044 D +!45 U+0045 E +!46 U+0046 F +!47 U+0047 G +!48 U+0048 H +!49 U+0049 I +!4A U+004A J +!4B U+004B K +!4C U+004C L +!4D U+004D M +!4E U+004E N +!4F U+004F O +!50 U+0050 P +!51 U+0051 Q +!52 U+0052 R +!53 U+0053 S +!54 U+0054 T +!55 U+0055 U +!56 U+0056 V +!57 U+0057 W +!58 U+0058 X +!59 U+0059 Y +!5A U+005A Z +!5B U+005B bracketleft +!5C U+005C backslash +!5D U+005D bracketright +!5E U+005E asciicircum +!5F U+005F underscore +!60 U+0060 grave +!61 U+0061 a +!62 U+0062 b +!63 U+0063 c +!64 U+0064 d +!65 U+0065 e +!66 U+0066 f +!67 U+0067 g +!68 U+0068 h +!69 U+0069 i +!6A U+006A j +!6B U+006B k +!6C U+006C l +!6D U+006D m +!6E U+006E n +!6F U+006F o +!70 U+0070 p +!71 U+0071 q +!72 U+0072 r +!73 U+0073 s +!74 U+0074 t +!75 U+0075 u +!76 U+0076 v +!77 U+0077 w +!78 U+0078 x +!79 U+0079 y +!7A U+007A z +!7B U+007B braceleft +!7C U+007C bar +!7D U+007D braceright +!7E U+007E asciitilde +!7F U+007F .notdef +!80 U+0080 .notdef +!81 U+0081 .notdef +!82 U+0082 .notdef +!83 U+0083 .notdef +!84 U+0084 .notdef +!85 U+0085 .notdef +!86 U+0086 .notdef +!87 U+0087 .notdef +!88 U+0088 .notdef +!89 U+0089 .notdef +!8A U+008A .notdef +!8B U+008B .notdef +!8C U+008C .notdef +!8D U+008D .notdef +!8E U+008E .notdef +!8F U+008F .notdef +!90 U+0090 .notdef +!91 U+0091 .notdef +!92 U+0092 .notdef +!93 U+0093 .notdef +!94 U+0094 .notdef +!95 U+0095 .notdef +!96 U+0096 .notdef +!97 U+0097 .notdef +!98 U+0098 .notdef +!99 U+0099 .notdef +!9A U+009A .notdef +!9B U+009B .notdef +!9C U+009C .notdef +!9D U+009D .notdef +!9E U+009E .notdef +!9F U+009F .notdef +!A0 U+00A0 space +!A1 U+0104 Aogonek +!A2 U+0105 aogonek +!A3 U+0141 Lslash +!A4 U+20AC Euro +!A5 U+201E quotedblbase +!A6 U+0160 Scaron +!A7 U+00A7 section +!A8 U+0161 scaron +!A9 U+00A9 copyright +!AA U+0218 Scommaaccent +!AB U+00AB guillemotleft +!AC U+0179 Zacute +!AD U+00AD hyphen +!AE U+017A zacute +!AF U+017B Zdotaccent +!B0 U+00B0 degree +!B1 U+00B1 plusminus +!B2 U+010C Ccaron +!B3 U+0142 lslash +!B4 U+017D Zcaron +!B5 U+201D quotedblright +!B6 U+00B6 paragraph +!B7 U+00B7 periodcentered +!B8 U+017E zcaron +!B9 U+010D ccaron +!BA U+0219 scommaaccent +!BB U+00BB guillemotright +!BC U+0152 OE +!BD U+0153 oe +!BE U+0178 Ydieresis +!BF U+017C zdotaccent +!C0 U+00C0 Agrave +!C1 U+00C1 Aacute +!C2 U+00C2 Acircumflex +!C3 U+0102 Abreve +!C4 U+00C4 Adieresis +!C5 U+0106 Cacute +!C6 U+00C6 AE +!C7 U+00C7 Ccedilla +!C8 U+00C8 Egrave +!C9 U+00C9 Eacute +!CA U+00CA Ecircumflex +!CB U+00CB Edieresis +!CC U+00CC Igrave +!CD U+00CD Iacute +!CE U+00CE Icircumflex +!CF U+00CF Idieresis +!D0 U+0110 Dcroat +!D1 U+0143 Nacute +!D2 U+00D2 Ograve +!D3 U+00D3 Oacute +!D4 U+00D4 Ocircumflex +!D5 U+0150 Ohungarumlaut +!D6 U+00D6 Odieresis +!D7 U+015A Sacute +!D8 U+0170 Uhungarumlaut +!D9 U+00D9 Ugrave +!DA U+00DA Uacute +!DB U+00DB Ucircumflex +!DC U+00DC Udieresis +!DD U+0118 Eogonek +!DE U+021A Tcommaaccent +!DF U+00DF germandbls +!E0 U+00E0 agrave +!E1 U+00E1 aacute +!E2 U+00E2 acircumflex +!E3 U+0103 abreve +!E4 U+00E4 adieresis +!E5 U+0107 cacute +!E6 U+00E6 ae +!E7 U+00E7 ccedilla +!E8 U+00E8 egrave +!E9 U+00E9 eacute +!EA U+00EA ecircumflex +!EB U+00EB edieresis +!EC U+00EC igrave +!ED U+00ED iacute +!EE U+00EE icircumflex +!EF U+00EF idieresis +!F0 U+0111 dcroat +!F1 U+0144 nacute +!F2 U+00F2 ograve +!F3 U+00F3 oacute +!F4 U+00F4 ocircumflex +!F5 U+0151 ohungarumlaut +!F6 U+00F6 odieresis +!F7 U+015B sacute +!F8 U+0171 uhungarumlaut +!F9 U+00F9 ugrave +!FA U+00FA uacute +!FB U+00FB ucircumflex +!FC U+00FC udieresis +!FD U+0119 eogonek +!FE U+021B tcommaaccent +!FF U+00FF ydieresis diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/iso-8859-2.map b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/iso-8859-2.map new file mode 100644 index 0000000..65ae09f --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/iso-8859-2.map @@ -0,0 +1,256 @@ +!00 U+0000 .notdef +!01 U+0001 .notdef +!02 U+0002 .notdef +!03 U+0003 .notdef +!04 U+0004 .notdef +!05 U+0005 .notdef +!06 U+0006 .notdef +!07 U+0007 .notdef +!08 U+0008 .notdef +!09 U+0009 .notdef +!0A U+000A .notdef +!0B U+000B .notdef +!0C U+000C .notdef +!0D U+000D .notdef +!0E U+000E .notdef +!0F U+000F .notdef +!10 U+0010 .notdef +!11 U+0011 .notdef +!12 U+0012 .notdef +!13 U+0013 .notdef +!14 U+0014 .notdef +!15 U+0015 .notdef +!16 U+0016 .notdef +!17 U+0017 .notdef +!18 U+0018 .notdef +!19 U+0019 .notdef +!1A U+001A .notdef +!1B U+001B .notdef +!1C U+001C .notdef +!1D U+001D .notdef +!1E U+001E .notdef +!1F U+001F .notdef +!20 U+0020 space +!21 U+0021 exclam +!22 U+0022 quotedbl +!23 U+0023 numbersign +!24 U+0024 dollar +!25 U+0025 percent +!26 U+0026 ampersand +!27 U+0027 quotesingle +!28 U+0028 parenleft +!29 U+0029 parenright +!2A U+002A asterisk +!2B U+002B plus +!2C U+002C comma +!2D U+002D hyphen +!2E U+002E period +!2F U+002F slash +!30 U+0030 zero +!31 U+0031 one +!32 U+0032 two +!33 U+0033 three +!34 U+0034 four +!35 U+0035 five +!36 U+0036 six +!37 U+0037 seven +!38 U+0038 eight +!39 U+0039 nine +!3A U+003A colon +!3B U+003B semicolon +!3C U+003C less +!3D U+003D equal +!3E U+003E greater +!3F U+003F question +!40 U+0040 at +!41 U+0041 A +!42 U+0042 B +!43 U+0043 C +!44 U+0044 D +!45 U+0045 E +!46 U+0046 F +!47 U+0047 G +!48 U+0048 H +!49 U+0049 I +!4A U+004A J +!4B U+004B K +!4C U+004C L +!4D U+004D M +!4E U+004E N +!4F U+004F O +!50 U+0050 P +!51 U+0051 Q +!52 U+0052 R +!53 U+0053 S +!54 U+0054 T +!55 U+0055 U +!56 U+0056 V +!57 U+0057 W +!58 U+0058 X +!59 U+0059 Y +!5A U+005A Z +!5B U+005B bracketleft +!5C U+005C backslash +!5D U+005D bracketright +!5E U+005E asciicircum +!5F U+005F underscore +!60 U+0060 grave +!61 U+0061 a +!62 U+0062 b +!63 U+0063 c +!64 U+0064 d +!65 U+0065 e +!66 U+0066 f +!67 U+0067 g +!68 U+0068 h +!69 U+0069 i +!6A U+006A j +!6B U+006B k +!6C U+006C l +!6D U+006D m +!6E U+006E n +!6F U+006F o +!70 U+0070 p +!71 U+0071 q +!72 U+0072 r +!73 U+0073 s +!74 U+0074 t +!75 U+0075 u +!76 U+0076 v +!77 U+0077 w +!78 U+0078 x +!79 U+0079 y +!7A U+007A z +!7B U+007B braceleft +!7C U+007C bar +!7D U+007D braceright +!7E U+007E asciitilde +!7F U+007F .notdef +!80 U+0080 .notdef +!81 U+0081 .notdef +!82 U+0082 .notdef +!83 U+0083 .notdef +!84 U+0084 .notdef +!85 U+0085 .notdef +!86 U+0086 .notdef +!87 U+0087 .notdef +!88 U+0088 .notdef +!89 U+0089 .notdef +!8A U+008A .notdef +!8B U+008B .notdef +!8C U+008C .notdef +!8D U+008D .notdef +!8E U+008E .notdef +!8F U+008F .notdef +!90 U+0090 .notdef +!91 U+0091 .notdef +!92 U+0092 .notdef +!93 U+0093 .notdef +!94 U+0094 .notdef +!95 U+0095 .notdef +!96 U+0096 .notdef +!97 U+0097 .notdef +!98 U+0098 .notdef +!99 U+0099 .notdef +!9A U+009A .notdef +!9B U+009B .notdef +!9C U+009C .notdef +!9D U+009D .notdef +!9E U+009E .notdef +!9F U+009F .notdef +!A0 U+00A0 space +!A1 U+0104 Aogonek +!A2 U+02D8 breve +!A3 U+0141 Lslash +!A4 U+00A4 currency +!A5 U+013D Lcaron +!A6 U+015A Sacute +!A7 U+00A7 section +!A8 U+00A8 dieresis +!A9 U+0160 Scaron +!AA U+015E Scedilla +!AB U+0164 Tcaron +!AC U+0179 Zacute +!AD U+00AD hyphen +!AE U+017D Zcaron +!AF U+017B Zdotaccent +!B0 U+00B0 degree +!B1 U+0105 aogonek +!B2 U+02DB ogonek +!B3 U+0142 lslash +!B4 U+00B4 acute +!B5 U+013E lcaron +!B6 U+015B sacute +!B7 U+02C7 caron +!B8 U+00B8 cedilla +!B9 U+0161 scaron +!BA U+015F scedilla +!BB U+0165 tcaron +!BC U+017A zacute +!BD U+02DD hungarumlaut +!BE U+017E zcaron +!BF U+017C zdotaccent +!C0 U+0154 Racute +!C1 U+00C1 Aacute +!C2 U+00C2 Acircumflex +!C3 U+0102 Abreve +!C4 U+00C4 Adieresis +!C5 U+0139 Lacute +!C6 U+0106 Cacute +!C7 U+00C7 Ccedilla +!C8 U+010C Ccaron +!C9 U+00C9 Eacute +!CA U+0118 Eogonek +!CB U+00CB Edieresis +!CC U+011A Ecaron +!CD U+00CD Iacute +!CE U+00CE Icircumflex +!CF U+010E Dcaron +!D0 U+0110 Dcroat +!D1 U+0143 Nacute +!D2 U+0147 Ncaron +!D3 U+00D3 Oacute +!D4 U+00D4 Ocircumflex +!D5 U+0150 Ohungarumlaut +!D6 U+00D6 Odieresis +!D7 U+00D7 multiply +!D8 U+0158 Rcaron +!D9 U+016E Uring +!DA U+00DA Uacute +!DB U+0170 Uhungarumlaut +!DC U+00DC Udieresis +!DD U+00DD Yacute +!DE U+0162 Tcommaaccent +!DF U+00DF germandbls +!E0 U+0155 racute +!E1 U+00E1 aacute +!E2 U+00E2 acircumflex +!E3 U+0103 abreve +!E4 U+00E4 adieresis +!E5 U+013A lacute +!E6 U+0107 cacute +!E7 U+00E7 ccedilla +!E8 U+010D ccaron +!E9 U+00E9 eacute +!EA U+0119 eogonek +!EB U+00EB edieresis +!EC U+011B ecaron +!ED U+00ED iacute +!EE U+00EE icircumflex +!EF U+010F dcaron +!F0 U+0111 dcroat +!F1 U+0144 nacute +!F2 U+0148 ncaron +!F3 U+00F3 oacute +!F4 U+00F4 ocircumflex +!F5 U+0151 ohungarumlaut +!F6 U+00F6 odieresis +!F7 U+00F7 divide +!F8 U+0159 rcaron +!F9 U+016F uring +!FA U+00FA uacute +!FB U+0171 uhungarumlaut +!FC U+00FC udieresis +!FD U+00FD yacute +!FE U+0163 tcommaaccent +!FF U+02D9 dotaccent diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/iso-8859-4.map b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/iso-8859-4.map new file mode 100644 index 0000000..a7d87bf --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/iso-8859-4.map @@ -0,0 +1,256 @@ +!00 U+0000 .notdef +!01 U+0001 .notdef +!02 U+0002 .notdef +!03 U+0003 .notdef +!04 U+0004 .notdef +!05 U+0005 .notdef +!06 U+0006 .notdef +!07 U+0007 .notdef +!08 U+0008 .notdef +!09 U+0009 .notdef +!0A U+000A .notdef +!0B U+000B .notdef +!0C U+000C .notdef +!0D U+000D .notdef +!0E U+000E .notdef +!0F U+000F .notdef +!10 U+0010 .notdef +!11 U+0011 .notdef +!12 U+0012 .notdef +!13 U+0013 .notdef +!14 U+0014 .notdef +!15 U+0015 .notdef +!16 U+0016 .notdef +!17 U+0017 .notdef +!18 U+0018 .notdef +!19 U+0019 .notdef +!1A U+001A .notdef +!1B U+001B .notdef +!1C U+001C .notdef +!1D U+001D .notdef +!1E U+001E .notdef +!1F U+001F .notdef +!20 U+0020 space +!21 U+0021 exclam +!22 U+0022 quotedbl +!23 U+0023 numbersign +!24 U+0024 dollar +!25 U+0025 percent +!26 U+0026 ampersand +!27 U+0027 quotesingle +!28 U+0028 parenleft +!29 U+0029 parenright +!2A U+002A asterisk +!2B U+002B plus +!2C U+002C comma +!2D U+002D hyphen +!2E U+002E period +!2F U+002F slash +!30 U+0030 zero +!31 U+0031 one +!32 U+0032 two +!33 U+0033 three +!34 U+0034 four +!35 U+0035 five +!36 U+0036 six +!37 U+0037 seven +!38 U+0038 eight +!39 U+0039 nine +!3A U+003A colon +!3B U+003B semicolon +!3C U+003C less +!3D U+003D equal +!3E U+003E greater +!3F U+003F question +!40 U+0040 at +!41 U+0041 A +!42 U+0042 B +!43 U+0043 C +!44 U+0044 D +!45 U+0045 E +!46 U+0046 F +!47 U+0047 G +!48 U+0048 H +!49 U+0049 I +!4A U+004A J +!4B U+004B K +!4C U+004C L +!4D U+004D M +!4E U+004E N +!4F U+004F O +!50 U+0050 P +!51 U+0051 Q +!52 U+0052 R +!53 U+0053 S +!54 U+0054 T +!55 U+0055 U +!56 U+0056 V +!57 U+0057 W +!58 U+0058 X +!59 U+0059 Y +!5A U+005A Z +!5B U+005B bracketleft +!5C U+005C backslash +!5D U+005D bracketright +!5E U+005E asciicircum +!5F U+005F underscore +!60 U+0060 grave +!61 U+0061 a +!62 U+0062 b +!63 U+0063 c +!64 U+0064 d +!65 U+0065 e +!66 U+0066 f +!67 U+0067 g +!68 U+0068 h +!69 U+0069 i +!6A U+006A j +!6B U+006B k +!6C U+006C l +!6D U+006D m +!6E U+006E n +!6F U+006F o +!70 U+0070 p +!71 U+0071 q +!72 U+0072 r +!73 U+0073 s +!74 U+0074 t +!75 U+0075 u +!76 U+0076 v +!77 U+0077 w +!78 U+0078 x +!79 U+0079 y +!7A U+007A z +!7B U+007B braceleft +!7C U+007C bar +!7D U+007D braceright +!7E U+007E asciitilde +!7F U+007F .notdef +!80 U+0080 .notdef +!81 U+0081 .notdef +!82 U+0082 .notdef +!83 U+0083 .notdef +!84 U+0084 .notdef +!85 U+0085 .notdef +!86 U+0086 .notdef +!87 U+0087 .notdef +!88 U+0088 .notdef +!89 U+0089 .notdef +!8A U+008A .notdef +!8B U+008B .notdef +!8C U+008C .notdef +!8D U+008D .notdef +!8E U+008E .notdef +!8F U+008F .notdef +!90 U+0090 .notdef +!91 U+0091 .notdef +!92 U+0092 .notdef +!93 U+0093 .notdef +!94 U+0094 .notdef +!95 U+0095 .notdef +!96 U+0096 .notdef +!97 U+0097 .notdef +!98 U+0098 .notdef +!99 U+0099 .notdef +!9A U+009A .notdef +!9B U+009B .notdef +!9C U+009C .notdef +!9D U+009D .notdef +!9E U+009E .notdef +!9F U+009F .notdef +!A0 U+00A0 space +!A1 U+0104 Aogonek +!A2 U+0138 kgreenlandic +!A3 U+0156 Rcommaaccent +!A4 U+00A4 currency +!A5 U+0128 Itilde +!A6 U+013B Lcommaaccent +!A7 U+00A7 section +!A8 U+00A8 dieresis +!A9 U+0160 Scaron +!AA U+0112 Emacron +!AB U+0122 Gcommaaccent +!AC U+0166 Tbar +!AD U+00AD hyphen +!AE U+017D Zcaron +!AF U+00AF macron +!B0 U+00B0 degree +!B1 U+0105 aogonek +!B2 U+02DB ogonek +!B3 U+0157 rcommaaccent +!B4 U+00B4 acute +!B5 U+0129 itilde +!B6 U+013C lcommaaccent +!B7 U+02C7 caron +!B8 U+00B8 cedilla +!B9 U+0161 scaron +!BA U+0113 emacron +!BB U+0123 gcommaaccent +!BC U+0167 tbar +!BD U+014A Eng +!BE U+017E zcaron +!BF U+014B eng +!C0 U+0100 Amacron +!C1 U+00C1 Aacute +!C2 U+00C2 Acircumflex +!C3 U+00C3 Atilde +!C4 U+00C4 Adieresis +!C5 U+00C5 Aring +!C6 U+00C6 AE +!C7 U+012E Iogonek +!C8 U+010C Ccaron +!C9 U+00C9 Eacute +!CA U+0118 Eogonek +!CB U+00CB Edieresis +!CC U+0116 Edotaccent +!CD U+00CD Iacute +!CE U+00CE Icircumflex +!CF U+012A Imacron +!D0 U+0110 Dcroat +!D1 U+0145 Ncommaaccent +!D2 U+014C Omacron +!D3 U+0136 Kcommaaccent +!D4 U+00D4 Ocircumflex +!D5 U+00D5 Otilde +!D6 U+00D6 Odieresis +!D7 U+00D7 multiply +!D8 U+00D8 Oslash +!D9 U+0172 Uogonek +!DA U+00DA Uacute +!DB U+00DB Ucircumflex +!DC U+00DC Udieresis +!DD U+0168 Utilde +!DE U+016A Umacron +!DF U+00DF germandbls +!E0 U+0101 amacron +!E1 U+00E1 aacute +!E2 U+00E2 acircumflex +!E3 U+00E3 atilde +!E4 U+00E4 adieresis +!E5 U+00E5 aring +!E6 U+00E6 ae +!E7 U+012F iogonek +!E8 U+010D ccaron +!E9 U+00E9 eacute +!EA U+0119 eogonek +!EB U+00EB edieresis +!EC U+0117 edotaccent +!ED U+00ED iacute +!EE U+00EE icircumflex +!EF U+012B imacron +!F0 U+0111 dcroat +!F1 U+0146 ncommaaccent +!F2 U+014D omacron +!F3 U+0137 kcommaaccent +!F4 U+00F4 ocircumflex +!F5 U+00F5 otilde +!F6 U+00F6 odieresis +!F7 U+00F7 divide +!F8 U+00F8 oslash +!F9 U+0173 uogonek +!FA U+00FA uacute +!FB U+00FB ucircumflex +!FC U+00FC udieresis +!FD U+0169 utilde +!FE U+016B umacron +!FF U+02D9 dotaccent diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/iso-8859-5.map b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/iso-8859-5.map new file mode 100644 index 0000000..f9cd4ed --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/iso-8859-5.map @@ -0,0 +1,256 @@ +!00 U+0000 .notdef +!01 U+0001 .notdef +!02 U+0002 .notdef +!03 U+0003 .notdef +!04 U+0004 .notdef +!05 U+0005 .notdef +!06 U+0006 .notdef +!07 U+0007 .notdef +!08 U+0008 .notdef +!09 U+0009 .notdef +!0A U+000A .notdef +!0B U+000B .notdef +!0C U+000C .notdef +!0D U+000D .notdef +!0E U+000E .notdef +!0F U+000F .notdef +!10 U+0010 .notdef +!11 U+0011 .notdef +!12 U+0012 .notdef +!13 U+0013 .notdef +!14 U+0014 .notdef +!15 U+0015 .notdef +!16 U+0016 .notdef +!17 U+0017 .notdef +!18 U+0018 .notdef +!19 U+0019 .notdef +!1A U+001A .notdef +!1B U+001B .notdef +!1C U+001C .notdef +!1D U+001D .notdef +!1E U+001E .notdef +!1F U+001F .notdef +!20 U+0020 space +!21 U+0021 exclam +!22 U+0022 quotedbl +!23 U+0023 numbersign +!24 U+0024 dollar +!25 U+0025 percent +!26 U+0026 ampersand +!27 U+0027 quotesingle +!28 U+0028 parenleft +!29 U+0029 parenright +!2A U+002A asterisk +!2B U+002B plus +!2C U+002C comma +!2D U+002D hyphen +!2E U+002E period +!2F U+002F slash +!30 U+0030 zero +!31 U+0031 one +!32 U+0032 two +!33 U+0033 three +!34 U+0034 four +!35 U+0035 five +!36 U+0036 six +!37 U+0037 seven +!38 U+0038 eight +!39 U+0039 nine +!3A U+003A colon +!3B U+003B semicolon +!3C U+003C less +!3D U+003D equal +!3E U+003E greater +!3F U+003F question +!40 U+0040 at +!41 U+0041 A +!42 U+0042 B +!43 U+0043 C +!44 U+0044 D +!45 U+0045 E +!46 U+0046 F +!47 U+0047 G +!48 U+0048 H +!49 U+0049 I +!4A U+004A J +!4B U+004B K +!4C U+004C L +!4D U+004D M +!4E U+004E N +!4F U+004F O +!50 U+0050 P +!51 U+0051 Q +!52 U+0052 R +!53 U+0053 S +!54 U+0054 T +!55 U+0055 U +!56 U+0056 V +!57 U+0057 W +!58 U+0058 X +!59 U+0059 Y +!5A U+005A Z +!5B U+005B bracketleft +!5C U+005C backslash +!5D U+005D bracketright +!5E U+005E asciicircum +!5F U+005F underscore +!60 U+0060 grave +!61 U+0061 a +!62 U+0062 b +!63 U+0063 c +!64 U+0064 d +!65 U+0065 e +!66 U+0066 f +!67 U+0067 g +!68 U+0068 h +!69 U+0069 i +!6A U+006A j +!6B U+006B k +!6C U+006C l +!6D U+006D m +!6E U+006E n +!6F U+006F o +!70 U+0070 p +!71 U+0071 q +!72 U+0072 r +!73 U+0073 s +!74 U+0074 t +!75 U+0075 u +!76 U+0076 v +!77 U+0077 w +!78 U+0078 x +!79 U+0079 y +!7A U+007A z +!7B U+007B braceleft +!7C U+007C bar +!7D U+007D braceright +!7E U+007E asciitilde +!7F U+007F .notdef +!80 U+0080 .notdef +!81 U+0081 .notdef +!82 U+0082 .notdef +!83 U+0083 .notdef +!84 U+0084 .notdef +!85 U+0085 .notdef +!86 U+0086 .notdef +!87 U+0087 .notdef +!88 U+0088 .notdef +!89 U+0089 .notdef +!8A U+008A .notdef +!8B U+008B .notdef +!8C U+008C .notdef +!8D U+008D .notdef +!8E U+008E .notdef +!8F U+008F .notdef +!90 U+0090 .notdef +!91 U+0091 .notdef +!92 U+0092 .notdef +!93 U+0093 .notdef +!94 U+0094 .notdef +!95 U+0095 .notdef +!96 U+0096 .notdef +!97 U+0097 .notdef +!98 U+0098 .notdef +!99 U+0099 .notdef +!9A U+009A .notdef +!9B U+009B .notdef +!9C U+009C .notdef +!9D U+009D .notdef +!9E U+009E .notdef +!9F U+009F .notdef +!A0 U+00A0 space +!A1 U+0401 afii10023 +!A2 U+0402 afii10051 +!A3 U+0403 afii10052 +!A4 U+0404 afii10053 +!A5 U+0405 afii10054 +!A6 U+0406 afii10055 +!A7 U+0407 afii10056 +!A8 U+0408 afii10057 +!A9 U+0409 afii10058 +!AA U+040A afii10059 +!AB U+040B afii10060 +!AC U+040C afii10061 +!AD U+00AD hyphen +!AE U+040E afii10062 +!AF U+040F afii10145 +!B0 U+0410 afii10017 +!B1 U+0411 afii10018 +!B2 U+0412 afii10019 +!B3 U+0413 afii10020 +!B4 U+0414 afii10021 +!B5 U+0415 afii10022 +!B6 U+0416 afii10024 +!B7 U+0417 afii10025 +!B8 U+0418 afii10026 +!B9 U+0419 afii10027 +!BA U+041A afii10028 +!BB U+041B afii10029 +!BC U+041C afii10030 +!BD U+041D afii10031 +!BE U+041E afii10032 +!BF U+041F afii10033 +!C0 U+0420 afii10034 +!C1 U+0421 afii10035 +!C2 U+0422 afii10036 +!C3 U+0423 afii10037 +!C4 U+0424 afii10038 +!C5 U+0425 afii10039 +!C6 U+0426 afii10040 +!C7 U+0427 afii10041 +!C8 U+0428 afii10042 +!C9 U+0429 afii10043 +!CA U+042A afii10044 +!CB U+042B afii10045 +!CC U+042C afii10046 +!CD U+042D afii10047 +!CE U+042E afii10048 +!CF U+042F afii10049 +!D0 U+0430 afii10065 +!D1 U+0431 afii10066 +!D2 U+0432 afii10067 +!D3 U+0433 afii10068 +!D4 U+0434 afii10069 +!D5 U+0435 afii10070 +!D6 U+0436 afii10072 +!D7 U+0437 afii10073 +!D8 U+0438 afii10074 +!D9 U+0439 afii10075 +!DA U+043A afii10076 +!DB U+043B afii10077 +!DC U+043C afii10078 +!DD U+043D afii10079 +!DE U+043E afii10080 +!DF U+043F afii10081 +!E0 U+0440 afii10082 +!E1 U+0441 afii10083 +!E2 U+0442 afii10084 +!E3 U+0443 afii10085 +!E4 U+0444 afii10086 +!E5 U+0445 afii10087 +!E6 U+0446 afii10088 +!E7 U+0447 afii10089 +!E8 U+0448 afii10090 +!E9 U+0449 afii10091 +!EA U+044A afii10092 +!EB U+044B afii10093 +!EC U+044C afii10094 +!ED U+044D afii10095 +!EE U+044E afii10096 +!EF U+044F afii10097 +!F0 U+2116 afii61352 +!F1 U+0451 afii10071 +!F2 U+0452 afii10099 +!F3 U+0453 afii10100 +!F4 U+0454 afii10101 +!F5 U+0455 afii10102 +!F6 U+0456 afii10103 +!F7 U+0457 afii10104 +!F8 U+0458 afii10105 +!F9 U+0459 afii10106 +!FA U+045A afii10107 +!FB U+045B afii10108 +!FC U+045C afii10109 +!FD U+00A7 section +!FE U+045E afii10110 +!FF U+045F afii10193 diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/iso-8859-7.map b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/iso-8859-7.map new file mode 100644 index 0000000..e163796 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/iso-8859-7.map @@ -0,0 +1,250 @@ +!00 U+0000 .notdef +!01 U+0001 .notdef +!02 U+0002 .notdef +!03 U+0003 .notdef +!04 U+0004 .notdef +!05 U+0005 .notdef +!06 U+0006 .notdef +!07 U+0007 .notdef +!08 U+0008 .notdef +!09 U+0009 .notdef +!0A U+000A .notdef +!0B U+000B .notdef +!0C U+000C .notdef +!0D U+000D .notdef +!0E U+000E .notdef +!0F U+000F .notdef +!10 U+0010 .notdef +!11 U+0011 .notdef +!12 U+0012 .notdef +!13 U+0013 .notdef +!14 U+0014 .notdef +!15 U+0015 .notdef +!16 U+0016 .notdef +!17 U+0017 .notdef +!18 U+0018 .notdef +!19 U+0019 .notdef +!1A U+001A .notdef +!1B U+001B .notdef +!1C U+001C .notdef +!1D U+001D .notdef +!1E U+001E .notdef +!1F U+001F .notdef +!20 U+0020 space +!21 U+0021 exclam +!22 U+0022 quotedbl +!23 U+0023 numbersign +!24 U+0024 dollar +!25 U+0025 percent +!26 U+0026 ampersand +!27 U+0027 quotesingle +!28 U+0028 parenleft +!29 U+0029 parenright +!2A U+002A asterisk +!2B U+002B plus +!2C U+002C comma +!2D U+002D hyphen +!2E U+002E period +!2F U+002F slash +!30 U+0030 zero +!31 U+0031 one +!32 U+0032 two +!33 U+0033 three +!34 U+0034 four +!35 U+0035 five +!36 U+0036 six +!37 U+0037 seven +!38 U+0038 eight +!39 U+0039 nine +!3A U+003A colon +!3B U+003B semicolon +!3C U+003C less +!3D U+003D equal +!3E U+003E greater +!3F U+003F question +!40 U+0040 at +!41 U+0041 A +!42 U+0042 B +!43 U+0043 C +!44 U+0044 D +!45 U+0045 E +!46 U+0046 F +!47 U+0047 G +!48 U+0048 H +!49 U+0049 I +!4A U+004A J +!4B U+004B K +!4C U+004C L +!4D U+004D M +!4E U+004E N +!4F U+004F O +!50 U+0050 P +!51 U+0051 Q +!52 U+0052 R +!53 U+0053 S +!54 U+0054 T +!55 U+0055 U +!56 U+0056 V +!57 U+0057 W +!58 U+0058 X +!59 U+0059 Y +!5A U+005A Z +!5B U+005B bracketleft +!5C U+005C backslash +!5D U+005D bracketright +!5E U+005E asciicircum +!5F U+005F underscore +!60 U+0060 grave +!61 U+0061 a +!62 U+0062 b +!63 U+0063 c +!64 U+0064 d +!65 U+0065 e +!66 U+0066 f +!67 U+0067 g +!68 U+0068 h +!69 U+0069 i +!6A U+006A j +!6B U+006B k +!6C U+006C l +!6D U+006D m +!6E U+006E n +!6F U+006F o +!70 U+0070 p +!71 U+0071 q +!72 U+0072 r +!73 U+0073 s +!74 U+0074 t +!75 U+0075 u +!76 U+0076 v +!77 U+0077 w +!78 U+0078 x +!79 U+0079 y +!7A U+007A z +!7B U+007B braceleft +!7C U+007C bar +!7D U+007D braceright +!7E U+007E asciitilde +!7F U+007F .notdef +!80 U+0080 .notdef +!81 U+0081 .notdef +!82 U+0082 .notdef +!83 U+0083 .notdef +!84 U+0084 .notdef +!85 U+0085 .notdef +!86 U+0086 .notdef +!87 U+0087 .notdef +!88 U+0088 .notdef +!89 U+0089 .notdef +!8A U+008A .notdef +!8B U+008B .notdef +!8C U+008C .notdef +!8D U+008D .notdef +!8E U+008E .notdef +!8F U+008F .notdef +!90 U+0090 .notdef +!91 U+0091 .notdef +!92 U+0092 .notdef +!93 U+0093 .notdef +!94 U+0094 .notdef +!95 U+0095 .notdef +!96 U+0096 .notdef +!97 U+0097 .notdef +!98 U+0098 .notdef +!99 U+0099 .notdef +!9A U+009A .notdef +!9B U+009B .notdef +!9C U+009C .notdef +!9D U+009D .notdef +!9E U+009E .notdef +!9F U+009F .notdef +!A0 U+00A0 space +!A1 U+2018 quoteleft +!A2 U+2019 quoteright +!A3 U+00A3 sterling +!A6 U+00A6 brokenbar +!A7 U+00A7 section +!A8 U+00A8 dieresis +!A9 U+00A9 copyright +!AB U+00AB guillemotleft +!AC U+00AC logicalnot +!AD U+00AD hyphen +!AF U+2015 afii00208 +!B0 U+00B0 degree +!B1 U+00B1 plusminus +!B2 U+00B2 twosuperior +!B3 U+00B3 threesuperior +!B4 U+0384 tonos +!B5 U+0385 dieresistonos +!B6 U+0386 Alphatonos +!B7 U+00B7 periodcentered +!B8 U+0388 Epsilontonos +!B9 U+0389 Etatonos +!BA U+038A Iotatonos +!BB U+00BB guillemotright +!BC U+038C Omicrontonos +!BD U+00BD onehalf +!BE U+038E Upsilontonos +!BF U+038F Omegatonos +!C0 U+0390 iotadieresistonos +!C1 U+0391 Alpha +!C2 U+0392 Beta +!C3 U+0393 Gamma +!C4 U+0394 Delta +!C5 U+0395 Epsilon +!C6 U+0396 Zeta +!C7 U+0397 Eta +!C8 U+0398 Theta +!C9 U+0399 Iota +!CA U+039A Kappa +!CB U+039B Lambda +!CC U+039C Mu +!CD U+039D Nu +!CE U+039E Xi +!CF U+039F Omicron +!D0 U+03A0 Pi +!D1 U+03A1 Rho +!D3 U+03A3 Sigma +!D4 U+03A4 Tau +!D5 U+03A5 Upsilon +!D6 U+03A6 Phi +!D7 U+03A7 Chi +!D8 U+03A8 Psi +!D9 U+03A9 Omega +!DA U+03AA Iotadieresis +!DB U+03AB Upsilondieresis +!DC U+03AC alphatonos +!DD U+03AD epsilontonos +!DE U+03AE etatonos +!DF U+03AF iotatonos +!E0 U+03B0 upsilondieresistonos +!E1 U+03B1 alpha +!E2 U+03B2 beta +!E3 U+03B3 gamma +!E4 U+03B4 delta +!E5 U+03B5 epsilon +!E6 U+03B6 zeta +!E7 U+03B7 eta +!E8 U+03B8 theta +!E9 U+03B9 iota +!EA U+03BA kappa +!EB U+03BB lambda +!EC U+03BC mu +!ED U+03BD nu +!EE U+03BE xi +!EF U+03BF omicron +!F0 U+03C0 pi +!F1 U+03C1 rho +!F2 U+03C2 sigma1 +!F3 U+03C3 sigma +!F4 U+03C4 tau +!F5 U+03C5 upsilon +!F6 U+03C6 phi +!F7 U+03C7 chi +!F8 U+03C8 psi +!F9 U+03C9 omega +!FA U+03CA iotadieresis +!FB U+03CB upsilondieresis +!FC U+03CC omicrontonos +!FD U+03CD upsilontonos +!FE U+03CE omegatonos diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/iso-8859-9.map b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/iso-8859-9.map new file mode 100644 index 0000000..48c123a --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/iso-8859-9.map @@ -0,0 +1,256 @@ +!00 U+0000 .notdef +!01 U+0001 .notdef +!02 U+0002 .notdef +!03 U+0003 .notdef +!04 U+0004 .notdef +!05 U+0005 .notdef +!06 U+0006 .notdef +!07 U+0007 .notdef +!08 U+0008 .notdef +!09 U+0009 .notdef +!0A U+000A .notdef +!0B U+000B .notdef +!0C U+000C .notdef +!0D U+000D .notdef +!0E U+000E .notdef +!0F U+000F .notdef +!10 U+0010 .notdef +!11 U+0011 .notdef +!12 U+0012 .notdef +!13 U+0013 .notdef +!14 U+0014 .notdef +!15 U+0015 .notdef +!16 U+0016 .notdef +!17 U+0017 .notdef +!18 U+0018 .notdef +!19 U+0019 .notdef +!1A U+001A .notdef +!1B U+001B .notdef +!1C U+001C .notdef +!1D U+001D .notdef +!1E U+001E .notdef +!1F U+001F .notdef +!20 U+0020 space +!21 U+0021 exclam +!22 U+0022 quotedbl +!23 U+0023 numbersign +!24 U+0024 dollar +!25 U+0025 percent +!26 U+0026 ampersand +!27 U+0027 quotesingle +!28 U+0028 parenleft +!29 U+0029 parenright +!2A U+002A asterisk +!2B U+002B plus +!2C U+002C comma +!2D U+002D hyphen +!2E U+002E period +!2F U+002F slash +!30 U+0030 zero +!31 U+0031 one +!32 U+0032 two +!33 U+0033 three +!34 U+0034 four +!35 U+0035 five +!36 U+0036 six +!37 U+0037 seven +!38 U+0038 eight +!39 U+0039 nine +!3A U+003A colon +!3B U+003B semicolon +!3C U+003C less +!3D U+003D equal +!3E U+003E greater +!3F U+003F question +!40 U+0040 at +!41 U+0041 A +!42 U+0042 B +!43 U+0043 C +!44 U+0044 D +!45 U+0045 E +!46 U+0046 F +!47 U+0047 G +!48 U+0048 H +!49 U+0049 I +!4A U+004A J +!4B U+004B K +!4C U+004C L +!4D U+004D M +!4E U+004E N +!4F U+004F O +!50 U+0050 P +!51 U+0051 Q +!52 U+0052 R +!53 U+0053 S +!54 U+0054 T +!55 U+0055 U +!56 U+0056 V +!57 U+0057 W +!58 U+0058 X +!59 U+0059 Y +!5A U+005A Z +!5B U+005B bracketleft +!5C U+005C backslash +!5D U+005D bracketright +!5E U+005E asciicircum +!5F U+005F underscore +!60 U+0060 grave +!61 U+0061 a +!62 U+0062 b +!63 U+0063 c +!64 U+0064 d +!65 U+0065 e +!66 U+0066 f +!67 U+0067 g +!68 U+0068 h +!69 U+0069 i +!6A U+006A j +!6B U+006B k +!6C U+006C l +!6D U+006D m +!6E U+006E n +!6F U+006F o +!70 U+0070 p +!71 U+0071 q +!72 U+0072 r +!73 U+0073 s +!74 U+0074 t +!75 U+0075 u +!76 U+0076 v +!77 U+0077 w +!78 U+0078 x +!79 U+0079 y +!7A U+007A z +!7B U+007B braceleft +!7C U+007C bar +!7D U+007D braceright +!7E U+007E asciitilde +!7F U+007F .notdef +!80 U+0080 .notdef +!81 U+0081 .notdef +!82 U+0082 .notdef +!83 U+0083 .notdef +!84 U+0084 .notdef +!85 U+0085 .notdef +!86 U+0086 .notdef +!87 U+0087 .notdef +!88 U+0088 .notdef +!89 U+0089 .notdef +!8A U+008A .notdef +!8B U+008B .notdef +!8C U+008C .notdef +!8D U+008D .notdef +!8E U+008E .notdef +!8F U+008F .notdef +!90 U+0090 .notdef +!91 U+0091 .notdef +!92 U+0092 .notdef +!93 U+0093 .notdef +!94 U+0094 .notdef +!95 U+0095 .notdef +!96 U+0096 .notdef +!97 U+0097 .notdef +!98 U+0098 .notdef +!99 U+0099 .notdef +!9A U+009A .notdef +!9B U+009B .notdef +!9C U+009C .notdef +!9D U+009D .notdef +!9E U+009E .notdef +!9F U+009F .notdef +!A0 U+00A0 space +!A1 U+00A1 exclamdown +!A2 U+00A2 cent +!A3 U+00A3 sterling +!A4 U+00A4 currency +!A5 U+00A5 yen +!A6 U+00A6 brokenbar +!A7 U+00A7 section +!A8 U+00A8 dieresis +!A9 U+00A9 copyright +!AA U+00AA ordfeminine +!AB U+00AB guillemotleft +!AC U+00AC logicalnot +!AD U+00AD hyphen +!AE U+00AE registered +!AF U+00AF macron +!B0 U+00B0 degree +!B1 U+00B1 plusminus +!B2 U+00B2 twosuperior +!B3 U+00B3 threesuperior +!B4 U+00B4 acute +!B5 U+00B5 mu +!B6 U+00B6 paragraph +!B7 U+00B7 periodcentered +!B8 U+00B8 cedilla +!B9 U+00B9 onesuperior +!BA U+00BA ordmasculine +!BB U+00BB guillemotright +!BC U+00BC onequarter +!BD U+00BD onehalf +!BE U+00BE threequarters +!BF U+00BF questiondown +!C0 U+00C0 Agrave +!C1 U+00C1 Aacute +!C2 U+00C2 Acircumflex +!C3 U+00C3 Atilde +!C4 U+00C4 Adieresis +!C5 U+00C5 Aring +!C6 U+00C6 AE +!C7 U+00C7 Ccedilla +!C8 U+00C8 Egrave +!C9 U+00C9 Eacute +!CA U+00CA Ecircumflex +!CB U+00CB Edieresis +!CC U+00CC Igrave +!CD U+00CD Iacute +!CE U+00CE Icircumflex +!CF U+00CF Idieresis +!D0 U+011E Gbreve +!D1 U+00D1 Ntilde +!D2 U+00D2 Ograve +!D3 U+00D3 Oacute +!D4 U+00D4 Ocircumflex +!D5 U+00D5 Otilde +!D6 U+00D6 Odieresis +!D7 U+00D7 multiply +!D8 U+00D8 Oslash +!D9 U+00D9 Ugrave +!DA U+00DA Uacute +!DB U+00DB Ucircumflex +!DC U+00DC Udieresis +!DD U+0130 Idotaccent +!DE U+015E Scedilla +!DF U+00DF germandbls +!E0 U+00E0 agrave +!E1 U+00E1 aacute +!E2 U+00E2 acircumflex +!E3 U+00E3 atilde +!E4 U+00E4 adieresis +!E5 U+00E5 aring +!E6 U+00E6 ae +!E7 U+00E7 ccedilla +!E8 U+00E8 egrave +!E9 U+00E9 eacute +!EA U+00EA ecircumflex +!EB U+00EB edieresis +!EC U+00EC igrave +!ED U+00ED iacute +!EE U+00EE icircumflex +!EF U+00EF idieresis +!F0 U+011F gbreve +!F1 U+00F1 ntilde +!F2 U+00F2 ograve +!F3 U+00F3 oacute +!F4 U+00F4 ocircumflex +!F5 U+00F5 otilde +!F6 U+00F6 odieresis +!F7 U+00F7 divide +!F8 U+00F8 oslash +!F9 U+00F9 ugrave +!FA U+00FA uacute +!FB U+00FB ucircumflex +!FC U+00FC udieresis +!FD U+0131 dotlessi +!FE U+015F scedilla +!FF U+00FF ydieresis diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/koi8-r.map b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/koi8-r.map new file mode 100644 index 0000000..6ad5d05 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/koi8-r.map @@ -0,0 +1,256 @@ +!00 U+0000 .notdef +!01 U+0001 .notdef +!02 U+0002 .notdef +!03 U+0003 .notdef +!04 U+0004 .notdef +!05 U+0005 .notdef +!06 U+0006 .notdef +!07 U+0007 .notdef +!08 U+0008 .notdef +!09 U+0009 .notdef +!0A U+000A .notdef +!0B U+000B .notdef +!0C U+000C .notdef +!0D U+000D .notdef +!0E U+000E .notdef +!0F U+000F .notdef +!10 U+0010 .notdef +!11 U+0011 .notdef +!12 U+0012 .notdef +!13 U+0013 .notdef +!14 U+0014 .notdef +!15 U+0015 .notdef +!16 U+0016 .notdef +!17 U+0017 .notdef +!18 U+0018 .notdef +!19 U+0019 .notdef +!1A U+001A .notdef +!1B U+001B .notdef +!1C U+001C .notdef +!1D U+001D .notdef +!1E U+001E .notdef +!1F U+001F .notdef +!20 U+0020 space +!21 U+0021 exclam +!22 U+0022 quotedbl +!23 U+0023 numbersign +!24 U+0024 dollar +!25 U+0025 percent +!26 U+0026 ampersand +!27 U+0027 quotesingle +!28 U+0028 parenleft +!29 U+0029 parenright +!2A U+002A asterisk +!2B U+002B plus +!2C U+002C comma +!2D U+002D hyphen +!2E U+002E period +!2F U+002F slash +!30 U+0030 zero +!31 U+0031 one +!32 U+0032 two +!33 U+0033 three +!34 U+0034 four +!35 U+0035 five +!36 U+0036 six +!37 U+0037 seven +!38 U+0038 eight +!39 U+0039 nine +!3A U+003A colon +!3B U+003B semicolon +!3C U+003C less +!3D U+003D equal +!3E U+003E greater +!3F U+003F question +!40 U+0040 at +!41 U+0041 A +!42 U+0042 B +!43 U+0043 C +!44 U+0044 D +!45 U+0045 E +!46 U+0046 F +!47 U+0047 G +!48 U+0048 H +!49 U+0049 I +!4A U+004A J +!4B U+004B K +!4C U+004C L +!4D U+004D M +!4E U+004E N +!4F U+004F O +!50 U+0050 P +!51 U+0051 Q +!52 U+0052 R +!53 U+0053 S +!54 U+0054 T +!55 U+0055 U +!56 U+0056 V +!57 U+0057 W +!58 U+0058 X +!59 U+0059 Y +!5A U+005A Z +!5B U+005B bracketleft +!5C U+005C backslash +!5D U+005D bracketright +!5E U+005E asciicircum +!5F U+005F underscore +!60 U+0060 grave +!61 U+0061 a +!62 U+0062 b +!63 U+0063 c +!64 U+0064 d +!65 U+0065 e +!66 U+0066 f +!67 U+0067 g +!68 U+0068 h +!69 U+0069 i +!6A U+006A j +!6B U+006B k +!6C U+006C l +!6D U+006D m +!6E U+006E n +!6F U+006F o +!70 U+0070 p +!71 U+0071 q +!72 U+0072 r +!73 U+0073 s +!74 U+0074 t +!75 U+0075 u +!76 U+0076 v +!77 U+0077 w +!78 U+0078 x +!79 U+0079 y +!7A U+007A z +!7B U+007B braceleft +!7C U+007C bar +!7D U+007D braceright +!7E U+007E asciitilde +!7F U+007F .notdef +!80 U+2500 SF100000 +!81 U+2502 SF110000 +!82 U+250C SF010000 +!83 U+2510 SF030000 +!84 U+2514 SF020000 +!85 U+2518 SF040000 +!86 U+251C SF080000 +!87 U+2524 SF090000 +!88 U+252C SF060000 +!89 U+2534 SF070000 +!8A U+253C SF050000 +!8B U+2580 upblock +!8C U+2584 dnblock +!8D U+2588 block +!8E U+258C lfblock +!8F U+2590 rtblock +!90 U+2591 ltshade +!91 U+2592 shade +!92 U+2593 dkshade +!93 U+2320 integraltp +!94 U+25A0 filledbox +!95 U+2219 periodcentered +!96 U+221A radical +!97 U+2248 approxequal +!98 U+2264 lessequal +!99 U+2265 greaterequal +!9A U+00A0 space +!9B U+2321 integralbt +!9C U+00B0 degree +!9D U+00B2 twosuperior +!9E U+00B7 periodcentered +!9F U+00F7 divide +!A0 U+2550 SF430000 +!A1 U+2551 SF240000 +!A2 U+2552 SF510000 +!A3 U+0451 afii10071 +!A4 U+2553 SF520000 +!A5 U+2554 SF390000 +!A6 U+2555 SF220000 +!A7 U+2556 SF210000 +!A8 U+2557 SF250000 +!A9 U+2558 SF500000 +!AA U+2559 SF490000 +!AB U+255A SF380000 +!AC U+255B SF280000 +!AD U+255C SF270000 +!AE U+255D SF260000 +!AF U+255E SF360000 +!B0 U+255F SF370000 +!B1 U+2560 SF420000 +!B2 U+2561 SF190000 +!B3 U+0401 afii10023 +!B4 U+2562 SF200000 +!B5 U+2563 SF230000 +!B6 U+2564 SF470000 +!B7 U+2565 SF480000 +!B8 U+2566 SF410000 +!B9 U+2567 SF450000 +!BA U+2568 SF460000 +!BB U+2569 SF400000 +!BC U+256A SF540000 +!BD U+256B SF530000 +!BE U+256C SF440000 +!BF U+00A9 copyright +!C0 U+044E afii10096 +!C1 U+0430 afii10065 +!C2 U+0431 afii10066 +!C3 U+0446 afii10088 +!C4 U+0434 afii10069 +!C5 U+0435 afii10070 +!C6 U+0444 afii10086 +!C7 U+0433 afii10068 +!C8 U+0445 afii10087 +!C9 U+0438 afii10074 +!CA U+0439 afii10075 +!CB U+043A afii10076 +!CC U+043B afii10077 +!CD U+043C afii10078 +!CE U+043D afii10079 +!CF U+043E afii10080 +!D0 U+043F afii10081 +!D1 U+044F afii10097 +!D2 U+0440 afii10082 +!D3 U+0441 afii10083 +!D4 U+0442 afii10084 +!D5 U+0443 afii10085 +!D6 U+0436 afii10072 +!D7 U+0432 afii10067 +!D8 U+044C afii10094 +!D9 U+044B afii10093 +!DA U+0437 afii10073 +!DB U+0448 afii10090 +!DC U+044D afii10095 +!DD U+0449 afii10091 +!DE U+0447 afii10089 +!DF U+044A afii10092 +!E0 U+042E afii10048 +!E1 U+0410 afii10017 +!E2 U+0411 afii10018 +!E3 U+0426 afii10040 +!E4 U+0414 afii10021 +!E5 U+0415 afii10022 +!E6 U+0424 afii10038 +!E7 U+0413 afii10020 +!E8 U+0425 afii10039 +!E9 U+0418 afii10026 +!EA U+0419 afii10027 +!EB U+041A afii10028 +!EC U+041B afii10029 +!ED U+041C afii10030 +!EE U+041D afii10031 +!EF U+041E afii10032 +!F0 U+041F afii10033 +!F1 U+042F afii10049 +!F2 U+0420 afii10034 +!F3 U+0421 afii10035 +!F4 U+0422 afii10036 +!F5 U+0423 afii10037 +!F6 U+0416 afii10024 +!F7 U+0412 afii10019 +!F8 U+042C afii10046 +!F9 U+042B afii10045 +!FA U+0417 afii10025 +!FB U+0428 afii10042 +!FC U+042D afii10047 +!FD U+0429 afii10043 +!FE U+0427 afii10041 +!FF U+042A afii10044 diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/koi8-u.map b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/koi8-u.map new file mode 100644 index 0000000..40a7e4f --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/maps/koi8-u.map @@ -0,0 +1,256 @@ +!00 U+0000 .notdef +!01 U+0001 .notdef +!02 U+0002 .notdef +!03 U+0003 .notdef +!04 U+0004 .notdef +!05 U+0005 .notdef +!06 U+0006 .notdef +!07 U+0007 .notdef +!08 U+0008 .notdef +!09 U+0009 .notdef +!0A U+000A .notdef +!0B U+000B .notdef +!0C U+000C .notdef +!0D U+000D .notdef +!0E U+000E .notdef +!0F U+000F .notdef +!10 U+0010 .notdef +!11 U+0011 .notdef +!12 U+0012 .notdef +!13 U+0013 .notdef +!14 U+0014 .notdef +!15 U+0015 .notdef +!16 U+0016 .notdef +!17 U+0017 .notdef +!18 U+0018 .notdef +!19 U+0019 .notdef +!1A U+001A .notdef +!1B U+001B .notdef +!1C U+001C .notdef +!1D U+001D .notdef +!1E U+001E .notdef +!1F U+001F .notdef +!20 U+0020 space +!21 U+0021 exclam +!22 U+0022 quotedbl +!23 U+0023 numbersign +!24 U+0024 dollar +!25 U+0025 percent +!26 U+0026 ampersand +!27 U+0027 quotesingle +!28 U+0028 parenleft +!29 U+0029 parenright +!2A U+002A asterisk +!2B U+002B plus +!2C U+002C comma +!2D U+002D hyphen +!2E U+002E period +!2F U+002F slash +!30 U+0030 zero +!31 U+0031 one +!32 U+0032 two +!33 U+0033 three +!34 U+0034 four +!35 U+0035 five +!36 U+0036 six +!37 U+0037 seven +!38 U+0038 eight +!39 U+0039 nine +!3A U+003A colon +!3B U+003B semicolon +!3C U+003C less +!3D U+003D equal +!3E U+003E greater +!3F U+003F question +!40 U+0040 at +!41 U+0041 A +!42 U+0042 B +!43 U+0043 C +!44 U+0044 D +!45 U+0045 E +!46 U+0046 F +!47 U+0047 G +!48 U+0048 H +!49 U+0049 I +!4A U+004A J +!4B U+004B K +!4C U+004C L +!4D U+004D M +!4E U+004E N +!4F U+004F O +!50 U+0050 P +!51 U+0051 Q +!52 U+0052 R +!53 U+0053 S +!54 U+0054 T +!55 U+0055 U +!56 U+0056 V +!57 U+0057 W +!58 U+0058 X +!59 U+0059 Y +!5A U+005A Z +!5B U+005B bracketleft +!5C U+005C backslash +!5D U+005D bracketright +!5E U+005E asciicircum +!5F U+005F underscore +!60 U+0060 grave +!61 U+0061 a +!62 U+0062 b +!63 U+0063 c +!64 U+0064 d +!65 U+0065 e +!66 U+0066 f +!67 U+0067 g +!68 U+0068 h +!69 U+0069 i +!6A U+006A j +!6B U+006B k +!6C U+006C l +!6D U+006D m +!6E U+006E n +!6F U+006F o +!70 U+0070 p +!71 U+0071 q +!72 U+0072 r +!73 U+0073 s +!74 U+0074 t +!75 U+0075 u +!76 U+0076 v +!77 U+0077 w +!78 U+0078 x +!79 U+0079 y +!7A U+007A z +!7B U+007B braceleft +!7C U+007C bar +!7D U+007D braceright +!7E U+007E asciitilde +!7F U+007F .notdef +!80 U+2500 SF100000 +!81 U+2502 SF110000 +!82 U+250C SF010000 +!83 U+2510 SF030000 +!84 U+2514 SF020000 +!85 U+2518 SF040000 +!86 U+251C SF080000 +!87 U+2524 SF090000 +!88 U+252C SF060000 +!89 U+2534 SF070000 +!8A U+253C SF050000 +!8B U+2580 upblock +!8C U+2584 dnblock +!8D U+2588 block +!8E U+258C lfblock +!8F U+2590 rtblock +!90 U+2591 ltshade +!91 U+2592 shade +!92 U+2593 dkshade +!93 U+2320 integraltp +!94 U+25A0 filledbox +!95 U+2022 bullet +!96 U+221A radical +!97 U+2248 approxequal +!98 U+2264 lessequal +!99 U+2265 greaterequal +!9A U+00A0 space +!9B U+2321 integralbt +!9C U+00B0 degree +!9D U+00B2 twosuperior +!9E U+00B7 periodcentered +!9F U+00F7 divide +!A0 U+2550 SF430000 +!A1 U+2551 SF240000 +!A2 U+2552 SF510000 +!A3 U+0451 afii10071 +!A4 U+0454 afii10101 +!A5 U+2554 SF390000 +!A6 U+0456 afii10103 +!A7 U+0457 afii10104 +!A8 U+2557 SF250000 +!A9 U+2558 SF500000 +!AA U+2559 SF490000 +!AB U+255A SF380000 +!AC U+255B SF280000 +!AD U+0491 afii10098 +!AE U+255D SF260000 +!AF U+255E SF360000 +!B0 U+255F SF370000 +!B1 U+2560 SF420000 +!B2 U+2561 SF190000 +!B3 U+0401 afii10023 +!B4 U+0404 afii10053 +!B5 U+2563 SF230000 +!B6 U+0406 afii10055 +!B7 U+0407 afii10056 +!B8 U+2566 SF410000 +!B9 U+2567 SF450000 +!BA U+2568 SF460000 +!BB U+2569 SF400000 +!BC U+256A SF540000 +!BD U+0490 afii10050 +!BE U+256C SF440000 +!BF U+00A9 copyright +!C0 U+044E afii10096 +!C1 U+0430 afii10065 +!C2 U+0431 afii10066 +!C3 U+0446 afii10088 +!C4 U+0434 afii10069 +!C5 U+0435 afii10070 +!C6 U+0444 afii10086 +!C7 U+0433 afii10068 +!C8 U+0445 afii10087 +!C9 U+0438 afii10074 +!CA U+0439 afii10075 +!CB U+043A afii10076 +!CC U+043B afii10077 +!CD U+043C afii10078 +!CE U+043D afii10079 +!CF U+043E afii10080 +!D0 U+043F afii10081 +!D1 U+044F afii10097 +!D2 U+0440 afii10082 +!D3 U+0441 afii10083 +!D4 U+0442 afii10084 +!D5 U+0443 afii10085 +!D6 U+0436 afii10072 +!D7 U+0432 afii10067 +!D8 U+044C afii10094 +!D9 U+044B afii10093 +!DA U+0437 afii10073 +!DB U+0448 afii10090 +!DC U+044D afii10095 +!DD U+0449 afii10091 +!DE U+0447 afii10089 +!DF U+044A afii10092 +!E0 U+042E afii10048 +!E1 U+0410 afii10017 +!E2 U+0411 afii10018 +!E3 U+0426 afii10040 +!E4 U+0414 afii10021 +!E5 U+0415 afii10022 +!E6 U+0424 afii10038 +!E7 U+0413 afii10020 +!E8 U+0425 afii10039 +!E9 U+0418 afii10026 +!EA U+0419 afii10027 +!EB U+041A afii10028 +!EC U+041B afii10029 +!ED U+041C afii10030 +!EE U+041D afii10031 +!EF U+041E afii10032 +!F0 U+041F afii10033 +!F1 U+042F afii10049 +!F2 U+0420 afii10034 +!F3 U+0421 afii10035 +!F4 U+0422 afii10036 +!F5 U+0423 afii10037 +!F6 U+0416 afii10024 +!F7 U+0412 afii10019 +!F8 U+042C afii10046 +!F9 U+042B afii10045 +!FA U+0417 afii10025 +!FB U+0428 afii10042 +!FC U+042D afii10047 +!FD U+0429 afii10043 +!FE U+0427 afii10041 +!FF U+042A afii10044 diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/AdobeFontMetrics.php b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/AdobeFontMetrics.php new file mode 100644 index 0000000..e75385f --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/AdobeFontMetrics.php @@ -0,0 +1,217 @@ + + * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License + */ + +namespace FontLib; + +use FontLib\Table\Type\name; +use FontLib\TrueType\File; + +/** + * Adobe Font Metrics file creation utility class. + * + * @package php-font-lib + */ +class AdobeFontMetrics { + private $f; + + /** + * @var File + */ + private $font; + + function __construct(File $font) { + $this->font = $font; + } + + function write($file, $encoding = null) { + $map_data = array(); + + if ($encoding) { + $encoding = preg_replace("/[^a-z0-9-_]/", "", $encoding); + $map_file = dirname(__FILE__) . "/../maps/$encoding.map"; + if (!file_exists($map_file)) { + throw new \Exception("Unknown encoding ($encoding)"); + } + + $map = new EncodingMap($map_file); + $map_data = $map->parse(); + } + + $this->f = fopen($file, "w+"); + + $font = $this->font; + + $this->startSection("FontMetrics", 4.1); + $this->addPair("Notice", "Converted by PHP-font-lib"); + $this->addPair("Comment", "https://github.com/PhenX/php-font-lib"); + + $encoding_scheme = ($encoding ? $encoding : "FontSpecific"); + $this->addPair("EncodingScheme", $encoding_scheme); + + $records = $font->getData("name", "records"); + foreach ($records as $id => $record) { + if (!isset(name::$nameIdCodes[$id]) || preg_match("/[\r\n]/", $record->string)) { + continue; + } + + $this->addPair(name::$nameIdCodes[$id], $record->string); + } + + $os2 = $font->getData("OS/2"); + $this->addPair("Weight", ($os2["usWeightClass"] > 400 ? "Bold" : "Medium")); + + $post = $font->getData("post"); + $this->addPair("ItalicAngle", $post["italicAngle"]); + $this->addPair("IsFixedPitch", ($post["isFixedPitch"] ? "true" : "false")); + $this->addPair("UnderlineThickness", $font->normalizeFUnit($post["underlineThickness"])); + $this->addPair("UnderlinePosition", $font->normalizeFUnit($post["underlinePosition"])); + + $hhea = $font->getData("hhea"); + + if (isset($hhea["ascent"])) { + $this->addPair("FontHeightOffset", $font->normalizeFUnit($hhea["lineGap"])); + $this->addPair("Ascender", $font->normalizeFUnit($hhea["ascent"])); + $this->addPair("Descender", $font->normalizeFUnit($hhea["descent"])); + } + else { + $this->addPair("FontHeightOffset", $font->normalizeFUnit($os2["typoLineGap"])); + $this->addPair("Ascender", $font->normalizeFUnit($os2["typoAscender"])); + $this->addPair("Descender", -abs($font->normalizeFUnit($os2["typoDescender"]))); + } + + $head = $font->getData("head"); + $this->addArray("FontBBox", array( + $font->normalizeFUnit($head["xMin"]), + $font->normalizeFUnit($head["yMin"]), + $font->normalizeFUnit($head["xMax"]), + $font->normalizeFUnit($head["yMax"]), + )); + + $glyphIndexArray = $font->getUnicodeCharMap(); + + if ($glyphIndexArray) { + $hmtx = $font->getData("hmtx"); + $names = $font->getData("post", "names"); + + $this->startSection("CharMetrics", count($hmtx)); + + if ($encoding) { + foreach ($map_data as $code => $value) { + list($c, $name) = $value; + + if (!isset($glyphIndexArray[$c])) { + continue; + } + + $g = $glyphIndexArray[$c]; + + if (!isset($hmtx[$g])) { + $hmtx[$g] = $hmtx[0]; + } + + $this->addMetric(array( + "C" => ($code > 255 ? -1 : $code), + "WX" => $font->normalizeFUnit($hmtx[$g][0]), + "N" => $name, + )); + } + } + else { + foreach ($glyphIndexArray as $c => $g) { + if (!isset($hmtx[$g])) { + $hmtx[$g] = $hmtx[0]; + } + + $this->addMetric(array( + "U" => $c, + "WX" => $font->normalizeFUnit($hmtx[$g][0]), + "N" => (isset($names[$g]) ? $names[$g] : sprintf("uni%04x", $c)), + "G" => $g, + )); + } + } + + $this->endSection("CharMetrics"); + + $kern = $font->getData("kern", "subtable"); + $tree = is_array($kern) ? $kern["tree"] : null; + + if (!$encoding && is_array($tree)) { + $this->startSection("KernData"); + $this->startSection("KernPairs", count($tree, COUNT_RECURSIVE) - count($tree)); + + foreach ($tree as $left => $values) { + if (!is_array($values)) { + continue; + } + if (!isset($glyphIndexArray[$left])) { + continue; + } + + $left_gid = $glyphIndexArray[$left]; + + if (!isset($names[$left_gid])) { + continue; + } + + $left_name = $names[$left_gid]; + + $this->addLine(""); + + foreach ($values as $right => $value) { + if (!isset($glyphIndexArray[$right])) { + continue; + } + + $right_gid = $glyphIndexArray[$right]; + + if (!isset($names[$right_gid])) { + continue; + } + + $right_name = $names[$right_gid]; + $this->addPair("KPX", "$left_name $right_name $value"); + } + } + + $this->endSection("KernPairs"); + $this->endSection("KernData"); + } + } + + $this->endSection("FontMetrics"); + } + + function addLine($line) { + fwrite($this->f, "$line\n"); + } + + function addPair($key, $value) { + $this->addLine("$key $value"); + } + + function addArray($key, $array) { + $this->addLine("$key " . implode(" ", $array)); + } + + function addMetric($data) { + $array = array(); + foreach ($data as $key => $value) { + $array[] = "$key $value"; + } + $this->addLine(implode(" ; ", $array)); + } + + function startSection($name, $value = "") { + $this->addLine("Start$name $value"); + } + + function endSection($name) { + $this->addLine("End$name"); + } +} diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Autoloader.php b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Autoloader.php new file mode 100644 index 0000000..cd30545 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Autoloader.php @@ -0,0 +1,43 @@ + + * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License + */ + +namespace FontLib; + +/** + * Autoloads FontLib classes + * + * @package php-font-lib + */ +class Autoloader { + const PREFIX = 'FontLib'; + + /** + * Register the autoloader + */ + public static function register() { + spl_autoload_register(array(new self, 'autoload')); + } + + /** + * Autoloader + * + * @param string + */ + public static function autoload($class) { + $prefixLength = strlen(self::PREFIX); + if (0 === strncmp(self::PREFIX, $class, $prefixLength)) { + $file = str_replace('\\', DIRECTORY_SEPARATOR, substr($class, $prefixLength)); + $file = realpath(__DIR__ . (empty($file) ? '' : DIRECTORY_SEPARATOR) . $file . '.php'); + if (file_exists($file)) { + require_once $file; + } + } + } +} + +Autoloader::register(); \ No newline at end of file diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/BinaryStream.php b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/BinaryStream.php new file mode 100644 index 0000000..c7eb52f --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/BinaryStream.php @@ -0,0 +1,449 @@ + + * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License + */ + +namespace FontLib; + +/** + * Generic font file binary stream. + * + * @package php-font-lib + */ +class BinaryStream { + /** + * @var resource The file pointer + */ + protected $f; + + const uint8 = 1; + const int8 = 2; + const uint16 = 3; + const int16 = 4; + const uint32 = 5; + const int32 = 6; + const shortFrac = 7; + const Fixed = 8; + const FWord = 9; + const uFWord = 10; + const F2Dot14 = 11; + const longDateTime = 12; + const char = 13; + + const modeRead = "rb"; + const modeWrite = "wb"; + const modeReadWrite = "rb+"; + + static function backtrace() { + var_dump(debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS)); + } + + /** + * Open a font file in read mode + * + * @param string $filename The file name of the font to open + * + * @return bool + */ + public function load($filename) { + return $this->open($filename, self::modeRead); + } + + /** + * Open a font file in a chosen mode + * + * @param string $filename The file name of the font to open + * @param string $mode The opening mode + * + * @throws \Exception + * @return bool + */ + public function open($filename, $mode = self::modeRead) { + if (!in_array($mode, array(self::modeRead, self::modeWrite, self::modeReadWrite))) { + throw new \Exception("Unknown file open mode"); + } + + $this->f = fopen($filename, $mode); + + return $this->f != false; + } + + /** + * Close the internal file pointer + */ + public function close() { + return fclose($this->f) != false; + } + + /** + * Change the internal file pointer + * + * @param resource $fp + * + * @throws \Exception + */ + public function setFile($fp) { + if (!is_resource($fp)) { + throw new \Exception('$fp is not a valid resource'); + } + + $this->f = $fp; + } + + /** + * Create a temporary file in write mode + * + * @param bool $allow_memory Allow in-memory files + * + * @return resource the temporary file pointer resource + */ + public static function getTempFile($allow_memory = true) { + $f = null; + + if ($allow_memory) { + $f = fopen("php://temp", "rb+"); + } + else { + $f = fopen(tempnam(sys_get_temp_dir(), "fnt"), "rb+"); + } + + return $f; + } + + /** + * Move the internal file pinter to $offset bytes + * + * @param int $offset + * + * @return bool True if the $offset position exists in the file + */ + public function seek($offset) { + return fseek($this->f, $offset, SEEK_SET) == 0; + } + + /** + * Gives the current position in the file + * + * @return int The current position + */ + public function pos() { + return ftell($this->f); + } + + public function skip($n) { + fseek($this->f, $n, SEEK_CUR); + } + + /** + * @param int $n The number of bytes to read + * + * @return string + */ + public function read($n) { + if ($n < 1) { + return ""; + } + + return (string) fread($this->f, $n); + } + + public function write($data, $length = null) { + if ($data === null || $data === "" || $data === false) { + return 0; + } + + return fwrite($this->f, $data, $length); + } + + public function readUInt8() { + return ord($this->read(1)); + } + + public function readUInt8Many($count) { + return array_values(unpack("C*", $this->read($count))); + } + + public function writeUInt8($data) { + return $this->write(chr($data), 1); + } + + public function readInt8() { + $v = $this->readUInt8(); + + if ($v >= 0x80) { + $v -= 0x100; + } + + return $v; + } + + public function readInt8Many($count) { + return array_values(unpack("c*", $this->read($count))); + } + + public function writeInt8($data) { + if ($data < 0) { + $data += 0x100; + } + + return $this->writeUInt8($data); + } + + public function readUInt16() { + $a = unpack("nn", $this->read(2)); + + return $a["n"]; + } + + public function readUInt16Many($count) { + return array_values(unpack("n*", $this->read($count * 2))); + } + + public function readUFWord() { + return $this->readUInt16(); + } + + public function writeUInt16($data) { + return $this->write(pack("n", $data), 2); + } + + public function writeUFWord($data) { + return $this->writeUInt16($data); + } + + public function readInt16() { + $a = unpack("nn", $this->read(2)); + $v = $a["n"]; + + if ($v >= 0x8000) { + $v -= 0x10000; + } + + return $v; + } + + public function readInt16Many($count) { + $vals = array_values(unpack("n*", $this->read($count * 2))); + foreach ($vals as &$v) { + if ($v >= 0x8000) { + $v -= 0x10000; + } + } + + return $vals; + } + + public function readFWord() { + return $this->readInt16(); + } + + public function writeInt16($data) { + if ($data < 0) { + $data += 0x10000; + } + + return $this->writeUInt16($data); + } + + public function writeFWord($data) { + return $this->writeInt16($data); + } + + public function readUInt32() { + $a = unpack("NN", $this->read(4)); + + return $a["N"]; + } + + public function writeUInt32($data) { + return $this->write(pack("N", $data), 4); + } + + public function readFixed() { + $d = $this->readInt16(); + $d2 = $this->readUInt16(); + + return round($d + $d2 / 0x10000, 4); + } + + public function writeFixed($data) { + $left = floor($data); + $right = ($data - $left) * 0x10000; + + return $this->writeInt16($left) + $this->writeUInt16($right); + } + + public function readLongDateTime() { + $this->readUInt32(); // ignored + $date = $this->readUInt32() - 2082844800; + + # PHP_INT_MIN isn't defined in PHP < 7.0 + $php_int_min = defined("PHP_INT_MIN") ? PHP_INT_MIN : ~PHP_INT_MAX; + + if (is_string($date) || $date > PHP_INT_MAX || $date < $php_int_min) { + $date = 0; + } + + return date("Y-m-d H:i:s", $date); + } + + public function writeLongDateTime($data) { + $date = strtotime($data); + $date += 2082844800; + + return $this->writeUInt32(0) + $this->writeUInt32($date); + } + + public function unpack($def) { + $d = array(); + foreach ($def as $name => $type) { + $d[$name] = $this->r($type); + } + + return $d; + } + + public function pack($def, $data) { + $bytes = 0; + foreach ($def as $name => $type) { + $bytes += $this->w($type, $data[$name]); + } + + return $bytes; + } + + /** + * Read a data of type $type in the file from the current position + * + * @param mixed $type The data type to read + * + * @return mixed The data that was read + */ + public function r($type) { + switch ($type) { + case self::uint8: + return $this->readUInt8(); + case self::int8: + return $this->readInt8(); + case self::uint16: + return $this->readUInt16(); + case self::int16: + return $this->readInt16(); + case self::uint32: + return $this->readUInt32(); + case self::int32: + return $this->readUInt32(); + case self::shortFrac: + return $this->readFixed(); + case self::Fixed: + return $this->readFixed(); + case self::FWord: + return $this->readInt16(); + case self::uFWord: + return $this->readUInt16(); + case self::F2Dot14: + return $this->readInt16(); + case self::longDateTime: + return $this->readLongDateTime(); + case self::char: + return $this->read(1); + default: + if (is_array($type)) { + if ($type[0] == self::char) { + return $this->read($type[1]); + } + if ($type[0] == self::uint16) { + return $this->readUInt16Many($type[1]); + } + if ($type[0] == self::int16) { + return $this->readInt16Many($type[1]); + } + if ($type[0] == self::uint8) { + return $this->readUInt8Many($type[1]); + } + if ($type[0] == self::int8) { + return $this->readInt8Many($type[1]); + } + + $ret = array(); + for ($i = 0; $i < $type[1]; $i++) { + $ret[] = $this->r($type[0]); + } + + return $ret; + } + + return null; + } + } + + /** + * Write $data of type $type in the file from the current position + * + * @param mixed $type The data type to write + * @param mixed $data The data to write + * + * @return int The number of bytes read + */ + public function w($type, $data) { + switch ($type) { + case self::uint8: + return $this->writeUInt8($data); + case self::int8: + return $this->writeInt8($data); + case self::uint16: + return $this->writeUInt16($data); + case self::int16: + return $this->writeInt16($data); + case self::uint32: + return $this->writeUInt32($data); + case self::int32: + return $this->writeUInt32($data); + case self::shortFrac: + return $this->writeFixed($data); + case self::Fixed: + return $this->writeFixed($data); + case self::FWord: + return $this->writeInt16($data); + case self::uFWord: + return $this->writeUInt16($data); + case self::F2Dot14: + return $this->writeInt16($data); + case self::longDateTime: + return $this->writeLongDateTime($data); + case self::char: + return $this->write($data, 1); + default: + if (is_array($type)) { + if ($type[0] == self::char) { + return $this->write($data, $type[1]); + } + + $ret = 0; + for ($i = 0; $i < $type[1]; $i++) { + if (isset($data[$i])) { + $ret += $this->w($type[0], $data[$i]); + } + } + + return $ret; + } + + return null; + } + } + + /** + * Converts a Uint32 value to string + * + * @param int $uint32 + * + * @return string The string + */ + public function convertUInt32ToStr($uint32) { + return chr(($uint32 >> 24) & 0xFF) . chr(($uint32 >> 16) & 0xFF) . chr(($uint32 >> 8) & 0xFF) . chr($uint32 & 0xFF); + } +} diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/EOT/File.php b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/EOT/File.php new file mode 100644 index 0000000..f51d876 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/EOT/File.php @@ -0,0 +1,159 @@ + + * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License + */ + +namespace FontLib\EOT; + +/** + * EOT font file. + * + * @package php-font-lib + */ +class File extends \FontLib\TrueType\File { + const TTEMBED_SUBSET = 0x00000001; + const TTEMBED_TTCOMPRESSED = 0x00000004; + const TTEMBED_FAILIFVARIATIONSIMULATED = 0x00000010; + const TTMBED_EMBEDEUDC = 0x00000020; + const TTEMBED_VALIDATIONTESTS = 0x00000040; // Deprecated + const TTEMBED_WEBOBJECT = 0x00000080; + const TTEMBED_XORENCRYPTDATA = 0x10000000; + + /** + * @var Header + */ + public $header; + + function parseHeader() { + if (!empty($this->header)) { + return; + } + + $this->header = new Header($this); + $this->header->parse(); + } + + function parse() { + $this->parseHeader(); + + $flags = $this->header->data["Flags"]; + + if ($flags & self::TTEMBED_TTCOMPRESSED) { + $mtx_version = $this->readUInt8(); + $mtx_copy_limit = $this->readUInt8() << 16 | $this->readUInt8() << 8 | $this->readUInt8(); + $mtx_offset_1 = $this->readUInt8() << 16 | $this->readUInt8() << 8 | $this->readUInt8(); + $mtx_offset_2 = $this->readUInt8() << 16 | $this->readUInt8() << 8 | $this->readUInt8(); + /* + var_dump("$mtx_version $mtx_copy_limit $mtx_offset_1 $mtx_offset_2"); + + $pos = $this->pos(); + $size = $mtx_offset_1 - $pos; + var_dump("pos: $pos"); + var_dump("size: $size");*/ + } + + if ($flags & self::TTEMBED_XORENCRYPTDATA) { + // Process XOR + } + // TODO Read font data ... + } + + /** + * Little endian version of the read method + * + * @param int $n The number of bytes to read + * + * @return string + */ + public function read($n) { + if ($n < 1) { + return ""; + } + + $string = (string) fread($this->f, $n); + $chunks = mb_str_split($string, 2, '8bit'); + $chunks = array_map("strrev", $chunks); + return implode("", $chunks); + } + + public function readUInt32() { + $uint32 = parent::readUInt32(); + + return $uint32 >> 16 & 0x0000FFFF | $uint32 << 16 & 0xFFFF0000; + } + + /** + * Get font copyright + * + * @return string|null + */ + function getFontCopyright() { + return null; + } + + /** + * Get font name + * + * @return string|null + */ + function getFontName() { + return $this->header->data["FamilyName"]; + } + + /** + * Get font subfamily + * + * @return string|null + */ + function getFontSubfamily() { + return $this->header->data["StyleName"]; + } + + /** + * Get font subfamily ID + * + * @return string|null + */ + function getFontSubfamilyID() { + return $this->header->data["StyleName"]; + } + + /** + * Get font full name + * + * @return string|null + */ + function getFontFullName() { + return $this->header->data["FullName"]; + } + + /** + * Get font version + * + * @return string|null + */ + function getFontVersion() { + return $this->header->data["VersionName"]; + } + + /** + * Get font weight + * + * @return string|null + */ + function getFontWeight() { + return $this->header->data["Weight"]; + } + + /** + * Get font Postscript name + * + * @return string|null + */ + function getFontPostscriptName() { + return null; + } +} diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/EOT/Header.php b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/EOT/Header.php new file mode 100644 index 0000000..960e36a --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/EOT/Header.php @@ -0,0 +1,113 @@ + + * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License + */ + +namespace FontLib\EOT; + +use Exception; +use FontLib\Font; + +/** + * TrueType font file header. + * + * @package php-font-lib + * + * @property File $font + */ +class Header extends \FontLib\Header { + protected $def = array( + "format" => self::uint32, + "numTables" => self::uint16, + "searchRange" => self::uint16, + "entrySelector" => self::uint16, + "rangeShift" => self::uint16, + ); + + public function parse() { + $font = $this->font; + + $this->data = $font->unpack(array( + "EOTSize" => self::uint32, + "FontDataSize" => self::uint32, + "Version" => self::uint32, + "Flags" => self::uint32, + "FontPANOSE" => array(self::uint8, 10), + "Charset" => self::uint8, + "Italic" => self::uint8, + "Weight" => self::uint32, + "fsType" => self::uint16, + "MagicNumber" => self::uint16, + "UnicodeRange1" => self::uint32, + "UnicodeRange2" => self::uint32, + "UnicodeRange3" => self::uint32, + "UnicodeRange4" => self::uint32, + "CodePageRange1" => self::uint32, + "CodePageRange2" => self::uint32, + "CheckSumAdjustment" => self::uint32, + "Reserved1" => self::uint32, + "Reserved2" => self::uint32, + "Reserved3" => self::uint32, + "Reserved4" => self::uint32, + )); + + $this->data["Padding1"] = $font->readUInt16(); + $this->readString("FamilyName"); + + $this->data["Padding2"] = $font->readUInt16(); + $this->readString("StyleName"); + + $this->data["Padding3"] = $font->readUInt16(); + $this->readString("VersionName"); + + $this->data["Padding4"] = $font->readUInt16(); + $this->readString("FullName"); + + switch ($this->data["Version"]) { + default: + throw new Exception("Unknown EOT version " . $this->data["Version"]); + + case 0x00010000: + // Nothing to do more + break; + + case 0x00020001: + $this->data["Padding5"] = $font->readUInt16(); + $this->readString("RootString"); + break; + + case 0x00020002: + $this->data["Padding5"] = $font->readUInt16(); + $this->readString("RootString"); + + $this->data["RootStringCheckSum"] = $font->readUInt32(); + $this->data["EUDCCodePage"] = $font->readUInt32(); + + $this->data["Padding6"] = $font->readUInt16(); + $this->readString("Signature"); + + $this->data["EUDCFlags"] = $font->readUInt32(); + $this->data["EUDCFontSize"] = $font->readUInt32(); + break; + } + + if (!empty($this->data["RootString"])) { + $this->data["RootString"] = explode("\0", $this->data["RootString"]); + } + } + + private function readString($name) { + $font = $this->font; + $size = $font->readUInt16(); + + $this->data["{$name}Size"] = $size; + $this->data[$name] = Font::UTF16ToUTF8($font->read($size)); + } + + public function encode() { + //return $this->font->pack($this->def, $this->data); + } +} \ No newline at end of file diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/EncodingMap.php b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/EncodingMap.php new file mode 100644 index 0000000..2acdebc --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/EncodingMap.php @@ -0,0 +1,37 @@ + + * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License + */ + +namespace FontLib; + +/** + * Encoding map used to map a code point to a Unicode char. + * + * @package php-font-lib + */ +class EncodingMap { + private $f; + + function __construct($file) { + $this->f = fopen($file, "r"); + } + + function parse() { + $map = array(); + + while ($line = fgets($this->f)) { + if (preg_match('/^[\!\=]([0-9A-F]{2,})\s+U\+([0-9A-F]{2})([0-9A-F]{2})\s+([^\s]+)/', $line, $matches)) { + $unicode = (hexdec($matches[2]) << 8) + hexdec($matches[3]); + $map[hexdec($matches[1])] = array($unicode, $matches[4]); + } + } + + ksort($map); + + return $map; + } +} diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Exception/FontNotFoundException.php b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Exception/FontNotFoundException.php new file mode 100644 index 0000000..d97f252 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Exception/FontNotFoundException.php @@ -0,0 +1,11 @@ +message = 'Font not found in: ' . $fontPath; + } +} \ No newline at end of file diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Font.php b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Font.php new file mode 100644 index 0000000..e13a653 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Font.php @@ -0,0 +1,89 @@ + + * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License + */ + +namespace FontLib; + +use FontLib\Exception\FontNotFoundException; + +/** + * Generic font file. + * + * @package php-font-lib + */ +class Font { + static $debug = false; + + /** + * @param string $file The font file + * + * @return TrueType\File|null $file + */ + public static function load($file) { + if(!file_exists($file)){ + throw new FontNotFoundException($file); + } + + $header = file_get_contents($file, false, null, 0, 4); + $class = null; + + switch ($header) { + case "\x00\x01\x00\x00": + case "true": + case "typ1": + $class = "TrueType\\File"; + break; + + case "OTTO": + $class = "OpenType\\File"; + break; + + case "wOFF": + $class = "WOFF\\File"; + break; + + case "ttcf": + $class = "TrueType\\Collection"; + break; + + // Unknown type or EOT + default: + $magicNumber = file_get_contents($file, false, null, 34, 2); + + if ($magicNumber === "LP") { + $class = "EOT\\File"; + } + } + + if ($class) { + $class = "FontLib\\$class"; + + /** @var TrueType\File $obj */ + $obj = new $class; + $obj->load($file); + + return $obj; + } + + return null; + } + + static function d($str) { + if (!self::$debug) { + return; + } + echo "$str\n"; + } + + static function UTF16ToUTF8($str) { + return mb_convert_encoding($str, "utf-8", "utf-16"); + } + + static function UTF8ToUTF16($str) { + return mb_convert_encoding($str, "utf-16", "utf-8"); + } +} diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Glyph/Outline.php b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Glyph/Outline.php new file mode 100644 index 0000000..639ff60 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Glyph/Outline.php @@ -0,0 +1,109 @@ + + * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License + * @version $Id: Font_Table_glyf.php 46 2012-04-02 20:22:38Z fabien.menager $ + */ +namespace FontLib\Glyph; + +use FontLib\Table\Type\glyf; +use FontLib\TrueType\File; +use FontLib\BinaryStream; + +/** + * `glyf` font table. + * + * @package php-font-lib + */ +class Outline extends BinaryStream { + /** + * @var \FontLib\Table\Type\glyf + */ + protected $table; + + protected $offset; + protected $size; + + // Data + public $numberOfContours; + public $xMin; + public $yMin; + public $xMax; + public $yMax; + + /** + * @var string|null + */ + public $raw; + + /** + * @param glyf $table + * @param $offset + * @param $size + * + * @return Outline + */ + static function init(glyf $table, $offset, $size, BinaryStream $font) { + $font->seek($offset); + + if ($font->readInt16() > -1) { + /** @var OutlineSimple $glyph */ + $glyph = new OutlineSimple($table, $offset, $size); + } + else { + /** @var OutlineComposite $glyph */ + $glyph = new OutlineComposite($table, $offset, $size); + } + + $glyph->parse($font); + + return $glyph; + } + + /** + * @return File + */ + function getFont() { + return $this->table->getFont(); + } + + function __construct(glyf $table, $offset = null, $size = null) { + $this->table = $table; + $this->offset = $offset; + $this->size = $size; + } + + function parse(BinaryStream $font) { + $font->seek($this->offset); + + $this->raw = $font->read($this->size); + } + + function parseData() { + $font = $this->getFont(); + $font->seek($this->offset); + + $this->numberOfContours = $font->readInt16(); + $this->xMin = $font->readFWord(); + $this->yMin = $font->readFWord(); + $this->xMax = $font->readFWord(); + $this->yMax = $font->readFWord(); + } + + function encode() { + $font = $this->getFont(); + + return $font->write($this->raw, mb_strlen((string) $this->raw, '8bit')); + } + + function getSVGContours() { + // Inherit + } + + function getGlyphIDs() { + return array(); + } +} + diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Glyph/OutlineComponent.php b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Glyph/OutlineComponent.php new file mode 100644 index 0000000..9cafaf4 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Glyph/OutlineComponent.php @@ -0,0 +1,31 @@ + + * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License + * @version $Id: Font_Table_glyf.php 46 2012-04-02 20:22:38Z fabien.menager $ + */ + +namespace FontLib\Glyph; +/** + * Glyph outline component + * + * @package php-font-lib + */ +class OutlineComponent { + public $flags; + public $glyphIndex; + public $a, $b, $c, $d, $e, $f; + public $point_compound; + public $point_component; + public $instructions; + + function getMatrix() { + return array( + $this->a, $this->b, + $this->c, $this->d, + $this->e, $this->f, + ); + } +} \ No newline at end of file diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Glyph/OutlineComposite.php b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Glyph/OutlineComposite.php new file mode 100644 index 0000000..8ab0d2c --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Glyph/OutlineComposite.php @@ -0,0 +1,242 @@ + + * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License + * @version $Id: Font_Table_glyf.php 46 2012-04-02 20:22:38Z fabien.menager $ + */ + +namespace FontLib\Glyph; + +/** + * Composite glyph outline + * + * @package php-font-lib + */ +class OutlineComposite extends Outline { + const ARG_1_AND_2_ARE_WORDS = 0x0001; + const ARGS_ARE_XY_VALUES = 0x0002; + const ROUND_XY_TO_GRID = 0x0004; + const WE_HAVE_A_SCALE = 0x0008; + const MORE_COMPONENTS = 0x0020; + const WE_HAVE_AN_X_AND_Y_SCALE = 0x0040; + const WE_HAVE_A_TWO_BY_TWO = 0x0080; + const WE_HAVE_INSTRUCTIONS = 0x0100; + const USE_MY_METRICS = 0x0200; + const OVERLAP_COMPOUND = 0x0400; + + /** + * @var OutlineComponent[] + */ + public $components = array(); + + function getGlyphIDs() { + if (empty($this->components)) { + $this->parseData(); + } + + $glyphIDs = array(); + foreach ($this->components as $_component) { + $glyphIDs[] = $_component->glyphIndex; + + $_glyph = $this->table->data[$_component->glyphIndex]; + + if ($_glyph !== $this) { + $glyphIDs = array_merge($glyphIDs, $_glyph->getGlyphIDs()); + } + } + + return $glyphIDs; + } + + /*function parse() { + //$this->parseData(); + }*/ + + function parseData() { + parent::parseData(); + + $font = $this->getFont(); + + do { + $flags = $font->readUInt16(); + $glyphIndex = $font->readUInt16(); + + $a = 1.0; + $b = 0.0; + $c = 0.0; + $d = 1.0; + $e = 0.0; + $f = 0.0; + + $point_compound = null; + $point_component = null; + + $instructions = null; + + if ($flags & self::ARG_1_AND_2_ARE_WORDS) { + if ($flags & self::ARGS_ARE_XY_VALUES) { + $e = $font->readInt16(); + $f = $font->readInt16(); + } + else { + $point_compound = $font->readUInt16(); + $point_component = $font->readUInt16(); + } + } + else { + if ($flags & self::ARGS_ARE_XY_VALUES) { + $e = $font->readInt8(); + $f = $font->readInt8(); + } + else { + $point_compound = $font->readUInt8(); + $point_component = $font->readUInt8(); + } + } + + if ($flags & self::WE_HAVE_A_SCALE) { + $a = $d = $font->readInt16(); + } + elseif ($flags & self::WE_HAVE_AN_X_AND_Y_SCALE) { + $a = $font->readInt16(); + $d = $font->readInt16(); + } + elseif ($flags & self::WE_HAVE_A_TWO_BY_TWO) { + $a = $font->readInt16(); + $b = $font->readInt16(); + $c = $font->readInt16(); + $d = $font->readInt16(); + } + + //if ($flags & self::WE_HAVE_INSTRUCTIONS) { + // + //} + + $component = new OutlineComponent(); + $component->flags = $flags; + $component->glyphIndex = $glyphIndex; + $component->a = $a; + $component->b = $b; + $component->c = $c; + $component->d = $d; + $component->e = $e; + $component->f = $f; + $component->point_compound = $point_compound; + $component->point_component = $point_component; + $component->instructions = $instructions; + + $this->components[] = $component; + } while ($flags & self::MORE_COMPONENTS); + } + + function encode() { + $font = $this->getFont(); + + $gids = $font->getSubset(); + + $size = $font->writeInt16(-1); + $size += $font->writeFWord($this->xMin); + $size += $font->writeFWord($this->yMin); + $size += $font->writeFWord($this->xMax); + $size += $font->writeFWord($this->yMax); + + foreach ($this->components as $_i => $_component) { + $flags = 0; + if ($_component->point_component === null && $_component->point_compound === null) { + $flags |= self::ARGS_ARE_XY_VALUES; + + if (abs($_component->e) > 0x7F || abs($_component->f) > 0x7F) { + $flags |= self::ARG_1_AND_2_ARE_WORDS; + } + } + elseif ($_component->point_component > 0xFF || $_component->point_compound > 0xFF) { + $flags |= self::ARG_1_AND_2_ARE_WORDS; + } + + if ($_component->b == 0 && $_component->c == 0) { + if ($_component->a == $_component->d) { + if ($_component->a != 1.0) { + $flags |= self::WE_HAVE_A_SCALE; + } + } + else { + $flags |= self::WE_HAVE_AN_X_AND_Y_SCALE; + } + } + else { + $flags |= self::WE_HAVE_A_TWO_BY_TWO; + } + + if ($_i < count($this->components) - 1) { + $flags |= self::MORE_COMPONENTS; + } + + $size += $font->writeUInt16($flags); + + $new_gid = array_search($_component->glyphIndex, $gids); + $size += $font->writeUInt16($new_gid); + + if ($flags & self::ARG_1_AND_2_ARE_WORDS) { + if ($flags & self::ARGS_ARE_XY_VALUES) { + $size += $font->writeInt16($_component->e); + $size += $font->writeInt16($_component->f); + } + else { + $size += $font->writeUInt16($_component->point_compound); + $size += $font->writeUInt16($_component->point_component); + } + } + else { + if ($flags & self::ARGS_ARE_XY_VALUES) { + $size += $font->writeInt8($_component->e); + $size += $font->writeInt8($_component->f); + } + else { + $size += $font->writeUInt8($_component->point_compound); + $size += $font->writeUInt8($_component->point_component); + } + } + + if ($flags & self::WE_HAVE_A_SCALE) { + $size += $font->writeInt16($_component->a); + } + elseif ($flags & self::WE_HAVE_AN_X_AND_Y_SCALE) { + $size += $font->writeInt16($_component->a); + $size += $font->writeInt16($_component->d); + } + elseif ($flags & self::WE_HAVE_A_TWO_BY_TWO) { + $size += $font->writeInt16($_component->a); + $size += $font->writeInt16($_component->b); + $size += $font->writeInt16($_component->c); + $size += $font->writeInt16($_component->d); + } + } + + return $size; + } + + public function getSVGContours() { + $contours = array(); + + /** @var \FontLib\Table\Type\glyf $glyph_data */ + $glyph_data = $this->getFont()->getTableObject("glyf"); + + /** @var Outline[] $glyphs */ + $glyphs = $glyph_data->data; + + foreach ($this->components as $component) { + $_glyph = $glyphs[$component->glyphIndex]; + + if ($_glyph !== $this) { + $contours[] = array( + "contours" => $_glyph->getSVGContours(), + "transform" => $component->getMatrix(), + ); + } + } + + return $contours; + } +} \ No newline at end of file diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Glyph/OutlineSimple.php b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Glyph/OutlineSimple.php new file mode 100644 index 0000000..56b2fb4 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Glyph/OutlineSimple.php @@ -0,0 +1,335 @@ + + * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License + * @version $Id: Font_Table_glyf.php 46 2012-04-02 20:22:38Z fabien.menager $ + */ + +namespace FontLib\Glyph; + +/** + * `glyf` font table. + * + * @package php-font-lib + */ +class OutlineSimple extends Outline { + const ON_CURVE = 0x01; + const X_SHORT_VECTOR = 0x02; + const Y_SHORT_VECTOR = 0x04; + const REPEAT = 0x08; + const THIS_X_IS_SAME = 0x10; + const THIS_Y_IS_SAME = 0x20; + + public $instructions; + public $points; + + function parseData() { + parent::parseData(); + + if (!$this->size) { + return; + } + + $font = $this->getFont(); + + $noc = $this->numberOfContours; + + if ($noc == 0) { + return; + } + + $endPtsOfContours = $font->r(array(self::uint16, $noc)); + + $instructionLength = $font->readUInt16(); + $this->instructions = $font->r(array(self::uint8, $instructionLength)); + + $count = $endPtsOfContours[$noc - 1] + 1; + + // Flags + $flags = array(); + for ($index = 0; $index < $count; $index++) { + $flags[$index] = $font->readUInt8(); + + if ($flags[$index] & self::REPEAT) { + $repeats = $font->readUInt8(); + + for ($i = 1; $i <= $repeats; $i++) { + $flags[$index + $i] = $flags[$index]; + } + + $index += $repeats; + } + } + + $points = array(); + foreach ($flags as $i => $flag) { + $points[$i]["onCurve"] = $flag & self::ON_CURVE; + $points[$i]["endOfContour"] = in_array($i, $endPtsOfContours); + } + + // X Coords + $x = 0; + for ($i = 0; $i < $count; $i++) { + $flag = $flags[$i]; + + if ($flag & self::THIS_X_IS_SAME) { + if ($flag & self::X_SHORT_VECTOR) { + $x += $font->readUInt8(); + } + } + else { + if ($flag & self::X_SHORT_VECTOR) { + $x -= $font->readUInt8(); + } + else { + $x += $font->readInt16(); + } + } + + $points[$i]["x"] = $x; + } + + // Y Coords + $y = 0; + for ($i = 0; $i < $count; $i++) { + $flag = $flags[$i]; + + if ($flag & self::THIS_Y_IS_SAME) { + if ($flag & self::Y_SHORT_VECTOR) { + $y += $font->readUInt8(); + } + } + else { + if ($flag & self::Y_SHORT_VECTOR) { + $y -= $font->readUInt8(); + } + else { + $y += $font->readInt16(); + } + } + + $points[$i]["y"] = $y; + } + + $this->points = $points; + } + + public function splitSVGPath($path) { + preg_match_all('/([a-z])|(-?\d+(?:\.\d+)?)/i', $path, $matches, PREG_PATTERN_ORDER); + + return $matches[0]; + } + + public function makePoints($path) { + $path = $this->splitSVGPath($path); + $l = count($path); + $i = 0; + + $points = array(); + + while ($i < $l) { + switch ($path[$i]) { + // moveTo + case "M": + $points[] = array( + "onCurve" => true, + "x" => $path[++$i], + "y" => $path[++$i], + "endOfContour" => false, + ); + break; + + // lineTo + case "L": + $points[] = array( + "onCurve" => true, + "x" => $path[++$i], + "y" => $path[++$i], + "endOfContour" => false, + ); + break; + + // quadraticCurveTo + case "Q": + $points[] = array( + "onCurve" => false, + "x" => $path[++$i], + "y" => $path[++$i], + "endOfContour" => false, + ); + $points[] = array( + "onCurve" => true, + "x" => $path[++$i], + "y" => $path[++$i], + "endOfContour" => false, + ); + break; + + // closePath + /** @noinspection PhpMissingBreakStatementInspection */ + case "z": + $points[count($points) - 1]["endOfContour"] = true; + + default: + $i++; + break; + } + } + + return $points; + } + + function encode() { + if (empty($this->points)) { + return parent::encode(); + } + + return $this->size = $this->encodePoints($this->points); + } + + public function encodePoints($points) { + $endPtsOfContours = array(); + $flags = array(); + $coords_x = array(); + $coords_y = array(); + + $last_x = 0; + $last_y = 0; + $xMin = $yMin = 0xFFFF; + $xMax = $yMax = -0xFFFF; + foreach ($points as $i => $point) { + $flag = 0; + if ($point["onCurve"]) { + $flag |= self::ON_CURVE; + } + + if ($point["endOfContour"]) { + $endPtsOfContours[] = $i; + } + + // Simplified, we could do some optimizations + if ($point["x"] == $last_x) { + $flag |= self::THIS_X_IS_SAME; + } + else { + $x = intval($point["x"]); + $xMin = min($x, $xMin); + $xMax = max($x, $xMax); + $coords_x[] = $x - $last_x; // int16 + } + + // Simplified, we could do some optimizations + if ($point["y"] == $last_y) { + $flag |= self::THIS_Y_IS_SAME; + } + else { + $y = intval($point["y"]); + $yMin = min($y, $yMin); + $yMax = max($y, $yMax); + $coords_y[] = $y - $last_y; // int16 + } + + $flags[] = $flag; + $last_x = $point["x"]; + $last_y = $point["y"]; + } + + $font = $this->getFont(); + + $l = 0; + $l += $font->writeInt16(count($endPtsOfContours)); // endPtsOfContours + $l += $font->writeFWord(isset($this->xMin) ? $this->xMin : $xMin); // xMin + $l += $font->writeFWord(isset($this->yMin) ? $this->yMin : $yMin); // yMin + $l += $font->writeFWord(isset($this->xMax) ? $this->xMax : $xMax); // xMax + $l += $font->writeFWord(isset($this->yMax) ? $this->yMax : $yMax); // yMax + + // Simple glyf + $l += $font->w(array(self::uint16, count($endPtsOfContours)), $endPtsOfContours); // endPtsOfContours + $l += $font->writeUInt16(0); // instructionLength + $l += $font->w(array(self::uint8, count($flags)), $flags); // flags + $l += $font->w(array(self::int16, count($coords_x)), $coords_x); // xCoordinates + $l += $font->w(array(self::int16, count($coords_y)), $coords_y); // yCoordinates + return $l; + } + + public function getSVGContours($points = null) { + $path = ""; + + if (!$points) { + if (empty($this->points)) { + $this->parseData(); + } + + $points = $this->points; + } + + $length = (empty($points) ? 0 : count($points)); + $firstIndex = 0; + $count = 0; + + for ($i = 0; $i < $length; $i++) { + $count++; + + if ($points[$i]["endOfContour"]) { + $path .= $this->getSVGPath($points, $firstIndex, $count); + $firstIndex = $i + 1; + $count = 0; + } + } + + return $path; + } + + protected function getSVGPath($points, $startIndex, $count) { + $offset = 0; + $path = ""; + + while ($offset < $count) { + $point = $points[$startIndex + $offset % $count]; + $point_p1 = $points[$startIndex + ($offset + 1) % $count]; + + if ($offset == 0) { + $path .= "M{$point['x']},{$point['y']} "; + } + + if ($point["onCurve"]) { + if ($point_p1["onCurve"]) { + $path .= "L{$point_p1['x']},{$point_p1['y']} "; + $offset++; + } + else { + $point_p2 = $points[$startIndex + ($offset + 2) % $count]; + + if ($point_p2["onCurve"]) { + $path .= "Q{$point_p1['x']},{$point_p1['y']},{$point_p2['x']},{$point_p2['y']} "; + } + else { + $path .= "Q{$point_p1['x']},{$point_p1['y']}," . $this->midValue($point_p1['x'], $point_p2['x']) . "," . $this->midValue($point_p1['y'], $point_p2['y']) . " "; + } + + $offset += 2; + } + } + else { + if ($point_p1["onCurve"]) { + $path .= "Q{$point['x']},{$point['y']},{$point_p1['x']},{$point_p1['y']} "; + } + else { + $path .= "Q{$point['x']},{$point['y']}," . $this->midValue($point['x'], $point_p1['x']) . "," . $this->midValue($point['y'], $point_p1['y']) . " "; + } + + $offset++; + } + } + + $path .= "z "; + + return $path; + } + + function midValue($a, $b) { + return $a + ($b - $a) / 2; + } +} diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Header.php b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Header.php new file mode 100644 index 0000000..cbf137e --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Header.php @@ -0,0 +1,37 @@ + + * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License + */ +namespace FontLib; + +use FontLib\TrueType\File; + +/** + * Font header container. + * + * @package php-font-lib + */ +abstract class Header extends BinaryStream { + /** + * @var File + */ + protected $font; + protected $def = array(); + + public $data; + + public function __construct(File $font) { + $this->font = $font; + } + + public function encode() { + return $this->font->pack($this->def, $this->data); + } + + public function parse() { + $this->data = $this->font->unpack($this->def); + } +} \ No newline at end of file diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/OpenType/File.php b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/OpenType/File.php new file mode 100644 index 0000000..9c6df96 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/OpenType/File.php @@ -0,0 +1,18 @@ + + * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License + */ + +namespace FontLib\OpenType; + +/** + * Open Type font, the same as a TrueType one. + * + * @package php-font-lib + */ +class File extends \FontLib\TrueType\File { + // +} diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/OpenType/TableDirectoryEntry.php b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/OpenType/TableDirectoryEntry.php new file mode 100644 index 0000000..dd75a3e --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/OpenType/TableDirectoryEntry.php @@ -0,0 +1,18 @@ + + * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License + */ + +namespace FontLib\OpenType; + +/** + * Open Type Table directory entry, the same as a TrueType one. + * + * @package php-font-lib + */ +class TableDirectoryEntry extends \FontLib\TrueType\TableDirectoryEntry { + +} diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Table/DirectoryEntry.php b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Table/DirectoryEntry.php new file mode 100644 index 0000000..54a67af --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Table/DirectoryEntry.php @@ -0,0 +1,134 @@ + + * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License + */ +namespace FontLib\Table; + +use FontLib\TrueType\File; +use FontLib\Font; +use FontLib\BinaryStream; + +/** + * Generic Font table directory entry. + * + * @package php-font-lib + */ +class DirectoryEntry extends BinaryStream { + /** + * @var File + */ + protected $font; + + /** + * @var Table + */ + protected $font_table; + + public $entryLength = 4; + + public $tag; + public $checksum; + public $offset; + public $length; + + protected $origF; + + /** + * @param string $data + * + * @return int + */ + static function computeChecksum($data) { + $len = mb_strlen($data, '8bit'); + $mod = $len % 4; + + if ($mod) { + $data = str_pad($data, $len + (4 - $mod), "\0"); + } + + $len = mb_strlen($data, '8bit'); + + $hi = 0x0000; + $lo = 0x0000; + + for ($i = 0; $i < $len; $i += 4) { + $hi += (ord($data[$i]) << 8) + ord($data[$i + 1]); + $lo += (ord($data[$i + 2]) << 8) + ord($data[$i + 3]); + $hi += $lo >> 16; + $lo = $lo & 0xFFFF; + $hi = $hi & 0xFFFF; + } + + return ($hi << 8) + $lo; + } + + function __construct(File $font) { + $this->font = $font; + $this->f = $font->f; + } + + function parse() { + $this->tag = $this->font->read(4); + } + + function open($filename, $mode = self::modeRead) { + // void + } + + function setTable(Table $font_table) { + $this->font_table = $font_table; + } + + function encode($entry_offset) { + Font::d("\n==== $this->tag ===="); + //Font::d("Entry offset = $entry_offset"); + + $data = $this->font_table; + $font = $this->font; + + $table_offset = $font->pos(); + $this->offset = $table_offset; + $table_length = $data->encode(); + + $font->seek($table_offset); + $table_data = $font->read($table_length); + + $font->seek($entry_offset); + + $font->write($this->tag, 4); + $font->writeUInt32(self::computeChecksum($table_data)); + $font->writeUInt32($table_offset); + $font->writeUInt32($table_length); + + Font::d("Bytes written = $table_length"); + + $font->seek($table_offset + $table_length); + } + + /** + * @return File + */ + function getFont() { + return $this->font; + } + + function startRead() { + $this->font->seek($this->offset); + } + + function endRead() { + // + } + + function startWrite() { + $this->font->seek($this->offset); + } + + function endWrite() { + // + } +} + diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Table/Table.php b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Table/Table.php new file mode 100644 index 0000000..b127112 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Table/Table.php @@ -0,0 +1,93 @@ + + * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License + */ +namespace FontLib\Table; + +use FontLib\TrueType\File; +use FontLib\Font; +use FontLib\BinaryStream; + +/** + * Generic font table. + * + * @package php-font-lib + */ +class Table extends BinaryStream { + /** + * @var DirectoryEntry + */ + protected $entry; + protected $def = array(); + + public $data; + + final public function __construct(DirectoryEntry $entry) { + $this->entry = $entry; + $entry->setTable($this); + } + + /** + * @return File + */ + public function getFont() { + return $this->entry->getFont(); + } + + protected function _encode() { + if (empty($this->data)) { + Font::d(" >> Table is empty"); + + return 0; + } + + return $this->getFont()->pack($this->def, $this->data); + } + + protected function _parse() { + $this->data = $this->getFont()->unpack($this->def); + } + + protected function _parseRaw() { + $this->data = $this->getFont()->read($this->entry->length); + } + + protected function _encodeRaw() { + return $this->getFont()->write($this->data, $this->entry->length); + } + + public function toHTML() { + return "
" . var_export($this->data, true) . "
"; + } + + final public function encode() { + $this->entry->startWrite(); + + if (false && empty($this->def)) { + $length = $this->_encodeRaw(); + } + else { + $length = $this->_encode(); + } + + $this->entry->endWrite(); + + return $length; + } + + final public function parse() { + $this->entry->startRead(); + + if (false && empty($this->def)) { + $this->_parseRaw(); + } + else { + $this->_parse(); + } + + $this->entry->endRead(); + } +} \ No newline at end of file diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Table/Type/cmap.php b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Table/Type/cmap.php new file mode 100644 index 0000000..7db77e1 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Table/Type/cmap.php @@ -0,0 +1,298 @@ + + * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License + */ + +namespace FontLib\Table\Type; +use FontLib\Table\Table; + +/** + * `cmap` font table. + * + * @package php-font-lib + */ +class cmap extends Table { + private static $header_format = array( + "version" => self::uint16, + "numberSubtables" => self::uint16, + ); + + private static $subtable_header_format = array( + "platformID" => self::uint16, + "platformSpecificID" => self::uint16, + "offset" => self::uint32, + ); + + private static $subtable_v4_format = array( + "length" => self::uint16, + "language" => self::uint16, + "segCountX2" => self::uint16, + "searchRange" => self::uint16, + "entrySelector" => self::uint16, + "rangeShift" => self::uint16, + ); + + private static $subtable_v12_format = array( + "length" => self::uint32, + "language" => self::uint32, + "ngroups" => self::uint32 + ); + + protected function _parse() { + $font = $this->getFont(); + + $cmap_offset = $font->pos(); + + $data = $font->unpack(self::$header_format); + + $subtables = array(); + for ($i = 0; $i < $data["numberSubtables"]; $i++) { + $subtables[] = $font->unpack(self::$subtable_header_format); + } + + $data["subtables"] = $subtables; + + foreach ($data["subtables"] as $i => &$subtable) { + $font->seek($cmap_offset + $subtable["offset"]); + + $subtable["format"] = $font->readUInt16(); + + // @todo Only CMAP version 4 and 12 + if (($subtable["format"] != 4) && ($subtable["format"] != 12)) { + unset($data["subtables"][$i]); + $data["numberSubtables"]--; + continue; + } + + if ($subtable["format"] == 12) { + + $font->readUInt16(); + + $subtable += $font->unpack(self::$subtable_v12_format); + + $glyphIndexArray = array(); + $endCodes = array(); + $startCodes = array(); + + for ($p = 0; $p < $subtable['ngroups']; $p++) { + + $startCode = $startCodes[] = $font->readUInt32(); + $endCode = $endCodes[] = $font->readUInt32(); + $startGlyphCode = $font->readUInt32(); + + for ($c = $startCode; $c <= $endCode; $c++) { + $glyphIndexArray[$c] = $startGlyphCode; + $startGlyphCode++; + } + } + + $subtable += array( + "startCode" => $startCodes, + "endCode" => $endCodes, + "glyphIndexArray" => $glyphIndexArray, + ); + + } + else if ($subtable["format"] == 4) { + + $subtable += $font->unpack(self::$subtable_v4_format); + + $segCount = $subtable["segCountX2"] / 2; + $subtable["segCount"] = $segCount; + + $endCode = $font->readUInt16Many($segCount); + + $font->readUInt16(); // reservedPad + + $startCode = $font->readUInt16Many($segCount); + $idDelta = $font->readInt16Many($segCount); + + $ro_start = $font->pos(); + $idRangeOffset = $font->readUInt16Many($segCount); + + $glyphIndexArray = array(); + for ($i = 0; $i < $segCount; $i++) { + $c1 = $startCode[$i]; + $c2 = $endCode[$i]; + $d = $idDelta[$i]; + $ro = $idRangeOffset[$i]; + + if ($ro > 0) { + $font->seek($subtable["offset"] + 2 * $i + $ro); + } + + for ($c = $c1; $c <= $c2; $c++) { + if ($ro == 0) { + $gid = ($c + $d) & 0xFFFF; + } + else { + $offset = ($c - $c1) * 2 + $ro; + $offset = $ro_start + 2 * $i + $offset; + + $font->seek($offset); + $gid = $font->readUInt16(); + + if ($gid != 0) { + $gid = ($gid + $d) & 0xFFFF; + } + } + + if ($gid > 0) { + $glyphIndexArray[$c] = $gid; + } + } + } + + $subtable += array( + "endCode" => $endCode, + "startCode" => $startCode, + "idDelta" => $idDelta, + "idRangeOffset" => $idRangeOffset, + "glyphIndexArray" => $glyphIndexArray, + ); + } + } + + $this->data = $data; + } + + function _encode() { + $font = $this->getFont(); + + $subset = $font->getSubset(); + $glyphIndexArray = $font->getUnicodeCharMap(); + + $newGlyphIndexArray = array(); + foreach ($glyphIndexArray as $code => $gid) { + $new_gid = array_search($gid, $subset); + if ($new_gid !== false) { + $newGlyphIndexArray[$code] = $new_gid; + } + } + + ksort($newGlyphIndexArray); // Sort by char code + + $segments = array(); + + $i = -1; + $prevCode = 0xFFFF; + $prevGid = 0xFFFF; + + foreach ($newGlyphIndexArray as $code => $gid) { + if ( + $prevCode + 1 != $code || + $prevGid + 1 != $gid + ) { + $i++; + $segments[$i] = array(); + } + + $segments[$i][] = array($code, $gid); + + $prevCode = $code; + $prevGid = $gid; + } + + $segments[][] = array(0xFFFF, 0xFFFF); + + $startCode = array(); + $endCode = array(); + $idDelta = array(); + + foreach ($segments as $codes) { + $start = reset($codes); + $end = end($codes); + + $startCode[] = $start[0]; + $endCode[] = $end[0]; + $idDelta[] = $start[1] - $start[0]; + } + + $segCount = count($startCode); + $idRangeOffset = array_fill(0, $segCount, 0); + + $searchRange = 1; + $entrySelector = 0; + while ($searchRange * 2 <= $segCount) { + $searchRange *= 2; + $entrySelector++; + } + $searchRange *= 2; + $rangeShift = $segCount * 2 - $searchRange; + + $subtables = array( + array( + // header + "platformID" => 3, // Unicode + "platformSpecificID" => 1, + "offset" => null, + + // subtable + "format" => 4, + "length" => null, + "language" => 0, + "segCount" => $segCount, + "segCountX2" => $segCount * 2, + "searchRange" => $searchRange, + "entrySelector" => $entrySelector, + "rangeShift" => $rangeShift, + "startCode" => $startCode, + "endCode" => $endCode, + "idDelta" => $idDelta, + "idRangeOffset" => $idRangeOffset, + "glyphIndexArray" => $newGlyphIndexArray, + ) + ); + + $data = array( + "version" => 0, + "numberSubtables" => count($subtables), + "subtables" => $subtables, + ); + + $length = $font->pack(self::$header_format, $data); + + $subtable_headers_size = $data["numberSubtables"] * 8; // size of self::$subtable_header_format + $subtable_headers_offset = $font->pos(); + + $length += $font->write(str_repeat("\0", $subtable_headers_size), $subtable_headers_size); + + // write subtables data + foreach ($data["subtables"] as $i => $subtable) { + $length_before = $length; + $data["subtables"][$i]["offset"] = $length; + + $length += $font->writeUInt16($subtable["format"]); + + $before_subheader = $font->pos(); + $length += $font->pack(self::$subtable_v4_format, $subtable); + + $segCount = $subtable["segCount"]; + $length += $font->w(array(self::uint16, $segCount), $subtable["endCode"]); + $length += $font->writeUInt16(0); // reservedPad + $length += $font->w(array(self::uint16, $segCount), $subtable["startCode"]); + $length += $font->w(array(self::int16, $segCount), $subtable["idDelta"]); + $length += $font->w(array(self::uint16, $segCount), $subtable["idRangeOffset"]); + $length += $font->w(array(self::uint16, $segCount), array_values($subtable["glyphIndexArray"])); + + $after_subtable = $font->pos(); + + $subtable["length"] = $length - $length_before; + $font->seek($before_subheader); + $length += $font->pack(self::$subtable_v4_format, $subtable); + + $font->seek($after_subtable); + } + + // write subtables headers + $font->seek($subtable_headers_offset); + foreach ($data["subtables"] as $subtable) { + $font->pack(self::$subtable_header_format, $subtable); + } + + return $length; + } +} diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Table/Type/glyf.php b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Table/Type/glyf.php new file mode 100644 index 0000000..1fbec3f --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Table/Type/glyf.php @@ -0,0 +1,154 @@ + + * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License + */ + +namespace FontLib\Table\Type; + +use FontLib\Table\Table; +use FontLib\Glyph\Outline; +use FontLib\Glyph\OutlineSimple; + +/** + * `glyf` font table. + * + * @package php-font-lib + * @property Outline[] $data + */ +class glyf extends Table { + protected function _parse() { + $font = $this->getFont(); + $offset = $font->pos(); + + $loca = $font->getData("loca"); + $real_loca = array_slice($loca, 0, -1); // Not the last dummy loca entry + + $data = array(); + + foreach ($real_loca as $gid => $location) { + $_offset = $offset + $loca[$gid]; + $_size = $loca[$gid + 1] - $loca[$gid]; + $data[$gid] = Outline::init($this, $_offset, $_size, $font); + } + + $this->data = $data; + } + + public function getGlyphIDs($gids = array()) { + $glyphIDs = array(); + + foreach ($gids as $_gid) { + $_glyph = $this->data[$_gid]; + $glyphIDs = array_merge($glyphIDs, $_glyph->getGlyphIDs()); + } + + return array_unique(array_merge($gids, $glyphIDs)); + } + + public function toHTML() { + $max = 160; + $font = $this->getFont(); + + $head = $font->getData("head"); + $head_json = json_encode($head); + + $os2 = $font->getData("OS/2"); + $os2_json = json_encode($os2); + + $hmtx = $font->getData("hmtx"); + $hmtx_json = json_encode($hmtx); + + $names = $font->getData("post", "names"); + $glyphIndexArray = array_flip($font->getUnicodeCharMap()); + + $width = (abs($head["xMin"]) + $head["xMax"]); + $height = (abs($head["yMin"]) + $head["yMax"]); + + $ratio = 1; + if ($width > $max || $height > $max) { + $ratio = max($width, $height) / $max; + $width = round($width / $ratio); + $height = round($height / $ratio); + } + + $n = 500; + + $s = "

" . "Only the first $n simple glyphs are shown (" . count($this->data) . " total) +
Simple glyph
+
Composite glyph
+ Zoom: +

+ "; + + foreach ($this->data as $g => $glyph) { + if ($n-- <= 0) { + break; + } + + $glyph->parseData(); + + $shape = array( + "SVGContours" => $glyph->getSVGContours(), + "xMin" => $glyph->xMin, + "yMin" => $glyph->yMin, + "xMax" => $glyph->xMax, + "yMax" => $glyph->yMax, + ); + $shape_json = json_encode($shape); + + $type = ($glyph instanceof OutlineSimple ? "simple" : "composite"); + $char = isset($glyphIndexArray[$g]) ? $glyphIndexArray[$g] : 0; + $name = isset($names[$g]) ? $names[$g] : sprintf("uni%04x", $char); + $char = $char ? "&#{$glyphIndexArray[$g]};" : ""; + + $s .= "
+ $g + $char + $name + "; + + if ($type == "composite") { + foreach ($glyph->getGlyphIDs() as $_id) { + $s .= "$_id "; + } + } + + $s .= "
+ +
+ "; + } + + return $s; + } + + + protected function _encode() { + $font = $this->getFont(); + $subset = $font->getSubset(); + $data = $this->data; + + $loca = array(); + + $length = 0; + foreach ($subset as $gid) { + $loca[] = $length; + $length += $data[$gid]->encode(); + } + + $loca[] = $length; // dummy loca + $font->getTableObject("loca")->data = $loca; + + return $length; + } +} \ No newline at end of file diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Table/Type/head.php b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Table/Type/head.php new file mode 100644 index 0000000..6349f14 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Table/Type/head.php @@ -0,0 +1,46 @@ + + * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License + */ + +namespace FontLib\Table\Type; +use FontLib\Table\Table; +use Exception; + +/** + * `head` font table. + * + * @package php-font-lib + */ +class head extends Table { + protected $def = array( + "tableVersion" => self::Fixed, + "fontRevision" => self::Fixed, + "checkSumAdjustment" => self::uint32, + "magicNumber" => self::uint32, + "flags" => self::uint16, + "unitsPerEm" => self::uint16, + "created" => self::longDateTime, + "modified" => self::longDateTime, + "xMin" => self::FWord, + "yMin" => self::FWord, + "xMax" => self::FWord, + "yMax" => self::FWord, + "macStyle" => self::uint16, + "lowestRecPPEM" => self::uint16, + "fontDirectionHint" => self::int16, + "indexToLocFormat" => self::int16, + "glyphDataFormat" => self::int16, + ); + + protected function _parse() { + parent::_parse(); + + if ($this->data["magicNumber"] != 0x5F0F3CF5) { + throw new Exception("Incorrect magic number (" . dechex($this->data["magicNumber"]) . ")"); + } + } +} \ No newline at end of file diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Table/Type/hhea.php b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Table/Type/hhea.php new file mode 100644 index 0000000..dc60a14 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Table/Type/hhea.php @@ -0,0 +1,44 @@ + + * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License + */ + +namespace FontLib\Table\Type; +use FontLib\Table\Table; + +/** + * `hhea` font table. + * + * @package php-font-lib + */ +class hhea extends Table { + protected $def = array( + "version" => self::Fixed, + "ascent" => self::FWord, + "descent" => self::FWord, + "lineGap" => self::FWord, + "advanceWidthMax" => self::uFWord, + "minLeftSideBearing" => self::FWord, + "minRightSideBearing" => self::FWord, + "xMaxExtent" => self::FWord, + "caretSlopeRise" => self::int16, + "caretSlopeRun" => self::int16, + "caretOffset" => self::FWord, + self::int16, + self::int16, + self::int16, + self::int16, + "metricDataFormat" => self::int16, + "numOfLongHorMetrics" => self::uint16, + ); + + function _encode() { + $font = $this->getFont(); + $this->data["numOfLongHorMetrics"] = count($font->getSubset()); + + return parent::_encode(); + } +} \ No newline at end of file diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Table/Type/hmtx.php b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Table/Type/hmtx.php new file mode 100644 index 0000000..76e3307 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Table/Type/hmtx.php @@ -0,0 +1,59 @@ + + * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License + */ + +namespace FontLib\Table\Type; +use FontLib\Table\Table; + +/** + * `hmtx` font table. + * + * @package php-font-lib + */ +class hmtx extends Table { + protected function _parse() { + $font = $this->getFont(); + $offset = $font->pos(); + + $numOfLongHorMetrics = $font->getData("hhea", "numOfLongHorMetrics"); + $numGlyphs = $font->getData("maxp", "numGlyphs"); + + $font->seek($offset); + + $data = array(); + $metrics = $font->readUInt16Many($numOfLongHorMetrics * 2); + for ($gid = 0, $mid = 0; $gid < $numOfLongHorMetrics; $gid++) { + $advanceWidth = isset($metrics[$mid]) ? $metrics[$mid] : 0; + $mid += 1; + $leftSideBearing = isset($metrics[$mid]) ? $metrics[$mid] : 0; + $mid += 1; + $data[$gid] = array($advanceWidth, $leftSideBearing); + } + + if ($numOfLongHorMetrics < $numGlyphs) { + $lastWidth = end($data); + $data = array_pad($data, $numGlyphs, $lastWidth); + } + + $this->data = $data; + } + + protected function _encode() { + $font = $this->getFont(); + $subset = $font->getSubset(); + $data = $this->data; + + $length = 0; + + foreach ($subset as $gid) { + $length += $font->writeUInt16($data[$gid][0]); + $length += $font->writeUInt16($data[$gid][1]); + } + + return $length; + } +} \ No newline at end of file diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Table/Type/kern.php b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Table/Type/kern.php new file mode 100644 index 0000000..9875946 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Table/Type/kern.php @@ -0,0 +1,80 @@ + + * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License + */ + +namespace FontLib\Table\Type; +use FontLib\Table\Table; + +/** + * `kern` font table. + * + * @package php-font-lib + */ +class kern extends Table { + protected function _parse() { + $font = $this->getFont(); + + $data = $font->unpack(array( + "version" => self::uint16, + "nTables" => self::uint16, + + // only the first subtable will be parsed + "subtableVersion" => self::uint16, + "length" => self::uint16, + "coverage" => self::uint16, + )); + + $data["format"] = ($data["coverage"] >> 8); + + $subtable = array(); + + switch ($data["format"]) { + case 0: + $subtable = $font->unpack(array( + "nPairs" => self::uint16, + "searchRange" => self::uint16, + "entrySelector" => self::uint16, + "rangeShift" => self::uint16, + )); + + $pairs = array(); + $tree = array(); + + $values = $font->readUInt16Many($subtable["nPairs"] * 3); + for ($i = 0, $idx = 0; $i < $subtable["nPairs"]; $i++) { + $left = $values[$idx++]; + $right = $values[$idx++]; + $value = $values[$idx++]; + + if ($value >= 0x8000) { + $value -= 0x10000; + } + + $pairs[] = array( + "left" => $left, + "right" => $right, + "value" => $value, + ); + + $tree[$left][$right] = $value; + } + + //$subtable["pairs"] = $pairs; + $subtable["tree"] = $tree; + break; + + case 1: + case 2: + case 3: + break; + } + + $data["subtable"] = $subtable; + + $this->data = $data; + } +} \ No newline at end of file diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Table/Type/loca.php b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Table/Type/loca.php new file mode 100644 index 0000000..cbc2a20 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Table/Type/loca.php @@ -0,0 +1,80 @@ + + * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License + */ + +namespace FontLib\Table\Type; +use FontLib\Table\Table; + +/** + * `loca` font table. + * + * @package php-font-lib + */ +class loca extends Table { + protected function _parse() { + $font = $this->getFont(); + $offset = $font->pos(); + + $indexToLocFormat = $font->getData("head", "indexToLocFormat"); + $numGlyphs = $font->getData("maxp", "numGlyphs"); + + $font->seek($offset); + + $data = array(); + + // 2 bytes + if ($indexToLocFormat == 0) { + $d = $font->read(($numGlyphs + 1) * 2); + $loc = unpack("n*", $d); + + for ($i = 0; $i <= $numGlyphs; $i++) { + $data[] = isset($loc[$i + 1]) ? $loc[$i + 1] * 2 : 0; + } + } + + // 4 bytes + else { + if ($indexToLocFormat == 1) { + $d = $font->read(($numGlyphs + 1) * 4); + $loc = unpack("N*", $d); + + for ($i = 0; $i <= $numGlyphs; $i++) { + $data[] = isset($loc[$i + 1]) ? $loc[$i + 1] : 0; + } + } + } + + $this->data = $data; + } + + function _encode() { + $font = $this->getFont(); + $data = $this->data; + + $indexToLocFormat = $font->getData("head", "indexToLocFormat"); + $numGlyphs = $font->getData("maxp", "numGlyphs"); + $length = 0; + + // 2 bytes + if ($indexToLocFormat == 0) { + for ($i = 0; $i <= $numGlyphs; $i++) { + $length += $font->writeUInt16($data[$i] / 2); + } + } + + // 4 bytes + else { + if ($indexToLocFormat == 1) { + for ($i = 0; $i <= $numGlyphs; $i++) { + $length += $font->writeUInt32($data[$i]); + } + } + } + + return $length; + } +} \ No newline at end of file diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Table/Type/maxp.php b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Table/Type/maxp.php new file mode 100644 index 0000000..b4ebae0 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Table/Type/maxp.php @@ -0,0 +1,42 @@ + + * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License + */ + +namespace FontLib\Table\Type; +use FontLib\Table\Table; + +/** + * `maxp` font table. + * + * @package php-font-lib + */ +class maxp extends Table { + protected $def = array( + "version" => self::Fixed, + "numGlyphs" => self::uint16, + "maxPoints" => self::uint16, + "maxContours" => self::uint16, + "maxComponentPoints" => self::uint16, + "maxComponentContours" => self::uint16, + "maxZones" => self::uint16, + "maxTwilightPoints" => self::uint16, + "maxStorage" => self::uint16, + "maxFunctionDefs" => self::uint16, + "maxInstructionDefs" => self::uint16, + "maxStackElements" => self::uint16, + "maxSizeOfInstructions" => self::uint16, + "maxComponentElements" => self::uint16, + "maxComponentDepth" => self::uint16, + ); + + function _encode() { + $font = $this->getFont(); + $this->data["numGlyphs"] = count($font->getSubset()); + + return parent::_encode(); + } +} \ No newline at end of file diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Table/Type/name.php b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Table/Type/name.php new file mode 100644 index 0000000..794824d --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Table/Type/name.php @@ -0,0 +1,193 @@ + + * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License + */ + +namespace FontLib\Table\Type; + +use FontLib\Table\Table; +use FontLib\Font; + +/** + * `name` font table. + * + * @package php-font-lib + */ +class name extends Table { + private static $header_format = array( + "format" => self::uint16, + "count" => self::uint16, + "stringOffset" => self::uint16, + ); + + const NAME_COPYRIGHT = 0; + const NAME_NAME = 1; + const NAME_SUBFAMILY = 2; + const NAME_SUBFAMILY_ID = 3; + const NAME_FULL_NAME = 4; + const NAME_VERSION = 5; + const NAME_POSTSCRIPT_NAME = 6; + const NAME_TRADEMARK = 7; + const NAME_MANUFACTURER = 8; + const NAME_DESIGNER = 9; + const NAME_DESCRIPTION = 10; + const NAME_VENDOR_URL = 11; + const NAME_DESIGNER_URL = 12; + const NAME_LICENSE = 13; + const NAME_LICENSE_URL = 14; + const NAME_PREFERRE_FAMILY = 16; + const NAME_PREFERRE_SUBFAMILY = 17; + const NAME_COMPAT_FULL_NAME = 18; + const NAME_SAMPLE_TEXT = 19; + + static $nameIdCodes = array( + 0 => "Copyright", + 1 => "FontName", + 2 => "FontSubfamily", + 3 => "UniqueID", + 4 => "FullName", + 5 => "Version", + 6 => "PostScriptName", + 7 => "Trademark", + 8 => "Manufacturer", + 9 => "Designer", + 10 => "Description", + 11 => "FontVendorURL", + 12 => "FontDesignerURL", + 13 => "LicenseDescription", + 14 => "LicenseURL", + // 15 + 16 => "PreferredFamily", + 17 => "PreferredSubfamily", + 18 => "CompatibleFullName", + 19 => "SampleText", + ); + + static $platforms = array( + 0 => "Unicode", + 1 => "Macintosh", + // 2 => Reserved + 3 => "Microsoft", + ); + + static $platformSpecific = array( + // Unicode + 0 => array( + 0 => "Default semantics", + 1 => "Version 1.1 semantics", + 2 => "ISO 10646 1993 semantics (deprecated)", + 3 => "Unicode 2.0 or later semantics", + ), + + // Macintosh + 1 => array( + 0 => "Roman", + 1 => "Japanese", + 2 => "Traditional Chinese", + 3 => "Korean", + 4 => "Arabic", + 5 => "Hebrew", + 6 => "Greek", + 7 => "Russian", + 8 => "RSymbol", + 9 => "Devanagari", + 10 => "Gurmukhi", + 11 => "Gujarati", + 12 => "Oriya", + 13 => "Bengali", + 14 => "Tamil", + 15 => "Telugu", + 16 => "Kannada", + 17 => "Malayalam", + 18 => "Sinhalese", + 19 => "Burmese", + 20 => "Khmer", + 21 => "Thai", + 22 => "Laotian", + 23 => "Georgian", + 24 => "Armenian", + 25 => "Simplified Chinese", + 26 => "Tibetan", + 27 => "Mongolian", + 28 => "Geez", + 29 => "Slavic", + 30 => "Vietnamese", + 31 => "Sindhi", + ), + + // Microsoft + 3 => array( + 0 => "Symbol", + 1 => "Unicode BMP (UCS-2)", + 2 => "ShiftJIS", + 3 => "PRC", + 4 => "Big5", + 5 => "Wansung", + 6 => "Johab", + // 7 => Reserved + // 8 => Reserved + // 9 => Reserved + 10 => "Unicode UCS-4", + ), + ); + + protected function _parse() { + $font = $this->getFont(); + + $tableOffset = $font->pos(); + + $data = $font->unpack(self::$header_format); + + $records = array(); + for ($i = 0; $i < $data["count"]; $i++) { + $record = new nameRecord(); + $record_data = $font->unpack(nameRecord::$format); + $record->map($record_data); + + $records[] = $record; + } + + $names = array(); + foreach ($records as $record) { + $font->seek($tableOffset + $data["stringOffset"] + $record->offset); + $s = $font->read($record->length); + $record->string = Font::UTF16ToUTF8($s); + $names[$record->nameID] = $record; + } + + $data["records"] = $names; + + $this->data = $data; + } + + protected function _encode() { + $font = $this->getFont(); + + /** @var nameRecord[] $records */ + $records = $this->data["records"]; + $count_records = count($records); + + $this->data["count"] = $count_records; + $this->data["stringOffset"] = 6 + $count_records * 12; // 6 => uint16 * 3, 12 => sizeof self::$record_format + + $length = $font->pack(self::$header_format, $this->data); + + $offset = 0; + foreach ($records as $record) { + $record->length = mb_strlen($record->getUTF16(), "8bit"); + $record->offset = $offset; + $offset += $record->length; + $length += $font->pack(nameRecord::$format, (array)$record); + } + + foreach ($records as $record) { + $str = $record->getUTF16(); + $length += $font->write($str, mb_strlen($str, "8bit")); + } + + return $length; + } +} diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Table/Type/nameRecord.php b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Table/Type/nameRecord.php new file mode 100644 index 0000000..2073c20 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Table/Type/nameRecord.php @@ -0,0 +1,53 @@ + + * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License + */ +namespace FontLib\Table\Type; + +use FontLib\Font; +use FontLib\BinaryStream; + +/** + * Font table name record. + * + * @package php-font-lib + */ +class nameRecord extends BinaryStream { + public $platformID; + public $platformSpecificID; + public $languageID; + public $nameID; + public $length; + public $offset; + public $string; + + public static $format = array( + "platformID" => self::uint16, + "platformSpecificID" => self::uint16, + "languageID" => self::uint16, + "nameID" => self::uint16, + "length" => self::uint16, + "offset" => self::uint16, + ); + + public function map($data) { + foreach ($data as $key => $value) { + $this->$key = $value; + } + } + + public function getUTF8() { + return $this->string; + } + + public function getUTF16() { + return Font::UTF8ToUTF16($this->string); + } + + function __toString() { + return $this->string; + } +} \ No newline at end of file diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Table/Type/os2.php b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Table/Type/os2.php new file mode 100644 index 0000000..19a3e21 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Table/Type/os2.php @@ -0,0 +1,47 @@ + + * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License + */ + +namespace FontLib\Table\Type; +use FontLib\Table\Table; + +/** + * `OS/2` font table. + * + * @package php-font-lib + */ +class os2 extends Table { + protected $def = array( + "version" => self::uint16, + "xAvgCharWidth" => self::int16, + "usWeightClass" => self::uint16, + "usWidthClass" => self::uint16, + "fsType" => self::int16, + "ySubscriptXSize" => self::int16, + "ySubscriptYSize" => self::int16, + "ySubscriptXOffset" => self::int16, + "ySubscriptYOffset" => self::int16, + "ySuperscriptXSize" => self::int16, + "ySuperscriptYSize" => self::int16, + "ySuperscriptXOffset" => self::int16, + "ySuperscriptYOffset" => self::int16, + "yStrikeoutSize" => self::int16, + "yStrikeoutPosition" => self::int16, + "sFamilyClass" => self::int16, + "panose" => array(self::uint8, 10), + "ulCharRange" => array(self::uint32, 4), + "achVendID" => array(self::char, 4), + "fsSelection" => self::uint16, + "fsFirstCharIndex" => self::uint16, + "fsLastCharIndex" => self::uint16, + "typoAscender" => self::int16, + "typoDescender" => self::int16, + "typoLineGap" => self::int16, + "winAscent" => self::int16, + "winDescent" => self::int16, + ); +} \ No newline at end of file diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Table/Type/post.php b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Table/Type/post.php new file mode 100644 index 0000000..030a942 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/Table/Type/post.php @@ -0,0 +1,143 @@ + + * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License + */ + +namespace FontLib\Table\Type; +use FontLib\Table\Table; +use FontLib\TrueType\File; + +/** + * `post` font table. + * + * @package php-font-lib + */ +class post extends Table { + protected $def = array( + "format" => self::Fixed, + "italicAngle" => self::Fixed, + "underlinePosition" => self::FWord, + "underlineThickness" => self::FWord, + "isFixedPitch" => self::uint32, + "minMemType42" => self::uint32, + "maxMemType42" => self::uint32, + "minMemType1" => self::uint32, + "maxMemType1" => self::uint32, + ); + + protected function _parse() { + $font = $this->getFont(); + $data = $font->unpack($this->def); + + $names = array(); + + switch ($data["format"]) { + case 1: + $names = File::$macCharNames; + break; + + case 2: + $data["numberOfGlyphs"] = $font->readUInt16(); + + $glyphNameIndex = $font->readUInt16Many($data["numberOfGlyphs"]); + + $data["glyphNameIndex"] = $glyphNameIndex; + + $namesPascal = array(); + for ($i = 0; $i < $data["numberOfGlyphs"]; $i++) { + $len = $font->readUInt8(); + $namesPascal[] = $font->read($len); + } + + foreach ($glyphNameIndex as $g => $index) { + if ($index < 258) { + $names[$g] = File::$macCharNames[$index]; + } + else { + if (array_key_exists($index - 258, $namesPascal)) { + $names[$g] = $namesPascal[$index - 258]; + } + } + } + + break; + + case 2.5: + // TODO + break; + + case 3: + // nothing + break; + + case 4: + // TODO + break; + } + + $data["names"] = $names; + + $this->data = $data; + } + + function _encode() { + $font = $this->getFont(); + $data = $this->data; + $data["format"] = 3; + + $length = $font->pack($this->def, $data); + + return $length; + /* + $subset = $font->getSubset(); + + switch($data["format"]) { + case 1: + // nothing to do + break; + + case 2: + $old_names = $data["names"]; + + $glyphNameIndex = range(0, count($subset)); + + $names = array(); + foreach($subset as $gid) { + $names[] = $data["names"][$data["glyphNameIndex"][$gid]]; + } + + $numberOfGlyphs = count($names); + $length += $font->writeUInt16($numberOfGlyphs); + + foreach($glyphNameIndex as $gni) { + $length += $font->writeUInt16($gni); + } + + //$names = array_slice($names, 257); + foreach($names as $name) { + $len = strlen($name); + $length += $font->writeUInt8($len); + $length += $font->write($name, $len); + } + + break; + + case 2.5: + // TODO + break; + + case 3: + // nothing + break; + + case 4: + // TODO + break; + } + + return $length;*/ + } +} \ No newline at end of file diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/TrueType/Collection.php b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/TrueType/Collection.php new file mode 100644 index 0000000..460ef4d --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/TrueType/Collection.php @@ -0,0 +1,100 @@ + + * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License + */ + +namespace FontLib\TrueType; + +use Countable; +use FontLib\BinaryStream; +use Iterator; +use OutOfBoundsException; + +/** + * TrueType collection font file. + * + * @package php-font-lib + */ +class Collection extends BinaryStream implements Iterator, Countable { + /** + * Current iterator position. + * + * @var integer + */ + private $position = 0; + + protected $collectionOffsets = array(); + protected $collection = array(); + protected $version; + protected $numFonts; + + function parse() { + if (isset($this->numFonts)) { + return; + } + + $this->read(4); // tag name + + $this->version = $this->readFixed(); + $this->numFonts = $this->readUInt32(); + + for ($i = 0; $i < $this->numFonts; $i++) { + $this->collectionOffsets[] = $this->readUInt32(); + } + } + + /** + * @param int $fontId + * + * @throws OutOfBoundsException + * @return File + */ + function getFont($fontId) { + $this->parse(); + + if (!isset($this->collectionOffsets[$fontId])) { + throw new OutOfBoundsException(); + } + + if (isset($this->collection[$fontId])) { + return $this->collection[$fontId]; + } + + $font = new File(); + $font->f = $this->f; + $font->setTableOffset($this->collectionOffsets[$fontId]); + + return $this->collection[$fontId] = $font; + } + + function current() { + return $this->getFont($this->position); + } + + function key() { + return $this->position; + } + + function next() { + return ++$this->position; + } + + function rewind() { + $this->position = 0; + } + + function valid() { + $this->parse(); + + return isset($this->collectionOffsets[$this->position]); + } + + function count() { + $this->parse(); + + return $this->numFonts; + } +} diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/TrueType/File.php b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/TrueType/File.php new file mode 100644 index 0000000..3594479 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/TrueType/File.php @@ -0,0 +1,471 @@ + + * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License + */ + +namespace FontLib\TrueType; + +use FontLib\AdobeFontMetrics; +use FontLib\Font; +use FontLib\BinaryStream; +use FontLib\Table\Table; +use FontLib\Table\DirectoryEntry; +use FontLib\Table\Type\glyf; +use FontLib\Table\Type\name; +use FontLib\Table\Type\nameRecord; + +/** + * TrueType font file. + * + * @package php-font-lib + */ +class File extends BinaryStream { + /** + * @var Header + */ + public $header = array(); + + private $tableOffset = 0; // Used for TTC + + private static $raw = false; + + protected $directory = array(); + protected $data = array(); + + protected $glyph_subset = array(); + + public $glyph_all = array(); + + static $macCharNames = array( + ".notdef", ".null", "CR", + "space", "exclam", "quotedbl", "numbersign", + "dollar", "percent", "ampersand", "quotesingle", + "parenleft", "parenright", "asterisk", "plus", + "comma", "hyphen", "period", "slash", + "zero", "one", "two", "three", + "four", "five", "six", "seven", + "eight", "nine", "colon", "semicolon", + "less", "equal", "greater", "question", + "at", "A", "B", "C", "D", "E", "F", "G", + "H", "I", "J", "K", "L", "M", "N", "O", + "P", "Q", "R", "S", "T", "U", "V", "W", + "X", "Y", "Z", "bracketleft", + "backslash", "bracketright", "asciicircum", "underscore", + "grave", "a", "b", "c", "d", "e", "f", "g", + "h", "i", "j", "k", "l", "m", "n", "o", + "p", "q", "r", "s", "t", "u", "v", "w", + "x", "y", "z", "braceleft", + "bar", "braceright", "asciitilde", "Adieresis", + "Aring", "Ccedilla", "Eacute", "Ntilde", + "Odieresis", "Udieresis", "aacute", "agrave", + "acircumflex", "adieresis", "atilde", "aring", + "ccedilla", "eacute", "egrave", "ecircumflex", + "edieresis", "iacute", "igrave", "icircumflex", + "idieresis", "ntilde", "oacute", "ograve", + "ocircumflex", "odieresis", "otilde", "uacute", + "ugrave", "ucircumflex", "udieresis", "dagger", + "degree", "cent", "sterling", "section", + "bullet", "paragraph", "germandbls", "registered", + "copyright", "trademark", "acute", "dieresis", + "notequal", "AE", "Oslash", "infinity", + "plusminus", "lessequal", "greaterequal", "yen", + "mu", "partialdiff", "summation", "product", + "pi", "integral", "ordfeminine", "ordmasculine", + "Omega", "ae", "oslash", "questiondown", + "exclamdown", "logicalnot", "radical", "florin", + "approxequal", "increment", "guillemotleft", "guillemotright", + "ellipsis", "nbspace", "Agrave", "Atilde", + "Otilde", "OE", "oe", "endash", + "emdash", "quotedblleft", "quotedblright", "quoteleft", + "quoteright", "divide", "lozenge", "ydieresis", + "Ydieresis", "fraction", "currency", "guilsinglleft", + "guilsinglright", "fi", "fl", "daggerdbl", + "periodcentered", "quotesinglbase", "quotedblbase", "perthousand", + "Acircumflex", "Ecircumflex", "Aacute", "Edieresis", + "Egrave", "Iacute", "Icircumflex", "Idieresis", + "Igrave", "Oacute", "Ocircumflex", "applelogo", + "Ograve", "Uacute", "Ucircumflex", "Ugrave", + "dotlessi", "circumflex", "tilde", "macron", + "breve", "dotaccent", "ring", "cedilla", + "hungarumlaut", "ogonek", "caron", "Lslash", + "lslash", "Scaron", "scaron", "Zcaron", + "zcaron", "brokenbar", "Eth", "eth", + "Yacute", "yacute", "Thorn", "thorn", + "minus", "multiply", "onesuperior", "twosuperior", + "threesuperior", "onehalf", "onequarter", "threequarters", + "franc", "Gbreve", "gbreve", "Idot", + "Scedilla", "scedilla", "Cacute", "cacute", + "Ccaron", "ccaron", "dmacron" + ); + + function getTable() { + $this->parseTableEntries(); + + return $this->directory; + } + + function setTableOffset($offset) { + $this->tableOffset = $offset; + } + + function parse() { + $this->parseTableEntries(); + + $this->data = array(); + + foreach ($this->directory as $tag => $table) { + if (empty($this->data[$tag])) { + $this->readTable($tag); + } + } + } + + function utf8toUnicode($str) { + $len = mb_strlen($str, '8bit'); + $out = array(); + + for ($i = 0; $i < $len; $i++) { + $uni = -1; + $h = ord($str[$i]); + + if ($h <= 0x7F) { + $uni = $h; + } + elseif ($h >= 0xC2) { + if (($h <= 0xDF) && ($i < $len - 1)) { + $uni = ($h & 0x1F) << 6 | (ord($str[++$i]) & 0x3F); + } + elseif (($h <= 0xEF) && ($i < $len - 2)) { + $uni = ($h & 0x0F) << 12 | (ord($str[++$i]) & 0x3F) << 6 | (ord($str[++$i]) & 0x3F); + } + elseif (($h <= 0xF4) && ($i < $len - 3)) { + $uni = ($h & 0x0F) << 18 | (ord($str[++$i]) & 0x3F) << 12 | (ord($str[++$i]) & 0x3F) << 6 | (ord($str[++$i]) & 0x3F); + } + } + + if ($uni >= 0) { + $out[] = $uni; + } + } + + return $out; + } + + function getUnicodeCharMap() { + $subtable = null; + foreach ($this->getData("cmap", "subtables") as $_subtable) { + if ($_subtable["platformID"] == 0 || $_subtable["platformID"] == 3 && $_subtable["platformSpecificID"] == 1) { + $subtable = $_subtable; + break; + } + } + + if ($subtable) { + return $subtable["glyphIndexArray"]; + } + + return null; + } + + function setSubset($subset) { + if (!is_array($subset)) { + $subset = $this->utf8toUnicode($subset); + } + + $subset = array_unique($subset); + + $glyphIndexArray = $this->getUnicodeCharMap(); + + if (!$glyphIndexArray) { + return; + } + + $gids = array( + 0, // .notdef + 1, // .null + ); + + foreach ($subset as $code) { + if (!isset($glyphIndexArray[$code])) { + continue; + } + + $gid = $glyphIndexArray[$code]; + $gids[$gid] = $gid; + } + + /** @var glyf $glyf */ + $glyf = $this->getTableObject("glyf"); + $gids = $glyf->getGlyphIDs($gids); + + sort($gids); + + $this->glyph_subset = $gids; + $this->glyph_all = array_values($glyphIndexArray); // FIXME + } + + function getSubset() { + if (empty($this->glyph_subset)) { + return $this->glyph_all; + } + + return $this->glyph_subset; + } + + function encode($tags = array()) { + if (!self::$raw) { + $tags = array_merge(array("head", "hhea", "cmap", "hmtx", "maxp", "glyf", "loca", "name", "post"), $tags); + } + else { + $tags = array_keys($this->directory); + } + + $num_tables = count($tags); + $n = 16; // @todo + + Font::d("Tables : " . implode(", ", $tags)); + + /** @var DirectoryEntry[] $entries */ + $entries = array(); + foreach ($tags as $tag) { + if (!isset($this->directory[$tag])) { + Font::d(" >> '$tag' table doesn't exist"); + continue; + } + + $entries[$tag] = $this->directory[$tag]; + } + + $this->header->data["numTables"] = $num_tables; + $this->header->encode(); + + $directory_offset = $this->pos(); + $offset = $directory_offset + $num_tables * $n; + $this->seek($offset); + + $i = 0; + foreach ($entries as $entry) { + $entry->encode($directory_offset + $i * $n); + $i++; + } + } + + function parseHeader() { + if (!empty($this->header)) { + return; + } + + $this->seek($this->tableOffset); + + $this->header = new Header($this); + $this->header->parse(); + } + + function getFontType(){ + $class_parts = explode("\\", get_class($this)); + return $class_parts[1]; + } + + function parseTableEntries() { + $this->parseHeader(); + + if (!empty($this->directory)) { + return; + } + + if (empty($this->header->data["numTables"])) { + return; + } + + + $type = $this->getFontType(); + $class = "FontLib\\$type\\TableDirectoryEntry"; + + for ($i = 0; $i < $this->header->data["numTables"]; $i++) { + /** @var TableDirectoryEntry $entry */ + $entry = new $class($this); + $entry->parse(); + + $this->directory[$entry->tag] = $entry; + } + } + + function normalizeFUnit($value, $base = 1000) { + return round($value * ($base / $this->getData("head", "unitsPerEm"))); + } + + protected function readTable($tag) { + $this->parseTableEntries(); + + if (!self::$raw) { + $name_canon = preg_replace("/[^a-z0-9]/", "", strtolower($tag)); + + $class = "FontLib\\Table\\Type\\$name_canon"; + + if (!isset($this->directory[$tag]) || !@class_exists($class)) { + return; + } + } + else { + $class = "FontLib\\Table\\Table"; + } + + /** @var Table $table */ + $table = new $class($this->directory[$tag]); + $table->parse(); + + $this->data[$tag] = $table; + } + + /** + * @param $name + * + * @return Table + */ + public function getTableObject($name) { + return $this->data[$name]; + } + + public function setTableObject($name, Table $data) { + $this->data[$name] = $data; + } + + public function getData($name, $key = null) { + $this->parseTableEntries(); + + if (empty($this->data[$name])) { + $this->readTable($name); + } + + if (!isset($this->data[$name])) { + return null; + } + + if (!$key) { + return $this->data[$name]->data; + } + else { + return $this->data[$name]->data[$key]; + } + } + + function addDirectoryEntry(DirectoryEntry $entry) { + $this->directory[$entry->tag] = $entry; + } + + function saveAdobeFontMetrics($file, $encoding = null) { + $afm = new AdobeFontMetrics($this); + $afm->write($file, $encoding); + } + + /** + * Get a specific name table string value from its ID + * + * @param int $nameID The name ID + * + * @return string|null + */ + function getNameTableString($nameID) { + /** @var nameRecord[] $records */ + $records = $this->getData("name", "records"); + + if (!isset($records[$nameID])) { + return null; + } + + return $records[$nameID]->string; + } + + /** + * Get font copyright + * + * @return string|null + */ + function getFontCopyright() { + return $this->getNameTableString(name::NAME_COPYRIGHT); + } + + /** + * Get font name + * + * @return string|null + */ + function getFontName() { + return $this->getNameTableString(name::NAME_NAME); + } + + /** + * Get font subfamily + * + * @return string|null + */ + function getFontSubfamily() { + return $this->getNameTableString(name::NAME_SUBFAMILY); + } + + /** + * Get font subfamily ID + * + * @return string|null + */ + function getFontSubfamilyID() { + return $this->getNameTableString(name::NAME_SUBFAMILY_ID); + } + + /** + * Get font full name + * + * @return string|null + */ + function getFontFullName() { + return $this->getNameTableString(name::NAME_FULL_NAME); + } + + /** + * Get font version + * + * @return string|null + */ + function getFontVersion() { + return $this->getNameTableString(name::NAME_VERSION); + } + + /** + * Get font weight + * + * @return string|null + */ + function getFontWeight() { + return $this->getTableObject("OS/2")->data["usWeightClass"]; + } + + /** + * Get font Postscript name + * + * @return string|null + */ + function getFontPostscriptName() { + return $this->getNameTableString(name::NAME_POSTSCRIPT_NAME); + } + + function reduce() { + $names_to_keep = array( + name::NAME_COPYRIGHT, + name::NAME_NAME, + name::NAME_SUBFAMILY, + name::NAME_SUBFAMILY_ID, + name::NAME_FULL_NAME, + name::NAME_VERSION, + name::NAME_POSTSCRIPT_NAME, + ); + + foreach ($this->data["name"]->data["records"] as $id => $rec) { + if (!in_array($id, $names_to_keep)) { + unset($this->data["name"]->data["records"][$id]); + } + } + } +} diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/TrueType/Header.php b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/TrueType/Header.php new file mode 100644 index 0000000..7ff79cc --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/TrueType/Header.php @@ -0,0 +1,31 @@ + + * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License + */ + +namespace FontLib\TrueType; + +/** + * TrueType font file header. + * + * @package php-font-lib + */ +class Header extends \FontLib\Header { + protected $def = array( + "format" => self::uint32, + "numTables" => self::uint16, + "searchRange" => self::uint16, + "entrySelector" => self::uint16, + "rangeShift" => self::uint16, + ); + + public function parse() { + parent::parse(); + + $format = $this->data["format"]; + $this->data["formatText"] = $this->convertUInt32ToStr($format); + } +} \ No newline at end of file diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/TrueType/TableDirectoryEntry.php b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/TrueType/TableDirectoryEntry.php new file mode 100644 index 0000000..fc4fe55 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/TrueType/TableDirectoryEntry.php @@ -0,0 +1,33 @@ + + * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License + */ + +namespace FontLib\TrueType; + +use FontLib\Table\DirectoryEntry; + +/** + * TrueType table directory entry. + * + * @package php-font-lib + */ +class TableDirectoryEntry extends DirectoryEntry { + function __construct(File $font) { + parent::__construct($font); + } + + function parse() { + parent::parse(); + + $font = $this->font; + $this->checksum = $font->readUInt32(); + $this->offset = $font->readUInt32(); + $this->length = $font->readUInt32(); + $this->entryLength += 12; + } +} + diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/WOFF/File.php b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/WOFF/File.php new file mode 100644 index 0000000..4668c23 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/WOFF/File.php @@ -0,0 +1,81 @@ + + * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License + */ + +namespace FontLib\WOFF; + +use FontLib\Table\DirectoryEntry; + +/** + * WOFF font file. + * + * @package php-font-lib + * + * @property TableDirectoryEntry[] $directory + */ +class File extends \FontLib\TrueType\File { + function parseHeader() { + if (!empty($this->header)) { + return; + } + + $this->header = new Header($this); + $this->header->parse(); + } + + public function load($file) { + parent::load($file); + + $this->parseTableEntries(); + $dataOffset = $this->pos() + count($this->directory) * 20; + + $fw = $this->getTempFile(false); + $fr = $this->f; + + $this->f = $fw; + $offset = $this->header->encode(); + + foreach ($this->directory as $entry) { + // Read ... + $this->f = $fr; + $this->seek($entry->offset); + $data = $this->read($entry->length); + + if ($entry->length < $entry->origLength) { + $data = (string) gzuncompress($data); + } + + // Prepare data ... + $length = mb_strlen($data, '8bit'); + $entry->length = $entry->origLength = $length; + $entry->offset = $dataOffset; + + // Write ... + $this->f = $fw; + + // Woff Entry + $this->seek($offset); + $offset += $this->write($entry->tag, 4); // tag + $offset += $this->writeUInt32($dataOffset); // offset + $offset += $this->writeUInt32($length); // length + $offset += $this->writeUInt32($length); // origLength + $offset += $this->writeUInt32(DirectoryEntry::computeChecksum($data)); // checksum + + // Data + $this->seek($dataOffset); + $dataOffset += $this->write($data, $length); + } + + $this->f = $fw; + $this->seek(0); + + // Need to re-parse this, don't know why + $this->header = null; + $this->directory = array(); + $this->parseTableEntries(); + } +} diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/WOFF/Header.php b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/WOFF/Header.php new file mode 100644 index 0000000..65a6f14 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/WOFF/Header.php @@ -0,0 +1,32 @@ + + * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License + */ + +namespace FontLib\WOFF; + +/** + * WOFF font file header. + * + * @package php-font-lib + */ +class Header extends \FontLib\TrueType\Header { + protected $def = array( + "format" => self::uint32, + "flavor" => self::uint32, + "length" => self::uint32, + "numTables" => self::uint16, + self::uint16, + "totalSfntSize" => self::uint32, + "majorVersion" => self::uint16, + "minorVersion" => self::uint16, + "metaOffset" => self::uint32, + "metaLength" => self::uint32, + "metaOrigLength" => self::uint32, + "privOffset" => self::uint32, + "privLength" => self::uint32, + ); +} \ No newline at end of file diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/WOFF/TableDirectoryEntry.php b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/WOFF/TableDirectoryEntry.php new file mode 100644 index 0000000..eb67c9c --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-font-lib/src/FontLib/WOFF/TableDirectoryEntry.php @@ -0,0 +1,34 @@ + + * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License + */ + +namespace FontLib\WOFF; + +use FontLib\Table\DirectoryEntry; + +/** + * WOFF font file table directory entry. + * + * @package php-font-lib + */ +class TableDirectoryEntry extends DirectoryEntry { + public $origLength; + + function __construct(File $font) { + parent::__construct($font); + } + + function parse() { + parent::parse(); + + $font = $this->font; + $this->offset = $font->readUInt32(); + $this->length = $font->readUInt32(); + $this->origLength = $font->readUInt32(); + $this->checksum = $font->readUInt32(); + } +} diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/LICENSE b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/LICENSE new file mode 100644 index 0000000..0a04128 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/LICENSE @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/README.md b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/README.md new file mode 100644 index 0000000..2b8e6f6 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/README.md @@ -0,0 +1,13 @@ +# SVG file parsing / rendering library + +[![Build Status](https://github.com/phenx/php-svg-lib/workflows/test/badge.svg)](https://github.com/phenx/php-svg-lib/actions) + + +[![Latest Stable Version](https://poser.pugx.org/phenx/php-svg-lib/v/stable)](https://packagist.org/packages/phenx/php-svg-lib) +[![Total Downloads](https://poser.pugx.org/phenx/php-svg-lib/downloads)](https://packagist.org/packages/phenx/php-svg-lib) +[![Latest Unstable Version](https://poser.pugx.org/phenx/php-svg-lib/v/unstable)](https://packagist.org/packages/phenx/php-svg-lib) +[![License](https://poser.pugx.org/phenx/php-svg-lib/license)](https://packagist.org/packages/phenx/php-svg-lib) + +The main purpose of this lib is to rasterize SVG to a surface which can be an image or a PDF for example, through a `\Svg\Surface` PHP interface. + +This project was initialized by the need to render SVG documents inside PDF files for the [DomPdf](http://dompdf.github.io) project. diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/composer.json b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/composer.json new file mode 100644 index 0000000..a6ed9c5 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/composer.json @@ -0,0 +1,31 @@ +{ + "name": "phenx/php-svg-lib", + "type": "library", + "description": "A library to read, parse and export to PDF SVG files.", + "homepage": "https://github.com/PhenX/php-svg-lib", + "license": "LGPL-3.0", + "authors": [ + { + "name": "Fabien Ménager", + "email": "fabien.menager@gmail.com" + } + ], + "autoload": { + "psr-4": { + "Svg\\": "src/Svg" + } + }, + "autoload-dev": { + "psr-4": { + "Svg\\Tests\\": "tests/Svg" + } + }, + "require": { + "php": "^7.1 || ^8.0", + "ext-mbstring": "*", + "sabberworm/php-css-parser": "^8.4" + }, + "require-dev": { + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5" + } +} diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/CssLength.php b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/CssLength.php new file mode 100644 index 0000000..88eda8c --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/CssLength.php @@ -0,0 +1,135 @@ + + */ + protected static $inchDivisions = [ + 'in' => 1, + 'cm' => 2.54, + 'mm' => 25.4, + 'q' => 101.6, + 'pc' => 6, + 'pt' => 72, + ]; + + /** + * The CSS length unit indicator. + * Will be lower-case and one of the units listed in the '$units' array or empty. + * + * @var string + */ + protected $unit = ''; + + /** + * The numeric value of the given length. + * + * @var float + */ + protected $value = 0; + + /** + * The original unparsed length provided. + * + * @var string + */ + protected $unparsed; + + public function __construct(string $length) + { + $this->unparsed = $length; + $this->parseLengthComponents($length); + } + + /** + * Parse out the unit and value components from the given string length. + */ + protected function parseLengthComponents(string $length): void + { + $length = strtolower($length); + + foreach (self::$units as $unit) { + $pos = strpos($length, $unit); + if ($pos) { + $this->value = floatval(substr($length, 0, $pos)); + $this->unit = $unit; + return; + } + } + + $this->unit = ''; + $this->value = floatval($length); + } + + /** + * Get the unit type of this css length. + * Units are standardised to be lower-cased. + * + * @return string + */ + public function getUnit(): string + { + return $this->unit; + } + + /** + * Get this CSS length in the equivalent pixel count size. + * + * @param float $referenceSize + * @param float $dpi + * + * @return float + */ + public function toPixels(float $referenceSize = 11.0, float $dpi = 96.0): float + { + // Standard relative units + if (in_array($this->unit, ['em', 'rem', 'ex', 'ch'])) { + return $this->value * $referenceSize; + } + + // Percentage relative units + if (in_array($this->unit, ['%', 'vw', 'vh', 'vmin', 'vmax'])) { + return $this->value * ($referenceSize / 100); + } + + // Inch relative units + if (in_array($this->unit, array_keys(static::$inchDivisions))) { + $inchValue = $this->value * $dpi; + $division = static::$inchDivisions[$this->unit]; + return $inchValue / $division; + } + + return $this->value; + } +} \ No newline at end of file diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/DefaultStyle.php b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/DefaultStyle.php new file mode 100644 index 0000000..4e73d29 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/DefaultStyle.php @@ -0,0 +1,29 @@ + + * @license GNU LGPLv3+ http://www.gnu.org/copyleft/lesser.html + */ + +namespace Svg; + +class DefaultStyle extends Style +{ + public $color = [0, 0, 0, 1]; + public $opacity = 1.0; + public $display = 'inline'; + + public $fill = [0, 0, 0, 1]; + public $fillOpacity = 1.0; + public $fillRule = 'nonzero'; + + public $stroke = 'none'; + public $strokeOpacity = 1.0; + public $strokeLinecap = 'butt'; + public $strokeLinejoin = 'miter'; + public $strokeMiterlimit = 4; + public $strokeWidth = 1.0; + public $strokeDasharray = 0; + public $strokeDashoffset = 0; +} diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Document.php b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Document.php new file mode 100644 index 0000000..4de226e --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Document.php @@ -0,0 +1,406 @@ + + * @license GNU LGPLv3+ http://www.gnu.org/copyleft/lesser.html + */ + +namespace Svg; + +use Svg\Surface\SurfaceInterface; +use Svg\Tag\AbstractTag; +use Svg\Tag\Anchor; +use Svg\Tag\Circle; +use Svg\Tag\Ellipse; +use Svg\Tag\Group; +use Svg\Tag\ClipPath; +use Svg\Tag\Image; +use Svg\Tag\Line; +use Svg\Tag\LinearGradient; +use Svg\Tag\Path; +use Svg\Tag\Polygon; +use Svg\Tag\Polyline; +use Svg\Tag\Rect; +use Svg\Tag\Stop; +use Svg\Tag\Text; +use Svg\Tag\StyleTag; +use Svg\Tag\UseTag; + +class Document extends AbstractTag +{ + protected $filename; + public $inDefs = false; + + protected $x; + protected $y; + protected $width; + protected $height; + + protected $subPathInit; + protected $pathBBox; + protected $viewBox; + + /** @var SurfaceInterface */ + protected $surface; + + /** @var AbstractTag[] */ + protected $stack = array(); + + /** @var AbstractTag[] */ + protected $defs = array(); + + /** @var \Sabberworm\CSS\CSSList\Document[] */ + protected $styleSheets = array(); + + public function loadFile($filename) + { + $this->filename = $filename; + } + + protected function initParser() { + $parser = xml_parser_create("utf-8"); + xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, false); + xml_set_element_handler( + $parser, + array($this, "_tagStart"), + array($this, "_tagEnd") + ); + xml_set_character_data_handler( + $parser, + array($this, "_charData") + ); + + return $parser; + } + + public function __construct() { + + } + + /** + * @return SurfaceInterface + */ + public function getSurface() + { + return $this->surface; + } + + public function getStack() + { + return $this->stack; + } + + public function getWidth() + { + return $this->width; + } + + public function getHeight() + { + return $this->height; + } + + public function getDiagonal() + { + return sqrt(($this->width)**2 + ($this->height)**2) / sqrt(2); + } + + public function getDimensions() { + $rootAttributes = null; + + $parser = xml_parser_create("utf-8"); + xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, false); + xml_set_element_handler( + $parser, + function ($parser, $name, $attributes) use (&$rootAttributes) { + if ($name === "svg" && $rootAttributes === null) { + $attributes = array_change_key_case($attributes, CASE_LOWER); + + $rootAttributes = $attributes; + } + }, + function ($parser, $name) {} + ); + + $fp = fopen($this->filename, "r"); + while ($line = fread($fp, 8192)) { + xml_parse($parser, $line, false); + + if ($rootAttributes !== null) { + break; + } + } + + xml_parser_free($parser); + + return $this->handleSizeAttributes($rootAttributes); + } + + public function handleSizeAttributes($attributes){ + if ($this->width === null) { + if (isset($attributes["width"])) { + $width = $this->convertSize($attributes["width"], 400); + $this->width = $width; + } + + if (isset($attributes["height"])) { + $height = $this->convertSize($attributes["height"], 300); + $this->height = $height; + } + + if (isset($attributes['viewbox'])) { + $viewBox = preg_split('/[\s,]+/is', trim($attributes['viewbox'])); + if (count($viewBox) == 4) { + $this->x = $viewBox[0]; + $this->y = $viewBox[1]; + + if (!$this->width) { + $this->width = $viewBox[2]; + } + if (!$this->height) { + $this->height = $viewBox[3]; + } + } + } + } + + return array( + 0 => $this->width, + 1 => $this->height, + + "width" => $this->width, + "height" => $this->height, + ); + } + + public function getDocument(){ + return $this; + } + + /** + * Append a style sheet + * + * @param \Sabberworm\CSS\CSSList\Document $stylesheet + */ + public function appendStyleSheet($stylesheet) { + $this->styleSheets[] = $stylesheet; + } + + /** + * Get the document style sheets + * + * @return \Sabberworm\CSS\CSSList\Document[] + */ + public function getStyleSheets() { + return $this->styleSheets; + } + + protected function before($attributes) + { + $surface = $this->getSurface(); + + $style = new DefaultStyle(); + $style->inherit($this); + $style->fromAttributes($attributes); + + $this->setStyle($style); + + $surface->setStyle($style); + } + + public function render(SurfaceInterface $surface) + { + $this->inDefs = false; + $this->surface = $surface; + + $parser = $this->initParser(); + + if ($this->x || $this->y) { + $surface->translate(-$this->x, -$this->y); + } + + $fp = fopen($this->filename, "r"); + while ($line = fread($fp, 8192)) { + xml_parse($parser, $line, false); + } + + xml_parse($parser, "", true); + + xml_parser_free($parser); + } + + protected function svgOffset($attributes) + { + $this->attributes = $attributes; + + $this->handleSizeAttributes($attributes); + } + + public function getDef($id) { + $id = ltrim($id, "#"); + + return isset($this->defs[$id]) ? $this->defs[$id] : null; + } + + private function _tagStart($parser, $name, $attributes) + { + $this->x = 0; + $this->y = 0; + + $tag = null; + + $attributes = array_change_key_case($attributes, CASE_LOWER); + + switch (strtolower($name)) { + case 'defs': + $this->inDefs = true; + return; + + case 'svg': + if (count($this->attributes)) { + $tag = new Group($this, $name); + } + else { + $tag = $this; + $this->svgOffset($attributes); + } + break; + + case 'path': + $tag = new Path($this, $name); + break; + + case 'rect': + $tag = new Rect($this, $name); + break; + + case 'circle': + $tag = new Circle($this, $name); + break; + + case 'ellipse': + $tag = new Ellipse($this, $name); + break; + + case 'image': + $tag = new Image($this, $name); + break; + + case 'line': + $tag = new Line($this, $name); + break; + + case 'polyline': + $tag = new Polyline($this, $name); + break; + + case 'polygon': + $tag = new Polygon($this, $name); + break; + + case 'lineargradient': + $tag = new LinearGradient($this, $name); + break; + + case 'radialgradient': + $tag = new LinearGradient($this, $name); + break; + + case 'stop': + $tag = new Stop($this, $name); + break; + + case 'style': + $tag = new StyleTag($this, $name); + break; + + case 'a': + $tag = new Anchor($this, $name); + break; + + case 'g': + case 'symbol': + $tag = new Group($this, $name); + break; + + case 'clippath': + $tag = new ClipPath($this, $name); + break; + + case 'use': + $tag = new UseTag($this, $name); + break; + + case 'text': + $tag = new Text($this, $name); + break; + + case 'desc': + return; + } + + if ($tag) { + if (isset($attributes["id"])) { + $this->defs[$attributes["id"]] = $tag; + } + else { + /** @var AbstractTag $top */ + $top = end($this->stack); + if ($top && $top != $tag) { + $top->children[] = $tag; + } + } + + $this->stack[] = $tag; + + $tag->handle($attributes); + } + } + + function _charData($parser, $data) + { + $stack_top = end($this->stack); + + if ($stack_top instanceof Text || $stack_top instanceof StyleTag) { + $stack_top->appendText($data); + } + } + + function _tagEnd($parser, $name) + { + /** @var AbstractTag $tag */ + $tag = null; + switch (strtolower($name)) { + case 'defs': + $this->inDefs = false; + return; + + case 'svg': + case 'path': + case 'rect': + case 'circle': + case 'ellipse': + case 'image': + case 'line': + case 'polyline': + case 'polygon': + case 'radialgradient': + case 'lineargradient': + case 'stop': + case 'style': + case 'text': + case 'g': + case 'symbol': + case 'clippath': + case 'use': + case 'a': + $tag = array_pop($this->stack); + break; + } + + if (!$this->inDefs && $tag) { + $tag->handleEnd(); + } + } +} diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Gradient/Stop.php b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Gradient/Stop.php new file mode 100644 index 0000000..a37fb97 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Gradient/Stop.php @@ -0,0 +1,16 @@ + + * @license GNU LGPLv3+ http://www.gnu.org/copyleft/lesser.html + */ + +namespace Svg\Gradient; + +class Stop +{ + public $offset; + public $color; + public $opacity = 1.0; +} diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Style.php b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Style.php new file mode 100644 index 0000000..14b11e9 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Style.php @@ -0,0 +1,541 @@ + + * @license GNU LGPLv3+ http://www.gnu.org/copyleft/lesser.html + */ + +namespace Svg; + +use Svg\Tag\AbstractTag; + +class Style +{ + const TYPE_COLOR = 1; + const TYPE_LENGTH = 2; + const TYPE_NAME = 3; + const TYPE_ANGLE = 4; + const TYPE_NUMBER = 5; + + private $_parentStyle; + + public $color; + public $opacity; + public $display; + + public $fill; + public $fillOpacity; + public $fillRule; + + public $stroke; + public $strokeOpacity; + public $strokeLinecap; + public $strokeLinejoin; + public $strokeMiterlimit; + public $strokeWidth; + public $strokeDasharray; + public $strokeDashoffset; + + public $fontFamily = 'serif'; + public $fontSize = 12; + public $fontWeight = 'normal'; + public $fontStyle = 'normal'; + public $textAnchor = 'start'; + + protected function getStyleMap() + { + return array( + 'color' => array('color', self::TYPE_COLOR), + 'opacity' => array('opacity', self::TYPE_NUMBER), + 'display' => array('display', self::TYPE_NAME), + + 'fill' => array('fill', self::TYPE_COLOR), + 'fill-opacity' => array('fillOpacity', self::TYPE_NUMBER), + 'fill-rule' => array('fillRule', self::TYPE_NAME), + + 'stroke' => array('stroke', self::TYPE_COLOR), + 'stroke-dasharray' => array('strokeDasharray', self::TYPE_NAME), + 'stroke-dashoffset' => array('strokeDashoffset', self::TYPE_NUMBER), + 'stroke-linecap' => array('strokeLinecap', self::TYPE_NAME), + 'stroke-linejoin' => array('strokeLinejoin', self::TYPE_NAME), + 'stroke-miterlimit' => array('strokeMiterlimit', self::TYPE_NUMBER), + 'stroke-opacity' => array('strokeOpacity', self::TYPE_NUMBER), + 'stroke-width' => array('strokeWidth', self::TYPE_NUMBER), + + 'font-family' => array('fontFamily', self::TYPE_NAME), + 'font-size' => array('fontSize', self::TYPE_NUMBER), + 'font-weight' => array('fontWeight', self::TYPE_NAME), + 'font-style' => array('fontStyle', self::TYPE_NAME), + 'text-anchor' => array('textAnchor', self::TYPE_NAME), + ); + } + + /** + * @param $attributes + * + * @return Style + */ + public function fromAttributes($attributes) + { + $this->fillStyles($attributes); + + if (isset($attributes["style"])) { + $styles = self::parseCssStyle($attributes["style"]); + $this->fillStyles($styles); + } + } + + public function inherit(AbstractTag $tag) { + $group = $tag->getParentGroup(); + if ($group) { + $parent_style = $group->getStyle(); + $this->_parentStyle = $parent_style; + foreach ($parent_style as $_key => $_value) { + if ($_value !== null) { + $this->$_key = $_value; + } + } + } + } + + public function fromStyleSheets(AbstractTag $tag, $attributes) { + $class = isset($attributes["class"]) ? preg_split('/\s+/', trim($attributes["class"])) : null; + + $stylesheets = $tag->getDocument()->getStyleSheets(); + + $styles = array(); + + foreach ($stylesheets as $_sc) { + + /** @var \Sabberworm\CSS\RuleSet\DeclarationBlock $_decl */ + foreach ($_sc->getAllDeclarationBlocks() as $_decl) { + + /** @var \Sabberworm\CSS\Property\Selector $_selector */ + foreach ($_decl->getSelectors() as $_selector) { + $_selector = $_selector->getSelector(); + + // Match class name + if ($class !== null) { + foreach ($class as $_class) { + if ($_selector === ".$_class") { + /** @var \Sabberworm\CSS\Rule\Rule $_rule */ + foreach ($_decl->getRules() as $_rule) { + $styles[$_rule->getRule()] = $_rule->getValue() . ""; + } + + break 2; + } + } + } + + // Match tag name + if ($_selector === $tag->tagName) { + /** @var \Sabberworm\CSS\Rule\Rule $_rule */ + foreach ($_decl->getRules() as $_rule) { + $styles[$_rule->getRule()] = $_rule->getValue() . ""; + } + + break; + } + } + } + } + + $this->fillStyles($styles); + } + + protected function fillStyles($styles) + { + $style_map = $this->getStyleMap(); + foreach ($style_map as $from => $spec) { + if (isset($styles[$from])) { + list($to, $type) = $spec; + $value = null; + switch ($type) { + case self::TYPE_COLOR: + $value = self::parseColor($styles[$from]); + if ($value === "currentcolor") { + if ($type === "color") { + $value = $this->_parentStyle->color; + } else { + $value = $this->color; + } + } + if ($value !== null && $value[3] !== 1 && array_key_exists("{$from}-opacity", $style_map) === true) { + $styles["{$from}-opacity"] = $value[3]; + } + break; + + case self::TYPE_NUMBER: + $value = ($styles[$from] === null) ? null : (float)$styles[$from]; + break; + + default: + $value = $styles[$from]; + } + + if ($value !== null) { + $this->$to = $value; + } + } + } + } + + static function parseColor($color) + { + $color = strtolower(trim($color)); + + $parts = preg_split('/[^,]\s+/', $color, 2); + + if (count($parts) == 2) { + $color = $parts[1]; + } else { + $color = $parts[0]; + } + + if ($color === "none") { + return "none"; + } + + if ($color === "currentcolor") { + return "currentcolor"; + } + + // SVG color name + if (isset(self::$colorNames[$color])) { + return self::parseHexColor(self::$colorNames[$color]); + } + + // Hex color + if ($color[0] === "#") { + return self::parseHexColor($color); + } + + // RGB color + if (strpos($color, "rgb") !== false) { + return self::getQuad($color); + } + + // RGB color + if (strpos($color, "hsl") !== false) { + $quad = self::getQuad($color, true); + + if ($quad == null) { + return null; + } + + list($h, $s, $l, $a) = $quad; + + $r = $l; + $g = $l; + $b = $l; + $v = ($l <= 0.5) ? ($l * (1.0 + $s)) : ($l + $s - $l * $s); + if ($v > 0) { + $m = $l + $l - $v; + $sv = ($v - $m) / $v; + $h *= 6.0; + $sextant = floor($h); + $fract = $h - $sextant; + $vsf = $v * $sv * $fract; + $mid1 = $m + $vsf; + $mid2 = $v - $vsf; + + switch ($sextant) { + case 0: + $r = $v; + $g = $mid1; + $b = $m; + break; + case 1: + $r = $mid2; + $g = $v; + $b = $m; + break; + case 2: + $r = $m; + $g = $v; + $b = $mid1; + break; + case 3: + $r = $m; + $g = $mid2; + $b = $v; + break; + case 4: + $r = $mid1; + $g = $m; + $b = $v; + break; + case 5: + $r = $v; + $g = $m; + $b = $mid2; + break; + } + } + $a = $a * 255; + + return array( + $r * 255.0, + $g * 255.0, + $b * 255.0, + $a + ); + } + + // Gradient + if (strpos($color, "url(#") !== false) { + $i = strpos($color, "("); + $j = strpos($color, ")"); + + // Bad url format + if ($i === false || $j === false) { + return null; + } + + return trim(substr($color, $i + 1, $j - $i - 1)); + } + + return null; + } + + static function getQuad($color, $percent = false) { + $i = strpos($color, "("); + $j = strpos($color, ")"); + + // Bad color value + if ($i === false || $j === false) { + return null; + } + + $quad = preg_split("/\\s*[,\\/]\\s*/", trim(substr($color, $i + 1, $j - $i - 1))); + if (!isset($quad[3])) { + $quad[3] = 1; + } + + if (count($quad) != 3 && count($quad) != 4) { + return null; + } + + foreach (array_keys($quad) as $c) { + $quad[$c] = trim($quad[$c]); + + if ($percent) { + if ($quad[$c][strlen($quad[$c]) - 1] === "%") { + $quad[$c] = floatval($quad[$c]) / 100; + } else { + $quad[$c] = $quad[$c] / 255; + } + } else { + if ($quad[$c][strlen($quad[$c]) - 1] === "%") { + $quad[$c] = round(floatval($quad[$c]) * 2.55); + } + } + } + + return $quad; + } + + static function parseHexColor($hex) + { + $c = array(0, 0, 0, 1); + + // #FFFFFF + if (isset($hex[6])) { + $c[0] = hexdec(substr($hex, 1, 2)); + $c[1] = hexdec(substr($hex, 3, 2)); + $c[2] = hexdec(substr($hex, 5, 2)); + + if (isset($hex[7])) { + $alpha = substr($hex, 7, 2); + if (ctype_xdigit($alpha)) { + $c[3] = round(hexdec($alpha)/255, 2); + } + } + } else { + $c[0] = hexdec($hex[1] . $hex[1]); + $c[1] = hexdec($hex[2] . $hex[2]); + $c[2] = hexdec($hex[3] . $hex[3]); + + if (isset($hex[4])) { + if (ctype_xdigit($hex[4])) { + $c[3] = round(hexdec($hex[4] . $hex[4])/255, 2); + } + } + } + + return $c; + } + + /** + * Simple CSS parser + * + * @param $style + * + * @return array + */ + static function parseCssStyle($style) + { + $matches = array(); + preg_match_all("/([a-z-]+)\\s*:\\s*([^;$]+)/si", $style, $matches, PREG_SET_ORDER); + + $styles = array(); + foreach ($matches as $match) { + $styles[$match[1]] = $match[2]; + } + + return $styles; + } + + static $colorNames = array( + 'antiquewhite' => '#FAEBD7', + 'aqua' => '#00FFFF', + 'aquamarine' => '#7FFFD4', + 'beige' => '#F5F5DC', + 'black' => '#000000', + 'blue' => '#0000FF', + 'brown' => '#A52A2A', + 'cadetblue' => '#5F9EA0', + 'chocolate' => '#D2691E', + 'cornflowerblue' => '#6495ED', + 'crimson' => '#DC143C', + 'darkblue' => '#00008B', + 'darkgoldenrod' => '#B8860B', + 'darkgreen' => '#006400', + 'darkmagenta' => '#8B008B', + 'darkorange' => '#FF8C00', + 'darkred' => '#8B0000', + 'darkseagreen' => '#8FBC8F', + 'darkslategray' => '#2F4F4F', + 'darkviolet' => '#9400D3', + 'deepskyblue' => '#00BFFF', + 'dodgerblue' => '#1E90FF', + 'firebrick' => '#B22222', + 'forestgreen' => '#228B22', + 'fuchsia' => '#FF00FF', + 'gainsboro' => '#DCDCDC', + 'gold' => '#FFD700', + 'gray' => '#808080', + 'green' => '#008000', + 'greenyellow' => '#ADFF2F', + 'hotpink' => '#FF69B4', + 'indigo' => '#4B0082', + 'khaki' => '#F0E68C', + 'lavenderblush' => '#FFF0F5', + 'lemonchiffon' => '#FFFACD', + 'lightcoral' => '#F08080', + 'lightgoldenrodyellow' => '#FAFAD2', + 'lightgreen' => '#90EE90', + 'lightsalmon' => '#FFA07A', + 'lightskyblue' => '#87CEFA', + 'lightslategray' => '#778899', + 'lightyellow' => '#FFFFE0', + 'lime' => '#00FF00', + 'limegreen' => '#32CD32', + 'magenta' => '#FF00FF', + 'maroon' => '#800000', + 'mediumaquamarine' => '#66CDAA', + 'mediumorchid' => '#BA55D3', + 'mediumseagreen' => '#3CB371', + 'mediumspringgreen' => '#00FA9A', + 'mediumvioletred' => '#C71585', + 'midnightblue' => '#191970', + 'mintcream' => '#F5FFFA', + 'moccasin' => '#FFE4B5', + 'navy' => '#000080', + 'olive' => '#808000', + 'orange' => '#FFA500', + 'orchid' => '#DA70D6', + 'palegreen' => '#98FB98', + 'palevioletred' => '#D87093', + 'peachpuff' => '#FFDAB9', + 'pink' => '#FFC0CB', + 'powderblue' => '#B0E0E6', + 'purple' => '#800080', + 'red' => '#FF0000', + 'royalblue' => '#4169E1', + 'salmon' => '#FA8072', + 'seagreen' => '#2E8B57', + 'sienna' => '#A0522D', + 'silver' => '#C0C0C0', + 'skyblue' => '#87CEEB', + 'slategray' => '#708090', + 'springgreen' => '#00FF7F', + 'steelblue' => '#4682B4', + 'tan' => '#D2B48C', + 'teal' => '#008080', + 'thistle' => '#D8BFD8', + 'turquoise' => '#40E0D0', + 'violetred' => '#D02090', + 'white' => '#FFFFFF', + 'yellow' => '#FFFF00', + 'aliceblue' => '#f0f8ff', + 'azure' => '#f0ffff', + 'bisque' => '#ffe4c4', + 'blanchedalmond' => '#ffebcd', + 'blueviolet' => '#8a2be2', + 'burlywood' => '#deb887', + 'chartreuse' => '#7fff00', + 'coral' => '#ff7f50', + 'cornsilk' => '#fff8dc', + 'cyan' => '#00ffff', + 'darkcyan' => '#008b8b', + 'darkgray' => '#a9a9a9', + 'darkgrey' => '#a9a9a9', + 'darkkhaki' => '#bdb76b', + 'darkolivegreen' => '#556b2f', + 'darkorchid' => '#9932cc', + 'darksalmon' => '#e9967a', + 'darkslateblue' => '#483d8b', + 'darkslategrey' => '#2f4f4f', + 'darkturquoise' => '#00ced1', + 'deeppink' => '#ff1493', + 'dimgray' => '#696969', + 'dimgrey' => '#696969', + 'floralwhite' => '#fffaf0', + 'ghostwhite' => '#f8f8ff', + 'goldenrod' => '#daa520', + 'grey' => '#808080', + 'honeydew' => '#f0fff0', + 'indianred' => '#cd5c5c', + 'ivory' => '#fffff0', + 'lavender' => '#e6e6fa', + 'lawngreen' => '#7cfc00', + 'lightblue' => '#add8e6', + 'lightcyan' => '#e0ffff', + 'lightgray' => '#d3d3d3', + 'lightgrey' => '#d3d3d3', + 'lightpink' => '#ffb6c1', + 'lightseagreen' => '#20b2aa', + 'lightslategrey' => '#778899', + 'lightsteelblue' => '#b0c4de', + 'linen' => '#faf0e6', + 'mediumblue' => '#0000cd', + 'mediumpurple' => '#9370db', + 'mediumslateblue' => '#7b68ee', + 'mediumturquoise' => '#48d1cc', + 'mistyrose' => '#ffe4e1', + 'navajowhite' => '#ffdead', + 'oldlace' => '#fdf5e6', + 'olivedrab' => '#6b8e23', + 'orangered' => '#ff4500', + 'palegoldenrod' => '#eee8aa', + 'paleturquoise' => '#afeeee', + 'papayawhip' => '#ffefd5', + 'peru' => '#cd853f', + 'plum' => '#dda0dd', + 'rosybrown' => '#bc8f8f', + 'saddlebrown' => '#8b4513', + 'sandybrown' => '#f4a460', + 'seashell' => '#fff5ee', + 'slateblue' => '#6a5acd', + 'slategrey' => '#708090', + 'snow' => '#fffafa', + 'tomato' => '#ff6347', + 'violet' => '#ee82ee', + 'wheat' => '#f5deb3', + 'whitesmoke' => '#f5f5f5', + 'yellowgreen' => '#9acd32', + ); +} diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Surface/CPdf.php b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Surface/CPdf.php new file mode 100644 index 0000000..447f834 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Surface/CPdf.php @@ -0,0 +1,6418 @@ + + * @author Orion Richardson + * @author Helmut Tischer + * @author Ryan H. Masten + * @author Brian Sweeney + * @author Fabien Ménager + * @license Public Domain http://creativecommons.org/licenses/publicdomain/ + * @package Cpdf + */ + +namespace Svg\Surface; + +class CPdf +{ + const PDF_VERSION = '1.7'; + + const ACROFORM_SIG_SIGNATURESEXISTS = 0x0001; + const ACROFORM_SIG_APPENDONLY = 0x0002; + + const ACROFORM_FIELD_BUTTON = 'Btn'; + const ACROFORM_FIELD_TEXT = 'Tx'; + const ACROFORM_FIELD_CHOICE = 'Ch'; + const ACROFORM_FIELD_SIG = 'Sig'; + + const ACROFORM_FIELD_READONLY = 0x0001; + const ACROFORM_FIELD_REQUIRED = 0x0002; + + const ACROFORM_FIELD_TEXT_MULTILINE = 0x1000; + const ACROFORM_FIELD_TEXT_PASSWORD = 0x2000; + const ACROFORM_FIELD_TEXT_RICHTEXT = 0x10000; + + const ACROFORM_FIELD_CHOICE_COMBO = 0x20000; + const ACROFORM_FIELD_CHOICE_EDIT = 0x40000; + const ACROFORM_FIELD_CHOICE_SORT = 0x80000; + const ACROFORM_FIELD_CHOICE_MULTISELECT = 0x200000; + + const XOBJECT_SUBTYPE_FORM = 'Form'; + + /** + * @var integer The current number of pdf objects in the document + */ + public $numObj = 0; + + /** + * @var array This array contains all of the pdf objects, ready for final assembly + */ + public $objects = []; + + /** + * @var integer The objectId (number within the objects array) of the document catalog + */ + public $catalogId; + + /** + * @var integer The objectId (number within the objects array) of indirect references (Javascript EmbeddedFiles) + */ + protected $indirectReferenceId = 0; + + /** + * @var integer The objectId (number within the objects array) + */ + protected $embeddedFilesId = 0; + + /** + * AcroForm objectId + * + * @var integer + */ + public $acroFormId; + + /** + * @var int + */ + public $signatureMaxLen = 5000; + + /** + * @var array Array carrying information about the fonts that the system currently knows about + * Used to ensure that a font is not loaded twice, among other things + */ + public $fonts = []; + + /** + * @var string The default font metrics file to use if no other font has been loaded. + * The path to the directory containing the font metrics should be included + */ + public $defaultFont = './fonts/Helvetica.afm'; + + /** + * @string A record of the current font + */ + public $currentFont = ''; + + /** + * @var string The current base font + */ + public $currentBaseFont = ''; + + /** + * @var integer The number of the current font within the font array + */ + public $currentFontNum = 0; + + /** + * @var integer + */ + public $currentNode; + + /** + * @var integer Object number of the current page + */ + public $currentPage; + + /** + * @var integer Object number of the currently active contents block + */ + public $currentContents; + + /** + * @var integer Number of fonts within the system + */ + public $numFonts = 0; + + /** + * @var integer Number of graphic state resources used + */ + private $numStates = 0; + + /** + * @var array Number of graphic state resources used + */ + private $gstates = []; + + /** + * @var array Current color for fill operations, defaults to inactive value, + * all three components should be between 0 and 1 inclusive when active + */ + public $currentColor = null; + + /** + * @var array Current color for stroke operations (lines etc.) + */ + public $currentStrokeColor = null; + + /** + * @var string Fill rule (nonzero or evenodd) + */ + public $fillRule = "nonzero"; + + /** + * @var string Current style that lines are drawn in + */ + public $currentLineStyle = ''; + + /** + * @var array Current line transparency (partial graphics state) + */ + public $currentLineTransparency = ["mode" => "Normal", "opacity" => 1.0]; + + /** + * array Current fill transparency (partial graphics state) + */ + public $currentFillTransparency = ["mode" => "Normal", "opacity" => 1.0]; + + /** + * @var array An array which is used to save the state of the document, mainly the colors and styles + * it is used to temporarily change to another state, then change back to what it was before + */ + public $stateStack = []; + + /** + * @var integer Number of elements within the state stack + */ + public $nStateStack = 0; + + /** + * @var integer Number of page objects within the document + */ + public $numPages = 0; + + /** + * @var array Object Id storage stack + */ + public $stack = []; + + /** + * @var integer Number of elements within the object Id storage stack + */ + public $nStack = 0; + + /** + * an array which contains information about the objects which are not firmly attached to pages + * these have been added with the addObject function + */ + public $looseObjects = []; + + /** + * array contains information about how the loose objects are to be added to the document + */ + public $addLooseObjects = []; + + /** + * @var integer The objectId of the information object for the document + * this contains authorship, title etc. + */ + public $infoObject = 0; + + /** + * @var integer Number of images being tracked within the document + */ + public $numImages = 0; + + /** + * @var array An array containing options about the document + * it defaults to turning on the compression of the objects + */ + public $options = ['compression' => true]; + + /** + * @var integer The objectId of the first page of the document + */ + public $firstPageId; + + /** + * @var integer The object Id of the procset object + */ + public $procsetObjectId; + + /** + * @var array Store the information about the relationship between font families + * this used so that the code knows which font is the bold version of another font, etc. + * the value of this array is initialised in the constructor function. + */ + public $fontFamilies = []; + + /** + * @var string Folder for php serialized formats of font metrics files. + * If empty string, use same folder as original metrics files. + * This can be passed in from class creator. + * If this folder does not exist or is not writable, Cpdf will be **much** slower. + * Because of potential trouble with php safe mode, folder cannot be created at runtime. + */ + public $fontcache = ''; + + /** + * @var integer The version of the font metrics cache file. + * This value must be manually incremented whenever the internal font data structure is modified. + */ + public $fontcacheVersion = 6; + + /** + * @var string Temporary folder. + * If empty string, will attempt system tmp folder. + * This can be passed in from class creator. + */ + public $tmp = ''; + + /** + * @var string Track if the current font is bolded or italicised + */ + public $currentTextState = ''; + + /** + * @var string Messages are stored here during processing, these can be selected afterwards to give some useful debug information + */ + public $messages = ''; + + /** + * @var string The encryption array for the document encryption is stored here + */ + public $arc4 = ''; + + /** + * @var integer The object Id of the encryption information + */ + public $arc4_objnum = 0; + + /** + * @var string The file identifier, used to uniquely identify a pdf document + */ + public $fileIdentifier = ''; + + /** + * @var boolean A flag to say if a document is to be encrypted or not + */ + public $encrypted = false; + + /** + * @var string The encryption key for the encryption of all the document content (structure is not encrypted) + */ + public $encryptionKey = ''; + + /** + * @var array Array which forms a stack to keep track of nested callback functions + */ + public $callback = []; + + /** + * @var integer The number of callback functions in the callback array + */ + public $nCallback = 0; + + /** + * @var array Store label->id pairs for named destinations, these will be used to replace internal links + * done this way so that destinations can be defined after the location that links to them + */ + public $destinations = []; + + /** + * @var array Store the stack for the transaction commands, each item in here is a record of the values of all the + * publiciables within the class, so that the user can rollback at will (from each 'start' command) + * note that this includes the objects array, so these can be large. + */ + public $checkpoint = ''; + + /** + * @var array Table of Image origin filenames and image labels which were already added with o_image(). + * Allows to merge identical images + */ + public $imagelist = []; + + /** + * @var array Table of already added alpha and plain image files for transparent PNG images. + */ + protected $imageAlphaList = []; + + /** + * @var array List of temporary image files to be deleted after processing. + */ + protected $imageCache = []; + + /** + * @var boolean Whether the text passed in should be treated as Unicode or just local character set. + */ + public $isUnicode = false; + + /** + * @var string the JavaScript code of the document + */ + public $javascript = ''; + + /** + * @var boolean whether the compression is possible + */ + protected $compressionReady = false; + + /** + * @var array Current page size + */ + protected $currentPageSize = ["width" => 0, "height" => 0]; + + /** + * @var array All the chars that will be required in the font subsets + */ + protected $stringSubsets = []; + + /** + * @var string The target internal encoding + */ + protected static $targetEncoding = 'Windows-1252'; + + /** + * @var array + */ + protected $byteRange = array(); + + /** + * @var array The list of the core fonts + */ + protected static $coreFonts = [ + 'courier', + 'courier-bold', + 'courier-oblique', + 'courier-boldoblique', + 'helvetica', + 'helvetica-bold', + 'helvetica-oblique', + 'helvetica-boldoblique', + 'times-roman', + 'times-bold', + 'times-italic', + 'times-bolditalic', + 'symbol', + 'zapfdingbats' + ]; + + /** + * Class constructor + * This will start a new document + * + * @param array $pageSize Array of 4 numbers, defining the bottom left and upper right corner of the page. first two are normally zero. + * @param boolean $isUnicode Whether text will be treated as Unicode or not. + * @param string $fontcache The font cache folder + * @param string $tmp The temporary folder + */ + function __construct($pageSize = [0, 0, 612, 792], $isUnicode = false, $fontcache = '', $tmp = '') + { + $this->isUnicode = $isUnicode; + $this->fontcache = rtrim($fontcache, DIRECTORY_SEPARATOR."/\\"); + $this->tmp = ($tmp !== '' ? $tmp : sys_get_temp_dir()); + $this->newDocument($pageSize); + + $this->compressionReady = function_exists('gzcompress'); + + if (in_array('Windows-1252', mb_list_encodings())) { + self::$targetEncoding = 'Windows-1252'; + } + + // also initialize the font families that are known about already + $this->setFontFamily('init'); + } + + public function __destruct() + { + foreach ($this->imageCache as $file) { + if (file_exists($file)) { + unlink($file); + } + } + } + + /** + * Document object methods (internal use only) + * + * There is about one object method for each type of object in the pdf document + * Each function has the same call list ($id,$action,$options). + * $id = the object ID of the object, or what it is to be if it is being created + * $action = a string specifying the action to be performed, though ALL must support: + * 'new' - create the object with the id $id + * 'out' - produce the output for the pdf object + * $options = optional, a string or array containing the various parameters for the object + * + * These, in conjunction with the output function are the ONLY way for output to be produced + * within the pdf 'file'. + */ + + /** + * Destination object, used to specify the location for the user to jump to, presently on opening + * + * @param $id + * @param $action + * @param string $options + * @return string|null + */ + protected function o_destination($id, $action, $options = '') + { + switch ($action) { + case 'new': + $this->objects[$id] = ['t' => 'destination', 'info' => []]; + $tmp = ''; + switch ($options['type']) { + case 'XYZ': + /** @noinspection PhpMissingBreakStatementInspection */ + case 'FitR': + $tmp = ' ' . $options['p3'] . $tmp; + case 'FitH': + case 'FitV': + case 'FitBH': + /** @noinspection PhpMissingBreakStatementInspection */ + case 'FitBV': + $tmp = ' ' . $options['p1'] . ' ' . $options['p2'] . $tmp; + case 'Fit': + case 'FitB': + $tmp = $options['type'] . $tmp; + $this->objects[$id]['info']['string'] = $tmp; + $this->objects[$id]['info']['page'] = $options['page']; + } + break; + + case 'out': + $o = &$this->objects[$id]; + + $tmp = $o['info']; + $res = "\n$id 0 obj\n" . '[' . $tmp['page'] . ' 0 R /' . $tmp['string'] . "]\nendobj"; + + return $res; + } + + return null; + } + + /** + * set the viewer preferences + * + * @param $id + * @param $action + * @param string|array $options + * @return string|null + */ + protected function o_viewerPreferences($id, $action, $options = '') + { + switch ($action) { + case 'new': + $this->objects[$id] = ['t' => 'viewerPreferences', 'info' => []]; + break; + + case 'add': + $o = &$this->objects[$id]; + + foreach ($options as $k => $v) { + switch ($k) { + // Boolean keys + case 'HideToolbar': + case 'HideMenubar': + case 'HideWindowUI': + case 'FitWindow': + case 'CenterWindow': + case 'DisplayDocTitle': + case 'PickTrayByPDFSize': + $o['info'][$k] = (bool)$v; + break; + + // Integer keys + case 'NumCopies': + $o['info'][$k] = (int)$v; + break; + + // Name keys + case 'ViewArea': + case 'ViewClip': + case 'PrintClip': + case 'PrintArea': + $o['info'][$k] = (string)$v; + break; + + // Named with limited valid values + case 'NonFullScreenPageMode': + if (!in_array($v, ['UseNone', 'UseOutlines', 'UseThumbs', 'UseOC'])) { + break; + } + $o['info'][$k] = $v; + break; + + case 'Direction': + if (!in_array($v, ['L2R', 'R2L'])) { + break; + } + $o['info'][$k] = $v; + break; + + case 'PrintScaling': + if (!in_array($v, ['None', 'AppDefault'])) { + break; + } + $o['info'][$k] = $v; + break; + + case 'Duplex': + if (!in_array($v, ['None', 'Simplex', 'DuplexFlipShortEdge', 'DuplexFlipLongEdge'])) { + break; + } + $o['info'][$k] = $v; + break; + + // Integer array + case 'PrintPageRange': + // Cast to integer array + foreach ($v as $vK => $vV) { + $v[$vK] = (int)$vV; + } + $o['info'][$k] = array_values($v); + break; + } + } + break; + + case 'out': + $o = &$this->objects[$id]; + $res = "\n$id 0 obj\n<< "; + + foreach ($o['info'] as $k => $v) { + if (is_string($v)) { + $v = '/' . $v; + } elseif (is_int($v)) { + $v = (string) $v; + } elseif (is_bool($v)) { + $v = ($v ? 'true' : 'false'); + } elseif (is_array($v)) { + $v = '[' . implode(' ', $v) . ']'; + } + $res .= "\n/$k $v"; + } + $res .= "\n>>\nendobj"; + + return $res; + } + + return null; + } + + /** + * define the document catalog, the overall controller for the document + * + * @param $id + * @param $action + * @param string|array $options + * @return string|null + */ + protected function o_catalog($id, $action, $options = '') + { + if ($action !== 'new') { + $o = &$this->objects[$id]; + } + + switch ($action) { + case 'new': + $this->objects[$id] = ['t' => 'catalog', 'info' => []]; + $this->catalogId = $id; + break; + + case 'acroform': + case 'outlines': + case 'pages': + case 'openHere': + case 'names': + $o['info'][$action] = $options; + break; + + case 'viewerPreferences': + if (!isset($o['info']['viewerPreferences'])) { + $this->numObj++; + $this->o_viewerPreferences($this->numObj, 'new'); + $o['info']['viewerPreferences'] = $this->numObj; + } + + $vp = $o['info']['viewerPreferences']; + $this->o_viewerPreferences($vp, 'add', $options); + + break; + + case 'out': + $res = "\n$id 0 obj\n<< /Type /Catalog"; + + foreach ($o['info'] as $k => $v) { + switch ($k) { + case 'outlines': + $res .= "\n/Outlines $v 0 R"; + break; + + case 'pages': + $res .= "\n/Pages $v 0 R"; + break; + + case 'viewerPreferences': + $res .= "\n/ViewerPreferences $v 0 R"; + break; + + case 'openHere': + $res .= "\n/OpenAction $v 0 R"; + break; + + case 'names': + $res .= "\n/Names $v 0 R"; + break; + + case 'acroform': + $res .= "\n/AcroForm $v 0 R"; + break; + } + } + + $res .= " >>\nendobj"; + + return $res; + } + + return null; + } + + /** + * object which is a parent to the pages in the document + * + * @param $id + * @param $action + * @param string $options + * @return string|null + */ + protected function o_pages($id, $action, $options = '') + { + if ($action !== 'new') { + $o = &$this->objects[$id]; + } + + switch ($action) { + case 'new': + $this->objects[$id] = ['t' => 'pages', 'info' => []]; + $this->o_catalog($this->catalogId, 'pages', $id); + break; + + case 'page': + if (!is_array($options)) { + // then it will just be the id of the new page + $o['info']['pages'][] = $options; + } else { + // then it should be an array having 'id','rid','pos', where rid=the page to which this one will be placed relative + // and pos is either 'before' or 'after', saying where this page will fit. + if (isset($options['id']) && isset($options['rid']) && isset($options['pos'])) { + $i = array_search($options['rid'], $o['info']['pages']); + if (isset($o['info']['pages'][$i]) && $o['info']['pages'][$i] == $options['rid']) { + + // then there is a match + // make a space + switch ($options['pos']) { + case 'before': + $k = $i; + break; + + case 'after': + $k = $i + 1; + break; + + default: + $k = -1; + break; + } + + if ($k >= 0) { + for ($j = count($o['info']['pages']) - 1; $j >= $k; $j--) { + $o['info']['pages'][$j + 1] = $o['info']['pages'][$j]; + } + + $o['info']['pages'][$k] = $options['id']; + } + } + } + } + break; + + case 'procset': + $o['info']['procset'] = $options; + break; + + case 'mediaBox': + $o['info']['mediaBox'] = $options; + // which should be an array of 4 numbers + $this->currentPageSize = ['width' => $options[2], 'height' => $options[3]]; + break; + + case 'font': + $o['info']['fonts'][] = ['objNum' => $options['objNum'], 'fontNum' => $options['fontNum']]; + break; + + case 'extGState': + $o['info']['extGStates'][] = ['objNum' => $options['objNum'], 'stateNum' => $options['stateNum']]; + break; + + case 'xObject': + $o['info']['xObjects'][] = ['objNum' => $options['objNum'], 'label' => $options['label']]; + break; + + case 'out': + if (count($o['info']['pages'])) { + $res = "\n$id 0 obj\n<< /Type /Pages\n/Kids ["; + foreach ($o['info']['pages'] as $v) { + $res .= "$v 0 R\n"; + } + + $res .= "]\n/Count " . count($this->objects[$id]['info']['pages']); + + if ((isset($o['info']['fonts']) && count($o['info']['fonts'])) || + isset($o['info']['procset']) || + (isset($o['info']['extGStates']) && count($o['info']['extGStates'])) + ) { + $res .= "\n/Resources <<"; + + if (isset($o['info']['procset'])) { + $res .= "\n/ProcSet " . $o['info']['procset'] . " 0 R"; + } + + if (isset($o['info']['fonts']) && count($o['info']['fonts'])) { + $res .= "\n/Font << "; + foreach ($o['info']['fonts'] as $finfo) { + $res .= "\n/F" . $finfo['fontNum'] . " " . $finfo['objNum'] . " 0 R"; + } + $res .= "\n>>"; + } + + if (isset($o['info']['xObjects']) && count($o['info']['xObjects'])) { + $res .= "\n/XObject << "; + foreach ($o['info']['xObjects'] as $finfo) { + $res .= "\n/" . $finfo['label'] . " " . $finfo['objNum'] . " 0 R"; + } + $res .= "\n>>"; + } + + if (isset($o['info']['extGStates']) && count($o['info']['extGStates'])) { + $res .= "\n/ExtGState << "; + foreach ($o['info']['extGStates'] as $gstate) { + $res .= "\n/GS" . $gstate['stateNum'] . " " . $gstate['objNum'] . " 0 R"; + } + $res .= "\n>>"; + } + + $res .= "\n>>"; + if (isset($o['info']['mediaBox'])) { + $tmp = $o['info']['mediaBox']; + $res .= "\n/MediaBox [" . sprintf( + '%.3F %.3F %.3F %.3F', + $tmp[0], + $tmp[1], + $tmp[2], + $tmp[3] + ) . ']'; + } + } + + $res .= "\n >>\nendobj"; + } else { + $res = "\n$id 0 obj\n<< /Type /Pages\n/Count 0\n>>\nendobj"; + } + + return $res; + } + + return null; + } + + /** + * define the outlines in the doc, empty for now + * + * @param $id + * @param $action + * @param string $options + * @return string|null + */ + protected function o_outlines($id, $action, $options = '') + { + if ($action !== 'new') { + $o = &$this->objects[$id]; + } + + switch ($action) { + case 'new': + $this->objects[$id] = ['t' => 'outlines', 'info' => ['outlines' => []]]; + $this->o_catalog($this->catalogId, 'outlines', $id); + break; + + case 'outline': + $o['info']['outlines'][] = $options; + break; + + case 'out': + if (count($o['info']['outlines'])) { + $res = "\n$id 0 obj\n<< /Type /Outlines /Kids ["; + foreach ($o['info']['outlines'] as $v) { + $res .= "$v 0 R "; + } + + $res .= "] /Count " . count($o['info']['outlines']) . " >>\nendobj"; + } else { + $res = "\n$id 0 obj\n<< /Type /Outlines /Count 0 >>\nendobj"; + } + + return $res; + } + + return null; + } + + /** + * an object to hold the font description + * + * @param $id + * @param $action + * @param string|array $options + * @return string|null + * @throws FontNotFoundException + */ + protected function o_font($id, $action, $options = '') + { + if ($action !== 'new') { + $o = &$this->objects[$id]; + } + + switch ($action) { + case 'new': + $this->objects[$id] = [ + 't' => 'font', + 'info' => [ + 'name' => $options['name'], + 'fontFileName' => $options['fontFileName'], + 'SubType' => 'Type1', + 'isSubsetting' => $options['isSubsetting'] + ] + ]; + $fontNum = $this->numFonts; + $this->objects[$id]['info']['fontNum'] = $fontNum; + + // deal with the encoding and the differences + if (isset($options['differences'])) { + // then we'll need an encoding dictionary + $this->numObj++; + $this->o_fontEncoding($this->numObj, 'new', $options); + $this->objects[$id]['info']['encodingDictionary'] = $this->numObj; + } else { + if (isset($options['encoding'])) { + // we can specify encoding here + switch ($options['encoding']) { + case 'WinAnsiEncoding': + case 'MacRomanEncoding': + case 'MacExpertEncoding': + $this->objects[$id]['info']['encoding'] = $options['encoding']; + break; + + case 'none': + break; + + default: + $this->objects[$id]['info']['encoding'] = 'WinAnsiEncoding'; + break; + } + } else { + $this->objects[$id]['info']['encoding'] = 'WinAnsiEncoding'; + } + } + + if ($this->fonts[$options['fontFileName']]['isUnicode']) { + // For Unicode fonts, we need to incorporate font data into + // sub-sections that are linked from the primary font section. + // Look at o_fontGIDtoCID and o_fontDescendentCID functions + // for more information. + // + // All of this code is adapted from the excellent changes made to + // transform FPDF to TCPDF (http://tcpdf.sourceforge.net/) + + $toUnicodeId = ++$this->numObj; + $this->o_toUnicode($toUnicodeId, 'new'); + $this->objects[$id]['info']['toUnicode'] = $toUnicodeId; + + $cidFontId = ++$this->numObj; + $this->o_fontDescendentCID($cidFontId, 'new', $options); + $this->objects[$id]['info']['cidFont'] = $cidFontId; + } + + // also tell the pages node about the new font + $this->o_pages($this->currentNode, 'font', ['fontNum' => $fontNum, 'objNum' => $id]); + break; + + case 'add': + $font_options = $this->processFont($id, $o['info']); + + if ($font_options !== false) { + foreach ($font_options as $k => $v) { + switch ($k) { + case 'BaseFont': + $o['info']['name'] = $v; + break; + case 'FirstChar': + case 'LastChar': + case 'Widths': + case 'FontDescriptor': + case 'SubType': + $this->addMessage('o_font ' . $k . " : " . $v); + $o['info'][$k] = $v; + break; + } + } + + // pass values down to descendent font + if (isset($o['info']['cidFont'])) { + $this->o_fontDescendentCID($o['info']['cidFont'], 'add', $font_options); + } + } + break; + + case 'out': + if ($this->fonts[$this->objects[$id]['info']['fontFileName']]['isUnicode']) { + // For Unicode fonts, we need to incorporate font data into + // sub-sections that are linked from the primary font section. + // Look at o_fontGIDtoCID and o_fontDescendentCID functions + // for more information. + // + // All of this code is adapted from the excellent changes made to + // transform FPDF to TCPDF (http://tcpdf.sourceforge.net/) + + $res = "\n$id 0 obj\n<fonts[$fontFileName])) { + return false; + } + + $font = &$this->fonts[$fontFileName]; + + $fileSuffix = $font['fileSuffix']; + $fileSuffixLower = strtolower($font['fileSuffix']); + $fbfile = "$fontFileName.$fileSuffix"; + $isTtfFont = $fileSuffixLower === 'ttf'; + $isPfbFont = $fileSuffixLower === 'pfb'; + + $this->addMessage('selectFont: checking for - ' . $fbfile); + + if (!$fileSuffix) { + $this->addMessage( + 'selectFont: pfb or ttf file not found, ok if this is one of the 14 standard fonts' + ); + + return false; + } else { + $adobeFontName = isset($font['PostScriptName']) ? $font['PostScriptName'] : $font['FontName']; + // $fontObj = $this->numObj; + $this->addMessage("selectFont: adding font file - $fbfile - $adobeFontName"); + + // find the array of font widths, and put that into an object. + $firstChar = -1; + $lastChar = 0; + $widths = []; + $cid_widths = []; + + foreach ($font['C'] as $num => $d) { + if (intval($num) > 0 || $num == '0') { + if (!$font['isUnicode']) { + // With Unicode, widths array isn't used + if ($lastChar > 0 && $num > $lastChar + 1) { + for ($i = $lastChar + 1; $i < $num; $i++) { + $widths[] = 0; + } + } + } + + $widths[] = $d; + + if ($font['isUnicode']) { + $cid_widths[$num] = $d; + } + + if ($firstChar == -1) { + $firstChar = $num; + } + + $lastChar = $num; + } + } + + // also need to adjust the widths for the differences array + if (isset($object['differences'])) { + foreach ($object['differences'] as $charNum => $charName) { + if ($charNum > $lastChar) { + if (!$object['isUnicode']) { + // With Unicode, widths array isn't used + for ($i = $lastChar + 1; $i <= $charNum; $i++) { + $widths[] = 0; + } + } + + $lastChar = $charNum; + } + + if (isset($font['C'][$charName])) { + $widths[$charNum - $firstChar] = $font['C'][$charName]; + if ($font['isUnicode']) { + $cid_widths[$charName] = $font['C'][$charName]; + } + } + } + } + + if ($font['isUnicode']) { + $font['CIDWidths'] = $cid_widths; + } + + $this->addMessage('selectFont: FirstChar = ' . $firstChar); + $this->addMessage('selectFont: LastChar = ' . $lastChar); + + $widthid = -1; + + if (!$font['isUnicode']) { + // With Unicode, widths array isn't used + + $this->numObj++; + $this->o_contents($this->numObj, 'new', 'raw'); + $this->objects[$this->numObj]['c'] .= '[' . implode(' ', $widths) . ']'; + $widthid = $this->numObj; + } + + $missing_width = 500; + $stemV = 70; + + if (isset($font['MissingWidth'])) { + $missing_width = $font['MissingWidth']; + } + if (isset($font['StdVW'])) { + $stemV = $font['StdVW']; + } else { + if (isset($font['Weight']) && preg_match('!(bold|black)!i', $font['Weight'])) { + $stemV = 120; + } + } + + // load the pfb file, and put that into an object too. + // note that pdf supports only binary format type 1 font files, though there is a + // simple utility to convert them from pfa to pfb. + $data = file_get_contents($fbfile); + + // create the font descriptor + $this->numObj++; + $fontDescriptorId = $this->numObj; + + $this->numObj++; + $pfbid = $this->numObj; + + // determine flags (more than a little flakey, hopefully will not matter much) + $flags = 0; + + if ($font['ItalicAngle'] != 0) { + $flags += pow(2, 6); + } + + if ($font['IsFixedPitch'] === 'true') { + $flags += 1; + } + + $flags += pow(2, 5); // assume non-sybolic + $list = [ + 'Ascent' => 'Ascender', + 'CapHeight' => 'Ascender', //FIXME: php-font-lib is not grabbing this value, so we'll fake it and use the Ascender value // 'CapHeight' + 'MissingWidth' => 'MissingWidth', + 'Descent' => 'Descender', + 'FontBBox' => 'FontBBox', + 'ItalicAngle' => 'ItalicAngle' + ]; + $fdopt = [ + 'Flags' => $flags, + 'FontName' => $adobeFontName, + 'StemV' => $stemV + ]; + + foreach ($list as $k => $v) { + if (isset($font[$v])) { + $fdopt[$k] = $font[$v]; + } + } + + if ($isPfbFont) { + $fdopt['FontFile'] = $pfbid; + } elseif ($isTtfFont) { + $fdopt['FontFile2'] = $pfbid; + } + + $this->o_fontDescriptor($fontDescriptorId, 'new', $fdopt); + + // embed the font program + $this->o_contents($this->numObj, 'new'); + $this->objects[$pfbid]['c'] .= $data; + + // determine the cruicial lengths within this file + if ($isPfbFont) { + $l1 = strpos($data, 'eexec') + 6; + $l2 = strpos($data, '00000000') - $l1; + $l3 = mb_strlen($data, '8bit') - $l2 - $l1; + $this->o_contents( + $this->numObj, + 'add', + ['Length1' => $l1, 'Length2' => $l2, 'Length3' => $l3] + ); + } elseif ($isTtfFont) { + $l1 = mb_strlen($data, '8bit'); + $this->o_contents($this->numObj, 'add', ['Length1' => $l1]); + } + + // tell the font object about all this new stuff + $options = [ + 'BaseFont' => $adobeFontName, + 'MissingWidth' => $missing_width, + 'Widths' => $widthid, + 'FirstChar' => $firstChar, + 'LastChar' => $lastChar, + 'FontDescriptor' => $fontDescriptorId + ]; + + if ($isTtfFont) { + $options['SubType'] = 'TrueType'; + } + + $this->addMessage("adding extra info to font.($fontObjId)"); + + foreach ($options as $fk => $fv) { + $this->addMessage("$fk : $fv"); + } + } + + return $options; + } + + /** + * A toUnicode section, needed for unicode fonts + * + * @param $id + * @param $action + * @return null|string + */ + protected function o_toUnicode($id, $action) + { + switch ($action) { + case 'new': + $this->objects[$id] = [ + 't' => 'toUnicode' + ]; + break; + case 'add': + break; + case 'out': + $ordering = 'UCS'; + $registry = 'Adobe'; + + if ($this->encrypted) { + $this->encryptInit($id); + $ordering = $this->ARC4($ordering); + $registry = $this->filterText($this->ARC4($registry), false, false); + } + + $stream = <<> def +/CMapName /Adobe-Identity-UCS def +/CMapType 2 def +1 begincodespacerange +<0000> +endcodespacerange +1 beginbfrange +<0000> <0000> +endbfrange +endcmap +CMapName currentdict /CMap defineresource pop +end +end +EOT; + + $res = "\n$id 0 obj\n"; + $res .= "<>\n"; + $res .= "stream\n" . $stream . "\nendstream" . "\nendobj";; + + return $res; + } + + return null; + } + + /** + * a font descriptor, needed for including additional fonts + * + * @param $id + * @param $action + * @param string $options + * @return null|string + */ + protected function o_fontDescriptor($id, $action, $options = '') + { + if ($action !== 'new') { + $o = &$this->objects[$id]; + } + + switch ($action) { + case 'new': + $this->objects[$id] = ['t' => 'fontDescriptor', 'info' => $options]; + break; + + case 'out': + $res = "\n$id 0 obj\n<< /Type /FontDescriptor\n"; + foreach ($o['info'] as $label => $value) { + switch ($label) { + case 'Ascent': + case 'CapHeight': + case 'Descent': + case 'Flags': + case 'ItalicAngle': + case 'StemV': + case 'AvgWidth': + case 'Leading': + case 'MaxWidth': + case 'MissingWidth': + case 'StemH': + case 'XHeight': + case 'CharSet': + if (mb_strlen($value, '8bit')) { + $res .= "/$label $value\n"; + } + + break; + case 'FontFile': + case 'FontFile2': + case 'FontFile3': + $res .= "/$label $value 0 R\n"; + break; + + case 'FontBBox': + $res .= "/$label [$value[0] $value[1] $value[2] $value[3]]\n"; + break; + + case 'FontName': + $res .= "/$label /$value\n"; + break; + } + } + + $res .= ">>\nendobj"; + + return $res; + } + + return null; + } + + /** + * the font encoding + * + * @param $id + * @param $action + * @param string $options + * @return null|string + */ + protected function o_fontEncoding($id, $action, $options = '') + { + if ($action !== 'new') { + $o = &$this->objects[$id]; + } + + switch ($action) { + case 'new': + // the options array should contain 'differences' and maybe 'encoding' + $this->objects[$id] = ['t' => 'fontEncoding', 'info' => $options]; + break; + + case 'out': + $res = "\n$id 0 obj\n<< /Type /Encoding\n"; + if (!isset($o['info']['encoding'])) { + $o['info']['encoding'] = 'WinAnsiEncoding'; + } + + if ($o['info']['encoding'] !== 'none') { + $res .= "/BaseEncoding /" . $o['info']['encoding'] . "\n"; + } + + $res .= "/Differences \n["; + + $onum = -100; + + foreach ($o['info']['differences'] as $num => $label) { + if ($num != $onum + 1) { + // we cannot make use of consecutive numbering + $res .= "\n$num /$label"; + } else { + $res .= " /$label"; + } + + $onum = $num; + } + + $res .= "\n]\n>>\nendobj"; + + return $res; + } + + return null; + } + + /** + * a descendent cid font, needed for unicode fonts + * + * @param $id + * @param $action + * @param string|array $options + * @return null|string + */ + protected function o_fontDescendentCID($id, $action, $options = '') + { + if ($action !== 'new') { + $o = &$this->objects[$id]; + } + + switch ($action) { + case 'new': + $this->objects[$id] = ['t' => 'fontDescendentCID', 'info' => $options]; + + // we need a CID system info section + $cidSystemInfoId = ++$this->numObj; + $this->o_cidSystemInfo($cidSystemInfoId, 'new'); + $this->objects[$id]['info']['cidSystemInfo'] = $cidSystemInfoId; + + // and a CID to GID map + $cidToGidMapId = ++$this->numObj; + $this->o_fontGIDtoCIDMap($cidToGidMapId, 'new', $options); + $this->objects[$id]['info']['cidToGidMap'] = $cidToGidMapId; + break; + + case 'add': + foreach ($options as $k => $v) { + switch ($k) { + case 'BaseFont': + $o['info']['name'] = $v; + break; + + case 'FirstChar': + case 'LastChar': + case 'MissingWidth': + case 'FontDescriptor': + case 'SubType': + $this->addMessage("o_fontDescendentCID $k : $v"); + $o['info'][$k] = $v; + break; + } + } + + // pass values down to cid to gid map + $this->o_fontGIDtoCIDMap($o['info']['cidToGidMap'], 'add', $options); + break; + + case 'out': + $res = "\n$id 0 obj\n"; + $res .= "<fonts[$o['info']['fontFileName']]['CIDWidths'])) { + $cid_widths = &$this->fonts[$o['info']['fontFileName']]['CIDWidths']; + $w = ''; + foreach ($cid_widths as $cid => $width) { + $w .= "$cid [$width] "; + } + $res .= "/W [$w]\n"; + } + + $res .= "/CIDToGIDMap " . $o['info']['cidToGidMap'] . " 0 R\n"; + $res .= ">>\n"; + $res .= "endobj"; + + return $res; + } + + return null; + } + + /** + * CID system info section, needed for unicode fonts + * + * @param $id + * @param $action + * @return null|string + */ + protected function o_cidSystemInfo($id, $action) + { + switch ($action) { + case 'new': + $this->objects[$id] = [ + 't' => 'cidSystemInfo' + ]; + break; + case 'add': + break; + case 'out': + $ordering = 'UCS'; + $registry = 'Adobe'; + + if ($this->encrypted) { + $this->encryptInit($id); + $ordering = $this->ARC4($ordering); + $registry = $this->ARC4($registry); + } + + + $res = "\n$id 0 obj\n"; + + $res .= '<objects[$id]; + } + + switch ($action) { + case 'new': + $this->objects[$id] = ['t' => 'fontGIDtoCIDMap', 'info' => $options]; + break; + + case 'out': + $res = "\n$id 0 obj\n"; + $fontFileName = $o['info']['fontFileName']; + $tmp = $this->fonts[$fontFileName]['CIDtoGID'] = base64_decode($this->fonts[$fontFileName]['CIDtoGID']); + + $compressed = isset($this->fonts[$fontFileName]['CIDtoGID_Compressed']) && + $this->fonts[$fontFileName]['CIDtoGID_Compressed']; + + if (!$compressed && isset($o['raw'])) { + $res .= $tmp; + } else { + $res .= "<<"; + + if (!$compressed && $this->compressionReady && $this->options['compression']) { + // then implement ZLIB based compression on this content stream + $compressed = true; + $tmp = gzcompress($tmp, 6); + } + if ($compressed) { + $res .= "\n/Filter /FlateDecode"; + } + + if ($this->encrypted) { + $this->encryptInit($id); + $tmp = $this->ARC4($tmp); + } + + $res .= "\n/Length " . mb_strlen($tmp, '8bit') . ">>\nstream\n$tmp\nendstream"; + } + + $res .= "\nendobj"; + + return $res; + } + + return null; + } + + /** + * the document procset, solves some problems with printing to old PS printers + * + * @param $id + * @param $action + * @param string $options + * @return null|string + */ + protected function o_procset($id, $action, $options = '') + { + if ($action !== 'new') { + $o = &$this->objects[$id]; + } + + switch ($action) { + case 'new': + $this->objects[$id] = ['t' => 'procset', 'info' => ['PDF' => 1, 'Text' => 1]]; + $this->o_pages($this->currentNode, 'procset', $id); + $this->procsetObjectId = $id; + break; + + case 'add': + // this is to add new items to the procset list, despite the fact that this is considered + // obsolete, the items are required for printing to some postscript printers + switch ($options) { + case 'ImageB': + case 'ImageC': + case 'ImageI': + $o['info'][$options] = 1; + break; + } + break; + + case 'out': + $res = "\n$id 0 obj\n["; + foreach ($o['info'] as $label => $val) { + $res .= "/$label "; + } + $res .= "]\nendobj"; + + return $res; + } + + return null; + } + + /** + * define the document information + * + * @param $id + * @param $action + * @param string $options + * @return null|string + */ + protected function o_info($id, $action, $options = '') + { + switch ($action) { + case 'new': + $this->infoObject = $id; + $date = 'D:' . @date('Ymd'); + $this->objects[$id] = [ + 't' => 'info', + 'info' => [ + 'Producer' => 'CPDF (dompdf)', + 'CreationDate' => $date + ] + ]; + break; + case 'Title': + case 'Author': + case 'Subject': + case 'Keywords': + case 'Creator': + case 'Producer': + case 'CreationDate': + case 'ModDate': + case 'Trapped': + $this->objects[$id]['info'][$action] = $options; + break; + + case 'out': + $encrypted = $this->encrypted; + if ($encrypted) { + $this->encryptInit($id); + } + + $res = "\n$id 0 obj\n<<\n"; + $o = &$this->objects[$id]; + foreach ($o['info'] as $k => $v) { + $res .= "/$k ("; + + // dates must be outputted as-is, without Unicode transformations + if ($k !== 'CreationDate' && $k !== 'ModDate') { + $v = $this->filterText($v, true, false); + } + + if ($encrypted) { + $v = $this->ARC4($v); + } + + $res .= $v; + $res .= ")\n"; + } + + $res .= ">>\nendobj"; + + return $res; + } + + return null; + } + + /** + * an action object, used to link to URLS initially + * + * @param $id + * @param $action + * @param string $options + * @return null|string + */ + protected function o_action($id, $action, $options = '') + { + if ($action !== 'new') { + $o = &$this->objects[$id]; + } + + switch ($action) { + case 'new': + if (is_array($options)) { + $this->objects[$id] = ['t' => 'action', 'info' => $options, 'type' => $options['type']]; + } else { + // then assume a URI action + $this->objects[$id] = ['t' => 'action', 'info' => $options, 'type' => 'URI']; + } + break; + + case 'out': + if ($this->encrypted) { + $this->encryptInit($id); + } + + $res = "\n$id 0 obj\n<< /Type /Action"; + switch ($o['type']) { + case 'ilink': + if (!isset($this->destinations[(string)$o['info']['label']])) { + break; + } + + // there will be an 'label' setting, this is the name of the destination + $res .= "\n/S /GoTo\n/D " . $this->destinations[(string)$o['info']['label']] . " 0 R"; + break; + + case 'URI': + $res .= "\n/S /URI\n/URI ("; + if ($this->encrypted) { + $res .= $this->filterText($this->ARC4($o['info']), false, false); + } else { + $res .= $this->filterText($o['info'], false, false); + } + + $res .= ")"; + break; + } + + $res .= "\n>>\nendobj"; + + return $res; + } + + return null; + } + + /** + * an annotation object, this will add an annotation to the current page. + * initially will support just link annotations + * + * @param $id + * @param $action + * @param string $options + * @return null|string + */ + protected function o_annotation($id, $action, $options = '') + { + if ($action !== 'new') { + $o = &$this->objects[$id]; + } + + switch ($action) { + case 'new': + // add the annotation to the current page + $pageId = $this->currentPage; + $this->o_page($pageId, 'annot', $id); + + // and add the action object which is going to be required + switch ($options['type']) { + case 'link': + $this->objects[$id] = ['t' => 'annotation', 'info' => $options]; + $this->numObj++; + $this->o_action($this->numObj, 'new', $options['url']); + $this->objects[$id]['info']['actionId'] = $this->numObj; + break; + + case 'ilink': + // this is to a named internal link + $label = $options['label']; + $this->objects[$id] = ['t' => 'annotation', 'info' => $options]; + $this->numObj++; + $this->o_action($this->numObj, 'new', ['type' => 'ilink', 'label' => $label]); + $this->objects[$id]['info']['actionId'] = $this->numObj; + break; + } + break; + + case 'out': + $res = "\n$id 0 obj\n<< /Type /Annot"; + switch ($o['info']['type']) { + case 'link': + case 'ilink': + $res .= "\n/Subtype /Link"; + break; + } + $res .= "\n/A " . $o['info']['actionId'] . " 0 R"; + $res .= "\n/Border [0 0 0]"; + $res .= "\n/H /I"; + $res .= "\n/Rect [ "; + + foreach ($o['info']['rect'] as $v) { + $res .= sprintf("%.4F ", $v); + } + + $res .= "]"; + $res .= "\n>>\nendobj"; + + return $res; + } + + return null; + } + + /** + * a page object, it also creates a contents object to hold its contents + * + * @param $id + * @param $action + * @param string $options + * @return null|string + */ + protected function o_page($id, $action, $options = '') + { + if ($action !== 'new') { + $o = &$this->objects[$id]; + } + + switch ($action) { + case 'new': + $this->numPages++; + $this->objects[$id] = [ + 't' => 'page', + 'info' => [ + 'parent' => $this->currentNode, + 'pageNum' => $this->numPages, + 'mediaBox' => $this->objects[$this->currentNode]['info']['mediaBox'] + ] + ]; + + if (is_array($options)) { + // then this must be a page insertion, array should contain 'rid','pos'=[before|after] + $options['id'] = $id; + $this->o_pages($this->currentNode, 'page', $options); + } else { + $this->o_pages($this->currentNode, 'page', $id); + } + + $this->currentPage = $id; + //make a contents object to go with this page + $this->numObj++; + $this->o_contents($this->numObj, 'new', $id); + $this->currentContents = $this->numObj; + $this->objects[$id]['info']['contents'] = []; + $this->objects[$id]['info']['contents'][] = $this->numObj; + + $match = ($this->numPages % 2 ? 'odd' : 'even'); + foreach ($this->addLooseObjects as $oId => $target) { + if ($target === 'all' || $match === $target) { + $this->objects[$id]['info']['contents'][] = $oId; + } + } + break; + + case 'content': + $o['info']['contents'][] = $options; + break; + + case 'annot': + // add an annotation to this page + if (!isset($o['info']['annot'])) { + $o['info']['annot'] = []; + } + + // $options should contain the id of the annotation dictionary + $o['info']['annot'][] = $options; + break; + + case 'out': + $res = "\n$id 0 obj\n<< /Type /Page"; + if (isset($o['info']['mediaBox'])) { + $tmp = $o['info']['mediaBox']; + $res .= "\n/MediaBox [" . sprintf( + '%.3F %.3F %.3F %.3F', + $tmp[0], + $tmp[1], + $tmp[2], + $tmp[3] + ) . ']'; + } + $res .= "\n/Parent " . $o['info']['parent'] . " 0 R"; + + if (isset($o['info']['annot'])) { + $res .= "\n/Annots ["; + foreach ($o['info']['annot'] as $aId) { + $res .= " $aId 0 R"; + } + $res .= " ]"; + } + + $count = count($o['info']['contents']); + if ($count == 1) { + $res .= "\n/Contents " . $o['info']['contents'][0] . " 0 R"; + } else { + if ($count > 1) { + $res .= "\n/Contents [\n"; + + // reverse the page contents so added objects are below normal content + //foreach (array_reverse($o['info']['contents']) as $cId) { + // Back to normal now that I've got transparency working --Benj + foreach ($o['info']['contents'] as $cId) { + $res .= "$cId 0 R\n"; + } + $res .= "]"; + } + } + + $res .= "\n>>\nendobj"; + + return $res; + } + + return null; + } + + /** + * the contents objects hold all of the content which appears on pages + * + * @param $id + * @param $action + * @param string|array $options + * @return null|string + */ + protected function o_contents($id, $action, $options = '') + { + if ($action !== 'new') { + $o = &$this->objects[$id]; + } + + switch ($action) { + case 'new': + $this->objects[$id] = ['t' => 'contents', 'c' => '', 'info' => []]; + if (mb_strlen($options, '8bit') && intval($options)) { + // then this contents is the primary for a page + $this->objects[$id]['onPage'] = $options; + } else { + if ($options === 'raw') { + // then this page contains some other type of system object + $this->objects[$id]['raw'] = 1; + } + } + break; + + case 'add': + // add more options to the declaration + foreach ($options as $k => $v) { + $o['info'][$k] = $v; + } + + case 'out': + $tmp = $o['c']; + $res = "\n$id 0 obj\n"; + + if (isset($this->objects[$id]['raw'])) { + $res .= $tmp; + } else { + $res .= "<<"; + if ($this->compressionReady && $this->options['compression']) { + // then implement ZLIB based compression on this content stream + $res .= " /Filter /FlateDecode"; + $tmp = gzcompress($tmp, 6); + } + + if ($this->encrypted) { + $this->encryptInit($id); + $tmp = $this->ARC4($tmp); + } + + foreach ($o['info'] as $k => $v) { + $res .= "\n/$k $v"; + } + + $res .= "\n/Length " . mb_strlen($tmp, '8bit') . " >>\nstream\n$tmp\nendstream"; + } + + $res .= "\nendobj"; + + return $res; + } + + return null; + } + + /** + * @param $id + * @param $action + * @return string|null + */ + protected function o_embedjs($id, $action) + { + switch ($action) { + case 'new': + $this->objects[$id] = [ + 't' => 'embedjs', + 'info' => [ + 'Names' => '[(EmbeddedJS) ' . ($id + 1) . ' 0 R]' + ] + ]; + break; + + case 'out': + $o = &$this->objects[$id]; + $res = "\n$id 0 obj\n<< "; + foreach ($o['info'] as $k => $v) { + $res .= "\n/$k $v"; + } + $res .= "\n>>\nendobj"; + + return $res; + } + + return null; + } + + /** + * @param $id + * @param $action + * @param string $code + * @return null|string + */ + protected function o_javascript($id, $action, $code = '') + { + switch ($action) { + case 'new': + $this->objects[$id] = [ + 't' => 'javascript', + 'info' => [ + 'S' => '/JavaScript', + 'JS' => '(' . $this->filterText($code, true, false) . ')', + ] + ]; + break; + + case 'out': + $o = &$this->objects[$id]; + $res = "\n$id 0 obj\n<< "; + + foreach ($o['info'] as $k => $v) { + $res .= "\n/$k $v"; + } + $res .= "\n>>\nendobj"; + + return $res; + } + + return null; + } + + /** + * an image object, will be an XObject in the document, includes description and data + * + * @param $id + * @param $action + * @param string $options + * @return null|string + */ + protected function o_image($id, $action, $options = '') + { + switch ($action) { + case 'new': + // make the new object + $this->objects[$id] = ['t' => 'image', 'data' => &$options['data'], 'info' => []]; + + $info =& $this->objects[$id]['info']; + + $info['Type'] = '/XObject'; + $info['Subtype'] = '/Image'; + $info['Width'] = $options['iw']; + $info['Height'] = $options['ih']; + + if (isset($options['masked']) && $options['masked']) { + $info['SMask'] = ($this->numObj - 1) . ' 0 R'; + } + + if (!isset($options['type']) || $options['type'] === 'jpg') { + if (!isset($options['channels'])) { + $options['channels'] = 3; + } + + switch ($options['channels']) { + case 1: + $info['ColorSpace'] = '/DeviceGray'; + break; + case 4: + $info['ColorSpace'] = '/DeviceCMYK'; + break; + default: + $info['ColorSpace'] = '/DeviceRGB'; + break; + } + + if ($info['ColorSpace'] === '/DeviceCMYK') { + $info['Decode'] = '[1 0 1 0 1 0 1 0]'; + } + + $info['Filter'] = '/DCTDecode'; + $info['BitsPerComponent'] = 8; + } else { + if ($options['type'] === 'png') { + $info['Filter'] = '/FlateDecode'; + $info['DecodeParms'] = '<< /Predictor 15 /Colors ' . $options['ncolor'] . ' /Columns ' . $options['iw'] . ' /BitsPerComponent ' . $options['bitsPerComponent'] . '>>'; + + if ($options['isMask']) { + $info['ColorSpace'] = '/DeviceGray'; + } else { + if (mb_strlen($options['pdata'], '8bit')) { + $tmp = ' [ /Indexed /DeviceRGB ' . (mb_strlen($options['pdata'], '8bit') / 3 - 1) . ' '; + $this->numObj++; + $this->o_contents($this->numObj, 'new'); + $this->objects[$this->numObj]['c'] = $options['pdata']; + $tmp .= $this->numObj . ' 0 R'; + $tmp .= ' ]'; + $info['ColorSpace'] = $tmp; + + if (isset($options['transparency'])) { + $transparency = $options['transparency']; + switch ($transparency['type']) { + case 'indexed': + $tmp = ' [ ' . $transparency['data'] . ' ' . $transparency['data'] . '] '; + $info['Mask'] = $tmp; + break; + + case 'color-key': + $tmp = ' [ ' . + $transparency['r'] . ' ' . $transparency['r'] . + $transparency['g'] . ' ' . $transparency['g'] . + $transparency['b'] . ' ' . $transparency['b'] . + ' ] '; + $info['Mask'] = $tmp; + break; + } + } + } else { + if (isset($options['transparency'])) { + $transparency = $options['transparency']; + + switch ($transparency['type']) { + case 'indexed': + $tmp = ' [ ' . $transparency['data'] . ' ' . $transparency['data'] . '] '; + $info['Mask'] = $tmp; + break; + + case 'color-key': + $tmp = ' [ ' . + $transparency['r'] . ' ' . $transparency['r'] . ' ' . + $transparency['g'] . ' ' . $transparency['g'] . ' ' . + $transparency['b'] . ' ' . $transparency['b'] . + ' ] '; + $info['Mask'] = $tmp; + break; + } + } + $info['ColorSpace'] = '/' . $options['color']; + } + } + + $info['BitsPerComponent'] = $options['bitsPerComponent']; + } + } + + // assign it a place in the named resource dictionary as an external object, according to + // the label passed in with it. + $this->o_pages($this->currentNode, 'xObject', ['label' => $options['label'], 'objNum' => $id]); + + // also make sure that we have the right procset object for it. + $this->o_procset($this->procsetObjectId, 'add', 'ImageC'); + break; + + case 'out': + $o = &$this->objects[$id]; + $tmp = &$o['data']; + $res = "\n$id 0 obj\n<<"; + + foreach ($o['info'] as $k => $v) { + $res .= "\n/$k $v"; + } + + if ($this->encrypted) { + $this->encryptInit($id); + $tmp = $this->ARC4($tmp); + } + + $res .= "\n/Length " . mb_strlen($tmp, '8bit') . ">>\nstream\n$tmp\nendstream\nendobj"; + + return $res; + } + + return null; + } + + /** + * graphics state object + * + * @param $id + * @param $action + * @param string $options + * @return null|string + */ + protected function o_extGState($id, $action, $options = "") + { + static $valid_params = [ + "LW", + "LC", + "LC", + "LJ", + "ML", + "D", + "RI", + "OP", + "op", + "OPM", + "Font", + "BG", + "BG2", + "UCR", + "TR", + "TR2", + "HT", + "FL", + "SM", + "SA", + "BM", + "SMask", + "CA", + "ca", + "AIS", + "TK" + ]; + + switch ($action) { + case "new": + $this->objects[$id] = ['t' => 'extGState', 'info' => $options]; + + // Tell the pages about the new resource + $this->numStates++; + $this->o_pages($this->currentNode, 'extGState', ["objNum" => $id, "stateNum" => $this->numStates]); + break; + + case "out": + $o = &$this->objects[$id]; + $res = "\n$id 0 obj\n<< /Type /ExtGState\n"; + + foreach ($o["info"] as $k => $v) { + if (!in_array($k, $valid_params)) { + continue; + } + $res .= "/$k $v\n"; + } + + $res .= ">>\nendobj"; + + return $res; + } + + return null; + } + + /** + * @param integer $id + * @param string $action + * @param mixed $options + * @return string + */ + protected function o_xobject($id, $action, $options = '') + { + switch ($action) { + case 'new': + $this->objects[$id] = ['t' => 'xobject', 'info' => $options, 'c' => '']; + break; + + case 'procset': + $this->objects[$id]['procset'] = $options; + break; + + case 'font': + $this->objects[$id]['fonts'][$options['fontNum']] = [ + 'objNum' => $options['objNum'], + 'fontNum' => $options['fontNum'] + ]; + break; + + case 'xObject': + $this->objects[$id]['xObjects'][] = ['objNum' => $options['objNum'], 'label' => $options['label']]; + break; + + case 'out': + $o = &$this->objects[$id]; + $res = "\n$id 0 obj\n<< /Type /XObject\n"; + + foreach ($o["info"] as $k => $v) { + switch($k) + { + case 'Subtype': + $res .= "/Subtype /$v\n"; + break; + case 'bbox': + $res .= "/BBox ["; + foreach ($v as $value) { + $res .= sprintf("%.4F ", $value); + } + $res .= "]\n"; + break; + default: + $res .= "/$k $v\n"; + break; + } + } + $res .= "/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]\n"; + + $res .= "/Resources <<"; + if (isset($o['procset'])) { + $res .= "\n/ProcSet " . $o['procset'] . " 0 R"; + } else { + $res .= "\n/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]"; + } + if (isset($o['fonts']) && count($o['fonts'])) { + $res .= "\n/Font << "; + foreach ($o['fonts'] as $finfo) { + $res .= "\n/F" . $finfo['fontNum'] . " " . $finfo['objNum'] . " 0 R"; + } + $res .= "\n>>"; + } + if (isset($o['xObjects']) && count($o['xObjects'])) { + $res .= "\n/XObject << "; + foreach ($o['xObjects'] as $finfo) { + $res .= "\n/" . $finfo['label'] . " " . $finfo['objNum'] . " 0 R"; + } + $res .= "\n>>"; + } + $res .= "\n>>\n"; + + $tmp = $o["c"]; + if ($this->compressionReady && $this->options['compression']) { + // then implement ZLIB based compression on this content stream + $res .= " /Filter /FlateDecode\n"; + $tmp = gzcompress($tmp, 6); + } + + if ($this->encrypted) { + $this->encryptInit($id); + $tmp = $this->ARC4($tmp); + } + + $res .= "/Length " . mb_strlen($tmp, '8bit') . " >>\n"; + $res .= "stream\n" . $tmp . "\nendstream" . "\nendobj";; + + return $res; + } + + return null; + } + + /** + * @param $id + * @param $action + * @param string $options + * @return null|string + */ + protected function o_acroform($id, $action, $options = '') + { + switch ($action) { + case "new": + $this->o_catalog($this->catalogId, 'acroform', $id); + $this->objects[$id] = array('t' => 'acroform', 'info' => $options); + break; + + case 'addfield': + $this->objects[$id]['info']['Fields'][] = $options; + break; + + case 'font': + $this->objects[$id]['fonts'][$options['fontNum']] = [ + 'objNum' => $options['objNum'], + 'fontNum' => $options['fontNum'] + ]; + break; + + case "out": + $o = &$this->objects[$id]; + $res = "\n$id 0 obj\n<<"; + + foreach ($o["info"] as $k => $v) { + switch($k) { + case 'Fields': + $res .= " /Fields ["; + foreach ($v as $i) { + $res .= "$i 0 R "; + } + $res .= "]\n"; + break; + default: + $res .= "/$k $v\n"; + } + } + + $res .= "/DR <<\n"; + if (isset($o['fonts']) && count($o['fonts'])) { + $res .= "/Font << \n"; + foreach ($o['fonts'] as $finfo) { + $res .= "/F" . $finfo['fontNum'] . " " . $finfo['objNum'] . " 0 R\n"; + } + $res .= ">>\n"; + } + $res .= ">>\n"; + + $res .= ">>\nendobj"; + + return $res; + } + + return null; + } + + /** + * @param $id + * @param $action + * @param mixed $options + * @return null|string + */ + protected function o_field($id, $action, $options = '') + { + switch ($action) { + case "new": + $this->o_page($options['pageid'], 'annot', $id); + $this->o_acroform($this->acroFormId, 'addfield', $id); + $this->objects[$id] = ['t' => 'field', 'info' => $options]; + break; + + case 'set': + $this->objects[$id]['info'] = array_merge($this->objects[$id]['info'], $options); + break; + + case "out": + $o = &$this->objects[$id]; + $res = "\n$id 0 obj\n<< /Type /Annot /Subtype /Widget \n"; + + $encrypted = $this->encrypted; + if ($encrypted) { + $this->encryptInit($id); + } + + foreach ($o["info"] as $k => $v) { + switch ($k) { + case 'pageid': + $res .= "/P $v 0 R\n"; + break; + case 'value': + if ($encrypted) { + $v = $this->filterText($this->ARC4($v), false, false); + } + $res .= "/V ($v)\n"; + break; + case 'refvalue': + $res .= "/V $v 0 R\n"; + break; + case 'da': + if ($encrypted) { + $v = $this->filterText($this->ARC4($v), false, false); + } + $res .= "/DA ($v)\n"; + break; + case 'options': + $res .= "/Opt [\n"; + foreach ($v as $opt) { + if ($encrypted) { + $opt = $this->filterText($this->ARC4($opt), false, false); + } + $res .= "($opt)\n"; + } + $res .= "]\n"; + break; + case 'rect': + $res .= "/Rect ["; + foreach ($v as $value) { + $res .= sprintf("%.4F ", $value); + } + $res .= "]\n"; + break; + case 'appearance': + $res .= "/AP << "; + foreach ($v as $a => $ref) { + $res .= "/$a $ref 0 R "; + } + $res .= ">>\n"; + break; + case 'T': + if($encrypted) { + $v = $this->filterText($this->ARC4($v), false, false); + } + $res .= "/T ($v)\n"; + break; + default: + $res .= "/$k $v\n"; + } + + } + + $res .= ">>\nendobj"; + + return $res; + } + + return null; + } + + /** + * + * @param $id + * @param $action + * @param string $options + * @return null|string + */ + protected function o_sig($id, $action, $options = '') + { + $sign_maxlen = $this->signatureMaxLen; + + switch ($action) { + case "new": + $this->objects[$id] = array('t' => 'sig', 'info' => $options); + $this->byteRange[$id] = ['t' => 'sig']; + break; + + case 'byterange': + $o = &$this->objects[$id]; + $content =& $options['content']; + $content_len = strlen($content); + $pos = strpos($content, sprintf("/ByteRange [ %'.010d", $id)); + $len = strlen('/ByteRange [ ********** ********** ********** ********** ]'); + $rangeStartPos = $pos + $len + 1 + 10; // before '<' + $content = substr_replace($content, str_pad(sprintf('/ByteRange [ 0 %u %u %u ]', $rangeStartPos, $rangeStartPos + $sign_maxlen + 2, $content_len - 2 - $sign_maxlen - $rangeStartPos ), $len, ' ', STR_PAD_RIGHT), $pos, $len); + + $fuid = uniqid(); + $tmpInput = $this->tmp . "/pkcs7.tmp." . $fuid . '.in'; + $tmpOutput = $this->tmp . "/pkcs7.tmp." . $fuid . '.out'; + + if (file_put_contents($tmpInput, substr($content, 0, $rangeStartPos)) === false) { + throw new \Exception("Unable to write temporary file for signing."); + } + if (file_put_contents($tmpInput, substr($content, $rangeStartPos + 2 + $sign_maxlen), + FILE_APPEND) === false) { + throw new \Exception("Unable to write temporary file for signing."); + } + + if (openssl_pkcs7_sign($tmpInput, $tmpOutput, + $o['info']['SignCert'], + array($o['info']['PrivKey'], $o['info']['Password']), + array(), PKCS7_BINARY | PKCS7_DETACHED) === false) { + throw new \Exception("Failed to prepare signature."); + } + + $signature = file_get_contents($tmpOutput); + + unlink($tmpInput); + unlink($tmpOutput); + + $sign = substr($signature, (strpos($signature, "%%EOF\n\n------") + 13)); + list($head, $signature) = explode("\n\n", $sign); + + $signature = base64_decode(trim($signature)); + + $signature = current(unpack('H*', $signature)); + $signature = str_pad($signature, $sign_maxlen, '0'); + $siglen = strlen($signature); + if (strlen($signature) > $sign_maxlen) { + throw new \Exception("Signature length ($siglen) exceeds the $sign_maxlen limit."); + } + + $content = substr_replace($content, $signature, $rangeStartPos + 1, $sign_maxlen); + break; + + case "out": + $res = "\n$id 0 obj\n<<\n"; + + $encrypted = $this->encrypted; + if ($encrypted) { + $this->encryptInit($id); + } + + $res .= "/ByteRange " .sprintf("[ %'.010d ********** ********** ********** ]\n", $id); + $res .= "/Contents <" . str_pad('', $sign_maxlen, '0') . ">\n"; + $res .= "/Filter/Adobe.PPKLite\n"; //PPKMS \n"; + $res .= "/Type/Sig/SubFilter/adbe.pkcs7.detached \n"; + + $date = "D:" . substr_replace(date('YmdHisO'), '\'', -2, 0) . '\''; + if ($encrypted) { + $date = $this->ARC4($date); + } + + $res .= "/M ($date)\n"; + $res .= "/Prop_Build << /App << /Name /DomPDF >> /Filter << /Name /Adobe.PPKLite >> >>\n"; + + $o = &$this->objects[$id]; + foreach ($o['info'] as $k => $v) { + switch($k) { + case 'Name': + case 'Location': + case 'Reason': + case 'ContactInfo': + if ($v !== null && $v !== '') { + $res .= "/$k (" . + ($encrypted ? $this->filterText($this->ARC4($v), false, false) : $v) . ") \n"; + } + break; + } + } + $res .= ">>\nendobj"; + + return $res; + } + + return null; + } + + /** + * encryption object. + * + * @param $id + * @param $action + * @param string $options + * @return string|null + */ + protected function o_encryption($id, $action, $options = '') + { + switch ($action) { + case 'new': + // make the new object + $this->objects[$id] = ['t' => 'encryption', 'info' => $options]; + $this->arc4_objnum = $id; + break; + + case 'keys': + // figure out the additional parameters required + $pad = chr(0x28) . chr(0xBF) . chr(0x4E) . chr(0x5E) . chr(0x4E) . chr(0x75) . chr(0x8A) . chr(0x41) + . chr(0x64) . chr(0x00) . chr(0x4E) . chr(0x56) . chr(0xFF) . chr(0xFA) . chr(0x01) . chr(0x08) + . chr(0x2E) . chr(0x2E) . chr(0x00) . chr(0xB6) . chr(0xD0) . chr(0x68) . chr(0x3E) . chr(0x80) + . chr(0x2F) . chr(0x0C) . chr(0xA9) . chr(0xFE) . chr(0x64) . chr(0x53) . chr(0x69) . chr(0x7A); + + $info = $this->objects[$id]['info']; + + $len = mb_strlen($info['owner'], '8bit'); + + if ($len > 32) { + $owner = substr($info['owner'], 0, 32); + } else { + if ($len < 32) { + $owner = $info['owner'] . substr($pad, 0, 32 - $len); + } else { + $owner = $info['owner']; + } + } + + $len = mb_strlen($info['user'], '8bit'); + if ($len > 32) { + $user = substr($info['user'], 0, 32); + } else { + if ($len < 32) { + $user = $info['user'] . substr($pad, 0, 32 - $len); + } else { + $user = $info['user']; + } + } + + $tmp = $this->md5_16($owner); + $okey = substr($tmp, 0, 5); + $this->ARC4_init($okey); + $ovalue = $this->ARC4($user); + $this->objects[$id]['info']['O'] = $ovalue; + + // now make the u value, phew. + $tmp = $this->md5_16( + $user . $ovalue . chr($info['p']) . chr(255) . chr(255) . chr(255) . hex2bin($this->fileIdentifier) + ); + + $ukey = substr($tmp, 0, 5); + $this->ARC4_init($ukey); + $this->encryptionKey = $ukey; + $this->encrypted = true; + $uvalue = $this->ARC4($pad); + $this->objects[$id]['info']['U'] = $uvalue; + // initialize the arc4 array + break; + + case 'out': + $o = &$this->objects[$id]; + + $res = "\n$id 0 obj\n<<"; + $res .= "\n/Filter /Standard"; + $res .= "\n/V 1"; + $res .= "\n/R 2"; + $res .= "\n/O (" . $this->filterText($o['info']['O'], false, false) . ')'; + $res .= "\n/U (" . $this->filterText($o['info']['U'], false, false) . ')'; + // and the p-value needs to be converted to account for the twos-complement approach + $o['info']['p'] = (($o['info']['p'] ^ 255) + 1) * -1; + $res .= "\n/P " . ($o['info']['p']); + $res .= "\n>>\nendobj"; + + return $res; + } + + return null; + } + + protected function o_indirect_references($id, $action, $options = null) + { + switch ($action) { + case 'new': + case 'add': + if ($id === 0) { + $id = ++$this->numObj; + $this->o_catalog($this->catalogId, 'names', $id); + $this->objects[$id] = ['t' => 'indirect_references', 'info' => $options]; + $this->indirectReferenceId = $id; + } else { + $this->objects[$id]['info'] = array_merge($this->objects[$id]['info'], $options); + } + break; + case 'out': + $res = "\n$id 0 obj << "; + + foreach($this->objects[$id]['info'] as $referenceObjName => $referenceObjId) { + $res .= "/$referenceObjName $referenceObjId 0 R "; + } + + $res .= ">> endobj"; + return $res; + } + + return null; + } + + protected function o_names($id, $action, $options = null) + { + switch ($action) { + case 'new': + case 'add': + if ($id === 0) { + $id = ++$this->numObj; + $this->objects[$id] = ['t' => 'names', 'info' => [$options]]; + $this->o_indirect_references($this->indirectReferenceId, 'add', ['EmbeddedFiles' => $id]); + $this->embeddedFilesId = $id; + } else { + $this->objects[$id]['info'][] = $options; + } + break; + case 'out': + $info = &$this->objects[$id]['info']; + $res = ''; + if (count($info) > 0) { + $res = "\n$id 0 obj << /Names [ "; + + if ($this->encrypted) { + $this->encryptInit($id); + } + + foreach ($info as $entry) { + if ($this->encrypted) { + $filename = $this->ARC4($entry['filename']); + } else { + $filename = $entry['filename']; + } + + $res .= "($filename) " . $entry['dict_reference'] . " 0 R "; + } + + $res .= "] >> endobj"; + } + return $res; + } + + return null; + } + + protected function o_embedded_file_dictionary($id, $action, $options = null) + { + switch ($action) { + case 'new': + $embeddedFileId = ++$this->numObj; + $options['embedded_reference'] = $embeddedFileId; + $this->objects[$id] = ['t' => 'embedded_file_dictionary', 'info' => $options]; + $this->o_embedded_file($embeddedFileId, 'new', $options); + $options['dict_reference'] = $id; + $this->o_names($this->embeddedFilesId, 'add', $options); + break; + case 'out': + $info = &$this->objects[$id]['info']; + + if ($this->encrypted) { + $this->encryptInit($id); + $filename = $this->ARC4($info['filename']); + $description = $this->ARC4($info['description']); + } else { + $filename = $info['filename']; + $description = $info['description']; + } + + $res = "\n$id 0 obj <>"; + $res .= " /F ($filename) /UF ($filename) /Desc ($description)"; + $res .= " >> endobj"; + return $res; + } + + return null; + } + + protected function o_embedded_file($id, $action, $options = null): ?string + { + switch ($action) { + case 'new': + $this->objects[$id] = ['t' => 'embedded_file', 'info' => $options]; + break; + case 'out': + $info = &$this->objects[$id]['info']; + + if ($this->compressionReady) { + $filepath = $info['filepath']; + $checksum = md5_file($filepath); + $f = fopen($filepath, "rb"); + + $file_content_compressed = ''; + $deflateContext = deflate_init(ZLIB_ENCODING_DEFLATE, ['level' => 6]); + while (($block = fread($f, 8192))) { + $file_content_compressed .= deflate_add($deflateContext, $block, ZLIB_NO_FLUSH); + } + $file_content_compressed .= deflate_add($deflateContext, '', ZLIB_FINISH); + $file_size_uncompressed = ftell($f); + fclose($f); + } else { + $file_content = file_get_contents($info['filepath']); + $file_size_uncompressed = mb_strlen($file_content, '8bit'); + $checksum = md5($file_content); + } + + if ($this->encrypted) { + $this->encryptInit($id); + $checksum = $this->ARC4($checksum); + $file_content_compressed = $this->ARC4($file_content_compressed); + } + $file_size_compressed = mb_strlen($file_content_compressed, '8bit'); + + $res = "\n$id 0 obj <>" . + " /Type/EmbeddedFile /Filter/FlateDecode" . + " /Length $file_size_compressed >> stream\n$file_content_compressed\nendstream\nendobj"; + + return $res; + } + + return null; + } + + /** + * ARC4 functions + * A series of function to implement ARC4 encoding in PHP + */ + + /** + * calculate the 16 byte version of the 128 bit md5 digest of the string + * + * @param $string + * @return string + */ + function md5_16($string) + { + $tmp = md5($string); + $out = ''; + for ($i = 0; $i <= 30; $i = $i + 2) { + $out .= chr(hexdec(substr($tmp, $i, 2))); + } + + return $out; + } + + /** + * initialize the encryption for processing a particular object + * + * @param $id + */ + function encryptInit($id) + { + $tmp = $this->encryptionKey; + $hex = dechex($id); + if (mb_strlen($hex, '8bit') < 6) { + $hex = substr('000000', 0, 6 - mb_strlen($hex, '8bit')) . $hex; + } + $tmp .= chr(hexdec(substr($hex, 4, 2))) + . chr(hexdec(substr($hex, 2, 2))) + . chr(hexdec(substr($hex, 0, 2))) + . chr(0) + . chr(0) + ; + $key = $this->md5_16($tmp); + $this->ARC4_init(substr($key, 0, 10)); + } + + /** + * initialize the ARC4 encryption + * + * @param string $key + */ + function ARC4_init($key = '') + { + $this->arc4 = ''; + + // setup the control array + if (mb_strlen($key, '8bit') == 0) { + return; + } + + $k = ''; + while (mb_strlen($k, '8bit') < 256) { + $k .= $key; + } + + $k = substr($k, 0, 256); + for ($i = 0; $i < 256; $i++) { + $this->arc4 .= chr($i); + } + + $j = 0; + + for ($i = 0; $i < 256; $i++) { + $t = $this->arc4[$i]; + $j = ($j + ord($t) + ord($k[$i])) % 256; + $this->arc4[$i] = $this->arc4[$j]; + $this->arc4[$j] = $t; + } + } + + /** + * ARC4 encrypt a text string + * + * @param $text + * @return string + */ + function ARC4($text) + { + $len = mb_strlen($text, '8bit'); + $a = 0; + $b = 0; + $c = $this->arc4; + $out = ''; + for ($i = 0; $i < $len; $i++) { + $a = ($a + 1) % 256; + $t = $c[$a]; + $b = ($b + ord($t)) % 256; + $c[$a] = $c[$b]; + $c[$b] = $t; + $k = ord($c[(ord($c[$a]) + ord($c[$b])) % 256]); + $out .= chr(ord($text[$i]) ^ $k); + } + + return $out; + } + + /** + * functions which can be called to adjust or add to the document + */ + + /** + * add a link in the document to an external URL + * + * @param $url + * @param $x0 + * @param $y0 + * @param $x1 + * @param $y1 + */ + function addLink($url, $x0, $y0, $x1, $y1) + { + $this->numObj++; + $info = ['type' => 'link', 'url' => $url, 'rect' => [$x0, $y0, $x1, $y1]]; + $this->o_annotation($this->numObj, 'new', $info); + } + + /** + * add a link in the document to an internal destination (ie. within the document) + * + * @param $label + * @param $x0 + * @param $y0 + * @param $x1 + * @param $y1 + */ + function addInternalLink($label, $x0, $y0, $x1, $y1) + { + $this->numObj++; + $info = ['type' => 'ilink', 'label' => $label, 'rect' => [$x0, $y0, $x1, $y1]]; + $this->o_annotation($this->numObj, 'new', $info); + } + + /** + * set the encryption of the document + * can be used to turn it on and/or set the passwords which it will have. + * also the functions that the user will have are set here, such as print, modify, add + * + * @param string $userPass + * @param string $ownerPass + * @param array $pc + */ + function setEncryption($userPass = '', $ownerPass = '', $pc = []) + { + $p = bindec("11000000"); + + $options = ['print' => 4, 'modify' => 8, 'copy' => 16, 'add' => 32]; + + foreach ($pc as $k => $v) { + if ($v && isset($options[$k])) { + $p += $options[$k]; + } else { + if (isset($options[$v])) { + $p += $options[$v]; + } + } + } + + // implement encryption on the document + if ($this->arc4_objnum == 0) { + // then the block does not exist already, add it. + $this->numObj++; + if (mb_strlen($ownerPass) == 0) { + $ownerPass = $userPass; + } + + $this->o_encryption($this->numObj, 'new', ['user' => $userPass, 'owner' => $ownerPass, 'p' => $p]); + } + } + + /** + * should be used for internal checks, not implemented as yet + */ + function checkAllHere() + { + } + + /** + * return the pdf stream as a string returned from the function + * + * @param bool $debug + * @return string + */ + function output($debug = false) + { + if ($debug) { + // turn compression off + $this->options['compression'] = false; + } + + if ($this->javascript) { + $this->numObj++; + + $js_id = $this->numObj; + $this->o_embedjs($js_id, 'new'); + $this->o_javascript(++$this->numObj, 'new', $this->javascript); + + $id = $this->catalogId; + + $this->o_indirect_references($this->indirectReferenceId, 'add', ['JavaScript' => $js_id]); + } + + if ($this->fileIdentifier === '') { + $tmp = implode('', $this->objects[$this->infoObject]['info']); + $this->fileIdentifier = md5('DOMPDF' . __FILE__ . $tmp . microtime() . mt_rand()); + } + + if ($this->arc4_objnum) { + $this->o_encryption($this->arc4_objnum, 'keys'); + $this->ARC4_init($this->encryptionKey); + } + + $this->checkAllHere(); + + $xref = []; + $content = '%PDF-' . self::PDF_VERSION; + $pos = mb_strlen($content, '8bit'); + + // pre-process o_font objects before output of all objects + foreach ($this->objects as $k => $v) { + if ($v['t'] === 'font') { + $this->o_font($k, 'add'); + } + } + + foreach ($this->objects as $k => $v) { + $tmp = 'o_' . $v['t']; + $cont = $this->$tmp($k, 'out'); + $content .= $cont; + $xref[] = $pos + 1; //+1 to account for \n at the start of each object + $pos += mb_strlen($cont, '8bit'); + } + + $content .= "\nxref\n0 " . (count($xref) + 1) . "\n0000000000 65535 f \n"; + + foreach ($xref as $p) { + $content .= str_pad($p, 10, "0", STR_PAD_LEFT) . " 00000 n \n"; + } + + $content .= "trailer\n<<\n" . + '/Size ' . (count($xref) + 1) . "\n" . + '/Root 1 0 R' . "\n" . + '/Info ' . $this->infoObject . " 0 R\n" + ; + + // if encryption has been applied to this document then add the marker for this dictionary + if ($this->arc4_objnum > 0) { + $content .= '/Encrypt ' . $this->arc4_objnum . " 0 R\n"; + } + + $content .= '/ID[<' . $this->fileIdentifier . '><' . $this->fileIdentifier . ">]\n"; + + // account for \n added at start of xref table + $pos++; + + $content .= ">>\nstartxref\n$pos\n%%EOF\n"; + + if (count($this->byteRange) > 0) { + foreach ($this->byteRange as $k => $v) { + $tmp = 'o_' . $v['t']; + $this->$tmp($k, 'byterange', ['content' => &$content]); + } + } + + return $content; + } + + /** + * initialize a new document + * if this is called on an existing document results may be unpredictable, but the existing document would be lost at minimum + * this function is called automatically by the constructor function + * + * @param array $pageSize + */ + private function newDocument($pageSize = [0, 0, 612, 792]) + { + $this->numObj = 0; + $this->objects = []; + + $this->numObj++; + $this->o_catalog($this->numObj, 'new'); + + $this->numObj++; + $this->o_outlines($this->numObj, 'new'); + + $this->numObj++; + $this->o_pages($this->numObj, 'new'); + + $this->o_pages($this->numObj, 'mediaBox', $pageSize); + $this->currentNode = 3; + + $this->numObj++; + $this->o_procset($this->numObj, 'new'); + + $this->numObj++; + $this->o_info($this->numObj, 'new'); + + $this->numObj++; + $this->o_page($this->numObj, 'new'); + + // need to store the first page id as there is no way to get it to the user during + // startup + $this->firstPageId = $this->currentContents; + } + + /** + * open the font file and return a php structure containing it. + * first check if this one has been done before and saved in a form more suited to php + * note that if a php serialized version does not exist it will try and make one, but will + * require write access to the directory to do it... it is MUCH faster to have these serialized + * files. + * + * @param $font + */ + private function openFont($font) + { + // assume that $font contains the path and file but not the extension + $name = basename($font); + $dir = dirname($font) . '/'; + + $fontcache = $this->fontcache; + if ($fontcache == '') { + $fontcache = rtrim($dir, DIRECTORY_SEPARATOR."/\\"); + } + + //$name filename without folder and extension of font metrics + //$dir folder of font metrics + //$fontcache folder of runtime created php serialized version of font metrics. + // If this is not given, the same folder as the font metrics will be used. + // Storing and reusing serialized versions improves speed much + + $this->addMessage("openFont: $font - $name"); + + if (!$this->isUnicode || in_array(mb_strtolower(basename($name)), self::$coreFonts)) { + $metrics_name = "$name.afm"; + } else { + $metrics_name = "$name.ufm"; + } + + $cache_name = "$metrics_name.php"; + $this->addMessage("metrics: $metrics_name, cache: $cache_name"); + + if (file_exists($fontcache . '/' . $cache_name)) { + $this->addMessage("openFont: php file exists $fontcache/$cache_name"); + $this->fonts[$font] = require($fontcache . '/' . $cache_name); + + if (!isset($this->fonts[$font]['_version_']) || $this->fonts[$font]['_version_'] != $this->fontcacheVersion) { + // if the font file is old, then clear it out and prepare for re-creation + $this->addMessage('openFont: clear out, make way for new version.'); + $this->fonts[$font] = null; + unset($this->fonts[$font]); + } + } else { + $old_cache_name = "php_$metrics_name"; + if (file_exists($fontcache . '/' . $old_cache_name)) { + $this->addMessage( + "openFont: php file doesn't exist $fontcache/$cache_name, creating it from the old format" + ); + $old_cache = file_get_contents($fontcache . '/' . $old_cache_name); + file_put_contents($fontcache . '/' . $cache_name, 'openFont($font); + return; + } + } + + if (!isset($this->fonts[$font]) && file_exists($dir . $metrics_name)) { + // then rebuild the php_.afm file from the .afm file + $this->addMessage("openFont: build php file from $dir$metrics_name"); + $data = []; + + // 20 => 'space' + $data['codeToName'] = []; + + // Since we're not going to enable Unicode for the core fonts we need to use a font-based + // setting for Unicode support rather than a global setting. + $data['isUnicode'] = (strtolower(substr($metrics_name, -3)) !== 'afm'); + + $cidtogid = ''; + if ($data['isUnicode']) { + $cidtogid = str_pad('', 256 * 256 * 2, "\x00"); + } + + $file = file($dir . $metrics_name); + + foreach ($file as $rowA) { + $row = trim($rowA); + $pos = strpos($row, ' '); + + if ($pos) { + // then there must be some keyword + $key = substr($row, 0, $pos); + switch ($key) { + case 'FontName': + case 'FullName': + case 'FamilyName': + case 'PostScriptName': + case 'Weight': + case 'ItalicAngle': + case 'IsFixedPitch': + case 'CharacterSet': + case 'UnderlinePosition': + case 'UnderlineThickness': + case 'Version': + case 'EncodingScheme': + case 'CapHeight': + case 'XHeight': + case 'Ascender': + case 'Descender': + case 'StdHW': + case 'StdVW': + case 'StartCharMetrics': + case 'FontHeightOffset': // OAR - Added so we can offset the height calculation of a Windows font. Otherwise it's too big. + $data[$key] = trim(substr($row, $pos)); + break; + + case 'FontBBox': + $data[$key] = explode(' ', trim(substr($row, $pos))); + break; + + //C 39 ; WX 222 ; N quoteright ; B 53 463 157 718 ; + case 'C': // Found in AFM files + $bits = explode(';', trim($row)); + $dtmp = ['C' => null, 'N' => null, 'WX' => null, 'B' => []]; + + foreach ($bits as $bit) { + $bits2 = explode(' ', trim($bit)); + if (mb_strlen($bits2[0], '8bit') == 0) { + continue; + } + + if (count($bits2) > 2) { + $dtmp[$bits2[0]] = []; + for ($i = 1; $i < count($bits2); $i++) { + $dtmp[$bits2[0]][] = $bits2[$i]; + } + } else { + if (count($bits2) == 2) { + $dtmp[$bits2[0]] = $bits2[1]; + } + } + } + + $c = (int)$dtmp['C']; + $n = $dtmp['N']; + $width = floatval($dtmp['WX']); + + if ($c >= 0) { + if (!ctype_xdigit($n) || $c != hexdec($n)) { + $data['codeToName'][$c] = $n; + } + $data['C'][$c] = $width; + } elseif (isset($n)) { + $data['C'][$n] = $width; + } + + if (!isset($data['MissingWidth']) && $c === -1 && $n === '.notdef') { + $data['MissingWidth'] = $width; + } + + break; + + // U 827 ; WX 0 ; N squaresubnosp ; G 675 ; + case 'U': // Found in UFM files + if (!$data['isUnicode']) { + break; + } + + $bits = explode(';', trim($row)); + $dtmp = ['G' => null, 'N' => null, 'U' => null, 'WX' => null]; + + foreach ($bits as $bit) { + $bits2 = explode(' ', trim($bit)); + if (mb_strlen($bits2[0], '8bit') === 0) { + continue; + } + + if (count($bits2) > 2) { + $dtmp[$bits2[0]] = []; + for ($i = 1; $i < count($bits2); $i++) { + $dtmp[$bits2[0]][] = $bits2[$i]; + } + } else { + if (count($bits2) == 2) { + $dtmp[$bits2[0]] = $bits2[1]; + } + } + } + + $c = (int)$dtmp['U']; + $n = $dtmp['N']; + $glyph = $dtmp['G']; + $width = floatval($dtmp['WX']); + + if ($c >= 0) { + // Set values in CID to GID map + if ($c >= 0 && $c < 0xFFFF && $glyph) { + $cidtogid[$c * 2] = chr($glyph >> 8); + $cidtogid[$c * 2 + 1] = chr($glyph & 0xFF); + } + + if (!ctype_xdigit($n) || $c != hexdec($n)) { + $data['codeToName'][$c] = $n; + } + $data['C'][$c] = $width; + } elseif (isset($n)) { + $data['C'][$n] = $width; + } + + if (!isset($data['MissingWidth']) && $c === -1 && $n === '.notdef') { + $data['MissingWidth'] = $width; + } + + break; + + case 'KPX': + break; // don't include them as they are not used yet + //KPX Adieresis yacute -40 + /*$bits = explode(' ', trim($row)); + $data['KPX'][$bits[1]][$bits[2]] = $bits[3]; + break;*/ + } + } + } + + if ($this->compressionReady && $this->options['compression']) { + // then implement ZLIB based compression on CIDtoGID string + $data['CIDtoGID_Compressed'] = true; + $cidtogid = gzcompress($cidtogid, 6); + } + $data['CIDtoGID'] = base64_encode($cidtogid); + $data['_version_'] = $this->fontcacheVersion; + $this->fonts[$font] = $data; + + //Because of potential trouble with php safe mode, expect that the folder already exists. + //If not existing, this will hit performance because of missing cached results. + if (is_dir($fontcache) && is_writable($fontcache)) { + file_put_contents($fontcache . '/' . $cache_name, 'fonts[$font])) { + $this->addMessage("openFont: no font file found for $font. Do you need to run load_font.php?"); + } + + //pre_r($this->messages); + } + + /** + * if the font is not loaded then load it and make the required object + * else just make it the current font + * the encoding array can contain 'encoding'=> 'none','WinAnsiEncoding','MacRomanEncoding' or 'MacExpertEncoding' + * note that encoding='none' will need to be used for symbolic fonts + * and 'differences' => an array of mappings between numbers 0->255 and character names. + * + * @param $fontName + * @param string $encoding + * @param bool $set + * @param bool $isSubsetting + * @return int + * @throws FontNotFoundException + */ + function selectFont($fontName, $encoding = '', $set = true, $isSubsetting = true) + { + if ($fontName === null || $fontName === '') { + return $this->currentFontNum; + } + + $ext = substr($fontName, -4); + if ($ext === '.afm' || $ext === '.ufm') { + $fontName = substr($fontName, 0, mb_strlen($fontName) - 4); + } + + if (!isset($this->fonts[$fontName])) { + $this->addMessage("selectFont: selecting - $fontName - $encoding, $set"); + + // load the file + $this->openFont($fontName); + + if (isset($this->fonts[$fontName])) { + $this->numObj++; + $this->numFonts++; + + $font = &$this->fonts[$fontName]; + + $name = basename($fontName); + $options = ['name' => $name, 'fontFileName' => $fontName, 'isSubsetting' => $isSubsetting]; + + if (is_array($encoding)) { + // then encoding and differences might be set + if (isset($encoding['encoding'])) { + $options['encoding'] = $encoding['encoding']; + } + + if (isset($encoding['differences'])) { + $options['differences'] = $encoding['differences']; + } + } else { + if (mb_strlen($encoding, '8bit')) { + // then perhaps only the encoding has been set + $options['encoding'] = $encoding; + } + } + + $this->o_font($this->numObj, 'new', $options); + + if (file_exists("$fontName.ttf")) { + $fileSuffix = 'ttf'; + } elseif (file_exists("$fontName.TTF")) { + $fileSuffix = 'TTF'; + } elseif (file_exists("$fontName.pfb")) { + $fileSuffix = 'pfb'; + } elseif (file_exists("$fontName.PFB")) { + $fileSuffix = 'PFB'; + } else { + $fileSuffix = ''; + } + + $font['fileSuffix'] = $fileSuffix; + + $font['fontNum'] = $this->numFonts; + $font['isSubsetting'] = $isSubsetting && $font['isUnicode'] && strtolower($fileSuffix) === 'ttf'; + + // also set the differences here, note that this means that these will take effect only the + //first time that a font is selected, else they are ignored + if (isset($options['differences'])) { + $font['differences'] = $options['differences']; + } + } + } + + if ($set && isset($this->fonts[$fontName])) { + // so if for some reason the font was not set in the last one then it will not be selected + $this->currentBaseFont = $fontName; + + // the next lines mean that if a new font is selected, then the current text state will be + // applied to it as well. + $this->currentFont = $this->currentBaseFont; + $this->currentFontNum = $this->fonts[$this->currentFont]['fontNum']; + } + + return $this->currentFontNum; + } + + /** + * sets up the current font, based on the font families, and the current text state + * note that this system is quite flexible, a bold-italic font can be completely different to a + * italic-bold font, and even bold-bold will have to be defined within the family to have meaning + * This function is to be called whenever the currentTextState is changed, it will update + * the currentFont setting to whatever the appropriate family one is. + * If the user calls selectFont themselves then that will reset the currentBaseFont, and the currentFont + * This function will change the currentFont to whatever it should be, but will not change the + * currentBaseFont. + */ + private function setCurrentFont() + { + // if (strlen($this->currentBaseFont) == 0){ + // // then assume an initial font + // $this->selectFont($this->defaultFont); + // } + // $cf = substr($this->currentBaseFont,strrpos($this->currentBaseFont,'/')+1); + // if (strlen($this->currentTextState) + // && isset($this->fontFamilies[$cf]) + // && isset($this->fontFamilies[$cf][$this->currentTextState])){ + // // then we are in some state or another + // // and this font has a family, and the current setting exists within it + // // select the font, then return it + // $nf = substr($this->currentBaseFont,0,strrpos($this->currentBaseFont,'/')+1).$this->fontFamilies[$cf][$this->currentTextState]; + // $this->selectFont($nf,'',0); + // $this->currentFont = $nf; + // $this->currentFontNum = $this->fonts[$nf]['fontNum']; + // } else { + // // the this font must not have the right family member for the current state + // // simply assume the base font + $this->currentFont = $this->currentBaseFont; + $this->currentFontNum = $this->fonts[$this->currentFont]['fontNum']; + // } + } + + /** + * function for the user to find out what the ID is of the first page that was created during + * startup - useful if they wish to add something to it later. + * + * @return int + */ + function getFirstPageId() + { + return $this->firstPageId; + } + + /** + * add content to the currently active object + * + * @param $content + */ + private function addContent($content) + { + $this->objects[$this->currentContents]['c'] .= $content; + } + + /** + * sets the color for fill operations + * + * @param $color + * @param bool $force + */ + function setColor($color, $force = false) + { + $new_color = [$color[0], $color[1], $color[2], isset($color[3]) ? $color[3] : null]; + + if (!$force && $this->currentColor == $new_color) { + return; + } + + if (isset($new_color[3])) { + $this->currentColor = $new_color; + $this->addContent(vsprintf("\n%.3F %.3F %.3F %.3F k", $this->currentColor)); + } else { + if (isset($new_color[2])) { + $this->currentColor = $new_color; + $this->addContent(vsprintf("\n%.3F %.3F %.3F rg", $this->currentColor)); + } + } + } + + /** + * sets the color for fill operations + * + * @param $fillRule + */ + function setFillRule($fillRule) + { + if (!in_array($fillRule, ["nonzero", "evenodd"])) { + return; + } + + $this->fillRule = $fillRule; + } + + /** + * sets the color for stroke operations + * + * @param $color + * @param bool $force + */ + function setStrokeColor($color, $force = false) + { + $new_color = [$color[0], $color[1], $color[2], isset($color[3]) ? $color[3] : null]; + + if (!$force && $this->currentStrokeColor == $new_color) { + return; + } + + if (isset($new_color[3])) { + $this->currentStrokeColor = $new_color; + $this->addContent(vsprintf("\n%.3F %.3F %.3F %.3F K", $this->currentStrokeColor)); + } else { + if (isset($new_color[2])) { + $this->currentStrokeColor = $new_color; + $this->addContent(vsprintf("\n%.3F %.3F %.3F RG", $this->currentStrokeColor)); + } + } + } + + /** + * Set the graphics state for compositions + * + * @param $parameters + */ + function setGraphicsState($parameters) + { + // Create a new graphics state object if necessary + if (($gstate = array_search($parameters, $this->gstates)) === false) { + $this->numObj++; + $this->o_extGState($this->numObj, 'new', $parameters); + $gstate = $this->numStates; + $this->gstates[$gstate] = $parameters; + } + $this->addContent("\n/GS$gstate gs"); + } + + /** + * Set current blend mode & opacity for lines. + * + * Valid blend modes are: + * + * Normal, Multiply, Screen, Overlay, Darken, Lighten, + * ColorDogde, ColorBurn, HardLight, SoftLight, Difference, + * Exclusion + * + * @param string $mode the blend mode to use + * @param float $opacity 0.0 fully transparent, 1.0 fully opaque + */ + function setLineTransparency($mode, $opacity) + { + static $blend_modes = [ + "Normal", + "Multiply", + "Screen", + "Overlay", + "Darken", + "Lighten", + "ColorDogde", + "ColorBurn", + "HardLight", + "SoftLight", + "Difference", + "Exclusion" + ]; + + if (!in_array($mode, $blend_modes)) { + $mode = "Normal"; + } + + if (is_null($this->currentLineTransparency)) { + $this->currentLineTransparency = []; + } + + if ($mode === (key_exists('mode', $this->currentLineTransparency) ? + $this->currentLineTransparency['mode'] : '') && + $opacity === (key_exists('opacity', $this->currentLineTransparency) ? + $this->currentLineTransparency["opacity"] : '')) { + return; + } + + $this->currentLineTransparency["mode"] = $mode; + $this->currentLineTransparency["opacity"] = $opacity; + + $options = [ + "BM" => "/$mode", + "CA" => (float)$opacity + ]; + + $this->setGraphicsState($options); + } + + /** + * Set current blend mode & opacity for filled objects. + * + * Valid blend modes are: + * + * Normal, Multiply, Screen, Overlay, Darken, Lighten, + * ColorDogde, ColorBurn, HardLight, SoftLight, Difference, + * Exclusion + * + * @param string $mode the blend mode to use + * @param float $opacity 0.0 fully transparent, 1.0 fully opaque + */ + function setFillTransparency($mode, $opacity) + { + static $blend_modes = [ + "Normal", + "Multiply", + "Screen", + "Overlay", + "Darken", + "Lighten", + "ColorDogde", + "ColorBurn", + "HardLight", + "SoftLight", + "Difference", + "Exclusion" + ]; + + if (!in_array($mode, $blend_modes)) { + $mode = "Normal"; + } + + if (is_null($this->currentFillTransparency)) { + $this->currentFillTransparency = []; + } + + if ($mode === (key_exists('mode', $this->currentFillTransparency) ? + $this->currentFillTransparency['mode'] : '') && + $opacity === (key_exists('opacity', $this->currentFillTransparency) ? + $this->currentFillTransparency["opacity"] : '')) { + return; + } + + $this->currentFillTransparency["mode"] = $mode; + $this->currentFillTransparency["opacity"] = $opacity; + + $options = [ + "BM" => "/$mode", + "ca" => (float)$opacity, + ]; + + $this->setGraphicsState($options); + } + + /** + * draw a line from one set of coordinates to another + * + * @param $x1 + * @param $y1 + * @param $x2 + * @param $y2 + * @param bool $stroke + */ + function line($x1, $y1, $x2, $y2, $stroke = true) + { + $this->addContent(sprintf("\n%.3F %.3F m %.3F %.3F l", $x1, $y1, $x2, $y2)); + + if ($stroke) { + $this->addContent(' S'); + } + } + + /** + * draw a bezier curve based on 4 control points + * + * @param $x0 + * @param $y0 + * @param $x1 + * @param $y1 + * @param $x2 + * @param $y2 + * @param $x3 + * @param $y3 + */ + function curve($x0, $y0, $x1, $y1, $x2, $y2, $x3, $y3) + { + // in the current line style, draw a bezier curve from (x0,y0) to (x3,y3) using the other two points + // as the control points for the curve. + $this->addContent( + sprintf("\n%.3F %.3F m %.3F %.3F %.3F %.3F %.3F %.3F c S", $x0, $y0, $x1, $y1, $x2, $y2, $x3, $y3) + ); + } + + /** + * draw a part of an ellipse + * + * @param $x0 + * @param $y0 + * @param $astart + * @param $afinish + * @param $r1 + * @param int $r2 + * @param int $angle + * @param int $nSeg + */ + function partEllipse($x0, $y0, $astart, $afinish, $r1, $r2 = 0, $angle = 0, $nSeg = 8) + { + $this->ellipse($x0, $y0, $r1, $r2, $angle, $nSeg, $astart, $afinish, false); + } + + /** + * draw a filled ellipse + * + * @param $x0 + * @param $y0 + * @param $r1 + * @param int $r2 + * @param int $angle + * @param int $nSeg + * @param int $astart + * @param int $afinish + */ + function filledEllipse($x0, $y0, $r1, $r2 = 0, $angle = 0, $nSeg = 8, $astart = 0, $afinish = 360) + { + $this->ellipse($x0, $y0, $r1, $r2, $angle, $nSeg, $astart, $afinish, true, true); + } + + /** + * @param $x + * @param $y + */ + function lineTo($x, $y) + { + $this->addContent(sprintf("\n%.3F %.3F l", $x, $y)); + } + + /** + * @param $x + * @param $y + */ + function moveTo($x, $y) + { + $this->addContent(sprintf("\n%.3F %.3F m", $x, $y)); + } + + /** + * draw a bezier curve based on 4 control points + * + * @param $x1 + * @param $y1 + * @param $x2 + * @param $y2 + * @param $x3 + * @param $y3 + */ + function curveTo($x1, $y1, $x2, $y2, $x3, $y3) + { + $this->addContent(sprintf("\n%.3F %.3F %.3F %.3F %.3F %.3F c", $x1, $y1, $x2, $y2, $x3, $y3)); + } + + /** + * draw a bezier curve based on 4 control points + */ + function quadTo($cpx, $cpy, $x, $y) + { + $this->addContent(sprintf("\n%.3F %.3F %.3F %.3F v", $cpx, $cpy, $x, $y)); + } + + function closePath() + { + $this->addContent(' h'); + } + + function endPath() + { + $this->addContent(' n'); + } + + /** + * draw an ellipse + * note that the part and filled ellipse are just special cases of this function + * + * draws an ellipse in the current line style + * centered at $x0,$y0, radii $r1,$r2 + * if $r2 is not set, then a circle is drawn + * from $astart to $afinish, measured in degrees, running anti-clockwise from the right hand side of the ellipse. + * nSeg is not allowed to be less than 2, as this will simply draw a line (and will even draw a + * pretty crappy shape at 2, as we are approximating with bezier curves. + * + * @param $x0 + * @param $y0 + * @param $r1 + * @param int $r2 + * @param int $angle + * @param int $nSeg + * @param int $astart + * @param int $afinish + * @param bool $close + * @param bool $fill + * @param bool $stroke + * @param bool $incomplete + */ + function ellipse( + $x0, + $y0, + $r1, + $r2 = 0, + $angle = 0, + $nSeg = 8, + $astart = 0, + $afinish = 360, + $close = true, + $fill = false, + $stroke = true, + $incomplete = false + ) { + if ($r1 == 0) { + return; + } + + if ($r2 == 0) { + $r2 = $r1; + } + + if ($nSeg < 2) { + $nSeg = 2; + } + + $astart = deg2rad((float)$astart); + $afinish = deg2rad((float)$afinish); + $totalAngle = $afinish - $astart; + + $dt = $totalAngle / $nSeg; + $dtm = $dt / 3; + + if ($angle != 0) { + $a = -1 * deg2rad((float)$angle); + + $this->addContent( + sprintf("\n q %.3F %.3F %.3F %.3F %.3F %.3F cm", cos($a), -sin($a), sin($a), cos($a), $x0, $y0) + ); + + $x0 = 0; + $y0 = 0; + } + + $t1 = $astart; + $a0 = $x0 + $r1 * cos($t1); + $b0 = $y0 + $r2 * sin($t1); + $c0 = -$r1 * sin($t1); + $d0 = $r2 * cos($t1); + + if (!$incomplete) { + $this->addContent(sprintf("\n%.3F %.3F m ", $a0, $b0)); + } + + for ($i = 1; $i <= $nSeg; $i++) { + // draw this bit of the total curve + $t1 = $i * $dt + $astart; + $a1 = $x0 + $r1 * cos($t1); + $b1 = $y0 + $r2 * sin($t1); + $c1 = -$r1 * sin($t1); + $d1 = $r2 * cos($t1); + + $this->addContent( + sprintf( + "\n%.3F %.3F %.3F %.3F %.3F %.3F c", + ($a0 + $c0 * $dtm), + ($b0 + $d0 * $dtm), + ($a1 - $c1 * $dtm), + ($b1 - $d1 * $dtm), + $a1, + $b1 + ) + ); + + $a0 = $a1; + $b0 = $b1; + $c0 = $c1; + $d0 = $d1; + } + + if (!$incomplete) { + if ($fill) { + $this->addContent(' f'); + } + + if ($stroke) { + if ($close) { + $this->addContent(' s'); // small 's' signifies closing the path as well + } else { + $this->addContent(' S'); + } + } + } + + if ($angle != 0) { + $this->addContent(' Q'); + } + } + + /** + * this sets the line drawing style. + * width, is the thickness of the line in user units + * cap is the type of cap to put on the line, values can be 'butt','round','square' + * where the diffference between 'square' and 'butt' is that 'square' projects a flat end past the + * end of the line. + * join can be 'miter', 'round', 'bevel' + * dash is an array which sets the dash pattern, is a series of length values, which are the lengths of the + * on and off dashes. + * (2) represents 2 on, 2 off, 2 on , 2 off ... + * (2,1) is 2 on, 1 off, 2 on, 1 off.. etc + * phase is a modifier on the dash pattern which is used to shift the point at which the pattern starts. + * + * @param int $width + * @param string $cap + * @param string $join + * @param string $dash + * @param int $phase + */ + function setLineStyle($width = 1, $cap = '', $join = '', $dash = '', $phase = 0) + { + // this is quite inefficient in that it sets all the parameters whenever 1 is changed, but will fix another day + $string = ''; + + if ($width > 0) { + $string .= "$width w"; + } + + $ca = ['butt' => 0, 'round' => 1, 'square' => 2]; + + if (isset($ca[$cap])) { + $string .= " $ca[$cap] J"; + } + + $ja = ['miter' => 0, 'round' => 1, 'bevel' => 2]; + + if (isset($ja[$join])) { + $string .= " $ja[$join] j"; + } + + if (is_array($dash)) { + $string .= ' [ ' . implode(' ', $dash) . " ] $phase d"; + } + + $this->currentLineStyle = $string; + $this->addContent("\n$string"); + } + + /** + * draw a polygon, the syntax for this is similar to the GD polygon command + * + * @param $p + * @param $np + * @param bool $f + */ + function polygon($p, $np, $f = false) + { + $this->addContent(sprintf("\n%.3F %.3F m ", $p[0], $p[1])); + + for ($i = 2; $i < $np * 2; $i = $i + 2) { + $this->addContent(sprintf("%.3F %.3F l ", $p[$i], $p[$i + 1])); + } + + if ($f) { + $this->addContent(' f'); + } else { + $this->addContent(' S'); + } + } + + /** + * a filled rectangle, note that it is the width and height of the rectangle which are the secondary parameters, not + * the coordinates of the upper-right corner + * + * @param $x1 + * @param $y1 + * @param $width + * @param $height + */ + function filledRectangle($x1, $y1, $width, $height) + { + $this->addContent(sprintf("\n%.3F %.3F %.3F %.3F re f", $x1, $y1, $width, $height)); + } + + /** + * draw a rectangle, note that it is the width and height of the rectangle which are the secondary parameters, not + * the coordinates of the upper-right corner + * + * @param $x1 + * @param $y1 + * @param $width + * @param $height + */ + function rectangle($x1, $y1, $width, $height) + { + $this->addContent(sprintf("\n%.3F %.3F %.3F %.3F re S", $x1, $y1, $width, $height)); + } + + /** + * draw a rectangle, note that it is the width and height of the rectangle which are the secondary parameters, not + * the coordinates of the upper-right corner + * + * @param $x1 + * @param $y1 + * @param $width + * @param $height + */ + function rect($x1, $y1, $width, $height) + { + $this->addContent(sprintf("\n%.3F %.3F %.3F %.3F re", $x1, $y1, $width, $height)); + } + + function stroke(bool $close = false) + { + $this->addContent("\n" . ($close ? "s" : "S")); + } + + function fill() + { + $this->addContent("\nf" . ($this->fillRule === "evenodd" ? "*" : "")); + } + + function fillStroke(bool $close = false) + { + $this->addContent("\n" . ($close ? "b" : "B") . ($this->fillRule === "evenodd" ? "*" : "")); + } + + /** + * @param string $subtype + * @param integer $x + * @param integer $y + * @param integer $w + * @param integer $h + * @return int + */ + function addXObject($subtype, $x, $y, $w, $h) + { + $id = ++$this->numObj; + $this->o_xobject($id, 'new', ['Subtype' => $subtype, 'bbox' => [$x, $y, $w, $h]]); + return $id; + } + + /** + * @param integer $numXObject + * @param string $type + * @param array $options + */ + function setXObjectResource($numXObject, $type, $options) + { + if (in_array($type, ['procset', 'font', 'xObject'])) { + $this->o_xobject($numXObject, $type, $options); + } + } + + /** + * add signature + * + * $fieldSigId = $cpdf->addFormField(Cpdf::ACROFORM_FIELD_SIG, 'Signature1', 0, 0, 0, 0, 0); + * + * $signatureId = $cpdf->addSignature([ + * 'signcert' => file_get_contents('dompdf.crt'), + * 'privkey' => file_get_contents('dompdf.key'), + * 'password' => 'password', + * 'name' => 'DomPDF DEMO', + * 'location' => 'Home', + * 'reason' => 'First Form', + * 'contactinfo' => 'info' + * ]); + * $cpdf->setFormFieldValue($fieldSigId, "$signatureId 0 R"); + * + * @param string $signcert + * @param string $privkey + * @param string $password + * @param string|null $name + * @param string|null $location + * @param string|null $reason + * @param string|null $contactinfo + * @return int + */ + function addSignature($signcert, $privkey, $password = '', $name = null, $location = null, $reason = null, $contactinfo = null) { + $sigId = ++$this->numObj; + $this->o_sig($sigId, 'new', [ + 'SignCert' => $signcert, + 'PrivKey' => $privkey, + 'Password' => $password, + 'Name' => $name, + 'Location' => $location, + 'Reason' => $reason, + 'ContactInfo' => $contactinfo + ]); + + return $sigId; + } + + /** + * add field to form + * + * @param string $type ACROFORM_FIELD_* + * @param string $name + * @param $x0 + * @param $y0 + * @param $x1 + * @param $y1 + * @param integer $ff Field Flag ACROFORM_FIELD_*_* + * @param float $size + * @param array $color + * @return int + */ + public function addFormField($type, $name, $x0, $y0, $x1, $y1, $ff = 0, $size = 10.0, $color = [0, 0, 0]) + { + if (!$this->numFonts) { + $this->selectFont($this->defaultFont); + } + + $color = implode(' ', $color) . ' rg'; + + $currentFontNum = $this->currentFontNum; + $font = array_filter($this->objects[$this->currentNode]['info']['fonts'], + function($item) use ($currentFontNum) { return $item['fontNum'] == $currentFontNum; }); + + $this->o_acroform($this->acroFormId, 'font', + ['objNum' => $font[0]['objNum'], 'fontNum' => $font[0]['fontNum']]); + + $fieldId = ++$this->numObj; + $this->o_field($fieldId, 'new', [ + 'rect' => [$x0, $y0, $x1, $y1], + 'F' => 4, + 'FT' => "/$type", + 'T' => $name, + 'Ff' => $ff, + 'pageid' => $this->currentPage, + 'da' => "$color /F$this->currentFontNum " . sprintf('%.1F Tf ', $size) + ]); + + return $fieldId; + } + + /** + * set Field value + * + * @param integer $numFieldObj + * @param string $value + */ + public function setFormFieldValue($numFieldObj, $value) + { + $this->o_field($numFieldObj, 'set', ['value' => $value]); + } + + /** + * set Field value (reference) + * + * @param integer $numFieldObj + * @param integer $numObj Object number + */ + public function setFormFieldRefValue($numFieldObj, $numObj) + { + $this->o_field($numFieldObj, 'set', ['refvalue' => $numObj]); + } + + /** + * set Field Appearanc (reference) + * + * @param integer $numFieldObj + * @param integer $normalNumObj + * @param integer|null $rolloverNumObj + * @param integer|null $downNumObj + */ + public function setFormFieldAppearance($numFieldObj, $normalNumObj, $rolloverNumObj = null, $downNumObj = null) + { + $appearance['N'] = $normalNumObj; + + if ($rolloverNumObj !== null) { + $appearance['R'] = $rolloverNumObj; + } + + if ($downNumObj !== null) { + $appearance['D'] = $downNumObj; + } + + $this->o_field($numFieldObj, 'set', ['appearance' => $appearance]); + } + + /** + * set Choice Field option values + * + * @param integer $numFieldObj + * @param array $value + */ + public function setFormFieldOpt($numFieldObj, $value) + { + $this->o_field($numFieldObj, 'set', ['options' => $value]); + } + + /** + * add form to document + * + * @param integer $sigFlags + * @param boolean $needAppearances + */ + public function addForm($sigFlags = 0, $needAppearances = false) + { + $this->acroFormId = ++$this->numObj; + $this->o_acroform($this->acroFormId, 'new', [ + 'NeedAppearances' => $needAppearances ? 'true' : 'false', + 'SigFlags' => $sigFlags + ]); + } + + /** + * save the current graphic state + */ + function save() + { + // we must reset the color cache or it will keep bad colors after clipping + $this->currentColor = null; + $this->currentStrokeColor = null; + $this->addContent("\nq"); + } + + /** + * restore the last graphic state + */ + function restore() + { + // we must reset the color cache or it will keep bad colors after clipping + $this->currentColor = null; + $this->currentStrokeColor = null; + $this->addContent("\nQ"); + } + + /** + * draw a clipping rectangle, all the elements added after this will be clipped + * + * @param $x1 + * @param $y1 + * @param $width + * @param $height + */ + function clippingRectangle($x1, $y1, $width, $height) + { + $this->save(); + $this->addContent(sprintf("\n%.3F %.3F %.3F %.3F re W n", $x1, $y1, $width, $height)); + } + + /** + * draw a clipping rounded rectangle, all the elements added after this will be clipped + * + * @param $x1 + * @param $y1 + * @param $w + * @param $h + * @param $rTL + * @param $rTR + * @param $rBR + * @param $rBL + */ + function clippingRectangleRounded($x1, $y1, $w, $h, $rTL, $rTR, $rBR, $rBL) + { + $this->save(); + + // start: top edge, left end + $this->addContent(sprintf("\n%.3F %.3F m ", $x1, $y1 - $rTL + $h)); + + // line: bottom edge, left end + $this->addContent(sprintf("\n%.3F %.3F l ", $x1, $y1 + $rBL)); + + // curve: bottom-left corner + $this->ellipse($x1 + $rBL, $y1 + $rBL, $rBL, 0, 0, 8, 180, 270, false, false, false, true); + + // line: right edge, bottom end + $this->addContent(sprintf("\n%.3F %.3F l ", $x1 + $w - $rBR, $y1)); + + // curve: bottom-right corner + $this->ellipse($x1 + $w - $rBR, $y1 + $rBR, $rBR, 0, 0, 8, 270, 360, false, false, false, true); + + // line: right edge, top end + $this->addContent(sprintf("\n%.3F %.3F l ", $x1 + $w, $y1 + $h - $rTR)); + + // curve: bottom-right corner + $this->ellipse($x1 + $w - $rTR, $y1 + $h - $rTR, $rTR, 0, 0, 8, 0, 90, false, false, false, true); + + // line: bottom edge, right end + $this->addContent(sprintf("\n%.3F %.3F l ", $x1 + $rTL, $y1 + $h)); + + // curve: top-right corner + $this->ellipse($x1 + $rTL, $y1 + $h - $rTL, $rTL, 0, 0, 8, 90, 180, false, false, false, true); + + // line: top edge, left end + $this->addContent(sprintf("\n%.3F %.3F l ", $x1 + $rBL, $y1)); + + // Close & clip + $this->addContent(" W n"); + } + + /** + * ends the last clipping shape + */ + function clippingEnd() + { + $this->restore(); + } + + /** + * scale + * + * @param float $s_x scaling factor for width as percent + * @param float $s_y scaling factor for height as percent + * @param float $x Origin abscissa + * @param float $y Origin ordinate + */ + function scale($s_x, $s_y, $x, $y) + { + $y = $this->currentPageSize["height"] - $y; + + $tm = [ + $s_x, + 0, + 0, + $s_y, + $x * (1 - $s_x), + $y * (1 - $s_y) + ]; + + $this->transform($tm); + } + + /** + * translate + * + * @param float $t_x movement to the right + * @param float $t_y movement to the bottom + */ + function translate($t_x, $t_y) + { + $tm = [ + 1, + 0, + 0, + 1, + $t_x, + -$t_y + ]; + + $this->transform($tm); + } + + /** + * rotate + * + * @param float $angle angle in degrees for counter-clockwise rotation + * @param float $x Origin abscissa + * @param float $y Origin ordinate + */ + function rotate($angle, $x, $y) + { + $y = $this->currentPageSize["height"] - $y; + + $a = deg2rad($angle); + $cos_a = cos($a); + $sin_a = sin($a); + + $tm = [ + $cos_a, + -$sin_a, + $sin_a, + $cos_a, + $x - $sin_a * $y - $cos_a * $x, + $y - $cos_a * $y + $sin_a * $x, + ]; + + $this->transform($tm); + } + + /** + * skew + * + * @param float $angle_x + * @param float $angle_y + * @param float $x Origin abscissa + * @param float $y Origin ordinate + */ + function skew($angle_x, $angle_y, $x, $y) + { + $y = $this->currentPageSize["height"] - $y; + + $tan_x = tan(deg2rad($angle_x)); + $tan_y = tan(deg2rad($angle_y)); + + $tm = [ + 1, + -$tan_y, + -$tan_x, + 1, + $tan_x * $y, + $tan_y * $x, + ]; + + $this->transform($tm); + } + + /** + * apply graphic transformations + * + * @param array $tm transformation matrix + */ + function transform($tm) + { + $this->addContent(vsprintf("\n %.3F %.3F %.3F %.3F %.3F %.3F cm", $tm)); + } + + /** + * add a new page to the document + * this also makes the new page the current active object + * + * @param int $insert + * @param int $id + * @param string $pos + * @return int + */ + function newPage($insert = 0, $id = 0, $pos = 'after') + { + // if there is a state saved, then go up the stack closing them + // then on the new page, re-open them with the right setings + + if ($this->nStateStack) { + for ($i = $this->nStateStack; $i >= 1; $i--) { + $this->restoreState($i); + } + } + + $this->numObj++; + + if ($insert) { + // the id from the ezPdf class is the id of the contents of the page, not the page object itself + // query that object to find the parent + $rid = $this->objects[$id]['onPage']; + $opt = ['rid' => $rid, 'pos' => $pos]; + $this->o_page($this->numObj, 'new', $opt); + } else { + $this->o_page($this->numObj, 'new'); + } + + // if there is a stack saved, then put that onto the page + if ($this->nStateStack) { + for ($i = 1; $i <= $this->nStateStack; $i++) { + $this->saveState($i); + } + } + + // and if there has been a stroke or fill color set, then transfer them + if (isset($this->currentColor)) { + $this->setColor($this->currentColor, true); + } + + if (isset($this->currentStrokeColor)) { + $this->setStrokeColor($this->currentStrokeColor, true); + } + + // if there is a line style set, then put this in too + if (mb_strlen($this->currentLineStyle, '8bit')) { + $this->addContent("\n$this->currentLineStyle"); + } + + // the call to the o_page object set currentContents to the present page, so this can be returned as the page id + return $this->currentContents; + } + + /** + * Streams the PDF to the client. + * + * @param string $filename The filename to present to the client. + * @param array $options Associative array: 'compress' => 1 or 0 (default 1); 'Attachment' => 1 or 0 (default 1). + */ + function stream($filename = "document.pdf", $options = []) + { + if (headers_sent()) { + die("D Unable to stream pdf: headers already sent"); + } + + if (!isset($options["compress"])) $options["compress"] = true; + if (!isset($options["Attachment"])) $options["Attachment"] = true; + + $debug = !$options['compress']; + $tmp = ltrim($this->output($debug)); + + header("Cache-Control: private"); + header("Content-Type: application/pdf"); + header("Content-Length: " . mb_strlen($tmp, "8bit")); + + $filename = str_replace(["\n", "'"], "", basename($filename, ".pdf")) . ".pdf"; + $attachment = $options["Attachment"] ? "attachment" : "inline"; + + $encoding = mb_detect_encoding($filename); + $fallbackfilename = mb_convert_encoding($filename, "ISO-8859-1", $encoding); + $fallbackfilename = str_replace("\"", "", $fallbackfilename); + $encodedfilename = rawurlencode($filename); + + $contentDisposition = "Content-Disposition: $attachment; filename=\"$fallbackfilename\""; + if ($fallbackfilename !== $filename) { + $contentDisposition .= "; filename*=UTF-8''$encodedfilename"; + } + header($contentDisposition); + + echo $tmp; + flush(); + } + + /** + * return the height in units of the current font in the given size + * + * @param $size + * @return float|int + */ + function getFontHeight($size) + { + if (!$this->numFonts) { + $this->selectFont($this->defaultFont); + } + + $font = $this->fonts[$this->currentFont]; + + // for the current font, and the given size, what is the height of the font in user units + if (isset($font['Ascender']) && isset($font['Descender'])) { + $h = $font['Ascender'] - $font['Descender']; + } else { + $h = $font['FontBBox'][3] - $font['FontBBox'][1]; + } + + // have to adjust by a font offset for Windows fonts. unfortunately it looks like + // the bounding box calculations are wrong and I don't know why. + if (isset($font['FontHeightOffset'])) { + // For CourierNew from Windows this needs to be -646 to match the + // Adobe native Courier font. + // + // For FreeMono from GNU this needs to be -337 to match the + // Courier font. + // + // Both have been added manually to the .afm and .ufm files. + $h += (int)$font['FontHeightOffset']; + } + + return $size * $h / 1000; + } + + /** + * @param $size + * @return float|int + */ + function getFontXHeight($size) + { + if (!$this->numFonts) { + $this->selectFont($this->defaultFont); + } + + $font = $this->fonts[$this->currentFont]; + + // for the current font, and the given size, what is the height of the font in user units + if (isset($font['XHeight'])) { + $xh = $font['Ascender'] - $font['Descender']; + } else { + $xh = $this->getFontHeight($size) / 2; + } + + return $size * $xh / 1000; + } + + /** + * return the font descender, this will normally return a negative number + * if you add this number to the baseline, you get the level of the bottom of the font + * it is in the pdf user units + * + * @param $size + * @return float|int + */ + function getFontDescender($size) + { + // note that this will most likely return a negative value + if (!$this->numFonts) { + $this->selectFont($this->defaultFont); + } + + //$h = $this->fonts[$this->currentFont]['FontBBox'][1]; + $h = $this->fonts[$this->currentFont]['Descender']; + + return $size * $h / 1000; + } + + /** + * filter the text, this is applied to all text just before being inserted into the pdf document + * it escapes the various things that need to be escaped, and so on + * + * @access private + * + * @param $text + * @param bool $bom + * @param bool $convert_encoding + * @return string + */ + function filterText($text, $bom = true, $convert_encoding = true) + { + if (!$this->numFonts) { + $this->selectFont($this->defaultFont); + } + + if ($convert_encoding) { + $cf = $this->currentFont; + if (isset($this->fonts[$cf]) && $this->fonts[$cf]['isUnicode']) { + $text = $this->utf8toUtf16BE($text, $bom); + } else { + //$text = html_entity_decode($text, ENT_QUOTES); + $text = mb_convert_encoding($text, self::$targetEncoding, 'UTF-8'); + } + } else if ($bom) { + $text = $this->utf8toUtf16BE($text, $bom); + } + + // the chr(13) substitution fixes a bug seen in TCPDF (bug #1421290) + return strtr($text, [')' => '\\)', '(' => '\\(', '\\' => '\\\\', chr(13) => '\r']); + } + + /** + * return array containing codepoints (UTF-8 character values) for the + * string passed in. + * + * based on the excellent TCPDF code by Nicola Asuni and the + * RFC for UTF-8 at http://www.faqs.org/rfcs/rfc3629.html + * + * @access private + * @author Orion Richardson + * @since January 5, 2008 + * + * @param string $text UTF-8 string to process + * + * @return array UTF-8 codepoints array for the string + */ + function utf8toCodePointsArray(&$text) + { + $length = mb_strlen($text, '8bit'); // http://www.php.net/manual/en/function.mb-strlen.php#77040 + $unicode = []; // array containing unicode values + $bytes = []; // array containing single character byte sequences + $numbytes = 1; // number of octets needed to represent the UTF-8 character + + for ($i = 0; $i < $length; $i++) { + $c = ord($text[$i]); // get one string character at time + if (count($bytes) === 0) { // get starting octect + if ($c <= 0x7F) { + $unicode[] = $c; // use the character "as is" because is ASCII + $numbytes = 1; + } elseif (($c >> 0x05) === 0x06) { // 2 bytes character (0x06 = 110 BIN) + $bytes[] = ($c - 0xC0) << 0x06; + $numbytes = 2; + } elseif (($c >> 0x04) === 0x0E) { // 3 bytes character (0x0E = 1110 BIN) + $bytes[] = ($c - 0xE0) << 0x0C; + $numbytes = 3; + } elseif (($c >> 0x03) === 0x1E) { // 4 bytes character (0x1E = 11110 BIN) + $bytes[] = ($c - 0xF0) << 0x12; + $numbytes = 4; + } else { + // use replacement character for other invalid sequences + $unicode[] = 0xFFFD; + $bytes = []; + $numbytes = 1; + } + } elseif (($c >> 0x06) === 0x02) { // bytes 2, 3 and 4 must start with 0x02 = 10 BIN + $bytes[] = $c - 0x80; + if (count($bytes) === $numbytes) { + // compose UTF-8 bytes to a single unicode value + $c = $bytes[0]; + for ($j = 1; $j < $numbytes; $j++) { + $c += ($bytes[$j] << (($numbytes - $j - 1) * 0x06)); + } + if ((($c >= 0xD800) and ($c <= 0xDFFF)) or ($c >= 0x10FFFF)) { + // 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. + $unicode[] = 0xFFFD; // use replacement character + } else { + $unicode[] = $c; // add char to array + } + // reset data for next char + $bytes = []; + $numbytes = 1; + } + } else { + // use replacement character for other invalid sequences + $unicode[] = 0xFFFD; + $bytes = []; + $numbytes = 1; + } + } + + return $unicode; + } + + /** + * convert UTF-8 to UTF-16 with an additional byte order marker + * at the front if required. + * + * based on the excellent TCPDF code by Nicola Asuni and the + * RFC for UTF-8 at http://www.faqs.org/rfcs/rfc3629.html + * + * @access private + * @author Orion Richardson + * @since January 5, 2008 + * + * @param string $text UTF-8 string to process + * @param boolean $bom whether to add the byte order marker + * + * @return string UTF-16 result string + */ + function utf8toUtf16BE(&$text, $bom = true) + { + $out = $bom ? "\xFE\xFF" : ''; + + $unicode = $this->utf8toCodePointsArray($text); + foreach ($unicode as $c) { + if ($c === 0xFFFD) { + $out .= "\xFF\xFD"; // replacement character + } elseif ($c < 0x10000) { + $out .= chr($c >> 0x08) . chr($c & 0xFF); + } else { + $c -= 0x10000; + $w1 = 0xD800 | ($c >> 0x10); + $w2 = 0xDC00 | ($c & 0x3FF); + $out .= chr($w1 >> 0x08) . chr($w1 & 0xFF) . chr($w2 >> 0x08) . chr($w2 & 0xFF); + } + } + + return $out; + } + + /** + * given a start position and information about how text is to be laid out, calculate where + * on the page the text will end + * + * @param $x + * @param $y + * @param $angle + * @param $size + * @param $wa + * @param $text + * @return array + */ + private function getTextPosition($x, $y, $angle, $size, $wa, $text) + { + // given this information return an array containing x and y for the end position as elements 0 and 1 + $w = $this->getTextWidth($size, $text); + + // need to adjust for the number of spaces in this text + $words = explode(' ', $text); + $nspaces = count($words) - 1; + $w += $wa * $nspaces; + $a = deg2rad((float)$angle); + + return [cos($a) * $w + $x, -sin($a) * $w + $y]; + } + + /** + * Callback method used by smallCaps + * + * @param array $matches + * + * @return string + */ + function toUpper($matches) + { + return mb_strtoupper($matches[0]); + } + + function concatMatches($matches) + { + $str = ""; + foreach ($matches as $match) { + $str .= $match[0]; + } + + return $str; + } + + /** + * register text for font subsetting + * + * @param $font + * @param $text + */ + function registerText($font, $text) + { + if (!$this->isUnicode || in_array(mb_strtolower(basename($font)), self::$coreFonts)) { + return; + } + + if (!isset($this->stringSubsets[$font])) { + $this->stringSubsets[$font] = []; + } + + $this->stringSubsets[$font] = array_unique( + array_merge($this->stringSubsets[$font], $this->utf8toCodePointsArray($text)) + ); + } + + /** + * add text to the document, at a specified location, size and angle on the page + * + * @param $x + * @param $y + * @param $size + * @param $text + * @param int $angle + * @param int $wordSpaceAdjust + * @param int $charSpaceAdjust + * @param bool $smallCaps + */ + function addText($x, $y, $size, $text, $angle = 0, $wordSpaceAdjust = 0, $charSpaceAdjust = 0, $smallCaps = false) + { + if (!$this->numFonts) { + $this->selectFont($this->defaultFont); + } + + $text = str_replace(["\r", "\n"], "", $text); + + // if ($smallCaps) { + // preg_match_all("/(\P{Ll}+)/u", $text, $matches, PREG_SET_ORDER); + // $lower = $this->concatMatches($matches); + // d($lower); + + // preg_match_all("/(\p{Ll}+)/u", $text, $matches, PREG_SET_ORDER); + // $other = $this->concatMatches($matches); + // d($other); + + // $text = preg_replace_callback("/\p{Ll}/u", array($this, "toUpper"), $text); + // } + + // if there are any open callbacks, then they should be called, to show the start of the line + if ($this->nCallback > 0) { + for ($i = $this->nCallback; $i > 0; $i--) { + // call each function + $info = [ + 'x' => $x, + 'y' => $y, + 'angle' => $angle, + 'status' => 'sol', + 'p' => $this->callback[$i]['p'], + 'nCallback' => $this->callback[$i]['nCallback'], + 'height' => $this->callback[$i]['height'], + 'descender' => $this->callback[$i]['descender'] + ]; + + $func = $this->callback[$i]['f']; + $this->$func($info); + } + } + + if ($angle == 0) { + $this->addContent(sprintf("\nBT %.3F %.3F Td", $x, $y)); + } else { + $a = deg2rad((float)$angle); + $this->addContent( + sprintf("\nBT %.3F %.3F %.3F %.3F %.3F %.3F Tm", cos($a), -sin($a), sin($a), cos($a), $x, $y) + ); + } + + if ($wordSpaceAdjust != 0) { + $this->addContent(sprintf(" %.3F Tw", $wordSpaceAdjust)); + } + + if ($charSpaceAdjust != 0) { + $this->addContent(sprintf(" %.3F Tc", $charSpaceAdjust)); + } + + $len = mb_strlen($text); + $start = 0; + + if ($start < $len) { + $part = $text; // OAR - Don't need this anymore, given that $start always equals zero. substr($text, $start); + $place_text = $this->filterText($part, false); + // modify unicode text so that extra word spacing is manually implemented (bug #) + if ($this->fonts[$this->currentFont]['isUnicode'] && $wordSpaceAdjust != 0) { + $space_scale = 1000 / $size; + $place_text = str_replace("\x00\x20", "\x00\x20)\x00\x20" . (-round($space_scale * $wordSpaceAdjust)) . "\x00\x20(", $place_text); + } + $this->addContent(" /F$this->currentFontNum " . sprintf('%.1F Tf ', $size)); + $this->addContent(" [($place_text)] TJ"); + } + + if ($wordSpaceAdjust != 0) { + $this->addContent(sprintf(" %.3F Tw", 0)); + } + + if ($charSpaceAdjust != 0) { + $this->addContent(sprintf(" %.3F Tc", 0)); + } + + $this->addContent(' ET'); + + // if there are any open callbacks, then they should be called, to show the end of the line + if ($this->nCallback > 0) { + for ($i = $this->nCallback; $i > 0; $i--) { + // call each function + $tmp = $this->getTextPosition($x, $y, $angle, $size, $wordSpaceAdjust, $text); + $info = [ + 'x' => $tmp[0], + 'y' => $tmp[1], + 'angle' => $angle, + 'status' => 'eol', + 'p' => $this->callback[$i]['p'], + 'nCallback' => $this->callback[$i]['nCallback'], + 'height' => $this->callback[$i]['height'], + 'descender' => $this->callback[$i]['descender'] + ]; + $func = $this->callback[$i]['f']; + $this->$func($info); + } + } + + if ($this->fonts[$this->currentFont]['isSubsetting']) { + $this->registerText($this->currentFont, $text); + } + } + + /** + * calculate how wide a given text string will be on a page, at a given size. + * this can be called externally, but is also used by the other class functions + * + * @param float $size + * @param string $text + * @param float $word_spacing + * @param float $char_spacing + * @return float + */ + function getTextWidth($size, $text, $word_spacing = 0, $char_spacing = 0) + { + static $ord_cache = []; + + // this function should not change any of the settings, though it will need to + // track any directives which change during calculation, so copy them at the start + // and put them back at the end. + $store_currentTextState = $this->currentTextState; + + if (!$this->numFonts) { + $this->selectFont($this->defaultFont); + } + + $text = str_replace(["\r", "\n"], "", $text); + + // converts a number or a float to a string so it can get the width + $text = "$text"; + + // hmm, this is where it all starts to get tricky - use the font information to + // calculate the width of each character, add them up and convert to user units + $w = 0; + $cf = $this->currentFont; + $current_font = $this->fonts[$cf]; + $space_scale = 1000 / ($size > 0 ? $size : 1); + + if ($current_font['isUnicode']) { + // for Unicode, use the code points array to calculate width rather + // than just the string itself + $unicode = $this->utf8toCodePointsArray($text); + + foreach ($unicode as $char) { + // check if we have to replace character + if (isset($current_font['differences'][$char])) { + $char = $current_font['differences'][$char]; + } + + if (isset($current_font['C'][$char])) { + $char_width = $current_font['C'][$char]; + + // add the character width + $w += $char_width; + + // add additional padding for space + if (isset($current_font['codeToName'][$char]) && $current_font['codeToName'][$char] === 'space') { // Space + $w += $word_spacing * $space_scale; + } + } + } + + // add additional char spacing + if ($char_spacing != 0) { + $w += $char_spacing * $space_scale * count($unicode); + } + + } else { + // If CPDF is in Unicode mode but the current font does not support Unicode we need to convert the character set to Windows-1252 + if ($this->isUnicode) { + $text = mb_convert_encoding($text, 'Windows-1252', 'UTF-8'); + } + + $len = mb_strlen($text, 'Windows-1252'); + + for ($i = 0; $i < $len; $i++) { + $c = $text[$i]; + $char = isset($ord_cache[$c]) ? $ord_cache[$c] : ($ord_cache[$c] = ord($c)); + + // check if we have to replace character + if (isset($current_font['differences'][$char])) { + $char = $current_font['differences'][$char]; + } + + if (isset($current_font['C'][$char])) { + $char_width = $current_font['C'][$char]; + + // add the character width + $w += $char_width; + + // add additional padding for space + if (isset($current_font['codeToName'][$char]) && $current_font['codeToName'][$char] === 'space') { // Space + $w += $word_spacing * $space_scale; + } + } + } + + // add additional char spacing + if ($char_spacing != 0) { + $w += $char_spacing * $space_scale * $len; + } + } + + $this->currentTextState = $store_currentTextState; + $this->setCurrentFont(); + + return $w * $size / 1000; + } + + /** + * this will be called at a new page to return the state to what it was on the + * end of the previous page, before the stack was closed down + * This is to get around not being able to have open 'q' across pages + * + * @param int $pageEnd + */ + function saveState($pageEnd = 0) + { + if ($pageEnd) { + // this will be called at a new page to return the state to what it was on the + // end of the previous page, before the stack was closed down + // This is to get around not being able to have open 'q' across pages + $opt = $this->stateStack[$pageEnd]; + // ok to use this as stack starts numbering at 1 + $this->setColor($opt['col'], true); + $this->setStrokeColor($opt['str'], true); + $this->addContent("\n" . $opt['lin']); + // $this->currentLineStyle = $opt['lin']; + } else { + $this->nStateStack++; + $this->stateStack[$this->nStateStack] = [ + 'col' => $this->currentColor, + 'str' => $this->currentStrokeColor, + 'lin' => $this->currentLineStyle + ]; + } + + $this->save(); + } + + /** + * restore a previously saved state + * + * @param int $pageEnd + */ + function restoreState($pageEnd = 0) + { + if (!$pageEnd) { + $n = $this->nStateStack; + $this->currentColor = $this->stateStack[$n]['col']; + $this->currentStrokeColor = $this->stateStack[$n]['str']; + $this->addContent("\n" . $this->stateStack[$n]['lin']); + $this->currentLineStyle = $this->stateStack[$n]['lin']; + $this->stateStack[$n] = null; + unset($this->stateStack[$n]); + $this->nStateStack--; + } + + $this->restore(); + } + + /** + * make a loose object, the output will go into this object, until it is closed, then will revert to + * the current one. + * this object will not appear until it is included within a page. + * the function will return the object number + * + * @return int + */ + function openObject() + { + $this->nStack++; + $this->stack[$this->nStack] = ['c' => $this->currentContents, 'p' => $this->currentPage]; + // add a new object of the content type, to hold the data flow + $this->numObj++; + $this->o_contents($this->numObj, 'new'); + $this->currentContents = $this->numObj; + $this->looseObjects[$this->numObj] = 1; + + return $this->numObj; + } + + /** + * open an existing object for editing + * + * @param $id + */ + function reopenObject($id) + { + $this->nStack++; + $this->stack[$this->nStack] = ['c' => $this->currentContents, 'p' => $this->currentPage]; + $this->currentContents = $id; + + // also if this object is the primary contents for a page, then set the current page to its parent + if (isset($this->objects[$id]['onPage'])) { + $this->currentPage = $this->objects[$id]['onPage']; + } + } + + /** + * close an object + */ + function closeObject() + { + // close the object, as long as there was one open in the first place, which will be indicated by + // an objectId on the stack. + if ($this->nStack > 0) { + $this->currentContents = $this->stack[$this->nStack]['c']; + $this->currentPage = $this->stack[$this->nStack]['p']; + $this->nStack--; + // easier to probably not worry about removing the old entries, they will be overwritten + // if there are new ones. + } + } + + /** + * stop an object from appearing on pages from this point on + * + * @param $id + */ + function stopObject($id) + { + // if an object has been appearing on pages up to now, then stop it, this page will + // be the last one that could contain it. + if (isset($this->addLooseObjects[$id])) { + $this->addLooseObjects[$id] = ''; + } + } + + /** + * after an object has been created, it wil only show if it has been added, using this function. + * + * @param $id + * @param string $options + */ + function addObject($id, $options = 'add') + { + // add the specified object to the page + if (isset($this->looseObjects[$id]) && $this->currentContents != $id) { + // then it is a valid object, and it is not being added to itself + switch ($options) { + case 'all': + // then this object is to be added to this page (done in the next block) and + // all future new pages. + $this->addLooseObjects[$id] = 'all'; + + case 'add': + if (isset($this->objects[$this->currentContents]['onPage'])) { + // then the destination contents is the primary for the page + // (though this object is actually added to that page) + $this->o_page($this->objects[$this->currentContents]['onPage'], 'content', $id); + } + break; + + case 'even': + $this->addLooseObjects[$id] = 'even'; + $pageObjectId = $this->objects[$this->currentContents]['onPage']; + if ($this->objects[$pageObjectId]['info']['pageNum'] % 2 == 0) { + $this->addObject($id); + // hacky huh :) + } + break; + + case 'odd': + $this->addLooseObjects[$id] = 'odd'; + $pageObjectId = $this->objects[$this->currentContents]['onPage']; + if ($this->objects[$pageObjectId]['info']['pageNum'] % 2 == 1) { + $this->addObject($id); + // hacky huh :) + } + break; + + case 'next': + $this->addLooseObjects[$id] = 'all'; + break; + + case 'nexteven': + $this->addLooseObjects[$id] = 'even'; + break; + + case 'nextodd': + $this->addLooseObjects[$id] = 'odd'; + break; + } + } + } + + /** + * return a storable representation of a specific object + * + * @param $id + * @return string|null + */ + function serializeObject($id) + { + if (array_key_exists($id, $this->objects)) { + return serialize($this->objects[$id]); + } + + return null; + } + + /** + * restore an object from its stored representation. Returns its new object id. + * + * @param $obj + * @return int + */ + function restoreSerializedObject($obj) + { + $obj_id = $this->openObject(); + $this->objects[$obj_id] = unserialize($obj); + $this->closeObject(); + + return $obj_id; + } + + /** + * Embeds a file inside the PDF + * + * @param string $filepath path to the file to store inside the PDF + * @param string $embeddedFilename the filename displayed in the list of embedded files + * @param string $description a description in the list of embedded files + */ + public function addEmbeddedFile(string $filepath, string $embeddedFilename, string $description): void + { + $this->numObj++; + $this->o_embedded_file_dictionary( + $this->numObj, + 'new', + [ + 'filepath' => $filepath, + 'filename' => $embeddedFilename, + 'description' => $description + ] + ); + } + + /** + * add content to the documents info object + * + * @param $label + * @param int $value + */ + function addInfo($label, $value = 0) + { + // this will only work if the label is one of the valid ones. + // modify this so that arrays can be passed as well. + // if $label is an array then assume that it is key => value pairs + // else assume that they are both scalar, anything else will probably error + if (is_array($label)) { + foreach ($label as $l => $v) { + $this->o_info($this->infoObject, $l, $v); + } + } else { + $this->o_info($this->infoObject, $label, $value); + } + } + + /** + * set the viewer preferences of the document, it is up to the browser to obey these. + * + * @param $label + * @param int $value + */ + function setPreferences($label, $value = 0) + { + // this will only work if the label is one of the valid ones. + if (is_array($label)) { + foreach ($label as $l => $v) { + $this->o_catalog($this->catalogId, 'viewerPreferences', [$l => $v]); + } + } else { + $this->o_catalog($this->catalogId, 'viewerPreferences', [$label => $value]); + } + } + + /** + * extract an integer from a position in a byte stream + * + * @param $data + * @param $pos + * @param $num + * @return int + */ + private function getBytes(&$data, $pos, $num) + { + // return the integer represented by $num bytes from $pos within $data + $ret = 0; + for ($i = 0; $i < $num; $i++) { + $ret *= 256; + $ret += ord($data[$pos + $i]); + } + + return $ret; + } + + /** + * Check if image already added to pdf image directory. + * If yes, need not to create again (pass empty data) + * + * @param string $imgname + * @return bool + */ + function image_iscached($imgname) + { + return isset($this->imagelist[$imgname]); + } + + /** + * add a PNG image into the document, from a GD object + * this should work with remote files + * + * @param \GdImage|resource $img A GD resource + * @param string $file The PNG file + * @param float $x X position + * @param float $y Y position + * @param float $w Width + * @param float $h Height + * @param bool $is_mask true if the image is a mask + * @param bool $mask true if the image is masked + * @throws Exception + */ + function addImagePng(&$img, $file, $x, $y, $w = 0.0, $h = 0.0, $is_mask = false, $mask = null) + { + if (!function_exists("imagepng")) { + throw new \Exception("The PHP GD extension is required, but is not installed."); + } + + //if already cached, need not to read again + if (isset($this->imagelist[$file])) { + $data = null; + } else { + // Example for transparency handling on new image. Retain for current image + // $tIndex = imagecolortransparent($img); + // if ($tIndex > 0) { + // $tColor = imagecolorsforindex($img, $tIndex); + // $new_tIndex = imagecolorallocate($new_img, $tColor['red'], $tColor['green'], $tColor['blue']); + // imagefill($new_img, 0, 0, $new_tIndex); + // imagecolortransparent($new_img, $new_tIndex); + // } + // blending mode (literal/blending) on drawing into current image. not relevant when not saved or not drawn + //imagealphablending($img, true); + + //default, but explicitely set to ensure pdf compatibility + imagesavealpha($img, false/*!$is_mask && !$mask*/); + + $error = 0; + //DEBUG_IMG_TEMP + //debugpng + if (defined("DEBUGPNG") && DEBUGPNG) { + print '[addImagePng ' . $file . ']'; + } + + ob_start(); + @imagepng($img); + $data = ob_get_clean(); + + if ($data == '') { + $error = 1; + $errormsg = 'trouble writing file from GD'; + //DEBUG_IMG_TEMP + //debugpng + if (defined("DEBUGPNG") && DEBUGPNG) { + print 'trouble writing file from GD'; + } + } + + if ($error) { + $this->addMessage('PNG error - (' . $file . ') ' . $errormsg); + + return; + } + } //End isset($this->imagelist[$file]) (png Duplicate removal) + + $this->addPngFromBuf($data, $file, $x, $y, $w, $h, $is_mask, $mask); + } + + /** + * @param $file + * @param $x + * @param $y + * @param $w + * @param $h + * @param $byte + */ + protected function addImagePngAlpha($file, $x, $y, $w, $h, $byte) + { + // generate images + $img = imagecreatefrompng($file); + + if ($img === false) { + return; + } + + // FIXME The pixel transformation doesn't work well with 8bit PNGs + $eight_bit = ($byte & 4) !== 4; + + $wpx = imagesx($img); + $hpx = imagesy($img); + + imagesavealpha($img, false); + + // create temp alpha file + $tempfile_alpha = @tempnam($this->tmp, "cpdf_img_"); + @unlink($tempfile_alpha); + $tempfile_alpha = "$tempfile_alpha.png"; + + // create temp plain file + $tempfile_plain = @tempnam($this->tmp, "cpdf_img_"); + @unlink($tempfile_plain); + $tempfile_plain = "$tempfile_plain.png"; + + $imgalpha = imagecreate($wpx, $hpx); + imagesavealpha($imgalpha, false); + + // generate gray scale palette (0 -> 255) + for ($c = 0; $c < 256; ++$c) { + imagecolorallocate($imgalpha, $c, $c, $c); + } + + // Use PECL gmagick + Graphics Magic to process transparent PNG images + if (extension_loaded("gmagick")) { + $gmagick = new \Gmagick($file); + $gmagick->setimageformat('png'); + + // Get opacity channel (negative of alpha channel) + $alpha_channel_neg = clone $gmagick; + $alpha_channel_neg->separateimagechannel(\Gmagick::CHANNEL_OPACITY); + + // Negate opacity channel + $alpha_channel = new \Gmagick(); + $alpha_channel->newimage($wpx, $hpx, "#FFFFFF", "png"); + $alpha_channel->compositeimage($alpha_channel_neg, \Gmagick::COMPOSITE_DIFFERENCE, 0, 0); + $alpha_channel->separateimagechannel(\Gmagick::CHANNEL_RED); + $alpha_channel->writeimage($tempfile_alpha); + + // Cast to 8bit+palette + $imgalpha_ = imagecreatefrompng($tempfile_alpha); + imagecopy($imgalpha, $imgalpha_, 0, 0, 0, 0, $wpx, $hpx); + imagedestroy($imgalpha_); + imagepng($imgalpha, $tempfile_alpha); + + // Make opaque image + $color_channels = new \Gmagick(); + $color_channels->newimage($wpx, $hpx, "#FFFFFF", "png"); + $color_channels->compositeimage($gmagick, \Gmagick::COMPOSITE_COPYRED, 0, 0); + $color_channels->compositeimage($gmagick, \Gmagick::COMPOSITE_COPYGREEN, 0, 0); + $color_channels->compositeimage($gmagick, \Gmagick::COMPOSITE_COPYBLUE, 0, 0); + $color_channels->writeimage($tempfile_plain); + + $imgplain = imagecreatefrompng($tempfile_plain); + } + // Use PECL imagick + ImageMagic to process transparent PNG images + elseif (extension_loaded("imagick")) { + // Native cloning was added to pecl-imagick in svn commit 263814 + // the first version containing it was 3.0.1RC1 + static $imagickClonable = null; + if ($imagickClonable === null) { + $imagickClonable = true; + if (defined('Imagick::IMAGICK_EXTVER')) { + $imagickVersion = \Imagick::IMAGICK_EXTVER; + } else { + $imagickVersion = '0'; + } + if (version_compare($imagickVersion, '0.0.1', '>=')) { + $imagickClonable = version_compare($imagickVersion, '3.0.1rc1', '>='); + } + } + + $imagick = new \Imagick($file); + $imagick->setFormat('png'); + + // Get opacity channel (negative of alpha channel) + if ($imagick->getImageAlphaChannel() !== 0) { + $alpha_channel = $imagickClonable ? clone $imagick : $imagick->clone(); + $alpha_channel->separateImageChannel(\Imagick::CHANNEL_ALPHA); + // Since ImageMagick7 negate invert transparency as default + if (\Imagick::getVersion()['versionNumber'] < 1800) { + $alpha_channel->negateImage(true); + } + $alpha_channel->writeImage($tempfile_alpha); + + // Cast to 8bit+palette + $imgalpha_ = imagecreatefrompng($tempfile_alpha); + imagecopy($imgalpha, $imgalpha_, 0, 0, 0, 0, $wpx, $hpx); + imagedestroy($imgalpha_); + imagepng($imgalpha, $tempfile_alpha); + } else { + $tempfile_alpha = null; + } + + // Make opaque image + $color_channels = new \Imagick(); + $color_channels->newImage($wpx, $hpx, "#FFFFFF", "png"); + $color_channels->compositeImage($imagick, \Imagick::COMPOSITE_COPYRED, 0, 0); + $color_channels->compositeImage($imagick, \Imagick::COMPOSITE_COPYGREEN, 0, 0); + $color_channels->compositeImage($imagick, \Imagick::COMPOSITE_COPYBLUE, 0, 0); + $color_channels->writeImage($tempfile_plain); + + $imgplain = imagecreatefrompng($tempfile_plain); + } else { + // allocated colors cache + $allocated_colors = []; + + // extract alpha channel + for ($xpx = 0; $xpx < $wpx; ++$xpx) { + for ($ypx = 0; $ypx < $hpx; ++$ypx) { + $color = imagecolorat($img, $xpx, $ypx); + $col = imagecolorsforindex($img, $color); + $alpha = $col['alpha']; + + if ($eight_bit) { + // with gamma correction + $gammacorr = 2.2; + $pixel = round(pow((((127 - $alpha) * 255 / 127) / 255), $gammacorr) * 255); + } else { + // without gamma correction + $pixel = (127 - $alpha) * 2; + + $key = $col['red'] . $col['green'] . $col['blue']; + + if (!isset($allocated_colors[$key])) { + $pixel_img = imagecolorallocate($img, $col['red'], $col['green'], $col['blue']); + $allocated_colors[$key] = $pixel_img; + } else { + $pixel_img = $allocated_colors[$key]; + } + + imagesetpixel($img, $xpx, $ypx, $pixel_img); + } + + imagesetpixel($imgalpha, $xpx, $ypx, $pixel); + } + } + + // extract image without alpha channel + $imgplain = imagecreatetruecolor($wpx, $hpx); + imagecopy($imgplain, $img, 0, 0, 0, 0, $wpx, $hpx); + imagedestroy($img); + + imagepng($imgalpha, $tempfile_alpha); + imagepng($imgplain, $tempfile_plain); + } + + $this->imageAlphaList[$file] = [$tempfile_alpha, $tempfile_plain]; + + // embed mask image + if ($tempfile_alpha) { + $this->addImagePng($imgalpha, $tempfile_alpha, $x, $y, $w, $h, true); + imagedestroy($imgalpha); + $this->imageCache[] = $tempfile_alpha; + } + + // embed image, masked with previously embedded mask + $this->addImagePng($imgplain, $tempfile_plain, $x, $y, $w, $h, false, ($tempfile_alpha !== null)); + imagedestroy($imgplain); + $this->imageCache[] = $tempfile_plain; + } + + /** + * add a PNG image into the document, from a file + * this should work with remote files + * + * @param $file + * @param $x + * @param $y + * @param int $w + * @param int $h + * @throws Exception + */ + function addPngFromFile($file, $x, $y, $w = 0, $h = 0) + { + if (!function_exists("imagecreatefrompng")) { + throw new \Exception("The PHP GD extension is required, but is not installed."); + } + + if (isset($this->imageAlphaList[$file])) { + [$alphaFile, $plainFile] = $this->imageAlphaList[$file]; + + if ($alphaFile) { + $img = null; + $this->addImagePng($img, $alphaFile, $x, $y, $w, $h, true); + } + + $img = null; + $this->addImagePng($img, $plainFile, $x, $y, $w, $h, false, ($plainFile !== null)); + return; + } + + //if already cached, need not to read again + if (isset($this->imagelist[$file])) { + $img = null; + } else { + $info = file_get_contents($file, false, null, 24, 5); + $meta = unpack("CbitDepth/CcolorType/CcompressionMethod/CfilterMethod/CinterlaceMethod", $info); + $bit_depth = $meta["bitDepth"]; + $color_type = $meta["colorType"]; + + // http://www.w3.org/TR/PNG/#11IHDR + // 3 => indexed + // 4 => greyscale with alpha + // 6 => fullcolor with alpha + $is_alpha = in_array($color_type, [4, 6]) || ($color_type == 3 && $bit_depth != 4); + + if ($is_alpha) { // exclude grayscale alpha + $this->addImagePngAlpha($file, $x, $y, $w, $h, $color_type); + return; + } + + //png files typically contain an alpha channel. + //pdf file format or class.pdf does not support alpha blending. + //on alpha blended images, more transparent areas have a color near black. + //This appears in the result on not storing the alpha channel. + //Correct would be the box background image or its parent when transparent. + //But this would make the image dependent on the background. + //Therefore create an image with white background and copy in + //A more natural background than black is white. + //Therefore create an empty image with white background and merge the + //image in with alpha blending. + $imgtmp = @imagecreatefrompng($file); + if (!$imgtmp) { + return; + } + $sx = imagesx($imgtmp); + $sy = imagesy($imgtmp); + $img = imagecreatetruecolor($sx, $sy); + imagealphablending($img, true); + + // @todo is it still needed ?? + $ti = imagecolortransparent($imgtmp); + if ($ti >= 0) { + $tc = imagecolorsforindex($imgtmp, $ti); + $ti = imagecolorallocate($img, $tc['red'], $tc['green'], $tc['blue']); + imagefill($img, 0, 0, $ti); + imagecolortransparent($img, $ti); + } else { + imagefill($img, 1, 1, imagecolorallocate($img, 255, 255, 255)); + } + + imagecopy($img, $imgtmp, 0, 0, 0, 0, $sx, $sy); + imagedestroy($imgtmp); + } + $this->addImagePng($img, $file, $x, $y, $w, $h); + + if ($img) { + imagedestroy($img); + } + } + + /** + * add a PNG image into the document, from a memory buffer of the file + * + * @param $data + * @param $file + * @param $x + * @param $y + * @param float $w + * @param float $h + * @param bool $is_mask + * @param null $mask + */ + function addPngFromBuf(&$data, $file, $x, $y, $w = 0.0, $h = 0.0, $is_mask = false, $mask = null) + { + if (isset($this->imagelist[$file])) { + $data = null; + $info['width'] = $this->imagelist[$file]['w']; + $info['height'] = $this->imagelist[$file]['h']; + $label = $this->imagelist[$file]['label']; + } else { + if ($data == null) { + $this->addMessage('addPngFromBuf error - data not present!'); + + return; + } + + $error = 0; + + if (!$error) { + $header = chr(137) . chr(80) . chr(78) . chr(71) . chr(13) . chr(10) . chr(26) . chr(10); + + if (mb_substr($data, 0, 8, '8bit') != $header) { + $error = 1; + + if (defined("DEBUGPNG") && DEBUGPNG) { + print '[addPngFromFile this file does not have a valid header ' . $file . ']'; + } + + $errormsg = 'this file does not have a valid header'; + } + } + + if (!$error) { + // set pointer + $p = 8; + $len = mb_strlen($data, '8bit'); + + // cycle through the file, identifying chunks + $haveHeader = 0; + $info = []; + $idata = ''; + $pdata = ''; + + while ($p < $len) { + $chunkLen = $this->getBytes($data, $p, 4); + $chunkType = mb_substr($data, $p + 4, 4, '8bit'); + + switch ($chunkType) { + case 'IHDR': + // this is where all the file information comes from + $info['width'] = $this->getBytes($data, $p + 8, 4); + $info['height'] = $this->getBytes($data, $p + 12, 4); + $info['bitDepth'] = ord($data[$p + 16]); + $info['colorType'] = ord($data[$p + 17]); + $info['compressionMethod'] = ord($data[$p + 18]); + $info['filterMethod'] = ord($data[$p + 19]); + $info['interlaceMethod'] = ord($data[$p + 20]); + + //print_r($info); + $haveHeader = 1; + if ($info['compressionMethod'] != 0) { + $error = 1; + + //debugpng + if (defined("DEBUGPNG") && DEBUGPNG) { + print '[addPngFromFile unsupported compression method ' . $file . ']'; + } + + $errormsg = 'unsupported compression method'; + } + + if ($info['filterMethod'] != 0) { + $error = 1; + + //debugpng + if (defined("DEBUGPNG") && DEBUGPNG) { + print '[addPngFromFile unsupported filter method ' . $file . ']'; + } + + $errormsg = 'unsupported filter method'; + } + break; + + case 'PLTE': + $pdata .= mb_substr($data, $p + 8, $chunkLen, '8bit'); + break; + + case 'IDAT': + $idata .= mb_substr($data, $p + 8, $chunkLen, '8bit'); + break; + + case 'tRNS': + //this chunk can only occur once and it must occur after the PLTE chunk and before IDAT chunk + //print "tRNS found, color type = ".$info['colorType']."\n"; + $transparency = []; + + switch ($info['colorType']) { + // indexed color, rbg + case 3: + /* corresponding to entries in the plte chunk + Alpha for palette index 0: 1 byte + Alpha for palette index 1: 1 byte + ...etc... + */ + // there will be one entry for each palette entry. up until the last non-opaque entry. + // set up an array, stretching over all palette entries which will be o (opaque) or 1 (transparent) + $transparency['type'] = 'indexed'; + $trans = 0; + + for ($i = $chunkLen; $i >= 0; $i--) { + if (ord($data[$p + 8 + $i]) == 0) { + $trans = $i; + } + } + + $transparency['data'] = $trans; + break; + + // grayscale + case 0: + /* corresponding to entries in the plte chunk + Gray: 2 bytes, range 0 .. (2^bitdepth)-1 + */ + // $transparency['grayscale'] = $this->PRVT_getBytes($data,$p+8,2); // g = grayscale + $transparency['type'] = 'indexed'; + $transparency['data'] = ord($data[$p + 8 + 1]); + break; + + // truecolor + case 2: + /* corresponding to entries in the plte chunk + Red: 2 bytes, range 0 .. (2^bitdepth)-1 + Green: 2 bytes, range 0 .. (2^bitdepth)-1 + Blue: 2 bytes, range 0 .. (2^bitdepth)-1 + */ + $transparency['r'] = $this->getBytes($data, $p + 8, 2); + // r from truecolor + $transparency['g'] = $this->getBytes($data, $p + 10, 2); + // g from truecolor + $transparency['b'] = $this->getBytes($data, $p + 12, 2); + // b from truecolor + + $transparency['type'] = 'color-key'; + break; + + //unsupported transparency type + default: + if (defined("DEBUGPNG") && DEBUGPNG) { + print '[addPngFromFile unsupported transparency type ' . $file . ']'; + } + break; + } + + // KS End new code + break; + + default: + break; + } + + $p += $chunkLen + 12; + } + + if (!$haveHeader) { + $error = 1; + + //debugpng + if (defined("DEBUGPNG") && DEBUGPNG) { + print '[addPngFromFile information header is missing ' . $file . ']'; + } + + $errormsg = 'information header is missing'; + } + + if (isset($info['interlaceMethod']) && $info['interlaceMethod']) { + $error = 1; + + //debugpng + if (defined("DEBUGPNG") && DEBUGPNG) { + print '[addPngFromFile no support for interlaced images in pdf ' . $file . ']'; + } + + $errormsg = 'There appears to be no support for interlaced images in pdf.'; + } + } + + if (!$error && $info['bitDepth'] > 8) { + $error = 1; + + //debugpng + if (defined("DEBUGPNG") && DEBUGPNG) { + print '[addPngFromFile bit depth of 8 or less is supported ' . $file . ']'; + } + + $errormsg = 'only bit depth of 8 or less is supported'; + } + + if (!$error) { + switch ($info['colorType']) { + case 3: + $color = 'DeviceRGB'; + $ncolor = 1; + break; + + case 2: + $color = 'DeviceRGB'; + $ncolor = 3; + break; + + case 0: + $color = 'DeviceGray'; + $ncolor = 1; + break; + + default: + $error = 1; + + //debugpng + if (defined("DEBUGPNG") && DEBUGPNG) { + print '[addPngFromFile alpha channel not supported: ' . $info['colorType'] . ' ' . $file . ']'; + } + + $errormsg = 'transparency alpha channel not supported, transparency only supported for palette images.'; + } + } + + if ($error) { + $this->addMessage('PNG error - (' . $file . ') ' . $errormsg); + + return; + } + + //print_r($info); + // so this image is ok... add it in. + $this->numImages++; + $im = $this->numImages; + $label = "I$im"; + $this->numObj++; + + // $this->o_image($this->numObj,'new',array('label' => $label,'data' => $idata,'iw' => $w,'ih' => $h,'type' => 'png','ic' => $info['width'])); + $options = [ + 'label' => $label, + 'data' => $idata, + 'bitsPerComponent' => $info['bitDepth'], + 'pdata' => $pdata, + 'iw' => $info['width'], + 'ih' => $info['height'], + 'type' => 'png', + 'color' => $color, + 'ncolor' => $ncolor, + 'masked' => $mask, + 'isMask' => $is_mask + ]; + + if (isset($transparency)) { + $options['transparency'] = $transparency; + } + + $this->o_image($this->numObj, 'new', $options); + $this->imagelist[$file] = ['label' => $label, 'w' => $info['width'], 'h' => $info['height']]; + } + + if ($is_mask) { + return; + } + + if ($w <= 0 && $h <= 0) { + $w = $info['width']; + $h = $info['height']; + } + + if ($w <= 0) { + $w = $h / $info['height'] * $info['width']; + } + + if ($h <= 0) { + $h = $w * $info['height'] / $info['width']; + } + + $this->addContent(sprintf("\nq\n%.3F 0 0 %.3F %.3F %.3F cm /%s Do\nQ", $w, $h, $x, $y, $label)); + } + + /** + * add a JPEG image into the document, from a file + * + * @param $img + * @param $x + * @param $y + * @param int $w + * @param int $h + */ + function addJpegFromFile($img, $x, $y, $w = 0, $h = 0) + { + // attempt to add a jpeg image straight from a file, using no GD commands + // note that this function is unable to operate on a remote file. + + if (!file_exists($img)) { + return; + } + + if ($this->image_iscached($img)) { + $data = null; + $imageWidth = $this->imagelist[$img]['w']; + $imageHeight = $this->imagelist[$img]['h']; + $channels = $this->imagelist[$img]['c']; + } else { + $tmp = getimagesize($img); + $imageWidth = $tmp[0]; + $imageHeight = $tmp[1]; + + if (isset($tmp['channels'])) { + $channels = $tmp['channels']; + } else { + $channels = 3; + } + + $data = file_get_contents($img); + } + + if ($w <= 0 && $h <= 0) { + $w = $imageWidth; + } + + if ($w == 0) { + $w = $h / $imageHeight * $imageWidth; + } + + if ($h == 0) { + $h = $w * $imageHeight / $imageWidth; + } + + $this->addJpegImage_common($data, $img, $imageWidth, $imageHeight, $x, $y, $w, $h, $channels); + } + + /** + * common code used by the two JPEG adding functions + * @param $data + * @param $imgname + * @param $imageWidth + * @param $imageHeight + * @param $x + * @param $y + * @param int $w + * @param int $h + * @param int $channels + */ + private function addJpegImage_common( + &$data, + $imgname, + $imageWidth, + $imageHeight, + $x, + $y, + $w = 0, + $h = 0, + $channels = 3 + ) { + if ($this->image_iscached($imgname)) { + $label = $this->imagelist[$imgname]['label']; + //debugpng + //if (DEBUGPNG) print '[addJpegImage_common Duplicate '.$imgname.']'; + + } else { + if ($data == null) { + $this->addMessage('addJpegImage_common error - (' . $imgname . ') data not present!'); + + return; + } + + // note that this function is not to be called externally + // it is just the common code between the GD and the file options + $this->numImages++; + $im = $this->numImages; + $label = "I$im"; + $this->numObj++; + + $this->o_image( + $this->numObj, + 'new', + [ + 'label' => $label, + 'data' => &$data, + 'iw' => $imageWidth, + 'ih' => $imageHeight, + 'channels' => $channels + ] + ); + + $this->imagelist[$imgname] = [ + 'label' => $label, + 'w' => $imageWidth, + 'h' => $imageHeight, + 'c' => $channels + ]; + } + + $this->addContent(sprintf("\nq\n%.3F 0 0 %.3F %.3F %.3F cm /%s Do\nQ ", $w, $h, $x, $y, $label)); + } + + /** + * specify where the document should open when it first starts + * + * @param $style + * @param int $a + * @param int $b + * @param int $c + */ + function openHere($style, $a = 0, $b = 0, $c = 0) + { + // this function will open the document at a specified page, in a specified style + // the values for style, and the required parameters are: + // 'XYZ' left, top, zoom + // 'Fit' + // 'FitH' top + // 'FitV' left + // 'FitR' left,bottom,right + // 'FitB' + // 'FitBH' top + // 'FitBV' left + $this->numObj++; + $this->o_destination( + $this->numObj, + 'new', + ['page' => $this->currentPage, 'type' => $style, 'p1' => $a, 'p2' => $b, 'p3' => $c] + ); + $id = $this->catalogId; + $this->o_catalog($id, 'openHere', $this->numObj); + } + + /** + * Add JavaScript code to the PDF document + * + * @param string $code + */ + function addJavascript($code) + { + $this->javascript .= $code; + } + + /** + * create a labelled destination within the document + * + * @param $label + * @param $style + * @param int $a + * @param int $b + * @param int $c + */ + function addDestination($label, $style, $a = 0, $b = 0, $c = 0) + { + // associates the given label with the destination, it is done this way so that a destination can be specified after + // it has been linked to + // styles are the same as the 'openHere' function + $this->numObj++; + $this->o_destination( + $this->numObj, + 'new', + ['page' => $this->currentPage, 'type' => $style, 'p1' => $a, 'p2' => $b, 'p3' => $c] + ); + $id = $this->numObj; + + // store the label->idf relationship, note that this means that labels can be used only once + $this->destinations["$label"] = $id; + } + + /** + * define font families, this is used to initialize the font families for the default fonts + * and for the user to add new ones for their fonts. The default bahavious can be overridden should + * that be desired. + * + * @param $family + * @param string $options + */ + function setFontFamily($family, $options = '') + { + if (!is_array($options)) { + if ($family === 'init') { + // set the known family groups + // these font families will be used to enable bold and italic markers to be included + // within text streams. html forms will be used... + $this->fontFamilies['Helvetica.afm'] = + [ + 'b' => 'Helvetica-Bold.afm', + 'i' => 'Helvetica-Oblique.afm', + 'bi' => 'Helvetica-BoldOblique.afm', + 'ib' => 'Helvetica-BoldOblique.afm' + ]; + + $this->fontFamilies['Courier.afm'] = + [ + 'b' => 'Courier-Bold.afm', + 'i' => 'Courier-Oblique.afm', + 'bi' => 'Courier-BoldOblique.afm', + 'ib' => 'Courier-BoldOblique.afm' + ]; + + $this->fontFamilies['Times-Roman.afm'] = + [ + 'b' => 'Times-Bold.afm', + 'i' => 'Times-Italic.afm', + 'bi' => 'Times-BoldItalic.afm', + 'ib' => 'Times-BoldItalic.afm' + ]; + } + } else { + + // the user is trying to set a font family + // note that this can also be used to set the base ones to something else + if (mb_strlen($family)) { + $this->fontFamilies[$family] = $options; + } + } + } + + /** + * used to add messages for use in debugging + * + * @param $message + */ + function addMessage($message) + { + $this->messages .= $message . "\n"; + } + + /** + * a few functions which should allow the document to be treated transactionally. + * + * @param $action + */ + function transaction($action) + { + switch ($action) { + case 'start': + // store all the data away into the checkpoint variable + $data = get_object_vars($this); + $this->checkpoint = $data; + unset($data); + break; + + case 'commit': + if (is_array($this->checkpoint) && isset($this->checkpoint['checkpoint'])) { + $tmp = $this->checkpoint['checkpoint']; + $this->checkpoint = $tmp; + unset($tmp); + } else { + $this->checkpoint = ''; + } + break; + + case 'rewind': + // do not destroy the current checkpoint, but move us back to the state then, so that we can try again + if (is_array($this->checkpoint)) { + // can only abort if were inside a checkpoint + $tmp = $this->checkpoint; + + foreach ($tmp as $k => $v) { + if ($k !== 'checkpoint') { + $this->$k = $v; + } + } + unset($tmp); + } + break; + + case 'abort': + if (is_array($this->checkpoint)) { + // can only abort if were inside a checkpoint + $tmp = $this->checkpoint; + foreach ($tmp as $k => $v) { + $this->$k = $v; + } + unset($tmp); + } + break; + } + } +} diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Surface/SurfaceCpdf.php b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Surface/SurfaceCpdf.php new file mode 100644 index 0000000..62cc74a --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Surface/SurfaceCpdf.php @@ -0,0 +1,495 @@ + + * @license GNU LGPLv3+ http://www.gnu.org/copyleft/lesser.html + */ + +namespace Svg\Surface; + +use Svg\Document; +use Svg\Style; + +class SurfaceCpdf implements SurfaceInterface +{ + const DEBUG = false; + + /** @var \Svg\Surface\CPdf */ + private $canvas; + + private $width; + private $height; + + /** @var Style */ + private $style; + + public function __construct(Document $doc, $canvas = null) + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + + $dimensions = $doc->getDimensions(); + $w = $dimensions["width"]; + $h = $dimensions["height"]; + + if (!$canvas) { + $canvas = new \Svg\Surface\CPdf(array(0, 0, $w, $h)); + $refl = new \ReflectionClass($canvas); + $canvas->fontcache = realpath(dirname($refl->getFileName()) . "/../../fonts/")."/"; + } + + // Flip PDF coordinate system so that the origin is in + // the top left rather than the bottom left + $canvas->transform(array( + 1, 0, + 0, -1, + 0, $h + )); + + $this->width = $w; + $this->height = $h; + + $this->canvas = $canvas; + } + + function out() + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + return $this->canvas->output(); + } + + public function save() + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + $this->canvas->save(); + } + + public function restore() + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + $this->canvas->restore(); + } + + public function scale($x, $y) + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + + $this->transform($x, 0, 0, $y, 0, 0); + } + + public function rotate($angle) + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + + $a = deg2rad($angle); + $cos_a = cos($a); + $sin_a = sin($a); + + $this->transform( + $cos_a, $sin_a, + -$sin_a, $cos_a, + 0, 0 + ); + } + + public function translate($x, $y) + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + + $this->transform( + 1, 0, + 0, 1, + $x, $y + ); + } + + public function transform($a, $b, $c, $d, $e, $f) + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + + $this->canvas->transform(array($a, $b, $c, $d, $e, $f)); + } + + public function beginPath() + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + // TODO: Implement beginPath() method. + } + + public function closePath() + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + $this->canvas->closePath(); + } + + public function fillStroke(bool $close = false) + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + $this->canvas->fillStroke($close); + } + + public function clip() + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + $this->canvas->clip(); + } + + public function fillText($text, $x, $y, $maxWidth = null) + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + $this->canvas->addText($x, $y, $this->style->fontSize, $text); + } + + public function strokeText($text, $x, $y, $maxWidth = null) + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + $this->canvas->addText($x, $y, $this->style->fontSize, $text); + } + + public function drawImage($image, $sx, $sy, $sw = null, $sh = null, $dx = null, $dy = null, $dw = null, $dh = null) + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + + if (strpos($image, "data:") === 0) { + $parts = explode(',', $image, 2); + + $data = $parts[1]; + $base64 = false; + + $token = strtok($parts[0], ';'); + while ($token !== false) { + if ($token == 'base64') { + $base64 = true; + } + + $token = strtok(';'); + } + + if ($base64) { + $data = base64_decode($data); + } + } + else { + $data = file_get_contents($image); + } + + $image = tempnam(sys_get_temp_dir(), "svg"); + file_put_contents($image, $data); + + $img = $this->image($image, $sx, $sy, $sw, $sh, "normal"); + + + unlink($image); + } + + public static function getimagesize($filename) + { + static $cache = array(); + + if (isset($cache[$filename])) { + return $cache[$filename]; + } + + list($width, $height, $type) = getimagesize($filename); + + if ($width == null || $height == null) { + $data = file_get_contents($filename, null, null, 0, 26); + + if (substr($data, 0, 2) === "BM") { + $meta = unpack('vtype/Vfilesize/Vreserved/Voffset/Vheadersize/Vwidth/Vheight', $data); + $width = (int)$meta['width']; + $height = (int)$meta['height']; + $type = IMAGETYPE_BMP; + } + } + + return $cache[$filename] = array($width, $height, $type); + } + + function image($img, $x, $y, $w, $h, $resolution = "normal") + { + list($width, $height, $type) = $this->getimagesize($img); + + switch ($type) { + case IMAGETYPE_JPEG: + $this->canvas->addJpegFromFile($img, $x, $y - $h, $w, $h); + break; + + case IMAGETYPE_GIF: + case IMAGETYPE_BMP: + // @todo use cache for BMP and GIF + $img = $this->_convert_gif_bmp_to_png($img, $type); + + case IMAGETYPE_PNG: + $this->canvas->addPngFromFile($img, $x, $y - $h, $w, $h); + break; + + default: + } + } + + public function lineTo($x, $y) + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + $this->canvas->lineTo($x, $y); + } + + public function moveTo($x, $y) + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + $this->canvas->moveTo($x, $y); + } + + public function quadraticCurveTo($cpx, $cpy, $x, $y) + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + + // FIXME not accurate + $this->canvas->quadTo($cpx, $cpy, $x, $y); + } + + public function bezierCurveTo($cp1x, $cp1y, $cp2x, $cp2y, $x, $y) + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + $this->canvas->curveTo($cp1x, $cp1y, $cp2x, $cp2y, $x, $y); + } + + public function arcTo($x1, $y1, $x2, $y2, $radius) + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + } + + public function arc($x, $y, $radius, $startAngle, $endAngle, $anticlockwise = false) + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + $this->canvas->ellipse($x, $y, $radius, $radius, 0, 8, $startAngle, $endAngle, false, false, false, true); + } + + public function circle($x, $y, $radius) + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + $this->canvas->ellipse($x, $y, $radius, $radius, 0, 8, 0, 360, true, false, false, false); + } + + public function ellipse($x, $y, $radiusX, $radiusY, $rotation, $startAngle, $endAngle, $anticlockwise) + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + $this->canvas->ellipse($x, $y, $radiusX, $radiusY, 0, 8, 0, 360, false, false, false, false); + } + + public function fillRect($x, $y, $w, $h) + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + $this->rect($x, $y, $w, $h); + $this->fill(); + } + + public function rect($x, $y, $w, $h, $rx = 0, $ry = 0) + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + + $canvas = $this->canvas; + + if ($rx <= 0.000001/* && $ry <= 0.000001*/) { + $canvas->rect($x, $y, $w, $h); + + return; + } + + $rx = min($rx, $w / 2); + $rx = min($rx, $h / 2); + + /* Define a path for a rectangle with corners rounded by a given radius. + * Start from the lower left corner and proceed counterclockwise. + */ + $this->moveTo($x + $rx, $y); + + /* Start of the arc segment in the lower right corner */ + $this->lineTo($x + $w - $rx, $y); + + /* Arc segment in the lower right corner */ + $this->arc($x + $w - $rx, $y + $rx, $rx, 270, 360); + + /* Start of the arc segment in the upper right corner */ + $this->lineTo($x + $w, $y + $h - $rx ); + + /* Arc segment in the upper right corner */ + $this->arc($x + $w - $rx, $y + $h - $rx, $rx, 0, 90); + + /* Start of the arc segment in the upper left corner */ + $this->lineTo($x + $rx, $y + $h); + + /* Arc segment in the upper left corner */ + $this->arc($x + $rx, $y + $h - $rx, $rx, 90, 180); + + /* Start of the arc segment in the lower left corner */ + $this->lineTo($x , $y + $rx); + + /* Arc segment in the lower left corner */ + $this->arc($x + $rx, $y + $rx, $rx, 180, 270); + } + + public function fill() + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + $this->canvas->fill(); + } + + public function strokeRect($x, $y, $w, $h) + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + $this->rect($x, $y, $w, $h); + $this->stroke(); + } + + public function stroke(bool $close = false) + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + $this->canvas->stroke($close); + } + + public function endPath() + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + $this->canvas->endPath(); + } + + public function measureText($text) + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + $style = $this->getStyle(); + $this->setFont($style->fontFamily, $style->fontStyle, $style->fontWeight); + + return $this->canvas->getTextWidth($this->getStyle()->fontSize, $text); + } + + public function getStyle() + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + return $this->style; + } + + public function setStyle(Style $style) + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + + $this->style = $style; + $canvas = $this->canvas; + + if (is_array($style->stroke) && $stroke = $style->stroke) { + $canvas->setStrokeColor(array((float)$stroke[0]/255, (float)$stroke[1]/255, (float)$stroke[2]/255), true); + } + + if (is_array($style->fill) && $fill = $style->fill) { + $canvas->setColor(array((float)$fill[0]/255, (float)$fill[1]/255, (float)$fill[2]/255), true); + } + + if ($fillRule = strtolower($style->fillRule)) { + $canvas->setFillRule($fillRule); + } + + $opacity = $style->opacity; + if ($opacity !== null && $opacity < 1.0) { + $canvas->setLineTransparency("Normal", $opacity); + $canvas->currentLineTransparency = null; + + $canvas->setFillTransparency("Normal", $opacity); + $canvas->currentFillTransparency = null; + } + else { + $fillOpacity = $style->fillOpacity; + if ($fillOpacity !== null && $fillOpacity < 1.0) { + $canvas->setFillTransparency("Normal", $fillOpacity); + $canvas->currentFillTransparency = null; + } + + $strokeOpacity = $style->strokeOpacity; + if ($strokeOpacity !== null && $strokeOpacity < 1.0) { + $canvas->setLineTransparency("Normal", $strokeOpacity); + $canvas->currentLineTransparency = null; + } + } + + $dashArray = null; + if ($style->strokeDasharray) { + $dashArray = preg_split('/\s*,\s*/', $style->strokeDasharray); + } + + + $phase=0; + if ($style->strokeDashoffset) { + $phase = $style->strokeDashoffset; + } + + + $canvas->setLineStyle( + $style->strokeWidth, + $style->strokeLinecap, + $style->strokeLinejoin, + $dashArray, + $phase + ); + + $this->setFont($style->fontFamily, $style->fontStyle, $style->fontWeight); + } + + public function setFont($family, $style, $weight) + { + $map = [ + "serif" => "times", + "sans-serif" => "helvetica", + "fantasy" => "symbol", + "cursive" => "times", + "monospace" => "courier" + ]; + + $styleMap = [ + "courier" => [ + "" => "Courier", + "b" => "Courier-Bold", + "i" => "Courier-Oblique", + "bi" => "Courier-BoldOblique", + ], + "helvetica" => [ + "" => "Helvetica", + "b" => "Helvetica-Bold", + "i" => "Helvetica-Oblique", + "bi" => "Helvetica-BoldOblique", + ], + "symbol" => [ + "" => "Symbol" + ], + "times" => [ + "" => "Times-Roman", + "b" => "Times-Bold", + "i" => "Times-Italic", + "bi" => "Times-BoldItalic", + ], + ]; + + $family_lc = strtolower($family); + if (isset($map[$family_lc])) { + $family = $map[$family_lc]; + } + + if (isset($styleMap[$family])) { + $key = ""; + + $weight = strtolower($weight); + if ($weight === "bold" || $weight === "bolder" || (is_numeric($weight) && $weight >= 600)) { + $key .= "b"; + } + + $style = strtolower($style); + if ($style === "italic" || $style === "oblique") { + $key .= "i"; + } + + if (isset($styleMap[$family][$key])) { + $family = $styleMap[$family][$key]; + } + } + + $this->canvas->selectFont("$family.afm"); + } +} diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Surface/SurfaceInterface.php b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Surface/SurfaceInterface.php new file mode 100644 index 0000000..25b3001 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Surface/SurfaceInterface.php @@ -0,0 +1,90 @@ + + * @license GNU LGPLv3+ http://www.gnu.org/copyleft/lesser.html + */ + +namespace Svg\Surface; + +use Svg\Style; + +/** + * Interface Surface, like CanvasRenderingContext2D + * + * @package Svg + */ +interface SurfaceInterface +{ + public function save(); + + public function restore(); + + // transformations (default transform is the identity matrix) + public function scale($x, $y); + + public function rotate($angle); + + public function translate($x, $y); + + public function transform($a, $b, $c, $d, $e, $f); + + // path ends + public function beginPath(); + + public function closePath(); + + public function fill(); + + public function stroke(bool $close = false); + + public function endPath(); + + public function fillStroke(bool $close = false); + + public function clip(); + + // text (see also the CanvasDrawingStyles interface) + public function fillText($text, $x, $y, $maxWidth = null); + + public function strokeText($text, $x, $y, $maxWidth = null); + + public function measureText($text); + + // drawing images + public function drawImage($image, $sx, $sy, $sw = null, $sh = null, $dx = null, $dy = null, $dw = null, $dh = null); + + // paths + public function lineTo($x, $y); + + public function moveTo($x, $y); + + public function quadraticCurveTo($cpx, $cpy, $x, $y); + + public function bezierCurveTo($cp1x, $cp1y, $cp2x, $cp2y, $x, $y); + + public function arcTo($x1, $y1, $x2, $y2, $radius); + + public function circle($x, $y, $radius); + + public function arc($x, $y, $radius, $startAngle, $endAngle, $anticlockwise = false); + + public function ellipse($x, $y, $radiusX, $radiusY, $rotation, $startAngle, $endAngle, $anticlockwise); + + // Rectangle + public function rect($x, $y, $w, $h, $rx = 0, $ry = 0); + + public function fillRect($x, $y, $w, $h); + + public function strokeRect($x, $y, $w, $h); + + public function setStyle(Style $style); + + /** + * @return Style + */ + public function getStyle(); + + public function setFont($family, $style, $weight); +} diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Surface/SurfacePDFLib.php b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Surface/SurfacePDFLib.php new file mode 100644 index 0000000..3d25aef --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Surface/SurfacePDFLib.php @@ -0,0 +1,430 @@ + + * @license GNU LGPLv3+ http://www.gnu.org/copyleft/lesser.html + */ + +namespace Svg\Surface; + +use Svg\Style; +use Svg\Document; + +class SurfacePDFLib implements SurfaceInterface +{ + const DEBUG = false; + + private $canvas; + + private $width; + private $height; + + /** @var Style */ + private $style; + + public function __construct(Document $doc, $canvas = null) + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + + $dimensions = $doc->getDimensions(); + $w = $dimensions["width"]; + $h = $dimensions["height"]; + + if (!$canvas) { + $canvas = new \PDFlib(); + + /* all strings are expected as utf8 */ + $canvas->set_option("stringformat=utf8"); + $canvas->set_option("errorpolicy=return"); + + /* open new PDF file; insert a file name to create the PDF on disk */ + if ($canvas->begin_document("", "") == 0) { + die("Error: " . $canvas->get_errmsg()); + } + $canvas->set_info("Creator", "PDFlib starter sample"); + $canvas->set_info("Title", "starter_graphics"); + + $canvas->begin_page_ext($w, $h, ""); + } + + // Flip PDF coordinate system so that the origin is in + // the top left rather than the bottom left + $canvas->setmatrix( + 1, 0, + 0, -1, + 0, $h + ); + + $this->width = $w; + $this->height = $h; + + $this->canvas = $canvas; + } + + function out() + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + + $this->canvas->end_page_ext(""); + $this->canvas->end_document(""); + + return $this->canvas->get_buffer(); + } + + public function save() + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + $this->canvas->save(); + } + + public function restore() + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + $this->canvas->restore(); + } + + public function scale($x, $y) + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + $this->canvas->scale($x, $y); + } + + public function rotate($angle) + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + $this->canvas->rotate($angle); + } + + public function translate($x, $y) + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + $this->canvas->translate($x, $y); + } + + public function transform($a, $b, $c, $d, $e, $f) + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + $this->canvas->concat($a, $b, $c, $d, $e, $f); + } + + public function beginPath() + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + // TODO: Implement beginPath() method. + } + + public function closePath() + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + $this->canvas->closepath(); + } + + public function fillStroke(bool $close = false) + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + if ($close) { + $this->canvas->closepath_fill_stroke(); + } else { + $this->canvas->fill_stroke(); + } + } + + public function clip() + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + $this->canvas->clip(); + } + + public function fillText($text, $x, $y, $maxWidth = null) + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + $this->canvas->set_text_pos($x, $y); + $this->canvas->show($text); + } + + public function strokeText($text, $x, $y, $maxWidth = null) + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + // TODO: Implement drawImage() method. + } + + public function drawImage($image, $sx, $sy, $sw = null, $sh = null, $dx = null, $dy = null, $dw = null, $dh = null) + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + + if (strpos($image, "data:") === 0) { + $data = substr($image, strpos($image, ";") + 1); + if (strpos($data, "base64") === 0) { + $data = base64_decode(substr($data, 7)); + } + } + else { + $data = file_get_contents($image); + } + + $image = tempnam(sys_get_temp_dir(), "svg"); + file_put_contents($image, $data); + + $img = $this->canvas->load_image("auto", $image, ""); + + $sy = $sy - $sh; + $this->canvas->fit_image($img, $sx, $sy, 'boxsize={' . "$sw $sh" . '} fitmethod=entire'); + + unlink($image); + } + + public function lineTo($x, $y) + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + $this->canvas->lineto($x, $y); + } + + public function moveTo($x, $y) + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + $this->canvas->moveto($x, $y); + } + + public function quadraticCurveTo($cpx, $cpy, $x, $y) + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + + // FIXME not accurate + $this->canvas->curveTo($cpx, $cpy, $cpx, $cpy, $x, $y); + } + + public function bezierCurveTo($cp1x, $cp1y, $cp2x, $cp2y, $x, $y) + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + $this->canvas->curveto($cp1x, $cp1y, $cp2x, $cp2y, $x, $y); + } + + public function arcTo($x1, $y1, $x2, $y2, $radius) + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + } + + public function arc($x, $y, $radius, $startAngle, $endAngle, $anticlockwise = false) + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + $this->canvas->arc($x, $y, $radius, $startAngle, $endAngle); + } + + public function circle($x, $y, $radius) + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + $this->canvas->circle($x, $y, $radius); + } + + public function ellipse($x, $y, $radiusX, $radiusY, $rotation, $startAngle, $endAngle, $anticlockwise) + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + $this->canvas->ellipse($x, $y, $radiusX, $radiusY); + } + + public function fillRect($x, $y, $w, $h) + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + $this->rect($x, $y, $w, $h); + $this->fill(); + } + + public function rect($x, $y, $w, $h, $rx = 0, $ry = 0) + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + + $canvas = $this->canvas; + + if ($rx <= 0.000001/* && $ry <= 0.000001*/) { + $canvas->rect($x, $y, $w, $h); + + return; + } + + /* Define a path for a rectangle with corners rounded by a given radius. + * Start from the lower left corner and proceed counterclockwise. + */ + $canvas->moveto($x + $rx, $y); + + /* Start of the arc segment in the lower right corner */ + $canvas->lineto($x + $w - $rx, $y); + + /* Arc segment in the lower right corner */ + $canvas->arc($x + $w - $rx, $y + $rx, $rx, 270, 360); + + /* Start of the arc segment in the upper right corner */ + $canvas->lineto($x + $w, $y + $h - $rx ); + + /* Arc segment in the upper right corner */ + $canvas->arc($x + $w - $rx, $y + $h - $rx, $rx, 0, 90); + + /* Start of the arc segment in the upper left corner */ + $canvas->lineto($x + $rx, $y + $h); + + /* Arc segment in the upper left corner */ + $canvas->arc($x + $rx, $y + $h - $rx, $rx, 90, 180); + + /* Start of the arc segment in the lower left corner */ + $canvas->lineto($x , $y + $rx); + + /* Arc segment in the lower left corner */ + $canvas->arc($x + $rx, $y + $rx, $rx, 180, 270); + } + + public function fill() + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + $this->canvas->fill(); + } + + public function strokeRect($x, $y, $w, $h) + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + $this->rect($x, $y, $w, $h); + $this->stroke(); + } + + public function stroke(bool $close = false) + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + if ($close) { + $this->canvas->closepath_stroke(); + } else { + $this->canvas->stroke(); + } + } + + public function endPath() + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + $this->canvas->endPath(); + } + + public function measureText($text) + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + $style = $this->getStyle(); + $font = $this->getFont($style->fontFamily, $style->fontStyle); + + return $this->canvas->stringwidth($text, $font, $this->getStyle()->fontSize); + } + + public function getStyle() + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + return $this->style; + } + + public function setStyle(Style $style) + { + if (self::DEBUG) echo __FUNCTION__ . "\n"; + + $this->style = $style; + $canvas = $this->canvas; + + if (is_array($style->stroke) && $stroke = $style->stroke) { + $canvas->setcolor( + "stroke", + "rgb", + $stroke[0] / 255, + $stroke[1] / 255, + $stroke[2] / 255, + null + ); + } + + if (is_array($style->fill) && $fill = $style->fill) { + $canvas->setcolor( + "fill", + "rgb", + $fill[0] / 255, + $fill[1] / 255, + $fill[2] / 255, + null + ); + } + + if ($fillRule = strtolower($style->fillRule)) { + $map = array( + "nonzero" => "winding", + "evenodd" => "evenodd", + ); + + if (isset($map[$fillRule])) { + $fillRule = $map[$fillRule]; + + $canvas->set_parameter("fillrule", $fillRule); + } + } + + $opts = array(); + if ($style->strokeWidth > 0.000001) { + $opts[] = "linewidth=$style->strokeWidth"; + } + + if (in_array($style->strokeLinecap, array("butt", "round", "projecting"))) { + $opts[] = "linecap=$style->strokeLinecap"; + } + + if (in_array($style->strokeLinejoin, array("miter", "round", "bevel"))) { + $opts[] = "linejoin=$style->strokeLinejoin"; + } + + $canvas->set_graphics_option(implode(" ", $opts)); + + $opts = array(); + $opacity = $style->opacity; + if ($opacity !== null && $opacity < 1.0) { + $opts[] = "opacityfill=$opacity"; + $opts[] = "opacitystroke=$opacity"; + } + else { + $fillOpacity = $style->fillOpacity; + if ($fillOpacity !== null && $fillOpacity < 1.0) { + $opts[] = "opacityfill=$fillOpacity"; + } + + $strokeOpacity = $style->strokeOpacity; + if ($strokeOpacity !== null && $strokeOpacity < 1.0) { + $opts[] = "opacitystroke=$strokeOpacity"; + } + } + + if (count($opts)) { + $gs = $canvas->create_gstate(implode(" ", $opts)); + $canvas->set_gstate($gs); + } + + $font = $this->getFont($style->fontFamily, $style->fontStyle); + if ($font) { + $canvas->setfont($font, $style->fontSize); + } + } + + private function getFont($family, $style) + { + $map = array( + "serif" => "Times", + "sans-serif" => "Helvetica", + "fantasy" => "Symbol", + "cursive" => "Times", + "monospace" => "Courier", + + "arial" => "Helvetica", + "verdana" => "Helvetica", + ); + + $family = strtolower($family); + if (isset($map[$family])) { + $family = $map[$family]; + } + + return $this->canvas->load_font($family, "unicode", "fontstyle=$style"); + } + + public function setFont($family, $style, $weight) + { + // TODO: Implement setFont() method. + } +} diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Tag/AbstractTag.php b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Tag/AbstractTag.php new file mode 100644 index 0000000..9fa6793 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Tag/AbstractTag.php @@ -0,0 +1,236 @@ + + * @license GNU LGPLv3+ http://www.gnu.org/copyleft/lesser.html + */ + +namespace Svg\Tag; + +use Svg\CssLength; +use Svg\Document; +use Svg\Style; + +abstract class AbstractTag +{ + /** @var Document */ + protected $document; + + public $tagName; + + /** @var Style */ + protected $style; + + protected $attributes = array(); + + protected $hasShape = true; + + /** @var self[] */ + protected $children = array(); + + public function __construct(Document $document, $tagName) + { + $this->document = $document; + $this->tagName = $tagName; + } + + public function getDocument(){ + return $this->document; + } + + /** + * @return Group|null + */ + public function getParentGroup() { + $stack = $this->getDocument()->getStack(); + for ($i = count($stack)-2; $i >= 0; $i--) { + $tag = $stack[$i]; + + if ($tag instanceof Group || $tag instanceof Document) { + return $tag; + } + } + + return null; + } + + public function handle($attributes) + { + $this->attributes = $attributes; + + if (!$this->getDocument()->inDefs) { + $this->before($attributes); + $this->start($attributes); + } + } + + public function handleEnd() + { + if (!$this->getDocument()->inDefs) { + $this->end(); + $this->after(); + } + } + + protected function before($attributes) + { + } + + protected function start($attributes) + { + } + + protected function end() + { + } + + protected function after() + { + } + + public function getAttributes() + { + return $this->attributes; + } + + protected function setStyle(Style $style) + { + $this->style = $style; + + if ($style->display === "none") { + $this->hasShape = false; + } + } + + /** + * @return Style + */ + public function getStyle() + { + return $this->style; + } + + /** + * Make a style object from the tag and its attributes + * + * @param array $attributes + * + * @return Style + */ + protected function makeStyle($attributes) { + $style = new Style(); + $style->inherit($this); + $style->fromStyleSheets($this, $attributes); + $style->fromAttributes($attributes); + + return $style; + } + + protected function applyTransform($attributes) + { + + if (isset($attributes["transform"])) { + $surface = $this->document->getSurface(); + + $transform = $attributes["transform"]; + + $matches = array(); + preg_match_all( + '/(matrix|translate|scale|rotate|skew|skewX|skewY)\((.*?)\)/is', + $transform, + $matches, + PREG_SET_ORDER + ); + + $transformations = array(); + foreach ($matches as $match) { + $arguments = preg_split('/[ ,]+/', $match[2]); + array_unshift($arguments, $match[1]); + $transformations[] = $arguments; + } + + foreach ($transformations as $t) { + switch ($t[0]) { + case "matrix": + $surface->transform($t[1], $t[2], $t[3], $t[4], $t[5], $t[6]); + break; + + case "translate": + $surface->translate($t[1], isset($t[2]) ? $t[2] : 0); + break; + + case "scale": + $surface->scale($t[1], isset($t[2]) ? $t[2] : $t[1]); + break; + + case "rotate": + if (isset($t[2])) { + $t[3] = isset($t[3]) ? $t[3] : 0; + $surface->translate($t[2], $t[3]); + $surface->rotate($t[1]); + $surface->translate(-$t[2], -$t[3]); + } else { + $surface->rotate($t[1]); + } + break; + + case "skewX": + $tan_x = tan(deg2rad($t[1])); + $surface->transform(1, 0, $tan_x, 1, 0, 0); + break; + + case "skewY": + $tan_y = tan(deg2rad($t[1])); + $surface->transform(1, $tan_y, 0, 1, 0, 0); + break; + } + } + } + } + + /** + * Convert the given size for the context of this current tag. + * Takes a pixel-based reference, which is usually specific to the context of the size, + * but the actual reference size will be decided based upon the unit used. + * + * @param string $size + * @param float $pxReference + * + * @return float + */ + protected function convertSize(string $size, float $pxReference): float + { + $length = new CssLength($size); + $reference = $pxReference; + $defaultFontSize = 12; + + switch ($length->getUnit()) { + case "em": + $reference = $this->style->fontSize ?? $defaultFontSize; + break; + case "rem": + $reference = $this->document->style->fontSize ?? $defaultFontSize; + break; + case "ex": + case "ch": + $emRef = $this->style->fontSize ?? $defaultFontSize; + $reference = $emRef * 0.5; + break; + case "vw": + $reference = $this->getDocument()->getWidth(); + break; + case "vh": + $reference = $this->getDocument()->getHeight(); + break; + case "vmin": + $reference = min($this->getDocument()->getHeight(), $this->getDocument()->getWidth()); + break; + case "vmax": + $reference = max($this->getDocument()->getHeight(), $this->getDocument()->getWidth()); + break; + } + + return (new CssLength($size))->toPixels($reference); + } +} diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Tag/Anchor.php b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Tag/Anchor.php new file mode 100644 index 0000000..6979495 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Tag/Anchor.php @@ -0,0 +1,14 @@ + + * @license GNU LGPLv3+ http://www.gnu.org/copyleft/lesser.html + */ + +namespace Svg\Tag; + +class Anchor extends Group +{ + +} diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Tag/Circle.php b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Tag/Circle.php new file mode 100644 index 0000000..e504ffe --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Tag/Circle.php @@ -0,0 +1,36 @@ + + * @license GNU LGPLv3+ http://www.gnu.org/copyleft/lesser.html + */ + +namespace Svg\Tag; + +use Svg\Style; + +class Circle extends Shape +{ + protected $cx = 0; + protected $cy = 0; + protected $r; + + public function start($attributes) + { + if (isset($attributes['cx'])) { + $width = $this->document->getWidth(); + $this->cx = $this->convertSize($attributes['cx'], $width); + } + if (isset($attributes['cy'])) { + $height = $this->document->getHeight(); + $this->cy = $this->convertSize($attributes['cy'], $height); + } + if (isset($attributes['r'])) { + $diagonal = $this->document->getDiagonal(); + $this->r = $this->convertSize($attributes['r'], $diagonal); + } + + $this->document->getSurface()->circle($this->cx, $this->cy, $this->r); + } +} diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Tag/ClipPath.php b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Tag/ClipPath.php new file mode 100644 index 0000000..46722f9 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Tag/ClipPath.php @@ -0,0 +1,33 @@ + + * @license GNU LGPLv3+ http://www.gnu.org/copyleft/lesser.html + */ + +namespace Svg\Tag; + +use Svg\Style; + +class ClipPath extends AbstractTag +{ + protected function before($attributes) + { + $surface = $this->document->getSurface(); + + $surface->save(); + + $style = $this->makeStyle($attributes); + + $this->setStyle($style); + $surface->setStyle($style); + + $this->applyTransform($attributes); + } + + protected function after() + { + $this->document->getSurface()->restore(); + } +} diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Tag/Ellipse.php b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Tag/Ellipse.php new file mode 100644 index 0000000..42891e0 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Tag/Ellipse.php @@ -0,0 +1,42 @@ + + * @license GNU LGPLv3+ http://www.gnu.org/copyleft/lesser.html + */ + +namespace Svg\Tag; + +use Svg\Style; + +class Ellipse extends Shape +{ + protected $cx = 0; + protected $cy = 0; + protected $rx = 0; + protected $ry = 0; + + public function start($attributes) + { + parent::start($attributes); + + $width = $this->document->getWidth(); + $height = $this->document->getHeight(); + + if (isset($attributes['cx'])) { + $this->cx = $this->convertSize($attributes['cx'], $width); + } + if (isset($attributes['cy'])) { + $this->cy = $this->convertSize($attributes['cy'], $height); + } + if (isset($attributes['rx'])) { + $this->rx = $this->convertSize($attributes['rx'], $width); + } + if (isset($attributes['ry'])) { + $this->ry = $this->convertSize($attributes['ry'], $height); + } + + $this->document->getSurface()->ellipse($this->cx, $this->cy, $this->rx, $this->ry, 0, 0, 360, false); + } +} diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Tag/Group.php b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Tag/Group.php new file mode 100644 index 0000000..bacb385 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Tag/Group.php @@ -0,0 +1,33 @@ + + * @license GNU LGPLv3+ http://www.gnu.org/copyleft/lesser.html + */ + +namespace Svg\Tag; + +use Svg\Style; + +class Group extends AbstractTag +{ + protected function before($attributes) + { + $surface = $this->document->getSurface(); + + $surface->save(); + + $style = $this->makeStyle($attributes); + + $this->setStyle($style); + $surface->setStyle($style); + + $this->applyTransform($attributes); + } + + protected function after() + { + $this->document->getSurface()->restore(); + } +} diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Tag/Image.php b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Tag/Image.php new file mode 100644 index 0000000..bda17ea --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Tag/Image.php @@ -0,0 +1,68 @@ + + * @license GNU LGPLv3+ http://www.gnu.org/copyleft/lesser.html + */ + +namespace Svg\Tag; + +use Svg\Style; + +class Image extends AbstractTag +{ + protected $x = 0; + protected $y = 0; + protected $width = 0; + protected $height = 0; + protected $href = null; + + protected function before($attributes) + { + parent::before($attributes); + + $surface = $this->document->getSurface(); + $surface->save(); + + $this->applyTransform($attributes); + } + + public function start($attributes) + { + $height = $this->document->getHeight(); + $width = $this->document->getWidth(); + $this->y = $height; + + if (isset($attributes['x'])) { + $this->x = $this->convertSize($attributes['x'], $width); + } + if (isset($attributes['y'])) { + $this->y = $height - $this->convertSize($attributes['y'], $height); + } + + if (isset($attributes['width'])) { + $this->width = $this->convertSize($attributes['width'], $width); + } + if (isset($attributes['height'])) { + $this->height = $this->convertSize($attributes['height'], $height); + } + + if (isset($attributes['xlink:href'])) { + $this->href = $attributes['xlink:href']; + } + + if (isset($attributes['href'])) { + $this->href = $attributes['href']; + } + + $this->document->getSurface()->transform(1, 0, 0, -1, 0, $height); + + $this->document->getSurface()->drawImage($this->href, $this->x, $this->y, $this->width, $this->height); + } + + protected function after() + { + $this->document->getSurface()->restore(); + } +} diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Tag/Line.php b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Tag/Line.php new file mode 100644 index 0000000..fb3b64c --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Tag/Line.php @@ -0,0 +1,43 @@ + + * @license GNU LGPLv3+ http://www.gnu.org/copyleft/lesser.html + */ + +namespace Svg\Tag; + +use Svg\Style; + +class Line extends Shape +{ + protected $x1 = 0; + protected $y1 = 0; + + protected $x2 = 0; + protected $y2 = 0; + + public function start($attributes) + { + $height = $this->document->getHeight(); + $width = $this->document->getWidth(); + + if (isset($attributes['x1'])) { + $this->x1 = $this->convertSize($attributes['x1'], $width); + } + if (isset($attributes['y1'])) { + $this->y1 = $this->convertSize($attributes['y1'], $height); + } + if (isset($attributes['x2'])) { + $this->x2 = $this->convertSize($attributes['x2'], $width); + } + if (isset($attributes['y2'])) { + $this->y2 = $this->convertSize($attributes['y2'], $height); + } + + $surface = $this->document->getSurface(); + $surface->moveTo($this->x1, $this->y1); + $surface->lineTo($this->x2, $this->y2); + } +} diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Tag/LinearGradient.php b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Tag/LinearGradient.php new file mode 100644 index 0000000..c5e6397 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Tag/LinearGradient.php @@ -0,0 +1,83 @@ + + * @license GNU LGPLv3+ http://www.gnu.org/copyleft/lesser.html + */ + +namespace Svg\Tag; + + +use Svg\Gradient; +use Svg\Style; + +class LinearGradient extends AbstractTag +{ + protected $x1; + protected $y1; + protected $x2; + protected $y2; + + /** @var Gradient\Stop[] */ + protected $stops = array(); + + public function start($attributes) + { + parent::start($attributes); + + if (isset($attributes['x1'])) { + $this->x1 = $attributes['x1']; + } + if (isset($attributes['y1'])) { + $this->y1 = $attributes['y1']; + } + if (isset($attributes['x2'])) { + $this->x2 = $attributes['x2']; + } + if (isset($attributes['y2'])) { + $this->y2 = $attributes['y2']; + } + } + + public function getStops() { + if (empty($this->stops)) { + foreach ($this->children as $_child) { + if ($_child->tagName != "stop") { + continue; + } + + $_stop = new Gradient\Stop(); + $_attributes = $_child->attributes; + + // Style + if (isset($_attributes["style"])) { + $_style = Style::parseCssStyle($_attributes["style"]); + + if (isset($_style["stop-color"])) { + $_stop->color = Style::parseColor($_style["stop-color"]); + } + + if (isset($_style["stop-opacity"])) { + $_stop->opacity = max(0, min(1.0, $_style["stop-opacity"])); + } + } + + // Attributes + if (isset($_attributes["offset"])) { + $_stop->offset = $_attributes["offset"]; + } + if (isset($_attributes["stop-color"])) { + $_stop->color = Style::parseColor($_attributes["stop-color"]); + } + if (isset($_attributes["stop-opacity"])) { + $_stop->opacity = max(0, min(1.0, $_attributes["stop-opacity"])); + } + + $this->stops[] = $_stop; + } + } + + return $this->stops; + } +} diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Tag/Path.php b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Tag/Path.php new file mode 100644 index 0000000..3dce7a6 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Tag/Path.php @@ -0,0 +1,576 @@ + + * @license GNU LGPLv3+ http://www.gnu.org/copyleft/lesser.html + */ + +namespace Svg\Tag; + +use Svg\Surface\SurfaceInterface; + +class Path extends Shape +{ + // kindly borrowed from fabric.util.parsePath. + /* @see https://github.com/fabricjs/fabric.js/blob/master/src/util/path.js#L664 */ + const NUMBER_PATTERN = '([-+]?(?:\d*\.\d+|\d+\.?)(?:[eE][-+]?\d+)?)\s*'; + const COMMA_PATTERN = '(?:\s+,?\s*|,\s*)?'; + const FLAG_PATTERN = '([01])'; + const ARC_REGEXP = '/' + . self::NUMBER_PATTERN + . self::COMMA_PATTERN + . self::NUMBER_PATTERN + . self::COMMA_PATTERN + . self::NUMBER_PATTERN + . self::COMMA_PATTERN + . self::FLAG_PATTERN + . self::COMMA_PATTERN + . self::FLAG_PATTERN + . self::COMMA_PATTERN + . self::NUMBER_PATTERN + . self::COMMA_PATTERN + . self::NUMBER_PATTERN + . '/'; + + static $commandLengths = array( + 'm' => 2, + 'l' => 2, + 'h' => 1, + 'v' => 1, + 'c' => 6, + 's' => 4, + 'q' => 4, + 't' => 2, + 'a' => 7, + ); + + static $repeatedCommands = array( + 'm' => 'l', + 'M' => 'L', + ); + + public static function parse(string $commandSequence): array + { + $commands = array(); + preg_match_all('/([MZLHVCSQTAmzlhvcsqta])([eE ,\-.\d]+)*/', $commandSequence, $commands, PREG_SET_ORDER); + + $path = array(); + foreach ($commands as $c) { + if (count($c) == 3) { + $commandLower = strtolower($c[1]); + + // arcs have special flags that apparently don't require spaces. + if ($commandLower === 'a' && preg_match_all(static::ARC_REGEXP, $c[2], $matches, PREG_PATTERN_ORDER)) { + $numberOfMatches = count($matches[0]); + for ($k = 0; $k < $numberOfMatches; ++$k) { + $path[] = [ + $c[1], + $matches[1][$k], + $matches[2][$k], + $matches[3][$k], + $matches[4][$k], + $matches[5][$k], + $matches[6][$k], + $matches[7][$k], + ]; + } + continue; + } + + $arguments = array(); + preg_match_all('/([-+]?((\d+\.\d+)|((\d+)|(\.\d+)))(?:e[-+]?\d+)?)/i', $c[2], $arguments, PREG_PATTERN_ORDER); + $item = $arguments[0]; + + if ( + isset(self::$commandLengths[$commandLower]) && + ($commandLength = self::$commandLengths[$commandLower]) && + count($item) > $commandLength + ) { + $repeatedCommand = isset(self::$repeatedCommands[$c[1]]) ? self::$repeatedCommands[$c[1]] : $c[1]; + $command = $c[1]; + + for ($k = 0, $klen = count($item); $k < $klen; $k += $commandLength) { + $_item = array_slice($item, $k, $k + $commandLength); + array_unshift($_item, $command); + $path[] = $_item; + + $command = $repeatedCommand; + } + } else { + array_unshift($item, $c[1]); + $path[] = $item; + } + + } else { + $item = array($c[1]); + + $path[] = $item; + } + } + + return $path; + } + + public function start($attributes) + { + if (!isset($attributes['d'])) { + $this->hasShape = false; + + return; + } + + $path = static::parse($attributes['d']); + $surface = $this->document->getSurface(); + + // From https://github.com/kangax/fabric.js/blob/master/src/shapes/path.class.js + $current = null; // current instruction + $previous = null; + $subpathStartX = 0; + $subpathStartY = 0; + $x = 0; // current x + $y = 0; // current y + $controlX = 0; // current control point x + $controlY = 0; // current control point y + $tempX = null; + $tempY = null; + $tempControlX = null; + $tempControlY = null; + $l = 0; //-((this.width / 2) + $this.pathOffset.x), + $t = 0; //-((this.height / 2) + $this.pathOffset.y), + + foreach ($path as $current) { + switch ($current[0]) { // first letter + case 'l': // lineto, relative + $x += $current[1]; + $y += $current[2]; + $surface->lineTo($x + $l, $y + $t); + break; + + case 'L': // lineto, absolute + $x = $current[1]; + $y = $current[2]; + $surface->lineTo($x + $l, $y + $t); + break; + + case 'h': // horizontal lineto, relative + $x += $current[1]; + $surface->lineTo($x + $l, $y + $t); + break; + + case 'H': // horizontal lineto, absolute + $x = $current[1]; + $surface->lineTo($x + $l, $y + $t); + break; + + case 'v': // vertical lineto, relative + $y += $current[1]; + $surface->lineTo($x + $l, $y + $t); + break; + + case 'V': // verical lineto, absolute + $y = $current[1]; + $surface->lineTo($x + $l, $y + $t); + break; + + case 'm': // moveTo, relative + $x += $current[1]; + $y += $current[2]; + $subpathStartX = $x; + $subpathStartY = $y; + $surface->moveTo($x + $l, $y + $t); + break; + + case 'M': // moveTo, absolute + $x = $current[1]; + $y = $current[2]; + $subpathStartX = $x; + $subpathStartY = $y; + $surface->moveTo($x + $l, $y + $t); + break; + + case 'c': // bezierCurveTo, relative + $tempX = $x + $current[5]; + $tempY = $y + $current[6]; + $controlX = $x + $current[3]; + $controlY = $y + $current[4]; + $surface->bezierCurveTo( + $x + $current[1] + $l, // x1 + $y + $current[2] + $t, // y1 + $controlX + $l, // x2 + $controlY + $t, // y2 + $tempX + $l, + $tempY + $t + ); + $x = $tempX; + $y = $tempY; + break; + + case 'C': // bezierCurveTo, absolute + $x = $current[5]; + $y = $current[6]; + $controlX = $current[3]; + $controlY = $current[4]; + $surface->bezierCurveTo( + $current[1] + $l, + $current[2] + $t, + $controlX + $l, + $controlY + $t, + $x + $l, + $y + $t + ); + break; + + case 's': // shorthand cubic bezierCurveTo, relative + + // transform to absolute x,y + $tempX = $x + $current[3]; + $tempY = $y + $current[4]; + + if (!preg_match('/[CcSs]/', $previous[0])) { + // If there is no previous command or if the previous command was not a C, c, S, or s, + // the control point is coincident with the current point + $controlX = $x; + $controlY = $y; + } else { + // calculate reflection of previous control points + $controlX = 2 * $x - $controlX; + $controlY = 2 * $y - $controlY; + } + + $surface->bezierCurveTo( + $controlX + $l, + $controlY + $t, + $x + $current[1] + $l, + $y + $current[2] + $t, + $tempX + $l, + $tempY + $t + ); + // set control point to 2nd one of this command + // "... the first control point is assumed to be + // the reflection of the second control point on + // the previous command relative to the current point." + $controlX = $x + $current[1]; + $controlY = $y + $current[2]; + + $x = $tempX; + $y = $tempY; + break; + + case 'S': // shorthand cubic bezierCurveTo, absolute + $tempX = $current[3]; + $tempY = $current[4]; + + if (!preg_match('/[CcSs]/', $previous[0])) { + // If there is no previous command or if the previous command was not a C, c, S, or s, + // the control point is coincident with the current point + $controlX = $x; + $controlY = $y; + } else { + // calculate reflection of previous control points + $controlX = 2 * $x - $controlX; + $controlY = 2 * $y - $controlY; + } + + $surface->bezierCurveTo( + $controlX + $l, + $controlY + $t, + $current[1] + $l, + $current[2] + $t, + $tempX + $l, + $tempY + $t + ); + $x = $tempX; + $y = $tempY; + + // set control point to 2nd one of this command + // "... the first control point is assumed to be + // the reflection of the second control point on + // the previous command relative to the current point." + $controlX = $current[1]; + $controlY = $current[2]; + + break; + + case 'q': // quadraticCurveTo, relative + // transform to absolute x,y + $tempX = $x + $current[3]; + $tempY = $y + $current[4]; + + $controlX = $x + $current[1]; + $controlY = $y + $current[2]; + + $surface->quadraticCurveTo( + $controlX + $l, + $controlY + $t, + $tempX + $l, + $tempY + $t + ); + $x = $tempX; + $y = $tempY; + break; + + case 'Q': // quadraticCurveTo, absolute + $tempX = $current[3]; + $tempY = $current[4]; + + $surface->quadraticCurveTo( + $current[1] + $l, + $current[2] + $t, + $tempX + $l, + $tempY + $t + ); + $x = $tempX; + $y = $tempY; + $controlX = $current[1]; + $controlY = $current[2]; + break; + + case 't': // shorthand quadraticCurveTo, relative + + // transform to absolute x,y + $tempX = $x + $current[1]; + $tempY = $y + $current[2]; + + // calculate reflection of previous control points + if (preg_match('/[QqT]/', $previous[0])) { + $controlX = 2 * $x - $controlX; + $controlY = 2 * $y - $controlY; + } elseif ($previous[0] === 't') { + $controlX = 2 * $x - $tempControlX; + $controlY = 2 * $y - $tempControlY; + } else { + $controlX = $x; + $controlY = $y; + } + + $tempControlX = $controlX; + $tempControlY = $controlY; + + $surface->quadraticCurveTo( + $controlX + $l, + $controlY + $t, + $tempX + $l, + $tempY + $t + ); + $x = $tempX; + $y = $tempY; + break; + + case 'T': + $tempX = $current[1]; + $tempY = $current[2]; + + // calculate reflection of previous control points + if (preg_match('/[QqTt]/', $previous[0])) { + $controlX = 2 * $x - $controlX; + $controlY = 2 * $y - $controlY; + } else { + $controlX = $x; + $controlY = $y; + } + + $surface->quadraticCurveTo( + $controlX + $l, + $controlY + $t, + $tempX + $l, + $tempY + $t + ); + $x = $tempX; + $y = $tempY; + break; + + case 'a': + $this->drawArc( + $surface, + $x + $l, + $y + $t, + array( + $current[1], + $current[2], + $current[3], + $current[4], + $current[5], + $current[6] + $x + $l, + $current[7] + $y + $t + ) + ); + $x += $current[6]; + $y += $current[7]; + break; + + case 'A': + // TODO: optimize this + $this->drawArc( + $surface, + $x + $l, + $y + $t, + array( + $current[1], + $current[2], + $current[3], + $current[4], + $current[5], + $current[6] + $l, + $current[7] + $t + ) + ); + $x = $current[6]; + $y = $current[7]; + break; + + case 'z': + case 'Z': + $x = $subpathStartX; + $y = $subpathStartY; + $surface->closePath(); + break; + } + $previous = $current; + } + } + + function drawArc(SurfaceInterface $surface, $fx, $fy, $coords) + { + $rx = $coords[0]; + $ry = $coords[1]; + $rot = $coords[2]; + $large = $coords[3]; + $sweep = $coords[4]; + $tx = $coords[5]; + $ty = $coords[6]; + $segs = array( + array(), + array(), + array(), + array(), + ); + + $toX = $tx - $fx; + $toY = $ty - $fy; + + if ($toX + $toY === 0) { + return; + } + + $segsNorm = $this->arcToSegments($toX, $toY, $rx, $ry, $large, $sweep, $rot); + + for ($i = 0, $len = count($segsNorm); $i < $len; $i++) { + $segs[$i][0] = $segsNorm[$i][0] + $fx; + $segs[$i][1] = $segsNorm[$i][1] + $fy; + $segs[$i][2] = $segsNorm[$i][2] + $fx; + $segs[$i][3] = $segsNorm[$i][3] + $fy; + $segs[$i][4] = $segsNorm[$i][4] + $fx; + $segs[$i][5] = $segsNorm[$i][5] + $fy; + + call_user_func_array(array($surface, "bezierCurveTo"), $segs[$i]); + } + } + + function arcToSegments($toX, $toY, $rx, $ry, $large, $sweep, $rotateX) + { + $th = $rotateX * M_PI / 180; + $sinTh = sin($th); + $cosTh = cos($th); + $fromX = 0; + $fromY = 0; + + $rx = abs($rx); + $ry = abs($ry); + + $px = -$cosTh * $toX * 0.5 - $sinTh * $toY * 0.5; + $py = -$cosTh * $toY * 0.5 + $sinTh * $toX * 0.5; + $rx2 = $rx * $rx; + $ry2 = $ry * $ry; + $py2 = $py * $py; + $px2 = $px * $px; + $pl = $rx2 * $ry2 - $rx2 * $py2 - $ry2 * $px2; + $root = 0; + + if ($pl < 0) { + $s = sqrt(1 - $pl / ($rx2 * $ry2)); + $rx *= $s; + $ry *= $s; + } else { + $root = ($large == $sweep ? -1.0 : 1.0) * sqrt($pl / ($rx2 * $py2 + $ry2 * $px2)); + } + + $cx = $root * $rx * $py / $ry; + $cy = -$root * $ry * $px / $rx; + $cx1 = $cosTh * $cx - $sinTh * $cy + $toX * 0.5; + $cy1 = $sinTh * $cx + $cosTh * $cy + $toY * 0.5; + $mTheta = $this->calcVectorAngle(1, 0, ($px - $cx) / $rx, ($py - $cy) / $ry); + $dtheta = $this->calcVectorAngle(($px - $cx) / $rx, ($py - $cy) / $ry, (-$px - $cx) / $rx, (-$py - $cy) / $ry); + + if ($sweep == 0 && $dtheta > 0) { + $dtheta -= 2 * M_PI; + } else { + if ($sweep == 1 && $dtheta < 0) { + $dtheta += 2 * M_PI; + } + } + + // $Convert $into $cubic $bezier $segments <= 90deg + $segments = ceil(abs($dtheta / M_PI * 2)); + $result = array(); + $mDelta = $dtheta / $segments; + $mT = 8 / 3 * sin($mDelta / 4) * sin($mDelta / 4) / sin($mDelta / 2); + $th3 = $mTheta + $mDelta; + + for ($i = 0; $i < $segments; $i++) { + $result[$i] = $this->segmentToBezier( + $mTheta, + $th3, + $cosTh, + $sinTh, + $rx, + $ry, + $cx1, + $cy1, + $mT, + $fromX, + $fromY + ); + $fromX = $result[$i][4]; + $fromY = $result[$i][5]; + $mTheta = $th3; + $th3 += $mDelta; + } + + return $result; + } + + function segmentToBezier($th2, $th3, $cosTh, $sinTh, $rx, $ry, $cx1, $cy1, $mT, $fromX, $fromY) + { + $costh2 = cos($th2); + $sinth2 = sin($th2); + $costh3 = cos($th3); + $sinth3 = sin($th3); + $toX = $cosTh * $rx * $costh3 - $sinTh * $ry * $sinth3 + $cx1; + $toY = $sinTh * $rx * $costh3 + $cosTh * $ry * $sinth3 + $cy1; + $cp1X = $fromX + $mT * (-$cosTh * $rx * $sinth2 - $sinTh * $ry * $costh2); + $cp1Y = $fromY + $mT * (-$sinTh * $rx * $sinth2 + $cosTh * $ry * $costh2); + $cp2X = $toX + $mT * ($cosTh * $rx * $sinth3 + $sinTh * $ry * $costh3); + $cp2Y = $toY + $mT * ($sinTh * $rx * $sinth3 - $cosTh * $ry * $costh3); + + return array( + $cp1X, + $cp1Y, + $cp2X, + $cp2Y, + $toX, + $toY + ); + } + + function calcVectorAngle($ux, $uy, $vx, $vy) + { + $ta = atan2($uy, $ux); + $tb = atan2($vy, $vx); + if ($tb >= $ta) { + return $tb - $ta; + } else { + return 2 * M_PI - ($ta - $tb); + } + } +} diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Tag/Polygon.php b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Tag/Polygon.php new file mode 100644 index 0000000..e7ca92a --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Tag/Polygon.php @@ -0,0 +1,42 @@ + + * @license GNU LGPLv3+ http://www.gnu.org/copyleft/lesser.html + */ + +namespace Svg\Tag; + +class Polygon extends Shape +{ + public function start($attributes) + { + $tmp = array(); + preg_match_all('/([\-]*[0-9\.]+)/', $attributes['points'], $tmp, PREG_PATTERN_ORDER); + + $points = $tmp[0]; + $count = count($points); + + if ($count < 4) { + // nothing to draw + return; + } + + $surface = $this->document->getSurface(); + list($x, $y) = $points; + $surface->moveTo($x, $y); + + for ($i = 2; $i < $count; $i += 2) { + if ($i + 1 === $count) { + // invalid trailing point + continue; + } + $x = $points[$i]; + $y = $points[$i + 1]; + $surface->lineTo($x, $y); + } + + $surface->closePath(); + } +} diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Tag/Polyline.php b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Tag/Polyline.php new file mode 100644 index 0000000..45e2131 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Tag/Polyline.php @@ -0,0 +1,40 @@ + + * @license GNU LGPLv3+ http://www.gnu.org/copyleft/lesser.html + */ + +namespace Svg\Tag; + +class Polyline extends Shape +{ + public function start($attributes) + { + $tmp = array(); + preg_match_all('/([\-]*[0-9\.]+)/', $attributes['points'], $tmp, PREG_PATTERN_ORDER); + + $points = $tmp[0]; + $count = count($points); + + if ($count < 4) { + // nothing to draw + return; + } + + $surface = $this->document->getSurface(); + list($x, $y) = $points; + $surface->moveTo($x, $y); + + for ($i = 2; $i < $count; $i += 2) { + if ($i + 1 === $count) { + // invalid trailing point + continue; + } + $x = $points[$i]; + $y = $points[$i + 1]; + $surface->lineTo($x, $y); + } + } +} diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Tag/RadialGradient.php b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Tag/RadialGradient.php new file mode 100644 index 0000000..a9de62f --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Tag/RadialGradient.php @@ -0,0 +1,17 @@ + + * @license GNU LGPLv3+ http://www.gnu.org/copyleft/lesser.html + */ + +namespace Svg\Tag; + +class RadialGradient extends AbstractTag +{ + public function start($attributes) + { + + } +} diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Tag/Rect.php b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Tag/Rect.php new file mode 100644 index 0000000..b5f3f77 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Tag/Rect.php @@ -0,0 +1,50 @@ + + * @license GNU LGPLv3+ http://www.gnu.org/copyleft/lesser.html + */ + +namespace Svg\Tag; + +use Svg\Style; + +class Rect extends Shape +{ + protected $x = 0; + protected $y = 0; + protected $width = 0; + protected $height = 0; + protected $rx = 0; + protected $ry = 0; + + public function start($attributes) + { + $width = $this->document->getWidth(); + $height = $this->document->getHeight(); + + if (isset($attributes['x'])) { + $this->x = $this->convertSize($attributes['x'], $width); + } + if (isset($attributes['y'])) { + $this->y = $this->convertSize($attributes['y'], $height); + } + + if (isset($attributes['width'])) { + $this->width = $this->convertSize($attributes['width'], $width); + } + if (isset($attributes['height'])) { + $this->height = $this->convertSize($attributes['height'], $height); + } + + if (isset($attributes['rx'])) { + $this->rx = $attributes['rx']; + } + if (isset($attributes['ry'])) { + $this->ry = $attributes['ry']; + } + + $this->document->getSurface()->rect($this->x, $this->y, $this->width, $this->height, $this->rx, $this->ry); + } +} diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Tag/Shape.php b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Tag/Shape.php new file mode 100644 index 0000000..767e81d --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Tag/Shape.php @@ -0,0 +1,63 @@ + + * @license GNU LGPLv3+ http://www.gnu.org/copyleft/lesser.html + */ + +namespace Svg\Tag; + +use Svg\Style; + +class Shape extends AbstractTag +{ + protected function before($attributes) + { + $surface = $this->document->getSurface(); + + $surface->save(); + + $style = $this->makeStyle($attributes); + + $this->setStyle($style); + $surface->setStyle($style); + + $this->applyTransform($attributes); + } + + protected function after() + { + $surface = $this->document->getSurface(); + + if ($this->hasShape) { + $style = $surface->getStyle(); + + $fill = $style->fill && is_array($style->fill); + $stroke = $style->stroke && is_array($style->stroke); + + if ($fill) { + if ($stroke) { + $surface->fillStroke(false); + } else { +// if (is_string($style->fill)) { +// /** @var LinearGradient|RadialGradient $gradient */ +// $gradient = $this->getDocument()->getDef($style->fill); +// +// var_dump($gradient->getStops()); +// } + + $surface->fill(); + } + } + elseif ($stroke) { + $surface->stroke(false); + } + else { + $surface->endPath(); + } + } + + $surface->restore(); + } +} \ No newline at end of file diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Tag/Stop.php b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Tag/Stop.php new file mode 100644 index 0000000..22c9a98 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Tag/Stop.php @@ -0,0 +1,17 @@ + + * @license GNU LGPLv3+ http://www.gnu.org/copyleft/lesser.html + */ + +namespace Svg\Tag; + +class Stop extends AbstractTag +{ + public function start($attributes) + { + + } +} diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Tag/StyleTag.php b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Tag/StyleTag.php new file mode 100644 index 0000000..309de01 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Tag/StyleTag.php @@ -0,0 +1,27 @@ + + * @license GNU LGPLv3+ http://www.gnu.org/copyleft/lesser.html + */ + +namespace Svg\Tag; + +use Sabberworm\CSS; + +class StyleTag extends AbstractTag +{ + protected $text = ""; + + public function end() + { + $parser = new CSS\Parser($this->text); + $this->document->appendStyleSheet($parser->parse()); + } + + public function appendText($text) + { + $this->text .= $text; + } +} diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Tag/Text.php b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Tag/Text.php new file mode 100644 index 0000000..80e08a6 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Tag/Text.php @@ -0,0 +1,72 @@ + + * @license GNU LGPLv3+ http://www.gnu.org/copyleft/lesser.html + */ + +namespace Svg\Tag; + +use Svg\Style; + +class Text extends Shape +{ + protected $x = 0; + protected $y = 0; + protected $text = ""; + + public function start($attributes) + { + $height = $this->document->getHeight(); + $this->y = $height; + + if (isset($attributes['x'])) { + $width = $this->document->getWidth(); + $this->x = $this->convertSize($attributes['x'], $width); + } + if (isset($attributes['y'])) { + $this->y = $height - $this->convertSize($attributes['y'], $height); + } + + $this->document->getSurface()->transform(1, 0, 0, -1, 0, $height); + } + + public function end() + { + $surface = $this->document->getSurface(); + $x = $this->x; + $y = $this->y; + $style = $surface->getStyle(); + $surface->setFont($style->fontFamily, $style->fontStyle, $style->fontWeight); + + switch ($style->textAnchor) { + case "middle": + $width = $surface->measureText($this->text); + $x -= $width / 2; + break; + + case "end": + $width = $surface->measureText($this->text); + $x -= $width; + break; + } + + $surface->fillText($this->getText(), $x, $y); + } + + protected function after() + { + $this->document->getSurface()->restore(); + } + + public function appendText($text) + { + $this->text .= $text; + } + + public function getText() + { + return trim($this->text); + } +} diff --git a/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Tag/UseTag.php b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Tag/UseTag.php new file mode 100644 index 0000000..c5f00ea --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phenx/php-svg-lib/src/Svg/Tag/UseTag.php @@ -0,0 +1,102 @@ + + * @license GNU LGPLv3+ http://www.gnu.org/copyleft/lesser.html + */ + +namespace Svg\Tag; + +class UseTag extends AbstractTag +{ + protected $x = 0; + protected $y = 0; + protected $width; + protected $height; + + /** @var AbstractTag */ + protected $reference; + + protected function before($attributes) + { + if (isset($attributes['x'])) { + $this->x = $attributes['x']; + } + if (isset($attributes['y'])) { + $this->y = $attributes['y']; + } + + if (isset($attributes['width'])) { + $this->width = $attributes['width']; + } + if (isset($attributes['height'])) { + $this->height = $attributes['height']; + } + + parent::before($attributes); + + $document = $this->getDocument(); + + $link = $attributes["href"] ?? $attributes["xlink:href"]; + $this->reference = $document->getDef($link); + + if ($this->reference) { + $this->reference->before($attributes); + } + + $surface = $document->getSurface(); + $surface->save(); + + $surface->translate($this->x, $this->y); + } + + protected function after() { + parent::after(); + + if ($this->reference) { + $this->reference->after(); + } + + $this->getDocument()->getSurface()->restore(); + } + + public function handle($attributes) + { + parent::handle($attributes); + + if (!$this->reference) { + return; + } + + $mergedAttributes = $this->reference->attributes; + $attributesToNotMerge = ['x', 'y', 'width', 'height']; + foreach ($attributes as $attrKey => $attrVal) { + if (!in_array($attrKey, $attributesToNotMerge) && !isset($mergedAttributes[$attrKey])) { + $mergedAttributes[$attrKey] = $attrVal; + } + } + + $this->reference->handle($mergedAttributes); + + foreach ($this->reference->children as $_child) { + $_attributes = array_merge($_child->attributes, $mergedAttributes); + $_child->handle($_attributes); + } + } + + public function handleEnd() + { + parent::handleEnd(); + + if (!$this->reference) { + return; + } + + $this->reference->handleEnd(); + + foreach ($this->reference->children as $_child) { + $_child->handleEnd(); + } + } +} diff --git a/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/COMMITMENT b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/COMMITMENT new file mode 100644 index 0000000..a687e0d --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/COMMITMENT @@ -0,0 +1,46 @@ +GPL Cooperation Commitment +Version 1.0 + +Before filing or continuing to prosecute any legal proceeding or claim +(other than a Defensive Action) arising from termination of a Covered +License, we commit to extend to the person or entity ('you') accused +of violating the Covered License the following provisions regarding +cure and reinstatement, taken from GPL version 3. As used here, the +term 'this License' refers to the specific Covered License being +enforced. + + However, if you cease all violation of this License, then your + license from a particular copyright holder is reinstated (a) + provisionally, unless and until the copyright holder explicitly + and finally terminates your license, and (b) permanently, if the + copyright holder fails to notify you of the violation by some + reasonable means prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is + reinstated permanently if the copyright holder notifies you of the + violation by some reasonable means, this is the first time you + have received notice of violation of this License (for any work) + from that copyright holder, and you cure the violation prior to 30 + days after your receipt of the notice. + +We intend this Commitment to be irrevocable, and binding and +enforceable against us and assignees of or successors to our +copyrights. + +Definitions + +'Covered License' means the GNU General Public License, version 2 +(GPLv2), the GNU Lesser General Public License, version 2.1 +(LGPLv2.1), or the GNU Library General Public License, version 2 +(LGPLv2), all as published by the Free Software Foundation. + +'Defensive Action' means a legal proceeding or claim that We bring +against you in response to a prior proceeding or claim initiated by +you or your affiliate. + +'We' means each contributor to this repository as of the date of +inclusion of this file, including subsidiaries of a corporate +contributor. + +This work is available under a Creative Commons Attribution-ShareAlike +4.0 International license (https://creativecommons.org/licenses/by-sa/4.0/). diff --git a/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/LICENSE b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/LICENSE new file mode 100644 index 0000000..f166cc5 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/LICENSE @@ -0,0 +1,502 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! \ No newline at end of file diff --git a/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/README.md b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/README.md new file mode 100644 index 0000000..3bba826 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/README.md @@ -0,0 +1,230 @@ +[![SWUbanner](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/banner2-direct.svg)](https://supportukrainenow.org/) + +![PHPMailer](https://raw.github.com/PHPMailer/PHPMailer/master/examples/images/phpmailer.png) + +# PHPMailer – A full-featured email creation and transfer class for PHP + +[![Test status](https://github.com/PHPMailer/PHPMailer/workflows/Tests/badge.svg)](https://github.com/PHPMailer/PHPMailer/actions) +[![codecov.io](https://codecov.io/gh/PHPMailer/PHPMailer/branch/master/graph/badge.svg?token=iORZpwmYmM)](https://codecov.io/gh/PHPMailer/PHPMailer) +[![Latest Stable Version](https://poser.pugx.org/phpmailer/phpmailer/v/stable.svg)](https://packagist.org/packages/phpmailer/phpmailer) +[![Total Downloads](https://poser.pugx.org/phpmailer/phpmailer/downloads)](https://packagist.org/packages/phpmailer/phpmailer) +[![License](https://poser.pugx.org/phpmailer/phpmailer/license.svg)](https://packagist.org/packages/phpmailer/phpmailer) +[![API Docs](https://github.com/phpmailer/phpmailer/workflows/Docs/badge.svg)](https://phpmailer.github.io/PHPMailer/) +[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/PHPMailer/PHPMailer/badge)](https://api.securityscorecards.dev/projects/github.com/PHPMailer/PHPMailer) + +## Features +- Probably the world's most popular code for sending email from PHP! +- Used by many open-source projects: WordPress, Drupal, 1CRM, SugarCRM, Yii, Joomla! and many more +- Integrated SMTP support – send without a local mail server +- Send emails with multiple To, CC, BCC, and Reply-to addresses +- Multipart/alternative emails for mail clients that do not read HTML email +- Add attachments, including inline +- Support for UTF-8 content and 8bit, base64, binary, and quoted-printable encodings +- SMTP authentication with LOGIN, PLAIN, CRAM-MD5, and XOAUTH2 mechanisms over SMTPS and SMTP+STARTTLS transports +- Validates email addresses automatically +- Protects against header injection attacks +- Error messages in over 50 languages! +- DKIM and S/MIME signing support +- Compatible with PHP 5.5 and later, including PHP 8.2 +- Namespaced to prevent name clashes +- Much more! + +## Why you might need it +Many PHP developers need to send email from their code. The only PHP function that supports this directly is [`mail()`](https://www.php.net/manual/en/function.mail.php). However, it does not provide any assistance for making use of popular features such as encryption, authentication, HTML messages, and attachments. + +Formatting email correctly is surprisingly difficult. There are myriad overlapping (and conflicting) standards, requiring tight adherence to horribly complicated formatting and encoding rules – the vast majority of code that you'll find online that uses the `mail()` function directly is just plain wrong, if not unsafe! + +The PHP `mail()` function usually sends via a local mail server, typically fronted by a `sendmail` binary on Linux, BSD, and macOS platforms, however, Windows usually doesn't include a local mail server; PHPMailer's integrated SMTP client allows email sending on all platforms without needing a local mail server. Be aware though, that the `mail()` function should be avoided when possible; it's both faster and [safer](https://exploitbox.io/paper/Pwning-PHP-Mail-Function-For-Fun-And-RCE.html) to use SMTP to localhost. + +*Please* don't be tempted to do it yourself – if you don't use PHPMailer, there are many other excellent libraries that +you should look at before rolling your own. Try [SwiftMailer](https://swiftmailer.symfony.com/) +, [Laminas/Mail](https://docs.laminas.dev/laminas-mail/), [ZetaComponents](https://github.com/zetacomponents/Mail), etc. + +## License +This software is distributed under the [LGPL 2.1](http://www.gnu.org/licenses/lgpl-2.1.html) license, along with the [GPL Cooperation Commitment](https://gplcc.github.io/gplcc/). Please read [LICENSE](https://github.com/PHPMailer/PHPMailer/blob/master/LICENSE) for information on the software availability and distribution. + +## Installation & loading +PHPMailer is available on [Packagist](https://packagist.org/packages/phpmailer/phpmailer) (using semantic versioning), and installation via [Composer](https://getcomposer.org) is the recommended way to install PHPMailer. Just add this line to your `composer.json` file: + +```json +"phpmailer/phpmailer": "^6.7.1" +``` + +or run + +```sh +composer require phpmailer/phpmailer +``` + +Note that the `vendor` folder and the `vendor/autoload.php` script are generated by Composer; they are not part of PHPMailer. + +If you want to use the Gmail XOAUTH2 authentication class, you will also need to add a dependency on the `league/oauth2-client` package in your `composer.json`. + +Alternatively, if you're not using Composer, you +can [download PHPMailer as a zip file](https://github.com/PHPMailer/PHPMailer/archive/master.zip), (note that docs and examples are not included in the zip file), then copy the contents of the PHPMailer folder into one of the `include_path` directories specified in your PHP configuration and load each class file manually: + +```php +SMTPDebug = SMTP::DEBUG_SERVER; //Enable verbose debug output + $mail->isSMTP(); //Send using SMTP + $mail->Host = 'smtp.example.com'; //Set the SMTP server to send through + $mail->SMTPAuth = true; //Enable SMTP authentication + $mail->Username = 'user@example.com'; //SMTP username + $mail->Password = 'secret'; //SMTP password + $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; //Enable implicit TLS encryption + $mail->Port = 465; //TCP port to connect to; use 587 if you have set `SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS` + + //Recipients + $mail->setFrom('from@example.com', 'Mailer'); + $mail->addAddress('joe@example.net', 'Joe User'); //Add a recipient + $mail->addAddress('ellen@example.com'); //Name is optional + $mail->addReplyTo('info@example.com', 'Information'); + $mail->addCC('cc@example.com'); + $mail->addBCC('bcc@example.com'); + + //Attachments + $mail->addAttachment('/var/tmp/file.tar.gz'); //Add attachments + $mail->addAttachment('/tmp/image.jpg', 'new.jpg'); //Optional name + + //Content + $mail->isHTML(true); //Set email format to HTML + $mail->Subject = 'Here is the subject'; + $mail->Body = 'This is the HTML message body in bold!'; + $mail->AltBody = 'This is the body in plain text for non-HTML mail clients'; + + $mail->send(); + echo 'Message has been sent'; +} catch (Exception $e) { + echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}"; +} +``` + +You'll find plenty to play with in the [examples](https://github.com/PHPMailer/PHPMailer/tree/master/examples) folder, which covers many common scenarios including sending through Gmail, building contact forms, sending to mailing lists, and more. + +If you are re-using the instance (e.g. when sending to a mailing list), you may need to clear the recipient list to avoid sending duplicate messages. See [the mailing list example](https://github.com/PHPMailer/PHPMailer/blob/master/examples/mailing_list.phps) for further guidance. + +That's it. You should now be ready to use PHPMailer! + +## Localization +PHPMailer defaults to English, but in the [language](https://github.com/PHPMailer/PHPMailer/tree/master/language/) folder, you'll find many translations for PHPMailer error messages that you may encounter. Their filenames contain [ISO 639-1](http://en.wikipedia.org/wiki/ISO_639-1) language code for the translations, for example `fr` for French. To specify a language, you need to tell PHPMailer which one to use, like this: + +```php +//To load the French version +$mail->setLanguage('fr', '/optional/path/to/language/directory/'); +``` + +We welcome corrections and new languages – if you're looking for corrections, run the [PHPMailerLangTest.php](https://github.com/PHPMailer/PHPMailer/tree/master/test/PHPMailerLangTest.php) script in the tests folder and it will show any missing translations. + +## Documentation +Start reading at the [GitHub wiki](https://github.com/PHPMailer/PHPMailer/wiki). If you're having trouble, head for [the troubleshooting guide](https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting) as it's frequently updated. + +Examples of how to use PHPMailer for common scenarios can be found in the [examples](https://github.com/PHPMailer/PHPMailer/tree/master/examples) folder. If you're looking for a good starting point, we recommend you start with [the Gmail example](https://github.com/PHPMailer/PHPMailer/tree/master/examples/gmail.phps). + +To reduce PHPMailer's deployed code footprint, examples are not included if you load PHPMailer via Composer or via [GitHub's zip file download](https://github.com/PHPMailer/PHPMailer/archive/master.zip), so you'll need to either clone the git repository or use the above links to get to the examples directly. + +Complete generated API documentation is [available online](https://phpmailer.github.io/PHPMailer/). + +You can generate complete API-level documentation by running `phpdoc` in the top-level folder, and documentation will appear in the `docs` folder, though you'll need to have [PHPDocumentor](http://www.phpdoc.org) installed. You may find [the unit tests](https://github.com/PHPMailer/PHPMailer/blob/master/test/PHPMailerTest.php) a good reference for how to do various operations such as encryption. + +If the documentation doesn't cover what you need, search the [many questions on Stack Overflow](http://stackoverflow.com/questions/tagged/phpmailer), and before you ask a question about "SMTP Error: Could not connect to SMTP host.", [read the troubleshooting guide](https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting). + +## Tests +[PHPMailer tests](https://github.com/PHPMailer/PHPMailer/tree/master/test/) use PHPUnit 9, with [a polyfill](https://github.com/Yoast/PHPUnit-Polyfills) to let 9-style tests run on older PHPUnit and PHP versions. + +[![Test status](https://github.com/PHPMailer/PHPMailer/workflows/Tests/badge.svg)](https://github.com/PHPMailer/PHPMailer/actions) + +If this isn't passing, is there something you can do to help? + +## Security +Please disclose any vulnerabilities found responsibly – report security issues to the maintainers privately. + +See [SECURITY](https://github.com/PHPMailer/PHPMailer/tree/master/SECURITY.md) and [PHPMailer's security advisories on GitHub](https://github.com/PHPMailer/PHPMailer/security). + +## Contributing +Please submit bug reports, suggestions, and pull requests to the [GitHub issue tracker](https://github.com/PHPMailer/PHPMailer/issues). + +We're particularly interested in fixing edge cases, expanding test coverage, and updating translations. + +If you found a mistake in the docs, or want to add something, go ahead and amend the wiki – anyone can edit it. + +If you have git clones from prior to the move to the PHPMailer GitHub organisation, you'll need to update any remote URLs referencing the old GitHub location with a command like this from within your clone: + +```sh +git remote set-url upstream https://github.com/PHPMailer/PHPMailer.git +``` + +Please *don't* use the SourceForge or Google Code projects any more; they are obsolete and no longer maintained. + +## Sponsorship +Development time and resources for PHPMailer are provided by [Smartmessages.net](https://info.smartmessages.net/), the world's only privacy-first email marketing system. + +Smartmessages.net privacy-first email marketing logo + +Donations are very welcome, whether in beer 🍺, T-shirts 👕, or cold, hard cash 💰. Sponsorship through GitHub is a simple and convenient way to say "thank you" to PHPMailer's maintainers and contributors – just click the "Sponsor" button [on the project page](https://github.com/PHPMailer/PHPMailer). If your company uses PHPMailer, consider taking part in Tidelift's enterprise support programme. + +## PHPMailer For Enterprise + +Available as part of the Tidelift Subscription. + +The maintainers of PHPMailer and thousands of other packages are working with Tidelift to deliver commercial +support and maintenance for the open-source packages you use to build your applications. Save time, reduce risk, and +improve code health, while paying the maintainers of the exact packages you +use. [Learn more.](https://tidelift.com/subscription/pkg/packagist-phpmailer-phpmailer?utm_source=packagist-phpmailer-phpmailer&utm_medium=referral&utm_campaign=enterprise&utm_term=repo) + +## Changelog +See [changelog](changelog.md). + +## History +- PHPMailer was originally written in 2001 by Brent R. Matzelle as a [SourceForge project](http://sourceforge.net/projects/phpmailer/). +- [Marcus Bointon](https://github.com/Synchro) (`coolbru` on SF) and Andy Prevost (`codeworxtech`) took over the project in 2004. +- Became an Apache incubator project on Google Code in 2010, managed by Jim Jagielski. +- Marcus created [his fork on GitHub](https://github.com/Synchro/PHPMailer) in 2008. +- Jim and Marcus decide to join forces and use GitHub as the canonical and official repo for PHPMailer in 2013. +- PHPMailer moves to [the PHPMailer organisation](https://github.com/PHPMailer) on GitHub in 2013. + +### What's changed since moving from SourceForge? +- Official successor to the SourceForge and Google Code projects. +- Test suite. +- Continuous integration with GitHub Actions. +- Composer support. +- Public development. +- Additional languages and language strings. +- CRAM-MD5 authentication support. +- Preserves full repo history of authors, commits, and branches from the original SourceForge project. diff --git a/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/SECURITY.md b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/SECURITY.md new file mode 100644 index 0000000..035a87f --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/SECURITY.md @@ -0,0 +1,37 @@ +# Security notices relating to PHPMailer + +Please disclose any security issues or vulnerabilities found through [Tidelift's coordinated disclosure system](https://tidelift.com/security) or to the maintainers privately. + +PHPMailer 6.4.1 and earlier contain a vulnerability that can result in untrusted code being called (if such code is injected into the host project's scope by other means). If the `$patternselect` parameter to `validateAddress()` is set to `'php'` (the default, defined by `PHPMailer::$validator`), and the global namespace contains a function called `php`, it will be called in preference to the built-in validator of the same name. Mitigated in PHPMailer 6.5.0 by denying the use of simple strings as validator function names. Recorded as [CVE-2021-3603](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2021-3603). Reported by [Vikrant Singh Chauhan](mailto:vi@hackberry.xyz) via [huntr.dev](https://www.huntr.dev/). + +PHPMailer versions 6.4.1 and earlier contain a possible remote code execution vulnerability through the `$lang_path` parameter of the `setLanguage()` method. If the `$lang_path` parameter is passed unfiltered from user input, it can be set to [a UNC path](https://docs.microsoft.com/en-us/dotnet/standard/io/file-path-formats#unc-paths), and if an attacker is also able to persuade the server to load a file from that UNC path, a script file under their control may be executed. This vulnerability only applies to systems that resolve UNC paths, typically only Microsoft Windows. +PHPMailer 6.5.0 mitigates this by no longer treating translation files as PHP code, but by parsing their text content directly. This approach avoids the possibility of executing unknown code while retaining backward compatibility. This isn't ideal, so the current translation format is deprecated and will be replaced in the next major release. Recorded as [CVE-2021-34551](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2021-34551). Reported by [Jilin Diting Information Technology Co., Ltd](https://listensec.com) via Tidelift. + +PHPMailer versions between 6.1.8 and 6.4.0 contain a regression of the earlier CVE-2018-19296 object injection vulnerability as a result of [a fix for Windows UNC paths in 6.1.8](https://github.com/PHPMailer/PHPMailer/commit/e2e07a355ee8ff36aba21d0242c5950c56e4c6f9). Recorded as [CVE-2020-36326](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2020-36326). Reported by Fariskhi Vidyan via Tidelift. 6.4.1 fixes this issue, and also enforces stricter checks for URL schemes in local path contexts. + +PHPMailer versions 6.1.5 and earlier contain an output escaping bug that occurs in `Content-Type` and `Content-Disposition` when filenames passed into `addAttachment` and other methods that accept attachment names contain double quote characters, in contravention of RFC822 3.4.1. No specific vulnerability has been found relating to this, but it could allow file attachments to bypass attachment filters that are based on matching filename extensions. Recorded as [CVE-2020-13625](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2020-13625). Reported by Elar Lang of Clarified Security. + +PHPMailer versions prior to 6.0.6 and 5.2.27 are vulnerable to an object injection attack by passing `phar://` paths into `addAttachment()` and other functions that may receive unfiltered local paths, possibly leading to RCE. Recorded as [CVE-2018-19296](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2018-19296). See [this article](https://knasmueller.net/5-answers-about-php-phar-exploitation) for more info on this type of vulnerability. Mitigated by blocking the use of paths containing URL-protocol style prefixes such as `phar://`. Reported by Sehun Oh of cyberone.kr. + +PHPMailer versions prior to 5.2.24 (released July 26th 2017) have an XSS vulnerability in one of the code examples, [CVE-2017-11503](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2017-11503). The `code_generator.phps` example did not filter user input prior to output. This file is distributed with a `.phps` extension, so it it not normally executable unless it is explicitly renamed, and the file is not included when PHPMailer is loaded through composer, so it is safe by default. There was also an undisclosed potential XSS vulnerability in the default exception handler (unused by default). Patches for both issues kindly provided by Patrick Monnerat of the Fedora Project. + +PHPMailer versions prior to 5.2.22 (released January 9th 2017) have a local file disclosure vulnerability, [CVE-2017-5223](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2017-5223). If content passed into `msgHTML()` is sourced from unfiltered user input, relative paths can map to absolute local file paths and added as attachments. Also note that `addAttachment` (just like `file_get_contents`, `passthru`, `unlink`, etc) should not be passed user-sourced params either! Reported by Yongxiang Li of Asiasecurity. + +PHPMailer versions prior to 5.2.20 (released December 28th 2016) are vulnerable to [CVE-2016-10045](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2016-10045) a remote code execution vulnerability, responsibly reported by [Dawid Golunski](https://legalhackers.com/advisories/PHPMailer-Exploit-Remote-Code-Exec-CVE-2016-10045-Vuln-Patch-Bypass.html), and patched by Paul Buonopane (@Zenexer). + +PHPMailer versions prior to 5.2.18 (released December 2016) are vulnerable to [CVE-2016-10033](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2016-10033) a remote code execution vulnerability, responsibly reported by [Dawid Golunski](http://legalhackers.com/advisories/PHPMailer-Exploit-Remote-Code-Exec-CVE-2016-10033-Vuln.html). + +PHPMailer versions prior to 5.2.14 (released November 2015) are vulnerable to [CVE-2015-8476](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2015-8476) an SMTP CRLF injection bug permitting arbitrary message sending. + +PHPMailer versions prior to 5.2.10 (released May 2015) are vulnerable to [CVE-2008-5619](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2008-5619), a remote code execution vulnerability in the bundled html2text library. This file was removed in 5.2.10, so if you are using a version prior to that and make use of the html2text function, it's vitally important that you upgrade and remove this file. + +PHPMailer versions prior to 2.0.7 and 2.2.1 are vulnerable to [CVE-2012-0796](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2012-0796), an email header injection attack. + +Joomla 1.6.0 uses PHPMailer in an unsafe way, allowing it to reveal local file paths, reported in [CVE-2011-3747](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2011-3747). + +PHPMailer didn't sanitise the `$lang_path` parameter in `SetLanguage`. This wasn't a problem in itself, but some apps (PHPClassifieds, ATutor) also failed to sanitise user-provided parameters passed to it, permitting semi-arbitrary local file inclusion, reported in [CVE-2010-4914](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2010-4914), [CVE-2007-2021](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2007-2021) and [CVE-2006-5734](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2006-5734). + +PHPMailer 1.7.2 and earlier contained a possible DDoS vulnerability reported in [CVE-2005-1807](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2005-1807). + +PHPMailer 1.7 and earlier (June 2003) have a possible vulnerability in the `SendmailSend` method where shell commands may not be sanitised. Reported in [CVE-2007-3215](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2007-3215). + diff --git a/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/VERSION b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/VERSION new file mode 100644 index 0000000..1d42024 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/VERSION @@ -0,0 +1 @@ +6.7.1 \ No newline at end of file diff --git a/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/composer.json b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/composer.json new file mode 100644 index 0000000..37e3d6e --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/composer.json @@ -0,0 +1,78 @@ +{ + "name": "phpmailer/phpmailer", + "type": "library", + "description": "PHPMailer is a full-featured email creation and transfer class for PHP", + "authors": [ + { + "name": "Marcus Bointon", + "email": "phpmailer@synchromedia.co.uk" + }, + { + "name": "Jim Jagielski", + "email": "jimjag@gmail.com" + }, + { + "name": "Andy Prevost", + "email": "codeworxtech@users.sourceforge.net" + }, + { + "name": "Brent R. Matzelle" + } + ], + "funding": [ + { + "url": "https://github.com/Synchro", + "type": "github" + } + ], + "config": { + "allow-plugins": { + "dealerdirect/phpcodesniffer-composer-installer": true + } + }, + "require": { + "php": ">=5.5.0", + "ext-ctype": "*", + "ext-filter": "*", + "ext-hash": "*" + }, + "require-dev": { + "dealerdirect/phpcodesniffer-composer-installer": "^0.7.2", + "doctrine/annotations": "^1.2.6 || ^1.13.3", + "php-parallel-lint/php-console-highlighter": "^1.0.0", + "php-parallel-lint/php-parallel-lint": "^1.3.2", + "phpcompatibility/php-compatibility": "^9.3.5", + "roave/security-advisories": "dev-latest", + "squizlabs/php_codesniffer": "^3.7.1", + "yoast/phpunit-polyfills": "^1.0.4" + }, + "suggest": { + "ext-mbstring": "Needed to send email in multibyte encoding charset or decode encoded addresses", + "ext-openssl": "Needed for secure SMTP sending and DKIM signing", + "greew/oauth2-azure-provider": "Needed for Microsoft Azure XOAUTH2 authentication", + "hayageek/oauth2-yahoo": "Needed for Yahoo XOAUTH2 authentication", + "league/oauth2-google": "Needed for Google XOAUTH2 authentication", + "psr/log": "For optional PSR-3 debug logging", + "thenetworg/oauth2-azure": "Needed for Microsoft XOAUTH2 authentication", + "symfony/polyfill-mbstring": "To support UTF-8 if the Mbstring PHP extension is not enabled (^1.2)" + }, + "autoload": { + "psr-4": { + "PHPMailer\\PHPMailer\\": "src/" + } + }, + "autoload-dev": { + "psr-4": { + "PHPMailer\\Test\\": "test/" + } + }, + "license": "LGPL-2.1-only", + "scripts": { + "check": "./vendor/bin/phpcs", + "test": "./vendor/bin/phpunit --no-coverage", + "coverage": "./vendor/bin/phpunit", + "lint": [ + "@php ./vendor/php-parallel-lint/php-parallel-lint/parallel-lint . --show-deprecated -e php,phps --exclude vendor --exclude .git --exclude build" + ] + } +} diff --git a/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/get_oauth_token.php b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/get_oauth_token.php new file mode 100644 index 0000000..cda0445 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/get_oauth_token.php @@ -0,0 +1,182 @@ + + * @author Jim Jagielski (jimjag) + * @author Andy Prevost (codeworxtech) + * @author Brent R. Matzelle (original founder) + * @copyright 2012 - 2020 Marcus Bointon + * @copyright 2010 - 2012 Jim Jagielski + * @copyright 2004 - 2009 Andy Prevost + * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License + * @note This program is distributed in the hope that it will be useful - WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. + */ + +/** + * Get an OAuth2 token from an OAuth2 provider. + * * Install this script on your server so that it's accessible + * as [https/http]:////get_oauth_token.php + * e.g.: http://localhost/phpmailer/get_oauth_token.php + * * Ensure dependencies are installed with 'composer install' + * * Set up an app in your Google/Yahoo/Microsoft account + * * Set the script address as the app's redirect URL + * If no refresh token is obtained when running this file, + * revoke access to your app and run the script again. + */ + +namespace PHPMailer\PHPMailer; + +/** + * Aliases for League Provider Classes + * Make sure you have added these to your composer.json and run `composer install` + * Plenty to choose from here: + * @see http://oauth2-client.thephpleague.com/providers/thirdparty/ + */ +//@see https://github.com/thephpleague/oauth2-google +use League\OAuth2\Client\Provider\Google; +//@see https://packagist.org/packages/hayageek/oauth2-yahoo +use Hayageek\OAuth2\Client\Provider\Yahoo; +//@see https://github.com/stevenmaguire/oauth2-microsoft +use Stevenmaguire\OAuth2\Client\Provider\Microsoft; +//@see https://github.com/greew/oauth2-azure-provider +use Greew\OAuth2\Client\Provider\Azure; + +if (!isset($_GET['code']) && !isset($_POST['provider'])) { + ?> + + +
+

Select Provider

+ +
+ +
+ +
+ +
+

Enter id and secret

+

These details are obtained by setting up an app in your provider's developer console. +

+

ClientId:

+

ClientSecret:

+

TenantID (only relevant for Azure):

+ +
+ + + $clientId, + 'clientSecret' => $clientSecret, + 'redirectUri' => $redirectUri, + 'accessType' => 'offline' +]; + +$options = []; +$provider = null; + +switch ($providerName) { + case 'Google': + $provider = new Google($params); + $options = [ + 'scope' => [ + 'https://mail.google.com/' + ] + ]; + break; + case 'Yahoo': + $provider = new Yahoo($params); + break; + case 'Microsoft': + $provider = new Microsoft($params); + $options = [ + 'scope' => [ + 'wl.imap', + 'wl.offline_access' + ] + ]; + break; + case 'Azure': + $params['tenantId'] = $tenantId; + + $provider = new Azure($params); + $options = [ + 'scope' => [ + 'https://outlook.office.com/SMTP.Send', + 'offline_access' + ] + ]; + break; +} + +if (null === $provider) { + exit('Provider missing'); +} + +if (!isset($_GET['code'])) { + //If we don't have an authorization code then get one + $authUrl = $provider->getAuthorizationUrl($options); + $_SESSION['oauth2state'] = $provider->getState(); + header('Location: ' . $authUrl); + exit; + //Check given state against previously stored one to mitigate CSRF attack +} elseif (empty($_GET['state']) || ($_GET['state'] !== $_SESSION['oauth2state'])) { + unset($_SESSION['oauth2state']); + unset($_SESSION['provider']); + exit('Invalid state'); +} else { + unset($_SESSION['provider']); + //Try to get an access token (using the authorization code grant) + $token = $provider->getAccessToken( + 'authorization_code', + [ + 'code' => $_GET['code'] + ] + ); + //Use this to interact with an API on the users behalf + //Use this to get a new access token if the old one expires + echo 'Refresh Token: ', $token->getRefreshToken(); +} diff --git a/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-af.php b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-af.php new file mode 100644 index 0000000..0b2a72d --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-af.php @@ -0,0 +1,26 @@ + + */ + +$PHPMAILER_LANG['authenticate'] = 'خطأ SMTP : لا يمكن تأكيد الهوية.'; +$PHPMAILER_LANG['connect_host'] = 'خطأ SMTP: لا يمكن الاتصال بالخادم SMTP.'; +$PHPMAILER_LANG['data_not_accepted'] = 'خطأ SMTP: لم يتم قبول المعلومات .'; +$PHPMAILER_LANG['empty_message'] = 'نص الرسالة فارغ'; +$PHPMAILER_LANG['encoding'] = 'ترميز غير معروف: '; +$PHPMAILER_LANG['execute'] = 'لا يمكن تنفيذ : '; +$PHPMAILER_LANG['file_access'] = 'لا يمكن الوصول للملف: '; +$PHPMAILER_LANG['file_open'] = 'خطأ في الملف: لا يمكن فتحه: '; +$PHPMAILER_LANG['from_failed'] = 'خطأ على مستوى عنوان المرسل : '; +$PHPMAILER_LANG['instantiate'] = 'لا يمكن توفير خدمة البريد.'; +$PHPMAILER_LANG['invalid_address'] = 'الإرسال غير ممكن لأن عنوان البريد الإلكتروني غير صالح: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' برنامج الإرسال غير مدعوم.'; +$PHPMAILER_LANG['provide_address'] = 'يجب توفير عنوان البريد الإلكتروني لمستلم واحد على الأقل.'; +$PHPMAILER_LANG['recipients_failed'] = 'خطأ SMTP: الأخطاء التالية فشل في الارسال لكل من : '; +$PHPMAILER_LANG['signing'] = 'خطأ في التوقيع: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() غير ممكن.'; +$PHPMAILER_LANG['smtp_error'] = 'خطأ على مستوى الخادم SMTP: '; +$PHPMAILER_LANG['variable_set'] = 'لا يمكن تعيين أو إعادة تعيين متغير: '; +$PHPMAILER_LANG['extension_missing'] = 'الإضافة غير موجودة: '; diff --git a/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-az.php b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-az.php new file mode 100644 index 0000000..552167e --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-az.php @@ -0,0 +1,27 @@ + + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP Greška: Neuspjela prijava.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP Greška: Nije moguće spojiti se sa SMTP serverom.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Greška: Podatci nisu prihvaćeni.'; +$PHPMAILER_LANG['empty_message'] = 'Sadržaj poruke je prazan.'; +$PHPMAILER_LANG['encoding'] = 'Nepoznata kriptografija: '; +$PHPMAILER_LANG['execute'] = 'Nije moguće izvršiti naredbu: '; +$PHPMAILER_LANG['file_access'] = 'Nije moguće pristupiti datoteci: '; +$PHPMAILER_LANG['file_open'] = 'Nije moguće otvoriti datoteku: '; +$PHPMAILER_LANG['from_failed'] = 'SMTP Greška: Slanje sa navedenih e-mail adresa nije uspjelo: '; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP Greška: Slanje na navedene e-mail adrese nije uspjelo: '; +$PHPMAILER_LANG['instantiate'] = 'Ne mogu pokrenuti mail funkcionalnost.'; +$PHPMAILER_LANG['invalid_address'] = 'E-mail nije poslan. Neispravna e-mail adresa: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' mailer nije podržan.'; +$PHPMAILER_LANG['provide_address'] = 'Definišite barem jednu adresu primaoca.'; +$PHPMAILER_LANG['signing'] = 'Greška prilikom prijave: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'Spajanje na SMTP server nije uspjelo.'; +$PHPMAILER_LANG['smtp_error'] = 'SMTP greška: '; +$PHPMAILER_LANG['variable_set'] = 'Nije moguće postaviti varijablu ili je vratiti nazad: '; +$PHPMAILER_LANG['extension_missing'] = 'Nedostaje ekstenzija: '; diff --git a/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-be.php b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-be.php new file mode 100644 index 0000000..9e92dda --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-be.php @@ -0,0 +1,27 @@ + + */ + +$PHPMAILER_LANG['authenticate'] = 'Памылка SMTP: памылка ідэнтыфікацыі.'; +$PHPMAILER_LANG['connect_host'] = 'Памылка SMTP: нельга ўстанавіць сувязь з SMTP-серверам.'; +$PHPMAILER_LANG['data_not_accepted'] = 'Памылка SMTP: звесткі непрынятыя.'; +$PHPMAILER_LANG['empty_message'] = 'Пустое паведамленне.'; +$PHPMAILER_LANG['encoding'] = 'Невядомая кадыроўка тэксту: '; +$PHPMAILER_LANG['execute'] = 'Нельга выканаць каманду: '; +$PHPMAILER_LANG['file_access'] = 'Няма доступу да файла: '; +$PHPMAILER_LANG['file_open'] = 'Нельга адкрыць файл: '; +$PHPMAILER_LANG['from_failed'] = 'Няправільны адрас адпраўніка: '; +$PHPMAILER_LANG['instantiate'] = 'Нельга прымяніць функцыю mail().'; +$PHPMAILER_LANG['invalid_address'] = 'Нельга даслаць паведамленне, няправільны email атрымальніка: '; +$PHPMAILER_LANG['provide_address'] = 'Запоўніце, калі ласка, правільны email атрымальніка.'; +$PHPMAILER_LANG['mailer_not_supported'] = ' - паштовы сервер не падтрымліваецца.'; +$PHPMAILER_LANG['recipients_failed'] = 'Памылка SMTP: няправільныя атрымальнікі: '; +$PHPMAILER_LANG['signing'] = 'Памылка подпісу паведамлення: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'Памылка сувязі з SMTP-серверам.'; +$PHPMAILER_LANG['smtp_error'] = 'Памылка SMTP: '; +$PHPMAILER_LANG['variable_set'] = 'Нельга ўстанавіць або перамяніць значэнне пераменнай: '; +//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-bg.php b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-bg.php new file mode 100644 index 0000000..c41f675 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-bg.php @@ -0,0 +1,27 @@ + + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP грешка: Не може да се удостовери пред сървъра.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP грешка: Не може да се свърже с SMTP хоста.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP грешка: данните не са приети.'; +$PHPMAILER_LANG['empty_message'] = 'Съдържанието на съобщението е празно'; +$PHPMAILER_LANG['encoding'] = 'Неизвестно кодиране: '; +$PHPMAILER_LANG['execute'] = 'Не може да се изпълни: '; +$PHPMAILER_LANG['file_access'] = 'Няма достъп до файл: '; +$PHPMAILER_LANG['file_open'] = 'Файлова грешка: Не може да се отвори файл: '; +$PHPMAILER_LANG['from_failed'] = 'Следните адреси за подател са невалидни: '; +$PHPMAILER_LANG['instantiate'] = 'Не може да се инстанцира функцията mail.'; +$PHPMAILER_LANG['invalid_address'] = 'Невалиден адрес: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' - пощенски сървър не се поддържа.'; +$PHPMAILER_LANG['provide_address'] = 'Трябва да предоставите поне един email адрес за получател.'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP грешка: Следните адреси за Получател са невалидни: '; +$PHPMAILER_LANG['signing'] = 'Грешка при подписване: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP провален connect().'; +$PHPMAILER_LANG['smtp_error'] = 'SMTP сървърна грешка: '; +$PHPMAILER_LANG['variable_set'] = 'Не може да се установи или възстанови променлива: '; +$PHPMAILER_LANG['extension_missing'] = 'Липсва разширение: '; diff --git a/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-ca.php b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-ca.php new file mode 100644 index 0000000..3468485 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-ca.php @@ -0,0 +1,27 @@ + + */ + +$PHPMAILER_LANG['authenticate'] = 'Error SMTP: No s’ha pogut autenticar.'; +$PHPMAILER_LANG['connect_host'] = 'Error SMTP: No es pot connectar al servidor SMTP.'; +$PHPMAILER_LANG['data_not_accepted'] = 'Error SMTP: Dades no acceptades.'; +$PHPMAILER_LANG['empty_message'] = 'El cos del missatge està buit.'; +$PHPMAILER_LANG['encoding'] = 'Codificació desconeguda: '; +$PHPMAILER_LANG['execute'] = 'No es pot executar: '; +$PHPMAILER_LANG['file_access'] = 'No es pot accedir a l’arxiu: '; +$PHPMAILER_LANG['file_open'] = 'Error d’Arxiu: No es pot obrir l’arxiu: '; +$PHPMAILER_LANG['from_failed'] = 'La(s) següent(s) adreces de remitent han fallat: '; +$PHPMAILER_LANG['instantiate'] = 'No s’ha pogut crear una instància de la funció Mail.'; +$PHPMAILER_LANG['invalid_address'] = 'Adreça d’email invalida: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' mailer no està suportat'; +$PHPMAILER_LANG['provide_address'] = 'S’ha de proveir almenys una adreça d’email com a destinatari.'; +$PHPMAILER_LANG['recipients_failed'] = 'Error SMTP: Els següents destinataris han fallat: '; +$PHPMAILER_LANG['signing'] = 'Error al signar: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'Ha fallat el SMTP Connect().'; +$PHPMAILER_LANG['smtp_error'] = 'Error del servidor SMTP: '; +$PHPMAILER_LANG['variable_set'] = 'No s’ha pogut establir o restablir la variable: '; +//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-cs.php b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-cs.php new file mode 100644 index 0000000..e770a1a --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-cs.php @@ -0,0 +1,28 @@ + + * Rewrite and extension of the work by Mikael Stokkebro + * + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP fejl: Login mislykkedes.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP fejl: Forbindelse til SMTP serveren kunne ikke oprettes.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP fejl: Data blev ikke accepteret.'; +$PHPMAILER_LANG['empty_message'] = 'Meddelelsen er uden indhold'; +$PHPMAILER_LANG['encoding'] = 'Ukendt encode-format: '; +$PHPMAILER_LANG['execute'] = 'Kunne ikke afvikle: '; +$PHPMAILER_LANG['extension_missing'] = 'Udvidelse mangler: '; +$PHPMAILER_LANG['file_access'] = 'Kunne ikke tilgå filen: '; +$PHPMAILER_LANG['file_open'] = 'Fil fejl: Kunne ikke åbne filen: '; +$PHPMAILER_LANG['from_failed'] = 'Følgende afsenderadresse er forkert: '; +$PHPMAILER_LANG['instantiate'] = 'Email funktionen kunne ikke initialiseres.'; +$PHPMAILER_LANG['invalid_address'] = 'Udgyldig adresse: '; +$PHPMAILER_LANG['invalid_header'] = 'Ugyldig header navn eller værdi'; +$PHPMAILER_LANG['invalid_hostentry'] = 'Ugyldig hostentry: '; +$PHPMAILER_LANG['invalid_host'] = 'Ugyldig vært: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' mailer understøttes ikke.'; +$PHPMAILER_LANG['provide_address'] = 'Indtast mindst en modtagers email adresse.'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP fejl: Følgende modtagere fejlede: '; +$PHPMAILER_LANG['signing'] = 'Signeringsfejl: '; +$PHPMAILER_LANG['smtp_code'] = 'SMTP kode: '; +$PHPMAILER_LANG['smtp_code_ex'] = 'Yderligere SMTP info: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() fejlede.'; +$PHPMAILER_LANG['smtp_detail'] = 'Detalje: '; +$PHPMAILER_LANG['smtp_error'] = 'SMTP server fejl: '; +$PHPMAILER_LANG['variable_set'] = 'Kunne ikke definere eller nulstille variablen: '; diff --git a/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-de.php b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-de.php new file mode 100644 index 0000000..e7e59d2 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-de.php @@ -0,0 +1,28 @@ + + * @author Crystopher Glodzienski Cardoso + */ + +$PHPMAILER_LANG['authenticate'] = 'Error SMTP: Imposible autentificar.'; +$PHPMAILER_LANG['connect_host'] = 'Error SMTP: Imposible conectar al servidor SMTP.'; +$PHPMAILER_LANG['data_not_accepted'] = 'Error SMTP: Datos no aceptados.'; +$PHPMAILER_LANG['empty_message'] = 'El cuerpo del mensaje está vacío.'; +$PHPMAILER_LANG['encoding'] = 'Codificación desconocida: '; +$PHPMAILER_LANG['execute'] = 'Imposible ejecutar: '; +$PHPMAILER_LANG['file_access'] = 'Imposible acceder al archivo: '; +$PHPMAILER_LANG['file_open'] = 'Error de Archivo: Imposible abrir el archivo: '; +$PHPMAILER_LANG['from_failed'] = 'La(s) siguiente(s) direcciones de remitente fallaron: '; +$PHPMAILER_LANG['instantiate'] = 'Imposible crear una instancia de la función Mail.'; +$PHPMAILER_LANG['invalid_address'] = 'Imposible enviar: dirección de email inválido: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' mailer no está soportado.'; +$PHPMAILER_LANG['provide_address'] = 'Debe proporcionar al menos una dirección de email de destino.'; +$PHPMAILER_LANG['recipients_failed'] = 'Error SMTP: Los siguientes destinos fallaron: '; +$PHPMAILER_LANG['signing'] = 'Error al firmar: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() falló.'; +$PHPMAILER_LANG['smtp_error'] = 'Error del servidor SMTP: '; +$PHPMAILER_LANG['variable_set'] = 'No se pudo configurar la variable: '; +$PHPMAILER_LANG['extension_missing'] = 'Extensión faltante: '; +$PHPMAILER_LANG['smtp_code'] = 'Código del servidor SMTP: '; +$PHPMAILER_LANG['smtp_code_ex'] = 'Información adicional del servidor SMTP: '; +$PHPMAILER_LANG['invalid_header'] = 'Nombre o valor de encabezado no válido'; diff --git a/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-et.php b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-et.php new file mode 100644 index 0000000..93addc9 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-et.php @@ -0,0 +1,28 @@ + + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP Viga: Autoriseerimise viga.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP Viga: Ei õnnestunud luua ühendust SMTP serveriga.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Viga: Vigased andmed.'; +$PHPMAILER_LANG['empty_message'] = 'Tühi kirja sisu'; +$PHPMAILER_LANG["encoding"] = 'Tundmatu kodeering: '; +$PHPMAILER_LANG['execute'] = 'Tegevus ebaõnnestus: '; +$PHPMAILER_LANG['file_access'] = 'Pole piisavalt õiguseid järgneva faili avamiseks: '; +$PHPMAILER_LANG['file_open'] = 'Faili Viga: Faili avamine ebaõnnestus: '; +$PHPMAILER_LANG['from_failed'] = 'Järgnev saatja e-posti aadress on vigane: '; +$PHPMAILER_LANG['instantiate'] = 'mail funktiooni käivitamine ebaõnnestus.'; +$PHPMAILER_LANG['invalid_address'] = 'Saatmine peatatud, e-posti address vigane: '; +$PHPMAILER_LANG['provide_address'] = 'Te peate määrama vähemalt ühe saaja e-posti aadressi.'; +$PHPMAILER_LANG['mailer_not_supported'] = ' maileri tugi puudub.'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP Viga: Järgnevate saajate e-posti aadressid on vigased: '; +$PHPMAILER_LANG["signing"] = 'Viga allkirjastamisel: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() ebaõnnestus.'; +$PHPMAILER_LANG['smtp_error'] = 'SMTP serveri viga: '; +$PHPMAILER_LANG['variable_set'] = 'Ei õnnestunud määrata või lähtestada muutujat: '; +$PHPMAILER_LANG['extension_missing'] = 'Nõutud laiendus on puudu: '; diff --git a/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-fa.php b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-fa.php new file mode 100644 index 0000000..295a47f --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-fa.php @@ -0,0 +1,28 @@ + + * @author Mohammad Hossein Mojtahedi + */ + +$PHPMAILER_LANG['authenticate'] = 'خطای SMTP: احراز هویت با شکست مواجه شد.'; +$PHPMAILER_LANG['connect_host'] = 'خطای SMTP: اتصال به سرور SMTP برقرار نشد.'; +$PHPMAILER_LANG['data_not_accepted'] = 'خطای SMTP: داده‌ها نا‌درست هستند.'; +$PHPMAILER_LANG['empty_message'] = 'بخش متن پیام خالی است.'; +$PHPMAILER_LANG['encoding'] = 'کد‌گذاری نا‌شناخته: '; +$PHPMAILER_LANG['execute'] = 'امکان اجرا وجود ندارد: '; +$PHPMAILER_LANG['file_access'] = 'امکان دسترسی به فایل وجود ندارد: '; +$PHPMAILER_LANG['file_open'] = 'خطای File: امکان بازکردن فایل وجود ندارد: '; +$PHPMAILER_LANG['from_failed'] = 'آدرس فرستنده اشتباه است: '; +$PHPMAILER_LANG['instantiate'] = 'امکان معرفی تابع ایمیل وجود ندارد.'; +$PHPMAILER_LANG['invalid_address'] = 'آدرس ایمیل معتبر نیست: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' mailer پشتیبانی نمی‌شود.'; +$PHPMAILER_LANG['provide_address'] = 'باید حداقل یک آدرس گیرنده وارد کنید.'; +$PHPMAILER_LANG['recipients_failed'] = 'خطای SMTP: ارسال به آدرس گیرنده با خطا مواجه شد: '; +$PHPMAILER_LANG['signing'] = 'خطا در امضا: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'خطا در اتصال به SMTP.'; +$PHPMAILER_LANG['smtp_error'] = 'خطا در SMTP Server: '; +$PHPMAILER_LANG['variable_set'] = 'امکان ارسال یا ارسال مجدد متغیر‌ها وجود ندارد: '; +$PHPMAILER_LANG['extension_missing'] = 'افزونه موجود نیست: '; diff --git a/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-fi.php b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-fi.php new file mode 100644 index 0000000..243c054 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-fi.php @@ -0,0 +1,28 @@ + + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP feilur: Kundi ikki góðkenna.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP feilur: Kundi ikki knýta samband við SMTP vert.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP feilur: Data ikki góðkent.'; +//$PHPMAILER_LANG['empty_message'] = 'Message body empty'; +$PHPMAILER_LANG['encoding'] = 'Ókend encoding: '; +$PHPMAILER_LANG['execute'] = 'Kundi ikki útføra: '; +$PHPMAILER_LANG['file_access'] = 'Kundi ikki tilganga fílu: '; +$PHPMAILER_LANG['file_open'] = 'Fílu feilur: Kundi ikki opna fílu: '; +$PHPMAILER_LANG['from_failed'] = 'fylgjandi Frá/From adressa miseydnaðist: '; +$PHPMAILER_LANG['instantiate'] = 'Kuni ikki instantiera mail funktión.'; +//$PHPMAILER_LANG['invalid_address'] = 'Invalid address: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' er ikki supporterað.'; +$PHPMAILER_LANG['provide_address'] = 'Tú skal uppgeva minst móttakara-emailadressu(r).'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP Feilur: Fylgjandi móttakarar miseydnaðust: '; +//$PHPMAILER_LANG['signing'] = 'Signing Error: '; +//$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.'; +//$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; +//$PHPMAILER_LANG['variable_set'] = 'Cannot set or reset variable: '; +//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-fr.php b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-fr.php new file mode 100644 index 0000000..38a7a8e --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-fr.php @@ -0,0 +1,38 @@ + + */ + +$PHPMAILER_LANG['authenticate'] = 'Erro SMTP: Non puido ser autentificado.'; +$PHPMAILER_LANG['connect_host'] = 'Erro SMTP: Non puido conectar co servidor SMTP.'; +$PHPMAILER_LANG['data_not_accepted'] = 'Erro SMTP: Datos non aceptados.'; +$PHPMAILER_LANG['empty_message'] = 'Corpo da mensaxe vacía'; +$PHPMAILER_LANG['encoding'] = 'Codificación descoñecida: '; +$PHPMAILER_LANG['execute'] = 'Non puido ser executado: '; +$PHPMAILER_LANG['file_access'] = 'Nob puido acceder ó arquivo: '; +$PHPMAILER_LANG['file_open'] = 'Erro de Arquivo: No puido abrir o arquivo: '; +$PHPMAILER_LANG['from_failed'] = 'A(s) seguinte(s) dirección(s) de remitente(s) deron erro: '; +$PHPMAILER_LANG['instantiate'] = 'Non puido crear unha instancia da función Mail.'; +$PHPMAILER_LANG['invalid_address'] = 'Non puido envia-lo correo: dirección de email inválida: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' mailer non está soportado.'; +$PHPMAILER_LANG['provide_address'] = 'Debe engadir polo menos unha dirección de email coma destino.'; +$PHPMAILER_LANG['recipients_failed'] = 'Erro SMTP: Os seguintes destinos fallaron: '; +$PHPMAILER_LANG['signing'] = 'Erro ó firmar: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() fallou.'; +$PHPMAILER_LANG['smtp_error'] = 'Erro do servidor SMTP: '; +$PHPMAILER_LANG['variable_set'] = 'Non puidemos axustar ou reaxustar a variábel: '; +//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-he.php b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-he.php new file mode 100644 index 0000000..b123aa5 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-he.php @@ -0,0 +1,27 @@ + + */ + +$PHPMAILER_LANG['authenticate'] = 'שגיאת SMTP: פעולת האימות נכשלה.'; +$PHPMAILER_LANG['connect_host'] = 'שגיאת SMTP: לא הצלחתי להתחבר לשרת SMTP.'; +$PHPMAILER_LANG['data_not_accepted'] = 'שגיאת SMTP: מידע לא התקבל.'; +$PHPMAILER_LANG['empty_message'] = 'גוף ההודעה ריק'; +$PHPMAILER_LANG['invalid_address'] = 'כתובת שגויה: '; +$PHPMAILER_LANG['encoding'] = 'קידוד לא מוכר: '; +$PHPMAILER_LANG['execute'] = 'לא הצלחתי להפעיל את: '; +$PHPMAILER_LANG['file_access'] = 'לא ניתן לגשת לקובץ: '; +$PHPMAILER_LANG['file_open'] = 'שגיאת קובץ: לא ניתן לגשת לקובץ: '; +$PHPMAILER_LANG['from_failed'] = 'כתובות הנמענים הבאות נכשלו: '; +$PHPMAILER_LANG['instantiate'] = 'לא הצלחתי להפעיל את פונקציית המייל.'; +$PHPMAILER_LANG['mailer_not_supported'] = ' אינה נתמכת.'; +$PHPMAILER_LANG['provide_address'] = 'חובה לספק לפחות כתובת אחת של מקבל המייל.'; +$PHPMAILER_LANG['recipients_failed'] = 'שגיאת SMTP: הנמענים הבאים נכשלו: '; +$PHPMAILER_LANG['signing'] = 'שגיאת חתימה: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.'; +$PHPMAILER_LANG['smtp_error'] = 'שגיאת שרת SMTP: '; +$PHPMAILER_LANG['variable_set'] = 'לא ניתן לקבוע או לשנות את המשתנה: '; +//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-hi.php b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-hi.php new file mode 100644 index 0000000..d973a35 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-hi.php @@ -0,0 +1,27 @@ + + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP त्रुटि: प्रामाणिकता की जांच नहीं हो सका। '; +$PHPMAILER_LANG['connect_host'] = 'SMTP त्रुटि: SMTP सर्वर से कनेक्ट नहीं हो सका। '; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP त्रुटि: डेटा स्वीकार नहीं किया जाता है। '; +$PHPMAILER_LANG['empty_message'] = 'संदेश खाली है। '; +$PHPMAILER_LANG['encoding'] = 'अज्ञात एन्कोडिंग प्रकार। '; +$PHPMAILER_LANG['execute'] = 'आदेश को निष्पादित करने में विफल। '; +$PHPMAILER_LANG['file_access'] = 'फ़ाइल उपलब्ध नहीं है। '; +$PHPMAILER_LANG['file_open'] = 'फ़ाइल त्रुटि: फाइल को खोला नहीं जा सका। '; +$PHPMAILER_LANG['from_failed'] = 'प्रेषक का पता गलत है। '; +$PHPMAILER_LANG['instantiate'] = 'मेल फ़ंक्शन कॉल नहीं कर सकता है।'; +$PHPMAILER_LANG['invalid_address'] = 'पता गलत है। '; +$PHPMAILER_LANG['mailer_not_supported'] = 'मेल सर्वर के साथ काम नहीं करता है। '; +$PHPMAILER_LANG['provide_address'] = 'आपको कम से कम एक प्राप्तकर्ता का ई-मेल पता प्रदान करना होगा।'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP त्रुटि: निम्न प्राप्तकर्ताओं को पते भेजने में विफल। '; +$PHPMAILER_LANG['signing'] = 'साइनअप त्रुटि:। '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP का connect () फ़ंक्शन विफल हुआ। '; +$PHPMAILER_LANG['smtp_error'] = 'SMTP सर्वर त्रुटि। '; +$PHPMAILER_LANG['variable_set'] = 'चर को बना या संशोधित नहीं किया जा सकता। '; +$PHPMAILER_LANG['extension_missing'] = 'एक्सटेन्षन गायब है: '; diff --git a/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-hr.php b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-hr.php new file mode 100644 index 0000000..cacb6c3 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-hr.php @@ -0,0 +1,27 @@ + + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP Greška: Neuspjela autentikacija.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP Greška: Ne mogu se spojiti na SMTP poslužitelj.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Greška: Podatci nisu prihvaćeni.'; +$PHPMAILER_LANG['empty_message'] = 'Sadržaj poruke je prazan.'; +$PHPMAILER_LANG['encoding'] = 'Nepoznati encoding: '; +$PHPMAILER_LANG['execute'] = 'Nije moguće izvršiti naredbu: '; +$PHPMAILER_LANG['file_access'] = 'Nije moguće pristupiti datoteci: '; +$PHPMAILER_LANG['file_open'] = 'Nije moguće otvoriti datoteku: '; +$PHPMAILER_LANG['from_failed'] = 'SMTP Greška: Slanje s navedenih e-mail adresa nije uspjelo: '; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP Greška: Slanje na navedenih e-mail adresa nije uspjelo: '; +$PHPMAILER_LANG['instantiate'] = 'Ne mogu pokrenuti mail funkcionalnost.'; +$PHPMAILER_LANG['invalid_address'] = 'E-mail nije poslan. Neispravna e-mail adresa: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' mailer nije podržan.'; +$PHPMAILER_LANG['provide_address'] = 'Definirajte barem jednu adresu primatelja.'; +$PHPMAILER_LANG['signing'] = 'Greška prilikom prijave: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'Spajanje na SMTP poslužitelj nije uspjelo.'; +$PHPMAILER_LANG['smtp_error'] = 'Greška SMTP poslužitelja: '; +$PHPMAILER_LANG['variable_set'] = 'Ne mogu postaviti varijablu niti ju vratiti nazad: '; +$PHPMAILER_LANG['extension_missing'] = 'Nedostaje proširenje: '; diff --git a/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-hu.php b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-hu.php new file mode 100644 index 0000000..e6b58b0 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-hu.php @@ -0,0 +1,27 @@ + + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP -ի սխալ: չհաջողվեց ստուգել իսկությունը.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP -ի սխալ: չհաջողվեց կապ հաստատել SMTP սերվերի հետ.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP -ի սխալ: տվյալները ընդունված չեն.'; +$PHPMAILER_LANG['empty_message'] = 'Հաղորդագրությունը դատարկ է'; +$PHPMAILER_LANG['encoding'] = 'Կոդավորման անհայտ տեսակ: '; +$PHPMAILER_LANG['execute'] = 'Չհաջողվեց իրականացնել հրամանը: '; +$PHPMAILER_LANG['file_access'] = 'Ֆայլը հասանելի չէ: '; +$PHPMAILER_LANG['file_open'] = 'Ֆայլի սխալ: ֆայլը չհաջողվեց բացել: '; +$PHPMAILER_LANG['from_failed'] = 'Ուղարկողի հետևյալ հասցեն սխալ է: '; +$PHPMAILER_LANG['instantiate'] = 'Հնարավոր չէ կանչել mail ֆունկցիան.'; +$PHPMAILER_LANG['invalid_address'] = 'Հասցեն սխալ է: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' փոստային սերվերի հետ չի աշխատում.'; +$PHPMAILER_LANG['provide_address'] = 'Անհրաժեշտ է տրամադրել գոնե մեկ ստացողի e-mail հասցե.'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP -ի սխալ: չի հաջողվել ուղարկել հետևյալ ստացողների հասցեներին: '; +$PHPMAILER_LANG['signing'] = 'Ստորագրման սխալ: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP -ի connect() ֆունկցիան չի հաջողվել'; +$PHPMAILER_LANG['smtp_error'] = 'SMTP սերվերի սխալ: '; +$PHPMAILER_LANG['variable_set'] = 'Չի հաջողվում ստեղծել կամ վերափոխել փոփոխականը: '; +$PHPMAILER_LANG['extension_missing'] = 'Հավելվածը բացակայում է: '; diff --git a/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-id.php b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-id.php new file mode 100644 index 0000000..212a11f --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-id.php @@ -0,0 +1,31 @@ + + * @author @januridp + * @author Ian Mustafa + */ + +$PHPMAILER_LANG['authenticate'] = 'Kesalahan SMTP: Tidak dapat mengotentikasi.'; +$PHPMAILER_LANG['connect_host'] = 'Kesalahan SMTP: Tidak dapat terhubung ke host SMTP.'; +$PHPMAILER_LANG['data_not_accepted'] = 'Kesalahan SMTP: Data tidak diterima.'; +$PHPMAILER_LANG['empty_message'] = 'Isi pesan kosong'; +$PHPMAILER_LANG['encoding'] = 'Pengkodean karakter tidak dikenali: '; +$PHPMAILER_LANG['execute'] = 'Tidak dapat menjalankan proses: '; +$PHPMAILER_LANG['file_access'] = 'Tidak dapat mengakses berkas: '; +$PHPMAILER_LANG['file_open'] = 'Kesalahan Berkas: Berkas tidak dapat dibuka: '; +$PHPMAILER_LANG['from_failed'] = 'Alamat pengirim berikut mengakibatkan kesalahan: '; +$PHPMAILER_LANG['instantiate'] = 'Tidak dapat menginisialisasi fungsi surel.'; +$PHPMAILER_LANG['invalid_address'] = 'Gagal terkirim, alamat surel tidak sesuai: '; +$PHPMAILER_LANG['invalid_hostentry'] = 'Gagal terkirim, entri host tidak sesuai: '; +$PHPMAILER_LANG['invalid_host'] = 'Gagal terkirim, host tidak sesuai: '; +$PHPMAILER_LANG['provide_address'] = 'Harus tersedia minimal satu alamat tujuan'; +$PHPMAILER_LANG['mailer_not_supported'] = ' mailer tidak didukung'; +$PHPMAILER_LANG['recipients_failed'] = 'Kesalahan SMTP: Alamat tujuan berikut menyebabkan kesalahan: '; +$PHPMAILER_LANG['signing'] = 'Kesalahan dalam penandatangan SSL: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() gagal.'; +$PHPMAILER_LANG['smtp_error'] = 'Kesalahan pada pelayan SMTP: '; +$PHPMAILER_LANG['variable_set'] = 'Tidak dapat mengatur atau mengatur ulang variabel: '; +$PHPMAILER_LANG['extension_missing'] = 'Ekstensi PHP tidak tersedia: '; diff --git a/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-it.php b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-it.php new file mode 100644 index 0000000..08a6b73 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-it.php @@ -0,0 +1,28 @@ + + * @author Stefano Sabatini + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP Error: Impossibile autenticarsi.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP Error: Impossibile connettersi all\'host SMTP.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Error: Dati non accettati dal server.'; +$PHPMAILER_LANG['empty_message'] = 'Il corpo del messaggio è vuoto'; +$PHPMAILER_LANG['encoding'] = 'Codifica dei caratteri sconosciuta: '; +$PHPMAILER_LANG['execute'] = 'Impossibile eseguire l\'operazione: '; +$PHPMAILER_LANG['file_access'] = 'Impossibile accedere al file: '; +$PHPMAILER_LANG['file_open'] = 'File Error: Impossibile aprire il file: '; +$PHPMAILER_LANG['from_failed'] = 'I seguenti indirizzi mittenti hanno generato errore: '; +$PHPMAILER_LANG['instantiate'] = 'Impossibile istanziare la funzione mail'; +$PHPMAILER_LANG['invalid_address'] = 'Impossibile inviare, l\'indirizzo email non è valido: '; +$PHPMAILER_LANG['provide_address'] = 'Deve essere fornito almeno un indirizzo ricevente'; +$PHPMAILER_LANG['mailer_not_supported'] = 'Mailer non supportato'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP Error: I seguenti indirizzi destinatari hanno generato un errore: '; +$PHPMAILER_LANG['signing'] = 'Errore nella firma: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() fallita.'; +$PHPMAILER_LANG['smtp_error'] = 'Errore del server SMTP: '; +$PHPMAILER_LANG['variable_set'] = 'Impossibile impostare o resettare la variabile: '; +$PHPMAILER_LANG['extension_missing'] = 'Estensione mancante: '; diff --git a/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-ja.php b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-ja.php new file mode 100644 index 0000000..c76f526 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-ja.php @@ -0,0 +1,29 @@ + + * @author Yoshi Sakai + * @author Arisophy + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTPエラー: 認証できませんでした。'; +$PHPMAILER_LANG['connect_host'] = 'SMTPエラー: SMTPホストに接続できませんでした。'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTPエラー: データが受け付けられませんでした。'; +$PHPMAILER_LANG['empty_message'] = 'メール本文が空です。'; +$PHPMAILER_LANG['encoding'] = '不明なエンコーディング: '; +$PHPMAILER_LANG['execute'] = '実行できませんでした: '; +$PHPMAILER_LANG['file_access'] = 'ファイルにアクセスできません: '; +$PHPMAILER_LANG['file_open'] = 'ファイルエラー: ファイルを開けません: '; +$PHPMAILER_LANG['from_failed'] = 'Fromアドレスを登録する際にエラーが発生しました: '; +$PHPMAILER_LANG['instantiate'] = 'メール関数が正常に動作しませんでした。'; +$PHPMAILER_LANG['invalid_address'] = '不正なメールアドレス: '; +$PHPMAILER_LANG['provide_address'] = '少なくとも1つメールアドレスを 指定する必要があります。'; +$PHPMAILER_LANG['mailer_not_supported'] = ' メーラーがサポートされていません。'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTPエラー: 次の受信者アドレスに 間違いがあります: '; +$PHPMAILER_LANG['signing'] = '署名エラー: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP接続に失敗しました。'; +$PHPMAILER_LANG['smtp_error'] = 'SMTPサーバーエラー: '; +$PHPMAILER_LANG['variable_set'] = '変数が存在しません: '; +$PHPMAILER_LANG['extension_missing'] = '拡張機能が見つかりません: '; diff --git a/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-ka.php b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-ka.php new file mode 100644 index 0000000..51fe403 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-ka.php @@ -0,0 +1,27 @@ + + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP შეცდომა: ავტორიზაცია შეუძლებელია.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP შეცდომა: SMTP სერვერთან დაკავშირება შეუძლებელია.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP შეცდომა: მონაცემები არ იქნა მიღებული.'; +$PHPMAILER_LANG['encoding'] = 'კოდირების უცნობი ტიპი: '; +$PHPMAILER_LANG['execute'] = 'შეუძლებელია შემდეგი ბრძანების შესრულება: '; +$PHPMAILER_LANG['file_access'] = 'შეუძლებელია წვდომა ფაილთან: '; +$PHPMAILER_LANG['file_open'] = 'ფაილური სისტემის შეცდომა: არ იხსნება ფაილი: '; +$PHPMAILER_LANG['from_failed'] = 'გამგზავნის არასწორი მისამართი: '; +$PHPMAILER_LANG['instantiate'] = 'mail ფუნქციის გაშვება ვერ ხერხდება.'; +$PHPMAILER_LANG['provide_address'] = 'გთხოვთ მიუთითოთ ერთი ადრესატის e-mail მისამართი მაინც.'; +$PHPMAILER_LANG['mailer_not_supported'] = ' - საფოსტო სერვერის მხარდაჭერა არ არის.'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP შეცდომა: შემდეგ მისამართებზე გაგზავნა ვერ მოხერხდა: '; +$PHPMAILER_LANG['empty_message'] = 'შეტყობინება ცარიელია'; +$PHPMAILER_LANG['invalid_address'] = 'არ გაიგზავნა, e-mail მისამართის არასწორი ფორმატი: '; +$PHPMAILER_LANG['signing'] = 'ხელმოწერის შეცდომა: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'შეცდომა SMTP სერვერთან დაკავშირებისას'; +$PHPMAILER_LANG['smtp_error'] = 'SMTP სერვერის შეცდომა: '; +$PHPMAILER_LANG['variable_set'] = 'შეუძლებელია შემდეგი ცვლადის შექმნა ან შეცვლა: '; +$PHPMAILER_LANG['extension_missing'] = 'ბიბლიოთეკა არ არსებობს: '; diff --git a/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-ko.php b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-ko.php new file mode 100644 index 0000000..8c97dd9 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-ko.php @@ -0,0 +1,27 @@ + + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP 오류: 인증할 수 없습니다.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP 오류: SMTP 호스트에 접속할 수 없습니다.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP 오류: 데이터가 받아들여지지 않았습니다.'; +$PHPMAILER_LANG['empty_message'] = '메세지 내용이 없습니다'; +$PHPMAILER_LANG['encoding'] = '알 수 없는 인코딩: '; +$PHPMAILER_LANG['execute'] = '실행 불가: '; +$PHPMAILER_LANG['file_access'] = '파일 접근 불가: '; +$PHPMAILER_LANG['file_open'] = '파일 오류: 파일을 열 수 없습니다: '; +$PHPMAILER_LANG['from_failed'] = '다음 From 주소에서 오류가 발생했습니다: '; +$PHPMAILER_LANG['instantiate'] = 'mail 함수를 인스턴스화할 수 없습니다'; +$PHPMAILER_LANG['invalid_address'] = '잘못된 주소: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' 메일러는 지원되지 않습니다.'; +$PHPMAILER_LANG['provide_address'] = '적어도 한 개 이상의 수신자 메일 주소를 제공해야 합니다.'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP 오류: 다음 수신자에서 오류가 발생했습니다: '; +$PHPMAILER_LANG['signing'] = '서명 오류: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP 연결을 실패하였습니다.'; +$PHPMAILER_LANG['smtp_error'] = 'SMTP 서버 오류: '; +$PHPMAILER_LANG['variable_set'] = '변수 설정 및 초기화 불가: '; +$PHPMAILER_LANG['extension_missing'] = '확장자 없음: '; diff --git a/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-lt.php b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-lt.php new file mode 100644 index 0000000..4f115b1 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-lt.php @@ -0,0 +1,27 @@ + + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP klaida: autentifikacija nepavyko.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP klaida: nepavyksta prisijungti prie SMTP stoties.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP klaida: duomenys nepriimti.'; +$PHPMAILER_LANG['empty_message'] = 'Laiško turinys tuščias'; +$PHPMAILER_LANG['encoding'] = 'Neatpažinta koduotė: '; +$PHPMAILER_LANG['execute'] = 'Nepavyko įvykdyti komandos: '; +$PHPMAILER_LANG['file_access'] = 'Byla nepasiekiama: '; +$PHPMAILER_LANG['file_open'] = 'Bylos klaida: Nepavyksta atidaryti: '; +$PHPMAILER_LANG['from_failed'] = 'Neteisingas siuntėjo adresas: '; +$PHPMAILER_LANG['instantiate'] = 'Nepavyko paleisti mail funkcijos.'; +$PHPMAILER_LANG['invalid_address'] = 'Neteisingas adresas: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' pašto stotis nepalaikoma.'; +$PHPMAILER_LANG['provide_address'] = 'Nurodykite bent vieną gavėjo adresą.'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP klaida: nepavyko išsiųsti šiems gavėjams: '; +$PHPMAILER_LANG['signing'] = 'Prisijungimo klaida: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP susijungimo klaida'; +$PHPMAILER_LANG['smtp_error'] = 'SMTP stoties klaida: '; +$PHPMAILER_LANG['variable_set'] = 'Nepavyko priskirti reikšmės kintamajam: '; +//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-lv.php b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-lv.php new file mode 100644 index 0000000..679b18c --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-lv.php @@ -0,0 +1,27 @@ + + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP kļūda: Autorizācija neizdevās.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP Kļūda: Nevar izveidot savienojumu ar SMTP serveri.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Kļūda: Nepieņem informāciju.'; +$PHPMAILER_LANG['empty_message'] = 'Ziņojuma teksts ir tukšs'; +$PHPMAILER_LANG['encoding'] = 'Neatpazīts kodējums: '; +$PHPMAILER_LANG['execute'] = 'Neizdevās izpildīt komandu: '; +$PHPMAILER_LANG['file_access'] = 'Fails nav pieejams: '; +$PHPMAILER_LANG['file_open'] = 'Faila kļūda: Nevar atvērt failu: '; +$PHPMAILER_LANG['from_failed'] = 'Nepareiza sūtītāja adrese: '; +$PHPMAILER_LANG['instantiate'] = 'Nevar palaist sūtīšanas funkciju.'; +$PHPMAILER_LANG['invalid_address'] = 'Nepareiza adrese: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' sūtītājs netiek atbalstīts.'; +$PHPMAILER_LANG['provide_address'] = 'Lūdzu, norādiet vismaz vienu adresātu.'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP kļūda: neizdevās nosūtīt šādiem saņēmējiem: '; +$PHPMAILER_LANG['signing'] = 'Autorizācijas kļūda: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP savienojuma kļūda'; +$PHPMAILER_LANG['smtp_error'] = 'SMTP servera kļūda: '; +$PHPMAILER_LANG['variable_set'] = 'Nevar piešķirt mainīgā vērtību: '; +//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-mg.php b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-mg.php new file mode 100644 index 0000000..8a94f6a --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-mg.php @@ -0,0 +1,27 @@ + + */ + +$PHPMAILER_LANG['authenticate'] = 'Hadisoana SMTP: Tsy nahomby ny fanamarinana.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP Error: Tsy afaka mampifandray amin\'ny mpampiantrano SMTP.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP diso: tsy voarakitra ny angona.'; +$PHPMAILER_LANG['empty_message'] = 'Tsy misy ny votoaty mailaka.'; +$PHPMAILER_LANG['encoding'] = 'Tsy fantatra encoding: '; +$PHPMAILER_LANG['execute'] = 'Tsy afaka manatanteraka ity baiko manaraka ity: '; +$PHPMAILER_LANG['file_access'] = 'Tsy nahomby ny fidirana amin\'ity rakitra ity: '; +$PHPMAILER_LANG['file_open'] = 'Hadisoana diso: Tsy afaka nanokatra ity file manaraka ity: '; +$PHPMAILER_LANG['from_failed'] = 'Ny adiresy iraka manaraka dia diso: '; +$PHPMAILER_LANG['instantiate'] = 'Tsy afaka nanomboka ny hetsika mail.'; +$PHPMAILER_LANG['invalid_address'] = 'Tsy mety ny adiresy: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' mailer tsy manohana.'; +$PHPMAILER_LANG['provide_address'] = 'Alefaso azafady iray adiresy iray farafahakeliny.'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP Error: Tsy mety ireo mpanaraka ireto: '; +$PHPMAILER_LANG['signing'] = 'Error nandritra ny sonia:'; +$PHPMAILER_LANG['smtp_connect_failed'] = 'Tsy nahomby ny fifandraisana tamin\'ny server SMTP.'; +$PHPMAILER_LANG['smtp_error'] = 'Fahadisoana tamin\'ny server SMTP: '; +$PHPMAILER_LANG['variable_set'] = 'Tsy azo atao ny mametraka na mamerina ny variable: '; +$PHPMAILER_LANG['extension_missing'] = 'Tsy hita ny ampahany: '; diff --git a/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-mn.php b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-mn.php new file mode 100644 index 0000000..04d262c --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-mn.php @@ -0,0 +1,27 @@ + + */ + +$PHPMAILER_LANG['authenticate'] = 'Ralat SMTP: Tidak dapat pengesahan.'; +$PHPMAILER_LANG['connect_host'] = 'Ralat SMTP: Tidak dapat menghubungi hos pelayan SMTP.'; +$PHPMAILER_LANG['data_not_accepted'] = 'Ralat SMTP: Data tidak diterima oleh pelayan.'; +$PHPMAILER_LANG['empty_message'] = 'Tiada isi untuk mesej'; +$PHPMAILER_LANG['encoding'] = 'Pengekodan tidak diketahui: '; +$PHPMAILER_LANG['execute'] = 'Tidak dapat melaksanakan: '; +$PHPMAILER_LANG['file_access'] = 'Tidak dapat mengakses fail: '; +$PHPMAILER_LANG['file_open'] = 'Ralat Fail: Tidak dapat membuka fail: '; +$PHPMAILER_LANG['from_failed'] = 'Berikut merupakan ralat dari alamat e-mel: '; +$PHPMAILER_LANG['instantiate'] = 'Tidak dapat memberi contoh fungsi e-mel.'; +$PHPMAILER_LANG['invalid_address'] = 'Alamat emel tidak sah: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' jenis penghantar emel tidak disokong.'; +$PHPMAILER_LANG['provide_address'] = 'Anda perlu menyediakan sekurang-kurangnya satu alamat e-mel penerima.'; +$PHPMAILER_LANG['recipients_failed'] = 'Ralat SMTP: Penerima e-mel berikut telah gagal: '; +$PHPMAILER_LANG['signing'] = 'Ralat pada tanda tangan: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() telah gagal.'; +$PHPMAILER_LANG['smtp_error'] = 'Ralat pada pelayan SMTP: '; +$PHPMAILER_LANG['variable_set'] = 'Tidak boleh menetapkan atau menetapkan semula pembolehubah: '; +$PHPMAILER_LANG['extension_missing'] = 'Sambungan hilang: '; diff --git a/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-nb.php b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-nb.php new file mode 100644 index 0000000..65793ce --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-nb.php @@ -0,0 +1,26 @@ + + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP-fout: authenticatie mislukt.'; +$PHPMAILER_LANG['buggy_php'] = 'PHP versie gededecteerd die onderhavig is aan een bug die kan resulteren in gecorrumpeerde berichten. Om dit te voorkomen, gebruik SMTP voor het verzenden van berichten, zet de mail.add_x_header optie in uw php.ini file uit, gebruik MacOS of Linux, of pas de gebruikte PHP versie aan naar versie 7.0.17+ or 7.1.3+.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP-fout: kon niet verbinden met SMTP-host.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP-fout: data niet geaccepteerd.'; +$PHPMAILER_LANG['empty_message'] = 'Berichttekst is leeg'; +$PHPMAILER_LANG['encoding'] = 'Onbekende codering: '; +$PHPMAILER_LANG['execute'] = 'Kon niet uitvoeren: '; +$PHPMAILER_LANG['extension_missing'] = 'Extensie afwezig: '; +$PHPMAILER_LANG['file_access'] = 'Kreeg geen toegang tot bestand: '; +$PHPMAILER_LANG['file_open'] = 'Bestandsfout: kon bestand niet openen: '; +$PHPMAILER_LANG['from_failed'] = 'Het volgende afzendersadres is mislukt: '; +$PHPMAILER_LANG['instantiate'] = 'Kon mailfunctie niet initialiseren.'; +$PHPMAILER_LANG['invalid_address'] = 'Ongeldig adres: '; +$PHPMAILER_LANG['invalid_header'] = 'Ongeldige header naam of waarde'; +$PHPMAILER_LANG['invalid_hostentry'] = 'Ongeldige hostentry: '; +$PHPMAILER_LANG['invalid_host'] = 'Ongeldige host: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' mailer wordt niet ondersteund.'; +$PHPMAILER_LANG['provide_address'] = 'Er moet minstens één ontvanger worden opgegeven.'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP-fout: de volgende ontvangers zijn mislukt: '; +$PHPMAILER_LANG['signing'] = 'Signeerfout: '; +$PHPMAILER_LANG['smtp_code'] = 'SMTP code: '; +$PHPMAILER_LANG['smtp_code_ex'] = 'Aanvullende SMTP informatie: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Verbinding mislukt.'; +$PHPMAILER_LANG['smtp_detail'] = 'Detail: '; +$PHPMAILER_LANG['smtp_error'] = 'SMTP-serverfout: '; +$PHPMAILER_LANG['variable_set'] = 'Kan de volgende variabele niet instellen of resetten: '; diff --git a/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-pl.php b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-pl.php new file mode 100644 index 0000000..b0469fd --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-pl.php @@ -0,0 +1,26 @@ + + */ + +$PHPMAILER_LANG['authenticate'] = 'Erro do SMTP: Não foi possível realizar a autenticação.'; +$PHPMAILER_LANG['connect_host'] = 'Erro do SMTP: Não foi possível realizar ligação com o servidor SMTP.'; +$PHPMAILER_LANG['data_not_accepted'] = 'Erro do SMTP: Os dados foram rejeitados.'; +$PHPMAILER_LANG['empty_message'] = 'A mensagem no e-mail está vazia.'; +$PHPMAILER_LANG['encoding'] = 'Codificação desconhecida: '; +$PHPMAILER_LANG['execute'] = 'Não foi possível executar: '; +$PHPMAILER_LANG['file_access'] = 'Não foi possível aceder o ficheiro: '; +$PHPMAILER_LANG['file_open'] = 'Abertura do ficheiro: Não foi possível abrir o ficheiro: '; +$PHPMAILER_LANG['from_failed'] = 'Ocorreram falhas nos endereços dos seguintes remententes: '; +$PHPMAILER_LANG['instantiate'] = 'Não foi possível iniciar uma instância da função mail.'; +$PHPMAILER_LANG['invalid_address'] = 'Não foi enviado nenhum e-mail para o endereço de e-mail inválido: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' mailer não é suportado.'; +$PHPMAILER_LANG['provide_address'] = 'Tem de fornecer pelo menos um endereço como destinatário do e-mail.'; +$PHPMAILER_LANG['recipients_failed'] = 'Erro do SMTP: O endereço do seguinte destinatário falhou: '; +$PHPMAILER_LANG['signing'] = 'Erro ao assinar: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() falhou.'; +$PHPMAILER_LANG['smtp_error'] = 'Erro de servidor SMTP: '; +$PHPMAILER_LANG['variable_set'] = 'Não foi possível definir ou redefinir a variável: '; +$PHPMAILER_LANG['extension_missing'] = 'Extensão em falta: '; diff --git a/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-pt_br.php b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-pt_br.php new file mode 100644 index 0000000..5239865 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-pt_br.php @@ -0,0 +1,38 @@ + + * @author Lucas Guimarães + * @author Phelipe Alves + * @author Fabio Beneditto + * @author Geidson Benício Coelho + */ + +$PHPMAILER_LANG['authenticate'] = 'Erro de SMTP: Não foi possível autenticar.'; +$PHPMAILER_LANG['buggy_php'] = 'Sua versão do PHP é afetada por um bug que por resultar em messagens corrompidas. Para corrigir, mude para enviar usando SMTP, desative a opção mail.add_x_header em seu php.ini, mude para MacOS ou Linux, ou atualize seu PHP para versão 7.0.17+ ou 7.1.3+ '; +$PHPMAILER_LANG['connect_host'] = 'Erro de SMTP: Não foi possível conectar ao servidor SMTP.'; +$PHPMAILER_LANG['data_not_accepted'] = 'Erro de SMTP: Dados rejeitados.'; +$PHPMAILER_LANG['empty_message'] = 'Mensagem vazia'; +$PHPMAILER_LANG['encoding'] = 'Codificação desconhecida: '; +$PHPMAILER_LANG['execute'] = 'Não foi possível executar: '; +$PHPMAILER_LANG['extension_missing'] = 'Extensão não existe: '; +$PHPMAILER_LANG['file_access'] = 'Não foi possível acessar o arquivo: '; +$PHPMAILER_LANG['file_open'] = 'Erro de Arquivo: Não foi possível abrir o arquivo: '; +$PHPMAILER_LANG['from_failed'] = 'Os seguintes remetentes falharam: '; +$PHPMAILER_LANG['instantiate'] = 'Não foi possível instanciar a função mail.'; +$PHPMAILER_LANG['invalid_address'] = 'Endereço de e-mail inválido: '; +$PHPMAILER_LANG['invalid_header'] = 'Nome ou valor de cabeçalho inválido'; +$PHPMAILER_LANG['invalid_hostentry'] = 'hostentry inválido: '; +$PHPMAILER_LANG['invalid_host'] = 'host inválido: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' mailer não é suportado.'; +$PHPMAILER_LANG['provide_address'] = 'Você deve informar pelo menos um destinatário.'; +$PHPMAILER_LANG['recipients_failed'] = 'Erro de SMTP: Os seguintes destinatários falharam: '; +$PHPMAILER_LANG['signing'] = 'Erro de Assinatura: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() falhou.'; +$PHPMAILER_LANG['smtp_code'] = 'Código do servidor SMTP: '; +$PHPMAILER_LANG['smtp_error'] = 'Erro de servidor SMTP: '; +$PHPMAILER_LANG['smtp_code_ex'] = 'Informações adicionais do servidor SMTP: '; +$PHPMAILER_LANG['smtp_detail'] = 'Detalhes do servidor SMTP: '; +$PHPMAILER_LANG['variable_set'] = 'Não foi possível definir ou redefinir a variável: '; diff --git a/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-ro.php b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-ro.php new file mode 100644 index 0000000..45bef91 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-ro.php @@ -0,0 +1,33 @@ + + * @author Foster Snowhill + */ + +$PHPMAILER_LANG['authenticate'] = 'Ошибка SMTP: ошибка авторизации.'; +$PHPMAILER_LANG['connect_host'] = 'Ошибка SMTP: не удается подключиться к SMTP-серверу.'; +$PHPMAILER_LANG['data_not_accepted'] = 'Ошибка SMTP: данные не приняты.'; +$PHPMAILER_LANG['encoding'] = 'Неизвестная кодировка: '; +$PHPMAILER_LANG['execute'] = 'Невозможно выполнить команду: '; +$PHPMAILER_LANG['file_access'] = 'Нет доступа к файлу: '; +$PHPMAILER_LANG['file_open'] = 'Файловая ошибка: не удаётся открыть файл: '; +$PHPMAILER_LANG['from_failed'] = 'Неверный адрес отправителя: '; +$PHPMAILER_LANG['instantiate'] = 'Невозможно запустить функцию mail().'; +$PHPMAILER_LANG['provide_address'] = 'Пожалуйста, введите хотя бы один email-адрес получателя.'; +$PHPMAILER_LANG['mailer_not_supported'] = ' — почтовый сервер не поддерживается.'; +$PHPMAILER_LANG['recipients_failed'] = 'Ошибка SMTP: не удалась отправка таким адресатам: '; +$PHPMAILER_LANG['empty_message'] = 'Пустое сообщение'; +$PHPMAILER_LANG['invalid_address'] = 'Не отправлено из-за неправильного формата email-адреса: '; +$PHPMAILER_LANG['signing'] = 'Ошибка подписи: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'Ошибка соединения с SMTP-сервером'; +$PHPMAILER_LANG['smtp_error'] = 'Ошибка SMTP-сервера: '; +$PHPMAILER_LANG['variable_set'] = 'Невозможно установить или сбросить переменную: '; +$PHPMAILER_LANG['extension_missing'] = 'Расширение отсутствует: '; diff --git a/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-sk.php b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-sk.php new file mode 100644 index 0000000..028f5bc --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-sk.php @@ -0,0 +1,30 @@ + + * @author Peter Orlický + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP Error: Chyba autentifikácie.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP Error: Nebolo možné nadviazať spojenie so SMTP serverom.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Error: Dáta neboli prijaté'; +$PHPMAILER_LANG['empty_message'] = 'Prázdne telo správy.'; +$PHPMAILER_LANG['encoding'] = 'Neznáme kódovanie: '; +$PHPMAILER_LANG['execute'] = 'Nedá sa vykonať: '; +$PHPMAILER_LANG['file_access'] = 'Súbor nebol nájdený: '; +$PHPMAILER_LANG['file_open'] = 'File Error: Súbor sa otvoriť pre čítanie: '; +$PHPMAILER_LANG['from_failed'] = 'Následujúca adresa From je nesprávna: '; +$PHPMAILER_LANG['instantiate'] = 'Nedá sa vytvoriť inštancia emailovej funkcie.'; +$PHPMAILER_LANG['invalid_address'] = 'Neodoslané, emailová adresa je nesprávna: '; +$PHPMAILER_LANG['invalid_hostentry'] = 'Záznam hostiteľa je nesprávny: '; +$PHPMAILER_LANG['invalid_host'] = 'Hostiteľ je nesprávny: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' emailový klient nieje podporovaný.'; +$PHPMAILER_LANG['provide_address'] = 'Musíte zadať aspoň jednu emailovú adresu príjemcu.'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP Error: Adresy príjemcov niesu správne '; +$PHPMAILER_LANG['signing'] = 'Chyba prihlasovania: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() zlyhalo.'; +$PHPMAILER_LANG['smtp_error'] = 'SMTP chyba serveru: '; +$PHPMAILER_LANG['variable_set'] = 'Nemožno nastaviť alebo resetovať premennú: '; +$PHPMAILER_LANG['extension_missing'] = 'Chýba rozšírenie: '; diff --git a/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-sl.php b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-sl.php new file mode 100644 index 0000000..3e00c25 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-sl.php @@ -0,0 +1,36 @@ + + * @author Filip Š + * @author Blaž Oražem + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP napaka: Avtentikacija ni uspela.'; +$PHPMAILER_LANG['buggy_php'] = 'Na vašo PHP različico vpliva napaka, ki lahko povzroči poškodovana sporočila. Če želite težavo odpraviti, preklopite na pošiljanje prek SMTP, onemogočite možnost mail.add_x_header v vaši php.ini datoteki, preklopite na MacOS ali Linux, ali nadgradite vašo PHP zaličico na 7.0.17+ ali 7.1.3+.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP napaka: Vzpostavljanje povezave s SMTP gostiteljem ni uspelo.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP napaka: Strežnik zavrača podatke.'; +$PHPMAILER_LANG['empty_message'] = 'E-poštno sporočilo nima vsebine.'; +$PHPMAILER_LANG['encoding'] = 'Nepoznan tip kodiranja: '; +$PHPMAILER_LANG['execute'] = 'Operacija ni uspela: '; +$PHPMAILER_LANG['extension_missing'] = 'Manjkajoča razširitev: '; +$PHPMAILER_LANG['file_access'] = 'Nimam dostopa do datoteke: '; +$PHPMAILER_LANG['file_open'] = 'Ne morem odpreti datoteke: '; +$PHPMAILER_LANG['from_failed'] = 'Neveljaven e-naslov pošiljatelja: '; +$PHPMAILER_LANG['instantiate'] = 'Ne morem inicializirati mail funkcije.'; +$PHPMAILER_LANG['invalid_address'] = 'E-poštno sporočilo ni bilo poslano. E-naslov je neveljaven: '; +$PHPMAILER_LANG['invalid_header'] = 'Neveljavno ime ali vrednost glave'; +$PHPMAILER_LANG['invalid_hostentry'] = 'Neveljaven vnos gostitelja: '; +$PHPMAILER_LANG['invalid_host'] = 'Neveljaven gostitelj: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' mailer ni podprt.'; +$PHPMAILER_LANG['provide_address'] = 'Prosimo, vnesite vsaj enega naslovnika.'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP napaka: Sledeči naslovniki so neveljavni: '; +$PHPMAILER_LANG['signing'] = 'Napaka pri podpisovanju: '; +$PHPMAILER_LANG['smtp_code'] = 'SMTP koda: '; +$PHPMAILER_LANG['smtp_code_ex'] = 'Dodatne informacije o SMTP: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'Ne morem vzpostaviti povezave s SMTP strežnikom.'; +$PHPMAILER_LANG['smtp_detail'] = 'Podrobnosti: '; +$PHPMAILER_LANG['smtp_error'] = 'Napaka SMTP strežnika: '; +$PHPMAILER_LANG['variable_set'] = 'Ne morem nastaviti oz. ponastaviti spremenljivke: '; diff --git a/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-sr.php b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-sr.php new file mode 100644 index 0000000..0b5280f --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-sr.php @@ -0,0 +1,28 @@ + + * @author Miloš Milanović + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP грешка: аутентификација није успела.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP грешка: повезивање са SMTP сервером није успело.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP грешка: подаци нису прихваћени.'; +$PHPMAILER_LANG['empty_message'] = 'Садржај поруке је празан.'; +$PHPMAILER_LANG['encoding'] = 'Непознато кодирање: '; +$PHPMAILER_LANG['execute'] = 'Није могуће извршити наредбу: '; +$PHPMAILER_LANG['file_access'] = 'Није могуће приступити датотеци: '; +$PHPMAILER_LANG['file_open'] = 'Није могуће отворити датотеку: '; +$PHPMAILER_LANG['from_failed'] = 'SMTP грешка: слање са следећих адреса није успело: '; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP грешка: слање на следеће адресе није успело: '; +$PHPMAILER_LANG['instantiate'] = 'Није могуће покренути mail функцију.'; +$PHPMAILER_LANG['invalid_address'] = 'Порука није послата. Неисправна адреса: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' мејлер није подржан.'; +$PHPMAILER_LANG['provide_address'] = 'Дефинишите бар једну адресу примаоца.'; +$PHPMAILER_LANG['signing'] = 'Грешка приликом пријаве: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'Повезивање са SMTP сервером није успело.'; +$PHPMAILER_LANG['smtp_error'] = 'Грешка SMTP сервера: '; +$PHPMAILER_LANG['variable_set'] = 'Није могуће задати нити ресетовати променљиву: '; +$PHPMAILER_LANG['extension_missing'] = 'Недостаје проширење: '; diff --git a/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-sr_latn.php b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-sr_latn.php new file mode 100644 index 0000000..6213832 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-sr_latn.php @@ -0,0 +1,28 @@ + + * @author Miloš Milanović + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP greška: autentifikacija nije uspela.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP greška: povezivanje sa SMTP serverom nije uspelo.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP greška: podaci nisu prihvaćeni.'; +$PHPMAILER_LANG['empty_message'] = 'Sadržaj poruke je prazan.'; +$PHPMAILER_LANG['encoding'] = 'Nepoznato kodiranje: '; +$PHPMAILER_LANG['execute'] = 'Nije moguće izvršiti naredbu: '; +$PHPMAILER_LANG['file_access'] = 'Nije moguće pristupiti datoteci: '; +$PHPMAILER_LANG['file_open'] = 'Nije moguće otvoriti datoteku: '; +$PHPMAILER_LANG['from_failed'] = 'SMTP greška: slanje sa sledećih adresa nije uspelo: '; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP greška: slanje na sledeće adrese nije uspelo: '; +$PHPMAILER_LANG['instantiate'] = 'Nije moguće pokrenuti mail funkciju.'; +$PHPMAILER_LANG['invalid_address'] = 'Poruka nije poslata. Neispravna adresa: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' majler nije podržan.'; +$PHPMAILER_LANG['provide_address'] = 'Definišite bar jednu adresu primaoca.'; +$PHPMAILER_LANG['signing'] = 'Greška prilikom prijave: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'Povezivanje sa SMTP serverom nije uspelo.'; +$PHPMAILER_LANG['smtp_error'] = 'Greška SMTP servera: '; +$PHPMAILER_LANG['variable_set'] = 'Nije moguće zadati niti resetovati promenljivu: '; +$PHPMAILER_LANG['extension_missing'] = 'Nedostaje proširenje: '; diff --git a/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-sv.php b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-sv.php new file mode 100644 index 0000000..9872c19 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-sv.php @@ -0,0 +1,27 @@ + + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP fel: Kunde inte autentisera.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP fel: Kunde inte ansluta till SMTP-server.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP fel: Data accepterades inte.'; +//$PHPMAILER_LANG['empty_message'] = 'Message body empty'; +$PHPMAILER_LANG['encoding'] = 'Okänt encode-format: '; +$PHPMAILER_LANG['execute'] = 'Kunde inte köra: '; +$PHPMAILER_LANG['file_access'] = 'Ingen åtkomst till fil: '; +$PHPMAILER_LANG['file_open'] = 'Fil fel: Kunde inte öppna fil: '; +$PHPMAILER_LANG['from_failed'] = 'Följande avsändaradress är felaktig: '; +$PHPMAILER_LANG['instantiate'] = 'Kunde inte initiera e-postfunktion.'; +$PHPMAILER_LANG['invalid_address'] = 'Felaktig adress: '; +$PHPMAILER_LANG['provide_address'] = 'Du måste ange minst en mottagares e-postadress.'; +$PHPMAILER_LANG['mailer_not_supported'] = ' mailer stöds inte.'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP fel: Följande mottagare är felaktig: '; +$PHPMAILER_LANG['signing'] = 'Signeringsfel: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() misslyckades.'; +$PHPMAILER_LANG['smtp_error'] = 'SMTP serverfel: '; +$PHPMAILER_LANG['variable_set'] = 'Kunde inte definiera eller återställa variabel: '; +$PHPMAILER_LANG['extension_missing'] = 'Tillägg ej tillgängligt: '; diff --git a/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-tl.php b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-tl.php new file mode 100644 index 0000000..d15bed1 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-tl.php @@ -0,0 +1,28 @@ + + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP Error: Hindi mapatotohanan.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP Error: Hindi makakonekta sa SMTP host.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Error: Ang datos ay hindi naitanggap.'; +$PHPMAILER_LANG['empty_message'] = 'Walang laman ang mensahe'; +$PHPMAILER_LANG['encoding'] = 'Hindi alam ang encoding: '; +$PHPMAILER_LANG['execute'] = 'Hindi maisasagawa: '; +$PHPMAILER_LANG['file_access'] = 'Hindi ma-access ang file: '; +$PHPMAILER_LANG['file_open'] = 'File Error: Hindi mabuksan ang file: '; +$PHPMAILER_LANG['from_failed'] = 'Ang sumusunod na address ay nabigo: '; +$PHPMAILER_LANG['instantiate'] = 'Hindi maisimulan ang instance ng mail function.'; +$PHPMAILER_LANG['invalid_address'] = 'Hindi wasto ang address na naibigay: '; +$PHPMAILER_LANG['mailer_not_supported'] = 'Ang mailer ay hindi suportado.'; +$PHPMAILER_LANG['provide_address'] = 'Kailangan mong magbigay ng kahit isang email address na tatanggap.'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP Error: Ang mga sumusunod na tatanggap ay nabigo: '; +$PHPMAILER_LANG['signing'] = 'Hindi ma-sign: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'Ang SMTP connect() ay nabigo.'; +$PHPMAILER_LANG['smtp_error'] = 'Ang server ng SMTP ay nabigo: '; +$PHPMAILER_LANG['variable_set'] = 'Hindi matatakda o ma-reset ang mga variables: '; +$PHPMAILER_LANG['extension_missing'] = 'Nawawala ang extension: '; diff --git a/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-tr.php b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-tr.php new file mode 100644 index 0000000..f938f80 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-tr.php @@ -0,0 +1,31 @@ + + * @fixed by Boris Yurchenko + */ + +$PHPMAILER_LANG['authenticate'] = 'Помилка SMTP: помилка авторизації.'; +$PHPMAILER_LANG['connect_host'] = 'Помилка SMTP: не вдається під\'єднатися до SMTP-серверу.'; +$PHPMAILER_LANG['data_not_accepted'] = 'Помилка SMTP: дані не прийнято.'; +$PHPMAILER_LANG['encoding'] = 'Невідоме кодування: '; +$PHPMAILER_LANG['execute'] = 'Неможливо виконати команду: '; +$PHPMAILER_LANG['file_access'] = 'Немає доступу до файлу: '; +$PHPMAILER_LANG['file_open'] = 'Помилка файлової системи: не вдається відкрити файл: '; +$PHPMAILER_LANG['from_failed'] = 'Невірна адреса відправника: '; +$PHPMAILER_LANG['instantiate'] = 'Неможливо запустити функцію mail().'; +$PHPMAILER_LANG['provide_address'] = 'Будь ласка, введіть хоча б одну email-адресу отримувача.'; +$PHPMAILER_LANG['mailer_not_supported'] = ' - поштовий сервер не підтримується.'; +$PHPMAILER_LANG['recipients_failed'] = 'Помилка SMTP: не вдалося відправлення для таких отримувачів: '; +$PHPMAILER_LANG['empty_message'] = 'Пусте повідомлення'; +$PHPMAILER_LANG['invalid_address'] = 'Не відправлено через неправильний формат email-адреси: '; +$PHPMAILER_LANG['signing'] = 'Помилка підпису: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'Помилка з\'єднання з SMTP-сервером'; +$PHPMAILER_LANG['smtp_error'] = 'Помилка SMTP-сервера: '; +$PHPMAILER_LANG['variable_set'] = 'Неможливо встановити або скинути змінну: '; +$PHPMAILER_LANG['extension_missing'] = 'Розширення відсутнє: '; diff --git a/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-vi.php b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-vi.php new file mode 100644 index 0000000..d65576e --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-vi.php @@ -0,0 +1,27 @@ + + */ + +$PHPMAILER_LANG['authenticate'] = 'Lỗi SMTP: Không thể xác thực.'; +$PHPMAILER_LANG['connect_host'] = 'Lỗi SMTP: Không thể kết nối máy chủ SMTP.'; +$PHPMAILER_LANG['data_not_accepted'] = 'Lỗi SMTP: Dữ liệu không được chấp nhận.'; +$PHPMAILER_LANG['empty_message'] = 'Không có nội dung'; +$PHPMAILER_LANG['encoding'] = 'Mã hóa không xác định: '; +$PHPMAILER_LANG['execute'] = 'Không thực hiện được: '; +$PHPMAILER_LANG['file_access'] = 'Không thể truy cập tệp tin '; +$PHPMAILER_LANG['file_open'] = 'Lỗi Tập tin: Không thể mở tệp tin: '; +$PHPMAILER_LANG['from_failed'] = 'Lỗi địa chỉ gửi đi: '; +$PHPMAILER_LANG['instantiate'] = 'Không dùng được các hàm gửi thư.'; +$PHPMAILER_LANG['invalid_address'] = 'Đại chỉ emai không đúng: '; +$PHPMAILER_LANG['mailer_not_supported'] = ' trình gửi thư không được hỗ trợ.'; +$PHPMAILER_LANG['provide_address'] = 'Bạn phải cung cấp ít nhất một địa chỉ người nhận.'; +$PHPMAILER_LANG['recipients_failed'] = 'Lỗi SMTP: lỗi địa chỉ người nhận: '; +$PHPMAILER_LANG['signing'] = 'Lỗi đăng nhập: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'Lỗi kết nối với SMTP'; +$PHPMAILER_LANG['smtp_error'] = 'Lỗi máy chủ smtp '; +$PHPMAILER_LANG['variable_set'] = 'Không thể thiết lập hoặc thiết lập lại biến: '; +//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; diff --git a/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-zh.php b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-zh.php new file mode 100644 index 0000000..35e4e70 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-zh.php @@ -0,0 +1,29 @@ + + * @author Peter Dave Hello <@PeterDaveHello/> + * @author Jason Chiang + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP 錯誤:登入失敗。'; +$PHPMAILER_LANG['connect_host'] = 'SMTP 錯誤:無法連線到 SMTP 主機。'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP 錯誤:無法接受的資料。'; +$PHPMAILER_LANG['empty_message'] = '郵件內容為空'; +$PHPMAILER_LANG['encoding'] = '未知編碼: '; +$PHPMAILER_LANG['execute'] = '無法執行:'; +$PHPMAILER_LANG['file_access'] = '無法存取檔案:'; +$PHPMAILER_LANG['file_open'] = '檔案錯誤:無法開啟檔案:'; +$PHPMAILER_LANG['from_failed'] = '發送地址錯誤:'; +$PHPMAILER_LANG['instantiate'] = '未知函數呼叫。'; +$PHPMAILER_LANG['invalid_address'] = '因為電子郵件地址無效,無法傳送: '; +$PHPMAILER_LANG['mailer_not_supported'] = '不支援的發信客戶端。'; +$PHPMAILER_LANG['provide_address'] = '必須提供至少一個收件人地址。'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP 錯誤:以下收件人地址錯誤:'; +$PHPMAILER_LANG['signing'] = '電子簽章錯誤: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP 連線失敗'; +$PHPMAILER_LANG['smtp_error'] = 'SMTP 伺服器錯誤: '; +$PHPMAILER_LANG['variable_set'] = '無法設定或重設變數: '; +$PHPMAILER_LANG['extension_missing'] = '遺失模組 Extension: '; diff --git a/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-zh_cn.php b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-zh_cn.php new file mode 100644 index 0000000..728a499 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-zh_cn.php @@ -0,0 +1,29 @@ + + * @author young + * @author Teddysun + */ + +$PHPMAILER_LANG['authenticate'] = 'SMTP 错误:登录失败。'; +$PHPMAILER_LANG['connect_host'] = 'SMTP 错误:无法连接到 SMTP 主机。'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP 错误:数据不被接受。'; +$PHPMAILER_LANG['empty_message'] = '邮件正文为空。'; +$PHPMAILER_LANG['encoding'] = '未知编码:'; +$PHPMAILER_LANG['execute'] = '无法执行:'; +$PHPMAILER_LANG['file_access'] = '无法访问文件:'; +$PHPMAILER_LANG['file_open'] = '文件错误:无法打开文件:'; +$PHPMAILER_LANG['from_failed'] = '发送地址错误:'; +$PHPMAILER_LANG['instantiate'] = '未知函数调用。'; +$PHPMAILER_LANG['invalid_address'] = '发送失败,电子邮箱地址是无效的:'; +$PHPMAILER_LANG['mailer_not_supported'] = '发信客户端不被支持。'; +$PHPMAILER_LANG['provide_address'] = '必须提供至少一个收件人地址。'; +$PHPMAILER_LANG['recipients_failed'] = 'SMTP 错误:收件人地址错误:'; +$PHPMAILER_LANG['signing'] = '登录失败:'; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP服务器连接失败。'; +$PHPMAILER_LANG['smtp_error'] = 'SMTP服务器出错:'; +$PHPMAILER_LANG['variable_set'] = '无法设置或重置变量:'; +$PHPMAILER_LANG['extension_missing'] = '丢失模块 Extension:'; diff --git a/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/src/Exception.php b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/src/Exception.php new file mode 100644 index 0000000..52eaf95 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/src/Exception.php @@ -0,0 +1,40 @@ + + * @author Jim Jagielski (jimjag) + * @author Andy Prevost (codeworxtech) + * @author Brent R. Matzelle (original founder) + * @copyright 2012 - 2020 Marcus Bointon + * @copyright 2010 - 2012 Jim Jagielski + * @copyright 2004 - 2009 Andy Prevost + * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License + * @note This program is distributed in the hope that it will be useful - WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. + */ + +namespace PHPMailer\PHPMailer; + +/** + * PHPMailer exception handler. + * + * @author Marcus Bointon + */ +class Exception extends \Exception +{ + /** + * Prettify error message output. + * + * @return string + */ + public function errorMessage() + { + return '' . htmlspecialchars($this->getMessage(), ENT_COMPAT | ENT_HTML401) . "
\n"; + } +} diff --git a/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/src/OAuth.php b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/src/OAuth.php new file mode 100644 index 0000000..c1d5b77 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/src/OAuth.php @@ -0,0 +1,139 @@ + + * @author Jim Jagielski (jimjag) + * @author Andy Prevost (codeworxtech) + * @author Brent R. Matzelle (original founder) + * @copyright 2012 - 2020 Marcus Bointon + * @copyright 2010 - 2012 Jim Jagielski + * @copyright 2004 - 2009 Andy Prevost + * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License + * @note This program is distributed in the hope that it will be useful - WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. + */ + +namespace PHPMailer\PHPMailer; + +use League\OAuth2\Client\Grant\RefreshToken; +use League\OAuth2\Client\Provider\AbstractProvider; +use League\OAuth2\Client\Token\AccessToken; + +/** + * OAuth - OAuth2 authentication wrapper class. + * Uses the oauth2-client package from the League of Extraordinary Packages. + * + * @see http://oauth2-client.thephpleague.com + * + * @author Marcus Bointon (Synchro/coolbru) + */ +class OAuth implements OAuthTokenProvider +{ + /** + * An instance of the League OAuth Client Provider. + * + * @var AbstractProvider + */ + protected $provider; + + /** + * The current OAuth access token. + * + * @var AccessToken + */ + protected $oauthToken; + + /** + * The user's email address, usually used as the login ID + * and also the from address when sending email. + * + * @var string + */ + protected $oauthUserEmail = ''; + + /** + * The client secret, generated in the app definition of the service you're connecting to. + * + * @var string + */ + protected $oauthClientSecret = ''; + + /** + * The client ID, generated in the app definition of the service you're connecting to. + * + * @var string + */ + protected $oauthClientId = ''; + + /** + * The refresh token, used to obtain new AccessTokens. + * + * @var string + */ + protected $oauthRefreshToken = ''; + + /** + * OAuth constructor. + * + * @param array $options Associative array containing + * `provider`, `userName`, `clientSecret`, `clientId` and `refreshToken` elements + */ + public function __construct($options) + { + $this->provider = $options['provider']; + $this->oauthUserEmail = $options['userName']; + $this->oauthClientSecret = $options['clientSecret']; + $this->oauthClientId = $options['clientId']; + $this->oauthRefreshToken = $options['refreshToken']; + } + + /** + * Get a new RefreshToken. + * + * @return RefreshToken + */ + protected function getGrant() + { + return new RefreshToken(); + } + + /** + * Get a new AccessToken. + * + * @return AccessToken + */ + protected function getToken() + { + return $this->provider->getAccessToken( + $this->getGrant(), + ['refresh_token' => $this->oauthRefreshToken] + ); + } + + /** + * Generate a base64-encoded OAuth token. + * + * @return string + */ + public function getOauth64() + { + //Get a new token if it's not available or has expired + if (null === $this->oauthToken || $this->oauthToken->hasExpired()) { + $this->oauthToken = $this->getToken(); + } + + return base64_encode( + 'user=' . + $this->oauthUserEmail . + "\001auth=Bearer " . + $this->oauthToken . + "\001\001" + ); + } +} diff --git a/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/src/OAuthTokenProvider.php b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/src/OAuthTokenProvider.php new file mode 100644 index 0000000..1155507 --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/src/OAuthTokenProvider.php @@ -0,0 +1,44 @@ + + * @author Jim Jagielski (jimjag) + * @author Andy Prevost (codeworxtech) + * @author Brent R. Matzelle (original founder) + * @copyright 2012 - 2020 Marcus Bointon + * @copyright 2010 - 2012 Jim Jagielski + * @copyright 2004 - 2009 Andy Prevost + * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License + * @note This program is distributed in the hope that it will be useful - WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. + */ + +namespace PHPMailer\PHPMailer; + +/** + * OAuthTokenProvider - OAuth2 token provider interface. + * Provides base64 encoded OAuth2 auth strings for SMTP authentication. + * + * @see OAuth + * @see SMTP::authenticate() + * + * @author Peter Scopes (pdscopes) + * @author Marcus Bointon (Synchro/coolbru) + */ +interface OAuthTokenProvider +{ + /** + * Generate a base64-encoded OAuth token ensuring that the access token has not expired. + * The string to be base 64 encoded should be in the form: + * "user=\001auth=Bearer \001\001" + * + * @return string + */ + public function getOauth64(); +} diff --git a/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/src/PHPMailer.php b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/src/PHPMailer.php new file mode 100644 index 0000000..e14cdbf --- /dev/null +++ b/public_html/2022/newcms/lib/vendor/phpmailer/phpmailer/src/PHPMailer.php @@ -0,0 +1,5126 @@ + + * @author Jim Jagielski (jimjag) + * @author Andy Prevost (codeworxtech) + * @author Brent R. Matzelle (original founder) + * @copyright 2012 - 2020 Marcus Bointon + * @copyright 2010 - 2012 Jim Jagielski + * @copyright 2004 - 2009 Andy Prevost + * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License + * @note This program is distributed in the hope that it will be useful - WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. + */ + +namespace PHPMailer\PHPMailer; + +/** + * PHPMailer - PHP email creation and transport class. + * + * @author Marcus Bointon (Synchro/coolbru) + * @author Jim Jagielski (jimjag) + * @author Andy Prevost (codeworxtech) + * @author Brent R. Matzelle (original founder) + */ +class PHPMailer +{ + const CHARSET_ASCII = 'us-ascii'; + const CHARSET_ISO88591 = 'iso-8859-1'; + const CHARSET_UTF8 = 'utf-8'; + + const CONTENT_TYPE_PLAINTEXT = 'text/plain'; + const CONTENT_TYPE_TEXT_CALENDAR = 'text/calendar'; + const CONTENT_TYPE_TEXT_HTML = 'text/html'; + const CONTENT_TYPE_MULTIPART_ALTERNATIVE = 'multipart/alternative'; + const CONTENT_TYPE_MULTIPART_MIXED = 'multipart/mixed'; + const CONTENT_TYPE_MULTIPART_RELATED = 'multipart/related'; + + const ENCODING_7BIT = '7bit'; + const ENCODING_8BIT = '8bit'; + const ENCODING_BASE64 = 'base64'; + const ENCODING_BINARY = 'binary'; + const ENCODING_QUOTED_PRINTABLE = 'quoted-printable'; + + const ENCRYPTION_STARTTLS = 'tls'; + const ENCRYPTION_SMTPS = 'ssl'; + + const ICAL_METHOD_REQUEST = 'REQUEST'; + const ICAL_METHOD_PUBLISH = 'PUBLISH'; + const ICAL_METHOD_REPLY = 'REPLY'; + const ICAL_METHOD_ADD = 'ADD'; + const ICAL_METHOD_CANCEL = 'CANCEL'; + const ICAL_METHOD_REFRESH = 'REFRESH'; + const ICAL_METHOD_COUNTER = 'COUNTER'; + const ICAL_METHOD_DECLINECOUNTER = 'DECLINECOUNTER'; + + /** + * Email priority. + * Options: null (default), 1 = High, 3 = Normal, 5 = low. + * When null, the header is not set at all. + * + * @var int|null + */ + public $Priority; + + /** + * The character set of the message. + * + * @var string + */ + public $CharSet = self::CHARSET_ISO88591; + + /** + * The MIME Content-type of the message. + * + * @var string + */ + public $ContentType = self::CONTENT_TYPE_PLAINTEXT; + + /** + * The message encoding. + * Options: "8bit", "7bit", "binary", "base64", and "quoted-printable". + * + * @var string + */ + public $Encoding = self::ENCODING_8BIT; + + /** + * Holds the most recent mailer error message. + * + * @var string + */ + public $ErrorInfo = ''; + + /** + * The From email address for the message. + * + * @var string + */ + public $From = ''; + + /** + * The From name of the message. + * + * @var string + */ + public $FromName = ''; + + /** + * The envelope sender of the message. + * This will usually be turned into a Return-Path header by the receiver, + * and is the address that bounces will be sent to. + * If not empty, will be passed via `-f` to sendmail or as the 'MAIL FROM' value over SMTP. + * + * @var string + */ + public $Sender = ''; + + /** + * The Subject of the message. + * + * @var string + */ + public $Subject = ''; + + /** + * An HTML or plain text message body. + * If HTML then call isHTML(true). + * + * @var string + */ + public $Body = ''; + + /** + * The plain-text message body. + * This body can be read by mail clients that do not have HTML email + * capability such as mutt & Eudora. + * Clients that can read HTML will view the normal Body. + * + * @var string + */ + public $AltBody = ''; + + /** + * An iCal message part body. + * Only supported in simple alt or alt_inline message types + * To generate iCal event structures, use classes like EasyPeasyICS or iCalcreator. + * + * @see http://sprain.ch/blog/downloads/php-class-easypeasyics-create-ical-files-with-php/ + * @see http://kigkonsult.se/iCalcreator/ + * + * @var string + */ + public $Ical = ''; + + /** + * Value-array of "method" in Contenttype header "text/calendar" + * + * @var string[] + */ + protected static $IcalMethods = [ + self::ICAL_METHOD_REQUEST, + self::ICAL_METHOD_PUBLISH, + self::ICAL_METHOD_REPLY, + self::ICAL_METHOD_ADD, + self::ICAL_METHOD_CANCEL, + self::ICAL_METHOD_REFRESH, + self::ICAL_METHOD_COUNTER, + self::ICAL_METHOD_DECLINECOUNTER, + ]; + + /** + * The complete compiled MIME message body. + * + * @var string + */ + protected $MIMEBody = ''; + + /** + * The complete compiled MIME message headers. + * + * @var string + */ + protected $MIMEHeader = ''; + + /** + * Extra headers that createHeader() doesn't fold in. + * + * @var string + */ + protected $mailHeader = ''; + + /** + * Word-wrap the message body to this number of chars. + * Set to 0 to not wrap. A useful value here is 78, for RFC2822 section 2.1.1 compliance. + * + * @see static::STD_LINE_LENGTH + * + * @var int + */ + public $WordWrap = 0; + + /** + * Which method to use to send mail. + * Options: "mail", "sendmail", or "smtp". + * + * @var string + */ + public $Mailer = 'mail'; + + /** + * The path to the sendmail program. + * + * @var string + */ + public $Sendmail = '/usr/sbin/sendmail'; + + /** + * Whether mail() uses a fully sendmail-compatible MTA. + * One which supports sendmail's "-oi -f" options. + * + * @var bool + */ + public $UseSendmailOptions = true; + + /** + * The email address that a reading confirmation should be sent to, also known as read receipt. + * + * @var string + */ + public $ConfirmReadingTo = ''; + + /** + * The hostname to use in the Message-ID header and as default HELO string. + * If empty, PHPMailer attempts to find one with, in order, + * $_SERVER['SERVER_NAME'], gethostname(), php_uname('n'), or the value + * 'localhost.localdomain'. + * + * @see PHPMailer::$Helo + * + * @var string + */ + public $Hostname = ''; + + /** + * An ID to be used in the Message-ID header. + * If empty, a unique id will be generated. + * You can set your own, but it must be in the format "", + * as defined in RFC5322 section 3.6.4 or it will be ignored. + * + * @see https://tools.ietf.org/html/rfc5322#section-3.6.4 + * + * @var string + */ + public $MessageID = ''; + + /** + * The message Date to be used in the Date header. + * If empty, the current date will be added. + * + * @var string + */ + public $MessageDate = ''; + + /** + * SMTP hosts. + * Either a single hostname or multiple semicolon-delimited hostnames. + * You can also specify a different port + * for each host by using this format: [hostname:port] + * (e.g. "smtp1.example.com:25;smtp2.example.com"). + * You can also specify encryption type, for example: + * (e.g. "tls://smtp1.example.com:587;ssl://smtp2.example.com:465"). + * Hosts will be tried in order. + * + * @var string + */ + public $Host = 'localhost'; + + /** + * The default SMTP server port. + * + * @var int + */ + public $Port = 25; + + /** + * The SMTP HELO/EHLO name used for the SMTP connection. + * Default is $Hostname. If $Hostname is empty, PHPMailer attempts to find + * one with the same method described above for $Hostname. + * + * @see PHPMailer::$Hostname + * + * @var string + */ + public $Helo = ''; + + /** + * What kind of encryption to use on the SMTP connection. + * Options: '', static::ENCRYPTION_STARTTLS, or static::ENCRYPTION_SMTPS. + * + * @var string + */ + public $SMTPSecure = ''; + + /** + * Whether to enable TLS encryption automatically if a server supports it, + * even if `SMTPSecure` is not set to 'tls'. + * Be aware that in PHP >= 5.6 this requires that the server's certificates are valid. + * + * @var bool + */ + public $SMTPAutoTLS = true; + + /** + * Whether to use SMTP authentication. + * Uses the Username and Password properties. + * + * @see PHPMailer::$Username + * @see PHPMailer::$Password + * + * @var bool + */ + public $SMTPAuth = false; + + /** + * Options array passed to stream_context_create when connecting via SMTP. + * + * @var array + */ + public $SMTPOptions = []; + + /** + * SMTP username. + * + * @var string + */ + public $Username = ''; + + /** + * SMTP password. + * + * @var string + */ + public $Password = ''; + + /** + * SMTP authentication type. Options are CRAM-MD5, LOGIN, PLAIN, XOAUTH2. + * If not specified, the first one from that list that the server supports will be selected. + * + * @var string + */ + public $AuthType = ''; + + /** + * An implementation of the PHPMailer OAuthTokenProvider interface. + * + * @var OAuthTokenProvider + */ + protected $oauth; + + /** + * The SMTP server timeout in seconds. + * Default of 5 minutes (300sec) is from RFC2821 section 4.5.3.2. + * + * @var int + */ + public $Timeout = 300; + + /** + * Comma separated list of DSN notifications + * 'NEVER' under no circumstances a DSN must be returned to the sender. + * If you use NEVER all other notifications will be ignored. + * 'SUCCESS' will notify you when your mail has arrived at its destination. + * 'FAILURE' will arrive if an error occurred during delivery. + * 'DELAY' will notify you if there is an unusual delay in delivery, but the actual + * delivery's outcome (success or failure) is not yet decided. + * + * @see https://tools.ietf.org/html/rfc3461 See section 4.1 for more information about NOTIFY + */ + public $dsn = ''; + + /** + * SMTP class debug output mode. + * Debug output level. + * Options: + * @see SMTP::DEBUG_OFF: No output + * @see SMTP::DEBUG_CLIENT: Client messages + * @see SMTP::DEBUG_SERVER: Client and server messages + * @see SMTP::DEBUG_CONNECTION: As SERVER plus connection status + * @see SMTP::DEBUG_LOWLEVEL: Noisy, low-level data output, rarely needed + * + * @see SMTP::$do_debug + * + * @var int + */ + public $SMTPDebug = 0; + + /** + * How to handle debug output. + * Options: + * * `echo` Output plain-text as-is, appropriate for CLI + * * `html` Output escaped, line breaks converted to `
`, appropriate for browser output + * * `error_log` Output to error log as configured in php.ini + * By default PHPMailer will use `echo` if run from a `cli` or `cli-server` SAPI, `html` otherwise. + * Alternatively, you can provide a callable expecting two params: a message string and the debug level: + * + * ```php + * $mail->Debugoutput = function($str, $level) {echo "debug level $level; message: $str";}; + * ``` + * + * Alternatively, you can pass in an instance of a PSR-3 compatible logger, though only `debug` + * level output is used: + * + * ```php + * $mail->Debugoutput = new myPsr3Logger; + * ``` + * + * @see SMTP::$Debugoutput + * + * @var string|callable|\Psr\Log\LoggerInterface + */ + public $Debugoutput = 'echo'; + + /** + * Whether to keep the SMTP connection open after each message. + * If this is set to true then the connection will remain open after a send, + * and closing the connection will require an explicit call to smtpClose(). + * It's a good idea to use this if you are sending multiple messages as it reduces overhead. + * See the mailing list example for how to use it. + * + * @var bool + */ + public $SMTPKeepAlive = false; + + /** + * Whether to split multiple to addresses into multiple messages + * or send them all in one message. + * Only supported in `mail` and `sendmail` transports, not in SMTP. + * + * @var bool + * + * @deprecated 6.0.0 PHPMailer isn't a mailing list manager! + */ + public $SingleTo = false; + + /** + * Storage for addresses when SingleTo is enabled. + * + * @var array + */ + protected $SingleToArray = []; + + /** + * Whether to generate VERP addresses on send. + * Only applicable when sending via SMTP. + * + * @see https://en.wikipedia.org/wiki/Variable_envelope_return_path + * @see http://www.postfix.org/VERP_README.html Postfix VERP info + * + * @var bool + */ + public $do_verp = false; + + /** + * Whether to allow sending messages with an empty body. + * + * @var bool + */ + public $AllowEmpty = false; + + /** + * DKIM selector. + * + * @var string + */ + public $DKIM_selector = ''; + + /** + * DKIM Identity. + * Usually the email address used as the source of the email. + * + * @var string + */ + public $DKIM_identity = ''; + + /** + * DKIM passphrase. + * Used if your key is encrypted. + * + * @var string + */ + public $DKIM_passphrase = ''; + + /** + * DKIM signing domain name. + * + * @example 'example.com' + * + * @var string + */ + public $DKIM_domain = ''; + + /** + * DKIM Copy header field values for diagnostic use. + * + * @var bool + */ + public $DKIM_copyHeaderFields = true; + + /** + * DKIM Extra signing headers. + * + * @example ['List-Unsubscribe', 'List-Help'] + * + * @var array + */ + public $DKIM_extraHeaders = []; + + /** + * DKIM private key file path. + * + * @var string + */ + public $DKIM_private = ''; + + /** + * DKIM private key string. + * + * If set, takes precedence over `$DKIM_private`. + * + * @var string + */ + public $DKIM_private_string = ''; + + /** + * Callback Action function name. + * + * The function that handles the result of the send email action. + * It is called out by send() for each email sent. + * + * Value can be any php callable: http://www.php.net/is_callable + * + * Parameters: + * bool $result result of the send action + * array $to email addresses of the recipients + * array $cc cc email addresses + * array $bcc bcc email addresses + * string $subject the subject + * string $body the email body + * string $from email address of sender + * string $extra extra information of possible use + * "smtp_transaction_id' => last smtp transaction id + * + * @var string + */ + public $action_function = ''; + + /** + * What to put in the X-Mailer header. + * Options: An empty string for PHPMailer default, whitespace/null for none, or a string to use. + * + * @var string|null + */ + public $XMailer = ''; + + /** + * Which validator to use by default when validating email addresses. + * May be a callable to inject your own validator, but there are several built-in validators. + * The default validator uses PHP's FILTER_VALIDATE_EMAIL filter_var option. + * + * @see PHPMailer::validateAddress() + * + * @var string|callable + */ + public static $validator = 'php'; + + /** + * An instance of the SMTP sender class. + * + * @var SMTP + */ + protected $smtp; + + /** + * The array of 'to' names and addresses. + * + * @var array + */ + protected $to = []; + + /** + * The array of 'cc' names and addresses. + * + * @var array + */ + protected $cc = []; + + /** + * The array of 'bcc' names and addresses. + * + * @var array + */ + protected $bcc = []; + + /** + * The array of reply-to names and addresses. + * + * @var array + */ + protected $ReplyTo = []; + + /** + * An array of all kinds of addresses. + * Includes all of $to, $cc, $bcc. + * + * @see PHPMailer::$to + * @see PHPMailer::$cc + * @see PHPMailer::$bcc + * + * @var array + */ + protected $all_recipients = []; + + /** + * An array of names and addresses queued for validation. + * In send(), valid and non duplicate entries are moved to $all_recipients + * and one of $to, $cc, or $bcc. + * This array is used only for addresses with IDN. + * + * @see PHPMailer::$to + * @see PHPMailer::$cc + * @see PHPMailer::$bcc + * @see PHPMailer::$all_recipients + * + * @var array + */ + protected $RecipientsQueue = []; + + /** + * An array of reply-to names and addresses queued for validation. + * In send(), valid and non duplicate entries are moved to $ReplyTo. + * This array is used only for addresses with IDN. + * + * @see PHPMailer::$ReplyTo + * + * @var array + */ + protected $ReplyToQueue = []; + + /** + * The array of attachments. + * + * @var array + */ + protected $attachment = []; + + /** + * The array of custom headers. + * + * @var array + */ + protected $CustomHeader = []; + + /** + * The most recent Message-ID (including angular brackets). + * + * @var string + */ + protected $lastMessageID = ''; + + /** + * The message's MIME type. + * + * @var string + */ + protected $message_type = ''; + + /** + * The array of MIME boundary strings. + * + * @var array + */ + protected $boundary = []; + + /** + * The array of available text strings for the current language. + * + * @var array + */ + protected $language = []; + + /** + * The number of errors encountered. + * + * @var int + */ + protected $error_count = 0; + + /** + * The S/MIME certificate file path. + * + * @var string + */ + protected $sign_cert_file = ''; + + /** + * The S/MIME key file path. + * + * @var string + */ + protected $sign_key_file = ''; + + /** + * The optional S/MIME extra certificates ("CA Chain") file path. + * + * @var string + */ + protected $sign_extracerts_file = ''; + + /** + * The S/MIME password for the key. + * Used only if the key is encrypted. + * + * @var string + */ + protected $sign_key_pass = ''; + + /** + * Whether to throw exceptions for errors. + * + * @var bool + */ + protected $exceptions = false; + + /** + * Unique ID used for message ID and boundaries. + * + * @var string + */ + protected $uniqueid = ''; + + /** + * The PHPMailer Version number. + * + * @var string + */ + const VERSION = '6.7.1'; + + /** + * Error severity: message only, continue processing. + * + * @var int + */ + const STOP_MESSAGE = 0; + + /** + * Error severity: message, likely ok to continue processing. + * + * @var int + */ + const STOP_CONTINUE = 1; + + /** + * Error severity: message, plus full stop, critical error reached. + * + * @var int + */ + const STOP_CRITICAL = 2; + + /** + * The SMTP standard CRLF line break. + * If you want to change line break format, change static::$LE, not this. + */ + const CRLF = "\r\n"; + + /** + * "Folding White Space" a white space string used for line folding. + */ + const FWS = ' '; + + /** + * SMTP RFC standard line ending; Carriage Return, Line Feed. + * + * @var string + */ + protected static $LE = self::CRLF; + + /** + * The maximum line length supported by mail(). + * + * Background: mail() will sometimes corrupt messages + * with headers headers longer than 65 chars, see #818. + * + * @var int + */ + const MAIL_MAX_LINE_LENGTH = 63; + + /** + * The maximum line length allowed by RFC 2822 section 2.1.1. + * + * @var int + */ + const MAX_LINE_LENGTH = 998; + + /** + * The lower maximum line length allowed by RFC 2822 section 2.1.1. + * This length does NOT include the line break + * 76 means that lines will be 77 or 78 chars depending on whether + * the line break format is LF or CRLF; both are valid. + * + * @var int + */ + const STD_LINE_LENGTH = 76; + + /** + * Constructor. + * + * @param bool $exceptions Should we throw external exceptions? + */ + public function __construct($exceptions = null) + { + if (null !== $exceptions) { + $this->exceptions = (bool) $exceptions; + } + //Pick an appropriate debug output format automatically + $this->Debugoutput = (strpos(PHP_SAPI, 'cli') !== false ? 'echo' : 'html'); + } + + /** + * Destructor. + */ + public function __destruct() + { + //Close any open SMTP connection nicely + $this->smtpClose(); + } + + /** + * Call mail() in a safe_mode-aware fashion. + * Also, unless sendmail_path points to sendmail (or something that + * claims to be sendmail), don't pass params (not a perfect fix, + * but it will do). + * + * @param string $to To + * @param string $subject Subject + * @param string $body Message Body + * @param string $header Additional Header(s) + * @param string|null $params Params + * + * @return bool + */ + private function mailPassthru($to, $subject, $body, $header, $params) + { + //Check overloading of mail function to avoid double-encoding + if ((int)ini_get('mbstring.func_overload') & 1) { + $subject = $this->secureHeader($subject); + } else { + $subject = $this->encodeHeader($this->secureHeader($subject)); + } + //Calling mail() with null params breaks + $this->edebug('Sending with mail()'); + $this->edebug('Sendmail path: ' . ini_get('sendmail_path')); + $this->edebug("Envelope sender: {$this->Sender}"); + $this->edebug("To: {$to}"); + $this->edebug("Subject: {$subject}"); + $this->edebug("Headers: {$header}"); + if (!$this->UseSendmailOptions || null === $params) { + $result = @mail($to, $subject, $body, $header); + } else { + $this->edebug("Additional params: {$params}"); + $result = @mail($to, $subject, $body, $header, $params); + } + $this->edebug('Result: ' . ($result ? 'true' : 'false')); + return $result; + } + + /** + * Output debugging info via a user-defined method. + * Only generates output if debug output is enabled. + * + * @see PHPMailer::$Debugoutput + * @see PHPMailer::$SMTPDebug + * + * @param string $str + */ + protected function edebug($str) + { + if ($this->SMTPDebug <= 0) { + return; + } + //Is this a PSR-3 logger? + if ($this->Debugoutput instanceof \Psr\Log\LoggerInterface) { + $this->Debugoutput->debug($str); + + return; + } + //Avoid clash with built-in function names + if (is_callable($this->Debugoutput) && !in_array($this->Debugoutput, ['error_log', 'html', 'echo'])) { + call_user_func($this->Debugoutput, $str, $this->SMTPDebug); + + return; + } + switch ($this->Debugoutput) { + case 'error_log': + //Don't output, just log + /** @noinspection ForgottenDebugOutputInspection */ + error_log($str); + break; + case 'html': + //Cleans up output a bit for a better looking, HTML-safe output + echo htmlentities( + preg_replace('/[\r\n]+/', '', $str), + ENT_QUOTES, + 'UTF-8' + ), "
\n"; + break; + case 'echo': + default: + //Normalize line breaks + $str = preg_replace('/\r\n|\r/m', "\n", $str); + echo gmdate('Y-m-d H:i:s'), + "\t", + //Trim trailing space + trim( + //Indent for readability, except for trailing break + str_replace( + "\n", + "\n \t ", + trim($str) + ) + ), + "\n"; + } + } + + /** + * Sets message type to HTML or plain. + * + * @param bool $isHtml True for HTML mode + */ + public function isHTML($isHtml = true) + { + if ($isHtml) { + $this->ContentType = static::CONTENT_TYPE_TEXT_HTML; + } else { + $this->ContentType = static::CONTENT_TYPE_PLAINTEXT; + } + } + + /** + * Send messages using SMTP. + */ + public function isSMTP() + { + $this->Mailer = 'smtp'; + } + + /** + * Send messages using PHP's mail() function. + */ + public function isMail() + { + $this->Mailer = 'mail'; + } + + /** + * Send messages using $Sendmail. + */ + public function isSendmail() + { + $ini_sendmail_path = ini_get('sendmail_path'); + + if (false === stripos($ini_sendmail_path, 'sendmail')) { + $this->Sendmail = '/usr/sbin/sendmail'; + } else { + $this->Sendmail = $ini_sendmail_path; + } + $this->Mailer = 'sendmail'; + } + + /** + * Send messages using qmail. + */ + public function isQmail() + { + $ini_sendmail_path = ini_get('sendmail_path'); + + if (false === stripos($ini_sendmail_path, 'qmail')) { + $this->Sendmail = '/var/qmail/bin/qmail-inject'; + } else { + $this->Sendmail = $ini_sendmail_path; + } + $this->Mailer = 'qmail'; + } + + /** + * Add a "To" address. + * + * @param string $address The email address to send to + * @param string $name + * + * @throws Exception + * + * @return bool true on success, false if address already used or invalid in some way + */ + public function addAddress($address, $name = '') + { + return $this->addOrEnqueueAnAddress('to', $address, $name); + } + + /** + * Add a "CC" address. + * + * @param string $address The email address to send to + * @param string $name + * + * @throws Exception + * + * @return bool true on success, false if address already used or invalid in some way + */ + public function addCC($address, $name = '') + { + return $this->addOrEnqueueAnAddress('cc', $address, $name); + } + + /** + * Add a "BCC" address. + * + * @param string $address The email address to send to + * @param string $name + * + * @throws Exception + * + * @return bool true on success, false if address already used or invalid in some way + */ + public function addBCC($address, $name = '') + { + return $this->addOrEnqueueAnAddress('bcc', $address, $name); + } + + /** + * Add a "Reply-To" address. + * + * @param string $address The email address to reply to + * @param string $name + * + * @throws Exception + * + * @return bool true on success, false if address already used or invalid in some way + */ + public function addReplyTo($address, $name = '') + { + return $this->addOrEnqueueAnAddress('Reply-To', $address, $name); + } + + /** + * Add an address to one of the recipient arrays or to the ReplyTo array. Because PHPMailer + * can't validate addresses with an IDN without knowing the PHPMailer::$CharSet (that can still + * be modified after calling this function), addition of such addresses is delayed until send(). + * Addresses that have been added already return false, but do not throw exceptions. + * + * @param string $kind One of 'to', 'cc', 'bcc', or 'ReplyTo' + * @param string $address The email address + * @param string $name An optional username associated with the address + * + * @throws Exception + * + * @return bool true on success, false if address already used or invalid in some way + */ + protected function addOrEnqueueAnAddress($kind, $address, $name) + { + $pos = false; + if ($address !== null) { + $address = trim($address); + $pos = strrpos($address, '@'); + } + if (false === $pos) { + //At-sign is missing. + $error_message = sprintf( + '%s (%s): %s', + $this->lang('invalid_address'), + $kind, + $address + ); + $this->setError($error_message); + $this->edebug($error_message); + if ($this->exceptions) { + throw new Exception($error_message); + } + + return false; + } + if ($name !== null && is_string($name)) { + $name = trim(preg_replace('/[\r\n]+/', '', $name)); //Strip breaks and trim + } else { + $name = ''; + } + $params = [$kind, $address, $name]; + //Enqueue addresses with IDN until we know the PHPMailer::$CharSet. + //Domain is assumed to be whatever is after the last @ symbol in the address + if (static::idnSupported() && $this->has8bitChars(substr($address, ++$pos))) { + if ('Reply-To' !== $kind) { + if (!array_key_exists($address, $this->RecipientsQueue)) { + $this->RecipientsQueue[$address] = $params; + + return true; + } + } elseif (!array_key_exists($address, $this->ReplyToQueue)) { + $this->ReplyToQueue[$address] = $params; + + return true; + } + + return false; + } + + //Immediately add standard addresses without IDN. + return call_user_func_array([$this, 'addAnAddress'], $params); + } + + /** + * Set the boundaries to use for delimiting MIME parts. + * If you override this, ensure you set all 3 boundaries to unique values. + * The default boundaries include a "=_" sequence which cannot occur in quoted-printable bodies, + * as suggested by https://www.rfc-editor.org/rfc/rfc2045#section-6.7 + * + * @return void + */ + public function setBoundaries() + { + $this->uniqueid = $this->generateId(); + $this->boundary[1] = 'b1=_' . $this->uniqueid; + $this->boundary[2] = 'b2=_' . $this->uniqueid; + $this->boundary[3] = 'b3=_' . $this->uniqueid; + } + + /** + * Add an address to one of the recipient arrays or to the ReplyTo array. + * Addresses that have been added already return false, but do not throw exceptions. + * + * @param string $kind One of 'to', 'cc', 'bcc', or 'ReplyTo' + * @param string $address The email address to send, resp. to reply to + * @param string $name + * + * @throws Exception + * + * @return bool true on success, false if address already used or invalid in some way + */ + protected function addAnAddress($kind, $address, $name = '') + { + if (!in_array($kind, ['to', 'cc', 'bcc', 'Reply-To'])) { + $error_message = sprintf( + '%s: %s', + $this->lang('Invalid recipient kind'), + $kind + ); + $this->setError($error_message); + $this->edebug($error_message); + if ($this->exceptions) { + throw new Exception($error_message); + } + + return false; + } + if (!static::validateAddress($address)) { + $error_message = sprintf( + '%s (%s): %s', + $this->lang('invalid_address'), + $kind, + $address + ); + $this->setError($error_message); + $this->edebug($error_message); + if ($this->exceptions) { + throw new Exception($error_message); + } + + return false; + } + if ('Reply-To' !== $kind) { + if (!array_key_exists(strtolower($address), $this->all_recipients)) { + $this->{$kind}[] = [$address, $name]; + $this->all_recipients[strtolower($address)] = true; + + return true; + } + } elseif (!array_key_exists(strtolower($address), $this->ReplyTo)) { + $this->ReplyTo[strtolower($address)] = [$address, $name]; + + return true; + } + + return false; + } + + /** + * Parse and validate a string containing one or more RFC822-style comma-separated email addresses + * of the form "display name
" into an array of name/address pairs. + * Uses the imap_rfc822_parse_adrlist function if the IMAP extension is available. + * Note that quotes in the name part are removed. + * + * @see http://www.andrew.cmu.edu/user/agreen1/testing/mrbs/web/Mail/RFC822.php A more careful implementation + * + * @param string $addrstr The address list string + * @param bool $useimap Whether to use the IMAP extension to parse the list + * @param string $charset The charset to use when decoding the address list string. + * + * @return array + */ + public static function parseAddresses($addrstr, $useimap = true, $charset = self::CHARSET_ISO88591) + { + $addresses = []; + if ($useimap && function_exists('imap_rfc822_parse_adrlist')) { + //Use this built-in parser if it's available + $list = imap_rfc822_parse_adrlist($addrstr, ''); + // Clear any potential IMAP errors to get rid of notices being thrown at end of script. + imap_errors(); + foreach ($list as $address) { + if ( + '.SYNTAX-ERROR.' !== $address->host && + static::validateAddress($address->mailbox . '@' . $address->host) + ) { + //Decode the name part if it's present and encoded + if ( + property_exists($address, 'personal') && + //Check for a Mbstring constant rather than using extension_loaded, which is sometimes disabled + defined('MB_CASE_UPPER') && + preg_match('/^=\?.*\?=$/s', $address->personal) + ) { + $origCharset = mb_internal_encoding(); + mb_internal_encoding($charset); + //Undo any RFC2047-encoded spaces-as-underscores + $address->personal = str_replace('_', '=20', $address->personal); + //Decode the name + $address->personal = mb_decode_mimeheader($address->personal); + mb_internal_encoding($origCharset); + } + + $addresses[] = [ + 'name' => (property_exists($address, 'personal') ? $address->personal : ''), + 'address' => $address->mailbox . '@' . $address->host, + ]; + } + } + } else { + //Use this simpler parser + $list = explode(',', $addrstr); + foreach ($list as $address) { + $address = trim($address); + //Is there a separate name part? + if (strpos($address, '<') === false) { + //No separate name, just use the whole thing + if (static::validateAddress($address)) { + $addresses[] = [ + 'name' => '', + 'address' => $address, + ]; + } + } else { + list($name, $email) = explode('<', $address); + $email = trim(str_replace('>', '', $email)); + $name = trim($name); + if (static::validateAddress($email)) { + //Check for a Mbstring constant rather than using extension_loaded, which is sometimes disabled + //If this name is encoded, decode it + if (defined('MB_CASE_UPPER') && preg_match('/^=\?.*\?=$/s', $name)) { + $origCharset = mb_internal_encoding(); + mb_internal_encoding($charset); + //Undo any RFC2047-encoded spaces-as-underscores + $name = str_replace('_', '=20', $name); + //Decode the name + $name = mb_decode_mimeheader($name); + mb_internal_encoding($origCharset); + } + $addresses[] = [ + //Remove any surrounding quotes and spaces from the name + 'name' => trim($name, '\'" '), + 'address' => $email, + ]; + } + } + } + } + + return $addresses; + } + + /** + * Set the From and FromName properties. + * + * @param string $address + * @param string $name + * @param bool $auto Whether to also set the Sender address, defaults to true + * + * @throws Exception + * + * @return bool + */ + public function setFrom($address, $name = '', $auto = true) + { + $address = trim((string)$address); + $name = trim(preg_replace('/[\r\n]+/', '', $name)); //Strip breaks and trim + //Don't validate now addresses with IDN. Will be done in send(). + $pos = strrpos($address, '@'); + if ( + (false === $pos) + || ((!$this->has8bitChars(substr($address, ++$pos)) || !static::idnSupported()) + && !static::validateAddress($address)) + ) { + $error_message = sprintf( + '%s (From): %s', + $this->lang('invalid_address'), + $address + ); + $this->setError($error_message); + $this->edebug($error_message); + if ($this->exceptions) { + throw new Exception($error_message); + } + + return false; + } + $this->From = $address; + $this->FromName = $name; + if ($auto && empty($this->Sender)) { + $this->Sender = $address; + } + + return true; + } + + /** + * Return the Message-ID header of the last email. + * Technically this is the value from the last time the headers were created, + * but it's also the message ID of the last sent message except in + * pathological cases. + * + * @return string + */ + public function getLastMessageID() + { + return $this->lastMessageID; + } + + /** + * Check that a string looks like an email address. + * Validation patterns supported: + * * `auto` Pick best pattern automatically; + * * `pcre8` Use the squiloople.com pattern, requires PCRE > 8.0; + * * `pcre` Use old PCRE implementation; + * * `php` Use PHP built-in FILTER_VALIDATE_EMAIL; + * * `html5` Use the pattern given by the HTML5 spec for 'email' type form input elements. + * * `noregex` Don't use a regex: super fast, really dumb. + * Alternatively you may pass in a callable to inject your own validator, for example: + * + * ```php + * PHPMailer::validateAddress('user@example.com', function($address) { + * return (strpos($address, '@') !== false); + * }); + * ``` + * + * You can also set the PHPMailer::$validator static to a callable, allowing built-in methods to use your validator. + * + * @param string $address The email address to check + * @param string|callable $patternselect Which pattern to use + * + * @return bool + */ + public static function validateAddress($address, $patternselect = null) + { + if (null === $patternselect) { + $patternselect = static::$validator; + } + //Don't allow strings as callables, see SECURITY.md and CVE-2021-3603 + if (is_callable($patternselect) && !is_string($patternselect)) { + return call_user_func($patternselect, $address); + } + //Reject line breaks in addresses; it's valid RFC5322, but not RFC5321 + if (strpos($address, "\n") !== false || strpos($address, "\r") !== false) { + return false; + } + switch ($patternselect) { + case 'pcre': //Kept for BC + case 'pcre8': + /* + * A more complex and more permissive version of the RFC5322 regex on which FILTER_VALIDATE_EMAIL + * is based. + * In addition to the addresses allowed by filter_var, also permits: + * * dotless domains: `a@b` + * * comments: `1234 @ local(blah) .machine .example` + * * quoted elements: `'"test blah"@example.org'` + * * numeric TLDs: `a@b.123` + * * unbracketed IPv4 literals: `a@192.168.0.1` + * * IPv6 literals: 'first.last@[IPv6:a1::]' + * Not all of these will necessarily work for sending! + * + * @see http://squiloople.com/2009/12/20/email-address-validation/ + * @copyright 2009-2010 Michael Rushton + * Feel free to use and redistribute this code. But please keep this copyright notice. + */ + return (bool) preg_match( + '/^(?!(?>(?1)"?(?>\\\[ -~]|[^"])"?(?1)){255,})(?!(?>(?1)"?(?>\\\[ -~]|[^"])"?(?1)){65,}@)' . + '((?>(?>(?>((?>(?>(?>\x0D\x0A)?[\t ])+|(?>[\t ]*\x0D\x0A)?[\t ]+)?)(\((?>(?2)' . + '(?>[\x01-\x08\x0B\x0C\x0E-\'*-\[\]-\x7F]|\\\[\x00-\x7F]|(?3)))*(?2)\)))+(?2))|(?2))?)' . + '([!#-\'*+\/-9=?^-~-]+|"(?>(?2)(?>[\x01-\x08\x0B\x0C\x0E-!#-\[\]-\x7F]|\\\[\x00-\x7F]))*' . + '(?2)")(?>(?1)\.(?1)(?4))*(?1)@(?!(?1)[a-z0-9-]{64,})(?1)(?>([a-z0-9](?>[a-z0-9-]*[a-z0-9])?)' . + '(?>(?1)\.(?!(?1)[a-z0-9-]{64,})(?1)(?5)){0,126}|\[(?:(?>IPv6:(?>([a-f0-9]{1,4})(?>:(?6)){7}' . + '|(?!(?:.*[a-f0-9][:\]]){8,})((?6)(?>:(?6)){0,6})?::(?7)?))|(?>(?>IPv6:(?>(?6)(?>:(?6)){5}:' . + '|(?!(?:.*[a-f0-9]:){6,})(?8)?::(?>((?6)(?>:(?6)){0,4}):)?))?(25[0-5]|2[0-4][0-9]|1[0-9]{2}' . + '|[1-9]?[0-9])(?>\.(?9)){3}))\])(?1)$/isD', + $address + ); + case 'html5': + /* + * This is the pattern used in the HTML5 spec for validation of 'email' type form input elements. + * + * @see https://html.spec.whatwg.org/#e-mail-state-(type=email) + */ + return (bool) preg_match( + '/^[a-zA-Z0-9.!#$%&\'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}' . + '[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/sD', + $address + ); + case 'php': + default: + return filter_var($address, FILTER_VALIDATE_EMAIL) !== false; + } + } + + /** + * Tells whether IDNs (Internationalized Domain Names) are supported or not. This requires the + * `intl` and `mbstring` PHP extensions. + * + * @return bool `true` if required functions for IDN support are present + */ + public static function idnSupported() + { + return function_exists('idn_to_ascii') && function_exists('mb_convert_encoding'); + } + + /** + * Converts IDN in given email address to its ASCII form, also known as punycode, if possible. + * Important: Address must be passed in same encoding as currently set in PHPMailer::$CharSet. + * This function silently returns unmodified address if: + * - No conversion is necessary (i.e. domain name is not an IDN, or is already in ASCII form) + * - Conversion to punycode is impossible (e.g. required PHP functions are not available) + * or fails for any reason (e.g. domain contains characters not allowed in an IDN). + * + * @see PHPMailer::$CharSet + * + * @param string $address The email address to convert + * + * @return string The encoded address in ASCII form + */ + public function punyencodeAddress($address) + { + //Verify we have required functions, CharSet, and at-sign. + $pos = strrpos($address, '@'); + if ( + !empty($this->CharSet) && + false !== $pos && + static::idnSupported() + ) { + $domain = substr($address, ++$pos); + //Verify CharSet string is a valid one, and domain properly encoded in this CharSet. + if ($this->has8bitChars($domain) && @mb_check_encoding($domain, $this->CharSet)) { + //Convert the domain from whatever charset it's in to UTF-8 + $domain = mb_convert_encoding($domain, self::CHARSET_UTF8, $this->CharSet); + //Ignore IDE complaints about this line - method signature changed in PHP 5.4 + $errorcode = 0; + if (defined('INTL_IDNA_VARIANT_UTS46')) { + //Use the current punycode standard (appeared in PHP 7.2) + $punycode = idn_to_ascii( + $domain, + \IDNA_DEFAULT | \IDNA_USE_STD3_RULES | \IDNA_CHECK_BIDI | + \IDNA_CHECK_CONTEXTJ | \IDNA_NONTRANSITIONAL_TO_ASCII, + \INTL_IDNA_VARIANT_UTS46 + ); + } elseif (defined('INTL_IDNA_VARIANT_2003')) { + //Fall back to this old, deprecated/removed encoding + $punycode = idn_to_ascii($domain, $errorcode, \INTL_IDNA_VARIANT_2003); + } else { + //Fall back to a default we don't know about + $punycode = idn_to_ascii($domain, $errorcode); + } + if (false !== $punycode) { + return substr($address, 0, $pos) . $punycode; + } + } + } + + return $address; + } + + /** + * Create a message and send it. + * Uses the sending method specified by $Mailer. + * + * @throws Exception + * + * @return bool false on error - See the ErrorInfo property for details of the error + */ + public function send() + { + try { + if (!$this->preSend()) { + return false; + } + + return $this->postSend(); + } catch (Exception $exc) { + $this->mailHeader = ''; + $this->setError($exc->getMessage()); + if ($this->exceptions) { + throw $exc; + } + + return false; + } + } + + /** + * Prepare a message for sending. + * + * @throws Exception + * + * @return bool + */ + public function preSend() + { + if ( + 'smtp' === $this->Mailer + || ('mail' === $this->Mailer && (\PHP_VERSION_ID >= 80000 || stripos(PHP_OS, 'WIN') === 0)) + ) { + //SMTP mandates RFC-compliant line endings + //and it's also used with mail() on Windows + static::setLE(self::CRLF); + } else { + //Maintain backward compatibility with legacy Linux command line mailers + static::setLE(PHP_EOL); + } + //Check for buggy PHP versions that add a header with an incorrect line break + if ( + 'mail' === $this->Mailer + && ((\PHP_VERSION_ID >= 70000 && \PHP_VERSION_ID < 70017) + || (\PHP_VERSION_ID >= 70100 && \PHP_VERSION_ID < 70103)) + && ini_get('mail.add_x_header') === '1' + && stripos(PHP_OS, 'WIN') === 0 + ) { + trigger_error($this->lang('buggy_php'), E_USER_WARNING); + } + + try { + $this->error_count = 0; //Reset errors + $this->mailHeader = ''; + + //Dequeue recipient and Reply-To addresses with IDN + foreach (array_merge($this->RecipientsQueue, $this->ReplyToQueue) as $params) { + $params[1] = $this->punyencodeAddress($params[1]); + call_user_func_array([$this, 'addAnAddress'], $params); + } + if (count($this->to) + count($this->cc) + count($this->bcc) < 1) { + throw new Exception($this->lang('provide_address'), self::STOP_CRITICAL); + } + + //Validate From, Sender, and ConfirmReadingTo addresses + foreach (['From', 'Sender', 'ConfirmReadingTo'] as $address_kind) { + $this->{$address_kind} = trim($this->{$address_kind}); + if (empty($this->{$address_kind})) { + continue; + } + $this->{$address_kind} = $this->punyencodeAddress($this->{$address_kind}); + if (!static::validateAddress($this->{$address_kind})) { + $error_message = sprintf( + '%s (%s): %s', + $this->lang('invalid_address'), + $address_kind, + $this->{$address_kind} + ); + $this->setError($error_message); + $this->edebug($error_message); + if ($this->exceptions) { + throw new Exception($error_message); + } + + return false; + } + } + + //Set whether the message is multipart/alternative + if ($this->alternativeExists()) { + $this->ContentType = static::CONTENT_TYPE_MULTIPART_ALTERNATIVE; + } + + $this->setMessageType(); + //Refuse to send an empty message unless we are specifically allowing it + if (!$this->AllowEmpty && empty($this->Body)) { + throw new Exception($this->lang('empty_message'), self::STOP_CRITICAL); + } + + //Trim subject consistently + $this->Subject = trim($this->Subject); + //Create body before headers in case body makes changes to headers (e.g. altering transfer encoding) + $this->MIMEHeader = ''; + $this->MIMEBody = $this->createBody(); + //createBody may have added some headers, so retain them + $tempheaders = $this->MIMEHeader; + $this->MIMEHeader = $this->createHeader(); + $this->MIMEHeader .= $tempheaders; + + //To capture the complete message when using mail(), create + //an extra header list which createHeader() doesn't fold in + if ('mail' === $this->Mailer) { + if (count($this->to) > 0) { + $this->mailHeader .= $this->addrAppend('To', $this->to); + } else { + $this->mailHeader .= $this->headerLine('To', 'undisclosed-recipients:;'); + } + $this->mailHeader .= $this->headerLine( + 'Subject', + $this->encodeHeader($this->secureHeader($this->Subject)) + ); + } + + //Sign with DKIM if enabled + if ( + !empty($this->DKIM_domain) + && !empty($this->DKIM_selector) + && (!empty($this->DKIM_private_string) + || (!empty($this->DKIM_private) + && static::isPermittedPath($this->DKIM_private) + && file_exists($this->DKIM_private) + ) + ) + ) { + $header_dkim = $this->DKIM_Add( + $this->MIMEHeader . $this->mailHeader, + $this->encodeHeader($this->secureHeader($this->Subject)), + $this->MIMEBody + ); + $this->MIMEHeader = static::stripTrailingWSP($this->MIMEHeader) . static::$LE . + static::normalizeBreaks($header_dkim) . static::$LE; + } + + return true; + } catch (Exception $exc) { + $this->setError($exc->getMessage()); + if ($this->exceptions) { + throw $exc; + } + + return false; + } + } + + /** + * Actually send a message via the selected mechanism. + * + * @throws Exception + * + * @return bool + */ + public function postSend() + { + try { + //Choose the mailer and send through it + switch ($this->Mailer) { + case 'sendmail': + case 'qmail': + return $this->sendmailSend($this->MIMEHeader, $this->MIMEBody); + case 'smtp': + return $this->smtpSend($this->MIMEHeader, $this->MIMEBody); + case 'mail': + return $this->mailSend($this->MIMEHeader, $this->MIMEBody); + default: + $sendMethod = $this->Mailer . 'Send'; + if (method_exists($this, $sendMethod)) { + return $this->{$sendMethod}($this->MIMEHeader, $this->MIMEBody); + } + + return $this->mailSend($this->MIMEHeader, $this->MIMEBody); + } + } catch (Exception $exc) { + $this->setError($exc->getMessage()); + $this->edebug($exc->getMessage()); + if ($this->Mailer === 'smtp' && $this->SMTPKeepAlive == true && $this->smtp->connected()) { + $this->smtp->reset(); + } + if ($this->exceptions) { + throw $exc; + } + } + + return false; + } + + /** + * Send mail using the $Sendmail program. + * + * @see PHPMailer::$Sendmail + * + * @param string $header The message headers + * @param string $body The message body + * + * @throws Exception + * + * @return bool + */ + protected function sendmailSend($header, $body) + { + if ($this->Mailer === 'qmail') { + $this->edebug('Sending with qmail'); + } else { + $this->edebug('Sending with sendmail'); + } + $header = static::stripTrailingWSP($header) . static::$LE . static::$LE; + //This sets the SMTP envelope sender which gets turned into a return-path header by the receiver + //A space after `-f` is optional, but there is a long history of its presence + //causing problems, so we don't use one + //Exim docs: http://www.exim.org/exim-html-current/doc/html/spec_html/ch-the_exim_command_line.html + //Sendmail docs: http://www.sendmail.org/~ca/email/man/sendmail.html + //Qmail docs: http://www.qmail.org/man/man8/qmail-inject.html + //Example problem: https://www.drupal.org/node/1057954 + + //PHP 5.6 workaround + $sendmail_from_value = ini_get('sendmail_from'); + if (empty($this->Sender) && !empty($sendmail_from_value)) { + //PHP config has a sender address we can use + $this->Sender = ini_get('sendmail_from'); + } + //CVE-2016-10033, CVE-2016-10045: Don't pass -f if characters will be escaped. + if (!empty($this->Sender) && static::validateAddress($this->Sender) && self::isShellSafe($this->Sender)) { + if ($this->Mailer === 'qmail') { + $sendmailFmt = '%s -f%s'; + } else { + $sendmailFmt = '%s -oi -f%s -t'; + } + } else { + //allow sendmail to choose a default envelope sender. It may + //seem preferable to force it to use the From header as with + //SMTP, but that introduces new problems (see + //), and + //it has historically worked this way. + $sendmailFmt = '%s -oi -t'; + } + + $sendmail = sprintf($sendmailFmt, escapeshellcmd($this->Sendmail), $this->Sender); + $this->edebug('Sendmail path: ' . $this->Sendmail); + $this->edebug('Sendmail command: ' . $sendmail); + $this->edebug('Envelope sender: ' . $this->Sender); + $this->edebug("Headers: {$header}"); + + if ($this->SingleTo) { + foreach ($this->SingleToArray as $toAddr) { + $mail = @popen($sendmail, 'w'); + if (!$mail) { + throw new Exception($this->lang('execute') . $this->Sendmail, self::STOP_CRITICAL); + } + $this->edebug("To: {$toAddr}"); + fwrite($mail, 'To: ' . $toAddr . "\n"); + fwrite($mail, $header); + fwrite($mail, $body); + $result = pclose($mail); + $addrinfo = static::parseAddresses($toAddr, true, $this->CharSet); + $this->doCallback( + ($result === 0), + [[$addrinfo['address'], $addrinfo['name']]], + $this->cc, + $this->bcc, + $this->Subject, + $body, + $this->From, + [] + ); + $this->edebug("Result: " . ($result === 0 ? 'true' : 'false')); + if (0 !== $result) { + throw new Exception($this->lang('execute') . $this->Sendmail, self::STOP_CRITICAL); + } + } + } else { + $mail = @popen($sendmail, 'w'); + if (!$mail) { + throw new Exception($this->lang('execute') . $this->Sendmail, self::STOP_CRITICAL); + } + fwrite($mail, $header); + fwrite($mail, $body); + $result = pclose($mail); + $this->doCallback( + ($result === 0), + $this->to, + $this->cc, + $this->bcc, + $this->Subject, + $body, + $this->From, + [] + ); + $this->edebug("Result: " . ($result === 0 ? 'true' : 'false')); + if (0 !== $result) { + throw new Exception($this->lang('execute') . $this->Sendmail, self::STOP_CRITICAL); + } + } + + return true; + } + + /** + * Fix CVE-2016-10033 and CVE-2016-10045 by disallowing potentially unsafe shell characters. + * Note that escapeshellarg and escapeshellcmd are inadequate for our purposes, especially on Windows. + * + * @see https://github.com/PHPMailer/PHPMailer/issues/924 CVE-2016-10045 bug report + * + * @param string $string The string to be validated + * + * @return bool + */ + protected static function isShellSafe($string) + { + //It's not possible to use shell commands safely (which includes the mail() function) without escapeshellarg, + //but some hosting providers disable it, creating a security problem that we don't want to have to deal with, + //so we don't. + if (!function_exists('escapeshellarg') || !function_exists('escapeshellcmd')) { + return false; + } + + if ( + escapeshellcmd($string) !== $string + || !in_array(escapeshellarg($string), ["'$string'", "\"$string\""]) + ) { + return false; + } + + $length = strlen($string); + + for ($i = 0; $i < $length; ++$i) { + $c = $string[$i]; + + //All other characters have a special meaning in at least one common shell, including = and +. + //Full stop (.) has a special meaning in cmd.exe, but its impact should be negligible here. + //Note that this does permit non-Latin alphanumeric characters based on the current locale. + if (!ctype_alnum($c) && strpos('@_-.', $c) === false) { + return false; + } + } + + return true; + } + + /** + * Check whether a file path is of a permitted type. + * Used to reject URLs and phar files from functions that access local file paths, + * such as addAttachment. + * + * @param string $path A relative or absolute path to a file + * + * @return bool + */ + protected static function isPermittedPath($path) + { + //Matches scheme definition from https://tools.ietf.org/html/rfc3986#section-3.1 + return !preg_match('#^[a-z][a-z\d+.-]*://#i', $path); + } + + /** + * Check whether a file path is safe, accessible, and readable. + * + * @param string $path A relative or absolute path to a file + * + * @return bool + */ + protected static function fileIsAccessible($path) + { + if (!static::isPermittedPath($path)) { + return false; + } + $readable = is_file($path); + //If not a UNC path (expected to start with \\), check read permission, see #2069 + if (strpos($path, '\\\\') !== 0) { + $readable = $readable && is_readable($path); + } + return $readable; + } + + /** + * Send mail using the PHP mail() function. + * + * @see http://www.php.net/manual/en/book.mail.php + * + * @param string $header The message headers + * @param string $body The message body + * + * @throws Exception + * + * @return bool + */ + protected function mailSend($header, $body) + { + $header = static::stripTrailingWSP($header) . static::$LE . static::$LE; + + $toArr = []; + foreach ($this->to as $toaddr) { + $toArr[] = $this->addrFormat($toaddr); + } + $to = trim(implode(', ', $toArr)); + + //If there are no To-addresses (e.g. when sending only to BCC-addresses) + //the following should be added to get a correct DKIM-signature. + //Compare with $this->preSend() + if ($to === '') { + $to = 'undisclosed-recipients:;'; + } + + $params = null; + //This sets the SMTP envelope sender which gets turned into a return-path header by the receiver + //A space after `-f` is optional, but there is a long history of its presence + //causing problems, so we don't use one + //Exim docs: http://www.exim.org/exim-html-current/doc/html/spec_html/ch-the_exim_command_line.html + //Sendmail docs: http://www.sendmail.org/~ca/email/man/sendmail.html + //Qmail docs: http://www.qmail.org/man/man8/qmail-inject.html + //Example problem: https://www.drupal.org/node/1057954 + //CVE-2016-10033, CVE-2016-10045: Don't pass -f if characters will be escaped. + + //PHP 5.6 workaround + $sendmail_from_value = ini_get('sendmail_from'); + if (empty($this->Sender) && !empty($sendmail_from_value)) { + //PHP config has a sender address we can use + $this->Sender = ini_get('sendmail_from'); + } + if (!empty($this->Sender) && static::validateAddress($this->Sender)) { + if (self::isShellSafe($this->Sender)) { + $params = sprintf('-f%s', $this->Sender); + } + $old_from = ini_get('sendmail_from'); + ini_set('sendmail_from', $this->Sender); + } + $result = false; + if ($this->SingleTo && count($toArr) > 1) { + foreach ($toArr as $toAddr) { + $result = $this->mailPassthru($toAddr, $this->Subject, $body, $header, $params); + $addrinfo = static::parseAddresses($toAddr, true, $this->CharSet); + $this->doCallback( + $result, + [[$addrinfo['address'], $addrinfo['name']]], + $this->cc, + $this->bcc, + $this->Subject, + $body, + $this->From, + [] + ); + } + } else { + $result = $this->mailPassthru($to, $this->Subject, $body, $header, $params); + $this->doCallback($result, $this->to, $this->cc, $this->bcc, $this->Subject, $body, $this->From, []); + } + if (isset($old_from)) { + ini_set('sendmail_from', $old_from); + } + if (!$result) { + throw new Exception($this->lang('instantiate'), self::STOP_CRITICAL); + } + + return true; + } + + /** + * Get an instance to use for SMTP operations. + * Override this function to load your own SMTP implementation, + * or set one with setSMTPInstance. + * + * @return SMTP + */ + public function getSMTPInstance() + { + if (!is_object($this->smtp)) { + $this->smtp = new SMTP(); + } + + return $this->smtp; + } + + /** + * Provide an instance to use for SMTP operations. + * + * @return SMTP + */ + public function setSMTPInstance(SMTP $smtp) + { + $this->smtp = $smtp; + + return $this->smtp; + } + + /** + * Send mail via SMTP. + * Returns false if there is a bad MAIL FROM, RCPT, or DATA input. + * + * @see PHPMailer::setSMTPInstance() to use a different class. + * + * @uses \PHPMailer\PHPMailer\SMTP + * + * @param string $header The message headers + * @param string $body The message body + * + * @throws Exception + * + * @return bool + */ + protected function smtpSend($header, $body) + { + $header = static::stripTrailingWSP($header) . static::$LE . static::$LE; + $bad_rcpt = []; + if (!$this->smtpConnect($this->SMTPOptions)) { + throw new Exception($this->lang('smtp_connect_failed'), self::STOP_CRITICAL); + } + //Sender already validated in preSend() + if ('' === $this->Sender) { + $smtp_from = $this->From; + } else { + $smtp_from = $this->Sender; + } + if (!$this->smtp->mail($smtp_from)) { + $this->setError($this->lang('from_failed') . $smtp_from . ' : ' . implode(',', $this->smtp->getError())); + throw new Exception($this->ErrorInfo, self::STOP_CRITICAL); + } + + $callbacks = []; + //Attempt to send to all recipients + foreach ([$this->to, $this->cc, $this->bcc] as $togroup) { + foreach ($togroup as $to) { + if (!$this->smtp->recipient($to[0], $this->dsn)) { + $error = $this->smtp->getError(); + $bad_rcpt[] = ['to' => $to[0], 'error' => $error['detail']]; + $isSent = false; + } else { + $isSent = true; + } + + $callbacks[] = ['issent' => $isSent, 'to' => $to[0], 'name' => $to[1]]; + } + } + + //Only send the DATA command if we have viable recipients + if ((count($this->all_recipients) > count($bad_rcpt)) && !$this->smtp->data($header . $body)) { + throw new Exception($this->lang('data_not_accepted'), self::STOP_CRITICAL); + } + + $smtp_transaction_id = $this->smtp->getLastTransactionID(); + + if ($this->SMTPKeepAlive) { + $this->smtp->reset(); + } else { + $this->smtp->quit(); + $this->smtp->close(); + } + + foreach ($callbacks as $cb) { + $this->doCallback( + $cb['issent'], + [[$cb['to'], $cb['name']]], + [], + [], + $this->Subject, + $body, + $this->From, + ['smtp_transaction_id' => $smtp_transaction_id] + ); + } + + //Create error message for any bad addresses + if (count($bad_rcpt) > 0) { + $errstr = ''; + foreach ($bad_rcpt as $bad) { + $errstr .= $bad['to'] . ': ' . $bad['error']; + } + throw new Exception($this->lang('recipients_failed') . $errstr, self::STOP_CONTINUE); + } + + return true; + } + + /** + * Initiate a connection to an SMTP server. + * Returns false if the operation failed. + * + * @param array $options An array of options compatible with stream_context_create() + * + * @throws Exception + * + * @uses \PHPMailer\PHPMailer\SMTP + * + * @return bool + */ + public function smtpConnect($options = null) + { + if (null === $this->smtp) { + $this->smtp = $this->getSMTPInstance(); + } + + //If no options are provided, use whatever is set in the instance + if (null === $options) { + $options = $this->SMTPOptions; + } + + //Already connected? + if ($this->smtp->connected()) { + return true; + } + + $this->smtp->setTimeout($this->Timeout); + $this->smtp->setDebugLevel($this->SMTPDebug); + $this->smtp->setDebugOutput($this->Debugoutput); + $this->smtp->setVerp($this->do_verp); + if ($this->Host === null) { + $this->Host = 'localhost'; + } + $hosts = explode(';', $this->Host); + $lastexception = null; + + foreach ($hosts as $hostentry) { + $hostinfo = []; + if ( + !preg_match( + '/^(?:(ssl|tls):\/\/)?(.+?)(?::(\d+))?$/', + trim($hostentry), + $hostinfo + ) + ) { + $this->edebug($this->lang('invalid_hostentry') . ' ' . trim($hostentry)); + //Not a valid host entry + continue; + } + //$hostinfo[1]: optional ssl or tls prefix + //$hostinfo[2]: the hostname + //$hostinfo[3]: optional port number + //The host string prefix can temporarily override the current setting for SMTPSecure + //If it's not specified, the default value is used + + //Check the host name is a valid name or IP address before trying to use it + if (!static::isValidHost($hostinfo[2])) { + $this->edebug($this->lang('invalid_host') . ' ' . $hostinfo[2]); + continue; + } + $prefix = ''; + $secure = $this->SMTPSecure; + $tls = (static::ENCRYPTION_STARTTLS === $this->SMTPSecure); + if ('ssl' === $hostinfo[1] || ('' === $hostinfo[1] && static::ENCRYPTION_SMTPS === $this->SMTPSecure)) { + $prefix = 'ssl://'; + $tls = false; //Can't have SSL and TLS at the same time + $secure = static::ENCRYPTION_SMTPS; + } elseif ('tls' === $hostinfo[1]) { + $tls = true; + //TLS doesn't use a prefix + $secure = static::ENCRYPTION_STARTTLS; + } + //Do we need the OpenSSL extension? + $sslext = defined('OPENSSL_ALGO_SHA256'); + if (static::ENCRYPTION_STARTTLS === $secure || static::ENCRYPTION_SMTPS === $secure) { + //Check for an OpenSSL constant rather than using extension_loaded, which is sometimes disabled + if (!$sslext) { + throw new Exception($this->lang('extension_missing') . 'openssl', self::STOP_CRITICAL); + } + } + $host = $hostinfo[2]; + $port = $this->Port; + if ( + array_key_exists(3, $hostinfo) && + is_numeric($hostinfo[3]) && + $hostinfo[3] > 0 && + $hostinfo[3] < 65536 + ) { + $port = (int) $hostinfo[3]; + } + if ($this->smtp->connect($prefix . $host, $port, $this->Timeout, $options)) { + try { + if ($this->Helo) { + $hello = $this->Helo; + } else { + $hello = $this->serverHostname(); + } + $this->smtp->hello($hello); + //Automatically enable TLS encryption if: + //* it's not disabled + //* we have openssl extension + //* we are not already using SSL + //* the server offers STARTTLS + if ($this->SMTPAutoTLS && $sslext && 'ssl' !== $secure && $this->smtp->getServerExt('STARTTLS')) { + $tls = true; + } + if ($tls) { + if (!$this->smtp->startTLS()) { + $message = $this->getSmtpErrorMessage('connect_host'); + throw new Exception($message); + } + //We must resend EHLO after TLS negotiation + $this->smtp->hello($hello); + } + if ( + $this->SMTPAuth && !$this->smtp->authenticate( + $this->Username, + $this->Password, + $this->AuthType, + $this->oauth + ) + ) { + throw new Exception($this->lang('authenticate')); + } + + return true; + } catch (Exception $exc) { + $lastexception = $exc; + $this->edebug($exc->getMessage()); + //We must have connected, but then failed TLS or Auth, so close connection nicely + $this->smtp->quit(); + } + } + } + //If we get here, all connection attempts have failed, so close connection hard + $this->smtp->close(); + //As we've caught all exceptions, just report whatever the last one was + if ($this->exceptions && null !== $lastexception) { + throw $lastexception; + } + if ($this->exceptions) { + // no exception was thrown, likely $this->smtp->connect() failed + $message = $this->getSmtpErrorMessage('connect_host'); + throw new Exception($message); + } + + return false; + } + + /** + * Close the active SMTP session if one exists. + */ + public function smtpClose() + { + if ((null !== $this->smtp) && $this->smtp->connected()) { + $this->smtp->quit(); + $this->smtp->close(); + } + } + + /** + * Set the language for error messages. + * The default language is English. + * + * @param string $langcode ISO 639-1 2-character language code (e.g. French is "fr") + * Optionally, the language code can be enhanced with a 4-character + * script annotation and/or a 2-character country annotation. + * @param string $lang_path Path to the language file directory, with trailing separator (slash) + * Do not set this from user input! + * + * @return bool Returns true if the requested language was loaded, false otherwise. + */ + public function setLanguage($langcode = 'en', $lang_path = '') + { + //Backwards compatibility for renamed language codes + $renamed_langcodes = [ + 'br' => 'pt_br', + 'cz' => 'cs', + 'dk' => 'da', + 'no' => 'nb', + 'se' => 'sv', + 'rs' => 'sr', + 'tg' => 'tl', + 'am' => 'hy', + ]; + + if (array_key_exists($langcode, $renamed_langcodes)) { + $langcode = $renamed_langcodes[$langcode]; + } + + //Define full set of translatable strings in English + $PHPMAILER_LANG = [ + 'authenticate' => 'SMTP Error: Could not authenticate.', + 'buggy_php' => 'Your version of PHP is affected by a bug that may result in corrupted messages.' . + ' To fix it, switch to sending using SMTP, disable the mail.add_x_header option in' . + ' your php.ini, switch to MacOS or Linux, or upgrade your PHP to version 7.0.17+ or 7.1.3+.', + 'connect_host' => 'SMTP Error: Could not connect to SMTP host.', + 'data_not_accepted' => 'SMTP Error: data not accepted.', + 'empty_message' => 'Message body empty', + 'encoding' => 'Unknown encoding: ', + 'execute' => 'Could not execute: ', + 'extension_missing' => 'Extension missing: ', + 'file_access' => 'Could not access file: ', + 'file_open' => 'File Error: Could not open file: ', + 'from_failed' => 'The following From address failed: ', + 'instantiate' => 'Could not instantiate mail function.', + 'invalid_address' => 'Invalid address: ', + 'invalid_header' => 'Invalid header name or value', + 'invalid_hostentry' => 'Invalid hostentry: ', + 'invalid_host' => 'Invalid host: ', + 'mailer_not_supported' => ' mailer is not supported.', + 'provide_address' => 'You must provide at least one recipient email address.', + 'recipients_failed' => 'SMTP Error: The following recipients failed: ', + 'signing' => 'Signing Error: ', + 'smtp_code' => 'SMTP code: ', + 'smtp_code_ex' => 'Additional SMTP info: ', + 'smtp_connect_failed' => 'SMTP connect() failed.', + 'smtp_detail' => 'Detail: ', + 'smtp_error' => 'SMTP server error: ', + 'variable_set' => 'Cannot set or reset variable: ', + ]; + if (empty($lang_path)) { + //Calculate an absolute path so it can work if CWD is not here + $lang_path = dirname(__DIR__) . DIRECTORY_SEPARATOR . 'language' . DIRECTORY_SEPARATOR; + } + + //Validate $langcode + $foundlang = true; + $langcode = strtolower($langcode); + if ( + !preg_match('/^(?P[a-z]{2})(?P - - -

WARNING: This utility will OVERWRITE mpdf.php file in the current directory.

-

Select the functions you wish to INCLUDE in your mpdf.php program. When you click generate, a new mpdf.php file will be written to the current directory.

-
Notes -
    -
  • HTML-CSS is required for many of the other functions to work including: Tables, Lists, Backgrounds, Forms, Border-radius and all other CSS
  • -
  • DIRECTW includes the functions to Write directly to the PDF file e.g. Write, WriteText, WriteCell, Text, Shaded_box, AutosizeText
  • -
  • You must include either HTML-CSS or DIRECTW
  • -
  • JPG, PNG and JPG images are supported with IMAGES-CORE
  • -
  • For WMF Images, you must include both IMAGES-CORE and IMAGES-WMF
  • -
  • IMAGES-CORE are required for BACKGROUNDS (IMAGES) or WATERMARKS to work
  • -
-
- Select/Unselect All

- -
-'; -foreach($excl AS $k=>$ex) { - echo ' 1 && $k < 5)) { - echo ' checked="checked"'; - } - echo ' /> '.$ex.'
'; -} - -echo '
- -
- -'; -exit; -} - -$inc = $_POST['inc']; -if (is_array($inc) && count($inc)>0 ) { - foreach($inc AS $i=>$v) { - $key = array_search($i, $excl); - unset($excl[$key]); - } -} - -if (!defined('PHP_VERSION_ID')) { - $version = explode('.', PHP_VERSION); - define('PHP_VERSION_ID', ($version[0] * 10000 + $version[1] * 100 + $version[2])); -} -if (PHP_VERSION_ID < 50300) { $mqr = @get_magic_quotes_runtime(); } - else { $mqr=0; } -if ($mqr) { set_magic_quotes_runtime(0); } - -$l = file('mpdf_source.php'); -if (!count($l)) { die("ERROR - Could not find mpdf_source.php file in current directory"); } -$exclflags = array(); -$x = ''; - - // Excluding 'HTML-CSS' will also exclude: 'TABLES', 'LISTS', 'TABLES-ADVANCED-BORDERS', 'HTMLHEADERS-FOOTERS', 'FORMS', 'BACKGROUNDS', 'CSS-FLOAT', 'CSS-IMAGE-FLOAT', 'CSS-POSITION', 'CSS-PAGE', 'BORDER-RADIUS' -if ($excl[0]=='HTML-CSS') { - $excl[] = 'TABLES'; - $excl[] = 'LISTS'; - $excl[] = 'TABLES-ADVANCED-BORDERS'; - $excl[] = 'HTMLHEADERS-FOOTERS'; - $excl[] = 'FORMS'; - $excl[] = 'BACKGROUNDS'; - $excl[] = 'CSS-FLOAT'; - $excl[] = 'CSS-IMAGE-FLOAT'; - $excl[] = 'CSS-POSITION'; - $excl[] = 'CSS-PAGE'; - $excl[] = 'BORDER-RADIUS'; -} -$excl = array_unique($excl); - -foreach($l AS $k=>$ln) { - $exclude = false; - // *XXXXX* - preg_match_all("/\/\/ \*([A-Za-z\-]+)\*/", $ln, $m); - foreach($m[1] AS $mm) { - if (in_array($mm, $excl)) { - $exclude = true; - } - } - /*-- XXXXX --*/ - preg_match_all("/\/\*-- ([A-Za-z\-]+) --\*\//", $ln, $m); - foreach($m[1] AS $mm) { - if (in_array($mm, $excl)) { - $exclflags[$mm] = true; - } - $exclude = true; - } - $exclflags = array_unique($exclflags); - /*-- END XXXX --*/ - preg_match_all("/\/\*-- END ([A-Za-z\-]+) --\*\//", $ln, $m); - foreach($m[1] AS $mm) { - if (in_array($mm, $excl)) { - unset($exclflags[$mm]); - } - $exclude = true; - } - if (count($exclflags)==0 && !$exclude) { - $x .= $ln; - } -} -// mPDF 5.0 -if (function_exists('file_put_contents')) { - $check = file_put_contents('mpdf.php', $x); -} -else { - $f=fopen('mpdf.php', 'w'); - $check = fwrite($f, $x); - fclose($f); -} -if (!$check) { die("ERROR - Could not write to mpdf.php file. Are permissions correctly set?"); } -echo '

mPDF file generated successfully!

'; -echo '
mPDF file size '.number_format((strlen($x)/1024)).' kB
'; - -unset($l); -unset($x); - -include('mpdf.php'); -$mpdf = new mPDF(); - -echo '
Memory usage on loading mPDF class '.number_format((memory_get_usage(true)/(1024*1024)),2).' MB
'; - -exit; - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/config.php b/public_html/2022/newcms/pdf/config.php deleted file mode 100644 index 31219dd..0000000 --- a/public_html/2022/newcms/pdf/config.php +++ /dev/null @@ -1,572 +0,0 @@ -h2bookmarks = array(); -$this->h2toc = array(); -/* Define arrays with e.g. the tag=>ToC-level -Remember bookmark and ToC levels start at 0 -(does not work inside tables) -Only the default ToC will be used if > 1 ToCs are defined for the document -H1 - H6 must be uppercase -$this->h2toc = array('H1'=>0, 'H2'=>1, 'H3'=>2); -$this->h2bookmarks = array('H1'=>0, 'H2'=>1, 'H3'=>2); -*/ - -// mPDF 5.7 -// Text-align on decimal marks -// Allowed characters for alignment on decimal marks. Additional codes must start with D -// Non-ASCII characters should be in utf-8 encoding -// DM - middot U+00B7 -// DA - arabic decimal mark U+066B -$this->decimal_align = array('DP'=>'.', 'DC'=>',', 'DM'=>"\xc2\xb7", 'DA'=>"\xd9\xab", 'DD'=>'-'); - -// PAGING -$this->mirrorMargins = 0; -$this->restoreBlockPagebreaks = false; -$this->forcePortraitMargins = false; -$this->displayDefaultOrientation = false; -$this->printers_info = false; // Adds date and page info for printer when using @page and "marks:crop;" -$this->bleedMargin = 5; -$this->crossMarkMargin = 5; // Distance of cross mark from margin in mm -$this->cropMarkMargin = 8; // Distance of crop mark from margin in mm -$this->cropMarkLength = 18; // Default length in mm of crop line -$this->nonPrintMargin = 8; // Non-printable border at edge of paper sheet in mm -// mPDF 5.5 -// Avoid just the border/background-color of the end of a block being moved on to next page -$this->margBuffer = 2; // Allows an (empty) end of block to extend beyond the bottom margin by this amount (mm) - - -// PAGE NUMBERING -$this->pagenumPrefix; -$this->pagenumSuffix; -$this->nbpgPrefix; -$this->nbpgSuffix; - - -// FONTS, LANGUAGES & CHARACTER SETS -// Set maximum size of TTF font file to allow non-subsets - in kB -// Used to avoid e.g. Arial Unicode MS (perhaps used for substitutions) to ever be fully embedded -// NB Free serif is 1.5MB, most files are <= 600kB (most 200-400KB) -$this->maxTTFFilesize = 2000; - -// this value determines whether to subset or not -// 0 - 100 = percent characters -// i.e. if ==40, mPDF will embed whole font if >40% characters in that font -// or embed subset if <40% characters -// 0 will force whole file to be embedded (NO subsetting) -// 100 will force always to subset -// This value is overridden if you set new mPDF('s) -// and/or Can set at runtime -$this->percentSubset = 30; - -$this->useAdobeCJK = false; // Uses Adobe CJK fonts for CJK languages - // default TRUE; only set false if you have defined some available fonts that support CJK - // If true this will not stop use of other CJK fonts if specified by font-family: - // and vice versa i.e. only dictates behaviour when specified by lang="" incl. AutoFont() - -// When embedding full TTF font files, remakes the font file using only core tables -// May improve function with some PostScript printers (GhostScript/GSView) -// Does not work with TTC font collections -// Slightly smaller file; increased processing time -$this->repackageTTF = false; - -// Allows automatic character set conversion if "charset=xxx" detected in html header (WriteHTML() ) -$this->allow_charset_conversion = true; -$this->biDirectional=false; // automatically determine BIDI text in LTR page -$this->autoFontGroupSize = 2; // 1: individual words are spanned; 2: words+; 3: as big chunks as possible. -$this->useLang = true; // Default changed in mPDF 4.0 - -$this->useSubstitutions = false; // Substitute missing characters in UTF-8(multibyte) documents - from other fonts -$this->falseBoldWeight = 5; // Weight for bold text when using an artificial (outline) bold; value 0 (off) - 10 (rec. max) - -// CONFIGURATION -$this->allow_output_buffering = false; - -$this->enableImports = false; // Adding mPDFI functions - -$this->collapseBlockMargins = true; // Allows top and bottom margins to collapse between block elements -$this->progressBar = 0; // Shows progress-bars whilst generating file 0 off, 1 simple, 2 advanced -$this->progbar_heading = 'mPDF file progress'; -$this->progbar_altHTML = ''; // Should include and but NOT end tags - // Can incude and link to stylesheet etc. - // e.g. '

Creating PDF file. Please wait...

'; - -$this->dpi = 96; // To interpret "px" pixel values in HTML/CSS (see img_dpi below) - -// Automatically correct for tags where HTML specifies optional end tags e.g. P,LI,DD,TD -// If you are confident input html is valid XHTML, turning this off may make it more reliable(?) -$this->allow_html_optional_endtags = true; - -$this->ignore_invalid_utf8 = false; -$this->text_input_as_HTML = false; // Converts all entities in Text inputs to UTF-8 before encoding -$this->useGraphs = false; - - -// When writing a block element with position:fixed and overflow:auto, mPDF scales it down to fit in the space -// by repeatedly rewriting it and making adjustments. These values give the adjustments used, depending how far out -// the previous guess was. The lower the number, the quicker it will finish, but the less accurate the fit may be. -// FPR1 is for coarse adjustments, and FPR4 for fine adjustments when it is getting closer. -$this->incrementFPR1 = 10; // i.e. will alter by 1/[10]th of width and try again until within closer limits -$this->incrementFPR2 = 20; -$this->incrementFPR3 = 30; -$this->incrementFPR4 = 50; // i.e. will alter by 1/[50]th of width and try again when it nearly fits - - -// COLORSPACE -// 1 - allow GRAYSCALE only [convert CMYK/RGB->gray] -// 2 - allow RGB / SPOT COLOR / Grayscale [convert CMYK->RGB] -// 3 - allow CMYK / SPOT COLOR / Grayscale [convert RGB->CMYK] -$this->restrictColorSpace = 0; - -// PDFX/1-a Compliant files -$this->PDFX = false; // true=Forces compliance with PDFX-1a spec - // Cannot be used with $this->restrictColorSpace (i.e. no RGB) -$this->PDFXauto = false; // Overrides warnings making changes when possible to force PDFX1-a compliance - - -// PDFA1-b Compliant files -$this->PDFA = false; // true=Forces compliance with PDFA-1b spec - // Can use with $this->restrictColorSpace=3 (for a CMYK file) - // Any other settings, uses RGB profile -$this->PDFAauto = false; // Overrides warnings making changes when possible to force PDFA1-b compliance -$this->ICCProfile = ''; // Colour profile OutputIntent - // sRGB_IEC61966-2-1 (=default if blank and PDFA), or other added .icc profile - // Must be CMYK for PDFX, or appropriate type for PDFA(RGB or CMYK) - - - -// DEBUGGING & DEVELOPERS -$this->showStats = false; -$this->debug = false; -$this->debugfonts = false; // Checks and reports on errors when parsing TTF files - adds significantly to processing time -$this->showImageErrors = false; -$this->table_error_report = false; // Die and report error if table is too wide to contain whole words -$this->table_error_report_param = ''; // Parameter which can be passed to show in error report i.e. chapter number being processed// - - -// ANNOTATIONS -$this->title2annots = false; -$this->annotSize = 0.5; // default mm for Adobe annotations - nominal -$this->annotMargin; // default position for Annotations -$this->annotOpacity = 0.5; // default opacity for Annotations - -// BOOKMARKS -$this->anchor2Bookmark = 0; // makes into a bookmark as well as internal link target; 1 = just name; 2 = name (p.34) -// Set an optional array to specify appearance of Bookmarks (by level) -// Default values are Black and normal style -/* - Example: -$this->bookmarkStyles = array( - 0 => array('color'=> array(0,64,128), 'style'=>'B'), - 1 => array('color'=> array(128,0,0), 'style'=>''), - 2 => array('color'=> array(0,128,0), 'style'=>'I'), -); -*/ -$this->bookmarkStyles = array(); - - -// CSS & STYLES -$this->CSSselectMedia='print'; // screen, print, or any other CSS @media type (not "all") - - -// PAGE HEADERS & FOOTERS -$this->forcePortraitHeaders = false; -// Values used if simple FOOTER/HEADER given i.e. not array -$this->defaultheaderfontsize = 8; // pt -$this->defaultheaderfontstyle = 'BI'; // '', or 'B' or 'I' or 'BI' -$this->defaultheaderline = 1; // 1 or 0 - line under the header -$this->defaultfooterfontsize = 8; // pt -$this->defaultfooterfontstyle = 'BI'; // '', or 'B' or 'I' or 'BI' -$this->defaultfooterline = 1; // 1 or 0 - line over the footer -$this->header_line_spacing = 0.25; // spacing between bottom of header and line (if present) - function of fontsize -$this->footer_line_spacing = 0.25; // spacing between bottom of header and line (if present) - function of fontsize -// If 'pad' margin-top sets fixed distance in mm (padding) between bottom of header and top of text. -// If 'stretch' margin-top sets a minimum distance in mm between top of page and top of text, which expands if header is too large to fit. -$this->setAutoTopMargin = false; -$this->setAutoBottomMargin = false; -$this->autoMarginPadding = 2; // distance in mm used as padding if 'stretch' mode is used - - - -// TABLES -$this->simpleTables = false; // Forces all cells to have same border, background etc. Improves performance -$this->packTableData = false; // Reduce memory usage processing tables (but with increased processing time) -// Using disk to cache table data can reduce memory usage dramatically, but at a cost of increased -// executon time and disk access (read and write) -$this->cacheTables = false; - -$this->ignore_table_percents = false; -$this->ignore_table_widths = false; -$this->keep_table_proportions = false; // If table width set > page width, force resizing but keep relative sizes - // Also forces respect of cell widths set by % -$this->shrink_tables_to_fit = 1.4; // automatically reduce fontsize in table if words would have to split ( not in CJK) - // 0 or false to disable; value (if set) gives maximum factor to reduce fontsize - -$this->tableMinSizePriority = false; // If page-break-inside:avoid but cannot fit on full page without - // exceeding autosize; setting this value to true will force respsect for - // autosize, and disable the page-break-inside:avoid - -$this->use_kwt = false; // "Keep-with-table" -$this->iterationCounter = false; // Set to TRUE to use table Head iteration counter -$this->splitTableBorderWidth = 0; // Use table border (using this width in mm) when table breaks across pages - // Recommended to use small value e.g. 0.01 - - -// IMAGES -$this->img_dpi = 96; // Default dpi to output images if size not defined - // See also above "dpi" - -// TEXT SPACING & JUSTIFICATION -$this->useKerning = false; // true to use kerning -$this->justifyB4br = false; // In justified text,
does not cause the preceding text to be justified in browsers - // Change to true to force justification (as in MS Word) - -$this->tabSpaces = 8; // Number of spaces to replace for a TAB in
 sections
-				// Notepad uses 6, HTML specification recommends 8
-$this->jSWord = 0.4;	// Proportion (/1) of space (when justifying margins) to allocate to Word vs. Character
-$this->jSmaxChar = 2;	// Maximum spacing to allocate to character spacing. (0 = no maximum)
-
-$this->jSmaxCharLast = 1;	// Maximum character spacing allowed (carried over) when finishing a last line
-$this->jSmaxWordLast = 2;	// Maximum word spacing allowed (carried over) when finishing a last line
-$this->normalLineheight = 1.33;	// Value used for line-height when CSS specified as 'normal' (default)
-
-// Small Caps
-$this->smCapsScale = 0.75;	// Factor of 1 to scale capital letters
-$this->smCapsStretch = 110;	// % to stretch small caps horizontally (i.e. 100 = no stretch)
-
-// CJK Line-breaking
-$this->allowCJKorphans = true;	// FALSE=always wrap to next line; TRUE=squeeze or overflow
-$this->allowCJKoverflow = false;	// FALSE=squeeze; TRUE=overflow (only some characters, and disabled in tables)
-$this->CJKforceend = false;		// Forces overflowng punctuation to hang outside right margin mPDF 5.6.40
-
-// HYPHENATION
-$this->SHYlang = "en"; // Should be one of: 'en','de','es','fi','fr','it','nl','pl','ru','sv'
-$this->SHYleftmin = 2;
-$this->SHYrightmin = 2;
-$this->SHYcharmin = 2;
-$this->SHYcharmax = 10;
-
-// COLUMNS
-$this->keepColumns = false;	// Set to go to the second column only when the first is full of text etc.
-$this->max_colH_correction = 1.15;	// Maximum ratio to adjust column height when justifying - too large a value can give ugly results
-$this->ColGap=5;
-
-
-// LISTS
-$this->list_align_style = 'R';	// Determines alignment of numbers in numbered lists
-$this->list_indent_first_level = 0;	// 1/0 yex/no to indent first level of list
-$this->list_number_suffix = '.';	// Content to follow a numbered list marker e.g. '.' gives 1. or IV.; ')' gives 1) or a)
-
-// ACTIVE FORMS
-$this->useActiveForms = false;
-
-// WATERMARKS
-$this->watermarkImgBehind = false;
-$this->showWatermarkText = 0;
-$this->showWatermarkImage = 0;
-$this->watermarkText = '';
-$this->watermarkImage = '';
-$this->watermark_font = '';
-$this->watermarkTextAlpha = 0.2;
-$this->watermarkImageAlpha = 0.2;
-$this->watermarkImgAlphaBlend = 'Normal';
-	// Accepts any PDF spec. value: Normal, Multiply, Screen, Overlay, Darken, Lighten, ColorDodge, ColorBurn, 
-	// HardLight, SoftLight, Difference, Exclusion
-	// "Multiply" works well for watermark image on top
-
-// BORDERS
-$this->autoPadding = false; // Automatically increases padding in block elements when border-radius set - if required
-
-
-//////////////////////////////////////////////
-
-// Default values if no style sheet offered	(cf. http://www.w3.org/TR/CSS21/sample.html)
-$this->defaultCSS = array(
-	'BODY' => array(
-		'FONT-FAMILY' => 'serif',
-		'FONT-SIZE' => '11pt',
-		'TEXT-INDENT' => '0pt',
-		'LINE-HEIGHT' => 'normal',
-		'MARGIN-COLLAPSE' => 'collapse', /* Custom property to collapse top/bottom margins at top/bottom of page - ignored in tables/lists */
-		'HYPHENS' => 'manual',	/* mPDF 5.6.08 */
-	),
-	'P' => array(
-		'MARGIN' => '1.12em 0',
-	),
-	'H1' => array(
-		'FONT-SIZE' => '2em',
-		'FONT-WEIGHT' => 'bold',
-		'MARGIN' => '0.67em 0',
-		'PAGE-BREAK-AFTER' => 'avoid',
-	),
-	'H2' => array(
-		'FONT-SIZE' => '1.5em',
-		'FONT-WEIGHT' => 'bold',
-		'MARGIN' => '0.75em 0',
-		'PAGE-BREAK-AFTER' => 'avoid',
-	),
-	'H3' => array(
-		'FONT-SIZE' => '1.17em',
-		'FONT-WEIGHT' => 'bold',
-		'MARGIN' => '0.83em 0',
-		'PAGE-BREAK-AFTER' => 'avoid',
-	),
-	'H4' => array(
-		'FONT-WEIGHT' => 'bold',
-		'MARGIN' => '1.12em 0',
-		'PAGE-BREAK-AFTER' => 'avoid',
-	),
-	'H5' => array(
-		'FONT-SIZE' => '0.83em',
-		'FONT-WEIGHT' => 'bold',
-		'MARGIN' => '1.5em 0',
-		'PAGE-BREAK-AFTER' => 'avoid',
-	),
-	'H6' => array(
-		'FONT-SIZE' => '0.75em',
-		'FONT-WEIGHT' => 'bold',
-		'MARGIN' => '1.67em 0',
-		'PAGE-BREAK-AFTER' => 'avoid',
-	),
-	'HR' => array(
-		'COLOR' => '#888888',
-		'TEXT-ALIGN' => 'center',
-		'WIDTH' => '100%',
-		'HEIGHT' => '0.2mm',
-		'MARGIN-TOP' => '0.83em',
-		'MARGIN-BOTTOM' => '0.83em',
-	),
-	'PRE' => array(
-		'MARGIN' => '0.83em 0',
-		'FONT-FAMILY' => 'monospace',
-	),
-	'S' => array(
-		'TEXT-DECORATION' => 'line-through',
-	),
-	'STRIKE' => array(
-		'TEXT-DECORATION' => 'line-through',
-	),
-	'DEL' => array(
-		'TEXT-DECORATION' => 'line-through',
-	),
-	'SUB' => array(
-		'VERTICAL-ALIGN' => 'sub',
-		'FONT-SIZE' => '55%',	/* Recommended 0.83em */
-	),
-	'SUP' => array(
-		'VERTICAL-ALIGN' => 'super',
-		'FONT-SIZE' => '55%',	/* Recommended 0.83em */
-	),
-	'U' => array(
-		'TEXT-DECORATION' => 'underline',
-	),
-	'INS' => array(
-		'TEXT-DECORATION' => 'underline',
-	),
-	'B' => array(
-		'FONT-WEIGHT' => 'bold',
-	),
-	'STRONG' => array(
-		'FONT-WEIGHT' => 'bold',
-	),
-	'I' => array(
-		'FONT-STYLE' => 'italic',
-	),
-	'CITE' => array(
-		'FONT-STYLE' => 'italic',
-	),
-	'Q' => array(
-		'FONT-STYLE' => 'italic',
-	),
-	'EM' => array(
-		'FONT-STYLE' => 'italic',
-	),
-	'VAR' => array(
-		'FONT-STYLE' => 'italic',
-	),
-	'SAMP' => array(
-		'FONT-FAMILY' => 'monospace',
-	),
-	'CODE' => array(
-		'FONT-FAMILY' => 'monospace',
-	),
-	'KBD' => array(
-		'FONT-FAMILY' => 'monospace',
-	),
-	'TT' => array(
-		'FONT-FAMILY' => 'monospace',
-	),
-	'SMALL' => array(
-		'FONT-SIZE' => '83%',
-	),
-	'BIG' => array(
-		'FONT-SIZE' => '117%',
-	),
-	'ACRONYM' => array(
-		'FONT-SIZE' => '77%',
-		'FONT-WEIGHT' => 'bold',
-	),
-	'ADDRESS' => array(
-		'FONT-STYLE' => 'italic',
-	),
-	'BLOCKQUOTE' => array(
-		'MARGIN-LEFT' => '40px',
-		'MARGIN-RIGHT' => '40px',
-		'MARGIN-TOP' => '1.12em',
-		'MARGIN-BOTTOM' => '1.12em',
-	),
-	'A' => array(
-		'COLOR' => '#0000FF',
-		'TEXT-DECORATION' => 'underline',
-	),
-	'UL' => array(
-		'MARGIN' => '0.83em 0',		/* only applied to top-level of nested lists */
-		'TEXT-INDENT' => '1.3em',	/* Custom effect - list indent */
-	),
-	'OL' => array(
-		'MARGIN' => '0.83em 0',		/* only applied to top-level of nested lists */
-		'TEXT-INDENT' => '1.3em',	/* Custom effect - list indent */
-	),
-	'DL' => array(
-		'MARGIN' => '1.67em 0',
-	),
-	'DT' => array(
-	),
-	'DD' => array(
-		'PADDING-LEFT' => '40px',
-	),
-	'TABLE' => array(
-		'MARGIN' => '0',
-		'BORDER-COLLAPSE' => 'separate',
-		'BORDER-SPACING' => '2px',
-		'EMPTY-CELLS' => 'show',
-		'LINE-HEIGHT' => '1.2',
-		'VERTICAL-ALIGN' => 'middle',
-	),
-	'THEAD' => array(
-	),
-	'TFOOT' => array(
-	),
-	'TH' => array(
-		'FONT-WEIGHT' => 'bold',
-		'TEXT-ALIGN' => 'center',
-		'PADDING-LEFT' => '0.1em',
-		'PADDING-RIGHT' => '0.1em',
-		'PADDING-TOP' => '0.1em',
-		'PADDING-BOTTOM' => '0.1em',
-	),
-	'TD' => array(
-		'PADDING-LEFT' => '0.1em',
-		'PADDING-RIGHT' => '0.1em',
-		'PADDING-TOP' => '0.1em',
-		'PADDING-BOTTOM' => '0.1em',
-	),
-	'CAPTION' => array(
-		'TEXT-ALIGN' => 'center',
-	),
-	'IMG' => array(
-		'MARGIN' => '0',
-		'VERTICAL-ALIGN' => 'baseline',
-	),
-	'INPUT' => array(
-		'FONT-FAMILY' => 'sans-serif',
-		'VERTICAL-ALIGN' => 'middle',
-		'FONT-SIZE' => '0.9em',
-	),
-	'SELECT' => array(
-		'FONT-FAMILY' => 'sans-serif',
-		'FONT-SIZE' => '0.9em',
-		'VERTICAL-ALIGN' => 'middle',
-	),
-	'TEXTAREA' => array(
-		'FONT-FAMILY' => 'monospace',
-		'FONT-SIZE' => '0.9em',
-		'VERTICAL-ALIGN' => 'text-bottom',
-	),
-	'MARK' => array(	/* mPDF 5.5.09 */
-		'BACKGROUND-COLOR' => 'yellow',
-	),
-);
-
-
-//////////////////////////////////////////////////
-// VALUES ONLY LIKELY TO BE CHANGED BY DEVELOPERS
-//////////////////////////////////////////////////
-$this->pdf_version = '1.4';
-
-// Hyphenation
-$this->SHYlanguages = array('en','de','es','fi','fr','it','nl','pl','ru','sv');	// existing defined patterns
-
-$this->default_lineheight_correction=1.2;	// Value 1 sets lineheight=fontsize height; 
-							// Value used if line-height not set by CSS (usuallly is)
-
-$this->fontsizes = array('XX-SMALL'=>0.7, 'X-SMALL'=>0.77, 'SMALL'=>0.86, 'MEDIUM'=>1, 'LARGE'=>1.2, 'X-LARGE'=>1.5, 'XX-LARGE'=>2);
-
-// CHARACTER PATTERN MATCHES TO DETECT LANGUAGES
-	// pattern used to detect RTL characters -> force RTL
-	$this->pregRTLchars = "\x{0590}-\x{06FF}\x{0700}-\x{083E}\x{FB00}-\x{FDFD}\x{FE70}-\x{FEFF}";	
-
-	// CJK Chars which require changing and are distinctive of specific charset
-	$this->pregUHCchars = "\x{1100}-\x{11FF}\x{3130}-\x{318F}\x{AC00}-\x{D7AF}";
-	$this->pregSJISchars = "\x{3040}-\x{309F}\x{30A0}-\x{30FF}\x{3190}-\x{319F}\x{31F0}-\x{31FF}";	
-
-	// Chars which distinguish CJK but not between different
-	$this->pregCJKchars = "\x{1100}-\x{11FF}\x{2E80}-\x{A4CF}\x{A800}-\x{D7AF}\x{F900}-\x{FAFF}\x{FE30}-\x{FE6F}\x{FF00}-\x{FFEF}\x{20000}-\x{2FA1F}";
-
-	// For CJK Line-breaking
-	//Leading characters - Not allowed at end of line
-	$this->CJKleading = "\$\(\*\[\{\x{00a3}\x{00a5}\x{00ab}\x{00b7}\x{2018}\x{201c}\x{2035}\x{3005}\x{3007}\x{3008}\x{300a}\x{300c}\x{300e}\x{3010}\x{3014}\x{3016}\x{3018}\x{301d}\x{fe34}\x{fe57}\x{fe59}\x{fe5b}\x{ff04}\x{ff08}\x{ff0e}\x{ff3b}\x{ff5b}\x{ff5f}\x{ffe1}\x{ffe5}\x{ffe6}";
-	// Following characters - Not allowed at start
-	$this->CJKfollowing = "!%\),\.:;>\?\]\}\x{00a2}\x{00a8}\x{00b0}\x{00b7}\x{00bb}\x{02c7}\x{02c9}\x{2010}\x{2013}-\x{2016}\x{2019}\x{201d}-\x{201f}\x{2020}-\x{2022}\x{2025}\x{2027}\x{203a}\x{203c}\x{2047}-\x{2049}\x{2103}\x{2236}\x{2574}\x{3001}-\x{3003}\x{3005}\x{3006}\x{3009}\x{300b}\x{300d}\x{300f}\x{3011}\x{3015}\x{3017}\x{3019}\x{301c}\x{301e}\x{301f}\x{303b}\x{3041}\x{3043}\x{3045}\x{3047}\x{3049}\x{3063}\x{3083}\x{3085}\x{3087}\x{308e}\x{3095}\x{3096}\x{30a0}\x{30a1}\x{30a3}\x{30a5}\x{30a7}\x{30a9}\x{30c3}\x{30e3}\x{30e5}\x{30e7}\x{30ee}\x{30f5}\x{30f6}\x{30fb}-\x{30fe}\x{31f0}-\x{31ff}\x{fe30}-\x{fe33}\x{fe50}-\x{fe56}\x{fe58}\x{fe5a}\x{fe5c}\x{ff01}\x{ff02}\x{ff05}\x{ff07}\x{ff09}\x{ff0c}\x{ff0e}\x{ff1a}\x{ff1b}\x{ff1f}\x{ff3d}\x{ff40}\x{ff5c}-\x{ff5e}\x{ff60}\x{ff64}";
-	// Characters which are allowed to overflow the right margin
-	$this->CJKoverflow = "\.,\x{ff61}\x{ff64}\x{3001}\x{3002}\x{ff0c}\x{ff0e}";
-
-
-
-	// ASCII Chars which shouldn't break string
-	// Use for very specific words
-	$this->pregASCIIchars1 = "\x{0021}-\x{002E}\x{0030}-\x{003B}?";	// no [SPACE]
-	// Use for words+
-	$this->pregASCIIchars2 = "\x{0020}-\x{002E}\x{0030}-\x{003B}?";	// [SPACE] punctuation and 0-9
-	// Use for chunks > words
-	$this->pregASCIIchars3 = "\x{0000}-\x{002E}\x{0030}-\x{003B}\x{003F}-\x{007E}";	// all except <>
-	// Vietnamese - specific
-	$this->pregVIETchars = "\x{01A0}\x{01A1}\x{01AF}\x{01B0}\x{1EA0}-\x{1EF1}";	
-	// Vietnamese -  Chars which shouldn't break string 
-	$this->pregVIETPluschars = "\x{0000}-\x{003B}\x{003F}-\x{00FF}\x{0300}-\x{036F}\x{0102}\x{0103}\x{0110}\x{0111}\x{0128}\x{0129}\x{0168}\x{0169}\x{1EF1}-\x{1EF9}";	// omits < >
-
-	// Arabic
-	$this->pregARABICchars = "\x{0600}-\x{06FF}\x{0750}-\x{077F}\x{FB50}-\x{FDFD}\x{FE70}-\x{FEFF}";
-	// Characters of Urdu, Pashto, Sindhi (but NOT arabic or persian/farsi) [not covered by DejavuSans font]
-	$this->pregNonARABICchars = "\x{0671}-\x{067D}\x{067F}-\x{0685}\x{0687}-\x{0697}\x{0699}-\x{06A8}\x{06AA}-\x{06AE}\x{06B0}-\x{06CB}\x{06CD}-\x{06D3}";
-
-	$this->pregHEBchars = "\x{0590}-\x{05FF}\x{FB00}-\x{FB49}";	// Hebrew
-
-	// INDIC
-	$this->pregHIchars = "\x{0900}-\x{0963}\x{0966}-\x{097F}";	// Devanagari (Hindi) minus the common indic punctuation 0964,0965
-	$this->pregBNchars = "\x{0980}-\x{09FF}";	// Bengali 
-	$this->pregPAchars = "\x{0A00}-\x{0A7F}";	// Gurmukhi (Punjabi)
-	$this->pregGUchars = "\x{0A80}-\x{0AFF}";	// Gujarati
-	$this->pregORchars = "\x{0B00}-\x{0B7F}";	// Oriya 
-	$this->pregTAchars = "\x{0B80}-\x{0BFF}";	// Tamil 
-	$this->pregTEchars = "\x{0C00}-\x{0C7F}";	// Telugu 
-	$this->pregKNchars = "\x{0C80}-\x{0CFF}";	// Kannada 
-	$this->pregMLchars = "\x{0D00}-\x{0D7F}";	// Malayalam 
-	$this->pregSHchars = "\x{0D80}-\x{0DFF}";	// Sinhala 
-
-	$this->pregINDextra = "\x{200B}-\x{200D}\x{0964}\x{0965}\x{0020}-\x{0022}\x{0024}-\x{002E}\x{003A}-\x{003F}\x{005B}-\x{0060}\x{007B}-\x{007E}\x{00A0}";
-	// 200B-D=Zero-width joiners; 0964,0965=Generic Indic punctuation; NBSP & general punctuation (excludes # and / so can use in autoFont() )
-
-$this->allowedCSStags = 'DIV|P|H1|H2|H3|H4|H5|H6|FORM|IMG|A|BODY|TABLE|HR|THEAD|TFOOT|TBODY|TH|TR|TD|UL|OL|LI|PRE|BLOCKQUOTE|ADDRESS|DL|DT|DD';
-$this->allowedCSStags .= '|ARTICLE|ASIDE|FIGURE|FIGCAPTION|FOOTER|HEADER|HGROUP|NAV|SECTION|MARK|DETAILS|SUMMARY|METER|PROGRESS|TIME'; // mPDF 5.5.09
-$this->allowedCSStags .= '|SPAN|TT|I|B|BIG|SMALL|EM|STRONG|DFN|CODE|SAMP|KBD|VAR|CITE|ABBR|ACRONYM|STRIKE|S|U|DEL|INS|Q|FONT';
-$this->allowedCSStags .= '|SELECT|INPUT|TEXTAREA|CAPTION|FIELDSET|LEGEND';
-$this->allowedCSStags .= '|TEXTCIRCLE|DOTTAB|MAIN';	// mPDF 5.7.3
-
-$this->outerblocktags = array('DIV','FORM','CENTER','DL','FIELDSET','ARTICLE','ASIDE','FIGURE','FIGCAPTION', 'FOOTER','HEADER','HGROUP','MAIN','NAV','SECTION','DETAILS','SUMMARY');	// mPDF 5.7.3
-$this->innerblocktags = array('P','BLOCKQUOTE','ADDRESS','PRE','H1','H2','H3','H4','H5','H6','DT','DD','CAPTION');
-
-
-
-?>
\ No newline at end of file
diff --git a/public_html/2022/newcms/pdf/config_cp.php b/public_html/2022/newcms/pdf/config_cp.php
deleted file mode 100644
index e2e21f4..0000000
--- a/public_html/2022/newcms/pdf/config_cp.php
+++ /dev/null
@@ -1,153 +0,0 @@
-
\ No newline at end of file
diff --git a/public_html/2022/newcms/pdf/config_fonts.php b/public_html/2022/newcms/pdf/config_fonts.php
deleted file mode 100644
index 7cb990a..0000000
--- a/public_html/2022/newcms/pdf/config_fonts.php
+++ /dev/null
@@ -1,304 +0,0 @@
-fontdata) to use for missing characters
-// when using useSubstitutions. Use a font with wide coverage - dejavusanscondensed is a good start
-// only works using subsets (otherwise would add very large file)
-// doesn't do Indic or arabic
-// More than 1 font can be specified but each will add to the processing time of the script
-
-$this->backupSubsFont = array('dejavusanscondensed');
-
-
-// Optionally set a font (name as defined below in $this->fontdata) to use for CJK characters
-// in Plane 2 Unicode (> U+20000) when using useSubstitutions. 
-// Use a font like hannomb or sun-extb if available
-// only works using subsets (otherwise would add very large file)
-// Leave undefined or blank if not not required
-
-// $this->backupSIPFont = 'sun-extb';
-
-
-/*
-This array defines translations from font-family in CSS or HTML
-to the internal font-family name used in mPDF. 
-Can include as many as want, regardless of which fonts are installed.
-By default mPDF will take a CSS/HTML font-family and remove spaces
-and change to lowercase e.g. "Arial Unicode MS" will be recognised as
-"arialunicodems"
-You only need to define additional translations.
-You can also use it to define specific substitutions e.g.
-'frutiger55roman' => 'arial'
-Generic substitutions (i.e. to a sans-serif or serif font) are set 
-by including the font-family in $this->sans_fonts below
-To aid backwards compatability some are included:
-*/
-$this->fonttrans = array(
-	'helvetica' => 'arial',
-	'times' => 'timesnewroman',
-	'courier' => 'couriernew',
-	'trebuchet' => 'trebuchetms',
-	'comic' => 'comicsansms',
-	'franklin' => 'franklingothicbook',
-	'albertus' => 'albertusmedium',
-	'arialuni' => 'arialunicodems',
-	'zn_hannom_a' => 'hannoma',
-	'ocr-b' => 'ocrb',
-	'ocr-b10bt' => 'ocrb',
-
-
-);
-
-/*
-This array lists the file names of the TrueType .ttf or .otf font files
-for each variant of the (internal mPDF) font-family name.
-['R'] = Regular (Normal), others are Bold, Italic, and Bold-Italic
-Each entry must contain an ['R'] entry, but others are optional.
-Only the font (files) entered here will be available to use in mPDF.
-Put preferred default first in order.
-This will be used if a named font cannot be found in any of 
-$this->sans_fonts, $this->serif_fonts or $this->mono_fonts
-
-['indic'] = true; for special mPDF fonts containing Indic characters
-['sip-ext'] = 'hannomb'; name a related font file containing SIP characters
-
-If a .ttc TrueType collection file is referenced, the number of the font
-within the collection is required. Fonts in the collection are numbered 
-starting at 1, as they appear in the .ttc file e.g.
-	"cambria" => array(
-		'R' => "cambria.ttc",
-		'B' => "cambriab.ttf",
-		'I' => "cambriai.ttf",
-		'BI' => "cambriaz.ttf",
-		'TTCfontID' => array(
-			'R' => 1,	
-			),
-		),
-	"cambriamath" => array(
-		'R' => "cambria.ttc",
-		'TTCfontID' => array(
-			'R' => 2,	
-			),
-		),
-*/
-
-$this->fontdata = array(
-	"dejavusanscondensed" => array(
-		'R' => "DejaVuSansCondensed.ttf",
-		'B' => "DejaVuSansCondensed-Bold.ttf",
-		'I' => "DejaVuSansCondensed-Oblique.ttf",
-		'BI' => "DejaVuSansCondensed-BoldOblique.ttf",
-		),
-	"dejavusans" => array(
-		'R' => "DejaVuSans.ttf",
-		'B' => "DejaVuSans-Bold.ttf",
-		'I' => "DejaVuSans-Oblique.ttf",
-		'BI' => "DejaVuSans-BoldOblique.ttf",
-		),
-	"dejavuserif" => array(
-		'R' => "DejaVuSerif.ttf",
-		'B' => "DejaVuSerif-Bold.ttf",
-		'I' => "DejaVuSerif-Italic.ttf",
-		'BI' => "DejaVuSerif-BoldItalic.ttf",
-		),
-	"dejavuserifcondensed" => array(
-		'R' => "DejaVuSerifCondensed.ttf",
-		'B' => "DejaVuSerifCondensed-Bold.ttf",
-		'I' => "DejaVuSerifCondensed-Italic.ttf",
-		'BI' => "DejaVuSerifCondensed-BoldItalic.ttf",
-		),
-	"dejavusansmono" => array(
-		'R' => "DejaVuSansMono.ttf",
-		'B' => "DejaVuSansMono-Bold.ttf",
-		'I' => "DejaVuSansMono-Oblique.ttf",
-		'BI' => "DejaVuSansMono-BoldOblique.ttf",
-		),
-
-
-/* OCR-B font for Barcodes */
-	"ocrb" => array(
-		'R' => "ocrb10.ttf",
-		),
-
-/* Thai fonts */
-	"garuda" => array(
-		'R' => "Garuda.ttf",
-		'B' => "Garuda-Bold.ttf",
-		'I' => "Garuda-Oblique.ttf",
-		'BI' => "Garuda-BoldOblique.ttf",
-		),
-	"norasi" => array(
-		'R' => "Norasi.ttf",
-		'B' => "Norasi-Bold.ttf",
-		'I' => "Norasi-Oblique.ttf",
-		'BI' => "Norasi-BoldOblique.ttf",
-		),
-
-
-/* Indic fonts */
-	"ind_bn_1_001" => array(
-		'R' => "ind_bn_1_001.ttf",
-		'indic' => true,
-		),
-	"ind_hi_1_001" => array(
-		'R' => "ind_hi_1_001.ttf",
-		'indic' => true,
-		),
-	"ind_ml_1_001" => array(
-		'R' => "ind_ml_1_001.ttf",
-		'indic' => true,
-		),
-	"ind_kn_1_001" => array(
-		'R' => "ind_kn_1_001.ttf",
-		'indic' => true,
-		),
-	"ind_gu_1_001" => array(
-		'R' => "ind_gu_1_001.ttf",
-		'indic' => true,
-		),
-	"ind_or_1_001" => array(
-		'R' => "ind_or_1_001.ttf",
-		'indic' => true,
-		),
-	"ind_ta_1_001" => array(
-		'R' => "ind_ta_1_001.ttf",
-		'indic' => true,
-		),
-	"ind_te_1_001" => array(
-		'R' => "ind_te_1_001.ttf",
-		'indic' => true,
-		),
-	"ind_pa_1_001" => array(
-		'R' => "ind_pa_1_001.ttf",
-		'indic' => true,
-		),
-
-
-/* XW Zar Arabic fonts */
-	"xbriyaz" => array(
-		'R' => "XB Riyaz.ttf",
-		'B' => "XB RiyazBd.ttf",
-		'I' => "XB RiyazIt.ttf",
-		'BI' => "XB RiyazBdIt.ttf",
-		'unAGlyphs' => true,
-		),
-	"xbzar" => array(
-		'R' => "XB Zar.ttf",
-		'B' => "XB Zar Bd.ttf",
-		'I' => "XB Zar It.ttf",
-		'BI' => "XB Zar BdIt.ttf",
-		'unAGlyphs' => true,
-		),
-
-
-
-
-/* Examples of some CJK fonts */
-/*
-	"unbatang_0613" => array(
-		'R' => "UnBatang_0613.ttf",
-		),
-	"sun-exta" => array(
-		'R' => "Sun-ExtA.ttf",
-		'sip-ext' => 'sun-extb',
-		),
-	"sun-extb" => array(
-		'R' => "Sun-ExtB.ttf",
-		),
-	"hannoma" => array(
-		'R' => "HAN NOM A.ttf",
-		'sip-ext' => 'hannomb',	
-		),
-	"hannomb" => array(
-		'R' => "HAN NOM B.ttf",
-		),
-
-
-	'mingliu' => array (
-		'R' => 'mingliu.ttc',
-		'TTCfontID' => array (
-			'R' => 1,
-		),
-		'sip-ext' => 'mingliu-extb',
-	),
-	'pmingliu' => array (
-		'R' => 'mingliu.ttc',
-		'TTCfontID' => array (
-			'R' => 2,
-		),
-		'sip-ext' => 'pmingliu-extb',
-	),
-	'mingliu_hkscs' => array (
-		'R' => 'mingliu.ttc',
-		'TTCfontID' => array (
-			'R' => 3,
-		),
-		'sip-ext' => 'mingliu_hkscs-extb',
-	),
-	'mingliu-extb' => array (
-		'R' => 'mingliub.ttc',
-		'TTCfontID' => array (
-			'R' => 1,
-		),
-	),
-	'pmingliu-extb' => array (
-		'R' => 'mingliub.ttc',
-		'TTCfontID' => array (
-			'R' => 2,
-		),
-	),
-	'mingliu_hkscs-extb' => array (
-		'R' => 'mingliub.ttc',
-		'TTCfontID' => array (
-			'R' => 3,
-		),
-	),
-*/
-
-);
-
-
-// Add fonts to this array if they contain characters in the SIP or SMP Unicode planes
-// but you do not require them. This allows a more efficient form of subsetting to be used.
-$this->BMPonly = array(
-	"dejavusanscondensed",
-	"dejavusans",
-	"dejavuserifcondensed",
-	"dejavuserif",
-	"dejavusansmono",
-	);
-
-// These next 3 arrays do two things:
-// 1. If a font referred to in HTML/CSS is not available to mPDF, these arrays will determine whether
-//    a serif/sans-serif or monospace font is substituted
-// 2. The first font in each array will be the font which is substituted in circumstances as above
-//     (Otherwise the order is irrelevant)
-// Use the mPDF font-family names i.e. lowercase and no spaces (after any translations in $fonttrans)
-// Always include "sans-serif", "serif" and "monospace" etc.
-$this->sans_fonts = array('dejavusanscondensed','dejavusans','freesans','liberationsans','sans','sans-serif','cursive','fantasy', 
-				'arial','helvetica','verdana','geneva','lucida','arialnarrow','arialblack','arialunicodems',
-				'franklin','franklingothicbook','tahoma','garuda','calibri','trebuchet','lucidagrande','microsoftsansserif',
-				'trebuchetms','lucidasansunicode','franklingothicmedium','albertusmedium','xbriyaz','albasuper','quillscript'
-
-);
-
-$this->serif_fonts = array('dejavuserifcondensed','dejavuserif','freeserif','liberationserif','serif',
-				'timesnewroman','times','centuryschoolbookl','palatinolinotype','centurygothic',
-				'bookmanoldstyle','bookantiqua','cyberbit','cambria',
-				'norasi','charis','palatino','constantia','georgia','albertus','xbzar','algerian','garamond',
-);
-
-$this->mono_fonts = array('dejavusansmono','freemono','liberationmono','courier', 'mono','monospace','ocrb','ocr-b','lucidaconsole',
-				'couriernew','monotypecorsiva'
-);
-
-?>
\ No newline at end of file
diff --git a/public_html/2022/newcms/pdf/examples/alpha.gif b/public_html/2022/newcms/pdf/examples/alpha.gif
deleted file mode 100644
index 1ade505..0000000
Binary files a/public_html/2022/newcms/pdf/examples/alpha.gif and /dev/null differ
diff --git a/public_html/2022/newcms/pdf/examples/alpha.png b/public_html/2022/newcms/pdf/examples/alpha.png
deleted file mode 100644
index a8acd15..0000000
Binary files a/public_html/2022/newcms/pdf/examples/alpha.png and /dev/null differ
diff --git a/public_html/2022/newcms/pdf/examples/alpha3.png b/public_html/2022/newcms/pdf/examples/alpha3.png
deleted file mode 100644
index e62e50a..0000000
Binary files a/public_html/2022/newcms/pdf/examples/alpha3.png and /dev/null differ
diff --git a/public_html/2022/newcms/pdf/examples/bayeux1.jpg b/public_html/2022/newcms/pdf/examples/bayeux1.jpg
deleted file mode 100644
index c67f252..0000000
Binary files a/public_html/2022/newcms/pdf/examples/bayeux1.jpg and /dev/null differ
diff --git a/public_html/2022/newcms/pdf/examples/bg.jpg b/public_html/2022/newcms/pdf/examples/bg.jpg
deleted file mode 100644
index 896ea63..0000000
Binary files a/public_html/2022/newcms/pdf/examples/bg.jpg and /dev/null differ
diff --git a/public_html/2022/newcms/pdf/examples/bgbarcode.png b/public_html/2022/newcms/pdf/examples/bgbarcode.png
deleted file mode 100644
index 26120a8..0000000
Binary files a/public_html/2022/newcms/pdf/examples/bgbarcode.png and /dev/null differ
diff --git a/public_html/2022/newcms/pdf/examples/bgrock.jpg b/public_html/2022/newcms/pdf/examples/bgrock.jpg
deleted file mode 100644
index 2e0553a..0000000
Binary files a/public_html/2022/newcms/pdf/examples/bgrock.jpg and /dev/null differ
diff --git a/public_html/2022/newcms/pdf/examples/borders2FF.jpg b/public_html/2022/newcms/pdf/examples/borders2FF.jpg
deleted file mode 100644
index 7c841d4..0000000
Binary files a/public_html/2022/newcms/pdf/examples/borders2FF.jpg and /dev/null differ
diff --git a/public_html/2022/newcms/pdf/examples/borders2IE.jpg b/public_html/2022/newcms/pdf/examples/borders2IE.jpg
deleted file mode 100644
index 88ff6c5..0000000
Binary files a/public_html/2022/newcms/pdf/examples/borders2IE.jpg and /dev/null differ
diff --git a/public_html/2022/newcms/pdf/examples/borders3FF.jpg b/public_html/2022/newcms/pdf/examples/borders3FF.jpg
deleted file mode 100644
index 9336c60..0000000
Binary files a/public_html/2022/newcms/pdf/examples/borders3FF.jpg and /dev/null differ
diff --git a/public_html/2022/newcms/pdf/examples/borders3IE.jpg b/public_html/2022/newcms/pdf/examples/borders3IE.jpg
deleted file mode 100644
index 12a4dfc..0000000
Binary files a/public_html/2022/newcms/pdf/examples/borders3IE.jpg and /dev/null differ
diff --git a/public_html/2022/newcms/pdf/examples/borders4FF.jpg b/public_html/2022/newcms/pdf/examples/borders4FF.jpg
deleted file mode 100644
index a553cd6..0000000
Binary files a/public_html/2022/newcms/pdf/examples/borders4FF.jpg and /dev/null differ
diff --git a/public_html/2022/newcms/pdf/examples/borders4IE.jpg b/public_html/2022/newcms/pdf/examples/borders4IE.jpg
deleted file mode 100644
index bee0359..0000000
Binary files a/public_html/2022/newcms/pdf/examples/borders4IE.jpg and /dev/null differ
diff --git a/public_html/2022/newcms/pdf/examples/bordersFF.jpg b/public_html/2022/newcms/pdf/examples/bordersFF.jpg
deleted file mode 100644
index 7da1c84..0000000
Binary files a/public_html/2022/newcms/pdf/examples/bordersFF.jpg and /dev/null differ
diff --git a/public_html/2022/newcms/pdf/examples/bordersIE.jpg b/public_html/2022/newcms/pdf/examples/bordersIE.jpg
deleted file mode 100644
index f02003b..0000000
Binary files a/public_html/2022/newcms/pdf/examples/bordersIE.jpg and /dev/null differ
diff --git a/public_html/2022/newcms/pdf/examples/bordersMPDF2.jpg b/public_html/2022/newcms/pdf/examples/bordersMPDF2.jpg
deleted file mode 100644
index cf161ab..0000000
Binary files a/public_html/2022/newcms/pdf/examples/bordersMPDF2.jpg and /dev/null differ
diff --git a/public_html/2022/newcms/pdf/examples/clematis.jpg b/public_html/2022/newcms/pdf/examples/clematis.jpg
deleted file mode 100644
index d8078f8..0000000
Binary files a/public_html/2022/newcms/pdf/examples/clematis.jpg and /dev/null differ
diff --git a/public_html/2022/newcms/pdf/examples/curriculum.php b/public_html/2022/newcms/pdf/examples/curriculum.php
deleted file mode 100644
index 860a509..0000000
--- a/public_html/2022/newcms/pdf/examples/curriculum.php
+++ /dev/null
@@ -1,81 +0,0 @@
-connect_error) {
-    die("Connection failed: " . $conn->connect_error);
-}
-
-mysqli_set_charset($conn,"utf8");
-
-$id = $_GET["id"];
-
-$abfrage = "SELECT * FROM editioun_2021 WHERE id = '$id'";
- $result = mysqli_query($conn, $abfrage);
- $rows = mysqli_fetch_array($result);
- $datum = $rows['age'];
-
-  $geburtstag = new DateTime($datum);
-  $heute = new DateTime(date('Y-m-d'));
-  $differenz = $geburtstag->diff($heute);
-
-  $alter= $differenz->format('%y');
-
-
-         $html = '
-         
ID: '.$id.' -

'.$rows['prenom'].' '.$rows['nom'] .'

-

-

About

- - - - -

-
Age: '.$alter.'
Country: '.$rows['pays'] .'


-

Text

-
-

'.$rows['title'].'

- '.$rows['message'].' -
-
- - - - '; - - - - - - - - - - - - -//============================================================== -//============================================================== -//============================================================== - -include("../mpdf.php"); - -$mpdf=new mPDF('', 'Letter', 0, '', 12.7, 12.7, 14, 12.7, 8, 8); - -$mpdf->SetDisplayMode('fullpage'); - -// LOAD a stylesheet -$stylesheet = file_get_contents('mpdfstyleA4.css'); -$mpdf->WriteHTML($stylesheet,1); // The parameter 1 tells that this is css/style only and no body/html/text - -$mpdf->WriteHTML($html); - -$mpdf->Output($rows['nom'],'D'); -exit; -//============================================================== -//============================================================== -//============================================================== - -?> diff --git a/public_html/2022/newcms/pdf/examples/example01_basic.php b/public_html/2022/newcms/pdf/examples/example01_basic.php deleted file mode 100644 index 09ffb37..0000000 --- a/public_html/2022/newcms/pdf/examples/example01_basic.php +++ /dev/null @@ -1,187 +0,0 @@ -
mPDF -

Basic HTML Example

-This file demonstrates most of the HTML elements. -

Heading 3

-

Heading 4

-
Heading 5
-
Heading 6
-

P: Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci.

- -
- -
DIV: Proin aliquet lorem id felis. Curabitur vel libero at mauris nonummy tincidunt. Donec imperdiet. Vestibulum sem sem, lacinia vel, molestie et, laoreet eget, urna. Curabitur viverra faucibus pede. Morbi lobortis. Donec dapibus. Donec tempus. Ut arcu enim, rhoncus ac, venenatis eu, porttitor mollis, dui. Sed vitae risus. In elementum sem placerat dui. Nam tristique eros in nisl. Nulla cursus sapien non quam porta porttitor. Quisque dictum ipsum ornare tortor. Fusce ornare tempus enim.
-
DIV: Proin aliquet lorem id felis. Curabitur vel libero at mauris nonummy tincidunt. Donec imperdiet. Vestibulum sem sem, lacinia vel, molestie et, laoreet eget, urna. Curabitur viverra faucibus pede. Morbi lobortis. Donec dapibus. Donec tempus. Ut arcu enim, rhoncus ac, venenatis eu, porttitor mollis, dui. Sed vitae risus. In elementum sem placerat dui. Nam tristique eros in nisl. Nulla cursus sapien non quam porta porttitor. Quisque dictum ipsum ornare tortor. Fusce ornare tempus enim.
- -
Blockquote: Maecenas arcu justo, malesuada eu, dapibus ac, adipiscing vitae, turpis. Fusce mollis. Aliquam egestas. In purus dolor, facilisis at, fermentum nec, molestie et, metus. Maecenas arcu justo, malesuada eu, dapibus ac, adipiscing vitae, turpis. Fusce mollis. Aliquam egestas. In purus dolor, facilisis at, fermentum nec, molestie et, metus.
- -
Address: Vestibulum feugiat, orci at imperdiet tincidunt, mauris erat facilisis urna, sagittis ultricies dui nisl et lectus. Sed lacinia, lectus vitae dictum sodales, elit ipsum ultrices orci, non euismod arcu diam non metus.
- -
PRE: Cum sociis natoque penatibus et magnis dis parturient montes, 
-nascetur ridiculus mus. In suscipit turpis vitae odio. Integer convallis 
-dui at metus. Fusce magna. Sed sed lectus vitae enim tempor cursus. Cras 
-sed, posuere et, urna. Quisque ut leo. Aliquam interdum hendrerit tortor. 
-Vestibulum elit. Vestibulum et arcu at diam mattis commodo. Nam ipsum sem, 
-ultricies at, rutrum sit amet, posuere nec, velit. Sed molestie mollis dui.
- - - - -
Styles - tt(teletype) italic bold big small emphasis strong
new lines
-code sample keyboard variable citation abbr. ACRONYM sup sub strike strike-s underline delete insert To be or not to be font changing face, size and color -
- -

Paragraph using the in-line style to determine the font-size (15pt) and colour

- - -

Testing BIG, SMALL, UNDERLINE, STRIKETHROUGH, FONT color, ACRONYM, SUPERSCRIPT and SUBSCRIPT

-

This is strikethrough in block and small strikethrough in small span and big strikethrough in big span and then underline and strikethrough and sup but out of span again but blue font and ACRONYM text

- -

This is a green reference32-47 and underlined reference32-47 then reference32-47 and underlined reference32-47 then Strikethrough reference32-47 and strikethrough reference32-47

- -

Repeated in BIG: This is reference32-47 and underlined reference32-47 then reference32-47 and underlined reference32-47 but out of span again but blue font and ACRONYM text

- -

Repeated in small: This is reference32-47 and underlined reference32-47 then reference32-47 and underlined reference32-47 but out of span again but blue font and ACRONYM text

- -

The above repeated, but starting with a paragraph with font-size specified (7pt)

- -

This is strikethrough in block and small strikethrough in small span and then underline but out of span again but blue font and ACRONYM text

- -

This is strikethrough in block and big strikethrough in big span and then underline but out of span again but blue font and ACRONYM text

- -

This is reference32-47 and underlined reference32-47 then reference32-47 and underlined reference32-47 then Strikethrough reference32-47 and strikethrough reference32-47

- -

This tests underline and strikethrough when they are used together as they both use text-decoration

- - -

Repeated in small: This is reference32-47 and underlined reference32-47 then reference32-47 and underlined reference32-47 but out of span again but blue font and ACRONYM text

- -

Repeated in BIG but with font-size set to 7pt by in-line css: This is reference32-47 and underlined reference32-47 then reference32-47 and underlined reference32-47 but out of span again but blue font and ACRONYM text

- -
    -
  1. Item 1
  2. -
  3. Item 232
  4. -
  5. Item 3
  6. -
  7. Praesent pharetra nulla in turpis. Sed ipsum nulla, sodales nec, vulputate in, scelerisque vitae, magna. Sed egestas justo nec ipsum. Nulla facilisi. Praesent sit amet pede quis metus aliquet vulputate. Donec luctus. Cras euismod tellus vel leo. -
      -
    • Praesent pharetra nulla in turpis. Sed ipsum nulla, sodales nec, vulputate in, scelerisque vitae, magna. Sed egestas justo nec ipsum. Nulla facilisi. Praesent sit amet pede quis metus aliquet vulputate. Donec luctus. Cras euismod tellus vel leo.
    • -
    • Subitem 2 -
        -
      • -Level 3 subitem -
      • -
      -
    • -
    -
  8. -
  9. Item 5
  10. -
- -
-
Definition list
-
List defined by DL, DD and DT tags
-
- -

Sed bibendum. Nunc eleifend ornare velit. Sed consectetuer urna in erat. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Mauris sodales semper metus. Maecenas justo libero, pretium at, malesuada eu, mollis et, arcu. Ut suscipit pede in nulla. Praesent elementum, dolor ac fringilla posuere, elit libero rutrum massa, vel tincidunt dui tellus a ante. Sed aliquet euismod dolor. Vestibulum sed dui. Duis lobortis hendrerit quam. Donec tempus orci ut libero. Pellentesque suscipit malesuada nisi.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
DataDataDataData
2nd line
More DataMore DataMore DataData
2nd line
DataDataDataData
2nd line
DataDataDataData
2nd line
- -

Praesent pharetra nulla in turpis. Sed ipsum nulla, sodales nec, vulputate in, scelerisque vitae, magna. Sed egestas justo nec ipsum. Nulla facilisi. Praesent sit amet pede quis metus aliquet vulputate. Donec luctus. Cras euismod tellus vel leo. Cras tellus. Fusce aliquet. Curabitur tincidunt viverra ligula. Fusce eget erat. Donec pede. Vestibulum id felis. Phasellus tincidunt ligula non pede. Morbi turpis. In vitae dui non erat placerat malesuada. Mauris adipiscing congue ante. Proin at erat. Aliquam mattis.

- -
- -Textarea - -

- -Select - followed by text -

- - - -Input Radio - No      Yes -

- - -Input Radio - No      Keep      Choice -

- - -Input Text - -

- -Input Password - -

- - - Checkboxes
- Not selected
- Selected
- Disabled -

- - - - - - -
- -'; - - -//============================================================== -//============================================================== -//============================================================== - -include("../mpdf.php"); - -$mpdf=new mPDF(); - -$mpdf->WriteHTML($html); -$mpdf->Output(); -exit; - -//============================================================== -//============================================================== -//============================================================== - - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/example02_CSS_styles.php b/public_html/2022/newcms/pdf/examples/example02_CSS_styles.php deleted file mode 100644 index b423e6b..0000000 --- a/public_html/2022/newcms/pdf/examples/example02_CSS_styles.php +++ /dev/null @@ -1,41 +0,0 @@ -mPDF -

Basic Example Using CSS Styles

- -

Heading 3

-

Heading 4

-
Heading 5
-

Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci.

-

Heading using Small-Caps - supported from mPDF version 5

-

Proin aliquet lorem id felis. Curabitur vel libero at mauris nonummy tincidunt. Donec imperdiet. Vestibulum sem sem, lacinia vel, molestie et, laoreet eget, urna. Curabitur viverra faucibus pede. Morbi lobortis. Donec dapibus. Donec tempus. Ut arcu enim, rhoncus ac, venenatis eu, porttitor mollis, dui. Sed vitae risus. In elementum sem placerat dui. Nam tristique eros in nisl. Nulla cursus sapien non quam porta porttitor. Quisque dictum ipsum ornare tortor. Fusce ornare tempus enim.

-'; - - -//============================================================== -//============================================================== -//============================================================== - -include("../mpdf.php"); - -$mpdf=new mPDF('c'); - -$mpdf->SetDisplayMode('fullpage'); - -// LOAD a stylesheet -$stylesheet = file_get_contents('mpdfstyleA4.css'); -$mpdf->WriteHTML($stylesheet,1); // The parameter 1 tells that this is css/style only and no body/html/text - -$mpdf->WriteHTML($html); - -$mpdf->Output(); - -exit; -//============================================================== -//============================================================== -//============================================================== - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/example03_backgrounds_and_borders.php b/public_html/2022/newcms/pdf/examples/example03_backgrounds_and_borders.php deleted file mode 100644 index ca13702..0000000 --- a/public_html/2022/newcms/pdf/examples/example03_backgrounds_and_borders.php +++ /dev/null @@ -1,138 +0,0 @@ - -.gradient { - border:0.1mm solid #220044; - background-color: #f0f2ff; - background-gradient: linear #c7cdde #f0f2ff 0 1 0 0.5; -} -.radialgradient { - border:0.1mm solid #220044; - background-color: #f0f2ff; - background-gradient: radial #00FFFF #FFFF00 0.5 0.5 0.5 0.5 0.65; - margin: auto; -} -.rounded { - border:0.1mm solid #220044; - background-color: #f0f2ff; - background-gradient: linear #c7cdde #f0f2ff 0 1 0 0.5; - border-radius: 2mm; - background-clip: border-box; -} -h4 { - font-family: sans; - font-weight: bold; - margin-top: 1em; - margin-bottom: 0.5em; -} -div { - padding:1em; - margin-bottom: 1em; - text-align:justify; -} -.example pre { - background-color: #d5d5d5; - margin: 1em 1cm; - padding: 0 0.3cm; -} - -pre { text-align:left } -pre.code { font-family: monospace } - - - - -

mPDF

-

Backgrounds & Borders

- -
-

Page background

-
-The background colour can be set by CSS styles on the <body> tag. This will set the background for the whole page. In this document, the background has been set as a gradient (see below). -
- -

Background Gradients

-
-Background can be set as a linear or radial gradient between two colours. The background has been set on this <div> element to a linear gradient. CSS style used here is:
-background-gradient: linear #c7cdde #f0f2ff 0 1 0 0.5;
-The four numbers are coordinates in the form (x1, y1, x2, y2) which defines the gradient vector. x and y are values from 0 to 1, where 1 represents the height or width of the box as it is printed. -
-
-Background gradients can be set on all block elements e.g. P, DIV, H1-H6, as well as on BODY. -
-
-The background has been set on this <div> element to a radial gradient. CSS style used here is:
-background-gradient: radial #00FFFF #FFFF00 0.5 0.5 0.5 0.5 0.65;
-The five numbers are coordinates in the form (x1, y1, x2, y2, r) where (x1, y1) is the starting point of the gradient with color1, -(x2, y2) is the center of the circle with color2, and r is the radius of the circle. -(x1, y1) should be inside the circle, otherwise some areas will not be defined. -
-
-Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec mattis lacus ac purus feugiat semper. Donec aliquet nunc odio, vitae pellentesque diam. Pellentesque sed velit lacus. Duis quis dui quis sem consectetur sollicitudin. Cras dolor quam, dapibus et pretium sit amet, elementum vel arcu. Duis rhoncus facilisis erat nec mattis. In hac habitasse platea dictumst. Vivamus hendrerit sem in justo aliquet a pellentesque lorem scelerisque. Suspendisse a augue sed urna rhoncus elementum. Aliquam erat volutpat. -
- -

Background Images

-
-The CSS properties background-image, background-position, and background-repeat are supported as defined in CSS2, as well as the shorthand form "background". -
-The background has been set on this <div> element to:
-background: transparent url(\'bg.jpg\') repeat fixed right top;
-Background gradients can be set on all block elements e.g. P, DIV, H1-H6, as well as on BODY. -
- -

Rounded Borders

-
-Rounded corners to borders can be added using border-radius as defined in the draft spec. of CSS3.
- -The two length values of the border-*-radius properties define the radii of a quarter ellipse that defines the shape of the corner of the outer border edge. -The first value is the horizontal radius.
-border-top-left-radius: 55pt 25pt; 55pt is radius of curve from top end of left border starting to go round to the top.
- -If the second length is omitted it is equal to the first (and the corner is thus a quarter circle). If either length is zero, the corner is square, not rounded.
- -The border-radius shorthand sets all four border-*-radius properties. If values are given before and after a slash, then the values before the slash set the horizontal radius and the values after the slash set the vertical radius. If there is no slash, then the values set both radii equally. The four values for each radii are given in the order top-left, top-right, bottom-right, bottom-left. If bottom-left is omitted it is the same as top-right. If bottom-right is omitted it is the same as top-left. If top-right is omitted it is the same as top-left. -
-
-border-radius: 4em;
- -would be equivalent to
- -border-top-left-radius: 4em;
-border-top-right-radius: 4em;
-border-bottom-right-radius: 4em;
-border-bottom-left-radius: 4em;

-
-and
-border-radius: 2em 1em 4em / 0.5em 3em;
-would be equivalent to
-border-top-left-radius: 2em 0.5em;
-border-top-right-radius: 1em 3em;
-border-bottom-right-radius: 4em 0.5em;
-border-bottom-left-radius: 1em 3em;
-
- -
-'; - -//============================================================== -//============================================================== -//============================================================== -include("../mpdf.php"); - -$mpdf=new mPDF(); - -$mpdf->SetDisplayMode('fullpage'); - -$mpdf->WriteHTML($html); - -$mpdf->Output(); - -exit; - -//============================================================== -//============================================================== -//============================================================== - - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/example04_images.php b/public_html/2022/newcms/pdf/examples/example04_images.php deleted file mode 100644 index b987763..0000000 --- a/public_html/2022/newcms/pdf/examples/example04_images.php +++ /dev/null @@ -1,207 +0,0 @@ - -table { border-collapse: collapse; margin-top: 0; text-align: center; } -td { padding: 0.5em; } -h1 { margin-bottom: 0; }z - -

mPDF Images

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GIFJPGJPG (CMYK)PNGBMPWMFSVG

Opacity 50%

- -

Alpha channel

- - - - - - - - - -
PNG
-

Transparency

- - - - - - - - - - - - - - - - - - - - - - - - -
PNG
GIF
WMF
SVG
- - -Images returned from tiger.php -
-GIF -JPG -PNG -WMF -SVG -
- - - - -

Image Alignment

-
From mPDF version 4.2 onwards, in-line images can be individually aligned (vertically). Most of the values for "vertical-align" are supported: top, bottom, middle, baseline, text-top, and text-bottom. The default value for vertical alignment has been changed to baseline, and the default padding to 0, consistent with most browsers. -
-
- -
-These images -are -top -aligned -
-
- -
-These images -are -text-top -aligned -
-
- -
-These images -are -bottom -aligned -
-
- -
-These images -are -text-bottom -aligned -
-
- -
-These images -are -baseline -aligned -
-
- -
-These images -are -middle -aligned -
-
- -

Mixed alignment

-
-baseline: -text-bottom: -middle: -bottom: -text-top: -top: -
- -

Image Border and padding

-From mPDF v4.2, Image padding is supported as well as border and margin. - - -

Rotated Images

- - - - -
- - - - -
-       -       -       - -
-  -  -  - -
- -'; -//============================================================== -//============================================================== -//============================================================== -include("../mpdf.php"); - -$mpdf=new mPDF('c'); - -$mpdf->WriteHTML($html); - -$mpdf->Output(); -exit; -//============================================================== -//============================================================== -//============================================================== -//============================================================== -//============================================================== - - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/example05_tables.php b/public_html/2022/newcms/pdf/examples/example05_tables.php deleted file mode 100644 index 997614a..0000000 --- a/public_html/2022/newcms/pdf/examples/example05_tables.php +++ /dev/null @@ -1,1017 +0,0 @@ -mPDF -

Tables

-

CSS Styles

-

The CSS properties for tables and cells is increased over that in html2fpdf. It includes recognition of THEAD, TFOOT and TH.
See below for other facilities such as autosizing, and rotation.

- - - - - - - - - - - - - - - -
Row 1This is dataThis is data
Row 2 -

This is data p

-This is data out of p -

This is bold data p

-This is bold data out of p
-This is normal data after br -

H3 in a table

-
This is data div
-This is data out of div -
This is data div (bold)
-This is data out of div -

More data

This is large text

Row 3

This is long data

This is data

Row 4 <td> cell

This is data

This is data

Row 5Also dataAlso data
Row 6Also dataAlso data
Row 7Also dataAlso data
Row 8Also dataAlso data
- -

This table has padding-left and -right set to 5mm i.e. padding within the cells. Also border colour and style, font family and size are set by CSS.

- - - - - - - - - -
Row 1This is dataThis is data
Row 2

This is data p

More data

Row 3

This is long data

This is data

Row 4 <td> cell

This is data

This is data

Row 5Also dataAlso data
Row 6Also dataAlso data
Row 7Also dataAlso data
Row 8Also dataAlso data
- -

This table has padding-top and -bottom set to 3mm i.e. padding within the cells. Also background-, border colour and style, font family and size are set by in-line CSS.

- - - - -
Row 1This is dataThis is data
Row 2

This is data p

More data

Row 3

This is long data

This is data
- - -

Table Styles

-

The style sheet used for these examples shows some of the table styles I use on my website. The property \'topntail\' defined by a border-type definition e.g. "1px solid #880000" puts a border at the top and bottom of the table, and also below a header row (thead) if defined. Note also that <thead> will automatically turn on the header-repeat i.e. reproduce the header row at the top of each page.

-

bpmTopic Class

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Row 1This is dataThis is data
Row 2 -

This is data p

-
-

More data

-
-

Row 3

-
-

This is long data

-
This is data
-

Row 4 <td> cell

-
This is data -

This is data

-
Row 5Also dataAlso data
Row 6Also dataAlso data
Row 7Also dataAlso data
Row 8Also dataAlso data
- -

 

- -

bpmTopicC Class (centered) Odd and Even rows

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Col/Row Header -

Second column header p

-
Third column header
Row header 1This is dataThis is data
Row header 2 -

This is data p

-
-

This is data

-
-

Row header 3

-
-

This is long data

-
This is data
-

Row header 4

-

<th> cell acting as header

-
This is data -

This is data

-
Row header 5Also dataAlso data
Row header 6Also dataAlso data
Row header 7Also dataAlso data
Row header 8Also dataAlso data
- -

 

- -

bpmTopnTail Class

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Row 1This is dataThis is data
Row 2 -

This is data p

-
-

This is data

-
-

Row 3

-
-

This is long data

-
This is data
-

Row 4 <td> cell

-
This is data -

This is data

-
Row 5Also dataAlso data
Row 6Also dataAlso data
Row 7Also dataAlso data
Row 8Also dataAlso data
-

 

-

bpmTopnTailC Class (centered) Odd and Even rows

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Col/Row Header -

Second column header p

-
Third column header
Row header 1This is dataThis is data
Row header 2 -

This is data p

-
-

This is data

-
-

Row header 3

-
-

This is long data

-
This is data
-

Row header 4

-

<th> cell acting as header

-
This is data -

This is data

-
Row header 5Also dataAlso data
Row header 6Also dataAlso data
Row header 7Also dataAlso data
Row header 8Also dataAlso data
- -

 

- -

TopnTail Class

- - - - - - - - - - - - - - - - - - - - - - - - - -
Col and Row Header -

Second

-

column

-
Top right align
-

Row header 1 p

-
This is dataThis is data
Row header 2Bottom right align -

This is data. Can use

-

bold italic sub or sup text

-
-

Bottom right align

-
-

This is data. This cell

-

uses Cell Styles to set

-

the borders.

-

All borders are collapsible

-

in mPDF.

-
This is data
Row header 4 -

This is data p

-
More data
Row header 5Also data merged and centered
- -

 

- -

Lists in a Table

- - - - - - - - - - - - - - -
Col and Row Header -

Second

-

column

-
Top right align
-

Row header 1 p

-
This is dataThis is data
Row header 2 -
    -
  1. Item 1
  2. -
  3. Item 2 -
      -
    1. Subitem of ordered list
    2. -
    3. Subitem 2 -
        -
      1. Level 3 subitem
      2. -
      3. Level 3 subitem
      4. -
      -
    4. -
    -
  4. -
  5. Item 3
  6. -
  7. Another Item
  8. -
  9. Subitem -
      -
    1. Level 3 subitem
    2. -
    -
  10. -
  11. Another Item
  12. -
-
-Unordered list: -
    -
  • Item 1
  • -
  • Item 2 -
      -
    • Subitem of unordered list
    • -
    • Subitem 2 -
        -
      • Level 3 subitem
      • -
      • Level 3 subitem
      • -
      • Level 3 subitem
      • -
      -
    • -
    -
  • -
  • Item 3
  • -
-
-

 

- - -

Automatic Column Width

- - - - - - - - - -
CausesNulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit.
-Ut a eros at ligula vehicula pretium; maecenas feugiat pede vel risus.
-Suspendisse potenti
MechanismsUt magna ipsum, tempus in, condimentum at, rutrum et, nisl. Vestibulum interdum luctus sapien. Quisque viverra. Etiam id libero at magna pellentesque aliquet. Nulla sit amet ipsum id enim tempus dictum. Maecenas consectetuer eros quis massa. Mauris semper velit vehicula purus. Duis lacus. Aenean pretium consectetuer mauris. Ut purus sem, consequat ut, fermentum sit amet, ornare sit amet, ipsum. Donec non nunc. Maecenas fringilla. Curabitur libero. In dui massa, malesuada sit amet, hendrerit vitae, viverra nec, tortor. Donec varius. Ut ut dolor et tellus adipiscing adipiscing.
- - -

ColSpan & Rowspan

- - - - - - - - - -
CausesNulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit.
-Ut a eros at ligula vehicula pretium; maecenas feugiat pede vel risus.
-Suspendisse potenti
Fusce eleifend neque sit amet erat.
-Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus.
Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla.
-Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien.
- - - -

Table Header & Footer Rows

-

A table using a header row should repeat the header row across pages:

-

bpmTopicC Class

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Col and Row Header -

Second column header

-
Third column header
Col and Row Footer -

Second column footer

-
Third column footer
Row header 1This is dataThis is data
Row header 2This is data -

This is data

-
-

Row header 3

-
-

This is data

-
This is data
Row header 4This is data -

This is data

-
Row header 5Also dataAlso data
Row header 6Also dataAlso data
Row header 7Also dataAlso data
Row header 8Also dataAlso data
Row header 9Also dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
-

 

- -

Autosizing Tables

-

Periodic Table of elements. Tables are set by default to reduce font size if complete words will not fit inside each cell, to a maximum of 1/1.4 * the set font-size. This value can be changed by setting $mpdf->shrink_tables_to_fit=1.8 or using html attribute <table autosize="1.8">.

- -
Periodic Table
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1A2A3B4B5B6B7B8B8B8B1B2B3A4A5A6A7A8A
H He
Li Be B C N O F Ne
Na Mg Al Si P S Cl Ar
K Ca Sc Ti V Cr Mn Fe Co Ni Cu Zn Ga Ge As Se Br Kr
Rb Sr Y Zr Nb Mo Tc Ru Rh Pd Ag Cd In Sn Sb Te I Xe
Cs Ba La Hf Ta W Re Os Ir Pt Au Hg Tl Pb Bi Po At Rn
Fr Ra Ac
Ce Pr Nd Pm Sm Eu Gd Tb Dy Ho Er Tm Yb Lu
Th Pa U Np Pu Am Cm Bk Cf Es Fm Md No Lr
- - - -

Rotating Tables

-

This is set to rotate -90 degrees (counterclockwise).

- -
Periodic Table
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1A2A3B4B5B6B7B8B8B8B1B2B3A4A5A6A7A8A
H He
Li Be B C N O F Ne
Na Mg Al Si P S Cl Ar
K Ca Sc Ti V Cr Mn Fe Co Ni Cu Zn Ga Ge As Se Br Kr
Rb Sr Y Zr Nb Mo Tc Ru Rh Pd Ag Cd In Sn Sb Te I Xe
Cs Ba La Hf Ta W Re Os Ir Pt Au Hg Tl Pb Bi Po At Rn
Fr Ra Ac
Ce Pr Nd Pm Sm Eu Gd Tb Dy Ho Er Tm Yb Lu
Th Pa U Np Pu Am Cm Bk Cf Es Fm Md No Lr
-

 

- - -

Rotated text in Table Cells

- -
Periodic Table
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Element type 1A

Second line

Element type longer 2A

Element type 3BElement type 4BElement type 5BElement type 6B7B8BElement type 8B R8BElement type 1B2BElement type 3AElement type 4AElement type 5AElement type 6A7AElement type 8A
HHe
Li Be B C N O F Ne
Na Mg Al Si P S Cl Ar
K Ca Sc TiVaCrMnFeCoNi Cu Zn Ga Ge As Se Br Kr
Rb Sr Y Zr Nb Mo Tc Ru RhPd Ag Cd In Sn Sb Te I Xe
Cs Ba La Hf Ta W Re Os Ir Pt Au Hg Tl Pb Bi Po At Rn
Fr Ra Ac
Ce Pr Nd Pm Sm Eu Gd Tb Dy Ho Er Tm Yb Lu
Th Pa U Np Pu Am Cm Bk Cf Es Fm Md No Lr
-

 

- -'; - -//============================================================== -//============================================================== -//============================================================== -include("../mpdf.php"); - -$mpdf=new mPDF('c','A4','','',32,25,27,25,16,13); - -$mpdf->SetDisplayMode('fullpage'); - -$mpdf->list_indent_first_level = 0; // 1 or 0 - whether to indent the first level of a list - -// LOAD a stylesheet -$stylesheet = file_get_contents('mpdfstyletables.css'); -$mpdf->WriteHTML($stylesheet,1); // The parameter 1 tells that this is css/style only and no body/html/text - -$mpdf->WriteHTML($html,2); - -$mpdf->Output('mpdf.pdf','I'); -exit; -//============================================================== -//============================================================== -//============================================================== - - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/example06_tables_nested.php b/public_html/2022/newcms/pdf/examples/example06_tables_nested.php deleted file mode 100644 index e50764a..0000000 --- a/public_html/2022/newcms/pdf/examples/example06_tables_nested.php +++ /dev/null @@ -1,532 +0,0 @@ - - - - -

mPDF

-

Tables - Nested

- - -
-Text before table - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
This is dataThis is data - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Row AA2A3A4
Row BB2B3B4
Row CC2Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci. C4
Row DD2D3D4
- - -
This is data
This is dataThis is data - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Row AA2A3A4
Row BB2B3B4
Row CC2Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci. C4
Row DD2D3D4
- - -
This is data
This is dataThis is data - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Row AA2A3A4
Row BB2B3B4
Row CC2Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci. C4
Row DD2D3D4
- - -
This is data
This is dataThis is data - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Row AA2A3A4
Row BB2B3B4
Row CC2Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci. C4
Row DD2D3D4
- - -
This is data
This is dataThis is dataThis is dataThis is data
This is dataThis is dataThis is data
This is dataThis is dataThis is dataThis is data
- -
- -

Text before table

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Row 1This is data -Text before table - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Row AA2A3A4
Row BB2B3B4
Row CC2C3C4
Row DD2D3D4
-

Text after table

- - -
This is data
Row 2This is dataThis is dataThis is data
Row 3 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Row AA2A3A4
Row BB2B4
Row CC2 - - - - - - - - - - - -
F1F2
Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec et nulla. Sed quis orci.G2
- -
C4
Row DD2D3D4
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Row AA2A3A4
Row BB2B3B4
Row CC2C3C4
Row DD2D3D4
-
This is data
Row 4This is data - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Row AA2A3A4
Row BB2B4
Row CC2 - - - - - - - - - - - -
F1F2
Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec et nulla. Sed quis orci.G2
- -
C4
Row DD2D3D4
- -
This is data
- - -
- -

 

- - -
-Text before table - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Row 1This is data - -NO NESTING This is data
Row 2This is dataThis is dataThis is data
Row 3This is dataThis is dataThis is data
Row 4This is dataThis is dataThis is data
- -
- - -'; - -//============================================================== -//============================================================== -//============================================================== -include("../mpdf.php"); - -$mpdf=new mPDF('c','A4','','',32,25,27,25,16,13); - -$mpdf->SetDisplayMode('fullpage'); - -$mpdf->list_indent_first_level = 0; // 1 or 0 - whether to indent the first level of a list - -// LOAD a stylesheet -$stylesheet = file_get_contents('mpdfstyletables.css'); -$mpdf->WriteHTML($stylesheet,1); // The parameter 1 tells that this is css/style only and no body/html/text - -$mpdf->WriteHTML($html); - -$mpdf->Output(); -exit; - - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/example07_tables_borders.php b/public_html/2022/newcms/pdf/examples/example07_tables_borders.php deleted file mode 100644 index a0cf4fc..0000000 --- a/public_html/2022/newcms/pdf/examples/example07_tables_borders.php +++ /dev/null @@ -1,500 +0,0 @@ - - - - - -

mPDF

-

Tables - Borders

-

mPDF

- -Border conflict resolution in tables with border-collapse set to "collapse". mPDF follows the rules set by CSS as well as possible, but as you can see, there is some difference in interpretation of the rules: - - - - - - - - - - - - - - - - - - - - - - - - - -
mPDFInternet Explorer
IE 7
Firefox
v 3.0.3
- - - - - - - - - - - - - - - - - - - - - - -
111
111
11
111
- - - -
- - - - - - - - - - - - - - - - - - - - - -
111
111
11
111
- - -
- - - - - - - - - - - - - - - - - - - - - -
111
111
11
111
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
mPDFmPDF < v3Internet Explorer
IE 7
Firefox
v 3.0.3
- - - - - - - - - - - - - - - - - - - - - - -
111
111
11
111
- - - -
- - - - - - - - - - - - - - - - - - - - - -
111
111
11
111
- - -
- - - - - - - - - - - - - - - - - - - - - -
111
111
11
111
- - -
- - - -

mPDF

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Datadouble reddashed yellowdotted greenData
Datahidden DatanoneData
Dataridge bluenone none Data
Datanone groove pinknone Data
none inset graynone outset purplenone
- -

Firefox

- - -
- - -

IE 7

- - - - -
mPDF
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Datadouble reddashed yellowdotted greenData
Datahidden DatanoneData
Dataridge bluenone none Data
Datanone groove pinknone Data
none inset graynone outset purplenone
- -
Firefox
- - - - -
IE 7
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
solid orangenonedouble rednoneinset graynoneoutset purplenonegroove pinknoneridge blue
- - - - - - - - - - - - - - - - -
solid orangenonedouble rednoneinset graynoneoutset purplenonegroove pinknoneridge blue
- - - - - - - - - - - - - - - - -
solid orangenonedouble rednoneinset graynoneoutset purplenonegroove pinknoneridge blue
- - - - - - - - - - - - - - - - -
solid orangenonedouble rednoneinset graynoneoutset purplenonegroove pinknoneridge blue
- - - - - - - - - - - - - - - - -
solid orangenonedouble rednoneinset graynoneoutset purplenonegroove pinknoneridge blue
- - - - - - - - - - - - - - - - -
solid orangenonedouble rednoneinset graynoneoutset purplenonegroove pinknoneridge blue
- - - -'; - -//============================================================== -//============================================================== -//============================================================== -include("../mpdf.php"); - -$mpdf=new mPDF('en-GB-x','A4','','',10,10,10,10,6,3); - -$mpdf->SetDisplayMode('fullpage'); - -$mpdf->list_indent_first_level = 0; // 1 or 0 - whether to indent the first level of a list - -// LOAD a stylesheet -$stylesheet = file_get_contents('mpdfstyletables.css'); -$mpdf->WriteHTML($stylesheet,1); // The parameter 1 tells that this is css/style only and no body/html/text - -$mpdf->WriteHTML($html); - -$mpdf->Output(); -exit; -//============================================================== -//============================================================== -//============================================================== - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/example08_lists.php b/public_html/2022/newcms/pdf/examples/example08_lists.php deleted file mode 100644 index a716d88..0000000 --- a/public_html/2022/newcms/pdf/examples/example08_lists.php +++ /dev/null @@ -1,137 +0,0 @@ - -ol, ul { text-align: justify; -} - -.lista { list-style-type: upper-roman; } -.listb{ list-style-type: decimal; font-family: sans-serif; color: blue; font-weight: bold; font-style: italic; font-size: 19pt; } -.listc{ list-style-type: upper-alpha; text-indent: 25mm; } -.listd{ list-style-type: lower-alpha; color: teal; line-height: 2; } -.liste{ list-style-type: disc; } - - - -

mPDF

-

Lists

- -
-
    -
  1. Text here lorem ipsum ibisque totum.
  2. -
  3. Text here lorem ipsum ibisque totum.
  4. -
  5. Text here lorem ipsum ibisque totum.
  6. -
  7. Text here lorem ipsum ibisque totum. Text here lorem ipsum ibisque totum. Text here lorem ipsum ibisque totum. Text here lorem ipsum ibisque totum. Text here lorem ipsum ibisque totum. Text here lorem ipsum ibisque totum.
  8. -
  9. Text here lorem ipsum ibisque totum.
  10. -
  11. Text here lorem ipsum ibisque totum. -
      -
    1. Text here lorem ipsum ibisque totum.
    2. -
    3. Text here lorem ipsum ibisque totum.
    4. -
    5. Text here lorem ipsum ibisque totum.
    6. -
    7. Text here lorem ipsum ibisque totum.
    8. -
    9. Text here lorem ipsum ibisque totum.
    10. -
    11. Text here lorem ipsum ibisque totum. -
        -
      1. Big text indent 25mm: Text here lorem ipsum ibisque totum.
      2. -
      3. Text here lorem ipsum ibisque totum. -
      4. -
      5. Text here lorem ipsum ibisque totum. -
          -
        1. Text here lorem ipsum ibisque totum.
        2. -
        3. Text here lorem ipsum ibisque totum.
        4. -
        5. Text here lorem ipsum ibisque totum.
        6. -
        7. Text here lorem ipsum ibisque totum.
        8. -
        9. Text here lorem ipsum ibisque totum. -
            -
          1. Text here lorem ipsum ibisque totum.
          2. -
          3. Text here lorem ipsum ibisque totum.
          4. -
          5. Text here lorem ipsum ibisque totum.
          6. -
          7. Text here lorem ipsum ibisque totum.
          8. -
          9. Text here lorem ipsum ibisque totum.
          10. -
          -
        10. -
        11. Text here lorem ipsum ibisque totum.
        12. -
        13. Text here lorem ipsum ibisque totum.
        14. -
        15. Text here lorem ipsum ibisque totum.
        16. -
        17. Text here lorem ipsum ibisque totum.
        18. -
        -
      6. -
      7. Text here lorem ipsum ibisque totum.
      8. -
      -
    12. -
    13. Text here lorem ipsum ibisque totum.
    14. -
    15. Text here lorem ipsum ibisque totum.
    16. -
    17. Text here lorem ipsum ibisque totum.
    18. -
    19. Text here lorem ipsum ibisque totum.
    20. -
    -
  12. -
  13. Text here lorem ipsum ibisque totum.
  14. -
  15. Text here lorem ipsum ibisque totum. -
      -
    1. Big text indent 25mm: Text here lorem ipsum ibisque totum.
    2. -
    3. Text here lorem ipsum ibisque totum.
    4. -
    5. Text here lorem ipsum ibisque totum. -
        -
      1. Text here lorem ipsum ibisque totum.
      2. -
      3. Text here lorem ipsum ibisque totum.
      4. -
      5. Text here lorem ipsum ibisque totum.
      6. -
      7. Text here lorem ipsum ibisque totum. -
          -
        1. Text here lorem ipsum ibisque totum.
        2. -
        3. Text here lorem ipsum ibisque totum.
        4. -
        5. Text here lorem ipsum ibisque totum.
        6. -
        7. Text here lorem ipsum ibisque totum.
        8. -
        9. Text here lorem ipsum ibisque totum.
        10. -
        -
      8. -
      9. Text here lorem ipsum ibisque totum.
      10. -
      11. Text here lorem ipsum ibisque totum.
      12. -
      13. Text here lorem ipsum ibisque totum. -
          -
        1. No class specified. Text here lorem ipsum ibisque totum.
        2. -
        3. Text here lorem ipsum ibisque totum.
        4. -
        5. Text here lorem ipsum ibisque totum.
        6. -
        7. Text here lorem ipsum ibisque totum.
        8. -
        9. Text here lorem ipsum ibisque totum.
        10. -
        -
      14. -
      -
    6. -
    -
  16. -
  17. Text here lorem ipsum ibisque totum.
  18. -
  19. Text here lorem ipsum ibisque totum.
  20. -
  21. Text here lorem ipsum ibisque totum.
  22. -
  23. Text here lorem ipsum ibisque totum.
  24. -
  25. Text here lorem ipsum ibisque totum.
  26. -
  27. Text here lorem ipsum ibisque totum.
  28. -
  29. Text here lorem ipsum ibisque totum.
  30. -
  31. Text here lorem ipsum ibisque totum.
  32. -
-
-'; -//============================================================== -//============================================================== -//============================================================== -include("../mpdf.php"); - -$mpdf=new mPDF(); - -$mpdf->SetDisplayMode('fullpage'); - -$mpdf->WriteHTML($html); - -$mpdf->list_align_style = 'L'; // Determines alignment of numbers in numbered lists -$mpdf->list_number_suffix = ')'; - -$mpdf->WriteHTML($html); - -$mpdf->Output(); - -exit; -//============================================================== -//============================================================== -//============================================================== - - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/example09_forms.php b/public_html/2022/newcms/pdf/examples/example09_forms.php deleted file mode 100644 index 0117a5b..0000000 --- a/public_html/2022/newcms/pdf/examples/example09_forms.php +++ /dev/null @@ -1,204 +0,0 @@ - - -Textarea - -

- -Select - followed by text -

- - - -Input Radio - No      Yes -

- - -Input Radio - No      Keep      Choice -

- - -Input Text - -

- -Input Password - -

- - - Checkboxes
- Disabled
- Selected -

- -

- - - -
- -
-
- -Textarea - -

- - - -Select - -

- -Input Radio - No      Yes -

- - -Input Radio - No      Keep      Choice -

- - -Input Text - -
- -Input Password - -

- - Checkboxes
- Disabled
- Selected -

- -

- -
- -
-
- - -
- - - - - - - - - - - - - - - - - -
Textarea
Select
Input Radio No      Yes
Input Radio No      Keep      Choice
Input Text
- -
- - - - - - - - - - - - - - -
Checkbox
Checkboxes
Gardening
Holidays
Motoring
Books Theatre
Selected option Musicals
Eating out Events
-
-
-
- - -
- -Input Radio - No      Yes - -

- - - -Input Radio - No      Keep      Choice - -

- - -Input Text
- -Input text:
- -Password: -

- -Checkboxes:
- Checkboxes
- Disabled
- Selected -

- - - - - -
- -'; - -//============================================================== -//============================================================== -//============================================================== -if (isset($_REQUEST['html'])) { echo ''.$html.''; exit; } -if (isset($_REQUEST['source'])) { - $file = __FILE__; - header("Content-Type: text/plain"); - header("Content-Length: ". filesize($file)); - header("Content-Disposition: attachment; filename='".$file."'"); - readfile($file); - exit; -} -//============================================================== -//============================================================== -//============================================================== - -$mpdf=new mPDF('c'); - -// LOAD a stylesheet -$stylesheet = file_get_contents('mpdfstyletables.css'); -$mpdf->WriteHTML($stylesheet,1); // The parameter 1 tells that this is css/style only and no body/html/text - -$mpdf->SetColumns(2,'J'); - -$mpdf->WriteHTML($html); - -$mpdf->Output(); -exit; - - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/example10_floating_and_fixed_position_elements.php b/public_html/2022/newcms/pdf/examples/example10_floating_and_fixed_position_elements.php deleted file mode 100644 index 8a485e3..0000000 --- a/public_html/2022/newcms/pdf/examples/example10_floating_and_fixed_position_elements.php +++ /dev/null @@ -1,103 +0,0 @@ - -.gradient { - border:0.1mm solid #220044; - background-color: #f0f2ff; - background-gradient: linear #c7cdde #f0f2ff 0 1 0 0.5; -} -h4 { - font-family: sans; - font-weight: bold; - margin-top: 1em; - margin-bottom: 0.5em; -} -div { - padding:1em; - margin-bottom: 1em; - text-align:justify; -} -.myfixed1 { position: absolute; - overflow: visible; - left: 0; - bottom: 0; - border: 1px solid #880000; - background-color: #FFEEDD; - background-gradient: linear #dec7cd #fff0f2 0 1 0 0.5; - padding: 1.5em; - font-family:sans; - margin: 0; -} -.myfixed2 { position: fixed; - overflow: auto; - right: 0; - bottom: 0mm; - width: 65mm; - border: 1px solid #880000; - background-color: #FFEEDD; - background-gradient: linear #dec7cd #fff0f2 0 1 0 0.5; - padding: 0.5em; - font-family:sans; - margin: 0; - rotate: 90; -} - - - -

mPDF

-

Floating & Fixed Position elements

- -

CSS "Float"

-
-Block elements can be positioned alongside each other using the CSS property float: left or right. The clear property can also be used, set as left|right|both. Float is only supported on block elements (i.e. not SPAN etc.) and is not fully compliant with the CSS specification. -Float only works properly if a width is set for the float, otherwise the width is set to the maximum available (full width, or less if floats already set). -
-Margin-right can still be set for a float:right and vice-versa. -
-A block element next to a float has the padding adjusted so that content fits in the remaining width. Text next to a float should wrap correctly, but backgrounds and borders will overlap and/or lie under the floats in a mess. -
-NB The width that is set defines the width of the content-box. So if you have two floats with width=50% and either of them has padding, margin or border, they will not fit together on the page. -
- -
-This is text in a <div> element that is set to float:right and width:28%. It also has an image with float:right inside. With this exception, you cannot nest elements with the float property set inside one another. -
-
-This is text in a <div> element that is set to float:left and width:54%. -
- -
-This is text that follows a <div> element that is set to clear:both. - -

CSS "Position"

-At the bottom of the page are two DIV elements with position:fixed and position:absolute set - -
1 Praesent pharetra nulla in turpis. Sed ipsum nulla, sodales nec, vulputate in, scelerisque vitae, magna. Praesent pharetra nulla in turpis. Sed ipsum nulla, sodales nec, vulputate in, scelerisque vitae, magna. Sed egestas justo nec ipsum. Nulla facilisi. Praesent sit amet pede quis metus aliquet vulputate. Donec luctus. Cras euismod tellus vel leo. Sed egestas justo nec ipsum. Nulla facilisi. Praesent sit amet pede quis metus aliquet vulputate. Donec luctus. Cras euismod tellus vel leo.
- -
2 Praesent pharetra nulla in turpis. Sed ipsum nulla, sodales nec, vulputate in, scelerisque vitae, magna. Sed egestas justo nec ipsum. Nulla facilisi. Praesent sit amet pede quis metus aliquet vulputate. Donec luctus. Cras euismod tellus vel leo.
- - -'; - -//============================================================== -//============================================================== -//============================================================== -include("../mpdf.php"); - -$mpdf=new mPDF(); - -$mpdf->SetDisplayMode('fullpage'); - -$mpdf->WriteHTML($html); - -$mpdf->Output(); - -exit; - -//============================================================== -//============================================================== -//============================================================== - - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/example11_overflow_auto.php b/public_html/2022/newcms/pdf/examples/example11_overflow_auto.php deleted file mode 100644 index 6fd990f..0000000 --- a/public_html/2022/newcms/pdf/examples/example11_overflow_auto.php +++ /dev/null @@ -1,81 +0,0 @@ - -

mPDF

-

Fixed-position block element with Autofit

-
Using the CSS properties position and overflow:auto it is possible to fit text to a single page:
- -

Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci.

- -
DIV: Proin aliquet lorem id felis. Curabitur vel libero at mauris nonummy tincidunt. Donec imperdiet. Vestibulum sem sem, lacinia vel, molestie et, laoreet eget, urna. Curabitur viverra faucibus pede. Morbi lobortis. Donec dapibus. Donec tempus. Ut arcu enim, rhoncus ac, venenatis eu, porttitor mollis, dui. Sed vitae risus. In elementum sem placerat dui. Nam tristique eros in nisl. Nulla cursus sapien non quam porta porttitor. Quisque dictum ipsum ornare tortor. Fusce ornare tempus enim.
-
DIV: Proin aliquet lorem id felis. Curabitur vel libero at mauris nonummy tincidunt. Donec imperdiet. Vestibulum sem sem, lacinia vel, molestie et, laoreet eget, urna. Curabitur viverra faucibus pede. Morbi lobortis. Donec dapibus. Donec tempus. Ut arcu enim, rhoncus ac, venenatis eu, porttitor mollis, dui. Sed vitae risus. In elementum sem placerat dui. Nam tristique eros in nisl. Nulla cursus sapien non quam porta porttitor. Quisque dictum ipsum ornare tortor. Fusce ornare tempus enim.
- -
Blockquote: Maecenas arcu justo, malesuada eu, dapibus ac, adipiscing vitae, turpis. Fusce mollis. Aliquam egestas. In purus dolor, facilisis at, fermentum nec, molestie et, metus. Maecenas arcu justo, malesuada eu, dapibus ac, adipiscing vitae, turpis. Fusce mollis. Aliquam egestas. In purus dolor, facilisis at, fermentum nec, molestie et, metus.
- -
Address: Vestibulum feugiat, orci at imperdiet tincidunt, mauris erat facilisis urna, sagittis ultricies dui nisl et lectus. Sed lacinia, lectus vitae dictum sodales, elit ipsum ultrices orci, non euismod arcu diam non metus.
- - - - - -
Styles - tt(teletype) italic bold big small emphasis strong
new lines
-code sample keyboard variable citation abbr. ACRONYM sup sub strike strike-s underline delete insert To be or not to be font changing face, size and color -
- -

Paragraph using the in-line style to determine the font-size (15pt) and colour

- -

Testing BIG, SMALL, UNDERLINE, STRIKETHROUGH, FONT color, ACRONYM, SUPERSCRIPT and SUBSCRIPT

-

This is strikethrough in block and small strikethrough in small span and big strikethrough in big span and then underline and strikethrough and sup but out of span again but blue font and ACRONYM text

- -

This is a green reference32-47 and underlined reference32-47 then reference32-47 and underlined reference32-47 then Strikethrough reference32-47 and strikethrough reference32-47

- -

Repeated in BIG: This is reference32-47 and underlined reference32-47 then reference32-47 and underlined reference32-47 but out of span again but blue font and ACRONYM text

- -

Repeated in small: This is reference32-47 and underlined reference32-47 then reference32-47 and underlined reference32-47 but out of span again but blue font and ACRONYM text

- -

The above repeated, but starting with a paragraph with font-size specified (7pt)

- -

This is strikethrough in block and small strikethrough in small span and then underline but out of span again but blue font and ACRONYM text

- -

This is strikethrough in block and big strikethrough in big span and then underline but out of span again but blue font and ACRONYM text

- -

This is reference32-47 and underlined reference32-47 then reference32-47 and underlined reference32-47 then Strikethrough reference32-47 and strikethrough reference32-47

- -

This tests underline and strikethrough when they are used together as they both use text-decoration

- -

Repeated in small: This is reference32-47 and underlined reference32-47 then reference32-47 and underlined reference32-47 but out of span again but blue font and ACRONYM text

- -

Repeated in BIG but with font-size set to 7pt by in-line css: This is reference32-47 and underlined reference32-47 then reference32-47 and underlined reference32-47 but out of span again but blue font and ACRONYM text

- -

Sed bibendum. Nunc eleifend ornare velit. Sed consectetuer urna in erat. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Mauris sodales semper metus. Maecenas justo libero, pretium at, malesuada eu, mollis et, arcu. Ut suscipit pede in nulla. Praesent elementum, dolor ac fringilla posuere, elit libero rutrum massa, vel tincidunt dui tellus a ante. Sed aliquet euismod dolor. Vestibulum sed dui. Duis lobortis hendrerit quam. Donec tempus orci ut libero. Pellentesque suscipit malesuada nisi.

- -

Praesent pharetra nulla in turpis. Sed ipsum nulla, sodales nec, vulputate in, scelerisque vitae, magna. Sed egestas justo nec ipsum. Nulla facilisi. Praesent sit amet pede quis metus aliquet vulputate. Donec luctus. Cras euismod tellus vel leo. Cras tellus. Fusce aliquet. Curabitur tincidunt viverra ligula. Fusce eget erat. Donec pede. Vestibulum id felis. Phasellus tincidunt ligula non pede. Morbi turpis. In vitae dui non erat placerat malesuada. Mauris adipiscing congue ante. Proin at erat. Aliquam mattis.

-
- -'; - - - - -//============================================================== -//============================================================== -//============================================================== -include("../mpdf.php"); - -$mpdf=new mPDF('c'); - -$mpdf->SetDisplayMode('fullpage'); - -$mpdf->WriteHTML($html); - -$mpdf->Output(); - -exit; - -//============================================================== -//============================================================== -//============================================================== - - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/example12_paging_html.php b/public_html/2022/newcms/pdf/examples/example12_paging_html.php deleted file mode 100644 index 44c5374..0000000 --- a/public_html/2022/newcms/pdf/examples/example12_paging_html.php +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - - - - - - - - -
Left header p {PAGENO}Right header
-
- - - - - - -
Outer headerInner header p {PAGENO}
-
- - - - - - - - - -

Introduction

-
Introduction
-

Integer feugiat venenatis metus. Integer lacinia ultrices ipsum. Proin et arcu. Quisque varius libero. Nullam id arcu. Aenean justo quam, accumsan nec, luctus id, pellentesque molestie, mi. Aliquam sollicitudin feugiat eros. Nunc nisi turpis, consequat id, aliquet et, semper a, augue. Integer nisl ipsum, blandit et, lobortis a, egestas nec, odio. Nulla dolor ligula, nonummy ac, vulputate a, sollicitudin id, orci. Aenean turpis lorem, consequat quis, varius in, posuere vel, eros. Nulla facilisi.

- - - -

Section 2

-
Section 2
-

Integer feugiat venenatis metus. Integer lacinia ultrices ipsum. Proin et arcu. Quisque varius libero. Nullam id arcu. Aenean justo quam, accumsan nec, luctus id, pellentesque molestie, mi. Aliquam sollicitudin feugiat eros. Nunc nisi turpis, consequat id, aliquet et, semper a, augue. Integer nisl ipsum, blandit et, lobortis a, egestas nec, odio. Nulla dolor ligula, nonummy ac, vulputate a, sollicitudin id, orci. Donec laoreet nisl id magna. Curabitur mollis, quam eget fermentum malesuada, risus tortor ullamcorper dolor, nec placerat nisi urna non pede. Aliquam pretium, leo in interdum interdum, ipsum neque accumsan lectus, ac fringilla dui ipsum sed justo. In tincidunt risus convallis odio egestas luctus. Integer volutpat. Donec ultricies, leo in congue iaculis, dolor neque imperdiet nibh, vitae feugiat mi enim nec sapien. Aenean turpis lorem, consequat quis, varius in, posuere vel, eros. Nulla facilisi.

- - - -

Section 3

-
Section 3
-

Integer feugiat venenatis metus. Integer lacinia ultrices ipsum. Proin et arcu. Quisque varius libero. Nullam id arcu. Aenean justo quam, accumsan nec, luctus id, pellentesque molestie, mi. Aliquam sollicitudin feugiat eros. Nunc nisi turpis, consequat id, aliquet et, semper a, augue. Integer nisl ipsum, blandit et, lobortis a, egestas nec, odio. Nulla dolor ligula, nonummy ac, vulputate a, sollicitudin id, orci. Donec laoreet nisl id magna. Curabitur mollis, quam eget fermentum malesuada, risus tortor ullamcorper dolor, nec placerat nisi urna non pede. Aliquam pretium, leo in interdum interdum, ipsum neque accumsan lectus, ac fringilla dui ipsum sed justo. In tincidunt risus convallis odio egestas luctus. Integer volutpat. Donec ultricies, leo in congue iaculis, dolor neque imperdiet nibh, vitae feugiat mi enim nec sapien. Aenean turpis lorem, consequat quis, varius in, posuere vel, eros. Nulla facilisi.

- - - -

Section 4

-
Section 4
-

Integer feugiat venenatis metus. Integer lacinia ultrices ipsum. Proin et arcu. Quisque varius libero. Nullam id arcu. Aenean justo quam, accumsan nec, luctus id, pellentesque molestie, mi. Aliquam sollicitudin feugiat eros. Nunc nisi turpis, consequat id, aliquet et, semper a, augue. Integer nisl ipsum, blandit et, lobortis a, egestas nec, odio. Nulla dolor ligula, nonummy ac, vulputate a, sollicitudin id, orci. Donec laoreet nisl id magna. Curabitur mollis, quam eget fermentum malesuada, risus tortor ullamcorper dolor, nec placerat nisi urna non pede. Aliquam pretium, leo in interdum interdum, ipsum neque accumsan lectus, ac fringilla dui ipsum sed justo. In tincidunt risus convallis odio egestas luctus. Integer volutpat. Donec ultricies, leo in congue iaculis, dolor neque imperdiet nibh, vitae feugiat mi enim nec sapien. Aenean turpis lorem, consequat quis, varius in, posuere vel, eros. Nulla facilisi.

- - - - - -

Section 5

-
Section 5
-

Integer feugiat venenatis metus. Integer lacinia ultrices ipsum. Proin et arcu. Quisque varius libero. Nullam id arcu. Aenean justo quam, accumsan nec, luctus id, pellentesque molestie, mi. Aliquam sollicitudin feugiat eros. Nunc nisi turpis, consequat id, aliquet et, semper a, augue. Integer nisl ipsum, blandit et, lobortis a, egestas nec, odio. Nulla dolor ligula, nonummy ac, vulputate a, sollicitudin id, orci. Donec laoreet nisl id magna. Curabitur mollis, quam eget fermentum malesuada, risus tortor ullamcorper dolor, nec placerat nisi urna non pede. Aliquam pretium, leo in interdum interdum, ipsum neque accumsan lectus, ac fringilla dui ipsum sed justo. In tincidunt risus convallis odio egestas luctus. Integer volutpat. Donec ultricies, leo in congue iaculis, dolor neque imperdiet nibh, vitae feugiat mi enim nec sapien. Aenean turpis lorem, consequat quis, varius in, posuere vel, eros. Nulla facilisi.

- -'; - -//============================================================== -//============================================================== -//============================================================== -include("../mpdf.php"); -$mpdf=new mPDF('c'); - -$mpdf->mirrorMargins = true; - -$mpdf->SetDisplayMode('fullpage','two'); - -$mpdf->WriteHTML($html); - -$mpdf->Output(); -exit; -//============================================================== -//============================================================== -//============================================================== -//============================================================== -//============================================================== - - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/example13_paging_css.php b/public_html/2022/newcms/pdf/examples/example13_paging_css.php deleted file mode 100644 index 256a8a0..0000000 --- a/public_html/2022/newcms/pdf/examples/example13_paging_css.php +++ /dev/null @@ -1,94 +0,0 @@ - -
{PAGENO}
- - -
{PAGENO}
-
- -
{PAGENO}
-
- -
{PAGENO}
-
- - - - - - - -

mPDF 1

-

Paged Media using CSS

-

Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci.

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Proin vel sem at odio varius pretium. Maecenas sed orci. Maecenas varius. Ut magna ipsum, tempus in, condimentum at, rutrum et, nisl. Vestibulum interdum luctus sapien. Quisque viverra. Etiam id libero at magna pellentesque aliquet. Nulla sit amet ipsum id enim tempus dictum. Maecenas consectetuer eros quis massa. Mauris semper velit vehicula purus. Duis lacus. Aenean pretium consectetuer mauris. Ut purus sem, consequat ut, fermentum sit amet, ornare sit amet, ipsum. Donec non nunc. Maecenas fringilla. Curabitur libero. In dui massa, malesuada sit amet, hendrerit vitae, viverra nec, tortor. Donec varius. Ut ut dolor et tellus adipiscing adipiscing.

Proin aliquet lorem id felis. Curabitur vel libero at mauris nonummy tincidunt. Donec imperdiet. Vestibulum sem sem, lacinia vel, molestie et, laoreet eget, urna. Curabitur viverra faucibus pede. Morbi lobortis. Donec dapibus. Donec tempus. Ut arcu enim, rhoncus ac, venenatis eu, porttitor mollis, dui. Sed vitae risus. In elementum sem placerat dui. Nam tristique eros in nisl. Nulla cursus sapien non quam porta porttitor. Quisque dictum ipsum ornare tortor. Fusce ornare tempus enim.

Maecenas arcu justo, malesuada eu, dapibus ac, adipiscing vitae, turpis. Fusce mollis. Aliquam egestas. In purus dolor, facilisis at, fermentum nec, molestie et, metus. Vestibulum feugiat, orci at imperdiet tincidunt, mauris erat facilisis urna, sagittis ultricies dui nisl et lectus. Sed lacinia, lectus vitae dictum sodales, elit ipsum ultrices orci, non euismod arcu diam non metus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. In suscipit turpis vitae odio. Integer convallis dui at metus. Fusce magna. Sed sed lectus vitae enim tempor cursus. Cras eu erat vel libero sodales congue. Sed erat est, interdum nec, elementum eleifend, pretium at, nibh. Praesent massa diam, adipiscing id, mollis sed, posuere et, urna. Quisque ut leo. Aliquam interdum hendrerit tortor. Vestibulum elit. Vestibulum et arcu at diam mattis commodo. Nam ipsum sem, ultricies at, rutrum sit amet, posuere nec, velit. Sed molestie mollis dui.

-

Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci.

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Proin vel sem at odio varius pretium. Maecenas sed orci. Maecenas varius. Ut magna ipsum, tempus in, condimentum at, rutrum et, nisl. Vestibulum interdum luctus sapien. Quisque viverra. Etiam id libero at magna pellentesque aliquet. Nulla sit amet ipsum id enim tempus dictum. Maecenas consectetuer eros quis massa. Mauris semper velit vehicula purus. Duis lacus. Aenean pretium consectetuer mauris. Ut purus sem, consequat ut, fermentum sit amet, ornare sit amet, ipsum. Donec non nunc. Maecenas fringilla. Curabitur libero. In dui massa, malesuada sit amet, hendrerit vitae, viverra nec, tortor. Donec varius. Ut ut dolor et tellus adipiscing adipiscing.

Proin aliquet lorem id felis. Curabitur vel libero at mauris nonummy tincidunt. Donec imperdiet. Vestibulum sem sem, lacinia vel, molestie et, laoreet eget, urna. Curabitur viverra faucibus pede. Morbi lobortis. Donec dapibus. Donec tempus. Ut arcu enim, rhoncus ac, venenatis eu, porttitor mollis, dui. Sed vitae risus. In elementum sem placerat dui. Nam tristique eros in nisl. Nulla cursus sapien non quam porta porttitor. Quisque dictum ipsum ornare tortor. Fusce ornare tempus enim.

Maecenas arcu justo, malesuada eu, dapibus ac, adipiscing vitae, turpis. Fusce mollis. Aliquam egestas. In purus dolor, facilisis at, fermentum nec, molestie et, metus. Vestibulum feugiat, orci at imperdiet tincidunt, mauris erat facilisis urna, sagittis ultricies dui nisl et lectus. Sed lacinia, lectus vitae dictum sodales, elit ipsum ultrices orci, non euismod arcu diam non metus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. In suscipit turpis vitae odio. Integer convallis dui at metus. Fusce magna. Sed sed lectus vitae enim tempor cursus. Cras eu erat vel libero sodales congue. Sed erat est, interdum nec, elementum eleifend, pretium at, nibh. Praesent massa diam, adipiscing id, mollis sed, posuere et, urna. Quisque ut leo. Aliquam interdum hendrerit tortor. Vestibulum elit. Vestibulum et arcu at diam mattis commodo. Nam ipsum sem, ultricies at, rutrum sit amet, posuere nec, velit. Sed molestie mollis dui.

- - -

mPDF 2

-

Paged Media using CSS

-

Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci.

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Proin vel sem at odio varius pretium. Maecenas sed orci. Maecenas varius. Ut magna ipsum, tempus in, condimentum at, rutrum et, nisl. Vestibulum interdum luctus sapien. Quisque viverra. Etiam id libero at magna pellentesque aliquet. Nulla sit amet ipsum id enim tempus dictum. Maecenas consectetuer eros quis massa. Mauris semper velit vehicula purus. Duis lacus. Aenean pretium consectetuer mauris. Ut purus sem, consequat ut, fermentum sit amet, ornare sit amet, ipsum. Donec non nunc. Maecenas fringilla. Curabitur libero. In dui massa, malesuada sit amet, hendrerit vitae, viverra nec, tortor. Donec varius. Ut ut dolor et tellus adipiscing adipiscing.

Proin aliquet lorem id felis. Curabitur vel libero at mauris nonummy tincidunt. Donec imperdiet. Vestibulum sem sem, lacinia vel, molestie et, laoreet eget, urna. Curabitur viverra faucibus pede. Morbi lobortis. Donec dapibus. Donec tempus. Ut arcu enim, rhoncus ac, venenatis eu, porttitor mollis, dui. Sed vitae risus. In elementum sem placerat dui. Nam tristique eros in nisl. Nulla cursus sapien non quam porta porttitor. Quisque dictum ipsum ornare tortor. Fusce ornare tempus enim.

Maecenas arcu justo, malesuada eu, dapibus ac, adipiscing vitae, turpis. Fusce mollis. Aliquam egestas. In purus dolor, facilisis at, fermentum nec, molestie et, metus. Vestibulum feugiat, orci at imperdiet tincidunt, mauris erat facilisis urna, sagittis ultricies dui nisl et lectus. Sed lacinia, lectus vitae dictum sodales, elit ipsum ultrices orci, non euismod arcu diam non metus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. In suscipit turpis vitae odio. Integer convallis dui at metus. Fusce magna. Sed sed lectus vitae enim tempor cursus. Cras eu erat vel libero sodales congue. Sed erat est, interdum nec, elementum eleifend, pretium at, nibh. Praesent massa diam, adipiscing id, mollis sed, posuere et, urna. Quisque ut leo. Aliquam interdum hendrerit tortor. Vestibulum elit. Vestibulum et arcu at diam mattis commodo. Nam ipsum sem, ultricies at, rutrum sit amet, posuere nec, velit. Sed molestie mollis dui.

-

Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci.

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Proin vel sem at odio varius pretium. Maecenas sed orci. Maecenas varius. Ut magna ipsum, tempus in, condimentum at, rutrum et, nisl. Vestibulum interdum luctus sapien. Quisque viverra. Etiam id libero at magna pellentesque aliquet. Nulla sit amet ipsum id enim tempus dictum. Maecenas consectetuer eros quis massa. Mauris semper velit vehicula purus. Duis lacus. Aenean pretium consectetuer mauris. Ut purus sem, consequat ut, fermentum sit amet, ornare sit amet, ipsum. Donec non nunc. Maecenas fringilla. Curabitur libero. In dui massa, malesuada sit amet, hendrerit vitae, viverra nec, tortor. Donec varius. Ut ut dolor et tellus adipiscing adipiscing.

Proin aliquet lorem id felis. Curabitur vel libero at mauris nonummy tincidunt. Donec imperdiet. Vestibulum sem sem, lacinia vel, molestie et, laoreet eget, urna. Curabitur viverra faucibus pede. Morbi lobortis. Donec dapibus. Donec tempus. Ut arcu enim, rhoncus ac, venenatis eu, porttitor mollis, dui. Sed vitae risus. In elementum sem placerat dui. Nam tristique eros in nisl. Nulla cursus sapien non quam porta porttitor. Quisque dictum ipsum ornare tortor. Fusce ornare tempus enim.

Maecenas arcu justo, malesuada eu, dapibus ac, adipiscing vitae, turpis. Fusce mollis. Aliquam egestas. In purus dolor, facilisis at, fermentum nec, molestie et, metus. Vestibulum feugiat, orci at imperdiet tincidunt, mauris erat facilisis urna, sagittis ultricies dui nisl et lectus. Sed lacinia, lectus vitae dictum sodales, elit ipsum ultrices orci, non euismod arcu diam non metus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. In suscipit turpis vitae odio. Integer convallis dui at metus. Fusce magna. Sed sed lectus vitae enim tempor cursus. Cras eu erat vel libero sodales congue. Sed erat est, interdum nec, elementum eleifend, pretium at, nibh. Praesent massa diam, adipiscing id, mollis sed, posuere et, urna. Quisque ut leo. Aliquam interdum hendrerit tortor. Vestibulum elit. Vestibulum et arcu at diam mattis commodo. Nam ipsum sem, ultricies at, rutrum sit amet, posuere nec, velit. Sed molestie mollis dui.

-

Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci.

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Proin vel sem at odio varius pretium. Maecenas sed orci. Maecenas varius. Ut magna ipsum, tempus in, condimentum at, rutrum et, nisl. Vestibulum interdum luctus sapien. Quisque viverra. Etiam id libero at magna pellentesque aliquet. Nulla sit amet ipsum id enim tempus dictum. Maecenas consectetuer eros quis massa. Mauris semper velit vehicula purus. Duis lacus. Aenean pretium consectetuer mauris. Ut purus sem, consequat ut, fermentum sit amet, ornare sit amet, ipsum. Donec non nunc. Maecenas fringilla. Curabitur libero. In dui massa, malesuada sit amet, hendrerit vitae, viverra nec, tortor. Donec varius. Ut ut dolor et tellus adipiscing adipiscing.

Proin aliquet lorem id felis. Curabitur vel libero at mauris nonummy tincidunt. Donec imperdiet. Vestibulum sem sem, lacinia vel, molestie et, laoreet eget, urna. Curabitur viverra faucibus pede. Morbi lobortis. Donec dapibus. Donec tempus. Ut arcu enim, rhoncus ac, venenatis eu, porttitor mollis, dui. Sed vitae risus. In elementum sem placerat dui. Nam tristique eros in nisl. Nulla cursus sapien non quam porta porttitor. Quisque dictum ipsum ornare tortor. Fusce ornare tempus enim.

Maecenas arcu justo, malesuada eu, dapibus ac, adipiscing vitae, turpis. Fusce mollis. Aliquam egestas. In purus dolor, facilisis at, fermentum nec, molestie et, metus. Vestibulum feugiat, orci at imperdiet tincidunt, mauris erat facilisis urna, sagittis ultricies dui nisl et lectus. Sed lacinia, lectus vitae dictum sodales, elit ipsum ultrices orci, non euismod arcu diam non metus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. In suscipit turpis vitae odio. Integer convallis dui at metus. Fusce magna. Sed sed lectus vitae enim tempor cursus. Cras eu erat vel libero sodales congue. Sed erat est, interdum nec, elementum eleifend, pretium at, nibh. Praesent massa diam, adipiscing id, mollis sed, posuere et, urna. Quisque ut leo. Aliquam interdum hendrerit tortor. Vestibulum elit. Vestibulum et arcu at diam mattis commodo. Nam ipsum sem, ultricies at, rutrum sit amet, posuere nec, velit. Sed molestie mollis dui.

- - -

mPDF 3

-

Paged Media using CSS

-

Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci.

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Proin vel sem at odio varius pretium. Maecenas sed orci. Maecenas varius. Ut magna ipsum, tempus in, condimentum at, rutrum et, nisl. Vestibulum interdum luctus sapien. Quisque viverra. Etiam id libero at magna pellentesque aliquet. Nulla sit amet ipsum id enim tempus dictum. Maecenas consectetuer eros quis massa. Mauris semper velit vehicula purus. Duis lacus. Aenean pretium consectetuer mauris. Ut purus sem, consequat ut, fermentum sit amet, ornare sit amet, ipsum. Donec non nunc. Maecenas fringilla. Curabitur libero. In dui massa, malesuada sit amet, hendrerit vitae, viverra nec, tortor. Donec varius. Ut ut dolor et tellus adipiscing adipiscing.

Proin aliquet lorem id felis. Curabitur vel libero at mauris nonummy tincidunt. Donec imperdiet. Vestibulum sem sem, lacinia vel, molestie et, laoreet eget, urna. Curabitur viverra faucibus pede. Morbi lobortis. Donec dapibus. Donec tempus. Ut arcu enim, rhoncus ac, venenatis eu, porttitor mollis, dui. Sed vitae risus. In elementum sem placerat dui. Nam tristique eros in nisl. Nulla cursus sapien non quam porta porttitor. Quisque dictum ipsum ornare tortor. Fusce ornare tempus enim.

Maecenas arcu justo, malesuada eu, dapibus ac, adipiscing vitae, turpis. Fusce mollis. Aliquam egestas. In purus dolor, facilisis at, fermentum nec, molestie et, metus. Vestibulum feugiat, orci at imperdiet tincidunt, mauris erat facilisis urna, sagittis ultricies dui nisl et lectus. Sed lacinia, lectus vitae dictum sodales, elit ipsum ultrices orci, non euismod arcu diam non metus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. In suscipit turpis vitae odio. Integer convallis dui at metus. Fusce magna. Sed sed lectus vitae enim tempor cursus. Cras eu erat vel libero sodales congue. Sed erat est, interdum nec, elementum eleifend, pretium at, nibh. Praesent massa diam, adipiscing id, mollis sed, posuere et, urna. Quisque ut leo. Aliquam interdum hendrerit tortor. Vestibulum elit. Vestibulum et arcu at diam mattis commodo. Nam ipsum sem, ultricies at, rutrum sit amet, posuere nec, velit. Sed molestie mollis dui.

-

Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci.

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Proin vel sem at odio varius pretium. Maecenas sed orci. Maecenas varius. Ut magna ipsum, tempus in, condimentum at, rutrum et, nisl. Vestibulum interdum luctus sapien. Quisque viverra. Etiam id libero at magna pellentesque aliquet. Nulla sit amet ipsum id enim tempus dictum. Maecenas consectetuer eros quis massa. Mauris semper velit vehicula purus. Duis lacus. Aenean pretium consectetuer mauris. Ut purus sem, consequat ut, fermentum sit amet, ornare sit amet, ipsum. Donec non nunc. Maecenas fringilla. Curabitur libero. In dui massa, malesuada sit amet, hendrerit vitae, viverra nec, tortor. Donec varius. Ut ut dolor et tellus adipiscing adipiscing.

Proin aliquet lorem id felis. Curabitur vel libero at mauris nonummy tincidunt. Donec imperdiet. Vestibulum sem sem, lacinia vel, molestie et, laoreet eget, urna. Curabitur viverra faucibus pede. Morbi lobortis. Donec dapibus. Donec tempus. Ut arcu enim, rhoncus ac, venenatis eu, porttitor mollis, dui. Sed vitae risus. In elementum sem placerat dui. Nam tristique eros in nisl. Nulla cursus sapien non quam porta porttitor. Quisque dictum ipsum ornare tortor. Fusce ornare tempus enim.

Maecenas arcu justo, malesuada eu, dapibus ac, adipiscing vitae, turpis. Fusce mollis. Aliquam egestas. In purus dolor, facilisis at, fermentum nec, molestie et, metus. Vestibulum feugiat, orci at imperdiet tincidunt, mauris erat facilisis urna, sagittis ultricies dui nisl et lectus. Sed lacinia, lectus vitae dictum sodales, elit ipsum ultrices orci, non euismod arcu diam non metus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. In suscipit turpis vitae odio. Integer convallis dui at metus. Fusce magna. Sed sed lectus vitae enim tempor cursus. Cras eu erat vel libero sodales congue. Sed erat est, interdum nec, elementum eleifend, pretium at, nibh. Praesent massa diam, adipiscing id, mollis sed, posuere et, urna. Quisque ut leo. Aliquam interdum hendrerit tortor. Vestibulum elit. Vestibulum et arcu at diam mattis commodo. Nam ipsum sem, ultricies at, rutrum sit amet, posuere nec, velit. Sed molestie mollis dui.

-

Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci.

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Proin vel sem at odio varius pretium. Maecenas sed orci. Maecenas varius. Ut magna ipsum, tempus in, condimentum at, rutrum et, nisl. Vestibulum interdum luctus sapien. Quisque viverra. Etiam id libero at magna pellentesque aliquet. Nulla sit amet ipsum id enim tempus dictum. Maecenas consectetuer eros quis massa. Mauris semper velit vehicula purus. Duis lacus. Aenean pretium consectetuer mauris. Ut purus sem, consequat ut, fermentum sit amet, ornare sit amet, ipsum. Donec non nunc. Maecenas fringilla. Curabitur libero. In dui massa, malesuada sit amet, hendrerit vitae, viverra nec, tortor. Donec varius. Ut ut dolor et tellus adipiscing adipiscing.

Proin aliquet lorem id felis. Curabitur vel libero at mauris nonummy tincidunt. Donec imperdiet. Vestibulum sem sem, lacinia vel, molestie et, laoreet eget, urna. Curabitur viverra faucibus pede. Morbi lobortis. Donec dapibus. Donec tempus. Ut arcu enim, rhoncus ac, venenatis eu, porttitor mollis, dui. Sed vitae risus. In elementum sem placerat dui. Nam tristique eros in nisl. Nulla cursus sapien non quam porta porttitor. Quisque dictum ipsum ornare tortor. Fusce ornare tempus enim.

Maecenas arcu justo, malesuada eu, dapibus ac, adipiscing vitae, turpis. Fusce mollis. Aliquam egestas. In purus dolor, facilisis at, fermentum nec, molestie et, metus. Vestibulum feugiat, orci at imperdiet tincidunt, mauris erat facilisis urna, sagittis ultricies dui nisl et lectus. Sed lacinia, lectus vitae dictum sodales, elit ipsum ultrices orci, non euismod arcu diam non metus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. In suscipit turpis vitae odio. Integer convallis dui at metus. Fusce magna. Sed sed lectus vitae enim tempor cursus. Cras eu erat vel libero sodales congue. Sed erat est, interdum nec, elementum eleifend, pretium at, nibh. Praesent massa diam, adipiscing id, mollis sed, posuere et, urna. Quisque ut leo. Aliquam interdum hendrerit tortor. Vestibulum elit. Vestibulum et arcu at diam mattis commodo. Nam ipsum sem, ultricies at, rutrum sit amet, posuere nec, velit. Sed molestie mollis dui.

- - -

mPDF 4

-

Paged Media using CSS

-

Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci.

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Proin vel sem at odio varius pretium. Maecenas sed orci. Maecenas varius. Ut magna ipsum, tempus in, condimentum at, rutrum et, nisl. Vestibulum interdum luctus sapien. Quisque viverra. Etiam id libero at magna pellentesque aliquet. Nulla sit amet ipsum id enim tempus dictum. Maecenas consectetuer eros quis massa. Mauris semper velit vehicula purus. Duis lacus. Aenean pretium consectetuer mauris. Ut purus sem, consequat ut, fermentum sit amet, ornare sit amet, ipsum. Donec non nunc. Maecenas fringilla. Curabitur libero. In dui massa, malesuada sit amet, hendrerit vitae, viverra nec, tortor. Donec varius. Ut ut dolor et tellus adipiscing adipiscing.

Proin aliquet lorem id felis. Curabitur vel libero at mauris nonummy tincidunt. Donec imperdiet. Vestibulum sem sem, lacinia vel, molestie et, laoreet eget, urna. Curabitur viverra faucibus pede. Morbi lobortis. Donec dapibus. Donec tempus. Ut arcu enim, rhoncus ac, venenatis eu, porttitor mollis, dui. Sed vitae risus. In elementum sem placerat dui. Nam tristique eros in nisl. Nulla cursus sapien non quam porta porttitor. Quisque dictum ipsum ornare tortor. Fusce ornare tempus enim.

Maecenas arcu justo, malesuada eu, dapibus ac, adipiscing vitae, turpis. Fusce mollis. Aliquam egestas. In purus dolor, facilisis at, fermentum nec, molestie et, metus. Vestibulum feugiat, orci at imperdiet tincidunt, mauris erat facilisis urna, sagittis ultricies dui nisl et lectus. Sed lacinia, lectus vitae dictum sodales, elit ipsum ultrices orci, non euismod arcu diam non metus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. In suscipit turpis vitae odio. Integer convallis dui at metus. Fusce magna. Sed sed lectus vitae enim tempor cursus. Cras eu erat vel libero sodales congue. Sed erat est, interdum nec, elementum eleifend, pretium at, nibh. Praesent massa diam, adipiscing id, mollis sed, posuere et, urna. Quisque ut leo. Aliquam interdum hendrerit tortor. Vestibulum elit. Vestibulum et arcu at diam mattis commodo. Nam ipsum sem, ultricies at, rutrum sit amet, posuere nec, velit. Sed molestie mollis dui.

-

Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci.

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Proin vel sem at odio varius pretium. Maecenas sed orci. Maecenas varius. Ut magna ipsum, tempus in, condimentum at, rutrum et, nisl. Vestibulum interdum luctus sapien. Quisque viverra. Etiam id libero at magna pellentesque aliquet. Nulla sit amet ipsum id enim tempus dictum. Maecenas consectetuer eros quis massa. Mauris semper velit vehicula purus. Duis lacus. Aenean pretium consectetuer mauris. Ut purus sem, consequat ut, fermentum sit amet, ornare sit amet, ipsum. Donec non nunc. Maecenas fringilla. Curabitur libero. In dui massa, malesuada sit amet, hendrerit vitae, viverra nec, tortor. Donec varius. Ut ut dolor et tellus adipiscing adipiscing.

Proin aliquet lorem id felis. Curabitur vel libero at mauris nonummy tincidunt. Donec imperdiet. Vestibulum sem sem, lacinia vel, molestie et, laoreet eget, urna. Curabitur viverra faucibus pede. Morbi lobortis. Donec dapibus. Donec tempus. Ut arcu enim, rhoncus ac, venenatis eu, porttitor mollis, dui. Sed vitae risus. In elementum sem placerat dui. Nam tristique eros in nisl. Nulla cursus sapien non quam porta porttitor. Quisque dictum ipsum ornare tortor. Fusce ornare tempus enim.

Maecenas arcu justo, malesuada eu, dapibus ac, adipiscing vitae, turpis. Fusce mollis. Aliquam egestas. In purus dolor, facilisis at, fermentum nec, molestie et, metus. Vestibulum feugiat, orci at imperdiet tincidunt, mauris erat facilisis urna, sagittis ultricies dui nisl et lectus. Sed lacinia, lectus vitae dictum sodales, elit ipsum ultrices orci, non euismod arcu diam non metus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. In suscipit turpis vitae odio. Integer convallis dui at metus. Fusce magna. Sed sed lectus vitae enim tempor cursus. Cras eu erat vel libero sodales congue. Sed erat est, interdum nec, elementum eleifend, pretium at, nibh. Praesent massa diam, adipiscing id, mollis sed, posuere et, urna. Quisque ut leo. Aliquam interdum hendrerit tortor. Vestibulum elit. Vestibulum et arcu at diam mattis commodo. Nam ipsum sem, ultricies at, rutrum sit amet, posuere nec, velit. Sed molestie mollis dui.

- - -

mPDF 5

-

Paged Media using CSS

-

Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci.

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Proin vel sem at odio varius pretium. Maecenas sed orci. Maecenas varius. Ut magna ipsum, tempus in, condimentum at, rutrum et, nisl. Vestibulum interdum luctus sapien. Quisque viverra. Etiam id libero at magna pellentesque aliquet. Nulla sit amet ipsum id enim tempus dictum. Maecenas consectetuer eros quis massa. Mauris semper velit vehicula purus. Duis lacus. Aenean pretium consectetuer mauris. Ut purus sem, consequat ut, fermentum sit amet, ornare sit amet, ipsum. Donec non nunc. Maecenas fringilla. Curabitur libero. In dui massa, malesuada sit amet, hendrerit vitae, viverra nec, tortor. Donec varius. Ut ut dolor et tellus adipiscing adipiscing.

Proin aliquet lorem id felis. Curabitur vel libero at mauris nonummy tincidunt. Donec imperdiet. Vestibulum sem sem, lacinia vel, molestie et, laoreet eget, urna. Curabitur viverra faucibus pede. Morbi lobortis. Donec dapibus. Donec tempus. Ut arcu enim, rhoncus ac, venenatis eu, porttitor mollis, dui. Sed vitae risus. In elementum sem placerat dui. Nam tristique eros in nisl. Nulla cursus sapien non quam porta porttitor. Quisque dictum ipsum ornare tortor. Fusce ornare tempus enim.

Maecenas arcu justo, malesuada eu, dapibus ac, adipiscing vitae, turpis. Fusce mollis. Aliquam egestas. In purus dolor, facilisis at, fermentum nec, molestie et, metus. Vestibulum feugiat, orci at imperdiet tincidunt, mauris erat facilisis urna, sagittis ultricies dui nisl et lectus. Sed lacinia, lectus vitae dictum sodales, elit ipsum ultrices orci, non euismod arcu diam non metus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. In suscipit turpis vitae odio. Integer convallis dui at metus. Fusce magna. Sed sed lectus vitae enim tempor cursus. Cras eu erat vel libero sodales congue. Sed erat est, interdum nec, elementum eleifend, pretium at, nibh. Praesent massa diam, adipiscing id, mollis sed, posuere et, urna. Quisque ut leo. Aliquam interdum hendrerit tortor. Vestibulum elit. Vestibulum et arcu at diam mattis commodo. Nam ipsum sem, ultricies at, rutrum sit amet, posuere nec, velit. Sed molestie mollis dui.

-

Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci.

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Proin vel sem at odio varius pretium. Maecenas sed orci. Maecenas varius. Ut magna ipsum, tempus in, condimentum at, rutrum et, nisl. Vestibulum interdum luctus sapien. Quisque viverra. Etiam id libero at magna pellentesque aliquet. Nulla sit amet ipsum id enim tempus dictum. Maecenas consectetuer eros quis massa. Mauris semper velit vehicula purus. Duis lacus. Aenean pretium consectetuer mauris. Ut purus sem, consequat ut, fermentum sit amet, ornare sit amet, ipsum. Donec non nunc. Maecenas fringilla. Curabitur libero. In dui massa, malesuada sit amet, hendrerit vitae, viverra nec, tortor. Donec varius. Ut ut dolor et tellus adipiscing adipiscing.

Proin aliquet lorem id felis. Curabitur vel libero at mauris nonummy tincidunt. Donec imperdiet. Vestibulum sem sem, lacinia vel, molestie et, laoreet eget, urna. Curabitur viverra faucibus pede. Morbi lobortis. Donec dapibus. Donec tempus. Ut arcu enim, rhoncus ac, venenatis eu, porttitor mollis, dui. Sed vitae risus. In elementum sem placerat dui. Nam tristique eros in nisl. Nulla cursus sapien non quam porta porttitor. Quisque dictum ipsum ornare tortor. Fusce ornare tempus enim.

Maecenas arcu justo, malesuada eu, dapibus ac, adipiscing vitae, turpis. Fusce mollis. Aliquam egestas. In purus dolor, facilisis at, fermentum nec, molestie et, metus. Vestibulum feugiat, orci at imperdiet tincidunt, mauris erat facilisis urna, sagittis ultricies dui nisl et lectus. Sed lacinia, lectus vitae dictum sodales, elit ipsum ultrices orci, non euismod arcu diam non metus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. In suscipit turpis vitae odio. Integer convallis dui at metus. Fusce magna. Sed sed lectus vitae enim tempor cursus. Cras eu erat vel libero sodales congue. Sed erat est, interdum nec, elementum eleifend, pretium at, nibh. Praesent massa diam, adipiscing id, mollis sed, posuere et, urna. Quisque ut leo. Aliquam interdum hendrerit tortor. Vestibulum elit. Vestibulum et arcu at diam mattis commodo. Nam ipsum sem, ultricies at, rutrum sit amet, posuere nec, velit. Sed molestie mollis dui.

-

Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci.

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Proin vel sem at odio varius pretium. Maecenas sed orci. Maecenas varius. Ut magna ipsum, tempus in, condimentum at, rutrum et, nisl. Vestibulum interdum luctus sapien. Quisque viverra. Etiam id libero at magna pellentesque aliquet. Nulla sit amet ipsum id enim tempus dictum. Maecenas consectetuer eros quis massa. Mauris semper velit vehicula purus. Duis lacus. Aenean pretium consectetuer mauris. Ut purus sem, consequat ut, fermentum sit amet, ornare sit amet, ipsum. Donec non nunc. Maecenas fringilla. Curabitur libero. In dui massa, malesuada sit amet, hendrerit vitae, viverra nec, tortor. Donec varius. Ut ut dolor et tellus adipiscing adipiscing.

Proin aliquet lorem id felis. Curabitur vel libero at mauris nonummy tincidunt. Donec imperdiet. Vestibulum sem sem, lacinia vel, molestie et, laoreet eget, urna. Curabitur viverra faucibus pede. Morbi lobortis. Donec dapibus. Donec tempus. Ut arcu enim, rhoncus ac, venenatis eu, porttitor mollis, dui. Sed vitae risus. In elementum sem placerat dui. Nam tristique eros in nisl. Nulla cursus sapien non quam porta porttitor. Quisque dictum ipsum ornare tortor. Fusce ornare tempus enim.

Maecenas arcu justo, malesuada eu, dapibus ac, adipiscing vitae, turpis. Fusce mollis. Aliquam egestas. In purus dolor, facilisis at, fermentum nec, molestie et, metus. Vestibulum feugiat, orci at imperdiet tincidunt, mauris erat facilisis urna, sagittis ultricies dui nisl et lectus. Sed lacinia, lectus vitae dictum sodales, elit ipsum ultrices orci, non euismod arcu diam non metus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. In suscipit turpis vitae odio. Integer convallis dui at metus. Fusce magna. Sed sed lectus vitae enim tempor cursus. Cras eu erat vel libero sodales congue. Sed erat est, interdum nec, elementum eleifend, pretium at, nibh. Praesent massa diam, adipiscing id, mollis sed, posuere et, urna. Quisque ut leo. Aliquam interdum hendrerit tortor. Vestibulum elit. Vestibulum et arcu at diam mattis commodo. Nam ipsum sem, ultricies at, rutrum sit amet, posuere nec, velit. Sed molestie mollis dui.

- - -

mPDF 6

-

Paged Media using CSS

-

Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci.

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Proin vel sem at odio varius pretium. Maecenas sed orci. Maecenas varius. Ut magna ipsum, tempus in, condimentum at, rutrum et, nisl. Vestibulum interdum luctus sapien. Quisque viverra. Etiam id libero at magna pellentesque aliquet. Nulla sit amet ipsum id enim tempus dictum. Maecenas consectetuer eros quis massa. Mauris semper velit vehicula purus. Duis lacus. Aenean pretium consectetuer mauris. Ut purus sem, consequat ut, fermentum sit amet, ornare sit amet, ipsum. Donec non nunc. Maecenas fringilla. Curabitur libero. In dui massa, malesuada sit amet, hendrerit vitae, viverra nec, tortor. Donec varius. Ut ut dolor et tellus adipiscing adipiscing.

Proin aliquet lorem id felis. Curabitur vel libero at mauris nonummy tincidunt. Donec imperdiet. Vestibulum sem sem, lacinia vel, molestie et, laoreet eget, urna. Curabitur viverra faucibus pede. Morbi lobortis. Donec dapibus. Donec tempus. Ut arcu enim, rhoncus ac, venenatis eu, porttitor mollis, dui. Sed vitae risus. In elementum sem placerat dui. Nam tristique eros in nisl. Nulla cursus sapien non quam porta porttitor. Quisque dictum ipsum ornare tortor. Fusce ornare tempus enim.

Maecenas arcu justo, malesuada eu, dapibus ac, adipiscing vitae, turpis. Fusce mollis. Aliquam egestas. In purus dolor, facilisis at, fermentum nec, molestie et, metus. Vestibulum feugiat, orci at imperdiet tincidunt, mauris erat facilisis urna, sagittis ultricies dui nisl et lectus. Sed lacinia, lectus vitae dictum sodales, elit ipsum ultrices orci, non euismod arcu diam non metus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. In suscipit turpis vitae odio. Integer convallis dui at metus. Fusce magna. Sed sed lectus vitae enim tempor cursus. Cras eu erat vel libero sodales congue. Sed erat est, interdum nec, elementum eleifend, pretium at, nibh. Praesent massa diam, adipiscing id, mollis sed, posuere et, urna. Quisque ut leo. Aliquam interdum hendrerit tortor. Vestibulum elit. Vestibulum et arcu at diam mattis commodo. Nam ipsum sem, ultricies at, rutrum sit amet, posuere nec, velit. Sed molestie mollis dui.

-

Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci.

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Proin vel sem at odio varius pretium. Maecenas sed orci. Maecenas varius. Ut magna ipsum, tempus in, condimentum at, rutrum et, nisl. Vestibulum interdum luctus sapien. Quisque viverra. Etiam id libero at magna pellentesque aliquet. Nulla sit amet ipsum id enim tempus dictum. Maecenas consectetuer eros quis massa. Mauris semper velit vehicula purus. Duis lacus. Aenean pretium consectetuer mauris. Ut purus sem, consequat ut, fermentum sit amet, ornare sit amet, ipsum. Donec non nunc. Maecenas fringilla. Curabitur libero. In dui massa, malesuada sit amet, hendrerit vitae, viverra nec, tortor. Donec varius. Ut ut dolor et tellus adipiscing adipiscing.

Proin aliquet lorem id felis. Curabitur vel libero at mauris nonummy tincidunt. Donec imperdiet. Vestibulum sem sem, lacinia vel, molestie et, laoreet eget, urna. Curabitur viverra faucibus pede. Morbi lobortis. Donec dapibus. Donec tempus. Ut arcu enim, rhoncus ac, venenatis eu, porttitor mollis, dui. Sed vitae risus. In elementum sem placerat dui. Nam tristique eros in nisl. Nulla cursus sapien non quam porta porttitor. Quisque dictum ipsum ornare tortor. Fusce ornare tempus enim.

Maecenas arcu justo, malesuada eu, dapibus ac, adipiscing vitae, turpis. Fusce mollis. Aliquam egestas. In purus dolor, facilisis at, fermentum nec, molestie et, metus. Vestibulum feugiat, orci at imperdiet tincidunt, mauris erat facilisis urna, sagittis ultricies dui nisl et lectus. Sed lacinia, lectus vitae dictum sodales, elit ipsum ultrices orci, non euismod arcu diam non metus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. In suscipit turpis vitae odio. Integer convallis dui at metus. Fusce magna. Sed sed lectus vitae enim tempor cursus. Cras eu erat vel libero sodales congue. Sed erat est, interdum nec, elementum eleifend, pretium at, nibh. Praesent massa diam, adipiscing id, mollis sed, posuere et, urna. Quisque ut leo. Aliquam interdum hendrerit tortor. Vestibulum elit. Vestibulum et arcu at diam mattis commodo. Nam ipsum sem, ultricies at, rutrum sit amet, posuere nec, velit. Sed molestie mollis dui.

-

Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci.

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Proin vel sem at odio varius pretium. Maecenas sed orci. Maecenas varius. Ut magna ipsum, tempus in, condimentum at, rutrum et, nisl. Vestibulum interdum luctus sapien. Quisque viverra. Etiam id libero at magna pellentesque aliquet. Nulla sit amet ipsum id enim tempus dictum. Maecenas consectetuer eros quis massa. Mauris semper velit vehicula purus. Duis lacus. Aenean pretium consectetuer mauris. Ut purus sem, consequat ut, fermentum sit amet, ornare sit amet, ipsum. Donec non nunc. Maecenas fringilla. Curabitur libero. In dui massa, malesuada sit amet, hendrerit vitae, viverra nec, tortor. Donec varius. Ut ut dolor et tellus adipiscing adipiscing.

Proin aliquet lorem id felis. Curabitur vel libero at mauris nonummy tincidunt. Donec imperdiet. Vestibulum sem sem, lacinia vel, molestie et, laoreet eget, urna. Curabitur viverra faucibus pede. Morbi lobortis. Donec dapibus. Donec tempus. Ut arcu enim, rhoncus ac, venenatis eu, porttitor mollis, dui. Sed vitae risus. In elementum sem placerat dui. Nam tristique eros in nisl. Nulla cursus sapien non quam porta porttitor. Quisque dictum ipsum ornare tortor. Fusce ornare tempus enim.

Maecenas arcu justo, malesuada eu, dapibus ac, adipiscing vitae, turpis. Fusce mollis. Aliquam egestas. In purus dolor, facilisis at, fermentum nec, molestie et, metus. Vestibulum feugiat, orci at imperdiet tincidunt, mauris erat facilisis urna, sagittis ultricies dui nisl et lectus. Sed lacinia, lectus vitae dictum sodales, elit ipsum ultrices orci, non euismod arcu diam non metus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. In suscipit turpis vitae odio. Integer convallis dui at metus. Fusce magna. Sed sed lectus vitae enim tempor cursus. Cras eu erat vel libero sodales congue. Sed erat est, interdum nec, elementum eleifend, pretium at, nibh. Praesent massa diam, adipiscing id, mollis sed, posuere et, urna. Quisque ut leo. Aliquam interdum hendrerit tortor. Vestibulum elit. Vestibulum et arcu at diam mattis commodo. Nam ipsum sem, ultricies at, rutrum sit amet, posuere nec, velit. Sed molestie mollis dui.

- - -

mPDF 7

-

Paged Media using CSS

-

Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci.

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Proin vel sem at odio varius pretium. Maecenas sed orci. Maecenas varius. Ut magna ipsum, tempus in, condimentum at, rutrum et, nisl. Vestibulum interdum luctus sapien. Quisque viverra. Etiam id libero at magna pellentesque aliquet. Nulla sit amet ipsum id enim tempus dictum. Maecenas consectetuer eros quis massa. Mauris semper velit vehicula purus. Duis lacus. Aenean pretium consectetuer mauris. Ut purus sem, consequat ut, fermentum sit amet, ornare sit amet, ipsum. Donec non nunc. Maecenas fringilla. Curabitur libero. In dui massa, malesuada sit amet, hendrerit vitae, viverra nec, tortor. Donec varius. Ut ut dolor et tellus adipiscing adipiscing.

Proin aliquet lorem id felis. Curabitur vel libero at mauris nonummy tincidunt. Donec imperdiet. Vestibulum sem sem, lacinia vel, molestie et, laoreet eget, urna. Curabitur viverra faucibus pede. Morbi lobortis. Donec dapibus. Donec tempus. Ut arcu enim, rhoncus ac, venenatis eu, porttitor mollis, dui. Sed vitae risus. In elementum sem placerat dui. Nam tristique eros in nisl. Nulla cursus sapien non quam porta porttitor. Quisque dictum ipsum ornare tortor. Fusce ornare tempus enim.

Maecenas arcu justo, malesuada eu, dapibus ac, adipiscing vitae, turpis. Fusce mollis. Aliquam egestas. In purus dolor, facilisis at, fermentum nec, molestie et, metus. Vestibulum feugiat, orci at imperdiet tincidunt, mauris erat facilisis urna, sagittis ultricies dui nisl et lectus. Sed lacinia, lectus vitae dictum sodales, elit ipsum ultrices orci, non euismod arcu diam non metus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. In suscipit turpis vitae odio. Integer convallis dui at metus. Fusce magna. Sed sed lectus vitae enim tempor cursus. Cras eu erat vel libero sodales congue. Sed erat est, interdum nec, elementum eleifend, pretium at, nibh. Praesent massa diam, adipiscing id, mollis sed, posuere et, urna. Quisque ut leo. Aliquam interdum hendrerit tortor. Vestibulum elit. Vestibulum et arcu at diam mattis commodo. Nam ipsum sem, ultricies at, rutrum sit amet, posuere nec, velit. Sed molestie mollis dui.

-

Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci.

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Proin vel sem at odio varius pretium. Maecenas sed orci. Maecenas varius. Ut magna ipsum, tempus in, condimentum at, rutrum et, nisl. Vestibulum interdum luctus sapien. Quisque viverra. Etiam id libero at magna pellentesque aliquet. Nulla sit amet ipsum id enim tempus dictum. Maecenas consectetuer eros quis massa. Mauris semper velit vehicula purus. Duis lacus. Aenean pretium consectetuer mauris. Ut purus sem, consequat ut, fermentum sit amet, ornare sit amet, ipsum. Donec non nunc. Maecenas fringilla. Curabitur libero. In dui massa, malesuada sit amet, hendrerit vitae, viverra nec, tortor. Donec varius. Ut ut dolor et tellus adipiscing adipiscing.

Proin aliquet lorem id felis. Curabitur vel libero at mauris nonummy tincidunt. Donec imperdiet. Vestibulum sem sem, lacinia vel, molestie et, laoreet eget, urna. Curabitur viverra faucibus pede. Morbi lobortis. Donec dapibus. Donec tempus. Ut arcu enim, rhoncus ac, venenatis eu, porttitor mollis, dui. Sed vitae risus. In elementum sem placerat dui. Nam tristique eros in nisl. Nulla cursus sapien non quam porta porttitor. Quisque dictum ipsum ornare tortor. Fusce ornare tempus enim.

Maecenas arcu justo, malesuada eu, dapibus ac, adipiscing vitae, turpis. Fusce mollis. Aliquam egestas. In purus dolor, facilisis at, fermentum nec, molestie et, metus. Vestibulum feugiat, orci at imperdiet tincidunt, mauris erat facilisis urna, sagittis ultricies dui nisl et lectus. Sed lacinia, lectus vitae dictum sodales, elit ipsum ultrices orci, non euismod arcu diam non metus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. In suscipit turpis vitae odio. Integer convallis dui at metus. Fusce magna. Sed sed lectus vitae enim tempor cursus. Cras eu erat vel libero sodales congue. Sed erat est, interdum nec, elementum eleifend, pretium at, nibh. Praesent massa diam, adipiscing id, mollis sed, posuere et, urna. Quisque ut leo. Aliquam interdum hendrerit tortor. Vestibulum elit. Vestibulum et arcu at diam mattis commodo. Nam ipsum sem, ultricies at, rutrum sit amet, posuere nec, velit. Sed molestie mollis dui.

- -'; -//============================================================== -//============================================================== -//============================================================== -include("../mpdf.php"); - -$mpdf=new mPDF('c','A4','','',5,5,5,5,0,0); - -$mpdf->mirrorMargins = 1; // Use different Odd/Even headers and footers and mirror margins (1 or 0) - -$mpdf->SetDisplayMode('fullpage','two'); - -// LOAD a stylesheet -$stylesheet = file_get_contents('mpdfstylePaged.css'); -$mpdf->WriteHTML($stylesheet,1); // The parameter 1 tells that this is css/style only and no body/html/text - -$mpdf->WriteHTML($html); - -$mpdf->Output(); -exit; -//============================================================== -//============================================================== - - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/example14_page_numbers_ToC_Index_Bookmarks.php b/public_html/2022/newcms/pdf/examples/example14_page_numbers_ToC_Index_Bookmarks.php deleted file mode 100644 index 5404698..0000000 --- a/public_html/2022/newcms/pdf/examples/example14_page_numbers_ToC_Index_Bookmarks.php +++ /dev/null @@ -1,148 +0,0 @@ -Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci.

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Proin vel sem at odio varius pretium. Maecenas sed orci. Maecenas varius. Ut magna ipsum, tempus in, condimentum at, rutrum et, nisl. Vestibulum interdum luctus sapien. Quisque viverra. Etiam id libero at magna pellentesque aliquet. Nulla sit amet ipsum id enim tempus dictum. Maecenas consectetuer eros quis massa. Mauris semper velit vehicula purus. Duis lacus. Aenean pretium consectetuer mauris. Ut purus sem, consequat ut, fermentum sit amet, ornare sit amet, ipsum. Donec non nunc. Maecenas fringilla. Curabitur libero. In dui massa, malesuada sit amet, hendrerit vitae, viverra nec, tortor. Donec varius. Ut ut dolor et tellus adipiscing adipiscing.

Proin aliquet lorem id felis. Curabitur vel libero at mauris nonummy tincidunt. Donec imperdiet. Vestibulum sem sem, lacinia vel, molestie et, laoreet eget, urna. Curabitur viverra faucibus pede. Morbi lobortis. Donec dapibus. Donec tempus. Ut arcu enim, rhoncus ac, venenatis eu, porttitor mollis, dui. Sed vitae risus. In elementum sem placerat dui. Nam tristique eros in nisl. Nulla cursus sapien non quam porta porttitor. Quisque dictum ipsum ornare tortor. Fusce ornare tempus enim.

Maecenas arcu justo, malesuada eu, dapibus ac, adipiscing vitae, turpis. Fusce mollis. Aliquam egestas. In purus dolor, facilisis at, fermentum nec, molestie et, metus. Vestibulum feugiat, orci at imperdiet tincidunt, mauris erat facilisis urna, sagittis ultricies dui nisl et lectus. Sed lacinia, lectus vitae dictum sodales, elit ipsum ultrices orci, non euismod arcu diam non metus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. In suscipit turpis vitae odio. Integer convallis dui at metus. Fusce magna. Sed sed lectus vitae enim tempor cursus. Cras eu erat vel libero sodales congue. Sed erat est, interdum nec, elementum eleifend, pretium at, nibh. Praesent massa diam, adipiscing id, mollis sed, posuere et, urna. Quisque ut leo. Aliquam interdum hendrerit tortor. Vestibulum elit. Vestibulum et arcu at diam mattis commodo. Nam ipsum sem, ultricies at, rutrum sit amet, posuere nec, velit. Sed molestie mollis dui.

"; -//============================================================== -//============================================================== -//============================================================== - - -$html = ' - - - - - -

mPDF

-

Table of Contents & Bookmarks

- - - - -'; - -//============================================================== -include("../mpdf.php"); - -$mpdf=new mPDF('c','A4','','',32,25,27,25,16,13); - -$mpdf->mirrorMargins = 1; - -$mpdf->SetDisplayMode('fullpage','two'); - -// LOAD a stylesheet -$stylesheet = file_get_contents('mpdfstyleA4.css'); -$mpdf->WriteHTML($stylesheet,1); // The parameter 1 tells that this is css/style only and no body/html/text - -$mpdf->WriteHTML($html); - - -// Alternative ways to mark ToC entries and Bookmarks -// This will automatically generate entries from the

tag -$mpdf->h2toc = array('H4'=>0); -$mpdf->h2bookmarks = array('H4'=>0); - -//============================================================== -// CONTENT -for ($j = 1; $j<7; $j++) { - if ($j==2) $mpdf->WriteHTML('',2); - if ($j==3) $mpdf->WriteHTML('',2); - if ($j==4) $mpdf->WriteHTML('',2); - if ($j==5) $mpdf->WriteHTML('',2); - if ($j==6) $mpdf->WriteHTML('
ODD
',2); - for ($x = 1; $x<7; $x++) { - - // Alternative way to mark ToC entries and Bookmarks manually -// $mpdf->WriteHTML('

Section '.$j.'.'.$x.'

',2); - - // Using Automatic generation from

tag - $mpdf->WriteHTML('

Section '.$j.'.'.$x.'

',2); - - $html = ''; - // Split $lorem into words - $words = preg_split('/([\s,\.]+)/',$lorem,-1,PREG_SPLIT_DELIM_CAPTURE); - foreach($words as $i => $e) { - if($i%2==0) { - $y = rand(1,10); // every tenth word - if (preg_match('/^[a-zA-Z]{4,99}$/',$e) && ($y > 8)) { - // If it is just a word use it as an index entry - $content = ucfirst(trim($e)); - $html .= ''; - $html .= ''.$e . ''; - } - else { $html .= $e; } - } - else { $html .= $e; } - } - $mpdf->WriteHTML($html); - } -} -//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -// INDEX -$html = ' -

Index

- -'; - -$mpdf->WriteHTML($html); - -$mpdf->Output(); -exit; -//============================================================== -//============================================================== - - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/example15_headers_method_1.php b/public_html/2022/newcms/pdf/examples/example15_headers_method_1.php deleted file mode 100644 index 7943bde..0000000 --- a/public_html/2022/newcms/pdf/examples/example15_headers_method_1.php +++ /dev/null @@ -1,60 +0,0 @@ -mirrorMargins = 1; // Use different Odd/Even headers and footers and mirror margins - -$mpdf->defaultheaderfontsize = 10; /* in pts */ -$mpdf->defaultheaderfontstyle = B; /* blank, B, I, or BI */ -$mpdf->defaultheaderline = 1; /* 1 to include line below header/above footer */ - -$mpdf->defaultfooterfontsize = 12; /* in pts */ -$mpdf->defaultfooterfontstyle = B; /* blank, B, I, or BI */ -$mpdf->defaultfooterline = 1; /* 1 to include line below header/above footer */ - - -$mpdf->SetHeader('{DATE j-m-Y}|{PAGENO}/{nb}|My document'); -$mpdf->SetFooter('{PAGENO}'); /* defines footer for Odd and Even Pages - placed at Outer margin */ - -$mpdf->SetFooter(array( - 'L' => array( - 'content' => 'Text to go on the left', - 'font-family' => 'sans-serif', - 'font-style' => 'B', /* blank, B, I, or BI */ - 'font-size' => '10', /* in pts */ - ), - 'C' => array( - 'content' => '- {PAGENO} -', - 'font-family' => 'serif', - 'font-style' => 'BI', - 'font-size' => '18', /* gives default */ - ), - 'R' => array( - 'content' => 'Printed @ {DATE j-m-Y H:m}', - 'font-family' => 'monospace', - 'font-style' => '', - 'font-size' => '10', - ), - 'line' => 1, /* 1 to include line below header/above footer */ -), 'E' /* defines footer for Even Pages */ -); - - -$html = ' -

mPDF

-

Headers & Footers Method 1

-

Odd / Right page

-

Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci.

- -

Even / Left page

-

Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci.

-'; - -$mpdf->WriteHTML($html); - -$mpdf->Output(); -exit; - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/example16_headers_method_2.php b/public_html/2022/newcms/pdf/examples/example16_headers_method_2.php deleted file mode 100644 index 8ca966d..0000000 --- a/public_html/2022/newcms/pdf/examples/example16_headers_method_2.php +++ /dev/null @@ -1,49 +0,0 @@ -mirrorMargins = 1; // Use different Odd/Even headers and footers and mirror margins - -$header = ' - - - - -
Left header p {PAGENO}Right header
-'; -$headerE = ' - - - - -
Outer headerInner header p {PAGENO}
-'; - -$footer = ''; -$footerE = ''; - - -$mpdf->SetHTMLHeader($header); -$mpdf->SetHTMLHeader($headerE,'E'); -$mpdf->SetHTMLFooter($footer); -$mpdf->SetHTMLFooter($footerE,'E'); - - -$html = ' -

mPDF

-

Headers & Footers Method 2

-

Odd / Right page

-

Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci.

- -

Even / Left page

-

Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci.

-'; - -$mpdf->WriteHTML($html); - -$mpdf->Output(); -exit; - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/example17_headers_method_3.php b/public_html/2022/newcms/pdf/examples/example17_headers_method_3.php deleted file mode 100644 index b0d39d4..0000000 --- a/public_html/2022/newcms/pdf/examples/example17_headers_method_3.php +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - -

mPDF

-

Headers & Footers Method 3

-

Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci.

- - -

Headers & Footers Method 3

-

Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci.

- - - -

Headers & Footers

-

Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci.

-'; - -//============================================================== -//============================================================== -//============================================================== - -include("../mpdf.php"); - -$mpdf=new mPDF('c','A4','','',32,25,27,25,16,13); - -$mpdf->mirrorMargins = 1; // Use different Odd/Even headers and footers and mirror margins - -$mpdf->WriteHTML($html); - -$mpdf->Output(); -exit; -//============================================================== -//============================================================== -//============================================================== - - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/example18_headers_method_4.php b/public_html/2022/newcms/pdf/examples/example18_headers_method_4.php deleted file mode 100644 index 16e8bca..0000000 --- a/public_html/2022/newcms/pdf/examples/example18_headers_method_4.php +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - -

mPDF

-

Headers & Footers Method 4

-

Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci.

- - -

Headers & Footers Method 4

-

Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci.

- - - - -

Headers & Footers Method 4

-

Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci.

-'; - -//============================================================== -//============================================================== -//============================================================== - -include("../mpdf.php"); - -$mpdf=new mPDF('c','A4','','',32,25,47,47,10,10); - -$mpdf->mirrorMargins = 1; // Use different Odd/Even headers and footers and mirror margins - -$mpdf->WriteHTML($html); - -$mpdf->Output(); -exit; -//============================================================== -//============================================================== -//============================================================== - - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/example19_page_sizes.php b/public_html/2022/newcms/pdf/examples/example19_page_sizes.php deleted file mode 100644 index 6c3ca94..0000000 --- a/public_html/2022/newcms/pdf/examples/example19_page_sizes.php +++ /dev/null @@ -1,59 +0,0 @@ - -
 {PAGENO} 
- - -
 {PAGENO} 
-
- - -'; - -//============================================================== -$html = ' -

mPDF Page Sizes

-

Changing page (sheet) sizes within the document

-'; -//============================================================== -//============================================================== -include("../mpdf.php"); - -$mpdf=new mPDF('c','A4'); - -$mpdf->WriteHTML($hhtml); - -$mpdf->WriteHTML($html); -$mpdf->WriteHTML('

This should print on an A4 (portrait) sheet

'); - -$mpdf->WriteHTML(''); -$mpdf->WriteHTML($html); -$mpdf->WriteHTML('

This page appears just after the ToC and should print on an A4 (landscape) sheet

'); - -$mpdf->WriteHTML(''); -$mpdf->WriteHTML($html); -$mpdf->WriteHTML('

This should print on an A5 (landscape) sheet

'); - -$mpdf->WriteHTML(''); -$mpdf->WriteHTML($html); -$mpdf->WriteHTML('

This should print on an Letter sheet

'); - -$mpdf->WriteHTML(''); -$mpdf->WriteHTML($html); -$mpdf->WriteHTML('

This should print on a sheet 150mm x 150mm

'); - -$mpdf->WriteHTML(''); -$mpdf->WriteHTML($html); -$mpdf->WriteHTML('

This should print on a sheet 11.69in x 8.27in = A4 landscape

'); - - -$mpdf->Output(); -exit; -//============================================================== -//============================================================== - - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/example20_justify.php b/public_html/2022/newcms/pdf/examples/example20_justify.php deleted file mode 100644 index 7e9f896..0000000 --- a/public_html/2022/newcms/pdf/examples/example20_justify.php +++ /dev/null @@ -1,130 +0,0 @@ -mPDF

-

Justification

- -

Tables

-

Text can be justified in table cells using in-line or stylesheet CSS. (Note that <p> tags are removed within cells along with any style definition or attributes.)

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Col/Row Header -

Second column header p

-
Third column header
Row header 1This is dataThis is data
Row header 2 -

This is data p

-
-

This is data

-
-

Row header 3

-
-

This is long data

-
This is data
-

Row header 4

-

<th> cell acting as header

-

Proin aliquet lorem id felis. Curabitur vel libero at mauris nonummy tincidunt. Donec imperdiet. Vestibulum sem sem, lacinia vel, molestie et, laoreet eget, urna. Curabitur viverra faucibus pede. Morbi lobortis. Donec dapibus. Donec tempus. Ut arcu enim, rhoncus ac, venenatis eu, porttitor mollis, dui. Sed vitae risus. In elementum sem placerat dui. Nam tristique eros in nisl. Nulla cursus sapien non quam porta porttitor. Quisque dictum ipsum ornare tortor. Fusce ornare tempus enim.

-

This is data

-
Row header 5Also dataAlso data
Row header 6Also dataAlso data
Row header 7Also dataAlso data
Row header 8Also dataAlso data
-

 

- -

Testing Justification with Long Words

-

http://www-950.ibm.com/software/globalization/icu/demo/converters?s=ALL&snd=4356&dnd=4356

-
Should not split
-

Maecenas feugiat pede vel risus. Nulla et lectus eleifend verylongwordthatwontsplit neque sit amet erat

-

Maecenas feugiat pede vel risus. Nulla et lectus eleifend et verylongwordthatwontsplit neque sit amet erat

- -
Non-breaking Space &nbsp;

The next example has a non-breaking space between eleifend and the very long word.

Maecenas feugiat pede vel risus. Nulla et lectus eleifend verylongwordthatwontsplitanywhere neque sit amet erat

Nbsp will only work in fonts that have a glyph to represent the character i.e. not in the CJK languages nor some Unicode fonts.

- - - -

Testing Justification with mixed Styles

-

This is strikethrough in block and small strikethrough in small span and big strikethrough in big span and then underline but out of span again but blue font and ACRONYM text

-

This is a green reference32-47 and underlined reference32-47 then reference32-47 and underlined reference32-47 then Strikethrough reference32-47 and strikethrough reference32-47 and then more text. -

-

Repeated in BIG: This is reference32-47 and underlined reference32-47 then reference32-47 and underlined reference32-47 but out of span again but blue font and ACRONYM text -

-

Repeated in small: This is reference32-47 and underlined reference32-47 then reference32-47 and underlined reference32-47 but out of span again but blue font and ACRONYM text -

- -

This is strikethrough in block and big strikethrough in big span and then underline but out of span again but blue font and ACRONYM text

-

This is reference32-47 and underlined reference32-47 then reference32-47 and underlined reference32-47 then Strikethrough reference32-47 and strikethrough reference32-47 then more text. -

-

-

-Repeated in BIG: This is reference32-47 and underlined reference32-47 then reference32-47 and underlined reference32-47 but out of span again but blue font and ACRONYM text -

-'; - -//============================================================== -//============================================================== -//============================================================== -include("../mpdf.php"); - -$mpdf=new mPDF('c','A4','','',32,25,27,25,16,13); - -$mpdf->SetDisplayMode('fullpage'); - -// LOAD a stylesheet -$stylesheet = file_get_contents('mpdfstyletables.css'); -$mpdf->WriteHTML($stylesheet,1); // The parameter 1 tells that this is css/style only and no body/html/text - -$mpdf->WriteHTML($html); - -// SPACING -$mpdf->WriteHTML("

Spacing

mPDF uses both letter- and word-spacing for text justification. The default is a mixture of both, set by the configurable values jSWord and jSmaxChar. (Only word spacing is used when cursive languages such as Arabic or Indic are detected.)

"); - -$mpdf->jSWord = 0; // Proportion (/1) of space (when justifying margins) to allocate to Word vs. Character -$mpdf->jSmaxChar = 0; // Maximum spacing to allocate to character spacing. (0 = no maximum) -$mpdf->WriteHTML("
Character spacing

Maecenas feugiat pede vel risus. Nulla et lectus eleifend verylongwordthatwontsplitanywhere neque sit amet erat

"); - -// Back to default settings -$mpdf->jSWord = 0.4; -$mpdf->jSmaxChar = 2; -$mpdf->WriteHTML("
Word spacing

Maecenas feugiat pede vel risus. Nulla et lectus eleifend verylongwordthatwontsplitanywhere neque sit amet erat

"); - -$mpdf->WriteHTML("
Mixed Character and Word spacing

Maecenas feugiat pede vel risus. Nulla et lectus eleifend verylongwordthatwontsplitanywhere neque sit amet erat

"); - - - - -$mpdf->Output(); -exit; - - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/example21_hyphenation.php b/public_html/2022/newcms/pdf/examples/example21_hyphenation.php deleted file mode 100644 index e23cce8..0000000 --- a/public_html/2022/newcms/pdf/examples/example21_hyphenation.php +++ /dev/null @@ -1,41 +0,0 @@ -Little Women -

Chapter One

-

Playing Pilgrims

- -

Christmas won\'t be Christmas without any presents, grumbled Jo, lying on the rug.

It\'s so dreadful to be poor! sighed Meg, looking down at her old dress.

I don\'t think it\'s fair for some girls to have plenty of pretty things, and other girls nothing at all, added little Amy, with an injured sniff.

We\'ve got Father and Mother, and each other, said Beth contentedly from her corner.

The four young faces on which the firelight shone brightened at the cheerful words, but darkened again as Jo said sadly, We haven\'t got Father, and shall not have him for a long time. She didn\'t say perhaps never, but each silently added it, thinking of Father far away, where the fighting was.

Nobody spoke for a minute; then Meg said in an altered tone, You know the reason Mother proposed not having any presents this Christmas was because it is going to be a hard winter for everyone; and she thinks we ought not to spend money for pleasure, when our men are suffering so in the army. We can\'t do much, but we can make our little sacrifices, and ought to do it gladly. But I am afraid I don\'t And Meg shook her head, as she thought regretfully of all the pretty things she wanted.

But I don\'t think the little we should spend would do any good. We\'ve each got a dollar, and the army wouldn\'t be much helped by our giving that. I agree not to expect anything from Mother or you, but I do want to buy UNDINE AND SINTRAM for myself. I\'ve wanted it so long, said Jo, who was a bookworm.

I planned to spend mine in new music, said Beth, with a little sigh, which no one heard but the hearth brush and kettle holder.

I shall get a nice box of Faber\'s drawing pencils. I really need them, said Amy decidedly.

Mother didn\'t say anything about our money, and she won\'t wish us to give up everything. Let\'s each buy what we want, and have a little fun. I\'m sure we work hard enough to earn it, cried Jo, examining the heels of her shoes in a gentlemanly manner.

I know I do—teaching those tiresome children nearly all day, when I\'m longing to enjoy myself at home, began Meg, in the complaining tone again.

You don\'t have half such a hard time as I do, said Jo. How would you like to be shut up for hours with a nervous, fussy old lady, who keeps you trotting, is never satisfied, and worries you till you you\'re ready to fly out the window or cry?

It\'s naughty to fret, but I do think washing dishes and keeping things tidy is the worst work in the world. It makes me cross, and my hands get so stiff, I can\'t practice well at all. And Beth looked at her rough hands with a sigh that any one could hear that time.

I don\'t believe any of you suffer as I do, cried Amy, for you don\'t have to go to school with impertinent girls, who plague you if you don\'t know your lessons, and laugh at your dresses, and label your father if he isn\'t rich, and insult you when your nose isn\'t nice.

If you mean libel, I\'d say so, and not talk about labels, as if Papa was a pickle bottle, advised Jo, laughing.

I know what I mean, and you needn\'t be satirical about it. It\'s proper to use good words, and improve your vocabulary, returned Amy, with dignity.

Don\'t peck at one another, children. Don\'t you wish we had the money Papa lost when we were little, Jo? Dear me! How happy and good we\'d be, if we had no worries! said Meg, who could remember better times.

You said the other day you thought we were a deal happier than the King children, for they were fighting and fretting all the time, in spite of their money.

So I did, Beth. Well, I think we are. For though we do have to work, we make fun of ourselves, and are a pretty jolly set, as Jo would say.

Jo does use such slang words! observed Amy, with a reproving look at the long figure stretched on the rug.

Jo immediately sat up, put her hands in her pockets, and began to whistle.

Don\'t, Jo. It\'s so boyish!

That\'s why I do it.

I detest rude, unladylike girls!

I hate affected, niminy-piminy chits!

Birds in their little nests agree, sang Beth, the peacemaker, with such a funny face that both sharp voices softened to a laugh, and the pecking ended for that time.

Really, girls, you are both to be blamed, said Meg, beginning to lecture in her elder-sisterly fashion. You are old enough to leave off boyish tricks, and to behave better, Josephine. It didn\'t matter so much when you were a little girl, but now you are so tall, and turn up your hair, you should remember that you are a young lady.

I\'m not! And if turning up my hair makes me one, I\'ll wear it in two tails till I\'m twenty, cried Jo, pulling off her net, and shaking down a chestnut mane. I hate to think I\'ve got to grow up, and be Miss March, and wear long gowns, and look as prim as a China Aster! It\'s bad enough to be a girl, anyway, when I like boy\'s games and work and manners! I can\'t get over my disappointment in not being a boy. And it\'s worse than ever now, for I\'m dying to go and fight with Papa. And I can only stay home and knit, like a poky old woman!

And Jo shook the blue army sock till the needles rattled like castanets, and her ball bounded across the room.

Poor Jo! It\'s too bad, but it can\'t be helped. So you must try to be contented with making your name boyish, and playing brother to us girls, said Beth, stroking the rough head with a hand that all the dish washing and dusting in the world could not make ungentle in its touch.

As for you, Amy, continued Meg, you are altogether to particular and prim. Your airs are funny now, but you\'ll grow up an affected little goose, if you don\'t take care. I I like your nice manners and refined ways of speaking, when you don\'t try to be elegant. But your absurd words are as bad as Jo\'s slang.

If Jo is a tomboy and Amy a goose, what am I, please? asked Beth, ready to share the lecture.

You\'re a dear, and nothing else, answered Meg warmly, and no one contradicted her, for the `Mouse\' was the pet of the family.

As young readers like to know `how people look\', we will take this moment to give them a little sketch of the four sisters, who sat knitting away in the twilight, while the December snow fell quietly without, and the fire crackled cheerfully within. It was a comfortable room, though the carpet was faded and the furniture very plain, for a good picture or two hung on the walls, books filled the recesses, chrysanthemums and Christmas roses bloomed in the windows, and a pleasant atmosphere of home peace pervaded it.

Margaret, the eldest of the four, was sixteen, and very pretty, being plump and fair, with large eyes, plenty of soft brown hair, a sweet mouth, and white hands, of which she was rather vain. Fifteen-year-old Jo was very tall, thin, and brown, and reminded one of a colt, for she never seemed to know what to do with her long limbs, which were very much in her way. She had a decided mouth, a comical nose, and sharp, gray eyes, which appeared to see everything, and were by turns fierce, funny, or thoughtful. Her long, thick hair was her one beauty, but it was usually bundled into a net, to be out of her way. Round shoulders had Jo, big hands and feet, a fly-away look to her clothes, and the uncomfortable appearance of a girl who was rapidly shooting up into a woman and didn\'t like it. Elizabeth, or Beth, as everyone called her, was a rosy, smooth-haired, bright-eyed girl of thirteen, with a shy manner, a timid voice, and a peaceful expression which was seldom disturbed. Her father called her `Little Miss Tranquillity\', and the name suited her excellently, for she seemed to live in a happy world of her own, only venturing out to meet the few whom she trusted and loved. Amy, though the youngest, was a most important person, in her own opinion at least. A regular snow maiden, with blue eyes, and yellow hair curling on her shoulders, pale and slender, and always carrying herself like a young lady mindful of her manners. What the characters of the four sisters were we will leave to be found out.

The clock struck six and, having swept up the hearth, Beth put a pair of slippers down to warm. Somehow the sight of the old shoes had a good effect upon the girls, for Mother was coming, and everyone brightened to welcome her. Meg stopped lecturing, and lighted the lamp, Amy got out of the easy chair without being asked, and Jo forgot how tired she was as she sat up to hold the slippers nearer to the blaze.

They are quite worn out. Marmee must have a new pair.

I thought I\'d get her some with my dollar, said Beth.

No, I shall! cried Amy.

I\'m the oldest, began Meg, but Jo cut in with a decided, I\'m the man of the family now Papa is away, and I shall provide the slippers, for he told me to take special care of Mother while he was gone.

I\'ll tell you what we\'ll do, said Beth, let\'s each get her something for Christmas, and not get anything for ourselves.

That\'s like you, dear! What will we get? exclaimed Jo.

Everyone thought soberly for a minute, then Meg announced, as if the idea was suggested by the sight of her own pretty hands, I shall give her a nice pair of gloves.

Army shoes, best to be had, cried Jo.

Some handkerchiefs, all hemmed, said Beth.

I\'ll get a little bottle of cologne. She likes it, and it won\'t cost much, so I\'ll have some left to buy my pencils, added Amy.

How will we give the things? asked Meg.

Put them on the table, and bring her in and see her open the bundles. Don\'t you remember how we used to do on our birthdays? answered Jo.

I used to be so frightened when it was my turn to sit in the chair with the crown on, and see you all come marching round to give the presents, with a kiss. I liked the things and the kisses, but it was dreadful to have you sit looking at me while I opened the bundles, said Beth, who was toasting her face and the bread for tea at the same time.

Let Marmee think we are getting things for ourselves, and then surprise her. We must go shopping tomorrow afternoon, Meg. There is so much to do about the play for Christmas night, said Jo, marching up and down, with her hands behind her back, and her nose in the air.

I don\'t mean to act any more after this time. I\'m getting too old for such things, observed Meg, who was as much a child as ever about `dressing-up\' frolics.

You won\'t stop, I know, as long as you can trail round in a white gown with your hair down, and wear gold-paper jewelry. You are the best actress we\'ve got, and there\'ll be an end of everything if you quit the boards, said Jo. We ought to rehearse tonight. Come here, Amy, and do the fainting scene, for you are as stiff as a poker in that.

I can\'t help it. I never saw anyone faint, and I don\'t choose to make myself all black and blue, tumbling flat as you do. If I can go down easily, I\'ll drop. If I can\'t, I shall fall into a chair and be graceful. I don\'t care if Hugo does come at me with a pistol, returned Amy, who was not gifted with dramatic power, but was chosen because she was small enough to be borne out shrieking by the villain of the piece.

Do it this way. Clasp your hands so, and stagger across the room, crying frantically, `Roderigo` Save me! Save me! and away went Jo, with a melodramatic scream which was truly thrilling.

Amy followed, but she poked her hands out stiffly before her, and jerked herself along as if she went by machinery, and her Ow! was more suggestive of pins being run into her than of fear and anguish. Jo gave a despairing groan, and Meg laughed outright, while Beth let her bread burn as she watched the fun with interest.

It\'s no use! Do the best you can when the time comes, and if the audience laughs, don\'t blame me. Come on, Meg.

Then things went smoothly, for Don Pedro defied the world in a speech of two pages without a single break. Hagar, the witch, chanted an awful incantation over her kettleful of simmering toads, with weird effect. Roderigo rent his chains asunder manfully, and Hugo died in agonies of remorse and arsenic, with a wild, Ha! Ha!

It\'s the best we\'ve had yet, said Meg, as the dead villain sat up and rubbed his elbows.

I don\'t see how you can write and act such splendid things, Jo. You\'re a regular Shakespeare! exclaimed Beth, who firmly believed that her sisters were gifted with wonderful genius in all things.

Not quite, replied Jo modestly. I do think THE WITCHES CURSE, an Operatic Tragedy is rather a nice thing, but I\'d like to try MacBETH, if we only had a trapdoor for Banquo. I always wanted to do the killing part. `Is that a dagger that I see before me? muttered Jo, rolling her eyes and clutching at the air, as she had seen a famous tragedian do.

No, it\'s the toasting fork, with Mother\'s shoe on it instead of the bread. Beth\'s stage-struck! cried Meg, and the rehearsal ended in a general burst of laughter.

Glad to find you so merry, my girls, said a cheery voice at the door, and actors and audience turned to welcome a tall, motherly lady with a `can I help you\' look about her which was truly delightful. She was not elegantly dressed, but a noble-looking woman, and the girls thought the gray cloak and unfashionable bonnet covered the most splendid mother in the world.

Well, dearies, how have you got on today? There was so much to do, getting the boxes ready to go tomorrow, that I didn\'t come home to dinner. Has anyone called, Beth? How is your cold, Meg? Jo, you look tired to death. Come and kiss me, baby.

While making these maternal inquiries Mrs. March got her wet things off, her warm slippers on, and sitting down in the easy chair, drew Amy to her lap, preparing to enjoy the happiest hour of her busy day. The girls flew about, trying to make things comfortable, each in her own way. Meg arranged the tea table, Jo brought wood and set chairs, dropping, over-turning, and clattering everything she touched. Beth trotted to and fro between parlor kitchen, quiet and busy, while Amy gave directions to everyone, as she sat with her hands folded.

As they gathered about the table, Mrs. March said, with a particularly happy face, I\'ve got a treat for you after supper.

A quick, bright smile went round like a streak of sunshine. Beth clapped her hands, regardless of the biscuit she held, and Jo tossed up her napkin, crying, A letter! A letter! Three cheers for Father!

Yes, a nice long letter. He is well, and thinks he shall get through the cold season better than we feared. He sends all sorts of loving wishes for Christmas, and an especial message to you girls, said Mrs. March, patting her pocket as if she had got a treasure there.

Hurry and get done! Don\'t stop to quirk your little finger and simper over your plate, Amy, cried Jo, choking on her tea and dropping her bread, butter side down, on the carpet in her haste to get at the treat.

Beth ate no more, but crept away to sit in her shadowy corner and brood over the delight to come, till the others were ready.

I think it was so splendid in Father to go as chaplain when he was too old to be drafted, and not strong enough for a soldier, said Meg warmly.

Don\'t I wish I could go as a drummer, a vivan—what\'s its name? Or a nurse, so I could be near him and help him, exclaimed Jo, with a groan.

It must be very disagreeable to sleep in a tent, and eat all sorts of bad-tasting things, and drink out of a tin mug, sighed Amy.

When will he come home, Marmee? asked Beth, with a little quiver in her voice.

Not for many months, dear, unless he is sick. He will stay and do his work faithfully as long as he can, and we won\'t ask for him back a minute sooner than he can be spared. Now come and hear the letter.

They all drew to the fire, Mother in the big chair with Beth at her feet, Meg and Amy perched on either arm of the chair, and Jo leaning on the back, where no one would see any sign of emotion if the letter should happen to be touching. Very few letters were written in those hard times that were not touching, especially those which fathers sent home. In this one little was said of the hardships endured, the dangers faced, or the homesickness conquered. It was a cheerful, hopeful letter, full of lively descriptions of camp life, marches, and military news, and only at the end did the writer\'s heart over-flow with fatherly love and longing for the little girls at home.

Give them all of my dear love and a kiss. Tell them I think of them by day, pray for them by night, and find my best comfort in their affection at all times. A year seems very long to wait before I see them, but remind them that while we wait we may all work, so that these hard days need not be wasted. I know they will remember all I said to them, that they will be loving children to you, will do their duty faithfully, fight their bosom enemies bravely, and conquer themselves so beautifully that when I come back to them I may be fonder and prouder than ever of my little women.

Everybody sniffed when they came to that part. Jo wasn\'t ashamed of the great tear that dropped off the end of her nose, and Amy never minded the rumpling of her curls as she hid her face on her mother\'s shoulder and sobbed out, I am a selfish girl! But I\'ll truly try to be better, so he mayn\'t be disappointed in me by-and-by.

We all will, cried Meg. I think too much of my looks and hate to work, but won\'t any more, if I can help it.

I\'ll try and be what he loves to call me, `a little woman\' and not be rough and wild, but do my duty here instead of wanting to be somewhere else, said Jo, thinking that keeping her temper at home was a much harder task than facing a rebel or two down South.

Beth said nothing, but wiped away her tears with the blue army sock and began to knit with all her might, losing no time in doing the duty that lay nearest her, while she resolved in her quiet little soul to be all that Father hoped to find her when the year brought round the happy coming home.

Mrs. March broke the silence that followed Jo\'s words, by saying in her cheery voice, Do you remember how you used to play Pilgrims Progress when you were little things? Nothing delighted you more than to have me tie my piece bags on your backs for burdens, give you hats and sticks and rolls of paper, and let you travel through the house from the cellar, which was the City of Destruction, up, up, to the housetop, where you had all the lovely things you could collect to make a Celestial City.

What fun it was, especially going by the lions, fighting Apollyon, and passing through the valley where the hob-goblins were, said Jo.

I liked the place where the bundles fell off and tumbled downstairs, said Meg.

I don\'t remember much about it, except that I was afraid of the cellar and the dark entry, and always liked the cake and milk we had up at the top. If I wasn\'t too old for such things, I\'d rather like to play it over again, said Amy, who began to talk of renouncing childish things at the mature age of twelve.

We never are too old for this, my dear, because it is a play we are playing all the time in one way or another. Out burdens are here, our road is before us, and the longing for goodness and happiness is the guide that leads us through many troubles and mistakes to the peace which is a true Celestial City. Now, my little pilgrims, suppose you begin again, not in play, but in earnest, and see how far on you can get before Father comes home.

Really, Mother? Where are our bundles? asked Amy, who was a very literal young lady.

Each of you told what your burden was just now, except Beth. I rather think she hasn\'t got any, said her mother.

Yes, I have. Mine is dishes and dusters, and envying girls with nice pianos, and being afraid of people.

Beth\'s bundle was such a funny one that everybody wanted to laugh, but nobody did, for it would have hurt her feelings very much.

Let us do it, said Meg thoughtfully. It is only another name for trying to be good, and the story may help us, for though we do want to be good, it\'s hard work and we forget, and don\'t do our best.

We were in the Slough of Despond tonight, and Mother came and pulled us out as Help did in the book. We ought to have our roll of directions, like Christian. What shall we do about that? asked Jo, delighted with the fancy which lent a little romance to the very dull task of doing her duty.

Look under your pillows Christmas morning, and you will find your guidebook, replied Mrs. March.

They talked over the new plan while old Hannah cleared the table, then out came the four little work baskets, and the needles flew as the girls made sheets for Aunt March. It was uninteresting sewing, but tonight no one grumbled. They adopted Jo\'s plan of dividing the long seams into four parts, and calling the quarters Europe, Asia, Africa, and America, and in that way got on capitally, especially when they talked about the different countries as they stitched their way through them.

At nine they stopped work, and sang, as usual, before they went to bed. No one but Beth could get much music out of the old piano, but she had a way of softly touching the yellow keys and making a pleasant accompaniment to the simple songs they sang. Meg had a voice like a flute, and she and her mother led the little choir. Amy chirped like a cricket, and Jo wandered through the airs at her own sweet will, always coming out at the wrong place with a croak or a quaver that spoiled the most pensive tune. They had always done this from the time they could lisp . . . Crinkle, crinkle, \'ittle \'tar, and it had become a household custom,, for the mother was a born singer. The first sound in the morning was her voice as she went about the house singing like a lark, and the last sound at night was the same cheery sound, for the girls never grew too old for that familiar lullaby.'; - -//============================================================== -//============================================================== -//============================================================== -include("../mpdf.php"); - -$mpdf=new mPDF('','A4','','',32,25,27,25,16,13); - -$mpdf->SetDisplayMode('fullpage'); - -$mpdf->hyphenate = 2; // removed in 5.6.07 - -// LOAD a stylesheet -$stylesheet = file_get_contents('mpdfstyleA4.css'); -$stylesheet .= ' -p { hyphens: auto; } -'; -$mpdf->WriteHTML($stylesheet,1); - -$mpdf->WriteHTML('

Automatic Hyphenation

'); - -$mpdf->SetColumns(4,'J'); - -$mpdf->WriteHTML($html); - -$mpdf->Output(); -exit; -//============================================================== -//============================================================== - - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/example22_columns.php b/public_html/2022/newcms/pdf/examples/example22_columns.php deleted file mode 100644 index 6b9aac5..0000000 --- a/public_html/2022/newcms/pdf/examples/example22_columns.php +++ /dev/null @@ -1,80 +0,0 @@ -mPDF -

Columns

-'; -//============================================================== - -$loremH = "

Lectus facilisis

-

Sed auctor viverra diam. In lacinia lectus.

-

Praesent tincidunt massa in dolor. Morbi viverra leo quis ipsum. In vitae velit. In aliquam nulla nec mi. Sed accumsan, justo id congue fringilla, diam mauris volutpat ligula, sed aliquet elit diam at felis. Quisque et velit sed eros convallis posuere.

-
Nunc tincidunt
-

Nunc diam ipsum, consectetuer nec, hendrerit vitae, malesuada a, ante. Nulla ornare aliquet ante. Maecenas in lectus. Morbi porttitor mauris. Praesent ut.

-

Pede quis ante tincidunt blandit. Maecenas bibendum erat. Curabitur sit amet ante quis velit ultricies facilisis. Ut hendrerit dolor commodo magna. In nec ligula a purus tincidunt adipiscing. Etiam non ante.

Suspendisse potenti. Suspendisse accumsan euismod lectus. Nunc commodo pede et turpis. Pellentesque porta mauris sed lorem. Ut nec augue vitae elit eleifend eleifend.Quisque ornare feugiat diam. Duis nulla metus, tempus sit amet, scelerisque a, rutrum at, nisl. Nulla facilisi. Duis metus turpis, molestie nec, laoreet tincidunt, ultrices et, purus. Nullam faucibus aliquam nisi.

Ut leo. Etiam tempus interdum tortor. Donec porta, arcu vel tincidunt placerat, lacus lorem iaculis diam, id sagittis sapien metus eu nunc. Morbi vitae nunc.
Mauris sapien. Phasellus elementum velit sed sapien. Nullam ante diam, consectetuer commodo, dignissim vitae, tempor vel, magna. Donec dictum. Nullam ultrices leo volutpat magna. Mauris blandit purus nec turpis. Curabitur nunc. Aliquam condimentum eleifend32 lectus. Praesent vitae nibh et libero ullamcorper scelerisque. Nullam auctor. Mauris ipsum nulla, malesuada id, aliquet at, feugiat vitae, eros.

- -
Proin aliquet lorem id felis. Curabitur vel libero at mauris nonummy tincidunt. Donec imperdiet. Vestibulum sem sem, lacinia vel, molestie et, laoreet eget, urna. Curabitur viverra faucibus pede. -
Proin aliquet lorem id felis. Curabitur vel libero at mauris nonummy tincidunt. Donec imperdiet. Vestibulum sem sem, lacinia vel, molestie et, laoreet eget, urna. Curabitur viverra faucibus pede. Morbi lobortis. Donec dapibus. Donec tempus. Ut arcu enim, rhoncus ac, venenatis eu, porttitor mollis, dui. Sed vitae risus. In elementum sem placerat dui. Nam tristique eros in nisl. Nulla cursus sapien non quam porta porttitor. Quisque dictum ipsum ornare tortor. Fusce ornare tempus enim.
- Morbi lobortis. Donec dapibus. Donec tempus. Ut arcu enim, rhoncus ac, venenatis eu, porttitor mollis, dui. Sed vitae risus. In elementum sem placerat dui. Nam tristique eros in nisl. Nulla cursus sapien non quam porta porttitor. Quisque dictum ipsum ornare tortor. Fusce ornare tempus enim.
-

Maecenas arcu justo, malesuada eu, dapibus ac, adipiscing vitae, turpis. Fusce mollis. Aliquam egestas. In purus dolor, facilisis at, fermentum nec, molestie et, metus. Vestibulum feugiat, orci at imperdiet tincidunt, mauris erat facilisis urna, sagittis ultricies dui nisl et lectus. Sed lacinia, lectus vitae dictum sodales, elit ipsum ultrices orci, non euismod arcu diam non metus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. In suscipit turpis vitae odio. Integer convallis dui at metus. Fusce magna. Sed sed lectus vitae enim tempor cursus. Cras eu erat vel libero sodales congue. Sed erat est, interdum nec, elementum eleifend, pretium at, nibh. Praesent massa diam, adipiscing id, mollis sed, posuere et, urna. Quisque ut leo. Aliquam interdum hendrerit tortor. Vestibulum elit. Vestibulum et arcu at diam mattis commodo. Nam ipsum sem, ultricies at, rutrum sit amet, posuere nec, velit. Sed molestie mollis dui.

-"; - - - -//============================================================== -//============================================================== -//============================================================== -include("../mpdf.php"); - -$mpdf=new mPDF('c','A4','','',32,25,27,25,16,13); - -$mpdf->SetDisplayMode('fullpage'); - -$stylesheet = file_get_contents('mpdfstyleA4.css'); -$mpdf->WriteHTML($stylesheet,1); // The parameter 1 tells that this is css/style only and no body/html/text - -// Bullets in columns are probably best not indented -$mpdf->list_indent_first_level = 0; // 1 or 0 - whether to indent the first level of a list - -$mpdf->max_colH_correction = 1.1; - - - $mpdf->WriteHTML($html,2); - $mpdf->WriteHTML($loremH,2); - - // consider reducing lineheight when using columns - especially if vAligned justify - $mpdf->SetDefaultBodyCSS('line-height', 1.2); - - $mpdf->SetColumns(3,'J'); - $mpdf->WriteHTML($loremH,2); - - $mpdf->SetColumns(0); - $mpdf->WriteHTML('
'); - - - $mpdf->SetColumns(2,'J'); - $mpdf->WriteHTML($loremH,2); - $mpdf->WriteHTML('
'); - $mpdf->SetColumns(0); - $mpdf->WriteHTML('
'); - - $mpdf->SetColumns(3,'J'); - $mpdf->WriteHTML($loremH,2); - - $mpdf->SetColumns(0); - $mpdf->WriteHTML('
'); - $mpdf->SetColumns(2,'J'); - $mpdf->WriteHTML($loremH,2); - - - -$mpdf->Output(); -exit; -//============================================================== -//============================================================== -//============================================================== - - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/example23_orientation.php b/public_html/2022/newcms/pdf/examples/example23_orientation.php deleted file mode 100644 index 7049d7e..0000000 --- a/public_html/2022/newcms/pdf/examples/example23_orientation.php +++ /dev/null @@ -1,132 +0,0 @@ -mPDF -

Page Orientation

- -

Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci.

- - -

Sed bibendum. Nunc eleifend ornare velit. Sed consectetuer urna in erat. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Mauris sodales semper metus. Maecenas justo libero, pretium at, malesuada eu, mollis et, arcu. Ut suscipit pede in nulla. Praesent elementum, dolor ac fringilla posuere, elit libero rutrum massa, vel tincidunt dui tellus a ante. Sed aliquet euismod dolor. Vestibulum sed dui. Duis lobortis hendrerit quam. Donec tempus orci ut libero. Pellentesque suscipit malesuada nisi.

-

Praesent pharetra nulla in turpis. Sed ipsum nulla, sodales nec, vulputate in, scelerisque vitae, magna. Sed egestas justo nec ipsum. Nulla facilisi. Praesent sit amet pede quis metus aliquet vulputate. Donec luctus. Cras euismod tellus vel leo. Cras tellus. Fusce aliquet. Curabitur tincidunt viverra ligula. Fusce eget erat. Donec pede. Vestibulum id felis. Phasellus tincidunt ligula non pede. Morbi turpis. In vitae dui non erat placerat malesuada. Mauris adipiscing congue ante. Proin at erat. Aliquam mattis.

-

Integer feugiat venenatis metus. Integer lacinia ultrices ipsum. Proin et arcu. Quisque varius libero. Nullam id arcu. Aenean justo quam, accumsan nec, luctus id, pellentesque molestie, mi. Aliquam sollicitudin feugiat eros. Nunc nisi turpis, consequat id, aliquet et, semper a, augue. Integer nisl ipsum, blandit et, lobortis a, egestas nec, odio. Nulla dolor ligula, nonummy ac, vulputate a, sollicitudin id, orci. Donec laoreet nisl id magna. Curabitur mollis, quam eget fermentum malesuada, risus tortor ullamcorper dolor, nec placerat nisi urna non pede. Aliquam pretium, leo in interdum interdum, ipsum neque accumsan lectus, ac fringilla dui ipsum sed justo. In tincidunt risus convallis odio egestas luctus. Integer volutpat. Donec ultricies, leo in congue iaculis, dolor neque imperdiet nibh, vitae feugiat mi enim nec sapien. Aenean turpis lorem, consequat quis, varius in, posuere vel, eros. Nulla facilisi.

- -
- -'; - -//============================================================== -//============================================================== -//============================================================== - -include("../mpdf.php"); - - -$mpdf=new mPDF('c','A4','','',42,15,67,67,20,15); - -$mpdf->SetDisplayMode('fullpage','two'); - -$mpdf->mirrorMargins = 1; - - -$header = ' - - - - -
Left header p {PAGENO}Right header
-'; -$headerE = ' - - - - -
Outer headerInner header p {PAGENO}
-'; -$longfooter = ' - - - - -
Left footer p {PAGENO}Right footer
-'; -$longfooterE = ' - - - - -
Outer footerInner footer p {PAGENO}
-'; - -$footer = '
{DATE j-m-Y} » {PAGENO} » My document
'; -$footerE = '
Even page footer - {PAGENO} -
'; - -$shortheader = '
{DATE j-m-Y} » {PAGENO} » My document
'; -$shortheaderE = '
Even page header - {PAGENO} -
'; - - -$mpdf->SetHTMLHeader($header); -$mpdf->SetHTMLHeader($headerE,'E'); -$mpdf->setFooter('{PAGENO} of {nbpg} pages||{PAGENO} of {nbpg} pages') ; - - -$mpdf->WriteHTML($html); - - -$mpdf->setHeader(); // Clear headers before adding page -$mpdf->AddPage('L','','','','',25,25,55,45,18,12); - -$mpdf->SetHTMLHeader($shortheader,'',true); // New parameter in v1.4 to add the header to the new page -$mpdf->SetHTMLHeader($shortheaderE,'E',true); -$mpdf->SetHTMLFooter($longfooter); -$mpdf->SetHTMLFooter($longfooterE,'E'); - - -$mpdf->WriteHTML($html); -$mpdf->WriteHTML($html); -$mpdf->WriteHTML($html); - - - -$mpdf->setHeader('{PAGENO} of {nbpg} pages||{PAGENO} of {nbpg} pages') ; -$mpdf->SetHTMLFooter($footer); -$mpdf->SetHTMLFooter($footerE,'E'); - - -$mpdf->WriteHTML($html); -$mpdf->WriteHTML($html); - - -$mpdf->setHeader(); // Clear headers before adding page -$mpdf->AddPage('','','','','',42,15,67,67,20,15); // Default is Portrait (because that was the document default) - - -$mpdf->SetHTMLHeader($shortheader,'',true); // New parameter in v1.4 to add the header to the new page -$mpdf->SetHTMLHeader($shortheaderE,'E',true); -$mpdf->SetHTMLFooter($longfooter); -$mpdf->SetHTMLFooter($longfooterE,'E'); - - -$mpdf->WriteHTML($html); -$mpdf->WriteHTML($html); - - -$mpdf->SetHTMLHeader($header); -$mpdf->SetHTMLHeader($headerE,'E'); -$mpdf->SetHTMLFooter($footer); -$mpdf->SetHTMLFooter($footerE,'E'); - - -$mpdf->WriteHTML($html); -$mpdf->WriteHTML($html); - - -$mpdf->Output('mpdf.pdf','I'); -exit; -//============================================================== -//============================================================== -//============================================================== - - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/example24_orientation_2.php b/public_html/2022/newcms/pdf/examples/example24_orientation_2.php deleted file mode 100644 index 1cbbfda..0000000 --- a/public_html/2022/newcms/pdf/examples/example24_orientation_2.php +++ /dev/null @@ -1,200 +0,0 @@ -mPDF -

Page Orientation

- -

Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci.

- - -

Sed bibendum. Nunc eleifend ornare velit. Sed consectetuer urna in erat. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Mauris sodales semper metus. Maecenas justo libero, pretium at, malesuada eu, mollis et, arcu. Ut suscipit pede in nulla. Praesent elementum, dolor ac fringilla posuere, elit libero rutrum massa, vel tincidunt dui tellus a ante. Sed aliquet euismod dolor. Vestibulum sed dui. Duis lobortis hendrerit quam. Donec tempus orci ut libero. Pellentesque suscipit malesuada nisi.

-

Praesent pharetra nulla in turpis. Sed ipsum nulla, sodales nec, vulputate in, scelerisque vitae, magna. Sed egestas justo nec ipsum. Nulla facilisi. Praesent sit amet pede quis metus aliquet vulputate. Donec luctus. Cras euismod tellus vel leo. Cras tellus. Fusce aliquet. Curabitur tincidunt viverra ligula. Fusce eget erat. Donec pede. Vestibulum id felis. Phasellus tincidunt ligula non pede. Morbi turpis. In vitae dui non erat placerat malesuada. Mauris adipiscing congue ante. Proin at erat. Aliquam mattis.

-

Integer feugiat venenatis metus. Integer lacinia ultrices ipsum. Proin et arcu. Quisque varius libero. Nullam id arcu. Aenean justo quam, accumsan nec, luctus id, pellentesque molestie, mi. Aliquam sollicitudin feugiat eros. Nunc nisi turpis, consequat id, aliquet et, semper a, augue. Integer nisl ipsum, blandit et, lobortis a, egestas nec, odio. Nulla dolor ligula, nonummy ac, vulputate a, sollicitudin id, orci. Donec laoreet nisl id magna. Curabitur mollis, quam eget fermentum malesuada, risus tortor ullamcorper dolor, nec placerat nisi urna non pede. Aliquam pretium, leo in interdum interdum, ipsum neque accumsan lectus, ac fringilla dui ipsum sed justo. In tincidunt risus convallis odio egestas luctus. Integer volutpat. Donec ultricies, leo in congue iaculis, dolor neque imperdiet nibh, vitae feugiat mi enim nec sapien. Aenean turpis lorem, consequat quis, varius in, posuere vel, eros. Nulla facilisi.

-

Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci.

- - -'; - -$htmlL = ' -
Table in Landscape
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TypeDetailsNotes
CausesNulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit.
-Ut a eros at ligula vehicula pretium; maecenas feugiat pede vel risus.
-Suspendisse potenti. Fusce eleifend neque sit amet erat.
-Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus.
MechanismsFusce eleifend neque sit amet erat.
-Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien.
Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla.
-Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus.
CausesNulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit.
-Ut a eros at ligula vehicula pretium; maecenas feugiat pede vel risus.
-Suspendisse potenti. Fusce eleifend neque sit amet erat.
-Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus.
MechanismsFusce eleifend neque sit amet erat.
-Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien.
Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla.
-Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus.
CausesNulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit.
-Ut a eros at ligula vehicula pretium; maecenas feugiat pede vel risus.
-Suspendisse potenti. Fusce eleifend neque sit amet erat.
-Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus.
MechanismsFusce eleifend neque sit amet erat.
-Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien.
Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla.
-Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus.
CausesNulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit.
-Ut a eros at ligula vehicula pretium; maecenas feugiat pede vel risus.
-Suspendisse potenti. Fusce eleifend neque sit amet erat.
-Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus.
MechanismsFusce eleifend neque sit amet erat.
-Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien.
Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla.
-Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus.
CausesNulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit.
-Ut a eros at ligula vehicula pretium; maecenas feugiat pede vel risus.
-Suspendisse potenti. Fusce eleifend neque sit amet erat.
-Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus.
MechanismsFusce eleifend neque sit amet erat.
-Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien.
Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla.
-Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus.
-'; - -//============================================================== - -$loremH = "

Lectus facilisis

-

Sed auctor viverra diam. In lacinia lectus.

-

Praesent tincidunt massa in dolor. Morbi viverra leo quis ipsum. In vitae velit. In aliquam nulla nec mi. Sed accumsan, justo id congue fringilla, diam mauris volutpat ligula, sed aliquet elit diam at felis. Quisque et velit sed eros convallis posuere.

-
Nunc tincidunt
-

Nunc diam ipsum, consectetuer nec, hendrerit vitae, malesuada a, ante. Nulla ornare aliquet ante. Maecenas in lectus. Morbi porttitor mauris. Praesent ut.

-

Pede quis ante tincidunt blandit. Maecenas bibendum erat. Curabitur sit amet ante quis velit ultricies facilisis. Ut hendrerit dolor commodo magna. In nec ligula a purus tincidunt adipiscing. Etiam non ante.

Suspendisse potenti. Suspendisse accumsan euismod lectus. Nunc commodo pede et turpis. Pellentesque porta mauris sed lorem. Ut nec augue vitae elit eleifend eleifend. Quisque ornare feugiat diam. Duis nulla metus, tempus sit amet, scelerisque a, rutrum at, nisl. Nulla facilisi. Duis metus turpis, molestie nec, laoreet tincidunt, ultrices et, purus. Nullam faucibus aliquam nisi.

Ut leo. Etiam tempus interdum tortor. Donec porta, arcu vel tincidunt placerat, lacus lorem iaculis diam, id sagittis sapien metus eu nunc. Morbi vitae nunc.
Mauris sapien. Phasellus elementum velit sed sapien. Nullam ante diam, consectetuer commodo, dignissim vitae, tempor vel, magna. Donec dictum. Nullam ultrices leo volutpat magna. Mauris blandit purus nec turpis. Curabitur nunc. Aliquam condimentum eleifend32 lectus. Praesent vitae nibh et libero ullamcorper scelerisque. Nullam auctor. Mauris ipsum nulla, malesuada id, aliquet at, feugiat vitae, eros.

- -
Proin aliquet lorem id felis. Curabitur vel libero at mauris nonummy tincidunt. Donec imperdiet. Vestibulum sem sem, lacinia vel, molestie et, laoreet eget, urna. Curabitur viverra faucibus pede. Morbi lobortis. Donec dapibus. Donec tempus. Ut arcu enim, rhoncus ac, venenatis eu, porttitor mollis, dui. Sed vitae risus. In elementum sem placerat dui. Nam tristique eros in nisl. Nulla cursus sapien non quam porta porttitor. Quisque dictum ipsum ornare tortor. Fusce ornare tempus enim.

Maecenas arcu justo, malesuada eu, dapibus ac, adipiscing vitae, turpis. Fusce mollis. Aliquam egestas. In purus dolor, facilisis at, fermentum nec, molestie et, metus. Vestibulum feugiat, orci at imperdiet tincidunt, mauris erat facilisis urna, sagittis ultricies dui nisl et lectus. Sed lacinia, lectus vitae dictum sodales, elit ipsum ultrices orci, non euismod arcu diam non metus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. In suscipit turpis vitae odio. Integer convallis dui at metus. Fusce magna. Sed sed lectus vitae enim tempor cursus. Cras eu erat vel libero sodales congue. Sed erat est, interdum nec, elementum eleifend, pretium at, nibh. Praesent massa diam, adipiscing id, mollis sed, posuere et, urna. Quisque ut leo. Aliquam interdum hendrerit tortor. Vestibulum elit. Vestibulum et arcu at diam mattis commodo. Nam ipsum sem, ultricies at, rutrum sit amet, posuere nec, velit. Sed molestie mollis dui.

-"; - -//============================================================== -$header = ' - - - - -
Left header p {PAGENO}Right header
-'; -$headerE = ' - - - - -
Outer headerInner header p {PAGENO}
-'; -$header = '
{DATE j-m-Y} » {PAGENO} » My document
My document
See documentation manual
My document
'; -$headerE = '
Even page footer - {PAGENO} -
My document
My document
My document
'; -$footer = '
{DATE j-m-Y} » {PAGENO} » My document
My document
See documentation manual
My document
'; -$footerE = '
Even page footer - {PAGENO} -
My document
My document
My document
'; - -//============================================================== -//============================================================== -//============================================================== - -include("../mpdf.php"); - - -$mpdf=new mPDF('c','A4','','',42,15,57,57,20,17); - -$mpdf->displayDefaultOrientation = true; - -$mpdf->forcePortraitHeaders = true; -$mpdf->forcePortraitMargins = true; - -$mpdf->SetDisplayMode('fullpage','two'); - -$mpdf->mirrorMargins = 1; - -$stylesheet = file_get_contents('mpdfstyletables.css'); -$mpdf->WriteHTML($stylesheet,1); - -$mpdf->SetHTMLHeader($header); -$mpdf->SetHTMLHeader($headerE,'E'); -$mpdf->SetHTMLFooter($footer); -$mpdf->SetHTMLFooter($footerE,'E'); - -$mpdf->WriteHTML($html); - -$mpdf->AddPage('L'); - -$mpdf->WriteHTML($htmlL); -$mpdf->WriteHTML($htmlL); - -// Columns -$mpdf->AddPage('L'); -$mpdf->SetColumns(3,'J'); -$mpdf->WriteHTML($loremH); - -$mpdf->SetColumns(0); -$mpdf->WriteHTML('
'); - - -$mpdf->SetColumns(2,'J'); -$mpdf->WriteHTML($loremH); -$mpdf->WriteHTML('
'); -$mpdf->SetColumns(0); - -$mpdf->AddPage('L'); - -$mpdf->WriteHTML($htmlL); -$mpdf->WriteHTML($htmlL); - -$mpdf->AddPage(); - -$mpdf->WriteHTML($html); -$mpdf->WriteHTML($html); - -$mpdf->WriteHTML($html); - -$mpdf->Output(); -exit; -//============================================================== -//============================================================== -//============================================================== - - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/example26_RTL.php b/public_html/2022/newcms/pdf/examples/example26_RTL.php deleted file mode 100644 index 6310240..0000000 --- a/public_html/2022/newcms/pdf/examples/example26_RTL.php +++ /dev/null @@ -1,316 +0,0 @@ -mPDF -

RTL Languages

- -

English

-

Please note that I do not understand any of the scripts below. The texts are borrowed from News websites, and I have used words and bits of phrases just to demonstrate the program.

- -

Hebrew (pangram)

-

\xd7\x93\xd7\x92 \xd7\xa1\xd7\xa7\xd7\xa8\xd7\x9f \xd7\xa9\xd7\x98 \xd7\x91\xd7\x99\xd7\x9d \xd7\x9e\xd7\x90\xd7\x95\xd7\x9b\xd7\x96\xd7\x91 \xd7\x95\xd7\x9c\xd7\xa4\xd7\xaa\xd7\xa2 \xd7\x9e\xd7\xa6\xd7\x90 \xd7\x97\xd7\x91\xd7\xa8\xd7\x94

- -

\xd7\x90\xd7\x95 \xd7\x94\xd7\xa0\xd7\xa1\xd7\x94 \xd7\x90\xd7\x9c\xd7\x94\xd7\x99\xd7\x9d, \xd7\x9c\xd7\x91\xd7\x95\xd7\x90 \xd7\x9c\xd7\xa7\xd7\x97\xd7\xaa \xd7\x9c\xd7\x95 \xd7\x92\xd7\x95\xd7\x99 \xd7\x9e\xd7\xa7\xd7\xa8\xd7\x91 \xd7\x92\xd7\x95\xd7\x99, \xd7\x91\xd7\x9e\xd7\xa1\xd7\xaa \xd7\x91\xd7\x90\xd7\xaa\xd7\xaa \xd7\x95\xd7\x91\xd7\x9e\xd7\x95\xd7\xa4\xd7\xaa\xd7\x99\xd7\x9d \xd7\x95\xd7\x91\xd7\x9e\xd7\x9c\xd7\x97\xd7\x9e\xd7\x94 \xd7\x95\xd7\x91\xd7\x99\xd7\x93 \xd7\x97\xd7\x96\xd7\xa7\xd7\x94 \xd7\x95\xd7\x91\xd7\x96\xd7\xa8\xd7\x95\xd7\xa2 \xd7\xa0\xd7\x98\xd7\x95\xd7\x99\xd7\x94, \xd7\x95\xd7\x91\xd7\x9e\xd7\x95\xd7\xa8\xd7\x90\xd7\x99\xd7\x9d \xd7\x92\xd7\x93\xd7\x9c\xd7\x99\xd7\x9d: \xd7\x9b\xd7\x9b\xd7\x9c \xd7\x90\xd7\xa9\xd7\xa8-\xd7\xa2\xd7\xa9\xd7\x94 \xd7\x9c\xd7\x9b\xd7\x9d \xd7\x99\xd7\x94\xd7\x95\xd7\x94 \xd7\x90\xd7\x9c\xd7\x94\xd7\x99\xd7\x9b\xd7\x9d, \xd7\x91\xd7\x9e\xd7\xa6\xd7\xa8\xd7\x99\xd7\x9d--\xd7\x9c\xd7\xa2\xd7\x99\xd7\xa0\xd7\x99\xd7\x9a

- -

\xd7\x9c\xd7\x9b\xd7\x9f \xd7\x97\xd7\x9b\xd7\x95 \xd7\x9c\xd7\x99 \xd7\xa0\xd7\x90\xd7\x9d \xd7\x99\xd7\x94\xd7\x95\xd7\x94 \xd7\x9c\xd7\x99\xd7\x95\xd7\x9d \xd7\xa7\xd7\x95\xd7\x9e\xd7\x99 \xd7\x9c\xd7\xa2\xd7\x93, \xd7\x9b\xd7\x99 \xd7\x9e\xd7\xa9\xd7\xa4\xd7\x98\xd7\x99 \xd7\x9c\xd7\x90\xd7\xa1\xd7\xa3 \xd7\x92\xd7\x95\xd7\x99\xd7\x9d \xd7\x9c\xd7\xa7\xd7\x91\xd7\xa6\xd7\x99 \xd7\x9e\xd7\x9e\xd7\x9c\xd7\x9b\xd7\x95\xd7\xaa, \xd7\x9c\xd7\xa9\xd7\xa4\xd7\x9a \xd7\xa2\xd7\x9c\xd7\x99\xd7\x94\xd7\x9d \xd7\x96\xd7\xa2\xd7\x9e\xd7\x99 \xd7\x9b\xd7\x9c \xd7\x97\xd7\xa8\xd7\x95\xd7\x9f \xd7\x90\xd7\xa4\xd7\x99, \xd7\x9b\xd7\x99 \xd7\x91\xd7\x90\xd7\xa9 \xd7\xa7\xd7\xa0\xd7\x90\xd7\xaa\xd7\x99 \xd7\xaa\xd7\x90\xd7\x9b\xd7\x9c \xd7\x9b\xd7\x9c \xd7\x94\xd7\x90\xd7\xa8\xd7\xa5

- -

\xd7\xa9\xd7\xa4\xd7\x9f \xd7\x90\xd7\x9b\xd7\x9c \xd7\xa7\xd7\xa6\xd7\xaa \xd7\x92\xd7\x96\xd7\xa8 \xd7\x91\xd7\x98\xd7\xa2\xd7\x9d \xd7\x97\xd7\xa1\xd7\x94, \xd7\x95\xd7\x93\xd7\x99.

- - - - - -

Arabic

-

\xd8\xa7\xd9\x84\xd8\xa7\xd9\x85\xd8\xb1\xd9\x8a\xd9\x83\xd9\x8a \xd8\xac\xd9\x88\xd8\xb1\xd8\xac \xd8\xa8\xd9\x88\xd8\xb4 \xd9\x81\xd9\x8a \xd8\xad\xd8\xaf\xd9\x8a\xd8\xab \xd9\x85\xd8\xaa\xd9\x84\xd9\x81\xd8\xb2 - \xd9\x81\xd9\x8a \xd8\xa7\xd9\x84\xd8\xb0\xd9\x83\xd8\xb1\xd9\x89 \xd8\xa7\xd9\x84\xd8\xb1\xd8\xa7\xd8\xa8\xd8\xb9\xd8\xa9 \xd9\x84\xd9\x84\xd8\xba\xd8\xb2\xd9\x88 \xd8\xa7\xd9\x84\xd8\xa7\xd9\x85\xd8\xb1\xd9\x8a\xd9\x83\xd9\x8a \xd9\x84\xd9\x84\xd8\xb9\xd8\xb1\xd8\xa7\xd9\x82 \xd8\xa7\xd9\x86 \xd8\xa7\xd9\x84\xd8\xa7\xd9\x88\xd9\x84\xd9\x88\xd9\x8a\xd8\xa9 \xd8\xad\xd8\xa7\xd9\x84\xd9\x8a\xd8\xa7 \xd9\x84\xd8\xa7\xd8\xb9\xd8\xa7\xd8\xaf\xd8\xa9 \xd8\xa7\xd9\x84\xd8\xa7\xd9\x85\xd9\x86 \xd9\x84\xd9\x84\xd8\xb9\xd8\xb1\xd8\xa7\xd9\x82.

- -

\xd9\x87\xd9\x84 \xd8\xb3\xd8\xaa\xd8\xb3\xd9\x81\xd8\xb1 \xd8\xa7\xd9\x84\xd8\xac\xd9\x87\xd9\x88\xd8\xaf \xd8\xa7\xd9\x84\xd8\xaf\xd8\xa8\xd9\x84\xd9\x88\xd9\x85\xd8\xa7\xd8\xb3\xd9\x8a\xd8\xa9 \xd8\xa7\xd9\x84\xd8\xac\xd8\xa7\xd8\xb1\xd9\x8a\xd8\xa9 \xd8\xb9\xd9\x86 \xd8\xad\xd9\x84\xd9\x88\xd9\x84\xd8\x9f \xd9\x88\xd9\x83\xd9\x8a\xd9\x81 \xd8\xaa\xd9\x86\xd8\xb8\xd8\xb1 \xd9\x84\xd9\x84\xd8\xa7\xd8\xaa\xd9\x87\xd8\xa7\xd9\x85\xd8\xa7\xd8\xaa \xd9\x84\xd8\xa8\xd8\xb9\xd8\xb6 \xd9\x87\xd8\xb0\xd9\x87 \xd8\xa7\xd9\x84\xd8\xaf\xd9\x88\xd9\x84 \xd8\xa8\xd8\xa7\xd9\x84\xd8\xaa\xd8\xaf\xd8\xae\xd9\x84 \xd9\x81\xd9\x8a \xd8\xa7\xd9\x84\xd8\xb4\xd8\xa3\xd9\x86 \xd8\xa7\xd9\x84\xd8\xb9\xd8\xb1\xd8\xa7\xd9\x82\xd9\x8a\xd8\x8c \xd9\x88\xd8\xa7\xd9\x84\xd8\xaa\xd9\x88\xd8\xb1\xd8\xb7 \xd9\x81\xd9\x8a \xd8\xaf\xd8\xb9\xd9\x85 \xd8\xb9\xd9\x85\xd9\x84\xd9\x8a\xd8\xa7\xd8\xaa \xd8\xa7\xd9\x84\xd8\xb9\xd9\x86\xd9\x81\xd8\x9f \xd9\x88\xd8\xa7\xd9\x84\xd9\x89 \xd8\xa7\xd9\x8a \xd9\x85\xd8\xaf\xd9\x89 \xd9\x8a\xd8\xa8\xd8\xaf\xd9\x88 \xd8\xa7\xd9\x84\xd9\x88\xd8\xb6\xd8\xb9 \xd9\x81\xd9\x8a \xd8\xa7\xd9\x84\xd8\xb9\xd8\xb1\xd8\xa7\xd9\x82 \xd8\xa7\xd9\x86\xd8\xb9\xd9\x83\xd8\xa7\xd8\xb3\xd8\xa7 \xd9\x84\xd9\x84\xd8\xb5\xd8\xb1\xd8\xa7\xd8\xb9\xd8\xa7\xd8\xaa \xd8\xa7\xd9\x84\xd8\xa5\xd9\x82\xd9\x84\xd9\x8a\xd9\x85\xd9\x8a\xd8\xa9 \xd9\x81\xd9\x8a \xd8\xa7\xd9\x84\xd9\x85\xd9\x86\xd8\xb7\xd9\x82\xd8\xa9\xd8\x9f

- -

\xd9\x88\xd8\xa7\xd8\xaf\xd8\xa7\xd9\x86 \xd8\xa7\xd9\x84\xd8\xa8\xd9\x8a\xd8\xaa \xd8\xa7\xd9\x84\xd8\xa7\xd8\xa8\xd9\x8a\xd8\xb6 "\xd8\xa8\xd8\xb4\xd8\xaf\xd8\xa9" \xd8\xaa\xd9\x81\xd8\xac\xd9\x8a\xd8\xb1 \xd8\xa7\xd9\x8a\xd9\x84\xd8\xa7\xd8\xaa \xd9\x81\xd9\x8a\xd9\x85\xd8\xa7 \xd8\xa7\xd8\xb9\xd8\xb1\xd8\xa8\xd8\xaa \xd9\x88\xd8\xb2\xd8\xa7\xd8\xb1\xd8\xa9 \xd8\xa7\xd9\x84\xd8\xae\xd8\xa7\xd8\xb1\xd8\xac\xd9\x8a\xd8\xa9 \xd8\xa7\xd9\x84\xd8\xb1\xd9\x88\xd8\xb3\xd9\x8a\xd8\xa9 \xd8\xb9\xd9\x86 "\xd8\xa7\xd8\xaf\xd8\xa7\xd9\x86\xd8\xaa\xd9\x87\xd8\xa7 \xd8\xa7\xd9\x84\xd8\xb4\xd8\xaf\xd9\x8a\xd8\xaf\xd8\xa9" \xd9\x84\xd9\x84\xd8\xad\xd8\xa7\xd8\xaf\xd8\xab" \xd9\x88\xd8\xa7\xd8\xb5\xd9\x81\xd8\xa9 \xd8\xa7\xd9\x8a\xd8\xa7\xd9\x87 \xd8\xa8\xd9\x80"\xd8\xa7\xd9\x84\xd9\x85\xd8\xaa\xd8\xb7\xd8\xb1\xd9\x81" \xd8\xa7\xd9\x84\xd8\xb0\xd9\x8a \xd8\xa7\xd8\xb3\xd8\xaa\xd9\x87\xd8\xaf\xd9\x81 "\xd9\x85\xd8\xaf\xd9\x86\xd9\x8a\xd9\x8a\xd9\x86 \xd9\x85\xd8\xb3\xd8\xa7\xd9\x84\xd9\x85\xd9\x8a\xd9\x86".

- -

\xd9\x88\xd8\xa7\xd8\xb6\xd8\xa7\xd9\x81\xd8\xaa \xd9\x88\xd8\xb2\xd8\xa7\xd8\xb1\xd8\xa9 \xd8\xa7\xd9\x84\xd8\xae\xd8\xa7\xd8\xb1\xd8\xac\xd9\x8a\xd8\xa9 \xd8\xa7\xd9\x84\xd8\xb1\xd9\x88\xd8\xb3\xd9\x8a\xd8\xa9 \xd9\x81\xd9\x8a \xd8\xa8\xd9\x8a\xd8\xa7\xd9\x86\xd9\x87\xd8\xa7: "\xd9\x85\xd9\x86 \xd8\xa7\xd9\x84\xd9\x85\xd8\xa4\xd8\xb3\xd9\x81 \xd8\xa7\xd9\x86 \xd9\x8a\xd8\xa3\xd8\xaa\xd9\x8a \xd9\x87\xd8\xb0\xd8\xa7 \xd8\xa7\xd9\x84\xd8\xad\xd8\xa7\xd8\xaf\xd8\xab \xd8\xa8\xd9\x8a\xd9\x86\xd9\x85\xd8\xa7 \xd8\xaa\xd8\xa8\xd8\xb0\xd9\x84 \xd8\xa7\xd9\x84\xd8\xac\xd9\x87\xd9\x88\xd8\xaf \xd9\x84\xd8\xaa\xd8\xae\xd8\xb7\xd9\x8a \xd8\xa7\xd9\x84\xd8\xa7\xd8\xb2\xd9\x85\xd8\xa9 \xd8\xa7\xd9\x84\xd9\x81\xd9\x84\xd8\xb3\xd8\xb7\xd9\x8a\xd9\x86\xd9\x8a\xd8\xa9 \xd8\xa7\xd9\x84\xd8\xaf\xd8\xa7\xd8\xae\xd9\x84\xd9\x8a\xd8\xa9".

- -

\xd9\x88\xd8\xaf\xd8\xb9\xd8\xaa \xd9\x85\xd9\x88\xd8\xb3\xd9\x83\xd9\x88 \xd8\xa7\xd9\x84\xd8\xb3\xd9\x84\xd8\xb7\xd8\xa7\xd8\xaa \xd8\xa7\xd9\x84\xd9\x81\xd9\x84\xd8\xb3\xd8\xb7\xd9\x8a\xd9\x86\xd9\x8a\xd8\xa9 \xd8\xa7\xd9\x84\xd9\x89 "\xd8\xa8\xd8\xb0\xd9\x84 \xd9\x83\xd9\x84 \xd9\x85\xd8\xa7 \xd9\x8a\xd9\x85\xd9\x83\xd9\x86 \xd9\x85\xd9\x86 \xd8\xa7\xd8\xac\xd9\x84 \xd8\xa7\xd8\xad\xd8\xaa\xd9\x88\xd8\xa7\xd8\xa1 \xd9\x85\xd8\xb8\xd8\xa7\xd9\x87\xd8\xb1 \xd8\xa7\xd9\x84\xd8\xaa\xd8\xb7\xd8\xb1\xd9\x81 \xd8\xa7\xd9\x84\xd8\xaa\xd9\x8a \xd9\x84\xd8\xa7 \xd9\x85\xd8\xa8\xd8\xb1\xd8\xb1 \xd9\x84\xd9\x87\xd8\xa7 \xd9\x88\xd8\xa7\xd9\x84\xd8\xaa\xd9\x8a \xd9\x84\xd8\xa7 \xd8\xaa\xd9\x81\xd9\x8a\xd8\xaf \xd9\x85\xd8\xb5\xd8\xa7\xd9\x84\xd8\xad \xd8\xa7\xd9\x84\xd8\xb4\xd8\xb9\xd8\xa8 \xd8\xa7\xd9\x84\xd9\x81\xd9\x84\xd8\xb3\xd8\xb7\xd9\x8a\xd9\x86\xd9\x8a \xd8\xb9\xd9\x84\xd9\x89 \xd8\xa7\xd9\x84\xd8\xa7\xd9\x85\xd8\xaf \xd8\xa7\xd9\x84\xd8\xb7\xd9\x88\xd9\x8a\xd9\x84".

- -

\xd9\x88\xd8\xaf\xd8\xb9\xd8\xaa \xd9\x85\xd9\x88\xd8\xb3\xd9\x83\xd9\x88 \xd8\xa7\xd9\x84\xd8\xb3\xd9\x84\xd8\xb7\xd8\xa7\xd8\xaa \xd8\xa7\xd9\x84\xd9\x81\xd9\x84\xd8\xb3\xd8\xb7\xd9\x8a\xd9\x86\xd9\x8a\xd8\xa9 \xd8\xa7\xd9\x84\xd9\x89 "\xd8\xa8\xd8\xb0\xd9\x84 \xd9\x83\xd9\x84 \xd9\x85\xd8\xa7 \xd9\x88\xd8\xaf\xd8\xb9\xd8\xaa \xd9\x85\xd9\x88\xd8\xb3\xd9\x83\xd9\x88 \xd8\xa7\xd9\x84\xd8\xb3\xd9\x84\xd8\xb7\xd8\xa7\xd8\xaa \xd8\xa7\xd9\x84\xd9\x81\xd9\x84\xd8\xb3\xd8\xb7\xd9\x8a\xd9\x86\xd9\x8a\xd8\xa9 \xd8\xa7\xd9\x84\xd9\x89 "\xd8\xa8\xd8\xb0\xd9\x84 \xd9\x83\xd9\x84

-\xd9\x88\xd8\xaf\xd8\xb9\xd8\xaa \xd9\x85\xd9\x88\xd8\xb3\xd9\x83\xd9\x88 \xd8\xa7\xd9\x84\xd8\xb3\xd9\x84\xd8\xb7\xd8\xa7\xd8\xaa \xd8\xa7\xd9\x84\xd9\x81\xd9\x84\xd8\xb3\xd8\xb7\xd9\x8a\xd9\x86\xd9\x8a\xd8\xa9 \xd8\xa7\xd9\x84\xd9\x89 \xd9\x88\xd8\xaf\xd8\xb9\xd8\xaa \xd9\x85\xd9\x88\xd8\xb3\xd9\x83\xd9\x88 \xd8\xa7\xd9\x84\xd8\xb3\xd9\x84\xd8\xb7\xd8\xa7\xd8\xaa \xd8\xa7\xd9\x84\xd9\x81\xd9\x84\xd8\xb3\xd8\xb7\xd9\x8a\xd9\x86\xd9\x8a\xd8\xa9 \xd8\xa7\xd9\x84\xd9\x89 "\xd8\xa8\xd8\xb0\xd9\x84 \xd9\x83\xd9\x84 \xd9\x85\xd8\xa7 \xd9\x8a\xd9\x85\xd9\x83\xd9\x86 \xd9\x85\xd9\x86 \xd8\xa7\xd8\xac\xd9\x84

- - -

\xd9\x83\xd9\x85\xd8\xa7 \xd8\xa7\xd8\xaf\xd8\xa7\xd9\x86 \xd8\xa7\xd9\x84\xd9\x81\xd8\xa7\xd8\xb1\xd9\x88 \xd8\xaf\xd9\x8a \xd8\xb3\xd9\x88\xd8\xaa\xd9\x88 \xd9\x85\xd8\xa8\xd8\xb9\xd9\x88\xd8\xab \xd8\xa7\xd9\x84\xd8\xa7\xd9\x85\xd9\x85 \xd8\xa7\xd9\x84\xd9\x85\xd8\xaa\xd8\xad\xd8\xaf\xd8\xa9 \xd8\xa7\xd9\x84\xd8\xae\xd8\xa7\xd8\xb5 \xd8\xa7\xd9\x84\xd9\x89 \xd8\xa7\xd9\x84\xd8\xb4\xd8\xb1\xd9\x82 \xd8\xa7\xd9\x84\xd8\xa7\xd9\x88\xd8\xb3\xd8\xb7 \xd8\xa7\xd9\x84\xd8\xb9\xd9\x85\xd9\x84\xd9\x8a\xd8\xa9 \xd9\x88\xd9\x82\xd8\xa7\xd9\x84 "\xd8\xa7\xd9\x86\xd9\x87 \xd9\x83\xd8\xa7\xd9\x86 \xd9\x87\xd8\xac\xd9\x88\xd9\x85\xd8\xa7 \xd8\xb9\xd9\x84\xd9\x89 \xd8\xa7\xd8\xb4\xd8\xae\xd8\xa7\xd8\xb5 \xd8\xb9\xd8\xa7\xd8\xaf\xd9\x8a\xd9\x8a\xd9\x86 \xd9\x83\xd8\xa7\xd9\x86\xd9\x88\xd8\xa7 \xd9\x8a\xd9\x82\xd9\x88\xd9\x85\xd9\x88\xd9\x86 \xd8\xa8\xd9\x86\xd8\xb4\xd8\xa7\xd8\xb7\xd9\x87\xd9\x85 \xd8\xa7\xd9\x84\xd9\x8a\xd9\x88\xd9\x85\xd9\x8a \xd9\x88\xd9\x87\xd8\xb0\xd8\xa7 \xd8\xa7\xd9\x85\xd8\xb1 \xd9\x84\xd8\xa7 \xd9\x8a\xd9\x85\xd9\x83\xd9\x86 \xd8\xaa\xd8\xa8\xd8\xb1\xd9\x8a\xd8\xb1\xd9\x87".

- -

Farsi / Persian (fa)

-

\xd9\x85\xd8\xad\xd9\x85\xd8\xaf \xd8\xa7\xd9\x84\xd8\xa8\xd8\xb1\xd8\xa7\xd8\xaf\xd8\xb9\xdb\x8c \xd8\xb1\xd8\xa6\xd9\x8a\xd8\xb3 \xd8\xa2\xda\x98\xd8\xa7\xd9\x86\xd8\xb3 \xd8\xa8\xd9\x8a\xd9\x86 \xd8\xa7\xd9\x84\xd9\x85\xd9\x84\xd9\x84\xdb\x8c \xd8\xa7\xd9\x86\xd8\xb1\xda\x98\xdb\x8c \xd8\xa7\xd8\xaa\xd9\x85\xdb\x8c \xd9\xbe\xd9\x8a\xd8\xb4\xd9\x86\xd9\x87\xd8\xa7\xd8\xaf \xda\xa9\xd8\xb1\xd8\xaf\xd9\x87 \xd8\xa7\xd8\xb3\xd8\xaa \xd8\xaa\xd9\x87\xd8\xb1\xd8\xa7\xd9\x86 \xd8\xa8\xd8\xb1\xd9\x86\xd8\xa7\xd9\x85\xd9\x87 \xd8\xac\xd9\x86\xd8\xac\xd8\xa7\xd9\x84\xdb\x8c \xd8\xba\xd9\x86\xdb\x8c \xd8\xb3\xd8\xa7\xd8\xb2\xdb\x8c \xd8\xa7\xd9\x88\xd8\xb1\xd8\xa7\xd9\x86\xd9\x8a\xd9\x88\xd9\x85 \xd8\xb1\xd8\xa7 \xd9\x85\xd8\xaa\xd9\x88\xd9\x82\xd9\x81 \xda\xa9\xd9\x86\xd8\xaf \xd9\x88 \xd8\xba\xd8\xb1\xd8\xa8 \xd9\x86\xd9\x8a\xd8\xb2 \xd8\xa7\xd8\xac\xd8\xb1\xd8\xa7\xdb\x8c \xd8\xaa\xd8\xad\xd8\xb1\xd9\x8a\xd9\x85 \xd9\x87\xd8\xa7\xdb\x8c \xd8\xaa\xd9\x86\xd8\xa8\xd9\x8a\xd9\x87\xdb\x8c \xd9\x85\xd9\x88\xd8\xb1\xd8\xaf \xd8\xaa\xd8\xa7\xd8\xa6\xd9\x8a\xd8\xaf \xd8\xb3\xd8\xa7\xd8\xb2\xd9\x85\xd8\xa7\xd9\x86 \xd9\x85\xd9\x84\xd9\x84 \xd9\x85\xd8\xaa\xd8\xad\xd8\xaf \xd8\xb1\xd8\xa7 \xd8\xa8\xd9\x87 \xd8\xaa\xd8\xb9\xd9\x88\xd9\x8a\xd9\x82 \xd8\xa8\xd9\x8a\xd8\xa7\xd9\x86\xd8\xaf\xd8\xa7\xd8\xb2\xd8\xaf.

- -

\xd8\xac\xd9\x88\xd8\xb1\xd8\xac \xd8\xa8\xd9\x88\xd8\xb4\xd8\x8c \xd8\xaf\xd8\xb1 \xda\x86\xd9\x87\xd8\xa7\xd8\xb1\xd9\x85\xdb\x8c\xd9\x86 \xd8\xb3\xd8\xa7\xd9\x84\xda\xaf\xd8\xb1\xd8\xaf \xd8\xa7\xd8\xb4\xd8\xba\xd8\xa7\xd9\x84 \xd8\xb9\xd8\xb1\xd8\xa7\xd9\x82 \xd9\x85\xdb\x8c \xda\xaf\xd9\x88\xdb\x8c\xd8\xaf \xd8\xa7\xd8\xb3\xd8\xaa\xd8\xb1\xd8\xa7\xd8\xaa\xda\x98\xdb\x8c \xd8\xa7\xd8\xb3\xd8\xaa\xd9\x82\xd8\xb1\xd8\xa7\xd8\xb1 \xd9\x86\xdb\x8c\xd8\xb1\xd9\x88\xd9\x87\xd8\xa7\xdb\x8c \xd8\xa2\xd9\x85\xd8\xb1\xdb\x8c\xda\xa9\xd8\xa7\xdb\x8c\xdb\x8c \xd8\xa8\xdb\x8c\xd8\xb4\xd8\xaa\xd8\xb1\xdb\x8c \xd8\xaf\xd8\xb1 \xd8\xa8\xd8\xba\xd8\xaf\xd8\xa7\xd8\xaf\xd8\x8c \xd9\x85\xd8\xaf\xd8\xaa\xdb\x8c \xd8\xb7\xd9\x88\xd9\x84 \xd8\xae\xd9\x88\xd8\xa7\xd9\x87\xd8\xaf \xda\xa9\xd8\xb4\xdb\x8c\xd8\xaf.

- -

\xd8\xa2\xd9\x85\xd8\xb1\xdb\x8c\xda\xa9\xd8\xa7 \xd9\x88\xdb\x8c\xd8\xb2\xd8\xa7\xdb\x8c \xd8\xb1\xd8\xa6\xdb\x8c\xd8\xb3 \xd8\xac\xd9\x85\xd9\x87\xd9\x88\xd8\xb1 \xd8\xa7\xdb\x8c\xd8\xb1\xd8\xa7\xd9\x86 \xd8\xb1\xd8\xa7 \xd8\xa8\xd9\x87 \xd9\x85\xd9\x86\xd8\xb8\xd9\x88\xd8\xb1 \xd8\xad\xd8\xb6\xd9\x88\xd8\xb1 \xd9\x88\xdb\x8c \xd8\xaf\xd8\xb1 \xd8\xac\xd9\x84\xd8\xb3\xd9\x87 \xd8\xb1\xd8\xa7\xdb\x8c \xda\xaf\xdb\x8c\xd8\xb1\xdb\x8c \xd8\xb4\xd9\x88\xd8\xb1\xd8\xa7\xdb\x8c \xd8\xa7\xd9\x85\xd9\x86\xdb\x8c\xd8\xaa \xd8\xa8\xd8\xb1\xd8\xa7\xdb\x8c \xd9\x82\xd8\xb7\xd8\xb9\xd9\x86\xd8\xa7\xd9\x85\xd9\x87 \xd8\xaa\xd8\xa7\xd8\xb2\xd9\x87 \xd8\xb9\xd9\x84\xdb\x8c\xd9\x87 \xd8\xa7\xdb\x8c\xd9\x86 \xda\xa9\xd8\xb4\xd9\x88\xd8\xb1 \xd8\xb5\xd8\xa7\xd8\xaf\xd8\xb1 \xda\xa9\xd8\xb1\xd8\xaf.

- - -

Urdu

-

\xd8\xac\xd8\xb3\xd9\xb9\xd8\xb3 \xd8\xa7\xd9\x81\xd8\xaa\xd8\xae\xd8\xa7\xd8\xb1 \xda\xa9\xdb\x8c \xd8\xac\xd8\xa8\xd8\xb1\xdb\x8c \xd8\xb1\xd8\xae\xd8\xb5\xd8\xaa \xd9\xbe\xd8\xb1 \xd9\x84\xd8\xa7\xdb\x81\xd9\x88\xd8\xb1\xdb\x81\xd8\xa7\xd8\xa6\xdb\x8c \xda\xa9\xd9\x88\xd8\xb1\xd9\xb9 \xda\xa9\xdb\x92 \xd8\xa7\xdb\x8c\xda\xa9 \xd8\xa7\xd9\x88\xd8\xb1 \xd8\xb3\xd9\x86\xd8\xaf\xda\xbe \xd9\x85\xdb\x8c\xda\xba \xda\xa9\xd8\xa6\xdb\x8c \xd8\xb3\xd9\x88\xd9\x84 \xd8\xac\xd8\xac \xd9\x85\xd8\xb3\xd8\xaa\xd8\xb9\xd9\x81\xdb\x8c \xdb\x81\xd9\x88\xda\xaf\xd8\xa6\xdb\x92 \xdb\x81\xdb\x8c\xda\xba\xdb\x94

- -

\xda\x86\xdb\x8c\xd9\x81 \xd8\xac\xd8\xb3\xd9\xb9\xd8\xb3 \xda\xa9\xdb\x8c \xd8\xb3\xd8\xb1\xda\xaf\xd8\xb1\xd9\x85\xdb\x8c\xd8\xa7\xda\xba \xd9\x85\xd8\xad\xd8\xaf\xd9\x88\xd8\xaf \xda\xa9\xd8\xb1\xd9\x86\xdb\x92 \xd8\xa7\xd9\x88\xd8\xb1 \xd9\xbe\xd9\x88\xd9\x84\xdb\x8c\xd8\xb3 \xd8\xaa\xd8\xb9\xdb\x8c\xd9\x86\xd8\xa7\xd8\xaa\xdb\x8c \xda\xa9\xdb\x92 \xd8\xad\xda\xa9\xd9\x85 \xd9\x86\xd8\xa7\xd9\x85\xdb\x92 \xd9\xbe\xd8\xb1 \xd8\xaf\xd8\xb3\xd8\xaa\xd8\xae\xd8\xb7 \xda\xa9\xd8\xb1\xda\xa9\xdb\x92 \xd8\xba\xd9\x84\xd8\xb7 \xda\xa9\xdb\x8c\xd8\xa7: \xd8\xac\xd9\x86\xd8\xb1\xd9\x84 \xd9\x85\xd8\xb4\xd8\xb1\xd9\x81

- -

Pashto (ps)

-

\xd9\xbe\xd9\x87 \xda\xa9\xd8\xa7\xd8\xa8\xd9\x84 \xd8\xa7\xd9\x88 \xda\xa9\xd9\x86\xd8\xaf\xd9\x87\xd8\xa7\xd8\xb1 \xda\xa9\xdb\x90 \xd8\xaf\xd9\x88\xd9\x88 \xda\x81\xd8\xa7\xd9\x86\xd9\x85\xd8\xb1\xda\xaf\xd9\x88 \xd8\xa8\xd8\xb1\xd9\x8a\xd8\xaf\xd9\x88\xd9\x86\xd9\x88 \xd9\x84\xda\x96 \xd8\xaa\xd8\xb1 \xd9\x84\xda\x96\xd9\x87 \xd9\x8a\xd9\x88 \xd9\x85\xd8\xa7\xd8\xb4\xd9\x88\xd9\x85 \xd9\x88\xda\x98\xd9\x84\xd9\x89 \xd8\xa7\xd9\x88 \xd8\xa7\xd8\xaa\xd9\x87 \xd8\xaa\xd9\x86\xd9\x87 \xd9\x86\xd9\x88\xd8\xb1 \xd9\x89\xdb\x90 \xd9\xbc\xd9\xbe\xd9\x8a\xd8\xa7\xd9\x86 \xda\xa9\xda\x93\xd9\x8a.

- -

\xd9\x87 \xd8\xb9\xd8\xb1\xd8\xa7\xd9\x82 \xda\xa9\xdb\x90 \xd9\x8a\xd9\x88\xd9\x87 \xd8\xaa\xd8\xa7\xd8\xb2\xd9\x87 \xd9\x86\xd8\xb8\xd8\xb1 \xd8\xb4\xd9\x85\xdb\x90\xd8\xb1\xd9\x86\xd9\x87 \xda\x9a\xd9\x8a\xd9\x8a \xda\x86\xdb\x90 \xd8\xb9\xd8\xb1\xd8\xa7\xd9\x82\xd9\x8a\xd8\xa7\xd9\x86 \xd9\xbe\xd9\x87 \xd8\xb2\xd9\x8a\xd8\xa7\xd8\xaa\xdb\x90\xd8\xaf\xd9\x88\xd9\x86\xda\xa9\xd9\x8a \xd8\xaa\xd9\x88\xda\xaf\xd9\x87 \xd8\xaf \xd8\xad\xd8\xa7\xd9\x84\xd8\xa7\xd8\xaa\xd9\x88 \xd9\xbe\xd9\x87 \xd8\xa7\xda\x93\xd9\x87 \xd8\xa8\xd8\xaf\xd8\xa8\xd9\x8a\xd9\x86\xd9\x87 \xd8\xaf\xd9\x8a \xd8\xa7\xd9\x88 \xd8\xaf \xd8\xa8\xdb\x90 \xd8\xa8\xd8\xa7\xd9\x88\xd8\xb1\xd9\x8a \xd8\xa7\xd8\xad\xd8\xb3\xd8\xa7\xd8\xb3 \xda\xa9\xd9\x88\xd9\x8a\xd8\x8c \xd8\xae\xd9\x88 \xd8\xae\xd9\xbe\xd9\x84 \xd9\x87\xd9\x8a\xd9\x88\xd8\xa7\xd8\xaf \xd9\x8a\xd9\x88\xd9\x85\xd9\x88\xd9\xbc\xd9\x89 \xd8\xba\xd9\x88\xd8\xa7\xda\x93\xd9\x8a.

- - -

Symbols

-

\xc2\xa9\xc2\xae\xe2\x84\xa2\xc2\xb5\xe2\x80\xa2\xe2\x80\xa6\xe2\x80\xb2\xe2\x80\xb3\xc2\xa7<>\xe2\x89\xa4\xe2\x89\xa5\xc2\xb0\xe2\x88\x92\xc2\xb1\xc3\xb7\xe2\x81\x84\xc3\x97\xc6\x92\xe2\x88\xab\xe2\x88\x91\xe2\x88\x9e\xe2\x88\x9a\xe2\x89\x88\xe2\x89\xa0\xe2\x89\xa1\xe2\x88\x8f\xc2\xac\xe2\x88\xa9\xe2\x88\x82

-

\xce\x92\xce\x93\xce\x94\xce\x95\xce\x96\xce\x97\xce\x98\xce\x99\xce\x9a\xce\x9b\xce\x9c\xce\x9d\xce\x9e\xce\x9f\xce\xa0\xce\xa1\xce\xa3\xce\xa4\xce\xa5\xce\xa6\xce\xa7\xce\xa8\xce\xa9

-

\xce\xb1\xce\xb2\xce\xb3\xce\xb4\xce\xb5\xce\xb6\xce\xb7\xce\xb8\xce\xb9\xce\xba\xce\xbb\xce\xbc\xce\xbd\xce\xbe\xce\xbf\xcf\x80\xcf\x81\xcf\x82\xcf\x83\xcf\x84\xcf\x85\xcf\x86\xcf\x87\xcf\x88\xcf\x89

-

\xe2\x86\x90\xe2\x86\x91\xe2\x86\x92\xe2\x86\x93\xe2\x86\x94\xe2\x97\x8a\xe2\x99\xa3\xe2\x99\xa5\xe2\x99\xa6

- -

Dingbats

-

\xc2\xa7<>\xe2\x86\x92\xe2\x86\x94\xe2\x99\xa3\xe2\x99\xa5\xe2\x99\xa6

- -

win-1252

-

\xc2\xa2\xe2\x82\xac\xc2\xa9\xc2\xae\xe2\x84\xa2\xe2\x80\xb0\xc2\xb5\xc2\xb7\xe2\x80\xa2\xe2\x80\xa6\xc2\xa7\xc3\x9f\xe2\x80\xb9\xe2\x80\xba\xc2\xab\xc2\xbb\xe2\x80\x98\xe2\x80\x99\xe2\x80\x9c\xe2\x80\x9d\xe2\x80\x9a\xe2\x80\x9e<>\xe2\x80\x93\xe2\x80\x94\xcb\x86\xcb\x9c\xc2\xb0\xc2\xb1\xc3\xb7\xc3\x97\xc2\xbc\xc2\xbd\xc2\xbe\xc6\x92\xc2\xac\xe2\x80\xa0\xe2\x80\xa1

-

\xc3\x80\xc3\x81\xc3\x82\xc3\x83\xc3\x84\xc3\x85\xc3\x86\xc3\x87\xc3\x88\xc3\x89\xc3\x8a\xc3\x8b\xc3\x8c\xc3\x8d\xc3\x8e\xc3\x8f\xc3\x90\xc3\x91\xc3\x92\xc3\x93\xc3\x94\xc3\x95\xc3\x96\xc3\x98\xc5\x92\xc5\xa0\xc3\x99\xc3\x9a\xc3\x9b\xc3\x9c\xc3\x9d\xc5\xb8

-

\xc3\xa0\xc3\xa1\xc3\xa2\xc3\xa3\xc3\xa4\xc3\xa5\xc3\xa6\xc3\xa7\xc3\xa8\xc3\xa9\xc3\xaa\xc3\xab\xc3\xac\xc3\xad\xc3\xae\xc3\xaf\xc3\xb0\xc3\xb1\xc3\xb2\xc3\xb4\xc3\xb5\xc3\xb6\xc3\xb8\xc5\x93\xc5\xa1\xc3\xb9\xc3\xba\xc3\xbb\xc3\xbc\xc3\xbd\xc3\xbe\xc3\xbf

- -

Bidirectional text

-

Text alignment, unless specified, is neutral and therefore dictated by the 'direction' of the paragraph.

- -

All text is analysed chunk by chunk (between tags) and at the end of every block (div, p, td). If the text contains RTL characters, those characters and words are reversed.

- -

\xd9\x88\xd8\xa7\xd8\xaf\xd8\xa7\xd9\x86 \xd8\xa7\xd9\x84\xd8\xa8\xd9\x8a\xd8\xaa \xd8\xa7\xd9\x84\xd8\xa7\xd8\xa8\xd9\x8a\xd8\xb6 "\xd8\xa8\xd8\xb4\xd8\xaf\xd8\xa9" \xd8\xaa\xd9\x81\xd8\xac\xd9\x8a\xd8\xb1 with some english in the middle \xd8\xa7\xd9\x8a\xd9\x84\xd8\xa7\xd8\xaa \xd9\x81\xd9\x8a\xd9\x85\xd8\xa7 \xd8\xa7\xd8\xb9\xd8\xb1\xd8\xa8\xd8\xaa \xd9\x88\xd8\xb2\xd8\xa7\xd8\xb1\xd8\xa9

- -

To set the 'directionality' of the whole document e.g. to reverse default alignment, tables, lists etc. you can set the dir attribute or the direction CSS property on the HTML or BODY tag to 'rtl' e.g.

-

<body style=\"direction: rtl\">

-

<body dir=\"rtl\">

-

or you can use \$mpdf->SetDirectionality('rtl');

- -
-- the document now has a baseline direction; this determines the 
-	- behaviour of blocks for which text-align has not been specifically set
-	- layout of mirrored page-margins, columns, ToC and Indexes, headers and footers
-	- base direction can be set by any of:
-		- \$mpdf->SetDirectionality('rtl');
-		- <html dir=\"rtl\" or style=\"direction: rtl;\">
-		- <body dir=\"rtl\" or style=\"direction: rtl;\">
-	- base direction is an inherited CSS property, so will affect all content, unless...
-- direction can be set for all HTML block elements e.g. <DIV><P><TABLE><UL> etc using
-	- CSS property < style=\"direction: rtl;\"> 
-	- direction can only be set on the top-level element of nested lists
-	- direction can only be set on <TABLE>, NOT on THEAD, TBODY, TD etc.
-	- nested tables CAN have different directions
-- NOTE that block/table margins/paddings are NOT reversed by direction
-	NB mPDF <5.1 reversed the margins/paddings for blocks when RTL set.
-- language (either CSS \"lang\", using Autofont, or through initial set-up e.g. \$mpdf = new mPDF('ar') ) 
-	no longer affects direction in any way.
-	NB config_cp.php has been changed as a result; any values of \"dir\" set here are now ineffective
-- default text-align is now as per CSS spec: \"a nameless value which is dependent on direction\" 
-	NB default text-align removed in default stylesheet in config.php 
-- once text-align is specified, it is respected and inherited
-	NB mPDF <5.1 reversed the text-align property for all blocks when RTL set.
-- the configurable value $rtlcss is depracated, as it is no longer required
-- improved algorithm for dtermining text direction
-	- english word blocks are handled in text reversal as one block i.e. dir=\"rtl\"
-	[arabic text] this will not be reversed [arabic text]
-	- arabic numerals 0-9 handled correctly
-
-Although the control of direction for block elements is now more configurable, the control of 
-text direction (RTL arabic characters) remains fully automatic and unconfigurable. 
-<BDO> etc has no effect. Enclosing text in silent tags can sometimes help e.g.
-	content<span>[arabic text]</span>content
-
-
- - -

Tables

-

Tables are automatically transposed when the direction is rtl:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
\xd8\xa7\xd9\x84\xd8\xa7\xd9\x85\xd8\xb1\xd9\x8a\xd9\x83\xd9\x8a -

\xd8\xa7\xd9\x84\xd8\xa7\xd9\x85\xd8\xb1\xd9\x8a\xd9\x83\xd9\x8a

-
\xd8\xa7\xd9\x84\xd8\xa7\xd9\x85\xd8\xb1\xd9\x8a\xd9\x83\xd9\x8a
\xd9\x82\xd8\xa7\xd9\x84\xd8\xa7\xd9\x84\xd8\xb1\xd8\xa6\xd9\x8a\xd8\xb3\xd8\xa7\xd9\x84\xd8\xb1\xd8\xa6\xd9\x8a\xd8\xb3
\xd9\x82\xd8\xa7\xd9\x84 -

\xd9\x82\xd8\xa7\xd9\x84 \xd8\xa7\xd9\x84\xd8\xb1\xd8\xa6\xd9\x8a\xd8\xb3 \xd8\xa7\xd9\x84\xd8\xa7\xd9\x85\xd8\xb1\xd9\x8a\xd9\x83\xd9\x8a \xd8\xac\xd9\x88\xd8\xb1\xd8\xac \xd8\xa8\xd9\x88\xd8\xb4 \xd9\x81\xd9\x8a \xd8\xad\xd8\xaf\xd9\x8a\xd8\xab \xd9\x85\xd8\xaa\xd9\x84\xd9\x81\xd8\xb2

-
-

\xd9\x82\xd8\xa7\xd9\x84 \xd8\xa7\xd9\x84\xd8\xb1\xd8\xa6\xd9\x8a\xd8\xb3 \xd8\xa7\xd9\x84\xd8\xa7\xd9\x85\xd8\xb1\xd9\x8a\xd9\x83\xd9\x8a \xd8\xac\xd9\x88\xd8\xb1\xd8\xac \xd8\xa8\xd9\x88\xd8\xb4 \xd9\x81\xd9\x8a \xd8\xad\xd8\xaf\xd9\x8a\xd8\xab \xd9\x85\xd8\xaa\xd9\x84\xd9\x81\xd8\xb2

-
-

\xd9\x82\xd8\xa7\xd9\x84

-
-

\xd8\xa7\xd9\x84\xd8\xb1\xd8\xa6\xd9\x8a\xd8\xb3

-
\xd8\xa7\xd9\x84\xd8\xb1\xd8\xa6\xd9\x8a\xd8\xb3
-

\xd9\x82\xd8\xa7\xd9\x84

-

\xd8\xa7\xd9\x84\xd8\xb1\xd8\xa6\xd9\x8a\xd8\xb3

-
\xd8\xa7\xd9\x84\xd8\xb1\xd8\xa6\xd9\x8a\xd8\xb3 -

\xd8\xa7\xd9\x84\xd8\xb1\xd8\xa6\xd9\x8a\xd8\xb3

-
\xd9\x82\xd8\xa7\xd9\x84\xd8\xa7\xd9\x84\xd8\xb1\xd8\xa6\xd9\x8a\xd8\xb3\xd8\xa7\xd9\x84\xd8\xb1\xd8\xa6\xd9\x8a\xd8\xb3
\xd9\x82\xd8\xa7\xd9\x84\xd8\xa7\xd9\x84\xd8\xb1\xd8\xa6\xd9\x8a\xd8\xb3\xd8\xa7\xd9\x84\xd8\xb1\xd8\xa6\xd9\x8a\xd8\xb3
\xd9\x82\xd8\xa7\xd9\x84\xd8\xa7\xd9\x84\xd8\xb1\xd8\xa6\xd9\x8a\xd8\xb3\xd8\xa7\xd9\x84\xd8\xb1\xd8\xa6\xd9\x8a\xd8\xb3
\xd9\x82\xd8\xa7\xd9\x84\xd8\xa7\xd9\x84\xd8\xb1\xd8\xa6\xd9\x8a\xd8\xb3\xd8\xa7\xd9\x84\xd8\xb1\xd8\xa6\xd9\x8a\xd8\xb3
-

 

-

Lists

-

Lists will automatically reverse as well (note the use of list-style to set numbering):

-
-
    -
  1. \xd9\x82\xd8\xa7\xd9\x84 \xd8\xa7\xd9\x84\xd8\xb1\xd8\xa6\xd9\x8a\xd8\xb3
  2. -
  3. \xd8\xa7\xd9\x84\xd8\xa7\xd9\x85\xd8\xb1\xd9\x8a\xd9\x83\xd9\x8a -
    • \xd8\xac\xd9\x88\xd8\xb1\xd8\xac \xd8\xa8\xd9\x88\xd8\xb4 \xd9\x81\xd9\x8a \xd8\xac\xd9\x88\xd8\xb1\xd8\xac \xd8\xa8\xd9\x88\xd8\xb4 \xd9\x81\xd9\x8a \xd8\xac\xd9\x88\xd8\xb1\xd8\xac \xd8\xa8\xd9\x88\xd8\xb4 \xd9\x81\xd9\x8a \xd8\xac\xd9\x88\xd8\xb1\xd8\xac \xd8\xa8\xd9\x88\xd8\xb4 \xd9\x81\xd9\x8a \xd8\xac\xd9\x88\xd8\xb1\xd8\xac \xd8\xa8\xd9\x88\xd8\xb4 \xd9\x81\xd9\x8a \xd8\xac\xd9\x88\xd8\xb1\xd8\xac
    • -
    • \xd8\xad\xd8\xaf\xd9\x8a\xd8\xab \xd9\x85\xd8\xaa\xd9\x84\xd9\x81\xd8\xb2 -
        -
      • \xd9\x81\xd9\x8a \xd8\xa7\xd9\x84\xd8\xb0\xd9\x83\xd8\xb1\xd9\x89 \xd8\xa7\xd9\x84\xd8\xb1\xd8\xa7\xd8\xa8\xd8\xb9\xd8\xa9
      • -
      • \xd9\x84\xd9\x84\xd8\xba\xd8\xb2\xd9\x88 \xd8\xa7\xd9\x84\xd8\xa7\xd9\x85\xd8\xb1\xd9\x8a\xd9\x83\xd9\x8a
      • -
      -
    • -
  4. -
  5. \xd9\x84\xd9\x84\xd8\xb9\xd8\xb1\xd8\xa7\xd9\x82 \xd8\xa7\xd9\x86 \xd8\xa7\xd9\x84\xd8\xa7\xd9\x88\xd9\x84\xd9\x88\xd9\x8a\xd8\xa9 \xd8\xad\xd8\xa7\xd9\x84\xd9\x8a\xd8\xa7
  6. -
  7. \xd9\x84\xd8\xa7\xd8\xb9\xd8\xa7\xd8\xaf\xd8\xa9 \xd8\xa7\xd9\x84\xd8\xa7\xd9\x85\xd9\x86 \xd9\x84\xd9\x84\xd8\xb9\xd8\xb1\xd8\xa7\xd9\x82
  8. -
-
-"; - -//============================================================== - // Set Header and Footer - $h = array ( - 'odd' => - array ( - 'R' => - array ( - 'content' => '{PAGENO}', - 'font-size' => 8, - 'font-style' => 'B', - ), - 'L' => - array ( - 'content' => "\xd9\x82\xd8\xa7\xd9\x84 \xd8\xa7\xd9\x84\xd8\xb1\xd8\xa6\xd9\x8a\xd8\xb3", - 'font-size' => 8, - 'font-style' => 'B', - ), - 'line' => 1, - ), - 'even' => - array ( - 'L' => - array ( - 'content' => '{PAGENO}', - 'font-size' => 8, - 'font-style' => 'B', - ), - 'R' => - array ( - 'content' => "\xd9\x82\xd8\xa7\xd9\x84 \xd8\xa7\xd9\x84\xd8\xb1\xd8\xa6\xd9\x8a\xd8\xb3", - 'font-size' => 8, - 'font-style' => 'B', - ), - 'line' => 1, - ), -); - - $f = array ( - 'odd' => - array ( - 'L' => - array ( - 'content' => '{DATE Y-m-d}', - 'font-size' => 8, - 'font-style' => 'BI', - ), - 'C' => - array ( - 'content' => '- {PAGENO} -', - 'font-size' => 8, - ), - 'R' => - array ( - 'content' => "\xd8\xa7\xd9\x84\xd8\xb1\xd8\xa6\xd9\x8a\xd8\xb3", - 'font-size' => 8, - ), - 'line' => 1, - ), - 'even' => - array ( - 'L' => - array ( - 'content' => "\xd8\xa7\xd9\x84\xd8\xb1\xd8\xa6\xd9\x8a\xd8\xb3", - 'font-size' => 8, - 'font-style' => 'B', - ), - 'C' => - array ( - 'content' => '- {PAGENO} -', - 'font-size' => 8, - ), - 'R' => - array ( - 'content' => '{DATE Y-m-d}', - 'font-size' => 8, - 'font-style' => 'BI', - ), - 'line' => 1, - ), -); - -//============================================================== -//============================================================== -//============================================================== -include("../mpdf.php"); - - -$mpdf=new mPDF('ar','A4','','',32,25,27,25,16,13); - -// From mPDF 5.1 onwards you must set: -$mpdf->SetDirectionality('rtl'); -$mpdf->mirrorMargins = true; -$mpdf->SetDisplayMode('fullpage','two'); - - -$mpdf->setHeader($h); -$mpdf->setFooter($f); - - -$stylesheet = file_get_contents('mpdfstyletables.css'); -$mpdf->WriteHTML($stylesheet,1); // The parameter 1 tells that this is css/style only and no body/html/text - -$mpdf->WriteHTML($html); -$mpdf->AddPage(); - -$mpdf->SetColumns(2,'J'); -$mpdf->WriteHTML($html); - -$mpdf->Output(); -exit; -//============================================================== -//============================================================== -//============================================================== - - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/example27_CJK_using_Adobe_fonts.php b/public_html/2022/newcms/pdf/examples/example27_CJK_using_Adobe_fonts.php deleted file mode 100644 index c46245f..0000000 --- a/public_html/2022/newcms/pdf/examples/example27_CJK_using_Adobe_fonts.php +++ /dev/null @@ -1,91 +0,0 @@ - -p { text-align: justify; } -td { text-align: justify; } - -

mPDF

-

CJK Languages

- - - - -

Japanese (pangrams)

-
Iroha Uta
- -

\xe3\x81\x84\xe3\x82\x8d\xe3\x81\xaf\xe3\x81\xab\xe3\x81\xbb\xe3\x81\xb8\xe3\x81\xa8\xe3\x80\x80\xe3\x81\xa1\xe3\x82\x8a\xe3\x81\xac\xe3\x82\x8b\xe3\x82\x92\xe3\x80\x80\xe3\x82\x8f\xe3\x81\x8b\xe3\x82\x88\xe3\x81\x9f\xe3\x82\x8c\xe3\x81\x9d\xe3\x80\x80\xe3\x81\xa4\xe3\x81\xad\xe3\x81\xaa\xe3\x82\x89\xe3\x82\x80\xe3\x80\x80\xe3\x81\x86\xe3\x82\x90\xe3\x81\xae\xe3\x81\x8a\xe3\x81\x8f\xe3\x82\x84\xe3\x81\xbe\xe3\x80\x80\xe3\x81\x91\xe3\x81\xb5\xe3\x81\x93\xe3\x81\x88\xe3\x81\xa6\xe3\x80\x80\xe3\x81\x82\xe3\x81\x95\xe3\x81\x8d\xe3\x82\x86\xe3\x82\x81\xe3\x81\xbf\xe3\x81\x97\xe3\x80\x80\xe3\x82\x91\xe3\x81\xb2\xe3\x82\x82\xe3\x81\x9b\xe3\x81\x99

- -

\xe8\x89\xb2\xe3\x81\xaf\xe5\x8c\x82\xe3\x81\xb8\xe3\x81\xa9\xe3\x80\x80\xe6\x95\xa3\xe3\x82\x8a\xe3\x81\xac\xe3\x82\x8b\xe3\x82\x92\xe3\x80\x80\xe6\x88\x91\xe3\x81\x8c\xe4\xb8\x96\xe8\xaa\xb0\xe3\x81\x9e\xe3\x80\x80\xe5\xb8\xb8\xe3\x81\xaa\xe3\x82\x89\xe3\x82\x80\xe3\x80\x80\xe6\x9c\x89\xe7\x82\xba\xe3\x81\xae\xe5\xa5\xa5\xe5\xb1\xb1\xe3\x80\x80\xe4\xbb\x8a\xe6\x97\xa5\xe8\xb6\x8a\xe3\x81\x88\xe3\x81\xa6\xe3\x80\x80\xe6\xb5\x85\xe3\x81\x8d\xe5\xa4\xa2\xe8\xa6\x8b\xe3\x81\x98\xe3\x80\x80\xe9\x85\x94\xe3\x81\xb2\xe3\x82\x82\xe3\x81\x9b\xe3\x81\x9a\xef\xbc\x88\xe3\x82\x93\xef\xbc\x89

- -
Tori Naku Uta
- -

\xe3\x81\xa8\xe3\x82\x8a\xe3\x81\xaa\xe3\x81\x8f\xe3\x81\x93\xe3\x82\x91\xe3\x81\x99\xe3\x80\x80\xe3\x82\x86\xe3\x82\x81\xe3\x81\x95\xe3\x81\xbe\xe3\x81\x9b\xe3\x80\x80\xe3\x81\xbf\xe3\x82\x88\xe3\x81\x82\xe3\x81\x91\xe3\x82\x8f\xe3\x81\x9f\xe3\x82\x8b\xe3\x80\x80\xe3\x81\xb2\xe3\x82\x93\xe3\x81\x8b\xe3\x81\x97\xe3\x82\x92\xe3\x80\x80\xe3\x81\x9d\xe3\x82\x89\xe3\x81\x84\xe3\x82\x8d\xe3\x81\xaf\xe3\x81\x88\xe3\x81\xa6\xe3\x80\x80\xe3\x81\x8a\xe3\x81\x8d\xe3\x81\xa4\xe3\x81\xb8\xe3\x81\xab\xe3\x80\x80\xe3\x81\xbb\xe3\x81\xb5\xe3\x81\xad\xe3\x82\x80\xe3\x82\x8c\xe3\x82\x90\xe3\x81\xac\xe3\x80\x80\xe3\x82\x82\xe3\x82\x84\xe3\x81\xae\xe3\x81\x86\xe3\x81\xa1

- -

\xe9\xb3\xa5\xe5\x95\xbc\xe3\x81\x8f\xe5\xa3\xb0\xe3\x81\x99\xe3\x80\x80\xe5\xa4\xa2\xe8\xa6\x9a\xe3\x81\xbe\xe3\x81\x9b\xe3\x80\x80\xe8\xa6\x8b\xe3\x82\x88\xe6\x98\x8e\xe3\x81\x91\xe6\xb8\xa1\xe3\x82\x8b\xe3\x80\x80\xe6\x9d\xb1\xe3\x82\x92\xe3\x80\x80\xe7\xa9\xba\xe8\x89\xb2\xe6\xa0\x84\xe3\x81\x88\xe3\x81\xa6\xe3\x80\x80\xe6\xb2\x96\xe3\x81\xa4\xe8\xbe\xba\xe3\x81\xab\xe3\x80\x80\xe5\xb8\x86\xe8\x88\xb9\xe7\xbe\xa4\xe3\x82\x8c\xe3\x82\x90\xe3\x81\xac\xe3\x80\x80\xe9\x9d\x84\xe3\x81\xae\xe4\xb8\xad

- -
Ametsuchi No Uta
- -

\xe3\x81\x82\xe3\x82\x81 \xe3\x81\xa4\xe3\x81\xa1 \xe3\x81\xbb\xe3\x81\x97 \xe3\x81\x9d\xe3\x82\x89 / \xe3\x82\x84\xe3\x81\xbe \xe3\x81\x8b\xe3\x81\xaf \xe3\x81\xbf\xe3\x81\xad \xe3\x81\x9f\xe3\x81\xab / \xe3\x81\x8f\xe3\x82\x82 \xe3\x81\x8d\xe3\x82\x8a \xe3\x82\x80\xe3\x82\x8d \xe3\x81\x93\xe3\x81\x91 / \xe3\x81\xb2\xe3\x81\xa8 \xe3\x81\x84\xe3\x81\xac \xe3\x81\x86\xe3\x81\xb8 \xe3\x81\x99\xe3\x82\x91 / \xe3\x82\x86\xe3\x82\x8f \xe3\x81\x95\xe3\x82\x8b \xe3\x81\x8a\xe3\x81\xb5 \xe3\x81\x9b\xe3\x82\x88 / \xe3\x81\x88\xe3\x81\xae\xe3\x81\x88*\xe3\x82\x92 \xe3\x81\xaa\xe3\x82\x8c \xe3\x82\x90\xe3\x81\xa6

- -

\xe5\xa4\xa9 \xe5\x9c\xb0 \xe6\x98\x9f \xe7\xa9\xba / \xe5\xb1\xb1 \xe5\xb7\x9d \xe5\xb3\xb0 \xe8\xb0\xb7 / \xe9\x9b\xb2 \xe9\x9c\xa7 \xe5\xae\xa4 \xe8\x8b\x94 / \xe4\xba\xba \xe7\x8a\xac \xe4\xb8\x8a \xe6\x9c\xab / \xe7\xa1\xab\xe9\xbb\x84 \xe7\x8c\xbf \xe7\x94\x9f\xe3\x81\xb5 \xe7\x82\xba\xe3\x82\x88 / \xe6\xa6\x8e\xe3\x81\xae \xe6\x9e\x9d\xe3\x82\x92 \xe9\xa6\xb4\xe3\x82\x8c \xe5\xb1\x85\xe3\x81\xa6

- -
Taini no Uta
- -

\xe3\x81\x9f\xe3\x82\x90\xe3\x81\xab\xe3\x81\x84\xe3\x81\xa6\xe3\x80\x80\xe3\x81\xaa\xe3\x81\xa4\xe3\x82\x80\xe3\x82\x8f\xe3\x82\x8c\xe3\x82\x92\xe3\x81\x9d\xe3\x80\x80\xe3\x81\x8d\xe3\x81\xbf\xe3\x82\x81\xe3\x81\x99\xe3\x81\xa8\xe3\x80\x80\xe3\x81\x82\xe3\x81\x95\xe3\x82\x8a\xe3\x81\x8a\xe3\x81\xb2\xe3\x82\x86\xe3\x81\x8f\xe3\x80\x80\xe3\x82\x84\xe3\x81\xbe\xe3\x81\x97\xe3\x82\x8d\xe3\x81\xae\xe3\x80\x80\xe3\x81\x86\xe3\x81\xa1\xe3\x82\x91\xe3\x81\xb8\xe3\x82\x8b\xe3\x81\x93\xe3\x82\x89\xe3\x80\x80\xe3\x82\x82\xe3\x81\xaf\xe3\x81\xbb\xe3\x81\x9b\xe3\x82\x88\xe3\x80\x80\xe3\x81\x88\xe3\x81\xb5\xe3\x81\xad\xe3\x81\x8b\xe3\x81\x91\xe3\x81\xac

- -

\xe7\x94\xb0\xe5\xb1\x85\xe3\x81\xab\xe5\x87\xba\xe3\x81\xa7\xe3\x80\x80\xe8\x8f\x9c\xe6\x91\x98\xe3\x82\x80\xe3\x82\x8f\xe3\x82\x8c\xe3\x82\x92\xe3\x81\x9e\xe3\x80\x80\xe5\x90\x9b\xe5\x8f\xac\xe3\x81\x99\xe3\x81\xa8\xe3\x80\x80\xe6\xb1\x82\xe9\xa3\x9f\xe3\x82\x8a\xe8\xbf\xbd\xe3\x81\xb2\xe3\x82\x86\xe3\x81\x8f\xe3\x80\x80\xe5\xb1\xb1\xe5\x9f\x8e\xe3\x81\xae\xe3\x80\x80\xe6\x89\x93\xe9\x85\x94\xe3\x81\xb8\xe3\x82\x8b\xe5\xad\x90\xe3\x82\x89\xe3\x80\x80\xe8\x97\xbb\xe8\x91\x89\xe5\xb9\xb2\xe3\x81\x9b\xe3\x82\x88\xe3\x80\x80\xe3\x81\x88\xe8\x88\x9f\xe7\xb9\x8b\xe3\x81\x91\xe3\x81\xac

- - - -

Chinese (simplified) GB2312

- -

\xe6\x9d\xa5\xe8\x87\xaa\xe5\x95\x86\xe5\x8a\xa1\xe9\x83\xa8\xe6\x96\xb0\xe9\x97\xbb\xe5\x8a\x9e\xe5\x85\xac\xe5\xae\xa4\xe7\x9a\x84\xe6\xb6\x88\xe6\x81\xaf\xe7\xa7\xb0\xef\xbc\x8c\xe4\xb8\xad\xe6\x96\xb9\xe5\x85\x8d\xe9\x99\xa4\xe4\xb8\x8e\xe4\xb8\xad\xe5\x9b\xbd\xe6\x9c\x89\xe5\xa4\x96\xe4\xba\xa4\xe5\x85\xb3\xe7\xb3\xbb\xe7\x9a\x84\xe6\x89\x80\xe6\x9c\x89\xe9\x9d\x9e\xe6\xb4\xb2\xe9\x87\x8d\xe5\x80\xba\xe7\xa9\xb7\xe5\x9b\xbd\xe5\x8f\x8a\xe6\x9c\x80\xe4\xb8\x8d\xe5\x8f\x91\xe8\xbe\xbe\xe5\x9b\xbd\xe5\xae\xb6\xe6\x88\xaa\xe8\x87\xb32005\xe5\xb9\xb4\xe5\xba\x95\xe5\xaf\xb9\xe5\x8d\x8e\xe5\x88\xb0\xe6\x9c\x9f\xe6\x94\xbf\xe5\xba\x9c\xe6\x97\xa0\xe6\x81\xaf\xe8\xb4\xb7\xe6\xac\xbe\xe5\x80\xba\xe5\x8a\xa1\xe3\x80\x82\xe6\x9c\x89\xe5\x85\xb3\xe9\x83\xa8\xe9\x97\xa8\xe5\xb7\xb2\xe5\xaf\xb9\xe7\x9b\xb8\xe5\x85\xb3\xe5\x80\xba\xe5\x8a\xa1\xe8\xbf\x9b\xe8\xa1\x8c\xe5\x85\xa8\xe9\x9d\xa2\xe6\xb8\x85\xe7\x90\x86\xe6\xa0\xb8\xe5\xaf\xb9\xef\xbc\x8c\xe5\xaf\xb9\xe4\xb8\x8e\xe4\xb8\xad\xe5\x9b\xbd\xe6\x9c\x89\xe5\xa4\x96\xe4\xba\xa4\xe5\x85\xb3\xe7\xb3\xbb\xe7\x9a\x8433\xe4\xb8\xaa\xe9\x9d\x9e\xe6\xb4\xb2\xe9\x87\x8d\xe5\x80\xba\xe7\xa9\xb7\xe5\x9b\xbd\xe5\x92\x8c\xe6\x9c\x80\xe4\xb8\x8d\xe5\x8f\x91\xe8\xbe\xbe\xe5\x9b\xbd\xe5\xae\xb6\xef\xbc\x8c\xe5\x85\x8d\xe9\x99\xa4\xe5\x85\xb6\xe6\x88\xaa\xe8\x87\xb32005\xe5\xb9\xb4\xe5\xba\x95168\xe7\xac\x94\xe5\xaf\xb9\xe5\x8d\x8e\xe5\x88\xb0\xe6\x9c\x9f\xe6\x97\xa0\xe6\x81\xaf\xe8\xb4\xb7\xe6\xac\xbe\xe5\x80\xba\xe5\x8a\xa1\xe3\x80\x82\xe6\x8b\x9f\xe4\xba\x8e2007\xe5\xb9\xb4\xe5\xba\x95\xe5\x89\x8d\xe4\xb8\x8e\xe5\x8f\x97\xe6\x8f\xb4\xe5\x9b\xbd\xe5\x8a\x9e\xe7\x90\x86\xe5\xae\x8c\xe5\x85\x8d\xe5\x80\xba\xe5\x8d\x8f\xe8\xae\xae\xe3\x80\x82

- - - -

Chinese (Traditional - Hong Kong)

- -

\xe3\x80\x8c\xe6\x86\x82\xe9\xac\xb1\xe5\xb0\x8f\xe7\x8e\x8b\xe5\xad\x90\xe3\x80\x8d\xe6\x98\xaf\xe4\xb8\x80\xe5\x80\x8b\xe6\x95\x99\xe8\x82\xb2\xe7\xb6\xb2\xe7\xab\x99\xef\xbc\x8c\xe5\xae\x83\xe6\x88\x90\xe5\x8a\x9f\xe7\xb5\x90\xe5\x90\x88\xe4\xba\x86\xe9\xa6\x99\xe6\xb8\xaf\xe8\xb3\xbd\xe9\xa6\xac\xe6\x9c\x83\xe9\x98\xb2\xe6\xad\xa2\xe8\x87\xaa\xe6\xae\xba\xe7\xa0\x94\xe7\xa9\xb6\xe4\xb8\xad\xe5\xbf\x83\xe5\x90\x84\xe6\x96\xb9\xe9\x9d\xa2\xe7\x9a\x84\xe5\xb0\x88\xe6\x89\x8d\xef\xbc\x8c\xe7\x82\xba\xe9\x9d\x92\xe5\xb0\x91\xe5\xb9\xb4\xe4\xba\xba\xe6\x8f\x90\xe4\xbe\x9b\xe7\xb2\xbe\xe7\xa5\x9e\xe5\x81\xa5\xe5\xba\xb7\xe7\x9a\x84\xe8\xa8\x8a\xe6\x81\xaf\xef\xbc\x8c\xe5\xb0\x8d\xe6\x99\xae\xe5\x8f\x8a\xe6\x8a\x91\xe9\xac\xb1\xe7\x97\x87\xe7\x9f\xa5\xe8\xad\x98\xe7\x9a\x84\xe8\xb2\xa2\xe7\x8d\xbb\xe8\x89\xaf\xe5\xa4\x9a\xe3\x80\x82\xe5\x9c\xa8\xe9\xa6\x99\xe6\xb8\xaf\xef\xbc\x8c\xe5\xae\x83\xe6\x9b\xbe\xe7\x8d\xb2\xe9\x81\xb8\xe7\x82\xba\xe3\x80\x8c2004\xe5\xb9\xb4\xe5\x8d\x81\xe5\xa4\xa7\xe5\x81\xa5\xe5\xba\xb7\xe7\xb6\xb2\xe7\xab\x99\xe3\x80\x8d\xe4\xb9\x8b\xe4\xb8\x80\xef\xbc\x8c\xe8\xa9\xb2\xe9\xa0\x85\xe9\x81\xb8\xe8\x88\x89\xe8\x87\xaa2005\xe5\xb9\xb4\xe8\xb5\xb7\xe6\x94\xb9\xe5\x90\x8d\xe7\x8f\xbe\xe6\x99\x82\xe7\x9a\x84\xe3\x80\x8c\xe5\x84\xaa\xe7\xa7\x80\xe7\xb6\xb2\xe7\xab\x99\xe9\x81\xb8\xe8\x88\x89\xe3\x80\x8d\xe3\x80\x82\xe5\x85\xb6\xe8\xb2\xa2\xe7\x8d\xbb\xe5\x9c\xa8\xe5\x9c\x8b\xe9\x9a\x9b\xe9\x96\x93\xe4\xba\xa6\xe5\x82\x99\xe5\x8f\x97\xe8\x82\xaf\xe5\xae\x9a\xef\xbc\x8c2005\xe5\xb9\xb4\xef\xbc\x8c\xe8\xa9\xb2\xe7\xb6\xb2\xe7\xab\x99\xe6\xa6\xae\xe7\x8d\xb2\xe7\xac\xac\xe5\x85\xab\xe5\xb1\x86\xe3\x80\x8c\xe4\xba\x9e\xe6\xb4\xb2\xe5\x89\xb5\xe6\x96\xb0\xe5\xa4\xa7\xe7\x8d\x8e\xe3\x80\x8d\xe9\x8a\x80\xe7\x8d\x8e\xe3\x80\x82

- - - - -

Korean

-

\xed\x82\xa4\xec\x8a\xa4\xec\x9d\x98 \xea\xb3\xa0\xec\x9c\xa0\xec\xa1\xb0\xea\xb1\xb4\xec\x9d\x80 \xec\x9e\x85\xec\x88\xa0\xeb\x81\xbc\xeb\xa6\xac \xeb\xa7\x8c\xeb\x82\x98\xec\x95\xbc \xed\x95\x98\xea\xb3\xa0 \xed\x8a\xb9\xeb\xb3\x84\xed\x95\x9c \xea\xb8\xb0\xec\x88\xa0\xec\x9d\x80 \xed\x95\x84\xec\x9a\x94\xec\xb9\x98 \xec\x95\x8a\xeb\x8b\xa4.

- - - -
-"; - -//============================================================== -//============================================================== -//============================================================== - -include("../mpdf.php"); - -$mpdf=new mPDF('+aCJK','A4','','',32,25,27,25,16,13); -$mpdf->SetDisplayMode('fullpage'); - -$mpdf->SetTitle($utxt['zh-CN']); -$mpdf->SetAuthor($utxt['zh-CN']); - -// LOAD a stylesheet -$stylesheet = file_get_contents('mpdfstyleA4.css'); -$mpdf->WriteHTML($stylesheet,1); // The parameter 1 tells that this is css/style only and no body/html/text - -$mpdf->WriteHTML($html); - -$mpdf->Output(); -exit; -//============================================================== -//============================================================== -//============================================================== - - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/example28_CJK_using_embedded_fonts.php b/public_html/2022/newcms/pdf/examples/example28_CJK_using_embedded_fonts.php deleted file mode 100644 index 8fb5b61..0000000 --- a/public_html/2022/newcms/pdf/examples/example28_CJK_using_embedded_fonts.php +++ /dev/null @@ -1,89 +0,0 @@ - -p { text-align: justify; } -td { text-align: justify; } - -

mPDF

-

CJK Languages

- - - - -

Japanese (pangrams)

-
Iroha Uta
- -

\xe3\x81\x84\xe3\x82\x8d\xe3\x81\xaf\xe3\x81\xab\xe3\x81\xbb\xe3\x81\xb8\xe3\x81\xa8\xe3\x80\x80\xe3\x81\xa1\xe3\x82\x8a\xe3\x81\xac\xe3\x82\x8b\xe3\x82\x92\xe3\x80\x80\xe3\x82\x8f\xe3\x81\x8b\xe3\x82\x88\xe3\x81\x9f\xe3\x82\x8c\xe3\x81\x9d\xe3\x80\x80\xe3\x81\xa4\xe3\x81\xad\xe3\x81\xaa\xe3\x82\x89\xe3\x82\x80\xe3\x80\x80\xe3\x81\x86\xe3\x82\x90\xe3\x81\xae\xe3\x81\x8a\xe3\x81\x8f\xe3\x82\x84\xe3\x81\xbe\xe3\x80\x80\xe3\x81\x91\xe3\x81\xb5\xe3\x81\x93\xe3\x81\x88\xe3\x81\xa6\xe3\x80\x80\xe3\x81\x82\xe3\x81\x95\xe3\x81\x8d\xe3\x82\x86\xe3\x82\x81\xe3\x81\xbf\xe3\x81\x97\xe3\x80\x80\xe3\x82\x91\xe3\x81\xb2\xe3\x82\x82\xe3\x81\x9b\xe3\x81\x99

- -

\xe8\x89\xb2\xe3\x81\xaf\xe5\x8c\x82\xe3\x81\xb8\xe3\x81\xa9\xe3\x80\x80\xe6\x95\xa3\xe3\x82\x8a\xe3\x81\xac\xe3\x82\x8b\xe3\x82\x92\xe3\x80\x80\xe6\x88\x91\xe3\x81\x8c\xe4\xb8\x96\xe8\xaa\xb0\xe3\x81\x9e\xe3\x80\x80\xe5\xb8\xb8\xe3\x81\xaa\xe3\x82\x89\xe3\x82\x80\xe3\x80\x80\xe6\x9c\x89\xe7\x82\xba\xe3\x81\xae\xe5\xa5\xa5\xe5\xb1\xb1\xe3\x80\x80\xe4\xbb\x8a\xe6\x97\xa5\xe8\xb6\x8a\xe3\x81\x88\xe3\x81\xa6\xe3\x80\x80\xe6\xb5\x85\xe3\x81\x8d\xe5\xa4\xa2\xe8\xa6\x8b\xe3\x81\x98\xe3\x80\x80\xe9\x85\x94\xe3\x81\xb2\xe3\x82\x82\xe3\x81\x9b\xe3\x81\x9a\xef\xbc\x88\xe3\x82\x93\xef\xbc\x89

- -
Tori Naku Uta
- -

\xe3\x81\xa8\xe3\x82\x8a\xe3\x81\xaa\xe3\x81\x8f\xe3\x81\x93\xe3\x82\x91\xe3\x81\x99\xe3\x80\x80\xe3\x82\x86\xe3\x82\x81\xe3\x81\x95\xe3\x81\xbe\xe3\x81\x9b\xe3\x80\x80\xe3\x81\xbf\xe3\x82\x88\xe3\x81\x82\xe3\x81\x91\xe3\x82\x8f\xe3\x81\x9f\xe3\x82\x8b\xe3\x80\x80\xe3\x81\xb2\xe3\x82\x93\xe3\x81\x8b\xe3\x81\x97\xe3\x82\x92\xe3\x80\x80\xe3\x81\x9d\xe3\x82\x89\xe3\x81\x84\xe3\x82\x8d\xe3\x81\xaf\xe3\x81\x88\xe3\x81\xa6\xe3\x80\x80\xe3\x81\x8a\xe3\x81\x8d\xe3\x81\xa4\xe3\x81\xb8\xe3\x81\xab\xe3\x80\x80\xe3\x81\xbb\xe3\x81\xb5\xe3\x81\xad\xe3\x82\x80\xe3\x82\x8c\xe3\x82\x90\xe3\x81\xac\xe3\x80\x80\xe3\x82\x82\xe3\x82\x84\xe3\x81\xae\xe3\x81\x86\xe3\x81\xa1

- -

\xe9\xb3\xa5\xe5\x95\xbc\xe3\x81\x8f\xe5\xa3\xb0\xe3\x81\x99\xe3\x80\x80\xe5\xa4\xa2\xe8\xa6\x9a\xe3\x81\xbe\xe3\x81\x9b\xe3\x80\x80\xe8\xa6\x8b\xe3\x82\x88\xe6\x98\x8e\xe3\x81\x91\xe6\xb8\xa1\xe3\x82\x8b\xe3\x80\x80\xe6\x9d\xb1\xe3\x82\x92\xe3\x80\x80\xe7\xa9\xba\xe8\x89\xb2\xe6\xa0\x84\xe3\x81\x88\xe3\x81\xa6\xe3\x80\x80\xe6\xb2\x96\xe3\x81\xa4\xe8\xbe\xba\xe3\x81\xab\xe3\x80\x80\xe5\xb8\x86\xe8\x88\xb9\xe7\xbe\xa4\xe3\x82\x8c\xe3\x82\x90\xe3\x81\xac\xe3\x80\x80\xe9\x9d\x84\xe3\x81\xae\xe4\xb8\xad

- -
Ametsuchi No Uta
- -

\xe3\x81\x82\xe3\x82\x81 \xe3\x81\xa4\xe3\x81\xa1 \xe3\x81\xbb\xe3\x81\x97 \xe3\x81\x9d\xe3\x82\x89 / \xe3\x82\x84\xe3\x81\xbe \xe3\x81\x8b\xe3\x81\xaf \xe3\x81\xbf\xe3\x81\xad \xe3\x81\x9f\xe3\x81\xab / \xe3\x81\x8f\xe3\x82\x82 \xe3\x81\x8d\xe3\x82\x8a \xe3\x82\x80\xe3\x82\x8d \xe3\x81\x93\xe3\x81\x91 / \xe3\x81\xb2\xe3\x81\xa8 \xe3\x81\x84\xe3\x81\xac \xe3\x81\x86\xe3\x81\xb8 \xe3\x81\x99\xe3\x82\x91 / \xe3\x82\x86\xe3\x82\x8f \xe3\x81\x95\xe3\x82\x8b \xe3\x81\x8a\xe3\x81\xb5 \xe3\x81\x9b\xe3\x82\x88 / \xe3\x81\x88\xe3\x81\xae\xe3\x81\x88*\xe3\x82\x92 \xe3\x81\xaa\xe3\x82\x8c \xe3\x82\x90\xe3\x81\xa6

- -

\xe5\xa4\xa9 \xe5\x9c\xb0 \xe6\x98\x9f \xe7\xa9\xba / \xe5\xb1\xb1 \xe5\xb7\x9d \xe5\xb3\xb0 \xe8\xb0\xb7 / \xe9\x9b\xb2 \xe9\x9c\xa7 \xe5\xae\xa4 \xe8\x8b\x94 / \xe4\xba\xba \xe7\x8a\xac \xe4\xb8\x8a \xe6\x9c\xab / \xe7\xa1\xab\xe9\xbb\x84 \xe7\x8c\xbf \xe7\x94\x9f\xe3\x81\xb5 \xe7\x82\xba\xe3\x82\x88 / \xe6\xa6\x8e\xe3\x81\xae \xe6\x9e\x9d\xe3\x82\x92 \xe9\xa6\xb4\xe3\x82\x8c \xe5\xb1\x85\xe3\x81\xa6

- -
Taini no Uta
- -

\xe3\x81\x9f\xe3\x82\x90\xe3\x81\xab\xe3\x81\x84\xe3\x81\xa6\xe3\x80\x80\xe3\x81\xaa\xe3\x81\xa4\xe3\x82\x80\xe3\x82\x8f\xe3\x82\x8c\xe3\x82\x92\xe3\x81\x9d\xe3\x80\x80\xe3\x81\x8d\xe3\x81\xbf\xe3\x82\x81\xe3\x81\x99\xe3\x81\xa8\xe3\x80\x80\xe3\x81\x82\xe3\x81\x95\xe3\x82\x8a\xe3\x81\x8a\xe3\x81\xb2\xe3\x82\x86\xe3\x81\x8f\xe3\x80\x80\xe3\x82\x84\xe3\x81\xbe\xe3\x81\x97\xe3\x82\x8d\xe3\x81\xae\xe3\x80\x80\xe3\x81\x86\xe3\x81\xa1\xe3\x82\x91\xe3\x81\xb8\xe3\x82\x8b\xe3\x81\x93\xe3\x82\x89\xe3\x80\x80\xe3\x82\x82\xe3\x81\xaf\xe3\x81\xbb\xe3\x81\x9b\xe3\x82\x88\xe3\x80\x80\xe3\x81\x88\xe3\x81\xb5\xe3\x81\xad\xe3\x81\x8b\xe3\x81\x91\xe3\x81\xac

- -

\xe7\x94\xb0\xe5\xb1\x85\xe3\x81\xab\xe5\x87\xba\xe3\x81\xa7\xe3\x80\x80\xe8\x8f\x9c\xe6\x91\x98\xe3\x82\x80\xe3\x82\x8f\xe3\x82\x8c\xe3\x82\x92\xe3\x81\x9e\xe3\x80\x80\xe5\x90\x9b\xe5\x8f\xac\xe3\x81\x99\xe3\x81\xa8\xe3\x80\x80\xe6\xb1\x82\xe9\xa3\x9f\xe3\x82\x8a\xe8\xbf\xbd\xe3\x81\xb2\xe3\x82\x86\xe3\x81\x8f\xe3\x80\x80\xe5\xb1\xb1\xe5\x9f\x8e\xe3\x81\xae\xe3\x80\x80\xe6\x89\x93\xe9\x85\x94\xe3\x81\xb8\xe3\x82\x8b\xe5\xad\x90\xe3\x82\x89\xe3\x80\x80\xe8\x97\xbb\xe8\x91\x89\xe5\xb9\xb2\xe3\x81\x9b\xe3\x82\x88\xe3\x80\x80\xe3\x81\x88\xe8\x88\x9f\xe7\xb9\x8b\xe3\x81\x91\xe3\x81\xac

- - - -

Chinese (simplified) GB2312

- -

\xe6\x9d\xa5\xe8\x87\xaa\xe5\x95\x86\xe5\x8a\xa1\xe9\x83\xa8\xe6\x96\xb0\xe9\x97\xbb\xe5\x8a\x9e\xe5\x85\xac\xe5\xae\xa4\xe7\x9a\x84\xe6\xb6\x88\xe6\x81\xaf\xe7\xa7\xb0\xef\xbc\x8c\xe4\xb8\xad\xe6\x96\xb9\xe5\x85\x8d\xe9\x99\xa4\xe4\xb8\x8e\xe4\xb8\xad\xe5\x9b\xbd\xe6\x9c\x89\xe5\xa4\x96\xe4\xba\xa4\xe5\x85\xb3\xe7\xb3\xbb\xe7\x9a\x84\xe6\x89\x80\xe6\x9c\x89\xe9\x9d\x9e\xe6\xb4\xb2\xe9\x87\x8d\xe5\x80\xba\xe7\xa9\xb7\xe5\x9b\xbd\xe5\x8f\x8a\xe6\x9c\x80\xe4\xb8\x8d\xe5\x8f\x91\xe8\xbe\xbe\xe5\x9b\xbd\xe5\xae\xb6\xe6\x88\xaa\xe8\x87\xb32005\xe5\xb9\xb4\xe5\xba\x95\xe5\xaf\xb9\xe5\x8d\x8e\xe5\x88\xb0\xe6\x9c\x9f\xe6\x94\xbf\xe5\xba\x9c\xe6\x97\xa0\xe6\x81\xaf\xe8\xb4\xb7\xe6\xac\xbe\xe5\x80\xba\xe5\x8a\xa1\xe3\x80\x82\xe6\x9c\x89\xe5\x85\xb3\xe9\x83\xa8\xe9\x97\xa8\xe5\xb7\xb2\xe5\xaf\xb9\xe7\x9b\xb8\xe5\x85\xb3\xe5\x80\xba\xe5\x8a\xa1\xe8\xbf\x9b\xe8\xa1\x8c\xe5\x85\xa8\xe9\x9d\xa2\xe6\xb8\x85\xe7\x90\x86\xe6\xa0\xb8\xe5\xaf\xb9\xef\xbc\x8c\xe5\xaf\xb9\xe4\xb8\x8e\xe4\xb8\xad\xe5\x9b\xbd\xe6\x9c\x89\xe5\xa4\x96\xe4\xba\xa4\xe5\x85\xb3\xe7\xb3\xbb\xe7\x9a\x8433\xe4\xb8\xaa\xe9\x9d\x9e\xe6\xb4\xb2\xe9\x87\x8d\xe5\x80\xba\xe7\xa9\xb7\xe5\x9b\xbd\xe5\x92\x8c\xe6\x9c\x80\xe4\xb8\x8d\xe5\x8f\x91\xe8\xbe\xbe\xe5\x9b\xbd\xe5\xae\xb6\xef\xbc\x8c\xe5\x85\x8d\xe9\x99\xa4\xe5\x85\xb6\xe6\x88\xaa\xe8\x87\xb32005\xe5\xb9\xb4\xe5\xba\x95168\xe7\xac\x94\xe5\xaf\xb9\xe5\x8d\x8e\xe5\x88\xb0\xe6\x9c\x9f\xe6\x97\xa0\xe6\x81\xaf\xe8\xb4\xb7\xe6\xac\xbe\xe5\x80\xba\xe5\x8a\xa1\xe3\x80\x82\xe6\x8b\x9f\xe4\xba\x8e2007\xe5\xb9\xb4\xe5\xba\x95\xe5\x89\x8d\xe4\xb8\x8e\xe5\x8f\x97\xe6\x8f\xb4\xe5\x9b\xbd\xe5\x8a\x9e\xe7\x90\x86\xe5\xae\x8c\xe5\x85\x8d\xe5\x80\xba\xe5\x8d\x8f\xe8\xae\xae\xe3\x80\x82

- - - -

Chinese (Traditional - Hong Kong)

- -

\xe3\x80\x8c\xe6\x86\x82\xe9\xac\xb1\xe5\xb0\x8f\xe7\x8e\x8b\xe5\xad\x90\xe3\x80\x8d\xe6\x98\xaf\xe4\xb8\x80\xe5\x80\x8b\xe6\x95\x99\xe8\x82\xb2\xe7\xb6\xb2\xe7\xab\x99\xef\xbc\x8c\xe5\xae\x83\xe6\x88\x90\xe5\x8a\x9f\xe7\xb5\x90\xe5\x90\x88\xe4\xba\x86\xe9\xa6\x99\xe6\xb8\xaf\xe8\xb3\xbd\xe9\xa6\xac\xe6\x9c\x83\xe9\x98\xb2\xe6\xad\xa2\xe8\x87\xaa\xe6\xae\xba\xe7\xa0\x94\xe7\xa9\xb6\xe4\xb8\xad\xe5\xbf\x83\xe5\x90\x84\xe6\x96\xb9\xe9\x9d\xa2\xe7\x9a\x84\xe5\xb0\x88\xe6\x89\x8d\xef\xbc\x8c\xe7\x82\xba\xe9\x9d\x92\xe5\xb0\x91\xe5\xb9\xb4\xe4\xba\xba\xe6\x8f\x90\xe4\xbe\x9b\xe7\xb2\xbe\xe7\xa5\x9e\xe5\x81\xa5\xe5\xba\xb7\xe7\x9a\x84\xe8\xa8\x8a\xe6\x81\xaf\xef\xbc\x8c\xe5\xb0\x8d\xe6\x99\xae\xe5\x8f\x8a\xe6\x8a\x91\xe9\xac\xb1\xe7\x97\x87\xe7\x9f\xa5\xe8\xad\x98\xe7\x9a\x84\xe8\xb2\xa2\xe7\x8d\xbb\xe8\x89\xaf\xe5\xa4\x9a\xe3\x80\x82\xe5\x9c\xa8\xe9\xa6\x99\xe6\xb8\xaf\xef\xbc\x8c\xe5\xae\x83\xe6\x9b\xbe\xe7\x8d\xb2\xe9\x81\xb8\xe7\x82\xba\xe3\x80\x8c2004\xe5\xb9\xb4\xe5\x8d\x81\xe5\xa4\xa7\xe5\x81\xa5\xe5\xba\xb7\xe7\xb6\xb2\xe7\xab\x99\xe3\x80\x8d\xe4\xb9\x8b\xe4\xb8\x80\xef\xbc\x8c\xe8\xa9\xb2\xe9\xa0\x85\xe9\x81\xb8\xe8\x88\x89\xe8\x87\xaa2005\xe5\xb9\xb4\xe8\xb5\xb7\xe6\x94\xb9\xe5\x90\x8d\xe7\x8f\xbe\xe6\x99\x82\xe7\x9a\x84\xe3\x80\x8c\xe5\x84\xaa\xe7\xa7\x80\xe7\xb6\xb2\xe7\xab\x99\xe9\x81\xb8\xe8\x88\x89\xe3\x80\x8d\xe3\x80\x82\xe5\x85\xb6\xe8\xb2\xa2\xe7\x8d\xbb\xe5\x9c\xa8\xe5\x9c\x8b\xe9\x9a\x9b\xe9\x96\x93\xe4\xba\xa6\xe5\x82\x99\xe5\x8f\x97\xe8\x82\xaf\xe5\xae\x9a\xef\xbc\x8c2005\xe5\xb9\xb4\xef\xbc\x8c\xe8\xa9\xb2\xe7\xb6\xb2\xe7\xab\x99\xe6\xa6\xae\xe7\x8d\xb2\xe7\xac\xac\xe5\x85\xab\xe5\xb1\x86\xe3\x80\x8c\xe4\xba\x9e\xe6\xb4\xb2\xe5\x89\xb5\xe6\x96\xb0\xe5\xa4\xa7\xe7\x8d\x8e\xe3\x80\x8d\xe9\x8a\x80\xe7\x8d\x8e\xe3\x80\x82

- - - - -

Korean

-

\xed\x82\xa4\xec\x8a\xa4\xec\x9d\x98 \xea\xb3\xa0\xec\x9c\xa0\xec\xa1\xb0\xea\xb1\xb4\xec\x9d\x80 \xec\x9e\x85\xec\x88\xa0\xeb\x81\xbc\xeb\xa6\xac \xeb\xa7\x8c\xeb\x82\x98\xec\x95\xbc \xed\x95\x98\xea\xb3\xa0 \xed\x8a\xb9\xeb\xb3\x84\xed\x95\x9c \xea\xb8\xb0\xec\x88\xa0\xec\x9d\x80 \xed\x95\x84\xec\x9a\x94\xec\xb9\x98 \xec\x95\x8a\xeb\x8b\xa4.

- - -"; - -//============================================================== -//============================================================== -//============================================================== - -include("../mpdf.php"); - -$mpdf=new mPDF('-aCJK','A4','','',32,25,27,25,16,13); -$mpdf->SetDisplayMode('fullpage'); - -$mpdf->SetTitle($utxt['zh-CN']); -$mpdf->SetAuthor($utxt['zh-CN']); - -// LOAD a stylesheet -$stylesheet = file_get_contents('mpdfstyleA4.css'); -$mpdf->WriteHTML($stylesheet,1); // The parameter 1 tells that this is css/style only and no body/html/text - -$mpdf->WriteHTML($html); - -$mpdf->Output(); -exit; -//============================================================== -//============================================================== -//============================================================== - - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/example29_multilingual_autofont.php b/public_html/2022/newcms/pdf/examples/example29_multilingual_autofont.php deleted file mode 100644 index 1ca99f2..0000000 --- a/public_html/2022/newcms/pdf/examples/example29_multilingual_autofont.php +++ /dev/null @@ -1,400 +0,0 @@ - - -body { font-family: sans; text-align: justify; } -p { font-family: sans; } -div { font-family: sans; } - - - -

This document includes many languages. Selection of appropriate fonts is done automatically by using AutoFont.

-

Pangrams - (from Wikipedia)

-

The quick brown fox jumps over a lazy dog

- -

Bulgarian

-

\xd0\x96\xd1\x8a\xd0\xbb\xd1\x82\xd0\xb0\xd1\x82\xd0\xb0 \xd0\xb4\xd1\x8e\xd0\xbb\xd1\x8f \xd0\xb1\xd0\xb5\xd1\x88\xd0\xb5 \xd1\x89\xd0\xb0\xd1\x81\xd1\x82\xd0\xbb\xd0\xb8\xd0\xb2\xd0\xb0, \xd1\x87\xd0\xb5 \xd0\xbf\xd1\x83\xd1\x85\xd1\x8a\xd1\x82, \xd0\xba\xd0\xbe\xd0\xb9\xd1\x82\xd0\xbe \xd1\x86\xd1\x8a\xd1\x84\xd0\xbd\xd0\xb0, \xd0\xb7\xd0\xb0\xd0\xbc\xd1\x80\xd1\x8a\xd0\xb7\xd0\xbd\xd0\xb0 \xd0\xba\xd0\xb0\xd1\x82\xd0\xbe \xd0\xb3\xd1\x8c\xd0\xbe\xd0\xbd.

- -

\xd0\x97\xd0\xb0 \xd0\xbc\xd0\xb8\xd0\xb3 \xd0\xb1\xd1\x8f\xd1\x85 \xd0\xb2 \xd1\x87\xd1\x83\xd0\xb6\xd0\xb4 \xd0\xbf\xd0\xbb\xd1\x8e\xd1\x88\xd0\xb5\xd0\xbd \xd1\x81\xd0\xba\xd1\x8a\xd1\x80\xd1\x86\xd0\xb0\xd1\x89 \xd1\x84\xd0\xbe\xd1\x82\xd1\x8c\xd0\xbe\xd0\xb9\xd0\xbb.

- -

Catalan

-

Jove xef, porti whisky amb quinze gla\xc3\xa7ons d'hidrogen, coi!

- -

Aqueix betzol, Jan, comprava whisky de figa

- -

Czech

-

P\xc5\x99\xc3\xadli\xc5\xa1 \xc5\xbelu\xc5\xa5ou\xc4\x8dk\xc3\xbd k\xc5\xaf\xc5\x88 \xc3\xbap\xc4\x9bl \xc4\x8f\xc3\xa1belsk\xc3\xa9 \xc3\xb3dy

- -

Danish

-

H\xc3\xb8j bly gom vandt fr\xc3\xa6k sexquiz p\xc3\xa5 wc

- -

Dutch

-

Doch Bep, flink sexy qua vorm, zwijgt

- -

Pa's wijze lynx bezag vroom het fikse aquaduct

- -

Finnish

-

T\xc3\xb6rkylempij\xc3\xa4 vongahdus

- -

French

-

Portez ce vieux whisky au juge blond qui fume

- -

B\xc3\xa2chez la queue du wagon-taxi avec les pyjamas du fakir

- -

Voyez le brick g\xc3\xa9ant que j'examine pr\xc3\xa8s du wharf

- -

German

-

Victor jagt zw\xc3\xb6lf Boxk\xc3\xa4mpfer quer \xc3\xbcber den gro\xc3\x9fen Sylter Deich

- -

\"Fix, Schwyz!\" qu\xc3\xa4kt J\xc3\xbcrgen bl\xc3\xb6d vom Pa\xc3\x9f

- -

\"Falsches \xc3\x9cben von Xylophonmusik qu\xc3\xa4lt jeden gr\xc3\xb6\xc3\x9feren Zwerg\"

- -

Hungarian

-

Egy h\xc5\xb1tlen vej\xc3\xa9t f\xc3\xbcl\xc3\xb6ncs\xc3\xadp\xc5\x91, d\xc3\xbch\xc3\xb6s mexik\xc3\xb3i \xc3\xbar Wessel\xc3\xa9nyin\xc3\xa9l m\xc3\xa1zol Quit\xc3\xb3ban.

- -

Icelandic

-

K\xc3\xa6mi n\xc3\xbd \xc3\xb6xi h\xc3\xa9r ykist \xc3\xbej\xc3\xb3fum n\xc3\xba b\xc3\xa6\xc3\xb0i v\xc3\xadl og \xc3\xa1drepa

- -

Irish

-

D'fhuascail \xc3\x8dosa \xc3\x9armhac na h\xc3\x93ighe Beannaithe p\xc3\xb3r \xc3\x89ava agus \xc3\x81dhaimh

- -

D'\xe1\xb8\x9fuascail \xc3\x8dosa \xc3\x9ar\xe1\xb9\x81ac na h\xc3\x93i\xc4\xa1e Beannai\xe1\xb9\xabe p\xc3\xb3r \xc3\x89a\xe1\xb8\x83a agus \xc3\x81\xe1\xb8\x8bai\xe1\xb9\x81

- -

Italian

-

\"Quel fez sghembo copre davanti\"

- -

\"Ma la volpe col suo balzo ha raggiunto il quieto Fido\"

- -

\"Quel vituperabile xenofobo zelante assaggia il whisky ed esclama: alleluja!\"

- -

Lithuanian

-

\xc4\xaelinkdama fechtuotojo \xc5\xa1paga sublyk\xc4\x8diojusi pragr\xc4\x99\xc5\xbe\xc4\x97 apval\xc5\xb3 arb\xc5\xabz\xc4\x85

- -

Norwegian

-

V\xc3\xa5r s\xc3\xa6re Zulu fra bade\xc3\xb8ya spilte jo whist og quickstep i min taxi.

- -

H\xc3\xb8vdingens kj\xc3\xa6re squaw f\xc3\xa5r litt pizza i Mexico by

- -

Polish

-

P\xc3\xb3jd\xc5\xba\xc5\xbce, ki\xc5\x84 t\xc4\x99 chmurno\xc5\x9b\xc4\x87 w g\xc5\x82\xc4\x85b flaszy!

- -

Pchn\xc4\x85\xc4\x87 w t\xc4\x99 \xc5\x82\xc3\xb3d\xc5\xba je\xc5\xbca lub o\xc5\x9bm skrzy\xc5\x84 fig.

- -

M\xc4\x99\xc5\xbcny b\xc4\x85d\xc5\xba, chro\xc5\x84 pu\xc5\x82k tw\xc3\xb3j i sze\xc5\x9b\xc4\x87 flag.

- -

Portuguese

-

Blitz prende ex-vesgo com cheque fajuto.

- -

Gazeta publica hoje no jornal uma breve nota de faxina na quermesse.

- -

\xc3\x80 noite, vov\xc3\xb4 Kowalsky v\xc3\xaa o \xc3\xadm\xc3\xa3 cair no p\xc3\xa9 do ping\xc3\xbcim queixoso e vov\xc3\xb3 p\xc3\xb5e a\xc3\xa7\xc3\xbacar no ch\xc3\xa1 de t\xc3\xa2maras do jabuti feliz.

- -

Lu\xc3\xads arg\xc3\xbcia \xc3\xa0 J\xc3\xbalia que \xc2\xabbra\xc3\xa7\xc3\xb5es, f\xc3\xa9, ch\xc3\xa1, \xc3\xb3xido, p\xc3\xb4r, z\xc3\xa2ng\xc3\xa3o\xc2\xbb eram palavras do portugu\xc3\xaas.

- -

Romanian

-

Gheorghe, obezul, a reu\xc5\x9fit s\xc4\x83 ob\xc5\xa3in\xc4\x83 juc\xc3\xa2ndu-se un flux \xc3\xaen Quebec de o mie kilowa\xc5\xa3ior\xc4\x83.

- -

Russian

-

\xd0\x92 \xd1\x87\xd0\xb0\xd1\x89\xd0\xb0\xd1\x85 \xd1\x8e\xd0\xb3\xd0\xb0 \xd0\xb6\xd0\xb8\xd0\xbb \xd0\xb1\xd1\x8b \xd1\x86\xd0\xb8\xd1\x82\xd1\x80\xd1\x83\xd1\x81? \xd0\x94\xd0\xb0, \xd0\xbd\xd0\xbe \xd1\x84\xd0\xb0\xd0\xbb\xd1\x8c\xd1\x88\xd0\xb8\xd0\xb2\xd1\x8b\xd0\xb9 \xd1\x8d\xd0\xba\xd0\xb7\xd0\xb5\xd0\xbc\xd0\xbf\xd0\xbb\xd1\x8f\xd1\x80!

- -

(Using quasiobsolete spelling for last word to include \xd1\x8a) \xd0\x92 \xd1\x87\xd0\xb0\xd1\x89\xd0\xb0\xd1\x85 \xd1\x8e\xd0\xb3\xd0\xb0 \xd0\xb6\xd0\xb8\xd0\xbb \xd0\xb1\xd1\x8b \xd1\x86\xd0\xb8\xd1\x82\xd1\x80\xd1\x83\xd1\x81? \xd0\x94\xd0\xb0, \xd0\xbd\xd0\xbe \xd1\x84\xd0\xb0\xd0\xbb\xd1\x8c\xd1\x88\xd0\xb8\xd0\xb2\xd1\x8b\xd0\xb9 \xd1\x8d\xd0\xba\xd0\xb7\xd0\xb5\xd0\xbc\xd0\xbf\xd0\xbb\xd1\x8f\xd1\x80\xd1\x8a!

- -

\xd0\xad\xd1\x85, \xd1\x87\xd1\x83\xd0\xb6\xd0\xb0\xd0\xba! \xd0\x9e\xd0\xb1\xd1\x89\xd0\xb8\xd0\xb9 \xd1\x81\xd1\x8a\xd1\x91\xd0\xbc \xd1\x86\xd0\xb5\xd0\xbd \xd1\x88\xd0\xbb\xd1\x8f\xd0\xbf (\xd1\x8e\xd1\x84\xd1\x82\xd1\x8c) \xe2\x80\x94 \xd0\xb2\xd0\xb4\xd1\x80\xd1\x8b\xd0\xb7\xd0\xb3!

- -

\xd0\xad\xd0\xba\xd1\x81-\xd0\xb3\xd1\x80\xd0\xb0\xd1\x84? \xd0\x9f\xd0\xbb\xd1\x8e\xd1\x88 \xd0\xb8\xd0\xb7\xd1\x8a\xd1\x8f\xd1\x82. \xd0\x91\xd1\x8c\xd1\x91\xd0\xbc \xd1\x87\xd1\x83\xd0\xb6\xd0\xb4\xd1\x8b\xd0\xb9 \xd1\x86\xd0\xb5\xd0\xbd \xd1\x85\xd0\xb2\xd0\xbe\xd1\x89!

- -

\xd0\xa1\xd1\x8a\xd0\xb5\xd1\x88\xd1\x8c \xd0\xb5\xd1\x89\xd1\x91 \xd1\x8d\xd1\x82\xd0\xb8\xd1\x85 \xd0\xbc\xd1\x8f\xd0\xb3\xd0\xba\xd0\xb8\xd1\x85 \xd1\x84\xd1\x80\xd0\xb0\xd0\xbd\xd1\x86\xd1\x83\xd0\xb7\xd1\x81\xd0\xba\xd0\xb8\xd1\x85 \xd0\xb1\xd1\x83\xd0\xbb\xd0\xbe\xd0\xba, \xd0\xb4\xd0\xb0 \xd0\xb2\xd1\x8b\xd0\xbf\xd0\xb5\xd0\xb9 \xd0\xb6\xd0\xb5 \xd1\x87\xd0\xb0\xd1\x8e.

- -

\xd0\xa8\xd0\xb8\xd1\x80\xd0\xbe\xd0\xba\xd0\xb0\xd1\x8f \xd1\x8d\xd0\xbb\xd0\xb5\xd0\xba\xd1\x82\xd1\x80\xd0\xb8\xd1\x84\xd0\xb8\xd0\xba\xd0\xb0\xd1\x86\xd0\xb8\xd1\x8f \xd1\x8e\xd0\xb6\xd0\xbd\xd1\x8b\xd1\x85 \xd0\xb3\xd1\x83\xd0\xb1\xd0\xb5\xd1\x80\xd0\xbd\xd0\xb8\xd0\xb9 \xd0\xb4\xd0\xb0\xd1\x81\xd1\x82 \xd0\xbc\xd0\xbe\xd1\x89\xd0\xbd\xd1\x8b\xd0\xb9 \xd1\x82\xd0\xbe\xd0\xbb\xd1\x87\xd0\xbe\xd0\xba \xd0\xbf\xd0\xbe\xd0\xb4\xd1\x8a\xd1\x91\xd0\xbc\xd1\x83 \xd1\x81\xd0\xb5\xd0\xbb\xd1\x8c\xd1\x81\xd0\xba\xd0\xbe\xd0\xb3\xd0\xbe \xd1\x85\xd0\xbe\xd0\xb7\xd1\x8f\xd0\xb9\xd1\x81\xd1\x82\xd0\xb2\xd0\xb0.

- -

Serbian

-

\xd0\x89\xd1\x83\xd0\xb1\xd0\xb0\xd0\xb7\xd0\xbd\xd0\xb8 \xd1\x84\xd0\xb5\xd1\x9a\xd0\xb5\xd1\x80\xd1\x9f\xd0\xb8\xd1\x98\xd0\xb0 \xd1\x87\xd0\xb0\xd1\x92\xd0\xb0\xd0\xb2\xd0\xbe\xd0\xb3 \xd0\xbb\xd0\xb8\xd1\x86\xd0\xb0 \xd1\x85\xd0\xbe\xd1\x9b\xd0\xb5 \xd0\xb4\xd0\xb0 \xd0\xbc\xd0\xb8 \xd0\xbf\xd0\xbe\xd0\xba\xd0\xb0\xd0\xb6\xd0\xb5 \xd1\x88\xd1\x82\xd0\xbe\xd1\x81.

- -

Ljubazni fenjerd\xc5\xbeija \xc4\x8da\xc4\x91avog lica ho\xc4\x87e da mi poka\xc5\xbee \xc5\xa1tos.

- -

Slovene

-

\xc5\xa0erif bo za vajo spet kuhal doma\xc4\x8de \xc5\xbegance

- -

Pi\xc5\xa1kur mol\xc4\x8de grabi fi\xc5\xbeol z dna cezijeve hoste

- -

Spanish

-

El veloz murci\xc3\xa9lago hind\xc3\xba com\xc3\xada feliz cardillo y kiwi. La cig\xc3\xbce\xc3\xb1a tocaba el saxof\xc3\xb3n detr\xc3\xa1s del palenque de paja.

- -

El ping\xc3\xbcino Wenceslao hizo kil\xc3\xb3metros bajo exhaustiva lluvia y fr\xc3\xado, a\xc3\xb1oraba a su querido cachorro.

- -

Jovencillo emponzo\xc3\xb1ado de whisky: \xc2\xa1qu\xc3\xa9 figurota exhibe!

- -

Ese libro explica en su ep\xc3\xadgrafe las haza\xc3\xb1as y aventuras de Don Quijote de la Mancha en Kuwait.

- -

Queda gazpacho, fibra, l\xc3\xa1tex, jam\xc3\xb3n, kiwi y vi\xc3\xb1as.

- -

Whisky bueno: \xc2\xa1excitad mi fr\xc3\xa1gil peque\xc3\xb1a vejez!

- -

Swedish

-

Flygande b\xc3\xa4ckasiner s\xc3\xb6ka hwila p\xc3\xa5 mjuka tuvor.

- -

Yxskaftbud, ge v\xc3\xa5r wczonm\xc3\xb6 iqhj\xc3\xa4lp.

- -

Ukrainian

-

\xd0\xa7\xd1\x83\xd1\x94\xd1\x88 \xd1\x97\xd1\x85, \xd0\xb4\xd0\xbe\xd1\x86\xd1\x8e, \xd0\xb3\xd0\xb0? \xd0\x9a\xd1\x83\xd0\xbc\xd0\xb5\xd0\xb4\xd0\xbd\xd0\xb0 \xd0\xb6 \xd1\x82\xd0\xb8, \xd0\xbf\xd1\x80\xd0\xbe\xd1\x89\xd0\xb0\xd0\xb9\xd1\x81\xd1\x8f \xd0\xb1\xd0\xb5\xd0\xb7 \xd2\x91\xd0\xbe\xd0\xbb\xd1\x8c\xd1\x84\xd1\x96\xd0\xb2!

- -

\xd0\x96\xd0\xb5\xd0\xb1\xd1\x80\xd0\xb0\xd0\xba\xd1\x83\xd1\x8e\xd1\x82\xd1\x8c \xd1\x84\xd1\x96\xd0\xbb\xd0\xbe\xd1\x81\xd0\xbe\xd1\x84\xd0\xb8 \xd0\xbf\xd1\x80\xd0\xb8 \xd2\x91\xd0\xb0\xd0\xbd\xd0\xba\xd1\x83 \xd1\x86\xd0\xb5\xd1\x80\xd0\xba\xd0\xb2\xd0\xb8 \xd0\xb2 \xd0\x93\xd0\xb0\xd0\xb4\xd1\x8f\xd1\x87\xd1\x96, \xd1\x89\xd0\xb5 \xd0\xb9 \xd1\x88\xd0\xb0\xd1\x82\xd1\x80\xd0\xbe \xd1\x97\xd1\x85\xd0\xbd\xd1\x94 \xd0\xbf'\xd1\x8f\xd0\xbd\xd0\xb5 \xd0\xb7\xd0\xbd\xd0\xb0\xd1\x94\xd0\xbc\xd0\xbe.

- -

Turkish (pangram)

-

Pijamal\xc4\xb1 hasta ya\xc4\x9f\xc4\xb1z \xc5\x9fof\xc3\xb6re \xc3\xa7abucak g\xc3\xbcvendi.

- -

Greek

-
Monotonic
-

\xce\xa0\xce\xac\xcf\x84\xce\xb5\xcf\x81 \xce\xb7\xce\xbc\xcf\x8e\xce\xbd \xce\xbf \xce\xb5\xce\xbd \xcf\x84\xce\xbf\xce\xb9\xcf\x82 \xce\xbf\xcf\x85\xcf\x81\xce\xb1\xce\xbd\xce\xbf\xce\xaf\xcf\x82 \xce\xb1\xce\xb3\xce\xb9\xce\xb1\xcf\x83\xce\xb8\xce\xae\xcf\x84\xcf\x89 \xcf\x84\xce\xbf \xcf\x8c\xce\xbd\xce\xbf\xce\xbc\xce\xac \xcf\x83\xce\xbf\xcf\x85\xc2\xb7 \xce\xb5\xce\xbb\xce\xb8\xce\xad\xcf\x84\xcf\x89 \xce\xb7 \xce\xb2\xce\xb1\xcf\x83\xce\xb9\xce\xbb\xce\xb5\xce\xaf\xce\xb1 \xcf\x83\xce\xbf\xcf\x85\xc2\xb7 \xce\xb3\xce\xb5\xce\xbd\xce\xb7\xce\xb8\xce\xae\xcf\x84\xcf\x89 \xcf\x84\xce\xbf \xce\xb8\xce\xad\xce\xbb\xce\xb7\xce\xbc\xce\xac \xcf\x83\xce\xbf\xcf\x85, \xcf\x89\xcf\x82 \xce\xb5\xce\xbd \xce\xbf\xcf\x85\xcf\x81\xce\xb1\xce\xbd\xcf\x8e \xce\xba\xce\xb1\xce\xb9 \xce\xb5\xcf\x80\xce\xaf \xcf\x84\xce\xb7\xcf\x82 \xce\xb3\xce\xb7\xcf\x82\xc2\xb7 \xcf\x84\xce\xbf\xce\xbd \xce\xac\xcf\x81\xcf\x84\xce\xbf\xce\xbd \xce\xb7\xce\xbc\xcf\x8e\xce\xbd \xcf\x84\xce\xbf\xce\xbd \xce\xb5\xcf\x80\xce\xb9\xce\xbf\xcf\x8d\xcf\x83\xce\xb9\xce\xbf\xce\xbd \xce\xb4\xce\xbf\xcf\x82 \xce\xb7\xce\xbc\xce\xaf\xce\xbd \xcf\x83\xce\xae\xce\xbc\xce\xb5\xcf\x81\xce\xbf\xce\xbd\xc2\xb7 \xce\xba\xce\xb1\xce\xb9 \xce\xac\xcf\x86\xce\xb5\xcf\x82 \xce\xb7\xce\xbc\xce\xaf\xce\xbd \xcf\x84\xce\xb1 \xce\xbf\xcf\x86\xce\xb5\xce\xbb\xce\xae\xce\xbc\xce\xb1\xcf\x84\xce\xb1 \xce\xb7\xce\xbc\xcf\x8e\xce\xbd, \xcf\x89\xcf\x82 \xce\xba\xce\xb1\xce\xb9 \xce\xb7\xce\xbc\xce\xb5\xce\xaf\xcf\x82 \xce\xb1\xcf\x86\xce\xaf\xce\xb5\xce\xbc\xce\xb5\xce\xbd \xcf\x84\xce\xbf\xce\xb9\xcf\x82 \xce\xbf\xcf\x86\xce\xb5\xce\xb9\xce\xbb\xce\xad\xcf\x84\xce\xb1\xce\xb9\xcf\x82 \xce\xb7\xce\xbc\xcf\x8e\xce\xbd\xc2\xb7 \xce\xba\xce\xb1\xce\xb9 \xce\xbc\xce\xb7 \xce\xb5\xce\xb9\xcf\x83\xce\xb5\xce\xbd\xce\xad\xce\xb3\xce\xba\xce\xb7\xcf\x82 \xce\xb7\xce\xbc\xce\xac\xcf\x82 \xce\xb5\xce\xb9\xcf\x82 \xcf\x80\xce\xb5\xce\xb9\xcf\x81\xce\xb1\xcf\x83\xce\xbc\xcf\x8c\xce\xbd, \xce\xb1\xce\xbb\xce\xbb\xce\xac \xcf\x81\xcf\x8d\xcf\x83\xce\xb1\xce\xb9 \xce\xb7\xce\xbc\xce\xac\xcf\x82 \xce\xb1\xcf\x80\xcf\x8c \xcf\x84\xce\xbf\xcf\x85 \xcf\x80\xce\xbf\xce\xbd\xce\xb7\xcf\x81\xce\xbf\xcf\x8d. \xce\xb1\xce\xbc\xce\xae\xce\xbd.

- -
Polytonic
-

\xce\xa0\xce\xac\xcf\x84\xce\xb5\xcf\x81 \xe1\xbc\xa1\xce\xbc\xe1\xbf\xb6\xce\xbd \xe1\xbd\x81 \xe1\xbc\x90\xce\xbd \xcf\x84\xce\xbf\xe1\xbf\x96\xcf\x82 \xce\xbf\xe1\xbd\x90\xcf\x81\xce\xb1\xce\xbd\xce\xbf\xe1\xbf\x96\xcf\x82 \xe1\xbc\x81\xce\xb3\xce\xb9\xce\xb1\xcf\x83\xce\xb8\xce\xae\xcf\x84\xcf\x89 \xcf\x84\xe1\xbd\xb8 \xe1\xbd\x84\xce\xbd\xce\xbf\xce\xbc\xce\xac \xcf\x83\xce\xbf\xcf\x85\xc2\xb7 \xe1\xbc\x90\xce\xbb\xce\xb8\xce\xad\xcf\x84\xcf\x89 \xe1\xbc\xa1 \xce\xb2\xce\xb1\xcf\x83\xce\xb9\xce\xbb\xce\xb5\xce\xaf\xce\xb1 \xcf\x83\xce\xbf\xcf\x85\xc2\xb7 \xce\xb3\xce\xb5\xce\xbd\xce\xb7\xce\xb8\xce\xae\xcf\x84\xcf\x89 \xcf\x84\xe1\xbd\xb8 \xce\xb8\xce\xad\xce\xbb\xce\xb7\xce\xbc\xce\xac \xcf\x83\xce\xbf\xcf\x85, \xe1\xbd\xa1\xcf\x82 \xe1\xbc\x90\xce\xbd \xce\xbf\xe1\xbd\x90\xcf\x81\xce\xb1\xce\xbd\xe1\xbf\xb7 \xce\xba\xce\xb1\xe1\xbd\xb6 \xe1\xbc\x90\xcf\x80\xe1\xbd\xb6 \xcf\x84\xe1\xbf\x86\xcf\x82 \xce\xb3\xe1\xbf\x86\xcf\x82\xc2\xb7 \xcf\x84\xe1\xbd\xb8\xce\xbd \xe1\xbc\x84\xcf\x81\xcf\x84\xce\xbf\xce\xbd \xe1\xbc\xa1\xce\xbc\xe1\xbf\xb6\xce\xbd \xcf\x84\xe1\xbd\xb8\xce\xbd \xe1\xbc\x90\xcf\x80\xce\xb9\xce\xbf\xcf\x8d\xcf\x83\xce\xb9\xce\xbf\xce\xbd \xce\xb4\xe1\xbd\xb8\xcf\x82 \xe1\xbc\xa1\xce\xbc\xe1\xbf\x96\xce\xbd \xcf\x83\xce\xae\xce\xbc\xce\xb5\xcf\x81\xce\xbf\xce\xbd\xc2\xb7 \xce\xba\xce\xb1\xe1\xbd\xb6 \xe1\xbc\x84\xcf\x86\xce\xb5\xcf\x82 \xe1\xbc\xa1\xce\xbc\xe1\xbf\x96\xce\xbd \xcf\x84\xe1\xbd\xb0 \xe1\xbd\x80\xcf\x86\xce\xb5\xce\xbb\xce\xae\xce\xbc\xce\xb1\xcf\x84\xce\xb1 \xe1\xbc\xa1\xce\xbc\xe1\xbf\xb6\xce\xbd, \xe1\xbd\xa1\xcf\x82 \xce\xba\xce\xb1\xe1\xbd\xb6 \xe1\xbc\xa1\xce\xbc\xce\xb5\xe1\xbf\x96\xcf\x82 \xe1\xbc\x80\xcf\x86\xce\xaf\xce\xb5\xce\xbc\xce\xb5\xce\xbd \xcf\x84\xce\xbf\xe1\xbf\x96\xcf\x82 \xe1\xbd\x80\xcf\x86\xce\xb5\xce\xb9\xce\xbb\xce\xad\xcf\x84\xce\xb1\xce\xb9\xcf\x82 \xe1\xbc\xa1\xce\xbc\xe1\xbf\xb6\xce\xbd\xc2\xb7 \xce\xba\xce\xb1\xe1\xbd\xb6 \xce\xbc\xe1\xbd\xb4 \xce\xb5\xe1\xbc\xb0\xcf\x83\xce\xb5\xce\xbd\xce\xad\xce\xb3\xce\xba\xe1\xbf\x83\xcf\x82 \xe1\xbc\xa1\xce\xbc\xe1\xbe\xb6\xcf\x82 \xce\xb5\xe1\xbc\xb0\xcf\x82 \xcf\x80\xce\xb5\xce\xb9\xcf\x81\xce\xb1\xcf\x83\xce\xbc\xcf\x8c\xce\xbd, \xe1\xbc\x80\xce\xbb\xce\xbb\xe1\xbd\xb0 \xcf\x81\xe1\xbf\xa6\xcf\x83\xce\xb1\xce\xb9 \xe1\xbc\xa1\xce\xbc\xe1\xbe\xb6\xcf\x82 \xe1\xbc\x80\xcf\x80\xe1\xbd\xb8 \xcf\x84\xce\xbf\xe1\xbf\xa6 \xcf\x80\xce\xbf\xce\xbd\xce\xb7\xcf\x81\xce\xbf\xe1\xbf\xa6. \xe1\xbc\x80\xce\xbc\xce\xae\xce\xbd.

- - -

Languages

-

(The following are used for demonstration purposes only. Some of the following excerpts are taken from web pages from the BBC Foreign News just to show the script - I have no idea what they actually say!!)

- -

Latvian

-

Latvijas instit\xc5\xabts veic konsultat\xc4\xabvi koordin\xc4\x93jo\xc5\xa1as funkcijas Latvijas starptautisk\xc4\x81s atpaz\xc4\xabstam\xc4\xabbas jom\xc4\x81; -gatavo un izplata pla\xc5\xa1ai sabiedr\xc4\xabbai pieejamu, svar\xc4\xabgu pamatinform\xc4\x81ciju saturo\xc5\xa1u, viegli izprotamu un iegaum\xc4\x93jamu, k\xc4\x81 ar\xc4\xab pozit\xc4\xabvu iespaidu izraiso\xc5\xa1u visp\xc4\x81r\xc4\x93ju pamatinform\xc4\x81ciju par Latviju, Latvijas dabu, sabiedr\xc4\xabbu, kult\xc5\xabru un v\xc4\x93sturi;

- -

Azeri (az)

-

Qaz k\xc9\x99m\xc9\x99rinin a\xc3\xa7\xc4\xb1l\xc4\xb1\xc5\x9f\xc4\xb1nda \xc4\xb0ran v\xc9\x99 Erm\xc9\x99nistan\xc4\xb1n prezidentl\xc9\x99ri i\xc5\x9ftirak edibl\xc9\x99r.

- -

\xc4\xb0ran qaz\xc4\xb1n\xc4\xb1 Erm\xc9\x99nistana n\xc9\x99ql ed\xc9\x99c\xc9\x99k bu k\xc9\x99m\xc9\x99r Yerevan \xc3\xbc\xc3\xa7\xc3\xbcn x\xc3\xbcsusi \xc3\xb6n\xc9\x99m da\xc5\x9f\xc4\xb1y\xc4\xb1r, bel\xc9\x99 ki, b\xc3\xb6y\xc3\xbck etnik az\xc9\x99rbaycanl\xc4\xb1 toplumuna malik \xc4\xb0ran t\xc9\x99lat\xc3\xbcml\xc3\xbc regionda \xc3\xb6z maraqlar\xc4\xb1n\xc4\xb1 qorumaq \xc3\xbc\xc3\xa7\xc3\xbcn \xc3\xa7ox vaxt Erm\xc9\x99nistan\xc4\xb1n m\xc3\xbctt\xc9\x99fiqi kimi g\xc3\xb6r\xc3\xbcn\xc3\xbcb.

- -

Bulgarian

-

\xd0\x9f\xd0\xbe\xd1\x81\xd0\xbb\xd0\xb5\xd0\xb4\xd0\xbd\xd0\xb8\xd1\x82\xd0\xb5 \xd0\xb4\xd0\xbe\xd0\xbd\xd0\xb0\xd0\xb1\xd0\xbe\xd1\x80\xd0\xbd\xd0\xb8\xd1\x86\xd0\xb8 \xd0\xb2 \xd0\xb1\xd1\x8a\xd0\xbb\xd0\xb3\xd0\xb0\xd1\x80\xd1\x81\xd0\xba\xd0\xb0\xd1\x82\xd0\xb0 \xd0\xb0\xd1\x80\xd0\xbc\xd0\xb8\xd1\x8f \xd1\x89\xd0\xb5 \xd1\x81\xd0\xbb\xd1\x83\xd0\xb6\xd0\xb0\xd1\x82 9 \xd0\xbc\xd0\xb5\xd1\x81\xd0\xb5\xd1\x86\xd0\xb0, \xd0\xba\xd0\xb0\xd0\xba\xd1\x82\xd0\xbe \xd0\xbf\xd0\xbe\xd1\x81\xd1\x82\xd0\xb0\xd0\xbd\xd0\xbe\xd0\xb2\xd1\x8f\xd0\xb2\xd0\xb0 \xd0\xb7\xd0\xb0\xd0\xba\xd0\xbe\xd0\xbd\xd0\xb0 6 \xd0\xbc\xd0\xb5\xd1\x81\xd0\xb5\xd1\x86\xd0\xb0 \xd0\xb5 \xd1\x81\xd1\x8a\xd0\xba\xd1\x80\xd0\xb0\xd1\x82\xd0\xb5\xd0\xbd\xd0\xb8\xd1\x8f\xd1\x82 \xd1\x81\xd1\x80\xd0\xbe\xd0\xba \xd1\x81\xd0\xb0\xd0\xbc\xd0\xbe \xd0\xb7\xd0\xb0 \xd0\xb7\xd0\xb0\xd0\xb2\xd1\x8a\xd1\x80\xd1\x88\xd0\xb8\xd0\xbb\xd0\xb8\xd1\x82\xd0\xb5 \xd0\xb2\xd0\xb8\xd1\x81\xd1\x88\xd0\xb5 \xd0\xbe\xd0\xb1\xd1\x80\xd0\xb0\xd0\xb7\xd0\xbe\xd0\xb2\xd0\xb0\xd0\xbd\xd0\xb8\xd0\xb5 - \xd1\x82\xd0\xb0\xd0\xba\xd0\xb0 \xd0\xbc\xd0\xb8\xd0\xbd\xd0\xb8\xd1\x81\xd1\x82\xd1\x8a\xd1\x80 \xd0\x92\xd0\xb5\xd1\x81\xd0\xb5\xd0\xbb\xd0\xb8\xd0\xbd \xd0\x91\xd0\xbb\xd0\xb8\xd0\xb7\xd0\xbd\xd0\xb0\xd0\xba\xd0\xbe\xd0\xb2 \xd0\xbe\xd1\x82\xd1\x85\xd0\xb2\xd1\x8a\xd1\x80\xd0\xbb\xd0\xb8 \xd1\x80\xd0\xb0\xd0\xb7\xd0\xbb\xd0\xb8\xd1\x87\xd0\xbd\xd0\xb8\xd1\x82\xd0\xb5 \xd0\xb8\xd0\xbd\xd1\x82\xd0\xb5\xd1\x80\xd0\xbf\xd1\x80\xd0\xb5\xd1\x82\xd0\xb0\xd1\x86\xd0\xb8\xd0\xb8 \xd0\xb2 \xd0\xbf\xd1\x83\xd0\xb1\xd0\xbb\xd0\xb8\xd1\x87\xd0\xbd\xd0\xbe\xd1\x82\xd0\xbe \xd0\xbf\xd1\x80\xd0\xbe\xd1\x81\xd1\x82\xd1\x80\xd0\xb0\xd0\xbd\xd1\x81\xd1\x82\xd0\xb2\xd0\xbe \xd0\xbf\xd0\xbe \xd1\x82\xd0\xb5\xd0\xbc\xd0\xb0\xd1\x82\xd0\xb0. \xd0\x9c\xd0\xb8\xd0\xbd\xd0\xb8\xd1\x81\xd1\x82\xd1\x8a\xd1\x80\xd1\x8a\xd1\x82 \xd0\xbd\xd0\xb0 \xd0\xbe\xd1\x82\xd0\xb1\xd1\x80\xd0\xb0\xd0\xbd\xd0\xb0\xd1\x82\xd0\xb0 \xd1\x80\xd0\xb0\xd0\xb7\xd1\x84\xd0\xbe\xd1\x80\xd0\xbc\xd0\xb8\xd1\x80\xd0\xbe\xd0\xb2\xd0\xb0 \xd0\xb2 \xd0\x9a\xd0\xb0\xd0\xb7\xd0\xb0\xd0\xbd\xd0\xbb\xd1\x8a\xd0\xba \xd0\x92\xd1\x82\xd0\xbe\xd1\x80\xd0\xb0\xd1\x82\xd0\xb0 \xd0\xbd\xd0\xb8 \xd1\x80\xd0\xbe\xd1\x82\xd0\xb0 \xd0\xbe\xd1\x82 \xd0\x90\xd1\x88\xd1\x80\xd0\xb0\xd1\x84 \xd0\xb8 \xd0\x92\xd1\x82\xd0\xbe\xd1\x80\xd0\xb8 \xd0\xbf\xd0\xb5\xd1\x85\xd0\xbe\xd1\x82\xd0\xb5\xd0\xbd \xd0\xb2\xd0\xb7\xd0\xb2\xd0\xbe\xd0\xb4, \xd0\xb7\xd0\xb0\xd0\xb2\xd1\x8a\xd1\x80\xd0\xbd\xd0\xb0\xd0\xbb \xd1\x81\xd0\xb5 \xd0\xbe\xd1\x82 \xd0\xbc\xd0\xb8\xd1\x80\xd0\xbe\xd1\x82\xd0\xb2\xd0\xbe\xd1\x80\xd1\x87\xd0\xb5\xd1\x81\xd0\xba\xd0\xb0 \xd0\xbc\xd0\xb8\xd1\x81\xd0\xb8\xd1\x8f \xd0\xbe\xd1\x82 \xd0\x91\xd0\xb0\xd0\xbd\xd1\x8f \xd0\x9b\xd1\x83\xd0\xba\xd0\xb0 \xd0\xb2 \xd0\x91\xd0\xbe\xd1\x81\xd0\xbd\xd0\xb0 \xd0\xb8 \xd0\xa5\xd0\xb5\xd1\x80\xd1\x86\xd0\xb5\xd0\xb3\xd0\xbe\xd0\xb2\xd0\xb8\xd0\xbd\xd0\xb0.

- -

Macedonian (mk)

-

\xd0\x91\xd1\x83\xd1\x88 \xd1\x80\xd0\xb5\xd1\x87\xd0\xb5 \xd0\xbe\xd1\x82\xd0\xb8 \xd0\xb5 \xd1\x81\xd1\x83\xd1\x88\xd1\x82\xd0\xb8\xd0\xbd\xd1\x81\xd0\xba\xd0\xb8 \xd0\xb4\xd0\xb0 \xd1\x81\xd0\xb5 \xd0\xbe\xd1\x81\xd0\xb8\xd0\xb3\xd1\x83\xd1\x80\xd0\xb8 \xd0\xb1\xd0\xb5\xd0\xb7\xd0\xb1\xd0\xb5\xd0\xb4\xd0\xbd\xd0\xbe\xd1\x81\xd1\x82\xd0\xb0 \xd0\xbd\xd0\xb0 \xd0\x91\xd0\xb0\xd0\xb3\xd0\xb4\xd0\xb0\xd0\xb4 \xd0\xb8 \xd0\xb4\xd0\xb0 \xd1\x81\xd0\xb5 \xd0\xbe\xd0\xb1\xd0\xbd\xd0\xbe\xd0\xb2\xd0\xb8 \xd0\xbd\xd0\xbe\xd1\x80\xd0\xbc\xd0\xb0\xd0\xbb\xd0\xbd\xd0\xb8\xd0\xbe\xd1\x82 \xd0\xb6\xd0\xb8\xd0\xb2\xd0\xbe\xd1\x82 \xd0\xb2\xd0\xbe \xd0\xbe\xd1\x81\xd1\x82\xd0\xb0\xd1\x82\xd0\xbe\xd0\xba\xd0\xbe\xd1\x82 \xd0\xbe\xd0\xb4 \xd0\xb7\xd0\xb5\xd0\xbc\xd1\x98\xd0\xb0\xd1\x82\xd0\xb0.

- -

\xd0\x9c\xd0\xb8\xd1\x82\xd1\x80\xd0\xb5\xd0\xb2\xd0\xb0 \xd1\x98\xd0\xb0 \xd0\xbf\xd1\x80\xd0\xbe\xd0\xb7\xd0\xb2\xd0\xb0 \xd0\xb2\xd0\xbb\xd0\xb0\xd0\xb4\xd0\xb0\xd1\x82\xd0\xb0 \xd0\xb7\xd0\xb0 \xd0\xb8\xd0\xbd\xd0\xb4\xd0\xbe\xd0\xbb\xd0\xb5\xd0\xbd\xd1\x82\xd0\xb5\xd0\xbd \xd0\xbe\xd0\xb4\xd0\xbd\xd0\xbe\xd1\x81 \xd0\xba\xd0\xbe\xd0\xbd \xd0\xbe\xd0\xb2\xd0\xb0 \xd0\xb1\xd0\xb8\xd1\x82\xd0\xba\xd0\xb0\xd1\x82\xd0\xb0 \xd0\xb7\xd0\xb0 \xd0\xb7\xd0\xb0\xd1\x87\xd1\x83\xd0\xb2\xd0\xb8\xd0\xb2\xd0\xb0\xd1\x9a\xd0\xb5 \xd0\xbd\xd0\xb0 \xd1\x83\xd1\x81\xd1\x82\xd0\xb0\xd0\xb2\xd0\xbd\xd0\xbe\xd1\x82\xd0\xbe \xd0\xb8\xd0\xbc\xd0\xb5 \xd0\xbd\xd0\xb0 \xd0\xb7\xd0\xb5\xd0\xbc\xd1\x98\xd0\xb0\xd1\x82\xd0\xb0.

- -

Uzbek (uz)

-

\xd0\x98\xd1\x80\xd0\xbe\xd2\x9b\xd0\xbb\xd0\xb8\xd0\xba\xd0\xbb\xd0\xb0\xd1\x80 \xd0\xbe\xd1\x80\xd0\xb0\xd1\x81\xd0\xb8\xd0\xb4\xd0\xb0 \xd1\x82\xd1\x83\xd1\x88\xd0\xba\xd1\x83\xd0\xbd\xd0\xbb\xd0\xb8\xd0\xba \xd0\xbe\xd1\x80\xd1\x82\xd0\xb8\xd0\xb1 \xd0\xb1\xd0\xbe\xd1\x80\xd0\xb0\xd1\x8f\xd0\xbf\xd1\x82\xd0\xb8

- -

\xd0\x98\xd1\x80\xd0\xbe\xd2\x9b\xd0\xb4\xd0\xb0 \xd1\x9e\xd1\x82\xd0\xba\xd0\xb0\xd0\xb7\xd0\xb8\xd0\xbb\xd0\xb3\xd0\xb0\xd0\xbd \xd1\x81\xd1\x9e\xd0\xbd\xd0\xb3\xd0\xb3\xd0\xb8 \xd0\xb6\xd0\xb0\xd0\xbc\xd0\xbe\xd0\xb0\xd1\x82\xd1\x87\xd0\xb8\xd0\xbb\xd0\xb8\xd0\xba \xd1\x84\xd0\xb8\xd0\xba\xd1\x80\xd0\xb8\xd0\xbd\xd0\xb8 \xd1\x9e\xd1\x80\xd0\xb3\xd0\xb0\xd0\xbd\xd0\xb8\xd1\x88 \xd0\xbd\xd0\xb0\xd1\x82\xd0\xb8\xd0\xb6\xd0\xb0\xd0\xbb\xd0\xb0\xd1\x80\xd0\xb8\xd0\xb3\xd0\xb0 \xd0\xba\xd1\x9e\xd1\x80\xd0\xb0, \xd0\xbc\xd0\xb0\xd0\xbc\xd0\xbb\xd0\xb0\xd0\xba\xd0\xb0\xd1\x82 \xd0\xba\xd0\xb5\xd0\xbb\xd0\xb0\xd0\xb6\xd0\xb0\xd0\xb3\xd0\xb8 \xd0\xb1\xd0\xbe\xd1\x80\xd0\xb0\xd1\x81\xd0\xb8\xd0\xb4\xd0\xb0 \xd1\x82\xd1\x83\xd1\x88\xd0\xba\xd1\x83\xd0\xbd \xd0\xba\xd0\xb0\xd0\xb9\xd1\x84\xd0\xb8\xd1\x8f\xd1\x82\xd0\xb4\xd0\xb0 \xd0\xb1\xd1\x9e\xd0\xbb\xd0\xb3\xd0\xb0\xd0\xbd \xd0\xb8\xd1\x80\xd0\xbe\xd2\x9b\xd0\xbb\xd0\xb8\xd0\xba\xd0\xbb\xd0\xb0\xd1\x80 \xd1\x81\xd0\xbe\xd0\xbd\xd0\xb8 \xd1\x82\xd0\xbe\xd0\xb1\xd0\xbe\xd1\x80\xd0\xb0 \xd0\xbe\xd1\x80\xd1\x82\xd0\xb8\xd0\xb1 \xd0\xb1\xd0\xbe\xd1\x80\xd0\xbc\xd0\xbe\xd2\x9b\xd0\xb4\xd0\xb0.

- -

Kyrgyz (ky)

-

\xd0\x9a\xd0\xb0\xd0\xb7\xd0\xb0\xd0\xba\xd1\x81\xd1\x82\xd0\xb0\xd0\xbd\xd0\xb4\xd0\xb0 \xd0\xb0\xd0\xb9\xd1\x8b\xd0\xbb \xd1\x82\xd1\x83\xd1\x80\xd0\xb3\xd1\x83\xd0\xbd\xd0\xb4\xd0\xb0\xd1\x80\xd1\x8b \xd1\x83\xd1\x80\xd1\x83\xd1\x88\xd0\xb0 \xd0\xba\xd0\xb5\xd1\x82\xd0\xb8\xd0\xbf 3 \xd0\xba\xd0\xb8\xd1\x88\xd0\xb8 \xd0\xba\xd0\xb0\xd0\xb7\xd0\xb0 \xd1\x82\xd0\xb0\xd0\xbf\xd1\x82\xd1\x8b -\xd0\x9a\xd0\xb0\xd0\xb7\xd0\xb0\xd0\xba\xd1\x81\xd1\x82\xd0\xb0\xd0\xbd\xd0\xb4\xd1\x8b\xd0\xbd \xd0\x90\xd0\xbb\xd0\xbc\xd0\xb0\xd1\x82\xd1\x8b \xd1\x88\xd0\xb0\xd0\xb0\xd1\x80\xd1\x8b\xd0\xbd\xd1\x8b\xd0\xbd \xd1\x82\xd1\x83\xd1\x88\xd1\x83\xd0\xbd\xd0\xb4\xd0\xb0\xd0\xb3\xd1\x8b \xd0\xb0\xd0\xb9\xd1\x8b\xd0\xbb\xd0\xb4\xd0\xb0 \xd1\x8d\xd0\xba\xd0\xb8 \xd0\xba\xd0\xb8\xd1\x88\xd0\xb8 \xd0\xbe\xd1\x80\xd1\x82\xd0\xbe\xd1\x81\xd1\x83\xd0\xbd\xd0\xb4\xd0\xb0\xd0\xb3\xd1\x8b \xd1\x87\xd0\xb0\xd1\x82\xd0\xb0\xd0\xba \xd1\x87\xd0\xbe\xd2\xa3 \xd1\x83\xd1\x80\xd1\x83\xd1\x88\xd0\xba\xd0\xb0 \xd0\xb0\xd0\xb9\xd0\xbb\xd0\xb0\xd0\xbd\xd1\x8b\xd0\xbf, \xd0\xb0\xd0\xb3\xd0\xb0 \xd1\x8d\xd0\xbb\xd2\xaf\xd2\xaf \xd1\x87\xd0\xb0\xd0\xba\xd1\x82\xd1\x8b \xd0\xba\xd0\xb8\xd1\x88\xd0\xb8 \xd0\xb0\xd1\x80\xd0\xb0\xd0\xbb\xd0\xb0\xd1\x88\xd0\xba\xd0\xb0\xd0\xbd.

- - - -

Albanian (sq)

-

Nj\xc3\xab anket\xc3\xab sugjeron se irakian\xc3\xabt kan\xc3\xab nj\xc3\xab pesimiz\xc3\xabm n\xc3\xab rritje p\xc3\xabr t\xc3\xab ardhmen e vendit t\xc3\xab tyre.

- -

Presidenti shqiptar Alfred Moisiu dekretoi t\xc3\xab h\xc3\xabn\xc3\xabn ndryshimet e propozuara nga kryeministri Sali Berisha n\xc3\xab kabinetin e tij, pas zgjedhjeve lokale.

- - -

Vietnamese (vi)

-

M\xc3\xb4\xcc\xa3t kha\xcc\x89o sa\xcc\x81t m\xc6\xa1\xcc\x81i cho bi\xc3\xaa\xcc\x81t ng\xc6\xb0\xc6\xa1\xcc\x80i d\xc3\xa2n Iraq nga\xcc\x80y ca\xcc\x80ng ca\xcc\x89m th\xc3\xa2\xcc\x81y bi quan va\xcc\x80 kh\xc3\xb4ng tin t\xc6\xb0\xc6\xa1\xcc\x89ng va\xcc\x80o chi\xcc\x81nh phu\xcc\x89 cu\xcc\x83ng nh\xc6\xb0 li\xc3\xaan qu\xc3\xa2n

- -

Nga \xc4\x91ang th\xc6\xb0\xcc\xa3c hi\xc3\xaa\xcc\xa3n chi\xc3\xaa\xcc\x81n di\xcc\xa3ch c\xc6\xb0\xcc\x81u h\xc3\xb4\xcc\xa3 sau khi co\xcc\x81 vu\xcc\xa3 n\xc3\xb4\xcc\x89 khi\xcc\x81 methane ta\xcc\xa3i m\xc3\xb4\xcc\xa3t mo\xcc\x89 than \xc6\xa1\xcc\x89 Siberia la\xcc\x80m i\xcc\x81t nh\xc3\xa2\xcc\x81t 61 ng\xc6\xb0\xc6\xa1\xcc\x80i thi\xc3\xaa\xcc\xa3t ma\xcc\xa3ng

- -

Thai (pangram)

-

\xe0\xb9\x80\xe0\xb8\x9b\xe0\xb9\x87\xe0\xb8\x99\xe0\xb8\xa1\xe0\xb8\x99\xe0\xb8\xb8\xe0\xb8\xa9\xe0\xb8\xa2\xe0\xb9\x8c\xe0\xb8\xaa\xe0\xb8\xb8\xe0\xb8\x94\xe0\xb8\x9b\xe0\xb8\xa3\xe0\xb8\xb0\xe0\xb9\x80\xe0\xb8\xaa\xe0\xb8\xa3\xe0\xb8\xb4\xe0\xb8\x90\xe0\xb9\x80\xe0\xb8\xa5\xe0\xb8\xb4\xe0\xb8\xa8\xe0\xb8\x84\xe0\xb8\xb8\xe0\xb8\x93\xe0\xb8\x84\xe0\xb9\x88\xe0\xb8\xb2 \xe0\xb8\x81\xe0\xb8\xa7\xe0\xb9\x88\xe0\xb8\xb2\xe0\xb8\x9a\xe0\xb8\xa3\xe0\xb8\xa3\xe0\xb8\x94\xe0\xb8\xb2\xe0\xb8\x9d\xe0\xb8\xb9\xe0\xb8\x87\xe0\xb8\xaa\xe0\xb8\xb1\xe0\xb8\x95\xe0\xb8\xa7\xe0\xb9\x8c\xe0\xb9\x80\xe0\xb8\x94\xe0\xb8\xa3\xe0\xb8\xb1\xe0\xb8\x88\xe0\xb8\x89\xe0\xb8\xb2\xe0\xb8\x99 \xe0\xb8\x88\xe0\xb8\x87\xe0\xb8\x9d\xe0\xb9\x88\xe0\xb8\xb2\xe0\xb8\x9f\xe0\xb8\xb1\xe0\xb8\x99\xe0\xb8\x9e\xe0\xb8\xb1\xe0\xb8\x92\xe0\xb8\x99\xe0\xb8\xb2\xe0\xb8\xa7\xe0\xb8\xb4\xe0\xb8\x8a\xe0\xb8\xb2\xe0\xb8\x81\xe0\xb8\xb2\xe0\xb8\xa3 \xe0\xb8\xad\xe0\xb8\xa2\xe0\xb9\x88\xe0\xb8\xb2\xe0\xb8\xa5\xe0\xb9\x89\xe0\xb8\xb2\xe0\xb8\x87\xe0\xb8\x9c\xe0\xb8\xa5\xe0\xb8\xb2\xe0\xb8\x8d\xe0\xb8\xa4\xe0\xb9\x85\xe0\xb9\x80\xe0\xb8\x82\xe0\xb9\x88\xe0\xb8\x99\xe0\xb8\x86\xe0\xb9\x88\xe0\xb8\xb2\xe0\xb8\x9a\xe0\xb8\xb5\xe0\xb8\x91\xe0\xb8\xb2\xe0\xb9\x83\xe0\xb8\x84\xe0\xb8\xa3 \xe0\xb9\x84\xe0\xb8\xa1\xe0\xb9\x88\xe0\xb8\x96\xe0\xb8\xb7\xe0\xb8\xad\xe0\xb9\x82\xe0\xb8\x97\xe0\xb8\xa9\xe0\xb9\x82\xe0\xb8\x81\xe0\xb8\xa3\xe0\xb8\x98\xe0\xb9\x81\xe0\xb8\x8a\xe0\xb9\x88\xe0\xb8\x87\xe0\xb8\x8b\xe0\xb8\xb1\xe0\xb8\x94\xe0\xb8\xae\xe0\xb8\xb6\xe0\xb8\x94\xe0\xb8\xae\xe0\xb8\xb1\xe0\xb8\x94\xe0\xb8\x94\xe0\xb9\x88\xe0\xb8\xb2 \xe0\xb8\xab\xe0\xb8\xb1\xe0\xb8\x94\xe0\xb8\xad\xe0\xb8\xa0\xe0\xb8\xb1\xe0\xb8\xa2\xe0\xb9\x80\xe0\xb8\xab\xe0\xb8\xa1\xe0\xb8\xb7\xe0\xb8\xad\xe0\xb8\x99\xe0\xb8\x81\xe0\xb8\xb5\xe0\xb8\xac\xe0\xb8\xb2\xe0\xb8\xad\xe0\xb8\xb1\xe0\xb8\x8a\xe0\xb8\x8c\xe0\xb8\xb2\xe0\xb8\xaa\xe0\xb8\xb1\xe0\xb8\xa2 \xe0\xb8\x9b\xe0\xb8\x8f\xe0\xb8\xb4\xe0\xb8\x9a\xe0\xb8\xb1\xe0\xb8\x95\xe0\xb8\xb4\xe0\xb8\x9b\xe0\xb8\xa3\xe0\xb8\xb0\xe0\xb8\x9e\xe0\xb8\xa4\xe0\xb8\x95\xe0\xb8\xb4\xe0\xb8\x81\xe0\xb8\x8e\xe0\xb8\x81\xe0\xb8\xb3\xe0\xb8\xab\xe0\xb8\x99\xe0\xb8\x94\xe0\xb9\x83\xe0\xb8\x88 \xe0\xb8\x9e\xe0\xb8\xb9\xe0\xb8\x94\xe0\xb8\x88\xe0\xb8\xb2\xe0\xb9\x83\xe0\xb8\xab\xe0\xb9\x89\xe0\xb8\x88\xe0\xb9\x8a\xe0\xb8\xb0\xe0\xb9\x86 \xe0\xb8\x88\xe0\xb9\x8b\xe0\xb8\xb2 \xe0\xb8\x99\xe0\xb9\x88\xe0\xb8\xb2\xe0\xb8\x9f\xe0\xb8\xb1\xe0\xb8\x87\xe0\xb9\x80\xe0\xb8\xad\xe0\xb8\xa2\xe0\xb8\xaf

- - - -
- -

Hebrew (pangram)

-

\xd7\x93\xd7\x92 \xd7\xa1\xd7\xa7\xd7\xa8\xd7\x9f \xd7\xa9\xd7\x98 \xd7\x91\xd7\x99\xd7\x9d \xd7\x9e\xd7\x90\xd7\x95\xd7\x9b\xd7\x96\xd7\x91 \xd7\x95\xd7\x9c\xd7\xa4\xd7\xaa\xd7\xa2 \xd7\x9e\xd7\xa6\xd7\x90 \xd7\x97\xd7\x91\xd7\xa8\xd7\x94

- -

\xd7\x90\xd7\x95 \xd7\x94\xd7\xa0\xd7\xa1\xd7\x94 \xd7\x90\xd7\x9c\xd7\x94\xd7\x99\xd7\x9d, \xd7\x9c\xd7\x91\xd7\x95\xd7\x90 \xd7\x9c\xd7\xa7\xd7\x97\xd7\xaa \xd7\x9c\xd7\x95 \xd7\x92\xd7\x95\xd7\x99 \xd7\x9e\xd7\xa7\xd7\xa8\xd7\x91 \xd7\x92\xd7\x95\xd7\x99, \xd7\x91\xd7\x9e\xd7\xa1\xd7\xaa \xd7\x91\xd7\x90\xd7\xaa\xd7\xaa \xd7\x95\xd7\x91\xd7\x9e\xd7\x95\xd7\xa4\xd7\xaa\xd7\x99\xd7\x9d \xd7\x95\xd7\x91\xd7\x9e\xd7\x9c\xd7\x97\xd7\x9e\xd7\x94 \xd7\x95\xd7\x91\xd7\x99\xd7\x93 \xd7\x97\xd7\x96\xd7\xa7\xd7\x94 \xd7\x95\xd7\x91\xd7\x96\xd7\xa8\xd7\x95\xd7\xa2 \xd7\xa0\xd7\x98\xd7\x95\xd7\x99\xd7\x94, \xd7\x95\xd7\x91\xd7\x9e\xd7\x95\xd7\xa8\xd7\x90\xd7\x99\xd7\x9d \xd7\x92\xd7\x93\xd7\x9c\xd7\x99\xd7\x9d: \xd7\x9b\xd7\x9b\xd7\x9c \xd7\x90\xd7\xa9\xd7\xa8-\xd7\xa2\xd7\xa9\xd7\x94 \xd7\x9c\xd7\x9b\xd7\x9d \xd7\x99\xd7\x94\xd7\x95\xd7\x94 \xd7\x90\xd7\x9c\xd7\x94\xd7\x99\xd7\x9b\xd7\x9d, \xd7\x91\xd7\x9e\xd7\xa6\xd7\xa8\xd7\x99\xd7\x9d--\xd7\x9c\xd7\xa2\xd7\x99\xd7\xa0\xd7\x99\xd7\x9a

- - - - -

Arabic

-

\xd9\x82\xd8\xa7\xd9\x84 \xd8\xa7\xd9\x84\xd8\xb1\xd8\xa6\xd9\x8a\xd8\xb3 \xd8\xa7\xd9\x84\xd8\xa7\xd9\x85\xd8\xb1\xd9\x8a\xd9\x83\xd9\x8a \xd8\xac\xd9\x88\xd8\xb1\xd8\xac \xd8\xa8\xd9\x88\xd8\xb4 \xd9\x81\xd9\x8a \xd8\xad\xd8\xaf\xd9\x8a\xd8\xab \xd9\x85\xd8\xaa\xd9\x84\xd9\x81\xd8\xb2 \xd9\x81\xd9\x8a \xd8\xa7\xd9\x84\xd8\xb0\xd9\x83\xd8\xb1\xd9\x89 \xd8\xa7\xd9\x84\xd8\xb1\xd8\xa7\xd8\xa8\xd8\xb9\xd8\xa9 \xd9\x84\xd9\x84\xd8\xba\xd8\xb2\xd9\x88 \xd8\xa7\xd9\x84\xd8\xa7\xd9\x85\xd8\xb1\xd9\x8a\xd9\x83\xd9\x8a \xd9\x84\xd9\x84\xd8\xb9\xd8\xb1\xd8\xa7\xd9\x82 \xd8\xa7\xd9\x86 \xd8\xa7\xd9\x84\xd8\xa7\xd9\x88\xd9\x84\xd9\x88\xd9\x8a\xd8\xa9 \xd8\xad\xd8\xa7\xd9\x84\xd9\x8a\xd8\xa7 \xd9\x84\xd8\xa7\xd8\xb9\xd8\xa7\xd8\xaf\xd8\xa9 \xd8\xa7\xd9\x84\xd8\xa7\xd9\x85\xd9\x86 \xd9\x84\xd9\x84\xd8\xb9\xd8\xb1\xd8\xa7\xd9\x82.

- -

\xd9\x87\xd9\x84 \xd8\xb3\xd8\xaa\xd8\xb3\xd9\x81\xd8\xb1 \xd8\xa7\xd9\x84\xd8\xac\xd9\x87\xd9\x88\xd8\xaf \xd8\xa7\xd9\x84\xd8\xaf\xd8\xa8\xd9\x84\xd9\x88\xd9\x85\xd8\xa7\xd8\xb3\xd9\x8a\xd8\xa9 \xd8\xa7\xd9\x84\xd8\xac\xd8\xa7\xd8\xb1\xd9\x8a\xd8\xa9 \xd8\xb9\xd9\x86 \xd8\xad\xd9\x84\xd9\x88\xd9\x84\xd8\x9f \xd9\x88\xd9\x83\xd9\x8a\xd9\x81 \xd8\xaa\xd9\x86\xd8\xb8\xd8\xb1 \xd9\x84\xd9\x84\xd8\xa7\xd8\xaa\xd9\x87\xd8\xa7\xd9\x85\xd8\xa7\xd8\xaa \xd9\x84\xd8\xa8\xd8\xb9\xd8\xb6 \xd9\x87\xd8\xb0\xd9\x87 \xd8\xa7\xd9\x84\xd8\xaf\xd9\x88\xd9\x84 \xd8\xa8\xd8\xa7\xd9\x84\xd8\xaa\xd8\xaf\xd8\xae\xd9\x84 \xd9\x81\xd9\x8a \xd8\xa7\xd9\x84\xd8\xb4\xd8\xa3\xd9\x86 \xd8\xa7\xd9\x84\xd8\xb9\xd8\xb1\xd8\xa7\xd9\x82\xd9\x8a\xd8\x8c \xd9\x88\xd8\xa7\xd9\x84\xd8\xaa\xd9\x88\xd8\xb1\xd8\xb7 \xd9\x81\xd9\x8a \xd8\xaf\xd8\xb9\xd9\x85 \xd8\xb9\xd9\x85\xd9\x84\xd9\x8a\xd8\xa7\xd8\xaa \xd8\xa7\xd9\x84\xd8\xb9\xd9\x86\xd9\x81\xd8\x9f \xd9\x88\xd8\xa7\xd9\x84\xd9\x89 \xd8\xa7\xd9\x8a \xd9\x85\xd8\xaf\xd9\x89 \xd9\x8a\xd8\xa8\xd8\xaf\xd9\x88 \xd8\xa7\xd9\x84\xd9\x88\xd8\xb6\xd8\xb9 \xd9\x81\xd9\x8a \xd8\xa7\xd9\x84\xd8\xb9\xd8\xb1\xd8\xa7\xd9\x82 \xd8\xa7\xd9\x86\xd8\xb9\xd9\x83\xd8\xa7\xd8\xb3\xd8\xa7 \xd9\x84\xd9\x84\xd8\xb5\xd8\xb1\xd8\xa7\xd8\xb9\xd8\xa7\xd8\xaa \xd8\xa7\xd9\x84\xd8\xa5\xd9\x82\xd9\x84\xd9\x8a\xd9\x85\xd9\x8a\xd8\xa9 \xd9\x81\xd9\x8a \xd8\xa7\xd9\x84\xd9\x85\xd9\x86\xd8\xb7\xd9\x82\xd8\xa9\xd8\x9f

- - -

Persian / Farsi

-

\xd9\x85\xd8\xad\xd9\x85\xd8\xaf \xd8\xa7\xd9\x84\xd8\xa8\xd8\xb1\xd8\xa7\xd8\xaf\xd8\xb9\xdb\x8c \xd8\xb1\xd8\xa6\xd9\x8a\xd8\xb3 \xd8\xa2\xda\x98\xd8\xa7\xd9\x86\xd8\xb3 \xd8\xa8\xd9\x8a\xd9\x86 \xd8\xa7\xd9\x84\xd9\x85\xd9\x84\xd9\x84\xdb\x8c \xd8\xa7\xd9\x86\xd8\xb1\xda\x98\xdb\x8c \xd8\xa7\xd8\xaa\xd9\x85\xdb\x8c \xd9\xbe\xd9\x8a\xd8\xb4\xd9\x86\xd9\x87\xd8\xa7\xd8\xaf \xda\xa9\xd8\xb1\xd8\xaf\xd9\x87 \xd8\xa7\xd8\xb3\xd8\xaa \xd8\xaa\xd9\x87\xd8\xb1\xd8\xa7\xd9\x86 \xd8\xa8\xd8\xb1\xd9\x86\xd8\xa7\xd9\x85\xd9\x87 \xd8\xac\xd9\x86\xd8\xac\xd8\xa7\xd9\x84\xdb\x8c \xd8\xba\xd9\x86\xdb\x8c \xd8\xb3\xd8\xa7\xd8\xb2\xdb\x8c \xd8\xa7\xd9\x88\xd8\xb1\xd8\xa7\xd9\x86\xd9\x8a\xd9\x88\xd9\x85 \xd8\xb1\xd8\xa7 \xd9\x85\xd8\xaa\xd9\x88\xd9\x82\xd9\x81 \xda\xa9\xd9\x86\xd8\xaf \xd9\x88 \xd8\xba\xd8\xb1\xd8\xa8 \xd9\x86\xd9\x8a\xd8\xb2 \xd8\xa7\xd8\xac\xd8\xb1\xd8\xa7\xdb\x8c \xd8\xaa\xd8\xad\xd8\xb1\xd9\x8a\xd9\x85 \xd9\x87\xd8\xa7\xdb\x8c \xd8\xaa\xd9\x86\xd8\xa8\xd9\x8a\xd9\x87\xdb\x8c \xd9\x85\xd9\x88\xd8\xb1\xd8\xaf \xd8\xaa\xd8\xa7\xd8\xa6\xd9\x8a\xd8\xaf \xd8\xb3\xd8\xa7\xd8\xb2\xd9\x85\xd8\xa7\xd9\x86 \xd9\x85\xd9\x84\xd9\x84 \xd9\x85\xd8\xaa\xd8\xad\xd8\xaf \xd8\xb1\xd8\xa7 \xd8\xa8\xd9\x87 \xd8\xaa\xd8\xb9\xd9\x88\xd9\x8a\xd9\x82 \xd8\xa8\xd9\x8a\xd8\xa7\xd9\x86\xd8\xaf\xd8\xa7\xd8\xb2\xd8\xaf.

- - - -

Urdu

-

تمام انسان آزاد اور حقوق و عزت کے اعتبار سے برابر پیدا ہوۓ ہیں۔ انہیں ضمیر اور عقل ودیعت ہوئی ہی۔ اسلۓ انہیں ایک دوسرے کے ساتھ بھائی چارے کا سلوک کرنا چاہیۓ۔ -

- -

Pashto (ps)

-

\xd9\xbe\xd9\x87 \xda\xa9\xd8\xa7\xd8\xa8\xd9\x84 \xd8\xa7\xd9\x88 \xda\xa9\xd9\x86\xd8\xaf\xd9\x87\xd8\xa7\xd8\xb1 \xda\xa9\xdb\x90 \xd8\xaf\xd9\x88\xd9\x88 \xda\x81\xd8\xa7\xd9\x86\xd9\x85\xd8\xb1\xda\xaf\xd9\x88 \xd8\xa8\xd8\xb1\xd9\x8a\xd8\xaf\xd9\x88\xd9\x86\xd9\x88 \xd9\x84\xda\x96 \xd8\xaa\xd8\xb1 \xd9\x84\xda\x96\xd9\x87 \xd9\x8a\xd9\x88 \xd9\x85\xd8\xa7\xd8\xb4\xd9\x88\xd9\x85 \xd9\x88\xda\x98\xd9\x84\xd9\x89 \xd8\xa7\xd9\x88 \xd8\xa7\xd8\xaa\xd9\x87 \xd8\xaa\xd9\x86\xd9\x87 \xd9\x86\xd9\x88\xd8\xb1 \xd9\x89\xdb\x90 \xd9\xbc\xd9\xbe\xd9\x8a\xd8\xa7\xd9\x86 \xda\xa9\xda\x93\xd9\x8a. -

- - -

Sindhi (sd)

-

-واشنگٽن (م ڊ) آمريڪا چيو آهي ته ڪيري لوگربل تي پاڪ فوج جي تحفظات سان پاڪستان ۾ جمهوري طور آيل زرداري جي حڪومت کي ڪوبه خطرو ناهي، ان سوال تي تي ڪيري لوگربل ۾ پاڪستان کي غير مشروط امداد ڏيڻ جي ڳالهه ڪئي وئي آهي، جڏهن ته فوجي امداد تي شرط لاڳو ڪيا -

- -
- - -

Indic Scripts

- -

-Malayalam -

-

സംസ്ഥാനത്ത് രാഷ്ട്രീയ പുകമറ സൃഷ്ടിക്കാനാണ് വോട്ടര്‍പട്ടിക വിവാദത്തിലൂടെ കോണ്‍ഗ്രസ് ശ്രമിക്കുന്നതെന്ന് സിപി‌എം സംസ്ഥാന സെക്രട്ടറി പിണറായി വിജയന്‍ കുറ്റപ്പെടുത്തി. ഉദ്യോഗസ്ഥരെ ഭീഷണിപ്പെടുത്തി വരുതിയില്‍ നിര്‍ത്താനാണ് വയലാര്‍ രവി ഉള്‍പ്പെടെയുള്ളവര്‍ ശ്രമിക്കുന്നതെന്നും പിണറാ‍യി പ്രസ്താവനയില്‍ ആരോപിച്ചു. -

- -

Kannada

-

-ತಮ್ಮದೇ ಕುಟುಂಬದ ಯುವತಿಯೊಬ್ಬಳನ್ನು ಸತತ ಹಲವಾರು ವರ್ಷ ಭೋಗಿಸಿದ ಭಾರತೀಯ ಮೂಲದ ಮೂವರು ದುರುಳ ಸಂಬಂಧಿಕರು ಅಪರಾಧಿಗಳೆಂದು ಸಾಬೀತಾಗಿದ್ದು, ಇಂಗ್ಲೆಂಡ್ ನ್ಯಾಯಾಲಯವು ದೀರ್ಘಾವಧಿ ಕಠಿಣ ಶಿಕ್ಷೆ ವಿಧಿಸಿದೆ. -

- -

Telegu

-

ఆగ్నేయ ఇరాన్‌లో ఆదివారం నాడు ఓ ఆత్మాహుతి దాడి జరగడంతో ఇరవై మంది మృతి చెందారు. -
- -ఆగ్నేయ ఇరాన్‌లో ఆత్మాహుతి దాడి జరగడంతో ఐదుగురు ఎలిట్ రెవల్యూషనరీ గార్డ్‌లతో సహా ప్రముఖ కమాండర్‌లతోసహా మొత్తం ఇరవై మంది మృతి చెందినట్లు ఇరాన్ లోక్‌సభ స్పీకర్ అలీ లారిజానీ తెలిపారు. -

- - - -

Tamil (ta)

-

\xe0\xae\x87\xe0\xae\xb0\xe0\xae\xbe\xe0\xae\x95\xe0\xaf\x8d\xe0\xae\x95\xe0\xae\xbf\xe0\xae\xaf \xe0\xae\xae\xe0\xae\x95\xe0\xaf\x8d\xe0\xae\x95\xe0\xae\xb3\xe0\xaf\x8d \xe0\xae\x85\xe0\xae\xb5\xe0\xae\xa8\xe0\xae\xae\xe0\xaf\x8d\xe0\xae\xaa\xe0\xae\xbf\xe0\xae\x95\xe0\xaf\x8d\xe0\xae\x95\xe0\xaf\x88\xe0\xae\xaf\xe0\xaf\x81\xe0\xae\x9f\xe0\xae\xa9\xe0\xaf\x8d \xe0\xae\x87\xe0\xae\xb0\xe0\xaf\x81\xe0\xae\xaa\xe0\xaf\x8d\xe0\xae\xaa\xe0\xae\xa4\xe0\xae\xbe\xe0\xae\x95\xe0\xae\xb5\xe0\xaf\x81\xe0\xae\xae\xe0\xaf\x8d, \xe0\xae\xb7\xe0\xae\xbf\xe0\xae\xaf\xe0\xae\xbe \xe0\xae\xae\xe0\xae\xb1\xe0\xaf\x8d\xe0\xae\xb1\xe0\xaf\x81\xe0\xae\xae\xe0\xaf\x8d \xe0\xae\x9a\xe0\xaf\x81\xe0\xae\xa9\xe0\xae\xbf\xe0\xae\x95\xe0\xaf\x8d\xe0\xae\x95\xe0\xae\xb3\xe0\xaf\x8d \xe0\xae\xae\xe0\xaf\x81\xe0\xae\xb0\xe0\xae\xa3\xe0\xaf\x8d\xe0\xae\xaa\xe0\xae\x9f\xe0\xaf\x8d\xe0\xae\x9f \xe0\xae\x95\xe0\xae\xb0\xe0\xaf\x81\xe0\xae\xa4\xe0\xaf\x8d\xe0\xae\xa4\xe0\xaf\x81\xe0\xae\x95\xe0\xaf\x8d\xe0\xae\x95\xe0\xae\xb3\xe0\xaf\x81\xe0\xae\x9f\xe0\xae\xa9\xe0\xaf\x8d \xe0\xae\xa4\xe0\xaf\x81\xe0\xae\xb0\xe0\xaf\x81\xe0\xae\xb5\xe0\xae\xaa\xe0\xaf\x8d\xe0\xae\xaa\xe0\xae\x9f\xe0\xaf\x8d\xe0\xae\x9f \xe0\xae\xa8\xe0\xae\xbf\xe0\xae\xb2\xe0\xaf\x88\xe0\xae\xaf\xe0\xae\xbf\xe0\xae\xb2\xe0\xaf\x8d \xe0\xae\x87\xe0\xae\xb0\xe0\xaf\x81\xe0\xae\xaa\xe0\xaf\x8d\xe0\xae\xaa\xe0\xae\xa4\xe0\xae\xbe\xe0\xae\x95\xe0\xae\xb5\xe0\xaf\x81\xe0\xae\xae\xe0\xaf\x8d \xe0\xae\x95\xe0\xae\xb0\xe0\xaf\x81\xe0\xae\xa4\xe0\xaf\x8d\xe0\xae\xa4\xe0\xaf\x81\xe0\xae\x95\xe0\xaf\x8d \xe0\xae\x95\xe0\xae\xa3\xe0\xae\xbf\xe0\xae\xaa\xe0\xaf\x8d\xe0\xae\xaa\xe0\xaf\x81 \xe0\xae\x92\xe0\xae\xa9\xe0\xaf\x8d\xe0\xae\xb1\xe0\xaf\x81 \xe0\xae\x95\xe0\xaf\x82\xe0\xae\xb1\xe0\xaf\x81\xe0\xae\x95\xe0\xae\xbf\xe0\xae\xb1\xe0\xae\xa4\xe0\xaf\x81.

- - -

Oriya

-

ଓଡ଼ିଆ ଉଇକିପେଡିଆ ଆପଣଙ୍କୁ ସ୍ବାଗତ କରୁଛି। ଏହି ଉନ୍ମୁକ୍ତ ଜ୍ଞାନକୋଷଟି ଇଣ୍ଟରନେଟ ଉପରେ ଆଧାରିତ ଏବଂ ଏହା ବିଶ୍ବର ୫୦ଟି ଭାଷାରେ ଉପଲବ୍ଧ । ଏହାକୁ ଆପଣ ମଧ୍ୟ ବର୍ଦ୍ଧିତ ଓ ପରିବର୍ତିତ କରିପାରିବେ ଏବଂ ଏହାକୁ ଉନ୍ନତ କରିବା ପାଇଁ ନିଜର ଅବଦାନ ଦେଇ ପାରିବେ । ଆପଣଙ୍କ ପସନ୍ଦର ବିଷୟ ଗୁଡିକୁ ଆପଣ ନୂତନ ଭାବେରେ ଯୋଗ କରିପାରିବେ କିମ୍ବା ଏହି ପୃଷ୍ଠାକୁ ସମ୍ପାଦନ କରି ଏହା ସହିତ ଯୋଗ କରିପାରିବ । ସମସ୍ତ ପାଠ ଗୁଡିକ GNU ମୁକ୍ତ ଦଲିଲକରଣ ଲାଇସେନ୍ସର ସର୍ତ୍ତ ଅଧୀନରେ ଉପଲବ୍ଧ । ତଥାପି, ଆପଣ ଏହାକୁ ମୁକ୍ତ ଭାବେର ଇଲେକ୍ଟ୍ରୋନିକ୍ସ ପ୍ରିଣ୍ଟ୍ କିମ୍ବା ଅନ୍ୟାନ୍ୟ ପ୍ରିଣ୍ଟର ମାଧ୍ୟମରେ ବ୍ୟବହାର କରିପାରିବ । -

- -

Punjabi

-

ਕੇਂਦਰੀ ਗ੍ਰਹਿਮੰਤਰੀ ਪੀ.ਚਿਦੰਬਰਮ ਨੇ ਐਤਵਾਰ ਨੂੰ ਤਮਿਲਨਾਢੂ ਦੇ ਮੁੱਖਮੰਤਰੀ ਐਮ.ਕਰੁਣਾਨਿਧੀ ਨਾਲ ਮੁਲਾਕਾਤ ਕੀਤੀ।ਉਨ੍ਹਾ ਨੇ ਸ਼੍ਰੀਲੰਕਾ 'ਚ ਲਿੱਟੇ ਦੇ ਖਿਲਾਫ਼ ਯੁੱਧ ਦੌਰਾਨ ਉੱਝੜੇ ਹੋਏ ਲੱਗਭਗ ਢਾਈ ਲੱਖ ਤਮਿਲਾਂ ਦੀ ਮੁੜ ਰਿਹਾਇਸ਼ 'ਤੇ ਚਰਚਾ ਕੀਤੀ। -

- -

Gujarati (gu)

-

-આ વાત હજાર વાર કહેવામાં આવી છે કે ફિલ્મ બનાવતી વખેત હંમેશા સૌથી વધુ ધ્યાન વાર્તા અને સ્ક્રીનપ્લે પર આપવુ જોઈએ. કારણ કે આ કોઈ પણ ફિલ્મની સફળતાનો મુખ્ય આધાર હોય છે. -
-મોટા ફિલ્મ સ્ટાર્સ સાઈન કરવાથી, સ્ટંટ અને ગીતોથી પાણીની અંદર કે આકાશમાં કરોડો રૂપિયા ખર્ચ કરી ફિલ્માવેલા દ્રશ્યોથી કશુ જ નથી થતુ. પરંતુ આ બુનિયાદી વાત અત્યાર સુધી કોઈ લોકોને સમજાતી નથી. -

- - -

Hindi (hi)

-

\xe0\xa4\xad\xe0\xa4\xbe\xe0\xa4\xb0\xe0\xa4\xa4 \xe0\xa4\x94\xe0\xa4\xb0 \xe0\xa4\xac\xe0\xa4\xb0\xe0\xa4\xae\xe0\xa5\x82\xe0\xa4\xa1\xe0\xa4\xbe \xe0\xa4\x95\xe0\xa5\x87 \xe0\xa4\xac\xe0\xa5\x80\xe0\xa4\x9a \xe0\xa4\xac\xe0\xa4\xbe\xe0\xa4\xb0\xe0\xa4\xbf\xe0\xa4\xb6 \xe0\xa4\x95\xe0\xa5\x87 \xe0\xa4\x95\xe0\xa4\xbe\xe0\xa4\xb0\xe0\xa4\xa3 \xe0\xa4\xb0\xe0\xa5\x81\xe0\xa4\x95\xe0\xa4\xbe \xe0\xa4\xae\xe0\xa5\x88\xe0\xa4\x9a \xe0\xa4\xa6\xe0\xa5\x8b\xe0\xa4\xac\xe0\xa4\xbe\xe0\xa4\xb0\xe0\xa4\xbe \xe0\xa4\xb6\xe0\xa5\x81\xe0\xa4\xb0\xe0\xa5\x81 \xe0\xa4\xb9\xe0\xa5\x8b \xe0\xa4\x97\xe0\xa4\xaf\xe0\xa4\xbe \xe0\xa4\xb9\xe0\xa5\x88. \xe0\xa4\xad\xe0\xa4\xbe\xe0\xa4\xb0\xe0\xa4\xa4 \xe0\xa4\xa8\xe0\xa5\x87 \xe0\xa4\xac\xe0\xa4\xb0\xe0\xa4\xae\xe0\xa5\x82\xe0\xa4\xa1\xe0\xa4\xbe \xe0\xa4\x95\xe0\xa5\x87 \xe0\xa4\xb8\xe0\xa4\xbe\xe0\xa4\xae\xe0\xa4\xa8\xe0\xa5\x87 \xe0\xa4\xb0\xe0\xa4\xbf\xe0\xa4\x95\xe0\xa5\x89\xe0\xa4\xb0\xe0\xa5\x8d\xe0\xa4\xa1 414 \xe0\xa4\xb0\xe0\xa4\xa8\xe0\xa5\x8b\xe0\xa4\x82 \xe0\xa4\x95\xe0\xa4\xbe \xe0\xa4\xb2\xe0\xa4\x95\xe0\xa5\x8d\xe0\xa4\xb7\xe0\xa5\x8d\xe0\xa4\xaf \xe0\xa4\xb0\xe0\xa4\x96\xe0\xa4\xbe \xe0\xa4\xb9\xe0\xa5\x88. \xe0\xa4\xac\xe0\xa4\xb0\xe0\xa4\xae\xe0\xa5\x82\xe0\xa4\xa1\xe0\xa4\xbe \xe0\xa4\xa8\xe0\xa5\x87 \xe0\xa4\xa6\xe0\xa5\x8b \xe0\xa4\xb5\xe0\xa4\xbf\xe0\xa4\x95\xe0\xa5\x87\xe0\xa4\x9f \xe0\xa4\x96\xe0\xa5\x8b \xe0\xa4\xa6\xe0\xa4\xbf\xe0\xa4\x8f \xe0\xa4\xb9\xe0\xa5\x88\xe0\xa4\x82.

- - -

Nepali (ne) - Devanagari

-

\xe0\xa4\x85\xe0\xa4\xa8\xe0\xa5\x8d\xe0\xa4\xa4\xe0\xa4\xb0\xe0\xa4\xbf\xe0\xa4\xae \xe0\xa4\xb8\xe0\xa4\xb0\xe0\xa4\x95\xe0\xa4\xbe\xe0\xa4\xb0\xe0\xa4\x95\xe0\xa5\x8b \xe0\xa4\x97\xe0\xa4\xa0\xe0\xa4\xa8\xe0\xa4\xae\xe0\xa4\xbe \xe0\xa4\xa2\xe0\xa5\x80\xe0\xa4\xb2\xe0\xa4\xbe\xe0\xa4\x87 \xe0\xa4\xb9\xe0\xa5\x81\xe0\xa4\xa8\xe0\xa5\x81\xe0\xa4\x95\xe0\xa4\xbe \xe0\xa4\xb8\xe0\xa4\xbe\xe0\xa4\xa5\xe0\xa5\x88 \xe0\xa4\x86\xe0\xa4\x89\xe0\xa4\x82\xe0\xa4\xa6\xe0\xa5\x8b \xe0\xa4\x9c\xe0\xa5\x87\xe0\xa4\xa0 \xe0\xa4\xae\xe0\xa4\xb9\xe0\xa4\xbf\xe0\xa4\xa8\xe0\xa4\xbe\xe0\xa4\xad\xe0\xa4\xbf\xe0\xa4\xa4\xe0\xa5\x8d\xe0\xa4\xb0 \xe0\xa4\xb8\xe0\xa4\x82\xe0\xa4\xb5\xe0\xa4\xbf\xe0\xa4\xa7\xe0\xa4\xbe\xe0\xa4\xa8\xe0\xa4\xb8\xe0\xa4\xad\xe0\xa4\xbe\xe0\xa4\x95\xe0\xa5\x8b \xe0\xa4\x9a\xe0\xa5\x81\xe0\xa4\xa8\xe0\xa4\xbe\xe0\xa4\xb5 \xe0\xa4\xb9\xe0\xa5\x8b\xe0\xa4\xb2\xe0\xa4\xbe \xe0\xa4\x95\xe0\xa4\xbf \xe0\xa4\xa8\xe0\xa4\xb9\xe0\xa5\x8b\xe0\xa4\xb2\xe0\xa4\xbe \xe0\xa4\xad\xe0\xa4\xa8\xe0\xa5\x8d\xe0\xa4\xa8\xe0\xa5\x87 \xe0\xa4\xac\xe0\xa4\xb9\xe0\xa4\xb8 \xe0\xa4\x9a\xe0\xa4\xb0\xe0\xa5\x8d\xe0\xa4\x95\xe0\xa5\x80\xe0\xa4\xb0\xe0\xa4\xb9\xe0\xa5\x87\xe0\xa4\x95\xe0\xa5\x8b \xe0\xa4\xac\xe0\xa5\x87\xe0\xa4\xb2\xe0\xa4\xbe \xe0\xa4\x9a\xe0\xa5\x81\xe0\xa4\xa8\xe0\xa4\xbe\xe0\xa4\xb5\xe0\xa4\x95\xe0\xa5\x88 \xe0\xa4\xb5\xe0\xa4\xbf\xe0\xa4\xb7\xe0\xa4\xaf\xe0\xa4\xae\xe0\xa4\xbe \xe0\xa4\xa8\xe0\xa4\xbf\xe0\xa4\xb0\xe0\xa5\x8d\xe0\xa4\xb5\xe0\xa4\xbe\xe0\xa4\x9a\xe0\xa4\xa8 \xe0\xa4\x86\xe0\xa4\xaf\xe0\xa5\x8b\xe0\xa4\x97 \xe0\xa4\xb0 \xe0\xa4\x86\xe0\xa4\xa0 \xe0\xa4\xa6\xe0\xa4\xb2\xe0\xa4\x95\xe0\xa5\x8b \xe0\xa4\xac\xe0\xa5\x87\xe0\xa4\x97\xe0\xa5\x8d\xe0\xa4\xb2\xe0\xa4\xbe, \xe0\xa4\xac\xe0\xa5\x87\xe0\xa4\x97\xe0\xa5\x8d\xe0\xa4\xb2\xe0\xa5\x88 \xe0\xa4\xad\xe0\xa4\xa8\xe0\xa4\xbe\xe0\xa4\x87 \xe0\xa4\xb0\xe0\xa4\xb9\xe0\xa5\x87\xe0\xa4\x95\xe0\xa5\x8b \xe0\xa4\xa6\xe0\xa5\x87\xe0\xa4\x96\xe0\xa4\xbf\xe0\xa4\x8f\xe0\xa4\x95\xe0\xa5\x8b \xe0\xa4\x9b\xe0\xa5\xa4

- - -

Bengali (bn)

-

-দক্ষিণ ওয়াজিরিস্থানে কর্মরত স্বেচ্ছাসেবী ও ত্রাণ সংস্থাগুলো ধারণা করছে সেনা অভিযানের তীব্রতা বাড়লে এই সংখ্যাটা আরও অনেক বেড়ে যাবে -
-শরণার্থীদের স্রোত সামলাতে তারা ইতিমধ্যেই হিমশিম খাচ্ছেন, ফলে লড়াই থেকে পালিয়ে আসা বেসামরিক মানুষজনের সংখ্যা আরও বাড়লে স্বভাবতই সঙ্কট আরও জটিল হয়ে উঠবে -

- - -

Assamese

-

অসমীয়া ৱিকিপিডিয়াৰ উদ্দেশ্য হ'ল সম্পূৰ্ণ অসমীয়া ভাষাত এখনি বিশ্বকোষ প্ৰণয়ন কৰা। অন্য কোনো ভাষাৰ প্ৰবন্ধ এই বিশ্বকোষৰ বাবে গ্ৰহন কৰা নহ'ব। বিশ্বকোষৰ অৱদানকাৰীসকললৈ সাদৰেৰে অনুৰোধ জনোৱা হ'ল যাতে তেখেতসকলে অসমীয়া ভাষাৰ প্ৰচলিত বানান পদ্ধতি মানি চলে। বিদেশী শব্দৰ অসমীয়া প্ৰতিৰূপৰ ক্ষেত্ৰত যিহেতু অসমীয়া সাহিত্যিকসকল এতিয়াও ঐক্যমতত উপনীত হ'ব পৰা নাই, ৱিকিপিডিয়াত বিদেশী শব্দৰ যিকোনো ধৰনৰ অসমীয়া ৰূপ গ্ৰাহ্য কৰা হ'ব। -

- - - - -

Japanese (pangrams)

-
Iroha Uta SJIS
- -

\xe3\x81\x84\xe3\x82\x8d\xe3\x81\xaf\xe3\x81\xab\xe3\x81\xbb\xe3\x81\xb8\xe3\x81\xa8\xe3\x80\x80\xe3\x81\xa1\xe3\x82\x8a\xe3\x81\xac\xe3\x82\x8b\xe3\x82\x92\xe3\x80\x80\xe3\x82\x8f\xe3\x81\x8b\xe3\x82\x88\xe3\x81\x9f\xe3\x82\x8c\xe3\x81\x9d\xe3\x80\x80\xe3\x81\xa4\xe3\x81\xad\xe3\x81\xaa\xe3\x82\x89\xe3\x82\x80\xe3\x80\x80\xe3\x81\x86\xe3\x82\x90\xe3\x81\xae\xe3\x81\x8a\xe3\x81\x8f\xe3\x82\x84\xe3\x81\xbe\xe3\x80\x80\xe3\x81\x91\xe3\x81\xb5\xe3\x81\x93\xe3\x81\x88\xe3\x81\xa6\xe3\x80\x80\xe3\x81\x82\xe3\x81\x95\xe3\x81\x8d\xe3\x82\x86\xe3\x82\x81\xe3\x81\xbf\xe3\x81\x97\xe3\x80\x80\xe3\x82\x91\xe3\x81\xb2\xe3\x82\x82\xe3\x81\x9b\xe3\x81\x99

- -
Tori Naku Uta
- -

\xe3\x81\xa8\xe3\x82\x8a\xe3\x81\xaa\xe3\x81\x8f\xe3\x81\x93\xe3\x82\x91\xe3\x81\x99\xe3\x80\x80\xe3\x82\x86\xe3\x82\x81\xe3\x81\x95\xe3\x81\xbe\xe3\x81\x9b\xe3\x80\x80\xe3\x81\xbf\xe3\x82\x88\xe3\x81\x82\xe3\x81\x91\xe3\x82\x8f\xe3\x81\x9f\xe3\x82\x8b\xe3\x80\x80\xe3\x81\xb2\xe3\x82\x93\xe3\x81\x8b\xe3\x81\x97\xe3\x82\x92\xe3\x80\x80\xe3\x81\x9d\xe3\x82\x89\xe3\x81\x84\xe3\x82\x8d\xe3\x81\xaf\xe3\x81\x88\xe3\x81\xa6\xe3\x80\x80\xe3\x81\x8a\xe3\x81\x8d\xe3\x81\xa4\xe3\x81\xb8\xe3\x81\xab\xe3\x80\x80\xe3\x81\xbb\xe3\x81\xb5\xe3\x81\xad\xe3\x82\x80\xe3\x82\x8c\xe3\x82\x90\xe3\x81\xac\xe3\x80\x80\xe3\x82\x82\xe3\x82\x84\xe3\x81\xae\xe3\x81\x86\xe3\x81\xa1

- -
Ametsuchi No Uta
- -

\xe3\x81\x82\xe3\x82\x81 \xe3\x81\xa4\xe3\x81\xa1 \xe3\x81\xbb\xe3\x81\x97 \xe3\x81\x9d\xe3\x82\x89 / \xe3\x82\x84\xe3\x81\xbe \xe3\x81\x8b\xe3\x81\xaf \xe3\x81\xbf\xe3\x81\xad \xe3\x81\x9f\xe3\x81\xab / \xe3\x81\x8f\xe3\x82\x82 \xe3\x81\x8d\xe3\x82\x8a \xe3\x82\x80\xe3\x82\x8d \xe3\x81\x93\xe3\x81\x91 / \xe3\x81\xb2\xe3\x81\xa8 \xe3\x81\x84\xe3\x81\xac \xe3\x81\x86\xe3\x81\xb8 \xe3\x81\x99\xe3\x82\x91 / \xe3\x82\x86\xe3\x82\x8f \xe3\x81\x95\xe3\x82\x8b \xe3\x81\x8a\xe3\x81\xb5 \xe3\x81\x9b\xe3\x82\x88 / \xe3\x81\x88\xe3\x81\xae\xe3\x81\x88*\xe3\x82\x92 \xe3\x81\xaa\xe3\x82\x8c \xe3\x82\x90\xe3\x81\xa6

- -
Taini no Uta
- -

\xe3\x81\x9f\xe3\x82\x90\xe3\x81\xab\xe3\x81\x84\xe3\x81\xa6\xe3\x80\x80\xe3\x81\xaa\xe3\x81\xa4\xe3\x82\x80\xe3\x82\x8f\xe3\x82\x8c\xe3\x82\x92\xe3\x81\x9d\xe3\x80\x80\xe3\x81\x8d\xe3\x81\xbf\xe3\x82\x81\xe3\x81\x99\xe3\x81\xa8\xe3\x80\x80\xe3\x81\x82\xe3\x81\x95\xe3\x82\x8a\xe3\x81\x8a\xe3\x81\xb2\xe3\x82\x86\xe3\x81\x8f\xe3\x80\x80\xe3\x82\x84\xe3\x81\xbe\xe3\x81\x97\xe3\x82\x8d\xe3\x81\xae\xe3\x80\x80\xe3\x81\x86\xe3\x81\xa1\xe3\x82\x91\xe3\x81\xb8\xe3\x82\x8b\xe3\x81\x93\xe3\x82\x89\xe3\x80\x80\xe3\x82\x82\xe3\x81\xaf\xe3\x81\xbb\xe3\x81\x9b\xe3\x82\x88\xe3\x80\x80\xe3\x81\x88\xe3\x81\xb5\xe3\x81\xad\xe3\x81\x8b\xe3\x81\x91\xe3\x81\xac

- -

Chinese (simplified) GB2312 GB

- -

\xe6\x9d\xa5\xe8\x87\xaa\xe5\x95\x86\xe5\x8a\xa1\xe9\x83\xa8\xe6\x96\xb0\xe9\x97\xbb\xe5\x8a\x9e\xe5\x85\xac\xe5\xae\xa4\xe7\x9a\x84\xe6\xb6\x88\xe6\x81\xaf\xe7\xa7\xb0\xef\xbc\x8c\xe4\xb8\xad\xe6\x96\xb9\xe5\x85\x8d\xe9\x99\xa4\xe4\xb8\x8e\xe4\xb8\xad\xe5\x9b\xbd\xe6\x9c\x89\xe5\xa4\x96\xe4\xba\xa4\xe5\x85\xb3\xe7\xb3\xbb\xe7\x9a\x84\xe6\x89\x80\xe6\x9c\x89\xe9\x9d\x9e\xe6\xb4\xb2\xe9\x87\x8d\xe5\x80\xba\xe7\xa9\xb7\xe5\x9b\xbd\xe5\x8f\x8a\xe6\x9c\x80\xe4\xb8\x8d\xe5\x8f\x91\xe8\xbe\xbe\xe5\x9b\xbd\xe5\xae\xb6\xe6\x88\xaa\xe8\x87\xb32005\xe5\xb9\xb4\xe5\xba\x95\xe5\xaf\xb9\xe5\x8d\x8e\xe5\x88\xb0\xe6\x9c\x9f\xe6\x94\xbf\xe5\xba\x9c\xe6\x97\xa0\xe6\x81\xaf\xe8\xb4\xb7\xe6\xac\xbe\xe5\x80\xba\xe5\x8a\xa1\xe3\x80\x82\xe6\x9c\x89\xe5\x85\xb3\xe9\x83\xa8\xe9\x97\xa8\xe5\xb7\xb2\xe5\xaf\xb9\xe7\x9b\xb8\xe5\x85\xb3\xe5\x80\xba\xe5\x8a\xa1\xe8\xbf\x9b\xe8\xa1\x8c\xe5\x85\xa8\xe9\x9d\xa2\xe6\xb8\x85\xe7\x90\x86\xe6\xa0\xb8\xe5\xaf\xb9\xef\xbc\x8c\xe5\xaf\xb9\xe4\xb8\x8e\xe4\xb8\xad\xe5\x9b\xbd\xe6\x9c\x89\xe5\xa4\x96\xe4\xba\xa4\xe5\x85\xb3\xe7\xb3\xbb\xe7\x9a\x8433\xe4\xb8\xaa\xe9\x9d\x9e\xe6\xb4\xb2\xe9\x87\x8d\xe5\x80\xba\xe7\xa9\xb7\xe5\x9b\xbd\xe5\x92\x8c\xe6\x9c\x80\xe4\xb8\x8d\xe5\x8f\x91\xe8\xbe\xbe\xe5\x9b\xbd\xe5\xae\xb6\xef\xbc\x8c\xe5\x85\x8d\xe9\x99\xa4\xe5\x85\xb6\xe6\x88\xaa\xe8\x87\xb32005\xe5\xb9\xb4\xe5\xba\x95168\xe7\xac\x94\xe5\xaf\xb9\xe5\x8d\x8e\xe5\x88\xb0\xe6\x9c\x9f\xe6\x97\xa0\xe6\x81\xaf\xe8\xb4\xb7\xe6\xac\xbe\xe5\x80\xba\xe5\x8a\xa1\xe3\x80\x82\xe6\x8b\x9f\xe4\xba\x8e2007\xe5\xb9\xb4\xe5\xba\x95\xe5\x89\x8d\xe4\xb8\x8e\xe5\x8f\x97\xe6\x8f\xb4\xe5\x9b\xbd\xe5\x8a\x9e\xe7\x90\x86\xe5\xae\x8c\xe5\x85\x8d\xe5\x80\xba\xe5\x8d\x8f\xe8\xae\xae\xe3\x80\x82

- - -

Chinese (Traditional - Hong Kong) Big5

- -

\xe3\x80\x8c\xe6\x86\x82\xe9\xac\xb1\xe5\xb0\x8f\xe7\x8e\x8b\xe5\xad\x90\xe3\x80\x8d\xe6\x98\xaf\xe4\xb8\x80\xe5\x80\x8b\xe6\x95\x99\xe8\x82\xb2\xe7\xb6\xb2\xe7\xab\x99\xef\xbc\x8c\xe5\xae\x83\xe6\x88\x90\xe5\x8a\x9f\xe7\xb5\x90\xe5\x90\x88\xe4\xba\x86\xe9\xa6\x99\xe6\xb8\xaf\xe8\xb3\xbd\xe9\xa6\xac\xe6\x9c\x83\xe9\x98\xb2\xe6\xad\xa2\xe8\x87\xaa\xe6\xae\xba\xe7\xa0\x94\xe7\xa9\xb6\xe4\xb8\xad\xe5\xbf\x83\xe5\x90\x84\xe6\x96\xb9\xe9\x9d\xa2\xe7\x9a\x84\xe5\xb0\x88\xe6\x89\x8d\xef\xbc\x8c\xe7\x82\xba\xe9\x9d\x92\xe5\xb0\x91\xe5\xb9\xb4\xe4\xba\xba\xe6\x8f\x90\xe4\xbe\x9b\xe7\xb2\xbe\xe7\xa5\x9e\xe5\x81\xa5\xe5\xba\xb7\xe7\x9a\x84\xe8\xa8\x8a\xe6\x81\xaf\xef\xbc\x8c\xe5\xb0\x8d\xe6\x99\xae\xe5\x8f\x8a\xe6\x8a\x91\xe9\xac\xb1\xe7\x97\x87\xe7\x9f\xa5\xe8\xad\x98\xe7\x9a\x84\xe8\xb2\xa2\xe7\x8d\xbb\xe8\x89\xaf\xe5\xa4\x9a\xe3\x80\x82\xe5\x9c\xa8\xe9\xa6\x99\xe6\xb8\xaf\xef\xbc\x8c\xe5\xae\x83\xe6\x9b\xbe\xe7\x8d\xb2\xe9\x81\xb8\xe7\x82\xba\xe3\x80\x8c2004\xe5\xb9\xb4\xe5\x8d\x81\xe5\xa4\xa7\xe5\x81\xa5\xe5\xba\xb7\xe7\xb6\xb2\xe7\xab\x99\xe3\x80\x8d\xe4\xb9\x8b\xe4\xb8\x80\xef\xbc\x8c\xe8\xa9\xb2\xe9\xa0\x85\xe9\x81\xb8\xe8\x88\x89\xe8\x87\xaa2005\xe5\xb9\xb4\xe8\xb5\xb7\xe6\x94\xb9\xe5\x90\x8d\xe7\x8f\xbe\xe6\x99\x82\xe7\x9a\x84\xe3\x80\x8c\xe5\x84\xaa\xe7\xa7\x80\xe7\xb6\xb2\xe7\xab\x99\xe9\x81\xb8\xe8\x88\x89\xe3\x80\x8d\xe3\x80\x82\xe5\x85\xb6\xe8\xb2\xa2\xe7\x8d\xbb\xe5\x9c\xa8\xe5\x9c\x8b\xe9\x9a\x9b\xe9\x96\x93\xe4\xba\xa6\xe5\x82\x99\xe5\x8f\x97\xe8\x82\xaf\xe5\xae\x9a\xef\xbc\x8c2005\xe5\xb9\xb4\xef\xbc\x8c\xe8\xa9\xb2\xe7\xb6\xb2\xe7\xab\x99\xe6\xa6\xae\xe7\x8d\xb2\xe7\xac\xac\xe5\x85\xab\xe5\xb1\x86\xe3\x80\x8c\xe4\xba\x9e\xe6\xb4\xb2\xe5\x89\xb5\xe6\x96\xb0\xe5\xa4\xa7\xe7\x8d\x8e\xe3\x80\x8d\xe9\x8a\x80\xe7\x8d\x8e\xe3\x80\x82

- - - -

Korean UHC

- -

\xed\x82\xa4\xec\x8a\xa4\xec\x9d\x98 \xea\xb3\xa0\xec\x9c\xa0\xec\xa1\xb0\xea\xb1\xb4\xec\x9d\x80 \xec\x9e\x85\xec\x88\xa0\xeb\x81\xbc\xeb\xa6\xac \xeb\xa7\x8c\xeb\x82\x98\xec\x95\xbc \xed\x95\x98\xea\xb3\xa0 \xed\x8a\xb9\xeb\xb3\x84\xed\x95\x9c \xea\xb8\xb0\xec\x88\xa0\xec\x9d\x80 \xed\x95\x84\xec\x9a\x94\xec\xb9\x98 \xec\x95\x8a\xeb\x8b\xa4.

- - -

Mixed

-

Distinguishes multiple languages enclosed in same element (tags): Arabic \xd9\x82\xd8\xa7\xd9\x84 \xd8\xa7\xd9\x84\xd8\xb1\xd8\xa6\xd9\x8a\xd8\xb3 -English Cat sat on the large mat -Tamil \xe0\xae\xb7\xe0\xae\xbf\xe0\xae\xaf\xe0\xae\xbe -Hindi \xe0\xa4\xad\xe0\xa4\xbe\xe0\xa4\xb0\xe0\xa4\xa4 \xe0\xa4\x94\xe0\xa4\xb0 -Japanese \xe3\x81\x84\xe3\x82\x8d\xe3\x81\xaf\xe3\x81\xab\xe3\x81\xbb\xe3\x81\xb8\xe3\x81\xa8\xe3\x80\x80 -Chinese \xe6\x9d\xa5\xe8\x87\xaa\xe5\x95\x86\xe5\x8a\xa1\xe9\x83\xa8\xe6\x96\xb0\xe9\x97\xbb\xe5\x8a\x9e\xe5\x85\xac -Thai \xe0\xb9\x80\xe0\xb8\x9b\xe0\xb9\x87\xe0\xb8\x99\xe0\xb8\xa1\xe0\xb8\x99\xe0\xb8\xb8\xe0\xb8\xa9\xe0\xb8\xa2 -Viet M\xc3\xb4\xcc\xa3t kha\xcc\x89o sa\xcc\x81t m\xc6\xa1\xcc\x81i cho bi\xc3\xaa\xcc\x81t ng\xc6\xb0\xc6\xa1\xcc\x80i d\xc3\xa2n -Tamil \xe0\xae\xb7\xe0\xae\xbf\xe0\xae\xaf\xe0\xae\xbe -Chinese \xe6\x9d\xa5\xe8\x87\xaa\xe5\x95\x86\xe5\x8a\xa1\xe9\x83\xa8\xe6\x96\xb0\xe9\x97\xbb\xe5\x8a\x9e\xe5\x85\xac -English Cat sat on the large mat -

- - -

Unicode Plane 2

-
-Unicode Plane 0 (BMP U+0000 - U+FFFF): -\xe9\xbc\x82 \xe9\xbc\x88 \xe9\xbc\x97 \xe9\xbc\xa6 \xe9\xbc\xa7 \xe9\xbc\xb9 \xe9\xbd\x84 \xe9\xbd\x85 \xe9\xbd\x90 \xe9\xbd\x93 \xe9\xbd\x9a \xe9\xbd\xa2 \xe9\xbd\xa9 \xe9\xbd\xbf \xe9\xbe\x8e \xe9\xbe\x99 \xe9\xbe\x9f \xe9\xbe\xa5 -------- -Unicode Plane 2 (SIP characters > U+20000): -\xf0\xa0\x80\xa1 \xf0\xa0\x80\xbe \xf0\xa0\x81\x86 \xf0\xa0\x81\x8e \xf0\xa0\x81\xa8 \xf0\xa0\x82\x86 \xf0\xa0\x82\x87 \xf0\xa0\x82\x8a \xf0\xa0\x82\x94 \xf0\xa0\x83\x8a \xf0\xa0\x83\x8b \xf0\xa0\x83\x8c \xf0\xa0\x83\x8d \xf0\xa0\x83\x91 \xf0\xa0\x83\xae \xf0\xa0\x84\x8c \xf0\xa0\x84\x8e \xf0\xa0\x84\x98 \xf0\xa0\x86\xa4 \xf0\xa0\x86\xa9 \xf0\xa0\x86\xab \xf0\xa0\x87\x81 \xf0\xa0\x87\x94 \xf0\xa0\x87\xb2 \xf0\xa0\x88\x84 \xf0\xa0\x88\x8c \xf0\xa0\x88\x94 \xf0\xa0\x88\xb9 \xf0\xa0\x89\x9b \xf0\xa0\x89\xb4 \xf0\xa0\x89\xb5 \xf0\xa0\x8a\x99 \xf0\xa0\x8a\x9e \xf0\xa0\x8a\xa0 \xf0\xa0\x8a\xb7 \xf0\xa0\x8a\xbf \xf0\xa0\x8b\x80 \xf0\xa0\x8b\xa5 \xf0\xa0\x8c\x8a -------- -Unicode Plane 0 (BMPU+0000 - U+FFFF): -\xe9\xbc\x82 \xe9\xbc\x88 \xe9\xbc\x97 \xe9\xbc\xa6 \xe9\xbc\xa7 \xe9\xbc\xb9 \xe9\xbd\x84 \xe9\xbd\x85 \xe9\xbd\x90 \xe9\xbd\x93 \xe9\xbd\x9a \xe9\xbd\xa2 \xe9\xbd\xa9 \xe9\xbd\xbf \xe9\xbe\x8e \xe9\xbe\x99 \xe9\xbe\x9f \xe9\xbe\xa5
-
- - -"; - - - - - -//============================================================== -//============================================================== -//============================================================== -include("../mpdf.php"); - -$mpdf=new mPDF(); - -$mpdf->useAdobeCJK = true; // Default setting in config.php - // You can set this to false if you have defined other CJK fonts - -$mpdf->SetAutoFont(AUTOFONT_ALL); // AUTOFONT_CJK | AUTOFONT_THAIVIET | AUTOFONT_RTL | AUTOFONT_INDIC // AUTOFONT_ALL - // () = default ALL, 0 turns OFF (default initially) - -$mpdf->WriteHTML($html); - -$mpdf->Output(); - -exit; -//============================================================== -//============================================================== -//============================================================== - - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/example30_arabic.php b/public_html/2022/newcms/pdf/examples/example30_arabic.php deleted file mode 100644 index 0793ac1..0000000 --- a/public_html/2022/newcms/pdf/examples/example30_arabic.php +++ /dev/null @@ -1,384 +0,0 @@ - -body, p { direction: rtl; font-family: 'XB Zar'; font-size: 15pt; } - - -

Arabic Languages and Fonts

- - - - -

Arabic
-٠.١.٢.٣.٤.٥.٦.٧.٨.٩ -
-!\"#$%&'()*+,-./0123456789:;<=>?
-@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
-`abcdefghijklmnopqrstuvwxyz{|}~ -
-\xc2\xa2\xe2\x82\xac\xc2\xa9\xc2\xae\xe2\x84\xa2\xe2\x80\xb0\xc2\xb5\xc2\xb7\xe2\x80\xa2\xe2\x80\xa6\xc2\xa7\xc3\x9f\xe2\x80\xb9\xe2\x80\xba\xc2\xab\xc2\xbb\xe2\x80\x98\xe2\x80\x99\xe2\x80\x9c\xe2\x80\x9d\xe2\x80\x9a\xe2\x80\x9e<>\xe2\x80\x93\xe2\x80\x94\xcb\x86\xcb\x9c -\xc2\xb0\xc2\xb1\xc3\xb7\xc3\x97\xc2\xbc\xc2\xbd\xc2\xbe\xc6\x92\xc2\xac\xe2\x80\xa0\xe2\x80\xa1 -
-\xc3\x80\xc3\x81\xc3\x82\xc3\x83\xc3\x84\xc3\x85\xc3\x86\xc3\x87\xc3\x88\xc3\x89\xc3\x8a\xc3\x8b\xc3\x8c\xc3\x8d\xc3\x8e\xc3\x8f\xc3\x90\xc3\x91\xc3\x92\xc3\x93\xc3\x94\xc3\x95\xc3\x96\xc3\x98\xc5\x92\xc5\xa0\xc3\x99\xc3\x9a\xc3\x9b\xc3\x9c\xc3\x9d\xc5\xb8 -
-\xc3\xa0\xc3\xa1\xc3\xa2\xc3\xa3\xc3\xa4\xc3\xa5\xc3\xa6\xc3\xa7\xc3\xa8\xc3\xa9\xc3\xaa\xc3\xab\xc3\xac\xc3\xad\xc3\xae\xc3\xaf\xc3\xb0\xc3\xb1\xc3\xb2\xc3\xb4\xc3\xb5\xc3\xb6\xc3\xb8\xc5\x93\xc5\xa1\xc3\xb9\xc3\xba\xc3\xbb\xc3\xbc\xc3\xbd\xc3\xbe\xc3\xbf -
-الحمد لله رب العالمين والصلاة والسلام على سيد المرسلين سيدنا ومولانا محمد وعلى آله وصحبه صلاة وسلاماً دائمين إلى يوم الدين. -
-٠.١.٢.٣.٤.٥.٦.٧.٨.٩ -

- - - -

Arabic
-٠.١.٢.٣.٤.٥.٦.٧.٨.٩ -
-!\"#$%&'()*+,-./0123456789:;<=>?
-@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
-`abcdefghijklmnopqrstuvwxyz{|}~ -
-\xc2\xa2\xe2\x82\xac\xc2\xa9\xc2\xae\xe2\x84\xa2\xe2\x80\xb0\xc2\xb5\xc2\xb7\xe2\x80\xa2\xe2\x80\xa6\xc2\xa7\xc3\x9f\xe2\x80\xb9\xe2\x80\xba\xc2\xab\xc2\xbb\xe2\x80\x98\xe2\x80\x99\xe2\x80\x9c\xe2\x80\x9d\xe2\x80\x9a\xe2\x80\x9e<>\xe2\x80\x93\xe2\x80\x94\xcb\x86\xcb\x9c -\xc2\xb0\xc2\xb1\xc3\xb7\xc3\x97\xc2\xbc\xc2\xbd\xc2\xbe\xc6\x92\xc2\xac\xe2\x80\xa0\xe2\x80\xa1 -
-\xc3\x80\xc3\x81\xc3\x82\xc3\x83\xc3\x84\xc3\x85\xc3\x86\xc3\x87\xc3\x88\xc3\x89\xc3\x8a\xc3\x8b\xc3\x8c\xc3\x8d\xc3\x8e\xc3\x8f\xc3\x90\xc3\x91\xc3\x92\xc3\x93\xc3\x94\xc3\x95\xc3\x96\xc3\x98\xc5\x92\xc5\xa0\xc3\x99\xc3\x9a\xc3\x9b\xc3\x9c\xc3\x9d\xc5\xb8 -
-\xc3\xa0\xc3\xa1\xc3\xa2\xc3\xa3\xc3\xa4\xc3\xa5\xc3\xa6\xc3\xa7\xc3\xa8\xc3\xa9\xc3\xaa\xc3\xab\xc3\xac\xc3\xad\xc3\xae\xc3\xaf\xc3\xb0\xc3\xb1\xc3\xb2\xc3\xb4\xc3\xb5\xc3\xb6\xc3\xb8\xc5\x93\xc5\xa1\xc3\xb9\xc3\xba\xc3\xbb\xc3\xbc\xc3\xbd\xc3\xbe\xc3\xbf -
-الحمد لله رب العالمين والصلاة والسلام على سيد المرسلين سيدنا ومولانا محمد وعلى آله وصحبه صلاة وسلاماً دائمين إلى يوم الدين. -
-٠.١.٢.٣.٤.٥.٦.٧.٨.٩ -

- - - - - - -

Farsi
-همهٔ افراد بشر آزاد به دنیا می‌آیند و از دید حیثیت و حقوق با هم برابرند، همه دارای اندیشه و وجدان هستند و باید در برابر یکدیگر با روح برادری رفتار کنند. -
-٠.١.٢.٣.٤.٥.٦.٧.٨.٩ -

- - - - - -

Urdu
-\xd8\xac\xd8\xb3\xd9\xb9\xd8\xb3 \xd8\xa7\xd9\x81\xd8\xaa\xd8\xae\xd8\xa7\xd8\xb1 \xda\xa9\xdb\x8c \xd8\xac\xd8\xa8\xd8\xb1\xdb\x8c \xd8\xb1\xd8\xae\xd8\xb5\xd8\xaa \xd9\xbe\xd8\xb1 \xd9\x84\xd8\xa7\xdb\x81\xd9\x88\xd8\xb1\xdb\x81\xd8\xa7\xd8\xa6\xdb\x8c \xda\xa9\xd9\x88\xd8\xb1\xd9\xb9 \xda\xa9\xdb\x92 \xd8\xa7\xdb\x8c\xda\xa9 \xd8\xa7\xd9\x88\xd8\xb1 \xd8\xb3\xd9\x86\xd8\xaf\xda\xbe \xd9\x85\xdb\x8c\xda\xba \xda\xa9\xd8\xa6\xdb\x8c \xd8\xb3\xd9\x88\xd9\x84 \xd8\xac\xd8\xac \xd9\x85\xd8\xb3\xd8\xaa\xd8\xb9\xd9\x81\xdb\x8c \xdb\x81\xd9\x88\xda\xaf\xd8\xa6\xdb\x92 \xdb\x81\xdb\x8c\xda\xba\xdb\x94 -
-\xda\x86\xdb\x8c\xd9\x81 \xd8\xac\xd8\xb3\xd9\xb9\xd8\xb3 \xda\xa9\xdb\x8c \xd8\xb3\xd8\xb1\xda\xaf\xd8\xb1\xd9\x85\xdb\x8c\xd8\xa7\xda\xba \xd9\x85\xd8\xad\xd8\xaf\xd9\x88\xd8\xaf \xda\xa9\xd8\xb1\xd9\x86\xdb\x92 \xd8\xa7\xd9\x88\xd8\xb1 \xd9\xbe\xd9\x88\xd9\x84\xdb\x8c\xd8\xb3 \xd8\xaa\xd8\xb9\xdb\x8c\xd9\x86\xd8\xa7\xd8\xaa\xdb\x8c \xda\xa9\xdb\x92 \xd8\xad\xda\xa9\xd9\x85 \xd9\x86\xd8\xa7\xd9\x85\xdb\x92 \xd9\xbe\xd8\xb1 \xd8\xaf\xd8\xb3\xd8\xaa\xd8\xae\xd8\xb7 \xda\xa9\xd8\xb1\xda\xa9\xdb\x92 \xd8\xba\xd9\x84\xd8\xb7 \xda\xa9\xdb\x8c\xd8\xa7: \xd8\xac\xd9\x86\xd8\xb1\xd9\x84 \xd9\x85\xd8\xb4\xd8\xb1\xd9\x81 -

- - - -

Pashto
-\xd9\xbe\xd9\x87 \xda\xa9\xd8\xa7\xd8\xa8\xd9\x84 \xd8\xa7\xd9\x88 \xda\xa9\xd9\x86\xd8\xaf\xd9\x87\xd8\xa7\xd8\xb1 \xda\xa9\xdb\x90 \xd8\xaf\xd9\x88\xd9\x88 \xda\x81\xd8\xa7\xd9\x86\xd9\x85\xd8\xb1\xda\xaf\xd9\x88 \xd8\xa8\xd8\xb1\xd9\x8a\xd8\xaf\xd9\x88\xd9\x86\xd9\x88 \xd9\x84\xda\x96 \xd8\xaa\xd8\xb1 \xd9\x84\xda\x96\xd9\x87 \xd9\x8a\xd9\x88 \xd9\x85\xd8\xa7\xd8\xb4\xd9\x88\xd9\x85 \xd9\x88\xda\x98\xd9\x84\xd9\x89 \xd8\xa7\xd9\x88 \xd8\xa7\xd8\xaa\xd9\x87 \xd8\xaa\xd9\x86\xd9\x87 \xd9\x86\xd9\x88\xd8\xb1 \xd9\x89\xdb\x90 \xd9\xbc\xd9\xbe\xd9\x8a\xd8\xa7\xd9\x86 \xda\xa9\xda\x93\xd9\x8a. -
-\xd9\x87 \xd8\xb9\xd8\xb1\xd8\xa7\xd9\x82 \xda\xa9\xdb\x90 \xd9\x8a\xd9\x88\xd9\x87 \xd8\xaa\xd8\xa7\xd8\xb2\xd9\x87 \xd9\x86\xd8\xb8\xd8\xb1 \xd8\xb4\xd9\x85\xdb\x90\xd8\xb1\xd9\x86\xd9\x87 \xda\x9a\xd9\x8a\xd9\x8a \xda\x86\xdb\x90 \xd8\xb9\xd8\xb1\xd8\xa7\xd9\x82\xd9\x8a\xd8\xa7\xd9\x86 \xd9\xbe\xd9\x87 \xd8\xb2\xd9\x8a\xd8\xa7\xd8\xaa\xdb\x90\xd8\xaf\xd9\x88\xd9\x86\xda\xa9\xd9\x8a \xd8\xaa\xd9\x88\xda\xaf\xd9\x87 \xd8\xaf \xd8\xad\xd8\xa7\xd9\x84\xd8\xa7\xd8\xaa\xd9\x88 \xd9\xbe\xd9\x87 \xd8\xa7\xda\x93\xd9\x87 \xd8\xa8\xd8\xaf\xd8\xa8\xd9\x8a\xd9\x86\xd9\x87 \xd8\xaf\xd9\x8a \xd8\xa7\xd9\x88 \xd8\xaf \xd8\xa8\xdb\x90 \xd8\xa8\xd8\xa7\xd9\x88\xd8\xb1\xd9\x8a \xd8\xa7\xd8\xad\xd8\xb3\xd8\xa7\xd8\xb3 \xda\xa9\xd9\x88\xd9\x8a\xd8\x8c \xd8\xae\xd9\x88 \xd8\xae\xd9\xbe\xd9\x84 \xd9\x87\xd9\x8a\xd9\x88\xd8\xa7\xd8\xaf \xd9\x8a\xd9\x88\xd9\x85\xd9\x88\xd9\xbc\xd9\x89 \xd8\xba\xd9\x88\xd8\xa7\xda\x93\xd9\x8a. -

- - - - -

Sindhi
-فوج طرفان ڪيري لوگربل جي مخالفت سبب زرداري حڪومت کي خطرو ناهي:آمريڪا -
-واشنگٽن (م ڊ) آمريڪا چيو آهي ته ڪيري لوگربل تي پاڪ فوج جي تحفظات سان پاڪستان ۾ جمهوري طور آيل زرداري جي حڪومت کي ڪوبه خطرو ناهي، ان سوال تي تي ڪيري لوگربل ۾ پاڪستان کي غير مشروط امداد ڏيڻ جي ڳالهه ڪئي وئي آهي، جڏهن ته فوجي امداد تي شرط لاڳو ڪيا -
-٠.١.٢.٣.٤.٥.٦.٧.٨.٩ -
-!\"#$%&'()*+,-./0123456789:;<=>?
-@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
-`abcdefghijklmnopqrstuvwxyz{|}~ -

- - - - -From http://titus.uni-frankfurt.de/unicode/alphabet/arabtest.htm -
- -1. Arabic: -
-ا ـا ـاـ اـ -
-ب ـب ـبـ بـ -
-ت ـت ـتـ تـ -
-ج ـج ـجـ جـ -
-ح ـح ـحـ حـ -
-خ ـخ ـخـ خـ -
-د ـد ـد د -
-ذ ـذ ـذ ذ -
-ر ـر ـر ر -
-ز ـز ـز ز -
-س ـس ـسـ سـ -
-ش ـش ـشـ شـ -
-ص ـص ـصـ صـ -
-ض ـض ـضـ ضـ -
-ط ـط ـطـ طـ -
-ظ ـظ ـظـ ظـ -
-ع ـع ـعـ عـ -
-غ ـغ ـغـ غـ -
-ف ـف ـفـ فـ -
-ق ـق ـقـ قـ -
-ك ـك ـكـ كـ -
-ل ـل ـلـ لـ -
-م ـم ـمـ مـ -
-ن ـن ـنـ نـ -
-ه ـه ـهـ هـ -
-و ـو ـوـ وـ -
-ي ـي ـيـ يـ -
-
- -2. Persian: -
-Four extra letters: پ چ ژ گ -
-ـپ ـپـ پـ -
-ـچ ـچـ پچ -
-ـژ ـژـ ژـ -
-ـگ ـگـ گـ -
-Original Arabic letter ك -modified Persian letter ک -
-Original Arabic letter ي -modified Persian letter ى
-
-همهٔ افراد بشر آزاد به دنیا می‌آیند و از دید حیثیت و حقوق با هم برابرند، همه دارای اندیشه و وجدان هستند و باید در برابر یکدیگر با روح برادری رفتار کنند. -
-
- -3. Pashto: -
-
-ا ـا ـاـ اـ -ب ـب ـبـ بـ -پ ـپ ـپـ پـ -ت ـت ـتـ تـ -ټ ـټ ـټـ ټـ -ث ـث ـثـ ثـ -ج ـج ـجـ جـ -ځ ـځ ـځـ ځـ -چ ـچ ـچـ چـ -څ ـڅ ـڅـ څـ -ح ـح ـحـ حـ -خ ـخ ـخـ خـ - -د ـد ـدـ دـ -ډ ـډ ـډـ ډـ -ذ ـذ ـذـ ذـ -ر ـر ـرـ رـ -ړ ـړ ـړـ ړـ -ز ـز ـزـ زـ -ژ ـژ ـژـ ژـ -ږ ـږ ـږـ ږـ -س ـس ـسـ سـ -ش ـش ـشـ شـ -ښ ـښ ـښـ ښـ - -ص ـص ـصـ صـ -ض ـض ـضـ ضـ -ط ـط ـطـ طـ -ظ ـظ ـظـ ظـ -ع ـع ـعـ عـ -غ ـغ ـغـ غـ -ف ـف ـفـ فـ -ق ـق ـقـ قـ -ک ـک ـکـ کـ -ګ ـګ ـګـ ګـ -ل ـل ـلـ لـ -م ـم ـمـ مـ - -ن ـن ـنـ نـ -ڼ ـڼ ـڼـ ڼـ -ڼ ـڼ ـڼـ ڼـ -ؤ ـؤ ـؤـ ؤـ -ه ـه ـهـ هـ -ۀ ـۀ ـۀـ ۀـ -ی ـی ـیـ یـ -ي ـي ـيـ يـ -ې ـې ـېـ ېـ -ۍ ـۍ ـۍـ ۍـ -ئ ـئ ـئـ ئـ -
-
-
- - -4. Urdu: -
-
-ا ـا ـاـ اـ -ب ـب ـبـ بـ -پ ـپ ـپـ پـ -ت ـت ـتـ تـ -ٹ ـٹ ـٹـ ٹـ -ث ـث ـثـ ثـ -ج ـج ـجـ جـ -ح ـح ـحـ حـ -خ ـخ ـخـ خـ -د ـد ـدـ دـ -ڈ ـڈ ـڈـ ڈـ -ذ ـذ ـذـ ذـ -ر ـر ـرـ رـ -ڑ ـڑ ـڑـ ڑـ -ژ ـژ ـژـ ژـ -س ـس ـسـ سـ -ش ـش ـشـ شـ -ص ـص ـصـ صـ -ض ـض ـضـ ضـ -ط ـط ـطـ طـ -ظ ـظ ـظـ ظـ -ع ـع ـعـ عـ -غ ـغ ـغـ غـ -ف ـف ـفـ فـ -ق ـق ـقـ قـ -ک ـک ـکـ کـ -گ ـگ ـگـ گـ -ل ـل ـلـ لـ -م ـم ـمـ مـ -ن ـن ـنـ نـ -و ـو ـوـ وـ -ہ ﮩ ﮨ -ھ ـھ ـھـ ھـ -ء ـء ـءـ ءـ -ی ـی ـیـ یـ -ے ـے ـےـ ےـ -
-تمام انسان آزاد اور حقوق و عزت کے اعتبار سے برابر پیدا ہوۓ ہیں۔ انہیں ضمیر اور عقل ودیعت ہوئی ہی۔ اسلۓ انہیں ایک دوسرے کے ساتھ بھائی چارے کا سلوک کرنا چاہیۓ۔ -
-
-
- - -5. Sindhi: -
-
- ڄ ـڄ ـڄـ ڄـ - ٺ ـٺ ـٺـ ٺـ - ٽ ـٽ ـٽـ ٽـ - ٿ ـٿ ـٿـ ٿـ - ڀ ـڀ ـڀـ ڀـ - ٻ ـٻ ـٻـ ٻـ - ڙ ـڙ ـڙـ ڙـ - ڍ ـڍ ـڍـ ڍـ - ڊ ـڊ ـڊـ ڊـ - ڏ ـڏ ـڏـ ڏـ - ڌ ـڌ ـڌـ ڌـ - ڇ ـڇ ـڇـ ڇـ - ڃ ـڃ ـڃـ ڃـ - ڦ ـڦ ـڦـ ڦـ - ڻ ـڻ ـڻـ ڻـ - ڱ ـڱ ـڱـ ڱـ - ڳ ـڳ ـڳـ ڳـ - ڪ ـڪ ـڪـ ڪـ -
- -ج ھ ڄ ج پ ث ٺ ٽ ٿ ت ڀ ٻ ب ا -ڙ ر ذ ڍ ڊ ڏ ڌ د خ ح ڇ چ ڃ -ق ڦ ف غ ع ظ ط ض ص ش س ز ڙھ -ي ه و ڻ ن م ل ڱ گھ ڳ گ ک ڪ -
-
-
- - - -

Arabic

-

\xd8\xa7\xd9\x84\xd8\xa7\xd9\x85\xd8\xb1\xd9\x8a\xd9\x83\xd9\x8a \xd8\xac\xd9\x88\xd8\xb1\xd8\xac \xd8\xa8\xd9\x88\xd8\xb4 \xd9\x81\xd9\x8a \xd8\xad\xd8\xaf\xd9\x8a\xd8\xab \xd9\x85\xd8\xaa\xd9\x84\xd9\x81\xd8\xb2 - \xd9\x81\xd9\x8a \xd8\xa7\xd9\x84\xd8\xb0\xd9\x83\xd8\xb1\xd9\x89 \xd8\xa7\xd9\x84\xd8\xb1\xd8\xa7\xd8\xa8\xd8\xb9\xd8\xa9 \xd9\x84\xd9\x84\xd8\xba\xd8\xb2\xd9\x88 \xd8\xa7\xd9\x84\xd8\xa7\xd9\x85\xd8\xb1\xd9\x8a\xd9\x83\xd9\x8a \xd9\x84\xd9\x84\xd8\xb9\xd8\xb1\xd8\xa7\xd9\x82 \xd8\xa7\xd9\x86 \xd8\xa7\xd9\x84\xd8\xa7\xd9\x88\xd9\x84\xd9\x88\xd9\x8a\xd8\xa9 \xd8\xad\xd8\xa7\xd9\x84\xd9\x8a\xd8\xa7 \xd9\x84\xd8\xa7\xd8\xb9\xd8\xa7\xd8\xaf\xd8\xa9 \xd8\xa7\xd9\x84\xd8\xa7\xd9\x85\xd9\x86 \xd9\x84\xd9\x84\xd8\xb9\xd8\xb1\xd8\xa7\xd9\x82.

- -

\xd9\x87\xd9\x84 \xd8\xb3\xd8\xaa\xd8\xb3\xd9\x81\xd8\xb1 \xd8\xa7\xd9\x84\xd8\xac\xd9\x87\xd9\x88\xd8\xaf \xd8\xa7\xd9\x84\xd8\xaf\xd8\xa8\xd9\x84\xd9\x88\xd9\x85\xd8\xa7\xd8\xb3\xd9\x8a\xd8\xa9 \xd8\xa7\xd9\x84\xd8\xac\xd8\xa7\xd8\xb1\xd9\x8a\xd8\xa9 \xd8\xb9\xd9\x86 \xd8\xad\xd9\x84\xd9\x88\xd9\x84\xd8\x9f \xd9\x88\xd9\x83\xd9\x8a\xd9\x81 \xd8\xaa\xd9\x86\xd8\xb8\xd8\xb1 \xd9\x84\xd9\x84\xd8\xa7\xd8\xaa\xd9\x87\xd8\xa7\xd9\x85\xd8\xa7\xd8\xaa \xd9\x84\xd8\xa8\xd8\xb9\xd8\xb6 \xd9\x87\xd8\xb0\xd9\x87 \xd8\xa7\xd9\x84\xd8\xaf\xd9\x88\xd9\x84 \xd8\xa8\xd8\xa7\xd9\x84\xd8\xaa\xd8\xaf\xd8\xae\xd9\x84 \xd9\x81\xd9\x8a \xd8\xa7\xd9\x84\xd8\xb4\xd8\xa3\xd9\x86 \xd8\xa7\xd9\x84\xd8\xb9\xd8\xb1\xd8\xa7\xd9\x82\xd9\x8a\xd8\x8c \xd9\x88\xd8\xa7\xd9\x84\xd8\xaa\xd9\x88\xd8\xb1\xd8\xb7 \xd9\x81\xd9\x8a \xd8\xaf\xd8\xb9\xd9\x85 \xd8\xb9\xd9\x85\xd9\x84\xd9\x8a\xd8\xa7\xd8\xaa \xd8\xa7\xd9\x84\xd8\xb9\xd9\x86\xd9\x81\xd8\x9f \xd9\x88\xd8\xa7\xd9\x84\xd9\x89 \xd8\xa7\xd9\x8a \xd9\x85\xd8\xaf\xd9\x89 \xd9\x8a\xd8\xa8\xd8\xaf\xd9\x88 \xd8\xa7\xd9\x84\xd9\x88\xd8\xb6\xd8\xb9 \xd9\x81\xd9\x8a \xd8\xa7\xd9\x84\xd8\xb9\xd8\xb1\xd8\xa7\xd9\x82 \xd8\xa7\xd9\x86\xd8\xb9\xd9\x83\xd8\xa7\xd8\xb3\xd8\xa7 \xd9\x84\xd9\x84\xd8\xb5\xd8\xb1\xd8\xa7\xd8\xb9\xd8\xa7\xd8\xaa \xd8\xa7\xd9\x84\xd8\xa5\xd9\x82\xd9\x84\xd9\x8a\xd9\x85\xd9\x8a\xd8\xa9 \xd9\x81\xd9\x8a \xd8\xa7\xd9\x84\xd9\x85\xd9\x86\xd8\xb7\xd9\x82\xd8\xa9\xd8\x9f

- -

\xd9\x88\xd8\xa7\xd8\xaf\xd8\xa7\xd9\x86 \xd8\xa7\xd9\x84\xd8\xa8\xd9\x8a\xd8\xaa \xd8\xa7\xd9\x84\xd8\xa7\xd8\xa8\xd9\x8a\xd8\xb6 "\xd8\xa8\xd8\xb4\xd8\xaf\xd8\xa9" \xd8\xaa\xd9\x81\xd8\xac\xd9\x8a\xd8\xb1 \xd8\xa7\xd9\x8a\xd9\x84\xd8\xa7\xd8\xaa \xd9\x81\xd9\x8a\xd9\x85\xd8\xa7 \xd8\xa7\xd8\xb9\xd8\xb1\xd8\xa8\xd8\xaa \xd9\x88\xd8\xb2\xd8\xa7\xd8\xb1\xd8\xa9 \xd8\xa7\xd9\x84\xd8\xae\xd8\xa7\xd8\xb1\xd8\xac\xd9\x8a\xd8\xa9 \xd8\xa7\xd9\x84\xd8\xb1\xd9\x88\xd8\xb3\xd9\x8a\xd8\xa9 \xd8\xb9\xd9\x86 "\xd8\xa7\xd8\xaf\xd8\xa7\xd9\x86\xd8\xaa\xd9\x87\xd8\xa7 \xd8\xa7\xd9\x84\xd8\xb4\xd8\xaf\xd9\x8a\xd8\xaf\xd8\xa9" \xd9\x84\xd9\x84\xd8\xad\xd8\xa7\xd8\xaf\xd8\xab" \xd9\x88\xd8\xa7\xd8\xb5\xd9\x81\xd8\xa9 \xd8\xa7\xd9\x8a\xd8\xa7\xd9\x87 \xd8\xa8\xd9\x80"\xd8\xa7\xd9\x84\xd9\x85\xd8\xaa\xd8\xb7\xd8\xb1\xd9\x81" \xd8\xa7\xd9\x84\xd8\xb0\xd9\x8a \xd8\xa7\xd8\xb3\xd8\xaa\xd9\x87\xd8\xaf\xd9\x81 "\xd9\x85\xd8\xaf\xd9\x86\xd9\x8a\xd9\x8a\xd9\x86 \xd9\x85\xd8\xb3\xd8\xa7\xd9\x84\xd9\x85\xd9\x8a\xd9\x86".

- -

\xd9\x88\xd8\xa7\xd8\xb6\xd8\xa7\xd9\x81\xd8\xaa \xd9\x88\xd8\xb2\xd8\xa7\xd8\xb1\xd8\xa9 \xd8\xa7\xd9\x84\xd8\xae\xd8\xa7\xd8\xb1\xd8\xac\xd9\x8a\xd8\xa9 \xd8\xa7\xd9\x84\xd8\xb1\xd9\x88\xd8\xb3\xd9\x8a\xd8\xa9 \xd9\x81\xd9\x8a \xd8\xa8\xd9\x8a\xd8\xa7\xd9\x86\xd9\x87\xd8\xa7: "\xd9\x85\xd9\x86 \xd8\xa7\xd9\x84\xd9\x85\xd8\xa4\xd8\xb3\xd9\x81 \xd8\xa7\xd9\x86 \xd9\x8a\xd8\xa3\xd8\xaa\xd9\x8a \xd9\x87\xd8\xb0\xd8\xa7 \xd8\xa7\xd9\x84\xd8\xad\xd8\xa7\xd8\xaf\xd8\xab \xd8\xa8\xd9\x8a\xd9\x86\xd9\x85\xd8\xa7 \xd8\xaa\xd8\xa8\xd8\xb0\xd9\x84 \xd8\xa7\xd9\x84\xd8\xac\xd9\x87\xd9\x88\xd8\xaf \xd9\x84\xd8\xaa\xd8\xae\xd8\xb7\xd9\x8a \xd8\xa7\xd9\x84\xd8\xa7\xd8\xb2\xd9\x85\xd8\xa9 \xd8\xa7\xd9\x84\xd9\x81\xd9\x84\xd8\xb3\xd8\xb7\xd9\x8a\xd9\x86\xd9\x8a\xd8\xa9 \xd8\xa7\xd9\x84\xd8\xaf\xd8\xa7\xd8\xae\xd9\x84\xd9\x8a\xd8\xa9".

- -

\xd9\x88\xd8\xaf\xd8\xb9\xd8\xaa \xd9\x85\xd9\x88\xd8\xb3\xd9\x83\xd9\x88 \xd8\xa7\xd9\x84\xd8\xb3\xd9\x84\xd8\xb7\xd8\xa7\xd8\xaa \xd8\xa7\xd9\x84\xd9\x81\xd9\x84\xd8\xb3\xd8\xb7\xd9\x8a\xd9\x86\xd9\x8a\xd8\xa9 \xd8\xa7\xd9\x84\xd9\x89 "\xd8\xa8\xd8\xb0\xd9\x84 \xd9\x83\xd9\x84 \xd9\x85\xd8\xa7 \xd9\x8a\xd9\x85\xd9\x83\xd9\x86 \xd9\x85\xd9\x86 \xd8\xa7\xd8\xac\xd9\x84 \xd8\xa7\xd8\xad\xd8\xaa\xd9\x88\xd8\xa7\xd8\xa1 \xd9\x85\xd8\xb8\xd8\xa7\xd9\x87\xd8\xb1 \xd8\xa7\xd9\x84\xd8\xaa\xd8\xb7\xd8\xb1\xd9\x81 \xd8\xa7\xd9\x84\xd8\xaa\xd9\x8a \xd9\x84\xd8\xa7 \xd9\x85\xd8\xa8\xd8\xb1\xd8\xb1 \xd9\x84\xd9\x87\xd8\xa7 \xd9\x88\xd8\xa7\xd9\x84\xd8\xaa\xd9\x8a \xd9\x84\xd8\xa7 \xd8\xaa\xd9\x81\xd9\x8a\xd8\xaf \xd9\x85\xd8\xb5\xd8\xa7\xd9\x84\xd8\xad \xd8\xa7\xd9\x84\xd8\xb4\xd8\xb9\xd8\xa8 \xd8\xa7\xd9\x84\xd9\x81\xd9\x84\xd8\xb3\xd8\xb7\xd9\x8a\xd9\x86\xd9\x8a \xd8\xb9\xd9\x84\xd9\x89 \xd8\xa7\xd9\x84\xd8\xa7\xd9\x85\xd8\xaf \xd8\xa7\xd9\x84\xd8\xb7\xd9\x88\xd9\x8a\xd9\x84".

- -

\xd9\x88\xd8\xaf\xd8\xb9\xd8\xaa \xd9\x85\xd9\x88\xd8\xb3\xd9\x83\xd9\x88 \xd8\xa7\xd9\x84\xd8\xb3\xd9\x84\xd8\xb7\xd8\xa7\xd8\xaa \xd8\xa7\xd9\x84\xd9\x81\xd9\x84\xd8\xb3\xd8\xb7\xd9\x8a\xd9\x86\xd9\x8a\xd8\xa9 \xd8\xa7\xd9\x84\xd9\x89 "\xd8\xa8\xd8\xb0\xd9\x84 \xd9\x83\xd9\x84 \xd9\x85\xd8\xa7 \xd9\x88\xd8\xaf\xd8\xb9\xd8\xaa \xd9\x85\xd9\x88\xd8\xb3\xd9\x83\xd9\x88 \xd8\xa7\xd9\x84\xd8\xb3\xd9\x84\xd8\xb7\xd8\xa7\xd8\xaa \xd8\xa7\xd9\x84\xd9\x81\xd9\x84\xd8\xb3\xd8\xb7\xd9\x8a\xd9\x86\xd9\x8a\xd8\xa9 \xd8\xa7\xd9\x84\xd9\x89 "\xd8\xa8\xd8\xb0\xd9\x84 \xd9\x83\xd9\x84

- -

\xd9\x88\xd8\xaf\xd8\xb9\xd8\xaa \xd9\x85\xd9\x88\xd8\xb3\xd9\x83\xd9\x88 \xd8\xa7\xd9\x84\xd8\xb3\xd9\x84\xd8\xb7\xd8\xa7\xd8\xaa \xd8\xa7\xd9\x84\xd9\x81\xd9\x84\xd8\xb3\xd8\xb7\xd9\x8a\xd9\x86\xd9\x8a\xd8\xa9 \xd8\xa7\xd9\x84\xd9\x89 \xd9\x88\xd8\xaf\xd8\xb9\xd8\xaa \xd9\x85\xd9\x88\xd8\xb3\xd9\x83\xd9\x88 \xd8\xa7\xd9\x84\xd8\xb3\xd9\x84\xd8\xb7\xd8\xa7\xd8\xaa \xd8\xa7\xd9\x84\xd9\x81\xd9\x84\xd8\xb3\xd8\xb7\xd9\x8a\xd9\x86\xd9\x8a\xd8\xa9 \xd8\xa7\xd9\x84\xd9\x89 "\xd8\xa8\xd8\xb0\xd9\x84 \xd9\x83\xd9\x84 \xd9\x85\xd8\xa7 \xd9\x8a\xd9\x85\xd9\x83\xd9\x86 \xd9\x85\xd9\x86 \xd8\xa7\xd8\xac\xd9\x84

- - -

\xd9\x83\xd9\x85\xd8\xa7 \xd8\xa7\xd8\xaf\xd8\xa7\xd9\x86 \xd8\xa7\xd9\x84\xd9\x81\xd8\xa7\xd8\xb1\xd9\x88 \xd8\xaf\xd9\x8a \xd8\xb3\xd9\x88\xd8\xaa\xd9\x88 \xd9\x85\xd8\xa8\xd8\xb9\xd9\x88\xd8\xab \xd8\xa7\xd9\x84\xd8\xa7\xd9\x85\xd9\x85 \xd8\xa7\xd9\x84\xd9\x85\xd8\xaa\xd8\xad\xd8\xaf\xd8\xa9 \xd8\xa7\xd9\x84\xd8\xae\xd8\xa7\xd8\xb5 \xd8\xa7\xd9\x84\xd9\x89 \xd8\xa7\xd9\x84\xd8\xb4\xd8\xb1\xd9\x82 \xd8\xa7\xd9\x84\xd8\xa7\xd9\x88\xd8\xb3\xd8\xb7 \xd8\xa7\xd9\x84\xd8\xb9\xd9\x85\xd9\x84\xd9\x8a\xd8\xa9 \xd9\x88\xd9\x82\xd8\xa7\xd9\x84 "\xd8\xa7\xd9\x86\xd9\x87 \xd9\x83\xd8\xa7\xd9\x86 \xd9\x87\xd8\xac\xd9\x88\xd9\x85\xd8\xa7 \xd8\xb9\xd9\x84\xd9\x89 \xd8\xa7\xd8\xb4\xd8\xae\xd8\xa7\xd8\xb5 \xd8\xb9\xd8\xa7\xd8\xaf\xd9\x8a\xd9\x8a\xd9\x86 \xd9\x83\xd8\xa7\xd9\x86\xd9\x88\xd8\xa7 \xd9\x8a\xd9\x82\xd9\x88\xd9\x85\xd9\x88\xd9\x86 \xd8\xa8\xd9\x86\xd8\xb4\xd8\xa7\xd8\xb7\xd9\x87\xd9\x85 \xd8\xa7\xd9\x84\xd9\x8a\xd9\x88\xd9\x85\xd9\x8a \xd9\x88\xd9\x87\xd8\xb0\xd8\xa7 \xd8\xa7\xd9\x85\xd8\xb1 \xd9\x84\xd8\xa7 \xd9\x8a\xd9\x85\xd9\x83\xd9\x86 \xd8\xaa\xd8\xa8\xd8\xb1\xd9\x8a\xd8\xb1\xd9\x87".

- -

Farsi / Persian (fa)

-

\xd9\x85\xd8\xad\xd9\x85\xd8\xaf \xd8\xa7\xd9\x84\xd8\xa8\xd8\xb1\xd8\xa7\xd8\xaf\xd8\xb9\xdb\x8c \xd8\xb1\xd8\xa6\xd9\x8a\xd8\xb3 \xd8\xa2\xda\x98\xd8\xa7\xd9\x86\xd8\xb3 \xd8\xa8\xd9\x8a\xd9\x86 \xd8\xa7\xd9\x84\xd9\x85\xd9\x84\xd9\x84\xdb\x8c \xd8\xa7\xd9\x86\xd8\xb1\xda\x98\xdb\x8c \xd8\xa7\xd8\xaa\xd9\x85\xdb\x8c \xd9\xbe\xd9\x8a\xd8\xb4\xd9\x86\xd9\x87\xd8\xa7\xd8\xaf \xda\xa9\xd8\xb1\xd8\xaf\xd9\x87 \xd8\xa7\xd8\xb3\xd8\xaa \xd8\xaa\xd9\x87\xd8\xb1\xd8\xa7\xd9\x86 \xd8\xa8\xd8\xb1\xd9\x86\xd8\xa7\xd9\x85\xd9\x87 \xd8\xac\xd9\x86\xd8\xac\xd8\xa7\xd9\x84\xdb\x8c \xd8\xba\xd9\x86\xdb\x8c \xd8\xb3\xd8\xa7\xd8\xb2\xdb\x8c \xd8\xa7\xd9\x88\xd8\xb1\xd8\xa7\xd9\x86\xd9\x8a\xd9\x88\xd9\x85 \xd8\xb1\xd8\xa7 \xd9\x85\xd8\xaa\xd9\x88\xd9\x82\xd9\x81 \xda\xa9\xd9\x86\xd8\xaf \xd9\x88 \xd8\xba\xd8\xb1\xd8\xa8 \xd9\x86\xd9\x8a\xd8\xb2 \xd8\xa7\xd8\xac\xd8\xb1\xd8\xa7\xdb\x8c \xd8\xaa\xd8\xad\xd8\xb1\xd9\x8a\xd9\x85 \xd9\x87\xd8\xa7\xdb\x8c \xd8\xaa\xd9\x86\xd8\xa8\xd9\x8a\xd9\x87\xdb\x8c \xd9\x85\xd9\x88\xd8\xb1\xd8\xaf \xd8\xaa\xd8\xa7\xd8\xa6\xd9\x8a\xd8\xaf \xd8\xb3\xd8\xa7\xd8\xb2\xd9\x85\xd8\xa7\xd9\x86 \xd9\x85\xd9\x84\xd9\x84 \xd9\x85\xd8\xaa\xd8\xad\xd8\xaf \xd8\xb1\xd8\xa7 \xd8\xa8\xd9\x87 \xd8\xaa\xd8\xb9\xd9\x88\xd9\x8a\xd9\x82 \xd8\xa8\xd9\x8a\xd8\xa7\xd9\x86\xd8\xaf\xd8\xa7\xd8\xb2\xd8\xaf.

- -

\xd8\xac\xd9\x88\xd8\xb1\xd8\xac \xd8\xa8\xd9\x88\xd8\xb4\xd8\x8c \xd8\xaf\xd8\xb1 \xda\x86\xd9\x87\xd8\xa7\xd8\xb1\xd9\x85\xdb\x8c\xd9\x86 \xd8\xb3\xd8\xa7\xd9\x84\xda\xaf\xd8\xb1\xd8\xaf \xd8\xa7\xd8\xb4\xd8\xba\xd8\xa7\xd9\x84 \xd8\xb9\xd8\xb1\xd8\xa7\xd9\x82 \xd9\x85\xdb\x8c \xda\xaf\xd9\x88\xdb\x8c\xd8\xaf \xd8\xa7\xd8\xb3\xd8\xaa\xd8\xb1\xd8\xa7\xd8\xaa\xda\x98\xdb\x8c \xd8\xa7\xd8\xb3\xd8\xaa\xd9\x82\xd8\xb1\xd8\xa7\xd8\xb1 \xd9\x86\xdb\x8c\xd8\xb1\xd9\x88\xd9\x87\xd8\xa7\xdb\x8c \xd8\xa2\xd9\x85\xd8\xb1\xdb\x8c\xda\xa9\xd8\xa7\xdb\x8c\xdb\x8c \xd8\xa8\xdb\x8c\xd8\xb4\xd8\xaa\xd8\xb1\xdb\x8c \xd8\xaf\xd8\xb1 \xd8\xa8\xd8\xba\xd8\xaf\xd8\xa7\xd8\xaf\xd8\x8c \xd9\x85\xd8\xaf\xd8\xaa\xdb\x8c \xd8\xb7\xd9\x88\xd9\x84 \xd8\xae\xd9\x88\xd8\xa7\xd9\x87\xd8\xaf \xda\xa9\xd8\xb4\xdb\x8c\xd8\xaf.

- -

\xd8\xa2\xd9\x85\xd8\xb1\xdb\x8c\xda\xa9\xd8\xa7 \xd9\x88\xdb\x8c\xd8\xb2\xd8\xa7\xdb\x8c \xd8\xb1\xd8\xa6\xdb\x8c\xd8\xb3 \xd8\xac\xd9\x85\xd9\x87\xd9\x88\xd8\xb1 \xd8\xa7\xdb\x8c\xd8\xb1\xd8\xa7\xd9\x86 \xd8\xb1\xd8\xa7 \xd8\xa8\xd9\x87 \xd9\x85\xd9\x86\xd8\xb8\xd9\x88\xd8\xb1 \xd8\xad\xd8\xb6\xd9\x88\xd8\xb1 \xd9\x88\xdb\x8c \xd8\xaf\xd8\xb1 \xd8\xac\xd9\x84\xd8\xb3\xd9\x87 \xd8\xb1\xd8\xa7\xdb\x8c \xda\xaf\xdb\x8c\xd8\xb1\xdb\x8c \xd8\xb4\xd9\x88\xd8\xb1\xd8\xa7\xdb\x8c \xd8\xa7\xd9\x85\xd9\x86\xdb\x8c\xd8\xaa \xd8\xa8\xd8\xb1\xd8\xa7\xdb\x8c \xd9\x82\xd8\xb7\xd8\xb9\xd9\x86\xd8\xa7\xd9\x85\xd9\x87 \xd8\xaa\xd8\xa7\xd8\xb2\xd9\x87 \xd8\xb9\xd9\x84\xdb\x8c\xd9\x87 \xd8\xa7\xdb\x8c\xd9\x86 \xda\xa9\xd8\xb4\xd9\x88\xd8\xb1 \xd8\xb5\xd8\xa7\xd8\xaf\xd8\xb1 \xda\xa9\xd8\xb1\xd8\xaf.

- - -

Urdu

-

\xd8\xac\xd8\xb3\xd9\xb9\xd8\xb3 \xd8\xa7\xd9\x81\xd8\xaa\xd8\xae\xd8\xa7\xd8\xb1 \xda\xa9\xdb\x8c \xd8\xac\xd8\xa8\xd8\xb1\xdb\x8c \xd8\xb1\xd8\xae\xd8\xb5\xd8\xaa \xd9\xbe\xd8\xb1 \xd9\x84\xd8\xa7\xdb\x81\xd9\x88\xd8\xb1\xdb\x81\xd8\xa7\xd8\xa6\xdb\x8c \xda\xa9\xd9\x88\xd8\xb1\xd9\xb9 \xda\xa9\xdb\x92 \xd8\xa7\xdb\x8c\xda\xa9 \xd8\xa7\xd9\x88\xd8\xb1 \xd8\xb3\xd9\x86\xd8\xaf\xda\xbe \xd9\x85\xdb\x8c\xda\xba \xda\xa9\xd8\xa6\xdb\x8c \xd8\xb3\xd9\x88\xd9\x84 \xd8\xac\xd8\xac \xd9\x85\xd8\xb3\xd8\xaa\xd8\xb9\xd9\x81\xdb\x8c \xdb\x81\xd9\x88\xda\xaf\xd8\xa6\xdb\x92 \xdb\x81\xdb\x8c\xda\xba\xdb\x94

- - -

Pashto (ps)

-

\xd9\xbe\xd9\x87 \xda\xa9\xd8\xa7\xd8\xa8\xd9\x84 \xd8\xa7\xd9\x88 \xda\xa9\xd9\x86\xd8\xaf\xd9\x87\xd8\xa7\xd8\xb1 \xda\xa9\xdb\x90 \xd8\xaf\xd9\x88\xd9\x88 \xda\x81\xd8\xa7\xd9\x86\xd9\x85\xd8\xb1\xda\xaf\xd9\x88 \xd8\xa8\xd8\xb1\xd9\x8a\xd8\xaf\xd9\x88\xd9\x86\xd9\x88 \xd9\x84\xda\x96 \xd8\xaa\xd8\xb1 \xd9\x84\xda\x96\xd9\x87 \xd9\x8a\xd9\x88 \xd9\x85\xd8\xa7\xd8\xb4\xd9\x88\xd9\x85 \xd9\x88\xda\x98\xd9\x84\xd9\x89 \xd8\xa7\xd9\x88 \xd8\xa7\xd8\xaa\xd9\x87 \xd8\xaa\xd9\x86\xd9\x87 \xd9\x86\xd9\x88\xd8\xb1 \xd9\x89\xdb\x90 \xd9\xbc\xd9\xbe\xd9\x8a\xd8\xa7\xd9\x86 \xda\xa9\xda\x93\xd9\x8a.

- -"; -//============================================================== -//============================================================== -//============================================================== -include("../mpdf.php"); - -$mpdf=new mPDF(); - -$mpdf->WriteHTML($html); - -$mpdf->Output(); - -exit; - -//============================================================== -//============================================================== -//============================================================== - - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/example32_indic.php b/public_html/2022/newcms/pdf/examples/example32_indic.php deleted file mode 100644 index 9bfdee7..0000000 --- a/public_html/2022/newcms/pdf/examples/example32_indic.php +++ /dev/null @@ -1,219 +0,0 @@ - -body, p { font-size: 15pt;} -h3 { font-size: 15pt; margin-bottom:0; } - - -

Indic Fonts and Languages

- -

-Malayalam -

-

സംസ്ഥാനത്ത് രാഷ്ട്രീയ പുകമറ സൃഷ്ടിക്കാനാണ് വോട്ടര്‍പട്ടിക വിവാദത്തിലൂടെ കോണ്‍ഗ്രസ് ശ്രമിക്കുന്നതെന്ന് സിപി‌എം സംസ്ഥാന സെക്രട്ടറി പിണറായി വിജയന്‍ കുറ്റപ്പെടുത്തി. ഉദ്യോഗസ്ഥരെ ഭീഷണിപ്പെടുത്തി വരുതിയില്‍ നിര്‍ത്താനാണ് വയലാര്‍ രവി ഉള്‍പ്പെടെയുള്ളവര്‍ ശ്രമിക്കുന്നതെന്നും പിണറാ‍യി പ്രസ്താവനയില്‍ ആരോപിച്ചു. -
- -വയലാര്‍ രവിക്കെതിരെ ഇതിന് നടപടി സ്വീകരിക്കണമെന്നും പിണറായി ആവശ്യപ്പെട്ടു. അക്രമപ്രവര്‍ത്തനങ്ങളെ പ്രോത്സാഹിപ്പിക്കുന്നതാണ് രവിയുടെ വാക്കുകള്‍. അധികാരത്തിന്‍റെ മത്ത് തലയ്ക്ക് പിടിച്ചിരിക്കുന്നത് കൊണ്ടാണ് കോണ്‍ഗ്രസുകാര്‍ ഇങ്ങനെ പെരുമാറുന്നതെന്നും പിണറായി ചൂണ്ടിക്കാട്ടി. -
- -സ്വതന്ത്രമായി നടക്കുന്ന കണ്ണൂരിലെ തെരഞ്ഞെടുപ്പിനെ അട്ടിമറിക്കാനാണ് യു‌ഡി‌എഫ് ശ്രമിക്കുന്നതെന്നും പിണറായി ആരോപിച്ചു. -
-!\"#$%&'()*+,-./0123456789:;<=>?
-@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
-`abcdefghijklmnopqrstuvwxyz{|}~ -
-൦൧൨൩൪൫൬൭൮൯ -

- -

Kannada

-

-ತಮ್ಮದೇ ಕುಟುಂಬದ ಯುವತಿಯೊಬ್ಬಳನ್ನು ಸತತ ಹಲವಾರು ವರ್ಷ ಭೋಗಿಸಿದ ಭಾರತೀಯ ಮೂಲದ ಮೂವರು ದುರುಳ ಸಂಬಂಧಿಕರು ಅಪರಾಧಿಗಳೆಂದು ಸಾಬೀತಾಗಿದ್ದು, ಇಂಗ್ಲೆಂಡ್ ನ್ಯಾಯಾಲಯವು ದೀರ್ಘಾವಧಿ ಕಠಿಣ ಶಿಕ್ಷೆ ವಿಧಿಸಿದೆ. -
- -27ರ ಹರೆಯದ ಯುವತಿಯನ್ನು ಆಕೆಯ ಮಲತಂದೆ, ಮಲದೊಡ್ಡಪ್ಪ ಮತ್ತು ಭಾವ ಅತ್ಯಾಚಾರ ನಡೆಸಿದ್ದು ಕಾರ್ಡಿಫ್ ಕ್ರೌನ್ ನ್ಯಾಯಾಲಯದಲ್ಲಿ ರುಜುವಾತಾದ ಕಾರಣ ಶಿಕ್ಷೆ ಘೋಷಿಸಲಾಗಿದೆ. ಅಪರಾಧಿಗಳಲ್ಲಿ ಮಲತಂದೆ ಮತ್ತು ಮಲದೊಡ್ಡಪ್ಪ ಅಕ್ರಮ ವಲಸಿಗರಾಗಿದ್ದು, ಶಿಕ್ಷೆಯ ಅವಧಿ ಮುಗಿದ ನಂತರ ಅವರನ್ನು ಭಾರತಕ್ಕೆ ಗಡಿಪಾರು ಮಾಡಲಾಗುತ್ತದೆ. -
- -55ರ ಹರೆಯದ ಮಲದೊಡ್ಡಪ್ಪ ಮತ್ತು 50ರ ಹರೆಯದ ಮಲತಂದೆಗೆ ಕ್ರಮವಾಗಿ 20 ಮತ್ತು 15 ವರ್ಷಗಳ ಕಾಲ ಜೈಲು ಶಿಕ್ಷೆ ವಿಧಿಸಲಾಗಿದೆ. 27ರ ಹರೆಯದ ಆಕೆಯ ಭಾವನಿಗೆ 12 ವರ್ಷಗಳ ದಂಡನೆ ನೀಡಲಾಗಿದೆ. -
- -ಬಾಲಕಿಯನ್ನೇ ಅತ್ಯಾಚಾರ ಮಾಡಿದ್ದರು.. -ಯುವತಿಗೆ 14 ವರ್ಷವಿದ್ದಾಗ ಆಕೆಯ ಗರ್ಭಕ್ಕೆ ತಾನೇ ಕಾರಣವಾಗಿರುವುದನ್ನೂ ಮಲ ದೊಡ್ಡಪ್ಪ ವಿಚಾರಣೆ ಅವಧಿಯಲ್ಲಿ ಒಪ್ಪಿಕೊಂಡಿದ್ದಾನೆ. ಆತ ಏಳು ಬಾರಿ ಆಕೆಯನ್ನು ಅತ್ಯಾಚಾರ ಮಾಡಿದ್ದು, ಮೂರು ಬಾರಿ ಮಗುವಾಗಿದ್ದಾಗ ಅನುಚಿತ ವರ್ತನೆ ತೋರಿಸಿದ್ದ. ಅಲ್ಲದೆ ಹಲ್ಲೆ ಕೂಡ ನಡೆಸಿದ್ದ ಎಂದು ನ್ಯಾಯಾಲಯ ವಿವರಣೆ ನೀಡಿದೆ. -
- -ಯುವತಿಗೆ ಆಕೆ ಬಾಲಕಿಯಾಗಿದ್ದಾಗಲೇ ಇವರು ಲೈಂಗಿಕ ಹಿಂಸೆ ನೀಡಲು ಆರಂಭಿಸಿದ್ದನ್ನು ನ್ಯಾಯಾಲಯ ಹೊರಗೆಳೆದಿತ್ತು. ಆಕೆ ಐದರ ಹರೆಯದ ಬಾಲಕಿಯಾಗಿದ್ದಾಗ ಮಲದೊಡ್ಡಪ್ಪ ಅತ್ಯಾಚಾರ ಮಾಡಿದ್ದ. 14ನೇ ವರ್ಷದಲ್ಲಿ ಆಕೆ ಗರ್ಭಿಣಿಯಾಗಿದ್ದಳು. ಆ ಸಂದರ್ಭದಲ್ಲಿ ಆಕೆಯನ್ನು ಕೂಡಿ ಹಾಕಿದ್ದ ಕಾರಣ ಮನೆಗೆ ಭೇಟಿ ನೀಡುವವರಿಗೆ ಯಾವುದೇ ವಿಚಾರಗಳು ತಿಳಿಯುತ್ತಿರಲಿಲ್ಲ. -
-!\"#$%&'()*+,-./0123456789:;<=>?
-@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
-`abcdefghijklmnopqrstuvwxyz{|}~ -
-೦೧೨೩೪೫೬೭೮೯ -

- -

Telegu

-

ఆగ్నేయ ఇరాన్‌లో ఆదివారం నాడు ఓ ఆత్మాహుతి దాడి జరగడంతో ఇరవై మంది మృతి చెందారు. -
- -ఆగ్నేయ ఇరాన్‌లో ఆత్మాహుతి దాడి జరగడంతో ఐదుగురు ఎలిట్ రెవల్యూషనరీ గార్డ్‌లతో సహా ప్రముఖ కమాండర్‌లతోసహా మొత్తం ఇరవై మంది మృతి చెందినట్లు ఇరాన్ లోక్‌సభ స్పీకర్ అలీ లారిజానీ తెలిపారు. -
- -ఆదివారం జరిగిన దాడుల్లో భద్రతాదళాలకు చెందిన కమాండర్ జనరల్ నూర్ అలీ శుశాత్రీ, మరో కమాండర్ రజబ్ అలీ మొహమ్మద్‌ జాదేహ్ తదితరులున్నారని, వీరితోపాటు పలువురు తీవ్రగాయాలపాలైనారని ఆయన చెప్పారు. -
- -మృతి చెందిన కమాండర్లు పాకిస్థాన్‌ సరిహద్దుల్లోనున్న పిశిన్ ప్రాంతంలో ఓ సమావేశంలో పాల్గొనేందుకు కారులో బయలు దేరి వెళ్ళారని, ఆ సమయంలో ఆత్మాహుతి దళానికి చెందిన సభ్యుడు తనను తాను పేల్చేసుకోవడంతో ఈ దుర్ఘటన జరిగిందని ఆయన వివరించారు. -
- -ఇదిలావుండగా ఇప్పటివరకు ఈ దాడులకు బాధ్యత వహిస్తూ ఏ సంస్థ ప్రకటించలేదు. కాని ఈ దుర్ఘటన వెనుక సున్నీ ఉగ్రవాద సంస్థ జుందల్లా హస్తం ఉండొచ్చని, ఈ సంస్థ ఆగ్నేయ ఇరాన్‌లో రెవల్యూషనరీ గార్డ్, షియాలపై దాడులు చేసేందుకు పూనుకునుంటుందని భద్రతా దళాలు అనుమానం వ్యక్తం చేసాయి. -
-!\"#$%&'()*+,-./0123456789:;<=>?
-@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
-`abcdefghijklmnopqrstuvwxyz{|}~ -
-౦౧౨౩౪౫౬౭౮౯ -

- - - -

Tamil (ta)

-

\xe0\xae\x87\xe0\xae\xb0\xe0\xae\xbe\xe0\xae\x95\xe0\xaf\x8d\xe0\xae\x95\xe0\xae\xbf\xe0\xae\xaf \xe0\xae\xae\xe0\xae\x95\xe0\xaf\x8d\xe0\xae\x95\xe0\xae\xb3\xe0\xaf\x8d \xe0\xae\x85\xe0\xae\xb5\xe0\xae\xa8\xe0\xae\xae\xe0\xaf\x8d\xe0\xae\xaa\xe0\xae\xbf\xe0\xae\x95\xe0\xaf\x8d\xe0\xae\x95\xe0\xaf\x88\xe0\xae\xaf\xe0\xaf\x81\xe0\xae\x9f\xe0\xae\xa9\xe0\xaf\x8d \xe0\xae\x87\xe0\xae\xb0\xe0\xaf\x81\xe0\xae\xaa\xe0\xaf\x8d\xe0\xae\xaa\xe0\xae\xa4\xe0\xae\xbe\xe0\xae\x95\xe0\xae\xb5\xe0\xaf\x81\xe0\xae\xae\xe0\xaf\x8d, \xe0\xae\xb7\xe0\xae\xbf\xe0\xae\xaf\xe0\xae\xbe \xe0\xae\xae\xe0\xae\xb1\xe0\xaf\x8d\xe0\xae\xb1\xe0\xaf\x81\xe0\xae\xae\xe0\xaf\x8d \xe0\xae\x9a\xe0\xaf\x81\xe0\xae\xa9\xe0\xae\xbf\xe0\xae\x95\xe0\xaf\x8d\xe0\xae\x95\xe0\xae\xb3\xe0\xaf\x8d \xe0\xae\xae\xe0\xaf\x81\xe0\xae\xb0\xe0\xae\xa3\xe0\xaf\x8d\xe0\xae\xaa\xe0\xae\x9f\xe0\xaf\x8d\xe0\xae\x9f \xe0\xae\x95\xe0\xae\xb0\xe0\xaf\x81\xe0\xae\xa4\xe0\xaf\x8d\xe0\xae\xa4\xe0\xaf\x81\xe0\xae\x95\xe0\xaf\x8d\xe0\xae\x95\xe0\xae\xb3\xe0\xaf\x81\xe0\xae\x9f\xe0\xae\xa9\xe0\xaf\x8d \xe0\xae\xa4\xe0\xaf\x81\xe0\xae\xb0\xe0\xaf\x81\xe0\xae\xb5\xe0\xae\xaa\xe0\xaf\x8d\xe0\xae\xaa\xe0\xae\x9f\xe0\xaf\x8d\xe0\xae\x9f \xe0\xae\xa8\xe0\xae\xbf\xe0\xae\xb2\xe0\xaf\x88\xe0\xae\xaf\xe0\xae\xbf\xe0\xae\xb2\xe0\xaf\x8d \xe0\xae\x87\xe0\xae\xb0\xe0\xaf\x81\xe0\xae\xaa\xe0\xaf\x8d\xe0\xae\xaa\xe0\xae\xa4\xe0\xae\xbe\xe0\xae\x95\xe0\xae\xb5\xe0\xaf\x81\xe0\xae\xae\xe0\xaf\x8d \xe0\xae\x95\xe0\xae\xb0\xe0\xaf\x81\xe0\xae\xa4\xe0\xaf\x8d\xe0\xae\xa4\xe0\xaf\x81\xe0\xae\x95\xe0\xaf\x8d \xe0\xae\x95\xe0\xae\xa3\xe0\xae\xbf\xe0\xae\xaa\xe0\xaf\x8d\xe0\xae\xaa\xe0\xaf\x81 \xe0\xae\x92\xe0\xae\xa9\xe0\xaf\x8d\xe0\xae\xb1\xe0\xaf\x81 \xe0\xae\x95\xe0\xaf\x82\xe0\xae\xb1\xe0\xaf\x81\xe0\xae\x95\xe0\xae\xbf\xe0\xae\xb1\xe0\xae\xa4\xe0\xaf\x81.

- -

\xe0\xae\x87\xe0\xae\xb2\xe0\xae\x99\xe0\xaf\x8d\xe0\xae\x95\xe0\xaf\x88 \xe0\xae\xb5\xe0\xaf\x86\xe0\xae\xb3\xe0\xae\xbf\xe0\xae\xaf\xe0\xaf\x81\xe0\xae\xb1\xe0\xae\xb5\xe0\xaf\x81 \xe0\xae\x85\xe0\xae\xae\xe0\xaf\x88\xe0\xae\x9a\xe0\xaf\x8d\xe0\xae\x9a\xe0\xae\xb0\xe0\xaf\x8d \xe0\xae\xb0\xe0\xaf\x8b\xe0\xae\xb9\xe0\xae\xbf\xe0\xae\xa4 \xe0\xae\xaa\xe0\xaf\x8b\xe0\xae\x95\xe0\xaf\x8a\xe0\xae\xb2\xe0\xaf\x8d\xe0\xae\xb2\xe0\xae\xbe\xe0\xae\x95\xe0\xae\xae \xe0\xae\x85\xe0\xae\xb5\xe0\xae\xb0\xe0\xaf\x8d\xe0\xae\x95\xe0\xae\xb3\xe0\xaf\x8d, \xe0\xae\x87\xe0\xae\xa9\xe0\xaf\x8d\xe0\xae\xb1\xe0\xaf\x81 \xe0\xae\xaa\xe0\xaf\x81\xe0\xae\xa4\xe0\xaf\x81\xe0\xae\x9f\xe0\xae\xbf\xe0\xae\xb2\xe0\xaf\x8d\xe0\xae\xb2\xe0\xae\xbf\xe0\xae\xaf\xe0\xae\xbf\xe0\xae\xb2\xe0\xaf\x8d \xe0\xae\x87\xe0\xae\xa8\xe0\xaf\x8d\xe0\xae\xa4\xe0\xae\xbf\xe0\xae\xaf \xe0\xae\xb5\xe0\xaf\x86\xe0\xae\xb3\xe0\xae\xbf\xe0\xae\xaf\xe0\xaf\x81\xe0\xae\xb1\xe0\xae\xb5\xe0\xaf\x81\xe0\xae\xa4\xe0\xaf\x8d\xe0\xae\xa4\xe0\xaf\x81\xe0\xae\xb1\xe0\xaf\x88 \xe0\xae\x85\xe0\xae\xae\xe0\xaf\x88\xe0\xae\x9a\xe0\xaf\x8d\xe0\xae\x9a\xe0\xae\xb0\xe0\xaf\x8d \xe0\xae\xaa\xe0\xae\xbf\xe0\xae\xb0\xe0\xae\xa3\xe0\xae\xbe\xe0\xae\xaa\xe0\xaf\x8d \xe0\xae\xae\xe0\xaf\x81\xe0\xae\x95\xe0\xae\xb0\xe0\xaf\x8d\xe0\xae\x9c\xe0\xae\xbf \xe0\xae\x89\xe0\xae\xb3\xe0\xaf\x8d\xe0\xae\xaa\xe0\xae\x9f \xe0\xae\xae\xe0\xaf\x81\xe0\xae\x95\xe0\xaf\x8d\xe0\xae\x95\xe0\xae\xbf\xe0\xae\xaf\xe0\xae\xa4\xe0\xaf\x8d \xe0\xae\xa4\xe0\xae\xb2\xe0\xaf\x88\xe0\xae\xb5\xe0\xae\xb0\xe0\xaf\x8d\xe0\xae\x95\xe0\xae\xb3\xe0\xaf\x88\xe0\xae\x9a\xe0\xaf\x8d \xe0\xae\x9a\xe0\xae\xa8\xe0\xaf\x8d\xe0\xae\xa4\xe0\xae\xbf\xe0\xae\xa4\xe0\xaf\x8d\xe0\xae\xa4\xe0\xaf\x81\xe0\xae\xaa\xe0\xaf\x8d \xe0\xae\xaa\xe0\xaf\x87\xe0\xae\x9a\xe0\xaf\x8d\xe0\xae\x9a\xe0\xaf\x81 \xe0\xae\xa8\xe0\xae\x9f\xe0\xae\xa4\xe0\xaf\x8d\xe0\xae\xa4\xe0\xae\xbf\xe0\xae\xaf\xe0\xaf\x81\xe0\xae\xb3\xe0\xaf\x8d\xe0\xae\xb3\xe0\xae\xbe\xe0\xae\xb0\xe0\xaf\x8d.

- -

\xe0\xae\x87\xe0\xae\xb0\xe0\xae\xbe\xe0\xae\x95\xe0\xaf\x8d\xe0\xae\x95\xe0\xae\xbf\xe0\xae\xb2\xe0\xaf\x8d \xe0\xae\x85\xe0\xae\xae\xe0\xaf\x86\xe0\xae\xb0\xe0\xae\xbf\xe0\xae\x95\xe0\xaf\x8d\xe0\xae\x95 \xe0\xae\xae\xe0\xae\xb1\xe0\xaf\x8d\xe0\xae\xb1\xe0\xaf\x81\xe0\xae\xae\xe0\xaf\x8d \xe0\xae\xaa\xe0\xae\xbf\xe0\xae\xb0\xe0\xae\xbf\xe0\xae\x9f\xe0\xaf\x8d\xe0\xae\x9f\xe0\xae\xbf\xe0\xae\xb7\xe0\xaf\x8d \xe0\xae\xa4\xe0\xaf\x81\xe0\xae\xb0\xe0\xaf\x81\xe0\xae\xaa\xe0\xaf\x8d\xe0\xae\xaa\xe0\xaf\x81\xe0\xae\x95\xe0\xae\xb3\xe0\xaf\x88\xe0\xae\x95\xe0\xaf\x8d \xe0\xae\x95\xe0\xaf\x8a\xe0\xae\xa9\xe0\xaf\x8d\xe0\xae\xb1 \xe0\xae\xb5\xe0\xaf\x86\xe0\xae\x9f\xe0\xae\xbf\xe0\xae\xae\xe0\xae\xb0\xe0\xaf\x81\xe0\xae\xa8\xe0\xaf\x8d\xe0\xae\xa4\xe0\xaf\x81\xe0\xae\xa4\xe0\xaf\x8d \xe0\xae\xa4\xe0\xaf\x8a\xe0\xae\xb4\xe0\xae\xbf\xe0\xae\xb2\xe0\xaf\x8d \xe0\xae\xa8\xe0\xaf\x81\xe0\xae\x9f\xe0\xaf\x8d\xe0\xae\xaa\xe0\xae\xae\xe0\xaf\x8d \xe0\xae\x89\xe0\xae\x9f\xe0\xaf\x8d\xe0\xae\xaa\xe0\xae\x9f \xe0\xae\xaa\xe0\xae\xb2\xe0\xaf\x8d\xe0\xae\xb5\xe0\xaf\x87\xe0\xae\xb1\xe0\xaf\x81 \xe0\xae\x89\xe0\xae\xa4\xe0\xae\xb5\xe0\xae\xbf\xe0\xae\x95\xe0\xae\xb3\xe0\xaf\x88 \xe0\xae\x87\xe0\xae\xb0\xe0\xae\xbe\xe0\xae\x95\xe0\xaf\x8d\xe0\xae\x95\xe0\xae\xbf\xe0\xae\xb2\xe0\xaf\x8d \xe0\xae\x89\xe0\xae\xb3\xe0\xaf\x8d\xe0\xae\xb3 \xe0\xae\xa4\xe0\xaf\x80\xe0\xae\xb5\xe0\xae\xbf\xe0\xae\xb0\xe0\xae\xb5\xe0\xae\xbe\xe0\xae\xa4\xe0\xae\xbf\xe0\xae\x95\xe0\xae\xb3\xe0\xaf\x81\xe0\xae\x95\xe0\xaf\x8d\xe0\xae\x95\xe0\xaf\x81 \xe0\xae\x87\xe0\xae\xb0\xe0\xae\xbe\xe0\xae\xa9\xe0\xaf\x8d \xe0\xae\xb5\xe0\xae\xb4\xe0\xae\x99\xe0\xaf\x8d\xe0\xae\x95\xe0\xae\xbf\xe0\xae\xaf\xe0\xae\xa4\xe0\xae\xb1\xe0\xaf\x8d\xe0\xae\x95\xe0\xae\xbe\xe0\xae\xa9 \xe0\xae\x86\xe0\xae\xa4\xe0\xae\xbe\xe0\xae\xb0\xe0\xae\x99\xe0\xaf\x8d\xe0\xae\x95\xe0\xae\xb3\xe0\xaf\x8d \xe0\xae\x85\xe0\xae\xa4\xe0\xae\xbf\xe0\xae\x95\xe0\xae\xb0\xe0\xae\xbf\xe0\xae\xa4\xe0\xaf\x8d\xe0\xae\xa4\xe0\xaf\x81 \xe0\xae\xb5\xe0\xae\xb0\xe0\xaf\x81\xe0\xae\xb5\xe0\xae\xa4\xe0\xaf\x88 \xe0\xae\x85\xe0\xae\xae\xe0\xaf\x86\xe0\xae\xb0\xe0\xae\xbf\xe0\xae\x95\xe0\xaf\x8d\xe0\xae\x95\xe0\xae\xbe \xe0\xae\x95\xe0\xae\xb5\xe0\xae\xa9\xe0\xae\xbf\xe0\xae\x95\xe0\xaf\x8d\xe0\xae\x95\xe0\xae\xbf\xe0\xae\xb1\xe0\xae\xa4\xe0\xaf\x81 \xe0\xae\x8e\xe0\xae\xa9\xe0\xaf\x8d\xe0\xae\xb1\xe0\xaf\x81 \xe0\xae\x85\xe0\xae\xae\xe0\xaf\x86\xe0\xae\xb0\xe0\xae\xbf\xe0\xae\x95\xe0\xaf\x8d\xe0\xae\x95 \xe0\xae\x85\xe0\xae\xb0\xe0\xae\x9a\xe0\xaf\x81\xe0\xae\xa4\xe0\xaf\x8d \xe0\xae\xa4\xe0\xaf\x81\xe0\xae\xb1\xe0\xaf\x88\xe0\xae\xa4\xe0\xaf\x8d \xe0\xae\xa4\xe0\xaf\x81\xe0\xae\xa3\xe0\xaf\x88\xe0\xae\x9a\xe0\xaf\x8d \xe0\xae\x9a\xe0\xaf\x86\xe0\xae\xaf\xe0\xae\xb2\xe0\xae\xb0\xe0\xaf\x8d \xe0\xae\xa8\xe0\xae\xbf\xe0\xae\x95\xe0\xaf\x8d\xe0\xae\x95\xe0\xae\xb2\xe0\xae\xb8\xe0\xaf\x8d \xe0\xae\xaa\xe0\xaf\x87\xe0\xae\xb0\xe0\xaf\x8d\xe0\xae\xa3\xe0\xaf\x8d\xe0\xae\xb8\xe0\xaf\x8d \xe0\xae\x95\xe0\xaf\x82\xe0\xae\xb1\xe0\xae\xbf\xe0\xae\xaf\xe0\xae\xbf\xe0\xae\xb0\xe0\xaf\x81\xe0\xae\x95\xe0\xaf\x8d\xe0\xae\x95\xe0\xae\xbf\xe0\xae\xb1\xe0\xae\xbe\xe0\xae\xb0\xe0\xaf\x8d. -
-!\"#$%&'()*+,-./0123456789:;<=>?
-@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
-`abcdefghijklmnopqrstuvwxyz{|}~ -
-௦௧௨௩௪௫௬௭௮௯ -

- - -

Oriya

-

ଓଡ଼ିଆ ଉଇକିପେଡିଆ ଆପଣଙ୍କୁ ସ୍ବାଗତ କରୁଛି। ଏହି ଉନ୍ମୁକ୍ତ ଜ୍ଞାନକୋଷଟି ଇଣ୍ଟରନେଟ ଉପରେ ଆଧାରିତ ଏବଂ ଏହା ବିଶ୍ବର ୫୦ଟି ଭାଷାରେ ଉପଲବ୍ଧ । ଏହାକୁ ଆପଣ ମଧ୍ୟ ବର୍ଦ୍ଧିତ ଓ ପରିବର୍ତିତ କରିପାରିବେ ଏବଂ ଏହାକୁ ଉନ୍ନତ କରିବା ପାଇଁ ନିଜର ଅବଦାନ ଦେଇ ପାରିବେ । ଆପଣଙ୍କ ପସନ୍ଦର ବିଷୟ ଗୁଡିକୁ ଆପଣ ନୂତନ ଭାବେରେ ଯୋଗ କରିପାରିବେ କିମ୍ବା ଏହି ପୃଷ୍ଠାକୁ ସମ୍ପାଦନ କରି ଏହା ସହିତ ଯୋଗ କରିପାରିବ । ସମସ୍ତ ପାଠ ଗୁଡିକ GNU ମୁକ୍ତ ଦଲିଲକରଣ ଲାଇସେନ୍ସର ସର୍ତ୍ତ ଅଧୀନରେ ଉପଲବ୍ଧ । ତଥାପି, ଆପଣ ଏହାକୁ ମୁକ୍ତ ଭାବେର ଇଲେକ୍ଟ୍ରୋନିକ୍ସ ପ୍ରିଣ୍ଟ୍ କିମ୍ବା ଅନ୍ୟାନ୍ୟ ପ୍ରିଣ୍ଟର ମାଧ୍ୟମରେ ବ୍ୟବହାର କରିପାରିବ । -
- -ଓଡ଼ିଆ ଉଇକିପେଡିଆରେ ଏ ପର୍ଯ୍ୟନ୍ତ ୫୫୩ଟି ପ୍ରସଙ୍ଗ ଯୋଗ କରାଯାଇଛି। -
- -ଉଇକିପେଡିଆର ଓଡ଼ିଆ ସଂସ୍କରଣର କାର୍ଯ୍ୟ ପ୍ରଥମ ଥର ପାଇଁ ୨୦୦୪ ମସିହାରେ ପ୍ରାରମ୍ଭ ହୋଇଥିଲା ଏହା ଏବେ ମଧ୍ୟ ନିର୍ମାଣଧୀନ । ଆମେ ଏହା ଆଶା କରୁଛୁ ଯେ ବ୍ୟବାହାରକାରୀ ମାନେ ଏହାକୁ ସମୃଦ୍ଧ କରିପାରିବେ । ଓଡ଼ିଆ ଉଇକିପେଡିଆରେ ଆପଣ କିଛି ଯୋଗ କିମ୍ବା ସମ୍ପାଦନା କରିବା ପାଇଁ ଚାହିଁଲେ, ସର୍ବ ପ୍ରଥମେ ଆପଣଙ୍କ ନିକଟରେ ଗୋଟିଏ ୟୁନିକୋଡ୍ ଭିତ୍ତିକ ଓଡ଼ିଆ ଅନ୍ତରା ପୃଷ୍ଠ ଥିବା ଉଚିତ୍ । ଏହା ମୁକ୍ତ ସଙ୍କେତ ହୋଇଥିବାରୁ ଏହାକୁ ଆପଣ ଇଣ୍ଟରନେଟରୁ ମାଗଣାରେ ପାଇପାରିବେ । ଆପଣ ଇଂରାଜୀ ଉଇକିପେଡିଆକୁ ଅନୁବାଦ କରି କିମ୍ବା ନିକଟ ଅତୀତରେ ହୋଇଥିବା ଗୁରୁତ୍ଵପୂର୍ଣ୍ଣ ଘଟଣା ମାନଙ୍କୁ ଯୋଗ କରି, ଓଡ଼ିଆ ୱିକିପେଡିଆକୁ ସମୃଦ୍ଧ କରିପାରିବ । କୌଣସି ନୂତନ ପାଠ୍ୟ ଯୋଗ କରିବା ପୂର୍ବରୁ ଆପଣଙ୍କୁ ଏହା ଧ୍ୟାନ ରଖିବା ପାଇଁ ହେବ ଯେ, ଏହି ପୃଷ୍ଠାରେ ଅନ୍ୟ ବ୍ୟବାହାରକାରୀ ମାନଙ୍କ ପାଇଁ ସମ୍ପାଦନର ସୁଯୋଗ ରହିବା ଉଚିତ । କୌଣସି ବିଷୟବସ୍ତୁର ସ୍ବତଃ ସଂରକ୍ଷଣ ଉଇକିପେଡିଆର ନିୟମକୁ ଅବମାନନା କରିଥାଏ । ବ୍ୟବାହାରକାରୀ ମାନେ କେବଳ ତାଙ୍କର ନିଜ ଲେଖାକୁ ସମ୍ପାଦନ କରିପାରିବେ । ଉଇକିପେଡିଆର ନିୟମ, କର୍ମ ପଦ୍ଧତି ଏବଂ ଅନ୍ୟାନ୍ୟ ସୂଚନା ପାଇଁ Wikipedia:ଆଲୋଚନା ସଭା-- କୁ ଯାଇ ଆଲୋଚନା କରନ୍ତୁ। -
-!\"#$%&'()*+,-./0123456789:;<=>?
-@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
-`abcdefghijklmnopqrstuvwxyz{|}~ -
-୦୧୨୩୪୫୬୭୮୯ -

- -

Punjabi

-

ਕੇਂਦਰੀ ਗ੍ਰਹਿਮੰਤਰੀ ਪੀ.ਚਿਦੰਬਰਮ ਨੇ ਐਤਵਾਰ ਨੂੰ ਤਮਿਲਨਾਢੂ ਦੇ ਮੁੱਖਮੰਤਰੀ ਐਮ.ਕਰੁਣਾਨਿਧੀ ਨਾਲ ਮੁਲਾਕਾਤ ਕੀਤੀ।ਉਨ੍ਹਾ ਨੇ ਸ਼੍ਰੀਲੰਕਾ 'ਚ ਲਿੱਟੇ ਦੇ ਖਿਲਾਫ਼ ਯੁੱਧ ਦੌਰਾਨ ਉੱਝੜੇ ਹੋਏ ਲੱਗਭਗ ਢਾਈ ਲੱਖ ਤਮਿਲਾਂ ਦੀ ਮੁੜ ਰਿਹਾਇਸ਼ 'ਤੇ ਚਰਚਾ ਕੀਤੀ। -
- -ਦ੍ਰਮੁਕ ਨੇਤਾ ਦੇ ਨਾਲ ਸੰਖੇਪ ਮੁਲਾਕਾਤ ਬਾਅਦ ਚਿਦੰਬਰਮ ਨੇ ਕਿਹਾ ਹੈ ਕਿ ਕੇਂਦਰ ਤਮਿਲਾਂ ਦੀ ਮੁੜ ਰਿਹਾਇਸ਼ ਲਈ ਜਰੂਰਤ ਪੈਣ 'ਤੇ ਸ਼੍ਰੀਲੰਕਾ ਨੂੰ ਹੋਰ ਜ਼ਿਆਦਾ ਧਨ ਦੇਵੇਗਾ।ਅਸੀਂ ਪਹਿਲਾ ਹੀ 500 ਕਰੋੜ ਰੁੱਪਏ ਦੇ ਚੁੱਕੇ ਹਾਂ। -
- -ਚਿਦੰਬਰਮ ਨੇ ਕਿਹਾ ਹੈ ਕਿ ਕਰੁਣਾਨਿਧੀ ਦੇ ਨਾਲ ਉਨ੍ਹਾ ਦੀ ਚਰਚਾ ਪਿੱਛਲੇ ਹਫ਼ਤੇ ਦਸ ਸਾਂਸਦਾਂ ਦੇ ਪ੍ਰਤਿਨਿਧੀਮੰਡਲ ਦੇ ਸ਼੍ਰੀਲੰਕਾ ਦੌਰੇ 'ਤੇ ਕੇਂਦਰਤ ਸੀ,ਜੋ ਜਾਤੀ ਤਮਿਲਾ ਨੂੰ ਮਿਲੀ ਅਤੇ ਉਨ੍ਹਾ ਦੀ ਦਸ਼ਾ ਬਾਰੇ ਜਾਣਿਆ। -
- -ਉਨ੍ਹਾ ਨੇ ਕਿਹਾ ਕਿ ਸ਼੍ਰੀਲਕਾ ਦੇ ਤਮਿਲਾਂ ਨੂੰ ਉਨ੍ਹਾ ਦੇ ਮੂਲ ਸਥਾਨਾਂ 'ਤੇ ਬਸਾਉਣ ਦੇ ਤੌਰ ਤਰੀਕਿਆਂ 'ਤੇ ਚਰਚਾ ਹੋਈ ਅਤੇ ਸਾਂਸਦਾ ਦੀ ਟੀਮ ਨੂੰ ਦਿੱਤੇ ਭਰੋਸੇ ਬਾਅਦ ਕੋਲੰਬੋ ਦੁਆਰਾ ਪਿੱਛਲੇ ਹਫ਼ਤੇ ਮੁੜ ਰਿਹਾਇਸ਼ ਪ੍ਰਕ੍ਰਿਆ ਸ਼ੁਰੂ ਕੀਤੇ ਜਾਣ ਬਾਅਦ ਤੋਂ ਲੱਗਭਗ ਪੰਜ ਹਜ਼ਾਰ ਲੋਕਾਂ ਨੂੰ ਉਨ੍ਹਾ ਦੇ ਘਰਾਂ ਨੂੰ ਵਾਪਸ ਭੇਜਿਆ ਜਾ ਚੁੱਕਿਆ ਹੈ।ਚਿਦੰਬਰਮ ਨੇ ਕਿਹਾ ਹੈ ਕਿ ਹਾਲਾਂਕਿ ਪ੍ਰਕ੍ਰਿਆ ਧੀਮੀ ਹੈ,ਲੇਕਿਨ ਗਤੀ ਪਕੜ ਲਵੇਗੀ। -
-!\"#$%&'()*+,-./0123456789:;<=>?
-@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
-`abcdefghijklmnopqrstuvwxyz{|}~ -
-੦੧੨੩੪੫੬੭੮੯ - -

- -

Gujarati (gu)

-

Examples at: http://in.gujarati.yahoo.com/

-

http://gujarati.webdunia.com/entertainment/bollywood/filmreview/0910/17/1091017017_1.htm

-

-આ વાત હજાર વાર કહેવામાં આવી છે કે ફિલ્મ બનાવતી વખેત હંમેશા સૌથી વધુ ધ્યાન વાર્તા અને સ્ક્રીનપ્લે પર આપવુ જોઈએ. કારણ કે આ કોઈ પણ ફિલ્મની સફળતાનો મુખ્ય આધાર હોય છે. -
-મોટા ફિલ્મ સ્ટાર્સ સાઈન કરવાથી, સ્ટંટ અને ગીતોથી પાણીની અંદર કે આકાશમાં કરોડો રૂપિયા ખર્ચ કરી ફિલ્માવેલા દ્રશ્યોથી કશુ જ નથી થતુ. પરંતુ આ બુનિયાદી વાત અત્યાર સુધી કોઈ લોકોને સમજાતી નથી. -
- -કરોડો રૂપિયાના ખર્ચ પર બનાવેલ 'બ્લૂ' આનુ તાજુ ઉદાહરણ છે. પૈસા એના પર ખર્ચ કરવામાં આવે જ્યા બચાવી શકાતો હતો અને ત્યાં બચાવ્યો જ્યા ખર્ચ કરવો જોઈતો હતો. એક સારી વાર્તા તેની સાથે સંકળાયેલા નિર્માતા-નિર્દેશક ન શોધી શક્યા. -
- -વર્ષો પહેલા ખજાનાથી લદાયેલુ એક જહાજ ડૂબી ગયુ હતુ. આરવ (અક્ષય કુમાર)તેને શોધીને શ્રીમંત બનવા માંગે છે. આ કામમાં તેને સાગર (સંજય દત્ત)ની મદદ જોઈએ, જે તેને માતે કામ કરે છે. સાગર એ માટે તૈયાર નથી. બાળપણમાં સાગર અને તેના પિતાએ એ ડૂબેલા જહાજને શોધી લીધુ હતુ, પરંતુ સાગરની ભૂલથી તેના પિતાનુ મૃત્યુ થઈ ગયુ હતુ. સાગર એ આધાતથી બહાર ન આવી શક્યો. સાગરનો એક ભાઈ સૈમ(જાયદ ખાન) છે, જેને રિસ્ક લેવાનો નશો છે. ગેરકાયદેસર કામ દરમિયાન એ ફંસાય જાય છે અને કેટલાક લોકો તેના જીવના દુશ્મન બની જાય છે. તેઓ તેની પાસે પૈસા માંગે છે. પોતાના ભાઈને મુસીબતમાં જોઈએ આરવની વાત સાગર માની લે છે અને તે એ છુપા ખજાનાને શોધવા નીકળે છે. છેવટે એ રહસ્ય બહાર પડે છે કે સૈમને ફસાવવા પાછળ આરવનો જ હાથ હતો, જેથી સાગર ખજાનાની શોધ કાઢવામાં તેની મદદ કરે. -
-!\"#$%&'()*+,-./0123456789:;<=>?
-@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
-`abcdefghijklmnopqrstuvwxyz{|}~ -
-૦૧૨૩૪૫૬૭૮૯ -

- - -

Hindi (hi)

-

\xe0\xa4\xad\xe0\xa4\xbe\xe0\xa4\xb0\xe0\xa4\xa4 \xe0\xa4\x94\xe0\xa4\xb0 \xe0\xa4\xac\xe0\xa4\xb0\xe0\xa4\xae\xe0\xa5\x82\xe0\xa4\xa1\xe0\xa4\xbe \xe0\xa4\x95\xe0\xa5\x87 \xe0\xa4\xac\xe0\xa5\x80\xe0\xa4\x9a \xe0\xa4\xac\xe0\xa4\xbe\xe0\xa4\xb0\xe0\xa4\xbf\xe0\xa4\xb6 \xe0\xa4\x95\xe0\xa5\x87 \xe0\xa4\x95\xe0\xa4\xbe\xe0\xa4\xb0\xe0\xa4\xa3 \xe0\xa4\xb0\xe0\xa5\x81\xe0\xa4\x95\xe0\xa4\xbe \xe0\xa4\xae\xe0\xa5\x88\xe0\xa4\x9a \xe0\xa4\xa6\xe0\xa5\x8b\xe0\xa4\xac\xe0\xa4\xbe\xe0\xa4\xb0\xe0\xa4\xbe \xe0\xa4\xb6\xe0\xa5\x81\xe0\xa4\xb0\xe0\xa5\x81 \xe0\xa4\xb9\xe0\xa5\x8b \xe0\xa4\x97\xe0\xa4\xaf\xe0\xa4\xbe \xe0\xa4\xb9\xe0\xa5\x88. \xe0\xa4\xad\xe0\xa4\xbe\xe0\xa4\xb0\xe0\xa4\xa4 \xe0\xa4\xa8\xe0\xa5\x87 \xe0\xa4\xac\xe0\xa4\xb0\xe0\xa4\xae\xe0\xa5\x82\xe0\xa4\xa1\xe0\xa4\xbe \xe0\xa4\x95\xe0\xa5\x87 \xe0\xa4\xb8\xe0\xa4\xbe\xe0\xa4\xae\xe0\xa4\xa8\xe0\xa5\x87 \xe0\xa4\xb0\xe0\xa4\xbf\xe0\xa4\x95\xe0\xa5\x89\xe0\xa4\xb0\xe0\xa5\x8d\xe0\xa4\xa1 414 \xe0\xa4\xb0\xe0\xa4\xa8\xe0\xa5\x8b\xe0\xa4\x82 \xe0\xa4\x95\xe0\xa4\xbe \xe0\xa4\xb2\xe0\xa4\x95\xe0\xa5\x8d\xe0\xa4\xb7\xe0\xa5\x8d\xe0\xa4\xaf \xe0\xa4\xb0\xe0\xa4\x96\xe0\xa4\xbe \xe0\xa4\xb9\xe0\xa5\x88. \xe0\xa4\xac\xe0\xa4\xb0\xe0\xa4\xae\xe0\xa5\x82\xe0\xa4\xa1\xe0\xa4\xbe \xe0\xa4\xa8\xe0\xa5\x87 \xe0\xa4\xa6\xe0\xa5\x8b \xe0\xa4\xb5\xe0\xa4\xbf\xe0\xa4\x95\xe0\xa5\x87\xe0\xa4\x9f \xe0\xa4\x96\xe0\xa5\x8b \xe0\xa4\xa6\xe0\xa4\xbf\xe0\xa4\x8f \xe0\xa4\xb9\xe0\xa5\x88\xe0\xa4\x82.

- -

\xe0\xa4\xaa\xe0\xa4\xbe\xe0\xa4\x95\xe0\xa4\xbf\xe0\xa4\xb8\xe0\xa5\x8d\xe0\xa4\xa4\xe0\xa4\xbe\xe0\xa4\xa8 \xe0\xa4\xae\xe0\xa5\x87\xe0\xa4\x82 \xe0\xa4\xb8\xe0\xa5\x81\xe0\xa4\xaa\xe0\xa5\x8d\xe0\xa4\xb0\xe0\xa5\x80\xe0\xa4\xae \xe0\xa4\x95\xe0\xa5\x8b\xe0\xa4\xb0\xe0\xa5\x8d\xe0\xa4\x9f \xe0\xa4\x95\xe0\xa5\x87 \xe0\xa4\xae\xe0\xa5\x81\xe0\xa4\x96\xe0\xa5\x8d\xe0\xa4\xaf \xe0\xa4\xa8\xe0\xa5\x8d\xe0\xa4\xaf\xe0\xa4\xbe\xe0\xa4\xaf\xe0\xa4\xbe\xe0\xa4\xa7\xe0\xa5\x80\xe0\xa4\xb6 \xe0\xa4\x95\xe0\xa5\x8b \xe0\xa4\xa8\xe0\xa4\xbf\xe0\xa4\xb2\xe0\xa4\x82\xe0\xa4\xac\xe0\xa4\xbf\xe0\xa4\xa4 \xe0\xa4\x95\xe0\xa4\xbf\xe0\xa4\x8f \xe0\xa4\x9c\xe0\xa4\xbe\xe0\xa4\xa8\xe0\xa5\x87 \xe0\xa4\x95\xe0\xa5\x87 \xe0\xa4\xb5\xe0\xa4\xbf\xe0\xa4\xb0\xe0\xa5\x8b\xe0\xa4\xa7 \xe0\xa4\xae\xe0\xa5\x87\xe0\xa4\x82 \xe0\xa4\x95\xe0\xa4\x88 \xe0\xa4\x9c\xe0\xa4\x9c\xe0\xa5\x8b\xe0\xa4\x82 \xe0\xa4\xa8\xe0\xa5\x87 \xe0\xa4\x85\xe0\xa4\xaa\xe0\xa4\xa8\xe0\xa5\x87 \xe0\xa4\xaa\xe0\xa4\xa6 \xe0\xa4\xb8\xe0\xa5\x87 \xe0\xa4\x87\xe0\xa4\xb8\xe0\xa5\x8d\xe0\xa4\xa4\xe0\xa5\x80\xe0\xa4\xab\xe0\xa4\xbc\xe0\xa4\xbe \xe0\xa4\xa6\xe0\xa5\x87 \xe0\xa4\xa6\xe0\xa4\xbf\xe0\xa4\xaf\xe0\xa4\xbe \xe0\xa4\xb9\xe0\xa5\x88.

- -

\xe0\xa4\xb5\xe0\xa4\xbf\xe0\xa4\xa8\xe0\xa5\x8d\xe0\xa4\x98\xe0\xa5\x8d\xe0\xa4\xaf\xe0\xa4\xbe\xe0\xa4\x9a\xe0\xa4\xb2 \xe0\xa4\xaa\xe0\xa4\xb0\xe0\xa5\x8d\xe0\xa4\xb5\xe0\xa4\xa4 \xe0\xa4\xae\xe0\xa4\xa7\xe0\xa5\x8d\xe0\xa4\xaf\xe0\xa4\xb0\xe0\xa4\xbe\xe0\xa4\xa4\xe0\xa5\x8d\xe0\xa4\xb0\xe0\xa4\xbf \xe0\xa4\x95\xe0\xa5\x87 \xe0\xa4\xa8\xe0\xa4\xbf\xe0\xa4\xb5\xe0\xa4\xbf\xe0\xa4\xa1\xe0\xa4\xbc \xe0\xa4\x85\xe0\xa4\xa8\xe0\xa5\x8d\xe0\xa4\xa7\xe0\xa4\x95\xe0\xa4\xbe\xe0\xa4\xb0 \xe0\xa4\xae\xe0\xa5\x87\xe0\xa4\x82 \xe0\xa4\x95\xe0\xa4\xbe\xe0\xa4\xb2 \xe0\xa4\xa6\xe0\xa5\x87\xe0\xa4\xb5 \xe0\xa4\x95\xe0\xa5\x80 \xe0\xa4\xad\xe0\xa4\xbe\xe0\xa4\x82\xe0\xa4\xa4\xe0\xa4\xbf \xe0\xa4\x96\xe0\xa4\xa1\xe0\xa4\xbc\xe0\xa4\xbe \xe0\xa4\xa5\xe0\xa4\xbe\xe0\xa5\xa4 \xe0\xa4\x89\xe0\xa4\xb8 \xe0\xa4\xaa\xe0\xa4\xb0 \xe0\xa4\x89\xe0\xa4\x97\xe0\xa5\x87 \xe0\xa4\xb9\xe0\xa5\x81\xe0\xa4\x8f \xe0\xa4\x9b\xe0\xa5\x8b\xe0\xa4\x9f\xe0\xa5\x87-\xe0\xa4\x9b\xe0\xa5\x8b\xe0\xa4\x9f\xe0\xa5\x87 \xe0\xa4\xb5\xe0\xa5\x83\xe0\xa4\x95\xe0\xa5\x8d\xe0\xa4\xb7 \xe0\xa4\x87\xe0\xa4\xb8 \xe0\xa4\xaa\xe0\xa5\x8d\xe0\xa4\xb0\xe0\xa4\x95\xe0\xa4\xbe\xe0\xa4\xb0 \xe0\xa4\xa6\xe0\xa4\xb7\xe0\xa5\x8d\xe0\xa4\x9f\xe0\xa4\xbf\xe0\xa4\x97\xe0\xa5\x8b\xe0\xa4\x9a\xe0\xa4\xb0 \xe0\xa4\xb9\xe0\xa5\x8b\xe0\xa4\xa4\xe0\xa5\x87 \xe0\xa4\xa5\xe0\xa5\x87, \xe0\xa4\xae\xe0\xa4\xbe\xe0\xa4\xa8\xe0\xa5\x8b \xe0\xa4\xaf\xe0\xa5\x87 \xe0\xa4\x89\xe0\xa4\xb8\xe0\xa4\x95\xe0\xa5\x80 \xe0\xa4\x9c\xe0\xa4\x9f\xe0\xa4\xbe\xe0\xa4\x8f\xe0\xa4\x82 \xe0\xa4\xb9\xe0\xa5\x88 \xe0\xa4\x94\xe0\xa4\xb0 \xe0\xa4\x85\xe0\xa4\xb7\xe0\xa5\x8d\xe0\xa4\x9f\xe0\xa4\xad\xe0\xa5\x81\xe0\xa4\x9c\xe0\xa4\xbe \xe0\xa4\xa6\xe0\xa5\x87\xe0\xa4\xb5\xe0\xa5\x80 \xe0\xa4\x95\xe0\xa4\xbe \xe0\xa4\xae\xe0\xa4\xa8\xe0\xa5\x8d\xe0\xa4\xa6\xe0\xa4\xbf\xe0\xa4\xb0 \xe0\xa4\x9c\xe0\xa4\xbf\xe0\xa4\xb8\xe0\xa4\x95\xe0\xa5\x87 \xe0\xa4\x95\xe0\xa4\xb2\xe0\xa4\xb6 \xe0\xa4\xaa\xe0\xa4\xb0 \xe0\xa4\xb6\xe0\xa5\x8d\xe0\xa4\xb5\xe0\xa5\x87\xe0\xa4\xa4 \xe0\xa4\xaa\xe0\xa4\xa4\xe0\xa4\xbe\xe0\xa4\x95\xe0\xa4\xbe\xe0\xa4\x8f\xe0\xa4\x82 \xe0\xa4\xb5\xe0\xa4\xbe\xe0\xa4\xaf\xe0\xa5\x81 \xe0\xa4\x95\xe0\xa5\x80 \xe0\xa4\xae\xe0\xa4\xa8\xe0\xa5\x8d\xe0\xa4\xa6-\xe0\xa4\xae\xe0\xa4\xa8\xe0\xa5\x8d\xe0\xa4\xa6 \xe0\xa4\xa4\xe0\xa4\xb0\xe0\xa4\x82\xe0\xa4\x97\xe0\xa5\x8b\xe0\xa4\x82 \xe0\xa4\xae\xe0\xa5\x87\xe0\xa4\x82 \xe0\xa4\xb2\xe0\xa4\xb9\xe0\xa4\xb0\xe0\xa4\xbe \xe0\xa4\xb0\xe0\xa4\xb9\xe0\xa5\x80 \xe0\xa4\xa5\xe0\xa5\x80\xe0\xa4\x82, \xe0\xa4\x89\xe0\xa4\xb8 \xe0\xa4\xa6\xe0\xa5\x87\xe0\xa4\xb5 \xe0\xa4\x95\xe0\xa4\xbe \xe0\xa4\xae\xe0\xa4\xb8\xe0\xa5\x8d\xe0\xa4\xa4\xe0\xa4\x95 \xe0\xa4\xb9\xe0\xa5\x88 \xe0\xa4\xae\xe0\xa4\x82\xe0\xa4\xa6\xe0\xa4\xbf\xe0\xa4\xb0 \xe0\xa4\xae\xe0\xa5\x87\xe0\xa4\x82 \xe0\xa4\x8f\xe0\xa4\x95 \xe0\xa4\x9d\xe0\xa4\xbf\xe0\xa4\xb2\xe0\xa4\xae\xe0\xa4\xbf\xe0\xa4\xb2\xe0\xa4\xbe\xe0\xa4\xa4\xe0\xa4\xbe \xe0\xa4\xb9\xe0\xa5\x81\xe0\xa4\x86 \xe0\xa4\xa6\xe0\xa5\x80\xe0\xa4\xaa\xe0\xa4\x95 \xe0\xa4\xa5\xe0\xa4\xbe, \xe0\xa4\x9c\xe0\xa4\xbf\xe0\xa4\xb8\xe0\xa5\x87 \xe0\xa4\xa6\xe0\xa5\x87\xe0\xa4\x96\xe0\xa4\x95\xe0\xa4\xb0 \xe0\xa4\x95\xe0\xa4\xbf\xe0\xa4\xb8\xe0\xa5\x80 \xe0\xa4\xa7\xe0\xa5\x81\xe0\xa4\x82\xe0\xa4\xa7\xe0\xa4\xb2\xe0\xa5\x87 \xe0\xa4\xa4\xe0\xa4\xbe\xe0\xa4\xb0\xe0\xa5\x87 \xe0\xa4\x95\xe0\xa4\xbe \xe0\xa4\xae\xe0\xa4\xbe\xe0\xa4\xa8 \xe0\xa4\xb9\xe0\xa5\x8b \xe0\xa4\x9c\xe0\xa4\xbe\xe0\xa4\xa4\xe0\xa4\xbe \xe0\xa4\xa5\xe0\xa4\xbe\xe0\xa5\xa4 -
-!\"#$%&'()*+,-./0123456789:;<=>?
-@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
-`abcdefghijklmnopqrstuvwxyz{|}~ -
-०१२३४५६७८९ -

- -

Nepali (ne) - Devanagari

-

\xe0\xa4\x85\xe0\xa4\xa8\xe0\xa5\x8d\xe0\xa4\xa4\xe0\xa4\xb0\xe0\xa4\xbf\xe0\xa4\xae \xe0\xa4\xb8\xe0\xa4\xb0\xe0\xa4\x95\xe0\xa4\xbe\xe0\xa4\xb0\xe0\xa4\x95\xe0\xa5\x8b \xe0\xa4\x97\xe0\xa4\xa0\xe0\xa4\xa8\xe0\xa4\xae\xe0\xa4\xbe \xe0\xa4\xa2\xe0\xa5\x80\xe0\xa4\xb2\xe0\xa4\xbe\xe0\xa4\x87 \xe0\xa4\xb9\xe0\xa5\x81\xe0\xa4\xa8\xe0\xa5\x81\xe0\xa4\x95\xe0\xa4\xbe \xe0\xa4\xb8\xe0\xa4\xbe\xe0\xa4\xa5\xe0\xa5\x88 \xe0\xa4\x86\xe0\xa4\x89\xe0\xa4\x82\xe0\xa4\xa6\xe0\xa5\x8b \xe0\xa4\x9c\xe0\xa5\x87\xe0\xa4\xa0 \xe0\xa4\xae\xe0\xa4\xb9\xe0\xa4\xbf\xe0\xa4\xa8\xe0\xa4\xbe\xe0\xa4\xad\xe0\xa4\xbf\xe0\xa4\xa4\xe0\xa5\x8d\xe0\xa4\xb0 \xe0\xa4\xb8\xe0\xa4\x82\xe0\xa4\xb5\xe0\xa4\xbf\xe0\xa4\xa7\xe0\xa4\xbe\xe0\xa4\xa8\xe0\xa4\xb8\xe0\xa4\xad\xe0\xa4\xbe\xe0\xa4\x95\xe0\xa5\x8b \xe0\xa4\x9a\xe0\xa5\x81\xe0\xa4\xa8\xe0\xa4\xbe\xe0\xa4\xb5 \xe0\xa4\xb9\xe0\xa5\x8b\xe0\xa4\xb2\xe0\xa4\xbe \xe0\xa4\x95\xe0\xa4\xbf \xe0\xa4\xa8\xe0\xa4\xb9\xe0\xa5\x8b\xe0\xa4\xb2\xe0\xa4\xbe \xe0\xa4\xad\xe0\xa4\xa8\xe0\xa5\x8d\xe0\xa4\xa8\xe0\xa5\x87 \xe0\xa4\xac\xe0\xa4\xb9\xe0\xa4\xb8 \xe0\xa4\x9a\xe0\xa4\xb0\xe0\xa5\x8d\xe0\xa4\x95\xe0\xa5\x80\xe0\xa4\xb0\xe0\xa4\xb9\xe0\xa5\x87\xe0\xa4\x95\xe0\xa5\x8b \xe0\xa4\xac\xe0\xa5\x87\xe0\xa4\xb2\xe0\xa4\xbe \xe0\xa4\x9a\xe0\xa5\x81\xe0\xa4\xa8\xe0\xa4\xbe\xe0\xa4\xb5\xe0\xa4\x95\xe0\xa5\x88 \xe0\xa4\xb5\xe0\xa4\xbf\xe0\xa4\xb7\xe0\xa4\xaf\xe0\xa4\xae\xe0\xa4\xbe \xe0\xa4\xa8\xe0\xa4\xbf\xe0\xa4\xb0\xe0\xa5\x8d\xe0\xa4\xb5\xe0\xa4\xbe\xe0\xa4\x9a\xe0\xa4\xa8 \xe0\xa4\x86\xe0\xa4\xaf\xe0\xa5\x8b\xe0\xa4\x97 \xe0\xa4\xb0 \xe0\xa4\x86\xe0\xa4\xa0 \xe0\xa4\xa6\xe0\xa4\xb2\xe0\xa4\x95\xe0\xa5\x8b \xe0\xa4\xac\xe0\xa5\x87\xe0\xa4\x97\xe0\xa5\x8d\xe0\xa4\xb2\xe0\xa4\xbe, \xe0\xa4\xac\xe0\xa5\x87\xe0\xa4\x97\xe0\xa5\x8d\xe0\xa4\xb2\xe0\xa5\x88 \xe0\xa4\xad\xe0\xa4\xa8\xe0\xa4\xbe\xe0\xa4\x87 \xe0\xa4\xb0\xe0\xa4\xb9\xe0\xa5\x87\xe0\xa4\x95\xe0\xa5\x8b \xe0\xa4\xa6\xe0\xa5\x87\xe0\xa4\x96\xe0\xa4\xbf\xe0\xa4\x8f\xe0\xa4\x95\xe0\xa5\x8b \xe0\xa4\x9b\xe0\xa5\xa4

- -

\xe0\xa4\xb8\xe0\xa4\x82\xe0\xa4\xb5\xe0\xa4\xbf\xe0\xa4\xa7\xe0\xa4\xbe\xe0\xa4\xa8 \xe0\xa4\xb8\xe0\xa4\xad\xe0\xa4\xbe\xe0\xa4\x95\xe0\xa5\x8b \xe0\xa4\xa8\xe0\xa4\xbf\xe0\xa4\xb0\xe0\xa5\x8d\xe0\xa4\xb5\xe0\xa4\xbe\xe0\xa4\x9a\xe0\xa4\xa8\xe0\xa4\x95\xe0\xa4\xbe \xe0\xa4\xb2\xe0\xa4\xbe\xe0\xa4\x97\xe0\xa4\xbf \xe0\xa4\xa8\xe0\xa5\x87\xe0\xa4\x95\xe0\xa4\xaa\xe0\xa4\xbe \xe0\xa4\xae\xe0\xa4\xbe\xe0\xa4\x93\xe0\xa4\xb5\xe0\xa4\xbe\xe0\xa4\xa6\xe0\xa5\x80\xe0\xa4\xb2\xe0\xa4\xbe\xe0\xa4\x88 \xe0\xa4\xb8\xe0\xa4\xae\xe0\xa5\x87\xe0\xa4\x9f\xe0\xa5\x87\xe0\xa4\xb0 \xe0\xa4\x85\xe0\xa4\xa8\xe0\xa5\x8d\xe0\xa4\xa4\xe0\xa4\xb0\xe0\xa4\xbf\xe0\xa4\xae \xe0\xa4\xb8\xe0\xa4\xb0\xe0\xa4\x95\xe0\xa4\xbe\xe0\xa4\xb0 \xe0\xa4\x97\xe0\xa4\xa0\xe0\xa4\xa8\xe0\xa4\x97\xe0\xa4\xb0\xe0\xa5\x8d\xe0\xa4\xa8\xe0\xa5\x87 \xe0\xa4\xa4\xe0\xa4\xaf\xe0\xa4\xbe\xe0\xa4\xb0\xe0\xa5\x80 \xe0\xa4\xad\xe0\xa5\x88\xe0\xa4\xb0\xe0\xa4\xb9\xe0\xa4\x81\xe0\xa4\xa6\xe0\xa4\xbe \xe0\xa4\xae\xe0\xa4\xbe\xe0\xa4\x93\xe0\xa4\xb5\xe0\xa4\xbe\xe0\xa4\xa6\xe0\xa5\x80 \xe0\xa4\x95\xe0\xa4\xbe\xe0\xa4\xb0\xe0\xa5\x8d\xe0\xa4\xaf\xe0\xa4\x95\xe0\xa4\xb0\xe0\xa5\x8d\xe0\xa4\xa4\xe0\xa4\xbe\xe0\xa4\xb9\xe0\xa4\xb0\xe0\xa5\x82\xe0\xa4\xb2\xe0\xa5\x87 \xe0\xa4\x8f\xe0\xa4\x95\xe0\xa4\x9c\xe0\xa4\xa8\xe0\xa4\xbe \xe0\xa4\xb9\xe0\xa5\x8b\xe0\xa4\x9f\xe0\xa4\xb2 \xe0\xa4\xae\xe0\xa4\xbe\xe0\xa4\xb2\xe0\xa4\xbf\xe0\xa4\x95\xe0\xa4\xae\xe0\xa4\xbe\xe0\xa4\xa5\xe0\xa4\xbf \xe0\xa4\x97\xe0\xa4\xb0\xe0\xa5\x87\xe0\xa4\x95\xe0\xa4\xbe \xe0\xa4\xad\xe0\xa4\xa8\xe0\xa4\xbf\xe0\xa4\x8f\xe0\xa4\x95\xe0\xa5\x8b \xe0\xa4\x85\xe0\xa4\xad\xe0\xa4\xa6\xe0\xa5\x8d\xe0\xa4\xb0 \xe0\xa4\xb5\xe0\xa5\x8d\xe0\xa4\xaf\xe0\xa4\xb5\xe0\xa4\xb9\xe0\xa4\xbe\xe0\xa4\xb0\xe0\xa4\x95\xe0\xa5\x8b \xe0\xa4\xb5\xe0\xa4\xbf\xe0\xa4\xb0\xe0\xa5\x8b\xe0\xa4\xa7\xe0\xa4\xae\xe0\xa4\xbe \xe0\xa4\xb5\xe0\xa5\x8d\xe0\xa4\xaf\xe0\xa4\xbe\xe0\xa4\xaa\xe0\xa4\xbe\xe0\xa4\xb0\xe0\xa5\x80\xe0\xa4\xb9\xe0\xa4\xb0\xe0\xa5\x81\xe0\xa4\xb2\xe0\xa5\x87 \xe0\xa4\x85\xe0\xa4\xa8\xe0\xa4\xbf\xe0\xa4\xb6\xe0\xa5\x8d\xe0\xa4\x9a\xe0\xa4\xbf\xe0\xa4\xa4\xe0\xa4\x95\xe0\xa4\xbe\xe0\xa4\xb2\xe0\xa4\xbf\xe0\xa4\xa8 \xe0\xa4\xb9\xe0\xa4\xa1\xe0\xa5\x8d\xe0\xa4\xa4\xe0\xa4\xbe\xe0\xa4\xb2 \xe0\xa4\x86\xe0\xa4\xb9\xe0\xa5\x8d\xe0\xa4\xb5\xe0\xa4\xbe\xe0\xa4\xa8 \xe0\xa4\x97\xe0\xa4\xb0\xe0\xa5\x87\xe0\xa4\x95\xe0\xa4\xbe \xe0\xa4\x9b\xe0\xa4\xa8\xe0\xa5\x8d\xe0\xa5\xa4

- -

Bengali (bn)

-

-দক্ষিণ ওয়াজিরিস্থানে কর্মরত স্বেচ্ছাসেবী ও ত্রাণ সংস্থাগুলো ধারণা করছে সেনা অভিযানের তীব্রতা বাড়লে এই সংখ্যাটা আরও অনেক বেড়ে যাবে -
-শরণার্থীদের স্রোত সামলাতে তারা ইতিমধ্যেই হিমশিম খাচ্ছেন, ফলে লড়াই থেকে পালিয়ে আসা বেসামরিক মানুষজনের সংখ্যা আরও বাড়লে স্বভাবতই সঙ্কট আরও জটিল হয়ে উঠবে -
-দক্ষিণ ওয়াজিরিস্তান থেকে পাওয়া খবরে বলা হচ্ছে সেনাবাহিনী সেখানে তিনদিক থেকে আক্রমণ চালাচ্ছে এবং ওই অঞ্চলে প্রবেশ করা আর বেরোনোর পথ তারাই নিয়ন্ত্রণ করছে - আর তালেবানের ঘাঁটিগুলোর ওপর হামলা চালানো হচ্ছে আকাশপথে এবং অর্টিলারি বাহিনীর সাহায্যে -
-তালেবান জঙ্গীরা ইতিমধ্যেই হুঁশিয়ারি দিয়েছে এক ইঞ্চি জমিও তারা বিনা যুদ্ধে ছেড়ে দেবে না - আর ইসলামাবাদ থেকে বিবিসির ওরলা গুয়েরিন বলছেন তারা সে-কথা অক্ষরে অক্ষরে পালন করছে -
-!\"#$%&'()*+,-./0123456789:;<=>?
-@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
-`abcdefghijklmnopqrstuvwxyz{|}~ -
০১২৩৪৫৬৭৮৯ -

- - -

Assamese

-

অসমীয়া ৱিকিপিডিয়াৰ উদ্দেশ্য হ'ল সম্পূৰ্ণ অসমীয়া ভাষাত এখনি বিশ্বকোষ প্ৰণয়ন কৰা। অন্য কোনো ভাষাৰ প্ৰবন্ধ এই বিশ্বকোষৰ বাবে গ্ৰহন কৰা নহ'ব। বিশ্বকোষৰ অৱদানকাৰীসকললৈ সাদৰেৰে অনুৰোধ জনোৱা হ'ল যাতে তেখেতসকলে অসমীয়া ভাষাৰ প্ৰচলিত বানান পদ্ধতি মানি চলে। বিদেশী শব্দৰ অসমীয়া প্ৰতিৰূপৰ ক্ষেত্ৰত যিহেতু অসমীয়া সাহিত্যিকসকল এতিয়াও ঐক্যমতত উপনীত হ'ব পৰা নাই, ৱিকিপিডিয়াত বিদেশী শব্দৰ যিকোনো ধৰনৰ অসমীয়া ৰূপ গ্ৰাহ্য কৰা হ'ব। -
- -গণবিশ্বকোষৰ সফলতাৰ নেপথ্যৰ আটাইতকৈ শক্তিশালী ধাৰণাটো হৈছে সহযোগিতামূলক সংকলন, যি মানৱ জাতিৰ সাফল্যৰ মূল চাবিকাঠি পাৰস্পৰিক সহযোগিতাক আৰু এখোপ ওপৰলৈ উঠাই নিছে| এই গণবিশ্বকোষবিলাকৰ বিভিন্ন নিবন্ধৰ লেখকসকল সম্পূৰ্ণ অপেচাদাৰী ইন্টাৰনেট ব্যৱহাৰকৰোঁতা। এই লেখকসকলে নিজৰ নিজৰ ৰাপ বা পাৰদৰ্শীতা থকা বিষয় সম্পৰ্কে বিভিন্ন নিবন্ধ লিখি আন পাঠকক উপকৃত কৰে আৰু নিজেও উপকৃত হয়। -
- -অসমীয়া গণবিশ্বকোষ (যাৰ মুখ্য পৃষ্ঠাটো বৰ্তমান আপুনি পঢ়ি আছে) হৈছে এখন অসমীয়া বিশ্বকোষ প্ৰস্তুত কৰাৰ এক অভূতপূৰ্ব তথা অভিনৱ প্ৰয়াস, যাক যিকোনো পাঠকে পৃথিৱীৰ যিকোনো ঠাইৰ পৰা ইন্টাৰনেটৰ জৰিয়তে বিনামূল্যে ব্যৱহাৰ কৰিব পাৰিব। এই প্ৰকল্প আচলতে \"ৱিকিপেডিয়া\" নামৰ এক বৃহত্তৰ প্ৰকল্পৰ অংশ| পৃথিবীৰ বিভিন্ন ভাষাত সকলোৱে বিনামূল্যে ব্যৱহাৰ তথা সম্পাদনা কৰিব পৰা বিশ্বকোষ প্ৰস্তুত কৰাৰ উদ্দেশ্যেৰে ৱিকিপিডিয়া নামৰ ইন্টাৰনেট-পৃষ্ঠাত ২০০১ চনত আৰম্ভ কৰা মুখ্য প্ৰকল্পৰ অধীনত বৰ্ত্তমান প্ৰায় শতাধিক ভাষাৰ যোগদানেৰে সম্বৃদ্ধ হোৱা এইলানি গণবিশ্বকোষে আজি প্ৰায় পাঁচলাখতকৈও অধিক প্ৰবন্ধৰে পৃথিৱীৰ বিভিন্ন প্ৰান্তৰ পাঠকক ইন্টাৰনেটৰ জৰিয়তে বিশ্বকোষ সেৱা আগবঢ়াইছে। -

- - -"; - -//============================================================== -//============================================================== -//============================================================== -include("../mpdf.php"); - -$mpdf=new mPDF('-s','A4','','',32,25,27,25,16,13); - -$mpdf->SetDisplayMode('fullpage'); - -//$mpdf->useSubstitutionsMB = true; - -$mpdf->WriteHTML($html); - -$mpdf->Output(); -exit; -//============================================================== -//============================================================== - - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/example35_watermarks.php b/public_html/2022/newcms/pdf/examples/example35_watermarks.php deleted file mode 100644 index 02337f8..0000000 --- a/public_html/2022/newcms/pdf/examples/example35_watermarks.php +++ /dev/null @@ -1,59 +0,0 @@ -mPDF -

Watermarks

-

P: Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci.

- -
- -
DIV: Proin aliquet lorem id felis. Curabitur vel libero at mauris nonummy tincidunt. Donec imperdiet. Vestibulum sem sem, lacinia vel, molestie et, laoreet eget, urna. Curabitur viverra faucibus pede. Morbi lobortis. Donec dapibus. Donec tempus. Ut arcu enim, rhoncus ac, venenatis eu, porttitor mollis, dui. Sed vitae risus. In elementum sem placerat dui. Nam tristique eros in nisl. Nulla cursus sapien non quam porta porttitor. Quisque dictum ipsum ornare tortor. Fusce ornare tempus enim.
-
DIV: Proin aliquet lorem id felis. Curabitur vel libero at mauris nonummy tincidunt. Donec imperdiet. Vestibulum sem sem, lacinia vel, molestie et, laoreet eget, urna. Curabitur viverra faucibus pede. Morbi lobortis. Donec dapibus. Donec tempus. Ut arcu enim, rhoncus ac, venenatis eu, porttitor mollis, dui. Sed vitae risus. In elementum sem placerat dui. Nam tristique eros in nisl. Nulla cursus sapien non quam porta porttitor. Quisque dictum ipsum ornare tortor. Fusce ornare tempus enim.
- -
Blockquote: Maecenas arcu justo, malesuada eu, dapibus ac, adipiscing vitae, turpis. Fusce mollis. Aliquam egestas. In purus dolor, facilisis at, fermentum nec, molestie et, metus. Maecenas arcu justo, malesuada eu, dapibus ac, adipiscing vitae, turpis. Fusce mollis. Aliquam egestas. In purus dolor, facilisis at, fermentum nec, molestie et, metus.
- -
Address: Vestibulum feugiat, orci at imperdiet tincidunt, mauris erat facilisis urna, sagittis ultricies dui nisl et lectus. Sed lacinia, lectus vitae dictum sodales, elit ipsum ultrices orci, non euismod arcu diam non metus.
- -'; - - -//============================================================== -//============================================================== -//============================================================== - -include("../mpdf.php"); - -$mpdf=new mPDF('c'); - -$mpdf->SetDisplayMode('fullpage'); - -$mpdf->SetWatermarkText('DRAFT'); -$mpdf->watermark_font = 'DejaVuSansCondensed'; -$mpdf->showWatermarkText = true; - - -$mpdf->WriteHTML($html); -$mpdf->AddPage(); - -$mpdf->SetWatermarkImage('tiger.wmf', 1, '', array(160,10)); -$mpdf->showWatermarkImage = true; - -$mpdf->WriteHTML('

Using a Watermark as a Header

'); -$mpdf->WriteHTML($html); -$mpdf->AddPage(); - -$mpdf->SetWatermarkImage('tiger.wmf', 0.15, 'F'); - -$mpdf->WriteHTML('

Using a Watermark Image as Background

'); -$mpdf->WriteHTML($html); - - -$mpdf->Output(); -exit; - -//============================================================== -//============================================================== -//============================================================== - - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/example36_annotations_and_Attached_files.php b/public_html/2022/newcms/pdf/examples/example36_annotations_and_Attached_files.php deleted file mode 100644 index 63e8c5d..0000000 --- a/public_html/2022/newcms/pdf/examples/example36_annotations_and_Attached_files.php +++ /dev/null @@ -1,36 +0,0 @@ -mPDF -

Annotations

-
Heading 5
-
Heading 6
-

P: Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci.

- -'; -//============================================================== -//============================================================== -//============================================================== -include("../mpdf.php"); - -$mpdf=new mPDF('c'); - -$mpdf->title2annots = true; - -$mpdf->WriteHTML($html); - -$mpdf->Output(); - -exit; -//============================================================== -//============================================================== -//============================================================== -//============================================================== -//============================================================== - - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/example37_barcodes.php b/public_html/2022/newcms/pdf/examples/example37_barcodes.php deleted file mode 100644 index 34ec882..0000000 --- a/public_html/2022/newcms/pdf/examples/example37_barcodes.php +++ /dev/null @@ -1,437 +0,0 @@ - - - - - - - - -

mPDF

-

Barcodes

-

NB Quiet zones - The barcode object includes space to the right/left or top/bottom only when the specification states a \'quiet zone\' or \'light margin\'. All the examples below also have CSS property set on the barcode object i.e. padding: 1.5mm;

- -

EAN-13 Barcodes (EAN-2 and EAN-5)

-

NB EAN-13, UPC-A, UPC-E, and EAN-8 may all include an additional bar code(EAN-2 and EAN-5) to the right of the main bar code (see below).

-

A nominal height and width for these barcodes is defined by the specification. \'size\' will scale both the height and width. Values between 0.8 and 2 are allowed (i.e. 80% to 200% of the nominal size). \'height\' can also be varied as a factor of 1; this is applied after the scaling factor used for \'size\'.

- - - - - - - - - - - - - - - - - - - - - - - - - - -
CODEDESCRIPTIONBARCODE
EAN13Standard EAN-13 barcode. Accepts 12 or 13 characters (creating checksum digit if required). [0-9] numeric only.
ISBNStandard EAN-13 barcode with \'ISBN\' number shown above [shown at height="0.66"]
ISSNStandard EAN-13 barcode with \'ISSN\' number shown above [shown at size="0.8"]
- -

EAN-8, UPC-A and UPC-E Barcodes

-

UPC-A, UPC-E, EAN-13, and EAN-8 may all include an additional bar code(EAN-2 and EAN-5) to the right of the main bar code (see below).

-

A nominal height and width for these barcodes is defined by the specification. \'size\' will scale both the height and width. Values between 0.8 and 2 are allowed (i.e. 80% to 200% of the nominal size). \'height\' can also be varied as a factor of 1; this is applied after the scaling factor used for \'size\'.

- - - - - - - - - - - - - - - - - - - - - - - - - - -
CODEDESCRIPTIONBARCODE
UPCAUPC-A barcode. This is a subset of the EAN-13. (098277211236) Accepts 11 or 12 characters (creating checksum digit if required). [0-9] numeric only
UPCEUPC-E barcode. Requires the UPC-A code to be entered as above (e.g. 042100005264 to give 425261). NB mPDF will die with an error message if the code is not valid, as only some UPC-A codes can be converted into valid UPC-E codes. UPC-E doesn\'t have a check digit encoded explicity, rather the check digit is encoded in the parity of the other six characters. The check digit that is encoded is the check digit from the original UPC-A barcode.
EAN8EAN-8. Accepts 7 or 8 characters (creating checksum digit if required). [0-9] numeric only
- -

EAN-2 and EAN-5 supplements, and combined forms

-

UPC-A, UPC-E, EAN-13, and EAN-8 may all include an additional bar code(EAN-2 and EAN-5) to the right of the main bar code.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CODEDESCRIPTIONBARCODE
EAN2EAN-2 supplement barcode. mPDF does not generate EAN-5 barcode on its own; see supplements below. Used to denote an issue of a periodical. EAN-2 supplement accepts 2 digits [0-9] only, EAN-5 five.
EAN5EAN-5 supplement barcode. mPDF does not generate EAN-5 barcode on its own; see supplements below. Usually used in conjunction with EAN-13 for the price of books. 90000 is the code for no price.
EAN13P2Standard EAN-13 barcode with 2-digit UPC supplement (07)
ISBNP2Standard EAN-13 barcode with \'ISBN\' number shown above, and 2-digit EAN-2 supplement
ISSNP2Standard EAN-13 barcode with \'ISSN\' number shown above, and 2-digit EAN-2 supplement
UPCAP2UPC-A barcode with 2-digit EAN-2 supplement. This is a subset of the EAN-13.
UPCEP2UPC-E barcode with 2-digit EAN-2 supplement.
EAN8P2EAN-8 barcode with 2-digit EAN-2 supplement
EAN13P5Standard EAN-13 barcode with 5-digit UPC supplement (90000)
ISBNP5Standard EAN-13 barcode with \'ISBN\' number shown above, and 5-digit EAN-5 supplement
ISSNP5Standard EAN-13 barcode with \'ISSN\' number shown above, and 5-digit EAN-5 supplement
UPCAP5UPC-A barcode with 5-digit EAN-5 supplement. This is a subset of the EAN-13
UPCEP5UPC-E barcode with 5-digit EAN-5 supplement. (042100005264 90000)
EAN8P5EAN-8 barcode with 5-digit EAN-5 supplement (55123457 90000)
- -

Postcode Barcodes

-

These all have sizes fixed by their specification. Although they can be altered using \'size\' it is not recommended. \'height\' is ignored.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CODEDESCRIPTIONBARCODE
IMBIntelligent Mail Barcode - also known as: USPS OneCode 4-State Customer Barcode, OneCode 4CB, USPS 4CB, 4-CB, 4-State Customer Barcode, USPS OneCode Solution Barcode. (01234567094987654321-01234567891) Accepts: Up to 31 digits (required 20-digit Tracking Code, and up to 11-digit Routing Code; this may be 0, 5, 9, or 11 digits). If the Routing code is included, it should be spearated by a hyphen - like this example.
RM4SCCRoyal Mail 4-state Customer barcode (SN34RD1A). Accepts: max. 9 characters. Valid characters: [A-Z,0-9] Checksum digit: automatic.
KIXDutch KIX version of Royal Mail 4-state Customer barcode (SN34RD1A). Valid characters: [A-Z,0-9]. Checksum digit: automatic.
POSTNETPOSTNET barcode. Accepts 5, 9 or 11 digits. Valid characters: [0-9]. Checksum digit: automatic.
PLANETPLANET barcode. Accepts 11 or 13 digits. Valid characters: [0-9]. Checksum digit: automatic.
- - -

Variable width Barcodes

-

These barcodes are all of variable length depending on the code entered. There is no recommended maximum size for any of these specs, but all recommend a minimum X-dimension (width of narrowest bar) as 7.5mil (=0.19mm). The default used here is twice the minimum i.e. X-dim = 0.38mm.

-

The specifications give a minimum height of 15% of the barcode length (which can be variable). The bar height in mPDF is set to a default value of 10mm.

-

\'size\' will scale the barcode in both dimensions. mPDF will accept any number, but bear in mind that size="0.5" will set the bar width to the minimum. The \'height\' attribute further allows scaling - this factor is applied to already scaled barcode. Thus size="2" height="0.5" will give a barcode twice the default width (X-dim=0.76mm) and at the default height set in mPDF i.e. 10mm.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CODEDESCRIPTIONBARCODE
C128ACODE 128 A. Valid characters: [A-Z uppercase and control chars ASCII 0-31]. Checksum digit: automatic.
C128BCODE 128 B. Valid characters: [Upper / Lower Case + All ASCII Printable Characters]. Checksum digit: automatic.
C128CCODE 128 C. Valid characters: [0-9]. Must be an even number of digits. Checksum digit: automatic.
EAN128C [A/B/C]EAN128 (A, B, and C). Specified variant of Code 128, utilising an FNC1 start code. Also known as UCC/EAN-128 or GS1-128. Valid characters: [cf. Code 128]. Checksum digit: automatic.
C39CODE 39 - ANSI MH10.8M-1983 - USD-3 - 3 of 9. Valid characters: [0-9 A-Z \'-\' . Space $/+%]
C39+CODE 39 + CHECKSUM. Checksum digit: automatic.
C39ECODE 39 EXTENDED. Valid characters: [ASCII-characters between 0..127]
C39E+CODE 39 EXTENDED + CHECKSUM. Checksum digit: automatic.
S25Standard 2 of 5. Valid characters: [0-9]
S25+Standard 2 of 5 + CHECKSUM. Valid characters: [0-9]. Checksum digit: automatic.
I25Interleaved 2 of 5. Valid characters: [0-9]
I25+Interleaved 2 of 5 + CHECKSUM. Valid characters: [0-9]. Checksum digit: automatic.
I25BInterleaved 2 of 5 with bearer bars. Valid characters: [0-9]
I25B+Interleaved 2 of 5 + CHECKSUM with bearer bars. Valid characters: [0-9]. Checksum digit: automatic.
C93CODE 93 - USS-93 (extended). Valid characters: [ASCII-characters between 0..127]. Checksum digits: automatic.
MSIMSI. Modified Plessey. Valid characters: [0-9]
MSI+MSI + CHECKSUM (module 11). Checksum digit: automatic.
CODABARCODABAR. Valid characters: [0-9 \'-\' $:/.+ ABCD] ABCD are used as stop and start characters e.g. A34698735B
CODE11CODE 11. Valid characters: [0-9 and \'-\']. Checksum digits: 1 (or 2 if length of code is > 10 characters) - automatic.
- - - - -
- -
-
Useful links
-

http://www.adams1.com

-

http://www.tec-it.com/Download/PDF/Barcode_Reference_EN.pdf

-

http://www.tec-it.com/en/support/knowbase/symbologies/barcode-overview/linear/Default.aspx

-

http://www.gs1uk.org/downloads/bar_code/Bar%20coding%20getting%20it%20right.pdf

-

http://web.archive.org/web/19990501035133/http://www.uc-council.org/d36-d.htm (EAN2 and EAN5)

-

http://www.barcodeisland.com/ean13.phtml (UPC-A)

-

http://www.idautomation.com/fonts/postnet/#Specifications

-

http://www.outputlinks.com/sites/AFP/ibm_bcocafaq.pdf

-

https://ribbs.usps.gov/intelligentmail_mailpieces/documents/tech_guides/USPSIMB_Tech_Resource_Guide.pdf (Intelligent Mail)

-

http://www.mailsorttechnical.com/downloads_mailsort_user_guide.cfm

- -

http://www.mailsorttechnical.com/docs/mug_jun_2009/MUG_10_2008_Mailsort_700.pdf page 20

- - -
- - -
-

Human-readable text

-Human-readable text is only produced as part of the barcode object in EAN-13, ISBN, ISSN, EAN-8, UPC-A and UPC-E. Here is an example to add text to a barcode: -
- -
- -<div style="position:fixed; right: 50mm; top: 60mm; border: 0.2mm solid #000000; text-align: center; padding: 0.5mm; padding-top: 2mm;">
-<barcode code="00034698735346987355" type="EAN128C" /><br />
-<div style="font-family: ocrb;">(00) 0346987 35346987 355</div>
-</div> - -
- -
-
-
(00) 0346987 35346987 355
-
- - - -'; -//============================================================== -//============================================================== -include("../mpdf.php"); - -$mpdf=new mPDF('','','','',20,15,25,25,10,10); -$mpdf->WriteHTML($html); -$mpdf->Output(); - -exit; - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/example38_dot_tab.php b/public_html/2022/newcms/pdf/examples/example38_dot_tab.php deleted file mode 100644 index 7342cc8..0000000 --- a/public_html/2022/newcms/pdf/examples/example38_dot_tab.php +++ /dev/null @@ -1,43 +0,0 @@ - -dottab.menu { - outdent: 4em; -} -p.menu { - text-align: left; - padding-right: 4em; -} - - -

Menu

- -
- - - - - - - - - -
-'; - - -include("../mpdf.php"); - -$mpdf=new mPDF(); - -$mpdf->WriteHTML($html); - -$mpdf->Output(); - -exit; - - - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/example39_PDFA_compliance.php b/public_html/2022/newcms/pdf/examples/example39_PDFA_compliance.php deleted file mode 100644 index f43b023..0000000 --- a/public_html/2022/newcms/pdf/examples/example39_PDFA_compliance.php +++ /dev/null @@ -1,31 +0,0 @@ -mPDF -

PDFA Compliance

-

PDF/A1-b is a file format for the long-term archiving of electronic documents. This is an example of a PDF/A1-b compliant files.

-'; -//============================================================== -//============================================================== -//============================================================== -include("../mpdf.php"); - -$mpdf=new mPDF(); - -$mpdf->PDFA = true; -$mpdf->PDFAauto = true; -$mpdf->WriteHTML($html); - -$mpdf->Output(); - -exit; -//============================================================== -//============================================================== -//============================================================== -//============================================================== -//============================================================== - - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/example40_MPDFI_thumbnails.php b/public_html/2022/newcms/pdf/examples/example40_MPDFI_thumbnails.php deleted file mode 100644 index 709ea8d..0000000 --- a/public_html/2022/newcms/pdf/examples/example40_MPDFI_thumbnails.php +++ /dev/null @@ -1,20 +0,0 @@ -SetImportUse(); - -$mpdf->Thumbnail('sample_orientation2.pdf', 4, 5); // number per row // spacing in mm - -$mpdf->WriteHTML('
Now with rotated pages
'); - -$mpdf->Thumbnail('sample_orientation3.pdf', 4); // number per row // spacing in mm - - -$mpdf->Output(); - -exit; - - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/example41_MPDFI_template.php b/public_html/2022/newcms/pdf/examples/example41_MPDFI_template.php deleted file mode 100644 index 12f592d..0000000 --- a/public_html/2022/newcms/pdf/examples/example41_MPDFI_template.php +++ /dev/null @@ -1,36 +0,0 @@ -SetImportUse(); - -$mpdf->SetDisplayMode('fullpage'); - -$mpdf->SetCompression(false); - -// Add First page -$pagecount = $mpdf->SetSourceFile('sample_basic.pdf'); - -$crop_x = 50; -$crop_y = 50; -$crop_w = 100; -$crop_h = 100; - -$tplIdx = $mpdf->ImportPage(2, $crop_x, $crop_y, $crop_w, $crop_h); - -$x = 50; -$y = 50; -$w = 100; -$h = 100; - -$mpdf->UseTemplate($tplIdx, $x, $y, $w, $h); - -$mpdf->Rect($x, $y, $w, $h); - -$mpdf->Output('newpdf.pdf', 'I'); - -exit; - - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/example42_MPDFI_templatedoc.php b/public_html/2022/newcms/pdf/examples/example42_MPDFI_templatedoc.php deleted file mode 100644 index 2b670ca..0000000 --- a/public_html/2022/newcms/pdf/examples/example42_MPDFI_templatedoc.php +++ /dev/null @@ -1,35 +0,0 @@ -SetImportUse(); - -$mpdf->SetDocTemplate('sample_logoheader2.pdf',1); // 1|0 to continue after end of document or not - used on matching page numbers - -//=================================================== -$mpdf->AddPage(); -$mpdf->WriteHTML('Hallo World'); -$mpdf->AddPage(); -$mpdf->WriteHTML('Hallo World'); -$mpdf->AddPage(); -$mpdf->WriteHTML('Hallo World'); -//=================================================== - -$mpdf->RestartDocTemplate(); - -//=================================================== -$mpdf->AddPage(); -$mpdf->WriteHTML('Hallo World'); -$mpdf->AddPage(); -$mpdf->WriteHTML('Hallo World'); -$mpdf->AddPage(); -$mpdf->WriteHTML('Hallo World'); -//=================================================== - - -$mpdf->Output(); - -exit; - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/example43_MPDFI_booklet.php b/public_html/2022/newcms/pdf/examples/example43_MPDFI_booklet.php deleted file mode 100644 index 8144a3a..0000000 --- a/public_html/2022/newcms/pdf/examples/example43_MPDFI_booklet.php +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - - -

mPDF Example Booklet

-

Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci.

- - -

Sed bibendum. Nunc eleifend ornare velit. Sed consectetuer urna in erat. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Mauris sodales semper metus. Maecenas justo libero, pretium at, malesuada eu, mollis et, arcu. Ut suscipit pede in nulla. Praesent elementum, dolor ac fringilla posuere, elit libero rutrum massa, vel tincidunt dui tellus a ante. Sed aliquet euismod dolor. Vestibulum sed dui. Duis lobortis hendrerit quam. Donec tempus orci ut libero. Pellentesque suscipit malesuada nisi.

- -

Little Women - Chapter One - Playing Pilgrims

- -

Christmas won\'t be Christmas without any presents, grumbled Jo, lying on the rug.

It\'s so dreadful to be poor! sighed Meg, looking down at her old dress.

I don\'t think it\'s fair for some girls to have plenty of pretty things, and other girls nothing at all, added little Amy, with an injured sniff.

We\'ve got Father and Mother, and each other, said Beth contentedly from her corner.

The four young faces on which the firelight shone brightened at the cheerful words, but darkened again as Jo said sadly, We haven\'t got Father, and shall not have him for a long time. She didn\'t say perhaps never, but each silently added it, thinking of Father far away, where the fighting was.

Nobody spoke for a minute; then Meg said in an altered tone, You know the reason Mother proposed not having any presents this Christmas was because it is going to be a hard winter for everyone; and she thinks we ought not to spend money for pleasure, when our men are suffering so in the army. We can\'t do much, but we can make our little sacrifices, and ought to do it gladly. But I am afraid I don\'t And Meg shook her head, as she thought regretfully of all the pretty things she wanted.

But I don\'t think the little we should spend would do any good. We\'ve each got a dollar, and the army wouldn\'t be much helped by our giving that. I agree not to expect anything from Mother or you, but I do want to buy UNDINE AND SINTRAM for myself. I\'ve wanted it so long, said Jo, who was a bookworm.

I planned to spend mine in new music, said Beth, with a little sigh, which no one heard but the hearth brush and kettle holder.

I shall get a nice box of Faber\'s drawing pencils. I really need them, said Amy decidedly.

Mother didn\'t say anything about our money, and she won\'t wish us to give up everything. Let\'s each buy what we want, and have a little fun. I\'m sure we work hard enough to earn it, cried Jo, examining the heels of her shoes in a gentlemanly manner.

I know I do—teaching those tiresome children nearly all day, when I\'m longing to enjoy myself at home, began Meg, in the complaining tone again.

You don\'t have half such a hard time as I do, said Jo. How would you like to be shut up for hours with a nervous, fussy old lady, who keeps you trotting, is never satisfied, and worries you till you you\'re ready to fly out the window or cry?

It\'s naughty to fret, but I do think washing dishes and keeping things tidy is the worst work in the world. It makes me cross, and my hands get so stiff, I can\'t practice well at all. And Beth looked at her rough hands with a sigh that any one could hear that time.

I don\'t believe any of you suffer as I do, cried Amy, for you don\'t have to go to school with impertinent girls, who plague you if you don\'t know your lessons, and laugh at your dresses, and label your father if he isn\'t rich, and insult you when your nose isn\'t nice.

If you mean libel, I\'d say so, and not talk about labels, as if Papa was a pickle bottle, advised Jo, laughing.

I know what I mean, and you needn\'t be satirical about it. It\'s proper to use good words, and improve your vocabulary, returned Amy, with dignity.

Don\'t peck at one another, children. Don\'t you wish we had the money Papa lost when we were little, Jo? Dear me! How happy and good we\'d be, if we had no worries! said Meg, who could remember better times.

You said the other day you thought we were a deal happier than the King children, for they were fighting and fretting all the time, in spite of their money.

So I did, Beth. Well, I think we are. For though we do have to work, we make fun of ourselves, and are a pretty jolly set, as Jo would say.

Jo does use such slang words! observed Amy, with a reproving look at the long figure stretched on the rug.

Jo immediately sat up, put her hands in her pockets, and began to whistle.

Don\'t, Jo. It\'s so boyish!

That\'s why I do it.

I detest rude, unladylike girls!

I hate affected, niminy-piminy chits!

Birds in their little nests agree, sang Beth, the peacemaker, with such a funny face that both sharp voices softened to a laugh, and the pecking ended for that time.

Really, girls, you are both to be blamed, said Meg, beginning to lecture in her elder-sisterly fashion. You are old enough to leave off boyish tricks, and to behave better, Josephine. It didn\'t matter so much when you were a little girl, but now you are so tall, and turn up your hair, you should remember that you are a young lady.

I\'m not! And if turning up my hair makes me one, I\'ll wear it in two tails till I\'m twenty, cried Jo, pulling off her net, and shaking down a chestnut mane. I hate to think I\'ve got to grow up, and be Miss March, and wear long gowns, and look as prim as a China Aster! It\'s bad enough to be a girl, anyway, when I like boy\'s games and work and manners! I can\'t get over my disappointment in not being a boy. And it\'s worse than ever now, for I\'m dying to go and fight with Papa. And I can only stay home and knit, like a poky old woman!

And Jo shook the blue army sock till the needles rattled like castanets, and her ball bounded across the room.

Poor Jo! It\'s too bad, but it can\'t be helped. So you must try to be contented with making your name boyish, and playing brother to us girls, said Beth, stroking the rough head with a hand that all the dish washing and dusting in the world could not make ungentle in its touch.

As for you, Amy, continued Meg, you are altogether to particular and prim. Your airs are funny now, but you\'ll grow up an affected little goose, if you don\'t take care. I I like your nice manners and refined ways of speaking, when you don\'t try to be elegant. But your absurd words are as bad as Jo\'s slang.

If Jo is a tomboy and Amy a goose, what am I, please? asked Beth, ready to share the lecture.

You\'re a dear, and nothing else, answered Meg warmly, and no one contradicted her, for the \'Mouse\' was the pet of the family.

- -

Little Women - Chapter One - Playing Pilgrims

- -

Christmas won\'t be Christmas without any presents, grumbled Jo, lying on the rug.

It\'s so dreadful to be poor! sighed Meg, looking down at her old dress.

I don\'t think it\'s fair for some girls to have plenty of pretty things, and other girls nothing at all, added little Amy, with an injured sniff.

We\'ve got Father and Mother, and each other, said Beth contentedly from her corner.

The four young faces on which the firelight shone brightened at the cheerful words, but darkened again as Jo said sadly, We haven\'t got Father, and shall not have him for a long time. She didn\'t say perhaps never, but each silently added it, thinking of Father far away, where the fighting was.

Nobody spoke for a minute; then Meg said in an altered tone, You know the reason Mother proposed not having any presents this Christmas was because it is going to be a hard winter for everyone; and she thinks we ought not to spend money for pleasure, when our men are suffering so in the army. We can\'t do much, but we can make our little sacrifices, and ought to do it gladly. But I am afraid I don\'t And Meg shook her head, as she thought regretfully of all the pretty things she wanted.

But I don\'t think the little we should spend would do any good. We\'ve each got a dollar, and the army wouldn\'t be much helped by our giving that. I agree not to expect anything from Mother or you, but I do want to buy UNDINE AND SINTRAM for myself. I\'ve wanted it so long, said Jo, who was a bookworm.

I planned to spend mine in new music, said Beth, with a little sigh, which no one heard but the hearth brush and kettle holder.

I shall get a nice box of Faber\'s drawing pencils. I really need them, said Amy decidedly.

Mother didn\'t say anything about our money, and she won\'t wish us to give up everything. Let\'s each buy what we want, and have a little fun. I\'m sure we work hard enough to earn it, cried Jo, examining the heels of her shoes in a gentlemanly manner.

I know I do—teaching those tiresome children nearly all day, when I\'m longing to enjoy myself at home, began Meg, in the complaining tone again.

You don\'t have half such a hard time as I do, said Jo. How would you like to be shut up for hours with a nervous, fussy old lady, who keeps you trotting, is never satisfied, and worries you till you you\'re ready to fly out the window or cry?

It\'s naughty to fret, but I do think washing dishes and keeping things tidy is the worst work in the world. It makes me cross, and my hands get so stiff, I can\'t practice well at all. And Beth looked at her rough hands with a sigh that any one could hear that time.

I don\'t believe any of you suffer as I do, cried Amy, for you don\'t have to go to school with impertinent girls, who plague you if you don\'t know your lessons, and laugh at your dresses, and label your father if he isn\'t rich, and insult you when your nose isn\'t nice.

If you mean libel, I\'d say so, and not talk about labels, as if Papa was a pickle bottle, advised Jo, laughing.

I know what I mean, and you needn\'t be satirical about it. It\'s proper to use good words, and improve your vocabulary, returned Amy, with dignity.

Don\'t peck at one another, children. Don\'t you wish we had the money Papa lost when we were little, Jo? Dear me! How happy and good we\'d be, if we had no worries! said Meg, who could remember better times.

You said the other day you thought we were a deal happier than the King children, for they were fighting and fretting all the time, in spite of their money.

So I did, Beth. Well, I think we are. For though we do have to work, we make fun of ourselves, and are a pretty jolly set, as Jo would say.

Jo does use such slang words! observed Amy, with a reproving look at the long figure stretched on the rug.

Jo immediately sat up, put her hands in her pockets, and began to whistle.

Don\'t, Jo. It\'s so boyish!

That\'s why I do it.

I detest rude, unladylike girls!

I hate affected, niminy-piminy chits!

Birds in their little nests agree, sang Beth, the peacemaker, with such a funny face that both sharp voices softened to a laugh, and the pecking ended for that time.

Really, girls, you are both to be blamed, said Meg, beginning to lecture in her elder-sisterly fashion. You are old enough to leave off boyish tricks, and to behave better, Josephine. It didn\'t matter so much when you were a little girl, but now you are so tall, and turn up your hair, you should remember that you are a young lady.

I\'m not! And if turning up my hair makes me one, I\'ll wear it in two tails till I\'m twenty, cried Jo, pulling off her net, and shaking down a chestnut mane. I hate to think I\'ve got to grow up, and be Miss March, and wear long gowns, and look as prim as a China Aster! It\'s bad enough to be a girl, anyway, when I like boy\'s games and work and manners! I can\'t get over my disappointment in not being a boy. And it\'s worse than ever now, for I\'m dying to go and fight with Papa. And I can only stay home and knit, like a poky old woman!

And Jo shook the blue army sock till the needles rattled like castanets, and her ball bounded across the room.

Poor Jo! It\'s too bad, but it can\'t be helped. So you must try to be contented with making your name boyish, and playing brother to us girls, said Beth, stroking the rough head with a hand that all the dish washing and dusting in the world could not make ungentle in its touch.

As for you, Amy, continued Meg, you are altogether to particular and prim. Your airs are funny now, but you\'ll grow up an affected little goose, if you don\'t take care. I I like your nice manners and refined ways of speaking, when you don\'t try to be elegant. But your absurd words are as bad as Jo\'s slang.

If Jo is a tomboy and Amy a goose, what am I, please? asked Beth, ready to share the lecture.

You\'re a dear, and nothing else, answered Meg warmly, and no one contradicted her, for the \'Mouse\' was the pet of the family.

- -'; - -//============================================================== -//============================================================== -//============================================================== - - -include("../mpdf.php"); - -$mpdf=new mPDF('c','A4','','',32,25,27,25,16,13); - -$mpdf->mirrorMargins = 1; -$mpdf->SetDisplayMode('fullpage','two'); -$mpdf->useOnlyCoreFonts = true; -$mpdf->defaultfooterfontsize = 13; -$mpdf->AddPage(); -$mpdf->Image('clematis.jpg',0,0,210,297,'jpg','',true, false); // e.g. the last "false" allows a full page picture -$mpdf->y = 70; -$mpdf->Shaded_box('mPDF Example File', 'Arial', '', 28, '70%', 'DF', 3, '#FFFFFF', '#000044', 10); - -$mpdf->AddPage(); -$mpdf->SetFooter('{PAGENO}'); -$mpdf->WriteHTML($html); - - -$mpdf->AddPage('','NEXT-EVEN'); -$mpdf->SetFooter(); -$mpdf->SetAlpha(0.5); -$mpdf->Image('clematis.jpg',0,0,210,297,'jpg','',true, false); // e.g. the last "false" allows a full page picture -$mpdf->SetAlpha(1); - -$mpdf->writeBarcode('978-0-9542246-0-8', 1, 130, 230, 1,0, 3,3,4,4); - -// Save the pages to a file -$mpdf->Output('test.pdf','F'); -//============================================================== -//============================================================== -//============================================================== -//============================================================== -//============================================================== -//============================================================== -//============================================================== - -function GetBookletPages($np, $backcover=true) { - $lastpage = $np; - $np = 4*ceil($np/4); - $pp = array(); - for ($i=1; $i<=$np/2; $i++) { - $p1 = $np - $i + 1; - if ($backcover) { - if ($i == 1) { $p1 = $lastpage; } - else if ($p1 >= $lastpage) { $p1 = 0; } - } - if ($i % 2 == 1) { - $pp[] = array( $p1, $i ); - } - else { - $pp[] = array( $i, $p1 ); - } - } - return $pp; -} - - - -$mpdf=new mPDF('','A4-L','','',0,0,0,0,0,0); -$mpdf->SetImportUse(); -$ow = $mpdf->h; -$oh = $mpdf->w; -$pw = $mpdf->w / 2; -$ph = $mpdf->h; - -$mpdf->SetDisplayMode('fullpage'); - -$pagecount = $mpdf->SetSourceFile('test.pdf'); -$pp = GetBookletPages($pagecount); - -foreach($pp AS $v) { - $mpdf->AddPage(); - if ($v[0]>0 && $v[0]<=$pagecount) { - $tplIdx = $mpdf->ImportPage($v[0], 0,0,$ow,$oh); - $mpdf->UseTemplate($tplIdx, 0, 0, $pw, $ph); - } - if ($v[1]>0 && $v[1]<=$pagecount) { - $tplIdx = $mpdf->ImportPage($v[1], 0,0,$ow,$oh); - $mpdf->UseTemplate($tplIdx, $pw, 0, $pw, $ph); - } -} - -$mpdf->Output(); - -exit; - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/example44_MPDFI_yearbook.php b/public_html/2022/newcms/pdf/examples/example44_MPDFI_yearbook.php deleted file mode 100644 index 2420b9f..0000000 --- a/public_html/2022/newcms/pdf/examples/example44_MPDFI_yearbook.php +++ /dev/null @@ -1,150 +0,0 @@ - -div { text-align: justify; } - -

Joanne Smith 2002-2007

This is the normal text in the div: Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque, risus at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci.
-'; - -$html2 = ' - -

Tim Another 2001-2007

This is the normal text in the div: Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque, risus at eleifend lacus sapien et risus. Phasellus metus, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci.
-Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci.
-'; - -for($i=1; $i<=10; $i++) { - // $html = $html; - if ($i % 3 == 1) { $html = $html2; } - else { $html = $html1; } - $pph[$i] = SinglePage($html, $pw, $ph, $minK) ; // $pph saves the actual height of each page -} -//============================================================== -// Save the pages to a file -$mpdf->Output('test.pdf','F'); - -// Now collate those pages using IMPORT - 4 pages to one page - -$mpdf=new mPDF(); -$mpdf->SetImportUse(); -$mpdf->SetDisplayMode('fullpage'); - -$mpdf->SetHeader('{DATE j-m-Y}|My Yearbook 2005|{PAGENO}'); -$mpdf->SetFooter('|Printed using mPDF|'); - -$pagecount = $mpdf->SetSourceFile('test.pdf'); -for($i=1; $i<=$pagecount; $i++) { - if ($i % 4 == 1) { $mpdf->AddPage(); } - $pgheight = $mpdf->h - $mpdf->tMargin - $mpdf->bMargin; - $hspacing = min($spacing,($mpdf->pgwidth - $pw*2) ); - $vspacing = min($spacing,($pgheight - $ph*2) ); - $x1 = $mpdf->lMargin + ($mpdf->pgwidth/2 - $hspacing/2 - $pw)/2; - $x2 = $mpdf->lMargin + $mpdf->pgwidth/2 + $hspacing/2 + ($mpdf->pgwidth/2 - $hspacing/2 - $pw)/2; - $y1 = $mpdf->tMargin + ($pgheight /2 - $vspacing/2 - $ph)/2; - $y2 = $mpdf->tMargin + $pgheight /2 + $vspacing/2 + ($pgheight /2 - $vspacing/2 - $ph)/2; - if ($i % 4 == 1) { $x = $x1; $y = $y1; } - else if ($i % 4 == 2) { $x = $x2; $y = $y1; } - else if ($i % 4 == 3) { $x = $x1; $y = $y2; } - else if ($i % 4 == 0) { $x = $x2; $y = $y2; } - $tplIdx = $mpdf->ImportPage($i, 0,0,$pw,$pph[$i]); - - if ($align=='T') { $mpdf->UseTemplate($tplIdx, $x, $y, $pw, $pph[$i]); } - else { $mpdf->UseTemplate($tplIdx, $x, ($y + (($ph - $pph[$i])/2)), $pw, $pph[$i]); } - - if ($border >= 0) { $mpdf->Rect($x-$border, $y-$border, $pw+2*$border, $ph+2*$border); } -} - -$mpdf->Output(); - -exit; - -//============================================================== -function SinglePage($html, $pw, $ph, $minK=1, $inc=0.1) { -// returns height of page -global $mpdf; - $mpdf->AddPage('','','','','','',($mpdf->w - $pw),'',($mpdf->h - $ph),0,0); - $k = 1; - - $currpage = $mpdf->page; - $mpdf->WriteHTML($html); - - $newpage = $mpdf->page; - while($currpage != $newpage) { - for($u=0;$u<=($newpage-$currpage);$u++) { - // DELETE PAGE - the added page - unset($mpdf->pages[$mpdf->page]); - if (isset($mpdf->ktAnnots[$mpdf->page])) { unset( $mpdf->ktAnnots[$mpdf->page] ); } - if (isset($mpdf->tbrot_Annots[$mpdf->page])) { unset( $mpdf->tbrot_Annots[$mpdf->page] ); } - if (isset($mpdf->kwt_Annots[$mpdf->page])) { unset( $mpdf->kwt_Annots[$mpdf->page] ); } - if (isset($mpdf->PageAnnots[$mpdf->page])) { unset( $mpdf->PageAnnots[$mpdf->page] ); } - if (isset($mpdf->ktBlock[$mpdf->page])) { unset( $mpdf->ktBlock[$mpdf->page] ); } - if (isset($mpdf->PageLinks[$mpdf->page])) { unset( $mpdf->PageLinks[$mpdf->page] ); } - if (isset($mpdf->pageoutput[$mpdf->page])) { unset( $mpdf->pageoutput[$mpdf->page] ); } - // Go to page before - so can addpage - $mpdf->page--; - } - // mPDF 2.4 Float Images - if (count($mpdf->floatbuffer)) { - $mpdf->objectbuffer[] = $mpdf->floatbuffer['objattr']; - $mpdf->printobjectbuffer(false); - $mpdf->objectbuffer = array(); - $mpdf->floatbuffer = array(); - $mpdf->float = false; - } - - - $k += $inc; - if ((1/$k) < $minK) { die("Page no. ".$mpdf->page." is too large to fit"); } - $w = $pw * $k; - $h = $ph * $k; - $mpdf->_beginpage('','',($mpdf->w - $w),'',($mpdf->h - $h)); - $currpage = $mpdf->page; - - $mpdf->_out('2 J'); - $mpdf->_out(sprintf('%.2f w',0.1*$mpdf->k)); - $mpdf->SetFont($mpdf->default_font,'',$mpdf->default_font_size ,true,true); // forces write - $mpdf->SetDrawColor(0); - $mpdf->SetFillColor(255); - $mpdf->SetTextColor(0); - $mpdf->ColorFlag=false; - - // Start Transformation - $mpdf->StartTransform(); - $mpdf->transformScale((100/$k), (100/$k), 0, 0); - - $mpdf->WriteHTML($html); - - $newpage = $mpdf->page; - - //Stop Transformation - $mpdf->StopTransform(); - } - return ($mpdf->y / $k); -} -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/example46_progress_bars_simple.php b/public_html/2022/newcms/pdf/examples/example46_progress_bars_simple.php deleted file mode 100644 index a0bddac..0000000 --- a/public_html/2022/newcms/pdf/examples/example46_progress_bars_simple.php +++ /dev/null @@ -1,1595 +0,0 @@ - - - - - - - - -
mPDF Example File
-
- -
mPDF Example File
-
- -
{PAGENO}/{nbpg}
-
- -
{PAGENO}/{nbpg}
-
- - - - - - - -
- -
- -
-
-mPDF Example File -
-
- - - -

The front cover can also be produced like this:

- -
'. nl2br(htmlspecialchars('/* ALTERNATIVE PHP METHOD */ -$mpdf->Image(\'clematis.jpg\',0,0,210,297,\'jpg\',\'\',true, false); -// the last "false" allows a full page picture - -$mpdf->y = 70; -$mpdf->Shaded_box(\'mPDF Example File\', \'Trebuchet\', \'\', 28, \'70%\', \'DF\', 3, \'#FFFFFF\', \'#000044\', 10); -')) .'
- - - - - - - - - - - - - -

(H1) mPDF

-

(H2) Section 1

-

(H3) HTML Markup

- - - - -

Heading 4

-
Heading 5
-
Heading 6
-

P: Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci.

- -
- -
DIV: Proin aliquet lorem id felis. Curabitur vel libero at mauris nonummy tincidunt. Donec imperdiet. Vestibulum sem sem, lacinia vel, molestie et, laoreet eget, urna. Curabitur viverra faucibus pede. Morbi lobortis. Donec dapibus. Donec tempus. Ut arcu enim, rhoncus ac, venenatis eu, porttitor mollis, dui. Sed vitae risus. In elementum sem placerat dui. Nam tristique eros in nisl. Nulla cursus sapien non quam porta porttitor. Quisque dictum ipsum ornare tortor. Fusce ornare tempus enim.
-
DIV: Proin aliquet lorem id felis. Curabitur vel libero at mauris nonummy tincidunt. Donec imperdiet. Vestibulum sem sem, lacinia vel, molestie et, laoreet eget, urna. Curabitur viverra faucibus pede. Morbi lobortis. Donec dapibus. Donec tempus. Ut arcu enim, rhoncus ac, venenatis eu, porttitor mollis, dui. Sed vitae risus. In elementum sem placerat dui. Nam tristique eros in nisl. Nulla cursus sapien non quam porta porttitor. Quisque dictum ipsum ornare tortor. Fusce ornare tempus enim.
- -
Blockquote: Maecenas arcu justo, malesuada eu, dapibus ac, adipiscing vitae, turpis. Fusce mollis. Aliquam egestas. In purus dolor, facilisis at, fermentum nec, molestie et, metus. Maecenas arcu justo, malesuada eu, dapibus ac, adipiscing vitae, turpis. Fusce mollis. Aliquam egestas. In purus dolor, facilisis at, fermentum nec, molestie et, metus.
- -
Address: Vestibulum feugiat, orci at imperdiet tincidunt, mauris erat facilisis urna, sagittis ultricies dui nisl et lectus. Sed lacinia, lectus vitae dictum sodales, elit ipsum ultrices orci, non euismod arcu diam non metus.
- -
PRE: Cum sociis natoque penatibus et magnis dis parturient montes, 
-nascetur ridiculus mus. In suscipit turpis vitae odio. Integer convallis 
-dui at metus. Fusce magna. Sed sed lectus vitae enim tempor cursus. Cras 
-sed, posuere et, urna. Quisque ut leo. Aliquam interdum hendrerit tortor. 
-Vestibulum elit. Vestibulum et arcu at diam mattis commodo. Nam ipsum sem, 
-ultricies at, rutrum sit amet, posuere nec, velit. Sed molestie mollis dui.
- - - -
Styles - tt(teletype) italic bold big small emphasis strong
new lines
-code sample keyboard variable citation abbr. ACRONYM sup sub strike strike-s underline delete insert To be or not to be font changing face, size and color -
- -

Paragraph using the in-line style to determine the font-size (15pt) and colour

- - -

Testing BIG, SMALL, UNDERLINE, STRIKETHROUGH, FONT color, ACRONYM, SUPERSCRIPT and SUBSCRIPT

-

This is strikethrough in block and small strikethrough in small span and big strikethrough in big span and then underline and strikethrough and sup but out of span again but blue font and ACRONYM text

- -

This is a green reference32-47 and underlined reference32-47 then reference32-47 and underlined reference32-47 then Strikethrough reference32-47 and strikethrough reference32-47

- -

Repeated in BIG: This is reference32-47 and underlined reference32-47 then reference32-47 and underlined reference32-47 but out of span again but blue font and ACRONYM text

- -

Repeated in small: This is reference32-47 and underlined reference32-47 then reference32-47 and underlined reference32-47 but out of span again but blue font and ACRONYM text

- -

The above repeated, but starting with a paragraph with font-size specified (7pt)

- -

This is strikethrough in block and small strikethrough in small span and then underline but out of span again but blue font and ACRONYM text

- -

This is strikethrough in block and big strikethrough in big span and then underline but out of span again but blue font and ACRONYM text

- -

This is reference32-47 and underlined reference32-47 then reference32-47 and underlined reference32-47 then Strikethrough reference32-47 and strikethrough reference32-47

- -

This tests underline and strikethrough when they are used together as they both use text-decoration

- - -

Repeated in small: This is reference32-47 and underlined reference32-47 then reference32-47 and underlined reference32-47 but out of span again but blue font and ACRONYM text

- -

Repeated in BIG but with font-size set to 7pt by in-line css: This is reference32-47 and underlined reference32-47 then reference32-47 and underlined reference32-47 but out of span again but blue font and ACRONYM text

- -
    -
  1. Item 1
  2. -
  3. Item 232
  4. -
  5. Item 3
  6. -
  7. Praesent pharetra nulla in turpis. Sed ipsum nulla, sodales nec, vulputate in, scelerisque vitae, magna. Sed egestas justo nec ipsum. Nulla facilisi. Praesent sit amet pede quis metus aliquet vulputate. Donec luctus. Cras euismod tellus vel leo. -
      -
    • Praesent pharetra nulla in turpis. Sed ipsum nulla, sodales nec, vulputate in, scelerisque vitae, magna. Sed egestas justo nec ipsum. Nulla facilisi. Praesent sit amet pede quis metus aliquet vulputate. Donec luctus. Cras euismod tellus vel leo.
    • -
    • Subitem 2 -
        -
      • -Level 3 subitem -
      • -
      -
    • -
    -
  8. -
  9. Item 5
  10. -
- -

Sed bibendum. Nunc eleifend ornare velit. Sed consectetuer urna in erat. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Mauris sodales semper metus. Maecenas justo libero, pretium at, malesuada eu, mollis et, arcu. Ut suscipit pede in nulla. Praesent elementum, dolor ac fringilla posuere, elit libero rutrum massa, vel tincidunt dui tellus a ante. Sed aliquet euismod dolor. Vestibulum sed dui. Duis lobortis hendrerit quam. Donec tempus orci ut libero. Pellentesque suscipit malesuada nisi.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
DataDataDataData
2nd line
More DataMore DataMore DataData
2nd line
DataDataDataData
2nd line
DataDataDataData
2nd line
- -This paragraph has border-radius and background-gradient set. Minimum padding is recommended as 1/3rd of the border-radius. Or can use $mpdf->autoPadding. -

Sed bibendum. Nunc eleifend ornare velit. Sed consectetuer urna in erat. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Mauris sodales semper metus. Maecenas justo libero, pretium at, malesuada eu, mollis et, arcu. Ut suscipit pede in nulla. Praesent elementum, dolor ac fringilla posuere, elit libero rutrum massa, vel tincidunt dui tellus a ante. Sed aliquet euismod dolor. Vestibulum sed dui. Duis lobortis hendrerit quam. Donec tempus orci ut libero. Pellentesque suscipit malesuada nisi.

- - - - - -

Hyphenation

- -

Little Women - Chapter One - Playing Pilgrims

- - -

Christmas won\'t be Christmas without any presents, grumbled Jo, lying on the rug.

It\'s so dreadful to be poor! sighed Meg, looking down at her old dress.

I don\'t think it\'s fair for some girls to have plenty of pretty things, and other girls nothing at all, added little Amy, with an injured sniff.

We\'ve got Father and Mother, and each other, said Beth contentedly from her corner.

The four young faces on which the firelight shone brightened at the cheerful words, but darkened again as Jo said sadly, We haven\'t got Father, and shall not have him for a long time. She didn\'t say perhaps never, but each silently added it, thinking of Father far away, where the fighting was.

Nobody spoke for a minute; then Meg said in an altered tone, You know the reason Mother proposed not having any presents this Christmas was because it is going to be a hard winter for everyone; and she thinks we ought not to spend money for pleasure, when our men are suffering so in the army. We can\'t do much, but we can make our little sacrifices, and ought to do it gladly. But I am afraid I don\'t And Meg shook her head, as she thought regretfully of all the pretty things she wanted.

But I don\'t think the little we should spend would do any good. We\'ve each got a dollar, and the army wouldn\'t be much helped by our giving that. I agree not to expect anything from Mother or you, but I do want to buy UNDINE AND SINTRAM for myself. I\'ve wanted it so long, said Jo, who was a bookworm.

I planned to spend mine in new music, said Beth, with a little sigh, which no one heard but the hearth brush and kettle holder.

I shall get a nice box of Faber\'s drawing pencils. I really need them, said Amy decidedly.

Mother didn\'t say anything about our money, and she won\'t wish us to give up everything. Let\'s each buy what we want, and have a little fun. I\'m sure we work hard enough to earn it, cried Jo, examining the heels of her shoes in a gentlemanly manner.

I know I do—teaching those tiresome children nearly all day, when I\'m longing to enjoy myself at home, began Meg, in the complaining tone again.

You don\'t have half such a hard time as I do, said Jo. How would you like to be shut up for hours with a nervous, fussy old lady, who keeps you trotting, is never satisfied, and worries you till you you\'re ready to fly out the window or cry?

It\'s naughty to fret, but I do think washing dishes and keeping things tidy is the worst work in the world. It makes me cross, and my hands get so stiff, I can\'t practice well at all. And Beth looked at her rough hands with a sigh that any one could hear that time.

I don\'t believe any of you suffer as I do, cried Amy, for you don\'t have to go to school with impertinent girls, who plague you if you don\'t know your lessons, and laugh at your dresses, and label your father if he isn\'t rich, and insult you when your nose isn\'t nice.

If you mean libel, I\'d say so, and not talk about labels, as if Papa was a pickle bottle, advised Jo, laughing.

I know what I mean, and you needn\'t be satirical about it. It\'s proper to use good words, and improve your vocabulary, returned Amy, with dignity.

Don\'t peck at one another, children. Don\'t you wish we had the money Papa lost when we were little, Jo? Dear me! How happy and good we\'d be, if we had no worries! said Meg, who could remember better times.

You said the other day you thought we were a deal happier than the King children, for they were fighting and fretting all the time, in spite of their money.

So I did, Beth. Well, I think we are. For though we do have to work, we make fun of ourselves, and are a pretty jolly set, as Jo would say.

Jo does use such slang words! observed Amy, with a reproving look at the long figure stretched on the rug.

Jo immediately sat up, put her hands in her pockets, and began to whistle.

Don\'t, Jo. It\'s so boyish!

That\'s why I do it.

I detest rude, unladylike girls!

I hate affected, niminy-piminy chits!

Birds in their little nests agree, sang Beth, the peacemaker, with such a funny face that both sharp voices softened to a laugh, and the pecking ended for that time.

Really, girls, you are both to be blamed, said Meg, beginning to lecture in her elder-sisterly fashion. You are old enough to leave off boyish tricks, and to behave better, Josephine. It didn\'t matter so much when you were a little girl, but now you are so tall, and turn up your hair, you should remember that you are a young lady.

I\'m not! And if turning up my hair makes me one, I\'ll wear it in two tails till I\'m twenty, cried Jo, pulling off her net, and shaking down a chestnut mane. I hate to think I\'ve got to grow up, and be Miss March, and wear long gowns, and look as prim as a China Aster! It\'s bad enough to be a girl, anyway, when I like boy\'s games and work and manners! I can\'t get over my disappointment in not being a boy. And it\'s worse than ever now, for I\'m dying to go and fight with Papa. And I can only stay home and knit, like a poky old woman!

And Jo shook the blue army sock till the needles rattled like castanets, and her ball bounded across the room.

Poor Jo! It\'s too bad, but it can\'t be helped. So you must try to be contented with making your name boyish, and playing brother to us girls, said Beth, stroking the rough head with a hand that all the dish washing and dusting in the world could not make ungentle in its touch.

As for you, Amy, continued Meg, you are altogether to particular and prim. Your airs are funny now, but you\'ll grow up an affected little goose, if you don\'t take care. I I like your nice manners and refined ways of speaking, when you don\'t try to be elegant. But your absurd words are as bad as Jo\'s slang.

If Jo is a tomboy and Amy a goose, what am I, please? asked Beth, ready to share the lecture.

You\'re a dear, and nothing else, answered Meg warmly, and no one contradicted her, for the \'Mouse\' was the pet of the family.

- - - - - - - - - - -

Lists

-
-
    -
  1. Text here lorem ipsum ibisque totum.
  2. -
  3. Text here lorem ipsum ibisque totum.
  4. -
  5. Text here lorem ipsum ibisque totum.
  6. -
  7. Text here lorem ipsum ibisque totum. Text here lorem ipsum ibisque totum. Text here lorem ipsum ibisque totum. Text here lorem ipsum ibisque totum. Text here lorem ipsum ibisque totum. Text here lorem ipsum ibisque totum.
  8. -
  9. Text here lorem ipsum ibisque totum.
  10. -
  11. Text here lorem ipsum ibisque totum. -
      -
    1. Text here lorem ipsum ibisque totum.
    2. -
    3. Text here lorem ipsum ibisque totum.
    4. -
    5. Text here lorem ipsum ibisque totum.
    6. -
    7. Text here lorem ipsum ibisque totum.
    8. -
    9. Text here lorem ipsum ibisque totum.
    10. -
    11. Text here lorem ipsum ibisque totum. -
        -
      1. Big text indent 25mm: Text here lorem ipsum ibisque totum.
      2. -
      3. Text here lorem ipsum ibisque totum. -
      4. -
      5. Text here lorem ipsum ibisque totum. -
          -
        1. Text here lorem ipsum ibisque totum.
        2. -
        3. Text here lorem ipsum ibisque totum.
        4. -
        5. Text here lorem ipsum ibisque totum.
        6. -
        7. Text here lorem ipsum ibisque totum.
        8. -
        9. Text here lorem ipsum ibisque totum. -
            -
          1. Text here lorem ipsum ibisque totum.
          2. -
          3. Text here lorem ipsum ibisque totum.
          4. -
          5. Text here lorem ipsum ibisque totum.
          6. -
          7. Text here lorem ipsum ibisque totum.
          8. -
          9. Text here lorem ipsum ibisque totum.
          10. -
          -
        10. -
        11. Text here lorem ipsum ibisque totum.
        12. -
        13. Text here lorem ipsum ibisque totum.
        14. -
        15. Text here lorem ipsum ibisque totum.
        16. -
        17. Text here lorem ipsum ibisque totum.
        18. -
        -
      6. -
      7. Text here lorem ipsum ibisque totum.
      8. -
      -
    12. -
    13. Text here lorem ipsum ibisque totum.
    14. -
    15. Text here lorem ipsum ibisque totum.
    16. -
    17. Text here lorem ipsum ibisque totum.
    18. -
    19. Text here lorem ipsum ibisque totum.
    20. -
    -
  12. -
  13. Text here lorem ipsum ibisque totum.
  14. -
  15. Text here lorem ipsum ibisque totum. -
      -
    1. Big text indent 25mm: Text here lorem ipsum ibisque totum.
    2. -
    3. Text here lorem ipsum ibisque totum.
    4. -
    5. Text here lorem ipsum ibisque totum. -
        -
      1. Text here lorem ipsum ibisque totum.
      2. -
      3. Text here lorem ipsum ibisque totum.
      4. -
      5. Text here lorem ipsum ibisque totum.
      6. -
      7. Text here lorem ipsum ibisque totum. -
          -
        1. Text here lorem ipsum ibisque totum.
        2. -
        3. Text here lorem ipsum ibisque totum.
        4. -
        5. Text here lorem ipsum ibisque totum.
        6. -
        7. Text here lorem ipsum ibisque totum.
        8. -
        9. Text here lorem ipsum ibisque totum.
        10. -
        -
      8. -
      9. Text here lorem ipsum ibisque totum.
      10. -
      11. Text here lorem ipsum ibisque totum.
      12. -
      13. Text here lorem ipsum ibisque totum. -
          -
        1. No class specified. Text here lorem ipsum ibisque totum.
        2. -
        3. Text here lorem ipsum ibisque totum.
        4. -
        5. Text here lorem ipsum ibisque totum.
        6. -
        7. Text here lorem ipsum ibisque totum.
        8. -
        9. Text here lorem ipsum ibisque totum.
        10. -
        -
      14. -
      -
    6. -
    -
  16. -
  17. Text here lorem ipsum ibisque totum.
  18. -
  19. Text here lorem ipsum ibisque totum.
  20. -
  21. Text here lorem ipsum ibisque totum.
  22. -
  23. Text here lorem ipsum ibisque totum.
  24. -
  25. Text here lorem ipsum ibisque totum.
  26. -
  27. Text here lorem ipsum ibisque totum.
  28. -
  29. Text here lorem ipsum ibisque totum.
  30. -
-
- - - -

Tables

-

mPDF supports all in-line properties inside tables.

- - - - - - -
Row 1This is dataThis is data
Row 2 -

This is data p

-This is data out of p -

This is bold data p

-This is bold data out of p
-This is normal data after br -

Heading 3 inside a table

-Text here lorem ipsum ibisque totum.32 -
This is data div
-This is data out of div -
This is data div (bold)
-This is data out of div -
Also data
- -

This table has padding-top and -bottom set to 3mm i.e. padding within the cells. Also background-, border colour and style, font family and size are set by in-line CSS.

- - - - -
Row 1This is dataThis is data
Row 2

This is data p

More data

Row 3

This is long data

This is data
- - -

Tables

-

The style sheet used for these examples shows some of the table styles I use on my website. The property \'topntail\' defined by a border-type definition e.g. "1px solid #880000" puts a border at the top and bottom of the table, and also below a header row (thead) if defined. Note also that <thead> will automatically turn on the header-repeat i.e. reproduce the header row at the top of each page.

-

bpmTopic Class

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Row 1This is dataThis is data
Row 2 -

This is data p

-
-

More data

-
-

Row 3

-
-

This is long data

-
This is data
-

Row 4 <td> cell

-
This is data -

This is data

-
Row 5Also dataAlso data
Row 6Also dataAlso data
Row 7Also dataAlso data
Row 8Also dataAlso data
- -

 

- -

bpmTopicC Class (centered) Odd and Even rows

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Col/Row Header -

Second column header p

-
Third column header
Row header 1This is dataThis is data
Row header 2 -

This is data p

-
-

This is data

-
-

Row header 3

-
-

This is long data

-
This is data
-

Row header 4

-

<th> cell acting as header

-
This is data -

This is data

-
Row header 5Also dataAlso data
Row header 6Also dataAlso data
Row header 7Also dataAlso data
Row header 8Also dataAlso data
- -

 

- -

bpmTopnTail Class

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Row 1This is dataThis is data
Row 2 -

This is data p

-
-

This is data

-
-

Row 3

-
-

This is long data

-
This is data
-

Row 4 <td> cell

-
This is data -

This is data

-
Row 5Also dataAlso data
Row 6Also dataAlso data
Row 7Also dataAlso data
Row 8Also dataAlso data
-

 

-

bpmTopnTailC Class (centered) Odd and Even rows

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Col/Row Header -

Second column header p

-
Third column header
Row header 1This is dataThis is data
Row header 2 -

This is data p

-
-

This is data

-
-

Row header 3

-
-

This is long data

-
This is data
-

Row header 4

-

<th> cell acting as header

-
This is data -

This is data

-
Row header 5Also dataAlso data
Row header 6Also dataAlso data
Row header 7Also dataAlso data
Row header 8Also dataAlso data
- -

 

- -

TopnTail Class

- - - - - - - - - - - - - - - - - - - - - - - - - -
Col and Row Header -

Second

-

column

-
Top right align
-

Row header 1 p

-
This is dataThis is data
Row header 2Bottom right align -

This is data. Can use

-

bold italic sub or sup text

-
-

Bottom right align

-
-

This is data. This cell

-

uses Cell Styles to set

-

the borders.

-

All borders are collapsible

-

in mPDF.

-
This is data
Row header 4 -

This is data p

-
More data
Row header 5Also data merged and centered
- -

 

- -

Lists in a Table

- - - - - - - - - - - - - - -
Col and Row Header -

Second

-

column

-
Top right align
-

Row header 1 p

-
This is dataThis is data
Row header 2 -
    -
  1. Item 1
  2. -
  3. Item 2 -
      -
    1. Subitem of ordered list
    2. -
    3. Subitem 2 -
        -
      1. Level 3 subitem
      2. -
      3. Level 3 subitem
      4. -
      -
    4. -
    -
  4. -
  5. Item 3
  6. -
  7. Another Item
  8. -
  9. Subitem -
      -
    1. Level 3 subitem
    2. -
    -
  10. -
  11. Another Item
  12. -
-
-Unordered list: -
    -
  • Item 1
  • -
  • Item 2 -
      -
    • Subitem of unordered list
    • -
    • Subitem 2 -
        -
      • Level 3 subitem
      • -
      • Level 3 subitem
      • -
      • Level 3 subitem
      • -
      -
    • -
    -
  • -
  • Item 3
  • -
-
-

 

- - -

Automatic Column Width

- - - - - - - - - -
CausesNulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit.
-Ut a eros at ligula vehicula pretium; maecenas feugiat pede vel risus.
-Suspendisse potenti
MechanismsUt magna ipsum, tempus in, condimentum at, rutrum et, nisl. Vestibulum interdum luctus sapien. Quisque viverra. Etiam id libero at magna pellentesque aliquet. Nulla sit amet ipsum id enim tempus dictum. Maecenas consectetuer eros quis massa. Mauris semper velit vehicula purus. Duis lacus. Aenean pretium consectetuer mauris. Ut purus sem, consequat ut, fermentum sit amet, ornare sit amet, ipsum. Donec non nunc. Maecenas fringilla. Curabitur libero. In dui massa, malesuada sit amet, hendrerit vitae, viverra nec, tortor. Donec varius. Ut ut dolor et tellus adipiscing adipiscing.
- - -

Column span

- - - - - - - - - - -
CausesNulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit.
-Ut a eros at ligula vehicula pretium; maecenas feugiat pede vel risus.
-Suspendisse potenti
MechanismsFusce eleifend neque sit amet erat.
-Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus.
Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla.
-Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien.
- - - -

Header & Footer Rows

-

A table using a header or footer row should repeat the header/footer row across pages:

-

bpmTopicC Class

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Col and Row Header -

Second column header

-
Third column header
Col and Row Footer -

Second column footer

-
Third column footer
Row header 1This is dataThis is data
Row header 2This is data -

This is data

-
-

Row header 3

-
-

This is data

-
This is data
Row header 4This is data -

This is data

-
Row header 5Also dataAlso data
Row header 6Also dataAlso data
Row header 7Also dataAlso data
Row header 8Also dataAlso data
Row header 9Also dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
-

 

- -

Autosizing Tables

-

Periodic Table of elements. Tables are set by default to reduce font size if complete words will not fit inside each cell, to a maximum of 1/1.4 * the set font-size. This value can be changed by setting $mpdf->shrink_tables_to_fit=1.8 or using html attribute <table autosize="1.8">.

- -
Periodic Table
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1A2A3B4B5B6B7B8B8B8B1B2B3A4A5A6A7A8A
H He
Li Be B C N O F Ne
Na Mg Al Si P S Cl Ar
K Ca Sc Ti V Cr Mn Fe Co Ni Cu Zn Ga Ge As Se Br Kr
Rb Sr Y Zr Nb Mo Tc Ru Rh Pd Ag Cd In Sn Sb Te I Xe
Cs Ba La Hf Ta W Re Os Ir Pt Au Hg Tl Pb Bi Po At Rn
Fr Ra Ac
Ce Pr Nd Pm Sm Eu Gd Tb Dy Ho Er Tm Yb Lu
Th Pa U Np Pu Am Cm Bk Cf Es Fm Md No Lr
- - - -

Rotated Tables

-

This is set to rotate -90 degrees (counterclockwise).

- -
Periodic Table
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1A2A3B4B5B6B7B8B8B8B1B2B3A4A5A6A7A8A
H He
Li Be B C N O F Ne
Na Mg Al Si P S Cl Ar
K Ca Sc Ti V Cr Mn Fe Co Ni Cu Zn Ga Ge As Se Br Kr
Rb Sr Y Zr Nb Mo Tc Ru Rh Pd Ag Cd In Sn Sb Te I Xe
Cs Ba La Hf Ta W Re Os Ir Pt Au Hg Tl Pb Bi Po At Rn
Fr Ra Ac
Ce Pr Nd Pm Sm Eu Gd Tb Dy Ho Er Tm Yb Lu
Th Pa U Np Pu Am Cm Bk Cf Es Fm Md No Lr
-

 

- - -

Rotated text in Tables

- -
Periodic Table
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Element type 1A

Second line

Element type longer 2A

Element type 3BElement type 4BElement type 5BElement type 6B7B8BElement type 8B R8BElement type 1B2BElement type 3AElement type 4AElement type 5AElement type 6A7AElement type 8A
HHe
Li Be B C N O F Ne
Na Mg Al Si P S Cl Ar
K Ca Sc TiVaCrMnFeCoNi Cu Zn Ga Ge As Se Br Kr
Rb Sr Y Zr Nb Mo Tc Ru RhPd Ag Cd In Sn Sb Te I Xe
Cs Ba La Hf Ta W Re Os Ir Pt Au Hg Tl Pb Bi Po At Rn
Fr Ra Ac
Ce Pr Nd Pm Sm Eu Gd Tb Dy Ho Er Tm Yb Lu
Th Pa U Np Pu Am Cm Bk Cf Es Fm Md No Lr
- - - - - - -

Nested Tables

- -
-Text before table - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
This is dataThis is data - - - - - - - - - - - - - - - - - - - - - - - - - - -
Row AA2A3A4
Row BB2B3B4
Row CC2Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci. C4
Row DD2D3D4
-
This is data
This is dataThis is data - - - - - - - - - - - - - - - - - - - - - - - - - - -
Row AA2A3A4
Row BB2B3B4
Row CC2Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci. C4
Row DD2D3D4
-
This is data
This is dataThis is data - - - - - - - - - - - - - - - - - - - - - - - - - - -
Row AA2A3A4
Row BB2B3B4
Row CC2Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci. C4
Row DD2D3D4
-
This is data
This is dataThis is data - - - - - - - - - - - - - - - - - - - - - - - - - - -
Row AA2A3A4
Row BB2B3B4
Row CC2Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci. C4
Row DD2D3D4
-
This is data
This is dataThis is dataThis is dataThis is data
This is dataThis is dataThis is data
This is dataThis is dataThis is dataThis is data
- -
- - - -

Text before table

- - - - - - - - - - - - - - - - - - - - - - - - - - - -
Row 1This is data -Text before table - - - - - - - - - - - - - - - - - - - - - - - - - - -
Row AA2A3A4
Row BB2B3B4
Row CC2C3C4
Row DD2D3D4
-

Text after table

-
This is data
Row 2This is dataThis is dataThis is data
Row 3 - - - - - - - - - - - - - - - - - - - - - - - - - - -
Row AA2A3A4
Row BB2B4
Row CC2 - - - - - - - - - - -
F1F2
Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec et nulla. Sed quis orci.G2
-
C4
Row DD2D3D4
-
- - - - - - - - - - - - - - - - - - - - - - - - - - -
Row AA2A3A4
Row BB2B3B4
Row CC2C3C4
Row DD2D3D4
-
This is data
Row 4This is data - - - - - - - - - - - - - - - - - - - - - - - - - -
Row AA2A3A4
Row BB2B4
Row CC2 - - - - - - - - - - -
F1F2
Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec et nulla. Sed quis orci.G2
-
C4
Row DD2D3D4
-
This is data
- - -
- - - - -

Forms

-
-Textarea - -

-Select - followed by text -

-Input Radio - No      Keep      Choice -

-Input Text - -

-Input Password - -

- Checkboxes
- Not selected
- Disabled
- Selected -

- - - - -

-
- - - - -

Annotations

-

Praesent pharetra nulla in turpis. Sed ipsum nulla, sodales nec, vulputate in, scelerisque vitae, magna. Sed egestas justo nec ipsum. Nulla facilisi. Praesent sit amet pede quis metus aliquet vulputate. Donec luctus. Cras euismod tellus vel leo. Cras tellus. Fusce aliquet. Curabitur tincidunt viverra ligula. Fusce eget erat. Donec pede. Vestibulum id felis. Phasellus tincidunt ligula non pede. Morbi turpis. In vitae dui non erat placerat malesuada. Mauris adipiscing congue ante. Proin at erat. Aliquam mattis.

-

P: Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci.

- - - - -

Full Images & Barcode

-

On the first and last page of this document, an image is reproduced full page size by placing it inside a DIV element with CSS "position:absolute". In all other situations, images are constrained to the width and height of the printable page (i.e. inside the margins). The image on the back page has CSS "opacity:0.5".

- - - -
'. nl2br(htmlspecialchars('/* ALTERNATIVE PHP METHOD */ -$mpdf->SetAlpha(0.5); -$mpdf->Image(\'clematis.jpg\',0,0,210,297,\'jpg\',\'\',true, false); -// the last "false" allows a full page picture -$mpdf->SetAlpha(1); -')) .'
- - -

The back cover also has an ISBN barcode

- - -
'. nl2br(htmlspecialchars('/* ALTERNATIVE PHP METHOD */ -$mpdf->writeBarcode(\'978-0-9542246-0-8\', 1, 130, 230, 1,0, 3,3,4,4); -')) .'
- - -

But next is inserted the Index, which can also be done like this:

- - -
'. nl2br(htmlspecialchars('/* ALTERNATIVE PHP METHOD */ -$mpdf->AddPage(\'\',NEXT-ODD\'\',\'\',\'\',\'\',\'\',\'\',\'\',\'\',\'\',\'\',\'\',\'\',\'\',\'\',-1,-1,-1,-1); -$mpdf->WriteHTML(\'

Index

\'); -$mpdf->WriteHTML(\'\'); -')) .'
- - - - - - -

Index

- - - - - - -
- -
- -
- -
- - - -'; - -//============================================================== -//============================================================== -//============================================================== - -include("../mpdf.php"); - -$mpdf=new mPDF('s','A4','','',25,15,21,22,10,10); - -$mpdf->StartProgressBarOutput(); - -$mpdf->mirrorMargins = 1; -$mpdf->SetDisplayMode('fullpage','two'); -$mpdf->list_number_suffix = ')'; -$mpdf->hyphenate = true; - -$mpdf->debug = true; - -$mpdf->WriteHTML($html); - -$mpdf->Output(); - -exit; -//============================================================== -//============================================================== -//============================================================== -//============================================================== -//============================================================== - - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/example47_progress_bars_simple_custom.php b/public_html/2022/newcms/pdf/examples/example47_progress_bars_simple_custom.php deleted file mode 100644 index 69f11e8..0000000 --- a/public_html/2022/newcms/pdf/examples/example47_progress_bars_simple_custom.php +++ /dev/null @@ -1,1609 +0,0 @@ - - - - - - - - -
mPDF Example File
-
- -
mPDF Example File
-
- -
{PAGENO}/{nbpg}
-
- -
{PAGENO}/{nbpg}
-
- - - - - - - -
- -
- -
-
-mPDF Example File -
-
- - - -

The front cover can also be produced like this:

- -
'. nl2br(htmlspecialchars('/* ALTERNATIVE PHP METHOD */ -$mpdf->Image(\'clematis.jpg\',0,0,210,297,\'jpg\',\'\',true, false); -// the last "false" allows a full page picture - -$mpdf->y = 70; -$mpdf->Shaded_box(\'mPDF Example File\', \'Trebuchet\', \'\', 28, \'70%\', \'DF\', 3, \'#FFFFFF\', \'#000044\', 10); -')) .'
- - - - - - - - - - - - - -

(H1) mPDF

-

(H2) Section 1

-

(H3) HTML Markup

- - - - -

Heading 4

-
Heading 5
-
Heading 6
-

P: Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci.

- -
- -
DIV: Proin aliquet lorem id felis. Curabitur vel libero at mauris nonummy tincidunt. Donec imperdiet. Vestibulum sem sem, lacinia vel, molestie et, laoreet eget, urna. Curabitur viverra faucibus pede. Morbi lobortis. Donec dapibus. Donec tempus. Ut arcu enim, rhoncus ac, venenatis eu, porttitor mollis, dui. Sed vitae risus. In elementum sem placerat dui. Nam tristique eros in nisl. Nulla cursus sapien non quam porta porttitor. Quisque dictum ipsum ornare tortor. Fusce ornare tempus enim.
-
DIV: Proin aliquet lorem id felis. Curabitur vel libero at mauris nonummy tincidunt. Donec imperdiet. Vestibulum sem sem, lacinia vel, molestie et, laoreet eget, urna. Curabitur viverra faucibus pede. Morbi lobortis. Donec dapibus. Donec tempus. Ut arcu enim, rhoncus ac, venenatis eu, porttitor mollis, dui. Sed vitae risus. In elementum sem placerat dui. Nam tristique eros in nisl. Nulla cursus sapien non quam porta porttitor. Quisque dictum ipsum ornare tortor. Fusce ornare tempus enim.
- -
Blockquote: Maecenas arcu justo, malesuada eu, dapibus ac, adipiscing vitae, turpis. Fusce mollis. Aliquam egestas. In purus dolor, facilisis at, fermentum nec, molestie et, metus. Maecenas arcu justo, malesuada eu, dapibus ac, adipiscing vitae, turpis. Fusce mollis. Aliquam egestas. In purus dolor, facilisis at, fermentum nec, molestie et, metus.
- -
Address: Vestibulum feugiat, orci at imperdiet tincidunt, mauris erat facilisis urna, sagittis ultricies dui nisl et lectus. Sed lacinia, lectus vitae dictum sodales, elit ipsum ultrices orci, non euismod arcu diam non metus.
- -
PRE: Cum sociis natoque penatibus et magnis dis parturient montes, 
-nascetur ridiculus mus. In suscipit turpis vitae odio. Integer convallis 
-dui at metus. Fusce magna. Sed sed lectus vitae enim tempor cursus. Cras 
-sed, posuere et, urna. Quisque ut leo. Aliquam interdum hendrerit tortor. 
-Vestibulum elit. Vestibulum et arcu at diam mattis commodo. Nam ipsum sem, 
-ultricies at, rutrum sit amet, posuere nec, velit. Sed molestie mollis dui.
- - - -
Styles - tt(teletype) italic bold big small emphasis strong
new lines
-code sample keyboard variable citation abbr. ACRONYM sup sub strike strike-s underline delete insert To be or not to be font changing face, size and color -
- -

Paragraph using the in-line style to determine the font-size (15pt) and colour

- - -

Testing BIG, SMALL, UNDERLINE, STRIKETHROUGH, FONT color, ACRONYM, SUPERSCRIPT and SUBSCRIPT

-

This is strikethrough in block and small strikethrough in small span and big strikethrough in big span and then underline and strikethrough and sup but out of span again but blue font and ACRONYM text

- -

This is a green reference32-47 and underlined reference32-47 then reference32-47 and underlined reference32-47 then Strikethrough reference32-47 and strikethrough reference32-47

- -

Repeated in BIG: This is reference32-47 and underlined reference32-47 then reference32-47 and underlined reference32-47 but out of span again but blue font and ACRONYM text

- -

Repeated in small: This is reference32-47 and underlined reference32-47 then reference32-47 and underlined reference32-47 but out of span again but blue font and ACRONYM text

- -

The above repeated, but starting with a paragraph with font-size specified (7pt)

- -

This is strikethrough in block and small strikethrough in small span and then underline but out of span again but blue font and ACRONYM text

- -

This is strikethrough in block and big strikethrough in big span and then underline but out of span again but blue font and ACRONYM text

- -

This is reference32-47 and underlined reference32-47 then reference32-47 and underlined reference32-47 then Strikethrough reference32-47 and strikethrough reference32-47

- -

This tests underline and strikethrough when they are used together as they both use text-decoration

- - -

Repeated in small: This is reference32-47 and underlined reference32-47 then reference32-47 and underlined reference32-47 but out of span again but blue font and ACRONYM text

- -

Repeated in BIG but with font-size set to 7pt by in-line css: This is reference32-47 and underlined reference32-47 then reference32-47 and underlined reference32-47 but out of span again but blue font and ACRONYM text

- -
    -
  1. Item 1
  2. -
  3. Item 232
  4. -
  5. Item 3
  6. -
  7. Praesent pharetra nulla in turpis. Sed ipsum nulla, sodales nec, vulputate in, scelerisque vitae, magna. Sed egestas justo nec ipsum. Nulla facilisi. Praesent sit amet pede quis metus aliquet vulputate. Donec luctus. Cras euismod tellus vel leo. -
      -
    • Praesent pharetra nulla in turpis. Sed ipsum nulla, sodales nec, vulputate in, scelerisque vitae, magna. Sed egestas justo nec ipsum. Nulla facilisi. Praesent sit amet pede quis metus aliquet vulputate. Donec luctus. Cras euismod tellus vel leo.
    • -
    • Subitem 2 -
        -
      • -Level 3 subitem -
      • -
      -
    • -
    -
  8. -
  9. Item 5
  10. -
- -

Sed bibendum. Nunc eleifend ornare velit. Sed consectetuer urna in erat. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Mauris sodales semper metus. Maecenas justo libero, pretium at, malesuada eu, mollis et, arcu. Ut suscipit pede in nulla. Praesent elementum, dolor ac fringilla posuere, elit libero rutrum massa, vel tincidunt dui tellus a ante. Sed aliquet euismod dolor. Vestibulum sed dui. Duis lobortis hendrerit quam. Donec tempus orci ut libero. Pellentesque suscipit malesuada nisi.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
DataDataDataData
2nd line
More DataMore DataMore DataData
2nd line
DataDataDataData
2nd line
DataDataDataData
2nd line
- -This paragraph has border-radius and background-gradient set. Minimum padding is recommended as 1/3rd of the border-radius. Or can use $mpdf->autoPadding. -

Sed bibendum. Nunc eleifend ornare velit. Sed consectetuer urna in erat. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Mauris sodales semper metus. Maecenas justo libero, pretium at, malesuada eu, mollis et, arcu. Ut suscipit pede in nulla. Praesent elementum, dolor ac fringilla posuere, elit libero rutrum massa, vel tincidunt dui tellus a ante. Sed aliquet euismod dolor. Vestibulum sed dui. Duis lobortis hendrerit quam. Donec tempus orci ut libero. Pellentesque suscipit malesuada nisi.

- - - - - -

Hyphenation

- -

Little Women - Chapter One - Playing Pilgrims

- - -

Christmas won\'t be Christmas without any presents, grumbled Jo, lying on the rug.

It\'s so dreadful to be poor! sighed Meg, looking down at her old dress.

I don\'t think it\'s fair for some girls to have plenty of pretty things, and other girls nothing at all, added little Amy, with an injured sniff.

We\'ve got Father and Mother, and each other, said Beth contentedly from her corner.

The four young faces on which the firelight shone brightened at the cheerful words, but darkened again as Jo said sadly, We haven\'t got Father, and shall not have him for a long time. She didn\'t say perhaps never, but each silently added it, thinking of Father far away, where the fighting was.

Nobody spoke for a minute; then Meg said in an altered tone, You know the reason Mother proposed not having any presents this Christmas was because it is going to be a hard winter for everyone; and she thinks we ought not to spend money for pleasure, when our men are suffering so in the army. We can\'t do much, but we can make our little sacrifices, and ought to do it gladly. But I am afraid I don\'t And Meg shook her head, as she thought regretfully of all the pretty things she wanted.

But I don\'t think the little we should spend would do any good. We\'ve each got a dollar, and the army wouldn\'t be much helped by our giving that. I agree not to expect anything from Mother or you, but I do want to buy UNDINE AND SINTRAM for myself. I\'ve wanted it so long, said Jo, who was a bookworm.

I planned to spend mine in new music, said Beth, with a little sigh, which no one heard but the hearth brush and kettle holder.

I shall get a nice box of Faber\'s drawing pencils. I really need them, said Amy decidedly.

Mother didn\'t say anything about our money, and she won\'t wish us to give up everything. Let\'s each buy what we want, and have a little fun. I\'m sure we work hard enough to earn it, cried Jo, examining the heels of her shoes in a gentlemanly manner.

I know I do—teaching those tiresome children nearly all day, when I\'m longing to enjoy myself at home, began Meg, in the complaining tone again.

You don\'t have half such a hard time as I do, said Jo. How would you like to be shut up for hours with a nervous, fussy old lady, who keeps you trotting, is never satisfied, and worries you till you you\'re ready to fly out the window or cry?

It\'s naughty to fret, but I do think washing dishes and keeping things tidy is the worst work in the world. It makes me cross, and my hands get so stiff, I can\'t practice well at all. And Beth looked at her rough hands with a sigh that any one could hear that time.

I don\'t believe any of you suffer as I do, cried Amy, for you don\'t have to go to school with impertinent girls, who plague you if you don\'t know your lessons, and laugh at your dresses, and label your father if he isn\'t rich, and insult you when your nose isn\'t nice.

If you mean libel, I\'d say so, and not talk about labels, as if Papa was a pickle bottle, advised Jo, laughing.

I know what I mean, and you needn\'t be satirical about it. It\'s proper to use good words, and improve your vocabulary, returned Amy, with dignity.

Don\'t peck at one another, children. Don\'t you wish we had the money Papa lost when we were little, Jo? Dear me! How happy and good we\'d be, if we had no worries! said Meg, who could remember better times.

You said the other day you thought we were a deal happier than the King children, for they were fighting and fretting all the time, in spite of their money.

So I did, Beth. Well, I think we are. For though we do have to work, we make fun of ourselves, and are a pretty jolly set, as Jo would say.

Jo does use such slang words! observed Amy, with a reproving look at the long figure stretched on the rug.

Jo immediately sat up, put her hands in her pockets, and began to whistle.

Don\'t, Jo. It\'s so boyish!

That\'s why I do it.

I detest rude, unladylike girls!

I hate affected, niminy-piminy chits!

Birds in their little nests agree, sang Beth, the peacemaker, with such a funny face that both sharp voices softened to a laugh, and the pecking ended for that time.

Really, girls, you are both to be blamed, said Meg, beginning to lecture in her elder-sisterly fashion. You are old enough to leave off boyish tricks, and to behave better, Josephine. It didn\'t matter so much when you were a little girl, but now you are so tall, and turn up your hair, you should remember that you are a young lady.

I\'m not! And if turning up my hair makes me one, I\'ll wear it in two tails till I\'m twenty, cried Jo, pulling off her net, and shaking down a chestnut mane. I hate to think I\'ve got to grow up, and be Miss March, and wear long gowns, and look as prim as a China Aster! It\'s bad enough to be a girl, anyway, when I like boy\'s games and work and manners! I can\'t get over my disappointment in not being a boy. And it\'s worse than ever now, for I\'m dying to go and fight with Papa. And I can only stay home and knit, like a poky old woman!

And Jo shook the blue army sock till the needles rattled like castanets, and her ball bounded across the room.

Poor Jo! It\'s too bad, but it can\'t be helped. So you must try to be contented with making your name boyish, and playing brother to us girls, said Beth, stroking the rough head with a hand that all the dish washing and dusting in the world could not make ungentle in its touch.

As for you, Amy, continued Meg, you are altogether to particular and prim. Your airs are funny now, but you\'ll grow up an affected little goose, if you don\'t take care. I I like your nice manners and refined ways of speaking, when you don\'t try to be elegant. But your absurd words are as bad as Jo\'s slang.

If Jo is a tomboy and Amy a goose, what am I, please? asked Beth, ready to share the lecture.

You\'re a dear, and nothing else, answered Meg warmly, and no one contradicted her, for the \'Mouse\' was the pet of the family.

- - - - - - - - - - -

Lists

-
-
    -
  1. Text here lorem ipsum ibisque totum.
  2. -
  3. Text here lorem ipsum ibisque totum.
  4. -
  5. Text here lorem ipsum ibisque totum.
  6. -
  7. Text here lorem ipsum ibisque totum. Text here lorem ipsum ibisque totum. Text here lorem ipsum ibisque totum. Text here lorem ipsum ibisque totum. Text here lorem ipsum ibisque totum. Text here lorem ipsum ibisque totum.
  8. -
  9. Text here lorem ipsum ibisque totum.
  10. -
  11. Text here lorem ipsum ibisque totum. -
      -
    1. Text here lorem ipsum ibisque totum.
    2. -
    3. Text here lorem ipsum ibisque totum.
    4. -
    5. Text here lorem ipsum ibisque totum.
    6. -
    7. Text here lorem ipsum ibisque totum.
    8. -
    9. Text here lorem ipsum ibisque totum.
    10. -
    11. Text here lorem ipsum ibisque totum. -
        -
      1. Big text indent 25mm: Text here lorem ipsum ibisque totum.
      2. -
      3. Text here lorem ipsum ibisque totum. -
      4. -
      5. Text here lorem ipsum ibisque totum. -
          -
        1. Text here lorem ipsum ibisque totum.
        2. -
        3. Text here lorem ipsum ibisque totum.
        4. -
        5. Text here lorem ipsum ibisque totum.
        6. -
        7. Text here lorem ipsum ibisque totum.
        8. -
        9. Text here lorem ipsum ibisque totum. -
            -
          1. Text here lorem ipsum ibisque totum.
          2. -
          3. Text here lorem ipsum ibisque totum.
          4. -
          5. Text here lorem ipsum ibisque totum.
          6. -
          7. Text here lorem ipsum ibisque totum.
          8. -
          9. Text here lorem ipsum ibisque totum.
          10. -
          -
        10. -
        11. Text here lorem ipsum ibisque totum.
        12. -
        13. Text here lorem ipsum ibisque totum.
        14. -
        15. Text here lorem ipsum ibisque totum.
        16. -
        17. Text here lorem ipsum ibisque totum.
        18. -
        -
      6. -
      7. Text here lorem ipsum ibisque totum.
      8. -
      -
    12. -
    13. Text here lorem ipsum ibisque totum.
    14. -
    15. Text here lorem ipsum ibisque totum.
    16. -
    17. Text here lorem ipsum ibisque totum.
    18. -
    19. Text here lorem ipsum ibisque totum.
    20. -
    -
  12. -
  13. Text here lorem ipsum ibisque totum.
  14. -
  15. Text here lorem ipsum ibisque totum. -
      -
    1. Big text indent 25mm: Text here lorem ipsum ibisque totum.
    2. -
    3. Text here lorem ipsum ibisque totum.
    4. -
    5. Text here lorem ipsum ibisque totum. -
        -
      1. Text here lorem ipsum ibisque totum.
      2. -
      3. Text here lorem ipsum ibisque totum.
      4. -
      5. Text here lorem ipsum ibisque totum.
      6. -
      7. Text here lorem ipsum ibisque totum. -
          -
        1. Text here lorem ipsum ibisque totum.
        2. -
        3. Text here lorem ipsum ibisque totum.
        4. -
        5. Text here lorem ipsum ibisque totum.
        6. -
        7. Text here lorem ipsum ibisque totum.
        8. -
        9. Text here lorem ipsum ibisque totum.
        10. -
        -
      8. -
      9. Text here lorem ipsum ibisque totum.
      10. -
      11. Text here lorem ipsum ibisque totum.
      12. -
      13. Text here lorem ipsum ibisque totum. -
          -
        1. No class specified. Text here lorem ipsum ibisque totum.
        2. -
        3. Text here lorem ipsum ibisque totum.
        4. -
        5. Text here lorem ipsum ibisque totum.
        6. -
        7. Text here lorem ipsum ibisque totum.
        8. -
        9. Text here lorem ipsum ibisque totum.
        10. -
        -
      14. -
      -
    6. -
    -
  16. -
  17. Text here lorem ipsum ibisque totum.
  18. -
  19. Text here lorem ipsum ibisque totum.
  20. -
  21. Text here lorem ipsum ibisque totum.
  22. -
  23. Text here lorem ipsum ibisque totum.
  24. -
  25. Text here lorem ipsum ibisque totum.
  26. -
  27. Text here lorem ipsum ibisque totum.
  28. -
  29. Text here lorem ipsum ibisque totum.
  30. -
-
- - - -

Tables

-

mPDF supports all in-line properties inside tables.

- - - - - - -
Row 1This is dataThis is data
Row 2 -

This is data p

-This is data out of p -

This is bold data p

-This is bold data out of p
-This is normal data after br -

Heading 3 inside a table

-Text here lorem ipsum ibisque totum.32 -
This is data div
-This is data out of div -
This is data div (bold)
-This is data out of div -
Also data
- -

This table has padding-top and -bottom set to 3mm i.e. padding within the cells. Also background-, border colour and style, font family and size are set by in-line CSS.

- - - - -
Row 1This is dataThis is data
Row 2

This is data p

More data

Row 3

This is long data

This is data
- - -

Tables

-

The style sheet used for these examples shows some of the table styles I use on my website. The property \'topntail\' defined by a border-type definition e.g. "1px solid #880000" puts a border at the top and bottom of the table, and also below a header row (thead) if defined. Note also that <thead> will automatically turn on the header-repeat i.e. reproduce the header row at the top of each page.

-

bpmTopic Class

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Row 1This is dataThis is data
Row 2 -

This is data p

-
-

More data

-
-

Row 3

-
-

This is long data

-
This is data
-

Row 4 <td> cell

-
This is data -

This is data

-
Row 5Also dataAlso data
Row 6Also dataAlso data
Row 7Also dataAlso data
Row 8Also dataAlso data
- -

 

- -

bpmTopicC Class (centered) Odd and Even rows

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Col/Row Header -

Second column header p

-
Third column header
Row header 1This is dataThis is data
Row header 2 -

This is data p

-
-

This is data

-
-

Row header 3

-
-

This is long data

-
This is data
-

Row header 4

-

<th> cell acting as header

-
This is data -

This is data

-
Row header 5Also dataAlso data
Row header 6Also dataAlso data
Row header 7Also dataAlso data
Row header 8Also dataAlso data
- -

 

- -

bpmTopnTail Class

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Row 1This is dataThis is data
Row 2 -

This is data p

-
-

This is data

-
-

Row 3

-
-

This is long data

-
This is data
-

Row 4 <td> cell

-
This is data -

This is data

-
Row 5Also dataAlso data
Row 6Also dataAlso data
Row 7Also dataAlso data
Row 8Also dataAlso data
-

 

-

bpmTopnTailC Class (centered) Odd and Even rows

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Col/Row Header -

Second column header p

-
Third column header
Row header 1This is dataThis is data
Row header 2 -

This is data p

-
-

This is data

-
-

Row header 3

-
-

This is long data

-
This is data
-

Row header 4

-

<th> cell acting as header

-
This is data -

This is data

-
Row header 5Also dataAlso data
Row header 6Also dataAlso data
Row header 7Also dataAlso data
Row header 8Also dataAlso data
- -

 

- -

TopnTail Class

- - - - - - - - - - - - - - - - - - - - - - - - - -
Col and Row Header -

Second

-

column

-
Top right align
-

Row header 1 p

-
This is dataThis is data
Row header 2Bottom right align -

This is data. Can use

-

bold italic sub or sup text

-
-

Bottom right align

-
-

This is data. This cell

-

uses Cell Styles to set

-

the borders.

-

All borders are collapsible

-

in mPDF.

-
This is data
Row header 4 -

This is data p

-
More data
Row header 5Also data merged and centered
- -

 

- -

Lists in a Table

- - - - - - - - - - - - - - -
Col and Row Header -

Second

-

column

-
Top right align
-

Row header 1 p

-
This is dataThis is data
Row header 2 -
    -
  1. Item 1
  2. -
  3. Item 2 -
      -
    1. Subitem of ordered list
    2. -
    3. Subitem 2 -
        -
      1. Level 3 subitem
      2. -
      3. Level 3 subitem
      4. -
      -
    4. -
    -
  4. -
  5. Item 3
  6. -
  7. Another Item
  8. -
  9. Subitem -
      -
    1. Level 3 subitem
    2. -
    -
  10. -
  11. Another Item
  12. -
-
-Unordered list: -
    -
  • Item 1
  • -
  • Item 2 -
      -
    • Subitem of unordered list
    • -
    • Subitem 2 -
        -
      • Level 3 subitem
      • -
      • Level 3 subitem
      • -
      • Level 3 subitem
      • -
      -
    • -
    -
  • -
  • Item 3
  • -
-
-

 

- - -

Automatic Column Width

- - - - - - - - - -
CausesNulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit.
-Ut a eros at ligula vehicula pretium; maecenas feugiat pede vel risus.
-Suspendisse potenti
MechanismsUt magna ipsum, tempus in, condimentum at, rutrum et, nisl. Vestibulum interdum luctus sapien. Quisque viverra. Etiam id libero at magna pellentesque aliquet. Nulla sit amet ipsum id enim tempus dictum. Maecenas consectetuer eros quis massa. Mauris semper velit vehicula purus. Duis lacus. Aenean pretium consectetuer mauris. Ut purus sem, consequat ut, fermentum sit amet, ornare sit amet, ipsum. Donec non nunc. Maecenas fringilla. Curabitur libero. In dui massa, malesuada sit amet, hendrerit vitae, viverra nec, tortor. Donec varius. Ut ut dolor et tellus adipiscing adipiscing.
- - -

Column span

- - - - - - - - - - -
CausesNulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit.
-Ut a eros at ligula vehicula pretium; maecenas feugiat pede vel risus.
-Suspendisse potenti
MechanismsFusce eleifend neque sit amet erat.
-Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus.
Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla.
-Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien.
- - - -

Header & Footer Rows

-

A table using a header or footer row should repeat the header/footer row across pages:

-

bpmTopicC Class

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Col and Row Header -

Second column header

-
Third column header
Col and Row Footer -

Second column footer

-
Third column footer
Row header 1This is dataThis is data
Row header 2This is data -

This is data

-
-

Row header 3

-
-

This is data

-
This is data
Row header 4This is data -

This is data

-
Row header 5Also dataAlso data
Row header 6Also dataAlso data
Row header 7Also dataAlso data
Row header 8Also dataAlso data
Row header 9Also dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
-

 

- -

Autosizing Tables

-

Periodic Table of elements. Tables are set by default to reduce font size if complete words will not fit inside each cell, to a maximum of 1/1.4 * the set font-size. This value can be changed by setting $mpdf->shrink_tables_to_fit=1.8 or using html attribute <table autosize="1.8">.

- -
Periodic Table
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1A2A3B4B5B6B7B8B8B8B1B2B3A4A5A6A7A8A
H He
Li Be B C N O F Ne
Na Mg Al Si P S Cl Ar
K Ca Sc Ti V Cr Mn Fe Co Ni Cu Zn Ga Ge As Se Br Kr
Rb Sr Y Zr Nb Mo Tc Ru Rh Pd Ag Cd In Sn Sb Te I Xe
Cs Ba La Hf Ta W Re Os Ir Pt Au Hg Tl Pb Bi Po At Rn
Fr Ra Ac
Ce Pr Nd Pm Sm Eu Gd Tb Dy Ho Er Tm Yb Lu
Th Pa U Np Pu Am Cm Bk Cf Es Fm Md No Lr
- - - -

Rotated Tables

-

This is set to rotate -90 degrees (counterclockwise).

- -
Periodic Table
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1A2A3B4B5B6B7B8B8B8B1B2B3A4A5A6A7A8A
H He
Li Be B C N O F Ne
Na Mg Al Si P S Cl Ar
K Ca Sc Ti V Cr Mn Fe Co Ni Cu Zn Ga Ge As Se Br Kr
Rb Sr Y Zr Nb Mo Tc Ru Rh Pd Ag Cd In Sn Sb Te I Xe
Cs Ba La Hf Ta W Re Os Ir Pt Au Hg Tl Pb Bi Po At Rn
Fr Ra Ac
Ce Pr Nd Pm Sm Eu Gd Tb Dy Ho Er Tm Yb Lu
Th Pa U Np Pu Am Cm Bk Cf Es Fm Md No Lr
-

 

- - -

Rotated text in Tables

- -
Periodic Table
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Element type 1A

Second line

Element type longer 2A

Element type 3BElement type 4BElement type 5BElement type 6B7B8BElement type 8B R8BElement type 1B2BElement type 3AElement type 4AElement type 5AElement type 6A7AElement type 8A
HHe
Li Be B C N O F Ne
Na Mg Al Si P S Cl Ar
K Ca Sc TiVaCrMnFeCoNi Cu Zn Ga Ge As Se Br Kr
Rb Sr Y Zr Nb Mo Tc Ru RhPd Ag Cd In Sn Sb Te I Xe
Cs Ba La Hf Ta W Re Os Ir Pt Au Hg Tl Pb Bi Po At Rn
Fr Ra Ac
Ce Pr Nd Pm Sm Eu Gd Tb Dy Ho Er Tm Yb Lu
Th Pa U Np Pu Am Cm Bk Cf Es Fm Md No Lr
- - - - - - -

Nested Tables

- -
-Text before table - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
This is dataThis is data - - - - - - - - - - - - - - - - - - - - - - - - - - -
Row AA2A3A4
Row BB2B3B4
Row CC2Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci. C4
Row DD2D3D4
-
This is data
This is dataThis is data - - - - - - - - - - - - - - - - - - - - - - - - - - -
Row AA2A3A4
Row BB2B3B4
Row CC2Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci. C4
Row DD2D3D4
-
This is data
This is dataThis is data - - - - - - - - - - - - - - - - - - - - - - - - - - -
Row AA2A3A4
Row BB2B3B4
Row CC2Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci. C4
Row DD2D3D4
-
This is data
This is dataThis is data - - - - - - - - - - - - - - - - - - - - - - - - - - -
Row AA2A3A4
Row BB2B3B4
Row CC2Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci. C4
Row DD2D3D4
-
This is data
This is dataThis is dataThis is dataThis is data
This is dataThis is dataThis is data
This is dataThis is dataThis is dataThis is data
- -
- - - -

Text before table

- - - - - - - - - - - - - - - - - - - - - - - - - - - -
Row 1This is data -Text before table - - - - - - - - - - - - - - - - - - - - - - - - - - -
Row AA2A3A4
Row BB2B3B4
Row CC2C3C4
Row DD2D3D4
-

Text after table

-
This is data
Row 2This is dataThis is dataThis is data
Row 3 - - - - - - - - - - - - - - - - - - - - - - - - - - -
Row AA2A3A4
Row BB2B4
Row CC2 - - - - - - - - - - -
F1F2
Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec et nulla. Sed quis orci.G2
-
C4
Row DD2D3D4
-
- - - - - - - - - - - - - - - - - - - - - - - - - - -
Row AA2A3A4
Row BB2B3B4
Row CC2C3C4
Row DD2D3D4
-
This is data
Row 4This is data - - - - - - - - - - - - - - - - - - - - - - - - - -
Row AA2A3A4
Row BB2B4
Row CC2 - - - - - - - - - - -
F1F2
Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec et nulla. Sed quis orci.G2
-
C4
Row DD2D3D4
-
This is data
- - -
- - - - -

Forms

-
-Textarea - -

-Select - followed by text -

-Input Radio - No      Keep      Choice -

-Input Text - -

-Input Password - -

- Checkboxes
- Not selected
- Disabled
- Selected -

- - - - -

-
- - - - -

Annotations

-

Praesent pharetra nulla in turpis. Sed ipsum nulla, sodales nec, vulputate in, scelerisque vitae, magna. Sed egestas justo nec ipsum. Nulla facilisi. Praesent sit amet pede quis metus aliquet vulputate. Donec luctus. Cras euismod tellus vel leo. Cras tellus. Fusce aliquet. Curabitur tincidunt viverra ligula. Fusce eget erat. Donec pede. Vestibulum id felis. Phasellus tincidunt ligula non pede. Morbi turpis. In vitae dui non erat placerat malesuada. Mauris adipiscing congue ante. Proin at erat. Aliquam mattis.

-

P: Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci.

- - - - -

Graphs

- - -
FemaleMale
35 - 4442
45 - 5457
55 - 642118
65 - 741114
75 - 841010
85 - 9421
95 - 1041
TOTAL5452
- -
Subscriptions for 2008-09
- - - - - - -

Full Images & Barcode

-

On the first and last page of this document, an image is reproduced full page size by placing it inside a DIV element with CSS "position:absolute". In all other situations, images are constrained to the width and height of the printable page (i.e. inside the margins). The image on the back page has CSS "opacity:0.5".

- - - -
'. nl2br(htmlspecialchars('/* ALTERNATIVE PHP METHOD */ -$mpdf->SetAlpha(0.5); -$mpdf->Image(\'clematis.jpg\',0,0,210,297,\'jpg\',\'\',true, false); -// the last "false" allows a full page picture -$mpdf->SetAlpha(1); -')) .'
- - -

The back cover also has an ISBN barcode

- - -
'. nl2br(htmlspecialchars('/* ALTERNATIVE PHP METHOD */ -$mpdf->writeBarcode(\'978-0-9542246-0-8\', 1, 130, 230, 1,0, 3,3,4,4); -')) .'
- - -

But next is inserted the Index, which can also be done like this:

- - -
'. nl2br(htmlspecialchars('/* ALTERNATIVE PHP METHOD */ -$mpdf->AddPage(\'\',NEXT-ODD\'\',\'\',\'\',\'\',\'\',\'\',\'\',\'\',\'\',\'\',\'\',\'\',\'\',\'\',-1,-1,-1,-1); -$mpdf->WriteHTML(\'

Index

\'); -$mpdf->WriteHTML(\'\'); -')) .'
- - - - - - -

Index

- - - - - - -
- -
- -
- -
- - - -'; - -//============================================================== -//============================================================== -//============================================================== - -include("../mpdf.php"); - -$mpdf=new mPDF('s','A4','','',25,15,21,22,10,10); -$mpdf->progbar_altHTML = ' -
Creating PDF file. Please wait...
'; -$mpdf->StartProgressBarOutput(); - -$mpdf->mirrorMargins = 1; -$mpdf->SetDisplayMode('fullpage','two'); -$mpdf->useGraphs = true; -$mpdf->list_number_suffix = ')'; -$mpdf->hyphenate = true; - -$mpdf->debug = true; - -$mpdf->WriteHTML($html); - -$mpdf->Output(); - -exit; -//============================================================== -//============================================================== -//============================================================== -//============================================================== -//============================================================== - - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/example48_progress_bars_advanced.php b/public_html/2022/newcms/pdf/examples/example48_progress_bars_advanced.php deleted file mode 100644 index 898fa6b..0000000 --- a/public_html/2022/newcms/pdf/examples/example48_progress_bars_advanced.php +++ /dev/null @@ -1,1609 +0,0 @@ - - - - - - - - -
mPDF Example File
-
- -
mPDF Example File
-
- -
{PAGENO}/{nbpg}
-
- -
{PAGENO}/{nbpg}
-
- - - - - - - -
- -
- -
-
-mPDF Example File -
-
- - - -

The front cover can also be produced like this:

- -
'. nl2br(htmlspecialchars('/* ALTERNATIVE PHP METHOD */ -$mpdf->Image(\'clematis.jpg\',0,0,210,297,\'jpg\',\'\',true, false); -// the last "false" allows a full page picture - -$mpdf->y = 70; -$mpdf->Shaded_box(\'mPDF Example File\', \'Trebuchet\', \'\', 28, \'70%\', \'DF\', 3, \'#FFFFFF\', \'#000044\', 10); -')) .'
- - - - - - - - - - - - - -

(H1) mPDF

-

(H2) Section 1

-

(H3) HTML Markup

- - - - -

Heading 4

-
Heading 5
-
Heading 6
-

P: Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci.

- -
- -
DIV: Proin aliquet lorem id felis. Curabitur vel libero at mauris nonummy tincidunt. Donec imperdiet. Vestibulum sem sem, lacinia vel, molestie et, laoreet eget, urna. Curabitur viverra faucibus pede. Morbi lobortis. Donec dapibus. Donec tempus. Ut arcu enim, rhoncus ac, venenatis eu, porttitor mollis, dui. Sed vitae risus. In elementum sem placerat dui. Nam tristique eros in nisl. Nulla cursus sapien non quam porta porttitor. Quisque dictum ipsum ornare tortor. Fusce ornare tempus enim.
-
DIV: Proin aliquet lorem id felis. Curabitur vel libero at mauris nonummy tincidunt. Donec imperdiet. Vestibulum sem sem, lacinia vel, molestie et, laoreet eget, urna. Curabitur viverra faucibus pede. Morbi lobortis. Donec dapibus. Donec tempus. Ut arcu enim, rhoncus ac, venenatis eu, porttitor mollis, dui. Sed vitae risus. In elementum sem placerat dui. Nam tristique eros in nisl. Nulla cursus sapien non quam porta porttitor. Quisque dictum ipsum ornare tortor. Fusce ornare tempus enim.
- -
Blockquote: Maecenas arcu justo, malesuada eu, dapibus ac, adipiscing vitae, turpis. Fusce mollis. Aliquam egestas. In purus dolor, facilisis at, fermentum nec, molestie et, metus. Maecenas arcu justo, malesuada eu, dapibus ac, adipiscing vitae, turpis. Fusce mollis. Aliquam egestas. In purus dolor, facilisis at, fermentum nec, molestie et, metus.
- -
Address: Vestibulum feugiat, orci at imperdiet tincidunt, mauris erat facilisis urna, sagittis ultricies dui nisl et lectus. Sed lacinia, lectus vitae dictum sodales, elit ipsum ultrices orci, non euismod arcu diam non metus.
- -
PRE: Cum sociis natoque penatibus et magnis dis parturient montes, 
-nascetur ridiculus mus. In suscipit turpis vitae odio. Integer convallis 
-dui at metus. Fusce magna. Sed sed lectus vitae enim tempor cursus. Cras 
-sed, posuere et, urna. Quisque ut leo. Aliquam interdum hendrerit tortor. 
-Vestibulum elit. Vestibulum et arcu at diam mattis commodo. Nam ipsum sem, 
-ultricies at, rutrum sit amet, posuere nec, velit. Sed molestie mollis dui.
- - - -
Styles - tt(teletype) italic bold big small emphasis strong
new lines
-code sample keyboard variable citation abbr. ACRONYM sup sub strike strike-s underline delete insert To be or not to be font changing face, size and color -
- -

Paragraph using the in-line style to determine the font-size (15pt) and colour

- - -

Testing BIG, SMALL, UNDERLINE, STRIKETHROUGH, FONT color, ACRONYM, SUPERSCRIPT and SUBSCRIPT

-

This is strikethrough in block and small strikethrough in small span and big strikethrough in big span and then underline and strikethrough and sup but out of span again but blue font and ACRONYM text

- -

This is a green reference32-47 and underlined reference32-47 then reference32-47 and underlined reference32-47 then Strikethrough reference32-47 and strikethrough reference32-47

- -

Repeated in BIG: This is reference32-47 and underlined reference32-47 then reference32-47 and underlined reference32-47 but out of span again but blue font and ACRONYM text

- -

Repeated in small: This is reference32-47 and underlined reference32-47 then reference32-47 and underlined reference32-47 but out of span again but blue font and ACRONYM text

- -

The above repeated, but starting with a paragraph with font-size specified (7pt)

- -

This is strikethrough in block and small strikethrough in small span and then underline but out of span again but blue font and ACRONYM text

- -

This is strikethrough in block and big strikethrough in big span and then underline but out of span again but blue font and ACRONYM text

- -

This is reference32-47 and underlined reference32-47 then reference32-47 and underlined reference32-47 then Strikethrough reference32-47 and strikethrough reference32-47

- -

This tests underline and strikethrough when they are used together as they both use text-decoration

- - -

Repeated in small: This is reference32-47 and underlined reference32-47 then reference32-47 and underlined reference32-47 but out of span again but blue font and ACRONYM text

- -

Repeated in BIG but with font-size set to 7pt by in-line css: This is reference32-47 and underlined reference32-47 then reference32-47 and underlined reference32-47 but out of span again but blue font and ACRONYM text

- -
    -
  1. Item 1
  2. -
  3. Item 232
  4. -
  5. Item 3
  6. -
  7. Praesent pharetra nulla in turpis. Sed ipsum nulla, sodales nec, vulputate in, scelerisque vitae, magna. Sed egestas justo nec ipsum. Nulla facilisi. Praesent sit amet pede quis metus aliquet vulputate. Donec luctus. Cras euismod tellus vel leo. -
      -
    • Praesent pharetra nulla in turpis. Sed ipsum nulla, sodales nec, vulputate in, scelerisque vitae, magna. Sed egestas justo nec ipsum. Nulla facilisi. Praesent sit amet pede quis metus aliquet vulputate. Donec luctus. Cras euismod tellus vel leo.
    • -
    • Subitem 2 -
        -
      • -Level 3 subitem -
      • -
      -
    • -
    -
  8. -
  9. Item 5
  10. -
- -

Sed bibendum. Nunc eleifend ornare velit. Sed consectetuer urna in erat. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Mauris sodales semper metus. Maecenas justo libero, pretium at, malesuada eu, mollis et, arcu. Ut suscipit pede in nulla. Praesent elementum, dolor ac fringilla posuere, elit libero rutrum massa, vel tincidunt dui tellus a ante. Sed aliquet euismod dolor. Vestibulum sed dui. Duis lobortis hendrerit quam. Donec tempus orci ut libero. Pellentesque suscipit malesuada nisi.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
DataDataDataData
2nd line
More DataMore DataMore DataData
2nd line
DataDataDataData
2nd line
DataDataDataData
2nd line
- -This paragraph has border-radius and background-gradient set. Minimum padding is recommended as 1/3rd of the border-radius. Or can use $mpdf->autoPadding. -

Sed bibendum. Nunc eleifend ornare velit. Sed consectetuer urna in erat. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Mauris sodales semper metus. Maecenas justo libero, pretium at, malesuada eu, mollis et, arcu. Ut suscipit pede in nulla. Praesent elementum, dolor ac fringilla posuere, elit libero rutrum massa, vel tincidunt dui tellus a ante. Sed aliquet euismod dolor. Vestibulum sed dui. Duis lobortis hendrerit quam. Donec tempus orci ut libero. Pellentesque suscipit malesuada nisi.

- - - - - -

Hyphenation

- -

Little Women - Chapter One - Playing Pilgrims

- - -

Christmas won\'t be Christmas without any presents, grumbled Jo, lying on the rug.

It\'s so dreadful to be poor! sighed Meg, looking down at her old dress.

I don\'t think it\'s fair for some girls to have plenty of pretty things, and other girls nothing at all, added little Amy, with an injured sniff.

We\'ve got Father and Mother, and each other, said Beth contentedly from her corner.

The four young faces on which the firelight shone brightened at the cheerful words, but darkened again as Jo said sadly, We haven\'t got Father, and shall not have him for a long time. She didn\'t say perhaps never, but each silently added it, thinking of Father far away, where the fighting was.

Nobody spoke for a minute; then Meg said in an altered tone, You know the reason Mother proposed not having any presents this Christmas was because it is going to be a hard winter for everyone; and she thinks we ought not to spend money for pleasure, when our men are suffering so in the army. We can\'t do much, but we can make our little sacrifices, and ought to do it gladly. But I am afraid I don\'t And Meg shook her head, as she thought regretfully of all the pretty things she wanted.

But I don\'t think the little we should spend would do any good. We\'ve each got a dollar, and the army wouldn\'t be much helped by our giving that. I agree not to expect anything from Mother or you, but I do want to buy UNDINE AND SINTRAM for myself. I\'ve wanted it so long, said Jo, who was a bookworm.

I planned to spend mine in new music, said Beth, with a little sigh, which no one heard but the hearth brush and kettle holder.

I shall get a nice box of Faber\'s drawing pencils. I really need them, said Amy decidedly.

Mother didn\'t say anything about our money, and she won\'t wish us to give up everything. Let\'s each buy what we want, and have a little fun. I\'m sure we work hard enough to earn it, cried Jo, examining the heels of her shoes in a gentlemanly manner.

I know I do—teaching those tiresome children nearly all day, when I\'m longing to enjoy myself at home, began Meg, in the complaining tone again.

You don\'t have half such a hard time as I do, said Jo. How would you like to be shut up for hours with a nervous, fussy old lady, who keeps you trotting, is never satisfied, and worries you till you you\'re ready to fly out the window or cry?

It\'s naughty to fret, but I do think washing dishes and keeping things tidy is the worst work in the world. It makes me cross, and my hands get so stiff, I can\'t practice well at all. And Beth looked at her rough hands with a sigh that any one could hear that time.

I don\'t believe any of you suffer as I do, cried Amy, for you don\'t have to go to school with impertinent girls, who plague you if you don\'t know your lessons, and laugh at your dresses, and label your father if he isn\'t rich, and insult you when your nose isn\'t nice.

If you mean libel, I\'d say so, and not talk about labels, as if Papa was a pickle bottle, advised Jo, laughing.

I know what I mean, and you needn\'t be satirical about it. It\'s proper to use good words, and improve your vocabulary, returned Amy, with dignity.

Don\'t peck at one another, children. Don\'t you wish we had the money Papa lost when we were little, Jo? Dear me! How happy and good we\'d be, if we had no worries! said Meg, who could remember better times.

You said the other day you thought we were a deal happier than the King children, for they were fighting and fretting all the time, in spite of their money.

So I did, Beth. Well, I think we are. For though we do have to work, we make fun of ourselves, and are a pretty jolly set, as Jo would say.

Jo does use such slang words! observed Amy, with a reproving look at the long figure stretched on the rug.

Jo immediately sat up, put her hands in her pockets, and began to whistle.

Don\'t, Jo. It\'s so boyish!

That\'s why I do it.

I detest rude, unladylike girls!

I hate affected, niminy-piminy chits!

Birds in their little nests agree, sang Beth, the peacemaker, with such a funny face that both sharp voices softened to a laugh, and the pecking ended for that time.

Really, girls, you are both to be blamed, said Meg, beginning to lecture in her elder-sisterly fashion. You are old enough to leave off boyish tricks, and to behave better, Josephine. It didn\'t matter so much when you were a little girl, but now you are so tall, and turn up your hair, you should remember that you are a young lady.

I\'m not! And if turning up my hair makes me one, I\'ll wear it in two tails till I\'m twenty, cried Jo, pulling off her net, and shaking down a chestnut mane. I hate to think I\'ve got to grow up, and be Miss March, and wear long gowns, and look as prim as a China Aster! It\'s bad enough to be a girl, anyway, when I like boy\'s games and work and manners! I can\'t get over my disappointment in not being a boy. And it\'s worse than ever now, for I\'m dying to go and fight with Papa. And I can only stay home and knit, like a poky old woman!

And Jo shook the blue army sock till the needles rattled like castanets, and her ball bounded across the room.

Poor Jo! It\'s too bad, but it can\'t be helped. So you must try to be contented with making your name boyish, and playing brother to us girls, said Beth, stroking the rough head with a hand that all the dish washing and dusting in the world could not make ungentle in its touch.

As for you, Amy, continued Meg, you are altogether to particular and prim. Your airs are funny now, but you\'ll grow up an affected little goose, if you don\'t take care. I I like your nice manners and refined ways of speaking, when you don\'t try to be elegant. But your absurd words are as bad as Jo\'s slang.

If Jo is a tomboy and Amy a goose, what am I, please? asked Beth, ready to share the lecture.

You\'re a dear, and nothing else, answered Meg warmly, and no one contradicted her, for the \'Mouse\' was the pet of the family.

- - - - - - - - - - -

Lists

-
-
    -
  1. Text here lorem ipsum ibisque totum.
  2. -
  3. Text here lorem ipsum ibisque totum.
  4. -
  5. Text here lorem ipsum ibisque totum.
  6. -
  7. Text here lorem ipsum ibisque totum. Text here lorem ipsum ibisque totum. Text here lorem ipsum ibisque totum. Text here lorem ipsum ibisque totum. Text here lorem ipsum ibisque totum. Text here lorem ipsum ibisque totum.
  8. -
  9. Text here lorem ipsum ibisque totum.
  10. -
  11. Text here lorem ipsum ibisque totum. -
      -
    1. Text here lorem ipsum ibisque totum.
    2. -
    3. Text here lorem ipsum ibisque totum.
    4. -
    5. Text here lorem ipsum ibisque totum.
    6. -
    7. Text here lorem ipsum ibisque totum.
    8. -
    9. Text here lorem ipsum ibisque totum.
    10. -
    11. Text here lorem ipsum ibisque totum. -
        -
      1. Big text indent 25mm: Text here lorem ipsum ibisque totum.
      2. -
      3. Text here lorem ipsum ibisque totum. -
      4. -
      5. Text here lorem ipsum ibisque totum. -
          -
        1. Text here lorem ipsum ibisque totum.
        2. -
        3. Text here lorem ipsum ibisque totum.
        4. -
        5. Text here lorem ipsum ibisque totum.
        6. -
        7. Text here lorem ipsum ibisque totum.
        8. -
        9. Text here lorem ipsum ibisque totum. -
            -
          1. Text here lorem ipsum ibisque totum.
          2. -
          3. Text here lorem ipsum ibisque totum.
          4. -
          5. Text here lorem ipsum ibisque totum.
          6. -
          7. Text here lorem ipsum ibisque totum.
          8. -
          9. Text here lorem ipsum ibisque totum.
          10. -
          -
        10. -
        11. Text here lorem ipsum ibisque totum.
        12. -
        13. Text here lorem ipsum ibisque totum.
        14. -
        15. Text here lorem ipsum ibisque totum.
        16. -
        17. Text here lorem ipsum ibisque totum.
        18. -
        -
      6. -
      7. Text here lorem ipsum ibisque totum.
      8. -
      -
    12. -
    13. Text here lorem ipsum ibisque totum.
    14. -
    15. Text here lorem ipsum ibisque totum.
    16. -
    17. Text here lorem ipsum ibisque totum.
    18. -
    19. Text here lorem ipsum ibisque totum.
    20. -
    -
  12. -
  13. Text here lorem ipsum ibisque totum.
  14. -
  15. Text here lorem ipsum ibisque totum. -
      -
    1. Big text indent 25mm: Text here lorem ipsum ibisque totum.
    2. -
    3. Text here lorem ipsum ibisque totum.
    4. -
    5. Text here lorem ipsum ibisque totum. -
        -
      1. Text here lorem ipsum ibisque totum.
      2. -
      3. Text here lorem ipsum ibisque totum.
      4. -
      5. Text here lorem ipsum ibisque totum.
      6. -
      7. Text here lorem ipsum ibisque totum. -
          -
        1. Text here lorem ipsum ibisque totum.
        2. -
        3. Text here lorem ipsum ibisque totum.
        4. -
        5. Text here lorem ipsum ibisque totum.
        6. -
        7. Text here lorem ipsum ibisque totum.
        8. -
        9. Text here lorem ipsum ibisque totum.
        10. -
        -
      8. -
      9. Text here lorem ipsum ibisque totum.
      10. -
      11. Text here lorem ipsum ibisque totum.
      12. -
      13. Text here lorem ipsum ibisque totum. -
          -
        1. No class specified. Text here lorem ipsum ibisque totum.
        2. -
        3. Text here lorem ipsum ibisque totum.
        4. -
        5. Text here lorem ipsum ibisque totum.
        6. -
        7. Text here lorem ipsum ibisque totum.
        8. -
        9. Text here lorem ipsum ibisque totum.
        10. -
        -
      14. -
      -
    6. -
    -
  16. -
  17. Text here lorem ipsum ibisque totum.
  18. -
  19. Text here lorem ipsum ibisque totum.
  20. -
  21. Text here lorem ipsum ibisque totum.
  22. -
  23. Text here lorem ipsum ibisque totum.
  24. -
  25. Text here lorem ipsum ibisque totum.
  26. -
  27. Text here lorem ipsum ibisque totum.
  28. -
  29. Text here lorem ipsum ibisque totum.
  30. -
-
- - - -

Tables

-

mPDF supports all in-line properties inside tables.

- - - - - - -
Row 1This is dataThis is data
Row 2 -

This is data p

-This is data out of p -

This is bold data p

-This is bold data out of p
-This is normal data after br -

Heading 3 inside a table

-Text here lorem ipsum ibisque totum.32 -
This is data div
-This is data out of div -
This is data div (bold)
-This is data out of div -
Also data
- -

This table has padding-top and -bottom set to 3mm i.e. padding within the cells. Also background-, border colour and style, font family and size are set by in-line CSS.

- - - - -
Row 1This is dataThis is data
Row 2

This is data p

More data

Row 3

This is long data

This is data
- - -

Tables

-

The style sheet used for these examples shows some of the table styles I use on my website. The property \'topntail\' defined by a border-type definition e.g. "1px solid #880000" puts a border at the top and bottom of the table, and also below a header row (thead) if defined. Note also that <thead> will automatically turn on the header-repeat i.e. reproduce the header row at the top of each page.

-

bpmTopic Class

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Row 1This is dataThis is data
Row 2 -

This is data p

-
-

More data

-
-

Row 3

-
-

This is long data

-
This is data
-

Row 4 <td> cell

-
This is data -

This is data

-
Row 5Also dataAlso data
Row 6Also dataAlso data
Row 7Also dataAlso data
Row 8Also dataAlso data
- -

 

- -

bpmTopicC Class (centered) Odd and Even rows

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Col/Row Header -

Second column header p

-
Third column header
Row header 1This is dataThis is data
Row header 2 -

This is data p

-
-

This is data

-
-

Row header 3

-
-

This is long data

-
This is data
-

Row header 4

-

<th> cell acting as header

-
This is data -

This is data

-
Row header 5Also dataAlso data
Row header 6Also dataAlso data
Row header 7Also dataAlso data
Row header 8Also dataAlso data
- -

 

- -

bpmTopnTail Class

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Row 1This is dataThis is data
Row 2 -

This is data p

-
-

This is data

-
-

Row 3

-
-

This is long data

-
This is data
-

Row 4 <td> cell

-
This is data -

This is data

-
Row 5Also dataAlso data
Row 6Also dataAlso data
Row 7Also dataAlso data
Row 8Also dataAlso data
-

 

-

bpmTopnTailC Class (centered) Odd and Even rows

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Col/Row Header -

Second column header p

-
Third column header
Row header 1This is dataThis is data
Row header 2 -

This is data p

-
-

This is data

-
-

Row header 3

-
-

This is long data

-
This is data
-

Row header 4

-

<th> cell acting as header

-
This is data -

This is data

-
Row header 5Also dataAlso data
Row header 6Also dataAlso data
Row header 7Also dataAlso data
Row header 8Also dataAlso data
- -

 

- -

TopnTail Class

- - - - - - - - - - - - - - - - - - - - - - - - - -
Col and Row Header -

Second

-

column

-
Top right align
-

Row header 1 p

-
This is dataThis is data
Row header 2Bottom right align -

This is data. Can use

-

bold italic sub or sup text

-
-

Bottom right align

-
-

This is data. This cell

-

uses Cell Styles to set

-

the borders.

-

All borders are collapsible

-

in mPDF.

-
This is data
Row header 4 -

This is data p

-
More data
Row header 5Also data merged and centered
- -

 

- -

Lists in a Table

- - - - - - - - - - - - - - -
Col and Row Header -

Second

-

column

-
Top right align
-

Row header 1 p

-
This is dataThis is data
Row header 2 -
    -
  1. Item 1
  2. -
  3. Item 2 -
      -
    1. Subitem of ordered list
    2. -
    3. Subitem 2 -
        -
      1. Level 3 subitem
      2. -
      3. Level 3 subitem
      4. -
      -
    4. -
    -
  4. -
  5. Item 3
  6. -
  7. Another Item
  8. -
  9. Subitem -
      -
    1. Level 3 subitem
    2. -
    -
  10. -
  11. Another Item
  12. -
-
-Unordered list: -
    -
  • Item 1
  • -
  • Item 2 -
      -
    • Subitem of unordered list
    • -
    • Subitem 2 -
        -
      • Level 3 subitem
      • -
      • Level 3 subitem
      • -
      • Level 3 subitem
      • -
      -
    • -
    -
  • -
  • Item 3
  • -
-
-

 

- - -

Automatic Column Width

- - - - - - - - - -
CausesNulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit.
-Ut a eros at ligula vehicula pretium; maecenas feugiat pede vel risus.
-Suspendisse potenti
MechanismsUt magna ipsum, tempus in, condimentum at, rutrum et, nisl. Vestibulum interdum luctus sapien. Quisque viverra. Etiam id libero at magna pellentesque aliquet. Nulla sit amet ipsum id enim tempus dictum. Maecenas consectetuer eros quis massa. Mauris semper velit vehicula purus. Duis lacus. Aenean pretium consectetuer mauris. Ut purus sem, consequat ut, fermentum sit amet, ornare sit amet, ipsum. Donec non nunc. Maecenas fringilla. Curabitur libero. In dui massa, malesuada sit amet, hendrerit vitae, viverra nec, tortor. Donec varius. Ut ut dolor et tellus adipiscing adipiscing.
- - -

Column span

- - - - - - - - - - -
CausesNulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit.
-Ut a eros at ligula vehicula pretium; maecenas feugiat pede vel risus.
-Suspendisse potenti
MechanismsFusce eleifend neque sit amet erat.
-Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus.
Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla.
-Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien.
- - - -

Header & Footer Rows

-

A table using a header or footer row should repeat the header/footer row across pages:

-

bpmTopicC Class

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Col and Row Header -

Second column header

-
Third column header
Col and Row Footer -

Second column footer

-
Third column footer
Row header 1This is dataThis is data
Row header 2This is data -

This is data

-
-

Row header 3

-
-

This is data

-
This is data
Row header 4This is data -

This is data

-
Row header 5Also dataAlso data
Row header 6Also dataAlso data
Row header 7Also dataAlso data
Row header 8Also dataAlso data
Row header 9Also dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
Another Row headerAlso dataAlso data
-

 

- -

Autosizing Tables

-

Periodic Table of elements. Tables are set by default to reduce font size if complete words will not fit inside each cell, to a maximum of 1/1.4 * the set font-size. This value can be changed by setting $mpdf->shrink_tables_to_fit=1.8 or using html attribute <table autosize="1.8">.

- -
Periodic Table
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1A2A3B4B5B6B7B8B8B8B1B2B3A4A5A6A7A8A
H He
Li Be B C N O F Ne
Na Mg Al Si P S Cl Ar
K Ca Sc Ti V Cr Mn Fe Co Ni Cu Zn Ga Ge As Se Br Kr
Rb Sr Y Zr Nb Mo Tc Ru Rh Pd Ag Cd In Sn Sb Te I Xe
Cs Ba La Hf Ta W Re Os Ir Pt Au Hg Tl Pb Bi Po At Rn
Fr Ra Ac
Ce Pr Nd Pm Sm Eu Gd Tb Dy Ho Er Tm Yb Lu
Th Pa U Np Pu Am Cm Bk Cf Es Fm Md No Lr
- - - -

Rotated Tables

-

This is set to rotate -90 degrees (counterclockwise).

- -
Periodic Table
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1A2A3B4B5B6B7B8B8B8B1B2B3A4A5A6A7A8A
H He
Li Be B C N O F Ne
Na Mg Al Si P S Cl Ar
K Ca Sc Ti V Cr Mn Fe Co Ni Cu Zn Ga Ge As Se Br Kr
Rb Sr Y Zr Nb Mo Tc Ru Rh Pd Ag Cd In Sn Sb Te I Xe
Cs Ba La Hf Ta W Re Os Ir Pt Au Hg Tl Pb Bi Po At Rn
Fr Ra Ac
Ce Pr Nd Pm Sm Eu Gd Tb Dy Ho Er Tm Yb Lu
Th Pa U Np Pu Am Cm Bk Cf Es Fm Md No Lr
-

 

- - -

Rotated text in Tables

- -
Periodic Table
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Element type 1A

Second line

Element type longer 2A

Element type 3BElement type 4BElement type 5BElement type 6B7B8BElement type 8B R8BElement type 1B2BElement type 3AElement type 4AElement type 5AElement type 6A7AElement type 8A
HHe
Li Be B C N O F Ne
Na Mg Al Si P S Cl Ar
K Ca Sc TiVaCrMnFeCoNi Cu Zn Ga Ge As Se Br Kr
Rb Sr Y Zr Nb Mo Tc Ru RhPd Ag Cd In Sn Sb Te I Xe
Cs Ba La Hf Ta W Re Os Ir Pt Au Hg Tl Pb Bi Po At Rn
Fr Ra Ac
Ce Pr Nd Pm Sm Eu Gd Tb Dy Ho Er Tm Yb Lu
Th Pa U Np Pu Am Cm Bk Cf Es Fm Md No Lr
- - - - - - -

Nested Tables

- -
-Text before table - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
This is dataThis is data - - - - - - - - - - - - - - - - - - - - - - - - - - -
Row AA2A3A4
Row BB2B3B4
Row CC2Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci. C4
Row DD2D3D4
-
This is data
This is dataThis is data - - - - - - - - - - - - - - - - - - - - - - - - - - -
Row AA2A3A4
Row BB2B3B4
Row CC2Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci. C4
Row DD2D3D4
-
This is data
This is dataThis is data - - - - - - - - - - - - - - - - - - - - - - - - - - -
Row AA2A3A4
Row BB2B3B4
Row CC2Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci. C4
Row DD2D3D4
-
This is data
This is dataThis is data - - - - - - - - - - - - - - - - - - - - - - - - - - -
Row AA2A3A4
Row BB2B3B4
Row CC2Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci. C4
Row DD2D3D4
-
This is data
This is dataThis is dataThis is dataThis is data
This is dataThis is dataThis is data
This is dataThis is dataThis is dataThis is data
- -
- - - -

Text before table

- - - - - - - - - - - - - - - - - - - - - - - - - - - -
Row 1This is data -Text before table - - - - - - - - - - - - - - - - - - - - - - - - - - -
Row AA2A3A4
Row BB2B3B4
Row CC2C3C4
Row DD2D3D4
-

Text after table

-
This is data
Row 2This is dataThis is dataThis is data
Row 3 - - - - - - - - - - - - - - - - - - - - - - - - - - -
Row AA2A3A4
Row BB2B4
Row CC2 - - - - - - - - - - -
F1F2
Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec et nulla. Sed quis orci.G2
-
C4
Row DD2D3D4
-
- - - - - - - - - - - - - - - - - - - - - - - - - - -
Row AA2A3A4
Row BB2B3B4
Row CC2C3C4
Row DD2D3D4
-
This is data
Row 4This is data - - - - - - - - - - - - - - - - - - - - - - - - - -
Row AA2A3A4
Row BB2B4
Row CC2 - - - - - - - - - - -
F1F2
Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec et nulla. Sed quis orci.G2
-
C4
Row DD2D3D4
-
This is data
- - -
- - - - -

Forms

-
-Textarea - -

-Select - followed by text -

-Input Radio - No      Keep      Choice -

-Input Text - -

-Input Password - -

- Checkboxes
- Not selected
- Disabled
- Selected -

- - - - -

-
- - - - -

Annotations

-

Praesent pharetra nulla in turpis. Sed ipsum nulla, sodales nec, vulputate in, scelerisque vitae, magna. Sed egestas justo nec ipsum. Nulla facilisi. Praesent sit amet pede quis metus aliquet vulputate. Donec luctus. Cras euismod tellus vel leo. Cras tellus. Fusce aliquet. Curabitur tincidunt viverra ligula. Fusce eget erat. Donec pede. Vestibulum id felis. Phasellus tincidunt ligula non pede. Morbi turpis. In vitae dui non erat placerat malesuada. Mauris adipiscing congue ante. Proin at erat. Aliquam mattis.

-

P: Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci.

- - - - -

Graphs

- - -
FemaleMale
35 - 4442
45 - 5457
55 - 642118
65 - 741114
75 - 841010
85 - 9421
95 - 1041
TOTAL5452
- -
Subscriptions for 2008-09
- - - - - - -

Full Images & Barcode

-

On the first and last page of this document, an image is reproduced full page size by placing it inside a DIV element with CSS "position:absolute". In all other situations, images are constrained to the width and height of the printable page (i.e. inside the margins). The image on the back page has CSS "opacity:0.5".

- - - -
'. nl2br(htmlspecialchars('/* ALTERNATIVE PHP METHOD */ -$mpdf->SetAlpha(0.5); -$mpdf->Image(\'clematis.jpg\',0,0,210,297,\'jpg\',\'\',true, false); -// the last "false" allows a full page picture -$mpdf->SetAlpha(1); -')) .'
- - -

The back cover also has an ISBN barcode

- - -
'. nl2br(htmlspecialchars('/* ALTERNATIVE PHP METHOD */ -$mpdf->writeBarcode(\'978-0-9542246-0-8\', 1, 130, 230, 1,0, 3,3,4,4); -')) .'
- - -

But next is inserted the Index, which can also be done like this:

- - -
'. nl2br(htmlspecialchars('/* ALTERNATIVE PHP METHOD */ -$mpdf->AddPage(\'\',NEXT-ODD\'\',\'\',\'\',\'\',\'\',\'\',\'\',\'\',\'\',\'\',\'\',\'\',\'\',\'\',-1,-1,-1,-1); -$mpdf->WriteHTML(\'

Index

\'); -$mpdf->WriteHTML(\'\'); -')) .'
- - - - - - -

Index

- - - - - - -
- -
- -
- -
- - - -'; - -//============================================================== -//============================================================== -//============================================================== - -include("../mpdf.php"); - -$mpdf=new mPDF('s','A4','','',25,15,21,22,10,10); - -$mpdf->progbar_heading = 'mPDF file progress (Advanced)'; -$mpdf->StartProgressBarOutput(2); - -$mpdf->mirrorMargins = 1; -$mpdf->SetDisplayMode('fullpage','two'); -$mpdf->useGraphs = true; -$mpdf->list_number_suffix = ')'; -$mpdf->hyphenate = true; - -$mpdf->debug = true; - -$mpdf->WriteHTML($html); - -$mpdf->Output(); - -exit; -//============================================================== -//============================================================== -//============================================================== -//============================================================== -//============================================================== - - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/example49_changelog.php b/public_html/2022/newcms/pdf/examples/example49_changelog.php deleted file mode 100644 index 279979d..0000000 --- a/public_html/2022/newcms/pdf/examples/example49_changelog.php +++ /dev/null @@ -1,41 +0,0 @@ -tabSpaces = 6; - -$mpdf->allow_charset_conversion=true; -$mpdf->charset_in='windows-1252'; - - -//============================================================== - -$html = ' -

mPDF

-

ChangeLog

-
-'; -$lines = file('../CHANGELOG.txt'); - -$html .= '
';
-foreach($lines AS $line) {
-	$html .= htmlspecialchars($line);
-}
-$html .= '
'; -$html .= '
'; - -//============================================================== - -$mpdf->WriteHTML($html); - -$mpdf->Output(); -exit; - - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/example50_new_mPDF_3_features.php b/public_html/2022/newcms/pdf/examples/example50_new_mPDF_3_features.php deleted file mode 100644 index 903d349..0000000 --- a/public_html/2022/newcms/pdf/examples/example50_new_mPDF_3_features.php +++ /dev/null @@ -1,1905 +0,0 @@ - -.gradient { - border:0.1mm solid #220044; - background-color: #f0f2ff; - background-gradient: linear #c7cdde #f0f2ff 0 1 0 0.5; -} -.radialgradient { - border:0.1mm solid #220044; - background-color: #f0f2ff; - background-gradient: radial #00FFFF #FFFF00 0.5 0.5 0.5 0.5 0.65; - margin: auto; -} -.rounded { - border:0.1mm solid #220044; - background-color: #f0f2ff; - background-gradient: linear #c7cdde #f0f2ff 0 1 0 0.5; - border-radius: 2mm; - background-clip: border-box; -} -h4 { - font-family: sans; - font-weight: bold; - margin-top: 1em; - margin-bottom: 0.5em; -} -div { - padding:1em; - margin-bottom: 1em; - text-align:justify; -} -.example pre { - background-color: #d5d5d5; - margin: 1em 1cm; - padding: 0 0.3cm; -} - -pre { text-align:left } -pre.code { font-family: monospace } - -table.html4colortable {margin:auto; width:80%; border:none } -table.html4colortable TD {border:none; padding:0} -td .colorsquare { display:block;width:16px;height:16px;border:2px solid black } - -table.x11colortable td {text-align:center; background: white; } -table.x11colortable td.c { text-transform:uppercase } -table.x11colortable td:first-child, table.x11colortable td:first-child+td { border:1px solid black } -table.x11colortable th {text-align:center; background:black; color:white } - -table.tprofile th.title {background:gray; color:white} -table.tprofile th { width:29%;padding:2px } -table.tprofile td { width:71%;padding:2px } - -table.hslexample { background: #808080; padding:1em; margin:0; float:left; } -table.hslexample td,table.hslexample th { font-size:smaller;width:3em } - - - -

mPDF Version 3.0

-

New Features

- -
-

Page background

-
-The background colour can now be set by CSS styles on the <body> tag. This will set the background for the whole page. In this document, the background has been set as a gradient (see below). -
- -

Background Gradients

-
-Background can be set as a linear or radial gradient between two colours. The background has been set on this <div> element to a linear gradient. CSS style used here is:
-background-gradient: linear #c7cdde #f0f2ff 0 1 0 0.5;
-The four numbers are coordinates in the form (x1, y1, x2, y2) which defines the gradient vector. x and y are values from 0 to 1, where 1 represents the height or width of the box as it is printed. -
-
-Background gradients can be set on all block elements e.g. P, DIV, H1-H6, as well as on BODY. -
-
-The background has been set on this <div> element to a radial gradient. CSS style used here is:
-background-gradient: radial #00FFFF #FFFF00 0.5 0.5 0.5 0.5 0.65;
-The five numbers are coordinates in the form (x1, y1, x2, y2, r) where (x1, y1) is the starting point of the gradient with color1, -(x2, y2) is the center of the circle with color2, and r is the radius of the circle. -(x1, y1) should be inside the circle, otherwise some areas will not be defined. -
-
-Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec mattis lacus ac purus feugiat semper. Donec aliquet nunc odio, vitae pellentesque diam. Pellentesque sed velit lacus. Duis quis dui quis sem consectetur sollicitudin. Cras dolor quam, dapibus et pretium sit amet, elementum vel arcu. Duis rhoncus facilisis erat nec mattis. In hac habitasse platea dictumst. Vivamus hendrerit sem in justo aliquet a pellentesque lorem scelerisque. Suspendisse a augue sed urna rhoncus elementum. Aliquam erat volutpat. -
- -

Background Images

-
-The CSS properties background-image, background-position, and background-repeat are supported as defined in CSS2, as well as the shorthand form "background". -
-The background has been set on this <div> element to:
-background: transparent url(\'bg.jpg\') repeat fixed right top;
-Background gradients can be set on all block elements e.g. P, DIV, H1-H6, as well as on BODY. -
- -

Rounded Borders

-
-Rounded corners to borders can be added using border-radius as defined in the draft spec. of CSS3.
- -The two length values of the border-*-radius properties define the radii of a quarter ellipse that defines the shape of the corner of the outer border edge. -The first value is the horizontal radius.
-border-top-left-radius: 55pt 25pt; 55pt is radius of curve from top end of left border starting to go round to the top.
- -If the second length is omitted it is equal to the first (and the corner is thus a quarter circle). If either length is zero, the corner is square, not rounded.
- -The border-radius shorthand sets all four border-*-radius properties. If values are given before and after a slash, then the values before the slash set the horizontal radius and the values after the slash set the vertical radius. If there is no slash, then the values set both radii equally. The four values for each radii are given in the order top-left, top-right, bottom-right, bottom-left. If bottom-left is omitted it is the same as top-right. If bottom-right is omitted it is the same as top-left. If top-right is omitted it is the same as top-left. -
-
-border-radius: 4em;
- -would be equivalent to
- -border-top-left-radius: 4em;
-border-top-right-radius: 4em;
-border-bottom-right-radius: 4em;
-border-bottom-left-radius: 4em;

-
-and
-border-radius: 2em 1em 4em / 0.5em 3em;
-would be equivalent to
-border-top-left-radius: 2em 0.5em;
-border-top-right-radius: 1em 3em;
-border-bottom-right-radius: 4em 0.5em;
-border-bottom-left-radius: 1em 3em;
-
- -

Interlaced and alpha-channel-set PNG images supported

-
-Prior to version 3.0, mPDF has not supported PNG images which are interlaced, or images with transparency - now it does. -
With a blue background-color set, this PNG image with transparency appears like this: -
-
-
With a different background-color set, the same image appears like this: -
-
-
This will not work with background-gradient or background-image (the background-color is used to paint the transparent parts of the image).
-
- - -
- - -

CSS "Float"

-
-Block elements can be positioned alongside each other using the CSS property float: left or right. The clear property can also be used, set as left|right|both. Float is only supported on block elements (i.e. not SPAN etc.) and is not fully compliant with the CSS specification. -Float only works properly if a width is set for the float, otherwise the width is set to the maximum available (full width, or less if floats already set). -
-Margin-right can still be set for a float:right and vice-versa. -
-A block element next to a float has the padding adjusted so that content fits in the remaining width. Text next to a float should wrap correctly, but backgrounds and borders will overlap and/or lie under the floats in a mess. -
-NB The width that is set defines the width of the content-box. So if you have two floats with width=50% and either of them has padding, margin or border, they will not fit together on the page. -
-
-This is text in a <div> element that is set to float:right and width:28%. -
-
-This is text in a <div> element that is set to float:left and width:54%. -
- -
-This is text that follows a <div> element that is set to clear:both. - - - -

HTML Headers now support hyperlinks

-
-Hyperlinks can now be included in HTML headers and footers. See the link to the documentation manual in the footer of this document. -
- - -contd... - - -

Resetting Page Numbering

-
-Page numbers can now be reset to any value (rather than just 1) during the document i.e. in any function/tag that supports resetting the numbering: AddPage(), <pagebreak> etc. -
-Note that the page number has been reset to 20 from this page. -
- -

Page Numbering - additional text

-
-Text can be defined to appear before and after page numbers ($pagenumPrefix; $pagenumSuffix; $nbpgPrefix; $nbpgSuffix;) -
-This document has a non-HTML header defined with the right content as \'{PAGENO}{nbpg}\'.
-The following values have been set:
-$mpdf->pagenumPrefix = \'Page \';
-$mpdf->pagenumSuffix = \'\';
-$mpdf->nbpgPrefix = \' of \';
-$mpdf->nbpgSuffix = \' pages.\';
-
-
- -This is only recommended in non-HTML headers and footers. Although the text is added correctly in HTML headers & footers, the text alignment is not readjusted after substitution e.g. if it used in the right margin. -
- -

Other New features

-
-- internal links supported in Indexes (parameter added to CreateIndex() and CreateReference()
    $useLinking=true;)
-- improved handling of <br>, block elements, and text lines inside tables
-- borders of block-level elements & table cell borders supported (partially) in columns
-- optional error reporting for problems with Images ($showImageErrors=true;)
-- ToC will word-wrap long entries
-- internal links (Bookmarks, IndexEntry and ToCEntry) rewritten to give more accurate positioning
    (when used as <tag>)
-- autofont algorithm improved for CJK languages
-
- - -

All SVG color keywords supported

-

This table provides a list of all the named colors supported by mPDF. The - list is precisely the same as the SVG 1.0 color - keyword names. - The two color swatches on the left illustrate setting the background color - of a table cell in two ways: The first column uses the named color value, - and the second column uses the respective numeric color value. -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Named - Numeric - Color name - - Hex rgb - - Decimal - -
  - -   - - aliceblue - - #f0f8ff - - 240,248,255 - -
  - -   - - antiquewhite - - #faebd7 - - 250,235,215 - -
  - -   - - aqua - - #00ffff - - 0,255,255 - -
  - -   - - aquamarine - - #7fffd4 - - 127,255,212 - -
  - -   - - azure - - #f0ffff - - 240,255,255 - -
  - -   - - beige - - #f5f5dc - - 245,245,220 - -
  - -   - - bisque - - #ffe4c4 - - 255,228,196 - -
  - -   - - black - - #000000 - - 0,0,0 - -
  - -   - - blanchedalmond - - #ffebcd - - 255,235,205 - -
  - -   - - blue - - #0000ff - - 0,0,255 - -
  - -   - - blueviolet - - #8a2be2 - - 138,43,226 - -
  - -   - - brown - - #a52a2a - - 165,42,42 - -
  - -   - - burlywood - - #deb887 - - 222,184,135 - -
  - -   - - cadetblue - - #5f9ea0 - - 95,158,160 - -
  - -   - - chartreuse - - #7fff00 - - 127,255,0 - -
  - -   - - chocolate - - #d2691e - - 210,105,30 - -
  - -   - - coral - - #ff7f50 - - 255,127,80 - -
  - -   - - cornflowerblue - - #6495ed - - 100,149,237 - -
  - -   - - cornsilk - - #fff8dc - - 255,248,220 - -
  - -   - - crimson - - #dc143c - - 220,20,60 - -
  - -   - - cyan - - #00ffff - - 0,255,255 - -
  - -   - - darkblue - - #00008b - - 0,0,139 - -
  - -   - - darkcyan - - #008b8b - - 0,139,139 - -
  - -   - - darkgoldenrod - - #b8860b - - 184,134,11 - -
  - -   - - darkgray - - #a9a9a9 - - 169,169,169 - -
  - -   - - darkgreen - - #006400 - - 0,100,0 - -
  - -   - - darkgrey - - #a9a9a9 - - 169,169,169 - -
  - -   - - darkkhaki - - #bdb76b - - 189,183,107 - -
  - -   - - darkmagenta - - #8b008b - - 139,0,139 - -
  - -   - - darkolivegreen - - #556b2f - - 85,107,47 - -
  - -   - - darkorange - - #ff8c00 - - 255,140,0 - -
  - -   - - darkorchid - - #9932cc - - 153,50,204 - -
  - -   - - darkred - - #8b0000 - - 139,0,0 - -
  - -   - - darksalmon - - #e9967a - - 233,150,122 - -
  - -   - - darkseagreen - - #8fbc8f - - 143,188,143 - -
  - -   - - darkslateblue - - #483d8b - - 72,61,139 - -
  - -   - - darkslategray - - #2f4f4f - - 47,79,79 - -
  - -   - - darkslategrey - - #2f4f4f - - 47,79,79 - -
  - -   - - darkturquoise - - #00ced1 - - 0,206,209 - -
  - -   - - darkviolet - - #9400d3 - - 148,0,211 - -
  - -   - - deeppink - - #ff1493 - - 255,20,147 - -
  - -   - - deepskyblue - - #00bfff - - 0,191,255 - -
  - -   - - dimgray - - #696969 - - 105,105,105 - -
  - -   - - dimgrey - - #696969 - - 105,105,105 - -
  - -   - - dodgerblue - - #1e90ff - - 30,144,255 - -
  - -   - - firebrick - - #b22222 - - 178,34,34 - -
  - -   - - floralwhite - - #fffaf0 - - 255,250,240 - -
  - -   - - forestgreen - - #228b22 - - 34,139,34 - -
  - -   - - fuchsia - - #ff00ff - - 255,0,255 - -
  - -   - - gainsboro - - #dcdcdc - - 220,220,220 - -
  - -   - - ghostwhite - - #f8f8ff - - 248,248,255 - -
  - -   - - gold - - #ffd700 - - 255,215,0 - -
  - -   - - goldenrod - - #daa520 - - 218,165,32 - -
  - -   - - gray - - #808080 - - 128,128,128 - -
  - -   - - green - - #008000 - - 0,128,0 - -
  - -   - - greenyellow - - #adff2f - - 173,255,47 - -
  - -   - - grey - - #808080 - - 128,128,128 - -
  - -   - - honeydew - - #f0fff0 - - 240,255,240 - -
  - -   - - hotpink - - #ff69b4 - - 255,105,180 - -
  - -   - - indianred - - #cd5c5c - - 205,92,92 - -
  - -   - - indigo - - #4b0082 - - 75,0,130 - -
  - -   - - ivory - - #fffff0 - - 255,255,240 - -
  - -   - - khaki - - #f0e68c - - 240,230,140 - -
  - -   - - lavender - - #e6e6fa - - 230,230,250 - -
  - -   - - lavenderblush - - #fff0f5 - - 255,240,245 - -
  - -   - - lawngreen - - #7cfc00 - - 124,252,0 - -
  - -   - - lemonchiffon - - #fffacd - - 255,250,205 - -
  - -   - - lightblue - - #add8e6 - - 173,216,230 - -
  - -   - - lightcoral - - #f08080 - - 240,128,128 - -
  - -   - - lightcyan - - #e0ffff - - 224,255,255 - -
  - -   - - lightgoldenrodyellow - - #fafad2 - - 250,250,210 - -
  - -   - - lightgray - - #d3d3d3 - - 211,211,211 - -
  - -   - - lightgreen - - #90ee90 - - 144,238,144 - -
  - -   - - lightgrey - - #d3d3d3 - - 211,211,211 - -
  - -   - - lightpink - - #ffb6c1 - - 255,182,193 - -
  - -   - - lightsalmon - - #ffa07a - - 255,160,122 - -
  - -   - - lightseagreen - - #20b2aa - - 32,178,170 - -
  - -   - - lightskyblue - - #87cefa - - 135,206,250 - -
  - -   - - lightslategray - - #778899 - - 119,136,153 - -
  - -   - - lightslategrey - - #778899 - - 119,136,153 - -
  - -   - - lightsteelblue - - #b0c4de - - 176,196,222 - -
  - -   - - lightyellow - - #ffffe0 - - 255,255,224 - -
  - -   - - lime - - #00ff00 - - 0,255,0 - -
  - -   - - limegreen - - #32cd32 - - 50,205,50 - -
  - -   - - linen - - #faf0e6 - - 250,240,230 - -
  - -   - - magenta - - #ff00ff - - 255,0,255 - -
  - -   - - maroon - - #800000 - - 128,0,0 - -
  - -   - - mediumaquamarine - - #66cdaa - - 102,205,170 - -
  - -   - - mediumblue - - #0000cd - - 0,0,205 - -
  - -   - - mediumorchid - - #ba55d3 - - 186,85,211 - -
  - -   - - mediumpurple - - #9370db - - 147,112,219 - -
  - -   - - mediumseagreen - - #3cb371 - - 60,179,113 - -
  - -   - - mediumslateblue - - #7b68ee - - 123,104,238 - -
  - -   - - mediumspringgreen - - #00fa9a - - 0,250,154 - -
  - -   - - mediumturquoise - - #48d1cc - - 72,209,204 - -
  - -   - - mediumvioletred - - #c71585 - - 199,21,133 - -
  - -   - - midnightblue - - #191970 - - 25,25,112 - -
  - -   - - mintcream - - #f5fffa - - 245,255,250 - -
  - -   - - mistyrose - - #ffe4e1 - - 255,228,225 - -
  - -   - - moccasin - - #ffe4b5 - - 255,228,181 - -
  - -   - - navajowhite - - #ffdead - - 255,222,173 - -
  - -   - - navy - - #000080 - - 0,0,128 - -
  - -   - - oldlace - - #fdf5e6 - - 253,245,230 - -
  - -   - - olive - - #808000 - - 128,128,0 - -
  - -   - - olivedrab - - #6b8e23 - - 107,142,35 - -
  - -   - - orange - - #ffa500 - - 255,165,0 - -
  - -   - - orangered - - #ff4500 - - 255,69,0 - -
  - -   - - orchid - - #da70d6 - - 218,112,214 - -
  - -   - - palegoldenrod - - #eee8aa - - 238,232,170 - -
  - -   - - palegreen - - #98fb98 - - 152,251,152 - -
  - -   - - paleturquoise - - #afeeee - - 175,238,238 - -
  - -   - - palevioletred - - #db7093 - - 219,112,147 - -
  - -   - - papayawhip - - #ffefd5 - - 255,239,213 - -
  - -   - - peachpuff - - #ffdab9 - - 255,218,185 - -
  - -   - - peru - - #cd853f - - 205,133,63 - -
  - -   - - pink - - #ffc0cb - - 255,192,203 - -
  - -   - - plum - - #dda0dd - - 221,160,221 - -
  - -   - - powderblue - - #b0e0e6 - - 176,224,230 - -
  - -   - - purple - - #800080 - - 128,0,128 - -
  - -   - - red - - #ff0000 - - 255,0,0 - -
  - -   - - rosybrown - - #bc8f8f - - 188,143,143 - -
  - -   - - royalblue - - #4169e1 - - 65,105,225 - -
  - -   - - saddlebrown - - #8b4513 - - 139,69,19 - -
  - -   - - salmon - - #fa8072 - - 250,128,114 - -
  - -   - - sandybrown - - #f4a460 - - 244,164,96 - -
  - -   - - seagreen - - #2e8b57 - - 46,139,87 - -
  - -   - - seashell - - #fff5ee - - 255,245,238 - -
  - -   - - sienna - - #a0522d - - 160,82,45 - -
  - -   - - silver - - #c0c0c0 - - 192,192,192 - -
  - -   - - skyblue - - #87ceeb - - 135,206,235 - -
  - -   - - slateblue - - #6a5acd - - 106,90,205 - -
  - -   - - slategray - - #708090 - - 112,128,144 - -
  - -   - - slategrey - - #708090 - - 112,128,144 - -
  - -   - - snow - - #fffafa - - 255,250,250 - -
  - -   - - springgreen - - #00ff7f - - 0,255,127 - -
  - -   - - steelblue - - #4682b4 - - 70,130,180 - -
  - -   - - tan - - #d2b48c - - 210,180,140 - -
  - -   - - teal - - #008080 - - 0,128,128 - -
  - -   - - thistle - - #d8bfd8 - - 216,191,216 - -
  - -   - - tomato - - #ff6347 - - 255,99,71 - -
  - -   - - turquoise - - #40e0d0 - - 64,224,208 - -
  - -   - - violet - - #ee82ee - - 238,130,238 - -
  - -   - - wheat - - #f5deb3 - - 245,222,179 - -
  - -   - - white - - #ffffff - - 255,255,255 - -
  - -   - - whitesmoke - - #f5f5f5 - - 245,245,245 - -
  - -   - - yellow - - #ffff00 - - 255,255,0 - -
  - -   - - yellowgreen - - #9acd32 - - 154,205,50 -
- - -'; - - -//============================================================== -//============================================================== -//============================================================== -include("../mpdf.php"); - - -$mpdf=new mPDF('c','A4','','',15,15,20,20,5,5); - -//============================================================== - -$mpdf->pagenumPrefix = 'Page '; -$mpdf->pagenumSuffix = ''; -$mpdf->nbpgPrefix = ' of '; -$mpdf->nbpgSuffix = ' pages.'; -$header = array( - 'L' => array( - ), - 'C' => array( - ), - 'R' => array( - 'content' => '{PAGENO}{nbpg}', - 'font-family' => 'sans', - 'font-style' => '', - 'font-size' => '9', /* gives default */ - ), - 'line' => 1, -); -$footer = ' - - - -
See documentation manual for further details
-'; - -$mpdf->SetHeader($header,'O'); -$mpdf->SetHTMLFooter($footer); -//============================================================== - -$mpdf->SetDisplayMode('fullpage'); - -$mpdf->WriteHTML($html); - -$mpdf->Output(); -exit; - -//============================================================== -//============================================================== -//============================================================== -//============================================================== - - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/example51_new_mPDF_4_features.php b/public_html/2022/newcms/pdf/examples/example51_new_mPDF_4_features.php deleted file mode 100644 index 8882ad2..0000000 --- a/public_html/2022/newcms/pdf/examples/example51_new_mPDF_4_features.php +++ /dev/null @@ -1,615 +0,0 @@ - -body { font-family: sans; } -h4, p { margin: 0pt; -} -h5 { margin-bottom: 0; } -table.items { - font-size: 9pt; - border-collapse: collapse; - border: 3px solid #880000; - background-color: #FFFFFF; -} -td { vertical-align: top; -} -table thead td { background-color: #EEEEEE; - text-align: center; -} -table tfoot td { background-color: #AAFFEE; - text-align: center; -} -.barcode { - padding: 1.5mm; - margin: 0; - vertical-align: top; - color: #000000; -} -.barcodecell { - text-align: center; - vertical-align: middle; - padding: 0; -} - -@page { - background-gradient: linear #00FFFF #FFFF00 0 0.5 1 0.5; - odd-header-name: html_myHTMLHeaderOdd; - even-header-name: html_myHTMLHeaderEven; - odd-footer-name: html_myHTMLFooterOdd; - even-footer-name: html_myHTMLFooterEven; -} -#myfixed { - position: fixed; - overflow: auto; - height: 60mm; - margin-left: auto; - right: 30mm; - top: 150mm; - border: 1px solid #880000; - background-color: #EEDDFF; - padding: 3em; - text-align: justify; - text-indent: 3em; - font-size: 10pt; - font-family:sans; - font-style: italic; - line-height: 1.8; - color: red; -} -.myfixed2 { position: absolute; - overflow: visible; - left: 0; - right: 0; - width: 100mm; - top: 40mm; - margin-left: auto; - margin-right: auto; - border: 1px solid #000088; - background-color: #EEDDFF; - background: transparent url(\'bg.jpg\') repeat scroll right top; - padding: 1.5em; - font-family:sans; -} -.myfixed3 { position: absolute; - overflow: visible; - right: 0; - bottom: 0; - border: 1px solid #000088; - background-color: #EEDDFF; - background-gradient: linear #c7cdde #f0f2ff 0 1 0 0.5; - padding: 1.5em; - font-family:sans; -} -.myfixed4 { position: absolute; - overflow: auto; - left: 150mm; - right: 0; - top: 100mm; - height: 10mm; - border: 1px solid #000088; - background-color: #EEDDFF; - background-gradient: linear #c7cdde #f0f2ff 0 1 0 0.5; - padding: 0.5em; - font-family:sans; -} -.myfixed5 { position: absolute; - overflow: visible; - left: 150mm; - right: 0; - top: 125mm; - height: 10mm; - border: 1px solid #000088; - background-color: #EEDDFF; - background-gradient: linear #c7cdde #f0f2ff 0 1 0 0.5; - padding: 0.5em; - font-family:sans; -} -.myfixed6 { position: absolute; - overflow: hidden; - right: 150mm; - left: 0; - top: 110mm; - height: 10mm; - border: 1px solid #000088; - background-color: #EEDDFF; - background-gradient: linear #c7cdde #f0f2ff 0 1 0 0.5; - padding: 0.5em; - font-family:sans; -} -.myfixed7 { position: absolute; - right: 140mm; - top: 130mm; - width: auto; - border: 1px solid #000088; - background-color: #EEDDFF; - background-gradient: linear #c7cdde #f0f2ff 0 1 0 0.5; - padding: 0.5em; - font-family:sans; -} -div.indic, div.arabic { - font-size: 14pt; -} -div.indic h5, div.arabic h5 { - margin: 0; -} -div.indic p, div.arabic p, div.arabic li { - margin: 0; - margin-botom: 1em; - line-height: 1.8; -} -div.arabic p, div.arabic h5, div.arabic h4, div.arabic td { - text-align: right; -} -div.arabic td { - text-align: right; - font-size: 14pt; - padding: 1em; -} -h2 { color: #880000; margin-bottom: 0.2em; } -h4 { margin-bottom: 0.2em; } - - -
Page {PAGENO} of {nb}
-
- -
{PAGENO}
-
- -
{PAGENO}
-
- -
{PAGENO}
-
- - -

mPDF Version 4.0 New features

-
  • Ability to embed font subsets (much smaller files)
  • -
  • Support for Fixed position block elements
  • -
  • Support for Indic languages including consonant conjuncts
  • -
  • Much improved support for Arabic languages
  • -
  • New utility to help create your own fonts
  • -
  • Increased support for barcodes
  • -
- -

Indic Fonts/Languages

-
From BBC World Service Hindi News (http://www.bbc.co.uk/hindi/)
-
-

कुछ और तथ्य पॉप

-

जैक्सन मामले से जुड़े नए तथ्य सामने आए.

-
- - -
From BBC World Service Tamil News (http://www.bbc.co.uk/tamil/)
-
-

செய்தியரங்கம்

-

இலங்கையில் சிறுபான்மைக் கட்சிகளுக்கிடையில் பொது இணக்கப்பாட்டை எட்டும் முயற்சியில் ...

-
- -
From Yahoo Indian- Malayalam (http://in.malayalam.yahoo.com/)
-
-

പഴശ്ശിരാജ മെഗാഹിറ്റ്; ‘സ്വ.ലേ’ മുന്നേറുന്നു

-

പഴശ്ശിരാജ മലയാള സിനിമയുടെ ചരിത്രത്തിലെ ഏറ്റവും വലിയ വിജയമാകുകയാണ്. 30 ദിവസങ്ങള്‍ പിന്നിട്ടപ്പോള്‍ ചിത്രത്തിന്‍റെ കളക്ഷന്‍ 12 കോടി...

-
- -
From Yahoo Indian- Punjabi (http://in.punjabi.yahoo.com/)
-
-

ਚਾਂਸ ਪੇ ਡਾਂਸ ਸ਼ਾਹਿਦ ਦੀ ਕਹਾਣੀ

-

ਕੇਨ ਘੋਸ਼ ਦੀ ਫ਼ਿਲਮ ਚਾਂਸ ਪੇ ਡਾਂਸ ਫ਼ਿਲਮ ਵਿੱਚ ਸ਼ਾਹਿਦ ਕਪੂਰ ਮੁੱਖ ਭੂਮਿਕਾ ਵਿੱਚ ਹਨ। ਫ਼ਿਲਮ ਦੇ ਬਾਰੇ ਵਿੱਚ ਕਿਹਾ ਜਾ ਸਕਦਾ ਹੈ ਕਿ ਇਹ ਆਪ ਸ਼ਾਹਿਦ ਦੀ ਕਹਾਣੀ ਹੈ। ਫ਼ਿਲਮ ਦਾ ਨਾਇਕ ਮੱਧਮ ਪਰਿਵਾਰ ਦਾ ਦੱਸਿਆ ਗਿਆ ਹੈ ਅਤੇ ਕਈ...

-
- -
From Yahoo Indian- Gujarati (http://in.gujarati.yahoo.com/)
-
-

શિલ્પા અને રાજ આજે સાત ફેરા લેશે

-

બોલીવુડ સુંદરી શિલ્પા શેટ્ટી પોતાના મંગેતર ભારતીય મૂળના બ્રિટિશ ઉદ્યોગપતિ રાજ કુંદ્રા સાથે આજે લગ્ન બંધનમાં બંધાય જશે. વિવાહ સમારંભ રાજના મિત્ર કિરણ બાવાના ખંડાલામાં આવેલ ફાર્મ...

-
- - -

Arabic Fonts/Languages

-
From BBC World Service Arabic News (http://www.bbc.co.uk/arabic/)
-
-

بيع قفاز مايكل جاكسون بـ 350 الف دولار

-

بيع القفاز الجلدي المرصع الذي ارتداه مايكل جاكسون للمرة الاولى عام 1983 خلال اول خطوة من رقصته الشهيرة "السير على القمر (مون ووك)" بسعر 350 الف دولار السبت في نيويورك خلال مزاد لمقتنيات المغني الامريكي الراحل.

-
- -
In alternative fonts (available with mPDF):
-
-
-

بيع قفاز مايكل جاكسون بـ 350 الف دولار

-

بيع قفاز مايكل جاكسون بـ 350 الف دولار

-

بيع قفاز مايكل جاكسون بـ 350 الف دولار

-

بيع قفاز مايكل جاكسون بـ 350 الف دولار

-

بيع قفاز مايكل جاكسون بـ 350 الف دولار

-
-

بيع قفاز مايكل جاكسون بـ 350 الف دولار

-

بيع قفاز مايكل جاكسون بـ 350 الف دولار

-

بيع قفاز مايكل جاكسون بـ 350 الف دولار

-

بيع قفاز مايكل جاكسون بـ 350 الف دولار

-

بيع قفاز مايكل جاكسون بـ 350 الف دولار

-
-
- - - -
From BBC World Service Persian News (http://www.bbc.co.uk/persian/)
-
-

\'طبق نظرسنجی دولت انتخابات به دور دوم کشیده می شد\'

-

علیرضا زاکانی نماینده تهران در مجلس گفته که یک روز پیش از برگزاری انتخابات ریاست جمهوری در ایران، نظرسنجی وزارت کشور و وزارت اطلاعات ایران نشان می داد که انتخابات به دور دوم کشیده می شود.

-
- - -
From BBC World Service Urdu News (http://www.bbc.co.uk/urdu/)
-
-

جیکسن کا دستانہ 35 لاکھ ڈالر کا

-

امریکی پاپ سنگر مائیکل جیکسن کا دستانہ جس پر نقلی ہیرے جڑے ہوئے تھے اور جو انھیں پہلی مرتبہ ’مون واک‘ پیش کیئے جانے پر ملا تھا پینتیس لاکھ ڈالر میں نیلام ہو گیا ہے۔

-
- - -
From BBC World Service Pashto News (http://www.bbc.co.uk/pashto/)
-
-

ستاسي پيغامونه اود خوښى سندرې

-

د موسيقۍ داخپرونې په افغانستان کې داېف اېم په څپود سهار په لسو بجو اوريدلى شى

-
- - - -

Fixed-position block elements

-mPDF 4.0 supports fixed-position block elements (at least partially). This page has some examples of fixed-position elements. -
-
#1. Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula eros vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. -

Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula eros vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio.

-Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt eros turpis, vel aliquam quam eros odio et sapien. -
-Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt eros turpis, vel aliquam quam eros odio et sapien. -
-Mauris ante pede, eros auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci.
-
- -
#2. Praesent pharetra nulla in turpis. Sed ipsum nulla, sodales nec, vulputate in, scelerisque vitae, magna.
Praesent pharetra nulla in turpis. Sed ipsum nulla, sodales nec, vulputate in, scelerisque vitae, magna. Sed egestas justo nec ipsum. Nulla facilisi. Praesent sit amet pede quis metus aliquet vulputate. Donec luctus. Cras euismod tellus vel leo.
Sed egestas justo nec ipsum. Nulla facilisi. Praesent sit amet pede quis metus aliquet vulputate. Donec luctus. Cras euismod tellus vel leo.
- -
#3. Praesent pharetra nulla in turpis. Sed ipsum nulla, sodales nec, vulputate in, scelerisque vitae, magna. Praesent pharetra nulla in turpis. Sed ipsum nulla, sodales nec, vulputate in, scelerisque vitae, magna. Sed egestas justo nec ipsum. Nulla facilisi. Praesent sit amet pede quis metus aliquet vulputate. Donec luctus. Cras euismod tellus vel leo.
- -
#4. overflow: auto
Praesent pharetra nulla in turpis. Sed ipsum nulla, sodales nec, vulputate in, scelerisque vitae, magna. Sed egestas justo nec ipsum. Nulla facilisi.
- -
#5. overflow: visible
Praesent pharetra nulla in turpis. Sed ipsum nulla, sodales nec, vulputate in, scelerisque vitae, magna. Sed egestas justo nec ipsum. Nulla facilisi.
- -
#6. overflow: hidden
Praesent pharetra nulla in turpis. Sed ipsum nulla, sodales nec, vulputate in, scelerisque vitae, magna. Sed egestas justo nec ipsum. Nulla facilisi.
- -
#7. width: auto
Shrink-to-fit
- - -

Barcodes

-

NB Quiet zones - The barcode object includes space to the right/left or top/bottom only when the specification states a \'quiet zone\' or \'light margin\'. All the examples below also have CSS property set on the barcode object i.e. padding: 1.5mm;

- -

EAN-13 Barcodes (EAN-2 and EAN-5)

-

NB EAN-13, UPC-A, UPC-E, and EAN-8 may all include an additional bar code(EAN-2 and EAN-5) to the right of the main bar code (see below).

-

A nominal height and width for these barcodes is defined by the specification. \'size\' will scale both the height and width. Values between 0.8 and 2 are allowed (i.e. 80% to 200% of the nominal size). \'height\' can also be varied as a factor of 1; this is applied after the scaling factor used for \'size\'.

- - - - - - - - - - - - - - - - - - - - - - - - - - -
CODEDESCRIPTIONBARCODE
EAN13Standard EAN-13 barcode. Accepts 12 or 13 characters (creating checksum digit if required). [0-9] numeric only.
ISBNStandard EAN-13 barcode with \'ISBN\' number shown above [shown at height="0.66"]
ISSNStandard EAN-13 barcode with \'ISSN\' number shown above [shown at size="0.8"]
- -

EAN-8, UPC-A and UPC-E Barcodes

-

UPC-A, UPC-E, EAN-13, and EAN-8 may all include an additional bar code(EAN-2 and EAN-5) to the right of the main bar code (see below).

-

A nominal height and width for these barcodes is defined by the specification. \'size\' will scale both the height and width. Values between 0.8 and 2 are allowed (i.e. 80% to 200% of the nominal size). \'height\' can also be varied as a factor of 1; this is applied after the scaling factor used for \'size\'.

- - - - - - - - - - - - - - - - - - - - - - - - - - -
CODEDESCRIPTIONBARCODE
UPCAUPC-A barcode. This is a subset of the EAN-13. (098277211236) Accepts 11 or 12 characters (creating checksum digit if required). [0-9] numeric only
UPCEUPC-E barcode. Requires the UPC-A code to be entered as above (e.g. 042100005264 to give 425261). NB mPDF will die with an error message if the code is not valid, as only some UPC-A codes can be converted into valid UPC-E codes. UPC-E doesn\'t have a check digit encoded explicity, rather the check digit is encoded in the parity of the other six characters. The check digit that is encoded is the check digit from the original UPC-A barcode.
EAN8EAN-8 (5512345) Accepts 7 or 8 characters (creating checksum digit if required). [0-9] numeric only
- -

EAN-2 and EAN-5 supplements, and combined forms

-

UPC-A, UPC-E, EAN-13, and EAN-8 may all include an additional bar code(EAN-2 and EAN-5) to the right of the main bar code.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CODEDESCRIPTIONBARCODE
EAN2EAN-2 supplement barcode. mPDF does not generate EAN-5 barcode on its own; see supplements below. Used to denote an issue of a periodical. EAN-2 supplement accepts 2 digits [0-9] only, EAN-5 five.
EAN5EAN-5 supplement barcode. mPDF does not generate EAN-5 barcode on its own; see supplements below. Usually used in conjunction with EAN-13 for the price of books. 90000 is the code for no price.
EAN13P2Standard EAN-13 barcode with 2-digit UPC supplement (07)
ISBNP2Standard EAN-13 barcode with \'ISBN\' number shown above, and 2-digit EAN-2 supplement
ISSNP2Standard EAN-13 barcode with \'ISSN\' number shown above, and 2-digit EAN-2 supplement
UPCAP2UPC-A barcode with 2-digit EAN-2 supplement. This is a subset of the EAN-13. (075678164125 07)
UPCEP2UPC-E barcode with 2-digit EAN-2 supplement. (042100005264 07)
EAN8P2EAN-8 barcode with 2-digit EAN-2 supplement (55123457 07)
EAN13P5Standard EAN-13 barcode with 5-digit UPC supplement (90000)
ISBNP5Standard EAN-13 barcode with \'ISBN\' number shown above, and 5-digit EAN-5 supplement
ISSNP5Standard EAN-13 barcode with \'ISSN\' number shown above, and 5-digit EAN-5 supplement
UPCAP5UPC-A barcode with 5-digit EAN-5 supplement. This is a subset of the EAN-13. (075678164125 90000)
UPCEP5UPC-E barcode with 5-digit EAN-5 supplement. (042100005264 90000)
EAN8P5EAN-8 barcode with 5-digit EAN-5 supplement (55123457 90000)
- - -

Postcode Barcodes

-

These all have sizes fixed by their specification. Although they can be altered using \'size\' it is not recommended. \'height\' is ignored.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CODEDESCRIPTIONBARCODE
IMBIntelligent Mail Barcode - also known as: USPS OneCode 4-State Customer Barcode, OneCode 4CB, USPS 4CB, 4-CB, 4-State Customer Barcode, USPS OneCode Solution Barcode. (01234567094987654321-01234567891) Accepts: Up to 31 digits (required 20-digit Tracking Code, and up to 11-digit Routing Code; this may be 0, 5, 9, or 11 digits). If the Routing code is included, it should be spearated by a hyphen - like this example.
RM4SCCRoyal Mail 4-state Customer barcode (SN34RD1A). Accepts: max. 9 characters. Valid characters: [A-Z,0-9] Checksum digit: automatic.
KIXDutch KIX version of Royal Mail 4-state Customer barcode (SN34RD1A). Valid characters: [A-Z,0-9]. Checksum digit: automatic.
POSTNETPOSTNET barcode. Accepts 5, 9 or 11 digits. Valid characters: [0-9]. Checksum digit: automatic.
PLANETPLANET barcode. Accepts 11 or 13 digits. Valid characters: [0-9]. Checksum digit: automatic.
- - -

Variable width Barcodes

-

These barcodes are all of variable length depending on the code entered. There is no recommended maximum size for any of these specs, but all recommend a minimum X-dimension (width of narrowest bar) as 7.5mil (=0.19mm). The default used here is twice the minimum i.e. X-dim = 0.38mm.

-

The specifications give a minimum height of 15% of the barcode length (which can be variable). The bar height in mPDF is set to a default value of 10mm.

-

\'size\' will scale the barcode in both dimensions. mPDF will accept any number, but bear in mind that size="0.5" will set the bar width to the minimum. The \'height\' attribute further allows scaling - this factor is applied to already scaled barcode. Thus size="2" height="0.5" will give a barcode twice the default width (X-dim=0.76mm) and at the default height set in mPDF i.e. 10mm.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CODEDESCRIPTIONBARCODE
C128ACODE 128 A. Valid characters: [A-Z uppercase and control chars ASCII 0-31]. Checksum digit: automatic.
C128BCODE 128 B. Valid characters: [Upper / Lower Case + All ASCII Printable Characters]. Checksum digit: automatic.
C128CCODE 128 C. Valid characters: [0-9]. Must be an even number of digits. Checksum digit: automatic.
EAN128C [A/B/C]EAN128 (A, B, and C). Specified variant of Code 128, utilising an FNC1 start code. Also known as UCC/EAN-128 or GS1-128. Valid characters: [cf. Code 128]. Checksum digit: automatic.
C39CODE 39 - ANSI MH10.8M-1983 - USD-3 - 3 of 9. Valid characters: [0-9 A-Z \'-\' . Space $/+%]
C39+CODE 39 + CHECKSUM. Checksum digit: automatic.
C39ECODE 39 EXTENDED. Valid characters: [ASCII-characters between 0..127]
C39E+CODE 39 EXTENDED + CHECKSUM. Checksum digit: automatic.
S25Standard 2 of 5. Valid characters: [0-9]
S25+Standard 2 of 5 + CHECKSUM. Valid characters: [0-9]. Checksum digit: automatic.
I25Interleaved 2 of 5. Valid characters: [0-9]
I25+Interleaved 2 of 5 + CHECKSUM. Valid characters: [0-9]. Checksum digit: automatic.
I25BInterleaved 2 of 5 with bearer bars. Valid characters: [0-9]
I25B+Interleaved 2 of 5 + CHECKSUM with bearer bars. Valid characters: [0-9]. Checksum digit: automatic.
C93CODE 93 - USS-93 (extended). Valid characters: [ASCII-characters between 0..127]. Checksum digits: automatic.
MSIMSI. Modified Plessey. Valid characters: [0-9]
MSI+MSI + CHECKSUM (module 11). Checksum digit: automatic.
CODABARCODABAR. Valid characters: [0-9 \'-\' $:/.+ ABCD] ABCD are used as stop and start characters e.g. A34698735B
CODE11CODE 11. Valid characters: [0-9 and \'-\']. Checksum digits: 1 (or 2 if length of code is > 10 characters) - automatic.
- -'; - - -//============================================================== -//============================================================== -//============================================================== -include("../mpdf.php"); - -$mpdf=new mPDF('s'); - -$mpdf->SetDisplayMode('fullpage'); - -$mpdf->WriteHTML($html); - -$mpdf->Output(); - -exit; - -//============================================================== -//============================================================== -//============================================================== -//============================================================== - - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/example52_lineheight.htm b/public_html/2022/newcms/pdf/examples/example52_lineheight.htm deleted file mode 100644 index 73eca93..0000000 --- a/public_html/2022/newcms/pdf/examples/example52_lineheight.htm +++ /dev/null @@ -1,36 +0,0 @@ - - - - - -

Line-height & vertical alignment

-
In these examples, top and bottom padding are set to 0, so the block height = line height.
-
The inline text (set to a larger font-size) inherits the line-height as a factor of the largest font-size i.e. the line height will expand to reflect the largest font on the line.
-Line-height: "normal" (set in mPDF by default as 1.33).
-

Normal text 16pt font-size  and normal again

- -
Line-height: 2.0 When using relative line-heights, the text is aligned vertically so that the centre-line of the line goes throught the middle of the largest font.
-

Normal text 16pt font-size  and normal again

- -
Line-heights set as a percentages are computed on the base font-size, and are then inherited and treated the same as absolute lengths. This is also true for "em" values. The line-height of this line is set as 200% of the paragraph font-size (10pt).
-When using absolute line-heights, the text is aligned vertically so that the centre-line of the line goes throught the middle of the base font.
-This means that as far as possible, multiple lines will remain equally spaced
-Line-height: 200%
-

Normal text 16pt font-size  and normal again

- -
If the line includes a font-size greater than 1.6 times the computed line-height, then the text baseline is dropped so that the text will approximately fit within the line-height. -
Line-height: 2em
-

Normal text 18pt font-size  and normal again

- -
If the line includes a font-size greater than 2 times the computed line-height, then the line-height is increased to accommodate the larger fontsize.
-Line-height: 2em
-

Normal text 24pt font-size  and normal again

- - \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/example52_new_mPDF_4-2_features.php b/public_html/2022/newcms/pdf/examples/example52_new_mPDF_4-2_features.php deleted file mode 100644 index fb30356..0000000 --- a/public_html/2022/newcms/pdf/examples/example52_new_mPDF_4-2_features.php +++ /dev/null @@ -1,492 +0,0 @@ - -body { - font-family: sans-serif; -} -@page { - margin-top: 2.0cm; - margin-bottom: 2.0cm; - margin-left: 2.3cm; - margin-right: 1.7cm; - margin-header: 8mm; - margin-footer: 8mm; - footer: html_myHTMLFooter; - background-color:#ffffff; -} - -@page :first { - margin-top: 6.5cm; - margin-bottom: 2cm; - header: html_myHTMLHeader; - footer: _blank; - resetpagenum: 1; - background-gradient: linear #FFFFFF #FFFF44 0 0.5 1 0.5; - background: #ccffff url(bgbarcode.png) repeat-y fixed left top; -} -@page letterhead { - margin-top: 2.0cm; - margin-bottom: 2.0cm; - margin-left: 2.3cm; - margin-right: 1.7cm; - margin-header: 8mm; - margin-footer: 8mm; - footer: html_myHTMLFooter; - background-color:#ffffff; -} - -@page letterhead :first { - margin-top: 6.5cm; - margin-bottom: 2cm; - header: html_myHTMLHeader; - footer: _blank; - resetpagenum: 1; -} -.gradient { - border:0.1mm solid #220044; - background-color: #f0f2ff; - background-gradient: linear #c7cdde #f0f2ff 0 1 0 0.5; -} -.rounded { - border:0.1mm solid #220044; - background-color: #f0f2ff; - background-gradient: linear #c7cdde #f0f2ff 0 1 0 0.5; - border-radius: 2mm; - background-clip: border-box; -} -h4 { - font-weight: bold; - margin-top: 1em; - margin-bottom: 0.3em; -} -div.text { - padding:1em; - margin-bottom: 0.25em; - text-align:justify; -} -div.artificial { - font-family: arialuni; /* custom font using MS Arial Unicode */ -} -p { margin-top: 0; } -.code { - font-family: mono; - font-size: 9pt; - background-color: #d5d5d5; - margin: 1em 1cm; - padding: 0 0.3cm; -} - - - - - - - - -

mPDF Version 4.2

-

New Features

- -
-
    -
  • image handling improved
  • -
  • table layout - additional control over resizing
  • -
  • vertical-alignment of images - better support for all CSS types
  • -
  • top and bottom margins collapse between block elements
  • -
  • improved support for CSS line-height
  • -
  • display progress bar whilst generating file
  • -
  • CSS @page selector can be specified when adding a pagebreak
  • -
  • CSS @page selector allows different margins, backgrounds, headers/footers on :first :left and :right pages
  • -
  • PNG images with alpha channel fully supported
  • -
  • ability to generate italic and bold font variants from base font file
  • -
  • CJK fonts to embed as subsets
  • -
  • "double" border on block elements
  • -
  • character substitution for missing characters in UTF-8 fonts
  • -
  • direct passing of dynamically produced image data
  • -
  • background-gradient and background-image can now co-exist
  • -
- -Note: automatic top- and bottom-margin to accomodate varying header/footer size was introduced in v4.0 but was not highlighted cf. AutoHeaderMargin in the Manual. - -
-
- -
-

Page backgrounds

-Background images, gradients and/or colours can be used together on the same page. On this page, the bars on the left hand side are created using a background-image, whilst a background-gradient sets the background to the whole page. -
-
- -
-

CSS "double" border

-Block elements can now use the CSS property: border(style) = double. See also the tiger logo in the header of this page. -
-
- -
-

CJK fonts to embed as subsets

-When writing documents with Chinese, Japanese or Korean characters, mPDF has previously required the end-user to download Adobe\'s free CJK font pack. -The ability to embed font subsets now makes it feasible to use open license CJK fonts. 2 fonts are now available to download as an additional font-pack: -
    -
  • zn_hannom_a - contains all characters in the SJIS, BIG-5, and GBK codepages; original file was Han Nom A font (Hi-res version) from http://vietunicode.sourceforge.net/fonts/fonts_hannom.html
  • -
  • unbatang_0613 - contains all the (Korean) characters in the UHC codepage; original file from from http://kldp.net/projects/unfonts/download
  • -
-The following characters only added an extra 15kB to the size of this PDF file, and approximately 0.15 seconds extra to compile:
-Chinese (traditional) '."\xe6\x86\x82\xe9\xac\xb1".' ; chinese (simplified) '."\xe6\x9d\xa5\xe8\x87\xaa".' ; japanese '."\xe3\x81\x9f\xe3\x82\x90".' ; korean '."\xed\x82\xa4\xec\x8a\xa4".' -
-
- -
-

Artificial Bold and Italic

-The text in this block is in ArialUnicodeMS font. Using embedded subsets it covers most characters you want to print - BUT it does not have bold, italic, or bold-italic forms.
-From version 4.2, mPDF will create "artificial" font styles if they are not available as separate font files:
-

The quick brown fox jumps over a lazy dog

-

The quick brown fox jumps over a lazy dog

-

The quick brown fox jumps over a lazy dog

-
-
- -
-

Character substitution in UTF-8 files

-This paragraph has the font-family set to Trebuchet MS, and the document has the default font set as DejaVuSansCondensed. -The following characters are not present in the Trebuchet font, and are substituted from the core Adobe Zapfdingbats font:
- -✐ ✑ ✒ ✓ ✔ ✕ ✖ ✗ ✘ ✙ ✚ ✛ ✜ ✝ ✞ ✟
-The characters are not present in the Trebuchet font, and are substituted from the (default) DejaVuSansCondensed font:
-ʀ ʁ ʂ ʃ ʄ ʅ ʆ ʇ ʈ ʉ ʊ ʋ ʌ ʍ ʎ ʏ
-Character substitution in UTF-8 files is enabled by setting: -

-$mpdf->useSubstitutionsMB = true; -

-
NB In mPDF 5.0 this has changed to -

-$mpdf->useSubstitutions = true; -

-
-It is not recommended to enable this for regular use, as it will add to the processing time. -
- - - - - -

Margin-collapse

-

mPDF has always allowed margins to be collapsed at the top and bottom of pages. This is specified by the custom CSS property "margin-collapse: collapse"

- -

mPDF 4.2 also allows margins to collapse between block elements on the page. This is the default behaviour in browsers, and has been enabled in mPDF 4.2 by default.

- -

In the next 2 paragraphs, the first one has the margin-bottom set to 3em, and the second has the margin-top set to 0em. So the vertical-space between paragraphs is 3em:

- -

The quick brown fox jumps over a lazy dog

-

The quick brown fox jumps over a lazy dog

- -

In the next 2 paragraphs, the first one has the margin-bottom set to 2em, and the second has the margin-top set to 1em. The margins collapse to the larger of the adjoining margins i.e. 2em:

- -

The quick brown fox jumps over a lazy dog

-

The quick brown fox jumps over a lazy dog

- - - - -

Images

- -

PNG Alpha channel

-PNG alpha channel transparency is now fully supported, and works against solid backgrounds, gradients or background images: - - - - - - - - -
- -
- -

Image Border and padding

-Image padding is now supported as well as border and margin: - -
- -

Vertical alignment

-
From mPDF version 4.2 onwards, most of the values for "vertical-align" are supported: top, bottom, middle, baseline, text-top, and text-bottom.
-Note: The default value for vertical alignment has been changed to baseline, and the default padding to 0, consistent with most browsers. -
-
-
-baseline: -text-bottom: -middle: -bottom: -text-top: -top: -
- - - -

Image Alignment

-
From mPDF version 4.2 onwards, in-line images can be individually aligned (vertically). -
- -
-These images -are -top -aligned -
- -
-These images -are -text-top -aligned -
- -
-These images -are -bottom -aligned -
- -
-These images -are -text-bottom -aligned -
- -
-These images -are -baseline -aligned -
- -
-These images -are -middle -aligned -
- - - -

Images from PHP

- -
- -
-This image was created with the following code: - -

- $img = imagecreatetruecolor(200, 200);
- $white = imagecolorallocate($img, 255, 255, 255);
- $red = imagecolorallocate($img, 255, 0, 0);
- $green = imagecolorallocate($img, 0, 255, 0);
- $blue = imagecolorallocate($img, 0, 0, 255);
- imagearc($img, 100, 100, 200, 200, 0, 360, $white);
- imagearc($img, 100, 100, 150, 150, 25, 155, $red);
- imagearc($img, 60, 75, 50, 50, 0, 360, $green);
- imagearc($img, 140, 75, 50, 50, 0, 360, $blue);
- ob_start();
- imagejpeg($img);
- $mpdf->smileyface = ob_get_clean();
- imagedestroy($img);
-

-and written to the document using: -

-<img src="var:smileyface" /> -

- - - -

Line-height inheritance

-Line-height inheritance has been altered to follow the CSS2 recommendation: -
    -
  • normal is inherited as "normal"
  • -
  • 1.2 is inherited as a factor
  • -
  • 120% is converted to an actual value and then inherited as the computed value
  • -
  • em is converted to an actual value and then inherited as the computed value
  • -
  • px pt mm are inherited as fixed values
  • -
- -
Relative values (e.g. 1.3, normal)
-
-This DIV has the line-height set as "2.0" and font-size as 12pt. The line-height is therefore 24pt, but the factor of 2 is inherited...
-Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse... -
-This DIV has the font-size set as 8pt. The line-height of 2 is inherited...
-Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. -
-This DIV has the font-size set as 18pt. The line-height of 2 is inherited...
-Nulla felis erat, imperdiet eu, ullamcorper non... -
-
-
-
-
Absolute values (e.g. 130%, 1.3em, 18pt)
-
-This DIV has the line-height set as "200%" and font-size as 12pt. The computed line-height of 24pt is inherited...
-Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse... -
-This DIV has the font-size set as 8pt. The computed line-height of 24pt is inherited...
-Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. -
-This DIV has the font-size set as 18pt. The computed line-height of 24pt is inherited...
-Nulla felis erat, imperdiet eu, ullamcorper non... -
-
-
- - - -

Line-height & vertical alignment

-
In these examples, top and bottom padding are set to 0, so the block height = line height.
-
The inline text (set to a larger font-size) inherits the line-height as a factor of the largest font-size i.e. the line height will expand to reflect the largest font on the line.
-Line-height: "normal" (set in mPDF by default as 1.33).
-

Normal text 16pt font-size  and normal again

- -
Line-height: 2.0 When using relative line-heights, the text is aligned vertically so that the centre-line of the line goes throught the middle of the largest font.
-

Normal text 16pt font-size  and normal again

- -
Line-heights set as a percentages are computed on the base font-size, and are then inherited and treated the same as absolute lengths. This is also true for "em" values. The line-height of this line is set as 200% of the paragraph font-size (10pt).
-When using absolute line-heights, the text is aligned vertically so that the centre-line of the line goes throught the middle of the base font.
-This means that as far as possible, multiple lines will remain equally spaced
-Line-height: 200%
-

Normal text 16pt font-size  and normal again

- -
If the line includes a font-size greater than 1.6 times the computed line-height, then the text baseline is dropped so that the text will approximately fit within the line-height. -
Line-height: 2em
-

Normal text 18pt font-size  and normal again

- -
If the line includes a font-size greater than 2 times the computed line-height, then the line-height is increased to accommodate the larger fontsize.
-Line-height: 2em
-

Normal text 24pt font-size  and normal again

- -
-This broadly reflects the behaviour of IE and Firefox. Note that tall characters such as  may fall outside the computed line-heights. See the same in an HTML page. - - - -

Extended use of CSS @page selectors

-The CSS @page selector, together with the pseudo-selectors :first :left :right have increased support in mPDF 4.2
-A named @page can be selected when forcing a new page, e.g. this page was started with:
-<pagebreak page-selector="letterhead" /> -
-The header and background on this page (and page 1 of the document) are set by the CSS selector: @page letterhead :first {} whilst subsequent pages have no header, a footer, and no background. -
-CSS @page selectors allow different margins, backgrounds, headers/footers to be set on :first :left and :right pages. Only fixed or mirrored left- and right-margins are supported (i.e. cannot specify different margins for :left and :right). -
-This layout can be used to produce company letters with only the first page on letterheaded paper. - - -

Table Layout control

-

mPDF attempts to layout tables according to HTML and CSS specifications. However, because of the difference between screen and paged media, mPDF resizes tables when necessary to make them fit the page. This will happen if the minimum table-width is greater than the page-width. Minimum table-width is defined as the minimum width to accomodate the longest word in each column i.e. words will never be split. -

-

This resizing (minimum-width) can be disabled using a custom CSS property "overflow" on the TABLE tag. There are 4 options:

-<table style="overflow: auto"> (this is the default, using resizing) - - - - -
VerylongwordwithnospacesinitatallVerylongwordwithnospacesinitatallVerylongwordwithnospacesinitatall
-
-<table style="overflow: visible"> (disables resizing, but allows overflow to show) - - - - -
VerylongwordwithnospacesinitatallVerylongwordwithnospacesinitatallVerylongwordwithnospacesinitatall
-
- -<table style="overflow: hidden"> (disables resizing, and hides/clips any overflow) - - - - -
VerylongwordwithnospacesinitatallVerylongwordwithnospacesinitatallVerylongwordwithnospacesinitatall
-
- -<table style="overflow: wrap"> (forces words to break as necessary) - - - - -
VerylongwordwithnospacesinitatallVerylongwordwithnospacesinitatallVerylongwordwithnospacesinitatall
-
- - - -'; -if ($_REQUEST['html']) { echo $html; exit; } - - -//============================================================== -//============================================================== -//============================================================== -define('_MPDF_URI','../'); // required for the progress bar - -include("../mpdf.php"); - -$mpdf=new mPDF('','A4','','',15,15,20,20,5,5); - -$mpdf->StartProgressBarOutput(2); // 2 => advanced mode - -$mpdf->SetDisplayMode('fullpage'); - -$mpdf->useSubstitutions = true; - -// Dynamically create image in var:smileyface - $img = imagecreatetruecolor(200, 200); - $white = imagecolorallocate($img, 255, 255, 255); - $red = imagecolorallocate($img, 255, 0, 0); - $green = imagecolorallocate($img, 0, 255, 0); - $blue = imagecolorallocate($img, 0, 0, 255); - imagearc($img, 100, 100, 200, 200, 0, 360, $white); - imagearc($img, 100, 100, 150, 150, 25, 155, $red); - imagearc($img, 60, 75, 50, 50, 0, 360, $green); - imagearc($img, 140, 75, 50, 50, 0, 360, $blue); - ob_start(); - imagejpeg($img); - $mpdf->smileyface = ob_get_clean(); - imagedestroy($img); - - -$mpdf->WriteHTML($html); - -$mpdf->Output(); -exit; - -//============================================================== -//============================================================== -//============================================================== -//============================================================== - - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/example53_new_mPDF_v5-0_fonts.php b/public_html/2022/newcms/pdf/examples/example53_new_mPDF_v5-0_fonts.php deleted file mode 100644 index ab0c2b6..0000000 --- a/public_html/2022/newcms/pdf/examples/example53_new_mPDF_v5-0_fonts.php +++ /dev/null @@ -1,431 +0,0 @@ - -body { - font-family: sans-serif; - font-size: 10pt; -} -h4 { - font-variant: small-caps; -} -h5 { - margin-bottom: 0; - color: #110044; -} -dl { - margin: 0; -} - -

mPDF

-

Fonts in mPDF Version 5.x

-

Note: This example will only display correctly if you have all the fonts installed in mPDF

- -

mPDF version 5 supports Truetype fonts, reading and embedding directly from the .ttf font files. Fonts must follow the Truetype specification and use Unicode mapping to the characters. Truetype collections (.ttc files) and Opentype files (.otf) in Truetype format are also supported.

- -

Easy to add new fonts

-
    -
  1. Upload the Truetype font file to the fonts directory (/ttfonts)
  2. -
  3. Define the font file details in the configuration file (config_fonts.php)
  4. -
  5. Access the font by specifying it in your HTML code as the CSS font-family
  6. -
- -
These are some examples of Windows fonts:
-
-
Arial - The quick, sly fox jumped over the lazy brown dog.
-
Comic Sans MS - The quick, sly fox jumped over the lazy brown dog.
-
Trebuchet - The quick, sly fox jumped over the lazy brown dog.
-
Calibri - The quick, sly fox jumped over the lazy brown dog.
-
QuillScript - The quick, sly fox jumped over the lazy brown dog.
-
Lucidaconsole - The quick, sly fox jumped over the lazy brown dog.
-
Tahoma - The quick, sly fox jumped over the lazy brown dog.
-
- -

Full Unicode support

- -

The DejaVu fonts distributed with mPDF contain an extensive set of characters, but it is easy to add fonts to access uncommon characters.

- -
-
-
Georgian (DejaVuSansCondensed)
-
Ⴀ Ⴁ Ⴂ Ⴃ Ⴄ Ⴅ Ⴆ Ⴇ Ⴈ Ⴉ Ⴊ Ⴋ Ⴌ Ⴍ Ⴎ Ⴏ Ⴐ Ⴑ Ⴒ Ⴓ
-
Runic (Junicode)
-
ᚠ ᚡ ᚢ ᚣ ᚤ ᚥ ᚦ ᚧ ᚨ ᚩ ᚪ ᚫ ᚬ ᚭ ᚮ ᚯ ᚰ ᚱ ᚲ ᚳ ᚴ ᚵ ᚶ ᚷ ᚸ ᚹ ᚺ ᚻ ᚼ
-
Greek Extended (Quivira)
-
ἀ ἁ ἂ ἃ ἄ ἅ ἆ ἇ Ἀ Ἁ Ἂ Ἃ Ἄ Ἅ Ἆ Ἇ ἐ ἑ ἒ ἓ ἔ ἕ
-
IPA Extensions (Quivira)
-
ɐ ɑ ɒ ɓ ɔ ɕ ɖ ɗ ɘ ə ɚ ɛ ɜ ʣ ʤ ʥ ʦ ʧ ʨ ʩ ʪ ʫ
-
Letterlike Symbols (Symbola)
-
℀ ℁ ℂ ℃ ℄ ℅ ℆ ℇ ℈ ℉ ℊ ℋ ℌ ℍ ℎ ℏ ℐ ℑ ℒ ℓ ℔ ℕ № ℗ ℘ ℙ ℚ ℛ ℜ
-
Mathematical Operators (Symbola)
-
∀ ∁ ∂ ∃ ∄ ∅ ∆ ∇ ∈ ∉ ∊ ∋ ∌ ∍ ∎ ∏ ∐ ∑ − ∓ ∔ ∕ ∖ ∗ ∘ ∙ √ ∛ ∜ ∝ ∞
-
Miscellaneous Technical (Symbola)
-
⌀ ⌁ ⌂ ⌃ ⌄ ⌅ ⌆ ⌇⌎ ⌏ ⌐ ⌑ ⌒ ⌓ ⌔ ⌕ ⌖ ⌗ ⌘ ⌙ ⌚ ⌛ ⌠ ⌡ ⌢ ⌣ ⌤ ⌥ ⌦ ⌧
-
Enclosed Alphanumerics (Quivira)
-
① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩ ⑪ ⑫ ⑬ ⑭ ⑮ ⑯
-
Miscellaneous Symbols (DejaVuSansCondensed)
-
☀ ☁ ☂ ☃ ☄ ★ ☆ ☇ ☈ ☉ ☊ ☋ ☌ ☍ ☎ ☏ ☐ ☑ ☒
-
Supplemental Arrows-B (Symbola)
-
⤀ ⤁ ⤂ ⤃ ⤄ ⤅ ⤆ ⤇ ⤈ ⤉ ⤊ ⤋ ⤐ ⤑ ⤔ ⤕ ⤖ ⤗ ⤘ ⥶ ⥷ ⥸ ⥹ ⥺ ⥻ ⥼ ⥽
-
-
-The online manual lists a number of open-source fonts available to cover uncommon characters: http://mpdf1.com/manual/index.php?tid=451 - - -

Complex scripts

- -

Although all characters may be displayed, there are various reasons why a script may not appear as expected.

- -

Right-to-left languages (Hebrew, Arabic etc.)

-Arabic languages and Hebrew are written in a right-to-left direction (RTL). mPDF recognises both Arabic and Hebrew languages and reverses text direction automatically. - -
-ألسّلام عليكم     שלום -
- -Arabic languages (but not Hebrew) also change the form of the letter depending on its position in the text e.g. these are the initial, medial, final, and isolated forms of arabic letter \'ain\': - -
ع ـع ـعـ عـ
-The isolated characters are contained in the Unicode block \'Arabic\' U+0600 - U+06FF.
-The initial, medial and final forms are contained in Unicode Blocks \'Arabic Presentation Forms\' A and B (U+FB50 - U+FDFF, U+FE70 - U+FEFE). Note that quite a large number of fonts contain the isolated characters but not the presentation forms. Fonts used with mPDF must contain the \'Arabic Presentation Forms\' in order to display arabic text correctly. mPDF automatically converts letters to their initial/medial/final forms in several languages: arabic, persian/farsi, urdu, sindhi and pashto. - -

Arabic text is used for many different languages e.g. persian/farsi, urdu, pashto etc. These languages often contain letters unique to that language. \'Arabic\' fonts do not always contain the full set of arabic charcters necessary for all languages.

- -

Other RTL languages (using other alphabets) are reversed in order, but not otherwise processed, by mPDF e.g. Syriac, Thaana, N\'Ko, and Samaritan.

- - -

Indic languages

-Indic languages are also complex scripts which require some processing of characters before display. For example some vowels consist of 2 characters, to be placed before and after the adjacent consonant e.g. -
-
U+0D1C + U+0D4C [vowel AU] = [written together as &#x0D1C;&#x0D4C;]
- ജ + ൌ = ജൌ
-

Consonant conjuncts are where two adjacent characters are written as a single \'conjunct\' form e.g.

-
प + ॡ = पॣ
-

mPDF can support some of these languages, but requires specially prepared font files that are unique to mPDF.
-Supported languages: Bengali, Devanāgarī, Gujarāti, Gurmukhi, Kannada, Malayalam, Oriya, Tamil, Telugu

- -
- আসসালামু আলাইকুম - નમસ્તે - നമസ്കാരം - नमस्ते - வணக்கம்! -
-Complex scripts not supported: Khmer, Sinhala, Tibetan, Myanmar (Burmese), Balinese - -

Vertical writing

-
Vertical writing is not supported by mPDF (e.g. Mongolian and Phags-pa) although the individual characters can be displayed using suitable fonts.
- - - -

Combining diacritics

-

In Unicode, letters with diacritics (e.g. ÁáȦȧÄä) are usually represented as a single character e.g. Unicode U+0196 is an A Umlaut. There are 4 blocks in Unicode of diacritics or \'marks\' which can be used to combine with adjacent letters: Combining Diacritical Marks (U+0300 - U+036F), Combining Diacritical Marks Supplement (U+1DC0 - U+1DFF), Combining Marks for Symbols(U+20D0 - U+20FF) and Combining Half Marks (U+FE20 - U+FE2F).

- - -

Software applications use special positioning information stored in OpenType font files to resposition the diacritic/mark depending on the context. mPDF does not support this repositioning and is dependent on the font design and original placement of the diacritic: -

- - -
-
Á á Ȧ ȧ Ä ä ï (Precomposed characters: DejaVu Sans Condensed)
-
Á á Ȧ ȧ Ä ä ï (Using diacritics: DejaVu Sans Condensed)
-
Á á Ȧ ȧ Ä ä ï (Arial Unicode MS)
-
Á á Ȧ ȧ Ä ä ï (Times New Roman)
-
Á á Ȧ ȧ Ä ä ï (Courier New)
-
-

It is recommended to use precomposed characters whenever possible with mPDF.

- - - - -

Unicode Supplementary Planes

-

The original Unicode allocated characters between x0000 and xFFFF (65,536 characters). This \'Basic Multilingual Plane\' supported most characters in common use, including a large number of Unified Chinese-Japanese-Korean characters (CJK). Later the Unicode standard was extended to 16 Planes.

- -

The first plane (plane 0), the Basic Multilingual Plane (BMP), is where most characters have been assigned so far.

-

Plane 1, the Supplementary Multilingual Plane (SMP), is mostly used for historic scripts such as Linear B, but is also used for musical and mathematical symbols.

-

Plane 2, the Supplementary Ideographic Plane (SIP), is used for about 40,000 Unified Han (CJK) Ideographs.

- -

mPDF version 5 supports fonts containing characters from all Unicode Planes. By choosing the correct font, almost every single character from Unicode 5 can be displayed in a PDF file.

- -

Unicode Supplementary Multilingual Plane (SMP or Plane 1) U+10000 - U+1FFFF

-
Gothic text
-
-This paragraph shows Gothic text. These characters lie in the Unicode Supplementary Multilingual Plane U+10330 - U+1034F. -
-
-
-𐌰 𐌱 𐌲 𐌳 𐌴 𐌵 𐌶 𐌷 𐌸 𐌹 𐌺 𐌻 𐌼 𐌽 𐌾 𐌿 𐍀 𐍁 𐍂 𐍃 𐍄 𐍅 𐍆 𐍇 𐍈 𐍉 𐍊 -
-
-
-Font: MPH2BDamase (damase_v.2.ttf) available from: http://www.wazu.jp/gallery/views/View_MPH2BDamase.html -
- -
Egyptian Hieroglyphics
-
-This paragraph shows Egyptian Hieroglyphics. These characters lie in the Unicode Supplementary Multilingual Plane U+13000 - U+1342F. -
-
-
-𓀀 𓀁 𓀂 𓀃 𓀄 𓀅 𓀆 𓀇 𓀈 𓀉 𓀊 𓀋 𓀌 𓀍 𓀎 𓀏 𓀐 𓀑 -
-
-
-Font: Aegyptus.otf available from: http://users.teilar.gr/~g1951d/ -
- -

SMP contains mainly ancient scripts - see http://mpdf1.com/manual/index.php?tid=451 for full list.

- -

mPDF uses a different method to embed fonts in the PDF file if they include characters from SMP or SIP, because the characters cannot be represented by a 4 character hex code 0000-FFFF. This method is less eficient than the default method, and it can be suppressed by adding the font name to the array \'BMPonly\' in the config_fonts.php configuration file.

- -

Note that the DejaVu fonts distributed with mPDF and (GNU)FreeSans and FreeSerif fonts do contain a few characters in the SMP plane, but most users will not require them and by default they have been added to the array \'BMPonly\'.

- - - -

CJK characters

-

Below are examples of all the CJK Unicode blocks contained in the Basic Multilingual Plane and Supplemental Ideographic Plane

- -
-
Plane 0 (BMP)
-
-
CJK Radicals Supplement
-
⺎ ⺏ ⺐ ⺑ ⺒ ⺓ ⺔ ⺕ ⺖ ⺗ ⺘ ⺙ ⺛ ⺜ ⺝ ⺞ ⺟ ⺠ ⺡ ⺢ ⺣ ⺤ ⺥ ⺦ ⺧ ⺨ ⺩ ⺪
-
Kangxi Radicals
-
⼳ ⼴ ⼵ ⼶ ⼷ ⼸ ⼹ ⼺ ⼻ ⼼ ⼽ ⼾ ⼿ ⽀ ⽁ ⽂ ⽃ ⽄ ⽅ ⽆ ⽇ ⽈ ⽉ ⽊ ⽋ ⽌ ⽍
-
Ideographic Description Characters
-
⿰ ⿱ ⿲ ⿳ ⿴ ⿵ ⿶ ⿷ ⿸ ⿹ ⿺ ⿻
-
CJK Symbols and Punctuation
-
 〈 〉 《 》 「 」 『 』 【 】 〒 〓 〔 〕 〖 〗 〘 〙 〚 〛 〜 〝 〞 〦 〧 〨 〩 〪
-
Hiragana
-
ぁ あ ぃ い ぅ う ぇ え ぉ お か が き ぎ く ぐ け げ こ ご さ ざ
-
Katakana
-
゠ ァ ア ィ イ ゥ ウ ェ エ ォ オ カ ガ キ ギ ク グ ケ ゲ コ ゴ
-
Bopomofo
-
ㄅ ㄆ ㄇ ㄈ ㄉ ㄊ ㄋ ㄌ ㄍ ㄎ ㄏ ㄐ ㄑ ㄒ ㄓ ㄔ ㄕ ㄖ
-
Hangul Compatibility Jamo
-
ㄱ ㄲ ㄳ ㄴ ㄵ ㄶ ㄷ ㄸ ㄹ ㄺ ㄻ ㄼ ㄽ ㄾ ㄿ ㅀ ㅁ ㅂ
-
Kanbun
-
㆐ ㆑ ㆒ ㆓ ㆔ ㆕ ㆖ ㆗ ㆘ ㆙ ㆚ ㆛ ㆜ ㆝ ㆞ ㆟
-
Bopomofo Extended
-
ㆠ ㆡ ㆢ ㆣ ㆤ ㆥ ㆦ ㆧ ㆨ ㆩ ㆪ ㆫ ㆬ ㆭ ㆮ ㆯ ㆰ ㆱ ㆲ ㆳ ㆴ ㆵ ㆶ ㆷ
-
Katakana Phonetic Extensions
-
ㇰ ㇱ ㇲ ㇳ ㇴ ㇵ ㇶ ㇷ ㇸ ㇹ ㇺ ㇻ ㇼ ㇽ ㇾ ㇿ
-
Enclosed CJK Letters and Months
-
㈄ ㈅ ㈆ ㈇ ㈈ ㈉ ㈊ ㈋ ㈌ ㈍ ㈎ ㈏ ㈐ ㈑ ㈒ ㈓ ㈔ ㈕ ㈖ ㈗ ㈘ ㈙ ㈚ ㈛ ㈜
-
CJK Compatibility
-
㌀ ㌁ ㌂ ㌃ ㌄ ㌅ ㌆ ㌇ ㌈ ㌉ ㌊ ㌋ ㌌ ㌍ ㌎ ㌏ ㌐ ㌑ ㌒ ㌓ ㌔ ㌕ ㌖ ㌗ ㌘
-
CJK Unified Ideographs Extension A
-
㐀 㐁 㐂 㐃 㐄 㐅 㐆 㐇 㐈 㐉 㐊 㐋 㐌 㐍 㐎 㐏 㐐 㐑 㐒 㐓 㐔 㐕 㐖 㐗 㐘
-
CJK Unified Ideographs
-
一 丁 丂 七 丄 丅 丆 万 丈 三 上 下 丌 不 与 丏 丐 丑 丒 专 且 丕 世 丗 丘
-
Yi Syllables
-
ꀀ ꀁ ꀂ ꀃ ꀄ ꀅ ꀆ ꀇ ꀈ ꀉ ꀊ ꀋ ꀌ ꀍ ꀎ ꀏ ꀐ ꀑ ꀒ ꀓ ꀔ ꀕ ꀖ ꀗ ꀘ ꀙ ꀚ
-
Yi Radicals
-
꒐ ꒑ ꒒ ꒓ ꒔ ꒕ ꒖ ꒗ ꒘ ꒙ ꒚ ꒛ ꒜ ꒝ ꒞ ꒟ ꒠ ꒡ ꒢ ꒣ ꒤ ꒥ ꒦ ꒧ ꒨ ꒩
-
Hangul Syllables
-
가 각 갂 갃 간 갅 갆 갇 갈 갉 갊 갋 갌 갍 갎 갏 감 갑 값 갓 갔 강 갖 갗 갘
-
CJK Compatibility Ideographs
-
豈 更 車 賈 滑 串 句 龜 契 金 喇 奈 懶 癩 羅 蘿 螺 裸 邏 樂 洛 烙 珞 落 酪
-
- -
Plane 2 (SIP)
-
-
CJK Unified Ideographs Extension B
-
𠀀 𠀁 𠀂 𠀃 𠀄 𠀅 𠀆 𠀇 𠀈 𠀉 𠀊 𠀋 𠀌 𠀍 𠀎 𠀏 𠀐 𠀑 𠀒 𠀓
- -
CJK Unified Ideographs Extension C
-
𪜀 𪜁 𪜂 𪜃 𪜄 𪜅 𪜆 𪜇 𪜈 𪜉 𪜊 𪜋 𪜌 𪜍 𪜎 𪜏 𪜐 𪜑 𪜒 𪜓
- -
CJK Compatibility Ideographs Supplement
-
丽 丸 乁 𠄢 你 侮 侻 倂 偺 備 僧 像 㒞 𠘺 免 兔 兤 具 𠔜 㒹
-
- -
- - - -

Using CJK fonts in mPDF

- -

Fonts containing CJK characters are large files, typically 10-30MB. Adobe provides a free download of an \'Asian font pack\' allowing you to create PDF files without including (embedding) the font information in the file. This keeps the file size to a minimum and minimises resource usage on your website generating the PDF file. However, users will have to download the Adobe font packs to read the file, and other PDF software will not display the text correctly.

- -

mPDF allows you to embed subsets of CJK fonts keeping file size down, although there is increased memory usage to generate these files.

- -

Some CJK fonts are broken up into 2 files because of the size of the files. One freely available font with almost complete coverage of all CJK characters (in both BMP and SIP) is \'Sun\' available from Alan Wood\'s excellent website: http://www.alanwood.net/unicode/fonts-east-asian.html. This comes as 2 files, Sun-ExtA and Sun-ExtB (both about 20MB in size) containing the characters from BMP and SIP respectively. -

- -

mPDF allows you to treat these as one font by defining the second file as an SIP-extension of the first in the config_fonts.php configuration file. The following text includes random characters from the BMP and SIP mixed together:

- -
-
-鼂 鼈 鼗 𣈏 𣈥 鼦 鼧 𣈯 𣈱 鼹 齄 𣈲 𣈳 齅 齐 𣈴 𣉖 齓 齚 𣉢 𣊁 齢 齩 𣊉 𣊊 -
-
- -

This is the entry in the config_fonts.php configuration file:

-
-$this->fontdata = array(
-...
-       "sun-exta" => array(
-             \'R\' => "Sun-ExtA.ttf",
-             \'sip-ext\' => \'sun-extb\',
-       ),
-       "sun-extb" => array(
-             \'R\' => "Sun-ExtB.ttf",
-       ),
-
-...
-); -
- - -

This is the HTML code - note only the sun-exta font-family needs to be referenced:

-
-<div style="font-family:sun-extA;"> -&#40706; &#40712; &#40727; &#x2320f; &#x23225; &#40742; &#40743; &#x2322f; &#x23231; &#40761; &#40772; &#x23232; &#x23233; &#40773; &#40784; &#x23234; &#x23256; &#40787; &#40794; &#x23262; &#x23281; &#40802; &#40809; &#x23289; &#x2328a; -</div> -
- -

NB You may also need to edit the value $this->useAdobeCJK=false in config.php or use new mPDF(\'-aCJK\'), and edit the config_cp.php configuration file.

- - - - -

TrueType Collections

- -

TrueType Collections (.ttc files) contain more than one font. mPDF treats each font separately by defining the TTCfontID array in the config_fonts.php configuration file.

- -

This example uses the Windows MingLiU fonts, which consist of 2 files containing 6 fonts (note that mingliub is not a Bold variant):

- -

Font collection file (mingliu.ttc) contains the following fonts:
-[1] MingLiU (mingliu) Regular
-[2] PMingLiU (pmingliu) Regular (Proportional)
-[3] MingLiU_HKSCS (mingliu_hkscs) Regular
-

- -

Font collection file (mingliub.ttc) contains the following fonts:
-[1] MingLiU-ExtB (mingliu-extb) Regular
-[2] PMingLiU-ExtB (pmingliu-extb) Regular (Proportional)
-[3] MingLiU_HKSCS-ExtB (mingliu_hkscs-extb) Regular
-

- -

The following text includes characters from both BMP and SIP:

- -
-
-鼂 鼦 齄 齐 齢 齩 𣊉 𣊊 -
-
-鼂 鼦 齄 齐 齢 齩 𣊉 𣊊 -
-
-鼂 鼦 齄 齐 齢 齩 𣊉 𣊊 -
-
- -

This is the entry in the config_fonts.php configuration file:

-
-$this->fontdata = array(
-...
-       "mingliu" => array(
-             \'R\' => "mingliu.ttc",
-             \'TTCfontID\' => array (
-                 \'R\' => 1,
-             ),
-             \'sip-ext\' => \'mingliu-extb\',
-       ),
- -       "pmingliu" => array(
-             \'R\' => "mingliu.ttc",
-             \'TTCfontID\' => array (
-                 \'R\' => 2,
-             ),
-             \'sip-ext\' => \'pmingliu-extb\',
-       ),
- -       "mingliu_hkscs" => array(
-             \'R\' => "mingliu.ttc",
-             \'TTCfontID\' => array (
-                 \'R\' => 3,
-             ),
-             \'sip-ext\' => \'mingliu_hkscs-extb\',
-       ),
- -       "mingliu-extb" => array(
-             \'R\' => "mingliub.ttc",
-             \'TTCfontID\' => array (
-                 \'R\' => 1,
-             ),
-       ),
- -       "pmingliu-extb" => array(
-             \'R\' => "mingliub.ttc",
-             \'TTCfontID\' => array (
-                 \'R\' => 2,
-             ),
-       ),
- -       "mingliu_hkscs-extb" => array(
-             \'R\' => "mingliub.ttc",
-             \'TTCfontID\' => array (
-                 \'R\' => 3,
-             ),
-       ),
-
-...
-); -
- - -

This is the HTML code:

-
-<div style="font-family:mingliu;"> -&#40706; &#40742; &#40772; &#40784; &#40802; &#40809; &#x23289; &#x2328a; -</div> -
-<div style="font-family:mingliu_hkscs;"> -&#40706; &#40742; &#40772; &#40784; &#40802; &#40809; &#x23289; &#x2328a; -</div> -
-<div style="font-family:pmingliu;"> -&#40706; &#40742; &#40772; &#40784; &#40802; &#40809; &#x23289; &#x2328a; -</div> -
- - -'; - -//============================================================== -//============================================================== -//============================================================== -if ($_REQUEST['html']) { echo $html; exit; } -if ($_REQUEST['source']) { - $file = __FILE__; - header("Content-Type: text/plain"); - header("Content-Length: ". filesize($file)); - header("Content-Disposition: attachment; filename='".$file."'"); - readfile($file); - exit; -} -//============================================================== -//============================================================== -//============================================================== -//============================================================== -//============================================================== - -include("../mpdf.php"); - -$mpdf=new mPDF(); - -$mpdf->WriteHTML($html); - -$mpdf->Output(); -exit; - -//============================================================== -//============================================================== -//============================================================== - - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/example54_new_mPDF_v5-1_features_gradients_and_images.php b/public_html/2022/newcms/pdf/examples/example54_new_mPDF_v5-1_features_gradients_and_images.php deleted file mode 100644 index 758f815..0000000 --- a/public_html/2022/newcms/pdf/examples/example54_new_mPDF_v5-1_features_gradients_and_images.php +++ /dev/null @@ -1,498 +0,0 @@ - -body { - font-family: sans-serif; - font-size: 10pt; -} -h4 { - font-variant: small-caps; -} -h5 { - margin-bottom: 0; - color: #110044; -} -p { margin-top: 0; } -dl { - margin: 0; -} -table { - border-spacing: 0.5em; - border: 7px dashed teal; -} -.table1 { - background-image: -moz-linear-gradient(left, #07cdde 20%, #00f200 ); -} -.table1 tr.thisrow1 { - background-image-resolution: 300dpi; - background: transparent url(\'bayeux1.jpg\') repeat scroll left top; -} -.table1 tr.thisrow1 td { - height: 28mm; -} -.table1 tr.thisrow2 { - background-image: none; - background: -moz-linear-gradient(left, #c7Fdde 20%, #FF0000 ); - background: -webkit-gradient(linear, left bottom, left top, color-stop(0.29, rgb(90,83,12)), color-stop(0.65, rgb(117,117,39)), color-stop(0.83, rgb(153,153,67))); -} -.table3 { - border-collapse: collapse; - /* background-gradient: linear #07cdde #00f200 1 0 0.5 1; */ - background: -moz-linear-gradient(left, #07cdde 20%, #00f200 ); -} -tr.thisrow { - border: 3px dashed red; - background: transparent url(\'bayeux1.jpg\') repeat scroll left top; -} -.table3 tr.thisrow { - border: 3px dashed orange; - background: transparent url(\'bgrock.jpg\') repeat scroll left top; -} -tfoot tr { - border: 5px dashed blue; - /* background-gradient: linear #c7Fdde #FF0000 1 0 0.5 0; */ - background: -moz-linear-gradient(left, #c7Fdde 20%, #FF0000 ); -} -.gradient { - border:0.1mm solid #220044; - background-color: #f0f2ff; - background: linear-gradient(top, #c7cdde, #f0f2ff); -} -.rounded { - border:0.1mm solid #220044; - background-color: #f0f2ff; - background: linear-gradient(top, #c7cdde, #f0f2ff); - border-radius: 2mm; - background-clip: border-box; -} -div.text { - padding:1em; - margin: 1em 0; - text-align:justify; -} -.code { - font-family: mono; - font-size: 9pt; - background-color: #d5d5d5; - margin: 1em 1cm; - padding: 0 0.3cm; -} - - - -
- -

mPDF

-

New features in mPDF Version 5.1

- -
-
    -
  • CSS background (images, colours or gradients) on <TR> and <TABLE>
  • -
  • CSS border on <TR> (only in border-collapsed mode)
  • -
  • support for Mozilla and CSS3 gradient syntax: -
      -
    • -moz-linear-gradient, linear-gradient
    • -
    • -moz-radial-gradient, radial-gradient
    • -
    • -moz-repeating-linear-gradient, linear-repeating-gradient
    • -
    • -moz-repeating-radial-gradient, radial-repeating-gradient
    • -
    -
  • -
  • expanded support for gradients (including in SVG images): -
      -
    • multiple colour \'stops\'
    • -
    • opacity (transparency)
    • -
    • angle and/or position can be specified
    • -
    -
  • -
  • gradient can be used as an image mask (custom mPDF styles: gradient-mask)
  • -
  • CSS3 image-orientation supported for <IMG> (similar to existing custom mPDF attribute: rotate)
  • -
  • CSS3 image-resolution supported for <IMG>
  • -
  • background-image-resolution (custom mPDF CSS-type style) to define resolution of background images
  • -
  • improved support for SVG images
  • -
  • SVG and WMF images supported in background-image
  • -
  • file attachments (embedded in PDF file) → → → → →
  • -
-
- -
Tables: borders, background images & gradients
- -
Background images or gradients can be set on whole tables or table rows (as well as individual table cells)
- - - - - - - -
Row 1This is dataThis is data
This row hasa background-imageof the bayeux tapestry

Row 3

This is long data

This is data
This row hasa gradient setwhich spans all 3 cells
Row 5Also dataAlso data
- - -
Border can be set on table rows (only when border-collapse is set to collapse)
- - - - - -
Row 1This is dataThis is data
Row 2This is data
This is data
This is data
This is data
Also data

Row 3

This is long data

This is data
- - - - - -
- -
Mozilla and CSS3 gradient syntax
- -
-

Linear gradients

-

Angle set AND points e.g. -moz-linear-gradient(34% 84% 30deg, red, orange, yellow...

- - - - - - - - - - - - - - - - - - - - - -
top right 210 degrees   
30% 80% 60 degrees   
10px 40px 325 degrees   
bottom left 135deg   
- - -

Points set only e.g. -moz-linear-gradient(bottom left, red, orange, yellow...

- - - - - - - - - - - - - - - - - - - - - - -
bottom right  
top  
10px 40px  
30% 10%  
- - - -

Angle set but no points e.g. -moz-linear-gradient(30deg, red, orange, yellow...

- - - - - - - - - - - - - - - - - - - - - - -
90 degrees   
120 degrees   
180 degrees   
210 degrees   
- - - -
-

Linear and radial gradients are not specified in the CSS2 specification. The CSS3 draft specification gives a way of outputting gradients, but currently this is not supported by any browser.

-

Mozilla (Firefox) has developed its own way of producing gradients, which approximates to the CSS3 draft specification:

-
    -
  • -moz-linear-gradient
  • -
  • -moz-repeating-linear-gradient
  • -
  • -moz-radial-gradient and
  • -
  • -moz-repeating-radial-gradient
  • -
-

WebKit (Safari, Chrome etc.) have a separate way of defining gradients using -webkit-gradient

-

Microsoft (IE) does not support any such method of specifying gradients, but does have a function filter: progid:DXImageTransform.Microsoft.gradient()

-

When writing HTML for cross-browser compatibility, it is common to see something like this in a stylesheet:

-

-background: #999999; /* for non-css3 browsers */
-filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=\'#cccccc\', endColorstr=\'#000000\'); /* for IE */
-background: -webkit-gradient(linear, left top, left bottom, from(#cccccc), to(#000000)); /* for webkit browsers */
-background: -moz-linear-gradient(top, #cccccc, #000000); /* for firefox 3.6+ */
-

- - - -

mPDF versions <= 5.0 supported a custom style property background-gradient which accepted both linear and radial gradients. These continue to be supported (and both old and new forms can be used together); note the differences:

-
    -
  • mPDF background-gradients are output underneath background-images, and both can be specified; whereas the new CSS3/Mozilla-type gradients are defined as a type of background-image
  • -
  • CSS3/Mozilla gradients support multiple colour-stops, opacity, repeating-gradients, and a greater number of options for defining the gradient axis (linear gradients) or shape and extent (radial gradients)
  • -
- -

mPDF will attempt to parse a CSS stylesheet written for cross-browser compatibility:

-
    -
  • parse and support -moz type gradients
  • -
  • parse and support CSS3 gradient syntax
  • -
  • ignore -webkit syntax gradients
  • -
- - -

More details can be found at:

- -
- - - -
Repeating gradients
- -

-background: repeating-linear-gradient(red, blue 20px, red 40px); -

-background: -moz-repeating-linear-gradient(top left -45deg, red, red 10px, rgba(255,255,255,0) 10px, rgba(255,255,255,0) 20px); -

- -
 
- -
 
-
-
-
- -

-background: repeating-radial-gradient(20px 30px, circle farthest-side, red, yellow, green 10px, yellow 15px, red 20px); -

-background: repeating-radial-gradient(red, blue 20px, red 40px); -

-
 
- -
 
-
- - - - - -

Radial gradients

- -
 
- - -
 
-
- - -
 
- -
 
-
- -
 
- -
 
-
- -
 
- -
 
-
- - -

 
 
 
 
 
 
 

- -

 
 
 
 
 
 

- - - - - - - -
Gradient Image mask
- -
Gradients (linear or radial) can also be used to produce \'masks\' for images. The same syntax is used as for background gradients (e.g. -moz-linear-gradient) but is set using a custom mPDF style: gradient-mask. The rgba() method for defining colours is used: colours are ignored, but the opacity value is used to mask the image.
- -

<img src="windmill.jpg" style="gradient-mask: -moz-radial-gradient(center, ellipse closest-side, rgba(255,255,255,1), rgba(255,255,255,1) 30%, rgba(255,255,255,0) 90%, rgba(255,255,255,0));" /> -

<img src="windmill.jpg" style="gradient-mask: -moz-radial-gradient(center, ellipse closest-side, rgba(255,255,255,1), rgba(255,255,255,1) 70%, rgba(255,255,255,0) 90%, rgba(255,255,255,0));" /> -

<img src="windmill.jpg" style="gradient-mask: -moz-linear-gradient(left, rgba(0,0,0,0) , rgba(0,0,0,1) 50% , rgba(0,0,0,0) 100%);" /> -

- - - - - - -
- - - - - - -
Image orientation
- -
Images can be rotated using a custom mPDF HTML attribute: rotate. mPDF now also supports the draft CSS3 property of image-orientation. Rotation can be expressed in degrees, radians or grad units; it is corrected if necessary to an orthogonal rotation i.e. 90, 180 or 270 degrees. NB This does not work on background-images.
-

<img src="tiger2.png" style="image-orientation: -90deg" width="100" /> -
-<img src="tiger2.png" style="image-orientation: 3.14159rad" width="100" /> -

- - - - - - - -
- -
-
-
- -
Image resolution
- - -
Image files (which do not have an output width or height specified) are displayed in mPDF at the default resolution set by the variable $mpdf->img_dpi. This can be overridden using the draft CSS3 property \'image-resolution\', which can be applied to <IMG> or background-images. -
-The next 3 image files are identical (300px x 300px) but they have been saved with a different specified resolution: the first at 96dpi, the second at 300dpi. -
-NB When used in combination with \'from-image\', a specified resolution is only used if the image does not have an intrinsic resolution. Only JPG, PNG and BMP files store a specified DPI resolution in the file.
- -

<img src="tiger300px300dpi.png" style="image-resolution: from-image;" /> -
<img src="tiger300px300dpi.png" style="image-resolution: 150dpi;" /> -
<img src="tiger300px96dpi.png" style="image-resolution: from-image;" />

- - - - -

- - - - - -
Image resolution can also be applied to a background-image. This can be used as an alternative to the custom mPDF style property - \'background-image-resize\'
- -

<div height="300px" width="300px" style="background: #FFCCEE url(tiger300px96dpi.png); background-image-resolution: from-image; border: 0.2mm solid black;">

-
Hallo
world -
- -
- -

<div height="300px" width="300px" style="background-image: url(tiger300px300dpi.png); background-image-resolution: from-image; border: 0.2mm solid black;">

-
-
- - - -
- - - - - - -
Mixed effects
- - -
-
-
-
-
-
-Hallo World -
-
-Hallo World -
-
-
-
-
-
- -
- -
- -
- -'; - -//============================================================== -if ($_REQUEST['html']) { echo $html; exit; } -if ($_REQUEST['source']) { - $file = __FILE__; - header("Content-Type: text/plain"); - header("Content-Length: ". filesize($file)); - header("Content-Disposition: attachment; filename='".$file."'"); - readfile($file); - exit; -} -//============================================================== -$mpdf->WriteHTML($html); - -//============================================================== -//============================================================== -// OUTPUT -$mpdf->Output(); exit; - - -//============================================================== -//============================================================== -//============================================================== -//============================================================== - - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/example55_new_mPDF_v5-1_color_and_other_features.php b/public_html/2022/newcms/pdf/examples/example55_new_mPDF_v5-1_color_and_other_features.php deleted file mode 100644 index 1cd5bca..0000000 --- a/public_html/2022/newcms/pdf/examples/example55_new_mPDF_v5-1_color_and_other_features.php +++ /dev/null @@ -1,456 +0,0 @@ -useKerning=true; - -$mpdf->restrictColorSpace=3; // forces everything to convert to CMYK colors - -$mpdf->AddSpotColor('PANTONE 534 EC',85,65,47,9); - -//============================================================== -$html = ' - - - -
- -

mPDF

-

Other new features in mPDF Version 5.1

- -
-
    -
  • Kerning
  • -
  • Letter- and word-spacing
  • -
  • Small-caps improved to work with justified text, and now with kerning, letter- and word-spacing
  • -
  • Bleed area on @page media
  • -
  • Colorspace and colour conversion (almost everything except BMP images)
  • -
  • Spot colours
  • -
  • PDF/X files
  • -
  • dir="rtl"
  • -
  • numeric list-styles for arabic and indic
  • -
-
- - - -
Kerning
- -
Font kerning is supported. This corrects the inter-character spacing between specific pairs of letters. It is dependent on kerning information being available in the original font file. -
-You need to set $mpdf->useKerning=true; either in the config.php configuration file, or at runtime. This causes the kerning information to be loaded when fonts are accessed (and will therefore increase memory usage). -
-You can then set kerning on or off using the draft CSS3 style property "font-kerning". Values of normal or auto will turn kerning on; "none" will turn kerning off. -
- -
-Off: AWAY To War. -
- -
-On: AWAY To War. -
- - - -
Letter and word spacing & text justification
- -
Letter- and word-spacing can be set on almost all block and in-line style elements, using the CSS properties letter-spacing and word-spacing. Values of normal or a length can be specified (em or ex recommended). -Note that setting the letter-spacing value (including setting it to zero) will prevent any additional letter-spacing to be added when full-justifying text. The word-spacing value, however, is a minimum value, and can be increased in order to justify text. -
-
-Text-align: justify - no longer uses configurable variable $jSpacing= C | W | \'\' -
-The default value is for mixed letter- and word-spacing, set by jSWord and jSmaxChar -
-If a line contains a cursive script (RTL or Indic [devanagari, punjabi, bengali]) then it prevents letter-spacing -for justification on that line - effectively the same as setting letter-spacing:0 -
-Spacing values have been removed from the config_cp.php configuration file, so the "lang" property -(in config_cp) no longer determines justification behaviour (this includes the use of Autofont()). -
-When using RTL or Indic [devanagari, punjabi, bengali] scripts, you should set CSS letter-spacing:0 -whenever you use text-align:justify. -
- -

Nulla felis erat, imperdiet eu, ullamcorper non, nonummy quis, elit. Suspendisse potenti. Ut a eros at ligula vehicula pretium. Maecenas feugiat pede vel risus. Nulla et lectus. Letter spacing set at 0.2em. Fusce eleifend neque sit amet erat. Integer consectetuer nulla non orci. Morbi feugiat pulvinar dolor. Cras odio. Donec mattis, nisi id euismod auctor, neque metus pellentesque risus, at eleifend lacus sapien et risus. Word spacing set at 1em. Phasellus metus. Phasellus feugiat, lectus ac aliquam molestie, leo lacus tincidunt turpis, vel aliquam quam odio et sapien. Mauris ante pede, auctor ac, suscipit quis, malesuada sed, nulla. Integer sit amet odio sit amet lectus luctus euismod. Donec et nulla. Sed quis orci.

- - - - -
Colours
- -
Whenever a colour can be specified in a style, additional formats are now supported: rgb(), rgba(), hsl(), hsla(), cmyk(), cmyka(), or spot(). -
-Spot colours need to be defined at the start of the script using e.g. $mpdf->AddSpotColor(\'PANTONE 534 EC\',85,65,47,9); -
-The four values define the CMYK values used when the spot colour is not available. A tint % can be specified when using the spot colour in the document. -
- -
background-color: rgba(150,150,255, 0.5); color: rgb(0,150,150);
-
background-color: rgba(60%,60%,100%, 0.5); color: rgb(0,60%,60%);
-
background-color: hsla(180,30%,25%, 0.5); color: hsl(360,100%,50%);
-
background-color: cmyka(85,65,0,30, 0.3); color: spot(PANTONE 300 EC,80%);
-
-
- - -
@page media
- -
When using @page to create a print publication with page-size less than sheet-size, the bleed margin is now configurable. -Backgrounds/gradients/images now use the bleed box as their "container box", rather than the whole page. (See this document as an example.) -
-Crop- and cross-marks can now both be used together, and are more configurable. -Also, background-image-opacity and background-image-resize have been extended to work with @page CSS. -
-The following values can be set in the configuration file, config.php: -$this->bleedMargin
-$this->crossMarkMargin
-$this->cropMarkMargin
-$this->cropMarkLength
-$this->nonPrintMargin
-
- - - -
Colorspace and colour conversion
- -
PDF files can contain objects using different colorSpaces e.g. Grayscale, RGB and CMYK. By default, -mPDF creates PDF files using the colours as they are specified: font colour may be set (e.g. #880000) as an RGB colour, and the -file may contain JPG images in RGB or CMYK format. -
-In some circumstances, you may wish to create a PDF file with restricted colorSpaces e.g. printers will often want files -which contain only CMYK, spot colours, or grayscale, but not RGB. -
-Additional methods for defining colours can be used (see above), but alternatively you can set mPDF to restrict the colorSpace by setting -the value for $mpdf->restrictColorSpace: -
-1 - allow GRAYSCALE only [converts CMYK/RGB->gray] -
-2 - allow RGB / SPOT COLORS / Grayscale [converts CMYK->RGB] -
-3 - allow CMYK / SPOT COLORS / Grayscale [converts RGB->CMYK] -
-This will attempt to convert every colour value used in the document to the permitted colorSpace(s). Almost everything including images -will be converted (except BMP images), and the conversion of images may take significant time. -
-This example file is set to (3) CMYK; compare the appearance of the Tux penguin in this file and in the previous example file (RGB). -
-
-
- - -
PDF/A and PDF/X files
- -
mPDF can produce files which (attempt to) meet the PDF/A and PDF/X specifications. In addition to restricted colorSpace, -PDF/A and /X files cannot contain images or colour values with "transparency". -
-Please note that full compliance with the PDF/A or /X specification is not guaranteed. -
- - - -
RTL (right-to-left) text
- -
Handling of RTL (right-to-left) languages has been significantly rewritten, and is likely to cause -changes to the resulting files if you have previously been using mPDF. The changes have made mPDF -act more like a browser, respecting the HTML/CSS rules. -Changes include:
-
    -
  • the document now has a baseline direction; this determines the -
      -
    • behaviour of blocks for which text-align has not been specifically set
    • -
    • layout of mirrored page-margins, columns, ToC and Indexes, headers / footers
    • -
    • base direction can be set by any of: -
        -
      • $mpdf->SetDirectionality(\'rtl\');
      • -
      • <html dir="rtl" or style="direction: rtl;">
      • -
      • <body dir="rtl" or style="direction: rtl;">
      • -
    • -
    • base direction is an inherited CSS property, so will affect all content, unless...
    • -
  • -
  • direction can be set for all HTML block elements e.g. <DIV><P><TABLE><UL> etc using -
      -
    • CSS property <style="direction: rtl;">
    • -
    • direction can only be set on the top-level element of nested lists
    • -
    • direction can only be set on <TABLE>, NOT on THEAD, TBODY, TD etc.
    • -
    • nested tables CAN have different directions
    • -
  • -
  • NOTE that block/table margins/paddings are NOT reversed by direction
  • -
  • language (either CSS "lang", using Autofont, or through initial set-up e.g. $mpdf = new mPDF(\'ar\') ) - no longer affects direction in any way.
    - NB config_cp.php has been changed as a result; any values of "dir" set here are now ineffective
  • -
  • default text-align is now as per CSS spec: "a nameless value which is dependent on direction"
    - NB default text-align removed in default stylesheet in config.php
  • -
  • once text-align is specified, it is respected and inherited
    - NB mPDF <5.1 reversed the text-align property for all blocks when RTL set.
  • -
  • the configurable value $rtlcss is depracated, as it is no longer required
  • -
  • improved algorithm for dtermining text direction -
      -
    • english word blocks are handled in text reversal as one block i.e. dir="rtl"
      - [arabic text] this will not be reversed [arabic text]
    • -
    • arabic numerals 0-9 handled correctly
    • -
  • -
-Although the control of direction for block elements is now more configurable, the control of -text direction (RTL arabic characters) remains fully automatic and unconfigurable. -<BDO> etc has no effect. Enclosing text in silent tags can sometimes help e.g.: - content<span>[arabic text]</span>content -
- - - - -
List styles
-
Additional numerical list-styles are supported. All of these (except Tamil) are consistent with the draft CSS3 specification:
-list-style: arabic-indic | bengali | devanagari | gujarati | gurmukhi | kannada | malayalam | oriya | persian | telugu | thai | urdu | tamil - -
- - - -
    - - -
  • Arabic -
      -
    1. One
    2. -
    3. Two
    4. -
    5. Three
    6. -
    7. Four
    8. -
    9. Five
    10. -
    11. Six
    12. -
    -
  • -
  • Persian -
      -
    1. One
    2. -
    3. Two
    4. -
    5. Three
    6. -
    7. Four
    8. -
    9. Five
    10. -
    11. Six
    12. -
    -
  • -
  • Urdu -
      -
    1. One
    2. -
    3. Two
    4. -
    5. Three
    6. -
    7. Four
    8. -
    9. Five
    10. -
    11. Six
    12. -
    -
  • - -
- -
    - -
  • Bengali -
      -
    1. One
    2. -
    3. Two
    4. -
    5. Three
    6. -
    7. Four
    8. -
    9. Five
    10. -
    -
  • -
  • Devanagari -
      -
    1. One
    2. -
    3. Two
    4. -
    5. Three
    6. -
    7. Four
    8. -
    9. Five
    10. -
    -
  • -
  • Gujarati -
      -
    1. One
    2. -
    3. Two
    4. -
    5. Three
    6. -
    7. Four
    8. -
    9. Five
    10. -
    -
  • -
  • Gurmukhi -
      -
    1. One
    2. -
    3. Two
    4. -
    5. Three
    6. -
    7. Four
    8. -
    9. Five
    10. -
    -
  • -
  • Kannada -
      -
    1. One
    2. -
    3. Two
    4. -
    5. Three
    6. -
    7. Four
    8. -
    9. Five
    10. -
    -
  • -
  • Malayalam -
      -
    1. One
    2. -
    3. Two
    4. -
    5. Three
    6. -
    7. Four
    8. -
    9. Five
    10. -
    -
  • -
  • Oriya -
      -
    1. One
    2. -
    3. Two
    4. -
    5. Three
    6. -
    7. Four
    8. -
    9. Five
    10. -
    -
  • -
  • Tamil -
      -
    1. One
    2. -
    3. Two
    4. -
    5. Three
    6. -
    7. Four
    8. -
    9. Five
    10. -
    -
  • -
  • Telugu -
      -
    1. One
    2. -
    3. Two
    4. -
    5. Three
    6. -
    7. Four
    8. -
    9. Five
    10. -
    -
  • - -
- -'; - -//============================================================== -$mpdf->WriteHTML($html); - -//============================================================== -//============================================================== -// OUTPUT -$mpdf->Output(); exit; - - -//============================================================== -//============================================================== -//============================================================== -//============================================================== - - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/example56_new_mPDF_v5-1_features_grayscale.php b/public_html/2022/newcms/pdf/examples/example56_new_mPDF_v5-1_features_grayscale.php deleted file mode 100644 index 7d87cc0..0000000 --- a/public_html/2022/newcms/pdf/examples/example56_new_mPDF_v5-1_features_grayscale.php +++ /dev/null @@ -1,497 +0,0 @@ -restrictColorSpace = 1; // forces to grayscale -//============================================================== -$html = ' - - - -
- -

mPDF

-

New features in mPDF Version 5.1

- -
-

This is a copy of Example 54, but all object colours are converted to grayscale using simply:

-

$mpdf->restrictColorSpace = 1;

-
- -
-
    -
  • CSS background (images, colours or gradients) on <TR> and <TABLE>
  • -
  • CSS border on <TR> (only in border-collapsed mode)
  • -
  • support for Mozilla and CSS3 gradient syntax: -
      -
    • -moz-linear-gradient, linear-gradient
    • -
    • -moz-radial-gradient, radial-gradient
    • -
    • -moz-repeating-linear-gradient, linear-repeating-gradient
    • -
    • -moz-repeating-radial-gradient, radial-repeating-gradient
    • -
    -
  • -
  • expanded support for gradients (including in SVG images): -
      -
    • multiple colour \'stops\'
    • -
    • opacity (transparency)
    • -
    • angle and/or position can be specified
    • -
    -
  • -
  • etc...
  • -
-
- -
Tables: borders, background images & gradients
- -
Background images or gradients can be set on whole tables or table rows (as well as individual table cells)
- - - - - - - -
Row 1This is dataThis is data
This row hasa background-imageof the bayeux tapestry

Row 3

This is long data

This is data
This row hasa gradient setwhich spans all 3 cells
Row 5Also dataAlso data
- - -
Border can be set on table rows (only when border-collapse is set to collapse)
- - - - - -
Row 1This is dataThis is data
Row 2This is data
This is data
This is data
This is data
Also data

Row 3

This is long data

This is data
- - - - - -
- -
Mozilla and CSS3 gradient syntax
- -
-

Linear gradients

-

Angle set AND points e.g. -moz-linear-gradient(34% 84% 30deg, red, orange, yellow...

- - - - - - - - - - - - - - - - - - - - - -
top right 210 degrees   
30% 80% 60 degrees   
10px 40px 325 degrees   
bottom left 135deg   
- - -

Points set only e.g. -moz-linear-gradient(bottom left, red, orange, yellow...

- - - - - - - - - - - - - - - - - - - - - - -
bottom right  
top  
10px 40px  
30% 10%  
- - - -

Angle set but no points e.g. -moz-linear-gradient(30deg, red, orange, yellow...

- - - - - - - - - - - - - - - - - - - - - - -
90 degrees   
120 degrees   
180 degrees   
210 degrees   
- - - -
-

Linear and radial gradients are not specified in the CSS2 specification. The CSS3 draft specification gives a way of outputting gradients, but currently this is not supported by any browser.

-

Mozilla (Firefox) has developed its own way of producing gradients, which approximates to the CSS3 draft specification:

-
    -
  • -moz-linear-gradient
  • -
  • -moz-repeating-linear-gradient
  • -
  • -moz-radial-gradient and
  • -
  • -moz-repeating-radial-gradient
  • -
-

WebKit (Safari, Chrome etc.) have a separate way of defining gradients using -webkit-gradient

-

Microsoft (IE) does not support any such method of specifying gradients, but does have a function filter: progid:DXImageTransform.Microsoft.gradient()

-

When writing HTML for cross-browser compatibility, it is common to see something like this in a stylesheet:

-

-background: #999999; /* for non-css3 browsers */
-filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=\'#cccccc\', endColorstr=\'#000000\'); /* for IE */
-background: -webkit-gradient(linear, left top, left bottom, from(#cccccc), to(#000000)); /* for webkit browsers */
-background: -moz-linear-gradient(top, #cccccc, #000000); /* for firefox 3.6+ */
-

- - - -

mPDF versions <= 5.0 supported a custom style property background-gradient which accepted both linear and radial gradients. These continue to be supported (and both old and new forms can be used together); note the differences:

-
    -
  • mPDF background-gradients are output underneath background-images, and both can be specified; whereas the new CSS3/Mozilla-type gradients are defined as a type of background-image
  • -
  • CSS3/Mozilla gradients support multiple colour-stops, opacity, repeating-gradients, and a greater number of options for defining the gradient axis (linear gradients) or shape and extent (radial gradients)
  • -
- -

mPDF will attempt to parse a CSS stylesheet written for cross-browser compatibility:

-
    -
  • parse and support -moz type gradients
  • -
  • parse and support CSS3 gradient syntax
  • -
  • ignore -webkit syntax gradients
  • -
- - -

More details can be found at:

- -
- - - -
Repeating gradients
- -

-background: repeating-linear-gradient(red, blue 20px, red 40px); -

-background: -moz-repeating-linear-gradient(top left -45deg, red, red 10px, rgba(255,255,255,0) 10px, rgba(255,255,255,0) 20px); -

- -
 
- -
 
-
-
-
- -

-background: repeating-radial-gradient(20px 30px, circle farthest-side, red, yellow, green 10px, yellow 15px, red 20px); -

-background: repeating-radial-gradient(red, blue 20px, red 40px); -

-
 
- -
 
-
- - - - - -

Radial gradients

- -
 
- - -
 
-
- - -
 
- -
 
-
- -
 
- -
 
-
- -
 
- -
 
-
- - -

 
 
 
 
 
 
 

- -

 
 
 
 
 
 

- - - - - - - -
Gradient Image mask
- -
Gradients (linear or radial) can also be used to produce \'masks\' for images. The same syntax is used as for background gradients (e.g. -moz-linear-gradient) but is set using a custom mPDF style: gradient-mask. The rgba() method for defining colours is used: colours are ignored, but the opacity value is used to mask the image.
- -

<img src="windmill.jpg" style="gradient-mask: -moz-radial-gradient(center, ellipse closest-side, rgba(255,255,255,1), rgba(255,255,255,1) 30%, rgba(255,255,255,0) 90%, rgba(255,255,255,0));" /> -

<img src="windmill.jpg" style="gradient-mask: -moz-radial-gradient(center, ellipse closest-side, rgba(255,255,255,1), rgba(255,255,255,1) 70%, rgba(255,255,255,0) 90%, rgba(255,255,255,0));" /> -

<img src="windmill.jpg" style="gradient-mask: -moz-linear-gradient(left, rgba(0,0,0,0) , rgba(0,0,0,1) 50% , rgba(0,0,0,0) 100%);" /> -

- - - - - - -
- - - - - - -
Image orientation
- -
Images can be rotated using a custom mPDF HTML attribute: rotate. mPDF now also supports the draft CSS3 property of image-orientation. Rotation can be expressed in degrees, radians or grad units; it is corrected if necessary to an orthogonal rotation i.e. 90, 180 or 270 degrees. NB This does not work on background-images.
-

<img src="tiger2.png" style="image-orientation: -90deg" width="100" /> -
-<img src="tiger2.png" style="image-orientation: 3.14159rad" width="100" /> -

- - - - - - - -
- -
-
-
- -
Image resolution
- - -
Image files (which do not have an output width or height specified) are displayed in mPDF at the default resolution set by the variable $mpdf->img_dpi. This can be overridden using the draft CSS3 property \'image-resolution\', which can be applied to <IMG> or background-images. -
-The next 3 image files are identical (300px x 300px) but they have been saved with a different specified resolution: the first at 96dpi, the second at 300dpi. -
-NB When used in combination with \'from-image\', a specified resolution is only used if the image does not have an intrinsic resolution. Only JPG, PNG and BMP files store a specified DPI resolution in the file.
- -

<img src="tiger300px300dpi.png" style="image-resolution: from-image;" /> -
<img src="tiger300px300dpi.png" style="image-resolution: 150dpi;" /> -
<img src="tiger300px96dpi.png" style="image-resolution: from-image;" />

- - - - -

- - - - - -
Image resolution can also be applied to a background-image. This can be used as an alternative to the custom mPDF style property - \'background-image-resize\'
- -

<div height="300px" width="300px" style="background: #FFCCEE url(tiger300px96dpi.png); background-image-resolution: from-image; border: 0.2mm solid black;">

-
Hallo
world -
- -
- -

<div height="300px" width="300px" style="background-image: url(tiger300px300dpi.png); background-image-resolution: from-image; border: 0.2mm solid black;">

-
-
- - - -
- - - - - - -
Mixed effects
- - -
-
-
-
-
-
-Hallo World -
-
-Hallo World -
-
-
-
-
-
- -
- -
- -
- -'; - -//============================================================== -if ($_REQUEST['html']) { echo $html; exit; } -if ($_REQUEST['source']) { - $file = __FILE__; - header("Content-Type: text/plain"); - header("Content-Length: ". filesize($file)); - header("Content-Disposition: attachment; filename='".$file."'"); - readfile($file); - exit; -} - -//============================================================== -$mpdf->WriteHTML($html); - -//============================================================== -//============================================================== -// OUTPUT -$mpdf->Output(); exit; - - -//============================================================== -//============================================================== -//============================================================== -//============================================================== - - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/example57_new_mPDF_v5-3_active_forms.php b/public_html/2022/newcms/pdf/examples/example57_new_mPDF_v5-3_active_forms.php deleted file mode 100644 index 2427f5a..0000000 --- a/public_html/2022/newcms/pdf/examples/example57_new_mPDF_v5-3_active_forms.php +++ /dev/null @@ -1,233 +0,0 @@ - -textarea { -} -input { -} -select { - font-family: arialunicodems -} - - -

Active Forms

- -
-Input Text - -

- -Readonly - -

- -Disabled - -

- -Required - -

- -Hidden - -

- -Input Password - -

- -Calculations - + - = - -

- - -Textarea - -

- - -First language - -     - -You have selected: - -

- - -
-Spoken language(s)
- -
-

- - - -How many languages do you speak?      - One      - Two      - Three      - Four      - Five + - -

- - - Please send me regular information by e-mail
- Please phone me (not available at present)
- Please subscribe me to the Newsletter -

- -

- -Click this button to see Javascript in action: - - -

- - - - - - - - - - -

- - -
-'; - - -//============================================================== -if ($_REQUEST['html']) { echo $html; exit; } -if ($_REQUEST['source']) { - $file = __FILE__; - header("Content-Type: text/plain"); - header("Content-Length: ". filesize($file)); - header("Content-Disposition: attachment; filename='".$file."'"); - readfile($file); - exit; -} - -//============================================================== -$mpdf->useActiveForms = true; - -/* -// Try playing around with these (these are also in config.php) -$mpdf->formUseZapD = false; -$mpdf->formSubmitNoValueFields = true; - -$mpdf->formExportType = 'xfdf'; // 'html' or 'xfdf' -$mpdf->formSelectDefaultOption = true; // for Select drop down box; if no option is explicitly maked as selected, - // this determines whether to select 1st option (as per browser) - // - affects whether "required" attribute is relevant -$mpdf->form_border_color = '0.0 0.820 0.0'; -$mpdf->form_background_color = '0.941 0.941 0.941'; -$mpdf->form_border_width = '1'; -$mpdf->form_border_style = 'S'; - -$mpdf->form_radio_color = '0.0 0.820 0.0'; -$mpdf->form_radio_background_color = '0.941 0.5 0.5'; - -$mpdf->form_button_border_color = '0.0 0.820 0.0'; -$mpdf->form_button_background_color = '0.941 0.941 0.941'; -$mpdf->form_button_border_width = '1'; -$mpdf->form_button_border_style = 'S'; -*/ - -$mpdf->WriteHTML($html); - -//============================================================== -// JAVASCRIPT FOR WHOLE DOCUMENT -$mpdf->SetJS(' -var dialogTitle = "Enter details"; -var defaultAnswer = ""; -var reply = app.response("This is javascript set to run when the document opens. Enter value for first field", dialogTitle, defaultAnswer); -if (reply != null) { -this.getField("inputfield").value = reply; -} -'); -//============================================================== -// OUTPUT -$mpdf->Output(); exit; - - -//============================================================== -//============================================================== -//============================================================== -//============================================================== - - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/example57_new_mPDF_v5-3_active_forms_b.php b/public_html/2022/newcms/pdf/examples/example57_new_mPDF_v5-3_active_forms_b.php deleted file mode 100644 index 0d65222..0000000 --- a/public_html/2022/newcms/pdf/examples/example57_new_mPDF_v5-3_active_forms_b.php +++ /dev/null @@ -1,234 +0,0 @@ - -textarea { -} -input { -} -select { - font-family: arialunicodems -} - - -

Active Forms

- -
-Input Text - -

- -Readonly - -

- -Disabled - -

- -Required - -

- -Hidden - -

- -Input Password - -

- -Calculations - + - = - -

- - -Textarea - -

- - -First language - -     - -You have selected: - -

- - -
-Spoken language(s)
- -
-

- - - -How many languages do you speak?      - One      - Two      - Three      - Four      - Five + - -

- - - Please send me regular information by e-mail
- Please phone me (not available at present)
- Please subscribe me to the Newsletter -

- -

- -Click this button to see Javascript in action: - - -

- - - - - - - - - - -

- - -
-'; - - -//============================================================== -if ($_REQUEST['html']) { echo $html; exit; } -if ($_REQUEST['source']) { - $file = __FILE__; - header("Content-Type: text/plain"); - header("Content-Length: ". filesize($file)); - header("Content-Disposition: attachment; filename='".$file."'"); - readfile($file); - exit; -} - -//============================================================== -$mpdf->useActiveForms = true; -$mpdf->formUseZapD = false; - -/* -// Try playing around with these (these are also in config.php) -$mpdf->formUseZapD = false; -$mpdf->formSubmitNoValueFields = true; - -$mpdf->formExportType = 'xfdf'; // 'html' or 'xfdf' -$mpdf->formSelectDefaultOption = true; // for Select drop down box; if no option is explicitly maked as selected, - // this determines whether to select 1st option (as per browser) - // - affects whether "required" attribute is relevant -$mpdf->form_border_color = '0.0 0.820 0.0'; -$mpdf->form_background_color = '0.941 0.941 0.941'; -$mpdf->form_border_width = '1'; -$mpdf->form_border_style = 'S'; - -$mpdf->form_radio_color = '0.0 0.820 0.0'; -$mpdf->form_radio_background_color = '0.941 0.5 0.5'; - -$mpdf->form_button_border_color = '0.0 0.820 0.0'; -$mpdf->form_button_background_color = '0.941 0.941 0.941'; -$mpdf->form_button_border_width = '1'; -$mpdf->form_button_border_style = 'S'; -*/ - -$mpdf->WriteHTML($html); - -//============================================================== -// JAVASCRIPT FOR WHOLE DOCUMENT -$mpdf->SetJS(' -var dialogTitle = "Enter details"; -var defaultAnswer = ""; -var reply = app.response("This is javascript set to run when the document opens. Enter value for first field", dialogTitle, defaultAnswer); -if (reply != null) { -this.getField("inputfield").value = reply; -} -'); -//============================================================== -// OUTPUT -$mpdf->Output(); exit; - - -//============================================================== -//============================================================== -//============================================================== -//============================================================== - - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/example58_new_mPDF_v5-4_features.php b/public_html/2022/newcms/pdf/examples/example58_new_mPDF_v5-4_features.php deleted file mode 100644 index 6772fa9..0000000 --- a/public_html/2022/newcms/pdf/examples/example58_new_mPDF_v5-4_features.php +++ /dev/null @@ -1,547 +0,0 @@ - -.gradient { - border:0.1mm solid #220044; - background-color: #f0f2ff; - background-gradient: linear #c7cdde #f0f2ff 0 1 0 0.5; - box-shadow: 0.3em 0.3em #888888; -} -.rounded { - border:0.1mm solid #220044; - background-color: #f0f2ff; - background-gradient: linear #c7cdde #f0f2ff 0 1 0 0.5; - border-radius: 2mm; - background-clip: border-box; -} -h4 { - font-weight: bold; - margin-top: 1em; - margin-bottom: 0.3em; - margin-top: 0; -} -div.text { - padding:0.8em; - margin-bottom: 0.7em; -} -p { margin: 0.25em 0; } -.code { - font-family: monospace; - font-size: 9pt; - background-color: #d5d5d5; - margin: 1em 1cm; - padding: 0 0.3cm; - border:0.2mm solid #000088; - box-shadow: 0.3em 0.3em #888888; -} -table { - overflow: visible; - empty-cells: hide; - border:1px solid #000000; - font-family: sans-serif; - font-size: 10pt; - background-gradient: linear #c7cdde #f0f2ff 0 1 0 0.5; -} -td, th { - border:1px solid #000000; - text-align: left; - font-weight: normal; -} -td.markedcell { - text-decoration: line-through; - color: #CC0000; -} -td.underlinedcell { - text-decoration: underline; - color: #CC0000; -} -td.rotatedcell { - text-decoration: line-through; - color: #CC0000; - text-rotate: 45; -} -td.cost { text-align: right; } -caption.tablecaption { - font-family: sans-serif; - font-weight: bold; - border: none; - caption-side: top; - margin-bottom: 0; - text-align: center; -} -u.doubleu { - text-decoration: none; - border-bottom: 3px double #000088; -} -a.reddashed { - text-decoration: none; - border: 1px dashed #880000; -} -.shadowtitle { - height: 8mm; - background-color: #EEDDFF; - background-gradient: linear #c7cdde #f0f2ff 0 1 0 0.5; - padding: 0.8em; - padding-left: 3em; - font-family:sans; - font-size: 26pt; - font-weight: bold; - border: 0.2mm solid white; - border-radius: 0.2em; - box-shadow: 0 0 2em 0.5em rgba(0,0,255,0.9); - color: #AAAACC; - text-shadow: 0.03em 0.03em #666, 0.05em 0.05em rgba(127,127,127,0.5), -0.015em -0.015em white; -} -h3 { - margin: 3em 0 2em -15mm; - background-color: #EEDDFF; - background-gradient: linear #c7cdde #f0f2ff 0 1 0 0.5; - padding: 0.5em; - padding-left: 3em; - width: 50%; - font-family:sans; - font-size: 16pt; - font-weight: bold; - border-left: none; - border-radius: 0 2em 2em 0; - box-shadow: 0 0 2em 0.5em rgba(255,0,0,1); - text-shadow: 0.05em 0.04em rgba(127,127,127,0.5); -} -.css { - font-family: arial; - font-style: italic; - color: #000088; -} -table.zebra tbody tr:nth-child(2n+1) td { background-color: rgba(255,255,127,0.6); } -table.zebra tbody tr:nth-child(2n+1) th { background-color: rgba(255,255,127,0.6); } -table.zebra thead tr { background-color: #FFBBFF; } -table.zebra tfoot tr { background-color: #BBFFFF; } - - - - - - -
New Features in mPDF v5.4
- - -

Bookmark styles

-
-

Bookmarks can be styled by adding code as below to your script. You can define a colour (array of RGB) and/or a font-style (B, I, or BI) for each level (starting at 0). Results may depend on the PDF Reader you are using.

-

-$this->bookmarkStyles = array(
-       0 => array(\'color\'=> array(0,64,128), \'style\'=>\'B\'),
-       1 => array(\'color\'=> array(128,0,0), \'style\'=>\'\'),
-       2 => array(\'color\'=> array(0,128,0), \'style\'=>\'I\'),
-); -

-
- -

Embedded SVG code

-

SVG Images can be embedded in your HTML code. This is formally part of the XHTML specification and is supported by IE9+ and most other browsers.

- - - - -

-<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 200 200" width="200" height="200">
-  <circle cx="100" cy="50" r="40" stroke="black" stroke-width="1" fill="red" />
-  <circle cx="130" cy="50" r="40" stroke="black" stroke-width="1" fill="blue" />
-</svg> -

- - -

Improved CSS support

-
-

border-radius is now supported on fixed/absolute-positioned block elements.

-

visibility can be set on any block-style element e.g. DIV,P or images IMG as: visible|hidden|printonly|screenonly

-

background-color now supports rgba() and cmyka() alpha transparency formats in tables.

-

Color, underline and strike-through are now supported in table cells, including with rotated text (see example below of spread table)

-

page-break-after: left|right|always is supported on all block-style elements and tables

-

text-transform: capitalize|uppercase|lowercase is supported in table cells

-
- - -
-

Zebra stripes in Tables

-
-

:nth-child() selector can be used in tables (on TR, TD or TH) to stripe rows or columns. Both the an+b and odd/even forms are supported e.g.

- -

-tr:nth-child(2n+1) { background-color: rgba(255,255,127,0.6); } or
-tr:nth-child(odd) { background-color: rgba(255,255,127,0.6); } -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Row 1This is data167.00
Row 2 -

This is data p

-
-

444.53

-
-

Row 3

-
-

This is long data

-
14.00
-

Row 4

-
This is data -

0.88

-
Row 5Also data144.00
Row 6Also data8089.00
- -

Note: mPDF does NOT correctly apply specificity to all CSS. The following stylesheet:

-

-table.zebra tbody tr:nth-child(2n+1) td { background-color: yellow; }
-table.zebra tbody td:nth-child(odd) { background-color: blue; } -

-

should make every odd row yellow, and every odd column blue, but with the row/yellow overriding the column/blue. -In mPDF the td:nth-child(odd) trumps the plain td, so the column colour wins out. You can force the effect you want by using:

-

-table.zebra tbody tr:nth-child(2n+1) td:nth-child(1n+0) { background-color: yellow; } -

-

The :nth-child(1n+0) selector just selects every td cell.

- -
-
- - -
-

border can now be defined on in-line elements eg SPAN

- -

Note: Remember that in mPDF, inside table cells, properties set on block elements are set when possible as in-line properties - so a P element inside a table with border set, will appear with a border around the text line as though it had been set on SPAN

-
- - - - -
-

Shadows

-

box-shadow can be defined on any block-level element (P, DIV etc). It follows the CSS3 recommendation, but inset is not supported.

-

text-shadow can be defined on any element. It follows the CSS3 recommendation, but blur is not supported.

-

-<span style="text-shadow: 0.03em 0.03em #666, -0.015em -0.015em white;">
-<div style="box-shadow: 0.3em 0.3em #888888;"> -

-
- - -

Other Enhancements

- -

Column Totals (Tables)

-

{colsum} placed in the footer of a table will automatically display the sum of that column. If the table breaks across more than one page, the sum of the values on that page will be displayed. A number following the colsum e.g. {colsum2} will force that number of decimal places to be displayed.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Table caption goes here
Header RowHeader RowHeader Row
Column total: (using colsum2 in {}){colsum2}
Row 1This is data167.00
Row 2 -

This is data p

-
-

444.53

-
-

Row 3

-
-

This is long data

-
14.00
-

Row 4

-
This is data -

0.88

-
Row 5Also data144.00
Row 6Also data8089.00
Row 7Also data3.00
Row 8Also data23.00
-
- -

Table caption

-

The caption element for tables is partially supported (see example above).

-

-<caption align="top|bottom" style="caption-side: top|bottom"> -

-
    -
  • The caption must come immediately after <table>.
  • -
  • The CSS caption-side or HTML align attribute of top|bottom supported
  • -
  • Left or right placement are not supported.
  • -
  • The caption is handled as a separate block element brought outside the table, so: -
      -
    • CSS will not cascade correctly from the table
    • -
    • the width of the caption block is that of page or of the block element containing the table
    • -
    • text alignment will be to the page-width not the table width
    • -
    • if table page-break-after: always, the caption will follow the pagebreak
    • -
  • -
- - -

Core fonts in non-core font document

- -

Core fonts, which do not need to be embedded in a PDF, can now be included in a document which uses non-core fonts. The pseudo font-family names: chelvetica, ctimes and ccourier should be used.

-

-<div style="font-family: chelvetica"> -

-

NB You could force mPDF to always use core fonts when Arial/Helvetica/Courier are specified, by editing $this->fonttrans in config_fonts.php:

-

-$this->fonttrans = array(
- \'arial\' => \'chelvetica\',
- \'helvetica\' => \'chelvetica\',
- \'timesnewroman\' => \'ctimes\',
- \'times\' => \'ctimes\',
- \'couriernew\' => \'ccourier\',
- \'courier\' => \'ccourier\',
-... -

-
- -

Javascript in Forms

- -

Javascript used in (active) forms has been altered to reflect the Adobe Acrobat specification for Javascript in PDF documents.

-

textarea and input (text-types) now accept javascript as: onKeystroke, onValidate, onCalculate and onFormat. onChange is depracated but is not ignored; it works as though for onCalculate. (PS Select still accepts onChange)

- - -
- - - -

Overlapping Rows in Tables

-

Support for overlapping rowspans in tables has been improved (although probably not foolproof!)

- - - - - - - - - - - - -
   
 
 
- -
- - - -

Circular Text

-

Circular Text can be included in a PDF document as a custom HTML tag (or a function)

-
    -
  • top-text and/or bottom-text can be specified
  • -
  • Radius (r) and font-size (using CSS) are user-defined
  • -
  • Width and height are calculated from radius and font-size
  • -
  • Other CSS styles supported on Circular Text: border, margin, padding, color, background-color, font-family, font-size, font-weight, font-style, display, visibility, and opacity
  • -
  • space-width should be specified as an integer defining the letter-spacing as a percentage of normal (default 120)
  • -
  • char-width should be specified as an integer defining the width of each character as a percentage of normal (default 100)
  • -
  • Circular Text is displayed as though an in-line element
  • -
-

NB If $mpdf->useKerning is true then automatic kerning will be used on Circular Text.

- -

-<textcircle r="30mm" top-text="Circular Text Circular Text" style="color: blue; font-size: 34pt; font-style: italic" />

-<textcircle r="30mm" space-width="120" char-width="150" top-text="&bull; Circular Text &bull;" bottom-text="Circular Text" style="background-color: #FFAAAA; border:1px solid red; padding: 0.3em; margin: 0.3em; color: #000000; font-size: 21pt; font-weight:bold; font-family: Arial" /> -

- - - - - - - - - -

Spread tables

-
-Setting the CSS property "overflow: visible" on a table now has the effect of cancelling resizing, and allowing tables to split columns across multiple pages. -The maximum width for a column (or group of columns set by colspan) is the page width. It is recommended to specify absolute values of width on each column (not percentages). -
-
- - - - -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Periodic Table (table caption)
123456789101112131415161718
H He
Li Be B C N O F Ne
Na Mg Al Si P S Cl Ar
K Ca Sc Ti V Cr Mn Fe Co Ni Cu Zn Ga Ge As Se Br Kr
Rb Sr Y Zr Nb Mo Tc Ru Rh Pd Ag Cd In Sn Sb Te I Xe
Cs Ba Lu Hf Ta W Re Os Ir Pt Au Hg Tl Pb Bi Po At Rn
Fr Ra
- -

- -
-

Limitations of Spread tables

-Spread tables cannot be used with: keep-headings-with-table ($mpdf->use_kwt), table rotate, table page-break-inside:avoid, columns, -CJK (chinese-japanese-korean) or RTL (right-to-left) languages. -They will also cause problems with $mpdf->forcePortraitHeaders or $mpdf->forcePortraitMargins.
-Warning: If a table row is too tall to fit on a page, mPDF will crash with an error message.
-If the width settings within the table cause conflicts, it will override some of these settings. -
-
- - -'; - -//============================================================== -if ($_REQUEST['html']) { echo $html; exit; } -if ($_REQUEST['source']) { - $file = __FILE__; - header("Content-Type: text/plain"); - header("Content-Length: ". filesize($file)); - header("Content-Disposition: attachment; filename='".$file."'"); - readfile($file); - exit; -} - -//============================================================== -$mpdf->useActiveForms = true; - -$mpdf->bookmarkStyles = array( - 0 => array('color'=> array(0,64,128), 'style'=>'B'), - 1 => array('color'=> array(128,0,0), 'style'=>''), - 2 => array('color'=> array(0,128,0), 'style'=>'I'), -); - -$mpdf->useKerning=true; // set this to improve appearance of Circular text - // must be set before the font is first loaded - -$mpdf->WriteHTML($html); - -// JAVASCRIPT FOR WHOLE DOCUMENT -$mpdf->SetJS(' -function TwoPages() { - this.layout="TwoColumnRight"; - this.zoomType = zoomtype.fitW; -} -function OnePage() { - this.layout="SinglePage"; - this.zoom = 100; -} -'); - -// OUTPUT -$mpdf->Output(); exit; - - -//============================================================== -//============================================================== -//============================================================== -//============================================================== - - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/example59_new_mPDF_v5-6_features.php b/public_html/2022/newcms/pdf/examples/example59_new_mPDF_v5-6_features.php deleted file mode 100644 index fc908d5..0000000 --- a/public_html/2022/newcms/pdf/examples/example59_new_mPDF_v5-6_features.php +++ /dev/null @@ -1,387 +0,0 @@ - -.gradient { - border:0.1mm solid #220044; - background-color: #f0f2ff; - background-gradient: linear #c7cdde #f0f2ff 0 1 0 0.5; - box-shadow: 0.3em 0.3em #888888; -} -.rounded { - border:0.1mm solid #220044; - background-color: #f0f2ff; - background-gradient: linear #c7cdde #f0f2ff 0 1 0 0.5; - border-radius: 2mm; - background-clip: border-box; -} -h4 { - font-weight: bold; - margin-top: 1em; - margin-bottom: 0.3em; - margin-top: 0; -} -div.text { - padding:0.8em; - margin-bottom: 0.7em; -} -p { margin: 0.25em 0; } -.code { - font-family: monospace; - font-size: 9pt; - background-color: #d5d5d5; - margin: 1em 1cm; - padding: 0 0.3cm; - border:0.2mm solid #000088; - box-shadow: 0.3em 0.3em #888888; -} -table { - border:1px solid #000000; - font-family: sans-serif; - font-size: 10pt; - background-gradient: linear #c7cdde #f0f2ff 0 1 0 0.5; -} -td, th { - border:1px solid #000000; - text-align: left; - font-weight: normal; -} -.shadowtitle { - height: 8mm; - background-color: #EEDDFF; - background-gradient: linear #c7cdde #f0f2ff 0 1 0 0.5; - padding: 0.8em; - padding-left: 3em; - font-family:sans; - font-size: 26pt; - font-weight: bold; - border: 0.2mm solid white; - border-radius: 0.2em; - box-shadow: 0 0 2em 0.5em rgba(0,0,255,0.9); - color: #AAAACC; - text-shadow: 0.03em 0.03em #666, 0.05em 0.05em rgba(127,127,127,0.5), -0.015em -0.015em white; -} -h3 { - margin: 3em 0 2em -15mm; - background-color: #EEDDFF; - background-gradient: linear #c7cdde #f0f2ff 0 1 0 0.5; - padding: 0.5em; - padding-left: 3em; - width: 50%; - font-family:sans; - font-size: 16pt; - font-weight: bold; - border-left: none; - border-radius: 0 2em 2em 0; - box-shadow: 0 0 2em 0.5em rgba(255,0,0,1); - text-shadow: 0.05em 0.04em rgba(127,127,127,0.5); -} -.css { - font-family: arial; - font-style: italic; - color: #000088; -} -table.pop { - border-collapse: collapse; -} -table.pop td { - font-family: arial; - font-size: 10px; - border: 1px solid #888888; -} -meter.pop { - margin: 3px; -} -fieldset { border: 1px solid #000000; border-radius: 5px; padding: 10px; } -div.folder { - background: url(data:image/gif;base64,R0lGODlhEAAOALMAAOazToeHh0tLS/7LZv/0jvb29t/f3//Ub//ge8WSLf/rhf/3kdbW1mxsbP//mf///yH5BAAAAAAALAAAAAAQAA4AAARe8L1Ekyky67QZ1hLnjM5UUde0ECwLJoExKcppV0aCcGCmTIHEIUEqjgaORCMxIC6e0CcguWw6aFjsVMkkIr7g77ZKPJjPZqIyd7sJAgVGoEGv2xsBxqNgYPj/gAwXEQA7) no-repeat 4px center; - padding: 5px 0 5px 25px; - border: 1px solid #000000; -} - - - - -
New Features in mPDF v5.6
- -

HTML5 tags

-
-

New tags introduced in HTML5 now have basic support in mPDF, and will thus support CSS style references.

-

The following are treated as block elements similar to <div>:

-

<article> <aside> <details> <figure> <figcaption> <footer> <header> <hgroup> <nav> <section> <summary>

-

The following are treated as in-line elements:

-

<time> <mark>

-

Mark is set by default to highlight in yellow in config.php using $defaultCSS e.g. mark

-

Progress and meter are discussed below:

-
- -

<progress>

-
-

Progress: accepts the attributes value and max. A progress element without a value is called an indeterminate progress bar. -Text between the opening and closing tags is not displayed.

-

CSS styles properties can be applied: display, visibility, margin, padding, border, vertical-align, width, height and opacity. -HTML attributes width and height are supported, although not officially part of the spec.

-

Example:

-

<progress value="5" max="10">50%</progress>

- -
    -
  • - - -
  • -
  • - - -
  • -
  • - - -
  • -
  • - - -
  • -
-
- -

<meter>

-
-

Meter: accepts the attributes min, max, value, optimum, low, and high. -Text between the opening and closing tags is not displayed.

-

CSS styles properties can be applied: display, visibility, margin, padding, border, vertical-align, width, height and opacity. -HTML attributes width and height are supported, although not officially part of the spec.

-

Example:

-

<meter value="5" max="10" min="1" low="2" high="8" optimum="5.6">5</meter>

- - - -
    -
  • - - -
  • -
  • - - -
  • -
  • - - -
  • -
  • - - -
  • -
-
- -
-

Custom appearances for <meter> and <progress>

-

Meter (and to a lesser extent progress) can be used with custom appearances e.g. by using optimum to display the average, and low/high to indicate 90th centiles

- -

Custom appearances can be written by editing the script in classes/meter.php - Use a custom attribute of type="anyname" which is passed to the class as a variable e.g.

-

<meter type="2" value="612.7" optimum="580.4" min="517.0 " max="642.7" low="542" high="600">612.7</meter>

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Domain

Indicator

LHB

number

LHB

Indicator

-

value

-

Wales

average

-

Wales range

Comparison

Deaths

Death Rates per 100,000 population

3046

612.7

580.4

517.0 - 642.7

612.7

Death Rates per 100,000 from cancer

789

178.2

172.7

159.5 - 182.2

178.2

Death Rates per 100,000 from respiratory disease

505

60.5

72.11

54.41 - 95.5

60.5

Death Rates per 100,000 from cardiovascular disease

913

178.2

165.0

151.8 - 179.9

160.2
- - -

Fieldset and Legend

-
-
- Fieldset and legend -

Support for fieldset and legend was introduced in mPDF v5.5. Consider it experimental!

- - -
- - -
-
- - -

CSS styles

-
-

-

min-height, min-width, max-height and max-width are now supported in CSS style sheets for <img> (only).

-

background: url(data:image/gif;base64,...) is now supported in CSS style sheets (gif, png and jpeg).

-
- -
This <div> has the folder icon set as an embedded image in the CSS
-

div.folder { - background: url(data:image/gif;base64,R0lGODlhEAAOALMAAOazToeHh0tLS/7LZv/0jvb29t/f3//Ub//ge8WSLf/rhf/3kdbW1mxsbP//mf///yH5BAAAAAAALAAAAAAQAA4AAARe8L1Ekyky67QZ1hLnjM5UUde0ECwLJoExKcppV0aCcGCmTIHEIUEqjgaORCMxIC6e0CcguWw6aFjsVMkkIr7g77ZKPJjPZqIyd7sJAgVGoEGv2xsBxqNgYPj/gAwXEQA7) no-repeat 4px center; - padding: 5px 0 5px 25px; - border: 1px solid #000000; -} -

- - - -

Arabic text

- - - -

- -
- -

The script handling Arabic text (RTL) was rewritten in mPDF 5.5 with improved support for Pashto/Sindhi/Urdu/Kurdish, especially for joining characters and added new presentation forms.

-

Some characters in Pashto/Sindhi/Urdu/Kurdish do not have Unicode values for the final/initial/medial forms of the characters. However, some fonts include glyphs for these characters "un-mapped" to Unicode (including XB Zar and XB Riyaz, which are bundled with mPDF).

-

By editing config_fonts.php and adding:

-

- \'unAGlyphs\' => true, -

-

to appropriate fonts, this will force mPDF to use unmapped glyphs. It requires the font file to include a Format 2.0 POST table which references the glyphs by name as e.g. uni067C.med or uni067C.medi

-

XB Riyaz, XB Zar, Arabic Typesetting (MS), Arial (MS) all contain this table. NB If you want to know if a font file is suitable, you can open a .ttf file in a text editor and search for "uni067C.med" - if it exists, it may work!

-

Using "unAGlyphs" forces subsetting of fonts, and will not work with SIP/SMP fonts (using characters beyond the Unicode BMP Plane).

-

mPDF maps these characters to part of the Private Use Area allocated by Unicode U+F500-F7FF. This could interfere with correct use -if the font already utilises these codes (unlikely).

-
- - -

Using Arial MS font:

-'; -//============================================================== -// Test for all Arabic characters which may need joining -//============================================================== -$mpdf->cacheTables = true; -$html .=' - -
-'; - - -$ranges = array(0=>array(0x0621, 0x063a), 1=>array(0x0640, 0x064a), 2=>array(0x0671, 0x0672), 3=>array(0x0674, 0x06d3)); - -foreach($ranges AS $r) { - $html .= ''; - $html .= ''; - $html .= ''; - $html .= ''; - $html .= ''; - $html .= ''; - $html .= ''; - $html .= ''; - $html .= ''; - $html .= ''; - for($n=$r[0];$n<=$r[1];$n++) { - - $html .= ''; - $html .= ''; - - $html .= ''; - $html .= ''; - $html .= ''; - $html .= ''; - $html .= ''; - $html .= ''; - - $html .= ''; - } - $html .='
IsolatedFinalMedialInitial
U+0'.strtoupper(dechex($n)) .'�'.dechex($n) .';ئ�'.dechex($n) .';ـ�'.dechex($n) .';ـ�'.dechex($n) .';ـ�'.dechex($n) .';ـ�'.dechex($n) .';ه
'; -$html .='
'; -} - - - -$html .='
'; -//============================================================== - -$html .=' -
- - -'; - -//============================================================== -if ($_REQUEST['html']) { echo $html; exit; } -if ($_REQUEST['source']) { - $file = __FILE__; - header("Content-Type: text/plain"); - header("Content-Length: ". filesize($file)); - header("Content-Disposition: attachment; filename='".$file."'"); - readfile($file); - exit; -} - -//============================================================== - -$mpdf->WriteHTML($html); - -// OUTPUT -$mpdf->Output(); exit; - - -//============================================================== -//============================================================== -//============================================================== -//============================================================== - - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/example60_new_mPDF_v5-7_features.php b/public_html/2022/newcms/pdf/examples/example60_new_mPDF_v5-7_features.php deleted file mode 100644 index 658dc9a..0000000 --- a/public_html/2022/newcms/pdf/examples/example60_new_mPDF_v5-7_features.php +++ /dev/null @@ -1,595 +0,0 @@ - -.gradient { - border:0.1mm solid #220044; - background-color: #f0f2ff; - background-gradient: linear #c7cdde #f0f2ff 0 1 0 0.5; - box-shadow: 0.3em 0.3em #888888; -} -h4 { - font-weight: bold; - margin-top: 1em; - margin-bottom: 0.3em; - margin-top: 0; -} -div.text { - padding:0.8em; - margin-bottom: 0.7em; -} -p { margin: 0.25em 0; } -p.code { - background-color: #d5d5d5; - margin: 1em 1cm; - padding: 0 0.3cm; - border:0.2mm solid #000088; - box-shadow: 0.3em 0.3em #888888; -} -.code { - font-family: monospace; - font-size: 9pt; -} -.shadowtitle { - height: 8mm; - background-color: #EEDDFF; - background-gradient: linear #c7cdde #f0f2ff 0 1 0 0.5; - padding: 0.8em; - padding-left: 3em; - font-family:sans; - font-size: 26pt; - font-weight: bold; - border: 0.2mm solid white; - border-radius: 0.2em; - box-shadow: 0 0 1em 0.5em rgba(0,0,255,0.5); - color: #AAAACC; - text-shadow: 0.03em 0.03em #666, 0.05em 0.05em rgba(127,127,127,0.5), -0.015em -0.015em white; -} -h3 { - margin: 3em 0 2em -15mm; - background-color: #EEDDFF; - background-gradient: linear #c7cdde #f0f2ff 0 1 0 0.5; - padding: 0.5em; - padding-left: 3em; - width: 50%; - font-family:sans; - font-size: 16pt; - font-weight: bold; - border-left: none; - border-radius: 0 2em 2em 0; - box-shadow: 0 0 2em 0.5em rgba(255,0,0,1); - text-shadow: 0.05em 0.04em rgba(127,127,127,0.5); -} -.css { - font-family: arial; - font-style: italic; - color: #000088; -} - -.aBDP { text-align: "." center; } -.arBDP { text-align: "\66B" center; } -.middot { text-align: "\B7" center ; } - -p.menu { - text-align: justify; - padding-right: 4em; -} -dottab.menu { - outdent: 4em; -} - - -.outlined { - text-outline: 0.1mm 0.1mm #FF0000; - font-weight: bold; - font-size: 20pt; - color: #FFFFFF; -} - -/* For background-clip and -origin */ -.divclip { - border: 10px dashed #000000; - border-radius: 3em; - padding: 20px; - background:yellow; - background-image: -moz-linear-gradient(top right 210deg, red, orange, yellow, green, blue, indigo, violet); - width: 300px; - height: 50px; - margin-bottom: 1em; - background-repeat: no-repeat ; - background-size: 100% 100%; -} -.divpic { - background:yellow; - background: yellow url("bayeux1.jpg") no-repeat scroll left top; - background-size: 100% 100%; -} -.div1 { - background-clip: content-box; - background-origin: content-box; -} -.div2 { - background-clip: padding-box; - background-origin: padding-box; -} -.div3 { - background-clip: border-box; - background-origin: border-box; -} -.div4 { - background-clip: content-box; - background-origin: border-box; -} -.div5 { - background-clip: border-box; - background-origin: content-box; -} - - -/* For Table of Contents */ -div.mpdf_toc { - font-family: sans-serif; - font-size: 11pt; -} -a.mpdf_toc_a { - text-decoration: none; - color: black; -} -div.mpdf_toc_level_0 { /* Whole line level 0 */ - line-height: 1.5; - margin-left: 0; - padding-right: 2em; /* should match e.g 0 is default */ -} -span.mpdf_toc_t_level_0 { /* Title level 0 - may be inside */ - font-weight: bold; -} -span.mpdf_toc_p_level_0 { /* Page no. level 0 - may be inside */ -} -div.mpdf_toc_level_1 { /* Whole line level 1 */ - margin-left: 2em; - text-indent: -2em; - padding-right: 2em; /* should match 2em is default */ -} -span.mpdf_toc_t_level_1 { /* Title level 1 */ - font-style: italic; - font-weight: bold; -} -span.mpdf_toc_p_level_1 { /* Page no. level 1 - may be inside */ -} -div.mpdf_toc_level_2 { /* Whole line level 2 */ - margin-left: 4em; - text-indent: -2em; - padding-right: 2em; /* should match 2em is default */ -} -span.mpdf_toc_t_level_2 { /* Title level 2 */ -} -span.mpdf_toc_p_level_2 { /* Page no. level 2 - may be inside */ -} - - - - - - - -

ToC Layout and styling

-
-

Table of Contents styling

-

When a Table of Contents is generated by mPDF using e.g. <tocpagebreak>, mPDF 5.7 will generate the ToC as HTML. This means that a CSS stylesheet can be used to format its appearance.

-
- -
- -
-

This will result in the following HTML code generated (internally):

-

-<div class="mpdf_toc" id="mpdf_toc_0">
-  <div class="mpdf_toc_level_0">
-    <a class="mpdf_toc_a" href="#__mpdfinternallink_1">
-      <span class="mpdf_toc_t_level_0">Section 1</span>
-    </a>
-    <dottab outdent="2em" />
-    <a class="mpdf_toc_a" href="#__mpdfinternallink_1">
-      <span class="mpdf_toc_p_level_0">5</span>
-    </a>
-  </div>
-  <div class="mpdf_toc_level_1">
-    <a class="mpdf_toc_a" href="#__mpdfinternallink_2">
-      <span class="mpdf_toc_t_level_1">Chapter 1</span>
-    </a>
-    <dottab outdent="2em" />
-    <a class="mpdf_toc_a" href="#__mpdfinternallink_2">
-      <span class="mpdf_toc_p_level_1">6</span>
-    </a>
-  </div>
-  <div class="mpdf_toc_level_2">
-    <a class="mpdf_toc_a" href="#__mpdfinternallink_3">
-      <span class="mpdf_toc_t_level_2">Topic 1</span>
-    </a>
-    <dottab outdent="2em" />
-    <a class="mpdf_toc_a" href="#__mpdfinternallink_3">
-      <span class="mpdf_toc_p_level_2">7</span>
-    </a>
-  </div>
-</div> -

- -

NB The id is "0" (mpdf_toc_0) for root/un-named ToC; otherwise it is lowercase of the name="" used for the ToC

-
- -
- -

Example Styling using CSS

-

The following CSSwill format the ToC as it appears in this document:

-

-/* For Table of Contents */
-div.mpdf_toc {
-  font-family: sans-serif;
-  font-size: 11pt;
-}
-a.mpdf_toc_a {
-  text-decoration: none;
-  color: black;
-}

-/* Whole line level 0 */
-div.mpdf_toc_level_0 {
-  line-height: 1.5;
-  margin-left: 0;
-  padding-right: 2em;
-}

-/* Title level 0 - may be inside <a> */
-span.mpdf_toc_t_level_0 {
-  font-weight: bold;
-}

-/* Page no. level 0 - may be inside <a> */
-span.mpdf_toc_p_level_0 { }

-/* Whole line level 1 */
-div.mpdf_toc_level_1 {
-  margin-left: 2em;
-  padding-right: 2em;
-}

-/* Title level 1 */
-span.mpdf_toc_t_level_1 {
-  font-style: italic;
-  font-weight: bold;
-}

-/* Page no. level 1 - may be inside <a> */
-span.mpdf_toc_p_level_1 { }

-/* Whole line level 2 */
-div.mpdf_toc_level_2 {
-  margin-left: 4em;
-  padding-right: 2em;
-}

-/* Title level 2 */
-span.mpdf_toc_t_level_2 { }

-/* Page no. level 2 - may be inside <a> */
-span.mpdf_toc_p_level_2 { }

-

-

NB padding-right should match <dottab> "outdent" (0 is default). See <dottab> for more details

-
- -
-

The functions TOCpagebreakByArray() and TOCpagebreak() have a new final parameter, and HTML tags <TOC> and <TOCpagebreak> have a new attribute "tocoutdent". This should be blank or a valid CSS length e.g. "2em". See <dottab> for more details.

-
- - - - - -

Text-align on decimal point

-
-

Text inside a table column can be aligned on a decimal point (or any other character) by using either HTML attribute or CSS.

-

This example table uses the following CSS stylesheet:

-

-<style>
-.aBDP { text-align: "." center; }
-.arBDP { text-align: "\66B" center; }
-.middot { text-align: "\B7" center ; }
-</style> -

-

- - - - - - - - - - - - - - - - - - - - - - - -
<TD> elementColumn
align="left"Left text
align="right"Right text
align="center"Center text
align="char"

1000.0001

align="char" char=","

1000,0001

align="char" char="&middot;"

1000·0001

align="char" char="&#183;"

1000·0001

style="text-align: \'.\' center"100.001
style="text-align: \'.\' center"DP aligned text
style="text-align: \',\' center"

1.000,0001

class="aBDP"10.01
class="aBDP"1000
class="aBDP"

1000.0001

class="middot"1 000·0001
class="aBDP"

1,000,000.00001

class="aBDP"1.000000001
class="aBDP"1.000.000.001
class="arBDP"

١٬٥٦٧٬٢٣٤٫٢٣٤٧

class="aBDP"(GBP) 1,000,000.00001
1,000,000.00001 (EUR)
1,000,000.00001
- -
- - - - - - -

Automatic ToC and Bookmarks

-
-

A Table of Contents and/or Bookmarks can be generated automatically from any of the heading tags H1 - H6. This example will generate ToC and bookmarks from all <h3> tags (top level) and <h4> tags (next level)

-

- $mpdf->h2toc = array(\'H3\'=>0, \'H4\'=>1);
- $mpdf->h2bookmarks = array(\'H3\'=>0, \'H4\'=>1); -

-
- - - - - - -

Improved line-breaking

-

mPDF will now avoid line-breaks in the middle of words even between <tags>

-
-

-<b>Na<sub>2</sub>HCO<sub>3</sub></b> -

-

Pellentesque purus feugiat semper. Donec nunc odio, et vitae pellentesque. Pellentesque Na2HCO3 velit lacus.

-
- - -

CSS hyphens

-
-

The CSS property hyphens is now supported on all block elements

-

-hyphens: manual | auto | none -

-

In the following example, the word interdependent contains no soft hyphen or similar characters, and is moved to the next line.

- -

Cum velit lacus pena sociis natoque penatibus et magnis disa montes, nascetur ridicuus interdependent (no characters suggesting line-break).

- -

manual (default) - Words are only broken at line breaks where there are characters inside the word that suggest line break opportunities. Characters can be explicit ("-" hard hyphen) or conditional (&shy; &#173; <wbr>).

-

Cum velit lacus pena sociis natoque penatibus et magnis disa montes, nascetur ridicuus inter­dependent (uses soft hyphen &shy;).

- -

none - Words are not broken at line breaks, even if characters inside the word suggest line break points.

-

Cum velit lacus pena sociis natoque penatibus et magnis disa montes, nascetur ridicuus inter-dependent (hard hyphen).

- -

auto - Words can be broken at appropriate hyphenation points, as determined by characters inside the word.

-

Cum velit lacus pena sociis natoque penatibus et magnis disa montes, nascetur ridicuus interdependent (No characters suggesting line-break).

-

SHY inside the word take priority over hyphenation points determined by other resources.

-

Cum velit lacus pena sociis natoque penatibus et magnis disa montes, nascetur ridicuus inter­dependent (uses soft hyphen &shy;).

- -

The configurable variables $this->hyphenate and $this->hyphenateTables are henceforth redundant and have no effect.

-

NB Support for <wbr> is new in mPDF 5.7

-
- - - - - -

Text circle

-
-

Added in mPDF 5.6 but not included in New Features example - transparent background and Divider were new. Now also added support for font-size:auto

-

-<textcircle r="30mm" top-text="Text Circular Text Circular" bottom-text="Text Circular Text Circular" divider="&bull;" style="font-size: auto" /> -

-

-
-
- - -

List numbering

-
-

This list is set to start numbering at 5

-

<ol start="5">

-
    -
  1. List item number 1
  2. -
  3. List item number 2
  4. -
  5. List item number 3
  6. -
-
- - - - -

<dottab> and outdent

-
-

<dottab> now supports a custom CSS property "outdent", which can also be used as an HTML attribute i.e. <dottab outdent="2em">

-

The first item uses <dottab outdent="4em"> whereas the following items have <dottab class="menu"> (with CSS dottab.menu{outdent: 4em;} ) and all have padding-right="4em" on the <div> element

-
- - - - - - - - - -
-

-

-p.menu { text-align: justify; padding-right: 4em; }
-dottab.menu { outdent: 4em; } -

-

NB It is recommended to use &nbsp; after the dottab if a space is required before the following content.

-

NB This (outdent) is also used in the Table of Contents (see earlier in this document).

-
- - - -

Layers

-
-

mPDF 5.7 will create layers in the document using the CSS property z-index. All layers are visible by default.

-

This demonstrates layers in a PDF document. Select the layers named "Correct Answers" or "Wrong Answers" in your PDF viewer (the layers pane should be open already in Adobe Acrobat)

-
What is the name of the Prime Minister of Britain?
-
David Cameron
-
Rupert Murdoch
-
What is the name of the David Beckham\'s bulldog?
-
Scarlet
-
Victoria
-

To open/close/select layers in Adobe Reader (10):
-

-

The layer names and initial state can be set (optionally) e.g.

-

- $mpdf->layerDetails[1][\'state\']=\'hidden\'; // Set initial state of layer - "hidden" or ""
- $mpdf->layerDetails[1][\'name\']=\'Correct Answers\';
- $mpdf->layerDetails[2][\'state\']=\'hidden\';
- $mpdf->layerDetails[2][\'name\']=\'Wrong Answers\';
-

-

This is the code used in the example above:

-

- <div style="z-index:1;color: green;float: left; width:30%;">Scarlet</div>
- <div style="z-index:2;color: red;">Victoria</div> -

-
To force the PDF reader to open with the layers tab open, set: -

$mpdf->open_layer_pane = true;

-
- -
- - - -

CSS visibility on <span>

-

CSS visibility:hidden is now supported on inline elements e.g. <span>

-
-

This next bit of text is hidden - Hidden text - and this isn\'t.

-

style="visibility:hidden;"

-

This next bit of text is only visible in print - Hidden text - and this isn\'t.

-

style="visibility:printonly;"

-

This next bit of text is only visible on screen - Hidden text - and this isn\'t.

-

style="visibility:screenonly;"

-

You can show or hide these elements as for layers (above).

-
- - - -

CSS "rem" unit

-
- -
This line has the font-size set as 1rem -
This line has the font-size set as 0.5rem -
This line has the font-size set as 1.5rem -
-
-
-
This line has the font-size set as 1em -
This line has the font-size set as 0.5em -
This line has the font-size set as 1.5em -
-
-
- -
- - - - -

CSS outline

-
-
This is text with an outline set by CSS
-

-.outlined { text-outline: 0.1mm 0.1mm #FF0000; } -

-
- - - - - -

CSS background-clip, background-origin & background-size

-
-

CSS background-clip, background-origin & background-size are now supported for most block level elements. (Not supported in tables, nor on page/body backgrounds).

- - -
background-clip: border-box[default value]
background-origin: padding-box[default value]
-
background-clip: content-box;
background-origin: content-box
-
background-clip: padding-box;
background-origin: padding-box
-
background-clip: border-box;
background-origin: border-box
-
background-clip: content-box;
background-origin: border-box
-
background-clip: border-box;
background-origin: content-box
- -
background-clip: border-box[default value]
background-origin: padding-box[default value]
-
background-clip: content-box;
background-origin: content-box
-
background-clip: padding-box;
background-origin: padding-box
-
background-clip: border-box;
background-origin: border-box
-
background-clip: content-box;
background-origin: border-box
-
background-clip: border-box;
background-origin: content-box
- - -
- - -'; - -$mpdf->h2toc = array('H3'=>0, 'H4'=>1); -$mpdf->h2bookmarks = array('H3'=>0, 'H4'=>1); - -$mpdf->open_layer_pane = false; -$mpdf->layerDetails[1]['state']='hidden'; // Set initial state of layer - "hidden" or nothing -$mpdf->layerDetails[1]['name']='Correct Answers'; -$mpdf->layerDetails[2]['state']='hidden'; // Set initial state of layer - "hidden" or nothing -$mpdf->layerDetails[2]['name']='Wrong Answers'; - -//============================================================== -if ($_REQUEST['html']) { echo $html; exit; } -if ($_REQUEST['source']) { - $file = __FILE__; - header("Content-Type: text/plain"); - header("Content-Length: ". filesize($file)); - header("Content-Disposition: attachment; filename='".$file."'"); - readfile($file); - exit; -} - -//============================================================== - -$mpdf->WriteHTML($html); - -// OUTPUT -$mpdf->Output(); exit; - - -//============================================================== -//============================================================== -//============================================================== -//============================================================== - - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/firefox-48.png b/public_html/2022/newcms/pdf/examples/firefox-48.png deleted file mode 100644 index b982cf9..0000000 Binary files a/public_html/2022/newcms/pdf/examples/firefox-48.png and /dev/null differ diff --git a/public_html/2022/newcms/pdf/examples/flowers-pattern.jpg b/public_html/2022/newcms/pdf/examples/flowers-pattern.jpg deleted file mode 100644 index 45aaeeb..0000000 Binary files a/public_html/2022/newcms/pdf/examples/flowers-pattern.jpg and /dev/null differ diff --git a/public_html/2022/newcms/pdf/examples/formsubmit.php b/public_html/2022/newcms/pdf/examples/formsubmit.php deleted file mode 100644 index f13a395..0000000 --- a/public_html/2022/newcms/pdf/examples/formsubmit.php +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - -

Submitted data from PDF Form

-

(See formsubmit.php in the Examples folder for details)

-'; - - -if (count($_POST)) { - // To display HTML output from PDF form - echo '

HTML format data sent as POST

'; - foreach($_POST AS $name=>$val) { - $t = mb_convert_encoding(PDFDocEncodingToWin1252($val), 'UTF-8', 'Windows-1252' ); // If from core fonts doc - echo '

PDFDocEnc: '.$name.' => '.htmlspecialchars($t).'

'; - } -} -else if (count($_GET)) { - // To display HTML output from PDF form - echo '

HTML format data sent as GET

'; - foreach($_GET AS $name=>$val) { - $t = mb_convert_encoding(PDFDocEncodingToWin1252($val), 'UTF-8', 'Windows-1252' ); // If from core fonts doc - echo '

PDFDocEnc: '.$name.' => '.htmlspecialchars($t).'

'; - } -} - -else { - $postdata = file_get_contents("php://input"); - - if ($postdata) { - echo '

XFDF format data detected

'; - // To parse XFDF - if (preg_match_all('/\s*((.*?)<\/value\s*>)\s*<\/field\s*>/s', $postdata, $m)) { - for($i=0; $i(.*?)<\/value\s*>/s', $m[2][$i], $v); - if (count($v[0])>1) { - $values = array(); - foreach($v[1] AS $val) { $values[] = $val; } - //foreach($v[1] AS $val) { $values[] = htmlspecialchars_decode($val); } - echo '

Field: '.$m[1][$i].' => [array of values] ('.implode(', ',$values).')

'; - } - else { - //echo '

Field: '.$m[1][$i].' => '.htmlspecialchars_decode($m[3][$i]).'

'; - echo '

Field: '.$m[1][$i].' => '.$m[3][$i].'

'; - } - } - } - if (preg_match_all('/\s*\s*<\/field\s*>/s', $postdata, $m)) { - for($i=0; $iField: '.$m[1][$i].' => [blank]

'; - } - } - if (preg_match_all('//s', $postdata, $m)) { - for($i=0; $iField: '.$m[1][$i].' => [no value]

'; - } - } - - - // To display whole XFDF - //$postdata = preg_replace("/[\n\r]/", "", $postdata); - //$postdata = preg_replace('/>\s*\n<", $postdata); - //echo nl2br(htmlspecialchars($postdata)); - } - else { echo "No form data detected"; } -} - - - -echo ''; - -exit; - -function PDFDocEncodingToWin1252($txt) { - $Win1252ToPDFDocEncoding = array( - chr(0200) => chr(0240), chr(0214) => chr(0226), chr(0212) => chr(0227), chr(0237) => chr(0230), - chr(0225) => chr(0200), chr(0210) => chr(0032), chr(0206) => chr(0201), chr(0207) => chr(0202), - chr(0205) => chr(0203), chr(0227) => chr(0204), chr(0226) => chr(0205), chr(0203) => chr(0206), - chr(0213) => chr(0210), chr(0233) => chr(0211), chr(0211) => chr(0213), chr(0204) => chr(0214), - chr(0223) => chr(0215), chr(0224) => chr(0216), chr(0221) => chr(0217), chr(0222) => chr(0220), - chr(0202) => chr(0221), chr(0232) => chr(0235), chr(0230) => chr(0037), chr(0231) => chr(0222), - chr(0216) => chr(0231) - ); - return strtr($txt, array_flip($Win1252ToPDFDocEncoding) ); -} - - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/goto.gif b/public_html/2022/newcms/pdf/examples/goto.gif deleted file mode 100644 index e7de2b1..0000000 Binary files a/public_html/2022/newcms/pdf/examples/goto.gif and /dev/null differ diff --git a/public_html/2022/newcms/pdf/examples/img1.png b/public_html/2022/newcms/pdf/examples/img1.png deleted file mode 100644 index fe3f4de..0000000 Binary files a/public_html/2022/newcms/pdf/examples/img1.png and /dev/null differ diff --git a/public_html/2022/newcms/pdf/examples/img2.png b/public_html/2022/newcms/pdf/examples/img2.png deleted file mode 100644 index 2d142f4..0000000 Binary files a/public_html/2022/newcms/pdf/examples/img2.png and /dev/null differ diff --git a/public_html/2022/newcms/pdf/examples/img3.png b/public_html/2022/newcms/pdf/examples/img3.png deleted file mode 100644 index a7a9487..0000000 Binary files a/public_html/2022/newcms/pdf/examples/img3.png and /dev/null differ diff --git a/public_html/2022/newcms/pdf/examples/img4.png b/public_html/2022/newcms/pdf/examples/img4.png deleted file mode 100644 index e9c3f44..0000000 Binary files a/public_html/2022/newcms/pdf/examples/img4.png and /dev/null differ diff --git a/public_html/2022/newcms/pdf/examples/img5.png b/public_html/2022/newcms/pdf/examples/img5.png deleted file mode 100644 index 1e4c5ec..0000000 Binary files a/public_html/2022/newcms/pdf/examples/img5.png and /dev/null differ diff --git a/public_html/2022/newcms/pdf/examples/index.php b/public_html/2022/newcms/pdf/examples/index.php deleted file mode 100644 index 869bab8..0000000 --- a/public_html/2022/newcms/pdf/examples/index.php +++ /dev/null @@ -1,40 +0,0 @@ -

mPDF Example Files

'; - -foreach($files AS $n=>$f) { - echo '

'.$n.') '.$f[0].'   PDF   PHP

'; -} - -echo ''; -exit; - - -// For PHP4 compatability -if (!function_exists('scandir')) { - function scandir($dir = './', $sort = 0) { - $dir_open = @ opendir($dir); - if (! $dir_open) - return false; - while (($dir_content = readdir($dir_open)) !== false) - $files[] = $dir_content; - if ($sort == 1) - rsort($files, SORT_STRING); - else - sort($files, SORT_STRING); - return $files; - } -} - - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/examples/klematis.jpg b/public_html/2022/newcms/pdf/examples/klematis.jpg deleted file mode 100644 index b87e920..0000000 Binary files a/public_html/2022/newcms/pdf/examples/klematis.jpg and /dev/null differ diff --git a/public_html/2022/newcms/pdf/examples/loading.gif b/public_html/2022/newcms/pdf/examples/loading.gif deleted file mode 100644 index e846e1d..0000000 Binary files a/public_html/2022/newcms/pdf/examples/loading.gif and /dev/null differ diff --git a/public_html/2022/newcms/pdf/examples/quran282.jpg b/public_html/2022/newcms/pdf/examples/quran282.jpg deleted file mode 100644 index c888872..0000000 Binary files a/public_html/2022/newcms/pdf/examples/quran282.jpg and /dev/null differ diff --git a/public_html/2022/newcms/pdf/examples/sample_basic.pdf b/public_html/2022/newcms/pdf/examples/sample_basic.pdf deleted file mode 100644 index 86c4d74..0000000 Binary files a/public_html/2022/newcms/pdf/examples/sample_basic.pdf and /dev/null differ diff --git a/public_html/2022/newcms/pdf/examples/sample_logoheader2.pdf b/public_html/2022/newcms/pdf/examples/sample_logoheader2.pdf deleted file mode 100644 index 946883d..0000000 Binary files a/public_html/2022/newcms/pdf/examples/sample_logoheader2.pdf and /dev/null differ diff --git a/public_html/2022/newcms/pdf/examples/sample_orientation2.pdf b/public_html/2022/newcms/pdf/examples/sample_orientation2.pdf deleted file mode 100644 index 84944d9..0000000 Binary files a/public_html/2022/newcms/pdf/examples/sample_orientation2.pdf and /dev/null differ diff --git a/public_html/2022/newcms/pdf/examples/sample_orientation3.pdf b/public_html/2022/newcms/pdf/examples/sample_orientation3.pdf deleted file mode 100644 index c23ca31..0000000 Binary files a/public_html/2022/newcms/pdf/examples/sample_orientation3.pdf and /dev/null differ diff --git a/public_html/2022/newcms/pdf/examples/show_code.php b/public_html/2022/newcms/pdf/examples/show_code.php deleted file mode 100644 index 32bc762..0000000 --- a/public_html/2022/newcms/pdf/examples/show_code.php +++ /dev/null @@ -1,48 +0,0 @@ -debug=true; -$mpdf->tabSpaces = 6; - -$mpdf->allow_charset_conversion=true; -$mpdf->charset_in='windows-1252'; - -//============================================================== -preg_match('/example[0]{0,1}(\d+)_(.*?)\.php/',$filename,$m); -$num = intval($m[1]); -$title = ucfirst(preg_replace('/_/',' ',$m[2])); - -if (!$num || !$title) { die("Invalid file"); } -if (preg_match('/\//', $filename) || !preg_match('/\.php$/',$filename)) { die("Hacking attempt"); } - -$html = ' -

mPDF

-

Example '.$num.'. '.$title.'

-
-'; -$lines = file($filename); - -$html .= '
';
-foreach($lines AS $line) {
-	$html .= htmlspecialchars($line);
-}
-$html .= '
'; -$html .= '
'; - -$mpdf->WriteHTML($html,2); // The 2 is important to prevent '; } // stylesheet only - - if ($this->allow_charset_conversion) { - if ($sub < 1) { - $this->ReadCharset($html); - } - if ($this->charset_in && $sub!=4) { // mPDF 5.4.14 - $success = iconv($this->charset_in,'UTF-8//TRANSLIT',$html); - if ($success) { $html = $success; } - } - } - $html = $this->purify_utf8($html,false); - if ($init) { - $this->blklvl = 0; - $this->lastblocklevelchange = 0; - $this->blk = array(); - $this->initialiseBlock($this->blk[0]); - $this->blk[0]['width'] =& $this->pgwidth; - $this->blk[0]['inner_width'] =& $this->pgwidth; - $this->blk[0]['blockContext'] = $this->blockContext; - } - - $zproperties = array(); - if ($sub < 2) { - $this->ReadMetaTags($html); - - // mPDF 5.6.18 - if (preg_match('/]*href=["\']([^"\'>]*)["\']/i', $html, $m)) { - $this->SetBasePath($m[1]); - } - // NB default stylesheet now in mPDF.css - read on initialising class - $html = $this->cssmgr->ReadCSS($html); - - if ($this->useLang && !$this->usingCoreFont && preg_match('/]*lang=[\'\"](.*?)[\'\"]/ism',$html,$m)) { - $html_lang = $m[1]; - } - - if (preg_match('/]*dir=[\'\"]\s*rtl\s*[\'\"]/ism',$html)) { - $zproperties['DIRECTION'] = 'rtl'; - } - - // allow in-line CSS for body tag to be parsed // Get tag inline CSS - if (preg_match('/]*)>(.*?)<\/body>/ism',$html,$m) || preg_match('/]*)>(.*)$/ism',$html,$m)) { - $html = $m[2]; - // Changed to allow style="background: url('bg.jpg')" - if (preg_match('/style=[\"](.*?)[\"]/ism',$m[1],$mm) || preg_match('/style=[\'](.*?)[\']/ism',$m[1],$mm)) { - $zproperties = $this->cssmgr->readInlineCSS($mm[1]); - } - if (preg_match('/dir=[\'\"]\s*rtl\s*[\'\"]/ism',$m[1])) { - $zproperties['DIRECTION'] = 'rtl'; - } - if (isset($html_lang) && $html_lang) { $zproperties['LANG'] = $html_lang; } - if ($this->useLang && !$this->onlyCoreFonts && preg_match('/lang=[\'\"](.*?)[\'\"]/ism',$m[1],$mm)) { - $zproperties['LANG'] = $mm[1]; - } - - } - } - $properties = $this->cssmgr->MergeCSS('BLOCK','BODY',''); - if ($zproperties) { $properties = $this->cssmgr->array_merge_recursive_unique($properties,$zproperties); } - - if (isset($properties['DIRECTION']) && $properties['DIRECTION']) { - $this->cssmgr->CSS['BODY']['DIRECTION'] = $properties['DIRECTION']; - } - if (!isset($this->cssmgr->CSS['BODY']['DIRECTION'])) { - $this->cssmgr->CSS['BODY']['DIRECTION'] = $this->directionality; - } - else { $this->SetDirectionality($this->cssmgr->CSS['BODY']['DIRECTION']); } - - $this->setCSS($properties,'','BODY'); - $this->blk[0]['InlineProperties'] = $this->saveInlineProperties(); - - if ($sub == 1) { return ''; } - if (!isset($this->cssmgr->CSS['BODY'])) { $this->cssmgr->CSS['BODY'] = array(); } - -/*-- BACKGROUNDS --*/ - if (isset($properties['BACKGROUND-GRADIENT'])) { - $this->bodyBackgroundGradient = $properties['BACKGROUND-GRADIENT']; - } - - if (isset($properties['BACKGROUND-IMAGE']) && $properties['BACKGROUND-IMAGE']) { - $ret = $this->SetBackground($properties, $this->pgwidth); - if ($ret) { $this->bodyBackgroundImage = $ret; } - } -/*-- END BACKGROUNDS --*/ - -/*-- CSS-PAGE --*/ - // If page-box is set - if ($this->state==0 && ((isset($this->cssmgr->CSS['@PAGE']) && $this->cssmgr->CSS['@PAGE']) || (isset($this->cssmgr->CSS['@PAGE>>PSEUDO>>FIRST']) && $this->cssmgr->CSS['@PAGE>>PSEUDO>>FIRST'])) ) { // mPDF 5.7.3 - $this->page_box['current'] = ''; - $this->page_box['using'] = true; - list($pborientation,$pbmgl,$pbmgr,$pbmgt,$pbmgb,$pbmgh,$pbmgf,$hname,$fname,$bg,$resetpagenum,$pagenumstyle,$suppress,$marks,$newformat) = $this->SetPagedMediaCSS('', false, 'O'); - $this->DefOrientation = $this->CurOrientation = $pborientation; - $this->orig_lMargin = $this->DeflMargin = $pbmgl; - $this->orig_rMargin = $this->DefrMargin = $pbmgr; - $this->orig_tMargin = $this->tMargin = $pbmgt; - $this->orig_bMargin = $this->bMargin = $pbmgb; - $this->orig_hMargin = $this->margin_header = $pbmgh; - $this->orig_fMargin = $this->margin_footer = $pbmgf; - list($pborientation,$pbmgl,$pbmgr,$pbmgt,$pbmgb,$pbmgh,$pbmgf,$hname,$fname,$bg,$resetpagenum,$pagenumstyle,$suppress,$marks,$newformat) = $this->SetPagedMediaCSS('', true, 'O'); // true=first page - $this->show_marks = $marks; - if ($hname && !preg_match('/^html_(.*)$/i',$hname)) $this->firstPageBoxHeader = $hname; - if ($fname && !preg_match('/^html_(.*)$/i',$fname)) $this->firstPageBoxFooter = $fname; - } -/*-- END CSS-PAGE --*/ - - $parseonly = false; - $this->bufferoutput = false; - if ($sub == 3) { - $parseonly = true; - // Close any open block tags - for ($b= $this->blklvl;$b>0;$b--) { $this->CloseTag($this->blk[$b]['tag']); } - // Output any text left in buffer - if (count($this->textbuffer)) { $this->printbuffer($this->textbuffer); } - $this->textbuffer=array(); - } - else if ($sub == 4) { - // Close any open block tags - for ($b= $this->blklvl;$b>0;$b--) { $this->CloseTag($this->blk[$b]['tag']); } - // Output any text left in buffer - if (count($this->textbuffer)) { $this->printbuffer($this->textbuffer); } - $this->bufferoutput = true; - $this->textbuffer=array(); - $this->headerbuffer=''; - $properties = $this->cssmgr->MergeCSS('BLOCK','BODY',''); - $this->setCSS($properties,'','BODY'); - } - - mb_internal_encoding('UTF-8'); - - $html = $this->AdjustHTML($html, $this->tabSpaces); //Try to make HTML look more like XHTML - - if ($this->autoFontGroups) { $html = $this->AutoFont($html); } - -/*-- HTMLHEADERS-FOOTERS --*/ - preg_match_all('/]*)>(.*?)<\/htmlpageheader>/si',$html,$h); - for($i=0;$ipageHTMLheaders[$n[1]]['html'] = $h[2][$i]; - $this->pageHTMLheaders[$n[1]]['h'] = $this->_gethtmlheight($h[2][$i]); - } - } - preg_match_all('/]*)>(.*?)<\/htmlpagefooter>/si',$html,$f); - for($i=0;$ipageHTMLfooters[$n[1]]['html'] = $f[2][$i]; - $this->pageHTMLfooters[$n[1]]['h'] = $this->_gethtmlheight($f[2][$i]); - } - } -/*-- END HTMLHEADERS-FOOTERS --*/ - $html = preg_replace('//si','',$html); - $html = preg_replace('//si','',$html); - - if($this->state==0 && $sub!=1 && $sub!=3 && $sub!=4) { - $this->AddPage($this->CurOrientation); - } - - -/*-- HTMLHEADERS-FOOTERS --*/ - - if (isset($hname) && preg_match('/^html_(.*)$/i',$hname,$n)) $this->SetHTMLHeader($this->pageHTMLheaders[$n[1]],'O',true); - if (isset($fname) && preg_match('/^html_(.*)$/i',$fname,$n)) $this->SetHTMLFooter($this->pageHTMLfooters[$n[1]],'O'); - -/*-- END HTMLHEADERS-FOOTERS --*/ - - $html=str_replace('checkSIP = false; - $this->checkSMP = false; - $this->checkCJK = false; - if ($this->onlyCoreFonts) { $html = $this->SubstituteChars($html); } - else { - if (preg_match("/([".$this->pregRTLchars."])/u", $html)) { $this->biDirectional = true; } // *RTL* - if (preg_match("/([\x{20000}-\x{2FFFF}])/u", $html)) { $this->checkSIP = true; } - if (preg_match("/([\x{10000}-\x{1FFFF}])/u", $html)) { $this->checkSMP = true; } -/*-- CJK-FONTS --*/ - if (preg_match("/([".$this->pregCJKchars."])/u", $html)) { $this->checkCJK = true; } -/*-- END CJK-FONTS --*/ - } - - // Don't allow non-breaking spaces that are converted to substituted chars or will break anyway and mess up table width calc. - $html = str_replace('160',chr(32),$html); - $html = str_replace('','|',$html); - $html = str_replace('','|',$html); - $html = str_replace('','|',$html); - - //Add new supported tags in the DisableTags function - $html=strip_tags($html,$this->enabledtags); //remove all unsupported tags, but the ones inside the 'enabledtags' string - - //Explode the string in order to parse the HTML code - $a=preg_split('/<(.*?)>/ms',$html,-1,PREG_SPLIT_DELIM_CAPTURE); - // ? more accurate regexp that allows e.g. - // if changing - also change in fn.SubstituteChars() - // $a = preg_split ('/<((?:[^<>]+(?:"[^"]*"|\'[^\']*\')?)+)>/ms', $html, -1, PREG_SPLIT_DELIM_CAPTURE); - - if ($this->mb_enc) { - mb_internal_encoding($this->mb_enc); - } - $pbc = 0; - if ($this->progressBar) { $this->UpdateProgressBar(1,0); } // *PROGRESS-BAR* - $this->subPos = -1; - $cnt = count($a); - for($i=0;$i<$cnt; $i++) { - $e = $a[$i]; - if($i%2==0) { - //TEXT - if ($this->blk[$this->blklvl]['hide']) { continue; } - if ($this->inlineDisplayOff) { continue; } - if ($this->inMeter) { continue; } // mPDF 5.5.09 - - if ($this->inFixedPosBlock) { $this->fixedPosBlock .= $e; continue; } // *CSS-POSITION* - if (strlen($e) == 0) { continue; } - - $e = strcode2utf($e); - $e = $this->lesser_entity_decode($e); - - if ($this->usingCoreFont) { - // If core font is selected in document which is not onlyCoreFonts - substitute with non-core font - if ($this->useSubstitutions && !$this->onlyCoreFonts && $this->subPos<$i && !$this->specialcontent) { - $cnt += $this->SubstituteCharsNonCore($a, $i, $e); - } - // CONVERT ENCODING - $e = mb_convert_encoding($e,$this->mb_enc,'UTF-8'); - // mPDF 5.6.41 - if ($this->toupper) { $e = mb_strtoupper($e,$this->mb_enc); } - if ($this->tolower) { $e = mb_strtolower($e,$this->mb_enc); } - if ($this->capitalize) { $e = mb_convert_case($e, MB_CASE_TITLE, "UTF-8"); } - } - else { - if ($this->checkSIP && $this->CurrentFont['sipext'] && $this->subPos<$i && !$this->specialcontent) { - $cnt += $this->SubstituteCharsSIP($a, $i, $e); - } - - if ($this->useSubstitutions && !$this->onlyCoreFonts && $this->CurrentFont['type']!='Type0' && $this->subPos<$i && !$this->specialcontent) { - // mPDF 5.6.62 removes U+200E/U+200F LTR and RTL mark and U+200C/U+200D Zero-width Joiner and Non-joiner - $e = preg_replace("/[\xe2\x80\x8c\xe2\x80\x8d\xe2\x80\x8e\xe2\x80\x8f]/u",'',$e); - $cnt += $this->SubstituteCharsMB($a, $i, $e); - } - if ($this->biDirectional) { // *RTL* - // mPDF 5.7+ - $e = preg_replace_callback("/([".$this->pregRTLchars."]+)/u", array($this, 'arabJoinPregCallback'), $e ); // *RTL* - } // *RTL* - // Font-specific ligature substitution for Indic fonts - if (isset($this->CurrentFont['indic']) && $this->CurrentFont['indic']) $this->ConvertIndic($e); // *INDIC* - - // mPDF 5.6.62 removes U+200E/U+200F LTR and RTL mark and U+200C/U+200D Zero-width Joiner and Non-joiner - $e = preg_replace("/[\xe2\x80\x8c\xe2\x80\x8d\xe2\x80\x8e\xe2\x80\x8f]/u",'',$e); - - if ($this->toupper) { $e = mb_strtoupper($e,$this->mb_enc); } - if ($this->tolower) { $e = mb_strtolower($e,$this->mb_enc); } - if ($this->capitalize) { $e = mb_convert_case($e, MB_CASE_TITLE, "UTF-8"); } - } - if (($this->tts) || ($this->ttz) || ($this->tta)) { - $es = explode('|',$e); - $e = ''; - foreach($es AS $val) { - $e .= chr($val); - } - } - //Adjust lineheight - - // FORM ELEMENTS - if ($this->specialcontent) { -/*-- FORMS --*/ - //SELECT tag (form element) - if ($this->specialcontent == "type=select") { - $e = ltrim($e); - $stringwidth = $this->GetStringWidth($e); - if (!isset($this->selectoption['MAXWIDTH']) || $stringwidth > $this->selectoption['MAXWIDTH']) { $this->selectoption['MAXWIDTH'] = $stringwidth; } - if (!isset($this->selectoption['SELECTED']) || $this->selectoption['SELECTED'] == '') { $this->selectoption['SELECTED'] = $e; } - // mPDD 1.4 Active Forms - if (isset($this->selectoption['ACTIVE']) && $this->selectoption['ACTIVE']) { - $this->selectoption['ITEMS'][]=array('exportValue'=>$this->selectoption['currentVAL'], 'content'=>$e, 'selected'=>$this->selectoption['currentSEL']); - } - } - // TEXTAREA - else { - $objattr = unserialize($this->specialcontent); - $objattr['text'] = $e; - $te = "\xbb\xa4\xactype=textarea,objattr=".serialize($objattr)."\xbb\xa4\xac"; - if ($this->tdbegin) { - $this->_saveCellTextBuffer($te, $this->HREF); - } - else { - $this->_saveTextBuffer($te, $this->HREF); - } - } -/*-- END FORMS --*/ - } - - // TABLE - else if ($this->tableLevel) { -/*-- TABLES --*/ - if ($this->tdbegin) { - if (($this->ignorefollowingspaces) && !$this->ispre) { $e = ltrim($e); } - if ($e || $e==='0') { - if (($this->blockjustfinished || $this->listjustfinished) && $this->cell[$this->row][$this->col]['s']>0) { - $this->_saveCellTextBuffer("\n"); - if (!isset($this->cell[$this->row][$this->col]['maxs'])) { - $this->cell[$this->row][$this->col]['maxs'] = $this->cell[$this->row][$this->col]['s']; - } - elseif($this->cell[$this->row][$this->col]['maxs'] < $this->cell[$this->row][$this->col]['s']) { - $this->cell[$this->row][$this->col]['maxs'] = $this->cell[$this->row][$this->col]['s']; - } - $this->cell[$this->row][$this->col]['s'] = 0;// reset - } - $this->blockjustfinished=false; - $this->listjustfinished=false; - - $this->_saveCellTextBuffer($e, $this->HREF); - - if (!isset($this->cell[$this->row][$this->col]['R']) || !$this->cell[$this->row][$this->col]['R']) { - if (isset($this->cell[$this->row][$this->col]['s'])) { - $this->cell[$this->row][$this->col]['s'] += $this->GetStringWidth($e, false); - } - else { $this->cell[$this->row][$this->col]['s'] = $this->GetStringWidth($e, false); } - if (!empty($this->spanborddet)) { - $this->cell[$this->row][$this->col]['s'] += $this->spanborddet['L']['w'] + $this->spanborddet['R']['w']; - } - } - - if ($this->checkCJK && preg_match("/([".$this->pregCJKchars."])/u", $e)) { $this->tableCJK = true; } // *CJK-FONTS* - - // mPDF 5.6.13 Decimal mark alignment - if (substr($this->cell[$this->row][$this->col]['a'],0,1) == 'D') { - $dp = $this->decimal_align[substr($this->cell[$this->row][$this->col]['a'],0,2)]; - $s = preg_split('/'.preg_quote($dp,'/').'/', $e, 2); // ? needs to be /u if not core - $s0 = $this->GetStringWidth($s[0], false); - if ($s[1]) { $s1 = $this->GetStringWidth(($s[1].$dp), false); } - else $s1 = 0; - if (!isset($this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['decimal_align'][$this->col]['maxs0'])) { - $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['decimal_align'][$this->col]['maxs0'] = $s0; - } - else { - $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['decimal_align'][$this->col]['maxs0'] = max($s0, $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['decimal_align'][$this->col]['maxs0']); - } - if (!isset($this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['decimal_align'][$this->col]['maxs1'])) { - $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['decimal_align'][$this->col]['maxs1'] = $s1; - } - else { - $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['decimal_align'][$this->col]['maxs1'] = max($s1, $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['decimal_align'][$this->col]['maxs1']); - } - } - - if ($this->tableLevel==1 && $this->useGraphs) { - $this->graphs[$this->currentGraphId]['data'][$this->row][$this->col] = $e; - } - $this->nestedtablejustfinished = false; - $this->linebreakjustfinished=false; - } - } -/*-- END TABLES --*/ - } - // ALL ELSE - else { - if ($this->ignorefollowingspaces and !$this->ispre) { $e = ltrim($e); } - if ($e || $e==='0') $this->_saveTextBuffer($e, $this->HREF); - } - } - - - else { // TAG ** - - if($e[0]=='/') { -/*-- PROGRESS-BAR --*/ - if ($this->progressBar) { // 10% increments - if (intval($i*10/$cnt) != $pbc) { $pbc = intval($i*10/$cnt); $this->UpdateProgressBar(1,$pbc*10,$tag); } - } -/*-- END PROGRESS-BAR --*/ - - - // Check for tags where HTML specifies optional end tags, - // and/or does not allow nesting e.g. P inside P, or - $endtag = trim(strtoupper(substr($e,1))); // mPDF 5.4.20 - if($this->blk[$this->blklvl]['hide']) { - if (in_array($endtag, $this->outerblocktags) || in_array($endtag, $this->innerblocktags)) { - unset($this->blk[$this->blklvl]); - $this->blklvl--; - } - continue; - } - -/*-- CSS-POSITION --*/ - if ($this->inFixedPosBlock) { - if (in_array($endtag, $this->outerblocktags) || in_array($endtag, $this->innerblocktags)) { $this->fixedPosBlockDepth--; } - if ($this->fixedPosBlockDepth == 0) { - $this->fixedPosBlockSave[] = array($this->fixedPosBlock, $this->fixedPosBlockBBox, $this->page); - $this->fixedPosBlock = ''; - $this->inFixedPosBlock = false; - continue; - } - $this->fixedPosBlock .= '<'.$e.'>'; - continue; - } -/*-- END CSS-POSITION --*/ - if ($this->allow_html_optional_endtags && !$parseonly) { - if (($endtag == 'DIV' || $endtag =='FORM' || $endtag =='CENTER') && $this->lastoptionaltag == 'P') { $this->CloseTag($this->lastoptionaltag ); } - if ($this->lastoptionaltag == 'LI' && $endtag == 'OL') { $this->CloseTag($this->lastoptionaltag ); } - if ($this->lastoptionaltag == 'LI' && $endtag == 'UL') { $this->CloseTag($this->lastoptionaltag ); } - if ($this->lastoptionaltag == 'DD' && $endtag == 'DL') { $this->CloseTag($this->lastoptionaltag ); } - if ($this->lastoptionaltag == 'DT' && $endtag == 'DL') { $this->CloseTag($this->lastoptionaltag ); } - if ($this->lastoptionaltag == 'OPTION' && $endtag == 'SELECT') { $this->CloseTag($this->lastoptionaltag ); } -/*-- TABLES --*/ - if ($endtag == 'TABLE') { - if ($this->lastoptionaltag == 'THEAD' || $this->lastoptionaltag == 'TBODY' || $this->lastoptionaltag == 'TFOOT') { - $this->CloseTag($this->lastoptionaltag); - } - if ($this->lastoptionaltag == 'TR') { $this->CloseTag('TR'); } - if ($this->lastoptionaltag == 'TD' || $this->lastoptionaltag == 'TH') { $this->CloseTag($this->lastoptionaltag ); $this->CloseTag('TR'); } - } - if ($endtag == 'THEAD' || $endtag == 'TBODY' || $endtag == 'TFOOT') { - if ($this->lastoptionaltag == 'TR') { $this->CloseTag('TR'); } - if ($this->lastoptionaltag == 'TD' || $this->lastoptionaltag == 'TH') { $this->CloseTag($this->lastoptionaltag ); $this->CloseTag('TR'); } - } - if ($endtag == 'TR') { - if ($this->lastoptionaltag == 'TD' || $this->lastoptionaltag == 'TH') { $this->CloseTag($this->lastoptionaltag ); } - } -/*-- END TABLES --*/ - } - $this->CloseTag($endtag); - } - - else { // OPENING TAG - if($this->blk[$this->blklvl]['hide']) { - if (strpos($e,' ')) { $te = strtoupper(substr($e,0,strpos($e,' '))); } - else { $te = strtoupper($e); } - if (in_array($te, $this->outerblocktags) || in_array($te, $this->innerblocktags)) { - $this->blklvl++; - $this->blk[$this->blklvl]['hide']=true; - } - continue; - } - -/*-- CSS-POSITION --*/ - if ($this->inFixedPosBlock) { - if (strpos($e,' ')) { $te = strtoupper(substr($e,0,strpos($e,' '))); } - else { $te = strtoupper($e); } - $this->fixedPosBlock .= '<'.$e.'>'; - if (in_array($te, $this->outerblocktags) || in_array($te, $this->innerblocktags)) { $this->fixedPosBlockDepth++; } - continue; - } -/*-- END CSS-POSITION --*/ - $regexp = '|=\'(.*?)\'|s'; // eliminate single quotes, if any - $e = preg_replace($regexp,"=\"\$1\"",$e); - // changes anykey=anyvalue to anykey="anyvalue" (only do this inside [some] tags) - if (substr($e,0,10)!='pageheader' && substr($e,0,10)!='pagefooter' && substr($e,0,12)!='tocpagebreak') { // mPDF 5.6.69 - $regexp = '| (\\w+?)=([^\\s>"]+)|si'; - $e = preg_replace($regexp," \$1=\"\$2\"",$e); - } - - $e = preg_replace('/ (\\S+?)\s*=\s*"/i', " \\1=\"", $e); - - //Fix path values, if needed - $orig_srcpath = ''; - if ((stristr($e,"href=") !== false) or (stristr($e,"src=") !== false) ) { - $regexp = '/ (href|src)\s*=\s*"(.*?)"/i'; - preg_match($regexp,$e,$auxiliararray); - if (isset($auxiliararray[2])) { $path = $auxiliararray[2]; } - else { $path = ''; } - if (trim($path) != '' && !(stristr($e,"src=") !== false && substr($path,0,4)=='var:')) { - $path=htmlspecialchars_decode($path); // mPDF 5.7.4 URLs - $orig_srcpath = $path; - $this->GetFullPath($path); - $regexp = '/ (href|src)="(.*?)"/i'; - $e = preg_replace($regexp,' \\1="'.$path.'"',$e); - } - }//END of Fix path values - - - //Extract attributes - $contents=array(); - $contents1=array(); // mPDF 5.5.17 - $contents2=array(); - // Changed to allow style="background: url('bg.jpg')" - // mPDF 5.5.17 Changed to improve performance; maximum length of \S (attribute) = 16 - // mPDF 5.6.30 Increase allowed attribute name to 32 - cutting off "toc-even-header-name" etc. - preg_match_all('/\\S{1,32}=["][^"]*["]/',$e,$contents1); - preg_match_all('/\\S{1,32}=[\'][^\']*[\']/i',$e,$contents2); - - $contents = array_merge($contents1, $contents2); - preg_match('/\\S+/',$e,$a2); - $tag=strtoupper($a2[0]); - $attr=array(); - if ($orig_srcpath) { $attr['ORIG_SRC'] = $orig_srcpath; } - if (!empty($contents)) { - foreach($contents[0] as $v) { - // Changed to allow style="background: url('bg.jpg')" - if(preg_match('/^([^=]*)=["]?([^"]*)["]?$/',$v,$a3) || preg_match('/^([^=]*)=[\']?([^\']*)[\']?$/',$v,$a3)) { - if (strtoupper($a3[1])=='ID' || strtoupper($a3[1])=='CLASS') { // 4.2.013 Omits STYLE - $attr[strtoupper($a3[1])]=trim(strtoupper($a3[2])); - } - // includes header-style-right etc. used for - else if (preg_match('/^(HEADER|FOOTER)-STYLE/i',$a3[1])) { - $attr[strtoupper($a3[1])]=trim(strtoupper($a3[2])); - } - else { - $attr[strtoupper($a3[1])]=trim($a3[2]); - } - } - } - } - $this->OpenTag($tag,$attr); -/*-- CSS-POSITION --*/ - if ($this->inFixedPosBlock) { - $this->fixedPosBlockBBox = array($tag,$attr, $this->x, $this->y); - $this->fixedPosBlock = ''; - $this->fixedPosBlockDepth = 1; - } -/*-- END CSS-POSITION --*/ - // mPDF 5.5.09 - if (preg_match('/\/$/',$e)) { $this->closeTag($tag); } - - } - - } // end TAG - } //end of foreach($a as $i=>$e) - - if ($close) { - - // Close any open block tags - for ($b= $this->blklvl;$b>0;$b--) { $this->CloseTag($this->blk[$b]['tag']); } - - // Output any text left in buffer - if (count($this->textbuffer) && !$parseonly) { $this->printbuffer($this->textbuffer); } - if (!$parseonly) $this->textbuffer=array(); - -/*-- CSS-FLOAT --*/ - // If ended with a float, need to move to end page - $currpos = $this->page*1000 + $this->y; - if (isset($this->blk[$this->blklvl]['float_endpos']) && $this->blk[$this->blklvl]['float_endpos'] > $currpos) { - $old_page = $this->page; - $new_page = intval($this->blk[$this->blklvl]['float_endpos'] /1000); - if ($old_page != $new_page) { - $s = $this->PrintPageBackgrounds(); - // Writes after the marker so not overwritten later by page background etc. - $this->pages[$this->page] = preg_replace('/(___BACKGROUND___PATTERNS'.$this->uniqstr.')/', '\\1'."\n".$s."\n", $this->pages[$this->page]); - $this->pageBackgrounds = array(); - $this->page = $new_page; - $this->ResetMargins(); - $this->Reset(); - $this->pageoutput[$this->page] = array(); - } - $this->y = (($this->blk[$this->blklvl]['float_endpos'] *1000) % 1000000)/1000; // mod changes operands to integers before processing - } -/*-- END CSS-FLOAT --*/ - -/*-- CSS-IMAGE-FLOAT --*/ - $this->printfloatbuffer(); -/*-- END CSS-IMAGE-FLOAT --*/ - - //Create Internal Links, if needed - if (!empty($this->internallink) ) { - foreach($this->internallink as $k=>$v) { - if (strpos($k,"#") !== false ) { continue; } //ignore - $ypos = $v['Y']; - $pagenum = $v['PAGE']; - $sharp = "#"; - while (array_key_exists($sharp.$k,$this->internallink)) { - $internallink = $this->internallink[$sharp.$k]; - $this->SetLink($internallink,$ypos,$pagenum); - $sharp .= "#"; - } - } - } - - $this->linemaxfontsize = ''; - $this->lineheight_correction = $this->default_lineheight_correction; - - $this->bufferoutput = false; - -/*-- CSS-POSITION --*/ - if (count($this->fixedPosBlockSave) && $sub != 4) { - foreach($this->fixedPosBlockSave AS $fpbs) { - $old_page = $this->page; - $this->page = $fpbs[2]; - $this->WriteFixedPosHTML($fpbs[0], 0, 0, 100, 100,'auto', $fpbs[1]); // 0,0,10,10 are overwritten by bbox - $this->page = $old_page; - } - } -/*-- END CSS-POSITION --*/ - - } -} - -/*-- CSS-POSITION --*/ - -function WriteFixedPosHTML($html='',$x, $y, $w, $h, $overflow='visible', $bounding=array()) { - // $overflow can be 'hidden', 'visible' or 'auto' - 'auto' causes autofit to size - // Annotations disabled - enabled in mPDF 5.0 - // Links do work - // Will always go on current page (or start Page 1 if required) - // Probably INCOMPATIBLE WITH keep with table, columns etc. - // Called externally or interally via
- // When used internally, $x $y $w $h and $overflow are all overridden by $bounding - - $overflow = strtolower($overflow); - if($this->state==0) { - $this->AddPage($this->CurOrientation); - } - $save_y = $this->y; - $save_x = $this->x; - $this->fullImageHeight = $this->h; - $save_cols = false; -/*-- COLUMNS --*/ - if ($this->ColActive) { - $save_cols = true; - $save_nbcol = $this->NbCol; // other values of gap and vAlign will not change by setting Columns off - $this->SetColumns(0); - } -/*-- END COLUMNS --*/ - $save_annots = $this->title2annots; // *ANNOTATIONS* - $this->writingHTMLheader = true; // a FIX to stop pagebreaks etc. - $this->writingHTMLfooter = true; - $this->InFooter = true; // suppresses autopagebreaks - $save_bgs = $this->pageBackgrounds; - $checkinnerhtml = preg_replace('/\s/','',$html); - - if ($w > $this->w) { $x = 0; $w = $this->w; } - if ($h > $this->h) { $y = 0; $h = $this->h; } - if ($x > $this->w) { $x = $this->w - $w; } - if ($y > $this->h) { $y = $this->h - $h; } - - if (!empty($bounding)) { - // $cont_ containing block = full physical page (position: absolute) or page inside margins (position: fixed) - // $bbox_ Bounding box is the
which is positioned absolutely/fixed - // top/left/right/bottom/width/height/background*/border*/padding*/margin* are taken from bounding - // font*[family/size/style/weight]/line-height/text*[align/decoration/transform/indent]/color are transferred to $inner - // as an enclosing
(after having checked ID/CLASS) - // $x, $y, $w, $h are inside of $bbox_ = containing box for $inner_ - // $inner_ InnerHTML is the contents of that block to be output - $tag = $bounding[0]; - $attr = $bounding[1]; - $orig_x0 = $bounding[2]; - $orig_y0 = $bounding[3]; - - // As in WriteHTML() initialising - $this->blklvl = 0; - $this->lastblocklevelchange = 0; - $this->blk = array(); - $this->initialiseBlock($this->blk[0]); - - $this->blk[0]['width'] =& $this->pgwidth; - $this->blk[0]['inner_width'] =& $this->pgwidth; - - $this->blk[0]['blockContext'] = $this->blockContext; - - $properties = $this->cssmgr->MergeCSS('BLOCK','BODY',''); - $this->setCSS($properties,'','BODY'); - $this->blklvl = 1; - $this->initialiseBlock($this->blk[1]); - $this->blk[1]['tag'] = $tag; - $this->blk[1]['attr'] = $attr; - $this->Reset(); - $p = $this->cssmgr->MergeCSS('BLOCK',$tag,$attr); - if (isset($p['ROTATE']) && ($p['ROTATE']==90 || $p['ROTATE']==-90)) { $rotate = $p['ROTATE']; } - else { $rotate = 0; } - if (isset($p['OVERFLOW'])) { $overflow = strtolower($p['OVERFLOW']); } - if (strtolower($p['POSITION']) == 'fixed') { - $cont_w = $this->pgwidth; // $this->blk[0]['inner_width']; - $cont_h = $this->h - $this->tMargin - $this->bMargin; - $cont_x = $this->lMargin; - $cont_y = $this->tMargin; - } - else { - $cont_w = $this->w; // ABSOLUTE; - $cont_h = $this->h; - $cont_x = 0; - $cont_y = 0; - } - - // Pass on in-line properties to the innerhtml - $css = ''; - if (isset($p['TEXT-ALIGN'])) { $css .= 'text-align: '.strtolower($p['TEXT-ALIGN']).'; '; } - if (isset($p['TEXT-TRANSFORM'])) { $css .= 'text-transform: '.strtolower($p['TEXT-TRANSFORM']).'; '; } - if (isset($p['TEXT-INDENT'])) { $css .= 'text-indent: '.strtolower($p['TEXT-INDENT']).'; '; } - if (isset($p['TEXT-DECORATION'])) { $css .= 'text-decoration: '.strtolower($p['TEXT-DECORATION']).'; '; } - if (isset($p['FONT-FAMILY'])) { $css .= 'font-family: '.strtolower($p['FONT-FAMILY']).'; '; } - if (isset($p['FONT-STYLE'])) { $css .= 'font-style: '.strtolower($p['FONT-STYLE']).'; '; } - if (isset($p['FONT-WEIGHT'])) { $css .= 'font-weight: '.strtolower($p['FONT-WEIGHT']).'; '; } - if (isset($p['FONT-SIZE'])) { $css .= 'font-size: '.strtolower($p['FONT-SIZE']).'; '; } - if (isset($p['LINE-HEIGHT'])) { $css .= 'line-height: '.strtolower($p['LINE-HEIGHT']).'; '; } - if (isset($p['TEXT-SHADOW'])) { $css .= 'text-shadow: '.strtolower($p['TEXT-SHADOW']).'; '; } - if (isset($p['LETTER-SPACING'])) { $css .= 'letter-spacing: '.strtolower($p['LETTER-SPACING']).'; '; } - if (isset($p['FONT-VARIANT'])) { $css .= 'font-variant: '.strtolower($p['FONT-VARIANT']).'; '; } - if (isset($p['COLOR'])) { $css .= 'color: '.strtolower($p['COLOR']).'; '; } - if (isset($p['Z-INDEX'])) { $css .= 'z-index: '.$p['Z-INDEX'].'; '; } // mPDF 5.6.01 - if ($css) { - $html = '
'.$html.'
'; - } - // Copy over (only) the properties to set for border and background - $pb = array(); - $pb['MARGIN-TOP'] = $p['MARGIN-TOP']; - $pb['MARGIN-RIGHT'] = $p['MARGIN-RIGHT']; - $pb['MARGIN-BOTTOM'] = $p['MARGIN-BOTTOM']; - $pb['MARGIN-LEFT'] = $p['MARGIN-LEFT']; - $pb['PADDING-TOP'] = $p['PADDING-TOP']; - $pb['PADDING-RIGHT'] = $p['PADDING-RIGHT']; - $pb['PADDING-BOTTOM'] = $p['PADDING-BOTTOM']; - $pb['PADDING-LEFT'] = $p['PADDING-LEFT']; - $pb['BORDER-TOP'] = $p['BORDER-TOP']; - $pb['BORDER-RIGHT'] = $p['BORDER-RIGHT']; - $pb['BORDER-BOTTOM'] = $p['BORDER-BOTTOM']; - $pb['BORDER-LEFT'] = $p['BORDER-LEFT']; - $pb['BORDER-TOP-LEFT-RADIUS-H'] = $p['BORDER-TOP-LEFT-RADIUS-H']; - $pb['BORDER-TOP-LEFT-RADIUS-V'] = $p['BORDER-TOP-LEFT-RADIUS-V']; - $pb['BORDER-TOP-RIGHT-RADIUS-H'] = $p['BORDER-TOP-RIGHT-RADIUS-H']; - $pb['BORDER-TOP-RIGHT-RADIUS-V'] = $p['BORDER-TOP-RIGHT-RADIUS-V']; - $pb['BORDER-BOTTOM-LEFT-RADIUS-H'] = $p['BORDER-BOTTOM-LEFT-RADIUS-H']; - $pb['BORDER-BOTTOM-LEFT-RADIUS-V'] = $p['BORDER-BOTTOM-LEFT-RADIUS-V']; - $pb['BORDER-BOTTOM-RIGHT-RADIUS-H'] = $p['BORDER-BOTTOM-RIGHT-RADIUS-H']; - $pb['BORDER-BOTTOM-RIGHT-RADIUS-V'] = $p['BORDER-BOTTOM-RIGHT-RADIUS-V']; - if (isset($p['BACKGROUND-COLOR'])) { $pb['BACKGROUND-COLOR'] = $p['BACKGROUND-COLOR']; } - if (isset($p['BOX-SHADOW'])) { $pb['BOX-SHADOW'] = $p['BOX-SHADOW']; } -/*-- BACKGROUNDS --*/ - if (isset($p['BACKGROUND-IMAGE'])) { $pb['BACKGROUND-IMAGE'] = $p['BACKGROUND-IMAGE']; } - if (isset($p['BACKGROUND-IMAGE-RESIZE'])) { $pb['BACKGROUND-IMAGE-RESIZE'] = $p['BACKGROUND-IMAGE-RESIZE']; } - if (isset($p['BACKGROUND-IMAGE-OPACITY'])) { $pb['BACKGROUND-IMAGE-OPACITY'] = $p['BACKGROUND-IMAGE-OPACITY']; } - if (isset($p['BACKGROUND-REPEAT'])) { $pb['BACKGROUND-REPEAT'] = $p['BACKGROUND-REPEAT']; } - if (isset($p['BACKGROUND-POSITION'])) { $pb['BACKGROUND-POSITION'] = $p['BACKGROUND-POSITION']; } - if (isset($p['BACKGROUND-GRADIENT'])) { $pb['BACKGROUND-GRADIENT'] = $p['BACKGROUND-GRADIENT']; } - if (isset($p['BACKGROUND-SIZE'])) { $pb['BACKGROUND-SIZE'] = $p['BACKGROUND-SIZE']; } // mPDF 5.6.12 - if (isset($p['BACKGROUND-ORIGIN'])) { $pb['BACKGROUND-ORIGIN'] = $p['BACKGROUND-ORIGIN']; } // mPDF 5.6.12 - if (isset($p['BACKGROUND-CLIP'])) { $pb['BACKGROUND-CLIP'] = $p['BACKGROUND-CLIP']; } // mPDF 5.6.12 - -/*-- END BACKGROUNDS --*/ - - $this->setCSS($pb,'BLOCK',$tag); - - //================================================================ - $bbox_br = $this->blk[1]['border_right']['w']; - $bbox_bl = $this->blk[1]['border_left']['w']; - $bbox_bt = $this->blk[1]['border_top']['w']; - $bbox_bb = $this->blk[1]['border_bottom']['w']; - $bbox_pr = $this->blk[1]['padding_right']; - $bbox_pl = $this->blk[1]['padding_left']; - $bbox_pt = $this->blk[1]['padding_top']; - $bbox_pb = $this->blk[1]['padding_bottom']; - $bbox_mr = $this->blk[1]['margin_right']; - if (strtolower($p['MARGIN-RIGHT'])=='auto') { $bbox_mr = 'auto'; } - $bbox_ml = $this->blk[1]['margin_left']; - if (strtolower($p['MARGIN-LEFT'])=='auto') { $bbox_ml = 'auto'; } - $bbox_mt = $this->blk[1]['margin_top']; - if (strtolower($p['MARGIN-TOP'])=='auto') { $bbox_mt = 'auto'; } - $bbox_mb = $this->blk[1]['margin_bottom']; - if (strtolower($p['MARGIN-BOTTOM'])=='auto') { $bbox_mb = 'auto'; } - if (isset($p['LEFT']) && strtolower($p['LEFT'])!='auto') { $bbox_left = $this->ConvertSize($p['LEFT'], $cont_w, $this->FontSize,false); } - else { $bbox_left = 'auto'; } - if (isset($p['TOP']) && strtolower($p['TOP'])!='auto') { $bbox_top = $this->ConvertSize($p['TOP'], $cont_h, $this->FontSize,false); } - else { $bbox_top = 'auto'; } - if (isset($p['RIGHT']) && strtolower($p['RIGHT'])!='auto') { $bbox_right = $this->ConvertSize($p['RIGHT'], $cont_w, $this->FontSize,false); } - else { $bbox_right = 'auto'; } - if (isset($p['BOTTOM']) && strtolower($p['BOTTOM'])!='auto') { $bbox_bottom = $this->ConvertSize($p['BOTTOM'], $cont_h, $this->FontSize,false); } - else { $bbox_bottom = 'auto'; } - if (isset($p['WIDTH']) && strtolower($p['WIDTH'])!='auto') { $inner_w = $this->ConvertSize($p['WIDTH'], $cont_w, $this->FontSize,false); } - else { $inner_w = 'auto'; } - if (isset($p['HEIGHT']) && strtolower($p['HEIGHT'])!='auto') { $inner_h = $this->ConvertSize($p['HEIGHT'], $cont_h, $this->FontSize,false); } - else { $inner_h = 'auto'; } - - // If bottom or right pos are set and not left / top - save this to adjust rotated block later - if ($rotate) { - if ($bbox_left === 'auto' && $bbox_right !== 'auto') { $rot_rpos = $bbox_right; } - else { $rot_rpos = false; } - if ($bbox_top === 'auto' && $bbox_bottom !== 'auto') { $rot_bpos = $bbox_bottom; } - else { $rot_bpos = false; } - } - - //================================================================ - if ($checkinnerhtml=='' && $inner_h==='auto') { $inner_h = 0.0001; } - if ($checkinnerhtml=='' && $inner_w==='auto') { $inner_w = 2*$this->GetCharWidth('W',false); } - //================================================================ - // Algorithm from CSS2.1 See http://www.w3.org/TR/CSS21/visudet.html#abs-non-replaced-height - // mPD 5.3.14 - // Special case (not CSS) if all not specified, centre vertically on page - if ($bbox_top==='auto' && $inner_h==='auto' && $bbox_bottom==='auto' && $bbox_mt==='auto' && $bbox_mb==='auto') { - $bbox_top_orig = $bbox_top; - if ($bbox_mt==='auto') { $bbox_mt = 0; } - if ($bbox_mb==='auto') { $bbox_mb = 0; } - $bbox_top = $orig_y0 - $bbox_mt - $cont_y; - // solve for $bbox_bottom when content_h known - $inner_h=='auto' && $bbox_bottom=='auto' - } - // mPD 5.3.14 - else if ($bbox_top==='auto' && $inner_h==='auto' && $bbox_bottom==='auto') { - $bbox_top_orig = $bbox_top = $orig_y0 - $cont_y; - if ($bbox_mt==='auto') { $bbox_mt = 0; } - if ($bbox_mb==='auto') { $bbox_mb = 0; } - // solve for $bbox_bottom when content_h known - $inner_h=='auto' && $bbox_bottom=='auto' - } - else if ($bbox_top!=='auto' && $inner_h!=='auto' && $bbox_bottom!=='auto') { - if ($bbox_mt==='auto' && $bbox_mb==='auto') { - $x = $cont_h - $bbox_top - $bbox_bt - $bbox_pt - $inner_h - $bbox_pb - $bbox_bb - $bbox_bottom; - $bbox_mt = $bbox_mb = ($x/2); - } - else if ($bbox_mt==='auto') { - $bbox_mt = $cont_h - $bbox_top - $bbox_bt - $bbox_pt - $inner_h - $bbox_pb - $bbox_bb - $bbox_mb - $bbox_bottom; - } - else if ($bbox_mb==='auto') { - $bbox_mb = $cont_h - $bbox_top - $bbox_mt - $bbox_bt - $bbox_pt - $inner_h - $bbox_pb - $bbox_bb - $bbox_bottom; - } - else { - $bbox_bottom = $cont_h - $bbox_top - $bbox_mt - $bbox_bt - $bbox_pt - $inner_h - $bbox_pb - $bbox_bb - $bbox_mt; - } - } - else { - if ($bbox_mt==='auto') { $bbox_mt = 0; } - if ($bbox_mb==='auto') { $bbox_mb = 0; } - if ($bbox_top==='auto' && $inner_h==='auto' && $bbox_bottom!=='auto') { - // solve for $bbox_top when content_h known - $inner_h=='auto' && $bbox_top =='auto' - } - else if ($bbox_top==='auto' && $bbox_bottom==='auto' && $inner_h!=='auto') { - $bbox_top = $orig_y0 - $bbox_mt - $cont_y; - $bbox_bottom = $cont_h - $bbox_top - $bbox_mt - $bbox_bt - $bbox_pt - $inner_h - $bbox_pb - $bbox_bb - $bbox_mt; - } - else if ($inner_h==='auto' && $bbox_bottom==='auto' && $bbox_top!=='auto') { - // solve for $bbox_bottom when content_h known - $inner_h=='auto' && $bbox_bottom=='auto' - } - else if ($bbox_top==='auto' && $inner_h!=='auto' && $bbox_bottom!=='auto') { - $bbox_top = $cont_h - $bbox_mt - $bbox_bt - $bbox_pt - $inner_h - $bbox_pb - $bbox_bb - $bbox_mt - $bbox_bottom; - } - else if ($inner_h==='auto' && $bbox_top!=='auto' && $bbox_bottom!=='auto') { - $inner_h = $cont_h - $bbox_top - $bbox_mt - $bbox_bt - $bbox_pt - $bbox_pb - $bbox_bb - $bbox_mt - $bbox_bottom; - } - else if ($bbox_bottom==='auto' && $bbox_top!=='auto' && $inner_h!=='auto') { - $bbox_bottom = $cont_h - $bbox_top - $bbox_mt - $bbox_bt - $bbox_pt - $inner_h - $bbox_pb - $bbox_bb - $bbox_mt; - } - } - - // THEN DO SAME FOR WIDTH - // http://www.w3.org/TR/CSS21/visudet.html#abs-non-replaced-width - if ($bbox_left==='auto' && $inner_w==='auto' && $bbox_right==='auto') { - if ($bbox_ml==='auto') { $bbox_ml = 0; } - if ($bbox_mr==='auto') { $bbox_mr = 0; } - // IF containing element RTL, should set $bbox_right - $bbox_left = $orig_x0 - $bbox_ml - $cont_x; - // solve for $bbox_right when content_w known - $inner_w=='auto' && $bbox_right=='auto' - } - else if ($bbox_left!=='auto' && $inner_w!=='auto' && $bbox_right!=='auto') { - if ($bbox_ml==='auto' && $bbox_mr==='auto') { - $x = $cont_w - $bbox_left - $bbox_bl - $bbox_pl - $inner_w - $bbox_pr - $bbox_br - $bbox_right; - $bbox_ml = $bbox_mr = ($x/2); - } - else if ($bbox_ml==='auto') { - $bbox_ml = $cont_w - $bbox_left - $bbox_bl - $bbox_pl - $inner_w - $bbox_pr - $bbox_br - $bbox_mr - $bbox_right; - } - else if ($bbox_mr==='auto') { - $bbox_mr = $cont_w - $bbox_left - $bbox_ml - $bbox_bl - $bbox_pl - $inner_w - $bbox_pr - $bbox_br - $bbox_right; - } - else { - $bbox_right = $cont_w - $bbox_left - $bbox_ml - $bbox_bl - $bbox_pl - $inner_w - $bbox_pr - $bbox_br - $bbox_ml; - } - } - else { - if ($bbox_ml==='auto') { $bbox_ml = 0; } - if ($bbox_mr==='auto') { $bbox_mr = 0; } - if ($bbox_left==='auto' && $inner_w==='auto' && $bbox_right!=='auto') { - // solve for $bbox_left when content_w known - $inner_w=='auto' && $bbox_left =='auto' - } - else if ($bbox_left==='auto' && $bbox_right==='auto' && $inner_w!=='auto') { - // IF containing element RTL, should set $bbox_right - $bbox_left = $orig_x0 - $bbox_ml - $cont_x; - $bbox_right = $cont_w - $bbox_left - $bbox_ml - $bbox_bl - $bbox_pl - $inner_w - $bbox_pr - $bbox_br - $bbox_ml; - } - else if ($inner_w==='auto' && $bbox_right==='auto' && $bbox_left!=='auto') { - // solve for $bbox_right when content_w known - $inner_w=='auto' && $bbox_right=='auto' - } - else if ($bbox_left==='auto' && $inner_w!=='auto' && $bbox_right!=='auto') { - $bbox_left = $cont_w - $bbox_ml - $bbox_bl - $bbox_pl - $inner_w - $bbox_pr - $bbox_br - $bbox_ml - $bbox_right; - } - else if ($inner_w==='auto' && $bbox_left!=='auto' && $bbox_right!=='auto') { - $inner_w = $cont_w - $bbox_left - $bbox_ml - $bbox_bl - $bbox_pl - $bbox_pr - $bbox_br - $bbox_ml - $bbox_right; - } - else if ($bbox_right==='auto' && $bbox_left!=='auto' && $inner_w!=='auto') { - $bbox_right = $cont_w - $bbox_left - $bbox_ml - $bbox_bl - $bbox_pl - $inner_w - $bbox_pr - $bbox_br - $bbox_ml; - } - } - - //================================================================ - //================================================================ -/*-- BACKGROUNDS --*/ - if (isset($pb['BACKGROUND-IMAGE']) && $pb['BACKGROUND-IMAGE']) { - $ret = $this->SetBackground($pb, $this->blk[1]['inner_width']); - if ($ret) { $this->blk[1]['background-image'] = $ret; } - } -/*-- END BACKGROUNDS --*/ - - //================================================================ - $y = $cont_y + $bbox_top + $bbox_mt + $bbox_bt + $bbox_pt; - $h = $cont_h - $bbox_top - $bbox_mt - $bbox_bt - $bbox_pt - $bbox_pb - $bbox_bb - $bbox_mb - $bbox_bottom; - $x = $cont_x + $bbox_left + $bbox_ml + $bbox_bl + $bbox_pl; - $w = $cont_w - $bbox_left - $bbox_ml - $bbox_bl - $bbox_pl - $bbox_pr - $bbox_br - $bbox_mr - $bbox_right; - // Set (temporary) values for x y w h to do first paint, if values are auto - if ($inner_h==='auto' && $bbox_top==='auto') { - $y = $cont_y + $bbox_mt + $bbox_bt + $bbox_pt; - $h = $cont_h - ($bbox_bottom + $bbox_mt + $bbox_mb + $bbox_bt + $bbox_bb + $bbox_pt + $bbox_pb); - } - else if ($inner_h==='auto' && $bbox_bottom==='auto') { - $y = $cont_y + $bbox_top + $bbox_mt + $bbox_bt + $bbox_pt; - $h = $cont_h - ($bbox_top + $bbox_mt + $bbox_mb + $bbox_bt + $bbox_bb + $bbox_pt + $bbox_pb); - } - if ($inner_w==='auto' && $bbox_left==='auto') { - $x = $cont_x + $bbox_ml + $bbox_bl + $bbox_pl; - $w = $cont_w - ($bbox_right + $bbox_ml + $bbox_mr + $bbox_bl + $bbox_br + $bbox_pl + $bbox_pr); - } - else if ($inner_w==='auto' && $bbox_right==='auto') { - $x = $cont_x + $bbox_left + $bbox_ml + $bbox_bl + $bbox_pl; - $w = $cont_w - ($bbox_left + $bbox_ml + $bbox_mr + $bbox_bl + $bbox_br + $bbox_pl + $bbox_pr); - } - $bbox_y = $cont_y + $bbox_top + $bbox_mt; - $bbox_x = $cont_x + $bbox_left + $bbox_ml; - $saved_block1 = $this->blk[1]; - unset($p); - unset($pb); - //================================================================ - if ($inner_w==='auto') { // do a first write - $this->lMargin=$x; - $this->rMargin=$this->w - $w - $x; - // SET POSITION & FONT VALUES - $this->pgwidth = $this->w - $this->lMargin - $this->rMargin; - $this->pageoutput[$this->page]=array(); - $this->x = $x; - $this->y = $y; - $this->HTMLheaderPageLinks = array(); - $this->HTMLheaderPageAnnots = array(); - $this->HTMLheaderPageForms = array(); - $this->pageBackgrounds = array(); - $this->maxPosR = 0; - $this->maxPosL = $this->w; // For RTL - $this->WriteHTML($html , 4); - $inner_w = $this->maxPosR - $this->lMargin; - if ($bbox_right==='auto') { - $bbox_right = $cont_w - $bbox_left - $bbox_ml - $bbox_bl - $bbox_pl - $inner_w - $bbox_pr - $bbox_br - $bbox_ml; - } - else if ($bbox_left==='auto') { - $bbox_left = $cont_w - $bbox_ml - $bbox_bl - $bbox_pl - $inner_w - $bbox_pr - $bbox_br - $bbox_ml - $bbox_right; - $bbox_x = $cont_x + $bbox_left + $bbox_ml ; - $inner_x = $bbox_x + $bbox_bl + $bbox_pl; - $x = $inner_x; - } - $w = $inner_w; - $bbox_y = $cont_y + $bbox_top + $bbox_mt; - $bbox_x = $cont_x + $bbox_left + $bbox_ml; - } - - if ($inner_h==='auto') { // do a first write - $this->lMargin=$x; - $this->rMargin=$this->w - $w - $x; - // SET POSITION & FONT VALUES - $this->pgwidth = $this->w - $this->lMargin - $this->rMargin; - $this->pageoutput[$this->page]=array(); - $this->x = $x; - $this->y = $y; - $this->HTMLheaderPageLinks = array(); - $this->HTMLheaderPageAnnots = array(); - $this->HTMLheaderPageForms = array(); - $this->pageBackgrounds = array(); - $this->WriteHTML($html , 4); - $inner_h = $this->y - $y; - if ($overflow!='hidden' && $overflow!='visible') { // constrained - if (($this->y + $bbox_pb + $bbox_bb) > ($cont_y + $cont_h)) { - $adj = ($this->y + $bbox_pb + $bbox_bb) - ($cont_y + $cont_h); - $inner_h -= $adj; - } - } - if ($bbox_bottom==='auto' && $bbox_top_orig==='auto') { - $bbox_bottom = $bbox_top = ($cont_h - $bbox_mt - $bbox_bt - $bbox_pt - $inner_h - $bbox_pb - $bbox_bb - $bbox_mb)/2; - if ($overflow!='hidden' && $overflow!='visible') { // constrained - if ($bbox_top < 0) { - $bbox_top = 0; - $inner_h = $cont_h - $bbox_top - $bbox_mt - $bbox_bt - $bbox_pt - $bbox_pb - $bbox_bb - $bbox_mb - $bbox_bottom; - } - } - $bbox_y = $cont_y + $bbox_top + $bbox_mt; - $inner_y = $bbox_y + $bbox_bt + $bbox_pt; - $y = $inner_y; - - } - else if ($bbox_bottom==='auto') { - $bbox_bottom = $cont_h - $bbox_top - $bbox_mt - $bbox_bt - $bbox_pt - $inner_h - $bbox_pb - $bbox_bb - $bbox_mb; - } - else if ($bbox_top==='auto') { - $bbox_top = $cont_h - $bbox_mt - $bbox_bt - $bbox_pt - $inner_h - $bbox_pb - $bbox_bb - $bbox_mb - $bbox_bottom; - if ($overflow!='hidden' && $overflow!='visible') { // constrained - if ($bbox_top < 0) { - $bbox_top = 0; - $inner_h = $cont_h - $bbox_top - $bbox_mt - $bbox_bt - $bbox_pt - $bbox_pb - $bbox_bb - $bbox_mb - $bbox_bottom; - } - } - $bbox_y = $cont_y + $bbox_top + $bbox_mt; - $inner_y = $bbox_y + $bbox_bt + $bbox_pt; - $y = $inner_y; - } - $h = $inner_h; - $bbox_y = $cont_y + $bbox_top + $bbox_mt; - $bbox_x = $cont_x + $bbox_left + $bbox_ml; - } - $inner_w = $w; - $inner_h = $h; - - } - $this->lMargin=$x; - $this->rMargin=$this->w - $w - $x; - // SET POSITION & FONT VALUES - $this->pgwidth = $this->w - $this->lMargin - $this->rMargin; - $this->pageoutput[$this->page]=array(); - $this->x = $x; - $this->y = $y; - $this->HTMLheaderPageLinks = array(); - $this->HTMLheaderPageAnnots = array(); - $this->HTMLheaderPageForms = array(); - $this->pageBackgrounds = array(); - $this->WriteHTML($html , 4); // parameter 4 saves output to $this->headerbuffer - $actual_h = $this->y - $y; - $use_w = $w; - $use_h = $h; - $ratio = $actual_h / $use_w; - - if ($overflow!='hidden' && $overflow!='visible') { - $target = $h/$w; - if (($ratio / $target ) > 1) { - $nl = CEIL($actual_h / $this->lineheight); - $l = $use_w * $nl; - $est_w = sqrt(($l * $this->lineheight) / $target) * 0.8; - $use_w += ($est_w - $use_w) - ($w/100); - } - $bpcstart = ($ratio / $target); - $bpcctr = 1; - while(($ratio / $target ) > 1) { - - if ($this->progressBar) { $this->UpdateProgressBar(4,intval(100/($ratio/$target)),('Auto-sizing fixed-position block: '.$bpcctr++)); } // *PROGRESS-BAR* - - $this->x = $x; - $this->y = $y; - - if (($ratio / $target) > 1.5 || ($ratio / $target) < 0.6) { - $use_w += ($w/$this->incrementFPR1); - } - else if (($ratio / $target) > 1.2 || ($ratio / $target) < 0.85) { - $use_w += ($w/$this->incrementFPR2); - } - else if (($ratio / $target) > 1.1 || ($ratio / $target) < 0.91) { - $use_w += ($w/$this->incrementFPR3); - } - else { - $use_w += ($w/$this->incrementFPR4); - } - - $use_h = $use_w * $target ; - $this->rMargin=$this->w - $use_w - $x; - $this->pgwidth = $this->w - $this->lMargin - $this->rMargin; - $this->HTMLheaderPageLinks = array(); - $this->HTMLheaderPageAnnots = array(); - $this->HTMLheaderPageForms = array(); - $this->pageBackgrounds = array(); - $this->WriteHTML($html , 4); // parameter 4 saves output to $this->headerbuffer - $actual_h = $this->y - $y; - $ratio = $actual_h / $use_w; - } - if ($this->progressBar) { $this->UpdateProgressBar(4,'100',' '); } // *PROGRESS-BAR* - } - $shrink_f = $w/$use_w; - - //================================================================ - - $this->pages[$this->page] .= '___BEFORE_BORDERS___'; - $block_s = $this->PrintPageBackgrounds(); // Save to print later inside clipping path - $this->pageBackgrounds = array(); - - //================================================================ - - if ($rotate) { - $prerotw = $bbox_bl + $bbox_pl + $inner_w + $bbox_pr + $bbox_br; - $preroth = $bbox_bt + $bbox_pt + $inner_h + $bbox_pb + $bbox_bb; - $rot_start = " q\n"; - if ($rotate == 90) { - if ($rot_rpos !== false) { $adjw = $prerotw; } // width before rotation - else { $adjw = $preroth; } // height before rotation - if ($rot_bpos !== false) { $adjh = -$prerotw + $preroth; } - else { $adjh = 0; } - } - else { - if ($rot_rpos !== false) { $adjw = $prerotw - $preroth; } - else { $adjw = 0; } - if ($rot_bpos !== false) { $adjh = $preroth; } // height before rotation - else { $adjh = $prerotw; } // width before rotation - } - $rot_start .= $this->transformTranslate($adjw, $adjh, true)."\n"; - $rot_start .= $this->transformRotate($rotate, $bbox_x, $bbox_y, true)."\n"; - $rot_end = " Q\n"; - } - else { - $rot_start = ''; - $rot_end = ''; - } - - //================================================================ - if (!empty($bounding)) { - // WHEN HEIGHT // BOTTOM EDGE IS KNOWN and $this->y is set to the bottom - // Re-instate saved $this->blk[1] - $this->blk[1] = $saved_block1; - - // These are only needed when painting border/background - $this->blk[1]['width'] = $bbox_w = $cont_w - $bbox_left - $bbox_ml - $bbox_mr - $bbox_right; - $this->blk[1]['x0'] = $bbox_x; - $this->blk[1]['y0'] = $bbox_y; - $this->blk[1]['startpage'] = $this->page; - $this->blk[1]['y1'] = $bbox_y + $bbox_bt + $bbox_pt + $inner_h + $bbox_pb + $bbox_bb ; - $this->_out($rot_start); // mPDF 5.0 - $this->PaintDivBB('',0,1); // Prints borders and sets backgrounds in $this->pageBackgrounds - $this->_out($rot_end); - } - - $s = $this->PrintPageBackgrounds(); - $s = $rot_start.$s.$rot_end; - $this->pages[$this->page] = preg_replace('/___BEFORE_BORDERS___/', "\n".$s."\n", $this->pages[$this->page]); - $this->pageBackgrounds = array(); - - $this->_out($rot_start); - - // Clipping Output - if ($overflow=='hidden') { - //Bounding rectangle to clip - $clip_y1 = $this->y; - if (!empty($bounding) && ($this->y + $bbox_pb + $bbox_bb) > ($bbox_y + $bbox_bt + $bbox_pt + $inner_h + $bbox_pb + $bbox_bb )) { - $clip_y1 = ($bbox_y + $bbox_bt + $bbox_pt + $inner_h + $bbox_pb + $bbox_bb ) - ($bbox_pb + $bbox_bb); - } - //$op = 'W* n'; // Clipping - $op = 'W n'; // Clipping alternative mode - $this->_out("q"); - $ch = $clip_y1 - $y; - $this->_out(sprintf('%.3F %.3F %.3F %.3F re %s',$x*_MPDFK,($this->h-$y)*_MPDFK,$w*_MPDFK,-$ch*_MPDFK,$op)); - if (!empty($block_s)) { - $tmp = "q\n".sprintf('%.3F %.3F %.3F %.3F re %s',$x*_MPDFK,($this->h-$y)*_MPDFK,$w*_MPDFK,-$ch*_MPDFK,$op); - $tmp .= "\n".$block_s."\nQ"; - $block_s = $tmp ; - } - } - - - if (!empty($block_s)) { - if ($shrink_f != 1) { // i.e. autofit has resized the box - $tmp = "q\n".$this->transformScale(($shrink_f*100),($shrink_f*100), $x, $y, true); - $tmp .= "\n".$block_s."\nQ"; - $block_s = $tmp ; - } - $this->_out($block_s); - } - - - - if ($shrink_f != 1) { // i.e. autofit has resized the box - $this->StartTransform(); - $this->transformScale(($shrink_f*100),($shrink_f*100), $x, $y); - } - - $this->_out($this->headerbuffer); - - if ($shrink_f != 1) { // i.e. autofit has resized the box - $this->StopTransform(); - } - - if ($overflow=='hidden') { - //End clipping - $this->_out("Q"); - } - - $this->_out($rot_end); - - - // Page Links - foreach($this->HTMLheaderPageLinks AS $lk) { - if ($rotate) { - $tmp = $lk[2]; // Switch h - w - $lk[2] = $lk[3]; - $lk[3] = $tmp; - - $lx1 = (($lk[0]/_MPDFK)); - $ly1 = (($this->h-($lk[1]/_MPDFK))); - if ($rotate == 90) { - $adjx = -($lx1-$bbox_x) + ($preroth - ($ly1-$bbox_y)); - $adjy = -($ly1-$bbox_y) + ($lx1-$bbox_x); - $lk[2] = -$lk[2]; - } - else if ($rotate == -90) { - $adjx = -($lx1-$bbox_x) + ($ly1-$bbox_y); - $adjy = -($ly1-$bbox_y) - ($lx1-$bbox_x) + $prerotw; - $lk[3] = -$lk[3]; - } - if ($rot_rpos !== false) { $adjx += $prerotw - $preroth; } - if ($rot_bpos !== false) { $adjy += $preroth - $prerotw; } - $lx1 += $adjx; - $ly1 += $adjy; - - $lk[0] = $lx1*_MPDFK; - $lk[1] = ($this->h-$ly1)*_MPDFK; - } - if ($shrink_f != 1) { // i.e. autofit has resized the box - $lx1 = (($lk[0]/_MPDFK)-$x); - $lx2 = $x + ($lx1 * $shrink_f); - $lk[0] = $lx2*_MPDFK; - $ly1 = (($this->h-($lk[1]/_MPDFK))-$y); - $ly2 = $y + ($ly1 * $shrink_f); - $lk[1] = ($this->h-$ly2)*_MPDFK; - $lk[2] *= $shrink_f; // width - $lk[3] *= $shrink_f; // height - } - $this->PageLinks[$this->page][]=$lk; - } - - foreach($this->HTMLheaderPageForms AS $n=>$f) { - if ($shrink_f != 1) { // i.e. autofit has resized the box - $f['x'] = $x + (($f['x'] -$x) * $shrink_f); - $f['y'] = $y + (($f['y'] -$y) * $shrink_f); - $f['w'] *= $shrink_f; - $f['h'] *= $shrink_f; - $f['style']['fontsize'] *= $shrink_f; - } - $this->form->forms[$f['n']] = $f; - } - // Page Annotations - foreach($this->HTMLheaderPageAnnots AS $lk) { - if ($rotate) { - if ($rotate == 90) { - $adjx = -($lk['x']-$bbox_x) + ($preroth - ($lk['y']-$bbox_y)); - $adjy = -($lk['y']-$bbox_y) + ($lk['x']-$bbox_x); - } - else if ($rotate == -90) { - $adjx = -($lk['x']-$bbox_x) + ($lk['y']-$bbox_y); - $adjy = -($lk['y']-$bbox_y) - ($lk['x']-$bbox_x) + $prerotw; - } - if ($rot_rpos !== false) { $adjx += $prerotw - $preroth; } - if ($rot_bpos !== false) { $adjy += $preroth - $prerotw; } - $lk['x'] += $adjx; - $lk['y'] += $adjy; - } - if ($shrink_f != 1) { // i.e. autofit has resized the box - $lk['x'] = $x + (($lk['x']-$x) * $shrink_f); - $lk['y'] = $y + (($lk['y']-$y) * $shrink_f); - } - $this->PageAnnots[$this->page][]=$lk; - } - - // Restore - $this->headerbuffer = ''; - $this->HTMLheaderPageLinks = array(); - $this->HTMLheaderPageAnnots = array(); - $this->HTMLheaderPageForms = array(); - $this->pageBackgrounds = $save_bgs; - $this->writingHTMLheader = false; - - $this->writingHTMLfooter = false; - $this->fullImageHeight = false; - $this->ResetMargins(); - $this->pgwidth = $this->w - $this->lMargin - $this->rMargin; - $this->SetXY($save_x,$save_y) ; - $this->title2annots = $save_annots; // *ANNOTATIONS* - $this->InFooter = false; // turns back on autopagebreaks - $this->pageoutput[$this->page]=array(); - $this->pageoutput[$this->page]['Font']=''; -/*-- COLUMNS --*/ - if ($save_cols) { - $this->SetColumns($save_nbcol,$this->colvAlign,$this->ColGap); - } -/*-- END COLUMNS --*/ -} -/*-- END CSS-POSITION --*/ - - - -function initialiseBlock(&$blk) { - $blk['margin_top'] = 0; - $blk['margin_left'] = 0; - $blk['margin_bottom'] = 0; - $blk['margin_right'] = 0; - $blk['padding_top'] = 0; - $blk['padding_left'] = 0; - $blk['padding_bottom'] = 0; - $blk['padding_right'] = 0; - $blk['border_top']['w'] = 0; - $blk['border_left']['w'] = 0; - $blk['border_bottom']['w'] = 0; - $blk['border_right']['w'] = 0; - $blk['hide'] = false; - $blk['outer_left_margin'] = 0; - $blk['outer_right_margin'] = 0; - $blk['cascadeCSS'] = array(); - $blk['block-align'] = false; - $blk['bgcolor'] = false; - $blk['page_break_after_avoid'] = false; - $blk['keep_block_together'] = false; - $blk['float'] = false; - $blk['line_height'] = ''; - $blk['margin_collapse'] = false; -} - - -function border_details($bd) { - $prop = preg_split('/\s+/',trim($bd)); - - if (isset($this->blk[$this->blklvl]['inner_width'])) { $refw = $this->blk[$this->blklvl]['inner_width']; } - else if (isset($this->blk[$this->blklvl-1]['inner_width'])) { $refw = $this->blk[$this->blklvl-1]['inner_width']; } - else { $refw = $this->w; } - if ( count($prop) == 1 ) { - $bsize = $this->ConvertSize($prop[0],$refw,$this->FontSize,false); - if ($bsize > 0) { - return array('s' => 1, 'w' => $bsize, 'c' => $this->ConvertColor(0), 'style'=>'solid'); - } - else { return array('w' => 0, 's' => 0); } - } - - else if (count($prop) == 2 ) { - // 1px solid - if (in_array($prop[1],$this->borderstyles) || $prop[1] == 'none' || $prop[1] == 'hidden' ) { $prop[2] = ''; } - // solid #000000 - else if (in_array($prop[0],$this->borderstyles) || $prop[0] == 'none' || $prop[0] == 'hidden' ) { $prop[0] = ''; $prop[1] = $prop[0]; $prop[2] = $prop[1]; } - // 1px #000000 - else { $prop[1] = ''; $prop[2] = $prop[1]; } - } - else if ( count($prop) == 3 ) { - // Change #000000 1px solid to 1px solid #000000 (proper) - if (substr($prop[0],0,1) == '#') { $tmp = $prop[0]; $prop[0] = $prop[1]; $prop[1] = $prop[2]; $prop[2] = $tmp; } - // Change solid #000000 1px to 1px solid #000000 (proper) - else if (substr($prop[0],1,1) == '#') { $tmp = $prop[1]; $prop[0] = $prop[2]; $prop[1] = $prop[0]; $prop[2] = $tmp; } - // Change solid 1px #000000 to 1px solid #000000 (proper) - else if (in_array($prop[0],$this->borderstyles) || $prop[0] == 'none' || $prop[0] == 'hidden' ) { - $tmp = $prop[0]; $prop[0] = $prop[1]; $prop[1] = $tmp; - } - } - else { return array(); } - // Size - $bsize = $this->ConvertSize($prop[0],$refw,$this->FontSize,false); - //color - $coul = $this->ConvertColor($prop[2]); // returns array - // Style - $prop[1] = strtolower($prop[1]); - if (in_array($prop[1],$this->borderstyles) && $bsize > 0) { $on = 1; } - else if ($prop[1] == 'hidden') { $on = 1; $bsize = 0; $coul = ''; } - else if ($prop[1] == 'none') { $on = 0; $bsize = 0; $coul = ''; } - else { $on = 0; $bsize = 0; $coul = ''; $prop[1] = ''; } - return array('s' => $on, 'w' => $bsize, 'c' => $coul, 'style'=> $prop[1] ); -} - - - -/*-- END HTML-CSS --*/ - - -// Return either a number (factor) - based on current set fontsize (if % or em) - or exact lineheight (with 'mm' after it) -function fixLineheight($v) { - $lh = false; - if (preg_match('/^[0-9\.,]*$/',$v) && $v >= 0) { return ($v + 0); } - else if (strtoupper($v) == 'NORMAL') { - return $this->normalLineheight; - } - else { - $tlh = $this->ConvertSize($v,$this->FontSize,$this->FontSize,true); - if ($tlh) { return ($tlh.'mm'); } - } - return $this->normalLineheight; -} - - -/*-- BORDER-RADIUS --*/ -function _borderPadding($a, $b, &$px, &$py) { - // $px and py are padding long axis (x) and short axis (y) - $added = 0; // extra padding - - $x = $a-$px; - $y = $b-$py; - // Check if Falls within ellipse of border radius - if ( ( (($x+$added)*($x+$added))/($a*$a) + (($y+$added)*($y+$added))/($b*$b) ) <=1 ) { return false; } - - $t = atan2($y,$x); - - $newx = $b / sqrt((($b*$b)/($a*$a)) + ( tan($t) * tan($t) ) ); - $newy = $a / sqrt((($a*$a)/($b*$b)) + ( (1/tan($t)) * (1/tan($t)) ) ); - $px = max($px, $a - $newx + $added); - $py = max($py, $b - $newy + $added); -} -/*-- END BORDER-RADIUS --*/ - - - -/*-- HTML-CSS --*/ - - -/*-- CSS-PAGE --*/ -function SetPagedMediaCSS($name='', $first, $oddEven) { - if ($oddEven == 'E') { - if ($this->directionality=='rtl') { $side = 'R'; } - else { $side = 'L'; } - } - else { - if ($this->directionality=='rtl') { $side = 'L'; } - else { $side = 'R'; } - } - $name = strtoupper($name); - $p = array(); - $p['SIZE'] = 'AUTO'; - - // Uses mPDF original margins as default - $p['MARGIN-RIGHT'] = strval($this->orig_rMargin).'mm'; - $p['MARGIN-LEFT'] = strval($this->orig_lMargin).'mm'; - $p['MARGIN-TOP'] = strval($this->orig_tMargin).'mm'; - $p['MARGIN-BOTTOM'] = strval($this->orig_bMargin).'mm'; - $p['MARGIN-HEADER'] = strval($this->orig_hMargin).'mm'; - $p['MARGIN-FOOTER'] = strval($this->orig_fMargin).'mm'; - - // Basic page + selector - if (isset($this->cssmgr->CSS['@PAGE'])) { $zp = $this->cssmgr->CSS['@PAGE']; } - else { $zp = array(); } - if (is_array($zp) && !empty($zp)) { $p = array_merge($p,$zp); } - - if (isset($p['EVEN-HEADER-NAME']) && $oddEven=='E') { - $p['HEADER'] = $p['EVEN-HEADER-NAME']; unset($p['EVEN-HEADER-NAME']); - } - if (isset($p['ODD-HEADER-NAME']) && $oddEven!='E') { - $p['HEADER'] = $p['ODD-HEADER-NAME']; unset($p['ODD-HEADER-NAME']); - } - if (isset($p['EVEN-FOOTER-NAME']) && $oddEven=='E') { - $p['FOOTER'] = $p['EVEN-FOOTER-NAME']; unset($p['EVEN-FOOTER-NAME']); - } - if (isset($p['ODD-FOOTER-NAME']) && $oddEven!='E') { - $p['FOOTER'] = $p['ODD-FOOTER-NAME']; unset($p['ODD-FOOTER-NAME']); - } - - // If right/Odd page - if (isset($this->cssmgr->CSS['@PAGE>>PSEUDO>>RIGHT']) && $side=='R') { - $zp = $this->cssmgr->CSS['@PAGE>>PSEUDO>>RIGHT']; - } - else { $zp = array(); } - if (isset($zp['SIZE'])) { unset($zp['SIZE']); } - if (isset($zp['SHEET-SIZE'])) { unset($zp['SHEET-SIZE']); } - // Disallow margin-left or -right on :LEFT or :RIGHT - if (isset($zp['MARGIN-LEFT'])) { unset($zp['MARGIN-LEFT']); } - if (isset($zp['MARGIN-RIGHT'])) { unset($zp['MARGIN-RIGHT']); } - if (is_array($zp) && !empty($zp)) { $p = array_merge($p,$zp); } - - // If left/Even page - if (isset($this->cssmgr->CSS['@PAGE>>PSEUDO>>LEFT']) && $side=='L') { - $zp = $this->cssmgr->CSS['@PAGE>>PSEUDO>>LEFT']; - } - else { $zp = array(); } - if (isset($zp['SIZE'])) { unset($zp['SIZE']); } - if (isset($zp['SHEET-SIZE'])) { unset($zp['SHEET-SIZE']); } - // Disallow margin-left or -right on :LEFT or :RIGHT - if (isset($zp['MARGIN-LEFT'])) { unset($zp['MARGIN-LEFT']); } - if (isset($zp['MARGIN-RIGHT'])) { unset($zp['MARGIN-RIGHT']); } - if (is_array($zp) && !empty($zp)) { $p = array_merge($p,$zp); } - - // If first page - if (isset($this->cssmgr->CSS['@PAGE>>PSEUDO>>FIRST']) && $first) { $zp = $this->cssmgr->CSS['@PAGE>>PSEUDO>>FIRST']; } - else { $zp = array(); } - if (isset($zp['SIZE'])) { unset($zp['SIZE']); } - if (isset($zp['SHEET-SIZE'])) { unset($zp['SHEET-SIZE']); } - // Disallow margin-left or -right on :FIRST // mPDF 5.7.3 - if (isset($zp['MARGIN-LEFT'])) { unset($zp['MARGIN-LEFT']); } - if (isset($zp['MARGIN-RIGHT'])) { unset($zp['MARGIN-RIGHT']); } - if (is_array($zp) && !empty($zp)) { $p = array_merge($p,$zp); } - - // If named page - if ($name) { - if (isset($this->cssmgr->CSS['@PAGE>>NAMED>>'.$name])) { $zp = $this->cssmgr->CSS['@PAGE>>NAMED>>'.$name]; } - else { $zp = array(); } - if (is_array($zp) && !empty($zp)) { $p = array_merge($p,$zp); } - - if (isset($p['EVEN-HEADER-NAME']) && $oddEven=='E') { - $p['HEADER'] = $p['EVEN-HEADER-NAME']; unset($p['EVEN-HEADER-NAME']); - } - if (isset($p['ODD-HEADER-NAME']) && $oddEven!='E') { - $p['HEADER'] = $p['ODD-HEADER-NAME']; unset($p['ODD-HEADER-NAME']); - } - if (isset($p['EVEN-FOOTER-NAME']) && $oddEven=='E') { - $p['FOOTER'] = $p['EVEN-FOOTER-NAME']; unset($p['EVEN-FOOTER-NAME']); - } - if (isset($p['ODD-FOOTER-NAME']) && $oddEven!='E') { - $p['FOOTER'] = $p['ODD-FOOTER-NAME']; unset($p['ODD-FOOTER-NAME']); - } - - // If named right/Odd page - if (isset($this->cssmgr->CSS['@PAGE>>NAMED>>'.$name.'>>PSEUDO>>RIGHT']) && $side=='R') { $zp = $this->cssmgr->CSS['@PAGE>>NAMED>>'.$name.'>>PSEUDO>>RIGHT']; } - else { $zp = array(); } - if (isset($zp['SIZE'])) { unset($zp['SIZE']); } - if (isset($zp['SHEET-SIZE'])) { unset($zp['SHEET-SIZE']); } - // Disallow margin-left or -right on :LEFT or :RIGHT - if (isset($zp['MARGIN-LEFT'])) { unset($zp['MARGIN-LEFT']); } - if (isset($zp['MARGIN-RIGHT'])) { unset($zp['MARGIN-RIGHT']); } - if (is_array($zp) && !empty($zp)) { $p = array_merge($p,$zp); } - - // If named left/Even page - if (isset($this->cssmgr->CSS['@PAGE>>NAMED>>'.$name.'>>PSEUDO>>LEFT']) && $side=='L') { $zp = $this->cssmgr->CSS['@PAGE>>NAMED>>'.$name.'>>PSEUDO>>LEFT']; } - else { $zp = array(); } - if (isset($zp['SIZE'])) { unset($zp['SIZE']); } - if (isset($zp['SHEET-SIZE'])) { unset($zp['SHEET-SIZE']); } - // Disallow margin-left or -right on :LEFT or :RIGHT - if (isset($zp['MARGIN-LEFT'])) { unset($zp['MARGIN-LEFT']); } - if (isset($zp['MARGIN-RIGHT'])) { unset($zp['MARGIN-RIGHT']); } - if (is_array($zp) && !empty($zp)) { $p = array_merge($p,$zp); } - - // If named first page - if (isset($this->cssmgr->CSS['@PAGE>>NAMED>>'.$name.'>>PSEUDO>>FIRST']) && $first) { $zp = $this->cssmgr->CSS['@PAGE>>NAMED>>'.$name.'>>PSEUDO>>FIRST']; } - else { $zp = array(); } - if (isset($zp['SIZE'])) { unset($zp['SIZE']); } - if (isset($zp['SHEET-SIZE'])) { unset($zp['SHEET-SIZE']); } - // Disallow margin-left or -right on :FIRST // mPDF 5.7.3 - if (isset($zp['MARGIN-LEFT'])) { unset($zp['MARGIN-LEFT']); } - if (isset($zp['MARGIN-RIGHT'])) { unset($zp['MARGIN-RIGHT']); } - if (is_array($zp) && !empty($zp)) { $p = array_merge($p,$zp); } - } - - $orientation = $mgl = $mgr = $mgt = $mgb = $mgh = $mgf = ''; - $header = $footer = ''; - $resetpagenum = $pagenumstyle = $suppress = ''; - $marks = ''; - $bg = array(); - - $newformat = ''; - - - if (isset($p['SHEET-SIZE']) && is_array($p['SHEET-SIZE'])) { - $newformat = $p['SHEET-SIZE']; - if ($newformat[0] > $newformat[1]) { // landscape - $newformat = array_reverse($newformat); - $p['ORIENTATION'] = 'L'; - } - else { $p['ORIENTATION'] = 'P'; } - $this->_setPageSize($newformat, $p['ORIENTATION']); - } - - if (isset($p['SIZE']) && is_array($p['SIZE']) && !$newformat) { - if ($p['SIZE']['W'] > $p['SIZE']['H']) { $p['ORIENTATION'] = 'L'; } - else { $p['ORIENTATION'] = 'P'; } - } - - if (is_array($p['SIZE'])) { - if ($p['SIZE']['W'] > $this->fw) { $p['SIZE']['W'] = $this->fw; } // mPD 4.2 use fw not fPt - if ($p['SIZE']['H'] > $this->fh) { $p['SIZE']['H'] = $this->fh; } - if (($p['ORIENTATION']==$this->DefOrientation && !$newformat) || ($newformat && $p['ORIENTATION']=='P')) { - $outer_width_LR = ($this->fw - $p['SIZE']['W'])/2; - $outer_width_TB = ($this->fh - $p['SIZE']['H'])/2; - } - else { - $outer_width_LR = ($this->fh - $p['SIZE']['W'])/2; - $outer_width_TB = ($this->fw - $p['SIZE']['H'])/2; - } - $pgw = $p['SIZE']['W']; - $pgh = $p['SIZE']['H']; - } - else { // AUTO LANDSCAPE PORTRAIT - $outer_width_LR = 0; - $outer_width_TB = 0; - if (!$newformat) { - if (strtoupper($p['SIZE']) == 'AUTO') { $p['ORIENTATION']=$this->DefOrientation; } - else if (strtoupper($p['SIZE']) == 'LANDSCAPE') { $p['ORIENTATION']='L'; } - else { $p['ORIENTATION']='P'; } - } - if (($p['ORIENTATION']==$this->DefOrientation && !$newformat) || ($newformat && $p['ORIENTATION']=='P')) { - $pgw = $this->fw; - $pgh = $this->fh; - } - else { - $pgw = $this->fh; - $pgh = $this->fw; - } - } - - if (isset($p['HEADER']) && $p['HEADER']) { $header = $p['HEADER']; } - if (isset($p['FOOTER']) && $p['FOOTER']) { $footer = $p['FOOTER']; } - if (isset($p['RESETPAGENUM']) && $p['RESETPAGENUM']) { $resetpagenum = $p['RESETPAGENUM']; } - if (isset($p['PAGENUMSTYLE']) && $p['PAGENUMSTYLE']) { $pagenumstyle = $p['PAGENUMSTYLE']; } - if (isset($p['SUPPRESS']) && $p['SUPPRESS']) { $suppress = $p['SUPPRESS']; } - - if (preg_match('/cross/i', $p['MARKS']) && preg_match('/crop/i', $p['MARKS'])) { $marks = 'CROPCROSS'; } - else if (strtoupper($p['MARKS']) == 'CROP') { $marks = 'CROP'; } - else if (strtoupper($p['MARKS']) == 'CROSS') { $marks = 'CROSS'; } - - - if (isset($p['BACKGROUND-COLOR']) && $p['BACKGROUND-COLOR']) { $bg['BACKGROUND-COLOR'] = $p['BACKGROUND-COLOR']; } -/*-- BACKGROUNDS --*/ - if (isset($p['BACKGROUND-GRADIENT']) && $p['BACKGROUND-GRADIENT']) { $bg['BACKGROUND-GRADIENT'] = $p['BACKGROUND-GRADIENT']; } - if (isset($p['BACKGROUND-IMAGE']) && $p['BACKGROUND-IMAGE']) { $bg['BACKGROUND-IMAGE'] = $p['BACKGROUND-IMAGE']; } - if (isset($p['BACKGROUND-REPEAT']) && $p['BACKGROUND-REPEAT']) { $bg['BACKGROUND-REPEAT'] = $p['BACKGROUND-REPEAT']; } - if (isset($p['BACKGROUND-POSITION']) && $p['BACKGROUND-POSITION']) { $bg['BACKGROUND-POSITION'] = $p['BACKGROUND-POSITION']; } - if (isset($p['BACKGROUND-IMAGE-RESIZE']) && $p['BACKGROUND-IMAGE-RESIZE']) { $bg['BACKGROUND-IMAGE-RESIZE'] = $p['BACKGROUND-IMAGE-RESIZE']; } - if (isset($p['BACKGROUND-IMAGE-OPACITY'])) { $bg['BACKGROUND-IMAGE-OPACITY'] = $p['BACKGROUND-IMAGE-OPACITY']; } -/*-- END BACKGROUNDS --*/ - - if (isset($p['MARGIN-LEFT'])) { $mgl = $this->ConvertSize($p['MARGIN-LEFT'],$pgw) + $outer_width_LR; } - if (isset($p['MARGIN-RIGHT'])) { $mgr = $this->ConvertSize($p['MARGIN-RIGHT'],$pgw) + $outer_width_LR; } - if (isset($p['MARGIN-BOTTOM'])) { $mgb = $this->ConvertSize($p['MARGIN-BOTTOM'],$pgh) + $outer_width_TB; } - if (isset($p['MARGIN-TOP'])) { $mgt = $this->ConvertSize($p['MARGIN-TOP'],$pgh) + $outer_width_TB; } - if (isset($p['MARGIN-HEADER'])) { $mgh = $this->ConvertSize($p['MARGIN-HEADER'],$pgh) + $outer_width_TB; } - if (isset($p['MARGIN-FOOTER'])) { $mgf = $this->ConvertSize($p['MARGIN-FOOTER'],$pgh) + $outer_width_TB; } - - if (isset($p['ORIENTATION']) && $p['ORIENTATION']) { $orientation = $p['ORIENTATION']; } - $this->page_box['outer_width_LR'] = $outer_width_LR; // Used in MARKS:crop etc. - $this->page_box['outer_width_TB'] = $outer_width_TB; - - return array($orientation,$mgl,$mgr,$mgt,$mgb,$mgh,$mgf,$header,$footer,$bg,$resetpagenum,$pagenumstyle,$suppress,$marks,$newformat); -} -/*-- END CSS-PAGE --*/ - - - -/*-- CSS-FLOAT --*/ -// Added mPDF 3.0 Float DIV - CLEAR -function ClearFloats($clear, $blklvl=0) { - list($l_exists, $r_exists, $l_max, $r_max, $l_width, $r_width) = $this->GetFloatDivInfo($blklvl,true); - $end = $currpos = ($this->page*1000 + $this->y); - if ($clear == 'BOTH' && ($l_exists || $r_exists)) { - $this->pageoutput[$this->page] = array(); - $end = max($l_max, $r_max, $currpos); - } - else if ($clear == 'RIGHT' && $r_exists) { - $this->pageoutput[$this->page] = array(); - $end = max($r_max, $currpos); - } - else if ($clear == 'LEFT' && $l_exists ) { - $this->pageoutput[$this->page] = array(); - $end = max($l_max, $currpos); - } - else { return; } - $old_page = $this->page; - $new_page = intval($end/1000); - if ($old_page != $new_page) { - $s = $this->PrintPageBackgrounds(); - // Writes after the marker so not overwritten later by page background etc. - $this->pages[$this->page] = preg_replace('/(___BACKGROUND___PATTERNS'.$this->uniqstr.')/', '\\1'."\n".$s."\n", $this->pages[$this->page]); - $this->pageBackgrounds = array(); - $this->page = $new_page; - } - $this->ResetMargins(); - $this->pageoutput[$this->page] = array(); - $this->y = (($end*1000) % 1000000)/1000; // mod changes operands to integers before processing -} - - -// Added mPDF 3.0 Float DIV -function GetFloatDivInfo($blklvl=0,$clear=false) { - // If blklvl specified, only returns floats at that level - for ClearFloats - $l_exists = false; - $r_exists = false; - $l_max = 0; - $r_max = 0; - $l_width = 0; - $r_width = 0; - if (count($this->floatDivs)) { - $currpos = ($this->page*1000 + $this->y); - foreach($this->floatDivs AS $f) { - if (($clear && $f['blockContext'] == $this->blk[$blklvl]['blockContext']) || (!$clear && $currpos >= $f['startpos'] && $currpos < ($f['endpos']-0.001) && $f['blklvl'] > $blklvl && $f['blockContext'] == $this->blk[$blklvl]['blockContext'])) { - if ($f['side']=='L') { - $l_exists= true; - $l_max = max($l_max, $f['endpos']); - $l_width = max($l_width , $f['w']); - } - if ($f['side']=='R') { - $r_exists= true; - $r_max = max($r_max, $f['endpos']); - $r_width = max($r_width , $f['w']); - } - } - } - } - return array($l_exists, $r_exists, $l_max, $r_max, $l_width, $r_width); -} -/*-- END CSS-FLOAT --*/ - - - - -function OpenTag($tag,$attr) -{ - - // What this gets: < $tag $attr['WIDTH']="90px" > does not get content here - // Correct tags where HTML specifies optional end tags, - // and/or does not allow nesting e.g. P inside P, or - if ($this->allow_html_optional_endtags) { - if (($tag == 'P' || $tag == 'DIV' || $tag == 'H1' || $tag == 'H2' || $tag == 'H3' || $tag == 'H4' || $tag == 'H5' || $tag == 'H6' || $tag == 'UL' || $tag == 'OL' || $tag == 'TABLE' || $tag=='PRE' || $tag=='FORM' || $tag=='ADDRESS' || $tag=='BLOCKQUOTE' || $tag=='CENTER' || $tag=='DL' || $tag == 'HR' || $tag=='ARTICLE' || $tag=='ASIDE' || $tag=='FIELDSET' || $tag=='HGROUP' || $tag=='MAIN' || $tag=='NAV' || $tag=='SECTION' ) && $this->lastoptionaltag == 'P') { $this->CloseTag($this->lastoptionaltag ); } // mPDF 5.7.3 - if ($tag == 'DD' && $this->lastoptionaltag == 'DD') { $this->CloseTag($this->lastoptionaltag ); } - if ($tag == 'DD' && $this->lastoptionaltag == 'DT') { $this->CloseTag($this->lastoptionaltag ); } - if ($tag == 'DT' && $this->lastoptionaltag == 'DD') { $this->CloseTag($this->lastoptionaltag ); } - if ($tag == 'DT' && $this->lastoptionaltag == 'DT') { $this->CloseTag($this->lastoptionaltag ); } - if ($tag == 'LI' && $this->lastoptionaltag == 'LI') { $this->CloseTag($this->lastoptionaltag ); } - if (($tag == 'TD' || $tag == 'TH') && $this->lastoptionaltag == 'TD') { $this->CloseTag($this->lastoptionaltag ); } // *TABLES* - if (($tag == 'TD' || $tag == 'TH') && $this->lastoptionaltag == 'TH') { $this->CloseTag($this->lastoptionaltag ); } // *TABLES* - if ($tag == 'TR' && $this->lastoptionaltag == 'TR') { $this->CloseTag($this->lastoptionaltag ); } // *TABLES* - if ($tag == 'TR' && $this->lastoptionaltag == 'TD') { $this->CloseTag($this->lastoptionaltag ); $this->CloseTag('TR'); $this->CloseTag('THEAD'); } // *TABLES* - if ($tag == 'TR' && $this->lastoptionaltag == 'TH') { $this->CloseTag($this->lastoptionaltag ); $this->CloseTag('TR'); $this->CloseTag('THEAD'); } // *TABLES* - if ($tag == 'OPTION' && $this->lastoptionaltag == 'OPTION') { $this->CloseTag($this->lastoptionaltag ); } - } - - $align = array('left'=>'L','center'=>'C','right'=>'R','top'=>'T','text-top'=>'TT','middle'=>'M','baseline'=>'BS','bottom'=>'B','text-bottom'=>'TB','justify'=>'J'); - - $this->ignorefollowingspaces=false; - - //Opening tag - switch($tag){ - - case 'DOTTAB': - $objattr = array(); - $objattr['type'] = 'dottab'; - $dots=str_repeat('.', 3)." "; // minimum number of dots - $objattr['width'] = $this->GetStringWidth($dots); - $objattr['margin_top'] = 0; - $objattr['margin_bottom'] = 0; - $objattr['margin_left'] = 0; - $objattr['margin_right'] = 0; - $objattr['height'] = 0; - $objattr['colorarray'] = $this->colorarray; - $objattr['border_top']['w'] = 0; - $objattr['border_bottom']['w'] = 0; - $objattr['border_left']['w'] = 0; - $objattr['border_right']['w'] = 0; - - // mPDF 5.6.19 - $properties = $this->cssmgr->MergeCSS('INLINE',$tag,$attr); // mPDF 5.6.33 - if (isset($properties['OUTDENT'])) { // mPDF 5.6.33 - $objattr['outdent'] = $this->ConvertSize($properties['OUTDENT'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); - } - else if (isset($attr['OUTDENT'])) { - $objattr['outdent'] = $this->ConvertSize($attr['OUTDENT'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); - } - else { $objattr['outdent'] = 0; } - - $objattr['fontfamily'] = $this->FontFamily; - $objattr['fontsize'] = $this->FontSizePt; - - $e = "\xbb\xa4\xactype=dottab,objattr=".serialize($objattr)."\xbb\xa4\xac"; -/*-- TABLES --*/ - // Output it to buffers - if ($this->tableLevel) { - if (!isset($this->cell[$this->row][$this->col]['maxs'])) { - $this->cell[$this->row][$this->col]['maxs'] = $this->cell[$this->row][$this->col]['s']; - } - elseif($this->cell[$this->row][$this->col]['maxs'] < $this->cell[$this->row][$this->col]['s']) { - $this->cell[$this->row][$this->col]['maxs'] = $this->cell[$this->row][$this->col]['s']; - } - $this->cell[$this->row][$this->col]['s'] = 0 ;// reset - $this->_saveCellTextBuffer($e); - } - else { -/*-- END TABLES --*/ - $this->_saveTextBuffer($e); - } // *TABLES* - break; - - case 'PAGEHEADER': - case 'PAGEFOOTER': - $this->ignorefollowingspaces = true; - if ($attr['NAME']) { $pname = $attr['NAME']; } - else { $pname = '_default'; } - - if ($tag=='PAGEHEADER') { $p = &$this->pageheaders[$pname]; } - else { $p = &$this->pagefooters[$pname]; } - - $p['L']=array(); - $p['C']=array(); - $p['R']=array(); - $p['L']['font-style'] = ''; - $p['C']['font-style'] = ''; - $p['R']['font-style'] = ''; - - if (isset($attr['CONTENT-LEFT'])) { - $p['L']['content'] = $attr['CONTENT-LEFT']; - } - if (isset($attr['CONTENT-CENTER'])) { - $p['C']['content'] = $attr['CONTENT-CENTER']; - } - if (isset($attr['CONTENT-RIGHT'])) { - $p['R']['content'] = $attr['CONTENT-RIGHT']; - } - - if (isset($attr['HEADER-STYLE']) || isset($attr['FOOTER-STYLE'])) { // font-family,size,weight,style,color - if ($tag=='PAGEHEADER') { $properties = $this->cssmgr->readInlineCSS($attr['HEADER-STYLE']); } - else { $properties = $this->cssmgr->readInlineCSS($attr['FOOTER-STYLE']); } - if (isset($properties['FONT-FAMILY'])) { - $p['L']['font-family'] = $properties['FONT-FAMILY']; - $p['C']['font-family'] = $properties['FONT-FAMILY']; - $p['R']['font-family'] = $properties['FONT-FAMILY']; - } - if (isset($properties['FONT-SIZE'])) { - $p['L']['font-size'] = $this->ConvertSize($properties['FONT-SIZE']) * _MPDFK; - $p['C']['font-size'] = $this->ConvertSize($properties['FONT-SIZE']) * _MPDFK; - $p['R']['font-size'] = $this->ConvertSize($properties['FONT-SIZE']) * _MPDFK; - } - if (isset($properties['FONT-WEIGHT']) && $properties['FONT-WEIGHT']=='bold') { - $p['L']['font-style'] = 'B'; - $p['C']['font-style'] = 'B'; - $p['R']['font-style'] = 'B'; - } - if (isset($properties['FONT-STYLE']) && $properties['FONT-STYLE']=='italic') { - $p['L']['font-style'] .= 'I'; - $p['C']['font-style'] .= 'I'; - $p['R']['font-style'] .= 'I'; - } - if (isset($properties['COLOR'])) { - $p['L']['color'] = $properties['COLOR']; - $p['C']['color'] = $properties['COLOR']; - $p['R']['color'] = $properties['COLOR']; - } - } - if (isset($attr['HEADER-STYLE-LEFT']) || isset($attr['FOOTER-STYLE-LEFT'])) { - if ($tag=='PAGEHEADER') { $properties = $this->cssmgr->readInlineCSS($attr['HEADER-STYLE-LEFT']); } - else { $properties = $this->cssmgr->readInlineCSS($attr['FOOTER-STYLE-LEFT']); } - if (isset($properties['FONT-FAMILY'])) { $p['L']['font-family'] = $properties['FONT-FAMILY']; } - if (isset($properties['FONT-SIZE'])) { $p['L']['font-size'] = $this->ConvertSize($properties['FONT-SIZE']) * _MPDFK; } - if (isset($properties['FONT-WEIGHT']) && $properties['FONT-WEIGHT']=='bold') { $p['L']['font-style'] ='B'; } - if (isset($properties['FONT-STYLE']) && $properties['FONT-STYLE']=='italic') { $p['L']['font-style'] .='I'; } - if (isset($properties['COLOR'])) { $p['L']['color'] = $properties['COLOR']; } - } - if (isset($attr['HEADER-STYLE-CENTER']) || isset($attr['FOOTER-STYLE-CENTER'])) { - if ($tag=='PAGEHEADER') { $properties = $this->cssmgr->readInlineCSS($attr['HEADER-STYLE-CENTER']); } - else { $properties = $this->cssmgr->readInlineCSS($attr['FOOTER-STYLE-CENTER']); } - if (isset($properties['FONT-FAMILY'])) { $p['C']['font-family'] = $properties['FONT-FAMILY']; } - if (isset($properties['FONT-SIZE'])) { $p['C']['font-size'] = $this->ConvertSize($properties['FONT-SIZE']) * _MPDFK; } - if (isset($properties['FONT-WEIGHT']) && $properties['FONT-WEIGHT']=='bold') { $p['C']['font-style'] = 'B'; } - if (isset($properties['FONT-STYLE']) && $properties['FONT-STYLE']=='italic') { $p['C']['font-style'] .= 'I'; } - if (isset($properties['COLOR'])) { $p['C']['color'] = $properties['COLOR']; } - } - if (isset($attr['HEADER-STYLE-RIGHT']) || isset($attr['FOOTER-STYLE-RIGHT'])) { - if ($tag=='PAGEHEADER') { $properties = $this->cssmgr->readInlineCSS($attr['HEADER-STYLE-RIGHT']); } - else { $properties = $this->cssmgr->readInlineCSS($attr['FOOTER-STYLE-RIGHT']); } - if (isset($properties['FONT-FAMILY'])) { $p['R']['font-family'] = $properties['FONT-FAMILY']; } - if (isset($properties['FONT-SIZE'])) { $p['R']['font-size'] = $this->ConvertSize($properties['FONT-SIZE']) * _MPDFK; } - if (isset($properties['FONT-WEIGHT']) && $properties['FONT-WEIGHT']=='bold') { $p['R']['font-style'] = 'B'; } - if (isset($properties['FONT-STYLE']) && $properties['FONT-STYLE']=='italic') { $p['R']['font-style'] .= 'I'; } - if (isset($properties['COLOR'])) { $p['R']['color'] = $properties['COLOR']; } - } - if (isset($attr['LINE']) && $attr['LINE']) { // 0|1|on|off - if ($attr['LINE']=='1' || strtoupper($attr['LINE'])=='ON') { $lineset=1; } - else { $lineset=0; } - $p['line'] = $lineset; - } - break; - - -/*-- HTMLHEADERS-FOOTERS --*/ - case 'SETHTMLPAGEHEADER': - case 'SETHTMLPAGEFOOTER': - $this->ignorefollowingspaces = true; - if (isset($attr['NAME']) && $attr['NAME']) { $pname = $attr['NAME']; } - else { $pname = '_default'; } - if (isset($attr['PAGE']) && $attr['PAGE']) { // O|odd|even|E|ALL|[blank] - if (strtoupper($attr['PAGE'])=='O' || strtoupper($attr['PAGE'])=='ODD') { $side='odd'; } - else if (strtoupper($attr['PAGE'])=='E' || strtoupper($attr['PAGE'])=='EVEN') { $side='even'; } - else if (strtoupper($attr['PAGE'])=='ALL') { $side='both'; } - else { $side='odd'; } - } - else { $side='odd'; } - if (isset($attr['VALUE']) && $attr['VALUE']) { // -1|1|on|off - if ($attr['VALUE']=='1' || strtoupper($attr['VALUE'])=='ON') { $set=1; } - else if ($attr['VALUE']=='-1' || strtoupper($attr['VALUE'])=='OFF') { $set=0; } - else { $set=1; } - } - else { $set=1; } - if (isset($attr['SHOW-THIS-PAGE']) && $attr['SHOW-THIS-PAGE'] && $tag=='SETHTMLPAGEHEADER') { $write = 1; } - else { $write = 0; } - if ($side=='odd' || $side=='both') { - if ($set && $tag=='SETHTMLPAGEHEADER') { $this->SetHTMLHeader($this->pageHTMLheaders[$pname],'O',$write); } - else if ($set && $tag=='SETHTMLPAGEFOOTER') { $this->SetHTMLFooter($this->pageHTMLfooters[$pname],'O'); } - else if ($tag=='SETHTMLPAGEHEADER') { $this->SetHTMLHeader('','O'); } - else { $this->SetHTMLFooter('','O'); } - } - if ($side=='even' || $side=='both') { - if ($set && $tag=='SETHTMLPAGEHEADER') { $this->SetHTMLHeader($this->pageHTMLheaders[$pname],'E',$write); } - else if ($set && $tag=='SETHTMLPAGEFOOTER') { $this->SetHTMLFooter($this->pageHTMLfooters[$pname],'E'); } - else if ($tag=='SETHTMLPAGEHEADER') { $this->SetHTMLHeader('','E'); } - else { $this->SetHTMLFooter('','E'); } - } - break; -/*-- END HTMLHEADERS-FOOTERS --*/ - - case 'SETPAGEHEADER': - case 'SETPAGEFOOTER': - $this->ignorefollowingspaces = true; - if (isset($attr['NAME']) && $attr['NAME']) { $pname = $attr['NAME']; } - else { $pname = '_default'; } - if (isset($attr['PAGE']) && $attr['PAGE']) { // O|odd|even|E|ALL|[blank] - if (strtoupper($attr['PAGE'])=='O' || strtoupper($attr['PAGE'])=='ODD') { $side='odd'; } - else if (strtoupper($attr['PAGE'])=='E' || strtoupper($attr['PAGE'])=='EVEN') { $side='even'; } - else if (strtoupper($attr['PAGE'])=='ALL') { $side='both'; } - else { $side='odd'; } - } - else { $side='odd'; } - if (isset($attr['VALUE']) && $attr['VALUE']) { // -1|1|on|off - if ($attr['VALUE']=='1' || strtoupper($attr['VALUE'])=='ON') { $set=1; } - else if ($attr['VALUE']=='-1' || strtoupper($attr['VALUE'])=='OFF') { $set=0; } - else { $set=1; } - } - else { $set=1; } - if ($side=='odd' || $side=='both') { - if ($set && $tag=='SETPAGEHEADER') { $this->headerDetails['odd'] = $this->pageheaders[$pname]; } - else if ($set && $tag=='SETPAGEFOOTER') { $this->footerDetails['odd'] = $this->pagefooters[$pname]; } - else if ($tag=='SETPAGEHEADER') { $this->headerDetails['odd'] = array(); } - else { $this->footerDetails['odd'] = array(); } - if (!$this->mirrorMargins || ($this->page)%2!=0) { // ODD - if ($tag=='SETPAGEHEADER') { $this->_setAutoHeaderHeight($this->headerDetails['odd'],$this->HTMLHeader); } - if ($tag=='SETPAGEFOOTER') { $this->_setAutoFooterHeight($this->footerDetails['odd'],$this->HTMLFooter); } - } - } - if ($side=='even' || $side=='both') { - if ($set && $tag=='SETPAGEHEADER') { $this->headerDetails['even'] = $this->pageheaders[$pname]; } - else if ($set && $tag=='SETPAGEFOOTER') { $this->footerDetails['even'] = $this->pagefooters[$pname]; } - else if ($tag=='SETPAGEHEADER') { $this->headerDetails['even'] = array(); } - else { $this->footerDetails['even'] = array(); } - if ($this->mirrorMargins && ($this->page)%2==0) { // EVEN - if ($tag=='SETPAGEHEADER') { $this->_setAutoHeaderHeight($this->headerDetails['even'],$this->HTMLHeaderE); } - if ($tag=='SETPAGEFOOTER') { $this->_setAutoFooterHeight($this->footerDetails['even'],$this->HTMLFooterE); } - } - } - if (isset($attr['SHOW-THIS-PAGE']) && $attr['SHOW-THIS-PAGE'] && $tag=='SETPAGEHEADER') { - $this->Header(); - } - break; - - -/*-- TOC --*/ - case 'TOC': //added custom-tag - set Marker for insertion later of ToC - if (!class_exists('tocontents', false)) { include(_MPDF_PATH.'classes/tocontents.php'); } - if (empty($this->tocontents)) { $this->tocontents = new tocontents($this); } - $this->tocontents->openTagTOC($attr); - break; - - - - case 'TOCPAGEBREAK': // custom-tag - set Marker for insertion later of ToC AND adds PAGEBREAK - if (!class_exists('tocontents', false)) { include(_MPDF_PATH.'classes/tocontents.php'); } - if (empty($this->tocontents)) { $this->tocontents = new tocontents($this); } - list($isbreak,$toc_id) = $this->tocontents->openTagTOCPAGEBREAK($attr); - if ($isbreak) break; - // No break - continues as PAGEBREAK... -/*-- END TOC --*/ - - - case 'PAGE_BREAK': //custom-tag - case 'PAGEBREAK': //custom-tag - case 'NEWPAGE': //custom-tag - case 'FORMFEED': //custom-tag - - $save_blklvl = $this->blklvl; - $save_blk = $this->blk; - $save_silp = $this->saveInlineProperties(); - $save_ilp = $this->InlineProperties; - - // Close any open block tags - for ($b= $this->blklvl;$b>0;$b--) { $this->CloseTag($this->blk[$b]['tag']); } - if(!empty($this->textbuffer)) { //Output previously buffered content - $this->printbuffer($this->textbuffer); - $this->textbuffer=array(); - } - $this->ignorefollowingspaces = true; - $save_cols = false; -/*-- COLUMNS --*/ - if ($this->ColActive) { - $save_cols = true; - $save_nbcol = $this->NbCol; // other values of gap and vAlign will not change by setting Columns off - $this->SetColumns(0); - } -/*-- END COLUMNS --*/ - - - if (isset($attr['SHEET-SIZE']) && $tag != 'FORMFEED' && !$this->restoreBlockPageBreaks) { - // Convert to same types as accepted in initial mPDF() A4, A4-L, or array(w,h) - $prop = preg_split('/\s+/',trim($attr['SHEET-SIZE'])); - if (count($prop) == 2 ) { - $newformat = array($this->ConvertSize($prop[0]), $this->ConvertSize($prop[1])); - } - else { $newformat = $attr['SHEET-SIZE']; } - } - else { $newformat = ''; } - - $mgr = $mgl = $mgt = $mgb = $mgh = $mgf = ''; - if (isset($attr['MARGIN-RIGHT'])) { $mgr = $this->ConvertSize($attr['MARGIN-RIGHT'],$this->w,$this->FontSize,false); } - if (isset($attr['MARGIN-LEFT'])) { $mgl = $this->ConvertSize($attr['MARGIN-LEFT'],$this->w,$this->FontSize,false); } - if (isset($attr['MARGIN-TOP'])) { $mgt = $this->ConvertSize($attr['MARGIN-TOP'],$this->w,$this->FontSize,false); } - if (isset($attr['MARGIN-BOTTOM'])) { $mgb = $this->ConvertSize($attr['MARGIN-BOTTOM'],$this->w,$this->FontSize,false); } - if (isset($attr['MARGIN-HEADER'])) { $mgh = $this->ConvertSize($attr['MARGIN-HEADER'],$this->w,$this->FontSize,false); } - if (isset($attr['MARGIN-FOOTER'])) { $mgf = $this->ConvertSize($attr['MARGIN-FOOTER'],$this->w,$this->FontSize,false); } - $ohname = $ehname = $ofname = $efname = ''; - if (isset($attr['ODD-HEADER-NAME'])) { $ohname = $attr['ODD-HEADER-NAME']; } - if (isset($attr['EVEN-HEADER-NAME'])) { $ehname = $attr['EVEN-HEADER-NAME']; } - if (isset($attr['ODD-FOOTER-NAME'])) { $ofname = $attr['ODD-FOOTER-NAME']; } - if (isset($attr['EVEN-FOOTER-NAME'])) { $efname = $attr['EVEN-FOOTER-NAME']; } - $ohvalue = $ehvalue = $ofvalue = $efvalue = 0; - if (isset($attr['ODD-HEADER-VALUE']) && ($attr['ODD-HEADER-VALUE']=='1' || strtoupper($attr['ODD-HEADER-VALUE'])=='ON')) { $ohvalue = 1; } - else if (isset($attr['ODD-HEADER-VALUE']) && ($attr['ODD-HEADER-VALUE']=='-1' || strtoupper($attr['ODD-HEADER-VALUE'])=='OFF')) { $ohvalue = -1; } - if (isset($attr['EVEN-HEADER-VALUE']) && ($attr['EVEN-HEADER-VALUE']=='1' || strtoupper($attr['EVEN-HEADER-VALUE'])=='ON')) { $ehvalue = 1; } - else if (isset($attr['EVEN-HEADER-VALUE']) && ($attr['EVEN-HEADER-VALUE']=='-1' || strtoupper($attr['EVEN-HEADER-VALUE'])=='OFF')) { $ehvalue = -1; } - if (isset($attr['ODD-FOOTER-VALUE']) && ($attr['ODD-FOOTER-VALUE']=='1' || strtoupper($attr['ODD-FOOTER-VALUE'])=='ON')) { $ofvalue = 1; } - else if (isset($attr['ODD-FOOTER-VALUE']) && ($attr['ODD-FOOTER-VALUE']=='-1' || strtoupper($attr['ODD-FOOTER-VALUE'])=='OFF')) { $ofvalue = -1; } - if (isset($attr['EVEN-FOOTER-VALUE']) && ($attr['EVEN-FOOTER-VALUE']=='1' || strtoupper($attr['EVEN-FOOTER-VALUE'])=='ON')) { $efvalue = 1; } - else if (isset($attr['EVEN-FOOTER-VALUE']) && ($attr['EVEN-FOOTER-VALUE']=='-1' || strtoupper($attr['EVEN-FOOTER-VALUE'])=='OFF')) { $efvalue = -1; } - - if (isset($attr['ORIENTATION']) && (strtoupper($attr['ORIENTATION'])=='L' || strtoupper($attr['ORIENTATION'])=='LANDSCAPE')) { $orient = 'L'; } - else if (isset($attr['ORIENTATION']) && (strtoupper($attr['ORIENTATION'])=='P' || strtoupper($attr['ORIENTATION'])=='PORTRAIT')) { $orient = 'P'; } - else { $orient = $this->CurOrientation; } - - if (isset($attr['PAGE-SELECTOR']) && $attr['PAGE-SELECTOR']) { $pagesel = $attr['PAGE-SELECTOR']; } - else { $pagesel = ''; } - - $resetpagenum = ''; - $pagenumstyle = ''; - $suppress = ''; - if (isset($attr['RESETPAGENUM'])) { $resetpagenum = $attr['RESETPAGENUM']; } - if (isset($attr['PAGENUMSTYLE'])) { $pagenumstyle = $attr['PAGENUMSTYLE']; } - if (isset($attr['SUPPRESS'])) { $suppress = $attr['SUPPRESS']; } - - if ($tag == 'TOCPAGEBREAK') { $type = 'NEXT-ODD'; } - else if(isset($attr['TYPE'])) { $type = strtoupper($attr['TYPE']); } - else { $type = ''; } - - if ($type == 'E' || $type == 'EVEN') { $this->AddPage($orient,'E', $resetpagenum, $pagenumstyle, $suppress,$mgl,$mgr,$mgt,$mgb,$mgh,$mgf,$ohname,$ehname,$ofname,$efname,$ohvalue,$ehvalue,$ofvalue,$efvalue,$pagesel,$newformat); } - else if ($type == 'O' || $type == 'ODD') { $this->AddPage($orient,'O', $resetpagenum, $pagenumstyle, $suppress,$mgl,$mgr,$mgt,$mgb,$mgh,$mgf,$ohname,$ehname,$ofname,$efname,$ohvalue,$ehvalue,$ofvalue,$efvalue,$pagesel,$newformat); } - else if ($type == 'NEXT-ODD') { $this->AddPage($orient,'NEXT-ODD', $resetpagenum, $pagenumstyle, $suppress,$mgl,$mgr,$mgt,$mgb,$mgh,$mgf,$ohname,$ehname,$ofname,$efname,$ohvalue,$ehvalue,$ofvalue,$efvalue,$pagesel,$newformat); } - else if ($type == 'NEXT-EVEN') { $this->AddPage($orient,'NEXT-EVEN', $resetpagenum, $pagenumstyle, $suppress,$mgl,$mgr,$mgt,$mgb,$mgh,$mgf,$ohname,$ehname,$ofname,$efname,$ohvalue,$ehvalue,$ofvalue,$efvalue,$pagesel,$newformat); } - else { $this->AddPage($orient,'', $resetpagenum, $pagenumstyle, $suppress,$mgl,$mgr,$mgt,$mgb,$mgh,$mgf,$ohname,$ehname,$ofname,$efname,$ohvalue,$ehvalue,$ofvalue,$efvalue,$pagesel,$newformat); } - -/*-- TOC --*/ - if ($tag == 'TOCPAGEBREAK') { - if ($toc_id) { $this->tocontents->m_TOC[$toc_id]['TOCmark'] = $this->page; } - else { $this->tocontents->TOCmark = $this->page; } - } -/*-- END TOC --*/ - -/*-- COLUMNS --*/ - if ($save_cols) { - // Restore columns - $this->SetColumns($save_nbcol,$this->colvAlign,$this->ColGap); - } -/*-- END COLUMNS --*/ - if (($tag == 'FORMFEED' || $this->restoreBlockPagebreaks) && !$this->tableLevel && !$this->listlvl) { - $this->blk = $save_blk; - // Re-open block tags - $t = $this->blk[0]['tag']; - $a = $this->blk[0]['attr']; - $this->blklvl = 0; - for ($b=0; $b<=$save_blklvl;$b++) { - $tc = $t; - $ac = $a; - $t = $this->blk[$b+1]['tag']; - $a = $this->blk[$b+1]['attr']; - unset($this->blk[$b+1]); - $this->OpenTag($tc,$ac); - } - $this->InlineProperties = $save_ilp; - $this->restoreInlineProperties($save_silp); - } - - break; - - -/*-- TOC --*/ - case 'TOCENTRY': - if (isset($attr['CONTENT']) && $attr['CONTENT']) { - $objattr = array(); - $objattr['CONTENT'] = htmlspecialchars_decode($attr['CONTENT'],ENT_QUOTES); - $objattr['type'] = 'toc'; - if (isset($attr['LEVEL']) && $attr['LEVEL']) { $objattr['toclevel'] = $attr['LEVEL']; } else { $objattr['toclevel'] = 0; } - if (isset($attr['NAME']) && $attr['NAME']) { $objattr['toc_id'] = $attr['NAME']; } else { $objattr['toc_id'] = 0; } - $e = "\xbb\xa4\xactype=toc,objattr=".serialize($objattr)."\xbb\xa4\xac"; - if($this->tableLevel) { $this->cell[$this->row][$this->col]['textbuffer'][] = array($e); } // *TABLES* - else { // *TABLES* - $this->textbuffer[] = array($e); - } // *TABLES* - } - break; -/*-- END TOC --*/ - -/*-- INDEX --*/ - case 'INDEXENTRY': - if (isset($attr['CONTENT']) && $attr['CONTENT']) { - if (isset($attr['XREF']) && $attr['XREF']) { - $this->IndexEntry(htmlspecialchars_decode($attr['CONTENT'],ENT_QUOTES),$attr['XREF']); - break; - } - $objattr = array(); - $objattr['CONTENT'] = htmlspecialchars_decode($attr['CONTENT'],ENT_QUOTES); - $objattr['type'] = 'indexentry'; - $e = "\xbb\xa4\xactype=indexentry,objattr=".serialize($objattr)."\xbb\xa4\xac"; - if($this->tableLevel) { $this->cell[$this->row][$this->col]['textbuffer'][] = array($e); } // *TABLES* - else { // *TABLES* - $this->textbuffer[] = array($e); - } // *TABLES* - } - break; - - - case 'INDEXINSERT': - if (isset($attr['FONT-SIZE'])) { $reffontsize = $attr['FONT-SIZE']; } else { $reffontsize = ''; } - if (isset($attr['LINE-SPACING']) && $attr['LINE-SPACING']) { $linespacing = $attr['LINE-SPACING']; } else { $linespacing = ''; } - if (isset($attr['DIV-FONT-SIZE']) && $attr['DIV-FONT-SIZE']) { $divlettfontsize = $attr['DIV-FONT-SIZE']; } else { $divlettfontsize = ''; } - if (isset($attr['FONT']) && $attr['FONT']) { $reffont = $attr['FONT']; } else { $reffont = ''; } - if (isset($attr['DIV-FONT']) && $attr['DIV-FONT']) { $divlettfont = $attr['DIV-FONT']; } else { $divlettfont = ''; } - if (isset($attr['COLS']) && $attr['COLS']) { $cols = $attr['COLS']; } else { $cols = 1; } - if (isset($attr['OFFSET']) && $attr['OFFSET']) { $offset = $attr['OFFSET']; } else { $offset = 3; } - if (isset($attr['GAP']) && $attr['GAP']) { $gap = $attr['GAP']; } else { $gap = 5; } - - if (isset($attr['USEDIVLETTERS']) && (strtoupper($attr['USEDIVLETTERS'])=='OFF' || $attr['USEDIVLETTERS']==-1 || $attr['USEDIVLETTERS']==='0')) { $usedivletters = 0; } - else { $usedivletters = 1; } - - if (isset($attr['LINKS']) && (strtoupper($attr['LINKS'])=='ON' || $attr['LINKS']==1)) { $links = true; } - else { $links = false; } - $this->CreateIndex($cols, $reffontsize, $linespacing, $offset, $usedivletters, $divlettfontsize, $gap, $reffont,$divlettfont, $links); - break; -/*-- END INDEX --*/ - -/*-- WATERMARK --*/ - - case 'WATERMARKTEXT': - if (isset($attr['CONTENT']) && $attr['CONTENT']) { $txt = htmlspecialchars_decode($attr['CONTENT'],ENT_QUOTES); } else { $txt = ''; } - if (isset($attr['ALPHA']) && $attr['ALPHA']>0) { $alpha = $attr['ALPHA']; } else { $alpha = -1; } - $this->SetWatermarkText($txt, $alpha); - break; - - - case 'WATERMARKIMAGE': - if (isset($attr['SRC'])) { $src = $attr['SRC']; } else { $src = ''; } - if (isset($attr['ALPHA']) && $attr['ALPHA']>0) { $alpha = $attr['ALPHA']; } else { $alpha = -1; } - if (isset($attr['SIZE']) && $attr['SIZE']) { - $size = $attr['SIZE']; - if (strpos($size,',')) { $size = explode(',',$size); } - } - else { $size = 'D'; } - if (isset($attr['POSITION']) && $attr['POSITION']) { // mPDF 5.7.2 - $pos = $attr['POSITION']; - if (strpos($pos,',')) { $pos = explode(',',$pos); } - } - else { $pos = 'P'; } - $this->SetWatermarkImage($src, $alpha, $size, $pos); - break; -/*-- END WATERMARK --*/ - -/*-- BOOKMARKS --*/ - case 'BOOKMARK': - if (isset($attr['CONTENT'])) { - $objattr = array(); - $objattr['CONTENT'] = htmlspecialchars_decode($attr['CONTENT'],ENT_QUOTES); - $objattr['type'] = 'bookmark'; - if (isset($attr['LEVEL']) && $attr['LEVEL']) { $objattr['bklevel'] = $attr['LEVEL']; } else { $objattr['bklevel'] = 0; } - $e = "\xbb\xa4\xactype=bookmark,objattr=".serialize($objattr)."\xbb\xa4\xac"; - if($this->tableLevel) { $this->cell[$this->row][$this->col]['textbuffer'][] = array($e); } // *TABLES* - else { // *TABLES* - $this->textbuffer[] = array($e); - } // *TABLES* - } - break; -/*-- END BOOKMARKS --*/ - -/*-- ANNOTATIONS --*/ - case 'ANNOTATION': - - //if (isset($attr['CONTENT']) && !$this->writingHTMLheader && !$this->writingHTMLfooter) { // Stops annotations in FixedPos - if (isset($attr['CONTENT'])) { - $objattr = array(); - $objattr['margin_top'] = 0; - $objattr['margin_bottom'] = 0; - $objattr['margin_left'] = 0; - $objattr['margin_right'] = 0; - $objattr['width'] = 0; - $objattr['height'] = 0; - $objattr['border_top']['w'] = 0; - $objattr['border_bottom']['w'] = 0; - $objattr['border_left']['w'] = 0; - $objattr['border_right']['w'] = 0; - $objattr['CONTENT'] = htmlspecialchars_decode($attr['CONTENT'],ENT_QUOTES); - $objattr['type'] = 'annot'; - $objattr['POPUP'] = ''; - } - else { break; } - if (isset($attr['POS-X'])) { $objattr['POS-X'] = $attr['POS-X']; } else { $objattr['POS-X'] = 0; } - if (isset($attr['POS-Y'])) { $objattr['POS-Y'] = $attr['POS-Y']; } else { $objattr['POS-Y'] = 0; } - if (isset($attr['ICON'])) { $objattr['ICON'] = $attr['ICON']; } else { $objattr['ICON'] = 'Note'; } - if (isset($attr['AUTHOR'])) { $objattr['AUTHOR'] = $attr['AUTHOR']; } - else if (isset($attr['TITLE'])) { $objattr['AUTHOR'] = $attr['TITLE']; } else { $objattr['AUTHOR'] = ''; } - if (isset($attr['FILE'])) { $objattr['FILE'] = $attr['FILE']; } else { $objattr['FILE'] = ''; } - if (isset($attr['SUBJECT'])) { $objattr['SUBJECT'] = $attr['SUBJECT']; } else { $objattr['SUBJECT'] = ''; } - if (isset($attr['OPACITY']) && $attr['OPACITY']>0 && $attr['OPACITY']<=1) { $objattr['OPACITY'] = $attr['OPACITY']; } - else if ($this->annotMargin) { $objattr['OPACITY'] = 1; } - else { $objattr['OPACITY'] = $this->annotOpacity; } - if (isset($attr['COLOR'])) { - $cor = $this->ConvertColor($attr['COLOR']); - if ($cor) { $objattr['COLOR'] = $cor; } - else { $objattr['COLOR'] = $this->ConvertColor('yellow'); } - } - else { $objattr['COLOR'] = $this->ConvertColor('yellow'); } - - if (isset($attr['POPUP']) && !empty($attr['POPUP'])) { - $pop = preg_split('/\s+/',trim($attr['POPUP'])); - if (count($pop)>1) { $objattr['POPUP'] = $pop; } - else { $objattr['POPUP'] = true; } - } - $e = "\xbb\xa4\xactype=annot,objattr=".serialize($objattr)."\xbb\xa4\xac"; - if($this->tableLevel) { $this->cell[$this->row][$this->col]['textbuffer'][] = array($e); } // *TABLES* - else { // *TABLES* - $this->textbuffer[] = array($e); - } // *TABLES* - break; -/*-- END ANNOTATIONS --*/ - - -/*-- COLUMNS --*/ - case 'COLUMNS': //added custom-tag - if (isset($attr['COLUMN-COUNT']) && ($attr['COLUMN-COUNT'] || $attr['COLUMN-COUNT']==='0')) { - // Close any open block tags - for ($b= $this->blklvl;$b>0;$b--) { $this->CloseTag($this->blk[$b]['tag']); } - if(!empty($this->textbuffer)) { //Output previously buffered content - $this->printbuffer($this->textbuffer); - $this->textbuffer=array(); - } - - if (isset($attr['VALIGN']) && $attr['VALIGN']) { - if ($attr['VALIGN'] == 'J') { $valign = 'J'; } - else { $valign = $align[$attr['VALIGN']]; } - } - else { $valign = ''; } - if (isset($attr['COLUMN-GAP']) && $attr['COLUMN-GAP']) { $this->SetColumns($attr['COLUMN-COUNT'],$valign,$attr['COLUMN-GAP']); } - else { $this->SetColumns($attr['COLUMN-COUNT'],$valign); } - } - $this->ignorefollowingspaces = true; - break; - - case 'COLUMN_BREAK': //custom-tag - case 'COLUMNBREAK': //custom-tag - case 'NEWCOLUMN': //custom-tag - $this->ignorefollowingspaces = true; - $this->NewColumn(); - $this->ColumnAdjust = false; // disables all column height adjustment for the page. - break; - -/*-- END COLUMNS --*/ - - - case 'BDO': - // $this->biDirectional = true; - break; - - - case 'TTZ': - $this->ttz = true; - $this->InlineProperties[$tag] = $this->saveInlineProperties(); - $this->setCSS(array('FONT-FAMILY'=>'czapfdingbats','FONT-WEIGHT'=>'normal','FONT-STYLE'=>'normal'),'INLINE'); - break; - - case 'TTS': - $this->tts = true; - $this->InlineProperties[$tag] = $this->saveInlineProperties(); - $this->setCSS(array('FONT-FAMILY'=>'csymbol','FONT-WEIGHT'=>'normal','FONT-STYLE'=>'normal'),'INLINE'); - break; - - case 'TTA': - $this->tta = true; - $this->InlineProperties[$tag] = $this->saveInlineProperties(); - - if (in_array($this->FontFamily,$this->mono_fonts)) { - $this->setCSS(array('FONT-FAMILY'=>'ccourier'),'INLINE'); - } - else if (in_array($this->FontFamily,$this->serif_fonts)) { - $this->setCSS(array('FONT-FAMILY'=>'ctimes'),'INLINE'); - } - else { - $this->setCSS(array('FONT-FAMILY'=>'chelvetica'),'INLINE'); - } - break; - - - - // INLINE PHRASES OR STYLES - case 'SUB': - case 'SUP': - case 'ACRONYM': - case 'BIG': - case 'SMALL': - case 'INS': - case 'S': - case 'STRIKE': - case 'DEL': - case 'STRONG': - case 'CITE': - case 'Q': - case 'EM': - case 'B': - case 'I': - case 'U': - case 'SAMP': - case 'CODE': - case 'KBD': - case 'TT': - case 'VAR': - case 'FONT': - case 'MARK': // mPDF 5.5.09 - case 'TIME': - - case 'SPAN': -/*-- ANNOTATIONS --*/ - if ($this->title2annots && isset($attr['TITLE'])) { - $objattr = array(); - $objattr['margin_top'] = 0; - $objattr['margin_bottom'] = 0; - $objattr['margin_left'] = 0; - $objattr['margin_right'] = 0; - $objattr['width'] = 0; - $objattr['height'] = 0; - $objattr['border_top']['w'] = 0; - $objattr['border_bottom']['w'] = 0; - $objattr['border_left']['w'] = 0; - $objattr['border_right']['w'] = 0; - - $objattr['CONTENT'] = $attr['TITLE']; - $objattr['type'] = 'annot'; - $objattr['POS-X'] = 0; - $objattr['POS-Y'] = 0; - $objattr['ICON'] = 'Comment'; - $objattr['AUTHOR'] = ''; - $objattr['SUBJECT'] = ''; - $objattr['OPACITY'] = $this->annotOpacity; - $objattr['COLOR'] = $this->ConvertColor('yellow'); - $annot = "\xbb\xa4\xactype=annot,objattr=".serialize($objattr)."\xbb\xa4\xac"; - } -/*-- END ANNOTATIONS --*/ - - // mPDF 5.7.3 Inline tags - if (!isset($this->InlineProperties[$tag])) { $this->InlineProperties[$tag] = array($this->saveInlineProperties()); } - else { $this->InlineProperties[$tag][] = $this->saveInlineProperties(); } - if (isset($annot)) { // *ANNOTATIONS* - if (!isset($this->InlineAnnots[$tag])) { $this->InlineAnnots[$tag] = array($annot); } // *ANNOTATIONS* - else { $this->InlineAnnots[$tag][] = $annot; } // *ANNOTATIONS* - } // *ANNOTATIONS* - - $properties = $this->cssmgr->MergeCSS('INLINE',$tag,$attr); - if (!empty($properties)) $this->setCSS($properties,'INLINE'); - break; - - - case 'A': - if (isset($attr['NAME']) and $attr['NAME'] != '') { - $e = ''; -/*-- BOOKMARKS --*/ - if ($this->anchor2Bookmark) { - $objattr = array(); - $objattr['CONTENT'] = htmlspecialchars_decode($attr['NAME'],ENT_QUOTES); - $objattr['type'] = 'bookmark'; - if (isset($attr['LEVEL']) && $attr['LEVEL']) { $objattr['bklevel'] = $attr['LEVEL']; } else { $objattr['bklevel'] = 0; } - $e = "\xbb\xa4\xactype=bookmark,objattr=".serialize($objattr)."\xbb\xa4\xac"; - } -/*-- END BOOKMARKS --*/ - if($this->tableLevel) { // *TABLES* - $this->_saveCellTextBuffer($e, '', $attr['NAME']); // *TABLES* - } // *TABLES* - else { // *TABLES* - $this->_saveTextBuffer($e, '', $attr['NAME']); //an internal link (adds a space for recognition) - } // *TABLES* - } - if (isset($attr['HREF'])) { - $this->InlineProperties['A'] = $this->saveInlineProperties(); - $properties = $this->cssmgr->MergeCSS('INLINE',$tag,$attr); - if (!empty($properties)) $this->setCSS($properties,'INLINE'); - $this->HREF=$attr['HREF']; // mPDF 5.7.4 URLs - } - break; - - case 'LEGEND': - $this->InlineProperties['LEGEND'] = $this->saveInlineProperties(); - $properties = $this->cssmgr->MergeCSS('INLINE',$tag,$attr); - if (!empty($properties)) $this->setCSS($properties,'INLINE'); - break; - - - - case 'PROGRESS': - case 'METER': - $this->inMeter = true; - - if (isset($attr['MAX']) && $attr['MAX']) { $max = $attr['MAX']; } - else { $max = 1; } - if (isset($attr['MIN']) && $attr['MIN'] && $tag=='METER') { $min = $attr['MIN']; } - else { $min = 0; } - if ($max < $min) { $max = $min; } - - if (isset($attr['VALUE']) && ($attr['VALUE'] || $attr['VALUE']==='0')) { - $value = $attr['VALUE']; - if ($value < $min) { $value = $min; } - else if ($value > $max) { $value = $max; } - } - else { $value = ''; } - - if (isset($attr['LOW']) && $attr['LOW']) { $low = $attr['LOW']; } - else { $low = $min; } - if ($low < $min) { $low = $min; } - else if ($low > $max) { $low = $max; } - if (isset($attr['HIGH']) && $attr['HIGH']) { $high = $attr['HIGH']; } - else { $high = $max; } - if ($high < $low) { $high = $low; } - else if ($high > $max) { $high = $max; } - if (isset($attr['OPTIMUM']) && $attr['OPTIMUM']) { $optimum = $attr['OPTIMUM']; } - else { $optimum = $min + (($max-$min)/2); } - if ($optimum < $min) { $optimum = $min; } - else if ($optimum > $max) { $optimum = $max; } - if (isset($attr['TYPE']) && $attr['TYPE']) { $type = $attr['TYPE']; } - else { $type = ''; } - $objattr = array(); - $objattr['margin_top'] = 0; - $objattr['margin_bottom'] = 0; - $objattr['margin_left'] = 0; - $objattr['margin_right'] = 0; - $objattr['padding_top'] = 0; - $objattr['padding_bottom'] = 0; - $objattr['padding_left'] = 0; - $objattr['padding_right'] = 0; - $objattr['width'] = 0; - $objattr['height'] = 0; - $objattr['border_top']['w'] = 0; - $objattr['border_bottom']['w'] = 0; - $objattr['border_left']['w'] = 0; - $objattr['border_right']['w'] = 0; - - $properties = $this->cssmgr->MergeCSS('INLINE',$tag,$attr); - if(isset($properties ['DISPLAY']) && strtolower($properties ['DISPLAY'])=='none') { - return; - } - $objattr['visibility'] = 'visible'; - if (isset($properties['VISIBILITY'])) { - $v = strtolower($properties['VISIBILITY']); - if (($v == 'hidden' || $v == 'printonly' || $v == 'screenonly') && $this->visibility=='visible') { - $objattr['visibility'] = $v; - } - } - - if (isset($properties['MARGIN-TOP'])) { $objattr['margin_top']=$this->ConvertSize($properties['MARGIN-TOP'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); } - if (isset($properties['MARGIN-BOTTOM'])) { $objattr['margin_bottom'] = $this->ConvertSize($properties['MARGIN-BOTTOM'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); } - if (isset($properties['MARGIN-LEFT'])) { $objattr['margin_left'] = $this->ConvertSize($properties['MARGIN-LEFT'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); } - if (isset($properties['MARGIN-RIGHT'])) { $objattr['margin_right'] = $this->ConvertSize($properties['MARGIN-RIGHT'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); } - - if (isset($properties['PADDING-TOP'])) { $objattr['padding_top']=$this->ConvertSize($properties['PADDING-TOP'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); } - if (isset($properties['PADDING-BOTTOM'])) { $objattr['padding_bottom'] = $this->ConvertSize($properties['PADDING-BOTTOM'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); } - if (isset($properties['PADDING-LEFT'])) { $objattr['padding_left'] = $this->ConvertSize($properties['PADDING-LEFT'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); } - if (isset($properties['PADDING-RIGHT'])) { $objattr['padding_right'] = $this->ConvertSize($properties['PADDING-RIGHT'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); } - - if (isset($properties['BORDER-TOP'])) { $objattr['border_top'] = $this->border_details($properties['BORDER-TOP']); } - if (isset($properties['BORDER-BOTTOM'])) { $objattr['border_bottom'] = $this->border_details($properties['BORDER-BOTTOM']); } - if (isset($properties['BORDER-LEFT'])) { $objattr['border_left'] = $this->border_details($properties['BORDER-LEFT']); } - if (isset($properties['BORDER-RIGHT'])) { $objattr['border_right'] = $this->border_details($properties['BORDER-RIGHT']); } - - if (isset($properties['VERTICAL-ALIGN'])) { $objattr['vertical-align'] = $align[strtolower($properties['VERTICAL-ALIGN'])]; } - $w = 0; - $h = 0; - if(isset($properties['WIDTH'])) $w = $this->ConvertSize($properties['WIDTH'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); - else if(isset($attr['WIDTH'])) $w = $this->ConvertSize($attr['WIDTH'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); - - if(isset($properties['HEIGHT'])) $h = $this->ConvertSize($properties['HEIGHT'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); - else if(isset($attr['HEIGHT'])) $h = $this->ConvertSize($attr['HEIGHT'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); - - if (isset($properties['OPACITY']) && $properties['OPACITY'] > 0 && $properties['OPACITY'] <= 1) { $objattr['opacity'] = $properties['OPACITY']; } - if ($this->HREF) { - if (strpos($this->HREF,".") === false && strpos($this->HREF,"@") !== 0) { - $href = $this->HREF; - while(array_key_exists($href,$this->internallink)) $href="#".$href; - $this->internallink[$href] = $this->AddLink(); - $objattr['link'] = $this->internallink[$href]; - } - else { $objattr['link'] = $this->HREF; } - } - $extraheight = $objattr['padding_top'] + $objattr['padding_bottom'] + $objattr['margin_top'] + $objattr['margin_bottom'] + $objattr['border_top']['w'] + $objattr['border_bottom']['w']; - $extrawidth = $objattr['padding_left'] + $objattr['padding_right'] + $objattr['margin_left'] + $objattr['margin_right'] + $objattr['border_left']['w'] + $objattr['border_right']['w']; - - // Image file - if (!class_exists('meter', false)) { - include(_MPDF_PATH.'classes/meter.php'); - } - $this->meter = new meter(); - $svg = $this->meter->makeSVG(strtolower($tag), $type, $value, $max, $min, $optimum, $low, $high); - //Save to local file - $srcpath= _MPDF_TEMP_PATH.'_tempSVG'.uniqid(rand(1,100000),true).'_'.strtolower($tag).'.svg'; - file_put_contents($srcpath, $svg); - $orig_srcpath = $srcpath; - $this->GetFullPath($srcpath); - - $info=$this->_getImage($srcpath, true, true, $orig_srcpath); - if(!$info) { - $info = $this->_getImage($this->noImageFile); - if ($info) { - $srcpath = $this->noImageFile; - $w = ($info['w'] * (25.4/$this->dpi)); - $h = ($info['h'] * (25.4/$this->dpi)); - } - } - if(!$info) break; - - $objattr['file'] = $srcpath; - //Default width and height calculation if needed - if($w==0 and $h==0) { - // SVG units are pixels - $w = $this->FontSize/(10/_MPDFK) * abs($info['w'])/_MPDFK; // mPDF 5.5.21 - $h = $this->FontSize/(10/_MPDFK) * abs($info['h'])/_MPDFK; - } - // IF WIDTH OR HEIGHT SPECIFIED - if($w==0) $w=abs($h*$info['w']/$info['h']); - if($h==0) $h=abs($w*$info['h']/$info['w']); - - // Resize to maximum dimensions of page - $maxWidth = $this->blk[$this->blklvl]['inner_width']; - $maxHeight = $this->h - ($this->tMargin + $this->bMargin + 1) ; - if ($this->fullImageHeight) { $maxHeight = $this->fullImageHeight; } - if (($w + $extrawidth) > ($maxWidth + 0.0001) ) { // mPDF 5.7.4 0.0001 to allow for rounding errors when w==maxWidth - $w = $maxWidth - $extrawidth; - $h=abs($w*$info['h']/$info['w']); - } - - if ($h + $extraheight > $maxHeight ) { - $h = $maxHeight - $extraheight; - $w=abs($h*$info['w']/$info['h']); - } - $objattr['type'] = 'image'; - $objattr['itype'] = $info['type']; - - $objattr['orig_h'] = $info['h']; - $objattr['orig_w'] = $info['w']; - $objattr['wmf_x'] = $info['x']; - $objattr['wmf_y'] = $info['y']; - $objattr['height'] = $h + $extraheight; - $objattr['width'] = $w + $extrawidth; - $objattr['image_height'] = $h; - $objattr['image_width'] = $w; - $e = "\xbb\xa4\xactype=image,objattr=".serialize($objattr)."\xbb\xa4\xac"; - $properties = array(); - if ($this->tableLevel) { - $this->_saveCellTextBuffer($e, $this->HREF); - $this->cell[$this->row][$this->col]['s'] += $objattr['width'] ; - } - else { - $this->_saveTextBuffer($e, $this->HREF); - } - - break; - - - case 'BR': - // Added mPDF 3.0 Float DIV - CLEAR - if (isset($attr['STYLE'])) { - $properties = $this->cssmgr->readInlineCSS($attr['STYLE']); - if (isset($properties['CLEAR'])) { $this->ClearFloats(strtoupper($properties['CLEAR']),$this->blklvl); } // *CSS-FLOAT* - } - - -/*-- TABLES --*/ - if($this->tableLevel) { - - if ($this->blockjustfinished || $this->listjustfinished) { - $this->_saveCellTextBuffer("\n"); - } - - $this->_saveCellTextBuffer("\n"); - if (!isset($this->cell[$this->row][$this->col]['maxs'])) { - $this->cell[$this->row][$this->col]['maxs'] = $this->cell[$this->row][$this->col]['s']; - } - elseif($this->cell[$this->row][$this->col]['maxs'] < $this->cell[$this->row][$this->col]['s']) { - $this->cell[$this->row][$this->col]['maxs'] = $this->cell[$this->row][$this->col]['s']; - } - $this->cell[$this->row][$this->col]['s'] = 0 ;// reset - } - else { -/*-- END TABLES --*/ - if (count($this->textbuffer)) { - $this->textbuffer[count($this->textbuffer)-1][0] = preg_replace('/ $/','',$this->textbuffer[count($this->textbuffer)-1][0]); - } - $this->_saveTextBuffer("\n"); - } // *TABLES* - $this->ignorefollowingspaces = true; - $this->blockjustfinished=false; - $this->listjustfinished=false; - - $this->linebreakjustfinished=true; - break; - - - // *********** BLOCKS ******************** - - - case 'PRE': - $this->ispre=true; // ADDED - Prevents left trim of textbuffer in printbuffer() - - case 'DIV': - case 'FORM': - case 'CENTER': - - case 'BLOCKQUOTE': - case 'ADDRESS': - - case 'CAPTION': - case 'P': - case 'H1': - case 'H2': - case 'H3': - case 'H4': - case 'H5': - case 'H6': - case 'DL': - case 'DT': - case 'DD': - case 'FIELDSET': - case 'DETAILS': - case 'SUMMARY': - case 'ARTICLE': - case 'ASIDE': - case 'FIGURE': - case 'FIGCAPTION': - case 'FOOTER': - case 'HEADER': - case 'HGROUP': - case 'NAV': - case 'SECTION': - case 'MAIN': // mPDF 5.7.3 - $p = $this->cssmgr->PreviewBlockCSS($tag,$attr); - if(isset($p['DISPLAY']) && strtolower($p['DISPLAY'])=='none') { - $this->blklvl++; - $this->blk[$this->blklvl]['hide'] = true; - return; - } - if($tag == 'CAPTION') { - // position is written in AdjstHTML - if (isset($attr['POSITION']) && strtolower($attr['POSITION'])=='bottom') { $divpos = 'B'; } - else { $divpos = 'T'; } - if (isset($attr['ALIGN']) && strtolower($attr['ALIGN'])=='bottom') { $cappos = 'B'; } - else if (isset($p['CAPTION-SIDE']) && strtolower($p['CAPTION-SIDE'])=='bottom') { $cappos = 'B'; } - else { $cappos = 'T'; } - if (isset($attr['ALIGN'])) { unset($attr['ALIGN']); } - if ($cappos != $divpos) { - $this->blklvl++; - $this->blk[$this->blklvl]['hide'] = true; - return; - } - } - -/*-- FORMS --*/ - if($tag == 'FORM') { - if (isset($attr['METHOD']) && strtolower($attr['METHOD'])=='get') { $this->form->formMethod = 'GET'; } - else { $this->form->formMethod = 'POST'; } - if (isset($attr['ACTION'])) { $this->form->formAction = $attr['ACTION']; } - else { $this->form->formAction = ''; } - } -/*-- END FORMS --*/ - - -/*-- CSS-POSITION --*/ - if ((isset($p['POSITION']) && (strtolower($p['POSITION'])=='fixed' || strtolower($p['POSITION'])=='absolute')) && $this->blklvl==0) { - if ($this->inFixedPosBlock) { - $this->Error("Cannot nest block with position:fixed or position:absolute"); - } - $this->inFixedPosBlock = true; - return; - } -/*-- END CSS-POSITION --*/ - // Start Block - $this->ignorefollowingspaces = true; - - if ($this->blockjustfinished && !count($this->textbuffer) && $this->y != $this->tMargin && $this->collapseBlockMargins) { $lastbottommargin = $this->lastblockbottommargin; } - else { $lastbottommargin = 0; } - $this->lastblockbottommargin = 0; - $this->blockjustfinished=false; - -/*-- LISTS --*/ - if ($this->listlvl>0) { return; } -/*-- END LISTS --*/ - - $this->InlineProperties = array(); - $this->listjustfinished=false; - $this->divbegin=true; - - $this->linebreakjustfinished=false; - -/*-- TABLES --*/ - if ($this->tableLevel) { - - // If already something on the line - if ($this->cell[$this->row][$this->col]['s'] > 0 && !$this->nestedtablejustfinished ) { - $this->_saveCellTextBuffer("\n"); - if (!isset($this->cell[$this->row][$this->col]['maxs'])) { - $this->cell[$this->row][$this->col]['maxs'] = $this->cell[$this->row][$this->col]['s']; - } - elseif($this->cell[$this->row][$this->col]['maxs'] < $this->cell[$this->row][$this->col]['s']) { - $this->cell[$this->row][$this->col]['maxs'] = $this->cell[$this->row][$this->col]['s']; - } - $this->cell[$this->row][$this->col]['s'] = 0 ;// reset - } - // Cannot set block properties inside table - use Bold to indicate h1-h6 - if ($tag == 'CENTER' && $this->tdbegin) { $this->cell[$this->row][$this->col]['a'] = $align['center']; } - - $this->InlineProperties['BLOCKINTABLE'] = $this->saveInlineProperties(); - $properties = $this->cssmgr->MergeCSS('',$tag,$attr); - if (!empty($properties)) $this->setCSS($properties,'INLINE'); - - - break; - } -/*-- END TABLES --*/ - - if ($tag == 'P' || $tag == 'DT' || $tag == 'DD') { $this->lastoptionaltag = $tag; } // Save current HTML specified optional endtag - else { $this->lastoptionaltag = ''; } - - if ($this->lastblocklevelchange == 1) { $blockstate = 1; } // Top margins/padding only - else if ($this->lastblocklevelchange < 1) { $blockstate = 0; } // NO margins/padding - $this->printbuffer($this->textbuffer,$blockstate); - $this->textbuffer=array(); - - $save_blklvl = $this->blklvl; - $save_blk = $this->blk; - $save_silp = $this->saveInlineProperties(); - $save_ilp = $this->InlineProperties; - - $this->blklvl++; - - $currblk =& $this->blk[$this->blklvl]; - $this->initialiseBlock($currblk); - $prevblk =& $this->blk[$this->blklvl-1]; - - $currblk['tag'] = $tag; - $currblk['attr'] = $attr; - - $this->Reset(); - $properties = $this->cssmgr->MergeCSS('BLOCK',$tag,$attr); - $pagesel = ''; -/*-- CSS-PAGE --*/ - - if (isset($properties['PAGE'])) { $pagesel = $properties['PAGE']; } -/*-- END CSS-PAGE --*/ - - // If page-box has changed AND/OR PAGE-BREAK-BEFORE - $save_cols = false; - if (($pagesel && $pagesel != $this->page_box['current']) || (isset($properties['PAGE-BREAK-BEFORE']) && $properties['PAGE-BREAK-BEFORE'])) { - if ($this->blklvl>1) { - // Close any open block tags - for ($b= $this->blklvl;$b>0;$b--) { $this->CloseTag($this->blk[$b]['tag']); } - // Output any text left in buffer - if (count($this->textbuffer)) { $this->printbuffer($this->textbuffer); $this->textbuffer=array(); } - } -/*-- COLUMNS --*/ - if ($this->ColActive) { - $save_cols = true; - $save_nbcol = $this->NbCol; // other values of gap and vAlign will not change by setting Columns off - $this->SetColumns(0); - } -/*-- END COLUMNS --*/ - - // Must Add new page if changed page properties - if (isset($properties['PAGE-BREAK-BEFORE'])) { - if (strtoupper($properties['PAGE-BREAK-BEFORE']) == 'RIGHT') { $this->AddPage($this->CurOrientation,'NEXT-ODD','','','','','', '','', '','','','','','',0,0,0,0,$pagesel); } - else if (strtoupper($properties['PAGE-BREAK-BEFORE']) == 'LEFT') { $this->AddPage($this->CurOrientation,'NEXT-EVEN','','','','','', '','', '','','','','','',0,0,0,0,$pagesel); } - else if (strtoupper($properties['PAGE-BREAK-BEFORE']) == 'ALWAYS') { $this->AddPage($this->CurOrientation,'','','','','','', '','', '','','','','','',0,0,0,0,$pagesel); } - else if ($this->page_box['current'] != $pagesel) { $this->AddPage($this->CurOrientation,'','','','','','', '','', '','','','','','',0,0,0,0,$pagesel); } // *CSS-PAGE* - } -/*-- CSS-PAGE --*/ - else if ($pagesel != $this->page_box['current']) { $this->AddPage($this->CurOrientation,'','','','','','', '','', '','','','','','',0,0,0,0,$pagesel); } -/*-- END CSS-PAGE --*/ - - // if using htmlheaders, the headers need to be rewritten when new page - // done by calling WriteHTML() within resethtmlheaders - // so block is reset to 0 - now we need to resurrect it - // As in WriteHTML() initialising - if (!($this->restoreBlockPagebreaks && isset($properties['PAGE-BREAK-BEFORE']) && $properties['PAGE-BREAK-BEFORE'])) { - $this->blklvl = 0; - $this->lastblocklevelchange = 0; - $this->blk = array(); - $this->initialiseBlock($this->blk[0]); - $this->blk[0]['width'] =& $this->pgwidth; - $this->blk[0]['inner_width'] =& $this->pgwidth; - $this->blk[0]['blockContext'] = $this->blockContext; - $properties = $this->cssmgr->MergeCSS('BLOCK','BODY',''); - $this->setCSS($properties,'','BODY'); - $this->blklvl++; - $currblk =& $this->blk[$this->blklvl]; - $prevblk =& $this->blk[$this->blklvl-1]; - - $this->initialiseBlock($currblk); - $currblk['tag'] = $tag; - $currblk['attr'] = $attr; - - $this->Reset(); - $properties = $this->cssmgr->MergeCSS('BLOCK',$tag,$attr); - } -/*-- COLUMNS --*/ - if ($save_cols) { - // Restore columns - $this->SetColumns($save_nbcol,$this->colvAlign,$this->ColGap); - } -/*-- END COLUMNS --*/ - if ($this->restoreBlockPagebreaks && isset($properties['PAGE-BREAK-BEFORE']) && $properties['PAGE-BREAK-BEFORE']) { - $this->blk = $save_blk; - // Re-open block tags - $t = $this->blk[0]['tag']; - $a = $this->blk[0]['attr']; - $this->blklvl = 0; - for ($b=0; $b<=$save_blklvl;$b++) { - $tc = $t; - $ac = $a; - $t = $this->blk[$b+1]['tag']; - $a = $this->blk[$b+1]['attr']; - unset($this->blk[$b+1]); - $this->OpenTag($tc,$ac); - } - $this->InlineProperties = $save_ilp; - $this->restoreInlineProperties($save_silp); - } - } - - if (isset($properties['PAGE-BREAK-INSIDE']) && strtoupper($properties['PAGE-BREAK-INSIDE']) == 'AVOID' && !$this->ColActive && !$this->keep_block_together) { - $currblk['keep_block_together'] = 1; - $this->kt_y00 = $this->y; - $this->kt_p00 = $this->page; - $this->keep_block_together = 1; - $this->divbuffer = array(); - $this->ktLinks = array(); - $this->ktAnnots = array(); - $this->ktForms = array(); - $this->ktBlock = array(); - $this->ktReference = array(); - $this->ktBMoutlines = array(); - $this->_kttoc = array(); - } - if ($lastbottommargin && isset($properties['MARGIN-TOP']) && $properties['MARGIN-TOP'] && empty($properties['FLOAT'])) { $currblk['lastbottommargin'] = $lastbottommargin; } - - // mPDF 5.6.01 - LAYERS - if (isset($properties['Z-INDEX']) && $this->currentlayer==0) { - $v = intval($properties['Z-INDEX']); - if ($v > 0) { - $currblk['z-index'] = $v; - $this->BeginLayer($v); - } - } - - $this->setCSS($properties,'BLOCK',$tag); //name(id/class/style) found in the CSS array! - $currblk['InlineProperties'] = $this->saveInlineProperties(); - - if (isset($properties['VISIBILITY'])) { - $v = strtolower($properties['VISIBILITY']); - if (($v == 'hidden' || $v == 'printonly' || $v == 'screenonly') && $this->visibility=='visible' && !$this->tableLevel) { - $currblk['visibility'] = $v; - $this->SetVisibility($v); - } - } - - if(isset($attr['DIR']) && $attr['DIR']) { $currblk['direction'] = strtolower($attr['DIR']); } - if(isset($attr['ALIGN']) && $attr['ALIGN']) { $currblk['block-align'] = $align[strtolower($attr['ALIGN'])]; } - - if (isset($properties['HEIGHT'])) { - $currblk['css_set_height'] = $this->ConvertSize($properties['HEIGHT'],($this->h - $this->tMargin - $this->bMargin),$this->FontSize,false); - if (($currblk['css_set_height'] + $this->y) > $this->PageBreakTrigger && $this->y > $this->tMargin+5 && $currblk['css_set_height'] < ($this->h - ($this->tMargin + $this->bMargin))) { $this->AddPage($this->CurOrientation); } - } - else { $currblk['css_set_height'] = false; } - - - // Added mPDF 3.0 Float DIV - if (isset($prevblk['blockContext'])) { $currblk['blockContext'] = $prevblk['blockContext'] ; } // *CSS-FLOAT* - - if (isset($properties['CLEAR'])) { $this->ClearFloats(strtoupper($properties['CLEAR']), $this->blklvl-1); } // *CSS-FLOAT* - - $container_w = $prevblk['inner_width']; - $bdr = $currblk['border_right']['w']; - $bdl = $currblk['border_left']['w']; - $pdr = $currblk['padding_right']; - $pdl = $currblk['padding_left']; - - if (isset($currblk['css_set_width'])) { $setwidth = $currblk['css_set_width']; } - else { $setwidth = 0; } - -/*-- CSS-FLOAT --*/ - if (isset($properties['FLOAT']) && strtoupper($properties['FLOAT']) == 'RIGHT' && !$this->ColActive) { - // Cancel Keep-Block-together - $currblk['keep_block_together'] = false; - $this->kt_y00 = ''; - $this->keep_block_together = 0; - - $this->blockContext++; - $currblk['blockContext'] = $this->blockContext; - - list($l_exists, $r_exists, $l_max, $r_max, $l_width, $r_width) = $this->GetFloatDivInfo($this->blklvl-1); - - // DIV is too narrow for text to fit! - $maxw = $container_w - $l_width - $r_width; - if (($setwidth + $currblk['margin_right'] + $bdl + $pdl + $bdr + $pdr) > $maxw || ($maxw - ($currblk['margin_right'] + $bdl + $pdl + $bdr + $pdr)) < (2*$this->GetCharWidth('W',false))) { - // Too narrow to fit - try to move down past L or R float - if ($l_max < $r_max && ($setwidth + $currblk['margin_right'] + $bdl + $pdl + $bdr + $pdr) <= ($container_w - $r_width) && (($container_w - $r_width) - ($currblk['margin_right'] + $bdl + $pdl + $bdr + $pdr)) > (2*$this->GetCharWidth('W',false))) { - $this->ClearFloats('LEFT', $this->blklvl-1); - } - else if ($r_max < $l_max && ($setwidth + $currblk['margin_right'] + $bdl + $pdl + $bdr + $pdr) <= ($container_w - $l_width) && (($container_w - $l_width) - ($currblk['margin_right'] + $bdl + $pdl + $bdr + $pdr)) > (2*$this->GetCharWidth('W',false))) { - $this->ClearFloats('RIGHT', $this->blklvl-1); - } - else { $this->ClearFloats('BOTH', $this->blklvl-1); } - list($l_exists, $r_exists, $l_max, $r_max, $l_width, $r_width) = $this->GetFloatDivInfo($this->blklvl-1); - } - - if ($r_exists) { $currblk['margin_right'] += $r_width; } - - $currblk['float'] = 'R'; - $currblk['float_start_y'] = $this->y; - if ($currblk['css_set_width']) { - $currblk['margin_left'] = $container_w - ($setwidth + $bdl + $pdl + $bdr + $pdr + $currblk['margin_right']); - $currblk['float_width'] = ($setwidth + $bdl + $pdl + $bdr + $pdr + $currblk['margin_right']); - } - else { - // *** If no width set - would need to buffer and keep track of max width, then Right-align if not full width - // and do borders and backgrounds - For now - just set to maximum width left - - if ($l_exists) { $currblk['margin_left'] += $l_width; } - $currblk['css_set_width'] = $container_w - ($currblk['margin_left'] + $currblk['margin_right'] + $bdl + $pdl + $bdr + $pdr); - - $currblk['float_width'] = ($currblk['css_set_width'] + $bdl + $pdl + $bdr + $pdr + $currblk['margin_right']); - } - } - else if (isset($properties['FLOAT']) && strtoupper($properties['FLOAT']) == 'LEFT' && !$this->ColActive) { - // Cancel Keep-Block-together - $currblk['keep_block_together'] = false; - $this->kt_y00 = ''; - $this->keep_block_together = 0; - - $this->blockContext++; - $currblk['blockContext'] = $this->blockContext; - - list($l_exists, $r_exists, $l_max, $r_max, $l_width, $r_width) = $this->GetFloatDivInfo($this->blklvl-1); - - // DIV is too narrow for text to fit! - $maxw = $container_w - $l_width - $r_width; - if (($setwidth + $currblk['margin_left'] + $bdl + $pdl + $bdr + $pdr) > $maxw || ($maxw - ($currblk['margin_left'] + $bdl + $pdl + $bdr + $pdr)) < (2*$this->GetCharWidth('W',false))) { - // Too narrow to fit - try to move down past L or R float - if ($l_max < $r_max && ($setwidth + $currblk['margin_right'] + $bdl + $pdl + $bdr + $pdr) <= ($container_w - $r_width) && (($container_w - $r_width) - ($currblk['margin_right'] + $bdl + $pdl + $bdr + $pdr)) > (2*$this->GetCharWidth('W',false))) { - $this->ClearFloats('LEFT', $this->blklvl-1); - } - else if ($r_max < $l_max && ($setwidth + $currblk['margin_right'] + $bdl + $pdl + $bdr + $pdr) <= ($container_w - $l_width) && (($container_w - $l_width) - ($currblk['margin_right'] + $bdl + $pdl + $bdr + $pdr)) > (2*$this->GetCharWidth('W',false))) { - $this->ClearFloats('RIGHT', $this->blklvl-1); - } - else { $this->ClearFloats('BOTH', $this->blklvl-1); } - list($l_exists, $r_exists, $l_max, $r_max, $l_width, $r_width) = $this->GetFloatDivInfo($this->blklvl-1); - } - - if ($l_exists) { $currblk['margin_left'] += $l_width; } - - $currblk['float'] = 'L'; - $currblk['float_start_y'] = $this->y; - if ($setwidth) { - $currblk['margin_right'] = $container_w - ($setwidth + $bdl + $pdl + $bdr + $pdr + $currblk['margin_left']); - $currblk['float_width'] = ($setwidth + $bdl + $pdl + $bdr + $pdr + $currblk['margin_left']); - } - else { - // *** If no width set - would need to buffer and keep track of max width, then Right-align if not full width - // and do borders and backgrounds - For now - just set to maximum width left - - if ($r_exists) { $currblk['margin_right'] += $r_width; } - $currblk['css_set_width'] = $container_w - ($currblk['margin_left'] + $currblk['margin_right'] + $bdl + $pdl + $bdr + $pdr); - - $currblk['float_width'] = ($currblk['css_set_width'] + $bdl + $pdl + $bdr + $pdr + $currblk['margin_left']); - } - } - - else { - // Don't allow overlap - if floats present - adjust padding to avoid overlap with Floats - list($l_exists, $r_exists, $l_max, $r_max, $l_width, $r_width) = $this->GetFloatDivInfo($this->blklvl-1); - $maxw = $container_w - $l_width - $r_width; - if (($setwidth + $currblk['margin_left'] + $currblk['margin_right'] + $bdl + $pdl + $bdr + $pdr) > $maxw || ($maxw - ($currblk['margin_right'] + $currblk['margin_left'] + $bdl + $pdl + $bdr + $pdr)) < (2*$this->GetCharWidth('W',false))) { - // Too narrow to fit - try to move down past L or R float - if ($l_max < $r_max && ($setwidth + $currblk['margin_left'] + $currblk['margin_right'] + $bdl + $pdl + $bdr + $pdr) <= ($container_w - $r_width) && (($container_w - $r_width) - ($currblk['margin_right'] + $currblk['margin_left'] + $bdl + $pdl + $bdr + $pdr)) > (2*$this->GetCharWidth('W',false))) { - $this->ClearFloats('LEFT', $this->blklvl-1); - } - else if ($r_max < $l_max && ($setwidth + $currblk['margin_left'] + $currblk['margin_right'] + $bdl + $pdl + $bdr + $pdr) <= ($container_w - $l_width) && (($container_w - $l_width) - ($currblk['margin_right'] + $currblk['margin_left'] + $bdl + $pdl + $bdr + $pdr)) > (2*$this->GetCharWidth('W',false))) { - $this->ClearFloats('RIGHT', $this->blklvl-1); - } - else { $this->ClearFloats('BOTH', $this->blklvl-1); } - list($l_exists, $r_exists, $l_max, $r_max, $l_width, $r_width) = $this->GetFloatDivInfo($this->blklvl-1); - } - if ($r_exists) { $currblk['padding_right'] = max(($r_width-$currblk['margin_right']-$bdr), $pdr); } - if ($l_exists) { $currblk['padding_left'] = max(($l_width-$currblk['margin_left']-$bdl), $pdl); } - } -/*-- END CSS-FLOAT --*/ - - -/*-- BORDER-RADIUS --*/ - // Automatically increase padding if required for border-radius - if ($this->autoPadding && !$this->ColActive && !$this->keep_block_together) { - if ($currblk['border_radius_TL_H']>$currblk['padding_left'] && $currblk['border_radius_TL_V']>$currblk['padding_top']) { - if ($currblk['border_radius_TL_H']>$currblk['border_radius_TL_V']) { - $this->_borderPadding($currblk['border_radius_TL_H'],$currblk['border_radius_TL_V'], $currblk['padding_left'], $currblk['padding_top']); - } - else { - $this->_borderPadding($currblk['border_radius_TL_V'],$currblk['border_radius_TL_H'], $currblk['padding_top'], $currblk['padding_left']); - } - } - if ($currblk['border_radius_TR_H']>$currblk['padding_right'] && $currblk['border_radius_TR_V']>$currblk['padding_top']) { - if ($currblk['border_radius_TR_H']>$currblk['border_radius_TR_V']) { - $this->_borderPadding($currblk['border_radius_TR_H'],$currblk['border_radius_TR_V'], $currblk['padding_right'], $currblk['padding_top']); - } - else { - $this->_borderPadding($currblk['border_radius_TR_V'],$currblk['border_radius_TR_H'], $currblk['padding_top'], $currblk['padding_right']); - } - } - if ($currblk['border_radius_BL_H']>$currblk['padding_left'] && $currblk['border_radius_BL_V']>$currblk['padding_bottom']) { - if ($currblk['border_radius_BL_H']>$currblk['border_radius_BL_V']) { - $this->_borderPadding($currblk['border_radius_BL_H'],$currblk['border_radius_BL_V'], $currblk['padding_left'], $currblk['padding_bottom']); - } - else { - $this->_borderPadding($currblk['border_radius_BL_V'],$currblk['border_radius_BL_H'], $currblk['padding_bottom'], $currblk['padding_left']); - } - } - if ($currblk['border_radius_BR_H']>$currblk['padding_right'] && $currblk['border_radius_BR_V']>$currblk['padding_bottom']) { - if ($currblk['border_radius_BR_H']>$currblk['border_radius_BR_V']) { - $this->_borderPadding($currblk['border_radius_BR_H'],$currblk['border_radius_BR_V'], $currblk['padding_right'], $currblk['padding_bottom']); - } - else { - $this->_borderPadding($currblk['border_radius_BR_V'],$currblk['border_radius_BR_H'], $currblk['padding_bottom'], $currblk['padding_right']); - } - } - } -/*-- END BORDER-RADIUS --*/ - - - // Hanging indent - if negative indent: ensure padding is >= indent - if(!isset($currblk['text_indent'])) { $currblk['text_indent'] = null; } - if(!isset($currblk['inner_width'])) { $currblk['inner_width'] = null; } - $cbti = $this->ConvertSize($currblk['text_indent'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); - if ($cbti < 0) { - $hangind = -($cbti); - if ($currblk['direction'] == 'rtl') { // *RTL* - $currblk['padding_right'] = max($currblk['padding_right'],$hangind); // *RTL* - } // *RTL* - else { // *RTL* - $currblk['padding_left'] = max($currblk['padding_left'],$hangind); - } // *RTL* - } - - if (isset($currblk['css_set_width'])) { - if (isset($properties['MARGIN-LEFT']) && isset($properties['MARGIN-RIGHT']) && strtolower($properties['MARGIN-LEFT'])=='auto' && strtolower($properties['MARGIN-RIGHT'])=='auto') { - // Try to reduce margins to accomodate - if still too wide, set margin-right/left=0 (reduces width) - $anyextra = $prevblk['inner_width'] - ($currblk['css_set_width'] + $currblk['border_left']['w'] + $currblk['padding_left'] + $currblk['border_right']['w'] + $currblk['padding_right']); - if ($anyextra>0) { - $currblk['margin_left'] = $currblk['margin_right'] = $anyextra /2; - } - else { - $currblk['margin_left'] = $currblk['margin_right'] = 0; - } - } - else if (isset($properties['MARGIN-LEFT']) && strtolower($properties['MARGIN-LEFT'])=='auto') { - // Try to reduce margin-left to accomodate - if still too wide, set margin-left=0 (reduces width) - $currblk['margin_left'] = $prevblk['inner_width'] - ($currblk['css_set_width'] + $currblk['border_left']['w'] + $currblk['padding_left'] + $currblk['border_right']['w'] + $currblk['padding_right'] + $currblk['margin_right']); - if ($currblk['margin_left'] < 0) { - $currblk['margin_left'] = 0; - } - } - else if (isset($properties['MARGIN-RIGHT']) && strtolower($properties['MARGIN-RIGHT'])=='auto') { - // Try to reduce margin-right to accomodate - if still too wide, set margin-right=0 (reduces width) - $currblk['margin_right'] = $prevblk['inner_width'] - ($currblk['css_set_width'] + $currblk['border_left']['w'] + $currblk['padding_left'] + $currblk['border_right']['w'] + $currblk['padding_right'] + $currblk['margin_left']); - if ($currblk['margin_right'] < 0) { - $currblk['margin_right'] = 0; - } - } - else { - if ($currblk['direction'] == 'rtl') { // *RTL* - // Try to reduce margin-left to accomodate - if still too wide, set margin-left=0 (reduces width) - $currblk['margin_left'] = $prevblk['inner_width'] - ($currblk['css_set_width'] + $currblk['border_left']['w'] + $currblk['padding_left'] + $currblk['border_right']['w'] + $currblk['padding_right'] + $currblk['margin_right']); // *RTL* - if ($currblk['margin_left'] < 0) { // *RTL* - $currblk['margin_left'] = 0; // *RTL* - } // *RTL* - } // *RTL* - else { // *RTL* - // Try to reduce margin-right to accomodate - if still too wide, set margin-right=0 (reduces width) - $currblk['margin_right'] = $prevblk['inner_width'] - ($currblk['css_set_width'] + $currblk['border_left']['w'] + $currblk['padding_left'] + $currblk['border_right']['w'] + $currblk['padding_right'] + $currblk['margin_left']); - if ($currblk['margin_right'] < 0) { - $currblk['margin_right'] = 0; - } - } // *RTL* - } - } - - $currblk['outer_left_margin'] = $prevblk['outer_left_margin'] + $currblk['margin_left'] + $prevblk['border_left']['w'] + $prevblk['padding_left']; - $currblk['outer_right_margin'] = $prevblk['outer_right_margin'] + $currblk['margin_right'] + $prevblk['border_right']['w'] + $prevblk['padding_right']; - - $currblk['width'] = $this->pgwidth - ($currblk['outer_right_margin'] + $currblk['outer_left_margin']); - $currblk['inner_width'] = $currblk['width'] - ($currblk['border_left']['w'] + $currblk['padding_left'] + $currblk['border_right']['w'] + $currblk['padding_right']); - - // Check DIV is not now too narrow to fit text - $mw = 2*$this->GetCharWidth('W',false); - if ($currblk['inner_width'] < $mw) { - $currblk['padding_left'] = 0; - $currblk['padding_right'] = 0; - $currblk['border_left']['w'] = 0.2; - $currblk['border_right']['w'] = 0.2; - $currblk['margin_left'] = 0; - $currblk['margin_right'] = 0; - $currblk['outer_left_margin'] = $prevblk['outer_left_margin'] + $currblk['margin_left'] + $prevblk['border_left']['w'] + $prevblk['padding_left']; - $currblk['outer_right_margin'] = $prevblk['outer_right_margin'] + $currblk['margin_right'] + $prevblk['border_right']['w'] + $prevblk['padding_right']; - $currblk['width'] = $this->pgwidth - ($currblk['outer_right_margin'] + $currblk['outer_left_margin']); - $currblk['inner_width'] = $this->pgwidth - ($currblk['outer_right_margin'] + $currblk['outer_left_margin'] + $currblk['border_left']['w'] + $currblk['padding_left'] + $currblk['border_right']['w'] + $currblk['padding_right']); -// if ($currblk['inner_width'] < $mw) { $this->Error("DIV is too narrow for text to fit!"); } - } - - $this->x = $this->lMargin + $currblk['outer_left_margin']; - -/*-- BACKGROUNDS --*/ - if (isset($properties['BACKGROUND-IMAGE']) && $properties['BACKGROUND-IMAGE'] && !$this->kwt && !$this->ColActive && !$this->keep_block_together) { - $ret = $this->SetBackground($properties, $currblk['inner_width']); - if ($ret) { $currblk['background-image'] = $ret; } - } -/*-- END BACKGROUNDS --*/ - -/*-- TABLES --*/ - if ($this->use_kwt && isset($attr['KEEP-WITH-TABLE']) && !$this->ColActive && !$this->keep_block_together) { - $this->kwt = true; - $this->kwt_y0 = $this->y; - $this->kwt_x0 = $this->x; - $this->kwt_height = 0; - $this->kwt_buffer = array(); - $this->kwt_Links = array(); - $this->kwt_Annots = array(); - $this->kwt_moved = false; - $this->kwt_saved = false; - $this->kwt_Reference = array(); - $this->kwt_BMoutlines = array(); - $this->kwt_toc = array(); - } - else { -/*-- END TABLES --*/ - $this->kwt = false; - } // *TABLES* - - //Save x,y coords in case we need to print borders... - $currblk['y0'] = $this->y; - $currblk['x0'] = $this->x; - $currblk['startpage'] = $this->page; - $this->oldy = $this->y; - - $this->lastblocklevelchange = 1 ; - - break; - - case 'HR': - // Added mPDF 3.0 Float DIV - CLEAR - if (isset($attr['STYLE'])) { - $properties = $this->cssmgr->readInlineCSS($attr['STYLE']); - if (isset($properties['CLEAR'])) { $this->ClearFloats(strtoupper($properties['CLEAR']),$this->blklvl); } // *CSS-FLOAT* - } - - $this->ignorefollowingspaces = true; - - $objattr = array(); - $objattr['margin_top'] = 0; - $objattr['margin_bottom'] = 0; - $objattr['margin_left'] = 0; - $objattr['margin_right'] = 0; - $objattr['width'] = 0; - $objattr['height'] = 0; - $objattr['border_top']['w'] = 0; - $objattr['border_bottom']['w'] = 0; - $objattr['border_left']['w'] = 0; - $objattr['border_right']['w'] = 0; - $properties = $this->cssmgr->MergeCSS('',$tag,$attr); - if (isset($properties['MARGIN-TOP'])) { $objattr['margin_top'] = $this->ConvertSize($properties['MARGIN-TOP'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); } - if (isset($properties['MARGIN-BOTTOM'])) { $objattr['margin_bottom'] = $this->ConvertSize($properties['MARGIN-BOTTOM'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); } - if (isset($properties['WIDTH'])) { $objattr['width'] = $this->ConvertSize($properties['WIDTH'],$this->blk[$this->blklvl]['inner_width']); } - else if(isset($attr['WIDTH']) && $attr['WIDTH'] != '') $objattr['width'] = $this->ConvertSize($attr['WIDTH'],$this->blk[$this->blklvl]['inner_width']); - if (isset($properties['TEXT-ALIGN'])) { $objattr['align'] = $align[strtolower($properties['TEXT-ALIGN'])]; } - else if(isset($attr['ALIGN']) && $attr['ALIGN'] != '') $objattr['align'] = $align[strtolower($attr['ALIGN'])]; - - if (isset($properties['MARGIN-LEFT']) && strtolower($properties['MARGIN-LEFT'])=='auto') { - $objattr['align'] = 'R'; - } - if (isset($properties['MARGIN-RIGHT']) && strtolower($properties['MARGIN-RIGHT'])=='auto') { - $objattr['align'] = 'L'; - if (isset($properties['MARGIN-RIGHT']) && strtolower($properties['MARGIN-RIGHT'])=='auto' && isset($properties['MARGIN-LEFT']) && strtolower($properties['MARGIN-LEFT'])=='auto') { - $objattr['align'] = 'C'; - } - } - if (isset($properties['COLOR'])) { $objattr['color'] = $this->ConvertColor($properties['COLOR']); } - else if(isset($attr['COLOR']) && $attr['COLOR'] != '') $objattr['color'] = $this->ConvertColor($attr['COLOR']); - if (isset($properties['HEIGHT'])) { $objattr['linewidth'] = $this->ConvertSize($properties['HEIGHT'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); } - - -/*-- TABLES --*/ - if ($this->tableLevel) { - $objattr['W-PERCENT'] = 100; - if (isset($properties['WIDTH']) && stristr($properties['WIDTH'],'%')) { - $properties['WIDTH'] += 0; //make "90%" become simply "90" - $objattr['W-PERCENT'] = $properties['WIDTH']; - } - if (isset($attr['WIDTH']) && stristr($attr['WIDTH'],'%')) { - $attr['WIDTH'] += 0; //make "90%" become simply "90" - $objattr['W-PERCENT'] = $attr['WIDTH']; - } - } -/*-- END TABLES --*/ - - $objattr['type'] = 'hr'; - $objattr['height'] = $objattr['linewidth'] + $objattr['margin_top'] + $objattr['margin_bottom']; - $e = "\xbb\xa4\xactype=image,objattr=".serialize($objattr)."\xbb\xa4\xac"; - - // Clear properties - tidy up - $properties = array(); - -/*-- TABLES --*/ - // Output it to buffers - if ($this->tableLevel) { - if (!isset($this->cell[$this->row][$this->col]['maxs'])) { - $this->cell[$this->row][$this->col]['maxs'] = $this->cell[$this->row][$this->col]['s']; - } - elseif($this->cell[$this->row][$this->col]['maxs'] < $this->cell[$this->row][$this->col]['s']) { - $this->cell[$this->row][$this->col]['maxs'] = $this->cell[$this->row][$this->col]['s']; - } - $this->cell[$this->row][$this->col]['s'] = 0 ;// reset - $this->_saveCellTextBuffer($e, $this->HREF); - } - else { -/*-- END TABLES --*/ - $this->_saveTextBuffer($e, $this->HREF); - } // *TABLES* - - break; - - -/*-- BARCODES --*/ - - case 'BARCODE': - if(isset($attr['CODE']) && $attr['CODE']) { - $objattr = array(); - $objattr['margin_top'] = 0; - $objattr['margin_bottom'] = 0; - $objattr['margin_left'] = 0; - $objattr['margin_right'] = 0; - $objattr['padding_top'] = 0; - $objattr['padding_bottom'] = 0; - $objattr['padding_left'] = 0; - $objattr['padding_right'] = 0; - $objattr['width'] = 0; - $objattr['height'] = 0; - $objattr['border_top']['w'] = 0; - $objattr['border_bottom']['w'] = 0; - $objattr['border_left']['w'] = 0; - $objattr['border_right']['w'] = 0; - $objattr['code'] = $attr['CODE']; - - if(isset($attr['TYPE'])) { - $objattr['btype'] = trim(strtoupper($attr['TYPE'])); - } - else { $objattr['btype'] = 'EAN13'; } // default - if (preg_match('/^(EAN13|ISBN|ISSN|EAN8|UPCA|UPCE)P([25])$/',$objattr['btype'],$m)) { - $objattr['btype'] = $m[1]; - $objattr['bsupp'] = $m[2]; - if (preg_match('/^(\S+)\s+(.*)$/',$objattr['code'],$mm)) { - $objattr['code'] = $mm[1]; - $objattr['bsupp_code'] = $mm[2]; - } - } - else { $objattr['bsupp'] = 0; } - - if(isset($attr['TEXT']) && $attr['TEXT']==1) { $objattr['showtext'] = 1; } - else { $objattr['showtext'] = 0; } - if(isset($attr['SIZE']) && $attr['SIZE']>0) { $objattr['bsize'] = $attr['SIZE']; } - else { $objattr['bsize'] = 1; } - if(isset($attr['HEIGHT']) && $attr['HEIGHT']>0) { $objattr['bheight'] = $attr['HEIGHT']; } - else { $objattr['bheight'] = 1; } - if(isset($attr['PR']) && $attr['PR']>0) { $objattr['pr_ratio'] = $attr['PR']; } - else { $objattr['pr_ratio'] = ''; } - $properties = $this->cssmgr->MergeCSS('',$tag,$attr); - if(isset($properties ['DISPLAY']) && strtolower($properties ['DISPLAY'])=='none') { - return; - } - if (isset($properties['MARGIN-TOP'])) { $objattr['margin_top']=$this->ConvertSize($properties['MARGIN-TOP'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); } - if (isset($properties['MARGIN-BOTTOM'])) { $objattr['margin_bottom'] = $this->ConvertSize($properties['MARGIN-BOTTOM'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); } - if (isset($properties['MARGIN-LEFT'])) { $objattr['margin_left'] = $this->ConvertSize($properties['MARGIN-LEFT'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); } - if (isset($properties['MARGIN-RIGHT'])) { $objattr['margin_right'] = $this->ConvertSize($properties['MARGIN-RIGHT'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); } - - if (isset($properties['PADDING-TOP'])) { $objattr['padding_top']=$this->ConvertSize($properties['PADDING-TOP'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); } - if (isset($properties['PADDING-BOTTOM'])) { $objattr['padding_bottom'] = $this->ConvertSize($properties['PADDING-BOTTOM'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); } - if (isset($properties['PADDING-LEFT'])) { $objattr['padding_left'] = $this->ConvertSize($properties['PADDING-LEFT'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); } - if (isset($properties['PADDING-RIGHT'])) { $objattr['padding_right'] = $this->ConvertSize($properties['PADDING-RIGHT'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); } - - if (isset($properties['BORDER-TOP'])) { $objattr['border_top'] = $this->border_details($properties['BORDER-TOP']); } - if (isset($properties['BORDER-BOTTOM'])) { $objattr['border_bottom'] = $this->border_details($properties['BORDER-BOTTOM']); } - if (isset($properties['BORDER-LEFT'])) { $objattr['border_left'] = $this->border_details($properties['BORDER-LEFT']); } - if (isset($properties['BORDER-RIGHT'])) { $objattr['border_right'] = $this->border_details($properties['BORDER-RIGHT']); } - - if (isset($properties['VERTICAL-ALIGN'])) { $objattr['vertical-align'] = $align[strtolower($properties['VERTICAL-ALIGN'])]; } - if (isset($properties['COLOR']) && $properties['COLOR'] != '') { $objattr['color'] = $this->ConvertColor($properties['COLOR']); } - else { $objattr['color'] = false; } - if (isset($properties['BACKGROUND-COLOR']) && $properties['BACKGROUND-COLOR'] != '') { $objattr['bgcolor'] = $this->ConvertColor($properties['BACKGROUND-COLOR']); } - else { $objattr['bgcolor'] = false; } - - if (!class_exists('PDFBarcode', false)) { - include(_MPDF_PATH.'classes/barcode.php'); - } - $this->barcode = new PDFBarcode(); - - if ($objattr['btype'] == 'EAN13' || $objattr['btype'] == 'ISBN' || $objattr['btype'] == 'ISSN' || $objattr['btype'] == 'UPCA' || $objattr['btype'] == 'UPCE' || $objattr['btype'] == 'EAN8') { - $code = preg_replace('/\-/','',$objattr['code']); - if ($objattr['btype'] == 'ISSN' || $objattr['btype'] == 'ISBN') { - $arrcode = $this->barcode->getBarcodeArray($code, 'EAN13'); - } - else { $arrcode = $this->barcode->getBarcodeArray($code, $objattr['btype'] ); } - if ($arrcode === false) { $this->Error('Error in barcode string.'); } - - if ($objattr['bsupp'] == 2 || $objattr['bsupp'] == 5) { // EAN-2 or -5 Supplement - $supparrcode = $this->barcode->getBarcodeArray($objattr['bsupp_code'], 'EAN'.$objattr['bsupp'] ); - $w = ($arrcode["maxw"] + $arrcode['lightmL'] + $arrcode['lightmR'] + $supparrcode["maxw"] + $supparrcode['sepM']) * $arrcode['nom-X'] * $objattr['bsize']; - } - else { - $w = ($arrcode["maxw"] + $arrcode['lightmL'] + $arrcode['lightmR']) * $arrcode['nom-X'] * $objattr['bsize']; - } - $h = $arrcode['nom-H'] * $objattr['bsize'] * $objattr['bheight']; - // Add height for ISBN string + margin from top of bars - if (($objattr['showtext'] && $objattr['btype'] == 'EAN13') || $objattr['btype'] == 'ISBN' || $objattr['btype'] == 'ISSN') { - $tisbnm = 1.5 * $objattr['bsize']; // Top margin between TOP TEXT (isbn - if shown) & bars - $isbn_fontsize = 2.1 * $objattr['bsize']; - $h += $isbn_fontsize + $tisbnm ; - } - } - // QR-code - else if ($objattr['btype'] == 'QR') { - $w = $h = $objattr['bsize']*25; // Factor of 25mm (default) - $objattr['errorlevel'] = 'L'; - if (isset($attr['ERROR'])) { $objattr['errorlevel'] = $attr['ERROR']; } - } - else if ($objattr['btype'] == 'IMB' || $objattr['btype'] == 'RM4SCC' || $objattr['btype'] == 'KIX' || $objattr['btype'] == 'POSTNET' || $objattr['btype'] == 'PLANET') { - $arrcode = $this->barcode->getBarcodeArray($objattr['code'], $objattr['btype'] ); - if ($arrcode === false) { $this->Error('Error in barcode string.'); } - $w = ($arrcode["maxw"] * $arrcode['nom-X'] * $objattr['bsize']) + $arrcode['quietL'] + $arrcode['quietR']; - $h = ($arrcode['nom-H'] * $objattr['bsize']) + (2*$arrcode['quietTB']); - } - else if (in_array($objattr['btype'], array('C128A','C128B','C128C','EAN128A','EAN128B','EAN128C','C39','C39+','C39E','C39E+','S25','S25+','I25','I25+','I25B','I25B+','C93','MSI','MSI+','CODABAR','CODE11'))) { - $arrcode = $this->barcode->getBarcodeArray($objattr['code'], $objattr['btype'], $objattr['pr_ratio'] ); - if ($arrcode === false) { $this->Error('Error in barcode string.'); } - $w = ($arrcode["maxw"] + $arrcode['lightmL'] + $arrcode['lightmR']) * $arrcode['nom-X'] * $objattr['bsize']; - $h = ((2*$arrcode['lightTB'] * $arrcode['nom-X']) + $arrcode['nom-H']) * $objattr['bsize'] * $objattr['bheight']; - } - else { break; } - - $extraheight = $objattr['padding_top'] + $objattr['padding_bottom'] + $objattr['margin_top'] + $objattr['margin_bottom'] + $objattr['border_top']['w'] + $objattr['border_bottom']['w']; - $extrawidth = $objattr['padding_left'] + $objattr['padding_right'] + $objattr['margin_left'] + $objattr['margin_right'] + $objattr['border_left']['w'] + $objattr['border_right']['w']; - - $objattr['type'] = 'barcode'; - $objattr['height'] = $h + $extraheight; - $objattr['width'] = $w + $extrawidth; - $objattr['barcode_height'] = $h; - $objattr['barcode_width'] = $w; -/*-- CSS-IMAGE-FLOAT --*/ - if (!$this->ColActive && !$this->tableLevel && !$this->listlvl && !$this->kwt && !$this->keep_block_together) { - if (isset($properties['FLOAT']) && (strtoupper($properties['FLOAT']) == 'RIGHT' || strtoupper($properties['FLOAT']) == 'LEFT')) { - $objattr['float'] = substr(strtoupper($properties['FLOAT']),0,1); - } - } -/*-- END CSS-IMAGE-FLOAT --*/ - - $e = "\xbb\xa4\xactype=barcode,objattr=".serialize($objattr)."\xbb\xa4\xac"; - - // Clear properties - tidy up - $properties = array(); - -/*-- TABLES --*/ - // Output it to buffers - if ($this->tableLevel) { - $this->_saveCellTextBuffer($e, $this->HREF); - $this->cell[$this->row][$this->col]['s'] += $objattr['width'] ; - } - else { -/*-- END TABLES --*/ - $this->_saveTextBuffer($e, $this->HREF); - - } // *TABLES* - } - break; -/*-- END BARCODES --*/ - - - // *********** FORM ELEMENTS ******************** - -/*-- FORMS --*/ - case 'SELECT': - $this->lastoptionaltag = ''; // Save current HTML specified optional endtag - $this->InlineProperties[$tag] = $this->saveInlineProperties(); - $properties = $this->cssmgr->MergeCSS('',$tag,$attr); - if (isset($properties['FONT-FAMILY'])) { - $this->SetFont($properties['FONT-FAMILY'],$this->FontStyle,0,false); - } - if (isset($properties['FONT-SIZE'])) { - $mmsize = $this->ConvertSize($properties['FONT-SIZE'],$this->default_font_size/_MPDFK); - $this->SetFontSize($mmsize*_MPDFK,false); - } - if (isset($attr['SPELLCHECK']) && strtolower($attr['SPELLCHECK'])=='true') { - $this->selectoption['SPELLCHECK'] = true; - } - - if (isset($properties['COLOR'])) { $this->selectoption['COLOR'] = $this->ConvertColor($properties['COLOR']); } - $this->specialcontent = "type=select"; - if(isset($attr['DISABLED'])) { $this->selectoption['DISABLED'] = $attr['DISABLED']; } - if(isset($attr['READONLY'])) { $this->selectoption['READONLY'] = $attr['READONLY']; } - if(isset($attr['REQUIRED'])) { $this->selectoption['REQUIRED'] = $attr['REQUIRED']; } - if(isset($attr['EDITABLE'])) { $this->selectoption['EDITABLE'] = $attr['EDITABLE']; } - if(isset($attr['TITLE'])) { $this->selectoption['TITLE'] = $attr['TITLE']; } - if(isset($attr['MULTIPLE'])) { $this->selectoption['MULTIPLE'] = $attr['MULTIPLE']; } - if(isset($attr['SIZE']) && $attr['SIZE']>1) { $this->selectoption['SIZE'] = $attr['SIZE']; } - if ($this->useActiveForms) { - if(isset($attr['NAME'])) { $this->selectoption['NAME'] = $attr['NAME']; } - if (isset($attr['ONCHANGE'])) { $this->selectoption['ONCHANGE'] = $attr['ONCHANGE']; } - } - - $properties = array(); - break; - - case 'OPTION': - $this->lastoptionaltag = 'OPTION'; // Save current HTML specified optional endtag - $this->selectoption['ACTIVE'] = true; - $this->selectoption['currentSEL'] = false; - if (empty($this->selectoption)) { - $this->selectoption['MAXWIDTH'] = ''; - $this->selectoption['SELECTED'] = ''; - } - if (isset($attr['SELECTED'])) { - $this->selectoption['SELECTED'] = ''; - $this->selectoption['currentSEL'] = true; - } - if(isset($attr['VALUE'])) { - $attr['VALUE'] = strcode2utf($attr['VALUE']); - $attr['VALUE'] = $this->lesser_entity_decode($attr['VALUE']); - if ($this->onlyCoreFonts) - $attr['VALUE'] = mb_convert_encoding($attr['VALUE'], $this->mb_enc,'UTF-8'); - } - $this->selectoption['currentVAL'] = $attr['VALUE']; - break; - - case 'TEXTAREA': - $objattr = array(); - $objattr['margin_top'] = 0; - $objattr['margin_bottom'] = 0; - $objattr['margin_left'] = 0; - $objattr['margin_right'] = 0; - $objattr['width'] = 0; - $objattr['height'] = 0; - $objattr['border_top']['w'] = 0; - $objattr['border_bottom']['w'] = 0; - $objattr['border_left']['w'] = 0; - $objattr['border_right']['w'] = 0; - if(isset($attr['DISABLED'])) { $objattr['disabled'] = true; } - if(isset($attr['READONLY'])) { $objattr['readonly'] = true; } - if(isset($attr['REQUIRED'])) { $objattr['required'] = true; } - if(isset($attr['SPELLCHECK']) && strtolower($attr['SPELLCHECK'])=='true') { $objattr['spellcheck'] = true; } - if(isset($attr['TITLE'])) { $objattr['title'] = $attr['TITLE']; } - if ($this->onlyCoreFonts) - $objattr['title'] = mb_convert_encoding($objattr['title'], $this->mb_enc,'UTF-8'); - if ($this->useActiveForms) { - if(isset($attr['NAME'])) { $objattr['fieldname'] = $attr['NAME']; } - $this->form->form_element_spacing['textarea']['outer']['v'] = 0; - $this->form->form_element_spacing['textarea']['inner']['v'] = 0; - if (isset($attr['ONCALCULATE'])) { $objattr['onCalculate'] = $attr['ONCALCULATE']; } - else if (isset($attr['ONCHANGE'])) { $objattr['onCalculate'] = $attr['ONCHANGE']; } - if (isset($attr['ONVALIDATE'])) { $objattr['onValidate'] = $attr['ONVALIDATE']; } - if (isset($attr['ONKEYSTROKE'])) { $objattr['onKeystroke'] = $attr['ONKEYSTROKE']; } - if (isset($attr['ONFORMAT'])) { $objattr['onFormat'] = $attr['ONFORMAT']; } - } - $this->InlineProperties[$tag] = $this->saveInlineProperties(); - $properties = $this->cssmgr->MergeCSS('',$tag,$attr); - if (isset($properties['FONT-FAMILY'])) { - $this->SetFont($properties['FONT-FAMILY'],'',0,false); - } - if (isset($properties['FONT-SIZE'])) { - $mmsize = $this->ConvertSize($properties['FONT-SIZE'],$this->default_font_size/_MPDFK); - $this->SetFontSize($mmsize*_MPDFK,false); - } - if (isset($properties['COLOR'])) { $objattr['color'] = $this->ConvertColor($properties['COLOR']); } - $objattr['fontfamily'] = $this->FontFamily; - $objattr['fontsize'] = $this->FontSizePt; - if ($this->useActiveForms) { - if(isset($properties['TEXT-ALIGN'])) { $objattr['text_align'] = $align[strtolower($properties['TEXT-ALIGN'])]; } - else if(isset($attr['ALIGN'])) { $objattr['text_align'] = $align[strtolower($attr['ALIGN'])]; } - if (isset($properties['OVERFLOW']) && strtolower($properties['OVERFLOW'])=='hidden') { $objattr['donotscroll'] = true; } - if (isset($properties['BORDER-TOP-COLOR'])) { $objattr['border-col'] = $this->ConvertColor($properties['BORDER-TOP-COLOR']); } - if (isset($properties['BACKGROUND-COLOR'])) { $objattr['background-col'] = $this->ConvertColor($properties['BACKGROUND-COLOR']); } - } - $this->SetLineHeight('',$this->form->textarea_lineheight); - $formLineHeight = $this->lineheight; - - $w = 0; - $h = 0; - if(isset($properties['WIDTH'])) $w = $this->ConvertSize($properties['WIDTH'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); - if(isset($properties['HEIGHT'])) $h = $this->ConvertSize($properties['HEIGHT'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); - if ($properties['VERTICAL-ALIGN']) { $objattr['vertical-align'] = $align[strtolower($properties['VERTICAL-ALIGN'])]; } - - $colsize = 20; //HTML default value - $rowsize = 2; //HTML default value - if (isset($attr['COLS'])) $colsize = intval($attr['COLS']); - if (isset($attr['ROWS'])) $rowsize = intval($attr['ROWS']); - - $charsize = $this->GetCharWidth('w',false); - if ($w) { $colsize = round(($w-($this->form->form_element_spacing['textarea']['outer']['h']*2)-($this->form->form_element_spacing['textarea']['inner']['h']*2))/$charsize); } - if ($h) { $rowsize = round(($h-($this->form->form_element_spacing['textarea']['outer']['v']*2)-($this->form->form_element_spacing['textarea']['inner']['v']*2))/$formLineHeight); } - - $objattr['type'] = 'textarea'; - $objattr['width'] = ($colsize * $charsize) + ($this->form->form_element_spacing['textarea']['outer']['h']*2)+($this->form->form_element_spacing['textarea']['inner']['h']*2); - $objattr['height'] = ($rowsize * $formLineHeight) + ($this->form->form_element_spacing['textarea']['outer']['v']*2)+($this->form->form_element_spacing['textarea']['inner']['v']*2); - $objattr['rows'] = $rowsize; - $objattr['cols'] = $colsize; - - $this->specialcontent = serialize($objattr); - - if ($this->tableLevel) { // *TABLES* - $this->cell[$this->row][$this->col]['s'] += $objattr['width'] ; // *TABLES* - } // *TABLES* - - // Clear properties - tidy up - $properties = array(); - break; - - - - // *********** FORM - INPUT ******************** - - case 'INPUT': - if (!isset($attr['TYPE'])) $attr['TYPE'] == 'TEXT'; - $objattr = array(); - $objattr['margin_top'] = 0; - $objattr['margin_bottom'] = 0; - $objattr['margin_left'] = 0; - $objattr['margin_right'] = 0; - $objattr['width'] = 0; - $objattr['height'] = 0; - $objattr['border_top']['w'] = 0; - $objattr['border_bottom']['w'] = 0; - $objattr['border_left']['w'] = 0; - $objattr['border_right']['w'] = 0; - $objattr['type'] = 'input'; - if(isset($attr['DISABLED'])) { $objattr['disabled'] = true; } - if(isset($attr['READONLY'])) { $objattr['readonly'] = true; } - if(isset($attr['REQUIRED'])) { $objattr['required'] = true; } - if(isset($attr['SPELLCHECK']) && strtolower($attr['SPELLCHECK'])=='true') { $objattr['spellcheck'] = true; } - if(isset($attr['TITLE'])) { $objattr['title'] = $attr['TITLE']; } - else if(isset($attr['ALT'])) { $objattr['title'] = $attr['ALT']; } - else $objattr['title'] = ''; - $objattr['title'] = strcode2utf($objattr['title']); - $objattr['title'] = $this->lesser_entity_decode($objattr['title']); - if ($this->onlyCoreFonts) - $objattr['title'] = mb_convert_encoding($objattr['title'], $this->mb_enc,'UTF-8'); - if ($this->useActiveForms) { - if(isset($attr['NAME'])) { $objattr['fieldname'] = $attr['NAME']; } - } - if(isset($attr['VALUE'])) { - $attr['VALUE'] = strcode2utf($attr['VALUE']); - $attr['VALUE'] = $this->lesser_entity_decode($attr['VALUE']); - if ($this->onlyCoreFonts) - $attr['VALUE'] = mb_convert_encoding($attr['VALUE'], $this->mb_enc,'UTF-8'); - $objattr['value'] = $attr['VALUE']; - } - - $this->InlineProperties[$tag] = $this->saveInlineProperties(); - $properties = $this->cssmgr->MergeCSS('',$tag,$attr); - $objattr['vertical-align'] = ''; - - if (isset($properties['FONT-FAMILY'])) { - $this->SetFont($properties['FONT-FAMILY'],$this->FontStyle,0,false); - } - if (isset($properties['FONT-SIZE'])) { - $mmsize = $this->ConvertSize($properties['FONT-SIZE'],($this->default_font_size/_MPDFK)); - $this->SetFontSize($mmsize*_MPDFK,false); - } - if (isset($properties['COLOR'])) { $objattr['color'] = $this->ConvertColor($properties['COLOR']); } - $objattr['fontfamily'] = $this->FontFamily; - $objattr['fontsize'] = $this->FontSizePt; - if ($this->useActiveForms) { - if(isset($attr['ALIGN'])) { $objattr['text_align'] = $align[strtolower($attr['ALIGN'])]; } - else if(isset($properties['TEXT-ALIGN'])) { $objattr['text_align'] = $align[strtolower($properties['TEXT-ALIGN'])]; } - if (isset($properties['BORDER-TOP-COLOR'])) { $objattr['border-col'] = $this->ConvertColor($properties['BORDER-TOP-COLOR']); } - if (isset($properties['BACKGROUND-COLOR'])) { $objattr['background-col'] = $this->ConvertColor($properties['BACKGROUND-COLOR']); } - } - - $type = ''; - $texto=''; - $height = $this->FontSize; - $width = 0; - $spacesize = $this->GetCharWidth(' ',false); - - $w = 0; - if(isset($properties['WIDTH'])) $w = $this->ConvertSize($properties['WIDTH'],$this->blk[$this->blklvl]['inner_width']); - - if ($properties['VERTICAL-ALIGN']) { $objattr['vertical-align'] = $align[strtolower($properties['VERTICAL-ALIGN'])]; } - - switch(strtoupper($attr['TYPE'])){ - case 'HIDDEN': - $this->ignorefollowingspaces = true; //Eliminate exceeding left-side spaces - if ($this->useActiveForms) { - $this->form->SetFormText( 0, 0, $objattr['fieldname'], $objattr['value'], $objattr['value'], '', 0, '', true ); - } - if ($this->InlineProperties[$tag]) { $this->restoreInlineProperties($this->InlineProperties[$tag]); } - unset($this->InlineProperties[$tag]); - break 2; - case 'CHECKBOX': //Draw Checkbox - $type = 'CHECKBOX'; - if (isset($attr['CHECKED'])) { $objattr['checked'] = true; } - else { $objattr['checked'] = false; } - $width = $this->FontSize; - $height = $this->FontSize; - break; - - case 'RADIO': //Draw Radio button - $type = 'RADIO'; - if (isset($attr['CHECKED'])) $objattr['checked'] = true; - $width = $this->FontSize; - $height = $this->FontSize; - break; - -/*-- IMAGES-CORE --*/ - case 'IMAGE': // Draw an Image button - if(isset($attr['SRC'])) { - $type = 'IMAGE'; - $srcpath = $attr['SRC']; - $orig_srcpath = $attr['ORIG_SRC']; - // VSPACE and HSPACE converted to margins in MergeCSS - if (isset($properties['MARGIN-TOP'])) { $objattr['margin_top']=$this->ConvertSize($properties['MARGIN-TOP'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); } - if (isset($properties['MARGIN-BOTTOM'])) { $objattr['margin_bottom'] = $this->ConvertSize($properties['MARGIN-BOTTOM'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); } - if (isset($properties['MARGIN-LEFT'])) { $objattr['margin_left'] = $this->ConvertSize($properties['MARGIN-LEFT'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); } - if (isset($properties['MARGIN-RIGHT'])) { $objattr['margin_right'] = $this->ConvertSize($properties['MARGIN-RIGHT'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); } - - - if (isset($properties['BORDER-TOP'])) { $objattr['border_top'] = $this->border_details($properties['BORDER-TOP']); } - if (isset($properties['BORDER-BOTTOM'])) { $objattr['border_bottom'] = $this->border_details($properties['BORDER-BOTTOM']); } - if (isset($properties['BORDER-LEFT'])) { $objattr['border_left'] = $this->border_details($properties['BORDER-LEFT']); } - if (isset($properties['BORDER-RIGHT'])) { $objattr['border_right'] = $this->border_details($properties['BORDER-RIGHT']); } - - $objattr['padding_top'] = 0; - $objattr['padding_bottom'] = 0; - $objattr['padding_left'] = 0; - $objattr['padding_right'] = 0; - - if (isset($properties['VERTICAL-ALIGN'])) { $objattr['vertical-align'] = $align[strtolower($properties['VERTICAL-ALIGN'])]; } - - $w = 0; - $h = 0; - if(isset($properties['WIDTH'])) $w = $this->ConvertSize($properties['WIDTH'],$this->blk[$this->blklvl]['inner_width']); - if(isset($properties['HEIGHT'])) $h = $this->ConvertSize($properties['HEIGHT'],$this->blk[$this->blklvl]['inner_width']); - - $extraheight = $objattr['margin_top'] + $objattr['margin_bottom'] + $objattr['border_top']['w'] + $objattr['border_bottom']['w']; - $extrawidth = $objattr['margin_left'] + $objattr['margin_right'] + $objattr['border_left']['w'] + $objattr['border_right']['w']; - - // Image file - $info=$this->_getImage($srcpath, true, true, $orig_srcpath); - if(!$info) { - $info = $this->_getImage($this->noImageFile); - if ($info) { - $srcpath = $this->noImageFile; - $w = ($info['w'] * (25.4/$this->dpi)); - $h = ($info['h'] * (25.4/$this->dpi)); - } - } - if(!$info) break; - if ($info['cs']=='Indexed') { $objattr['Indexed'] = true; } - $objattr['file'] = $srcpath; - //Default width and height calculation if needed - if($w==0 and $h==0) { -/*-- IMAGES-WMF --*/ - if ($info['type']=='wmf') { - // WMF units are twips (1/20pt) - // divide by 20 to get points - // divide by k to get user units - $w = abs($info['w'])/(20*_MPDFK); - $h = abs($info['h']) / (20*_MPDFK); - } - else -/*-- END IMAGES-WMF --*/ - if ($info['type']=='svg') { - // SVG units are pixels - $w = abs($info['w'])/_MPDFK; - $h = abs($info['h'])/_MPDFK; - } - else { - //Put image at default image dpi - $w=($info['w']/_MPDFK) * (72/$this->img_dpi); - $h=($info['h']/_MPDFK) * (72/$this->img_dpi); - } - if (isset($properties['IMAGE-RESOLUTION'])) { - if (preg_match('/from-image/i', $properties['IMAGE-RESOLUTION']) && isset($info['set-dpi']) && $info['set-dpi']>0) { - $w *= $this->img_dpi / $info['set-dpi']; - $h *= $this->img_dpi / $info['set-dpi']; - } - else if (preg_match('/(\d+)dpi/i', $properties['IMAGE-RESOLUTION'], $m)) { - $dpi = $m[1]; - if ($dpi > 0) { - $w *= $this->img_dpi / $dpi; - $h *= $this->img_dpi / $dpi; - } - } - } - } - // IF WIDTH OR HEIGHT SPECIFIED - if($w==0) $w=$h*$info['w']/$info['h']; - if($h==0) $h=$w*$info['h']/$info['w']; - // Resize to maximum dimensions of page - $maxWidth = $this->blk[$this->blklvl]['inner_width']; - $maxHeight = $this->h - ($this->tMargin + $this->bMargin + 10) ; - if ($this->fullImageHeight) { $maxHeight = $this->fullImageHeight; } - if (($w + $extrawidth) > ($maxWidth + 0.0001) ) { // mPDF 5.7.4 0.0001 to allow for rounding errors when w==maxWidth - $w = $maxWidth - $extrawidth; - $h=$w*$info['h']/$info['w']; - } - if ($h + $extraheight > $maxHeight ) { - $h = $maxHeight - $extraheight; - $w=$h*$info['w']/$info['h']; - } - $height = $h + $extraheight; - $width = $w + $extrawidth; - $objattr['type'] = 'image'; - $objattr['itype'] = $info['type']; - $objattr['orig_h'] = $info['h']; - $objattr['orig_w'] = $info['w']; -/*-- IMAGES-WMF --*/ - if ($info['type']=='wmf') { - $objattr['wmf_x'] = $info['x']; - $objattr['wmf_y'] = $info['y']; - } - else -/*-- END IMAGES-WMF --*/ - if ($info['type']=='svg') { - $objattr['wmf_x'] = $info['x']; - $objattr['wmf_y'] = $info['y']; - } - $objattr['height'] = $h + $extraheight; - $objattr['width'] = $w + $extrawidth; - - $objattr['image_height'] = $h; - $objattr['image_width'] = $w; - $objattr['ID'] = $info['i']; - $texto = 'X'; - if ($this->useActiveForms) { - if (isset($attr['ONCLICK'])) { $objattr['onClick'] = $attr['ONCLICK']; } - $objattr['type'] = 'input'; - $type = 'IMAGE'; - } - break; - } -/*-- END IMAGES-CORE --*/ - - case 'BUTTON': // Draw a button - case 'SUBMIT': - case 'RESET': - $type = strtoupper($attr['TYPE']); - if ($type=='IMAGE') { $type = 'BUTTON'; } // src path not found - if(isset($attr['NOPRINT'])) { $objattr['noprint'] = true; } - if (!isset($attr['VALUE'])) { - $objattr['value'] = ucfirst(strtolower($type)); - } - - $texto = " " . $objattr['value'] . " "; - $width = $this->GetStringWidth($texto) + ($this->form->form_element_spacing['button']['outer']['h']*2)+($this->form->form_element_spacing['button']['inner']['h']*2); - $height = $this->FontSize + ($this->form->form_element_spacing['button']['outer']['v']*2)+($this->form->form_element_spacing['button']['inner']['v']*2); - if ($this->useActiveForms) { - if (isset($attr['ONCLICK'])) { $objattr['onClick'] = $attr['ONCLICK']; } - } - break; - - case 'PASSWORD': - case 'TEXT': - default: - if ($type == '') { $type = 'TEXT'; } - if(strtoupper($attr['TYPE'])=='PASSWORD') { $type = 'PASSWORD'; } - if (isset($attr['VALUE'])) { - if ($type == 'PASSWORD') { - $num_stars = mb_strlen($attr['VALUE'],$this->mb_enc ); - $texto = str_repeat('*',$num_stars); - } - else { $texto = $attr['VALUE']; } - } - $xw = ($this->form->form_element_spacing['input']['outer']['h']*2)+($this->form->form_element_spacing['input']['inner']['h']*2); - $xh = ($this->form->form_element_spacing['input']['outer']['v']*2)+($this->form->form_element_spacing['input']['inner']['v']*2); - if ($w) { $width = $w + $xw; } - else { $width = (20 * $spacesize) + $xw; } // Default width in chars - if (isset($attr['SIZE']) and ctype_digit($attr['SIZE']) ) $width = ($attr['SIZE'] * $spacesize) + $xw; - $height = $this->FontSize + $xh; - if (isset($attr['MAXLENGTH']) and ctype_digit($attr['MAXLENGTH']) ) $objattr['maxlength'] = $attr['MAXLENGTH']; - if ($this->useActiveForms) { - if (isset($attr['ONCALCULATE'])) { $objattr['onCalculate'] = $attr['ONCALCULATE']; } - else if (isset($attr['ONCHANGE'])) { $objattr['onCalculate'] = $attr['ONCHANGE']; } - if (isset($attr['ONVALIDATE'])) { $objattr['onValidate'] = $attr['ONVALIDATE']; } - if (isset($attr['ONKEYSTROKE'])) { $objattr['onKeystroke'] = $attr['ONKEYSTROKE']; } - if (isset($attr['ONFORMAT'])) { $objattr['onFormat'] = $attr['ONFORMAT']; } - } - break; - } - - $objattr['subtype'] = $type; - $objattr['text'] = $texto; - $objattr['width'] = $width; - $objattr['height'] = $height; - $e = "\xbb\xa4\xactype=input,objattr=".serialize($objattr)."\xbb\xa4\xac"; - - // Clear properties - tidy up - $properties = array(); - -/*-- TABLES --*/ - // Output it to buffers - if ($this->tableLevel) { - $this->_saveCellTextBuffer($e, $this->HREF); - $this->cell[$this->row][$this->col]['s'] += $objattr['width'] ; - - } - else { -/*-- END TABLES --*/ - $this->_saveTextBuffer($e, $this->HREF); - } // *TABLES* - - if ($this->InlineProperties[$tag]) { $this->restoreInlineProperties($this->InlineProperties[$tag]); } - unset($this->InlineProperties[$tag]); - - break; // END of INPUT -/*-- END FORMS --*/ - - - // *********** GRAPH ******************** - case 'JPGRAPH': - if (!$this->useGraphs) { break; } - if ($attr['TABLE']) { $gid = strtoupper($attr['TABLE']); } - else { $gid = '0'; } - if (!is_array($this->graphs[$gid]) || count($this->graphs[$gid])==0 ) { break; } - include_once(_MPDF_PATH.'graph.php'); - $this->graphs[$gid]['attr'] = $attr; - - - if (isset($this->graphs[$gid]['attr']['WIDTH']) && $this->graphs[$gid]['attr']['WIDTH']) { - $this->graphs[$gid]['attr']['cWIDTH']=$this->ConvertSize($this->graphs[$gid]['attr']['WIDTH'],$pgwidth); - } // mm - if (isset($this->graphs[$gid]['attr']['HEIGHT']) && $this->graphs[$gid]['attr']['HEIGHT']) { - $this->graphs[$gid]['attr']['cHEIGHT']=$this->ConvertSize($this->graphs[$gid]['attr']['HEIGHT'],$pgwidth); - } - - $graph_img = print_graph($this->graphs[$gid],$this->blk[$this->blklvl]['inner_width']); - if ($graph_img) { - if(isset($attr['ROTATE'])) { - if ($attr['ROTATE']==90 || $attr['ROTATE']==-90) { - $tmpw = $graph_img['w']; - $graph_img['w']= $graph_img['h']; - $graph_img['h']= $tmpw; - } - } - $attr['SRC'] = $graph_img['file']; - $attr['WIDTH'] = $graph_img['w']; - $attr['HEIGHT'] = $graph_img['h']; - } - else { break; } - - // *********** IMAGE ******************** -/*-- IMAGES-CORE --*/ - case 'IMG': - if ($this->progressBar) { $this->UpdateProgressBar(1,'','IMG'); } // *PROGRESS-BAR* - $objattr = array(); - $objattr['margin_top'] = 0; - $objattr['margin_bottom'] = 0; - $objattr['margin_left'] = 0; - $objattr['margin_right'] = 0; - $objattr['padding_top'] = 0; - $objattr['padding_bottom'] = 0; - $objattr['padding_left'] = 0; - $objattr['padding_right'] = 0; - $objattr['width'] = 0; - $objattr['height'] = 0; - $objattr['border_top']['w'] = 0; - $objattr['border_bottom']['w'] = 0; - $objattr['border_left']['w'] = 0; - $objattr['border_right']['w'] = 0; - if(isset($attr['SRC'])) { - $srcpath = $attr['SRC']; - $orig_srcpath = $attr['ORIG_SRC']; - $properties = $this->cssmgr->MergeCSS('',$tag,$attr); - if(isset($properties ['DISPLAY']) && strtolower($properties ['DISPLAY'])=='none') { - return; - } - // mPDF 5.6.01 - LAYERS - if (isset($properties['Z-INDEX']) && $this->currentlayer==0) { - $v = intval($properties['Z-INDEX']); - if ($v > 0) { - $objattr['z-index'] = $v; - } - } - - $objattr['visibility'] = 'visible'; - if (isset($properties['VISIBILITY'])) { - $v = strtolower($properties['VISIBILITY']); - if (($v == 'hidden' || $v == 'printonly' || $v == 'screenonly') && $this->visibility=='visible') { - $objattr['visibility'] = $v; - } - } - - // VSPACE and HSPACE converted to margins in MergeCSS - if (isset($properties['MARGIN-TOP'])) { $objattr['margin_top']=$this->ConvertSize($properties['MARGIN-TOP'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); } - if (isset($properties['MARGIN-BOTTOM'])) { $objattr['margin_bottom'] = $this->ConvertSize($properties['MARGIN-BOTTOM'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); } - if (isset($properties['MARGIN-LEFT'])) { $objattr['margin_left'] = $this->ConvertSize($properties['MARGIN-LEFT'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); } - if (isset($properties['MARGIN-RIGHT'])) { $objattr['margin_right'] = $this->ConvertSize($properties['MARGIN-RIGHT'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); } - - if (isset($properties['PADDING-TOP'])) { $objattr['padding_top']=$this->ConvertSize($properties['PADDING-TOP'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); } - if (isset($properties['PADDING-BOTTOM'])) { $objattr['padding_bottom'] = $this->ConvertSize($properties['PADDING-BOTTOM'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); } - if (isset($properties['PADDING-LEFT'])) { $objattr['padding_left'] = $this->ConvertSize($properties['PADDING-LEFT'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); } - if (isset($properties['PADDING-RIGHT'])) { $objattr['padding_right'] = $this->ConvertSize($properties['PADDING-RIGHT'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); } - - if (isset($properties['BORDER-TOP'])) { $objattr['border_top'] = $this->border_details($properties['BORDER-TOP']); } - if (isset($properties['BORDER-BOTTOM'])) { $objattr['border_bottom'] = $this->border_details($properties['BORDER-BOTTOM']); } - if (isset($properties['BORDER-LEFT'])) { $objattr['border_left'] = $this->border_details($properties['BORDER-LEFT']); } - if (isset($properties['BORDER-RIGHT'])) { $objattr['border_right'] = $this->border_details($properties['BORDER-RIGHT']); } - - if (isset($properties['VERTICAL-ALIGN'])) { $objattr['vertical-align'] = $align[strtolower($properties['VERTICAL-ALIGN'])]; } - $w = 0; - $h = 0; - if(isset($properties['WIDTH'])) $w = $this->ConvertSize($properties['WIDTH'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); - else if(isset($attr['WIDTH'])) $w = $this->ConvertSize($attr['WIDTH'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); - if(isset($properties['HEIGHT'])) $h = $this->ConvertSize($properties['HEIGHT'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); - else if(isset($attr['HEIGHT'])) $h = $this->ConvertSize($attr['HEIGHT'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); - // mPDF 5.5.15 // mPDF 5.6.60 - $maxw=$maxh=$minw=$minh=false; - if(isset($properties['MAX-WIDTH'])) $maxw = $this->ConvertSize($properties['MAX-WIDTH'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); - else if(isset($attr['MAX-WIDTH'])) $maxw = $this->ConvertSize($attr['MAX-WIDTH'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); - if(isset($properties['MAX-HEIGHT'])) $maxh = $this->ConvertSize($properties['MAX-HEIGHT'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); - else if(isset($attr['MAX-HEIGHT'])) $maxh = $this->ConvertSize($attr['MAX-HEIGHT'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); - if(isset($properties['MIN-WIDTH'])) $minw = $this->ConvertSize($properties['MIN-WIDTH'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); - else if(isset($attr['MIN-WIDTH'])) $minw = $this->ConvertSize($attr['MIN-WIDTH'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); - if(isset($properties['MIN-HEIGHT'])) $minh = $this->ConvertSize($properties['MIN-HEIGHT'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); - else if(isset($attr['MIN-HEIGHT'])) $minh = $this->ConvertSize($attr['MIN-HEIGHT'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); - - if (isset($properties['OPACITY']) && $properties['OPACITY'] > 0 && $properties['OPACITY'] <= 1) { $objattr['opacity'] = $properties['OPACITY']; } - if ($this->HREF) { - if (strpos($this->HREF,".") === false && strpos($this->HREF,"@") !== 0) { - $href = $this->HREF; - while(array_key_exists($href,$this->internallink)) $href="#".$href; - $this->internallink[$href] = $this->AddLink(); - $objattr['link'] = $this->internallink[$href]; - } - else { $objattr['link'] = $this->HREF; } - } - $extraheight = $objattr['padding_top'] + $objattr['padding_bottom'] + $objattr['margin_top'] + $objattr['margin_bottom'] + $objattr['border_top']['w'] + $objattr['border_bottom']['w']; - $extrawidth = $objattr['padding_left'] + $objattr['padding_right'] + $objattr['margin_left'] + $objattr['margin_right'] + $objattr['border_left']['w'] + $objattr['border_right']['w']; - - // mPDF 5.7.3 TRANSFORMS - if (isset($properties['BACKGROUND-COLOR']) && $properties['BACKGROUND-COLOR'] != '') { $objattr['bgcolor'] = $this->ConvertColor($properties['BACKGROUND-COLOR']); } - -/*-- BACKGROUNDS --*/ - if(isset($properties['GRADIENT-MASK']) && preg_match('/(-moz-)*(repeating-)*(linear|radial)-gradient/',$properties['GRADIENT-MASK'])) { - $objattr['GRADIENT-MASK'] = $properties['GRADIENT-MASK']; - } -/*-- END BACKGROUNDS --*/ - - // Image file - $info=$this->_getImage($srcpath, true, true, $orig_srcpath); - if(!$info) { - $info = $this->_getImage($this->noImageFile); - if ($info) { - $srcpath = $this->noImageFile; - $w = ($info['w'] * (25.4/$this->dpi)); - $h = ($info['h'] * (25.4/$this->dpi)); - } - } - if(!$info) break; - - if(isset($attr['ROTATE'])) { $image_orientation = $attr['ROTATE']; } - else if(isset($properties['IMAGE-ORIENTATION'])) { $image_orientation = $properties['IMAGE-ORIENTATION']; } - else { $image_orientation = 0; } - if($image_orientation) { - if ($image_orientation==90 || $image_orientation==-90 || $image_orientation==270) { - $tmpw = $info['w']; - $info['w'] = $info['h']; - $info['h'] = $tmpw; - } - $objattr['ROTATE'] = $image_orientation; - } - - $objattr['file'] = $srcpath; - //Default width and height calculation if needed - if($w==0 and $h==0) { -/*-- IMAGES-WMF --*/ - if ($info['type']=='wmf') { - // WMF units are twips (1/20pt) - // divide by 20 to get points - // divide by k to get user units - $w = abs($info['w'])/(20*_MPDFK); - $h = abs($info['h']) / (20*_MPDFK); - } - else -/*-- END IMAGES-WMF --*/ - if ($info['type']=='svg') { - // SVG units are pixels - $w = abs($info['w'])/_MPDFK; - $h = abs($info['h'])/_MPDFK; - } - else { - //Put image at default image dpi - $w=($info['w']/_MPDFK) * (72/$this->img_dpi); - $h=($info['h']/_MPDFK) * (72/$this->img_dpi); - } - if (isset($properties['IMAGE-RESOLUTION'])) { - if (preg_match('/from-image/i', $properties['IMAGE-RESOLUTION']) && isset($info['set-dpi']) && $info['set-dpi']>0) { - $w *= $this->img_dpi / $info['set-dpi']; - $h *= $this->img_dpi / $info['set-dpi']; - } - else if (preg_match('/(\d+)dpi/i', $properties['IMAGE-RESOLUTION'], $m)) { - $dpi = $m[1]; - if ($dpi > 0) { - $w *= $this->img_dpi / $dpi; - $h *= $this->img_dpi / $dpi; - } - } - } - } - // IF WIDTH OR HEIGHT SPECIFIED - if($w==0) $w=abs($h*$info['w']/$info['h']); - if($h==0) $h=abs($w*$info['h']/$info['w']); - - // mPDF 5.5.15 - if ($minw && $w<$minw) { $w = $minw; $h=abs($w*$info['h']/$info['w']); } - if ($maxw && $w>$maxw) { $w = $maxw; $h=abs($w*$info['h']/$info['w']); } - if ($minh && $h<$minh) { $h = $minh; $w=abs($h*$info['w']/$info['h']); } - if ($maxh && $h>$maxh) { $h = $maxh; $w=abs($h*$info['w']/$info['h']); } - - // Resize to maximum dimensions of page - $maxWidth = $this->blk[$this->blklvl]['inner_width']; - $maxHeight = $this->h - ($this->tMargin + $this->bMargin + 1) ; - if ($this->fullImageHeight) { $maxHeight = $this->fullImageHeight; } - if (($w + $extrawidth) > ($maxWidth + 0.0001) ) { // mPDF 5.7.4 0.0001 to allow for rounding errors when w==maxWidth - $w = $maxWidth - $extrawidth; - $h=abs($w*$info['h']/$info['w']); - } - - if ($h + $extraheight > $maxHeight ) { - $h = $maxHeight - $extraheight; - $w=abs($h*$info['w']/$info['h']); - } - $objattr['type'] = 'image'; - $objattr['itype'] = $info['type']; - - $objattr['orig_h'] = $info['h']; - $objattr['orig_w'] = $info['w']; -/*-- IMAGES-WMF --*/ - if ($info['type']=='wmf') { - $objattr['wmf_x'] = $info['x']; - $objattr['wmf_y'] = $info['y']; - } - else -/*-- END IMAGES-WMF --*/ - if ($info['type']=='svg') { - $objattr['wmf_x'] = $info['x']; - $objattr['wmf_y'] = $info['y']; - } - $objattr['height'] = $h + $extraheight; - $objattr['width'] = $w + $extrawidth; - $objattr['image_height'] = $h; - $objattr['image_width'] = $w; -/*-- CSS-IMAGE-FLOAT --*/ - if (!$this->ColActive && !$this->tableLevel && !$this->listlvl && !$this->kwt && !$this->keep_block_together) { - if (isset($properties['FLOAT']) && (strtoupper($properties['FLOAT']) == 'RIGHT' || strtoupper($properties['FLOAT']) == 'LEFT')) { - $objattr['float'] = substr(strtoupper($properties['FLOAT']),0,1); - } - } -/*-- END CSS-IMAGE-FLOAT --*/ - // mPDF 5.7.3 TRANSFORMS - if (isset($properties['TRANSFORM']) && !$this->ColActive && !$this->kwt) { - $objattr['transform'] = $properties['TRANSFORM']; - } - - $e = "\xbb\xa4\xactype=image,objattr=".serialize($objattr)."\xbb\xa4\xac"; - - // Clear properties - tidy up - $properties = array(); - -/*-- TABLES --*/ - // Output it to buffers - if ($this->tableLevel) { - $this->_saveCellTextBuffer($e, $this->HREF); - $this->cell[$this->row][$this->col]['s'] += $objattr['width'] ; - } - else { -/*-- END TABLES --*/ - $this->_saveTextBuffer($e, $this->HREF); - } // *TABLES* -/*-- ANNOTATIONS --*/ - if ($this->title2annots && isset($attr['TITLE'])) { - $objattr = array(); - $objattr['margin_top'] = 0; - $objattr['margin_bottom'] = 0; - $objattr['margin_left'] = 0; - $objattr['margin_right'] = 0; - $objattr['width'] = 0; - $objattr['height'] = 0; - $objattr['border_top']['w'] = 0; - $objattr['border_bottom']['w'] = 0; - $objattr['border_left']['w'] = 0; - $objattr['border_right']['w'] = 0; - $objattr['CONTENT'] = $attr['TITLE']; - $objattr['type'] = 'annot'; - $objattr['POS-X'] = 0; - $objattr['POS-Y'] = 0; - $objattr['ICON'] = 'Comment'; - $objattr['AUTHOR'] = ''; - $objattr['SUBJECT'] = ''; - $objattr['OPACITY'] = $this->annotOpacity; - $objattr['COLOR'] = $this->ConvertColor('yellow'); - $e = "\xbb\xa4\xactype=annot,objattr=".serialize($objattr)."\xbb\xa4\xac"; - if($this->tableLevel) { // *TABLES* - $this->cell[$this->row][$this->col]['textbuffer'][] = array($e); // *TABLES* - } // *TABLES* - else { // *TABLES* - $this->textbuffer[] = array($e); - } // *TABLES* - } -/*-- END ANNOTATIONS --*/ - } - break; -/*-- END IMAGES-CORE --*/ - - - // *********** CIRCULAR TEXT = TEXTCIRCLE ******************** - case 'TEXTCIRCLE': - $objattr = array(); - $objattr['margin_top'] = 0; - $objattr['margin_bottom'] = 0; - $objattr['margin_left'] = 0; - $objattr['margin_right'] = 0; - $objattr['padding_top'] = 0; - $objattr['padding_bottom'] = 0; - $objattr['padding_left'] = 0; - $objattr['padding_right'] = 0; - $objattr['width'] = 0; - $objattr['height'] = 0; - $objattr['border_top']['w'] = 0; - $objattr['border_bottom']['w'] = 0; - $objattr['border_left']['w'] = 0; - $objattr['border_right']['w'] = 0; - $objattr['top-text'] = ''; - $objattr['bottom-text'] = ''; - $objattr['r'] = 20; // radius (default value here for safety) - $objattr['space-width'] = 120; - $objattr['char-width'] = 100; - - $this->InlineProperties[$tag] = $this->saveInlineProperties(); - $properties = $this->cssmgr->MergeCSS('INLINE',$tag,$attr); - - if(isset($properties ['DISPLAY']) && strtolower($properties ['DISPLAY'])=='none') { - return; - } - if (isset($attr['R'])) { $objattr['r']=$this->ConvertSize($attr['R'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); } - if(isset($attr['TOP-TEXT'])) { - $objattr['top-text'] = strcode2utf($attr['TOP-TEXT']); - $objattr['top-text'] = $this->lesser_entity_decode($objattr['top-text']); - if ($this->onlyCoreFonts) - $objattr['top-text'] = mb_convert_encoding($objattr['top-text'], $this->mb_enc,'UTF-8'); - } - if(isset($attr['BOTTOM-TEXT'])) { - $objattr['bottom-text'] = strcode2utf($attr['BOTTOM-TEXT']); - $objattr['bottom-text'] = $this->lesser_entity_decode($objattr['bottom-text']); - if ($this->onlyCoreFonts) - $objattr['bottom-text'] = mb_convert_encoding($objattr['bottom-text'], $this->mb_enc,'UTF-8'); - } - if(isset($attr['SPACE-WIDTH']) && $attr['SPACE-WIDTH']) { $objattr['space-width'] = $attr['SPACE-WIDTH']; } - if(isset($attr['CHAR-WIDTH']) && $attr['CHAR-WIDTH']) { $objattr['char-width'] = $attr['CHAR-WIDTH']; } - - // VISIBILITY - $objattr['visibility'] = 'visible'; - if (isset($properties['VISIBILITY'])) { - $v = strtolower($properties['VISIBILITY']); - if (($v == 'hidden' || $v == 'printonly' || $v == 'screenonly') && $this->visibility=='visible') { - $objattr['visibility'] = $v; - } - } - // mPDF 5.5.23 - if (isset($properties['FONT-SIZE'])) { - if (strtolower($properties['FONT-SIZE'])=='auto') { - if ($objattr['top-text'] && $objattr['bottom-text']) { - $objattr['fontsize'] = -2; - } - else { - $objattr['fontsize'] = -1; - } - } - else { - $mmsize = $this->ConvertSize($properties['FONT-SIZE'],($this->default_font_size/_MPDFK)); - $this->SetFontSize($mmsize*_MPDFK,false); - $objattr['fontsize'] = $this->FontSizePt; - } - } - // mPDF 5.5.23 - if(isset($attr['DIVIDER'])) { - $objattr['divider'] = strcode2utf($attr['DIVIDER']); - $objattr['divider'] = $this->lesser_entity_decode($objattr['divider']); - if ($this->onlyCoreFonts) - $objattr['divider'] = mb_convert_encoding($objattr['divider'], $this->mb_enc,'UTF-8'); - - } - - if (isset($properties['COLOR'])) { $objattr['color'] = $this->ConvertColor($properties['COLOR']); } - - $objattr['fontstyle'] = ''; - if (isset($properties['FONT-WEIGHT'])) { - if (strtoupper($properties['FONT-WEIGHT']) == 'BOLD') { $objattr['fontstyle'] .= 'B'; } - } - if (isset($properties['FONT-STYLE'])) { - if (strtoupper($properties['FONT-STYLE']) == 'ITALIC') { $objattr['fontstyle'] .= 'I'; } - } - - if (isset($properties['FONT-FAMILY'])) { - $this->SetFont($properties['FONT-FAMILY'],$this->FontStyle,0,false); - } - $objattr['fontfamily'] = $this->FontFamily; - - // VSPACE and HSPACE converted to margins in MergeCSS - if (isset($properties['MARGIN-TOP'])) { $objattr['margin_top']=$this->ConvertSize($properties['MARGIN-TOP'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); } - if (isset($properties['MARGIN-BOTTOM'])) { $objattr['margin_bottom'] = $this->ConvertSize($properties['MARGIN-BOTTOM'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); } - if (isset($properties['MARGIN-LEFT'])) { $objattr['margin_left'] = $this->ConvertSize($properties['MARGIN-LEFT'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); } - if (isset($properties['MARGIN-RIGHT'])) { $objattr['margin_right'] = $this->ConvertSize($properties['MARGIN-RIGHT'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); } - - if (isset($properties['PADDING-TOP'])) { $objattr['padding_top']=$this->ConvertSize($properties['PADDING-TOP'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); } - if (isset($properties['PADDING-BOTTOM'])) { $objattr['padding_bottom'] = $this->ConvertSize($properties['PADDING-BOTTOM'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); } - if (isset($properties['PADDING-LEFT'])) { $objattr['padding_left'] = $this->ConvertSize($properties['PADDING-LEFT'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); } - if (isset($properties['PADDING-RIGHT'])) { $objattr['padding_right'] = $this->ConvertSize($properties['PADDING-RIGHT'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); } - - if (isset($properties['BORDER-TOP'])) { $objattr['border_top'] = $this->border_details($properties['BORDER-TOP']); } - if (isset($properties['BORDER-BOTTOM'])) { $objattr['border_bottom'] = $this->border_details($properties['BORDER-BOTTOM']); } - if (isset($properties['BORDER-LEFT'])) { $objattr['border_left'] = $this->border_details($properties['BORDER-LEFT']); } - if (isset($properties['BORDER-RIGHT'])) { $objattr['border_right'] = $this->border_details($properties['BORDER-RIGHT']); } - - if (isset($properties['OPACITY']) && $properties['OPACITY'] > 0 && $properties['OPACITY'] <= 1) { $objattr['opacity'] = $properties['OPACITY']; } - if (isset($properties['BACKGROUND-COLOR']) && $properties['BACKGROUND-COLOR'] != '') { $objattr['bgcolor'] = $this->ConvertColor($properties['BACKGROUND-COLOR']); } - else { $objattr['bgcolor'] = false; } - if ($this->HREF) { - if (strpos($this->HREF,".") === false && strpos($this->HREF,"@") !== 0) { - $href = $this->HREF; - while(array_key_exists($href,$this->internallink)) $href="#".$href; - $this->internallink[$href] = $this->AddLink(); - $objattr['link'] = $this->internallink[$href]; - } - else { $objattr['link'] = $this->HREF; } - } - $extraheight = $objattr['padding_top'] + $objattr['padding_bottom'] + $objattr['margin_top'] + $objattr['margin_bottom'] + $objattr['border_top']['w'] + $objattr['border_bottom']['w']; - $extrawidth = $objattr['padding_left'] + $objattr['padding_right'] + $objattr['margin_left'] + $objattr['margin_right'] + $objattr['border_left']['w'] + $objattr['border_right']['w']; - - - $w = $objattr['r']*2; - $h = $w; - $objattr['height'] = $h + $extraheight; - $objattr['width'] = $w + $extrawidth; - $objattr['type'] = 'textcircle'; - - $e = "\xbb\xa4\xactype=image,objattr=".serialize($objattr)."\xbb\xa4\xac"; - - // Clear properties - tidy up - $properties = array(); - -/*-- TABLES --*/ - // Output it to buffers - if ($this->tableLevel) { - $this->_saveCellTextBuffer($e, $this->HREF); - $this->cell[$this->row][$this->col]['s'] += $objattr['width'] ; - } - else { -/*-- END TABLES --*/ - $this->_saveTextBuffer($e, $this->HREF); - } // *TABLES* - - if ($this->InlineProperties[$tag]) { $this->restoreInlineProperties($this->InlineProperties[$tag]); } - unset($this->InlineProperties[$tag]); - - break; - - -/*-- TABLES --*/ - - case 'TABLE': // TABLE-BEGIN - $this->tdbegin = false; - $this->lastoptionaltag = ''; - // Disable vertical justification in columns - if ($this->ColActive) { $this->colvAlign = ''; } // *COLUMNS* - if ($this->lastblocklevelchange == 1) { $blockstate = 1; } // Top margins/padding only - else if ($this->lastblocklevelchange < 1) { $blockstate = 0; } // NO margins/padding - // called from block after new div e.g.
... ... Outputs block top margin/border and padding - if (count($this->textbuffer) == 0 && $this->lastblocklevelchange == 1 && !$this->tableLevel && !$this->kwt) { - $this->newFlowingBlock( $this->blk[$this->blklvl]['width'],$this->lineheight,'',false,false,1,true, $this->blk[$this->blklvl]['direction']); - $this->finishFlowingBlock(true); // true = END of flowing block - } - else if (!$this->tableLevel && count($this->textbuffer)) { $this->printbuffer($this->textbuffer,$blockstate); } - - $this->textbuffer=array(); - $this->lastblocklevelchange = -1; - if ($this->tableLevel) { // i.e. now a nested table coming... - // Save current level table - // mPDF 5.4.10 - $this->cell['PARENTCELL'] = $this->saveInlineProperties(); - $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['baseProperties']= $this->base_table_properties; - $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['cells'] = $this->cell; - $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['currrow'] = $this->row; - $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['currcol'] = $this->col; - } - $this->tableLevel++; - $this->cssmgr->tbCSSlvl++; - - if ($this->tableLevel>1) { // inherit table properties from cell in which nested - $this->base_table_properties['FONT-KERNING'] = $this->kerning ; - $this->base_table_properties['LETTER-SPACING'] = $this->lSpacingCSS ; - $this->base_table_properties['WORD-SPACING'] = $this->wSpacingCSS ; - } - - if (isset($this->tbctr[$this->tableLevel])) { $this->tbctr[$this->tableLevel]++; } - else { $this->tbctr[$this->tableLevel] = 1; } - - $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['level'] = $this->tableLevel; - $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['levelid'] = $this->tbctr[$this->tableLevel]; - - if ($this->tableLevel > $this->innermostTableLevel) { $this->innermostTableLevel = $this->tableLevel; } - if ($this->tableLevel > 1) { - $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['nestedpos'] = array($this->row,$this->col,$this->tbctr[($this->tableLevel-1)]); - } - //++++++++++++++++++++++++++++ - - $this->cell = array(); - $this->col=-1; //int - $this->row=-1; //int - $table = &$this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]; - - // New table - any level - if ($this->cacheTables) { - $this->packTableData = true; // required for cacheTables - $this->simpleTables = false; // Cannot co-exist with cacheTables - $table['cache'] = _MPDF_TEMP_PATH.'_tempTblCache'.uniqid(rand(1,100000),true).'.dat'; - $fh = fopen($table['cache'] , "wb") or $this->Error("When using cacheTables, you must have read/write access to cache files (".$table['cache'] .")"); - fwrite($fh, "\x00"); - fclose($fh); - $table['ptr'] = 1 ; // Must not be 0 - } - - $table['direction'] = $this->directionality; - $table['bgcolor'] = false; - $table['va'] = false; - $table['txta'] = false; - $table['topntail'] = false; - $table['thead-underline'] = false; - $table['border'] = false; - $table['border_details']['R']['w'] = 0; - $table['border_details']['L']['w'] = 0; - $table['border_details']['T']['w'] = 0; - $table['border_details']['B']['w'] = 0; - $table['border_details']['R']['style'] = ''; - $table['border_details']['L']['style'] = ''; - $table['border_details']['T']['style'] = ''; - $table['border_details']['B']['style'] = ''; - $table['max_cell_border_width']['R'] = 0; - $table['max_cell_border_width']['L'] = 0; - $table['max_cell_border_width']['T'] = 0; - $table['max_cell_border_width']['B'] = 0; - $table['padding']['L'] = false; - $table['padding']['R'] = false; - $table['padding']['T'] = false; - $table['padding']['B'] = false; - $table['margin']['L'] = false; - $table['margin']['R'] = false; - $table['margin']['T'] = false; - $table['margin']['B'] = false; - $table['a'] = false; - $table['border_spacing_H'] = false; - $table['border_spacing_V'] = false; - $table['decimal_align'] = false; // mPDF 5.6.13 - $this->Reset(); - $this->InlineProperties = array(); - $table['nc'] = $table['nr'] = 0; - $this->tablethead = 0; - $this->tabletfoot = 0; - $this->tabletheadjustfinished = false; - - - if ($this->blockjustfinished && !count($this->textbuffer) && $this->y != $this->tMargin && $this->collapseBlockMargins && $this->tableLevel==1) { $lastbottommargin = $this->lastblockbottommargin; } - else { $lastbottommargin = 0; } - $this->lastblockbottommargin = 0; - $this->blockjustfinished=false; - - if ($this->tableLevel==1) { - $this->tableCJK = false; - $this->table_lineheight = $this->normalLineheight; - $table['headernrows'] = 0; - $table['footernrows'] = 0; - $this->base_table_properties = array(); - } - - // ADDED CSS FUNCIONS FOR TABLE - if ($this->cssmgr->tbCSSlvl==1) { - $properties = $this->cssmgr->MergeCSS('TOPTABLE',$tag,$attr); - } - else { - $properties = $this->cssmgr->MergeCSS('TABLE',$tag,$attr); - } - $w = ''; - if (isset($properties['WIDTH'])) { $w = $properties['WIDTH']; } - else if (isset($attr['WIDTH']) && $attr['WIDTH']) { $w = $attr['WIDTH']; } - - - if(isset($properties['DIRECTION']) && $properties['DIRECTION']) { $table['direction'] = strtolower($properties['DIRECTION']); } - else if(isset($attr['DIR']) && $attr['DIR']) { $table['direction'] = strtolower($attr['DIR']); } - else if (!isset($table['direction'])){ $table['direction'] = $this->blk[$this->blklvl]['direction']; } - - if (isset($properties['BACKGROUND-COLOR'])) { $table['bgcolor'][-1] = $properties['BACKGROUND-COLOR']; } - else if (isset($properties['BACKGROUND'])) { $table['bgcolor'][-1] = $properties['BACKGROUND']; } - else if (isset($attr['BGCOLOR'])) { $table['bgcolor'][-1] = $attr['BGCOLOR']; } - if (isset($properties['VERTICAL-ALIGN'])) { $table['va'] = $align[strtolower($properties['VERTICAL-ALIGN'])]; } - if (isset($properties['TEXT-ALIGN'])) { $table['txta'] = $align[strtolower($properties['TEXT-ALIGN'])]; } - if (isset($attr['ALIGN'])) { $table['a'] = $align[strtolower($attr['ALIGN'])]; } - if (!$table['a']) { - if ($table['direction'] == 'rtl' ) { $table['a'] = 'R'; } - else { $table['a'] = 'L'; } - } - - if (isset($properties['AUTOSIZE']) && $properties['AUTOSIZE'] && $this->tableLevel ==1) { - $this->shrink_this_table_to_fit = $properties['AUTOSIZE']; - if ($this->shrink_this_table_to_fit < 1) { $this->shrink_this_table_to_fit = 0; } - } - if (isset($properties['ROTATE']) && $properties['ROTATE'] && $this->tableLevel ==1) { - $this->table_rotate = $properties['ROTATE']; - } - if (isset($properties['TOPNTAIL'])) { $table['topntail'] = $properties['TOPNTAIL']; } - if (isset($properties['THEAD-UNDERLINE'])) { $table['thead-underline'] = $properties['THEAD-UNDERLINE']; } - - if (isset($properties['BORDER'])) { - $bord = $this->border_details($properties['BORDER']); - if ($bord['s']) { - $table['border'] = _BORDER_ALL; - $table['border_details']['R'] = $bord; - $table['border_details']['L'] = $bord; - $table['border_details']['T'] = $bord; - $table['border_details']['B'] = $bord; - } - } - if (isset($properties['BORDER-RIGHT'])) { - if ($table['direction'] == 'rtl') { // *RTL* - $table['border_details']['R'] = $this->border_details($properties['BORDER-LEFT']); // *RTL* - } // *RTL* - else { // *RTL* - $table['border_details']['R'] = $this->border_details($properties['BORDER-RIGHT']); - } // *RTL* - $this->setBorder($table['border'], _BORDER_RIGHT, $table['border_details']['R']['s']); - } - if (isset($properties['BORDER-LEFT'])) { - if ($table['direction'] == 'rtl') { // *RTL* - $table['border_details']['L'] = $this->border_details($properties['BORDER-RIGHT']); // *RTL* - } // *RTL* - else { // *RTL* - $table['border_details']['L'] = $this->border_details($properties['BORDER-LEFT']); - } // *RTL* - $this->setBorder($table['border'], _BORDER_LEFT, $table['border_details']['L']['s']); - } - if (isset($properties['BORDER-BOTTOM'])) { - $table['border_details']['B'] = $this->border_details($properties['BORDER-BOTTOM']); - $this->setBorder($table['border'], _BORDER_BOTTOM, $table['border_details']['B']['s']); - } - if (isset($properties['BORDER-TOP'])) { - $table['border_details']['T'] = $this->border_details($properties['BORDER-TOP']); - $this->setBorder($table['border'], _BORDER_TOP, $table['border_details']['T']['s']); - } - if ($table['border']){ - $this->table_border_css_set = 1; - } - else { - $this->table_border_css_set = 0; - } - - if (isset($properties['FONT-FAMILY'])) { - $this->default_font = $properties['FONT-FAMILY']; - $this->SetFont($this->default_font,'',0,false); - } - $this->base_table_properties['FONT-FAMILY'] = $this->FontFamily; // mPDF 5.4.10 - - if (isset($properties['FONT-SIZE'])) { - // mPDF 5.4.10 - if ($this->tableLevel>1) { $mmsize = $this->ConvertSize($properties['FONT-SIZE'], $this->base_table_properties['FONT-SIZE']); } - else { $mmsize = $this->ConvertSize($properties['FONT-SIZE'],$this->default_font_size/_MPDFK); } - if ($mmsize) { - $this->default_font_size = $mmsize*(_MPDFK); - $this->SetFontSize($this->default_font_size,false); - } - } - $this->base_table_properties['FONT-SIZE'] = $this->FontSize.'mm'; // mPDF 5.4.10 - - if (isset($properties['FONT-WEIGHT'])) { - if (strtoupper($properties['FONT-WEIGHT']) == 'BOLD') { $this->base_table_properties['FONT-WEIGHT'] = 'BOLD'; } - } - if (isset($properties['FONT-STYLE'])) { - if (strtoupper($properties['FONT-STYLE']) == 'ITALIC') { $this->base_table_properties['FONT-STYLE'] = 'ITALIC'; } - } - if (isset($properties['COLOR'])) { - $this->base_table_properties['COLOR'] = $properties['COLOR']; - } - if (isset($properties['FONT-KERNING'])) { - $this->base_table_properties['FONT-KERNING'] = $properties['FONT-KERNING']; - } - if (isset($properties['LETTER-SPACING'])) { - $this->base_table_properties['LETTER-SPACING'] = $properties['LETTER-SPACING']; - } - if (isset($properties['WORD-SPACING'])) { - $this->base_table_properties['WORD-SPACING'] = $properties['WORD-SPACING']; - } - - if (isset($properties['PADDING-LEFT'])) { - $table['padding']['L'] = $this->ConvertSize($properties['PADDING-LEFT'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); - } - if (isset($properties['PADDING-RIGHT'])) { - $table['padding']['R'] = $this->ConvertSize($properties['PADDING-RIGHT'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); - } - if (isset($properties['PADDING-TOP'])) { - $table['padding']['T'] = $this->ConvertSize($properties['PADDING-TOP'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); - } - if (isset($properties['PADDING-BOTTOM'])) { - $table['padding']['B'] = $this->ConvertSize($properties['PADDING-BOTTOM'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); - } - - if (isset($properties['MARGIN-TOP'])) { - if ($lastbottommargin) { - $tmp = $this->ConvertSize($properties['MARGIN-TOP'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); - if ($tmp > $lastbottommargin) { $properties['MARGIN-TOP'] -= $lastbottommargin; } - else { $properties['MARGIN-TOP'] = 0; } - } - $table['margin']['T'] = $this->ConvertSize($properties['MARGIN-TOP'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); - } - - if (isset($properties['MARGIN-BOTTOM'])) { - $table['margin']['B'] = $this->ConvertSize($properties['MARGIN-BOTTOM'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); - } - if (isset($properties['MARGIN-LEFT'])) { - $table['margin']['L'] = $this->ConvertSize($properties['MARGIN-LEFT'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); - } - - if (isset($properties['MARGIN-RIGHT'])) { - $table['margin']['R'] = $this->ConvertSize($properties['MARGIN-RIGHT'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); - } - if (isset($properties['MARGIN-LEFT']) && isset($properties['MARGIN-RIGHT']) && strtolower($properties['MARGIN-LEFT'])=='auto' && strtolower($properties['MARGIN-RIGHT'])=='auto') { - $table['a'] = 'C'; - } - else if (isset($properties['MARGIN-LEFT']) && strtolower($properties['MARGIN-LEFT'])=='auto') { - $table['a'] = 'R'; - } - else if (isset($properties['MARGIN-RIGHT']) && strtolower($properties['MARGIN-RIGHT'])=='auto') { - $table['a'] = 'L'; - } - - if (isset($properties['LINE-HEIGHT']) && $this->tableLevel==1) { - $this->table_lineheight = $this->fixLineheight($properties['LINE-HEIGHT']); - if (!$this->table_lineheight) { $this->table_lineheight = $this->normalLineheight; } - } - - if (isset($properties['BORDER-COLLAPSE']) && strtoupper($properties['BORDER-COLLAPSE'])=='SEPARATE') { - $table['borders_separate'] = true; - } - else { - $table['borders_separate'] = false; - } - - // mPDF 5.7.3 - if (isset($properties['BORDER-SPACING-H'])) { - $table['border_spacing_H'] = $this->ConvertSize($properties['BORDER-SPACING-H'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); - } - if (isset($properties['BORDER-SPACING-V'])) { - $table['border_spacing_V'] = $this->ConvertSize($properties['BORDER-SPACING-V'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); - } - - if (!$table['borders_separate']) { $table['border_spacing_H'] = $table['border_spacing_V'] = 0; } - - if (isset($properties['EMPTY-CELLS'])) { - $table['empty_cells'] = strtolower($properties['EMPTY-CELLS']); // 'hide' or 'show' - } - else { $table['empty_cells'] = ''; } - - if (isset($properties['PAGE-BREAK-INSIDE']) && strtoupper($properties['PAGE-BREAK-INSIDE'])=='AVOID' && $this->tableLevel==1 && !$this->writingHTMLfooter) { - $this->table_keep_together = true; - } - else if ($this->tableLevel==1) { - $this->table_keep_together = false; - } - if (isset($properties['PAGE-BREAK-AFTER']) && $this->tableLevel==1) { - $table['page_break_after'] = strtoupper($properties['PAGE-BREAK-AFTER']); - } - -/*-- BACKGROUNDS --*/ - if (isset($properties['BACKGROUND-GRADIENT']) && !$this->kwt && !$this->ColActive) { $table['gradient'] = $properties['BACKGROUND-GRADIENT']; } - - if (isset($properties['BACKGROUND-IMAGE']) && $properties['BACKGROUND-IMAGE'] && !$this->kwt && !$this->ColActive) { - $ret = $this->SetBackground($properties, $currblk['inner_width']); - if ($ret) { $table['background-image'] = $ret; } - } -/*-- END BACKGROUNDS --*/ - - if (isset($properties['OVERFLOW'])) { - $table['overflow'] = strtolower($properties['OVERFLOW']); // 'hidden' 'wrap' or 'visible' or 'auto' - if (($this->ColActive || $this->tableLevel>1) && $table['overflow']=='visible') { unset($table['overflow']); } - } - - $properties = array(); - - - - if (isset($attr['CELLPADDING'])) { - $table['cell_padding'] = $attr['CELLPADDING']; - } - else { - $table['cell_padding'] = false; - } - - if (isset($attr['BORDER']) && $attr['BORDER']=='1') { // mPDF 5.5.08 - $this->table_border_attr_set = 1; // mPDF 5.5.08 - $bord = $this->border_details('#000000 1px solid'); - if ($bord['s']) { - $table['border'] = _BORDER_ALL; - $table['border_details']['R'] = $bord; - $table['border_details']['L'] = $bord; - $table['border_details']['T'] = $bord; - $table['border_details']['B'] = $bord; - } - } - else { - $this->table_border_attr_set = 0; - } - - if ($w) { - $maxwidth = $this->blk[$this->blklvl]['inner_width']; - if ($table['borders_separate']) { - $tblblw = $table['margin']['L'] + $table['margin']['R'] + $table['border_details']['L']['w']/2 + $table['border_details']['R']['w']/2; - } - else { - $tblblw = $table['margin']['L'] + $table['margin']['R'] + $table['max_cell_border_width']['L']/2 + $table['max_cell_border_width']['R']/2; - } - if (strpos($w,'%') && $this->tableLevel == 1 && !$this->ignore_table_percents ) { - // % needs to be of inner box without table margins etc. - $maxwidth -= $tblblw ; - $wmm = $this->ConvertSize($w,$maxwidth,$this->FontSize,false); - $table['w'] = $wmm + $tblblw ; - } - if (strpos($w,'%') && $this->tableLevel > 1 && !$this->ignore_table_percents && $this->keep_table_proportions) { - $table['wpercent'] = $w + 0; // makes 80% -> 80 - } - if (!strpos($w,'%') && !$this->ignore_table_widths ) { - $wmm = $this->ConvertSize($w,$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); - $table['w'] = $wmm + $tblblw ; - } - if (!$this->keep_table_proportions) { - if (isset($table['w']) && $table['w'] > $this->blk[$this->blklvl]['inner_width']) { $table['w'] = $this->blk[$this->blklvl]['inner_width']; } - } - } - - if (isset($attr['AUTOSIZE']) && $this->tableLevel==1) { - $this->shrink_this_table_to_fit = $attr['AUTOSIZE']; - if ($this->shrink_this_table_to_fit < 1) { $this->shrink_this_table_to_fit = 1; } - } - if (isset($attr['ROTATE']) && $this->tableLevel==1) { - $this->table_rotate = $attr['ROTATE']; - } - - //++++++++++++++++++++++++++++ - // keeping block together on one page - // Autosize is now forced therefore keep block together disabled - if ($this->keep_block_together) { - $this->keep_block_together = 0; - $this->printdivbuffer(); - $this->blk[$this->blklvl]['keep_block_together'] = 0; - } - if ($this->table_rotate) { - $this->tbrot_Links = array(); - $this->tbrot_Annots = array(); - $this->tbrotForms = array(); - $this->tbrot_Reference = array(); - $this->tbrot_BMoutlines = array(); - $this->tbrot_toc = array(); - } - - if ($this->kwt) { - if ($this->table_rotate) { $this->table_keep_together = true; } - $this->kwt = false; - $this->kwt_saved = true; - } - - if ($this->tableLevel==1 && $this->useGraphs) { - if (isset($attr['ID']) && $attr['ID']) { $this->currentGraphId = strtoupper($attr['ID']); } - else { $this->currentGraphId = '0'; } - $this->graphs[$this->currentGraphId] = array(); - } - //++++++++++++++++++++++++++++ - $this->plainCell_properties = array(); - unset($table); - break; - - case 'THEAD': - $this->lastoptionaltag = $tag; // Save current HTML specified optional endtag - $this->cssmgr->tbCSSlvl++; - $this->tablethead = 1; - $this->tabletfoot = 0; - $properties = $this->cssmgr->MergeCSS('TABLE',$tag,$attr); - if (isset($properties['FONT-WEIGHT'])) { - if (strtoupper($properties['FONT-WEIGHT']) == 'BOLD') { $this->thead_font_weight = 'B'; } - else { $this->thead_font_weight = ''; } - } - - if (isset($properties['FONT-STYLE'])) { - if (strtoupper($properties['FONT-STYLE']) == 'ITALIC') { $this->thead_font_style = 'I'; } - else { $this->thead_font_style = ''; } - } - if (isset($properties['FONT-VARIANT'])) { - if (strtoupper($properties['FONT-VARIANT']) == 'SMALL-CAPS') { $this->thead_font_smCaps = 'S'; } - else { $this->thead_font_smCaps = ''; } - } - - if (isset($properties['VERTICAL-ALIGN'])) { - $this->thead_valign_default = $properties['VERTICAL-ALIGN']; - } - if (isset($properties['TEXT-ALIGN'])) { - $this->thead_textalign_default = $properties['TEXT-ALIGN']; - } - $properties = array(); - break; - - case 'TFOOT': - $this->lastoptionaltag = $tag; // Save current HTML specified optional endtag - $this->cssmgr->tbCSSlvl++; - $this->tabletfoot = 1; - $this->tablethead = 0; - $properties = $this->cssmgr->MergeCSS('TABLE',$tag,$attr); - if (isset($properties['FONT-WEIGHT'])) { - if (strtoupper($properties['FONT-WEIGHT']) == 'BOLD') { $this->tfoot_font_weight = 'B'; } - else { $this->tfoot_font_weight = ''; } - } - - if (isset($properties['FONT-STYLE'])) { - if (strtoupper($properties['FONT-STYLE']) == 'ITALIC') { $this->tfoot_font_style = 'I'; } - else { $this->tfoot_font_style = ''; } - } - if (isset($properties['FONT-VARIANT'])) { - if (strtoupper($properties['FONT-VARIANT']) == 'SMALL-CAPS') { $this->tfoot_font_smCaps = 'S'; } - else { $this->tfoot_font_smCaps = ''; } - } - - if (isset($properties['VERTICAL-ALIGN'])) { - $this->tfoot_valign_default = $properties['VERTICAL-ALIGN']; - } - if (isset($properties['TEXT-ALIGN'])) { - $this->tfoot_textalign_default = $properties['TEXT-ALIGN']; - } - $properties = array(); - break; - - - case 'TBODY': - $this->tablethead = 0; - $this->tabletfoot = 0; - $this->lastoptionaltag = $tag; // Save current HTML specified optional endtag - $this->cssmgr->tbCSSlvl++; - $this->cssmgr->MergeCSS('TABLE',$tag,$attr); - break; - - - case 'TR': - $this->lastoptionaltag = $tag; // Save current HTML specified optional endtag - $this->cssmgr->tbCSSlvl++; - $this->row++; - $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['nr']++; - $this->col = -1; - $properties = $this->cssmgr->MergeCSS('TABLE',$tag,$attr); - - if (!$this->simpleTables && (!isset($this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['borders_separate']) || !$this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['borders_separate'])) { - if (isset($properties['BORDER-LEFT']) && $properties['BORDER-LEFT']) { $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['trborder-left'][$this->row] = $properties['BORDER-LEFT']; } - if (isset($properties['BORDER-RIGHT']) && $properties['BORDER-RIGHT']) { $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['trborder-right'][$this->row] = $properties['BORDER-RIGHT']; } - if (isset($properties['BORDER-TOP']) && $properties['BORDER-TOP']) { $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['trborder-top'][$this->row] = $properties['BORDER-TOP']; } - if (isset($properties['BORDER-BOTTOM']) && $properties['BORDER-BOTTOM']) { $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['trborder-bottom'][$this->row] = $properties['BORDER-BOTTOM']; } - } - - if (isset($properties['BACKGROUND-COLOR'])) { $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['bgcolor'][$this->row] = $properties['BACKGROUND-COLOR']; } - else if (isset($attr['BGCOLOR'])) $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['bgcolor'][$this->row] = $attr['BGCOLOR']; - -/*-- BACKGROUNDS --*/ - if (isset($properties['BACKGROUND-GRADIENT']) && !$this->kwt && !$this->ColActive) { $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['trgradients'][$this->row] = $properties['BACKGROUND-GRADIENT']; } - - if (isset($properties['BACKGROUND-IMAGE']) && $properties['BACKGROUND-IMAGE'] && !$this->kwt && !$this->ColActive) { - $ret = $this->SetBackground($properties, $currblk['inner_width']); - if ($ret) { $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['trbackground-images'][$this->row] = $ret; } - } -/*-- END BACKGROUNDS --*/ - - - if (isset($properties['TEXT-ROTATE'])) { - $this->trow_text_rotate = $properties['TEXT-ROTATE']; - } - if (isset($attr['TEXT-ROTATE'])) $this->trow_text_rotate = $attr['TEXT-ROTATE']; - - if ($this->tablethead) { $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['is_thead'][$this->row] = true; } - if ($this->tabletfoot) { $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['is_tfoot'][$this->row] = true; } - $properties = array(); - break; - - - case 'TH': - case 'TD': - $this->ignorefollowingspaces = true; - $this->lastoptionaltag = $tag; // Save current HTML specified optional endtag - $this->cssmgr->tbCSSlvl++; - $this->InlineProperties = array(); - $this->tdbegin = true; - $this->col++; - while (isset($this->cell[$this->row][$this->col])) { $this->col++; } - - //Update number column - if ($this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['nc'] < $this->col+1) { $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['nc'] = $this->col+1; } - - $table = &$this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]; - - $c = array('a' => false, - 'R' => false, - 'nowrap' => false, - 'bgcolor' => false, - 'padding' => array('L' => false, - 'R' => false, - 'T' => false, - 'B' => false - ) - ); - - if ($this->simpleTables && $this->row==0 && $this->col==0){ - $table['simple']['border'] = false; - $table['simple']['border_details']['R']['w'] = 0; - $table['simple']['border_details']['L']['w'] = 0; - $table['simple']['border_details']['T']['w'] = 0; - $table['simple']['border_details']['B']['w'] = 0; - $table['simple']['border_details']['R']['style'] = ''; - $table['simple']['border_details']['L']['style'] = ''; - $table['simple']['border_details']['T']['style'] = ''; - $table['simple']['border_details']['B']['style'] = ''; - } - else if (!$this->simpleTables) { - $c['border'] = false; - $c['border_details']['R']['w'] = 0; - $c['border_details']['L']['w'] = 0; - $c['border_details']['T']['w'] = 0; - $c['border_details']['B']['w'] = 0; - $c['border_details']['mbw']['BL'] = 0; - $c['border_details']['mbw']['BR'] = 0; - $c['border_details']['mbw']['RT'] = 0; - $c['border_details']['mbw']['RB'] = 0; - $c['border_details']['mbw']['TL'] = 0; - $c['border_details']['mbw']['TR'] = 0; - $c['border_details']['mbw']['LT'] = 0; - $c['border_details']['mbw']['LB'] = 0; - $c['border_details']['R']['style'] = ''; - $c['border_details']['L']['style'] = ''; - $c['border_details']['T']['style'] = ''; - $c['border_details']['B']['style'] = ''; - $c['border_details']['R']['s'] = 0; - $c['border_details']['L']['s'] = 0; - $c['border_details']['T']['s'] = 0; - $c['border_details']['B']['s'] = 0; - $c['border_details']['R']['c'] = $this->ConvertColor(0); - $c['border_details']['L']['c'] = $this->ConvertColor(0); - $c['border_details']['T']['c'] = $this->ConvertColor(0); - $c['border_details']['B']['c'] = $this->ConvertColor(0); - $c['border_details']['R']['dom'] = 0; - $c['border_details']['L']['dom'] = 0; - $c['border_details']['T']['dom'] = 0; - $c['border_details']['B']['dom'] = 0; - } - - - if ($table['va']) { $c['va'] = $table['va']; } - if ($table['txta']) { $c['a'] = $table['txta']; } - if ($this->table_border_attr_set) { - if ($table['border_details']) { - if (!$this->simpleTables){ - $c['border_details']['R'] = $table['border_details']['R']; - $c['border_details']['L'] = $table['border_details']['L']; - $c['border_details']['T'] = $table['border_details']['T']; - $c['border_details']['B'] = $table['border_details']['B']; - $c['border'] = $table['border']; - $c['border_details']['L']['dom'] = 1; - $c['border_details']['R']['dom'] = 1; - $c['border_details']['T']['dom'] = 1; - $c['border_details']['B']['dom'] = 1; - } - else if ($this->simpleTables && $this->row==0 && $this->col==0){ - $table['simple']['border_details']['R'] = $table['border_details']['R']; - $table['simple']['border_details']['L'] = $table['border_details']['L']; - $table['simple']['border_details']['T'] = $table['border_details']['T']; - $table['simple']['border_details']['B'] = $table['border_details']['B']; - $table['simple']['border'] = $table['border']; - } - } - } - // INHERITED THEAD CSS Properties - if ($this->tablethead) { - if ($this->thead_valign_default) $c['va'] = $align[strtolower($this->thead_valign_default)]; - if ($this->thead_textalign_default) $c['a'] = $align[strtolower($this->thead_textalign_default)]; - if ($this->thead_font_weight == 'B') { $this->SetStyle('B',true); } - if ($this->thead_font_style == 'I') { $this->SetStyle('I',true); } - if ($this->thead_font_smCaps == 'S') { $this->SetStyle('S',true); } - } - - // INHERITED TFOOT CSS Properties - if ($this->tabletfoot) { - if ($this->tfoot_valign_default) $c['va'] = $align[strtolower($this->tfoot_valign_default)]; - if ($this->tfoot_textalign_default) $c['a'] = $align[strtolower($this->tfoot_textalign_default)]; - if ($this->tfoot_font_weight == 'B') { $this->SetStyle('B',true); } - if ($this->tfoot_font_style == 'I') { $this->SetStyle('I',true); } - if ($this->tfoot_font_style == 'S') { $this->SetStyle('S',true); } - } - - - if ($this->trow_text_rotate){ - $c['R'] = $this->trow_text_rotate; - } - - $this->cell_border_dominance_L = 0; - $this->cell_border_dominance_R = 0; - $this->cell_border_dominance_T = 0; - $this->cell_border_dominance_B = 0; - - $properties = $this->cssmgr->MergeCSS('TABLE',$tag,$attr); - $properties = $this->cssmgr->array_merge_recursive_unique($this->base_table_properties, $properties); - - if (isset($properties['FONT-KERNING']) && (strtoupper($properties['FONT-KERNING'])=='NORMAL' || strtoupper($properties['FONT-KERNING'])=='AUTO')) { - $this->kerning = true; - } - else { $this->kerning = false; } - - if (isset($properties['LETTER-SPACING']) && ($properties['LETTER-SPACING'] || $properties['LETTER-SPACING']==='0') && strtoupper($properties['LETTER-SPACING']) != 'NORMAL') { - $this->lSpacingCSS = strtoupper($properties['LETTER-SPACING']); - $this->fixedlSpacing = $this->ConvertSize($this->lSpacingCSS,$this->FontSize); - } - else { - $this->lSpacingCSS = ''; - $this->fixedlSpacing = false; - } - if (isset($properties['WORD-SPACING']) && strtoupper($properties['WORD-SPACING']) != 'NORMAL') { - $this->wSpacingCSS = strtoupper($properties['WORD-SPACING']); - $this->minwSpacing = $this->ConvertSize($this->wSpacingCSS,$this->FontSize); - } - else { - $this->minwSpacing = 0; - $this->wSpacingCSS = ''; - } - // mPDF 5.6.08 - if (isset($properties['HYPHENS']) && $properties['HYPHENS']) { - if (strtoupper($properties['HYPHENS']) == 'NONE') { $this->textparam['hyphens'] = 2; } - else if (strtoupper($properties['HYPHENS']) == 'AUTO') { $this->textparam['hyphens'] = 1; } - else if (strtoupper($properties['HYPHENS']) == 'MANUAL') { $this->textparam['hyphens'] = 0; } - } - - if (isset($properties['BACKGROUND-COLOR'])) { $c['bgcolor'] = $properties['BACKGROUND-COLOR']; } - else if (isset($properties['BACKGROUND'])) { $c['bgcolor'] = $properties['BACKGROUND']; } - else if (isset($attr['BGCOLOR'])) $c['bgcolor'] = $attr['BGCOLOR']; - - - -/*-- BACKGROUNDS --*/ - if (isset($properties['BACKGROUND-GRADIENT'])) { $c['gradient'] = $properties['BACKGROUND-GRADIENT']; } - else { $c['gradient'] = false; } - - if (isset($properties['BACKGROUND-IMAGE']) && $properties['BACKGROUND-IMAGE'] && !$this->keep_block_together) { - $ret = $this->SetBackground($properties, $this->blk[$this->blklvl]['inner_width']); - if ($ret) { $c['background-image'] = $ret; } - } -/*-- END BACKGROUNDS --*/ - if (isset($properties['VERTICAL-ALIGN'])) { $c['va']=$align[strtolower($properties['VERTICAL-ALIGN'])]; } - else if (isset($attr['VALIGN'])) $c['va'] = $align[strtolower($attr['VALIGN'])]; - - - // mPDF 5.6.13 - if (isset($properties['TEXT-ALIGN']) && $properties['TEXT-ALIGN']) { - if (substr($properties['TEXT-ALIGN'],0,1)=='D') { $c['a'] = $properties['TEXT-ALIGN']; } - else { $c['a'] = $align[strtolower($properties['TEXT-ALIGN'])]; } - } - // mPDF 5.6.13 - if (isset($attr['ALIGN']) && $attr['ALIGN']) { - if (strtolower($attr['ALIGN']) == 'char') { - if (isset($attr['CHAR']) && $attr['CHAR']) { - $char = html_entity_decode($attr['CHAR']); - $char = strcode2utf($char); - $d = array_search($char,$this->decimal_align); - if ($d !== false) { $c['a'] = $d.'R'; } - } - else { $c['a'] = 'DPR'; } - } - else { $c['a'] = $align[strtolower($attr['ALIGN'])]; } - } - - if (!$c['a']) { - if (isset($table['direction']) && $table['direction'] == 'rtl' ) { $c['a'] = 'R'; } - else { $c['a'] = 'L'; } - } - - - if (isset($properties['TEXT-ROTATE']) && ($properties['TEXT-ROTATE'] || $properties['TEXT-ROTATE']==="0")){ - $c['R'] = $properties['TEXT-ROTATE']; - } - if (isset($properties['BORDER'])) { - $bord = $this->border_details($properties['BORDER']); - if ($bord['s']) { - if (!$this->simpleTables){ - $c['border'] = _BORDER_ALL; - $c['border_details']['R'] = $bord; - $c['border_details']['L'] = $bord; - $c['border_details']['T'] = $bord; - $c['border_details']['B'] = $bord; - $c['border_details']['L']['dom'] = $this->cell_border_dominance_L; - $c['border_details']['R']['dom'] = $this->cell_border_dominance_R; - $c['border_details']['T']['dom'] = $this->cell_border_dominance_T; - $c['border_details']['B']['dom'] = $this->cell_border_dominance_B; - } - else if ($this->simpleTables && $this->row==0 && $this->col==0){ - $table['simple']['border'] = _BORDER_ALL; - $table['simple']['border_details']['R'] = $bord; - $table['simple']['border_details']['L'] = $bord; - $table['simple']['border_details']['T'] = $bord; - $table['simple']['border_details']['B'] = $bord; - } - } - } - if (!$this->simpleTables){ - if (isset($properties['BORDER-RIGHT']) && $properties['BORDER-RIGHT']) { - $c['border_details']['R'] = $this->border_details($properties['BORDER-RIGHT']); - $this->setBorder($c['border'], _BORDER_RIGHT, $c['border_details']['R']['s']); - $c['border_details']['R']['dom'] = $this->cell_border_dominance_R; - } - if (isset($properties['BORDER-LEFT']) && $properties['BORDER-LEFT']) { - $c['border_details']['L'] = $this->border_details($properties['BORDER-LEFT']); - $this->setBorder($c['border'], _BORDER_LEFT, $c['border_details']['L']['s']); - $c['border_details']['L']['dom'] = $this->cell_border_dominance_L; - } - if (isset($properties['BORDER-BOTTOM']) && $properties['BORDER-BOTTOM']) { - $c['border_details']['B'] = $this->border_details($properties['BORDER-BOTTOM']); - $this->setBorder($c['border'], _BORDER_BOTTOM, $c['border_details']['B']['s']); - $c['border_details']['B']['dom'] = $this->cell_border_dominance_B; - } - if (isset($properties['BORDER-TOP']) && $properties['BORDER-TOP']) { - $c['border_details']['T'] = $this->border_details($properties['BORDER-TOP']); - $this->setBorder($c['border'], _BORDER_TOP, $c['border_details']['T']['s']); - $c['border_details']['T']['dom'] = $this->cell_border_dominance_T; - } - } - else if ($this->simpleTables && $this->row==0 && $this->col==0){ - if (isset($properties['BORDER-LEFT']) && $properties['BORDER-LEFT']) { - $bord = $this->border_details($properties['BORDER-LEFT']); - if ($bord['s']) { $table['simple']['border'] = _BORDER_ALL; } - else { $table['simple']['border'] = 0; } - $table['simple']['border_details']['R'] = $bord; - $table['simple']['border_details']['L'] = $bord; - $table['simple']['border_details']['T'] = $bord; - $table['simple']['border_details']['B'] = $bord; - } - } - - if ($this->simpleTables && $this->row==0 && $this->col==0 && !$table['borders_separate'] && $table['simple']['border'] ){ - $table['border_details'] = $table['simple']['border_details']; - $table['border'] = $table['simple']['border']; - } - - // Border set on TR (if collapsed only) - if (!$table['borders_separate'] && !$this->simpleTables && isset($table['trborder-left'][$this->row])) { - if ($this->col==0) { - $left = $this->border_details($table['trborder-left'][$this->row]); - $c['border_details']['L'] = $left; - $this->setBorder($c['border'], _BORDER_LEFT, $c['border_details']['L']['s']); - } - $c['border_details']['B'] = $this->border_details($table['trborder-bottom'][$this->row]); - $this->setBorder($c['border'], _BORDER_BOTTOM, $c['border_details']['B']['s']); - $c['border_details']['T'] = $this->border_details($table['trborder-top'][$this->row]); - $this->setBorder($c['border'], _BORDER_TOP, $c['border_details']['T']['s']); - } - - if ($this->packTableData && !$this->simpleTables) { - $c['borderbin'] = $this->_packCellBorder($c); - unset($c['border']); - unset($c['border_details']); - } - - if (isset($properties['PADDING-LEFT'])) { - $c['padding']['L'] = $this->ConvertSize($properties['PADDING-LEFT'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); - } - if (isset($properties['PADDING-RIGHT'])) { - $c['padding']['R'] = $this->ConvertSize($properties['PADDING-RIGHT'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); - } - if (isset($properties['PADDING-BOTTOM'])) { - $c['padding']['B'] = $this->ConvertSize($properties['PADDING-BOTTOM'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); - } - if (isset($properties['PADDING-TOP'])) { - $c['padding']['T'] = $this->ConvertSize($properties['PADDING-TOP'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); - } - - $w = ''; - if (isset($properties['WIDTH'])) { $w = $properties['WIDTH']; } - else if (isset($attr['WIDTH'])) { $w = $attr['WIDTH']; } - if ($w) { - if (strpos($w,'%') && !$this->ignore_table_percents ) { $c['wpercent'] = $w + 0; } // makes 80% -> 80 - else if (!strpos($w,'%') && !$this->ignore_table_widths ) { $c['w'] = $this->ConvertSize($w,$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); } - } - - if (isset($properties['HEIGHT']) && !strpos($properties['HEIGHT'],'%')) { $c['h'] = $this->ConvertSize($properties['HEIGHT'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); } - else if (isset($attr['HEIGHT']) && !strpos($attr['HEIGHT'],'%')) $c['h'] = $this->ConvertSize($attr['HEIGHT'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); - - - if (isset($properties['COLOR'])) { - $cor = $this->ConvertColor($properties['COLOR']); - if ($cor) { - $this->colorarray = $cor; - $this->SetTColor($cor); - } - } - if (isset($properties['FONT-FAMILY'])) { - $this->SetFont($properties['FONT-FAMILY'],'',0,false); - } - if (isset($properties['FONT-SIZE'])) { - $mmsize = $this->ConvertSize($properties['FONT-SIZE'],$this->default_font_size/_MPDFK); - if ($mmsize) { - $this->SetFontSize($mmsize*(_MPDFK),false); - } - } - $c['dfs'] = $this->FontSize; // Default Font size - if (isset($properties['FONT-WEIGHT'])) { - if (strtoupper($properties['FONT-WEIGHT']) == 'BOLD') { $this->SetStyle('B',true); } - } - if (isset($properties['FONT-STYLE'])) { - if (strtoupper($properties['FONT-STYLE']) == 'ITALIC') { $this->SetStyle('I',true); } - } - if (isset($properties['FONT-VARIANT'])) { - if (strtoupper($properties['FONT-VARIANT']) == 'SMALL-CAPS') { $this->SetStyle('S',true); } - } - if (isset($properties['TEXT-DECORATION'])) { - if (strtoupper($properties['TEXT-DECORATION']) == 'LINE-THROUGH') { $this->strike = true; } - else if (strtoupper($properties['TEXT-DECORATION']) == 'UNDERLINE') { $this->SetStyle('U',true); } - } - if (isset($properties['TEXT-SHADOW'])) { - $ts = $this->cssmgr->setCSStextshadow($properties['TEXT-SHADOW']); - if ($ts) { $this->textshadow = $ts; } - } - if (isset($properties['TEXT-TRANSFORM'])) { - if (strtoupper($properties['TEXT-TRANSFORM']) == 'CAPITALIZE') { $this->capitalize = true; } - else if (strtoupper($properties['TEXT-TRANSFORM']) == 'UPPERCASE') { $this->toupper = true; } - else if (strtoupper($properties['TEXT-TRANSFORM']) == 'LOWERCASE') { $this->tolower = true; } - } - if (isset($properties['WHITE-SPACE'])) { - if (strtoupper($properties['WHITE-SPACE']) == 'NOWRAP') { $c['nowrap']= 1; } - } - $properties = array(); - - if (isset($attr['TEXT-ROTATE'])) { - $c['R'] = $attr['TEXT-ROTATE']; - } - if (isset($attr['NOWRAP']) && $attr['NOWRAP']) $c['nowrap']= 1; - - $this->cell[$this->row][$this->col] = $c; - unset($c); - $this->cell[$this->row][$this->col]['s'] = 0 ; - - $cs = $rs = 1; - if (isset($attr['COLSPAN']) && $attr['COLSPAN']>1) $cs = $this->cell[$this->row][$this->col]['colspan'] = $attr['COLSPAN']; - if ($this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['nc'] < $this->col+$cs) { - $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['nc'] = $this->col+$cs; - } // following code moved outside if... - for($l=$this->col; $l < $this->col+$cs ;$l++) { - if ($l-$this->col) $this->cell[$this->row][$l] = 0; - } - - if (isset($attr['ROWSPAN']) && $attr['ROWSPAN']>1) $rs = $this->cell[$this->row][$this->col]['rowspan'] = $attr['ROWSPAN']; - for ($k=$this->row ; $k < $this->row+$rs ;$k++) { - for($l=$this->col; $l < $this->col+$cs ;$l++) { - if ($k-$this->row || $l-$this->col) $this->cell[$k][$l] = 0; - } - } - unset($table); - break; -/*-- END TABLES --*/ - - -/*-- LISTS --*/ - // *********** LISTS ******************** - case 'OL': - case 'UL': - $this->listjustfinished = false; - - if ($this->blockjustfinished && !count($this->textbuffer) && $this->y != $this->tMargin && $this->collapseBlockMargins) { $lastbottommargin = $this->lastblockbottommargin; } - else { $lastbottommargin = 0; } - $this->lastblockbottommargin = 0; - $this->blockjustfinished=false; - - $this->linebreakjustfinished=false; - $this->lastoptionaltag = ''; // Save current HTML specified optional endtag - $this->cssmgr->listCSSlvl++; - if((!$this->tableLevel) && ($this->listlvl == 0)) { - $blockstate = 0; - //if ($this->lastblocklevelchange == 1) { $blockstate = -1; } // Top margins/padding only - //else if ($this->lastblocklevelchange < 1) { $blockstate = 0; } // NO margins/padding - // called from block after new div e.g.
...
    ... Outputs block top margin/border and padding - if (count($this->textbuffer) == 0 && $this->lastblocklevelchange == 1 && !$this->tableLevel && !$this->kwt) { - $this->newFlowingBlock( $this->blk[$this->blklvl]['width'],$this->lineheight,'',false,false,1,true, $this->blk[$this->blklvl]['direction']); - $this->finishFlowingBlock(true); // true = END of flowing block - } - else if (count($this->textbuffer)) { $this->printbuffer($this->textbuffer,$blockstate); } - $this->textbuffer=array(); - $this->lastblocklevelchange = -1; - } - // ol and ul types are mixed here - if ($this->listlvl == 0) { - $this->list_indent = array(); - $this->list_align = array(); - $this->list_lineheight = array(); - $this->InlineProperties['LIST'] = array(); - $this->InlineProperties['LISTITEM'] = array(); - } - -/*-- TABLES --*/ - // A simple list for inside a table - if($this->tableLevel) { - $this->list_indent[$this->listlvl] = 0; // mm default indent for each level - if ($tag == 'OL') $this->listtype = '1'; - else if ($tag == 'UL') $this->listtype = 'disc'; - if ($this->listlvl > 0) { - $this->listlist[$this->listlvl]['MAXNUM'] = $this->listnum; //save previous lvl's maxnum - } - $this->listlvl++; - // mPDF 5.6.15 - if (isset($attr['START'])) { $this->listnum = intval($attr['START']); } - else { $this->listnum = 0; } - $this->listlist[$this->listlvl] = array('TYPE'=>$this->listtype,'MAXNUM'=>$this->listnum); - break; - } -/*-- END TABLES --*/ - - - if (($this->PDFA || $this->PDFX) && $tag == 'UL') { - if (($this->PDFA && !$this->PDFAauto) || ($this->PDFX && !$this->PDFXauto)) { $this->PDFAXwarnings[] = "List bullets cannot use core font Zapfdingbats in PDFA1-b or PDFX/1-a. (Substitute characters from current font used if available, otherwise substitutes hyphen '-')"; } - } - - if ($this->cssmgr->listCSSlvl==1) { - $properties = $this->cssmgr->MergeCSS('TOPLIST',$tag,$attr); - } - else { - $properties = $this->cssmgr->MergeCSS('LIST',$tag,$attr); - } - if (!empty($properties)) $this->setCSS($properties,'LIST'); - // List-type - - $this->listtype = ''; - if (isset($properties['LIST-STYLE-TYPE'])) { - $this->listtype = $this->_getListStyle($properties['LIST-STYLE-TYPE']); - } - else if (isset($properties['LIST-STYLE'])) { - $this->listtype = $this->_getListStyle($properties['LIST-STYLE']); - } - else if (isset($attr['TYPE']) && $attr['TYPE']) { $this->listtype = $attr['TYPE']; } - if (!$this->listtype) { - if ($tag == 'OL') $this->listtype = '1'; - if ($tag == 'UL') { - if ($this->listlvl % 3 == 0) $this->listtype = 'disc'; - elseif ($this->listlvl % 3 == 1) $this->listtype = 'circle'; - else $this->listtype = 'square'; - } - } - if ($this->listlvl == 0) { - $this->inherit_lineheight = 0; - $this->listlvl++; // first depth level - // mPDF 5.6.15 - if (isset($attr['START'])) { $this->listnum = intval($attr['START']); } - else { $this->listnum = 0; } - $this->listDir = (isset($this->blk[$this->blklvl]['direction']) ? $this->blk[$this->blklvl]['direction'] : null); - $occur = $this->listoccur[$this->listlvl] = 1; - $this->listlist[$this->listlvl][1] = array('TYPE'=>$this->listtype,'MAXNUM'=>$this->listnum); - } - else { - if (!empty($this->textbuffer)) - { - $this->listitem[] = array($this->listlvl,$this->listnum,$this->textbuffer,$this->listoccur[$this->listlvl],$this->listitemtype); - $this->listnum++; - } - // Save current lineheight to inherit - $this->textbuffer = array(); - $occur = $this->listoccur[$this->listlvl]; - $this->listlist[$this->listlvl][$occur]['MAXNUM'] = $this->listnum; //save previous lvl's maxnum - $this->listlvl++; - // mPDF 5.6.15 - if (isset($attr['START'])) { $this->listnum = intval($attr['START']); } - else { $this->listnum = 0; } - - - if (!isset($this->listoccur[$this->listlvl]) || $this->listoccur[$this->listlvl] == 0) $this->listoccur[$this->listlvl] = 1; - else $this->listoccur[$this->listlvl]++; - $occur = $this->listoccur[$this->listlvl]; - $this->listlist[$this->listlvl][$occur] = array('TYPE'=>$this->listtype,'MAXNUM'=>$this->listnum); - } - - - // TOP LEVEL ONLY - if ($this->listlvl == 1) { - if (isset($properties['MARGIN-TOP'])) { - if ($lastbottommargin) { - $tmp = $this->ConvertSize($properties['MARGIN-TOP'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); - if ($tmp > $lastbottommargin) { $properties['MARGIN-TOP'] -= $lastbottommargin; } - else { $properties['MARGIN-TOP'] = 0; } - } - $this->DivLn($this->ConvertSize($properties['MARGIN-TOP'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false),$this->blklvl,true,1); // collapsible - } - if (isset($properties['MARGIN-BOTTOM'])) { - $this->list_margin_bottom = $this->ConvertSize($properties['MARGIN-BOTTOM'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); - } - - if (isset($this->blk[$this->blklvl]['line_height'])) { - $this->list_lineheight[$this->listlvl][$occur] = $this->blk[$this->blklvl]['line_height']; - } - - if (isset($properties['DIRECTION']) && $properties['DIRECTION']) { $this->listDir = strtolower($properties['DIRECTION']); } - else if (isset($attr['DIR']) && $attr['DIR']) { $this->listDir = strtolower($attr['DIR']); } - - } - $this->list_indent[$this->listlvl][$occur] = 5; // mm default indent for each level - if (isset($properties['TEXT-INDENT'])) { $this->list_indent[$this->listlvl][$occur] = $this->ConvertSize($properties['TEXT-INDENT'],$this->blk[$this->blklvl]['inner_width'],$this->FontSize,false); } - - if (isset($properties['TEXT-ALIGN'])) { - $this->list_align[$this->listlvl][$occur] = $align[strtolower($properties['TEXT-ALIGN'])]; - } - - - if (isset($properties['LINE-HEIGHT'])) { - $this->list_lineheight[$this->listlvl][$occur] = $this->fixLineheight($properties['LINE-HEIGHT']); - } - else if ($this->listlvl>1 && isset($this->list_lineheight[($this->listlvl - 1)][1])) { - $this->list_lineheight[$this->listlvl][$occur] = end($this->list_lineheight[($this->listlvl - 1)]); - } - if (!isset($this->list_lineheight[$this->listlvl][$occur]) || !$this->list_lineheight[$this->listlvl][$occur]) { - $this->list_lineheight[$this->listlvl][$occur] = $this->normalLineheight; - } - - $this->InlineProperties['LIST'][$this->listlvl][$occur] = $this->saveInlineProperties(); - $properties = array(); - break; - - - - case 'LI': - // Start Block - $this->lastoptionaltag = $tag; // Save current HTML specified optional endtag - $this->ignorefollowingspaces = true; //Eliminate exceeding left-side spaces -/*-- TABLES --*/ - // A simple list for inside a table - if($this->tableLevel) { - $this->blockjustfinished=false; - - // If already something in the Cell - if ((isset($this->cell[$this->row][$this->col]['maxs']) && $this->cell[$this->row][$this->col]['maxs'] > 0 ) || $this->cell[$this->row][$this->col]['s'] > 0 ) { - $this->_saveCellTextBuffer("\n"); - if (!isset($this->cell[$this->row][$this->col]['maxs'])) { - $this->cell[$this->row][$this->col]['maxs'] = $this->cell[$this->row][$this->col]['s']; - } - elseif($this->cell[$this->row][$this->col]['maxs'] < $this->cell[$this->row][$this->col]['s']) { - $this->cell[$this->row][$this->col]['maxs'] = $this->cell[$this->row][$this->col]['s']; - } - $this->cell[$this->row][$this->col]['s'] = 0 ; - } - if ($this->listlvl == 0) { //in case of malformed HTML code. Example:(...)

  1. Content
  2. Paragraph1

    (...) - $this->listlvl++; // first depth level - $this->listnum = 0; // reset - $this->listlist[$this->listlvl] = array('TYPE'=>'disc','MAXNUM'=>$this->listnum); - } - - $this->listnum++; - switch($this->listlist[$this->listlvl]['TYPE']) { - case 'A': - $blt = $this->dec2alpha($this->listnum,true).$this->list_number_suffix; - break; - case 'a': - $blt = $this->dec2alpha($this->listnum,false).$this->list_number_suffix; - break; - case 'I': - $blt = $this->dec2roman($this->listnum,true).$this->list_number_suffix; - break; - case 'i': - $blt = $this->dec2roman($this->listnum,false).$this->list_number_suffix; - break; - case '1': - $blt = $this->listnum.$this->list_number_suffix; - break; - default: - if ($this->listlvl % 3 == 1 && $this->_charDefined($this->CurrentFont['cw'],8226)) { $blt = "\xe2\x80\xa2"; } // • - else if ($this->listlvl % 3 == 2 && $this->_charDefined($this->CurrentFont['cw'],9900)) { $blt = "\xe2\x9a\xac"; } // ⚬ - else if ($this->listlvl % 3 == 0 && $this->_charDefined($this->CurrentFont['cw'],9642)) { $blt = "\xe2\x96\xaa"; } // ▪ - else { $blt = '-'; } - break; - } - - // change to   spaces - if ($this->usingCoreFont) { - $ls = str_repeat(chr(160).chr(160),($this->listlvl-1)*2) . $blt . ' '; - } - else { - $ls = str_repeat("\xc2\xa0\xc2\xa0",($this->listlvl-1)*2) . $blt . ' '; - } - - $this->_saveCellTextBuffer($ls, $this->HREF); - $this->cell[$this->row][$this->col]['s'] += $this->GetStringWidth($ls); - break; - } -/*-- END TABLES --*/ - //Observation: is ignored - if ($this->listlvl == 0) { //in case of malformed HTML code. Example:(...)

  3. Content
  4. Paragraph1

    (...) - //First of all, skip a line - $this->listlvl++; // first depth level - $this->listnum = 0; // reset - $this->listoccur[$this->listlvl] = 1; - $this->listlist[$this->listlvl][1] = array('TYPE'=>'disc','MAXNUM'=>$this->listnum); - } - if ($this->listnum == 0) { - $this->listnum++; - $this->textbuffer = array(); - } - else { - if (!empty($this->textbuffer)) { - if (!$this->listjustfinished) { - $this->listitem[] = array($this->listlvl,$this->listnum,$this->textbuffer,$this->listoccur[$this->listlvl],$this->listitemtype); - $this->listnum++; - } - else { - $this->listitem[] = array($this->listlvl,$this->listnum,$this->textbuffer,$this->listoccur[$this->listlvl],$this->listitemtype, true); - } - } - $this->textbuffer = array(); - } - $this->listjustfinished = false; - - $this->cssmgr->listCSSlvl++; - $properties = $this->cssmgr->MergeCSS('LIST',$tag,$attr); - if (!empty($properties)) $this->setCSS($properties,'LIST'); - $this->InlineProperties['LISTITEM'][$this->listlvl][$this->listoccur[$this->listlvl]][$this->listnum] = $this->saveInlineProperties(); - - // List-type - if (isset($properties['LIST-STYLE-TYPE'])) { - $this->listitemtype = $this->_getListStyle($properties['LIST-STYLE-TYPE']); - } - else if (isset($properties['LIST-STYLE'])) { - $this->listitemtype = $this->_getListStyle($properties['LIST-STYLE']); - } - else if (isset($attr['TYPE']) && $attr['TYPE']) { $this->listitemtype = $attr['TYPE']; } - else $this->listitemtype = ''; - break; -/*-- END LISTS --*/ - - }//end of switch -} - -/*-- LISTS --*/ - -function _getListStyle($ls) { - if (stristr($ls,'decimal')) { return '1'; } - else if (preg_match('/(disc|circle|square|arabic-indic|bengali|devanagari|gujarati|gurmukhi|kannada|malayalam|oriya|persian|tamil|telugu|thai|urdu|cambodian|khmer|lao)/i',$ls,$m)) { - return strtolower(trim($m[1])); - } - else if (stristr($ls,'lower-roman')) { return 'i'; } - else if (stristr($ls,'upper-roman')) { return 'I'; } - else if (stristr($ls,'lower-latin')|| stristr($ls,'lower-alpha')) { return 'a'; } - else if (stristr($ls,'upper-latin') || stristr($ls,'upper-alpha')) { return 'A'; } - else if (stristr($ls,'none')) { return 'none'; } - else if (preg_match('/U\+([a-fA-F0-9]+)/i',$ls)) { return $ls; } - else { return ''; } -} -/*-- END LISTS --*/ - - - -function CloseTag($tag) -{ - $this->ignorefollowingspaces = false; //Eliminate exceeding left-side spaces - //Closing tag - if($tag=='OPTION') { $this->selectoption['ACTIVE'] = false; $this->lastoptionaltag = ''; } - - if($tag=='TTS' or $tag=='TTA' or $tag=='TTZ') { - if ($this->InlineProperties[$tag]) { $this->restoreInlineProperties($this->InlineProperties[$tag]); } - unset($this->InlineProperties[$tag]); - $ltag = strtolower($tag); - $this->$ltag = false; - } - - - if($tag=='FONT' || $tag=='SPAN' || $tag=='CODE' || $tag=='KBD' || $tag=='SAMP' || $tag=='TT' || $tag=='VAR' - || $tag=='INS' || $tag=='STRONG' || $tag=='CITE' || $tag=='SUB' || $tag=='SUP' || $tag=='S' || $tag=='STRIKE' || $tag=='DEL' - || $tag=='Q' || $tag=='EM' || $tag=='B' || $tag=='I' || $tag=='U' | $tag=='SMALL' || $tag=='BIG' || $tag=='ACRONYM' - || $tag=='MARK' || $tag=='TIME' || $tag=='PROGRESS' || $tag=='METER' - ) { // mPDF 5.5.09 - - // mPDF 5.7.3 Inline tags - if ($tag=='PROGRESS' || $tag=='METER') { - if (isset($this->InlineProperties[$tag]) && $this->InlineProperties[$tag]) { $this->restoreInlineProperties($this->InlineProperties[$tag]); } - unset($this->InlineProperties[$tag]); - if (isset($this->InlineAnnots[$tag]) && $this->InlineAnnots[$tag]) { $annot = $this->InlineAnnots[$tag]; } // *ANNOTATIONS* - unset($this->InlineAnnots[$tag]); // *ANNOTATIONS* - } - else { - if (isset($this->InlineProperties[$tag]) && count($this->InlineProperties[$tag])) { - $tmpProps = array_pop($this->InlineProperties[$tag]); // mPDF 5.7.4 - $this->restoreInlineProperties($tmpProps); - } - if (isset($this->InlineAnnots[$tag]) && count($this->InlineAnnots[$tag])) { // *ANNOTATIONS* - $annot = array_pop($this->InlineAnnots[$tag]); // *ANNOTATIONS* - } // *ANNOTATIONS* - } - -/*-- ANNOTATIONS --*/ - if (isset($annot)) { - if($this->tableLevel) { // *TABLES* - $this->cell[$this->row][$this->col]['textbuffer'][] = array($annot); // *TABLES* - } // *TABLES* - else { // *TABLES* - $this->textbuffer[] = array($annot); - } // *TABLES* - } -/*-- END ANNOTATIONS --*/ - } - - if($tag=='METER' || $tag=='PROGRESS') { - $this->inMeter = false; // mPDF 5.5.09 - } - - - if($tag=='A') { - $this->HREF=''; - if (isset($this->InlineProperties['A'])) { $this->restoreInlineProperties($this->InlineProperties['A']); } - unset($this->InlineProperties['A']); - } - - if($tag=='LEGEND') { // mPDF 5.4.18 - if (count($this->textbuffer) && !$this->tableLevel) { - $leg = $this->textbuffer[(count($this->textbuffer)-1)]; - unset($this->textbuffer[(count($this->textbuffer)-1)]); - $this->textbuffer = array_values($this->textbuffer); - $this->blk[$this->blklvl]['border_legend'] = $leg; - $this->blk[$this->blklvl]['margin_top'] += ($leg[11]/2)/_MPDFK; - $this->blk[$this->blklvl]['padding_top'] += ($leg[11]/2)/_MPDFK; - } - if (isset($this->InlineProperties['LEGEND'])) { $this->restoreInlineProperties($this->InlineProperties['LEGEND']); } - unset($this->InlineProperties['LEGEND']); - $this->ignorefollowingspaces = true; //Eliminate exceeding left-side spaces - } - - - -/*-- FORMS --*/ - // *********** FORM ELEMENTS ******************** - - if($tag=='TEXTAREA') { - $this->specialcontent = ''; - if ($this->InlineProperties[$tag]) { $this->restoreInlineProperties($this->InlineProperties[$tag]); } - unset($this->InlineProperties[$tag]); - } - - - if($tag=='SELECT') { - $this->lastoptionaltag = ''; - $texto = ''; - if (isset($this->selectoption['SELECTED'])) { $texto = $this->selectoption['SELECTED']; } - - if ($this->useActiveForms) { $w = $this->selectoption['MAXWIDTH']; } - else { $w = $this->GetStringWidth($texto); } - if ($w == 0) { $w = 5; } - $objattr['type'] = 'select'; - $objattr['text'] = $texto; - if (isset($this->selectoption['NAME'])) { $objattr['fieldname'] = $this->selectoption['NAME']; } - if (isset($this->selectoption['READONLY'])) { $objattr['readonly'] = true; } - if (isset($this->selectoption['REQUIRED'])) { $objattr['required'] = true; } - if (isset($this->selectoption['SPELLCHECK'])) { $objattr['spellcheck'] = true; } - if (isset($this->selectoption['EDITABLE'])) { $objattr['editable'] = true; } - if (isset($this->selectoption['ONCHANGE'])) { $objattr['onChange'] = $this->selectoption['ONCHANGE']; } - if (isset($this->selectoption['ITEMS'])) { $objattr['items'] = $this->selectoption['ITEMS']; } - if (isset($this->selectoption['MULTIPLE'])) { $objattr['multiple'] = $this->selectoption['MULTIPLE']; } - if (isset($this->selectoption['DISABLED'])) { $objattr['disabled'] = $this->selectoption['DISABLED']; } - if (isset($this->selectoption['TITLE'])) { $objattr['title'] = $this->selectoption['TITLE']; } - if (isset($this->selectoption['COLOR'])) { $objattr['color'] = $this->selectoption['COLOR']; } - if (isset($this->selectoption['SIZE'])) { $objattr['size'] = $this->selectoption['SIZE']; } - if (isset($objattr['size']) && $objattr['size']>1) { $rows=$objattr['size']; } else { $rows = 1; } - - $objattr['fontfamily'] = $this->FontFamily; - $objattr['fontsize'] = $this->FontSizePt; - - $objattr['width'] = $w + ($this->form->form_element_spacing['select']['outer']['h']*2)+($this->form->form_element_spacing['select']['inner']['h']*2) + ($this->FontSize*1.4); - $objattr['height'] = ($this->FontSize*$rows) + ($this->form->form_element_spacing['select']['outer']['v']*2)+($this->form->form_element_spacing['select']['inner']['v']*2); - $e = "\xbb\xa4\xactype=select,objattr=".serialize($objattr)."\xbb\xa4\xac"; - - // Clear properties - tidy up - $properties = array(); - - // Output it to buffers - if ($this->tableLevel) { // *TABLES* - $this->_saveCellTextBuffer($e, $this->HREF); - $this->cell[$this->row][$this->col]['s'] += $objattr['width'] ; // *TABLES* - } // *TABLES* - else { // *TABLES* - $this->_saveTextBuffer($e, $this->HREF); - } // *TABLES* - - $this->selectoption = array(); - $this->specialcontent = ''; - - if ($this->InlineProperties[$tag]) { $this->restoreInlineProperties($this->InlineProperties[$tag]); } - unset($this->InlineProperties[$tag]); - - } -/*-- END FORMS --*/ - - - // *********** BLOCKS ******************** - if($tag=='P' || $tag=='DIV' || $tag=='H1' || $tag=='H2' || $tag=='H3' || $tag=='H4' || $tag=='H5' || $tag=='H6' || $tag=='PRE' - || $tag=='FORM' || $tag=='ADDRESS' || $tag=='BLOCKQUOTE' || $tag=='CENTER' || $tag=='DT' || $tag=='DD' || $tag=='DL' - || $tag=='CAPTION' || $tag=='FIELDSET' - || $tag=='ARTICLE' || $tag=='ASIDE' || $tag=='FIGURE' || $tag=='FIGCAPTION' || $tag=='FOOTER' || $tag=='HEADER' || $tag=='HGROUP' - || $tag=='MAIN' || $tag=='NAV' || $tag=='SECTION' || $tag=='DETAILS' || $tag=='SUMMARY' - ) { // mPDF 5.7.3 - - $this->ignorefollowingspaces = true; //Eliminate exceeding left-side spaces - $this->blockjustfinished=true; - - $this->lastblockbottommargin = $this->blk[$this->blklvl]['margin_bottom']; -/*-- LISTS --*/ - if ($this->listlvl>0) { return; } -/*-- END LISTS --*/ - - // mPDF 5.6.34 - if (preg_match('/^H\d/',$tag) && !$this->tableLevel && !$this->writingToC) { // mPDF 5.6.38 - if (isset($this->h2toc[$tag]) || isset($this->h2bookmarks[$tag])) { - $content = ''; - if (count($this->textbuffer)==1) { $content = $this->textbuffer[0][0]; } - else { - for ($i=0;$itextbuffer);$i++) { - if (substr($this->textbuffer[$i][0],0,3) != "\xbb\xa4\xac") { //inline object - $content .= $this->textbuffer[$i][0]; - } - } - } -/*-- TOC --*/ - if (isset($this->h2toc[$tag])) { - $objattr = array(); - $objattr['type'] = 'toc'; - $objattr['toclevel'] = $this->h2toc[$tag]; - $objattr['CONTENT'] = htmlspecialchars($content); // mPDF 5.6.37 - $e = "\xbb\xa4\xactype=toc,objattr=".serialize($objattr)."\xbb\xa4\xac"; - array_unshift($this->textbuffer,array($e)); - } -/*-- END TOC --*/ -/*-- BOOKMARKS --*/ - if (isset($this->h2bookmarks[$tag])) { - $objattr = array(); - $objattr['type'] = 'bookmark'; - $objattr['bklevel'] = $this->h2bookmarks[$tag]; - $objattr['CONTENT'] = $content; - $e = "\xbb\xa4\xactype=toc,objattr=".serialize($objattr)."\xbb\xa4\xac"; - array_unshift($this->textbuffer,array($e)); - } -/*-- END BOOKMARKS --*/ - } - } - -/*-- TABLES --*/ - if($this->tableLevel) { - if ($this->linebreakjustfinished) { $this->blockjustfinished=false; } - if (isset($this->InlineProperties['BLOCKINTABLE'])) { - if ($this->InlineProperties['BLOCKINTABLE']) { $this->restoreInlineProperties($this->InlineProperties['BLOCKINTABLE']); } - unset($this->InlineProperties['BLOCKINTABLE']); - } - if($tag=='PRE') { $this->ispre=false; } - return; - } -/*-- END TABLES --*/ - $this->lastoptionaltag = ''; - $this->divbegin=false; - - $this->linebreakjustfinished=false; - - $this->x = $this->lMargin + $this->blk[$this->blklvl]['outer_left_margin']; - -/*-- CSS-FLOAT --*/ - // If float contained in a float, need to extend bottom to allow for it - $currpos = $this->page*1000 + $this->y; - if (isset($this->blk[$this->blklvl]['float_endpos']) && $this->blk[$this->blklvl]['float_endpos'] > $currpos) { - $old_page = $this->page; - $new_page = intval($this->blk[$this->blklvl]['float_endpos'] /1000); - if ($old_page != $new_page) { - $s = $this->PrintPageBackgrounds(); - // Writes after the marker so not overwritten later by page background etc. - $this->pages[$this->page] = preg_replace('/(___BACKGROUND___PATTERNS'.$this->uniqstr.')/', '\\1'."\n".$s."\n", $this->pages[$this->page]); - $this->pageBackgrounds = array(); - $this->page = $new_page; - $this->ResetMargins(); - $this->Reset(); - $this->pageoutput[$this->page] = array(); - } - $this->y = (($this->blk[$this->blklvl]['float_endpos'] *1000) % 1000000)/1000; // mod changes operands to integers before processing - } -/*-- END CSS-FLOAT --*/ - - - //Print content - if ($this->lastblocklevelchange == 1) { $blockstate = 3; } // Top & bottom margins/padding - else if ($this->lastblocklevelchange == -1) { $blockstate = 2; } // Bottom margins/padding only - else { $blockstate = 0; } - // called from after e.g.
... Outputs block margin/border and padding - if (count($this->textbuffer) && $this->textbuffer[count($this->textbuffer)-1]) { - if (substr($this->textbuffer[count($this->textbuffer)-1][0],0,3) != "\xbb\xa4\xac") { // not special content - if ($this->usingCoreFont) { - $this->textbuffer[count($this->textbuffer)-1][0] = preg_replace('/[ ]+$/', '', $this->textbuffer[count($this->textbuffer)-1][0]); - } - else { - $this->textbuffer[count($this->textbuffer)-1][0] = preg_replace('/[ ]+$/u', '', $this->textbuffer[count($this->textbuffer)-1][0]); } - } - } - - if (count($this->textbuffer) == 0 && $this->lastblocklevelchange != 0) { - //$this->newFlowingBlock( $this->blk[$this->blklvl]['width'],$this->lineheight,'',false,false,2,true, $this->blk[$this->blklvl]['direction']); - $this->newFlowingBlock( $this->blk[$this->blklvl]['width'],$this->lineheight,'',false,false,$blockstate,true, $this->blk[$this->blklvl]['direction']); - $this->finishFlowingBlock(true); // true = END of flowing block - $this->PaintDivBB('',$blockstate); - } - else { - $this->printbuffer($this->textbuffer,$blockstate); - } - - - $this->textbuffer=array(); - - if ($this->blk[$this->blklvl]['keep_block_together']) { - $this->printdivbuffer(); - } - - if ($this->kwt) { - $this->kwt_height = $this->y - $this->kwt_y0; - } - -/*-- CSS-IMAGE-FLOAT --*/ - $this->printfloatbuffer(); -/*-- END CSS-IMAGE-FLOAT --*/ - - if($tag=='PRE') { $this->ispre=false; } - -/*-- CSS-FLOAT --*/ - if ($this->blk[$this->blklvl]['float'] == 'R') { - // If width not set, here would need to adjust and output buffer - $s = $this->PrintPageBackgrounds(); - // Writes after the marker so not overwritten later by page background etc. - $this->pages[$this->page] = preg_replace('/(___BACKGROUND___PATTERNS'.$this->uniqstr.')/', '\\1'."\n".$s."\n", $this->pages[$this->page]); - $this->pageBackgrounds = array(); - $this->Reset(); - $this->pageoutput[$this->page] = array(); - - for($i=($this->blklvl-1); $i >= 0; $i--) { - if (isset($this->blk[$i]['float_endpos'])) { $this->blk[$i]['float_endpos'] = max($this->blk[$i]['float_endpos'], ($this->page*1000 + $this->y)); } - else { $this->blk[$i]['float_endpos'] = $this->page*1000 + $this->y; } - } - - $this->floatDivs[] = array( - 'side'=>'R', - 'startpage'=>$this->blk[$this->blklvl]['startpage'] , - 'y0'=>$this->blk[$this->blklvl]['float_start_y'] , - 'startpos'=> ($this->blk[$this->blklvl]['startpage']*1000 + $this->blk[$this->blklvl]['float_start_y']), - 'endpage'=>$this->page , - 'y1'=>$this->y , - 'endpos'=> ($this->page*1000 + $this->y), - 'w'=> $this->blk[$this->blklvl]['float_width'], - 'blklvl'=>$this->blklvl, - 'blockContext' => $this->blk[$this->blklvl-1]['blockContext'] - ); - - $this->y = $this->blk[$this->blklvl]['float_start_y'] ; - $this->page = $this->blk[$this->blklvl]['startpage'] ; - $this->ResetMargins(); - $this->pageoutput[$this->page] = array(); - } - if ($this->blk[$this->blklvl]['float'] == 'L') { - // If width not set, here would need to adjust and output buffer - $s = $this->PrintPageBackgrounds(); - // Writes after the marker so not overwritten later by page background etc. - $this->pages[$this->page] = preg_replace('/(___BACKGROUND___PATTERNS'.$this->uniqstr.')/', '\\1'."\n".$s."\n", $this->pages[$this->page]); - $this->pageBackgrounds = array(); - $this->Reset(); - $this->pageoutput[$this->page] = array(); - - for($i=($this->blklvl-1); $i >= 0; $i--) { - if (isset($this->blk[$i]['float_endpos'])) { $this->blk[$i]['float_endpos'] = max($this->blk[$i]['float_endpos'], ($this->page*1000 + $this->y)); } - else { $this->blk[$i]['float_endpos'] = $this->page*1000 + $this->y; } - } - - $this->floatDivs[] = array( - 'side'=>'L', - 'startpage'=>$this->blk[$this->blklvl]['startpage'] , - 'y0'=>$this->blk[$this->blklvl]['float_start_y'] , - 'startpos'=> ($this->blk[$this->blklvl]['startpage']*1000 + $this->blk[$this->blklvl]['float_start_y']), - 'endpage'=>$this->page , - 'y1'=>$this->y , - 'endpos'=> ($this->page*1000 + $this->y), - 'w'=> $this->blk[$this->blklvl]['float_width'], - 'blklvl'=>$this->blklvl, - 'blockContext' => $this->blk[$this->blklvl-1]['blockContext'] - ); - - $this->y = $this->blk[$this->blklvl]['float_start_y'] ; - $this->page = $this->blk[$this->blklvl]['startpage'] ; - $this->ResetMargins(); - $this->pageoutput[$this->page] = array(); - } -/*-- END CSS-FLOAT --*/ - - if (isset($this->blk[$this->blklvl]['visibility']) && $this->blk[$this->blklvl]['visibility']!='visible') { - $this->SetVisibility('visible'); - } - - if (isset($this->blk[$this->blklvl]['page_break_after'])) { $page_break_after = $this->blk[$this->blklvl]['page_break_after']; } - else { $page_break_after = ''; } - - //Reset values - $this->Reset(); - - // mPDF 5.6.01 - LAYERS - if (isset($this->blk[$this->blklvl]['z-index']) && $this->blk[$this->blklvl]['z-index'] > 0) { - $this->EndLayer(); - } - - if ($this->blklvl > 0) { // ==0 SHOULDN'T HAPPEN - NOT XHTML - if ($this->blk[$this->blklvl]['tag'] == $tag) { - unset($this->blk[$this->blklvl]); - $this->blklvl--; - } - //else { echo $tag; exit; } // debug - forces error if incorrectly nested html tags - } - - $this->lastblocklevelchange = -1 ; - // Reset Inline-type properties - if (isset($this->blk[$this->blklvl]['InlineProperties'])) { $this->restoreInlineProperties($this->blk[$this->blklvl]['InlineProperties']); } - - $this->x = $this->lMargin + $this->blk[$this->blklvl]['outer_left_margin']; - - if ($page_break_after) { - $save_blklvl = $this->blklvl; - $save_blk = $this->blk; - $save_silp = $this->saveInlineProperties(); - $save_ilp = $this->InlineProperties; - if ($this->blklvl>1) { - // Close any open block tags - for ($b= $this->blklvl;$b>0;$b--) { $this->CloseTag($this->blk[$b]['tag']); } - // Output any text left in buffer - if (count($this->textbuffer)) { $this->printbuffer($this->textbuffer); $this->textbuffer=array(); } - } -/*-- COLUMNS --*/ - $save_cols = false; - if ($this->ColActive) { - $save_cols = true; - $save_nbcol = $this->NbCol; // other values of gap and vAlign will not change by setting Columns off - $this->SetColumns(0); - } -/*-- END COLUMNS --*/ - if ($page_break_after == 'RIGHT') { $this->AddPage($this->CurOrientation,'NEXT-ODD','','','','','', '','', '','','','','','',0,0,0,0,$pagesel); } - else if ($page_break_after == 'LEFT') { $this->AddPage($this->CurOrientation,'NEXT-EVEN','','','','','', '','', '','','','','','',0,0,0,0,$pagesel); } - else { $this->AddPage($this->CurOrientation,'','','','','','', '','', '','','','','','',0,0,0,0,$pagesel); } - // mPDF 5.7.3 - if (!$this->restoreBlockPagebreaks) { - $this->blklvl = 0; - $this->lastblocklevelchange = 0; - $this->Reset(); - $this->restoreInlineProperties($this->blk[0]['InlineProperties']); - } -/*-- COLUMNS --*/ - if ($save_cols) { - // Restore columns - $this->SetColumns($save_nbcol,$this->colvAlign,$this->ColGap); - } -/*-- END COLUMNS --*/ - if ($this->restoreBlockPagebreaks && !$this->tableLevel && !$this->listlvl) { - $this->blk = $save_blk; - // Re-open block tags - $t = $this->blk[0]['tag']; - $a = $this->blk[0]['attr']; - $this->blklvl = 0; - for ($b=0; $b<=$save_blklvl;$b++) { - $tc = $t; - $ac = $a; - $t = $this->blk[$b+1]['tag']; - $a = $this->blk[$b+1]['attr']; - unset($this->blk[$b+1]); - $this->OpenTag($tc,$ac); - } - $this->InlineProperties = $save_ilp; - $this->restoreInlineProperties($save_silp); - } - } - - } - - -/*-- TABLES --*/ - - if($tag=='TH') $this->SetStyle('B',false); - - if(($tag=='TH' or $tag=='TD') && $this->tableLevel) { - $this->lastoptionaltag = 'TR'; - unset($this->cssmgr->tablecascadeCSS[$this->cssmgr->tbCSSlvl]); - $this->cssmgr->tbCSSlvl--; - if (!$this->tdbegin) { return; } - $this->tdbegin = false; - // Added for correct calculation of cell column width - otherwise misses the last line if not end

etc. - if (!isset($this->cell[$this->row][$this->col]['maxs'])) { - if (!is_array($this->cell[$this->row][$this->col])) { $this->Error("You may have an error in your HTML code e.g. </td></td>"); } - $this->cell[$this->row][$this->col]['maxs'] = $this->cell[$this->row][$this->col]['s']; - } - elseif($this->cell[$this->row][$this->col]['maxs'] < $this->cell[$this->row][$this->col]['s']) { - $this->cell[$this->row][$this->col]['maxs'] = $this->cell[$this->row][$this->col]['s']; - } - - // Remove last
if at end of cell - if (isset($this->cell[$this->row][$this->col]['textbuffer'])) { $ntb = count($this->cell[$this->row][$this->col]['textbuffer']); } - else { $ntb = 0; } - if ($ntb>1 && $this->cell[$this->row][$this->col]['textbuffer'][$ntb-1][0] == "\n") { - unset($this->cell[$this->row][$this->col]['textbuffer'][$ntb-1]); - } - - if ($this->cacheTables) { - $clen = $this->_cacheCell($this->cell[$this->row][$this->col], $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['cache']); - $this->cell[$this->row][$this->col] = $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['ptr']; - $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['ptr'] += $clen; - } - - if ($this->tablethead) { - $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['is_thead'][$this->row] = true; - if ($this->tableLevel==1) { $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['headernrows'] = max($this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['headernrows'] , ($this->row+1)); } - } - if ($this->tabletfoot) { - $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['is_tfoot'][$this->row] = true; - if ($this->tableLevel==1) { $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['footernrows'] = max($this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['footernrows'] , ($this->row+1 - $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['headernrows'] )); } - } - $this->Reset(); - } - - if($tag=='TR' && $this->tableLevel) { - // If Border set on TR - Update right border - if (isset($this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['trborder-left'][$this->row])) { - if ($this->cacheTables) { - $c = $this->_uncacheCell($this->cell[$this->row][$this->col], $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['cache'], null); - } - else { $c =& $this->cell[$this->row][$this->col]; } - if ($c) { - if ($this->packTableData) { - $cell = $this->_unpackCellBorder($c['borderbin'] ); - } - else { $cell = $c; } - $cell['border_details']['R'] = $this->border_details($this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['trborder-right'][$this->row]); - $this->setBorder($cell['border'], _BORDER_RIGHT, $cell['border_details']['R']['s']); - if ($this->packTableData) { - $c['borderbin'] = $this->_packCellBorder($cell); - unset($c['border']); - unset($c['border_details']); - } - else { $c = $cell; } - } - if ($this->cacheTables) { - $fh = fopen($this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['cache'], "r+b"); - $this->_cacheUpdateBorder($c, $fh, $this->cell[$this->row][$this->col]); - fclose($fh); - } - } - $this->lastoptionaltag = ''; - unset($this->cssmgr->tablecascadeCSS[$this->cssmgr->tbCSSlvl]); - $this->cssmgr->tbCSSlvl--; - $this->trow_text_rotate = ''; - $this->tabletheadjustfinished = false; - } - - if($tag=='TBODY') { - $this->lastoptionaltag = ''; - unset($this->cssmgr->tablecascadeCSS[$this->cssmgr->tbCSSlvl]); - $this->cssmgr->tbCSSlvl--; - } - - if($tag=='THEAD') { - $this->lastoptionaltag = ''; - unset($this->cssmgr->tablecascadeCSS[$this->cssmgr->tbCSSlvl]); - $this->cssmgr->tbCSSlvl--; - $this->tablethead = 0; - $this->tabletheadjustfinished = true; - $this->ResetStyles(); - $this->thead_font_weight = ''; - $this->thead_font_style = ''; - $this->thead_font_smCaps = ''; - - $this->thead_valign_default = ''; - $this->thead_textalign_default = ''; - } - - if($tag=='TFOOT') { - $this->lastoptionaltag = ''; - unset($this->cssmgr->tablecascadeCSS[$this->cssmgr->tbCSSlvl]); - $this->cssmgr->tbCSSlvl--; - $this->tabletfoot = 0; - $this->ResetStyles(); - $this->tfoot_font_weight = ''; - $this->tfoot_font_style = ''; - $this->tfoot_font_smCaps = ''; - - $this->tfoot_valign_default = ''; - $this->tfoot_textalign_default = ''; - } - - if($tag=='TABLE') { // TABLE-END ( - if ($this->progressBar) { $this->UpdateProgressBar(1,'','TABLE'); } // *PROGRESS-BAR* - if ($this->progressBar) { $this->UpdateProgressBar(7,0,''); } // *PROGRESS-BAR* - $this->lastoptionaltag = ''; - unset($this->cssmgr->tablecascadeCSS[$this->cssmgr->tbCSSlvl]); - $this->cssmgr->tbCSSlvl--; - $this->ignorefollowingspaces = true; //Eliminate exceeding left-side spaces - - // mPDF 5.7.3 - // In case a colspan (on a row after first row) exceeded number of columns in table - for ($k=0; $k < $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['nr']; $k++) { - for($l=0; $l < $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['nc']; $l++) { - if (!isset($this->cell[$k][$l])) { - for ($n=$l-1; $n>=0; $n--) { - if (isset($this->cell[$k][$n]) && $this->cell[$k][$n]!=0) { break; } - } - $this->cell[$k][$l] = array( - 'a' => 'C', - 'va' => 'M', - 'R' => false, - 'nowrap' => false, - 'bgcolor' => false, - 'padding' => array('L' => false, 'R' => false, 'T' => false, 'B' => false), - 'gradient' => false, - 's' => 0, - 'maxs' => 0, - 'textbuffer' => array(), - 'dfs' => $this->FontSize, - ); - - if (!$this->simpleTables){ - $this->cell[$k][$l]['border'] = 0; - $this->cell[$k][$l]['border_details']['R'] = array('s' => 0, 'w' => 0, 'c' => false, 'style' => 'none', 'dom' => 0); - $this->cell[$k][$l]['border_details']['L'] = array('s' => 0, 'w' => 0, 'c' => false, 'style' => 'none', 'dom' => 0); - $this->cell[$k][$l]['border_details']['T'] = array('s' => 0, 'w' => 0, 'c' => false, 'style' => 'none', 'dom' => 0); - $this->cell[$k][$l]['border_details']['B'] = array('s' => 0, 'w' => 0, 'c' => false, 'style' => 'none', 'dom' => 0); - $this->cell[$k][$l]['border_details']['mbw'] = array('BL' =>0,'BR' =>0,'RT' =>0,'RB' =>0,'TL' =>0,'TR' =>0,'LT' =>0,'LB' =>0); - if ($this->packTableData) { - $this->cell[$k][$l]['borderbin'] = $this->_packCellBorder($this->cell[$k][$l]); - unset($this->cell[$k][$l]['border']); - unset($this->cell[$k][$l]['border_details']); - } - } - } - } - } - - $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['cells'] = $this->cell; - $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['wc'] = array_pad(array(),$this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['nc'],array('miw'=>0,'maw'=>0)); - $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['hr'] = array_pad(array(),$this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['nr'],0); - - // Move table footer row to end of table - if (isset($this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['is_tfoot']) && count($this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['is_tfoot'])) { - $tfrows = array(); - foreach($this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['is_tfoot'] AS $r=>$val) { - if ($val) { $tfrows[] = $r; } - } - $temp = array(); - $temptf = array(); - foreach($this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['cells'] AS $k=>$row) { - if (in_array($k,$tfrows)) { - $temptf[] = $row; - } - else { - $temp[] = $row; - } - } - $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['is_tfoot'] = array(); - for($i=count($temp) ; $i<(count($temp)+count($temptf)); $i++) { - $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['is_tfoot'][$i] = true; - } - // Update nestedpos row references - if (count($this->table[($this->tableLevel+1)])) { - foreach($this->table[($this->tableLevel+1)] AS $nid=>$nested) { - $this->table[($this->tableLevel+1)][$nid]['nestedpos'][0] -= count($temptf); - } - } - $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['cells'] = array_merge($temp, $temptf); - - // Update other arays set on row number - // [trbackground-images] [trgradients] - $temptrbgi = array(); - $temptrbgg = array(); - $temptrbgc = array(); - $temptrbgc[-1] = $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['bgcolor'][-1]; - for($k=0; $k<$this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['nr']; $k++) { - if (!in_array($k,$tfrows)) { - $temptrbgi[] = $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['trbackground-images'][$k]; - $temptrbgg[] = $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['trgradients'][$k]; - $temptrbgc[] = $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['bgcolor'][$k]; - } - } - for($k=0; $k<$this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['nr']; $k++) { - if (in_array($k,$tfrows)) { - $temptrbgi[] = $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['trbackground-images'][$k]; - $temptrbgg[] = $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['trgradients'][$k]; - $temptrbgc[] = $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['bgcolor'][$k]; - } - } - $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['trbackground-images'] = $temptrbgi; - $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['trgradients'] = $temptrbgg; - $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['bgcolor'] = $temptrbgc ; - // Should Update all other arays set on row number, but cell properties have been set so not needed - // [bgcolor] [trborder-left] [trborder-right] [trborder-top] [trborder-bottom] - } - - if ($this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['direction']=='rtl') { - $this->_reverseTableDir($this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]); - } - - // Fix Borders ********************************************* - $this->_fixTableBorders($this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]); - - if ($this->progressBar) { $this->UpdateProgressBar(7,10,' '); } // *PROGRESS-BAR* - - if ($this->ColActive) { $this->table_rotate = 0; } // *COLUMNS* - if ($this->table_rotate <> 0) { - $this->tablebuffer = ''; - // Max width for rotated table - $this->tbrot_maxw = $this->h - ($this->y + $this->bMargin + 1); - $this->tbrot_maxh = $this->blk[$this->blklvl]['inner_width'] ; // Max width for rotated table - $this->tbrot_align = $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['a'] ; - } - $this->shrin_k = 1; - - if ($this->shrink_tables_to_fit < 1) { $this->shrink_tables_to_fit = 1; } - if (!$this->shrink_this_table_to_fit) { $this->shrink_this_table_to_fit = $this->shrink_tables_to_fit; } - - if ($this->tableLevel>1) { - // deal with nested table - - $this->_tableColumnWidth($this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]],true); - - $tmiw = $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['miw']; - $tmaw = $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['maw']; - $tl = $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['tl']; - - // Go down to lower table level - $this->tableLevel--; - - // Reset lower level table - $this->base_table_properties = $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['baseProperties']; - // mPDF 5.7.3 - $this->default_font = $this->base_table_properties['FONT-FAMILY']; - $this->SetFont($this->default_font,'',0,false); - $this->default_font_size = $this->ConvertSize($this->base_table_properties['FONT-SIZE'])*(_MPDFK); - $this->SetFontSize($this->default_font_size,false); - - $this->cell = $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['cells']; - // mPDF 5.4.10 - if (isset($this->cell['PARENTCELL'])) { - if ($this->cell['PARENTCELL']) { $this->restoreInlineProperties($this->cell['PARENTCELL']); } - unset($this->cell['PARENTCELL']); - } - $this->row = $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['currrow']; - $this->col = $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['currcol']; - $objattr = array(); - $objattr['type'] = 'nestedtable'; - $objattr['nestedcontent'] = $this->tbctr[($this->tableLevel+1)]; - $objattr['table'] = $this->tbctr[$this->tableLevel]; - $objattr['row'] = $this->row; - $objattr['col'] = $this->col; - $objattr['level'] = $this->tableLevel; - $e = "\xbb\xa4\xactype=nestedtable,objattr=".serialize($objattr)."\xbb\xa4\xac"; - $this->_saveCellTextBuffer($e); - $this->cell[$this->row][$this->col]['s'] += $tl ; - if (!isset($this->cell[$this->row][$this->col]['maxs'])) { - $this->cell[$this->row][$this->col]['maxs'] = $this->cell[$this->row][$this->col]['s']; - } - elseif($this->cell[$this->row][$this->col]['maxs'] < $this->cell[$this->row][$this->col]['s']) { - $this->cell[$this->row][$this->col]['maxs'] = $this->cell[$this->row][$this->col]['s']; - } - $this->cell[$this->row][$this->col]['s'] = 0;// reset - if ((isset($this->cell[$this->row][$this->col]['nestedmaw']) && $this->cell[$this->row][$this->col]['nestedmaw'] < $tmaw) || !isset($this->cell[$this->row][$this->col]['nestedmaw'])) { $this->cell[$this->row][$this->col]['nestedmaw'] = $tmaw ; } - if ((isset($this->cell[$this->row][$this->col]['nestedmiw']) && $this->cell[$this->row][$this->col]['nestedmiw'] < $tmiw) || !isset($this->cell[$this->row][$this->col]['nestedmiw'])) { $this->cell[$this->row][$this->col]['nestedmiw'] = $tmiw ; } - $this->tdbegin = true; - $this->nestedtablejustfinished = true; - $this->ignorefollowingspaces = true; - return; - } - $this->cMarginL = 0; - $this->cMarginR = 0; - $this->cMarginT = 0; - $this->cMarginB = 0; - $this->cellPaddingL = 0; - $this->cellPaddingR = 0; - $this->cellPaddingT = 0; - $this->cellPaddingB = 0; - - if (isset($this->table[1][1]['overflow']) && $this->table[1][1]['overflow']=='visible') { - if ($this->kwt || $this->table_rotate || $this->table_keep_together || $this->ColActive) { - $this->kwt = false; - $this->table_rotate = 0; - $this->table_keep_together = false; - //die("mPDF Warning: You cannot use CSS overflow:visible together with any of these functions: 'Keep-with-table', rotated tables, page-break-inside:avoid, or columns"); - } - $this->_tableColumnWidth($this->table[1][1],true); - $this->_tableWidth($this->table[1][1]); - } - else { - if (!$this->kwt_saved) { $this->kwt_height = 0; } - - list($check,$tablemiw) = $this->_tableColumnWidth($this->table[1][1],true); - $save_table = $this->table; - if ($this->cacheTables) { $this->_backupCacheFiles(); } - $reset_to_minimum_width = false; - $added_page = false; - - if ($check > 1) { - if ($check > $this->shrink_this_table_to_fit && $this->table_rotate) { - if ($this->y != $this->tMargin) { - $this->AddPage($this->CurOrientation); - $this->kwt_moved = true; - } - $added_page = true; - $this->tbrot_maxw = $this->h - ($this->y + $this->bMargin + 5) - $this->kwt_height; - //$check = $tablemiw/$this->tbrot_maxw; // undo any shrink - $check = 1; // undo any shrink - } - $reset_to_minimum_width = true; - } - - if ($reset_to_minimum_width) { - - $this->shrin_k = $check; - - $this->default_font_size /= $this->shrin_k; - $this->SetFontSize($this->default_font_size, false ); - - $this->shrinkTable($this->table[1][1],$this->shrin_k); - - $this->_tableColumnWidth($this->table[1][1],false); // repeat - - // Starting at $this->innermostTableLevel - // Shrink table values - and redo columnWidth - for($lvl=2;$lvl<=$this->innermostTableLevel;$lvl++) { - for ($nid=1; $nid<=$this->tbctr[$lvl]; $nid++) { - $this->shrinkTable($this->table[$lvl][$nid],$this->shrin_k); - $this->_tableColumnWidth($this->table[$lvl][$nid],false); - } - } - } - - // Set table cell widths for top level table - // Use $shrin_k to resize but don't change again - $this->SetLineHeight('',$this->table_lineheight); - - // Top level table - $this->_tableWidth($this->table[1][1]); - - } - - - // Now work through any nested tables setting child table[w'] = parent cell['w'] - // Now do nested tables _tableWidth - for($lvl=2;$lvl<=$this->innermostTableLevel;$lvl++) { - for ($nid=1; $nid<=$this->tbctr[$lvl]; $nid++) { - // HERE set child table width = cell width - - list($parentrow, $parentcol, $parentnid) = $this->table[$lvl][$nid]['nestedpos']; - - if ($this->cacheTables) { - $c = $this->_uncacheCell($this->table[($lvl-1)][$parentnid]['cells'][$parentrow][$parentcol], $this->table[($lvl-1)][$parentnid]['cache'], null); - } - else - $c =& $this->table[($lvl-1)][$parentnid]['cells'][$parentrow][$parentcol]; - - if (isset($c['colspan']) && $c['colspan']> 1) { - $parentwidth = 0; - for($cs=0;$cs<$c['colspan'] ; $cs++) { - $parentwidth += $this->table[($lvl-1)][$parentnid]['wc'][$parentcol+$cs]; - } - } - else { $parentwidth = $this->table[($lvl-1)][$parentnid]['wc'][$parentcol]; } - - - //$parentwidth -= ALLOW FOR PADDING ETC.in parent cell - if (!$this->simpleTables){ - if ($this->packTableData) { - list($bt,$br,$bb,$bl) = $this->_getBorderWidths($c['borderbin']); - } - else { - $br = $c['border_details']['R']['w']; - $bl = $c['border_details']['L']['w']; - } - if ($this->table[$lvl-1][$parentnid]['borders_separate']) { - $parentwidth -= $br + $bl - + $c['padding']['L'] - + $c['padding']['R'] - + $this->table[($lvl-1)][$parentnid]['border_spacing_H']; - } - else { - $parentwidth -= $br/2 + $bl/2 - + $c['padding']['L'] - + $c['padding']['R']; - } - } - else if ($this->simpleTables){ - if ($this->table[$lvl-1][$parentnid]['borders_separate']) { - $parentwidth -= $this->table[($lvl-1)][$parentnid]['simple']['border_details']['L']['w'] - + $this->table[($lvl-1)][$parentnid]['simple']['border_details']['R']['w'] - + $c['padding']['L'] - + $c['padding']['R'] - + $this->table[($lvl-1)][$parentnid]['border_spacing_H']; - } - else { - $parentwidth -= $this->table[($lvl-1)][$parentnid]['simple']['border_details']['L']['w']/2 - + $this->table[($lvl-1)][$parentnid]['simple']['border_details']['R']['w']/2 - + $c['padding']['L'] - + $c['padding']['R']; - } - } - if (isset($this->table[$lvl][$nid]['wpercent']) && $this->table[$lvl][$nid]['wpercent'] && $lvl>1) { - $this->table[$lvl][$nid]['w'] = $parentwidth; - } - else if ($parentwidth > $this->table[$lvl][$nid]['maw']) { - $this->table[$lvl][$nid]['w'] = $this->table[$lvl][$nid]['maw']; - } - else { - $this->table[$lvl][$nid]['w'] = $parentwidth; - } - unset($c); - $this->_tableWidth($this->table[$lvl][$nid]); - } - } - - // Starting at $this->innermostTableLevel - // Cascade back up nested tables: setting heights back up the tree - for($lvl=$this->innermostTableLevel;$lvl>0;$lvl--) { - for ($nid=1; $nid<=$this->tbctr[$lvl]; $nid++) { - list($tableheight,$maxrowheight,$fullpage,$remainingpage, $maxfirstrowheight) = $this->_tableHeight($this->table[$lvl][$nid]); } - } - if ($this->progressBar) { $this->UpdateProgressBar(7,20,' '); } // *PROGRESS-BAR* - if ($this->table[1][1]['overflow']=='visible') { - if ($maxrowheight > $fullpage) { die("mPDF Warning: A Table row is greater than available height. You cannot use CSS overflow:visible"); } - if ($maxfirstrowheight > $remainingpage) { $this->AddPage($this->CurOrientation); } - $r = 0; $c = 0; $p = 0; $y = 0; - while (!$finished) { - list($finished,$r,$c,$p,$y,$y0) = $this->_tableWrite($this->table[1][1],true,$r,$c,$p,$y); - if (!$finished) { - $this->AddPage($this->CurOrientation); - // If printed something on first spread, set same y - if ($r==0 && $y0 > -1) { $this->y = $y0; } - } - } - } - else { - $recalculate = 1; - $forcerecalc = false; - // RESIZING ALGORITHM - if ($maxrowheight > $fullpage) { - $recalculate = $this->tbsqrt($maxrowheight / $fullpage, 1); - $forcerecalc = true; - } - else if ($this->table_rotate) { // NB $remainingpage == $fullpage == the width of the page - if ($tableheight > $remainingpage) { - // If can fit on remainder of page whilst respecting autsize value.. - if (($this->shrin_k * $this->tbsqrt($tableheight / $remainingpage, 1)) <= $this->shrink_this_table_to_fit) { - $recalculate = $this->tbsqrt($tableheight / $remainingpage, 1); - } - else if (!$added_page) { - if ($this->y != $this->tMargin) { - $this->AddPage($this->CurOrientation); - $this->kwt_moved = true; - } - $added_page = true; - $this->tbrot_maxw = $this->h - ($this->y + $this->bMargin + 5) - $this->kwt_height; - // 0.001 to force it to recalculate - $recalculate = (1 / $this->shrin_k) + 0.001; // undo any shrink - } - } - else { $recalculate = 1; } - } - else if ($this->table_keep_together || ($this->table[1][1]['nr']==1 && !$this->writingHTMLfooter)) { - if ($tableheight > $fullpage) { - if (($this->shrin_k * $this->tbsqrt($tableheight / $fullpage, 1)) <= $this->shrink_this_table_to_fit) { - $recalculate = $this->tbsqrt($tableheight / $fullpage, 1); - } - else if ($this->tableMinSizePriority) { - $this->table_keep_together = false; - $recalculate = 1.001; - } - else { - if ($this->y != $this->tMargin) { // mPDF 5.1 - $this->AddPage($this->CurOrientation); - $this->kwt_moved = true; - } - $added_page = true; - $this->tbrot_maxw = $this->h - ($this->y + $this->bMargin + 5) - $this->kwt_height; - $recalculate = $this->tbsqrt($tableheight / $fullpage, 1); - } - } - else if ($tableheight > $remainingpage) { - // If can fit on remainder of page whilst respecting autsize value.. - if (($this->shrin_k * $this->tbsqrt($tableheight / $remainingpage, 1)) <= $this->shrink_this_table_to_fit) { - $recalculate = $this->tbsqrt($tableheight / $remainingpage, 1); - } - else { - if ($this->y != $this->tMargin) { - $this->AddPage($this->CurOrientation); - $this->kwt_moved = true; - } - $added_page = true; - $this->tbrot_maxw = $this->h - ($this->y + $this->bMargin + 5) - $this->kwt_height; - $recalculate = 1.001; - } - } - else { $recalculate = 1; } - } - else { $recalculate = 1; } - - if ($recalculate > $this->shrink_this_table_to_fit && !$forcerecalc) { $recalculate = $this->shrink_this_table_to_fit; } - - $iteration = 1; - - // RECALCULATE - while($recalculate <> 1) { - $this->shrin_k1 = $recalculate ; - $this->shrin_k *= $recalculate ; - $this->default_font_size /= ($this->shrin_k1) ; - $this->SetFontSize($this->default_font_size, false ); - $this->SetLineHeight('',$this->table_lineheight); - $this->table = $save_table; - if ($this->cacheTables) { $this->_restoreCacheFiles(); } - if ($this->shrin_k <> 1) { $this->shrinkTable($this->table[1][1],$this->shrin_k); } - $this->_tableColumnWidth($this->table[1][1],false); // repeat - - // Starting at $this->innermostTableLevel - // Shrink table values - and redo columnWidth - for($lvl=2;$lvl<=$this->innermostTableLevel;$lvl++) { - for ($nid=1; $nid<=$this->tbctr[$lvl]; $nid++) { - if ($this->shrin_k <> 1) { $this->shrinkTable($this->table[$lvl][$nid],$this->shrin_k); } - $this->_tableColumnWidth($this->table[$lvl][$nid],false); - } - } - // Set table cell widths for top level table - - // Top level table - $this->_tableWidth($this->table[1][1]); - - // Now work through any nested tables setting child table[w'] = parent cell['w'] - // Now do nested tables _tableWidth - for($lvl=2;$lvl<=$this->innermostTableLevel;$lvl++) { - for ($nid=1; $nid<=$this->tbctr[$lvl]; $nid++) { - // HERE set child table width = cell width - - list($parentrow, $parentcol, $parentnid) = $this->table[$lvl][$nid]['nestedpos']; - if ($this->cacheTables) { - $c = $this->_uncacheCell($this->table[($lvl-1)][$parentnid]['cells'][$parentrow][$parentcol], $this->table[($lvl-1)][$parentnid]['cache'], null); - } - else - $c =& $this->table[($lvl-1)][$parentnid]['cells'][$parentrow][$parentcol]; - - if (isset($c['colspan']) && $c['colspan']> 1) { - $parentwidth = 0; - for($cs=0;$cs<$c['colspan'] ; $cs++) { - $parentwidth += $this->table[($lvl-1)][$parentnid]['wc'][$parentcol+$cs]; - } - } - else { $parentwidth = $this->table[($lvl-1)][$parentnid]['wc'][$parentcol]; } - - //$parentwidth -= ALLOW FOR PADDING ETC.in parent cell - if (!$this->simpleTables){ - if ($this->packTableData) { - list($bt,$br,$bb,$bl) = $this->_getBorderWidths($c['borderbin']); - } - else { - $br = $c['border_details']['R']['w']; - $bl = $c['border_details']['L']['w']; - } - if ($this->table[$lvl-1][$parentnid]['borders_separate']) { - $parentwidth -= $br + $bl - + $c['padding']['L'] - + $c['padding']['R'] - + $this->table[($lvl-1)][$parentnid]['border_spacing_H']; - } - else { - $parentwidth -= $br/2 + $bl/2 - + $c['padding']['L'] - + $c['padding']['R']; - } - } - else if ($this->simpleTables){ - if ($this->table[$lvl-1][$parentnid]['borders_separate']) { - $parentwidth -= $this->table[($lvl-1)][$parentnid]['simple']['border_details']['L']['w'] - + $this->table[($lvl-1)][$parentnid]['simple']['border_details']['R']['w'] - + $c['padding']['L'] - + $c['padding']['R'] - + $this->table[($lvl-1)][$parentnid]['border_spacing_H']; - } - else { - $parentwidth -= ($this->table[($lvl-1)][$parentnid]['simple']['border_details']['L']['w'] - + $this->table[($lvl-1)][$parentnid]['simple']['border_details']['R']['w']) /2 - + $c['padding']['L'] - + $c['padding']['R']; - } - } - if (isset($this->table[$lvl][$nid]['wpercent']) && $this->table[$lvl][$nid]['wpercent'] && $lvl>1) { - $this->table[$lvl][$nid]['w'] = $parentwidth; - } - else if ($parentwidth > $this->table[$lvl][$nid]['maw']) { - $this->table[$lvl][$nid]['w'] = $this->table[$lvl][$nid]['maw'] ; - } - else { - $this->table[$lvl][$nid]['w'] = $parentwidth; - } - unset($c); - $this->_tableWidth($this->table[$lvl][$nid]); - } - } - - // Starting at $this->innermostTableLevel - // Cascade back up nested tables: setting heights back up the tree - for($lvl=$this->innermostTableLevel;$lvl>0;$lvl--) { - for ($nid=1; $nid<=$this->tbctr[$lvl]; $nid++) { - list($tableheight,$maxrowheight,$fullpage,$remainingpage, $maxfirstrowheight) = $this->_tableHeight($this->table[$lvl][$nid]); } - } - - // RESIZING ALGORITHM - - if ($maxrowheight > $fullpage) { $recalculate = $this->tbsqrt($maxrowheight / $fullpage, $iteration); $iteration++; } - else if ($this->table_rotate && $tableheight > $remainingpage && !$added_page) { - // If can fit on remainder of page whilst respecting autosize value.. - if (($this->shrin_k * $this->tbsqrt($tableheight / $remainingpage, $iteration)) <= $this->shrink_this_table_to_fit) { - $recalculate = $this->tbsqrt($tableheight / $remainingpage, $iteration); $iteration++; - } - else { - if (!$added_page) { - $this->AddPage($this->CurOrientation); - $added_page = true; - $this->kwt_moved = true; - $this->tbrot_maxw = $this->h - ($this->y + $this->bMargin + 5) - $this->kwt_height; - } - // 0.001 to force it to recalculate - $recalculate = (1 / $this->shrin_k) + 0.001; // undo any shrink - } - } - else if ($this->table_keep_together || ($this->table[1][1]['nr']==1 && !$this->writingHTMLfooter)) { - if ($tableheight > $fullpage) { - if (($this->shrin_k * $this->tbsqrt($tableheight / $fullpage, $iteration)) <= $this->shrink_this_table_to_fit) { - $recalculate = $this->tbsqrt($tableheight / $fullpage, $iteration); $iteration++; - } - else if ($this->tableMinSizePriority) { - $this->table_keep_together = false; - $recalculate = (1 / $this->shrin_k) + 0.001; - } - else { - if (!$added_page && $this->y != $this->tMargin) { - $this->AddPage($this->CurOrientation); - $added_page = true; - $this->kwt_moved = true; - $this->tbrot_maxw = $this->h - ($this->y + $this->bMargin + 5) - $this->kwt_height; - } - $recalculate = $this->tbsqrt($tableheight / $fullpage, $iteration); $iteration++; - } - } - else if ($tableheight > $remainingpage) { - // If can fit on remainder of page whilst respecting autosize value.. - if (($this->shrin_k * $this->tbsqrt($tableheight / $remainingpage, $iteration)) <= $this->shrink_this_table_to_fit) { - $recalculate = $this->tbsqrt($tableheight / $remainingpage, $iteration); $iteration++; - } - else { - if (!$added_page) { - $this->AddPage($this->CurOrientation); - $added_page = true; - $this->kwt_moved = true; - $this->tbrot_maxw = $this->h - ($this->y + $this->bMargin + 5) - $this->kwt_height; - } - - //$recalculate = $this->tbsqrt($tableheight / $fullpage, $iteration); $iteration++; - $recalculate = (1 / $this->shrin_k) + 0.001; // undo any shrink - } - } - else { $recalculate = 1; } - } - else { $recalculate = 1; } - } - - - if ($maxfirstrowheight > $remainingpage && !$added_page && !$this->table_rotate && !$this->ColActive && !$this->table_keep_together && !$this->writingHTMLheader && !$this->writingHTMLfooter) { - $this->AddPage($this->CurOrientation); - $this->kwt_moved = true; - } - - // keep-with-table: if page has advanced, print out buffer now, else done in fn. _Tablewrite() - if ($this->kwt_saved && $this->kwt_moved) { - $this->printkwtbuffer(); - $this->kwt_moved = false; - $this->kwt_saved = false; - } - - if ($this->progressBar) { $this->UpdateProgressBar(7,30,' '); } // *PROGRESS-BAR* - // Recursively writes all tables starting at top level - $this->_tableWrite($this->table[1][1]); - - if ($this->table_rotate && $this->tablebuffer) { - $this->PageBreakTrigger=$this->h-$this->bMargin; - $save_tr = $this->table_rotate; - $save_y = $this->y; - $this->table_rotate = 0; - $this->y = $this->tbrot_y0; - $h = $this->tbrot_w; - $this->DivLn($h,$this->blklvl,true); - - $this->table_rotate = $save_tr; - $this->y = $save_y; - - $this->printtablebuffer(); - } - $this->table_rotate = 0; - } - - - $this->x = $this->lMargin + $this->blk[$this->blklvl]['outer_left_margin']; - - $this->maxPosR = max($this->maxPosR , ($this->x + $this->table[1][1]['w'])); - - $this->blockjustfinished=true; - $this->lastblockbottommargin = $this->table[1][1]['margin']['B']; - //Reset values - - if (isset($this->table[1][1]['page_break_after'])) { $page_break_after = $this->table[1][1]['page_break_after']; } - else { $page_break_after = ''; } - - // Keep-with-table - $this->kwt = false; - $this->kwt_y0 = 0; - $this->kwt_x0 = 0; - $this->kwt_height = 0; - $this->kwt_buffer = array(); - $this->kwt_Links = array(); - $this->kwt_Annots = array(); - $this->kwt_moved = false; - $this->kwt_saved = false; - - $this->kwt_Reference = array(); - $this->kwt_BMoutlines = array(); - $this->kwt_toc = array(); - - $this->shrin_k = 1; - $this->shrink_this_table_to_fit = 0; - - unset($this->table); - $this->table=array(); //array - $this->tableLevel=0; - $this->tbctr=array(); - $this->innermostTableLevel=0; - $this->cssmgr->tbCSSlvl = 0; - $this->cssmgr->tablecascadeCSS = array(); - - unset($this->cell); - $this->cell=array(); //array - - $this->col=-1; //int - $this->row=-1; //int - $this->Reset(); - - $this->cellPaddingL = 0; - $this->cellPaddingT = 0; - $this->cellPaddingR = 0; - $this->cellPaddingB = 0; - $this->cMarginL = 0; - $this->cMarginT = 0; - $this->cMarginR = 0; - $this->cMarginB = 0; - $this->default_font_size = $this->original_default_font_size; - $this->default_font = $this->original_default_font; - $this->SetFontSize($this->default_font_size, false); - $this->SetFont($this->default_font,'',0,false); - $this->SetLineHeight(); - if (isset($this->blk[$this->blklvl]['InlineProperties'])) { $this->restoreInlineProperties($this->blk[$this->blklvl]['InlineProperties']);} - if ($this->progressBar) { $this->UpdateProgressBar(7,100,' '); } // *PROGRESS-BAR* - - if ($page_break_after) { - $save_blklvl = $this->blklvl; - $save_blk = $this->blk; - $save_silp = $this->saveInlineProperties(); - $save_ilp = $this->InlineProperties; - if ($this->blklvl>1) { - // Close any open block tags - for ($b= $this->blklvl;$b>0;$b--) { $this->CloseTag($this->blk[$b]['tag']); } - // Output any text left in buffer - if (count($this->textbuffer)) { $this->printbuffer($this->textbuffer); $this->textbuffer=array(); } - } -/*-- COLUMNS --*/ - $save_cols = false; - if ($this->ColActive) { - $save_cols = true; - $save_nbcol = $this->NbCol; // other values of gap and vAlign will not change by setting Columns off - $this->SetColumns(0); - } -/*-- END COLUMNS --*/ - if ($page_break_after == 'RIGHT') { $this->AddPage($this->CurOrientation,'NEXT-ODD','','','','','', '','', '','','','','','',0,0,0,0,$pagesel); } - else if ($page_break_after == 'LEFT') { $this->AddPage($this->CurOrientation,'NEXT-EVEN','','','','','', '','', '','','','','','',0,0,0,0,$pagesel); } - else { $this->AddPage($this->CurOrientation,'','','','','','', '','', '','','','','','',0,0,0,0,$pagesel); } - if (!$this->restoreBlockPagebreaks) { - $this->blklvl = 0; - $this->lastblocklevelchange = 0; - $this->blk = array(); - $this->initialiseBlock($this->blk[0]); - $this->blk[0]['width'] =& $this->pgwidth; - $this->blk[0]['inner_width'] =& $this->pgwidth; - $this->blk[0]['blockContext'] = $this->blockContext; - $properties = $this->cssmgr->MergeCSS('BLOCK','BODY',''); - $this->setCSS($properties,'','BODY'); - } - -/*-- COLUMNS --*/ - if ($save_cols) { - // Restore columns - $this->SetColumns($save_nbcol,$this->colvAlign,$this->ColGap); - } -/*-- END COLUMNS --*/ - if ($this->restoreBlockPagebreaks) { - $this->blk = $save_blk; - // Re-open block tags - $t = $this->blk[0]['tag']; - $a = $this->blk[0]['attr']; - $this->blklvl = 0; - for ($b=0; $b<=$save_blklvl;$b++) { - $tc = $t; - $ac = $a; - $t = $this->blk[$b+1]['tag']; - $a = $this->blk[$b+1]['attr']; - unset($this->blk[$b+1]); - $this->OpenTag($tc,$ac); - } - $this->InlineProperties = $save_ilp; - $this->restoreInlineProperties($save_silp); - } - } - - } -/*-- END TABLES --*/ - -/*-- LISTS --*/ - // *********** LISTS ******************** - - if($tag=='LI') { - $this->lastoptionaltag = ''; - unset($this->cssmgr->listcascadeCSS[$this->cssmgr->listCSSlvl]); - $this->cssmgr->listCSSlvl--; - if (isset($this->listoccur[$this->listlvl]) && isset($this->InlineProperties['LIST'][$this->listlvl][$this->listoccur[$this->listlvl]])) { $this->restoreInlineProperties($this->InlineProperties['LIST'][$this->listlvl][$this->listoccur[$this->listlvl]]); } - } - - - if(($tag=='UL') or ($tag=='OL')) { - $this->ignorefollowingspaces = true; //Eliminate exceeding left-side spaces - unset($this->cssmgr->listcascadeCSS[$this->cssmgr->listCSSlvl]); - $this->cssmgr->listCSSlvl--; - - $this->lastoptionaltag = ''; -/*-- TABLES --*/ - // A simple list for inside a table - if($this->tableLevel) { - $this->listlist[$this->listlvl]['MAXNUM'] = $this->listnum; //save previous lvl's maxnum - unset($this->listlist[$this->listlvl]); - $this->listlvl--; - if (isset($this->listlist[$this->listlvl]['MAXNUM'])) { $this->listnum = $this->listlist[$this->listlvl]['MAXNUM']; } // restore previous levels - if ($this->listlvl == 0) { $this->listjustfinished = true; } - return; - } -/*-- END TABLES --*/ - - if ($this->listlvl > 1) { // returning one level - $this->listjustfinished=true; - if (!empty($this->textbuffer)) { - $this->listitem[] = array($this->listlvl,$this->listnum,$this->textbuffer,$this->listoccur[$this->listlvl],$this->listitemtype); - } - else { - $this->listnum--; - } - - $this->textbuffer = array(); - $occur = $this->listoccur[$this->listlvl]; - $this->listlist[$this->listlvl][$occur]['MAXNUM'] = $this->listnum; //save previous lvl's maxnum - $this->listlvl--; - $occur = $this->listoccur[$this->listlvl]; - $this->listnum = $this->listlist[$this->listlvl][$occur]['MAXNUM']; // recover previous level's number - $this->listtype = $this->listlist[$this->listlvl][$occur]['TYPE']; // recover previous level's type - if ($this->InlineProperties['LIST'][$this->listlvl][$occur]) { $this->restoreInlineProperties($this->InlineProperties['LIST'][$this->listlvl][$occur]); } - - } - else { // We are closing the last OL/UL tag - if (!empty($this->textbuffer)) { - $this->listitem[] = array($this->listlvl,$this->listnum,$this->textbuffer,$this->listoccur[$this->listlvl],$this->listitemtype); - } - else { - $this->listnum--; - } - - $occur = $this->listoccur[$this->listlvl]; - $this->listlist[$this->listlvl][$occur]['MAXNUM'] = $this->listnum; - $this->textbuffer = array(); - $this->listlvl--; - - $this->printlistbuffer(); - unset($this->InlineProperties['LIST']); - // SPACING AFTER LIST (Top level only) - $this->Ln(0); - if ($this->list_margin_bottom) { - $this->DivLn($this->list_margin_bottom,$this->blklvl,true,1); // collapsible - } - if (isset($this->blk[$this->blklvl]['InlineProperties'])) { $this->restoreInlineProperties($this->blk[$this->blklvl]['InlineProperties']);} - $this->listjustfinished = true; - $this->cssmgr->listCSSlvl = 0; - $this->cssmgr->listcascadeCSS = array(); - $this->blockjustfinished=true; - $this->lastblockbottommargin = $this->list_margin_bottom; - } - } -/*-- END LISTS --*/ - - -} - - -/*-- TABLES --*/ -// This function determines the shrink factor when resizing tables -// val is the table_height / page_height_available -// returns a scaling factor used as $shrin_k to resize the table -// Overcompensating will be quicker but may unnecessarily shrink table too much -// Undercompensating means it will reiterate more times (taking more processing time) -function tbsqrt($val, $iteration=3) { - $k = 4; // Alters number of iterations until it returns $val itself - Must be > 2 - // Probably best guess and most accurate - if ($iteration==1) return sqrt($val); - // Faster than using sqrt (because it won't undercompensate), and gives reasonable results - //return 1+(($val-1)/2); - $x = 2-(($iteration-2)/($k-2)); - if ($x == 0) { $ret = $val+0.00001; } - else if ($x < 0) { $ret = 1 + ( pow(2, ($iteration-2-$k))/1000 ); } - else { $ret = 1+(($val-1)/$x); } - return $ret; -} -/*-- END TABLES --*/ - - -/*-- LISTS --*/ -function printlistbuffer() { - //Save x coordinate - $x = $this->lMargin + $this->blk[$this->blklvl]['outer_left_margin']; - $this->cMarginL = 0; - $this->cMarginR = 0; - $currIndentLvl = -1; - $lastIndent = array(); - $bak_page = $this->page; - $indent = 0; - foreach($this->listitem as $item) - { - // COLS - $oldcolumn = $this->CurrCol; - - $this->bulletarray = array(); - //Get list's buffered data - $this->listlvl = $lvl = $item[0]; - $num = $item[1]; - $this->textbuffer = $item[2]; - $occur = $item[3]; - if ($item[4]) { $type = $item[4]; } // listitemtype - else { $type = $this->listlist[$lvl][$occur]['TYPE']; } - $maxnum = $this->listlist[$lvl][$occur]['MAXNUM']; - $this->restoreInlineProperties($this->InlineProperties['LIST'][$lvl][$occur]); - $this->SetFont($this->FontFamily,$this->FontStyle,$this->FontSizePt,true,true); // force to write - $clh = $this->FontSize; - - $this->SetLineHeight($this->FontSizePt,$this->list_lineheight[$lvl][$occur]); - $this->listOcc = $occur; - $this->listnum = $num; - - if (isset($this->list_align[$this->listlvl][$occur])) { $this->divalign = $this->list_align[$this->listlvl][$occur]; } - else { - if (isset($this->blk[$this->blklvl]['direction']) && $this->blk[$this->blklvl]['direction']=='rtl') { $this->divalign = 'R'; } - else { $this->divalign = 'L'; } - } - - // Set the bullet fontsize - $bullfs = $this->InlineProperties['LISTITEM'][$lvl][$occur][$num]['size']; - - $space_width = $this->GetCharWidth(' ',false) * 1.5; - - //Set default width & height values - $this->divwidth = $this->blk[$this->blklvl]['inner_width']; - $this->divheight = $this->lineheight; - $typefont = $this->FontFamily; - if (preg_match('/U\+([a-fA-F0-9]+)/i',$type,$m)) { - if ($this->_charDefined($this->CurrentFont['cw'],hexdec($m[1]))) { $list_item_marker = codeHex2utf($m[1]); } - else { $list_item_marker = '-'; } - $blt_width = $this->GetStringWidth($list_item_marker); - $typefont = ''; - if (preg_match('/rgb\(.*?\)/',$type,$m)) { - $list_item_color = $this->ConvertColor($m[0]); - } - } - else { - $list_item_color = false; - - switch($type) //Format type - { - case '1': - if ($this->listDir == 'rtl') { $list_item_marker = $this->list_number_suffix . $num; } - else { $list_item_marker = $num . $this->list_number_suffix; } - $blt_width = $this->GetStringWidth(str_repeat('5',strlen($maxnum)).$this->list_number_suffix); - break; - case 'none': - $list_item_marker = ''; - $blt_width = 0; - break; - case 'A': - $anum = $this->dec2alpha($num,true); - $maxnum = $this->dec2alpha($maxnum,true); - if ($this->listDir == 'rtl') { $list_item_marker = $this->list_number_suffix . $anum; } - else { $list_item_marker = $anum . $this->list_number_suffix; } - $blt_width = $this->GetStringWidth(str_repeat('W',strlen($maxnum)).$this->list_number_suffix); - break; - case 'a': - $anum = $this->dec2alpha($num,false); - $maxnum = $this->dec2alpha($maxnum,false); - if ($this->listDir == 'rtl') { $list_item_marker = $this->list_number_suffix . $anum; } - else { $list_item_marker = $anum . $this->list_number_suffix; } - $blt_width = $this->GetStringWidth(str_repeat('m',strlen($maxnum)).$this->list_number_suffix); - break; - case 'I': - $anum = $this->dec2roman($num,true); - if ($this->listDir == 'rtl') { $list_item_marker = $this->list_number_suffix . $anum; } - else { $list_item_marker = $anum . $this->list_number_suffix; } - - if ($maxnum>87) { $bbit = 87; } - else if ($maxnum>86) { $bbit = 86; } - else if ($maxnum>37) { $bbit = 38; } - else if ($maxnum>36) { $bbit = 37; } - else if ($maxnum>27) { $bbit = 28; } - else if ($maxnum>26) { $bbit = 27; } - else if ($maxnum>17) { $bbit = 18; } - else if ($maxnum>16) { $bbit = 17; } - else if ($maxnum>7) { $bbit = 8; } - else if ($maxnum>6) { $bbit = 7; } - else if ($maxnum>3) { $bbit = 4; } - else { $bbit = $maxnum; } - $maxlnum = $this->dec2roman($bbit,true); - $blt_width = $this->GetStringWidth($maxlnum.$this->list_number_suffix); - break; - case 'i': - $anum = $this->dec2roman($num,false); - if ($this->listDir == 'rtl') { $list_item_marker = $this->list_number_suffix . $anum; } - else { $list_item_marker = $anum . $this->list_number_suffix; } - - if ($maxnum>87) { $bbit = 87; } - else if ($maxnum>86) { $bbit = 86; } - else if ($maxnum>37) { $bbit = 38; } - else if ($maxnum>36) { $bbit = 37; } - else if ($maxnum>27) { $bbit = 28; } - else if ($maxnum>26) { $bbit = 27; } - else if ($maxnum>17) { $bbit = 18; } - else if ($maxnum>16) { $bbit = 17; } - else if ($maxnum>7) { $bbit = 8; } - else if ($maxnum>6) { $bbit = 7; } - else if ($maxnum>3) { $bbit = 4; } - else { $bbit = $maxnum; } - $maxlnum = $this->dec2roman($bbit,false); - - $blt_width = $this->GetStringWidth($maxlnum.$this->list_number_suffix); - break; - case 'disc': - if ($this->PDFA || $this->PDFX) { - if ($this->_charDefined($this->CurrentFont['cw'],8226)) { $list_item_marker = "\xe2\x80\xa2"; } // • - else { $list_item_marker = '-'; } - $blt_width = $this->GetCharWidth($list_item_marker); - break; - } - $list_item_marker = chr(108); // bullet disc in Zapfdingbats 'l' - $typefont = 'czapfdingbats'; - $blt_width = (0.791 * $this->FontSize/2.5); - break; - case 'circle': - if ($this->PDFA || $this->PDFX) { - if ($this->_charDefined($this->CurrentFont['cw'],9900)) { $list_item_marker = "\xe2\x9a\xac"; } // ⚬ - else { $list_item_marker = '-'; } - $blt_width = $this->GetCharWidth($list_item_marker); - break; - } - $list_item_marker = chr(109); // circle in Zapfdingbats 'm' - $typefont = 'czapfdingbats'; - $blt_width = (0.873 * $this->FontSize/2.5); - break; - case 'square': - if ($this->PDFA || $this->PDFX) { - if ($this->_charDefined($this->CurrentFont['cw'],9642)) { $list_item_marker = "\xe2\x96\xaa"; } // ▪ - else { $list_item_marker = '-'; } - $blt_width = $this->GetCharWidth($list_item_marker); - break; - } - $list_item_marker = chr(110); //black square in Zapfdingbats font 'n' - $typefont = 'czapfdingbats'; - $blt_width = (0.761 * $this->FontSize/2.5); - break; - -/* CSS3 list-styles numeric + I added tamil -arabic-indic | bengali | cambodian | devanagari | gujarati | gurmukhi | kannada | khmer | lao | malayalam | mongolian | myanmar | oriya | persian | telugu | tibetan | thai | urdu -*/ - case 'arabic-indic': - $cp = 0x0660; - $rnum = $this->dec2other($num, $cp); - $list_item_marker = $this->list_number_suffix . $rnum; // RTL - $blt_width = $this->GetStringWidth(str_repeat($this->dec2other(3, $cp),strlen($maxnum)).$this->list_number_suffix); - break; - case 'persian': - case 'urdu': - $cp = 0x06F0; - $rnum = $this->dec2other($num, $cp); - $list_item_marker = $this->list_number_suffix . $rnum; // RTL - $blt_width = $this->GetStringWidth(str_repeat($this->dec2other(3, $cp),strlen($maxnum)).$this->list_number_suffix); - break; - case 'bengali': - $cp = 0x09E6; - $rnum = $this->dec2other($num, $cp); - $list_item_marker = $rnum . $this->list_number_suffix; - $blt_width = $this->GetStringWidth(str_repeat($this->dec2other(3, $cp),strlen($maxnum)).$this->list_number_suffix); - break; - case 'devanagari': - $cp = 0x0966; - $rnum = $this->dec2other($num, $cp); - $list_item_marker = $rnum . $this->list_number_suffix; - $blt_width = $this->GetStringWidth(str_repeat($this->dec2other(3, $cp),strlen($maxnum)).$this->list_number_suffix); - break; - case 'gujarati': - $cp = 0x0AE6; - $rnum = $this->dec2other($num, $cp); - $list_item_marker = $rnum . $this->list_number_suffix; - $blt_width = $this->GetStringWidth(str_repeat($this->dec2other(3, $cp),strlen($maxnum)).$this->list_number_suffix); - break; - case 'gurmukhi': - $cp = 0x0A66; - $rnum = $this->dec2other($num, $cp); - $list_item_marker = $rnum . $this->list_number_suffix; - $blt_width = $this->GetStringWidth(str_repeat($this->dec2other(3, $cp),strlen($maxnum)).$this->list_number_suffix); - break; - case 'kannada': - $cp = 0x0CE6; - $rnum = $this->dec2other($num, $cp); - $list_item_marker = $rnum . $this->list_number_suffix; - $blt_width = $this->GetStringWidth(str_repeat($this->dec2other(3, $cp),strlen($maxnum)).$this->list_number_suffix); - break; - case 'malayalam': - $cp = 0x0D66; - $rnum = $this->dec2other($num, $cp); - $list_item_marker = $rnum . $this->list_number_suffix; - $blt_width = $this->GetStringWidth(str_repeat($this->dec2other(6, $cp),strlen($maxnum)).$this->list_number_suffix); - break; - case 'oriya': - $cp = 0x0B66; - $rnum = $this->dec2other($num, $cp); - $list_item_marker = $rnum . $this->list_number_suffix; - $blt_width = $this->GetStringWidth(str_repeat($this->dec2other(3, $cp),strlen($maxnum)).$this->list_number_suffix); - break; - case 'telugu': - $cp = 0x0C66; - $rnum = $this->dec2other($num, $cp); - $list_item_marker = $rnum . $this->list_number_suffix; - $blt_width = $this->GetStringWidth(str_repeat($this->dec2other(3, $cp),strlen($maxnum)).$this->list_number_suffix); - break; - case 'tamil': - $cp = 0x0BE6; - $rnum = $this->dec2other($num, $cp); - $list_item_marker = $rnum . $this->list_number_suffix; - $blt_width = $this->GetStringWidth(str_repeat($this->dec2other(9, $cp),strlen($maxnum)).$this->list_number_suffix); - break; - case 'thai': - $cp = 0x0E50; - $rnum = $this->dec2other($num, $cp); - $list_item_marker = $rnum . $this->list_number_suffix; - $blt_width = $this->GetStringWidth(str_repeat($this->dec2other(5, $cp),strlen($maxnum)).$this->list_number_suffix); - break; - case 'khmer': - case 'cambodian': - $cp = 0x17E0; - $rnum = $this->dec2other($num, $cp); - $list_item_marker = $rnum . $this->list_number_suffix; - $blt_width = $this->GetStringWidth(str_repeat($this->dec2other(3, $cp),strlen($maxnum)).$this->list_number_suffix); - break; - case 'lao': - $cp = 0x0ED0; - $rnum = $this->dec2other($num, $cp); - $list_item_marker = $rnum . $this->list_number_suffix; - $blt_width = $this->GetStringWidth(str_repeat($this->dec2other(6, $cp),strlen($maxnum)).$this->list_number_suffix); - break; - default: - if ($this->listDir == 'rtl') { $list_item_marker = $this->list_number_suffix . $num; } - else { $list_item_marker = $num . $this->list_number_suffix; } - $blt_width = $this->GetStringWidth(str_repeat('5',strlen($maxnum)).$this->list_number_suffix); - break; - } - } - - if (isset($item[5]) && $item[5]) { $list_item_marker = ''; } - - if ($currIndentLvl < $lvl) { - if ($lvl > 1 || $this->list_indent_first_level) { - $indent += $this->list_indent[$lvl][$occur]; - $lastIndent[$lvl] = $this->list_indent[$lvl][$occur]; - } - } - else if ($currIndentLvl > $lvl) { - while ($currIndentLvl > $lvl) { - $indent -= $lastIndent[$currIndentLvl]; - $currIndentLvl--; - } - } - $currIndentLvl = $lvl; - - -/*-- RTL --*/ - - if ($this->listDir == 'rtl') { - // list_align_style Determines alignment of numbers in numbered lists - if ($this->list_align_style == 'L') { $lalign = 'R'; } - else { $lalign = 'L'; } - $this->divwidth = $this->blk[$this->blklvl]['width'] - ($indent + $blt_width + $space_width) ; - $xb = $this->blk[$this->blklvl]['inner_width'] + $this->blk[$this->blklvl]['border_left']['w'] + $this->blk[$this->blklvl]['padding_left'] - $indent - $blt_width; //Bullet position (relative) - //Output bullet - $this->bulletarray = array('w'=>$blt_width,'h'=>$clh,'txt'=>$list_item_marker,'x'=>$xb,'align'=>$lalign,'font'=>$typefont,'level'=>$lvl, 'occur'=>$occur, 'num'=>$num, 'fontsize'=>$bullfs, 'col'=>$list_item_color ); - $this->x = $x; - } - else { -/*-- END RTL --*/ - - if ($this->list_align_style == 'L') { $lalign = 'L'; } - else { $lalign = 'R'; } - $this->divwidth = $this->blk[$this->blklvl]['width'] - ($indent + $blt_width + $space_width) ; - $xb = $this->blk[$this->blklvl]['padding_left'] + $this->blk[$this->blklvl]['border_left']['w'] - $blt_width - $space_width; - //Output bullet - $this->bulletarray = array('w'=>$blt_width,'h'=>$clh,'txt'=>$list_item_marker,'x'=>$xb,'align'=>$lalign,'font'=>$typefont,'level'=>$lvl, 'occur'=>$occur, 'num'=>$num, 'fontsize'=>$bullfs, 'col'=>$list_item_color ); - $this->x = $x + $indent + $blt_width + $space_width; - } // *RTL* - - //Print content - $this->printbuffer($this->textbuffer,'',false,true); - $this->textbuffer=array(); - - // Added to correct for OddEven Margins - if ($this->page != $bak_page) { - if (($this->page-$bak_page) % 2 == 1) { - $x += $this->MarginCorrection; - } - $bak_page = $this->page; - } -/*-- COLUMNS --*/ - // OR COLUMN CHANGE - if ($this->CurrCol != $oldcolumn) { - if ($this->directionality == 'rtl') { // *RTL* - $x -= ($this->CurrCol - $oldcolumn) * ($this->ColWidth+$this->ColGap); // *RTL* - } // *RTL* - else { // *RTL* - $x += ($this->CurrCol - $oldcolumn) * ($this->ColWidth+$this->ColGap); - } // *RTL* - $oldcolumn = $this->CurrCol; - } -/*-- END COLUMNS --*/ - - } - - //Reset all used values - $this->listoccur = array(); - $this->listitem = array(); - $this->listlist = array(); - $this->listlvl = 0; - $this->listnum = 0; - $this->listtype = ''; - $this->textbuffer = array(); - $this->divwidth = 0; - $this->divheight = 0; - $this->x = $this->lMargin + $this->blk[$this->blklvl]['outer_left_margin']; -} -/*-- END LISTS --*/ - -function _saveTextBuffer($t, $link = '', $intlink = '') { -// $this->textbuffer[] = array($t,$link,$this->currentfontstyle,$this->colorarray,$this->currentfontfamily,$this->SUP,$this->SUB,$intlink,$this->strike,$this->textparam,$this->spanbgcolorarray,$this->currentfontsize,$this->ReqFontStyle,$this->kerning,$this->lSpacingCSS,$this->wSpacingCSS,$this->spanborddet, $this->textshadow); - // mPDF 5.6.14 - $arr = array(); - $arr[0] = $t; - if (isset($link) && $link) $arr[1] = $link; - $arr[2] = $this->currentfontstyle; - if (isset($this->colorarray) && $this->colorarray) $arr[3] = $this->colorarray; - $arr[4] = $this->currentfontfamily; - if (isset($this->SUP) && $this->SUP) $arr[5] = $this->SUP; - if (isset($this->SUB) && $this->SUB) $arr[6] = $this->SUB; - if (isset($intlink) && $intlink) $arr[7] = $intlink; - if (isset($this->strike) && $this->strike) $arr[8] = $this->strike; - if (isset($this->textparam) && $this->textparam) $arr[9] = $this->textparam; - if (isset($this->spanbgcolorarray) && $this->spanbgcolorarray) $arr[10] = $this->spanbgcolorarray; - $arr[11] = $this->currentfontsize; - if (isset($this->ReqFontStyle) && $this->ReqFontStyle) $arr[12] = $this->ReqFontStyle; - if (isset($this->kerning) && $this->kerning) $arr[13] = $this->kerning; - if (isset($this->lSpacingCSS) && $this->lSpacingCSS) $arr[14] = $this->lSpacingCSS; - if (isset($this->wSpacingCSS) && $this->wSpacingCSS) $arr[15] = $this->wSpacingCSS; - if (isset($this->spanborddet) && $this->spanborddet) $arr[16] = $this->spanborddet; - if (isset($this->textshadow) && $this->textshadow) $arr[17] = $this->textshadow; - $this->textbuffer[] = $arr; -} - -function _saveCellTextBuffer($t, $link = '', $intlink = '') { -// $this->cell[$this->row][$this->col]['textbuffer'][] = array($t,$link,$this->currentfontstyle,$this->colorarray,$this->currentfontfamily,$this->SUP,$this->SUB,$intlink,$this->strike,$this->textparam,$this->spanbgcolorarray,$this->currentfontsize,$this->ReqFontStyle,$this->kerning,$this->lSpacingCSS,$this->wSpacingCSS,$this->spanborddet, $this->textshadow); - // mPDF 5.6.14 - $arr = array(); - $arr[0] = $t; - if (isset($link) && $link) $arr[1] = $link; - $arr[2] = $this->currentfontstyle; - if (isset($this->colorarray) && $this->colorarray) $arr[3] = $this->colorarray; - $arr[4] = $this->currentfontfamily; - if (isset($this->SUP) && $this->SUP) $arr[5] = $this->SUP; - if (isset($this->SUB) && $this->SUB) $arr[6] = $this->SUB; - if (isset($intlink) && $intlink) $arr[7] = $intlink; - if (isset($this->strike) && $this->strike) $arr[8] = $this->strike; - if (isset($this->textparam) && $this->textparam) $arr[9] = $this->textparam; - if (isset($this->spanbgcolorarray) && $this->spanbgcolorarray) $arr[10] = $this->spanbgcolorarray; - $arr[11] = $this->currentfontsize; - if (isset($this->ReqFontStyle) && $this->ReqFontStyle) $arr[12] = $this->ReqFontStyle; - if (isset($this->kerning) && $this->kerning) $arr[13] = $this->kerning; - if (isset($this->lSpacingCSS) && $this->lSpacingCSS) $arr[14] = $this->lSpacingCSS; - if (isset($this->wSpacingCSS) && $this->wSpacingCSS) $arr[15] = $this->wSpacingCSS; - if (isset($this->spanborddet) && $this->spanborddet) $arr[16] = $this->spanborddet; - if (isset($this->textshadow) && $this->textshadow) $arr[17] = $this->textshadow; - $this->cell[$this->row][$this->col]['textbuffer'][] = $arr; -} - - -function printbuffer($arrayaux,$blockstate=0,$is_table=false,$is_list=false) -{ -// $blockstate = 0; // NO margins/padding -// $blockstate = 1; // Top margins/padding only -// $blockstate = 2; // Bottom margins/padding only -// $blockstate = 3; // Top & bottom margins/padding - $this->spanbgcolorarray = ''; - $this->spanbgcolor = false; - $this->spanborder = false; - $this->spanborddet = array(); - $paint_ht_corr = 0; - -/*-- CSS-FLOAT --*/ - if (count($this->floatDivs)) { - list($l_exists, $r_exists, $l_max, $r_max, $l_width, $r_width) = $this->GetFloatDivInfo($this->blklvl); - if (($this->blk[$this->blklvl]['inner_width']-$l_width-$r_width) < (2*$this->GetCharWidth('W',false))) { - // Too narrow to fit - try to move down past L or R float - if ($l_max < $r_max && ($this->blk[$this->blklvl]['inner_width']-$r_width) > (2*$this->GetCharWidth('W',false))) { - $this->ClearFloats('LEFT', $this->blklvl); - } - else if ($r_max < $l_max && ($this->blk[$this->blklvl]['inner_width']-$l_width) > (2*$this->GetCharWidth('W',false))) { - $this->ClearFloats('RIGHT', $this->blklvl); - } - else { $this->ClearFloats('BOTH', $this->blklvl); } - } - } -/*-- END CSS-FLOAT --*/ - $bak_y = $this->y; - $bak_x = $this->x; - $align = ''; - if (!$is_table && !$is_list) { - if (isset($this->blk[$this->blklvl]['align']) && $this->blk[$this->blklvl]['align']) { $align = $this->blk[$this->blklvl]['align']; } - // Block-align is set by e.g. <.. align="center"> Takes priority for this block but not inherited - if (isset($this->blk[$this->blklvl]['block-align']) && $this->blk[$this->blklvl]['block-align']) { $align = $this->blk[$this->blklvl]['block-align']; } - if (isset($this->blk[$this->blklvl]['direction'])) $blockdir = $this->blk[$this->blklvl]['direction']; - else $blockdir = ""; - $this->divwidth = $this->blk[$this->blklvl]['width']; - } - else { - $align = $this->divalign; - if ($is_table) { $blockdir = $this->table[$this->tableLevel][$this->tbctr[$this->tableLevel]]['direction']; } - else { $blockdir = $this->listDir; } - } - $oldpage = $this->page; - - // ADDED for Out of Block now done as Flowing Block - if ($this->divwidth == 0) { - $this->divwidth = $this->pgwidth; - } - - if (!$is_table && !$is_list) { $this->SetLineHeight($this->FontSizePt,$this->blk[$this->blklvl]['line_height']); } - $this->divheight = $this->lineheight; - $old_height = $this->divheight; - - // As a failsafe - if font has been set but not output to page - $this->SetFont($this->default_font,'',$this->default_font_size,true,true); // force output to page - - $array_size = count($arrayaux); - $this->newFlowingBlock( $this->divwidth,$this->divheight,$align,$is_table,$is_list,$blockstate,true,$blockdir); - - // Added - Otherwise

did not output top margins/padding for 1st/2nd div - if ($array_size == 0) { $this->finishFlowingBlock(true); } // true = END of flowing block - - for($i=0;$i < $array_size; $i++) - { - // COLS - $oldcolumn = $this->CurrCol; - - $vetor = $arrayaux[$i]; - if ($i == 0 and $vetor[0] != "\n" and !$this->ispre) { - $vetor[0] = ltrim($vetor[0]); - } - - // FIXED TO ALLOW IT TO SHOW '0' - if (empty($vetor[0]) && !($vetor[0]==='0') && empty($vetor[7])) { //Ignore empty text and not carrying an internal link - //Check if it is the last element. If so then finish printing the block - if ($i == ($array_size-1)) { $this->finishFlowingBlock(true); } // true = END of flowing block - continue; - } - - - //Activating buffer properties - if(isset($vetor[11]) and $vetor[11] != '') { // Font Size - if ($is_table && $this->shrin_k) { - $this->SetFontSize($vetor[11]/$this->shrin_k,false); - } - else { - $this->SetFontSize($vetor[11],false); - } - } - - if(isset($vetor[17]) && !empty($vetor[17])) { //TextShadow - $this->textshadow = $vetor[17]; - } - if(isset($vetor[16]) && !empty($vetor[16])) { //Border - $this->spanborddet = $vetor[16]; - $this->spanborder = true; - } - - if(isset($vetor[15])) { // Word spacing - $this->wSpacingCSS = $vetor[15]; - if ($this->wSpacingCSS && strtoupper($this->wSpacingCSS) != 'NORMAL') { - $this->minwSpacing = $this->ConvertSize($this->wSpacingCSS,$this->FontSize)/$this->shrin_k; // mPDF 5.7.3 - } - } - if(isset($vetor[14])) { // Letter spacing - $this->lSpacingCSS = $vetor[14]; - if (($this->lSpacingCSS || $this->lSpacingCSS==='0') && strtoupper($this->lSpacingCSS) != 'NORMAL') { - $this->fixedlSpacing = $this->ConvertSize($this->lSpacingCSS,$this->FontSize)/$this->shrin_k; // mPDF 5.7.3 - } - } - if(isset($vetor[13])) { // Font Kerning - $this->kerning = $vetor[13]; - } - - - if(isset($vetor[10]) and !empty($vetor[10])) //Background color - { - $this->spanbgcolorarray = $vetor[10]; - $this->spanbgcolor = true; - } - if(isset($vetor[9]) and !empty($vetor[9])) // Text parameters - Outline + hyphens - { - $this->textparam = $vetor[9] ; // mPDF 5.6.14 - $this->SetTextOutline($this->textparam); // mPDF 5.6.07 - // mPDF 5.7.3 inline text-decoration parameters - if ($is_table && $this->shrin_k) { - if (isset($this->textparam['text-baseline'])) { $this->textparam['text-baseline'] /= $this->shrin_k; } - if (isset($this->textparam['decoration-baseline'])) { $this->textparam['decoration-baseline'] /= $this->shrin_k; } - if (isset($this->textparam['decoration-fontsize'])) { $this->textparam['decoration-fontsize'] /= $this->shrin_k; } - } - } - if(isset($vetor[8]) and $vetor[8] === true) // strike-through the text - { - $this->strike = true; - } - if(isset($vetor[7]) and $vetor[7] != '') // internal target: - { - $ily = $this->y; - if ($this->keep_block_together) { $this->internallink[$vetor[7]] = array("Y"=>$ily,"PAGE"=>$this->page, "kt"=>true ); } - else if ($this->table_rotate) { $this->internallink[$vetor[7]] = array("Y"=>$ily,"PAGE"=>$this->page, "tbrot"=>true ); } - else if ($this->kwt) { $this->internallink[$vetor[7]] = array("Y"=>$ily,"PAGE"=>$this->page, "kwt"=>true ); } - else if ($this->ColActive) { $this->internallink[$vetor[7]] = array("Y"=>$ily,"PAGE"=>$this->page, "col"=>$this->CurrCol ); } - else - $this->internallink[$vetor[7]] = array("Y"=>$ily,"PAGE"=>$this->page ); - if (empty($vetor[0])) { //Ignore empty text - //Check if it is the last element. If so then finish printing the block - if ($i == ($array_size-1)) { $this->finishFlowingBlock(true); } // true = END of flowing block - continue; - } - } - if(isset($vetor[6]) and $vetor[6] === true) // Subscript - { - $this->SUB = true; - } - if(isset($vetor[5]) and $vetor[5] === true) // Superscript - { - $this->SUP = true; - } - if(isset($vetor[4]) and $vetor[4] != '') { // Font Family - $font = $this->SetFont($vetor[4],$this->FontStyle,0,false); - } - if (!empty($vetor[3])) //Font Color - { - $cor = $vetor[3]; - $this->SetTColor($cor); - } - if(isset($vetor[2]) and $vetor[2] != '') //Bold,Italic,Underline styles - { - $this->SetStyles($vetor[2]); - } - - if(isset($vetor[12]) and $vetor[12] != '') { //Requested Bold,Italic,Underline - $this->ReqFontStyle = $vetor[12]; - } - if(isset($vetor[1]) and $vetor[1] != '') //LINK - { - if (strpos($vetor[1],".") === false && strpos($vetor[1],"@") !== 0) //assuming every external link has a dot indicating extension (e.g: .html .txt .zip www.somewhere.com etc.) - { - //Repeated reference to same anchor? - while(array_key_exists($vetor[1],$this->internallink)) $vetor[1]="#".$vetor[1]; - $this->internallink[$vetor[1]] = $this->AddLink(); - $vetor[1] = $this->internallink[$vetor[1]]; - } - $this->HREF = $vetor[1]; // HREF link style set here ****** - } - - // SPECIAL CONTENT - IMAGES & FORM OBJECTS - //Print-out special content - - if (substr($vetor[0],0,3) == "\xbb\xa4\xac") { //identifier has been identified! - - $objattr = $this->_getObjAttr($vetor[0]); - -/*-- TABLES --*/ - if ($objattr['type'] == 'nestedtable') { - if ($objattr['nestedcontent']) { - $level = $objattr['level']; - $table = &$this->table[$level][$objattr['table']]; - if ($this->cacheTables) { - $fh = fopen($table['cache'], "r+b"); - $cell = $this->_uncacheCell($table['cells'][$objattr['row']][$objattr['col']], '', $fh); - } - else { - $fh = null; - $cell = &$table['cells'][$objattr['row']][$objattr['col']]; - } - $this->finishFlowingBlock(false,'nestedtable'); - $save_dw = $this->divwidth ; - $save_buffer = $this->cellBorderBuffer; - $this->cellBorderBuffer = array(); - $ncx = $this->x; - list($dummyx,$w) = $this->_tableGetWidth($table, $objattr['row'], $objattr['col'], $fh); - $ntw = $this->table[($level+1)][$objattr['nestedcontent']]['w']; // nested table width - if (!$this->simpleTables){ - if ($this->packTableData) { - list($bt,$br,$bb,$bl) = $this->_getBorderWidths($cell['borderbin']); - } - else { - $br = $cell['border_details']['R']['w']; - $bl = $cell['border_details']['L']['w']; - } - if ($table['borders_separate']) { - $innerw = $w - $bl - $br - $cell['padding']['L'] - $cell['padding']['R'] - $table['border_spacing_H']; - } - else { - $innerw = $w - $bl/2 - $br/2 - $cell['padding']['L'] - $cell['padding']['R']; - } - } - else if ($this->simpleTables){ - if ($table['borders_separate']) { - $innerw = $w - $table['simple']['border_details']['L']['w'] - $table['simple']['border_details']['R']['w'] - $cell['padding']['L'] - $cell['padding']['R'] - $table['border_spacing_H']; - } - else { - $innerw = $w - $table['simple']['border_details']['L']['w']/2 - $table['simple']['border_details']['R']['w']/2 - $cell['padding']['L'] - $cell['padding']['R']; - } - } - if ($cell['a']=='C' || $this->table[($level+1)][$objattr['nestedcontent']]['a']=='C') { - $ncx += ($innerw-$ntw)/2; - } - elseif ($cell['a']=='R' || $this->table[($level+1)][$objattr['nestedcontent']]['a']=='R') { - $ncx += $innerw- $ntw; - } - $this->x = $ncx ; - if ($this->cacheTables) { fclose($fh); } - - $this->_tableWrite($this->table[($level+1)][$objattr['nestedcontent']]); - $this->cellBorderBuffer = $save_buffer; - $this->x = $bak_x ; - $this->divwidth = $save_dw; - $this->newFlowingBlock( $this->divwidth,$this->divheight,$align,$is_table,$is_list,$blockstate,false,$blockdir); - } - } - else { -/*-- END TABLES --*/ - if ($is_table) { // *TABLES* - $maxWidth = $this->divwidth; // *TABLES* - } // *TABLES* - else { // *TABLES* - $maxWidth = $this->divwidth - ($this->blk[$this->blklvl]['padding_left'] + $this->blk[$this->blklvl]['border_left']['w'] + $this->blk[$this->blklvl]['padding_right'] + $this->blk[$this->blklvl]['border_right']['w']); - } // *TABLES* - -/*-- CSS-IMAGE-FLOAT --*/ - // If float (already) exists at this level - if (isset($this->floatmargins['R']) && $this->y <= $this->floatmargins['R']['y1'] && $this->y >= $this->floatmargins['R']['y0']) { $maxWidth -= $this->floatmargins['R']['w']; } - if (isset($this->floatmargins['L']) && $this->y <= $this->floatmargins['L']['y1'] && $this->y >= $this->floatmargins['L']['y0']) { $maxWidth -= $this->floatmargins['L']['w']; } -/*-- END CSS-IMAGE-FLOAT --*/ - - list($skipln) = $this->inlineObject($objattr['type'], '', $this->y, $objattr,$this->lMargin, ($this->flowingBlockAttr['contentWidth']/_MPDFK), $maxWidth, $this->flowingBlockAttr['height'], false, $is_table); - // 1 -> New line needed because of width - // -1 -> Will fit width on line but NEW PAGE REQUIRED because of height - // -2 -> Will not fit on line therefore needs new line but thus NEW PAGE REQUIRED - $iby = $this->y; - $oldpage = $this->page; - $oldcol = $this->CurrCol; - if (($skipln == 1 || $skipln == -2) && !isset($objattr['float'])) { - $this->finishFlowingBlock(false,$objattr['type']); - $this->newFlowingBlock( $this->divwidth,$this->divheight,$align,$is_table,$is_list,$blockstate,false,$blockdir); - } - $thispage = $this->page; - if ($this->CurrCol!=$oldcol) { $changedcol = true; } - else { $changedcol=false; } - - // the previous lines can already have triggered page break or column change - if (!$changedcol && $skipln <0 && $this->AcceptPageBreak() && $thispage==$oldpage) { - - $this->AddPage($this->CurOrientation); - - // Added to correct Images already set on line before page advanced - // i.e. if second inline image on line is higher than first and forces new page - if (count($this->objectbuffer)) { - $yadj = $iby - $this->y; - foreach($this->objectbuffer AS $ib=>$val) { - if ($this->objectbuffer[$ib]['OUTER-Y'] ) $this->objectbuffer[$ib]['OUTER-Y'] -= $yadj; - if ($this->objectbuffer[$ib]['BORDER-Y']) $this->objectbuffer[$ib]['BORDER-Y'] -= $yadj; - if ($this->objectbuffer[$ib]['INNER-Y']) $this->objectbuffer[$ib]['INNER-Y'] -= $yadj; - } - } - } - - // Added to correct for OddEven Margins - if ($this->page != $oldpage) { - if (($this->page-$oldpage) % 2 == 1) { - $bak_x += $this->MarginCorrection; - } - $oldpage = $this->page; - $y = $this->tMargin - $paint_ht_corr ; - $this->oldy = $this->tMargin - $paint_ht_corr ; - $old_height = 0; - } - $this->x = $bak_x; -/*-- COLUMNS --*/ - // COLS - // OR COLUMN CHANGE - if ($this->CurrCol != $oldcolumn) { - if ($this->directionality == 'rtl') { // *RTL* - $bak_x -= ($this->CurrCol - $oldcolumn) * ($this->ColWidth+$this->ColGap); // *RTL* - } // *RTL* - else { // *RTL* - $bak_x += ($this->CurrCol - $oldcolumn) * ($this->ColWidth+$this->ColGap); - } // *RTL* - $this->x = $bak_x; - $oldcolumn = $this->CurrCol; - $y = $this->y0 - $paint_ht_corr ; - $this->oldy = $this->y0 - $paint_ht_corr ; - $old_height = 0; - } -/*-- END COLUMNS --*/ - -/*-- CSS-IMAGE-FLOAT --*/ - if ($objattr['type'] == 'image' && isset($objattr['float'])) { - $fy = $this->y; - - // DIV TOP MARGIN/BORDER/PADDING - if ($this->flowingBlockAttr['newblock'] && ($this->flowingBlockAttr['blockstate']==1 || $this->flowingBlockAttr['blockstate']==3) && $this->flowingBlockAttr['lineCount']== 0) { - $fy += $this->blk[$this->blklvl]['margin_top'] + $this->blk[$this->blklvl]['padding_top'] + $this->blk[$this->blklvl]['border_top']['w']; - } - - if ($objattr['float']=='R') { - $fx = $this->w - $this->rMargin - $objattr['width'] - ($this->blk[$this->blklvl]['outer_right_margin'] + $this->blk[$this->blklvl]['border_right']['w'] + $this->blk[$this->blklvl]['padding_right']); - - - } - else if ($objattr['float']=='L') { - $fx = $this->lMargin + ($this->blk[$this->blklvl]['outer_left_margin'] + $this->blk[$this->blklvl]['border_left']['w'] + $this->blk[$this->blklvl]['padding_left']); - } - $w = $objattr['width']; - $h = abs($objattr['height']); - - $widthLeft = $maxWidth - ($this->flowingBlockAttr['contentWidth']/_MPDFK); - $maxHeight = $this->h - ($this->tMargin + $this->margin_header + $this->bMargin + 10) ; - // For Images - $extraWidth = ($objattr['border_left']['w'] + $objattr['border_right']['w'] + $objattr['margin_left']+ $objattr['margin_right']); - $extraHeight = ($objattr['border_top']['w'] + $objattr['border_bottom']['w'] + $objattr['margin_top']+ $objattr['margin_bottom']); - - if ($objattr['itype'] == 'wmf' || $objattr['itype'] == 'svg') { - $file = $objattr['file']; - $info=$this->formobjects[$file]; - } - else { - $file = $objattr['file']; - $info=$this->images[$file]; - } - $img_w = $w - $extraWidth ; - $img_h = $h - $extraHeight ; - if ($objattr['border_left']['w']) { - $objattr['BORDER-WIDTH'] = $img_w + (($objattr['border_left']['w'] + $objattr['border_right']['w'])/2) ; - $objattr['BORDER-HEIGHT'] = $img_h + (($objattr['border_top']['w'] + $objattr['border_bottom']['w'])/2) ; - $objattr['BORDER-X'] = $fx + $objattr['margin_left'] + (($objattr['border_left']['w'])/2) ; - $objattr['BORDER-Y'] = $fy + $objattr['margin_top'] + (($objattr['border_top']['w'])/2) ; - } - $objattr['INNER-WIDTH'] = $img_w; - $objattr['INNER-HEIGHT'] = $img_h; - $objattr['INNER-X'] = $fx + $objattr['margin_left'] + ($objattr['border_left']['w']); - $objattr['INNER-Y'] = $fy + $objattr['margin_top'] + ($objattr['border_top']['w']) ; - $objattr['ID'] = $info['i']; - $objattr['OUTER-WIDTH'] = $w; - $objattr['OUTER-HEIGHT'] = $h; - $objattr['OUTER-X'] = $fx; - $objattr['OUTER-Y'] = $fy; - if ($objattr['float']=='R') { - // If R float already exists at this level - $this->floatmargins['R']['skipline'] = false; - if (isset($this->floatmargins['R']['y1']) && $this->floatmargins['R']['y1'] > 0 && $fy < $this->floatmargins['R']['y1']) { - $this->WriteFlowingBlock($vetor[0]); - } - // If L float already exists at this level - else if (isset($this->floatmargins['L']['y1']) && $this->floatmargins['L']['y1'] > 0 && $fy < $this->floatmargins['L']['y1']) { - // Final check distance between floats is not now too narrow to fit text - $mw = 2*$this->GetCharWidth('W',false); - if (($this->blk[$this->blklvl]['inner_width'] - $w - $this->floatmargins['L']['w']) < $mw) { - $this->WriteFlowingBlock($vetor[0]); - } - else { - $this->floatmargins['R']['x'] = $fx; - $this->floatmargins['R']['w'] = $w; - $this->floatmargins['R']['y0'] = $fy; - $this->floatmargins['R']['y1'] = $fy + $h; - if ($skipln == 1) { - $this->floatmargins['R']['skipline'] = true; - $this->floatmargins['R']['id'] = count($this->floatbuffer)+0; - $objattr['skipline'] = true; - } - $this->floatbuffer[] = $objattr; - } - } - else { - $this->floatmargins['R']['x'] = $fx; - $this->floatmargins['R']['w'] = $w; - $this->floatmargins['R']['y0'] = $fy; - $this->floatmargins['R']['y1'] = $fy + $h; - if ($skipln == 1) { - $this->floatmargins['R']['skipline'] = true; - $this->floatmargins['R']['id'] = count($this->floatbuffer)+0; - $objattr['skipline'] = true; - } - $this->floatbuffer[] = $objattr; - } - } - else if ($objattr['float']=='L') { - // If L float already exists at this level - $this->floatmargins['L']['skipline'] = false; - if (isset($this->floatmargins['L']['y1']) && $this->floatmargins['L']['y1'] > 0 && $fy < $this->floatmargins['L']['y1']) { - $this->floatmargins['L']['skipline'] = false; - $this->WriteFlowingBlock($vetor[0]); - } - // If R float already exists at this level - else if (isset($this->floatmargins['R']['y1']) && $this->floatmargins['R']['y1'] > 0 && $fy < $this->floatmargins['R']['y1']) { - // Final check distance between floats is not now too narrow to fit text - $mw = 2*$this->GetCharWidth('W',false); - if (($this->blk[$this->blklvl]['inner_width'] - $w - $this->floatmargins['R']['w']) < $mw) { - $this->WriteFlowingBlock($vetor[0]); - } - else { - $this->floatmargins['L']['x'] = $fx + $w; - $this->floatmargins['L']['w'] = $w; - $this->floatmargins['L']['y0'] = $fy; - $this->floatmargins['L']['y1'] = $fy + $h; - if ($skipln == 1) { - $this->floatmargins['L']['skipline'] = true; - $this->floatmargins['L']['id'] = count($this->floatbuffer)+0; - $objattr['skipline'] = true; - } - $this->floatbuffer[] = $objattr; - } - } - else { - $this->floatmargins['L']['x'] = $fx + $w; - $this->floatmargins['L']['w'] = $w; - $this->floatmargins['L']['y0'] = $fy; - $this->floatmargins['L']['y1'] = $fy + $h; - if ($skipln == 1) { - $this->floatmargins['L']['skipline'] = true; - $this->floatmargins['L']['id'] = count($this->floatbuffer)+0; - $objattr['skipline'] = true; - } - $this->floatbuffer[] = $objattr; - } - } - } - else { -/*-- END CSS-IMAGE-FLOAT --*/ - $this->WriteFlowingBlock($vetor[0]); -/*-- CSS-IMAGE-FLOAT --*/ - } -/*-- END CSS-IMAGE-FLOAT --*/ - } // *TABLES* - - } // END If special content - else { //THE text - if ($this->tableLevel) { $paint_ht_corr = 0; } // To move the y up when new column/page started if div border needed - else { $paint_ht_corr = $this->blk[$this->blklvl]['border_top']['w']; } - - if ($vetor[0] == "\n") { //We are reading a
now turned into newline ("\n") - if ($this->flowingBlockAttr['content']) { - $this->finishFlowingBlock(false,'br'); - } - else if ($is_table) { - $this->y+= $this->_computeLineheight($this->table_lineheight); - } - else if (!$is_table) { - $this->DivLn($this->lineheight); - if ($this->ColActive) { $this->breakpoints[$this->CurrCol][] = $this->y; } // *COLUMNS* - } - // Added to correct for OddEven Margins - if ($this->page != $oldpage) { - if (($this->page-$oldpage) % 2 == 1) { - $bak_x += $this->MarginCorrection; - } - $oldpage = $this->page; - $y = $this->tMargin - $paint_ht_corr ; - $this->oldy = $this->tMargin - $paint_ht_corr ; - $old_height = 0; - } - $this->x = $bak_x; -/*-- COLUMNS --*/ - // COLS - // OR COLUMN CHANGE - if ($this->CurrCol != $oldcolumn) { - if ($this->directionality == 'rtl') { // *RTL* - $bak_x -= ($this->CurrCol - $oldcolumn) * ($this->ColWidth+$this->ColGap); // *RTL* - } // *RTL* - else { // *RTL* - $bak_x += ($this->CurrCol - $oldcolumn) * ($this->ColWidth+$this->ColGap); - } // *RTL* - $this->x = $bak_x; - $oldcolumn = $this->CurrCol; - $y = $this->y0 - $paint_ht_corr ; - $this->oldy = $this->y0 - $paint_ht_corr ; - $old_height = 0; - } -/*-- END COLUMNS --*/ - $this->newFlowingBlock( $this->divwidth,$this->divheight,$align,$is_table,$is_list,$blockstate,false,$blockdir); - } - else { - $this->WriteFlowingBlock( $vetor[0]); - - // Added to correct for OddEven Margins - if ($this->page != $oldpage) { - if (($this->page-$oldpage) % 2 == 1) { - $bak_x += $this->MarginCorrection; - $this->x = $bak_x; - } - $oldpage = $this->page; - $y = $this->tMargin - $paint_ht_corr ; - $this->oldy = $this->tMargin - $paint_ht_corr ; - $old_height = 0; - } -/*-- COLUMNS --*/ - // COLS - // OR COLUMN CHANGE - if ($this->CurrCol != $oldcolumn) { - if ($this->directionality == 'rtl') { // *RTL* - $bak_x -= ($this->CurrCol - $oldcolumn) * ($this->ColWidth+$this->ColGap); // *RTL* - } // *RTL* - else { // *RTL* - $bak_x += ($this->CurrCol - $oldcolumn) * ($this->ColWidth+$this->ColGap); - } // *RTL* - $this->x = $bak_x; - $oldcolumn = $this->CurrCol; - $y = $this->y0 - $paint_ht_corr ; - $this->oldy = $this->y0 - $paint_ht_corr ; - $old_height = 0; - } -/*-- END COLUMNS --*/ - } - - - } - - //Check if it is the last element. If so then finish printing the block - if ($i == ($array_size-1)) { - $this->finishFlowingBlock(true); // true = END of flowing block - // Added to correct for OddEven Margins - if ($this->page != $oldpage) { - if (($this->page-$oldpage) % 2 == 1) { - $bak_x += $this->MarginCorrection; - $this->x = $bak_x; - } - $oldpage = $this->page; - $y = $this->tMargin - $paint_ht_corr ; - $this->oldy = $this->tMargin - $paint_ht_corr ; - $old_height = 0; - } - -/*-- COLUMNS --*/ - // COLS - // OR COLUMN CHANGE - if ($this->CurrCol != $oldcolumn) { - if ($this->directionality == 'rtl') { // *RTL* - $bak_x -= ($this->CurrCol - $oldcolumn) * ($this->ColWidth+$this->ColGap); // *RTL* - } // *RTL* - else { // *RTL* - $bak_x += ($this->CurrCol - $oldcolumn) * ($this->ColWidth+$this->ColGap); - } // *RTL* - $this->x = $bak_x; - $oldcolumn = $this->CurrCol; - $y = $this->y0 - $paint_ht_corr ; - $this->oldy = $this->y0 - $paint_ht_corr ; - $old_height = 0; - } -/*-- END COLUMNS --*/ - - } - - // RESETTING VALUES - $this->SetTColor($this->ConvertColor(0)); - $this->SetDColor($this->ConvertColor(0)); - $this->SetFColor($this->ConvertColor(255)); - $this->colorarray = ''; - $this->spanbgcolorarray = ''; - $this->spanbgcolor = false; - $this->spanborder = false; - $this->spanborddet = array(); - $this->HREF = ''; - $this->textparam = array(); - $this->SetTextOutline(); - $this->SUP = false; - $this->SUB = false; - - $this->strike = false; - $this->textshadow = ''; - - $this->currentfontfamily = ''; - $this->currentfontsize = ''; - $this->currentfontstyle = ''; -/*-- TABLES --*/ - if ($this->tableLevel) { - $this->SetLineHeight('',$this->table_lineheight); // *TABLES* - } - else -/*-- END TABLES --*/ -/*-- LISTS --*/ - if ($is_list && $this->list_lineheight[$this->listlvl][$this->listOcc]) { - $this->SetLineHeight('',$this->list_lineheight[$this->listlvl][$this->listOcc]); // sets default line height - } - else -/*-- END LISTS --*/ - if (isset($this->blk[$this->blklvl]['line_height']) && $this->blk[$this->blklvl]['line_height']) { - $this->SetLineHeight('',$this->blk[$this->blklvl]['line_height']); // sets default line height - } - $this->ResetStyles(); - $this->toupper = false; - $this->tolower = false; - $this->capitalize = false; - $this->kerning = false; - $this->lSpacingCSS = ''; - $this->wSpacingCSS = ''; - $this->fixedlSpacing = false; - $this->minwSpacing = 0; - $this->SetDash(); - $this->dash_on = false; - $this->dotted_on = false; - - }//end of for(i=0;iblk[$this->blklvl]['border']) || isset($this->blk[$this->blklvl]['bgcolor']) || isset($this->blk[$this->blklvl]['box_shadow'])) && $blockstate && ($this->y != $this->oldy)) { - $bottom_y = $this->y; // Does not include Bottom Margin - if (isset($this->blk[$this->blklvl]['startpage']) && $this->blk[$this->blklvl]['startpage'] != $this->page && $blockstate != 1) { - $this->PaintDivBB('pagetop',$blockstate); - } - - else if ($blockstate != 1) { - $this->PaintDivBB('',$blockstate); - } - $this->y = $bottom_y; - $this->x = $bak_x; - } - - // Reset Font - $this->SetFontSize($this->default_font_size,false); - - -} - -function _setDashBorder($style, $div, $cp, $side) { - if ($style == 'dashed' && (($side=='L' || $side=='R') || ($side=='T' && $div != 'pagetop' && !$cp) || ($side=='B' && $div!='pagebottom') )) { - $dashsize = 2; // final dash will be this + 1*linewidth - $dashsizek = 1.5; // ratio of Dash/Blank - $this->SetDash($dashsize,($dashsize/$dashsizek)+($this->LineWidth*2)); - } - else if ($style == 'dotted' || ($side=='T' && ($div == 'pagetop' || $cp)) || ($side=='B' && $div == 'pagebottom')) { - //Round join and cap - $this->SetLineJoin(1); - $this->SetLineCap(1); - $this->SetDash(0.001,($this->LineWidth*3)); - } -} - -function _setBorderLine($b, $k=1) { - $this->SetLineWidth($b['w']/$k); - $this->SetDColor($b['c']); - if ($b['c'][0]==5) { // RGBa - $this->SetAlpha(ord($b['c'][4])/100, 'Normal', false, 'S')."\n"; // mPDF 5.7.2 - } - else if ($b['c'][0]==6) { // CMYKa - $this->SetAlpha(ord($b['c'][5])/100, 'Normal', false, 'S')."\n"; // mPDF 5.7.2 - } -} - -// mPDF 5.6.52 -function PaintDivBB($divider='',$blockstate=0,$blvl=0) { - // Borders & backgrounds are done elsewhere for columns - messes up the repositioning in printcolumnbuffer - if ($this->ColActive) { return ; } // *COLUMNS* - $save_y = $this->y; - if (!$blvl) { $blvl = $this->blklvl; } - $x0 = $x1 = $y0 = $y1 = 0; - - // Added mPDF 3.0 Float DIV - if (isset($this->blk[$blvl]['bb_painted'][$this->page]) && $this->blk[$blvl]['bb_painted'][$this->page]) { return; } // *CSS-FLOAT* - - if (isset($this->blk[$blvl]['x0'])) { $x0 = $this->blk[$blvl]['x0']; } // left - if (isset($this->blk[$blvl]['y1'])) { $y1 = $this->blk[$blvl]['y1']; } // bottom - - // Added mPDF 3.0 Float DIV - ensures backgrounds/borders are drawn to bottom of page - if ($y1==0) { - if ($divider=='pagebottom') { $y1 = $this->h-$this->bMargin; } - else { $y1 = $this->y; } - } - - if (isset($this->blk[$blvl]['startpage']) && $this->blk[$blvl]['startpage'] != $this->page) { $continuingpage = true; } else { $continuingpage = false; } - - if (isset($this->blk[$blvl]['y0'])) { $y0 = $this->blk[$blvl]['y0']; } - $h = $y1 - $y0; - $w = $this->blk[$blvl]['width']; - $x1 = $x0 + $w; - - // Set border-widths as used here - $border_top = $this->blk[$blvl]['border_top']['w']; - $border_bottom = $this->blk[$blvl]['border_bottom']['w']; - $border_left = $this->blk[$blvl]['border_left']['w']; - $border_right = $this->blk[$blvl]['border_right']['w']; - if (!$this->blk[$blvl]['border_top'] || $divider == 'pagetop' || $continuingpage) { - $border_top = 0; - } - if (!$this->blk[$blvl]['border_bottom'] || $blockstate == 1 || $divider == 'pagebottom') { - $border_bottom = 0; - } - - $brTL_H = 0; - $brTL_V = 0; - $brTR_H = 0; - $brTR_V = 0; - $brBL_H = 0; - $brBL_V = 0; - $brBR_H = 0; - $brBR_V = 0; - - $brset = false; -/*-- BORDER-RADIUS --*/ - if (isset($this->blk[$blvl]['border_radius_TL_H'])) { $brTL_H = $this->blk[$blvl]['border_radius_TL_H']; $brset = true; } - if (isset($this->blk[$blvl]['border_radius_TL_V'])) { $brTL_V = $this->blk[$blvl]['border_radius_TL_V']; $brset = true; } - if (isset($this->blk[$blvl]['border_radius_TR_H'])) { $brTR_H = $this->blk[$blvl]['border_radius_TR_H']; $brset = true; } - if (isset($this->blk[$blvl]['border_radius_TR_V'])) { $brTR_V = $this->blk[$blvl]['border_radius_TR_V']; $brset = true; } - if (isset($this->blk[$blvl]['border_radius_BR_H'])) { $brBR_H = $this->blk[$blvl]['border_radius_BR_H']; $brset = true; } - if (isset($this->blk[$blvl]['border_radius_BR_V'])) { $brBR_V = $this->blk[$blvl]['border_radius_BR_V']; $brset = true; } - if (isset($this->blk[$blvl]['border_radius_BL_H'])) { $brBL_H = $this->blk[$blvl]['border_radius_BL_H']; $brset = true; } - if (isset($this->blk[$blvl]['border_radius_BL_V'])) { $brBL_V = $this->blk[$blvl]['border_radius_BL_V']; $brset = true; } - - // mPDF 5.4.17 - //if (!$this->blk[$blvl]['border_top'] || $divider == 'pagetop' || $continuingpage || $this->keep_block_together) { - if (!$this->blk[$blvl]['border_top'] || $divider == 'pagetop' || $continuingpage) { - $brTL_H = 0; - $brTL_V = 0; - $brTR_H = 0; - $brTR_V = 0; - } - // mPDF 5.4.17 - //if (!$this->blk[$blvl]['border_bottom'] || $blockstate == 1 || $divider == 'pagebottom' || $this->keep_block_together) { - if (!$this->blk[$blvl]['border_bottom'] || $blockstate == 1 || $divider == 'pagebottom') { - $brBL_H = 0; - $brBL_V = 0; - $brBR_H = 0; - $brBR_V = 0; - } - - // Disallow border-radius if it is smaller than the border width. - if ($brTL_H < min($border_left, $border_top)) { $brTL_H = $brTL_V = 0; } - if ($brTL_V < min($border_left, $border_top)) { $brTL_V = $brTL_H = 0; } - if ($brTR_H < min($border_right, $border_top)) { $brTR_H = $brTR_V = 0; } - if ($brTR_V < min($border_right, $border_top)) { $brTR_V = $brTR_H = 0; } - if ($brBL_H < min($border_left, $border_bottom)) { $brBL_H = $brBL_V = 0; } - if ($brBL_V < min($border_left, $border_bottom)) { $brBL_V = $brBL_H = 0; } - if ($brBR_H < min($border_right, $border_bottom)) { $brBR_H = $brBR_V = 0; } - if ($brBR_V < min($border_right, $border_bottom)) { $brBR_V = $brBR_H = 0; } - - // CHECK FOR radii that sum to > width or height of div ******** - $f = min($h/($brTL_V + $brBL_V + 0.001), $h/($brTR_V + $brBR_V + 0.001), $w/($brTL_H + $brTR_H + 0.001), $w/($brBL_H + $brBR_H + 0.001)); - if ($f < 1) { - $brTL_H *= $f; - $brTL_V *= $f; - $brTR_H *= $f; - $brTR_V *= $f; - $brBL_H *= $f; - $brBL_V *= $f; - $brBR_H *= $f; - $brBR_V *= $f; - } -/*-- END BORDER-RADIUS --*/ - - $tbcol = $this->ConvertColor(255); - for($l=0; $l <= $blvl; $l++) { - if ($this->blk[$l]['bgcolor']) { - $tbcol = $this->blk[$l]['bgcolorarray']; - } - } - - // BORDERS - if (isset($this->blk[$blvl]['y0']) && $this->blk[$blvl]['y0']) { $y0 = $this->blk[$blvl]['y0']; } - $h = $y1 - $y0; - $w = $this->blk[$blvl]['width']; - - //if ($this->blk[$blvl]['border_top']) { - // Reinstate line above for dotted line divider when block border crosses a page - if ($this->blk[$blvl]['border_top'] && $divider != 'pagetop' && !$continuingpage) { - $tbd = $this->blk[$blvl]['border_top']; - - // mPDF 5.4.18 - $legend = ''; - if (isset($this->blk[$blvl]['border_legend']) && $this->blk[$blvl]['border_legend']) { - $legend = $this->blk[$blvl]['border_legend']; // Same structure array as textbuffer - $txt = ltrim($legend[0]); - - //Set font, size, style, color - $this->SetFont($legend[4],$legend[2],$legend[11]); - if ($legend[3]) { - $cor = $legend[3]; - $this->SetTColor($cor); - } - $stringWidth = $this->GetStringWidth($txt ); - $save_x = $this->x; - $save_y = $this->y; - $save_currentfontfamily = $this->FontFamily; - $save_currentfontsize = $this->FontSizePt; - $save_currentfontstyle = $this->FontStyle.($this->U ? 'U' : '').($this->S ? 'S' : ''); - $this->y = $y0 - $this->FontSize/2 + $this->blk[$blvl]['border_top']['w']/2; - $this->x = $x0 + $this->blk[$blvl]['padding_left'] + $this->blk[$blvl]['border_left']['w']; - - // Set the distance from the border line to the text ? make configurable variable - $gap = 0.2 * $this->FontSize; - - $legbreakL = $this->x - $gap; - $legbreakR = $this->x + $stringWidth + $gap; - - $this->Cell( $stringWidth, $this->FontSize, $txt , '', 0, 'C', $fill, '', 0, 0,0,'M', $fill); - // Reset - $this->x = $save_x; - $this->y = $save_y; - $this->SetFont($save_currentfontfamily,$save_currentfontstyle,$save_currentfontsize); - $this->SetTColor($this->ConvertColor(0)); - } - - if (isset($tbd['s']) && $tbd['s']) { - if (!$brset && $tbd['style']!='dotted' && $tbd['style']!='dashed') { - $this->_out('q'); - $this->SetLineWidth(0); - $this->_out(sprintf('%.3F %.3F m ',($x0)*_MPDFK, ($this->h-($y0))*_MPDFK)); - $this->_out(sprintf('%.3F %.3F l ',($x0 + $border_left)*_MPDFK, ($this->h-($y0 + $border_top))*_MPDFK)); - $this->_out(sprintf('%.3F %.3F l ',($x0 + $w - $border_right)*_MPDFK, ($this->h-($y0 + $border_top))*_MPDFK)); - $this->_out(sprintf('%.3F %.3F l ',($x0 + $w)*_MPDFK, ($this->h-($y0))*_MPDFK)); - $this->_out(' h W n '); // Ends path no-op & Sets the clipping path - } - - $this->_setBorderLine($tbd); - if ($tbd['style']=='dotted' || $tbd['style']=='dashed') { - $legbreakL -= $border_top/2; // because line cap different - $legbreakR += $border_top/2; - $this->_setDashBorder($tbd['style'],$divider,$continuingpage,'T'); - } -/*-- BORDER-RADIUS --*/ - else if (($brTL_V && $brTL_H) || ($brTR_V && $brTR_H) || $tbd['style']=='solid' || $tbd['style']=='double' ) { // mPDF 5.6.58 - $this->SetLineJoin(0); - $this->SetLineCap(0); - } - $s = ''; - if ($brTR_H && $brTR_V) { - $s .= ($this->_EllipseArc($x0 + $w - $brTR_H, $y0 + $brTR_V, $brTR_H - $border_top/2 , $brTR_V - $border_top/2 , 1, 2, true))."\n"; - } - else -/*-- END BORDER-RADIUS --*/ - if ($tbd['style']=='solid' || $tbd['style']=='double') { - $s .= (sprintf('%.3F %.3F m ',($x0 + $w)*_MPDFK, ($this->h-($y0 + ($border_top/2)))*_MPDFK))."\n"; - } - else { - $s .= (sprintf('%.3F %.3F m ',($x0 + $w - ($border_top/2))*_MPDFK, ($this->h-($y0 + ($border_top/2)))*_MPDFK))."\n"; - } -/*-- BORDER-RADIUS --*/ - if ($brTL_H && $brTL_V ) { - // mPDF 5.4.18 - if ($legend) { - if ($legbreakR < ($x0 + $w - $brTR_H)) { - $s .= (sprintf('%.3F %.3F l ', $legbreakR*_MPDFK, ($this->h-($y0 + ($border_top/2)))*_MPDFK))."\n"; - } - if ($legbreakL > ($x0 + $brTL_H )) { - $s .= (sprintf('%.3F %.3F m ',$legbreakL*_MPDFK, ($this->h-($y0 + ($border_top/2)))*_MPDFK))."\n"; - $s .= (sprintf('%.3F %.3F l ',($x0 + $brTL_H )*_MPDFK, ($this->h-($y0 + ($border_top/2)))*_MPDFK)."\n"); - } - else { - $s .= (sprintf('%.3F %.3F m ',($x0 + $brTL_H )*_MPDFK, ($this->h-($y0 + ($border_top/2)))*_MPDFK))."\n"; - } - } - else { - $s .= (sprintf('%.3F %.3F l ',($x0 + $brTL_H )*_MPDFK, ($this->h-($y0 + ($border_top/2)))*_MPDFK))."\n"; - } - $s .= ($this->_EllipseArc($x0 + $brTL_H, $y0 + $brTL_V, $brTL_H - $border_top/2 , $brTL_V - $border_top/2 , 2, 1))."\n"; - } - else { -/*-- END BORDER-RADIUS --*/ - // mPDF 5.4.18 - if ($legend) { - if ($legbreakR < ($x0 + $w)) { - $s .= (sprintf('%.3F %.3F l ',$legbreakR*_MPDFK, ($this->h-($y0 + ($border_top/2)))*_MPDFK))."\n"; - } - if ($legbreakL > ($x0)) { - $s .= (sprintf('%.3F %.3F m ',$legbreakL*_MPDFK, ($this->h-($y0 + ($border_top/2)))*_MPDFK))."\n"; - if ($tbd['style']=='solid' || $tbd['style']=='double') { - $s .= (sprintf('%.3F %.3F l ',($x0)*_MPDFK, ($this->h-($y0 + ($border_top/2)))*_MPDFK))."\n"; - } - else { - $s .= (sprintf('%.3F %.3F l ',($x0 + ($border_top/2))*_MPDFK, ($this->h-($y0 + ($border_top/2)))*_MPDFK))."\n"; - } - } - else if ($tbd['style']=='solid' || $tbd['style']=='double') { - $s .= (sprintf('%.3F %.3F m ', ($x0)*_MPDFK, ($this->h-($y0 + ($border_top/2)))*_MPDFK))."\n"; - } - else { - $s .= (sprintf('%.3F %.3F m ', ($x0 + $border_top/2)*_MPDFK, ($this->h-($y0 + ($border_top/2)))*_MPDFK))."\n"; - } - } - else if ($tbd['style']=='solid' || $tbd['style']=='double') { - $s .= (sprintf('%.3F %.3F l ',($x0)*_MPDFK, ($this->h-($y0 + ($border_top/2)))*_MPDFK))."\n"; - } - else { - $s .= (sprintf('%.3F %.3F l ',($x0 + ($border_top/2))*_MPDFK, ($this->h-($y0 + ($border_top/2)))*_MPDFK))."\n"; - } -/*-- BORDER-RADIUS --*/ - } -/*-- END BORDER-RADIUS --*/ - $s .= 'S'."\n"; - $this->_out($s); - - if ($tbd['style']=='double') { - $this->SetLineWidth($tbd['w']/3); - $this->SetDColor($tbcol); - $this->_out($s); - } - if (!$brset && $tbd['style']!='dotted' && $tbd['style']!='dashed') { $this->_out('Q'); } - - // Reset Corners and Dash off - $this->SetLineWidth(0.1); // mPDF 5.6.57 - $this->SetDColor($this->ConvertColor(0)); - $this->SetLineJoin(2); - $this->SetLineCap(2); - $this->SetDash(); - } - } - //if ($this->blk[$blvl]['border_bottom'] && $blockstate != 1) { - // Reinstate line above for dotted line divider when block border crosses a page - if ($this->blk[$blvl]['border_bottom'] && $blockstate != 1 && $divider != 'pagebottom') { - $tbd = $this->blk[$blvl]['border_bottom']; - if (isset($tbd['s']) && $tbd['s']) { - if (!$brset && $tbd['style']!='dotted' && $tbd['style']!='dashed') { - $this->_out('q'); - $this->SetLineWidth(0); - $this->_out(sprintf('%.3F %.3F m ',($x0)*_MPDFK, ($this->h-($y0 + $h))*_MPDFK)); - $this->_out(sprintf('%.3F %.3F l ',($x0 + $border_left)*_MPDFK, ($this->h-($y0 + $h - $border_bottom))*_MPDFK)); - $this->_out(sprintf('%.3F %.3F l ',($x0 + $w - $border_right)*_MPDFK, ($this->h-($y0 + $h - $border_bottom))*_MPDFK)); - $this->_out(sprintf('%.3F %.3F l ',($x0 + $w)*_MPDFK, ($this->h-($y0 + $h))*_MPDFK)); - $this->_out(' h W n '); // Ends path no-op & Sets the clipping path - } - - $this->_setBorderLine($tbd); - if ($tbd['style']=='dotted' || $tbd['style']=='dashed') { $this->_setDashBorder($tbd['style'],$divider,$continuingpage,'B'); } -/*-- BORDER-RADIUS --*/ - else if (($brBL_V && $brBL_H) || ($brBR_V && $brBR_H) || $tbd['style']=='solid' || $tbd['style']=='double' ) { // mPDF 5.6.58 - $this->SetLineJoin(0); - $this->SetLineCap(0); - } - $s = ''; - if ($brBL_H && $brBL_V) { - $s .= ($this->_EllipseArc($x0 + $brBL_H, $y0 + $h - $brBL_V, $brBL_H - $border_bottom/2 , $brBL_V - $border_bottom/2 , 3, 2, true))."\n"; - } - else -/*-- END BORDER-RADIUS --*/ - if ($tbd['style']=='solid' || $tbd['style']=='double') { - $s .= (sprintf('%.3F %.3F m ',($x0)*_MPDFK, ($this->h-($y0 + $h - ($border_bottom/2)))*_MPDFK))."\n"; - } - else { - $s .= (sprintf('%.3F %.3F m ',($x0 + ($border_bottom/2))*_MPDFK, ($this->h-($y0 + $h - ($border_bottom/2)))*_MPDFK))."\n"; - } -/*-- BORDER-RADIUS --*/ - if ($brBR_H && $brBR_V ) { - $s .= (sprintf('%.3F %.3F l ',($x0 + $w - ($border_bottom/2) - $brBR_H )*_MPDFK, ($this->h-($y0 + $h - ($border_bottom/2)))*_MPDFK))."\n"; - $s .= ($this->_EllipseArc($x0 + $w - $brBR_H, $y0 + $h - $brBR_V, $brBR_H - $border_bottom/2 , $brBR_V - $border_bottom/2 , 4, 1))."\n"; - } - else -/*-- END BORDER-RADIUS --*/ - if ($tbd['style']=='solid' || $tbd['style']=='double') { - $s .= (sprintf('%.3F %.3F l ',($x0 + $w)*_MPDFK, ($this->h-($y0 + $h - ($border_bottom/2)))*_MPDFK))."\n"; - } - else { - $s .= (sprintf('%.3F %.3F l ',($x0 + $w - ($border_bottom/2))*_MPDFK, ($this->h-($y0 + $h - ($border_bottom/2)))*_MPDFK))."\n"; - } - $s .= 'S'."\n"; - $this->_out($s); - - if ($tbd['style']=='double') { - $this->SetLineWidth($tbd['w']/3); - $this->SetDColor($tbcol); - $this->_out($s); - } - if (!$brset && $tbd['style']!='dotted' && $tbd['style']!='dashed') { $this->_out('Q'); } - - - // Reset Corners and Dash off - $this->SetLineWidth(0.1); // mPDF 5.6.57 - $this->SetDColor($this->ConvertColor(0)); - $this->SetLineJoin(2); - $this->SetLineCap(2); - $this->SetDash(); - } - } - if ($this->blk[$blvl]['border_left']) { - $tbd = $this->blk[$blvl]['border_left']; - if (isset($tbd['s']) && $tbd['s']) { - if (!$brset && $tbd['style']!='dotted' && $tbd['style']!='dashed') { - $this->_out('q'); - $this->SetLineWidth(0); - $this->_out(sprintf('%.3F %.3F m ',($x0)*_MPDFK, ($this->h-($y0))*_MPDFK)); - $this->_out(sprintf('%.3F %.3F l ',($x0 + $border_left)*_MPDFK, ($this->h-($y0+$border_top))*_MPDFK)); - $this->_out(sprintf('%.3F %.3F l ',($x0 + $border_left)*_MPDFK, ($this->h-($y0 + $h - $border_bottom))*_MPDFK)); - $this->_out(sprintf('%.3F %.3F l ',($x0)*_MPDFK, ($this->h-($y0 + $h))*_MPDFK)); - $this->_out(' h W n '); // Ends path no-op & Sets the clipping path - } - - $this->_setBorderLine($tbd); - if ($tbd['style']=='dotted' || $tbd['style']=='dashed') { $this->_setDashBorder($tbd['style'],$divider,$continuingpage,'L'); } -/*-- BORDER-RADIUS --*/ - else if (($brTL_V && $brTL_H) || ($brBL_V && $brBL_H) || $tbd['style']=='solid' || $tbd['style']=='double' ) { // mPDF 5.6.58 - $this->SetLineJoin(0); - $this->SetLineCap(0); - } - $s = ''; - if ($brTL_V && $brTL_H) { - $s .= ($this->_EllipseArc($x0 + $brTL_H, $y0 + $brTL_V, $brTL_H - $border_left/2 , $brTL_V - $border_left/2, 2, 2, true))."\n"; - } - else -/*-- END BORDER-RADIUS --*/ - if ($tbd['style']=='solid' || $tbd['style']=='double') { - $s .= (sprintf('%.3F %.3F m ',($x0 + ($border_left/2))*_MPDFK, ($this->h-($y0))*_MPDFK))."\n"; - } - else { - $s .= (sprintf('%.3F %.3F m ',($x0 + ($border_left/2))*_MPDFK, ($this->h-($y0 + ($border_left/2)))*_MPDFK))."\n"; - } -/*-- BORDER-RADIUS --*/ - if ($brBL_V && $brBL_H ) { - $s .= (sprintf('%.3F %.3F l ',($x0 + ($border_left/2))*_MPDFK, ($this->h-($y0 + $h - ($border_left/2)- $brBL_V) )*_MPDFK))."\n"; - $s .= ($this->_EllipseArc($x0 + $brBL_H, $y0 + $h - $brBL_V, $brBL_H - $border_left/2 , $brBL_V - $border_left/2, 3, 1))."\n"; - } - else -/*-- END BORDER-RADIUS --*/ - if ($tbd['style']=='solid' || $tbd['style']=='double') { - $s .= (sprintf('%.3F %.3F l ',($x0 + ($border_left/2))*_MPDFK, ($this->h-($y0 + $h) )*_MPDFK))."\n"; - } - else { - $s .= (sprintf('%.3F %.3F l ',($x0 + ($border_left/2))*_MPDFK, ($this->h-($y0 + $h - ($border_left/2)) )*_MPDFK))."\n"; - } - $s .= 'S'."\n"; - $this->_out($s); - - if ($tbd['style']=='double') { - $this->SetLineWidth($tbd['w']/3); - $this->SetDColor($tbcol); - $this->_out($s); - } - if (!$brset && $tbd['style']!='dotted' && $tbd['style']!='dashed') { $this->_out('Q'); } - - // Reset Corners and Dash off - $this->SetLineWidth(0.1); // mPDF 5.6.57 - $this->SetDColor($this->ConvertColor(0)); - $this->SetLineJoin(2); - $this->SetLineCap(2); - $this->SetDash(); - } - } - if ($this->blk[$blvl]['border_right']) { - $tbd = $this->blk[$blvl]['border_right']; - if (isset($tbd['s']) && $tbd['s']) { - if (!$brset && $tbd['style']!='dotted' && $tbd['style']!='dashed') { - $this->_out('q'); - $this->SetLineWidth(0); - $this->_out(sprintf('%.3F %.3F m ',($x0 + $w)*_MPDFK, ($this->h-($y0))*_MPDFK)); - $this->_out(sprintf('%.3F %.3F l ',($x0 + $w - $border_right)*_MPDFK, ($this->h-($y0+$border_top))*_MPDFK)); - $this->_out(sprintf('%.3F %.3F l ',($x0 + $w - $border_right)*_MPDFK, ($this->h-($y0 + $h - $border_bottom))*_MPDFK)); - $this->_out(sprintf('%.3F %.3F l ',($x0 + $w)*_MPDFK, ($this->h-($y0 + $h))*_MPDFK)); - $this->_out(' h W n '); // Ends path no-op & Sets the clipping path - } - - $this->_setBorderLine($tbd); - if ($tbd['style']=='dotted' || $tbd['style']=='dashed') { $this->_setDashBorder($tbd['style'],$divider,$continuingpage,'R'); } -/*-- BORDER-RADIUS --*/ - else if (($brTR_V && $brTR_H) || ($brBR_V && $brBR_H) || $tbd['style']=='solid' || $tbd['style']=='double' ) { // mPDF 5.6.58 - $this->SetLineJoin(0); - $this->SetLineCap(0); - } - $s = ''; - if ($brBR_V && $brBR_H) { - $s .= ($this->_EllipseArc($x0 + $w - $brBR_H, $y0 + $h - $brBR_V, $brBR_H - $border_right/2 , $brBR_V - $border_right/2, 4, 2, true))."\n"; - } - else -/*-- END BORDER-RADIUS --*/ - if ($tbd['style']=='solid' || $tbd['style']=='double') { - $s .= (sprintf('%.3F %.3F m ',($x0 + $w - ($border_right/2))*_MPDFK, ($this->h-($y0 + $h))*_MPDFK))."\n"; - } - else { - $s .= (sprintf('%.3F %.3F m ',($x0 + $w - ($border_right/2))*_MPDFK, ($this->h-($y0 + $h - ($border_right/2)))*_MPDFK))."\n"; - } -/*-- BORDER-RADIUS --*/ - if ($brTR_V && $brTR_H ) { - $s .= (sprintf('%.3F %.3F l ',($x0 + $w - ($border_right/2))*_MPDFK, ($this->h-($y0 + ($border_right/2) + $brTR_V) )*_MPDFK))."\n"; - $s .= ($this->_EllipseArc($x0 + $w - $brTR_H, $y0 + $brTR_V, $brTR_H - $border_right/2 , $brTR_V - $border_right/2, 1, 1))."\n"; - } - else -/*-- END BORDER-RADIUS --*/ - if ($tbd['style']=='solid' || $tbd['style']=='double') { - $s .= (sprintf('%.3F %.3F l ',($x0 + $w - ($border_right/2))*_MPDFK, ($this->h-($y0) )*_MPDFK))."\n"; - } - else { - $s .= (sprintf('%.3F %.3F l ',($x0 + $w - ($border_right/2))*_MPDFK, ($this->h-($y0 + ($border_right/2)) )*_MPDFK))."\n"; - } - $s .= 'S'."\n"; - $this->_out($s); - - if ($tbd['style']=='double') { - $this->SetLineWidth($tbd['w']/3); - $this->SetDColor($tbcol); - $this->_out($s); - } - if (!$brset && $tbd['style']!='dotted' && $tbd['style']!='dashed') { $this->_out('Q'); } - - // Reset Corners and Dash off - $this->SetLineWidth(0.1); // mPDF 5.6.57 - $this->SetDColor($this->ConvertColor(0)); - $this->SetLineJoin(2); - $this->SetLineCap(2); - $this->SetDash(); - } - } - - - $this->SetDash(); - $this->y = $save_y; - - - // BACKGROUNDS are disabled in columns/kbt/headers - messes up the repositioning in printcolumnbuffer - if ($this->ColActive || $this->kwt || $this->keep_block_together) { return ; } - - - $bgx0 = $x0; - $bgx1 = $x1; - $bgy0 = $y0; - $bgy1 = $y1; - - // Defined br values represent the radius of the outer curve - need to take border-width/2 from each radius for drawing the borders - if (isset($this->blk[$blvl]['background_clip']) && $this->blk[$blvl]['background_clip'] == 'padding-box') { - $brbgTL_H = max(0, $brTL_H - $this->blk[$blvl]['border_left']['w']); - $brbgTL_V = max(0, $brTL_V - $this->blk[$blvl]['border_top']['w']); - $brbgTR_H = max(0, $brTR_H - $this->blk[$blvl]['border_right']['w']); - $brbgTR_V = max(0, $brTR_V - $this->blk[$blvl]['border_top']['w']); - $brbgBL_H = max(0, $brBL_H - $this->blk[$blvl]['border_left']['w']); - $brbgBL_V = max(0, $brBL_V - $this->blk[$blvl]['border_bottom']['w']); - $brbgBR_H = max(0, $brBR_H - $this->blk[$blvl]['border_right']['w']); - $brbgBR_V = max(0, $brBR_V - $this->blk[$blvl]['border_bottom']['w']); - $bgx0 += $this->blk[$blvl]['border_left']['w']; - $bgx1 -= $this->blk[$blvl]['border_right']['w']; - if ($this->blk[$blvl]['border_top'] && $divider != 'pagetop' && !$continuingpage) { - $bgy0 += $this->blk[$blvl]['border_top']['w']; - } - if ($this->blk[$blvl]['border_bottom'] && $blockstate != 1 && $divider != 'pagebottom') { - $bgy1 -= $this->blk[$blvl]['border_bottom']['w']; - } - } - // mPDF 5.6.09 - else if (isset($this->blk[$blvl]['background_clip']) && $this->blk[$blvl]['background_clip'] == 'content-box') { - $brbgTL_H = max(0, $brTL_H - $this->blk[$blvl]['border_left']['w'] - $this->blk[$blvl]['padding_left']); - $brbgTL_V = max(0, $brTL_V - $this->blk[$blvl]['border_top']['w'] - $this->blk[$blvl]['padding_top']); - $brbgTR_H = max(0, $brTR_H - $this->blk[$blvl]['border_right']['w'] - $this->blk[$blvl]['padding_right']); - $brbgTR_V = max(0, $brTR_V - $this->blk[$blvl]['border_top']['w'] - $this->blk[$blvl]['padding_top']); - $brbgBL_H = max(0, $brBL_H - $this->blk[$blvl]['border_left']['w'] - $this->blk[$blvl]['padding_left']); - $brbgBL_V = max(0, $brBL_V - $this->blk[$blvl]['border_bottom']['w'] - $this->blk[$blvl]['padding_bottom']); - $brbgBR_H = max(0, $brBR_H - $this->blk[$blvl]['border_right']['w'] - $this->blk[$blvl]['padding_right']); - $brbgBR_V = max(0, $brBR_V - $this->blk[$blvl]['border_bottom']['w'] - $this->blk[$blvl]['padding_bottom']); - $bgx0 += $this->blk[$blvl]['border_left']['w'] + $this->blk[$blvl]['padding_left']; - $bgx1 -= $this->blk[$blvl]['border_right']['w'] + $this->blk[$blvl]['padding_right']; - if (($this->blk[$blvl]['border_top']['w'] || $this->blk[$blvl]['padding_top']) && $divider != 'pagetop' && !$continuingpage) { - $bgy0 += $this->blk[$blvl]['border_top']['w'] + $this->blk[$blvl]['padding_top']; - } - if (($this->blk[$blvl]['border_bottom']['w'] || $this->blk[$blvl]['padding_bottom']) && $blockstate != 1 && $divider != 'pagebottom') { - $bgy1 -= $this->blk[$blvl]['border_bottom']['w'] + $this->blk[$blvl]['padding_bottom']; - } - } - else { - $brbgTL_H = $brTL_H; - $brbgTL_V = $brTL_V; - $brbgTR_H = $brTR_H; - $brbgTR_V = $brTR_V; - $brbgBL_H = $brBL_H; - $brbgBL_V = $brBL_V; - $brbgBR_H = $brBR_H; - $brbgBR_V = $brBR_V; - } - - // Set clipping path - $s = ' q 0 w '; // Line width=0 - $s .= sprintf('%.3F %.3F m ', ($bgx0+$brbgTL_H )*_MPDFK, ($this->h-$bgy0)*_MPDFK); // start point TL before the arc -/*-- BORDER-RADIUS --*/ - if ($brbgTL_H || $brbgTL_V) { - $s .= $this->_EllipseArc($bgx0+$brbgTL_H, $bgy0+$brbgTL_V, $brbgTL_H , $brbgTL_V , 2); // segment 2 TL - } -/*-- END BORDER-RADIUS --*/ - $s .= sprintf('%.3F %.3F l ', ($bgx0)*_MPDFK, ($this->h-($bgy1-$brbgBL_V ))*_MPDFK); // line to BL -/*-- BORDER-RADIUS --*/ - if ($brbgBL_H || $brbgBL_V) { - $s .= $this->_EllipseArc($bgx0+$brbgBL_H, $bgy1-$brbgBL_V, $brbgBL_H , $brbgBL_V , 3); // segment 3 BL - } -/*-- END BORDER-RADIUS --*/ - $s .= sprintf('%.3F %.3F l ', ($bgx1-$brbgBR_H )*_MPDFK, ($this->h-($bgy1))*_MPDFK); // line to BR -/*-- BORDER-RADIUS --*/ - if ($brbgBR_H || $brbgBR_V) { - $s .= $this->_EllipseArc($bgx1-$brbgBR_H, $bgy1-$brbgBR_V, $brbgBR_H , $brbgBR_V , 4); // segment 4 BR - } -/*-- END BORDER-RADIUS --*/ - $s .= sprintf('%.3F %.3F l ', ($bgx1)*_MPDFK, ($this->h-($bgy0+$brbgTR_V))*_MPDFK); // line to TR -/*-- BORDER-RADIUS --*/ - if ($brbgTR_H || $brbgTR_V) { - $s .= $this->_EllipseArc($bgx1-$brbgTR_H, $bgy0+$brbgTR_V, $brbgTR_H , $brbgTR_V , 1); // segment 1 TR - } -/*-- END BORDER-RADIUS --*/ - $s .= sprintf('%.3F %.3F l ', ($bgx0+$brbgTL_H )*_MPDFK, ($this->h-$bgy0)*_MPDFK); // line to TL - - - // Box Shadow - $shadow = ''; - if (isset($this->blk[$blvl]['box_shadow']) && $this->blk[$blvl]['box_shadow'] && $h > 0) { - foreach($this->blk[$blvl]['box_shadow'] AS $sh) { - // Colors - if ($sh['col']{0}==1) { - $colspace = 'Gray'; - if ($sh['col']{2}==1) { $col1 = '1'.$sh['col'][1].'1'.$sh['col'][3]; } - else { $col1 = '1'.$sh['col'][1].'1'.chr(100); } - $col2 = '1'.$sh['col'][1].'1'.chr(0); - } - else if ($sh['col']{0}==4) { // CMYK - $colspace = 'CMYK'; - $col1 = '6'.$sh['col'][1].$sh['col'][2].$sh['col'][3].$sh['col'][4].chr(100); - $col2 = '6'.$sh['col'][1].$sh['col'][2].$sh['col'][3].$sh['col'][4].chr(0); - } - else if ($sh['col']{0}==5) { // RGBa - $colspace = 'RGB'; - $col1 = '5'.$sh['col'][1].$sh['col'][2].$sh['col'][3].$sh['col'][4]; - $col2 = '5'.$sh['col'][1].$sh['col'][2].$sh['col'][3].chr(0); - } - else if ($sh['col']{0}==6) { // CMYKa - $colspace = 'CMYK'; - $col1 = '6'.$sh['col'][1].$sh['col'][2].$sh['col'][3].$sh['col'][4].$sh['col'][5]; - $col2 = '6'.$sh['col'][1].$sh['col'][2].$sh['col'][3].$sh['col'][4].chr(0); - } - else { - $colspace = 'RGB'; - $col1 = '5'.$sh['col'][1].$sh['col'][2].$sh['col'][3].chr(100); - $col2 = '5'.$sh['col'][1].$sh['col'][2].$sh['col'][3].chr(0); - } - - // Use clipping path as set above (and rectangle around page) to clip area outside box - $shadow .= $s; // Use the clipping path with W* - $shadow .= sprintf('0 %.3F m %.3F %.3F l ', $this->h*_MPDFK, $this->w*_MPDFK, $this->h*_MPDFK); - $shadow .= sprintf('%.3F 0 l 0 0 l 0 %.3F l ', $this->w*_MPDFK, $this->h*_MPDFK); - $shadow .= 'W n'."\n"; - - $sh['blur'] = abs($sh['blur']); // cannot have negative blur value - // Ensure spread/blur do not make effective shadow width/height < 0 - // Could do more complex things but this just adjusts spread value - if (-$sh['spread'] + $sh['blur']/2 > min($w/2, $h/2)) { - $sh['spread'] = $sh['blur']/2 - min($w/2, $h/2) + 0.01; - } - // Shadow Offset - if ($sh['x'] || $sh['y']) $shadow .= sprintf(' q 1 0 0 1 %.4F %.4F cm', $sh['x']*_MPDFK, -$sh['y']*_MPDFK)."\n"; - - // Set path for INNER shadow - $shadow .= ' q 0 w '; - $shadow .= $this->SetFColor($col1, true)."\n"; - if ($col1{0}==5 && ord($col1{4})<100) { // RGBa - $shadow .= $this->SetAlpha(ord($col1{4})/100, 'Normal', true, 'F')."\n"; - } - else if ($col1{0}==6 && ord($col1{5})<100) { // CMYKa - $shadow .= $this->SetAlpha(ord($col1{5})/100, 'Normal', true, 'F')."\n"; - } - else if ($col1{0}==1 && $col1{2}==1 && ord($col1{3})<100) { // Gray - $shadow .= $this->SetAlpha(ord($col1{3})/100, 'Normal', true, 'F')."\n"; - } - - // Blur edges - $mag = 0.551784; // Bezier Control magic number for 4-part spline for circle/ellipse - $mag2 = 0.551784; // Bezier Control magic number to fill in edge of blurred rectangle - $d1 = $sh['spread']+$sh['blur']/2; - $d2 = $sh['spread']-$sh['blur']/2; - $bl = $sh['blur']; - $x00 = $x0 - $d1; - $y00 = $y0 - $d1; - $w00 = $w + $d1*2; - $h00 = $h + $d1*2; - - // If any border-radius is greater width-negative spread(inner edge), ignore radii for shadow or screws up - $flatten = false; - if (max($brbgTR_H, $brbgTL_H, $brbgBR_H, $brbgBL_H) >= $w+$d2) { $flatten = true; } - if (max($brbgTR_V, $brbgTL_V, $brbgBR_V, $brbgBL_V) >= $h+$d2) { $flatten = true; } - - - // TOP RIGHT corner - $p1x = $x00+$w00-$d1-$brbgTR_H; $p1c2x = $p1x +($d2+$brbgTR_H)*$mag; - $p1y = $y00+$bl; - $p2x = $x00+$w00-$d1-$brbgTR_H; $p2c2x = $p2x + ($d1+$brbgTR_H)*$mag; - $p2y = $y00; $p2c1y = $p2y + $bl/2; - $p3x = $x00+$w00; $p3c2x = $p3x - $bl/2; - $p3y = $y00+$d1+$brbgTR_V; $p3c1y = $p3y - ($d1+$brbgTR_V)*$mag; - $p4x = $x00+$w00-$bl; - $p4y = $y00+$d1+$brbgTR_V; $p4c2y = $p4y - ($d2+$brbgTR_V)*$mag; - if (-$d2 > min($brbgTR_H, $brbgTR_V) || $flatten) { - $p1x = $x00+$w00-$bl; $p1c2x = $p1x; - $p2x = $x00+$w00-$bl; $p2c2x = $p2x + $bl*$mag2; - $p3y = $y00+$bl; $p3c1y = $p3y - $bl*$mag2; - $p4y = $y00+$bl; $p4c2y = $p4y ; - } - - $shadow .= sprintf('%.3F %.3F m ', ($p1x )*_MPDFK, ($this->h-($p1y ))*_MPDFK); - $shadow .= sprintf('%.3F %.3F %.3F %.3F %.3F %.3F c ', ($p1c2x)*_MPDFK, ($this->h-($p1y))*_MPDFK, ($p4x)*_MPDFK, ($this->h-($p4c2y))*_MPDFK, ($p4x)*_MPDFK, ($this->h-($p4y))*_MPDFK); - $patch_array[0]['f']=0; - $patch_array[0]['points']=array($p1x,$p1y, $p1x,$p1y, - $p2x,$p2c1y, $p2x,$p2y, $p2c2x,$p2y, - $p3x,$p3c1y, $p3x,$p3y, $p3c2x,$p3y, - $p4x,$p4y, $p4x,$p4y, $p4x,$p4c2y, - $p1c2x,$p1y); - $patch_array[0]['colors'] = array($col1,$col2,$col2,$col1); - - - // RIGHT - $p1x = $x00+$w00; // control point only matches p3 preceding - $p1y = $y00+$d1+$brbgTR_V; - $p2x = $x00+$w00-$bl; // control point only matches p4 preceding - $p2y = $y00+$d1+$brbgTR_V; - $p3x = $x00+$w00-$bl; - $p3y = $y00+$h00-$d1-$brbgBR_V; - $p4x = $x00+$w00; $p4c1x = $p4x-$bl/2; - $p4y = $y00+$h00-$d1-$brbgBR_V; - if (-$d2 > min($brbgTR_H, $brbgTR_V) || $flatten) { - $p1y = $y00+$bl; - $p2y = $y00+$bl; - } - if (-$d2 > min($brbgBR_H, $brbgBR_V) || $flatten) { - $p3y = $y00+$h00-$bl; - $p4y = $y00+$h00-$bl; - } - - $shadow .= sprintf('%.3F %.3F l ', ($p3x )*_MPDFK, ($this->h-($p3y ))*_MPDFK); - $patch_array[1]['f']=2; - $patch_array[1]['points']=array($p2x,$p2y, - $p3x,$p3y, $p3x,$p3y, $p3x,$p3y, - $p4c1x,$p4y, $p4x,$p4y, $p4x,$p4y, - $p1x,$p1y); - $patch_array[1]['colors'] = array($col1,$col2); - - - // BOTTOM RIGHT corner - $p1x = $x00+$w00-$bl; // control points only matches p3 preceding - $p1y = $y00+$h00-$d1-$brbgBR_V; $p1c2y = $p1y + ($d2+$brbgBR_V)*$mag; - $p2x = $x00+$w00; // control point only matches p4 preceding - $p2y = $y00+$h00-$d1-$brbgBR_V; $p2c2y = $p2y + ($d1+$brbgBR_V)*$mag; - $p3x = $x00+$w00-$d1-$brbgBR_H; $p3c1x = $p3x + ($d1+$brbgBR_H)*$mag; - $p3y = $y00+$h00; $p3c2y = $p3y - $bl/2; - $p4x = $x00+$w00-$d1-$brbgBR_H; $p4c2x = $p4x + ($d2+$brbgBR_H)*$mag; - $p4y = $y00+$h00-$bl; - - if (-$d2 > min($brbgBR_H, $brbgBR_V) || $flatten) { - $p1y = $y00+$h00-$bl; $p1c2y = $p1y; - $p2y = $y00+$h00-$bl; $p2c2y = $p2y + $bl*$mag2; - $p3x = $x00+$w00-$bl; $p3c1x = $p3x + $bl*$mag2; - $p4x = $x00+$w00-$bl; $p4c2x = $p4x; - } - - $shadow .= sprintf('%.3F %.3F %.3F %.3F %.3F %.3F c ', ($p1x)*_MPDFK, ($this->h-($p1c2y))*_MPDFK, ($p4c2x)*_MPDFK, ($this->h-($p4y))*_MPDFK, ($p4x)*_MPDFK, ($this->h-($p4y))*_MPDFK); - $patch_array[2]['f']=2; - $patch_array[2]['points']=array($p2x,$p2c2y, - $p3c1x,$p3y, $p3x,$p3y, $p3x,$p3c2y, - $p4x,$p4y, $p4x,$p4y, $p4c2x,$p4y, - $p1x,$p1c2y); - $patch_array[2]['colors'] = array($col2,$col1); - - - - // BOTTOM - $p1x = $x00+$w00-$d1-$brbgBR_H; // control point only matches p3 preceding - $p1y = $y00+$h00; - $p2x = $x00+$w00-$d1-$brbgBR_H; // control point only matches p4 preceding - $p2y = $y00+$h00-$bl; - $p3x = $x00+$d1+$brbgBL_H; - $p3y = $y00+$h00-$bl; - $p4x = $x00+$d1+$brbgBL_H; - $p4y = $y00+$h00; $p4c1y = $p4y - $bl/2; - - if (-$d2 > min($brbgBR_H, $brbgBR_V) || $flatten) { - $p1x = $x00+$w00-$bl; - $p2x = $x00+$w00-$bl; - } - if (-$d2 > min($brbgBL_H, $brbgBL_V) || $flatten) { - $p3x = $x00+$bl; - $p4x = $x00+$bl; - } - - $shadow .= sprintf('%.3F %.3F l ', ($p3x )*_MPDFK, ($this->h-($p3y ))*_MPDFK); - $patch_array[3]['f']=2; - $patch_array[3]['points']=array($p2x,$p2y, - $p3x,$p3y, $p3x,$p3y, $p3x,$p3y, - $p4x,$p4c1y, $p4x,$p4y, $p4x,$p4y, - $p1x,$p1y); - $patch_array[3]['colors'] = array($col1,$col2); - - // BOTTOM LEFT corner - $p1x = $x00+$d1+$brbgBL_H; $p1c2x = $p1x - ($d2+$brbgBL_H)*$mag; // control points only matches p3 preceding - $p1y = $y00+$h00-$bl; - $p2x = $x00+$d1+$brbgBL_H; $p2c2x = $p2x - ($d1+$brbgBL_H)*$mag; // control point only matches p4 preceding - $p2y = $y00+$h00; - $p3x = $x00; $p3c2x = $p3x + $bl/2; - $p3y = $y00+$h00-$d1-$brbgBL_V; $p3c1y = $p3y + ($d1+$brbgBL_V)*$mag; - $p4x = $x00+$bl; - $p4y = $y00+$h00-$d1-$brbgBL_V; $p4c2y = $p4y + ($d2+$brbgBL_V)*$mag; - if (-$d2 > min($brbgBL_H, $brbgBL_V) || $flatten) { - $p1x = $x00+$bl; $p1c2x = $p1x; - $p2x = $x00+$bl; $p2c2x = $p2x - $bl*$mag2; - $p3y = $y00+$h00-$bl; $p3c1y = $p3y + $bl*$mag2; - $p4y = $y00+$h00-$bl; $p4c2y = $p4y; - } - - $shadow .= sprintf('%.3F %.3F %.3F %.3F %.3F %.3F c ', ($p1c2x)*_MPDFK, ($this->h-($p1y))*_MPDFK, ($p4x)*_MPDFK, ($this->h-($p4c2y))*_MPDFK, ($p4x)*_MPDFK, ($this->h-($p4y))*_MPDFK); - $patch_array[4]['f']=2; - $patch_array[4]['points']=array($p2c2x,$p2y, - $p3x,$p3c1y, $p3x,$p3y, $p3c2x,$p3y, - $p4x,$p4y, $p4x,$p4y, $p4x,$p4c2y, - $p1c2x,$p1y); - $patch_array[4]['colors'] = array($col2,$col1); - - - // LEFT - joins on the right (C3-C4 of previous): f = 2 - $p1x = $x00; // control point only matches p3 preceding - $p1y = $y00+$h00-$d1-$brbgBL_V; - $p2x = $x00+$bl; // control point only matches p4 preceding - $p2y = $y00+$h00-$d1-$brbgBL_V; - $p3x = $x00+$bl; - $p3y = $y00+$d1+$brbgTL_V; - $p4x = $x00; $p4c1x = $p4x + $bl/2; - $p4y = $y00+$d1+$brbgTL_V; - if (-$d2 > min($brbgBL_H, $brbgBL_V) || $flatten) { - $p1y = $y00+$h00-$bl; - $p2y = $y00+$h00-$bl; - } - if (-$d2 > min($brbgTL_H, $brbgTL_V) || $flatten) { - $p3y = $y00+$bl; - $p4y = $y00+$bl; - } - - $shadow .= sprintf('%.3F %.3F l ', ($p3x )*_MPDFK, ($this->h-($p3y ))*_MPDFK); - $patch_array[5]['f']=2; - $patch_array[5]['points']=array($p2x,$p2y, - $p3x,$p3y, $p3x,$p3y, $p3x,$p3y, - $p4c1x,$p4y, $p4x,$p4y, $p4x,$p4y, - $p1x,$p1y); - $patch_array[5]['colors'] = array($col1,$col2); - - // TOP LEFT corner - $p1x = $x00+$bl; // control points only matches p3 preceding - $p1y = $y00+$d1+$brbgTL_V; $p1c2y = $p1y - ($d2+$brbgTL_V)*$mag; - $p2x = $x00; // control point only matches p4 preceding - $p2y = $y00+$d1+$brbgTL_V; $p2c2y = $p2y - ($d1+$brbgTL_V)*$mag; - $p3x = $x00+$d1+$brbgTL_H; $p3c1x = $p3x - ($d1+$brbgTL_H)*$mag; - $p3y = $y00; $p3c2y = $p3y + $bl/2; - $p4x = $x00+$d1+$brbgTL_H; $p4c2x = $p4x - ($d2+$brbgTL_H)*$mag; - $p4y = $y00+$bl; - - if (-$d2 > min($brbgTL_H, $brbgTL_V) || $flatten) { - $p1y = $y00+$bl; $p1c2y = $p1y; - $p2y = $y00+$bl; $p2c2y = $p2y - $bl*$mag2; - $p3x = $x00+$bl; $p3c1x = $p3x - $bl*$mag2; - $p4x = $x00+$bl; $p4c2x = $p4x ; - } - - $shadow .= sprintf('%.3F %.3F %.3F %.3F %.3F %.3F c ', ($p1x)*_MPDFK, ($this->h-($p1c2y))*_MPDFK, ($p4c2x)*_MPDFK, ($this->h-($p4y))*_MPDFK, ($p4x)*_MPDFK, ($this->h-($p4y))*_MPDFK); - $patch_array[6]['f']=2; - $patch_array[6]['points']=array($p2x,$p2c2y, - $p3c1x,$p3y, $p3x,$p3y, $p3x,$p3c2y, - $p4x,$p4y, $p4x,$p4y, $p4c2x,$p4y, - $p1x,$p1c2y); - $patch_array[6]['colors'] = array($col2,$col1); - - - // TOP - joins on the right (C3-C4 of previous): f = 2 - $p1x = $x00+$d1+$brbgTL_H; // control point only matches p3 preceding - $p1y = $y00; - $p2x = $x00+$d1+$brbgTL_H; // control point only matches p4 preceding - $p2y = $y00+$bl; - $p3x = $x00+$w00-$d1-$brbgTR_H; - $p3y = $y00+$bl; - $p4x = $x00+$w00-$d1-$brbgTR_H; - $p4y = $y00; $p4c1y = $p4y + $bl/2; - if (-$d2 > min($brbgTL_H, $brbgTL_V) || $flatten) { - $p1x = $x00+$bl; - $p2x = $x00+$bl; - } - if (-$d2 > min($brbgTR_H, $brbgTR_V) || $flatten) { - $p3x = $x00+$w00-$bl; - $p4x = $x00+$w00-$bl; - } - - $shadow .= sprintf('%.3F %.3F l ', ($p3x )*_MPDFK, ($this->h-($p3y ))*_MPDFK); - $patch_array[7]['f']=2; - $patch_array[7]['points']=array($p2x,$p2y, - $p3x,$p3y, $p3x,$p3y, $p3x,$p3y, - $p4x,$p4c1y, $p4x,$p4y, $p4x,$p4y, - $p1x,$p1y); - $patch_array[7]['colors'] = array($col1,$col2); - - $shadow .= ' h f Q '."\n"; // Close path and Fill the inner solid shadow - - if ($bl) $shadow .= $this->grad->CoonsPatchMesh($x00,$y00,$w00,$h00,$patch_array,$x00,$x00+$w00,$y00,$y00+$h00, $colspace, true); - - if ($sh['x'] || $sh['y']) $shadow .= ' Q'."\n"; // Shadow Offset - $shadow .= ' Q'."\n"; // Ends path no-op & Sets the clipping path - - } - } - - $s .= ' W n '; // Ends path no-op & Sets the clipping path - - if ($this->blk[$blvl]['bgcolor']) { - $this->pageBackgrounds[$blvl][] = array('x'=>$x0, 'y'=>$y0, 'w'=>$w, 'h'=>$h, 'col'=>$this->blk[$blvl]['bgcolorarray'], 'clippath'=>$s, 'visibility'=>$this->visibility, 'shadow'=>$shadow, 'z-index'=>$this->current_layer); // mPDF 5.6.01 - } - else if ($shadow) { - $this->pageBackgrounds[$blvl][] = array('shadowonly'=>true, 'col'=>'', 'clippath'=>'', 'visibility'=>$this->visibility, 'shadow'=>$shadow, 'z-index'=>$this->current_layer); // mPDF 5.6.01 - } - -/*-- BACKGROUNDS --*/ - if (isset($this->blk[$blvl]['gradient'])) { - $g = $this->grad->parseBackgroundGradient($this->blk[$blvl]['gradient']); - if ($g) { - $gx = $x0; - $gy = $y0; - $this->pageBackgrounds[$blvl][] = array('gradient'=>true, 'x'=>$gx, 'y'=>$gy, 'w'=>$w, 'h'=>$h, 'gradtype'=>$g['type'], 'stops'=>$g['stops'], 'colorspace'=>$g['colorspace'], 'coords'=>$g['coords'], 'extend'=>$g['extend'], 'clippath'=>$s, 'visibility'=>$this->visibility, 'z-index'=>$this->current_layer); // mPDF 5.6.01 - } - } - if (isset($this->blk[$blvl]['background-image'])) { - if ($this->blk[$blvl]['background-image']['gradient'] && preg_match('/(-moz-)*(repeating-)*(linear|radial)-gradient/', $this->blk[$blvl]['background-image']['gradient'] )) { - $g = $this->grad->parseMozGradient( $this->blk[$blvl]['background-image']['gradient'] ); - if ($g) { - $gx = $x0; - $gy = $y0; - // mPDF 5.6.11 - // origin specifies the background-positioning-area (bpa) - if ($this->blk[$blvl]['background-image']['origin'] == 'padding-box') { - $gx += $this->blk[$blvl]['border_left']['w']; - $w -= ($this->blk[$blvl]['border_left']['w'] + $this->blk[$blvl]['border_right']['w']); - if ($this->blk[$blvl]['border_top'] && $divider != 'pagetop' && !$continuingpage) { - $gy += $this->blk[$blvl]['border_top']['w']; - } - if ($this->blk[$blvl]['border_bottom'] && $blockstate != 1 && $divider != 'pagebottom') { - $gy1 = $y1 - $this->blk[$blvl]['border_bottom']['w']; - } - else { $gy1 = $y1; } - $h = $gy1 - $gy; - } - else if ($this->blk[$blvl]['background-image']['origin'] == 'content-box') { - $gx += $this->blk[$blvl]['border_left']['w'] + $this->blk[$blvl]['padding_left']; - $w -= ($this->blk[$blvl]['border_left']['w'] + $this->blk[$blvl]['padding_left'] + $this->blk[$blvl]['border_right']['w'] + $this->blk[$blvl]['padding_right']); - if ($this->blk[$blvl]['border_top'] && $divider != 'pagetop' && !$continuingpage) { - $gy += $this->blk[$blvl]['border_top']['w'] + $this->blk[$blvl]['padding_top']; - } - if ($this->blk[$blvl]['border_bottom'] && $blockstate != 1 && $divider != 'pagebottom') { - $gy1 = $y1 - ($this->blk[$blvl]['border_bottom']['w'] + $this->blk[$blvl]['padding_bottom']); - } - else { $gy1 = $y1 - $this->blk[$blvl]['padding_bottom']; } - $h = $gy1 - $gy; - } - - if (isset($this->blk[$blvl]['background-image']['size']['w']) && $this->blk[$blvl]['background-image']['size']['w']) { - $size = $this->blk[$blvl]['background-image']['size']; - if ($size['w']!='contain' && $size['w']!='cover') { - if (stristr($size['w'] ,'%')) { - $size['w'] += 0; - $size['w'] /= 100; - $w *= $size['w']; - } - else if ($size['w']!='auto') { - $w = $size['w']; - } - if (stristr($size['h'] ,'%')) { - $size['h'] += 0; - $size['h'] /= 100; - $h *= $size['h']; - } - else if ($size['h']!='auto') { - $h = $size['h']; - } - } - } - $this->pageBackgrounds[$blvl][] = array('gradient'=>true, 'x'=>$gx, 'y'=>$gy, 'w'=>$w, 'h'=>$h, 'gradtype'=>$g['type'], 'stops'=>$g['stops'], 'colorspace'=>$g['colorspace'], 'coords'=>$g['coords'], 'extend'=>$g['extend'], 'clippath'=>$s, 'visibility'=>$this->visibility, 'z-index'=>$this->current_layer); // mPDF 5.6.01 - } - } - else { - $image_id = $this->blk[$blvl]['background-image']['image_id']; - $orig_w = $this->blk[$blvl]['background-image']['orig_w']; - $orig_h = $this->blk[$blvl]['background-image']['orig_h']; - $x_pos = $this->blk[$blvl]['background-image']['x_pos']; - $y_pos = $this->blk[$blvl]['background-image']['y_pos']; - $x_repeat = $this->blk[$blvl]['background-image']['x_repeat']; - $y_repeat = $this->blk[$blvl]['background-image']['y_repeat']; - $resize = $this->blk[$blvl]['background-image']['resize']; - $opacity = $this->blk[$blvl]['background-image']['opacity']; - $itype = $this->blk[$blvl]['background-image']['itype']; - $size = $this->blk[$blvl]['background-image']['size']; // mPDF 5.6.10 - // mPDF 5.6.10 - // origin specifies the background-positioning-area (bpa) - $bpa = array('x'=>$x0, 'y'=>$y0, 'w'=>$w, 'h'=>$h); - if ($this->blk[$blvl]['background-image']['origin'] == 'padding-box') { - $bpa['x'] = $x0 + $this->blk[$blvl]['border_left']['w']; - $bpa['w'] = $w - ($this->blk[$blvl]['border_left']['w'] + $this->blk[$blvl]['border_right']['w']); - if ($this->blk[$blvl]['border_top'] && $divider != 'pagetop' && !$continuingpage) { - $bpa['y'] = $y0 + $this->blk[$blvl]['border_top']['w']; - } - else { $bpa['y'] = $y0; } - if ($this->blk[$blvl]['border_bottom'] && $blockstate != 1 && $divider != 'pagebottom') { - $bpay = $y1 - $this->blk[$blvl]['border_bottom']['w']; - } - else { $bpay = $y1; } - $bpa['h'] = $bpay - $bpa['y']; - } - // mPDF 5.6.09 - else if ($this->blk[$blvl]['background-image']['origin'] == 'content-box') { - $bpa['x'] = $x0 + $this->blk[$blvl]['border_left']['w'] + $this->blk[$blvl]['padding_left']; - $bpa['w'] = $w - ($this->blk[$blvl]['border_left']['w'] + $this->blk[$blvl]['padding_left'] + $this->blk[$blvl]['border_right']['w'] + $this->blk[$blvl]['padding_right']); - if ($this->blk[$blvl]['border_top'] && $divider != 'pagetop' && !$continuingpage) { - $bpa['y'] = $y0 + $this->blk[$blvl]['border_top']['w'] + $this->blk[$blvl]['padding_top']; - } - else { $bpa['y'] = $y0 + $this->blk[$blvl]['padding_top']; } - if ($this->blk[$blvl]['border_bottom'] && $blockstate != 1 && $divider != 'pagebottom') { - $bpay = $y1 - ($this->blk[$blvl]['border_bottom']['w'] + $this->blk[$blvl]['padding_bottom']); - } - else { $bpay = $y1 - $this->blk[$blvl]['padding_bottom']; } - $bpa['h'] = $bpay - $bpa['y']; - } - $this->pageBackgrounds[$blvl][] = array('x'=>$x0, 'y'=>$y0, 'w'=>$w, 'h'=>$h, 'image_id'=>$image_id, 'orig_w'=>$orig_w, 'orig_h'=>$orig_h, 'x_pos'=>$x_pos, 'y_pos'=>$y_pos, 'x_repeat'=>$x_repeat, 'y_repeat'=>$y_repeat, 'clippath'=>$s, 'resize'=>$resize, 'opacity'=>$opacity, 'itype'=>$itype, 'visibility'=>$this->visibility, 'z-index'=>$this->current_layer, 'size'=>$size, 'bpa'=>$bpa ); // mPDF 5.6.01 5.6.10 - } - } -/*-- END BACKGROUNDS --*/ - - // Float DIV - $this->blk[$blvl]['bb_painted'][$this->page] = true; - -} - -/*-- BORDER-RADIUS --*/ - -function _EllipseArc($x0, $y0, $rx, $ry, $seg = 1, $part=false, $start=false) { // Anticlockwise segment 1-4 TR-TL-BL-BR (part=1 or 2) - $s = ''; - if ($rx<0) { $rx = 0; } - if ($ry<0) { $ry = 0; } - $rx *= _MPDFK; - $ry *= _MPDFK; - $astart = 0; - if ($seg == 1) { // Top Right - $afinish = 90; - $nSeg = 4; - } - else if ($seg == 2) { // Top Left - $afinish = 180; - $nSeg = 8; - } - else if ($seg == 3) { // Bottom Left - $afinish = 270; - $nSeg = 12; - } - else { // Bottom Right - $afinish = 360; - $nSeg = 16; - } - $astart = deg2rad((float) $astart); - $afinish = deg2rad((float) $afinish); - $totalAngle = $afinish - $astart; - $dt = $totalAngle / $nSeg; // segment angle - $dtm = $dt/3; - $x0 *= _MPDFK; - $y0 = ($this->h - $y0) * _MPDFK; - $t1 = $astart; - $a0 = $x0 + ($rx * cos($t1)); - $b0 = $y0 + ($ry * sin($t1)); - $c0 = -$rx * sin($t1); - $d0 = $ry * cos($t1); - $op = false; - for ($i = 1; $i <= $nSeg; $i++) { - // Draw this bit of the total curve - $t1 = ($i * $dt) + $astart; - $a1 = $x0 + ($rx * cos($t1)); - $b1 = $y0 + ($ry * sin($t1)); - $c1 = -$rx * sin($t1); - $d1 = $ry * cos($t1); - if ($i>($nSeg-4) && (!$part || ($part == 1 && $i<=$nSeg-2) || ($part == 2 && $i>$nSeg-2))) { - if ($start && !$op) { - $s .= sprintf('%.3F %.3F m ', $a0, $b0); - } - $s .= sprintf('%.3F %.3F %.3F %.3F %.3F %.3F c ', ($a0 + ($c0 * $dtm)), ($b0 + ($d0 * $dtm)), ($a1 - ($c1 * $dtm)) , ($b1 - ($d1 * $dtm)), $a1 , $b1 ); - $op = true; - } - $a0 = $a1; - $b0 = $b1; - $c0 = $c1; - $d0 = $d1; - } - return $s; -} -/*-- END BORDER-RADIUS --*/ - - - -function PaintDivLnBorder($state=0,$blvl=0,$h) { - // $state = 0 normal; 1 top; 2 bottom; 3 top and bottom - $this->ColDetails[$this->CurrCol]['bottom_margin'] = $this->y + $h; - - $save_y = $this->y; - - $w = $this->blk[$blvl]['width']; - $x0 = $this->x; // left - $y0 = $this->y; // top - $x1 = $this->x + $w; // bottom - $y1 = $this->y + $h; // bottom - - if ($this->blk[$blvl]['border_top'] && ($state==1 || $state==3)) { - $tbd = $this->blk[$blvl]['border_top']; - if (isset($tbd['s']) && $tbd['s']) { - $this->_setBorderLine($tbd); - $this->y = $y0 + ($tbd['w']/2); - // mPDF 5.6.56 - if ($tbd['style']=='dotted' || $tbd['style']=='dashed') { - $this->_setDashBorder($tbd['style'],'',$continuingpage,'T'); - $this->Line($x0 + ($tbd['w']/2) , $this->y , $x0 + $w - ($tbd['w']/2), $this->y); - } - else { - $this->SetLineJoin(0); - $this->SetLineCap(0); - $this->Line($x0, $this->y , $x0 + $w, $this->y); - } - $this->y += $tbd['w']; - // Reset Corners and Dash off - $this->SetLineJoin(2); - $this->SetLineCap(2); - $this->SetDash(); - } - } - if ($this->blk[$blvl]['border_left']) { - $tbd = $this->blk[$blvl]['border_left']; - if (isset($tbd['s']) && $tbd['s']) { - $this->_setBorderLine($tbd); - // mPDF 5.6.56 - if ($tbd['style']=='dotted' || $tbd['style']=='dashed') { - $this->y = $y0 + ($tbd['w']/2); - $this->_setDashBorder($tbd['style'],'',$continuingpage,'L'); - $this->Line($x0 + ($tbd['w']/2), $this->y, $x0 + ($tbd['w']/2), $y0 + $h -($tbd['w']/2)); - } - else { - $this->y = $y0; - $this->SetLineJoin(0); - $this->SetLineCap(0); - $this->Line($x0 + ($tbd['w']/2), $this->y, $x0 + ($tbd['w']/2), $y0 + $h); - } - $this->y += $tbd['w']; - // Reset Corners and Dash off - $this->SetLineJoin(2); - $this->SetLineCap(2); - $this->SetDash(); - } - } - if ($this->blk[$blvl]['border_right']) { - $tbd = $this->blk[$blvl]['border_right']; - if (isset($tbd['s']) && $tbd['s']) { - $this->_setBorderLine($tbd); - // mPDF 5.6.56 - if ($tbd['style']=='dotted' || $tbd['style']=='dashed') { - $this->y = $y0 + ($tbd['w']/2); - $this->_setDashBorder($tbd['style'],'',$continuingpage,'R'); - $this->Line($x0 + $w - ($tbd['w']/2), $this->y, $x0 + $w - ($tbd['w']/2), $y0 + $h - ($tbd['w']/2)); - } - else { - $this->y = $y0; - $this->SetLineJoin(0); - $this->SetLineCap(0); - $this->Line($x0 + $w - ($tbd['w']/2), $this->y, $x0 + $w - ($tbd['w']/2), $y0 + $h); - } - $this->y += $tbd['w']; - // Reset Corners and Dash off - $this->SetLineJoin(2); - $this->SetLineCap(2); - $this->SetDash(); - } - } - if ($this->blk[$blvl]['border_bottom'] && $state > 1) { - $tbd = $this->blk[$blvl]['border_bottom']; - if (isset($tbd['s']) && $tbd['s']) { - $this->_setBorderLine($tbd); - $this->y = $y0 + $h - ($tbd['w']/2); - // mPDF 5.6.56 - if ($tbd['style']=='dotted' || $tbd['style']=='dashed') { - $this->_setDashBorder($tbd['style'],'',$continuingpage,'B'); - $this->Line($x0 + ($tbd['w']/2) , $this->y, $x0 + $w - ($tbd['w']/2), $this->y); - } - else { - $this->SetLineJoin(0); - $this->SetLineCap(0); - $this->Line($x0, $this->y, $x0 + $w, $this->y); - } - $this->y += $tbd['w']; - // Reset Corners and Dash off - $this->SetLineJoin(2); - $this->SetLineCap(2); - $this->SetDash(); - } - } - $this->SetDash(); - $this->y = $save_y; -} - - -function PaintImgBorder($objattr,$is_table) { - // Borders are disabled in columns - messes up the repositioning in printcolumnbuffer - if ($this->ColActive) { return ; } // *COLUMNS* - if ($is_table) { $k = $this->shrin_k; } else { $k = 1; } - $h = (isset($objattr['BORDER-HEIGHT']) ? $objattr['BORDER-HEIGHT'] : 0); - $w = (isset($objattr['BORDER-WIDTH']) ? $objattr['BORDER-WIDTH'] : 0); - $x0 = (isset($objattr['BORDER-X']) ? $objattr['BORDER-X'] : 0); - $y0 = (isset($objattr['BORDER-Y']) ? $objattr['BORDER-Y'] : 0); - - // BORDERS - if ($objattr['border_top']) { - $tbd = $objattr['border_top']; - if (!empty($tbd['s'])) { - $this->_setBorderLine($tbd,$k); - if ($tbd['style']=='dotted' || $tbd['style']=='dashed') { $this->_setDashBorder($tbd['style'],'','','T'); } - $this->Line($x0, $y0, $x0 + $w, $y0); - // Reset Corners and Dash off - $this->SetLineJoin(2); - $this->SetLineCap(2); - $this->SetDash(); - } - } - if ($objattr['border_left']) { - $tbd = $objattr['border_left']; - if (!empty($tbd['s'])) { - $this->_setBorderLine($tbd,$k); - if ($tbd['style']=='dotted' || $tbd['style']=='dashed') { $this->_setDashBorder($tbd['style'],'','','L'); } - $this->Line($x0, $y0, $x0, $y0 + $h); - // Reset Corners and Dash off - $this->SetLineJoin(2); - $this->SetLineCap(2); - $this->SetDash(); - } - } - if ($objattr['border_right']) { - $tbd = $objattr['border_right']; - if (!empty($tbd['s'])) { - $this->_setBorderLine($tbd,$k); - if ($tbd['style']=='dotted' || $tbd['style']=='dashed') { $this->_setDashBorder($tbd['style'],'','','R'); } - $this->Line($x0 + $w, $y0, $x0 + $w, $y0 + $h); - // Reset Corners and Dash off - $this->SetLineJoin(2); - $this->SetLineCap(2); - $this->SetDash(); - } - } - if ($objattr['border_bottom']) { - $tbd = $objattr['border_bottom']; - if (!empty($tbd['s'])) { - $this->_setBorderLine($tbd,$k); - if ($tbd['style']=='dotted' || $tbd['style']=='dashed') { $this->_setDashBorder($tbd['style'],'','','B'); } - $this->Line($x0, $y0 + $h, $x0 + $w, $y0 + $h); - // Reset Corners and Dash off - $this->SetLineJoin(2); - $this->SetLineCap(2); - $this->SetDash(); - } - } - $this->SetDash(); - $this->SetAlpha(1); -} - -/*-- END HTML-CSS --*/ - - - - -function Reset() { - $this->SetTColor($this->ConvertColor(0)); - $this->SetDColor($this->ConvertColor(0)); - $this->SetFColor($this->ConvertColor(255)); - $this->SetAlpha(1); - $this->colorarray = ''; - - $this->spanbgcolorarray = ''; - $this->spanbgcolor = false; - $this->spanborder = false; - $this->spanborddet = array(); - - $this->ResetStyles(); - - $this->HREF = ''; - $this->textparam = array(); - $this->SetTextOutline(); - - $this->SUP = false; - $this->SUB = false; - $this->strike = false; - $this->textshadow = ''; - - $this->SetFont($this->default_font,'',0,false); - $this->SetFontSize($this->default_font_size,false); - - $this->currentfontfamily = ''; - $this->currentfontsize = ''; - -/*-- TABLES --*/ - if ($this->tableLevel) { - $this->SetLineHeight('',$this->table_lineheight); // *TABLES* - } - else -/*-- END TABLES --*/ -/*-- LISTS --*/ - - if ($this->listlvl && $this->list_lineheight[$this->listlvl][$this->bulletarray['occur']]) { - $this->SetLineHeight('',$this->list_lineheight[$this->listlvl][$this->bulletarray['occur']]); // sets default line height - } - else -/*-- END LISTS --*/ - if (isset($this->blk[$this->blklvl]['line_height']) && $this->blk[$this->blklvl]['line_height']) { - $this->SetLineHeight('',$this->blk[$this->blklvl]['line_height']); // sets default line height - } - - $this->toupper = false; - $this->tolower = false; - $this->kerning = false; - $this->lSpacingCSS = ''; - $this->wSpacingCSS = ''; - $this->fixedlSpacing = false; - $this->minwSpacing = 0; - $this->capitalize = false; - $this->SetDash(); //restore to no dash - $this->dash_on = false; - $this->dotted_on = false; - $this->divwidth = 0; - $this->divheight = 0; - $this->divalign = ''; - $this->divrevert = false; - $this->oldy = -1; - - $bodystyle = array(); - if (isset($this->cssmgr->CSS['BODY']['FONT-STYLE'])) { $bodystyle['FONT-STYLE'] = $this->cssmgr->CSS['BODY']['FONT-STYLE']; } - if (isset($this->cssmgr->CSS['BODY']['FONT-WEIGHT'])) { $bodystyle['FONT-WEIGHT'] = $this->cssmgr->CSS['BODY']['FONT-WEIGHT']; } - if (isset($this->cssmgr->CSS['BODY']['COLOR'])) { $bodystyle['COLOR'] = $this->cssmgr->CSS['BODY']['COLOR']; } - if (isset($bodystyle)) { $this->setCSS($bodystyle,'BLOCK','BODY'); } - -} - -/*-- HTML-CSS --*/ -function ReadMetaTags($html) { - // changes anykey=anyvalue to anykey="anyvalue" (only do this when this happens inside tags) - $regexp = '/ (\\w+?)=([^\\s>"]+)/si'; - $html = preg_replace($regexp," \$1=\"\$2\"",$html); - if (preg_match('/(.*?)<\/title>/si',$html,$m)) { - $this->SetTitle($m[1]); - } - preg_match_all('/<meta [^>]*?(name|content)="([^>]*?)" [^>]*?(name|content)="([^>]*?)".*?>/si',$html,$aux); - $firstattr = $aux[1]; - $secondattr = $aux[3]; - for( $i = 0 ; $i < count($aux[0]) ; $i++) { - - $name = ( strtoupper($firstattr[$i]) == "NAME" )? strtoupper($aux[2][$i]) : strtoupper($aux[4][$i]); - $content = ( strtoupper($firstattr[$i]) == "CONTENT" )? $aux[2][$i] : $aux[4][$i]; - switch($name) { - case "KEYWORDS": $this->SetKeywords($content); break; - case "AUTHOR": $this->SetAuthor($content); break; - case "DESCRIPTION": $this->SetSubject($content); break; - } - } -} - - -function ReadCharset($html) { - // Charset conversion - if ($this->allow_charset_conversion) { - if (preg_match('/<head.*charset=([^\'\"\s]*).*<\/head>/si',$html,$m)) { - if (strtoupper($m[1]) != 'UTF-8') { - $this->charset_in = strtoupper($m[1]); - } - } - } -} - -function setCSS($arrayaux,$type='',$tag='') { // type= INLINE | BLOCK | LIST // tag= BODY - if (!is_array($arrayaux)) return; //Removes PHP Warning - // mPDF 5.7.3 inline text-decoration parameters - $preceeding_fontkey = $this->FontFamily . $this->FontStyle; - $preceeding_fontsize = $this->FontSize; - - // Set font size first so that e.g. MARGIN 0.83em works on font size for this element - if (isset($arrayaux['FONT-SIZE'])) { - $v = $arrayaux['FONT-SIZE']; - if(is_numeric($v[0])) { - if ($type == 'BLOCK' && $this->blklvl>0 && isset($this->blk[$this->blklvl-1]['InlineProperties']) && isset($this->blk[$this->blklvl-1]['InlineProperties']['size'])) { - $mmsize = $this->ConvertSize($v,$this->blk[$this->blklvl-1]['InlineProperties']['size']); - } - else { - $mmsize = $this->ConvertSize($v,$this->FontSize); - } - $this->SetFontSize( $mmsize*(_MPDFK),false ); //Get size in points (pt) - } - else{ - $v = strtoupper($v); - if (isset($this->fontsizes[$v])) { - $this->SetFontSize( $this->fontsizes[$v]* $this->default_font_size,false); - } - } - if ($tag == 'BODY') { $this->SetDefaultFontSize($this->FontSizePt); } - } - - - if ($this->useLang && !$this->usingCoreFont) { - if (isset($arrayaux['LANG']) && $arrayaux['LANG'] && $arrayaux['LANG'] != $this->default_lang && ((strlen($arrayaux['LANG']) == 5 && $arrayaux['LANG'] != 'UTF-8') || strlen($arrayaux['LANG']) == 2)) { - list ($coreSuitable,$mpdf_pdf_unifonts) = GetLangOpts($arrayaux['LANG'], $this->useAdobeCJK); - if ($mpdf_pdf_unifonts) { $this->RestrictUnicodeFonts($mpdf_pdf_unifonts); } - else { $this->RestrictUnicodeFonts($this->default_available_fonts ); } - if ($tag == 'BODY') { - $this->currentLang = $arrayaux['LANG']; - $this->default_lang = $arrayaux['LANG']; - if ($mpdf_pdf_unifonts) { $this->default_available_fonts = $mpdf_pdf_unifonts; } - } - } - else { - $this->RestrictUnicodeFonts($this->default_available_fonts ); - } - } - - // FOR INLINE and BLOCK OR 'BODY' - if (isset($arrayaux['FONT-FAMILY'])) { - $v = $arrayaux['FONT-FAMILY']; - //If it is a font list, get all font types - $aux_fontlist = explode(",",$v); - $found = 0; - foreach($aux_fontlist AS $f) { - $fonttype = trim($f); - $fonttype = preg_replace('/["\']*(.*?)["\']*/','\\1',$fonttype); - $fonttype = preg_replace('/ /','',$fonttype); - $v = strtolower(trim($fonttype)); - if (isset($this->fonttrans[$v]) && $this->fonttrans[$v]) { $v = $this->fonttrans[$v]; } - if ((!$this->onlyCoreFonts && in_array($v,$this->available_unifonts)) || - in_array($v,array('ccourier','ctimes','chelvetica')) || - ($this->onlyCoreFonts && in_array($v,array('courier','times','helvetica','arial'))) || - in_array($v, array('sjis','uhc','big5','gb'))) { - $fonttype = $v; - $found = 1; - break; - } - } - if (!$found) { - foreach($aux_fontlist AS $f) { - $fonttype = trim($f); - $fonttype = preg_replace('/["\']*(.*?)["\']*/','\\1',$fonttype); - $fonttype = preg_replace('/ /','',$fonttype); - $v = strtolower(trim($fonttype)); - if (isset($this->fonttrans[$v]) && $this->fonttrans[$v]) { $v = $this->fonttrans[$v]; } - if (in_array($v,$this->sans_fonts) || in_array($v,$this->serif_fonts) || in_array($v,$this->mono_fonts) ) { - $fonttype = $v; - break; - } - } - } - - if ($tag == 'BODY') { - $this->SetDefaultFont($fonttype); - } - $this->SetFont($fonttype,$this->currentfontstyle,0,false); - } - else { - $this->SetFont($this->currentfontfamily,$this->currentfontstyle,0,false); - } - - foreach($arrayaux as $k => $v) { - if ($type != 'INLINE' && $tag != 'BODY' && $type != 'LIST') { - switch($k){ - // BORDERS - case 'BORDER-TOP': - $this->blk[$this->blklvl]['border_top'] = $this->border_details($v); - if ($this->blk[$this->blklvl]['border_top']['s']) { $this->blk[$this->blklvl]['border'] = 1; } - break; - case 'BORDER-BOTTOM': - $this->blk[$this->blklvl]['border_bottom'] = $this->border_details($v); - if ($this->blk[$this->blklvl]['border_bottom']['s']) { $this->blk[$this->blklvl]['border'] = 1; } - break; - case 'BORDER-LEFT': - $this->blk[$this->blklvl]['border_left'] = $this->border_details($v); - if ($this->blk[$this->blklvl]['border_left']['s']) { $this->blk[$this->blklvl]['border'] = 1; } - break; - case 'BORDER-RIGHT': - $this->blk[$this->blklvl]['border_right'] = $this->border_details($v); - if ($this->blk[$this->blklvl]['border_right']['s']) { $this->blk[$this->blklvl]['border'] = 1; } - break; - - // PADDING - case 'PADDING-TOP': - $this->blk[$this->blklvl]['padding_top'] = $this->ConvertSize($v,$this->blk[$this->blklvl-1]['inner_width'],$this->FontSize,false); - break; - case 'PADDING-BOTTOM': - $this->blk[$this->blklvl]['padding_bottom'] = $this->ConvertSize($v,$this->blk[$this->blklvl-1]['inner_width'],$this->FontSize,false); - break; - case 'PADDING-LEFT': - $this->blk[$this->blklvl]['padding_left'] = $this->ConvertSize($v,$this->blk[$this->blklvl-1]['inner_width'],$this->FontSize,false); - break; - case 'PADDING-RIGHT': - $this->blk[$this->blklvl]['padding_right'] = $this->ConvertSize($v,$this->blk[$this->blklvl-1]['inner_width'],$this->FontSize,false); - break; - - // MARGINS - case 'MARGIN-TOP': - $tmp = $this->ConvertSize($v,$this->blk[$this->blklvl-1]['inner_width'],$this->FontSize,false); - if (isset($this->blk[$this->blklvl]['lastbottommargin'])) { - if ($tmp > $this->blk[$this->blklvl]['lastbottommargin']) { - $tmp -= $this->blk[$this->blklvl]['lastbottommargin']; - } - else { - $tmp = 0; - } - } - $this->blk[$this->blklvl]['margin_top'] = $tmp; - break; - case 'MARGIN-BOTTOM': - $this->blk[$this->blklvl]['margin_bottom'] = $this->ConvertSize($v,$this->blk[$this->blklvl-1]['inner_width'],$this->FontSize,false); - break; - case 'MARGIN-LEFT': - $this->blk[$this->blklvl]['margin_left'] = $this->ConvertSize($v,$this->blk[$this->blklvl-1]['inner_width'],$this->FontSize,false); - break; - case 'MARGIN-RIGHT': - $this->blk[$this->blklvl]['margin_right'] = $this->ConvertSize($v,$this->blk[$this->blklvl-1]['inner_width'],$this->FontSize,false); - break; - -/*-- BORDER-RADIUS --*/ - case 'BORDER-TOP-LEFT-RADIUS-H': - $this->blk[$this->blklvl]['border_radius_TL_H'] = $this->ConvertSize($v,$this->blk[$this->blklvl-1]['inner_width'],$this->FontSize,false); - break; - case 'BORDER-TOP-LEFT-RADIUS-V': - $this->blk[$this->blklvl]['border_radius_TL_V'] = $this->ConvertSize($v,$this->blk[$this->blklvl-1]['inner_width'],$this->FontSize,false); - break; - case 'BORDER-TOP-RIGHT-RADIUS-H': - $this->blk[$this->blklvl]['border_radius_TR_H'] = $this->ConvertSize($v,$this->blk[$this->blklvl-1]['inner_width'],$this->FontSize,false); - break; - case 'BORDER-TOP-RIGHT-RADIUS-V': - $this->blk[$this->blklvl]['border_radius_TR_V'] = $this->ConvertSize($v,$this->blk[$this->blklvl-1]['inner_width'],$this->FontSize,false); - break; - case 'BORDER-BOTTOM-LEFT-RADIUS-H': - $this->blk[$this->blklvl]['border_radius_BL_H'] = $this->ConvertSize($v,$this->blk[$this->blklvl-1]['inner_width'],$this->FontSize,false); - break; - case 'BORDER-BOTTOM-LEFT-RADIUS-V': - $this->blk[$this->blklvl]['border_radius_BL_V'] = $this->ConvertSize($v,$this->blk[$this->blklvl-1]['inner_width'],$this->FontSize,false); - break; - case 'BORDER-BOTTOM-RIGHT-RADIUS-H': - $this->blk[$this->blklvl]['border_radius_BR_H'] = $this->ConvertSize($v,$this->blk[$this->blklvl-1]['inner_width'],$this->FontSize,false); - break; - case 'BORDER-BOTTOM-RIGHT-RADIUS-V': - $this->blk[$this->blklvl]['border_radius_BR_V'] = $this->ConvertSize($v,$this->blk[$this->blklvl-1]['inner_width'],$this->FontSize,false); - break; -/*-- END BORDER-RADIUS --*/ - - case 'BOX-SHADOW': - $bs = $this->cssmgr->setCSSboxshadow($v); - if ($bs) { $this->blk[$this->blklvl]['box_shadow'] = $bs; } - break; - - case 'BACKGROUND-CLIP': - if (strtoupper($v) == 'PADDING-BOX') { $this->blk[$this->blklvl]['background_clip'] = 'padding-box'; } - else if (strtoupper($v) == 'CONTENT-BOX') { $this->blk[$this->blklvl]['background_clip'] = 'content-box'; } // mPDF 5.6.09 - break; - - case 'PAGE-BREAK-AFTER': - if (strtoupper($v) == 'AVOID') { $this->blk[$this->blklvl]['page_break_after_avoid'] = true; } - else if (strtoupper($v) == 'ALWAYS' || strtoupper($v) == 'LEFT' || strtoupper($v) == 'RIGHT') { $this->blk[$this->blklvl]['page_break_after'] = strtoupper($v) ; } - break; - - case 'WIDTH': - if (strtoupper($v) != 'AUTO') { - $this->blk[$this->blklvl]['css_set_width'] = $this->ConvertSize($v,$this->blk[$this->blklvl-1]['inner_width'],$this->FontSize,false); - } - break; - - case 'TEXT-INDENT': - // Left as raw value (may include 1% or 2em) - $this->blk[$this->blklvl]['text_indent'] = $v; - break; - - }//end of switch($k) - } - - - if ($type != 'INLINE' && $type != 'LIST') { // includes BODY tag - switch($k){ - - case 'MARGIN-COLLAPSE': // Custom tag to collapse margins at top and bottom of page - if (strtoupper($v) == 'COLLAPSE') { $this->blk[$this->blklvl]['margin_collapse'] = true; } - break; - - case 'LINE-HEIGHT': - $this->blk[$this->blklvl]['line_height'] = $this->fixLineheight($v); - if (!$this->blk[$this->blklvl]['line_height'] ) { $this->blk[$this->blklvl]['line_height'] = $this->normalLineheight; } - break; - - case 'TEXT-ALIGN': //left right center justify - switch (strtoupper($v)) { - case 'LEFT': - $this->blk[$this->blklvl]['align']="L"; - break; - case 'CENTER': - $this->blk[$this->blklvl]['align']="C"; - break; - case 'RIGHT': - $this->blk[$this->blklvl]['align']="R"; - break; - case 'JUSTIFY': - $this->blk[$this->blklvl]['align']="J"; - break; - } - break; - -/*-- BACKGROUNDS --*/ - case 'BACKGROUND-GRADIENT': - if ($type == 'BLOCK') { - $this->blk[$this->blklvl]['gradient'] = $v; - } - break; -/*-- END BACKGROUNDS --*/ - - case 'DIRECTION': - if ($v) { $this->blk[$this->blklvl]['direction'] = strtolower($v); } - break; - - }//end of switch($k) - } - - // FOR INLINE ONLY - if ($type == 'INLINE' || $type == 'LIST') { - switch($k){ - case 'DISPLAY': // Custom tag to collapse margins at top and bottom of page - if (strtoupper($v) == 'NONE') { $this->inlineDisplayOff = true; } - break; - case 'DIRECTION': - break; - }//end of switch($k) - } - // FOR INLINE ONLY - if ($type == 'INLINE') { - switch($k){ - // BORDERS - case 'BORDER-TOP': - $this->spanborddet['T'] = $this->border_details($v); - $this->spanborder = true; - break; - case 'BORDER-BOTTOM': - $this->spanborddet['B'] = $this->border_details($v); - $this->spanborder = true; - break; - case 'BORDER-LEFT': - $this->spanborddet['L'] = $this->border_details($v); - $this->spanborder = true; - break; - case 'BORDER-RIGHT': - $this->spanborddet['R'] = $this->border_details($v); - $this->spanborder = true; - break; - // mPDF 5.6.26 - case 'VISIBILITY': // block is set in OpenTag - $v = strtolower($v); - if ($v == 'visible' || $v == 'hidden' || $v == 'printonly' || $v == 'screenonly') { - $this->textparam['visibility'] = $v; - } - break; - }//end of switch($k) - } - - - // FOR INLINE and BLOCK - switch($k){ - case 'TEXT-ALIGN': //left right center justify - if (strtoupper($v) == 'NOJUSTIFY' && $this->blk[$this->blklvl]['align']=="J") { - $this->blk[$this->blklvl]['align']=""; - } - break; - // bgcolor only - to stay consistent with original html2fpdf - case 'BACKGROUND': - case 'BACKGROUND-COLOR': - $cor = $this->ConvertColor($v); - if ($cor) { - if ($tag == 'BODY') { - $this->bodyBackgroundColor = $cor; - } - else if ($type == 'INLINE' || $type == 'LIST') { - $this->spanbgcolorarray = $cor; - $this->spanbgcolor = true; - } - else { - $this->blk[$this->blklvl]['bgcolorarray'] = $cor; - $this->blk[$this->blklvl]['bgcolor'] = true; - } - } - else if ($type != 'INLINE' && $type != 'LIST') { - if ($this->ColActive || $this->keep_block_together) { - $this->blk[$this->blklvl]['bgcolorarray'] = $this->blk[$this->blklvl-1]['bgcolorarray'] ; - $this->blk[$this->blklvl]['bgcolor'] = $this->blk[$this->blklvl-1]['bgcolor'] ; - } - } - break; - - // auto | normal | none - case 'FONT-KERNING': - if ((strtoupper($v) == 'NORMAL' || strtoupper($v) == 'AUTO') && $this->useKerning) { $this->kerning = true; } - else if (strtoupper($v) == 'NONE') { $this->kerning = false; } - break; - - - // normal | <length> - case 'LETTER-SPACING': - $this->lSpacingCSS = $v; - if (($this->lSpacingCSS || $this->lSpacingCSS==='0') && strtoupper($this->lSpacingCSS) != 'NORMAL') { - $this->fixedlSpacing = $this->ConvertSize($this->lSpacingCSS,$this->FontSize); - } - break; - - // normal | <length> - case 'WORD-SPACING': - $this->wSpacingCSS = $v; - if ($this->wSpacingCSS && strtoupper($this->wSpacingCSS) != 'NORMAL') { - $this->minwSpacing = $this->ConvertSize($this->wSpacingCSS,$this->FontSize); - } - break; - - case 'FONT-STYLE': // italic normal oblique - switch (strtoupper($v)) { - case 'ITALIC': - case 'OBLIQUE': - $this->SetStyle('I',true); - break; - case 'NORMAL': - $this->SetStyle('I',false); - break; - } - break; - - case 'FONT-WEIGHT': // normal bold //Does not support: bolder, lighter, 100..900(step value=100) - switch (strtoupper($v)) { - case 'BOLD': - $this->SetStyle('B',true); - break; - case 'NORMAL': - $this->SetStyle('B',false); - break; - } - break; - - case 'VERTICAL-ALIGN': //super and sub only dealt with here e.g. <SUB> and <SUP> - switch (strtoupper($v)) { - case 'SUPER': - $this->SUP=true; - $this->SUB=false; // mPDF 5.6.07 - // mPDF 5.7.3 inline text-decoration parameters - if (isset($this->textparam['text-baseline'])) { $this->textparam['text-baseline'] += ($this->baselineSup)*$preceeding_fontsize; } - else { $this->textparam['text-baseline'] = ($this->baselineSup)*$preceeding_fontsize; } - break; - case 'SUB': - $this->SUB=true; - $this->SUP=false; // mPDF 5.6.07 - // mPDF 5.7.3 inline text-decoration parameters - if (isset($this->textparam['text-baseline'])) { $this->textparam['text-baseline'] += ($this->baselineSub)*$preceeding_fontsize; } - else { $this->textparam['text-baseline'] = ($this->baselineSub)*$preceeding_fontsize; } - break; - case 'BASELINE': // mPDF 5.6.07 - $this->SUB=false; - $this->SUP=false; - // mPDF 5.7.3 inline text-decoration parameters - if (isset($this->textparam['text-baseline'])) { unset($this->textparam['text-baseline']); } - break; - // mPDF 5.7.3 inline text-decoration parameters - default: - $lh = $this->_computeLineheight($this->blk[$this->blklvl]['line_height']); - $sz = $this->ConvertSize($v,$lh,$this->FontSize,false); - $this->SUP=false; - $this->SUB=false; - if ($sz) { - if ($sz > 0) { - $this->SUP=true; - } - else { - $this->SUB=true; - } - if (isset($this->textparam['text-baseline'])) { $this->textparam['text-baseline'] += $sz; } - else { $this->textparam['text-baseline'] = $sz; } - } - } - break; - - case 'FONT-VARIANT': - switch (strtoupper($v)) { - case 'SMALL-CAPS': - $this->SetStyle('S',true); - break; - case 'NORMAL': - $this->SetStyle('S',false); - break; - } - break; - - case 'TEXT-TRANSFORM': // none uppercase lowercase //Does support: capitalize - switch (strtoupper($v)) { //Not working 100% - case 'CAPITALIZE': - $this->capitalize=true; - break; - case 'UPPERCASE': - $this->toupper=true; - break; - case 'LOWERCASE': - $this->tolower=true; - break; - case 'NONE': break; - } - break; - - case 'TEXT-SHADOW': - $ts = $this->cssmgr->setCSStextshadow($v); - if ($ts) { $this->textshadow = $ts; } - break; - - case 'HYPHENS': // mPDF 5.6.08 - if (strtoupper($v)=='NONE') { - $this->textparam['hyphens'] = 2; - } - else if (strtoupper($v)=='AUTO') { - $this->textparam['hyphens'] = 1; - } - else if (strtoupper($v)=='MANUAL') { - $this->textparam['hyphens'] = 0; - } - break; - - case 'TEXT-OUTLINE': // mPDF 5.6.07 - if (strtoupper($v)=='NONE') { - $this->textparam['outline-s'] = false; - } - break; - - case 'TEXT-OUTLINE-WIDTH': // mPDF 5.6.07 - case 'OUTLINE-WIDTH': - switch(strtoupper($v)) { - case 'THIN': $v = '0.03em'; break; - case 'MEDIUM': $v = '0.05em'; break; - case 'THICK': $v = '0.07em'; break; - } - $w = $this->ConvertSize($v,$this->blk[$this->blklvl]['inner_width'],$this->FontSize); - if ($w) { - $this->textparam['outline-WIDTH'] = $w; - $this->textparam['outline-s'] = true; - } - else { $this->textparam['outline-s'] = false; } - break; - - case 'TEXT-OUTLINE-COLOR': // mPDF 5.6.07 - case 'OUTLINE-COLOR': - if (strtoupper($v) == 'INVERT') { - if ($this->colorarray) { - $cor = $this->colorarray; - $this->textparam['outline-COLOR'] = $this->_invertColor($cor); - } - else { - $this->textparam['outline-COLOR'] = $this->ConvertColor(255); - } - } - else { - $cor = $this->ConvertColor($v); - if ($cor) { $this->textparam['outline-COLOR'] = $cor ; } - } - break; - - case 'COLOR': // font color - $cor = $this->ConvertColor($v); - if ($cor) { - $this->colorarray = $cor; - $this->SetTColor($cor); - } - break; - - - }//end of switch($k) - - - }//end of foreach - - - // mPDF 5.7.3 inline text-decoration parameters - // Needs to be set at the end - after vertical-align = super/sub, so that textparam['text-baseline'] is set - if (isset($arrayaux['TEXT-DECORATION'])) { - $v = $arrayaux['TEXT-DECORATION']; // none underline line-through (strikeout) //Does not support: overline, blink - if (stristr($v,'LINE-THROUGH')) { - $this->strike = true; - // mPDF 5.7.3 inline text-decoration parameters - if (isset($this->textparam['text-baseline'])) { $this->textparam['s-decoration']['baseline'] = $this->textparam['text-baseline']; } - else { $this->textparam['s-decoration']['baseline'] = 0; } - $this->textparam['s-decoration']['fontkey'] = $this->FontFamily . $this->FontStyle; - $this->textparam['s-decoration']['fontsize'] = $this->FontSize; - $this->textparam['s-decoration']['color'] = strtoupper($this->TextColor); // change 0 0 0 rg to 0 0 0 RG - } - if (stristr($v,'UNDERLINE')) { - $this->SetStyle('U',true); - // mPDF 5.7.3 inline text-decoration parameters - if (isset($this->textparam['text-baseline'])) { $this->textparam['u-decoration']['baseline'] = $this->textparam['text-baseline']; } - else { $this->textparam['u-decoration']['baseline'] = 0; } - $this->textparam['u-decoration']['fontkey'] = $this->FontFamily . $this->FontStyle; - $this->textparam['u-decoration']['fontsize'] = $this->FontSize; - $this->textparam['u-decoration']['color'] = strtoupper($this->TextColor); // change 0 0 0 rg to 0 0 0 RG - } - if (stristr($v,'NONE')) { - $this->SetStyle('U',false); - $this->strike = false; - // mPDF 5.7.3 inline text-decoration parameters - if (isset($this->textparam['u-decoration'])) { unset($this->textparam['u-decoration']); } - if (isset($this->textparam['s-decoration'])) { unset($this->textparam['s-decoration']); } - } - } - -} - -/*-- END HTML-CSS --*/ - - -function SetStyle($tag,$enable) { - $this->$tag=$enable; - $style=''; - foreach(array('B','I','U','S') as $s) { - if($this->$s) { - $style.=$s; - } - } - if ($this->S && empty($this->upperCase)) { @include(_MPDF_PATH.'includes/upperCase.php'); } - $this->currentfontstyle=$style; - $this->SetFont('',$style,0,false); -} - -// Set multiple styles at one $str e.g. "BIS" -function SetStylesArray($arr) { - $style=''; - foreach(array('B','I','U','S') as $s) { - if (isset($arr[$s])) { - if ($arr[$s]) { - $this->$s = true; - $style.=$s; - } - else { $this->$s = false; } - } - else if ($this->$s) { $style.=$s; } - } - $this->currentfontstyle=$style; - $this->SetFont('',$style,0,false); -} - -// Set multiple styles at one $str e.g. "BIS" -function SetStyles($str) { - $style=''; - foreach(array('B','I','U','S') as $s) { - if (strpos($str,$s) !== false) { - $this->$s = true; - $style.=$s; - } - else { $this->$s = false; } - } - $this->currentfontstyle=$style; - $this->SetFont('',$style,0,false); -} - -function ResetStyles() { - foreach(array('B','I','U','S') as $s) { - $this->$s = false; - } - $this->currentfontstyle=''; - $this->SetFont('','',0,false); -} - - -function DisableTags($str='') -{ - if ($str == '') //enable all tags - { - //Insert new supported tags in the long string below. - $this->enabledtags = "<span><s><strike><del><bdo><big><small><ins><cite><acronym><font><sup><sub><b><u><i><a><strong><em><code><samp><tt><kbd><var><q><table><thead><tfoot><tbody><tr><th><td><ol><ul><li><dl><dt><dd><form><input><select><textarea><option><div><p><h1><h2><h3><h4><h5><h6><pre><center><blockquote><address><hr><img><br><indexentry><indexinsert><bookmark><watermarktext><watermarkimage><tts><ttz><tta><column_break><columnbreak><newcolumn><newpage><page_break><pagebreak><formfeed><columns><toc><tocentry><tocpagebreak><pageheader><pagefooter><setpageheader><setpagefooter><sethtmlpageheader><sethtmlpagefooter><annotation><template><jpgraph><barcode><dottab><caption><textcircle><fieldset><legend><article><aside><figure><figcaption><footer><header><hgroup><nav><section><mark><main><details><summary><meter><progress><time>"; // mPDF 5.7.3 - } - else - { - $str = explode(",",$str); - foreach($str as $v) $this->enabledtags = str_replace(trim($v),'',$this->enabledtags); - } -} - - -/*-- TABLES --*/ - -function finaliseCellLineHeight($lhxt, $maxfontsize, $maxlineHeight, $lhfixed, $forceExactLineheight) { - $af = 0; // Above font - $bf = 0; // Below font - $mta = 0; // Maximum top-aligned - $mba = 0; // Maximum bottom-aligned - if ($lhxt['BS']) { - $af = max($af, ($lhxt['BS'] - ($maxfontsize * (0.5 + $this->baselineC)))); - } - if ($lhxt['M']) { - $af = max($af, ($lhxt['M'] - $maxfontsize)/2); - $bf = max($bf, ($lhxt['M'] - $maxfontsize)/2); - } - if ($lhxt['TT']) { - $bf = max($bf, ($lhxt['TT'] - $maxfontsize)); - } - if ($lhxt['TB']) { - $af = max($af, ($lhxt['TB'] - $maxfontsize)); - } - if ($lhxt['T']) { - $mta = max($mta, $lhxt['T']); - } - if ($lhxt['B']) { - $mba = max($mba, $lhxt['B']); - } - if ((!$lhfixed || !$forceExactLineheight) && ($af > (($maxlineHeight - $maxfontsize)/2) || $bf > (($maxlineHeight - $maxfontsize)/2))) { - $maxlineHeight = $maxfontsize + $af + $bf; - } - else if (!$lhfixed) { $af = $bf = ($maxlineHeight - $maxfontsize)/2; } - if ($mta > $maxlineHeight) { - $bf += ($mta - $maxlineHeight); - $maxlineHeight = $mta; - } - if ($mba > $maxlineHeight) { - $af += ($mba - $maxlineHeight); - $maxlineHeight = $mba; - } - return $maxlineHeight; -} - -function TableWordWrap($maxwidth, $forcewrap = 0, $textbuffer = '', $def_fontsize, $returnarray=false) { // NB ** returnarray used in flowchart - $biggestword=0; - $toonarrow=false; - - $textbuffer[0][0] = preg_replace('/^[ ]*/','',$textbuffer[0][0]); - if ((count($textbuffer) == 0) or ((count($textbuffer) == 1) && ($textbuffer[0][0] == ''))) { return 0; } - - $text = ''; - $lhfixed = false; - if (preg_match('/([0-9.,]+)mm/',$this->table_lineheight)) { $lhfixed = true; } - if ($lhfixed) { $def_lineheight = $this->_computeLineheight($this->table_lineheight, $def_fontsize);} - else { $def_lineheight = 0; } - - - // START OF NEW LINE - // Initialise lineheight variables - $maxfontsize = 0; - $forceExactLineheight = true; - $lhxt = array('BS'=>0, 'M'=>0, 'TT'=>0, 'TB'=>0, 'T'=>0, 'B'=>0); - $maxlineHeight = $def_lineheight ; - $ch = 0; - $width = 0; - $ln = 1; // Counts line number - $mxw = $this->GetCharWidth('W',false); - for($cctr=0;$cctr<count($textbuffer);$cctr++) { // mPDF 5.6.22 - $chunk = $textbuffer[$cctr]; // mPDF 5.6.22 - $line = $chunk[0]; - //IMAGE - if (substr($line,0,3) == "\xbb\xa4\xac") { //identifier has been identified! - $objattr = $this->_getObjAttr($line); - if ($objattr['type'] == 'nestedtable') { - // END OF LINE - // Finalise & add lineheight - $ch += $this->finaliseCellLineHeight($lhxt, $maxfontsize, $maxlineHeight, $lhfixed, $forceExactLineheight); - $level = $objattr['level']; - $ih = $this->table[($level+1)][$objattr['nestedcontent']]['h']; // nested table width - $ch += $ih; - // START OF NEW LINE - // Initialise lineheight variables - $ln++; - $maxfontsize = 0; - $forceExactLineheight = true; - $lhxt = array('BS'=>0, 'M'=>0, 'TT'=>0, 'TB'=>0, 'T'=>0, 'B'=>0); - $maxlineHeight = $def_lineheight ; - $width = 0; - $text = ""; - continue; - } - - list($skipln,$iw,$ih) = $this->inlineObject((isset($specialcontent['type']) ? $specialcontent['type'] : null),0,0, $objattr, $this->lMargin,$width,$maxwidth,$maxlineHeight,false,true); - if ($objattr['type'] == 'hr') { - // END OF LINE - // Finalise & add lineheight - $ch += $this->finaliseCellLineHeight($lhxt, $maxfontsize, $maxlineHeight, $lhfixed, $forceExactLineheight); - // Add HR height - $ch += $ih; - // START OF NEW LINE - // Initialise lineheight variables - $ln++; - $maxfontsize = 0; - $forceExactLineheight = true; - $lhxt = array('BS'=>0, 'M'=>0, 'TT'=>0, 'TB'=>0, 'T'=>0, 'B'=>0); - $maxlineHeight = $def_lineheight ; - $width = 0; - $text = ""; - continue; - } - - if ($skipln==1 || $skipln==-2) { - // Finish last line - // END OF LINE - // Finalise & add lineheight - $ch += $this->finaliseCellLineHeight($lhxt, $maxfontsize, $maxlineHeight, $lhfixed, $forceExactLineheight); - // START OF NEW LINE - // Initialise lineheight variables - $maxfontsize = 0; - $forceExactLineheight = true; - $lhxt = array('BS'=>0, 'M'=>0, 'TT'=>0, 'TB'=>0, 'T'=>0, 'B'=>0); - $maxlineHeight = $def_lineheight ; - $ln++; - $width = 0; - $text = ""; - } - $va = (isset($objattr['vertical-align']) ? $objattr['vertical-align'] : null); - if ($va) { - $lhxt[$va] = max($lhxt[$va], $ih); - } - if ($lhfixed && $ih > $def_fontsize) { $forceExactLineheight = false; } - $maxlineHeight = max($maxlineHeight ,$ih); - $width += $iw; - continue; - } - - // SET FONT SIZE/STYLE from $chunk[n] - // FONTSIZE - if(isset($chunk[11]) and $chunk[11] != '') { - if ($this->shrin_k) { - $this->SetFontSize($chunk[11]/$this->shrin_k,false); - } - else { - $this->SetFontSize($chunk[11],false); - } - } - if ($line == "\n") { - // END OF LINE - $maxfontsize = max($maxfontsize,$this->FontSize); - $fh = $this->_computeLineheight($this->table_lineheight); - if ($lhfixed && $this->FontSize > $def_fontsize) { - $fh = $this->FontSize; - $forceExactLineheight = false; - } - $maxlineHeight = max($maxlineHeight,$fh); - - // Finalise & add lineheight - $ch += $this->finaliseCellLineHeight($lhxt, $maxfontsize, $maxlineHeight, $lhfixed, $forceExactLineheight); - // START OF NEW LINE - // Initialise lineheight variables - $maxfontsize = 0; - $forceExactLineheight = true; - $lhxt = array('BS'=>0, 'M'=>0, 'TT'=>0, 'TB'=>0, 'T'=>0, 'B'=>0); - $maxlineHeight = $this->_computeLineheight($this->table_lineheight); - $ln++; - $text = ""; - $width = 0; - if(isset($chunk[11]) and $chunk[11] != '') { - $this->SetFontSize($this->default_font_size,false); - } - continue; - } - - $lbw = $rbw = 0; // Border widths - if(isset($chunk[16]) && !empty($chunk[16])) { //Border - $this->spanborddet = $chunk[16]; - if (isset($this->spanborddet['L'])) $lbw = $this->spanborddet['L']['w']; - if (isset($this->spanborddet['R'])) $rbw = $this->spanborddet['R']['w']; - } - if(isset($chunk[15])) { // Word spacing - $this->wSpacingCSS = $chunk[15]; - if ($this->wSpacingCSS && strtoupper($this->wSpacingCSS) != 'NORMAL') { - $this->minwSpacing = $this->ConvertSize($this->wSpacingCSS,$this->FontSize)/$this->shrin_k; // mPDF 5.7.3 - } - } - if(isset($chunk[14])) { // Letter spacing - $this->lSpacingCSS = $chunk[14]; - if (($this->lSpacingCSS || $this->lSpacingCSS==='0') && strtoupper($this->lSpacingCSS) != 'NORMAL') { - $this->fixedlSpacing = $this->ConvertSize($this->lSpacingCSS,$this->FontSize)/$this->shrin_k; // mPDF 5.7.3 - } - } - if(isset($chunk[13])) { // Font Kerning - $this->kerning = $chunk[13]; - } - if(isset($chunk[9])) { // Text params - Outline, hyphens // mPDF 5.6.08 - $this->textparam = $chunk[9]; - } - // FONTFAMILY - if(isset($chunk[4]) and $chunk[4] != '') { $font = $this->SetFont($chunk[4],$this->FontStyle,0,false); } - - // FONT STYLE B I U - if(isset($chunk[2]) and $chunk[2] != '') { - $this->SetStyles($chunk[2]); - } - - $space = $this->GetCharWidth(' ',false); - - if (mb_substr($line,0,1,$this->mb_enc ) == ' ') { // line (chunk) starts with a space - $width += $space; - $text .= ' '; - } - - if (mb_substr($line,(mb_strlen($line,$this->mb_enc )-1),1,$this->mb_enc ) == ' ') { $lsend = true; } // line (chunk) ends with a space - else { $lsend = false; } - $line= trim($line); - if ($line == '') { continue; } - - // mPDF ITERATION - if ($this->iterationCounter) $line = preg_replace('/{iteration ([a-zA-Z0-9_]+)}/','\\1', $line); - - $words = explode(' ', $line); - - foreach ($words as $k=>$word) { - $word = trim($word); - $wordwidth = $this->GetStringWidth($word); - if ($k==0) { $wordwidth += $lbw; } - if ($k==(count($words)-1)) { $wordwidth += $rbw; } - //maxwidth is insufficient for one word - if ($wordwidth > $maxwidth + 0.0001) { - $firstchunk=true; - while($wordwidth > $maxwidth + 0.0001) { - $chw = 0; // check width - $oneCJKorphan = false; - $mlen = mb_strlen($word, $this->mb_enc ); - for ( $i = 0; $i < $mlen; $i++ ) { - $chw = $this->GetStringWidth(mb_substr($word,0,$i+1,$this->mb_enc )); - if ($k==0) { $chw += $lbw; } - if ($k==(count($words)-1)) { $chw += $rbw; } - if ($chw > $maxwidth) { - if ($i==0 && $firstchunk) { - // If first letter of line does not fit - $wordwidth = $maxwidth - 0.0001; - if ($this->debug) { $this->Error("Table cell width calculated less than that needed for one character!"); } - break; - } -/*-- CJK-FONTS --*/ - // mPDF 5.6.40 mPDF 5.6.44 - if ($this->checkCJK && !$this->usingCoreFont && preg_match("/[".$this->pregCJKchars."]/u", $word)) { // mPDF 5.6.44 - if (!$oneCJKorphan && preg_match('/['.$this->CJKoverflow.']$/u',mb_substr($word,0,$i+1,$this->mb_enc )) && $this->allowCJKorphans) { - $wordwidth = $maxwidth - 0.0001; - $oneCJKorphan = true; - continue; - } - $cjkfix = 0; - // Last character that fits is not allowed to end a line - move lastchar(s) to start of next line - if ($i>0 && preg_match("/[".$this->CJKleading."$]/u", mb_substr($word,0,$i,$this->mb_enc ))) { - $cjkfix = 1; - } - // Next character is not allowed to start a new line - else if (preg_match("/[".$this->CJKfollowing."]/u", mb_substr($word,$i,1,$this->mb_enc ))) { - // try squeezing another character(s) onto this line = Oikomi - if ($this->allowCJKorphans && !$oneCJKorphan) { - //if lookahead is not another following char - if ($i==($mlen-1) || ($i<($mlen-1) && !preg_match("/[".$this->CJKfollowing."]/u", mb_substr($word,$i+1,1,$this->mb_enc )))) { - $wordwidth = $maxwidth - 0.0001; - $oneCJKorphan = true; - continue; - } - } - // or move lastchar(s) to next line - $cjkfix = 2; - } - // mPDF 5.6.42 - // CJK numerals kept together - else if (preg_match("/([".$this->pregCJKchars."]+[0-9\x{ff10}-\x{ff19}]+$)/u", mb_substr($word,0,$i,$this->mb_enc )) && preg_match("/^([0-9\x{ff10}-\x{ff19}]+[".$this->pregCJKchars."]+)/u", mb_substr($word,$i,16,$this->mb_enc ))) { - $cjkfix = 3; - } - if ($cjkfix) { - //move lastchar(s) to next line - $m0 = mb_substr($word,$i-1,1,$this->mb_enc ); // chars to move - $m1 = mb_substr($word,0,$i-1,$this->mb_enc ); // str after stripped chars to move - $mi = $i - 1; - if ($cjkfix == 3) { $match = "0-9\x{ff10}-\x{ff19}"; } - else { $match = $this->CJKleading; } - while(preg_match("/[".$match."$]/u", $m1) && mb_strlen($m1, $this->mb_enc)>2) { - $m0 = mb_substr($m1,$mi-1,1,$this->mb_enc ).$m0; // chars to move - $m1 = mb_substr($m1,0,$mi-1,$this->mb_enc ); // str after stripped chars to move - $mi--; - } - // Insert $m0 into $word at $i - $word = mb_substr($word,0,$i,$this->mb_enc ) . $m0 . mb_substr($word,$i,mb_strlen($word, $this->mb_enc )-$i,$this->mb_enc ); - $mlen = mb_strlen($word, $this->mb_enc ); // increment max for loop counter - } - - - - } -/*-- END CJK-FONTS --*/ - - if ($text && $firstchunk) { - // END OF LINE - // Finalise & add lineheight - $maxfontsize = max($maxfontsize,$this->FontSize); - $fh = $this->_computeLineheight($this->table_lineheight); - if ($lhfixed && $this->FontSize > $def_fontsize) { - $fh = $this->FontSize; - $forceExactLineheight = false; - } - $maxlineHeight = max($maxlineHeight,$fh); - $ch += $this->finaliseCellLineHeight($lhxt, $maxfontsize, $maxlineHeight, $lhfixed, $forceExactLineheight); - // START OF NEW LINE - // Initialise lineheight variables - $maxfontsize = $this->FontSize; - $forceExactLineheight = true; - $lhxt = array('BS'=>0, 'M'=>0, 'TT'=>0, 'TB'=>0, 'T'=>0, 'B'=>0); - $maxlineHeight = $this->_computeLineheight($this->table_lineheight); - $ln++; - } - // END OF LINE - // Finalise & add lineheight - $maxfontsize = max($maxfontsize,$this->FontSize); - $fh = $this->_computeLineheight($this->table_lineheight); - if ($lhfixed && $this->FontSize > $def_fontsize) { - $fh = $this->FontSize; - $forceExactLineheight = false; - } - $maxlineHeight = max($maxlineHeight,$fh); - $ch += $this->finaliseCellLineHeight($lhxt, $maxfontsize, $maxlineHeight, $lhfixed, $forceExactLineheight); - // START OF NEW LINE - // Initialise lineheight variables - $maxfontsize = $this->FontSize; - $forceExactLineheight = true; - $lhxt = array('BS'=>0, 'M'=>0, 'TT'=>0, 'TB'=>0, 'T'=>0, 'B'=>0); - $maxlineHeight = $this->_computeLineheight($this->table_lineheight); - $ln++; - $mxw = $maxwidth; - $text = mb_substr($word,0,$i,$this->mb_enc ); - $word = mb_substr($word,$i,mb_strlen($word, $this->mb_enc )-$i,$this->mb_enc ); - $wordwidth = $this->GetStringWidth($word); - $width = 0; - $firstchunk=false; - break; - } - } - if (mb_strlen($word, $this->mb_enc )<2 && $wordwidth > $maxwidth + 0.0001) { - $wordwidth = $maxwidth - 0.0001; - if ($this->debug) { $this->Error("Table cell width calculated less than that needed for single character!"); } - } - $firstchunk=false; - } - } - // Word fits on line... - if ($width + $wordwidth < $maxwidth + 0.0001) { - $mxw = max($mxw, ($width+$wordwidth)); - $width += $wordwidth + $space; - $text .= $word.' '; - } - // Word does not fit on line... - else { - // mPDF 5.6.21 hard hyphens - if ($this->textparam['hyphens'] != 2 && preg_match('/\-/',$word)) { - list($hardsuccess,$pre,$post,$prelength) = $this->hardHyphenate($word, ($maxwidth - $width)-$this->GetCharWidth("-", false)); - if ($hardsuccess) { - $text .= $pre.'-'; - $word = $post; - $wordwidth = $this->GetStringWidth($word); - if ($k==(count($words)-1)) { $wordwidth += $rbw; } - } - } -/*-- HYPHENATION --*/ - // Soft Hyphens chr(173) - else if ($this->textparam['hyphens'] != 2 && (!$this->usingCoreFont && preg_match("/\xc2\xad/",$word)) || ($this->usingCoreFont && preg_match("/".chr(173)."/",$word) && ($this->FontFamily!='csymbol' && $this->FontFamily!='czapfdingbats')) ) { // mPDF 5.6.06 5.6.08 - list($success,$pre,$post,$prelength) = $this->softHyphenate($word, ($maxwidth - $width)); - if ($success) { - $text .= $pre.'-'; - $word = $post; - $wordwidth = $this->GetStringWidth($word); - if ($k==(count($words)-1)) { $wordwidth += $rbw; } - } - } - else if ($this->textparam['hyphens'] == 1) { // mPDF 5.6.06 5.6.08 - list($success,$pre,$post,$prelength) = $this->hyphenateWord($word, ($maxwidth - $width)); - if ($success) { - $text .= $pre.'-'; - $word = $post; - $wordwidth = $this->GetStringWidth($word); - if ($k==(count($words)-1)) { $wordwidth += $rbw; } - } - } -/*-- END HYPHENATION --*/ - - - // mPDF 5.6.22 - if ( count($textbuffer)>1 && $cctr > 0 && $k==0 - && (substr($textbuffer[$cctr][0],0,3) != "\xbb\xa4\xac") - && (substr($textbuffer[$cctr-1][0],0,3) != "\xbb\xa4\xac") - && substr($textbuffer[$cctr-1][0],-1,1) != ' ' - && substr($textbuffer[$cctr][0],0,1) != ' ' - ) { - // Go back to find a space in a previous chunk of content - $found = false; - for ($ix=$cctr-1;$ix>=0;$ix--) { - if (preg_match('/[ ]/',$textbuffer[$ix][0])) { $found = $ix; break; } - } - if ($found !== false) { - $charpos = strrpos($textbuffer[$found][0],' '); - // mPDF 5.6.24 - $a1 = $a2 = $textbuffer[$found]; - $a1[0] = "\n"; - $a2[0] = substr($textbuffer[$found][0], $charpos+1, strlen($textbuffer[$found][0])-$charpos); - $textbuffer[$found][0] = substr($textbuffer[$found][0], 0, $charpos); - array_insert($textbuffer, $a1, $found+1); - array_insert($textbuffer, $a2, $found+2); - // Initialise all variables - $biggestword=0; - $toonarrow=false; - $lhfixed = false; - if (preg_match('/([0-9.,]+)mm/',$this->table_lineheight)) { $lhfixed = true; } - if ($lhfixed) { $def_lineheight = $this->_computeLineheight($this->table_lineheight, $def_fontsize);} - else { $def_lineheight = 0; } - $maxfontsize = 0; - $forceExactLineheight = true; - $lhxt = array('BS'=>0, 'M'=>0, 'TT'=>0, 'TB'=>0, 'T'=>0, 'B'=>0); - $maxlineHeight = $def_lineheight ; - $ch = 0; - $width = 0; - $ln = 1; // Counts line number - $mxw = $this->GetCharWidth('W',false); - $text = ''; - - $cctr = -1; - break; - } - } - - // END OF LINE - // Finalise & add lineheight - $maxfontsize = max($maxfontsize,$this->FontSize); - $fh = $this->_computeLineheight($this->table_lineheight); - if ($lhfixed && $this->FontSize > $def_fontsize) { - $fh = $this->FontSize; - $forceExactLineheight = false; - } - $maxlineHeight = max($maxlineHeight,$fh); - $ch += $this->finaliseCellLineHeight($lhxt, $maxfontsize, $maxlineHeight, $lhfixed, $forceExactLineheight); - $mxw = $maxwidth; - // START OF NEW LINE - // Initialise lineheight variables - $maxfontsize = $this->FontSize; - $forceExactLineheight = true; - $lhxt = array('BS'=>0, 'M'=>0, 'TT'=>0, 'TB'=>0, 'T'=>0, 'B'=>0); - $maxlineHeight = $this->_computeLineheight($this->table_lineheight); - $ln++; - $width = $wordwidth + $space; - $text = $word.' '; - } - $maxfontsize = max($maxfontsize,$this->FontSize); - $fh = $this->_computeLineheight($this->table_lineheight); - if ($lhfixed && $this->FontSize > $def_fontsize) { - $fh = $this->FontSize; - $forceExactLineheight = false; - } - $maxlineHeight = max($maxlineHeight,$fh); - } - - // End of textbuffer chunk - if (!$lsend) { - $width -= $space; - $text = rtrim($text); - } - - // RESET FONT SIZE/STYLE - // RESETTING VALUES - //Now we must deactivate what we have used - if(isset($chunk[2]) and $chunk[2] != '') { - $this->ResetStyles(); - } - if(isset($chunk[4]) and $chunk[4] != '') { - $this->SetFont($this->default_font,$this->FontStyle,0,false); - } - if(isset($chunk[11]) and $chunk[11] != '') { - $this->SetFontSize($this->default_font_size,false); - } - $this->spanborddet = array(); - $this->kerning = false; - $this->lSpacingCSS = ''; - $this->wSpacingCSS = ''; - $this->fixedlSpacing = false; - $this->minwSpacing = 0; - } - // Finalise lineheight if something output on line and add - if ($width) { - $ch += $this->finaliseCellLineHeight($lhxt, $maxfontsize, $maxlineHeight, $lhfixed, $forceExactLineheight); - } - if ($returnarray) { return array($ch,$ln,$mxw); } - else { return $ch; } - -} - - -function TableCheckMinWidth($maxwidth, $forcewrap = 0, $textbuffer) { - $biggestword=0; - $toonarrow=false; - if ((count($textbuffer) == 0) or ((count($textbuffer) == 1) && ($textbuffer[0][0] == ''))) { return 0; } - - foreach ($textbuffer as $chunk) { - - $line = $chunk[0]; - // mPDF ITERATION - if ($this->iterationCounter) $line = preg_replace('/{iteration ([a-zA-Z0-9_]+)}/','\\1', $line); - - // IMAGES & FORM ELEMENTS - if (substr($line,0,3) == "\xbb\xa4\xac") { //inline object - FORM element or IMAGE! - $objattr = $this->_getObjAttr($line); - if ($objattr['type']!='hr' && isset($objattr['width']) && ($objattr['width']/$this->shrin_k) > ($maxwidth + 0.0001) ) { - if (($objattr['width']/$this->shrin_k) > $biggestword) { $biggestword = ($objattr['width']/$this->shrin_k); } - $toonarrow=true; - } - continue; - } - - if ($line == "\n") { - continue; - } - $line = trim($line ); - // SET FONT SIZE/STYLE from $chunk[n] - - // FONTSIZE - if(isset($chunk[11]) and $chunk[11] != '') { - if ($this->shrin_k) { - $this->SetFontSize($chunk[11]/$this->shrin_k,false); - } - else { - $this->SetFontSize($chunk[11],false); - } - } - // FONTFAMILY - if(isset($chunk[4]) and $chunk[4] != '') { $font = $this->SetFont($chunk[4],$this->FontStyle,0,false); } - // B I U - if(isset($chunk[2]) and $chunk[2] != '') { - $this->SetStyles($chunk[2]); - } - - $lbw = $rbw = 0; // Border widths - if(isset($chunk[16]) && !empty($chunk[16])) { //Border - $this->spanborddet = $chunk[16]; - $lbw = $this->spanborddet['L']['w']; - $rbw = $this->spanborddet['R']['w']; - } - if(isset($chunk[15])) { // Word spacing - $this->wSpacingCSS = $chunk[15]; - if ($this->wSpacingCSS && strtoupper($this->wSpacingCSS) != 'NORMAL') { - $this->minwSpacing = $this->ConvertSize($this->wSpacingCSS,$this->FontSize)/$this->shrin_k; // mPDF 5.7.3 - } - } - if(isset($chunk[14])) { // Letter spacing - $this->lSpacingCSS = $chunk[14]; - if (($this->lSpacingCSS || $this->lSpacingCSS==='0') && strtoupper($this->lSpacingCSS) != 'NORMAL') { - $this->fixedlSpacing = $this->ConvertSize($this->lSpacingCSS,$this->FontSize)/$this->shrin_k; // mPDF 5.7.3 - } - } - if(isset($chunk[13])) { // Font Kerning - $this->kerning = $chunk[13]; - } - - $words = explode(' ', $line); - foreach ($words as $k=>$word) { - $word = trim($word); - $wordwidth = $this->GetStringWidth($word); - if ($k==0) { $wordwidth += $lbw; } - if ($k==(count($words)-1)) { $wordwidth += $rbw; } - - //Warn user that maxwidth is insufficient - if ($wordwidth > $maxwidth + 0.0001) { - if ($wordwidth > $biggestword) { $biggestword = $wordwidth; } - $toonarrow=true; - } - } - - // RESET FONT SIZE/STYLE - // RESETTING VALUES - //Now we must deactivate what we have used - if(isset($chunk[2]) and $chunk[2] != '') { - $this->ResetStyles(); - } - if(isset($chunk[4]) and $chunk[4] != '') { - $this->SetFont($this->default_font,$this->FontStyle,0,false); - } - if(isset($chunk[11]) and $chunk[11] != '') { - $this->SetFontSize($this->default_font_size,false); - } - $this->spanborddet = array(); - $this->kerning = false; - $this->lSpacingCSS = ''; - $this->wSpacingCSS = ''; - $this->fixedlSpacing = false; - $this->minwSpacing = 0; - } - - //Return -(wordsize) if word is bigger than maxwidth - // ADDED - if (($toonarrow) && ($this->table_error_report)) { - $this->Error("Word is too long to fit in table - ".$this->table_error_report_param); - } - if ($toonarrow) return -$biggestword; - else return 1; -} - -function shrinkTable(&$table,$k) { - $table['border_spacing_H'] /= $k; - $table['border_spacing_V'] /= $k; - - $table['padding']['T'] /= $k; - $table['padding']['R'] /= $k; - $table['padding']['B'] /= $k; - $table['padding']['L'] /= $k; - - $table['margin']['T'] /= $k; - $table['margin']['R'] /= $k; - $table['margin']['B'] /= $k; - $table['margin']['L'] /= $k; - - $table['border_details']['T']['w'] /= $k; - $table['border_details']['R']['w'] /= $k; - $table['border_details']['B']['w'] /= $k; - $table['border_details']['L']['w'] /= $k; - - if (isset($table['max_cell_border_width']['T'])) $table['max_cell_border_width']['T'] /= $k; - if (isset($table['max_cell_border_width']['R'])) $table['max_cell_border_width']['R'] /= $k; - if (isset($table['max_cell_border_width']['B'])) $table['max_cell_border_width']['B'] /= $k; - if (isset($table['max_cell_border_width']['L'])) $table['max_cell_border_width']['L'] /= $k; - - if ($this->simpleTables){ - $table['simple']['border_details']['T']['w'] /= $k; - $table['simple']['border_details']['R']['w'] /= $k; - $table['simple']['border_details']['B']['w'] /= $k; - $table['simple']['border_details']['L']['w'] /= $k; - } - - $table['miw'] /= $k; - $table['maw'] /= $k; - - if ($this->cacheTables) { $fh = fopen($table['cache'], "r+b"); } - - for($j = 0 ; $j < $table['nc'] ; $j++ ) { //columns - - $table['wc'][$j]['miw'] /= $k; - $table['wc'][$j]['maw'] /= $k; - - // mPDF 5.6.13 - if (isset($table['decimal_align'][$j]['maxs0']) && $table['decimal_align'][$j]['maxs0']) { $table['decimal_align'][$j]['maxs0'] /= $k; } - if (isset($table['decimal_align'][$j]['maxs1']) && $table['decimal_align'][$j]['maxs1']) { $table['decimal_align'][$j]['maxs1'] /= $k; } - - if (isset($table['wc'][$j]['absmiw']) && $table['wc'][$j]['absmiw'] ) $table['wc'][$j]['absmiw'] /= $k; - - for($i = 0 ; $i < $table['nr']; $i++ ) { //rows - if ($this->cacheTables) { - $c = $this->_uncacheCell($table['cells'][$i][$j], '', $fh); - } - else - $c = &$table['cells'][$i][$j]; - if (isset($c) && $c) { - if (!$this->simpleTables){ - if ($this->packTableData) { - $cell = $this->_unpackCellBorder($c['borderbin'] ); - $cell['border_details']['T']['w'] /= $k; - $cell['border_details']['R']['w'] /= $k; - $cell['border_details']['B']['w'] /= $k; - $cell['border_details']['L']['w'] /= $k; - $cell['border_details']['mbw']['TL'] /= $k; - $cell['border_details']['mbw']['TR'] /= $k; - $cell['border_details']['mbw']['BL'] /= $k; - $cell['border_details']['mbw']['BR'] /= $k; - $cell['border_details']['mbw']['LT'] /= $k; - $cell['border_details']['mbw']['LB'] /= $k; - $cell['border_details']['mbw']['RT'] /= $k; - $cell['border_details']['mbw']['RB'] /= $k; - $c['borderbin'] = $this->_packCellBorder($cell); - } - else { - $c['border_details']['T']['w'] /= $k; - $c['border_details']['R']['w'] /= $k; - $c['border_details']['B']['w'] /= $k; - $c['border_details']['L']['w'] /= $k; - $c['border_details']['mbw']['TL'] /= $k; - $c['border_details']['mbw']['TR'] /= $k; - $c['border_details']['mbw']['BL'] /= $k; - $c['border_details']['mbw']['BR'] /= $k; - $c['border_details']['mbw']['LT'] /= $k; - $c['border_details']['mbw']['LB'] /= $k; - $c['border_details']['mbw']['RT'] /= $k; - $c['border_details']['mbw']['RB'] /= $k; - } - } - $c['padding']['T'] /= $k; - $c['padding']['R'] /= $k; - $c['padding']['B'] /= $k; - $c['padding']['L'] /= $k; - $c['maxs'] /= $k; - if (isset($c['w'])) { $c['w'] /= $k; } - $c['s'] /= $k; - $c['maw'] /= $k; - $c['miw'] /= $k; - if (isset($c['h'])) { $c['h'] /= $k; } // mPDF 5.7.4 - if (isset($c['absmiw'])) $c['absmiw'] /= $k; - if (isset($c['nestedmaw'])) $c['nestedmaw'] /= $k; - if (isset($c['nestedmiw'])) $c['nestedmiw'] /= $k; - if (isset($c['textbuffer'])) { - foreach($c['textbuffer'] AS $n=>$tb) { - if (!empty($tb[16])) { - $c['textbuffer'][$n][16]['T']['w'] /= $k; - $c['textbuffer'][$n][16]['B']['w'] /= $k; - $c['textbuffer'][$n][16]['L']['w'] /= $k; - $c['textbuffer'][$n][16]['R']['w'] /= $k; - } - } - } - if ($this->cacheTables) { - $this->_cacheCell($c, '', "W", $fh, $table['cells'][$i][$j]); - } - unset($c); - } - }//rows - }//columns - if ($this->cacheTables) { fclose($fh); } -} - -function _cacheCell($c, $file, $mode="A", $fh=null, $offset=0) { // mode = Append or (over)Write (needs offset and fh) - // Requires either $file OR $fh (file_handle) - if (!is_array($c) || !isset($c)) { return ''; } - - if(isset($c['w'])) { $cw = $c['w']; } else { $cw = -1; } - if(isset($c['w0'])) { $cw0 = $c['w0']; } else { $cw0 = -1; } - if(isset($c['h0'])) { $ch0 = $c['h0']; } else { $ch0 = -1; } - - $data = pack("n2d19A1A1n2sA32A128", - $c['colspan'], /* n (16 bit; 2 bytes) [pos 0] */ - $c['rowspan'], /* n (16 bit; 2 bytes) [pos 2] */ - $c['s'], /* d NB machine-dependent size (64 bit; 8 bytes on test winOS) [pos 4] */ - $c['maxs'], /* d NB machine-dependent size [pos 4 + 1*D] */ - $c['nestedmaw'], /* d NB machine-dependent size [pos 4 + 2*D] */ - $c['nestedmiw'], /* d NB machine-dependent size [pos 4 + 3*D] */ - $c['padding']['L'], /* d NB machine-dependent size [pos 4 + 4*D] */ - $c['padding']['R'], /* d NB machine-dependent size [pos 4 + 5*D] */ - $c['padding']['T'], /* d NB machine-dependent size [pos 4 + 6*D] */ - $c['padding']['B'], /* d NB machine-dependent size [pos 4 + 7*D] */ - $c['dfs'], /* d NB machine-dependent size [pos 4 + 8*D] */ - $cw, /* d NB machine-dependent size [pos 4 + 9*D] */ - $c['h'], /* d NB machine-dependent size [pos 4 + 10*D] */ - $c['absmiw'], /* d NB machine-dependent size [pos 4 + 11*D] */ - $c['maw'], /* d NB machine-dependent size [pos 4 + 12*D] */ - $c['miw'], /* d NB machine-dependent size [pos 4 + 13*D] */ - $c['mih'], /* d NB machine-dependent size [pos 4 + 14*D] */ - $c['x0'], /* d NB machine-dependent size [pos 4 + 15*D] */ - $cw0, /* d NB machine-dependent size [pos 4 + 16*D] */ - $c['y0'], /* d NB machine-dependent size [pos 4 + 17*D] */ - $ch0, /* d NB machine-dependent size [pos 4 + 18*D] */ - $c['a'], /* A1 (1 byte) [pos 4 + 19*D] */ - $c['va'], /* A1 (1 byte) [pos 5 + 19*D] */ - $c['nowrap'], /* 1 or blank n (16 bit; 2 bytes) [pos 6 + 19*D] */ - $c['wpercent'], /* 0 - 100 n (16 bit; 2 bytes) [pos 8 + 19*D] */ - $c['R'], /* 90 or -90 s (16 bit; 2 bytes) [pos 10 + 19*D] */ - $c['bgcolor'], /* A32 (32 bytes) [pos 12 + 19*D] */ - $c['gradient'] /* A128 (128 bytes) [pos 44 + 19*D] */ - ); - - if ($c['background-image']) { - $data .= pack("n2d2A6A6n3dA4A128", - strlen($data), /* offset in main data to start of bgimage data */ - $c['background-image']['image_id'], /* n */ - $c['background-image']['orig_w'], /* d NB machine-dependent size */ - $c['background-image']['orig_h'], /* d NB machine-dependent size */ - $c['background-image']['x_pos'], /* A6 calc size or "50%" */ - $c['background-image']['y_pos'], /* A6 calc size or "50%" */ - $c['background-image']['x_repeat'], /* n true or false*/ - $c['background-image']['y_repeat'], /* n true or false */ - $c['background-image']['resize'], /* n 0 - 6 */ - $c['background-image']['opacity'], /* d 0-1 */ - $c['background-image']['itype'], /* A4 jpg etc */ - $c['background-image']['gradient'] /* A128 CSS string */ - ); - } - else $data .= pack("n",0); - $tb_offset = 2 + 186 + 2 + strlen($data); - $stb = serialize($c['textbuffer']).' '; // buffer to allow updating in reverseTableDir - $lentb = strlen($stb); - $data2 = pack("nA".$lentb, $lentb, $stb); - - $tempfh = true; - if ($mode=="W" && $offset) { - if (!$fh) { $fh = fopen($file, "r+b"); } // Overwrite (but not truncate) - else $tempfh = false; - fseek($fh, $offset); - } - else { - $fh = fopen($file, "ab"); // APPEND - } - fwrite($fh, pack("n",$tb_offset)); // Offset to Text buffer 2 bytes - fwrite($fh, $c['borderbin']); // border details 186 bytes - fwrite($fh, pack("n",strlen($data))); // Length of Main data - fwrite($fh, $data); // Main data - fwrite($fh, $data2); // Text buffer (starts with "n" length of text buffer) - if ($tempfh) fclose($fh); - return ($tb_offset + 2 + $lentb); -} - -function _cacheUpdateTxB($c, $fh, $offset) { - fseek($fh, $offset); - $tb_offset = $this->read_short($fh); // First entry = Offset to Text buffer 2 bytes - fseek($fh, ($tb_offset-2), SEEK_CUR); - $lentb = $this->read_short($fh); // First entry in textbuffer = Length of serialized textbuffer - do not update - $stb = serialize($c['textbuffer']); - fwrite($fh, pack("A".$lentb, $stb)); -} - -function _cacheUpdateBorder($c, $fh, $offset) { - $offset += 2; - fseek($fh, $offset); - fwrite($fh, $c['borderbin']); -} - -function _cacheUpdateMtx($c, $fh, $offset, $var) { - if ($var=='mih') { $offset += (2 + 186 + 2 + 4 + 14*_DSIZE); } - else if ($var=='x0') { $offset += (2 + 186 + 2 + 4 + 15*_DSIZE); } // x0 and w0 - else if ($var=='y0') { $offset += (2 + 186 + 2 + 4 + 17*_DSIZE); } // y0 and h0 - fseek($fh, $offset); - if ($var=='mih') { fwrite($fh, pack("d",$c['mih'])); } - else if ($var=='x0') { fwrite($fh, pack("d2",$c['x0'],$c['w0'])); } - else if ($var=='y0') { fwrite($fh, pack("d2",$c['y0'],$c['h0'])); } -} - -function _uncacheCell($ptr, $file, $fh) { - // Requires either $file or $fh (file_handle) - if ($ptr==0) { return null; } - if (is_array($ptr)) { $this->Error("Probable cause - missing end tag </td>. You may be able to change the configurable variable: allow_html_optional_endtags "); } - $tempfh = true; - if (!$fh) { $fh = fopen($file, "rb"); } - else $tempfh = false; - fseek($fh, $ptr); - $c = array(); - $tb_offset = $this->read_short($fh); // First entry = Offset to Text buffer 2 bytes - $c['borderbin'] = fread($fh,186); // border details 186 bytes - $maindatalen = $this->read_short($fh); // Length of Main data (2 bytes) - $str = fread($fh,$maindatalen ); // Main data - $data = unpack("ncolspan/nrowspan/ds/dmaxs/dnmaw/dnmiw/dpl/dpr/dpt/dpb/ddfs/dw/dh/dabsmiw/dmaw/dmiw/dmih/dx0/dw0/dy0/dh0/A1a/A1va/nnowrap/nwpercent/sR/A32bgcol/A128grad/nbgimage", $str); - - if ($data['colspan']>0) $c['colspan'] = $data['colspan']; /* n */ - if ($data['rowspan']>0) $c['rowspan'] = $data['rowspan']; /* n */ - $c['s'] = $data['s']; /* d NB machine-dependent size */ - $c['maxs'] = $data['maxs']; /* d NB machine-dependent size */ - if ($data['nmaw']>0) $c['nestedmaw'] = $data['nmaw']; /* d NB machine-dependent size */ - if ($data['nmiw']>0) $c['nestedmiw'] = $data['nmiw']; /* d NB machine-dependent size */ - $c['padding']['L'] = $data['pl']; /* d NB machine-dependent size */ - $c['padding']['R'] = $data['pr']; /* d NB machine-dependent size */ - $c['padding']['T'] = $data['pt']; /* d NB machine-dependent size */ - $c['padding']['B'] = $data['pb']; /* d NB machine-dependent size */ - $c['dfs'] = $data['dfs']; /* d NB machine-dependent size */ - if ($data['w']>=0) $c['w'] = $data['w']; /* d NB machine-dependent size */ - if ($data['h']>0) $c['h'] = $data['h']; /* d NB machine-dependent size */ - if ($data['absmiw']>0) $c['absmiw'] = $data['absmiw']; /* d NB machine-dependent size */ - if ($data['maw']>0) $c['maw'] = $data['maw']; /* d NB machine-dependent size */ - if ($data['miw']>0) $c['miw'] = $data['miw']; /* d NB machine-dependent size */ - if ($data['mih']>0) $c['mih'] = $data['mih']; /* d NB machine-dependent size */ - if ($data['w0']>=0) { $c['w0'] = $data['w0']; /* d NB machine-dependent size */ - $c['x0'] = $data['x0']; } /* d NB machine-dependent size */ - if ($data['h0']>=0) { $c['h0'] = $data['h0']; /* d NB machine-dependent size */ - $c['y0'] = $data['y0']; } /* d NB machine-dependent size */ - $c['a'] = trim($data['a']); /* A1 */ - $c['va'] = trim($data['va']); /* A1 */ - if ($data['nowrap']) $c['nowrap'] = $data['nowrap']; /* 1 or blank n */ - else $c['nowrap'] = false; - if ($data['wpercent']>0) $c['wpercent'] = $data['wpercent']; /* 0 - 100 n */ - if ($data['R']<>0) $c['R'] = $data['R']; /* 90 or -90 s */ - else $c['R'] = false; - $c['bgcolor'] = trim($data['bgcol']); /* A32 */ - if (trim($data['grad'])) - $c['gradient'] = trim($data['grad']); /* A128 */ - else $c['gradient'] = false; - if ($data['bgimage']>0) { - $bgidata = substr($str, ($data['bgimage']+2)); - $c['background-image'] = unpack("nimage_id/dorig_w/dorig_h/A6x_pos/A6y_pos/nx_repeat/ny_repeat/nresize/dopacity/A4itype/A128gradient", $bgidata); - } - - $tblen = $this->read_short($fh); // Length of Textbuffer - $tbsp = fread($fh,$tblen); // Textbuffer (serialised and packed) - $tbs = unpack("A".$tblen."textbuffer",$tbsp); // Textbuffer unpacked - $c['textbuffer'] = unserialize(trim($tbs['textbuffer'])); // Textbuffer unserialized - - if ($tempfh) { fclose($fh); } - return ($c); -} -function read_short(&$fh) { - $s = fread($fh,2); - $a = (ord($s[0])<<8) + ord($s[1]); - if ($a & (1 << 15) ) { - $a = ($a - (1 << 16)); - } - return $a; -} -function _backupCacheFiles() { - foreach($this->table AS $lvl=>$t) { - foreach($this->table[$lvl] AS $c=>$t2) { -///////////////////////////if (!file_exists($t2['cache'])) { echo $lvl; echo $c; print_r($this->table); exit; } - copy( $t2['cache'], $t2['cache'].'.bak'); - } - } -} -function _restoreCacheFiles() { - foreach($this->table AS $lvl=>$t) { - foreach($this->table[$lvl] AS $c=>$t2) { - copy( $t2['cache'].'.bak', $t2['cache']); - } - } -} - - -function _packCellBorder($cell) { - if (!is_array($cell) || !isset($cell)) { return ''; } - - if (!$this->packTableData) { return $cell; } - // = 186 bytes - $bindata = pack("nnda6A10nnda6A10nnda6A10nnda6A10nd9", - $cell['border'], - $cell['border_details']['R']['s'], - $cell['border_details']['R']['w'], - $cell['border_details']['R']['c'], - $cell['border_details']['R']['style'], - $cell['border_details']['R']['dom'], - - $cell['border_details']['L']['s'], - $cell['border_details']['L']['w'], - $cell['border_details']['L']['c'], - $cell['border_details']['L']['style'], - $cell['border_details']['L']['dom'], - - $cell['border_details']['T']['s'], - $cell['border_details']['T']['w'], - $cell['border_details']['T']['c'], - $cell['border_details']['T']['style'], - $cell['border_details']['T']['dom'], - - $cell['border_details']['B']['s'], - $cell['border_details']['B']['w'], - $cell['border_details']['B']['c'], - $cell['border_details']['B']['style'], - $cell['border_details']['B']['dom'], - - $cell['border_details']['mbw']['BL'], - $cell['border_details']['mbw']['BR'], - $cell['border_details']['mbw']['RT'], - $cell['border_details']['mbw']['RB'], - $cell['border_details']['mbw']['TL'], - $cell['border_details']['mbw']['TR'], - $cell['border_details']['mbw']['LT'], - $cell['border_details']['mbw']['LB'], - - $cell['border_details']['cellposdom'] - ); - return $bindata; -} - - - -function _getBorderWidths($bindata) { - if (!$bindata) { return array(0,0,0,0); } - if (!$this->packTableData) { return array($bindata['border_details']['T']['w'], $bindata['border_details']['R']['w'], $bindata['border_details']['B']['w'], $bindata['border_details']['L']['w']); } - - $bd = unpack("nbord/nrs/drw/a6rca/A10rst/nrd/nls/dlw/a6lca/A10lst/nld/nts/dtw/a6tca/A10tst/ntd/nbs/dbw/a6bca/A10bst/nbd/dmbl/dmbr/dmrt/dmrb/dmtl/dmtr/dmlt/dmlb/dcpd", $bindata); - $cell['border_details']['R']['w'] = $bd['rw']; - $cell['border_details']['L']['w'] = $bd['lw']; - $cell['border_details']['T']['w'] = $bd['tw']; - $cell['border_details']['B']['w'] = $bd['bw']; - return array($bd['tw'], $bd['rw'], $bd['bw'], $bd['lw']); -} - - -function _unpackCellBorder($bindata) { - if (!$bindata) { return array(); } - if (!$this->packTableData) { return $bindata; } - - $bd = unpack("nbord/nrs/drw/a6rca/A10rst/nrd/nls/dlw/a6lca/A10lst/nld/nts/dtw/a6tca/A10tst/ntd/nbs/dbw/a6bca/A10bst/nbd/dmbl/dmbr/dmrt/dmrb/dmtl/dmtr/dmlt/dmlb/dcpd", $bindata); - - $cell['border'] = $bd['bord']; - $cell['border_details']['R']['s'] = $bd['rs']; - $cell['border_details']['R']['w'] = $bd['rw']; - $cell['border_details']['R']['c'] = $bd['rca']; - $cell['border_details']['R']['style'] = trim($bd['rst']); - $cell['border_details']['R']['dom'] = $bd['rd']; - - $cell['border_details']['L']['s'] = $bd['ls']; - $cell['border_details']['L']['w'] = $bd['lw']; - $cell['border_details']['L']['c'] = $bd['lca']; - $cell['border_details']['L']['style'] = trim($bd['lst']); - $cell['border_details']['L']['dom'] = $bd['ld']; - - $cell['border_details']['T']['s'] = $bd['ts']; - $cell['border_details']['T']['w'] = $bd['tw']; - $cell['border_details']['T']['c'] = $bd['tca']; - $cell['border_details']['T']['style'] = trim($bd['tst']); - $cell['border_details']['T']['dom'] = $bd['td']; - - $cell['border_details']['B']['s'] = $bd['bs']; - $cell['border_details']['B']['w'] = $bd['bw']; - $cell['border_details']['B']['c'] = $bd['bca']; - $cell['border_details']['B']['style'] = trim($bd['bst']); - $cell['border_details']['B']['dom'] = $bd['bd']; - - $cell['border_details']['mbw']['BL'] = $bd['mbl']; - $cell['border_details']['mbw']['BR'] = $bd['mbr']; - $cell['border_details']['mbw']['RT'] = $bd['mrt']; - $cell['border_details']['mbw']['RB'] = $bd['mrb']; - $cell['border_details']['mbw']['TL'] = $bd['mtl']; - $cell['border_details']['mbw']['TR'] = $bd['mtr']; - $cell['border_details']['mbw']['LT'] = $bd['mlt']; - $cell['border_details']['mbw']['LB'] = $bd['mlb']; - $cell['border_details']['cellposdom'] = $bd['cpd']; - - return($cell); -} - - -////////////////////////TABLE CODE (from PDFTable)///////////////////////////////////// -////////////////////////TABLE CODE (from PDFTable)///////////////////////////////////// -////////////////////////TABLE CODE (from PDFTable)///////////////////////////////////// -//table Array of (w, h, bc, nr, wc, hr, cells) -//w Width of table -//h Height of table -//nc Number column -//nr Number row -//hr List of height of each row -//wc List of width of each column -//cells List of cells of each rows, cells[i][j] is a cell in the table -function _tableColumnWidth(&$table,$firstpass=false){ - $cs = &$table['cells']; - - $nc = $table['nc']; - $nr = $table['nr']; - $listspan = array(); - - if ($table['borders_separate']) { - $tblbw = $table['border_details']['L']['w'] + $table['border_details']['R']['w'] + $table['margin']['L'] + $table['margin']['R'] + $table['padding']['L'] + $table['padding']['R'] + $table['border_spacing_H']; - } - else { $tblbw = $table['max_cell_border_width']['L']/2 + $table['max_cell_border_width']['R']/2 + $table['margin']['L'] + $table['margin']['R']; } - - if ($this->cacheTables) { $fh = fopen($table['cache'], "r+b"); } - else { $fh = null; } - - // ADDED table['l'][colno] - // = total length of text approx (using $c['s']) in that column - used to approximately distribute col widths in _tableWidth - // - for($j = 0 ; $j < $nc ; $j++ ) { //columns - $wc = &$table['wc'][$j]; - for($i = 0 ; $i < $nr ; $i++ ) { //rows - if (isset($cs[$i][$j]) && $cs[$i][$j]) { - if ($this->cacheTables) { - $c = $this->_uncacheCell($table['cells'][$i][$j], '', $fh); - } - else - $c = &$cs[$i][$j]; - - if ($this->simpleTables){ - if ($table['borders_separate']) { // NB twice border width - $extrcw = $table['simple']['border_details']['L']['w'] + $table['simple']['border_details']['R']['w'] + $c['padding']['L'] + $c['padding']['R'] + $table['border_spacing_H']; - } - else { - $extrcw = $table['simple']['border_details']['L']['w']/2 + $table['simple']['border_details']['R']['w']/2 + $c['padding']['L'] + $c['padding']['R']; - } - } - else { - if ($this->packTableData) { - list($bt,$br,$bb,$bl) = $this->_getBorderWidths($c['borderbin']); - } - else { - $br = $c['border_details']['R']['w']; - $bl = $c['border_details']['L']['w']; - } - if ($table['borders_separate']) { // NB twice border width - $extrcw = $bl + $br + $c['padding']['L'] + $c['padding']['R'] + $table['border_spacing_H']; - } - else { - $extrcw = $bl/2 + $br/2 + $c['padding']['L'] + $c['padding']['R']; - } - } - //$mw = $this->GetStringWidth('W') + $extrcw ; - $mw = 0; - // mPDF 5.6.13 Decimal point alignment - if(substr($c['a'],0,1) == 'D') { - $mw = $table['decimal_align'][$j]['maxs0'] + $table['decimal_align'][$j]['maxs1'] + $extrcw ; - } - - $c['absmiw'] = $mw; - - if (isset($c['R']) && $c['R']) { - $c['maw'] = $c['miw'] = $this->FontSize + $extrcw ; - if (isset($c['w'])) { // If cell width is specified - if ($c['miw'] <$c['w']) { $c['miw'] = $c['w']; } - } - if (!isset($c['colspan'])) { - if ($wc['miw'] < $c['miw']) { $wc['miw'] = $c['miw']; } - if ($wc['maw'] < $c['maw']) { $wc['maw'] = $c['maw']; } - - if ($firstpass) { - if (isset($table['l'][$j]) ) { - $table['l'][$j] += $c['miw'] ; - } - else { - $table['l'][$j] = $c['miw'] ; - } - } - } - if ($c['miw'] > $wc['miw']) { $wc['miw'] = $c['miw']; } - if ($wc['miw'] > $wc['maw']) { $wc['maw'] = $wc['miw']; } - continue; - } - - if ($firstpass) { - if (isset($c['s'])) { $c['s'] += $extrcw; } - if (isset($c['maxs'])) { $c['maxs'] += $extrcw; } - if (isset($c['nestedmiw'])) { $c['nestedmiw'] += $extrcw; } - if (isset($c['nestedmaw'])) { $c['nestedmaw'] += $extrcw; } - } - - // If minimum width has already been set by a nested table or inline object (image/form), use it - if (isset($c['nestedmiw']) && $this->table[1][1]['overflow']!='visible') { $miw = $c['nestedmiw']; } - else { $miw = $mw; } - - if (isset($c['maxs']) && $c['maxs'] != '') { $c['s'] = $c['maxs']; } - - // If maximum width has already been set by a nested table, use it - if (isset($c['nestedmaw'])) { $c['maw'] = $c['nestedmaw']; } - else $c['maw'] = $c['s']; - - if (isset($table['overflow']) && $table['overflow']=='visible' && $table['level']==1) { - if (($c['maw'] + $tblbw) > $this->blk[$this->blklvl]['inner_width']) { - $c['maw'] = $this->blk[$this->blklvl]['inner_width'] - $tblbw; - } - } - - if (isset($c['nowrap']) && $c['nowrap']) { $miw = $c['maw']; } - - if (isset($c['wpercent']) && $firstpass) { - if (isset($c['colspan'])) { // Not perfect - but % set on colspan is shared equally on cols. - for($k=0;$k<$c['colspan'];$k++) { - $table['wc'][($j+$k)]['wpercent'] = $c['wpercent'] / $c['colspan']; - } - } - else { - if (isset($table['w']) && $table['w']) { $c['w'] = $c['wpercent']/100 * ($table['w'] - $tblbw ); } - $wc['wpercent'] = $c['wpercent']; - } - } - - if (isset($table['overflow']) && $table['overflow']=='visible' && $table['level']==1) { - if (($c['w'] + $tblbw) > $this->blk[$this->blklvl]['inner_width']) { - $c['w'] = $this->blk[$this->blklvl]['inner_width'] - $tblbw; - } - } - - - if (isset($c['w'])) { // If cell width is specified - if ($miw<$c['w']) { $c['miw'] = $c['w']; } // Cell min width = that specified - if ($miw>$c['w']) { $c['miw'] = $c['w'] = $miw; } // If width specified is less than minimum allowed (W) increase it - // mPDF 5.7.4 Do not set column width in colspan - // cf. http://www.mpdf1.com/forum/discussion/2221/colspan-bug - if (!isset($c['colspan'])) { - if (!isset($wc['w'])) { $wc['w'] = 1; } // If the Col width is not specified = set it to 1 - } - // mPDF 5.7.3 cf. http://www.mpdf1.com/forum/discussion/1648/nested-table-bug- - $c['maw'] = $c['w']; - } - else { $c['miw'] = $miw; } // If cell width not specified -> set Cell min width it to minimum allowed (W) - - if ($c['maw'] < $c['miw']) { $c['maw'] = $c['miw']; } // If Cell max width < Minwidth - increase it to = - if (!isset($c['colspan'])) { - if ($wc['miw'] < $c['miw']) { $wc['miw'] = $c['miw']; } // Update Col Minimum and maximum widths - if ($wc['maw'] < $c['maw']) { $wc['maw'] = $c['maw']; } - if ((isset($wc['absmiw']) && $wc['absmiw'] < $c['absmiw']) || !isset($wc['absmiw'])) { $wc['absmiw'] = $c['absmiw']; } // Update Col Minimum and maximum widths - - if (isset($table['l'][$j]) ) { - $table['l'][$j] += $c['s']; - } - else { - $table['l'][$j] = $c['s']; - } - - } - else { - $listspan[] = array($i,$j); - } - - //Check if minimum width of the whole column is big enough for largest word to fit - if (isset($c['textbuffer']) && (!isset($table['overflow']) || $table['overflow']!='wrap')) { // mPDF 5.5.11 - $minwidth = $this->TableCheckMinWidth($wc['miw']- $extrcw ,0,$c['textbuffer']); - } - else { $minwidth = 0; } - if ($minwidth < 0) { - //increase minimum width - if (!isset($c['colspan'])) { - $wc['miw'] = max($wc['miw'],((-$minwidth) + $extrcw) ); - } - else { - $c['miw'] = max($c['miw'],((-$minwidth) + $extrcw) ); - } - } - if (!isset($c['colspan'])) { - if ($wc['miw'] > $wc['maw']) { $wc['maw'] = $wc['miw']; } //update maximum width, if needed - } - if ($this->cacheTables) { - $this->_cacheCell($c, '', "W", $fh, $table['cells'][$i][$j]); - } - } - unset($c); - }//rows - }//columns - - // COLUMN SPANS - $wc = &$table['wc']; - foreach ($listspan as $span) { - list($i,$j) = $span; - if ($this->cacheTables) { - $c = $this->_uncacheCell($cs[$i][$j], '', $fh); - } - else - $c = &$cs[$i][$j]; - $lc = $j + $c['colspan']; - if ($lc > $nc) { $lc = $nc; } - $wis = $wisa = 0; - $was = $wasa = 0; - $list = array(); - for($k=$j;$k<$lc;$k++) { - if (isset($table['l'][$k]) ) { - if ($c['R']) { $table['l'][$k] += $c['miw']/$c['colspan'] ; } - else { $table['l'][$k] += $c['s']/$c['colspan']; } - } - else { - if ($c['R']) { $table['l'][$k] = $c['miw']/$c['colspan'] ; } - else { $table['l'][$k] = $c['s']/$c['colspan']; } - } - $wis += $wc[$k]['miw']; // $wis is the sum of the column miw in the colspan - $was += $wc[$k]['maw']; // $was is the sum of the column maw in the colspan - if (!isset($c['w'])) { - $list[] = $k; - $wisa += $wc[$k]['miw']; // $wisa is the sum of the column miw in cells with no width specified in the colspan - $wasa += $wc[$k]['maw']; // $wasa is the sum of the column maw in cells with no width specified in the colspan - } - } - if ($c['miw'] > $wis) { - if (!$wis) { - for($k=$j;$k<$lc;$k++) { $wc[$k]['miw'] = $c['miw']/$c['colspan']; } - } - else if (!count($list)) { - $wi = $c['miw'] - $wis; - for($k=$j;$k<$lc;$k++) { $wc[$k]['miw'] += ($wc[$k]['miw']/$wis)*$wi; } - } - else { - $wi = $c['miw'] - $wis; - // mPDF 5.7.2 Extra min width distributed proportionately to all cells in colspan without a specified width - // cf. http://www.mpdf1.com/forum/discussion/1607#Item_4 - foreach ($list as $k) { if (!isset($wc[$k]['w']) || !$wc[$k]['w']) $wc[$k]['miw'] += ($wc[$k]['miw']/$wisa)*$wi; } // mPDF 5.7.2 - } - } - if ($c['maw'] > $was) { - if (!$wis) { - for($k=$j;$k<$lc;$k++) { $wc[$k]['maw'] = $c['maw']/$c['colspan']; } - } - else if (!count($list)) { - $wi = $c['maw'] - $was; - for($k=$j;$k<$lc;$k++) { $wc[$k]['maw'] += ($wc[$k]['maw']/$was)*$wi; } - } - else { - $wi = $c['maw'] - $was; - // mPDF 5.7.4 Extra max width distributed evenly to all cells in colspan without a specified width - // cf. http://www.mpdf1.com/forum/discussion/2221/colspan-bug - foreach ($list as $k) { $wc[$k]['maw'] += $wi/count($list); } - } - } - unset($c); - } - - if ($this->cacheTables) { fclose($fh); } - - $checkminwidth = 0; - $checkmaxwidth = 0; - $totallength = 0; - - for( $i = 0 ; $i < $nc ; $i++ ) { - $checkminwidth += $table['wc'][$i]['miw']; - $checkmaxwidth += $table['wc'][$i]['maw']; - $totallength += $table['l'][$i]; - } - - if (!isset($table['w']) && $firstpass) { - $sumpc = 0; - $notset = 0; - for( $i = 0 ; $i < $nc ; $i++ ) { - if (isset($table['wc'][$i]['wpercent']) && $table['wc'][$i]['wpercent']) { - $sumpc += $table['wc'][$i]['wpercent']; - } - else { $notset++; } - } - - // If sum of widths as % >= 100% and not all columns are set - // Set a nominal width of 1% for unset columns - if ($sumpc >= 100 && $notset) { - for( $i = 0 ; $i < $nc ; $i++ ) { - if ((!isset($table['wc'][$i]['wpercent']) || !$table['wc'][$i]['wpercent']) && - (!isset($table['wc'][$i]['w']) || !$table['wc'][$i]['w'])) { - $table['wc'][$i]['wpercent'] = 1; - } - } - } - - - if ($sumpc) { // if any percents are set - $sumnonpc = (100 - $sumpc); - $sumpc = max($sumpc,100); - $miwleft = 0; - $miwleftcount = 0; - $miwsurplusnonpc = 0; - $maxcalcmiw = 0; - $mawleft = 0; - $mawleftcount = 0; - $mawsurplusnonpc = 0; - $maxcalcmaw = 0; - for( $i = 0 ; $i < $nc ; $i++ ) { - if (isset($table['wc'][$i]['wpercent'])) { - $maxcalcmiw = max($maxcalcmiw, ($table['wc'][$i]['miw'] * $sumpc /$table['wc'][$i]['wpercent']) ); - $maxcalcmaw = max($maxcalcmaw, ($table['wc'][$i]['maw'] * $sumpc /$table['wc'][$i]['wpercent']) ); - } - else { - $miwleft += $table['wc'][$i]['miw']; - $mawleft += $table['wc'][$i]['maw']; - if (!isset($table['wc'][$i]['w'])) { $miwleftcount++; $mawleftcount++; } - } - } - if ($miwleft && $sumnonpc > 0) { $miwnon = $miwleft * 100 / $sumnonpc; } - if ($mawleft && $sumnonpc > 0) { $mawnon = $mawleft * 100 / $sumnonpc; } - if (($miwnon > $checkminwidth || $maxcalcmiw > $checkminwidth) && $this->keep_table_proportions) { - if ($miwnon > $maxcalcmiw) { - $miwsurplusnonpc = round((($miwnon * $sumnonpc / 100) - $miwleft),3); - $checkminwidth = $miwnon; - } - else { $checkminwidth = $maxcalcmiw; } - for( $i = 0 ; $i < $nc ; $i++ ) { - if (isset($table['wc'][$i]['wpercent'])) { - $newmiw = $checkminwidth * $table['wc'][$i]['wpercent']/100; - if ($table['wc'][$i]['miw'] < $newmiw) { - $table['wc'][$i]['miw'] = $newmiw; - } - $table['wc'][$i]['w'] = 1; - } - else if ($miwsurplusnonpc && !$table['wc'][$i]['w']) { - $table['wc'][$i]['miw'] += $miwsurplusnonpc / $miwleftcount; - } - } - } - if (($mawnon > $checkmaxwidth || $maxcalcmaw > $checkmaxwidth )) { - if ($mawnon > $maxcalcmaw) { - $mawsurplusnonpc = round((($mawnon * $sumnonpc / 100) - $mawleft),3); - $checkmaxwidth = $mawnon; - } - else { $checkmaxwidth = $maxcalcmaw; } - for( $i = 0 ; $i < $nc ; $i++ ) { - if (isset($table['wc'][$i]['wpercent'])) { - $newmaw = $checkmaxwidth * $table['wc'][$i]['wpercent']/100; - if ($table['wc'][$i]['maw'] < $newmaw) { - $table['wc'][$i]['maw'] = $newmaw; - } - $table['wc'][$i]['w'] = 1; - } - else if ($mawsurplusnonpc && !$table['wc'][$i]['w']) { - $table['wc'][$i]['maw'] += $mawsurplusnonpc / $mawleftcount; - } - if ($table['wc'][$i]['maw'] < $table['wc'][$i]['miw']) { $table['wc'][$i]['maw'] = $table['wc'][$i]['miw']; } - } - } - if ($checkminwidth > $checkmaxwidth) { $checkmaxwidth = $checkminwidth; } - } - } - - if (isset($table['wpercent']) && $table['wpercent']) { - $checkminwidth *= (100 / $table['wpercent']); - $checkmaxwidth *= (100 / $table['wpercent']); - } - - - $checkminwidth += $tblbw ; - $checkmaxwidth += $tblbw ; - - // Table['miw'] set by percent in first pass may be larger than sum of column miw - if ((isset($table['miw']) && $checkminwidth > $table['miw']) || !isset($table['miw'])) { $table['miw'] = $checkminwidth; } - if ((isset($table['maw']) && $checkmaxwidth > $table['maw']) || !isset($table['maw'])) { $table['maw'] = $checkmaxwidth; } - $table['tl'] = $totallength ; - - if (!$this->tableCJK) { - if ($this->table_rotate) { - $mxw = $this->tbrot_maxw; - } - else { - $mxw = $this->blk[$this->blklvl]['inner_width']; - } - if(!isset($table['overflow'])) { $table['overflow'] = null; } - if ($table['overflow']=='visible') { - return array(0,0); - } - else if ($table['overflow']=='hidden' && !$this->table_rotate && !$this->ColActive && $checkminwidth > $mxw) { - $table['w'] = $table['miw']; - return array(0,0); - } - else if ($table['overflow']=='wrap') { return array(0,0); } - - if (isset($table['w']) && $table['w'] ) { - if ($table['w'] >= $checkminwidth && $table['w'] <= $mxw) { $table['maw'] = $mxw = $table['w']; } - else if ($table['w'] >= $checkminwidth && $table['w'] > $mxw && $this->keep_table_proportions) { $checkminwidth = $table['w']; } - else if ($table['w'] < $checkminwidth && $checkminwidth < $mxw && $this->keep_table_proportions) { $table['maw'] = $table['w'] = $checkminwidth; } // mPDF 5.7.4 - else { - unset($table['w']); - } - } - $ratio = $checkminwidth/$mxw; - if ($checkminwidth > $mxw) { return array(($ratio +0.001),$checkminwidth); } // 0.001 to allow for rounded numbers when resizing - } - unset($cs); - return array(0,0); -} - - - -function _tableWidth(&$table){ - $widthcols = &$table['wc']; - $numcols = $table['nc']; - $tablewidth = 0; - if ($table['borders_separate']) { - $tblbw = $table['border_details']['L']['w'] + $table['border_details']['R']['w'] + $table['margin']['L'] + $table['margin']['R'] + $table['padding']['L'] + $table['padding']['R'] + $table['border_spacing_H']; - } - else { $tblbw = $table['max_cell_border_width']['L']/2 + $table['max_cell_border_width']['R']/2 + $table['margin']['L'] + $table['margin']['R']; } - - if ($table['level']>1 && isset($table['w'])) { - if (isset($table['wpercent']) && $table['wpercent']) { - $table['w'] = $temppgwidth = (($table['w']-$tblbw) * $table['wpercent'] / 100) + $tblbw ; - } - else { - $temppgwidth = $table['w'] ; - } - } - else if ($this->table_rotate) { - $temppgwidth = $this->tbrot_maxw; - // If it is less than 1/20th of the remaining page height to finish the DIV (i.e. DIV padding + table bottom margin) - // then allow for this - $enddiv = $this->blk[$this->blklvl]['padding_bottom'] + $this->blk[$this->blklvl]['border_bottom']['w']; - if ($enddiv/$temppgwidth <0.05) { $temppgwidth -= $enddiv; } - } - else { - if (isset($table['w']) && $table['w']< $this->blk[$this->blklvl]['inner_width']) { - $notfullwidth = 1; - $temppgwidth = $table['w'] ; - } - else if ($table['overflow']=='visible' && $table['level'] ==1) { - $temppgwidth = null; - } - else if ($table['overflow']=='hidden' && !$this->ColActive && isset($table['w']) && $table['w'] > $this->blk[$this->blklvl]['inner_width'] && $table['w']==$table['miw']) { - //$temppgwidth = $this->blk[$this->blklvl]['inner_width']; - $temppgwidth = $table['w'] ; - } - else { $temppgwidth = $this->blk[$this->blklvl]['inner_width']; } - } - - - $totaltextlength = 0; // Added - to sum $table['l'][colno] - $totalatextlength = 0; // Added - to sum $table['l'][colno] for those columns where width not set - $percentages_set = 0; - for ( $i = 0 ; $i < $numcols ; $i++ ) { - if (isset($widthcols[$i]['wpercent'])) { $tablewidth += $widthcols[$i]['maw']; $percentages_set = 1; } - else if (isset($widthcols[$i]['w'])) { $tablewidth += $widthcols[$i]['miw']; } - else { $tablewidth += $widthcols[$i]['maw']; } - $totaltextlength += $table['l'][$i]; - } - if (!$totaltextlength) { $totaltextlength =1; } - $tablewidth += $tblbw; // Outer half of table borders - - if ($tablewidth > $temppgwidth) { - $table['w'] = $temppgwidth; - } - // if any widths set as percentages and max width fits < page width - else if ($tablewidth < $temppgwidth && !isset($table['w']) && $percentages_set) { - $table['w'] = $table['maw']; - } - // if table width is set and is > allowed width - if (isset($table['w']) && $table['w'] > $temppgwidth) { $table['w'] = $temppgwidth; } - - // IF the table width is now set - Need to distribute columns widths - // mPDF 5.7.3 - // If the table width is already set to the maximum width (e.g. nested table), then use maximum column widths exactly - if (isset($table['w']) && ($table['w'] == $tablewidth) && !$percentages_set) { - // This sets the columns all to maximum width - for ($i=0;$i<$numcols;$i++) { - $widthcols[$i] = $widthcols[$i]['maw']; - } - } - // Else If the table width is set distribute width using algorithm - else if (isset($table['w'])) { - $wis = $wisa = 0; - $list = array(); - $notsetlist = array(); - for( $i = 0 ; $i < $numcols ; $i++ ) { - $wis += $widthcols[$i]['miw']; - if (!isset($widthcols[$i]['w']) || ($widthcols[$i]['w'] && $table['w'] > $temppgwidth && !$this->keep_table_proportions && !$notfullwidth )){ - $list[] = $i; - $wisa += $widthcols[$i]['miw']; - $totalatextlength += $table['l'][$i]; - } - } - if (!$totalatextlength) { $totalatextlength =1; } - - // Allocate spare (more than col's minimum width) across the cols according to their approx total text length - // Do it by setting minimum width here - if ($table['w'] > $wis + $tblbw) { - // First set any cell widths set as percentages - if ($table['w'] < $temppgwidth || $this->keep_table_proportions) { - for($k=0;$k<$numcols;$k++) { - if (isset($widthcols[$k]['wpercent'])) { - $curr = $widthcols[$k]['miw']; - $widthcols[$k]['miw'] = ($table['w']-$tblbw) * $widthcols[$k]['wpercent']/100; - $wis += $widthcols[$k]['miw'] - $curr; - $wisa += $widthcols[$k]['miw'] - $curr; - } - } - } - // Now allocate surplus up to maximum width of each column - $surplus = 0; $ttl = 0; // number of surplus columns - if (!count($list)) { - $wi = ($table['w']-($wis + $tblbw)); // i.e. extra space to distribute - for($k=0;$k<$numcols;$k++) { - $spareratio = ($table['l'][$k] / $totaltextlength); // gives ratio to divide up free space - // Don't allocate more than Maximum required width - save rest in surplus - if ($widthcols[$k]['miw'] + ($wi * $spareratio) >= $widthcols[$k]['maw']) { // mPDF 5.7.3 - $surplus += ($wi * $spareratio) - ($widthcols[$k]['maw']-$widthcols[$k]['miw']); - $widthcols[$k]['miw'] = $widthcols[$k]['maw']; - } - else { - $notsetlist[] = $k; - $ttl += $table['l'][$k]; - $widthcols[$k]['miw'] += ($wi * $spareratio); - } - - } - } - else { - $wi = ($table['w'] - ($wis + $tblbw)); // i.e. extra space to distribute - foreach ($list as $k) { - $spareratio = ($table['l'][$k] / $totalatextlength); // gives ratio to divide up free space - // Don't allocate more than Maximum required width - save rest in surplus - if ($widthcols[$k]['miw'] + ($wi * $spareratio) >= $widthcols[$k]['maw']) { // mPDF 5.7.3 - $surplus += ($wi * $spareratio) - ($widthcols[$k]['maw']-$widthcols[$k]['miw']); - $widthcols[$k]['miw'] = $widthcols[$k]['maw']; - } - else { - $notsetlist[] = $k; - $ttl += $table['l'][$k]; - $widthcols[$k]['miw'] += ($wi * $spareratio); - } - } - } - // If surplus still left over apportion it across columns - if ($surplus) { - // if some are set only add to remaining - otherwise add to all of them - if (count($notsetlist) && count($notsetlist) < $numcols) { - foreach ($notsetlist AS $i) { - if ($ttl) $widthcols[$i]['miw'] += $surplus * $table['l'][$i] / $ttl ; - } - } - // If some widths are defined, and others have been added up to their maxmum - else if (count($list) && count($list) < $numcols) { - foreach ($list AS $i) { - $widthcols[$i]['miw'] += $surplus / count($list) ; - } - } - else if ($numcols) { // If all columns - $ttl = array_sum($table['l']); - for ($i=0;$i<$numcols;$i++) { - $widthcols[$i]['miw'] += $surplus * $table['l'][$i] / $ttl; - } - } - } - - } - - // This sets the columns all to minimum width (which has been increased above if appropriate) - for ($i=0;$i<$numcols;$i++) { - $widthcols[$i] = $widthcols[$i]['miw']; - } - - // TABLE NOT WIDE ENOUGH EVEN FOR MINIMUM CONTENT WIDTH - // If sum of column widths set are too wide for table - $checktablewidth = 0; - for ( $i = 0 ; $i < $numcols ; $i++ ) { - $checktablewidth += $widthcols[$i]; - } - if ($checktablewidth > ($temppgwidth + 0.001 - $tblbw)) { - $usedup = 0; $numleft = 0; - for ($i=0;$i<$numcols;$i++) { - if ((isset($widthcols[$i]) && $widthcols[$i] > (($temppgwidth - $tblbw) / $numcols)) && (!isset($widthcols[$i]['w']))) { - $numleft++; - unset($widthcols[$i]); - } - else { $usedup += $widthcols[$i]; } - } - for ($i=0;$i<$numcols;$i++) { - if (!isset($widthcols[$i]) || !$widthcols[$i]) { - $widthcols[$i] = ((($temppgwidth - $tblbw) - $usedup)/ ($numleft)); - } - } - } - } - else { //table has no width defined - $table['w'] = $tablewidth; - for ( $i = 0 ; $i < $numcols ; $i++) { - if (isset($widthcols[$i]['wpercent']) && $this->keep_table_proportions) { $colwidth = $widthcols[$i]['maw']; } - else if (isset($widthcols[$i]['w'])) { $colwidth = $widthcols[$i]['miw']; } - else { $colwidth = $widthcols[$i]['maw']; } - unset($widthcols[$i]); - $widthcols[$i] = $colwidth; - } - } - - if ($table['overflow']=='visible' && $table['level'] ==1) { - if ($tablewidth > $this->blk[$this->blklvl]['inner_width']) { - if ($this->cacheTables) { $fh = fopen($table['cache'], "r+b"); } - else { $fh = null; } - for ($j = 0 ; $j < $numcols; $j++) { //columns - for ($i = 0 ; $i < $table['nr']; $i++) { //rows - if (isset($table['cells'][$i][$j]) && $table['cells'][$i][$j]) { - if ($this->cacheTables) { - $cc = $this->_uncacheCell($table['cells'][$i][$j], '', $fh); - $colspan = $cc['colspan']; - } - else - $colspan = $table['cells'][$i][$j]['colspan']; - if ($colspan > 1) { - $w = 0; - for ($c = $j; $c < ($j + $colspan); $c++) { - $w += $widthcols[$c]; - } - if ($w > $this->blk[$this->blklvl]['inner_width']) { - $diff = $w - ($this->blk[$this->blklvl]['inner_width'] - $tblbw); - for ($c = $j; $c < ($j + $colspan); $c++) { - $widthcols[$c] -= $diff * ($widthcols[$c]/$w); - } - $table['w'] -= $diff; - $table['csp'][$j] = $w - $diff; - } - } - } - - } - } - if ($this->cacheTables) { fclose($fh); } - } - $pgNo = 0; - $currWc = 0; - for ($i = 0 ; $i < $numcols; $i++) { //columns - if (isset($table['csp'][$i])) { - $w = $table['csp'][$i]; - unset($table['csp'][$i]); - } - else { $w = $widthcols[$i]; } - if (($currWc + $w + $tblbw) > $this->blk[$this->blklvl]['inner_width']) { - $pgNo++; - $currWc = $widthcols[$i] ; - } - else { $currWc += $widthcols[$i] ; } - $table['colPg'][$i] = $pgNo; - } - } -} - - - -function _tableHeight(&$table){ - $level = $table['level']; - $levelid = $table['levelid']; - $cells = &$table['cells']; - $numcols = $table['nc']; - $numrows = $table['nr']; - $listspan = array(); - $checkmaxheight = 0; - $headerrowheight = 0; - $checkmaxheightplus = 0; - $headerrowheightplus = 0; - $firstrowheight = 0; - - $footerrowheight = 0; - $footerrowheightplus = 0; - if ($this->table_rotate) { - $temppgheight = $this->tbrot_maxh; - $remainingpage = $this->tbrot_maxh; - } - else { - $temppgheight = ($this->h - $this->bMargin - $this->tMargin) - $this->kwt_height; - $remainingpage = ($this->h - $this->bMargin - $this->y) - $this->kwt_height; - - // If it is less than 1/20th of the remaining page height to finish the DIV (i.e. DIV padding + table bottom margin) - // then allow for this - $enddiv = $this->blk[$this->blklvl]['padding_bottom'] + $this->blk[$this->blklvl]['border_bottom']['w'] + $table['margin']['B']; - if ($remainingpage > $enddiv && $enddiv/$remainingpage <0.05) { $remainingpage -= $enddiv; } - else if ($remainingpage == 0) { $remainingpage = 0.001; } - if ($temppgheight > $enddiv && $enddiv/$temppgheight <0.05) { $temppgheight -= $enddiv; } - else if ($temppgheight == 0) { $temppgheight = 0.001; } - } - if ($remainingpage < 0) { $remainingpage = 0.001; } // mPDF 5.6.64 - if ($temppgheight < 0) { $temppgheight = 0.001; } // mPDF 5.6.64 - - if ($this->cacheTables) { $fh = fopen($table['cache'], "r+b"); } - else { $fh = null; } - - for( $i = 0 ; $i < $numrows ; $i++ ) { //rows - $heightrow = &$table['hr'][$i]; - for( $j = 0 ; $j < $numcols ; $j++ ) { //columns - if (isset($cells[$i][$j]) && $cells[$i][$j]) { - if ($this->cacheTables) { - $c = $this->_uncacheCell($table['cells'][$i][$j], '', $fh); - } - else - $c = &$cells[$i][$j]; - - if ($this->simpleTables){ - if ($table['borders_separate']) { // NB twice border width - $extraWLR = ($table['simple']['border_details']['L']['w']+$table['simple']['border_details']['R']['w']) + ($c['padding']['L']+$c['padding']['R'])+$table['border_spacing_H']; - $extrh = ($table['simple']['border_details']['T']['w']+$table['simple']['border_details']['B']['w']) + ($c['padding']['T']+$c['padding']['B'])+$table['border_spacing_V']; - } - else { - $extraWLR = ($table['simple']['border_details']['L']['w']+$table['simple']['border_details']['R']['w'])/2 + ($c['padding']['L']+$c['padding']['R']); - $extrh = ($table['simple']['border_details']['T']['w']+$table['simple']['border_details']['B']['w'])/2 + ($c['padding']['T']+$c['padding']['B']); - } - } - else { - if ($this->packTableData) { - list($bt,$br,$bb,$bl) = $this->_getBorderWidths($c['borderbin']); - } - else { - $bt = $c['border_details']['T']['w']; - $bb = $c['border_details']['B']['w']; - $br = $c['border_details']['R']['w']; - $bl = $c['border_details']['L']['w']; - } - if ($table['borders_separate']) { // NB twice border width - $extraWLR = $bl + $br + $c['padding']['L'] + $c['padding']['R'] + $table['border_spacing_H']; - $extrh = $bt + $bb + $c['padding']['T'] + $c['padding']['B'] + $table['border_spacing_V']; - } - else { - $extraWLR = $bl/2 + $br/2 + $c['padding']['L'] + $c['padding']['R']; - $extrh = $bt/2 + $bb/2 + $c['padding']['T']+$c['padding']['B']; - } - } - - if ($table['overflow']=='visible' && $level==1) - list($x,$cw) = $this->_splitTableGetWidth($table, $i,$j, $fh); - else - list($x,$cw) = $this->_tableGetWidth($table, $i,$j, $fh); - - // Get CELL HEIGHT - // ++ extra parameter forces wrap to break word - if ($c['R'] && isset($c['textbuffer'])) { // mPDF 5.4.01 - $str = ''; - foreach($c['textbuffer'] AS $t) { $str .= $t[0].' '; } - $str = trim($str); - $s_fs = $this->FontSizePt; - $s_f = $this->FontFamily; - $s_st = $this->FontStyle; - $this->SetFont($c['textbuffer'][0][4],$c['textbuffer'][0][2],$c['textbuffer'][0][11] / $this->shrin_k,true,true); - $tempch = $this->GetStringWidth($str); - if ($c['R'] >= 45 && $c['R'] < 90) { - $tempch = ((sin(deg2rad($c['R']))) * $tempch ) + ((sin(deg2rad($c['R']))) * (($c['textbuffer'][0][11]/_MPDFK) / $this->shrin_k)); - } - $this->SetFont($s_f,$s_st,$s_fs,true,true); - $ch = ($tempch ) + $extrh ; - } - else { - if (isset($c['textbuffer'])) { - $tempch = $this->TableWordWrap(($cw-$extraWLR),1,$c['textbuffer'], $c['dfs']); - } - else { $tempch = 0; } - // Added cellpadding top and bottom. (Lineheight already adjusted to table_lineheight) - $ch = $tempch + $extrh ; - } - //If height is defined and it is bigger than calculated $ch then update values - if (isset($c['h']) && $c['h'] > $ch) { - $c['mih'] = $ch; //in order to keep valign working - $ch = $c['h']; - } - else $c['mih'] = $ch; - if ($this->cacheTables) { - $this->_cacheUpdateMtx($c, $fh, $table['cells'][$i][$j], 'mih'); - } - if (isset($c['rowspan'])) $listspan[] = array($i,$j); - elseif ($heightrow < $ch) $heightrow = $ch; - - // this is the extra used in _tableWrite to determine whether to trigger a page change - if ($table['borders_separate']) { - if ($i == ($numrows-1) || (isset($c['rowspan']) && ($i+$c['rowspan']) == ($numrows)) ) { - $extra = $table['margin']['B'] + $table['padding']['B'] + $table['border_details']['B']['w'] + $table['border_spacing_V']/2; - } - else { - $extra = $table['border_spacing_V']/2; - } - } - else { - if (!$this->simpleTables){ - $extra = $bb/2; - } - else if ($this->simpleTables){ - $extra = $table['simple']['border_details']['B']['w'] /2; - } - } - if (isset($table['is_thead'][$i]) && $table['is_thead'][$i]) { - if ($j==0) { - $headerrowheight += $ch; - $headerrowheightplus += $ch+$extra; - } - } - else if (isset($table['is_tfoot'][$i]) && $table['is_tfoot'][$i]) { - if ($j==0) { - $footerrowheight += $ch; - $footerrowheightplus += $ch+$extra; - } - } - else { - $checkmaxheight = max($checkmaxheight,$ch); - $checkmaxheightplus = max($checkmaxheightplus,$ch+$extra); - } - if ($this->tableLevel==1 && $i == $table['headernrows']) { $firstrowheight = max($ch,$firstrowheight); } - unset($c); - } - }//end of columns - }//end of rows - - $heightrow = &$table['hr']; - foreach ($listspan as $span) { - list($i,$j) = $span; - if ($this->cacheTables) { - $c = $this->_uncacheCell($table['cells'][$i][$j], '', $fh); - } - else - $c = &$cells[$i][$j]; - $lr = $i + $c['rowspan']; - if ($lr > $numrows) $lr = $numrows; - $hs = $hsa = 0; - $list = array(); - for($k=$i;$k<$lr;$k++) { - $hs += $heightrow[$k]; - if (!isset($c['h'])) { - $list[] = $k; - $hsa += $heightrow[$k]; - } - } - - if ($table['borders_separate']) { - if ($i == ($numrows-1) || ($i+$c['rowspan']) == ($numrows) ) { - $extra = $table['margin']['B'] + $table['padding']['B'] + $table['border_details']['B']['w'] + $table['border_spacing_V']/2; - } - else { - $extra = $table['border_spacing_V']/2; - } - } - else { - if (!$this->simpleTables){ - if ($this->packTableData) { - list($bt,$br,$bb,$bl) = $this->_getBorderWidths($c['borderbin']); - } - else { - $bb = $c['border_details']['B']['w']; - } - $extra = $bb/2; - } - else if ($this->simpleTables){ - $extra = $table['simple']['border_details']['B']['w'] /2; - } - } - if (!empty($table['is_thead'][$i])) { - $headerrowheight = max($headerrowheight,$hs); - $headerrowheightplus = max($headerrowheightplus,$hs+$extra); - } - else if (!empty($table['is_tfoot'][$i])) { - $footerrowheight = max($footerrowheight,$hs); - $footerrowheightplus = max($footerrowheightplus,$hs+$extra); - } - else { - $checkmaxheight = max($checkmaxheight,$hs); - $checkmaxheightplus = max($checkmaxheightplus,$hs+$extra); - } - if ($this->tableLevel==1 && $i == $table['headernrows']) { $firstrowheight = max($hs,$firstrowheight); } - - if ($c['mih'] > $hs) { - if (!$hs) { - for($k=$i;$k<$lr;$k++) $heightrow[$k] = $c['mih']/$c['rowspan']; - } - elseif (!count($list)) { - $hi = $c['mih'] - $hs; - for($k=$i;$k<$lr;$k++) $heightrow[$k] += ($heightrow[$k]/$hs)*$hi; - } - else { - $hi = $c['mih'] - $hsa; - foreach ($list as $k) $heightrow[$k] += ($heightrow[$k]/$hsa)*$hi; - } - } - unset($c); - - // If rowspans overlap so that one or more rows do not have a height set... - // i.e. for one or more rows, the only cells (explicit) in that row have rowspan>1 - // so heightrow is still == 0 - if ($heightrow[$i]==0) { - // Get row extent to analyse above and below - $top = $i; - foreach ($listspan as $checkspan) { - list($cki,$ckj) = $checkspan; - if ($this->cacheTables) { - $c = $this->_uncacheCell($table['cells'][$cki][$ckj], '', $fh); - } - else - $c = &$cells[$cki][$ckj]; - if (isset($c['rowspan']) && $c['rowspan']>1) { - if (($cki + $c['rowspan']-1) >= $i) { $top = min($top, $cki); } - } - } - $bottom = $i + $c['rowspan']-1; - // Check for overconstrained conditions - for ($k=$top; $k<=$bottom; $k++) { - // if ['hr'] for any of the others is also 0, then abort (too complicated) - if ($k != $i && $heightrow[$k]==0) { break(1); } - // check again that top and bottom are not crossed by rowspans - or abort (too complicated) - if ($k==$top) { - // ???? take account of colspan as well??? - for( $m = 0 ; $m < $numcols ; $m++ ) { //columns - if (!isset($cells[$k][$m]) || $cells[$k][$m]==0) { - break(2); - } - } - } - else if ($k==$bottom) { - // ???? take account of colspan as well??? - for( $m = 0 ; $m < $numcols ; $m++ ) { //columns - if ($this->cacheTables) { - $c = $this->_uncacheCell($table['cells'][$k][$m], '', $fh); - } - else - $c = &$cells[$k][$m]; - if (isset($c['rowspan']) && $c['rowspan']>1) { - break(2); - } - } - } - } - // By columns add up col height using ['h'] if set or ['mih'] if not - // Intentionally do not substract border-spacing - $colH = array(); - $extH = 0; - $newhr = array(); - for( $m = 0 ; $m < $numcols ; $m++ ) { //columns - for ($k=$top; $k<=$bottom; $k++) { - if (isset($cells[$k][$m]) && $cells[$k][$m]!=0) { - if ($this->cacheTables) { - $c = $this->_uncacheCell($table['cells'][$k][$m], '', $fh); - } - else - $c = &$cells[$k][$m]; - if (isset($c['h']) && $c['h']) { - $useh = $c['h']; - } - // ???? take account of colspan as well??? - else { - $useh = $c['mih']; - } - $colH[$m] += $useh; - if (!isset($c['rowspan']) || $c['rowspan']<2) { $newhr[$k] = max($newhr[$k], $useh); } - } - } - $extH = max($tabH, $colH[$m]); - } - $newhr[$i] = $extH - array_sum($newhr); - for ($k=$top; $k<=$bottom; $k++) { $heightrow[$k] = $newhr[$k]; } - } - - - unset($c); - } - - $table['h'] = array_sum($heightrow); - unset($heightrow); - - if ($this->cacheTables) { fclose($fh); } - - if ($table['borders_separate']) { - $table['h'] += $table['margin']['T'] + $table['margin']['B'] + $table['border_details']['T']['w'] + $table['border_details']['B']['w'] + $table['border_spacing_V'] + $table['padding']['T'] + $table['padding']['B']; - } - else { - $table['h'] += $table['margin']['T'] + $table['margin']['B'] + $table['max_cell_border_width']['T']/2 + $table['max_cell_border_width']['B']/2; - } - - $maxrowheight = $checkmaxheightplus + $headerrowheightplus + $footerrowheightplus; - $maxfirstrowheight = $firstrowheight + $headerrowheightplus + $footerrowheightplus; // includes thead, 1st row and tfoot - return array($table['h'],$maxrowheight,$temppgheight,$remainingpage,$maxfirstrowheight); -} - -function _tableGetWidth(&$table, $i,$j, $fh){ - if ($this->cacheTables) { - $cell = $this->_uncacheCell($table['cells'][$i][$j], '', $fh); - } - else - $cell = &$table['cells'][$i][$j]; - if ($cell) { - if (isset($cell['x0'])) { return array($cell['x0'], $cell['w0']); } - $x = 0; - $widthcols = &$table['wc']; - for( $k = 0 ; $k < $j ; $k++ ) $x += $widthcols[$k]; - $w = $widthcols[$j]; - if (isset($cell['colspan'])) { - for ( $k = $j+$cell['colspan']-1 ; $k > $j ; $k-- ) $w += $widthcols[$k]; - } - $cell['x0'] = $x; - $cell['w0'] = $w; - if ($this->cacheTables) { - $this->_cacheUpdateMtx($cell, $fh, $table['cells'][$i][$j], 'x0'); - } - return array($x, $w); - } - return array(0,0); -} - -function _splitTableGetWidth(&$table, $i,$j, $fh){ - if ($this->cacheTables) { - $cell = $this->_uncacheCell($table['cells'][$i][$j], '', $fh); - } - else - $cell = &$table['cells'][$i][$j]; - if ($cell) { - if (isset($cell['x0'])) return array($cell['x0'], $cell['w0']); - $x = 0; - $widthcols = &$table['wc']; - $pg = $table['colPg'][$j]; - for( $k = 0 ; $k < $j ; $k++ ) { - if ($table['colPg'][$k]==$pg) $x += $widthcols[$k]; - } - $w = $widthcols[$j]; - if (isset($cell['colspan'])) { - for ( $k = $j+$cell['colspan']-1 ; $k > $j ; $k-- ) if ($table['colPg'][$k]==$pg) $w += $widthcols[$k]; - } - $cell['x0'] = $x; - $cell['w0'] = $w; - if ($this->cacheTables) { - $this->_cacheUpdateMtx($cell, $fh, $table['cells'][$i][$j], 'x0'); - } - return array($x, $w); - } - return array(0,0); -} - - -function _tableGetHeight(&$table, $i,$j, $fh){ - if ($this->cacheTables) { - $cell = $this->_uncacheCell($table['cells'][$i][$j], '', $fh); - } - else - $cell = &$table['cells'][$i][$j]; - if ($cell){ - if (isset($cell['y0'])) return array($cell['y0'], $cell['h0']); - $y = 0; - $heightrow = &$table['hr']; - for ($k=0;$k<$i;$k++) $y += $heightrow[$k]; - $h = $heightrow[$i]; - if (isset($cell['rowspan'])){ - for ($k=$i+$cell['rowspan']-1;$k>$i;$k--) - $h += $heightrow[$k]; - } - $cell['y0'] = $y; - $cell['h0'] = $h; - if ($this->cacheTables) { - $this->_cacheUpdateMtx($cell, $fh, $table['cells'][$i][$j], 'y0'); - } - return array($y, $h); - } - return array(0,0); -} - -function _tableGetMaxRowHeight($table, $row, $fh) { - if ($row==$table['nc']-1) { return $table['hr'][$row]; } - $maxrowheight = $table['hr'][$row]; - for ($i=$row+1;$i<$table['nr'];$i++) { - $cellsset = 0; - for ($j=0;$j<$table['nc'];$j++) { - if ($this->cacheTables) { - $cell = $this->_uncacheCell($table['cells'][$i][$j], '', $fh); - if ($cell) { - if (isset($cell['colspan'])) { $cellsset += $cell['colspan']; } - else $cellsset += 1; - } - } - else { - if ($table['cells'][$i][$j]) { - if (isset($table['cells'][$i][$j]['colspan'])) { $cellsset += $table['cells'][$i][$j]['colspan']; } - else $cellsset += 1; - } - } - } - if ($cellsset == $table['nc']) { return $maxrowheight; } - else { $maxrowheight += $table['hr'][$i]; } - } - return $maxrowheight; -} - - -// CHANGED TO ALLOW TABLE BORDER TO BE SPECIFIED CORRECTLY - added border_details -function _tableRect($x, $y, $w, $h, $bord=-1, $details=array(), $buffer=false, $bSeparate=false, $cort='cell', $tablecorner='', $bsv=0, $bsh=0) { - $cellBorderOverlay = array(); - - if ($bord==-1) { $this->Rect($x, $y, $w, $h); } - else if ($this->simpleTables && ($cort=='cell')) { - $this->SetLineWidth($details['L']['w']); - if ($details['L']['c']) { - $this->SetDColor($details['L']['c']); - } - else { $this->SetDColor($this->ConvertColor(0)); } - $this->SetLineJoin(0); - $this->Rect($x, $y, $w, $h); - } - else if ($bord){ - if (!$bSeparate && $buffer) { - $priority = 'LRTB'; - for($p=0;$p<strlen($priority);$p++) { - $side = $priority[$p]; - $details['p'] = $side ; - - $dom = 0; - if (isset($details[$side]['w'])) { $dom += ($details[$side]['w'] * 100000); } - if (isset($details[$side]['style'])) { $dom += (array_search($details[$side]['style'],$this->borderstyles)*100) ; } - if (isset($details[$side]['dom'])) { $dom += ($details[$side]['dom']*10); } - - // Precedence to darker colours at joins - $coldom = 0; - if (isset($details[$side]['c']) && is_array($details[$side]['c'])) { - if ($details[$side]['c']{0}==3) { // RGB - $coldom = 10-(((ord($details[$side]['c']{1})*1.00)+(ord($details[$side]['c']{2})*1.00)+(ord($details[$side]['c']{3})*1.00))/76.5); - } - } // 10 black - 0 white - if ($coldom) { $dom += $coldom; } - // Lastly precedence to RIGHT and BOTTOM cells at joins - if (isset($details['cellposdom'])) { $dom += $details['cellposdom']; } - - $save = false; - if ($side == 'T' && $this->issetBorder($bord, _BORDER_TOP)) { $cbord = _BORDER_TOP; $save = true; } - else if ($side == 'L' && $this->issetBorder($bord, _BORDER_LEFT)) { $cbord = _BORDER_LEFT; $save = true; } - else if ($side == 'R' && $this->issetBorder($bord, _BORDER_RIGHT)) { $cbord = _BORDER_RIGHT; $save = true; } - else if ($side == 'B' && $this->issetBorder($bord, _BORDER_BOTTOM)) { $cbord = _BORDER_BOTTOM; $save = true; } - - if ($save) { - $this->cellBorderBuffer[] = pack("A16nCnda6A10d14", - str_pad(sprintf("%08.7f", $dom),16,"0",STR_PAD_LEFT), - $cbord, - ord($side), - $details[$side]['s'], - $details[$side]['w'], - $details[$side]['c'], - $details[$side]['style'], - $x, $y, $w, $h, - $details['mbw']['BL'], - $details['mbw']['BR'], - $details['mbw']['RT'], - $details['mbw']['RB'], - $details['mbw']['TL'], - $details['mbw']['TR'], - $details['mbw']['LT'], - $details['mbw']['LB'], - $details['cellposdom'], - 0 - ); - if ($details[$side]['style'] == 'ridge' || $details[$side]['style'] == 'groove' || $details[$side]['style'] == 'inset' || $details[$side]['style'] == 'outset' || $details[$side]['style'] == 'double' ) { - $details[$side]['overlay'] = true; - $this->cellBorderBuffer[] = pack("A16nCnda6A10d14", - str_pad(sprintf("%08.7f", ($dom+4)),16,"0",STR_PAD_LEFT), - $cbord, - ord($side), - $details[$side]['s'], - $details[$side]['w'], - $details[$side]['c'], - $details[$side]['style'], - $x, $y, $w, $h, - $details['mbw']['BL'], - $details['mbw']['BR'], - $details['mbw']['RT'], - $details['mbw']['RB'], - $details['mbw']['TL'], - $details['mbw']['TR'], - $details['mbw']['LT'], - $details['mbw']['LB'], - $details['cellposdom'], - 1 - ); - } - } - } - return; - } - - if (isset($details['p']) && strlen($details['p'])>1) { $priority = $details['p']; } - else { $priority='LTRB'; } - $Tw = 0; - $Rw = 0; - $Bw = 0; - $Lw = 0; - if (isset($details['T']['w'])) { $Tw = $details['T']['w']; } - if (isset($details['R']['w'])) { $Rw = $details['R']['w']; } - if (isset($details['B']['w'])) { $Bw = $details['B']['w']; } - if (isset($details['L']['w'])) { $Lw = $details['L']['w']; } - - $x2 = $x + $w; $y2 = $y + $h; - $oldlinewidth = $this->LineWidth; - - for($p=0;$p<strlen($priority);$p++) { - $side = $priority[$p]; - $xadj = 0; - $xadj2 = 0; - $yadj = 0; - $yadj2 = 0; - $print = false; - if ($Tw && $side=='T' && $this->issetBorder($bord, _BORDER_TOP)) { // TOP - $ly1 = $y; - $ly2 = $y; - $lx1 = $x; - $lx2 = $x2; - $this->SetLineWidth($Tw); - if ($cort == 'cell' || strpos($tablecorner,'L')!==false) { - if ($Tw > $Lw) $xadj = ($Tw - $Lw)/2; - if ($Tw < $Lw) $xadj = ($Tw + $Lw)/2; - } - else { $xadj = $Tw/2 - $bsh/2; } - if ($cort == 'cell' || strpos($tablecorner,'R')!==false) { - if ($Tw > $Rw) $xadj2 = ($Tw - $Rw)/2; - if ($Tw < $Rw) $xadj2 = ($Tw + $Rw)/2; - } - else { $xadj2 = $Tw/2 - $bsh/2; } - if (!$bSeparate && $details['mbw']['TL']) { - $xadj = ($Tw - $details['mbw']['TL'])/2 ; - } - if (!$bSeparate && $details['mbw']['TR']) { - $xadj2 = ($Tw - $details['mbw']['TR'])/2; - } - $print = true; - } - if ($Lw && $side=='L' && $this->issetBorder($bord, _BORDER_LEFT)) { // LEFT - $ly1 = $y; - $ly2 = $y2; - $lx1 = $x; - $lx2 = $x; - $this->SetLineWidth($Lw); - if ($cort == 'cell' || strpos($tablecorner,'T')!==false) { - if ($Lw > $Tw) $yadj = ($Lw - $Tw)/2; - if ($Lw < $Tw) $yadj = ($Lw + $Tw)/2; - } - else { $yadj = $Lw/2 - $bsv/2; } - if ($cort == 'cell' || strpos($tablecorner,'B')!==false) { - if ($Lw > $Bw) $yadj2 = ($Lw - $Bw)/2; - if ($Lw < $Bw) $yadj2 = ($Lw + $Bw)/2; - } - else { $yadj2 = $Lw/2 - $bsv/2; } - if (!$bSeparate && $details['mbw']['LT']) { - $yadj = ($Lw - $details['mbw']['LT'])/2; - } - if (!$bSeparate && $details['mbw']['LB']) { - $yadj2 = ($Lw - $details['mbw']['LB'])/2; - } - $print = true; - } - if ($Rw && $side=='R' && $this->issetBorder($bord, _BORDER_RIGHT)) { // RIGHT - $ly1 = $y; - $ly2 = $y2; - $lx1 = $x2; - $lx2 = $x2; - $this->SetLineWidth($Rw); - if ($cort == 'cell' || strpos($tablecorner,'T')!==false) { - if ($Rw < $Tw) $yadj = ($Rw + $Tw)/2; - if ($Rw > $Tw) $yadj = ($Rw - $Tw)/2; - } - else { $yadj = $Rw/2 - $bsv/2; } - - if ($cort == 'cell' || strpos($tablecorner,'B')!==false) { - if ($Rw > $Bw) $yadj2 = ($Rw - $Bw)/2; - if ($Rw < $Bw) $yadj2 = ($Rw + $Bw)/2; - } - else { $yadj2 = $Rw/2 - $bsv/2; } - - if (!$bSeparate && $details['mbw']['RT']) { - $yadj = ($Rw - $details['mbw']['RT'])/2; - } - if (!$bSeparate && $details['mbw']['RB']) { - $yadj2 = ($Rw - $details['mbw']['RB'])/2; - } - $print = true; - } - if ($Bw && $side=='B' && $this->issetBorder($bord, _BORDER_BOTTOM)) { // BOTTOM - $ly1 = $y2; - $ly2 = $y2; - $lx1 = $x; - $lx2 = $x2; - $this->SetLineWidth($Bw); - if ($cort == 'cell' || strpos($tablecorner,'L')!==false) { - if ($Bw > $Lw) $xadj = ($Bw - $Lw)/2; - if ($Bw < $Lw) $xadj = ($Bw + $Lw)/2; - } - else { $xadj = $Bw/2 - $bsh/2; } - if ($cort == 'cell' || strpos($tablecorner,'R')!==false) { - if ($Bw > $Rw) $xadj2 = ($Bw - $Rw)/2; - if ($Bw < $Rw) $xadj2 = ($Bw + $Rw)/2; - } - else { $xadj2 = $Bw/2 - $bsh/2; } - if (!$bSeparate && $details['mbw']['BL']) { - $xadj = ($Bw - $details['mbw']['BL'])/2; - } - if (!$bSeparate && $details['mbw']['BR']) { - $xadj2 = ($Bw - $details['mbw']['BR'])/2; - } - $print = true; - } - - // Now draw line - if ($print) { -/*-- TABLES-ADVANCED-BORDERS --*/ - if ($details[$side]['style'] == 'double') { - if (!isset($details[$side]['overlay']) || !$details[$side]['overlay'] || $bSeparate) { - if ($details[$side]['c']) { - $this->SetDColor($details[$side]['c']); - } - else { $this->SetDColor($this->ConvertColor(0)); } - $this->Line($lx1 + $xadj, $ly1 + $yadj, $lx2 - $xadj2, $ly2 - $yadj2); - } - if ((isset($details[$side]['overlay']) && $details[$side]['overlay']) || $bSeparate) { - if ($bSeparate && $cort=='table') { - if ($side=='T') { - $xadj -= $this->LineWidth/2; - $xadj2 -= $this->LineWidth; - if ($this->issetBorder($bord, _BORDER_LEFT)) { - $xadj += $this->LineWidth/2; - } - if ($this->issetBorder($bord, _BORDER_RIGHT)) { - $xadj2 += $this->LineWidth; - } - } - if ($side=='L') { - $yadj -= $this->LineWidth/2; - $yadj2 -= $this->LineWidth; - if ($this->issetBorder($bord, _BORDER_TOP)) { - $yadj += $this->LineWidth/2; - } - if ($this->issetBorder($bord, _BORDER_BOTTOM)) { - $yadj2 += $this->LineWidth; - } - } - if ($side=='B') { - $xadj -= $this->LineWidth/2; - $xadj2 -= $this->LineWidth; - if ($this->issetBorder($bord, _BORDER_LEFT)) { - $xadj += $this->LineWidth/2; - } - if ($this->issetBorder($bord, _BORDER_RIGHT)) { - $xadj2 += $this->LineWidth; - } - } - if ($side=='R') { - $yadj -= $this->LineWidth/2; - $yadj2 -= $this->LineWidth; - if ($this->issetBorder($bord, _BORDER_TOP)) { - $yadj += $this->LineWidth/2; - } - if ($this->issetBorder($bord, _BORDER_BOTTOM)) { - $yadj2 += $this->LineWidth; - } - } - } - - $this->SetLineWidth($this->LineWidth/3); - - $tbcol = $this->ConvertColor(255); - for($l=0; $l <= $this->blklvl; $l++) { - if ($this->blk[$l]['bgcolor']) { - $tbcol = ($this->blk[$l]['bgcolorarray']); // mPDF 5.6.53 - } - } - - if ($bSeparate) { - $cellBorderOverlay[] = array( - 'x' => $lx1 + $xadj, - 'y' => $ly1 + $yadj, - 'x2' => $lx2 - $xadj2, - 'y2' => $ly2 - $yadj2, - 'col' => $tbcol, - 'lw' => $this->LineWidth, - ); - } - else { - $this->SetDColor($tbcol); - $this->Line($lx1 + $xadj, $ly1 + $yadj, $lx2 - $xadj2, $ly2 - $yadj2); - } - } - } - - - else if (isset($details[$side]['style']) && ($details[$side]['style'] == 'ridge' || $details[$side]['style'] == 'groove' || $details[$side]['style'] == 'inset' || $details[$side]['style'] == 'outset')) { - if (!isset($details[$side]['overlay']) || !$details[$side]['overlay'] || $bSeparate) { - if ($details[$side]['c']) { - $this->SetDColor($details[$side]['c']); - } - else { $this->SetDColor($this->ConvertColor(0)); } - if ($details[$side]['style'] == 'outset' || $details[$side]['style'] == 'groove') { - $nc = $this->_darkenColor($details[$side]['c']); - $this->SetDColor($nc); - } - else if ($details[$side]['style'] == 'ridge' || $details[$side]['style'] == 'inset') { - $nc = $this->_lightenColor($details[$side]['c']); - $this->SetDColor($nc); - } - $this->Line($lx1 + $xadj, $ly1 + $yadj, $lx2 - $xadj2, $ly2 - $yadj2); - } - if ((isset($details[$side]['overlay']) && $details[$side]['overlay']) || $bSeparate) { - if ($details[$side]['c']) { - $this->SetDColor($details[$side]['c']); - } - else { $this->SetDColor($this->ConvertColor(0)); } - $doubleadj = ($this->LineWidth)/3; - $this->SetLineWidth($this->LineWidth/2); - $xadj3 = $yadj3 = $wadj3 = $hadj3 = 0; - - if ($details[$side]['style'] == 'ridge' || $details[$side]['style'] == 'inset') { - $nc = $this->_darkenColor($details[$side]['c']); - - if ($bSeparate && $cort=='table') { - if ($side=='T') { - $yadj3 = $this->LineWidth/2; - $xadj3 = -$this->LineWidth/2; - $wadj3 = $this->LineWidth; - if ($this->issetBorder($bord, _BORDER_LEFT)) { - $xadj3 += $this->LineWidth; $wadj3 -= $this->LineWidth; - } - if ($this->issetBorder($bord, _BORDER_RIGHT)) { - $wadj3 -= $this->LineWidth*2; - } - } - if ($side=='L') { - $xadj3 = $this->LineWidth/2; - $yadj3 = -$this->LineWidth/2; - $hadj3 = $this->LineWidth; - if ($this->issetBorder($bord, _BORDER_TOP)) { - $yadj3 += $this->LineWidth; $hadj3 -= $this->LineWidth; - } - if ($this->issetBorder($bord, _BORDER_BOTTOM)) { - $hadj3 -= $this->LineWidth*2; - } - } - if ($side=='B') { - $yadj3 = $this->LineWidth/2; - $xadj3 = -$this->LineWidth/2; - $wadj3 = $this->LineWidth; - } - if ($side=='R') { - $xadj3 = $this->LineWidth/2; - $yadj3 = -$this->LineWidth/2; - $hadj3 = $this->LineWidth; - } - } - - else if ($side=='T') { $yadj3 = $this->LineWidth/2; $xadj3 = $this->LineWidth/2; $wadj3 = -$this->LineWidth*2; } - else if ($side=='L') { $xadj3 = $this->LineWidth/2; $yadj3 = $this->LineWidth/2; $hadj3 = -$this->LineWidth*2; } - - else if ($side=='B' && $bSeparate) { $yadj3 = $this->LineWidth/2; $wadj3 = $this->LineWidth/2; } - else if ($side=='R' && $bSeparate) { $xadj3 = $this->LineWidth/2; $hadj3 = $this->LineWidth/2; } - - else if ($side=='B') { $yadj3 = $this->LineWidth/2; $xadj3 = $this->LineWidth/2; } - else if ($side=='R') { $xadj3 = $this->LineWidth/2; $yadj3 = $this->LineWidth/2; } - } - else { - $nc = $this->_lightenColor($details[$side]['c']); - - if ($bSeparate && $cort=='table') { - if ($side=='T') { - $yadj3 = $this->LineWidth/2; - $xadj3 = -$this->LineWidth/2; - $wadj3 = $this->LineWidth; - if ($this->issetBorder($bord, _BORDER_LEFT)) { - $xadj3 += $this->LineWidth; $wadj3 -= $this->LineWidth; - } - } - if ($side=='L') { - $xadj3 = $this->LineWidth/2; - $yadj3 = -$this->LineWidth/2; - $hadj3 = $this->LineWidth; - if ($this->issetBorder($bord, _BORDER_TOP)) { - $yadj3 += $this->LineWidth; $hadj3 -= $this->LineWidth; - } - } - if ($side=='B') { - $yadj3 = $this->LineWidth/2; - $xadj3 = -$this->LineWidth/2; - $wadj3 = $this->LineWidth; - if ($this->issetBorder($bord, _BORDER_LEFT)) { - $xadj3 += $this->LineWidth; $wadj3 -= $this->LineWidth; - } - } - if ($side=='R') { - $xadj3 = $this->LineWidth/2; - $yadj3 = -$this->LineWidth/2; - $hadj3 = $this->LineWidth; - if ($this->issetBorder($bord, _BORDER_TOP)) { - $yadj3 += $this->LineWidth; $hadj3 -= $this->LineWidth; - } - } - } - - else if ($side=='T') { $yadj3 = $this->LineWidth/2; $xadj3 = $this->LineWidth/2; } - else if ($side=='L') { $xadj3 = $this->LineWidth/2; $yadj3 = $this->LineWidth/2; } - - else if ($side=='B' && $bSeparate) { $yadj3 = $this->LineWidth/2; $xadj3 = $this->LineWidth/2; } - else if ($side=='R' && $bSeparate) { $xadj3 = $this->LineWidth/2; $yadj3 = $this->LineWidth/2; } - - else if ($side=='B') { $yadj3 = $this->LineWidth/2; $xadj3 = -$this->LineWidth/2; $wadj3 = $this->LineWidth; } - else if ($side=='R') { $xadj3 = $this->LineWidth/2; $yadj3 = -$this->LineWidth/2; $hadj3 = $this->LineWidth; } - - } - - if ($bSeparate) { - $cellBorderOverlay[] = array( - 'x' => $lx1 + $xadj + $xadj3, - 'y' => $ly1 + $yadj + $yadj3, - 'x2' => $lx2 - $xadj2 + $xadj3 + $wadj3, - 'y2' => $ly2 - $yadj2 + $yadj3 + $hadj3, - 'col' => $nc, - 'lw' => $this->LineWidth, - ); - } - else { - $this->SetDColor($nc); - $this->Line($lx1 + $xadj + $xadj3, $ly1 + $yadj + $yadj3, $lx2 - $xadj2 + $xadj3 + $wadj3, $ly2 - $yadj2 + $yadj3 + $hadj3); - } - } - } - - - else { -/*-- END TABLES-ADVANCED-BORDERS --*/ - if ($details[$side]['style'] == 'dashed') { - $dashsize = 2; // final dash will be this + 1*linewidth - $dashsizek = 1.5; // ratio of Dash/Blank - $this->SetDash($dashsize,($dashsize/$dashsizek)+($this->LineWidth*2)); - } - else if ($details[$side]['style'] == 'dotted') { - $this->SetLineJoin(1); - $this->SetLineCap(1); - $this->SetDash(0.001,($this->LineWidth*2)); - } - if ($details[$side]['c']) { - $this->SetDColor($details[$side]['c']); - } - else { $this->SetDColor($this->ConvertColor(0)); } - $this->Line($lx1 + $xadj, $ly1 + $yadj, $lx2 - $xadj2, $ly2 - $yadj2); -/*-- TABLES-ADVANCED-BORDERS --*/ - } -/*-- END TABLES-ADVANCED-BORDERS --*/ - - // Reset Corners - $this->SetDash(); - //BUTT style line cap - $this->SetLineCap(2); - } - } - - if ($bSeparate && count($cellBorderOverlay)) { - foreach($cellBorderOverlay AS $cbo) { - $this->SetLineWidth($cbo['lw']); - $this->SetDColor($cbo['col']); - $this->Line($cbo['x'], $cbo['y'], $cbo['x2'], $cbo['y2']); - } - } - - // $this->SetLineWidth($oldlinewidth); - // $this->SetDColor($this->ConvertColor(0)); - } -} - - -/*-- TABLES --*/ -/*-- TABLES-ADVANCED-BORDERS --*/ -function _lightenColor($c) { - if (is_array($c)) { die('Color error in _lightencolor'); } - if ($c{0}==3 || $c{0}==5) { // RGB - list($h,$s,$l) = $this->rgb2hsl(ord($c{1})/255,ord($c{2})/255,ord($c{3})/255); - $l += ((1 - $l)*0.8); - list($r,$g,$b) = $this->hsl2rgb($h,$s,$l); - $ret = array(3,$r,$g,$b); - } - else if ($c{0}==4 || $c{0}==6) { // CMYK - $ret = array(4, max(0,(ord($c{1})-20)), max(0,(ord($c{2})-20)), max(0,(ord($c{3})-20)), max(0,(ord($c{4})-20)) ); - } - else if ($c{0}==1) { // Grayscale - $ret = array(1,min(255,(ord($c{1})+32))); - } - $c = array_pad($ret, 6, 0); - $cstr = pack("a1ccccc", $c[0], ($c[1] & 0xFF), ($c[2] & 0xFF), ($c[3] & 0xFF), ($c[4] & 0xFF), ($c[5] & 0xFF) ); - return $cstr; -} - - -function _darkenColor($c) { - if (is_array($c)) { die('Color error in _darkenColor'); } - if ($c{0}==3 || $c{0}==5) { // RGB - list($h,$s,$l) = $this->rgb2hsl(ord($c{1})/255,ord($c{2})/255,ord($c{3})/255); - $s *= 0.25; - $l *= 0.75; - list($r,$g,$b) = $this->hsl2rgb($h,$s,$l); - $ret = array(3,$r,$g,$b); - } - else if ($c{0}==4 || $c{0}==6) { // CMYK - $ret = array(4, min(100,(ord($c{1})+20)), min(100,(ord($c{2})+20)), min(100,(ord($c{3})+20)), min(100,(ord($c{4})+20)) ); - } - else if ($c{0}==1) { // Grayscale - $ret = array(1,max(0,(ord($c{1})-32))); - } - $c = array_pad($ret, 6, 0); - $cstr = pack("a1ccccc", $c[0], ($c[1] & 0xFF), ($c[2] & 0xFF), ($c[3] & 0xFF), ($c[4] & 0xFF), ($c[5] & 0xFF) ); - return $cstr; -} - -/*-- END TABLES-ADVANCED-BORDERS --*/ - - - -function setBorder(&$var, $flag, $set = true) { - $flag = intval($flag); - if ($set) { $set = true; } - $var = intval($var); - $var = $set ? ($var | $flag) : ($var & ~$flag); -} -function issetBorder($var, $flag) { - $flag = intval($flag); - $var = intval($var); - return (($var & $flag) == $flag); -} - - -function _table2cellBorder(&$tableb, &$cbdb, &$cellb, $bval) { - if ($tableb && $tableb['w'] > $cbdb['w']) { - $cbdb = $tableb; - $this->setBorder($cellb, $bval); - } - else if ($tableb && $tableb['w'] == $cbdb['w'] - && array_search($tableb['style'],$this->borderstyles) > array_search($cbdb['style'],$this->borderstyles)) { - $cbdb = $tableb; - $this->setBorder($cellb, $bval); - } -} - -// FIX BORDERS ******************************************** -function _fixTableBorders(&$table){ - if ($this->cacheTables) { $fh = fopen($table['cache'], "r+b"); } - else { $fh = null; } - - if (!$table['borders_separate'] && $table['border_details']['L']['w']) { - $table['max_cell_border_width']['L'] = $table['border_details']['L']['w']; - } - if (!$table['borders_separate'] && $table['border_details']['R']['w']) { - $table['max_cell_border_width']['R'] = $table['border_details']['R']['w']; - } - if (!$table['borders_separate'] && $table['border_details']['T']['w']) { - $table['max_cell_border_width']['T'] = $table['border_details']['T']['w']; - } - if (!$table['borders_separate'] && $table['border_details']['B']['w']) { - $table['max_cell_border_width']['B'] = $table['border_details']['B']['w']; - } - if ($this->simpleTables) { return; } - $cells = &$table['cells']; - $numcols = $table['nc']; - $numrows = $table['nr']; -/*-- TABLES-ADVANCED-BORDERS --*/ - if (isset($table['topntail']) && $table['topntail']) { $tntborddet = $this->border_details($table['topntail']); } - if (isset($table['thead-underline']) && $table['thead-underline']) { $thuborddet = $this->border_details($table['thead-underline']); } -/*-- END TABLES-ADVANCED-BORDERS --*/ - - for( $i = 0 ; $i < $numrows ; $i++ ) { //Rows - for( $j = 0 ; $j < $numcols ; $j++ ) { //Columns - if (isset($cells[$i][$j]) && $cells[$i][$j]) { - if ($this->cacheTables) { - $cell = $this->_uncacheCell($table['cells'][$i][$j], '', $fh); - } - else - $cell = &$cells[$i][$j]; - if ($this->packTableData) { // includes $this->cacheTables - $cbord = $this->_unpackCellBorder($cell['borderbin']); - } - else { - $cbord = &$cells[$i][$j]; - } - // mPDF 5.7.3 - if (!$cbord['border'] && $cbord['border']!==0 && isset($table['border']) && $table['border'] && $this->table_border_attr_set) { - $cbord['border'] = $table['border']; - $cbord['border_details'] = $table['border_details']; - } - - if (isset($cell['colspan']) && $cell['colspan']>1) { $ccolsp = $cell['colspan']; } - else { $ccolsp = 1; } - if (isset($cell['rowspan']) && $cell['rowspan']>1) { $crowsp = $cell['rowspan']; } - else { $crowsp = 1; } - - $cbord['border_details']['cellposdom'] = ((($i+1)/$numrows) / 10000 ) + ((($j+1)/$numcols) / 10 ); - // Inherit Cell border from Table border - if ($this->table_border_css_set && !$table['borders_separate']) { - if ($i == 0) { - $this->_table2cellBorder($table['border_details']['T'], $cbord['border_details']['T'], $cbord['border'], _BORDER_TOP); - } - if ($i == ($numrows-1) || ($i+$crowsp) == ($numrows) ) { - $this->_table2cellBorder($table['border_details']['B'], $cbord['border_details']['B'], $cbord['border'], _BORDER_BOTTOM); - } - if ($j == 0) { - $this->_table2cellBorder($table['border_details']['L'], $cbord['border_details']['L'], $cbord['border'], _BORDER_LEFT); - } - if ($j == ($numcols-1) || ($j+$ccolsp) == ($numcols) ) { - $this->_table2cellBorder($table['border_details']['R'], $cbord['border_details']['R'], $cbord['border'], _BORDER_RIGHT); - } - } - -/*-- TABLES-ADVANCED-BORDERS --*/ - $fixbottom = true; - if (isset($table['topntail']) && $table['topntail']) { - if ($i == 0) { - $cbord['border_details']['T'] = $tntborddet; - $this->setBorder($cbord['border'], _BORDER_TOP); - } - if ($this->tableLevel==1 && $table['headernrows']>0 && $i == $table['headernrows']-1) { - $cbord['border_details']['B'] = $tntborddet; - $this->setBorder($cbord['border'], _BORDER_BOTTOM); - $fixbottom = false; - } - else if ($this->tableLevel==1 && $table['headernrows']>0 && $i == $table['headernrows']) { - if (!$table['borders_separate']) { - $cbord['border_details']['T'] = $tntborddet; - $this->setBorder($cbord['border'], _BORDER_TOP); - } - } - if ($this->tableLevel==1 && $table['footernrows']>0 && $i == ($numrows-$table['footernrows']-1)) { - if (!$table['borders_separate']) { - $cbord['border_details']['B'] = $tntborddet; - $this->setBorder($cbord['border'], _BORDER_BOTTOM); - $fixbottom = false; - } - } - else if ($this->tableLevel==1 && $table['footernrows']>0 && $i == ($numrows-$table['footernrows'])) { - $cbord['border_details']['T'] = $tntborddet; - $this->setBorder($cbord['border'], _BORDER_TOP); - } - if ($this->tabletheadjustfinished) { // $this->tabletheadjustfinished called from tableheader - if (!$table['borders_separate']) { - $cbord['border_details']['T'] = $tntborddet; - $this->setBorder($cbord['border'], _BORDER_TOP); - } - } - if ($i == ($numrows-1) || ($i+$crowsp) == ($numrows) ) { - $cbord['border_details']['B'] = $tntborddet; - $this->setBorder($cbord['border'], _BORDER_BOTTOM); - } - } - if (isset($table['thead-underline']) && $table['thead-underline']) { - if ($table['borders_separate']) { - if ($i == 0) { - $cbord['border_details']['B'] = $thuborddet; - $this->setBorder($cbord['border'], _BORDER_BOTTOM); - $fixbottom = false; - } - } - else { - if ($this->tableLevel==1 && $table['headernrows']>0 && $i == $table['headernrows']-1) { - $cbord['border_details']['T'] = $thuborddet; - $this->setBorder($cbord['border'], _BORDER_TOP); - } - else if ($this->tabletheadjustfinished) { // $this->tabletheadjustfinished called from tableheader - $cbord['border_details']['T'] = $thuborddet; - $this->setBorder($cbord['border'], _BORDER_TOP); - } - } - } - - // Collapse Border - Algorithm for conflicting borders - // Hidden >> Width >> double>solid>dashed>dotted... >> style set on cell>table >> top/left>bottom/right - // Do not turn off border which is overridden - // Needed for page break for TOP/BOTTOM both to be defined in Collapsed borders - // Means it is painted twice. (Left/Right can still disable overridden border) - if (!$table['borders_separate']) { - if (($i < ($numrows-1) || ($i+$crowsp) < $numrows ) && $fixbottom ) { // Bottom - for ($cspi = 0; $cspi<$ccolsp; $cspi++) { - // already defined Top for adjacent cell below - if (isset($cells[($i+$crowsp)][$j+$cspi])) { - if ($this->packTableData) { - if ($this->cacheTables) { - $adjc = $this->_uncacheCell($table['cells'][$i+$crowsp][$j+$cspi], '', $fh); - } - else { $adjc = $cells[($i+$crowsp)][$j+$cspi]; } - $celladj = $this->_unpackCellBorder($adjc['borderbin']); - } - else { $celladj =& $cells[($i+$crowsp)][$j+$cspi]; } - } - else { $celladj = false; } - if ($celladj && $celladj['border_details']['T']['s'] == 1) { - $csadj = $celladj['border_details']['T']['w']; - $csthis = $cbord['border_details']['B']['w']; - // Hidden - if ($cbord['border_details']['B']['style']=='hidden') { - $celladj['border_details']['T'] = $cbord['border_details']['B']; - $this->setBorder($celladj['border'] , _BORDER_TOP, false); - $this->setBorder($cbord['border'] , _BORDER_BOTTOM , false); - } - else if ($celladj['border_details']['T']['style']=='hidden') { - $cbord['border_details']['B'] = $celladj['border_details']['T']; - $this->setBorder($cbord['border'] , _BORDER_BOTTOM , false); - $this->setBorder($celladj['border'] , _BORDER_TOP, false); - } - // Width - else if ($csthis > $csadj) { - if (!isset($cells[($i+$crowsp)][$j+$cspi]['colspan']) || (isset($cells[($i+$crowsp)][$j+$cspi]['colspan']) && $cells[($i+$crowsp)][$j+$cspi]['colspan']<2)) { // don't overwrite bordering cells that span - $celladj['border_details']['T'] = $cbord['border_details']['B']; - $this->setBorder($cbord['border'] , _BORDER_BOTTOM); - } - } - else if ($csadj > $csthis) { - if ($ccolsp < 2) { // don't overwrite this cell if it spans - $cbord['border_details']['B'] = $celladj['border_details']['T']; - $this->setBorder($celladj['border'] , _BORDER_TOP); - } - } - - // double>solid>dashed>dotted... - else if (array_search($cbord['border_details']['B']['style'],$this->borderstyles) > array_search($celladj['border_details']['T']['style'],$this->borderstyles)) { - if (!isset($cells[($i+$crowsp)][$j+$cspi]['colspan']) || (isset($cells[($i+$crowsp)][$j+$cspi]['colspan']) && $cells[($i+$crowsp)][$j+$cspi]['colspan']<2)) { // don't overwrite bordering cells that span - $celladj['border_details']['T'] = $cbord['border_details']['B']; - $this->setBorder($cbord['border'] , _BORDER_BOTTOM ); - } - } - else if (array_search($celladj['border_details']['T']['style'],$this->borderstyles) > array_search($cbord['border_details']['B']['style'],$this->borderstyles)) { - if ($ccolsp < 2) { // don't overwrite this cell if it spans - $cbord['border_details']['B'] = $celladj['border_details']['T']; - $this->setBorder($celladj['border'] , _BORDER_TOP); - } - } - - - - // Style set on cell vs. table - else if ($celladj['border_details']['T']['dom'] > $cbord['border_details']['B']['dom']) { - if ($ccolsp < 2) { // don't overwrite this cell if it spans - $cbord['border_details']['B'] = $celladj['border_details']['T']; - $this->setBorder($celladj['border'] , _BORDER_TOP); - } - } - // Style set on cell vs. table - OR - LEFT/TOP (cell) in preference to BOTTOM/RIGHT - else { - if (!isset($cells[($i+$crowsp)][$j+$cspi]['colspan']) || (isset($cells[($i+$crowsp)][$j+$cspi]['colspan']) && $cells[($i+$crowsp)][$j+$cspi]['colspan']<2)) { // don't overwrite bordering cells that span - $celladj['border_details']['T'] = $cbord['border_details']['B']; - $this->setBorder($cbord['border'] , _BORDER_BOTTOM ); - } - } - } - else if ($celladj) { - if (!isset($cells[($i+$crowsp)][$j+$cspi]['colspan']) || (isset($cells[($i+$crowsp)][$j+$cspi]['colspan']) && $cells[($i+$crowsp)][$j+$cspi]['colspan']<2)) { // don't overwrite bordering cells that span - $celladj['border_details']['T'] = $cbord['border_details']['B']; - } - } - // mPDF 5.7.4 - if ($celladj && $this->packTableData) { - $cells[$i+$crowsp][$j+$cspi]['borderbin'] = $this->_packCellBorder($celladj); - } - if ($this->cacheTables) { - $this->_cacheUpdateBorder($celladj, $fh, $table['cells'][$i+$crowsp][$j+$cspi]); - } - unset($celladj); - } - } - - if ($j < ($numcols-1) || ($j+$ccolsp) < $numcols ) { // Right-Left - for ($cspi = 0; $cspi<$crowsp; $cspi++) { - // already defined Left for adjacent cell to R - if (isset($cells[($i+$cspi)][$j+$ccolsp])) { - if ($this->packTableData) { - if ($this->cacheTables) { - $adjc = $this->_uncacheCell($table['cells'][$i+$cspi][$j+$ccolsp], '', $fh); - } - else { $adjc = $cells[($i+$cspi)][$j+$ccolsp]; } - $celladj = $this->_unpackCellBorder($adjc['borderbin']); - } - else { $celladj =& $cells[$i+$cspi][$j+$ccolsp]; } - } - else { $celladj = false; } - if ($celladj && $celladj['border_details']['L']['s'] == 1) { - $csadj = $celladj['border_details']['L']['w']; - $csthis = $cbord['border_details']['R']['w']; - // Hidden - if ($cbord['border_details']['R']['style']=='hidden') { - $celladj['border_details']['L'] = $cbord['border_details']['R']; - $this->setBorder($celladj['border'] , _BORDER_LEFT, false); - $this->setBorder($cbord['border'] , _BORDER_RIGHT , false); - } - else if ($celladj['border_details']['L']['style']=='hidden') { - $cbord['border_details']['R'] = $celladj['border_details']['L']; - $this->setBorder($cbord['border'] , _BORDER_RIGHT , false); - $this->setBorder($celladj['border'] , _BORDER_LEFT, false); - } - // Width - else if ($csthis > $csadj) { - if (!isset($cells[($i+$cspi)][$j+$ccolsp]['rowspan']) || (isset($cells[($i+$cspi)][$j+$ccolsp]['rowspan']) && $cells[($i+$cspi)][$j+$ccolsp]['rowspan']<2)) { // don't overwrite bordering cells that span - $celladj['border_details']['L'] = $cbord['border_details']['R']; - $this->setBorder($cbord['border'] , _BORDER_RIGHT); - $this->setBorder($celladj['border'] , _BORDER_LEFT, false); - } - } - else if ($csadj > $csthis) { - if ($crowsp < 2) { // don't overwrite this cell if it spans - $cbord['border_details']['R'] = $celladj['border_details']['L']; - $this->setBorder($cbord['border'] , _BORDER_RIGHT, false); - $this->setBorder($celladj['border'] , _BORDER_LEFT); - } - } - - // double>solid>dashed>dotted... - else if (array_search($cbord['border_details']['R']['style'],$this->borderstyles) > array_search($celladj['border_details']['L']['style'],$this->borderstyles)) { - if (!isset($cells[($i+$cspi)][$j+$ccolsp]['rowspan']) || (isset($cells[($i+$cspi)][$j+$ccolsp]['rowspan']) && $cells[($i+$cspi)][$j+$ccolsp]['rowspan']<2)) { // don't overwrite bordering cells that span - $celladj['border_details']['L'] = $cbord['border_details']['R']; - $this->setBorder($celladj['border'] , _BORDER_LEFT, false); - $this->setBorder($cbord['border'] , _BORDER_RIGHT); - } - } - else if (array_search($celladj['border_details']['L']['style'],$this->borderstyles) > array_search($cbord['border_details']['R']['style'],$this->borderstyles)) { - if ($crowsp < 2) { // don't overwrite this cell if it spans - $cbord['border_details']['R'] = $celladj['border_details']['L']; - $this->setBorder($cbord['border'] , _BORDER_RIGHT , false); - $this->setBorder($celladj['border'] , _BORDER_LEFT); - } - } - - - // Style set on cell vs. table - else if ($celladj['border_details']['L']['dom'] > $cbord['border_details']['R']['dom']) { - if ($crowsp < 2) { // don't overwrite this cell if it spans - $cbord['border_details']['R'] = $celladj['border_details']['L']; - $this->setBorder($celladj['border'] , _BORDER_LEFT); - } - } - // Style set on cell vs. table - OR - LEFT/TOP (cell) in preference to BOTTOM/RIGHT - else { - if (!isset($cells[($i+$cspi)][$j+$ccolsp]['rowspan']) || (isset($cells[($i+$cspi)][$j+$ccolsp]['rowspan']) && $cells[($i+$cspi)][$j+$ccolsp]['rowspan']<2)) { // don't overwrite bordering cells that span - $celladj['border_details']['L'] = $cbord['border_details']['R']; - $this->setBorder($cbord['border'] , _BORDER_RIGHT); - } - } - } - else if ($celladj) { - // if right-cell border is not set - if (!isset($cells[($i+$cspi)][$j+$ccolsp]['rowspan']) || (isset($cells[($i+$cspi)][$j+$ccolsp]['rowspan']) && $cells[($i+$cspi)][$j+$ccolsp]['rowspan']<2)) { // don't overwrite bordering cells that span - $celladj['border_details']['L'] = $cbord['border_details']['R']; - } - } - // mPDF 5.7.4 - if ($celladj && $this->packTableData) { - $cells[$i+$cspi][$j+$ccolsp]['borderbin'] = $this->_packCellBorder($celladj); - } - if ($this->cacheTables) { - $this->_cacheUpdateBorder($celladj, $fh, $table['cells'][$i+$cspi][$j+$ccolsp]); - } - unset($celladj); - } - } - } - - - // Set maximum cell border width meeting at LRTB edges of cell - used for extended cell border - // ['border_details']['mbw']['LT'] = meeting border width - Left border - Top end - if (!$table['borders_separate']) { - $cbord['border_details']['mbw']['BL'] = max($cbord['border_details']['mbw']['BL'], $cbord['border_details']['L']['w']); - $cbord['border_details']['mbw']['BR'] = max($cbord['border_details']['mbw']['BR'], $cbord['border_details']['R']['w']); - $cbord['border_details']['mbw']['RT'] = max($cbord['border_details']['mbw']['RT'], $cbord['border_details']['T']['w']); - $cbord['border_details']['mbw']['RB'] = max($cbord['border_details']['mbw']['RB'], $cbord['border_details']['B']['w']); - $cbord['border_details']['mbw']['TL'] = max($cbord['border_details']['mbw']['TL'], $cbord['border_details']['L']['w']); - $cbord['border_details']['mbw']['TR'] = max($cbord['border_details']['mbw']['TR'], $cbord['border_details']['R']['w']); - $cbord['border_details']['mbw']['LT'] = max($cbord['border_details']['mbw']['LT'], $cbord['border_details']['T']['w']); - $cbord['border_details']['mbw']['LB'] = max($cbord['border_details']['mbw']['LB'], $cbord['border_details']['B']['w']); - if (($i+$crowsp) < $numrows && isset($cells[$i+$crowsp][$j])) { // Has Bottom adjoining cell - if ($this->packTableData) { - if ($this->cacheTables) { - $adjc = $this->_uncacheCell($table['cells'][$i+$crowsp][$j], '', $fh); - } - else { $adjc = $cells[$i+$crowsp][$j]; } - $celladj = $this->_unpackCellBorder($adjc['borderbin']); - } - else { $celladj =& $cells[$i+$crowsp][$j]; } - $cbord['border_details']['mbw']['BL'] = max($cbord['border_details']['mbw']['BL'], $celladj['border_details']['L']['w'], $celladj['border_details']['mbw']['TL']); - $cbord['border_details']['mbw']['BR'] = max($cbord['border_details']['mbw']['BR'], $celladj['border_details']['R']['w'], $celladj['border_details']['mbw']['TR']); - $cbord['border_details']['mbw']['LB'] = max($cbord['border_details']['mbw']['LB'], $celladj['border_details']['mbw']['LT']); - $cbord['border_details']['mbw']['RB'] = max($cbord['border_details']['mbw']['RB'], $celladj['border_details']['mbw']['RT']); - unset($celladj); - } - if (($j+$ccolsp) < $numcols && isset($cells[$i][$j+$ccolsp])) { // Has Right adjoining cell - if ($this->packTableData) { - if ($this->cacheTables) { - $adjc = $this->_uncacheCell($table['cells'][$i][$j+$ccolsp], '', $fh); - } - else { $adjc = $cells[$i][$j+$ccolsp]; } - $celladj = $this->_unpackCellBorder($adjc['borderbin']); - } - else { $celladj =& $cells[$i][$j+$ccolsp]; } - $cbord['border_details']['mbw']['RT'] = max($cbord['border_details']['mbw']['RT'], $celladj['border_details']['T']['w'], $celladj['border_details']['mbw']['LT']); - $cbord['border_details']['mbw']['RB'] = max($cbord['border_details']['mbw']['RB'], $celladj['border_details']['B']['w'], $celladj['border_details']['mbw']['LB']); - $cbord['border_details']['mbw']['TR'] = max($cbord['border_details']['mbw']['TR'], $celladj['border_details']['mbw']['TL']); - $cbord['border_details']['mbw']['BR'] = max($cbord['border_details']['mbw']['BR'], $celladj['border_details']['mbw']['BL']); - unset($celladj); - } - - if ($i > 0 && isset($cells[$i-1][$j]) && (($this->packTableData && $cells[$i-1][$j]['borderbin']) || $cells[$i-1][$j]['border'])) { // Has Top adjoining cell - if ($this->packTableData) { - if ($this->cacheTables) { - $adjc = $this->_uncacheCell($table['cells'][$i-1][$j], '', $fh); - } - else { $adjc = $cells[$i-1][$j]; } - $celladj = $this->_unpackCellBorder($adjc['borderbin']); - } - else { $celladj =& $cells[$i-1][$j]; } - $cbord['border_details']['mbw']['TL'] = max($cbord['border_details']['mbw']['TL'], $celladj['border_details']['L']['w'], $celladj['border_details']['mbw']['BL']); - $cbord['border_details']['mbw']['TR'] = max($cbord['border_details']['mbw']['TR'], $celladj['border_details']['R']['w'], $celladj['border_details']['mbw']['BR']); - $cbord['border_details']['mbw']['LT'] = max($cbord['border_details']['mbw']['LT'], $celladj['border_details']['mbw']['LB']); - $cbord['border_details']['mbw']['RT'] = max($cbord['border_details']['mbw']['RT'], $celladj['border_details']['mbw']['RB']); - - if ($celladj['border_details']['mbw']['BL']) { - $celladj['border_details']['mbw']['BL'] = max($cbord['border_details']['mbw']['TL'], $celladj['border_details']['mbw']['BL']); - } - if ($celladj['border_details']['mbw']['BR'] ) { - $celladj['border_details']['mbw']['BR'] = max($celladj['border_details']['mbw']['BR'], $cbord['border_details']['mbw']['TR']); - } - if ($this->packTableData) { $cells[$i-1][$j]['borderbin'] = $this->_packCellBorder($celladj); } - unset($celladj); - } - if ($j > 0 && isset($cells[$i][$j-1]) && (($this->packTableData && $cells[$i][$j-1]['borderbin']) || $cells[$i][$j-1]['border'])) { // Has Left adjoining cell - if ($this->packTableData) { - if ($this->cacheTables) { - $adjc = $this->_uncacheCell($table['cells'][$i][$j-1], '', $fh); - } - else { $adjc = $cells[$i][$j-1]; } - $celladj = $this->_unpackCellBorder($adjc['borderbin']); - } - else { $celladj =& $cells[$i][$j-1]; } - $cbord['border_details']['mbw']['LT'] = max($cbord['border_details']['mbw']['LT'], $celladj['border_details']['T']['w'], $celladj['border_details']['mbw']['RT']); - $cbord['border_details']['mbw']['LB'] = max($cbord['border_details']['mbw']['LB'], $celladj['border_details']['B']['w'], $celladj['border_details']['mbw']['RB']); - $cbord['border_details']['mbw']['BL'] = max($cbord['border_details']['mbw']['BL'], $celladj['border_details']['mbw']['BR']); - $cbord['border_details']['mbw']['TL'] = max($cbord['border_details']['mbw']['TL'], $celladj['border_details']['mbw']['TR']); - - if ($celladj['border_details']['mbw']['RT']) { - $celladj['border_details']['mbw']['RT'] = max($celladj['border_details']['mbw']['RT'], $cbord['border_details']['mbw']['LT']); - } - if ($celladj['border_details']['mbw']['RB']) { - $celladj['border_details']['mbw']['RB'] = max($celladj['border_details']['mbw']['RB'], $cbord['border_details']['mbw']['LB']); - } - if ($this->packTableData) { $cells[$i][$j-1]['borderbin'] = $this->_packCellBorder($celladj); } - unset($celladj); - } - - - // Update maximum cell border width at LRTB edges of table - used for overall table width - if ($j == 0 && $cbord['border_details']['L']['w']) { - $table['max_cell_border_width']['L'] = max($table['max_cell_border_width']['L'],$cbord['border_details']['L']['w']); - } - if (($j == ($numcols-1) || ($j+$ccolsp) == $numcols ) && $cbord['border_details']['R']['w']) { - $table['max_cell_border_width']['R'] = max($table['max_cell_border_width']['R'],$cbord['border_details']['R']['w']); - } - if ($i == 0 && $cbord['border_details']['T']['w']) { - $table['max_cell_border_width']['T'] = max($table['max_cell_border_width']['T'],$cbord['border_details']['T']['w']); - } - if (($i == ($numrows-1) || ($i+$crowsp) == $numrows ) && $cbord['border_details']['B']['w']) { - $table['max_cell_border_width']['B'] = max($table['max_cell_border_width']['B'],$cbord['border_details']['B']['w']); - } - } -/*-- END TABLES-ADVANCED-BORDERS --*/ - - if ($this->packTableData) { $cell['borderbin'] = $this->_packCellBorder($cbord); } - - if ($this->cacheTables) { - $this->_cacheUpdateBorder($cell, $fh, $table['cells'][$i][$j]); - } - unset($cbord ); - unset($cell ); - } - } - } - if ($this->cacheTables) { fclose($fh); } - unset($cell ); -} -// END FIX BORDERS ************************************************************************************ - - -function _reverseTableDir(&$table) { - if ($this->cacheTables) { $fh = fopen($table['cache'], "r+b"); } - $cells = &$table['cells']; - $numcols = $table['nc']; - $numrows = $table['nr']; - for( $i = 0 ; $i < $numrows ; $i++ ) { //Rows - $row = array(); - for( $j = ($numcols-1) ; $j >= 0 ; $j-- ) { //Columns - if (isset($cells[$i][$j]) && $cells[$i][$j]) { - if ($this->cacheTables) { - $cell = $this->_uncacheCell($table['cells'][$i][$j], '', $fh); - } - else - $cell = &$cells[$i][$j]; - $col = $numcols - $j - 1; - if (isset($cell['colspan']) && $cell['colspan'] > 1) { $col -= ($cell['colspan']-1); } - // Nested content - for ($n=0; $n < count($cell['textbuffer']); $n++) { - $t = $cell['textbuffer'][$n][0]; - if (substr($t,0,19) == "\xbb\xa4\xactype=nestedtable") { - $objattr = $this->_getObjAttr($t); - $objattr['col'] = $col; - $cell['textbuffer'][$n][0] = "\xbb\xa4\xactype=nestedtable,objattr=".serialize($objattr)."\xbb\xa4\xac"; - $this->table[($this->tableLevel+1)][$objattr['nestedcontent']]['nestedpos'][1] = $col; - if ($this->cacheTables) { - $this->_cacheUpdateTxB($cell, $fh, $table['cells'][$i][$j]); - } - } - } - $row[$col] = $cells[$i][$j]; - unset($cell); - } - } - for($f=0; $f < $numcols; $f++) { - if (!isset($row[$f])) { $row[$f] = 0; } - } - $table['cells'][$i] = $row; - } - if ($this->cacheTables) { fclose($fh); } -} - - -function _tableWrite(&$table, $split=false, $startrow=0, $startcol=0, $splitpg=0, $rety = 0){ - $level = $table['level']; - $levelid = $table['levelid']; - - $cells = &$table['cells']; - $numcols = $table['nc']; - $numrows = $table['nr']; - - if ($this->ColActive && $level==1) { $this->breakpoints[$this->CurrCol][] = $this->y; } // *COLUMNS* - - if (!$split || ($startrow==0 && $splitpg==0) || $startrow>0){ - // TABLE TOP MARGIN - if ($table['margin']['T']) { - if (!$this->table_rotate && $level==1) { - $this->DivLn($table['margin']['T'],$this->blklvl,true,1); // collapsible - } - else { - $this->y += ($table['margin']['T']); - } - } - // Advance down page by half width of top border - if ($table['borders_separate']) { - if ($startrow>0 && (!isset($table['is_thead']) || count($table['is_thead'])==0)) - $adv = $table['border_spacing_V']/2; - else - $adv = $table['padding']['T'] + $table['border_details']['T']['w'] + $table['border_spacing_V']/2; - } - else { - $adv = $table['max_cell_border_width']['T']/2; - } - if (!$this->table_rotate && $level==1) { $this->DivLn($adv); } - else { $this->y += $adv; } - } - - if ($level==1) { - $this->x = $this->lMargin + $this->blk[$this->blklvl]['outer_left_margin'] + $this->blk[$this->blklvl]['padding_left'] + $this->blk[$this->blklvl]['border_left']['w']; - $x0 = $this->x; - $y0 = $this->y; - $right = $x0 + $this->blk[$this->blklvl]['inner_width']; - $outerfilled = $this->y; // Keep track of how far down the outer DIV bgcolor is painted (NB rowspans) - $this->outerfilled = $this->y; - $this->colsums = array(); - } - else { - $x0 = $this->x; - $y0 = $this->y; - $right = $x0 + $table['w']; - } - - if ($this->table_rotate) { - $temppgwidth = $this->tbrot_maxw; - $this->PageBreakTrigger = $pagetrigger = $y0 + ($this->blk[$this->blklvl]['inner_width']); - if ($level==1) { - $this->tbrot_y0 = $this->y - $adv - $table['margin']['T'] ; - $this->tbrot_x0 = $this->x; - $this->tbrot_w = $table['w']; - if ($table['borders_separate']) { $this->tbrot_h = $table['margin']['T'] + $table['padding']['T'] + $table['border_details']['T']['w'] + $table['border_spacing_V']/2; } - else { $this->tbrot_h = $table['margin']['T'] + $table['padding']['T'] + $table['max_cell_border_width']['T']; } - } - } - else { - $this->PageBreakTrigger = $pagetrigger = ($this->h - $this->bMargin); - if ($level==1) { - $temppgwidth = $this->blk[$this->blklvl]['inner_width']; - if (isset($table['a']) and ($table['w'] < $this->blk[$this->blklvl]['inner_width'])) { - if ($table['a']=='C') { $x0 += ((($right-$x0) - $table['w'])/2); } - else if ($table['a']=='R') { $x0 = $right - $table['w']; } - } - } - else { - $temppgwidth = $table['w']; - } - } - if(!isset($table['overflow'])) { $table['overflow'] = null; } - if ($table['overflow']=='hidden' && $level==1 && !$this->table_rotate && !$this->ColActive) { - //Bounding rectangle to clip - $this->tableClipPath = sprintf('q %.3F %.3F %.3F %.3F re W n',$x0*_MPDFK,$this->h*_MPDFK,$this->blk[$this->blklvl]['inner_width']*_MPDFK,-$this->h*_MPDFK); - $this->_out($this->tableClipPath); - } - else { $this->tableClipPath = ''; } - - - if ($table['borders_separate']) { $indent = $table['margin']['L'] + $table['border_details']['L']['w'] + $table['padding']['L'] + $table['border_spacing_H']/2; } - else { $indent = $table['margin']['L'] + $table['max_cell_border_width']['L']/2; } - $x0 += $indent; - - $returny = 0; - $lastCol = 0; - $tableheader = array(); - $tablefooter = array(); - $tableheaderrowheight = 0; - $tablefooterrowheight = 0; - $footery = 0; - - // mPD 3.0 Set the Page & Column where table starts - if (($this->mirrorMargins) && (($this->page)%2==0)) { // EVEN - $tablestartpage = 'EVEN'; - } - else if (($this->mirrorMargins) && (($this->page)%2==1)) { // ODD - $tablestartpage = 'ODD'; - } - else { $tablestartpage = ''; } - if ($this->ColActive) { $tablestartcolumn = $this->CurrCol; } - else { $tablestartcolumn = ''; } - - if ($this->cacheTables) { $fh = fopen($table['cache'], "r+b"); } - else { $fh = null; } - - $y = $h = 0; - for( $i = 0; $i < $numrows ; $i++ ) { //Rows - if ($this->progressBar) { $this->UpdateProgressBar(7,intval(30 + ($i*40/$numrows)),' '); } // *PROGRESS-BAR* - if (isset($table['is_tfoot'][$i]) && $table['is_tfoot'][$i] && $level==1) { - $tablefooterrowheight += $table['hr'][$i]; - $tablefooter[$i][0]['trbackground-images'] = $table['trbackground-images'][$i]; - $tablefooter[$i][0]['trgradients'] = $table['trgradients'][$i]; - $tablefooter[$i][0]['trbgcolor'] = $table['bgcolor'][$i]; - for( $j = $startcol ; $j < $numcols ; $j++ ) { //Columns - if (isset($cells[$i][$j]) && $cells[$i][$j]) { - if ($this->cacheTables) { - $cell = $this->_uncacheCell($table['cells'][$i][$j], '', $fh); - } - else - $cell = &$cells[$i][$j]; - if ($split) { - if ($table['colPg'][$j] != $splitpg) { continue; } - list($x,$w) = $this->_splitTableGetWidth($table, $i, $j, $fh); - $js = $j - $startcol; - } - else { - list($x,$w) = $this->_tableGetWidth($table, $i, $j, $fh); - $js = $j; - } - - list($y,$h) = $this->_tableGetHeight($table, $i, $j, $fh); - $x += $x0; - $y += $y0; - //Get info of tfoot ==>> table footer - $tablefooter[$i][$js]['x'] = $x; - $tablefooter[$i][$js]['y'] = $y; - $tablefooter[$i][$js]['h'] = $h; - $tablefooter[$i][$js]['w'] = $w; - if (isset($cell['textbuffer'])) { $tablefooter[$i][$js]['textbuffer'] = $cell['textbuffer']; } - else { $tablefooter[$i][$js]['textbuffer'] = ''; } - $tablefooter[$i][$js]['a'] = $cell['a']; - $tablefooter[$i][$js]['R'] = $cell['R']; - $tablefooter[$i][$js]['va'] = $cell['va']; - $tablefooter[$i][$js]['mih'] = $cell['mih']; - $tablefooter[$i][$js]['gradient'] = $cell['gradient']; // *BACKGROUNDS* - $tablefooter[$i][$js]['background-image'] = $cell['background-image']; // *BACKGROUNDS* - //CELL FILL BGCOLOR - if (!$this->simpleTables){ - if ($this->packTableData) { - $c = $this->_unpackCellBorder($cell['borderbin']); - $tablefooter[$i][$js]['border'] = $c['border']; - $tablefooter[$i][$js]['border_details'] = $c['border_details']; - } - else { - $tablefooter[$i][$js]['border'] = $cell['border']; - $tablefooter[$i][$js]['border_details'] = $cell['border_details']; - } - } - else if ($this->simpleTables){ - $tablefooter[$i][$js]['border'] = $table['simple']['border']; - $tablefooter[$i][$js]['border_details'] = $table['simple']['border_details']; - } - $tablefooter[$i][$js]['bgcolor'] = $cell['bgcolor']; - $tablefooter[$i][$js]['padding'] = $cell['padding']; - $tablefooter[$i][$js]['rowspan'] = $cell['rowspan']; - $tablefooter[$i][$js]['colspan'] = $cell['colspan']; - } - } - } - } - - if ($level==1) { $this->_out('___TABLE___BACKGROUNDS'.$this->uniqstr); } - $tableheaderadj = 0; - $tablefooteradj = 0; - - $tablestartpageno = $this->page; - - //Draw Table Contents and Borders - for( $i = 0; $i < $numrows ; $i++ ) { //Rows - if ($split && $startrow > 0) { - $thnr = (isset($table['is_thead']) ? count($table['is_thead']) : 0); - if ($i >= $thnr && $i < $startrow) { continue; } - if ($i == $startrow){ $returny = $rety - $tableheaderrowheight; } - } - - // Get Maximum row/cell height in row - including rowspan>1 + 1 overlapping - $maxrowheight = $this->_tableGetMaxRowHeight($table, $i, $fh); - - $skippage = false; - $newpagestarted = false; - for( $j = $startcol ; $j < $numcols ; $j++ ) { //Columns - if ($split) { - if ($table['colPg'][$j] > $splitpg) { break; } - $lastCol = $j; - } - if (isset($cells[$i][$j]) && $cells[$i][$j]) { - if ($this->cacheTables) { - $cell = $this->_uncacheCell($table['cells'][$i][$j], '', $fh); - } - else - $cell = &$cells[$i][$j]; - if ($split) { - $lastCol = $j + (isset($cell['colspan']) ? ($cell['colspan']-1) : 0) ; - list($x,$w) = $this->_splitTableGetWidth($table, $i, $j, $fh); - } - else { list($x,$w) = $this->_tableGetWidth($table, $i, $j, $fh); } - - list($y,$h) = $this->_tableGetHeight($table, $i, $j, $fh); - $x += $x0; - $y += $y0; - $y -= $returny; - - if ($table['borders_separate']) { - if (!empty($tablefooter) || $i == ($numrows-1) || (isset($cell['rowspan']) && ($i+$cell['rowspan']) == $numrows) || (!isset($cell['rowspan']) && ($i+1) == $numrows) ) { - $extra = $table['padding']['B'] + $table['border_details']['B']['w'] + $table['border_spacing_V']/2; - //$extra = $table['margin']['B'] + $table['padding']['B'] + $table['border_details']['B']['w'] + $table['border_spacing_V']/2; - } - else { - $extra = $table['border_spacing_V']/2; - } - } - else { $extra = $table['max_cell_border_width']['B']/2; } - - if ($j==$startcol && ((($y + $maxrowheight + $extra ) > ($pagetrigger+0.001)) || (($this->keepColumns || !$this->ColActive) && !empty($tablefooter) && ($y + $maxrowheight + $tablefooterrowheight + $extra) > $pagetrigger) && ($this->tableLevel==1 && $i < ($numrows - $table['headernrows']))) && ($y0 >0 || $x0 > 0) && !$this->InFooter && $this->autoPageBreak ) { - - if (!$skippage) { - $finalSpread = true; - $firstSpread = true; - if ($split) { - for($t=$startcol; $t<$numcols; $t++) { - // Are there more columns to print on a next page? - if ($table['colPg'][$t] > $splitpg) { - $finalSpread = false; - break; - } - } - if ($startcol>0) { $firstSpread = false; } - } - - if (($this->keepColumns || !$this->ColActive) && !empty($tablefooter) && $i > 0 ) { - $this->y = $y; - $ya = $this->y; - $this->TableHeaderFooter($tablefooter,$tablestartpage,$tablestartcolumn,'F',$level, $firstSpread, $finalSpread); - if ($this->table_rotate) { - $this->tbrot_h += $this->y - $ya ; - } - $tablefooteradj = $this->y - $ya ; - } - $y -= $y0; - $returny += $y; - - $oldcolumn = $this->CurrCol; - if ($this->AcceptPageBreak()) { - $newpagestarted = true; - $this->y = $y + $y0; - - // Move down to account for border-spacing or - // extra half border width in case page breaks in middle - if($i>0 && !$this->table_rotate && $level==1 && !$this->ColActive) { - if ($table['borders_separate']) { - $adv = $table['border_spacing_V']/2; - // If table footer - if (($this->keepColumns || !$this->ColActive) && !empty($tablefooter) && $i > 0 ) { - $adv += ($table['padding']['B'] + $table['border_details']['B']['w']); - } - } - else { - $maxbwtop = 0; - $maxbwbottom = 0; - if (!$this->simpleTables){ - if (!empty($tablefooter)) { $maxbwbottom = $table['max_cell_border_width']['B']; } - else { - $brow = $i-1; - for( $ctj = 0 ; $ctj < $numcols ; $ctj++ ) { - if (isset($cells[$brow][$ctj]) && $cells[$brow][$ctj]) { - if ($this->cacheTables) { - $cadj = $this->_uncacheCell($table['cells'][$brow][$ctj], '', $fh); - list($bt,$br,$bb,$bl) = $this->_getBorderWidths($cadj['borderbin']); - } - else if ($this->packTableData) { - list($bt,$br,$bb,$bl) = $this->_getBorderWidths($cells[$brow][$ctj]['borderbin']); - } - else { - $bb = $cells[$brow][$ctj]['border_details']['B']['w']; - } - $maxbwbottom = max($maxbwbottom , $bb); - } - } - } - if (!empty($tableheader)) { $maxbwtop = $table['max_cell_border_width']['T']; } - else { - $trow = $i-1; - for( $ctj = 0 ; $ctj < $numcols ; $ctj++ ) { - if (isset($cells[$trow][$ctj]) && $cells[$trow][$ctj]) { - if ($this->cacheTables) { - $cadj = $this->_uncacheCell($table['cells'][$trow][$ctj], '', $fh); - list($bt,$br,$bb,$bl) = $this->_getBorderWidths($cadj['borderbin']); - } - else if ($this->packTableData) { - list($bt,$br,$bb,$bl) = $this->_getBorderWidths($cells[$trow][$ctj]['borderbin']); - } - else { - $bt = $cells[$trow][$ctj]['border_details']['T']['w']; - } - $maxbwtop = max($maxbwtop , $bt); - } - } - } - } - else if ($this->simpleTables){ - $maxbwtop = $table['simple']['border_details']['T']['w']; - $maxbwbottom = $table['simple']['border_details']['B']['w']; - } - $adv = $maxbwbottom /2; - } - $this->y += $adv; - } - - // Rotated table split over pages - needs this->y for borders/backgrounds - if($i>0 && $this->table_rotate && $level==1) { - // $this->y = $y0 + $this->tbrot_w; - } - - if ($this->tableClipPath ) { $this->_out("Q"); } - - $bx = $x0; - $by = $y0; - - if ($table['borders_separate']) { - $bx -= ($table['padding']['L'] + $table['border_details']['L']['w'] + $table['border_spacing_H']/2); - if ($tablestartpageno != $this->page) { // IF already broken across a previous pagebreak - $by += $table['max_cell_border_width']['T']/2; - if (empty($tableheader)) { $by -= ($table['border_spacing_V']/2); } - } - else { - $by -= ($table['padding']['T'] + $table['border_details']['T']['w'] + $table['border_spacing_V']/2); - } - } - - else if ($tablestartpageno != $this->page && !empty($tableheader)) { $by += $maxbwtop /2; } - - $by -= $tableheaderadj; - $bh = $this->y - $by + $tablefooteradj; - if (!$table['borders_separate']) { $bh -= $adv ; } - if ($split) { - $bw = 0; - for($t=$startcol; $t<$numcols; $t++) { - if ($table['colPg'][$t] == $splitpg) { $bw += $table['wc'][$t]; } - if ($table['colPg'][$t] > $splitpg) { break; } - } - if ($table['borders_separate']) { - if ($firstSpread) { - $bw += $table['padding']['L'] + $table['border_details']['L']['w'] + $table['border_spacing_H']; - } - else { - $bx += ($table['padding']['L'] + $table['border_details']['L']['w']); - $bw += $table['border_spacing_H']; - } - if ($finalSpread) { - $bw += $table['padding']['R'] + $table['border_details']['R']['w']/2 + $table['border_spacing_H']; - } - } - } - else { - $bw = $table['w'] - ($table['max_cell_border_width']['L']/2) - ($table['max_cell_border_width']['R']/2) - $table['margin']['L'] - $table['margin']['R']; - } - - // mPDF 5.4.16 - if ($this->splitTableBorderWidth && ($this->keepColumns || !$this->ColActive) && empty($tablefooter) && $i > 0 && $table['border_details']['B']['w']) { - $prevDrawColor = $this->DrawColor; - $lw = $this->LineWidth; - $this->SetLineWidth($this->splitTableBorderWidth); - $this->SetDColor($table['border_details']['B']['c']); - $this->SetLineJoin(0); - $this->SetLineCap(0); - $blx = $bx; - $blw = $bw; - if (!$table['borders_separate']) { - $blx -= ($table['max_cell_border_width']['L']/2); - $blw += ($table['max_cell_border_width']['L']/2 + $table['max_cell_border_width']['R']/2); - } - $this->Line($blx,$this->y+($this->splitTableBorderWidth/2),$blx+$blw,$this->y+($this->splitTableBorderWidth/2)); - $this->DrawColor = $prevDrawColor; - $this->_out($this->DrawColor); - $this->SetLineWidth($lw); - $this->SetLineJoin(2); - $this->SetLineCap(2); - } - - if (!$this->ColActive && ($i > 0 || $j > 0)) { - if (isset($table['bgcolor'][-1])) { - $color = $this->ConvertColor($table['bgcolor'][-1]); - if ($color) { - if (!$table['borders_separate']) { $bh -= $table['max_cell_border_width']['B']/2; } - $this->tableBackgrounds[$level*9][] = array('gradient'=>false, 'x'=>$bx, 'y'=>$by, 'w'=>$bw, 'h'=>$bh, 'col'=>$color); - } - } - -/*-- BACKGROUNDS --*/ - if (isset($table['gradient'])) { - $g = $this->grad->parseBackgroundGradient($table['gradient']); - if ($g) { - $this->tableBackgrounds[$level*9+1][] = array('gradient'=>true, 'x'=>$bx, 'y'=>$by, 'w'=>$bw, 'h'=>$bh, 'gradtype'=>$g['type'], 'stops'=>$g['stops'], 'colorspace'=>$g['colorspace'], 'coords'=>$g['coords'], 'extend'=>$g['extend'], 'clippath'=>''); - } - } - - if (isset($table['background-image'])) { - if ($table['background-image']['gradient'] && preg_match('/(-moz-)*(repeating-)*(linear|radial)-gradient/', $table['background-image']['gradient'] )) { - $g = $this->grad->parseMozGradient( $table['background-image']['gradient'] ); - if ($g) { - $this->tableBackgrounds[$level*9+1][] = array('gradient'=>true, 'x'=>$bx, 'y'=>$by, 'w'=>$bw, 'h'=>$bh, 'gradtype'=>$g['type'], 'stops'=>$g['stops'], 'colorspace'=>$g['colorspace'], 'coords'=>$g['coords'], 'extend'=>$g['extend'], 'clippath'=>''); - } - } - else { - $image_id = $table['background-image']['image_id']; - $orig_w = $table['background-image']['orig_w']; - $orig_h = $table['background-image']['orig_h']; - $x_pos = $table['background-image']['x_pos']; - $y_pos = $table['background-image']['y_pos']; - $x_repeat = $table['background-image']['x_repeat']; - $y_repeat = $table['background-image']['y_repeat']; - $resize = $table['background-image']['resize']; - $opacity = $table['background-image']['opacity']; - $itype = $table['background-image']['itype']; - $this->tableBackgrounds[$level*9+2][] = array('x'=>$bx, 'y'=>$by, 'w'=>$bw, 'h'=>$bh, 'image_id'=>$image_id, 'orig_w'=>$orig_w, 'orig_h'=>$orig_h, 'x_pos'=>$x_pos, 'y_pos'=>$y_pos, 'x_repeat'=>$x_repeat, 'y_repeat'=>$y_repeat, 'clippath'=>'', 'resize'=>$resize, 'opacity'=>$opacity, 'itype'=>$itype); - } - } -/*-- END BACKGROUNDS --*/ - } - - // $this->AcceptPageBreak() has moved tablebuffer to $this->pages content - if ($this->tableBackgrounds) { - $s = $this->PrintTableBackgrounds(); - if ($this->bufferoutput) { - $this->headerbuffer = preg_replace('/(___TABLE___BACKGROUNDS'.$this->uniqstr.')/', '\\1'."\n".$s."\n", $this->headerbuffer); - $this->headerbuffer = preg_replace('/(___TABLE___BACKGROUNDS'.$this->uniqstr.')/', " ", $this->headerbuffer ); - } - else { - $this->pages[$this->page] = preg_replace('/(___TABLE___BACKGROUNDS'.$this->uniqstr.')/', '\\1'."\n".$s."\n", $this->pages[$this->page]); - $this->pages[$this->page] = preg_replace('/(___TABLE___BACKGROUNDS'.$this->uniqstr.')/', " ", $this->pages[$this->page]); - } - $this->tableBackgrounds = array(); - } - - if ($split) { - if ($i == 0 && $j == 0) { $y0 = -1; } - else if ($finalSpread) { - $splitpg = 0; - $startcol = 0; - $startrow = $i; - } - else { - $splitpg++; - $startcol = $t; - $returny -= $y; - } - return array(false, $startrow, $startcol, $splitpg, $returny, $y0); - } - - $this->AddPage($this->CurOrientation); - - $this->_out('___TABLE___BACKGROUNDS'.$this->uniqstr); - - - if ($this->tableClipPath ) { $this->_out($this->tableClipPath); } - - // Added to correct for OddEven Margins - $x= $x + $this->MarginCorrection; - $x0= $x0 + $this->MarginCorrection; - - // mPDF 5.4.16 - if ($this->splitTableBorderWidth && ($this->keepColumns || !$this->ColActive) && empty($tableheader) && $i > 0 && $table['border_details']['T']['w'] ) { - $prevDrawColor = $this->DrawColor; - $lw = $this->LineWidth; - $this->SetLineWidth($this->splitTableBorderWidth); - $this->SetDColor($table['border_details']['T']['c']); - $this->SetLineJoin(0); - $this->SetLineCap(0); - $blx += $this->MarginCorrection; - $this->Line($blx,$this->y-($this->splitTableBorderWidth/2),$blx+$blw,$this->y-($this->splitTableBorderWidth/2)); - $this->DrawColor = $prevDrawColor; - $this->_out($this->DrawColor); - $this->SetLineWidth($lw); - $this->SetLineJoin(2); - $this->SetLineCap(2); - } - - // Move down to account for half of top border-spacing or - // extra half border width in case page was broken in middle - if($i>0 && !$this->table_rotate && $level==1 && $table['headernrows']==0) { - if ($table['borders_separate']) { $adv = $table['border_spacing_V']/2; } - else { - $maxbwtop = 0; - for( $ctj = 0 ; $ctj < $numcols ; $ctj++ ) { - if (isset($cells[$i][$ctj]) && $cells[$i][$ctj]) { - if (!$this->simpleTables){ - if ($this->cacheTables) { - $celltj = $this->_uncacheCell($table['cells'][$i][$ctj], '', $fh); - list($bt,$br,$bb,$bl) = $this->_getBorderWidths($celltj['borderbin']); - } - else if ($this->packTableData) { - list($bt,$br,$bb,$bl) = $this->_getBorderWidths($cells[$i][$ctj]['borderbin']); - } - else { - $bt = $cells[$i][$ctj]['border_details']['T']['w']; - } - $maxbwtop = max($maxbwtop, $bt); - } - else if ($this->simpleTables){ - $maxbwtop = max($maxbwtop, $table['simple']['border_details']['T']['w']); - } - } - } - $adv = $maxbwtop /2; - } - $this->y += $adv; - } - - - if ($this->table_rotate) { - $this->tbrot_x0 = $this->lMargin + $this->blk[$this->blklvl]['outer_left_margin'] + $this->blk[$this->blklvl]['padding_left'] + $this->blk[$this->blklvl]['border_left']['w']; - if ($table['borders_separate']) { $this->tbrot_h = $table['margin']['T'] + $table['padding']['T'] + $table['border_details']['T']['w'] + $table['border_spacing_V']/2; } - else { $this->tbrot_h = $table['margin']['T'] + $table['max_cell_border_width']['T'] ; } - $this->tbrot_y0 = $this->y; - $pagetrigger = $y0 - $tableheaderadj + ($this->blk[$this->blklvl]['inner_width']); - } - else { - $pagetrigger = $this->PageBreakTrigger; - } - - if ($this->kwt_saved && $level==1) { - $this->kwt_moved = true; - } - - - // Disable Table header repeat if Keep Block together - if (!$this->keep_block_together && !empty($tableheader)) { - $ya = $this->y; - $this->TableHeaderFooter($tableheader,$tablestartpage,$tablestartcolumn,'H',$level); - if ($this->table_rotate) { - $this->tbrot_h = $this->y - $ya ; - } - $tableheaderadj = $this->y - $ya ; - } - - else if ($i==0 && !$this->keep_block_together && !$this->table_rotate && $level==1 && !$this->ColActive) { - // Advance down page - if ($table['borders_separate']) { $adv = $table['border_spacing_V']/2 + $table['border_details']['T']['w'] + $table['padding']['T']; } - else { $adv = $table['max_cell_border_width']['T'] /2 ; } - if ($adv) { - if ($this->table_rotate) { - $this->y += ($adv); - } - else { - $this->DivLn($adv,$this->blklvl,true); - } - } - } - - $outerfilled = 0; - $y = $y0 = $this->y; - } - -/*-- COLUMNS --*/ - // COLS - // COLUMN CHANGE - if ($this->CurrCol != $oldcolumn) { - // Added to correct for Columns - $x += $this->ChangeColumn * ($this->ColWidth+$this->ColGap); - $x0 += $this->ChangeColumn * ($this->ColWidth+$this->ColGap); - if ($this->CurrCol == 0) { // just added a page - possibly with tableheader - $y0 = $this->y; // this->y0 is global used by Columns - $y0 is internal to tablewrite - } - else { - $y0 = $this->y0; // this->y0 is global used by Columns - $y0 is internal to tablewrite - } - $y = $y0; - $outerfilled = 0; - if ($this->CurrCol != 0 && ($this->keepColumns && $this->ColActive) && !empty($tableheader) && $i > 0 ) { - $this->x = $x; - $this->y = $y; - $this->TableHeaderFooter($tableheader,$tablestartpage,$tablestartcolumn,'H',$level); - $y0 = $y=$this->y; - } - } -/*-- END COLUMNS --*/ - } - $skippage = true; - } - - $this->x = $x; - $this->y = $y; - - if ($this->kwt_saved && $level==1) { - $this->printkwtbuffer(); - $x0 = $x = $this->x; - $y0 = $y = $this->y; - $this->kwt_moved = false; - $this->kwt_saved = false; - } - - - // Set the Page & Column where table actually starts - if ($i==0 && $j==0 && $level==1) { - if (($this->mirrorMargins) && (($this->page)%2==0)) { // EVEN - $tablestartpage = 'EVEN'; - } - else if (($this->mirrorMargins) && (($this->page)%2==1)) { // ODD - $tablestartpage = 'ODD'; - } - else { $tablestartpage = ''; } - $tablestartpageno = $this->page; - if ($this->ColActive) { $tablestartcolumn = $this->CurrCol; } // *COLUMNS* - } - - - //ALIGN - $align = $cell['a']; - - -/*-- COLUMNS --*/ - // If outside columns, this is done in PaintDivBB - if ($this->ColActive) { - //OUTER FILL BGCOLOR of DIVS - if ($this->blklvl > 0 && ($j==0) && !$this->table_rotate && $level==1) { - $firstblockfill = $this->GetFirstBlockFill(); - if ($firstblockfill && $this->blklvl >= $firstblockfill) { - $divh = $maxrowheight; - // Last row - if ((!isset($cell['rowspan']) && $i == $numrows-1) || (isset($cell['rowspan']) && (($i == $numrows-1 && $cell['rowspan']<2) || ($cell['rowspan']>1 && ($i + $cell['rowspan']-1) == $numrows-1)))) { // mPDF 5.6.54 - if ($table['borders_separate']) { - $adv = $table['margin']['B'] + $table['padding']['B'] + $table['border_details']['B']['w'] + $table['border_spacing_V']/2; - } - else { - $adv = $table['margin']['B'] + $table['max_cell_border_width']['B']/2; - } - $divh += $adv; //last row: fill bottom half of bottom border (y advanced at end) - } - - if (($this->y + $divh) > $outerfilled ) { // if not already painted by previous rowspan - $bak_x = $this->x; - $bak_y = $this->y; - if ($outerfilled > $this->y) { - $divh = ($this->y + $divh) - $outerfilled; - $this->y = $outerfilled; - } - - $this->DivLn($divh,-3,false); - $outerfilled = $this->y + $divh; - // Reset current block fill - $bcor = $this->blk[$this->blklvl]['bgcolorarray']; - if ($bcor ) $this->SetFColor($bcor); - $this->x = $bak_x; - $this->y = $bak_y; - } - } - } - } - - - //TABLE BACKGROUND FILL BGCOLOR - for cellSpacing - if ($this->ColActive) { - if ($table['borders_separate']) { - $fill = isset($table['bgcolor'][-1]) ? $table['bgcolor'][-1] : 0; - if ($fill) { - $color = $this->ConvertColor($fill); - if ($color) { - $xadj = ($table['border_spacing_H']/2); - $yadj = ($table['border_spacing_V']/2); - $wadj = $table['border_spacing_H']; - $hadj = $table['border_spacing_V']; - if ($i == 0) { // Top - $yadj += $table['padding']['T'] + $table['border_details']['T']['w'] ; - $hadj += $table['padding']['T'] + $table['border_details']['T']['w'] ; - } - if ($j == 0) { // Left - $xadj += $table['padding']['L'] + $table['border_details']['L']['w'] ; - $wadj += $table['padding']['L'] + $table['border_details']['L']['w'] ; - } - if ($i == ($numrows-1) || (isset($cell['rowspan']) && ($i+$cell['rowspan']) == $numrows) || (!isset($cell['rowspan']) && ($i+1) == $numrows)) { // Bottom - $hadj += $table['padding']['B'] + $table['border_details']['B']['w'] ; - } - if ($j == ($numcols-1) || (isset($cell['colspan']) && ($j+$cell['colspan']) == $numcols) || (!isset($cell['colspan']) && ($j+1) == $numcols)) { // Right - $wadj += $table['padding']['R'] + $table['border_details']['R']['w'] ; - } - $this->SetFColor($color); - $this->Rect($x - $xadj, $y - $yadj, $w + $wadj, $h + $hadj, 'F'); - } - } - } - } -/*-- END COLUMNS --*/ - - if ($table['empty_cells']!='hide' || !empty($cell['textbuffer']) || (isset($cell['nestedcontent']) && $cell['nestedcontent']) || !$table['borders_separate'] ) { $paintcell = true; } - else { $paintcell = false; } - - //Set Borders - $bord = 0; - $bord_det = array(); - - if (!$this->simpleTables){ - if ($this->packTableData) { - if ($cell['borderbin']) { - $c = $this->_unpackCellBorder($cell['borderbin']); - $bord = $c['border']; - $bord_det = $c['border_details']; - } - } - else if ($cell['border']) { - $bord = $cell['border']; - $bord_det = $cell['border_details']; - } - } - else if ($this->simpleTables){ - if ($table['simple']['border']) { - $bord = $table['simple']['border']; - $bord_det = $table['simple']['border_details']; - } - } - - //TABLE ROW OR CELL FILL BGCOLOR - $fill = 0; - if (isset($cell['bgcolor']) && $cell['bgcolor'] && $cell['bgcolor']!='transparent') { - $fill = $cell['bgcolor']; - $leveladj = 6; - } - else if (isset($table['bgcolor'][$i]) && $table['bgcolor'][$i] && $table['bgcolor'][$i]!='transparent') { // Row color - $fill = $table['bgcolor'][$i]; - $leveladj = 3; - } - if ($fill && $paintcell) { - $color = $this->ConvertColor($fill); - if ($color) { - if ($table['borders_separate']) { - if ($this->ColActive) { - $this->SetFColor($color); - $this->Rect($x+ ($table['border_spacing_H']/2), $y+ ($table['border_spacing_V']/2), $w- $table['border_spacing_H'], $h- $table['border_spacing_V'], 'F'); - } - else { - $this->tableBackgrounds[$level*9+$leveladj][] = array('gradient'=>false, 'x'=>($x + ($table['border_spacing_H']/2)), 'y'=>($y + ($table['border_spacing_V']/2)), 'w'=>($w - $table['border_spacing_H']), 'h'=>($h - $table['border_spacing_V']), 'col'=>$color); - } - } - else { - if ($this->ColActive) { - $this->SetFColor($color); - $this->Rect($x, $y, $w, $h, 'F'); - } - else { - $this->tableBackgrounds[$level*9+$leveladj][] = array('gradient'=>false, 'x'=>$x, 'y'=>$y, 'w'=>$w, 'h'=>$h, 'col'=>$color); - } - } - } - } - -/*-- BACKGROUNDS --*/ - if (isset($cell['gradient']) && $cell['gradient'] && $paintcell){ - $g = $this->grad->parseBackgroundGradient($cell['gradient']); - if ($g) { - if ($table['borders_separate']) { - $px = $x+ ($table['border_spacing_H']/2); - $py = $y+ ($table['border_spacing_V']/2); - $pw = $w- $table['border_spacing_H']; - $ph = $h- $table['border_spacing_V']; - } - else { - $px = $x; - $py = $y; - $pw = $w; - $ph = $h; - } - if ($this->ColActive) { - $this->grad->Gradient($px, $py, $pw, $ph, $g['type'], $g['stops'], $g['colorspace'], $g['coords'], $g['extend']); - } - else { - $this->tableBackgrounds[$level*9+7][] = array('gradient'=>true, 'x'=>$px, 'y'=>$py, 'w'=>$pw, 'h'=>$ph, 'gradtype'=>$g['type'], 'stops'=>$g['stops'], 'colorspace'=>$g['colorspace'], 'coords'=>$g['coords'], 'extend'=>$g['extend'], 'clippath'=>''); - } - } - } - - if (isset($cell['background-image']) && $paintcell) { - if ($cell['background-image']['gradient'] && preg_match('/(-moz-)*(repeating-)*(linear|radial)-gradient/', $cell['background-image']['gradient'] )) { - $g = $this->grad->parseMozGradient( $cell['background-image']['gradient'] ); - if ($g) { - if ($table['borders_separate']) { - $px = $x+ ($table['border_spacing_H']/2); - $py = $y+ ($table['border_spacing_V']/2); - $pw = $w- $table['border_spacing_H']; - $ph = $h- $table['border_spacing_V']; - } - else { - $px = $x; - $py = $y; - $pw = $w; - $ph = $h; - } - if ($this->ColActive) { - $this->grad->Gradient($px, $py, $pw, $ph, $g['type'], $g['stops'], $g['colorspace'], $g['coords'], $g['extend']); - } - else { - $this->tableBackgrounds[$level*9+7][] = array('gradient'=>true, 'x'=>$px, 'y'=>$py, 'w'=>$pw, 'h'=>$ph, 'gradtype'=>$g['type'], 'stops'=>$g['stops'], 'colorspace'=>$g['colorspace'], 'coords'=>$g['coords'], 'extend'=>$g['extend'], 'clippath'=>''); - } - } - } - else if ($cell['background-image']['image_id']) { // Background pattern - $n = count($this->patterns)+1; - if ($table['borders_separate']) { - $px = $x+ ($table['border_spacing_H']/2); - $py = $y+ ($table['border_spacing_V']/2); - $pw = $w- $table['border_spacing_H']; - $ph = $h- $table['border_spacing_V']; - } - else { - $px = $x; - $py = $y; - $pw = $w; - $ph = $h; - } - if ($this->ColActive) { - list($orig_w, $orig_h, $x_repeat, $y_repeat) = $this->_resizeBackgroundImage($cell['background-image']['orig_w'], $cell['background-image']['orig_h'], $pw, $ph, $cell['background-image']['resize'], $cell['background-image']['x_repeat'], $cell['background-image']['y_repeat']); - $this->patterns[$n] = array('x'=>$px, 'y'=>$py, 'w'=>$pw, 'h'=>$ph, 'pgh'=>$this->h, 'image_id'=>$cell['background-image']['image_id'], 'orig_w'=>$orig_w, 'orig_h'=>$orig_h, 'x_pos'=>$cell['background-image']['x_pos'] , 'y_pos'=>$cell['background-image']['y_pos'] , 'x_repeat'=>$x_repeat, 'y_repeat'=>$y_repeat); - if ($cell['background-image']['opacity']>0 && $cell['background-image']['opacity']<1) { $opac = $this->SetAlpha($cell['background-image']['opacity'],'Normal',true); } - else { $opac = ''; } - $this->_out(sprintf('q /Pattern cs /P%d scn %s %.3F %.3F %.3F %.3F re f Q', $n, $opac, $px*_MPDFK, ($this->h-$py)*_MPDFK, $pw*_MPDFK, -$ph*_MPDFK)); - } - else { - $image_id = $cell['background-image']['image_id']; - $orig_w = $cell['background-image']['orig_w']; - $orig_h = $cell['background-image']['orig_h']; - $x_pos = $cell['background-image']['x_pos']; - $y_pos = $cell['background-image']['y_pos']; - $x_repeat = $cell['background-image']['x_repeat']; - $y_repeat = $cell['background-image']['y_repeat']; - $resize = $cell['background-image']['resize']; - $opacity = $cell['background-image']['opacity']; - $itype = $cell['background-image']['itype']; - $this->tableBackgrounds[$level*9+8][] = array('x'=>$px, 'y'=>$py, 'w'=>$pw, 'h'=>$ph, 'image_id'=>$image_id, 'orig_w'=>$orig_w, 'orig_h'=>$orig_h, 'x_pos'=>$x_pos, 'y_pos'=>$y_pos, 'x_repeat'=>$x_repeat, 'y_repeat'=>$y_repeat, 'clippath'=>'', 'resize'=>$resize, 'opacity'=>$opacity, 'itype'=>$itype); - } - } - } -/*-- END BACKGROUNDS --*/ - - if (isset($cell['colspan']) && $cell['colspan']>1) { $ccolsp = $cell['colspan']; } - else { $ccolsp = 1; } - if (isset($cell['rowspan']) && $cell['rowspan']>1) { $crowsp = $cell['rowspan']; } - else { $crowsp = 1; } - - - // but still need to do this for repeated headers... - if (!$table['borders_separate'] && $this->tabletheadjustfinished && !$this->simpleTables){ - if (isset($table['topntail']) && $table['topntail']) { - $bord_det['T'] = $this->border_details($table['topntail']); - $bord_det['T']['w'] /= $this->shrin_k; - $this->setBorder($bord, _BORDER_TOP); - } - if (isset($table['thead-underline']) && $table['thead-underline']) { - $bord_det['T'] = $this->border_details($table['thead-underline']); - $bord_det['T']['w'] /= $this->shrin_k; - $this->setBorder($bord, _BORDER_TOP); - } - } - - - //Get info of first row ==>> table header - //Use > 1 row if THEAD - if (isset($table['is_thead'][$i]) && $table['is_thead'][$i] && $level==1) { - if ($j==0) $tableheaderrowheight += $table['hr'][$i]; - $tableheader[$i][0]['trbackground-images'] = (isset($table['trbackground-images'][$i]) ? $table['trbackground-images'][$i] : null); - $tableheader[$i][0]['trgradients'] = (isset($table['trgradients'][$i]) ? $table['trgradients'][$i] : null); - $tableheader[$i][0]['trbgcolor'] = (isset($table['bgcolor'][$i]) ? $table['bgcolor'][$i] : null); - $tableheader[$i][$j]['x'] = $x; - $tableheader[$i][$j]['y'] = $y; - $tableheader[$i][$j]['h'] = $h; - $tableheader[$i][$j]['w'] = $w; - if (isset($cell['textbuffer'])) { $tableheader[$i][$j]['textbuffer'] = $cell['textbuffer']; } - else { $tableheader[$i][$j]['textbuffer'] = ''; } - $tableheader[$i][$j]['a'] = $cell['a']; - $tableheader[$i][$j]['R'] = $cell['R']; - - $tableheader[$i][$j]['va'] = $cell['va']; - $tableheader[$i][$j]['mih'] = $cell['mih']; - $tableheader[$i][$j]['gradient'] = (isset($cell['gradient']) ? $cell['gradient'] : null); // *BACKGROUNDS* - $tableheader[$i][$j]['background-image'] = (isset($cell['background-image']) ? $cell['background-image'] : null); // *BACKGROUNDS* - $tableheader[$i][$j]['rowspan'] = (isset($cell['rowspan']) ? $cell['rowspan'] : null); - $tableheader[$i][$j]['colspan'] = (isset($cell['colspan']) ? $cell['colspan'] : null); - $tableheader[$i][$j]['bgcolor'] = $cell['bgcolor']; - - if (!$this->simpleTables){ - $tableheader[$i][$j]['border'] = $bord; - $tableheader[$i][$j]['border_details'] = $bord_det; - } - else if ($this->simpleTables){ - $tableheader[$i][$j]['border'] = $table['simple']['border']; - $tableheader[$i][$j]['border_details'] = $table['simple']['border_details']; - } - $tableheader[$i][$j]['padding'] = $cell['padding']; - } - - // CELL BORDER - if ($bord || $bord_det) { - if ($table['borders_separate'] && $paintcell) { - $this->_tableRect($x + ($table['border_spacing_H']/2)+($bord_det['L']['w'] /2), $y+ ($table['border_spacing_V']/2)+($bord_det['T']['w'] /2), $w-$table['border_spacing_H']-($bord_det['L']['w'] /2)-($bord_det['R']['w'] /2), $h- $table['border_spacing_V']-($bord_det['T']['w'] /2)-($bord_det['B']['w']/2), $bord, $bord_det, false, $table['borders_separate']); - } - else if (!$table['borders_separate']) { - $this->_tableRect($x, $y, $w, $h, $bord, $bord_det, true, $table['borders_separate']); // true causes buffer - } - - } - - //VERTICAL ALIGN - if ($cell['R'] && INTVAL($cell['R']) > 0 && INTVAL($cell['R']) < 90 && isset($cell['va']) && $cell['va']!='B') { $cell['va']='B';} - if (!isset($cell['va']) || $cell['va']=='M') $this->y += ($h-$cell['mih'])/2; - elseif (isset($cell['va']) && $cell['va']=='B') $this->y += $h-$cell['mih']; - - // NESTED CONTENT - - // TEXT (and nested tables) - $this->divalign=$align; - - $this->divwidth=$w; - if (!empty($cell['textbuffer'])) { - if ($level==1) { - if (isset($table['is_tfoot'][$i]) && $table['is_tfoot'][$i]) { - if (preg_match('/{colsum([0-9]*)[_]*}/', $cell['textbuffer'][0][0], $m)) { - $rep = sprintf("%01.".intval($m[1])."f", $this->colsums[$j]); - $cell['textbuffer'][0][0] = preg_replace('/{colsum[0-9_]*}/', $rep ,$cell['textbuffer'][0][0]); - } - } - else if (!isset($table['is_thead'][$i])) { $this->colsums[$j] += floatval(preg_replace('/^[^0-9\.\,]*/','',$cell['textbuffer'][0][0])); } // mPDF 5.6.66 - } - $opy = $this->y; - // mPDF ITERATION - if ($this->iterationCounter) { - foreach($cell['textbuffer'] AS $k=>$t) { - if (preg_match('/{iteration ([a-zA-Z0-9_]+)}/',$t[0], $m)) { - $vname = '__'.$m[1].'_'; - if (!isset($this->$vname)) { $this->$vname = 1; } - else { $this->$vname++; } - $cell['textbuffer'][$k][0] = preg_replace('/{iteration '.$m[1].'}/', $this->$vname, $cell['textbuffer'][$k][0]); - } - } - } - - - if ($cell['R']) { - $cellPtSize = $cell['textbuffer'][0][11] / $this->shrin_k; - if (!$cellPtSize) { $cellPtSize = $this->default_font_size; } - $cellFontHeight = ($cellPtSize/_MPDFK); - $opx = $this->x; - $angle = INTVAL($cell['R']); - // Only allow 45 to 89 degrees (when bottom-aligned) or exactly 90 or -90 - if ($angle > 90) { $angle = 90; } - else if ($angle > 0 && $angle <45) { $angle = 45; } - else if ($angle < 0) { $angle = -90; } - $offset = ((sin(deg2rad($angle))) * 0.37 * $cellFontHeight); - if (isset($cell['a']) && $cell['a']=='R') { - $this->x += ($w) + ($offset) - ($cellFontHeight/3) - ($cell['padding']['R'] + ($table['border_spacing_H']/2)); - } - else if (!isset($cell['a']) || $cell['a']=='C') { - $this->x += ($w/2) + ($offset); - } - else { - $this->x += ($offset) + ($cellFontHeight/3)+($cell['padding']['L'] +($table['border_spacing_H']/2)); - } - $str = ''; - foreach($cell['textbuffer'] AS $t) { $str .= $t[0].' '; } - $str = trim($str); - if (!isset($cell['va']) || $cell['va']=='M') { - $this->y -= ($h-$cell['mih'])/2; //Undo what was added earlier VERTICAL ALIGN - if ($angle > 0) { $this->y += (($h-$cell['mih'])/2) + $cell['padding']['T'] + ($cell['mih']-($cell['padding']['T'] + $cell['padding']['B'])); } - else if ($angle < 0) { $this->y += (($h-$cell['mih'])/2)+ ($cell['padding']['T'] + ($table['border_spacing_V']/2)); } - } - elseif (isset($cell['va']) && $cell['va']=='B') { - $this->y -= $h-$cell['mih']; //Undo what was added earlier VERTICAL ALIGN - if ($angle > 0) { $this->y += $h-($cell['padding']['B'] + ($table['border_spacing_V']/2)); } - else if ($angle < 0) { $this->y += $h-$cell['mih'] + ($cell['padding']['T'] + ($table['border_spacing_V']/2)); } - } - elseif (isset($cell['va']) && $cell['va']=='T') { - if ($angle > 0) { $this->y += $cell['mih']-($cell['padding']['B'] + ($table['border_spacing_V']/2)); } - else if ($angle < 0) { $this->y += ($cell['padding']['T'] + ($table['border_spacing_V']/2)); } - } - $this->Rotate($angle,$this->x,$this->y); - $s_fs = $this->FontSizePt; - $s_f = $this->FontFamily; - $s_st = $this->FontStyle; - if (!empty($cell['textbuffer'][0][3])) { //Font Color - $cor = $cell['textbuffer'][0][3]; - $this->SetTColor($cor); - } - $s_str = $this->strike; - $this->strike = $cell['textbuffer'][0][8]; //Strikethrough - $this->SetFont($cell['textbuffer'][0][4],$cell['textbuffer'][0][2],$cellPtSize,true,true); - $this->Text($this->x,$this->y,$str); - $this->Rotate(0); - $this->SetFont($s_f,$s_st,$s_fs,true,true); - $this->SetTColor(0); - $this->strike = $s_str; - $this->x = $opx; - } - else { - - if (!$this->simpleTables){ - if ($bord_det) { - $btlw = $bord_det['L']['w']; - $btrw = $bord_det['R']['w']; - $bttw = $bord_det['T']['w']; - } - else { - $btlw = 0; - $btrw = 0; - $bttw = 0; - } - if ($table['borders_separate']) { - $xadj = $btlw + $cell['padding']['L'] +($table['border_spacing_H']/2); - $wadj = $btlw + $btrw + $cell['padding']['L'] +$cell['padding']['R'] + $table['border_spacing_H']; - $yadj = $bttw + $cell['padding']['T'] + ($table['border_spacing_H']/2); - } - else { - $xadj = $btlw/2 + $cell['padding']['L']; - $wadj = ($btlw + $btrw)/2 + $cell['padding']['L'] + $cell['padding']['R']; - $yadj = $bttw/2 + $cell['padding']['T']; - } - } - else if ($this->simpleTables){ - if ($table['borders_separate']) { // NB twice border width - $xadj = $table['simple']['border_details']['L']['w'] + $cell['padding']['L'] +($table['border_spacing_H']/2); - $wadj = $table['simple']['border_details']['L']['w'] + $table['simple']['border_details']['R']['w'] + $cell['padding']['L'] +$cell['padding']['R'] + $table['border_spacing_H']; - $yadj = $table['simple']['border_details']['T']['w'] + $cell['padding']['T'] + ($table['border_spacing_H']/2); - } - else { - $xadj = $table['simple']['border_details']['L']['w']/2 + $cell['padding']['L']; - $wadj = ($table['simple']['border_details']['L']['w'] + $table['simple']['border_details']['R']['w'])/2 + $cell['padding']['L'] + $cell['padding']['R']; - $yadj = $table['simple']['border_details']['T']['w']/2 + $cell['padding']['T']; - } - } - // mPDF 5.6.13 - $this->decimal_offset = 0; - if(substr($cell['a'],0,1) == 'D') { - if ($cell['colspan'] > 1) { $this->divalign = $c['a'] = substr($cell['a'],2,1); } - else { - $smax = $table['decimal_align'][$j]['maxs0']; - $d_content = $table['decimal_align'][$j]['maxs0'] + $table['decimal_align'][$j]['maxs1']; - $this->decimal_offset = $smax; - $extra = ($w - $d_content - $wadj); - if ($extra > 0) { - if(substr($cell['a'],2,1) == 'R') { $this->decimal_offset += $extra; } - else if(substr($cell['a'],2,1) == 'C') { $this->decimal_offset += ($extra)/2; } - } - } - } - $this->divwidth=$w-$wadj; - if ($this->divwidth == 0) { $this->divwidth = 0.0001; } - $this->x += $xadj; - $this->y += $yadj; - $this->printbuffer($cell['textbuffer'],'',true); - } - $this->y = $opy; - } - -/*-- BACKGROUNDS --*/ - if (!$this->ColActive) { - if (isset($table['trgradients'][$i]) && ($j==0 || $table['borders_separate'])) { - $g = $this->grad->parseBackgroundGradient($table['trgradients'][$i]); - if ($g) { - $gx = $x0; - $gy = $y; - $gh = $h; - $gw = $table['w'] - ($table['max_cell_border_width']['L']/2) - ($table['max_cell_border_width']['R']/2) - $table['margin']['L'] - $table['margin']['R']; - if ($table['borders_separate']) { - $gw -= ($table['padding']['L'] + $table['border_details']['L']['w'] + $table['padding']['R'] + $table['border_details']['R']['w'] + $table['border_spacing_H']); - $s = ''; - $clx = $x+ ($table['border_spacing_H']/2); - $cly = $y+ ($table['border_spacing_V']/2); - $clw = $w- $table['border_spacing_H']; - $clh = $h- $table['border_spacing_V']; - // Set clipping path - $s = ' q 0 w '; // Line width=0 - $s .= sprintf('%.3F %.3F m ', ($clx)*_MPDFK, ($this->h-($cly))*_MPDFK); // start point TL before the arc - $s .= sprintf('%.3F %.3F l ', ($clx)*_MPDFK, ($this->h-($cly+$clh))*_MPDFK); // line to BL - $s .= sprintf('%.3F %.3F l ', ($clx+$clw)*_MPDFK, ($this->h-($cly+$clh))*_MPDFK); // line to BR - $s .= sprintf('%.3F %.3F l ', ($clx+$clw)*_MPDFK, ($this->h-($cly))*_MPDFK); // line to TR - $s .= sprintf('%.3F %.3F l ', ($clx)*_MPDFK, ($this->h-($cly))*_MPDFK); // line to TL - $s .= ' W n '; // Ends path no-op & Sets the clipping path - $this->tableBackgrounds[$level*9+4][] = array('gradient'=>true, 'x'=>$gx + ($table['border_spacing_H']/2), 'y'=>$gy + ($table['border_spacing_V']/2), 'w'=>$gw - $table['border_spacing_V'], 'h'=>$gh - $table['border_spacing_H'], 'gradtype'=>$g['type'], 'stops'=>$g['stops'], 'colorspace'=>$g['colorspace'], 'coords'=>$g['coords'], 'extend'=>$g['extend'], 'clippath'=>$s); - } - else { - $this->tableBackgrounds[$level*9+4][] = array('gradient'=>true, 'x'=>$gx, 'y'=>$gy, 'w'=>$gw, 'h'=>$gh, 'gradtype'=>$g['type'], 'stops'=>$g['stops'], 'colorspace'=>$g['colorspace'], 'coords'=>$g['coords'], 'extend'=>$g['extend'], 'clippath'=>''); - } - } - } - if (isset($table['trbackground-images'][$i]) && ($j==0 || $table['borders_separate'])) { - if ($table['trbackground-images'][$i]['gradient'] && preg_match('/(-moz-)*(repeating-)*(linear|radial)-gradient/', $table['trbackground-images'][$i]['gradient'] )) { - $g = $this->grad->parseMozGradient( $table['trbackground-images'][$i]['gradient'] ); - if ($g) { - $gx = $x0; - $gy = $y; - $gh = $h; - $gw = $table['w'] - ($table['max_cell_border_width']['L']/2) - ($table['max_cell_border_width']['R']/2) - $table['margin']['L'] - $table['margin']['R']; - if ($table['borders_separate']) { - $gw -= ($table['padding']['L'] + $table['border_details']['L']['w'] + $table['padding']['R'] + $table['border_details']['R']['w'] + $table['border_spacing_H']); - $s = ''; - $clx = $x+ ($table['border_spacing_H']/2); - $cly = $y+ ($table['border_spacing_V']/2); - $clw = $w- $table['border_spacing_H']; - $clh = $h- $table['border_spacing_V']; - // Set clipping path - $s = ' q 0 w '; // Line width=0 - $s .= sprintf('%.3F %.3F m ', ($clx)*_MPDFK, ($this->h-($cly))*_MPDFK); // start point TL before the arc - $s .= sprintf('%.3F %.3F l ', ($clx)*_MPDFK, ($this->h-($cly+$clh))*_MPDFK); // line to BL - $s .= sprintf('%.3F %.3F l ', ($clx+$clw)*_MPDFK, ($this->h-($cly+$clh))*_MPDFK); // line to BR - $s .= sprintf('%.3F %.3F l ', ($clx+$clw)*_MPDFK, ($this->h-($cly))*_MPDFK); // line to TR - $s .= sprintf('%.3F %.3F l ', ($clx)*_MPDFK, ($this->h-($cly))*_MPDFK); // line to TL - $s .= ' W n '; // Ends path no-op & Sets the clipping path - $this->tableBackgrounds[$level*9+4][] = array('gradient'=>true, 'x'=>$gx + ($table['border_spacing_H']/2), 'y'=>$gy + ($table['border_spacing_V']/2), 'w'=>$gw - $table['border_spacing_V'], 'h'=>$gh - $table['border_spacing_H'], 'gradtype'=>$g['type'], 'stops'=>$g['stops'], 'colorspace'=>$g['colorspace'], 'coords'=>$g['coords'], 'extend'=>$g['extend'], 'clippath'=>$s); - } - else { - $this->tableBackgrounds[$level*9+4][] = array('gradient'=>true, 'x'=>$gx, 'y'=>$gy, 'w'=>$gw, 'h'=>$gh, 'gradtype'=>$g['type'], 'stops'=>$g['stops'], 'colorspace'=>$g['colorspace'], 'coords'=>$g['coords'], 'extend'=>$g['extend'], 'clippath'=>''); - } - } - } - else { - $image_id = $table['trbackground-images'][$i]['image_id']; - $orig_w = $table['trbackground-images'][$i]['orig_w']; - $orig_h = $table['trbackground-images'][$i]['orig_h']; - $x_pos = $table['trbackground-images'][$i]['x_pos']; - $y_pos = $table['trbackground-images'][$i]['y_pos']; - $x_repeat = $table['trbackground-images'][$i]['x_repeat']; - $y_repeat = $table['trbackground-images'][$i]['y_repeat']; - $resize = $table['trbackground-images'][$i]['resize']; - $opacity = $table['trbackground-images'][$i]['opacity']; - $itype = $table['trbackground-images'][$i]['itype']; - $clippath = ''; - $gx = $x0; - $gy = $y; - $gh = $h; - $gw = $table['w'] - ($table['max_cell_border_width']['L']/2) - ($table['max_cell_border_width']['R']/2) - $table['margin']['L'] - $table['margin']['R']; - if ($table['borders_separate']) { - $gw -= ($table['padding']['L'] + $table['border_details']['L']['w'] + $table['padding']['R'] + $table['border_details']['R']['w'] + $table['border_spacing_H']); - $s = ''; - $clx = $x + ($table['border_spacing_H']/2); - $cly = $y + ($table['border_spacing_V']/2); - $clw = $w - $table['border_spacing_H']; - $clh = $h - $table['border_spacing_V']; - // Set clipping path - $s = ' q 0 w '; // Line width=0 - $s .= sprintf('%.3F %.3F m ', ($clx)*_MPDFK, ($this->h-($cly))*_MPDFK); // start point TL - $s .= sprintf('%.3F %.3F l ', ($clx)*_MPDFK, ($this->h-($cly+$clh))*_MPDFK); // line to BL - $s .= sprintf('%.3F %.3F l ', ($clx+$clw)*_MPDFK, ($this->h-($cly+$clh))*_MPDFK); // line to BR - $s .= sprintf('%.3F %.3F l ', ($clx+$clw)*_MPDFK, ($this->h-($cly))*_MPDFK); // line to TR - $s .= sprintf('%.3F %.3F l ', ($clx)*_MPDFK, ($this->h-($cly))*_MPDFK); // line to TL - $s .= ' W n '; // Ends path no-op & Sets the clipping path - $this->tableBackgrounds[$level*9+5][] = array('x'=>$gx + ($table['border_spacing_H']/2), 'y'=>$gy + ($table['border_spacing_V']/2), 'w'=>$gw - $table['border_spacing_V'], 'h'=>$gh - $table['border_spacing_H'], 'image_id'=>$image_id, 'orig_w'=>$orig_w, 'orig_h'=>$orig_h, 'x_pos'=>$x_pos, 'y_pos'=>$y_pos, 'x_repeat'=>$x_repeat, 'y_repeat'=>$y_repeat, 'clippath'=>$s, 'resize'=>$resize, 'opacity'=>$opacity, 'itype'=>$itype); - } - else { - $this->tableBackgrounds[$level*9+5][] = array('x'=>$gx, 'y'=>$gy, 'w'=>$gw, 'h'=>$gh, 'image_id'=>$image_id, 'orig_w'=>$orig_w, 'orig_h'=>$orig_h, 'x_pos'=>$x_pos, 'y_pos'=>$y_pos, 'x_repeat'=>$x_repeat, 'y_repeat'=>$y_repeat, 'clippath'=>'', 'resize'=>$resize, 'opacity'=>$opacity, 'itype'=>$itype); - } - } - } - } - -/*-- END BACKGROUNDS --*/ - - // TABLE BORDER - if separate - if (($table['borders_separate'] || ($this->simpleTables && !$table['simple']['border'])) && $table['border']) { - $halfspaceL = $table['padding']['L'] + ($table['border_spacing_H']/2); - $halfspaceR = $table['padding']['R'] + ($table['border_spacing_H']/2); - $halfspaceT = $table['padding']['T'] + ($table['border_spacing_V']/2); - $halfspaceB = $table['padding']['B'] + ($table['border_spacing_V']/2); - $tbx = $x; - $tby = $y; - $tbw = $w; - $tbh = $h; - $tab_bord = 0; - - $corner = ''; - if ($i == 0) { // Top - $tby -= $halfspaceT + ($table['border_details']['T']['w']/2); - $tbh += $halfspaceT + ($table['border_details']['T']['w']/2); - $this->setBorder($tab_bord , _BORDER_TOP); - $corner .= 'T'; - } - if ($i == ($numrows-1) || (isset($cell['rowspan']) && ($i+$cell['rowspan']) == $numrows)) { // Bottom - $tbh += $halfspaceB + ($table['border_details']['B']['w']/2); - $this->setBorder($tab_bord , _BORDER_BOTTOM); - $corner .= 'B'; - } - if ($j == 0) { // Left - $tbx -= $halfspaceL + ($table['border_details']['L']['w']/2); - $tbw += $halfspaceL + ($table['border_details']['L']['w']/2); - $this->setBorder($tab_bord , _BORDER_LEFT); - $corner .= 'L'; - } - if ($j == ($numcols-1) || (isset($cell['colspan']) && ($j+$cell['colspan']) == $numcols)) { // Right - $tbw += $halfspaceR + ($table['border_details']['R']['w']/2); - $this->setBorder($tab_bord , _BORDER_RIGHT); - $corner .= 'R'; - } - $this->_tableRect($tbx, $tby, $tbw, $tbh, $tab_bord , $table['border_details'], false, $table['borders_separate'], 'table', $corner, $table['border_spacing_V'], $table['border_spacing_H'] ); - } - - unset($cell ); - //Reset values - $this->Reset(); - - }//end of (if isset(cells)...) - }// end of columns - - $newpagestarted = false; - $this->tabletheadjustfinished = false; - - if ($this->ColActive && $i < $numrows-1 && $level==1) { $this->breakpoints[$this->CurrCol][] = $y + $h; } // *COLUMNS* - -/*-- COLUMNS --*/ - if ($this->ColActive) { - if (count($this->cellBorderBuffer)) { $this->printcellbuffer(); } - } -/*-- END COLUMNS --*/ - - if ($i == $numrows-1) { $this->y = $y + $h; } //last row jump (update this->y position) - if ($this->table_rotate && $level==1) { - $this->tbrot_h += $h; - } - - - - }// end of rows - - if ($this->progressBar) { $this->UpdateProgressBar(7,70,' '); } // *PROGRESS-BAR* - - if (count($this->cellBorderBuffer)) { $this->printcellbuffer(); } - - - if ($this->tableClipPath ) { $this->_out("Q"); } - $this->tableClipPath = ''; - - // Advance down page by half width of bottom border - if ($table['borders_separate']) { $this->y += $table['padding']['B'] + $table['border_details']['B']['w'] + $table['border_spacing_V']/2; } - else { $this->y += $table['max_cell_border_width']['B']/2; } - - if ($table['borders_separate'] && $level==1) { $this->tbrot_h += $table['margin']['B'] + $table['padding']['B'] + $table['border_details']['B']['w'] + $table['border_spacing_V']/2; } - else if ($level==1) { $this->tbrot_h += $table['margin']['B'] + $table['max_cell_border_width']['B']/2; } - - $bx = $x0; - $by = $y0; - if ($table['borders_separate']) { - $bx -= ($table['padding']['L'] + $table['border_details']['L']['w'] + $table['border_spacing_H']/2); - if ($tablestartpageno != $this->page) { // IF broken across page - $by += $table['max_cell_border_width']['T']/2; - if (empty($tableheader)) { $by -= ($table['border_spacing_V']/2); } - } - else if ($split && $startrow > 0 && empty($tableheader)) { - $by -= ($table['border_spacing_V']/2); - } - else { - $by -= ($table['padding']['T'] + $table['border_details']['T']['w'] + $table['border_spacing_V']/2); - } - } - else if ($tablestartpageno != $this->page && !empty($tableheader)) { $by += $maxbwtop /2; } - $by -= $tableheaderadj; - $bh = $this->y - $by; - if (!$table['borders_separate']) { $bh -= $table['max_cell_border_width']['B']/2; } - - if ($split) { - $bw = 0; - $finalSpread = true; - for($t=$startcol; $t<$numcols; $t++) { - if ($table['colPg'][$t] == $splitpg) { $bw += $table['wc'][$t]; } - if ($table['colPg'][$t] > $splitpg) { $finalSpread = false; break; } - } - if ($startcol==0) { $firstSpread = true; } - else { $firstSpread = false; } - if ($table['borders_separate']) { - $bw += $table['border_spacing_H']; - if ($firstSpread) { - $bw += $table['padding']['L'] + $table['border_details']['L']['w']; - } - else { - $bx += ($table['padding']['L'] + $table['border_details']['L']['w']); - } - if ($finalSpread) { - $bw += $table['padding']['R'] + $table['border_details']['R']['w']; - } - } - } - else { - $bw = $table['w'] - ($table['max_cell_border_width']['L']/2) - ($table['max_cell_border_width']['R']/2) - $table['margin']['L'] - $table['margin']['R']; - } - - if (!$this->ColActive) { - if (isset($table['bgcolor'][-1])) { - $color = $this->ConvertColor($table['bgcolor'][-1]); - if ($color) { - $this->tableBackgrounds[$level*9][] = array('gradient'=>false, 'x'=>$bx, 'y'=>$by, 'w'=>$bw, 'h'=>$bh, 'col'=>$color); - } - } - -/*-- BACKGROUNDS --*/ - if (isset($table['gradient'])) { - $g = $this->grad->parseBackgroundGradient($table['gradient']); - if ($g) { - $this->tableBackgrounds[$level*9+1][] = array('gradient'=>true, 'x'=>$bx, 'y'=>$by, 'w'=>$bw, 'h'=>$bh, 'gradtype'=>$g['type'], 'stops'=>$g['stops'], 'colorspace'=>$g['colorspace'], 'coords'=>$g['coords'], 'extend'=>$g['extend'], 'clippath'=>''); - } - } - - if (isset($table['background-image'])) { - if ($table['background-image']['gradient'] && preg_match('/(-moz-)*(repeating-)*(linear|radial)-gradient/', $table['background-image']['gradient'] )) { - $g = $this->grad->parseMozGradient( $table['background-image']['gradient'] ); - if ($g) { - $this->tableBackgrounds[$level*9+1][] = array('gradient'=>true, 'x'=>$bx, 'y'=>$by, 'w'=>$bw, 'h'=>$bh, 'gradtype'=>$g['type'], 'stops'=>$g['stops'], 'colorspace'=>$g['colorspace'], 'coords'=>$g['coords'], 'extend'=>$g['extend'], 'clippath'=>''); - } - } - else { - $image_id = $table['background-image']['image_id']; - $orig_w = $table['background-image']['orig_w']; - $orig_h = $table['background-image']['orig_h']; - $x_pos = $table['background-image']['x_pos']; - $y_pos = $table['background-image']['y_pos']; - $x_repeat = $table['background-image']['x_repeat']; - $y_repeat = $table['background-image']['y_repeat']; - $resize = $table['background-image']['resize']; - $opacity = $table['background-image']['opacity']; - $itype = $table['background-image']['itype']; - $this->tableBackgrounds[$level*9+2][] = array('x'=>$bx, 'y'=>$by, 'w'=>$bw, 'h'=>$bh, 'image_id'=>$image_id, 'orig_w'=>$orig_w, 'orig_h'=>$orig_h, 'x_pos'=>$x_pos, 'y_pos'=>$y_pos, 'x_repeat'=>$x_repeat, 'y_repeat'=>$y_repeat, 'clippath'=>'', 'resize'=>$resize, 'opacity'=>$opacity, 'itype'=>$itype); - } - } -/*-- END BACKGROUNDS --*/ - } - - if ($this->tableBackgrounds && $level == 1) { - $s = $this->PrintTableBackgrounds(); - if ($this->table_rotate && !$this->processingHeader && !$this->processingFooter) { - $this->tablebuffer = preg_replace('/(___TABLE___BACKGROUNDS'.$this->uniqstr.')/', '\\1'."\n".$s."\n", $this->tablebuffer); - if ($level == 1) { $this->tablebuffer = preg_replace('/(___TABLE___BACKGROUNDS'.$this->uniqstr.')/', " ", $this->tablebuffer); } - } - else if ($this->bufferoutput) { - $this->headerbuffer = preg_replace('/(___TABLE___BACKGROUNDS'.$this->uniqstr.')/', '\\1'."\n".$s."\n", $this->headerbuffer); - if ($level == 1) { $this->headerbuffer = preg_replace('/(___TABLE___BACKGROUNDS'.$this->uniqstr.')/', " ", $this->headerbuffer ); } - } - else { - $this->pages[$this->page] = preg_replace('/(___TABLE___BACKGROUNDS'.$this->uniqstr.')/', '\\1'."\n".$s."\n", $this->pages[$this->page]); - if ($level == 1) { $this->pages[$this->page] = preg_replace('/(___TABLE___BACKGROUNDS'.$this->uniqstr.')/', " ", $this->pages[$this->page]); } - } - $this->tableBackgrounds = array(); - } - - - // TABLE BOTTOM MARGIN - if ($table['margin']['B']) { - if (!$this->table_rotate && $level==1) { - $this->DivLn($table['margin']['B'],$this->blklvl,true); // collapsible - } - else { - $this->y += ($table['margin']['B']); - } - } - - if ($this->ColActive && $level==1) { $this->breakpoints[$this->CurrCol][] = $this->y; } // *COLUMNS* - - if ($this->cacheTables) { fclose($fh); } - - if ($split) { - // Are there more columns to print on a next page? - if ($lastCol < $numcols-1) { - $splitpg++; - $startcol = $lastCol + 1; - return array(false, $startrow, $startcol, $splitpg, $returny, $y0); - } - else { - if ($this->cacheTables) { - unlink($table['cache']); - @unlink($table['cache'].'.bak'); - } - return array(true,0,0,0); - } - } - if ($this->cacheTables) { - unlink($table['cache']); - @unlink($table['cache'].'.bak'); - } - -}//END OF FUNCTION _tableWrite() - - -/////////////////////////END OF TABLE CODE////////////////////////////////// -/*-- END TABLES --*/ - -function _putextgstates() { - for ($i = 1; $i <= count($this->extgstates); $i++) { - $this->_newobj(); - $this->extgstates[$i]['n'] = $this->n; - $this->_out('<</Type /ExtGState'); - foreach ($this->extgstates[$i]['parms'] as $k=>$v) - $this->_out('/'.$k.' '.$v); - $this->_out('>>'); - $this->_out('endobj'); - } -} - -function _putocg() { - if ($this->hasOC) { // mPDF 5.6.01 - $this->_newobj(); - $this->n_ocg_print=$this->n; - $this->_out('<</Type /OCG /Name '.$this->_textstring('Print only')); - $this->_out('/Usage <</Print <</PrintState /ON>> /View <</ViewState /OFF>>>>>>'); - $this->_out('endobj'); - $this->_newobj(); - $this->n_ocg_view=$this->n; - $this->_out('<</Type /OCG /Name '.$this->_textstring('Screen only')); - $this->_out('/Usage <</Print <</PrintState /OFF>> /View <</ViewState /ON>>>>>>'); - $this->_out('endobj'); - $this->_newobj(); - $this->n_ocg_hidden=$this->n; - $this->_out('<</Type /OCG /Name '.$this->_textstring('Hidden')); - $this->_out('/Usage <</Print <</PrintState /OFF>> /View <</ViewState /OFF>>>>>>'); - $this->_out('endobj'); - } - // mPDF 5.6.01 Add Layers - if (count($this->layers)) { - ksort($this->layers); - foreach($this->layers as $id=>$layer) { - $this->_newobj(); - $this->layers[$id]['n'] = $this->n; - // mPDF 5.6.28 - if (isset($this->layerDetails[$id]['name']) && $this->layerDetails[$id]['name']) { - $name = $this->layerDetails[$id]['name']; - } - else { $name = $layer['name']; } - $this->_out('<</Type /OCG /Name '.$this->_UTF16BEtextstring($name).'>>'); - $this->_out('endobj'); - } - } -} - - -/*-- IMPORTS --*/ - - // from mPDFI - function _putimportedobjects() { - if (is_array($this->parsers) && count($this->parsers) > 0) { - foreach($this->parsers AS $filename => $p) { - $this->current_parser =& $this->parsers[$filename]; - if (is_array($this->_obj_stack[$filename])) { - while($n = key($this->_obj_stack[$filename])) { - $nObj = $this->current_parser->pdf_resolve_object($this->current_parser->c,$this->_obj_stack[$filename][$n][1]); - $this->_newobj($this->_obj_stack[$filename][$n][0]); - if ($nObj[0] == PDF_TYPE_STREAM) { - $this->pdf_write_value($nObj); - } - else { - $this->pdf_write_value($nObj[1]); - } - $this->_out('endobj'); - $this->_obj_stack[$filename][$n] = null; // free memory - unset($this->_obj_stack[$filename][$n]); - reset($this->_obj_stack[$filename]); - } - } - } - } - } - - - function _putformxobjects() { - $filter=($this->compress) ? '/Filter /FlateDecode ' : ''; - reset($this->tpls); - foreach($this->tpls AS $tplidx => $tpl) { - $p=($this->compress) ? gzcompress($tpl['buffer']) : $tpl['buffer']; - $this->_newobj(); - $this->tpls[$tplidx]['n'] = $this->n; - $this->_out('<<'.$filter.'/Type /XObject'); - $this->_out('/Subtype /Form'); - $this->_out('/FormType 1'); - // Left/Bottom/Right/Top - $this->_out(sprintf('/BBox [%.2F %.2F %.2F %.2F]', - $tpl['box']['x']*_MPDFK, - $tpl['box']['y']*_MPDFK, - ($tpl['box']['x'] + $tpl['box']['w'])*_MPDFK, - ($tpl['box']['y'] + $tpl['box']['h'])*_MPDFK ) - ); - - - if (isset($tpl['box'])) - $this->_out(sprintf('/Matrix [1 0 0 1 %.5F %.5F]',-$tpl['box']['x']*_MPDFK, -$tpl['box']['y']*_MPDFK)); - $this->_out('/Resources '); - - if (isset($tpl['resources'])) { - $this->current_parser =& $tpl['parser']; - $this->pdf_write_value($tpl['resources']); - } else { - $this->_out('<</ProcSet [/PDF /Text /ImageB /ImageC /ImageI]'); - if (isset($this->_res['tpl'][$tplidx]['fonts']) && count($this->_res['tpl'][$tplidx]['fonts'])) { - $this->_out('/Font <<'); - foreach($this->_res['tpl'][$tplidx]['fonts'] as $font) - $this->_out('/F'.$font['i'].' '.$font['n'].' 0 R'); - $this->_out('>>'); - } - if(isset($this->_res['tpl'][$tplidx]['images']) && count($this->_res['tpl'][$tplidx]['images']) || - isset($this->_res['tpl'][$tplidx]['tpls']) && count($this->_res['tpl'][$tplidx]['tpls'])) - { - $this->_out('/XObject <<'); - if (isset($this->_res['tpl'][$tplidx]['images']) && count($this->_res['tpl'][$tplidx]['images'])) { - foreach($this->_res['tpl'][$tplidx]['images'] as $image) - $this->_out('/I'.$image['i'].' '.$image['n'].' 0 R'); - } - if (isset($this->_res['tpl'][$tplidx]['tpls']) && count($this->_res['tpl'][$tplidx]['tpls'])) { - foreach($this->_res['tpl'][$tplidx]['tpls'] as $i => $itpl) - $this->_out($this->tplprefix.$i.' '.$itpl['n'].' 0 R'); - } - $this->_out('>>'); - } - $this->_out('>>'); - } - - $this->_out('/Length '.strlen($p).' >>'); - $this->_putstream($p); - $this->_out('endobj'); - } - } - -/*-- END IMPORTS --*/ - - -function _putpatterns() { - for ($i = 1; $i <= count($this->patterns); $i++) { - $x = $this->patterns[$i]['x']; - $y = $this->patterns[$i]['y']; - $w = $this->patterns[$i]['w']; - $h = $this->patterns[$i]['h']; - $pgh = $this->patterns[$i]['pgh']; - $orig_w = $this->patterns[$i]['orig_w']; - $orig_h = $this->patterns[$i]['orig_h']; - $image_id = $this->patterns[$i]['image_id']; - $itype = $this->patterns[$i]['itype']; - $bpa = $this->patterns[$i]['bpa']; // mPDF 5.6.10 background positioning area - - if ($this->patterns[$i]['x_repeat']) { $x_repeat = true; } - else { $x_repeat = false; } - if ($this->patterns[$i]['y_repeat']) { $y_repeat = true; } - else { $y_repeat = false; } - $x_pos = $this->patterns[$i]['x_pos']; - if (stristr($x_pos ,'%') ) { - $x_pos += 0; - $x_pos /= 100; - if (isset($bpa['w']) && $bpa['w']) $x_pos = ($bpa['w'] * $x_pos) - ($orig_w/_MPDFK * $x_pos); // mPDF 5.6.10 - else $x_pos = ($w * $x_pos) - ($orig_w/_MPDFK * $x_pos); - } - $y_pos = $this->patterns[$i]['y_pos']; - if (stristr($y_pos ,'%') ) { - $y_pos += 0; - $y_pos /= 100; - if (isset($bpa['h']) && $bpa['h']) $y_pos = ($bpa['h'] * $y_pos) - ($orig_h/_MPDFK * $y_pos); // mPDF 5.6.10 - else $y_pos = ($h * $y_pos) - ($orig_h/_MPDFK * $y_pos); - } - if (isset($bpa['x']) && $bpa['x']) $adj_x = ($x_pos + $bpa['x']) *_MPDFK; // mPDF 5.6.10 - else $adj_x = ($x_pos + $x) *_MPDFK; - if (isset($bpa['y']) && $bpa['y']) $adj_y = (($pgh - $y_pos - $bpa['y'])*_MPDFK) - $orig_h ; // mPDF 5.6.10 - else $adj_y = (($pgh - $y_pos - $y)*_MPDFK) - $orig_h ; - $img_obj = false; - if ($itype == 'svg' || $itype == 'wmf') { - foreach($this->formobjects AS $fo) { - if ($fo['i'] == $image_id) { - $img_obj = $fo['n']; - $fo_w = $fo['w']; - $fo_h = -$fo['h']; - $wmf_x = $fo['x']; - $wmf_y = $fo['y']; - break; - } - } - } - else { - foreach($this->images AS $img) { - if ($img['i'] == $image_id) { $img_obj = $img['n']; break; } - } - } - if (!$img_obj ) { echo "Problem: Image object not found for background pattern ".$img['i']; exit; } - - $this->_newobj(); - $this->_out('<</ProcSet [/PDF /Text /ImageB /ImageC /ImageI]'); - if ($itype == 'svg' || $itype == 'wmf') { - $this->_out('/XObject <</FO'.$image_id.' '.$img_obj.' 0 R >>'); - // ******* ADD ANY ExtGStates, Shading AND Fonts needed for the FormObject - // Set in classes/svg array['fo'] = true - // Required that _putshaders comes before _putpatterns in _putresources - // This adds any resources associated with any FormObject to every Formobject - overkill but works! - if (count($this->extgstates)) { - $this->_out('/ExtGState <<'); - foreach($this->extgstates as $k=>$extgstate) - if (isset($extgstate['fo']) && $extgstate['fo']) { - if (isset($extgstate['trans'])) $this->_out('/'.$extgstate['trans'].' '.$extgstate['n'].' 0 R'); - else $this->_out('/GS'.$k.' '.$extgstate['n'].' 0 R'); - } - $this->_out('>>'); - } -/*-- BACKGROUNDS --*/ - if (isset($this->gradients) AND (count($this->gradients) > 0)) { - $this->_out('/Shading <<'); - foreach ($this->gradients as $id => $grad) { - if (isset($grad['fo']) && $grad['fo']) { - $this->_out('/Sh'.$id.' '.$grad['id'].' 0 R'); - } - } - $this->_out('>>'); - } -/*-- END BACKGROUNDS --*/ - $this->_out('/Font <<'); - foreach($this->fonts as $font) { - if (!$font['used'] && $font['type']=='TTF') { continue; } - if (isset($font['fo']) && $font['fo']) { - if ($font['type']=='TTF' && ($font['sip'] || $font['smp'])) { - foreach($font['n'] AS $k => $fid) { - $this->_out('/F'.$font['subsetfontids'][$k].' '.$font['n'][$k].' 0 R'); - } - } - else { - $this->_out('/F'.$font['i'].' '.$font['n'].' 0 R'); - } - } - } - $this->_out('>>'); - } - else { - $this->_out('/XObject <</I'.$image_id.' '.$img_obj.' 0 R >>'); - } - $this->_out('>>'); - $this->_out('endobj'); - - $this->_newobj(); - $this->patterns[$i]['n'] = $this->n; - $this->_out('<< /Type /Pattern /PatternType 1 /PaintType 1 /TilingType 2'); - $this->_out('/Resources '. ($this->n-1) .' 0 R'); - - $this->_out(sprintf('/BBox [0 0 %.3F %.3F]',$orig_w,$orig_h)); - if ($x_repeat) { $this->_out(sprintf('/XStep %.3F',$orig_w)); } - else { $this->_out(sprintf('/XStep %d',99999)); } - if ($y_repeat) { $this->_out(sprintf('/YStep %.3F',$orig_h)); } - else { $this->_out(sprintf('/YStep %d',99999)); } - - if ($itype == 'svg' || $itype == 'wmf') { - $this->_out(sprintf('/Matrix [1 0 0 -1 %.3F %.3F]', $adj_x, ($adj_y+$orig_h))); - $s = sprintf("q %.3F 0 0 %.3F %.3F %.3F cm /FO%d Do Q",($orig_w/$fo_w), (-$orig_h/$fo_h), -($orig_w/$fo_w)*$wmf_x, ($orig_w/$fo_w)*$wmf_y, $image_id); - } - else { - $this->_out(sprintf('/Matrix [1 0 0 1 %.3F %.3F]',$adj_x,$adj_y)); - $s = sprintf("q %.3F 0 0 %.3F 0 0 cm /I%d Do Q",$orig_w,$orig_h,$image_id); - } - - if ($this->compress) { - $this->_out('/Filter /FlateDecode'); - $s = gzcompress($s); - } - $this->_out('/Length '.strlen($s).'>>'); - $this->_putstream($s); - $this->_out('endobj'); - } -} - -/*-- BACKGROUNDS --*/ -function _putshaders() { - $maxid = count($this->gradients); //index for transparency gradients - foreach ($this->gradients as $id => $grad) { - if (($grad['type'] == 2 || $grad['type'] == 3) && empty($grad['is_mask'])) { - $this->_newobj(); - $this->_out('<<'); - $this->_out('/FunctionType 3'); - $this->_out('/Domain [0 1]'); - $fn = array(); - $bd = array(); - $en = array(); - for($i=0; $i<(count($grad['stops'])-1); $i++) { - $fn[] = ($this->n+1+$i).' 0 R'; - $en[] = '0 1'; - if ($i>0) { $bd[] = sprintf('%.3F', $grad['stops'][$i]['offset']); } - } - $this->_out('/Functions ['.implode(' ',$fn).']'); - $this->_out('/Bounds ['.implode(' ',$bd).']'); - $this->_out('/Encode ['.implode(' ',$en).']'); - $this->_out('>>'); - $this->_out('endobj'); - $f1 = $this->n; - for($i=0; $i<(count($grad['stops'])-1); $i++) { - $this->_newobj(); - $this->_out('<<'); - $this->_out('/FunctionType 2'); - $this->_out('/Domain [0 1]'); - $this->_out('/C0 ['.$grad['stops'][$i]['col'].']'); - $this->_out('/C1 ['.$grad['stops'][$i+1]['col'].']'); - $this->_out('/N 1'); - $this->_out('>>'); - $this->_out('endobj'); - } - } - if ($grad['type'] == 2 || $grad['type'] == 3) { - if (isset($grad['trans']) && $grad['trans']) { - $this->_newobj(); - $this->_out('<<'); - $this->_out('/FunctionType 3'); - $this->_out('/Domain [0 1]'); - $fn = array(); - $bd = array(); - $en = array(); - for($i=0; $i<(count($grad['stops'])-1); $i++) { - $fn[] = ($this->n+1+$i).' 0 R'; - $en[] = '0 1'; - if ($i>0) { $bd[] = sprintf('%.3F', $grad['stops'][$i]['offset']); } - } - $this->_out('/Functions ['.implode(' ',$fn).']'); - $this->_out('/Bounds ['.implode(' ',$bd).']'); - $this->_out('/Encode ['.implode(' ',$en).']'); - $this->_out('>>'); - $this->_out('endobj'); - $f2 = $this->n; - for($i=0; $i<(count($grad['stops'])-1); $i++) { - $this->_newobj(); - $this->_out('<<'); - $this->_out('/FunctionType 2'); - $this->_out('/Domain [0 1]'); - $this->_out(sprintf('/C0 [%.3F]', $grad['stops'][$i]['opacity'])); - $this->_out(sprintf('/C1 [%.3F]', $grad['stops'][$i+1]['opacity'])); - $this->_out('/N 1'); - $this->_out('>>'); - $this->_out('endobj'); - } - } - } - - if (empty($grad['is_mask'])) { - $this->_newobj(); - $this->_out('<<'); - $this->_out('/ShadingType '.$grad['type']); - if (isset($grad['colorspace'])) { - $this->_out('/ColorSpace /Device'.$grad['colorspace']); // Can use CMYK if all C0 and C1 above have 4 values - } else { - $this->_out('/ColorSpace /DeviceRGB'); - } - if ($grad['type'] == 2) { - $this->_out(sprintf('/Coords [%.3F %.3F %.3F %.3F]', $grad['coords'][0], $grad['coords'][1], $grad['coords'][2], $grad['coords'][3])); - $this->_out('/Function '.$f1.' 0 R'); - $this->_out('/Extend ['.$grad['extend'][0].' '.$grad['extend'][1].'] '); - $this->_out('>>'); - } - else if ($grad['type'] == 3) { - //x0, y0, r0, x1, y1, r1 - //at this this time radius of inner circle is 0 - $ir = 0; - if (isset($grad['coords'][5]) && $grad['coords'][5]) { $ir = $grad['coords'][5]; } - $this->_out(sprintf('/Coords [%.3F %.3F %.3F %.3F %.3F %.3F]', $grad['coords'][0], $grad['coords'][1], $ir, $grad['coords'][2], $grad['coords'][3], $grad['coords'][4])); - $this->_out('/Function '.$f1.' 0 R'); - $this->_out('/Extend ['.$grad['extend'][0].' '.$grad['extend'][1].'] '); - $this->_out('>>'); - } - else if ($grad['type']==6) { - $this->_out('/BitsPerCoordinate 16'); - $this->_out('/BitsPerComponent 8'); - if ($grad['colorspace'] == 'CMYK') { $this->_out('/Decode[0 1 0 1 0 1 0 1 0 1 0 1]'); } - else if ($grad['colorspace'] == 'Gray') { $this->_out('/Decode[0 1 0 1 0 1]'); } - else { $this->_out('/Decode[0 1 0 1 0 1 0 1 0 1]'); } - $this->_out('/BitsPerFlag 8'); - $this->_out('/Length '.strlen($grad['stream'])); - $this->_out('>>'); - $this->_putstream($grad['stream']); - } - $this->_out('endobj'); - } - - $this->gradients[$id]['id'] = $this->n; - - // set pattern object - $this->_newobj(); - $out = '<< /Type /Pattern /PatternType 2'; - $out .= ' /Shading '.$this->gradients[$id]['id'].' 0 R'; - $out .= ' >>'; - $out .= "\n".'endobj'; - $this->_out($out); - - - $this->gradients[$id]['pattern'] = $this->n; - - if (isset($grad['trans']) && $grad['trans']) { - // luminosity pattern - $transid = $id + $maxid; - $this->_newobj(); - $this->_out('<<'); - $this->_out('/ShadingType '.$grad['type']); - $this->_out('/ColorSpace /DeviceGray'); - if ($grad['type'] == 2) { - $this->_out(sprintf('/Coords [%.3F %.3F %.3F %.3F]', $grad['coords'][0], $grad['coords'][1], $grad['coords'][2], $grad['coords'][3])); - $this->_out('/Function '.$f2.' 0 R'); - $this->_out('/Extend ['.$grad['extend'][0].' '.$grad['extend'][1].'] '); - $this->_out('>>'); - } - else if ($grad['type'] == 3) { - //x0, y0, r0, x1, y1, r1 - //at this this time radius of inner circle is 0 - $ir = 0; - if (isset($grad['coords'][5]) && $grad['coords'][5]) { $ir = $grad['coords'][5]; } - $this->_out(sprintf('/Coords [%.3F %.3F %.3F %.3F %.3F %.3F]', $grad['coords'][0], $grad['coords'][1], $ir, $grad['coords'][2], $grad['coords'][3], $grad['coords'][4])); - $this->_out('/Function '.$f2.' 0 R'); - $this->_out('/Extend ['.$grad['extend'][0].' '.$grad['extend'][1].'] '); - $this->_out('>>'); - } - else if ($grad['type']==6) { - $this->_out('/BitsPerCoordinate 16'); - $this->_out('/BitsPerComponent 8'); - $this->_out('/Decode[0 1 0 1 0 1]'); - $this->_out('/BitsPerFlag 8'); - $this->_out('/Length '.strlen($grad['stream_trans'])); - $this->_out('>>'); - $this->_putstream($grad['stream_trans']); - } - $this->_out('endobj'); - - $this->gradients[$transid]['id'] = $this->n; - $this->_newobj(); - $this->_out('<< /Type /Pattern /PatternType 2'); - $this->_out('/Shading '.$this->gradients[$transid]['id'].' 0 R'); - $this->_out('>>'); - $this->_out('endobj'); - $this->gradients[$transid]['pattern'] = $this->n; - $this->_newobj(); - // Need to extend size of viewing box in case of transformations - $str = 'q /a0 gs /Pattern cs /p'.$transid.' scn -'.($this->wPt/2).' -'.($this->hPt/2).' '.(2*$this->wPt).' '.(2*$this->hPt).' re f Q'; - $filter=($this->compress) ? '/Filter /FlateDecode ' : ''; - $p=($this->compress) ? gzcompress($str) : $str; - $this->_out('<< /Type /XObject /Subtype /Form /FormType 1 '.$filter); - $this->_out('/Length '.strlen($p)); - $this->_out('/BBox [-'.($this->wPt/2).' -'.($this->hPt/2).' '.(2*$this->wPt).' '.(2*$this->hPt).']'); - $this->_out('/Group << /Type /Group /S /Transparency /CS /DeviceGray >>'); - $this->_out('/Resources <<'); - $this->_out('/ExtGState << /a0 << /ca 1 /CA 1 >> >>'); - $this->_out('/Pattern << /p'.$transid.' '.$this->gradients[$transid]['pattern'].' 0 R >>'); - $this->_out('>>'); - $this->_out('>>'); - $this->_putstream($p); - $this->_out('endobj'); - $this->_newobj(); - $this->_out('<< /Type /Mask /S /Luminosity /G '.($this->n - 1).' 0 R >>'."\n".'endobj'); - $this->_newobj(); - $this->_out('<< /Type /ExtGState /SMask '.($this->n - 1).' 0 R /AIS false >>'."\n".'endobj'); - if ($grad['fo']) { $this->extgstates[] = array('n' => $this->n, 'trans' => 'TGS'.$id, 'fo'=>true); } - else { $this->extgstates[] = array('n' => $this->n, 'trans' => 'TGS'.$id); } - } - } -} -/*-- END BACKGROUNDS --*/ - -function _putspotcolors() { - foreach($this->spotColors as $name=>$color) { - $this->_newobj(); - $this->_out('[/Separation /'.str_replace(' ','#20',$name)); - $this->_out('/DeviceCMYK <<'); - $this->_out('/Range [0 1 0 1 0 1 0 1] /C0 [0 0 0 0] '); - $this->_out(sprintf('/C1 [%.3F %.3F %.3F %.3F] ',$color['c']/100,$color['m']/100,$color['y']/100,$color['k']/100)); - $this->_out('/FunctionType 2 /Domain [0 1] /N 1>>]'); - $this->_out('endobj'); - $this->spotColors[$name]['n']=$this->n; - } -} - - -function _putresources() { - if ($this->hasOC || count($this->layers)) // mPDF 5.6.01 - $this->_putocg(); - $this->_putextgstates(); - $this->_putspotcolors(); - if ($this->progressBar) { $this->UpdateProgressBar(2,'40','Compiling Fonts'); } // *PROGRESS-BAR* - $this->_putfonts(); - if ($this->progressBar) { $this->UpdateProgressBar(2,'50','Compiling Images'); } // *PROGRESS-BAR* - $this->_putimages(); - $this->_putformobjects(); // *IMAGES-CORE* - -/*-- IMPORTS --*/ - if ($this->enableImports) { - $this->_putformxobjects(); - $this->_putimportedobjects(); - } -/*-- END IMPORTS --*/ - -/*-- BACKGROUNDS --*/ - $this->_putshaders(); - $this->_putpatterns(); -/*-- END BACKGROUNDS --*/ - - - //Resource dictionary - $this->offsets[2]=strlen($this->buffer); - $this->_out('2 0 obj'); - $this->_out('<</ProcSet [/PDF /Text /ImageB /ImageC /ImageI]'); - - $this->_out('/Font <<'); - foreach($this->fonts as $font) { - if (!$font['used'] && $font['type']=='TTF') { continue; } - if ($font['type']=='TTF' && ($font['sip'] || $font['smp'])) { - foreach($font['n'] AS $k => $fid) { - $this->_out('/F'.$font['subsetfontids'][$k].' '.$font['n'][$k].' 0 R'); - } - } - else { - $this->_out('/F'.$font['i'].' '.$font['n'].' 0 R'); - } - } - $this->_out('>>'); - - if (count($this->spotColors)) { - $this->_out('/ColorSpace <<'); - foreach($this->spotColors as $color) - $this->_out('/CS'.$color['i'].' '.$color['n'].' 0 R'); - $this->_out('>>'); - } - - if (count($this->extgstates)) { - $this->_out('/ExtGState <<'); - foreach($this->extgstates as $k=>$extgstate) - if (isset($extgstate['trans'])) $this->_out('/'.$extgstate['trans'].' '.$extgstate['n'].' 0 R'); - else $this->_out('/GS'.$k.' '.$extgstate['n'].' 0 R'); - $this->_out('>>'); - } - -/*-- BACKGROUNDS --*/ - if ((isset($this->gradients) AND (count($this->gradients) > 0)) || ($this->enableImports && count($this->tpls))) { // mPDF 5.7.3 - $this->_out('/Shading <<'); - foreach ($this->gradients as $id => $grad) { - $this->_out('/Sh'.$id.' '.$grad['id'].' 0 R'); - } - // mPDF 5.7.3 - // If a shading dictionary is in an object (tpl) imported from another PDF, it needs to be included - // in the document resources, as well as the object resources - // Otherwise get an error in some PDF viewers - if ($this->enableImports && count($this->tpls)) { - foreach($this->tpls as $tplidx => $tpl) { - if (isset($tpl['resources'])) { - $this->current_parser =& $tpl['parser']; - reset ($tpl['resources'][1]); - while (list($k, $v) = each($tpl['resources'][1])) { - if ($k == '/Shading') { - while (list($k2, $v2) = each($v[1])) { - $this->_out($k2 . " ",false); - $this->pdf_write_value($v2); - } - } - } - - - } - } - } - - $this->_out('>>'); -/* - // ??? Not needed !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - $this->_out('/Pattern <<'); - foreach ($this->gradients as $id => $grad) { - $this->_out('/P'.$id.' '.$grad['pattern'].' 0 R'); - } - $this->_out('>>'); -*/ - } -/*-- END BACKGROUNDS --*/ - - if(count($this->images) || count($this->formobjects) || ($this->enableImports && count($this->tpls))) { - $this->_out('/XObject <<'); - foreach($this->images as $image) - $this->_out('/I'.$image['i'].' '.$image['n'].' 0 R'); - foreach($this->formobjects as $formobject) - $this->_out('/FO'.$formobject['i'].' '.$formobject['n'].' 0 R'); -/*-- IMPORTS --*/ - if ($this->enableImports && count($this->tpls)) { - foreach($this->tpls as $tplidx => $tpl) { - $this->_out($this->tplprefix.$tplidx.' '.$tpl['n'].' 0 R'); - } - } -/*-- END IMPORTS --*/ - $this->_out('>>'); - } - -/*-- BACKGROUNDS --*/ - - if (count($this->patterns)) { - $this->_out('/Pattern <<'); - foreach($this->patterns as $k=>$patterns) - $this->_out('/P'.$k.' '.$patterns['n'].' 0 R'); - $this->_out('>>'); - } -/*-- END BACKGROUNDS --*/ - - // mPDF 5.6.01 - if ($this->hasOC || count($this->layers)) { - $this->_out('/Properties <<'); - if ($this->hasOC) { - $this->_out('/OC1 '.$this->n_ocg_print.' 0 R /OC2 '.$this->n_ocg_view.' 0 R /OC3 '.$this->n_ocg_hidden.' 0 R '); - } - if (count($this->layers)) { - foreach($this->layers as $id=>$layer) - $this->_out('/ZI'.$id.' '.$layer['n'].' 0 R'); - } - $this->_out('>>'); - } - - $this->_out('>>'); - $this->_out('endobj'); // end resource dictionary - - $this->_putbookmarks(); // *BOOKMARKS* - - if (isset($this->js) && $this->js) { - $this->_putjavascript(); - } - -/*-- ENCRYPTION --*/ - if ($this->encrypted) { - $this->_newobj(); - $this->enc_obj_id = $this->n; - $this->_out('<<'); - $this->_putencryption(); - $this->_out('>>'); - $this->_out('endobj'); - } -/*-- END ENCRYPTION --*/ -} - - -function _putjavascript() { - $this->_newobj(); - $this->n_js = $this->n; - $this->_out('<<'); - $this->_out('/Names [(EmbeddedJS) '.(1 + $this->n).' 0 R ]'); - $this->_out('>>'); - $this->_out('endobj'); - - $this->_newobj(); - $this->_out('<<'); - $this->_out('/S /JavaScript'); - $this->_out('/JS '.$this->_textstring($this->js)); - $this->_out('>>'); - $this->_out('endobj'); -} - - - - -/*-- ENCRYPTION --*/ -function _putencryption() { - $this->_out('/Filter /Standard'); - if ($this->useRC128encryption) { - $this->_out('/V 2'); - $this->_out('/R 3'); - $this->_out('/Length 128'); - } - else { - $this->_out('/V 1'); - $this->_out('/R 2'); - } - $this->_out('/O ('.$this->_escape($this->Ovalue).')'); - $this->_out('/U ('.$this->_escape($this->Uvalue).')'); - $this->_out('/P '.$this->Pvalue); -} -/*-- END ENCRYPTION --*/ - -function _puttrailer() { - $this->_out('/Size '.($this->n+1)); - $this->_out('/Root '.$this->n.' 0 R'); - $this->_out('/Info '.$this->InfoRoot.' 0 R'); -/*-- ENCRYPTION --*/ - if ($this->encrypted) { - $this->_out('/Encrypt '.$this->enc_obj_id.' 0 R'); - $this->_out('/ID [<'.$this->uniqid.'> <'.$this->uniqid.'>]'); - } - else { -/*-- END ENCRYPTION --*/ - $uniqid = md5(time() . $this->buffer); - $this->_out('/ID [<'.$uniqid.'> <'.$uniqid.'>]'); -/*-- ENCRYPTION --*/ - } -/*-- END ENCRYPTION --*/ -} - -/*-- ENCRYPTION --*/ -function SetProtection($permissions=array(),$user_pass='',$owner_pass=null, $length=40) { - $this->encrypted=false; - if (is_string($permissions) && strlen($permissions)>0) { $permissions = array($permissions); } - else if (!is_array($permissions)) { return 0; } - $this->last_rc4_key=''; - $this->padding="\x28\xBF\x4E\x5E\x4E\x75\x8A\x41\x64\x00\x4E\x56\xFF\xFA\x01\x08". - "\x2E\x2E\x00\xB6\xD0\x68\x3E\x80\x2F\x0C\xA9\xFE\x64\x53\x69\x7A"; - - $options = array( - 'print' => 4, // bit 3 - 'modify' => 8, // bit 4 - 'copy' => 16, // bit 5 - 'annot-forms' => 32, // bit 6 - 'fill-forms' => 256, // bit 9 - 'extract' => 512, // bit 10 - 'assemble' => 1024,// bit 11 - 'print-highres' => 2048 // bit 12 - ); - // bit 31 = 1073741824 - // bit 32 = 2147483648 - // bits 13-31 = 2147479552 - // bits 13-32 = 4294963200 + 192 = 4294963392 - $protection = 4294963392; // bits 7,8,13-32 - foreach ($permissions as $permission) { - if (!isset($options[$permission])) - $this->Error('Incorrect permission: '.$permission); - if ($options[$permission] > 32) { $this->useRC128encryption = true; } - if (isset($options[$permission])) $protection += $options[$permission]; - } - if ($length==128) { $this->useRC128encryption = true; } - if ($owner_pass === null) - $owner_pass = uniqid(rand()); - $this->encrypted = true; - $this->_generateencryptionkey($user_pass, $owner_pass, $protection); -} - - -// Compute key depending on object number where the encrypted data is stored -function _objectkey($n) { - if ($this->useRC128encryption) - $len = 16; - else - $len = 10; - return substr($this->_md5_16($this->encryption_key.pack('VXxx',$n)),0,$len); -} - -// RC4 is the standard encryption algorithm used in PDF format -function _RC4($key, $text) { - if ($this->last_rc4_key != $key) { - $k = str_repeat($key, 256/strlen($key)+1); - $rc4 = range(0,255); - $j = 0; - for ($i=0; $i<256; $i++){ - $t = $rc4[$i]; - $j = ($j + $t + ord($k[$i])) % 256; - $rc4[$i] = $rc4[$j]; - $rc4[$j] = $t; - } - $this->last_rc4_key = $key; - $this->last_rc4_key_c = $rc4; - } else { - $rc4 = $this->last_rc4_key_c; - } - - $len = strlen($text); - $a = 0; - $b = 0; - $out = ''; - for ($i=0; $i<$len; $i++){ - $a = ($a+1)%256; - $t= $rc4[$a]; - $b = ($b+$t)%256; - $rc4[$a] = $rc4[$b]; - $rc4[$b] = $t; - $k = $rc4[($rc4[$a]+$rc4[$b])%256]; - $out.= chr(ord($text[$i]) ^ $k); - } - return $out; -} - -// Get MD5 as binary string -function _md5_16($string) { - return pack('H*',md5($string)); -} - -// Compute O value -function _Ovalue($user_pass, $owner_pass) { - $tmp = $this->_md5_16($owner_pass); - if ($this->useRC128encryption) { - for ($i = 0; $i < 50; ++$i) { - $tmp = $this->_md5_16($tmp); - } - } - if ($this->useRC128encryption) - $keybytelen = (128 / 8); - else - $keybytelen = (40 / 8); - $owner_RC4_key = substr($tmp,0,$keybytelen); - $enc = $this->_RC4($owner_RC4_key, $user_pass); - if ($this->useRC128encryption) { - $len = strlen($owner_RC4_key); - for ($i = 1; $i <= 19; ++$i) { - $key = ''; - for ($j = 0; $j < $len; ++$j) { - $key .= chr(ord($owner_RC4_key{$j}) ^ $i); - } - $enc = $this->_RC4($key, $enc); - } - } - return $enc; -} - -// Compute U value -function _Uvalue() { - if ($this->useRC128encryption) { - $tmp = $this->_md5_16($this->padding.$this->_hexToString($this->uniqid)); - $enc = $this->_RC4($this->encryption_key, $tmp); - $len = strlen($tmp); - for ($i=1; $i<=19; ++$i) { - $key = ''; - for ($j=0; $j<$len; ++$j) { - $key .= chr(ord($this->encryption_key{$j}) ^ $i); - } - $enc = $this->_RC4($key, $enc); - } - $enc .= str_repeat("\x00", 16); - return substr($enc, 0, 32); - } - else { - return $this->_RC4($this->encryption_key, $this->padding); - } -} - -// Compute encryption key -function _generateencryptionkey($user_pass, $owner_pass, $protection) { - // Pad passwords - $user_pass = substr($user_pass.$this->padding,0,32); - $owner_pass = substr($owner_pass.$this->padding,0,32); - $chars = 'ABCDEF1234567890'; - $id = ''; - for ($i=0; $i<32; $i++) { $id .= $chars{rand(0, 15)}; } - $this->uniqid = md5($id); - // Compute O value - $this->Ovalue = $this->_Ovalue($user_pass,$owner_pass); - // Compute encyption key - if ($this->useRC128encryption) - $keybytelen = (128/8); - else - $keybytelen = (40/8); - $prot = sprintf('%032b', $protection); - $perms = chr(bindec(substr($prot,24,8))); - $perms .= chr(bindec(substr($prot,16,8))); - $perms .= chr(bindec(substr($prot,8,8))); - $perms .= chr(bindec(substr($prot,0,8))); - $tmp = $this->_md5_16($user_pass.$this->Ovalue.$perms.$this->_hexToString($this->uniqid)); - if ($this->useRC128encryption) { - for ($i=0; $i<50; ++$i) { - $tmp = $this->_md5_16(substr($tmp, 0, $keybytelen)); - } - } - $this->encryption_key = substr($tmp,0,$keybytelen); - // Compute U value - $this->Uvalue = $this->_Uvalue(); - // Compute P value - $this->Pvalue = $protection; -} - - -function _hexToString($hs) { - $s = ''; - $len = strlen($hs); - if (($len % 2) != 0) { - $hs .= '0'; - ++$len; - } - for ($i = 0; $i < $len; $i += 2) { - $s .= chr(hexdec($hs{$i}.$hs{($i + 1)})); - } - return $s; -} - -/*-- END ENCRYPTION --*/ - -//========================================= -/*-- BOOKMARKS --*/ -// FROM class PDF_Bookmark - -function Bookmark($txt,$level=0,$y=0) { - $txt = $this->purify_utf8_text($txt); - if ($this->text_input_as_HTML) { - $txt = $this->all_entities_to_utf8($txt); - } - if($y==-1) { - if (!$this->ColActive){ $y=$this->y; } - else { $y = $this->y0; } // If columns are on - mark top of columns - } - // else y is used as set, or =0 i.e. top of page - // DIRECTIONALITY RTL - $bmo = array('t'=>$txt,'l'=>$level,'y'=>$y,'p'=>$this->page); - if ($this->keep_block_together) { - $this->ktBMoutlines[]= $bmo; - } -/*-- TABLES --*/ - else if ($this->table_rotate) { - $this->tbrot_BMoutlines[]= $bmo; - } - else if ($this->kwt) { - $this->kwt_BMoutlines[]= $bmo; - } -/*-- END TABLES --*/ - else if ($this->ColActive) { // *COLUMNS* - $this->col_BMoutlines[]= $bmo; // *COLUMNS* - } // *COLUMNS* - else { - $this->BMoutlines[]= $bmo; - } -} - - -function _putbookmarks() -{ - $nb=count($this->BMoutlines); - if($nb==0) - return; - - // mPDF 5.6.36 - $bmo = $this->BMoutlines; - $this->BMoutlines = array(); - $lastlevel = -1; - for($i=0;$i<count($bmo);$i++) { - if ($bmo[$i]['l']>0) { - while($bmo[$i]['l']-$lastlevel > 1) { // If jump down more than one level, insert a new entry - $new = $bmo[$i]; - $new['t']="[".$new['t']."]"; // Put [] around text/title to highlight - $new['l']=$lastlevel+1; - $lastlevel++; - $this->BMoutlines[] = $new; - } - } - $this->BMoutlines[] = $bmo[$i]; - $lastlevel = $bmo[$i]['l']; - } - $nb=count($this->BMoutlines); - - $lru=array(); - $level=0; - foreach($this->BMoutlines as $i=>$o) { - if($o['l']>0) { - $parent=$lru[$o['l']-1]; - //Set parent and last pointers - $this->BMoutlines[$i]['parent']=$parent; - $this->BMoutlines[$parent]['last']=$i; - if($o['l']>$level) { - //Level increasing: set first pointer - $this->BMoutlines[$parent]['first']=$i; - } - } - else { - $this->BMoutlines[$i]['parent']=$nb; - } - if($o['l']<=$level and $i>0) { - //Set prev and next pointers - $prev=$lru[$o['l']]; - $this->BMoutlines[$prev]['next']=$i; - $this->BMoutlines[$i]['prev']=$prev; - } - $lru[$o['l']]=$i; - $level=$o['l']; - } - - - //Outline items - $n=$this->n+1; - foreach($this->BMoutlines as $i=>$o) { - $this->_newobj(); - $this->_out('<_UTF16BEtextstring($o['t'])); - $this->_out('/Parent '.($n+$o['parent']).' 0 R'); - if(isset($o['prev'])) - $this->_out('/Prev '.($n+$o['prev']).' 0 R'); - if(isset($o['next'])) - $this->_out('/Next '.($n+$o['next']).' 0 R'); - if(isset($o['first'])) - $this->_out('/First '.($n+$o['first']).' 0 R'); - if(isset($o['last'])) - $this->_out('/Last '.($n+$o['last']).' 0 R'); - - - if (isset($this->pageDim[$o['p']]['h'])) { $h=$this->pageDim[$o['p']]['h']; } - else { $h = 0; } - - $this->_out(sprintf('/Dest [%d 0 R /XYZ 0 %.3F null]',1+2*($o['p']),($h-$o['y'])*_MPDFK)); - if (isset($this->bookmarkStyles) && isset($this->bookmarkStyles[$o['l']])) { - // font style - $bms = $this->bookmarkStyles[$o['l']]['style']; - $style = 0; - if (strpos($bms,'B') !== false) { $style += 2; } - if (strpos($bms,'I') !== false) { $style += 1; } - $this->_out(sprintf('/F %d', $style)); - // Colour - $col = $this->bookmarkStyles[$o['l']]['color']; - if (isset($col) && is_array($col) && count($col)==3) { - $this->_out(sprintf('/C [%.3F %.3F %.3F]', ($col[0]/255), ($col[1]/255), ($col[2]/255))); - } - } - - $this->_out('/Count 0>>'); - $this->_out('endobj'); - } - //Outline root - $this->_newobj(); - $this->OutlineRoot=$this->n; - $this->_out('<_out('/Last '.($n+$lru[0]).' 0 R>>'); - $this->_out('endobj'); -} -/*-- END BOOKMARKS --*/ - - - -//====================================================== - - -// DEPRACATED but included for backwards compatability -function startPageNums() { -} - -//====================================================== -/*-- TOC --*/ -// ToC TABLE OF CONTENTS - -// Initiate, and Mark a place for the Table of Contents to be inserted -function TOC($tocfont='', $tocfontsize=0, $tocindent=0, $resetpagenum='', $pagenumstyle='', $suppress='', $toc_orientation='', $TOCusePaging=true, $TOCuseLinking=false, $toc_id=0, $tocoutdent='') { // mPDF 5.6.19 - if (!class_exists('tocontents', false)) { include(_MPDF_PATH.'classes/tocontents.php'); } - if (empty($this->tocontents)) { $this->tocontents = new tocontents($this); } - $this->tocontents->TOC($tocfont, $tocfontsize, $tocindent, $resetpagenum, $pagenumstyle, $suppress, $toc_orientation, $TOCusePaging, $TOCuseLinking, $toc_id, $tocoutdent); // mPDF 5.6.19 -} - - -function TOCpagebreakByArray($a) { - if (!is_array($a)) { $a = array(); } - if (!class_exists('tocontents', false)) { include(_MPDF_PATH.'classes/tocontents.php'); } - if (empty($this->tocontents)) { $this->tocontents = new tocontents($this); } - $tocoutdent = (isset($a['tocoutdent']) ? $a['tocoutdent'] : (isset($a['outdent']) ? $a['outdent'] : '')); - $TOCusePaging = (isset($a['TOCusePaging']) ? $a['TOCusePaging'] : (isset($a['paging']) ? $a['paging'] : true)); - $TOCuseLinking = (isset($a['TOCuseLinking']) ? $a['TOCuseLinking'] : (isset($a['links']) ? $a['links'] : '')); - $toc_orientation = (isset($a['toc_orientation']) ? $a['toc_orientation'] : (isset($a['toc-orientation']) ? $a['toc-orientation'] : '')); - $toc_mgl = (isset($a['toc_mgl']) ? $a['toc_mgl'] : (isset($a['toc-margin-left']) ? $a['toc-margin-left'] : '')); - $toc_mgr = (isset($a['toc_mgr']) ? $a['toc_mgr'] : (isset($a['toc-margin-right']) ? $a['toc-margin-right'] : '')); - $toc_mgt = (isset($a['toc_mgt']) ? $a['toc_mgt'] : (isset($a['toc-margin-top']) ? $a['toc-margin-top'] : '')); - $toc_mgb = (isset($a['toc_mgb']) ? $a['toc_mgb'] : (isset($a['toc-margin-bottom']) ? $a['toc-margin-bottom'] : '')); - $toc_mgh = (isset($a['toc_mgh']) ? $a['toc_mgh'] : (isset($a['toc-margin-header']) ? $a['toc-margin-header'] : '')); - $toc_mgf = (isset($a['toc_mgf']) ? $a['toc_mgf'] : (isset($a['toc-margin-footer']) ? $a['toc-margin-footer'] : '')); - $toc_ohname = (isset($a['toc_ohname']) ? $a['toc_ohname'] : (isset($a['toc-odd-header-name']) ? $a['toc-odd-header-name'] : '')); - $toc_ehname = (isset($a['toc_ehname']) ? $a['toc_ehname'] : (isset($a['toc-even-header-name']) ? $a['toc-even-header-name'] : '')); - $toc_ofname = (isset($a['toc_ofname']) ? $a['toc_ofname'] : (isset($a['toc-odd-footer-name']) ? $a['toc-odd-footer-name'] : '')); - $toc_efname = (isset($a['toc_efname']) ? $a['toc_efname'] : (isset($a['toc-even-footer-name']) ? $a['toc-even-footer-name'] : '')); - $toc_ohvalue = (isset($a['toc_ohvalue']) ? $a['toc_ohvalue'] : (isset($a['toc-odd-header-value']) ? $a['toc-odd-header-value'] : 0)); - $toc_ehvalue = (isset($a['toc_ehvalue']) ? $a['toc_ehvalue'] : (isset($a['toc-even-header-value']) ? $a['toc-even-header-value'] : 0)); - $toc_ofvalue = (isset($a['toc_ofvalue']) ? $a['toc_ofvalue'] : (isset($a['toc-odd-footer-value']) ? $a['toc-odd-footer-value'] : 0)); - $toc_efvalue = (isset($a['toc_efvalue']) ? $a['toc_efvalue'] : (isset($a['toc-even-footer-value']) ? $a['toc-even-footer-value'] : 0)); - $toc_preHTML = (isset($a['toc_preHTML']) ? $a['toc_preHTML'] : (isset($a['toc-preHTML']) ? $a['toc-preHTML'] : '')); - $toc_postHTML = (isset($a['toc_postHTML']) ? $a['toc_postHTML'] : (isset($a['toc-postHTML']) ? $a['toc-postHTML'] : '')); - $toc_bookmarkText = (isset($a['toc_bookmarkText']) ? $a['toc_bookmarkText'] : (isset($a['toc-bookmarkText']) ? $a['toc-bookmarkText'] : '')); - $resetpagenum = (isset($a['resetpagenum']) ? $a['resetpagenum'] : ''); - $pagenumstyle = (isset($a['pagenumstyle']) ? $a['pagenumstyle'] : ''); - $suppress = (isset($a['suppress']) ? $a['suppress'] : ''); - $orientation = (isset($a['orientation']) ? $a['orientation'] : ''); - $mgl = (isset($a['mgl']) ? $a['mgl'] : (isset($a['margin-left']) ? $a['margin-left'] : '')); - $mgr = (isset($a['mgr']) ? $a['mgr'] : (isset($a['margin-right']) ? $a['margin-right'] : '')); - $mgt = (isset($a['mgt']) ? $a['mgt'] : (isset($a['margin-top']) ? $a['margin-top'] : '')); - $mgb = (isset($a['mgb']) ? $a['mgb'] : (isset($a['margin-bottom']) ? $a['margin-bottom'] : '')); - $mgh = (isset($a['mgh']) ? $a['mgh'] : (isset($a['margin-header']) ? $a['margin-header'] : '')); - $mgf = (isset($a['mgf']) ? $a['mgf'] : (isset($a['margin-footer']) ? $a['margin-footer'] : '')); - $ohname = (isset($a['ohname']) ? $a['ohname'] : (isset($a['odd-header-name']) ? $a['odd-header-name'] : '')); - $ehname = (isset($a['ehname']) ? $a['ehname'] : (isset($a['even-header-name']) ? $a['even-header-name'] : '')); - $ofname = (isset($a['ofname']) ? $a['ofname'] : (isset($a['odd-footer-name']) ? $a['odd-footer-name'] : '')); - $efname = (isset($a['efname']) ? $a['efname'] : (isset($a['even-footer-name']) ? $a['even-footer-name'] : '')); - $ohvalue = (isset($a['ohvalue']) ? $a['ohvalue'] : (isset($a['odd-header-value']) ? $a['odd-header-value'] : 0)); - $ehvalue = (isset($a['ehvalue']) ? $a['ehvalue'] : (isset($a['even-header-value']) ? $a['even-header-value'] : 0)); - $ofvalue = (isset($a['ofvalue']) ? $a['ofvalue'] : (isset($a['odd-footer-value']) ? $a['odd-footer-value'] : 0)); - $efvalue = (isset($a['efvalue']) ? $a['efvalue'] : (isset($a['even-footer-value']) ? $a['even-footer-value'] : 0)); - $toc_id = (isset($a['toc_id']) ? $a['toc_id'] : (isset($a['name']) ? $a['name'] : 0)); - $pagesel = (isset($a['pagesel']) ? $a['pagesel'] : (isset($a['pageselector']) ? $a['pageselector'] : '')); - $toc_pagesel = (isset($a['toc_pagesel']) ? $a['toc_pagesel'] : (isset($a['toc-pageselector']) ? $a['toc-pageselector'] : '')); - $sheetsize = (isset($a['sheetsize']) ? $a['sheetsize'] : (isset($a['sheet-size']) ? $a['sheet-size'] : '')); - $toc_sheetsize = (isset($a['toc_sheetsize']) ? $a['toc_sheetsize'] : (isset($a['toc-sheet-size']) ? $a['toc-sheet-size'] : '')); - - $this->TOCpagebreak($tocfont, $tocfontsize, $tocindent, $TOCusePaging, $TOCuseLinking, $toc_orientation, $toc_mgl, $toc_mgr, $toc_mgt, $toc_mgb, $toc_mgh, $toc_mgf, $toc_ohname, $toc_ehname, $toc_ofname, $toc_efname, $toc_ohvalue, $toc_ehvalue, $toc_ofvalue, $toc_efvalue, $toc_preHTML, $toc_postHTML, $toc_bookmarkText, $resetpagenum, $pagenumstyle, $suppress, $orientation, $mgl, $mgr, $mgt, $mgb, $mgh, $mgf, $ohname, $ehname, $ofname, $efname, $ohvalue, $ehvalue, $ofvalue, $efvalue, $toc_id, $pagesel, $toc_pagesel, $sheetsize, $toc_sheetsize, $tocoutdent); // mPDF 5.6.19 - -} - -function TOCpagebreak($tocfont='', $tocfontsize='', $tocindent='', $TOCusePaging=true, $TOCuseLinking='', $toc_orientation='', $toc_mgl='',$toc_mgr='',$toc_mgt='',$toc_mgb='',$toc_mgh='',$toc_mgf='',$toc_ohname='',$toc_ehname='',$toc_ofname='',$toc_efname='',$toc_ohvalue=0,$toc_ehvalue=0,$toc_ofvalue=0, $toc_efvalue=0, $toc_preHTML='', $toc_postHTML='', $toc_bookmarkText='', $resetpagenum='', $pagenumstyle='', $suppress='', $orientation='', $mgl='',$mgr='',$mgt='',$mgb='',$mgh='',$mgf='',$ohname='',$ehname='',$ofname='',$efname='',$ohvalue=0,$ehvalue=0,$ofvalue=0,$efvalue=0, $toc_id=0, $pagesel='', $toc_pagesel='', $sheetsize='', $toc_sheetsize='', $tocoutdent='') { // mPDF 5.6.19) { - if (!class_exists('tocontents', false)) { include(_MPDF_PATH.'classes/tocontents.php'); } - if (empty($this->tocontents)) { $this->tocontents = new tocontents($this); } - //Start a new page - if($this->state==0) $this->AddPage(); - if ($this->y == $this->tMargin && (!$this->mirrorMargins ||($this->mirrorMargins && $this->page % 2==1))) { - // Don't add a page - if ($this->page==1 && count($this->PageNumSubstitutions)==0) { - if (!$suppress) { $suppress = 'off'; } - if (!$resetpagenum) { $resetpagenum= 1; } - //$this->PageNumSubstitutions[] = array('from'=>1, 'reset'=> $resetpagenum, 'type'=>$pagenumstyle, 'suppress'=> $suppress); - } - $this->PageNumSubstitutions[] = array('from'=>$this->page, 'reset'=> $resetpagenum, 'type'=>$pagenumstyle, 'suppress'=> $suppress); - } - else { - $this->AddPage($orientation,'NEXT-ODD', $resetpagenum, $pagenumstyle, $suppress,$mgl,$mgr,$mgt,$mgb,$mgh,$mgf,$ohname,$ehname,$ofname,$efname,$ohvalue,$ehvalue,$ofvalue,$efvalue,$pagesel,$sheetsize); - } - - $this->tocontents->TOCpagebreak($tocfont, $tocfontsize, $tocindent, $TOCusePaging, $TOCuseLinking, $toc_orientation, $toc_mgl, $toc_mgr, $toc_mgt, $toc_mgb, $toc_mgh, $toc_mgf, $toc_ohname, $toc_ehname, $toc_ofname, $toc_efname, $toc_ohvalue, $toc_ehvalue, $toc_ofvalue, $toc_efvalue, $toc_preHTML, $toc_postHTML, $toc_bookmarkText, $resetpagenum, $pagenumstyle, $suppress, $orientation, $mgl, $mgr, $mgt, $mgb, $mgh, $mgf, $ohname, $ehname, $ofname, $efname, $ohvalue, $ehvalue, $ofvalue, $efvalue, $toc_id, $pagesel, $toc_pagesel, $sheetsize, $toc_sheetsize, $tocoutdent); // mPDF 5.6.19 -} - -function TOC_Entry($txt, $level=0, $toc_id=0) { - // mPDF 5.7.2 - if ($this->ColActive) { $ily = $this->y0; } else { $ily = $this->y; } // use top of columns - - if (!class_exists('tocontents', false)) { include(_MPDF_PATH.'classes/tocontents.php'); } - if (empty($this->tocontents)) { $this->tocontents = new tocontents($this); } - $linkn = $this->AddLink(); - $uid = '__mpdfinternallink_' . $linkn ; - if ($this->keep_block_together) { $this->internallink[$uid] = array("Y"=>$ily,"PAGE"=>$this->page, "kt"=>true ); } - else if ($this->table_rotate) { $this->internallink[$uid] = array("Y"=>$ily,"PAGE"=>$this->page, "tbrot"=>true ); } - else if ($this->kwt) { $this->internallink[$uid] = array("Y"=>$ily,"PAGE"=>$this->page, "kwt"=>true ); } - else if ($this->ColActive) { $this->internallink[$uid] = array("Y"=>$ily,"PAGE"=>$this->page, "col"=>$this->CurrCol ); } - else $this->internallink[$uid] = array("Y"=>$ily,"PAGE"=>$this->page ); - $this->internallink['#'.$uid] = $linkn; - $this->SetLink($linkn,$ily,$this->page); - -/*-- RTL --*/ - if ($this->biDirectional) { - $txt = preg_replace_callback("/([".$this->pregRTLchars."]+)/u", array($this, 'arabJoinPregCallback'), $txt ); // mPDF 5.7+ - } -/*-- END RTL --*/ - if (strtoupper($toc_id)=='ALL') { $toc_id = '_mpdf_all'; } - else if (!$toc_id) { $toc_id = 0; } - else { $toc_id = strtolower($toc_id); } - $btoc = array('t'=>$txt,'l'=>$level,'p'=>$this->page, 'link'=>$linkn, 'toc_id'=>$toc_id); - if ($this->keep_block_together) { - $this->_kttoc[]= $btoc; - } -/*-- TABLES --*/ - else if ($this->table_rotate) { - $this->tbrot_toc[]= $btoc; - } - else if ($this->kwt) { - $this->kwt_toc[]= $btoc; - } -/*-- END TABLES --*/ - else if ($this->ColActive) { // *COLUMNS* - $this->col_toc[]= $btoc; // *COLUMNS* - } // *COLUMNS* - else { - $this->tocontents->_toc[]= $btoc; - } -} - -/*-- END TOC --*/ - -//====================================================== -function MovePages($target_page, $start_page, $end_page=-1) { - // move a page/pages EARLIER in the document - if ($end_page<1) { $end_page = $start_page; } - $n_toc = $end_page - $start_page + 1; - - // Set/Update PageNumSubstitutions changes before moving anything - if (count($this->PageNumSubstitutions)) { - $tp_present = false; - $sp_present = false; - $ep_present = false; - foreach($this->PageNumSubstitutions AS $k=>$v) { - if ($this->PageNumSubstitutions[$k]['from']==$target_page) { - $tp_present = true; - if ($this->PageNumSubstitutions[$k]['suppress']!='on' && $this->PageNumSubstitutions[$k]['suppress']!=1) { - $this->PageNumSubstitutions[$k]['suppress']='off'; - } - } - if ($this->PageNumSubstitutions[$k]['from']==$start_page) { - $sp_present = true; - if ($this->PageNumSubstitutions[$k]['suppress']!='on' && $this->PageNumSubstitutions[$k]['suppress']!=1) { - $this->PageNumSubstitutions[$k]['suppress']='off'; - } - } - if ($this->PageNumSubstitutions[$k]['from']==($end_page+1)) { - $ep_present = true; - if ($this->PageNumSubstitutions[$k]['suppress']!='on' && $this->PageNumSubstitutions[$k]['suppress']!=1) { - $this->PageNumSubstitutions[$k]['suppress']='off'; - } - } - } - - if (!$tp_present) { - list($tp_type, $tp_suppress, $tp_reset) = $this->docPageSettings($target_page); - } - if (!$sp_present) { - list($sp_type, $sp_suppress, $sp_reset) = $this->docPageSettings($start_page); - } - if (!$ep_present) { - list($ep_type, $ep_suppress, $ep_reset) = $this->docPageSettings($start_page-1); - } - - } - - $last = array(); - //store pages - for($i = $start_page;$i <= $end_page ;$i++) - $last[]=$this->pages[$i]; - //move pages - for($i=$start_page - 1;$i>=($target_page);$i--) { - $this->pages[$i+$n_toc]=$this->pages[$i]; - } - //Put toc pages at insert point - for($i = 0;$i < $n_toc;$i++) { - $this->pages[$target_page + $i]=$last[$i]; - } - -/*-- BOOKMARKS --*/ - // Update Bookmarks - foreach($this->BMoutlines as $i=>$o) { - if($o['p']>=$target_page) { - $this->BMoutlines[$i]['p'] += $n_toc; - } - } -/*-- END BOOKMARKS --*/ - - // Update Page Links - if (count($this->PageLinks)) { - $newarr = array(); - foreach($this->PageLinks as $i=>$o) { - foreach($this->PageLinks[$i] as $key => $pl) { - if (strpos($pl[4],'@')===0) { - $p=substr($pl[4],1); - if($p>=$start_page && $p<=$end_page) { - $this->PageLinks[$i][$key][4] = '@'.($p + ($target_page - $start_page)); - } - else if($p>=$target_page && $p<$start_page) { - $this->PageLinks[$i][$key][4] = '@'.($p+$n_toc); - } - } - } - if($i>=$start_page && $i<=$end_page) { - $newarr[($i + ($target_page - $start_page))] = $this->PageLinks[$i]; - } - else if($i>=$target_page && $i<$start_page) { - $newarr[($i + $n_toc)] = $this->PageLinks[$i]; - } - else { - $newarr[$i] = $this->PageLinks[$i]; - } - } - $this->PageLinks = $newarr; - } - - // OrientationChanges - if (count($this->OrientationChanges)) { - $newarr = array(); - foreach($this->OrientationChanges AS $p=>$v) { - if($p>=$start_page && $p<=$end_page) { $newarr[($p + ($target_page - $start_page))] = $this->OrientationChanges[$p]; } - else if($p>=$target_page && $p<$start_page) { $newarr[$p+$n_toc] = $this->OrientationChanges[$p]; } - else { $newarr[$p] = $this->OrientationChanges[$p]; } - } - ksort($newarr); - $this->OrientationChanges = $newarr; - } - - // Page Dimensions - if (count($this->pageDim)) { - $newarr = array(); - foreach($this->pageDim AS $p=>$v) { - if($p>=$start_page && $p<=$end_page) { $newarr[($p + ($target_page - $start_page))] = $this->pageDim[$p]; } - else if($p>=$target_page && $p<$start_page) { $newarr[$p+$n_toc] = $this->pageDim[$p]; } - else { $newarr[$p] = $this->pageDim[$p]; } - } - ksort($newarr); - $this->pageDim = $newarr; - } - - // HTML Headers & Footers - if (count($this->saveHTMLHeader)) { - $newarr = array(); - foreach($this->saveHTMLHeader AS $p=>$v) { - if($p>=$start_page && $p<=$end_page) { $newarr[($p + ($target_page - $start_page))] = $this->saveHTMLHeader[$p]; } - else if($p>=$target_page && $p<$start_page) { $newarr[$p+$n_toc] = $this->saveHTMLHeader[$p]; } - else { $newarr[$p] = $this->saveHTMLHeader[$p]; } - } - ksort($newarr); - $this->saveHTMLHeader = $newarr; - } - if (count($this->saveHTMLFooter)) { - $newarr = array(); - foreach($this->saveHTMLFooter AS $p=>$v) { - if($p>=$start_page && $p<=$end_page) { $newarr[($p + ($target_page - $start_page))] = $this->saveHTMLFooter[$p]; } - else if($p>=$target_page && $p<$start_page) { $newarr[$p+$n_toc] = $this->saveHTMLFooter[$p]; } - else { $newarr[$p] = $this->saveHTMLFooter[$p]; } - } - ksort($newarr); - $this->saveHTMLFooter = $newarr; - } - - // Update Internal Links - if (count($this->internallink)) { - foreach($this->internallink as $key=>$o) { - if($o['PAGE']>=$start_page && $o['PAGE']<=$end_page) { - $this->internallink[$key]['PAGE'] += ($target_page - $start_page); - } - else if($o['PAGE']>=$target_page && $o['PAGE']<$start_page) { - $this->internallink[$key]['PAGE'] += $n_toc; - } - } - } - - // Update Links - if (count($this->links)) { - foreach($this->links as $key=>$o) { - if($o[0]>=$start_page && $o[0]<=$end_page) { - $this->links[$key][0] += ($target_page - $start_page); - } - if($o[0]>=$target_page && $o[0]<$start_page) { - $this->links[$key][0] += $n_toc; - } - } - } - - // Update Form fields - if (count($this->form->forms)) { - foreach($this->form->forms as $key=>$f) { - if($f['page']>=$start_page && $f['page']<=$end_page) { - $this->form->forms[$key]['page'] += ($target_page - $start_page); - } - if($f['page']>=$target_page && $f['page']<$start_page) { - $this->form->forms[$key]['page'] += $n_toc; - } - } - } - -/*-- ANNOTATIONS --*/ - // Update Annotations - if (count($this->PageAnnots)) { - $newarr = array(); - foreach($this->PageAnnots as $p=>$anno) { - if($p>=$start_page && $p<=$end_page) { - $np = $p + ($target_page - $start_page); - foreach($anno as $o) { - $newarr[$np][] = $o; - } - } - else if($p>=$target_page && $p<$start_page) { - $np = $p + $n_toc; - foreach($anno as $o) { - $newarr[$np][] = $o; - } - } - else { - $newarr[$p] = $this->PageAnnots[$p]; - } - } - $this->PageAnnots = $newarr; - unset($newarr); - } -/*-- END ANNOTATIONS --*/ - - // Update PageNumSubstitutions - if (count($this->PageNumSubstitutions)) { - $newarr = array(); - foreach($this->PageNumSubstitutions AS $k=>$v) { - if($this->PageNumSubstitutions[$k]['from']>=$start_page && $this->PageNumSubstitutions[$k]['from']<=$end_page) { - $this->PageNumSubstitutions[$k]['from'] += ($target_page - $start_page); - $newarr[$this->PageNumSubstitutions[$k]['from']] = $this->PageNumSubstitutions[$k]; - } - else if($this->PageNumSubstitutions[$k]['from']>=$target_page && $this->PageNumSubstitutions[$k]['from']<$start_page) { - $this->PageNumSubstitutions[$k]['from'] += $n_toc; - $newarr[$this->PageNumSubstitutions[$k]['from']] = $this->PageNumSubstitutions[$k]; - } - else { - $newarr[$this->PageNumSubstitutions[$k]['from']] = $this->PageNumSubstitutions[$k]; - } - } - - if (!$sp_present) { - $newarr[$target_page] = array('from'=>$target_page, 'suppress'=>$sp_suppress, 'reset'=>$sp_reset, 'type'=>$sp_type); - } - if (!$tp_present) { - $newarr[($target_page + $n_toc)] = array('from'=>($target_page+$n_toc), 'suppress'=>$tp_suppress, 'reset'=>$tp_reset, 'type'=>$tp_type); - } - if (!$ep_present && $end_page>count($this->pages)) { - $newarr[($end_page+1)] = array('from'=>($end_page+1), 'suppress'=>$ep_suppress, 'reset'=>$ep_reset, 'type'=>$ep_type); - } - ksort($newarr); - $this->PageNumSubstitutions = array(); - foreach($newarr as $v) { - $this->PageNumSubstitutions[] = $v; - } - } -} - -//====================================================== -function DeletePages($start_page, $end_page=-1) { - // move a page/pages EARLIER in the document - if ($end_page<1) { $end_page = $start_page; } - $n_tod = $end_page - $start_page + 1; - $last_page = count($this->pages); - $n_atend = $last_page - $end_page + 1; - - //move pages - for($i=0;$i<$n_atend;$i++) { - $this->pages[$start_page+$i]=$this->pages[$end_page+1+$i]; - } - //delete pages - for($i = 0;$i < $n_tod ;$i++) - unset($this->pages[$last_page-$i]); - - -/*-- BOOKMARKS --*/ - // Update Bookmarks - foreach($this->BMoutlines as $i=>$o) { - if($o['p']>=$end_page) { $this->BMoutlines[$i]['p'] -= $n_tod; } - else if($p<$start_page) { unset($this->BMoutlines[$i]); } - } -/*-- END BOOKMARKS --*/ - - // Update Page Links - if (count($this->PageLinks)) { - $newarr = array(); - foreach($this->PageLinks as $i=>$o) { - foreach($this->PageLinks[$i] as $key => $pl) { - if (strpos($pl[4],'@')===0) { - $p=substr($pl[4],1); - if($p>$end_page) { $this->PageLinks[$i][$key][4] = '@'.($p - $n_tod); } - else if($p<$start_page) { unset($this->PageLinks[$i][$key]); } - } - } - if($i>$end_page) { $newarr[($i - $n_tod)] = $this->PageLinks[$i]; } - else if($p<$start_page) { $newarr[$i] = $this->PageLinks[$i]; } - } - $this->PageLinks = $newarr; - } - - // OrientationChanges - if (count($this->OrientationChanges)) { - $newarr = array(); - foreach($this->OrientationChanges AS $p=>$v) { - if($p>$end_page) { $newarr[($p - $t_tod)] = $this->OrientationChanges[$p]; } - else if($p<$start_page) { $newarr[$p] = $this->OrientationChanges[$p]; } - } - ksort($newarr); - $this->OrientationChanges = $newarr; - } - - // Page Dimensions - if (count($this->pageDim)) { - $newarr = array(); - foreach($this->pageDim AS $p=>$v) { - if($p>$end_page) { $newarr[($p - $n_tod)] = $this->pageDim[$p]; } - else if($p<$start_page) { $newarr[$p] = $this->pageDim[$p]; } - } - ksort($newarr); - $this->pageDim = $newarr; - } - - // HTML Headers & Footers - if (count($this->saveHTMLHeader)) { - foreach($this->saveHTMLHeader AS $p=>$v) { - if($p>$end_page) { $newarr[($p - $n_tod)] = $this->saveHTMLHeader[$p]; } // mPDF 5.7.3 - else if($p<$start_page) { $newarr[$p] = $this->saveHTMLHeader[$p]; } - } - ksort($newarr); - $this->saveHTMLHeader = $newarr; - } - if (count($this->saveHTMLFooter)) { - $newarr = array(); - foreach($this->saveHTMLFooter AS $p=>$v) { - if($p>$end_page) { $newarr[($p - $n_tod)] = $this->saveHTMLFooter[$p]; } - else if($p<$start_page) { $newarr[$p] = $this->saveHTMLFooter[$p]; } - } - ksort($newarr); - $this->saveHTMLFooter = $newarr; - } - - // Update Internal Links - foreach($this->internallink as $key=>$o) { - if($o['PAGE']>$end_page) { $this->internallink[$key]['PAGE'] -= $n_tod; } - else if($o['PAGE']<$start_page) { unset($this->internallink[$key]); } - } - - // Update Links - foreach($this->links as $key=>$o) { - if($o[0]>$end_page) { $this->links[$key][0] -= $n_tod; } - else if($o[0]<$start_page) { unset($this->links[$key]); } - } - - // Update Form fields - foreach($this->form->forms as $key=>$f) { - if($f['page']>$end_page) { $this->form->forms[$key]['page'] -= $n_tod; } - else if($f['page']<$start_page) { unset($this->form->forms[$key]); } - } - -/*-- ANNOTATIONS --*/ - // Update Annotations - if (count($this->PageAnnots)) { - $newarr = array(); - foreach($this->PageAnnots as $p=>$anno) { - if($p>$end_page) { foreach($anno as $o) { $newarr[($p - $n_tod)][] = $o; } } - else if($p<$start_page) { $newarr[$p] = $this->PageAnnots[$p]; } - } - ksort($newarr); - $this->PageAnnots = $newarr; - } -/*-- END ANNOTATIONS --*/ - - // Update PageNumSubstitutions - foreach($this->PageNumSubstitutions AS $k=>$v) { - if($this->PageNumSubstitutions[$k]['from']>$end_page) { $this->PageNumSubstitutions[$k]['from'] -= $n_tod; } - else if($this->PageNumSubstitutions[$k]['from']<$start_page) { unset($this->PageNumSubstitutions[$k]); } - } - - unset($newarr); - $this->page = count($this->pages); -} - - -//====================================================== -/*-- INDEX --*/ -// FROM class PDF_Ref == INDEX - -function Reference($txt) { - $this->IndexEntry($txt); -} - - -function IndexEntry($txt, $xref='') { - if ($xref) { - $this->IndexEntrySee($txt,$xref); - return; - } - $txt = strip_tags($txt); - $txt = $this->purify_utf8_text($txt); - if ($this->text_input_as_HTML) { - $txt = $this->all_entities_to_utf8($txt); - } - if ($this->usingCoreFont) { $txt = mb_convert_encoding($txt,$this->mb_enc,'UTF-8'); } - - $Present=0; - $size=sizeof($this->Reference); - - if ($this->directionality == 'rtl') { // *RTL* - $txt = str_replace(':',' - ',$txt); // *RTL* - } // *RTL* - else { // *RTL* - $txt = str_replace(':',', ',$txt); - } // *RTL* - - - //Search the reference (AND Ref/PageNo) in the array - for ($i=0;$i<$size;$i++){ - if ($this->keep_block_together) { - if (isset($this->ktReference[$i]['t']) && $this->ktReference[$i]['t']==$txt){ - $Present=1; - if ($this->page != $this->ktReference[$i]['op']) { // mPDF 5.7.2 - $this->ktReference[$i]['op'] = $this->page; - } - } - } -/*-- TABLES --*/ - else if ($this->table_rotate) { - if (isset($this->tbrot_Reference[$i]['t']) && $this->tbrot_Reference[$i]['t']==$txt){ - $Present=1; - if ($this->page != $this->tbrot_Reference[$i]['op']) { // mPDF 5.7.2 - $this->tbrot_Reference[$i]['op'] = $this->page; - } - } - } - else if ($this->kwt) { - if (isset($this->kwt_Reference[$i]['t']) && $this->kwt_Reference[$i]['t']==$txt){ - $Present=1; - if ($this->page != $this->kwt_Reference[$i]['op']) { // mPDF 5.7.2 - $this->kwt_Reference[$i]['op'] = $this->page; - } - } - } -/*-- END TABLES --*/ -/*-- COLUMNS --*/ - else if ($this->ColActive) { - if (isset($this->col_Reference[$i]['t']) && $this->col_Reference[$i]['t']==$txt){ - $Present=1; - if ($this->page != $this->col_Reference[$i]['op']) { // mPDF 5.7.2 - $this->col_Reference[$i]['op'] = $this->page; - } - } - } -/*-- END COLUMNS --*/ - else { - if (isset($this->Reference[$i]['t']) && $this->Reference[$i]['t']==$txt){ - $Present=1; - if (!in_array($this->page,$this->Reference[$i]['p'])) { - $this->Reference[$i]['p'][] = $this->page; - } - } - } - } - //If not found, add it - if ($Present==0) { - $opr = array('t'=>$txt, 'op'=>$this->page); - if ($this->keep_block_together) { - $this->ktReference[]= $opr; - } -/*-- TABLES --*/ - else if ($this->table_rotate) { - $this->tbrot_Reference[]= $opr; - } - else if ($this->kwt) { - $this->kwt_Reference[]= $opr; - } -/*-- END TABLES --*/ -/*-- COLUMNS --*/ - else if ($this->ColActive) { - $this->col_Reference[]= $opr; - } -/*-- END COLUMNS --*/ - else { - $this->Reference[]=array('t'=>$txt,'p'=>array($this->page)); - } - } -} - -// Added function to add a reference "Elephants. See Chickens" -function ReferenceSee($txta,$txtb) { - $this->IndexEntrySee($txta,$txtb); -} - -function IndexEntrySee($txta,$txtb) { - $txta = strip_tags($txta); - $txtb = strip_tags($txtb); - $txta = $this->purify_utf8_text($txta); - $txtb = $this->purify_utf8_text($txtb); - if ($this->text_input_as_HTML) { - $txta = $this->all_entities_to_utf8($txta); - $txtb = $this->all_entities_to_utf8($txtb); - } - if ($this->usingCoreFont) { - $txta = mb_convert_encoding($txta,$this->mb_enc,'UTF-8'); - $txtb = mb_convert_encoding($txtb,$this->mb_enc,'UTF-8'); - } - if ($this->directionality == 'rtl') { // *RTL* - $txta = str_replace(':',' - ',$txta); // *RTL* - $txtb = str_replace(':',' - ',$txtb); // *RTL* - } // *RTL* - else { // *RTL* - $txta = str_replace(':',', ',$txta); - $txtb = str_replace(':',', ',$txtb); - } // *RTL* - $this->Reference[]=array('t'=>$txta.' - see '.$txtb,'p'=>array()); -} - -function CreateReference($NbCol=1, $reffontsize='', $linespacing='', $offset=3, $usedivletters=1, $divlettfontsize='', $gap=5, $reffont='',$divlettfont='', $useLinking=false) { - $this->CreateIndex($NbCol, $reffontsize, $linespacing, $offset, $usedivletters, $divlettfontsize, $gap, $reffont, $divlettfont, $useLinking); -} - -function CreateIndex($NbCol=1, $reffontsize='', $linespacing='', $offset=3, $usedivletters=1, $divlettfontsize='', $gap=5, $reffont='',$divlettfont='', $useLinking=false) { - if (!$reffontsize) { $reffontsize = $this->default_font_size; } - if (!$divlettfontsize) { $divlettfontsize = ($this->default_font_size * 1.8); } - if (!$reffont) { $reffont = $this->default_font; } - if (!$divlettfont) { $divlettfont = $reffont; } - if (!$linespacing) { $linespacing= $this->default_lineheight_correction; } - if ($this->ColActive) { $this->SetColumns(0); } // *COLUMNS* - $size=sizeof($this->Reference); - if ($size == 0) { return false; } - - - if ($NbCol<2) { - $NbCol = 1; - $colWidth = $this->pgwidth; - } - else { - $this->SetColumns($NbCol,'',$gap); - $colWidth = $this->ColWidth; - } - if ($this->directionality == 'rtl') { $align = 'R'; } - else { $align = 'L'; } - $lett = ''; - if (!function_exists('cmp')) { - function cmp ($a, $b) { - return strnatcmp(strtolower($a['t']), strtolower($b['t'])); - } - } - //Alphabetic sort of the references - usort($this->Reference, 'cmp'); - $size=sizeof($this->Reference); - $this->breakpoints[$this->CurrCol][] = $this->y; // *COLUMNS* - - $divlettjuststarted = false; - - $this->OpenTag('DIV',array('STYLE'=>'line-height: '.$linespacing.'; font-family: '.$reffont.'; font-size: '.$reffontsize.'pt; ')); - - $last_lett = ''; - for ($i=0;$i<$size;$i++){ - if ($this->Reference[$i]['t']) { - if ($usedivletters) { - - $lett = mb_strtoupper(mb_substr($this->Reference[$i]['t'],0,1,$this->mb_enc ),$this->mb_enc ); - if ($lett != $last_lett) { - - $save_bp = $this->breakpoints[$this->CurrCol]; // *COLUMNS* - $divlettjuststarted = true; - - if ($i>0) { - $this->OpenTag('DIV',array('STYLE'=>'line-height: '.$linespacing.'; font-family: '.$divlettfont.'; font-size: '.$divlettfontsize.'pt; font-weight: bold; page-break-after: avoid; margin-top: 0.5em; margin-collapse: collapse; ')); - } - else { - $this->OpenTag('DIV',array('STYLE'=>'line-height: '.$linespacing.'; font-family: '.$divlettfont.'; font-size: '.$divlettfontsize.'pt; font-weight: bold; page-break-after: avoid; ')); - } - $this->_saveTextBuffer($lett); - $this->CloseTag('DIV'); - } - } - - $this->OpenTag('DIV',array('STYLE'=>'text-indent: -'.$offset.'mm; line-height: '.$linespacing.'; font-family: '.$reffont.'; font-size: '.$reffontsize.'pt; ')); - -/*-- RTL --*/ - // Change Arabic + Persian. to Presentation Forms - if ($this->biDirectional) { - $this->Reference[$i]['t'] = preg_replace_callback("/([".$this->pregRTLchars."]+)/u", array($this, 'arabJoinPregCallback'), $this->Reference[$i]['t'] ); // mPDF 5.7+ - } -/*-- END RTL --*/ - - // Font-specific ligature substitution for Indic fonts - if (isset($this->CurrentFont['indic']) && $this->CurrentFont['indic']) $this->ConvertIndic($this->Reference[$i]['t']); // *INDIC* - - $this->_saveTextBuffer($this->Reference[$i]['t']); - $ppp = $this->Reference[$i]['p']; // = array of page numbers to point to - if (count($ppp)) { - sort($ppp); - $newarr = array(); - $range_start = $ppp[0]; - $range_end = 0; - - if (!$this->usingCoreFont) { $spacer = "\xc2\xa0 "; } - else { $spacer = chr(160).' '; } - $this->_saveTextBuffer($spacer); - if ($this->directionality == 'rtl') { $sep = '.'; $joiner = '-'; } - else { $sep = ', '; $joiner = '-'; } - for ($zi=1;$zidirectionality == 'rtl') { -/*-- RTL --*/ - if ($zidocPageNum($ppp[$zi]); - if ($useLinking) { $href = '@'.$ppp[$zi]; } - else { $href = ''; } - $this->_saveTextBuffer($txt, $href); - } -/*-- END RTL --*/ - } - - else if ($ppp[$zi] == ($ppp[($zi-1)]+1)) { - $range_end = $ppp[$zi]; - } - else { - if ($range_end) { - if ($range_end == $range_start+1) { - if ($useLinking) { $href = '@'.$range_start; } - else { $href = ''; } - $txt = $this->docPageNum($range_start) . $sep; - $this->_saveTextBuffer($txt, $href); - if ($useLinking) { $href = '@'.$ppp[$zi-1]; } - else { $href = ''; } - $txt = $this->docPageNum($ppp[$zi-1]) . $sep; - $this->_saveTextBuffer($txt, $href); - } - else { - if ($useLinking) { $href = '@'.$range_start; } - else { $href = ''; } - } - } - else { - if ($useLinking) { $href = '@'.$ppp[$zi-1]; } - else { $href = ''; } - $txt = $this->docPageNum($ppp[$zi-1]) . $sep; - $this->_saveTextBuffer($txt, $href); - } - $range_start = $ppp[$zi]; - $range_end = 0; - } - } - - if ($range_end) { - if ($range_end == $range_start+1) { - if ($useLinking) { $href = '@'.$range_start; } - else { $href = ''; } - $txt = $this->docPageNum($range_start) . $sep; - $this->_saveTextBuffer($txt, $href); - if ($useLinking) { $href = '@'.$range_end; } - else { $href = ''; } - $txt = $this->docPageNum($range_end); - $this->_saveTextBuffer($txt, $href); - } - else { - if ($useLinking) { $href = '@'.$range_start; } - else { $href = ''; } - $txt = $this->docPageNum($range_start) . $joiner; - $this->_saveTextBuffer($txt, $href); - if ($useLinking) { $href = '@'.$range_end; } - else { $href = ''; } - $txt = $this->docPageNum($range_end); - $this->_saveTextBuffer($txt, $href); - } - } - else { - if ($useLinking) { $href = '@'.$ppp[(count($ppp)-1)]; } - else { $href = ''; } - $txt = $this->docPageNum($ppp[(count($ppp)-1)]); - $this->_saveTextBuffer($txt, $href); - } - } - } - $this->CloseTag('DIV'); - - if ($divlettjuststarted) { $this->breakpoints[$this->CurrCol] = $save_bp; } // *COLUMNS* - $divlettjuststarted = false; - - $this->breakpoints[$this->CurrCol][] = $this->y; // *COLUMNS* - $last_lett = $lett; - } - $this->CloseTag('DIV'); - $this->breakpoints[$this->CurrCol][] = $this->y; // *COLUMNS* - if ($this->ColActive) { $this->SetColumns(0); } // *COLUMNS* -} -/*-- END INDEX --*/ - - -function AcceptPageBreak() { - if (count($this->cellBorderBuffer)) { $this->printcellbuffer(); } // *TABLES* -/*-- COLUMNS --*/ - if ($this->ColActive==1) { - if($this->CurrCol<$this->NbCol-1) { - //Go to the next column - $this->CurrCol++; - $this->SetCol($this->CurrCol); - $this->y=$this->y0; - $this->ChangeColumn=1; // Number (and direction) of columns changed +1, +2, -2 etc. - // DIRECTIONALITY RTL - if ($this->directionality == 'rtl') { $this->ChangeColumn = -($this->ChangeColumn); } // *RTL* - - //Stay on the page - return false; - } - else { - //Go back to the first column - NEW PAGE - if (count($this->columnbuffer)) { $this->printcolumnbuffer(); } - $this->SetCol(0); - $this->y0 = $this->tMargin; - $this->ChangeColumn= -($this->NbCol-1); - // DIRECTIONALITY RTL - if ($this->directionality == 'rtl') { $this->ChangeColumn = -($this->ChangeColumn); } // *RTL* - //Page break - return true; - } - } -/*-- END COLUMNS --*/ -/*-- TABLES --*/ - else if ($this->table_rotate) { - if ($this->tablebuffer) { $this->printtablebuffer(); } - return true; - } -/*-- END TABLES --*/ - else { // *COLUMNS* - $this->ChangeColumn=0; - return $this->autoPageBreak; - } // *COLUMNS* - return $this->autoPageBreak; -} - - -//----------- COLUMNS --------------------- -/*-- COLUMNS --*/ - -function SetColumns($NbCol,$vAlign='',$gap=5) { -// NbCol = number of columns -// CurrCol = Number of the current column starting at 0 -// Called externally to set columns on/off and number -// Integer 2 upwards sets columns on to that number -// Anything less than 2 turns columns off - if ($NbCol<2) { // SET COLUMNS OFF - if ($this->ColActive) { - $this->ColActive=0; - if (count($this->columnbuffer)) { $this->printcolumnbuffer(); } - $this->NbCol=1; - $this->ResetMargins(); - $this->pgwidth = $this->w - $this->lMargin - $this->rMargin; - $this->divwidth = 0; - $this->Ln(); - } - $this->ColActive=0; - $this->columnbuffer = array(); - $this->ColDetails = array(); - $this->columnLinks = array(); - $this->columnAnnots = array(); - $this->columnForms = array(); - $this->col_Reference = array(); - $this->col_BMoutlines = array(); - $this->col_toc = array(); - $this->breakpoints = array(); - } - else { // SET COLUMNS ON - if ($this->ColActive) { - $this->ColActive=0; - if (count($this->columnbuffer)) { $this->printcolumnbuffer(); } - $this->ResetMargins(); - } - if (isset($this->y) && $this->y>$this->tMargin) $this->Ln(); - $this->NbCol=$NbCol; - $this->ColGap = $gap; - $this->divwidth = 0; - $this->ColActive=1; - $this->ColumnAdjust = true; // enables column height adjustment for the page - $this->columnbuffer = array(); - $this->ColDetails = array(); - $this->columnLinks = array(); - $this->columnAnnots = array(); - $this->columnForms = array(); - $this->col_Reference = array(); - $this->col_BMoutlines = array(); - $this->col_toc = array(); - $this->breakpoints = array(); - if ((strtoupper($vAlign) == 'J') || (strtoupper($vAlign) == 'JUSTIFY')) { $vAlign = 'J'; } - else { $vAlign = ''; } - $this->colvAlign = $vAlign; - //Save the ordinate - $absL = $this->DeflMargin-($gap/2); - $absR = $this->DefrMargin-($gap/2); - $PageWidth = $this->w-$absL-$absR; // virtual pagewidth for calculation only - $ColWidth = (($PageWidth - ($gap * ($NbCol)))/$NbCol); - $this->ColWidth = $ColWidth; -/*-- RTL --*/ - - if ($this->directionality == 'rtl') { - for ($i=0;$i<$this->NbCol;$i++) { - $this->ColL[$i] = $absL + ($gap/2) + (($NbCol - ($i+1))*($PageWidth/$NbCol)) ; - $this->ColR[$i] = $this->ColL[$i] + $ColWidth; // NB This is not R margin -> R pos - } - } - else { -/*-- END RTL --*/ - for ($i=0;$i<$this->NbCol;$i++) { - $this->ColL[$i] = $absL + ($gap/2) + ($i* ($PageWidth/$NbCol) ); - $this->ColR[$i] = $this->ColL[$i] + $ColWidth; // NB This is not R margin -> R pos - } - } // *RTL* - $this->pgwidth = $ColWidth; - $this->SetCol(0); - $this->y0=$this->y; - } - $this->x = $this->lMargin; -} - -function SetCol($CurrCol) { -// Used internally to set column by number: 0 is 1st column - //Set position on a column - $this->CurrCol=$CurrCol; - $x = $this->ColL[$CurrCol]; - $xR = $this->ColR[$CurrCol]; // NB This is not R margin -> R pos - if (($this->mirrorMargins) && (($this->page)%2==0)) { // EVEN - $x += $this->MarginCorrection ; - $xR += $this->MarginCorrection ; - } - $this->SetMargins($x,($this->w - $xR),$this->tMargin); -} - -function AddColumn() { - $this->NewColumn(); - $this->ColumnAdjust = false; // disables all column height adjustment for the page. -} -function NewColumn() { - if ($this->ColActive==1) { - if($this->CurrCol<$this->NbCol-1) { - //Go to the next column - $this->CurrCol++; - $this->SetCol($this->CurrCol); - $this->y = $this->y0; - $this->ChangeColumn=1; - // DIRECTIONALITY RTL - if ($this->directionality == 'rtl') { $this->ChangeColumn = -($this->ChangeColumn); } // *RTL* - //Stay on the page - } - else { - //Go back to the first column - //Page break - if (count($this->columnbuffer)) { $this->printcolumnbuffer(); } - $this->AddPage($this->CurOrientation); - $this->SetCol(0); - $this->y0 = $this->tMargin; - $this->ChangeColumn= -($this->NbCol-1); - // DIRECTIONALITY RTL - if ($this->directionality == 'rtl') { $this->ChangeColumn = -($this->ChangeColumn); } // *RTL* - } - $this->x = $this->lMargin; - } - else { - $this->AddPage($this->CurOrientation); - } -} - -function printcolumnbuffer() { - // Columns ended (but page not ended) -> try to match all columns - unless disabled by using a custom column-break - if (!$this->ColActive && $this->ColumnAdjust && !$this->keepColumns) { // mPDF 5.7.2 - // Calculate adjustment to add to each column to calculate rel_y value - $this->ColDetails[0]['add_y'] = 0; - $last_col = 0; - // Recursively add previous column's height - for($i=1;$i<$this->NbCol;$i++) { - if (isset($this->ColDetails[$i]['bottom_margin']) && $this->ColDetails[$i]['bottom_margin']) { // If any entries in the column - $this->ColDetails[$i]['add_y'] = ($this->ColDetails[$i-1]['bottom_margin'] - $this->y0) + $this->ColDetails[$i-1]['add_y']; - $last_col = $i; // Last column actually printed - } - } - - // Calculate value for each position sensitive entry as though for one column - foreach($this->columnbuffer AS $key=>$s) { - $t = $s['s']; - if ($t == 'ACROFORM') { - $this->columnbuffer[$key]['rel_y'] = $s['y'] + $this->ColDetails[$s['col']]['add_y'] - $this->y0; - $this->columnbuffer[$key]['s'] = ''; - } - else if (preg_match('/BT \d+\.\d\d+ (\d+\.\d\d+) Td/',$t)) { - $this->columnbuffer[$key]['rel_y'] = $s['y'] + $this->ColDetails[$s['col']]['add_y'] - $this->y0; - } - else if (preg_match('/\d+\.\d\d+ (\d+\.\d\d+) \d+\.\d\d+ [\-]{0,1}\d+\.\d\d+ re/',$t)) { - $this->columnbuffer[$key]['rel_y'] = $s['y'] + $this->ColDetails[$s['col']]['add_y'] - $this->y0; - } - else if (preg_match('/\d+\.\d\d+ (\d+\.\d\d+) m/',$t)) { - $this->columnbuffer[$key]['rel_y'] = $s['y'] + $this->ColDetails[$s['col']]['add_y'] - $this->y0; - } - else if (preg_match('/\d+\.\d\d+ (\d+\.\d\d+) l/',$t)) { - $this->columnbuffer[$key]['rel_y'] = $s['y'] + $this->ColDetails[$s['col']]['add_y'] - $this->y0; - } - else if (preg_match('/q \d+\.\d\d+ 0 0 \d+\.\d\d+ \d+\.\d\d+ (\d+\.\d\d+) cm \/(I|FO)\d+ Do Q/',$t)) { - $this->columnbuffer[$key]['rel_y'] = $s['y'] + $this->ColDetails[$s['col']]['add_y'] - $this->y0; - } - else if (preg_match('/\d+\.\d\d+ (\d+\.\d\d+) \d+\.\d\d+ \d+\.\d\d+ \d+\.\d\d+ \d+\.\d\d+ c/',$t)) { - $this->columnbuffer[$key]['rel_y'] = $s['y'] + $this->ColDetails[$s['col']]['add_y'] - $this->y0; - } - } - foreach($this->internallink AS $key => $f) { - if (is_array($f) && isset($f['col'])) { - $this->internallink[$key]['rel_y'] = $f['Y'] + $this->ColDetails[$f['col']]['add_y'] - $this->y0; - } - } - - $breaks = array(); - foreach($this->breakpoints AS $c => $bpa) { - foreach($bpa AS $rely) { - $breaks[] = $rely + $this->ColDetails[$c]['add_y'] - $this->y0; - } - } - - if (isset($this->ColDetails[$last_col]['bottom_margin'])) { $lcbm = $this->ColDetails[$last_col]['bottom_margin']; } - else { $lcbm = 0; } - $sum_h = $this->ColDetails[$last_col]['add_y'] + $lcbm - $this->y0; - //$sum_h = max($this->ColDetails[$last_col]['add_y'] + $this->ColDetails[$last_col]['bottom_margin'] - $this->y0, end($breaks)); - $target_h = ($sum_h / $this->NbCol); - - $cbr = array(); - for($i=1;$i<$this->NbCol;$i++) { - $th = ($sum_h * $i / $this->NbCol); - foreach($breaks AS $bk=>$val) { - if ($val > $th) { - if (($val-$th) < ($th-$breaks[$bk-1])) { $cbr[$i-1] = $val; } - else { $cbr[$i-1] = $breaks[$bk-1]; } - break; - } - } - } - $cbr[($this->NbCol-1)] = $sum_h; - - // Now update the columns - divide into columns of approximately equal value - $last_new_col = 0; - $yadj = 0; // mm - $xadj = 0; - $last_col_bottom = 0; - $lowest_bottom_y = 0; - $block_bottom = 0; - $newcolumn = 0; - foreach($this->columnbuffer AS $key=>$s) { - if (isset($s['rel_y'])) { // only process position sensitive data - if ($s['rel_y'] >= $cbr[$newcolumn]) { - $newcolumn++; - } - else { - $newcolumn = $last_new_col ; - } - - - $block_bottom = max($block_bottom,($s['rel_y']+$s['h'])); - - if ($this->directionality == 'rtl') { // *RTL* - $xadj = -(($newcolumn - $s['col']) * ($this->ColWidth + $this->ColGap)); // *RTL* - } // *RTL* - else { // *RTL* - $xadj = ($newcolumn - $s['col']) * ($this->ColWidth + $this->ColGap); - } // *RTL* - - if ($last_new_col != $newcolumn) { // Added new column - $last_col_bottom = $this->columnbuffer[$key]['rel_y']; - $block_bottom = 0; - } - $yadj = ($s['rel_y'] - $s['y']) - ($last_col_bottom)+$this->y0; - // callback function - $t = $s['s']; - - // mPDF 5.7+ - $t = $this->columnAdjustPregReplace('Td', $xadj, $yadj, '/BT (\d+\.\d\d+) (\d+\.\d\d+) Td/', $t); - $t = $this->columnAdjustPregReplace('re', $xadj, $yadj, '/(\d+\.\d\d+) (\d+\.\d\d+) (\d+\.\d\d+) ([\-]{0,1}\d+\.\d\d+) re/', $t); - $t = $this->columnAdjustPregReplace('l', $xadj, $yadj, '/(\d+\.\d\d+) (\d+\.\d\d+) l/', $t); - $t = $this->columnAdjustPregReplace('img', $xadj, $yadj, '/q (\d+\.\d\d+) 0 0 (\d+\.\d\d+) (\d+\.\d\d+) (\d+\.\d\d+) cm \/(I|FO)/', $t); - $t = $this->columnAdjustPregReplace('draw', $xadj, $yadj, '/(\d+\.\d\d+) (\d+\.\d\d+) m/', $t); - $t = $this->columnAdjustPregReplace('bezier',$xadj, $yadj, '/(\d+\.\d\d+) (\d+\.\d\d+) (\d+\.\d\d+) (\d+\.\d\d+) (\d+\.\d\d+) (\d+\.\d\d+) c/', $t); - - $this->columnbuffer[$key]['s'] = $t; - $this->columnbuffer[$key]['newcol'] = $newcolumn; - $this->columnbuffer[$key]['newy'] = $s['y'] + $yadj; - $last_new_col = $newcolumn; - $clb = $s['y'] + $yadj + $s['h'] ; // bottom_margin of current - if ((isset($this->ColDetails[$newcolumn]['max_bottom']) && $clb > $this->ColDetails[$newcolumn]['max_bottom']) || (!isset($this->ColDetails[$newcolumn]['max_bottom']) && $clb)) { $this->ColDetails[$newcolumn]['max_bottom'] = $clb; } - if ($clb > $lowest_bottom_y) { $lowest_bottom_y = $clb; } - // Adjust LINKS - if (isset($this->columnLinks[$s['col']][INTVAL($s['x'])][INTVAL($s['y'])])) { - $ref = $this->columnLinks[$s['col']][INTVAL($s['x'])][INTVAL($s['y'])]; - $this->PageLinks[$this->page][$ref][0] += ($xadj*_MPDFK); - $this->PageLinks[$this->page][$ref][1] -= ($yadj*_MPDFK); - unset($this->columnLinks[$s['col']][INTVAL($s['x'])][INTVAL($s['y'])]); - } - // Adjust FORM FIELDS - if (isset($this->columnForms[$s['col']][INTVAL($s['x'])][INTVAL($s['y'])])) { - $ref = $this->columnForms[$s['col']][INTVAL($s['x'])][INTVAL($s['y'])]; - $this->form->forms[$ref]['x'] += ($xadj); - $this->form->forms[$ref]['y'] += ($yadj); - unset($this->columnForms[$s['col']][INTVAL($s['x'])][INTVAL($s['y'])]); - } -/*-- ANNOTATIONS --*/ - if (isset($this->columnAnnots[$s['col']][INTVAL($s['x'])][INTVAL($s['y'])])) { - $ref = $this->columnAnnots[$s['col']][INTVAL($s['x'])][INTVAL($s['y'])]; - if ($this->PageAnnots[$this->page][$ref]['x'] < 0) { - $this->PageAnnots[$this->page][$ref]['x'] -= ($xadj); - } - else { - $this->PageAnnots[$this->page][$ref]['x'] += ($xadj); - } - $this->PageAnnots[$this->page][$ref]['y'] += ($yadj); // unlike PageLinks, Page annots has y values from top in mm - unset($this->columnAnnots[$s['col']][INTVAL($s['x'])][INTVAL($s['y'])]); - } -/*-- END ANNOTATIONS --*/ - } - } - -/*-- BOOKMARKS --*/ - // Adjust Bookmarks - foreach($this->col_BMoutlines AS $v) { - $this->BMoutlines[]=array('t'=>$v['t'],'l'=>$v['l'],'y'=>$this->y0,'p'=>$v['p']); - } -/*-- END BOOKMARKS --*/ - -/*-- INDEX --*/ - // Adjust Reference (index) - foreach($this->col_Reference AS $v) { - $Present=0; - //Search the reference (AND Ref/PageNo) in the array - for ($i=0;$iReference);$i++){ - if ($this->Reference[$i]['t']==$v['t']){ - $Present=1; - if (!in_array($v['op'],$this->Reference[$i]['p'])) { - $this->Reference[$i]['p'][] = $v['op']; - } - } - } - if ($Present==0) { - $this->Reference[]=array('t'=>$v['t'],'p'=>array($v['op'])); - } - } -/*-- END INDEX --*/ - -/*-- TOC --*/ - - // Adjust ToC - foreach($this->col_toc AS $v) { - $this->tocontents->_toc[]=array('t'=>$v['t'],'l'=>$v['l'],'p'=>$v['p'],'link'=>$v['link'],'toc_id'=>$v['toc_id']); - $this->links[$v['link']][1] = $this->y0; - } -/*-- END TOC --*/ - - // Adjust column length to be equal - if ($this->colvAlign == 'J') { - foreach($this->columnbuffer AS $key=>$s) { - if (isset($s['rel_y'])) { // only process position sensitive data - // Set ratio to expand y values or heights - if (isset($this->ColDetails[$s['newcol']]['max_bottom']) && $this->ColDetails[$s['newcol']]['max_bottom'] && $this->ColDetails[$s['newcol']]['max_bottom']!=$this->y0) { - $ratio = ($lowest_bottom_y - ($this->y0)) / ($this->ColDetails[$s['newcol']]['max_bottom'] - ($this->y0)); - } - else { $ratio = 1; } - if (($ratio > 1) && ($ratio <= $this->max_colH_correction)) { - $yadj = ($s['newy'] - $this->y0) * ($ratio - 1); - - // Adjust LINKS - if (isset($this->columnLinks[$s['col']][INTVAL($s['x'])][INTVAL($s['y'])])) { - $ref = $this->columnLinks[$s['col']][INTVAL($s['x'])][INTVAL($s['y'])]; - $this->PageLinks[$this->page][$ref][1] -= ($yadj*_MPDFK); // y value - $this->PageLinks[$this->page][$ref][3] *= $ratio; // height - unset($this->columnLinks[$s['col']][INTVAL($s['x'])][INTVAL($s['y'])]); - } - // Adjust FORM FIELDS - if (isset($this->columnForms[$s['col']][INTVAL($s['x'])][INTVAL($s['y'])])) { - $ref = $this->columnForms[$s['col']][INTVAL($s['x'])][INTVAL($s['y'])]; - $this->form->forms[$ref]['x'] += ($xadj); - $this->form->forms[$ref]['y'] += ($yadj); - unset($this->columnForms[$s['col']][INTVAL($s['x'])][INTVAL($s['y'])]); - } -/*-- ANNOTATIONS --*/ - if (isset($this->columnAnnots[$s['col']][INTVAL($s['x'])][INTVAL($s['y'])])) { - $ref = $this->columnAnnots[$s['col']][INTVAL($s['x'])][INTVAL($s['y'])]; - $this->PageAnnots[$this->page][$ref]['y'] += ($yadj); - unset($this->columnAnnots[$s['col']][INTVAL($s['x'])][INTVAL($s['y'])]); - } -/*-- END ANNOTATIONS --*/ - } - } - } - foreach($this->internallink AS $key => $f) { - if (is_array($f) && isset($f['col'])) { - $last_col_bottom = 0; - for ($nbc=0; $nbc<$this->NbCol; $nbc++) { - if ($f['rel_y'] >= $cbr[$nbc]) { $last_col_bottom = $cbr[$nbc]; } - } - $yadj = ($f['rel_y'] - $f['Y']) - $last_col_bottom + $this->y0; - $f['Y'] += $yadj; - unset($f['col']); - unset($f['rel_y']); - $this->internallink[$key] = $f; - } - } - - $last_col = -1; - $trans_on = false; - foreach($this->columnbuffer AS $key=>$s) { - if (isset($s['rel_y'])) { // only process position sensitive data - // Set ratio to expand y values or heights - if (isset($this->ColDetails[$s['newcol']]['max_bottom']) && $this->ColDetails[$s['newcol']]['max_bottom'] && $this->ColDetails[$s['newcol']]['max_bottom']!=$this->y0) { - $ratio = ($lowest_bottom_y - ($this->y0)) / ($this->ColDetails[$s['newcol']]['max_bottom'] - ($this->y0)); - } - else { $ratio = 1; } - if (($ratio > 1) && ($ratio <= $this->max_colH_correction)) { - //Start Transformation - $this->pages[$this->page] .= $this->StartTransform(true)."\n"; - $this->pages[$this->page] .= $this->transformScale(100, $ratio*100, $x='', $this->y0, true)."\n"; - $trans_on = true; - } - } - // Now output the adjusted values - $this->pages[$this->page] .= $s['s']."\n"; - if (isset($s['rel_y']) && ($ratio > 1) && ($ratio <= $this->max_colH_correction)) { // only process position sensitive data - //Stop Transformation - $this->pages[$this->page] .= $this->StopTransform(true)."\n"; - $trans_on = false; - } - } - if ($trans_on) { $this->pages[$this->page] .= $this->StopTransform(true)."\n"; } - } - else { // if NOT $this->colvAlign == 'J' - // Now output the adjusted values - foreach($this->columnbuffer AS $s) { - $this->pages[$this->page] .= $s['s']."\n"; - } - } - if ($lowest_bottom_y > 0) { $this->y = $lowest_bottom_y ; } - } - - // Columns not ended but new page -> align columns (can leave the columns alone - just tidy up the height) - else if ($this->colvAlign == 'J' && $this->ColumnAdjust && !$this->keepColumns) { - // calculate the lowest bottom margin - $lowest_bottom_y = 0; - foreach($this->columnbuffer AS $key=>$s) { - // Only process output data - $t = $s['s']; - if ($t == 'ACROFORM' || (preg_match('/BT \d+\.\d\d+ (\d+\.\d\d+) Td/',$t)) || (preg_match('/\d+\.\d\d+ (\d+\.\d\d+) \d+\.\d\d+ [\-]{0,1}\d+\.\d\d+ re/',$t)) || - (preg_match('/\d+\.\d\d+ (\d+\.\d\d+) l/',$t)) || - (preg_match('/q \d+\.\d\d+ 0 0 \d+\.\d\d+ \d+\.\d\d+ (\d+\.\d\d+) cm \/(I|FO)\d+ Do Q/',$t)) || - (preg_match('/\d+\.\d\d+ (\d+\.\d\d+) m/',$t)) || - (preg_match('/\d+\.\d\d+ (\d+\.\d\d+) \d+\.\d\d+ \d+\.\d\d+ \d+\.\d\d+ \d+\.\d\d+ c/',$t)) ) { - - $clb = $s['y'] + $s['h']; - if ((isset($this->ColDetails[$s['col']]['max_bottom']) && $clb > $this->ColDetails[$s['col']]['max_bottom']) || !isset($this->ColDetails[$s['col']]['max_bottom'])) { $this->ColDetails[$s['col']]['max_bottom'] = $clb; } - if ($clb > $lowest_bottom_y) { $lowest_bottom_y = $clb; } - $this->columnbuffer[$key]['rel_y'] = $s['y']; // Marks position sensitive data to process later - if ($t == 'ACROFORM') { $this->columnbuffer[$key]['s'] = ''; } - } - } - // Adjust column length equal - foreach($this->columnbuffer AS $key=>$s) { - // Set ratio to expand y values or heights - if (isset($this->ColDetails[$s['col']]['max_bottom']) && $this->ColDetails[$s['col']]['max_bottom']) { - $ratio = ($lowest_bottom_y - ($this->y0)) / ($this->ColDetails[$s['col']]['max_bottom'] - ($this->y0)); - } - else { $ratio = 1; } - if (($ratio > 1) && ($ratio <= $this->max_colH_correction)) { - $yadj = ($s['y'] - $this->y0) * ($ratio - 1); - - // Adjust LINKS - if (isset($s['rel_y'])) { // only process position sensitive data - // otherwise triggers for all entries in column buffer (.e.g. formatting) and makes below adjustments more than once - if (isset($this->columnLinks[$s['col']][INTVAL($s['x'])][INTVAL($s['y'])])) { - $ref = $this->columnLinks[$s['col']][INTVAL($s['x'])][INTVAL($s['y'])]; - $this->PageLinks[$this->page][$ref][1] -= ($yadj*_MPDFK); // y value - $this->PageLinks[$this->page][$ref][3] *= $ratio; // height - unset($this->columnLinks[$s['col']][INTVAL($s['x'])][INTVAL($s['y'])]); - } - // Adjust FORM FIELDS - if (isset($this->columnForms[$s['col']][INTVAL($s['x'])][INTVAL($s['y'])])) { - $ref = $this->columnForms[$s['col']][INTVAL($s['x'])][INTVAL($s['y'])]; - $this->form->forms[$ref]['x'] += ($xadj); - $this->form->forms[$ref]['y'] += ($yadj); - unset($this->columnForms[$s['col']][INTVAL($s['x'])][INTVAL($s['y'])]); - } -/*-- ANNOTATIONS --*/ - if (isset($this->columnAnnots[$s['col']][INTVAL($s['x'])][INTVAL($s['y'])])) { - $ref = $this->columnAnnots[$s['col']][INTVAL($s['x'])][INTVAL($s['y'])]; - $this->PageAnnots[$this->page][$ref]['y'] += ($yadj); - unset($this->columnAnnots[$s['col']][INTVAL($s['x'])][INTVAL($s['y'])]); - } -/*-- END ANNOTATIONS --*/ - } - } - } - -/*-- BOOKMARKS --*/ - - // Adjust Bookmarks - foreach($this->col_BMoutlines AS $v) { - $this->BMoutlines[]=array('t'=>$v['t'],'l'=>$v['l'],'y'=>$this->y0,'p'=>$v['p']); - } -/*-- END BOOKMARKS --*/ - -/*-- INDEX --*/ - - // Adjust Reference (index) - foreach($this->col_Reference AS $v) { - $Present=0; - //Search the reference (AND Ref/PageNo) in the array - for ($i=0;$iReference);$i++){ - if ($this->Reference[$i]['t']==$v['t']){ - $Present=1; - if (!in_array($v['op'],$this->Reference[$i]['p'])) { - $this->Reference[$i]['p'][] = $v['op']; - } - } - } - if ($Present==0) { - $this->Reference[]=array('t'=>$v['t'],'p'=>array($v['op'])); - } - } -/*-- END INDEX --*/ - -/*-- TOC --*/ - - // Adjust ToC - foreach($this->col_toc AS $v) { - $this->tocontents->_toc[]=array('t'=>$v['t'],'l'=>$v['l'],'p'=>$v['p'],'link'=>$v['link'],'toc_id'=>$v['toc_id']); - $this->links[$v['link']][1] = $this->y0; - } -/*-- END TOC --*/ - $trans_on = false; - foreach($this->columnbuffer AS $key=>$s) { - if (isset($s['rel_y'])) { // only process position sensitive data - // Set ratio to expand y values or heights - if ($this->ColDetails[$s['col']]['max_bottom']) { - $ratio = ($lowest_bottom_y - ($this->y0)) / ($this->ColDetails[$s['col']]['max_bottom'] - ($this->y0)); - } - else { $ratio = 1; } - if (($ratio > 1) && ($ratio <= $this->max_colH_correction)) { - //Start Transformation - $this->pages[$this->page] .= $this->StartTransform(true)."\n"; - $this->pages[$this->page] .= $this->transformScale(100, $ratio*100, $x='', $this->y0, true)."\n"; - $trans_on = true; - } - } - // Now output the adjusted values - $this->pages[$this->page] .= $s['s']."\n"; - if (isset($s['rel_y']) && ($ratio > 1) && ($ratio <= $this->max_colH_correction)) { - //Stop Transformation - $this->pages[$this->page] .= $this->StopTransform(true)."\n"; - $trans_on = false; // mPDF 5.1.001 - } - } - if ($trans_on) { $this->pages[$this->page] .= $this->StopTransform(true)."\n"; } - - if ($lowest_bottom_y > 0) { $this->y = $lowest_bottom_y ; } - } - - - // Just reproduce the page as it was - else { - // If page has not ended but height adjustment was disabled by custom column-break - adjust y - $lowest_bottom_y = 0; - if (!$this->ColActive && (!$this->ColumnAdjust || $this->keepColumns)) { - // calculate the lowest bottom margin - foreach($this->columnbuffer AS $key=>$s) { - // Only process output data - $t = $s['s']; - if ($t == 'ACROFORM' || (preg_match('/BT \d+\.\d\d+ (\d+\.\d\d+) Td/',$t)) || (preg_match('/\d+\.\d\d+ (\d+\.\d\d+) \d+\.\d\d+ [\-]{0,1}\d+\.\d\d+ re/',$t)) || - (preg_match('/\d+\.\d\d+ (\d+\.\d\d+) l/',$t)) || - (preg_match('/q \d+\.\d\d+ 0 0 \d+\.\d\d+ \d+\.\d\d+ (\d+\.\d\d+) cm \/(I|FO)\d+ Do Q/',$t)) || - (preg_match('/\d+\.\d\d+ (\d+\.\d\d+) m/',$t)) || - (preg_match('/\d+\.\d\d+ (\d+\.\d\d+) \d+\.\d\d+ \d+\.\d\d+ \d+\.\d\d+ \d+\.\d\d+ c/',$t)) ) { - - $clb = $s['y'] + $s['h']; - if ($clb > $this->ColDetails[$s['col']]['max_bottom']) { $this->ColDetails[$s['col']]['max_bottom'] = $clb; } - if ($clb > $lowest_bottom_y) { $lowest_bottom_y = $clb; } - } - } - } - foreach($this->columnbuffer AS $key=>$s) { - if ($s['s'] != 'ACROFORM') - $this->pages[$this->page] .= $s['s']."\n"; - } - if ($lowest_bottom_y > 0) { $this->y = $lowest_bottom_y ; } -/*-- INDEX --*/ - - // Output Reference (index) - foreach($this->col_Reference AS $v) { - $Present=0; - for ($i=0;$iReference);$i++){ - if ($this->Reference[$i]['t']==$v['t']){ - $Present=1; - if (!in_array($v['op'],$this->Reference[$i]['p'])) { - $this->Reference[$i]['p'][] = $v['op']; - } - } - } - if ($Present==0) { - $this->Reference[]=array('t'=>$v['t'],'p'=>array($v['op'])); - } - } -/*-- END INDEX --*/ -/*-- BOOKMARKS --*/ - // Output Bookmarks - foreach($this->col_BMoutlines AS $v) { - $this->BMoutlines[]=array('t'=>$v['t'],'l'=>$v['l'],'y'=>$v['y'],'p'=>$v['p']); - } -/*-- END BOOKMARKS --*/ -/*-- TOC --*/ - // Output ToC - foreach($this->col_toc AS $v) { - $this->tocontents->_toc[]=array('t'=>$v['t'],'l'=>$v['l'],'p'=>$v['p'],'link'=>$v['link'],'toc_id'=>$v['toc_id']); - } -/*-- END TOC --*/ - } - foreach($this->internallink AS $key => $f) { - if (isset($this->internallink[$key]['col'])) unset($this->internallink[$key]['col']); - if (isset($this->internallink[$key]['rel_y'])) unset($this->internallink[$key]['rel_y']); - } - - $this->columnbuffer = array(); - $this->ColDetails = array(); - $this->columnLinks = array(); - $this->columnAnnots = array(); - $this->columnForms = array(); - - $this->col_Reference = array(); - $this->col_BMoutlines = array(); - $this->col_toc = array(); - $this->breakpoints = array(); -} - -// mPDF 5.7+ -function columnAdjustPregReplace($type, $xadj, $yadj, $pattern, $subject) { - preg_match($pattern, $subject, $matches); - if (!isset($matches[3])) { $matches[3] = 0; } - if (!isset($matches[4])) { $matches[4] = 0; } - if (!isset($matches[5])) { $matches[5] = 0; } - if (!isset($matches[6])) { $matches[6] = 0; } - return str_replace($matches[0], $this->columnAdjustAdd($type, _MPDFK, $xadj, $yadj, $matches[1], $matches[2], $matches[3], $matches[4], $matches[5], $matches[6]), $subject); -} - -/*-- END COLUMNS --*/ - - -//================================================================== -/*-- TABLES --*/ -function printcellbuffer() { - if (count($this->cellBorderBuffer )) { - sort($this->cellBorderBuffer); - foreach($this->cellBorderBuffer AS $cbb) { - $cba = unpack("A16dom/nbord/A1side/ns/dbw/a6ca/A10style/dx/dy/dw/dh/dmbl/dmbr/dmrt/dmrb/dmtl/dmtr/dmlt/dmlb/dcpd/dover/", $cbb); - $side = $cba['side']; - $details = array(); - $details[$side]['dom'] = (float) $cba['dom']; - $details[$side]['s'] = $cba['s']; - $details[$side]['w'] = $cba['bw']; - $details[$side]['c'] = $cba['ca']; - $details[$side]['style'] = trim($cba['style']); - $details['mbw']['BL'] = $cba['mbl']; - $details['mbw']['BR'] = $cba['mbr']; - $details['mbw']['RT'] = $cba['mrt']; - $details['mbw']['RB'] = $cba['mrb']; - $details['mbw']['TL'] = $cba['mtl']; - $details['mbw']['TR'] = $cba['mtr']; - $details['mbw']['LT'] = $cba['mlt']; - $details['mbw']['LB'] = $cba['mlb']; - $details['cellposdom'] = $cba['cpd']; - $details['p'] = $side; - if ($cba['over']==1) { $details[$side]['overlay'] = true; } - else { $details[$side]['overlay'] = false; } - $this->_tableRect($cba['x'],$cba['y'],$cba['w'],$cba['h'],$cba['bord'],$details, false, false); - - } - $this->cellBorderBuffer = array(); - } -} -//================================================================== -function printtablebuffer() { - - if (!$this->table_rotate) { - $this->pages[$this->page] .= $this->tablebuffer; - foreach($this->tbrot_Links AS $p => $l) { - foreach($l AS $v) { - $this->PageLinks[$p][] = $v; - } - } - $this->tbrot_Links = array(); -/*-- ANNOTATIONS --*/ - foreach($this->tbrot_Annots AS $p => $l) { - foreach($l AS $v) { - $this->PageAnnots[$p][] = $v; - } - } - $this->tbrot_Annots = array(); -/*-- END ANNOTATIONS --*/ - -/*-- INDEX --*/ - // Output Reference (index) - foreach($this->tbrot_Reference AS $v) { - $Present=0; - for ($i=0;$iReference);$i++){ - if ($this->Reference[$i]['t']==$v['t']){ - $Present=1; - if (!in_array($v['op'],$this->Reference[$i]['p'])) { - $this->Reference[$i]['p'][] = $v['op']; - } - } - } - if ($Present==0) { - $this->Reference[]=array('t'=>$v['t'],'p'=>array($v['op'])); - } - } - $this->tbrot_Reference = array(); -/*-- END INDEX --*/ - -/*-- BOOKMARKS --*/ - // Output Bookmarks - foreach($this->tbrot_BMoutlines AS $v) { - $this->BMoutlines[]=array('t'=>$v['t'],'l'=>$v['l'],'y'=>$v['y'],'p'=>$v['p']); - } - $this->tbrot_BMoutlines = array(); -/*-- END BOOKMARKS --*/ - -/*-- TOC --*/ - // Output ToC - foreach($this->tbrot_toc AS $v) { - $this->tocontents->_toc[]=array('t'=>$v['t'],'l'=>$v['l'],'p'=>$v['p'],'link'=>$v['link'],'toc_id'=>$v['toc_id']); - } - $this->tbrot_toc = array(); -/*-- END TOC --*/ - - return; - } - // else if rotated - $lm = $this->lMargin + $this->blk[$this->blklvl]['outer_left_margin'] + $this->blk[$this->blklvl]['border_left']['w'] + $this->blk[$this->blklvl]['padding_left']; - $pw = $this->blk[$this->blklvl]['inner_width']; - //Start Transformation - $this->pages[$this->page] .= $this->StartTransform(true)."\n"; - - if ($this->table_rotate > 1) { // clockwise - if ($this->tbrot_align == 'L') { - $xadj = $this->tbrot_h ; // align L (as is) - } - else if ($this->tbrot_align == 'R') { - $xadj = $lm-$this->tbrot_x0+($pw) ; // align R - } - else { - $xadj = $lm-$this->tbrot_x0+(($pw + $this->tbrot_h)/2) ; // align C - } - $yadj = 0; - } - else { // anti-clockwise - if ($this->tbrot_align == 'L') { - $xadj = 0 ; // align L (as is) - } - else if ($this->tbrot_align == 'R') { - $xadj = $lm-$this->tbrot_x0+($pw - $this->tbrot_h) ; // align R - } - else { - $xadj = $lm-$this->tbrot_x0+(($pw - $this->tbrot_h)/2) ; // align C - } - $yadj = $this->tbrot_w; - } - - - $this->pages[$this->page] .= $this->transformTranslate($xadj, $yadj , true)."\n"; - $this->pages[$this->page] .= $this->transformRotate($this->table_rotate, $this->tbrot_x0 , $this->tbrot_y0 , true)."\n"; - - // Now output the adjusted values - $this->pages[$this->page] .= $this->tablebuffer; - - - foreach($this->tbrot_Links AS $p => $l) { - foreach($l AS $v) { - $w = $v[2]/_MPDFK; - $h = $v[3]/_MPDFK; - $ax = ($v[0]/_MPDFK) - $this->tbrot_x0; - $ay = (($this->hPt-$v[1])/_MPDFK) - $this->tbrot_y0; - if ($this->table_rotate > 1) { // clockwise - $bx = $this->tbrot_x0+$xadj-$ay-$h; - $by = $this->tbrot_y0+$yadj+$ax; - } - else { - $bx = $this->tbrot_x0+$xadj+$ay; - $by = $this->tbrot_y0+$yadj-$ax-$w; - } - $v[0] = $bx*_MPDFK; - $v[1] = ($this->h-$by)*_MPDFK; - $v[2] = $h*_MPDFK; // swap width and height - $v[3] = $w*_MPDFK; - $this->PageLinks[$p][] = $v; - } - } - $this->tbrot_Links = array(); - foreach($this->internallink AS $key => $f) { - if (is_array($f) && isset($f['tbrot'])) { - $f['Y'] = $this->tbrot_y0; - $f['PAGE'] = $this->page; - unset($f['tbrot']); - $this->internallink[$key] = $f; - } - } -/*-- ANNOTATIONS --*/ - foreach($this->tbrot_Annots AS $p => $l) { - foreach($l AS $v) { - $ax = abs($v['x']) - $this->tbrot_x0; // abs because -ve values are internally set and held for reference if annotMargin set - $ay = $v['y'] - $this->tbrot_y0; - if ($this->table_rotate > 1) { // clockwise - $bx = $this->tbrot_x0+$xadj-$ay; - $by = $this->tbrot_y0+$yadj+$ax; - } - else { - $bx = $this->tbrot_x0+$xadj+$ay; - $by = $this->tbrot_y0+$yadj-$ax; - } - if ($v['x'] < 0) { - $v['x'] = -$bx; - } - else { - $v['x'] = $bx; - } - $v['y'] = ($by); - $this->PageAnnots[$p][] = $v; - } - } - $this->tbrot_Annots = array(); -/*-- END ANNOTATIONS --*/ - - -/*-- BOOKMARKS --*/ - - // Adjust Bookmarks - foreach($this->tbrot_BMoutlines AS $v) { - $v['y'] = $this->tbrot_y0; - $this->BMoutlines[]=array('t'=>$v['t'],'l'=>$v['l'],'y'=>$v['y'],'p'=>$this->page); - } -/*-- END BOOKMARKS --*/ - -/*-- INDEX --*/ - - // Adjust Reference (index) - foreach($this->tbrot_Reference AS $v) { - $Present=0; - //Search the reference (AND Ref/PageNo) in the array - for ($i=0;$iReference);$i++){ - if ($this->Reference[$i]['t']==$v['t']){ - $Present=1; - if (!in_array($this->page,$this->Reference[$i]['p'])) { - $this->Reference[$i]['p'][] = $this->page; - } - } - } - if ($Present==0) { - $this->Reference[]=array('t'=>$v['t'],'p'=>array($this->page)); - } - } -/*-- END INDEX --*/ - -/*-- TOC --*/ - - // Adjust ToC - uses document page number - foreach($this->tbrot_toc AS $v) { - $this->tocontents->_toc[]=array('t'=>$v['t'],'l'=>$v['l'],'p'=>$this->page,'link'=>$v['link'],'toc_id'=>$v['toc_id']); - $this->links[$v['link']][1] = $this->tbrot_y0; - } -/*-- END TOC --*/ - - - - $this->tbrot_Reference = array(); - $this->tbrot_BMoutlines = array(); - $this->tbrot_toc = array(); - - //Stop Transformation - $this->pages[$this->page] .= $this->StopTransform(true)."\n"; - - - $this->y = $this->tbrot_y0 + $this->tbrot_w; - $this->x = $this->lMargin; - - $this->tablebuffer = ''; -} - -//================================================================== -// Keep-with-table This buffers contents of h1-6 to keep on page with table -function printkwtbuffer() { - if (!$this->kwt_moved) { - foreach($this->kwt_buffer AS $s) { $this->pages[$this->page] .= $s['s']."\n"; } - foreach($this->kwt_Links AS $p => $l) { - foreach($l AS $v) { - $this->PageLinks[$p][] = $v; - } - } - $this->kwt_Links = array(); -/*-- ANNOTATIONS --*/ - foreach($this->kwt_Annots AS $p => $l) { - foreach($l AS $v) { - $this->PageAnnots[$p][] = $v; - } - } - $this->kwt_Annots = array(); -/*-- END ANNOTATIONS --*/ - -/*-- INDEX --*/ - // Output Reference (index) - foreach($this->kwt_Reference AS $v) { - $Present=0; - for ($i=0;$iReference);$i++){ - if ($this->Reference[$i]['t']==$v['t']){ - $Present=1; - if (!in_array($v['op'],$this->Reference[$i]['p'])) { - $this->Reference[$i]['p'][] = $v['op']; - } - } - } - if ($Present==0) { - $this->Reference[]=array('t'=>$v['t'],'p'=>array($v['op'])); - } - } - $this->kwt_Reference = array(); -/*-- END INDEX --*/ - -/*-- BOOKMARKS --*/ - // Output Bookmarks - foreach($this->kwt_BMoutlines AS $v) { - $this->BMoutlines[]=array('t'=>$v['t'],'l'=>$v['l'],'y'=>$v['y'],'p'=>$v['p']); - } - $this->kwt_BMoutlines = array(); -/*-- END BOOKMARKS --*/ - -/*-- TOC --*/ - // Output ToC - foreach($this->kwt_toc AS $v) { - $this->tocontents->_toc[]=array('t'=>$v['t'],'l'=>$v['l'],'p'=>$v['p'],'link'=>$v['link'],'toc_id'=>$v['toc_id']); - } - $this->kwt_toc = array(); -/*-- END TOC --*/ - - return; - } - - //Start Transformation - $this->pages[$this->page] .= $this->StartTransform(true)."\n"; - $xadj = $this->lMargin - $this->kwt_x0 ; - //$yadj = $this->y - $this->kwt_y0 ; - $yadj = $this->tMargin - $this->kwt_y0 ; - - $this->pages[$this->page] .= $this->transformTranslate($xadj, $yadj , true)."\n"; - - // Now output the adjusted values - foreach($this->kwt_buffer AS $s) { $this->pages[$this->page] .= $s['s']."\n"; } - - // Adjust hyperLinks - foreach($this->kwt_Links AS $p => $l) { - foreach($l AS $v) { - $bx = $this->kwt_x0+$xadj; - $by = $this->kwt_y0+$yadj; - $v[0] = $bx*_MPDFK; - $v[1] = ($this->h-$by)*_MPDFK; - $this->PageLinks[$p][] = $v; - } - } - foreach($this->internallink AS $key => $f) { - if (is_array($f) && isset($f['kwt'])) { - $f['Y'] += $yadj; - $f['PAGE'] = $this->page; - unset($f['kwt']); - $this->internallink[$key] = $f; - } - } -/*-- ANNOTATIONS --*/ - foreach($this->kwt_Annots AS $p => $l) { - foreach($l AS $v) { - $bx = $this->kwt_x0+$xadj; - $by = $this->kwt_y0+$yadj; - if ($v['x'] < 0) { - $v['x'] = -$bx; - } - else { - $v['x'] = $bx; - } - $v['y'] = $by; - $this->PageAnnots[$p][] = $v; - } - } -/*-- END ANNOTATIONS --*/ - -/*-- BOOKMARKS --*/ - - // Adjust Bookmarks - foreach($this->kwt_BMoutlines AS $v) { - if ($v['y'] != 0) { $v['y'] += $yadj; } - $this->BMoutlines[]=array('t'=>$v['t'],'l'=>$v['l'],'y'=>$v['y'],'p'=>$this->page); - } -/*-- END BOOKMARKS --*/ - -/*-- INDEX --*/ - - // Adjust Reference (index) - foreach($this->kwt_Reference AS $v) { - $Present=0; - //Search the reference (AND Ref/PageNo) in the array - for ($i=0;$iReference);$i++){ - if ($this->Reference[$i]['t']==$v['t']){ - $Present=1; - if (!in_array($this->page,$this->Reference[$i]['p'])) { - $this->Reference[$i]['p'][] = $this->page; - } - } - } - if ($Present==0) { - $this->Reference[]=array('t'=>$v['t'],'p'=>array($this->page)); - } - } -/*-- END INDEX --*/ - -/*-- TOC --*/ - - // Adjust ToC - foreach($this->kwt_toc AS $v) { - $this->tocontents->_toc[]=array('t'=>$v['t'],'l'=>$v['l'],'p'=>$this->page,'link'=>$v['link'],'toc_id'=>$v['toc_id']); - $this->links[$v['link']][0] = $this->page; - $this->links[$v['link']][1] += $yadj; - } -/*-- END TOC --*/ - - - $this->kwt_Links = array(); - $this->kwt_Annots = array(); - - $this->kwt_Reference = array(); - $this->kwt_BMoutlines = array(); - $this->kwt_toc = array(); - //Stop Transformation - $this->pages[$this->page] .= $this->StopTransform(true)."\n"; - - $this->kwt_buffer = array(); - - $this->y += $this->kwt_height; -} - -/*-- END TABLES --*/ - - -//================================================================== - -function printfloatbuffer() { - if (count($this->floatbuffer)) { - $this->objectbuffer = $this->floatbuffer; - $this->printobjectbuffer(false); - $this->objectbuffer = array(); - $this->floatbuffer = array(); - $this->floatmargins = array(); - } -} -//================================================================== - -function printdivbuffer() { - $p1 = $this->blk[$this->blklvl]['startpage']; - $p2 = $this->page; - $bottom[$p1] = $this->ktBlock[$p1]['bottom_margin']; - $bottom[$p2] = $this->y; // $this->ktBlock[$p2]['bottom_margin']; - $top[$p1] = $this->kt_y00; - - $top2 = $this->h; - foreach($this->divbuffer AS $key=>$s) { - if ($s['page'] == $p2) { - $top2 = MIN($s['y'], $top2); - } - } - $top[$p2] = $top2; - $height[$p1] = ($bottom[$p1] - $top[$p1]); - $height[$p2] = ($bottom[$p2] - $top[$p2]); - $xadj[$p1] = $this->MarginCorrection; - $yadj[$p1] = -($top[$p1] - $top[$p2]); - $xadj[$p2] = 0; - $yadj[$p2] = $height[$p1]; - - // Output without any transformation - if ($this->ColActive || !$this->keep_block_together || $this->blk[$this->blklvl]['startpage'] == $this->page || ($this->page - $this->blk[$this->blklvl]['startpage']) > 1 || ($height[$p1]+$height[$p2]) > $this->h) { - foreach($this->divbuffer AS $s) { $this->pages[$s['page']] .= $s['s']."\n"; } - foreach($this->ktLinks AS $p => $l) { - foreach($l AS $v) { - $this->PageLinks[$p][] = $v; - } - } - foreach($this->ktForms AS $key => $f) { - $this->form->forms[$f['n']] = $f; - } -/*-- ANNOTATIONS --*/ - foreach($this->ktAnnots AS $p => $l) { - foreach($l AS $v) { - $this->PageAnnots[$p][] = $v; - } - } -/*-- END ANNOTATIONS --*/ -/*-- INDEX --*/ - // Adjust Reference (index) - foreach($this->ktReference AS $v) { - $Present=0; - //Search the reference (AND Ref/PageNo) in the array - for ($i=0;$iReference);$i++){ - if ($this->Reference[$i]['t']==$v['t']){ - $Present=1; - if (!in_array($p2,$this->Reference[$i]['p'])) { - $this->Reference[$i]['p'][] = $p2; - } - } - } - //If not found, add it - if ($Present==0) { - $this->Reference[]=array('t'=>$v['t'],'p'=>array($p2)); - } - } -/*-- END INDEX --*/ - -/*-- BOOKMARKS --*/ - // Adjust Bookmarks - foreach($this->ktBMoutlines AS $v) { - $this->BMoutlines[]=array('t'=>$v['t'],'l'=>$v['l'],'y'=>$v['y'],'p'=>$v['p']); - } -/*-- END BOOKMARKS --*/ - -/*-- TOC --*/ - // Adjust ToC - foreach($this->_kttoc AS $v) { - $this->tocontents->_toc[]=array('t'=>$v['t'],'l'=>$v['l'],'p'=>$v['p'],'link'=>$v['link'],'toc_id'=>$v['toc_id']); - } -/*-- END TOC --*/ - - $this->divbuffer = array(); - $this->ktLinks = array(); - $this->ktAnnots = array(); - $this->ktForms = array(); - $this->ktBlock = array(); - $this->ktReference = array(); - $this->ktBMoutlines = array(); - $this->_kttoc = array(); - $this->keep_block_together = 0; - return; - } - else { - // Output with transformation - // mPDF 5.6.17 - $np = ''; - $lastpage = -1; - foreach($this->divbuffer AS $key=>$s) { - // callback function - $t = $s['s']; - $p = $s['page']; - if ($p != $lastpage) { - $q = ''; - if ($lastpage != -1) { $q = ' Q'."\n"; } - $t = $q . $this->StartTransform(true)."\n" . $this->transformTranslate($xadj[$p], $yadj[$p] , true)."\n" . $t; - $lastpage = $p; - } - $np .= $t."\n"; - } - if ($lastpage != -1) { $np .= ' Q'."\n"; } - - $this->pages[$this->page] .= $np; - - // Adjust hyperLinks - foreach($this->ktLinks AS $p => $l) { - foreach($l AS $v) { - $v[0] += ($xadj[$p]*_MPDFK); - $v[1] -= ($yadj[$p]*_MPDFK); - $this->PageLinks[$p2][] = $v; - } - } - foreach($this->ktForms AS $key => $f) { - $p = $f['page']; - $f['x'] += ($xadj[$p]); - $f['y'] += ($yadj[$p]); - $f['page'] = $p2; - $this->form->forms[$f['n']] = $f; - } - foreach($this->internallink AS $key => $f) { - if (is_array($f) && isset($f['kt'])) { - $f['Y'] += ($yadj[$f['PAGE']]); - $f['PAGE'] = $p2; - unset($f['kt']); - $this->internallink[$key] = $f; - } - } -/*-- ANNOTATIONS --*/ - foreach($this->ktAnnots AS $p => $l) { - foreach($l AS $v) { - if ($v['x']>0) { $v['x'] += $xadj[$p]; } - else if ($v['x']<0) { $v['x'] -= $xadj[$p]; } - $v['y'] += $yadj[$p]; - $this->PageAnnots[$p2][] = $v; - } - } -/*-- END ANNOTATIONS --*/ - -/*-- BOOKMARKS --*/ - // Adjust Bookmarks - foreach($this->ktBMoutlines AS $v) { - if ($v['y'] != 0) { $v['y'] += ($yadj[$v['p']]); } - $this->BMoutlines[]=array('t'=>$v['t'],'l'=>$v['l'],'y'=>$v['y'],'p'=>$p2); - } -/*-- END BOOKMARKS --*/ - -/*-- INDEX --*/ - // Adjust Reference (index) - foreach($this->ktReference AS $v) { - $Present=0; - //Search the reference (AND Ref/PageNo) in the array - for ($i=0;$iReference);$i++){ - if ($this->Reference[$i]['t']==$v['t']){ - $Present=1; - if (!in_array($p2,$this->Reference[$i]['p'])) { - $this->Reference[$i]['p'][] = $p2; - } - } - } - //If not found, add it - if ($Present==0) { - $this->Reference[]=array('t'=>$v['t'],'p'=>array($p2)); - } - } -/*-- END INDEX --*/ - -/*-- TOC --*/ - // Adjust ToC - foreach($this->_kttoc AS $v) { - $this->tocontents->_toc[]=array('t'=>$v['t'],'l'=>$v['l'],'p'=>$p2,'link'=>$v['link'],'toc_id'=>$v['toc_id']); - $this->links[$v['link']][0] = $p2; - $this->links[$v['link']][1] += $yadj[$v['p']]; - } -/*-- END TOC --*/ - - $this->y = $top[$p2] + $height[$p1] + $height[$p2]; - $this->x = $this->lMargin; - - $this->divbuffer = array(); - $this->ktLinks = array(); - $this->ktAnnots = array(); - $this->ktForms = array(); - $this->ktBlock = array(); - $this->ktReference = array(); - $this->ktBMoutlines = array(); - $this->_kttoc = array(); - $this->keep_block_together = 0; - } -} - - -//================================================================== -// Added ELLIPSES and CIRCLES -function Circle($x,$y,$r,$style='S') { - $this->Ellipse($x,$y,$r,$r,$style); -} - -function Ellipse($x,$y,$rx,$ry,$style='S') { - if($style=='F') { $op='f'; } - elseif($style=='FD' or $style=='DF') { $op='B'; } - else { $op='S'; } - $lx=4/3*(M_SQRT2-1)*$rx; - $ly=4/3*(M_SQRT2-1)*$ry; - $h=$this->h; - $this->_out(sprintf('%.3F %.3F m %.3F %.3F %.3F %.3F %.3F %.3F c', ($x+$rx)*_MPDFK,($h-$y)*_MPDFK, ($x+$rx)*_MPDFK,($h-($y-$ly))*_MPDFK, ($x+$lx)*_MPDFK,($h-($y-$ry))*_MPDFK, $x*_MPDFK,($h-($y-$ry))*_MPDFK)); - $this->_out(sprintf('%.3F %.3F %.3F %.3F %.3F %.3F c', ($x-$lx)*_MPDFK,($h-($y-$ry))*_MPDFK, ($x-$rx)*_MPDFK,($h-($y-$ly))*_MPDFK, ($x-$rx)*_MPDFK,($h-$y)*_MPDFK)); - $this->_out(sprintf('%.3F %.3F %.3F %.3F %.3F %.3F c', ($x-$rx)*_MPDFK,($h-($y+$ly))*_MPDFK, ($x-$lx)*_MPDFK,($h-($y+$ry))*_MPDFK, $x*_MPDFK,($h-($y+$ry))*_MPDFK)); - $this->_out(sprintf('%.3F %.3F %.3F %.3F %.3F %.3F c %s', ($x+$lx)*_MPDFK,($h-($y+$ry))*_MPDFK, ($x+$rx)*_MPDFK,($h-($y+$ly))*_MPDFK, ($x+$rx)*_MPDFK,($h-$y)*_MPDFK, $op)); -} - -/*-- DIRECTW --*/ -// Added adaptation of shaded_box = AUTOSIZE-TEXT -function AutosizeText($text,$w,$font,$style,$szfont=72) { - $text = $this->purify_utf8_text($text); - if ($this->text_input_as_HTML) { - $text = $this->all_entities_to_utf8($text); - } - if ($this->usingCoreFont) { $text = mb_convert_encoding($text,$this->mb_enc,'UTF-8'); } - $text = ' '.$text.' '; - $width = $this->ConvertSize($w); - $loop = 0; - while ( $loop == 0 ) { - $this->SetFont($font,$style,$szfont); - $sz = $this->GetStringWidth( $text ); - if ( $sz > $w ) { $szfont --; } - else { $loop ++; } - } - $this->SetFont($font,$style,$szfont); - $this->Cell($w, 0, $text, 0, 0, "C"); -} -/*-- END DIRECTW --*/ - - - - - -// ==================================================== -// ==================================================== -/*-- RTL --*/ -function reverse_letters($str) { - $str = strtr($str, '{}[]()', '}{][)('); - return $this->mb_strrev($str, $this->mb_enc); -} - -// mPDF 5.7+ -function reverse_letters_preg_callback($matches) { - return $this->reverse_letters($matches[1]); -} - -function magic_reverse_dir(&$chunk, $join=true, $dir) { - if ($this->usingCoreFont) { return 0; } - if ($this->biDirectional) { - // mPDF 5.4.05 Include PUA for non-indexed Arabic glyphs - $pregRTLchars = $this->pregRTLchars; - if ($this->CurrentFont['unAGlyphs']) { $pregRTLchars .= "\x{F500}-\x{F7FF}"; } - - // Change Arabic + Persian. to Presentation Forms - if ($join) { - $chunk = preg_replace_callback("/([".$pregRTLchars."]+)/u", array($this, 'arabJoinPregCallback'), $chunk ); // mPDF 5.7+ - } - $contains_rtl = false; - $all_rtl = true; - $initSpace = false; - $endSpace = false; - $nonDirchars = "\x{A0}\"\'\(\)\{\}\[\].,:\\/-="; // mPDF 5.6.32 - // mPDF 5.6.43 - $bdo=array(); - preg_match_all('/([\x{202A}\x{202B}])(.*?)([\x{202C}])/u',$chunk,$m); - if (count($m[0])) { - for($i=0;$ireverse_letters($m[2][$i]); - } - else if ($m[1][$i]=="\xe2\x80\xaa") { // Left-to-Right Embedding [LRE] U+202A ‪ - $mark = code2utf(0xf880+$i); - $bdo[$i] = $m[2][$i]; - } - $chunk = preg_replace('/'.preg_quote($m[0][$i],'/').'/u',$mark,$chunk); - } - $pregRTLchars .= "\x{F800}-\x{F87F}"; - } - if (preg_match("/[".$pregRTLchars."]/u",$chunk)) { // Chunk contains RTL characters - if (preg_match("/^[ ]/",$chunk)) { $initSpace = true; $chunk = preg_replace("/^[ ]/",'',$chunk); } - if (preg_match("/[ ]$/",$chunk)) { $endSpace = true; $chunk = preg_replace("/[ ]$/",'',$chunk); } - - if (preg_match("/[^".$pregRTLchars.$nonDirchars." ]/u",$chunk)) { // Chunk also contains LTR characters - $all_rtl = false; - if ($dir == 'rtl') { - $chunk = preg_replace("/([^".$pregRTLchars.$nonDirchars."][".$nonDirchars."]*) ([".$nonDirchars."]*[^".$pregRTLchars.$nonDirchars."])/u","\\1\x07\\2",$chunk); - } - $chunk = preg_replace("/([".$pregRTLchars."][".$nonDirchars."]*) ([".$nonDirchars."]*[".$pregRTLchars."])/u","\\1\x07\\2",$chunk); - $bits = explode(' ',$chunk); - foreach($bits AS $bitkey=>$bit) { - $bit = preg_replace("/\x07/"," ",$bit); - if (preg_match("/^[".$pregRTLchars.$nonDirchars." ]*$/u",$bit)) { - $bits[$bitkey] = $this->reverse_letters($bit); - } - else if (preg_match("/[".$pregRTLchars."]/u",$bit)) { - if ($dir == 'rtl') { - $bit = preg_replace("/([^".$pregRTLchars.$nonDirchars." ])([".$nonDirchars."]*[".$pregRTLchars."])/u","\\1\x07\\2",$bit ); - $bit = preg_replace("/([".$pregRTLchars."][".$nonDirchars."]*)([^".$pregRTLchars.$nonDirchars." ])/u","\\1\x07\\2",$bit ); - } - else { - $bit = preg_replace("/([^".$pregRTLchars." ][".$nonDirchars."]*)([".$pregRTLchars." ])/u","\\1\x07\\2",$bit ); - $bit = preg_replace("/([".$pregRTLchars." ])([".$nonDirchars."]*[^".$pregRTLchars." ])/u","\\1\x07\\2",$bit ); - } - $sbits = explode("\x07",$bit ); - foreach($sbits AS $sbitkey=>$sbit) { - $sbit = preg_replace("/\x07/","",$sbit); - if (preg_match("/^[".$pregRTLchars.$nonDirchars." ]*$/u",$sbit)) { - $sbits[$sbitkey] = $this->reverse_letters($sbit); - } - else if (preg_match("/[".$pregRTLchars."]/u",$sbit) && $dir=='rtl') { - $sbits[$sbitkey] = $this->reverse_letters($sbit); - } - else { - // Reverse numerals only to RTL - $sbit = preg_replace_callback("/([\x{0660}-\x{066C}0-9]+[\x{0660}-\x{066C}0-9\.,:\/]*[\x{0660}-\x{066C}0-9]+)/u", array($this, 'reverse_letters_preg_callback'), $sbit ); // mPDF 5.7+ - $sbits[$sbitkey] = $sbit; - } - } - if ($dir == 'rtl') { $sbits = array_reverse($sbits,false); } - $bits[$bitkey] = implode('',$sbits); - } - else if (preg_match("/[".$pregRTLchars."]/u",$bit) && $dir=='rtl') { - $bits[$bitkey] = $this->reverse_letters($bit); - } - else { - // Reverse numerals only to RTL - $bit = preg_replace_callback("/([\x{0660}-\x{066C}0-9]+[\x{0660}-\x{066C}0-9\.,:\/]*[\x{0660}-\x{066C}0-9]+)/u", array($this, 'reverse_letters_preg_callback'), $bit ); // mPDF 5.7+ - $bits[$bitkey] = $bit; - } - } - if ($dir == 'rtl') { $bits = array_reverse($bits,false); } - $chunk = implode(' ',$bits); - } - else { $chunk = $this->reverse_letters($chunk); } - $contains_rtl = true; - - // Un-Reverse numerals back to ltr - $chunk = preg_replace_callback("/([\x{0660}-\x{066C}0-9]+[\x{0660}-\x{066C}0-9\.,:\/]*[\x{0660}-\x{066C}0-9]+)/u", array($this, 'reverse_letters_preg_callback'), $chunk ); // mPDF 5.7+ - if ($dir == 'rtl') { - if ($endSpace) { $chunk = ' '.$chunk; } - if ($initSpace) { $chunk .= ' '; } - } - else { - if ($initSpace) { $chunk = ' '.$chunk; } - if ($endSpace) { $chunk .= ' '; } - } - } - else { $all_rtl = false; } - - // mPDF 5.6.43 - if (count($bdo)) { - for($i=0;$isubstitute = array(); - foreach($subsarray AS $key => $val) { - $this->substitute[code2utf($key)] = $val; - } -} - - -function SubstituteChars($html) { - // only substitute characters between tags - if (count($this->substitute)) { - $a=preg_split('/(<.*?>)/ms',$html,-1,PREG_SPLIT_DELIM_CAPTURE); - $html = ''; - foreach($a as $i => $e) { - if($i%2==0) { - $e = strtr($e, $this->substitute); - } - $html .= $e; - } - } - return $html; -} - - -function SubstituteCharsSIP(&$writehtml_a, &$writehtml_i, &$writehtml_e) { - if (preg_match("/^(.*?)([\x{20000}-\x{2FFFF}]+)(.*)/u", $writehtml_e, $m)) { - if (isset($this->CurrentFont['sipext']) && $this->CurrentFont['sipext']) { - $font = $this->CurrentFont['sipext']; - if (!in_array($font, $this->available_unifonts)) { return 0; } - $writehtml_a[$writehtml_i] = $writehtml_e = $m[1]; - array_splice($writehtml_a, $writehtml_i+1, 0, array('span style="font-family: '.$font.'"', $m[2], '/span', $m[3])); - $this->subPos = $writehtml_i; - return 4; - } - } - return 0; -} - -// If core font is selected in document which is not onlyCoreFonts - substitute with non-core font -function SubstituteCharsNonCore(&$writehtml_a, &$writehtml_i, &$writehtml_e) { - if (mb_convert_encoding(mb_convert_encoding($writehtml_e, $this->mb_enc, "UTF-8"), "UTF-8", $this->mb_enc) == $writehtml_e) { - return 0; - } - $cw = &$this->CurrentFont['cw']; - $unicode = $this->UTF8StringToArray($writehtml_e, false); - $start = -1; - $end = 0; - $flag = 0; - $ftype = ''; - $u = array(); - if (!$this->subArrMB) { - include(_MPDF_PATH.'includes/subs_core.php'); - $this->subArrMB['a'] = $aarr; - $this->subArrMB['s'] = $sarr; - $this->subArrMB['z'] = $zarr; - } - foreach($unicode AS $c => $char) { - if (($char> 127 || ($flag==1 && $char==32)) && $char != 173 && (!isset($this->subArrMB['a'][$char]) || ($flag==1 && $char==32)) && ($char<1536 || ($char>1791 && $char < 2304) || $char>3455)) { - if ($flag==0) { $start=$c; } - $flag=1; - $u[] = $char; - } - else if ($flag>0) { $end=$c-1; break; } - } - if ($flag>0 && !$end) { $end=count($unicode)-1; } - if ($start==-1) { return 0; } - // TRY IN BACKUP SUBS FONT - if (!is_array($this->backupSubsFont)) { $this->backupSubsFont = array("$this->backupSubsFont"); } - foreach($this->backupSubsFont AS $bsfctr=>$bsf) { - if ($this->fonttrans[$bsf] == 'chelvetica' || $this->fonttrans[$bsf] == 'ctimes' || $this->fonttrans[$bsf] == 'ccourier') { continue; } - $font = $bsf; - unset($cw); - $cw = ''; - if (isset($this->fonts[$font])) { $cw = &$this->fonts[$font]['cw']; } - else if (file_exists(_MPDF_TTFONTDATAPATH.$font.'.cw.dat')) { $cw = @file_get_contents(_MPDF_TTFONTDATAPATH.$font.'.cw.dat'); } - else { - - $prevFontFamily = $this->FontFamily; - $prevFontStyle = $this->currentfontstyle; - $prevFontSizePt = $this->FontSizePt; - $this->SetFont($bsf, '', '', false); - $cw = @file_get_contents(_MPDF_TTFONTDATAPATH.$font.'.cw.dat'); - $this->SetFont($prevFontFamily, $prevFontStyle, $prevFontSizePt, false); - } - if (!$cw) { continue; } - $l = 0; - foreach($u AS $char) { - if ($char == 173 || $this->_charDefined($cw,$char) || ($char>1536 && $char<1791) || ($char>2304 && $char<3455 )) { - $l++; - } - else { - if ($l==0 && $bsfctr == (count($this->backupSubsFont)-1)) { // Not found even in last backup font - $cont = mb_substr($writehtml_e, $start+1); - $writehtml_e = mb_substr($writehtml_e, 0, $start+1, 'UTF-8'); - array_splice($writehtml_a, $writehtml_i+1, 0, array('', $cont)); - $this->subPos = $writehtml_i+1; - return 2; - } - else { break; } - } - } - if ($l > 0) { - $patt = mb_substr($writehtml_e, $start, $l, 'UTF-8'); - if (preg_match("/(.*?)(".preg_quote($patt,'/').")(.*)/u", $writehtml_e, $m)) { - $writehtml_e = $m[1]; - array_splice($writehtml_a, $writehtml_i+1, 0, array('span style="font-family: '.$font.'"', $m[2], '/span', $m[3])); - $this->subPos = $writehtml_i+3; - return 4; - } - } - } - - unset($cw); - return 0; -} - - -function SubstituteCharsMB(&$writehtml_a, &$writehtml_i, &$writehtml_e) { - $cw = &$this->CurrentFont['cw']; - $unicode = $this->UTF8StringToArray($writehtml_e, false); - $start = -1; - $end = 0; - $flag = 0; - $ftype = ''; - $u = array(); - foreach($unicode AS $c => $char) { - if (($flag == 0 || $flag==2) && (!$this->_charDefined($cw,$char) || ($flag==2 && $char==32)) && $this->checkSIP && $char > 131071) { // Unicode Plane 2 (SIP) - if (in_array($this->FontFamily ,$this->available_CJK_fonts)) { return 0; } - if ($flag==0) { $start=$c; } - $flag=2; - $u[] = $char; - } - //else if (($flag == 0 || $flag==1) && $char != 173 && !$this->_charDefined($cw,$char) && ($char<1423 || ($char>3583 && $char < 11263))) { - else if (($flag == 0 || $flag==1) && $char != 173 && (!$this->_charDefined($cw,$char) || ($flag==1 && $char==32)) && ($char<1536 || ($char>1791 && $char < 2304) || $char>3455)) { - if ($flag==0) { $start=$c; } - $flag=1; - $u[] = $char; - } - else if ($flag>0) { $end=$c-1; break; } - } - if ($flag>0 && !$end) { $end=count($unicode)-1; } - if ($start==-1) { return 0; } - if ($flag == 2) { // SIP - // Check if current CJK font has a ext-B related font - if (isset($this->CurrentFont['sipext']) && $this->CurrentFont['sipext']) { - $font = $this->CurrentFont['sipext']; - unset($cw); - $cw = ''; - if (isset($this->fonts[$font])) { $cw = &$this->fonts[$font]['cw']; } - else if (file_exists(_MPDF_TTFONTDATAPATH.$font.'.cw.dat')) { $cw = @file_get_contents(_MPDF_TTFONTDATAPATH.$font.'.cw.dat'); } - else { - $prevFontFamily = $this->FontFamily; - $prevFontStyle = $this->currentfontstyle; - $prevFontSizePt = $this->FontSizePt; - $this->SetFont($font, '', '', false); - $cw = @file_get_contents(_MPDF_TTFONTDATAPATH.$font.'.cw.dat'); - $this->SetFont($prevFontFamily, $prevFontStyle, $prevFontSizePt, false); - } - if (!$cw) { return 0; } - $l = 0; - foreach($u AS $char) { - if ($this->_charDefined($cw,$char) || $char > 131071) { - $l++; - } - else { break; } - } - if ($l > 0) { - $patt = mb_substr($writehtml_e, $start, $l); - if (preg_match("/(.*?)(".preg_quote($patt,'/').")(.*)/u", $writehtml_e, $m)) { - $writehtml_e = $m[1]; - array_splice($writehtml_a, $writehtml_i+1, 0, array('span style="font-family: '.$font.'"', $m[2], '/span', $m[3])); - $this->subPos = $writehtml_i+3; - return 4; - } - } - } - // Check Backup SIP font (defined in config_fonts.php) - if (isset($this->backupSIPFont) && $this->backupSIPFont) { - if ($this->currentfontfamily != $this->backupSIPFont) { $font = $this->backupSIPFont; } - else { unset($cw); return 0; } - unset($cw); - $cw = ''; - if (isset($this->fonts[$font])) { $cw = &$this->fonts[$font]['cw']; } - else if (file_exists(_MPDF_TTFONTDATAPATH.$font.'.cw.dat')) { $cw = @file_get_contents(_MPDF_TTFONTDATAPATH.$font.'.cw.dat'); } - else { - $prevFontFamily = $this->FontFamily; - $prevFontStyle = $this->currentfontstyle; - $prevFontSizePt = $this->FontSizePt; - $this->SetFont($this->backupSIPFont, '', '', false); - $cw = @file_get_contents(_MPDF_TTFONTDATAPATH.$font.'.cw.dat'); - $this->SetFont($prevFontFamily, $prevFontStyle, $prevFontSizePt, false); - } - if (!$cw) { return 0; } - $l = 0; - foreach($u AS $char) { - if ($this->_charDefined($cw,$char) || $char > 131071) { - $l++; - } - else { break; } - } - if ($l > 0) { - $patt = mb_substr($writehtml_e, $start, $l); - if (preg_match("/(.*?)(".preg_quote($patt,'/').")(.*)/u", $writehtml_e, $m)) { - $writehtml_e = $m[1]; - array_splice($writehtml_a, $writehtml_i+1, 0, array('span style="font-family: '.$font.'"', $m[2], '/span', $m[3])); - $this->subPos = $writehtml_i+3; - return 4; - } - } - } - return 0; - } - - - // FIRST TRY CORE FONTS - if (!$this->PDFA && !$this->PDFX) { - $repl = array(); - if (!$this->subArrMB) { - include(_MPDF_PATH.'includes/subs_core.php'); - $this->subArrMB['a'] = $aarr; - $this->subArrMB['s'] = $sarr; - $this->subArrMB['z'] = $zarr; - } - if (isset($this->subArrMB['a'][$u[0]])) { - $font = 'tta'; $ftype = 'C'; - foreach($u AS $char) { - if ($this->subArrMB['a'][$char]) { $repl[] = $this->subArrMB['a'][$char]; } - else { break; } - } - } - else if (isset($this->subArrMB['z'][$u[0]])) { - $font = 'ttz'; $ftype = 'C'; - foreach($u AS $char) { - if ($this->subArrMB['z'][$char]) { $repl[] = $this->subArrMB['z'][$char]; } - else { break; } - } - } - else if (isset($this->subArrMB['s'][$u[0]])) { - $font = 'tts'; $ftype = 'C'; - foreach($u AS $char) { - if ($this->subArrMB['s'][$char]) { $repl[] = $this->subArrMB['s'][$char]; } - else { break; } - } - } - if ($ftype=='C') { - $patt = mb_substr($writehtml_e, $start, count($repl)); - if (preg_match("/(.*?)(".preg_quote($patt,'/').")(.*)/u", $writehtml_e, $m)) { - $writehtml_e = $m[1]; - array_splice($writehtml_a, $writehtml_i+1, 0, array($font, implode('|', $repl), '/'.$font, $m[3])); // e.g. - $this->subPos = $writehtml_i+3; - return 4; - } - return 0; - } - } - - // FIND IN DEFAULT FONT - removed mPDF 5.0 - - // LASTLY TRY IN BACKUP SUBS FONT - if (!is_array($this->backupSubsFont)) { $this->backupSubsFont = array("$this->backupSubsFont"); } - foreach($this->backupSubsFont AS $bsfctr=>$bsf) { - if ($this->currentfontfamily != $bsf) { $font = $bsf; } - else { continue; } - unset($cw); - $cw = ''; - if (isset($this->fonts[$font])) { $cw = &$this->fonts[$font]['cw']; } - else if (file_exists(_MPDF_TTFONTDATAPATH.$font.'.cw.dat')) { $cw = @file_get_contents(_MPDF_TTFONTDATAPATH.$font.'.cw.dat'); } - else { - $prevFontFamily = $this->FontFamily; - $prevFontStyle = $this->currentfontstyle; - $prevFontSizePt = $this->FontSizePt; - $this->SetFont($bsf, '', '', false); - $cw = @file_get_contents(_MPDF_TTFONTDATAPATH.$font.'.cw.dat'); - $this->SetFont($prevFontFamily, $prevFontStyle, $prevFontSizePt, false); - } - if (!$cw) { continue; } - $l = 0; - foreach($u AS $char) { - if ($char == 173 || $this->_charDefined($cw,$char) || ($char>1536 && $char<1791) || ($char>2304 && $char<3455 )) { // Arabic and Indic - $l++; - } - else { - if ($l==0 && $bsfctr == (count($this->backupSubsFont)-1)) { // Not found even in last backup font - $cont = mb_substr($writehtml_e, $start+1); - $writehtml_e = mb_substr($writehtml_e, 0, $start+1); - array_splice($writehtml_a, $writehtml_i+1, 0, array('', $cont)); - $this->subPos = $writehtml_i+1; - return 2; - } - else { break; } - } - } - if ($l > 0) { - $patt = mb_substr($writehtml_e, $start, $l); - if (preg_match("/(.*?)(".preg_quote($patt,'/').")(.*)/u", $writehtml_e, $m)) { - $writehtml_e = $m[1]; - array_splice($writehtml_a, $writehtml_i+1, 0, array('span style="font-family: '.$font.'"', $m[2], '/span', $m[3])); - $this->subPos = $writehtml_i+3; - return 4; - } - } - } - - unset($cw); - return 0; -} - - -function setHiEntitySubstitutions() { - $entarr = array ( - 'nbsp' => '160', 'iexcl' => '161', 'cent' => '162', 'pound' => '163', 'curren' => '164', 'yen' => '165', 'brvbar' => '166', 'sect' => '167', - 'uml' => '168', 'copy' => '169', 'ordf' => '170', 'laquo' => '171', 'not' => '172', 'shy' => '173', 'reg' => '174', 'macr' => '175', - 'deg' => '176', 'plusmn' => '177', 'sup2' => '178', 'sup3' => '179', 'acute' => '180', 'micro' => '181', 'para' => '182', 'middot' => '183', - 'cedil' => '184', 'sup1' => '185', 'ordm' => '186', 'raquo' => '187', 'frac14' => '188', 'frac12' => '189', 'frac34' => '190', - 'iquest' => '191', 'Agrave' => '192', 'Aacute' => '193', 'Acirc' => '194', 'Atilde' => '195', 'Auml' => '196', 'Aring' => '197', - 'AElig' => '198', 'Ccedil' => '199', 'Egrave' => '200', 'Eacute' => '201', 'Ecirc' => '202', 'Euml' => '203', 'Igrave' => '204', - 'Iacute' => '205', 'Icirc' => '206', 'Iuml' => '207', 'ETH' => '208', 'Ntilde' => '209', 'Ograve' => '210', 'Oacute' => '211', - 'Ocirc' => '212', 'Otilde' => '213', 'Ouml' => '214', 'times' => '215', 'Oslash' => '216', 'Ugrave' => '217', 'Uacute' => '218', - 'Ucirc' => '219', 'Uuml' => '220', 'Yacute' => '221', 'THORN' => '222', 'szlig' => '223', 'agrave' => '224', 'aacute' => '225', - 'acirc' => '226', 'atilde' => '227', 'auml' => '228', 'aring' => '229', 'aelig' => '230', 'ccedil' => '231', 'egrave' => '232', - 'eacute' => '233', 'ecirc' => '234', 'euml' => '235', 'igrave' => '236', 'iacute' => '237', 'icirc' => '238', 'iuml' => '239', - 'eth' => '240', 'ntilde' => '241', 'ograve' => '242', 'oacute' => '243', 'ocirc' => '244', 'otilde' => '245', 'ouml' => '246', - 'divide' => '247', 'oslash' => '248', 'ugrave' => '249', 'uacute' => '250', 'ucirc' => '251', 'uuml' => '252', 'yacute' => '253', - 'thorn' => '254', 'yuml' => '255', 'OElig' => '338', 'oelig' => '339', 'Scaron' => '352', 'scaron' => '353', 'Yuml' => '376', - 'fnof' => '402', 'circ' => '710', 'tilde' => '732', 'Alpha' => '913', 'Beta' => '914', 'Gamma' => '915', 'Delta' => '916', - 'Epsilon' => '917', 'Zeta' => '918', 'Eta' => '919', 'Theta' => '920', 'Iota' => '921', 'Kappa' => '922', 'Lambda' => '923', - 'Mu' => '924', 'Nu' => '925', 'Xi' => '926', 'Omicron' => '927', 'Pi' => '928', 'Rho' => '929', 'Sigma' => '931', 'Tau' => '932', - 'Upsilon' => '933', 'Phi' => '934', 'Chi' => '935', 'Psi' => '936', 'Omega' => '937', 'alpha' => '945', 'beta' => '946', 'gamma' => '947', - 'delta' => '948', 'epsilon' => '949', 'zeta' => '950', 'eta' => '951', 'theta' => '952', 'iota' => '953', 'kappa' => '954', - 'lambda' => '955', 'mu' => '956', 'nu' => '957', 'xi' => '958', 'omicron' => '959', 'pi' => '960', 'rho' => '961', 'sigmaf' => '962', - 'sigma' => '963', 'tau' => '964', 'upsilon' => '965', 'phi' => '966', 'chi' => '967', 'psi' => '968', 'omega' => '969', - 'thetasym' => '977', 'upsih' => '978', 'piv' => '982', 'ensp' => '8194', 'emsp' => '8195', 'thinsp' => '8201', 'zwnj' => '8204', - 'zwj' => '8205', 'lrm' => '8206', 'rlm' => '8207', 'ndash' => '8211', 'mdash' => '8212', 'lsquo' => '8216', 'rsquo' => '8217', - 'sbquo' => '8218', 'ldquo' => '8220', 'rdquo' => '8221', 'bdquo' => '8222', 'dagger' => '8224', 'Dagger' => '8225', 'bull' => '8226', - 'hellip' => '8230', 'permil' => '8240', 'prime' => '8242', 'Prime' => '8243', 'lsaquo' => '8249', 'rsaquo' => '8250', 'oline' => '8254', - 'frasl' => '8260', 'euro' => '8364', 'image' => '8465', 'weierp' => '8472', 'real' => '8476', 'trade' => '8482', 'alefsym' => '8501', - 'larr' => '8592', 'uarr' => '8593', 'rarr' => '8594', 'darr' => '8595', 'harr' => '8596', 'crarr' => '8629', 'lArr' => '8656', - 'uArr' => '8657', 'rArr' => '8658', 'dArr' => '8659', 'hArr' => '8660', 'forall' => '8704', 'part' => '8706', 'exist' => '8707', - 'empty' => '8709', 'nabla' => '8711', 'isin' => '8712', 'notin' => '8713', 'ni' => '8715', 'prod' => '8719', 'sum' => '8721', - 'minus' => '8722', 'lowast' => '8727', 'radic' => '8730', 'prop' => '8733', 'infin' => '8734', 'ang' => '8736', 'and' => '8743', - 'or' => '8744', 'cap' => '8745', 'cup' => '8746', 'int' => '8747', 'there4' => '8756', 'sim' => '8764', 'cong' => '8773', - 'asymp' => '8776', 'ne' => '8800', 'equiv' => '8801', 'le' => '8804', 'ge' => '8805', 'sub' => '8834', 'sup' => '8835', 'nsub' => '8836', - 'sube' => '8838', 'supe' => '8839', 'oplus' => '8853', 'otimes' => '8855', 'perp' => '8869', 'sdot' => '8901', 'lceil' => '8968', - 'rceil' => '8969', 'lfloor' => '8970', 'rfloor' => '8971', 'lang' => '9001', 'rang' => '9002', 'loz' => '9674', 'spades' => '9824', - 'clubs' => '9827', 'hearts' => '9829', 'diams' => '9830', - ); - foreach($entarr AS $key => $val) { - $this->entsearch[] = '&'.$key.';'; - $this->entsubstitute[] = code2utf($val); - } -} - -function SubstituteHiEntities($html) { - // converts html_entities > ASCII 127 to unicode - // Leaves in particular < to distinguish from tag marker - if (count($this->entsearch)) { - $html = str_replace($this->entsearch,$this->entsubstitute,$html); - } - return $html; -} - - -// Edited v1.2 Pass by reference; option to continue if invalid UTF-8 chars -function is_utf8(&$string) { - if ($string === mb_convert_encoding(mb_convert_encoding($string, "UTF-32", "UTF-8"), "UTF-8", "UTF-32")) { - return true; - } - else { - if ($this->ignore_invalid_utf8) { - $string = mb_convert_encoding(mb_convert_encoding($string, "UTF-32", "UTF-8"), "UTF-8", "UTF-32") ; - return true; - } - else { - return false; - } - } -} - - -function purify_utf8($html,$lo=true) { - // For HTML - // Checks string is valid UTF-8 encoded - // converts html_entities > ASCII 127 to UTF-8 - // Only exception - leaves low ASCII entities e.g. < & etc. - // Leaves in particular < to distinguish from tag marker - if (!$this->is_utf8($html)) { - echo "

HTML contains invalid UTF-8 character(s)

"; - while (mb_convert_encoding(mb_convert_encoding($html, "UTF-32", "UTF-8"), "UTF-8", "UTF-32") != $html) { - $a = iconv('UTF-8', 'UTF-8', $html); - echo ($a); - $pos = $start = strlen($a); - $err = ''; - while ( ord(substr($html,$pos,1)) > 128 ) { - $err .= '[[#'.ord(substr($html,$pos,1)).']]'; - $pos++; - } - echo ''.$err.''; - $html = substr($html, $pos); - } - echo $html; - $this->Error(""); - } - $html = preg_replace("/\r/", "", $html ); - - // converts html_entities > ASCII 127 to UTF-8 - // Leaves in particular < to distinguish from tag marker - $html = $this->SubstituteHiEntities($html); - - // converts all &#nnn; or &#xHHH; to UTF-8 multibyte - // If $lo==true then includes ASCII < 128 - $html = strcode2utf($html,$lo); - return ($html); -} - -function purify_utf8_text($txt) { - // For TEXT - // Make sure UTF-8 string of characters - if (!$this->is_utf8($txt)) { $this->Error("Text contains invalid UTF-8 character(s)"); } - - $txt = preg_replace("/\r/", "", $txt ); - - return ($txt); -} -function all_entities_to_utf8($txt) { - // converts txt_entities > ASCII 127 to UTF-8 - // Leaves in particular < to distinguish from tag marker - $txt = $this->SubstituteHiEntities($txt); - - // converts all &#nnn; or &#xHHH; to UTF-8 multibyte - $txt = strcode2utf($txt); - - $txt = $this->lesser_entity_decode($txt); - return ($txt); -} - - -// ==================================================== -/*-- BARCODES --*/ -// UPC/EAN barcode -// EAN13, EAN8, UPCA, UPCE, ISBN, ISSN -// Accepts 12 or 13 digits with or without - hyphens -function WriteBarcode($code, $showtext=1, $x='', $y='', $size=1, $border=0, $paddingL=1, $paddingR=1, $paddingT=2, $paddingB=2, $height=1, $bgcol=false, $col=false, $btype='ISBN', $supplement='0', $supplement_code='', $k=1) { - if (empty($code)) { - return; - } - $codestr = $code; - $code = preg_replace('/\-/','',$code); - - if (!class_exists('PDFBarcode', false)) { - include(_MPDF_PATH.'classes/barcode.php'); - } - $this->barcode = new PDFBarcode(); - if ($btype == 'ISSN' || $btype == 'ISBN') { - $arrcode = $this->barcode->getBarcodeArray($code, 'EAN13'); - } - else { $arrcode = $this->barcode->getBarcodeArray($code, $btype); } - - if ($arrcode === false) { $this->Error('Error in barcode string: '.$codestr); } - if((($btype=='EAN13' || $btype=='ISBN' || $btype=='ISSN') && strlen($code) == 12) || ($btype=='UPCA' && strlen($code) == 11) - || ($btype=='UPCE' && strlen($code) == 11) || ($btype=='EAN8' && strlen($code) == 7)) { - $code .= $arrcode['checkdigit']; - if (stristr($codestr,'-')) { $codestr .= '-' . $arrcode['checkdigit']; } - else { $codestr .= $arrcode['checkdigit']; } - } - if ($btype == 'ISBN') { $codestr = 'ISBN '.$codestr; } - if ($btype == 'ISSN') { $codestr = 'ISSN '.$codestr; } - - if (empty($x)) { - $x = $this->x; - } - if (empty($y)) { - $y = $this->y; - } - // set foreground color - $prevDrawColor = $this->DrawColor; - $prevTextColor = $this->TextColor; - $prevFillColor = $this->FillColor; - $lw = $this->LineWidth; - $this->SetLineWidth(0.01); - - $size /= $k; // in case resized in a table - - $xres = $arrcode['nom-X'] * $size; - $llm = $arrcode['lightmL'] * $arrcode['nom-X'] * $size; // Left Light margin - $rlm = $arrcode['lightmR'] * $arrcode['nom-X'] * $size; // Right Light margin - - $bcw = ($arrcode["maxw"] * $xres); // Barcode width = Should always be 31.35mm * $size - - $fbw = $bcw + $llm + $rlm; // Full barcode width incl. light margins - $ow = $fbw + $paddingL + $paddingR; // Full overall width incl. user-defined padding - - $fbwi = $fbw - 2; // Full barcode width incl. light margins - 2mm - for isbn string - - // cf. http://www.gs1uk.org/downloads/bar_code/Bar coding getting it right.pdf - $num_height = 3 * $size; // Height of numerals - $fbh = $arrcode['nom-H'] * $size * $height; // Full barcode height incl. numerals - $bch = $fbh - (1.5 * $size); // Barcode height of bars (3mm for numerals) - - if (($btype=='EAN13' && $showtext) || $btype == 'ISSN' || $btype == 'ISBN') { // Add height for ISBN string + margin from top of bars - $tisbnm = 1.5 * $size; // Top margin between isbn (if shown) & bars - $codestr_fontsize = 2.1 * $size; - $paddingT += $codestr_fontsize + $tisbnm ; - } - $oh = $fbh + $paddingT + $paddingB; // Full overall height incl. user-defined padding - - // PRINT border background color - $xpos = $x; - $ypos = $y; - if ($col) { - $this->SetDColor($col); - $this->SetTColor($col); - } - else { - $this->SetDColor($this->ConvertColor(0)); - $this->SetTColor($this->ConvertColor(0)); - } - if ($bgcol) { - $this->SetFColor($bgcol); - } - else { $this->SetFColor($this->ConvertColor(255)); } - if (!$bgcol && !$col) { // fn. called directly - not via HTML - if ($border) { $fillb = 'DF'; } else { $fillb = 'F'; } - $this->Rect($xpos, $ypos, $ow, $oh, $fillb); - } - - - // PRINT BARS - $xpos = $x + $paddingL + $llm ; - $ypos = $y + $paddingT; - if ($col) { $this->SetFColor($col); } - else { $this->SetFColor($this->ConvertColor(0)); } - if ($arrcode !== false) { - foreach ($arrcode["bcode"] AS $v) { - $bw = ($v["w"] * $xres); - if ($v["t"]) { - // draw a vertical bar - $this->Rect($xpos, $ypos, $bw, $bch, 'F'); - } - $xpos += $bw; - } - } - - - // print text - $prevFontFamily = $this->FontFamily; - $prevFontStyle = $this->FontStyle; - $prevFontSizePt = $this->FontSizePt; - - // ISBN string - if (($btype=='EAN13' && $showtext) || $btype=='ISBN' || $btype=='ISSN') { - if ($this->onlyCoreFonts) { - $this->SetFont('chelvetica'); - } - else { - $this->SetFont('sans'); - } - - if ($bgcol) { $this->SetFColor($bgcol); } - else { $this->SetFColor($this->ConvertColor(255)); } - $this->x = $x + $paddingL + 1; // 1mm left margin (cf. $fbwi above) - // max width is $fbwi - $loop = 0; - while ( $loop == 0 ) { - $this->SetFontSize($codestr_fontsize*1.4*_MPDFK, false); // don't write - $sz = $this->GetStringWidth( $codestr ); - if ($sz > $fbwi) - $codestr_fontsize -= 0.1; - else - $loop ++; - } - $this->SetFont('','',$codestr_fontsize*1.4*_MPDFK, true, true); // * 1.4 because font height is only 7/10 of given mm - // WORD SPACING - if ($fbwi > $sz) { - $xtra = $fbwi - $sz; - $charspacing = $xtra / (strlen($codestr)-1); - if ($charspacing) { $this->_out(sprintf('BT %.3F Tc ET',$charspacing*_MPDFK)); } - } - $this->y = $y + $paddingT - ($codestr_fontsize ) - $tisbnm ; - $this->Cell($fbw , $codestr_fontsize, $codestr); - if ($charspacing) { $this->_out('BT 0 Tc ET'); } - } - - - // Bottom NUMERALS - // mPDF 5.7.4 - if ($this->onlyCoreFonts) { - $this->SetFont('ccourier'); - $fh = 1.3; - } - else { - $this->SetFont('ocrb'); - $fh = 1.06; - } - - $charRO = ''; - if ($btype=='EAN13' || $btype=='ISBN' || $btype=='ISSN') { - $outerfontsize = 3; // Inner fontsize = 3 - $outerp = $xres * 4; - $innerp = $xres * 2.5; - $textw = ($bcw*0.5) - $outerp - $innerp; - $chars = 6; // number of numerals in each half - $charLO = substr($code,0,1); // Left Outer - $charLI = substr($code,1,6); // Left Inner - $charRI = substr($code,7,6); // Right Inner - if (!$supplement) $charRO = '>'; // Right Outer - } - else if ($btype=='UPCA') { - $outerfontsize = 2.3; // Inner fontsize = 3 - $outerp = $xres * 10; - $innerp = $xres * 2.5; - $textw = ($bcw*0.5) - $outerp - $innerp; - $chars = 5; - $charLO = substr($code,0,1); // Left Outer - $charLI = substr($code,1,5); // Left Inner - $charRI = substr($code,6,5); // Right Inner - $charRO = substr($code,11,1); // Right Outer - } - else if ($btype=='UPCE') { - $outerfontsize = 2.3; // Inner fontsize = 3 - $outerp = $xres * 4; - $innerp = 0; - $textw = ($bcw*0.5) - $outerp - $innerp; - $chars = 3; - $upce_code = $arrcode['code']; - $charLO = substr($code,0,1); // Left Outer - $charLI = substr($upce_code,0,3); // Left Inner - $charRI = substr($upce_code,3,3); // Right Inner - $charRO = substr($code,11,1); // Right Outer - } - else if ($btype=='EAN8') { - $outerfontsize = 3; // Inner fontsize = 3 - $outerp = $xres * 4; - $innerp = $xres * 2.5; - $textw = ($bcw*0.5) - $outerp - $innerp; - $chars = 4; - $charLO = '<'; // Left Outer - $charLI = substr($code,0,4); // Left Inner - $charRI = substr($code,4,4); // Right Inner - if (!$supplement) $charRO = '>'; // Right Outer - } - - $this->SetFontSize(($outerfontsize/3)*3*$fh*$size*_MPDFK); // 3mm numerals (FontSize is larger to account for space above/below characters) - - if (!$this->usingCoreFont) { $cw = $this->_getCharWidth($this->CurrentFont['cw'],32)*3*$fh*$size/1000; } // character width at 3mm - else { $cw = 600*3*$fh*$size/1000; } // mPDF 5.7.4 - - // Outer left character - $y_text = $y + $paddingT + $bch - ($num_height/2); - $y_text_outer = $y + $paddingT + $bch - ($num_height*($outerfontsize/3)/2); - - $this->x = $x + $paddingL - ($cw*($outerfontsize/3)*0.1); // 0.1 is correction as char does not fill full width; - $this->y = $y_text_outer; - $this->Cell($cw, $num_height, $charLO ); - - // WORD SPACING for inner chars - $xtra = $textw - ($cw*$chars); - $charspacing = $xtra / ($chars-1); - if ($charspacing) { $this->_out(sprintf('BT %.3F Tc ET',$charspacing*_MPDFK)); } - - if ($bgcol) { $this->SetFColor($bgcol); } - else { $this->SetFColor($this->ConvertColor(255)); } - - $this->SetFontSize(3*$fh*$size*_MPDFK); // 3mm numerals (FontSize is larger to account for space above/below characters) - - // Inner left half characters - $this->x = $x + $paddingL + $llm + $outerp; - $this->y = $y_text; - $this->Cell($textw, $num_height, $charLI , 0, 0, '', 1); - - // Inner right half characters - $this->x = $x + $paddingL + $llm + ($bcw*0.5) + $innerp; - $this->y = $y_text; - $this->Cell($textw, $num_height, $charRI , 0, 0, '', 1); - - if ($charspacing) { $this->_out('BT 0 Tc ET'); } - - // Outer Right character - $this->SetFontSize(($outerfontsize/3)*3*$fh*$size*_MPDFK); // 3mm numerals (FontSize is larger to account for space above/below characters) - - $this->x = $x + $paddingL + $llm + $bcw + $rlm - ($cw*($outerfontsize/3)*0.9); // 0.9 is correction as char does not fill full width - $this->y = $y_text_outer; - $this->Cell($cw*($outerfontsize/3), $num_height, $charRO , 0, 0, 'R'); - - if ($supplement) { // EAN-2 or -5 Supplement - // PRINT BARS - $supparrcode = $this->barcode->getBarcodeArray($supplement_code, 'EAN'.$supplement); - if ($supparrcode === false) { $this->Error('Error in barcode string (supplement): '.$codestr.' '.$supplement_code); } - if(strlen($supplement_code) != $supplement) { - $this->Error('Barcode supplement incorrect: '.$supplement_code); - } - $llm = $fbw - (($arrcode['lightmR'] - $supparrcode['sepM']) * $arrcode['nom-X'] * $size); // Left Light margin - $rlm = $arrcode['lightmR'] * $arrcode['nom-X'] * $size; // Right Light margin - - $bcw = ($supparrcode["maxw"] * $xres); // Barcode width = Should always be 31.35mm * $size - - $fbw = $bcw + $llm + $rlm; // Full barcode width incl. light margins - $ow = $fbw + $paddingL + $paddingR; // Full overall width incl. user-defined padding - $bch = $fbh - (1.5 * $size) - ($num_height + 0.5); // Barcode height of bars (3mm for numerals) - - $xpos = $x + $paddingL + $llm ; - $ypos = $y + $paddingT + $num_height + 0.5; - if ($col) { $this->SetFColor($col); } - else { $this->SetFColor($this->ConvertColor(0)); } - if ($supparrcode !== false) { - foreach ($supparrcode["bcode"] AS $v) { - $bw = ($v["w"] * $xres); - if ($v["t"]) { - // draw a vertical bar - $this->Rect($xpos, $ypos, $bw, $bch, 'F'); - } - $xpos += $bw; - } - } - - // Characters - if ($bgcol) { $this->SetFColor($bgcol); } - else { $this->SetFColor($this->ConvertColor(255)); } - $this->SetFontSize(3*$fh*$size*_MPDFK); // 3mm numerals (FontSize is larger to account for space above/below characters) - $this->x = $x + $paddingL + $llm; - $this->y = $y + $paddingT; - $this->Cell($bcw, $num_height, $supplement_code, 0, 0, 'C'); - - // Outer Right character (light margin) - $this->SetFontSize(($outerfontsize/3)*3*$fh*$size*_MPDFK); // 3mm numerals (FontSize is larger to account for space above/below characters) - $this->x = $x + $paddingL + $llm + $bcw + $rlm - ($cw*0.9); // 0.9 is correction as char does not fill full width - $this->y = $y + $paddingT; - $this->Cell($cw*($outerfontsize/3), $num_height, '>', 0, 0, 'R'); - } - - - - // Restore ************** - $this->SetFont($prevFontFamily, $prevFontStyle, $prevFontSizePt); - $this->DrawColor = $prevDrawColor; - $this->TextColor = $prevTextColor; - $this->FillColor = $prevFillColor; - $this->SetLineWidth($lw); - $this->SetY($y); -} - - - -// ==================================================== -// POSTAL and OTHER barcodes -function WriteBarcode2($code, $x='', $y='', $size=1, $height=1, $bgcol=false, $col=false, $btype='IMB', $print_ratio='', $k=1) { - if (empty($code)) { return; } - if (!class_exists('PDFBarcode', false)) { - include(_MPDF_PATH.'classes/barcode.php'); - } - $this->barcode = new PDFBarcode(); - $arrcode = $this->barcode->getBarcodeArray($code, $btype, $print_ratio); - - if ($arrcode === false) { $this->Error('Error in barcode string: '.$code); } - if (empty($x)) { $x = $this->x; } - if (empty($y)) { $y = $this->y; } - $prevDrawColor = $this->DrawColor; - $prevTextColor = $this->TextColor; - $prevFillColor = $this->FillColor; - $lw = $this->LineWidth; - $this->SetLineWidth(0.01); - $size /= $k; // in case resized in a table - $xres = $arrcode['nom-X'] * $size; - - if ($btype == 'IMB' || $btype == 'RM4SCC' || $btype == 'KIX' || $btype == 'POSTNET' || $btype == 'PLANET') { - $llm = $arrcode['quietL'] / $k; // Left Quiet margin - $rlm = $arrcode['quietR'] / $k; // Right Quiet margin - $tlm = $blm = $arrcode['quietTB'] / $k; - $height=1; // Overrides - } - else if (in_array($btype, array('C128A','C128B','C128C','EAN128A','EAN128B','EAN128C','C39','C39+','C39E','C39E+','S25','S25+','I25','I25+','I25B','I25B+','C93','MSI','MSI+','CODABAR','CODE11'))) { - $llm = $arrcode['lightmL'] * $xres; // Left Quiet margin - $rlm = $arrcode['lightmR'] * $xres; // Right Quiet margin - $tlm = $blm = $arrcode['lightTB'] * $xres * $height; - } - - - $bcw = ($arrcode["maxw"] * $xres); - $fbw = $bcw + $llm + $rlm; // Full barcode width incl. light margins - - $bch = ($arrcode["nom-H"] * $size * $height); - $fbh = $bch + $tlm + $blm; // Full barcode height - - // PRINT border background color - $xpos = $x; - $ypos = $y; - if ($col) { - $this->SetDColor($col); - $this->SetTColor($col); - } - else { - $this->SetDColor($this->ConvertColor(0)); - $this->SetTColor($this->ConvertColor(0)); - } - if ($bgcol) { - $this->SetFColor($bgcol); - } - else { $this->SetFColor($this->ConvertColor(255)); } - - // PRINT BARS - if ($col) { $this->SetFColor($col); } - else { $this->SetFColor($this->ConvertColor(0)); } - $xpos = $x + $llm ; - - if ($arrcode !== false) { - foreach ($arrcode["bcode"] AS $v) { - $bw = ($v["w"] * $xres); - if ($v["t"]) { - $ypos = $y + $tlm + ($bch * $v['p'] / $arrcode['maxh']); - $this->Rect($xpos, $ypos, $bw, ($v['h'] * $bch / $arrcode['maxh']), 'F'); - } - $xpos += $bw; - } - } - - // PRINT BEARER BARS - if ($btype == 'I25B' || $btype == 'I25B+') { - $this->Rect($x, $y, $fbw, ($arrcode['lightTB'] * $xres * $height), 'F'); - $this->Rect($x, $y+$tlm+$bch, $fbw, ($arrcode['lightTB'] * $xres * $height), 'F'); - } - - // Restore ************** - $this->SetFont($prevFontFamily, $prevFontStyle, $prevFontSizePt); - $this->DrawColor = $prevDrawColor; - $this->TextColor = $prevTextColor; - $this->FillColor = $prevFillColor; - $this->SetLineWidth($lw); - $this->SetY($y); -} - -/*-- END BARCODES --*/ - -// ==================================================== -// ==================================================== - -function StartTransform($returnstring=false) { - if ($returnstring) { return('q'); } - else { $this->_out('q'); } -} -function StopTransform($returnstring=false) { - if ($returnstring) { return('Q'); } - else { $this->_out('Q'); } -} -function transformScale($s_x, $s_y, $x='', $y='', $returnstring=false) { - if ($x === '') { - $x=$this->x; - } - if ($y === '') { - $y=$this->y; - } - if (($s_x == 0) OR ($s_y == 0)) { - $this->Error('Please do not use values equal to zero for scaling'); - } - $y = ($this->h - $y) * _MPDFK; - $x *= _MPDFK; - //calculate elements of transformation matrix - $s_x /= 100; - $s_y /= 100; - $tm[0] = $s_x; - $tm[1] = 0; - $tm[2] = 0; - $tm[3] = $s_y; - $tm[4] = $x * (1 - $s_x); - $tm[5] = $y * (1 - $s_y); - //scale the coordinate system - if ($returnstring) { return($this->_transform($tm, true)); } - else { $this->_transform($tm); } -} -function transformTranslate($t_x, $t_y, $returnstring=false) { - //calculate elements of transformation matrix - $tm[0] = 1; - $tm[1] = 0; - $tm[2] = 0; - $tm[3] = 1; - $tm[4] = $t_x * _MPDFK; - $tm[5] = -$t_y * _MPDFK; - //translate the coordinate system - if ($returnstring) { return($this->_transform($tm, true)); } - else { $this->_transform($tm); } -} -function transformRotate($angle, $x='', $y='', $returnstring=false) { - if ($x === '') { - $x=$this->x; - } - if ($y === '') { - $y=$this->y; - } - $angle = -$angle; - $y = ($this->h - $y) * _MPDFK; - $x *= _MPDFK; - //calculate elements of transformation matrix - $tm[0] = cos(deg2rad($angle)); - $tm[1] = sin(deg2rad($angle)); - $tm[2] = -$tm[1]; - $tm[3] = $tm[0]; - $tm[4] = $x + $tm[1] * $y - $tm[0] * $x; - $tm[5] = $y - $tm[0] * $y - $tm[1] * $x; - //rotate the coordinate system around ($x,$y) - if ($returnstring) { return($this->_transform($tm, true)); } - else { $this->_transform($tm); } -} -// mPDF 5.7.3 TRANSFORMS -function transformSkew($angle_x, $angle_y, $x='', $y='', $returnstring=false) { - if ($x === '') { - $x = $this->x; - } - if ($y === '') { - $y = $this->y; - } - $angle_x = -$angle_x; - $angle_y = -$angle_y; - $x *= _MPDFK; - $y = ($this->h - $y) * _MPDFK; - //calculate elements of transformation matrix - $tm = array(); - $tm[0] = 1; - $tm[1] = tan(deg2rad($angle_y)); - $tm[2] = tan(deg2rad($angle_x)); - $tm[3] = 1; - $tm[4] = -$tm[2] * $y; - $tm[5] = -$tm[1] * $x; - //skew the coordinate system - if ($returnstring) { return($this->_transform($tm, true)); } - else { $this->_transform($tm); } -} -function _transform($tm, $returnstring=false) { - if ($returnstring) { return(sprintf('%.4F %.4F %.4F %.4F %.4F %.4F cm', $tm[0], $tm[1], $tm[2], $tm[3], $tm[4], $tm[5])); } - else { $this->_out(sprintf('%.4F %.4F %.4F %.4F %.4F %.4F cm', $tm[0], $tm[1], $tm[2], $tm[3], $tm[4], $tm[5])); } -} - - - -/*-- INDIC --*/ -// INDIC ============================ -// This conversion can only be done when font is set -function ConvertIndic(&$str) { - if (preg_match('/^ind_([a-z]{2})_/',$this->currentfontfamily, $m)) { - if (!class_exists('indic', false)) { include(_MPDF_PATH.'classes/indic.php'); } - if (empty($this->indic)) { $this->indic = new indic($this); } - $earr = $this->UTF8StringToArray($str, false); - $str = $this->indic->substituteIndic($earr, $m[1], $this->currentfontfamily); - } -} -/*-- END INDIC --*/ - -// AUTOFONT ========================= -function AutoFont($html) { - if ($this->onlyCoreFonts) { return $html; } - $this->useLang = true; - if ($this->autoFontGroupSize == 1) { $extra = $this->pregASCIIchars1; } - else if ($this->autoFontGroupSize == 3) { $extra = $this->pregASCIIchars3; } - else { $extra = $this->pregASCIIchars2; } - $n = ''; - $a=preg_split('/<(.*?)>/ms',$html,-1,PREG_SPLIT_DELIM_CAPTURE); - foreach($a as $i => $e) { - if($i%2==0) { - $e = strcode2utf($e); - $e = $this->lesser_entity_decode($e); - - // Use U=FFF0 and U+FFF1 to mark start and end of span tags to prevent nesting occurring - // "\xef\xbf\xb0" ##lthtmltag## "\xef\xbf\xb1" ##gthtmltag## - -/*-- CJK-FONTS --*/ - if ($this->autoFontGroups & AUTOFONT_CJK) { - $e = preg_replace_callback("/([".$this->pregCJKchars .$extra."]*[".$this->pregCJKchars ."][".$this->pregCJKchars .$extra."]*)/u", array($this, 'replaceCJKPregCallback'), $e ); // mPDF 5.7+ - } -/*-- END CJK-FONTS --*/ - -/*-- RTL --*/ - if ($this->autoFontGroups & AUTOFONT_RTL) { - // HEBREW - $e = preg_replace("/([".$this->pregHEBchars .$extra."]*[".$this->pregHEBchars ."][".$this->pregHEBchars .$extra."]*)/u", "\xef\xbf\xb0span lang=\"he\"\xef\xbf\xb1\\1\xef\xbf\xb0/span\xef\xbf\xb1", $e); - // All Arabic - $e = preg_replace_callback("/([".$this->pregARABICchars .$extra."]*[".$this->pregARABICchars ."][".$this->pregARABICchars .$extra."]*)/u", array($this, 'replaceArabicPregCallback'), $e ); // mPDF 5.7+ - } -/*-- END RTL --*/ - -/*-- INDIC --*/ - // INDIC - if ($this->autoFontGroups & AUTOFONT_INDIC) { - // Bengali - $e = preg_replace("/([".$this->pregBNchars .$this->pregINDextra."]*[".$this->pregBNchars ."][".$this->pregBNchars .$this->pregINDextra."]*)/u", "\xef\xbf\xb0span lang=\"bn\"\xef\xbf\xb1\\1\xef\xbf\xb0/span\xef\xbf\xb1", $e); - // Devanagari (= script for Hindi, Nepali + Sindhi) - $e = preg_replace("/([".$this->pregHIchars .$this->pregINDextra."]*[".$this->pregHIchars ."][".$this->pregHIchars .$this->pregINDextra."]*)/u", "\xef\xbf\xb0span lang=\"hi\"\xef\xbf\xb1\\1\xef\xbf\xb0/span\xef\xbf\xb1", $e); - // Gujarati - $e = preg_replace("/([".$this->pregGUchars .$this->pregINDextra."]*[".$this->pregGUchars ."][".$this->pregGUchars .$this->pregINDextra."]*)/u", "\xef\xbf\xb0span lang=\"gu\"\xef\xbf\xb1\\1\xef\xbf\xb0/span\xef\xbf\xb1", $e); - // Malayalam - $e = preg_replace("/([".$this->pregMLchars .$this->pregINDextra."]*[".$this->pregMLchars ."][".$this->pregMLchars .$this->pregINDextra."]*)/u", "\xef\xbf\xb0span lang=\"ml\"\xef\xbf\xb1\\1\xef\xbf\xb0/span\xef\xbf\xb1", $e); - // Kannada - $e = preg_replace("/([".$this->pregKNchars .$this->pregINDextra."]*[".$this->pregKNchars ."][".$this->pregKNchars .$this->pregINDextra."]*)/u", "\xef\xbf\xb0span lang=\"kn\"\xef\xbf\xb1\\1\xef\xbf\xb0/span\xef\xbf\xb1", $e); - // Oriya - $e = preg_replace("/([".$this->pregORchars .$this->pregINDextra."]*[".$this->pregORchars ."][".$this->pregORchars .$this->pregINDextra."]*)/u", "\xef\xbf\xb0span lang=\"or\"\xef\xbf\xb1\\1\xef\xbf\xb0/span\xef\xbf\xb1", $e); - // Punjabi ?= Gurmuhki - $e = preg_replace("/([".$this->pregPAchars .$this->pregINDextra."]*[".$this->pregPAchars ."][".$this->pregPAchars .$this->pregINDextra."]*)/u", "\xef\xbf\xb0span lang=\"pa\"\xef\xbf\xb1\\1\xef\xbf\xb0/span\xef\xbf\xb1", $e); - // Tamil - $e = preg_replace("/([".$this->pregTAchars .$this->pregINDextra."]*[".$this->pregTAchars ."][".$this->pregTAchars .$this->pregINDextra."]*)/u", "\xef\xbf\xb0span lang=\"ta\"\xef\xbf\xb1\\1\xef\xbf\xb0/span\xef\xbf\xb1", $e); - // Telugu - $e = preg_replace("/([".$this->pregTEchars .$this->pregINDextra."]*[".$this->pregTEchars ."][".$this->pregTEchars .$this->pregINDextra."]*)/u", "\xef\xbf\xb0span lang=\"te\"\xef\xbf\xb1\\1\xef\xbf\xb0/span\xef\xbf\xb1", $e); - } -/*-- END INDIC --*/ - - - if ($this->autoFontGroups & AUTOFONT_THAIVIET) { - // THAI - $e = preg_replace("/([\x{0E00}-\x{0E7F}".$extra."]*[\x{0E00}-\x{0E7F}][\x{0E00}-\x{0E7F}".$extra."]*)/u", "\xef\xbf\xb0span lang=\"th\"\xef\xbf\xb1\\1\xef\xbf\xb0/span\xef\xbf\xb1", $e); - // Vietnamese - $e = preg_replace("/([".$this->pregVIETchars .$this->pregVIETPluschars ."]*[".$this->pregVIETchars ."][".$this->pregVIETchars .$this->pregVIETPluschars ."]*)/u", "\xef\xbf\xb0span lang=\"vi\"\xef\xbf\xb1\\1\xef\xbf\xb0/span\xef\xbf\xb1", $e); - } - - $e = preg_replace('/[&]/','&',$e); - $e = preg_replace('/[<]/','<',$e); - $e = preg_replace('/[>]/','>',$e); - $e = preg_replace("/(\xef\xbf\xb0span lang=\"([a-z\-A-Z]{2,5})\"\xef\xbf\xb1)\s+/",' \\1',$e); - $e = preg_replace("/[ ]+(\xef\xbf\xb0\/span\xef\xbf\xb1)/",'\\1 ',$e); - - $e = preg_replace("/\xef\xbf\xb0span lang=\"([a-z\-A-Z]{2,5})\"\xef\xbf\xb1/","\xef\xbf\xb0span lang=\"\\1\" class=\"lang_\\1\"\xef\xbf\xb1",$e); - - $e = preg_replace("/\xef\xbf\xb0/",'<',$e); - $e = preg_replace("/\xef\xbf\xb1/",'>',$e); - - $a[$i] = $e; - } - else { - $a[$i] = '<'.$e.'>'; - } - } - $n = implode('',$a); - return $n; -} - - -/*-- CJK-FONTS --*/ -function replaceCJK($str) { - // Use U=FFF0 and U+FFF1 to mark start and end of span tags to prevent nesting occurring - // "\xef\xbf\xb0" ##lthtmltag## "\xef\xbf\xb1" ##gthtmltag## - if (preg_match("/[".$this->pregUHCchars."]/u", $str)) { - return "\xef\xbf\xb0span lang=\"ko\"\xef\xbf\xb1" . $str ."\xef\xbf\xb0/span\xef\xbf\xb1"; - } - else if (preg_match("/[".$this->pregSJISchars."]/u", $str)) { - return "\xef\xbf\xb0span lang=\"ja\"\xef\xbf\xb1" . $str ."\xef\xbf\xb0/span\xef\xbf\xb1"; - } - // if in Unicode Plane 2, probably HKCS (incl in BIG5) if not Japanese - else if (preg_match("/[\x{20000}-\x{2FFFF}]/u", $str)) { - return "\xef\xbf\xb0span lang=\"zh-HK\"\xef\xbf\xb1" . $str ."\xef\xbf\xb0/span\xef\xbf\xb1"; - } - else{ - return "\xef\xbf\xb0span lang=\"zh-CN\"\xef\xbf\xb1" . $str ."\xef\xbf\xb0/span\xef\xbf\xb1"; - } - return $str; -} - -// mPDF 5.7+ -function replaceCJKPregCallback($matches) { - return $this->replaceCJK(stripslashes($matches[1])); -} -/*-- END CJK-FONTS --*/ - -/*-- RTL --*/ -function replaceArabic($str) { - // PASHTO, SINDHI, URDU, ARABIC, PERSIAN - $persian = "\x{067E}\x{0686}\x{0698}\x{06AF}"; - - $urdu = "\x{0679}\x{0688}\x{0691}\x{06BA}\x{06BE}\x{06C1}\x{06D2}"; - $pashto = "\x{067C}\x{0681}\x{0685}\x{0689}\x{0693}\x{0696}\x{069A}\x{06BC}\x{06D0}"; // ? and U+06AB, U+06CD - $sindhi = "\x{067A}\x{067B}\x{067D}\x{067F}\x{0680}\x{0684}\x{068D}\x{068A}\x{068F}\x{068C}\x{0687}\x{0683}\x{0699}\x{06AA}\x{06A6}\x{06BB}\x{06B1}\x{06B3}"; - // Use U=FFF0 and U+FFF1 to mark start and end of span tags to prevent nesting occurring - // "\xef\xbf\xb0" ##lthtmltag## "\xef\xbf\xb1" ##gthtmltag## - - if (preg_match("/[".$this->pregNonARABICchars ."]/u", $str) ) { - if (preg_match("/[".$sindhi ."]/u", $str) ) { - return "\xef\xbf\xb0span lang=\"sd\"\xef\xbf\xb1".$str."\xef\xbf\xb0/span\xef\xbf\xb1"; - } - else if (preg_match("/[".$urdu ."]/u", $str) ) { - return "\xef\xbf\xb0span lang=\"ur\"\xef\xbf\xb1".$str."\xef\xbf\xb0/span\xef\xbf\xb1"; - } - else if (preg_match("/[".$pashto ."]/u", $str) ) { - return "\xef\xbf\xb0span lang=\"ps\"\xef\xbf\xb1".$str."\xef\xbf\xb0/span\xef\xbf\xb1"; - } - else if (preg_match("/[".$persian ."]/u", $str) ) { - return "\xef\xbf\xb0span lang=\"fa\"\xef\xbf\xb1".$str."\xef\xbf\xb0/span\xef\xbf\xb1"; - } - else { - return "\xef\xbf\xb0span lang=\"ar\"\xef\xbf\xb1".$str."\xef\xbf\xb0/span\xef\xbf\xb1"; - } - } - if (preg_match("/[".$persian ."]/u", $str) ) { - return "\xef\xbf\xb0span lang=\"fa\"\xef\xbf\xb1".$str."\xef\xbf\xb0/span\xef\xbf\xb1"; - } - else { - return "\xef\xbf\xb0span lang=\"ar\"\xef\xbf\xb1".$str."\xef\xbf\xb0/span\xef\xbf\xb1"; - } - return $str; -} - -// mPDF 5.7+ -function replaceArabicPregCallback($matches) { - return $this->replaceArabic(stripslashes($matches[1])); -} - -// ARABIC =========================== -// mPDF 5.4.08 -function InitArabic() { - - // JOIN TO FOLLOWING LETTER IN LOGICAL ORDER (i.e. AS INITIAL) - $this->arabPrevLink = ""; - // U+060c; U+061b; U+061f; U+0626; U+0628; - $this->arabPrevLink .= "\xd8\x8c\xd8\x9b\xd8\x9f\xd8\xa6\xd8\xa8"; - // U+062a; U+062b; U+062c; U+062d; U+062e; - $this->arabPrevLink .= "\xd8\xaa\xd8\xab\xd8\xac\xd8\xad\xd8\xae"; - // U+0633; U+0634; U+0635; U+0636; U+0637; U+0638; U+0639; U+063a; - $this->arabPrevLink .= "\xd8\xb3\xd8\xb4\xd8\xb5\xd8\xb6\xd8\xb7\xd8\xb8\xd8\xb9\xd8\xba"; - // U+0640; U+0641; U+0642; U+0643; U+0644; U+0645; U+0646; U+0647; U+0649; U+064a; - $this->arabPrevLink .= "\xd9\x80\xd9\x81\xd9\x82\xd9\x83\xd9\x84\xd9\x85\xd9\x86\xd9\x87\xd9\x89\xd9\x8a"; - // U+0678; U+0679; U+067a; U+067b; U+067c; U+067d; U+067e; U+067f; - $this->arabPrevLink .= "\xd9\xb8\xd9\xb9\xd9\xba\xd9\xbb\xd9\xbc\xd9\xbd\xd9\xbe\xd9\xbf"; - // U+0680; U+0681; U+0682; U+0683; U+0684; U+0685; U+0686; U+0687; - $this->arabPrevLink .= "\xda\x80\xda\x81\xda\x82\xda\x83\xda\x84\xda\x85\xda\x86\xda\x87"; - // U+069a; U+069b; U+069c; U+069d; U+069e; U+069f; - $this->arabPrevLink .= "\xda\x9a\xda\x9b\xda\x9c\xda\x9d\xda\x9e\xda\x9f"; - // U+06a0; U+06a1; U+06a2; U+06a3; U+06a4; U+06a5; U+06a6; U+06A7; U+06A8; - $this->arabPrevLink .= "\xda\xa0\xda\xa1\xda\xa2\xda\xa3\xda\xa4\xda\xa5\xda\xa6\xda\xa7\xda\xa8"; - // U+06a9; U+06aa; U+06ab; U+06ac; U+06ad; U+06ae; U+06af; - $this->arabPrevLink .= "\xda\xa9\xda\xaa\xda\xab\xda\xac\xda\xad\xda\xae\xda\xaf"; - // U+06b0; U+06b1; U+06b2; U+06b3; U+06b4; U+06b5; U+06b6; U+06b7; U+06b8; U+06b9; - $this->arabPrevLink .= "\xda\xb0\xda\xb1\xda\xb2\xda\xb3\xda\xb4\xda\xb5\xda\xb6\xda\xb7\xda\xb8\xda\xb9"; - // U+06ba; U+06bb; U+06bc; U+06be; U+06bf; - $this->arabPrevLink .= "\xda\xba\xda\xbb\xda\xbc\xda\xbe\xda\xbf"; - // U+06c1; U+06cc; U+06ce; U+06d0; U+06d1; - $this->arabPrevLink .= "\xdb\x81\xdb\x8c\xdb\x8e\xdb\x90\xdb\x91"; - - - - - // JOIN TO PREVIOUS LETTER IN LOGICAL ORDER (i.e. AS FINAL FORM) - $this->arabNextLink = ""; - // U+0622; U+0623; U+0624; U+0625; U+0626; U+0627; U+0628; U+0629; - $this->arabNextLink .= "\xd8\xa2\xd8\xa3\xd8\xa4\xd8\xa5\xd8\xa6\xd8\xa7\xd8\xa8\xd8\xa9"; - // U+062A; U+062B; U+062C; U+062D; U+062E; U+062F; - $this->arabNextLink .= "\xd8\xaa\xd8\xab\xd8\xac\xd8\xad\xd8\xae\xd8\xaf"; - // U+0630; U+0631; U+0632; U+0633; U+0634; U+0635; U+0636; U+0637; U+0638; U+0639; U+063A; - $this->arabNextLink .= "\xd8\xb0\xd8\xb1\xd8\xb2\xd8\xb3\xd8\xb4\xd8\xb5\xd8\xb6\xd8\xb7\xd8\xb8\xd8\xb9\xd8\xba"; - // U+0640; U+0641; U+0642; U+0643; U+0644; U+0645; U+0646; U+0647; U+0648; U+0649; U+064A; - $this->arabNextLink .= "\xd9\x80\xd9\x81\xd9\x82\xd9\x83\xd9\x84\xd9\x85\xd9\x86\xd9\x87\xd9\x88\xd9\x89\xd9\x8a"; - // U+0671; U+0672; U+0675; U+0676; U+0677; U+0678; U+0679; - $this->arabNextLink .= "\xd9\xb1\xd9\xb2\xd9\xb5\xd9\xb6\xd9\xb7\xd9\xb8\xd9\xb9"; - // U+067A; U+067B; U+067C; U+067D; U+067E; U+067F; - $this->arabNextLink .= "\xd9\xba\xd9\xbb\xd9\xbc\xd9\xbd\xd9\xbe\xd9\xbf"; - // U+0680; U+0681; U+0682; U+0683; U+0684; U+0685; U+0686; U+0687; U+0688; U+0689; - $this->arabNextLink .= "\xda\x80\xda\x81\xda\x82\xda\x83\xda\x84\xda\x85\xda\x86\xda\x87\xda\x88\xda\x89"; - // U+068A; U+068B; U+068C; U+068D; U+068F;U+068F; - $this->arabNextLink .= "\xda\x8a\xda\x8b\xda\x8c\xda\x8d\xda\x8e\xda\x8f"; - // U+0690; U+0691; U+0692; U+0693; U+0694; U+0695; U+0696; U+0697; U+0698; U+0699; - $this->arabNextLink .= "\xda\x90\xda\x91\xda\x92\xda\x93\xda\x94\xda\x95\xda\x96\xda\x97\xda\x98\xda\x99"; - // U+069A; U+069B; U+069C; U+069D; U+069E; U+069F; - $this->arabNextLink .= "\xda\x9a\xda\x9b\xda\x9c\xda\x9d\xda\x9e\xda\x9f"; - // U+06A0; U+06A1; U+06A2; U+06A3; U+06A4; U+06A5; U+06A6; U+06A7; U+06A8; U+06A9; - $this->arabNextLink .= "\xda\xa0\xda\xa1\xda\xa2\xda\xa3\xda\xa4\xda\xa5\xda\xa6\xda\xa7\xda\xa8\xda\xa9"; - // U+06AA; U+06AB; U+06AC; U+06AD; U+06AE; U+06AF; - $this->arabNextLink .= "\xda\xaa\xda\xab\xda\xac\xda\xad\xda\xae\xda\xaf"; - // U+06B0; U+06B1; U+06B2; U+06B3; U+06B4; U+06B5; U+06B6; U+06B7; U+06B8; U+06B9; - $this->arabNextLink .= "\xda\xb0\xda\xb1\xda\xb2\xda\xb3\xda\xb4\xda\xb5\xda\xb6\xda\xb7\xda\xb8\xda\xb9"; - // U+06BA; U+06BB; U+06BC; U+06BE; U+06BF; - $this->arabNextLink .= "\xda\xba\xda\xbb\xda\xbc\xda\xbe\xda\xbf"; - // U+06C0; U+06C1; U+06C2; U+06C3; U+06C4; U+06C5; U+06C6; U+06C7; U+06C8; U+06C9; - $this->arabNextLink .= "\xdb\x80\xdb\x81\xdb\x82\xdb\x83\xdb\x84\xdb\x85\xdb\x86\xdb\x87\xdb\x88\xdb\x89"; - // U+06CA; U+06CB; U+06CC; U+06CD; U+06CE; U+06CF; - $this->arabNextLink .= "\xdb\x8a\xdb\x8b\xdb\x8c\xdb\x8d\xdb\x8e\xdb\x8f"; - // U+06D0; U+06d1; U+06D2; U+06D3; - $this->arabNextLink .= "\xdb\x90\xdb\x91\xdb\x92\xdb\x93"; - - - // VOWELS ++ - - // U+064b U+064c; U+064d; U+064e; U+064f; U+0650; U+0651; U+0652; - $this->arabVowels = "\xd9\x8b\xd9\x8c\xd9\x8d\xd9\x8e\xd9\x8f\xd9\x90\xd9\x91\xd9\x92"; - - // Added chars that may not be vowels but should not interrupt joining - // U+0670; U+0653; - $this->arabVowels .= "\xd9\xb0\xd9\x93"; - // ? should also add - U+615, 616, 617-61A, 653-65E, 6D6-6DC, 6DF-6E4, 6E7, 6E8, 6EA-6ED - - - - // ISOLATED FORM :: FINAL :: INITIAL :: MEDIAL - // FB** - FE** = Arabic presentation Forms - // F5** F6** F7** = Private use area used by unAGlyphs in mPDF - $this->arabGlyphs = array( - "\xd8\x8c"=>array("\xd8\x8c", "\xd8\x8c", "\xd8\x8c", "\xd8\x8c"), /* 060C, 060C, 060C, 060C */ - "\xd8\x9b"=>array("\xd8\x9b", "\xd8\x9b", "\xd8\x9b", "\xd8\x9b"), /* 061B, 061B, 061B, 061B */ - "\xd8\x9f"=>array("\xd8\x9f", "\xd8\x9f", "\xd8\x9f", "\xd8\x9f"), /* 061F, 061F, 061F, 061F */ - "\xd8\xa1"=>array("\xd8\xa1", "\xd8\xa1", "\xd8\xa1", "\xd8\xa1"), /* 0621, 0621, 0621, 0621 */ - "\xd8\xa2"=>array("\xd8\xa2", "\xef\xba\x82", "\xd8\xa2", "\xef\xba\x82"), /* 0622, FE82, 0622, FE82 */ - "\xd8\xa3"=>array("\xd8\xa3", "\xef\xba\x84", "\xd8\xa3", "\xef\xba\x84"), /* 0623, FE84, 0623, FE84 */ - "\xd8\xa4"=>array("\xd8\xa4", "\xef\xba\x86", "\xd8\xa4", "\xef\xba\x86"), /* 0624, FE86, 0624, FE86 */ - "\xd8\xa5"=>array("\xd8\xa5", "\xef\xba\x88", "\xd8\xa5", "\xef\xba\x88"), /* 0625, FE88, 0625, FE88 */ - "\xd8\xa6"=>array("\xd8\xa6", "\xef\xba\x8a", "\xef\xba\x8b", "\xef\xba\x8c"), /* 0626, FE8A, FE8B, FE8C */ - "\xd8\xa7"=>array("\xd8\xa7", "\xef\xba\x8e", "\xd8\xa7", "\xef\xba\x8e"), /* 0627, FE8E, 0627, FE8E */ - "\xd8\xa8"=>array("\xd8\xa8", "\xef\xba\x90", "\xef\xba\x91", "\xef\xba\x92"), /* 0628, FE90, FE91, FE92 */ - "\xd8\xa9"=>array("\xd8\xa9", "\xef\xba\x94", "\xd8\xa9", "\xef\xba\x94"), /* 0629, FE94, 0629, FE94 */ - "\xd8\xaa"=>array("\xd8\xaa", "\xef\xba\x96", "\xef\xba\x97", "\xef\xba\x98"), /* 062A, FE96, FE97, FE98 */ - "\xd8\xab"=>array("\xd8\xab", "\xef\xba\x9a", "\xef\xba\x9b", "\xef\xba\x9c"), /* 062B, FE9A, FE9B, FE9C */ - "\xd8\xac"=>array("\xd8\xac", "\xef\xba\x9e", "\xef\xba\x9f", "\xef\xba\xa0"), /* 062C, FE9E, FE9F, FEA0 */ - "\xd8\xad"=>array("\xd8\xad", "\xef\xba\xa2", "\xef\xba\xa3", "\xef\xba\xa4"), /* 062D, FEA2, FEA3, FEA4 */ - "\xd8\xae"=>array("\xd8\xae", "\xef\xba\xa6", "\xef\xba\xa7", "\xef\xba\xa8"), /* 062E, FEA6, FEA7, FEA8 */ - "\xd8\xaf"=>array("\xd8\xaf", "\xef\xba\xaa", "\xd8\xaf", "\xef\xba\xaa"), /* 062F, FEAA, 062F, FEAA */ - "\xd8\xb0"=>array("\xd8\xb0", "\xef\xba\xac", "\xd8\xb0", "\xef\xba\xac"), /* 0630, FEAC, 0630, FEAC */ - "\xd8\xb1"=>array("\xd8\xb1", "\xef\xba\xae", "\xd8\xb1", "\xef\xba\xae"), /* 0631, FEAE, 0631, FEAE */ - "\xd8\xb2"=>array("\xd8\xb2", "\xef\xba\xb0", "\xd8\xb2", "\xef\xba\xb0"), /* 0632, FEB0, 0632, FEB0 */ - "\xd8\xb3"=>array("\xd8\xb3", "\xef\xba\xb2", "\xef\xba\xb3", "\xef\xba\xb4"), /* 0633, FEB2, FEB3, FEB4 */ - "\xd8\xb4"=>array("\xd8\xb4", "\xef\xba\xb6", "\xef\xba\xb7", "\xef\xba\xb8"), /* 0634, FEB6, FEB7, FEB8 */ - "\xd8\xb5"=>array("\xd8\xb5", "\xef\xba\xba", "\xef\xba\xbb", "\xef\xba\xbc"), /* 0635, FEBA, FEBB, FEBC */ - "\xd8\xb6"=>array("\xd8\xb6", "\xef\xba\xbe", "\xef\xba\xbf", "\xef\xbb\x80"), /* 0636, FEBE, FEBF, FEC0 */ - "\xd8\xb7"=>array("\xd8\xb7", "\xef\xbb\x82", "\xef\xbb\x83", "\xef\xbb\x84"), /* 0637, FEC2, FEC3, FEC4 */ - "\xd8\xb8"=>array("\xd8\xb8", "\xef\xbb\x86", "\xef\xbb\x87", "\xef\xbb\x88"), /* 0638, FEC6, FEC7, FEC8 */ - "\xd8\xb9"=>array("\xd8\xb9", "\xef\xbb\x8a", "\xef\xbb\x8b", "\xef\xbb\x8c"), /* 0639, FECA, FECB, FECC */ - "\xd8\xba"=>array("\xd8\xba", "\xef\xbb\x8e", "\xef\xbb\x8f", "\xef\xbb\x90"), /* 063A, FECE, FECF, FED0 */ - "\xd9\x80"=>array("\xd9\x80", "\xd9\x80", "\xd9\x80", "\xd9\x80"), /* 0640, 0640, 0640, 0640 */ - "\xd9\x81"=>array("\xd9\x81", "\xef\xbb\x92", "\xef\xbb\x93", "\xef\xbb\x94"), /* 0641, FED2, FED3, FED4 */ - "\xd9\x82"=>array("\xd9\x82", "\xef\xbb\x96", "\xef\xbb\x97", "\xef\xbb\x98"), /* 0642, FED6, FED7, FED8 */ - "\xd9\x83"=>array("\xd9\x83", "\xef\xbb\x9a", "\xef\xbb\x9b", "\xef\xbb\x9c"), /* 0643, FEDA, FEDB, FEDC */ - "\xd9\x84"=>array("\xd9\x84", "\xef\xbb\x9e", "\xef\xbb\x9f", "\xef\xbb\xa0"), /* 0644, FEDE, FEDF, FEE0 */ - "\xd9\x85"=>array("\xd9\x85", "\xef\xbb\xa2", "\xef\xbb\xa3", "\xef\xbb\xa4"), /* 0645, FEE2, FEE3, FEE4 */ - "\xd9\x86"=>array("\xd9\x86", "\xef\xbb\xa6", "\xef\xbb\xa7", "\xef\xbb\xa8"), /* 0646, FEE6, FEE7, FEE8 */ - "\xd9\x87"=>array("\xd9\x87", "\xef\xbb\xaa", "\xef\xbb\xab", "\xef\xbb\xac"), /* 0647, FEEA, FEEB, FEEC */ - "\xd9\x88"=>array("\xd9\x88", "\xef\xbb\xae", "\xd9\x88", "\xef\xbb\xae"), /* 0648, FEEE, 0648, FEEE */ - -/* 0649 Alef Maksura should only appear at end of word (in Arabic) So Initial and medial are shown as isolated/final */ - "\xd9\x89"=>array("\xd9\x89", "\xef\xbb\xb0", "\xd9\x89", "\xef\xbb\xb0"), /* 0649, FEF0, 0649, FEF0 */ - -/* 0649 Alef Maksura Initial and Medial forms as given in Unicode FBE8 and FBE9 for Uighur Kazakh (not in some fonts) */ - "\xd9\x89"=>array("\xd9\x89", "\xef\xbb\xb0", "\xef\xaf\xa8", "\xef\xaf\xa9"), /* 0649, FEF0, FBE8, FBE9 not in most fonts */ - - "\xd9\x8a"=>array("\xd9\x8a", "\xef\xbb\xb2", "\xef\xbb\xb3", "\xef\xbb\xb4"), /* 064A, FEF2, FEF3, FEF4 */ - "\xd9\x8b"=>array("\xd9\x8b", "\xd9\x8b", "\xd9\x8b", "\xd9\x8b"), /* 064B, 064B, 064B, 064B */ - "\xd9\x8c"=>array("\xd9\x8c", "\xd9\x8c", "\xd9\x8c", "\xd9\x8c"), /* 064C, 064C, 064C, 064C */ - "\xd9\x8d"=>array("\xd9\x8d", "\xd9\x8d", "\xd9\x8d", "\xd9\x8d"), /* 064D, 064D, 064D, 064D */ - "\xd9\x8e"=>array("\xd9\x8e", "\xd9\x8e", "\xd9\x8e", "\xd9\x8e"), /* 064E, 064E, 064E, 064E */ - "\xd9\x8f"=>array("\xd9\x8f", "\xd9\x8f", "\xd9\x8f", "\xd9\x8f"), /* 064F, 064F, 064F, 064F */ - "\xd9\x90"=>array("\xd9\x90", "\xd9\x90", "\xd9\x90", "\xd9\x90"), /* 0650, 0650, 0650, 0650 */ - "\xd9\x91"=>array("\xd9\x91", "\xd9\x91", "\xd9\x91", "\xd9\x91"), /* 0651, 0651, 0651, 0651 */ - "\xd9\x92"=>array("\xd9\x92", "\xd9\x92", "\xd9\x92", "\xd9\x92"), /* 0652, 0652, 0652, 0652 */ - "\xd9\xb1"=>array("\xd9\xb1", "\xef\xad\x91", "\xd9\xb1", "\xef\xad\x91"), /* 0671, FB51, 0671, FB51 */ - "\xd9\xb2"=>array("\xd9\xb2", "\xef\x95\xb2", "\xd9\xb2", "\xef\x95\xb2"), /* 0672, F572, 0672, F572 */ - "\xd9\xb5"=>array("\xd9\xb5", "\xef\x95\xb5", "\xd9\xb5", "\xef\x95\xb5"), /* 0675, F575, 0675, F575 */ - "\xd9\xb8"=>array("\xd9\xb8", "\xef\x95\xb8", "\xef\xba\x8b", "\xef\xba\x8c"), /* 0678, F578, FE8B, FE8C ( as 0626 ) */ - "\xd9\xb9"=>array("\xd9\xb9", "\xef\xad\xa7", "\xef\xad\xa8", "\xef\xad\xa9"), /* 0679, FB67, FB68, FB69 */ - "\xd9\xba"=>array("\xd9\xba", "\xef\xad\x9f", "\xef\xad\xa0", "\xef\xad\xa1"), /* 067A, FB5F, FB60, FB61 */ - "\xd9\xbb"=>array("\xd9\xbb", "\xef\xad\x93", "\xef\xad\x94", "\xef\xad\x95"), /* 067B, FB53, FB54, FB55 */ - "\xd9\xbc"=>array("\xd9\xbc", "\xef\x95\xbc", "\xef\x99\xbc", "\xef\x9d\xbc"), /* 067C, F57C, F67C, F77C */ - "\xd9\xbd"=>array("\xd9\xbd", "\xef\x95\xbd", "\xef\x99\xbd", "\xef\x9d\xbd"), /* 067D, F57D, F67D, F77D */ - "\xd9\xbe"=>array("\xd9\xbe", "\xef\xad\x97", "\xef\xad\x98", "\xef\xad\x99"), /* 067E, FB57, FB58, FB59 */ - "\xd9\xbf"=>array("\xd9\xbf", "\xef\xad\xa3", "\xef\xad\xa4", "\xef\xad\xa5"), /* 067F, FB63, FB64, FB65 */ - "\xda\x80"=>array("\xda\x80", "\xef\xad\x9b", "\xef\xad\x9c", "\xef\xad\x9d"), /* 0680, FB5B, FB5C, FB5D */ - "\xda\x81"=>array("\xda\x81", "\xef\x96\x81", "\xef\x9a\x81", "\xef\x9e\x81"), /* 0681, F581, F681, F781 */ - "\xda\x82"=>array("\xda\x82", "\xef\x96\x82", "\xef\x9a\x82", "\xef\x9e\x82"), /* 0682, F582, F682, F782 */ - "\xda\x83"=>array("\xda\x83", "\xef\xad\xb7", "\xef\xad\xb8", "\xef\xad\xb9"), /* 0683, FB77, FB78, FB79 */ - "\xda\x84"=>array("\xda\x84", "\xef\xad\xb3", "\xef\xad\xb4", "\xef\xad\xb5"), /* 0684, FB73, FB74, FB75 */ - "\xda\x85"=>array("\xda\x85", "\xef\x96\x85", "\xef\x9a\x85", "\xef\x9e\x85"), /* 0685, F585, F685, F785 */ - "\xda\x86"=>array("\xda\x86", "\xef\xad\xbb", "\xef\xad\xbc", "\xef\xad\xbd"), /* 0686, FB7B, FB7C, FB7D */ - "\xda\x87"=>array("\xda\x87", "\xef\xad\xbf", "\xef\xae\x80", "\xef\xae\x81"), /* 0687, FB7F, FB80, FB81 */ - "\xda\x88"=>array("\xda\x88", "\xef\xae\x89", "\xda\x88", "\xda\x88"), /* 0688, FB89, 0688, 0688 */ - "\xda\x89"=>array("\xda\x89", "\xef\x96\x89", "\xda\x89", "\xda\x89"), /* 0689, F589, 0689, 0689 */ - "\xda\x91"=>array("\xda\x91", "\xef\xae\x8d", "\xda\x91", "\xef\xae\x8d"), /* 0691, FB8D, 0691, FB8D */ - "\xda\x93"=>array("\xda\x93", "\xef\x96\x93", "\xda\x93", "\xda\x93"), /* 0693, F593, 0693, 0693 */ - "\xda\x96"=>array("\xda\x96", "\xef\x96\x96", "\xda\x96", "\xda\x96"), /* 0696, F596, 0696, 0696 */ - "\xda\x98"=>array("\xda\x98", "\xef\xae\x8b", "\xda\x98", "\xef\xae\x8b"), /* 0698, FB8B, 0698, FB8B */ - "\xda\x9a"=>array("\xda\x9a", "\xef\x96\x9a", "\xef\x9a\x9a", "\xef\x9e\x9a"), /* 069A, F59A, F69A, F79A */ - "\xda\x9b"=>array("\xda\x9b", "\xef\x96\x9b", "\xef\x9a\x9b", "\xef\x9e\x9b"), /* 069B, F59B, F69B, F79B */ - "\xda\x9c"=>array("\xda\x9c", "\xef\x96\x9c", "\xef\x9a\x9c", "\xef\x9e\x9c"), /* 069C, F59C, F69C, F79C */ - "\xda\x9d"=>array("\xda\x9d", "\xef\x96\x9d", "\xef\x9a\x9d", "\xef\x9e\x9d"), /* 069D, F59D, F69D, F79D */ - "\xda\x9e"=>array("\xda\x9e", "\xef\x96\x9e", "\xef\x9a\x9e", "\xef\x9e\x9e"), /* 069E, F59E, F69E, F79E */ - "\xda\xa0"=>array("\xda\xa0", "\xef\x96\xa0", "\xef\x9a\xa0", "\xef\x9e\xa0"), /* 06A0, F5A0, F6A0, F7A0 */ - "\xda\xa1"=>array("\xda\xa1", "\xef\x96\xa1", "\xef\x9a\xa1", "\xef\x9e\xa1"), /* 06A1, F5A1, F6A1, F7A1 */ - "\xda\xa2"=>array("\xda\xa2", "\xef\x96\xa2", "\xef\x9a\xa2", "\xef\x9e\xa2"), /* 06A2, F5A2, F6A2, F7A2 */ - "\xda\xa3"=>array("\xda\xa3", "\xef\x96\xa3", "\xef\x9a\xa3", "\xef\x9e\xa3"), /* 06A3, F5A3, F6A3, F7A3 */ - "\xda\xa4"=>array("\xda\xa4", "\xef\xad\xab", "\xef\xad\xac", "\xef\xad\xad"), /* 06A4, FB6B, FB6C, FB6D */ - "\xda\xa5"=>array("\xda\xa5", "\xef\x96\xa5", "\xef\x9a\xa5", "\xef\x9e\xa5"), /* 06A5, F5A5, F6A5, F7A5 */ - "\xda\xa6"=>array("\xda\xa6", "\xef\xad\xaf", "\xef\xad\xb0", "\xef\xad\xb1"), /* 06A6, FB6F, FB70, FB71 */ - "\xda\xa9"=>array("\xda\xa9", "\xef\xae\x8f", "\xef\xae\x90", "\xef\xae\x91"), /* 06A9, FB8F, FB90, FB91 */ - "\xda\xaa"=>array("\xda\xaa", "\xef\x96\xaa", "\xef\x9a\xaa", "\xef\x9e\xaa"), /* 06AA, F5AA, F6AA, F7AA */ - "\xda\xab"=>array("\xda\xab", "\xef\x96\xab", "\xef\x9a\xab", "\xef\x9e\xab"), /* 06AB, F5AB, F6AB, F7AB */ - "\xda\xac"=>array("\xda\xac", "\xef\x96\xac", "\xef\x9a\xac", "\xef\x9e\xac"), /* 06AC, F5AC, F6AC, F7AC */ - "\xda\xad"=>array("\xda\xad", "\xef\xaf\x94", "\xef\xaf\x95", "\xef\xaf\x96"), /* 06AD, FBD4, FBD5, FBD6 */ - "\xda\xae"=>array("\xda\xae", "\xef\x96\xae", "\xef\x9a\xae", "\xef\x9e\xae"), /* 06AE, F5AE, F6AE, F7AE */ - "\xda\xaf"=>array("\xda\xaf", "\xef\xae\x93", "\xef\xae\x94", "\xef\xae\x95"), /* 06Af, FB93, FB94, FB95 */ - "\xda\xb0"=>array("\xda\xb0", "\xef\x96\xb0", "\xef\x9a\xb0", "\xef\x9e\xb0"), /* 06B0, F5B0, F6B0, F7B0 */ - "\xda\xb1"=>array("\xda\xb1", "\xef\xae\x9b", "\xef\xae\x9c", "\xef\xae\x9d"), /* 06B1, FB9B, FB9C, FB9D */ - "\xda\xb2"=>array("\xda\xb2", "\xef\x96\xb2", "\xef\x9a\xb2", "\xef\x9e\xb2"), /* 06B2, F5B2, F6B2, F7B2 */ - "\xda\xb3"=>array("\xda\xb3", "\xef\xae\x97", "\xef\xae\x98", "\xef\xae\x99"), /* 06B3, FB97, FB98, FB99 */ - "\xda\xb4"=>array("\xda\xb4", "\xef\x96\xb4", "\xef\x9a\xb4", "\xef\x9e\xb4"), /* 06B4, F5B4, F6B4, F7B4 */ - "\xda\xb5"=>array("\xda\xb5", "\xef\x96\xb5", "\xef\x9a\xb5", "\xef\x9e\xb5"), /* 06B5, F5B5, F6B5, F7B5 */ - "\xda\xb6"=>array("\xda\xb6", "\xef\x96\xb6", "\xef\x9a\xb6", "\xef\x9e\xb6"), /* 06B6, F5B6, F6B6, F7B6 */ - "\xda\xb7"=>array("\xda\xb7", "\xef\x96\xb7", "\xef\x9a\xb7", "\xef\x9e\xb7"), /* 06B7, F5B7, F6B7, F7B7 */ - "\xda\xb8"=>array("\xda\xb8", "\xef\x96\xb8", "\xef\x9a\xb8", "\xef\x9e\xb8"), /* 06B8, F5B8, F6B8, F7B8 */ - "\xda\xb9"=>array("\xda\xb9", "\xef\x96\xb9", "\xef\x9a\xb9", "\xef\x9e\xb9"), /* 06B9, F5B9, F6B9, F7B9 */ - "\xda\xba"=>array("\xda\xba", "\xef\xae\x9f", "\xda\xba", "\xda\xba"), /* 06BA, FB9F, 06BA, 06BA */ - "\xda\xbb"=>array("\xda\xbb", "\xef\xae\xa1", "\xef\xae\xa2", "\xef\xae\xa3"), /* 06BB, FBA1, FBA2, FBA3 */ - "\xda\xbc"=>array("\xda\xbc", "\xef\x96\xbc", "\xef\x9a\xbc", "\xef\x9e\xbc"), /* 06BC, F5BC, F6BC, F7BC */ - "\xda\xbe"=>array("\xda\xbe", "\xef\xae\xab", "\xef\xae\xac", "\xef\xae\xad"), /* 06BE, FBAB, FBAC, FBAD */ - "\xda\xbf"=>array("\xda\xbf", "\xef\x96\xbf", "\xef\x9a\xbf", "\xef\x9e\xbf"), /* 06BF, F5BF, F6BF, F7BF */ - "\xdb\x80"=>array("\xdb\x80", "\xef\xae\xa5", "\xdb\x80", "\xef\xae\xa5"), /* 06C0, FBA5, 06C0, FBA5 */ - "\xdb\x81"=>array("\xdb\x81", "\xef\xae\xa7", "\xef\xae\xa8", "\xef\xae\xa9"), /* 06C1, FBA7, FBA8, FBA9 */ - "\xdb\x8c"=>array("\xdb\x8c", "\xef\xaf\xbd", "\xef\xaf\xbe", "\xef\xaf\xbf"), /* 06CC, FBFD, FBFE, FBFF */ - "\xdb\x8d"=>array("\xdb\x8d", "\xef\x97\x8d", "\xdb\x8d", "\xef\x97\x8d"), /* 06CD, F5CD, 06CD, F5CD */ - "\xdb\x8e"=>array("\xdb\x8e", "\xef\x97\x8e", "\xef\x9b\x8e", "\xef\x9f\x8e"), /* 06CE, F5CE, F6CE, F7CE */ - "\xdb\x90"=>array("\xdb\x90", "\xef\xaf\xa5", "\xef\xaf\xa6", "\xef\xaf\xa7"), /* 06D0, FBE5, FBE6, FBE7 */ - "\xdb\x91"=>array("\xdb\x91", "\xef\x97\x91", "\xef\xad\x98", "\xef\xad\x99"), /* 06D1, F5D1, FB58, FB59 Fudge borrows from 067E */ - "\xdb\x92"=>array("\xdb\x92", "\xef\xae\xaf", "\xdb\x92", "\xef\xae\xaf"), /* 06D2, FBAF, 06D2, FBAF */ - "\xdb\x93"=>array("\xdb\x93", "\xef\xae\xb1", "\xdb\x93", "\xef\xae\xb1"), /* 06D3, FBB1, 06D3, FBB1 */ - ); - - - // LAM with ALEF ligatures (Mandatory ligatures) - - // U+0644; U+0622; U+0644; U+0623; U+0644; U+0625; U+0644; U+0627; - $this->arabLigGlyphs = "\xd9\x84\xd8\xa2\xd9\x84\xd8\xa3\xd9\x84\xd8\xa5\xd9\x84\xd8\xa7"; - $this->arabLigHex = 'FEF5FEF6FEF5FEF6FEF7FEF8FEF7FEF8FEF9FEFAFEF9FEFAFEFBFEFCFEFBFEFC'; - -} - -// mPDF 5.4.08 -function ArabJoin($str) { - if (!$this->arabGlyphs) { $this->InitArabic(); } - $crntChar = null; - $prevChar = null; - $nextChar = null; - $output = array(); - $chars = preg_split('//u', $str); - $max = count($chars); - for ($i = $max - 1; $i >= 0; $i--) { - $crntChar = $chars[$i]; - if ($i > 0){ $prevChar = $chars[$i - 1]; } - else{ $prevChar = NULL; } - if ($prevChar && mb_strpos($this->arabVowels, $prevChar, 0, 'utf-8') !== false) { - $prevChar = $chars[$i - 2]; - if ($prevChar && mb_strpos($this->arabVowels, $prevChar, 0, 'utf-8') !== false) { - $prevChar = $chars[$i - 3]; - } - } - if ($crntChar && mb_strpos($this->arabVowels, $crntChar, 0, 'utf-8') !== false) { - // If next_char = nextLink && prev_char = prevLink: - // Added && $prevchar (defined) else error on mb_strpos() - if ($chars[$i + 1] && (mb_strpos($this->arabNextLink, $chars[$i + 1], 0, 'utf-8') !== false) && $prevChar && (mb_strpos($this->arabPrevLink, $prevChar, 0, 'utf-8') !== false)) { - $output[] = $this->get_arab_glyphs($crntChar, 1); // form - } - else { - $output[] = $this->get_arab_glyphs($crntChar, 0); // form - } - continue; - } - // NB = آ أ إ ا ل - if (isset($chars[$i + 1]) && in_array($chars[$i + 1], array("\xd8\xa2","\xd8\xa3","\xd8\xa5","\xd8\xa7")) && $crntChar == "\xd9\x84"){ - continue; - } - if (ord($crntChar) < 128) { - $output[] = $crntChar; - $nextChar = $crntChar; - continue; - } - $form = 0; - if ($prevChar == "\xd9\x84" && ($crntChar == "\xd8\xa2" || $crntChar == "\xd8\xa3" || $crntChar == "\xd8\xa5" || $crntChar == "\xd8\xa7")) { - if ($chars[$i - 2] && mb_strpos($this->arabPrevLink, $chars[$i - 2], 0, 'utf-8') !== false) { - $form++; // form - } - $pos = mb_strpos($this->arabLigGlyphs, ($prevChar . $crntChar), 0, 'utf-8'); - $pos = $pos*8 + $form*4; - $pres = (mb_substr($this->arabLigHex, $pos, 4, 'utf-8')); - // If presentation forms for mandatory ligatures with diacritics not present (even if remapped from e.g. uni0644uni0625) - // try replacing with mandatory ligature Alef/lam isolated/final FEFB/FEFC + diacritic glyph - if (!$this->_charDefined($this->CurrentFont['cw'], hexdec($pres)) && $this->_charDefined($this->CurrentFont['cw'], hexdec('FEFB'))) { - if ($pres=='FEF5') { $output[] = strcode2utf('ﻻٓ'); } - else if ($pres=='FEF6') { $output[] = strcode2utf('ﻼٓ'); } - else if ($pres=='FEF7') { $output[] = strcode2utf('ﻻٔ'); } - else if ($pres=='FEF8') { $output[] = strcode2utf('ﻼٔ'); } - else if ($pres=='FEF9') { $output[] = strcode2utf('ﻻٕ'); } - else if ($pres=='FEFA') { $output[] = strcode2utf('ﻼٕ'); } - } - else { - $output[] = strcode2utf('&#x' . $pres . ';'); - } - $nextChar = $prevChar; - continue; - } - if ($prevChar && mb_strpos($this->arabPrevLink, $prevChar, 0, 'utf-8') !== false) { - $form++; - } - if ($nextChar && mb_strpos($this->arabNextLink, $nextChar, 0, 'utf-8') !== false) { - $form += 2; - } - $output[] = $this->get_arab_glyphs($crntChar, $form) ; - $nextChar = $crntChar; - } - $ra = array_reverse($output); - $s = implode($ra); - return $s; -} - -// mPDF 5.7+ -function arabJoinPregCallback($matches) { - return $this->ArabJoin(stripslashes($matches[1])); -} - -// mPDF 5.4.08 -function get_arab_glyphs($char, $type) { - if ($type>0 && isset($this->arabGlyphs[$char])) { - // If presentation form specified FB** - FE** = Arabic presentation Forms - if (preg_match("/[\x{FB50}-\x{FEFF}]/u",$this->arabGlyphs[$char][$type])) { - $unicode = $this->UTF8StringToArray($this->arabGlyphs[$char][$type], false); - if ($this->_charDefined($this->CurrentFont['cw'],$unicode[0])) { return $this->arabGlyphs[$char][$type]; } - else if (isset($this->CurrentFont['unAGlyphs'])) { - $uni = $this->UTF8StringToArray($char, false); - $pua = $uni[0] - 1536 + 62464 + 256*$type ; - if ($this->_charDefined($this->CurrentFont['cw'], $pua)) { return strcode2utf('&#x' . dechex($pua) . ';'); } - else return $char; - } - else return $char; - } - // If PUA form specified and unAGlphs font set F5** F6** F7** = Private use area used by unAGlyphs in mPDF - if (preg_match("/[\x{F500}-\x{F7FF}]/u",$this->arabGlyphs[$char][$type]) && isset($this->CurrentFont['unAGlyphs'])) { - $unicode = $this->UTF8StringToArray($this->arabGlyphs[$char][$type], false); - if ($this->_charDefined($this->CurrentFont['cw'],$unicode[0])) { return $this->arabGlyphs[$char][$type]; } - else return $char; - } - return $this->arabGlyphs[$char][$type]; - } - else return $char; -} -/*-- END RTL --*/ - - - -//=========================== -// Functions originally in htmltoolkit - moved mPDF 4.0 - -// Call-back function Used for usort in fn _tableWrite - -function _cmpdom($a, $b) { - return ($a["dom"] < $b["dom"]) ? -1 : 1; -} - -function mb_strrev($str, $enc = 'utf-8'){ - $ch = array(); - $ch = preg_split('//u',$str); - $revch = array_reverse($ch); - return implode('',$revch); -} - -/*-- COLUMNS --*/ -// Callback function from function printcolumnbuffer in mpdf -function columnAdjustAdd($type,$k,$xadj,$yadj,$a,$b,$c=0,$d=0,$e=0,$f=0) { - if ($type == 'Td') { // xpos,ypos - $a += ($xadj * $k); - $b -= ($yadj * $k); - return 'BT '.sprintf('%.3F %.3F',$a,$b).' Td'; - } - else if ($type == 're') { // xpos,ypos,width,height - $a += ($xadj * $k); - $b -= ($yadj * $k); - return sprintf('%.3F %.3F %.3F %.3F',$a,$b,$c,$d).' re'; - } - else if ($type == 'l') { // xpos,ypos,x2pos,y2pos - $a += ($xadj * $k); - $b -= ($yadj * $k); - return sprintf('%.3F %.3F l',$a,$b); - } - else if ($type == 'img') { // width,height,xpos,ypos - $c += ($xadj * $k); - $d -= ($yadj * $k); - return sprintf('q %.3F 0 0 %.3F %.3F %.3F',$a,$b,$c,$d).' cm /'.$e; - } - else if ($type == 'draw') { // xpos,ypos - $a += ($xadj * $k); - $b -= ($yadj * $k); - return sprintf('%.3F %.3F m',$a,$b); - } - else if ($type == 'bezier') { // xpos,ypos,x2pos,y2pos,x3pos,y3pos - $a += ($xadj * $k); - $b -= ($yadj * $k); - $c += ($xadj * $k); - $d -= ($yadj * $k); - $e += ($xadj * $k); - $f -= ($yadj * $k); - return sprintf('%.3F %.3F %.3F %.3F %.3F %.3F',$a,$b,$c,$d,$e,$f).' c'; - } -} -/*-- END COLUMNS --*/ - - - -function ConvertColor($color="#000000"){ - $color = trim(strtolower($color)); - $c = false; - if ($color=='transparent') { return false; } - else if ($color=='inherit') { return false; } - else if (isset($this->SVGcolors[$color])) $color = $this->SVGcolors[$color]; - - if (preg_match('/^[\d]+$/',$color)) { $c = (array(1,$color)); } // i.e. integer only - else if ($color[0] == '#') { //case of #nnnnnn or #nnn - $cor = preg_replace('/\s+.*/','',$color); // in case of Background: #CCC url() x-repeat etc. - if (strlen($cor) == 4) { // Turn #RGB into #RRGGBB - $cor = "#" . $cor[1] . $cor[1] . $cor[2] . $cor[2] . $cor[3] . $cor[3]; - } - $r = hexdec(substr($cor, 1, 2)); - $g = hexdec(substr($cor, 3, 2)); - $b = hexdec(substr($cor, 5, 2)); - $c = array(3,$r,$g,$b); - } - else if (preg_match('/(rgba|rgb|device-cmyka|cmyka|device-cmyk|cmyk|hsla|hsl|spot)\((.*?)\)/',$color,$m)) { // mPDF 5.6.05 - $type= $m[1]; - $cores = explode(",", $m[2]); - $ncores = count($cores); - if (stristr($cores[0],'%') ) { - $cores[0] += 0; - if ($type=='rgb' || $type=='rgba') { $cores[0] = intval($cores[0]*255/100); } - } - if ($ncores>1 && stristr($cores[1],'%') ) { - $cores[1] += 0; - if ($type=='rgb' || $type=='rgba') { $cores[1] = intval($cores[1]*255/100); } - if ($type=='hsl' || $type=='hsla') { $cores[1] = $cores[1]/100; } - } - if ($ncores>2 && stristr($cores[2],'%') ) { - $cores[2] += 0; - if ($type=='rgb' || $type=='rgba') { $cores[2] = intval($cores[2]*255/100); } - if ($type=='hsl' || $type=='hsla') { $cores[2] = $cores[2]/100; } - } - if ($ncores>3 && stristr($cores[3],'%') ) { - $cores[3] += 0; - } - - if ($type=='rgb') { $c = array(3,$cores[0],$cores[1],$cores[2]); } - else if ($type=='rgba') { $c = array(5,$cores[0],$cores[1],$cores[2],$cores[3]*100); } - else if ($type=='cmyk' || $type=='device-cmyk') { $c = array(4,$cores[0],$cores[1],$cores[2],$cores[3]); } // mPDF 5.6.05 - else if ($type=='cmyka' || $type=='device-cmyka') { $c = array(6,$cores[0],$cores[1],$cores[2],$cores[3],$cores[4]*100); } // mPDF 5.6.05 - else if ($type=='hsl' || $type=='hsla') { - $conv = $this->hsl2rgb($cores[0]/360,$cores[1],$cores[2]); - if ($type=='hsl') { $c = array(3,$conv[0],$conv[1],$conv[2]); } - else if ($type=='hsla') { $c = array(5,$conv[0],$conv[1],$conv[2],$cores[3]*100); } - } - else if ($type=='spot') { - $name = strtoupper(trim($cores[0])); - // mPDF 5.6.59 - if(!isset($this->spotColors[$name])) { - if (isset($cores[5])) { $this->AddSpotColor($cores[0],$cores[2],$cores[3],$cores[4],$cores[5]); } - else { $this->Error('Undefined spot color: '.$name); } - } - $c = array(2,$this->spotColors[$name]['i'],$cores[1]); - } - } - - - // $this->restrictColorSpace - // 1 - allow GRAYSCALE only [convert CMYK/RGB->gray] - // 2 - allow RGB / SPOT COLOR / Grayscale [convert CMYK->RGB] - // 3 - allow CMYK / SPOT COLOR / Grayscale [convert RGB->CMYK] - if ($this->PDFA || $this->PDFX || $this->restrictColorSpace) { - if ($c[0]==1) { // GRAYSCALE - } - else if ($c[0]==2) { // SPOT COLOR - if (!isset($this->spotColorIDs[$c[1]])) { die('Error: Spot colour has not been defined - '.$this->spotColorIDs[$c[1]]); } - if ($this->PDFA) { - if ($this->PDFA && !$this->PDFAauto) { $this->PDFAXwarnings[] = "Spot color specified '".$this->spotColorIDs[$c[1]]."' (converted to process color)"; } - if ($this->restrictColorSpace!=3) { - $sp = $this->spotColors[$this->spotColorIDs[$c[1]]]; - $c = $this->cmyk2rgb(array(4,$sp['c'],$sp['m'],$sp['y'],$sp['k'])); - } - } - else if ($this->restrictColorSpace==1) { - $sp = $this->spotColors[$this->spotColorIDs[$c[1]]]; - $c = $this->cmyk2gray(array(4,$sp['c'],$sp['m'],$sp['y'],$sp['k'])); - } - } - else if ($c[0]==3) { // RGB - if ($this->PDFX || ($this->PDFA && $this->restrictColorSpace==3)) { - if (($this->PDFA && !$this->PDFAauto) || ($this->PDFX && !$this->PDFXauto)) { $this->PDFAXwarnings[] = "RGB color specified '".$color."' (converted to CMYK)"; } - $c = $this->rgb2cmyk($c); - } - else if ($this->restrictColorSpace==1) { $c = $this->rgb2gray($c); } - else if ($this->restrictColorSpace==3) { $c = $this->rgb2cmyk($c); } - } - else if ($c[0]==4) { // CMYK - if ($this->PDFA && $this->restrictColorSpace!=3) { - if ($this->PDFA && !$this->PDFAauto) { $this->PDFAXwarnings[] = "CMYK color specified '".$color."' (converted to RGB)"; } - $c = $this->cmyk2rgb($c); - } - else if ($this->restrictColorSpace==1) { $c = $this->cmyk2gray($c); } - else if ($this->restrictColorSpace==2) { $c = $this->cmyk2rgb($c); } - } - else if ($c[0]==5) { // RGBa - if ($this->PDFX || ($this->PDFA && $this->restrictColorSpace==3)) { - if (($this->PDFA && !$this->PDFAauto) || ($this->PDFX && !$this->PDFXauto)) { $this->PDFAXwarnings[] = "RGB color with transparency specified '".$color."' (converted to CMYK without transparency)"; } - $c = $this->rgb2cmyk($c); - $c = array(4, $c[1], $c[2], $c[3], $c[4]); - } - else if ($this->PDFA && $this->restrictColorSpace!=3) { - if (!$this->PDFAauto) { $this->PDFAXwarnings[] = "RGB color with transparency specified '".$color."' (converted to RGB without transparency)"; } - $c = $this->rgb2cmyk($c); - $c = array(4, $c[1], $c[2], $c[3], $c[4]); - } - else if ($this->restrictColorSpace==1) { $c = $this->rgb2gray($c); } - else if ($this->restrictColorSpace==3) { $c = $this->rgb2cmyk($c); } - } - else if ($c[0]==6) { // CMYKa - if ($this->PDFA && $this->restrictColorSpace!=3) { - if (($this->PDFA && !$this->PDFAauto) || ($this->PDFX && !$this->PDFXauto)) { $this->PDFAXwarnings[] = "CMYK color with transparency specified '".$color."' (converted to RGB without transparency)"; } - $c = $this->cmyk2rgb($c); - $c = array(3, $c[1], $c[2], $c[3]); - } - else if ($this->PDFX || ($this->PDFA && $this->restrictColorSpace==3)) { - if (($this->PDFA && !$this->PDFAauto) || ($this->PDFX && !$this->PDFXauto)) { $this->PDFAXwarnings[] = "CMYK color with transparency specified '".$color."' (converted to CMYK without transparency)"; } - $c = $this->cmyk2rgb($c); - $c = array(3, $c[1], $c[2], $c[3]); - } - else if ($this->restrictColorSpace==1) { $c = $this->cmyk2gray($c); } - else if ($this->restrictColorSpace==2) { $c = $this->cmyk2rgb($c); } - } - } - if (is_array($c)) { - $c = array_pad($c, 6, 0); - $cstr = pack("a1ccccc", $c[0], ($c[1] & 0xFF), ($c[2] & 0xFF), ($c[3] & 0xFF), ($c[4] & 0xFF), ($c[5] & 0xFF) ); - } - return $cstr; -} - -function rgb2gray($c) { - if (isset($c[4])) { return array(1,(($c[1] * .21) + ($c[2] * .71) + ($c[3] * .07)), ord(1), $c[4]); } - else { return array(1,(($c[1] * .21) + ($c[2] * .71) + ($c[3] * .07))); } -} - -function cmyk2gray($c) { - $rgb = $this->cmyk2rgb($c); - return $this->rgb2gray($rgb); -} - -function rgb2cmyk($c) { - $cyan = 1 - ($c[1] / 255); - $magenta = 1 - ($c[2] / 255); - $yellow = 1 - ($c[3] / 255); - $min = min($cyan, $magenta, $yellow); - - if ($min == 1) { - if ($c[0]==5) { return array (6,100,100,100,100, $c[4]); } - else { return array (4,100,100,100,100); } - // For K-Black - //if ($c[0]==5) { return array (6,0,0,0,100, $c[4]); } - //else { return array (4,0,0,0,100); } - } - $K = $min; - $black = 1 - $K; - if ($c[0]==5) { return array (6,($cyan-$K)*100/$black, ($magenta-$K)*100/$black, ($yellow-$K)*100/$black, $K*100, $c[4]); } - else { return array (4,($cyan-$K)*100/$black, ($magenta-$K)*100/$black, ($yellow-$K)*100/$black, $K*100); } -} - - -function cmyk2rgb($c) { - $rgb = array(); - $colors = 255 - ($c[4]*2.55); - $rgb[0] = intval($colors * (255 - ($c[1]*2.55))/255); - $rgb[1] = intval($colors * (255 - ($c[2]*2.55))/255); - $rgb[2] = intval($colors * (255 - ($c[3]*2.55))/255); - if ($c[0]==6) { return array (5,$rgb[0],$rgb[1],$rgb[2], $c[5]); } - else { return array (3,$rgb[0],$rgb[1],$rgb[2]); } -} - -function rgb2hsl($var_r, $var_g, $var_b) { - $var_min = min($var_r,$var_g,$var_b); - $var_max = max($var_r,$var_g,$var_b); - $del_max = $var_max - $var_min; - $l = ($var_max + $var_min) / 2; - if ($del_max == 0) { - $h = 0; - $s = 0; - } - else { - if ($l < 0.5) { $s = $del_max / ($var_max + $var_min); } - else { $s = $del_max / (2 - $var_max - $var_min); } - $del_r = ((($var_max - $var_r) / 6) + ($del_max / 2)) / $del_max; - $del_g = ((($var_max - $var_g) / 6) + ($del_max / 2)) / $del_max; - $del_b = ((($var_max - $var_b) / 6) + ($del_max / 2)) / $del_max; - if ($var_r == $var_max) { $h = $del_b - $del_g; } - elseif ($var_g == $var_max) { $h = (1 / 3) + $del_r - $del_b; } - elseif ($var_b == $var_max) { $h = (2 / 3) + $del_g - $del_r; }; - if ($h < 0) { $h += 1; } - if ($h > 1) { $h -= 1; } - } - return array($h,$s,$l); -} - - -function hsl2rgb($h2,$s2,$l2) { - // Input is HSL value of complementary colour, held in $h2, $s, $l as fractions of 1 - // Output is RGB in normal 255 255 255 format, held in $r, $g, $b - // Hue is converted using function hue_2_rgb, shown at the end of this code - if ($s2 == 0) { - $r = $l2 * 255; - $g = $l2 * 255; - $b = $l2 * 255; - } - else { - if ($l2 < 0.5) { $var_2 = $l2 * (1 + $s2); } - else { $var_2 = ($l2 + $s2) - ($s2 * $l2); } - $var_1 = 2 * $l2 - $var_2; - $r = round(255 * $this->hue_2_rgb($var_1,$var_2,$h2 + (1 / 3))); - $g = round(255 * $this->hue_2_rgb($var_1,$var_2,$h2)); - $b = round(255 * $this->hue_2_rgb($var_1,$var_2,$h2 - (1 / 3))); - } - return array($r,$g,$b); -} - -function hue_2_rgb($v1,$v2,$vh) { - // Function to convert hue to RGB, called from above - if ($vh < 0) { $vh += 1; }; - if ($vh > 1) { $vh -= 1; }; - if ((6 * $vh) < 1) { return ($v1 + ($v2 - $v1) * 6 * $vh); }; - if ((2 * $vh) < 1) { return ($v2); }; - if ((3 * $vh) < 2) { return ($v1 + ($v2 - $v1) * ((2 / 3 - $vh) * 6)); }; - return ($v1); -} - -function _invertColor($cor) { - if ($cor[0]==3 || $cor[0]==5) { // RGB - return array(3, (255-$cor[1]), (255-$cor[2]), (255-$cor[3])); - } - else if ($cor[0]==4 || $cor[0]==6) { // CMYK - return array(4, (100-$cor[1]), (100-$cor[2]), (100-$cor[3]), (100-$cor[4])); - } - else if ($cor[0]==1) { // Grayscale - return array(1, (255-$cor[1])); - } - // Cannot cope with non-RGB colors at present - die('Error in _invertColor - trying to invert non-RGB color'); -} - -function _colAtoString($cor) { - $s = ''; - if ($cor{0}==1) $s = 'rgb('.ord($cor{1}).','.ord($cor{1}).','.ord($cor{1}).')'; - else if ($cor{0}==2) $s = 'spot('.ord($cor{1}).','.ord($cor{2}).')'; // SPOT COLOR - else if ($cor{0}==3) $s = 'rgb('.ord($cor{1}).','.ord($cor{2}).','.ord($cor{3}).')'; - else if ($cor{0}==4) $s = 'cmyk('.ord($cor{1}).','.ord($cor{2}).','.ord($cor{3}).','.ord($cor{4}).')'; - else if ($cor{0}==5) $s = 'rgba('.ord($cor{1}).','.ord($cor{2}).','.ord($cor{3}).','.sprintf('%0.2F',ord($cor{4})/100).')'; - else if ($cor{0}==6) $s = 'cmyka('.ord($cor{1}).','.ord($cor{2}).','.ord($cor{3}).','.ord($cor{4}).','.sprintf('%0.2F',ord($cor{5})/100).')'; - return $s; -} - -function ConvertSize($size=5,$maxsize=0,$fontsize=false,$usefontsize=true){ -// usefontsize - setfalse for e.g. margins - will ignore fontsize for % values -// Depends of maxsize value to make % work properly. Usually maxsize == pagewidth -// For text $maxsize = Fontsize -// Setting e.g. margin % will use maxsize (pagewidth) and em will use fontsize - //Identify size (remember: we are using 'mm' units here) - $size = trim(strtolower($size)); - - if ( $size == 'thin' ) $size = 1*(25.4/$this->dpi); //1 pixel width for table borders - elseif ( stristr($size,'px') ) $size *= (25.4/$this->dpi); //pixels - elseif ( stristr($size,'cm') ) $size *= 10; //centimeters - elseif ( stristr($size,'mm') ) $size += 0; //millimeters - elseif ( stristr($size,'pt') ) $size *= 25.4/72; //72 pts/inch - elseif ( stristr($size,'rem') ) { // mPDF 5.6.12 - $size += 0; //make "0.83rem" become simply "0.83" - $size *= ($this->default_font_size / _MPDFK); - } - elseif ( stristr($size,'em') ) { - $size += 0; //make "0.83em" become simply "0.83" - if ($fontsize) { $size *= $fontsize; } - else { $size *= $maxsize; } - } - elseif ( stristr($size,'%') ) { - $size += 0; //make "90%" become simply "90" - if ($fontsize && $usefontsize) { $size *= $fontsize/100; } - else { $size *= $maxsize/100; } - } - elseif ( stristr($size,'in') ) $size *= 25.4; //inches - elseif ( stristr($size,'pc') ) $size *= 38.1/9; //PostScript picas - elseif ( stristr($size,'ex') ) { // Approximates "ex" as half of font height - $size += 0; //make "3.5ex" become simply "3.5" - if ($fontsize) { $size *= $fontsize/2; } - else { $size *= $maxsize/2; } - } - elseif ( $size == 'medium' ) $size = 3*(25.4/$this->dpi); //3 pixel width for table borders - elseif ( $size == 'thick' ) $size = 5*(25.4/$this->dpi); //5 pixel width for table borders - elseif ($size == 'xx-small') { - if ($fontsize) { $size *= $fontsize*0.7; } - else { $size *= $maxsize*0.7; } - } - elseif ($size == 'x-small') { - if ($fontsize) { $size *= $fontsize*0.77; } - else { $size *= $maxsize*0.77; } - } - elseif ($size == 'small') { - if ($fontsize) { $size *= $fontsize*0.86; } - else { $size *= $maxsize*0.86; } - } - elseif ($size == 'medium') { - if ($fontsize) { $size *= $fontsize; } - else { $size *= $maxsize; } - } - elseif ($size == 'large') { - if ($fontsize) { $size *= $fontsize*1.2; } - else { $size *= $maxsize*1.2; } - } - elseif ($size == 'x-large') { - if ($fontsize) { $size *= $fontsize*1.5; } - else { $size *= $maxsize*1.5; } - } - elseif ($size == 'xx-large') { - if ($fontsize) { $size *= $fontsize*2; } - else { $size *= $maxsize*2; } - } - else $size *= (25.4/$this->dpi); //nothing == px - - return $size; -} - -// mPDF 5.7.3 TRANSFORMS -function ConvertAngle($s, $makepositive=true) { - if (preg_match('/([\-]*[0-9\.]+)(deg|grad|rad)/i',$s,$m)) { - $angle = $m[1] + 0; - if (strtolower($m[2])=='deg') { $angle = $angle; } - else if (strtolower($m[2])=='grad') { $angle *= (360/400); } - else if (strtolower($m[2])=='rad') { $angle = rad2deg($angle); } - while($angle >= 360) { $angle -= 360; } - while($angle <= -360) { $angle += 360; } - if ($makepositive) { // always returns an angle between 0 and 360deg - if ($angle < 0) { $angle += 360; } - } - } - else { $angle = $s + 0; } - return $angle; -} - -function lesser_entity_decode($html) { - //supports the most used entity codes (only does ascii safe characters) - //$html = str_replace(" "," ",$html); // mPDF 5.3.59 - $html = str_replace("<","<",$html); - $html = str_replace(">",">",$html); - - $html = str_replace("'","'",$html); - $html = str_replace(""",'"',$html); - $html = str_replace("&","&",$html); - return $html; -} - -function AdjustHTML($html, $tabSpaces=8) { - //Try to make the html text more manageable (turning it into XHTML) - if (PHP_VERSION_ID < 50307) { - if (strlen($html) > 100000) { - if (PHP_VERSION_ID < 50200) $this->Error("The HTML code is more than 100,000 characters. You should use WriteHTML() with smaller string lengths."); - else ini_set("pcre.backtrack_limit","1000000"); - } - } - -/*-- ANNOTATIONS --*/ - preg_match_all("/()/si", $html, $m); - if (count($m[1])) { - for($i=0;$i)/si", $html, $svgi); - if (count($svgi[0])) { - for($i=0;$i', $html); // mPDF 5.5.18 - } - } - - //Remove javascript code from HTML (should not appear in the PDF file) - $html = preg_replace('//is','',$html); - - //Remove special comments - $html = preg_replace('//i','',$html); - - //Remove comments from HTML (should not appear in the PDF file) - $html = preg_replace('//s','',$html); - - $html = preg_replace('/\f/','',$html); //replace formfeed by nothing - $html = preg_replace('/\r/','',$html); //replace carriage return by nothing - - // Well formed XHTML end tags - $html = preg_replace('/<(br|hr)\/>/i',"<\\1 />",$html); - // Get rid of empty - $html = preg_replace('/\s*<\/thead>/i','',$html); - $html = preg_replace('/\s*<\/tfoot>/i','',$html); - $html = preg_replace('/]*>\s*<\/table>/i','',$html); - $html = preg_replace('/\s*<\/tr>/i','',$html); - - // Remove spaces at end of table cells - $html = preg_replace("/[ \n\r]+<\/t(d|h)/",'[ ]*/",'',$html); - - // Concatenates any Substitute characters from symbols/dingbats - $html = str_replace('','|',$html); - $html = str_replace('','|',$html); - $html = str_replace('','|',$html); - - $html = preg_replace('/
\s*/is',"
",$html); - - $html = preg_replace('/\s*/is',"­",$html); // mPDF 5.6.04 - - // Preserve '\n's in content between the tags
 and 
- if (preg_match('/
]*\>)/', $html, -1, 2);
-		$h = array();
-		$c=0;
-		foreach($html_a AS $s) {
-			if ($c>1 && preg_match('/^<\/pre/i',$s)) { $c--; $s=preg_replace('/<\/pre/i','0 && preg_match('/^
(.*?)
#si',$html,$temp); - // Preserve '\n's in content between the tags - $thereistextarea = preg_match_all('#(.*?)#si',$html,$temp2); - $html = preg_replace('/[\n]/',' ',$html); //replace linefeed by spaces - $html = preg_replace('/[\t]/',' ',$html); //replace tabs by spaces - - // Converts < to < when not a tag - $html = preg_replace('/<([^!\/a-zA-Z_:])/i','<\\1',$html); // mPDF 5.7.3 - $html = preg_replace("/[ ]+/",' ',$html); - - $html = preg_replace('/\/li>\s+<\/(u|o)l/i','/li>\s+<\/li/i','/\\1l>\s+<\/(u|o)l/i','/li>\s+
  • ]*)>[ ]+/i','<\\1l\\2>',$html); - $html = preg_replace('/[ ]+<(u|o)l/i','<\\1l',$html); - - $iterator = 0; - while($thereispre) //Recover
    content
    - { - $temp[2][$iterator] = preg_replace('/<([^!\/a-zA-Z_:])/','<\\1',$temp[2][$iterator]); // mPDF 5.7.2 // mPDF 5.7.3 - $temp[2][$iterator] = preg_replace_callback("/^([^\n\t]*?)\t/m", array($this, 'tabs2spaces_callback'), $temp[2][$iterator]); // mPDF 5.7+ - $temp[2][$iterator] = preg_replace('/\t/',str_repeat(" ",$tabSpaces),$temp[2][$iterator]); - - $temp[2][$iterator] = preg_replace('/\n/',"
    ",$temp[2][$iterator]); - $temp[2][$iterator] = str_replace('\\',"\\\\",$temp[2][$iterator]); - //$html = preg_replace('#(.*?)
  • #si',''.$temp[2][$iterator].'',$html,1); - $html = preg_replace('#(.*?)#si',''.str_replace('$','\$',$temp[2][$iterator]).'',$html,1); // mPDF 5.7+ - $thereispre--; - $iterator++; - } - $iterator = 0; - while($thereistextarea) //Recover - { - $temp2[2][$iterator] = preg_replace('/\t/',str_repeat(" ",$tabSpaces),$temp2[2][$iterator]); - $temp2[2][$iterator] = str_replace('\\',"\\\\",$temp2[2][$iterator]); // mPDF 5.3.88 - $html = preg_replace('#(.*?)#si',''.trim($temp2[2][$iterator]) .'',$html,1); - $thereistextarea--; - $iterator++; - } - //Restore original tag names - $html = str_replace("","",$html); - $html = str_replace("","",$html); - $html = str_replace("]*)><\/textarea>/si',' ',$html); - $html = preg_replace('/(]*>)\s*()(.*?<\/table>)/si','\\2 position="top"\\3\\1\\4\\2 position="bottom"\\3',$html); // *TABLES* - $html = preg_replace('/<(h[1-6])([^>]*)(>(?:(?!h[1-6]).)*?<\/\\1>\s*tabSpaces - (mb_strlen(stripslashes($matches[1])) % $this->tabSpaces))); -} -// mPDF 5.7+ -function date_callback($matches) { - return date($matches[1]); -} - -/*-- LISTS --*/ -function dec2other($num, $cp) { - $nstr = (string) $num; - $rnum = ''; - for ($i=0;$i_charDefined($this->CurrentFont['cw'],$cp+intval($nstr[$i]))) { // contains arabic-indic numbers - $rnum .= code2utf($cp+intval($nstr[$i])); - } - else { $rnum .= $nstr[$i]; } - } - return $rnum; -} - -function dec2alpha($valor,$toupper="true"){ -// returns a string from A-Z to AA-ZZ to AAA-ZZZ -// OBS: A = 65 ASCII TABLE VALUE - if (($valor < 1) || ($valor > 18278)) return "?"; //supports 'only' up to 18278 - $c1 = $c2 = $c3 = ''; - if ($valor > 702) // 3 letters (up to 18278) - { - $c1 = 65 + floor(($valor-703)/676); - $c2 = 65 + floor((($valor-703)%676)/26); - $c3 = 65 + floor((($valor-703)%676)%26); - } - elseif ($valor > 26) // 2 letters (up to 702) - { - $c1 = (64 + (int)(($valor-1) / 26)); - $c2 = (64 + (int)($valor % 26)); - if ($c2 == 64) $c2 += 26; - } - else // 1 letter (up to 26) - { - $c1 = (64 + $valor); - } - $alpha = chr($c1); - if ($c2 != '') $alpha .= chr($c2); - if ($c3 != '') $alpha .= chr($c3); - if (!$toupper) $alpha = strtolower($alpha); - return $alpha; -} - - -function dec2roman($valor,$toupper=true){ - //returns a string as a roman numeral - $r1=$r2=$r3=$r4=''; - if (($valor >= 5000) || ($valor < 1)) return "?"; //supports 'only' up to 4999 - $aux = (int)($valor/1000); - if ($aux!==0) - { - $valor %= 1000; - while($aux!==0) - { - $r1 .= "M"; - $aux--; - } - } - $aux = (int)($valor/100); - if ($aux!==0) - { - $valor %= 100; - switch($aux){ - case 3: $r2="C"; - case 2: $r2.="C"; - case 1: $r2.="C"; break; - case 9: $r2="CM"; break; - case 8: $r2="C"; - case 7: $r2.="C"; - case 6: $r2.="C"; - case 5: $r2="D".$r2; break; - case 4: $r2="CD"; break; - default: break; - } - } - $aux = (int)($valor/10); - if ($aux!==0) - { - $valor %= 10; - switch($aux){ - case 3: $r3="X"; - case 2: $r3.="X"; - case 1: $r3.="X"; break; - case 9: $r3="XC"; break; - case 8: $r3="X"; - case 7: $r3.="X"; - case 6: $r3.="X"; - case 5: $r3="L".$r3; break; - case 4: $r3="XL"; break; - default: break; - } - } - switch($valor){ - case 3: $r4="I"; - case 2: $r4.="I"; - case 1: $r4.="I"; break; - case 9: $r4="IX"; break; - case 8: $r4="I"; - case 7: $r4.="I"; - case 6: $r4.="I"; - case 5: $r4="V".$r4; break; - case 4: $r4="IV"; break; - default: break; - } - $roman = $r1.$r2.$r3.$r4; - if (!$toupper) $roman = strtolower($roman); - return $roman; -} -/*-- END LISTS --*/ - - -//=========================== -/*-- IMPORTS --*/ -function SetImportUse() { - $this->enableImports = true; - ini_set('auto_detect_line_endings',1); - require_once(_MPDF_PATH."mpdfi/pdf_context.php"); - require_once(_MPDF_PATH."mpdfi/pdf_parser.php"); - require_once(_MPDF_PATH."mpdfi/fpdi_pdf_parser.php"); -} - -// from mPDFI -function hex2str($hex) { - return pack("H*", str_replace(array("\r","\n"," "),"", $hex)); -} - -function str2hex($str) { - return current(unpack("H*",$str)); -} - - -function pdf_write_value(&$value) { - switch ($value[0]) { - case PDF_TYPE_NUMERIC : - case PDF_TYPE_TOKEN : - // A numeric value or a token. - // Simply output them - $this->_out($value[1]." ", false); - break; - - case PDF_TYPE_ARRAY : - // An array. Output the proper - // structure and move on. - $this->_out("[",false); - for ($i = 0; $i < count($value[1]); $i++) { - $this->pdf_write_value($value[1][$i]); - } - $this->_out("]"); - break; - - case PDF_TYPE_DICTIONARY : - // A dictionary. - $this->_out("<<",false); - reset ($value[1]); - while (list($k, $v) = each($value[1])) { - $this->_out($k . " ",false); - $this->pdf_write_value($v); - } - $this->_out(">>"); - break; - - case PDF_TYPE_OBJREF : - // An indirect object reference - // Fill the object stack if needed - $cpfn =& $this->current_parser->filename; - if (!isset($this->_don_obj_stack[$cpfn][$value[1]])) { - $this->_newobj(false,true); - $this->_obj_stack[$cpfn][$value[1]] = array($this->n, $value); - $this->_don_obj_stack[$cpfn][$value[1]] = array($this->n, $value); - } - $objid = $this->_don_obj_stack[$cpfn][$value[1]][0]; - $this->_out("{$objid} 0 R"); //{$value[2]} - break; - - case PDF_TYPE_STRING : - if ($this->encrypted) { - $value[1] = $this->_RC4($this->_objectkey($this->_current_obj_id), $value[1]); - $value[1] = $this->_escape($value[1]); - } - // A string. - $this->_out('('.$value[1].')'); - break; - - case PDF_TYPE_STREAM : - // A stream. First, output the - // stream dictionary, then the - // stream data itself. - $this->pdf_write_value($value[1]); - if ($this->encrypted) { - $value[2][1] = $this->_RC4($this->_objectkey($this->_current_obj_id), $value[2][1]); - } - $this->_out("stream"); - $this->_out($value[2][1]); - $this->_out("endstream"); - break; - - case PDF_TYPE_HEX : - if ($this->encrypted) { - $value[1] = $this->hex2str($value[1]); - $value[1] = $this->_RC4($this->_objectkey($this->_current_obj_id), $value[1]); - // remake hexstring of encrypted string - $value[1] = $this->str2hex($value[1]); - } - $this->_out("<".$value[1].">"); - break; - - case PDF_TYPE_NULL : - // The null object. - $this->_out("null"); - break; - } -} - -// ========== OVERWRITE SEARCH STRING IN A PDF FILE ================ -function OverWrite($file_in, $search, $replacement, $dest="D", $file_out="mpdf" ) { - $pdf = file_get_contents($file_in); - - if (!is_array($search)) { - $x = $search; - $search = array($x); - } - if (!is_array($replacement)) { - $x = $replacement; - $replacement = array($x); // mPDF 5.7.4 - } - - if (!$this->onlyCoreFonts && !$this->usingCoreFont) { - foreach($search AS $k=>$val) { - $search[$k] = $this->UTF8ToUTF16BE($search[$k] , false); - $search[$k] = $this->_escape($search[$k]); - $replacement[$k] = $this->UTF8ToUTF16BE($replacement[$k], false); - $replacement[$k] = $this->_escape($replacement[$k]); - } - } - else { - foreach($replacement AS $k=>$val) { - $replacement[$k] = mb_convert_encoding($replacement[$k],$this->mb_enc,'utf-8'); - $replacement[$k] = $this->_escape($replacement[$k]); - } - } - - // Get xref into array - $xref = array(); - preg_match("/xref\n0 (\d+)\n(.*?)\ntrailer/s",$pdf,$m); - $xref_objid = $m[1]; - preg_match_all('/(\d{10}) (\d{5}) (f|n)/',$m[2],$x); - for($i=0; $icompress) { - preg_match("/".($obj+1)." 0 obj\n<<\s*\/Filter\s*\/FlateDecode\s*\/Length (\d+)>>\nstream\n(.*?)\nendstream\n/s",$pdf,$m); - } - else { - preg_match("/".($obj+1)." 0 obj\n<<\s*\/Length (\d+)>>\nstream\n(.*?)\nendstream\n/s",$pdf,$m); - } - $s = $m[2]; - if (!$s) { continue; } - $oldlen = $m[1]; - if ($this->encrypted) { - $s = $this->_RC4($this->_objectkey($obj+1), $s); - } - if ($this->compress) { - $s = gzuncompress($s); - } - foreach($search AS $k=>$val) { - $s = str_replace($search[$k],$replacement[$k],$s); - } - if ($this->compress) { - $s = gzcompress($s); - } - if ($this->encrypted) { - $s = $this->_RC4($this->_objectkey($obj+1), $s); - } - $newlen = strlen($s); - $changes[($xref[$obj+1][0])] = ($newlen - $oldlen) + (strlen($newlen) - strlen($oldlen )); - if ($this->compress) { - $newstr = ($obj+1) . " 0 obj\n<>\nstream\n".$s."\nendstream\n"; - } - else { - $newstr = ($obj+1) . " 0 obj\n<>\nstream\n".$s."\nendstream\n"; - } - $pdf = str_replace($m[0],$newstr,$pdf); - } - - // Update xref in PDF - krsort($changes); - $newxref = "xref\n0 ".$xref_objid."\n"; - foreach($xref AS $v) { - foreach($changes AS $ck => $cv) { - if ($v[0] > $ck) { $v[0] += $cv; } - } - $newxref .= sprintf('%010d',$v[0]) . ' ' . $v[1] . ' ' .$v[2] . " \n"; - } - $newxref .= "trailer"; - $pdf = preg_replace("/xref\n0 \d+\n.*?\ntrailer/s",$newxref,$pdf); - - // Update startxref in PDF - preg_match("/startxref\n(\d+)\n%%EOF/s", $pdf, $m); - $startxref = $m[1]; - $startxref += array_sum($changes); - $pdf = preg_replace("/startxref\n(\d+)\n%%EOF/s","startxref\n".$startxref."\n%%EOF",$pdf); - - // OUTPUT - switch($dest) { - case 'I': - //Send to standard output - if(isset($_SERVER['SERVER_NAME'])) - { - //We send to a browser - Header('Content-Type: application/pdf'); - Header('Content-Length: '.strlen($pdf)); - Header('Content-disposition: inline; filename='.$file_out); - } - echo $pdf; - break; - case 'F': - //Save to local file - if (!$file_out) { $file_out = 'mpdf.pdf'; } - $f=fopen($file_out,'wb'); - if(!$f) die('Unable to create output file: '.$file_out); - fwrite($f,$pdf,strlen($pdf)); - fclose($f); - break; - case 'S': - //Return as a string - return $pdf; - case 'D': - default: - //Download file - if(isset($_SERVER['HTTP_USER_AGENT']) and strpos($_SERVER['HTTP_USER_AGENT'],'MSIE')) - Header('Content-Type: application/force-download'); - else - Header('Content-Type: application/octet-stream'); - Header('Content-Length: '.strlen($pdf)); - Header('Content-disposition: attachment; filename='.$file_out); - echo $pdf; - break; - } -} - - -function GetTemplateSize($tplidx, $_w=0, $_h=0) { - if (!$this->tpls[$tplidx]) - return false; - $w = $this->tpls[$tplidx]['box']['w']; - $h = $this->tpls[$tplidx]['box']['h']; - if ($_w == 0 and $_h == 0) { - $_w = $w; - $_h = $h; - } - if($_w==0) - $_w=$_h*$w/$h; - if($_h==0) - $_h=$_w*$h/$w; - return array("w" => $_w, "h" => $_h); -} - -// Thumbnails -function Thumbnail($file, $npr=3, $spacing=10) { //$npr = number per row - $w = (($this->pgwidth + $spacing)/$npr) - $spacing; - $oldlinewidth = $this->LineWidth; - $this->SetLineWidth(0.02); - $this->SetDColor($this->ConvertColor(0)); - $h = 0; - $maxh = 0; - $x = $_x = $this->lMargin; - $_y = $this->tMargin; - if ($this->y==0) { $y = $_y; } else { $y = $this->y; } - $pagecount = $this->SetSourceFile($file); - for ($n = 1; $n <= $pagecount; $n++) { - $tplidx = $this->ImportPage($n); - $size = $this->useTemplate($tplidx, $x, $y, $w); - $this->Rect($x, $y, $size['w'], $size['h']); - $h = max($h, $size['h']); - $maxh = max($h, $maxh); - if ($n % $npr == 0) { - if (($y + $h + $spacing + $maxh)>$this->PageBreakTrigger && $n != $pagecount) { - $this->AddPage(); - $x = $_x; - $y = $_y; - } - else { - $y += $h+$spacing ; - $x = $_x; - $h = 0; - } - } - else { - $x += $w+$spacing ; - } - } - $this->SetLineWidth($oldlinewidth); -} - -function SetSourceFile($filename) { - $this->current_filename = $filename; - $fn =& $this->current_filename; - if (!isset($this->parsers[$fn])) - // $this->parsers[$fn] =& new fpdi_pdf_parser($fn,$this); - $this->parsers[$fn] = new fpdi_pdf_parser($fn,$this); - if (!$this->parsers[$fn]->success) { - $this->Error($this->parsers[$fn]->errormsg); // Delete this line to return false on fail - return false; - } - $this->current_parser =& $this->parsers[$fn]; - return $this->parsers[$fn]->getPageCount(); -} -function ImportPage($pageno=1, $crop_x=null, $crop_y=null, $crop_w=0, $crop_h=0, $boxName='/CropBox') { - $fn =& $this->current_filename; - $parser =& $this->parsers[$fn]; - $parser->setPageno($pageno); - - $this->tpl++; - $this->tpls[$this->tpl] = array(); - $tpl =& $this->tpls[$this->tpl]; - $tpl['parser'] =& $parser; - $tpl['resources'] = $parser->getPageResources(); - $tpl['buffer'] = $parser->getContent(); - if (!in_array($boxName, $parser->availableBoxes)) - return $this->Error(sprintf("Unknown box: %s", $boxName)); - $pageboxes = $parser->getPageBoxes($pageno); - /** - * MediaBox - * CropBox: Default -> MediaBox - * BleedBox: Default -> CropBox - * TrimBox: Default -> CropBox - * ArtBox: Default -> CropBox - */ - if (!isset($pageboxes[$boxName]) && ($boxName == "/BleedBox" || $boxName == "/TrimBox" || $boxName == "/ArtBox")) - $boxName = "/CropBox"; - if (!isset($pageboxes[$boxName]) && $boxName == "/CropBox") - $boxName = "/MediaBox"; - if (!isset($pageboxes[$boxName])) - return false; - $box = $pageboxes[$boxName]; - - $tpl['box'] = $box; - // To build an array that can be used by useTemplate() - $this->tpls[$this->tpl] = array_merge($this->tpls[$this->tpl],$box); - // An imported page will start at 0,0 everytime. Translation will be set in _putformxobjects() - $tpl['x'] = 0; - $tpl['y'] = 0; - $tpl['w'] = $tpl['box']['w'] ; - $tpl['h'] = $tpl['box']['h'] ; - if ($crop_w) { $tpl['box']['w'] = $crop_w; } - if ($crop_h) { $tpl['box']['h'] = $crop_h; } - if (isset($crop_x)) { $tpl['box']['x'] = $crop_x; } - if (isset($crop_y)) {$tpl['box']['y'] = $tpl['h'] - $crop_y - $crop_h ; } - - $page =& $parser->pages[$parser->pageno]; - // fix for rotated pages - $rotation = $parser->getPageRotation($pageno); - - if (isset($rotation[1]) && ($angle = $rotation[1] % 360) != 0 && $tpl['box']['w'] == $tpl['w']) { - $steps = $angle / 90; - - $_w = $tpl['w']; - $_h = $tpl['h']; - $tpl['w'] = $steps % 2 == 0 ? $_w : $_h; - $tpl['h'] = $steps % 2 == 0 ? $_h : $_w; - if ($steps % 2 != 0) { - $x = $y = ($steps == 1 || $steps == -3) ? $tpl['h'] : $tpl['w']; - } else { - $x = $tpl['w']; - $y = $tpl['h']; - } - $cx=($x/2+$tpl['box']['x'])*_MPDFK; - $cy=($y/2+$tpl['box']['y'])*_MPDFK; - $angle*=-1; - $angle*=M_PI/180; - $c=cos($angle); - $s=sin($angle); - $tpl['box']['w'] = $tpl['w'] ; - $tpl['box']['h'] = $tpl['h'] ; - $tpl['buffer'] = sprintf('q %.5F %.5F %.5F %.5F %.2F %.2F cm 1 0 0 1 %.2F %.2F cm %s Q',$c,$s,-$s,$c,$cx,$cy,-$cx,-$cy, $tpl['buffer']); - } - return $this->tpl; -} -function UseTemplate($tplidx, $_x=null, $_y=null, $_w=0, $_h=0) { - if (!isset($this->tpls[$tplidx])) - $this->Error("Template does not exist!"); - if($this->state==0) { $this->AddPage(); } - $out = 'q 0 J 1 w 0 j 0 G'."\n"; // reset standard values - $x = $this->tpls[$tplidx]['x']; - $y = $this->tpls[$tplidx]['y']; - $w = $this->tpls[$tplidx]['w']; - $h = $this->tpls[$tplidx]['h']; - if ($_x == null) { $_x = $x; } - if ($_y == null) { $_y = $y; } - if ($_x === -1) { $_x = $this->x; } - if ($_y === -1) { $_y = $this->y; } - - $wh = $this->getTemplateSize($tplidx,$_w,$_h); - $_w = $wh['w']; - $_h = $wh['h']; - $out .= sprintf("q %.4F 0 0 %.4F %.2F %.2F cm", ($_w/$this->tpls[$tplidx]['box']['w']), ($_h/$this->tpls[$tplidx]['box']['h']), $_x*_MPDFK, ($this->h-($_y+$_h))*_MPDFK)."\n"; - $out .= $this->tplprefix.$tplidx." Do Q\n"; - - $s = array("w" => $_w, "h" => $_h); - $out .= "Q\n"; - $this->pages[$this->page] = $out . $this->pages[$this->page]; - return $s; -} -function SetPageTemplate($tplidx='') { - if (!isset($this->tpls[$tplidx])) { - $this->pageTemplate = ''; - return false; - } - $this->pageTemplate = $tplidx; -} -function SetDocTemplate($file='', $continue=0) { - $this->docTemplate = $file; - $this->docTemplateContinue = $continue; -} -/*-- END IMPORTS --*/ - - -/* ---------------------------------------------- */ -/* ---------------------------------------------- */ -/* ---------------------------------------------- */ -/* ---------------------------------------------- */ -/* ---------------------------------------------- */ - -// JAVASCRIPT -function _set_object_javascript ($string) { - $this->_newobj(); - $this->_out('<<'); - $this->_out('/S /JavaScript '); - $this->_out('/JS '.$this->_textstring($string)); - $this->_out('>>'); - $this->_out('endobj'); -} - -function SetJS($script) { - $this->js = $script; -} - - - - -}//end of Class - - - - -?> diff --git a/public_html/2022/newcms/pdf/mpdfi/filters/FilterASCII85.php b/public_html/2022/newcms/pdf/mpdfi/filters/FilterASCII85.php deleted file mode 100644 index fc42d57..0000000 --- a/public_html/2022/newcms/pdf/mpdfi/filters/FilterASCII85.php +++ /dev/null @@ -1,98 +0,0 @@ - ORD_u) { - $this->error('Illegal character in ASCII85Decode.'); - } - - $chn[$state++] = $ch - ORD_exclmark; - - if ($state == 5) { - $state = 0; - $r = 0; - for ($j = 0; $j < 5; ++$j) - $r = $r * 85 + $chn[$j]; - $out .= chr($r >> 24); - $out .= chr($r >> 16); - $out .= chr($r >> 8); - $out .= chr($r); - } - } - $r = 0; - - if ($state == 1) - $this->error('Illegal length in ASCII85Decode.'); - if ($state == 2) { - $r = $chn[0] * 85 * 85 * 85 * 85 + ($chn[1]+1) * 85 * 85 * 85; - $out .= chr($r >> 24); - } - else if ($state == 3) { - $r = $chn[0] * 85 * 85 * 85 * 85 + $chn[1] * 85 * 85 * 85 + ($chn[2]+1) * 85 * 85; - $out .= chr($r >> 24); - $out .= chr($r >> 16); - } - else if ($state == 4) { - $r = $chn[0] * 85 * 85 * 85 * 85 + $chn[1] * 85 * 85 * 85 + $chn[2] * 85 * 85 + ($chn[3]+1) * 85 ; - $out .= chr($r >> 24); - $out .= chr($r >> 16); - $out .= chr($r >> 8); - } - - return $out; - } - - function encode($in) { - $this->error("ASCII85 encoding not implemented."); - } -} \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/mpdfi/filters/FilterLZW.php b/public_html/2022/newcms/pdf/mpdfi/filters/FilterLZW.php deleted file mode 100644 index 5867603..0000000 --- a/public_html/2022/newcms/pdf/mpdfi/filters/FilterLZW.php +++ /dev/null @@ -1,154 +0,0 @@ -error('LZW flavour not supported.'); - } - - $this->initsTable(); - - $this->data = $data; - $this->dataLength = strlen($data); - - // Initialize pointers - $this->bytePointer = 0; - $this->bitPointer = 0; - - $this->nextData = 0; - $this->nextBits = 0; - - $oldCode = 0; - - $string = ''; - $uncompData = ''; - - while (($code = $this->getNextCode()) != 257) { - if ($code == 256) { - $this->initsTable(); - $code = $this->getNextCode(); - - if ($code == 257) { - break; - } - - $uncompData .= $this->sTable[$code]; - $oldCode = $code; - - } else { - - if ($code < $this->tIdx) { - $string = $this->sTable[$code]; - $uncompData .= $string; - - $this->addStringToTable($this->sTable[$oldCode], $string[0]); - $oldCode = $code; - } else { - $string = $this->sTable[$oldCode]; - $string = $string.$string[0]; - $uncompData .= $string; - - $this->addStringToTable($string); - $oldCode = $code; - } - } - } - - return $uncompData; - } - - - /** - * Initialize the string table. - */ - function initsTable() { - $this->sTable = array(); - - for ($i = 0; $i < 256; $i++) - $this->sTable[$i] = chr($i); - - $this->tIdx = 258; - $this->bitsToGet = 9; - } - - /** - * Add a new string to the string table. - */ - function addStringToTable ($oldString, $newString='') { - $string = $oldString.$newString; - - // Add this new String to the table - $this->sTable[$this->tIdx++] = $string; - - if ($this->tIdx == 511) { - $this->bitsToGet = 10; - } else if ($this->tIdx == 1023) { - $this->bitsToGet = 11; - } else if ($this->tIdx == 2047) { - $this->bitsToGet = 12; - } - } - - // Returns the next 9, 10, 11 or 12 bits - function getNextCode() { - if ($this->bytePointer == $this->dataLength) { - return 257; - } - - $this->nextData = ($this->nextData << 8) | (ord($this->data[$this->bytePointer++]) & 0xff); - $this->nextBits += 8; - - if ($this->nextBits < $this->bitsToGet) { - $this->nextData = ($this->nextData << 8) | (ord($this->data[$this->bytePointer++]) & 0xff); - $this->nextBits += 8; - } - - $code = ($this->nextData >> ($this->nextBits - $this->bitsToGet)) & $this->andTable[$this->bitsToGet-9]; - $this->nextBits -= $this->bitsToGet; - - return $code; - } - - function encode($in) { - $this->error("LZW encoding not implemented."); - } -} \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/mpdfi/fpdi_pdf_parser.php b/public_html/2022/newcms/pdf/mpdfi/fpdi_pdf_parser.php deleted file mode 100644 index 4267831..0000000 --- a/public_html/2022/newcms/pdf/mpdfi/fpdi_pdf_parser.php +++ /dev/null @@ -1,363 +0,0 @@ -fpdi =& $fpdi; - $this->filename = $filename; - - parent::pdf_parser($filename); - if ($this->success == false) { return false; } - - // resolve Pages-Dictonary - $pages = $this->pdf_resolve_object($this->c, $this->root[1][1]['/Pages']); - if ($this->success == false) { return false; } - - // Read pages - $this->read_pages($this->c, $pages, $this->pages); - if ($this->success == false) { return false; } - - // count pages; - $this->page_count = count($this->pages); - } - - - /** - * Get pagecount from sourcefile - * - * @return int - */ - function getPageCount() { - return $this->page_count; - } - - - /** - * Set pageno - * - * @param int $pageno Pagenumber to use - */ - function setPageno($pageno) { - $pageno = ((int) $pageno) - 1; - - if ($pageno < 0 || $pageno >= $this->getPageCount()) { - $this->fpdi->error("Pagenumber is wrong!"); - } - - $this->pageno = $pageno; - } - - /** - * Get page-resources from current page - * - * @return array - */ - function getPageResources() { - return $this->_getPageResources($this->pages[$this->pageno]); - } - - /** - * Get page-resources from /Page - * - * @param array $obj Array of pdf-data - */ - function _getPageResources ($obj) { // $obj = /Page - $obj = $this->pdf_resolve_object($this->c, $obj); - - // If the current object has a resources - // dictionary associated with it, we use - // it. Otherwise, we move back to its - // parent object. - if (isset ($obj[1][1]['/Resources'])) { - $res = $this->pdf_resolve_object($this->c, $obj[1][1]['/Resources']); - if ($res[0] == PDF_TYPE_OBJECT) - return $res[1]; - return $res; - } else { - if (!isset ($obj[1][1]['/Parent'])) { - return false; - } else { - $res = $this->_getPageResources($obj[1][1]['/Parent']); - if ($res[0] == PDF_TYPE_OBJECT) - return $res[1]; - return $res; - } - } - } - - - /** - * Get content of current page - * - * If more /Contents is an array, the streams are concated - * - * @return string - */ - function getContent() { - $buffer = ""; - - if (isset($this->pages[$this->pageno][1][1]['/Contents'])) { - $contents = $this->_getPageContent($this->pages[$this->pageno][1][1]['/Contents']); - foreach($contents AS $tmp_content) { - $buffer .= $this->_rebuildContentStream($tmp_content).' '; - } - } - - return $buffer; - } - - - /** - * Resolve all content-objects - * - * @param array $content_ref - * @return array - */ - function _getPageContent($content_ref) { - $contents = array(); - - if ($content_ref[0] == PDF_TYPE_OBJREF) { - $content = $this->pdf_resolve_object($this->c, $content_ref); - if ($content[1][0] == PDF_TYPE_ARRAY) { - $contents = $this->_getPageContent($content[1]); - } else { - $contents[] = $content; - } - } else if ($content_ref[0] == PDF_TYPE_ARRAY) { - foreach ($content_ref[1] AS $tmp_content_ref) { - $contents = array_merge($contents,$this->_getPageContent($tmp_content_ref)); - } - } - - return $contents; - } - - - /** - * Rebuild content-streams - * - * @param array $obj - * @return string - */ - function _rebuildContentStream($obj) { - $filters = array(); - - if (isset($obj[1][1]['/Filter'])) { - $_filter = $obj[1][1]['/Filter']; - - if ($_filter[0] == PDF_TYPE_TOKEN) { - $filters[] = $_filter; - } else if ($_filter[0] == PDF_TYPE_ARRAY) { - $filters = $_filter[1]; - } - } - - $stream = $obj[2][1]; - - foreach ($filters AS $_filter) { - switch ($_filter[1]) { - case "/FlateDecode": - if (function_exists('gzuncompress')) { - $stream = (strlen($stream) > 0) ? @gzuncompress($stream) : ''; - } else { - $this->fpdi->error(sprintf("To handle %s filter, please compile php with zlib support.",$_filter[1])); - } - if ($stream === false) { - $this->fpdi->error("Error while decompressing stream."); - } - break; - // mPDF 4.2.003 - case '/LZWDecode': - include_once(_MPDF_PATH.'mpdfi/filters/FilterLZW.php'); - // mPDF 5.0 Removed pass by reference =& - $decoder = new FilterLZW(); - $stream = $decoder->decode($stream); - break; - case '/ASCII85Decode': - include_once(_MPDF_PATH.'mpdfi/filters/FilterASCII85.php'); - // mPDF 5.0 Removed pass by reference =& - $decoder = new FilterASCII85(); - $stream = $decoder->decode($stream); - break; - case null: - $stream = $stream; - break; - default: - $this->fpdi->error(sprintf("Unsupported Filter: %s",$_filter[1])); - } - } - - return $stream; - } - - - /** - * Get a Box from a page - * Arrayformat is same as used by fpdf_tpl - * - * @param array $page a /Page - * @param string $box_index Type of Box @see $availableBoxes - * @return array - */ - function getPageBox($page, $box_index) { - $page = $this->pdf_resolve_object($this->c,$page); - $box = null; - if (isset($page[1][1][$box_index])) - $box =& $page[1][1][$box_index]; - - if (!is_null($box) && $box[0] == PDF_TYPE_OBJREF) { - $tmp_box = $this->pdf_resolve_object($this->c,$box); - $box = $tmp_box[1]; - } - - if (!is_null($box) && $box[0] == PDF_TYPE_ARRAY) { - $b =& $box[1]; - return array("x" => $b[0][1]/_MPDFK, - "y" => $b[1][1]/_MPDFK, - "w" => abs($b[0][1]-$b[2][1])/_MPDFK, - "h" => abs($b[1][1]-$b[3][1])/_MPDFK); // mPDF 5.3.90 - } else if (!isset ($page[1][1]['/Parent'])) { - return false; - } else { - return $this->getPageBox($this->pdf_resolve_object($this->c, $page[1][1]['/Parent']), $box_index); - } - } - - function getPageBoxes($pageno) { - return $this->_getPageBoxes($this->pages[$pageno-1]); - } - - /** - * Get all Boxes from /Page - * - * @param array a /Page - * @return array - */ - function _getPageBoxes($page) { - $boxes = array(); - - foreach($this->availableBoxes AS $box) { - if ($_box = $this->getPageBox($page,$box)) { - $boxes[$box] = $_box; - } - } - - return $boxes; - } - - function getPageRotation($pageno) { - return $this->_getPageRotation($this->pages[$pageno-1]); - } - - function _getPageRotation ($obj) { // $obj = /Page - $obj = $this->pdf_resolve_object($this->c, $obj); - if (isset ($obj[1][1]['/Rotate'])) { - $res = $this->pdf_resolve_object($this->c, $obj[1][1]['/Rotate']); - if ($res[0] == PDF_TYPE_OBJECT) - return $res[1]; - return $res; - } else { - if (!isset ($obj[1][1]['/Parent'])) { - return false; - } else { - $res = $this->_getPageRotation($obj[1][1]['/Parent']); - if ($res[0] == PDF_TYPE_OBJECT) - return $res[1]; - return $res; - } - } - } - - /** - * Read all /Page(es) - * - * @param object pdf_context - * @param array /Pages - * @param array the result-array - */ - function read_pages (&$c, &$pages, &$result) { - // Get the kids dictionary - $kids = $this->pdf_resolve_object ($c, $pages[1][1]['/Kids']); - - if (!is_array($kids)) { - // mPDF 4.0 - $this->success = false; - $this->errormsg = sprintf("Cannot find /Kids in current /Page-Dictionary"); - return false; - } - foreach ($kids[1] as $v) { - $pg = $this->pdf_resolve_object ($c, $v); - if ($pg[1][1]['/Type'][1] === '/Pages') { - // If one of the kids is an embedded - // /Pages array, resolve it as well. - $this->read_pages ($c, $pg, $result); - } else { - $result[] = $pg; - } - } - } - - - - -} - -?> diff --git a/public_html/2022/newcms/pdf/mpdfi/pdf_context.php b/public_html/2022/newcms/pdf/mpdfi/pdf_context.php deleted file mode 100644 index f2abb0e..0000000 --- a/public_html/2022/newcms/pdf/mpdfi/pdf_context.php +++ /dev/null @@ -1,78 +0,0 @@ -file = $f; - $this->reset(); - } - - // Optionally move the file - // pointer to a new location - // and reset the buffered data - - function reset($pos = null, $l = 100) { - if (!is_null ($pos)) { - fseek ($this->file, $pos); - } - - $this->buffer = $l > 0 ? fread($this->file, $l) : ''; - $this->offset = 0; - $this->length = strlen($this->buffer); - $this->stack = array(); - } - - // Make sure that there is at least one - // character beyond the current offset in - // the buffer to prevent the tokenizer - // from attempting to access data that does - // not exist - - function ensure_content() { - if ($this->offset >= $this->length - 1) { - return $this->increase_length(); - } else { - return true; - } - } - - // Forcefully read more data into the buffer - - function increase_length($l=100) { - if (feof($this->file)) { - return false; - } else { - $this->buffer .= fread($this->file, $l); - $this->length = strlen($this->buffer); - return true; - } - } - -} -?> diff --git a/public_html/2022/newcms/pdf/mpdfi/pdf_parser.php b/public_html/2022/newcms/pdf/mpdfi/pdf_parser.php deleted file mode 100644 index c820657..0000000 --- a/public_html/2022/newcms/pdf/mpdfi/pdf_parser.php +++ /dev/null @@ -1,690 +0,0 @@ -filename = $filename; - // mPDF 4.0 - $this->success = true; - - $this->f = @fopen($this->filename, "rb"); - - if (!$this->f) { - $this->success = false; - $this->errormsg = sprintf("Cannot open %s !", $filename); - return false; - } - // mPDF 5.0 Removed pass by reference =& - $this->c = new pdf_context($this->f); - // Read xref-Data - $offset = $this->pdf_find_xref(); - if ($offset===false) { - $this->success = false; - $this->errormsg = sprintf("Cannot open %s !", $filename); - return false; - } - $this->pdf_read_xref($this->xref, $offset); - if ($this->success == false) { return false; } - - // Check for Encryption - $this->getEncryption(); - if ($this->success == false) { return false; } - - // Read root - $this->pdf_read_root(); - if ($this->success == false) { return false; } - } - - /** - * Close the opened file - */ - function closeFile() { - if (isset($this->f)) { - fclose($this->f); - unset($this->f); - } - } - - /** - * Print Error and die - * - * @param string $msg Error-Message - */ - function error($msg) { - die("PDF-Parser Error: ".$msg); - } - - /** - * Check Trailer for Encryption - */ - function getEncryption() { - if (isset($this->xref['trailer'][1]['/Encrypt'])) { - // mPDF 4.0 - $this->success = false; - $this->errormsg = sprintf("File is encrypted!"); - return false; - } - } - - /** - * Find/Return /Root - * - * @return array - */ - function pdf_find_root() { - if ($this->xref['trailer'][1]['/Root'][0] != PDF_TYPE_OBJREF) { - // mPDF 4.0 - $this->success = false; - $this->errormsg = sprintf("Wrong Type of Root-Element! Must be an indirect reference"); - return false; - } - return $this->xref['trailer'][1]['/Root']; - } - - /** - * Read the /Root - */ - function pdf_read_root() { - // read root - $root = $this->pdf_find_root(); - if ($root ===false) { - $this->success = false; - return false; - } - $this->root = $this->pdf_resolve_object($this->c, $root); - } - - /** - * Find the xref-Table - */ - function pdf_find_xref() { - fseek ($this->f, -min(filesize($this->filename),1500), SEEK_END); - $data = fread($this->f, 1500); - - $pos = strlen($data) - strpos(strrev($data), strrev('startxref')); - $data = substr($data, $pos); - - if (!preg_match('/\s*(\d+).*$/s', $data, $matches)) { - // mPDF 4.0 - $this->success = false; - $this->errormsg = sprintf("Unable to find pointer to xref table"); - return false; - } - - return (int) $matches[1]; - } - - /** - * Read xref-table - * - * @param array $result Array of xref-table - * @param integer $offset of xref-table - * @param integer $start start-position in xref-table - * @param integer $end end-position in xref-table - */ - function pdf_read_xref(&$result, $offset, $start = null, $end = null) { - if (is_null ($start) || is_null ($end)) { - fseek($this->f, $o_pos = $offset); - $data = trim(fgets($this->f,1024)); - - if (strlen($data) == 0) - $data = trim(fgets($this->f,1024)); - - if ($data !== 'xref') { - fseek($this->f, $o_pos); - $data = trim(_fgets($this->f, true)); - if ($data !== 'xref') { - if (preg_match('/(.*xref)(.*)/m', $data, $m)) { // xref 0 128 - in one line - fseek($this->f, $o_pos+strlen($m[1])); - } elseif (preg_match('/(x|r|e|f)+/', $data, $m)) { // correct invalid xref-pointer - $tmpOffset = $offset-4+strlen($m[0]); - $this->pdf_read_xref($result, $tmpOffset, $start, $end); - return; - } else { - // mPDF 4.0 - $this->success = false; - $this->errormsg = sprintf("Unable to find xref table - Maybe a Problem with 'auto_detect_line_endings'"); - return; - } - } - } - - $o_pos = ftell($this->f); - $data = explode(' ', trim(fgets($this->f,1024))); - if (count($data) != 2) { - fseek($this->f, $o_pos); - $data = explode(' ', trim(_fgets($this->f, true))); - - if (count($data) != 2) { - if (count($data) > 2) { // no lineending - $n_pos = $o_pos+strlen($data[0])+strlen($data[1])+2; - fseek($this->f, $n_pos); - } else { - // mPDF 4.0 - $this->success = false; - $this->errormsg = sprintf("Unexpected header in xref table"); - return; - } - } - } - $start = $data[0]; - $end = $start + $data[1]; - } - - if (!isset($result['xref_location'])) { - $result['xref_location'] = $offset; - } - - if (!isset($result['max_object']) || $end > $result['max_object']) { - $result['max_object'] = $end; - } - - for (; $start < $end; $start++) { - $data = ltrim(fread($this->f, 20)); // Spezifications says: 20 bytes including newlines - $offset = substr($data, 0, 10); - $generation = substr($data, 11, 5); - - if (!isset ($result['xref'][$start][(int) $generation])) { - $result['xref'][$start][(int) $generation] = (int) $offset; - } - } - - $o_pos = ftell($this->f); - $data = fgets($this->f,1024); - if (strlen(trim($data)) == 0) - $data = fgets($this->f, 1024); - - if (preg_match("/trailer/",$data)) { - if (preg_match("/(.*trailer[ \n\r]*)/",$data,$m)) { - fseek($this->f, $o_pos+strlen($m[1])); - } - - // mPDF 5.0 Removed pass by reference =& - $c = new pdf_context($this->f); - $trailer = $this->pdf_read_value($c); - - if (isset($trailer[1]['/Prev'])) { - $this->pdf_read_xref($result, $trailer[1]['/Prev'][1]); - $result['trailer'][1] = array_merge($result['trailer'][1], $trailer[1]); - } else { - $result['trailer'] = $trailer; - } - } else { - $data = explode(' ', trim($data)); - - if (count($data) != 2) { - fseek($this->f, $o_pos); - $data = explode(' ', trim (_fgets ($this->f, true))); - - if (count($data) != 2) { - // mPDF 4.0 - $this->success = false; - $this->errormsg = sprintf("Unexpected data in xref table"); - return; - } - } - - $this->pdf_read_xref($result, null, (int) $data[0], (int) $data[0] + (int) $data[1]); - } - } - - - /** - * Reads an Value - * - * @param object $c pdf_context - * @param string $token a Token - * @return mixed - */ - function pdf_read_value(&$c, $token = null) { - if (is_null($token)) { - $token = $this->pdf_read_token($c); - } - - if ($token === false) { - return false; - } - - switch ($token) { - case '<': - // This is a hex string. - // Read the value, then the terminator - - $pos = $c->offset; - - while(1) { - - $match = strpos ($c->buffer, '>', $pos); - - // If you can't find it, try - // reading more data from the stream - - if ($match === false) { - if (!$c->increase_length()) { - return false; - } else { - continue; - } - } - - $result = substr ($c->buffer, $c->offset, $match - $c->offset); - $c->offset = $match+1; - - return array (PDF_TYPE_HEX, $result); - } - - break; - case '<<': - // This is a dictionary. - - $result = array(); - - // Recurse into this function until we reach - // the end of the dictionary. - while (($key = $this->pdf_read_token($c)) !== '>>') { - if ($key === false) { - return false; - } - - if (($value = $this->pdf_read_value($c)) === false) { - return false; - } - $result[$key] = $value; - } - - return array (PDF_TYPE_DICTIONARY, $result); - - case '[': - // This is an array. - - $result = array(); - - // Recurse into this function until we reach - // the end of the array. - while (($token = $this->pdf_read_token($c)) !== ']') { - if ($token === false) { - return false; - } - - if (($value = $this->pdf_read_value($c, $token)) === false) { - return false; - } - - $result[] = $value; - } - - return array (PDF_TYPE_ARRAY, $result); - - case '(' : - // This is a string - - $pos = $c->offset; - - while(1) { - - // Start by finding the next closed - // parenthesis - - $match = strpos ($c->buffer, ')', $pos); - - // If you can't find it, try - // reading more data from the stream - - if ($match === false) { - if (!$c->increase_length()) { - return false; - } else { - continue; - } - } - - // Make sure that there is no backslash - // before the parenthesis. If there is, - // move on. Otherwise, return the string. - $esc = preg_match('/([\\\\]+)$/', $tmpresult = substr($c->buffer, $c->offset, $match - $c->offset), $m); - - if ($esc === 0 || strlen($m[1]) % 2 == 0) { - $result = $tmpresult; - $c->offset = $match + 1; - return array (PDF_TYPE_STRING, $result); - } else { - $pos = $match + 1; - - if ($pos > $c->offset + $c->length) { - $c->increase_length(); - } - } - } - - case "stream": - $o_pos = ftell($c->file)-strlen($c->buffer); - $o_offset = $c->offset; - - $c->reset($startpos = $o_pos + $o_offset); - - $e = 0; // ensure line breaks in front of the stream - if ($c->buffer[0] == chr(10) || $c->buffer[0] == chr(13)) - $e++; - if ($c->buffer[1] == chr(10) && $c->buffer[0] != chr(10)) - $e++; - - if ($this->actual_obj[1][1]['/Length'][0] == PDF_TYPE_OBJREF) { - // mPDF 5.0 Removed pass by reference =& - $tmp_c = new pdf_context($this->f); - $tmp_length = $this->pdf_resolve_object($tmp_c,$this->actual_obj[1][1]['/Length']); - $length = $tmp_length[1][1]; - } else { - $length = $this->actual_obj[1][1]['/Length'][1]; - } - - if ($length > 0) { - $c->reset($startpos+$e,$length); - $v = $c->buffer; - } else { - $v = ''; - } - $c->reset($startpos+$e+$length+9); // 9 = strlen("endstream") - - return array(PDF_TYPE_STREAM, $v); - - default : - if (is_numeric ($token)) { - // A numeric token. Make sure that - // it is not part of something else. - if (($tok2 = $this->pdf_read_token ($c)) !== false) { - if (is_numeric ($tok2)) { - - // Two numeric tokens in a row. - // In this case, we're probably in - // front of either an object reference - // or an object specification. - // Determine the case and return the data - if (($tok3 = $this->pdf_read_token ($c)) !== false) { - switch ($tok3) { - case 'obj' : - return array (PDF_TYPE_OBJDEC, (int) $token, (int) $tok2); - case 'R' : - return array (PDF_TYPE_OBJREF, (int) $token, (int) $tok2); - } - // If we get to this point, that numeric value up - // there was just a numeric value. Push the extra - // tokens back into the stack and return the value. - array_push ($c->stack, $tok3); - } - } - - array_push ($c->stack, $tok2); - } - - return array (PDF_TYPE_NUMERIC, $token); - } else { - - // Just a token. Return it. - return array (PDF_TYPE_TOKEN, $token); - } - - } - } - - /** - * Resolve an object - * - * @param object $c pdf_context - * @param array $obj_spec The object-data - * @param boolean $encapsulate Must set to true, cause the parsing and fpdi use this method only without this para - */ - function pdf_resolve_object(&$c, $obj_spec, $encapsulate = true) { - // Exit if we get invalid data - if (!is_array($obj_spec)) { - return false; - } - - if ($obj_spec[0] == PDF_TYPE_OBJREF) { - - // This is a reference, resolve it - if (isset($this->xref['xref'][$obj_spec[1]][$obj_spec[2]])) { - - // Save current file position - // This is needed if you want to resolve - // references while you're reading another object - // (e.g.: if you need to determine the length - // of a stream) - - $old_pos = ftell($c->file); - - // Reposition the file pointer and - // load the object header. - - $c->reset($this->xref['xref'][$obj_spec[1]][$obj_spec[2]]); - - $header = $this->pdf_read_value($c,null,true); - - if ($header[0] != PDF_TYPE_OBJDEC || $header[1] != $obj_spec[1] || $header[2] != $obj_spec[2]) { - // mPDF 4.0 - $this->success = false; - $this->errormsg = sprintf("Unable to find object ({$obj_spec[1]}, {$obj_spec[2]}) at expected location"); - return false; - } - - // If we're being asked to store all the information - // about the object, we add the object ID and generation - // number for later use - $this->actual_obj =& $result; - if ($encapsulate) { - $result = array ( - PDF_TYPE_OBJECT, - 'obj' => $obj_spec[1], - 'gen' => $obj_spec[2] - ); - } else { - $result = array(); - } - - // Now simply read the object data until - // we encounter an end-of-object marker - while(1) { - $value = $this->pdf_read_value($c); - if ($value === false || count($result) > 4) { - // in this case the parser coudn't find an endobj so we break here - break; - } - - if ($value[0] == PDF_TYPE_TOKEN && $value[1] === 'endobj') { - break; - } - - $result[] = $value; - } - - $c->reset($old_pos); - - if (isset($result[2][0]) && $result[2][0] == PDF_TYPE_STREAM) { - $result[0] = PDF_TYPE_STREAM; - } - - return $result; - } - } else { - return $obj_spec; - } - } - - - - /** - * Reads a token from the file - * - * @param object $c pdf_context - * @return mixed - */ - function pdf_read_token(&$c) - { - // If there is a token available - // on the stack, pop it out and - // return it. - - if (count($c->stack)) { - return array_pop($c->stack); - } - - // Strip away any whitespace - - do { - if (!$c->ensure_content()) { - return false; - } - $c->offset += _strspn($c->buffer, " \n\r\t", $c->offset); - } while ($c->offset >= $c->length - 1); - - // Get the first character in the stream - - $char = $c->buffer[$c->offset++]; - - switch ($char) { - - case '[' : - case ']' : - case '(' : - case ')' : - - // This is either an array or literal string - // delimiter, Return it - - return $char; - - case '<' : - case '>' : - - // This could either be a hex string or - // dictionary delimiter. Determine the - // appropriate case and return the token - - if ($c->buffer[$c->offset] == $char) { - if (!$c->ensure_content()) { - return false; - } - $c->offset++; - return $char . $char; - } else { - return $char; - } - - default : - - // This is "another" type of token (probably - // a dictionary entry or a numeric value) - // Find the end and return it. - - if (!$c->ensure_content()) { - return false; - } - - while(1) { - - // Determine the length of the token - - $pos = _strcspn($c->buffer, " []<>()\r\n\t/", $c->offset); - if ($c->offset + $pos <= $c->length - 1) { - break; - } else { - // If the script reaches this point, - // the token may span beyond the end - // of the current buffer. Therefore, - // we increase the size of the buffer - // and try again--just to be safe. - - $c->increase_length(); - } - } - - $result = substr($c->buffer, $c->offset - 1, $pos + 1); - - $c->offset += $pos; - return $result; - } - } - - -} - -?> diff --git a/public_html/2022/newcms/pdf/patterns/NOTES.txt b/public_html/2022/newcms/pdf/patterns/NOTES.txt deleted file mode 100644 index 7ba83e4..0000000 --- a/public_html/2022/newcms/pdf/patterns/NOTES.txt +++ /dev/null @@ -1,5 +0,0 @@ -Alternative sources of Hyphenation programs or TEX files: - -OpenOffice: http://wiki.services.openoffice.org/wiki/Dictionaries - -Hyphenator4PHP- alternative PHP hyphenator scripts: http://apps.sourceforge.net/trac/hyphenator4php/ \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/patterns/de.php b/public_html/2022/newcms/pdf/patterns/de.php deleted file mode 100644 index 2164340..0000000 --- a/public_html/2022/newcms/pdf/patterns/de.php +++ /dev/null @@ -1,9 +0,0 @@ - \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/patterns/dictionary.txt b/public_html/2022/newcms/pdf/patterns/dictionary.txt deleted file mode 100644 index e9a1bce..0000000 --- a/public_html/2022/newcms/pdf/patterns/dictionary.txt +++ /dev/null @@ -1 +0,0 @@ -dis/es/tab/lish/men/tar/i/an/ism diff --git a/public_html/2022/newcms/pdf/patterns/en.php b/public_html/2022/newcms/pdf/patterns/en.php deleted file mode 100644 index a02b63f..0000000 --- a/public_html/2022/newcms/pdf/patterns/en.php +++ /dev/null @@ -1,10 +0,0 @@ - \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/patterns/es.php b/public_html/2022/newcms/pdf/patterns/es.php deleted file mode 100644 index da8f756..0000000 --- a/public_html/2022/newcms/pdf/patterns/es.php +++ /dev/null @@ -1,11 +0,0 @@ - \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/patterns/fi.php b/public_html/2022/newcms/pdf/patterns/fi.php deleted file mode 100644 index 5be3124..0000000 --- a/public_html/2022/newcms/pdf/patterns/fi.php +++ /dev/null @@ -1,9 +0,0 @@ - \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/patterns/fr.php b/public_html/2022/newcms/pdf/patterns/fr.php deleted file mode 100644 index 335f85b..0000000 --- a/public_html/2022/newcms/pdf/patterns/fr.php +++ /dev/null @@ -1,12 +0,0 @@ - \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/patterns/it.php b/public_html/2022/newcms/pdf/patterns/it.php deleted file mode 100644 index bdda023..0000000 --- a/public_html/2022/newcms/pdf/patterns/it.php +++ /dev/null @@ -1,11 +0,0 @@ - \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/patterns/nl.php b/public_html/2022/newcms/pdf/patterns/nl.php deleted file mode 100644 index 06a342d..0000000 --- a/public_html/2022/newcms/pdf/patterns/nl.php +++ /dev/null @@ -1,11 +0,0 @@ - \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/patterns/pl.php b/public_html/2022/newcms/pdf/patterns/pl.php deleted file mode 100644 index f531105..0000000 --- a/public_html/2022/newcms/pdf/patterns/pl.php +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/public_html/2022/newcms/pdf/patterns/ru.php b/public_html/2022/newcms/pdf/patterns/ru.php deleted file mode 100644 index 6202773..0000000 --- a/public_html/2022/newcms/pdf/patterns/ru.php +++ /dev/null @@ -1,12 +0,0 @@ - \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/patterns/sv.php b/public_html/2022/newcms/pdf/patterns/sv.php deleted file mode 100644 index b01ce72..0000000 --- a/public_html/2022/newcms/pdf/patterns/sv.php +++ /dev/null @@ -1,12 +0,0 @@ - \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/progbar.css b/public_html/2022/newcms/pdf/progbar.css deleted file mode 100644 index 78afc31..0000000 --- a/public_html/2022/newcms/pdf/progbar.css +++ /dev/null @@ -1,66 +0,0 @@ -body { - margin : 0 auto; - width:100%; - font-family: "Verdana"; - color: #40454b; - font-size: 12px; - text-align:center; -} -.main { - width:540px; - margin: 0 auto; - text-align:left; -} -.heading { - font-size:14px; - font-weight:bold; - color:#CC0000; - padding:5px; - margin-left:10px; - border-bottom:solid; - border-bottom-width:1px; - border-bottom-color:#333333; - /* Use this to suppress the horizontal line under the heading */ - /* border-bottom: 0px solid #000000; */ -} -table { - font-family: "Verdana"; - color: #40454b; - font-size: 12px; -} -.demo { - margin : 0 auto; - width:100%; - margin:20px; - /* Use this to suppress all the bars and text */ - /* display: none; */ -} -td { - vertical-align: top; - padding: 0 0.5em 0 0; -} -.code { - font-family: "Courier New", Courier, monospace; - font-size: 10px; -} -.code2 { - font-family: "Courier New", Courier, monospace; - font-size: 11px; font-weight: bold; color: red; -} -.barheading { - color:#006600; - font-weight:bold; -} -.progressBar { - border: 1px solid #000000; - background-color: #EEEEEE; - width: 200px; - font-size: 6px; -} -.innerBar { - background-color:#00CC00; - width: 0%; -} -#box3 { - font-weight: bold; -} diff --git a/public_html/2022/newcms/pdf/tmp/.gitignore b/public_html/2022/newcms/pdf/tmp/.gitignore deleted file mode 100644 index d6b7ef3..0000000 --- a/public_html/2022/newcms/pdf/tmp/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -* -!.gitignore diff --git a/public_html/2022/newcms/pdf/ttfontdata/.gitignore b/public_html/2022/newcms/pdf/ttfontdata/.gitignore deleted file mode 100644 index d6b7ef3..0000000 --- a/public_html/2022/newcms/pdf/ttfontdata/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -* -!.gitignore diff --git a/public_html/2022/newcms/pdf/ttfonts/DejaVuSansCondensed-Bold.ttf b/public_html/2022/newcms/pdf/ttfonts/DejaVuSansCondensed-Bold.ttf deleted file mode 100644 index 36b3060..0000000 Binary files a/public_html/2022/newcms/pdf/ttfonts/DejaVuSansCondensed-Bold.ttf and /dev/null differ diff --git a/public_html/2022/newcms/pdf/ttfonts/DejaVuSansCondensed-BoldOblique.ttf b/public_html/2022/newcms/pdf/ttfonts/DejaVuSansCondensed-BoldOblique.ttf deleted file mode 100644 index 4bb3ae1..0000000 Binary files a/public_html/2022/newcms/pdf/ttfonts/DejaVuSansCondensed-BoldOblique.ttf and /dev/null differ diff --git a/public_html/2022/newcms/pdf/ttfonts/DejaVuSansCondensed-Oblique.ttf b/public_html/2022/newcms/pdf/ttfonts/DejaVuSansCondensed-Oblique.ttf deleted file mode 100644 index 1f680bd..0000000 Binary files a/public_html/2022/newcms/pdf/ttfonts/DejaVuSansCondensed-Oblique.ttf and /dev/null differ diff --git a/public_html/2022/newcms/pdf/ttfonts/DejaVuSansCondensed.ttf b/public_html/2022/newcms/pdf/ttfonts/DejaVuSansCondensed.ttf deleted file mode 100644 index 2b0b7fe..0000000 Binary files a/public_html/2022/newcms/pdf/ttfonts/DejaVuSansCondensed.ttf and /dev/null differ diff --git a/public_html/2022/newcms/pdf/ttfonts/DejaVuSerif-BoldItalic.ttf b/public_html/2022/newcms/pdf/ttfonts/DejaVuSerif-BoldItalic.ttf deleted file mode 100644 index 688c2b7..0000000 Binary files a/public_html/2022/newcms/pdf/ttfonts/DejaVuSerif-BoldItalic.ttf and /dev/null differ diff --git a/public_html/2022/newcms/pdf/ttfonts/DejaVuSerif-Italic.ttf b/public_html/2022/newcms/pdf/ttfonts/DejaVuSerif-Italic.ttf deleted file mode 100644 index b2ed04a..0000000 Binary files a/public_html/2022/newcms/pdf/ttfonts/DejaVuSerif-Italic.ttf and /dev/null differ diff --git a/public_html/2022/newcms/pdf/ttfonts/DejaVuSerifCondensed-Bold.ttf b/public_html/2022/newcms/pdf/ttfonts/DejaVuSerifCondensed-Bold.ttf deleted file mode 100644 index c4b00b7..0000000 Binary files a/public_html/2022/newcms/pdf/ttfonts/DejaVuSerifCondensed-Bold.ttf and /dev/null differ diff --git a/public_html/2022/newcms/pdf/ttfonts/DejaVuSerifCondensed-BoldItalic.ttf b/public_html/2022/newcms/pdf/ttfonts/DejaVuSerifCondensed-BoldItalic.ttf deleted file mode 100644 index 4d4c7a6..0000000 Binary files a/public_html/2022/newcms/pdf/ttfonts/DejaVuSerifCondensed-BoldItalic.ttf and /dev/null differ diff --git a/public_html/2022/newcms/pdf/ttfonts/DejaVuSerifCondensed-Italic.ttf b/public_html/2022/newcms/pdf/ttfonts/DejaVuSerifCondensed-Italic.ttf deleted file mode 100644 index 04bfc35..0000000 Binary files a/public_html/2022/newcms/pdf/ttfonts/DejaVuSerifCondensed-Italic.ttf and /dev/null differ diff --git a/public_html/2022/newcms/pdf/ttfonts/DejaVuSerifCondensed.ttf b/public_html/2022/newcms/pdf/ttfonts/DejaVuSerifCondensed.ttf deleted file mode 100644 index c9935e1..0000000 Binary files a/public_html/2022/newcms/pdf/ttfonts/DejaVuSerifCondensed.ttf and /dev/null differ diff --git a/public_html/2022/newcms/pdf/ttfonts/DejaVuinfo.txt b/public_html/2022/newcms/pdf/ttfonts/DejaVuinfo.txt deleted file mode 100644 index 050adc2..0000000 --- a/public_html/2022/newcms/pdf/ttfonts/DejaVuinfo.txt +++ /dev/null @@ -1,99 +0,0 @@ -Fonts are (c) Bitstream (see below). DejaVu changes are in public domain. -Glyphs imported from Arev fonts are (c) Tavmjong Bah (see below) - -Bitstream Vera Fonts Copyright ------------------------------- - -Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is -a trademark of Bitstream, Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of the fonts accompanying this license ("Fonts") and associated -documentation files (the "Font Software"), to reproduce and distribute the -Font Software, including without limitation the rights to use, copy, merge, -publish, distribute, and/or sell copies of the Font Software, and to permit -persons to whom the Font Software is furnished to do so, subject to the -following conditions: - -The above copyright and trademark notices and this permission notice shall -be included in all copies of one or more of the Font Software typefaces. - -The Font Software may be modified, altered, or added to, and in particular -the designs of glyphs or characters in the Fonts may be modified and -additional glyphs or characters may be added to the Fonts, only if the fonts -are renamed to names not containing either the words "Bitstream" or the word -"Vera". - -This License becomes null and void to the extent applicable to Fonts or Font -Software that has been modified and is distributed under the "Bitstream -Vera" names. - -The Font Software may be sold as part of a larger software package but no -copy of one or more of the Font Software typefaces may be sold by itself. - -THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, -TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME -FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING -ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, -WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF -THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE -FONT SOFTWARE. - -Except as contained in this notice, the names of Gnome, the Gnome -Foundation, and Bitstream Inc., shall not be used in advertising or -otherwise to promote the sale, use or other dealings in this Font Software -without prior written authorization from the Gnome Foundation or Bitstream -Inc., respectively. For further information, contact: fonts at gnome dot -org. - -Arev Fonts Copyright ------------------------------- - -Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved. - -Permission is hereby granted, free of charge, to any person obtaining -a copy of the fonts accompanying this license ("Fonts") and -associated documentation files (the "Font Software"), to reproduce -and distribute the modifications to the Bitstream Vera Font Software, -including without limitation the rights to use, copy, merge, publish, -distribute, and/or sell copies of the Font Software, and to permit -persons to whom the Font Software is furnished to do so, subject to -the following conditions: - -The above copyright and trademark notices and this permission notice -shall be included in all copies of one or more of the Font Software -typefaces. - -The Font Software may be modified, altered, or added to, and in -particular the designs of glyphs or characters in the Fonts may be -modified and additional glyphs or characters may be added to the -Fonts, only if the fonts are renamed to names not containing either -the words "Tavmjong Bah" or the word "Arev". - -This License becomes null and void to the extent applicable to Fonts -or Font Software that has been modified and is distributed under the -"Tavmjong Bah Arev" names. - -The Font Software may be sold as part of a larger software package but -no copy of one or more of the Font Software typefaces may be sold by -itself. - -THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT -OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL -TAVMJONG BAH BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL -DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM -OTHER DEALINGS IN THE FONT SOFTWARE. - -Except as contained in this notice, the name of Tavmjong Bah shall not -be used in advertising or otherwise to promote the sale, use or other -dealings in this Font Software without prior written authorization -from Tavmjong Bah. For further information, contact: tavmjong @ free -. fr. - -$Id: LICENSE 2133 2007-11-28 02:46:28Z lechimp $ diff --git a/public_html/2022/newcms/pdf/ttfonts/GNUFreeFontinfo.txt b/public_html/2022/newcms/pdf/ttfonts/GNUFreeFontinfo.txt deleted file mode 100644 index c9511a6..0000000 --- a/public_html/2022/newcms/pdf/ttfonts/GNUFreeFontinfo.txt +++ /dev/null @@ -1,108 +0,0 @@ --*-text-*- - GNU FreeFont - -The GNU FreeFont project aims to provide a useful set of free scalable -(i.e., OpenType) fonts covering as much as possible of the ISO 10646/Unicode -UCS (Universal Character Set). - -Statement of Purpose --------------------- - -The practical reason for putting glyphs together in a single font face is -to conveniently mix symbols and characters from different writing systems, -without having to switch fonts. - -Coverage --------- - -FreeFont covers the following character sets - -* ISO 8859 parts 1-15 -* CEN MES-3 European Unicode Subset - http://www.evertype.com/standards/iso10646/pdf/cwa13873.pdf -* IBM/Microsoft code pages 437, 850, 852, 1250, 1252 and more -* Microsoft/Adobe Windows Glyph List 4 (WGL4) - http://www.microsoft.com/typography/otspec/WGL4.htm -* KOI8-R and KOI8-RU -* DEC VT100 graphics symbols -* International Phonetic Alphabet -* Arabic, Hebrew, Armenian, Georgian, Ethiopian and Thai alphabets, - including Arabic presentation forms A/B -* mathematical symbols, including the whole TeX repertoire of symbols -* APL symbols - etc. - -Editing -------- - -The free outline font editor, George Williams's FontForge - is used for editing the fonts. - -Design Issues -------------- - -Which font shapes should be made? Historical style terms like Renaissance -or Baroque letterforms cannot be applied beyond Latin/Cyrillic/Greek -scripts to any greater extent than Kufi or Nashki can be applied beyond -Arabic script; "italic" is really only meaningful for Latin letters. - -However, most modern writing systems have typographic formulations for -contrasting uniform and modulated character stroke widths, and have some -history with "oblique", faces. Since the advent of the typewriter, most -have developed a typographic style with uniform-width characters. - -Accordingly, the FreeFont family has one monospaced - FreeMono - and two -proportional faces (one with uniform stroke - FreeSans - and one with -modulated stroke - FreeSerif). - -To make text from different writing systems look good side-by-side, each -FreeFont face is meant to contain characters of similar style and weight. - -Licensing ---------- - -Free UCS scalable fonts is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License as published -by the Free Software Foundation; either version 2 of the License, or -(at your option) any later version. - -The fonts are distributed in the hope that they will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. - -You should have received a copy of the GNU General Public License along -with this program; if not, write to the Free Software Foundation, Inc., -51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - -As a special exception, if you create a document which uses this font, and -embed this font or unaltered portions of this font into the document, this -font does not by itself cause the resulting document to be covered by the -GNU General Public License. This exception does not however invalidate any -other reasons why the document might be covered by the GNU General Public -License. If you modify this font, you may extend this exception to your -version of the font, but you are not obligated to do so. If you do not -wish to do so, delete this exception statement from your version. - - -Files and their suffixes ------------------------- - -The files with .sfd (Spline Font Database) are in FontForge's native format. -Please use these if you plan to modify the font files. - -TrueType fonts for immediate consumption are the files with the .ttf -(TrueType Font) suffix. These are ready to use in Xwindows based -systems using FreeType, on Mac OS, and on older Windows systems. - -OpenType fonts (with suffix .otf) are for use in Windows Vista. -Note that although they can be installed on Linux, but many applications -in Linux still don't support them. - - --------------------------------------------------------------------------- -Primoz Peterlin, -Steve White - -Free UCS scalable fonts: http://savannah.gnu.org/projects/freefont/ -$Id: README,v 1.6 2008/12/25 12:51:41 Stevan_White Exp $ diff --git a/public_html/2022/newcms/pdf/ttfonts/Garuda-Bold.ttf b/public_html/2022/newcms/pdf/ttfonts/Garuda-Bold.ttf deleted file mode 100644 index c2aa87e..0000000 Binary files a/public_html/2022/newcms/pdf/ttfonts/Garuda-Bold.ttf and /dev/null differ diff --git a/public_html/2022/newcms/pdf/ttfonts/Garuda-BoldOblique.ttf b/public_html/2022/newcms/pdf/ttfonts/Garuda-BoldOblique.ttf deleted file mode 100644 index 889be70..0000000 Binary files a/public_html/2022/newcms/pdf/ttfonts/Garuda-BoldOblique.ttf and /dev/null differ diff --git a/public_html/2022/newcms/pdf/ttfonts/Garuda-Oblique.ttf b/public_html/2022/newcms/pdf/ttfonts/Garuda-Oblique.ttf deleted file mode 100644 index 7d12199..0000000 Binary files a/public_html/2022/newcms/pdf/ttfonts/Garuda-Oblique.ttf and /dev/null differ diff --git a/public_html/2022/newcms/pdf/ttfonts/Garuda.ttf b/public_html/2022/newcms/pdf/ttfonts/Garuda.ttf deleted file mode 100644 index b9fcdfd..0000000 Binary files a/public_html/2022/newcms/pdf/ttfonts/Garuda.ttf and /dev/null differ diff --git a/public_html/2022/newcms/pdf/ttfonts/Norasi-Bold.ttf b/public_html/2022/newcms/pdf/ttfonts/Norasi-Bold.ttf deleted file mode 100644 index 6c241fa..0000000 Binary files a/public_html/2022/newcms/pdf/ttfonts/Norasi-Bold.ttf and /dev/null differ diff --git a/public_html/2022/newcms/pdf/ttfonts/Norasi-BoldOblique.ttf b/public_html/2022/newcms/pdf/ttfonts/Norasi-BoldOblique.ttf deleted file mode 100644 index 70d0417..0000000 Binary files a/public_html/2022/newcms/pdf/ttfonts/Norasi-BoldOblique.ttf and /dev/null differ diff --git a/public_html/2022/newcms/pdf/ttfonts/Norasi-Oblique.ttf b/public_html/2022/newcms/pdf/ttfonts/Norasi-Oblique.ttf deleted file mode 100644 index 54e19b0..0000000 Binary files a/public_html/2022/newcms/pdf/ttfonts/Norasi-Oblique.ttf and /dev/null differ diff --git a/public_html/2022/newcms/pdf/ttfonts/Norasi.ttf b/public_html/2022/newcms/pdf/ttfonts/Norasi.ttf deleted file mode 100644 index ec9e549..0000000 Binary files a/public_html/2022/newcms/pdf/ttfonts/Norasi.ttf and /dev/null differ diff --git a/public_html/2022/newcms/pdf/ttfonts/Thai Fonts License.txt b/public_html/2022/newcms/pdf/ttfonts/Thai Fonts License.txt deleted file mode 100644 index b7b5f53..0000000 --- a/public_html/2022/newcms/pdf/ttfonts/Thai Fonts License.txt +++ /dev/null @@ -1,340 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. diff --git a/public_html/2022/newcms/pdf/ttfonts/XB Riyaz.ttf b/public_html/2022/newcms/pdf/ttfonts/XB Riyaz.ttf deleted file mode 100644 index 80e1580..0000000 Binary files a/public_html/2022/newcms/pdf/ttfonts/XB Riyaz.ttf and /dev/null differ diff --git a/public_html/2022/newcms/pdf/ttfonts/XB RiyazBd.ttf b/public_html/2022/newcms/pdf/ttfonts/XB RiyazBd.ttf deleted file mode 100644 index e6cf58f..0000000 Binary files a/public_html/2022/newcms/pdf/ttfonts/XB RiyazBd.ttf and /dev/null differ diff --git a/public_html/2022/newcms/pdf/ttfonts/XB RiyazBdIt.ttf b/public_html/2022/newcms/pdf/ttfonts/XB RiyazBdIt.ttf deleted file mode 100644 index 19fba78..0000000 Binary files a/public_html/2022/newcms/pdf/ttfonts/XB RiyazBdIt.ttf and /dev/null differ diff --git a/public_html/2022/newcms/pdf/ttfonts/XB RiyazIt.ttf b/public_html/2022/newcms/pdf/ttfonts/XB RiyazIt.ttf deleted file mode 100644 index cc9cc3a..0000000 Binary files a/public_html/2022/newcms/pdf/ttfonts/XB RiyazIt.ttf and /dev/null differ diff --git a/public_html/2022/newcms/pdf/ttfonts/XB Zar Bd.ttf b/public_html/2022/newcms/pdf/ttfonts/XB Zar Bd.ttf deleted file mode 100644 index 52a2e38..0000000 Binary files a/public_html/2022/newcms/pdf/ttfonts/XB Zar Bd.ttf and /dev/null differ diff --git a/public_html/2022/newcms/pdf/ttfonts/XB Zar BdIt.ttf b/public_html/2022/newcms/pdf/ttfonts/XB Zar BdIt.ttf deleted file mode 100644 index a7f19d9..0000000 Binary files a/public_html/2022/newcms/pdf/ttfonts/XB Zar BdIt.ttf and /dev/null differ diff --git a/public_html/2022/newcms/pdf/ttfonts/XB Zar It.ttf b/public_html/2022/newcms/pdf/ttfonts/XB Zar It.ttf deleted file mode 100644 index 4365d1d..0000000 Binary files a/public_html/2022/newcms/pdf/ttfonts/XB Zar It.ttf and /dev/null differ diff --git a/public_html/2022/newcms/pdf/ttfonts/XB Zar.ttf b/public_html/2022/newcms/pdf/ttfonts/XB Zar.ttf deleted file mode 100644 index 7a168b6..0000000 Binary files a/public_html/2022/newcms/pdf/ttfonts/XB Zar.ttf and /dev/null differ diff --git a/public_html/2022/newcms/pdf/ttfonts/XW Zar Font Info.txt b/public_html/2022/newcms/pdf/ttfonts/XW Zar Font Info.txt deleted file mode 100644 index d42e454..0000000 --- a/public_html/2022/newcms/pdf/ttfonts/XW Zar Font Info.txt +++ /dev/null @@ -1,92 +0,0 @@ - -This Font Software is licensed under the SIL Open Font License, Version 1.1. -This license is copied below, and is also available with a FAQ at: -http://scripts.sil.org/OFL - - ------------------------------------------------------------ -SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 ------------------------------------------------------------ - -PREAMBLE -The goals of the Open Font License (OFL) are to stimulate worldwide -development of collaborative font projects, to support the font creation -efforts of academic and linguistic communities, and to provide a free and -open framework in which fonts may be shared and improved in partnership -with others. - -The OFL allows the licensed fonts to be used, studied, modified and -redistributed freely as long as they are not sold by themselves. The -fonts, including any derivative works, can be bundled, embedded, -redistributed and/or sold with any software provided that any reserved -names are not used by derivative works. The fonts and derivatives, -however, cannot be released under any other type of license. The -requirement for fonts to remain under this license does not apply -to any document created using the fonts or their derivatives. - -DEFINITIONS -"Font Software" refers to the set of files released by the Copyright -Holder(s) under this license and clearly marked as such. This may -include source files, build scripts and documentation. - -"Reserved Font Name" refers to any names specified as such after the -copyright statement(s). - -"Original Version" refers to the collection of Font Software components as -distributed by the Copyright Holder(s). - -"Modified Version" refers to any derivative made by adding to, deleting, -or substituting -- in part or in whole -- any of the components of the -Original Version, by changing formats or by porting the Font Software to a -new environment. - -"Author" refers to any designer, engineer, programmer, technical -writer or other person who contributed to the Font Software. - -PERMISSION & CONDITIONS -Permission is hereby granted, free of charge, to any person obtaining -a copy of the Font Software, to use, study, copy, merge, embed, modify, -redistribute, and sell modified and unmodified copies of the Font -Software, subject to the following conditions: - -1) Neither the Font Software nor any of its individual components, -in Original or Modified Versions, may be sold by itself. - -2) Original or Modified Versions of the Font Software may be bundled, -redistributed and/or sold with any software, provided that each copy -contains the above copyright notice and this license. These can be -included either as stand-alone text files, human-readable headers or -in the appropriate machine-readable metadata fields within text or -binary files as long as those fields can be easily viewed by the user. - -3) No Modified Version of the Font Software may use the Reserved Font -Name(s) unless explicit written permission is granted by the corresponding -Copyright Holder. This restriction only applies to the primary font name as -presented to the users. - -4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font -Software shall not be used to promote, endorse or advertise any -Modified Version, except to acknowledge the contribution(s) of the -Copyright Holder(s) and the Author(s) or with their explicit written -permission. - -5) The Font Software, modified or unmodified, in part or in whole, -must be distributed entirely under this license, and must not be -distributed under any other license. The requirement for fonts to -remain under this license does not apply to any document created -using the Font Software. - -TERMINATION -This license becomes null and void if any of the above conditions are -not met. - -DISCLAIMER -THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT -OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE -COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL -DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM -OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/public_html/2022/newcms/pdf/ttfonts/ind_bn_1_001.ttf b/public_html/2022/newcms/pdf/ttfonts/ind_bn_1_001.ttf deleted file mode 100644 index 893ab7e..0000000 Binary files a/public_html/2022/newcms/pdf/ttfonts/ind_bn_1_001.ttf and /dev/null differ diff --git a/public_html/2022/newcms/pdf/ttfonts/ind_gu_1_001.ttf b/public_html/2022/newcms/pdf/ttfonts/ind_gu_1_001.ttf deleted file mode 100644 index 20ccb60..0000000 Binary files a/public_html/2022/newcms/pdf/ttfonts/ind_gu_1_001.ttf and /dev/null differ diff --git a/public_html/2022/newcms/pdf/ttfonts/ind_hi_1_001.ttf b/public_html/2022/newcms/pdf/ttfonts/ind_hi_1_001.ttf deleted file mode 100644 index 1f62e32..0000000 Binary files a/public_html/2022/newcms/pdf/ttfonts/ind_hi_1_001.ttf and /dev/null differ diff --git a/public_html/2022/newcms/pdf/ttfonts/ind_kn_1_001.ttf b/public_html/2022/newcms/pdf/ttfonts/ind_kn_1_001.ttf deleted file mode 100644 index 2fd1b1b..0000000 Binary files a/public_html/2022/newcms/pdf/ttfonts/ind_kn_1_001.ttf and /dev/null differ diff --git a/public_html/2022/newcms/pdf/ttfonts/ind_ml_1_001.ttf b/public_html/2022/newcms/pdf/ttfonts/ind_ml_1_001.ttf deleted file mode 100644 index bd78fb3..0000000 Binary files a/public_html/2022/newcms/pdf/ttfonts/ind_ml_1_001.ttf and /dev/null differ diff --git a/public_html/2022/newcms/pdf/ttfonts/ind_or_1_001.ttf b/public_html/2022/newcms/pdf/ttfonts/ind_or_1_001.ttf deleted file mode 100644 index 56bd422..0000000 Binary files a/public_html/2022/newcms/pdf/ttfonts/ind_or_1_001.ttf and /dev/null differ diff --git a/public_html/2022/newcms/pdf/ttfonts/ind_pa_1_001.ttf b/public_html/2022/newcms/pdf/ttfonts/ind_pa_1_001.ttf deleted file mode 100644 index b10436a..0000000 Binary files a/public_html/2022/newcms/pdf/ttfonts/ind_pa_1_001.ttf and /dev/null differ diff --git a/public_html/2022/newcms/pdf/ttfonts/ind_ta_1_001.ttf b/public_html/2022/newcms/pdf/ttfonts/ind_ta_1_001.ttf deleted file mode 100644 index fa18c96..0000000 Binary files a/public_html/2022/newcms/pdf/ttfonts/ind_ta_1_001.ttf and /dev/null differ diff --git a/public_html/2022/newcms/pdf/ttfonts/ind_te_1_001.ttf b/public_html/2022/newcms/pdf/ttfonts/ind_te_1_001.ttf deleted file mode 100644 index ae641e2..0000000 Binary files a/public_html/2022/newcms/pdf/ttfonts/ind_te_1_001.ttf and /dev/null differ diff --git a/public_html/2022/newcms/pdf/ttfonts/ocrb10.ttf b/public_html/2022/newcms/pdf/ttfonts/ocrb10.ttf deleted file mode 100644 index 34980b8..0000000 Binary files a/public_html/2022/newcms/pdf/ttfonts/ocrb10.ttf and /dev/null differ diff --git a/public_html/2022/newcms/pdf/ttfonts/ocrbinfo.txt b/public_html/2022/newcms/pdf/ttfonts/ocrbinfo.txt deleted file mode 100644 index c2dd995..0000000 --- a/public_html/2022/newcms/pdf/ttfonts/ocrbinfo.txt +++ /dev/null @@ -1,60 +0,0 @@ -Mostly-free OCR B - -This font is used in UPC bar code symbols, including the ISBN symbols on -most published books. - -A freely distributable version seems to be sorely needed. Until now, it's -been very difficult to find the font in computer-usable format except by -paying a high fee to a commercial font vendor. Even many serious commercial -publishers have so much trouble getting it right that they just go ahead and -use Helvetica instead, or even (shudder) Arial. Since the OCR B font is -required by an international standard, it seems like it ought to be free. -So here it is. The font in this package is not a "ripped", pirated, or -shadily reverse engineered version; every effort has been made to ensure -that it genuinely derives from free sources and all the creators involved -have actually intended it for free public use. - -Converted by Matthew Skala from Metafont format to Postscript and TrueType -formats, July 28, 2006, using mftrace 1.2.4 by Paul Vojta, which is -available from - http://www.xs4all.nl/~hanwen/mftrace/ -and Autotrace 0.31.1 available from - http://autotrace.sourceforge.net/ - -The Metafont files (not included - see notes below) were coded by Norbert -Schwarz in the 1980s, based on German standards documents. He has attached -a notice, notably not actually claiming any copyright - see the file -"ocrbinfo" - saying that the fonts are "given to free non commercial use", -but commenting that he is only free to grant rights to his own work on the -digitization, because he did not design the original letter forms. He -suggests that there may be other copyright claims attached to the letter -forms themselves, which Schwarz credits as being originally designed by -"Adam Frutiger" [sic], almost certainly a mistake for Adrian Frutiger. My -(Matthew Skala's) understanding of copyright law, at least in the USA and -Canada, is that in fact typefaces per se cannot be subject to copyright -claims, so the software embodiment is the only thing subject to copyright -and Schwarz's release makes it available for whatever "non commercial use" -means. - -To avoid muddying the waters further, any copyright claims by Matthew Skala -on these files are hereby released to the public domain. I'd like for these -fonts to be freely usable even in marginally commercial applications, such -as to generate UPC labels for books that will be sold for profit, but it may -not be within my power to grant that myself because I didn't write the -Metafont files although I did do considerable, and probably copyrightable, -work on the translation to Postscript and TrueType. It was *not* a purely -automated process; try using the tools I used and see how far you get -without human editing! I'd also like for these fonts (the fonts themselves -as opposed to documents made with them) not to be sold, not even indirectly -by those Web sites that advertise "free downloads" but make it difficult to -actually download fonts without paying a fee. - -NOTE: This ZIP archive is a stripped-down version containing just the -essential files for using the main OCR B font on most systems. If you want -the much larger complete package, which contains Metafont sources and several -variant fonts (reverse-video, outline, and slanted), look for a ZIP archive -called ocrb-complete.zip wherever you found this one. - -Matthew Skala -mskala@ansuz.sooke.bc.ca -http://ansuz.sooke.bc.ca/ diff --git a/public_html/2022/newcms/pdf/utils/UnicodeData.txt b/public_html/2022/newcms/pdf/utils/UnicodeData.txt deleted file mode 100644 index 1dc7335..0000000 --- a/public_html/2022/newcms/pdf/utils/UnicodeData.txt +++ /dev/null @@ -1,21488 +0,0 @@ -0000;;Cc;0;BN;;;;;N;NULL;;;; -0001;;Cc;0;BN;;;;;N;START OF HEADING;;;; -0002;;Cc;0;BN;;;;;N;START OF TEXT;;;; -0003;;Cc;0;BN;;;;;N;END OF TEXT;;;; -0004;;Cc;0;BN;;;;;N;END OF TRANSMISSION;;;; -0005;;Cc;0;BN;;;;;N;ENQUIRY;;;; -0006;;Cc;0;BN;;;;;N;ACKNOWLEDGE;;;; -0007;;Cc;0;BN;;;;;N;BELL;;;; -0008;;Cc;0;BN;;;;;N;BACKSPACE;;;; -0009;;Cc;0;S;;;;;N;CHARACTER TABULATION;;;; -000A;;Cc;0;B;;;;;N;LINE FEED (LF);;;; -000B;;Cc;0;S;;;;;N;LINE TABULATION;;;; -000C;;Cc;0;WS;;;;;N;FORM FEED (FF);;;; -000D;;Cc;0;B;;;;;N;CARRIAGE RETURN (CR);;;; -000E;;Cc;0;BN;;;;;N;SHIFT OUT;;;; -000F;;Cc;0;BN;;;;;N;SHIFT IN;;;; -0010;;Cc;0;BN;;;;;N;DATA LINK ESCAPE;;;; -0011;;Cc;0;BN;;;;;N;DEVICE CONTROL ONE;;;; -0012;;Cc;0;BN;;;;;N;DEVICE CONTROL TWO;;;; -0013;;Cc;0;BN;;;;;N;DEVICE CONTROL THREE;;;; -0014;;Cc;0;BN;;;;;N;DEVICE CONTROL FOUR;;;; -0015;;Cc;0;BN;;;;;N;NEGATIVE ACKNOWLEDGE;;;; -0016;;Cc;0;BN;;;;;N;SYNCHRONOUS IDLE;;;; -0017;;Cc;0;BN;;;;;N;END OF TRANSMISSION BLOCK;;;; -0018;;Cc;0;BN;;;;;N;CANCEL;;;; -0019;;Cc;0;BN;;;;;N;END OF MEDIUM;;;; -001A;;Cc;0;BN;;;;;N;SUBSTITUTE;;;; -001B;;Cc;0;BN;;;;;N;ESCAPE;;;; -001C;;Cc;0;B;;;;;N;INFORMATION SEPARATOR FOUR;;;; -001D;;Cc;0;B;;;;;N;INFORMATION SEPARATOR THREE;;;; -001E;;Cc;0;B;;;;;N;INFORMATION SEPARATOR TWO;;;; -001F;;Cc;0;S;;;;;N;INFORMATION SEPARATOR ONE;;;; -0020;SPACE;Zs;0;WS;;;;;N;;;;; -0021;EXCLAMATION MARK;Po;0;ON;;;;;N;;;;; -0022;QUOTATION MARK;Po;0;ON;;;;;N;;;;; -0023;NUMBER SIGN;Po;0;ET;;;;;N;;;;; -0024;DOLLAR SIGN;Sc;0;ET;;;;;N;;;;; -0025;PERCENT SIGN;Po;0;ET;;;;;N;;;;; -0026;AMPERSAND;Po;0;ON;;;;;N;;;;; -0027;APOSTROPHE;Po;0;ON;;;;;N;APOSTROPHE-QUOTE;;;; -0028;LEFT PARENTHESIS;Ps;0;ON;;;;;Y;OPENING PARENTHESIS;;;; -0029;RIGHT PARENTHESIS;Pe;0;ON;;;;;Y;CLOSING PARENTHESIS;;;; -002A;ASTERISK;Po;0;ON;;;;;N;;;;; -002B;PLUS SIGN;Sm;0;ES;;;;;N;;;;; -002C;COMMA;Po;0;CS;;;;;N;;;;; -002D;HYPHEN-MINUS;Pd;0;ES;;;;;N;;;;; -002E;FULL STOP;Po;0;CS;;;;;N;PERIOD;;;; -002F;SOLIDUS;Po;0;CS;;;;;N;SLASH;;;; -0030;DIGIT ZERO;Nd;0;EN;;0;0;0;N;;;;; -0031;DIGIT ONE;Nd;0;EN;;1;1;1;N;;;;; -0032;DIGIT TWO;Nd;0;EN;;2;2;2;N;;;;; -0033;DIGIT THREE;Nd;0;EN;;3;3;3;N;;;;; -0034;DIGIT FOUR;Nd;0;EN;;4;4;4;N;;;;; -0035;DIGIT FIVE;Nd;0;EN;;5;5;5;N;;;;; -0036;DIGIT SIX;Nd;0;EN;;6;6;6;N;;;;; -0037;DIGIT SEVEN;Nd;0;EN;;7;7;7;N;;;;; -0038;DIGIT EIGHT;Nd;0;EN;;8;8;8;N;;;;; -0039;DIGIT NINE;Nd;0;EN;;9;9;9;N;;;;; -003A;COLON;Po;0;CS;;;;;N;;;;; -003B;SEMICOLON;Po;0;ON;;;;;N;;;;; -003C;LESS-THAN SIGN;Sm;0;ON;;;;;Y;;;;; -003D;EQUALS SIGN;Sm;0;ON;;;;;N;;;;; -003E;GREATER-THAN SIGN;Sm;0;ON;;;;;Y;;;;; -003F;QUESTION MARK;Po;0;ON;;;;;N;;;;; -0040;COMMERCIAL AT;Po;0;ON;;;;;N;;;;; -0041;LATIN CAPITAL LETTER A;Lu;0;L;;;;;N;;;;0061; -0042;LATIN CAPITAL LETTER B;Lu;0;L;;;;;N;;;;0062; -0043;LATIN CAPITAL LETTER C;Lu;0;L;;;;;N;;;;0063; -0044;LATIN CAPITAL LETTER D;Lu;0;L;;;;;N;;;;0064; -0045;LATIN CAPITAL LETTER E;Lu;0;L;;;;;N;;;;0065; -0046;LATIN CAPITAL LETTER F;Lu;0;L;;;;;N;;;;0066; -0047;LATIN CAPITAL LETTER G;Lu;0;L;;;;;N;;;;0067; -0048;LATIN CAPITAL LETTER H;Lu;0;L;;;;;N;;;;0068; -0049;LATIN CAPITAL LETTER I;Lu;0;L;;;;;N;;;;0069; -004A;LATIN CAPITAL LETTER J;Lu;0;L;;;;;N;;;;006A; -004B;LATIN CAPITAL LETTER K;Lu;0;L;;;;;N;;;;006B; -004C;LATIN CAPITAL LETTER L;Lu;0;L;;;;;N;;;;006C; -004D;LATIN CAPITAL LETTER M;Lu;0;L;;;;;N;;;;006D; -004E;LATIN CAPITAL LETTER N;Lu;0;L;;;;;N;;;;006E; -004F;LATIN CAPITAL LETTER O;Lu;0;L;;;;;N;;;;006F; -0050;LATIN CAPITAL LETTER P;Lu;0;L;;;;;N;;;;0070; -0051;LATIN CAPITAL LETTER Q;Lu;0;L;;;;;N;;;;0071; -0052;LATIN CAPITAL LETTER R;Lu;0;L;;;;;N;;;;0072; -0053;LATIN CAPITAL LETTER S;Lu;0;L;;;;;N;;;;0073; -0054;LATIN CAPITAL LETTER T;Lu;0;L;;;;;N;;;;0074; -0055;LATIN CAPITAL LETTER U;Lu;0;L;;;;;N;;;;0075; -0056;LATIN CAPITAL LETTER V;Lu;0;L;;;;;N;;;;0076; -0057;LATIN CAPITAL LETTER W;Lu;0;L;;;;;N;;;;0077; -0058;LATIN CAPITAL LETTER X;Lu;0;L;;;;;N;;;;0078; -0059;LATIN CAPITAL LETTER Y;Lu;0;L;;;;;N;;;;0079; -005A;LATIN CAPITAL LETTER Z;Lu;0;L;;;;;N;;;;007A; -005B;LEFT SQUARE BRACKET;Ps;0;ON;;;;;Y;OPENING SQUARE BRACKET;;;; -005C;REVERSE SOLIDUS;Po;0;ON;;;;;N;BACKSLASH;;;; -005D;RIGHT SQUARE BRACKET;Pe;0;ON;;;;;Y;CLOSING SQUARE BRACKET;;;; -005E;CIRCUMFLEX ACCENT;Sk;0;ON;;;;;N;SPACING CIRCUMFLEX;;;; -005F;LOW LINE;Pc;0;ON;;;;;N;SPACING UNDERSCORE;;;; -0060;GRAVE ACCENT;Sk;0;ON;;;;;N;SPACING GRAVE;;;; -0061;LATIN SMALL LETTER A;Ll;0;L;;;;;N;;;0041;;0041 -0062;LATIN SMALL LETTER B;Ll;0;L;;;;;N;;;0042;;0042 -0063;LATIN SMALL LETTER C;Ll;0;L;;;;;N;;;0043;;0043 -0064;LATIN SMALL LETTER D;Ll;0;L;;;;;N;;;0044;;0044 -0065;LATIN SMALL LETTER E;Ll;0;L;;;;;N;;;0045;;0045 -0066;LATIN SMALL LETTER F;Ll;0;L;;;;;N;;;0046;;0046 -0067;LATIN SMALL LETTER G;Ll;0;L;;;;;N;;;0047;;0047 -0068;LATIN SMALL LETTER H;Ll;0;L;;;;;N;;;0048;;0048 -0069;LATIN SMALL LETTER I;Ll;0;L;;;;;N;;;0049;;0049 -006A;LATIN SMALL LETTER J;Ll;0;L;;;;;N;;;004A;;004A -006B;LATIN SMALL LETTER K;Ll;0;L;;;;;N;;;004B;;004B -006C;LATIN SMALL LETTER L;Ll;0;L;;;;;N;;;004C;;004C -006D;LATIN SMALL LETTER M;Ll;0;L;;;;;N;;;004D;;004D -006E;LATIN SMALL LETTER N;Ll;0;L;;;;;N;;;004E;;004E -006F;LATIN SMALL LETTER O;Ll;0;L;;;;;N;;;004F;;004F -0070;LATIN SMALL LETTER P;Ll;0;L;;;;;N;;;0050;;0050 -0071;LATIN SMALL LETTER Q;Ll;0;L;;;;;N;;;0051;;0051 -0072;LATIN SMALL LETTER R;Ll;0;L;;;;;N;;;0052;;0052 -0073;LATIN SMALL LETTER S;Ll;0;L;;;;;N;;;0053;;0053 -0074;LATIN SMALL LETTER T;Ll;0;L;;;;;N;;;0054;;0054 -0075;LATIN SMALL LETTER U;Ll;0;L;;;;;N;;;0055;;0055 -0076;LATIN SMALL LETTER V;Ll;0;L;;;;;N;;;0056;;0056 -0077;LATIN SMALL LETTER W;Ll;0;L;;;;;N;;;0057;;0057 -0078;LATIN SMALL LETTER X;Ll;0;L;;;;;N;;;0058;;0058 -0079;LATIN SMALL LETTER Y;Ll;0;L;;;;;N;;;0059;;0059 -007A;LATIN SMALL LETTER Z;Ll;0;L;;;;;N;;;005A;;005A -007B;LEFT CURLY BRACKET;Ps;0;ON;;;;;Y;OPENING CURLY BRACKET;;;; -007C;VERTICAL LINE;Sm;0;ON;;;;;N;VERTICAL BAR;;;; -007D;RIGHT CURLY BRACKET;Pe;0;ON;;;;;Y;CLOSING CURLY BRACKET;;;; -007E;TILDE;Sm;0;ON;;;;;N;;;;; -007F;;Cc;0;BN;;;;;N;DELETE;;;; -0080;;Cc;0;BN;;;;;N;;;;; -0081;;Cc;0;BN;;;;;N;;;;; -0082;;Cc;0;BN;;;;;N;BREAK PERMITTED HERE;;;; -0083;;Cc;0;BN;;;;;N;NO BREAK HERE;;;; -0084;;Cc;0;BN;;;;;N;;;;; -0085;;Cc;0;B;;;;;N;NEXT LINE (NEL);;;; -0086;;Cc;0;BN;;;;;N;START OF SELECTED AREA;;;; -0087;;Cc;0;BN;;;;;N;END OF SELECTED AREA;;;; -0088;;Cc;0;BN;;;;;N;CHARACTER TABULATION SET;;;; -0089;;Cc;0;BN;;;;;N;CHARACTER TABULATION WITH JUSTIFICATION;;;; -008A;;Cc;0;BN;;;;;N;LINE TABULATION SET;;;; -008B;;Cc;0;BN;;;;;N;PARTIAL LINE FORWARD;;;; -008C;;Cc;0;BN;;;;;N;PARTIAL LINE BACKWARD;;;; -008D;;Cc;0;BN;;;;;N;REVERSE LINE FEED;;;; -008E;;Cc;0;BN;;;;;N;SINGLE SHIFT TWO;;;; -008F;;Cc;0;BN;;;;;N;SINGLE SHIFT THREE;;;; -0090;;Cc;0;BN;;;;;N;DEVICE CONTROL STRING;;;; -0091;;Cc;0;BN;;;;;N;PRIVATE USE ONE;;;; -0092;;Cc;0;BN;;;;;N;PRIVATE USE TWO;;;; -0093;;Cc;0;BN;;;;;N;SET TRANSMIT STATE;;;; -0094;;Cc;0;BN;;;;;N;CANCEL CHARACTER;;;; -0095;;Cc;0;BN;;;;;N;MESSAGE WAITING;;;; -0096;;Cc;0;BN;;;;;N;START OF GUARDED AREA;;;; -0097;;Cc;0;BN;;;;;N;END OF GUARDED AREA;;;; -0098;;Cc;0;BN;;;;;N;START OF STRING;;;; -0099;;Cc;0;BN;;;;;N;;;;; -009A;;Cc;0;BN;;;;;N;SINGLE CHARACTER INTRODUCER;;;; -009B;;Cc;0;BN;;;;;N;CONTROL SEQUENCE INTRODUCER;;;; -009C;;Cc;0;BN;;;;;N;STRING TERMINATOR;;;; -009D;;Cc;0;BN;;;;;N;OPERATING SYSTEM COMMAND;;;; -009E;;Cc;0;BN;;;;;N;PRIVACY MESSAGE;;;; -009F;;Cc;0;BN;;;;;N;APPLICATION PROGRAM COMMAND;;;; -00A0;NO-BREAK SPACE;Zs;0;CS; 0020;;;;N;NON-BREAKING SPACE;;;; -00A1;INVERTED EXCLAMATION MARK;Po;0;ON;;;;;N;;;;; -00A2;CENT SIGN;Sc;0;ET;;;;;N;;;;; -00A3;POUND SIGN;Sc;0;ET;;;;;N;;;;; -00A4;CURRENCY SIGN;Sc;0;ET;;;;;N;;;;; -00A5;YEN SIGN;Sc;0;ET;;;;;N;;;;; -00A6;BROKEN BAR;So;0;ON;;;;;N;BROKEN VERTICAL BAR;;;; -00A7;SECTION SIGN;So;0;ON;;;;;N;;;;; -00A8;DIAERESIS;Sk;0;ON; 0020 0308;;;;N;SPACING DIAERESIS;;;; -00A9;COPYRIGHT SIGN;So;0;ON;;;;;N;;;;; -00AA;FEMININE ORDINAL INDICATOR;Ll;0;L; 0061;;;;N;;;;; -00AB;LEFT-POINTING DOUBLE ANGLE QUOTATION MARK;Pi;0;ON;;;;;Y;LEFT POINTING GUILLEMET;;;; -00AC;NOT SIGN;Sm;0;ON;;;;;N;;;;; -00AD;SOFT HYPHEN;Cf;0;BN;;;;;N;;;;; -00AE;REGISTERED SIGN;So;0;ON;;;;;N;REGISTERED TRADE MARK SIGN;;;; -00AF;MACRON;Sk;0;ON; 0020 0304;;;;N;SPACING MACRON;;;; -00B0;DEGREE SIGN;So;0;ET;;;;;N;;;;; -00B1;PLUS-MINUS SIGN;Sm;0;ET;;;;;N;PLUS-OR-MINUS SIGN;;;; -00B2;SUPERSCRIPT TWO;No;0;EN; 0032;;2;2;N;SUPERSCRIPT DIGIT TWO;;;; -00B3;SUPERSCRIPT THREE;No;0;EN; 0033;;3;3;N;SUPERSCRIPT DIGIT THREE;;;; -00B4;ACUTE ACCENT;Sk;0;ON; 0020 0301;;;;N;SPACING ACUTE;;;; -00B5;MICRO SIGN;Ll;0;L; 03BC;;;;N;;;039C;;039C -00B6;PILCROW SIGN;So;0;ON;;;;;N;PARAGRAPH SIGN;;;; -00B7;MIDDLE DOT;Po;0;ON;;;;;N;;;;; -00B8;CEDILLA;Sk;0;ON; 0020 0327;;;;N;SPACING CEDILLA;;;; -00B9;SUPERSCRIPT ONE;No;0;EN; 0031;;1;1;N;SUPERSCRIPT DIGIT ONE;;;; -00BA;MASCULINE ORDINAL INDICATOR;Ll;0;L; 006F;;;;N;;;;; -00BB;RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK;Pf;0;ON;;;;;Y;RIGHT POINTING GUILLEMET;;;; -00BC;VULGAR FRACTION ONE QUARTER;No;0;ON; 0031 2044 0034;;;1/4;N;FRACTION ONE QUARTER;;;; -00BD;VULGAR FRACTION ONE HALF;No;0;ON; 0031 2044 0032;;;1/2;N;FRACTION ONE HALF;;;; -00BE;VULGAR FRACTION THREE QUARTERS;No;0;ON; 0033 2044 0034;;;3/4;N;FRACTION THREE QUARTERS;;;; -00BF;INVERTED QUESTION MARK;Po;0;ON;;;;;N;;;;; -00C0;LATIN CAPITAL LETTER A WITH GRAVE;Lu;0;L;0041 0300;;;;N;LATIN CAPITAL LETTER A GRAVE;;;00E0; -00C1;LATIN CAPITAL LETTER A WITH ACUTE;Lu;0;L;0041 0301;;;;N;LATIN CAPITAL LETTER A ACUTE;;;00E1; -00C2;LATIN CAPITAL LETTER A WITH CIRCUMFLEX;Lu;0;L;0041 0302;;;;N;LATIN CAPITAL LETTER A CIRCUMFLEX;;;00E2; -00C3;LATIN CAPITAL LETTER A WITH TILDE;Lu;0;L;0041 0303;;;;N;LATIN CAPITAL LETTER A TILDE;;;00E3; -00C4;LATIN CAPITAL LETTER A WITH DIAERESIS;Lu;0;L;0041 0308;;;;N;LATIN CAPITAL LETTER A DIAERESIS;;;00E4; -00C5;LATIN CAPITAL LETTER A WITH RING ABOVE;Lu;0;L;0041 030A;;;;N;LATIN CAPITAL LETTER A RING;;;00E5; -00C6;LATIN CAPITAL LETTER AE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER A E;;;00E6; -00C7;LATIN CAPITAL LETTER C WITH CEDILLA;Lu;0;L;0043 0327;;;;N;LATIN CAPITAL LETTER C CEDILLA;;;00E7; -00C8;LATIN CAPITAL LETTER E WITH GRAVE;Lu;0;L;0045 0300;;;;N;LATIN CAPITAL LETTER E GRAVE;;;00E8; -00C9;LATIN CAPITAL LETTER E WITH ACUTE;Lu;0;L;0045 0301;;;;N;LATIN CAPITAL LETTER E ACUTE;;;00E9; -00CA;LATIN CAPITAL LETTER E WITH CIRCUMFLEX;Lu;0;L;0045 0302;;;;N;LATIN CAPITAL LETTER E CIRCUMFLEX;;;00EA; -00CB;LATIN CAPITAL LETTER E WITH DIAERESIS;Lu;0;L;0045 0308;;;;N;LATIN CAPITAL LETTER E DIAERESIS;;;00EB; -00CC;LATIN CAPITAL LETTER I WITH GRAVE;Lu;0;L;0049 0300;;;;N;LATIN CAPITAL LETTER I GRAVE;;;00EC; -00CD;LATIN CAPITAL LETTER I WITH ACUTE;Lu;0;L;0049 0301;;;;N;LATIN CAPITAL LETTER I ACUTE;;;00ED; -00CE;LATIN CAPITAL LETTER I WITH CIRCUMFLEX;Lu;0;L;0049 0302;;;;N;LATIN CAPITAL LETTER I CIRCUMFLEX;;;00EE; -00CF;LATIN CAPITAL LETTER I WITH DIAERESIS;Lu;0;L;0049 0308;;;;N;LATIN CAPITAL LETTER I DIAERESIS;;;00EF; -00D0;LATIN CAPITAL LETTER ETH;Lu;0;L;;;;;N;;;;00F0; -00D1;LATIN CAPITAL LETTER N WITH TILDE;Lu;0;L;004E 0303;;;;N;LATIN CAPITAL LETTER N TILDE;;;00F1; -00D2;LATIN CAPITAL LETTER O WITH GRAVE;Lu;0;L;004F 0300;;;;N;LATIN CAPITAL LETTER O GRAVE;;;00F2; -00D3;LATIN CAPITAL LETTER O WITH ACUTE;Lu;0;L;004F 0301;;;;N;LATIN CAPITAL LETTER O ACUTE;;;00F3; -00D4;LATIN CAPITAL LETTER O WITH CIRCUMFLEX;Lu;0;L;004F 0302;;;;N;LATIN CAPITAL LETTER O CIRCUMFLEX;;;00F4; -00D5;LATIN CAPITAL LETTER O WITH TILDE;Lu;0;L;004F 0303;;;;N;LATIN CAPITAL LETTER O TILDE;;;00F5; -00D6;LATIN CAPITAL LETTER O WITH DIAERESIS;Lu;0;L;004F 0308;;;;N;LATIN CAPITAL LETTER O DIAERESIS;;;00F6; -00D7;MULTIPLICATION SIGN;Sm;0;ON;;;;;N;;;;; -00D8;LATIN CAPITAL LETTER O WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER O SLASH;;;00F8; -00D9;LATIN CAPITAL LETTER U WITH GRAVE;Lu;0;L;0055 0300;;;;N;LATIN CAPITAL LETTER U GRAVE;;;00F9; -00DA;LATIN CAPITAL LETTER U WITH ACUTE;Lu;0;L;0055 0301;;;;N;LATIN CAPITAL LETTER U ACUTE;;;00FA; -00DB;LATIN CAPITAL LETTER U WITH CIRCUMFLEX;Lu;0;L;0055 0302;;;;N;LATIN CAPITAL LETTER U CIRCUMFLEX;;;00FB; -00DC;LATIN CAPITAL LETTER U WITH DIAERESIS;Lu;0;L;0055 0308;;;;N;LATIN CAPITAL LETTER U DIAERESIS;;;00FC; -00DD;LATIN CAPITAL LETTER Y WITH ACUTE;Lu;0;L;0059 0301;;;;N;LATIN CAPITAL LETTER Y ACUTE;;;00FD; -00DE;LATIN CAPITAL LETTER THORN;Lu;0;L;;;;;N;;;;00FE; -00DF;LATIN SMALL LETTER SHARP S;Ll;0;L;;;;;N;;;;; -00E0;LATIN SMALL LETTER A WITH GRAVE;Ll;0;L;0061 0300;;;;N;LATIN SMALL LETTER A GRAVE;;00C0;;00C0 -00E1;LATIN SMALL LETTER A WITH ACUTE;Ll;0;L;0061 0301;;;;N;LATIN SMALL LETTER A ACUTE;;00C1;;00C1 -00E2;LATIN SMALL LETTER A WITH CIRCUMFLEX;Ll;0;L;0061 0302;;;;N;LATIN SMALL LETTER A CIRCUMFLEX;;00C2;;00C2 -00E3;LATIN SMALL LETTER A WITH TILDE;Ll;0;L;0061 0303;;;;N;LATIN SMALL LETTER A TILDE;;00C3;;00C3 -00E4;LATIN SMALL LETTER A WITH DIAERESIS;Ll;0;L;0061 0308;;;;N;LATIN SMALL LETTER A DIAERESIS;;00C4;;00C4 -00E5;LATIN SMALL LETTER A WITH RING ABOVE;Ll;0;L;0061 030A;;;;N;LATIN SMALL LETTER A RING;;00C5;;00C5 -00E6;LATIN SMALL LETTER AE;Ll;0;L;;;;;N;LATIN SMALL LETTER A E;;00C6;;00C6 -00E7;LATIN SMALL LETTER C WITH CEDILLA;Ll;0;L;0063 0327;;;;N;LATIN SMALL LETTER C CEDILLA;;00C7;;00C7 -00E8;LATIN SMALL LETTER E WITH GRAVE;Ll;0;L;0065 0300;;;;N;LATIN SMALL LETTER E GRAVE;;00C8;;00C8 -00E9;LATIN SMALL LETTER E WITH ACUTE;Ll;0;L;0065 0301;;;;N;LATIN SMALL LETTER E ACUTE;;00C9;;00C9 -00EA;LATIN SMALL LETTER E WITH CIRCUMFLEX;Ll;0;L;0065 0302;;;;N;LATIN SMALL LETTER E CIRCUMFLEX;;00CA;;00CA -00EB;LATIN SMALL LETTER E WITH DIAERESIS;Ll;0;L;0065 0308;;;;N;LATIN SMALL LETTER E DIAERESIS;;00CB;;00CB -00EC;LATIN SMALL LETTER I WITH GRAVE;Ll;0;L;0069 0300;;;;N;LATIN SMALL LETTER I GRAVE;;00CC;;00CC -00ED;LATIN SMALL LETTER I WITH ACUTE;Ll;0;L;0069 0301;;;;N;LATIN SMALL LETTER I ACUTE;;00CD;;00CD -00EE;LATIN SMALL LETTER I WITH CIRCUMFLEX;Ll;0;L;0069 0302;;;;N;LATIN SMALL LETTER I CIRCUMFLEX;;00CE;;00CE -00EF;LATIN SMALL LETTER I WITH DIAERESIS;Ll;0;L;0069 0308;;;;N;LATIN SMALL LETTER I DIAERESIS;;00CF;;00CF -00F0;LATIN SMALL LETTER ETH;Ll;0;L;;;;;N;;;00D0;;00D0 -00F1;LATIN SMALL LETTER N WITH TILDE;Ll;0;L;006E 0303;;;;N;LATIN SMALL LETTER N TILDE;;00D1;;00D1 -00F2;LATIN SMALL LETTER O WITH GRAVE;Ll;0;L;006F 0300;;;;N;LATIN SMALL LETTER O GRAVE;;00D2;;00D2 -00F3;LATIN SMALL LETTER O WITH ACUTE;Ll;0;L;006F 0301;;;;N;LATIN SMALL LETTER O ACUTE;;00D3;;00D3 -00F4;LATIN SMALL LETTER O WITH CIRCUMFLEX;Ll;0;L;006F 0302;;;;N;LATIN SMALL LETTER O CIRCUMFLEX;;00D4;;00D4 -00F5;LATIN SMALL LETTER O WITH TILDE;Ll;0;L;006F 0303;;;;N;LATIN SMALL LETTER O TILDE;;00D5;;00D5 -00F6;LATIN SMALL LETTER O WITH DIAERESIS;Ll;0;L;006F 0308;;;;N;LATIN SMALL LETTER O DIAERESIS;;00D6;;00D6 -00F7;DIVISION SIGN;Sm;0;ON;;;;;N;;;;; -00F8;LATIN SMALL LETTER O WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER O SLASH;;00D8;;00D8 -00F9;LATIN SMALL LETTER U WITH GRAVE;Ll;0;L;0075 0300;;;;N;LATIN SMALL LETTER U GRAVE;;00D9;;00D9 -00FA;LATIN SMALL LETTER U WITH ACUTE;Ll;0;L;0075 0301;;;;N;LATIN SMALL LETTER U ACUTE;;00DA;;00DA -00FB;LATIN SMALL LETTER U WITH CIRCUMFLEX;Ll;0;L;0075 0302;;;;N;LATIN SMALL LETTER U CIRCUMFLEX;;00DB;;00DB -00FC;LATIN SMALL LETTER U WITH DIAERESIS;Ll;0;L;0075 0308;;;;N;LATIN SMALL LETTER U DIAERESIS;;00DC;;00DC -00FD;LATIN SMALL LETTER Y WITH ACUTE;Ll;0;L;0079 0301;;;;N;LATIN SMALL LETTER Y ACUTE;;00DD;;00DD -00FE;LATIN SMALL LETTER THORN;Ll;0;L;;;;;N;;;00DE;;00DE -00FF;LATIN SMALL LETTER Y WITH DIAERESIS;Ll;0;L;0079 0308;;;;N;LATIN SMALL LETTER Y DIAERESIS;;0178;;0178 -0100;LATIN CAPITAL LETTER A WITH MACRON;Lu;0;L;0041 0304;;;;N;LATIN CAPITAL LETTER A MACRON;;;0101; -0101;LATIN SMALL LETTER A WITH MACRON;Ll;0;L;0061 0304;;;;N;LATIN SMALL LETTER A MACRON;;0100;;0100 -0102;LATIN CAPITAL LETTER A WITH BREVE;Lu;0;L;0041 0306;;;;N;LATIN CAPITAL LETTER A BREVE;;;0103; -0103;LATIN SMALL LETTER A WITH BREVE;Ll;0;L;0061 0306;;;;N;LATIN SMALL LETTER A BREVE;;0102;;0102 -0104;LATIN CAPITAL LETTER A WITH OGONEK;Lu;0;L;0041 0328;;;;N;LATIN CAPITAL LETTER A OGONEK;;;0105; -0105;LATIN SMALL LETTER A WITH OGONEK;Ll;0;L;0061 0328;;;;N;LATIN SMALL LETTER A OGONEK;;0104;;0104 -0106;LATIN CAPITAL LETTER C WITH ACUTE;Lu;0;L;0043 0301;;;;N;LATIN CAPITAL LETTER C ACUTE;;;0107; -0107;LATIN SMALL LETTER C WITH ACUTE;Ll;0;L;0063 0301;;;;N;LATIN SMALL LETTER C ACUTE;;0106;;0106 -0108;LATIN CAPITAL LETTER C WITH CIRCUMFLEX;Lu;0;L;0043 0302;;;;N;LATIN CAPITAL LETTER C CIRCUMFLEX;;;0109; -0109;LATIN SMALL LETTER C WITH CIRCUMFLEX;Ll;0;L;0063 0302;;;;N;LATIN SMALL LETTER C CIRCUMFLEX;;0108;;0108 -010A;LATIN CAPITAL LETTER C WITH DOT ABOVE;Lu;0;L;0043 0307;;;;N;LATIN CAPITAL LETTER C DOT;;;010B; -010B;LATIN SMALL LETTER C WITH DOT ABOVE;Ll;0;L;0063 0307;;;;N;LATIN SMALL LETTER C DOT;;010A;;010A -010C;LATIN CAPITAL LETTER C WITH CARON;Lu;0;L;0043 030C;;;;N;LATIN CAPITAL LETTER C HACEK;;;010D; -010D;LATIN SMALL LETTER C WITH CARON;Ll;0;L;0063 030C;;;;N;LATIN SMALL LETTER C HACEK;;010C;;010C -010E;LATIN CAPITAL LETTER D WITH CARON;Lu;0;L;0044 030C;;;;N;LATIN CAPITAL LETTER D HACEK;;;010F; -010F;LATIN SMALL LETTER D WITH CARON;Ll;0;L;0064 030C;;;;N;LATIN SMALL LETTER D HACEK;;010E;;010E -0110;LATIN CAPITAL LETTER D WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER D BAR;;;0111; -0111;LATIN SMALL LETTER D WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER D BAR;;0110;;0110 -0112;LATIN CAPITAL LETTER E WITH MACRON;Lu;0;L;0045 0304;;;;N;LATIN CAPITAL LETTER E MACRON;;;0113; -0113;LATIN SMALL LETTER E WITH MACRON;Ll;0;L;0065 0304;;;;N;LATIN SMALL LETTER E MACRON;;0112;;0112 -0114;LATIN CAPITAL LETTER E WITH BREVE;Lu;0;L;0045 0306;;;;N;LATIN CAPITAL LETTER E BREVE;;;0115; -0115;LATIN SMALL LETTER E WITH BREVE;Ll;0;L;0065 0306;;;;N;LATIN SMALL LETTER E BREVE;;0114;;0114 -0116;LATIN CAPITAL LETTER E WITH DOT ABOVE;Lu;0;L;0045 0307;;;;N;LATIN CAPITAL LETTER E DOT;;;0117; -0117;LATIN SMALL LETTER E WITH DOT ABOVE;Ll;0;L;0065 0307;;;;N;LATIN SMALL LETTER E DOT;;0116;;0116 -0118;LATIN CAPITAL LETTER E WITH OGONEK;Lu;0;L;0045 0328;;;;N;LATIN CAPITAL LETTER E OGONEK;;;0119; -0119;LATIN SMALL LETTER E WITH OGONEK;Ll;0;L;0065 0328;;;;N;LATIN SMALL LETTER E OGONEK;;0118;;0118 -011A;LATIN CAPITAL LETTER E WITH CARON;Lu;0;L;0045 030C;;;;N;LATIN CAPITAL LETTER E HACEK;;;011B; -011B;LATIN SMALL LETTER E WITH CARON;Ll;0;L;0065 030C;;;;N;LATIN SMALL LETTER E HACEK;;011A;;011A -011C;LATIN CAPITAL LETTER G WITH CIRCUMFLEX;Lu;0;L;0047 0302;;;;N;LATIN CAPITAL LETTER G CIRCUMFLEX;;;011D; -011D;LATIN SMALL LETTER G WITH CIRCUMFLEX;Ll;0;L;0067 0302;;;;N;LATIN SMALL LETTER G CIRCUMFLEX;;011C;;011C -011E;LATIN CAPITAL LETTER G WITH BREVE;Lu;0;L;0047 0306;;;;N;LATIN CAPITAL LETTER G BREVE;;;011F; -011F;LATIN SMALL LETTER G WITH BREVE;Ll;0;L;0067 0306;;;;N;LATIN SMALL LETTER G BREVE;;011E;;011E -0120;LATIN CAPITAL LETTER G WITH DOT ABOVE;Lu;0;L;0047 0307;;;;N;LATIN CAPITAL LETTER G DOT;;;0121; -0121;LATIN SMALL LETTER G WITH DOT ABOVE;Ll;0;L;0067 0307;;;;N;LATIN SMALL LETTER G DOT;;0120;;0120 -0122;LATIN CAPITAL LETTER G WITH CEDILLA;Lu;0;L;0047 0327;;;;N;LATIN CAPITAL LETTER G CEDILLA;;;0123; -0123;LATIN SMALL LETTER G WITH CEDILLA;Ll;0;L;0067 0327;;;;N;LATIN SMALL LETTER G CEDILLA;;0122;;0122 -0124;LATIN CAPITAL LETTER H WITH CIRCUMFLEX;Lu;0;L;0048 0302;;;;N;LATIN CAPITAL LETTER H CIRCUMFLEX;;;0125; -0125;LATIN SMALL LETTER H WITH CIRCUMFLEX;Ll;0;L;0068 0302;;;;N;LATIN SMALL LETTER H CIRCUMFLEX;;0124;;0124 -0126;LATIN CAPITAL LETTER H WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER H BAR;;;0127; -0127;LATIN SMALL LETTER H WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER H BAR;;0126;;0126 -0128;LATIN CAPITAL LETTER I WITH TILDE;Lu;0;L;0049 0303;;;;N;LATIN CAPITAL LETTER I TILDE;;;0129; -0129;LATIN SMALL LETTER I WITH TILDE;Ll;0;L;0069 0303;;;;N;LATIN SMALL LETTER I TILDE;;0128;;0128 -012A;LATIN CAPITAL LETTER I WITH MACRON;Lu;0;L;0049 0304;;;;N;LATIN CAPITAL LETTER I MACRON;;;012B; -012B;LATIN SMALL LETTER I WITH MACRON;Ll;0;L;0069 0304;;;;N;LATIN SMALL LETTER I MACRON;;012A;;012A -012C;LATIN CAPITAL LETTER I WITH BREVE;Lu;0;L;0049 0306;;;;N;LATIN CAPITAL LETTER I BREVE;;;012D; -012D;LATIN SMALL LETTER I WITH BREVE;Ll;0;L;0069 0306;;;;N;LATIN SMALL LETTER I BREVE;;012C;;012C -012E;LATIN CAPITAL LETTER I WITH OGONEK;Lu;0;L;0049 0328;;;;N;LATIN CAPITAL LETTER I OGONEK;;;012F; -012F;LATIN SMALL LETTER I WITH OGONEK;Ll;0;L;0069 0328;;;;N;LATIN SMALL LETTER I OGONEK;;012E;;012E -0130;LATIN CAPITAL LETTER I WITH DOT ABOVE;Lu;0;L;0049 0307;;;;N;LATIN CAPITAL LETTER I DOT;;;0069; -0131;LATIN SMALL LETTER DOTLESS I;Ll;0;L;;;;;N;;;0049;;0049 -0132;LATIN CAPITAL LIGATURE IJ;Lu;0;L; 0049 004A;;;;N;LATIN CAPITAL LETTER I J;;;0133; -0133;LATIN SMALL LIGATURE IJ;Ll;0;L; 0069 006A;;;;N;LATIN SMALL LETTER I J;;0132;;0132 -0134;LATIN CAPITAL LETTER J WITH CIRCUMFLEX;Lu;0;L;004A 0302;;;;N;LATIN CAPITAL LETTER J CIRCUMFLEX;;;0135; -0135;LATIN SMALL LETTER J WITH CIRCUMFLEX;Ll;0;L;006A 0302;;;;N;LATIN SMALL LETTER J CIRCUMFLEX;;0134;;0134 -0136;LATIN CAPITAL LETTER K WITH CEDILLA;Lu;0;L;004B 0327;;;;N;LATIN CAPITAL LETTER K CEDILLA;;;0137; -0137;LATIN SMALL LETTER K WITH CEDILLA;Ll;0;L;006B 0327;;;;N;LATIN SMALL LETTER K CEDILLA;;0136;;0136 -0138;LATIN SMALL LETTER KRA;Ll;0;L;;;;;N;;;;; -0139;LATIN CAPITAL LETTER L WITH ACUTE;Lu;0;L;004C 0301;;;;N;LATIN CAPITAL LETTER L ACUTE;;;013A; -013A;LATIN SMALL LETTER L WITH ACUTE;Ll;0;L;006C 0301;;;;N;LATIN SMALL LETTER L ACUTE;;0139;;0139 -013B;LATIN CAPITAL LETTER L WITH CEDILLA;Lu;0;L;004C 0327;;;;N;LATIN CAPITAL LETTER L CEDILLA;;;013C; -013C;LATIN SMALL LETTER L WITH CEDILLA;Ll;0;L;006C 0327;;;;N;LATIN SMALL LETTER L CEDILLA;;013B;;013B -013D;LATIN CAPITAL LETTER L WITH CARON;Lu;0;L;004C 030C;;;;N;LATIN CAPITAL LETTER L HACEK;;;013E; -013E;LATIN SMALL LETTER L WITH CARON;Ll;0;L;006C 030C;;;;N;LATIN SMALL LETTER L HACEK;;013D;;013D -013F;LATIN CAPITAL LETTER L WITH MIDDLE DOT;Lu;0;L; 004C 00B7;;;;N;;;;0140; -0140;LATIN SMALL LETTER L WITH MIDDLE DOT;Ll;0;L; 006C 00B7;;;;N;;;013F;;013F -0141;LATIN CAPITAL LETTER L WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER L SLASH;;;0142; -0142;LATIN SMALL LETTER L WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER L SLASH;;0141;;0141 -0143;LATIN CAPITAL LETTER N WITH ACUTE;Lu;0;L;004E 0301;;;;N;LATIN CAPITAL LETTER N ACUTE;;;0144; -0144;LATIN SMALL LETTER N WITH ACUTE;Ll;0;L;006E 0301;;;;N;LATIN SMALL LETTER N ACUTE;;0143;;0143 -0145;LATIN CAPITAL LETTER N WITH CEDILLA;Lu;0;L;004E 0327;;;;N;LATIN CAPITAL LETTER N CEDILLA;;;0146; -0146;LATIN SMALL LETTER N WITH CEDILLA;Ll;0;L;006E 0327;;;;N;LATIN SMALL LETTER N CEDILLA;;0145;;0145 -0147;LATIN CAPITAL LETTER N WITH CARON;Lu;0;L;004E 030C;;;;N;LATIN CAPITAL LETTER N HACEK;;;0148; -0148;LATIN SMALL LETTER N WITH CARON;Ll;0;L;006E 030C;;;;N;LATIN SMALL LETTER N HACEK;;0147;;0147 -0149;LATIN SMALL LETTER N PRECEDED BY APOSTROPHE;Ll;0;L; 02BC 006E;;;;N;LATIN SMALL LETTER APOSTROPHE N;;;; -014A;LATIN CAPITAL LETTER ENG;Lu;0;L;;;;;N;;;;014B; -014B;LATIN SMALL LETTER ENG;Ll;0;L;;;;;N;;;014A;;014A -014C;LATIN CAPITAL LETTER O WITH MACRON;Lu;0;L;004F 0304;;;;N;LATIN CAPITAL LETTER O MACRON;;;014D; -014D;LATIN SMALL LETTER O WITH MACRON;Ll;0;L;006F 0304;;;;N;LATIN SMALL LETTER O MACRON;;014C;;014C -014E;LATIN CAPITAL LETTER O WITH BREVE;Lu;0;L;004F 0306;;;;N;LATIN CAPITAL LETTER O BREVE;;;014F; -014F;LATIN SMALL LETTER O WITH BREVE;Ll;0;L;006F 0306;;;;N;LATIN SMALL LETTER O BREVE;;014E;;014E -0150;LATIN CAPITAL LETTER O WITH DOUBLE ACUTE;Lu;0;L;004F 030B;;;;N;LATIN CAPITAL LETTER O DOUBLE ACUTE;;;0151; -0151;LATIN SMALL LETTER O WITH DOUBLE ACUTE;Ll;0;L;006F 030B;;;;N;LATIN SMALL LETTER O DOUBLE ACUTE;;0150;;0150 -0152;LATIN CAPITAL LIGATURE OE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER O E;;;0153; -0153;LATIN SMALL LIGATURE OE;Ll;0;L;;;;;N;LATIN SMALL LETTER O E;;0152;;0152 -0154;LATIN CAPITAL LETTER R WITH ACUTE;Lu;0;L;0052 0301;;;;N;LATIN CAPITAL LETTER R ACUTE;;;0155; -0155;LATIN SMALL LETTER R WITH ACUTE;Ll;0;L;0072 0301;;;;N;LATIN SMALL LETTER R ACUTE;;0154;;0154 -0156;LATIN CAPITAL LETTER R WITH CEDILLA;Lu;0;L;0052 0327;;;;N;LATIN CAPITAL LETTER R CEDILLA;;;0157; -0157;LATIN SMALL LETTER R WITH CEDILLA;Ll;0;L;0072 0327;;;;N;LATIN SMALL LETTER R CEDILLA;;0156;;0156 -0158;LATIN CAPITAL LETTER R WITH CARON;Lu;0;L;0052 030C;;;;N;LATIN CAPITAL LETTER R HACEK;;;0159; -0159;LATIN SMALL LETTER R WITH CARON;Ll;0;L;0072 030C;;;;N;LATIN SMALL LETTER R HACEK;;0158;;0158 -015A;LATIN CAPITAL LETTER S WITH ACUTE;Lu;0;L;0053 0301;;;;N;LATIN CAPITAL LETTER S ACUTE;;;015B; -015B;LATIN SMALL LETTER S WITH ACUTE;Ll;0;L;0073 0301;;;;N;LATIN SMALL LETTER S ACUTE;;015A;;015A -015C;LATIN CAPITAL LETTER S WITH CIRCUMFLEX;Lu;0;L;0053 0302;;;;N;LATIN CAPITAL LETTER S CIRCUMFLEX;;;015D; -015D;LATIN SMALL LETTER S WITH CIRCUMFLEX;Ll;0;L;0073 0302;;;;N;LATIN SMALL LETTER S CIRCUMFLEX;;015C;;015C -015E;LATIN CAPITAL LETTER S WITH CEDILLA;Lu;0;L;0053 0327;;;;N;LATIN CAPITAL LETTER S CEDILLA;;;015F; -015F;LATIN SMALL LETTER S WITH CEDILLA;Ll;0;L;0073 0327;;;;N;LATIN SMALL LETTER S CEDILLA;;015E;;015E -0160;LATIN CAPITAL LETTER S WITH CARON;Lu;0;L;0053 030C;;;;N;LATIN CAPITAL LETTER S HACEK;;;0161; -0161;LATIN SMALL LETTER S WITH CARON;Ll;0;L;0073 030C;;;;N;LATIN SMALL LETTER S HACEK;;0160;;0160 -0162;LATIN CAPITAL LETTER T WITH CEDILLA;Lu;0;L;0054 0327;;;;N;LATIN CAPITAL LETTER T CEDILLA;;;0163; -0163;LATIN SMALL LETTER T WITH CEDILLA;Ll;0;L;0074 0327;;;;N;LATIN SMALL LETTER T CEDILLA;;0162;;0162 -0164;LATIN CAPITAL LETTER T WITH CARON;Lu;0;L;0054 030C;;;;N;LATIN CAPITAL LETTER T HACEK;;;0165; -0165;LATIN SMALL LETTER T WITH CARON;Ll;0;L;0074 030C;;;;N;LATIN SMALL LETTER T HACEK;;0164;;0164 -0166;LATIN CAPITAL LETTER T WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER T BAR;;;0167; -0167;LATIN SMALL LETTER T WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER T BAR;;0166;;0166 -0168;LATIN CAPITAL LETTER U WITH TILDE;Lu;0;L;0055 0303;;;;N;LATIN CAPITAL LETTER U TILDE;;;0169; -0169;LATIN SMALL LETTER U WITH TILDE;Ll;0;L;0075 0303;;;;N;LATIN SMALL LETTER U TILDE;;0168;;0168 -016A;LATIN CAPITAL LETTER U WITH MACRON;Lu;0;L;0055 0304;;;;N;LATIN CAPITAL LETTER U MACRON;;;016B; -016B;LATIN SMALL LETTER U WITH MACRON;Ll;0;L;0075 0304;;;;N;LATIN SMALL LETTER U MACRON;;016A;;016A -016C;LATIN CAPITAL LETTER U WITH BREVE;Lu;0;L;0055 0306;;;;N;LATIN CAPITAL LETTER U BREVE;;;016D; -016D;LATIN SMALL LETTER U WITH BREVE;Ll;0;L;0075 0306;;;;N;LATIN SMALL LETTER U BREVE;;016C;;016C -016E;LATIN CAPITAL LETTER U WITH RING ABOVE;Lu;0;L;0055 030A;;;;N;LATIN CAPITAL LETTER U RING;;;016F; -016F;LATIN SMALL LETTER U WITH RING ABOVE;Ll;0;L;0075 030A;;;;N;LATIN SMALL LETTER U RING;;016E;;016E -0170;LATIN CAPITAL LETTER U WITH DOUBLE ACUTE;Lu;0;L;0055 030B;;;;N;LATIN CAPITAL LETTER U DOUBLE ACUTE;;;0171; -0171;LATIN SMALL LETTER U WITH DOUBLE ACUTE;Ll;0;L;0075 030B;;;;N;LATIN SMALL LETTER U DOUBLE ACUTE;;0170;;0170 -0172;LATIN CAPITAL LETTER U WITH OGONEK;Lu;0;L;0055 0328;;;;N;LATIN CAPITAL LETTER U OGONEK;;;0173; -0173;LATIN SMALL LETTER U WITH OGONEK;Ll;0;L;0075 0328;;;;N;LATIN SMALL LETTER U OGONEK;;0172;;0172 -0174;LATIN CAPITAL LETTER W WITH CIRCUMFLEX;Lu;0;L;0057 0302;;;;N;LATIN CAPITAL LETTER W CIRCUMFLEX;;;0175; -0175;LATIN SMALL LETTER W WITH CIRCUMFLEX;Ll;0;L;0077 0302;;;;N;LATIN SMALL LETTER W CIRCUMFLEX;;0174;;0174 -0176;LATIN CAPITAL LETTER Y WITH CIRCUMFLEX;Lu;0;L;0059 0302;;;;N;LATIN CAPITAL LETTER Y CIRCUMFLEX;;;0177; -0177;LATIN SMALL LETTER Y WITH CIRCUMFLEX;Ll;0;L;0079 0302;;;;N;LATIN SMALL LETTER Y CIRCUMFLEX;;0176;;0176 -0178;LATIN CAPITAL LETTER Y WITH DIAERESIS;Lu;0;L;0059 0308;;;;N;LATIN CAPITAL LETTER Y DIAERESIS;;;00FF; -0179;LATIN CAPITAL LETTER Z WITH ACUTE;Lu;0;L;005A 0301;;;;N;LATIN CAPITAL LETTER Z ACUTE;;;017A; -017A;LATIN SMALL LETTER Z WITH ACUTE;Ll;0;L;007A 0301;;;;N;LATIN SMALL LETTER Z ACUTE;;0179;;0179 -017B;LATIN CAPITAL LETTER Z WITH DOT ABOVE;Lu;0;L;005A 0307;;;;N;LATIN CAPITAL LETTER Z DOT;;;017C; -017C;LATIN SMALL LETTER Z WITH DOT ABOVE;Ll;0;L;007A 0307;;;;N;LATIN SMALL LETTER Z DOT;;017B;;017B -017D;LATIN CAPITAL LETTER Z WITH CARON;Lu;0;L;005A 030C;;;;N;LATIN CAPITAL LETTER Z HACEK;;;017E; -017E;LATIN SMALL LETTER Z WITH CARON;Ll;0;L;007A 030C;;;;N;LATIN SMALL LETTER Z HACEK;;017D;;017D -017F;LATIN SMALL LETTER LONG S;Ll;0;L; 0073;;;;N;;;0053;;0053 -0180;LATIN SMALL LETTER B WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER B BAR;;0243;;0243 -0181;LATIN CAPITAL LETTER B WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER B HOOK;;;0253; -0182;LATIN CAPITAL LETTER B WITH TOPBAR;Lu;0;L;;;;;N;LATIN CAPITAL LETTER B TOPBAR;;;0183; -0183;LATIN SMALL LETTER B WITH TOPBAR;Ll;0;L;;;;;N;LATIN SMALL LETTER B TOPBAR;;0182;;0182 -0184;LATIN CAPITAL LETTER TONE SIX;Lu;0;L;;;;;N;;;;0185; -0185;LATIN SMALL LETTER TONE SIX;Ll;0;L;;;;;N;;;0184;;0184 -0186;LATIN CAPITAL LETTER OPEN O;Lu;0;L;;;;;N;;;;0254; -0187;LATIN CAPITAL LETTER C WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER C HOOK;;;0188; -0188;LATIN SMALL LETTER C WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER C HOOK;;0187;;0187 -0189;LATIN CAPITAL LETTER AFRICAN D;Lu;0;L;;;;;N;;;;0256; -018A;LATIN CAPITAL LETTER D WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER D HOOK;;;0257; -018B;LATIN CAPITAL LETTER D WITH TOPBAR;Lu;0;L;;;;;N;LATIN CAPITAL LETTER D TOPBAR;;;018C; -018C;LATIN SMALL LETTER D WITH TOPBAR;Ll;0;L;;;;;N;LATIN SMALL LETTER D TOPBAR;;018B;;018B -018D;LATIN SMALL LETTER TURNED DELTA;Ll;0;L;;;;;N;;;;; -018E;LATIN CAPITAL LETTER REVERSED E;Lu;0;L;;;;;N;LATIN CAPITAL LETTER TURNED E;;;01DD; -018F;LATIN CAPITAL LETTER SCHWA;Lu;0;L;;;;;N;;;;0259; -0190;LATIN CAPITAL LETTER OPEN E;Lu;0;L;;;;;N;LATIN CAPITAL LETTER EPSILON;;;025B; -0191;LATIN CAPITAL LETTER F WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER F HOOK;;;0192; -0192;LATIN SMALL LETTER F WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER SCRIPT F;;0191;;0191 -0193;LATIN CAPITAL LETTER G WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER G HOOK;;;0260; -0194;LATIN CAPITAL LETTER GAMMA;Lu;0;L;;;;;N;;;;0263; -0195;LATIN SMALL LETTER HV;Ll;0;L;;;;;N;LATIN SMALL LETTER H V;;01F6;;01F6 -0196;LATIN CAPITAL LETTER IOTA;Lu;0;L;;;;;N;;;;0269; -0197;LATIN CAPITAL LETTER I WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER BARRED I;;;0268; -0198;LATIN CAPITAL LETTER K WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER K HOOK;;;0199; -0199;LATIN SMALL LETTER K WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER K HOOK;;0198;;0198 -019A;LATIN SMALL LETTER L WITH BAR;Ll;0;L;;;;;N;LATIN SMALL LETTER BARRED L;;023D;;023D -019B;LATIN SMALL LETTER LAMBDA WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER BARRED LAMBDA;;;; -019C;LATIN CAPITAL LETTER TURNED M;Lu;0;L;;;;;N;;;;026F; -019D;LATIN CAPITAL LETTER N WITH LEFT HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER N HOOK;;;0272; -019E;LATIN SMALL LETTER N WITH LONG RIGHT LEG;Ll;0;L;;;;;N;;;0220;;0220 -019F;LATIN CAPITAL LETTER O WITH MIDDLE TILDE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER BARRED O;;;0275; -01A0;LATIN CAPITAL LETTER O WITH HORN;Lu;0;L;004F 031B;;;;N;LATIN CAPITAL LETTER O HORN;;;01A1; -01A1;LATIN SMALL LETTER O WITH HORN;Ll;0;L;006F 031B;;;;N;LATIN SMALL LETTER O HORN;;01A0;;01A0 -01A2;LATIN CAPITAL LETTER OI;Lu;0;L;;;;;N;LATIN CAPITAL LETTER O I;;;01A3; -01A3;LATIN SMALL LETTER OI;Ll;0;L;;;;;N;LATIN SMALL LETTER O I;;01A2;;01A2 -01A4;LATIN CAPITAL LETTER P WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER P HOOK;;;01A5; -01A5;LATIN SMALL LETTER P WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER P HOOK;;01A4;;01A4 -01A6;LATIN LETTER YR;Lu;0;L;;;;;N;LATIN LETTER Y R;;;0280; -01A7;LATIN CAPITAL LETTER TONE TWO;Lu;0;L;;;;;N;;;;01A8; -01A8;LATIN SMALL LETTER TONE TWO;Ll;0;L;;;;;N;;;01A7;;01A7 -01A9;LATIN CAPITAL LETTER ESH;Lu;0;L;;;;;N;;;;0283; -01AA;LATIN LETTER REVERSED ESH LOOP;Ll;0;L;;;;;N;;;;; -01AB;LATIN SMALL LETTER T WITH PALATAL HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER T PALATAL HOOK;;;; -01AC;LATIN CAPITAL LETTER T WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER T HOOK;;;01AD; -01AD;LATIN SMALL LETTER T WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER T HOOK;;01AC;;01AC -01AE;LATIN CAPITAL LETTER T WITH RETROFLEX HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER T RETROFLEX HOOK;;;0288; -01AF;LATIN CAPITAL LETTER U WITH HORN;Lu;0;L;0055 031B;;;;N;LATIN CAPITAL LETTER U HORN;;;01B0; -01B0;LATIN SMALL LETTER U WITH HORN;Ll;0;L;0075 031B;;;;N;LATIN SMALL LETTER U HORN;;01AF;;01AF -01B1;LATIN CAPITAL LETTER UPSILON;Lu;0;L;;;;;N;;;;028A; -01B2;LATIN CAPITAL LETTER V WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER SCRIPT V;;;028B; -01B3;LATIN CAPITAL LETTER Y WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER Y HOOK;;;01B4; -01B4;LATIN SMALL LETTER Y WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER Y HOOK;;01B3;;01B3 -01B5;LATIN CAPITAL LETTER Z WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER Z BAR;;;01B6; -01B6;LATIN SMALL LETTER Z WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER Z BAR;;01B5;;01B5 -01B7;LATIN CAPITAL LETTER EZH;Lu;0;L;;;;;N;LATIN CAPITAL LETTER YOGH;;;0292; -01B8;LATIN CAPITAL LETTER EZH REVERSED;Lu;0;L;;;;;N;LATIN CAPITAL LETTER REVERSED YOGH;;;01B9; -01B9;LATIN SMALL LETTER EZH REVERSED;Ll;0;L;;;;;N;LATIN SMALL LETTER REVERSED YOGH;;01B8;;01B8 -01BA;LATIN SMALL LETTER EZH WITH TAIL;Ll;0;L;;;;;N;LATIN SMALL LETTER YOGH WITH TAIL;;;; -01BB;LATIN LETTER TWO WITH STROKE;Lo;0;L;;;;;N;LATIN LETTER TWO BAR;;;; -01BC;LATIN CAPITAL LETTER TONE FIVE;Lu;0;L;;;;;N;;;;01BD; -01BD;LATIN SMALL LETTER TONE FIVE;Ll;0;L;;;;;N;;;01BC;;01BC -01BE;LATIN LETTER INVERTED GLOTTAL STOP WITH STROKE;Ll;0;L;;;;;N;LATIN LETTER INVERTED GLOTTAL STOP BAR;;;; -01BF;LATIN LETTER WYNN;Ll;0;L;;;;;N;;;01F7;;01F7 -01C0;LATIN LETTER DENTAL CLICK;Lo;0;L;;;;;N;LATIN LETTER PIPE;;;; -01C1;LATIN LETTER LATERAL CLICK;Lo;0;L;;;;;N;LATIN LETTER DOUBLE PIPE;;;; -01C2;LATIN LETTER ALVEOLAR CLICK;Lo;0;L;;;;;N;LATIN LETTER PIPE DOUBLE BAR;;;; -01C3;LATIN LETTER RETROFLEX CLICK;Lo;0;L;;;;;N;LATIN LETTER EXCLAMATION MARK;;;; -01C4;LATIN CAPITAL LETTER DZ WITH CARON;Lu;0;L; 0044 017D;;;;N;LATIN CAPITAL LETTER D Z HACEK;;;01C6;01C5 -01C5;LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON;Lt;0;L; 0044 017E;;;;N;LATIN LETTER CAPITAL D SMALL Z HACEK;;01C4;01C6;01C5 -01C6;LATIN SMALL LETTER DZ WITH CARON;Ll;0;L; 0064 017E;;;;N;LATIN SMALL LETTER D Z HACEK;;01C4;;01C5 -01C7;LATIN CAPITAL LETTER LJ;Lu;0;L; 004C 004A;;;;N;LATIN CAPITAL LETTER L J;;;01C9;01C8 -01C8;LATIN CAPITAL LETTER L WITH SMALL LETTER J;Lt;0;L; 004C 006A;;;;N;LATIN LETTER CAPITAL L SMALL J;;01C7;01C9;01C8 -01C9;LATIN SMALL LETTER LJ;Ll;0;L; 006C 006A;;;;N;LATIN SMALL LETTER L J;;01C7;;01C8 -01CA;LATIN CAPITAL LETTER NJ;Lu;0;L; 004E 004A;;;;N;LATIN CAPITAL LETTER N J;;;01CC;01CB -01CB;LATIN CAPITAL LETTER N WITH SMALL LETTER J;Lt;0;L; 004E 006A;;;;N;LATIN LETTER CAPITAL N SMALL J;;01CA;01CC;01CB -01CC;LATIN SMALL LETTER NJ;Ll;0;L; 006E 006A;;;;N;LATIN SMALL LETTER N J;;01CA;;01CB -01CD;LATIN CAPITAL LETTER A WITH CARON;Lu;0;L;0041 030C;;;;N;LATIN CAPITAL LETTER A HACEK;;;01CE; -01CE;LATIN SMALL LETTER A WITH CARON;Ll;0;L;0061 030C;;;;N;LATIN SMALL LETTER A HACEK;;01CD;;01CD -01CF;LATIN CAPITAL LETTER I WITH CARON;Lu;0;L;0049 030C;;;;N;LATIN CAPITAL LETTER I HACEK;;;01D0; -01D0;LATIN SMALL LETTER I WITH CARON;Ll;0;L;0069 030C;;;;N;LATIN SMALL LETTER I HACEK;;01CF;;01CF -01D1;LATIN CAPITAL LETTER O WITH CARON;Lu;0;L;004F 030C;;;;N;LATIN CAPITAL LETTER O HACEK;;;01D2; -01D2;LATIN SMALL LETTER O WITH CARON;Ll;0;L;006F 030C;;;;N;LATIN SMALL LETTER O HACEK;;01D1;;01D1 -01D3;LATIN CAPITAL LETTER U WITH CARON;Lu;0;L;0055 030C;;;;N;LATIN CAPITAL LETTER U HACEK;;;01D4; -01D4;LATIN SMALL LETTER U WITH CARON;Ll;0;L;0075 030C;;;;N;LATIN SMALL LETTER U HACEK;;01D3;;01D3 -01D5;LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON;Lu;0;L;00DC 0304;;;;N;LATIN CAPITAL LETTER U DIAERESIS MACRON;;;01D6; -01D6;LATIN SMALL LETTER U WITH DIAERESIS AND MACRON;Ll;0;L;00FC 0304;;;;N;LATIN SMALL LETTER U DIAERESIS MACRON;;01D5;;01D5 -01D7;LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE;Lu;0;L;00DC 0301;;;;N;LATIN CAPITAL LETTER U DIAERESIS ACUTE;;;01D8; -01D8;LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE;Ll;0;L;00FC 0301;;;;N;LATIN SMALL LETTER U DIAERESIS ACUTE;;01D7;;01D7 -01D9;LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON;Lu;0;L;00DC 030C;;;;N;LATIN CAPITAL LETTER U DIAERESIS HACEK;;;01DA; -01DA;LATIN SMALL LETTER U WITH DIAERESIS AND CARON;Ll;0;L;00FC 030C;;;;N;LATIN SMALL LETTER U DIAERESIS HACEK;;01D9;;01D9 -01DB;LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE;Lu;0;L;00DC 0300;;;;N;LATIN CAPITAL LETTER U DIAERESIS GRAVE;;;01DC; -01DC;LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE;Ll;0;L;00FC 0300;;;;N;LATIN SMALL LETTER U DIAERESIS GRAVE;;01DB;;01DB -01DD;LATIN SMALL LETTER TURNED E;Ll;0;L;;;;;N;;;018E;;018E -01DE;LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON;Lu;0;L;00C4 0304;;;;N;LATIN CAPITAL LETTER A DIAERESIS MACRON;;;01DF; -01DF;LATIN SMALL LETTER A WITH DIAERESIS AND MACRON;Ll;0;L;00E4 0304;;;;N;LATIN SMALL LETTER A DIAERESIS MACRON;;01DE;;01DE -01E0;LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON;Lu;0;L;0226 0304;;;;N;LATIN CAPITAL LETTER A DOT MACRON;;;01E1; -01E1;LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON;Ll;0;L;0227 0304;;;;N;LATIN SMALL LETTER A DOT MACRON;;01E0;;01E0 -01E2;LATIN CAPITAL LETTER AE WITH MACRON;Lu;0;L;00C6 0304;;;;N;LATIN CAPITAL LETTER A E MACRON;;;01E3; -01E3;LATIN SMALL LETTER AE WITH MACRON;Ll;0;L;00E6 0304;;;;N;LATIN SMALL LETTER A E MACRON;;01E2;;01E2 -01E4;LATIN CAPITAL LETTER G WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER G BAR;;;01E5; -01E5;LATIN SMALL LETTER G WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER G BAR;;01E4;;01E4 -01E6;LATIN CAPITAL LETTER G WITH CARON;Lu;0;L;0047 030C;;;;N;LATIN CAPITAL LETTER G HACEK;;;01E7; -01E7;LATIN SMALL LETTER G WITH CARON;Ll;0;L;0067 030C;;;;N;LATIN SMALL LETTER G HACEK;;01E6;;01E6 -01E8;LATIN CAPITAL LETTER K WITH CARON;Lu;0;L;004B 030C;;;;N;LATIN CAPITAL LETTER K HACEK;;;01E9; -01E9;LATIN SMALL LETTER K WITH CARON;Ll;0;L;006B 030C;;;;N;LATIN SMALL LETTER K HACEK;;01E8;;01E8 -01EA;LATIN CAPITAL LETTER O WITH OGONEK;Lu;0;L;004F 0328;;;;N;LATIN CAPITAL LETTER O OGONEK;;;01EB; -01EB;LATIN SMALL LETTER O WITH OGONEK;Ll;0;L;006F 0328;;;;N;LATIN SMALL LETTER O OGONEK;;01EA;;01EA -01EC;LATIN CAPITAL LETTER O WITH OGONEK AND MACRON;Lu;0;L;01EA 0304;;;;N;LATIN CAPITAL LETTER O OGONEK MACRON;;;01ED; -01ED;LATIN SMALL LETTER O WITH OGONEK AND MACRON;Ll;0;L;01EB 0304;;;;N;LATIN SMALL LETTER O OGONEK MACRON;;01EC;;01EC -01EE;LATIN CAPITAL LETTER EZH WITH CARON;Lu;0;L;01B7 030C;;;;N;LATIN CAPITAL LETTER YOGH HACEK;;;01EF; -01EF;LATIN SMALL LETTER EZH WITH CARON;Ll;0;L;0292 030C;;;;N;LATIN SMALL LETTER YOGH HACEK;;01EE;;01EE -01F0;LATIN SMALL LETTER J WITH CARON;Ll;0;L;006A 030C;;;;N;LATIN SMALL LETTER J HACEK;;;; -01F1;LATIN CAPITAL LETTER DZ;Lu;0;L; 0044 005A;;;;N;;;;01F3;01F2 -01F2;LATIN CAPITAL LETTER D WITH SMALL LETTER Z;Lt;0;L; 0044 007A;;;;N;;;01F1;01F3;01F2 -01F3;LATIN SMALL LETTER DZ;Ll;0;L; 0064 007A;;;;N;;;01F1;;01F2 -01F4;LATIN CAPITAL LETTER G WITH ACUTE;Lu;0;L;0047 0301;;;;N;;;;01F5; -01F5;LATIN SMALL LETTER G WITH ACUTE;Ll;0;L;0067 0301;;;;N;;;01F4;;01F4 -01F6;LATIN CAPITAL LETTER HWAIR;Lu;0;L;;;;;N;;;;0195; -01F7;LATIN CAPITAL LETTER WYNN;Lu;0;L;;;;;N;;;;01BF; -01F8;LATIN CAPITAL LETTER N WITH GRAVE;Lu;0;L;004E 0300;;;;N;;;;01F9; -01F9;LATIN SMALL LETTER N WITH GRAVE;Ll;0;L;006E 0300;;;;N;;;01F8;;01F8 -01FA;LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE;Lu;0;L;00C5 0301;;;;N;;;;01FB; -01FB;LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE;Ll;0;L;00E5 0301;;;;N;;;01FA;;01FA -01FC;LATIN CAPITAL LETTER AE WITH ACUTE;Lu;0;L;00C6 0301;;;;N;;;;01FD; -01FD;LATIN SMALL LETTER AE WITH ACUTE;Ll;0;L;00E6 0301;;;;N;;;01FC;;01FC -01FE;LATIN CAPITAL LETTER O WITH STROKE AND ACUTE;Lu;0;L;00D8 0301;;;;N;;;;01FF; -01FF;LATIN SMALL LETTER O WITH STROKE AND ACUTE;Ll;0;L;00F8 0301;;;;N;;;01FE;;01FE -0200;LATIN CAPITAL LETTER A WITH DOUBLE GRAVE;Lu;0;L;0041 030F;;;;N;;;;0201; -0201;LATIN SMALL LETTER A WITH DOUBLE GRAVE;Ll;0;L;0061 030F;;;;N;;;0200;;0200 -0202;LATIN CAPITAL LETTER A WITH INVERTED BREVE;Lu;0;L;0041 0311;;;;N;;;;0203; -0203;LATIN SMALL LETTER A WITH INVERTED BREVE;Ll;0;L;0061 0311;;;;N;;;0202;;0202 -0204;LATIN CAPITAL LETTER E WITH DOUBLE GRAVE;Lu;0;L;0045 030F;;;;N;;;;0205; -0205;LATIN SMALL LETTER E WITH DOUBLE GRAVE;Ll;0;L;0065 030F;;;;N;;;0204;;0204 -0206;LATIN CAPITAL LETTER E WITH INVERTED BREVE;Lu;0;L;0045 0311;;;;N;;;;0207; -0207;LATIN SMALL LETTER E WITH INVERTED BREVE;Ll;0;L;0065 0311;;;;N;;;0206;;0206 -0208;LATIN CAPITAL LETTER I WITH DOUBLE GRAVE;Lu;0;L;0049 030F;;;;N;;;;0209; -0209;LATIN SMALL LETTER I WITH DOUBLE GRAVE;Ll;0;L;0069 030F;;;;N;;;0208;;0208 -020A;LATIN CAPITAL LETTER I WITH INVERTED BREVE;Lu;0;L;0049 0311;;;;N;;;;020B; -020B;LATIN SMALL LETTER I WITH INVERTED BREVE;Ll;0;L;0069 0311;;;;N;;;020A;;020A -020C;LATIN CAPITAL LETTER O WITH DOUBLE GRAVE;Lu;0;L;004F 030F;;;;N;;;;020D; -020D;LATIN SMALL LETTER O WITH DOUBLE GRAVE;Ll;0;L;006F 030F;;;;N;;;020C;;020C -020E;LATIN CAPITAL LETTER O WITH INVERTED BREVE;Lu;0;L;004F 0311;;;;N;;;;020F; -020F;LATIN SMALL LETTER O WITH INVERTED BREVE;Ll;0;L;006F 0311;;;;N;;;020E;;020E -0210;LATIN CAPITAL LETTER R WITH DOUBLE GRAVE;Lu;0;L;0052 030F;;;;N;;;;0211; -0211;LATIN SMALL LETTER R WITH DOUBLE GRAVE;Ll;0;L;0072 030F;;;;N;;;0210;;0210 -0212;LATIN CAPITAL LETTER R WITH INVERTED BREVE;Lu;0;L;0052 0311;;;;N;;;;0213; -0213;LATIN SMALL LETTER R WITH INVERTED BREVE;Ll;0;L;0072 0311;;;;N;;;0212;;0212 -0214;LATIN CAPITAL LETTER U WITH DOUBLE GRAVE;Lu;0;L;0055 030F;;;;N;;;;0215; -0215;LATIN SMALL LETTER U WITH DOUBLE GRAVE;Ll;0;L;0075 030F;;;;N;;;0214;;0214 -0216;LATIN CAPITAL LETTER U WITH INVERTED BREVE;Lu;0;L;0055 0311;;;;N;;;;0217; -0217;LATIN SMALL LETTER U WITH INVERTED BREVE;Ll;0;L;0075 0311;;;;N;;;0216;;0216 -0218;LATIN CAPITAL LETTER S WITH COMMA BELOW;Lu;0;L;0053 0326;;;;N;;;;0219; -0219;LATIN SMALL LETTER S WITH COMMA BELOW;Ll;0;L;0073 0326;;;;N;;;0218;;0218 -021A;LATIN CAPITAL LETTER T WITH COMMA BELOW;Lu;0;L;0054 0326;;;;N;;;;021B; -021B;LATIN SMALL LETTER T WITH COMMA BELOW;Ll;0;L;0074 0326;;;;N;;;021A;;021A -021C;LATIN CAPITAL LETTER YOGH;Lu;0;L;;;;;N;;;;021D; -021D;LATIN SMALL LETTER YOGH;Ll;0;L;;;;;N;;;021C;;021C -021E;LATIN CAPITAL LETTER H WITH CARON;Lu;0;L;0048 030C;;;;N;;;;021F; -021F;LATIN SMALL LETTER H WITH CARON;Ll;0;L;0068 030C;;;;N;;;021E;;021E -0220;LATIN CAPITAL LETTER N WITH LONG RIGHT LEG;Lu;0;L;;;;;N;;;;019E; -0221;LATIN SMALL LETTER D WITH CURL;Ll;0;L;;;;;N;;;;; -0222;LATIN CAPITAL LETTER OU;Lu;0;L;;;;;N;;;;0223; -0223;LATIN SMALL LETTER OU;Ll;0;L;;;;;N;;;0222;;0222 -0224;LATIN CAPITAL LETTER Z WITH HOOK;Lu;0;L;;;;;N;;;;0225; -0225;LATIN SMALL LETTER Z WITH HOOK;Ll;0;L;;;;;N;;;0224;;0224 -0226;LATIN CAPITAL LETTER A WITH DOT ABOVE;Lu;0;L;0041 0307;;;;N;;;;0227; -0227;LATIN SMALL LETTER A WITH DOT ABOVE;Ll;0;L;0061 0307;;;;N;;;0226;;0226 -0228;LATIN CAPITAL LETTER E WITH CEDILLA;Lu;0;L;0045 0327;;;;N;;;;0229; -0229;LATIN SMALL LETTER E WITH CEDILLA;Ll;0;L;0065 0327;;;;N;;;0228;;0228 -022A;LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON;Lu;0;L;00D6 0304;;;;N;;;;022B; -022B;LATIN SMALL LETTER O WITH DIAERESIS AND MACRON;Ll;0;L;00F6 0304;;;;N;;;022A;;022A -022C;LATIN CAPITAL LETTER O WITH TILDE AND MACRON;Lu;0;L;00D5 0304;;;;N;;;;022D; -022D;LATIN SMALL LETTER O WITH TILDE AND MACRON;Ll;0;L;00F5 0304;;;;N;;;022C;;022C -022E;LATIN CAPITAL LETTER O WITH DOT ABOVE;Lu;0;L;004F 0307;;;;N;;;;022F; -022F;LATIN SMALL LETTER O WITH DOT ABOVE;Ll;0;L;006F 0307;;;;N;;;022E;;022E -0230;LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON;Lu;0;L;022E 0304;;;;N;;;;0231; -0231;LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON;Ll;0;L;022F 0304;;;;N;;;0230;;0230 -0232;LATIN CAPITAL LETTER Y WITH MACRON;Lu;0;L;0059 0304;;;;N;;;;0233; -0233;LATIN SMALL LETTER Y WITH MACRON;Ll;0;L;0079 0304;;;;N;;;0232;;0232 -0234;LATIN SMALL LETTER L WITH CURL;Ll;0;L;;;;;N;;;;; -0235;LATIN SMALL LETTER N WITH CURL;Ll;0;L;;;;;N;;;;; -0236;LATIN SMALL LETTER T WITH CURL;Ll;0;L;;;;;N;;;;; -0237;LATIN SMALL LETTER DOTLESS J;Ll;0;L;;;;;N;;;;; -0238;LATIN SMALL LETTER DB DIGRAPH;Ll;0;L;;;;;N;;;;; -0239;LATIN SMALL LETTER QP DIGRAPH;Ll;0;L;;;;;N;;;;; -023A;LATIN CAPITAL LETTER A WITH STROKE;Lu;0;L;;;;;N;;;;2C65; -023B;LATIN CAPITAL LETTER C WITH STROKE;Lu;0;L;;;;;N;;;;023C; -023C;LATIN SMALL LETTER C WITH STROKE;Ll;0;L;;;;;N;;;023B;;023B -023D;LATIN CAPITAL LETTER L WITH BAR;Lu;0;L;;;;;N;;;;019A; -023E;LATIN CAPITAL LETTER T WITH DIAGONAL STROKE;Lu;0;L;;;;;N;;;;2C66; -023F;LATIN SMALL LETTER S WITH SWASH TAIL;Ll;0;L;;;;;N;;;2C7E;;2C7E -0240;LATIN SMALL LETTER Z WITH SWASH TAIL;Ll;0;L;;;;;N;;;2C7F;;2C7F -0241;LATIN CAPITAL LETTER GLOTTAL STOP;Lu;0;L;;;;;N;;;;0242; -0242;LATIN SMALL LETTER GLOTTAL STOP;Ll;0;L;;;;;N;;;0241;;0241 -0243;LATIN CAPITAL LETTER B WITH STROKE;Lu;0;L;;;;;N;;;;0180; -0244;LATIN CAPITAL LETTER U BAR;Lu;0;L;;;;;N;;;;0289; -0245;LATIN CAPITAL LETTER TURNED V;Lu;0;L;;;;;N;;;;028C; -0246;LATIN CAPITAL LETTER E WITH STROKE;Lu;0;L;;;;;N;;;;0247; -0247;LATIN SMALL LETTER E WITH STROKE;Ll;0;L;;;;;N;;;0246;;0246 -0248;LATIN CAPITAL LETTER J WITH STROKE;Lu;0;L;;;;;N;;;;0249; -0249;LATIN SMALL LETTER J WITH STROKE;Ll;0;L;;;;;N;;;0248;;0248 -024A;LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL;Lu;0;L;;;;;N;;;;024B; -024B;LATIN SMALL LETTER Q WITH HOOK TAIL;Ll;0;L;;;;;N;;;024A;;024A -024C;LATIN CAPITAL LETTER R WITH STROKE;Lu;0;L;;;;;N;;;;024D; -024D;LATIN SMALL LETTER R WITH STROKE;Ll;0;L;;;;;N;;;024C;;024C -024E;LATIN CAPITAL LETTER Y WITH STROKE;Lu;0;L;;;;;N;;;;024F; -024F;LATIN SMALL LETTER Y WITH STROKE;Ll;0;L;;;;;N;;;024E;;024E -0250;LATIN SMALL LETTER TURNED A;Ll;0;L;;;;;N;;;2C6F;;2C6F -0251;LATIN SMALL LETTER ALPHA;Ll;0;L;;;;;N;LATIN SMALL LETTER SCRIPT A;;2C6D;;2C6D -0252;LATIN SMALL LETTER TURNED ALPHA;Ll;0;L;;;;;N;LATIN SMALL LETTER TURNED SCRIPT A;;2C70;;2C70 -0253;LATIN SMALL LETTER B WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER B HOOK;;0181;;0181 -0254;LATIN SMALL LETTER OPEN O;Ll;0;L;;;;;N;;;0186;;0186 -0255;LATIN SMALL LETTER C WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER C CURL;;;; -0256;LATIN SMALL LETTER D WITH TAIL;Ll;0;L;;;;;N;LATIN SMALL LETTER D RETROFLEX HOOK;;0189;;0189 -0257;LATIN SMALL LETTER D WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER D HOOK;;018A;;018A -0258;LATIN SMALL LETTER REVERSED E;Ll;0;L;;;;;N;;;;; -0259;LATIN SMALL LETTER SCHWA;Ll;0;L;;;;;N;;;018F;;018F -025A;LATIN SMALL LETTER SCHWA WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER SCHWA HOOK;;;; -025B;LATIN SMALL LETTER OPEN E;Ll;0;L;;;;;N;LATIN SMALL LETTER EPSILON;;0190;;0190 -025C;LATIN SMALL LETTER REVERSED OPEN E;Ll;0;L;;;;;N;LATIN SMALL LETTER REVERSED EPSILON;;;; -025D;LATIN SMALL LETTER REVERSED OPEN E WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER REVERSED EPSILON HOOK;;;; -025E;LATIN SMALL LETTER CLOSED REVERSED OPEN E;Ll;0;L;;;;;N;LATIN SMALL LETTER CLOSED REVERSED EPSILON;;;; -025F;LATIN SMALL LETTER DOTLESS J WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER DOTLESS J BAR;;;; -0260;LATIN SMALL LETTER G WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER G HOOK;;0193;;0193 -0261;LATIN SMALL LETTER SCRIPT G;Ll;0;L;;;;;N;;;;; -0262;LATIN LETTER SMALL CAPITAL G;Ll;0;L;;;;;N;;;;; -0263;LATIN SMALL LETTER GAMMA;Ll;0;L;;;;;N;;;0194;;0194 -0264;LATIN SMALL LETTER RAMS HORN;Ll;0;L;;;;;N;LATIN SMALL LETTER BABY GAMMA;;;; -0265;LATIN SMALL LETTER TURNED H;Ll;0;L;;;;;N;;;;; -0266;LATIN SMALL LETTER H WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER H HOOK;;;; -0267;LATIN SMALL LETTER HENG WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER HENG HOOK;;;; -0268;LATIN SMALL LETTER I WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER BARRED I;;0197;;0197 -0269;LATIN SMALL LETTER IOTA;Ll;0;L;;;;;N;;;0196;;0196 -026A;LATIN LETTER SMALL CAPITAL I;Ll;0;L;;;;;N;;;;; -026B;LATIN SMALL LETTER L WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;2C62;;2C62 -026C;LATIN SMALL LETTER L WITH BELT;Ll;0;L;;;;;N;LATIN SMALL LETTER L BELT;;;; -026D;LATIN SMALL LETTER L WITH RETROFLEX HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER L RETROFLEX HOOK;;;; -026E;LATIN SMALL LETTER LEZH;Ll;0;L;;;;;N;LATIN SMALL LETTER L YOGH;;;; -026F;LATIN SMALL LETTER TURNED M;Ll;0;L;;;;;N;;;019C;;019C -0270;LATIN SMALL LETTER TURNED M WITH LONG LEG;Ll;0;L;;;;;N;;;;; -0271;LATIN SMALL LETTER M WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER M HOOK;;2C6E;;2C6E -0272;LATIN SMALL LETTER N WITH LEFT HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER N HOOK;;019D;;019D -0273;LATIN SMALL LETTER N WITH RETROFLEX HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER N RETROFLEX HOOK;;;; -0274;LATIN LETTER SMALL CAPITAL N;Ll;0;L;;;;;N;;;;; -0275;LATIN SMALL LETTER BARRED O;Ll;0;L;;;;;N;;;019F;;019F -0276;LATIN LETTER SMALL CAPITAL OE;Ll;0;L;;;;;N;LATIN LETTER SMALL CAPITAL O E;;;; -0277;LATIN SMALL LETTER CLOSED OMEGA;Ll;0;L;;;;;N;;;;; -0278;LATIN SMALL LETTER PHI;Ll;0;L;;;;;N;;;;; -0279;LATIN SMALL LETTER TURNED R;Ll;0;L;;;;;N;;;;; -027A;LATIN SMALL LETTER TURNED R WITH LONG LEG;Ll;0;L;;;;;N;;;;; -027B;LATIN SMALL LETTER TURNED R WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER TURNED R HOOK;;;; -027C;LATIN SMALL LETTER R WITH LONG LEG;Ll;0;L;;;;;N;;;;; -027D;LATIN SMALL LETTER R WITH TAIL;Ll;0;L;;;;;N;LATIN SMALL LETTER R HOOK;;2C64;;2C64 -027E;LATIN SMALL LETTER R WITH FISHHOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER FISHHOOK R;;;; -027F;LATIN SMALL LETTER REVERSED R WITH FISHHOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER REVERSED FISHHOOK R;;;; -0280;LATIN LETTER SMALL CAPITAL R;Ll;0;L;;;;;N;;;01A6;;01A6 -0281;LATIN LETTER SMALL CAPITAL INVERTED R;Ll;0;L;;;;;N;;;;; -0282;LATIN SMALL LETTER S WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER S HOOK;;;; -0283;LATIN SMALL LETTER ESH;Ll;0;L;;;;;N;;;01A9;;01A9 -0284;LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER DOTLESS J BAR HOOK;;;; -0285;LATIN SMALL LETTER SQUAT REVERSED ESH;Ll;0;L;;;;;N;;;;; -0286;LATIN SMALL LETTER ESH WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER ESH CURL;;;; -0287;LATIN SMALL LETTER TURNED T;Ll;0;L;;;;;N;;;;; -0288;LATIN SMALL LETTER T WITH RETROFLEX HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER T RETROFLEX HOOK;;01AE;;01AE -0289;LATIN SMALL LETTER U BAR;Ll;0;L;;;;;N;;;0244;;0244 -028A;LATIN SMALL LETTER UPSILON;Ll;0;L;;;;;N;;;01B1;;01B1 -028B;LATIN SMALL LETTER V WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER SCRIPT V;;01B2;;01B2 -028C;LATIN SMALL LETTER TURNED V;Ll;0;L;;;;;N;;;0245;;0245 -028D;LATIN SMALL LETTER TURNED W;Ll;0;L;;;;;N;;;;; -028E;LATIN SMALL LETTER TURNED Y;Ll;0;L;;;;;N;;;;; -028F;LATIN LETTER SMALL CAPITAL Y;Ll;0;L;;;;;N;;;;; -0290;LATIN SMALL LETTER Z WITH RETROFLEX HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER Z RETROFLEX HOOK;;;; -0291;LATIN SMALL LETTER Z WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER Z CURL;;;; -0292;LATIN SMALL LETTER EZH;Ll;0;L;;;;;N;LATIN SMALL LETTER YOGH;;01B7;;01B7 -0293;LATIN SMALL LETTER EZH WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER YOGH CURL;;;; -0294;LATIN LETTER GLOTTAL STOP;Lo;0;L;;;;;N;;;;; -0295;LATIN LETTER PHARYNGEAL VOICED FRICATIVE;Ll;0;L;;;;;N;LATIN LETTER REVERSED GLOTTAL STOP;;;; -0296;LATIN LETTER INVERTED GLOTTAL STOP;Ll;0;L;;;;;N;;;;; -0297;LATIN LETTER STRETCHED C;Ll;0;L;;;;;N;;;;; -0298;LATIN LETTER BILABIAL CLICK;Ll;0;L;;;;;N;LATIN LETTER BULLSEYE;;;; -0299;LATIN LETTER SMALL CAPITAL B;Ll;0;L;;;;;N;;;;; -029A;LATIN SMALL LETTER CLOSED OPEN E;Ll;0;L;;;;;N;LATIN SMALL LETTER CLOSED EPSILON;;;; -029B;LATIN LETTER SMALL CAPITAL G WITH HOOK;Ll;0;L;;;;;N;LATIN LETTER SMALL CAPITAL G HOOK;;;; -029C;LATIN LETTER SMALL CAPITAL H;Ll;0;L;;;;;N;;;;; -029D;LATIN SMALL LETTER J WITH CROSSED-TAIL;Ll;0;L;;;;;N;LATIN SMALL LETTER CROSSED-TAIL J;;;; -029E;LATIN SMALL LETTER TURNED K;Ll;0;L;;;;;N;;;;; -029F;LATIN LETTER SMALL CAPITAL L;Ll;0;L;;;;;N;;;;; -02A0;LATIN SMALL LETTER Q WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER Q HOOK;;;; -02A1;LATIN LETTER GLOTTAL STOP WITH STROKE;Ll;0;L;;;;;N;LATIN LETTER GLOTTAL STOP BAR;;;; -02A2;LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE;Ll;0;L;;;;;N;LATIN LETTER REVERSED GLOTTAL STOP BAR;;;; -02A3;LATIN SMALL LETTER DZ DIGRAPH;Ll;0;L;;;;;N;LATIN SMALL LETTER D Z;;;; -02A4;LATIN SMALL LETTER DEZH DIGRAPH;Ll;0;L;;;;;N;LATIN SMALL LETTER D YOGH;;;; -02A5;LATIN SMALL LETTER DZ DIGRAPH WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER D Z CURL;;;; -02A6;LATIN SMALL LETTER TS DIGRAPH;Ll;0;L;;;;;N;LATIN SMALL LETTER T S;;;; -02A7;LATIN SMALL LETTER TESH DIGRAPH;Ll;0;L;;;;;N;LATIN SMALL LETTER T ESH;;;; -02A8;LATIN SMALL LETTER TC DIGRAPH WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER T C CURL;;;; -02A9;LATIN SMALL LETTER FENG DIGRAPH;Ll;0;L;;;;;N;;;;; -02AA;LATIN SMALL LETTER LS DIGRAPH;Ll;0;L;;;;;N;;;;; -02AB;LATIN SMALL LETTER LZ DIGRAPH;Ll;0;L;;;;;N;;;;; -02AC;LATIN LETTER BILABIAL PERCUSSIVE;Ll;0;L;;;;;N;;;;; -02AD;LATIN LETTER BIDENTAL PERCUSSIVE;Ll;0;L;;;;;N;;;;; -02AE;LATIN SMALL LETTER TURNED H WITH FISHHOOK;Ll;0;L;;;;;N;;;;; -02AF;LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL;Ll;0;L;;;;;N;;;;; -02B0;MODIFIER LETTER SMALL H;Lm;0;L; 0068;;;;N;;;;; -02B1;MODIFIER LETTER SMALL H WITH HOOK;Lm;0;L; 0266;;;;N;MODIFIER LETTER SMALL H HOOK;;;; -02B2;MODIFIER LETTER SMALL J;Lm;0;L; 006A;;;;N;;;;; -02B3;MODIFIER LETTER SMALL R;Lm;0;L; 0072;;;;N;;;;; -02B4;MODIFIER LETTER SMALL TURNED R;Lm;0;L; 0279;;;;N;;;;; -02B5;MODIFIER LETTER SMALL TURNED R WITH HOOK;Lm;0;L; 027B;;;;N;MODIFIER LETTER SMALL TURNED R HOOK;;;; -02B6;MODIFIER LETTER SMALL CAPITAL INVERTED R;Lm;0;L; 0281;;;;N;;;;; -02B7;MODIFIER LETTER SMALL W;Lm;0;L; 0077;;;;N;;;;; -02B8;MODIFIER LETTER SMALL Y;Lm;0;L; 0079;;;;N;;;;; -02B9;MODIFIER LETTER PRIME;Lm;0;ON;;;;;N;;;;; -02BA;MODIFIER LETTER DOUBLE PRIME;Lm;0;ON;;;;;N;;;;; -02BB;MODIFIER LETTER TURNED COMMA;Lm;0;L;;;;;N;;;;; -02BC;MODIFIER LETTER APOSTROPHE;Lm;0;L;;;;;N;;;;; -02BD;MODIFIER LETTER REVERSED COMMA;Lm;0;L;;;;;N;;;;; -02BE;MODIFIER LETTER RIGHT HALF RING;Lm;0;L;;;;;N;;;;; -02BF;MODIFIER LETTER LEFT HALF RING;Lm;0;L;;;;;N;;;;; -02C0;MODIFIER LETTER GLOTTAL STOP;Lm;0;L;;;;;N;;;;; -02C1;MODIFIER LETTER REVERSED GLOTTAL STOP;Lm;0;L;;;;;N;;;;; -02C2;MODIFIER LETTER LEFT ARROWHEAD;Sk;0;ON;;;;;N;;;;; -02C3;MODIFIER LETTER RIGHT ARROWHEAD;Sk;0;ON;;;;;N;;;;; -02C4;MODIFIER LETTER UP ARROWHEAD;Sk;0;ON;;;;;N;;;;; -02C5;MODIFIER LETTER DOWN ARROWHEAD;Sk;0;ON;;;;;N;;;;; -02C6;MODIFIER LETTER CIRCUMFLEX ACCENT;Lm;0;ON;;;;;N;MODIFIER LETTER CIRCUMFLEX;;;; -02C7;CARON;Lm;0;ON;;;;;N;MODIFIER LETTER HACEK;;;; -02C8;MODIFIER LETTER VERTICAL LINE;Lm;0;ON;;;;;N;;;;; -02C9;MODIFIER LETTER MACRON;Lm;0;ON;;;;;N;;;;; -02CA;MODIFIER LETTER ACUTE ACCENT;Lm;0;ON;;;;;N;MODIFIER LETTER ACUTE;;;; -02CB;MODIFIER LETTER GRAVE ACCENT;Lm;0;ON;;;;;N;MODIFIER LETTER GRAVE;;;; -02CC;MODIFIER LETTER LOW VERTICAL LINE;Lm;0;ON;;;;;N;;;;; -02CD;MODIFIER LETTER LOW MACRON;Lm;0;ON;;;;;N;;;;; -02CE;MODIFIER LETTER LOW GRAVE ACCENT;Lm;0;ON;;;;;N;MODIFIER LETTER LOW GRAVE;;;; -02CF;MODIFIER LETTER LOW ACUTE ACCENT;Lm;0;ON;;;;;N;MODIFIER LETTER LOW ACUTE;;;; -02D0;MODIFIER LETTER TRIANGULAR COLON;Lm;0;L;;;;;N;;;;; -02D1;MODIFIER LETTER HALF TRIANGULAR COLON;Lm;0;L;;;;;N;;;;; -02D2;MODIFIER LETTER CENTRED RIGHT HALF RING;Sk;0;ON;;;;;N;MODIFIER LETTER CENTERED RIGHT HALF RING;;;; -02D3;MODIFIER LETTER CENTRED LEFT HALF RING;Sk;0;ON;;;;;N;MODIFIER LETTER CENTERED LEFT HALF RING;;;; -02D4;MODIFIER LETTER UP TACK;Sk;0;ON;;;;;N;;;;; -02D5;MODIFIER LETTER DOWN TACK;Sk;0;ON;;;;;N;;;;; -02D6;MODIFIER LETTER PLUS SIGN;Sk;0;ON;;;;;N;;;;; -02D7;MODIFIER LETTER MINUS SIGN;Sk;0;ON;;;;;N;;;;; -02D8;BREVE;Sk;0;ON; 0020 0306;;;;N;SPACING BREVE;;;; -02D9;DOT ABOVE;Sk;0;ON; 0020 0307;;;;N;SPACING DOT ABOVE;;;; -02DA;RING ABOVE;Sk;0;ON; 0020 030A;;;;N;SPACING RING ABOVE;;;; -02DB;OGONEK;Sk;0;ON; 0020 0328;;;;N;SPACING OGONEK;;;; -02DC;SMALL TILDE;Sk;0;ON; 0020 0303;;;;N;SPACING TILDE;;;; -02DD;DOUBLE ACUTE ACCENT;Sk;0;ON; 0020 030B;;;;N;SPACING DOUBLE ACUTE;;;; -02DE;MODIFIER LETTER RHOTIC HOOK;Sk;0;ON;;;;;N;;;;; -02DF;MODIFIER LETTER CROSS ACCENT;Sk;0;ON;;;;;N;;;;; -02E0;MODIFIER LETTER SMALL GAMMA;Lm;0;L; 0263;;;;N;;;;; -02E1;MODIFIER LETTER SMALL L;Lm;0;L; 006C;;;;N;;;;; -02E2;MODIFIER LETTER SMALL S;Lm;0;L; 0073;;;;N;;;;; -02E3;MODIFIER LETTER SMALL X;Lm;0;L; 0078;;;;N;;;;; -02E4;MODIFIER LETTER SMALL REVERSED GLOTTAL STOP;Lm;0;L; 0295;;;;N;;;;; -02E5;MODIFIER LETTER EXTRA-HIGH TONE BAR;Sk;0;ON;;;;;N;;;;; -02E6;MODIFIER LETTER HIGH TONE BAR;Sk;0;ON;;;;;N;;;;; -02E7;MODIFIER LETTER MID TONE BAR;Sk;0;ON;;;;;N;;;;; -02E8;MODIFIER LETTER LOW TONE BAR;Sk;0;ON;;;;;N;;;;; -02E9;MODIFIER LETTER EXTRA-LOW TONE BAR;Sk;0;ON;;;;;N;;;;; -02EA;MODIFIER LETTER YIN DEPARTING TONE MARK;Sk;0;ON;;;;;N;;;;; -02EB;MODIFIER LETTER YANG DEPARTING TONE MARK;Sk;0;ON;;;;;N;;;;; -02EC;MODIFIER LETTER VOICING;Lm;0;ON;;;;;N;;;;; -02ED;MODIFIER LETTER UNASPIRATED;Sk;0;ON;;;;;N;;;;; -02EE;MODIFIER LETTER DOUBLE APOSTROPHE;Lm;0;L;;;;;N;;;;; -02EF;MODIFIER LETTER LOW DOWN ARROWHEAD;Sk;0;ON;;;;;N;;;;; -02F0;MODIFIER LETTER LOW UP ARROWHEAD;Sk;0;ON;;;;;N;;;;; -02F1;MODIFIER LETTER LOW LEFT ARROWHEAD;Sk;0;ON;;;;;N;;;;; -02F2;MODIFIER LETTER LOW RIGHT ARROWHEAD;Sk;0;ON;;;;;N;;;;; -02F3;MODIFIER LETTER LOW RING;Sk;0;ON;;;;;N;;;;; -02F4;MODIFIER LETTER MIDDLE GRAVE ACCENT;Sk;0;ON;;;;;N;;;;; -02F5;MODIFIER LETTER MIDDLE DOUBLE GRAVE ACCENT;Sk;0;ON;;;;;N;;;;; -02F6;MODIFIER LETTER MIDDLE DOUBLE ACUTE ACCENT;Sk;0;ON;;;;;N;;;;; -02F7;MODIFIER LETTER LOW TILDE;Sk;0;ON;;;;;N;;;;; -02F8;MODIFIER LETTER RAISED COLON;Sk;0;ON;;;;;N;;;;; -02F9;MODIFIER LETTER BEGIN HIGH TONE;Sk;0;ON;;;;;N;;;;; -02FA;MODIFIER LETTER END HIGH TONE;Sk;0;ON;;;;;N;;;;; -02FB;MODIFIER LETTER BEGIN LOW TONE;Sk;0;ON;;;;;N;;;;; -02FC;MODIFIER LETTER END LOW TONE;Sk;0;ON;;;;;N;;;;; -02FD;MODIFIER LETTER SHELF;Sk;0;ON;;;;;N;;;;; -02FE;MODIFIER LETTER OPEN SHELF;Sk;0;ON;;;;;N;;;;; -02FF;MODIFIER LETTER LOW LEFT ARROW;Sk;0;ON;;;;;N;;;;; -0300;COMBINING GRAVE ACCENT;Mn;230;NSM;;;;;N;NON-SPACING GRAVE;;;; -0301;COMBINING ACUTE ACCENT;Mn;230;NSM;;;;;N;NON-SPACING ACUTE;;;; -0302;COMBINING CIRCUMFLEX ACCENT;Mn;230;NSM;;;;;N;NON-SPACING CIRCUMFLEX;;;; -0303;COMBINING TILDE;Mn;230;NSM;;;;;N;NON-SPACING TILDE;;;; -0304;COMBINING MACRON;Mn;230;NSM;;;;;N;NON-SPACING MACRON;;;; -0305;COMBINING OVERLINE;Mn;230;NSM;;;;;N;NON-SPACING OVERSCORE;;;; -0306;COMBINING BREVE;Mn;230;NSM;;;;;N;NON-SPACING BREVE;;;; -0307;COMBINING DOT ABOVE;Mn;230;NSM;;;;;N;NON-SPACING DOT ABOVE;;;; -0308;COMBINING DIAERESIS;Mn;230;NSM;;;;;N;NON-SPACING DIAERESIS;;;; -0309;COMBINING HOOK ABOVE;Mn;230;NSM;;;;;N;NON-SPACING HOOK ABOVE;;;; -030A;COMBINING RING ABOVE;Mn;230;NSM;;;;;N;NON-SPACING RING ABOVE;;;; -030B;COMBINING DOUBLE ACUTE ACCENT;Mn;230;NSM;;;;;N;NON-SPACING DOUBLE ACUTE;;;; -030C;COMBINING CARON;Mn;230;NSM;;;;;N;NON-SPACING HACEK;;;; -030D;COMBINING VERTICAL LINE ABOVE;Mn;230;NSM;;;;;N;NON-SPACING VERTICAL LINE ABOVE;;;; -030E;COMBINING DOUBLE VERTICAL LINE ABOVE;Mn;230;NSM;;;;;N;NON-SPACING DOUBLE VERTICAL LINE ABOVE;;;; -030F;COMBINING DOUBLE GRAVE ACCENT;Mn;230;NSM;;;;;N;NON-SPACING DOUBLE GRAVE;;;; -0310;COMBINING CANDRABINDU;Mn;230;NSM;;;;;N;NON-SPACING CANDRABINDU;;;; -0311;COMBINING INVERTED BREVE;Mn;230;NSM;;;;;N;NON-SPACING INVERTED BREVE;;;; -0312;COMBINING TURNED COMMA ABOVE;Mn;230;NSM;;;;;N;NON-SPACING TURNED COMMA ABOVE;;;; -0313;COMBINING COMMA ABOVE;Mn;230;NSM;;;;;N;NON-SPACING COMMA ABOVE;;;; -0314;COMBINING REVERSED COMMA ABOVE;Mn;230;NSM;;;;;N;NON-SPACING REVERSED COMMA ABOVE;;;; -0315;COMBINING COMMA ABOVE RIGHT;Mn;232;NSM;;;;;N;NON-SPACING COMMA ABOVE RIGHT;;;; -0316;COMBINING GRAVE ACCENT BELOW;Mn;220;NSM;;;;;N;NON-SPACING GRAVE BELOW;;;; -0317;COMBINING ACUTE ACCENT BELOW;Mn;220;NSM;;;;;N;NON-SPACING ACUTE BELOW;;;; -0318;COMBINING LEFT TACK BELOW;Mn;220;NSM;;;;;N;NON-SPACING LEFT TACK BELOW;;;; -0319;COMBINING RIGHT TACK BELOW;Mn;220;NSM;;;;;N;NON-SPACING RIGHT TACK BELOW;;;; -031A;COMBINING LEFT ANGLE ABOVE;Mn;232;NSM;;;;;N;NON-SPACING LEFT ANGLE ABOVE;;;; -031B;COMBINING HORN;Mn;216;NSM;;;;;N;NON-SPACING HORN;;;; -031C;COMBINING LEFT HALF RING BELOW;Mn;220;NSM;;;;;N;NON-SPACING LEFT HALF RING BELOW;;;; -031D;COMBINING UP TACK BELOW;Mn;220;NSM;;;;;N;NON-SPACING UP TACK BELOW;;;; -031E;COMBINING DOWN TACK BELOW;Mn;220;NSM;;;;;N;NON-SPACING DOWN TACK BELOW;;;; -031F;COMBINING PLUS SIGN BELOW;Mn;220;NSM;;;;;N;NON-SPACING PLUS SIGN BELOW;;;; -0320;COMBINING MINUS SIGN BELOW;Mn;220;NSM;;;;;N;NON-SPACING MINUS SIGN BELOW;;;; -0321;COMBINING PALATALIZED HOOK BELOW;Mn;202;NSM;;;;;N;NON-SPACING PALATALIZED HOOK BELOW;;;; -0322;COMBINING RETROFLEX HOOK BELOW;Mn;202;NSM;;;;;N;NON-SPACING RETROFLEX HOOK BELOW;;;; -0323;COMBINING DOT BELOW;Mn;220;NSM;;;;;N;NON-SPACING DOT BELOW;;;; -0324;COMBINING DIAERESIS BELOW;Mn;220;NSM;;;;;N;NON-SPACING DOUBLE DOT BELOW;;;; -0325;COMBINING RING BELOW;Mn;220;NSM;;;;;N;NON-SPACING RING BELOW;;;; -0326;COMBINING COMMA BELOW;Mn;220;NSM;;;;;N;NON-SPACING COMMA BELOW;;;; -0327;COMBINING CEDILLA;Mn;202;NSM;;;;;N;NON-SPACING CEDILLA;;;; -0328;COMBINING OGONEK;Mn;202;NSM;;;;;N;NON-SPACING OGONEK;;;; -0329;COMBINING VERTICAL LINE BELOW;Mn;220;NSM;;;;;N;NON-SPACING VERTICAL LINE BELOW;;;; -032A;COMBINING BRIDGE BELOW;Mn;220;NSM;;;;;N;NON-SPACING BRIDGE BELOW;;;; -032B;COMBINING INVERTED DOUBLE ARCH BELOW;Mn;220;NSM;;;;;N;NON-SPACING INVERTED DOUBLE ARCH BELOW;;;; -032C;COMBINING CARON BELOW;Mn;220;NSM;;;;;N;NON-SPACING HACEK BELOW;;;; -032D;COMBINING CIRCUMFLEX ACCENT BELOW;Mn;220;NSM;;;;;N;NON-SPACING CIRCUMFLEX BELOW;;;; -032E;COMBINING BREVE BELOW;Mn;220;NSM;;;;;N;NON-SPACING BREVE BELOW;;;; -032F;COMBINING INVERTED BREVE BELOW;Mn;220;NSM;;;;;N;NON-SPACING INVERTED BREVE BELOW;;;; -0330;COMBINING TILDE BELOW;Mn;220;NSM;;;;;N;NON-SPACING TILDE BELOW;;;; -0331;COMBINING MACRON BELOW;Mn;220;NSM;;;;;N;NON-SPACING MACRON BELOW;;;; -0332;COMBINING LOW LINE;Mn;220;NSM;;;;;N;NON-SPACING UNDERSCORE;;;; -0333;COMBINING DOUBLE LOW LINE;Mn;220;NSM;;;;;N;NON-SPACING DOUBLE UNDERSCORE;;;; -0334;COMBINING TILDE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING TILDE OVERLAY;;;; -0335;COMBINING SHORT STROKE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING SHORT BAR OVERLAY;;;; -0336;COMBINING LONG STROKE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING LONG BAR OVERLAY;;;; -0337;COMBINING SHORT SOLIDUS OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING SHORT SLASH OVERLAY;;;; -0338;COMBINING LONG SOLIDUS OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING LONG SLASH OVERLAY;;;; -0339;COMBINING RIGHT HALF RING BELOW;Mn;220;NSM;;;;;N;NON-SPACING RIGHT HALF RING BELOW;;;; -033A;COMBINING INVERTED BRIDGE BELOW;Mn;220;NSM;;;;;N;NON-SPACING INVERTED BRIDGE BELOW;;;; -033B;COMBINING SQUARE BELOW;Mn;220;NSM;;;;;N;NON-SPACING SQUARE BELOW;;;; -033C;COMBINING SEAGULL BELOW;Mn;220;NSM;;;;;N;NON-SPACING SEAGULL BELOW;;;; -033D;COMBINING X ABOVE;Mn;230;NSM;;;;;N;NON-SPACING X ABOVE;;;; -033E;COMBINING VERTICAL TILDE;Mn;230;NSM;;;;;N;NON-SPACING VERTICAL TILDE;;;; -033F;COMBINING DOUBLE OVERLINE;Mn;230;NSM;;;;;N;NON-SPACING DOUBLE OVERSCORE;;;; -0340;COMBINING GRAVE TONE MARK;Mn;230;NSM;0300;;;;N;NON-SPACING GRAVE TONE MARK;;;; -0341;COMBINING ACUTE TONE MARK;Mn;230;NSM;0301;;;;N;NON-SPACING ACUTE TONE MARK;;;; -0342;COMBINING GREEK PERISPOMENI;Mn;230;NSM;;;;;N;;;;; -0343;COMBINING GREEK KORONIS;Mn;230;NSM;0313;;;;N;;;;; -0344;COMBINING GREEK DIALYTIKA TONOS;Mn;230;NSM;0308 0301;;;;N;GREEK NON-SPACING DIAERESIS TONOS;;;; -0345;COMBINING GREEK YPOGEGRAMMENI;Mn;240;NSM;;;;;N;GREEK NON-SPACING IOTA BELOW;;0399;;0399 -0346;COMBINING BRIDGE ABOVE;Mn;230;NSM;;;;;N;;;;; -0347;COMBINING EQUALS SIGN BELOW;Mn;220;NSM;;;;;N;;;;; -0348;COMBINING DOUBLE VERTICAL LINE BELOW;Mn;220;NSM;;;;;N;;;;; -0349;COMBINING LEFT ANGLE BELOW;Mn;220;NSM;;;;;N;;;;; -034A;COMBINING NOT TILDE ABOVE;Mn;230;NSM;;;;;N;;;;; -034B;COMBINING HOMOTHETIC ABOVE;Mn;230;NSM;;;;;N;;;;; -034C;COMBINING ALMOST EQUAL TO ABOVE;Mn;230;NSM;;;;;N;;;;; -034D;COMBINING LEFT RIGHT ARROW BELOW;Mn;220;NSM;;;;;N;;;;; -034E;COMBINING UPWARDS ARROW BELOW;Mn;220;NSM;;;;;N;;;;; -034F;COMBINING GRAPHEME JOINER;Mn;0;NSM;;;;;N;;;;; -0350;COMBINING RIGHT ARROWHEAD ABOVE;Mn;230;NSM;;;;;N;;;;; -0351;COMBINING LEFT HALF RING ABOVE;Mn;230;NSM;;;;;N;;;;; -0352;COMBINING FERMATA;Mn;230;NSM;;;;;N;;;;; -0353;COMBINING X BELOW;Mn;220;NSM;;;;;N;;;;; -0354;COMBINING LEFT ARROWHEAD BELOW;Mn;220;NSM;;;;;N;;;;; -0355;COMBINING RIGHT ARROWHEAD BELOW;Mn;220;NSM;;;;;N;;;;; -0356;COMBINING RIGHT ARROWHEAD AND UP ARROWHEAD BELOW;Mn;220;NSM;;;;;N;;;;; -0357;COMBINING RIGHT HALF RING ABOVE;Mn;230;NSM;;;;;N;;;;; -0358;COMBINING DOT ABOVE RIGHT;Mn;232;NSM;;;;;N;;;;; -0359;COMBINING ASTERISK BELOW;Mn;220;NSM;;;;;N;;;;; -035A;COMBINING DOUBLE RING BELOW;Mn;220;NSM;;;;;N;;;;; -035B;COMBINING ZIGZAG ABOVE;Mn;230;NSM;;;;;N;;;;; -035C;COMBINING DOUBLE BREVE BELOW;Mn;233;NSM;;;;;N;;;;; -035D;COMBINING DOUBLE BREVE;Mn;234;NSM;;;;;N;;;;; -035E;COMBINING DOUBLE MACRON;Mn;234;NSM;;;;;N;;;;; -035F;COMBINING DOUBLE MACRON BELOW;Mn;233;NSM;;;;;N;;;;; -0360;COMBINING DOUBLE TILDE;Mn;234;NSM;;;;;N;;;;; -0361;COMBINING DOUBLE INVERTED BREVE;Mn;234;NSM;;;;;N;;;;; -0362;COMBINING DOUBLE RIGHTWARDS ARROW BELOW;Mn;233;NSM;;;;;N;;;;; -0363;COMBINING LATIN SMALL LETTER A;Mn;230;NSM;;;;;N;;;;; -0364;COMBINING LATIN SMALL LETTER E;Mn;230;NSM;;;;;N;;;;; -0365;COMBINING LATIN SMALL LETTER I;Mn;230;NSM;;;;;N;;;;; -0366;COMBINING LATIN SMALL LETTER O;Mn;230;NSM;;;;;N;;;;; -0367;COMBINING LATIN SMALL LETTER U;Mn;230;NSM;;;;;N;;;;; -0368;COMBINING LATIN SMALL LETTER C;Mn;230;NSM;;;;;N;;;;; -0369;COMBINING LATIN SMALL LETTER D;Mn;230;NSM;;;;;N;;;;; -036A;COMBINING LATIN SMALL LETTER H;Mn;230;NSM;;;;;N;;;;; -036B;COMBINING LATIN SMALL LETTER M;Mn;230;NSM;;;;;N;;;;; -036C;COMBINING LATIN SMALL LETTER R;Mn;230;NSM;;;;;N;;;;; -036D;COMBINING LATIN SMALL LETTER T;Mn;230;NSM;;;;;N;;;;; -036E;COMBINING LATIN SMALL LETTER V;Mn;230;NSM;;;;;N;;;;; -036F;COMBINING LATIN SMALL LETTER X;Mn;230;NSM;;;;;N;;;;; -0370;GREEK CAPITAL LETTER HETA;Lu;0;L;;;;;N;;;;0371; -0371;GREEK SMALL LETTER HETA;Ll;0;L;;;;;N;;;0370;;0370 -0372;GREEK CAPITAL LETTER ARCHAIC SAMPI;Lu;0;L;;;;;N;;;;0373; -0373;GREEK SMALL LETTER ARCHAIC SAMPI;Ll;0;L;;;;;N;;;0372;;0372 -0374;GREEK NUMERAL SIGN;Lm;0;ON;02B9;;;;N;GREEK UPPER NUMERAL SIGN;;;; -0375;GREEK LOWER NUMERAL SIGN;Sk;0;ON;;;;;N;;;;; -0376;GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA;Lu;0;L;;;;;N;;;;0377; -0377;GREEK SMALL LETTER PAMPHYLIAN DIGAMMA;Ll;0;L;;;;;N;;;0376;;0376 -037A;GREEK YPOGEGRAMMENI;Lm;0;L; 0020 0345;;;;N;GREEK SPACING IOTA BELOW;;;; -037B;GREEK SMALL REVERSED LUNATE SIGMA SYMBOL;Ll;0;L;;;;;N;;;03FD;;03FD -037C;GREEK SMALL DOTTED LUNATE SIGMA SYMBOL;Ll;0;L;;;;;N;;;03FE;;03FE -037D;GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL;Ll;0;L;;;;;N;;;03FF;;03FF -037E;GREEK QUESTION MARK;Po;0;ON;003B;;;;N;;;;; -0384;GREEK TONOS;Sk;0;ON; 0020 0301;;;;N;GREEK SPACING TONOS;;;; -0385;GREEK DIALYTIKA TONOS;Sk;0;ON;00A8 0301;;;;N;GREEK SPACING DIAERESIS TONOS;;;; -0386;GREEK CAPITAL LETTER ALPHA WITH TONOS;Lu;0;L;0391 0301;;;;N;GREEK CAPITAL LETTER ALPHA TONOS;;;03AC; -0387;GREEK ANO TELEIA;Po;0;ON;00B7;;;;N;;;;; -0388;GREEK CAPITAL LETTER EPSILON WITH TONOS;Lu;0;L;0395 0301;;;;N;GREEK CAPITAL LETTER EPSILON TONOS;;;03AD; -0389;GREEK CAPITAL LETTER ETA WITH TONOS;Lu;0;L;0397 0301;;;;N;GREEK CAPITAL LETTER ETA TONOS;;;03AE; -038A;GREEK CAPITAL LETTER IOTA WITH TONOS;Lu;0;L;0399 0301;;;;N;GREEK CAPITAL LETTER IOTA TONOS;;;03AF; -038C;GREEK CAPITAL LETTER OMICRON WITH TONOS;Lu;0;L;039F 0301;;;;N;GREEK CAPITAL LETTER OMICRON TONOS;;;03CC; -038E;GREEK CAPITAL LETTER UPSILON WITH TONOS;Lu;0;L;03A5 0301;;;;N;GREEK CAPITAL LETTER UPSILON TONOS;;;03CD; -038F;GREEK CAPITAL LETTER OMEGA WITH TONOS;Lu;0;L;03A9 0301;;;;N;GREEK CAPITAL LETTER OMEGA TONOS;;;03CE; -0390;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS;Ll;0;L;03CA 0301;;;;N;GREEK SMALL LETTER IOTA DIAERESIS TONOS;;;; -0391;GREEK CAPITAL LETTER ALPHA;Lu;0;L;;;;;N;;;;03B1; -0392;GREEK CAPITAL LETTER BETA;Lu;0;L;;;;;N;;;;03B2; -0393;GREEK CAPITAL LETTER GAMMA;Lu;0;L;;;;;N;;;;03B3; -0394;GREEK CAPITAL LETTER DELTA;Lu;0;L;;;;;N;;;;03B4; -0395;GREEK CAPITAL LETTER EPSILON;Lu;0;L;;;;;N;;;;03B5; -0396;GREEK CAPITAL LETTER ZETA;Lu;0;L;;;;;N;;;;03B6; -0397;GREEK CAPITAL LETTER ETA;Lu;0;L;;;;;N;;;;03B7; -0398;GREEK CAPITAL LETTER THETA;Lu;0;L;;;;;N;;;;03B8; -0399;GREEK CAPITAL LETTER IOTA;Lu;0;L;;;;;N;;;;03B9; -039A;GREEK CAPITAL LETTER KAPPA;Lu;0;L;;;;;N;;;;03BA; -039B;GREEK CAPITAL LETTER LAMDA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER LAMBDA;;;03BB; -039C;GREEK CAPITAL LETTER MU;Lu;0;L;;;;;N;;;;03BC; -039D;GREEK CAPITAL LETTER NU;Lu;0;L;;;;;N;;;;03BD; -039E;GREEK CAPITAL LETTER XI;Lu;0;L;;;;;N;;;;03BE; -039F;GREEK CAPITAL LETTER OMICRON;Lu;0;L;;;;;N;;;;03BF; -03A0;GREEK CAPITAL LETTER PI;Lu;0;L;;;;;N;;;;03C0; -03A1;GREEK CAPITAL LETTER RHO;Lu;0;L;;;;;N;;;;03C1; -03A3;GREEK CAPITAL LETTER SIGMA;Lu;0;L;;;;;N;;;;03C3; -03A4;GREEK CAPITAL LETTER TAU;Lu;0;L;;;;;N;;;;03C4; -03A5;GREEK CAPITAL LETTER UPSILON;Lu;0;L;;;;;N;;;;03C5; -03A6;GREEK CAPITAL LETTER PHI;Lu;0;L;;;;;N;;;;03C6; -03A7;GREEK CAPITAL LETTER CHI;Lu;0;L;;;;;N;;;;03C7; -03A8;GREEK CAPITAL LETTER PSI;Lu;0;L;;;;;N;;;;03C8; -03A9;GREEK CAPITAL LETTER OMEGA;Lu;0;L;;;;;N;;;;03C9; -03AA;GREEK CAPITAL LETTER IOTA WITH DIALYTIKA;Lu;0;L;0399 0308;;;;N;GREEK CAPITAL LETTER IOTA DIAERESIS;;;03CA; -03AB;GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA;Lu;0;L;03A5 0308;;;;N;GREEK CAPITAL LETTER UPSILON DIAERESIS;;;03CB; -03AC;GREEK SMALL LETTER ALPHA WITH TONOS;Ll;0;L;03B1 0301;;;;N;GREEK SMALL LETTER ALPHA TONOS;;0386;;0386 -03AD;GREEK SMALL LETTER EPSILON WITH TONOS;Ll;0;L;03B5 0301;;;;N;GREEK SMALL LETTER EPSILON TONOS;;0388;;0388 -03AE;GREEK SMALL LETTER ETA WITH TONOS;Ll;0;L;03B7 0301;;;;N;GREEK SMALL LETTER ETA TONOS;;0389;;0389 -03AF;GREEK SMALL LETTER IOTA WITH TONOS;Ll;0;L;03B9 0301;;;;N;GREEK SMALL LETTER IOTA TONOS;;038A;;038A -03B0;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS;Ll;0;L;03CB 0301;;;;N;GREEK SMALL LETTER UPSILON DIAERESIS TONOS;;;; -03B1;GREEK SMALL LETTER ALPHA;Ll;0;L;;;;;N;;;0391;;0391 -03B2;GREEK SMALL LETTER BETA;Ll;0;L;;;;;N;;;0392;;0392 -03B3;GREEK SMALL LETTER GAMMA;Ll;0;L;;;;;N;;;0393;;0393 -03B4;GREEK SMALL LETTER DELTA;Ll;0;L;;;;;N;;;0394;;0394 -03B5;GREEK SMALL LETTER EPSILON;Ll;0;L;;;;;N;;;0395;;0395 -03B6;GREEK SMALL LETTER ZETA;Ll;0;L;;;;;N;;;0396;;0396 -03B7;GREEK SMALL LETTER ETA;Ll;0;L;;;;;N;;;0397;;0397 -03B8;GREEK SMALL LETTER THETA;Ll;0;L;;;;;N;;;0398;;0398 -03B9;GREEK SMALL LETTER IOTA;Ll;0;L;;;;;N;;;0399;;0399 -03BA;GREEK SMALL LETTER KAPPA;Ll;0;L;;;;;N;;;039A;;039A -03BB;GREEK SMALL LETTER LAMDA;Ll;0;L;;;;;N;GREEK SMALL LETTER LAMBDA;;039B;;039B -03BC;GREEK SMALL LETTER MU;Ll;0;L;;;;;N;;;039C;;039C -03BD;GREEK SMALL LETTER NU;Ll;0;L;;;;;N;;;039D;;039D -03BE;GREEK SMALL LETTER XI;Ll;0;L;;;;;N;;;039E;;039E -03BF;GREEK SMALL LETTER OMICRON;Ll;0;L;;;;;N;;;039F;;039F -03C0;GREEK SMALL LETTER PI;Ll;0;L;;;;;N;;;03A0;;03A0 -03C1;GREEK SMALL LETTER RHO;Ll;0;L;;;;;N;;;03A1;;03A1 -03C2;GREEK SMALL LETTER FINAL SIGMA;Ll;0;L;;;;;N;;;03A3;;03A3 -03C3;GREEK SMALL LETTER SIGMA;Ll;0;L;;;;;N;;;03A3;;03A3 -03C4;GREEK SMALL LETTER TAU;Ll;0;L;;;;;N;;;03A4;;03A4 -03C5;GREEK SMALL LETTER UPSILON;Ll;0;L;;;;;N;;;03A5;;03A5 -03C6;GREEK SMALL LETTER PHI;Ll;0;L;;;;;N;;;03A6;;03A6 -03C7;GREEK SMALL LETTER CHI;Ll;0;L;;;;;N;;;03A7;;03A7 -03C8;GREEK SMALL LETTER PSI;Ll;0;L;;;;;N;;;03A8;;03A8 -03C9;GREEK SMALL LETTER OMEGA;Ll;0;L;;;;;N;;;03A9;;03A9 -03CA;GREEK SMALL LETTER IOTA WITH DIALYTIKA;Ll;0;L;03B9 0308;;;;N;GREEK SMALL LETTER IOTA DIAERESIS;;03AA;;03AA -03CB;GREEK SMALL LETTER UPSILON WITH DIALYTIKA;Ll;0;L;03C5 0308;;;;N;GREEK SMALL LETTER UPSILON DIAERESIS;;03AB;;03AB -03CC;GREEK SMALL LETTER OMICRON WITH TONOS;Ll;0;L;03BF 0301;;;;N;GREEK SMALL LETTER OMICRON TONOS;;038C;;038C -03CD;GREEK SMALL LETTER UPSILON WITH TONOS;Ll;0;L;03C5 0301;;;;N;GREEK SMALL LETTER UPSILON TONOS;;038E;;038E -03CE;GREEK SMALL LETTER OMEGA WITH TONOS;Ll;0;L;03C9 0301;;;;N;GREEK SMALL LETTER OMEGA TONOS;;038F;;038F -03CF;GREEK CAPITAL KAI SYMBOL;Lu;0;L;;;;;N;;;;03D7; -03D0;GREEK BETA SYMBOL;Ll;0;L; 03B2;;;;N;GREEK SMALL LETTER CURLED BETA;;0392;;0392 -03D1;GREEK THETA SYMBOL;Ll;0;L; 03B8;;;;N;GREEK SMALL LETTER SCRIPT THETA;;0398;;0398 -03D2;GREEK UPSILON WITH HOOK SYMBOL;Lu;0;L; 03A5;;;;N;GREEK CAPITAL LETTER UPSILON HOOK;;;; -03D3;GREEK UPSILON WITH ACUTE AND HOOK SYMBOL;Lu;0;L;03D2 0301;;;;N;GREEK CAPITAL LETTER UPSILON HOOK TONOS;;;; -03D4;GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL;Lu;0;L;03D2 0308;;;;N;GREEK CAPITAL LETTER UPSILON HOOK DIAERESIS;;;; -03D5;GREEK PHI SYMBOL;Ll;0;L; 03C6;;;;N;GREEK SMALL LETTER SCRIPT PHI;;03A6;;03A6 -03D6;GREEK PI SYMBOL;Ll;0;L; 03C0;;;;N;GREEK SMALL LETTER OMEGA PI;;03A0;;03A0 -03D7;GREEK KAI SYMBOL;Ll;0;L;;;;;N;;;03CF;;03CF -03D8;GREEK LETTER ARCHAIC KOPPA;Lu;0;L;;;;;N;;;;03D9; -03D9;GREEK SMALL LETTER ARCHAIC KOPPA;Ll;0;L;;;;;N;;;03D8;;03D8 -03DA;GREEK LETTER STIGMA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER STIGMA;;;03DB; -03DB;GREEK SMALL LETTER STIGMA;Ll;0;L;;;;;N;;;03DA;;03DA -03DC;GREEK LETTER DIGAMMA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER DIGAMMA;;;03DD; -03DD;GREEK SMALL LETTER DIGAMMA;Ll;0;L;;;;;N;;;03DC;;03DC -03DE;GREEK LETTER KOPPA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER KOPPA;;;03DF; -03DF;GREEK SMALL LETTER KOPPA;Ll;0;L;;;;;N;;;03DE;;03DE -03E0;GREEK LETTER SAMPI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER SAMPI;;;03E1; -03E1;GREEK SMALL LETTER SAMPI;Ll;0;L;;;;;N;;;03E0;;03E0 -03E2;COPTIC CAPITAL LETTER SHEI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER SHEI;;;03E3; -03E3;COPTIC SMALL LETTER SHEI;Ll;0;L;;;;;N;GREEK SMALL LETTER SHEI;;03E2;;03E2 -03E4;COPTIC CAPITAL LETTER FEI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER FEI;;;03E5; -03E5;COPTIC SMALL LETTER FEI;Ll;0;L;;;;;N;GREEK SMALL LETTER FEI;;03E4;;03E4 -03E6;COPTIC CAPITAL LETTER KHEI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER KHEI;;;03E7; -03E7;COPTIC SMALL LETTER KHEI;Ll;0;L;;;;;N;GREEK SMALL LETTER KHEI;;03E6;;03E6 -03E8;COPTIC CAPITAL LETTER HORI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER HORI;;;03E9; -03E9;COPTIC SMALL LETTER HORI;Ll;0;L;;;;;N;GREEK SMALL LETTER HORI;;03E8;;03E8 -03EA;COPTIC CAPITAL LETTER GANGIA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER GANGIA;;;03EB; -03EB;COPTIC SMALL LETTER GANGIA;Ll;0;L;;;;;N;GREEK SMALL LETTER GANGIA;;03EA;;03EA -03EC;COPTIC CAPITAL LETTER SHIMA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER SHIMA;;;03ED; -03ED;COPTIC SMALL LETTER SHIMA;Ll;0;L;;;;;N;GREEK SMALL LETTER SHIMA;;03EC;;03EC -03EE;COPTIC CAPITAL LETTER DEI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER DEI;;;03EF; -03EF;COPTIC SMALL LETTER DEI;Ll;0;L;;;;;N;GREEK SMALL LETTER DEI;;03EE;;03EE -03F0;GREEK KAPPA SYMBOL;Ll;0;L; 03BA;;;;N;GREEK SMALL LETTER SCRIPT KAPPA;;039A;;039A -03F1;GREEK RHO SYMBOL;Ll;0;L; 03C1;;;;N;GREEK SMALL LETTER TAILED RHO;;03A1;;03A1 -03F2;GREEK LUNATE SIGMA SYMBOL;Ll;0;L; 03C2;;;;N;GREEK SMALL LETTER LUNATE SIGMA;;03F9;;03F9 -03F3;GREEK LETTER YOT;Ll;0;L;;;;;N;;;;; -03F4;GREEK CAPITAL THETA SYMBOL;Lu;0;L; 0398;;;;N;;;;03B8; -03F5;GREEK LUNATE EPSILON SYMBOL;Ll;0;L; 03B5;;;;N;;;0395;;0395 -03F6;GREEK REVERSED LUNATE EPSILON SYMBOL;Sm;0;ON;;;;;N;;;;; -03F7;GREEK CAPITAL LETTER SHO;Lu;0;L;;;;;N;;;;03F8; -03F8;GREEK SMALL LETTER SHO;Ll;0;L;;;;;N;;;03F7;;03F7 -03F9;GREEK CAPITAL LUNATE SIGMA SYMBOL;Lu;0;L; 03A3;;;;N;;;;03F2; -03FA;GREEK CAPITAL LETTER SAN;Lu;0;L;;;;;N;;;;03FB; -03FB;GREEK SMALL LETTER SAN;Ll;0;L;;;;;N;;;03FA;;03FA -03FC;GREEK RHO WITH STROKE SYMBOL;Ll;0;L;;;;;N;;;;; -03FD;GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL;Lu;0;L;;;;;N;;;;037B; -03FE;GREEK CAPITAL DOTTED LUNATE SIGMA SYMBOL;Lu;0;L;;;;;N;;;;037C; -03FF;GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL;Lu;0;L;;;;;N;;;;037D; -0400;CYRILLIC CAPITAL LETTER IE WITH GRAVE;Lu;0;L;0415 0300;;;;N;;;;0450; -0401;CYRILLIC CAPITAL LETTER IO;Lu;0;L;0415 0308;;;;N;;;;0451; -0402;CYRILLIC CAPITAL LETTER DJE;Lu;0;L;;;;;N;;;;0452; -0403;CYRILLIC CAPITAL LETTER GJE;Lu;0;L;0413 0301;;;;N;;;;0453; -0404;CYRILLIC CAPITAL LETTER UKRAINIAN IE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER E;;;0454; -0405;CYRILLIC CAPITAL LETTER DZE;Lu;0;L;;;;;N;;;;0455; -0406;CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER I;;;0456; -0407;CYRILLIC CAPITAL LETTER YI;Lu;0;L;0406 0308;;;;N;;;;0457; -0408;CYRILLIC CAPITAL LETTER JE;Lu;0;L;;;;;N;;;;0458; -0409;CYRILLIC CAPITAL LETTER LJE;Lu;0;L;;;;;N;;;;0459; -040A;CYRILLIC CAPITAL LETTER NJE;Lu;0;L;;;;;N;;;;045A; -040B;CYRILLIC CAPITAL LETTER TSHE;Lu;0;L;;;;;N;;;;045B; -040C;CYRILLIC CAPITAL LETTER KJE;Lu;0;L;041A 0301;;;;N;;;;045C; -040D;CYRILLIC CAPITAL LETTER I WITH GRAVE;Lu;0;L;0418 0300;;;;N;;;;045D; -040E;CYRILLIC CAPITAL LETTER SHORT U;Lu;0;L;0423 0306;;;;N;;;;045E; -040F;CYRILLIC CAPITAL LETTER DZHE;Lu;0;L;;;;;N;;;;045F; -0410;CYRILLIC CAPITAL LETTER A;Lu;0;L;;;;;N;;;;0430; -0411;CYRILLIC CAPITAL LETTER BE;Lu;0;L;;;;;N;;;;0431; -0412;CYRILLIC CAPITAL LETTER VE;Lu;0;L;;;;;N;;;;0432; -0413;CYRILLIC CAPITAL LETTER GHE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER GE;;;0433; -0414;CYRILLIC CAPITAL LETTER DE;Lu;0;L;;;;;N;;;;0434; -0415;CYRILLIC CAPITAL LETTER IE;Lu;0;L;;;;;N;;;;0435; -0416;CYRILLIC CAPITAL LETTER ZHE;Lu;0;L;;;;;N;;;;0436; -0417;CYRILLIC CAPITAL LETTER ZE;Lu;0;L;;;;;N;;;;0437; -0418;CYRILLIC CAPITAL LETTER I;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER II;;;0438; -0419;CYRILLIC CAPITAL LETTER SHORT I;Lu;0;L;0418 0306;;;;N;CYRILLIC CAPITAL LETTER SHORT II;;;0439; -041A;CYRILLIC CAPITAL LETTER KA;Lu;0;L;;;;;N;;;;043A; -041B;CYRILLIC CAPITAL LETTER EL;Lu;0;L;;;;;N;;;;043B; -041C;CYRILLIC CAPITAL LETTER EM;Lu;0;L;;;;;N;;;;043C; -041D;CYRILLIC CAPITAL LETTER EN;Lu;0;L;;;;;N;;;;043D; -041E;CYRILLIC CAPITAL LETTER O;Lu;0;L;;;;;N;;;;043E; -041F;CYRILLIC CAPITAL LETTER PE;Lu;0;L;;;;;N;;;;043F; -0420;CYRILLIC CAPITAL LETTER ER;Lu;0;L;;;;;N;;;;0440; -0421;CYRILLIC CAPITAL LETTER ES;Lu;0;L;;;;;N;;;;0441; -0422;CYRILLIC CAPITAL LETTER TE;Lu;0;L;;;;;N;;;;0442; -0423;CYRILLIC CAPITAL LETTER U;Lu;0;L;;;;;N;;;;0443; -0424;CYRILLIC CAPITAL LETTER EF;Lu;0;L;;;;;N;;;;0444; -0425;CYRILLIC CAPITAL LETTER HA;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KHA;;;0445; -0426;CYRILLIC CAPITAL LETTER TSE;Lu;0;L;;;;;N;;;;0446; -0427;CYRILLIC CAPITAL LETTER CHE;Lu;0;L;;;;;N;;;;0447; -0428;CYRILLIC CAPITAL LETTER SHA;Lu;0;L;;;;;N;;;;0448; -0429;CYRILLIC CAPITAL LETTER SHCHA;Lu;0;L;;;;;N;;;;0449; -042A;CYRILLIC CAPITAL LETTER HARD SIGN;Lu;0;L;;;;;N;;;;044A; -042B;CYRILLIC CAPITAL LETTER YERU;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER YERI;;;044B; -042C;CYRILLIC CAPITAL LETTER SOFT SIGN;Lu;0;L;;;;;N;;;;044C; -042D;CYRILLIC CAPITAL LETTER E;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER REVERSED E;;;044D; -042E;CYRILLIC CAPITAL LETTER YU;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER IU;;;044E; -042F;CYRILLIC CAPITAL LETTER YA;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER IA;;;044F; -0430;CYRILLIC SMALL LETTER A;Ll;0;L;;;;;N;;;0410;;0410 -0431;CYRILLIC SMALL LETTER BE;Ll;0;L;;;;;N;;;0411;;0411 -0432;CYRILLIC SMALL LETTER VE;Ll;0;L;;;;;N;;;0412;;0412 -0433;CYRILLIC SMALL LETTER GHE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER GE;;0413;;0413 -0434;CYRILLIC SMALL LETTER DE;Ll;0;L;;;;;N;;;0414;;0414 -0435;CYRILLIC SMALL LETTER IE;Ll;0;L;;;;;N;;;0415;;0415 -0436;CYRILLIC SMALL LETTER ZHE;Ll;0;L;;;;;N;;;0416;;0416 -0437;CYRILLIC SMALL LETTER ZE;Ll;0;L;;;;;N;;;0417;;0417 -0438;CYRILLIC SMALL LETTER I;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER II;;0418;;0418 -0439;CYRILLIC SMALL LETTER SHORT I;Ll;0;L;0438 0306;;;;N;CYRILLIC SMALL LETTER SHORT II;;0419;;0419 -043A;CYRILLIC SMALL LETTER KA;Ll;0;L;;;;;N;;;041A;;041A -043B;CYRILLIC SMALL LETTER EL;Ll;0;L;;;;;N;;;041B;;041B -043C;CYRILLIC SMALL LETTER EM;Ll;0;L;;;;;N;;;041C;;041C -043D;CYRILLIC SMALL LETTER EN;Ll;0;L;;;;;N;;;041D;;041D -043E;CYRILLIC SMALL LETTER O;Ll;0;L;;;;;N;;;041E;;041E -043F;CYRILLIC SMALL LETTER PE;Ll;0;L;;;;;N;;;041F;;041F -0440;CYRILLIC SMALL LETTER ER;Ll;0;L;;;;;N;;;0420;;0420 -0441;CYRILLIC SMALL LETTER ES;Ll;0;L;;;;;N;;;0421;;0421 -0442;CYRILLIC SMALL LETTER TE;Ll;0;L;;;;;N;;;0422;;0422 -0443;CYRILLIC SMALL LETTER U;Ll;0;L;;;;;N;;;0423;;0423 -0444;CYRILLIC SMALL LETTER EF;Ll;0;L;;;;;N;;;0424;;0424 -0445;CYRILLIC SMALL LETTER HA;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KHA;;0425;;0425 -0446;CYRILLIC SMALL LETTER TSE;Ll;0;L;;;;;N;;;0426;;0426 -0447;CYRILLIC SMALL LETTER CHE;Ll;0;L;;;;;N;;;0427;;0427 -0448;CYRILLIC SMALL LETTER SHA;Ll;0;L;;;;;N;;;0428;;0428 -0449;CYRILLIC SMALL LETTER SHCHA;Ll;0;L;;;;;N;;;0429;;0429 -044A;CYRILLIC SMALL LETTER HARD SIGN;Ll;0;L;;;;;N;;;042A;;042A -044B;CYRILLIC SMALL LETTER YERU;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER YERI;;042B;;042B -044C;CYRILLIC SMALL LETTER SOFT SIGN;Ll;0;L;;;;;N;;;042C;;042C -044D;CYRILLIC SMALL LETTER E;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER REVERSED E;;042D;;042D -044E;CYRILLIC SMALL LETTER YU;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER IU;;042E;;042E -044F;CYRILLIC SMALL LETTER YA;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER IA;;042F;;042F -0450;CYRILLIC SMALL LETTER IE WITH GRAVE;Ll;0;L;0435 0300;;;;N;;;0400;;0400 -0451;CYRILLIC SMALL LETTER IO;Ll;0;L;0435 0308;;;;N;;;0401;;0401 -0452;CYRILLIC SMALL LETTER DJE;Ll;0;L;;;;;N;;;0402;;0402 -0453;CYRILLIC SMALL LETTER GJE;Ll;0;L;0433 0301;;;;N;;;0403;;0403 -0454;CYRILLIC SMALL LETTER UKRAINIAN IE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER E;;0404;;0404 -0455;CYRILLIC SMALL LETTER DZE;Ll;0;L;;;;;N;;;0405;;0405 -0456;CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER I;;0406;;0406 -0457;CYRILLIC SMALL LETTER YI;Ll;0;L;0456 0308;;;;N;;;0407;;0407 -0458;CYRILLIC SMALL LETTER JE;Ll;0;L;;;;;N;;;0408;;0408 -0459;CYRILLIC SMALL LETTER LJE;Ll;0;L;;;;;N;;;0409;;0409 -045A;CYRILLIC SMALL LETTER NJE;Ll;0;L;;;;;N;;;040A;;040A -045B;CYRILLIC SMALL LETTER TSHE;Ll;0;L;;;;;N;;;040B;;040B -045C;CYRILLIC SMALL LETTER KJE;Ll;0;L;043A 0301;;;;N;;;040C;;040C -045D;CYRILLIC SMALL LETTER I WITH GRAVE;Ll;0;L;0438 0300;;;;N;;;040D;;040D -045E;CYRILLIC SMALL LETTER SHORT U;Ll;0;L;0443 0306;;;;N;;;040E;;040E -045F;CYRILLIC SMALL LETTER DZHE;Ll;0;L;;;;;N;;;040F;;040F -0460;CYRILLIC CAPITAL LETTER OMEGA;Lu;0;L;;;;;N;;;;0461; -0461;CYRILLIC SMALL LETTER OMEGA;Ll;0;L;;;;;N;;;0460;;0460 -0462;CYRILLIC CAPITAL LETTER YAT;Lu;0;L;;;;;N;;;;0463; -0463;CYRILLIC SMALL LETTER YAT;Ll;0;L;;;;;N;;;0462;;0462 -0464;CYRILLIC CAPITAL LETTER IOTIFIED E;Lu;0;L;;;;;N;;;;0465; -0465;CYRILLIC SMALL LETTER IOTIFIED E;Ll;0;L;;;;;N;;;0464;;0464 -0466;CYRILLIC CAPITAL LETTER LITTLE YUS;Lu;0;L;;;;;N;;;;0467; -0467;CYRILLIC SMALL LETTER LITTLE YUS;Ll;0;L;;;;;N;;;0466;;0466 -0468;CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS;Lu;0;L;;;;;N;;;;0469; -0469;CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS;Ll;0;L;;;;;N;;;0468;;0468 -046A;CYRILLIC CAPITAL LETTER BIG YUS;Lu;0;L;;;;;N;;;;046B; -046B;CYRILLIC SMALL LETTER BIG YUS;Ll;0;L;;;;;N;;;046A;;046A -046C;CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS;Lu;0;L;;;;;N;;;;046D; -046D;CYRILLIC SMALL LETTER IOTIFIED BIG YUS;Ll;0;L;;;;;N;;;046C;;046C -046E;CYRILLIC CAPITAL LETTER KSI;Lu;0;L;;;;;N;;;;046F; -046F;CYRILLIC SMALL LETTER KSI;Ll;0;L;;;;;N;;;046E;;046E -0470;CYRILLIC CAPITAL LETTER PSI;Lu;0;L;;;;;N;;;;0471; -0471;CYRILLIC SMALL LETTER PSI;Ll;0;L;;;;;N;;;0470;;0470 -0472;CYRILLIC CAPITAL LETTER FITA;Lu;0;L;;;;;N;;;;0473; -0473;CYRILLIC SMALL LETTER FITA;Ll;0;L;;;;;N;;;0472;;0472 -0474;CYRILLIC CAPITAL LETTER IZHITSA;Lu;0;L;;;;;N;;;;0475; -0475;CYRILLIC SMALL LETTER IZHITSA;Ll;0;L;;;;;N;;;0474;;0474 -0476;CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT;Lu;0;L;0474 030F;;;;N;CYRILLIC CAPITAL LETTER IZHITSA DOUBLE GRAVE;;;0477; -0477;CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT;Ll;0;L;0475 030F;;;;N;CYRILLIC SMALL LETTER IZHITSA DOUBLE GRAVE;;0476;;0476 -0478;CYRILLIC CAPITAL LETTER UK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER UK DIGRAPH;;;0479; -0479;CYRILLIC SMALL LETTER UK;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER UK DIGRAPH;;0478;;0478 -047A;CYRILLIC CAPITAL LETTER ROUND OMEGA;Lu;0;L;;;;;N;;;;047B; -047B;CYRILLIC SMALL LETTER ROUND OMEGA;Ll;0;L;;;;;N;;;047A;;047A -047C;CYRILLIC CAPITAL LETTER OMEGA WITH TITLO;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER OMEGA TITLO;;;047D; -047D;CYRILLIC SMALL LETTER OMEGA WITH TITLO;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER OMEGA TITLO;;047C;;047C -047E;CYRILLIC CAPITAL LETTER OT;Lu;0;L;;;;;N;;;;047F; -047F;CYRILLIC SMALL LETTER OT;Ll;0;L;;;;;N;;;047E;;047E -0480;CYRILLIC CAPITAL LETTER KOPPA;Lu;0;L;;;;;N;;;;0481; -0481;CYRILLIC SMALL LETTER KOPPA;Ll;0;L;;;;;N;;;0480;;0480 -0482;CYRILLIC THOUSANDS SIGN;So;0;L;;;;;N;;;;; -0483;COMBINING CYRILLIC TITLO;Mn;230;NSM;;;;;N;CYRILLIC NON-SPACING TITLO;;;; -0484;COMBINING CYRILLIC PALATALIZATION;Mn;230;NSM;;;;;N;CYRILLIC NON-SPACING PALATALIZATION;;;; -0485;COMBINING CYRILLIC DASIA PNEUMATA;Mn;230;NSM;;;;;N;CYRILLIC NON-SPACING DASIA PNEUMATA;;;; -0486;COMBINING CYRILLIC PSILI PNEUMATA;Mn;230;NSM;;;;;N;CYRILLIC NON-SPACING PSILI PNEUMATA;;;; -0487;COMBINING CYRILLIC POKRYTIE;Mn;230;NSM;;;;;N;;;;; -0488;COMBINING CYRILLIC HUNDRED THOUSANDS SIGN;Me;0;NSM;;;;;N;;;;; -0489;COMBINING CYRILLIC MILLIONS SIGN;Me;0;NSM;;;;;N;;;;; -048A;CYRILLIC CAPITAL LETTER SHORT I WITH TAIL;Lu;0;L;;;;;N;;;;048B; -048B;CYRILLIC SMALL LETTER SHORT I WITH TAIL;Ll;0;L;;;;;N;;;048A;;048A -048C;CYRILLIC CAPITAL LETTER SEMISOFT SIGN;Lu;0;L;;;;;N;;;;048D; -048D;CYRILLIC SMALL LETTER SEMISOFT SIGN;Ll;0;L;;;;;N;;;048C;;048C -048E;CYRILLIC CAPITAL LETTER ER WITH TICK;Lu;0;L;;;;;N;;;;048F; -048F;CYRILLIC SMALL LETTER ER WITH TICK;Ll;0;L;;;;;N;;;048E;;048E -0490;CYRILLIC CAPITAL LETTER GHE WITH UPTURN;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER GE WITH UPTURN;;;0491; -0491;CYRILLIC SMALL LETTER GHE WITH UPTURN;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER GE WITH UPTURN;;0490;;0490 -0492;CYRILLIC CAPITAL LETTER GHE WITH STROKE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER GE BAR;;;0493; -0493;CYRILLIC SMALL LETTER GHE WITH STROKE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER GE BAR;;0492;;0492 -0494;CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER GE HOOK;;;0495; -0495;CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER GE HOOK;;0494;;0494 -0496;CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER ZHE WITH RIGHT DESCENDER;;;0497; -0497;CYRILLIC SMALL LETTER ZHE WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER ZHE WITH RIGHT DESCENDER;;0496;;0496 -0498;CYRILLIC CAPITAL LETTER ZE WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER ZE CEDILLA;;;0499; -0499;CYRILLIC SMALL LETTER ZE WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER ZE CEDILLA;;0498;;0498 -049A;CYRILLIC CAPITAL LETTER KA WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KA WITH RIGHT DESCENDER;;;049B; -049B;CYRILLIC SMALL LETTER KA WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KA WITH RIGHT DESCENDER;;049A;;049A -049C;CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KA VERTICAL BAR;;;049D; -049D;CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KA VERTICAL BAR;;049C;;049C -049E;CYRILLIC CAPITAL LETTER KA WITH STROKE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KA BAR;;;049F; -049F;CYRILLIC SMALL LETTER KA WITH STROKE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KA BAR;;049E;;049E -04A0;CYRILLIC CAPITAL LETTER BASHKIR KA;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER REVERSED GE KA;;;04A1; -04A1;CYRILLIC SMALL LETTER BASHKIR KA;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER REVERSED GE KA;;04A0;;04A0 -04A2;CYRILLIC CAPITAL LETTER EN WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER EN WITH RIGHT DESCENDER;;;04A3; -04A3;CYRILLIC SMALL LETTER EN WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER EN WITH RIGHT DESCENDER;;04A2;;04A2 -04A4;CYRILLIC CAPITAL LIGATURE EN GHE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER EN GE;;;04A5; -04A5;CYRILLIC SMALL LIGATURE EN GHE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER EN GE;;04A4;;04A4 -04A6;CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER PE HOOK;;;04A7; -04A7;CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER PE HOOK;;04A6;;04A6 -04A8;CYRILLIC CAPITAL LETTER ABKHASIAN HA;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER O HOOK;;;04A9; -04A9;CYRILLIC SMALL LETTER ABKHASIAN HA;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER O HOOK;;04A8;;04A8 -04AA;CYRILLIC CAPITAL LETTER ES WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER ES CEDILLA;;;04AB; -04AB;CYRILLIC SMALL LETTER ES WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER ES CEDILLA;;04AA;;04AA -04AC;CYRILLIC CAPITAL LETTER TE WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER TE WITH RIGHT DESCENDER;;;04AD; -04AD;CYRILLIC SMALL LETTER TE WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER TE WITH RIGHT DESCENDER;;04AC;;04AC -04AE;CYRILLIC CAPITAL LETTER STRAIGHT U;Lu;0;L;;;;;N;;;;04AF; -04AF;CYRILLIC SMALL LETTER STRAIGHT U;Ll;0;L;;;;;N;;;04AE;;04AE -04B0;CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER STRAIGHT U BAR;;;04B1; -04B1;CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER STRAIGHT U BAR;;04B0;;04B0 -04B2;CYRILLIC CAPITAL LETTER HA WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KHA WITH RIGHT DESCENDER;;;04B3; -04B3;CYRILLIC SMALL LETTER HA WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KHA WITH RIGHT DESCENDER;;04B2;;04B2 -04B4;CYRILLIC CAPITAL LIGATURE TE TSE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER TE TSE;;;04B5; -04B5;CYRILLIC SMALL LIGATURE TE TSE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER TE TSE;;04B4;;04B4 -04B6;CYRILLIC CAPITAL LETTER CHE WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER CHE WITH RIGHT DESCENDER;;;04B7; -04B7;CYRILLIC SMALL LETTER CHE WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER CHE WITH RIGHT DESCENDER;;04B6;;04B6 -04B8;CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER CHE VERTICAL BAR;;;04B9; -04B9;CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER CHE VERTICAL BAR;;04B8;;04B8 -04BA;CYRILLIC CAPITAL LETTER SHHA;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER H;;;04BB; -04BB;CYRILLIC SMALL LETTER SHHA;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER H;;04BA;;04BA -04BC;CYRILLIC CAPITAL LETTER ABKHASIAN CHE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER IE HOOK;;;04BD; -04BD;CYRILLIC SMALL LETTER ABKHASIAN CHE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER IE HOOK;;04BC;;04BC -04BE;CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER IE HOOK OGONEK;;;04BF; -04BF;CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER IE HOOK OGONEK;;04BE;;04BE -04C0;CYRILLIC LETTER PALOCHKA;Lu;0;L;;;;;N;CYRILLIC LETTER I;;;04CF; -04C1;CYRILLIC CAPITAL LETTER ZHE WITH BREVE;Lu;0;L;0416 0306;;;;N;CYRILLIC CAPITAL LETTER SHORT ZHE;;;04C2; -04C2;CYRILLIC SMALL LETTER ZHE WITH BREVE;Ll;0;L;0436 0306;;;;N;CYRILLIC SMALL LETTER SHORT ZHE;;04C1;;04C1 -04C3;CYRILLIC CAPITAL LETTER KA WITH HOOK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KA HOOK;;;04C4; -04C4;CYRILLIC SMALL LETTER KA WITH HOOK;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KA HOOK;;04C3;;04C3 -04C5;CYRILLIC CAPITAL LETTER EL WITH TAIL;Lu;0;L;;;;;N;;;;04C6; -04C6;CYRILLIC SMALL LETTER EL WITH TAIL;Ll;0;L;;;;;N;;;04C5;;04C5 -04C7;CYRILLIC CAPITAL LETTER EN WITH HOOK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER EN HOOK;;;04C8; -04C8;CYRILLIC SMALL LETTER EN WITH HOOK;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER EN HOOK;;04C7;;04C7 -04C9;CYRILLIC CAPITAL LETTER EN WITH TAIL;Lu;0;L;;;;;N;;;;04CA; -04CA;CYRILLIC SMALL LETTER EN WITH TAIL;Ll;0;L;;;;;N;;;04C9;;04C9 -04CB;CYRILLIC CAPITAL LETTER KHAKASSIAN CHE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER CHE WITH LEFT DESCENDER;;;04CC; -04CC;CYRILLIC SMALL LETTER KHAKASSIAN CHE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER CHE WITH LEFT DESCENDER;;04CB;;04CB -04CD;CYRILLIC CAPITAL LETTER EM WITH TAIL;Lu;0;L;;;;;N;;;;04CE; -04CE;CYRILLIC SMALL LETTER EM WITH TAIL;Ll;0;L;;;;;N;;;04CD;;04CD -04CF;CYRILLIC SMALL LETTER PALOCHKA;Ll;0;L;;;;;N;;;04C0;;04C0 -04D0;CYRILLIC CAPITAL LETTER A WITH BREVE;Lu;0;L;0410 0306;;;;N;;;;04D1; -04D1;CYRILLIC SMALL LETTER A WITH BREVE;Ll;0;L;0430 0306;;;;N;;;04D0;;04D0 -04D2;CYRILLIC CAPITAL LETTER A WITH DIAERESIS;Lu;0;L;0410 0308;;;;N;;;;04D3; -04D3;CYRILLIC SMALL LETTER A WITH DIAERESIS;Ll;0;L;0430 0308;;;;N;;;04D2;;04D2 -04D4;CYRILLIC CAPITAL LIGATURE A IE;Lu;0;L;;;;;N;;;;04D5; -04D5;CYRILLIC SMALL LIGATURE A IE;Ll;0;L;;;;;N;;;04D4;;04D4 -04D6;CYRILLIC CAPITAL LETTER IE WITH BREVE;Lu;0;L;0415 0306;;;;N;;;;04D7; -04D7;CYRILLIC SMALL LETTER IE WITH BREVE;Ll;0;L;0435 0306;;;;N;;;04D6;;04D6 -04D8;CYRILLIC CAPITAL LETTER SCHWA;Lu;0;L;;;;;N;;;;04D9; -04D9;CYRILLIC SMALL LETTER SCHWA;Ll;0;L;;;;;N;;;04D8;;04D8 -04DA;CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS;Lu;0;L;04D8 0308;;;;N;;;;04DB; -04DB;CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS;Ll;0;L;04D9 0308;;;;N;;;04DA;;04DA -04DC;CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS;Lu;0;L;0416 0308;;;;N;;;;04DD; -04DD;CYRILLIC SMALL LETTER ZHE WITH DIAERESIS;Ll;0;L;0436 0308;;;;N;;;04DC;;04DC -04DE;CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS;Lu;0;L;0417 0308;;;;N;;;;04DF; -04DF;CYRILLIC SMALL LETTER ZE WITH DIAERESIS;Ll;0;L;0437 0308;;;;N;;;04DE;;04DE -04E0;CYRILLIC CAPITAL LETTER ABKHASIAN DZE;Lu;0;L;;;;;N;;;;04E1; -04E1;CYRILLIC SMALL LETTER ABKHASIAN DZE;Ll;0;L;;;;;N;;;04E0;;04E0 -04E2;CYRILLIC CAPITAL LETTER I WITH MACRON;Lu;0;L;0418 0304;;;;N;;;;04E3; -04E3;CYRILLIC SMALL LETTER I WITH MACRON;Ll;0;L;0438 0304;;;;N;;;04E2;;04E2 -04E4;CYRILLIC CAPITAL LETTER I WITH DIAERESIS;Lu;0;L;0418 0308;;;;N;;;;04E5; -04E5;CYRILLIC SMALL LETTER I WITH DIAERESIS;Ll;0;L;0438 0308;;;;N;;;04E4;;04E4 -04E6;CYRILLIC CAPITAL LETTER O WITH DIAERESIS;Lu;0;L;041E 0308;;;;N;;;;04E7; -04E7;CYRILLIC SMALL LETTER O WITH DIAERESIS;Ll;0;L;043E 0308;;;;N;;;04E6;;04E6 -04E8;CYRILLIC CAPITAL LETTER BARRED O;Lu;0;L;;;;;N;;;;04E9; -04E9;CYRILLIC SMALL LETTER BARRED O;Ll;0;L;;;;;N;;;04E8;;04E8 -04EA;CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS;Lu;0;L;04E8 0308;;;;N;;;;04EB; -04EB;CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS;Ll;0;L;04E9 0308;;;;N;;;04EA;;04EA -04EC;CYRILLIC CAPITAL LETTER E WITH DIAERESIS;Lu;0;L;042D 0308;;;;N;;;;04ED; -04ED;CYRILLIC SMALL LETTER E WITH DIAERESIS;Ll;0;L;044D 0308;;;;N;;;04EC;;04EC -04EE;CYRILLIC CAPITAL LETTER U WITH MACRON;Lu;0;L;0423 0304;;;;N;;;;04EF; -04EF;CYRILLIC SMALL LETTER U WITH MACRON;Ll;0;L;0443 0304;;;;N;;;04EE;;04EE -04F0;CYRILLIC CAPITAL LETTER U WITH DIAERESIS;Lu;0;L;0423 0308;;;;N;;;;04F1; -04F1;CYRILLIC SMALL LETTER U WITH DIAERESIS;Ll;0;L;0443 0308;;;;N;;;04F0;;04F0 -04F2;CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE;Lu;0;L;0423 030B;;;;N;;;;04F3; -04F3;CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE;Ll;0;L;0443 030B;;;;N;;;04F2;;04F2 -04F4;CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS;Lu;0;L;0427 0308;;;;N;;;;04F5; -04F5;CYRILLIC SMALL LETTER CHE WITH DIAERESIS;Ll;0;L;0447 0308;;;;N;;;04F4;;04F4 -04F6;CYRILLIC CAPITAL LETTER GHE WITH DESCENDER;Lu;0;L;;;;;N;;;;04F7; -04F7;CYRILLIC SMALL LETTER GHE WITH DESCENDER;Ll;0;L;;;;;N;;;04F6;;04F6 -04F8;CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS;Lu;0;L;042B 0308;;;;N;;;;04F9; -04F9;CYRILLIC SMALL LETTER YERU WITH DIAERESIS;Ll;0;L;044B 0308;;;;N;;;04F8;;04F8 -04FA;CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK;Lu;0;L;;;;;N;;;;04FB; -04FB;CYRILLIC SMALL LETTER GHE WITH STROKE AND HOOK;Ll;0;L;;;;;N;;;04FA;;04FA -04FC;CYRILLIC CAPITAL LETTER HA WITH HOOK;Lu;0;L;;;;;N;;;;04FD; -04FD;CYRILLIC SMALL LETTER HA WITH HOOK;Ll;0;L;;;;;N;;;04FC;;04FC -04FE;CYRILLIC CAPITAL LETTER HA WITH STROKE;Lu;0;L;;;;;N;;;;04FF; -04FF;CYRILLIC SMALL LETTER HA WITH STROKE;Ll;0;L;;;;;N;;;04FE;;04FE -0500;CYRILLIC CAPITAL LETTER KOMI DE;Lu;0;L;;;;;N;;;;0501; -0501;CYRILLIC SMALL LETTER KOMI DE;Ll;0;L;;;;;N;;;0500;;0500 -0502;CYRILLIC CAPITAL LETTER KOMI DJE;Lu;0;L;;;;;N;;;;0503; -0503;CYRILLIC SMALL LETTER KOMI DJE;Ll;0;L;;;;;N;;;0502;;0502 -0504;CYRILLIC CAPITAL LETTER KOMI ZJE;Lu;0;L;;;;;N;;;;0505; -0505;CYRILLIC SMALL LETTER KOMI ZJE;Ll;0;L;;;;;N;;;0504;;0504 -0506;CYRILLIC CAPITAL LETTER KOMI DZJE;Lu;0;L;;;;;N;;;;0507; -0507;CYRILLIC SMALL LETTER KOMI DZJE;Ll;0;L;;;;;N;;;0506;;0506 -0508;CYRILLIC CAPITAL LETTER KOMI LJE;Lu;0;L;;;;;N;;;;0509; -0509;CYRILLIC SMALL LETTER KOMI LJE;Ll;0;L;;;;;N;;;0508;;0508 -050A;CYRILLIC CAPITAL LETTER KOMI NJE;Lu;0;L;;;;;N;;;;050B; -050B;CYRILLIC SMALL LETTER KOMI NJE;Ll;0;L;;;;;N;;;050A;;050A -050C;CYRILLIC CAPITAL LETTER KOMI SJE;Lu;0;L;;;;;N;;;;050D; -050D;CYRILLIC SMALL LETTER KOMI SJE;Ll;0;L;;;;;N;;;050C;;050C -050E;CYRILLIC CAPITAL LETTER KOMI TJE;Lu;0;L;;;;;N;;;;050F; -050F;CYRILLIC SMALL LETTER KOMI TJE;Ll;0;L;;;;;N;;;050E;;050E -0510;CYRILLIC CAPITAL LETTER REVERSED ZE;Lu;0;L;;;;;N;;;;0511; -0511;CYRILLIC SMALL LETTER REVERSED ZE;Ll;0;L;;;;;N;;;0510;;0510 -0512;CYRILLIC CAPITAL LETTER EL WITH HOOK;Lu;0;L;;;;;N;;;;0513; -0513;CYRILLIC SMALL LETTER EL WITH HOOK;Ll;0;L;;;;;N;;;0512;;0512 -0514;CYRILLIC CAPITAL LETTER LHA;Lu;0;L;;;;;N;;;;0515; -0515;CYRILLIC SMALL LETTER LHA;Ll;0;L;;;;;N;;;0514;;0514 -0516;CYRILLIC CAPITAL LETTER RHA;Lu;0;L;;;;;N;;;;0517; -0517;CYRILLIC SMALL LETTER RHA;Ll;0;L;;;;;N;;;0516;;0516 -0518;CYRILLIC CAPITAL LETTER YAE;Lu;0;L;;;;;N;;;;0519; -0519;CYRILLIC SMALL LETTER YAE;Ll;0;L;;;;;N;;;0518;;0518 -051A;CYRILLIC CAPITAL LETTER QA;Lu;0;L;;;;;N;;;;051B; -051B;CYRILLIC SMALL LETTER QA;Ll;0;L;;;;;N;;;051A;;051A -051C;CYRILLIC CAPITAL LETTER WE;Lu;0;L;;;;;N;;;;051D; -051D;CYRILLIC SMALL LETTER WE;Ll;0;L;;;;;N;;;051C;;051C -051E;CYRILLIC CAPITAL LETTER ALEUT KA;Lu;0;L;;;;;N;;;;051F; -051F;CYRILLIC SMALL LETTER ALEUT KA;Ll;0;L;;;;;N;;;051E;;051E -0520;CYRILLIC CAPITAL LETTER EL WITH MIDDLE HOOK;Lu;0;L;;;;;N;;;;0521; -0521;CYRILLIC SMALL LETTER EL WITH MIDDLE HOOK;Ll;0;L;;;;;N;;;0520;;0520 -0522;CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK;Lu;0;L;;;;;N;;;;0523; -0523;CYRILLIC SMALL LETTER EN WITH MIDDLE HOOK;Ll;0;L;;;;;N;;;0522;;0522 -0524;CYRILLIC CAPITAL LETTER PE WITH DESCENDER;Lu;0;L;;;;;N;;;;0525; -0525;CYRILLIC SMALL LETTER PE WITH DESCENDER;Ll;0;L;;;;;N;;;0524;;0524 -0531;ARMENIAN CAPITAL LETTER AYB;Lu;0;L;;;;;N;;;;0561; -0532;ARMENIAN CAPITAL LETTER BEN;Lu;0;L;;;;;N;;;;0562; -0533;ARMENIAN CAPITAL LETTER GIM;Lu;0;L;;;;;N;;;;0563; -0534;ARMENIAN CAPITAL LETTER DA;Lu;0;L;;;;;N;;;;0564; -0535;ARMENIAN CAPITAL LETTER ECH;Lu;0;L;;;;;N;;;;0565; -0536;ARMENIAN CAPITAL LETTER ZA;Lu;0;L;;;;;N;;;;0566; -0537;ARMENIAN CAPITAL LETTER EH;Lu;0;L;;;;;N;;;;0567; -0538;ARMENIAN CAPITAL LETTER ET;Lu;0;L;;;;;N;;;;0568; -0539;ARMENIAN CAPITAL LETTER TO;Lu;0;L;;;;;N;;;;0569; -053A;ARMENIAN CAPITAL LETTER ZHE;Lu;0;L;;;;;N;;;;056A; -053B;ARMENIAN CAPITAL LETTER INI;Lu;0;L;;;;;N;;;;056B; -053C;ARMENIAN CAPITAL LETTER LIWN;Lu;0;L;;;;;N;;;;056C; -053D;ARMENIAN CAPITAL LETTER XEH;Lu;0;L;;;;;N;;;;056D; -053E;ARMENIAN CAPITAL LETTER CA;Lu;0;L;;;;;N;;;;056E; -053F;ARMENIAN CAPITAL LETTER KEN;Lu;0;L;;;;;N;;;;056F; -0540;ARMENIAN CAPITAL LETTER HO;Lu;0;L;;;;;N;;;;0570; -0541;ARMENIAN CAPITAL LETTER JA;Lu;0;L;;;;;N;;;;0571; -0542;ARMENIAN CAPITAL LETTER GHAD;Lu;0;L;;;;;N;ARMENIAN CAPITAL LETTER LAD;;;0572; -0543;ARMENIAN CAPITAL LETTER CHEH;Lu;0;L;;;;;N;;;;0573; -0544;ARMENIAN CAPITAL LETTER MEN;Lu;0;L;;;;;N;;;;0574; -0545;ARMENIAN CAPITAL LETTER YI;Lu;0;L;;;;;N;;;;0575; -0546;ARMENIAN CAPITAL LETTER NOW;Lu;0;L;;;;;N;;;;0576; -0547;ARMENIAN CAPITAL LETTER SHA;Lu;0;L;;;;;N;;;;0577; -0548;ARMENIAN CAPITAL LETTER VO;Lu;0;L;;;;;N;;;;0578; -0549;ARMENIAN CAPITAL LETTER CHA;Lu;0;L;;;;;N;;;;0579; -054A;ARMENIAN CAPITAL LETTER PEH;Lu;0;L;;;;;N;;;;057A; -054B;ARMENIAN CAPITAL LETTER JHEH;Lu;0;L;;;;;N;;;;057B; -054C;ARMENIAN CAPITAL LETTER RA;Lu;0;L;;;;;N;;;;057C; -054D;ARMENIAN CAPITAL LETTER SEH;Lu;0;L;;;;;N;;;;057D; -054E;ARMENIAN CAPITAL LETTER VEW;Lu;0;L;;;;;N;;;;057E; -054F;ARMENIAN CAPITAL LETTER TIWN;Lu;0;L;;;;;N;;;;057F; -0550;ARMENIAN CAPITAL LETTER REH;Lu;0;L;;;;;N;;;;0580; -0551;ARMENIAN CAPITAL LETTER CO;Lu;0;L;;;;;N;;;;0581; -0552;ARMENIAN CAPITAL LETTER YIWN;Lu;0;L;;;;;N;;;;0582; -0553;ARMENIAN CAPITAL LETTER PIWR;Lu;0;L;;;;;N;;;;0583; -0554;ARMENIAN CAPITAL LETTER KEH;Lu;0;L;;;;;N;;;;0584; -0555;ARMENIAN CAPITAL LETTER OH;Lu;0;L;;;;;N;;;;0585; -0556;ARMENIAN CAPITAL LETTER FEH;Lu;0;L;;;;;N;;;;0586; -0559;ARMENIAN MODIFIER LETTER LEFT HALF RING;Lm;0;L;;;;;N;;;;; -055A;ARMENIAN APOSTROPHE;Po;0;L;;;;;N;ARMENIAN MODIFIER LETTER RIGHT HALF RING;;;; -055B;ARMENIAN EMPHASIS MARK;Po;0;L;;;;;N;;;;; -055C;ARMENIAN EXCLAMATION MARK;Po;0;L;;;;;N;;;;; -055D;ARMENIAN COMMA;Po;0;L;;;;;N;;;;; -055E;ARMENIAN QUESTION MARK;Po;0;L;;;;;N;;;;; -055F;ARMENIAN ABBREVIATION MARK;Po;0;L;;;;;N;;;;; -0561;ARMENIAN SMALL LETTER AYB;Ll;0;L;;;;;N;;;0531;;0531 -0562;ARMENIAN SMALL LETTER BEN;Ll;0;L;;;;;N;;;0532;;0532 -0563;ARMENIAN SMALL LETTER GIM;Ll;0;L;;;;;N;;;0533;;0533 -0564;ARMENIAN SMALL LETTER DA;Ll;0;L;;;;;N;;;0534;;0534 -0565;ARMENIAN SMALL LETTER ECH;Ll;0;L;;;;;N;;;0535;;0535 -0566;ARMENIAN SMALL LETTER ZA;Ll;0;L;;;;;N;;;0536;;0536 -0567;ARMENIAN SMALL LETTER EH;Ll;0;L;;;;;N;;;0537;;0537 -0568;ARMENIAN SMALL LETTER ET;Ll;0;L;;;;;N;;;0538;;0538 -0569;ARMENIAN SMALL LETTER TO;Ll;0;L;;;;;N;;;0539;;0539 -056A;ARMENIAN SMALL LETTER ZHE;Ll;0;L;;;;;N;;;053A;;053A -056B;ARMENIAN SMALL LETTER INI;Ll;0;L;;;;;N;;;053B;;053B -056C;ARMENIAN SMALL LETTER LIWN;Ll;0;L;;;;;N;;;053C;;053C -056D;ARMENIAN SMALL LETTER XEH;Ll;0;L;;;;;N;;;053D;;053D -056E;ARMENIAN SMALL LETTER CA;Ll;0;L;;;;;N;;;053E;;053E -056F;ARMENIAN SMALL LETTER KEN;Ll;0;L;;;;;N;;;053F;;053F -0570;ARMENIAN SMALL LETTER HO;Ll;0;L;;;;;N;;;0540;;0540 -0571;ARMENIAN SMALL LETTER JA;Ll;0;L;;;;;N;;;0541;;0541 -0572;ARMENIAN SMALL LETTER GHAD;Ll;0;L;;;;;N;ARMENIAN SMALL LETTER LAD;;0542;;0542 -0573;ARMENIAN SMALL LETTER CHEH;Ll;0;L;;;;;N;;;0543;;0543 -0574;ARMENIAN SMALL LETTER MEN;Ll;0;L;;;;;N;;;0544;;0544 -0575;ARMENIAN SMALL LETTER YI;Ll;0;L;;;;;N;;;0545;;0545 -0576;ARMENIAN SMALL LETTER NOW;Ll;0;L;;;;;N;;;0546;;0546 -0577;ARMENIAN SMALL LETTER SHA;Ll;0;L;;;;;N;;;0547;;0547 -0578;ARMENIAN SMALL LETTER VO;Ll;0;L;;;;;N;;;0548;;0548 -0579;ARMENIAN SMALL LETTER CHA;Ll;0;L;;;;;N;;;0549;;0549 -057A;ARMENIAN SMALL LETTER PEH;Ll;0;L;;;;;N;;;054A;;054A -057B;ARMENIAN SMALL LETTER JHEH;Ll;0;L;;;;;N;;;054B;;054B -057C;ARMENIAN SMALL LETTER RA;Ll;0;L;;;;;N;;;054C;;054C -057D;ARMENIAN SMALL LETTER SEH;Ll;0;L;;;;;N;;;054D;;054D -057E;ARMENIAN SMALL LETTER VEW;Ll;0;L;;;;;N;;;054E;;054E -057F;ARMENIAN SMALL LETTER TIWN;Ll;0;L;;;;;N;;;054F;;054F -0580;ARMENIAN SMALL LETTER REH;Ll;0;L;;;;;N;;;0550;;0550 -0581;ARMENIAN SMALL LETTER CO;Ll;0;L;;;;;N;;;0551;;0551 -0582;ARMENIAN SMALL LETTER YIWN;Ll;0;L;;;;;N;;;0552;;0552 -0583;ARMENIAN SMALL LETTER PIWR;Ll;0;L;;;;;N;;;0553;;0553 -0584;ARMENIAN SMALL LETTER KEH;Ll;0;L;;;;;N;;;0554;;0554 -0585;ARMENIAN SMALL LETTER OH;Ll;0;L;;;;;N;;;0555;;0555 -0586;ARMENIAN SMALL LETTER FEH;Ll;0;L;;;;;N;;;0556;;0556 -0587;ARMENIAN SMALL LIGATURE ECH YIWN;Ll;0;L; 0565 0582;;;;N;;;;; -0589;ARMENIAN FULL STOP;Po;0;L;;;;;N;ARMENIAN PERIOD;;;; -058A;ARMENIAN HYPHEN;Pd;0;ON;;;;;N;;;;; -0591;HEBREW ACCENT ETNAHTA;Mn;220;NSM;;;;;N;;;;; -0592;HEBREW ACCENT SEGOL;Mn;230;NSM;;;;;N;;;;; -0593;HEBREW ACCENT SHALSHELET;Mn;230;NSM;;;;;N;;;;; -0594;HEBREW ACCENT ZAQEF QATAN;Mn;230;NSM;;;;;N;;;;; -0595;HEBREW ACCENT ZAQEF GADOL;Mn;230;NSM;;;;;N;;;;; -0596;HEBREW ACCENT TIPEHA;Mn;220;NSM;;;;;N;;;;; -0597;HEBREW ACCENT REVIA;Mn;230;NSM;;;;;N;;;;; -0598;HEBREW ACCENT ZARQA;Mn;230;NSM;;;;;N;;;;; -0599;HEBREW ACCENT PASHTA;Mn;230;NSM;;;;;N;;;;; -059A;HEBREW ACCENT YETIV;Mn;222;NSM;;;;;N;;;;; -059B;HEBREW ACCENT TEVIR;Mn;220;NSM;;;;;N;;;;; -059C;HEBREW ACCENT GERESH;Mn;230;NSM;;;;;N;;;;; -059D;HEBREW ACCENT GERESH MUQDAM;Mn;230;NSM;;;;;N;;;;; -059E;HEBREW ACCENT GERSHAYIM;Mn;230;NSM;;;;;N;;;;; -059F;HEBREW ACCENT QARNEY PARA;Mn;230;NSM;;;;;N;;;;; -05A0;HEBREW ACCENT TELISHA GEDOLA;Mn;230;NSM;;;;;N;;;;; -05A1;HEBREW ACCENT PAZER;Mn;230;NSM;;;;;N;;;;; -05A2;HEBREW ACCENT ATNAH HAFUKH;Mn;220;NSM;;;;;N;;;;; -05A3;HEBREW ACCENT MUNAH;Mn;220;NSM;;;;;N;;;;; -05A4;HEBREW ACCENT MAHAPAKH;Mn;220;NSM;;;;;N;;;;; -05A5;HEBREW ACCENT MERKHA;Mn;220;NSM;;;;;N;;;;; -05A6;HEBREW ACCENT MERKHA KEFULA;Mn;220;NSM;;;;;N;;;;; -05A7;HEBREW ACCENT DARGA;Mn;220;NSM;;;;;N;;;;; -05A8;HEBREW ACCENT QADMA;Mn;230;NSM;;;;;N;;;;; -05A9;HEBREW ACCENT TELISHA QETANA;Mn;230;NSM;;;;;N;;;;; -05AA;HEBREW ACCENT YERAH BEN YOMO;Mn;220;NSM;;;;;N;;;;; -05AB;HEBREW ACCENT OLE;Mn;230;NSM;;;;;N;;;;; -05AC;HEBREW ACCENT ILUY;Mn;230;NSM;;;;;N;;;;; -05AD;HEBREW ACCENT DEHI;Mn;222;NSM;;;;;N;;;;; -05AE;HEBREW ACCENT ZINOR;Mn;228;NSM;;;;;N;;;;; -05AF;HEBREW MARK MASORA CIRCLE;Mn;230;NSM;;;;;N;;;;; -05B0;HEBREW POINT SHEVA;Mn;10;NSM;;;;;N;;;;; -05B1;HEBREW POINT HATAF SEGOL;Mn;11;NSM;;;;;N;;;;; -05B2;HEBREW POINT HATAF PATAH;Mn;12;NSM;;;;;N;;;;; -05B3;HEBREW POINT HATAF QAMATS;Mn;13;NSM;;;;;N;;;;; -05B4;HEBREW POINT HIRIQ;Mn;14;NSM;;;;;N;;;;; -05B5;HEBREW POINT TSERE;Mn;15;NSM;;;;;N;;;;; -05B6;HEBREW POINT SEGOL;Mn;16;NSM;;;;;N;;;;; -05B7;HEBREW POINT PATAH;Mn;17;NSM;;;;;N;;;;; -05B8;HEBREW POINT QAMATS;Mn;18;NSM;;;;;N;;;;; -05B9;HEBREW POINT HOLAM;Mn;19;NSM;;;;;N;;;;; -05BA;HEBREW POINT HOLAM HASER FOR VAV;Mn;19;NSM;;;;;N;;;;; -05BB;HEBREW POINT QUBUTS;Mn;20;NSM;;;;;N;;;;; -05BC;HEBREW POINT DAGESH OR MAPIQ;Mn;21;NSM;;;;;N;HEBREW POINT DAGESH;;;; -05BD;HEBREW POINT METEG;Mn;22;NSM;;;;;N;;;;; -05BE;HEBREW PUNCTUATION MAQAF;Pd;0;R;;;;;N;;;;; -05BF;HEBREW POINT RAFE;Mn;23;NSM;;;;;N;;;;; -05C0;HEBREW PUNCTUATION PASEQ;Po;0;R;;;;;N;HEBREW POINT PASEQ;;;; -05C1;HEBREW POINT SHIN DOT;Mn;24;NSM;;;;;N;;;;; -05C2;HEBREW POINT SIN DOT;Mn;25;NSM;;;;;N;;;;; -05C3;HEBREW PUNCTUATION SOF PASUQ;Po;0;R;;;;;N;;;;; -05C4;HEBREW MARK UPPER DOT;Mn;230;NSM;;;;;N;;;;; -05C5;HEBREW MARK LOWER DOT;Mn;220;NSM;;;;;N;;;;; -05C6;HEBREW PUNCTUATION NUN HAFUKHA;Po;0;R;;;;;N;;;;; -05C7;HEBREW POINT QAMATS QATAN;Mn;18;NSM;;;;;N;;;;; -05D0;HEBREW LETTER ALEF;Lo;0;R;;;;;N;;;;; -05D1;HEBREW LETTER BET;Lo;0;R;;;;;N;;;;; -05D2;HEBREW LETTER GIMEL;Lo;0;R;;;;;N;;;;; -05D3;HEBREW LETTER DALET;Lo;0;R;;;;;N;;;;; -05D4;HEBREW LETTER HE;Lo;0;R;;;;;N;;;;; -05D5;HEBREW LETTER VAV;Lo;0;R;;;;;N;;;;; -05D6;HEBREW LETTER ZAYIN;Lo;0;R;;;;;N;;;;; -05D7;HEBREW LETTER HET;Lo;0;R;;;;;N;;;;; -05D8;HEBREW LETTER TET;Lo;0;R;;;;;N;;;;; -05D9;HEBREW LETTER YOD;Lo;0;R;;;;;N;;;;; -05DA;HEBREW LETTER FINAL KAF;Lo;0;R;;;;;N;;;;; -05DB;HEBREW LETTER KAF;Lo;0;R;;;;;N;;;;; -05DC;HEBREW LETTER LAMED;Lo;0;R;;;;;N;;;;; -05DD;HEBREW LETTER FINAL MEM;Lo;0;R;;;;;N;;;;; -05DE;HEBREW LETTER MEM;Lo;0;R;;;;;N;;;;; -05DF;HEBREW LETTER FINAL NUN;Lo;0;R;;;;;N;;;;; -05E0;HEBREW LETTER NUN;Lo;0;R;;;;;N;;;;; -05E1;HEBREW LETTER SAMEKH;Lo;0;R;;;;;N;;;;; -05E2;HEBREW LETTER AYIN;Lo;0;R;;;;;N;;;;; -05E3;HEBREW LETTER FINAL PE;Lo;0;R;;;;;N;;;;; -05E4;HEBREW LETTER PE;Lo;0;R;;;;;N;;;;; -05E5;HEBREW LETTER FINAL TSADI;Lo;0;R;;;;;N;;;;; -05E6;HEBREW LETTER TSADI;Lo;0;R;;;;;N;;;;; -05E7;HEBREW LETTER QOF;Lo;0;R;;;;;N;;;;; -05E8;HEBREW LETTER RESH;Lo;0;R;;;;;N;;;;; -05E9;HEBREW LETTER SHIN;Lo;0;R;;;;;N;;;;; -05EA;HEBREW LETTER TAV;Lo;0;R;;;;;N;;;;; -05F0;HEBREW LIGATURE YIDDISH DOUBLE VAV;Lo;0;R;;;;;N;HEBREW LETTER DOUBLE VAV;;;; -05F1;HEBREW LIGATURE YIDDISH VAV YOD;Lo;0;R;;;;;N;HEBREW LETTER VAV YOD;;;; -05F2;HEBREW LIGATURE YIDDISH DOUBLE YOD;Lo;0;R;;;;;N;HEBREW LETTER DOUBLE YOD;;;; -05F3;HEBREW PUNCTUATION GERESH;Po;0;R;;;;;N;;;;; -05F4;HEBREW PUNCTUATION GERSHAYIM;Po;0;R;;;;;N;;;;; -0600;ARABIC NUMBER SIGN;Cf;0;AN;;;;;N;;;;; -0601;ARABIC SIGN SANAH;Cf;0;AN;;;;;N;;;;; -0602;ARABIC FOOTNOTE MARKER;Cf;0;AN;;;;;N;;;;; -0603;ARABIC SIGN SAFHA;Cf;0;AN;;;;;N;;;;; -0606;ARABIC-INDIC CUBE ROOT;Sm;0;ON;;;;;N;;;;; -0607;ARABIC-INDIC FOURTH ROOT;Sm;0;ON;;;;;N;;;;; -0608;ARABIC RAY;Sm;0;AL;;;;;N;;;;; -0609;ARABIC-INDIC PER MILLE SIGN;Po;0;ET;;;;;N;;;;; -060A;ARABIC-INDIC PER TEN THOUSAND SIGN;Po;0;ET;;;;;N;;;;; -060B;AFGHANI SIGN;Sc;0;AL;;;;;N;;;;; -060C;ARABIC COMMA;Po;0;CS;;;;;N;;;;; -060D;ARABIC DATE SEPARATOR;Po;0;AL;;;;;N;;;;; -060E;ARABIC POETIC VERSE SIGN;So;0;ON;;;;;N;;;;; -060F;ARABIC SIGN MISRA;So;0;ON;;;;;N;;;;; -0610;ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM;Mn;230;NSM;;;;;N;;;;; -0611;ARABIC SIGN ALAYHE ASSALLAM;Mn;230;NSM;;;;;N;;;;; -0612;ARABIC SIGN RAHMATULLAH ALAYHE;Mn;230;NSM;;;;;N;;;;; -0613;ARABIC SIGN RADI ALLAHOU ANHU;Mn;230;NSM;;;;;N;;;;; -0614;ARABIC SIGN TAKHALLUS;Mn;230;NSM;;;;;N;;;;; -0615;ARABIC SMALL HIGH TAH;Mn;230;NSM;;;;;N;;;;; -0616;ARABIC SMALL HIGH LIGATURE ALEF WITH LAM WITH YEH;Mn;230;NSM;;;;;N;;;;; -0617;ARABIC SMALL HIGH ZAIN;Mn;230;NSM;;;;;N;;;;; -0618;ARABIC SMALL FATHA;Mn;30;NSM;;;;;N;;;;; -0619;ARABIC SMALL DAMMA;Mn;31;NSM;;;;;N;;;;; -061A;ARABIC SMALL KASRA;Mn;32;NSM;;;;;N;;;;; -061B;ARABIC SEMICOLON;Po;0;AL;;;;;N;;;;; -061E;ARABIC TRIPLE DOT PUNCTUATION MARK;Po;0;AL;;;;;N;;;;; -061F;ARABIC QUESTION MARK;Po;0;AL;;;;;N;;;;; -0621;ARABIC LETTER HAMZA;Lo;0;AL;;;;;N;ARABIC LETTER HAMZAH;;;; -0622;ARABIC LETTER ALEF WITH MADDA ABOVE;Lo;0;AL;0627 0653;;;;N;ARABIC LETTER MADDAH ON ALEF;;;; -0623;ARABIC LETTER ALEF WITH HAMZA ABOVE;Lo;0;AL;0627 0654;;;;N;ARABIC LETTER HAMZAH ON ALEF;;;; -0624;ARABIC LETTER WAW WITH HAMZA ABOVE;Lo;0;AL;0648 0654;;;;N;ARABIC LETTER HAMZAH ON WAW;;;; -0625;ARABIC LETTER ALEF WITH HAMZA BELOW;Lo;0;AL;0627 0655;;;;N;ARABIC LETTER HAMZAH UNDER ALEF;;;; -0626;ARABIC LETTER YEH WITH HAMZA ABOVE;Lo;0;AL;064A 0654;;;;N;ARABIC LETTER HAMZAH ON YA;;;; -0627;ARABIC LETTER ALEF;Lo;0;AL;;;;;N;;;;; -0628;ARABIC LETTER BEH;Lo;0;AL;;;;;N;ARABIC LETTER BAA;;;; -0629;ARABIC LETTER TEH MARBUTA;Lo;0;AL;;;;;N;ARABIC LETTER TAA MARBUTAH;;;; -062A;ARABIC LETTER TEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA;;;; -062B;ARABIC LETTER THEH;Lo;0;AL;;;;;N;ARABIC LETTER THAA;;;; -062C;ARABIC LETTER JEEM;Lo;0;AL;;;;;N;;;;; -062D;ARABIC LETTER HAH;Lo;0;AL;;;;;N;ARABIC LETTER HAA;;;; -062E;ARABIC LETTER KHAH;Lo;0;AL;;;;;N;ARABIC LETTER KHAA;;;; -062F;ARABIC LETTER DAL;Lo;0;AL;;;;;N;;;;; -0630;ARABIC LETTER THAL;Lo;0;AL;;;;;N;;;;; -0631;ARABIC LETTER REH;Lo;0;AL;;;;;N;ARABIC LETTER RA;;;; -0632;ARABIC LETTER ZAIN;Lo;0;AL;;;;;N;;;;; -0633;ARABIC LETTER SEEN;Lo;0;AL;;;;;N;;;;; -0634;ARABIC LETTER SHEEN;Lo;0;AL;;;;;N;;;;; -0635;ARABIC LETTER SAD;Lo;0;AL;;;;;N;;;;; -0636;ARABIC LETTER DAD;Lo;0;AL;;;;;N;;;;; -0637;ARABIC LETTER TAH;Lo;0;AL;;;;;N;;;;; -0638;ARABIC LETTER ZAH;Lo;0;AL;;;;;N;ARABIC LETTER DHAH;;;; -0639;ARABIC LETTER AIN;Lo;0;AL;;;;;N;;;;; -063A;ARABIC LETTER GHAIN;Lo;0;AL;;;;;N;;;;; -063B;ARABIC LETTER KEHEH WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;; -063C;ARABIC LETTER KEHEH WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;;;;; -063D;ARABIC LETTER FARSI YEH WITH INVERTED V;Lo;0;AL;;;;;N;;;;; -063E;ARABIC LETTER FARSI YEH WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;; -063F;ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;; -0640;ARABIC TATWEEL;Lm;0;AL;;;;;N;;;;; -0641;ARABIC LETTER FEH;Lo;0;AL;;;;;N;ARABIC LETTER FA;;;; -0642;ARABIC LETTER QAF;Lo;0;AL;;;;;N;;;;; -0643;ARABIC LETTER KAF;Lo;0;AL;;;;;N;ARABIC LETTER CAF;;;; -0644;ARABIC LETTER LAM;Lo;0;AL;;;;;N;;;;; -0645;ARABIC LETTER MEEM;Lo;0;AL;;;;;N;;;;; -0646;ARABIC LETTER NOON;Lo;0;AL;;;;;N;;;;; -0647;ARABIC LETTER HEH;Lo;0;AL;;;;;N;ARABIC LETTER HA;;;; -0648;ARABIC LETTER WAW;Lo;0;AL;;;;;N;;;;; -0649;ARABIC LETTER ALEF MAKSURA;Lo;0;AL;;;;;N;ARABIC LETTER ALEF MAQSURAH;;;; -064A;ARABIC LETTER YEH;Lo;0;AL;;;;;N;ARABIC LETTER YA;;;; -064B;ARABIC FATHATAN;Mn;27;NSM;;;;;N;;;;; -064C;ARABIC DAMMATAN;Mn;28;NSM;;;;;N;;;;; -064D;ARABIC KASRATAN;Mn;29;NSM;;;;;N;;;;; -064E;ARABIC FATHA;Mn;30;NSM;;;;;N;ARABIC FATHAH;;;; -064F;ARABIC DAMMA;Mn;31;NSM;;;;;N;ARABIC DAMMAH;;;; -0650;ARABIC KASRA;Mn;32;NSM;;;;;N;ARABIC KASRAH;;;; -0651;ARABIC SHADDA;Mn;33;NSM;;;;;N;ARABIC SHADDAH;;;; -0652;ARABIC SUKUN;Mn;34;NSM;;;;;N;;;;; -0653;ARABIC MADDAH ABOVE;Mn;230;NSM;;;;;N;;;;; -0654;ARABIC HAMZA ABOVE;Mn;230;NSM;;;;;N;;;;; -0655;ARABIC HAMZA BELOW;Mn;220;NSM;;;;;N;;;;; -0656;ARABIC SUBSCRIPT ALEF;Mn;220;NSM;;;;;N;;;;; -0657;ARABIC INVERTED DAMMA;Mn;230;NSM;;;;;N;;;;; -0658;ARABIC MARK NOON GHUNNA;Mn;230;NSM;;;;;N;;;;; -0659;ARABIC ZWARAKAY;Mn;230;NSM;;;;;N;;;;; -065A;ARABIC VOWEL SIGN SMALL V ABOVE;Mn;230;NSM;;;;;N;;;;; -065B;ARABIC VOWEL SIGN INVERTED SMALL V ABOVE;Mn;230;NSM;;;;;N;;;;; -065C;ARABIC VOWEL SIGN DOT BELOW;Mn;220;NSM;;;;;N;;;;; -065D;ARABIC REVERSED DAMMA;Mn;230;NSM;;;;;N;;;;; -065E;ARABIC FATHA WITH TWO DOTS;Mn;230;NSM;;;;;N;;;;; -0660;ARABIC-INDIC DIGIT ZERO;Nd;0;AN;;0;0;0;N;;;;; -0661;ARABIC-INDIC DIGIT ONE;Nd;0;AN;;1;1;1;N;;;;; -0662;ARABIC-INDIC DIGIT TWO;Nd;0;AN;;2;2;2;N;;;;; -0663;ARABIC-INDIC DIGIT THREE;Nd;0;AN;;3;3;3;N;;;;; -0664;ARABIC-INDIC DIGIT FOUR;Nd;0;AN;;4;4;4;N;;;;; -0665;ARABIC-INDIC DIGIT FIVE;Nd;0;AN;;5;5;5;N;;;;; -0666;ARABIC-INDIC DIGIT SIX;Nd;0;AN;;6;6;6;N;;;;; -0667;ARABIC-INDIC DIGIT SEVEN;Nd;0;AN;;7;7;7;N;;;;; -0668;ARABIC-INDIC DIGIT EIGHT;Nd;0;AN;;8;8;8;N;;;;; -0669;ARABIC-INDIC DIGIT NINE;Nd;0;AN;;9;9;9;N;;;;; -066A;ARABIC PERCENT SIGN;Po;0;ET;;;;;N;;;;; -066B;ARABIC DECIMAL SEPARATOR;Po;0;AN;;;;;N;;;;; -066C;ARABIC THOUSANDS SEPARATOR;Po;0;AN;;;;;N;;;;; -066D;ARABIC FIVE POINTED STAR;Po;0;AL;;;;;N;;;;; -066E;ARABIC LETTER DOTLESS BEH;Lo;0;AL;;;;;N;;;;; -066F;ARABIC LETTER DOTLESS QAF;Lo;0;AL;;;;;N;;;;; -0670;ARABIC LETTER SUPERSCRIPT ALEF;Mn;35;NSM;;;;;N;ARABIC ALEF ABOVE;;;; -0671;ARABIC LETTER ALEF WASLA;Lo;0;AL;;;;;N;ARABIC LETTER HAMZAT WASL ON ALEF;;;; -0672;ARABIC LETTER ALEF WITH WAVY HAMZA ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER WAVY HAMZAH ON ALEF;;;; -0673;ARABIC LETTER ALEF WITH WAVY HAMZA BELOW;Lo;0;AL;;;;;N;ARABIC LETTER WAVY HAMZAH UNDER ALEF;;;; -0674;ARABIC LETTER HIGH HAMZA;Lo;0;AL;;;;;N;ARABIC LETTER HIGH HAMZAH;;;; -0675;ARABIC LETTER HIGH HAMZA ALEF;Lo;0;AL; 0627 0674;;;;N;ARABIC LETTER HIGH HAMZAH ALEF;;;; -0676;ARABIC LETTER HIGH HAMZA WAW;Lo;0;AL; 0648 0674;;;;N;ARABIC LETTER HIGH HAMZAH WAW;;;; -0677;ARABIC LETTER U WITH HAMZA ABOVE;Lo;0;AL; 06C7 0674;;;;N;ARABIC LETTER HIGH HAMZAH WAW WITH DAMMAH;;;; -0678;ARABIC LETTER HIGH HAMZA YEH;Lo;0;AL; 064A 0674;;;;N;ARABIC LETTER HIGH HAMZAH YA;;;; -0679;ARABIC LETTER TTEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH SMALL TAH;;;; -067A;ARABIC LETTER TTEHEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH TWO DOTS VERTICAL ABOVE;;;; -067B;ARABIC LETTER BEEH;Lo;0;AL;;;;;N;ARABIC LETTER BAA WITH TWO DOTS VERTICAL BELOW;;;; -067C;ARABIC LETTER TEH WITH RING;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH RING;;;; -067D;ARABIC LETTER TEH WITH THREE DOTS ABOVE DOWNWARDS;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH THREE DOTS ABOVE DOWNWARD;;;; -067E;ARABIC LETTER PEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH THREE DOTS BELOW;;;; -067F;ARABIC LETTER TEHEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH FOUR DOTS ABOVE;;;; -0680;ARABIC LETTER BEHEH;Lo;0;AL;;;;;N;ARABIC LETTER BAA WITH FOUR DOTS BELOW;;;; -0681;ARABIC LETTER HAH WITH HAMZA ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER HAMZAH ON HAA;;;; -0682;ARABIC LETTER HAH WITH TWO DOTS VERTICAL ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH TWO DOTS VERTICAL ABOVE;;;; -0683;ARABIC LETTER NYEH;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH MIDDLE TWO DOTS;;;; -0684;ARABIC LETTER DYEH;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH MIDDLE TWO DOTS VERTICAL;;;; -0685;ARABIC LETTER HAH WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH THREE DOTS ABOVE;;;; -0686;ARABIC LETTER TCHEH;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH MIDDLE THREE DOTS DOWNWARD;;;; -0687;ARABIC LETTER TCHEHEH;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH MIDDLE FOUR DOTS;;;; -0688;ARABIC LETTER DDAL;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH SMALL TAH;;;; -0689;ARABIC LETTER DAL WITH RING;Lo;0;AL;;;;;N;;;;; -068A;ARABIC LETTER DAL WITH DOT BELOW;Lo;0;AL;;;;;N;;;;; -068B;ARABIC LETTER DAL WITH DOT BELOW AND SMALL TAH;Lo;0;AL;;;;;N;;;;; -068C;ARABIC LETTER DAHAL;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH TWO DOTS ABOVE;;;; -068D;ARABIC LETTER DDAHAL;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH TWO DOTS BELOW;;;; -068E;ARABIC LETTER DUL;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH THREE DOTS ABOVE;;;; -068F;ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARDS;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARD;;;; -0690;ARABIC LETTER DAL WITH FOUR DOTS ABOVE;Lo;0;AL;;;;;N;;;;; -0691;ARABIC LETTER RREH;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH SMALL TAH;;;; -0692;ARABIC LETTER REH WITH SMALL V;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH SMALL V;;;; -0693;ARABIC LETTER REH WITH RING;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH RING;;;; -0694;ARABIC LETTER REH WITH DOT BELOW;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH DOT BELOW;;;; -0695;ARABIC LETTER REH WITH SMALL V BELOW;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH SMALL V BELOW;;;; -0696;ARABIC LETTER REH WITH DOT BELOW AND DOT ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH DOT BELOW AND DOT ABOVE;;;; -0697;ARABIC LETTER REH WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH TWO DOTS ABOVE;;;; -0698;ARABIC LETTER JEH;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH THREE DOTS ABOVE;;;; -0699;ARABIC LETTER REH WITH FOUR DOTS ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH FOUR DOTS ABOVE;;;; -069A;ARABIC LETTER SEEN WITH DOT BELOW AND DOT ABOVE;Lo;0;AL;;;;;N;;;;; -069B;ARABIC LETTER SEEN WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;;;;; -069C;ARABIC LETTER SEEN WITH THREE DOTS BELOW AND THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;; -069D;ARABIC LETTER SAD WITH TWO DOTS BELOW;Lo;0;AL;;;;;N;;;;; -069E;ARABIC LETTER SAD WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;; -069F;ARABIC LETTER TAH WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;; -06A0;ARABIC LETTER AIN WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;; -06A1;ARABIC LETTER DOTLESS FEH;Lo;0;AL;;;;;N;ARABIC LETTER DOTLESS FA;;;; -06A2;ARABIC LETTER FEH WITH DOT MOVED BELOW;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH DOT MOVED BELOW;;;; -06A3;ARABIC LETTER FEH WITH DOT BELOW;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH DOT BELOW;;;; -06A4;ARABIC LETTER VEH;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH THREE DOTS ABOVE;;;; -06A5;ARABIC LETTER FEH WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH THREE DOTS BELOW;;;; -06A6;ARABIC LETTER PEHEH;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH FOUR DOTS ABOVE;;;; -06A7;ARABIC LETTER QAF WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;; -06A8;ARABIC LETTER QAF WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;; -06A9;ARABIC LETTER KEHEH;Lo;0;AL;;;;;N;ARABIC LETTER OPEN CAF;;;; -06AA;ARABIC LETTER SWASH KAF;Lo;0;AL;;;;;N;ARABIC LETTER SWASH CAF;;;; -06AB;ARABIC LETTER KAF WITH RING;Lo;0;AL;;;;;N;ARABIC LETTER CAF WITH RING;;;; -06AC;ARABIC LETTER KAF WITH DOT ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER CAF WITH DOT ABOVE;;;; -06AD;ARABIC LETTER NG;Lo;0;AL;;;;;N;ARABIC LETTER CAF WITH THREE DOTS ABOVE;;;; -06AE;ARABIC LETTER KAF WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;ARABIC LETTER CAF WITH THREE DOTS BELOW;;;; -06AF;ARABIC LETTER GAF;Lo;0;AL;;;;;N;;;;; -06B0;ARABIC LETTER GAF WITH RING;Lo;0;AL;;;;;N;;;;; -06B1;ARABIC LETTER NGOEH;Lo;0;AL;;;;;N;ARABIC LETTER GAF WITH TWO DOTS ABOVE;;;; -06B2;ARABIC LETTER GAF WITH TWO DOTS BELOW;Lo;0;AL;;;;;N;;;;; -06B3;ARABIC LETTER GUEH;Lo;0;AL;;;;;N;ARABIC LETTER GAF WITH TWO DOTS VERTICAL BELOW;;;; -06B4;ARABIC LETTER GAF WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;; -06B5;ARABIC LETTER LAM WITH SMALL V;Lo;0;AL;;;;;N;;;;; -06B6;ARABIC LETTER LAM WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;; -06B7;ARABIC LETTER LAM WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;; -06B8;ARABIC LETTER LAM WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;;;;; -06B9;ARABIC LETTER NOON WITH DOT BELOW;Lo;0;AL;;;;;N;;;;; -06BA;ARABIC LETTER NOON GHUNNA;Lo;0;AL;;;;;N;ARABIC LETTER DOTLESS NOON;;;; -06BB;ARABIC LETTER RNOON;Lo;0;AL;;;;;N;ARABIC LETTER DOTLESS NOON WITH SMALL TAH;;;; -06BC;ARABIC LETTER NOON WITH RING;Lo;0;AL;;;;;N;;;;; -06BD;ARABIC LETTER NOON WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;; -06BE;ARABIC LETTER HEH DOACHASHMEE;Lo;0;AL;;;;;N;ARABIC LETTER KNOTTED HA;;;; -06BF;ARABIC LETTER TCHEH WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;; -06C0;ARABIC LETTER HEH WITH YEH ABOVE;Lo;0;AL;06D5 0654;;;;N;ARABIC LETTER HAMZAH ON HA;;;; -06C1;ARABIC LETTER HEH GOAL;Lo;0;AL;;;;;N;ARABIC LETTER HA GOAL;;;; -06C2;ARABIC LETTER HEH GOAL WITH HAMZA ABOVE;Lo;0;AL;06C1 0654;;;;N;ARABIC LETTER HAMZAH ON HA GOAL;;;; -06C3;ARABIC LETTER TEH MARBUTA GOAL;Lo;0;AL;;;;;N;ARABIC LETTER TAA MARBUTAH GOAL;;;; -06C4;ARABIC LETTER WAW WITH RING;Lo;0;AL;;;;;N;;;;; -06C5;ARABIC LETTER KIRGHIZ OE;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH BAR;;;; -06C6;ARABIC LETTER OE;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH SMALL V;;;; -06C7;ARABIC LETTER U;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH DAMMAH;;;; -06C8;ARABIC LETTER YU;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH ALEF ABOVE;;;; -06C9;ARABIC LETTER KIRGHIZ YU;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH INVERTED SMALL V;;;; -06CA;ARABIC LETTER WAW WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;; -06CB;ARABIC LETTER VE;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH THREE DOTS ABOVE;;;; -06CC;ARABIC LETTER FARSI YEH;Lo;0;AL;;;;;N;ARABIC LETTER DOTLESS YA;;;; -06CD;ARABIC LETTER YEH WITH TAIL;Lo;0;AL;;;;;N;ARABIC LETTER YA WITH TAIL;;;; -06CE;ARABIC LETTER YEH WITH SMALL V;Lo;0;AL;;;;;N;ARABIC LETTER YA WITH SMALL V;;;; -06CF;ARABIC LETTER WAW WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;; -06D0;ARABIC LETTER E;Lo;0;AL;;;;;N;ARABIC LETTER YA WITH TWO DOTS VERTICAL BELOW;;;; -06D1;ARABIC LETTER YEH WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;ARABIC LETTER YA WITH THREE DOTS BELOW;;;; -06D2;ARABIC LETTER YEH BARREE;Lo;0;AL;;;;;N;ARABIC LETTER YA BARREE;;;; -06D3;ARABIC LETTER YEH BARREE WITH HAMZA ABOVE;Lo;0;AL;06D2 0654;;;;N;ARABIC LETTER HAMZAH ON YA BARREE;;;; -06D4;ARABIC FULL STOP;Po;0;AL;;;;;N;ARABIC PERIOD;;;; -06D5;ARABIC LETTER AE;Lo;0;AL;;;;;N;;;;; -06D6;ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA;Mn;230;NSM;;;;;N;;;;; -06D7;ARABIC SMALL HIGH LIGATURE QAF WITH LAM WITH ALEF MAKSURA;Mn;230;NSM;;;;;N;;;;; -06D8;ARABIC SMALL HIGH MEEM INITIAL FORM;Mn;230;NSM;;;;;N;;;;; -06D9;ARABIC SMALL HIGH LAM ALEF;Mn;230;NSM;;;;;N;;;;; -06DA;ARABIC SMALL HIGH JEEM;Mn;230;NSM;;;;;N;;;;; -06DB;ARABIC SMALL HIGH THREE DOTS;Mn;230;NSM;;;;;N;;;;; -06DC;ARABIC SMALL HIGH SEEN;Mn;230;NSM;;;;;N;;;;; -06DD;ARABIC END OF AYAH;Cf;0;AN;;;;;N;;;;; -06DE;ARABIC START OF RUB EL HIZB;Me;0;NSM;;;;;N;;;;; -06DF;ARABIC SMALL HIGH ROUNDED ZERO;Mn;230;NSM;;;;;N;;;;; -06E0;ARABIC SMALL HIGH UPRIGHT RECTANGULAR ZERO;Mn;230;NSM;;;;;N;;;;; -06E1;ARABIC SMALL HIGH DOTLESS HEAD OF KHAH;Mn;230;NSM;;;;;N;;;;; -06E2;ARABIC SMALL HIGH MEEM ISOLATED FORM;Mn;230;NSM;;;;;N;;;;; -06E3;ARABIC SMALL LOW SEEN;Mn;220;NSM;;;;;N;;;;; -06E4;ARABIC SMALL HIGH MADDA;Mn;230;NSM;;;;;N;;;;; -06E5;ARABIC SMALL WAW;Lm;0;AL;;;;;N;;;;; -06E6;ARABIC SMALL YEH;Lm;0;AL;;;;;N;;;;; -06E7;ARABIC SMALL HIGH YEH;Mn;230;NSM;;;;;N;;;;; -06E8;ARABIC SMALL HIGH NOON;Mn;230;NSM;;;;;N;;;;; -06E9;ARABIC PLACE OF SAJDAH;So;0;ON;;;;;N;;;;; -06EA;ARABIC EMPTY CENTRE LOW STOP;Mn;220;NSM;;;;;N;;;;; -06EB;ARABIC EMPTY CENTRE HIGH STOP;Mn;230;NSM;;;;;N;;;;; -06EC;ARABIC ROUNDED HIGH STOP WITH FILLED CENTRE;Mn;230;NSM;;;;;N;;;;; -06ED;ARABIC SMALL LOW MEEM;Mn;220;NSM;;;;;N;;;;; -06EE;ARABIC LETTER DAL WITH INVERTED V;Lo;0;AL;;;;;N;;;;; -06EF;ARABIC LETTER REH WITH INVERTED V;Lo;0;AL;;;;;N;;;;; -06F0;EXTENDED ARABIC-INDIC DIGIT ZERO;Nd;0;EN;;0;0;0;N;EASTERN ARABIC-INDIC DIGIT ZERO;;;; -06F1;EXTENDED ARABIC-INDIC DIGIT ONE;Nd;0;EN;;1;1;1;N;EASTERN ARABIC-INDIC DIGIT ONE;;;; -06F2;EXTENDED ARABIC-INDIC DIGIT TWO;Nd;0;EN;;2;2;2;N;EASTERN ARABIC-INDIC DIGIT TWO;;;; -06F3;EXTENDED ARABIC-INDIC DIGIT THREE;Nd;0;EN;;3;3;3;N;EASTERN ARABIC-INDIC DIGIT THREE;;;; -06F4;EXTENDED ARABIC-INDIC DIGIT FOUR;Nd;0;EN;;4;4;4;N;EASTERN ARABIC-INDIC DIGIT FOUR;;;; -06F5;EXTENDED ARABIC-INDIC DIGIT FIVE;Nd;0;EN;;5;5;5;N;EASTERN ARABIC-INDIC DIGIT FIVE;;;; -06F6;EXTENDED ARABIC-INDIC DIGIT SIX;Nd;0;EN;;6;6;6;N;EASTERN ARABIC-INDIC DIGIT SIX;;;; -06F7;EXTENDED ARABIC-INDIC DIGIT SEVEN;Nd;0;EN;;7;7;7;N;EASTERN ARABIC-INDIC DIGIT SEVEN;;;; -06F8;EXTENDED ARABIC-INDIC DIGIT EIGHT;Nd;0;EN;;8;8;8;N;EASTERN ARABIC-INDIC DIGIT EIGHT;;;; -06F9;EXTENDED ARABIC-INDIC DIGIT NINE;Nd;0;EN;;9;9;9;N;EASTERN ARABIC-INDIC DIGIT NINE;;;; -06FA;ARABIC LETTER SHEEN WITH DOT BELOW;Lo;0;AL;;;;;N;;;;; -06FB;ARABIC LETTER DAD WITH DOT BELOW;Lo;0;AL;;;;;N;;;;; -06FC;ARABIC LETTER GHAIN WITH DOT BELOW;Lo;0;AL;;;;;N;;;;; -06FD;ARABIC SIGN SINDHI AMPERSAND;So;0;AL;;;;;N;;;;; -06FE;ARABIC SIGN SINDHI POSTPOSITION MEN;So;0;AL;;;;;N;;;;; -06FF;ARABIC LETTER HEH WITH INVERTED V;Lo;0;AL;;;;;N;;;;; -0700;SYRIAC END OF PARAGRAPH;Po;0;AL;;;;;N;;;;; -0701;SYRIAC SUPRALINEAR FULL STOP;Po;0;AL;;;;;N;;;;; -0702;SYRIAC SUBLINEAR FULL STOP;Po;0;AL;;;;;N;;;;; -0703;SYRIAC SUPRALINEAR COLON;Po;0;AL;;;;;N;;;;; -0704;SYRIAC SUBLINEAR COLON;Po;0;AL;;;;;N;;;;; -0705;SYRIAC HORIZONTAL COLON;Po;0;AL;;;;;N;;;;; -0706;SYRIAC COLON SKEWED LEFT;Po;0;AL;;;;;N;;;;; -0707;SYRIAC COLON SKEWED RIGHT;Po;0;AL;;;;;N;;;;; -0708;SYRIAC SUPRALINEAR COLON SKEWED LEFT;Po;0;AL;;;;;N;;;;; -0709;SYRIAC SUBLINEAR COLON SKEWED RIGHT;Po;0;AL;;;;;N;;;;; -070A;SYRIAC CONTRACTION;Po;0;AL;;;;;N;;;;; -070B;SYRIAC HARKLEAN OBELUS;Po;0;AL;;;;;N;;;;; -070C;SYRIAC HARKLEAN METOBELUS;Po;0;AL;;;;;N;;;;; -070D;SYRIAC HARKLEAN ASTERISCUS;Po;0;AL;;;;;N;;;;; -070F;SYRIAC ABBREVIATION MARK;Cf;0;BN;;;;;N;;;;; -0710;SYRIAC LETTER ALAPH;Lo;0;AL;;;;;N;;;;; -0711;SYRIAC LETTER SUPERSCRIPT ALAPH;Mn;36;NSM;;;;;N;;;;; -0712;SYRIAC LETTER BETH;Lo;0;AL;;;;;N;;;;; -0713;SYRIAC LETTER GAMAL;Lo;0;AL;;;;;N;;;;; -0714;SYRIAC LETTER GAMAL GARSHUNI;Lo;0;AL;;;;;N;;;;; -0715;SYRIAC LETTER DALATH;Lo;0;AL;;;;;N;;;;; -0716;SYRIAC LETTER DOTLESS DALATH RISH;Lo;0;AL;;;;;N;;;;; -0717;SYRIAC LETTER HE;Lo;0;AL;;;;;N;;;;; -0718;SYRIAC LETTER WAW;Lo;0;AL;;;;;N;;;;; -0719;SYRIAC LETTER ZAIN;Lo;0;AL;;;;;N;;;;; -071A;SYRIAC LETTER HETH;Lo;0;AL;;;;;N;;;;; -071B;SYRIAC LETTER TETH;Lo;0;AL;;;;;N;;;;; -071C;SYRIAC LETTER TETH GARSHUNI;Lo;0;AL;;;;;N;;;;; -071D;SYRIAC LETTER YUDH;Lo;0;AL;;;;;N;;;;; -071E;SYRIAC LETTER YUDH HE;Lo;0;AL;;;;;N;;;;; -071F;SYRIAC LETTER KAPH;Lo;0;AL;;;;;N;;;;; -0720;SYRIAC LETTER LAMADH;Lo;0;AL;;;;;N;;;;; -0721;SYRIAC LETTER MIM;Lo;0;AL;;;;;N;;;;; -0722;SYRIAC LETTER NUN;Lo;0;AL;;;;;N;;;;; -0723;SYRIAC LETTER SEMKATH;Lo;0;AL;;;;;N;;;;; -0724;SYRIAC LETTER FINAL SEMKATH;Lo;0;AL;;;;;N;;;;; -0725;SYRIAC LETTER E;Lo;0;AL;;;;;N;;;;; -0726;SYRIAC LETTER PE;Lo;0;AL;;;;;N;;;;; -0727;SYRIAC LETTER REVERSED PE;Lo;0;AL;;;;;N;;;;; -0728;SYRIAC LETTER SADHE;Lo;0;AL;;;;;N;;;;; -0729;SYRIAC LETTER QAPH;Lo;0;AL;;;;;N;;;;; -072A;SYRIAC LETTER RISH;Lo;0;AL;;;;;N;;;;; -072B;SYRIAC LETTER SHIN;Lo;0;AL;;;;;N;;;;; -072C;SYRIAC LETTER TAW;Lo;0;AL;;;;;N;;;;; -072D;SYRIAC LETTER PERSIAN BHETH;Lo;0;AL;;;;;N;;;;; -072E;SYRIAC LETTER PERSIAN GHAMAL;Lo;0;AL;;;;;N;;;;; -072F;SYRIAC LETTER PERSIAN DHALATH;Lo;0;AL;;;;;N;;;;; -0730;SYRIAC PTHAHA ABOVE;Mn;230;NSM;;;;;N;;;;; -0731;SYRIAC PTHAHA BELOW;Mn;220;NSM;;;;;N;;;;; -0732;SYRIAC PTHAHA DOTTED;Mn;230;NSM;;;;;N;;;;; -0733;SYRIAC ZQAPHA ABOVE;Mn;230;NSM;;;;;N;;;;; -0734;SYRIAC ZQAPHA BELOW;Mn;220;NSM;;;;;N;;;;; -0735;SYRIAC ZQAPHA DOTTED;Mn;230;NSM;;;;;N;;;;; -0736;SYRIAC RBASA ABOVE;Mn;230;NSM;;;;;N;;;;; -0737;SYRIAC RBASA BELOW;Mn;220;NSM;;;;;N;;;;; -0738;SYRIAC DOTTED ZLAMA HORIZONTAL;Mn;220;NSM;;;;;N;;;;; -0739;SYRIAC DOTTED ZLAMA ANGULAR;Mn;220;NSM;;;;;N;;;;; -073A;SYRIAC HBASA ABOVE;Mn;230;NSM;;;;;N;;;;; -073B;SYRIAC HBASA BELOW;Mn;220;NSM;;;;;N;;;;; -073C;SYRIAC HBASA-ESASA DOTTED;Mn;220;NSM;;;;;N;;;;; -073D;SYRIAC ESASA ABOVE;Mn;230;NSM;;;;;N;;;;; -073E;SYRIAC ESASA BELOW;Mn;220;NSM;;;;;N;;;;; -073F;SYRIAC RWAHA;Mn;230;NSM;;;;;N;;;;; -0740;SYRIAC FEMININE DOT;Mn;230;NSM;;;;;N;;;;; -0741;SYRIAC QUSHSHAYA;Mn;230;NSM;;;;;N;;;;; -0742;SYRIAC RUKKAKHA;Mn;220;NSM;;;;;N;;;;; -0743;SYRIAC TWO VERTICAL DOTS ABOVE;Mn;230;NSM;;;;;N;;;;; -0744;SYRIAC TWO VERTICAL DOTS BELOW;Mn;220;NSM;;;;;N;;;;; -0745;SYRIAC THREE DOTS ABOVE;Mn;230;NSM;;;;;N;;;;; -0746;SYRIAC THREE DOTS BELOW;Mn;220;NSM;;;;;N;;;;; -0747;SYRIAC OBLIQUE LINE ABOVE;Mn;230;NSM;;;;;N;;;;; -0748;SYRIAC OBLIQUE LINE BELOW;Mn;220;NSM;;;;;N;;;;; -0749;SYRIAC MUSIC;Mn;230;NSM;;;;;N;;;;; -074A;SYRIAC BARREKH;Mn;230;NSM;;;;;N;;;;; -074D;SYRIAC LETTER SOGDIAN ZHAIN;Lo;0;AL;;;;;N;;;;; -074E;SYRIAC LETTER SOGDIAN KHAPH;Lo;0;AL;;;;;N;;;;; -074F;SYRIAC LETTER SOGDIAN FE;Lo;0;AL;;;;;N;;;;; -0750;ARABIC LETTER BEH WITH THREE DOTS HORIZONTALLY BELOW;Lo;0;AL;;;;;N;;;;; -0751;ARABIC LETTER BEH WITH DOT BELOW AND THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;; -0752;ARABIC LETTER BEH WITH THREE DOTS POINTING UPWARDS BELOW;Lo;0;AL;;;;;N;;;;; -0753;ARABIC LETTER BEH WITH THREE DOTS POINTING UPWARDS BELOW AND TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;; -0754;ARABIC LETTER BEH WITH TWO DOTS BELOW AND DOT ABOVE;Lo;0;AL;;;;;N;;;;; -0755;ARABIC LETTER BEH WITH INVERTED SMALL V BELOW;Lo;0;AL;;;;;N;;;;; -0756;ARABIC LETTER BEH WITH SMALL V;Lo;0;AL;;;;;N;;;;; -0757;ARABIC LETTER HAH WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;; -0758;ARABIC LETTER HAH WITH THREE DOTS POINTING UPWARDS BELOW;Lo;0;AL;;;;;N;;;;; -0759;ARABIC LETTER DAL WITH TWO DOTS VERTICALLY BELOW AND SMALL TAH;Lo;0;AL;;;;;N;;;;; -075A;ARABIC LETTER DAL WITH INVERTED SMALL V BELOW;Lo;0;AL;;;;;N;;;;; -075B;ARABIC LETTER REH WITH STROKE;Lo;0;AL;;;;;N;;;;; -075C;ARABIC LETTER SEEN WITH FOUR DOTS ABOVE;Lo;0;AL;;;;;N;;;;; -075D;ARABIC LETTER AIN WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;; -075E;ARABIC LETTER AIN WITH THREE DOTS POINTING DOWNWARDS ABOVE;Lo;0;AL;;;;;N;;;;; -075F;ARABIC LETTER AIN WITH TWO DOTS VERTICALLY ABOVE;Lo;0;AL;;;;;N;;;;; -0760;ARABIC LETTER FEH WITH TWO DOTS BELOW;Lo;0;AL;;;;;N;;;;; -0761;ARABIC LETTER FEH WITH THREE DOTS POINTING UPWARDS BELOW;Lo;0;AL;;;;;N;;;;; -0762;ARABIC LETTER KEHEH WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;; -0763;ARABIC LETTER KEHEH WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;; -0764;ARABIC LETTER KEHEH WITH THREE DOTS POINTING UPWARDS BELOW;Lo;0;AL;;;;;N;;;;; -0765;ARABIC LETTER MEEM WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;; -0766;ARABIC LETTER MEEM WITH DOT BELOW;Lo;0;AL;;;;;N;;;;; -0767;ARABIC LETTER NOON WITH TWO DOTS BELOW;Lo;0;AL;;;;;N;;;;; -0768;ARABIC LETTER NOON WITH SMALL TAH;Lo;0;AL;;;;;N;;;;; -0769;ARABIC LETTER NOON WITH SMALL V;Lo;0;AL;;;;;N;;;;; -076A;ARABIC LETTER LAM WITH BAR;Lo;0;AL;;;;;N;;;;; -076B;ARABIC LETTER REH WITH TWO DOTS VERTICALLY ABOVE;Lo;0;AL;;;;;N;;;;; -076C;ARABIC LETTER REH WITH HAMZA ABOVE;Lo;0;AL;;;;;N;;;;; -076D;ARABIC LETTER SEEN WITH TWO DOTS VERTICALLY ABOVE;Lo;0;AL;;;;;N;;;;; -076E;ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH BELOW;Lo;0;AL;;;;;N;;;;; -076F;ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH AND TWO DOTS;Lo;0;AL;;;;;N;;;;; -0770;ARABIC LETTER SEEN WITH SMALL ARABIC LETTER TAH AND TWO DOTS;Lo;0;AL;;;;;N;;;;; -0771;ARABIC LETTER REH WITH SMALL ARABIC LETTER TAH AND TWO DOTS;Lo;0;AL;;;;;N;;;;; -0772;ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH ABOVE;Lo;0;AL;;;;;N;;;;; -0773;ARABIC LETTER ALEF WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE;Lo;0;AL;;;;;N;;;;; -0774;ARABIC LETTER ALEF WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE;Lo;0;AL;;;;;N;;;;; -0775;ARABIC LETTER FARSI YEH WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE;Lo;0;AL;;;;;N;;;;; -0776;ARABIC LETTER FARSI YEH WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE;Lo;0;AL;;;;;N;;;;; -0777;ARABIC LETTER FARSI YEH WITH EXTENDED ARABIC-INDIC DIGIT FOUR BELOW;Lo;0;AL;;;;;N;;;;; -0778;ARABIC LETTER WAW WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE;Lo;0;AL;;;;;N;;;;; -0779;ARABIC LETTER WAW WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE;Lo;0;AL;;;;;N;;;;; -077A;ARABIC LETTER YEH BARREE WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE;Lo;0;AL;;;;;N;;;;; -077B;ARABIC LETTER YEH BARREE WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE;Lo;0;AL;;;;;N;;;;; -077C;ARABIC LETTER HAH WITH EXTENDED ARABIC-INDIC DIGIT FOUR BELOW;Lo;0;AL;;;;;N;;;;; -077D;ARABIC LETTER SEEN WITH EXTENDED ARABIC-INDIC DIGIT FOUR ABOVE;Lo;0;AL;;;;;N;;;;; -077E;ARABIC LETTER SEEN WITH INVERTED V;Lo;0;AL;;;;;N;;;;; -077F;ARABIC LETTER KAF WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;; -0780;THAANA LETTER HAA;Lo;0;AL;;;;;N;;;;; -0781;THAANA LETTER SHAVIYANI;Lo;0;AL;;;;;N;;;;; -0782;THAANA LETTER NOONU;Lo;0;AL;;;;;N;;;;; -0783;THAANA LETTER RAA;Lo;0;AL;;;;;N;;;;; -0784;THAANA LETTER BAA;Lo;0;AL;;;;;N;;;;; -0785;THAANA LETTER LHAVIYANI;Lo;0;AL;;;;;N;;;;; -0786;THAANA LETTER KAAFU;Lo;0;AL;;;;;N;;;;; -0787;THAANA LETTER ALIFU;Lo;0;AL;;;;;N;;;;; -0788;THAANA LETTER VAAVU;Lo;0;AL;;;;;N;;;;; -0789;THAANA LETTER MEEMU;Lo;0;AL;;;;;N;;;;; -078A;THAANA LETTER FAAFU;Lo;0;AL;;;;;N;;;;; -078B;THAANA LETTER DHAALU;Lo;0;AL;;;;;N;;;;; -078C;THAANA LETTER THAA;Lo;0;AL;;;;;N;;;;; -078D;THAANA LETTER LAAMU;Lo;0;AL;;;;;N;;;;; -078E;THAANA LETTER GAAFU;Lo;0;AL;;;;;N;;;;; -078F;THAANA LETTER GNAVIYANI;Lo;0;AL;;;;;N;;;;; -0790;THAANA LETTER SEENU;Lo;0;AL;;;;;N;;;;; -0791;THAANA LETTER DAVIYANI;Lo;0;AL;;;;;N;;;;; -0792;THAANA LETTER ZAVIYANI;Lo;0;AL;;;;;N;;;;; -0793;THAANA LETTER TAVIYANI;Lo;0;AL;;;;;N;;;;; -0794;THAANA LETTER YAA;Lo;0;AL;;;;;N;;;;; -0795;THAANA LETTER PAVIYANI;Lo;0;AL;;;;;N;;;;; -0796;THAANA LETTER JAVIYANI;Lo;0;AL;;;;;N;;;;; -0797;THAANA LETTER CHAVIYANI;Lo;0;AL;;;;;N;;;;; -0798;THAANA LETTER TTAA;Lo;0;AL;;;;;N;;;;; -0799;THAANA LETTER HHAA;Lo;0;AL;;;;;N;;;;; -079A;THAANA LETTER KHAA;Lo;0;AL;;;;;N;;;;; -079B;THAANA LETTER THAALU;Lo;0;AL;;;;;N;;;;; -079C;THAANA LETTER ZAA;Lo;0;AL;;;;;N;;;;; -079D;THAANA LETTER SHEENU;Lo;0;AL;;;;;N;;;;; -079E;THAANA LETTER SAADHU;Lo;0;AL;;;;;N;;;;; -079F;THAANA LETTER DAADHU;Lo;0;AL;;;;;N;;;;; -07A0;THAANA LETTER TO;Lo;0;AL;;;;;N;;;;; -07A1;THAANA LETTER ZO;Lo;0;AL;;;;;N;;;;; -07A2;THAANA LETTER AINU;Lo;0;AL;;;;;N;;;;; -07A3;THAANA LETTER GHAINU;Lo;0;AL;;;;;N;;;;; -07A4;THAANA LETTER QAAFU;Lo;0;AL;;;;;N;;;;; -07A5;THAANA LETTER WAAVU;Lo;0;AL;;;;;N;;;;; -07A6;THAANA ABAFILI;Mn;0;NSM;;;;;N;;;;; -07A7;THAANA AABAAFILI;Mn;0;NSM;;;;;N;;;;; -07A8;THAANA IBIFILI;Mn;0;NSM;;;;;N;;;;; -07A9;THAANA EEBEEFILI;Mn;0;NSM;;;;;N;;;;; -07AA;THAANA UBUFILI;Mn;0;NSM;;;;;N;;;;; -07AB;THAANA OOBOOFILI;Mn;0;NSM;;;;;N;;;;; -07AC;THAANA EBEFILI;Mn;0;NSM;;;;;N;;;;; -07AD;THAANA EYBEYFILI;Mn;0;NSM;;;;;N;;;;; -07AE;THAANA OBOFILI;Mn;0;NSM;;;;;N;;;;; -07AF;THAANA OABOAFILI;Mn;0;NSM;;;;;N;;;;; -07B0;THAANA SUKUN;Mn;0;NSM;;;;;N;;;;; -07B1;THAANA LETTER NAA;Lo;0;AL;;;;;N;;;;; -07C0;NKO DIGIT ZERO;Nd;0;R;;0;0;0;N;;;;; -07C1;NKO DIGIT ONE;Nd;0;R;;1;1;1;N;;;;; -07C2;NKO DIGIT TWO;Nd;0;R;;2;2;2;N;;;;; -07C3;NKO DIGIT THREE;Nd;0;R;;3;3;3;N;;;;; -07C4;NKO DIGIT FOUR;Nd;0;R;;4;4;4;N;;;;; -07C5;NKO DIGIT FIVE;Nd;0;R;;5;5;5;N;;;;; -07C6;NKO DIGIT SIX;Nd;0;R;;6;6;6;N;;;;; -07C7;NKO DIGIT SEVEN;Nd;0;R;;7;7;7;N;;;;; -07C8;NKO DIGIT EIGHT;Nd;0;R;;8;8;8;N;;;;; -07C9;NKO DIGIT NINE;Nd;0;R;;9;9;9;N;;;;; -07CA;NKO LETTER A;Lo;0;R;;;;;N;;;;; -07CB;NKO LETTER EE;Lo;0;R;;;;;N;;;;; -07CC;NKO LETTER I;Lo;0;R;;;;;N;;;;; -07CD;NKO LETTER E;Lo;0;R;;;;;N;;;;; -07CE;NKO LETTER U;Lo;0;R;;;;;N;;;;; -07CF;NKO LETTER OO;Lo;0;R;;;;;N;;;;; -07D0;NKO LETTER O;Lo;0;R;;;;;N;;;;; -07D1;NKO LETTER DAGBASINNA;Lo;0;R;;;;;N;;;;; -07D2;NKO LETTER N;Lo;0;R;;;;;N;;;;; -07D3;NKO LETTER BA;Lo;0;R;;;;;N;;;;; -07D4;NKO LETTER PA;Lo;0;R;;;;;N;;;;; -07D5;NKO LETTER TA;Lo;0;R;;;;;N;;;;; -07D6;NKO LETTER JA;Lo;0;R;;;;;N;;;;; -07D7;NKO LETTER CHA;Lo;0;R;;;;;N;;;;; -07D8;NKO LETTER DA;Lo;0;R;;;;;N;;;;; -07D9;NKO LETTER RA;Lo;0;R;;;;;N;;;;; -07DA;NKO LETTER RRA;Lo;0;R;;;;;N;;;;; -07DB;NKO LETTER SA;Lo;0;R;;;;;N;;;;; -07DC;NKO LETTER GBA;Lo;0;R;;;;;N;;;;; -07DD;NKO LETTER FA;Lo;0;R;;;;;N;;;;; -07DE;NKO LETTER KA;Lo;0;R;;;;;N;;;;; -07DF;NKO LETTER LA;Lo;0;R;;;;;N;;;;; -07E0;NKO LETTER NA WOLOSO;Lo;0;R;;;;;N;;;;; -07E1;NKO LETTER MA;Lo;0;R;;;;;N;;;;; -07E2;NKO LETTER NYA;Lo;0;R;;;;;N;;;;; -07E3;NKO LETTER NA;Lo;0;R;;;;;N;;;;; -07E4;NKO LETTER HA;Lo;0;R;;;;;N;;;;; -07E5;NKO LETTER WA;Lo;0;R;;;;;N;;;;; -07E6;NKO LETTER YA;Lo;0;R;;;;;N;;;;; -07E7;NKO LETTER NYA WOLOSO;Lo;0;R;;;;;N;;;;; -07E8;NKO LETTER JONA JA;Lo;0;R;;;;;N;;;;; -07E9;NKO LETTER JONA CHA;Lo;0;R;;;;;N;;;;; -07EA;NKO LETTER JONA RA;Lo;0;R;;;;;N;;;;; -07EB;NKO COMBINING SHORT HIGH TONE;Mn;230;NSM;;;;;N;;;;; -07EC;NKO COMBINING SHORT LOW TONE;Mn;230;NSM;;;;;N;;;;; -07ED;NKO COMBINING SHORT RISING TONE;Mn;230;NSM;;;;;N;;;;; -07EE;NKO COMBINING LONG DESCENDING TONE;Mn;230;NSM;;;;;N;;;;; -07EF;NKO COMBINING LONG HIGH TONE;Mn;230;NSM;;;;;N;;;;; -07F0;NKO COMBINING LONG LOW TONE;Mn;230;NSM;;;;;N;;;;; -07F1;NKO COMBINING LONG RISING TONE;Mn;230;NSM;;;;;N;;;;; -07F2;NKO COMBINING NASALIZATION MARK;Mn;220;NSM;;;;;N;;;;; -07F3;NKO COMBINING DOUBLE DOT ABOVE;Mn;230;NSM;;;;;N;;;;; -07F4;NKO HIGH TONE APOSTROPHE;Lm;0;R;;;;;N;;;;; -07F5;NKO LOW TONE APOSTROPHE;Lm;0;R;;;;;N;;;;; -07F6;NKO SYMBOL OO DENNEN;So;0;ON;;;;;N;;;;; -07F7;NKO SYMBOL GBAKURUNEN;Po;0;ON;;;;;N;;;;; -07F8;NKO COMMA;Po;0;ON;;;;;N;;;;; -07F9;NKO EXCLAMATION MARK;Po;0;ON;;;;;N;;;;; -07FA;NKO LAJANYALAN;Lm;0;R;;;;;N;;;;; -0800;SAMARITAN LETTER ALAF;Lo;0;R;;;;;N;;;;; -0801;SAMARITAN LETTER BIT;Lo;0;R;;;;;N;;;;; -0802;SAMARITAN LETTER GAMAN;Lo;0;R;;;;;N;;;;; -0803;SAMARITAN LETTER DALAT;Lo;0;R;;;;;N;;;;; -0804;SAMARITAN LETTER IY;Lo;0;R;;;;;N;;;;; -0805;SAMARITAN LETTER BAA;Lo;0;R;;;;;N;;;;; -0806;SAMARITAN LETTER ZEN;Lo;0;R;;;;;N;;;;; -0807;SAMARITAN LETTER IT;Lo;0;R;;;;;N;;;;; -0808;SAMARITAN LETTER TIT;Lo;0;R;;;;;N;;;;; -0809;SAMARITAN LETTER YUT;Lo;0;R;;;;;N;;;;; -080A;SAMARITAN LETTER KAAF;Lo;0;R;;;;;N;;;;; -080B;SAMARITAN LETTER LABAT;Lo;0;R;;;;;N;;;;; -080C;SAMARITAN LETTER MIM;Lo;0;R;;;;;N;;;;; -080D;SAMARITAN LETTER NUN;Lo;0;R;;;;;N;;;;; -080E;SAMARITAN LETTER SINGAAT;Lo;0;R;;;;;N;;;;; -080F;SAMARITAN LETTER IN;Lo;0;R;;;;;N;;;;; -0810;SAMARITAN LETTER FI;Lo;0;R;;;;;N;;;;; -0811;SAMARITAN LETTER TSAADIY;Lo;0;R;;;;;N;;;;; -0812;SAMARITAN LETTER QUF;Lo;0;R;;;;;N;;;;; -0813;SAMARITAN LETTER RISH;Lo;0;R;;;;;N;;;;; -0814;SAMARITAN LETTER SHAN;Lo;0;R;;;;;N;;;;; -0815;SAMARITAN LETTER TAAF;Lo;0;R;;;;;N;;;;; -0816;SAMARITAN MARK IN;Mn;230;NSM;;;;;N;;;;; -0817;SAMARITAN MARK IN-ALAF;Mn;230;NSM;;;;;N;;;;; -0818;SAMARITAN MARK OCCLUSION;Mn;230;NSM;;;;;N;;;;; -0819;SAMARITAN MARK DAGESH;Mn;230;NSM;;;;;N;;;;; -081A;SAMARITAN MODIFIER LETTER EPENTHETIC YUT;Lm;0;R;;;;;N;;;;; -081B;SAMARITAN MARK EPENTHETIC YUT;Mn;230;NSM;;;;;N;;;;; -081C;SAMARITAN VOWEL SIGN LONG E;Mn;230;NSM;;;;;N;;;;; -081D;SAMARITAN VOWEL SIGN E;Mn;230;NSM;;;;;N;;;;; -081E;SAMARITAN VOWEL SIGN OVERLONG AA;Mn;230;NSM;;;;;N;;;;; -081F;SAMARITAN VOWEL SIGN LONG AA;Mn;230;NSM;;;;;N;;;;; -0820;SAMARITAN VOWEL SIGN AA;Mn;230;NSM;;;;;N;;;;; -0821;SAMARITAN VOWEL SIGN OVERLONG A;Mn;230;NSM;;;;;N;;;;; -0822;SAMARITAN VOWEL SIGN LONG A;Mn;230;NSM;;;;;N;;;;; -0823;SAMARITAN VOWEL SIGN A;Mn;230;NSM;;;;;N;;;;; -0824;SAMARITAN MODIFIER LETTER SHORT A;Lm;0;R;;;;;N;;;;; -0825;SAMARITAN VOWEL SIGN SHORT A;Mn;230;NSM;;;;;N;;;;; -0826;SAMARITAN VOWEL SIGN LONG U;Mn;230;NSM;;;;;N;;;;; -0827;SAMARITAN VOWEL SIGN U;Mn;230;NSM;;;;;N;;;;; -0828;SAMARITAN MODIFIER LETTER I;Lm;0;R;;;;;N;;;;; -0829;SAMARITAN VOWEL SIGN LONG I;Mn;230;NSM;;;;;N;;;;; -082A;SAMARITAN VOWEL SIGN I;Mn;230;NSM;;;;;N;;;;; -082B;SAMARITAN VOWEL SIGN O;Mn;230;NSM;;;;;N;;;;; -082C;SAMARITAN VOWEL SIGN SUKUN;Mn;230;NSM;;;;;N;;;;; -082D;SAMARITAN MARK NEQUDAA;Mn;230;NSM;;;;;N;;;;; -0830;SAMARITAN PUNCTUATION NEQUDAA;Po;0;R;;;;;N;;;;; -0831;SAMARITAN PUNCTUATION AFSAAQ;Po;0;R;;;;;N;;;;; -0832;SAMARITAN PUNCTUATION ANGED;Po;0;R;;;;;N;;;;; -0833;SAMARITAN PUNCTUATION BAU;Po;0;R;;;;;N;;;;; -0834;SAMARITAN PUNCTUATION ATMAAU;Po;0;R;;;;;N;;;;; -0835;SAMARITAN PUNCTUATION SHIYYAALAA;Po;0;R;;;;;N;;;;; -0836;SAMARITAN ABBREVIATION MARK;Po;0;R;;;;;N;;;;; -0837;SAMARITAN PUNCTUATION MELODIC QITSA;Po;0;R;;;;;N;;;;; -0838;SAMARITAN PUNCTUATION ZIQAA;Po;0;R;;;;;N;;;;; -0839;SAMARITAN PUNCTUATION QITSA;Po;0;R;;;;;N;;;;; -083A;SAMARITAN PUNCTUATION ZAEF;Po;0;R;;;;;N;;;;; -083B;SAMARITAN PUNCTUATION TURU;Po;0;R;;;;;N;;;;; -083C;SAMARITAN PUNCTUATION ARKAANU;Po;0;R;;;;;N;;;;; -083D;SAMARITAN PUNCTUATION SOF MASHFAAT;Po;0;R;;;;;N;;;;; -083E;SAMARITAN PUNCTUATION ANNAAU;Po;0;R;;;;;N;;;;; -0900;DEVANAGARI SIGN INVERTED CANDRABINDU;Mn;0;NSM;;;;;N;;;;; -0901;DEVANAGARI SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;; -0902;DEVANAGARI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;; -0903;DEVANAGARI SIGN VISARGA;Mc;0;L;;;;;N;;;;; -0904;DEVANAGARI LETTER SHORT A;Lo;0;L;;;;;N;;;;; -0905;DEVANAGARI LETTER A;Lo;0;L;;;;;N;;;;; -0906;DEVANAGARI LETTER AA;Lo;0;L;;;;;N;;;;; -0907;DEVANAGARI LETTER I;Lo;0;L;;;;;N;;;;; -0908;DEVANAGARI LETTER II;Lo;0;L;;;;;N;;;;; -0909;DEVANAGARI LETTER U;Lo;0;L;;;;;N;;;;; -090A;DEVANAGARI LETTER UU;Lo;0;L;;;;;N;;;;; -090B;DEVANAGARI LETTER VOCALIC R;Lo;0;L;;;;;N;;;;; -090C;DEVANAGARI LETTER VOCALIC L;Lo;0;L;;;;;N;;;;; -090D;DEVANAGARI LETTER CANDRA E;Lo;0;L;;;;;N;;;;; -090E;DEVANAGARI LETTER SHORT E;Lo;0;L;;;;;N;;;;; -090F;DEVANAGARI LETTER E;Lo;0;L;;;;;N;;;;; -0910;DEVANAGARI LETTER AI;Lo;0;L;;;;;N;;;;; -0911;DEVANAGARI LETTER CANDRA O;Lo;0;L;;;;;N;;;;; -0912;DEVANAGARI LETTER SHORT O;Lo;0;L;;;;;N;;;;; -0913;DEVANAGARI LETTER O;Lo;0;L;;;;;N;;;;; -0914;DEVANAGARI LETTER AU;Lo;0;L;;;;;N;;;;; -0915;DEVANAGARI LETTER KA;Lo;0;L;;;;;N;;;;; -0916;DEVANAGARI LETTER KHA;Lo;0;L;;;;;N;;;;; -0917;DEVANAGARI LETTER GA;Lo;0;L;;;;;N;;;;; -0918;DEVANAGARI LETTER GHA;Lo;0;L;;;;;N;;;;; -0919;DEVANAGARI LETTER NGA;Lo;0;L;;;;;N;;;;; -091A;DEVANAGARI LETTER CA;Lo;0;L;;;;;N;;;;; -091B;DEVANAGARI LETTER CHA;Lo;0;L;;;;;N;;;;; -091C;DEVANAGARI LETTER JA;Lo;0;L;;;;;N;;;;; -091D;DEVANAGARI LETTER JHA;Lo;0;L;;;;;N;;;;; -091E;DEVANAGARI LETTER NYA;Lo;0;L;;;;;N;;;;; -091F;DEVANAGARI LETTER TTA;Lo;0;L;;;;;N;;;;; -0920;DEVANAGARI LETTER TTHA;Lo;0;L;;;;;N;;;;; -0921;DEVANAGARI LETTER DDA;Lo;0;L;;;;;N;;;;; -0922;DEVANAGARI LETTER DDHA;Lo;0;L;;;;;N;;;;; -0923;DEVANAGARI LETTER NNA;Lo;0;L;;;;;N;;;;; -0924;DEVANAGARI LETTER TA;Lo;0;L;;;;;N;;;;; -0925;DEVANAGARI LETTER THA;Lo;0;L;;;;;N;;;;; -0926;DEVANAGARI LETTER DA;Lo;0;L;;;;;N;;;;; -0927;DEVANAGARI LETTER DHA;Lo;0;L;;;;;N;;;;; -0928;DEVANAGARI LETTER NA;Lo;0;L;;;;;N;;;;; -0929;DEVANAGARI LETTER NNNA;Lo;0;L;0928 093C;;;;N;;;;; -092A;DEVANAGARI LETTER PA;Lo;0;L;;;;;N;;;;; -092B;DEVANAGARI LETTER PHA;Lo;0;L;;;;;N;;;;; -092C;DEVANAGARI LETTER BA;Lo;0;L;;;;;N;;;;; -092D;DEVANAGARI LETTER BHA;Lo;0;L;;;;;N;;;;; -092E;DEVANAGARI LETTER MA;Lo;0;L;;;;;N;;;;; -092F;DEVANAGARI LETTER YA;Lo;0;L;;;;;N;;;;; -0930;DEVANAGARI LETTER RA;Lo;0;L;;;;;N;;;;; -0931;DEVANAGARI LETTER RRA;Lo;0;L;0930 093C;;;;N;;;;; -0932;DEVANAGARI LETTER LA;Lo;0;L;;;;;N;;;;; -0933;DEVANAGARI LETTER LLA;Lo;0;L;;;;;N;;;;; -0934;DEVANAGARI LETTER LLLA;Lo;0;L;0933 093C;;;;N;;;;; -0935;DEVANAGARI LETTER VA;Lo;0;L;;;;;N;;;;; -0936;DEVANAGARI LETTER SHA;Lo;0;L;;;;;N;;;;; -0937;DEVANAGARI LETTER SSA;Lo;0;L;;;;;N;;;;; -0938;DEVANAGARI LETTER SA;Lo;0;L;;;;;N;;;;; -0939;DEVANAGARI LETTER HA;Lo;0;L;;;;;N;;;;; -093C;DEVANAGARI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;; -093D;DEVANAGARI SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;; -093E;DEVANAGARI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;; -093F;DEVANAGARI VOWEL SIGN I;Mc;0;L;;;;;N;;;;; -0940;DEVANAGARI VOWEL SIGN II;Mc;0;L;;;;;N;;;;; -0941;DEVANAGARI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; -0942;DEVANAGARI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;; -0943;DEVANAGARI VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;; -0944;DEVANAGARI VOWEL SIGN VOCALIC RR;Mn;0;NSM;;;;;N;;;;; -0945;DEVANAGARI VOWEL SIGN CANDRA E;Mn;0;NSM;;;;;N;;;;; -0946;DEVANAGARI VOWEL SIGN SHORT E;Mn;0;NSM;;;;;N;;;;; -0947;DEVANAGARI VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;; -0948;DEVANAGARI VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;; -0949;DEVANAGARI VOWEL SIGN CANDRA O;Mc;0;L;;;;;N;;;;; -094A;DEVANAGARI VOWEL SIGN SHORT O;Mc;0;L;;;;;N;;;;; -094B;DEVANAGARI VOWEL SIGN O;Mc;0;L;;;;;N;;;;; -094C;DEVANAGARI VOWEL SIGN AU;Mc;0;L;;;;;N;;;;; -094D;DEVANAGARI SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;; -094E;DEVANAGARI VOWEL SIGN PRISHTHAMATRA E;Mc;0;L;;;;;N;;;;; -0950;DEVANAGARI OM;Lo;0;L;;;;;N;;;;; -0951;DEVANAGARI STRESS SIGN UDATTA;Mn;230;NSM;;;;;N;;;;; -0952;DEVANAGARI STRESS SIGN ANUDATTA;Mn;220;NSM;;;;;N;;;;; -0953;DEVANAGARI GRAVE ACCENT;Mn;230;NSM;;;;;N;;;;; -0954;DEVANAGARI ACUTE ACCENT;Mn;230;NSM;;;;;N;;;;; -0955;DEVANAGARI VOWEL SIGN CANDRA LONG E;Mn;0;NSM;;;;;N;;;;; -0958;DEVANAGARI LETTER QA;Lo;0;L;0915 093C;;;;N;;;;; -0959;DEVANAGARI LETTER KHHA;Lo;0;L;0916 093C;;;;N;;;;; -095A;DEVANAGARI LETTER GHHA;Lo;0;L;0917 093C;;;;N;;;;; -095B;DEVANAGARI LETTER ZA;Lo;0;L;091C 093C;;;;N;;;;; -095C;DEVANAGARI LETTER DDDHA;Lo;0;L;0921 093C;;;;N;;;;; -095D;DEVANAGARI LETTER RHA;Lo;0;L;0922 093C;;;;N;;;;; -095E;DEVANAGARI LETTER FA;Lo;0;L;092B 093C;;;;N;;;;; -095F;DEVANAGARI LETTER YYA;Lo;0;L;092F 093C;;;;N;;;;; -0960;DEVANAGARI LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;; -0961;DEVANAGARI LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;; -0962;DEVANAGARI VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;; -0963;DEVANAGARI VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;; -0964;DEVANAGARI DANDA;Po;0;L;;;;;N;;;;; -0965;DEVANAGARI DOUBLE DANDA;Po;0;L;;;;;N;;;;; -0966;DEVANAGARI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; -0967;DEVANAGARI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; -0968;DEVANAGARI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; -0969;DEVANAGARI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; -096A;DEVANAGARI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; -096B;DEVANAGARI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; -096C;DEVANAGARI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; -096D;DEVANAGARI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; -096E;DEVANAGARI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; -096F;DEVANAGARI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; -0970;DEVANAGARI ABBREVIATION SIGN;Po;0;L;;;;;N;;;;; -0971;DEVANAGARI SIGN HIGH SPACING DOT;Lm;0;L;;;;;N;;;;; -0972;DEVANAGARI LETTER CANDRA A;Lo;0;L;;;;;N;;;;; -0979;DEVANAGARI LETTER ZHA;Lo;0;L;;;;;N;;;;; -097A;DEVANAGARI LETTER HEAVY YA;Lo;0;L;;;;;N;;;;; -097B;DEVANAGARI LETTER GGA;Lo;0;L;;;;;N;;;;; -097C;DEVANAGARI LETTER JJA;Lo;0;L;;;;;N;;;;; -097D;DEVANAGARI LETTER GLOTTAL STOP;Lo;0;L;;;;;N;;;;; -097E;DEVANAGARI LETTER DDDA;Lo;0;L;;;;;N;;;;; -097F;DEVANAGARI LETTER BBA;Lo;0;L;;;;;N;;;;; -0981;BENGALI SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;; -0982;BENGALI SIGN ANUSVARA;Mc;0;L;;;;;N;;;;; -0983;BENGALI SIGN VISARGA;Mc;0;L;;;;;N;;;;; -0985;BENGALI LETTER A;Lo;0;L;;;;;N;;;;; -0986;BENGALI LETTER AA;Lo;0;L;;;;;N;;;;; -0987;BENGALI LETTER I;Lo;0;L;;;;;N;;;;; -0988;BENGALI LETTER II;Lo;0;L;;;;;N;;;;; -0989;BENGALI LETTER U;Lo;0;L;;;;;N;;;;; -098A;BENGALI LETTER UU;Lo;0;L;;;;;N;;;;; -098B;BENGALI LETTER VOCALIC R;Lo;0;L;;;;;N;;;;; -098C;BENGALI LETTER VOCALIC L;Lo;0;L;;;;;N;;;;; -098F;BENGALI LETTER E;Lo;0;L;;;;;N;;;;; -0990;BENGALI LETTER AI;Lo;0;L;;;;;N;;;;; -0993;BENGALI LETTER O;Lo;0;L;;;;;N;;;;; -0994;BENGALI LETTER AU;Lo;0;L;;;;;N;;;;; -0995;BENGALI LETTER KA;Lo;0;L;;;;;N;;;;; -0996;BENGALI LETTER KHA;Lo;0;L;;;;;N;;;;; -0997;BENGALI LETTER GA;Lo;0;L;;;;;N;;;;; -0998;BENGALI LETTER GHA;Lo;0;L;;;;;N;;;;; -0999;BENGALI LETTER NGA;Lo;0;L;;;;;N;;;;; -099A;BENGALI LETTER CA;Lo;0;L;;;;;N;;;;; -099B;BENGALI LETTER CHA;Lo;0;L;;;;;N;;;;; -099C;BENGALI LETTER JA;Lo;0;L;;;;;N;;;;; -099D;BENGALI LETTER JHA;Lo;0;L;;;;;N;;;;; -099E;BENGALI LETTER NYA;Lo;0;L;;;;;N;;;;; -099F;BENGALI LETTER TTA;Lo;0;L;;;;;N;;;;; -09A0;BENGALI LETTER TTHA;Lo;0;L;;;;;N;;;;; -09A1;BENGALI LETTER DDA;Lo;0;L;;;;;N;;;;; -09A2;BENGALI LETTER DDHA;Lo;0;L;;;;;N;;;;; -09A3;BENGALI LETTER NNA;Lo;0;L;;;;;N;;;;; -09A4;BENGALI LETTER TA;Lo;0;L;;;;;N;;;;; -09A5;BENGALI LETTER THA;Lo;0;L;;;;;N;;;;; -09A6;BENGALI LETTER DA;Lo;0;L;;;;;N;;;;; -09A7;BENGALI LETTER DHA;Lo;0;L;;;;;N;;;;; -09A8;BENGALI LETTER NA;Lo;0;L;;;;;N;;;;; -09AA;BENGALI LETTER PA;Lo;0;L;;;;;N;;;;; -09AB;BENGALI LETTER PHA;Lo;0;L;;;;;N;;;;; -09AC;BENGALI LETTER BA;Lo;0;L;;;;;N;;;;; -09AD;BENGALI LETTER BHA;Lo;0;L;;;;;N;;;;; -09AE;BENGALI LETTER MA;Lo;0;L;;;;;N;;;;; -09AF;BENGALI LETTER YA;Lo;0;L;;;;;N;;;;; -09B0;BENGALI LETTER RA;Lo;0;L;;;;;N;;;;; -09B2;BENGALI LETTER LA;Lo;0;L;;;;;N;;;;; -09B6;BENGALI LETTER SHA;Lo;0;L;;;;;N;;;;; -09B7;BENGALI LETTER SSA;Lo;0;L;;;;;N;;;;; -09B8;BENGALI LETTER SA;Lo;0;L;;;;;N;;;;; -09B9;BENGALI LETTER HA;Lo;0;L;;;;;N;;;;; -09BC;BENGALI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;; -09BD;BENGALI SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;; -09BE;BENGALI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;; -09BF;BENGALI VOWEL SIGN I;Mc;0;L;;;;;N;;;;; -09C0;BENGALI VOWEL SIGN II;Mc;0;L;;;;;N;;;;; -09C1;BENGALI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; -09C2;BENGALI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;; -09C3;BENGALI VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;; -09C4;BENGALI VOWEL SIGN VOCALIC RR;Mn;0;NSM;;;;;N;;;;; -09C7;BENGALI VOWEL SIGN E;Mc;0;L;;;;;N;;;;; -09C8;BENGALI VOWEL SIGN AI;Mc;0;L;;;;;N;;;;; -09CB;BENGALI VOWEL SIGN O;Mc;0;L;09C7 09BE;;;;N;;;;; -09CC;BENGALI VOWEL SIGN AU;Mc;0;L;09C7 09D7;;;;N;;;;; -09CD;BENGALI SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;; -09CE;BENGALI LETTER KHANDA TA;Lo;0;L;;;;;N;;;;; -09D7;BENGALI AU LENGTH MARK;Mc;0;L;;;;;N;;;;; -09DC;BENGALI LETTER RRA;Lo;0;L;09A1 09BC;;;;N;;;;; -09DD;BENGALI LETTER RHA;Lo;0;L;09A2 09BC;;;;N;;;;; -09DF;BENGALI LETTER YYA;Lo;0;L;09AF 09BC;;;;N;;;;; -09E0;BENGALI LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;; -09E1;BENGALI LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;; -09E2;BENGALI VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;; -09E3;BENGALI VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;; -09E6;BENGALI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; -09E7;BENGALI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; -09E8;BENGALI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; -09E9;BENGALI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; -09EA;BENGALI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; -09EB;BENGALI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; -09EC;BENGALI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; -09ED;BENGALI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; -09EE;BENGALI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; -09EF;BENGALI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; -09F0;BENGALI LETTER RA WITH MIDDLE DIAGONAL;Lo;0;L;;;;;N;;;;; -09F1;BENGALI LETTER RA WITH LOWER DIAGONAL;Lo;0;L;;;;;N;BENGALI LETTER VA WITH LOWER DIAGONAL;;;; -09F2;BENGALI RUPEE MARK;Sc;0;ET;;;;;N;;;;; -09F3;BENGALI RUPEE SIGN;Sc;0;ET;;;;;N;;;;; -09F4;BENGALI CURRENCY NUMERATOR ONE;No;0;L;;;;1/16;N;;;;; -09F5;BENGALI CURRENCY NUMERATOR TWO;No;0;L;;;;1/8;N;;;;; -09F6;BENGALI CURRENCY NUMERATOR THREE;No;0;L;;;;3/16;N;;;;; -09F7;BENGALI CURRENCY NUMERATOR FOUR;No;0;L;;;;1/4;N;;;;; -09F8;BENGALI CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR;No;0;L;;;;3/4;N;;;;; -09F9;BENGALI CURRENCY DENOMINATOR SIXTEEN;No;0;L;;;;16;N;;;;; -09FA;BENGALI ISSHAR;So;0;L;;;;;N;;;;; -09FB;BENGALI GANDA MARK;Sc;0;ET;;;;;N;;;;; -0A01;GURMUKHI SIGN ADAK BINDI;Mn;0;NSM;;;;;N;;;;; -0A02;GURMUKHI SIGN BINDI;Mn;0;NSM;;;;;N;;;;; -0A03;GURMUKHI SIGN VISARGA;Mc;0;L;;;;;N;;;;; -0A05;GURMUKHI LETTER A;Lo;0;L;;;;;N;;;;; -0A06;GURMUKHI LETTER AA;Lo;0;L;;;;;N;;;;; -0A07;GURMUKHI LETTER I;Lo;0;L;;;;;N;;;;; -0A08;GURMUKHI LETTER II;Lo;0;L;;;;;N;;;;; -0A09;GURMUKHI LETTER U;Lo;0;L;;;;;N;;;;; -0A0A;GURMUKHI LETTER UU;Lo;0;L;;;;;N;;;;; -0A0F;GURMUKHI LETTER EE;Lo;0;L;;;;;N;;;;; -0A10;GURMUKHI LETTER AI;Lo;0;L;;;;;N;;;;; -0A13;GURMUKHI LETTER OO;Lo;0;L;;;;;N;;;;; -0A14;GURMUKHI LETTER AU;Lo;0;L;;;;;N;;;;; -0A15;GURMUKHI LETTER KA;Lo;0;L;;;;;N;;;;; -0A16;GURMUKHI LETTER KHA;Lo;0;L;;;;;N;;;;; -0A17;GURMUKHI LETTER GA;Lo;0;L;;;;;N;;;;; -0A18;GURMUKHI LETTER GHA;Lo;0;L;;;;;N;;;;; -0A19;GURMUKHI LETTER NGA;Lo;0;L;;;;;N;;;;; -0A1A;GURMUKHI LETTER CA;Lo;0;L;;;;;N;;;;; -0A1B;GURMUKHI LETTER CHA;Lo;0;L;;;;;N;;;;; -0A1C;GURMUKHI LETTER JA;Lo;0;L;;;;;N;;;;; -0A1D;GURMUKHI LETTER JHA;Lo;0;L;;;;;N;;;;; -0A1E;GURMUKHI LETTER NYA;Lo;0;L;;;;;N;;;;; -0A1F;GURMUKHI LETTER TTA;Lo;0;L;;;;;N;;;;; -0A20;GURMUKHI LETTER TTHA;Lo;0;L;;;;;N;;;;; -0A21;GURMUKHI LETTER DDA;Lo;0;L;;;;;N;;;;; -0A22;GURMUKHI LETTER DDHA;Lo;0;L;;;;;N;;;;; -0A23;GURMUKHI LETTER NNA;Lo;0;L;;;;;N;;;;; -0A24;GURMUKHI LETTER TA;Lo;0;L;;;;;N;;;;; -0A25;GURMUKHI LETTER THA;Lo;0;L;;;;;N;;;;; -0A26;GURMUKHI LETTER DA;Lo;0;L;;;;;N;;;;; -0A27;GURMUKHI LETTER DHA;Lo;0;L;;;;;N;;;;; -0A28;GURMUKHI LETTER NA;Lo;0;L;;;;;N;;;;; -0A2A;GURMUKHI LETTER PA;Lo;0;L;;;;;N;;;;; -0A2B;GURMUKHI LETTER PHA;Lo;0;L;;;;;N;;;;; -0A2C;GURMUKHI LETTER BA;Lo;0;L;;;;;N;;;;; -0A2D;GURMUKHI LETTER BHA;Lo;0;L;;;;;N;;;;; -0A2E;GURMUKHI LETTER MA;Lo;0;L;;;;;N;;;;; -0A2F;GURMUKHI LETTER YA;Lo;0;L;;;;;N;;;;; -0A30;GURMUKHI LETTER RA;Lo;0;L;;;;;N;;;;; -0A32;GURMUKHI LETTER LA;Lo;0;L;;;;;N;;;;; -0A33;GURMUKHI LETTER LLA;Lo;0;L;0A32 0A3C;;;;N;;;;; -0A35;GURMUKHI LETTER VA;Lo;0;L;;;;;N;;;;; -0A36;GURMUKHI LETTER SHA;Lo;0;L;0A38 0A3C;;;;N;;;;; -0A38;GURMUKHI LETTER SA;Lo;0;L;;;;;N;;;;; -0A39;GURMUKHI LETTER HA;Lo;0;L;;;;;N;;;;; -0A3C;GURMUKHI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;; -0A3E;GURMUKHI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;; -0A3F;GURMUKHI VOWEL SIGN I;Mc;0;L;;;;;N;;;;; -0A40;GURMUKHI VOWEL SIGN II;Mc;0;L;;;;;N;;;;; -0A41;GURMUKHI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; -0A42;GURMUKHI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;; -0A47;GURMUKHI VOWEL SIGN EE;Mn;0;NSM;;;;;N;;;;; -0A48;GURMUKHI VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;; -0A4B;GURMUKHI VOWEL SIGN OO;Mn;0;NSM;;;;;N;;;;; -0A4C;GURMUKHI VOWEL SIGN AU;Mn;0;NSM;;;;;N;;;;; -0A4D;GURMUKHI SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;; -0A51;GURMUKHI SIGN UDAAT;Mn;0;NSM;;;;;N;;;;; -0A59;GURMUKHI LETTER KHHA;Lo;0;L;0A16 0A3C;;;;N;;;;; -0A5A;GURMUKHI LETTER GHHA;Lo;0;L;0A17 0A3C;;;;N;;;;; -0A5B;GURMUKHI LETTER ZA;Lo;0;L;0A1C 0A3C;;;;N;;;;; -0A5C;GURMUKHI LETTER RRA;Lo;0;L;;;;;N;;;;; -0A5E;GURMUKHI LETTER FA;Lo;0;L;0A2B 0A3C;;;;N;;;;; -0A66;GURMUKHI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; -0A67;GURMUKHI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; -0A68;GURMUKHI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; -0A69;GURMUKHI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; -0A6A;GURMUKHI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; -0A6B;GURMUKHI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; -0A6C;GURMUKHI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; -0A6D;GURMUKHI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; -0A6E;GURMUKHI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; -0A6F;GURMUKHI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; -0A70;GURMUKHI TIPPI;Mn;0;NSM;;;;;N;;;;; -0A71;GURMUKHI ADDAK;Mn;0;NSM;;;;;N;;;;; -0A72;GURMUKHI IRI;Lo;0;L;;;;;N;;;;; -0A73;GURMUKHI URA;Lo;0;L;;;;;N;;;;; -0A74;GURMUKHI EK ONKAR;Lo;0;L;;;;;N;;;;; -0A75;GURMUKHI SIGN YAKASH;Mn;0;NSM;;;;;N;;;;; -0A81;GUJARATI SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;; -0A82;GUJARATI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;; -0A83;GUJARATI SIGN VISARGA;Mc;0;L;;;;;N;;;;; -0A85;GUJARATI LETTER A;Lo;0;L;;;;;N;;;;; -0A86;GUJARATI LETTER AA;Lo;0;L;;;;;N;;;;; -0A87;GUJARATI LETTER I;Lo;0;L;;;;;N;;;;; -0A88;GUJARATI LETTER II;Lo;0;L;;;;;N;;;;; -0A89;GUJARATI LETTER U;Lo;0;L;;;;;N;;;;; -0A8A;GUJARATI LETTER UU;Lo;0;L;;;;;N;;;;; -0A8B;GUJARATI LETTER VOCALIC R;Lo;0;L;;;;;N;;;;; -0A8C;GUJARATI LETTER VOCALIC L;Lo;0;L;;;;;N;;;;; -0A8D;GUJARATI VOWEL CANDRA E;Lo;0;L;;;;;N;;;;; -0A8F;GUJARATI LETTER E;Lo;0;L;;;;;N;;;;; -0A90;GUJARATI LETTER AI;Lo;0;L;;;;;N;;;;; -0A91;GUJARATI VOWEL CANDRA O;Lo;0;L;;;;;N;;;;; -0A93;GUJARATI LETTER O;Lo;0;L;;;;;N;;;;; -0A94;GUJARATI LETTER AU;Lo;0;L;;;;;N;;;;; -0A95;GUJARATI LETTER KA;Lo;0;L;;;;;N;;;;; -0A96;GUJARATI LETTER KHA;Lo;0;L;;;;;N;;;;; -0A97;GUJARATI LETTER GA;Lo;0;L;;;;;N;;;;; -0A98;GUJARATI LETTER GHA;Lo;0;L;;;;;N;;;;; -0A99;GUJARATI LETTER NGA;Lo;0;L;;;;;N;;;;; -0A9A;GUJARATI LETTER CA;Lo;0;L;;;;;N;;;;; -0A9B;GUJARATI LETTER CHA;Lo;0;L;;;;;N;;;;; -0A9C;GUJARATI LETTER JA;Lo;0;L;;;;;N;;;;; -0A9D;GUJARATI LETTER JHA;Lo;0;L;;;;;N;;;;; -0A9E;GUJARATI LETTER NYA;Lo;0;L;;;;;N;;;;; -0A9F;GUJARATI LETTER TTA;Lo;0;L;;;;;N;;;;; -0AA0;GUJARATI LETTER TTHA;Lo;0;L;;;;;N;;;;; -0AA1;GUJARATI LETTER DDA;Lo;0;L;;;;;N;;;;; -0AA2;GUJARATI LETTER DDHA;Lo;0;L;;;;;N;;;;; -0AA3;GUJARATI LETTER NNA;Lo;0;L;;;;;N;;;;; -0AA4;GUJARATI LETTER TA;Lo;0;L;;;;;N;;;;; -0AA5;GUJARATI LETTER THA;Lo;0;L;;;;;N;;;;; -0AA6;GUJARATI LETTER DA;Lo;0;L;;;;;N;;;;; -0AA7;GUJARATI LETTER DHA;Lo;0;L;;;;;N;;;;; -0AA8;GUJARATI LETTER NA;Lo;0;L;;;;;N;;;;; -0AAA;GUJARATI LETTER PA;Lo;0;L;;;;;N;;;;; -0AAB;GUJARATI LETTER PHA;Lo;0;L;;;;;N;;;;; -0AAC;GUJARATI LETTER BA;Lo;0;L;;;;;N;;;;; -0AAD;GUJARATI LETTER BHA;Lo;0;L;;;;;N;;;;; -0AAE;GUJARATI LETTER MA;Lo;0;L;;;;;N;;;;; -0AAF;GUJARATI LETTER YA;Lo;0;L;;;;;N;;;;; -0AB0;GUJARATI LETTER RA;Lo;0;L;;;;;N;;;;; -0AB2;GUJARATI LETTER LA;Lo;0;L;;;;;N;;;;; -0AB3;GUJARATI LETTER LLA;Lo;0;L;;;;;N;;;;; -0AB5;GUJARATI LETTER VA;Lo;0;L;;;;;N;;;;; -0AB6;GUJARATI LETTER SHA;Lo;0;L;;;;;N;;;;; -0AB7;GUJARATI LETTER SSA;Lo;0;L;;;;;N;;;;; -0AB8;GUJARATI LETTER SA;Lo;0;L;;;;;N;;;;; -0AB9;GUJARATI LETTER HA;Lo;0;L;;;;;N;;;;; -0ABC;GUJARATI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;; -0ABD;GUJARATI SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;; -0ABE;GUJARATI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;; -0ABF;GUJARATI VOWEL SIGN I;Mc;0;L;;;;;N;;;;; -0AC0;GUJARATI VOWEL SIGN II;Mc;0;L;;;;;N;;;;; -0AC1;GUJARATI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; -0AC2;GUJARATI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;; -0AC3;GUJARATI VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;; -0AC4;GUJARATI VOWEL SIGN VOCALIC RR;Mn;0;NSM;;;;;N;;;;; -0AC5;GUJARATI VOWEL SIGN CANDRA E;Mn;0;NSM;;;;;N;;;;; -0AC7;GUJARATI VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;; -0AC8;GUJARATI VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;; -0AC9;GUJARATI VOWEL SIGN CANDRA O;Mc;0;L;;;;;N;;;;; -0ACB;GUJARATI VOWEL SIGN O;Mc;0;L;;;;;N;;;;; -0ACC;GUJARATI VOWEL SIGN AU;Mc;0;L;;;;;N;;;;; -0ACD;GUJARATI SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;; -0AD0;GUJARATI OM;Lo;0;L;;;;;N;;;;; -0AE0;GUJARATI LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;; -0AE1;GUJARATI LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;; -0AE2;GUJARATI VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;; -0AE3;GUJARATI VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;; -0AE6;GUJARATI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; -0AE7;GUJARATI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; -0AE8;GUJARATI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; -0AE9;GUJARATI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; -0AEA;GUJARATI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; -0AEB;GUJARATI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; -0AEC;GUJARATI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; -0AED;GUJARATI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; -0AEE;GUJARATI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; -0AEF;GUJARATI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; -0AF1;GUJARATI RUPEE SIGN;Sc;0;ET;;;;;N;;;;; -0B01;ORIYA SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;; -0B02;ORIYA SIGN ANUSVARA;Mc;0;L;;;;;N;;;;; -0B03;ORIYA SIGN VISARGA;Mc;0;L;;;;;N;;;;; -0B05;ORIYA LETTER A;Lo;0;L;;;;;N;;;;; -0B06;ORIYA LETTER AA;Lo;0;L;;;;;N;;;;; -0B07;ORIYA LETTER I;Lo;0;L;;;;;N;;;;; -0B08;ORIYA LETTER II;Lo;0;L;;;;;N;;;;; -0B09;ORIYA LETTER U;Lo;0;L;;;;;N;;;;; -0B0A;ORIYA LETTER UU;Lo;0;L;;;;;N;;;;; -0B0B;ORIYA LETTER VOCALIC R;Lo;0;L;;;;;N;;;;; -0B0C;ORIYA LETTER VOCALIC L;Lo;0;L;;;;;N;;;;; -0B0F;ORIYA LETTER E;Lo;0;L;;;;;N;;;;; -0B10;ORIYA LETTER AI;Lo;0;L;;;;;N;;;;; -0B13;ORIYA LETTER O;Lo;0;L;;;;;N;;;;; -0B14;ORIYA LETTER AU;Lo;0;L;;;;;N;;;;; -0B15;ORIYA LETTER KA;Lo;0;L;;;;;N;;;;; -0B16;ORIYA LETTER KHA;Lo;0;L;;;;;N;;;;; -0B17;ORIYA LETTER GA;Lo;0;L;;;;;N;;;;; -0B18;ORIYA LETTER GHA;Lo;0;L;;;;;N;;;;; -0B19;ORIYA LETTER NGA;Lo;0;L;;;;;N;;;;; -0B1A;ORIYA LETTER CA;Lo;0;L;;;;;N;;;;; -0B1B;ORIYA LETTER CHA;Lo;0;L;;;;;N;;;;; -0B1C;ORIYA LETTER JA;Lo;0;L;;;;;N;;;;; -0B1D;ORIYA LETTER JHA;Lo;0;L;;;;;N;;;;; -0B1E;ORIYA LETTER NYA;Lo;0;L;;;;;N;;;;; -0B1F;ORIYA LETTER TTA;Lo;0;L;;;;;N;;;;; -0B20;ORIYA LETTER TTHA;Lo;0;L;;;;;N;;;;; -0B21;ORIYA LETTER DDA;Lo;0;L;;;;;N;;;;; -0B22;ORIYA LETTER DDHA;Lo;0;L;;;;;N;;;;; -0B23;ORIYA LETTER NNA;Lo;0;L;;;;;N;;;;; -0B24;ORIYA LETTER TA;Lo;0;L;;;;;N;;;;; -0B25;ORIYA LETTER THA;Lo;0;L;;;;;N;;;;; -0B26;ORIYA LETTER DA;Lo;0;L;;;;;N;;;;; -0B27;ORIYA LETTER DHA;Lo;0;L;;;;;N;;;;; -0B28;ORIYA LETTER NA;Lo;0;L;;;;;N;;;;; -0B2A;ORIYA LETTER PA;Lo;0;L;;;;;N;;;;; -0B2B;ORIYA LETTER PHA;Lo;0;L;;;;;N;;;;; -0B2C;ORIYA LETTER BA;Lo;0;L;;;;;N;;;;; -0B2D;ORIYA LETTER BHA;Lo;0;L;;;;;N;;;;; -0B2E;ORIYA LETTER MA;Lo;0;L;;;;;N;;;;; -0B2F;ORIYA LETTER YA;Lo;0;L;;;;;N;;;;; -0B30;ORIYA LETTER RA;Lo;0;L;;;;;N;;;;; -0B32;ORIYA LETTER LA;Lo;0;L;;;;;N;;;;; -0B33;ORIYA LETTER LLA;Lo;0;L;;;;;N;;;;; -0B35;ORIYA LETTER VA;Lo;0;L;;;;;N;;;;; -0B36;ORIYA LETTER SHA;Lo;0;L;;;;;N;;;;; -0B37;ORIYA LETTER SSA;Lo;0;L;;;;;N;;;;; -0B38;ORIYA LETTER SA;Lo;0;L;;;;;N;;;;; -0B39;ORIYA LETTER HA;Lo;0;L;;;;;N;;;;; -0B3C;ORIYA SIGN NUKTA;Mn;7;NSM;;;;;N;;;;; -0B3D;ORIYA SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;; -0B3E;ORIYA VOWEL SIGN AA;Mc;0;L;;;;;N;;;;; -0B3F;ORIYA VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;; -0B40;ORIYA VOWEL SIGN II;Mc;0;L;;;;;N;;;;; -0B41;ORIYA VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; -0B42;ORIYA VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;; -0B43;ORIYA VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;; -0B44;ORIYA VOWEL SIGN VOCALIC RR;Mn;0;NSM;;;;;N;;;;; -0B47;ORIYA VOWEL SIGN E;Mc;0;L;;;;;N;;;;; -0B48;ORIYA VOWEL SIGN AI;Mc;0;L;0B47 0B56;;;;N;;;;; -0B4B;ORIYA VOWEL SIGN O;Mc;0;L;0B47 0B3E;;;;N;;;;; -0B4C;ORIYA VOWEL SIGN AU;Mc;0;L;0B47 0B57;;;;N;;;;; -0B4D;ORIYA SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;; -0B56;ORIYA AI LENGTH MARK;Mn;0;NSM;;;;;N;;;;; -0B57;ORIYA AU LENGTH MARK;Mc;0;L;;;;;N;;;;; -0B5C;ORIYA LETTER RRA;Lo;0;L;0B21 0B3C;;;;N;;;;; -0B5D;ORIYA LETTER RHA;Lo;0;L;0B22 0B3C;;;;N;;;;; -0B5F;ORIYA LETTER YYA;Lo;0;L;;;;;N;;;;; -0B60;ORIYA LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;; -0B61;ORIYA LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;; -0B62;ORIYA VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;; -0B63;ORIYA VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;; -0B66;ORIYA DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; -0B67;ORIYA DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; -0B68;ORIYA DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; -0B69;ORIYA DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; -0B6A;ORIYA DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; -0B6B;ORIYA DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; -0B6C;ORIYA DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; -0B6D;ORIYA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; -0B6E;ORIYA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; -0B6F;ORIYA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; -0B70;ORIYA ISSHAR;So;0;L;;;;;N;;;;; -0B71;ORIYA LETTER WA;Lo;0;L;;;;;N;;;;; -0B82;TAMIL SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;; -0B83;TAMIL SIGN VISARGA;Lo;0;L;;;;;N;;;;; -0B85;TAMIL LETTER A;Lo;0;L;;;;;N;;;;; -0B86;TAMIL LETTER AA;Lo;0;L;;;;;N;;;;; -0B87;TAMIL LETTER I;Lo;0;L;;;;;N;;;;; -0B88;TAMIL LETTER II;Lo;0;L;;;;;N;;;;; -0B89;TAMIL LETTER U;Lo;0;L;;;;;N;;;;; -0B8A;TAMIL LETTER UU;Lo;0;L;;;;;N;;;;; -0B8E;TAMIL LETTER E;Lo;0;L;;;;;N;;;;; -0B8F;TAMIL LETTER EE;Lo;0;L;;;;;N;;;;; -0B90;TAMIL LETTER AI;Lo;0;L;;;;;N;;;;; -0B92;TAMIL LETTER O;Lo;0;L;;;;;N;;;;; -0B93;TAMIL LETTER OO;Lo;0;L;;;;;N;;;;; -0B94;TAMIL LETTER AU;Lo;0;L;0B92 0BD7;;;;N;;;;; -0B95;TAMIL LETTER KA;Lo;0;L;;;;;N;;;;; -0B99;TAMIL LETTER NGA;Lo;0;L;;;;;N;;;;; -0B9A;TAMIL LETTER CA;Lo;0;L;;;;;N;;;;; -0B9C;TAMIL LETTER JA;Lo;0;L;;;;;N;;;;; -0B9E;TAMIL LETTER NYA;Lo;0;L;;;;;N;;;;; -0B9F;TAMIL LETTER TTA;Lo;0;L;;;;;N;;;;; -0BA3;TAMIL LETTER NNA;Lo;0;L;;;;;N;;;;; -0BA4;TAMIL LETTER TA;Lo;0;L;;;;;N;;;;; -0BA8;TAMIL LETTER NA;Lo;0;L;;;;;N;;;;; -0BA9;TAMIL LETTER NNNA;Lo;0;L;;;;;N;;;;; -0BAA;TAMIL LETTER PA;Lo;0;L;;;;;N;;;;; -0BAE;TAMIL LETTER MA;Lo;0;L;;;;;N;;;;; -0BAF;TAMIL LETTER YA;Lo;0;L;;;;;N;;;;; -0BB0;TAMIL LETTER RA;Lo;0;L;;;;;N;;;;; -0BB1;TAMIL LETTER RRA;Lo;0;L;;;;;N;;;;; -0BB2;TAMIL LETTER LA;Lo;0;L;;;;;N;;;;; -0BB3;TAMIL LETTER LLA;Lo;0;L;;;;;N;;;;; -0BB4;TAMIL LETTER LLLA;Lo;0;L;;;;;N;;;;; -0BB5;TAMIL LETTER VA;Lo;0;L;;;;;N;;;;; -0BB6;TAMIL LETTER SHA;Lo;0;L;;;;;N;;;;; -0BB7;TAMIL LETTER SSA;Lo;0;L;;;;;N;;;;; -0BB8;TAMIL LETTER SA;Lo;0;L;;;;;N;;;;; -0BB9;TAMIL LETTER HA;Lo;0;L;;;;;N;;;;; -0BBE;TAMIL VOWEL SIGN AA;Mc;0;L;;;;;N;;;;; -0BBF;TAMIL VOWEL SIGN I;Mc;0;L;;;;;N;;;;; -0BC0;TAMIL VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;; -0BC1;TAMIL VOWEL SIGN U;Mc;0;L;;;;;N;;;;; -0BC2;TAMIL VOWEL SIGN UU;Mc;0;L;;;;;N;;;;; -0BC6;TAMIL VOWEL SIGN E;Mc;0;L;;;;;N;;;;; -0BC7;TAMIL VOWEL SIGN EE;Mc;0;L;;;;;N;;;;; -0BC8;TAMIL VOWEL SIGN AI;Mc;0;L;;;;;N;;;;; -0BCA;TAMIL VOWEL SIGN O;Mc;0;L;0BC6 0BBE;;;;N;;;;; -0BCB;TAMIL VOWEL SIGN OO;Mc;0;L;0BC7 0BBE;;;;N;;;;; -0BCC;TAMIL VOWEL SIGN AU;Mc;0;L;0BC6 0BD7;;;;N;;;;; -0BCD;TAMIL SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;; -0BD0;TAMIL OM;Lo;0;L;;;;;N;;;;; -0BD7;TAMIL AU LENGTH MARK;Mc;0;L;;;;;N;;;;; -0BE6;TAMIL DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; -0BE7;TAMIL DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; -0BE8;TAMIL DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; -0BE9;TAMIL DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; -0BEA;TAMIL DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; -0BEB;TAMIL DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; -0BEC;TAMIL DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; -0BED;TAMIL DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; -0BEE;TAMIL DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; -0BEF;TAMIL DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; -0BF0;TAMIL NUMBER TEN;No;0;L;;;;10;N;;;;; -0BF1;TAMIL NUMBER ONE HUNDRED;No;0;L;;;;100;N;;;;; -0BF2;TAMIL NUMBER ONE THOUSAND;No;0;L;;;;1000;N;;;;; -0BF3;TAMIL DAY SIGN;So;0;ON;;;;;N;;;;; -0BF4;TAMIL MONTH SIGN;So;0;ON;;;;;N;;;;; -0BF5;TAMIL YEAR SIGN;So;0;ON;;;;;N;;;;; -0BF6;TAMIL DEBIT SIGN;So;0;ON;;;;;N;;;;; -0BF7;TAMIL CREDIT SIGN;So;0;ON;;;;;N;;;;; -0BF8;TAMIL AS ABOVE SIGN;So;0;ON;;;;;N;;;;; -0BF9;TAMIL RUPEE SIGN;Sc;0;ET;;;;;N;;;;; -0BFA;TAMIL NUMBER SIGN;So;0;ON;;;;;N;;;;; -0C01;TELUGU SIGN CANDRABINDU;Mc;0;L;;;;;N;;;;; -0C02;TELUGU SIGN ANUSVARA;Mc;0;L;;;;;N;;;;; -0C03;TELUGU SIGN VISARGA;Mc;0;L;;;;;N;;;;; -0C05;TELUGU LETTER A;Lo;0;L;;;;;N;;;;; -0C06;TELUGU LETTER AA;Lo;0;L;;;;;N;;;;; -0C07;TELUGU LETTER I;Lo;0;L;;;;;N;;;;; -0C08;TELUGU LETTER II;Lo;0;L;;;;;N;;;;; -0C09;TELUGU LETTER U;Lo;0;L;;;;;N;;;;; -0C0A;TELUGU LETTER UU;Lo;0;L;;;;;N;;;;; -0C0B;TELUGU LETTER VOCALIC R;Lo;0;L;;;;;N;;;;; -0C0C;TELUGU LETTER VOCALIC L;Lo;0;L;;;;;N;;;;; -0C0E;TELUGU LETTER E;Lo;0;L;;;;;N;;;;; -0C0F;TELUGU LETTER EE;Lo;0;L;;;;;N;;;;; -0C10;TELUGU LETTER AI;Lo;0;L;;;;;N;;;;; -0C12;TELUGU LETTER O;Lo;0;L;;;;;N;;;;; -0C13;TELUGU LETTER OO;Lo;0;L;;;;;N;;;;; -0C14;TELUGU LETTER AU;Lo;0;L;;;;;N;;;;; -0C15;TELUGU LETTER KA;Lo;0;L;;;;;N;;;;; -0C16;TELUGU LETTER KHA;Lo;0;L;;;;;N;;;;; -0C17;TELUGU LETTER GA;Lo;0;L;;;;;N;;;;; -0C18;TELUGU LETTER GHA;Lo;0;L;;;;;N;;;;; -0C19;TELUGU LETTER NGA;Lo;0;L;;;;;N;;;;; -0C1A;TELUGU LETTER CA;Lo;0;L;;;;;N;;;;; -0C1B;TELUGU LETTER CHA;Lo;0;L;;;;;N;;;;; -0C1C;TELUGU LETTER JA;Lo;0;L;;;;;N;;;;; -0C1D;TELUGU LETTER JHA;Lo;0;L;;;;;N;;;;; -0C1E;TELUGU LETTER NYA;Lo;0;L;;;;;N;;;;; -0C1F;TELUGU LETTER TTA;Lo;0;L;;;;;N;;;;; -0C20;TELUGU LETTER TTHA;Lo;0;L;;;;;N;;;;; -0C21;TELUGU LETTER DDA;Lo;0;L;;;;;N;;;;; -0C22;TELUGU LETTER DDHA;Lo;0;L;;;;;N;;;;; -0C23;TELUGU LETTER NNA;Lo;0;L;;;;;N;;;;; -0C24;TELUGU LETTER TA;Lo;0;L;;;;;N;;;;; -0C25;TELUGU LETTER THA;Lo;0;L;;;;;N;;;;; -0C26;TELUGU LETTER DA;Lo;0;L;;;;;N;;;;; -0C27;TELUGU LETTER DHA;Lo;0;L;;;;;N;;;;; -0C28;TELUGU LETTER NA;Lo;0;L;;;;;N;;;;; -0C2A;TELUGU LETTER PA;Lo;0;L;;;;;N;;;;; -0C2B;TELUGU LETTER PHA;Lo;0;L;;;;;N;;;;; -0C2C;TELUGU LETTER BA;Lo;0;L;;;;;N;;;;; -0C2D;TELUGU LETTER BHA;Lo;0;L;;;;;N;;;;; -0C2E;TELUGU LETTER MA;Lo;0;L;;;;;N;;;;; -0C2F;TELUGU LETTER YA;Lo;0;L;;;;;N;;;;; -0C30;TELUGU LETTER RA;Lo;0;L;;;;;N;;;;; -0C31;TELUGU LETTER RRA;Lo;0;L;;;;;N;;;;; -0C32;TELUGU LETTER LA;Lo;0;L;;;;;N;;;;; -0C33;TELUGU LETTER LLA;Lo;0;L;;;;;N;;;;; -0C35;TELUGU LETTER VA;Lo;0;L;;;;;N;;;;; -0C36;TELUGU LETTER SHA;Lo;0;L;;;;;N;;;;; -0C37;TELUGU LETTER SSA;Lo;0;L;;;;;N;;;;; -0C38;TELUGU LETTER SA;Lo;0;L;;;;;N;;;;; -0C39;TELUGU LETTER HA;Lo;0;L;;;;;N;;;;; -0C3D;TELUGU SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;; -0C3E;TELUGU VOWEL SIGN AA;Mn;0;NSM;;;;;N;;;;; -0C3F;TELUGU VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;; -0C40;TELUGU VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;; -0C41;TELUGU VOWEL SIGN U;Mc;0;L;;;;;N;;;;; -0C42;TELUGU VOWEL SIGN UU;Mc;0;L;;;;;N;;;;; -0C43;TELUGU VOWEL SIGN VOCALIC R;Mc;0;L;;;;;N;;;;; -0C44;TELUGU VOWEL SIGN VOCALIC RR;Mc;0;L;;;;;N;;;;; -0C46;TELUGU VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;; -0C47;TELUGU VOWEL SIGN EE;Mn;0;NSM;;;;;N;;;;; -0C48;TELUGU VOWEL SIGN AI;Mn;0;NSM;0C46 0C56;;;;N;;;;; -0C4A;TELUGU VOWEL SIGN O;Mn;0;NSM;;;;;N;;;;; -0C4B;TELUGU VOWEL SIGN OO;Mn;0;NSM;;;;;N;;;;; -0C4C;TELUGU VOWEL SIGN AU;Mn;0;NSM;;;;;N;;;;; -0C4D;TELUGU SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;; -0C55;TELUGU LENGTH MARK;Mn;84;NSM;;;;;N;;;;; -0C56;TELUGU AI LENGTH MARK;Mn;91;NSM;;;;;N;;;;; -0C58;TELUGU LETTER TSA;Lo;0;L;;;;;N;;;;; -0C59;TELUGU LETTER DZA;Lo;0;L;;;;;N;;;;; -0C60;TELUGU LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;; -0C61;TELUGU LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;; -0C62;TELUGU VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;; -0C63;TELUGU VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;; -0C66;TELUGU DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; -0C67;TELUGU DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; -0C68;TELUGU DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; -0C69;TELUGU DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; -0C6A;TELUGU DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; -0C6B;TELUGU DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; -0C6C;TELUGU DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; -0C6D;TELUGU DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; -0C6E;TELUGU DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; -0C6F;TELUGU DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; -0C78;TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR;No;0;ON;;;;0;N;;;;; -0C79;TELUGU FRACTION DIGIT ONE FOR ODD POWERS OF FOUR;No;0;ON;;;;1;N;;;;; -0C7A;TELUGU FRACTION DIGIT TWO FOR ODD POWERS OF FOUR;No;0;ON;;;;2;N;;;;; -0C7B;TELUGU FRACTION DIGIT THREE FOR ODD POWERS OF FOUR;No;0;ON;;;;3;N;;;;; -0C7C;TELUGU FRACTION DIGIT ONE FOR EVEN POWERS OF FOUR;No;0;ON;;;;1;N;;;;; -0C7D;TELUGU FRACTION DIGIT TWO FOR EVEN POWERS OF FOUR;No;0;ON;;;;2;N;;;;; -0C7E;TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR;No;0;ON;;;;3;N;;;;; -0C7F;TELUGU SIGN TUUMU;So;0;L;;;;;N;;;;; -0C82;KANNADA SIGN ANUSVARA;Mc;0;L;;;;;N;;;;; -0C83;KANNADA SIGN VISARGA;Mc;0;L;;;;;N;;;;; -0C85;KANNADA LETTER A;Lo;0;L;;;;;N;;;;; -0C86;KANNADA LETTER AA;Lo;0;L;;;;;N;;;;; -0C87;KANNADA LETTER I;Lo;0;L;;;;;N;;;;; -0C88;KANNADA LETTER II;Lo;0;L;;;;;N;;;;; -0C89;KANNADA LETTER U;Lo;0;L;;;;;N;;;;; -0C8A;KANNADA LETTER UU;Lo;0;L;;;;;N;;;;; -0C8B;KANNADA LETTER VOCALIC R;Lo;0;L;;;;;N;;;;; -0C8C;KANNADA LETTER VOCALIC L;Lo;0;L;;;;;N;;;;; -0C8E;KANNADA LETTER E;Lo;0;L;;;;;N;;;;; -0C8F;KANNADA LETTER EE;Lo;0;L;;;;;N;;;;; -0C90;KANNADA LETTER AI;Lo;0;L;;;;;N;;;;; -0C92;KANNADA LETTER O;Lo;0;L;;;;;N;;;;; -0C93;KANNADA LETTER OO;Lo;0;L;;;;;N;;;;; -0C94;KANNADA LETTER AU;Lo;0;L;;;;;N;;;;; -0C95;KANNADA LETTER KA;Lo;0;L;;;;;N;;;;; -0C96;KANNADA LETTER KHA;Lo;0;L;;;;;N;;;;; -0C97;KANNADA LETTER GA;Lo;0;L;;;;;N;;;;; -0C98;KANNADA LETTER GHA;Lo;0;L;;;;;N;;;;; -0C99;KANNADA LETTER NGA;Lo;0;L;;;;;N;;;;; -0C9A;KANNADA LETTER CA;Lo;0;L;;;;;N;;;;; -0C9B;KANNADA LETTER CHA;Lo;0;L;;;;;N;;;;; -0C9C;KANNADA LETTER JA;Lo;0;L;;;;;N;;;;; -0C9D;KANNADA LETTER JHA;Lo;0;L;;;;;N;;;;; -0C9E;KANNADA LETTER NYA;Lo;0;L;;;;;N;;;;; -0C9F;KANNADA LETTER TTA;Lo;0;L;;;;;N;;;;; -0CA0;KANNADA LETTER TTHA;Lo;0;L;;;;;N;;;;; -0CA1;KANNADA LETTER DDA;Lo;0;L;;;;;N;;;;; -0CA2;KANNADA LETTER DDHA;Lo;0;L;;;;;N;;;;; -0CA3;KANNADA LETTER NNA;Lo;0;L;;;;;N;;;;; -0CA4;KANNADA LETTER TA;Lo;0;L;;;;;N;;;;; -0CA5;KANNADA LETTER THA;Lo;0;L;;;;;N;;;;; -0CA6;KANNADA LETTER DA;Lo;0;L;;;;;N;;;;; -0CA7;KANNADA LETTER DHA;Lo;0;L;;;;;N;;;;; -0CA8;KANNADA LETTER NA;Lo;0;L;;;;;N;;;;; -0CAA;KANNADA LETTER PA;Lo;0;L;;;;;N;;;;; -0CAB;KANNADA LETTER PHA;Lo;0;L;;;;;N;;;;; -0CAC;KANNADA LETTER BA;Lo;0;L;;;;;N;;;;; -0CAD;KANNADA LETTER BHA;Lo;0;L;;;;;N;;;;; -0CAE;KANNADA LETTER MA;Lo;0;L;;;;;N;;;;; -0CAF;KANNADA LETTER YA;Lo;0;L;;;;;N;;;;; -0CB0;KANNADA LETTER RA;Lo;0;L;;;;;N;;;;; -0CB1;KANNADA LETTER RRA;Lo;0;L;;;;;N;;;;; -0CB2;KANNADA LETTER LA;Lo;0;L;;;;;N;;;;; -0CB3;KANNADA LETTER LLA;Lo;0;L;;;;;N;;;;; -0CB5;KANNADA LETTER VA;Lo;0;L;;;;;N;;;;; -0CB6;KANNADA LETTER SHA;Lo;0;L;;;;;N;;;;; -0CB7;KANNADA LETTER SSA;Lo;0;L;;;;;N;;;;; -0CB8;KANNADA LETTER SA;Lo;0;L;;;;;N;;;;; -0CB9;KANNADA LETTER HA;Lo;0;L;;;;;N;;;;; -0CBC;KANNADA SIGN NUKTA;Mn;7;NSM;;;;;N;;;;; -0CBD;KANNADA SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;; -0CBE;KANNADA VOWEL SIGN AA;Mc;0;L;;;;;N;;;;; -0CBF;KANNADA VOWEL SIGN I;Mn;0;L;;;;;N;;;;; -0CC0;KANNADA VOWEL SIGN II;Mc;0;L;0CBF 0CD5;;;;N;;;;; -0CC1;KANNADA VOWEL SIGN U;Mc;0;L;;;;;N;;;;; -0CC2;KANNADA VOWEL SIGN UU;Mc;0;L;;;;;N;;;;; -0CC3;KANNADA VOWEL SIGN VOCALIC R;Mc;0;L;;;;;N;;;;; -0CC4;KANNADA VOWEL SIGN VOCALIC RR;Mc;0;L;;;;;N;;;;; -0CC6;KANNADA VOWEL SIGN E;Mn;0;L;;;;;N;;;;; -0CC7;KANNADA VOWEL SIGN EE;Mc;0;L;0CC6 0CD5;;;;N;;;;; -0CC8;KANNADA VOWEL SIGN AI;Mc;0;L;0CC6 0CD6;;;;N;;;;; -0CCA;KANNADA VOWEL SIGN O;Mc;0;L;0CC6 0CC2;;;;N;;;;; -0CCB;KANNADA VOWEL SIGN OO;Mc;0;L;0CCA 0CD5;;;;N;;;;; -0CCC;KANNADA VOWEL SIGN AU;Mn;0;NSM;;;;;N;;;;; -0CCD;KANNADA SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;; -0CD5;KANNADA LENGTH MARK;Mc;0;L;;;;;N;;;;; -0CD6;KANNADA AI LENGTH MARK;Mc;0;L;;;;;N;;;;; -0CDE;KANNADA LETTER FA;Lo;0;L;;;;;N;;;;; -0CE0;KANNADA LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;; -0CE1;KANNADA LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;; -0CE2;KANNADA VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;; -0CE3;KANNADA VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;; -0CE6;KANNADA DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; -0CE7;KANNADA DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; -0CE8;KANNADA DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; -0CE9;KANNADA DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; -0CEA;KANNADA DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; -0CEB;KANNADA DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; -0CEC;KANNADA DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; -0CED;KANNADA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; -0CEE;KANNADA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; -0CEF;KANNADA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; -0CF1;KANNADA SIGN JIHVAMULIYA;So;0;ON;;;;;N;;;;; -0CF2;KANNADA SIGN UPADHMANIYA;So;0;ON;;;;;N;;;;; -0D02;MALAYALAM SIGN ANUSVARA;Mc;0;L;;;;;N;;;;; -0D03;MALAYALAM SIGN VISARGA;Mc;0;L;;;;;N;;;;; -0D05;MALAYALAM LETTER A;Lo;0;L;;;;;N;;;;; -0D06;MALAYALAM LETTER AA;Lo;0;L;;;;;N;;;;; -0D07;MALAYALAM LETTER I;Lo;0;L;;;;;N;;;;; -0D08;MALAYALAM LETTER II;Lo;0;L;;;;;N;;;;; -0D09;MALAYALAM LETTER U;Lo;0;L;;;;;N;;;;; -0D0A;MALAYALAM LETTER UU;Lo;0;L;;;;;N;;;;; -0D0B;MALAYALAM LETTER VOCALIC R;Lo;0;L;;;;;N;;;;; -0D0C;MALAYALAM LETTER VOCALIC L;Lo;0;L;;;;;N;;;;; -0D0E;MALAYALAM LETTER E;Lo;0;L;;;;;N;;;;; -0D0F;MALAYALAM LETTER EE;Lo;0;L;;;;;N;;;;; -0D10;MALAYALAM LETTER AI;Lo;0;L;;;;;N;;;;; -0D12;MALAYALAM LETTER O;Lo;0;L;;;;;N;;;;; -0D13;MALAYALAM LETTER OO;Lo;0;L;;;;;N;;;;; -0D14;MALAYALAM LETTER AU;Lo;0;L;;;;;N;;;;; -0D15;MALAYALAM LETTER KA;Lo;0;L;;;;;N;;;;; -0D16;MALAYALAM LETTER KHA;Lo;0;L;;;;;N;;;;; -0D17;MALAYALAM LETTER GA;Lo;0;L;;;;;N;;;;; -0D18;MALAYALAM LETTER GHA;Lo;0;L;;;;;N;;;;; -0D19;MALAYALAM LETTER NGA;Lo;0;L;;;;;N;;;;; -0D1A;MALAYALAM LETTER CA;Lo;0;L;;;;;N;;;;; -0D1B;MALAYALAM LETTER CHA;Lo;0;L;;;;;N;;;;; -0D1C;MALAYALAM LETTER JA;Lo;0;L;;;;;N;;;;; -0D1D;MALAYALAM LETTER JHA;Lo;0;L;;;;;N;;;;; -0D1E;MALAYALAM LETTER NYA;Lo;0;L;;;;;N;;;;; -0D1F;MALAYALAM LETTER TTA;Lo;0;L;;;;;N;;;;; -0D20;MALAYALAM LETTER TTHA;Lo;0;L;;;;;N;;;;; -0D21;MALAYALAM LETTER DDA;Lo;0;L;;;;;N;;;;; -0D22;MALAYALAM LETTER DDHA;Lo;0;L;;;;;N;;;;; -0D23;MALAYALAM LETTER NNA;Lo;0;L;;;;;N;;;;; -0D24;MALAYALAM LETTER TA;Lo;0;L;;;;;N;;;;; -0D25;MALAYALAM LETTER THA;Lo;0;L;;;;;N;;;;; -0D26;MALAYALAM LETTER DA;Lo;0;L;;;;;N;;;;; -0D27;MALAYALAM LETTER DHA;Lo;0;L;;;;;N;;;;; -0D28;MALAYALAM LETTER NA;Lo;0;L;;;;;N;;;;; -0D2A;MALAYALAM LETTER PA;Lo;0;L;;;;;N;;;;; -0D2B;MALAYALAM LETTER PHA;Lo;0;L;;;;;N;;;;; -0D2C;MALAYALAM LETTER BA;Lo;0;L;;;;;N;;;;; -0D2D;MALAYALAM LETTER BHA;Lo;0;L;;;;;N;;;;; -0D2E;MALAYALAM LETTER MA;Lo;0;L;;;;;N;;;;; -0D2F;MALAYALAM LETTER YA;Lo;0;L;;;;;N;;;;; -0D30;MALAYALAM LETTER RA;Lo;0;L;;;;;N;;;;; -0D31;MALAYALAM LETTER RRA;Lo;0;L;;;;;N;;;;; -0D32;MALAYALAM LETTER LA;Lo;0;L;;;;;N;;;;; -0D33;MALAYALAM LETTER LLA;Lo;0;L;;;;;N;;;;; -0D34;MALAYALAM LETTER LLLA;Lo;0;L;;;;;N;;;;; -0D35;MALAYALAM LETTER VA;Lo;0;L;;;;;N;;;;; -0D36;MALAYALAM LETTER SHA;Lo;0;L;;;;;N;;;;; -0D37;MALAYALAM LETTER SSA;Lo;0;L;;;;;N;;;;; -0D38;MALAYALAM LETTER SA;Lo;0;L;;;;;N;;;;; -0D39;MALAYALAM LETTER HA;Lo;0;L;;;;;N;;;;; -0D3D;MALAYALAM SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;; -0D3E;MALAYALAM VOWEL SIGN AA;Mc;0;L;;;;;N;;;;; -0D3F;MALAYALAM VOWEL SIGN I;Mc;0;L;;;;;N;;;;; -0D40;MALAYALAM VOWEL SIGN II;Mc;0;L;;;;;N;;;;; -0D41;MALAYALAM VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; -0D42;MALAYALAM VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;; -0D43;MALAYALAM VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;; -0D44;MALAYALAM VOWEL SIGN VOCALIC RR;Mn;0;NSM;;;;;N;;;;; -0D46;MALAYALAM VOWEL SIGN E;Mc;0;L;;;;;N;;;;; -0D47;MALAYALAM VOWEL SIGN EE;Mc;0;L;;;;;N;;;;; -0D48;MALAYALAM VOWEL SIGN AI;Mc;0;L;;;;;N;;;;; -0D4A;MALAYALAM VOWEL SIGN O;Mc;0;L;0D46 0D3E;;;;N;;;;; -0D4B;MALAYALAM VOWEL SIGN OO;Mc;0;L;0D47 0D3E;;;;N;;;;; -0D4C;MALAYALAM VOWEL SIGN AU;Mc;0;L;0D46 0D57;;;;N;;;;; -0D4D;MALAYALAM SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;; -0D57;MALAYALAM AU LENGTH MARK;Mc;0;L;;;;;N;;;;; -0D60;MALAYALAM LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;; -0D61;MALAYALAM LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;; -0D62;MALAYALAM VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;; -0D63;MALAYALAM VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;; -0D66;MALAYALAM DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; -0D67;MALAYALAM DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; -0D68;MALAYALAM DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; -0D69;MALAYALAM DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; -0D6A;MALAYALAM DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; -0D6B;MALAYALAM DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; -0D6C;MALAYALAM DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; -0D6D;MALAYALAM DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; -0D6E;MALAYALAM DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; -0D6F;MALAYALAM DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; -0D70;MALAYALAM NUMBER TEN;No;0;L;;;;10;N;;;;; -0D71;MALAYALAM NUMBER ONE HUNDRED;No;0;L;;;;100;N;;;;; -0D72;MALAYALAM NUMBER ONE THOUSAND;No;0;L;;;;1000;N;;;;; -0D73;MALAYALAM FRACTION ONE QUARTER;No;0;L;;;;1/4;N;;;;; -0D74;MALAYALAM FRACTION ONE HALF;No;0;L;;;;1/2;N;;;;; -0D75;MALAYALAM FRACTION THREE QUARTERS;No;0;L;;;;3/4;N;;;;; -0D79;MALAYALAM DATE MARK;So;0;L;;;;;N;;;;; -0D7A;MALAYALAM LETTER CHILLU NN;Lo;0;L;;;;;N;;;;; -0D7B;MALAYALAM LETTER CHILLU N;Lo;0;L;;;;;N;;;;; -0D7C;MALAYALAM LETTER CHILLU RR;Lo;0;L;;;;;N;;;;; -0D7D;MALAYALAM LETTER CHILLU L;Lo;0;L;;;;;N;;;;; -0D7E;MALAYALAM LETTER CHILLU LL;Lo;0;L;;;;;N;;;;; -0D7F;MALAYALAM LETTER CHILLU K;Lo;0;L;;;;;N;;;;; -0D82;SINHALA SIGN ANUSVARAYA;Mc;0;L;;;;;N;;;;; -0D83;SINHALA SIGN VISARGAYA;Mc;0;L;;;;;N;;;;; -0D85;SINHALA LETTER AYANNA;Lo;0;L;;;;;N;;;;; -0D86;SINHALA LETTER AAYANNA;Lo;0;L;;;;;N;;;;; -0D87;SINHALA LETTER AEYANNA;Lo;0;L;;;;;N;;;;; -0D88;SINHALA LETTER AEEYANNA;Lo;0;L;;;;;N;;;;; -0D89;SINHALA LETTER IYANNA;Lo;0;L;;;;;N;;;;; -0D8A;SINHALA LETTER IIYANNA;Lo;0;L;;;;;N;;;;; -0D8B;SINHALA LETTER UYANNA;Lo;0;L;;;;;N;;;;; -0D8C;SINHALA LETTER UUYANNA;Lo;0;L;;;;;N;;;;; -0D8D;SINHALA LETTER IRUYANNA;Lo;0;L;;;;;N;;;;; -0D8E;SINHALA LETTER IRUUYANNA;Lo;0;L;;;;;N;;;;; -0D8F;SINHALA LETTER ILUYANNA;Lo;0;L;;;;;N;;;;; -0D90;SINHALA LETTER ILUUYANNA;Lo;0;L;;;;;N;;;;; -0D91;SINHALA LETTER EYANNA;Lo;0;L;;;;;N;;;;; -0D92;SINHALA LETTER EEYANNA;Lo;0;L;;;;;N;;;;; -0D93;SINHALA LETTER AIYANNA;Lo;0;L;;;;;N;;;;; -0D94;SINHALA LETTER OYANNA;Lo;0;L;;;;;N;;;;; -0D95;SINHALA LETTER OOYANNA;Lo;0;L;;;;;N;;;;; -0D96;SINHALA LETTER AUYANNA;Lo;0;L;;;;;N;;;;; -0D9A;SINHALA LETTER ALPAPRAANA KAYANNA;Lo;0;L;;;;;N;;;;; -0D9B;SINHALA LETTER MAHAAPRAANA KAYANNA;Lo;0;L;;;;;N;;;;; -0D9C;SINHALA LETTER ALPAPRAANA GAYANNA;Lo;0;L;;;;;N;;;;; -0D9D;SINHALA LETTER MAHAAPRAANA GAYANNA;Lo;0;L;;;;;N;;;;; -0D9E;SINHALA LETTER KANTAJA NAASIKYAYA;Lo;0;L;;;;;N;;;;; -0D9F;SINHALA LETTER SANYAKA GAYANNA;Lo;0;L;;;;;N;;;;; -0DA0;SINHALA LETTER ALPAPRAANA CAYANNA;Lo;0;L;;;;;N;;;;; -0DA1;SINHALA LETTER MAHAAPRAANA CAYANNA;Lo;0;L;;;;;N;;;;; -0DA2;SINHALA LETTER ALPAPRAANA JAYANNA;Lo;0;L;;;;;N;;;;; -0DA3;SINHALA LETTER MAHAAPRAANA JAYANNA;Lo;0;L;;;;;N;;;;; -0DA4;SINHALA LETTER TAALUJA NAASIKYAYA;Lo;0;L;;;;;N;;;;; -0DA5;SINHALA LETTER TAALUJA SANYOOGA NAAKSIKYAYA;Lo;0;L;;;;;N;;;;; -0DA6;SINHALA LETTER SANYAKA JAYANNA;Lo;0;L;;;;;N;;;;; -0DA7;SINHALA LETTER ALPAPRAANA TTAYANNA;Lo;0;L;;;;;N;;;;; -0DA8;SINHALA LETTER MAHAAPRAANA TTAYANNA;Lo;0;L;;;;;N;;;;; -0DA9;SINHALA LETTER ALPAPRAANA DDAYANNA;Lo;0;L;;;;;N;;;;; -0DAA;SINHALA LETTER MAHAAPRAANA DDAYANNA;Lo;0;L;;;;;N;;;;; -0DAB;SINHALA LETTER MUURDHAJA NAYANNA;Lo;0;L;;;;;N;;;;; -0DAC;SINHALA LETTER SANYAKA DDAYANNA;Lo;0;L;;;;;N;;;;; -0DAD;SINHALA LETTER ALPAPRAANA TAYANNA;Lo;0;L;;;;;N;;;;; -0DAE;SINHALA LETTER MAHAAPRAANA TAYANNA;Lo;0;L;;;;;N;;;;; -0DAF;SINHALA LETTER ALPAPRAANA DAYANNA;Lo;0;L;;;;;N;;;;; -0DB0;SINHALA LETTER MAHAAPRAANA DAYANNA;Lo;0;L;;;;;N;;;;; -0DB1;SINHALA LETTER DANTAJA NAYANNA;Lo;0;L;;;;;N;;;;; -0DB3;SINHALA LETTER SANYAKA DAYANNA;Lo;0;L;;;;;N;;;;; -0DB4;SINHALA LETTER ALPAPRAANA PAYANNA;Lo;0;L;;;;;N;;;;; -0DB5;SINHALA LETTER MAHAAPRAANA PAYANNA;Lo;0;L;;;;;N;;;;; -0DB6;SINHALA LETTER ALPAPRAANA BAYANNA;Lo;0;L;;;;;N;;;;; -0DB7;SINHALA LETTER MAHAAPRAANA BAYANNA;Lo;0;L;;;;;N;;;;; -0DB8;SINHALA LETTER MAYANNA;Lo;0;L;;;;;N;;;;; -0DB9;SINHALA LETTER AMBA BAYANNA;Lo;0;L;;;;;N;;;;; -0DBA;SINHALA LETTER YAYANNA;Lo;0;L;;;;;N;;;;; -0DBB;SINHALA LETTER RAYANNA;Lo;0;L;;;;;N;;;;; -0DBD;SINHALA LETTER DANTAJA LAYANNA;Lo;0;L;;;;;N;;;;; -0DC0;SINHALA LETTER VAYANNA;Lo;0;L;;;;;N;;;;; -0DC1;SINHALA LETTER TAALUJA SAYANNA;Lo;0;L;;;;;N;;;;; -0DC2;SINHALA LETTER MUURDHAJA SAYANNA;Lo;0;L;;;;;N;;;;; -0DC3;SINHALA LETTER DANTAJA SAYANNA;Lo;0;L;;;;;N;;;;; -0DC4;SINHALA LETTER HAYANNA;Lo;0;L;;;;;N;;;;; -0DC5;SINHALA LETTER MUURDHAJA LAYANNA;Lo;0;L;;;;;N;;;;; -0DC6;SINHALA LETTER FAYANNA;Lo;0;L;;;;;N;;;;; -0DCA;SINHALA SIGN AL-LAKUNA;Mn;9;NSM;;;;;N;;;;; -0DCF;SINHALA VOWEL SIGN AELA-PILLA;Mc;0;L;;;;;N;;;;; -0DD0;SINHALA VOWEL SIGN KETTI AEDA-PILLA;Mc;0;L;;;;;N;;;;; -0DD1;SINHALA VOWEL SIGN DIGA AEDA-PILLA;Mc;0;L;;;;;N;;;;; -0DD2;SINHALA VOWEL SIGN KETTI IS-PILLA;Mn;0;NSM;;;;;N;;;;; -0DD3;SINHALA VOWEL SIGN DIGA IS-PILLA;Mn;0;NSM;;;;;N;;;;; -0DD4;SINHALA VOWEL SIGN KETTI PAA-PILLA;Mn;0;NSM;;;;;N;;;;; -0DD6;SINHALA VOWEL SIGN DIGA PAA-PILLA;Mn;0;NSM;;;;;N;;;;; -0DD8;SINHALA VOWEL SIGN GAETTA-PILLA;Mc;0;L;;;;;N;;;;; -0DD9;SINHALA VOWEL SIGN KOMBUVA;Mc;0;L;;;;;N;;;;; -0DDA;SINHALA VOWEL SIGN DIGA KOMBUVA;Mc;0;L;0DD9 0DCA;;;;N;;;;; -0DDB;SINHALA VOWEL SIGN KOMBU DEKA;Mc;0;L;;;;;N;;;;; -0DDC;SINHALA VOWEL SIGN KOMBUVA HAA AELA-PILLA;Mc;0;L;0DD9 0DCF;;;;N;;;;; -0DDD;SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA;Mc;0;L;0DDC 0DCA;;;;N;;;;; -0DDE;SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA;Mc;0;L;0DD9 0DDF;;;;N;;;;; -0DDF;SINHALA VOWEL SIGN GAYANUKITTA;Mc;0;L;;;;;N;;;;; -0DF2;SINHALA VOWEL SIGN DIGA GAETTA-PILLA;Mc;0;L;;;;;N;;;;; -0DF3;SINHALA VOWEL SIGN DIGA GAYANUKITTA;Mc;0;L;;;;;N;;;;; -0DF4;SINHALA PUNCTUATION KUNDDALIYA;Po;0;L;;;;;N;;;;; -0E01;THAI CHARACTER KO KAI;Lo;0;L;;;;;N;THAI LETTER KO KAI;;;; -0E02;THAI CHARACTER KHO KHAI;Lo;0;L;;;;;N;THAI LETTER KHO KHAI;;;; -0E03;THAI CHARACTER KHO KHUAT;Lo;0;L;;;;;N;THAI LETTER KHO KHUAT;;;; -0E04;THAI CHARACTER KHO KHWAI;Lo;0;L;;;;;N;THAI LETTER KHO KHWAI;;;; -0E05;THAI CHARACTER KHO KHON;Lo;0;L;;;;;N;THAI LETTER KHO KHON;;;; -0E06;THAI CHARACTER KHO RAKHANG;Lo;0;L;;;;;N;THAI LETTER KHO RAKHANG;;;; -0E07;THAI CHARACTER NGO NGU;Lo;0;L;;;;;N;THAI LETTER NGO NGU;;;; -0E08;THAI CHARACTER CHO CHAN;Lo;0;L;;;;;N;THAI LETTER CHO CHAN;;;; -0E09;THAI CHARACTER CHO CHING;Lo;0;L;;;;;N;THAI LETTER CHO CHING;;;; -0E0A;THAI CHARACTER CHO CHANG;Lo;0;L;;;;;N;THAI LETTER CHO CHANG;;;; -0E0B;THAI CHARACTER SO SO;Lo;0;L;;;;;N;THAI LETTER SO SO;;;; -0E0C;THAI CHARACTER CHO CHOE;Lo;0;L;;;;;N;THAI LETTER CHO CHOE;;;; -0E0D;THAI CHARACTER YO YING;Lo;0;L;;;;;N;THAI LETTER YO YING;;;; -0E0E;THAI CHARACTER DO CHADA;Lo;0;L;;;;;N;THAI LETTER DO CHADA;;;; -0E0F;THAI CHARACTER TO PATAK;Lo;0;L;;;;;N;THAI LETTER TO PATAK;;;; -0E10;THAI CHARACTER THO THAN;Lo;0;L;;;;;N;THAI LETTER THO THAN;;;; -0E11;THAI CHARACTER THO NANGMONTHO;Lo;0;L;;;;;N;THAI LETTER THO NANGMONTHO;;;; -0E12;THAI CHARACTER THO PHUTHAO;Lo;0;L;;;;;N;THAI LETTER THO PHUTHAO;;;; -0E13;THAI CHARACTER NO NEN;Lo;0;L;;;;;N;THAI LETTER NO NEN;;;; -0E14;THAI CHARACTER DO DEK;Lo;0;L;;;;;N;THAI LETTER DO DEK;;;; -0E15;THAI CHARACTER TO TAO;Lo;0;L;;;;;N;THAI LETTER TO TAO;;;; -0E16;THAI CHARACTER THO THUNG;Lo;0;L;;;;;N;THAI LETTER THO THUNG;;;; -0E17;THAI CHARACTER THO THAHAN;Lo;0;L;;;;;N;THAI LETTER THO THAHAN;;;; -0E18;THAI CHARACTER THO THONG;Lo;0;L;;;;;N;THAI LETTER THO THONG;;;; -0E19;THAI CHARACTER NO NU;Lo;0;L;;;;;N;THAI LETTER NO NU;;;; -0E1A;THAI CHARACTER BO BAIMAI;Lo;0;L;;;;;N;THAI LETTER BO BAIMAI;;;; -0E1B;THAI CHARACTER PO PLA;Lo;0;L;;;;;N;THAI LETTER PO PLA;;;; -0E1C;THAI CHARACTER PHO PHUNG;Lo;0;L;;;;;N;THAI LETTER PHO PHUNG;;;; -0E1D;THAI CHARACTER FO FA;Lo;0;L;;;;;N;THAI LETTER FO FA;;;; -0E1E;THAI CHARACTER PHO PHAN;Lo;0;L;;;;;N;THAI LETTER PHO PHAN;;;; -0E1F;THAI CHARACTER FO FAN;Lo;0;L;;;;;N;THAI LETTER FO FAN;;;; -0E20;THAI CHARACTER PHO SAMPHAO;Lo;0;L;;;;;N;THAI LETTER PHO SAMPHAO;;;; -0E21;THAI CHARACTER MO MA;Lo;0;L;;;;;N;THAI LETTER MO MA;;;; -0E22;THAI CHARACTER YO YAK;Lo;0;L;;;;;N;THAI LETTER YO YAK;;;; -0E23;THAI CHARACTER RO RUA;Lo;0;L;;;;;N;THAI LETTER RO RUA;;;; -0E24;THAI CHARACTER RU;Lo;0;L;;;;;N;THAI LETTER RU;;;; -0E25;THAI CHARACTER LO LING;Lo;0;L;;;;;N;THAI LETTER LO LING;;;; -0E26;THAI CHARACTER LU;Lo;0;L;;;;;N;THAI LETTER LU;;;; -0E27;THAI CHARACTER WO WAEN;Lo;0;L;;;;;N;THAI LETTER WO WAEN;;;; -0E28;THAI CHARACTER SO SALA;Lo;0;L;;;;;N;THAI LETTER SO SALA;;;; -0E29;THAI CHARACTER SO RUSI;Lo;0;L;;;;;N;THAI LETTER SO RUSI;;;; -0E2A;THAI CHARACTER SO SUA;Lo;0;L;;;;;N;THAI LETTER SO SUA;;;; -0E2B;THAI CHARACTER HO HIP;Lo;0;L;;;;;N;THAI LETTER HO HIP;;;; -0E2C;THAI CHARACTER LO CHULA;Lo;0;L;;;;;N;THAI LETTER LO CHULA;;;; -0E2D;THAI CHARACTER O ANG;Lo;0;L;;;;;N;THAI LETTER O ANG;;;; -0E2E;THAI CHARACTER HO NOKHUK;Lo;0;L;;;;;N;THAI LETTER HO NOK HUK;;;; -0E2F;THAI CHARACTER PAIYANNOI;Lo;0;L;;;;;N;THAI PAI YAN NOI;;;; -0E30;THAI CHARACTER SARA A;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA A;;;; -0E31;THAI CHARACTER MAI HAN-AKAT;Mn;0;NSM;;;;;N;THAI VOWEL SIGN MAI HAN-AKAT;;;; -0E32;THAI CHARACTER SARA AA;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA AA;;;; -0E33;THAI CHARACTER SARA AM;Lo;0;L; 0E4D 0E32;;;;N;THAI VOWEL SIGN SARA AM;;;; -0E34;THAI CHARACTER SARA I;Mn;0;NSM;;;;;N;THAI VOWEL SIGN SARA I;;;; -0E35;THAI CHARACTER SARA II;Mn;0;NSM;;;;;N;THAI VOWEL SIGN SARA II;;;; -0E36;THAI CHARACTER SARA UE;Mn;0;NSM;;;;;N;THAI VOWEL SIGN SARA UE;;;; -0E37;THAI CHARACTER SARA UEE;Mn;0;NSM;;;;;N;THAI VOWEL SIGN SARA UEE;;;; -0E38;THAI CHARACTER SARA U;Mn;103;NSM;;;;;N;THAI VOWEL SIGN SARA U;;;; -0E39;THAI CHARACTER SARA UU;Mn;103;NSM;;;;;N;THAI VOWEL SIGN SARA UU;;;; -0E3A;THAI CHARACTER PHINTHU;Mn;9;NSM;;;;;N;THAI VOWEL SIGN PHINTHU;;;; -0E3F;THAI CURRENCY SYMBOL BAHT;Sc;0;ET;;;;;N;THAI BAHT SIGN;;;; -0E40;THAI CHARACTER SARA E;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA E;;;; -0E41;THAI CHARACTER SARA AE;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA AE;;;; -0E42;THAI CHARACTER SARA O;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA O;;;; -0E43;THAI CHARACTER SARA AI MAIMUAN;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA MAI MUAN;;;; -0E44;THAI CHARACTER SARA AI MAIMALAI;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA MAI MALAI;;;; -0E45;THAI CHARACTER LAKKHANGYAO;Lo;0;L;;;;;N;THAI LAK KHANG YAO;;;; -0E46;THAI CHARACTER MAIYAMOK;Lm;0;L;;;;;N;THAI MAI YAMOK;;;; -0E47;THAI CHARACTER MAITAIKHU;Mn;0;NSM;;;;;N;THAI VOWEL SIGN MAI TAI KHU;;;; -0E48;THAI CHARACTER MAI EK;Mn;107;NSM;;;;;N;THAI TONE MAI EK;;;; -0E49;THAI CHARACTER MAI THO;Mn;107;NSM;;;;;N;THAI TONE MAI THO;;;; -0E4A;THAI CHARACTER MAI TRI;Mn;107;NSM;;;;;N;THAI TONE MAI TRI;;;; -0E4B;THAI CHARACTER MAI CHATTAWA;Mn;107;NSM;;;;;N;THAI TONE MAI CHATTAWA;;;; -0E4C;THAI CHARACTER THANTHAKHAT;Mn;0;NSM;;;;;N;THAI THANTHAKHAT;;;; -0E4D;THAI CHARACTER NIKHAHIT;Mn;0;NSM;;;;;N;THAI NIKKHAHIT;;;; -0E4E;THAI CHARACTER YAMAKKAN;Mn;0;NSM;;;;;N;THAI YAMAKKAN;;;; -0E4F;THAI CHARACTER FONGMAN;Po;0;L;;;;;N;THAI FONGMAN;;;; -0E50;THAI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; -0E51;THAI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; -0E52;THAI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; -0E53;THAI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; -0E54;THAI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; -0E55;THAI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; -0E56;THAI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; -0E57;THAI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; -0E58;THAI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; -0E59;THAI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; -0E5A;THAI CHARACTER ANGKHANKHU;Po;0;L;;;;;N;THAI ANGKHANKHU;;;; -0E5B;THAI CHARACTER KHOMUT;Po;0;L;;;;;N;THAI KHOMUT;;;; -0E81;LAO LETTER KO;Lo;0;L;;;;;N;;;;; -0E82;LAO LETTER KHO SUNG;Lo;0;L;;;;;N;;;;; -0E84;LAO LETTER KHO TAM;Lo;0;L;;;;;N;;;;; -0E87;LAO LETTER NGO;Lo;0;L;;;;;N;;;;; -0E88;LAO LETTER CO;Lo;0;L;;;;;N;;;;; -0E8A;LAO LETTER SO TAM;Lo;0;L;;;;;N;;;;; -0E8D;LAO LETTER NYO;Lo;0;L;;;;;N;;;;; -0E94;LAO LETTER DO;Lo;0;L;;;;;N;;;;; -0E95;LAO LETTER TO;Lo;0;L;;;;;N;;;;; -0E96;LAO LETTER THO SUNG;Lo;0;L;;;;;N;;;;; -0E97;LAO LETTER THO TAM;Lo;0;L;;;;;N;;;;; -0E99;LAO LETTER NO;Lo;0;L;;;;;N;;;;; -0E9A;LAO LETTER BO;Lo;0;L;;;;;N;;;;; -0E9B;LAO LETTER PO;Lo;0;L;;;;;N;;;;; -0E9C;LAO LETTER PHO SUNG;Lo;0;L;;;;;N;;;;; -0E9D;LAO LETTER FO TAM;Lo;0;L;;;;;N;;;;; -0E9E;LAO LETTER PHO TAM;Lo;0;L;;;;;N;;;;; -0E9F;LAO LETTER FO SUNG;Lo;0;L;;;;;N;;;;; -0EA1;LAO LETTER MO;Lo;0;L;;;;;N;;;;; -0EA2;LAO LETTER YO;Lo;0;L;;;;;N;;;;; -0EA3;LAO LETTER LO LING;Lo;0;L;;;;;N;;;;; -0EA5;LAO LETTER LO LOOT;Lo;0;L;;;;;N;;;;; -0EA7;LAO LETTER WO;Lo;0;L;;;;;N;;;;; -0EAA;LAO LETTER SO SUNG;Lo;0;L;;;;;N;;;;; -0EAB;LAO LETTER HO SUNG;Lo;0;L;;;;;N;;;;; -0EAD;LAO LETTER O;Lo;0;L;;;;;N;;;;; -0EAE;LAO LETTER HO TAM;Lo;0;L;;;;;N;;;;; -0EAF;LAO ELLIPSIS;Lo;0;L;;;;;N;;;;; -0EB0;LAO VOWEL SIGN A;Lo;0;L;;;;;N;;;;; -0EB1;LAO VOWEL SIGN MAI KAN;Mn;0;NSM;;;;;N;;;;; -0EB2;LAO VOWEL SIGN AA;Lo;0;L;;;;;N;;;;; -0EB3;LAO VOWEL SIGN AM;Lo;0;L; 0ECD 0EB2;;;;N;;;;; -0EB4;LAO VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;; -0EB5;LAO VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;; -0EB6;LAO VOWEL SIGN Y;Mn;0;NSM;;;;;N;;;;; -0EB7;LAO VOWEL SIGN YY;Mn;0;NSM;;;;;N;;;;; -0EB8;LAO VOWEL SIGN U;Mn;118;NSM;;;;;N;;;;; -0EB9;LAO VOWEL SIGN UU;Mn;118;NSM;;;;;N;;;;; -0EBB;LAO VOWEL SIGN MAI KON;Mn;0;NSM;;;;;N;;;;; -0EBC;LAO SEMIVOWEL SIGN LO;Mn;0;NSM;;;;;N;;;;; -0EBD;LAO SEMIVOWEL SIGN NYO;Lo;0;L;;;;;N;;;;; -0EC0;LAO VOWEL SIGN E;Lo;0;L;;;;;N;;;;; -0EC1;LAO VOWEL SIGN EI;Lo;0;L;;;;;N;;;;; -0EC2;LAO VOWEL SIGN O;Lo;0;L;;;;;N;;;;; -0EC3;LAO VOWEL SIGN AY;Lo;0;L;;;;;N;;;;; -0EC4;LAO VOWEL SIGN AI;Lo;0;L;;;;;N;;;;; -0EC6;LAO KO LA;Lm;0;L;;;;;N;;;;; -0EC8;LAO TONE MAI EK;Mn;122;NSM;;;;;N;;;;; -0EC9;LAO TONE MAI THO;Mn;122;NSM;;;;;N;;;;; -0ECA;LAO TONE MAI TI;Mn;122;NSM;;;;;N;;;;; -0ECB;LAO TONE MAI CATAWA;Mn;122;NSM;;;;;N;;;;; -0ECC;LAO CANCELLATION MARK;Mn;0;NSM;;;;;N;;;;; -0ECD;LAO NIGGAHITA;Mn;0;NSM;;;;;N;;;;; -0ED0;LAO DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; -0ED1;LAO DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; -0ED2;LAO DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; -0ED3;LAO DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; -0ED4;LAO DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; -0ED5;LAO DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; -0ED6;LAO DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; -0ED7;LAO DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; -0ED8;LAO DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; -0ED9;LAO DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; -0EDC;LAO HO NO;Lo;0;L; 0EAB 0E99;;;;N;;;;; -0EDD;LAO HO MO;Lo;0;L; 0EAB 0EA1;;;;N;;;;; -0F00;TIBETAN SYLLABLE OM;Lo;0;L;;;;;N;;;;; -0F01;TIBETAN MARK GTER YIG MGO TRUNCATED A;So;0;L;;;;;N;;;;; -0F02;TIBETAN MARK GTER YIG MGO -UM RNAM BCAD MA;So;0;L;;;;;N;;;;; -0F03;TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA;So;0;L;;;;;N;;;;; -0F04;TIBETAN MARK INITIAL YIG MGO MDUN MA;Po;0;L;;;;;N;TIBETAN SINGLE ORNAMENT;;;; -0F05;TIBETAN MARK CLOSING YIG MGO SGAB MA;Po;0;L;;;;;N;;;;; -0F06;TIBETAN MARK CARET YIG MGO PHUR SHAD MA;Po;0;L;;;;;N;;;;; -0F07;TIBETAN MARK YIG MGO TSHEG SHAD MA;Po;0;L;;;;;N;;;;; -0F08;TIBETAN MARK SBRUL SHAD;Po;0;L;;;;;N;TIBETAN RGYANSHAD;;;; -0F09;TIBETAN MARK BSKUR YIG MGO;Po;0;L;;;;;N;;;;; -0F0A;TIBETAN MARK BKA- SHOG YIG MGO;Po;0;L;;;;;N;;;;; -0F0B;TIBETAN MARK INTERSYLLABIC TSHEG;Po;0;L;;;;;N;TIBETAN TSEG;;;; -0F0C;TIBETAN MARK DELIMITER TSHEG BSTAR;Po;0;L; 0F0B;;;;N;;;;; -0F0D;TIBETAN MARK SHAD;Po;0;L;;;;;N;TIBETAN SHAD;;;; -0F0E;TIBETAN MARK NYIS SHAD;Po;0;L;;;;;N;TIBETAN DOUBLE SHAD;;;; -0F0F;TIBETAN MARK TSHEG SHAD;Po;0;L;;;;;N;;;;; -0F10;TIBETAN MARK NYIS TSHEG SHAD;Po;0;L;;;;;N;;;;; -0F11;TIBETAN MARK RIN CHEN SPUNGS SHAD;Po;0;L;;;;;N;TIBETAN RINCHANPHUNGSHAD;;;; -0F12;TIBETAN MARK RGYA GRAM SHAD;Po;0;L;;;;;N;;;;; -0F13;TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN;So;0;L;;;;;N;;;;; -0F14;TIBETAN MARK GTER TSHEG;So;0;L;;;;;N;TIBETAN COMMA;;;; -0F15;TIBETAN LOGOTYPE SIGN CHAD RTAGS;So;0;L;;;;;N;;;;; -0F16;TIBETAN LOGOTYPE SIGN LHAG RTAGS;So;0;L;;;;;N;;;;; -0F17;TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS;So;0;L;;;;;N;;;;; -0F18;TIBETAN ASTROLOGICAL SIGN -KHYUD PA;Mn;220;NSM;;;;;N;;;;; -0F19;TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS;Mn;220;NSM;;;;;N;;;;; -0F1A;TIBETAN SIGN RDEL DKAR GCIG;So;0;L;;;;;N;;;;; -0F1B;TIBETAN SIGN RDEL DKAR GNYIS;So;0;L;;;;;N;;;;; -0F1C;TIBETAN SIGN RDEL DKAR GSUM;So;0;L;;;;;N;;;;; -0F1D;TIBETAN SIGN RDEL NAG GCIG;So;0;L;;;;;N;;;;; -0F1E;TIBETAN SIGN RDEL NAG GNYIS;So;0;L;;;;;N;;;;; -0F1F;TIBETAN SIGN RDEL DKAR RDEL NAG;So;0;L;;;;;N;;;;; -0F20;TIBETAN DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; -0F21;TIBETAN DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; -0F22;TIBETAN DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; -0F23;TIBETAN DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; -0F24;TIBETAN DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; -0F25;TIBETAN DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; -0F26;TIBETAN DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; -0F27;TIBETAN DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; -0F28;TIBETAN DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; -0F29;TIBETAN DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; -0F2A;TIBETAN DIGIT HALF ONE;No;0;L;;;;1/2;N;;;;; -0F2B;TIBETAN DIGIT HALF TWO;No;0;L;;;;3/2;N;;;;; -0F2C;TIBETAN DIGIT HALF THREE;No;0;L;;;;5/2;N;;;;; -0F2D;TIBETAN DIGIT HALF FOUR;No;0;L;;;;7/2;N;;;;; -0F2E;TIBETAN DIGIT HALF FIVE;No;0;L;;;;9/2;N;;;;; -0F2F;TIBETAN DIGIT HALF SIX;No;0;L;;;;11/2;N;;;;; -0F30;TIBETAN DIGIT HALF SEVEN;No;0;L;;;;13/2;N;;;;; -0F31;TIBETAN DIGIT HALF EIGHT;No;0;L;;;;15/2;N;;;;; -0F32;TIBETAN DIGIT HALF NINE;No;0;L;;;;17/2;N;;;;; -0F33;TIBETAN DIGIT HALF ZERO;No;0;L;;;;-1/2;N;;;;; -0F34;TIBETAN MARK BSDUS RTAGS;So;0;L;;;;;N;;;;; -0F35;TIBETAN MARK NGAS BZUNG NYI ZLA;Mn;220;NSM;;;;;N;TIBETAN HONORIFIC UNDER RING;;;; -0F36;TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN;So;0;L;;;;;N;;;;; -0F37;TIBETAN MARK NGAS BZUNG SGOR RTAGS;Mn;220;NSM;;;;;N;TIBETAN UNDER RING;;;; -0F38;TIBETAN MARK CHE MGO;So;0;L;;;;;N;;;;; -0F39;TIBETAN MARK TSA -PHRU;Mn;216;NSM;;;;;N;TIBETAN LENITION MARK;;;; -0F3A;TIBETAN MARK GUG RTAGS GYON;Ps;0;ON;;;;;Y;;;;; -0F3B;TIBETAN MARK GUG RTAGS GYAS;Pe;0;ON;;;;;Y;;;;; -0F3C;TIBETAN MARK ANG KHANG GYON;Ps;0;ON;;;;;Y;TIBETAN LEFT BRACE;;;; -0F3D;TIBETAN MARK ANG KHANG GYAS;Pe;0;ON;;;;;Y;TIBETAN RIGHT BRACE;;;; -0F3E;TIBETAN SIGN YAR TSHES;Mc;0;L;;;;;N;;;;; -0F3F;TIBETAN SIGN MAR TSHES;Mc;0;L;;;;;N;;;;; -0F40;TIBETAN LETTER KA;Lo;0;L;;;;;N;;;;; -0F41;TIBETAN LETTER KHA;Lo;0;L;;;;;N;;;;; -0F42;TIBETAN LETTER GA;Lo;0;L;;;;;N;;;;; -0F43;TIBETAN LETTER GHA;Lo;0;L;0F42 0FB7;;;;N;;;;; -0F44;TIBETAN LETTER NGA;Lo;0;L;;;;;N;;;;; -0F45;TIBETAN LETTER CA;Lo;0;L;;;;;N;;;;; -0F46;TIBETAN LETTER CHA;Lo;0;L;;;;;N;;;;; -0F47;TIBETAN LETTER JA;Lo;0;L;;;;;N;;;;; -0F49;TIBETAN LETTER NYA;Lo;0;L;;;;;N;;;;; -0F4A;TIBETAN LETTER TTA;Lo;0;L;;;;;N;TIBETAN LETTER REVERSED TA;;;; -0F4B;TIBETAN LETTER TTHA;Lo;0;L;;;;;N;TIBETAN LETTER REVERSED THA;;;; -0F4C;TIBETAN LETTER DDA;Lo;0;L;;;;;N;TIBETAN LETTER REVERSED DA;;;; -0F4D;TIBETAN LETTER DDHA;Lo;0;L;0F4C 0FB7;;;;N;;;;; -0F4E;TIBETAN LETTER NNA;Lo;0;L;;;;;N;TIBETAN LETTER REVERSED NA;;;; -0F4F;TIBETAN LETTER TA;Lo;0;L;;;;;N;;;;; -0F50;TIBETAN LETTER THA;Lo;0;L;;;;;N;;;;; -0F51;TIBETAN LETTER DA;Lo;0;L;;;;;N;;;;; -0F52;TIBETAN LETTER DHA;Lo;0;L;0F51 0FB7;;;;N;;;;; -0F53;TIBETAN LETTER NA;Lo;0;L;;;;;N;;;;; -0F54;TIBETAN LETTER PA;Lo;0;L;;;;;N;;;;; -0F55;TIBETAN LETTER PHA;Lo;0;L;;;;;N;;;;; -0F56;TIBETAN LETTER BA;Lo;0;L;;;;;N;;;;; -0F57;TIBETAN LETTER BHA;Lo;0;L;0F56 0FB7;;;;N;;;;; -0F58;TIBETAN LETTER MA;Lo;0;L;;;;;N;;;;; -0F59;TIBETAN LETTER TSA;Lo;0;L;;;;;N;;;;; -0F5A;TIBETAN LETTER TSHA;Lo;0;L;;;;;N;;;;; -0F5B;TIBETAN LETTER DZA;Lo;0;L;;;;;N;;;;; -0F5C;TIBETAN LETTER DZHA;Lo;0;L;0F5B 0FB7;;;;N;;;;; -0F5D;TIBETAN LETTER WA;Lo;0;L;;;;;N;;;;; -0F5E;TIBETAN LETTER ZHA;Lo;0;L;;;;;N;;;;; -0F5F;TIBETAN LETTER ZA;Lo;0;L;;;;;N;;;;; -0F60;TIBETAN LETTER -A;Lo;0;L;;;;;N;TIBETAN LETTER AA;;;; -0F61;TIBETAN LETTER YA;Lo;0;L;;;;;N;;;;; -0F62;TIBETAN LETTER RA;Lo;0;L;;;;;N;;;;; -0F63;TIBETAN LETTER LA;Lo;0;L;;;;;N;;;;; -0F64;TIBETAN LETTER SHA;Lo;0;L;;;;;N;;;;; -0F65;TIBETAN LETTER SSA;Lo;0;L;;;;;N;TIBETAN LETTER REVERSED SHA;;;; -0F66;TIBETAN LETTER SA;Lo;0;L;;;;;N;;;;; -0F67;TIBETAN LETTER HA;Lo;0;L;;;;;N;;;;; -0F68;TIBETAN LETTER A;Lo;0;L;;;;;N;;;;; -0F69;TIBETAN LETTER KSSA;Lo;0;L;0F40 0FB5;;;;N;;;;; -0F6A;TIBETAN LETTER FIXED-FORM RA;Lo;0;L;;;;;N;;;;; -0F6B;TIBETAN LETTER KKA;Lo;0;L;;;;;N;;;;; -0F6C;TIBETAN LETTER RRA;Lo;0;L;;;;;N;;;;; -0F71;TIBETAN VOWEL SIGN AA;Mn;129;NSM;;;;;N;;;;; -0F72;TIBETAN VOWEL SIGN I;Mn;130;NSM;;;;;N;;;;; -0F73;TIBETAN VOWEL SIGN II;Mn;0;NSM;0F71 0F72;;;;N;;;;; -0F74;TIBETAN VOWEL SIGN U;Mn;132;NSM;;;;;N;;;;; -0F75;TIBETAN VOWEL SIGN UU;Mn;0;NSM;0F71 0F74;;;;N;;;;; -0F76;TIBETAN VOWEL SIGN VOCALIC R;Mn;0;NSM;0FB2 0F80;;;;N;;;;; -0F77;TIBETAN VOWEL SIGN VOCALIC RR;Mn;0;NSM; 0FB2 0F81;;;;N;;;;; -0F78;TIBETAN VOWEL SIGN VOCALIC L;Mn;0;NSM;0FB3 0F80;;;;N;;;;; -0F79;TIBETAN VOWEL SIGN VOCALIC LL;Mn;0;NSM; 0FB3 0F81;;;;N;;;;; -0F7A;TIBETAN VOWEL SIGN E;Mn;130;NSM;;;;;N;;;;; -0F7B;TIBETAN VOWEL SIGN EE;Mn;130;NSM;;;;;N;TIBETAN VOWEL SIGN AI;;;; -0F7C;TIBETAN VOWEL SIGN O;Mn;130;NSM;;;;;N;;;;; -0F7D;TIBETAN VOWEL SIGN OO;Mn;130;NSM;;;;;N;TIBETAN VOWEL SIGN AU;;;; -0F7E;TIBETAN SIGN RJES SU NGA RO;Mn;0;NSM;;;;;N;TIBETAN ANUSVARA;;;; -0F7F;TIBETAN SIGN RNAM BCAD;Mc;0;L;;;;;N;TIBETAN VISARGA;;;; -0F80;TIBETAN VOWEL SIGN REVERSED I;Mn;130;NSM;;;;;N;TIBETAN VOWEL SIGN SHORT I;;;; -0F81;TIBETAN VOWEL SIGN REVERSED II;Mn;0;NSM;0F71 0F80;;;;N;;;;; -0F82;TIBETAN SIGN NYI ZLA NAA DA;Mn;230;NSM;;;;;N;TIBETAN CANDRABINDU WITH ORNAMENT;;;; -0F83;TIBETAN SIGN SNA LDAN;Mn;230;NSM;;;;;N;TIBETAN CANDRABINDU;;;; -0F84;TIBETAN MARK HALANTA;Mn;9;NSM;;;;;N;TIBETAN VIRAMA;;;; -0F85;TIBETAN MARK PALUTA;Po;0;L;;;;;N;TIBETAN CHUCHENYIGE;;;; -0F86;TIBETAN SIGN LCI RTAGS;Mn;230;NSM;;;;;N;;;;; -0F87;TIBETAN SIGN YANG RTAGS;Mn;230;NSM;;;;;N;;;;; -0F88;TIBETAN SIGN LCE TSA CAN;Lo;0;L;;;;;N;;;;; -0F89;TIBETAN SIGN MCHU CAN;Lo;0;L;;;;;N;;;;; -0F8A;TIBETAN SIGN GRU CAN RGYINGS;Lo;0;L;;;;;N;;;;; -0F8B;TIBETAN SIGN GRU MED RGYINGS;Lo;0;L;;;;;N;;;;; -0F90;TIBETAN SUBJOINED LETTER KA;Mn;0;NSM;;;;;N;;;;; -0F91;TIBETAN SUBJOINED LETTER KHA;Mn;0;NSM;;;;;N;;;;; -0F92;TIBETAN SUBJOINED LETTER GA;Mn;0;NSM;;;;;N;;;;; -0F93;TIBETAN SUBJOINED LETTER GHA;Mn;0;NSM;0F92 0FB7;;;;N;;;;; -0F94;TIBETAN SUBJOINED LETTER NGA;Mn;0;NSM;;;;;N;;;;; -0F95;TIBETAN SUBJOINED LETTER CA;Mn;0;NSM;;;;;N;;;;; -0F96;TIBETAN SUBJOINED LETTER CHA;Mn;0;NSM;;;;;N;;;;; -0F97;TIBETAN SUBJOINED LETTER JA;Mn;0;NSM;;;;;N;;;;; -0F99;TIBETAN SUBJOINED LETTER NYA;Mn;0;NSM;;;;;N;;;;; -0F9A;TIBETAN SUBJOINED LETTER TTA;Mn;0;NSM;;;;;N;;;;; -0F9B;TIBETAN SUBJOINED LETTER TTHA;Mn;0;NSM;;;;;N;;;;; -0F9C;TIBETAN SUBJOINED LETTER DDA;Mn;0;NSM;;;;;N;;;;; -0F9D;TIBETAN SUBJOINED LETTER DDHA;Mn;0;NSM;0F9C 0FB7;;;;N;;;;; -0F9E;TIBETAN SUBJOINED LETTER NNA;Mn;0;NSM;;;;;N;;;;; -0F9F;TIBETAN SUBJOINED LETTER TA;Mn;0;NSM;;;;;N;;;;; -0FA0;TIBETAN SUBJOINED LETTER THA;Mn;0;NSM;;;;;N;;;;; -0FA1;TIBETAN SUBJOINED LETTER DA;Mn;0;NSM;;;;;N;;;;; -0FA2;TIBETAN SUBJOINED LETTER DHA;Mn;0;NSM;0FA1 0FB7;;;;N;;;;; -0FA3;TIBETAN SUBJOINED LETTER NA;Mn;0;NSM;;;;;N;;;;; -0FA4;TIBETAN SUBJOINED LETTER PA;Mn;0;NSM;;;;;N;;;;; -0FA5;TIBETAN SUBJOINED LETTER PHA;Mn;0;NSM;;;;;N;;;;; -0FA6;TIBETAN SUBJOINED LETTER BA;Mn;0;NSM;;;;;N;;;;; -0FA7;TIBETAN SUBJOINED LETTER BHA;Mn;0;NSM;0FA6 0FB7;;;;N;;;;; -0FA8;TIBETAN SUBJOINED LETTER MA;Mn;0;NSM;;;;;N;;;;; -0FA9;TIBETAN SUBJOINED LETTER TSA;Mn;0;NSM;;;;;N;;;;; -0FAA;TIBETAN SUBJOINED LETTER TSHA;Mn;0;NSM;;;;;N;;;;; -0FAB;TIBETAN SUBJOINED LETTER DZA;Mn;0;NSM;;;;;N;;;;; -0FAC;TIBETAN SUBJOINED LETTER DZHA;Mn;0;NSM;0FAB 0FB7;;;;N;;;;; -0FAD;TIBETAN SUBJOINED LETTER WA;Mn;0;NSM;;;;;N;;;;; -0FAE;TIBETAN SUBJOINED LETTER ZHA;Mn;0;NSM;;;;;N;;;;; -0FAF;TIBETAN SUBJOINED LETTER ZA;Mn;0;NSM;;;;;N;;;;; -0FB0;TIBETAN SUBJOINED LETTER -A;Mn;0;NSM;;;;;N;;;;; -0FB1;TIBETAN SUBJOINED LETTER YA;Mn;0;NSM;;;;;N;;;;; -0FB2;TIBETAN SUBJOINED LETTER RA;Mn;0;NSM;;;;;N;;;;; -0FB3;TIBETAN SUBJOINED LETTER LA;Mn;0;NSM;;;;;N;;;;; -0FB4;TIBETAN SUBJOINED LETTER SHA;Mn;0;NSM;;;;;N;;;;; -0FB5;TIBETAN SUBJOINED LETTER SSA;Mn;0;NSM;;;;;N;;;;; -0FB6;TIBETAN SUBJOINED LETTER SA;Mn;0;NSM;;;;;N;;;;; -0FB7;TIBETAN SUBJOINED LETTER HA;Mn;0;NSM;;;;;N;;;;; -0FB8;TIBETAN SUBJOINED LETTER A;Mn;0;NSM;;;;;N;;;;; -0FB9;TIBETAN SUBJOINED LETTER KSSA;Mn;0;NSM;0F90 0FB5;;;;N;;;;; -0FBA;TIBETAN SUBJOINED LETTER FIXED-FORM WA;Mn;0;NSM;;;;;N;;;;; -0FBB;TIBETAN SUBJOINED LETTER FIXED-FORM YA;Mn;0;NSM;;;;;N;;;;; -0FBC;TIBETAN SUBJOINED LETTER FIXED-FORM RA;Mn;0;NSM;;;;;N;;;;; -0FBE;TIBETAN KU RU KHA;So;0;L;;;;;N;;;;; -0FBF;TIBETAN KU RU KHA BZHI MIG CAN;So;0;L;;;;;N;;;;; -0FC0;TIBETAN CANTILLATION SIGN HEAVY BEAT;So;0;L;;;;;N;;;;; -0FC1;TIBETAN CANTILLATION SIGN LIGHT BEAT;So;0;L;;;;;N;;;;; -0FC2;TIBETAN CANTILLATION SIGN CANG TE-U;So;0;L;;;;;N;;;;; -0FC3;TIBETAN CANTILLATION SIGN SBUB -CHAL;So;0;L;;;;;N;;;;; -0FC4;TIBETAN SYMBOL DRIL BU;So;0;L;;;;;N;;;;; -0FC5;TIBETAN SYMBOL RDO RJE;So;0;L;;;;;N;;;;; -0FC6;TIBETAN SYMBOL PADMA GDAN;Mn;220;NSM;;;;;N;;;;; -0FC7;TIBETAN SYMBOL RDO RJE RGYA GRAM;So;0;L;;;;;N;;;;; -0FC8;TIBETAN SYMBOL PHUR PA;So;0;L;;;;;N;;;;; -0FC9;TIBETAN SYMBOL NOR BU;So;0;L;;;;;N;;;;; -0FCA;TIBETAN SYMBOL NOR BU NYIS -KHYIL;So;0;L;;;;;N;;;;; -0FCB;TIBETAN SYMBOL NOR BU GSUM -KHYIL;So;0;L;;;;;N;;;;; -0FCC;TIBETAN SYMBOL NOR BU BZHI -KHYIL;So;0;L;;;;;N;;;;; -0FCE;TIBETAN SIGN RDEL NAG RDEL DKAR;So;0;L;;;;;N;;;;; -0FCF;TIBETAN SIGN RDEL NAG GSUM;So;0;L;;;;;N;;;;; -0FD0;TIBETAN MARK BSKA- SHOG GI MGO RGYAN;Po;0;L;;;;;N;;;;; -0FD1;TIBETAN MARK MNYAM YIG GI MGO RGYAN;Po;0;L;;;;;N;;;;; -0FD2;TIBETAN MARK NYIS TSHEG;Po;0;L;;;;;N;;;;; -0FD3;TIBETAN MARK INITIAL BRDA RNYING YIG MGO MDUN MA;Po;0;L;;;;;N;;;;; -0FD4;TIBETAN MARK CLOSING BRDA RNYING YIG MGO SGAB MA;Po;0;L;;;;;N;;;;; -0FD5;RIGHT-FACING SVASTI SIGN;So;0;L;;;;;N;;;;; -0FD6;LEFT-FACING SVASTI SIGN;So;0;L;;;;;N;;;;; -0FD7;RIGHT-FACING SVASTI SIGN WITH DOTS;So;0;L;;;;;N;;;;; -0FD8;LEFT-FACING SVASTI SIGN WITH DOTS;So;0;L;;;;;N;;;;; -1000;MYANMAR LETTER KA;Lo;0;L;;;;;N;;;;; -1001;MYANMAR LETTER KHA;Lo;0;L;;;;;N;;;;; -1002;MYANMAR LETTER GA;Lo;0;L;;;;;N;;;;; -1003;MYANMAR LETTER GHA;Lo;0;L;;;;;N;;;;; -1004;MYANMAR LETTER NGA;Lo;0;L;;;;;N;;;;; -1005;MYANMAR LETTER CA;Lo;0;L;;;;;N;;;;; -1006;MYANMAR LETTER CHA;Lo;0;L;;;;;N;;;;; -1007;MYANMAR LETTER JA;Lo;0;L;;;;;N;;;;; -1008;MYANMAR LETTER JHA;Lo;0;L;;;;;N;;;;; -1009;MYANMAR LETTER NYA;Lo;0;L;;;;;N;;;;; -100A;MYANMAR LETTER NNYA;Lo;0;L;;;;;N;;;;; -100B;MYANMAR LETTER TTA;Lo;0;L;;;;;N;;;;; -100C;MYANMAR LETTER TTHA;Lo;0;L;;;;;N;;;;; -100D;MYANMAR LETTER DDA;Lo;0;L;;;;;N;;;;; -100E;MYANMAR LETTER DDHA;Lo;0;L;;;;;N;;;;; -100F;MYANMAR LETTER NNA;Lo;0;L;;;;;N;;;;; -1010;MYANMAR LETTER TA;Lo;0;L;;;;;N;;;;; -1011;MYANMAR LETTER THA;Lo;0;L;;;;;N;;;;; -1012;MYANMAR LETTER DA;Lo;0;L;;;;;N;;;;; -1013;MYANMAR LETTER DHA;Lo;0;L;;;;;N;;;;; -1014;MYANMAR LETTER NA;Lo;0;L;;;;;N;;;;; -1015;MYANMAR LETTER PA;Lo;0;L;;;;;N;;;;; -1016;MYANMAR LETTER PHA;Lo;0;L;;;;;N;;;;; -1017;MYANMAR LETTER BA;Lo;0;L;;;;;N;;;;; -1018;MYANMAR LETTER BHA;Lo;0;L;;;;;N;;;;; -1019;MYANMAR LETTER MA;Lo;0;L;;;;;N;;;;; -101A;MYANMAR LETTER YA;Lo;0;L;;;;;N;;;;; -101B;MYANMAR LETTER RA;Lo;0;L;;;;;N;;;;; -101C;MYANMAR LETTER LA;Lo;0;L;;;;;N;;;;; -101D;MYANMAR LETTER WA;Lo;0;L;;;;;N;;;;; -101E;MYANMAR LETTER SA;Lo;0;L;;;;;N;;;;; -101F;MYANMAR LETTER HA;Lo;0;L;;;;;N;;;;; -1020;MYANMAR LETTER LLA;Lo;0;L;;;;;N;;;;; -1021;MYANMAR LETTER A;Lo;0;L;;;;;N;;;;; -1022;MYANMAR LETTER SHAN A;Lo;0;L;;;;;N;;;;; -1023;MYANMAR LETTER I;Lo;0;L;;;;;N;;;;; -1024;MYANMAR LETTER II;Lo;0;L;;;;;N;;;;; -1025;MYANMAR LETTER U;Lo;0;L;;;;;N;;;;; -1026;MYANMAR LETTER UU;Lo;0;L;1025 102E;;;;N;;;;; -1027;MYANMAR LETTER E;Lo;0;L;;;;;N;;;;; -1028;MYANMAR LETTER MON E;Lo;0;L;;;;;N;;;;; -1029;MYANMAR LETTER O;Lo;0;L;;;;;N;;;;; -102A;MYANMAR LETTER AU;Lo;0;L;;;;;N;;;;; -102B;MYANMAR VOWEL SIGN TALL AA;Mc;0;L;;;;;N;;;;; -102C;MYANMAR VOWEL SIGN AA;Mc;0;L;;;;;N;;;;; -102D;MYANMAR VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;; -102E;MYANMAR VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;; -102F;MYANMAR VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; -1030;MYANMAR VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;; -1031;MYANMAR VOWEL SIGN E;Mc;0;L;;;;;N;;;;; -1032;MYANMAR VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;; -1033;MYANMAR VOWEL SIGN MON II;Mn;0;NSM;;;;;N;;;;; -1034;MYANMAR VOWEL SIGN MON O;Mn;0;NSM;;;;;N;;;;; -1035;MYANMAR VOWEL SIGN E ABOVE;Mn;0;NSM;;;;;N;;;;; -1036;MYANMAR SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;; -1037;MYANMAR SIGN DOT BELOW;Mn;7;NSM;;;;;N;;;;; -1038;MYANMAR SIGN VISARGA;Mc;0;L;;;;;N;;;;; -1039;MYANMAR SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;; -103A;MYANMAR SIGN ASAT;Mn;9;NSM;;;;;N;;;;; -103B;MYANMAR CONSONANT SIGN MEDIAL YA;Mc;0;L;;;;;N;;;;; -103C;MYANMAR CONSONANT SIGN MEDIAL RA;Mc;0;L;;;;;N;;;;; -103D;MYANMAR CONSONANT SIGN MEDIAL WA;Mn;0;NSM;;;;;N;;;;; -103E;MYANMAR CONSONANT SIGN MEDIAL HA;Mn;0;NSM;;;;;N;;;;; -103F;MYANMAR LETTER GREAT SA;Lo;0;L;;;;;N;;;;; -1040;MYANMAR DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; -1041;MYANMAR DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; -1042;MYANMAR DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; -1043;MYANMAR DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; -1044;MYANMAR DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; -1045;MYANMAR DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; -1046;MYANMAR DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; -1047;MYANMAR DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; -1048;MYANMAR DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; -1049;MYANMAR DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; -104A;MYANMAR SIGN LITTLE SECTION;Po;0;L;;;;;N;;;;; -104B;MYANMAR SIGN SECTION;Po;0;L;;;;;N;;;;; -104C;MYANMAR SYMBOL LOCATIVE;Po;0;L;;;;;N;;;;; -104D;MYANMAR SYMBOL COMPLETED;Po;0;L;;;;;N;;;;; -104E;MYANMAR SYMBOL AFOREMENTIONED;Po;0;L;;;;;N;;;;; -104F;MYANMAR SYMBOL GENITIVE;Po;0;L;;;;;N;;;;; -1050;MYANMAR LETTER SHA;Lo;0;L;;;;;N;;;;; -1051;MYANMAR LETTER SSA;Lo;0;L;;;;;N;;;;; -1052;MYANMAR LETTER VOCALIC R;Lo;0;L;;;;;N;;;;; -1053;MYANMAR LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;; -1054;MYANMAR LETTER VOCALIC L;Lo;0;L;;;;;N;;;;; -1055;MYANMAR LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;; -1056;MYANMAR VOWEL SIGN VOCALIC R;Mc;0;L;;;;;N;;;;; -1057;MYANMAR VOWEL SIGN VOCALIC RR;Mc;0;L;;;;;N;;;;; -1058;MYANMAR VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;; -1059;MYANMAR VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;; -105A;MYANMAR LETTER MON NGA;Lo;0;L;;;;;N;;;;; -105B;MYANMAR LETTER MON JHA;Lo;0;L;;;;;N;;;;; -105C;MYANMAR LETTER MON BBA;Lo;0;L;;;;;N;;;;; -105D;MYANMAR LETTER MON BBE;Lo;0;L;;;;;N;;;;; -105E;MYANMAR CONSONANT SIGN MON MEDIAL NA;Mn;0;NSM;;;;;N;;;;; -105F;MYANMAR CONSONANT SIGN MON MEDIAL MA;Mn;0;NSM;;;;;N;;;;; -1060;MYANMAR CONSONANT SIGN MON MEDIAL LA;Mn;0;NSM;;;;;N;;;;; -1061;MYANMAR LETTER SGAW KAREN SHA;Lo;0;L;;;;;N;;;;; -1062;MYANMAR VOWEL SIGN SGAW KAREN EU;Mc;0;L;;;;;N;;;;; -1063;MYANMAR TONE MARK SGAW KAREN HATHI;Mc;0;L;;;;;N;;;;; -1064;MYANMAR TONE MARK SGAW KAREN KE PHO;Mc;0;L;;;;;N;;;;; -1065;MYANMAR LETTER WESTERN PWO KAREN THA;Lo;0;L;;;;;N;;;;; -1066;MYANMAR LETTER WESTERN PWO KAREN PWA;Lo;0;L;;;;;N;;;;; -1067;MYANMAR VOWEL SIGN WESTERN PWO KAREN EU;Mc;0;L;;;;;N;;;;; -1068;MYANMAR VOWEL SIGN WESTERN PWO KAREN UE;Mc;0;L;;;;;N;;;;; -1069;MYANMAR SIGN WESTERN PWO KAREN TONE-1;Mc;0;L;;;;;N;;;;; -106A;MYANMAR SIGN WESTERN PWO KAREN TONE-2;Mc;0;L;;;;;N;;;;; -106B;MYANMAR SIGN WESTERN PWO KAREN TONE-3;Mc;0;L;;;;;N;;;;; -106C;MYANMAR SIGN WESTERN PWO KAREN TONE-4;Mc;0;L;;;;;N;;;;; -106D;MYANMAR SIGN WESTERN PWO KAREN TONE-5;Mc;0;L;;;;;N;;;;; -106E;MYANMAR LETTER EASTERN PWO KAREN NNA;Lo;0;L;;;;;N;;;;; -106F;MYANMAR LETTER EASTERN PWO KAREN YWA;Lo;0;L;;;;;N;;;;; -1070;MYANMAR LETTER EASTERN PWO KAREN GHWA;Lo;0;L;;;;;N;;;;; -1071;MYANMAR VOWEL SIGN GEBA KAREN I;Mn;0;NSM;;;;;N;;;;; -1072;MYANMAR VOWEL SIGN KAYAH OE;Mn;0;NSM;;;;;N;;;;; -1073;MYANMAR VOWEL SIGN KAYAH U;Mn;0;NSM;;;;;N;;;;; -1074;MYANMAR VOWEL SIGN KAYAH EE;Mn;0;NSM;;;;;N;;;;; -1075;MYANMAR LETTER SHAN KA;Lo;0;L;;;;;N;;;;; -1076;MYANMAR LETTER SHAN KHA;Lo;0;L;;;;;N;;;;; -1077;MYANMAR LETTER SHAN GA;Lo;0;L;;;;;N;;;;; -1078;MYANMAR LETTER SHAN CA;Lo;0;L;;;;;N;;;;; -1079;MYANMAR LETTER SHAN ZA;Lo;0;L;;;;;N;;;;; -107A;MYANMAR LETTER SHAN NYA;Lo;0;L;;;;;N;;;;; -107B;MYANMAR LETTER SHAN DA;Lo;0;L;;;;;N;;;;; -107C;MYANMAR LETTER SHAN NA;Lo;0;L;;;;;N;;;;; -107D;MYANMAR LETTER SHAN PHA;Lo;0;L;;;;;N;;;;; -107E;MYANMAR LETTER SHAN FA;Lo;0;L;;;;;N;;;;; -107F;MYANMAR LETTER SHAN BA;Lo;0;L;;;;;N;;;;; -1080;MYANMAR LETTER SHAN THA;Lo;0;L;;;;;N;;;;; -1081;MYANMAR LETTER SHAN HA;Lo;0;L;;;;;N;;;;; -1082;MYANMAR CONSONANT SIGN SHAN MEDIAL WA;Mn;0;NSM;;;;;N;;;;; -1083;MYANMAR VOWEL SIGN SHAN AA;Mc;0;L;;;;;N;;;;; -1084;MYANMAR VOWEL SIGN SHAN E;Mc;0;L;;;;;N;;;;; -1085;MYANMAR VOWEL SIGN SHAN E ABOVE;Mn;0;NSM;;;;;N;;;;; -1086;MYANMAR VOWEL SIGN SHAN FINAL Y;Mn;0;NSM;;;;;N;;;;; -1087;MYANMAR SIGN SHAN TONE-2;Mc;0;L;;;;;N;;;;; -1088;MYANMAR SIGN SHAN TONE-3;Mc;0;L;;;;;N;;;;; -1089;MYANMAR SIGN SHAN TONE-5;Mc;0;L;;;;;N;;;;; -108A;MYANMAR SIGN SHAN TONE-6;Mc;0;L;;;;;N;;;;; -108B;MYANMAR SIGN SHAN COUNCIL TONE-2;Mc;0;L;;;;;N;;;;; -108C;MYANMAR SIGN SHAN COUNCIL TONE-3;Mc;0;L;;;;;N;;;;; -108D;MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE;Mn;220;NSM;;;;;N;;;;; -108E;MYANMAR LETTER RUMAI PALAUNG FA;Lo;0;L;;;;;N;;;;; -108F;MYANMAR SIGN RUMAI PALAUNG TONE-5;Mc;0;L;;;;;N;;;;; -1090;MYANMAR SHAN DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; -1091;MYANMAR SHAN DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; -1092;MYANMAR SHAN DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; -1093;MYANMAR SHAN DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; -1094;MYANMAR SHAN DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; -1095;MYANMAR SHAN DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; -1096;MYANMAR SHAN DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; -1097;MYANMAR SHAN DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; -1098;MYANMAR SHAN DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; -1099;MYANMAR SHAN DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; -109A;MYANMAR SIGN KHAMTI TONE-1;Mc;0;L;;;;;N;;;;; -109B;MYANMAR SIGN KHAMTI TONE-3;Mc;0;L;;;;;N;;;;; -109C;MYANMAR VOWEL SIGN AITON A;Mc;0;L;;;;;N;;;;; -109D;MYANMAR VOWEL SIGN AITON AI;Mn;0;NSM;;;;;N;;;;; -109E;MYANMAR SYMBOL SHAN ONE;So;0;L;;;;;N;;;;; -109F;MYANMAR SYMBOL SHAN EXCLAMATION;So;0;L;;;;;N;;;;; -10A0;GEORGIAN CAPITAL LETTER AN;Lu;0;L;;;;;N;;;;2D00; -10A1;GEORGIAN CAPITAL LETTER BAN;Lu;0;L;;;;;N;;;;2D01; -10A2;GEORGIAN CAPITAL LETTER GAN;Lu;0;L;;;;;N;;;;2D02; -10A3;GEORGIAN CAPITAL LETTER DON;Lu;0;L;;;;;N;;;;2D03; -10A4;GEORGIAN CAPITAL LETTER EN;Lu;0;L;;;;;N;;;;2D04; -10A5;GEORGIAN CAPITAL LETTER VIN;Lu;0;L;;;;;N;;;;2D05; -10A6;GEORGIAN CAPITAL LETTER ZEN;Lu;0;L;;;;;N;;;;2D06; -10A7;GEORGIAN CAPITAL LETTER TAN;Lu;0;L;;;;;N;;;;2D07; -10A8;GEORGIAN CAPITAL LETTER IN;Lu;0;L;;;;;N;;;;2D08; -10A9;GEORGIAN CAPITAL LETTER KAN;Lu;0;L;;;;;N;;;;2D09; -10AA;GEORGIAN CAPITAL LETTER LAS;Lu;0;L;;;;;N;;;;2D0A; -10AB;GEORGIAN CAPITAL LETTER MAN;Lu;0;L;;;;;N;;;;2D0B; -10AC;GEORGIAN CAPITAL LETTER NAR;Lu;0;L;;;;;N;;;;2D0C; -10AD;GEORGIAN CAPITAL LETTER ON;Lu;0;L;;;;;N;;;;2D0D; -10AE;GEORGIAN CAPITAL LETTER PAR;Lu;0;L;;;;;N;;;;2D0E; -10AF;GEORGIAN CAPITAL LETTER ZHAR;Lu;0;L;;;;;N;;;;2D0F; -10B0;GEORGIAN CAPITAL LETTER RAE;Lu;0;L;;;;;N;;;;2D10; -10B1;GEORGIAN CAPITAL LETTER SAN;Lu;0;L;;;;;N;;;;2D11; -10B2;GEORGIAN CAPITAL LETTER TAR;Lu;0;L;;;;;N;;;;2D12; -10B3;GEORGIAN CAPITAL LETTER UN;Lu;0;L;;;;;N;;;;2D13; -10B4;GEORGIAN CAPITAL LETTER PHAR;Lu;0;L;;;;;N;;;;2D14; -10B5;GEORGIAN CAPITAL LETTER KHAR;Lu;0;L;;;;;N;;;;2D15; -10B6;GEORGIAN CAPITAL LETTER GHAN;Lu;0;L;;;;;N;;;;2D16; -10B7;GEORGIAN CAPITAL LETTER QAR;Lu;0;L;;;;;N;;;;2D17; -10B8;GEORGIAN CAPITAL LETTER SHIN;Lu;0;L;;;;;N;;;;2D18; -10B9;GEORGIAN CAPITAL LETTER CHIN;Lu;0;L;;;;;N;;;;2D19; -10BA;GEORGIAN CAPITAL LETTER CAN;Lu;0;L;;;;;N;;;;2D1A; -10BB;GEORGIAN CAPITAL LETTER JIL;Lu;0;L;;;;;N;;;;2D1B; -10BC;GEORGIAN CAPITAL LETTER CIL;Lu;0;L;;;;;N;;;;2D1C; -10BD;GEORGIAN CAPITAL LETTER CHAR;Lu;0;L;;;;;N;;;;2D1D; -10BE;GEORGIAN CAPITAL LETTER XAN;Lu;0;L;;;;;N;;;;2D1E; -10BF;GEORGIAN CAPITAL LETTER JHAN;Lu;0;L;;;;;N;;;;2D1F; -10C0;GEORGIAN CAPITAL LETTER HAE;Lu;0;L;;;;;N;;;;2D20; -10C1;GEORGIAN CAPITAL LETTER HE;Lu;0;L;;;;;N;;;;2D21; -10C2;GEORGIAN CAPITAL LETTER HIE;Lu;0;L;;;;;N;;;;2D22; -10C3;GEORGIAN CAPITAL LETTER WE;Lu;0;L;;;;;N;;;;2D23; -10C4;GEORGIAN CAPITAL LETTER HAR;Lu;0;L;;;;;N;;;;2D24; -10C5;GEORGIAN CAPITAL LETTER HOE;Lu;0;L;;;;;N;;;;2D25; -10D0;GEORGIAN LETTER AN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER AN;;;; -10D1;GEORGIAN LETTER BAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER BAN;;;; -10D2;GEORGIAN LETTER GAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER GAN;;;; -10D3;GEORGIAN LETTER DON;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER DON;;;; -10D4;GEORGIAN LETTER EN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER EN;;;; -10D5;GEORGIAN LETTER VIN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER VIN;;;; -10D6;GEORGIAN LETTER ZEN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER ZEN;;;; -10D7;GEORGIAN LETTER TAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER TAN;;;; -10D8;GEORGIAN LETTER IN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER IN;;;; -10D9;GEORGIAN LETTER KAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER KAN;;;; -10DA;GEORGIAN LETTER LAS;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER LAS;;;; -10DB;GEORGIAN LETTER MAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER MAN;;;; -10DC;GEORGIAN LETTER NAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER NAR;;;; -10DD;GEORGIAN LETTER ON;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER ON;;;; -10DE;GEORGIAN LETTER PAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER PAR;;;; -10DF;GEORGIAN LETTER ZHAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER ZHAR;;;; -10E0;GEORGIAN LETTER RAE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER RAE;;;; -10E1;GEORGIAN LETTER SAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER SAN;;;; -10E2;GEORGIAN LETTER TAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER TAR;;;; -10E3;GEORGIAN LETTER UN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER UN;;;; -10E4;GEORGIAN LETTER PHAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER PHAR;;;; -10E5;GEORGIAN LETTER KHAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER KHAR;;;; -10E6;GEORGIAN LETTER GHAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER GHAN;;;; -10E7;GEORGIAN LETTER QAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER QAR;;;; -10E8;GEORGIAN LETTER SHIN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER SHIN;;;; -10E9;GEORGIAN LETTER CHIN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER CHIN;;;; -10EA;GEORGIAN LETTER CAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER CAN;;;; -10EB;GEORGIAN LETTER JIL;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER JIL;;;; -10EC;GEORGIAN LETTER CIL;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER CIL;;;; -10ED;GEORGIAN LETTER CHAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER CHAR;;;; -10EE;GEORGIAN LETTER XAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER XAN;;;; -10EF;GEORGIAN LETTER JHAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER JHAN;;;; -10F0;GEORGIAN LETTER HAE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HAE;;;; -10F1;GEORGIAN LETTER HE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HE;;;; -10F2;GEORGIAN LETTER HIE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HIE;;;; -10F3;GEORGIAN LETTER WE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER WE;;;; -10F4;GEORGIAN LETTER HAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HAR;;;; -10F5;GEORGIAN LETTER HOE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HOE;;;; -10F6;GEORGIAN LETTER FI;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER FI;;;; -10F7;GEORGIAN LETTER YN;Lo;0;L;;;;;N;;;;; -10F8;GEORGIAN LETTER ELIFI;Lo;0;L;;;;;N;;;;; -10F9;GEORGIAN LETTER TURNED GAN;Lo;0;L;;;;;N;;;;; -10FA;GEORGIAN LETTER AIN;Lo;0;L;;;;;N;;;;; -10FB;GEORGIAN PARAGRAPH SEPARATOR;Po;0;L;;;;;N;;;;; -10FC;MODIFIER LETTER GEORGIAN NAR;Lm;0;L; 10DC;;;;N;;;;; -1100;HANGUL CHOSEONG KIYEOK;Lo;0;L;;;;;N;;;;; -1101;HANGUL CHOSEONG SSANGKIYEOK;Lo;0;L;;;;;N;;;;; -1102;HANGUL CHOSEONG NIEUN;Lo;0;L;;;;;N;;;;; -1103;HANGUL CHOSEONG TIKEUT;Lo;0;L;;;;;N;;;;; -1104;HANGUL CHOSEONG SSANGTIKEUT;Lo;0;L;;;;;N;;;;; -1105;HANGUL CHOSEONG RIEUL;Lo;0;L;;;;;N;;;;; -1106;HANGUL CHOSEONG MIEUM;Lo;0;L;;;;;N;;;;; -1107;HANGUL CHOSEONG PIEUP;Lo;0;L;;;;;N;;;;; -1108;HANGUL CHOSEONG SSANGPIEUP;Lo;0;L;;;;;N;;;;; -1109;HANGUL CHOSEONG SIOS;Lo;0;L;;;;;N;;;;; -110A;HANGUL CHOSEONG SSANGSIOS;Lo;0;L;;;;;N;;;;; -110B;HANGUL CHOSEONG IEUNG;Lo;0;L;;;;;N;;;;; -110C;HANGUL CHOSEONG CIEUC;Lo;0;L;;;;;N;;;;; -110D;HANGUL CHOSEONG SSANGCIEUC;Lo;0;L;;;;;N;;;;; -110E;HANGUL CHOSEONG CHIEUCH;Lo;0;L;;;;;N;;;;; -110F;HANGUL CHOSEONG KHIEUKH;Lo;0;L;;;;;N;;;;; -1110;HANGUL CHOSEONG THIEUTH;Lo;0;L;;;;;N;;;;; -1111;HANGUL CHOSEONG PHIEUPH;Lo;0;L;;;;;N;;;;; -1112;HANGUL CHOSEONG HIEUH;Lo;0;L;;;;;N;;;;; -1113;HANGUL CHOSEONG NIEUN-KIYEOK;Lo;0;L;;;;;N;;;;; -1114;HANGUL CHOSEONG SSANGNIEUN;Lo;0;L;;;;;N;;;;; -1115;HANGUL CHOSEONG NIEUN-TIKEUT;Lo;0;L;;;;;N;;;;; -1116;HANGUL CHOSEONG NIEUN-PIEUP;Lo;0;L;;;;;N;;;;; -1117;HANGUL CHOSEONG TIKEUT-KIYEOK;Lo;0;L;;;;;N;;;;; -1118;HANGUL CHOSEONG RIEUL-NIEUN;Lo;0;L;;;;;N;;;;; -1119;HANGUL CHOSEONG SSANGRIEUL;Lo;0;L;;;;;N;;;;; -111A;HANGUL CHOSEONG RIEUL-HIEUH;Lo;0;L;;;;;N;;;;; -111B;HANGUL CHOSEONG KAPYEOUNRIEUL;Lo;0;L;;;;;N;;;;; -111C;HANGUL CHOSEONG MIEUM-PIEUP;Lo;0;L;;;;;N;;;;; -111D;HANGUL CHOSEONG KAPYEOUNMIEUM;Lo;0;L;;;;;N;;;;; -111E;HANGUL CHOSEONG PIEUP-KIYEOK;Lo;0;L;;;;;N;;;;; -111F;HANGUL CHOSEONG PIEUP-NIEUN;Lo;0;L;;;;;N;;;;; -1120;HANGUL CHOSEONG PIEUP-TIKEUT;Lo;0;L;;;;;N;;;;; -1121;HANGUL CHOSEONG PIEUP-SIOS;Lo;0;L;;;;;N;;;;; -1122;HANGUL CHOSEONG PIEUP-SIOS-KIYEOK;Lo;0;L;;;;;N;;;;; -1123;HANGUL CHOSEONG PIEUP-SIOS-TIKEUT;Lo;0;L;;;;;N;;;;; -1124;HANGUL CHOSEONG PIEUP-SIOS-PIEUP;Lo;0;L;;;;;N;;;;; -1125;HANGUL CHOSEONG PIEUP-SSANGSIOS;Lo;0;L;;;;;N;;;;; -1126;HANGUL CHOSEONG PIEUP-SIOS-CIEUC;Lo;0;L;;;;;N;;;;; -1127;HANGUL CHOSEONG PIEUP-CIEUC;Lo;0;L;;;;;N;;;;; -1128;HANGUL CHOSEONG PIEUP-CHIEUCH;Lo;0;L;;;;;N;;;;; -1129;HANGUL CHOSEONG PIEUP-THIEUTH;Lo;0;L;;;;;N;;;;; -112A;HANGUL CHOSEONG PIEUP-PHIEUPH;Lo;0;L;;;;;N;;;;; -112B;HANGUL CHOSEONG KAPYEOUNPIEUP;Lo;0;L;;;;;N;;;;; -112C;HANGUL CHOSEONG KAPYEOUNSSANGPIEUP;Lo;0;L;;;;;N;;;;; -112D;HANGUL CHOSEONG SIOS-KIYEOK;Lo;0;L;;;;;N;;;;; -112E;HANGUL CHOSEONG SIOS-NIEUN;Lo;0;L;;;;;N;;;;; -112F;HANGUL CHOSEONG SIOS-TIKEUT;Lo;0;L;;;;;N;;;;; -1130;HANGUL CHOSEONG SIOS-RIEUL;Lo;0;L;;;;;N;;;;; -1131;HANGUL CHOSEONG SIOS-MIEUM;Lo;0;L;;;;;N;;;;; -1132;HANGUL CHOSEONG SIOS-PIEUP;Lo;0;L;;;;;N;;;;; -1133;HANGUL CHOSEONG SIOS-PIEUP-KIYEOK;Lo;0;L;;;;;N;;;;; -1134;HANGUL CHOSEONG SIOS-SSANGSIOS;Lo;0;L;;;;;N;;;;; -1135;HANGUL CHOSEONG SIOS-IEUNG;Lo;0;L;;;;;N;;;;; -1136;HANGUL CHOSEONG SIOS-CIEUC;Lo;0;L;;;;;N;;;;; -1137;HANGUL CHOSEONG SIOS-CHIEUCH;Lo;0;L;;;;;N;;;;; -1138;HANGUL CHOSEONG SIOS-KHIEUKH;Lo;0;L;;;;;N;;;;; -1139;HANGUL CHOSEONG SIOS-THIEUTH;Lo;0;L;;;;;N;;;;; -113A;HANGUL CHOSEONG SIOS-PHIEUPH;Lo;0;L;;;;;N;;;;; -113B;HANGUL CHOSEONG SIOS-HIEUH;Lo;0;L;;;;;N;;;;; -113C;HANGUL CHOSEONG CHITUEUMSIOS;Lo;0;L;;;;;N;;;;; -113D;HANGUL CHOSEONG CHITUEUMSSANGSIOS;Lo;0;L;;;;;N;;;;; -113E;HANGUL CHOSEONG CEONGCHIEUMSIOS;Lo;0;L;;;;;N;;;;; -113F;HANGUL CHOSEONG CEONGCHIEUMSSANGSIOS;Lo;0;L;;;;;N;;;;; -1140;HANGUL CHOSEONG PANSIOS;Lo;0;L;;;;;N;;;;; -1141;HANGUL CHOSEONG IEUNG-KIYEOK;Lo;0;L;;;;;N;;;;; -1142;HANGUL CHOSEONG IEUNG-TIKEUT;Lo;0;L;;;;;N;;;;; -1143;HANGUL CHOSEONG IEUNG-MIEUM;Lo;0;L;;;;;N;;;;; -1144;HANGUL CHOSEONG IEUNG-PIEUP;Lo;0;L;;;;;N;;;;; -1145;HANGUL CHOSEONG IEUNG-SIOS;Lo;0;L;;;;;N;;;;; -1146;HANGUL CHOSEONG IEUNG-PANSIOS;Lo;0;L;;;;;N;;;;; -1147;HANGUL CHOSEONG SSANGIEUNG;Lo;0;L;;;;;N;;;;; -1148;HANGUL CHOSEONG IEUNG-CIEUC;Lo;0;L;;;;;N;;;;; -1149;HANGUL CHOSEONG IEUNG-CHIEUCH;Lo;0;L;;;;;N;;;;; -114A;HANGUL CHOSEONG IEUNG-THIEUTH;Lo;0;L;;;;;N;;;;; -114B;HANGUL CHOSEONG IEUNG-PHIEUPH;Lo;0;L;;;;;N;;;;; -114C;HANGUL CHOSEONG YESIEUNG;Lo;0;L;;;;;N;;;;; -114D;HANGUL CHOSEONG CIEUC-IEUNG;Lo;0;L;;;;;N;;;;; -114E;HANGUL CHOSEONG CHITUEUMCIEUC;Lo;0;L;;;;;N;;;;; -114F;HANGUL CHOSEONG CHITUEUMSSANGCIEUC;Lo;0;L;;;;;N;;;;; -1150;HANGUL CHOSEONG CEONGCHIEUMCIEUC;Lo;0;L;;;;;N;;;;; -1151;HANGUL CHOSEONG CEONGCHIEUMSSANGCIEUC;Lo;0;L;;;;;N;;;;; -1152;HANGUL CHOSEONG CHIEUCH-KHIEUKH;Lo;0;L;;;;;N;;;;; -1153;HANGUL CHOSEONG CHIEUCH-HIEUH;Lo;0;L;;;;;N;;;;; -1154;HANGUL CHOSEONG CHITUEUMCHIEUCH;Lo;0;L;;;;;N;;;;; -1155;HANGUL CHOSEONG CEONGCHIEUMCHIEUCH;Lo;0;L;;;;;N;;;;; -1156;HANGUL CHOSEONG PHIEUPH-PIEUP;Lo;0;L;;;;;N;;;;; -1157;HANGUL CHOSEONG KAPYEOUNPHIEUPH;Lo;0;L;;;;;N;;;;; -1158;HANGUL CHOSEONG SSANGHIEUH;Lo;0;L;;;;;N;;;;; -1159;HANGUL CHOSEONG YEORINHIEUH;Lo;0;L;;;;;N;;;;; -115A;HANGUL CHOSEONG KIYEOK-TIKEUT;Lo;0;L;;;;;N;;;;; -115B;HANGUL CHOSEONG NIEUN-SIOS;Lo;0;L;;;;;N;;;;; -115C;HANGUL CHOSEONG NIEUN-CIEUC;Lo;0;L;;;;;N;;;;; -115D;HANGUL CHOSEONG NIEUN-HIEUH;Lo;0;L;;;;;N;;;;; -115E;HANGUL CHOSEONG TIKEUT-RIEUL;Lo;0;L;;;;;N;;;;; -115F;HANGUL CHOSEONG FILLER;Lo;0;L;;;;;N;;;;; -1160;HANGUL JUNGSEONG FILLER;Lo;0;L;;;;;N;;;;; -1161;HANGUL JUNGSEONG A;Lo;0;L;;;;;N;;;;; -1162;HANGUL JUNGSEONG AE;Lo;0;L;;;;;N;;;;; -1163;HANGUL JUNGSEONG YA;Lo;0;L;;;;;N;;;;; -1164;HANGUL JUNGSEONG YAE;Lo;0;L;;;;;N;;;;; -1165;HANGUL JUNGSEONG EO;Lo;0;L;;;;;N;;;;; -1166;HANGUL JUNGSEONG E;Lo;0;L;;;;;N;;;;; -1167;HANGUL JUNGSEONG YEO;Lo;0;L;;;;;N;;;;; -1168;HANGUL JUNGSEONG YE;Lo;0;L;;;;;N;;;;; -1169;HANGUL JUNGSEONG O;Lo;0;L;;;;;N;;;;; -116A;HANGUL JUNGSEONG WA;Lo;0;L;;;;;N;;;;; -116B;HANGUL JUNGSEONG WAE;Lo;0;L;;;;;N;;;;; -116C;HANGUL JUNGSEONG OE;Lo;0;L;;;;;N;;;;; -116D;HANGUL JUNGSEONG YO;Lo;0;L;;;;;N;;;;; -116E;HANGUL JUNGSEONG U;Lo;0;L;;;;;N;;;;; -116F;HANGUL JUNGSEONG WEO;Lo;0;L;;;;;N;;;;; -1170;HANGUL JUNGSEONG WE;Lo;0;L;;;;;N;;;;; -1171;HANGUL JUNGSEONG WI;Lo;0;L;;;;;N;;;;; -1172;HANGUL JUNGSEONG YU;Lo;0;L;;;;;N;;;;; -1173;HANGUL JUNGSEONG EU;Lo;0;L;;;;;N;;;;; -1174;HANGUL JUNGSEONG YI;Lo;0;L;;;;;N;;;;; -1175;HANGUL JUNGSEONG I;Lo;0;L;;;;;N;;;;; -1176;HANGUL JUNGSEONG A-O;Lo;0;L;;;;;N;;;;; -1177;HANGUL JUNGSEONG A-U;Lo;0;L;;;;;N;;;;; -1178;HANGUL JUNGSEONG YA-O;Lo;0;L;;;;;N;;;;; -1179;HANGUL JUNGSEONG YA-YO;Lo;0;L;;;;;N;;;;; -117A;HANGUL JUNGSEONG EO-O;Lo;0;L;;;;;N;;;;; -117B;HANGUL JUNGSEONG EO-U;Lo;0;L;;;;;N;;;;; -117C;HANGUL JUNGSEONG EO-EU;Lo;0;L;;;;;N;;;;; -117D;HANGUL JUNGSEONG YEO-O;Lo;0;L;;;;;N;;;;; -117E;HANGUL JUNGSEONG YEO-U;Lo;0;L;;;;;N;;;;; -117F;HANGUL JUNGSEONG O-EO;Lo;0;L;;;;;N;;;;; -1180;HANGUL JUNGSEONG O-E;Lo;0;L;;;;;N;;;;; -1181;HANGUL JUNGSEONG O-YE;Lo;0;L;;;;;N;;;;; -1182;HANGUL JUNGSEONG O-O;Lo;0;L;;;;;N;;;;; -1183;HANGUL JUNGSEONG O-U;Lo;0;L;;;;;N;;;;; -1184;HANGUL JUNGSEONG YO-YA;Lo;0;L;;;;;N;;;;; -1185;HANGUL JUNGSEONG YO-YAE;Lo;0;L;;;;;N;;;;; -1186;HANGUL JUNGSEONG YO-YEO;Lo;0;L;;;;;N;;;;; -1187;HANGUL JUNGSEONG YO-O;Lo;0;L;;;;;N;;;;; -1188;HANGUL JUNGSEONG YO-I;Lo;0;L;;;;;N;;;;; -1189;HANGUL JUNGSEONG U-A;Lo;0;L;;;;;N;;;;; -118A;HANGUL JUNGSEONG U-AE;Lo;0;L;;;;;N;;;;; -118B;HANGUL JUNGSEONG U-EO-EU;Lo;0;L;;;;;N;;;;; -118C;HANGUL JUNGSEONG U-YE;Lo;0;L;;;;;N;;;;; -118D;HANGUL JUNGSEONG U-U;Lo;0;L;;;;;N;;;;; -118E;HANGUL JUNGSEONG YU-A;Lo;0;L;;;;;N;;;;; -118F;HANGUL JUNGSEONG YU-EO;Lo;0;L;;;;;N;;;;; -1190;HANGUL JUNGSEONG YU-E;Lo;0;L;;;;;N;;;;; -1191;HANGUL JUNGSEONG YU-YEO;Lo;0;L;;;;;N;;;;; -1192;HANGUL JUNGSEONG YU-YE;Lo;0;L;;;;;N;;;;; -1193;HANGUL JUNGSEONG YU-U;Lo;0;L;;;;;N;;;;; -1194;HANGUL JUNGSEONG YU-I;Lo;0;L;;;;;N;;;;; -1195;HANGUL JUNGSEONG EU-U;Lo;0;L;;;;;N;;;;; -1196;HANGUL JUNGSEONG EU-EU;Lo;0;L;;;;;N;;;;; -1197;HANGUL JUNGSEONG YI-U;Lo;0;L;;;;;N;;;;; -1198;HANGUL JUNGSEONG I-A;Lo;0;L;;;;;N;;;;; -1199;HANGUL JUNGSEONG I-YA;Lo;0;L;;;;;N;;;;; -119A;HANGUL JUNGSEONG I-O;Lo;0;L;;;;;N;;;;; -119B;HANGUL JUNGSEONG I-U;Lo;0;L;;;;;N;;;;; -119C;HANGUL JUNGSEONG I-EU;Lo;0;L;;;;;N;;;;; -119D;HANGUL JUNGSEONG I-ARAEA;Lo;0;L;;;;;N;;;;; -119E;HANGUL JUNGSEONG ARAEA;Lo;0;L;;;;;N;;;;; -119F;HANGUL JUNGSEONG ARAEA-EO;Lo;0;L;;;;;N;;;;; -11A0;HANGUL JUNGSEONG ARAEA-U;Lo;0;L;;;;;N;;;;; -11A1;HANGUL JUNGSEONG ARAEA-I;Lo;0;L;;;;;N;;;;; -11A2;HANGUL JUNGSEONG SSANGARAEA;Lo;0;L;;;;;N;;;;; -11A3;HANGUL JUNGSEONG A-EU;Lo;0;L;;;;;N;;;;; -11A4;HANGUL JUNGSEONG YA-U;Lo;0;L;;;;;N;;;;; -11A5;HANGUL JUNGSEONG YEO-YA;Lo;0;L;;;;;N;;;;; -11A6;HANGUL JUNGSEONG O-YA;Lo;0;L;;;;;N;;;;; -11A7;HANGUL JUNGSEONG O-YAE;Lo;0;L;;;;;N;;;;; -11A8;HANGUL JONGSEONG KIYEOK;Lo;0;L;;;;;N;;;;; -11A9;HANGUL JONGSEONG SSANGKIYEOK;Lo;0;L;;;;;N;;;;; -11AA;HANGUL JONGSEONG KIYEOK-SIOS;Lo;0;L;;;;;N;;;;; -11AB;HANGUL JONGSEONG NIEUN;Lo;0;L;;;;;N;;;;; -11AC;HANGUL JONGSEONG NIEUN-CIEUC;Lo;0;L;;;;;N;;;;; -11AD;HANGUL JONGSEONG NIEUN-HIEUH;Lo;0;L;;;;;N;;;;; -11AE;HANGUL JONGSEONG TIKEUT;Lo;0;L;;;;;N;;;;; -11AF;HANGUL JONGSEONG RIEUL;Lo;0;L;;;;;N;;;;; -11B0;HANGUL JONGSEONG RIEUL-KIYEOK;Lo;0;L;;;;;N;;;;; -11B1;HANGUL JONGSEONG RIEUL-MIEUM;Lo;0;L;;;;;N;;;;; -11B2;HANGUL JONGSEONG RIEUL-PIEUP;Lo;0;L;;;;;N;;;;; -11B3;HANGUL JONGSEONG RIEUL-SIOS;Lo;0;L;;;;;N;;;;; -11B4;HANGUL JONGSEONG RIEUL-THIEUTH;Lo;0;L;;;;;N;;;;; -11B5;HANGUL JONGSEONG RIEUL-PHIEUPH;Lo;0;L;;;;;N;;;;; -11B6;HANGUL JONGSEONG RIEUL-HIEUH;Lo;0;L;;;;;N;;;;; -11B7;HANGUL JONGSEONG MIEUM;Lo;0;L;;;;;N;;;;; -11B8;HANGUL JONGSEONG PIEUP;Lo;0;L;;;;;N;;;;; -11B9;HANGUL JONGSEONG PIEUP-SIOS;Lo;0;L;;;;;N;;;;; -11BA;HANGUL JONGSEONG SIOS;Lo;0;L;;;;;N;;;;; -11BB;HANGUL JONGSEONG SSANGSIOS;Lo;0;L;;;;;N;;;;; -11BC;HANGUL JONGSEONG IEUNG;Lo;0;L;;;;;N;;;;; -11BD;HANGUL JONGSEONG CIEUC;Lo;0;L;;;;;N;;;;; -11BE;HANGUL JONGSEONG CHIEUCH;Lo;0;L;;;;;N;;;;; -11BF;HANGUL JONGSEONG KHIEUKH;Lo;0;L;;;;;N;;;;; -11C0;HANGUL JONGSEONG THIEUTH;Lo;0;L;;;;;N;;;;; -11C1;HANGUL JONGSEONG PHIEUPH;Lo;0;L;;;;;N;;;;; -11C2;HANGUL JONGSEONG HIEUH;Lo;0;L;;;;;N;;;;; -11C3;HANGUL JONGSEONG KIYEOK-RIEUL;Lo;0;L;;;;;N;;;;; -11C4;HANGUL JONGSEONG KIYEOK-SIOS-KIYEOK;Lo;0;L;;;;;N;;;;; -11C5;HANGUL JONGSEONG NIEUN-KIYEOK;Lo;0;L;;;;;N;;;;; -11C6;HANGUL JONGSEONG NIEUN-TIKEUT;Lo;0;L;;;;;N;;;;; -11C7;HANGUL JONGSEONG NIEUN-SIOS;Lo;0;L;;;;;N;;;;; -11C8;HANGUL JONGSEONG NIEUN-PANSIOS;Lo;0;L;;;;;N;;;;; -11C9;HANGUL JONGSEONG NIEUN-THIEUTH;Lo;0;L;;;;;N;;;;; -11CA;HANGUL JONGSEONG TIKEUT-KIYEOK;Lo;0;L;;;;;N;;;;; -11CB;HANGUL JONGSEONG TIKEUT-RIEUL;Lo;0;L;;;;;N;;;;; -11CC;HANGUL JONGSEONG RIEUL-KIYEOK-SIOS;Lo;0;L;;;;;N;;;;; -11CD;HANGUL JONGSEONG RIEUL-NIEUN;Lo;0;L;;;;;N;;;;; -11CE;HANGUL JONGSEONG RIEUL-TIKEUT;Lo;0;L;;;;;N;;;;; -11CF;HANGUL JONGSEONG RIEUL-TIKEUT-HIEUH;Lo;0;L;;;;;N;;;;; -11D0;HANGUL JONGSEONG SSANGRIEUL;Lo;0;L;;;;;N;;;;; -11D1;HANGUL JONGSEONG RIEUL-MIEUM-KIYEOK;Lo;0;L;;;;;N;;;;; -11D2;HANGUL JONGSEONG RIEUL-MIEUM-SIOS;Lo;0;L;;;;;N;;;;; -11D3;HANGUL JONGSEONG RIEUL-PIEUP-SIOS;Lo;0;L;;;;;N;;;;; -11D4;HANGUL JONGSEONG RIEUL-PIEUP-HIEUH;Lo;0;L;;;;;N;;;;; -11D5;HANGUL JONGSEONG RIEUL-KAPYEOUNPIEUP;Lo;0;L;;;;;N;;;;; -11D6;HANGUL JONGSEONG RIEUL-SSANGSIOS;Lo;0;L;;;;;N;;;;; -11D7;HANGUL JONGSEONG RIEUL-PANSIOS;Lo;0;L;;;;;N;;;;; -11D8;HANGUL JONGSEONG RIEUL-KHIEUKH;Lo;0;L;;;;;N;;;;; -11D9;HANGUL JONGSEONG RIEUL-YEORINHIEUH;Lo;0;L;;;;;N;;;;; -11DA;HANGUL JONGSEONG MIEUM-KIYEOK;Lo;0;L;;;;;N;;;;; -11DB;HANGUL JONGSEONG MIEUM-RIEUL;Lo;0;L;;;;;N;;;;; -11DC;HANGUL JONGSEONG MIEUM-PIEUP;Lo;0;L;;;;;N;;;;; -11DD;HANGUL JONGSEONG MIEUM-SIOS;Lo;0;L;;;;;N;;;;; -11DE;HANGUL JONGSEONG MIEUM-SSANGSIOS;Lo;0;L;;;;;N;;;;; -11DF;HANGUL JONGSEONG MIEUM-PANSIOS;Lo;0;L;;;;;N;;;;; -11E0;HANGUL JONGSEONG MIEUM-CHIEUCH;Lo;0;L;;;;;N;;;;; -11E1;HANGUL JONGSEONG MIEUM-HIEUH;Lo;0;L;;;;;N;;;;; -11E2;HANGUL JONGSEONG KAPYEOUNMIEUM;Lo;0;L;;;;;N;;;;; -11E3;HANGUL JONGSEONG PIEUP-RIEUL;Lo;0;L;;;;;N;;;;; -11E4;HANGUL JONGSEONG PIEUP-PHIEUPH;Lo;0;L;;;;;N;;;;; -11E5;HANGUL JONGSEONG PIEUP-HIEUH;Lo;0;L;;;;;N;;;;; -11E6;HANGUL JONGSEONG KAPYEOUNPIEUP;Lo;0;L;;;;;N;;;;; -11E7;HANGUL JONGSEONG SIOS-KIYEOK;Lo;0;L;;;;;N;;;;; -11E8;HANGUL JONGSEONG SIOS-TIKEUT;Lo;0;L;;;;;N;;;;; -11E9;HANGUL JONGSEONG SIOS-RIEUL;Lo;0;L;;;;;N;;;;; -11EA;HANGUL JONGSEONG SIOS-PIEUP;Lo;0;L;;;;;N;;;;; -11EB;HANGUL JONGSEONG PANSIOS;Lo;0;L;;;;;N;;;;; -11EC;HANGUL JONGSEONG IEUNG-KIYEOK;Lo;0;L;;;;;N;;;;; -11ED;HANGUL JONGSEONG IEUNG-SSANGKIYEOK;Lo;0;L;;;;;N;;;;; -11EE;HANGUL JONGSEONG SSANGIEUNG;Lo;0;L;;;;;N;;;;; -11EF;HANGUL JONGSEONG IEUNG-KHIEUKH;Lo;0;L;;;;;N;;;;; -11F0;HANGUL JONGSEONG YESIEUNG;Lo;0;L;;;;;N;;;;; -11F1;HANGUL JONGSEONG YESIEUNG-SIOS;Lo;0;L;;;;;N;;;;; -11F2;HANGUL JONGSEONG YESIEUNG-PANSIOS;Lo;0;L;;;;;N;;;;; -11F3;HANGUL JONGSEONG PHIEUPH-PIEUP;Lo;0;L;;;;;N;;;;; -11F4;HANGUL JONGSEONG KAPYEOUNPHIEUPH;Lo;0;L;;;;;N;;;;; -11F5;HANGUL JONGSEONG HIEUH-NIEUN;Lo;0;L;;;;;N;;;;; -11F6;HANGUL JONGSEONG HIEUH-RIEUL;Lo;0;L;;;;;N;;;;; -11F7;HANGUL JONGSEONG HIEUH-MIEUM;Lo;0;L;;;;;N;;;;; -11F8;HANGUL JONGSEONG HIEUH-PIEUP;Lo;0;L;;;;;N;;;;; -11F9;HANGUL JONGSEONG YEORINHIEUH;Lo;0;L;;;;;N;;;;; -11FA;HANGUL JONGSEONG KIYEOK-NIEUN;Lo;0;L;;;;;N;;;;; -11FB;HANGUL JONGSEONG KIYEOK-PIEUP;Lo;0;L;;;;;N;;;;; -11FC;HANGUL JONGSEONG KIYEOK-CHIEUCH;Lo;0;L;;;;;N;;;;; -11FD;HANGUL JONGSEONG KIYEOK-KHIEUKH;Lo;0;L;;;;;N;;;;; -11FE;HANGUL JONGSEONG KIYEOK-HIEUH;Lo;0;L;;;;;N;;;;; -11FF;HANGUL JONGSEONG SSANGNIEUN;Lo;0;L;;;;;N;;;;; -1200;ETHIOPIC SYLLABLE HA;Lo;0;L;;;;;N;;;;; -1201;ETHIOPIC SYLLABLE HU;Lo;0;L;;;;;N;;;;; -1202;ETHIOPIC SYLLABLE HI;Lo;0;L;;;;;N;;;;; -1203;ETHIOPIC SYLLABLE HAA;Lo;0;L;;;;;N;;;;; -1204;ETHIOPIC SYLLABLE HEE;Lo;0;L;;;;;N;;;;; -1205;ETHIOPIC SYLLABLE HE;Lo;0;L;;;;;N;;;;; -1206;ETHIOPIC SYLLABLE HO;Lo;0;L;;;;;N;;;;; -1207;ETHIOPIC SYLLABLE HOA;Lo;0;L;;;;;N;;;;; -1208;ETHIOPIC SYLLABLE LA;Lo;0;L;;;;;N;;;;; -1209;ETHIOPIC SYLLABLE LU;Lo;0;L;;;;;N;;;;; -120A;ETHIOPIC SYLLABLE LI;Lo;0;L;;;;;N;;;;; -120B;ETHIOPIC SYLLABLE LAA;Lo;0;L;;;;;N;;;;; -120C;ETHIOPIC SYLLABLE LEE;Lo;0;L;;;;;N;;;;; -120D;ETHIOPIC SYLLABLE LE;Lo;0;L;;;;;N;;;;; -120E;ETHIOPIC SYLLABLE LO;Lo;0;L;;;;;N;;;;; -120F;ETHIOPIC SYLLABLE LWA;Lo;0;L;;;;;N;;;;; -1210;ETHIOPIC SYLLABLE HHA;Lo;0;L;;;;;N;;;;; -1211;ETHIOPIC SYLLABLE HHU;Lo;0;L;;;;;N;;;;; -1212;ETHIOPIC SYLLABLE HHI;Lo;0;L;;;;;N;;;;; -1213;ETHIOPIC SYLLABLE HHAA;Lo;0;L;;;;;N;;;;; -1214;ETHIOPIC SYLLABLE HHEE;Lo;0;L;;;;;N;;;;; -1215;ETHIOPIC SYLLABLE HHE;Lo;0;L;;;;;N;;;;; -1216;ETHIOPIC SYLLABLE HHO;Lo;0;L;;;;;N;;;;; -1217;ETHIOPIC SYLLABLE HHWA;Lo;0;L;;;;;N;;;;; -1218;ETHIOPIC SYLLABLE MA;Lo;0;L;;;;;N;;;;; -1219;ETHIOPIC SYLLABLE MU;Lo;0;L;;;;;N;;;;; -121A;ETHIOPIC SYLLABLE MI;Lo;0;L;;;;;N;;;;; -121B;ETHIOPIC SYLLABLE MAA;Lo;0;L;;;;;N;;;;; -121C;ETHIOPIC SYLLABLE MEE;Lo;0;L;;;;;N;;;;; -121D;ETHIOPIC SYLLABLE ME;Lo;0;L;;;;;N;;;;; -121E;ETHIOPIC SYLLABLE MO;Lo;0;L;;;;;N;;;;; -121F;ETHIOPIC SYLLABLE MWA;Lo;0;L;;;;;N;;;;; -1220;ETHIOPIC SYLLABLE SZA;Lo;0;L;;;;;N;;;;; -1221;ETHIOPIC SYLLABLE SZU;Lo;0;L;;;;;N;;;;; -1222;ETHIOPIC SYLLABLE SZI;Lo;0;L;;;;;N;;;;; -1223;ETHIOPIC SYLLABLE SZAA;Lo;0;L;;;;;N;;;;; -1224;ETHIOPIC SYLLABLE SZEE;Lo;0;L;;;;;N;;;;; -1225;ETHIOPIC SYLLABLE SZE;Lo;0;L;;;;;N;;;;; -1226;ETHIOPIC SYLLABLE SZO;Lo;0;L;;;;;N;;;;; -1227;ETHIOPIC SYLLABLE SZWA;Lo;0;L;;;;;N;;;;; -1228;ETHIOPIC SYLLABLE RA;Lo;0;L;;;;;N;;;;; -1229;ETHIOPIC SYLLABLE RU;Lo;0;L;;;;;N;;;;; -122A;ETHIOPIC SYLLABLE RI;Lo;0;L;;;;;N;;;;; -122B;ETHIOPIC SYLLABLE RAA;Lo;0;L;;;;;N;;;;; -122C;ETHIOPIC SYLLABLE REE;Lo;0;L;;;;;N;;;;; -122D;ETHIOPIC SYLLABLE RE;Lo;0;L;;;;;N;;;;; -122E;ETHIOPIC SYLLABLE RO;Lo;0;L;;;;;N;;;;; -122F;ETHIOPIC SYLLABLE RWA;Lo;0;L;;;;;N;;;;; -1230;ETHIOPIC SYLLABLE SA;Lo;0;L;;;;;N;;;;; -1231;ETHIOPIC SYLLABLE SU;Lo;0;L;;;;;N;;;;; -1232;ETHIOPIC SYLLABLE SI;Lo;0;L;;;;;N;;;;; -1233;ETHIOPIC SYLLABLE SAA;Lo;0;L;;;;;N;;;;; -1234;ETHIOPIC SYLLABLE SEE;Lo;0;L;;;;;N;;;;; -1235;ETHIOPIC SYLLABLE SE;Lo;0;L;;;;;N;;;;; -1236;ETHIOPIC SYLLABLE SO;Lo;0;L;;;;;N;;;;; -1237;ETHIOPIC SYLLABLE SWA;Lo;0;L;;;;;N;;;;; -1238;ETHIOPIC SYLLABLE SHA;Lo;0;L;;;;;N;;;;; -1239;ETHIOPIC SYLLABLE SHU;Lo;0;L;;;;;N;;;;; -123A;ETHIOPIC SYLLABLE SHI;Lo;0;L;;;;;N;;;;; -123B;ETHIOPIC SYLLABLE SHAA;Lo;0;L;;;;;N;;;;; -123C;ETHIOPIC SYLLABLE SHEE;Lo;0;L;;;;;N;;;;; -123D;ETHIOPIC SYLLABLE SHE;Lo;0;L;;;;;N;;;;; -123E;ETHIOPIC SYLLABLE SHO;Lo;0;L;;;;;N;;;;; -123F;ETHIOPIC SYLLABLE SHWA;Lo;0;L;;;;;N;;;;; -1240;ETHIOPIC SYLLABLE QA;Lo;0;L;;;;;N;;;;; -1241;ETHIOPIC SYLLABLE QU;Lo;0;L;;;;;N;;;;; -1242;ETHIOPIC SYLLABLE QI;Lo;0;L;;;;;N;;;;; -1243;ETHIOPIC SYLLABLE QAA;Lo;0;L;;;;;N;;;;; -1244;ETHIOPIC SYLLABLE QEE;Lo;0;L;;;;;N;;;;; -1245;ETHIOPIC SYLLABLE QE;Lo;0;L;;;;;N;;;;; -1246;ETHIOPIC SYLLABLE QO;Lo;0;L;;;;;N;;;;; -1247;ETHIOPIC SYLLABLE QOA;Lo;0;L;;;;;N;;;;; -1248;ETHIOPIC SYLLABLE QWA;Lo;0;L;;;;;N;;;;; -124A;ETHIOPIC SYLLABLE QWI;Lo;0;L;;;;;N;;;;; -124B;ETHIOPIC SYLLABLE QWAA;Lo;0;L;;;;;N;;;;; -124C;ETHIOPIC SYLLABLE QWEE;Lo;0;L;;;;;N;;;;; -124D;ETHIOPIC SYLLABLE QWE;Lo;0;L;;;;;N;;;;; -1250;ETHIOPIC SYLLABLE QHA;Lo;0;L;;;;;N;;;;; -1251;ETHIOPIC SYLLABLE QHU;Lo;0;L;;;;;N;;;;; -1252;ETHIOPIC SYLLABLE QHI;Lo;0;L;;;;;N;;;;; -1253;ETHIOPIC SYLLABLE QHAA;Lo;0;L;;;;;N;;;;; -1254;ETHIOPIC SYLLABLE QHEE;Lo;0;L;;;;;N;;;;; -1255;ETHIOPIC SYLLABLE QHE;Lo;0;L;;;;;N;;;;; -1256;ETHIOPIC SYLLABLE QHO;Lo;0;L;;;;;N;;;;; -1258;ETHIOPIC SYLLABLE QHWA;Lo;0;L;;;;;N;;;;; -125A;ETHIOPIC SYLLABLE QHWI;Lo;0;L;;;;;N;;;;; -125B;ETHIOPIC SYLLABLE QHWAA;Lo;0;L;;;;;N;;;;; -125C;ETHIOPIC SYLLABLE QHWEE;Lo;0;L;;;;;N;;;;; -125D;ETHIOPIC SYLLABLE QHWE;Lo;0;L;;;;;N;;;;; -1260;ETHIOPIC SYLLABLE BA;Lo;0;L;;;;;N;;;;; -1261;ETHIOPIC SYLLABLE BU;Lo;0;L;;;;;N;;;;; -1262;ETHIOPIC SYLLABLE BI;Lo;0;L;;;;;N;;;;; -1263;ETHIOPIC SYLLABLE BAA;Lo;0;L;;;;;N;;;;; -1264;ETHIOPIC SYLLABLE BEE;Lo;0;L;;;;;N;;;;; -1265;ETHIOPIC SYLLABLE BE;Lo;0;L;;;;;N;;;;; -1266;ETHIOPIC SYLLABLE BO;Lo;0;L;;;;;N;;;;; -1267;ETHIOPIC SYLLABLE BWA;Lo;0;L;;;;;N;;;;; -1268;ETHIOPIC SYLLABLE VA;Lo;0;L;;;;;N;;;;; -1269;ETHIOPIC SYLLABLE VU;Lo;0;L;;;;;N;;;;; -126A;ETHIOPIC SYLLABLE VI;Lo;0;L;;;;;N;;;;; -126B;ETHIOPIC SYLLABLE VAA;Lo;0;L;;;;;N;;;;; -126C;ETHIOPIC SYLLABLE VEE;Lo;0;L;;;;;N;;;;; -126D;ETHIOPIC SYLLABLE VE;Lo;0;L;;;;;N;;;;; -126E;ETHIOPIC SYLLABLE VO;Lo;0;L;;;;;N;;;;; -126F;ETHIOPIC SYLLABLE VWA;Lo;0;L;;;;;N;;;;; -1270;ETHIOPIC SYLLABLE TA;Lo;0;L;;;;;N;;;;; -1271;ETHIOPIC SYLLABLE TU;Lo;0;L;;;;;N;;;;; -1272;ETHIOPIC SYLLABLE TI;Lo;0;L;;;;;N;;;;; -1273;ETHIOPIC SYLLABLE TAA;Lo;0;L;;;;;N;;;;; -1274;ETHIOPIC SYLLABLE TEE;Lo;0;L;;;;;N;;;;; -1275;ETHIOPIC SYLLABLE TE;Lo;0;L;;;;;N;;;;; -1276;ETHIOPIC SYLLABLE TO;Lo;0;L;;;;;N;;;;; -1277;ETHIOPIC SYLLABLE TWA;Lo;0;L;;;;;N;;;;; -1278;ETHIOPIC SYLLABLE CA;Lo;0;L;;;;;N;;;;; -1279;ETHIOPIC SYLLABLE CU;Lo;0;L;;;;;N;;;;; -127A;ETHIOPIC SYLLABLE CI;Lo;0;L;;;;;N;;;;; -127B;ETHIOPIC SYLLABLE CAA;Lo;0;L;;;;;N;;;;; -127C;ETHIOPIC SYLLABLE CEE;Lo;0;L;;;;;N;;;;; -127D;ETHIOPIC SYLLABLE CE;Lo;0;L;;;;;N;;;;; -127E;ETHIOPIC SYLLABLE CO;Lo;0;L;;;;;N;;;;; -127F;ETHIOPIC SYLLABLE CWA;Lo;0;L;;;;;N;;;;; -1280;ETHIOPIC SYLLABLE XA;Lo;0;L;;;;;N;;;;; -1281;ETHIOPIC SYLLABLE XU;Lo;0;L;;;;;N;;;;; -1282;ETHIOPIC SYLLABLE XI;Lo;0;L;;;;;N;;;;; -1283;ETHIOPIC SYLLABLE XAA;Lo;0;L;;;;;N;;;;; -1284;ETHIOPIC SYLLABLE XEE;Lo;0;L;;;;;N;;;;; -1285;ETHIOPIC SYLLABLE XE;Lo;0;L;;;;;N;;;;; -1286;ETHIOPIC SYLLABLE XO;Lo;0;L;;;;;N;;;;; -1287;ETHIOPIC SYLLABLE XOA;Lo;0;L;;;;;N;;;;; -1288;ETHIOPIC SYLLABLE XWA;Lo;0;L;;;;;N;;;;; -128A;ETHIOPIC SYLLABLE XWI;Lo;0;L;;;;;N;;;;; -128B;ETHIOPIC SYLLABLE XWAA;Lo;0;L;;;;;N;;;;; -128C;ETHIOPIC SYLLABLE XWEE;Lo;0;L;;;;;N;;;;; -128D;ETHIOPIC SYLLABLE XWE;Lo;0;L;;;;;N;;;;; -1290;ETHIOPIC SYLLABLE NA;Lo;0;L;;;;;N;;;;; -1291;ETHIOPIC SYLLABLE NU;Lo;0;L;;;;;N;;;;; -1292;ETHIOPIC SYLLABLE NI;Lo;0;L;;;;;N;;;;; -1293;ETHIOPIC SYLLABLE NAA;Lo;0;L;;;;;N;;;;; -1294;ETHIOPIC SYLLABLE NEE;Lo;0;L;;;;;N;;;;; -1295;ETHIOPIC SYLLABLE NE;Lo;0;L;;;;;N;;;;; -1296;ETHIOPIC SYLLABLE NO;Lo;0;L;;;;;N;;;;; -1297;ETHIOPIC SYLLABLE NWA;Lo;0;L;;;;;N;;;;; -1298;ETHIOPIC SYLLABLE NYA;Lo;0;L;;;;;N;;;;; -1299;ETHIOPIC SYLLABLE NYU;Lo;0;L;;;;;N;;;;; -129A;ETHIOPIC SYLLABLE NYI;Lo;0;L;;;;;N;;;;; -129B;ETHIOPIC SYLLABLE NYAA;Lo;0;L;;;;;N;;;;; -129C;ETHIOPIC SYLLABLE NYEE;Lo;0;L;;;;;N;;;;; -129D;ETHIOPIC SYLLABLE NYE;Lo;0;L;;;;;N;;;;; -129E;ETHIOPIC SYLLABLE NYO;Lo;0;L;;;;;N;;;;; -129F;ETHIOPIC SYLLABLE NYWA;Lo;0;L;;;;;N;;;;; -12A0;ETHIOPIC SYLLABLE GLOTTAL A;Lo;0;L;;;;;N;;;;; -12A1;ETHIOPIC SYLLABLE GLOTTAL U;Lo;0;L;;;;;N;;;;; -12A2;ETHIOPIC SYLLABLE GLOTTAL I;Lo;0;L;;;;;N;;;;; -12A3;ETHIOPIC SYLLABLE GLOTTAL AA;Lo;0;L;;;;;N;;;;; -12A4;ETHIOPIC SYLLABLE GLOTTAL EE;Lo;0;L;;;;;N;;;;; -12A5;ETHIOPIC SYLLABLE GLOTTAL E;Lo;0;L;;;;;N;;;;; -12A6;ETHIOPIC SYLLABLE GLOTTAL O;Lo;0;L;;;;;N;;;;; -12A7;ETHIOPIC SYLLABLE GLOTTAL WA;Lo;0;L;;;;;N;;;;; -12A8;ETHIOPIC SYLLABLE KA;Lo;0;L;;;;;N;;;;; -12A9;ETHIOPIC SYLLABLE KU;Lo;0;L;;;;;N;;;;; -12AA;ETHIOPIC SYLLABLE KI;Lo;0;L;;;;;N;;;;; -12AB;ETHIOPIC SYLLABLE KAA;Lo;0;L;;;;;N;;;;; -12AC;ETHIOPIC SYLLABLE KEE;Lo;0;L;;;;;N;;;;; -12AD;ETHIOPIC SYLLABLE KE;Lo;0;L;;;;;N;;;;; -12AE;ETHIOPIC SYLLABLE KO;Lo;0;L;;;;;N;;;;; -12AF;ETHIOPIC SYLLABLE KOA;Lo;0;L;;;;;N;;;;; -12B0;ETHIOPIC SYLLABLE KWA;Lo;0;L;;;;;N;;;;; -12B2;ETHIOPIC SYLLABLE KWI;Lo;0;L;;;;;N;;;;; -12B3;ETHIOPIC SYLLABLE KWAA;Lo;0;L;;;;;N;;;;; -12B4;ETHIOPIC SYLLABLE KWEE;Lo;0;L;;;;;N;;;;; -12B5;ETHIOPIC SYLLABLE KWE;Lo;0;L;;;;;N;;;;; -12B8;ETHIOPIC SYLLABLE KXA;Lo;0;L;;;;;N;;;;; -12B9;ETHIOPIC SYLLABLE KXU;Lo;0;L;;;;;N;;;;; -12BA;ETHIOPIC SYLLABLE KXI;Lo;0;L;;;;;N;;;;; -12BB;ETHIOPIC SYLLABLE KXAA;Lo;0;L;;;;;N;;;;; -12BC;ETHIOPIC SYLLABLE KXEE;Lo;0;L;;;;;N;;;;; -12BD;ETHIOPIC SYLLABLE KXE;Lo;0;L;;;;;N;;;;; -12BE;ETHIOPIC SYLLABLE KXO;Lo;0;L;;;;;N;;;;; -12C0;ETHIOPIC SYLLABLE KXWA;Lo;0;L;;;;;N;;;;; -12C2;ETHIOPIC SYLLABLE KXWI;Lo;0;L;;;;;N;;;;; -12C3;ETHIOPIC SYLLABLE KXWAA;Lo;0;L;;;;;N;;;;; -12C4;ETHIOPIC SYLLABLE KXWEE;Lo;0;L;;;;;N;;;;; -12C5;ETHIOPIC SYLLABLE KXWE;Lo;0;L;;;;;N;;;;; -12C8;ETHIOPIC SYLLABLE WA;Lo;0;L;;;;;N;;;;; -12C9;ETHIOPIC SYLLABLE WU;Lo;0;L;;;;;N;;;;; -12CA;ETHIOPIC SYLLABLE WI;Lo;0;L;;;;;N;;;;; -12CB;ETHIOPIC SYLLABLE WAA;Lo;0;L;;;;;N;;;;; -12CC;ETHIOPIC SYLLABLE WEE;Lo;0;L;;;;;N;;;;; -12CD;ETHIOPIC SYLLABLE WE;Lo;0;L;;;;;N;;;;; -12CE;ETHIOPIC SYLLABLE WO;Lo;0;L;;;;;N;;;;; -12CF;ETHIOPIC SYLLABLE WOA;Lo;0;L;;;;;N;;;;; -12D0;ETHIOPIC SYLLABLE PHARYNGEAL A;Lo;0;L;;;;;N;;;;; -12D1;ETHIOPIC SYLLABLE PHARYNGEAL U;Lo;0;L;;;;;N;;;;; -12D2;ETHIOPIC SYLLABLE PHARYNGEAL I;Lo;0;L;;;;;N;;;;; -12D3;ETHIOPIC SYLLABLE PHARYNGEAL AA;Lo;0;L;;;;;N;;;;; -12D4;ETHIOPIC SYLLABLE PHARYNGEAL EE;Lo;0;L;;;;;N;;;;; -12D5;ETHIOPIC SYLLABLE PHARYNGEAL E;Lo;0;L;;;;;N;;;;; -12D6;ETHIOPIC SYLLABLE PHARYNGEAL O;Lo;0;L;;;;;N;;;;; -12D8;ETHIOPIC SYLLABLE ZA;Lo;0;L;;;;;N;;;;; -12D9;ETHIOPIC SYLLABLE ZU;Lo;0;L;;;;;N;;;;; -12DA;ETHIOPIC SYLLABLE ZI;Lo;0;L;;;;;N;;;;; -12DB;ETHIOPIC SYLLABLE ZAA;Lo;0;L;;;;;N;;;;; -12DC;ETHIOPIC SYLLABLE ZEE;Lo;0;L;;;;;N;;;;; -12DD;ETHIOPIC SYLLABLE ZE;Lo;0;L;;;;;N;;;;; -12DE;ETHIOPIC SYLLABLE ZO;Lo;0;L;;;;;N;;;;; -12DF;ETHIOPIC SYLLABLE ZWA;Lo;0;L;;;;;N;;;;; -12E0;ETHIOPIC SYLLABLE ZHA;Lo;0;L;;;;;N;;;;; -12E1;ETHIOPIC SYLLABLE ZHU;Lo;0;L;;;;;N;;;;; -12E2;ETHIOPIC SYLLABLE ZHI;Lo;0;L;;;;;N;;;;; -12E3;ETHIOPIC SYLLABLE ZHAA;Lo;0;L;;;;;N;;;;; -12E4;ETHIOPIC SYLLABLE ZHEE;Lo;0;L;;;;;N;;;;; -12E5;ETHIOPIC SYLLABLE ZHE;Lo;0;L;;;;;N;;;;; -12E6;ETHIOPIC SYLLABLE ZHO;Lo;0;L;;;;;N;;;;; -12E7;ETHIOPIC SYLLABLE ZHWA;Lo;0;L;;;;;N;;;;; -12E8;ETHIOPIC SYLLABLE YA;Lo;0;L;;;;;N;;;;; -12E9;ETHIOPIC SYLLABLE YU;Lo;0;L;;;;;N;;;;; -12EA;ETHIOPIC SYLLABLE YI;Lo;0;L;;;;;N;;;;; -12EB;ETHIOPIC SYLLABLE YAA;Lo;0;L;;;;;N;;;;; -12EC;ETHIOPIC SYLLABLE YEE;Lo;0;L;;;;;N;;;;; -12ED;ETHIOPIC SYLLABLE YE;Lo;0;L;;;;;N;;;;; -12EE;ETHIOPIC SYLLABLE YO;Lo;0;L;;;;;N;;;;; -12EF;ETHIOPIC SYLLABLE YOA;Lo;0;L;;;;;N;;;;; -12F0;ETHIOPIC SYLLABLE DA;Lo;0;L;;;;;N;;;;; -12F1;ETHIOPIC SYLLABLE DU;Lo;0;L;;;;;N;;;;; -12F2;ETHIOPIC SYLLABLE DI;Lo;0;L;;;;;N;;;;; -12F3;ETHIOPIC SYLLABLE DAA;Lo;0;L;;;;;N;;;;; -12F4;ETHIOPIC SYLLABLE DEE;Lo;0;L;;;;;N;;;;; -12F5;ETHIOPIC SYLLABLE DE;Lo;0;L;;;;;N;;;;; -12F6;ETHIOPIC SYLLABLE DO;Lo;0;L;;;;;N;;;;; -12F7;ETHIOPIC SYLLABLE DWA;Lo;0;L;;;;;N;;;;; -12F8;ETHIOPIC SYLLABLE DDA;Lo;0;L;;;;;N;;;;; -12F9;ETHIOPIC SYLLABLE DDU;Lo;0;L;;;;;N;;;;; -12FA;ETHIOPIC SYLLABLE DDI;Lo;0;L;;;;;N;;;;; -12FB;ETHIOPIC SYLLABLE DDAA;Lo;0;L;;;;;N;;;;; -12FC;ETHIOPIC SYLLABLE DDEE;Lo;0;L;;;;;N;;;;; -12FD;ETHIOPIC SYLLABLE DDE;Lo;0;L;;;;;N;;;;; -12FE;ETHIOPIC SYLLABLE DDO;Lo;0;L;;;;;N;;;;; -12FF;ETHIOPIC SYLLABLE DDWA;Lo;0;L;;;;;N;;;;; -1300;ETHIOPIC SYLLABLE JA;Lo;0;L;;;;;N;;;;; -1301;ETHIOPIC SYLLABLE JU;Lo;0;L;;;;;N;;;;; -1302;ETHIOPIC SYLLABLE JI;Lo;0;L;;;;;N;;;;; -1303;ETHIOPIC SYLLABLE JAA;Lo;0;L;;;;;N;;;;; -1304;ETHIOPIC SYLLABLE JEE;Lo;0;L;;;;;N;;;;; -1305;ETHIOPIC SYLLABLE JE;Lo;0;L;;;;;N;;;;; -1306;ETHIOPIC SYLLABLE JO;Lo;0;L;;;;;N;;;;; -1307;ETHIOPIC SYLLABLE JWA;Lo;0;L;;;;;N;;;;; -1308;ETHIOPIC SYLLABLE GA;Lo;0;L;;;;;N;;;;; -1309;ETHIOPIC SYLLABLE GU;Lo;0;L;;;;;N;;;;; -130A;ETHIOPIC SYLLABLE GI;Lo;0;L;;;;;N;;;;; -130B;ETHIOPIC SYLLABLE GAA;Lo;0;L;;;;;N;;;;; -130C;ETHIOPIC SYLLABLE GEE;Lo;0;L;;;;;N;;;;; -130D;ETHIOPIC SYLLABLE GE;Lo;0;L;;;;;N;;;;; -130E;ETHIOPIC SYLLABLE GO;Lo;0;L;;;;;N;;;;; -130F;ETHIOPIC SYLLABLE GOA;Lo;0;L;;;;;N;;;;; -1310;ETHIOPIC SYLLABLE GWA;Lo;0;L;;;;;N;;;;; -1312;ETHIOPIC SYLLABLE GWI;Lo;0;L;;;;;N;;;;; -1313;ETHIOPIC SYLLABLE GWAA;Lo;0;L;;;;;N;;;;; -1314;ETHIOPIC SYLLABLE GWEE;Lo;0;L;;;;;N;;;;; -1315;ETHIOPIC SYLLABLE GWE;Lo;0;L;;;;;N;;;;; -1318;ETHIOPIC SYLLABLE GGA;Lo;0;L;;;;;N;;;;; -1319;ETHIOPIC SYLLABLE GGU;Lo;0;L;;;;;N;;;;; -131A;ETHIOPIC SYLLABLE GGI;Lo;0;L;;;;;N;;;;; -131B;ETHIOPIC SYLLABLE GGAA;Lo;0;L;;;;;N;;;;; -131C;ETHIOPIC SYLLABLE GGEE;Lo;0;L;;;;;N;;;;; -131D;ETHIOPIC SYLLABLE GGE;Lo;0;L;;;;;N;;;;; -131E;ETHIOPIC SYLLABLE GGO;Lo;0;L;;;;;N;;;;; -131F;ETHIOPIC SYLLABLE GGWAA;Lo;0;L;;;;;N;;;;; -1320;ETHIOPIC SYLLABLE THA;Lo;0;L;;;;;N;;;;; -1321;ETHIOPIC SYLLABLE THU;Lo;0;L;;;;;N;;;;; -1322;ETHIOPIC SYLLABLE THI;Lo;0;L;;;;;N;;;;; -1323;ETHIOPIC SYLLABLE THAA;Lo;0;L;;;;;N;;;;; -1324;ETHIOPIC SYLLABLE THEE;Lo;0;L;;;;;N;;;;; -1325;ETHIOPIC SYLLABLE THE;Lo;0;L;;;;;N;;;;; -1326;ETHIOPIC SYLLABLE THO;Lo;0;L;;;;;N;;;;; -1327;ETHIOPIC SYLLABLE THWA;Lo;0;L;;;;;N;;;;; -1328;ETHIOPIC SYLLABLE CHA;Lo;0;L;;;;;N;;;;; -1329;ETHIOPIC SYLLABLE CHU;Lo;0;L;;;;;N;;;;; -132A;ETHIOPIC SYLLABLE CHI;Lo;0;L;;;;;N;;;;; -132B;ETHIOPIC SYLLABLE CHAA;Lo;0;L;;;;;N;;;;; -132C;ETHIOPIC SYLLABLE CHEE;Lo;0;L;;;;;N;;;;; -132D;ETHIOPIC SYLLABLE CHE;Lo;0;L;;;;;N;;;;; -132E;ETHIOPIC SYLLABLE CHO;Lo;0;L;;;;;N;;;;; -132F;ETHIOPIC SYLLABLE CHWA;Lo;0;L;;;;;N;;;;; -1330;ETHIOPIC SYLLABLE PHA;Lo;0;L;;;;;N;;;;; -1331;ETHIOPIC SYLLABLE PHU;Lo;0;L;;;;;N;;;;; -1332;ETHIOPIC SYLLABLE PHI;Lo;0;L;;;;;N;;;;; -1333;ETHIOPIC SYLLABLE PHAA;Lo;0;L;;;;;N;;;;; -1334;ETHIOPIC SYLLABLE PHEE;Lo;0;L;;;;;N;;;;; -1335;ETHIOPIC SYLLABLE PHE;Lo;0;L;;;;;N;;;;; -1336;ETHIOPIC SYLLABLE PHO;Lo;0;L;;;;;N;;;;; -1337;ETHIOPIC SYLLABLE PHWA;Lo;0;L;;;;;N;;;;; -1338;ETHIOPIC SYLLABLE TSA;Lo;0;L;;;;;N;;;;; -1339;ETHIOPIC SYLLABLE TSU;Lo;0;L;;;;;N;;;;; -133A;ETHIOPIC SYLLABLE TSI;Lo;0;L;;;;;N;;;;; -133B;ETHIOPIC SYLLABLE TSAA;Lo;0;L;;;;;N;;;;; -133C;ETHIOPIC SYLLABLE TSEE;Lo;0;L;;;;;N;;;;; -133D;ETHIOPIC SYLLABLE TSE;Lo;0;L;;;;;N;;;;; -133E;ETHIOPIC SYLLABLE TSO;Lo;0;L;;;;;N;;;;; -133F;ETHIOPIC SYLLABLE TSWA;Lo;0;L;;;;;N;;;;; -1340;ETHIOPIC SYLLABLE TZA;Lo;0;L;;;;;N;;;;; -1341;ETHIOPIC SYLLABLE TZU;Lo;0;L;;;;;N;;;;; -1342;ETHIOPIC SYLLABLE TZI;Lo;0;L;;;;;N;;;;; -1343;ETHIOPIC SYLLABLE TZAA;Lo;0;L;;;;;N;;;;; -1344;ETHIOPIC SYLLABLE TZEE;Lo;0;L;;;;;N;;;;; -1345;ETHIOPIC SYLLABLE TZE;Lo;0;L;;;;;N;;;;; -1346;ETHIOPIC SYLLABLE TZO;Lo;0;L;;;;;N;;;;; -1347;ETHIOPIC SYLLABLE TZOA;Lo;0;L;;;;;N;;;;; -1348;ETHIOPIC SYLLABLE FA;Lo;0;L;;;;;N;;;;; -1349;ETHIOPIC SYLLABLE FU;Lo;0;L;;;;;N;;;;; -134A;ETHIOPIC SYLLABLE FI;Lo;0;L;;;;;N;;;;; -134B;ETHIOPIC SYLLABLE FAA;Lo;0;L;;;;;N;;;;; -134C;ETHIOPIC SYLLABLE FEE;Lo;0;L;;;;;N;;;;; -134D;ETHIOPIC SYLLABLE FE;Lo;0;L;;;;;N;;;;; -134E;ETHIOPIC SYLLABLE FO;Lo;0;L;;;;;N;;;;; -134F;ETHIOPIC SYLLABLE FWA;Lo;0;L;;;;;N;;;;; -1350;ETHIOPIC SYLLABLE PA;Lo;0;L;;;;;N;;;;; -1351;ETHIOPIC SYLLABLE PU;Lo;0;L;;;;;N;;;;; -1352;ETHIOPIC SYLLABLE PI;Lo;0;L;;;;;N;;;;; -1353;ETHIOPIC SYLLABLE PAA;Lo;0;L;;;;;N;;;;; -1354;ETHIOPIC SYLLABLE PEE;Lo;0;L;;;;;N;;;;; -1355;ETHIOPIC SYLLABLE PE;Lo;0;L;;;;;N;;;;; -1356;ETHIOPIC SYLLABLE PO;Lo;0;L;;;;;N;;;;; -1357;ETHIOPIC SYLLABLE PWA;Lo;0;L;;;;;N;;;;; -1358;ETHIOPIC SYLLABLE RYA;Lo;0;L;;;;;N;;;;; -1359;ETHIOPIC SYLLABLE MYA;Lo;0;L;;;;;N;;;;; -135A;ETHIOPIC SYLLABLE FYA;Lo;0;L;;;;;N;;;;; -135F;ETHIOPIC COMBINING GEMINATION MARK;Mn;230;NSM;;;;;N;;;;; -1360;ETHIOPIC SECTION MARK;So;0;L;;;;;N;;;;; -1361;ETHIOPIC WORDSPACE;Po;0;L;;;;;N;;;;; -1362;ETHIOPIC FULL STOP;Po;0;L;;;;;N;;;;; -1363;ETHIOPIC COMMA;Po;0;L;;;;;N;;;;; -1364;ETHIOPIC SEMICOLON;Po;0;L;;;;;N;;;;; -1365;ETHIOPIC COLON;Po;0;L;;;;;N;;;;; -1366;ETHIOPIC PREFACE COLON;Po;0;L;;;;;N;;;;; -1367;ETHIOPIC QUESTION MARK;Po;0;L;;;;;N;;;;; -1368;ETHIOPIC PARAGRAPH SEPARATOR;Po;0;L;;;;;N;;;;; -1369;ETHIOPIC DIGIT ONE;No;0;L;;;1;1;N;;;;; -136A;ETHIOPIC DIGIT TWO;No;0;L;;;2;2;N;;;;; -136B;ETHIOPIC DIGIT THREE;No;0;L;;;3;3;N;;;;; -136C;ETHIOPIC DIGIT FOUR;No;0;L;;;4;4;N;;;;; -136D;ETHIOPIC DIGIT FIVE;No;0;L;;;5;5;N;;;;; -136E;ETHIOPIC DIGIT SIX;No;0;L;;;6;6;N;;;;; -136F;ETHIOPIC DIGIT SEVEN;No;0;L;;;7;7;N;;;;; -1370;ETHIOPIC DIGIT EIGHT;No;0;L;;;8;8;N;;;;; -1371;ETHIOPIC DIGIT NINE;No;0;L;;;9;9;N;;;;; -1372;ETHIOPIC NUMBER TEN;No;0;L;;;;10;N;;;;; -1373;ETHIOPIC NUMBER TWENTY;No;0;L;;;;20;N;;;;; -1374;ETHIOPIC NUMBER THIRTY;No;0;L;;;;30;N;;;;; -1375;ETHIOPIC NUMBER FORTY;No;0;L;;;;40;N;;;;; -1376;ETHIOPIC NUMBER FIFTY;No;0;L;;;;50;N;;;;; -1377;ETHIOPIC NUMBER SIXTY;No;0;L;;;;60;N;;;;; -1378;ETHIOPIC NUMBER SEVENTY;No;0;L;;;;70;N;;;;; -1379;ETHIOPIC NUMBER EIGHTY;No;0;L;;;;80;N;;;;; -137A;ETHIOPIC NUMBER NINETY;No;0;L;;;;90;N;;;;; -137B;ETHIOPIC NUMBER HUNDRED;No;0;L;;;;100;N;;;;; -137C;ETHIOPIC NUMBER TEN THOUSAND;No;0;L;;;;10000;N;;;;; -1380;ETHIOPIC SYLLABLE SEBATBEIT MWA;Lo;0;L;;;;;N;;;;; -1381;ETHIOPIC SYLLABLE MWI;Lo;0;L;;;;;N;;;;; -1382;ETHIOPIC SYLLABLE MWEE;Lo;0;L;;;;;N;;;;; -1383;ETHIOPIC SYLLABLE MWE;Lo;0;L;;;;;N;;;;; -1384;ETHIOPIC SYLLABLE SEBATBEIT BWA;Lo;0;L;;;;;N;;;;; -1385;ETHIOPIC SYLLABLE BWI;Lo;0;L;;;;;N;;;;; -1386;ETHIOPIC SYLLABLE BWEE;Lo;0;L;;;;;N;;;;; -1387;ETHIOPIC SYLLABLE BWE;Lo;0;L;;;;;N;;;;; -1388;ETHIOPIC SYLLABLE SEBATBEIT FWA;Lo;0;L;;;;;N;;;;; -1389;ETHIOPIC SYLLABLE FWI;Lo;0;L;;;;;N;;;;; -138A;ETHIOPIC SYLLABLE FWEE;Lo;0;L;;;;;N;;;;; -138B;ETHIOPIC SYLLABLE FWE;Lo;0;L;;;;;N;;;;; -138C;ETHIOPIC SYLLABLE SEBATBEIT PWA;Lo;0;L;;;;;N;;;;; -138D;ETHIOPIC SYLLABLE PWI;Lo;0;L;;;;;N;;;;; -138E;ETHIOPIC SYLLABLE PWEE;Lo;0;L;;;;;N;;;;; -138F;ETHIOPIC SYLLABLE PWE;Lo;0;L;;;;;N;;;;; -1390;ETHIOPIC TONAL MARK YIZET;So;0;ON;;;;;N;;;;; -1391;ETHIOPIC TONAL MARK DERET;So;0;ON;;;;;N;;;;; -1392;ETHIOPIC TONAL MARK RIKRIK;So;0;ON;;;;;N;;;;; -1393;ETHIOPIC TONAL MARK SHORT RIKRIK;So;0;ON;;;;;N;;;;; -1394;ETHIOPIC TONAL MARK DIFAT;So;0;ON;;;;;N;;;;; -1395;ETHIOPIC TONAL MARK KENAT;So;0;ON;;;;;N;;;;; -1396;ETHIOPIC TONAL MARK CHIRET;So;0;ON;;;;;N;;;;; -1397;ETHIOPIC TONAL MARK HIDET;So;0;ON;;;;;N;;;;; -1398;ETHIOPIC TONAL MARK DERET-HIDET;So;0;ON;;;;;N;;;;; -1399;ETHIOPIC TONAL MARK KURT;So;0;ON;;;;;N;;;;; -13A0;CHEROKEE LETTER A;Lo;0;L;;;;;N;;;;; -13A1;CHEROKEE LETTER E;Lo;0;L;;;;;N;;;;; -13A2;CHEROKEE LETTER I;Lo;0;L;;;;;N;;;;; -13A3;CHEROKEE LETTER O;Lo;0;L;;;;;N;;;;; -13A4;CHEROKEE LETTER U;Lo;0;L;;;;;N;;;;; -13A5;CHEROKEE LETTER V;Lo;0;L;;;;;N;;;;; -13A6;CHEROKEE LETTER GA;Lo;0;L;;;;;N;;;;; -13A7;CHEROKEE LETTER KA;Lo;0;L;;;;;N;;;;; -13A8;CHEROKEE LETTER GE;Lo;0;L;;;;;N;;;;; -13A9;CHEROKEE LETTER GI;Lo;0;L;;;;;N;;;;; -13AA;CHEROKEE LETTER GO;Lo;0;L;;;;;N;;;;; -13AB;CHEROKEE LETTER GU;Lo;0;L;;;;;N;;;;; -13AC;CHEROKEE LETTER GV;Lo;0;L;;;;;N;;;;; -13AD;CHEROKEE LETTER HA;Lo;0;L;;;;;N;;;;; -13AE;CHEROKEE LETTER HE;Lo;0;L;;;;;N;;;;; -13AF;CHEROKEE LETTER HI;Lo;0;L;;;;;N;;;;; -13B0;CHEROKEE LETTER HO;Lo;0;L;;;;;N;;;;; -13B1;CHEROKEE LETTER HU;Lo;0;L;;;;;N;;;;; -13B2;CHEROKEE LETTER HV;Lo;0;L;;;;;N;;;;; -13B3;CHEROKEE LETTER LA;Lo;0;L;;;;;N;;;;; -13B4;CHEROKEE LETTER LE;Lo;0;L;;;;;N;;;;; -13B5;CHEROKEE LETTER LI;Lo;0;L;;;;;N;;;;; -13B6;CHEROKEE LETTER LO;Lo;0;L;;;;;N;;;;; -13B7;CHEROKEE LETTER LU;Lo;0;L;;;;;N;;;;; -13B8;CHEROKEE LETTER LV;Lo;0;L;;;;;N;;;;; -13B9;CHEROKEE LETTER MA;Lo;0;L;;;;;N;;;;; -13BA;CHEROKEE LETTER ME;Lo;0;L;;;;;N;;;;; -13BB;CHEROKEE LETTER MI;Lo;0;L;;;;;N;;;;; -13BC;CHEROKEE LETTER MO;Lo;0;L;;;;;N;;;;; -13BD;CHEROKEE LETTER MU;Lo;0;L;;;;;N;;;;; -13BE;CHEROKEE LETTER NA;Lo;0;L;;;;;N;;;;; -13BF;CHEROKEE LETTER HNA;Lo;0;L;;;;;N;;;;; -13C0;CHEROKEE LETTER NAH;Lo;0;L;;;;;N;;;;; -13C1;CHEROKEE LETTER NE;Lo;0;L;;;;;N;;;;; -13C2;CHEROKEE LETTER NI;Lo;0;L;;;;;N;;;;; -13C3;CHEROKEE LETTER NO;Lo;0;L;;;;;N;;;;; -13C4;CHEROKEE LETTER NU;Lo;0;L;;;;;N;;;;; -13C5;CHEROKEE LETTER NV;Lo;0;L;;;;;N;;;;; -13C6;CHEROKEE LETTER QUA;Lo;0;L;;;;;N;;;;; -13C7;CHEROKEE LETTER QUE;Lo;0;L;;;;;N;;;;; -13C8;CHEROKEE LETTER QUI;Lo;0;L;;;;;N;;;;; -13C9;CHEROKEE LETTER QUO;Lo;0;L;;;;;N;;;;; -13CA;CHEROKEE LETTER QUU;Lo;0;L;;;;;N;;;;; -13CB;CHEROKEE LETTER QUV;Lo;0;L;;;;;N;;;;; -13CC;CHEROKEE LETTER SA;Lo;0;L;;;;;N;;;;; -13CD;CHEROKEE LETTER S;Lo;0;L;;;;;N;;;;; -13CE;CHEROKEE LETTER SE;Lo;0;L;;;;;N;;;;; -13CF;CHEROKEE LETTER SI;Lo;0;L;;;;;N;;;;; -13D0;CHEROKEE LETTER SO;Lo;0;L;;;;;N;;;;; -13D1;CHEROKEE LETTER SU;Lo;0;L;;;;;N;;;;; -13D2;CHEROKEE LETTER SV;Lo;0;L;;;;;N;;;;; -13D3;CHEROKEE LETTER DA;Lo;0;L;;;;;N;;;;; -13D4;CHEROKEE LETTER TA;Lo;0;L;;;;;N;;;;; -13D5;CHEROKEE LETTER DE;Lo;0;L;;;;;N;;;;; -13D6;CHEROKEE LETTER TE;Lo;0;L;;;;;N;;;;; -13D7;CHEROKEE LETTER DI;Lo;0;L;;;;;N;;;;; -13D8;CHEROKEE LETTER TI;Lo;0;L;;;;;N;;;;; -13D9;CHEROKEE LETTER DO;Lo;0;L;;;;;N;;;;; -13DA;CHEROKEE LETTER DU;Lo;0;L;;;;;N;;;;; -13DB;CHEROKEE LETTER DV;Lo;0;L;;;;;N;;;;; -13DC;CHEROKEE LETTER DLA;Lo;0;L;;;;;N;;;;; -13DD;CHEROKEE LETTER TLA;Lo;0;L;;;;;N;;;;; -13DE;CHEROKEE LETTER TLE;Lo;0;L;;;;;N;;;;; -13DF;CHEROKEE LETTER TLI;Lo;0;L;;;;;N;;;;; -13E0;CHEROKEE LETTER TLO;Lo;0;L;;;;;N;;;;; -13E1;CHEROKEE LETTER TLU;Lo;0;L;;;;;N;;;;; -13E2;CHEROKEE LETTER TLV;Lo;0;L;;;;;N;;;;; -13E3;CHEROKEE LETTER TSA;Lo;0;L;;;;;N;;;;; -13E4;CHEROKEE LETTER TSE;Lo;0;L;;;;;N;;;;; -13E5;CHEROKEE LETTER TSI;Lo;0;L;;;;;N;;;;; -13E6;CHEROKEE LETTER TSO;Lo;0;L;;;;;N;;;;; -13E7;CHEROKEE LETTER TSU;Lo;0;L;;;;;N;;;;; -13E8;CHEROKEE LETTER TSV;Lo;0;L;;;;;N;;;;; -13E9;CHEROKEE LETTER WA;Lo;0;L;;;;;N;;;;; -13EA;CHEROKEE LETTER WE;Lo;0;L;;;;;N;;;;; -13EB;CHEROKEE LETTER WI;Lo;0;L;;;;;N;;;;; -13EC;CHEROKEE LETTER WO;Lo;0;L;;;;;N;;;;; -13ED;CHEROKEE LETTER WU;Lo;0;L;;;;;N;;;;; -13EE;CHEROKEE LETTER WV;Lo;0;L;;;;;N;;;;; -13EF;CHEROKEE LETTER YA;Lo;0;L;;;;;N;;;;; -13F0;CHEROKEE LETTER YE;Lo;0;L;;;;;N;;;;; -13F1;CHEROKEE LETTER YI;Lo;0;L;;;;;N;;;;; -13F2;CHEROKEE LETTER YO;Lo;0;L;;;;;N;;;;; -13F3;CHEROKEE LETTER YU;Lo;0;L;;;;;N;;;;; -13F4;CHEROKEE LETTER YV;Lo;0;L;;;;;N;;;;; -1400;CANADIAN SYLLABICS HYPHEN;Pd;0;ON;;;;;N;;;;; -1401;CANADIAN SYLLABICS E;Lo;0;L;;;;;N;;;;; -1402;CANADIAN SYLLABICS AAI;Lo;0;L;;;;;N;;;;; -1403;CANADIAN SYLLABICS I;Lo;0;L;;;;;N;;;;; -1404;CANADIAN SYLLABICS II;Lo;0;L;;;;;N;;;;; -1405;CANADIAN SYLLABICS O;Lo;0;L;;;;;N;;;;; -1406;CANADIAN SYLLABICS OO;Lo;0;L;;;;;N;;;;; -1407;CANADIAN SYLLABICS Y-CREE OO;Lo;0;L;;;;;N;;;;; -1408;CANADIAN SYLLABICS CARRIER EE;Lo;0;L;;;;;N;;;;; -1409;CANADIAN SYLLABICS CARRIER I;Lo;0;L;;;;;N;;;;; -140A;CANADIAN SYLLABICS A;Lo;0;L;;;;;N;;;;; -140B;CANADIAN SYLLABICS AA;Lo;0;L;;;;;N;;;;; -140C;CANADIAN SYLLABICS WE;Lo;0;L;;;;;N;;;;; -140D;CANADIAN SYLLABICS WEST-CREE WE;Lo;0;L;;;;;N;;;;; -140E;CANADIAN SYLLABICS WI;Lo;0;L;;;;;N;;;;; -140F;CANADIAN SYLLABICS WEST-CREE WI;Lo;0;L;;;;;N;;;;; -1410;CANADIAN SYLLABICS WII;Lo;0;L;;;;;N;;;;; -1411;CANADIAN SYLLABICS WEST-CREE WII;Lo;0;L;;;;;N;;;;; -1412;CANADIAN SYLLABICS WO;Lo;0;L;;;;;N;;;;; -1413;CANADIAN SYLLABICS WEST-CREE WO;Lo;0;L;;;;;N;;;;; -1414;CANADIAN SYLLABICS WOO;Lo;0;L;;;;;N;;;;; -1415;CANADIAN SYLLABICS WEST-CREE WOO;Lo;0;L;;;;;N;;;;; -1416;CANADIAN SYLLABICS NASKAPI WOO;Lo;0;L;;;;;N;;;;; -1417;CANADIAN SYLLABICS WA;Lo;0;L;;;;;N;;;;; -1418;CANADIAN SYLLABICS WEST-CREE WA;Lo;0;L;;;;;N;;;;; -1419;CANADIAN SYLLABICS WAA;Lo;0;L;;;;;N;;;;; -141A;CANADIAN SYLLABICS WEST-CREE WAA;Lo;0;L;;;;;N;;;;; -141B;CANADIAN SYLLABICS NASKAPI WAA;Lo;0;L;;;;;N;;;;; -141C;CANADIAN SYLLABICS AI;Lo;0;L;;;;;N;;;;; -141D;CANADIAN SYLLABICS Y-CREE W;Lo;0;L;;;;;N;;;;; -141E;CANADIAN SYLLABICS GLOTTAL STOP;Lo;0;L;;;;;N;;;;; -141F;CANADIAN SYLLABICS FINAL ACUTE;Lo;0;L;;;;;N;;;;; -1420;CANADIAN SYLLABICS FINAL GRAVE;Lo;0;L;;;;;N;;;;; -1421;CANADIAN SYLLABICS FINAL BOTTOM HALF RING;Lo;0;L;;;;;N;;;;; -1422;CANADIAN SYLLABICS FINAL TOP HALF RING;Lo;0;L;;;;;N;;;;; -1423;CANADIAN SYLLABICS FINAL RIGHT HALF RING;Lo;0;L;;;;;N;;;;; -1424;CANADIAN SYLLABICS FINAL RING;Lo;0;L;;;;;N;;;;; -1425;CANADIAN SYLLABICS FINAL DOUBLE ACUTE;Lo;0;L;;;;;N;;;;; -1426;CANADIAN SYLLABICS FINAL DOUBLE SHORT VERTICAL STROKES;Lo;0;L;;;;;N;;;;; -1427;CANADIAN SYLLABICS FINAL MIDDLE DOT;Lo;0;L;;;;;N;;;;; -1428;CANADIAN SYLLABICS FINAL SHORT HORIZONTAL STROKE;Lo;0;L;;;;;N;;;;; -1429;CANADIAN SYLLABICS FINAL PLUS;Lo;0;L;;;;;N;;;;; -142A;CANADIAN SYLLABICS FINAL DOWN TACK;Lo;0;L;;;;;N;;;;; -142B;CANADIAN SYLLABICS EN;Lo;0;L;;;;;N;;;;; -142C;CANADIAN SYLLABICS IN;Lo;0;L;;;;;N;;;;; -142D;CANADIAN SYLLABICS ON;Lo;0;L;;;;;N;;;;; -142E;CANADIAN SYLLABICS AN;Lo;0;L;;;;;N;;;;; -142F;CANADIAN SYLLABICS PE;Lo;0;L;;;;;N;;;;; -1430;CANADIAN SYLLABICS PAAI;Lo;0;L;;;;;N;;;;; -1431;CANADIAN SYLLABICS PI;Lo;0;L;;;;;N;;;;; -1432;CANADIAN SYLLABICS PII;Lo;0;L;;;;;N;;;;; -1433;CANADIAN SYLLABICS PO;Lo;0;L;;;;;N;;;;; -1434;CANADIAN SYLLABICS POO;Lo;0;L;;;;;N;;;;; -1435;CANADIAN SYLLABICS Y-CREE POO;Lo;0;L;;;;;N;;;;; -1436;CANADIAN SYLLABICS CARRIER HEE;Lo;0;L;;;;;N;;;;; -1437;CANADIAN SYLLABICS CARRIER HI;Lo;0;L;;;;;N;;;;; -1438;CANADIAN SYLLABICS PA;Lo;0;L;;;;;N;;;;; -1439;CANADIAN SYLLABICS PAA;Lo;0;L;;;;;N;;;;; -143A;CANADIAN SYLLABICS PWE;Lo;0;L;;;;;N;;;;; -143B;CANADIAN SYLLABICS WEST-CREE PWE;Lo;0;L;;;;;N;;;;; -143C;CANADIAN SYLLABICS PWI;Lo;0;L;;;;;N;;;;; -143D;CANADIAN SYLLABICS WEST-CREE PWI;Lo;0;L;;;;;N;;;;; -143E;CANADIAN SYLLABICS PWII;Lo;0;L;;;;;N;;;;; -143F;CANADIAN SYLLABICS WEST-CREE PWII;Lo;0;L;;;;;N;;;;; -1440;CANADIAN SYLLABICS PWO;Lo;0;L;;;;;N;;;;; -1441;CANADIAN SYLLABICS WEST-CREE PWO;Lo;0;L;;;;;N;;;;; -1442;CANADIAN SYLLABICS PWOO;Lo;0;L;;;;;N;;;;; -1443;CANADIAN SYLLABICS WEST-CREE PWOO;Lo;0;L;;;;;N;;;;; -1444;CANADIAN SYLLABICS PWA;Lo;0;L;;;;;N;;;;; -1445;CANADIAN SYLLABICS WEST-CREE PWA;Lo;0;L;;;;;N;;;;; -1446;CANADIAN SYLLABICS PWAA;Lo;0;L;;;;;N;;;;; -1447;CANADIAN SYLLABICS WEST-CREE PWAA;Lo;0;L;;;;;N;;;;; -1448;CANADIAN SYLLABICS Y-CREE PWAA;Lo;0;L;;;;;N;;;;; -1449;CANADIAN SYLLABICS P;Lo;0;L;;;;;N;;;;; -144A;CANADIAN SYLLABICS WEST-CREE P;Lo;0;L;;;;;N;;;;; -144B;CANADIAN SYLLABICS CARRIER H;Lo;0;L;;;;;N;;;;; -144C;CANADIAN SYLLABICS TE;Lo;0;L;;;;;N;;;;; -144D;CANADIAN SYLLABICS TAAI;Lo;0;L;;;;;N;;;;; -144E;CANADIAN SYLLABICS TI;Lo;0;L;;;;;N;;;;; -144F;CANADIAN SYLLABICS TII;Lo;0;L;;;;;N;;;;; -1450;CANADIAN SYLLABICS TO;Lo;0;L;;;;;N;;;;; -1451;CANADIAN SYLLABICS TOO;Lo;0;L;;;;;N;;;;; -1452;CANADIAN SYLLABICS Y-CREE TOO;Lo;0;L;;;;;N;;;;; -1453;CANADIAN SYLLABICS CARRIER DEE;Lo;0;L;;;;;N;;;;; -1454;CANADIAN SYLLABICS CARRIER DI;Lo;0;L;;;;;N;;;;; -1455;CANADIAN SYLLABICS TA;Lo;0;L;;;;;N;;;;; -1456;CANADIAN SYLLABICS TAA;Lo;0;L;;;;;N;;;;; -1457;CANADIAN SYLLABICS TWE;Lo;0;L;;;;;N;;;;; -1458;CANADIAN SYLLABICS WEST-CREE TWE;Lo;0;L;;;;;N;;;;; -1459;CANADIAN SYLLABICS TWI;Lo;0;L;;;;;N;;;;; -145A;CANADIAN SYLLABICS WEST-CREE TWI;Lo;0;L;;;;;N;;;;; -145B;CANADIAN SYLLABICS TWII;Lo;0;L;;;;;N;;;;; -145C;CANADIAN SYLLABICS WEST-CREE TWII;Lo;0;L;;;;;N;;;;; -145D;CANADIAN SYLLABICS TWO;Lo;0;L;;;;;N;;;;; -145E;CANADIAN SYLLABICS WEST-CREE TWO;Lo;0;L;;;;;N;;;;; -145F;CANADIAN SYLLABICS TWOO;Lo;0;L;;;;;N;;;;; -1460;CANADIAN SYLLABICS WEST-CREE TWOO;Lo;0;L;;;;;N;;;;; -1461;CANADIAN SYLLABICS TWA;Lo;0;L;;;;;N;;;;; -1462;CANADIAN SYLLABICS WEST-CREE TWA;Lo;0;L;;;;;N;;;;; -1463;CANADIAN SYLLABICS TWAA;Lo;0;L;;;;;N;;;;; -1464;CANADIAN SYLLABICS WEST-CREE TWAA;Lo;0;L;;;;;N;;;;; -1465;CANADIAN SYLLABICS NASKAPI TWAA;Lo;0;L;;;;;N;;;;; -1466;CANADIAN SYLLABICS T;Lo;0;L;;;;;N;;;;; -1467;CANADIAN SYLLABICS TTE;Lo;0;L;;;;;N;;;;; -1468;CANADIAN SYLLABICS TTI;Lo;0;L;;;;;N;;;;; -1469;CANADIAN SYLLABICS TTO;Lo;0;L;;;;;N;;;;; -146A;CANADIAN SYLLABICS TTA;Lo;0;L;;;;;N;;;;; -146B;CANADIAN SYLLABICS KE;Lo;0;L;;;;;N;;;;; -146C;CANADIAN SYLLABICS KAAI;Lo;0;L;;;;;N;;;;; -146D;CANADIAN SYLLABICS KI;Lo;0;L;;;;;N;;;;; -146E;CANADIAN SYLLABICS KII;Lo;0;L;;;;;N;;;;; -146F;CANADIAN SYLLABICS KO;Lo;0;L;;;;;N;;;;; -1470;CANADIAN SYLLABICS KOO;Lo;0;L;;;;;N;;;;; -1471;CANADIAN SYLLABICS Y-CREE KOO;Lo;0;L;;;;;N;;;;; -1472;CANADIAN SYLLABICS KA;Lo;0;L;;;;;N;;;;; -1473;CANADIAN SYLLABICS KAA;Lo;0;L;;;;;N;;;;; -1474;CANADIAN SYLLABICS KWE;Lo;0;L;;;;;N;;;;; -1475;CANADIAN SYLLABICS WEST-CREE KWE;Lo;0;L;;;;;N;;;;; -1476;CANADIAN SYLLABICS KWI;Lo;0;L;;;;;N;;;;; -1477;CANADIAN SYLLABICS WEST-CREE KWI;Lo;0;L;;;;;N;;;;; -1478;CANADIAN SYLLABICS KWII;Lo;0;L;;;;;N;;;;; -1479;CANADIAN SYLLABICS WEST-CREE KWII;Lo;0;L;;;;;N;;;;; -147A;CANADIAN SYLLABICS KWO;Lo;0;L;;;;;N;;;;; -147B;CANADIAN SYLLABICS WEST-CREE KWO;Lo;0;L;;;;;N;;;;; -147C;CANADIAN SYLLABICS KWOO;Lo;0;L;;;;;N;;;;; -147D;CANADIAN SYLLABICS WEST-CREE KWOO;Lo;0;L;;;;;N;;;;; -147E;CANADIAN SYLLABICS KWA;Lo;0;L;;;;;N;;;;; -147F;CANADIAN SYLLABICS WEST-CREE KWA;Lo;0;L;;;;;N;;;;; -1480;CANADIAN SYLLABICS KWAA;Lo;0;L;;;;;N;;;;; -1481;CANADIAN SYLLABICS WEST-CREE KWAA;Lo;0;L;;;;;N;;;;; -1482;CANADIAN SYLLABICS NASKAPI KWAA;Lo;0;L;;;;;N;;;;; -1483;CANADIAN SYLLABICS K;Lo;0;L;;;;;N;;;;; -1484;CANADIAN SYLLABICS KW;Lo;0;L;;;;;N;;;;; -1485;CANADIAN SYLLABICS SOUTH-SLAVEY KEH;Lo;0;L;;;;;N;;;;; -1486;CANADIAN SYLLABICS SOUTH-SLAVEY KIH;Lo;0;L;;;;;N;;;;; -1487;CANADIAN SYLLABICS SOUTH-SLAVEY KOH;Lo;0;L;;;;;N;;;;; -1488;CANADIAN SYLLABICS SOUTH-SLAVEY KAH;Lo;0;L;;;;;N;;;;; -1489;CANADIAN SYLLABICS CE;Lo;0;L;;;;;N;;;;; -148A;CANADIAN SYLLABICS CAAI;Lo;0;L;;;;;N;;;;; -148B;CANADIAN SYLLABICS CI;Lo;0;L;;;;;N;;;;; -148C;CANADIAN SYLLABICS CII;Lo;0;L;;;;;N;;;;; -148D;CANADIAN SYLLABICS CO;Lo;0;L;;;;;N;;;;; -148E;CANADIAN SYLLABICS COO;Lo;0;L;;;;;N;;;;; -148F;CANADIAN SYLLABICS Y-CREE COO;Lo;0;L;;;;;N;;;;; -1490;CANADIAN SYLLABICS CA;Lo;0;L;;;;;N;;;;; -1491;CANADIAN SYLLABICS CAA;Lo;0;L;;;;;N;;;;; -1492;CANADIAN SYLLABICS CWE;Lo;0;L;;;;;N;;;;; -1493;CANADIAN SYLLABICS WEST-CREE CWE;Lo;0;L;;;;;N;;;;; -1494;CANADIAN SYLLABICS CWI;Lo;0;L;;;;;N;;;;; -1495;CANADIAN SYLLABICS WEST-CREE CWI;Lo;0;L;;;;;N;;;;; -1496;CANADIAN SYLLABICS CWII;Lo;0;L;;;;;N;;;;; -1497;CANADIAN SYLLABICS WEST-CREE CWII;Lo;0;L;;;;;N;;;;; -1498;CANADIAN SYLLABICS CWO;Lo;0;L;;;;;N;;;;; -1499;CANADIAN SYLLABICS WEST-CREE CWO;Lo;0;L;;;;;N;;;;; -149A;CANADIAN SYLLABICS CWOO;Lo;0;L;;;;;N;;;;; -149B;CANADIAN SYLLABICS WEST-CREE CWOO;Lo;0;L;;;;;N;;;;; -149C;CANADIAN SYLLABICS CWA;Lo;0;L;;;;;N;;;;; -149D;CANADIAN SYLLABICS WEST-CREE CWA;Lo;0;L;;;;;N;;;;; -149E;CANADIAN SYLLABICS CWAA;Lo;0;L;;;;;N;;;;; -149F;CANADIAN SYLLABICS WEST-CREE CWAA;Lo;0;L;;;;;N;;;;; -14A0;CANADIAN SYLLABICS NASKAPI CWAA;Lo;0;L;;;;;N;;;;; -14A1;CANADIAN SYLLABICS C;Lo;0;L;;;;;N;;;;; -14A2;CANADIAN SYLLABICS SAYISI TH;Lo;0;L;;;;;N;;;;; -14A3;CANADIAN SYLLABICS ME;Lo;0;L;;;;;N;;;;; -14A4;CANADIAN SYLLABICS MAAI;Lo;0;L;;;;;N;;;;; -14A5;CANADIAN SYLLABICS MI;Lo;0;L;;;;;N;;;;; -14A6;CANADIAN SYLLABICS MII;Lo;0;L;;;;;N;;;;; -14A7;CANADIAN SYLLABICS MO;Lo;0;L;;;;;N;;;;; -14A8;CANADIAN SYLLABICS MOO;Lo;0;L;;;;;N;;;;; -14A9;CANADIAN SYLLABICS Y-CREE MOO;Lo;0;L;;;;;N;;;;; -14AA;CANADIAN SYLLABICS MA;Lo;0;L;;;;;N;;;;; -14AB;CANADIAN SYLLABICS MAA;Lo;0;L;;;;;N;;;;; -14AC;CANADIAN SYLLABICS MWE;Lo;0;L;;;;;N;;;;; -14AD;CANADIAN SYLLABICS WEST-CREE MWE;Lo;0;L;;;;;N;;;;; -14AE;CANADIAN SYLLABICS MWI;Lo;0;L;;;;;N;;;;; -14AF;CANADIAN SYLLABICS WEST-CREE MWI;Lo;0;L;;;;;N;;;;; -14B0;CANADIAN SYLLABICS MWII;Lo;0;L;;;;;N;;;;; -14B1;CANADIAN SYLLABICS WEST-CREE MWII;Lo;0;L;;;;;N;;;;; -14B2;CANADIAN SYLLABICS MWO;Lo;0;L;;;;;N;;;;; -14B3;CANADIAN SYLLABICS WEST-CREE MWO;Lo;0;L;;;;;N;;;;; -14B4;CANADIAN SYLLABICS MWOO;Lo;0;L;;;;;N;;;;; -14B5;CANADIAN SYLLABICS WEST-CREE MWOO;Lo;0;L;;;;;N;;;;; -14B6;CANADIAN SYLLABICS MWA;Lo;0;L;;;;;N;;;;; -14B7;CANADIAN SYLLABICS WEST-CREE MWA;Lo;0;L;;;;;N;;;;; -14B8;CANADIAN SYLLABICS MWAA;Lo;0;L;;;;;N;;;;; -14B9;CANADIAN SYLLABICS WEST-CREE MWAA;Lo;0;L;;;;;N;;;;; -14BA;CANADIAN SYLLABICS NASKAPI MWAA;Lo;0;L;;;;;N;;;;; -14BB;CANADIAN SYLLABICS M;Lo;0;L;;;;;N;;;;; -14BC;CANADIAN SYLLABICS WEST-CREE M;Lo;0;L;;;;;N;;;;; -14BD;CANADIAN SYLLABICS MH;Lo;0;L;;;;;N;;;;; -14BE;CANADIAN SYLLABICS ATHAPASCAN M;Lo;0;L;;;;;N;;;;; -14BF;CANADIAN SYLLABICS SAYISI M;Lo;0;L;;;;;N;;;;; -14C0;CANADIAN SYLLABICS NE;Lo;0;L;;;;;N;;;;; -14C1;CANADIAN SYLLABICS NAAI;Lo;0;L;;;;;N;;;;; -14C2;CANADIAN SYLLABICS NI;Lo;0;L;;;;;N;;;;; -14C3;CANADIAN SYLLABICS NII;Lo;0;L;;;;;N;;;;; -14C4;CANADIAN SYLLABICS NO;Lo;0;L;;;;;N;;;;; -14C5;CANADIAN SYLLABICS NOO;Lo;0;L;;;;;N;;;;; -14C6;CANADIAN SYLLABICS Y-CREE NOO;Lo;0;L;;;;;N;;;;; -14C7;CANADIAN SYLLABICS NA;Lo;0;L;;;;;N;;;;; -14C8;CANADIAN SYLLABICS NAA;Lo;0;L;;;;;N;;;;; -14C9;CANADIAN SYLLABICS NWE;Lo;0;L;;;;;N;;;;; -14CA;CANADIAN SYLLABICS WEST-CREE NWE;Lo;0;L;;;;;N;;;;; -14CB;CANADIAN SYLLABICS NWA;Lo;0;L;;;;;N;;;;; -14CC;CANADIAN SYLLABICS WEST-CREE NWA;Lo;0;L;;;;;N;;;;; -14CD;CANADIAN SYLLABICS NWAA;Lo;0;L;;;;;N;;;;; -14CE;CANADIAN SYLLABICS WEST-CREE NWAA;Lo;0;L;;;;;N;;;;; -14CF;CANADIAN SYLLABICS NASKAPI NWAA;Lo;0;L;;;;;N;;;;; -14D0;CANADIAN SYLLABICS N;Lo;0;L;;;;;N;;;;; -14D1;CANADIAN SYLLABICS CARRIER NG;Lo;0;L;;;;;N;;;;; -14D2;CANADIAN SYLLABICS NH;Lo;0;L;;;;;N;;;;; -14D3;CANADIAN SYLLABICS LE;Lo;0;L;;;;;N;;;;; -14D4;CANADIAN SYLLABICS LAAI;Lo;0;L;;;;;N;;;;; -14D5;CANADIAN SYLLABICS LI;Lo;0;L;;;;;N;;;;; -14D6;CANADIAN SYLLABICS LII;Lo;0;L;;;;;N;;;;; -14D7;CANADIAN SYLLABICS LO;Lo;0;L;;;;;N;;;;; -14D8;CANADIAN SYLLABICS LOO;Lo;0;L;;;;;N;;;;; -14D9;CANADIAN SYLLABICS Y-CREE LOO;Lo;0;L;;;;;N;;;;; -14DA;CANADIAN SYLLABICS LA;Lo;0;L;;;;;N;;;;; -14DB;CANADIAN SYLLABICS LAA;Lo;0;L;;;;;N;;;;; -14DC;CANADIAN SYLLABICS LWE;Lo;0;L;;;;;N;;;;; -14DD;CANADIAN SYLLABICS WEST-CREE LWE;Lo;0;L;;;;;N;;;;; -14DE;CANADIAN SYLLABICS LWI;Lo;0;L;;;;;N;;;;; -14DF;CANADIAN SYLLABICS WEST-CREE LWI;Lo;0;L;;;;;N;;;;; -14E0;CANADIAN SYLLABICS LWII;Lo;0;L;;;;;N;;;;; -14E1;CANADIAN SYLLABICS WEST-CREE LWII;Lo;0;L;;;;;N;;;;; -14E2;CANADIAN SYLLABICS LWO;Lo;0;L;;;;;N;;;;; -14E3;CANADIAN SYLLABICS WEST-CREE LWO;Lo;0;L;;;;;N;;;;; -14E4;CANADIAN SYLLABICS LWOO;Lo;0;L;;;;;N;;;;; -14E5;CANADIAN SYLLABICS WEST-CREE LWOO;Lo;0;L;;;;;N;;;;; -14E6;CANADIAN SYLLABICS LWA;Lo;0;L;;;;;N;;;;; -14E7;CANADIAN SYLLABICS WEST-CREE LWA;Lo;0;L;;;;;N;;;;; -14E8;CANADIAN SYLLABICS LWAA;Lo;0;L;;;;;N;;;;; -14E9;CANADIAN SYLLABICS WEST-CREE LWAA;Lo;0;L;;;;;N;;;;; -14EA;CANADIAN SYLLABICS L;Lo;0;L;;;;;N;;;;; -14EB;CANADIAN SYLLABICS WEST-CREE L;Lo;0;L;;;;;N;;;;; -14EC;CANADIAN SYLLABICS MEDIAL L;Lo;0;L;;;;;N;;;;; -14ED;CANADIAN SYLLABICS SE;Lo;0;L;;;;;N;;;;; -14EE;CANADIAN SYLLABICS SAAI;Lo;0;L;;;;;N;;;;; -14EF;CANADIAN SYLLABICS SI;Lo;0;L;;;;;N;;;;; -14F0;CANADIAN SYLLABICS SII;Lo;0;L;;;;;N;;;;; -14F1;CANADIAN SYLLABICS SO;Lo;0;L;;;;;N;;;;; -14F2;CANADIAN SYLLABICS SOO;Lo;0;L;;;;;N;;;;; -14F3;CANADIAN SYLLABICS Y-CREE SOO;Lo;0;L;;;;;N;;;;; -14F4;CANADIAN SYLLABICS SA;Lo;0;L;;;;;N;;;;; -14F5;CANADIAN SYLLABICS SAA;Lo;0;L;;;;;N;;;;; -14F6;CANADIAN SYLLABICS SWE;Lo;0;L;;;;;N;;;;; -14F7;CANADIAN SYLLABICS WEST-CREE SWE;Lo;0;L;;;;;N;;;;; -14F8;CANADIAN SYLLABICS SWI;Lo;0;L;;;;;N;;;;; -14F9;CANADIAN SYLLABICS WEST-CREE SWI;Lo;0;L;;;;;N;;;;; -14FA;CANADIAN SYLLABICS SWII;Lo;0;L;;;;;N;;;;; -14FB;CANADIAN SYLLABICS WEST-CREE SWII;Lo;0;L;;;;;N;;;;; -14FC;CANADIAN SYLLABICS SWO;Lo;0;L;;;;;N;;;;; -14FD;CANADIAN SYLLABICS WEST-CREE SWO;Lo;0;L;;;;;N;;;;; -14FE;CANADIAN SYLLABICS SWOO;Lo;0;L;;;;;N;;;;; -14FF;CANADIAN SYLLABICS WEST-CREE SWOO;Lo;0;L;;;;;N;;;;; -1500;CANADIAN SYLLABICS SWA;Lo;0;L;;;;;N;;;;; -1501;CANADIAN SYLLABICS WEST-CREE SWA;Lo;0;L;;;;;N;;;;; -1502;CANADIAN SYLLABICS SWAA;Lo;0;L;;;;;N;;;;; -1503;CANADIAN SYLLABICS WEST-CREE SWAA;Lo;0;L;;;;;N;;;;; -1504;CANADIAN SYLLABICS NASKAPI SWAA;Lo;0;L;;;;;N;;;;; -1505;CANADIAN SYLLABICS S;Lo;0;L;;;;;N;;;;; -1506;CANADIAN SYLLABICS ATHAPASCAN S;Lo;0;L;;;;;N;;;;; -1507;CANADIAN SYLLABICS SW;Lo;0;L;;;;;N;;;;; -1508;CANADIAN SYLLABICS BLACKFOOT S;Lo;0;L;;;;;N;;;;; -1509;CANADIAN SYLLABICS MOOSE-CREE SK;Lo;0;L;;;;;N;;;;; -150A;CANADIAN SYLLABICS NASKAPI SKW;Lo;0;L;;;;;N;;;;; -150B;CANADIAN SYLLABICS NASKAPI S-W;Lo;0;L;;;;;N;;;;; -150C;CANADIAN SYLLABICS NASKAPI SPWA;Lo;0;L;;;;;N;;;;; -150D;CANADIAN SYLLABICS NASKAPI STWA;Lo;0;L;;;;;N;;;;; -150E;CANADIAN SYLLABICS NASKAPI SKWA;Lo;0;L;;;;;N;;;;; -150F;CANADIAN SYLLABICS NASKAPI SCWA;Lo;0;L;;;;;N;;;;; -1510;CANADIAN SYLLABICS SHE;Lo;0;L;;;;;N;;;;; -1511;CANADIAN SYLLABICS SHI;Lo;0;L;;;;;N;;;;; -1512;CANADIAN SYLLABICS SHII;Lo;0;L;;;;;N;;;;; -1513;CANADIAN SYLLABICS SHO;Lo;0;L;;;;;N;;;;; -1514;CANADIAN SYLLABICS SHOO;Lo;0;L;;;;;N;;;;; -1515;CANADIAN SYLLABICS SHA;Lo;0;L;;;;;N;;;;; -1516;CANADIAN SYLLABICS SHAA;Lo;0;L;;;;;N;;;;; -1517;CANADIAN SYLLABICS SHWE;Lo;0;L;;;;;N;;;;; -1518;CANADIAN SYLLABICS WEST-CREE SHWE;Lo;0;L;;;;;N;;;;; -1519;CANADIAN SYLLABICS SHWI;Lo;0;L;;;;;N;;;;; -151A;CANADIAN SYLLABICS WEST-CREE SHWI;Lo;0;L;;;;;N;;;;; -151B;CANADIAN SYLLABICS SHWII;Lo;0;L;;;;;N;;;;; -151C;CANADIAN SYLLABICS WEST-CREE SHWII;Lo;0;L;;;;;N;;;;; -151D;CANADIAN SYLLABICS SHWO;Lo;0;L;;;;;N;;;;; -151E;CANADIAN SYLLABICS WEST-CREE SHWO;Lo;0;L;;;;;N;;;;; -151F;CANADIAN SYLLABICS SHWOO;Lo;0;L;;;;;N;;;;; -1520;CANADIAN SYLLABICS WEST-CREE SHWOO;Lo;0;L;;;;;N;;;;; -1521;CANADIAN SYLLABICS SHWA;Lo;0;L;;;;;N;;;;; -1522;CANADIAN SYLLABICS WEST-CREE SHWA;Lo;0;L;;;;;N;;;;; -1523;CANADIAN SYLLABICS SHWAA;Lo;0;L;;;;;N;;;;; -1524;CANADIAN SYLLABICS WEST-CREE SHWAA;Lo;0;L;;;;;N;;;;; -1525;CANADIAN SYLLABICS SH;Lo;0;L;;;;;N;;;;; -1526;CANADIAN SYLLABICS YE;Lo;0;L;;;;;N;;;;; -1527;CANADIAN SYLLABICS YAAI;Lo;0;L;;;;;N;;;;; -1528;CANADIAN SYLLABICS YI;Lo;0;L;;;;;N;;;;; -1529;CANADIAN SYLLABICS YII;Lo;0;L;;;;;N;;;;; -152A;CANADIAN SYLLABICS YO;Lo;0;L;;;;;N;;;;; -152B;CANADIAN SYLLABICS YOO;Lo;0;L;;;;;N;;;;; -152C;CANADIAN SYLLABICS Y-CREE YOO;Lo;0;L;;;;;N;;;;; -152D;CANADIAN SYLLABICS YA;Lo;0;L;;;;;N;;;;; -152E;CANADIAN SYLLABICS YAA;Lo;0;L;;;;;N;;;;; -152F;CANADIAN SYLLABICS YWE;Lo;0;L;;;;;N;;;;; -1530;CANADIAN SYLLABICS WEST-CREE YWE;Lo;0;L;;;;;N;;;;; -1531;CANADIAN SYLLABICS YWI;Lo;0;L;;;;;N;;;;; -1532;CANADIAN SYLLABICS WEST-CREE YWI;Lo;0;L;;;;;N;;;;; -1533;CANADIAN SYLLABICS YWII;Lo;0;L;;;;;N;;;;; -1534;CANADIAN SYLLABICS WEST-CREE YWII;Lo;0;L;;;;;N;;;;; -1535;CANADIAN SYLLABICS YWO;Lo;0;L;;;;;N;;;;; -1536;CANADIAN SYLLABICS WEST-CREE YWO;Lo;0;L;;;;;N;;;;; -1537;CANADIAN SYLLABICS YWOO;Lo;0;L;;;;;N;;;;; -1538;CANADIAN SYLLABICS WEST-CREE YWOO;Lo;0;L;;;;;N;;;;; -1539;CANADIAN SYLLABICS YWA;Lo;0;L;;;;;N;;;;; -153A;CANADIAN SYLLABICS WEST-CREE YWA;Lo;0;L;;;;;N;;;;; -153B;CANADIAN SYLLABICS YWAA;Lo;0;L;;;;;N;;;;; -153C;CANADIAN SYLLABICS WEST-CREE YWAA;Lo;0;L;;;;;N;;;;; -153D;CANADIAN SYLLABICS NASKAPI YWAA;Lo;0;L;;;;;N;;;;; -153E;CANADIAN SYLLABICS Y;Lo;0;L;;;;;N;;;;; -153F;CANADIAN SYLLABICS BIBLE-CREE Y;Lo;0;L;;;;;N;;;;; -1540;CANADIAN SYLLABICS WEST-CREE Y;Lo;0;L;;;;;N;;;;; -1541;CANADIAN SYLLABICS SAYISI YI;Lo;0;L;;;;;N;;;;; -1542;CANADIAN SYLLABICS RE;Lo;0;L;;;;;N;;;;; -1543;CANADIAN SYLLABICS R-CREE RE;Lo;0;L;;;;;N;;;;; -1544;CANADIAN SYLLABICS WEST-CREE LE;Lo;0;L;;;;;N;;;;; -1545;CANADIAN SYLLABICS RAAI;Lo;0;L;;;;;N;;;;; -1546;CANADIAN SYLLABICS RI;Lo;0;L;;;;;N;;;;; -1547;CANADIAN SYLLABICS RII;Lo;0;L;;;;;N;;;;; -1548;CANADIAN SYLLABICS RO;Lo;0;L;;;;;N;;;;; -1549;CANADIAN SYLLABICS ROO;Lo;0;L;;;;;N;;;;; -154A;CANADIAN SYLLABICS WEST-CREE LO;Lo;0;L;;;;;N;;;;; -154B;CANADIAN SYLLABICS RA;Lo;0;L;;;;;N;;;;; -154C;CANADIAN SYLLABICS RAA;Lo;0;L;;;;;N;;;;; -154D;CANADIAN SYLLABICS WEST-CREE LA;Lo;0;L;;;;;N;;;;; -154E;CANADIAN SYLLABICS RWAA;Lo;0;L;;;;;N;;;;; -154F;CANADIAN SYLLABICS WEST-CREE RWAA;Lo;0;L;;;;;N;;;;; -1550;CANADIAN SYLLABICS R;Lo;0;L;;;;;N;;;;; -1551;CANADIAN SYLLABICS WEST-CREE R;Lo;0;L;;;;;N;;;;; -1552;CANADIAN SYLLABICS MEDIAL R;Lo;0;L;;;;;N;;;;; -1553;CANADIAN SYLLABICS FE;Lo;0;L;;;;;N;;;;; -1554;CANADIAN SYLLABICS FAAI;Lo;0;L;;;;;N;;;;; -1555;CANADIAN SYLLABICS FI;Lo;0;L;;;;;N;;;;; -1556;CANADIAN SYLLABICS FII;Lo;0;L;;;;;N;;;;; -1557;CANADIAN SYLLABICS FO;Lo;0;L;;;;;N;;;;; -1558;CANADIAN SYLLABICS FOO;Lo;0;L;;;;;N;;;;; -1559;CANADIAN SYLLABICS FA;Lo;0;L;;;;;N;;;;; -155A;CANADIAN SYLLABICS FAA;Lo;0;L;;;;;N;;;;; -155B;CANADIAN SYLLABICS FWAA;Lo;0;L;;;;;N;;;;; -155C;CANADIAN SYLLABICS WEST-CREE FWAA;Lo;0;L;;;;;N;;;;; -155D;CANADIAN SYLLABICS F;Lo;0;L;;;;;N;;;;; -155E;CANADIAN SYLLABICS THE;Lo;0;L;;;;;N;;;;; -155F;CANADIAN SYLLABICS N-CREE THE;Lo;0;L;;;;;N;;;;; -1560;CANADIAN SYLLABICS THI;Lo;0;L;;;;;N;;;;; -1561;CANADIAN SYLLABICS N-CREE THI;Lo;0;L;;;;;N;;;;; -1562;CANADIAN SYLLABICS THII;Lo;0;L;;;;;N;;;;; -1563;CANADIAN SYLLABICS N-CREE THII;Lo;0;L;;;;;N;;;;; -1564;CANADIAN SYLLABICS THO;Lo;0;L;;;;;N;;;;; -1565;CANADIAN SYLLABICS THOO;Lo;0;L;;;;;N;;;;; -1566;CANADIAN SYLLABICS THA;Lo;0;L;;;;;N;;;;; -1567;CANADIAN SYLLABICS THAA;Lo;0;L;;;;;N;;;;; -1568;CANADIAN SYLLABICS THWAA;Lo;0;L;;;;;N;;;;; -1569;CANADIAN SYLLABICS WEST-CREE THWAA;Lo;0;L;;;;;N;;;;; -156A;CANADIAN SYLLABICS TH;Lo;0;L;;;;;N;;;;; -156B;CANADIAN SYLLABICS TTHE;Lo;0;L;;;;;N;;;;; -156C;CANADIAN SYLLABICS TTHI;Lo;0;L;;;;;N;;;;; -156D;CANADIAN SYLLABICS TTHO;Lo;0;L;;;;;N;;;;; -156E;CANADIAN SYLLABICS TTHA;Lo;0;L;;;;;N;;;;; -156F;CANADIAN SYLLABICS TTH;Lo;0;L;;;;;N;;;;; -1570;CANADIAN SYLLABICS TYE;Lo;0;L;;;;;N;;;;; -1571;CANADIAN SYLLABICS TYI;Lo;0;L;;;;;N;;;;; -1572;CANADIAN SYLLABICS TYO;Lo;0;L;;;;;N;;;;; -1573;CANADIAN SYLLABICS TYA;Lo;0;L;;;;;N;;;;; -1574;CANADIAN SYLLABICS NUNAVIK HE;Lo;0;L;;;;;N;;;;; -1575;CANADIAN SYLLABICS NUNAVIK HI;Lo;0;L;;;;;N;;;;; -1576;CANADIAN SYLLABICS NUNAVIK HII;Lo;0;L;;;;;N;;;;; -1577;CANADIAN SYLLABICS NUNAVIK HO;Lo;0;L;;;;;N;;;;; -1578;CANADIAN SYLLABICS NUNAVIK HOO;Lo;0;L;;;;;N;;;;; -1579;CANADIAN SYLLABICS NUNAVIK HA;Lo;0;L;;;;;N;;;;; -157A;CANADIAN SYLLABICS NUNAVIK HAA;Lo;0;L;;;;;N;;;;; -157B;CANADIAN SYLLABICS NUNAVIK H;Lo;0;L;;;;;N;;;;; -157C;CANADIAN SYLLABICS NUNAVUT H;Lo;0;L;;;;;N;;;;; -157D;CANADIAN SYLLABICS HK;Lo;0;L;;;;;N;;;;; -157E;CANADIAN SYLLABICS QAAI;Lo;0;L;;;;;N;;;;; -157F;CANADIAN SYLLABICS QI;Lo;0;L;;;;;N;;;;; -1580;CANADIAN SYLLABICS QII;Lo;0;L;;;;;N;;;;; -1581;CANADIAN SYLLABICS QO;Lo;0;L;;;;;N;;;;; -1582;CANADIAN SYLLABICS QOO;Lo;0;L;;;;;N;;;;; -1583;CANADIAN SYLLABICS QA;Lo;0;L;;;;;N;;;;; -1584;CANADIAN SYLLABICS QAA;Lo;0;L;;;;;N;;;;; -1585;CANADIAN SYLLABICS Q;Lo;0;L;;;;;N;;;;; -1586;CANADIAN SYLLABICS TLHE;Lo;0;L;;;;;N;;;;; -1587;CANADIAN SYLLABICS TLHI;Lo;0;L;;;;;N;;;;; -1588;CANADIAN SYLLABICS TLHO;Lo;0;L;;;;;N;;;;; -1589;CANADIAN SYLLABICS TLHA;Lo;0;L;;;;;N;;;;; -158A;CANADIAN SYLLABICS WEST-CREE RE;Lo;0;L;;;;;N;;;;; -158B;CANADIAN SYLLABICS WEST-CREE RI;Lo;0;L;;;;;N;;;;; -158C;CANADIAN SYLLABICS WEST-CREE RO;Lo;0;L;;;;;N;;;;; -158D;CANADIAN SYLLABICS WEST-CREE RA;Lo;0;L;;;;;N;;;;; -158E;CANADIAN SYLLABICS NGAAI;Lo;0;L;;;;;N;;;;; -158F;CANADIAN SYLLABICS NGI;Lo;0;L;;;;;N;;;;; -1590;CANADIAN SYLLABICS NGII;Lo;0;L;;;;;N;;;;; -1591;CANADIAN SYLLABICS NGO;Lo;0;L;;;;;N;;;;; -1592;CANADIAN SYLLABICS NGOO;Lo;0;L;;;;;N;;;;; -1593;CANADIAN SYLLABICS NGA;Lo;0;L;;;;;N;;;;; -1594;CANADIAN SYLLABICS NGAA;Lo;0;L;;;;;N;;;;; -1595;CANADIAN SYLLABICS NG;Lo;0;L;;;;;N;;;;; -1596;CANADIAN SYLLABICS NNG;Lo;0;L;;;;;N;;;;; -1597;CANADIAN SYLLABICS SAYISI SHE;Lo;0;L;;;;;N;;;;; -1598;CANADIAN SYLLABICS SAYISI SHI;Lo;0;L;;;;;N;;;;; -1599;CANADIAN SYLLABICS SAYISI SHO;Lo;0;L;;;;;N;;;;; -159A;CANADIAN SYLLABICS SAYISI SHA;Lo;0;L;;;;;N;;;;; -159B;CANADIAN SYLLABICS WOODS-CREE THE;Lo;0;L;;;;;N;;;;; -159C;CANADIAN SYLLABICS WOODS-CREE THI;Lo;0;L;;;;;N;;;;; -159D;CANADIAN SYLLABICS WOODS-CREE THO;Lo;0;L;;;;;N;;;;; -159E;CANADIAN SYLLABICS WOODS-CREE THA;Lo;0;L;;;;;N;;;;; -159F;CANADIAN SYLLABICS WOODS-CREE TH;Lo;0;L;;;;;N;;;;; -15A0;CANADIAN SYLLABICS LHI;Lo;0;L;;;;;N;;;;; -15A1;CANADIAN SYLLABICS LHII;Lo;0;L;;;;;N;;;;; -15A2;CANADIAN SYLLABICS LHO;Lo;0;L;;;;;N;;;;; -15A3;CANADIAN SYLLABICS LHOO;Lo;0;L;;;;;N;;;;; -15A4;CANADIAN SYLLABICS LHA;Lo;0;L;;;;;N;;;;; -15A5;CANADIAN SYLLABICS LHAA;Lo;0;L;;;;;N;;;;; -15A6;CANADIAN SYLLABICS LH;Lo;0;L;;;;;N;;;;; -15A7;CANADIAN SYLLABICS TH-CREE THE;Lo;0;L;;;;;N;;;;; -15A8;CANADIAN SYLLABICS TH-CREE THI;Lo;0;L;;;;;N;;;;; -15A9;CANADIAN SYLLABICS TH-CREE THII;Lo;0;L;;;;;N;;;;; -15AA;CANADIAN SYLLABICS TH-CREE THO;Lo;0;L;;;;;N;;;;; -15AB;CANADIAN SYLLABICS TH-CREE THOO;Lo;0;L;;;;;N;;;;; -15AC;CANADIAN SYLLABICS TH-CREE THA;Lo;0;L;;;;;N;;;;; -15AD;CANADIAN SYLLABICS TH-CREE THAA;Lo;0;L;;;;;N;;;;; -15AE;CANADIAN SYLLABICS TH-CREE TH;Lo;0;L;;;;;N;;;;; -15AF;CANADIAN SYLLABICS AIVILIK B;Lo;0;L;;;;;N;;;;; -15B0;CANADIAN SYLLABICS BLACKFOOT E;Lo;0;L;;;;;N;;;;; -15B1;CANADIAN SYLLABICS BLACKFOOT I;Lo;0;L;;;;;N;;;;; -15B2;CANADIAN SYLLABICS BLACKFOOT O;Lo;0;L;;;;;N;;;;; -15B3;CANADIAN SYLLABICS BLACKFOOT A;Lo;0;L;;;;;N;;;;; -15B4;CANADIAN SYLLABICS BLACKFOOT WE;Lo;0;L;;;;;N;;;;; -15B5;CANADIAN SYLLABICS BLACKFOOT WI;Lo;0;L;;;;;N;;;;; -15B6;CANADIAN SYLLABICS BLACKFOOT WO;Lo;0;L;;;;;N;;;;; -15B7;CANADIAN SYLLABICS BLACKFOOT WA;Lo;0;L;;;;;N;;;;; -15B8;CANADIAN SYLLABICS BLACKFOOT NE;Lo;0;L;;;;;N;;;;; -15B9;CANADIAN SYLLABICS BLACKFOOT NI;Lo;0;L;;;;;N;;;;; -15BA;CANADIAN SYLLABICS BLACKFOOT NO;Lo;0;L;;;;;N;;;;; -15BB;CANADIAN SYLLABICS BLACKFOOT NA;Lo;0;L;;;;;N;;;;; -15BC;CANADIAN SYLLABICS BLACKFOOT KE;Lo;0;L;;;;;N;;;;; -15BD;CANADIAN SYLLABICS BLACKFOOT KI;Lo;0;L;;;;;N;;;;; -15BE;CANADIAN SYLLABICS BLACKFOOT KO;Lo;0;L;;;;;N;;;;; -15BF;CANADIAN SYLLABICS BLACKFOOT KA;Lo;0;L;;;;;N;;;;; -15C0;CANADIAN SYLLABICS SAYISI HE;Lo;0;L;;;;;N;;;;; -15C1;CANADIAN SYLLABICS SAYISI HI;Lo;0;L;;;;;N;;;;; -15C2;CANADIAN SYLLABICS SAYISI HO;Lo;0;L;;;;;N;;;;; -15C3;CANADIAN SYLLABICS SAYISI HA;Lo;0;L;;;;;N;;;;; -15C4;CANADIAN SYLLABICS CARRIER GHU;Lo;0;L;;;;;N;;;;; -15C5;CANADIAN SYLLABICS CARRIER GHO;Lo;0;L;;;;;N;;;;; -15C6;CANADIAN SYLLABICS CARRIER GHE;Lo;0;L;;;;;N;;;;; -15C7;CANADIAN SYLLABICS CARRIER GHEE;Lo;0;L;;;;;N;;;;; -15C8;CANADIAN SYLLABICS CARRIER GHI;Lo;0;L;;;;;N;;;;; -15C9;CANADIAN SYLLABICS CARRIER GHA;Lo;0;L;;;;;N;;;;; -15CA;CANADIAN SYLLABICS CARRIER RU;Lo;0;L;;;;;N;;;;; -15CB;CANADIAN SYLLABICS CARRIER RO;Lo;0;L;;;;;N;;;;; -15CC;CANADIAN SYLLABICS CARRIER RE;Lo;0;L;;;;;N;;;;; -15CD;CANADIAN SYLLABICS CARRIER REE;Lo;0;L;;;;;N;;;;; -15CE;CANADIAN SYLLABICS CARRIER RI;Lo;0;L;;;;;N;;;;; -15CF;CANADIAN SYLLABICS CARRIER RA;Lo;0;L;;;;;N;;;;; -15D0;CANADIAN SYLLABICS CARRIER WU;Lo;0;L;;;;;N;;;;; -15D1;CANADIAN SYLLABICS CARRIER WO;Lo;0;L;;;;;N;;;;; -15D2;CANADIAN SYLLABICS CARRIER WE;Lo;0;L;;;;;N;;;;; -15D3;CANADIAN SYLLABICS CARRIER WEE;Lo;0;L;;;;;N;;;;; -15D4;CANADIAN SYLLABICS CARRIER WI;Lo;0;L;;;;;N;;;;; -15D5;CANADIAN SYLLABICS CARRIER WA;Lo;0;L;;;;;N;;;;; -15D6;CANADIAN SYLLABICS CARRIER HWU;Lo;0;L;;;;;N;;;;; -15D7;CANADIAN SYLLABICS CARRIER HWO;Lo;0;L;;;;;N;;;;; -15D8;CANADIAN SYLLABICS CARRIER HWE;Lo;0;L;;;;;N;;;;; -15D9;CANADIAN SYLLABICS CARRIER HWEE;Lo;0;L;;;;;N;;;;; -15DA;CANADIAN SYLLABICS CARRIER HWI;Lo;0;L;;;;;N;;;;; -15DB;CANADIAN SYLLABICS CARRIER HWA;Lo;0;L;;;;;N;;;;; -15DC;CANADIAN SYLLABICS CARRIER THU;Lo;0;L;;;;;N;;;;; -15DD;CANADIAN SYLLABICS CARRIER THO;Lo;0;L;;;;;N;;;;; -15DE;CANADIAN SYLLABICS CARRIER THE;Lo;0;L;;;;;N;;;;; -15DF;CANADIAN SYLLABICS CARRIER THEE;Lo;0;L;;;;;N;;;;; -15E0;CANADIAN SYLLABICS CARRIER THI;Lo;0;L;;;;;N;;;;; -15E1;CANADIAN SYLLABICS CARRIER THA;Lo;0;L;;;;;N;;;;; -15E2;CANADIAN SYLLABICS CARRIER TTU;Lo;0;L;;;;;N;;;;; -15E3;CANADIAN SYLLABICS CARRIER TTO;Lo;0;L;;;;;N;;;;; -15E4;CANADIAN SYLLABICS CARRIER TTE;Lo;0;L;;;;;N;;;;; -15E5;CANADIAN SYLLABICS CARRIER TTEE;Lo;0;L;;;;;N;;;;; -15E6;CANADIAN SYLLABICS CARRIER TTI;Lo;0;L;;;;;N;;;;; -15E7;CANADIAN SYLLABICS CARRIER TTA;Lo;0;L;;;;;N;;;;; -15E8;CANADIAN SYLLABICS CARRIER PU;Lo;0;L;;;;;N;;;;; -15E9;CANADIAN SYLLABICS CARRIER PO;Lo;0;L;;;;;N;;;;; -15EA;CANADIAN SYLLABICS CARRIER PE;Lo;0;L;;;;;N;;;;; -15EB;CANADIAN SYLLABICS CARRIER PEE;Lo;0;L;;;;;N;;;;; -15EC;CANADIAN SYLLABICS CARRIER PI;Lo;0;L;;;;;N;;;;; -15ED;CANADIAN SYLLABICS CARRIER PA;Lo;0;L;;;;;N;;;;; -15EE;CANADIAN SYLLABICS CARRIER P;Lo;0;L;;;;;N;;;;; -15EF;CANADIAN SYLLABICS CARRIER GU;Lo;0;L;;;;;N;;;;; -15F0;CANADIAN SYLLABICS CARRIER GO;Lo;0;L;;;;;N;;;;; -15F1;CANADIAN SYLLABICS CARRIER GE;Lo;0;L;;;;;N;;;;; -15F2;CANADIAN SYLLABICS CARRIER GEE;Lo;0;L;;;;;N;;;;; -15F3;CANADIAN SYLLABICS CARRIER GI;Lo;0;L;;;;;N;;;;; -15F4;CANADIAN SYLLABICS CARRIER GA;Lo;0;L;;;;;N;;;;; -15F5;CANADIAN SYLLABICS CARRIER KHU;Lo;0;L;;;;;N;;;;; -15F6;CANADIAN SYLLABICS CARRIER KHO;Lo;0;L;;;;;N;;;;; -15F7;CANADIAN SYLLABICS CARRIER KHE;Lo;0;L;;;;;N;;;;; -15F8;CANADIAN SYLLABICS CARRIER KHEE;Lo;0;L;;;;;N;;;;; -15F9;CANADIAN SYLLABICS CARRIER KHI;Lo;0;L;;;;;N;;;;; -15FA;CANADIAN SYLLABICS CARRIER KHA;Lo;0;L;;;;;N;;;;; -15FB;CANADIAN SYLLABICS CARRIER KKU;Lo;0;L;;;;;N;;;;; -15FC;CANADIAN SYLLABICS CARRIER KKO;Lo;0;L;;;;;N;;;;; -15FD;CANADIAN SYLLABICS CARRIER KKE;Lo;0;L;;;;;N;;;;; -15FE;CANADIAN SYLLABICS CARRIER KKEE;Lo;0;L;;;;;N;;;;; -15FF;CANADIAN SYLLABICS CARRIER KKI;Lo;0;L;;;;;N;;;;; -1600;CANADIAN SYLLABICS CARRIER KKA;Lo;0;L;;;;;N;;;;; -1601;CANADIAN SYLLABICS CARRIER KK;Lo;0;L;;;;;N;;;;; -1602;CANADIAN SYLLABICS CARRIER NU;Lo;0;L;;;;;N;;;;; -1603;CANADIAN SYLLABICS CARRIER NO;Lo;0;L;;;;;N;;;;; -1604;CANADIAN SYLLABICS CARRIER NE;Lo;0;L;;;;;N;;;;; -1605;CANADIAN SYLLABICS CARRIER NEE;Lo;0;L;;;;;N;;;;; -1606;CANADIAN SYLLABICS CARRIER NI;Lo;0;L;;;;;N;;;;; -1607;CANADIAN SYLLABICS CARRIER NA;Lo;0;L;;;;;N;;;;; -1608;CANADIAN SYLLABICS CARRIER MU;Lo;0;L;;;;;N;;;;; -1609;CANADIAN SYLLABICS CARRIER MO;Lo;0;L;;;;;N;;;;; -160A;CANADIAN SYLLABICS CARRIER ME;Lo;0;L;;;;;N;;;;; -160B;CANADIAN SYLLABICS CARRIER MEE;Lo;0;L;;;;;N;;;;; -160C;CANADIAN SYLLABICS CARRIER MI;Lo;0;L;;;;;N;;;;; -160D;CANADIAN SYLLABICS CARRIER MA;Lo;0;L;;;;;N;;;;; -160E;CANADIAN SYLLABICS CARRIER YU;Lo;0;L;;;;;N;;;;; -160F;CANADIAN SYLLABICS CARRIER YO;Lo;0;L;;;;;N;;;;; -1610;CANADIAN SYLLABICS CARRIER YE;Lo;0;L;;;;;N;;;;; -1611;CANADIAN SYLLABICS CARRIER YEE;Lo;0;L;;;;;N;;;;; -1612;CANADIAN SYLLABICS CARRIER YI;Lo;0;L;;;;;N;;;;; -1613;CANADIAN SYLLABICS CARRIER YA;Lo;0;L;;;;;N;;;;; -1614;CANADIAN SYLLABICS CARRIER JU;Lo;0;L;;;;;N;;;;; -1615;CANADIAN SYLLABICS SAYISI JU;Lo;0;L;;;;;N;;;;; -1616;CANADIAN SYLLABICS CARRIER JO;Lo;0;L;;;;;N;;;;; -1617;CANADIAN SYLLABICS CARRIER JE;Lo;0;L;;;;;N;;;;; -1618;CANADIAN SYLLABICS CARRIER JEE;Lo;0;L;;;;;N;;;;; -1619;CANADIAN SYLLABICS CARRIER JI;Lo;0;L;;;;;N;;;;; -161A;CANADIAN SYLLABICS SAYISI JI;Lo;0;L;;;;;N;;;;; -161B;CANADIAN SYLLABICS CARRIER JA;Lo;0;L;;;;;N;;;;; -161C;CANADIAN SYLLABICS CARRIER JJU;Lo;0;L;;;;;N;;;;; -161D;CANADIAN SYLLABICS CARRIER JJO;Lo;0;L;;;;;N;;;;; -161E;CANADIAN SYLLABICS CARRIER JJE;Lo;0;L;;;;;N;;;;; -161F;CANADIAN SYLLABICS CARRIER JJEE;Lo;0;L;;;;;N;;;;; -1620;CANADIAN SYLLABICS CARRIER JJI;Lo;0;L;;;;;N;;;;; -1621;CANADIAN SYLLABICS CARRIER JJA;Lo;0;L;;;;;N;;;;; -1622;CANADIAN SYLLABICS CARRIER LU;Lo;0;L;;;;;N;;;;; -1623;CANADIAN SYLLABICS CARRIER LO;Lo;0;L;;;;;N;;;;; -1624;CANADIAN SYLLABICS CARRIER LE;Lo;0;L;;;;;N;;;;; -1625;CANADIAN SYLLABICS CARRIER LEE;Lo;0;L;;;;;N;;;;; -1626;CANADIAN SYLLABICS CARRIER LI;Lo;0;L;;;;;N;;;;; -1627;CANADIAN SYLLABICS CARRIER LA;Lo;0;L;;;;;N;;;;; -1628;CANADIAN SYLLABICS CARRIER DLU;Lo;0;L;;;;;N;;;;; -1629;CANADIAN SYLLABICS CARRIER DLO;Lo;0;L;;;;;N;;;;; -162A;CANADIAN SYLLABICS CARRIER DLE;Lo;0;L;;;;;N;;;;; -162B;CANADIAN SYLLABICS CARRIER DLEE;Lo;0;L;;;;;N;;;;; -162C;CANADIAN SYLLABICS CARRIER DLI;Lo;0;L;;;;;N;;;;; -162D;CANADIAN SYLLABICS CARRIER DLA;Lo;0;L;;;;;N;;;;; -162E;CANADIAN SYLLABICS CARRIER LHU;Lo;0;L;;;;;N;;;;; -162F;CANADIAN SYLLABICS CARRIER LHO;Lo;0;L;;;;;N;;;;; -1630;CANADIAN SYLLABICS CARRIER LHE;Lo;0;L;;;;;N;;;;; -1631;CANADIAN SYLLABICS CARRIER LHEE;Lo;0;L;;;;;N;;;;; -1632;CANADIAN SYLLABICS CARRIER LHI;Lo;0;L;;;;;N;;;;; -1633;CANADIAN SYLLABICS CARRIER LHA;Lo;0;L;;;;;N;;;;; -1634;CANADIAN SYLLABICS CARRIER TLHU;Lo;0;L;;;;;N;;;;; -1635;CANADIAN SYLLABICS CARRIER TLHO;Lo;0;L;;;;;N;;;;; -1636;CANADIAN SYLLABICS CARRIER TLHE;Lo;0;L;;;;;N;;;;; -1637;CANADIAN SYLLABICS CARRIER TLHEE;Lo;0;L;;;;;N;;;;; -1638;CANADIAN SYLLABICS CARRIER TLHI;Lo;0;L;;;;;N;;;;; -1639;CANADIAN SYLLABICS CARRIER TLHA;Lo;0;L;;;;;N;;;;; -163A;CANADIAN SYLLABICS CARRIER TLU;Lo;0;L;;;;;N;;;;; -163B;CANADIAN SYLLABICS CARRIER TLO;Lo;0;L;;;;;N;;;;; -163C;CANADIAN SYLLABICS CARRIER TLE;Lo;0;L;;;;;N;;;;; -163D;CANADIAN SYLLABICS CARRIER TLEE;Lo;0;L;;;;;N;;;;; -163E;CANADIAN SYLLABICS CARRIER TLI;Lo;0;L;;;;;N;;;;; -163F;CANADIAN SYLLABICS CARRIER TLA;Lo;0;L;;;;;N;;;;; -1640;CANADIAN SYLLABICS CARRIER ZU;Lo;0;L;;;;;N;;;;; -1641;CANADIAN SYLLABICS CARRIER ZO;Lo;0;L;;;;;N;;;;; -1642;CANADIAN SYLLABICS CARRIER ZE;Lo;0;L;;;;;N;;;;; -1643;CANADIAN SYLLABICS CARRIER ZEE;Lo;0;L;;;;;N;;;;; -1644;CANADIAN SYLLABICS CARRIER ZI;Lo;0;L;;;;;N;;;;; -1645;CANADIAN SYLLABICS CARRIER ZA;Lo;0;L;;;;;N;;;;; -1646;CANADIAN SYLLABICS CARRIER Z;Lo;0;L;;;;;N;;;;; -1647;CANADIAN SYLLABICS CARRIER INITIAL Z;Lo;0;L;;;;;N;;;;; -1648;CANADIAN SYLLABICS CARRIER DZU;Lo;0;L;;;;;N;;;;; -1649;CANADIAN SYLLABICS CARRIER DZO;Lo;0;L;;;;;N;;;;; -164A;CANADIAN SYLLABICS CARRIER DZE;Lo;0;L;;;;;N;;;;; -164B;CANADIAN SYLLABICS CARRIER DZEE;Lo;0;L;;;;;N;;;;; -164C;CANADIAN SYLLABICS CARRIER DZI;Lo;0;L;;;;;N;;;;; -164D;CANADIAN SYLLABICS CARRIER DZA;Lo;0;L;;;;;N;;;;; -164E;CANADIAN SYLLABICS CARRIER SU;Lo;0;L;;;;;N;;;;; -164F;CANADIAN SYLLABICS CARRIER SO;Lo;0;L;;;;;N;;;;; -1650;CANADIAN SYLLABICS CARRIER SE;Lo;0;L;;;;;N;;;;; -1651;CANADIAN SYLLABICS CARRIER SEE;Lo;0;L;;;;;N;;;;; -1652;CANADIAN SYLLABICS CARRIER SI;Lo;0;L;;;;;N;;;;; -1653;CANADIAN SYLLABICS CARRIER SA;Lo;0;L;;;;;N;;;;; -1654;CANADIAN SYLLABICS CARRIER SHU;Lo;0;L;;;;;N;;;;; -1655;CANADIAN SYLLABICS CARRIER SHO;Lo;0;L;;;;;N;;;;; -1656;CANADIAN SYLLABICS CARRIER SHE;Lo;0;L;;;;;N;;;;; -1657;CANADIAN SYLLABICS CARRIER SHEE;Lo;0;L;;;;;N;;;;; -1658;CANADIAN SYLLABICS CARRIER SHI;Lo;0;L;;;;;N;;;;; -1659;CANADIAN SYLLABICS CARRIER SHA;Lo;0;L;;;;;N;;;;; -165A;CANADIAN SYLLABICS CARRIER SH;Lo;0;L;;;;;N;;;;; -165B;CANADIAN SYLLABICS CARRIER TSU;Lo;0;L;;;;;N;;;;; -165C;CANADIAN SYLLABICS CARRIER TSO;Lo;0;L;;;;;N;;;;; -165D;CANADIAN SYLLABICS CARRIER TSE;Lo;0;L;;;;;N;;;;; -165E;CANADIAN SYLLABICS CARRIER TSEE;Lo;0;L;;;;;N;;;;; -165F;CANADIAN SYLLABICS CARRIER TSI;Lo;0;L;;;;;N;;;;; -1660;CANADIAN SYLLABICS CARRIER TSA;Lo;0;L;;;;;N;;;;; -1661;CANADIAN SYLLABICS CARRIER CHU;Lo;0;L;;;;;N;;;;; -1662;CANADIAN SYLLABICS CARRIER CHO;Lo;0;L;;;;;N;;;;; -1663;CANADIAN SYLLABICS CARRIER CHE;Lo;0;L;;;;;N;;;;; -1664;CANADIAN SYLLABICS CARRIER CHEE;Lo;0;L;;;;;N;;;;; -1665;CANADIAN SYLLABICS CARRIER CHI;Lo;0;L;;;;;N;;;;; -1666;CANADIAN SYLLABICS CARRIER CHA;Lo;0;L;;;;;N;;;;; -1667;CANADIAN SYLLABICS CARRIER TTSU;Lo;0;L;;;;;N;;;;; -1668;CANADIAN SYLLABICS CARRIER TTSO;Lo;0;L;;;;;N;;;;; -1669;CANADIAN SYLLABICS CARRIER TTSE;Lo;0;L;;;;;N;;;;; -166A;CANADIAN SYLLABICS CARRIER TTSEE;Lo;0;L;;;;;N;;;;; -166B;CANADIAN SYLLABICS CARRIER TTSI;Lo;0;L;;;;;N;;;;; -166C;CANADIAN SYLLABICS CARRIER TTSA;Lo;0;L;;;;;N;;;;; -166D;CANADIAN SYLLABICS CHI SIGN;Po;0;L;;;;;N;;;;; -166E;CANADIAN SYLLABICS FULL STOP;Po;0;L;;;;;N;;;;; -166F;CANADIAN SYLLABICS QAI;Lo;0;L;;;;;N;;;;; -1670;CANADIAN SYLLABICS NGAI;Lo;0;L;;;;;N;;;;; -1671;CANADIAN SYLLABICS NNGI;Lo;0;L;;;;;N;;;;; -1672;CANADIAN SYLLABICS NNGII;Lo;0;L;;;;;N;;;;; -1673;CANADIAN SYLLABICS NNGO;Lo;0;L;;;;;N;;;;; -1674;CANADIAN SYLLABICS NNGOO;Lo;0;L;;;;;N;;;;; -1675;CANADIAN SYLLABICS NNGA;Lo;0;L;;;;;N;;;;; -1676;CANADIAN SYLLABICS NNGAA;Lo;0;L;;;;;N;;;;; -1677;CANADIAN SYLLABICS WOODS-CREE THWEE;Lo;0;L;;;;;N;;;;; -1678;CANADIAN SYLLABICS WOODS-CREE THWI;Lo;0;L;;;;;N;;;;; -1679;CANADIAN SYLLABICS WOODS-CREE THWII;Lo;0;L;;;;;N;;;;; -167A;CANADIAN SYLLABICS WOODS-CREE THWO;Lo;0;L;;;;;N;;;;; -167B;CANADIAN SYLLABICS WOODS-CREE THWOO;Lo;0;L;;;;;N;;;;; -167C;CANADIAN SYLLABICS WOODS-CREE THWA;Lo;0;L;;;;;N;;;;; -167D;CANADIAN SYLLABICS WOODS-CREE THWAA;Lo;0;L;;;;;N;;;;; -167E;CANADIAN SYLLABICS WOODS-CREE FINAL TH;Lo;0;L;;;;;N;;;;; -167F;CANADIAN SYLLABICS BLACKFOOT W;Lo;0;L;;;;;N;;;;; -1680;OGHAM SPACE MARK;Zs;0;WS;;;;;N;;;;; -1681;OGHAM LETTER BEITH;Lo;0;L;;;;;N;;;;; -1682;OGHAM LETTER LUIS;Lo;0;L;;;;;N;;;;; -1683;OGHAM LETTER FEARN;Lo;0;L;;;;;N;;;;; -1684;OGHAM LETTER SAIL;Lo;0;L;;;;;N;;;;; -1685;OGHAM LETTER NION;Lo;0;L;;;;;N;;;;; -1686;OGHAM LETTER UATH;Lo;0;L;;;;;N;;;;; -1687;OGHAM LETTER DAIR;Lo;0;L;;;;;N;;;;; -1688;OGHAM LETTER TINNE;Lo;0;L;;;;;N;;;;; -1689;OGHAM LETTER COLL;Lo;0;L;;;;;N;;;;; -168A;OGHAM LETTER CEIRT;Lo;0;L;;;;;N;;;;; -168B;OGHAM LETTER MUIN;Lo;0;L;;;;;N;;;;; -168C;OGHAM LETTER GORT;Lo;0;L;;;;;N;;;;; -168D;OGHAM LETTER NGEADAL;Lo;0;L;;;;;N;;;;; -168E;OGHAM LETTER STRAIF;Lo;0;L;;;;;N;;;;; -168F;OGHAM LETTER RUIS;Lo;0;L;;;;;N;;;;; -1690;OGHAM LETTER AILM;Lo;0;L;;;;;N;;;;; -1691;OGHAM LETTER ONN;Lo;0;L;;;;;N;;;;; -1692;OGHAM LETTER UR;Lo;0;L;;;;;N;;;;; -1693;OGHAM LETTER EADHADH;Lo;0;L;;;;;N;;;;; -1694;OGHAM LETTER IODHADH;Lo;0;L;;;;;N;;;;; -1695;OGHAM LETTER EABHADH;Lo;0;L;;;;;N;;;;; -1696;OGHAM LETTER OR;Lo;0;L;;;;;N;;;;; -1697;OGHAM LETTER UILLEANN;Lo;0;L;;;;;N;;;;; -1698;OGHAM LETTER IFIN;Lo;0;L;;;;;N;;;;; -1699;OGHAM LETTER EAMHANCHOLL;Lo;0;L;;;;;N;;;;; -169A;OGHAM LETTER PEITH;Lo;0;L;;;;;N;;;;; -169B;OGHAM FEATHER MARK;Ps;0;ON;;;;;Y;;;;; -169C;OGHAM REVERSED FEATHER MARK;Pe;0;ON;;;;;Y;;;;; -16A0;RUNIC LETTER FEHU FEOH FE F;Lo;0;L;;;;;N;;;;; -16A1;RUNIC LETTER V;Lo;0;L;;;;;N;;;;; -16A2;RUNIC LETTER URUZ UR U;Lo;0;L;;;;;N;;;;; -16A3;RUNIC LETTER YR;Lo;0;L;;;;;N;;;;; -16A4;RUNIC LETTER Y;Lo;0;L;;;;;N;;;;; -16A5;RUNIC LETTER W;Lo;0;L;;;;;N;;;;; -16A6;RUNIC LETTER THURISAZ THURS THORN;Lo;0;L;;;;;N;;;;; -16A7;RUNIC LETTER ETH;Lo;0;L;;;;;N;;;;; -16A8;RUNIC LETTER ANSUZ A;Lo;0;L;;;;;N;;;;; -16A9;RUNIC LETTER OS O;Lo;0;L;;;;;N;;;;; -16AA;RUNIC LETTER AC A;Lo;0;L;;;;;N;;;;; -16AB;RUNIC LETTER AESC;Lo;0;L;;;;;N;;;;; -16AC;RUNIC LETTER LONG-BRANCH-OSS O;Lo;0;L;;;;;N;;;;; -16AD;RUNIC LETTER SHORT-TWIG-OSS O;Lo;0;L;;;;;N;;;;; -16AE;RUNIC LETTER O;Lo;0;L;;;;;N;;;;; -16AF;RUNIC LETTER OE;Lo;0;L;;;;;N;;;;; -16B0;RUNIC LETTER ON;Lo;0;L;;;;;N;;;;; -16B1;RUNIC LETTER RAIDO RAD REID R;Lo;0;L;;;;;N;;;;; -16B2;RUNIC LETTER KAUNA;Lo;0;L;;;;;N;;;;; -16B3;RUNIC LETTER CEN;Lo;0;L;;;;;N;;;;; -16B4;RUNIC LETTER KAUN K;Lo;0;L;;;;;N;;;;; -16B5;RUNIC LETTER G;Lo;0;L;;;;;N;;;;; -16B6;RUNIC LETTER ENG;Lo;0;L;;;;;N;;;;; -16B7;RUNIC LETTER GEBO GYFU G;Lo;0;L;;;;;N;;;;; -16B8;RUNIC LETTER GAR;Lo;0;L;;;;;N;;;;; -16B9;RUNIC LETTER WUNJO WYNN W;Lo;0;L;;;;;N;;;;; -16BA;RUNIC LETTER HAGLAZ H;Lo;0;L;;;;;N;;;;; -16BB;RUNIC LETTER HAEGL H;Lo;0;L;;;;;N;;;;; -16BC;RUNIC LETTER LONG-BRANCH-HAGALL H;Lo;0;L;;;;;N;;;;; -16BD;RUNIC LETTER SHORT-TWIG-HAGALL H;Lo;0;L;;;;;N;;;;; -16BE;RUNIC LETTER NAUDIZ NYD NAUD N;Lo;0;L;;;;;N;;;;; -16BF;RUNIC LETTER SHORT-TWIG-NAUD N;Lo;0;L;;;;;N;;;;; -16C0;RUNIC LETTER DOTTED-N;Lo;0;L;;;;;N;;;;; -16C1;RUNIC LETTER ISAZ IS ISS I;Lo;0;L;;;;;N;;;;; -16C2;RUNIC LETTER E;Lo;0;L;;;;;N;;;;; -16C3;RUNIC LETTER JERAN J;Lo;0;L;;;;;N;;;;; -16C4;RUNIC LETTER GER;Lo;0;L;;;;;N;;;;; -16C5;RUNIC LETTER LONG-BRANCH-AR AE;Lo;0;L;;;;;N;;;;; -16C6;RUNIC LETTER SHORT-TWIG-AR A;Lo;0;L;;;;;N;;;;; -16C7;RUNIC LETTER IWAZ EOH;Lo;0;L;;;;;N;;;;; -16C8;RUNIC LETTER PERTHO PEORTH P;Lo;0;L;;;;;N;;;;; -16C9;RUNIC LETTER ALGIZ EOLHX;Lo;0;L;;;;;N;;;;; -16CA;RUNIC LETTER SOWILO S;Lo;0;L;;;;;N;;;;; -16CB;RUNIC LETTER SIGEL LONG-BRANCH-SOL S;Lo;0;L;;;;;N;;;;; -16CC;RUNIC LETTER SHORT-TWIG-SOL S;Lo;0;L;;;;;N;;;;; -16CD;RUNIC LETTER C;Lo;0;L;;;;;N;;;;; -16CE;RUNIC LETTER Z;Lo;0;L;;;;;N;;;;; -16CF;RUNIC LETTER TIWAZ TIR TYR T;Lo;0;L;;;;;N;;;;; -16D0;RUNIC LETTER SHORT-TWIG-TYR T;Lo;0;L;;;;;N;;;;; -16D1;RUNIC LETTER D;Lo;0;L;;;;;N;;;;; -16D2;RUNIC LETTER BERKANAN BEORC BJARKAN B;Lo;0;L;;;;;N;;;;; -16D3;RUNIC LETTER SHORT-TWIG-BJARKAN B;Lo;0;L;;;;;N;;;;; -16D4;RUNIC LETTER DOTTED-P;Lo;0;L;;;;;N;;;;; -16D5;RUNIC LETTER OPEN-P;Lo;0;L;;;;;N;;;;; -16D6;RUNIC LETTER EHWAZ EH E;Lo;0;L;;;;;N;;;;; -16D7;RUNIC LETTER MANNAZ MAN M;Lo;0;L;;;;;N;;;;; -16D8;RUNIC LETTER LONG-BRANCH-MADR M;Lo;0;L;;;;;N;;;;; -16D9;RUNIC LETTER SHORT-TWIG-MADR M;Lo;0;L;;;;;N;;;;; -16DA;RUNIC LETTER LAUKAZ LAGU LOGR L;Lo;0;L;;;;;N;;;;; -16DB;RUNIC LETTER DOTTED-L;Lo;0;L;;;;;N;;;;; -16DC;RUNIC LETTER INGWAZ;Lo;0;L;;;;;N;;;;; -16DD;RUNIC LETTER ING;Lo;0;L;;;;;N;;;;; -16DE;RUNIC LETTER DAGAZ DAEG D;Lo;0;L;;;;;N;;;;; -16DF;RUNIC LETTER OTHALAN ETHEL O;Lo;0;L;;;;;N;;;;; -16E0;RUNIC LETTER EAR;Lo;0;L;;;;;N;;;;; -16E1;RUNIC LETTER IOR;Lo;0;L;;;;;N;;;;; -16E2;RUNIC LETTER CWEORTH;Lo;0;L;;;;;N;;;;; -16E3;RUNIC LETTER CALC;Lo;0;L;;;;;N;;;;; -16E4;RUNIC LETTER CEALC;Lo;0;L;;;;;N;;;;; -16E5;RUNIC LETTER STAN;Lo;0;L;;;;;N;;;;; -16E6;RUNIC LETTER LONG-BRANCH-YR;Lo;0;L;;;;;N;;;;; -16E7;RUNIC LETTER SHORT-TWIG-YR;Lo;0;L;;;;;N;;;;; -16E8;RUNIC LETTER ICELANDIC-YR;Lo;0;L;;;;;N;;;;; -16E9;RUNIC LETTER Q;Lo;0;L;;;;;N;;;;; -16EA;RUNIC LETTER X;Lo;0;L;;;;;N;;;;; -16EB;RUNIC SINGLE PUNCTUATION;Po;0;L;;;;;N;;;;; -16EC;RUNIC MULTIPLE PUNCTUATION;Po;0;L;;;;;N;;;;; -16ED;RUNIC CROSS PUNCTUATION;Po;0;L;;;;;N;;;;; -16EE;RUNIC ARLAUG SYMBOL;Nl;0;L;;;;17;N;;;;; -16EF;RUNIC TVIMADUR SYMBOL;Nl;0;L;;;;18;N;;;;; -16F0;RUNIC BELGTHOR SYMBOL;Nl;0;L;;;;19;N;;;;; -1700;TAGALOG LETTER A;Lo;0;L;;;;;N;;;;; -1701;TAGALOG LETTER I;Lo;0;L;;;;;N;;;;; -1702;TAGALOG LETTER U;Lo;0;L;;;;;N;;;;; -1703;TAGALOG LETTER KA;Lo;0;L;;;;;N;;;;; -1704;TAGALOG LETTER GA;Lo;0;L;;;;;N;;;;; -1705;TAGALOG LETTER NGA;Lo;0;L;;;;;N;;;;; -1706;TAGALOG LETTER TA;Lo;0;L;;;;;N;;;;; -1707;TAGALOG LETTER DA;Lo;0;L;;;;;N;;;;; -1708;TAGALOG LETTER NA;Lo;0;L;;;;;N;;;;; -1709;TAGALOG LETTER PA;Lo;0;L;;;;;N;;;;; -170A;TAGALOG LETTER BA;Lo;0;L;;;;;N;;;;; -170B;TAGALOG LETTER MA;Lo;0;L;;;;;N;;;;; -170C;TAGALOG LETTER YA;Lo;0;L;;;;;N;;;;; -170E;TAGALOG LETTER LA;Lo;0;L;;;;;N;;;;; -170F;TAGALOG LETTER WA;Lo;0;L;;;;;N;;;;; -1710;TAGALOG LETTER SA;Lo;0;L;;;;;N;;;;; -1711;TAGALOG LETTER HA;Lo;0;L;;;;;N;;;;; -1712;TAGALOG VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;; -1713;TAGALOG VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; -1714;TAGALOG SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;; -1720;HANUNOO LETTER A;Lo;0;L;;;;;N;;;;; -1721;HANUNOO LETTER I;Lo;0;L;;;;;N;;;;; -1722;HANUNOO LETTER U;Lo;0;L;;;;;N;;;;; -1723;HANUNOO LETTER KA;Lo;0;L;;;;;N;;;;; -1724;HANUNOO LETTER GA;Lo;0;L;;;;;N;;;;; -1725;HANUNOO LETTER NGA;Lo;0;L;;;;;N;;;;; -1726;HANUNOO LETTER TA;Lo;0;L;;;;;N;;;;; -1727;HANUNOO LETTER DA;Lo;0;L;;;;;N;;;;; -1728;HANUNOO LETTER NA;Lo;0;L;;;;;N;;;;; -1729;HANUNOO LETTER PA;Lo;0;L;;;;;N;;;;; -172A;HANUNOO LETTER BA;Lo;0;L;;;;;N;;;;; -172B;HANUNOO LETTER MA;Lo;0;L;;;;;N;;;;; -172C;HANUNOO LETTER YA;Lo;0;L;;;;;N;;;;; -172D;HANUNOO LETTER RA;Lo;0;L;;;;;N;;;;; -172E;HANUNOO LETTER LA;Lo;0;L;;;;;N;;;;; -172F;HANUNOO LETTER WA;Lo;0;L;;;;;N;;;;; -1730;HANUNOO LETTER SA;Lo;0;L;;;;;N;;;;; -1731;HANUNOO LETTER HA;Lo;0;L;;;;;N;;;;; -1732;HANUNOO VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;; -1733;HANUNOO VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; -1734;HANUNOO SIGN PAMUDPOD;Mn;9;NSM;;;;;N;;;;; -1735;PHILIPPINE SINGLE PUNCTUATION;Po;0;L;;;;;N;;;;; -1736;PHILIPPINE DOUBLE PUNCTUATION;Po;0;L;;;;;N;;;;; -1740;BUHID LETTER A;Lo;0;L;;;;;N;;;;; -1741;BUHID LETTER I;Lo;0;L;;;;;N;;;;; -1742;BUHID LETTER U;Lo;0;L;;;;;N;;;;; -1743;BUHID LETTER KA;Lo;0;L;;;;;N;;;;; -1744;BUHID LETTER GA;Lo;0;L;;;;;N;;;;; -1745;BUHID LETTER NGA;Lo;0;L;;;;;N;;;;; -1746;BUHID LETTER TA;Lo;0;L;;;;;N;;;;; -1747;BUHID LETTER DA;Lo;0;L;;;;;N;;;;; -1748;BUHID LETTER NA;Lo;0;L;;;;;N;;;;; -1749;BUHID LETTER PA;Lo;0;L;;;;;N;;;;; -174A;BUHID LETTER BA;Lo;0;L;;;;;N;;;;; -174B;BUHID LETTER MA;Lo;0;L;;;;;N;;;;; -174C;BUHID LETTER YA;Lo;0;L;;;;;N;;;;; -174D;BUHID LETTER RA;Lo;0;L;;;;;N;;;;; -174E;BUHID LETTER LA;Lo;0;L;;;;;N;;;;; -174F;BUHID LETTER WA;Lo;0;L;;;;;N;;;;; -1750;BUHID LETTER SA;Lo;0;L;;;;;N;;;;; -1751;BUHID LETTER HA;Lo;0;L;;;;;N;;;;; -1752;BUHID VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;; -1753;BUHID VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; -1760;TAGBANWA LETTER A;Lo;0;L;;;;;N;;;;; -1761;TAGBANWA LETTER I;Lo;0;L;;;;;N;;;;; -1762;TAGBANWA LETTER U;Lo;0;L;;;;;N;;;;; -1763;TAGBANWA LETTER KA;Lo;0;L;;;;;N;;;;; -1764;TAGBANWA LETTER GA;Lo;0;L;;;;;N;;;;; -1765;TAGBANWA LETTER NGA;Lo;0;L;;;;;N;;;;; -1766;TAGBANWA LETTER TA;Lo;0;L;;;;;N;;;;; -1767;TAGBANWA LETTER DA;Lo;0;L;;;;;N;;;;; -1768;TAGBANWA LETTER NA;Lo;0;L;;;;;N;;;;; -1769;TAGBANWA LETTER PA;Lo;0;L;;;;;N;;;;; -176A;TAGBANWA LETTER BA;Lo;0;L;;;;;N;;;;; -176B;TAGBANWA LETTER MA;Lo;0;L;;;;;N;;;;; -176C;TAGBANWA LETTER YA;Lo;0;L;;;;;N;;;;; -176E;TAGBANWA LETTER LA;Lo;0;L;;;;;N;;;;; -176F;TAGBANWA LETTER WA;Lo;0;L;;;;;N;;;;; -1770;TAGBANWA LETTER SA;Lo;0;L;;;;;N;;;;; -1772;TAGBANWA VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;; -1773;TAGBANWA VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; -1780;KHMER LETTER KA;Lo;0;L;;;;;N;;;;; -1781;KHMER LETTER KHA;Lo;0;L;;;;;N;;;;; -1782;KHMER LETTER KO;Lo;0;L;;;;;N;;;;; -1783;KHMER LETTER KHO;Lo;0;L;;;;;N;;;;; -1784;KHMER LETTER NGO;Lo;0;L;;;;;N;;;;; -1785;KHMER LETTER CA;Lo;0;L;;;;;N;;;;; -1786;KHMER LETTER CHA;Lo;0;L;;;;;N;;;;; -1787;KHMER LETTER CO;Lo;0;L;;;;;N;;;;; -1788;KHMER LETTER CHO;Lo;0;L;;;;;N;;;;; -1789;KHMER LETTER NYO;Lo;0;L;;;;;N;;;;; -178A;KHMER LETTER DA;Lo;0;L;;;;;N;;;;; -178B;KHMER LETTER TTHA;Lo;0;L;;;;;N;;;;; -178C;KHMER LETTER DO;Lo;0;L;;;;;N;;;;; -178D;KHMER LETTER TTHO;Lo;0;L;;;;;N;;;;; -178E;KHMER LETTER NNO;Lo;0;L;;;;;N;;;;; -178F;KHMER LETTER TA;Lo;0;L;;;;;N;;;;; -1790;KHMER LETTER THA;Lo;0;L;;;;;N;;;;; -1791;KHMER LETTER TO;Lo;0;L;;;;;N;;;;; -1792;KHMER LETTER THO;Lo;0;L;;;;;N;;;;; -1793;KHMER LETTER NO;Lo;0;L;;;;;N;;;;; -1794;KHMER LETTER BA;Lo;0;L;;;;;N;;;;; -1795;KHMER LETTER PHA;Lo;0;L;;;;;N;;;;; -1796;KHMER LETTER PO;Lo;0;L;;;;;N;;;;; -1797;KHMER LETTER PHO;Lo;0;L;;;;;N;;;;; -1798;KHMER LETTER MO;Lo;0;L;;;;;N;;;;; -1799;KHMER LETTER YO;Lo;0;L;;;;;N;;;;; -179A;KHMER LETTER RO;Lo;0;L;;;;;N;;;;; -179B;KHMER LETTER LO;Lo;0;L;;;;;N;;;;; -179C;KHMER LETTER VO;Lo;0;L;;;;;N;;;;; -179D;KHMER LETTER SHA;Lo;0;L;;;;;N;;;;; -179E;KHMER LETTER SSO;Lo;0;L;;;;;N;;;;; -179F;KHMER LETTER SA;Lo;0;L;;;;;N;;;;; -17A0;KHMER LETTER HA;Lo;0;L;;;;;N;;;;; -17A1;KHMER LETTER LA;Lo;0;L;;;;;N;;;;; -17A2;KHMER LETTER QA;Lo;0;L;;;;;N;;;;; -17A3;KHMER INDEPENDENT VOWEL QAQ;Lo;0;L;;;;;N;;;;; -17A4;KHMER INDEPENDENT VOWEL QAA;Lo;0;L;;;;;N;;;;; -17A5;KHMER INDEPENDENT VOWEL QI;Lo;0;L;;;;;N;;;;; -17A6;KHMER INDEPENDENT VOWEL QII;Lo;0;L;;;;;N;;;;; -17A7;KHMER INDEPENDENT VOWEL QU;Lo;0;L;;;;;N;;;;; -17A8;KHMER INDEPENDENT VOWEL QUK;Lo;0;L;;;;;N;;;;; -17A9;KHMER INDEPENDENT VOWEL QUU;Lo;0;L;;;;;N;;;;; -17AA;KHMER INDEPENDENT VOWEL QUUV;Lo;0;L;;;;;N;;;;; -17AB;KHMER INDEPENDENT VOWEL RY;Lo;0;L;;;;;N;;;;; -17AC;KHMER INDEPENDENT VOWEL RYY;Lo;0;L;;;;;N;;;;; -17AD;KHMER INDEPENDENT VOWEL LY;Lo;0;L;;;;;N;;;;; -17AE;KHMER INDEPENDENT VOWEL LYY;Lo;0;L;;;;;N;;;;; -17AF;KHMER INDEPENDENT VOWEL QE;Lo;0;L;;;;;N;;;;; -17B0;KHMER INDEPENDENT VOWEL QAI;Lo;0;L;;;;;N;;;;; -17B1;KHMER INDEPENDENT VOWEL QOO TYPE ONE;Lo;0;L;;;;;N;;;;; -17B2;KHMER INDEPENDENT VOWEL QOO TYPE TWO;Lo;0;L;;;;;N;;;;; -17B3;KHMER INDEPENDENT VOWEL QAU;Lo;0;L;;;;;N;;;;; -17B4;KHMER VOWEL INHERENT AQ;Cf;0;L;;;;;N;;;;; -17B5;KHMER VOWEL INHERENT AA;Cf;0;L;;;;;N;;;;; -17B6;KHMER VOWEL SIGN AA;Mc;0;L;;;;;N;;;;; -17B7;KHMER VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;; -17B8;KHMER VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;; -17B9;KHMER VOWEL SIGN Y;Mn;0;NSM;;;;;N;;;;; -17BA;KHMER VOWEL SIGN YY;Mn;0;NSM;;;;;N;;;;; -17BB;KHMER VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; -17BC;KHMER VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;; -17BD;KHMER VOWEL SIGN UA;Mn;0;NSM;;;;;N;;;;; -17BE;KHMER VOWEL SIGN OE;Mc;0;L;;;;;N;;;;; -17BF;KHMER VOWEL SIGN YA;Mc;0;L;;;;;N;;;;; -17C0;KHMER VOWEL SIGN IE;Mc;0;L;;;;;N;;;;; -17C1;KHMER VOWEL SIGN E;Mc;0;L;;;;;N;;;;; -17C2;KHMER VOWEL SIGN AE;Mc;0;L;;;;;N;;;;; -17C3;KHMER VOWEL SIGN AI;Mc;0;L;;;;;N;;;;; -17C4;KHMER VOWEL SIGN OO;Mc;0;L;;;;;N;;;;; -17C5;KHMER VOWEL SIGN AU;Mc;0;L;;;;;N;;;;; -17C6;KHMER SIGN NIKAHIT;Mn;0;NSM;;;;;N;;;;; -17C7;KHMER SIGN REAHMUK;Mc;0;L;;;;;N;;;;; -17C8;KHMER SIGN YUUKALEAPINTU;Mc;0;L;;;;;N;;;;; -17C9;KHMER SIGN MUUSIKATOAN;Mn;0;NSM;;;;;N;;;;; -17CA;KHMER SIGN TRIISAP;Mn;0;NSM;;;;;N;;;;; -17CB;KHMER SIGN BANTOC;Mn;0;NSM;;;;;N;;;;; -17CC;KHMER SIGN ROBAT;Mn;0;NSM;;;;;N;;;;; -17CD;KHMER SIGN TOANDAKHIAT;Mn;0;NSM;;;;;N;;;;; -17CE;KHMER SIGN KAKABAT;Mn;0;NSM;;;;;N;;;;; -17CF;KHMER SIGN AHSDA;Mn;0;NSM;;;;;N;;;;; -17D0;KHMER SIGN SAMYOK SANNYA;Mn;0;NSM;;;;;N;;;;; -17D1;KHMER SIGN VIRIAM;Mn;0;NSM;;;;;N;;;;; -17D2;KHMER SIGN COENG;Mn;9;NSM;;;;;N;;;;; -17D3;KHMER SIGN BATHAMASAT;Mn;0;NSM;;;;;N;;;;; -17D4;KHMER SIGN KHAN;Po;0;L;;;;;N;;;;; -17D5;KHMER SIGN BARIYOOSAN;Po;0;L;;;;;N;;;;; -17D6;KHMER SIGN CAMNUC PII KUUH;Po;0;L;;;;;N;;;;; -17D7;KHMER SIGN LEK TOO;Lm;0;L;;;;;N;;;;; -17D8;KHMER SIGN BEYYAL;Po;0;L;;;;;N;;;;; -17D9;KHMER SIGN PHNAEK MUAN;Po;0;L;;;;;N;;;;; -17DA;KHMER SIGN KOOMUUT;Po;0;L;;;;;N;;;;; -17DB;KHMER CURRENCY SYMBOL RIEL;Sc;0;ET;;;;;N;;;;; -17DC;KHMER SIGN AVAKRAHASANYA;Lo;0;L;;;;;N;;;;; -17DD;KHMER SIGN ATTHACAN;Mn;230;NSM;;;;;N;;;;; -17E0;KHMER DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; -17E1;KHMER DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; -17E2;KHMER DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; -17E3;KHMER DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; -17E4;KHMER DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; -17E5;KHMER DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; -17E6;KHMER DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; -17E7;KHMER DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; -17E8;KHMER DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; -17E9;KHMER DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; -17F0;KHMER SYMBOL LEK ATTAK SON;No;0;ON;;;;0;N;;;;; -17F1;KHMER SYMBOL LEK ATTAK MUOY;No;0;ON;;;;1;N;;;;; -17F2;KHMER SYMBOL LEK ATTAK PII;No;0;ON;;;;2;N;;;;; -17F3;KHMER SYMBOL LEK ATTAK BEI;No;0;ON;;;;3;N;;;;; -17F4;KHMER SYMBOL LEK ATTAK BUON;No;0;ON;;;;4;N;;;;; -17F5;KHMER SYMBOL LEK ATTAK PRAM;No;0;ON;;;;5;N;;;;; -17F6;KHMER SYMBOL LEK ATTAK PRAM-MUOY;No;0;ON;;;;6;N;;;;; -17F7;KHMER SYMBOL LEK ATTAK PRAM-PII;No;0;ON;;;;7;N;;;;; -17F8;KHMER SYMBOL LEK ATTAK PRAM-BEI;No;0;ON;;;;8;N;;;;; -17F9;KHMER SYMBOL LEK ATTAK PRAM-BUON;No;0;ON;;;;9;N;;;;; -1800;MONGOLIAN BIRGA;Po;0;ON;;;;;N;;;;; -1801;MONGOLIAN ELLIPSIS;Po;0;ON;;;;;N;;;;; -1802;MONGOLIAN COMMA;Po;0;ON;;;;;N;;;;; -1803;MONGOLIAN FULL STOP;Po;0;ON;;;;;N;;;;; -1804;MONGOLIAN COLON;Po;0;ON;;;;;N;;;;; -1805;MONGOLIAN FOUR DOTS;Po;0;ON;;;;;N;;;;; -1806;MONGOLIAN TODO SOFT HYPHEN;Pd;0;ON;;;;;N;;;;; -1807;MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER;Po;0;ON;;;;;N;;;;; -1808;MONGOLIAN MANCHU COMMA;Po;0;ON;;;;;N;;;;; -1809;MONGOLIAN MANCHU FULL STOP;Po;0;ON;;;;;N;;;;; -180A;MONGOLIAN NIRUGU;Po;0;ON;;;;;N;;;;; -180B;MONGOLIAN FREE VARIATION SELECTOR ONE;Mn;0;NSM;;;;;N;;;;; -180C;MONGOLIAN FREE VARIATION SELECTOR TWO;Mn;0;NSM;;;;;N;;;;; -180D;MONGOLIAN FREE VARIATION SELECTOR THREE;Mn;0;NSM;;;;;N;;;;; -180E;MONGOLIAN VOWEL SEPARATOR;Zs;0;WS;;;;;N;;;;; -1810;MONGOLIAN DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; -1811;MONGOLIAN DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; -1812;MONGOLIAN DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; -1813;MONGOLIAN DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; -1814;MONGOLIAN DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; -1815;MONGOLIAN DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; -1816;MONGOLIAN DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; -1817;MONGOLIAN DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; -1818;MONGOLIAN DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; -1819;MONGOLIAN DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; -1820;MONGOLIAN LETTER A;Lo;0;L;;;;;N;;;;; -1821;MONGOLIAN LETTER E;Lo;0;L;;;;;N;;;;; -1822;MONGOLIAN LETTER I;Lo;0;L;;;;;N;;;;; -1823;MONGOLIAN LETTER O;Lo;0;L;;;;;N;;;;; -1824;MONGOLIAN LETTER U;Lo;0;L;;;;;N;;;;; -1825;MONGOLIAN LETTER OE;Lo;0;L;;;;;N;;;;; -1826;MONGOLIAN LETTER UE;Lo;0;L;;;;;N;;;;; -1827;MONGOLIAN LETTER EE;Lo;0;L;;;;;N;;;;; -1828;MONGOLIAN LETTER NA;Lo;0;L;;;;;N;;;;; -1829;MONGOLIAN LETTER ANG;Lo;0;L;;;;;N;;;;; -182A;MONGOLIAN LETTER BA;Lo;0;L;;;;;N;;;;; -182B;MONGOLIAN LETTER PA;Lo;0;L;;;;;N;;;;; -182C;MONGOLIAN LETTER QA;Lo;0;L;;;;;N;;;;; -182D;MONGOLIAN LETTER GA;Lo;0;L;;;;;N;;;;; -182E;MONGOLIAN LETTER MA;Lo;0;L;;;;;N;;;;; -182F;MONGOLIAN LETTER LA;Lo;0;L;;;;;N;;;;; -1830;MONGOLIAN LETTER SA;Lo;0;L;;;;;N;;;;; -1831;MONGOLIAN LETTER SHA;Lo;0;L;;;;;N;;;;; -1832;MONGOLIAN LETTER TA;Lo;0;L;;;;;N;;;;; -1833;MONGOLIAN LETTER DA;Lo;0;L;;;;;N;;;;; -1834;MONGOLIAN LETTER CHA;Lo;0;L;;;;;N;;;;; -1835;MONGOLIAN LETTER JA;Lo;0;L;;;;;N;;;;; -1836;MONGOLIAN LETTER YA;Lo;0;L;;;;;N;;;;; -1837;MONGOLIAN LETTER RA;Lo;0;L;;;;;N;;;;; -1838;MONGOLIAN LETTER WA;Lo;0;L;;;;;N;;;;; -1839;MONGOLIAN LETTER FA;Lo;0;L;;;;;N;;;;; -183A;MONGOLIAN LETTER KA;Lo;0;L;;;;;N;;;;; -183B;MONGOLIAN LETTER KHA;Lo;0;L;;;;;N;;;;; -183C;MONGOLIAN LETTER TSA;Lo;0;L;;;;;N;;;;; -183D;MONGOLIAN LETTER ZA;Lo;0;L;;;;;N;;;;; -183E;MONGOLIAN LETTER HAA;Lo;0;L;;;;;N;;;;; -183F;MONGOLIAN LETTER ZRA;Lo;0;L;;;;;N;;;;; -1840;MONGOLIAN LETTER LHA;Lo;0;L;;;;;N;;;;; -1841;MONGOLIAN LETTER ZHI;Lo;0;L;;;;;N;;;;; -1842;MONGOLIAN LETTER CHI;Lo;0;L;;;;;N;;;;; -1843;MONGOLIAN LETTER TODO LONG VOWEL SIGN;Lm;0;L;;;;;N;;;;; -1844;MONGOLIAN LETTER TODO E;Lo;0;L;;;;;N;;;;; -1845;MONGOLIAN LETTER TODO I;Lo;0;L;;;;;N;;;;; -1846;MONGOLIAN LETTER TODO O;Lo;0;L;;;;;N;;;;; -1847;MONGOLIAN LETTER TODO U;Lo;0;L;;;;;N;;;;; -1848;MONGOLIAN LETTER TODO OE;Lo;0;L;;;;;N;;;;; -1849;MONGOLIAN LETTER TODO UE;Lo;0;L;;;;;N;;;;; -184A;MONGOLIAN LETTER TODO ANG;Lo;0;L;;;;;N;;;;; -184B;MONGOLIAN LETTER TODO BA;Lo;0;L;;;;;N;;;;; -184C;MONGOLIAN LETTER TODO PA;Lo;0;L;;;;;N;;;;; -184D;MONGOLIAN LETTER TODO QA;Lo;0;L;;;;;N;;;;; -184E;MONGOLIAN LETTER TODO GA;Lo;0;L;;;;;N;;;;; -184F;MONGOLIAN LETTER TODO MA;Lo;0;L;;;;;N;;;;; -1850;MONGOLIAN LETTER TODO TA;Lo;0;L;;;;;N;;;;; -1851;MONGOLIAN LETTER TODO DA;Lo;0;L;;;;;N;;;;; -1852;MONGOLIAN LETTER TODO CHA;Lo;0;L;;;;;N;;;;; -1853;MONGOLIAN LETTER TODO JA;Lo;0;L;;;;;N;;;;; -1854;MONGOLIAN LETTER TODO TSA;Lo;0;L;;;;;N;;;;; -1855;MONGOLIAN LETTER TODO YA;Lo;0;L;;;;;N;;;;; -1856;MONGOLIAN LETTER TODO WA;Lo;0;L;;;;;N;;;;; -1857;MONGOLIAN LETTER TODO KA;Lo;0;L;;;;;N;;;;; -1858;MONGOLIAN LETTER TODO GAA;Lo;0;L;;;;;N;;;;; -1859;MONGOLIAN LETTER TODO HAA;Lo;0;L;;;;;N;;;;; -185A;MONGOLIAN LETTER TODO JIA;Lo;0;L;;;;;N;;;;; -185B;MONGOLIAN LETTER TODO NIA;Lo;0;L;;;;;N;;;;; -185C;MONGOLIAN LETTER TODO DZA;Lo;0;L;;;;;N;;;;; -185D;MONGOLIAN LETTER SIBE E;Lo;0;L;;;;;N;;;;; -185E;MONGOLIAN LETTER SIBE I;Lo;0;L;;;;;N;;;;; -185F;MONGOLIAN LETTER SIBE IY;Lo;0;L;;;;;N;;;;; -1860;MONGOLIAN LETTER SIBE UE;Lo;0;L;;;;;N;;;;; -1861;MONGOLIAN LETTER SIBE U;Lo;0;L;;;;;N;;;;; -1862;MONGOLIAN LETTER SIBE ANG;Lo;0;L;;;;;N;;;;; -1863;MONGOLIAN LETTER SIBE KA;Lo;0;L;;;;;N;;;;; -1864;MONGOLIAN LETTER SIBE GA;Lo;0;L;;;;;N;;;;; -1865;MONGOLIAN LETTER SIBE HA;Lo;0;L;;;;;N;;;;; -1866;MONGOLIAN LETTER SIBE PA;Lo;0;L;;;;;N;;;;; -1867;MONGOLIAN LETTER SIBE SHA;Lo;0;L;;;;;N;;;;; -1868;MONGOLIAN LETTER SIBE TA;Lo;0;L;;;;;N;;;;; -1869;MONGOLIAN LETTER SIBE DA;Lo;0;L;;;;;N;;;;; -186A;MONGOLIAN LETTER SIBE JA;Lo;0;L;;;;;N;;;;; -186B;MONGOLIAN LETTER SIBE FA;Lo;0;L;;;;;N;;;;; -186C;MONGOLIAN LETTER SIBE GAA;Lo;0;L;;;;;N;;;;; -186D;MONGOLIAN LETTER SIBE HAA;Lo;0;L;;;;;N;;;;; -186E;MONGOLIAN LETTER SIBE TSA;Lo;0;L;;;;;N;;;;; -186F;MONGOLIAN LETTER SIBE ZA;Lo;0;L;;;;;N;;;;; -1870;MONGOLIAN LETTER SIBE RAA;Lo;0;L;;;;;N;;;;; -1871;MONGOLIAN LETTER SIBE CHA;Lo;0;L;;;;;N;;;;; -1872;MONGOLIAN LETTER SIBE ZHA;Lo;0;L;;;;;N;;;;; -1873;MONGOLIAN LETTER MANCHU I;Lo;0;L;;;;;N;;;;; -1874;MONGOLIAN LETTER MANCHU KA;Lo;0;L;;;;;N;;;;; -1875;MONGOLIAN LETTER MANCHU RA;Lo;0;L;;;;;N;;;;; -1876;MONGOLIAN LETTER MANCHU FA;Lo;0;L;;;;;N;;;;; -1877;MONGOLIAN LETTER MANCHU ZHA;Lo;0;L;;;;;N;;;;; -1880;MONGOLIAN LETTER ALI GALI ANUSVARA ONE;Lo;0;L;;;;;N;;;;; -1881;MONGOLIAN LETTER ALI GALI VISARGA ONE;Lo;0;L;;;;;N;;;;; -1882;MONGOLIAN LETTER ALI GALI DAMARU;Lo;0;L;;;;;N;;;;; -1883;MONGOLIAN LETTER ALI GALI UBADAMA;Lo;0;L;;;;;N;;;;; -1884;MONGOLIAN LETTER ALI GALI INVERTED UBADAMA;Lo;0;L;;;;;N;;;;; -1885;MONGOLIAN LETTER ALI GALI BALUDA;Lo;0;L;;;;;N;;;;; -1886;MONGOLIAN LETTER ALI GALI THREE BALUDA;Lo;0;L;;;;;N;;;;; -1887;MONGOLIAN LETTER ALI GALI A;Lo;0;L;;;;;N;;;;; -1888;MONGOLIAN LETTER ALI GALI I;Lo;0;L;;;;;N;;;;; -1889;MONGOLIAN LETTER ALI GALI KA;Lo;0;L;;;;;N;;;;; -188A;MONGOLIAN LETTER ALI GALI NGA;Lo;0;L;;;;;N;;;;; -188B;MONGOLIAN LETTER ALI GALI CA;Lo;0;L;;;;;N;;;;; -188C;MONGOLIAN LETTER ALI GALI TTA;Lo;0;L;;;;;N;;;;; -188D;MONGOLIAN LETTER ALI GALI TTHA;Lo;0;L;;;;;N;;;;; -188E;MONGOLIAN LETTER ALI GALI DDA;Lo;0;L;;;;;N;;;;; -188F;MONGOLIAN LETTER ALI GALI NNA;Lo;0;L;;;;;N;;;;; -1890;MONGOLIAN LETTER ALI GALI TA;Lo;0;L;;;;;N;;;;; -1891;MONGOLIAN LETTER ALI GALI DA;Lo;0;L;;;;;N;;;;; -1892;MONGOLIAN LETTER ALI GALI PA;Lo;0;L;;;;;N;;;;; -1893;MONGOLIAN LETTER ALI GALI PHA;Lo;0;L;;;;;N;;;;; -1894;MONGOLIAN LETTER ALI GALI SSA;Lo;0;L;;;;;N;;;;; -1895;MONGOLIAN LETTER ALI GALI ZHA;Lo;0;L;;;;;N;;;;; -1896;MONGOLIAN LETTER ALI GALI ZA;Lo;0;L;;;;;N;;;;; -1897;MONGOLIAN LETTER ALI GALI AH;Lo;0;L;;;;;N;;;;; -1898;MONGOLIAN LETTER TODO ALI GALI TA;Lo;0;L;;;;;N;;;;; -1899;MONGOLIAN LETTER TODO ALI GALI ZHA;Lo;0;L;;;;;N;;;;; -189A;MONGOLIAN LETTER MANCHU ALI GALI GHA;Lo;0;L;;;;;N;;;;; -189B;MONGOLIAN LETTER MANCHU ALI GALI NGA;Lo;0;L;;;;;N;;;;; -189C;MONGOLIAN LETTER MANCHU ALI GALI CA;Lo;0;L;;;;;N;;;;; -189D;MONGOLIAN LETTER MANCHU ALI GALI JHA;Lo;0;L;;;;;N;;;;; -189E;MONGOLIAN LETTER MANCHU ALI GALI TTA;Lo;0;L;;;;;N;;;;; -189F;MONGOLIAN LETTER MANCHU ALI GALI DDHA;Lo;0;L;;;;;N;;;;; -18A0;MONGOLIAN LETTER MANCHU ALI GALI TA;Lo;0;L;;;;;N;;;;; -18A1;MONGOLIAN LETTER MANCHU ALI GALI DHA;Lo;0;L;;;;;N;;;;; -18A2;MONGOLIAN LETTER MANCHU ALI GALI SSA;Lo;0;L;;;;;N;;;;; -18A3;MONGOLIAN LETTER MANCHU ALI GALI CYA;Lo;0;L;;;;;N;;;;; -18A4;MONGOLIAN LETTER MANCHU ALI GALI ZHA;Lo;0;L;;;;;N;;;;; -18A5;MONGOLIAN LETTER MANCHU ALI GALI ZA;Lo;0;L;;;;;N;;;;; -18A6;MONGOLIAN LETTER ALI GALI HALF U;Lo;0;L;;;;;N;;;;; -18A7;MONGOLIAN LETTER ALI GALI HALF YA;Lo;0;L;;;;;N;;;;; -18A8;MONGOLIAN LETTER MANCHU ALI GALI BHA;Lo;0;L;;;;;N;;;;; -18A9;MONGOLIAN LETTER ALI GALI DAGALGA;Mn;228;NSM;;;;;N;;;;; -18AA;MONGOLIAN LETTER MANCHU ALI GALI LHA;Lo;0;L;;;;;N;;;;; -18B0;CANADIAN SYLLABICS OY;Lo;0;L;;;;;N;;;;; -18B1;CANADIAN SYLLABICS AY;Lo;0;L;;;;;N;;;;; -18B2;CANADIAN SYLLABICS AAY;Lo;0;L;;;;;N;;;;; -18B3;CANADIAN SYLLABICS WAY;Lo;0;L;;;;;N;;;;; -18B4;CANADIAN SYLLABICS POY;Lo;0;L;;;;;N;;;;; -18B5;CANADIAN SYLLABICS PAY;Lo;0;L;;;;;N;;;;; -18B6;CANADIAN SYLLABICS PWOY;Lo;0;L;;;;;N;;;;; -18B7;CANADIAN SYLLABICS TAY;Lo;0;L;;;;;N;;;;; -18B8;CANADIAN SYLLABICS KAY;Lo;0;L;;;;;N;;;;; -18B9;CANADIAN SYLLABICS KWAY;Lo;0;L;;;;;N;;;;; -18BA;CANADIAN SYLLABICS MAY;Lo;0;L;;;;;N;;;;; -18BB;CANADIAN SYLLABICS NOY;Lo;0;L;;;;;N;;;;; -18BC;CANADIAN SYLLABICS NAY;Lo;0;L;;;;;N;;;;; -18BD;CANADIAN SYLLABICS LAY;Lo;0;L;;;;;N;;;;; -18BE;CANADIAN SYLLABICS SOY;Lo;0;L;;;;;N;;;;; -18BF;CANADIAN SYLLABICS SAY;Lo;0;L;;;;;N;;;;; -18C0;CANADIAN SYLLABICS SHOY;Lo;0;L;;;;;N;;;;; -18C1;CANADIAN SYLLABICS SHAY;Lo;0;L;;;;;N;;;;; -18C2;CANADIAN SYLLABICS SHWOY;Lo;0;L;;;;;N;;;;; -18C3;CANADIAN SYLLABICS YOY;Lo;0;L;;;;;N;;;;; -18C4;CANADIAN SYLLABICS YAY;Lo;0;L;;;;;N;;;;; -18C5;CANADIAN SYLLABICS RAY;Lo;0;L;;;;;N;;;;; -18C6;CANADIAN SYLLABICS NWI;Lo;0;L;;;;;N;;;;; -18C7;CANADIAN SYLLABICS OJIBWAY NWI;Lo;0;L;;;;;N;;;;; -18C8;CANADIAN SYLLABICS NWII;Lo;0;L;;;;;N;;;;; -18C9;CANADIAN SYLLABICS OJIBWAY NWII;Lo;0;L;;;;;N;;;;; -18CA;CANADIAN SYLLABICS NWO;Lo;0;L;;;;;N;;;;; -18CB;CANADIAN SYLLABICS OJIBWAY NWO;Lo;0;L;;;;;N;;;;; -18CC;CANADIAN SYLLABICS NWOO;Lo;0;L;;;;;N;;;;; -18CD;CANADIAN SYLLABICS OJIBWAY NWOO;Lo;0;L;;;;;N;;;;; -18CE;CANADIAN SYLLABICS RWEE;Lo;0;L;;;;;N;;;;; -18CF;CANADIAN SYLLABICS RWI;Lo;0;L;;;;;N;;;;; -18D0;CANADIAN SYLLABICS RWII;Lo;0;L;;;;;N;;;;; -18D1;CANADIAN SYLLABICS RWO;Lo;0;L;;;;;N;;;;; -18D2;CANADIAN SYLLABICS RWOO;Lo;0;L;;;;;N;;;;; -18D3;CANADIAN SYLLABICS RWA;Lo;0;L;;;;;N;;;;; -18D4;CANADIAN SYLLABICS OJIBWAY P;Lo;0;L;;;;;N;;;;; -18D5;CANADIAN SYLLABICS OJIBWAY T;Lo;0;L;;;;;N;;;;; -18D6;CANADIAN SYLLABICS OJIBWAY K;Lo;0;L;;;;;N;;;;; -18D7;CANADIAN SYLLABICS OJIBWAY C;Lo;0;L;;;;;N;;;;; -18D8;CANADIAN SYLLABICS OJIBWAY M;Lo;0;L;;;;;N;;;;; -18D9;CANADIAN SYLLABICS OJIBWAY N;Lo;0;L;;;;;N;;;;; -18DA;CANADIAN SYLLABICS OJIBWAY S;Lo;0;L;;;;;N;;;;; -18DB;CANADIAN SYLLABICS OJIBWAY SH;Lo;0;L;;;;;N;;;;; -18DC;CANADIAN SYLLABICS EASTERN W;Lo;0;L;;;;;N;;;;; -18DD;CANADIAN SYLLABICS WESTERN W;Lo;0;L;;;;;N;;;;; -18DE;CANADIAN SYLLABICS FINAL SMALL RING;Lo;0;L;;;;;N;;;;; -18DF;CANADIAN SYLLABICS FINAL RAISED DOT;Lo;0;L;;;;;N;;;;; -18E0;CANADIAN SYLLABICS R-CREE RWE;Lo;0;L;;;;;N;;;;; -18E1;CANADIAN SYLLABICS WEST-CREE LOO;Lo;0;L;;;;;N;;;;; -18E2;CANADIAN SYLLABICS WEST-CREE LAA;Lo;0;L;;;;;N;;;;; -18E3;CANADIAN SYLLABICS THWE;Lo;0;L;;;;;N;;;;; -18E4;CANADIAN SYLLABICS THWA;Lo;0;L;;;;;N;;;;; -18E5;CANADIAN SYLLABICS TTHWE;Lo;0;L;;;;;N;;;;; -18E6;CANADIAN SYLLABICS TTHOO;Lo;0;L;;;;;N;;;;; -18E7;CANADIAN SYLLABICS TTHAA;Lo;0;L;;;;;N;;;;; -18E8;CANADIAN SYLLABICS TLHWE;Lo;0;L;;;;;N;;;;; -18E9;CANADIAN SYLLABICS TLHOO;Lo;0;L;;;;;N;;;;; -18EA;CANADIAN SYLLABICS SAYISI SHWE;Lo;0;L;;;;;N;;;;; -18EB;CANADIAN SYLLABICS SAYISI SHOO;Lo;0;L;;;;;N;;;;; -18EC;CANADIAN SYLLABICS SAYISI HOO;Lo;0;L;;;;;N;;;;; -18ED;CANADIAN SYLLABICS CARRIER GWU;Lo;0;L;;;;;N;;;;; -18EE;CANADIAN SYLLABICS CARRIER DENE GEE;Lo;0;L;;;;;N;;;;; -18EF;CANADIAN SYLLABICS CARRIER GAA;Lo;0;L;;;;;N;;;;; -18F0;CANADIAN SYLLABICS CARRIER GWA;Lo;0;L;;;;;N;;;;; -18F1;CANADIAN SYLLABICS SAYISI JUU;Lo;0;L;;;;;N;;;;; -18F2;CANADIAN SYLLABICS CARRIER JWA;Lo;0;L;;;;;N;;;;; -18F3;CANADIAN SYLLABICS BEAVER DENE L;Lo;0;L;;;;;N;;;;; -18F4;CANADIAN SYLLABICS BEAVER DENE R;Lo;0;L;;;;;N;;;;; -18F5;CANADIAN SYLLABICS CARRIER DENTAL S;Lo;0;L;;;;;N;;;;; -1900;LIMBU VOWEL-CARRIER LETTER;Lo;0;L;;;;;N;;;;; -1901;LIMBU LETTER KA;Lo;0;L;;;;;N;;;;; -1902;LIMBU LETTER KHA;Lo;0;L;;;;;N;;;;; -1903;LIMBU LETTER GA;Lo;0;L;;;;;N;;;;; -1904;LIMBU LETTER GHA;Lo;0;L;;;;;N;;;;; -1905;LIMBU LETTER NGA;Lo;0;L;;;;;N;;;;; -1906;LIMBU LETTER CA;Lo;0;L;;;;;N;;;;; -1907;LIMBU LETTER CHA;Lo;0;L;;;;;N;;;;; -1908;LIMBU LETTER JA;Lo;0;L;;;;;N;;;;; -1909;LIMBU LETTER JHA;Lo;0;L;;;;;N;;;;; -190A;LIMBU LETTER YAN;Lo;0;L;;;;;N;;;;; -190B;LIMBU LETTER TA;Lo;0;L;;;;;N;;;;; -190C;LIMBU LETTER THA;Lo;0;L;;;;;N;;;;; -190D;LIMBU LETTER DA;Lo;0;L;;;;;N;;;;; -190E;LIMBU LETTER DHA;Lo;0;L;;;;;N;;;;; -190F;LIMBU LETTER NA;Lo;0;L;;;;;N;;;;; -1910;LIMBU LETTER PA;Lo;0;L;;;;;N;;;;; -1911;LIMBU LETTER PHA;Lo;0;L;;;;;N;;;;; -1912;LIMBU LETTER BA;Lo;0;L;;;;;N;;;;; -1913;LIMBU LETTER BHA;Lo;0;L;;;;;N;;;;; -1914;LIMBU LETTER MA;Lo;0;L;;;;;N;;;;; -1915;LIMBU LETTER YA;Lo;0;L;;;;;N;;;;; -1916;LIMBU LETTER RA;Lo;0;L;;;;;N;;;;; -1917;LIMBU LETTER LA;Lo;0;L;;;;;N;;;;; -1918;LIMBU LETTER WA;Lo;0;L;;;;;N;;;;; -1919;LIMBU LETTER SHA;Lo;0;L;;;;;N;;;;; -191A;LIMBU LETTER SSA;Lo;0;L;;;;;N;;;;; -191B;LIMBU LETTER SA;Lo;0;L;;;;;N;;;;; -191C;LIMBU LETTER HA;Lo;0;L;;;;;N;;;;; -1920;LIMBU VOWEL SIGN A;Mn;0;NSM;;;;;N;;;;; -1921;LIMBU VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;; -1922;LIMBU VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; -1923;LIMBU VOWEL SIGN EE;Mc;0;L;;;;;N;;;;; -1924;LIMBU VOWEL SIGN AI;Mc;0;L;;;;;N;;;;; -1925;LIMBU VOWEL SIGN OO;Mc;0;L;;;;;N;;;;; -1926;LIMBU VOWEL SIGN AU;Mc;0;L;;;;;N;;;;; -1927;LIMBU VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;; -1928;LIMBU VOWEL SIGN O;Mn;0;NSM;;;;;N;;;;; -1929;LIMBU SUBJOINED LETTER YA;Mc;0;L;;;;;N;;;;; -192A;LIMBU SUBJOINED LETTER RA;Mc;0;L;;;;;N;;;;; -192B;LIMBU SUBJOINED LETTER WA;Mc;0;L;;;;;N;;;;; -1930;LIMBU SMALL LETTER KA;Mc;0;L;;;;;N;;;;; -1931;LIMBU SMALL LETTER NGA;Mc;0;L;;;;;N;;;;; -1932;LIMBU SMALL LETTER ANUSVARA;Mn;0;NSM;;;;;N;;;;; -1933;LIMBU SMALL LETTER TA;Mc;0;L;;;;;N;;;;; -1934;LIMBU SMALL LETTER NA;Mc;0;L;;;;;N;;;;; -1935;LIMBU SMALL LETTER PA;Mc;0;L;;;;;N;;;;; -1936;LIMBU SMALL LETTER MA;Mc;0;L;;;;;N;;;;; -1937;LIMBU SMALL LETTER RA;Mc;0;L;;;;;N;;;;; -1938;LIMBU SMALL LETTER LA;Mc;0;L;;;;;N;;;;; -1939;LIMBU SIGN MUKPHRENG;Mn;222;NSM;;;;;N;;;;; -193A;LIMBU SIGN KEMPHRENG;Mn;230;NSM;;;;;N;;;;; -193B;LIMBU SIGN SA-I;Mn;220;NSM;;;;;N;;;;; -1940;LIMBU SIGN LOO;So;0;ON;;;;;N;;;;; -1944;LIMBU EXCLAMATION MARK;Po;0;ON;;;;;N;;;;; -1945;LIMBU QUESTION MARK;Po;0;ON;;;;;N;;;;; -1946;LIMBU DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; -1947;LIMBU DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; -1948;LIMBU DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; -1949;LIMBU DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; -194A;LIMBU DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; -194B;LIMBU DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; -194C;LIMBU DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; -194D;LIMBU DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; -194E;LIMBU DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; -194F;LIMBU DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; -1950;TAI LE LETTER KA;Lo;0;L;;;;;N;;;;; -1951;TAI LE LETTER XA;Lo;0;L;;;;;N;;;;; -1952;TAI LE LETTER NGA;Lo;0;L;;;;;N;;;;; -1953;TAI LE LETTER TSA;Lo;0;L;;;;;N;;;;; -1954;TAI LE LETTER SA;Lo;0;L;;;;;N;;;;; -1955;TAI LE LETTER YA;Lo;0;L;;;;;N;;;;; -1956;TAI LE LETTER TA;Lo;0;L;;;;;N;;;;; -1957;TAI LE LETTER THA;Lo;0;L;;;;;N;;;;; -1958;TAI LE LETTER LA;Lo;0;L;;;;;N;;;;; -1959;TAI LE LETTER PA;Lo;0;L;;;;;N;;;;; -195A;TAI LE LETTER PHA;Lo;0;L;;;;;N;;;;; -195B;TAI LE LETTER MA;Lo;0;L;;;;;N;;;;; -195C;TAI LE LETTER FA;Lo;0;L;;;;;N;;;;; -195D;TAI LE LETTER VA;Lo;0;L;;;;;N;;;;; -195E;TAI LE LETTER HA;Lo;0;L;;;;;N;;;;; -195F;TAI LE LETTER QA;Lo;0;L;;;;;N;;;;; -1960;TAI LE LETTER KHA;Lo;0;L;;;;;N;;;;; -1961;TAI LE LETTER TSHA;Lo;0;L;;;;;N;;;;; -1962;TAI LE LETTER NA;Lo;0;L;;;;;N;;;;; -1963;TAI LE LETTER A;Lo;0;L;;;;;N;;;;; -1964;TAI LE LETTER I;Lo;0;L;;;;;N;;;;; -1965;TAI LE LETTER EE;Lo;0;L;;;;;N;;;;; -1966;TAI LE LETTER EH;Lo;0;L;;;;;N;;;;; -1967;TAI LE LETTER U;Lo;0;L;;;;;N;;;;; -1968;TAI LE LETTER OO;Lo;0;L;;;;;N;;;;; -1969;TAI LE LETTER O;Lo;0;L;;;;;N;;;;; -196A;TAI LE LETTER UE;Lo;0;L;;;;;N;;;;; -196B;TAI LE LETTER E;Lo;0;L;;;;;N;;;;; -196C;TAI LE LETTER AUE;Lo;0;L;;;;;N;;;;; -196D;TAI LE LETTER AI;Lo;0;L;;;;;N;;;;; -1970;TAI LE LETTER TONE-2;Lo;0;L;;;;;N;;;;; -1971;TAI LE LETTER TONE-3;Lo;0;L;;;;;N;;;;; -1972;TAI LE LETTER TONE-4;Lo;0;L;;;;;N;;;;; -1973;TAI LE LETTER TONE-5;Lo;0;L;;;;;N;;;;; -1974;TAI LE LETTER TONE-6;Lo;0;L;;;;;N;;;;; -1980;NEW TAI LUE LETTER HIGH QA;Lo;0;L;;;;;N;;;;; -1981;NEW TAI LUE LETTER LOW QA;Lo;0;L;;;;;N;;;;; -1982;NEW TAI LUE LETTER HIGH KA;Lo;0;L;;;;;N;;;;; -1983;NEW TAI LUE LETTER HIGH XA;Lo;0;L;;;;;N;;;;; -1984;NEW TAI LUE LETTER HIGH NGA;Lo;0;L;;;;;N;;;;; -1985;NEW TAI LUE LETTER LOW KA;Lo;0;L;;;;;N;;;;; -1986;NEW TAI LUE LETTER LOW XA;Lo;0;L;;;;;N;;;;; -1987;NEW TAI LUE LETTER LOW NGA;Lo;0;L;;;;;N;;;;; -1988;NEW TAI LUE LETTER HIGH TSA;Lo;0;L;;;;;N;;;;; -1989;NEW TAI LUE LETTER HIGH SA;Lo;0;L;;;;;N;;;;; -198A;NEW TAI LUE LETTER HIGH YA;Lo;0;L;;;;;N;;;;; -198B;NEW TAI LUE LETTER LOW TSA;Lo;0;L;;;;;N;;;;; -198C;NEW TAI LUE LETTER LOW SA;Lo;0;L;;;;;N;;;;; -198D;NEW TAI LUE LETTER LOW YA;Lo;0;L;;;;;N;;;;; -198E;NEW TAI LUE LETTER HIGH TA;Lo;0;L;;;;;N;;;;; -198F;NEW TAI LUE LETTER HIGH THA;Lo;0;L;;;;;N;;;;; -1990;NEW TAI LUE LETTER HIGH NA;Lo;0;L;;;;;N;;;;; -1991;NEW TAI LUE LETTER LOW TA;Lo;0;L;;;;;N;;;;; -1992;NEW TAI LUE LETTER LOW THA;Lo;0;L;;;;;N;;;;; -1993;NEW TAI LUE LETTER LOW NA;Lo;0;L;;;;;N;;;;; -1994;NEW TAI LUE LETTER HIGH PA;Lo;0;L;;;;;N;;;;; -1995;NEW TAI LUE LETTER HIGH PHA;Lo;0;L;;;;;N;;;;; -1996;NEW TAI LUE LETTER HIGH MA;Lo;0;L;;;;;N;;;;; -1997;NEW TAI LUE LETTER LOW PA;Lo;0;L;;;;;N;;;;; -1998;NEW TAI LUE LETTER LOW PHA;Lo;0;L;;;;;N;;;;; -1999;NEW TAI LUE LETTER LOW MA;Lo;0;L;;;;;N;;;;; -199A;NEW TAI LUE LETTER HIGH FA;Lo;0;L;;;;;N;;;;; -199B;NEW TAI LUE LETTER HIGH VA;Lo;0;L;;;;;N;;;;; -199C;NEW TAI LUE LETTER HIGH LA;Lo;0;L;;;;;N;;;;; -199D;NEW TAI LUE LETTER LOW FA;Lo;0;L;;;;;N;;;;; -199E;NEW TAI LUE LETTER LOW VA;Lo;0;L;;;;;N;;;;; -199F;NEW TAI LUE LETTER LOW LA;Lo;0;L;;;;;N;;;;; -19A0;NEW TAI LUE LETTER HIGH HA;Lo;0;L;;;;;N;;;;; -19A1;NEW TAI LUE LETTER HIGH DA;Lo;0;L;;;;;N;;;;; -19A2;NEW TAI LUE LETTER HIGH BA;Lo;0;L;;;;;N;;;;; -19A3;NEW TAI LUE LETTER LOW HA;Lo;0;L;;;;;N;;;;; -19A4;NEW TAI LUE LETTER LOW DA;Lo;0;L;;;;;N;;;;; -19A5;NEW TAI LUE LETTER LOW BA;Lo;0;L;;;;;N;;;;; -19A6;NEW TAI LUE LETTER HIGH KVA;Lo;0;L;;;;;N;;;;; -19A7;NEW TAI LUE LETTER HIGH XVA;Lo;0;L;;;;;N;;;;; -19A8;NEW TAI LUE LETTER LOW KVA;Lo;0;L;;;;;N;;;;; -19A9;NEW TAI LUE LETTER LOW XVA;Lo;0;L;;;;;N;;;;; -19AA;NEW TAI LUE LETTER HIGH SUA;Lo;0;L;;;;;N;;;;; -19AB;NEW TAI LUE LETTER LOW SUA;Lo;0;L;;;;;N;;;;; -19B0;NEW TAI LUE VOWEL SIGN VOWEL SHORTENER;Mc;0;L;;;;;N;;;;; -19B1;NEW TAI LUE VOWEL SIGN AA;Mc;0;L;;;;;N;;;;; -19B2;NEW TAI LUE VOWEL SIGN II;Mc;0;L;;;;;N;;;;; -19B3;NEW TAI LUE VOWEL SIGN U;Mc;0;L;;;;;N;;;;; -19B4;NEW TAI LUE VOWEL SIGN UU;Mc;0;L;;;;;N;;;;; -19B5;NEW TAI LUE VOWEL SIGN E;Mc;0;L;;;;;N;;;;; -19B6;NEW TAI LUE VOWEL SIGN AE;Mc;0;L;;;;;N;;;;; -19B7;NEW TAI LUE VOWEL SIGN O;Mc;0;L;;;;;N;;;;; -19B8;NEW TAI LUE VOWEL SIGN OA;Mc;0;L;;;;;N;;;;; -19B9;NEW TAI LUE VOWEL SIGN UE;Mc;0;L;;;;;N;;;;; -19BA;NEW TAI LUE VOWEL SIGN AY;Mc;0;L;;;;;N;;;;; -19BB;NEW TAI LUE VOWEL SIGN AAY;Mc;0;L;;;;;N;;;;; -19BC;NEW TAI LUE VOWEL SIGN UY;Mc;0;L;;;;;N;;;;; -19BD;NEW TAI LUE VOWEL SIGN OY;Mc;0;L;;;;;N;;;;; -19BE;NEW TAI LUE VOWEL SIGN OAY;Mc;0;L;;;;;N;;;;; -19BF;NEW TAI LUE VOWEL SIGN UEY;Mc;0;L;;;;;N;;;;; -19C0;NEW TAI LUE VOWEL SIGN IY;Mc;0;L;;;;;N;;;;; -19C1;NEW TAI LUE LETTER FINAL V;Lo;0;L;;;;;N;;;;; -19C2;NEW TAI LUE LETTER FINAL NG;Lo;0;L;;;;;N;;;;; -19C3;NEW TAI LUE LETTER FINAL N;Lo;0;L;;;;;N;;;;; -19C4;NEW TAI LUE LETTER FINAL M;Lo;0;L;;;;;N;;;;; -19C5;NEW TAI LUE LETTER FINAL K;Lo;0;L;;;;;N;;;;; -19C6;NEW TAI LUE LETTER FINAL D;Lo;0;L;;;;;N;;;;; -19C7;NEW TAI LUE LETTER FINAL B;Lo;0;L;;;;;N;;;;; -19C8;NEW TAI LUE TONE MARK-1;Mc;0;L;;;;;N;;;;; -19C9;NEW TAI LUE TONE MARK-2;Mc;0;L;;;;;N;;;;; -19D0;NEW TAI LUE DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; -19D1;NEW TAI LUE DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; -19D2;NEW TAI LUE DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; -19D3;NEW TAI LUE DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; -19D4;NEW TAI LUE DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; -19D5;NEW TAI LUE DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; -19D6;NEW TAI LUE DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; -19D7;NEW TAI LUE DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; -19D8;NEW TAI LUE DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; -19D9;NEW TAI LUE DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; -19DA;NEW TAI LUE THAM DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; -19DE;NEW TAI LUE SIGN LAE;Po;0;ON;;;;;N;;;;; -19DF;NEW TAI LUE SIGN LAEV;Po;0;ON;;;;;N;;;;; -19E0;KHMER SYMBOL PATHAMASAT;So;0;ON;;;;;N;;;;; -19E1;KHMER SYMBOL MUOY KOET;So;0;ON;;;;;N;;;;; -19E2;KHMER SYMBOL PII KOET;So;0;ON;;;;;N;;;;; -19E3;KHMER SYMBOL BEI KOET;So;0;ON;;;;;N;;;;; -19E4;KHMER SYMBOL BUON KOET;So;0;ON;;;;;N;;;;; -19E5;KHMER SYMBOL PRAM KOET;So;0;ON;;;;;N;;;;; -19E6;KHMER SYMBOL PRAM-MUOY KOET;So;0;ON;;;;;N;;;;; -19E7;KHMER SYMBOL PRAM-PII KOET;So;0;ON;;;;;N;;;;; -19E8;KHMER SYMBOL PRAM-BEI KOET;So;0;ON;;;;;N;;;;; -19E9;KHMER SYMBOL PRAM-BUON KOET;So;0;ON;;;;;N;;;;; -19EA;KHMER SYMBOL DAP KOET;So;0;ON;;;;;N;;;;; -19EB;KHMER SYMBOL DAP-MUOY KOET;So;0;ON;;;;;N;;;;; -19EC;KHMER SYMBOL DAP-PII KOET;So;0;ON;;;;;N;;;;; -19ED;KHMER SYMBOL DAP-BEI KOET;So;0;ON;;;;;N;;;;; -19EE;KHMER SYMBOL DAP-BUON KOET;So;0;ON;;;;;N;;;;; -19EF;KHMER SYMBOL DAP-PRAM KOET;So;0;ON;;;;;N;;;;; -19F0;KHMER SYMBOL TUTEYASAT;So;0;ON;;;;;N;;;;; -19F1;KHMER SYMBOL MUOY ROC;So;0;ON;;;;;N;;;;; -19F2;KHMER SYMBOL PII ROC;So;0;ON;;;;;N;;;;; -19F3;KHMER SYMBOL BEI ROC;So;0;ON;;;;;N;;;;; -19F4;KHMER SYMBOL BUON ROC;So;0;ON;;;;;N;;;;; -19F5;KHMER SYMBOL PRAM ROC;So;0;ON;;;;;N;;;;; -19F6;KHMER SYMBOL PRAM-MUOY ROC;So;0;ON;;;;;N;;;;; -19F7;KHMER SYMBOL PRAM-PII ROC;So;0;ON;;;;;N;;;;; -19F8;KHMER SYMBOL PRAM-BEI ROC;So;0;ON;;;;;N;;;;; -19F9;KHMER SYMBOL PRAM-BUON ROC;So;0;ON;;;;;N;;;;; -19FA;KHMER SYMBOL DAP ROC;So;0;ON;;;;;N;;;;; -19FB;KHMER SYMBOL DAP-MUOY ROC;So;0;ON;;;;;N;;;;; -19FC;KHMER SYMBOL DAP-PII ROC;So;0;ON;;;;;N;;;;; -19FD;KHMER SYMBOL DAP-BEI ROC;So;0;ON;;;;;N;;;;; -19FE;KHMER SYMBOL DAP-BUON ROC;So;0;ON;;;;;N;;;;; -19FF;KHMER SYMBOL DAP-PRAM ROC;So;0;ON;;;;;N;;;;; -1A00;BUGINESE LETTER KA;Lo;0;L;;;;;N;;;;; -1A01;BUGINESE LETTER GA;Lo;0;L;;;;;N;;;;; -1A02;BUGINESE LETTER NGA;Lo;0;L;;;;;N;;;;; -1A03;BUGINESE LETTER NGKA;Lo;0;L;;;;;N;;;;; -1A04;BUGINESE LETTER PA;Lo;0;L;;;;;N;;;;; -1A05;BUGINESE LETTER BA;Lo;0;L;;;;;N;;;;; -1A06;BUGINESE LETTER MA;Lo;0;L;;;;;N;;;;; -1A07;BUGINESE LETTER MPA;Lo;0;L;;;;;N;;;;; -1A08;BUGINESE LETTER TA;Lo;0;L;;;;;N;;;;; -1A09;BUGINESE LETTER DA;Lo;0;L;;;;;N;;;;; -1A0A;BUGINESE LETTER NA;Lo;0;L;;;;;N;;;;; -1A0B;BUGINESE LETTER NRA;Lo;0;L;;;;;N;;;;; -1A0C;BUGINESE LETTER CA;Lo;0;L;;;;;N;;;;; -1A0D;BUGINESE LETTER JA;Lo;0;L;;;;;N;;;;; -1A0E;BUGINESE LETTER NYA;Lo;0;L;;;;;N;;;;; -1A0F;BUGINESE LETTER NYCA;Lo;0;L;;;;;N;;;;; -1A10;BUGINESE LETTER YA;Lo;0;L;;;;;N;;;;; -1A11;BUGINESE LETTER RA;Lo;0;L;;;;;N;;;;; -1A12;BUGINESE LETTER LA;Lo;0;L;;;;;N;;;;; -1A13;BUGINESE LETTER VA;Lo;0;L;;;;;N;;;;; -1A14;BUGINESE LETTER SA;Lo;0;L;;;;;N;;;;; -1A15;BUGINESE LETTER A;Lo;0;L;;;;;N;;;;; -1A16;BUGINESE LETTER HA;Lo;0;L;;;;;N;;;;; -1A17;BUGINESE VOWEL SIGN I;Mn;230;NSM;;;;;N;;;;; -1A18;BUGINESE VOWEL SIGN U;Mn;220;NSM;;;;;N;;;;; -1A19;BUGINESE VOWEL SIGN E;Mc;0;L;;;;;N;;;;; -1A1A;BUGINESE VOWEL SIGN O;Mc;0;L;;;;;N;;;;; -1A1B;BUGINESE VOWEL SIGN AE;Mc;0;L;;;;;N;;;;; -1A1E;BUGINESE PALLAWA;Po;0;L;;;;;N;;;;; -1A1F;BUGINESE END OF SECTION;Po;0;L;;;;;N;;;;; -1A20;TAI THAM LETTER HIGH KA;Lo;0;L;;;;;N;;;;; -1A21;TAI THAM LETTER HIGH KHA;Lo;0;L;;;;;N;;;;; -1A22;TAI THAM LETTER HIGH KXA;Lo;0;L;;;;;N;;;;; -1A23;TAI THAM LETTER LOW KA;Lo;0;L;;;;;N;;;;; -1A24;TAI THAM LETTER LOW KXA;Lo;0;L;;;;;N;;;;; -1A25;TAI THAM LETTER LOW KHA;Lo;0;L;;;;;N;;;;; -1A26;TAI THAM LETTER NGA;Lo;0;L;;;;;N;;;;; -1A27;TAI THAM LETTER HIGH CA;Lo;0;L;;;;;N;;;;; -1A28;TAI THAM LETTER HIGH CHA;Lo;0;L;;;;;N;;;;; -1A29;TAI THAM LETTER LOW CA;Lo;0;L;;;;;N;;;;; -1A2A;TAI THAM LETTER LOW SA;Lo;0;L;;;;;N;;;;; -1A2B;TAI THAM LETTER LOW CHA;Lo;0;L;;;;;N;;;;; -1A2C;TAI THAM LETTER NYA;Lo;0;L;;;;;N;;;;; -1A2D;TAI THAM LETTER RATA;Lo;0;L;;;;;N;;;;; -1A2E;TAI THAM LETTER HIGH RATHA;Lo;0;L;;;;;N;;;;; -1A2F;TAI THAM LETTER DA;Lo;0;L;;;;;N;;;;; -1A30;TAI THAM LETTER LOW RATHA;Lo;0;L;;;;;N;;;;; -1A31;TAI THAM LETTER RANA;Lo;0;L;;;;;N;;;;; -1A32;TAI THAM LETTER HIGH TA;Lo;0;L;;;;;N;;;;; -1A33;TAI THAM LETTER HIGH THA;Lo;0;L;;;;;N;;;;; -1A34;TAI THAM LETTER LOW TA;Lo;0;L;;;;;N;;;;; -1A35;TAI THAM LETTER LOW THA;Lo;0;L;;;;;N;;;;; -1A36;TAI THAM LETTER NA;Lo;0;L;;;;;N;;;;; -1A37;TAI THAM LETTER BA;Lo;0;L;;;;;N;;;;; -1A38;TAI THAM LETTER HIGH PA;Lo;0;L;;;;;N;;;;; -1A39;TAI THAM LETTER HIGH PHA;Lo;0;L;;;;;N;;;;; -1A3A;TAI THAM LETTER HIGH FA;Lo;0;L;;;;;N;;;;; -1A3B;TAI THAM LETTER LOW PA;Lo;0;L;;;;;N;;;;; -1A3C;TAI THAM LETTER LOW FA;Lo;0;L;;;;;N;;;;; -1A3D;TAI THAM LETTER LOW PHA;Lo;0;L;;;;;N;;;;; -1A3E;TAI THAM LETTER MA;Lo;0;L;;;;;N;;;;; -1A3F;TAI THAM LETTER LOW YA;Lo;0;L;;;;;N;;;;; -1A40;TAI THAM LETTER HIGH YA;Lo;0;L;;;;;N;;;;; -1A41;TAI THAM LETTER RA;Lo;0;L;;;;;N;;;;; -1A42;TAI THAM LETTER RUE;Lo;0;L;;;;;N;;;;; -1A43;TAI THAM LETTER LA;Lo;0;L;;;;;N;;;;; -1A44;TAI THAM LETTER LUE;Lo;0;L;;;;;N;;;;; -1A45;TAI THAM LETTER WA;Lo;0;L;;;;;N;;;;; -1A46;TAI THAM LETTER HIGH SHA;Lo;0;L;;;;;N;;;;; -1A47;TAI THAM LETTER HIGH SSA;Lo;0;L;;;;;N;;;;; -1A48;TAI THAM LETTER HIGH SA;Lo;0;L;;;;;N;;;;; -1A49;TAI THAM LETTER HIGH HA;Lo;0;L;;;;;N;;;;; -1A4A;TAI THAM LETTER LLA;Lo;0;L;;;;;N;;;;; -1A4B;TAI THAM LETTER A;Lo;0;L;;;;;N;;;;; -1A4C;TAI THAM LETTER LOW HA;Lo;0;L;;;;;N;;;;; -1A4D;TAI THAM LETTER I;Lo;0;L;;;;;N;;;;; -1A4E;TAI THAM LETTER II;Lo;0;L;;;;;N;;;;; -1A4F;TAI THAM LETTER U;Lo;0;L;;;;;N;;;;; -1A50;TAI THAM LETTER UU;Lo;0;L;;;;;N;;;;; -1A51;TAI THAM LETTER EE;Lo;0;L;;;;;N;;;;; -1A52;TAI THAM LETTER OO;Lo;0;L;;;;;N;;;;; -1A53;TAI THAM LETTER LAE;Lo;0;L;;;;;N;;;;; -1A54;TAI THAM LETTER GREAT SA;Lo;0;L;;;;;N;;;;; -1A55;TAI THAM CONSONANT SIGN MEDIAL RA;Mc;0;L;;;;;N;;;;; -1A56;TAI THAM CONSONANT SIGN MEDIAL LA;Mn;0;NSM;;;;;N;;;;; -1A57;TAI THAM CONSONANT SIGN LA TANG LAI;Mc;0;L;;;;;N;;;;; -1A58;TAI THAM SIGN MAI KANG LAI;Mn;0;NSM;;;;;N;;;;; -1A59;TAI THAM CONSONANT SIGN FINAL NGA;Mn;0;NSM;;;;;N;;;;; -1A5A;TAI THAM CONSONANT SIGN LOW PA;Mn;0;NSM;;;;;N;;;;; -1A5B;TAI THAM CONSONANT SIGN HIGH RATHA OR LOW PA;Mn;0;NSM;;;;;N;;;;; -1A5C;TAI THAM CONSONANT SIGN MA;Mn;0;NSM;;;;;N;;;;; -1A5D;TAI THAM CONSONANT SIGN BA;Mn;0;NSM;;;;;N;;;;; -1A5E;TAI THAM CONSONANT SIGN SA;Mn;0;NSM;;;;;N;;;;; -1A60;TAI THAM SIGN SAKOT;Mn;9;NSM;;;;;N;;;;; -1A61;TAI THAM VOWEL SIGN A;Mc;0;L;;;;;N;;;;; -1A62;TAI THAM VOWEL SIGN MAI SAT;Mn;0;NSM;;;;;N;;;;; -1A63;TAI THAM VOWEL SIGN AA;Mc;0;L;;;;;N;;;;; -1A64;TAI THAM VOWEL SIGN TALL AA;Mc;0;L;;;;;N;;;;; -1A65;TAI THAM VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;; -1A66;TAI THAM VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;; -1A67;TAI THAM VOWEL SIGN UE;Mn;0;NSM;;;;;N;;;;; -1A68;TAI THAM VOWEL SIGN UUE;Mn;0;NSM;;;;;N;;;;; -1A69;TAI THAM VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; -1A6A;TAI THAM VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;; -1A6B;TAI THAM VOWEL SIGN O;Mn;0;NSM;;;;;N;;;;; -1A6C;TAI THAM VOWEL SIGN OA BELOW;Mn;0;NSM;;;;;N;;;;; -1A6D;TAI THAM VOWEL SIGN OY;Mc;0;L;;;;;N;;;;; -1A6E;TAI THAM VOWEL SIGN E;Mc;0;L;;;;;N;;;;; -1A6F;TAI THAM VOWEL SIGN AE;Mc;0;L;;;;;N;;;;; -1A70;TAI THAM VOWEL SIGN OO;Mc;0;L;;;;;N;;;;; -1A71;TAI THAM VOWEL SIGN AI;Mc;0;L;;;;;N;;;;; -1A72;TAI THAM VOWEL SIGN THAM AI;Mc;0;L;;;;;N;;;;; -1A73;TAI THAM VOWEL SIGN OA ABOVE;Mn;0;NSM;;;;;N;;;;; -1A74;TAI THAM SIGN MAI KANG;Mn;0;NSM;;;;;N;;;;; -1A75;TAI THAM SIGN TONE-1;Mn;230;NSM;;;;;N;;;;; -1A76;TAI THAM SIGN TONE-2;Mn;230;NSM;;;;;N;;;;; -1A77;TAI THAM SIGN KHUEN TONE-3;Mn;230;NSM;;;;;N;;;;; -1A78;TAI THAM SIGN KHUEN TONE-4;Mn;230;NSM;;;;;N;;;;; -1A79;TAI THAM SIGN KHUEN TONE-5;Mn;230;NSM;;;;;N;;;;; -1A7A;TAI THAM SIGN RA HAAM;Mn;230;NSM;;;;;N;;;;; -1A7B;TAI THAM SIGN MAI SAM;Mn;230;NSM;;;;;N;;;;; -1A7C;TAI THAM SIGN KHUEN-LUE KARAN;Mn;230;NSM;;;;;N;;;;; -1A7F;TAI THAM COMBINING CRYPTOGRAMMIC DOT;Mn;220;NSM;;;;;N;;;;; -1A80;TAI THAM HORA DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; -1A81;TAI THAM HORA DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; -1A82;TAI THAM HORA DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; -1A83;TAI THAM HORA DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; -1A84;TAI THAM HORA DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; -1A85;TAI THAM HORA DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; -1A86;TAI THAM HORA DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; -1A87;TAI THAM HORA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; -1A88;TAI THAM HORA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; -1A89;TAI THAM HORA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; -1A90;TAI THAM THAM DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; -1A91;TAI THAM THAM DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; -1A92;TAI THAM THAM DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; -1A93;TAI THAM THAM DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; -1A94;TAI THAM THAM DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; -1A95;TAI THAM THAM DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; -1A96;TAI THAM THAM DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; -1A97;TAI THAM THAM DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; -1A98;TAI THAM THAM DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; -1A99;TAI THAM THAM DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; -1AA0;TAI THAM SIGN WIANG;Po;0;L;;;;;N;;;;; -1AA1;TAI THAM SIGN WIANGWAAK;Po;0;L;;;;;N;;;;; -1AA2;TAI THAM SIGN SAWAN;Po;0;L;;;;;N;;;;; -1AA3;TAI THAM SIGN KEOW;Po;0;L;;;;;N;;;;; -1AA4;TAI THAM SIGN HOY;Po;0;L;;;;;N;;;;; -1AA5;TAI THAM SIGN DOKMAI;Po;0;L;;;;;N;;;;; -1AA6;TAI THAM SIGN REVERSED ROTATED RANA;Po;0;L;;;;;N;;;;; -1AA7;TAI THAM SIGN MAI YAMOK;Lm;0;L;;;;;N;;;;; -1AA8;TAI THAM SIGN KAAN;Po;0;L;;;;;N;;;;; -1AA9;TAI THAM SIGN KAANKUU;Po;0;L;;;;;N;;;;; -1AAA;TAI THAM SIGN SATKAAN;Po;0;L;;;;;N;;;;; -1AAB;TAI THAM SIGN SATKAANKUU;Po;0;L;;;;;N;;;;; -1AAC;TAI THAM SIGN HANG;Po;0;L;;;;;N;;;;; -1AAD;TAI THAM SIGN CAANG;Po;0;L;;;;;N;;;;; -1B00;BALINESE SIGN ULU RICEM;Mn;0;NSM;;;;;N;;;;; -1B01;BALINESE SIGN ULU CANDRA;Mn;0;NSM;;;;;N;;;;; -1B02;BALINESE SIGN CECEK;Mn;0;NSM;;;;;N;;;;; -1B03;BALINESE SIGN SURANG;Mn;0;NSM;;;;;N;;;;; -1B04;BALINESE SIGN BISAH;Mc;0;L;;;;;N;;;;; -1B05;BALINESE LETTER AKARA;Lo;0;L;;;;;N;;;;; -1B06;BALINESE LETTER AKARA TEDUNG;Lo;0;L;1B05 1B35;;;;N;;;;; -1B07;BALINESE LETTER IKARA;Lo;0;L;;;;;N;;;;; -1B08;BALINESE LETTER IKARA TEDUNG;Lo;0;L;1B07 1B35;;;;N;;;;; -1B09;BALINESE LETTER UKARA;Lo;0;L;;;;;N;;;;; -1B0A;BALINESE LETTER UKARA TEDUNG;Lo;0;L;1B09 1B35;;;;N;;;;; -1B0B;BALINESE LETTER RA REPA;Lo;0;L;;;;;N;;;;; -1B0C;BALINESE LETTER RA REPA TEDUNG;Lo;0;L;1B0B 1B35;;;;N;;;;; -1B0D;BALINESE LETTER LA LENGA;Lo;0;L;;;;;N;;;;; -1B0E;BALINESE LETTER LA LENGA TEDUNG;Lo;0;L;1B0D 1B35;;;;N;;;;; -1B0F;BALINESE LETTER EKARA;Lo;0;L;;;;;N;;;;; -1B10;BALINESE LETTER AIKARA;Lo;0;L;;;;;N;;;;; -1B11;BALINESE LETTER OKARA;Lo;0;L;;;;;N;;;;; -1B12;BALINESE LETTER OKARA TEDUNG;Lo;0;L;1B11 1B35;;;;N;;;;; -1B13;BALINESE LETTER KA;Lo;0;L;;;;;N;;;;; -1B14;BALINESE LETTER KA MAHAPRANA;Lo;0;L;;;;;N;;;;; -1B15;BALINESE LETTER GA;Lo;0;L;;;;;N;;;;; -1B16;BALINESE LETTER GA GORA;Lo;0;L;;;;;N;;;;; -1B17;BALINESE LETTER NGA;Lo;0;L;;;;;N;;;;; -1B18;BALINESE LETTER CA;Lo;0;L;;;;;N;;;;; -1B19;BALINESE LETTER CA LACA;Lo;0;L;;;;;N;;;;; -1B1A;BALINESE LETTER JA;Lo;0;L;;;;;N;;;;; -1B1B;BALINESE LETTER JA JERA;Lo;0;L;;;;;N;;;;; -1B1C;BALINESE LETTER NYA;Lo;0;L;;;;;N;;;;; -1B1D;BALINESE LETTER TA LATIK;Lo;0;L;;;;;N;;;;; -1B1E;BALINESE LETTER TA MURDA MAHAPRANA;Lo;0;L;;;;;N;;;;; -1B1F;BALINESE LETTER DA MURDA ALPAPRANA;Lo;0;L;;;;;N;;;;; -1B20;BALINESE LETTER DA MURDA MAHAPRANA;Lo;0;L;;;;;N;;;;; -1B21;BALINESE LETTER NA RAMBAT;Lo;0;L;;;;;N;;;;; -1B22;BALINESE LETTER TA;Lo;0;L;;;;;N;;;;; -1B23;BALINESE LETTER TA TAWA;Lo;0;L;;;;;N;;;;; -1B24;BALINESE LETTER DA;Lo;0;L;;;;;N;;;;; -1B25;BALINESE LETTER DA MADU;Lo;0;L;;;;;N;;;;; -1B26;BALINESE LETTER NA;Lo;0;L;;;;;N;;;;; -1B27;BALINESE LETTER PA;Lo;0;L;;;;;N;;;;; -1B28;BALINESE LETTER PA KAPAL;Lo;0;L;;;;;N;;;;; -1B29;BALINESE LETTER BA;Lo;0;L;;;;;N;;;;; -1B2A;BALINESE LETTER BA KEMBANG;Lo;0;L;;;;;N;;;;; -1B2B;BALINESE LETTER MA;Lo;0;L;;;;;N;;;;; -1B2C;BALINESE LETTER YA;Lo;0;L;;;;;N;;;;; -1B2D;BALINESE LETTER RA;Lo;0;L;;;;;N;;;;; -1B2E;BALINESE LETTER LA;Lo;0;L;;;;;N;;;;; -1B2F;BALINESE LETTER WA;Lo;0;L;;;;;N;;;;; -1B30;BALINESE LETTER SA SAGA;Lo;0;L;;;;;N;;;;; -1B31;BALINESE LETTER SA SAPA;Lo;0;L;;;;;N;;;;; -1B32;BALINESE LETTER SA;Lo;0;L;;;;;N;;;;; -1B33;BALINESE LETTER HA;Lo;0;L;;;;;N;;;;; -1B34;BALINESE SIGN REREKAN;Mn;7;NSM;;;;;N;;;;; -1B35;BALINESE VOWEL SIGN TEDUNG;Mc;0;L;;;;;N;;;;; -1B36;BALINESE VOWEL SIGN ULU;Mn;0;NSM;;;;;N;;;;; -1B37;BALINESE VOWEL SIGN ULU SARI;Mn;0;NSM;;;;;N;;;;; -1B38;BALINESE VOWEL SIGN SUKU;Mn;0;NSM;;;;;N;;;;; -1B39;BALINESE VOWEL SIGN SUKU ILUT;Mn;0;NSM;;;;;N;;;;; -1B3A;BALINESE VOWEL SIGN RA REPA;Mn;0;NSM;;;;;N;;;;; -1B3B;BALINESE VOWEL SIGN RA REPA TEDUNG;Mc;0;L;1B3A 1B35;;;;N;;;;; -1B3C;BALINESE VOWEL SIGN LA LENGA;Mn;0;NSM;;;;;N;;;;; -1B3D;BALINESE VOWEL SIGN LA LENGA TEDUNG;Mc;0;L;1B3C 1B35;;;;N;;;;; -1B3E;BALINESE VOWEL SIGN TALING;Mc;0;L;;;;;N;;;;; -1B3F;BALINESE VOWEL SIGN TALING REPA;Mc;0;L;;;;;N;;;;; -1B40;BALINESE VOWEL SIGN TALING TEDUNG;Mc;0;L;1B3E 1B35;;;;N;;;;; -1B41;BALINESE VOWEL SIGN TALING REPA TEDUNG;Mc;0;L;1B3F 1B35;;;;N;;;;; -1B42;BALINESE VOWEL SIGN PEPET;Mn;0;NSM;;;;;N;;;;; -1B43;BALINESE VOWEL SIGN PEPET TEDUNG;Mc;0;L;1B42 1B35;;;;N;;;;; -1B44;BALINESE ADEG ADEG;Mc;9;L;;;;;N;;;;; -1B45;BALINESE LETTER KAF SASAK;Lo;0;L;;;;;N;;;;; -1B46;BALINESE LETTER KHOT SASAK;Lo;0;L;;;;;N;;;;; -1B47;BALINESE LETTER TZIR SASAK;Lo;0;L;;;;;N;;;;; -1B48;BALINESE LETTER EF SASAK;Lo;0;L;;;;;N;;;;; -1B49;BALINESE LETTER VE SASAK;Lo;0;L;;;;;N;;;;; -1B4A;BALINESE LETTER ZAL SASAK;Lo;0;L;;;;;N;;;;; -1B4B;BALINESE LETTER ASYURA SASAK;Lo;0;L;;;;;N;;;;; -1B50;BALINESE DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; -1B51;BALINESE DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; -1B52;BALINESE DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; -1B53;BALINESE DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; -1B54;BALINESE DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; -1B55;BALINESE DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; -1B56;BALINESE DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; -1B57;BALINESE DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; -1B58;BALINESE DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; -1B59;BALINESE DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; -1B5A;BALINESE PANTI;Po;0;L;;;;;N;;;;; -1B5B;BALINESE PAMADA;Po;0;L;;;;;N;;;;; -1B5C;BALINESE WINDU;Po;0;L;;;;;N;;;;; -1B5D;BALINESE CARIK PAMUNGKAH;Po;0;L;;;;;N;;;;; -1B5E;BALINESE CARIK SIKI;Po;0;L;;;;;N;;;;; -1B5F;BALINESE CARIK PAREREN;Po;0;L;;;;;N;;;;; -1B60;BALINESE PAMENENG;Po;0;L;;;;;N;;;;; -1B61;BALINESE MUSICAL SYMBOL DONG;So;0;L;;;;;N;;;;; -1B62;BALINESE MUSICAL SYMBOL DENG;So;0;L;;;;;N;;;;; -1B63;BALINESE MUSICAL SYMBOL DUNG;So;0;L;;;;;N;;;;; -1B64;BALINESE MUSICAL SYMBOL DANG;So;0;L;;;;;N;;;;; -1B65;BALINESE MUSICAL SYMBOL DANG SURANG;So;0;L;;;;;N;;;;; -1B66;BALINESE MUSICAL SYMBOL DING;So;0;L;;;;;N;;;;; -1B67;BALINESE MUSICAL SYMBOL DAENG;So;0;L;;;;;N;;;;; -1B68;BALINESE MUSICAL SYMBOL DEUNG;So;0;L;;;;;N;;;;; -1B69;BALINESE MUSICAL SYMBOL DAING;So;0;L;;;;;N;;;;; -1B6A;BALINESE MUSICAL SYMBOL DANG GEDE;So;0;L;;;;;N;;;;; -1B6B;BALINESE MUSICAL SYMBOL COMBINING TEGEH;Mn;230;NSM;;;;;N;;;;; -1B6C;BALINESE MUSICAL SYMBOL COMBINING ENDEP;Mn;220;NSM;;;;;N;;;;; -1B6D;BALINESE MUSICAL SYMBOL COMBINING KEMPUL;Mn;230;NSM;;;;;N;;;;; -1B6E;BALINESE MUSICAL SYMBOL COMBINING KEMPLI;Mn;230;NSM;;;;;N;;;;; -1B6F;BALINESE MUSICAL SYMBOL COMBINING JEGOGAN;Mn;230;NSM;;;;;N;;;;; -1B70;BALINESE MUSICAL SYMBOL COMBINING KEMPUL WITH JEGOGAN;Mn;230;NSM;;;;;N;;;;; -1B71;BALINESE MUSICAL SYMBOL COMBINING KEMPLI WITH JEGOGAN;Mn;230;NSM;;;;;N;;;;; -1B72;BALINESE MUSICAL SYMBOL COMBINING BENDE;Mn;230;NSM;;;;;N;;;;; -1B73;BALINESE MUSICAL SYMBOL COMBINING GONG;Mn;230;NSM;;;;;N;;;;; -1B74;BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DUG;So;0;L;;;;;N;;;;; -1B75;BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DAG;So;0;L;;;;;N;;;;; -1B76;BALINESE MUSICAL SYMBOL RIGHT-HAND CLOSED TUK;So;0;L;;;;;N;;;;; -1B77;BALINESE MUSICAL SYMBOL RIGHT-HAND CLOSED TAK;So;0;L;;;;;N;;;;; -1B78;BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PANG;So;0;L;;;;;N;;;;; -1B79;BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PUNG;So;0;L;;;;;N;;;;; -1B7A;BALINESE MUSICAL SYMBOL LEFT-HAND CLOSED PLAK;So;0;L;;;;;N;;;;; -1B7B;BALINESE MUSICAL SYMBOL LEFT-HAND CLOSED PLUK;So;0;L;;;;;N;;;;; -1B7C;BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING;So;0;L;;;;;N;;;;; -1B80;SUNDANESE SIGN PANYECEK;Mn;0;NSM;;;;;N;;;;; -1B81;SUNDANESE SIGN PANGLAYAR;Mn;0;NSM;;;;;N;;;;; -1B82;SUNDANESE SIGN PANGWISAD;Mc;0;L;;;;;N;;;;; -1B83;SUNDANESE LETTER A;Lo;0;L;;;;;N;;;;; -1B84;SUNDANESE LETTER I;Lo;0;L;;;;;N;;;;; -1B85;SUNDANESE LETTER U;Lo;0;L;;;;;N;;;;; -1B86;SUNDANESE LETTER AE;Lo;0;L;;;;;N;;;;; -1B87;SUNDANESE LETTER O;Lo;0;L;;;;;N;;;;; -1B88;SUNDANESE LETTER E;Lo;0;L;;;;;N;;;;; -1B89;SUNDANESE LETTER EU;Lo;0;L;;;;;N;;;;; -1B8A;SUNDANESE LETTER KA;Lo;0;L;;;;;N;;;;; -1B8B;SUNDANESE LETTER QA;Lo;0;L;;;;;N;;;;; -1B8C;SUNDANESE LETTER GA;Lo;0;L;;;;;N;;;;; -1B8D;SUNDANESE LETTER NGA;Lo;0;L;;;;;N;;;;; -1B8E;SUNDANESE LETTER CA;Lo;0;L;;;;;N;;;;; -1B8F;SUNDANESE LETTER JA;Lo;0;L;;;;;N;;;;; -1B90;SUNDANESE LETTER ZA;Lo;0;L;;;;;N;;;;; -1B91;SUNDANESE LETTER NYA;Lo;0;L;;;;;N;;;;; -1B92;SUNDANESE LETTER TA;Lo;0;L;;;;;N;;;;; -1B93;SUNDANESE LETTER DA;Lo;0;L;;;;;N;;;;; -1B94;SUNDANESE LETTER NA;Lo;0;L;;;;;N;;;;; -1B95;SUNDANESE LETTER PA;Lo;0;L;;;;;N;;;;; -1B96;SUNDANESE LETTER FA;Lo;0;L;;;;;N;;;;; -1B97;SUNDANESE LETTER VA;Lo;0;L;;;;;N;;;;; -1B98;SUNDANESE LETTER BA;Lo;0;L;;;;;N;;;;; -1B99;SUNDANESE LETTER MA;Lo;0;L;;;;;N;;;;; -1B9A;SUNDANESE LETTER YA;Lo;0;L;;;;;N;;;;; -1B9B;SUNDANESE LETTER RA;Lo;0;L;;;;;N;;;;; -1B9C;SUNDANESE LETTER LA;Lo;0;L;;;;;N;;;;; -1B9D;SUNDANESE LETTER WA;Lo;0;L;;;;;N;;;;; -1B9E;SUNDANESE LETTER SA;Lo;0;L;;;;;N;;;;; -1B9F;SUNDANESE LETTER XA;Lo;0;L;;;;;N;;;;; -1BA0;SUNDANESE LETTER HA;Lo;0;L;;;;;N;;;;; -1BA1;SUNDANESE CONSONANT SIGN PAMINGKAL;Mc;0;L;;;;;N;;;;; -1BA2;SUNDANESE CONSONANT SIGN PANYAKRA;Mn;0;NSM;;;;;N;;;;; -1BA3;SUNDANESE CONSONANT SIGN PANYIKU;Mn;0;NSM;;;;;N;;;;; -1BA4;SUNDANESE VOWEL SIGN PANGHULU;Mn;0;NSM;;;;;N;;;;; -1BA5;SUNDANESE VOWEL SIGN PANYUKU;Mn;0;NSM;;;;;N;;;;; -1BA6;SUNDANESE VOWEL SIGN PANAELAENG;Mc;0;L;;;;;N;;;;; -1BA7;SUNDANESE VOWEL SIGN PANOLONG;Mc;0;L;;;;;N;;;;; -1BA8;SUNDANESE VOWEL SIGN PAMEPET;Mn;0;NSM;;;;;N;;;;; -1BA9;SUNDANESE VOWEL SIGN PANEULEUNG;Mn;0;NSM;;;;;N;;;;; -1BAA;SUNDANESE SIGN PAMAAEH;Mc;9;L;;;;;N;;;;; -1BAE;SUNDANESE LETTER KHA;Lo;0;L;;;;;N;;;;; -1BAF;SUNDANESE LETTER SYA;Lo;0;L;;;;;N;;;;; -1BB0;SUNDANESE DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; -1BB1;SUNDANESE DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; -1BB2;SUNDANESE DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; -1BB3;SUNDANESE DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; -1BB4;SUNDANESE DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; -1BB5;SUNDANESE DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; -1BB6;SUNDANESE DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; -1BB7;SUNDANESE DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; -1BB8;SUNDANESE DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; -1BB9;SUNDANESE DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; -1C00;LEPCHA LETTER KA;Lo;0;L;;;;;N;;;;; -1C01;LEPCHA LETTER KLA;Lo;0;L;;;;;N;;;;; -1C02;LEPCHA LETTER KHA;Lo;0;L;;;;;N;;;;; -1C03;LEPCHA LETTER GA;Lo;0;L;;;;;N;;;;; -1C04;LEPCHA LETTER GLA;Lo;0;L;;;;;N;;;;; -1C05;LEPCHA LETTER NGA;Lo;0;L;;;;;N;;;;; -1C06;LEPCHA LETTER CA;Lo;0;L;;;;;N;;;;; -1C07;LEPCHA LETTER CHA;Lo;0;L;;;;;N;;;;; -1C08;LEPCHA LETTER JA;Lo;0;L;;;;;N;;;;; -1C09;LEPCHA LETTER NYA;Lo;0;L;;;;;N;;;;; -1C0A;LEPCHA LETTER TA;Lo;0;L;;;;;N;;;;; -1C0B;LEPCHA LETTER THA;Lo;0;L;;;;;N;;;;; -1C0C;LEPCHA LETTER DA;Lo;0;L;;;;;N;;;;; -1C0D;LEPCHA LETTER NA;Lo;0;L;;;;;N;;;;; -1C0E;LEPCHA LETTER PA;Lo;0;L;;;;;N;;;;; -1C0F;LEPCHA LETTER PLA;Lo;0;L;;;;;N;;;;; -1C10;LEPCHA LETTER PHA;Lo;0;L;;;;;N;;;;; -1C11;LEPCHA LETTER FA;Lo;0;L;;;;;N;;;;; -1C12;LEPCHA LETTER FLA;Lo;0;L;;;;;N;;;;; -1C13;LEPCHA LETTER BA;Lo;0;L;;;;;N;;;;; -1C14;LEPCHA LETTER BLA;Lo;0;L;;;;;N;;;;; -1C15;LEPCHA LETTER MA;Lo;0;L;;;;;N;;;;; -1C16;LEPCHA LETTER MLA;Lo;0;L;;;;;N;;;;; -1C17;LEPCHA LETTER TSA;Lo;0;L;;;;;N;;;;; -1C18;LEPCHA LETTER TSHA;Lo;0;L;;;;;N;;;;; -1C19;LEPCHA LETTER DZA;Lo;0;L;;;;;N;;;;; -1C1A;LEPCHA LETTER YA;Lo;0;L;;;;;N;;;;; -1C1B;LEPCHA LETTER RA;Lo;0;L;;;;;N;;;;; -1C1C;LEPCHA LETTER LA;Lo;0;L;;;;;N;;;;; -1C1D;LEPCHA LETTER HA;Lo;0;L;;;;;N;;;;; -1C1E;LEPCHA LETTER HLA;Lo;0;L;;;;;N;;;;; -1C1F;LEPCHA LETTER VA;Lo;0;L;;;;;N;;;;; -1C20;LEPCHA LETTER SA;Lo;0;L;;;;;N;;;;; -1C21;LEPCHA LETTER SHA;Lo;0;L;;;;;N;;;;; -1C22;LEPCHA LETTER WA;Lo;0;L;;;;;N;;;;; -1C23;LEPCHA LETTER A;Lo;0;L;;;;;N;;;;; -1C24;LEPCHA SUBJOINED LETTER YA;Mc;0;L;;;;;N;;;;; -1C25;LEPCHA SUBJOINED LETTER RA;Mc;0;L;;;;;N;;;;; -1C26;LEPCHA VOWEL SIGN AA;Mc;0;L;;;;;N;;;;; -1C27;LEPCHA VOWEL SIGN I;Mc;0;L;;;;;N;;;;; -1C28;LEPCHA VOWEL SIGN O;Mc;0;L;;;;;N;;;;; -1C29;LEPCHA VOWEL SIGN OO;Mc;0;L;;;;;N;;;;; -1C2A;LEPCHA VOWEL SIGN U;Mc;0;L;;;;;N;;;;; -1C2B;LEPCHA VOWEL SIGN UU;Mc;0;L;;;;;N;;;;; -1C2C;LEPCHA VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;; -1C2D;LEPCHA CONSONANT SIGN K;Mn;0;NSM;;;;;N;;;;; -1C2E;LEPCHA CONSONANT SIGN M;Mn;0;NSM;;;;;N;;;;; -1C2F;LEPCHA CONSONANT SIGN L;Mn;0;NSM;;;;;N;;;;; -1C30;LEPCHA CONSONANT SIGN N;Mn;0;NSM;;;;;N;;;;; -1C31;LEPCHA CONSONANT SIGN P;Mn;0;NSM;;;;;N;;;;; -1C32;LEPCHA CONSONANT SIGN R;Mn;0;NSM;;;;;N;;;;; -1C33;LEPCHA CONSONANT SIGN T;Mn;0;NSM;;;;;N;;;;; -1C34;LEPCHA CONSONANT SIGN NYIN-DO;Mc;0;L;;;;;N;;;;; -1C35;LEPCHA CONSONANT SIGN KANG;Mc;0;L;;;;;N;;;;; -1C36;LEPCHA SIGN RAN;Mn;0;NSM;;;;;N;;;;; -1C37;LEPCHA SIGN NUKTA;Mn;7;NSM;;;;;N;;;;; -1C3B;LEPCHA PUNCTUATION TA-ROL;Po;0;L;;;;;N;;;;; -1C3C;LEPCHA PUNCTUATION NYET THYOOM TA-ROL;Po;0;L;;;;;N;;;;; -1C3D;LEPCHA PUNCTUATION CER-WA;Po;0;L;;;;;N;;;;; -1C3E;LEPCHA PUNCTUATION TSHOOK CER-WA;Po;0;L;;;;;N;;;;; -1C3F;LEPCHA PUNCTUATION TSHOOK;Po;0;L;;;;;N;;;;; -1C40;LEPCHA DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; -1C41;LEPCHA DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; -1C42;LEPCHA DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; -1C43;LEPCHA DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; -1C44;LEPCHA DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; -1C45;LEPCHA DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; -1C46;LEPCHA DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; -1C47;LEPCHA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; -1C48;LEPCHA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; -1C49;LEPCHA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; -1C4D;LEPCHA LETTER TTA;Lo;0;L;;;;;N;;;;; -1C4E;LEPCHA LETTER TTHA;Lo;0;L;;;;;N;;;;; -1C4F;LEPCHA LETTER DDA;Lo;0;L;;;;;N;;;;; -1C50;OL CHIKI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; -1C51;OL CHIKI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; -1C52;OL CHIKI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; -1C53;OL CHIKI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; -1C54;OL CHIKI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; -1C55;OL CHIKI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; -1C56;OL CHIKI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; -1C57;OL CHIKI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; -1C58;OL CHIKI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; -1C59;OL CHIKI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; -1C5A;OL CHIKI LETTER LA;Lo;0;L;;;;;N;;;;; -1C5B;OL CHIKI LETTER AT;Lo;0;L;;;;;N;;;;; -1C5C;OL CHIKI LETTER AG;Lo;0;L;;;;;N;;;;; -1C5D;OL CHIKI LETTER ANG;Lo;0;L;;;;;N;;;;; -1C5E;OL CHIKI LETTER AL;Lo;0;L;;;;;N;;;;; -1C5F;OL CHIKI LETTER LAA;Lo;0;L;;;;;N;;;;; -1C60;OL CHIKI LETTER AAK;Lo;0;L;;;;;N;;;;; -1C61;OL CHIKI LETTER AAJ;Lo;0;L;;;;;N;;;;; -1C62;OL CHIKI LETTER AAM;Lo;0;L;;;;;N;;;;; -1C63;OL CHIKI LETTER AAW;Lo;0;L;;;;;N;;;;; -1C64;OL CHIKI LETTER LI;Lo;0;L;;;;;N;;;;; -1C65;OL CHIKI LETTER IS;Lo;0;L;;;;;N;;;;; -1C66;OL CHIKI LETTER IH;Lo;0;L;;;;;N;;;;; -1C67;OL CHIKI LETTER INY;Lo;0;L;;;;;N;;;;; -1C68;OL CHIKI LETTER IR;Lo;0;L;;;;;N;;;;; -1C69;OL CHIKI LETTER LU;Lo;0;L;;;;;N;;;;; -1C6A;OL CHIKI LETTER UC;Lo;0;L;;;;;N;;;;; -1C6B;OL CHIKI LETTER UD;Lo;0;L;;;;;N;;;;; -1C6C;OL CHIKI LETTER UNN;Lo;0;L;;;;;N;;;;; -1C6D;OL CHIKI LETTER UY;Lo;0;L;;;;;N;;;;; -1C6E;OL CHIKI LETTER LE;Lo;0;L;;;;;N;;;;; -1C6F;OL CHIKI LETTER EP;Lo;0;L;;;;;N;;;;; -1C70;OL CHIKI LETTER EDD;Lo;0;L;;;;;N;;;;; -1C71;OL CHIKI LETTER EN;Lo;0;L;;;;;N;;;;; -1C72;OL CHIKI LETTER ERR;Lo;0;L;;;;;N;;;;; -1C73;OL CHIKI LETTER LO;Lo;0;L;;;;;N;;;;; -1C74;OL CHIKI LETTER OTT;Lo;0;L;;;;;N;;;;; -1C75;OL CHIKI LETTER OB;Lo;0;L;;;;;N;;;;; -1C76;OL CHIKI LETTER OV;Lo;0;L;;;;;N;;;;; -1C77;OL CHIKI LETTER OH;Lo;0;L;;;;;N;;;;; -1C78;OL CHIKI MU TTUDDAG;Lm;0;L;;;;;N;;;;; -1C79;OL CHIKI GAAHLAA TTUDDAAG;Lm;0;L;;;;;N;;;;; -1C7A;OL CHIKI MU-GAAHLAA TTUDDAAG;Lm;0;L;;;;;N;;;;; -1C7B;OL CHIKI RELAA;Lm;0;L;;;;;N;;;;; -1C7C;OL CHIKI PHAARKAA;Lm;0;L;;;;;N;;;;; -1C7D;OL CHIKI AHAD;Lm;0;L;;;;;N;;;;; -1C7E;OL CHIKI PUNCTUATION MUCAAD;Po;0;L;;;;;N;;;;; -1C7F;OL CHIKI PUNCTUATION DOUBLE MUCAAD;Po;0;L;;;;;N;;;;; -1CD0;VEDIC TONE KARSHANA;Mn;230;NSM;;;;;N;;;;; -1CD1;VEDIC TONE SHARA;Mn;230;NSM;;;;;N;;;;; -1CD2;VEDIC TONE PRENKHA;Mn;230;NSM;;;;;N;;;;; -1CD3;VEDIC SIGN NIHSHVASA;Po;0;L;;;;;N;;;;; -1CD4;VEDIC SIGN YAJURVEDIC MIDLINE SVARITA;Mn;1;NSM;;;;;N;;;;; -1CD5;VEDIC TONE YAJURVEDIC AGGRAVATED INDEPENDENT SVARITA;Mn;220;NSM;;;;;N;;;;; -1CD6;VEDIC TONE YAJURVEDIC INDEPENDENT SVARITA;Mn;220;NSM;;;;;N;;;;; -1CD7;VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA;Mn;220;NSM;;;;;N;;;;; -1CD8;VEDIC TONE CANDRA BELOW;Mn;220;NSM;;;;;N;;;;; -1CD9;VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA SCHROEDER;Mn;220;NSM;;;;;N;;;;; -1CDA;VEDIC TONE DOUBLE SVARITA;Mn;230;NSM;;;;;N;;;;; -1CDB;VEDIC TONE TRIPLE SVARITA;Mn;230;NSM;;;;;N;;;;; -1CDC;VEDIC TONE KATHAKA ANUDATTA;Mn;220;NSM;;;;;N;;;;; -1CDD;VEDIC TONE DOT BELOW;Mn;220;NSM;;;;;N;;;;; -1CDE;VEDIC TONE TWO DOTS BELOW;Mn;220;NSM;;;;;N;;;;; -1CDF;VEDIC TONE THREE DOTS BELOW;Mn;220;NSM;;;;;N;;;;; -1CE0;VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA;Mn;230;NSM;;;;;N;;;;; -1CE1;VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA;Mc;0;L;;;;;N;;;;; -1CE2;VEDIC SIGN VISARGA SVARITA;Mn;1;NSM;;;;;N;;;;; -1CE3;VEDIC SIGN VISARGA UDATTA;Mn;1;NSM;;;;;N;;;;; -1CE4;VEDIC SIGN REVERSED VISARGA UDATTA;Mn;1;NSM;;;;;N;;;;; -1CE5;VEDIC SIGN VISARGA ANUDATTA;Mn;1;NSM;;;;;N;;;;; -1CE6;VEDIC SIGN REVERSED VISARGA ANUDATTA;Mn;1;NSM;;;;;N;;;;; -1CE7;VEDIC SIGN VISARGA UDATTA WITH TAIL;Mn;1;NSM;;;;;N;;;;; -1CE8;VEDIC SIGN VISARGA ANUDATTA WITH TAIL;Mn;1;NSM;;;;;N;;;;; -1CE9;VEDIC SIGN ANUSVARA ANTARGOMUKHA;Lo;0;L;;;;;N;;;;; -1CEA;VEDIC SIGN ANUSVARA BAHIRGOMUKHA;Lo;0;L;;;;;N;;;;; -1CEB;VEDIC SIGN ANUSVARA VAMAGOMUKHA;Lo;0;L;;;;;N;;;;; -1CEC;VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL;Lo;0;L;;;;;N;;;;; -1CED;VEDIC SIGN TIRYAK;Mn;220;NSM;;;;;N;;;;; -1CEE;VEDIC SIGN HEXIFORM LONG ANUSVARA;Lo;0;L;;;;;N;;;;; -1CEF;VEDIC SIGN LONG ANUSVARA;Lo;0;L;;;;;N;;;;; -1CF0;VEDIC SIGN RTHANG LONG ANUSVARA;Lo;0;L;;;;;N;;;;; -1CF1;VEDIC SIGN ANUSVARA UBHAYATO MUKHA;Lo;0;L;;;;;N;;;;; -1CF2;VEDIC SIGN ARDHAVISARGA;Mc;0;L;;;;;N;;;;; -1D00;LATIN LETTER SMALL CAPITAL A;Ll;0;L;;;;;N;;;;; -1D01;LATIN LETTER SMALL CAPITAL AE;Ll;0;L;;;;;N;;;;; -1D02;LATIN SMALL LETTER TURNED AE;Ll;0;L;;;;;N;;;;; -1D03;LATIN LETTER SMALL CAPITAL BARRED B;Ll;0;L;;;;;N;;;;; -1D04;LATIN LETTER SMALL CAPITAL C;Ll;0;L;;;;;N;;;;; -1D05;LATIN LETTER SMALL CAPITAL D;Ll;0;L;;;;;N;;;;; -1D06;LATIN LETTER SMALL CAPITAL ETH;Ll;0;L;;;;;N;;;;; -1D07;LATIN LETTER SMALL CAPITAL E;Ll;0;L;;;;;N;;;;; -1D08;LATIN SMALL LETTER TURNED OPEN E;Ll;0;L;;;;;N;;;;; -1D09;LATIN SMALL LETTER TURNED I;Ll;0;L;;;;;N;;;;; -1D0A;LATIN LETTER SMALL CAPITAL J;Ll;0;L;;;;;N;;;;; -1D0B;LATIN LETTER SMALL CAPITAL K;Ll;0;L;;;;;N;;;;; -1D0C;LATIN LETTER SMALL CAPITAL L WITH STROKE;Ll;0;L;;;;;N;;;;; -1D0D;LATIN LETTER SMALL CAPITAL M;Ll;0;L;;;;;N;;;;; -1D0E;LATIN LETTER SMALL CAPITAL REVERSED N;Ll;0;L;;;;;N;;;;; -1D0F;LATIN LETTER SMALL CAPITAL O;Ll;0;L;;;;;N;;;;; -1D10;LATIN LETTER SMALL CAPITAL OPEN O;Ll;0;L;;;;;N;;;;; -1D11;LATIN SMALL LETTER SIDEWAYS O;Ll;0;L;;;;;N;;;;; -1D12;LATIN SMALL LETTER SIDEWAYS OPEN O;Ll;0;L;;;;;N;;;;; -1D13;LATIN SMALL LETTER SIDEWAYS O WITH STROKE;Ll;0;L;;;;;N;;;;; -1D14;LATIN SMALL LETTER TURNED OE;Ll;0;L;;;;;N;;;;; -1D15;LATIN LETTER SMALL CAPITAL OU;Ll;0;L;;;;;N;;;;; -1D16;LATIN SMALL LETTER TOP HALF O;Ll;0;L;;;;;N;;;;; -1D17;LATIN SMALL LETTER BOTTOM HALF O;Ll;0;L;;;;;N;;;;; -1D18;LATIN LETTER SMALL CAPITAL P;Ll;0;L;;;;;N;;;;; -1D19;LATIN LETTER SMALL CAPITAL REVERSED R;Ll;0;L;;;;;N;;;;; -1D1A;LATIN LETTER SMALL CAPITAL TURNED R;Ll;0;L;;;;;N;;;;; -1D1B;LATIN LETTER SMALL CAPITAL T;Ll;0;L;;;;;N;;;;; -1D1C;LATIN LETTER SMALL CAPITAL U;Ll;0;L;;;;;N;;;;; -1D1D;LATIN SMALL LETTER SIDEWAYS U;Ll;0;L;;;;;N;;;;; -1D1E;LATIN SMALL LETTER SIDEWAYS DIAERESIZED U;Ll;0;L;;;;;N;;;;; -1D1F;LATIN SMALL LETTER SIDEWAYS TURNED M;Ll;0;L;;;;;N;;;;; -1D20;LATIN LETTER SMALL CAPITAL V;Ll;0;L;;;;;N;;;;; -1D21;LATIN LETTER SMALL CAPITAL W;Ll;0;L;;;;;N;;;;; -1D22;LATIN LETTER SMALL CAPITAL Z;Ll;0;L;;;;;N;;;;; -1D23;LATIN LETTER SMALL CAPITAL EZH;Ll;0;L;;;;;N;;;;; -1D24;LATIN LETTER VOICED LARYNGEAL SPIRANT;Ll;0;L;;;;;N;;;;; -1D25;LATIN LETTER AIN;Ll;0;L;;;;;N;;;;; -1D26;GREEK LETTER SMALL CAPITAL GAMMA;Ll;0;L;;;;;N;;;;; -1D27;GREEK LETTER SMALL CAPITAL LAMDA;Ll;0;L;;;;;N;;;;; -1D28;GREEK LETTER SMALL CAPITAL PI;Ll;0;L;;;;;N;;;;; -1D29;GREEK LETTER SMALL CAPITAL RHO;Ll;0;L;;;;;N;;;;; -1D2A;GREEK LETTER SMALL CAPITAL PSI;Ll;0;L;;;;;N;;;;; -1D2B;CYRILLIC LETTER SMALL CAPITAL EL;Ll;0;L;;;;;N;;;;; -1D2C;MODIFIER LETTER CAPITAL A;Lm;0;L; 0041;;;;N;;;;; -1D2D;MODIFIER LETTER CAPITAL AE;Lm;0;L; 00C6;;;;N;;;;; -1D2E;MODIFIER LETTER CAPITAL B;Lm;0;L; 0042;;;;N;;;;; -1D2F;MODIFIER LETTER CAPITAL BARRED B;Lm;0;L;;;;;N;;;;; -1D30;MODIFIER LETTER CAPITAL D;Lm;0;L; 0044;;;;N;;;;; -1D31;MODIFIER LETTER CAPITAL E;Lm;0;L; 0045;;;;N;;;;; -1D32;MODIFIER LETTER CAPITAL REVERSED E;Lm;0;L; 018E;;;;N;;;;; -1D33;MODIFIER LETTER CAPITAL G;Lm;0;L; 0047;;;;N;;;;; -1D34;MODIFIER LETTER CAPITAL H;Lm;0;L; 0048;;;;N;;;;; -1D35;MODIFIER LETTER CAPITAL I;Lm;0;L; 0049;;;;N;;;;; -1D36;MODIFIER LETTER CAPITAL J;Lm;0;L; 004A;;;;N;;;;; -1D37;MODIFIER LETTER CAPITAL K;Lm;0;L; 004B;;;;N;;;;; -1D38;MODIFIER LETTER CAPITAL L;Lm;0;L; 004C;;;;N;;;;; -1D39;MODIFIER LETTER CAPITAL M;Lm;0;L; 004D;;;;N;;;;; -1D3A;MODIFIER LETTER CAPITAL N;Lm;0;L; 004E;;;;N;;;;; -1D3B;MODIFIER LETTER CAPITAL REVERSED N;Lm;0;L;;;;;N;;;;; -1D3C;MODIFIER LETTER CAPITAL O;Lm;0;L; 004F;;;;N;;;;; -1D3D;MODIFIER LETTER CAPITAL OU;Lm;0;L; 0222;;;;N;;;;; -1D3E;MODIFIER LETTER CAPITAL P;Lm;0;L; 0050;;;;N;;;;; -1D3F;MODIFIER LETTER CAPITAL R;Lm;0;L; 0052;;;;N;;;;; -1D40;MODIFIER LETTER CAPITAL T;Lm;0;L; 0054;;;;N;;;;; -1D41;MODIFIER LETTER CAPITAL U;Lm;0;L; 0055;;;;N;;;;; -1D42;MODIFIER LETTER CAPITAL W;Lm;0;L; 0057;;;;N;;;;; -1D43;MODIFIER LETTER SMALL A;Lm;0;L; 0061;;;;N;;;;; -1D44;MODIFIER LETTER SMALL TURNED A;Lm;0;L; 0250;;;;N;;;;; -1D45;MODIFIER LETTER SMALL ALPHA;Lm;0;L; 0251;;;;N;;;;; -1D46;MODIFIER LETTER SMALL TURNED AE;Lm;0;L; 1D02;;;;N;;;;; -1D47;MODIFIER LETTER SMALL B;Lm;0;L; 0062;;;;N;;;;; -1D48;MODIFIER LETTER SMALL D;Lm;0;L; 0064;;;;N;;;;; -1D49;MODIFIER LETTER SMALL E;Lm;0;L; 0065;;;;N;;;;; -1D4A;MODIFIER LETTER SMALL SCHWA;Lm;0;L; 0259;;;;N;;;;; -1D4B;MODIFIER LETTER SMALL OPEN E;Lm;0;L; 025B;;;;N;;;;; -1D4C;MODIFIER LETTER SMALL TURNED OPEN E;Lm;0;L; 025C;;;;N;;;;; -1D4D;MODIFIER LETTER SMALL G;Lm;0;L; 0067;;;;N;;;;; -1D4E;MODIFIER LETTER SMALL TURNED I;Lm;0;L;;;;;N;;;;; -1D4F;MODIFIER LETTER SMALL K;Lm;0;L; 006B;;;;N;;;;; -1D50;MODIFIER LETTER SMALL M;Lm;0;L; 006D;;;;N;;;;; -1D51;MODIFIER LETTER SMALL ENG;Lm;0;L; 014B;;;;N;;;;; -1D52;MODIFIER LETTER SMALL O;Lm;0;L; 006F;;;;N;;;;; -1D53;MODIFIER LETTER SMALL OPEN O;Lm;0;L; 0254;;;;N;;;;; -1D54;MODIFIER LETTER SMALL TOP HALF O;Lm;0;L; 1D16;;;;N;;;;; -1D55;MODIFIER LETTER SMALL BOTTOM HALF O;Lm;0;L; 1D17;;;;N;;;;; -1D56;MODIFIER LETTER SMALL P;Lm;0;L; 0070;;;;N;;;;; -1D57;MODIFIER LETTER SMALL T;Lm;0;L; 0074;;;;N;;;;; -1D58;MODIFIER LETTER SMALL U;Lm;0;L; 0075;;;;N;;;;; -1D59;MODIFIER LETTER SMALL SIDEWAYS U;Lm;0;L; 1D1D;;;;N;;;;; -1D5A;MODIFIER LETTER SMALL TURNED M;Lm;0;L; 026F;;;;N;;;;; -1D5B;MODIFIER LETTER SMALL V;Lm;0;L; 0076;;;;N;;;;; -1D5C;MODIFIER LETTER SMALL AIN;Lm;0;L; 1D25;;;;N;;;;; -1D5D;MODIFIER LETTER SMALL BETA;Lm;0;L; 03B2;;;;N;;;;; -1D5E;MODIFIER LETTER SMALL GREEK GAMMA;Lm;0;L; 03B3;;;;N;;;;; -1D5F;MODIFIER LETTER SMALL DELTA;Lm;0;L; 03B4;;;;N;;;;; -1D60;MODIFIER LETTER SMALL GREEK PHI;Lm;0;L; 03C6;;;;N;;;;; -1D61;MODIFIER LETTER SMALL CHI;Lm;0;L; 03C7;;;;N;;;;; -1D62;LATIN SUBSCRIPT SMALL LETTER I;Ll;0;L; 0069;;;;N;;;;; -1D63;LATIN SUBSCRIPT SMALL LETTER R;Ll;0;L; 0072;;;;N;;;;; -1D64;LATIN SUBSCRIPT SMALL LETTER U;Ll;0;L; 0075;;;;N;;;;; -1D65;LATIN SUBSCRIPT SMALL LETTER V;Ll;0;L; 0076;;;;N;;;;; -1D66;GREEK SUBSCRIPT SMALL LETTER BETA;Ll;0;L; 03B2;;;;N;;;;; -1D67;GREEK SUBSCRIPT SMALL LETTER GAMMA;Ll;0;L; 03B3;;;;N;;;;; -1D68;GREEK SUBSCRIPT SMALL LETTER RHO;Ll;0;L; 03C1;;;;N;;;;; -1D69;GREEK SUBSCRIPT SMALL LETTER PHI;Ll;0;L; 03C6;;;;N;;;;; -1D6A;GREEK SUBSCRIPT SMALL LETTER CHI;Ll;0;L; 03C7;;;;N;;;;; -1D6B;LATIN SMALL LETTER UE;Ll;0;L;;;;;N;;;;; -1D6C;LATIN SMALL LETTER B WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;; -1D6D;LATIN SMALL LETTER D WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;; -1D6E;LATIN SMALL LETTER F WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;; -1D6F;LATIN SMALL LETTER M WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;; -1D70;LATIN SMALL LETTER N WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;; -1D71;LATIN SMALL LETTER P WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;; -1D72;LATIN SMALL LETTER R WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;; -1D73;LATIN SMALL LETTER R WITH FISHHOOK AND MIDDLE TILDE;Ll;0;L;;;;;N;;;;; -1D74;LATIN SMALL LETTER S WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;; -1D75;LATIN SMALL LETTER T WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;; -1D76;LATIN SMALL LETTER Z WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;; -1D77;LATIN SMALL LETTER TURNED G;Ll;0;L;;;;;N;;;;; -1D78;MODIFIER LETTER CYRILLIC EN;Lm;0;L; 043D;;;;N;;;;; -1D79;LATIN SMALL LETTER INSULAR G;Ll;0;L;;;;;N;;;A77D;;A77D -1D7A;LATIN SMALL LETTER TH WITH STRIKETHROUGH;Ll;0;L;;;;;N;;;;; -1D7B;LATIN SMALL CAPITAL LETTER I WITH STROKE;Ll;0;L;;;;;N;;;;; -1D7C;LATIN SMALL LETTER IOTA WITH STROKE;Ll;0;L;;;;;N;;;;; -1D7D;LATIN SMALL LETTER P WITH STROKE;Ll;0;L;;;;;N;;;2C63;;2C63 -1D7E;LATIN SMALL CAPITAL LETTER U WITH STROKE;Ll;0;L;;;;;N;;;;; -1D7F;LATIN SMALL LETTER UPSILON WITH STROKE;Ll;0;L;;;;;N;;;;; -1D80;LATIN SMALL LETTER B WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;; -1D81;LATIN SMALL LETTER D WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;; -1D82;LATIN SMALL LETTER F WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;; -1D83;LATIN SMALL LETTER G WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;; -1D84;LATIN SMALL LETTER K WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;; -1D85;LATIN SMALL LETTER L WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;; -1D86;LATIN SMALL LETTER M WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;; -1D87;LATIN SMALL LETTER N WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;; -1D88;LATIN SMALL LETTER P WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;; -1D89;LATIN SMALL LETTER R WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;; -1D8A;LATIN SMALL LETTER S WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;; -1D8B;LATIN SMALL LETTER ESH WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;; -1D8C;LATIN SMALL LETTER V WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;; -1D8D;LATIN SMALL LETTER X WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;; -1D8E;LATIN SMALL LETTER Z WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;; -1D8F;LATIN SMALL LETTER A WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;; -1D90;LATIN SMALL LETTER ALPHA WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;; -1D91;LATIN SMALL LETTER D WITH HOOK AND TAIL;Ll;0;L;;;;;N;;;;; -1D92;LATIN SMALL LETTER E WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;; -1D93;LATIN SMALL LETTER OPEN E WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;; -1D94;LATIN SMALL LETTER REVERSED OPEN E WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;; -1D95;LATIN SMALL LETTER SCHWA WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;; -1D96;LATIN SMALL LETTER I WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;; -1D97;LATIN SMALL LETTER OPEN O WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;; -1D98;LATIN SMALL LETTER ESH WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;; -1D99;LATIN SMALL LETTER U WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;; -1D9A;LATIN SMALL LETTER EZH WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;; -1D9B;MODIFIER LETTER SMALL TURNED ALPHA;Lm;0;L; 0252;;;;N;;;;; -1D9C;MODIFIER LETTER SMALL C;Lm;0;L; 0063;;;;N;;;;; -1D9D;MODIFIER LETTER SMALL C WITH CURL;Lm;0;L; 0255;;;;N;;;;; -1D9E;MODIFIER LETTER SMALL ETH;Lm;0;L; 00F0;;;;N;;;;; -1D9F;MODIFIER LETTER SMALL REVERSED OPEN E;Lm;0;L; 025C;;;;N;;;;; -1DA0;MODIFIER LETTER SMALL F;Lm;0;L; 0066;;;;N;;;;; -1DA1;MODIFIER LETTER SMALL DOTLESS J WITH STROKE;Lm;0;L; 025F;;;;N;;;;; -1DA2;MODIFIER LETTER SMALL SCRIPT G;Lm;0;L; 0261;;;;N;;;;; -1DA3;MODIFIER LETTER SMALL TURNED H;Lm;0;L; 0265;;;;N;;;;; -1DA4;MODIFIER LETTER SMALL I WITH STROKE;Lm;0;L; 0268;;;;N;;;;; -1DA5;MODIFIER LETTER SMALL IOTA;Lm;0;L; 0269;;;;N;;;;; -1DA6;MODIFIER LETTER SMALL CAPITAL I;Lm;0;L; 026A;;;;N;;;;; -1DA7;MODIFIER LETTER SMALL CAPITAL I WITH STROKE;Lm;0;L; 1D7B;;;;N;;;;; -1DA8;MODIFIER LETTER SMALL J WITH CROSSED-TAIL;Lm;0;L; 029D;;;;N;;;;; -1DA9;MODIFIER LETTER SMALL L WITH RETROFLEX HOOK;Lm;0;L; 026D;;;;N;;;;; -1DAA;MODIFIER LETTER SMALL L WITH PALATAL HOOK;Lm;0;L; 1D85;;;;N;;;;; -1DAB;MODIFIER LETTER SMALL CAPITAL L;Lm;0;L; 029F;;;;N;;;;; -1DAC;MODIFIER LETTER SMALL M WITH HOOK;Lm;0;L; 0271;;;;N;;;;; -1DAD;MODIFIER LETTER SMALL TURNED M WITH LONG LEG;Lm;0;L; 0270;;;;N;;;;; -1DAE;MODIFIER LETTER SMALL N WITH LEFT HOOK;Lm;0;L; 0272;;;;N;;;;; -1DAF;MODIFIER LETTER SMALL N WITH RETROFLEX HOOK;Lm;0;L; 0273;;;;N;;;;; -1DB0;MODIFIER LETTER SMALL CAPITAL N;Lm;0;L; 0274;;;;N;;;;; -1DB1;MODIFIER LETTER SMALL BARRED O;Lm;0;L; 0275;;;;N;;;;; -1DB2;MODIFIER LETTER SMALL PHI;Lm;0;L; 0278;;;;N;;;;; -1DB3;MODIFIER LETTER SMALL S WITH HOOK;Lm;0;L; 0282;;;;N;;;;; -1DB4;MODIFIER LETTER SMALL ESH;Lm;0;L; 0283;;;;N;;;;; -1DB5;MODIFIER LETTER SMALL T WITH PALATAL HOOK;Lm;0;L; 01AB;;;;N;;;;; -1DB6;MODIFIER LETTER SMALL U BAR;Lm;0;L; 0289;;;;N;;;;; -1DB7;MODIFIER LETTER SMALL UPSILON;Lm;0;L; 028A;;;;N;;;;; -1DB8;MODIFIER LETTER SMALL CAPITAL U;Lm;0;L; 1D1C;;;;N;;;;; -1DB9;MODIFIER LETTER SMALL V WITH HOOK;Lm;0;L; 028B;;;;N;;;;; -1DBA;MODIFIER LETTER SMALL TURNED V;Lm;0;L; 028C;;;;N;;;;; -1DBB;MODIFIER LETTER SMALL Z;Lm;0;L; 007A;;;;N;;;;; -1DBC;MODIFIER LETTER SMALL Z WITH RETROFLEX HOOK;Lm;0;L; 0290;;;;N;;;;; -1DBD;MODIFIER LETTER SMALL Z WITH CURL;Lm;0;L; 0291;;;;N;;;;; -1DBE;MODIFIER LETTER SMALL EZH;Lm;0;L; 0292;;;;N;;;;; -1DBF;MODIFIER LETTER SMALL THETA;Lm;0;L; 03B8;;;;N;;;;; -1DC0;COMBINING DOTTED GRAVE ACCENT;Mn;230;NSM;;;;;N;;;;; -1DC1;COMBINING DOTTED ACUTE ACCENT;Mn;230;NSM;;;;;N;;;;; -1DC2;COMBINING SNAKE BELOW;Mn;220;NSM;;;;;N;;;;; -1DC3;COMBINING SUSPENSION MARK;Mn;230;NSM;;;;;N;;;;; -1DC4;COMBINING MACRON-ACUTE;Mn;230;NSM;;;;;N;;;;; -1DC5;COMBINING GRAVE-MACRON;Mn;230;NSM;;;;;N;;;;; -1DC6;COMBINING MACRON-GRAVE;Mn;230;NSM;;;;;N;;;;; -1DC7;COMBINING ACUTE-MACRON;Mn;230;NSM;;;;;N;;;;; -1DC8;COMBINING GRAVE-ACUTE-GRAVE;Mn;230;NSM;;;;;N;;;;; -1DC9;COMBINING ACUTE-GRAVE-ACUTE;Mn;230;NSM;;;;;N;;;;; -1DCA;COMBINING LATIN SMALL LETTER R BELOW;Mn;220;NSM;;;;;N;;;;; -1DCB;COMBINING BREVE-MACRON;Mn;230;NSM;;;;;N;;;;; -1DCC;COMBINING MACRON-BREVE;Mn;230;NSM;;;;;N;;;;; -1DCD;COMBINING DOUBLE CIRCUMFLEX ABOVE;Mn;234;NSM;;;;;N;;;;; -1DCE;COMBINING OGONEK ABOVE;Mn;214;NSM;;;;;N;;;;; -1DCF;COMBINING ZIGZAG BELOW;Mn;220;NSM;;;;;N;;;;; -1DD0;COMBINING IS BELOW;Mn;202;NSM;;;;;N;;;;; -1DD1;COMBINING UR ABOVE;Mn;230;NSM;;;;;N;;;;; -1DD2;COMBINING US ABOVE;Mn;230;NSM;;;;;N;;;;; -1DD3;COMBINING LATIN SMALL LETTER FLATTENED OPEN A ABOVE;Mn;230;NSM;;;;;N;;;;; -1DD4;COMBINING LATIN SMALL LETTER AE;Mn;230;NSM;;;;;N;;;;; -1DD5;COMBINING LATIN SMALL LETTER AO;Mn;230;NSM;;;;;N;;;;; -1DD6;COMBINING LATIN SMALL LETTER AV;Mn;230;NSM;;;;;N;;;;; -1DD7;COMBINING LATIN SMALL LETTER C CEDILLA;Mn;230;NSM;;;;;N;;;;; -1DD8;COMBINING LATIN SMALL LETTER INSULAR D;Mn;230;NSM;;;;;N;;;;; -1DD9;COMBINING LATIN SMALL LETTER ETH;Mn;230;NSM;;;;;N;;;;; -1DDA;COMBINING LATIN SMALL LETTER G;Mn;230;NSM;;;;;N;;;;; -1DDB;COMBINING LATIN LETTER SMALL CAPITAL G;Mn;230;NSM;;;;;N;;;;; -1DDC;COMBINING LATIN SMALL LETTER K;Mn;230;NSM;;;;;N;;;;; -1DDD;COMBINING LATIN SMALL LETTER L;Mn;230;NSM;;;;;N;;;;; -1DDE;COMBINING LATIN LETTER SMALL CAPITAL L;Mn;230;NSM;;;;;N;;;;; -1DDF;COMBINING LATIN LETTER SMALL CAPITAL M;Mn;230;NSM;;;;;N;;;;; -1DE0;COMBINING LATIN SMALL LETTER N;Mn;230;NSM;;;;;N;;;;; -1DE1;COMBINING LATIN LETTER SMALL CAPITAL N;Mn;230;NSM;;;;;N;;;;; -1DE2;COMBINING LATIN LETTER SMALL CAPITAL R;Mn;230;NSM;;;;;N;;;;; -1DE3;COMBINING LATIN SMALL LETTER R ROTUNDA;Mn;230;NSM;;;;;N;;;;; -1DE4;COMBINING LATIN SMALL LETTER S;Mn;230;NSM;;;;;N;;;;; -1DE5;COMBINING LATIN SMALL LETTER LONG S;Mn;230;NSM;;;;;N;;;;; -1DE6;COMBINING LATIN SMALL LETTER Z;Mn;230;NSM;;;;;N;;;;; -1DFD;COMBINING ALMOST EQUAL TO BELOW;Mn;220;NSM;;;;;N;;;;; -1DFE;COMBINING LEFT ARROWHEAD ABOVE;Mn;230;NSM;;;;;N;;;;; -1DFF;COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW;Mn;220;NSM;;;;;N;;;;; -1E00;LATIN CAPITAL LETTER A WITH RING BELOW;Lu;0;L;0041 0325;;;;N;;;;1E01; -1E01;LATIN SMALL LETTER A WITH RING BELOW;Ll;0;L;0061 0325;;;;N;;;1E00;;1E00 -1E02;LATIN CAPITAL LETTER B WITH DOT ABOVE;Lu;0;L;0042 0307;;;;N;;;;1E03; -1E03;LATIN SMALL LETTER B WITH DOT ABOVE;Ll;0;L;0062 0307;;;;N;;;1E02;;1E02 -1E04;LATIN CAPITAL LETTER B WITH DOT BELOW;Lu;0;L;0042 0323;;;;N;;;;1E05; -1E05;LATIN SMALL LETTER B WITH DOT BELOW;Ll;0;L;0062 0323;;;;N;;;1E04;;1E04 -1E06;LATIN CAPITAL LETTER B WITH LINE BELOW;Lu;0;L;0042 0331;;;;N;;;;1E07; -1E07;LATIN SMALL LETTER B WITH LINE BELOW;Ll;0;L;0062 0331;;;;N;;;1E06;;1E06 -1E08;LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE;Lu;0;L;00C7 0301;;;;N;;;;1E09; -1E09;LATIN SMALL LETTER C WITH CEDILLA AND ACUTE;Ll;0;L;00E7 0301;;;;N;;;1E08;;1E08 -1E0A;LATIN CAPITAL LETTER D WITH DOT ABOVE;Lu;0;L;0044 0307;;;;N;;;;1E0B; -1E0B;LATIN SMALL LETTER D WITH DOT ABOVE;Ll;0;L;0064 0307;;;;N;;;1E0A;;1E0A -1E0C;LATIN CAPITAL LETTER D WITH DOT BELOW;Lu;0;L;0044 0323;;;;N;;;;1E0D; -1E0D;LATIN SMALL LETTER D WITH DOT BELOW;Ll;0;L;0064 0323;;;;N;;;1E0C;;1E0C -1E0E;LATIN CAPITAL LETTER D WITH LINE BELOW;Lu;0;L;0044 0331;;;;N;;;;1E0F; -1E0F;LATIN SMALL LETTER D WITH LINE BELOW;Ll;0;L;0064 0331;;;;N;;;1E0E;;1E0E -1E10;LATIN CAPITAL LETTER D WITH CEDILLA;Lu;0;L;0044 0327;;;;N;;;;1E11; -1E11;LATIN SMALL LETTER D WITH CEDILLA;Ll;0;L;0064 0327;;;;N;;;1E10;;1E10 -1E12;LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW;Lu;0;L;0044 032D;;;;N;;;;1E13; -1E13;LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW;Ll;0;L;0064 032D;;;;N;;;1E12;;1E12 -1E14;LATIN CAPITAL LETTER E WITH MACRON AND GRAVE;Lu;0;L;0112 0300;;;;N;;;;1E15; -1E15;LATIN SMALL LETTER E WITH MACRON AND GRAVE;Ll;0;L;0113 0300;;;;N;;;1E14;;1E14 -1E16;LATIN CAPITAL LETTER E WITH MACRON AND ACUTE;Lu;0;L;0112 0301;;;;N;;;;1E17; -1E17;LATIN SMALL LETTER E WITH MACRON AND ACUTE;Ll;0;L;0113 0301;;;;N;;;1E16;;1E16 -1E18;LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW;Lu;0;L;0045 032D;;;;N;;;;1E19; -1E19;LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW;Ll;0;L;0065 032D;;;;N;;;1E18;;1E18 -1E1A;LATIN CAPITAL LETTER E WITH TILDE BELOW;Lu;0;L;0045 0330;;;;N;;;;1E1B; -1E1B;LATIN SMALL LETTER E WITH TILDE BELOW;Ll;0;L;0065 0330;;;;N;;;1E1A;;1E1A -1E1C;LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE;Lu;0;L;0228 0306;;;;N;;;;1E1D; -1E1D;LATIN SMALL LETTER E WITH CEDILLA AND BREVE;Ll;0;L;0229 0306;;;;N;;;1E1C;;1E1C -1E1E;LATIN CAPITAL LETTER F WITH DOT ABOVE;Lu;0;L;0046 0307;;;;N;;;;1E1F; -1E1F;LATIN SMALL LETTER F WITH DOT ABOVE;Ll;0;L;0066 0307;;;;N;;;1E1E;;1E1E -1E20;LATIN CAPITAL LETTER G WITH MACRON;Lu;0;L;0047 0304;;;;N;;;;1E21; -1E21;LATIN SMALL LETTER G WITH MACRON;Ll;0;L;0067 0304;;;;N;;;1E20;;1E20 -1E22;LATIN CAPITAL LETTER H WITH DOT ABOVE;Lu;0;L;0048 0307;;;;N;;;;1E23; -1E23;LATIN SMALL LETTER H WITH DOT ABOVE;Ll;0;L;0068 0307;;;;N;;;1E22;;1E22 -1E24;LATIN CAPITAL LETTER H WITH DOT BELOW;Lu;0;L;0048 0323;;;;N;;;;1E25; -1E25;LATIN SMALL LETTER H WITH DOT BELOW;Ll;0;L;0068 0323;;;;N;;;1E24;;1E24 -1E26;LATIN CAPITAL LETTER H WITH DIAERESIS;Lu;0;L;0048 0308;;;;N;;;;1E27; -1E27;LATIN SMALL LETTER H WITH DIAERESIS;Ll;0;L;0068 0308;;;;N;;;1E26;;1E26 -1E28;LATIN CAPITAL LETTER H WITH CEDILLA;Lu;0;L;0048 0327;;;;N;;;;1E29; -1E29;LATIN SMALL LETTER H WITH CEDILLA;Ll;0;L;0068 0327;;;;N;;;1E28;;1E28 -1E2A;LATIN CAPITAL LETTER H WITH BREVE BELOW;Lu;0;L;0048 032E;;;;N;;;;1E2B; -1E2B;LATIN SMALL LETTER H WITH BREVE BELOW;Ll;0;L;0068 032E;;;;N;;;1E2A;;1E2A -1E2C;LATIN CAPITAL LETTER I WITH TILDE BELOW;Lu;0;L;0049 0330;;;;N;;;;1E2D; -1E2D;LATIN SMALL LETTER I WITH TILDE BELOW;Ll;0;L;0069 0330;;;;N;;;1E2C;;1E2C -1E2E;LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE;Lu;0;L;00CF 0301;;;;N;;;;1E2F; -1E2F;LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE;Ll;0;L;00EF 0301;;;;N;;;1E2E;;1E2E -1E30;LATIN CAPITAL LETTER K WITH ACUTE;Lu;0;L;004B 0301;;;;N;;;;1E31; -1E31;LATIN SMALL LETTER K WITH ACUTE;Ll;0;L;006B 0301;;;;N;;;1E30;;1E30 -1E32;LATIN CAPITAL LETTER K WITH DOT BELOW;Lu;0;L;004B 0323;;;;N;;;;1E33; -1E33;LATIN SMALL LETTER K WITH DOT BELOW;Ll;0;L;006B 0323;;;;N;;;1E32;;1E32 -1E34;LATIN CAPITAL LETTER K WITH LINE BELOW;Lu;0;L;004B 0331;;;;N;;;;1E35; -1E35;LATIN SMALL LETTER K WITH LINE BELOW;Ll;0;L;006B 0331;;;;N;;;1E34;;1E34 -1E36;LATIN CAPITAL LETTER L WITH DOT BELOW;Lu;0;L;004C 0323;;;;N;;;;1E37; -1E37;LATIN SMALL LETTER L WITH DOT BELOW;Ll;0;L;006C 0323;;;;N;;;1E36;;1E36 -1E38;LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON;Lu;0;L;1E36 0304;;;;N;;;;1E39; -1E39;LATIN SMALL LETTER L WITH DOT BELOW AND MACRON;Ll;0;L;1E37 0304;;;;N;;;1E38;;1E38 -1E3A;LATIN CAPITAL LETTER L WITH LINE BELOW;Lu;0;L;004C 0331;;;;N;;;;1E3B; -1E3B;LATIN SMALL LETTER L WITH LINE BELOW;Ll;0;L;006C 0331;;;;N;;;1E3A;;1E3A -1E3C;LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW;Lu;0;L;004C 032D;;;;N;;;;1E3D; -1E3D;LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW;Ll;0;L;006C 032D;;;;N;;;1E3C;;1E3C -1E3E;LATIN CAPITAL LETTER M WITH ACUTE;Lu;0;L;004D 0301;;;;N;;;;1E3F; -1E3F;LATIN SMALL LETTER M WITH ACUTE;Ll;0;L;006D 0301;;;;N;;;1E3E;;1E3E -1E40;LATIN CAPITAL LETTER M WITH DOT ABOVE;Lu;0;L;004D 0307;;;;N;;;;1E41; -1E41;LATIN SMALL LETTER M WITH DOT ABOVE;Ll;0;L;006D 0307;;;;N;;;1E40;;1E40 -1E42;LATIN CAPITAL LETTER M WITH DOT BELOW;Lu;0;L;004D 0323;;;;N;;;;1E43; -1E43;LATIN SMALL LETTER M WITH DOT BELOW;Ll;0;L;006D 0323;;;;N;;;1E42;;1E42 -1E44;LATIN CAPITAL LETTER N WITH DOT ABOVE;Lu;0;L;004E 0307;;;;N;;;;1E45; -1E45;LATIN SMALL LETTER N WITH DOT ABOVE;Ll;0;L;006E 0307;;;;N;;;1E44;;1E44 -1E46;LATIN CAPITAL LETTER N WITH DOT BELOW;Lu;0;L;004E 0323;;;;N;;;;1E47; -1E47;LATIN SMALL LETTER N WITH DOT BELOW;Ll;0;L;006E 0323;;;;N;;;1E46;;1E46 -1E48;LATIN CAPITAL LETTER N WITH LINE BELOW;Lu;0;L;004E 0331;;;;N;;;;1E49; -1E49;LATIN SMALL LETTER N WITH LINE BELOW;Ll;0;L;006E 0331;;;;N;;;1E48;;1E48 -1E4A;LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW;Lu;0;L;004E 032D;;;;N;;;;1E4B; -1E4B;LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW;Ll;0;L;006E 032D;;;;N;;;1E4A;;1E4A -1E4C;LATIN CAPITAL LETTER O WITH TILDE AND ACUTE;Lu;0;L;00D5 0301;;;;N;;;;1E4D; -1E4D;LATIN SMALL LETTER O WITH TILDE AND ACUTE;Ll;0;L;00F5 0301;;;;N;;;1E4C;;1E4C -1E4E;LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS;Lu;0;L;00D5 0308;;;;N;;;;1E4F; -1E4F;LATIN SMALL LETTER O WITH TILDE AND DIAERESIS;Ll;0;L;00F5 0308;;;;N;;;1E4E;;1E4E -1E50;LATIN CAPITAL LETTER O WITH MACRON AND GRAVE;Lu;0;L;014C 0300;;;;N;;;;1E51; -1E51;LATIN SMALL LETTER O WITH MACRON AND GRAVE;Ll;0;L;014D 0300;;;;N;;;1E50;;1E50 -1E52;LATIN CAPITAL LETTER O WITH MACRON AND ACUTE;Lu;0;L;014C 0301;;;;N;;;;1E53; -1E53;LATIN SMALL LETTER O WITH MACRON AND ACUTE;Ll;0;L;014D 0301;;;;N;;;1E52;;1E52 -1E54;LATIN CAPITAL LETTER P WITH ACUTE;Lu;0;L;0050 0301;;;;N;;;;1E55; -1E55;LATIN SMALL LETTER P WITH ACUTE;Ll;0;L;0070 0301;;;;N;;;1E54;;1E54 -1E56;LATIN CAPITAL LETTER P WITH DOT ABOVE;Lu;0;L;0050 0307;;;;N;;;;1E57; -1E57;LATIN SMALL LETTER P WITH DOT ABOVE;Ll;0;L;0070 0307;;;;N;;;1E56;;1E56 -1E58;LATIN CAPITAL LETTER R WITH DOT ABOVE;Lu;0;L;0052 0307;;;;N;;;;1E59; -1E59;LATIN SMALL LETTER R WITH DOT ABOVE;Ll;0;L;0072 0307;;;;N;;;1E58;;1E58 -1E5A;LATIN CAPITAL LETTER R WITH DOT BELOW;Lu;0;L;0052 0323;;;;N;;;;1E5B; -1E5B;LATIN SMALL LETTER R WITH DOT BELOW;Ll;0;L;0072 0323;;;;N;;;1E5A;;1E5A -1E5C;LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON;Lu;0;L;1E5A 0304;;;;N;;;;1E5D; -1E5D;LATIN SMALL LETTER R WITH DOT BELOW AND MACRON;Ll;0;L;1E5B 0304;;;;N;;;1E5C;;1E5C -1E5E;LATIN CAPITAL LETTER R WITH LINE BELOW;Lu;0;L;0052 0331;;;;N;;;;1E5F; -1E5F;LATIN SMALL LETTER R WITH LINE BELOW;Ll;0;L;0072 0331;;;;N;;;1E5E;;1E5E -1E60;LATIN CAPITAL LETTER S WITH DOT ABOVE;Lu;0;L;0053 0307;;;;N;;;;1E61; -1E61;LATIN SMALL LETTER S WITH DOT ABOVE;Ll;0;L;0073 0307;;;;N;;;1E60;;1E60 -1E62;LATIN CAPITAL LETTER S WITH DOT BELOW;Lu;0;L;0053 0323;;;;N;;;;1E63; -1E63;LATIN SMALL LETTER S WITH DOT BELOW;Ll;0;L;0073 0323;;;;N;;;1E62;;1E62 -1E64;LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE;Lu;0;L;015A 0307;;;;N;;;;1E65; -1E65;LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE;Ll;0;L;015B 0307;;;;N;;;1E64;;1E64 -1E66;LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE;Lu;0;L;0160 0307;;;;N;;;;1E67; -1E67;LATIN SMALL LETTER S WITH CARON AND DOT ABOVE;Ll;0;L;0161 0307;;;;N;;;1E66;;1E66 -1E68;LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE;Lu;0;L;1E62 0307;;;;N;;;;1E69; -1E69;LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE;Ll;0;L;1E63 0307;;;;N;;;1E68;;1E68 -1E6A;LATIN CAPITAL LETTER T WITH DOT ABOVE;Lu;0;L;0054 0307;;;;N;;;;1E6B; -1E6B;LATIN SMALL LETTER T WITH DOT ABOVE;Ll;0;L;0074 0307;;;;N;;;1E6A;;1E6A -1E6C;LATIN CAPITAL LETTER T WITH DOT BELOW;Lu;0;L;0054 0323;;;;N;;;;1E6D; -1E6D;LATIN SMALL LETTER T WITH DOT BELOW;Ll;0;L;0074 0323;;;;N;;;1E6C;;1E6C -1E6E;LATIN CAPITAL LETTER T WITH LINE BELOW;Lu;0;L;0054 0331;;;;N;;;;1E6F; -1E6F;LATIN SMALL LETTER T WITH LINE BELOW;Ll;0;L;0074 0331;;;;N;;;1E6E;;1E6E -1E70;LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW;Lu;0;L;0054 032D;;;;N;;;;1E71; -1E71;LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW;Ll;0;L;0074 032D;;;;N;;;1E70;;1E70 -1E72;LATIN CAPITAL LETTER U WITH DIAERESIS BELOW;Lu;0;L;0055 0324;;;;N;;;;1E73; -1E73;LATIN SMALL LETTER U WITH DIAERESIS BELOW;Ll;0;L;0075 0324;;;;N;;;1E72;;1E72 -1E74;LATIN CAPITAL LETTER U WITH TILDE BELOW;Lu;0;L;0055 0330;;;;N;;;;1E75; -1E75;LATIN SMALL LETTER U WITH TILDE BELOW;Ll;0;L;0075 0330;;;;N;;;1E74;;1E74 -1E76;LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW;Lu;0;L;0055 032D;;;;N;;;;1E77; -1E77;LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW;Ll;0;L;0075 032D;;;;N;;;1E76;;1E76 -1E78;LATIN CAPITAL LETTER U WITH TILDE AND ACUTE;Lu;0;L;0168 0301;;;;N;;;;1E79; -1E79;LATIN SMALL LETTER U WITH TILDE AND ACUTE;Ll;0;L;0169 0301;;;;N;;;1E78;;1E78 -1E7A;LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS;Lu;0;L;016A 0308;;;;N;;;;1E7B; -1E7B;LATIN SMALL LETTER U WITH MACRON AND DIAERESIS;Ll;0;L;016B 0308;;;;N;;;1E7A;;1E7A -1E7C;LATIN CAPITAL LETTER V WITH TILDE;Lu;0;L;0056 0303;;;;N;;;;1E7D; -1E7D;LATIN SMALL LETTER V WITH TILDE;Ll;0;L;0076 0303;;;;N;;;1E7C;;1E7C -1E7E;LATIN CAPITAL LETTER V WITH DOT BELOW;Lu;0;L;0056 0323;;;;N;;;;1E7F; -1E7F;LATIN SMALL LETTER V WITH DOT BELOW;Ll;0;L;0076 0323;;;;N;;;1E7E;;1E7E -1E80;LATIN CAPITAL LETTER W WITH GRAVE;Lu;0;L;0057 0300;;;;N;;;;1E81; -1E81;LATIN SMALL LETTER W WITH GRAVE;Ll;0;L;0077 0300;;;;N;;;1E80;;1E80 -1E82;LATIN CAPITAL LETTER W WITH ACUTE;Lu;0;L;0057 0301;;;;N;;;;1E83; -1E83;LATIN SMALL LETTER W WITH ACUTE;Ll;0;L;0077 0301;;;;N;;;1E82;;1E82 -1E84;LATIN CAPITAL LETTER W WITH DIAERESIS;Lu;0;L;0057 0308;;;;N;;;;1E85; -1E85;LATIN SMALL LETTER W WITH DIAERESIS;Ll;0;L;0077 0308;;;;N;;;1E84;;1E84 -1E86;LATIN CAPITAL LETTER W WITH DOT ABOVE;Lu;0;L;0057 0307;;;;N;;;;1E87; -1E87;LATIN SMALL LETTER W WITH DOT ABOVE;Ll;0;L;0077 0307;;;;N;;;1E86;;1E86 -1E88;LATIN CAPITAL LETTER W WITH DOT BELOW;Lu;0;L;0057 0323;;;;N;;;;1E89; -1E89;LATIN SMALL LETTER W WITH DOT BELOW;Ll;0;L;0077 0323;;;;N;;;1E88;;1E88 -1E8A;LATIN CAPITAL LETTER X WITH DOT ABOVE;Lu;0;L;0058 0307;;;;N;;;;1E8B; -1E8B;LATIN SMALL LETTER X WITH DOT ABOVE;Ll;0;L;0078 0307;;;;N;;;1E8A;;1E8A -1E8C;LATIN CAPITAL LETTER X WITH DIAERESIS;Lu;0;L;0058 0308;;;;N;;;;1E8D; -1E8D;LATIN SMALL LETTER X WITH DIAERESIS;Ll;0;L;0078 0308;;;;N;;;1E8C;;1E8C -1E8E;LATIN CAPITAL LETTER Y WITH DOT ABOVE;Lu;0;L;0059 0307;;;;N;;;;1E8F; -1E8F;LATIN SMALL LETTER Y WITH DOT ABOVE;Ll;0;L;0079 0307;;;;N;;;1E8E;;1E8E -1E90;LATIN CAPITAL LETTER Z WITH CIRCUMFLEX;Lu;0;L;005A 0302;;;;N;;;;1E91; -1E91;LATIN SMALL LETTER Z WITH CIRCUMFLEX;Ll;0;L;007A 0302;;;;N;;;1E90;;1E90 -1E92;LATIN CAPITAL LETTER Z WITH DOT BELOW;Lu;0;L;005A 0323;;;;N;;;;1E93; -1E93;LATIN SMALL LETTER Z WITH DOT BELOW;Ll;0;L;007A 0323;;;;N;;;1E92;;1E92 -1E94;LATIN CAPITAL LETTER Z WITH LINE BELOW;Lu;0;L;005A 0331;;;;N;;;;1E95; -1E95;LATIN SMALL LETTER Z WITH LINE BELOW;Ll;0;L;007A 0331;;;;N;;;1E94;;1E94 -1E96;LATIN SMALL LETTER H WITH LINE BELOW;Ll;0;L;0068 0331;;;;N;;;;; -1E97;LATIN SMALL LETTER T WITH DIAERESIS;Ll;0;L;0074 0308;;;;N;;;;; -1E98;LATIN SMALL LETTER W WITH RING ABOVE;Ll;0;L;0077 030A;;;;N;;;;; -1E99;LATIN SMALL LETTER Y WITH RING ABOVE;Ll;0;L;0079 030A;;;;N;;;;; -1E9A;LATIN SMALL LETTER A WITH RIGHT HALF RING;Ll;0;L; 0061 02BE;;;;N;;;;; -1E9B;LATIN SMALL LETTER LONG S WITH DOT ABOVE;Ll;0;L;017F 0307;;;;N;;;1E60;;1E60 -1E9C;LATIN SMALL LETTER LONG S WITH DIAGONAL STROKE;Ll;0;L;;;;;N;;;;; -1E9D;LATIN SMALL LETTER LONG S WITH HIGH STROKE;Ll;0;L;;;;;N;;;;; -1E9E;LATIN CAPITAL LETTER SHARP S;Lu;0;L;;;;;N;;;;00DF; -1E9F;LATIN SMALL LETTER DELTA;Ll;0;L;;;;;N;;;;; -1EA0;LATIN CAPITAL LETTER A WITH DOT BELOW;Lu;0;L;0041 0323;;;;N;;;;1EA1; -1EA1;LATIN SMALL LETTER A WITH DOT BELOW;Ll;0;L;0061 0323;;;;N;;;1EA0;;1EA0 -1EA2;LATIN CAPITAL LETTER A WITH HOOK ABOVE;Lu;0;L;0041 0309;;;;N;;;;1EA3; -1EA3;LATIN SMALL LETTER A WITH HOOK ABOVE;Ll;0;L;0061 0309;;;;N;;;1EA2;;1EA2 -1EA4;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE;Lu;0;L;00C2 0301;;;;N;;;;1EA5; -1EA5;LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE;Ll;0;L;00E2 0301;;;;N;;;1EA4;;1EA4 -1EA6;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE;Lu;0;L;00C2 0300;;;;N;;;;1EA7; -1EA7;LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE;Ll;0;L;00E2 0300;;;;N;;;1EA6;;1EA6 -1EA8;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE;Lu;0;L;00C2 0309;;;;N;;;;1EA9; -1EA9;LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE;Ll;0;L;00E2 0309;;;;N;;;1EA8;;1EA8 -1EAA;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE;Lu;0;L;00C2 0303;;;;N;;;;1EAB; -1EAB;LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE;Ll;0;L;00E2 0303;;;;N;;;1EAA;;1EAA -1EAC;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW;Lu;0;L;1EA0 0302;;;;N;;;;1EAD; -1EAD;LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW;Ll;0;L;1EA1 0302;;;;N;;;1EAC;;1EAC -1EAE;LATIN CAPITAL LETTER A WITH BREVE AND ACUTE;Lu;0;L;0102 0301;;;;N;;;;1EAF; -1EAF;LATIN SMALL LETTER A WITH BREVE AND ACUTE;Ll;0;L;0103 0301;;;;N;;;1EAE;;1EAE -1EB0;LATIN CAPITAL LETTER A WITH BREVE AND GRAVE;Lu;0;L;0102 0300;;;;N;;;;1EB1; -1EB1;LATIN SMALL LETTER A WITH BREVE AND GRAVE;Ll;0;L;0103 0300;;;;N;;;1EB0;;1EB0 -1EB2;LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE;Lu;0;L;0102 0309;;;;N;;;;1EB3; -1EB3;LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE;Ll;0;L;0103 0309;;;;N;;;1EB2;;1EB2 -1EB4;LATIN CAPITAL LETTER A WITH BREVE AND TILDE;Lu;0;L;0102 0303;;;;N;;;;1EB5; -1EB5;LATIN SMALL LETTER A WITH BREVE AND TILDE;Ll;0;L;0103 0303;;;;N;;;1EB4;;1EB4 -1EB6;LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW;Lu;0;L;1EA0 0306;;;;N;;;;1EB7; -1EB7;LATIN SMALL LETTER A WITH BREVE AND DOT BELOW;Ll;0;L;1EA1 0306;;;;N;;;1EB6;;1EB6 -1EB8;LATIN CAPITAL LETTER E WITH DOT BELOW;Lu;0;L;0045 0323;;;;N;;;;1EB9; -1EB9;LATIN SMALL LETTER E WITH DOT BELOW;Ll;0;L;0065 0323;;;;N;;;1EB8;;1EB8 -1EBA;LATIN CAPITAL LETTER E WITH HOOK ABOVE;Lu;0;L;0045 0309;;;;N;;;;1EBB; -1EBB;LATIN SMALL LETTER E WITH HOOK ABOVE;Ll;0;L;0065 0309;;;;N;;;1EBA;;1EBA -1EBC;LATIN CAPITAL LETTER E WITH TILDE;Lu;0;L;0045 0303;;;;N;;;;1EBD; -1EBD;LATIN SMALL LETTER E WITH TILDE;Ll;0;L;0065 0303;;;;N;;;1EBC;;1EBC -1EBE;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE;Lu;0;L;00CA 0301;;;;N;;;;1EBF; -1EBF;LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE;Ll;0;L;00EA 0301;;;;N;;;1EBE;;1EBE -1EC0;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE;Lu;0;L;00CA 0300;;;;N;;;;1EC1; -1EC1;LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE;Ll;0;L;00EA 0300;;;;N;;;1EC0;;1EC0 -1EC2;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE;Lu;0;L;00CA 0309;;;;N;;;;1EC3; -1EC3;LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE;Ll;0;L;00EA 0309;;;;N;;;1EC2;;1EC2 -1EC4;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE;Lu;0;L;00CA 0303;;;;N;;;;1EC5; -1EC5;LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE;Ll;0;L;00EA 0303;;;;N;;;1EC4;;1EC4 -1EC6;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW;Lu;0;L;1EB8 0302;;;;N;;;;1EC7; -1EC7;LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW;Ll;0;L;1EB9 0302;;;;N;;;1EC6;;1EC6 -1EC8;LATIN CAPITAL LETTER I WITH HOOK ABOVE;Lu;0;L;0049 0309;;;;N;;;;1EC9; -1EC9;LATIN SMALL LETTER I WITH HOOK ABOVE;Ll;0;L;0069 0309;;;;N;;;1EC8;;1EC8 -1ECA;LATIN CAPITAL LETTER I WITH DOT BELOW;Lu;0;L;0049 0323;;;;N;;;;1ECB; -1ECB;LATIN SMALL LETTER I WITH DOT BELOW;Ll;0;L;0069 0323;;;;N;;;1ECA;;1ECA -1ECC;LATIN CAPITAL LETTER O WITH DOT BELOW;Lu;0;L;004F 0323;;;;N;;;;1ECD; -1ECD;LATIN SMALL LETTER O WITH DOT BELOW;Ll;0;L;006F 0323;;;;N;;;1ECC;;1ECC -1ECE;LATIN CAPITAL LETTER O WITH HOOK ABOVE;Lu;0;L;004F 0309;;;;N;;;;1ECF; -1ECF;LATIN SMALL LETTER O WITH HOOK ABOVE;Ll;0;L;006F 0309;;;;N;;;1ECE;;1ECE -1ED0;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE;Lu;0;L;00D4 0301;;;;N;;;;1ED1; -1ED1;LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE;Ll;0;L;00F4 0301;;;;N;;;1ED0;;1ED0 -1ED2;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE;Lu;0;L;00D4 0300;;;;N;;;;1ED3; -1ED3;LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE;Ll;0;L;00F4 0300;;;;N;;;1ED2;;1ED2 -1ED4;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE;Lu;0;L;00D4 0309;;;;N;;;;1ED5; -1ED5;LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE;Ll;0;L;00F4 0309;;;;N;;;1ED4;;1ED4 -1ED6;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE;Lu;0;L;00D4 0303;;;;N;;;;1ED7; -1ED7;LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE;Ll;0;L;00F4 0303;;;;N;;;1ED6;;1ED6 -1ED8;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW;Lu;0;L;1ECC 0302;;;;N;;;;1ED9; -1ED9;LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW;Ll;0;L;1ECD 0302;;;;N;;;1ED8;;1ED8 -1EDA;LATIN CAPITAL LETTER O WITH HORN AND ACUTE;Lu;0;L;01A0 0301;;;;N;;;;1EDB; -1EDB;LATIN SMALL LETTER O WITH HORN AND ACUTE;Ll;0;L;01A1 0301;;;;N;;;1EDA;;1EDA -1EDC;LATIN CAPITAL LETTER O WITH HORN AND GRAVE;Lu;0;L;01A0 0300;;;;N;;;;1EDD; -1EDD;LATIN SMALL LETTER O WITH HORN AND GRAVE;Ll;0;L;01A1 0300;;;;N;;;1EDC;;1EDC -1EDE;LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE;Lu;0;L;01A0 0309;;;;N;;;;1EDF; -1EDF;LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE;Ll;0;L;01A1 0309;;;;N;;;1EDE;;1EDE -1EE0;LATIN CAPITAL LETTER O WITH HORN AND TILDE;Lu;0;L;01A0 0303;;;;N;;;;1EE1; -1EE1;LATIN SMALL LETTER O WITH HORN AND TILDE;Ll;0;L;01A1 0303;;;;N;;;1EE0;;1EE0 -1EE2;LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW;Lu;0;L;01A0 0323;;;;N;;;;1EE3; -1EE3;LATIN SMALL LETTER O WITH HORN AND DOT BELOW;Ll;0;L;01A1 0323;;;;N;;;1EE2;;1EE2 -1EE4;LATIN CAPITAL LETTER U WITH DOT BELOW;Lu;0;L;0055 0323;;;;N;;;;1EE5; -1EE5;LATIN SMALL LETTER U WITH DOT BELOW;Ll;0;L;0075 0323;;;;N;;;1EE4;;1EE4 -1EE6;LATIN CAPITAL LETTER U WITH HOOK ABOVE;Lu;0;L;0055 0309;;;;N;;;;1EE7; -1EE7;LATIN SMALL LETTER U WITH HOOK ABOVE;Ll;0;L;0075 0309;;;;N;;;1EE6;;1EE6 -1EE8;LATIN CAPITAL LETTER U WITH HORN AND ACUTE;Lu;0;L;01AF 0301;;;;N;;;;1EE9; -1EE9;LATIN SMALL LETTER U WITH HORN AND ACUTE;Ll;0;L;01B0 0301;;;;N;;;1EE8;;1EE8 -1EEA;LATIN CAPITAL LETTER U WITH HORN AND GRAVE;Lu;0;L;01AF 0300;;;;N;;;;1EEB; -1EEB;LATIN SMALL LETTER U WITH HORN AND GRAVE;Ll;0;L;01B0 0300;;;;N;;;1EEA;;1EEA -1EEC;LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE;Lu;0;L;01AF 0309;;;;N;;;;1EED; -1EED;LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE;Ll;0;L;01B0 0309;;;;N;;;1EEC;;1EEC -1EEE;LATIN CAPITAL LETTER U WITH HORN AND TILDE;Lu;0;L;01AF 0303;;;;N;;;;1EEF; -1EEF;LATIN SMALL LETTER U WITH HORN AND TILDE;Ll;0;L;01B0 0303;;;;N;;;1EEE;;1EEE -1EF0;LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW;Lu;0;L;01AF 0323;;;;N;;;;1EF1; -1EF1;LATIN SMALL LETTER U WITH HORN AND DOT BELOW;Ll;0;L;01B0 0323;;;;N;;;1EF0;;1EF0 -1EF2;LATIN CAPITAL LETTER Y WITH GRAVE;Lu;0;L;0059 0300;;;;N;;;;1EF3; -1EF3;LATIN SMALL LETTER Y WITH GRAVE;Ll;0;L;0079 0300;;;;N;;;1EF2;;1EF2 -1EF4;LATIN CAPITAL LETTER Y WITH DOT BELOW;Lu;0;L;0059 0323;;;;N;;;;1EF5; -1EF5;LATIN SMALL LETTER Y WITH DOT BELOW;Ll;0;L;0079 0323;;;;N;;;1EF4;;1EF4 -1EF6;LATIN CAPITAL LETTER Y WITH HOOK ABOVE;Lu;0;L;0059 0309;;;;N;;;;1EF7; -1EF7;LATIN SMALL LETTER Y WITH HOOK ABOVE;Ll;0;L;0079 0309;;;;N;;;1EF6;;1EF6 -1EF8;LATIN CAPITAL LETTER Y WITH TILDE;Lu;0;L;0059 0303;;;;N;;;;1EF9; -1EF9;LATIN SMALL LETTER Y WITH TILDE;Ll;0;L;0079 0303;;;;N;;;1EF8;;1EF8 -1EFA;LATIN CAPITAL LETTER MIDDLE-WELSH LL;Lu;0;L;;;;;N;;;;1EFB; -1EFB;LATIN SMALL LETTER MIDDLE-WELSH LL;Ll;0;L;;;;;N;;;1EFA;;1EFA -1EFC;LATIN CAPITAL LETTER MIDDLE-WELSH V;Lu;0;L;;;;;N;;;;1EFD; -1EFD;LATIN SMALL LETTER MIDDLE-WELSH V;Ll;0;L;;;;;N;;;1EFC;;1EFC -1EFE;LATIN CAPITAL LETTER Y WITH LOOP;Lu;0;L;;;;;N;;;;1EFF; -1EFF;LATIN SMALL LETTER Y WITH LOOP;Ll;0;L;;;;;N;;;1EFE;;1EFE -1F00;GREEK SMALL LETTER ALPHA WITH PSILI;Ll;0;L;03B1 0313;;;;N;;;1F08;;1F08 -1F01;GREEK SMALL LETTER ALPHA WITH DASIA;Ll;0;L;03B1 0314;;;;N;;;1F09;;1F09 -1F02;GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA;Ll;0;L;1F00 0300;;;;N;;;1F0A;;1F0A -1F03;GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA;Ll;0;L;1F01 0300;;;;N;;;1F0B;;1F0B -1F04;GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA;Ll;0;L;1F00 0301;;;;N;;;1F0C;;1F0C -1F05;GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA;Ll;0;L;1F01 0301;;;;N;;;1F0D;;1F0D -1F06;GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI;Ll;0;L;1F00 0342;;;;N;;;1F0E;;1F0E -1F07;GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI;Ll;0;L;1F01 0342;;;;N;;;1F0F;;1F0F -1F08;GREEK CAPITAL LETTER ALPHA WITH PSILI;Lu;0;L;0391 0313;;;;N;;;;1F00; -1F09;GREEK CAPITAL LETTER ALPHA WITH DASIA;Lu;0;L;0391 0314;;;;N;;;;1F01; -1F0A;GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA;Lu;0;L;1F08 0300;;;;N;;;;1F02; -1F0B;GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA;Lu;0;L;1F09 0300;;;;N;;;;1F03; -1F0C;GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA;Lu;0;L;1F08 0301;;;;N;;;;1F04; -1F0D;GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA;Lu;0;L;1F09 0301;;;;N;;;;1F05; -1F0E;GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI;Lu;0;L;1F08 0342;;;;N;;;;1F06; -1F0F;GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI;Lu;0;L;1F09 0342;;;;N;;;;1F07; -1F10;GREEK SMALL LETTER EPSILON WITH PSILI;Ll;0;L;03B5 0313;;;;N;;;1F18;;1F18 -1F11;GREEK SMALL LETTER EPSILON WITH DASIA;Ll;0;L;03B5 0314;;;;N;;;1F19;;1F19 -1F12;GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA;Ll;0;L;1F10 0300;;;;N;;;1F1A;;1F1A -1F13;GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA;Ll;0;L;1F11 0300;;;;N;;;1F1B;;1F1B -1F14;GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA;Ll;0;L;1F10 0301;;;;N;;;1F1C;;1F1C -1F15;GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA;Ll;0;L;1F11 0301;;;;N;;;1F1D;;1F1D -1F18;GREEK CAPITAL LETTER EPSILON WITH PSILI;Lu;0;L;0395 0313;;;;N;;;;1F10; -1F19;GREEK CAPITAL LETTER EPSILON WITH DASIA;Lu;0;L;0395 0314;;;;N;;;;1F11; -1F1A;GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA;Lu;0;L;1F18 0300;;;;N;;;;1F12; -1F1B;GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA;Lu;0;L;1F19 0300;;;;N;;;;1F13; -1F1C;GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA;Lu;0;L;1F18 0301;;;;N;;;;1F14; -1F1D;GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA;Lu;0;L;1F19 0301;;;;N;;;;1F15; -1F20;GREEK SMALL LETTER ETA WITH PSILI;Ll;0;L;03B7 0313;;;;N;;;1F28;;1F28 -1F21;GREEK SMALL LETTER ETA WITH DASIA;Ll;0;L;03B7 0314;;;;N;;;1F29;;1F29 -1F22;GREEK SMALL LETTER ETA WITH PSILI AND VARIA;Ll;0;L;1F20 0300;;;;N;;;1F2A;;1F2A -1F23;GREEK SMALL LETTER ETA WITH DASIA AND VARIA;Ll;0;L;1F21 0300;;;;N;;;1F2B;;1F2B -1F24;GREEK SMALL LETTER ETA WITH PSILI AND OXIA;Ll;0;L;1F20 0301;;;;N;;;1F2C;;1F2C -1F25;GREEK SMALL LETTER ETA WITH DASIA AND OXIA;Ll;0;L;1F21 0301;;;;N;;;1F2D;;1F2D -1F26;GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI;Ll;0;L;1F20 0342;;;;N;;;1F2E;;1F2E -1F27;GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI;Ll;0;L;1F21 0342;;;;N;;;1F2F;;1F2F -1F28;GREEK CAPITAL LETTER ETA WITH PSILI;Lu;0;L;0397 0313;;;;N;;;;1F20; -1F29;GREEK CAPITAL LETTER ETA WITH DASIA;Lu;0;L;0397 0314;;;;N;;;;1F21; -1F2A;GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA;Lu;0;L;1F28 0300;;;;N;;;;1F22; -1F2B;GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA;Lu;0;L;1F29 0300;;;;N;;;;1F23; -1F2C;GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA;Lu;0;L;1F28 0301;;;;N;;;;1F24; -1F2D;GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA;Lu;0;L;1F29 0301;;;;N;;;;1F25; -1F2E;GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI;Lu;0;L;1F28 0342;;;;N;;;;1F26; -1F2F;GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI;Lu;0;L;1F29 0342;;;;N;;;;1F27; -1F30;GREEK SMALL LETTER IOTA WITH PSILI;Ll;0;L;03B9 0313;;;;N;;;1F38;;1F38 -1F31;GREEK SMALL LETTER IOTA WITH DASIA;Ll;0;L;03B9 0314;;;;N;;;1F39;;1F39 -1F32;GREEK SMALL LETTER IOTA WITH PSILI AND VARIA;Ll;0;L;1F30 0300;;;;N;;;1F3A;;1F3A -1F33;GREEK SMALL LETTER IOTA WITH DASIA AND VARIA;Ll;0;L;1F31 0300;;;;N;;;1F3B;;1F3B -1F34;GREEK SMALL LETTER IOTA WITH PSILI AND OXIA;Ll;0;L;1F30 0301;;;;N;;;1F3C;;1F3C -1F35;GREEK SMALL LETTER IOTA WITH DASIA AND OXIA;Ll;0;L;1F31 0301;;;;N;;;1F3D;;1F3D -1F36;GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI;Ll;0;L;1F30 0342;;;;N;;;1F3E;;1F3E -1F37;GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI;Ll;0;L;1F31 0342;;;;N;;;1F3F;;1F3F -1F38;GREEK CAPITAL LETTER IOTA WITH PSILI;Lu;0;L;0399 0313;;;;N;;;;1F30; -1F39;GREEK CAPITAL LETTER IOTA WITH DASIA;Lu;0;L;0399 0314;;;;N;;;;1F31; -1F3A;GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA;Lu;0;L;1F38 0300;;;;N;;;;1F32; -1F3B;GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA;Lu;0;L;1F39 0300;;;;N;;;;1F33; -1F3C;GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA;Lu;0;L;1F38 0301;;;;N;;;;1F34; -1F3D;GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA;Lu;0;L;1F39 0301;;;;N;;;;1F35; -1F3E;GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI;Lu;0;L;1F38 0342;;;;N;;;;1F36; -1F3F;GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI;Lu;0;L;1F39 0342;;;;N;;;;1F37; -1F40;GREEK SMALL LETTER OMICRON WITH PSILI;Ll;0;L;03BF 0313;;;;N;;;1F48;;1F48 -1F41;GREEK SMALL LETTER OMICRON WITH DASIA;Ll;0;L;03BF 0314;;;;N;;;1F49;;1F49 -1F42;GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA;Ll;0;L;1F40 0300;;;;N;;;1F4A;;1F4A -1F43;GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA;Ll;0;L;1F41 0300;;;;N;;;1F4B;;1F4B -1F44;GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA;Ll;0;L;1F40 0301;;;;N;;;1F4C;;1F4C -1F45;GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA;Ll;0;L;1F41 0301;;;;N;;;1F4D;;1F4D -1F48;GREEK CAPITAL LETTER OMICRON WITH PSILI;Lu;0;L;039F 0313;;;;N;;;;1F40; -1F49;GREEK CAPITAL LETTER OMICRON WITH DASIA;Lu;0;L;039F 0314;;;;N;;;;1F41; -1F4A;GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA;Lu;0;L;1F48 0300;;;;N;;;;1F42; -1F4B;GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA;Lu;0;L;1F49 0300;;;;N;;;;1F43; -1F4C;GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA;Lu;0;L;1F48 0301;;;;N;;;;1F44; -1F4D;GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA;Lu;0;L;1F49 0301;;;;N;;;;1F45; -1F50;GREEK SMALL LETTER UPSILON WITH PSILI;Ll;0;L;03C5 0313;;;;N;;;;; -1F51;GREEK SMALL LETTER UPSILON WITH DASIA;Ll;0;L;03C5 0314;;;;N;;;1F59;;1F59 -1F52;GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA;Ll;0;L;1F50 0300;;;;N;;;;; -1F53;GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA;Ll;0;L;1F51 0300;;;;N;;;1F5B;;1F5B -1F54;GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA;Ll;0;L;1F50 0301;;;;N;;;;; -1F55;GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA;Ll;0;L;1F51 0301;;;;N;;;1F5D;;1F5D -1F56;GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI;Ll;0;L;1F50 0342;;;;N;;;;; -1F57;GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI;Ll;0;L;1F51 0342;;;;N;;;1F5F;;1F5F -1F59;GREEK CAPITAL LETTER UPSILON WITH DASIA;Lu;0;L;03A5 0314;;;;N;;;;1F51; -1F5B;GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA;Lu;0;L;1F59 0300;;;;N;;;;1F53; -1F5D;GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA;Lu;0;L;1F59 0301;;;;N;;;;1F55; -1F5F;GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI;Lu;0;L;1F59 0342;;;;N;;;;1F57; -1F60;GREEK SMALL LETTER OMEGA WITH PSILI;Ll;0;L;03C9 0313;;;;N;;;1F68;;1F68 -1F61;GREEK SMALL LETTER OMEGA WITH DASIA;Ll;0;L;03C9 0314;;;;N;;;1F69;;1F69 -1F62;GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA;Ll;0;L;1F60 0300;;;;N;;;1F6A;;1F6A -1F63;GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA;Ll;0;L;1F61 0300;;;;N;;;1F6B;;1F6B -1F64;GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA;Ll;0;L;1F60 0301;;;;N;;;1F6C;;1F6C -1F65;GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA;Ll;0;L;1F61 0301;;;;N;;;1F6D;;1F6D -1F66;GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI;Ll;0;L;1F60 0342;;;;N;;;1F6E;;1F6E -1F67;GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI;Ll;0;L;1F61 0342;;;;N;;;1F6F;;1F6F -1F68;GREEK CAPITAL LETTER OMEGA WITH PSILI;Lu;0;L;03A9 0313;;;;N;;;;1F60; -1F69;GREEK CAPITAL LETTER OMEGA WITH DASIA;Lu;0;L;03A9 0314;;;;N;;;;1F61; -1F6A;GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA;Lu;0;L;1F68 0300;;;;N;;;;1F62; -1F6B;GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA;Lu;0;L;1F69 0300;;;;N;;;;1F63; -1F6C;GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA;Lu;0;L;1F68 0301;;;;N;;;;1F64; -1F6D;GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA;Lu;0;L;1F69 0301;;;;N;;;;1F65; -1F6E;GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI;Lu;0;L;1F68 0342;;;;N;;;;1F66; -1F6F;GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI;Lu;0;L;1F69 0342;;;;N;;;;1F67; -1F70;GREEK SMALL LETTER ALPHA WITH VARIA;Ll;0;L;03B1 0300;;;;N;;;1FBA;;1FBA -1F71;GREEK SMALL LETTER ALPHA WITH OXIA;Ll;0;L;03AC;;;;N;;;1FBB;;1FBB -1F72;GREEK SMALL LETTER EPSILON WITH VARIA;Ll;0;L;03B5 0300;;;;N;;;1FC8;;1FC8 -1F73;GREEK SMALL LETTER EPSILON WITH OXIA;Ll;0;L;03AD;;;;N;;;1FC9;;1FC9 -1F74;GREEK SMALL LETTER ETA WITH VARIA;Ll;0;L;03B7 0300;;;;N;;;1FCA;;1FCA -1F75;GREEK SMALL LETTER ETA WITH OXIA;Ll;0;L;03AE;;;;N;;;1FCB;;1FCB -1F76;GREEK SMALL LETTER IOTA WITH VARIA;Ll;0;L;03B9 0300;;;;N;;;1FDA;;1FDA -1F77;GREEK SMALL LETTER IOTA WITH OXIA;Ll;0;L;03AF;;;;N;;;1FDB;;1FDB -1F78;GREEK SMALL LETTER OMICRON WITH VARIA;Ll;0;L;03BF 0300;;;;N;;;1FF8;;1FF8 -1F79;GREEK SMALL LETTER OMICRON WITH OXIA;Ll;0;L;03CC;;;;N;;;1FF9;;1FF9 -1F7A;GREEK SMALL LETTER UPSILON WITH VARIA;Ll;0;L;03C5 0300;;;;N;;;1FEA;;1FEA -1F7B;GREEK SMALL LETTER UPSILON WITH OXIA;Ll;0;L;03CD;;;;N;;;1FEB;;1FEB -1F7C;GREEK SMALL LETTER OMEGA WITH VARIA;Ll;0;L;03C9 0300;;;;N;;;1FFA;;1FFA -1F7D;GREEK SMALL LETTER OMEGA WITH OXIA;Ll;0;L;03CE;;;;N;;;1FFB;;1FFB -1F80;GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI;Ll;0;L;1F00 0345;;;;N;;;1F88;;1F88 -1F81;GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI;Ll;0;L;1F01 0345;;;;N;;;1F89;;1F89 -1F82;GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F02 0345;;;;N;;;1F8A;;1F8A -1F83;GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F03 0345;;;;N;;;1F8B;;1F8B -1F84;GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F04 0345;;;;N;;;1F8C;;1F8C -1F85;GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F05 0345;;;;N;;;1F8D;;1F8D -1F86;GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F06 0345;;;;N;;;1F8E;;1F8E -1F87;GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F07 0345;;;;N;;;1F8F;;1F8F -1F88;GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI;Lt;0;L;1F08 0345;;;;N;;;;1F80; -1F89;GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI;Lt;0;L;1F09 0345;;;;N;;;;1F81; -1F8A;GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F0A 0345;;;;N;;;;1F82; -1F8B;GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F0B 0345;;;;N;;;;1F83; -1F8C;GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F0C 0345;;;;N;;;;1F84; -1F8D;GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F0D 0345;;;;N;;;;1F85; -1F8E;GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F0E 0345;;;;N;;;;1F86; -1F8F;GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F0F 0345;;;;N;;;;1F87; -1F90;GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI;Ll;0;L;1F20 0345;;;;N;;;1F98;;1F98 -1F91;GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI;Ll;0;L;1F21 0345;;;;N;;;1F99;;1F99 -1F92;GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F22 0345;;;;N;;;1F9A;;1F9A -1F93;GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F23 0345;;;;N;;;1F9B;;1F9B -1F94;GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F24 0345;;;;N;;;1F9C;;1F9C -1F95;GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F25 0345;;;;N;;;1F9D;;1F9D -1F96;GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F26 0345;;;;N;;;1F9E;;1F9E -1F97;GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F27 0345;;;;N;;;1F9F;;1F9F -1F98;GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI;Lt;0;L;1F28 0345;;;;N;;;;1F90; -1F99;GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI;Lt;0;L;1F29 0345;;;;N;;;;1F91; -1F9A;GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F2A 0345;;;;N;;;;1F92; -1F9B;GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F2B 0345;;;;N;;;;1F93; -1F9C;GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F2C 0345;;;;N;;;;1F94; -1F9D;GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F2D 0345;;;;N;;;;1F95; -1F9E;GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F2E 0345;;;;N;;;;1F96; -1F9F;GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F2F 0345;;;;N;;;;1F97; -1FA0;GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI;Ll;0;L;1F60 0345;;;;N;;;1FA8;;1FA8 -1FA1;GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI;Ll;0;L;1F61 0345;;;;N;;;1FA9;;1FA9 -1FA2;GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F62 0345;;;;N;;;1FAA;;1FAA -1FA3;GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F63 0345;;;;N;;;1FAB;;1FAB -1FA4;GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F64 0345;;;;N;;;1FAC;;1FAC -1FA5;GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F65 0345;;;;N;;;1FAD;;1FAD -1FA6;GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F66 0345;;;;N;;;1FAE;;1FAE -1FA7;GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F67 0345;;;;N;;;1FAF;;1FAF -1FA8;GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI;Lt;0;L;1F68 0345;;;;N;;;;1FA0; -1FA9;GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI;Lt;0;L;1F69 0345;;;;N;;;;1FA1; -1FAA;GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F6A 0345;;;;N;;;;1FA2; -1FAB;GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F6B 0345;;;;N;;;;1FA3; -1FAC;GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F6C 0345;;;;N;;;;1FA4; -1FAD;GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F6D 0345;;;;N;;;;1FA5; -1FAE;GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F6E 0345;;;;N;;;;1FA6; -1FAF;GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F6F 0345;;;;N;;;;1FA7; -1FB0;GREEK SMALL LETTER ALPHA WITH VRACHY;Ll;0;L;03B1 0306;;;;N;;;1FB8;;1FB8 -1FB1;GREEK SMALL LETTER ALPHA WITH MACRON;Ll;0;L;03B1 0304;;;;N;;;1FB9;;1FB9 -1FB2;GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI;Ll;0;L;1F70 0345;;;;N;;;;; -1FB3;GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI;Ll;0;L;03B1 0345;;;;N;;;1FBC;;1FBC -1FB4;GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI;Ll;0;L;03AC 0345;;;;N;;;;; -1FB6;GREEK SMALL LETTER ALPHA WITH PERISPOMENI;Ll;0;L;03B1 0342;;;;N;;;;; -1FB7;GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1FB6 0345;;;;N;;;;; -1FB8;GREEK CAPITAL LETTER ALPHA WITH VRACHY;Lu;0;L;0391 0306;;;;N;;;;1FB0; -1FB9;GREEK CAPITAL LETTER ALPHA WITH MACRON;Lu;0;L;0391 0304;;;;N;;;;1FB1; -1FBA;GREEK CAPITAL LETTER ALPHA WITH VARIA;Lu;0;L;0391 0300;;;;N;;;;1F70; -1FBB;GREEK CAPITAL LETTER ALPHA WITH OXIA;Lu;0;L;0386;;;;N;;;;1F71; -1FBC;GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI;Lt;0;L;0391 0345;;;;N;;;;1FB3; -1FBD;GREEK KORONIS;Sk;0;ON; 0020 0313;;;;N;;;;; -1FBE;GREEK PROSGEGRAMMENI;Ll;0;L;03B9;;;;N;;;0399;;0399 -1FBF;GREEK PSILI;Sk;0;ON; 0020 0313;;;;N;;;;; -1FC0;GREEK PERISPOMENI;Sk;0;ON; 0020 0342;;;;N;;;;; -1FC1;GREEK DIALYTIKA AND PERISPOMENI;Sk;0;ON;00A8 0342;;;;N;;;;; -1FC2;GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI;Ll;0;L;1F74 0345;;;;N;;;;; -1FC3;GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI;Ll;0;L;03B7 0345;;;;N;;;1FCC;;1FCC -1FC4;GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI;Ll;0;L;03AE 0345;;;;N;;;;; -1FC6;GREEK SMALL LETTER ETA WITH PERISPOMENI;Ll;0;L;03B7 0342;;;;N;;;;; -1FC7;GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1FC6 0345;;;;N;;;;; -1FC8;GREEK CAPITAL LETTER EPSILON WITH VARIA;Lu;0;L;0395 0300;;;;N;;;;1F72; -1FC9;GREEK CAPITAL LETTER EPSILON WITH OXIA;Lu;0;L;0388;;;;N;;;;1F73; -1FCA;GREEK CAPITAL LETTER ETA WITH VARIA;Lu;0;L;0397 0300;;;;N;;;;1F74; -1FCB;GREEK CAPITAL LETTER ETA WITH OXIA;Lu;0;L;0389;;;;N;;;;1F75; -1FCC;GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI;Lt;0;L;0397 0345;;;;N;;;;1FC3; -1FCD;GREEK PSILI AND VARIA;Sk;0;ON;1FBF 0300;;;;N;;;;; -1FCE;GREEK PSILI AND OXIA;Sk;0;ON;1FBF 0301;;;;N;;;;; -1FCF;GREEK PSILI AND PERISPOMENI;Sk;0;ON;1FBF 0342;;;;N;;;;; -1FD0;GREEK SMALL LETTER IOTA WITH VRACHY;Ll;0;L;03B9 0306;;;;N;;;1FD8;;1FD8 -1FD1;GREEK SMALL LETTER IOTA WITH MACRON;Ll;0;L;03B9 0304;;;;N;;;1FD9;;1FD9 -1FD2;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA;Ll;0;L;03CA 0300;;;;N;;;;; -1FD3;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA;Ll;0;L;0390;;;;N;;;;; -1FD6;GREEK SMALL LETTER IOTA WITH PERISPOMENI;Ll;0;L;03B9 0342;;;;N;;;;; -1FD7;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI;Ll;0;L;03CA 0342;;;;N;;;;; -1FD8;GREEK CAPITAL LETTER IOTA WITH VRACHY;Lu;0;L;0399 0306;;;;N;;;;1FD0; -1FD9;GREEK CAPITAL LETTER IOTA WITH MACRON;Lu;0;L;0399 0304;;;;N;;;;1FD1; -1FDA;GREEK CAPITAL LETTER IOTA WITH VARIA;Lu;0;L;0399 0300;;;;N;;;;1F76; -1FDB;GREEK CAPITAL LETTER IOTA WITH OXIA;Lu;0;L;038A;;;;N;;;;1F77; -1FDD;GREEK DASIA AND VARIA;Sk;0;ON;1FFE 0300;;;;N;;;;; -1FDE;GREEK DASIA AND OXIA;Sk;0;ON;1FFE 0301;;;;N;;;;; -1FDF;GREEK DASIA AND PERISPOMENI;Sk;0;ON;1FFE 0342;;;;N;;;;; -1FE0;GREEK SMALL LETTER UPSILON WITH VRACHY;Ll;0;L;03C5 0306;;;;N;;;1FE8;;1FE8 -1FE1;GREEK SMALL LETTER UPSILON WITH MACRON;Ll;0;L;03C5 0304;;;;N;;;1FE9;;1FE9 -1FE2;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA;Ll;0;L;03CB 0300;;;;N;;;;; -1FE3;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA;Ll;0;L;03B0;;;;N;;;;; -1FE4;GREEK SMALL LETTER RHO WITH PSILI;Ll;0;L;03C1 0313;;;;N;;;;; -1FE5;GREEK SMALL LETTER RHO WITH DASIA;Ll;0;L;03C1 0314;;;;N;;;1FEC;;1FEC -1FE6;GREEK SMALL LETTER UPSILON WITH PERISPOMENI;Ll;0;L;03C5 0342;;;;N;;;;; -1FE7;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI;Ll;0;L;03CB 0342;;;;N;;;;; -1FE8;GREEK CAPITAL LETTER UPSILON WITH VRACHY;Lu;0;L;03A5 0306;;;;N;;;;1FE0; -1FE9;GREEK CAPITAL LETTER UPSILON WITH MACRON;Lu;0;L;03A5 0304;;;;N;;;;1FE1; -1FEA;GREEK CAPITAL LETTER UPSILON WITH VARIA;Lu;0;L;03A5 0300;;;;N;;;;1F7A; -1FEB;GREEK CAPITAL LETTER UPSILON WITH OXIA;Lu;0;L;038E;;;;N;;;;1F7B; -1FEC;GREEK CAPITAL LETTER RHO WITH DASIA;Lu;0;L;03A1 0314;;;;N;;;;1FE5; -1FED;GREEK DIALYTIKA AND VARIA;Sk;0;ON;00A8 0300;;;;N;;;;; -1FEE;GREEK DIALYTIKA AND OXIA;Sk;0;ON;0385;;;;N;;;;; -1FEF;GREEK VARIA;Sk;0;ON;0060;;;;N;;;;; -1FF2;GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI;Ll;0;L;1F7C 0345;;;;N;;;;; -1FF3;GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI;Ll;0;L;03C9 0345;;;;N;;;1FFC;;1FFC -1FF4;GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI;Ll;0;L;03CE 0345;;;;N;;;;; -1FF6;GREEK SMALL LETTER OMEGA WITH PERISPOMENI;Ll;0;L;03C9 0342;;;;N;;;;; -1FF7;GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1FF6 0345;;;;N;;;;; -1FF8;GREEK CAPITAL LETTER OMICRON WITH VARIA;Lu;0;L;039F 0300;;;;N;;;;1F78; -1FF9;GREEK CAPITAL LETTER OMICRON WITH OXIA;Lu;0;L;038C;;;;N;;;;1F79; -1FFA;GREEK CAPITAL LETTER OMEGA WITH VARIA;Lu;0;L;03A9 0300;;;;N;;;;1F7C; -1FFB;GREEK CAPITAL LETTER OMEGA WITH OXIA;Lu;0;L;038F;;;;N;;;;1F7D; -1FFC;GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI;Lt;0;L;03A9 0345;;;;N;;;;1FF3; -1FFD;GREEK OXIA;Sk;0;ON;00B4;;;;N;;;;; -1FFE;GREEK DASIA;Sk;0;ON; 0020 0314;;;;N;;;;; -2000;EN QUAD;Zs;0;WS;2002;;;;N;;;;; -2001;EM QUAD;Zs;0;WS;2003;;;;N;;;;; -2002;EN SPACE;Zs;0;WS; 0020;;;;N;;;;; -2003;EM SPACE;Zs;0;WS; 0020;;;;N;;;;; -2004;THREE-PER-EM SPACE;Zs;0;WS; 0020;;;;N;;;;; -2005;FOUR-PER-EM SPACE;Zs;0;WS; 0020;;;;N;;;;; -2006;SIX-PER-EM SPACE;Zs;0;WS; 0020;;;;N;;;;; -2007;FIGURE SPACE;Zs;0;WS; 0020;;;;N;;;;; -2008;PUNCTUATION SPACE;Zs;0;WS; 0020;;;;N;;;;; -2009;THIN SPACE;Zs;0;WS; 0020;;;;N;;;;; -200A;HAIR SPACE;Zs;0;WS; 0020;;;;N;;;;; -200B;ZERO WIDTH SPACE;Cf;0;BN;;;;;N;;;;; -200C;ZERO WIDTH NON-JOINER;Cf;0;BN;;;;;N;;;;; -200D;ZERO WIDTH JOINER;Cf;0;BN;;;;;N;;;;; -200E;LEFT-TO-RIGHT MARK;Cf;0;L;;;;;N;;;;; -200F;RIGHT-TO-LEFT MARK;Cf;0;R;;;;;N;;;;; -2010;HYPHEN;Pd;0;ON;;;;;N;;;;; -2011;NON-BREAKING HYPHEN;Pd;0;ON; 2010;;;;N;;;;; -2012;FIGURE DASH;Pd;0;ON;;;;;N;;;;; -2013;EN DASH;Pd;0;ON;;;;;N;;;;; -2014;EM DASH;Pd;0;ON;;;;;N;;;;; -2015;HORIZONTAL BAR;Pd;0;ON;;;;;N;QUOTATION DASH;;;; -2016;DOUBLE VERTICAL LINE;Po;0;ON;;;;;N;DOUBLE VERTICAL BAR;;;; -2017;DOUBLE LOW LINE;Po;0;ON; 0020 0333;;;;N;SPACING DOUBLE UNDERSCORE;;;; -2018;LEFT SINGLE QUOTATION MARK;Pi;0;ON;;;;;N;SINGLE TURNED COMMA QUOTATION MARK;;;; -2019;RIGHT SINGLE QUOTATION MARK;Pf;0;ON;;;;;N;SINGLE COMMA QUOTATION MARK;;;; -201A;SINGLE LOW-9 QUOTATION MARK;Ps;0;ON;;;;;N;LOW SINGLE COMMA QUOTATION MARK;;;; -201B;SINGLE HIGH-REVERSED-9 QUOTATION MARK;Pi;0;ON;;;;;N;SINGLE REVERSED COMMA QUOTATION MARK;;;; -201C;LEFT DOUBLE QUOTATION MARK;Pi;0;ON;;;;;N;DOUBLE TURNED COMMA QUOTATION MARK;;;; -201D;RIGHT DOUBLE QUOTATION MARK;Pf;0;ON;;;;;N;DOUBLE COMMA QUOTATION MARK;;;; -201E;DOUBLE LOW-9 QUOTATION MARK;Ps;0;ON;;;;;N;LOW DOUBLE COMMA QUOTATION MARK;;;; -201F;DOUBLE HIGH-REVERSED-9 QUOTATION MARK;Pi;0;ON;;;;;N;DOUBLE REVERSED COMMA QUOTATION MARK;;;; -2020;DAGGER;Po;0;ON;;;;;N;;;;; -2021;DOUBLE DAGGER;Po;0;ON;;;;;N;;;;; -2022;BULLET;Po;0;ON;;;;;N;;;;; -2023;TRIANGULAR BULLET;Po;0;ON;;;;;N;;;;; -2024;ONE DOT LEADER;Po;0;ON; 002E;;;;N;;;;; -2025;TWO DOT LEADER;Po;0;ON; 002E 002E;;;;N;;;;; -2026;HORIZONTAL ELLIPSIS;Po;0;ON; 002E 002E 002E;;;;N;;;;; -2027;HYPHENATION POINT;Po;0;ON;;;;;N;;;;; -2028;LINE SEPARATOR;Zl;0;WS;;;;;N;;;;; -2029;PARAGRAPH SEPARATOR;Zp;0;B;;;;;N;;;;; -202A;LEFT-TO-RIGHT EMBEDDING;Cf;0;LRE;;;;;N;;;;; -202B;RIGHT-TO-LEFT EMBEDDING;Cf;0;RLE;;;;;N;;;;; -202C;POP DIRECTIONAL FORMATTING;Cf;0;PDF;;;;;N;;;;; -202D;LEFT-TO-RIGHT OVERRIDE;Cf;0;LRO;;;;;N;;;;; -202E;RIGHT-TO-LEFT OVERRIDE;Cf;0;RLO;;;;;N;;;;; -202F;NARROW NO-BREAK SPACE;Zs;0;CS; 0020;;;;N;;;;; -2030;PER MILLE SIGN;Po;0;ET;;;;;N;;;;; -2031;PER TEN THOUSAND SIGN;Po;0;ET;;;;;N;;;;; -2032;PRIME;Po;0;ET;;;;;N;;;;; -2033;DOUBLE PRIME;Po;0;ET; 2032 2032;;;;N;;;;; -2034;TRIPLE PRIME;Po;0;ET; 2032 2032 2032;;;;N;;;;; -2035;REVERSED PRIME;Po;0;ON;;;;;N;;;;; -2036;REVERSED DOUBLE PRIME;Po;0;ON; 2035 2035;;;;N;;;;; -2037;REVERSED TRIPLE PRIME;Po;0;ON; 2035 2035 2035;;;;N;;;;; -2038;CARET;Po;0;ON;;;;;N;;;;; -2039;SINGLE LEFT-POINTING ANGLE QUOTATION MARK;Pi;0;ON;;;;;Y;LEFT POINTING SINGLE GUILLEMET;;;; -203A;SINGLE RIGHT-POINTING ANGLE QUOTATION MARK;Pf;0;ON;;;;;Y;RIGHT POINTING SINGLE GUILLEMET;;;; -203B;REFERENCE MARK;Po;0;ON;;;;;N;;;;; -203C;DOUBLE EXCLAMATION MARK;Po;0;ON; 0021 0021;;;;N;;;;; -203D;INTERROBANG;Po;0;ON;;;;;N;;;;; -203E;OVERLINE;Po;0;ON; 0020 0305;;;;N;SPACING OVERSCORE;;;; -203F;UNDERTIE;Pc;0;ON;;;;;N;;;;; -2040;CHARACTER TIE;Pc;0;ON;;;;;N;;;;; -2041;CARET INSERTION POINT;Po;0;ON;;;;;N;;;;; -2042;ASTERISM;Po;0;ON;;;;;N;;;;; -2043;HYPHEN BULLET;Po;0;ON;;;;;N;;;;; -2044;FRACTION SLASH;Sm;0;CS;;;;;N;;;;; -2045;LEFT SQUARE BRACKET WITH QUILL;Ps;0;ON;;;;;Y;;;;; -2046;RIGHT SQUARE BRACKET WITH QUILL;Pe;0;ON;;;;;Y;;;;; -2047;DOUBLE QUESTION MARK;Po;0;ON; 003F 003F;;;;N;;;;; -2048;QUESTION EXCLAMATION MARK;Po;0;ON; 003F 0021;;;;N;;;;; -2049;EXCLAMATION QUESTION MARK;Po;0;ON; 0021 003F;;;;N;;;;; -204A;TIRONIAN SIGN ET;Po;0;ON;;;;;N;;;;; -204B;REVERSED PILCROW SIGN;Po;0;ON;;;;;N;;;;; -204C;BLACK LEFTWARDS BULLET;Po;0;ON;;;;;N;;;;; -204D;BLACK RIGHTWARDS BULLET;Po;0;ON;;;;;N;;;;; -204E;LOW ASTERISK;Po;0;ON;;;;;N;;;;; -204F;REVERSED SEMICOLON;Po;0;ON;;;;;N;;;;; -2050;CLOSE UP;Po;0;ON;;;;;N;;;;; -2051;TWO ASTERISKS ALIGNED VERTICALLY;Po;0;ON;;;;;N;;;;; -2052;COMMERCIAL MINUS SIGN;Sm;0;ON;;;;;N;;;;; -2053;SWUNG DASH;Po;0;ON;;;;;N;;;;; -2054;INVERTED UNDERTIE;Pc;0;ON;;;;;N;;;;; -2055;FLOWER PUNCTUATION MARK;Po;0;ON;;;;;N;;;;; -2056;THREE DOT PUNCTUATION;Po;0;ON;;;;;N;;;;; -2057;QUADRUPLE PRIME;Po;0;ON; 2032 2032 2032 2032;;;;N;;;;; -2058;FOUR DOT PUNCTUATION;Po;0;ON;;;;;N;;;;; -2059;FIVE DOT PUNCTUATION;Po;0;ON;;;;;N;;;;; -205A;TWO DOT PUNCTUATION;Po;0;ON;;;;;N;;;;; -205B;FOUR DOT MARK;Po;0;ON;;;;;N;;;;; -205C;DOTTED CROSS;Po;0;ON;;;;;N;;;;; -205D;TRICOLON;Po;0;ON;;;;;N;;;;; -205E;VERTICAL FOUR DOTS;Po;0;ON;;;;;N;;;;; -205F;MEDIUM MATHEMATICAL SPACE;Zs;0;WS; 0020;;;;N;;;;; -2060;WORD JOINER;Cf;0;BN;;;;;N;;;;; -2061;FUNCTION APPLICATION;Cf;0;BN;;;;;N;;;;; -2062;INVISIBLE TIMES;Cf;0;BN;;;;;N;;;;; -2063;INVISIBLE SEPARATOR;Cf;0;BN;;;;;N;;;;; -2064;INVISIBLE PLUS;Cf;0;BN;;;;;N;;;;; -206A;INHIBIT SYMMETRIC SWAPPING;Cf;0;BN;;;;;N;;;;; -206B;ACTIVATE SYMMETRIC SWAPPING;Cf;0;BN;;;;;N;;;;; -206C;INHIBIT ARABIC FORM SHAPING;Cf;0;BN;;;;;N;;;;; -206D;ACTIVATE ARABIC FORM SHAPING;Cf;0;BN;;;;;N;;;;; -206E;NATIONAL DIGIT SHAPES;Cf;0;BN;;;;;N;;;;; -206F;NOMINAL DIGIT SHAPES;Cf;0;BN;;;;;N;;;;; -2070;SUPERSCRIPT ZERO;No;0;EN; 0030;;0;0;N;SUPERSCRIPT DIGIT ZERO;;;; -2071;SUPERSCRIPT LATIN SMALL LETTER I;Lm;0;L; 0069;;;;N;;;;; -2074;SUPERSCRIPT FOUR;No;0;EN; 0034;;4;4;N;SUPERSCRIPT DIGIT FOUR;;;; -2075;SUPERSCRIPT FIVE;No;0;EN; 0035;;5;5;N;SUPERSCRIPT DIGIT FIVE;;;; -2076;SUPERSCRIPT SIX;No;0;EN; 0036;;6;6;N;SUPERSCRIPT DIGIT SIX;;;; -2077;SUPERSCRIPT SEVEN;No;0;EN; 0037;;7;7;N;SUPERSCRIPT DIGIT SEVEN;;;; -2078;SUPERSCRIPT EIGHT;No;0;EN; 0038;;8;8;N;SUPERSCRIPT DIGIT EIGHT;;;; -2079;SUPERSCRIPT NINE;No;0;EN; 0039;;9;9;N;SUPERSCRIPT DIGIT NINE;;;; -207A;SUPERSCRIPT PLUS SIGN;Sm;0;ES; 002B;;;;N;;;;; -207B;SUPERSCRIPT MINUS;Sm;0;ES; 2212;;;;N;SUPERSCRIPT HYPHEN-MINUS;;;; -207C;SUPERSCRIPT EQUALS SIGN;Sm;0;ON; 003D;;;;N;;;;; -207D;SUPERSCRIPT LEFT PARENTHESIS;Ps;0;ON; 0028;;;;Y;SUPERSCRIPT OPENING PARENTHESIS;;;; -207E;SUPERSCRIPT RIGHT PARENTHESIS;Pe;0;ON; 0029;;;;Y;SUPERSCRIPT CLOSING PARENTHESIS;;;; -207F;SUPERSCRIPT LATIN SMALL LETTER N;Lm;0;L; 006E;;;;N;;;;; -2080;SUBSCRIPT ZERO;No;0;EN; 0030;;0;0;N;SUBSCRIPT DIGIT ZERO;;;; -2081;SUBSCRIPT ONE;No;0;EN; 0031;;1;1;N;SUBSCRIPT DIGIT ONE;;;; -2082;SUBSCRIPT TWO;No;0;EN; 0032;;2;2;N;SUBSCRIPT DIGIT TWO;;;; -2083;SUBSCRIPT THREE;No;0;EN; 0033;;3;3;N;SUBSCRIPT DIGIT THREE;;;; -2084;SUBSCRIPT FOUR;No;0;EN; 0034;;4;4;N;SUBSCRIPT DIGIT FOUR;;;; -2085;SUBSCRIPT FIVE;No;0;EN; 0035;;5;5;N;SUBSCRIPT DIGIT FIVE;;;; -2086;SUBSCRIPT SIX;No;0;EN; 0036;;6;6;N;SUBSCRIPT DIGIT SIX;;;; -2087;SUBSCRIPT SEVEN;No;0;EN; 0037;;7;7;N;SUBSCRIPT DIGIT SEVEN;;;; -2088;SUBSCRIPT EIGHT;No;0;EN; 0038;;8;8;N;SUBSCRIPT DIGIT EIGHT;;;; -2089;SUBSCRIPT NINE;No;0;EN; 0039;;9;9;N;SUBSCRIPT DIGIT NINE;;;; -208A;SUBSCRIPT PLUS SIGN;Sm;0;ES; 002B;;;;N;;;;; -208B;SUBSCRIPT MINUS;Sm;0;ES; 2212;;;;N;SUBSCRIPT HYPHEN-MINUS;;;; -208C;SUBSCRIPT EQUALS SIGN;Sm;0;ON; 003D;;;;N;;;;; -208D;SUBSCRIPT LEFT PARENTHESIS;Ps;0;ON; 0028;;;;Y;SUBSCRIPT OPENING PARENTHESIS;;;; -208E;SUBSCRIPT RIGHT PARENTHESIS;Pe;0;ON; 0029;;;;Y;SUBSCRIPT CLOSING PARENTHESIS;;;; -2090;LATIN SUBSCRIPT SMALL LETTER A;Lm;0;L; 0061;;;;N;;;;; -2091;LATIN SUBSCRIPT SMALL LETTER E;Lm;0;L; 0065;;;;N;;;;; -2092;LATIN SUBSCRIPT SMALL LETTER O;Lm;0;L; 006F;;;;N;;;;; -2093;LATIN SUBSCRIPT SMALL LETTER X;Lm;0;L; 0078;;;;N;;;;; -2094;LATIN SUBSCRIPT SMALL LETTER SCHWA;Lm;0;L; 0259;;;;N;;;;; -20A0;EURO-CURRENCY SIGN;Sc;0;ET;;;;;N;;;;; -20A1;COLON SIGN;Sc;0;ET;;;;;N;;;;; -20A2;CRUZEIRO SIGN;Sc;0;ET;;;;;N;;;;; -20A3;FRENCH FRANC SIGN;Sc;0;ET;;;;;N;;;;; -20A4;LIRA SIGN;Sc;0;ET;;;;;N;;;;; -20A5;MILL SIGN;Sc;0;ET;;;;;N;;;;; -20A6;NAIRA SIGN;Sc;0;ET;;;;;N;;;;; -20A7;PESETA SIGN;Sc;0;ET;;;;;N;;;;; -20A8;RUPEE SIGN;Sc;0;ET; 0052 0073;;;;N;;;;; -20A9;WON SIGN;Sc;0;ET;;;;;N;;;;; -20AA;NEW SHEQEL SIGN;Sc;0;ET;;;;;N;;;;; -20AB;DONG SIGN;Sc;0;ET;;;;;N;;;;; -20AC;EURO SIGN;Sc;0;ET;;;;;N;;;;; -20AD;KIP SIGN;Sc;0;ET;;;;;N;;;;; -20AE;TUGRIK SIGN;Sc;0;ET;;;;;N;;;;; -20AF;DRACHMA SIGN;Sc;0;ET;;;;;N;;;;; -20B0;GERMAN PENNY SIGN;Sc;0;ET;;;;;N;;;;; -20B1;PESO SIGN;Sc;0;ET;;;;;N;;;;; -20B2;GUARANI SIGN;Sc;0;ET;;;;;N;;;;; -20B3;AUSTRAL SIGN;Sc;0;ET;;;;;N;;;;; -20B4;HRYVNIA SIGN;Sc;0;ET;;;;;N;;;;; -20B5;CEDI SIGN;Sc;0;ET;;;;;N;;;;; -20B6;LIVRE TOURNOIS SIGN;Sc;0;ET;;;;;N;;;;; -20B7;SPESMILO SIGN;Sc;0;ET;;;;;N;;;;; -20B8;TENGE SIGN;Sc;0;ET;;;;;N;;;;; -20D0;COMBINING LEFT HARPOON ABOVE;Mn;230;NSM;;;;;N;NON-SPACING LEFT HARPOON ABOVE;;;; -20D1;COMBINING RIGHT HARPOON ABOVE;Mn;230;NSM;;;;;N;NON-SPACING RIGHT HARPOON ABOVE;;;; -20D2;COMBINING LONG VERTICAL LINE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING LONG VERTICAL BAR OVERLAY;;;; -20D3;COMBINING SHORT VERTICAL LINE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING SHORT VERTICAL BAR OVERLAY;;;; -20D4;COMBINING ANTICLOCKWISE ARROW ABOVE;Mn;230;NSM;;;;;N;NON-SPACING ANTICLOCKWISE ARROW ABOVE;;;; -20D5;COMBINING CLOCKWISE ARROW ABOVE;Mn;230;NSM;;;;;N;NON-SPACING CLOCKWISE ARROW ABOVE;;;; -20D6;COMBINING LEFT ARROW ABOVE;Mn;230;NSM;;;;;N;NON-SPACING LEFT ARROW ABOVE;;;; -20D7;COMBINING RIGHT ARROW ABOVE;Mn;230;NSM;;;;;N;NON-SPACING RIGHT ARROW ABOVE;;;; -20D8;COMBINING RING OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING RING OVERLAY;;;; -20D9;COMBINING CLOCKWISE RING OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING CLOCKWISE RING OVERLAY;;;; -20DA;COMBINING ANTICLOCKWISE RING OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING ANTICLOCKWISE RING OVERLAY;;;; -20DB;COMBINING THREE DOTS ABOVE;Mn;230;NSM;;;;;N;NON-SPACING THREE DOTS ABOVE;;;; -20DC;COMBINING FOUR DOTS ABOVE;Mn;230;NSM;;;;;N;NON-SPACING FOUR DOTS ABOVE;;;; -20DD;COMBINING ENCLOSING CIRCLE;Me;0;NSM;;;;;N;ENCLOSING CIRCLE;;;; -20DE;COMBINING ENCLOSING SQUARE;Me;0;NSM;;;;;N;ENCLOSING SQUARE;;;; -20DF;COMBINING ENCLOSING DIAMOND;Me;0;NSM;;;;;N;ENCLOSING DIAMOND;;;; -20E0;COMBINING ENCLOSING CIRCLE BACKSLASH;Me;0;NSM;;;;;N;ENCLOSING CIRCLE SLASH;;;; -20E1;COMBINING LEFT RIGHT ARROW ABOVE;Mn;230;NSM;;;;;N;NON-SPACING LEFT RIGHT ARROW ABOVE;;;; -20E2;COMBINING ENCLOSING SCREEN;Me;0;NSM;;;;;N;;;;; -20E3;COMBINING ENCLOSING KEYCAP;Me;0;NSM;;;;;N;;;;; -20E4;COMBINING ENCLOSING UPWARD POINTING TRIANGLE;Me;0;NSM;;;;;N;;;;; -20E5;COMBINING REVERSE SOLIDUS OVERLAY;Mn;1;NSM;;;;;N;;;;; -20E6;COMBINING DOUBLE VERTICAL STROKE OVERLAY;Mn;1;NSM;;;;;N;;;;; -20E7;COMBINING ANNUITY SYMBOL;Mn;230;NSM;;;;;N;;;;; -20E8;COMBINING TRIPLE UNDERDOT;Mn;220;NSM;;;;;N;;;;; -20E9;COMBINING WIDE BRIDGE ABOVE;Mn;230;NSM;;;;;N;;;;; -20EA;COMBINING LEFTWARDS ARROW OVERLAY;Mn;1;NSM;;;;;N;;;;; -20EB;COMBINING LONG DOUBLE SOLIDUS OVERLAY;Mn;1;NSM;;;;;N;;;;; -20EC;COMBINING RIGHTWARDS HARPOON WITH BARB DOWNWARDS;Mn;220;NSM;;;;;N;;;;; -20ED;COMBINING LEFTWARDS HARPOON WITH BARB DOWNWARDS;Mn;220;NSM;;;;;N;;;;; -20EE;COMBINING LEFT ARROW BELOW;Mn;220;NSM;;;;;N;;;;; -20EF;COMBINING RIGHT ARROW BELOW;Mn;220;NSM;;;;;N;;;;; -20F0;COMBINING ASTERISK ABOVE;Mn;230;NSM;;;;;N;;;;; -2100;ACCOUNT OF;So;0;ON; 0061 002F 0063;;;;N;;;;; -2101;ADDRESSED TO THE SUBJECT;So;0;ON; 0061 002F 0073;;;;N;;;;; -2102;DOUBLE-STRUCK CAPITAL C;Lu;0;L; 0043;;;;N;DOUBLE-STRUCK C;;;; -2103;DEGREE CELSIUS;So;0;ON; 00B0 0043;;;;N;DEGREES CENTIGRADE;;;; -2104;CENTRE LINE SYMBOL;So;0;ON;;;;;N;C L SYMBOL;;;; -2105;CARE OF;So;0;ON; 0063 002F 006F;;;;N;;;;; -2106;CADA UNA;So;0;ON; 0063 002F 0075;;;;N;;;;; -2107;EULER CONSTANT;Lu;0;L; 0190;;;;N;EULERS;;;; -2108;SCRUPLE;So;0;ON;;;;;N;;;;; -2109;DEGREE FAHRENHEIT;So;0;ON; 00B0 0046;;;;N;DEGREES FAHRENHEIT;;;; -210A;SCRIPT SMALL G;Ll;0;L; 0067;;;;N;;;;; -210B;SCRIPT CAPITAL H;Lu;0;L; 0048;;;;N;SCRIPT H;;;; -210C;BLACK-LETTER CAPITAL H;Lu;0;L; 0048;;;;N;BLACK-LETTER H;;;; -210D;DOUBLE-STRUCK CAPITAL H;Lu;0;L; 0048;;;;N;DOUBLE-STRUCK H;;;; -210E;PLANCK CONSTANT;Ll;0;L; 0068;;;;N;;;;; -210F;PLANCK CONSTANT OVER TWO PI;Ll;0;L; 0127;;;;N;PLANCK CONSTANT OVER 2 PI;;;; -2110;SCRIPT CAPITAL I;Lu;0;L; 0049;;;;N;SCRIPT I;;;; -2111;BLACK-LETTER CAPITAL I;Lu;0;L; 0049;;;;N;BLACK-LETTER I;;;; -2112;SCRIPT CAPITAL L;Lu;0;L; 004C;;;;N;SCRIPT L;;;; -2113;SCRIPT SMALL L;Ll;0;L; 006C;;;;N;;;;; -2114;L B BAR SYMBOL;So;0;ON;;;;;N;;;;; -2115;DOUBLE-STRUCK CAPITAL N;Lu;0;L; 004E;;;;N;DOUBLE-STRUCK N;;;; -2116;NUMERO SIGN;So;0;ON; 004E 006F;;;;N;NUMERO;;;; -2117;SOUND RECORDING COPYRIGHT;So;0;ON;;;;;N;;;;; -2118;SCRIPT CAPITAL P;So;0;ON;;;;;N;SCRIPT P;;;; -2119;DOUBLE-STRUCK CAPITAL P;Lu;0;L; 0050;;;;N;DOUBLE-STRUCK P;;;; -211A;DOUBLE-STRUCK CAPITAL Q;Lu;0;L; 0051;;;;N;DOUBLE-STRUCK Q;;;; -211B;SCRIPT CAPITAL R;Lu;0;L; 0052;;;;N;SCRIPT R;;;; -211C;BLACK-LETTER CAPITAL R;Lu;0;L; 0052;;;;N;BLACK-LETTER R;;;; -211D;DOUBLE-STRUCK CAPITAL R;Lu;0;L; 0052;;;;N;DOUBLE-STRUCK R;;;; -211E;PRESCRIPTION TAKE;So;0;ON;;;;;N;;;;; -211F;RESPONSE;So;0;ON;;;;;N;;;;; -2120;SERVICE MARK;So;0;ON; 0053 004D;;;;N;;;;; -2121;TELEPHONE SIGN;So;0;ON; 0054 0045 004C;;;;N;T E L SYMBOL;;;; -2122;TRADE MARK SIGN;So;0;ON; 0054 004D;;;;N;TRADEMARK;;;; -2123;VERSICLE;So;0;ON;;;;;N;;;;; -2124;DOUBLE-STRUCK CAPITAL Z;Lu;0;L; 005A;;;;N;DOUBLE-STRUCK Z;;;; -2125;OUNCE SIGN;So;0;ON;;;;;N;OUNCE;;;; -2126;OHM SIGN;Lu;0;L;03A9;;;;N;OHM;;;03C9; -2127;INVERTED OHM SIGN;So;0;ON;;;;;N;MHO;;;; -2128;BLACK-LETTER CAPITAL Z;Lu;0;L; 005A;;;;N;BLACK-LETTER Z;;;; -2129;TURNED GREEK SMALL LETTER IOTA;So;0;ON;;;;;N;;;;; -212A;KELVIN SIGN;Lu;0;L;004B;;;;N;DEGREES KELVIN;;;006B; -212B;ANGSTROM SIGN;Lu;0;L;00C5;;;;N;ANGSTROM UNIT;;;00E5; -212C;SCRIPT CAPITAL B;Lu;0;L; 0042;;;;N;SCRIPT B;;;; -212D;BLACK-LETTER CAPITAL C;Lu;0;L; 0043;;;;N;BLACK-LETTER C;;;; -212E;ESTIMATED SYMBOL;So;0;ET;;;;;N;;;;; -212F;SCRIPT SMALL E;Ll;0;L; 0065;;;;N;;;;; -2130;SCRIPT CAPITAL E;Lu;0;L; 0045;;;;N;SCRIPT E;;;; -2131;SCRIPT CAPITAL F;Lu;0;L; 0046;;;;N;SCRIPT F;;;; -2132;TURNED CAPITAL F;Lu;0;L;;;;;N;TURNED F;;;214E; -2133;SCRIPT CAPITAL M;Lu;0;L; 004D;;;;N;SCRIPT M;;;; -2134;SCRIPT SMALL O;Ll;0;L; 006F;;;;N;;;;; -2135;ALEF SYMBOL;Lo;0;L; 05D0;;;;N;FIRST TRANSFINITE CARDINAL;;;; -2136;BET SYMBOL;Lo;0;L; 05D1;;;;N;SECOND TRANSFINITE CARDINAL;;;; -2137;GIMEL SYMBOL;Lo;0;L; 05D2;;;;N;THIRD TRANSFINITE CARDINAL;;;; -2138;DALET SYMBOL;Lo;0;L; 05D3;;;;N;FOURTH TRANSFINITE CARDINAL;;;; -2139;INFORMATION SOURCE;Ll;0;L; 0069;;;;N;;;;; -213A;ROTATED CAPITAL Q;So;0;ON;;;;;N;;;;; -213B;FACSIMILE SIGN;So;0;ON; 0046 0041 0058;;;;N;;;;; -213C;DOUBLE-STRUCK SMALL PI;Ll;0;L; 03C0;;;;N;;;;; -213D;DOUBLE-STRUCK SMALL GAMMA;Ll;0;L; 03B3;;;;N;;;;; -213E;DOUBLE-STRUCK CAPITAL GAMMA;Lu;0;L; 0393;;;;N;;;;; -213F;DOUBLE-STRUCK CAPITAL PI;Lu;0;L; 03A0;;;;N;;;;; -2140;DOUBLE-STRUCK N-ARY SUMMATION;Sm;0;ON; 2211;;;;Y;;;;; -2141;TURNED SANS-SERIF CAPITAL G;Sm;0;ON;;;;;N;;;;; -2142;TURNED SANS-SERIF CAPITAL L;Sm;0;ON;;;;;N;;;;; -2143;REVERSED SANS-SERIF CAPITAL L;Sm;0;ON;;;;;N;;;;; -2144;TURNED SANS-SERIF CAPITAL Y;Sm;0;ON;;;;;N;;;;; -2145;DOUBLE-STRUCK ITALIC CAPITAL D;Lu;0;L; 0044;;;;N;;;;; -2146;DOUBLE-STRUCK ITALIC SMALL D;Ll;0;L; 0064;;;;N;;;;; -2147;DOUBLE-STRUCK ITALIC SMALL E;Ll;0;L; 0065;;;;N;;;;; -2148;DOUBLE-STRUCK ITALIC SMALL I;Ll;0;L; 0069;;;;N;;;;; -2149;DOUBLE-STRUCK ITALIC SMALL J;Ll;0;L; 006A;;;;N;;;;; -214A;PROPERTY LINE;So;0;ON;;;;;N;;;;; -214B;TURNED AMPERSAND;Sm;0;ON;;;;;N;;;;; -214C;PER SIGN;So;0;ON;;;;;N;;;;; -214D;AKTIESELSKAB;So;0;ON;;;;;N;;;;; -214E;TURNED SMALL F;Ll;0;L;;;;;N;;;2132;;2132 -214F;SYMBOL FOR SAMARITAN SOURCE;So;0;L;;;;;N;;;;; -2150;VULGAR FRACTION ONE SEVENTH;No;0;ON; 0031 2044 0037;;;1/7;N;;;;; -2151;VULGAR FRACTION ONE NINTH;No;0;ON; 0031 2044 0039;;;1/9;N;;;;; -2152;VULGAR FRACTION ONE TENTH;No;0;ON; 0031 2044 0031 0030;;;1/10;N;;;;; -2153;VULGAR FRACTION ONE THIRD;No;0;ON; 0031 2044 0033;;;1/3;N;FRACTION ONE THIRD;;;; -2154;VULGAR FRACTION TWO THIRDS;No;0;ON; 0032 2044 0033;;;2/3;N;FRACTION TWO THIRDS;;;; -2155;VULGAR FRACTION ONE FIFTH;No;0;ON; 0031 2044 0035;;;1/5;N;FRACTION ONE FIFTH;;;; -2156;VULGAR FRACTION TWO FIFTHS;No;0;ON; 0032 2044 0035;;;2/5;N;FRACTION TWO FIFTHS;;;; -2157;VULGAR FRACTION THREE FIFTHS;No;0;ON; 0033 2044 0035;;;3/5;N;FRACTION THREE FIFTHS;;;; -2158;VULGAR FRACTION FOUR FIFTHS;No;0;ON; 0034 2044 0035;;;4/5;N;FRACTION FOUR FIFTHS;;;; -2159;VULGAR FRACTION ONE SIXTH;No;0;ON; 0031 2044 0036;;;1/6;N;FRACTION ONE SIXTH;;;; -215A;VULGAR FRACTION FIVE SIXTHS;No;0;ON; 0035 2044 0036;;;5/6;N;FRACTION FIVE SIXTHS;;;; -215B;VULGAR FRACTION ONE EIGHTH;No;0;ON; 0031 2044 0038;;;1/8;N;FRACTION ONE EIGHTH;;;; -215C;VULGAR FRACTION THREE EIGHTHS;No;0;ON; 0033 2044 0038;;;3/8;N;FRACTION THREE EIGHTHS;;;; -215D;VULGAR FRACTION FIVE EIGHTHS;No;0;ON; 0035 2044 0038;;;5/8;N;FRACTION FIVE EIGHTHS;;;; -215E;VULGAR FRACTION SEVEN EIGHTHS;No;0;ON; 0037 2044 0038;;;7/8;N;FRACTION SEVEN EIGHTHS;;;; -215F;FRACTION NUMERATOR ONE;No;0;ON; 0031 2044;;;1;N;;;;; -2160;ROMAN NUMERAL ONE;Nl;0;L; 0049;;;1;N;;;;2170; -2161;ROMAN NUMERAL TWO;Nl;0;L; 0049 0049;;;2;N;;;;2171; -2162;ROMAN NUMERAL THREE;Nl;0;L; 0049 0049 0049;;;3;N;;;;2172; -2163;ROMAN NUMERAL FOUR;Nl;0;L; 0049 0056;;;4;N;;;;2173; -2164;ROMAN NUMERAL FIVE;Nl;0;L; 0056;;;5;N;;;;2174; -2165;ROMAN NUMERAL SIX;Nl;0;L; 0056 0049;;;6;N;;;;2175; -2166;ROMAN NUMERAL SEVEN;Nl;0;L; 0056 0049 0049;;;7;N;;;;2176; -2167;ROMAN NUMERAL EIGHT;Nl;0;L; 0056 0049 0049 0049;;;8;N;;;;2177; -2168;ROMAN NUMERAL NINE;Nl;0;L; 0049 0058;;;9;N;;;;2178; -2169;ROMAN NUMERAL TEN;Nl;0;L; 0058;;;10;N;;;;2179; -216A;ROMAN NUMERAL ELEVEN;Nl;0;L; 0058 0049;;;11;N;;;;217A; -216B;ROMAN NUMERAL TWELVE;Nl;0;L; 0058 0049 0049;;;12;N;;;;217B; -216C;ROMAN NUMERAL FIFTY;Nl;0;L; 004C;;;50;N;;;;217C; -216D;ROMAN NUMERAL ONE HUNDRED;Nl;0;L; 0043;;;100;N;;;;217D; -216E;ROMAN NUMERAL FIVE HUNDRED;Nl;0;L; 0044;;;500;N;;;;217E; -216F;ROMAN NUMERAL ONE THOUSAND;Nl;0;L; 004D;;;1000;N;;;;217F; -2170;SMALL ROMAN NUMERAL ONE;Nl;0;L; 0069;;;1;N;;;2160;;2160 -2171;SMALL ROMAN NUMERAL TWO;Nl;0;L; 0069 0069;;;2;N;;;2161;;2161 -2172;SMALL ROMAN NUMERAL THREE;Nl;0;L; 0069 0069 0069;;;3;N;;;2162;;2162 -2173;SMALL ROMAN NUMERAL FOUR;Nl;0;L; 0069 0076;;;4;N;;;2163;;2163 -2174;SMALL ROMAN NUMERAL FIVE;Nl;0;L; 0076;;;5;N;;;2164;;2164 -2175;SMALL ROMAN NUMERAL SIX;Nl;0;L; 0076 0069;;;6;N;;;2165;;2165 -2176;SMALL ROMAN NUMERAL SEVEN;Nl;0;L; 0076 0069 0069;;;7;N;;;2166;;2166 -2177;SMALL ROMAN NUMERAL EIGHT;Nl;0;L; 0076 0069 0069 0069;;;8;N;;;2167;;2167 -2178;SMALL ROMAN NUMERAL NINE;Nl;0;L; 0069 0078;;;9;N;;;2168;;2168 -2179;SMALL ROMAN NUMERAL TEN;Nl;0;L; 0078;;;10;N;;;2169;;2169 -217A;SMALL ROMAN NUMERAL ELEVEN;Nl;0;L; 0078 0069;;;11;N;;;216A;;216A -217B;SMALL ROMAN NUMERAL TWELVE;Nl;0;L; 0078 0069 0069;;;12;N;;;216B;;216B -217C;SMALL ROMAN NUMERAL FIFTY;Nl;0;L; 006C;;;50;N;;;216C;;216C -217D;SMALL ROMAN NUMERAL ONE HUNDRED;Nl;0;L; 0063;;;100;N;;;216D;;216D -217E;SMALL ROMAN NUMERAL FIVE HUNDRED;Nl;0;L; 0064;;;500;N;;;216E;;216E -217F;SMALL ROMAN NUMERAL ONE THOUSAND;Nl;0;L; 006D;;;1000;N;;;216F;;216F -2180;ROMAN NUMERAL ONE THOUSAND C D;Nl;0;L;;;;1000;N;;;;; -2181;ROMAN NUMERAL FIVE THOUSAND;Nl;0;L;;;;5000;N;;;;; -2182;ROMAN NUMERAL TEN THOUSAND;Nl;0;L;;;;10000;N;;;;; -2183;ROMAN NUMERAL REVERSED ONE HUNDRED;Lu;0;L;;;;;N;;;;2184; -2184;LATIN SMALL LETTER REVERSED C;Ll;0;L;;;;;N;;;2183;;2183 -2185;ROMAN NUMERAL SIX LATE FORM;Nl;0;L;;;;6;N;;;;; -2186;ROMAN NUMERAL FIFTY EARLY FORM;Nl;0;L;;;;50;N;;;;; -2187;ROMAN NUMERAL FIFTY THOUSAND;Nl;0;L;;;;50000;N;;;;; -2188;ROMAN NUMERAL ONE HUNDRED THOUSAND;Nl;0;L;;;;100000;N;;;;; -2189;VULGAR FRACTION ZERO THIRDS;No;0;ON; 0030 2044 0033;;;0;N;;;;; -2190;LEFTWARDS ARROW;Sm;0;ON;;;;;N;LEFT ARROW;;;; -2191;UPWARDS ARROW;Sm;0;ON;;;;;N;UP ARROW;;;; -2192;RIGHTWARDS ARROW;Sm;0;ON;;;;;N;RIGHT ARROW;;;; -2193;DOWNWARDS ARROW;Sm;0;ON;;;;;N;DOWN ARROW;;;; -2194;LEFT RIGHT ARROW;Sm;0;ON;;;;;N;;;;; -2195;UP DOWN ARROW;So;0;ON;;;;;N;;;;; -2196;NORTH WEST ARROW;So;0;ON;;;;;N;UPPER LEFT ARROW;;;; -2197;NORTH EAST ARROW;So;0;ON;;;;;N;UPPER RIGHT ARROW;;;; -2198;SOUTH EAST ARROW;So;0;ON;;;;;N;LOWER RIGHT ARROW;;;; -2199;SOUTH WEST ARROW;So;0;ON;;;;;N;LOWER LEFT ARROW;;;; -219A;LEFTWARDS ARROW WITH STROKE;Sm;0;ON;2190 0338;;;;N;LEFT ARROW WITH STROKE;;;; -219B;RIGHTWARDS ARROW WITH STROKE;Sm;0;ON;2192 0338;;;;N;RIGHT ARROW WITH STROKE;;;; -219C;LEFTWARDS WAVE ARROW;So;0;ON;;;;;N;LEFT WAVE ARROW;;;; -219D;RIGHTWARDS WAVE ARROW;So;0;ON;;;;;N;RIGHT WAVE ARROW;;;; -219E;LEFTWARDS TWO HEADED ARROW;So;0;ON;;;;;N;LEFT TWO HEADED ARROW;;;; -219F;UPWARDS TWO HEADED ARROW;So;0;ON;;;;;N;UP TWO HEADED ARROW;;;; -21A0;RIGHTWARDS TWO HEADED ARROW;Sm;0;ON;;;;;N;RIGHT TWO HEADED ARROW;;;; -21A1;DOWNWARDS TWO HEADED ARROW;So;0;ON;;;;;N;DOWN TWO HEADED ARROW;;;; -21A2;LEFTWARDS ARROW WITH TAIL;So;0;ON;;;;;N;LEFT ARROW WITH TAIL;;;; -21A3;RIGHTWARDS ARROW WITH TAIL;Sm;0;ON;;;;;N;RIGHT ARROW WITH TAIL;;;; -21A4;LEFTWARDS ARROW FROM BAR;So;0;ON;;;;;N;LEFT ARROW FROM BAR;;;; -21A5;UPWARDS ARROW FROM BAR;So;0;ON;;;;;N;UP ARROW FROM BAR;;;; -21A6;RIGHTWARDS ARROW FROM BAR;Sm;0;ON;;;;;N;RIGHT ARROW FROM BAR;;;; -21A7;DOWNWARDS ARROW FROM BAR;So;0;ON;;;;;N;DOWN ARROW FROM BAR;;;; -21A8;UP DOWN ARROW WITH BASE;So;0;ON;;;;;N;;;;; -21A9;LEFTWARDS ARROW WITH HOOK;So;0;ON;;;;;N;LEFT ARROW WITH HOOK;;;; -21AA;RIGHTWARDS ARROW WITH HOOK;So;0;ON;;;;;N;RIGHT ARROW WITH HOOK;;;; -21AB;LEFTWARDS ARROW WITH LOOP;So;0;ON;;;;;N;LEFT ARROW WITH LOOP;;;; -21AC;RIGHTWARDS ARROW WITH LOOP;So;0;ON;;;;;N;RIGHT ARROW WITH LOOP;;;; -21AD;LEFT RIGHT WAVE ARROW;So;0;ON;;;;;N;;;;; -21AE;LEFT RIGHT ARROW WITH STROKE;Sm;0;ON;2194 0338;;;;N;;;;; -21AF;DOWNWARDS ZIGZAG ARROW;So;0;ON;;;;;N;DOWN ZIGZAG ARROW;;;; -21B0;UPWARDS ARROW WITH TIP LEFTWARDS;So;0;ON;;;;;N;UP ARROW WITH TIP LEFT;;;; -21B1;UPWARDS ARROW WITH TIP RIGHTWARDS;So;0;ON;;;;;N;UP ARROW WITH TIP RIGHT;;;; -21B2;DOWNWARDS ARROW WITH TIP LEFTWARDS;So;0;ON;;;;;N;DOWN ARROW WITH TIP LEFT;;;; -21B3;DOWNWARDS ARROW WITH TIP RIGHTWARDS;So;0;ON;;;;;N;DOWN ARROW WITH TIP RIGHT;;;; -21B4;RIGHTWARDS ARROW WITH CORNER DOWNWARDS;So;0;ON;;;;;N;RIGHT ARROW WITH CORNER DOWN;;;; -21B5;DOWNWARDS ARROW WITH CORNER LEFTWARDS;So;0;ON;;;;;N;DOWN ARROW WITH CORNER LEFT;;;; -21B6;ANTICLOCKWISE TOP SEMICIRCLE ARROW;So;0;ON;;;;;N;;;;; -21B7;CLOCKWISE TOP SEMICIRCLE ARROW;So;0;ON;;;;;N;;;;; -21B8;NORTH WEST ARROW TO LONG BAR;So;0;ON;;;;;N;UPPER LEFT ARROW TO LONG BAR;;;; -21B9;LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR;So;0;ON;;;;;N;LEFT ARROW TO BAR OVER RIGHT ARROW TO BAR;;;; -21BA;ANTICLOCKWISE OPEN CIRCLE ARROW;So;0;ON;;;;;N;;;;; -21BB;CLOCKWISE OPEN CIRCLE ARROW;So;0;ON;;;;;N;;;;; -21BC;LEFTWARDS HARPOON WITH BARB UPWARDS;So;0;ON;;;;;N;LEFT HARPOON WITH BARB UP;;;; -21BD;LEFTWARDS HARPOON WITH BARB DOWNWARDS;So;0;ON;;;;;N;LEFT HARPOON WITH BARB DOWN;;;; -21BE;UPWARDS HARPOON WITH BARB RIGHTWARDS;So;0;ON;;;;;N;UP HARPOON WITH BARB RIGHT;;;; -21BF;UPWARDS HARPOON WITH BARB LEFTWARDS;So;0;ON;;;;;N;UP HARPOON WITH BARB LEFT;;;; -21C0;RIGHTWARDS HARPOON WITH BARB UPWARDS;So;0;ON;;;;;N;RIGHT HARPOON WITH BARB UP;;;; -21C1;RIGHTWARDS HARPOON WITH BARB DOWNWARDS;So;0;ON;;;;;N;RIGHT HARPOON WITH BARB DOWN;;;; -21C2;DOWNWARDS HARPOON WITH BARB RIGHTWARDS;So;0;ON;;;;;N;DOWN HARPOON WITH BARB RIGHT;;;; -21C3;DOWNWARDS HARPOON WITH BARB LEFTWARDS;So;0;ON;;;;;N;DOWN HARPOON WITH BARB LEFT;;;; -21C4;RIGHTWARDS ARROW OVER LEFTWARDS ARROW;So;0;ON;;;;;N;RIGHT ARROW OVER LEFT ARROW;;;; -21C5;UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW;So;0;ON;;;;;N;UP ARROW LEFT OF DOWN ARROW;;;; -21C6;LEFTWARDS ARROW OVER RIGHTWARDS ARROW;So;0;ON;;;;;N;LEFT ARROW OVER RIGHT ARROW;;;; -21C7;LEFTWARDS PAIRED ARROWS;So;0;ON;;;;;N;LEFT PAIRED ARROWS;;;; -21C8;UPWARDS PAIRED ARROWS;So;0;ON;;;;;N;UP PAIRED ARROWS;;;; -21C9;RIGHTWARDS PAIRED ARROWS;So;0;ON;;;;;N;RIGHT PAIRED ARROWS;;;; -21CA;DOWNWARDS PAIRED ARROWS;So;0;ON;;;;;N;DOWN PAIRED ARROWS;;;; -21CB;LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON;So;0;ON;;;;;N;LEFT HARPOON OVER RIGHT HARPOON;;;; -21CC;RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON;So;0;ON;;;;;N;RIGHT HARPOON OVER LEFT HARPOON;;;; -21CD;LEFTWARDS DOUBLE ARROW WITH STROKE;So;0;ON;21D0 0338;;;;N;LEFT DOUBLE ARROW WITH STROKE;;;; -21CE;LEFT RIGHT DOUBLE ARROW WITH STROKE;Sm;0;ON;21D4 0338;;;;N;;;;; -21CF;RIGHTWARDS DOUBLE ARROW WITH STROKE;Sm;0;ON;21D2 0338;;;;N;RIGHT DOUBLE ARROW WITH STROKE;;;; -21D0;LEFTWARDS DOUBLE ARROW;So;0;ON;;;;;N;LEFT DOUBLE ARROW;;;; -21D1;UPWARDS DOUBLE ARROW;So;0;ON;;;;;N;UP DOUBLE ARROW;;;; -21D2;RIGHTWARDS DOUBLE ARROW;Sm;0;ON;;;;;N;RIGHT DOUBLE ARROW;;;; -21D3;DOWNWARDS DOUBLE ARROW;So;0;ON;;;;;N;DOWN DOUBLE ARROW;;;; -21D4;LEFT RIGHT DOUBLE ARROW;Sm;0;ON;;;;;N;;;;; -21D5;UP DOWN DOUBLE ARROW;So;0;ON;;;;;N;;;;; -21D6;NORTH WEST DOUBLE ARROW;So;0;ON;;;;;N;UPPER LEFT DOUBLE ARROW;;;; -21D7;NORTH EAST DOUBLE ARROW;So;0;ON;;;;;N;UPPER RIGHT DOUBLE ARROW;;;; -21D8;SOUTH EAST DOUBLE ARROW;So;0;ON;;;;;N;LOWER RIGHT DOUBLE ARROW;;;; -21D9;SOUTH WEST DOUBLE ARROW;So;0;ON;;;;;N;LOWER LEFT DOUBLE ARROW;;;; -21DA;LEFTWARDS TRIPLE ARROW;So;0;ON;;;;;N;LEFT TRIPLE ARROW;;;; -21DB;RIGHTWARDS TRIPLE ARROW;So;0;ON;;;;;N;RIGHT TRIPLE ARROW;;;; -21DC;LEFTWARDS SQUIGGLE ARROW;So;0;ON;;;;;N;LEFT SQUIGGLE ARROW;;;; -21DD;RIGHTWARDS SQUIGGLE ARROW;So;0;ON;;;;;N;RIGHT SQUIGGLE ARROW;;;; -21DE;UPWARDS ARROW WITH DOUBLE STROKE;So;0;ON;;;;;N;UP ARROW WITH DOUBLE STROKE;;;; -21DF;DOWNWARDS ARROW WITH DOUBLE STROKE;So;0;ON;;;;;N;DOWN ARROW WITH DOUBLE STROKE;;;; -21E0;LEFTWARDS DASHED ARROW;So;0;ON;;;;;N;LEFT DASHED ARROW;;;; -21E1;UPWARDS DASHED ARROW;So;0;ON;;;;;N;UP DASHED ARROW;;;; -21E2;RIGHTWARDS DASHED ARROW;So;0;ON;;;;;N;RIGHT DASHED ARROW;;;; -21E3;DOWNWARDS DASHED ARROW;So;0;ON;;;;;N;DOWN DASHED ARROW;;;; -21E4;LEFTWARDS ARROW TO BAR;So;0;ON;;;;;N;LEFT ARROW TO BAR;;;; -21E5;RIGHTWARDS ARROW TO BAR;So;0;ON;;;;;N;RIGHT ARROW TO BAR;;;; -21E6;LEFTWARDS WHITE ARROW;So;0;ON;;;;;N;WHITE LEFT ARROW;;;; -21E7;UPWARDS WHITE ARROW;So;0;ON;;;;;N;WHITE UP ARROW;;;; -21E8;RIGHTWARDS WHITE ARROW;So;0;ON;;;;;N;WHITE RIGHT ARROW;;;; -21E9;DOWNWARDS WHITE ARROW;So;0;ON;;;;;N;WHITE DOWN ARROW;;;; -21EA;UPWARDS WHITE ARROW FROM BAR;So;0;ON;;;;;N;WHITE UP ARROW FROM BAR;;;; -21EB;UPWARDS WHITE ARROW ON PEDESTAL;So;0;ON;;;;;N;;;;; -21EC;UPWARDS WHITE ARROW ON PEDESTAL WITH HORIZONTAL BAR;So;0;ON;;;;;N;;;;; -21ED;UPWARDS WHITE ARROW ON PEDESTAL WITH VERTICAL BAR;So;0;ON;;;;;N;;;;; -21EE;UPWARDS WHITE DOUBLE ARROW;So;0;ON;;;;;N;;;;; -21EF;UPWARDS WHITE DOUBLE ARROW ON PEDESTAL;So;0;ON;;;;;N;;;;; -21F0;RIGHTWARDS WHITE ARROW FROM WALL;So;0;ON;;;;;N;;;;; -21F1;NORTH WEST ARROW TO CORNER;So;0;ON;;;;;N;;;;; -21F2;SOUTH EAST ARROW TO CORNER;So;0;ON;;;;;N;;;;; -21F3;UP DOWN WHITE ARROW;So;0;ON;;;;;N;;;;; -21F4;RIGHT ARROW WITH SMALL CIRCLE;Sm;0;ON;;;;;N;;;;; -21F5;DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW;Sm;0;ON;;;;;N;;;;; -21F6;THREE RIGHTWARDS ARROWS;Sm;0;ON;;;;;N;;;;; -21F7;LEFTWARDS ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; -21F8;RIGHTWARDS ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; -21F9;LEFT RIGHT ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; -21FA;LEFTWARDS ARROW WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; -21FB;RIGHTWARDS ARROW WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; -21FC;LEFT RIGHT ARROW WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; -21FD;LEFTWARDS OPEN-HEADED ARROW;Sm;0;ON;;;;;N;;;;; -21FE;RIGHTWARDS OPEN-HEADED ARROW;Sm;0;ON;;;;;N;;;;; -21FF;LEFT RIGHT OPEN-HEADED ARROW;Sm;0;ON;;;;;N;;;;; -2200;FOR ALL;Sm;0;ON;;;;;N;;;;; -2201;COMPLEMENT;Sm;0;ON;;;;;Y;;;;; -2202;PARTIAL DIFFERENTIAL;Sm;0;ON;;;;;Y;;;;; -2203;THERE EXISTS;Sm;0;ON;;;;;Y;;;;; -2204;THERE DOES NOT EXIST;Sm;0;ON;2203 0338;;;;Y;;;;; -2205;EMPTY SET;Sm;0;ON;;;;;N;;;;; -2206;INCREMENT;Sm;0;ON;;;;;N;;;;; -2207;NABLA;Sm;0;ON;;;;;N;;;;; -2208;ELEMENT OF;Sm;0;ON;;;;;Y;;;;; -2209;NOT AN ELEMENT OF;Sm;0;ON;2208 0338;;;;Y;;;;; -220A;SMALL ELEMENT OF;Sm;0;ON;;;;;Y;;;;; -220B;CONTAINS AS MEMBER;Sm;0;ON;;;;;Y;;;;; -220C;DOES NOT CONTAIN AS MEMBER;Sm;0;ON;220B 0338;;;;Y;;;;; -220D;SMALL CONTAINS AS MEMBER;Sm;0;ON;;;;;Y;;;;; -220E;END OF PROOF;Sm;0;ON;;;;;N;;;;; -220F;N-ARY PRODUCT;Sm;0;ON;;;;;N;;;;; -2210;N-ARY COPRODUCT;Sm;0;ON;;;;;N;;;;; -2211;N-ARY SUMMATION;Sm;0;ON;;;;;Y;;;;; -2212;MINUS SIGN;Sm;0;ES;;;;;N;;;;; -2213;MINUS-OR-PLUS SIGN;Sm;0;ET;;;;;N;;;;; -2214;DOT PLUS;Sm;0;ON;;;;;N;;;;; -2215;DIVISION SLASH;Sm;0;ON;;;;;Y;;;;; -2216;SET MINUS;Sm;0;ON;;;;;Y;;;;; -2217;ASTERISK OPERATOR;Sm;0;ON;;;;;N;;;;; -2218;RING OPERATOR;Sm;0;ON;;;;;N;;;;; -2219;BULLET OPERATOR;Sm;0;ON;;;;;N;;;;; -221A;SQUARE ROOT;Sm;0;ON;;;;;Y;;;;; -221B;CUBE ROOT;Sm;0;ON;;;;;Y;;;;; -221C;FOURTH ROOT;Sm;0;ON;;;;;Y;;;;; -221D;PROPORTIONAL TO;Sm;0;ON;;;;;Y;;;;; -221E;INFINITY;Sm;0;ON;;;;;N;;;;; -221F;RIGHT ANGLE;Sm;0;ON;;;;;Y;;;;; -2220;ANGLE;Sm;0;ON;;;;;Y;;;;; -2221;MEASURED ANGLE;Sm;0;ON;;;;;Y;;;;; -2222;SPHERICAL ANGLE;Sm;0;ON;;;;;Y;;;;; -2223;DIVIDES;Sm;0;ON;;;;;N;;;;; -2224;DOES NOT DIVIDE;Sm;0;ON;2223 0338;;;;Y;;;;; -2225;PARALLEL TO;Sm;0;ON;;;;;N;;;;; -2226;NOT PARALLEL TO;Sm;0;ON;2225 0338;;;;Y;;;;; -2227;LOGICAL AND;Sm;0;ON;;;;;N;;;;; -2228;LOGICAL OR;Sm;0;ON;;;;;N;;;;; -2229;INTERSECTION;Sm;0;ON;;;;;N;;;;; -222A;UNION;Sm;0;ON;;;;;N;;;;; -222B;INTEGRAL;Sm;0;ON;;;;;Y;;;;; -222C;DOUBLE INTEGRAL;Sm;0;ON; 222B 222B;;;;Y;;;;; -222D;TRIPLE INTEGRAL;Sm;0;ON; 222B 222B 222B;;;;Y;;;;; -222E;CONTOUR INTEGRAL;Sm;0;ON;;;;;Y;;;;; -222F;SURFACE INTEGRAL;Sm;0;ON; 222E 222E;;;;Y;;;;; -2230;VOLUME INTEGRAL;Sm;0;ON; 222E 222E 222E;;;;Y;;;;; -2231;CLOCKWISE INTEGRAL;Sm;0;ON;;;;;Y;;;;; -2232;CLOCKWISE CONTOUR INTEGRAL;Sm;0;ON;;;;;Y;;;;; -2233;ANTICLOCKWISE CONTOUR INTEGRAL;Sm;0;ON;;;;;Y;;;;; -2234;THEREFORE;Sm;0;ON;;;;;N;;;;; -2235;BECAUSE;Sm;0;ON;;;;;N;;;;; -2236;RATIO;Sm;0;ON;;;;;N;;;;; -2237;PROPORTION;Sm;0;ON;;;;;N;;;;; -2238;DOT MINUS;Sm;0;ON;;;;;N;;;;; -2239;EXCESS;Sm;0;ON;;;;;Y;;;;; -223A;GEOMETRIC PROPORTION;Sm;0;ON;;;;;N;;;;; -223B;HOMOTHETIC;Sm;0;ON;;;;;Y;;;;; -223C;TILDE OPERATOR;Sm;0;ON;;;;;Y;;;;; -223D;REVERSED TILDE;Sm;0;ON;;;;;Y;;;;; -223E;INVERTED LAZY S;Sm;0;ON;;;;;Y;;;;; -223F;SINE WAVE;Sm;0;ON;;;;;Y;;;;; -2240;WREATH PRODUCT;Sm;0;ON;;;;;Y;;;;; -2241;NOT TILDE;Sm;0;ON;223C 0338;;;;Y;;;;; -2242;MINUS TILDE;Sm;0;ON;;;;;Y;;;;; -2243;ASYMPTOTICALLY EQUAL TO;Sm;0;ON;;;;;Y;;;;; -2244;NOT ASYMPTOTICALLY EQUAL TO;Sm;0;ON;2243 0338;;;;Y;;;;; -2245;APPROXIMATELY EQUAL TO;Sm;0;ON;;;;;Y;;;;; -2246;APPROXIMATELY BUT NOT ACTUALLY EQUAL TO;Sm;0;ON;;;;;Y;;;;; -2247;NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO;Sm;0;ON;2245 0338;;;;Y;;;;; -2248;ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;; -2249;NOT ALMOST EQUAL TO;Sm;0;ON;2248 0338;;;;Y;;;;; -224A;ALMOST EQUAL OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; -224B;TRIPLE TILDE;Sm;0;ON;;;;;Y;;;;; -224C;ALL EQUAL TO;Sm;0;ON;;;;;Y;;;;; -224D;EQUIVALENT TO;Sm;0;ON;;;;;N;;;;; -224E;GEOMETRICALLY EQUIVALENT TO;Sm;0;ON;;;;;N;;;;; -224F;DIFFERENCE BETWEEN;Sm;0;ON;;;;;N;;;;; -2250;APPROACHES THE LIMIT;Sm;0;ON;;;;;N;;;;; -2251;GEOMETRICALLY EQUAL TO;Sm;0;ON;;;;;N;;;;; -2252;APPROXIMATELY EQUAL TO OR THE IMAGE OF;Sm;0;ON;;;;;Y;;;;; -2253;IMAGE OF OR APPROXIMATELY EQUAL TO;Sm;0;ON;;;;;Y;;;;; -2254;COLON EQUALS;Sm;0;ON;;;;;Y;COLON EQUAL;;;; -2255;EQUALS COLON;Sm;0;ON;;;;;Y;EQUAL COLON;;;; -2256;RING IN EQUAL TO;Sm;0;ON;;;;;N;;;;; -2257;RING EQUAL TO;Sm;0;ON;;;;;N;;;;; -2258;CORRESPONDS TO;Sm;0;ON;;;;;N;;;;; -2259;ESTIMATES;Sm;0;ON;;;;;N;;;;; -225A;EQUIANGULAR TO;Sm;0;ON;;;;;N;;;;; -225B;STAR EQUALS;Sm;0;ON;;;;;N;;;;; -225C;DELTA EQUAL TO;Sm;0;ON;;;;;N;;;;; -225D;EQUAL TO BY DEFINITION;Sm;0;ON;;;;;N;;;;; -225E;MEASURED BY;Sm;0;ON;;;;;N;;;;; -225F;QUESTIONED EQUAL TO;Sm;0;ON;;;;;Y;;;;; -2260;NOT EQUAL TO;Sm;0;ON;003D 0338;;;;Y;;;;; -2261;IDENTICAL TO;Sm;0;ON;;;;;N;;;;; -2262;NOT IDENTICAL TO;Sm;0;ON;2261 0338;;;;Y;;;;; -2263;STRICTLY EQUIVALENT TO;Sm;0;ON;;;;;N;;;;; -2264;LESS-THAN OR EQUAL TO;Sm;0;ON;;;;;Y;LESS THAN OR EQUAL TO;;;; -2265;GREATER-THAN OR EQUAL TO;Sm;0;ON;;;;;Y;GREATER THAN OR EQUAL TO;;;; -2266;LESS-THAN OVER EQUAL TO;Sm;0;ON;;;;;Y;LESS THAN OVER EQUAL TO;;;; -2267;GREATER-THAN OVER EQUAL TO;Sm;0;ON;;;;;Y;GREATER THAN OVER EQUAL TO;;;; -2268;LESS-THAN BUT NOT EQUAL TO;Sm;0;ON;;;;;Y;LESS THAN BUT NOT EQUAL TO;;;; -2269;GREATER-THAN BUT NOT EQUAL TO;Sm;0;ON;;;;;Y;GREATER THAN BUT NOT EQUAL TO;;;; -226A;MUCH LESS-THAN;Sm;0;ON;;;;;Y;MUCH LESS THAN;;;; -226B;MUCH GREATER-THAN;Sm;0;ON;;;;;Y;MUCH GREATER THAN;;;; -226C;BETWEEN;Sm;0;ON;;;;;N;;;;; -226D;NOT EQUIVALENT TO;Sm;0;ON;224D 0338;;;;N;;;;; -226E;NOT LESS-THAN;Sm;0;ON;003C 0338;;;;Y;NOT LESS THAN;;;; -226F;NOT GREATER-THAN;Sm;0;ON;003E 0338;;;;Y;NOT GREATER THAN;;;; -2270;NEITHER LESS-THAN NOR EQUAL TO;Sm;0;ON;2264 0338;;;;Y;NEITHER LESS THAN NOR EQUAL TO;;;; -2271;NEITHER GREATER-THAN NOR EQUAL TO;Sm;0;ON;2265 0338;;;;Y;NEITHER GREATER THAN NOR EQUAL TO;;;; -2272;LESS-THAN OR EQUIVALENT TO;Sm;0;ON;;;;;Y;LESS THAN OR EQUIVALENT TO;;;; -2273;GREATER-THAN OR EQUIVALENT TO;Sm;0;ON;;;;;Y;GREATER THAN OR EQUIVALENT TO;;;; -2274;NEITHER LESS-THAN NOR EQUIVALENT TO;Sm;0;ON;2272 0338;;;;Y;NEITHER LESS THAN NOR EQUIVALENT TO;;;; -2275;NEITHER GREATER-THAN NOR EQUIVALENT TO;Sm;0;ON;2273 0338;;;;Y;NEITHER GREATER THAN NOR EQUIVALENT TO;;;; -2276;LESS-THAN OR GREATER-THAN;Sm;0;ON;;;;;Y;LESS THAN OR GREATER THAN;;;; -2277;GREATER-THAN OR LESS-THAN;Sm;0;ON;;;;;Y;GREATER THAN OR LESS THAN;;;; -2278;NEITHER LESS-THAN NOR GREATER-THAN;Sm;0;ON;2276 0338;;;;Y;NEITHER LESS THAN NOR GREATER THAN;;;; -2279;NEITHER GREATER-THAN NOR LESS-THAN;Sm;0;ON;2277 0338;;;;Y;NEITHER GREATER THAN NOR LESS THAN;;;; -227A;PRECEDES;Sm;0;ON;;;;;Y;;;;; -227B;SUCCEEDS;Sm;0;ON;;;;;Y;;;;; -227C;PRECEDES OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; -227D;SUCCEEDS OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; -227E;PRECEDES OR EQUIVALENT TO;Sm;0;ON;;;;;Y;;;;; -227F;SUCCEEDS OR EQUIVALENT TO;Sm;0;ON;;;;;Y;;;;; -2280;DOES NOT PRECEDE;Sm;0;ON;227A 0338;;;;Y;;;;; -2281;DOES NOT SUCCEED;Sm;0;ON;227B 0338;;;;Y;;;;; -2282;SUBSET OF;Sm;0;ON;;;;;Y;;;;; -2283;SUPERSET OF;Sm;0;ON;;;;;Y;;;;; -2284;NOT A SUBSET OF;Sm;0;ON;2282 0338;;;;Y;;;;; -2285;NOT A SUPERSET OF;Sm;0;ON;2283 0338;;;;Y;;;;; -2286;SUBSET OF OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; -2287;SUPERSET OF OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; -2288;NEITHER A SUBSET OF NOR EQUAL TO;Sm;0;ON;2286 0338;;;;Y;;;;; -2289;NEITHER A SUPERSET OF NOR EQUAL TO;Sm;0;ON;2287 0338;;;;Y;;;;; -228A;SUBSET OF WITH NOT EQUAL TO;Sm;0;ON;;;;;Y;SUBSET OF OR NOT EQUAL TO;;;; -228B;SUPERSET OF WITH NOT EQUAL TO;Sm;0;ON;;;;;Y;SUPERSET OF OR NOT EQUAL TO;;;; -228C;MULTISET;Sm;0;ON;;;;;Y;;;;; -228D;MULTISET MULTIPLICATION;Sm;0;ON;;;;;N;;;;; -228E;MULTISET UNION;Sm;0;ON;;;;;N;;;;; -228F;SQUARE IMAGE OF;Sm;0;ON;;;;;Y;;;;; -2290;SQUARE ORIGINAL OF;Sm;0;ON;;;;;Y;;;;; -2291;SQUARE IMAGE OF OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; -2292;SQUARE ORIGINAL OF OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; -2293;SQUARE CAP;Sm;0;ON;;;;;N;;;;; -2294;SQUARE CUP;Sm;0;ON;;;;;N;;;;; -2295;CIRCLED PLUS;Sm;0;ON;;;;;N;;;;; -2296;CIRCLED MINUS;Sm;0;ON;;;;;N;;;;; -2297;CIRCLED TIMES;Sm;0;ON;;;;;N;;;;; -2298;CIRCLED DIVISION SLASH;Sm;0;ON;;;;;Y;;;;; -2299;CIRCLED DOT OPERATOR;Sm;0;ON;;;;;N;;;;; -229A;CIRCLED RING OPERATOR;Sm;0;ON;;;;;N;;;;; -229B;CIRCLED ASTERISK OPERATOR;Sm;0;ON;;;;;N;;;;; -229C;CIRCLED EQUALS;Sm;0;ON;;;;;N;;;;; -229D;CIRCLED DASH;Sm;0;ON;;;;;N;;;;; -229E;SQUARED PLUS;Sm;0;ON;;;;;N;;;;; -229F;SQUARED MINUS;Sm;0;ON;;;;;N;;;;; -22A0;SQUARED TIMES;Sm;0;ON;;;;;N;;;;; -22A1;SQUARED DOT OPERATOR;Sm;0;ON;;;;;N;;;;; -22A2;RIGHT TACK;Sm;0;ON;;;;;Y;;;;; -22A3;LEFT TACK;Sm;0;ON;;;;;Y;;;;; -22A4;DOWN TACK;Sm;0;ON;;;;;N;;;;; -22A5;UP TACK;Sm;0;ON;;;;;N;;;;; -22A6;ASSERTION;Sm;0;ON;;;;;Y;;;;; -22A7;MODELS;Sm;0;ON;;;;;Y;;;;; -22A8;TRUE;Sm;0;ON;;;;;Y;;;;; -22A9;FORCES;Sm;0;ON;;;;;Y;;;;; -22AA;TRIPLE VERTICAL BAR RIGHT TURNSTILE;Sm;0;ON;;;;;Y;;;;; -22AB;DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE;Sm;0;ON;;;;;Y;;;;; -22AC;DOES NOT PROVE;Sm;0;ON;22A2 0338;;;;Y;;;;; -22AD;NOT TRUE;Sm;0;ON;22A8 0338;;;;Y;;;;; -22AE;DOES NOT FORCE;Sm;0;ON;22A9 0338;;;;Y;;;;; -22AF;NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE;Sm;0;ON;22AB 0338;;;;Y;;;;; -22B0;PRECEDES UNDER RELATION;Sm;0;ON;;;;;Y;;;;; -22B1;SUCCEEDS UNDER RELATION;Sm;0;ON;;;;;Y;;;;; -22B2;NORMAL SUBGROUP OF;Sm;0;ON;;;;;Y;;;;; -22B3;CONTAINS AS NORMAL SUBGROUP;Sm;0;ON;;;;;Y;;;;; -22B4;NORMAL SUBGROUP OF OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; -22B5;CONTAINS AS NORMAL SUBGROUP OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; -22B6;ORIGINAL OF;Sm;0;ON;;;;;Y;;;;; -22B7;IMAGE OF;Sm;0;ON;;;;;Y;;;;; -22B8;MULTIMAP;Sm;0;ON;;;;;Y;;;;; -22B9;HERMITIAN CONJUGATE MATRIX;Sm;0;ON;;;;;N;;;;; -22BA;INTERCALATE;Sm;0;ON;;;;;N;;;;; -22BB;XOR;Sm;0;ON;;;;;N;;;;; -22BC;NAND;Sm;0;ON;;;;;N;;;;; -22BD;NOR;Sm;0;ON;;;;;N;;;;; -22BE;RIGHT ANGLE WITH ARC;Sm;0;ON;;;;;Y;;;;; -22BF;RIGHT TRIANGLE;Sm;0;ON;;;;;Y;;;;; -22C0;N-ARY LOGICAL AND;Sm;0;ON;;;;;N;;;;; -22C1;N-ARY LOGICAL OR;Sm;0;ON;;;;;N;;;;; -22C2;N-ARY INTERSECTION;Sm;0;ON;;;;;N;;;;; -22C3;N-ARY UNION;Sm;0;ON;;;;;N;;;;; -22C4;DIAMOND OPERATOR;Sm;0;ON;;;;;N;;;;; -22C5;DOT OPERATOR;Sm;0;ON;;;;;N;;;;; -22C6;STAR OPERATOR;Sm;0;ON;;;;;N;;;;; -22C7;DIVISION TIMES;Sm;0;ON;;;;;N;;;;; -22C8;BOWTIE;Sm;0;ON;;;;;N;;;;; -22C9;LEFT NORMAL FACTOR SEMIDIRECT PRODUCT;Sm;0;ON;;;;;Y;;;;; -22CA;RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT;Sm;0;ON;;;;;Y;;;;; -22CB;LEFT SEMIDIRECT PRODUCT;Sm;0;ON;;;;;Y;;;;; -22CC;RIGHT SEMIDIRECT PRODUCT;Sm;0;ON;;;;;Y;;;;; -22CD;REVERSED TILDE EQUALS;Sm;0;ON;;;;;Y;;;;; -22CE;CURLY LOGICAL OR;Sm;0;ON;;;;;N;;;;; -22CF;CURLY LOGICAL AND;Sm;0;ON;;;;;N;;;;; -22D0;DOUBLE SUBSET;Sm;0;ON;;;;;Y;;;;; -22D1;DOUBLE SUPERSET;Sm;0;ON;;;;;Y;;;;; -22D2;DOUBLE INTERSECTION;Sm;0;ON;;;;;N;;;;; -22D3;DOUBLE UNION;Sm;0;ON;;;;;N;;;;; -22D4;PITCHFORK;Sm;0;ON;;;;;N;;;;; -22D5;EQUAL AND PARALLEL TO;Sm;0;ON;;;;;N;;;;; -22D6;LESS-THAN WITH DOT;Sm;0;ON;;;;;Y;LESS THAN WITH DOT;;;; -22D7;GREATER-THAN WITH DOT;Sm;0;ON;;;;;Y;GREATER THAN WITH DOT;;;; -22D8;VERY MUCH LESS-THAN;Sm;0;ON;;;;;Y;VERY MUCH LESS THAN;;;; -22D9;VERY MUCH GREATER-THAN;Sm;0;ON;;;;;Y;VERY MUCH GREATER THAN;;;; -22DA;LESS-THAN EQUAL TO OR GREATER-THAN;Sm;0;ON;;;;;Y;LESS THAN EQUAL TO OR GREATER THAN;;;; -22DB;GREATER-THAN EQUAL TO OR LESS-THAN;Sm;0;ON;;;;;Y;GREATER THAN EQUAL TO OR LESS THAN;;;; -22DC;EQUAL TO OR LESS-THAN;Sm;0;ON;;;;;Y;EQUAL TO OR LESS THAN;;;; -22DD;EQUAL TO OR GREATER-THAN;Sm;0;ON;;;;;Y;EQUAL TO OR GREATER THAN;;;; -22DE;EQUAL TO OR PRECEDES;Sm;0;ON;;;;;Y;;;;; -22DF;EQUAL TO OR SUCCEEDS;Sm;0;ON;;;;;Y;;;;; -22E0;DOES NOT PRECEDE OR EQUAL;Sm;0;ON;227C 0338;;;;Y;;;;; -22E1;DOES NOT SUCCEED OR EQUAL;Sm;0;ON;227D 0338;;;;Y;;;;; -22E2;NOT SQUARE IMAGE OF OR EQUAL TO;Sm;0;ON;2291 0338;;;;Y;;;;; -22E3;NOT SQUARE ORIGINAL OF OR EQUAL TO;Sm;0;ON;2292 0338;;;;Y;;;;; -22E4;SQUARE IMAGE OF OR NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;; -22E5;SQUARE ORIGINAL OF OR NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;; -22E6;LESS-THAN BUT NOT EQUIVALENT TO;Sm;0;ON;;;;;Y;LESS THAN BUT NOT EQUIVALENT TO;;;; -22E7;GREATER-THAN BUT NOT EQUIVALENT TO;Sm;0;ON;;;;;Y;GREATER THAN BUT NOT EQUIVALENT TO;;;; -22E8;PRECEDES BUT NOT EQUIVALENT TO;Sm;0;ON;;;;;Y;;;;; -22E9;SUCCEEDS BUT NOT EQUIVALENT TO;Sm;0;ON;;;;;Y;;;;; -22EA;NOT NORMAL SUBGROUP OF;Sm;0;ON;22B2 0338;;;;Y;;;;; -22EB;DOES NOT CONTAIN AS NORMAL SUBGROUP;Sm;0;ON;22B3 0338;;;;Y;;;;; -22EC;NOT NORMAL SUBGROUP OF OR EQUAL TO;Sm;0;ON;22B4 0338;;;;Y;;;;; -22ED;DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL;Sm;0;ON;22B5 0338;;;;Y;;;;; -22EE;VERTICAL ELLIPSIS;Sm;0;ON;;;;;N;;;;; -22EF;MIDLINE HORIZONTAL ELLIPSIS;Sm;0;ON;;;;;N;;;;; -22F0;UP RIGHT DIAGONAL ELLIPSIS;Sm;0;ON;;;;;Y;;;;; -22F1;DOWN RIGHT DIAGONAL ELLIPSIS;Sm;0;ON;;;;;Y;;;;; -22F2;ELEMENT OF WITH LONG HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;; -22F3;ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;; -22F4;SMALL ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;; -22F5;ELEMENT OF WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;; -22F6;ELEMENT OF WITH OVERBAR;Sm;0;ON;;;;;Y;;;;; -22F7;SMALL ELEMENT OF WITH OVERBAR;Sm;0;ON;;;;;Y;;;;; -22F8;ELEMENT OF WITH UNDERBAR;Sm;0;ON;;;;;Y;;;;; -22F9;ELEMENT OF WITH TWO HORIZONTAL STROKES;Sm;0;ON;;;;;Y;;;;; -22FA;CONTAINS WITH LONG HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;; -22FB;CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;; -22FC;SMALL CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;; -22FD;CONTAINS WITH OVERBAR;Sm;0;ON;;;;;Y;;;;; -22FE;SMALL CONTAINS WITH OVERBAR;Sm;0;ON;;;;;Y;;;;; -22FF;Z NOTATION BAG MEMBERSHIP;Sm;0;ON;;;;;Y;;;;; -2300;DIAMETER SIGN;So;0;ON;;;;;N;;;;; -2301;ELECTRIC ARROW;So;0;ON;;;;;N;;;;; -2302;HOUSE;So;0;ON;;;;;N;;;;; -2303;UP ARROWHEAD;So;0;ON;;;;;N;;;;; -2304;DOWN ARROWHEAD;So;0;ON;;;;;N;;;;; -2305;PROJECTIVE;So;0;ON;;;;;N;;;;; -2306;PERSPECTIVE;So;0;ON;;;;;N;;;;; -2307;WAVY LINE;So;0;ON;;;;;N;;;;; -2308;LEFT CEILING;Sm;0;ON;;;;;Y;;;;; -2309;RIGHT CEILING;Sm;0;ON;;;;;Y;;;;; -230A;LEFT FLOOR;Sm;0;ON;;;;;Y;;;;; -230B;RIGHT FLOOR;Sm;0;ON;;;;;Y;;;;; -230C;BOTTOM RIGHT CROP;So;0;ON;;;;;N;;;;; -230D;BOTTOM LEFT CROP;So;0;ON;;;;;N;;;;; -230E;TOP RIGHT CROP;So;0;ON;;;;;N;;;;; -230F;TOP LEFT CROP;So;0;ON;;;;;N;;;;; -2310;REVERSED NOT SIGN;So;0;ON;;;;;N;;;;; -2311;SQUARE LOZENGE;So;0;ON;;;;;N;;;;; -2312;ARC;So;0;ON;;;;;N;;;;; -2313;SEGMENT;So;0;ON;;;;;N;;;;; -2314;SECTOR;So;0;ON;;;;;N;;;;; -2315;TELEPHONE RECORDER;So;0;ON;;;;;N;;;;; -2316;POSITION INDICATOR;So;0;ON;;;;;N;;;;; -2317;VIEWDATA SQUARE;So;0;ON;;;;;N;;;;; -2318;PLACE OF INTEREST SIGN;So;0;ON;;;;;N;COMMAND KEY;;;; -2319;TURNED NOT SIGN;So;0;ON;;;;;N;;;;; -231A;WATCH;So;0;ON;;;;;N;;;;; -231B;HOURGLASS;So;0;ON;;;;;N;;;;; -231C;TOP LEFT CORNER;So;0;ON;;;;;N;;;;; -231D;TOP RIGHT CORNER;So;0;ON;;;;;N;;;;; -231E;BOTTOM LEFT CORNER;So;0;ON;;;;;N;;;;; -231F;BOTTOM RIGHT CORNER;So;0;ON;;;;;N;;;;; -2320;TOP HALF INTEGRAL;Sm;0;ON;;;;;Y;;;;; -2321;BOTTOM HALF INTEGRAL;Sm;0;ON;;;;;Y;;;;; -2322;FROWN;So;0;ON;;;;;N;;;;; -2323;SMILE;So;0;ON;;;;;N;;;;; -2324;UP ARROWHEAD BETWEEN TWO HORIZONTAL BARS;So;0;ON;;;;;N;ENTER KEY;;;; -2325;OPTION KEY;So;0;ON;;;;;N;;;;; -2326;ERASE TO THE RIGHT;So;0;ON;;;;;N;DELETE TO THE RIGHT KEY;;;; -2327;X IN A RECTANGLE BOX;So;0;ON;;;;;N;CLEAR KEY;;;; -2328;KEYBOARD;So;0;ON;;;;;N;;;;; -2329;LEFT-POINTING ANGLE BRACKET;Ps;0;ON;3008;;;;Y;BRA;;;; -232A;RIGHT-POINTING ANGLE BRACKET;Pe;0;ON;3009;;;;Y;KET;;;; -232B;ERASE TO THE LEFT;So;0;ON;;;;;N;DELETE TO THE LEFT KEY;;;; -232C;BENZENE RING;So;0;ON;;;;;N;;;;; -232D;CYLINDRICITY;So;0;ON;;;;;N;;;;; -232E;ALL AROUND-PROFILE;So;0;ON;;;;;N;;;;; -232F;SYMMETRY;So;0;ON;;;;;N;;;;; -2330;TOTAL RUNOUT;So;0;ON;;;;;N;;;;; -2331;DIMENSION ORIGIN;So;0;ON;;;;;N;;;;; -2332;CONICAL TAPER;So;0;ON;;;;;N;;;;; -2333;SLOPE;So;0;ON;;;;;N;;;;; -2334;COUNTERBORE;So;0;ON;;;;;N;;;;; -2335;COUNTERSINK;So;0;ON;;;;;N;;;;; -2336;APL FUNCTIONAL SYMBOL I-BEAM;So;0;L;;;;;N;;;;; -2337;APL FUNCTIONAL SYMBOL SQUISH QUAD;So;0;L;;;;;N;;;;; -2338;APL FUNCTIONAL SYMBOL QUAD EQUAL;So;0;L;;;;;N;;;;; -2339;APL FUNCTIONAL SYMBOL QUAD DIVIDE;So;0;L;;;;;N;;;;; -233A;APL FUNCTIONAL SYMBOL QUAD DIAMOND;So;0;L;;;;;N;;;;; -233B;APL FUNCTIONAL SYMBOL QUAD JOT;So;0;L;;;;;N;;;;; -233C;APL FUNCTIONAL SYMBOL QUAD CIRCLE;So;0;L;;;;;N;;;;; -233D;APL FUNCTIONAL SYMBOL CIRCLE STILE;So;0;L;;;;;N;;;;; -233E;APL FUNCTIONAL SYMBOL CIRCLE JOT;So;0;L;;;;;N;;;;; -233F;APL FUNCTIONAL SYMBOL SLASH BAR;So;0;L;;;;;N;;;;; -2340;APL FUNCTIONAL SYMBOL BACKSLASH BAR;So;0;L;;;;;N;;;;; -2341;APL FUNCTIONAL SYMBOL QUAD SLASH;So;0;L;;;;;N;;;;; -2342;APL FUNCTIONAL SYMBOL QUAD BACKSLASH;So;0;L;;;;;N;;;;; -2343;APL FUNCTIONAL SYMBOL QUAD LESS-THAN;So;0;L;;;;;N;;;;; -2344;APL FUNCTIONAL SYMBOL QUAD GREATER-THAN;So;0;L;;;;;N;;;;; -2345;APL FUNCTIONAL SYMBOL LEFTWARDS VANE;So;0;L;;;;;N;;;;; -2346;APL FUNCTIONAL SYMBOL RIGHTWARDS VANE;So;0;L;;;;;N;;;;; -2347;APL FUNCTIONAL SYMBOL QUAD LEFTWARDS ARROW;So;0;L;;;;;N;;;;; -2348;APL FUNCTIONAL SYMBOL QUAD RIGHTWARDS ARROW;So;0;L;;;;;N;;;;; -2349;APL FUNCTIONAL SYMBOL CIRCLE BACKSLASH;So;0;L;;;;;N;;;;; -234A;APL FUNCTIONAL SYMBOL DOWN TACK UNDERBAR;So;0;L;;;;;N;;;;; -234B;APL FUNCTIONAL SYMBOL DELTA STILE;So;0;L;;;;;N;;;;; -234C;APL FUNCTIONAL SYMBOL QUAD DOWN CARET;So;0;L;;;;;N;;;;; -234D;APL FUNCTIONAL SYMBOL QUAD DELTA;So;0;L;;;;;N;;;;; -234E;APL FUNCTIONAL SYMBOL DOWN TACK JOT;So;0;L;;;;;N;;;;; -234F;APL FUNCTIONAL SYMBOL UPWARDS VANE;So;0;L;;;;;N;;;;; -2350;APL FUNCTIONAL SYMBOL QUAD UPWARDS ARROW;So;0;L;;;;;N;;;;; -2351;APL FUNCTIONAL SYMBOL UP TACK OVERBAR;So;0;L;;;;;N;;;;; -2352;APL FUNCTIONAL SYMBOL DEL STILE;So;0;L;;;;;N;;;;; -2353;APL FUNCTIONAL SYMBOL QUAD UP CARET;So;0;L;;;;;N;;;;; -2354;APL FUNCTIONAL SYMBOL QUAD DEL;So;0;L;;;;;N;;;;; -2355;APL FUNCTIONAL SYMBOL UP TACK JOT;So;0;L;;;;;N;;;;; -2356;APL FUNCTIONAL SYMBOL DOWNWARDS VANE;So;0;L;;;;;N;;;;; -2357;APL FUNCTIONAL SYMBOL QUAD DOWNWARDS ARROW;So;0;L;;;;;N;;;;; -2358;APL FUNCTIONAL SYMBOL QUOTE UNDERBAR;So;0;L;;;;;N;;;;; -2359;APL FUNCTIONAL SYMBOL DELTA UNDERBAR;So;0;L;;;;;N;;;;; -235A;APL FUNCTIONAL SYMBOL DIAMOND UNDERBAR;So;0;L;;;;;N;;;;; -235B;APL FUNCTIONAL SYMBOL JOT UNDERBAR;So;0;L;;;;;N;;;;; -235C;APL FUNCTIONAL SYMBOL CIRCLE UNDERBAR;So;0;L;;;;;N;;;;; -235D;APL FUNCTIONAL SYMBOL UP SHOE JOT;So;0;L;;;;;N;;;;; -235E;APL FUNCTIONAL SYMBOL QUOTE QUAD;So;0;L;;;;;N;;;;; -235F;APL FUNCTIONAL SYMBOL CIRCLE STAR;So;0;L;;;;;N;;;;; -2360;APL FUNCTIONAL SYMBOL QUAD COLON;So;0;L;;;;;N;;;;; -2361;APL FUNCTIONAL SYMBOL UP TACK DIAERESIS;So;0;L;;;;;N;;;;; -2362;APL FUNCTIONAL SYMBOL DEL DIAERESIS;So;0;L;;;;;N;;;;; -2363;APL FUNCTIONAL SYMBOL STAR DIAERESIS;So;0;L;;;;;N;;;;; -2364;APL FUNCTIONAL SYMBOL JOT DIAERESIS;So;0;L;;;;;N;;;;; -2365;APL FUNCTIONAL SYMBOL CIRCLE DIAERESIS;So;0;L;;;;;N;;;;; -2366;APL FUNCTIONAL SYMBOL DOWN SHOE STILE;So;0;L;;;;;N;;;;; -2367;APL FUNCTIONAL SYMBOL LEFT SHOE STILE;So;0;L;;;;;N;;;;; -2368;APL FUNCTIONAL SYMBOL TILDE DIAERESIS;So;0;L;;;;;N;;;;; -2369;APL FUNCTIONAL SYMBOL GREATER-THAN DIAERESIS;So;0;L;;;;;N;;;;; -236A;APL FUNCTIONAL SYMBOL COMMA BAR;So;0;L;;;;;N;;;;; -236B;APL FUNCTIONAL SYMBOL DEL TILDE;So;0;L;;;;;N;;;;; -236C;APL FUNCTIONAL SYMBOL ZILDE;So;0;L;;;;;N;;;;; -236D;APL FUNCTIONAL SYMBOL STILE TILDE;So;0;L;;;;;N;;;;; -236E;APL FUNCTIONAL SYMBOL SEMICOLON UNDERBAR;So;0;L;;;;;N;;;;; -236F;APL FUNCTIONAL SYMBOL QUAD NOT EQUAL;So;0;L;;;;;N;;;;; -2370;APL FUNCTIONAL SYMBOL QUAD QUESTION;So;0;L;;;;;N;;;;; -2371;APL FUNCTIONAL SYMBOL DOWN CARET TILDE;So;0;L;;;;;N;;;;; -2372;APL FUNCTIONAL SYMBOL UP CARET TILDE;So;0;L;;;;;N;;;;; -2373;APL FUNCTIONAL SYMBOL IOTA;So;0;L;;;;;N;;;;; -2374;APL FUNCTIONAL SYMBOL RHO;So;0;L;;;;;N;;;;; -2375;APL FUNCTIONAL SYMBOL OMEGA;So;0;L;;;;;N;;;;; -2376;APL FUNCTIONAL SYMBOL ALPHA UNDERBAR;So;0;L;;;;;N;;;;; -2377;APL FUNCTIONAL SYMBOL EPSILON UNDERBAR;So;0;L;;;;;N;;;;; -2378;APL FUNCTIONAL SYMBOL IOTA UNDERBAR;So;0;L;;;;;N;;;;; -2379;APL FUNCTIONAL SYMBOL OMEGA UNDERBAR;So;0;L;;;;;N;;;;; -237A;APL FUNCTIONAL SYMBOL ALPHA;So;0;L;;;;;N;;;;; -237B;NOT CHECK MARK;So;0;ON;;;;;N;;;;; -237C;RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW;Sm;0;ON;;;;;N;;;;; -237D;SHOULDERED OPEN BOX;So;0;ON;;;;;N;;;;; -237E;BELL SYMBOL;So;0;ON;;;;;N;;;;; -237F;VERTICAL LINE WITH MIDDLE DOT;So;0;ON;;;;;N;;;;; -2380;INSERTION SYMBOL;So;0;ON;;;;;N;;;;; -2381;CONTINUOUS UNDERLINE SYMBOL;So;0;ON;;;;;N;;;;; -2382;DISCONTINUOUS UNDERLINE SYMBOL;So;0;ON;;;;;N;;;;; -2383;EMPHASIS SYMBOL;So;0;ON;;;;;N;;;;; -2384;COMPOSITION SYMBOL;So;0;ON;;;;;N;;;;; -2385;WHITE SQUARE WITH CENTRE VERTICAL LINE;So;0;ON;;;;;N;;;;; -2386;ENTER SYMBOL;So;0;ON;;;;;N;;;;; -2387;ALTERNATIVE KEY SYMBOL;So;0;ON;;;;;N;;;;; -2388;HELM SYMBOL;So;0;ON;;;;;N;;;;; -2389;CIRCLED HORIZONTAL BAR WITH NOTCH;So;0;ON;;;;;N;;;;; -238A;CIRCLED TRIANGLE DOWN;So;0;ON;;;;;N;;;;; -238B;BROKEN CIRCLE WITH NORTHWEST ARROW;So;0;ON;;;;;N;;;;; -238C;UNDO SYMBOL;So;0;ON;;;;;N;;;;; -238D;MONOSTABLE SYMBOL;So;0;ON;;;;;N;;;;; -238E;HYSTERESIS SYMBOL;So;0;ON;;;;;N;;;;; -238F;OPEN-CIRCUIT-OUTPUT H-TYPE SYMBOL;So;0;ON;;;;;N;;;;; -2390;OPEN-CIRCUIT-OUTPUT L-TYPE SYMBOL;So;0;ON;;;;;N;;;;; -2391;PASSIVE-PULL-DOWN-OUTPUT SYMBOL;So;0;ON;;;;;N;;;;; -2392;PASSIVE-PULL-UP-OUTPUT SYMBOL;So;0;ON;;;;;N;;;;; -2393;DIRECT CURRENT SYMBOL FORM TWO;So;0;ON;;;;;N;;;;; -2394;SOFTWARE-FUNCTION SYMBOL;So;0;ON;;;;;N;;;;; -2395;APL FUNCTIONAL SYMBOL QUAD;So;0;L;;;;;N;;;;; -2396;DECIMAL SEPARATOR KEY SYMBOL;So;0;ON;;;;;N;;;;; -2397;PREVIOUS PAGE;So;0;ON;;;;;N;;;;; -2398;NEXT PAGE;So;0;ON;;;;;N;;;;; -2399;PRINT SCREEN SYMBOL;So;0;ON;;;;;N;;;;; -239A;CLEAR SCREEN SYMBOL;So;0;ON;;;;;N;;;;; -239B;LEFT PARENTHESIS UPPER HOOK;Sm;0;ON;;;;;N;;;;; -239C;LEFT PARENTHESIS EXTENSION;Sm;0;ON;;;;;N;;;;; -239D;LEFT PARENTHESIS LOWER HOOK;Sm;0;ON;;;;;N;;;;; -239E;RIGHT PARENTHESIS UPPER HOOK;Sm;0;ON;;;;;N;;;;; -239F;RIGHT PARENTHESIS EXTENSION;Sm;0;ON;;;;;N;;;;; -23A0;RIGHT PARENTHESIS LOWER HOOK;Sm;0;ON;;;;;N;;;;; -23A1;LEFT SQUARE BRACKET UPPER CORNER;Sm;0;ON;;;;;N;;;;; -23A2;LEFT SQUARE BRACKET EXTENSION;Sm;0;ON;;;;;N;;;;; -23A3;LEFT SQUARE BRACKET LOWER CORNER;Sm;0;ON;;;;;N;;;;; -23A4;RIGHT SQUARE BRACKET UPPER CORNER;Sm;0;ON;;;;;N;;;;; -23A5;RIGHT SQUARE BRACKET EXTENSION;Sm;0;ON;;;;;N;;;;; -23A6;RIGHT SQUARE BRACKET LOWER CORNER;Sm;0;ON;;;;;N;;;;; -23A7;LEFT CURLY BRACKET UPPER HOOK;Sm;0;ON;;;;;N;;;;; -23A8;LEFT CURLY BRACKET MIDDLE PIECE;Sm;0;ON;;;;;N;;;;; -23A9;LEFT CURLY BRACKET LOWER HOOK;Sm;0;ON;;;;;N;;;;; -23AA;CURLY BRACKET EXTENSION;Sm;0;ON;;;;;N;;;;; -23AB;RIGHT CURLY BRACKET UPPER HOOK;Sm;0;ON;;;;;N;;;;; -23AC;RIGHT CURLY BRACKET MIDDLE PIECE;Sm;0;ON;;;;;N;;;;; -23AD;RIGHT CURLY BRACKET LOWER HOOK;Sm;0;ON;;;;;N;;;;; -23AE;INTEGRAL EXTENSION;Sm;0;ON;;;;;N;;;;; -23AF;HORIZONTAL LINE EXTENSION;Sm;0;ON;;;;;N;;;;; -23B0;UPPER LEFT OR LOWER RIGHT CURLY BRACKET SECTION;Sm;0;ON;;;;;N;;;;; -23B1;UPPER RIGHT OR LOWER LEFT CURLY BRACKET SECTION;Sm;0;ON;;;;;N;;;;; -23B2;SUMMATION TOP;Sm;0;ON;;;;;N;;;;; -23B3;SUMMATION BOTTOM;Sm;0;ON;;;;;N;;;;; -23B4;TOP SQUARE BRACKET;So;0;ON;;;;;N;;;;; -23B5;BOTTOM SQUARE BRACKET;So;0;ON;;;;;N;;;;; -23B6;BOTTOM SQUARE BRACKET OVER TOP SQUARE BRACKET;So;0;ON;;;;;N;;;;; -23B7;RADICAL SYMBOL BOTTOM;So;0;ON;;;;;N;;;;; -23B8;LEFT VERTICAL BOX LINE;So;0;ON;;;;;N;;;;; -23B9;RIGHT VERTICAL BOX LINE;So;0;ON;;;;;N;;;;; -23BA;HORIZONTAL SCAN LINE-1;So;0;ON;;;;;N;;;;; -23BB;HORIZONTAL SCAN LINE-3;So;0;ON;;;;;N;;;;; -23BC;HORIZONTAL SCAN LINE-7;So;0;ON;;;;;N;;;;; -23BD;HORIZONTAL SCAN LINE-9;So;0;ON;;;;;N;;;;; -23BE;DENTISTRY SYMBOL LIGHT VERTICAL AND TOP RIGHT;So;0;ON;;;;;N;;;;; -23BF;DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM RIGHT;So;0;ON;;;;;N;;;;; -23C0;DENTISTRY SYMBOL LIGHT VERTICAL WITH CIRCLE;So;0;ON;;;;;N;;;;; -23C1;DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH CIRCLE;So;0;ON;;;;;N;;;;; -23C2;DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH CIRCLE;So;0;ON;;;;;N;;;;; -23C3;DENTISTRY SYMBOL LIGHT VERTICAL WITH TRIANGLE;So;0;ON;;;;;N;;;;; -23C4;DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH TRIANGLE;So;0;ON;;;;;N;;;;; -23C5;DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH TRIANGLE;So;0;ON;;;;;N;;;;; -23C6;DENTISTRY SYMBOL LIGHT VERTICAL AND WAVE;So;0;ON;;;;;N;;;;; -23C7;DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH WAVE;So;0;ON;;;;;N;;;;; -23C8;DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH WAVE;So;0;ON;;;;;N;;;;; -23C9;DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL;So;0;ON;;;;;N;;;;; -23CA;DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL;So;0;ON;;;;;N;;;;; -23CB;DENTISTRY SYMBOL LIGHT VERTICAL AND TOP LEFT;So;0;ON;;;;;N;;;;; -23CC;DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM LEFT;So;0;ON;;;;;N;;;;; -23CD;SQUARE FOOT;So;0;ON;;;;;N;;;;; -23CE;RETURN SYMBOL;So;0;ON;;;;;N;;;;; -23CF;EJECT SYMBOL;So;0;ON;;;;;N;;;;; -23D0;VERTICAL LINE EXTENSION;So;0;ON;;;;;N;;;;; -23D1;METRICAL BREVE;So;0;ON;;;;;N;;;;; -23D2;METRICAL LONG OVER SHORT;So;0;ON;;;;;N;;;;; -23D3;METRICAL SHORT OVER LONG;So;0;ON;;;;;N;;;;; -23D4;METRICAL LONG OVER TWO SHORTS;So;0;ON;;;;;N;;;;; -23D5;METRICAL TWO SHORTS OVER LONG;So;0;ON;;;;;N;;;;; -23D6;METRICAL TWO SHORTS JOINED;So;0;ON;;;;;N;;;;; -23D7;METRICAL TRISEME;So;0;ON;;;;;N;;;;; -23D8;METRICAL TETRASEME;So;0;ON;;;;;N;;;;; -23D9;METRICAL PENTASEME;So;0;ON;;;;;N;;;;; -23DA;EARTH GROUND;So;0;ON;;;;;N;;;;; -23DB;FUSE;So;0;ON;;;;;N;;;;; -23DC;TOP PARENTHESIS;Sm;0;ON;;;;;N;;;;; -23DD;BOTTOM PARENTHESIS;Sm;0;ON;;;;;N;;;;; -23DE;TOP CURLY BRACKET;Sm;0;ON;;;;;N;;;;; -23DF;BOTTOM CURLY BRACKET;Sm;0;ON;;;;;N;;;;; -23E0;TOP TORTOISE SHELL BRACKET;Sm;0;ON;;;;;N;;;;; -23E1;BOTTOM TORTOISE SHELL BRACKET;Sm;0;ON;;;;;N;;;;; -23E2;WHITE TRAPEZIUM;So;0;ON;;;;;N;;;;; -23E3;BENZENE RING WITH CIRCLE;So;0;ON;;;;;N;;;;; -23E4;STRAIGHTNESS;So;0;ON;;;;;N;;;;; -23E5;FLATNESS;So;0;ON;;;;;N;;;;; -23E6;AC CURRENT;So;0;ON;;;;;N;;;;; -23E7;ELECTRICAL INTERSECTION;So;0;ON;;;;;N;;;;; -23E8;DECIMAL EXPONENT SYMBOL;So;0;ON;;;;;N;;;;; -2400;SYMBOL FOR NULL;So;0;ON;;;;;N;GRAPHIC FOR NULL;;;; -2401;SYMBOL FOR START OF HEADING;So;0;ON;;;;;N;GRAPHIC FOR START OF HEADING;;;; -2402;SYMBOL FOR START OF TEXT;So;0;ON;;;;;N;GRAPHIC FOR START OF TEXT;;;; -2403;SYMBOL FOR END OF TEXT;So;0;ON;;;;;N;GRAPHIC FOR END OF TEXT;;;; -2404;SYMBOL FOR END OF TRANSMISSION;So;0;ON;;;;;N;GRAPHIC FOR END OF TRANSMISSION;;;; -2405;SYMBOL FOR ENQUIRY;So;0;ON;;;;;N;GRAPHIC FOR ENQUIRY;;;; -2406;SYMBOL FOR ACKNOWLEDGE;So;0;ON;;;;;N;GRAPHIC FOR ACKNOWLEDGE;;;; -2407;SYMBOL FOR BELL;So;0;ON;;;;;N;GRAPHIC FOR BELL;;;; -2408;SYMBOL FOR BACKSPACE;So;0;ON;;;;;N;GRAPHIC FOR BACKSPACE;;;; -2409;SYMBOL FOR HORIZONTAL TABULATION;So;0;ON;;;;;N;GRAPHIC FOR HORIZONTAL TABULATION;;;; -240A;SYMBOL FOR LINE FEED;So;0;ON;;;;;N;GRAPHIC FOR LINE FEED;;;; -240B;SYMBOL FOR VERTICAL TABULATION;So;0;ON;;;;;N;GRAPHIC FOR VERTICAL TABULATION;;;; -240C;SYMBOL FOR FORM FEED;So;0;ON;;;;;N;GRAPHIC FOR FORM FEED;;;; -240D;SYMBOL FOR CARRIAGE RETURN;So;0;ON;;;;;N;GRAPHIC FOR CARRIAGE RETURN;;;; -240E;SYMBOL FOR SHIFT OUT;So;0;ON;;;;;N;GRAPHIC FOR SHIFT OUT;;;; -240F;SYMBOL FOR SHIFT IN;So;0;ON;;;;;N;GRAPHIC FOR SHIFT IN;;;; -2410;SYMBOL FOR DATA LINK ESCAPE;So;0;ON;;;;;N;GRAPHIC FOR DATA LINK ESCAPE;;;; -2411;SYMBOL FOR DEVICE CONTROL ONE;So;0;ON;;;;;N;GRAPHIC FOR DEVICE CONTROL ONE;;;; -2412;SYMBOL FOR DEVICE CONTROL TWO;So;0;ON;;;;;N;GRAPHIC FOR DEVICE CONTROL TWO;;;; -2413;SYMBOL FOR DEVICE CONTROL THREE;So;0;ON;;;;;N;GRAPHIC FOR DEVICE CONTROL THREE;;;; -2414;SYMBOL FOR DEVICE CONTROL FOUR;So;0;ON;;;;;N;GRAPHIC FOR DEVICE CONTROL FOUR;;;; -2415;SYMBOL FOR NEGATIVE ACKNOWLEDGE;So;0;ON;;;;;N;GRAPHIC FOR NEGATIVE ACKNOWLEDGE;;;; -2416;SYMBOL FOR SYNCHRONOUS IDLE;So;0;ON;;;;;N;GRAPHIC FOR SYNCHRONOUS IDLE;;;; -2417;SYMBOL FOR END OF TRANSMISSION BLOCK;So;0;ON;;;;;N;GRAPHIC FOR END OF TRANSMISSION BLOCK;;;; -2418;SYMBOL FOR CANCEL;So;0;ON;;;;;N;GRAPHIC FOR CANCEL;;;; -2419;SYMBOL FOR END OF MEDIUM;So;0;ON;;;;;N;GRAPHIC FOR END OF MEDIUM;;;; -241A;SYMBOL FOR SUBSTITUTE;So;0;ON;;;;;N;GRAPHIC FOR SUBSTITUTE;;;; -241B;SYMBOL FOR ESCAPE;So;0;ON;;;;;N;GRAPHIC FOR ESCAPE;;;; -241C;SYMBOL FOR FILE SEPARATOR;So;0;ON;;;;;N;GRAPHIC FOR FILE SEPARATOR;;;; -241D;SYMBOL FOR GROUP SEPARATOR;So;0;ON;;;;;N;GRAPHIC FOR GROUP SEPARATOR;;;; -241E;SYMBOL FOR RECORD SEPARATOR;So;0;ON;;;;;N;GRAPHIC FOR RECORD SEPARATOR;;;; -241F;SYMBOL FOR UNIT SEPARATOR;So;0;ON;;;;;N;GRAPHIC FOR UNIT SEPARATOR;;;; -2420;SYMBOL FOR SPACE;So;0;ON;;;;;N;GRAPHIC FOR SPACE;;;; -2421;SYMBOL FOR DELETE;So;0;ON;;;;;N;GRAPHIC FOR DELETE;;;; -2422;BLANK SYMBOL;So;0;ON;;;;;N;BLANK;;;; -2423;OPEN BOX;So;0;ON;;;;;N;;;;; -2424;SYMBOL FOR NEWLINE;So;0;ON;;;;;N;GRAPHIC FOR NEWLINE;;;; -2425;SYMBOL FOR DELETE FORM TWO;So;0;ON;;;;;N;;;;; -2426;SYMBOL FOR SUBSTITUTE FORM TWO;So;0;ON;;;;;N;;;;; -2440;OCR HOOK;So;0;ON;;;;;N;;;;; -2441;OCR CHAIR;So;0;ON;;;;;N;;;;; -2442;OCR FORK;So;0;ON;;;;;N;;;;; -2443;OCR INVERTED FORK;So;0;ON;;;;;N;;;;; -2444;OCR BELT BUCKLE;So;0;ON;;;;;N;;;;; -2445;OCR BOW TIE;So;0;ON;;;;;N;;;;; -2446;OCR BRANCH BANK IDENTIFICATION;So;0;ON;;;;;N;;;;; -2447;OCR AMOUNT OF CHECK;So;0;ON;;;;;N;;;;; -2448;OCR DASH;So;0;ON;;;;;N;;;;; -2449;OCR CUSTOMER ACCOUNT NUMBER;So;0;ON;;;;;N;;;;; -244A;OCR DOUBLE BACKSLASH;So;0;ON;;;;;N;;;;; -2460;CIRCLED DIGIT ONE;No;0;ON; 0031;;1;1;N;;;;; -2461;CIRCLED DIGIT TWO;No;0;ON; 0032;;2;2;N;;;;; -2462;CIRCLED DIGIT THREE;No;0;ON; 0033;;3;3;N;;;;; -2463;CIRCLED DIGIT FOUR;No;0;ON; 0034;;4;4;N;;;;; -2464;CIRCLED DIGIT FIVE;No;0;ON; 0035;;5;5;N;;;;; -2465;CIRCLED DIGIT SIX;No;0;ON; 0036;;6;6;N;;;;; -2466;CIRCLED DIGIT SEVEN;No;0;ON; 0037;;7;7;N;;;;; -2467;CIRCLED DIGIT EIGHT;No;0;ON; 0038;;8;8;N;;;;; -2468;CIRCLED DIGIT NINE;No;0;ON; 0039;;9;9;N;;;;; -2469;CIRCLED NUMBER TEN;No;0;ON; 0031 0030;;;10;N;;;;; -246A;CIRCLED NUMBER ELEVEN;No;0;ON; 0031 0031;;;11;N;;;;; -246B;CIRCLED NUMBER TWELVE;No;0;ON; 0031 0032;;;12;N;;;;; -246C;CIRCLED NUMBER THIRTEEN;No;0;ON; 0031 0033;;;13;N;;;;; -246D;CIRCLED NUMBER FOURTEEN;No;0;ON; 0031 0034;;;14;N;;;;; -246E;CIRCLED NUMBER FIFTEEN;No;0;ON; 0031 0035;;;15;N;;;;; -246F;CIRCLED NUMBER SIXTEEN;No;0;ON; 0031 0036;;;16;N;;;;; -2470;CIRCLED NUMBER SEVENTEEN;No;0;ON; 0031 0037;;;17;N;;;;; -2471;CIRCLED NUMBER EIGHTEEN;No;0;ON; 0031 0038;;;18;N;;;;; -2472;CIRCLED NUMBER NINETEEN;No;0;ON; 0031 0039;;;19;N;;;;; -2473;CIRCLED NUMBER TWENTY;No;0;ON; 0032 0030;;;20;N;;;;; -2474;PARENTHESIZED DIGIT ONE;No;0;ON; 0028 0031 0029;;1;1;N;;;;; -2475;PARENTHESIZED DIGIT TWO;No;0;ON; 0028 0032 0029;;2;2;N;;;;; -2476;PARENTHESIZED DIGIT THREE;No;0;ON; 0028 0033 0029;;3;3;N;;;;; -2477;PARENTHESIZED DIGIT FOUR;No;0;ON; 0028 0034 0029;;4;4;N;;;;; -2478;PARENTHESIZED DIGIT FIVE;No;0;ON; 0028 0035 0029;;5;5;N;;;;; -2479;PARENTHESIZED DIGIT SIX;No;0;ON; 0028 0036 0029;;6;6;N;;;;; -247A;PARENTHESIZED DIGIT SEVEN;No;0;ON; 0028 0037 0029;;7;7;N;;;;; -247B;PARENTHESIZED DIGIT EIGHT;No;0;ON; 0028 0038 0029;;8;8;N;;;;; -247C;PARENTHESIZED DIGIT NINE;No;0;ON; 0028 0039 0029;;9;9;N;;;;; -247D;PARENTHESIZED NUMBER TEN;No;0;ON; 0028 0031 0030 0029;;;10;N;;;;; -247E;PARENTHESIZED NUMBER ELEVEN;No;0;ON; 0028 0031 0031 0029;;;11;N;;;;; -247F;PARENTHESIZED NUMBER TWELVE;No;0;ON; 0028 0031 0032 0029;;;12;N;;;;; -2480;PARENTHESIZED NUMBER THIRTEEN;No;0;ON; 0028 0031 0033 0029;;;13;N;;;;; -2481;PARENTHESIZED NUMBER FOURTEEN;No;0;ON; 0028 0031 0034 0029;;;14;N;;;;; -2482;PARENTHESIZED NUMBER FIFTEEN;No;0;ON; 0028 0031 0035 0029;;;15;N;;;;; -2483;PARENTHESIZED NUMBER SIXTEEN;No;0;ON; 0028 0031 0036 0029;;;16;N;;;;; -2484;PARENTHESIZED NUMBER SEVENTEEN;No;0;ON; 0028 0031 0037 0029;;;17;N;;;;; -2485;PARENTHESIZED NUMBER EIGHTEEN;No;0;ON; 0028 0031 0038 0029;;;18;N;;;;; -2486;PARENTHESIZED NUMBER NINETEEN;No;0;ON; 0028 0031 0039 0029;;;19;N;;;;; -2487;PARENTHESIZED NUMBER TWENTY;No;0;ON; 0028 0032 0030 0029;;;20;N;;;;; -2488;DIGIT ONE FULL STOP;No;0;EN; 0031 002E;;1;1;N;DIGIT ONE PERIOD;;;; -2489;DIGIT TWO FULL STOP;No;0;EN; 0032 002E;;2;2;N;DIGIT TWO PERIOD;;;; -248A;DIGIT THREE FULL STOP;No;0;EN; 0033 002E;;3;3;N;DIGIT THREE PERIOD;;;; -248B;DIGIT FOUR FULL STOP;No;0;EN; 0034 002E;;4;4;N;DIGIT FOUR PERIOD;;;; -248C;DIGIT FIVE FULL STOP;No;0;EN; 0035 002E;;5;5;N;DIGIT FIVE PERIOD;;;; -248D;DIGIT SIX FULL STOP;No;0;EN; 0036 002E;;6;6;N;DIGIT SIX PERIOD;;;; -248E;DIGIT SEVEN FULL STOP;No;0;EN; 0037 002E;;7;7;N;DIGIT SEVEN PERIOD;;;; -248F;DIGIT EIGHT FULL STOP;No;0;EN; 0038 002E;;8;8;N;DIGIT EIGHT PERIOD;;;; -2490;DIGIT NINE FULL STOP;No;0;EN; 0039 002E;;9;9;N;DIGIT NINE PERIOD;;;; -2491;NUMBER TEN FULL STOP;No;0;EN; 0031 0030 002E;;;10;N;NUMBER TEN PERIOD;;;; -2492;NUMBER ELEVEN FULL STOP;No;0;EN; 0031 0031 002E;;;11;N;NUMBER ELEVEN PERIOD;;;; -2493;NUMBER TWELVE FULL STOP;No;0;EN; 0031 0032 002E;;;12;N;NUMBER TWELVE PERIOD;;;; -2494;NUMBER THIRTEEN FULL STOP;No;0;EN; 0031 0033 002E;;;13;N;NUMBER THIRTEEN PERIOD;;;; -2495;NUMBER FOURTEEN FULL STOP;No;0;EN; 0031 0034 002E;;;14;N;NUMBER FOURTEEN PERIOD;;;; -2496;NUMBER FIFTEEN FULL STOP;No;0;EN; 0031 0035 002E;;;15;N;NUMBER FIFTEEN PERIOD;;;; -2497;NUMBER SIXTEEN FULL STOP;No;0;EN; 0031 0036 002E;;;16;N;NUMBER SIXTEEN PERIOD;;;; -2498;NUMBER SEVENTEEN FULL STOP;No;0;EN; 0031 0037 002E;;;17;N;NUMBER SEVENTEEN PERIOD;;;; -2499;NUMBER EIGHTEEN FULL STOP;No;0;EN; 0031 0038 002E;;;18;N;NUMBER EIGHTEEN PERIOD;;;; -249A;NUMBER NINETEEN FULL STOP;No;0;EN; 0031 0039 002E;;;19;N;NUMBER NINETEEN PERIOD;;;; -249B;NUMBER TWENTY FULL STOP;No;0;EN; 0032 0030 002E;;;20;N;NUMBER TWENTY PERIOD;;;; -249C;PARENTHESIZED LATIN SMALL LETTER A;So;0;L; 0028 0061 0029;;;;N;;;;; -249D;PARENTHESIZED LATIN SMALL LETTER B;So;0;L; 0028 0062 0029;;;;N;;;;; -249E;PARENTHESIZED LATIN SMALL LETTER C;So;0;L; 0028 0063 0029;;;;N;;;;; -249F;PARENTHESIZED LATIN SMALL LETTER D;So;0;L; 0028 0064 0029;;;;N;;;;; -24A0;PARENTHESIZED LATIN SMALL LETTER E;So;0;L; 0028 0065 0029;;;;N;;;;; -24A1;PARENTHESIZED LATIN SMALL LETTER F;So;0;L; 0028 0066 0029;;;;N;;;;; -24A2;PARENTHESIZED LATIN SMALL LETTER G;So;0;L; 0028 0067 0029;;;;N;;;;; -24A3;PARENTHESIZED LATIN SMALL LETTER H;So;0;L; 0028 0068 0029;;;;N;;;;; -24A4;PARENTHESIZED LATIN SMALL LETTER I;So;0;L; 0028 0069 0029;;;;N;;;;; -24A5;PARENTHESIZED LATIN SMALL LETTER J;So;0;L; 0028 006A 0029;;;;N;;;;; -24A6;PARENTHESIZED LATIN SMALL LETTER K;So;0;L; 0028 006B 0029;;;;N;;;;; -24A7;PARENTHESIZED LATIN SMALL LETTER L;So;0;L; 0028 006C 0029;;;;N;;;;; -24A8;PARENTHESIZED LATIN SMALL LETTER M;So;0;L; 0028 006D 0029;;;;N;;;;; -24A9;PARENTHESIZED LATIN SMALL LETTER N;So;0;L; 0028 006E 0029;;;;N;;;;; -24AA;PARENTHESIZED LATIN SMALL LETTER O;So;0;L; 0028 006F 0029;;;;N;;;;; -24AB;PARENTHESIZED LATIN SMALL LETTER P;So;0;L; 0028 0070 0029;;;;N;;;;; -24AC;PARENTHESIZED LATIN SMALL LETTER Q;So;0;L; 0028 0071 0029;;;;N;;;;; -24AD;PARENTHESIZED LATIN SMALL LETTER R;So;0;L; 0028 0072 0029;;;;N;;;;; -24AE;PARENTHESIZED LATIN SMALL LETTER S;So;0;L; 0028 0073 0029;;;;N;;;;; -24AF;PARENTHESIZED LATIN SMALL LETTER T;So;0;L; 0028 0074 0029;;;;N;;;;; -24B0;PARENTHESIZED LATIN SMALL LETTER U;So;0;L; 0028 0075 0029;;;;N;;;;; -24B1;PARENTHESIZED LATIN SMALL LETTER V;So;0;L; 0028 0076 0029;;;;N;;;;; -24B2;PARENTHESIZED LATIN SMALL LETTER W;So;0;L; 0028 0077 0029;;;;N;;;;; -24B3;PARENTHESIZED LATIN SMALL LETTER X;So;0;L; 0028 0078 0029;;;;N;;;;; -24B4;PARENTHESIZED LATIN SMALL LETTER Y;So;0;L; 0028 0079 0029;;;;N;;;;; -24B5;PARENTHESIZED LATIN SMALL LETTER Z;So;0;L; 0028 007A 0029;;;;N;;;;; -24B6;CIRCLED LATIN CAPITAL LETTER A;So;0;L; 0041;;;;N;;;;24D0; -24B7;CIRCLED LATIN CAPITAL LETTER B;So;0;L; 0042;;;;N;;;;24D1; -24B8;CIRCLED LATIN CAPITAL LETTER C;So;0;L; 0043;;;;N;;;;24D2; -24B9;CIRCLED LATIN CAPITAL LETTER D;So;0;L; 0044;;;;N;;;;24D3; -24BA;CIRCLED LATIN CAPITAL LETTER E;So;0;L; 0045;;;;N;;;;24D4; -24BB;CIRCLED LATIN CAPITAL LETTER F;So;0;L; 0046;;;;N;;;;24D5; -24BC;CIRCLED LATIN CAPITAL LETTER G;So;0;L; 0047;;;;N;;;;24D6; -24BD;CIRCLED LATIN CAPITAL LETTER H;So;0;L; 0048;;;;N;;;;24D7; -24BE;CIRCLED LATIN CAPITAL LETTER I;So;0;L; 0049;;;;N;;;;24D8; -24BF;CIRCLED LATIN CAPITAL LETTER J;So;0;L; 004A;;;;N;;;;24D9; -24C0;CIRCLED LATIN CAPITAL LETTER K;So;0;L; 004B;;;;N;;;;24DA; -24C1;CIRCLED LATIN CAPITAL LETTER L;So;0;L; 004C;;;;N;;;;24DB; -24C2;CIRCLED LATIN CAPITAL LETTER M;So;0;L; 004D;;;;N;;;;24DC; -24C3;CIRCLED LATIN CAPITAL LETTER N;So;0;L; 004E;;;;N;;;;24DD; -24C4;CIRCLED LATIN CAPITAL LETTER O;So;0;L; 004F;;;;N;;;;24DE; -24C5;CIRCLED LATIN CAPITAL LETTER P;So;0;L; 0050;;;;N;;;;24DF; -24C6;CIRCLED LATIN CAPITAL LETTER Q;So;0;L; 0051;;;;N;;;;24E0; -24C7;CIRCLED LATIN CAPITAL LETTER R;So;0;L; 0052;;;;N;;;;24E1; -24C8;CIRCLED LATIN CAPITAL LETTER S;So;0;L; 0053;;;;N;;;;24E2; -24C9;CIRCLED LATIN CAPITAL LETTER T;So;0;L; 0054;;;;N;;;;24E3; -24CA;CIRCLED LATIN CAPITAL LETTER U;So;0;L; 0055;;;;N;;;;24E4; -24CB;CIRCLED LATIN CAPITAL LETTER V;So;0;L; 0056;;;;N;;;;24E5; -24CC;CIRCLED LATIN CAPITAL LETTER W;So;0;L; 0057;;;;N;;;;24E6; -24CD;CIRCLED LATIN CAPITAL LETTER X;So;0;L; 0058;;;;N;;;;24E7; -24CE;CIRCLED LATIN CAPITAL LETTER Y;So;0;L; 0059;;;;N;;;;24E8; -24CF;CIRCLED LATIN CAPITAL LETTER Z;So;0;L; 005A;;;;N;;;;24E9; -24D0;CIRCLED LATIN SMALL LETTER A;So;0;L; 0061;;;;N;;;24B6;;24B6 -24D1;CIRCLED LATIN SMALL LETTER B;So;0;L; 0062;;;;N;;;24B7;;24B7 -24D2;CIRCLED LATIN SMALL LETTER C;So;0;L; 0063;;;;N;;;24B8;;24B8 -24D3;CIRCLED LATIN SMALL LETTER D;So;0;L; 0064;;;;N;;;24B9;;24B9 -24D4;CIRCLED LATIN SMALL LETTER E;So;0;L; 0065;;;;N;;;24BA;;24BA -24D5;CIRCLED LATIN SMALL LETTER F;So;0;L; 0066;;;;N;;;24BB;;24BB -24D6;CIRCLED LATIN SMALL LETTER G;So;0;L; 0067;;;;N;;;24BC;;24BC -24D7;CIRCLED LATIN SMALL LETTER H;So;0;L; 0068;;;;N;;;24BD;;24BD -24D8;CIRCLED LATIN SMALL LETTER I;So;0;L; 0069;;;;N;;;24BE;;24BE -24D9;CIRCLED LATIN SMALL LETTER J;So;0;L; 006A;;;;N;;;24BF;;24BF -24DA;CIRCLED LATIN SMALL LETTER K;So;0;L; 006B;;;;N;;;24C0;;24C0 -24DB;CIRCLED LATIN SMALL LETTER L;So;0;L; 006C;;;;N;;;24C1;;24C1 -24DC;CIRCLED LATIN SMALL LETTER M;So;0;L; 006D;;;;N;;;24C2;;24C2 -24DD;CIRCLED LATIN SMALL LETTER N;So;0;L; 006E;;;;N;;;24C3;;24C3 -24DE;CIRCLED LATIN SMALL LETTER O;So;0;L; 006F;;;;N;;;24C4;;24C4 -24DF;CIRCLED LATIN SMALL LETTER P;So;0;L; 0070;;;;N;;;24C5;;24C5 -24E0;CIRCLED LATIN SMALL LETTER Q;So;0;L; 0071;;;;N;;;24C6;;24C6 -24E1;CIRCLED LATIN SMALL LETTER R;So;0;L; 0072;;;;N;;;24C7;;24C7 -24E2;CIRCLED LATIN SMALL LETTER S;So;0;L; 0073;;;;N;;;24C8;;24C8 -24E3;CIRCLED LATIN SMALL LETTER T;So;0;L; 0074;;;;N;;;24C9;;24C9 -24E4;CIRCLED LATIN SMALL LETTER U;So;0;L; 0075;;;;N;;;24CA;;24CA -24E5;CIRCLED LATIN SMALL LETTER V;So;0;L; 0076;;;;N;;;24CB;;24CB -24E6;CIRCLED LATIN SMALL LETTER W;So;0;L; 0077;;;;N;;;24CC;;24CC -24E7;CIRCLED LATIN SMALL LETTER X;So;0;L; 0078;;;;N;;;24CD;;24CD -24E8;CIRCLED LATIN SMALL LETTER Y;So;0;L; 0079;;;;N;;;24CE;;24CE -24E9;CIRCLED LATIN SMALL LETTER Z;So;0;L; 007A;;;;N;;;24CF;;24CF -24EA;CIRCLED DIGIT ZERO;No;0;ON; 0030;;0;0;N;;;;; -24EB;NEGATIVE CIRCLED NUMBER ELEVEN;No;0;ON;;;;11;N;;;;; -24EC;NEGATIVE CIRCLED NUMBER TWELVE;No;0;ON;;;;12;N;;;;; -24ED;NEGATIVE CIRCLED NUMBER THIRTEEN;No;0;ON;;;;13;N;;;;; -24EE;NEGATIVE CIRCLED NUMBER FOURTEEN;No;0;ON;;;;14;N;;;;; -24EF;NEGATIVE CIRCLED NUMBER FIFTEEN;No;0;ON;;;;15;N;;;;; -24F0;NEGATIVE CIRCLED NUMBER SIXTEEN;No;0;ON;;;;16;N;;;;; -24F1;NEGATIVE CIRCLED NUMBER SEVENTEEN;No;0;ON;;;;17;N;;;;; -24F2;NEGATIVE CIRCLED NUMBER EIGHTEEN;No;0;ON;;;;18;N;;;;; -24F3;NEGATIVE CIRCLED NUMBER NINETEEN;No;0;ON;;;;19;N;;;;; -24F4;NEGATIVE CIRCLED NUMBER TWENTY;No;0;ON;;;;20;N;;;;; -24F5;DOUBLE CIRCLED DIGIT ONE;No;0;ON;;;1;1;N;;;;; -24F6;DOUBLE CIRCLED DIGIT TWO;No;0;ON;;;2;2;N;;;;; -24F7;DOUBLE CIRCLED DIGIT THREE;No;0;ON;;;3;3;N;;;;; -24F8;DOUBLE CIRCLED DIGIT FOUR;No;0;ON;;;4;4;N;;;;; -24F9;DOUBLE CIRCLED DIGIT FIVE;No;0;ON;;;5;5;N;;;;; -24FA;DOUBLE CIRCLED DIGIT SIX;No;0;ON;;;6;6;N;;;;; -24FB;DOUBLE CIRCLED DIGIT SEVEN;No;0;ON;;;7;7;N;;;;; -24FC;DOUBLE CIRCLED DIGIT EIGHT;No;0;ON;;;8;8;N;;;;; -24FD;DOUBLE CIRCLED DIGIT NINE;No;0;ON;;;9;9;N;;;;; -24FE;DOUBLE CIRCLED NUMBER TEN;No;0;ON;;;;10;N;;;;; -24FF;NEGATIVE CIRCLED DIGIT ZERO;No;0;ON;;;0;0;N;;;;; -2500;BOX DRAWINGS LIGHT HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT HORIZONTAL;;;; -2501;BOX DRAWINGS HEAVY HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY HORIZONTAL;;;; -2502;BOX DRAWINGS LIGHT VERTICAL;So;0;ON;;;;;N;FORMS LIGHT VERTICAL;;;; -2503;BOX DRAWINGS HEAVY VERTICAL;So;0;ON;;;;;N;FORMS HEAVY VERTICAL;;;; -2504;BOX DRAWINGS LIGHT TRIPLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT TRIPLE DASH HORIZONTAL;;;; -2505;BOX DRAWINGS HEAVY TRIPLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY TRIPLE DASH HORIZONTAL;;;; -2506;BOX DRAWINGS LIGHT TRIPLE DASH VERTICAL;So;0;ON;;;;;N;FORMS LIGHT TRIPLE DASH VERTICAL;;;; -2507;BOX DRAWINGS HEAVY TRIPLE DASH VERTICAL;So;0;ON;;;;;N;FORMS HEAVY TRIPLE DASH VERTICAL;;;; -2508;BOX DRAWINGS LIGHT QUADRUPLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT QUADRUPLE DASH HORIZONTAL;;;; -2509;BOX DRAWINGS HEAVY QUADRUPLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY QUADRUPLE DASH HORIZONTAL;;;; -250A;BOX DRAWINGS LIGHT QUADRUPLE DASH VERTICAL;So;0;ON;;;;;N;FORMS LIGHT QUADRUPLE DASH VERTICAL;;;; -250B;BOX DRAWINGS HEAVY QUADRUPLE DASH VERTICAL;So;0;ON;;;;;N;FORMS HEAVY QUADRUPLE DASH VERTICAL;;;; -250C;BOX DRAWINGS LIGHT DOWN AND RIGHT;So;0;ON;;;;;N;FORMS LIGHT DOWN AND RIGHT;;;; -250D;BOX DRAWINGS DOWN LIGHT AND RIGHT HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND RIGHT HEAVY;;;; -250E;BOX DRAWINGS DOWN HEAVY AND RIGHT LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND RIGHT LIGHT;;;; -250F;BOX DRAWINGS HEAVY DOWN AND RIGHT;So;0;ON;;;;;N;FORMS HEAVY DOWN AND RIGHT;;;; -2510;BOX DRAWINGS LIGHT DOWN AND LEFT;So;0;ON;;;;;N;FORMS LIGHT DOWN AND LEFT;;;; -2511;BOX DRAWINGS DOWN LIGHT AND LEFT HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND LEFT HEAVY;;;; -2512;BOX DRAWINGS DOWN HEAVY AND LEFT LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND LEFT LIGHT;;;; -2513;BOX DRAWINGS HEAVY DOWN AND LEFT;So;0;ON;;;;;N;FORMS HEAVY DOWN AND LEFT;;;; -2514;BOX DRAWINGS LIGHT UP AND RIGHT;So;0;ON;;;;;N;FORMS LIGHT UP AND RIGHT;;;; -2515;BOX DRAWINGS UP LIGHT AND RIGHT HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND RIGHT HEAVY;;;; -2516;BOX DRAWINGS UP HEAVY AND RIGHT LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND RIGHT LIGHT;;;; -2517;BOX DRAWINGS HEAVY UP AND RIGHT;So;0;ON;;;;;N;FORMS HEAVY UP AND RIGHT;;;; -2518;BOX DRAWINGS LIGHT UP AND LEFT;So;0;ON;;;;;N;FORMS LIGHT UP AND LEFT;;;; -2519;BOX DRAWINGS UP LIGHT AND LEFT HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND LEFT HEAVY;;;; -251A;BOX DRAWINGS UP HEAVY AND LEFT LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND LEFT LIGHT;;;; -251B;BOX DRAWINGS HEAVY UP AND LEFT;So;0;ON;;;;;N;FORMS HEAVY UP AND LEFT;;;; -251C;BOX DRAWINGS LIGHT VERTICAL AND RIGHT;So;0;ON;;;;;N;FORMS LIGHT VERTICAL AND RIGHT;;;; -251D;BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY;So;0;ON;;;;;N;FORMS VERTICAL LIGHT AND RIGHT HEAVY;;;; -251E;BOX DRAWINGS UP HEAVY AND RIGHT DOWN LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND RIGHT DOWN LIGHT;;;; -251F;BOX DRAWINGS DOWN HEAVY AND RIGHT UP LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND RIGHT UP LIGHT;;;; -2520;BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT;So;0;ON;;;;;N;FORMS VERTICAL HEAVY AND RIGHT LIGHT;;;; -2521;BOX DRAWINGS DOWN LIGHT AND RIGHT UP HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND RIGHT UP HEAVY;;;; -2522;BOX DRAWINGS UP LIGHT AND RIGHT DOWN HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND RIGHT DOWN HEAVY;;;; -2523;BOX DRAWINGS HEAVY VERTICAL AND RIGHT;So;0;ON;;;;;N;FORMS HEAVY VERTICAL AND RIGHT;;;; -2524;BOX DRAWINGS LIGHT VERTICAL AND LEFT;So;0;ON;;;;;N;FORMS LIGHT VERTICAL AND LEFT;;;; -2525;BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY;So;0;ON;;;;;N;FORMS VERTICAL LIGHT AND LEFT HEAVY;;;; -2526;BOX DRAWINGS UP HEAVY AND LEFT DOWN LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND LEFT DOWN LIGHT;;;; -2527;BOX DRAWINGS DOWN HEAVY AND LEFT UP LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND LEFT UP LIGHT;;;; -2528;BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT;So;0;ON;;;;;N;FORMS VERTICAL HEAVY AND LEFT LIGHT;;;; -2529;BOX DRAWINGS DOWN LIGHT AND LEFT UP HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND LEFT UP HEAVY;;;; -252A;BOX DRAWINGS UP LIGHT AND LEFT DOWN HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND LEFT DOWN HEAVY;;;; -252B;BOX DRAWINGS HEAVY VERTICAL AND LEFT;So;0;ON;;;;;N;FORMS HEAVY VERTICAL AND LEFT;;;; -252C;BOX DRAWINGS LIGHT DOWN AND HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT DOWN AND HORIZONTAL;;;; -252D;BOX DRAWINGS LEFT HEAVY AND RIGHT DOWN LIGHT;So;0;ON;;;;;N;FORMS LEFT HEAVY AND RIGHT DOWN LIGHT;;;; -252E;BOX DRAWINGS RIGHT HEAVY AND LEFT DOWN LIGHT;So;0;ON;;;;;N;FORMS RIGHT HEAVY AND LEFT DOWN LIGHT;;;; -252F;BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND HORIZONTAL HEAVY;;;; -2530;BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND HORIZONTAL LIGHT;;;; -2531;BOX DRAWINGS RIGHT LIGHT AND LEFT DOWN HEAVY;So;0;ON;;;;;N;FORMS RIGHT LIGHT AND LEFT DOWN HEAVY;;;; -2532;BOX DRAWINGS LEFT LIGHT AND RIGHT DOWN HEAVY;So;0;ON;;;;;N;FORMS LEFT LIGHT AND RIGHT DOWN HEAVY;;;; -2533;BOX DRAWINGS HEAVY DOWN AND HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY DOWN AND HORIZONTAL;;;; -2534;BOX DRAWINGS LIGHT UP AND HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT UP AND HORIZONTAL;;;; -2535;BOX DRAWINGS LEFT HEAVY AND RIGHT UP LIGHT;So;0;ON;;;;;N;FORMS LEFT HEAVY AND RIGHT UP LIGHT;;;; -2536;BOX DRAWINGS RIGHT HEAVY AND LEFT UP LIGHT;So;0;ON;;;;;N;FORMS RIGHT HEAVY AND LEFT UP LIGHT;;;; -2537;BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND HORIZONTAL HEAVY;;;; -2538;BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND HORIZONTAL LIGHT;;;; -2539;BOX DRAWINGS RIGHT LIGHT AND LEFT UP HEAVY;So;0;ON;;;;;N;FORMS RIGHT LIGHT AND LEFT UP HEAVY;;;; -253A;BOX DRAWINGS LEFT LIGHT AND RIGHT UP HEAVY;So;0;ON;;;;;N;FORMS LEFT LIGHT AND RIGHT UP HEAVY;;;; -253B;BOX DRAWINGS HEAVY UP AND HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY UP AND HORIZONTAL;;;; -253C;BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT VERTICAL AND HORIZONTAL;;;; -253D;BOX DRAWINGS LEFT HEAVY AND RIGHT VERTICAL LIGHT;So;0;ON;;;;;N;FORMS LEFT HEAVY AND RIGHT VERTICAL LIGHT;;;; -253E;BOX DRAWINGS RIGHT HEAVY AND LEFT VERTICAL LIGHT;So;0;ON;;;;;N;FORMS RIGHT HEAVY AND LEFT VERTICAL LIGHT;;;; -253F;BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY;So;0;ON;;;;;N;FORMS VERTICAL LIGHT AND HORIZONTAL HEAVY;;;; -2540;BOX DRAWINGS UP HEAVY AND DOWN HORIZONTAL LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND DOWN HORIZONTAL LIGHT;;;; -2541;BOX DRAWINGS DOWN HEAVY AND UP HORIZONTAL LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND UP HORIZONTAL LIGHT;;;; -2542;BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT;So;0;ON;;;;;N;FORMS VERTICAL HEAVY AND HORIZONTAL LIGHT;;;; -2543;BOX DRAWINGS LEFT UP HEAVY AND RIGHT DOWN LIGHT;So;0;ON;;;;;N;FORMS LEFT UP HEAVY AND RIGHT DOWN LIGHT;;;; -2544;BOX DRAWINGS RIGHT UP HEAVY AND LEFT DOWN LIGHT;So;0;ON;;;;;N;FORMS RIGHT UP HEAVY AND LEFT DOWN LIGHT;;;; -2545;BOX DRAWINGS LEFT DOWN HEAVY AND RIGHT UP LIGHT;So;0;ON;;;;;N;FORMS LEFT DOWN HEAVY AND RIGHT UP LIGHT;;;; -2546;BOX DRAWINGS RIGHT DOWN HEAVY AND LEFT UP LIGHT;So;0;ON;;;;;N;FORMS RIGHT DOWN HEAVY AND LEFT UP LIGHT;;;; -2547;BOX DRAWINGS DOWN LIGHT AND UP HORIZONTAL HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND UP HORIZONTAL HEAVY;;;; -2548;BOX DRAWINGS UP LIGHT AND DOWN HORIZONTAL HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND DOWN HORIZONTAL HEAVY;;;; -2549;BOX DRAWINGS RIGHT LIGHT AND LEFT VERTICAL HEAVY;So;0;ON;;;;;N;FORMS RIGHT LIGHT AND LEFT VERTICAL HEAVY;;;; -254A;BOX DRAWINGS LEFT LIGHT AND RIGHT VERTICAL HEAVY;So;0;ON;;;;;N;FORMS LEFT LIGHT AND RIGHT VERTICAL HEAVY;;;; -254B;BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY VERTICAL AND HORIZONTAL;;;; -254C;BOX DRAWINGS LIGHT DOUBLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT DOUBLE DASH HORIZONTAL;;;; -254D;BOX DRAWINGS HEAVY DOUBLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY DOUBLE DASH HORIZONTAL;;;; -254E;BOX DRAWINGS LIGHT DOUBLE DASH VERTICAL;So;0;ON;;;;;N;FORMS LIGHT DOUBLE DASH VERTICAL;;;; -254F;BOX DRAWINGS HEAVY DOUBLE DASH VERTICAL;So;0;ON;;;;;N;FORMS HEAVY DOUBLE DASH VERTICAL;;;; -2550;BOX DRAWINGS DOUBLE HORIZONTAL;So;0;ON;;;;;N;FORMS DOUBLE HORIZONTAL;;;; -2551;BOX DRAWINGS DOUBLE VERTICAL;So;0;ON;;;;;N;FORMS DOUBLE VERTICAL;;;; -2552;BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE;So;0;ON;;;;;N;FORMS DOWN SINGLE AND RIGHT DOUBLE;;;; -2553;BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE;So;0;ON;;;;;N;FORMS DOWN DOUBLE AND RIGHT SINGLE;;;; -2554;BOX DRAWINGS DOUBLE DOWN AND RIGHT;So;0;ON;;;;;N;FORMS DOUBLE DOWN AND RIGHT;;;; -2555;BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE;So;0;ON;;;;;N;FORMS DOWN SINGLE AND LEFT DOUBLE;;;; -2556;BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE;So;0;ON;;;;;N;FORMS DOWN DOUBLE AND LEFT SINGLE;;;; -2557;BOX DRAWINGS DOUBLE DOWN AND LEFT;So;0;ON;;;;;N;FORMS DOUBLE DOWN AND LEFT;;;; -2558;BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE;So;0;ON;;;;;N;FORMS UP SINGLE AND RIGHT DOUBLE;;;; -2559;BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE;So;0;ON;;;;;N;FORMS UP DOUBLE AND RIGHT SINGLE;;;; -255A;BOX DRAWINGS DOUBLE UP AND RIGHT;So;0;ON;;;;;N;FORMS DOUBLE UP AND RIGHT;;;; -255B;BOX DRAWINGS UP SINGLE AND LEFT DOUBLE;So;0;ON;;;;;N;FORMS UP SINGLE AND LEFT DOUBLE;;;; -255C;BOX DRAWINGS UP DOUBLE AND LEFT SINGLE;So;0;ON;;;;;N;FORMS UP DOUBLE AND LEFT SINGLE;;;; -255D;BOX DRAWINGS DOUBLE UP AND LEFT;So;0;ON;;;;;N;FORMS DOUBLE UP AND LEFT;;;; -255E;BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE;So;0;ON;;;;;N;FORMS VERTICAL SINGLE AND RIGHT DOUBLE;;;; -255F;BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE;So;0;ON;;;;;N;FORMS VERTICAL DOUBLE AND RIGHT SINGLE;;;; -2560;BOX DRAWINGS DOUBLE VERTICAL AND RIGHT;So;0;ON;;;;;N;FORMS DOUBLE VERTICAL AND RIGHT;;;; -2561;BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE;So;0;ON;;;;;N;FORMS VERTICAL SINGLE AND LEFT DOUBLE;;;; -2562;BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE;So;0;ON;;;;;N;FORMS VERTICAL DOUBLE AND LEFT SINGLE;;;; -2563;BOX DRAWINGS DOUBLE VERTICAL AND LEFT;So;0;ON;;;;;N;FORMS DOUBLE VERTICAL AND LEFT;;;; -2564;BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE;So;0;ON;;;;;N;FORMS DOWN SINGLE AND HORIZONTAL DOUBLE;;;; -2565;BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE;So;0;ON;;;;;N;FORMS DOWN DOUBLE AND HORIZONTAL SINGLE;;;; -2566;BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL;So;0;ON;;;;;N;FORMS DOUBLE DOWN AND HORIZONTAL;;;; -2567;BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE;So;0;ON;;;;;N;FORMS UP SINGLE AND HORIZONTAL DOUBLE;;;; -2568;BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE;So;0;ON;;;;;N;FORMS UP DOUBLE AND HORIZONTAL SINGLE;;;; -2569;BOX DRAWINGS DOUBLE UP AND HORIZONTAL;So;0;ON;;;;;N;FORMS DOUBLE UP AND HORIZONTAL;;;; -256A;BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE;So;0;ON;;;;;N;FORMS VERTICAL SINGLE AND HORIZONTAL DOUBLE;;;; -256B;BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE;So;0;ON;;;;;N;FORMS VERTICAL DOUBLE AND HORIZONTAL SINGLE;;;; -256C;BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL;So;0;ON;;;;;N;FORMS DOUBLE VERTICAL AND HORIZONTAL;;;; -256D;BOX DRAWINGS LIGHT ARC DOWN AND RIGHT;So;0;ON;;;;;N;FORMS LIGHT ARC DOWN AND RIGHT;;;; -256E;BOX DRAWINGS LIGHT ARC DOWN AND LEFT;So;0;ON;;;;;N;FORMS LIGHT ARC DOWN AND LEFT;;;; -256F;BOX DRAWINGS LIGHT ARC UP AND LEFT;So;0;ON;;;;;N;FORMS LIGHT ARC UP AND LEFT;;;; -2570;BOX DRAWINGS LIGHT ARC UP AND RIGHT;So;0;ON;;;;;N;FORMS LIGHT ARC UP AND RIGHT;;;; -2571;BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT;So;0;ON;;;;;N;FORMS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT;;;; -2572;BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT;So;0;ON;;;;;N;FORMS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT;;;; -2573;BOX DRAWINGS LIGHT DIAGONAL CROSS;So;0;ON;;;;;N;FORMS LIGHT DIAGONAL CROSS;;;; -2574;BOX DRAWINGS LIGHT LEFT;So;0;ON;;;;;N;FORMS LIGHT LEFT;;;; -2575;BOX DRAWINGS LIGHT UP;So;0;ON;;;;;N;FORMS LIGHT UP;;;; -2576;BOX DRAWINGS LIGHT RIGHT;So;0;ON;;;;;N;FORMS LIGHT RIGHT;;;; -2577;BOX DRAWINGS LIGHT DOWN;So;0;ON;;;;;N;FORMS LIGHT DOWN;;;; -2578;BOX DRAWINGS HEAVY LEFT;So;0;ON;;;;;N;FORMS HEAVY LEFT;;;; -2579;BOX DRAWINGS HEAVY UP;So;0;ON;;;;;N;FORMS HEAVY UP;;;; -257A;BOX DRAWINGS HEAVY RIGHT;So;0;ON;;;;;N;FORMS HEAVY RIGHT;;;; -257B;BOX DRAWINGS HEAVY DOWN;So;0;ON;;;;;N;FORMS HEAVY DOWN;;;; -257C;BOX DRAWINGS LIGHT LEFT AND HEAVY RIGHT;So;0;ON;;;;;N;FORMS LIGHT LEFT AND HEAVY RIGHT;;;; -257D;BOX DRAWINGS LIGHT UP AND HEAVY DOWN;So;0;ON;;;;;N;FORMS LIGHT UP AND HEAVY DOWN;;;; -257E;BOX DRAWINGS HEAVY LEFT AND LIGHT RIGHT;So;0;ON;;;;;N;FORMS HEAVY LEFT AND LIGHT RIGHT;;;; -257F;BOX DRAWINGS HEAVY UP AND LIGHT DOWN;So;0;ON;;;;;N;FORMS HEAVY UP AND LIGHT DOWN;;;; -2580;UPPER HALF BLOCK;So;0;ON;;;;;N;;;;; -2581;LOWER ONE EIGHTH BLOCK;So;0;ON;;;;;N;;;;; -2582;LOWER ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;; -2583;LOWER THREE EIGHTHS BLOCK;So;0;ON;;;;;N;;;;; -2584;LOWER HALF BLOCK;So;0;ON;;;;;N;;;;; -2585;LOWER FIVE EIGHTHS BLOCK;So;0;ON;;;;;N;;;;; -2586;LOWER THREE QUARTERS BLOCK;So;0;ON;;;;;N;LOWER THREE QUARTER BLOCK;;;; -2587;LOWER SEVEN EIGHTHS BLOCK;So;0;ON;;;;;N;;;;; -2588;FULL BLOCK;So;0;ON;;;;;N;;;;; -2589;LEFT SEVEN EIGHTHS BLOCK;So;0;ON;;;;;N;;;;; -258A;LEFT THREE QUARTERS BLOCK;So;0;ON;;;;;N;LEFT THREE QUARTER BLOCK;;;; -258B;LEFT FIVE EIGHTHS BLOCK;So;0;ON;;;;;N;;;;; -258C;LEFT HALF BLOCK;So;0;ON;;;;;N;;;;; -258D;LEFT THREE EIGHTHS BLOCK;So;0;ON;;;;;N;;;;; -258E;LEFT ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;; -258F;LEFT ONE EIGHTH BLOCK;So;0;ON;;;;;N;;;;; -2590;RIGHT HALF BLOCK;So;0;ON;;;;;N;;;;; -2591;LIGHT SHADE;So;0;ON;;;;;N;;;;; -2592;MEDIUM SHADE;So;0;ON;;;;;N;;;;; -2593;DARK SHADE;So;0;ON;;;;;N;;;;; -2594;UPPER ONE EIGHTH BLOCK;So;0;ON;;;;;N;;;;; -2595;RIGHT ONE EIGHTH BLOCK;So;0;ON;;;;;N;;;;; -2596;QUADRANT LOWER LEFT;So;0;ON;;;;;N;;;;; -2597;QUADRANT LOWER RIGHT;So;0;ON;;;;;N;;;;; -2598;QUADRANT UPPER LEFT;So;0;ON;;;;;N;;;;; -2599;QUADRANT UPPER LEFT AND LOWER LEFT AND LOWER RIGHT;So;0;ON;;;;;N;;;;; -259A;QUADRANT UPPER LEFT AND LOWER RIGHT;So;0;ON;;;;;N;;;;; -259B;QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER LEFT;So;0;ON;;;;;N;;;;; -259C;QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER RIGHT;So;0;ON;;;;;N;;;;; -259D;QUADRANT UPPER RIGHT;So;0;ON;;;;;N;;;;; -259E;QUADRANT UPPER RIGHT AND LOWER LEFT;So;0;ON;;;;;N;;;;; -259F;QUADRANT UPPER RIGHT AND LOWER LEFT AND LOWER RIGHT;So;0;ON;;;;;N;;;;; -25A0;BLACK SQUARE;So;0;ON;;;;;N;;;;; -25A1;WHITE SQUARE;So;0;ON;;;;;N;;;;; -25A2;WHITE SQUARE WITH ROUNDED CORNERS;So;0;ON;;;;;N;;;;; -25A3;WHITE SQUARE CONTAINING BLACK SMALL SQUARE;So;0;ON;;;;;N;;;;; -25A4;SQUARE WITH HORIZONTAL FILL;So;0;ON;;;;;N;;;;; -25A5;SQUARE WITH VERTICAL FILL;So;0;ON;;;;;N;;;;; -25A6;SQUARE WITH ORTHOGONAL CROSSHATCH FILL;So;0;ON;;;;;N;;;;; -25A7;SQUARE WITH UPPER LEFT TO LOWER RIGHT FILL;So;0;ON;;;;;N;;;;; -25A8;SQUARE WITH UPPER RIGHT TO LOWER LEFT FILL;So;0;ON;;;;;N;;;;; -25A9;SQUARE WITH DIAGONAL CROSSHATCH FILL;So;0;ON;;;;;N;;;;; -25AA;BLACK SMALL SQUARE;So;0;ON;;;;;N;;;;; -25AB;WHITE SMALL SQUARE;So;0;ON;;;;;N;;;;; -25AC;BLACK RECTANGLE;So;0;ON;;;;;N;;;;; -25AD;WHITE RECTANGLE;So;0;ON;;;;;N;;;;; -25AE;BLACK VERTICAL RECTANGLE;So;0;ON;;;;;N;;;;; -25AF;WHITE VERTICAL RECTANGLE;So;0;ON;;;;;N;;;;; -25B0;BLACK PARALLELOGRAM;So;0;ON;;;;;N;;;;; -25B1;WHITE PARALLELOGRAM;So;0;ON;;;;;N;;;;; -25B2;BLACK UP-POINTING TRIANGLE;So;0;ON;;;;;N;BLACK UP POINTING TRIANGLE;;;; -25B3;WHITE UP-POINTING TRIANGLE;So;0;ON;;;;;N;WHITE UP POINTING TRIANGLE;;;; -25B4;BLACK UP-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;BLACK UP POINTING SMALL TRIANGLE;;;; -25B5;WHITE UP-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;WHITE UP POINTING SMALL TRIANGLE;;;; -25B6;BLACK RIGHT-POINTING TRIANGLE;So;0;ON;;;;;N;BLACK RIGHT POINTING TRIANGLE;;;; -25B7;WHITE RIGHT-POINTING TRIANGLE;Sm;0;ON;;;;;N;WHITE RIGHT POINTING TRIANGLE;;;; -25B8;BLACK RIGHT-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;BLACK RIGHT POINTING SMALL TRIANGLE;;;; -25B9;WHITE RIGHT-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;WHITE RIGHT POINTING SMALL TRIANGLE;;;; -25BA;BLACK RIGHT-POINTING POINTER;So;0;ON;;;;;N;BLACK RIGHT POINTING POINTER;;;; -25BB;WHITE RIGHT-POINTING POINTER;So;0;ON;;;;;N;WHITE RIGHT POINTING POINTER;;;; -25BC;BLACK DOWN-POINTING TRIANGLE;So;0;ON;;;;;N;BLACK DOWN POINTING TRIANGLE;;;; -25BD;WHITE DOWN-POINTING TRIANGLE;So;0;ON;;;;;N;WHITE DOWN POINTING TRIANGLE;;;; -25BE;BLACK DOWN-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;BLACK DOWN POINTING SMALL TRIANGLE;;;; -25BF;WHITE DOWN-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;WHITE DOWN POINTING SMALL TRIANGLE;;;; -25C0;BLACK LEFT-POINTING TRIANGLE;So;0;ON;;;;;N;BLACK LEFT POINTING TRIANGLE;;;; -25C1;WHITE LEFT-POINTING TRIANGLE;Sm;0;ON;;;;;N;WHITE LEFT POINTING TRIANGLE;;;; -25C2;BLACK LEFT-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;BLACK LEFT POINTING SMALL TRIANGLE;;;; -25C3;WHITE LEFT-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;WHITE LEFT POINTING SMALL TRIANGLE;;;; -25C4;BLACK LEFT-POINTING POINTER;So;0;ON;;;;;N;BLACK LEFT POINTING POINTER;;;; -25C5;WHITE LEFT-POINTING POINTER;So;0;ON;;;;;N;WHITE LEFT POINTING POINTER;;;; -25C6;BLACK DIAMOND;So;0;ON;;;;;N;;;;; -25C7;WHITE DIAMOND;So;0;ON;;;;;N;;;;; -25C8;WHITE DIAMOND CONTAINING BLACK SMALL DIAMOND;So;0;ON;;;;;N;;;;; -25C9;FISHEYE;So;0;ON;;;;;N;;;;; -25CA;LOZENGE;So;0;ON;;;;;N;;;;; -25CB;WHITE CIRCLE;So;0;ON;;;;;N;;;;; -25CC;DOTTED CIRCLE;So;0;ON;;;;;N;;;;; -25CD;CIRCLE WITH VERTICAL FILL;So;0;ON;;;;;N;;;;; -25CE;BULLSEYE;So;0;ON;;;;;N;;;;; -25CF;BLACK CIRCLE;So;0;ON;;;;;N;;;;; -25D0;CIRCLE WITH LEFT HALF BLACK;So;0;ON;;;;;N;;;;; -25D1;CIRCLE WITH RIGHT HALF BLACK;So;0;ON;;;;;N;;;;; -25D2;CIRCLE WITH LOWER HALF BLACK;So;0;ON;;;;;N;;;;; -25D3;CIRCLE WITH UPPER HALF BLACK;So;0;ON;;;;;N;;;;; -25D4;CIRCLE WITH UPPER RIGHT QUADRANT BLACK;So;0;ON;;;;;N;;;;; -25D5;CIRCLE WITH ALL BUT UPPER LEFT QUADRANT BLACK;So;0;ON;;;;;N;;;;; -25D6;LEFT HALF BLACK CIRCLE;So;0;ON;;;;;N;;;;; -25D7;RIGHT HALF BLACK CIRCLE;So;0;ON;;;;;N;;;;; -25D8;INVERSE BULLET;So;0;ON;;;;;N;;;;; -25D9;INVERSE WHITE CIRCLE;So;0;ON;;;;;N;;;;; -25DA;UPPER HALF INVERSE WHITE CIRCLE;So;0;ON;;;;;N;;;;; -25DB;LOWER HALF INVERSE WHITE CIRCLE;So;0;ON;;;;;N;;;;; -25DC;UPPER LEFT QUADRANT CIRCULAR ARC;So;0;ON;;;;;N;;;;; -25DD;UPPER RIGHT QUADRANT CIRCULAR ARC;So;0;ON;;;;;N;;;;; -25DE;LOWER RIGHT QUADRANT CIRCULAR ARC;So;0;ON;;;;;N;;;;; -25DF;LOWER LEFT QUADRANT CIRCULAR ARC;So;0;ON;;;;;N;;;;; -25E0;UPPER HALF CIRCLE;So;0;ON;;;;;N;;;;; -25E1;LOWER HALF CIRCLE;So;0;ON;;;;;N;;;;; -25E2;BLACK LOWER RIGHT TRIANGLE;So;0;ON;;;;;N;;;;; -25E3;BLACK LOWER LEFT TRIANGLE;So;0;ON;;;;;N;;;;; -25E4;BLACK UPPER LEFT TRIANGLE;So;0;ON;;;;;N;;;;; -25E5;BLACK UPPER RIGHT TRIANGLE;So;0;ON;;;;;N;;;;; -25E6;WHITE BULLET;So;0;ON;;;;;N;;;;; -25E7;SQUARE WITH LEFT HALF BLACK;So;0;ON;;;;;N;;;;; -25E8;SQUARE WITH RIGHT HALF BLACK;So;0;ON;;;;;N;;;;; -25E9;SQUARE WITH UPPER LEFT DIAGONAL HALF BLACK;So;0;ON;;;;;N;;;;; -25EA;SQUARE WITH LOWER RIGHT DIAGONAL HALF BLACK;So;0;ON;;;;;N;;;;; -25EB;WHITE SQUARE WITH VERTICAL BISECTING LINE;So;0;ON;;;;;N;;;;; -25EC;WHITE UP-POINTING TRIANGLE WITH DOT;So;0;ON;;;;;N;WHITE UP POINTING TRIANGLE WITH DOT;;;; -25ED;UP-POINTING TRIANGLE WITH LEFT HALF BLACK;So;0;ON;;;;;N;UP POINTING TRIANGLE WITH LEFT HALF BLACK;;;; -25EE;UP-POINTING TRIANGLE WITH RIGHT HALF BLACK;So;0;ON;;;;;N;UP POINTING TRIANGLE WITH RIGHT HALF BLACK;;;; -25EF;LARGE CIRCLE;So;0;ON;;;;;N;;;;; -25F0;WHITE SQUARE WITH UPPER LEFT QUADRANT;So;0;ON;;;;;N;;;;; -25F1;WHITE SQUARE WITH LOWER LEFT QUADRANT;So;0;ON;;;;;N;;;;; -25F2;WHITE SQUARE WITH LOWER RIGHT QUADRANT;So;0;ON;;;;;N;;;;; -25F3;WHITE SQUARE WITH UPPER RIGHT QUADRANT;So;0;ON;;;;;N;;;;; -25F4;WHITE CIRCLE WITH UPPER LEFT QUADRANT;So;0;ON;;;;;N;;;;; -25F5;WHITE CIRCLE WITH LOWER LEFT QUADRANT;So;0;ON;;;;;N;;;;; -25F6;WHITE CIRCLE WITH LOWER RIGHT QUADRANT;So;0;ON;;;;;N;;;;; -25F7;WHITE CIRCLE WITH UPPER RIGHT QUADRANT;So;0;ON;;;;;N;;;;; -25F8;UPPER LEFT TRIANGLE;Sm;0;ON;;;;;N;;;;; -25F9;UPPER RIGHT TRIANGLE;Sm;0;ON;;;;;N;;;;; -25FA;LOWER LEFT TRIANGLE;Sm;0;ON;;;;;N;;;;; -25FB;WHITE MEDIUM SQUARE;Sm;0;ON;;;;;N;;;;; -25FC;BLACK MEDIUM SQUARE;Sm;0;ON;;;;;N;;;;; -25FD;WHITE MEDIUM SMALL SQUARE;Sm;0;ON;;;;;N;;;;; -25FE;BLACK MEDIUM SMALL SQUARE;Sm;0;ON;;;;;N;;;;; -25FF;LOWER RIGHT TRIANGLE;Sm;0;ON;;;;;N;;;;; -2600;BLACK SUN WITH RAYS;So;0;ON;;;;;N;;;;; -2601;CLOUD;So;0;ON;;;;;N;;;;; -2602;UMBRELLA;So;0;ON;;;;;N;;;;; -2603;SNOWMAN;So;0;ON;;;;;N;;;;; -2604;COMET;So;0;ON;;;;;N;;;;; -2605;BLACK STAR;So;0;ON;;;;;N;;;;; -2606;WHITE STAR;So;0;ON;;;;;N;;;;; -2607;LIGHTNING;So;0;ON;;;;;N;;;;; -2608;THUNDERSTORM;So;0;ON;;;;;N;;;;; -2609;SUN;So;0;ON;;;;;N;;;;; -260A;ASCENDING NODE;So;0;ON;;;;;N;;;;; -260B;DESCENDING NODE;So;0;ON;;;;;N;;;;; -260C;CONJUNCTION;So;0;ON;;;;;N;;;;; -260D;OPPOSITION;So;0;ON;;;;;N;;;;; -260E;BLACK TELEPHONE;So;0;ON;;;;;N;;;;; -260F;WHITE TELEPHONE;So;0;ON;;;;;N;;;;; -2610;BALLOT BOX;So;0;ON;;;;;N;;;;; -2611;BALLOT BOX WITH CHECK;So;0;ON;;;;;N;;;;; -2612;BALLOT BOX WITH X;So;0;ON;;;;;N;;;;; -2613;SALTIRE;So;0;ON;;;;;N;;;;; -2614;UMBRELLA WITH RAIN DROPS;So;0;ON;;;;;N;;;;; -2615;HOT BEVERAGE;So;0;ON;;;;;N;;;;; -2616;WHITE SHOGI PIECE;So;0;ON;;;;;N;;;;; -2617;BLACK SHOGI PIECE;So;0;ON;;;;;N;;;;; -2618;SHAMROCK;So;0;ON;;;;;N;;;;; -2619;REVERSED ROTATED FLORAL HEART BULLET;So;0;ON;;;;;N;;;;; -261A;BLACK LEFT POINTING INDEX;So;0;ON;;;;;N;;;;; -261B;BLACK RIGHT POINTING INDEX;So;0;ON;;;;;N;;;;; -261C;WHITE LEFT POINTING INDEX;So;0;ON;;;;;N;;;;; -261D;WHITE UP POINTING INDEX;So;0;ON;;;;;N;;;;; -261E;WHITE RIGHT POINTING INDEX;So;0;ON;;;;;N;;;;; -261F;WHITE DOWN POINTING INDEX;So;0;ON;;;;;N;;;;; -2620;SKULL AND CROSSBONES;So;0;ON;;;;;N;;;;; -2621;CAUTION SIGN;So;0;ON;;;;;N;;;;; -2622;RADIOACTIVE SIGN;So;0;ON;;;;;N;;;;; -2623;BIOHAZARD SIGN;So;0;ON;;;;;N;;;;; -2624;CADUCEUS;So;0;ON;;;;;N;;;;; -2625;ANKH;So;0;ON;;;;;N;;;;; -2626;ORTHODOX CROSS;So;0;ON;;;;;N;;;;; -2627;CHI RHO;So;0;ON;;;;;N;;;;; -2628;CROSS OF LORRAINE;So;0;ON;;;;;N;;;;; -2629;CROSS OF JERUSALEM;So;0;ON;;;;;N;;;;; -262A;STAR AND CRESCENT;So;0;ON;;;;;N;;;;; -262B;FARSI SYMBOL;So;0;ON;;;;;N;SYMBOL OF IRAN;;;; -262C;ADI SHAKTI;So;0;ON;;;;;N;;;;; -262D;HAMMER AND SICKLE;So;0;ON;;;;;N;;;;; -262E;PEACE SYMBOL;So;0;ON;;;;;N;;;;; -262F;YIN YANG;So;0;ON;;;;;N;;;;; -2630;TRIGRAM FOR HEAVEN;So;0;ON;;;;;N;;;;; -2631;TRIGRAM FOR LAKE;So;0;ON;;;;;N;;;;; -2632;TRIGRAM FOR FIRE;So;0;ON;;;;;N;;;;; -2633;TRIGRAM FOR THUNDER;So;0;ON;;;;;N;;;;; -2634;TRIGRAM FOR WIND;So;0;ON;;;;;N;;;;; -2635;TRIGRAM FOR WATER;So;0;ON;;;;;N;;;;; -2636;TRIGRAM FOR MOUNTAIN;So;0;ON;;;;;N;;;;; -2637;TRIGRAM FOR EARTH;So;0;ON;;;;;N;;;;; -2638;WHEEL OF DHARMA;So;0;ON;;;;;N;;;;; -2639;WHITE FROWNING FACE;So;0;ON;;;;;N;;;;; -263A;WHITE SMILING FACE;So;0;ON;;;;;N;;;;; -263B;BLACK SMILING FACE;So;0;ON;;;;;N;;;;; -263C;WHITE SUN WITH RAYS;So;0;ON;;;;;N;;;;; -263D;FIRST QUARTER MOON;So;0;ON;;;;;N;;;;; -263E;LAST QUARTER MOON;So;0;ON;;;;;N;;;;; -263F;MERCURY;So;0;ON;;;;;N;;;;; -2640;FEMALE SIGN;So;0;ON;;;;;N;;;;; -2641;EARTH;So;0;ON;;;;;N;;;;; -2642;MALE SIGN;So;0;ON;;;;;N;;;;; -2643;JUPITER;So;0;ON;;;;;N;;;;; -2644;SATURN;So;0;ON;;;;;N;;;;; -2645;URANUS;So;0;ON;;;;;N;;;;; -2646;NEPTUNE;So;0;ON;;;;;N;;;;; -2647;PLUTO;So;0;ON;;;;;N;;;;; -2648;ARIES;So;0;ON;;;;;N;;;;; -2649;TAURUS;So;0;ON;;;;;N;;;;; -264A;GEMINI;So;0;ON;;;;;N;;;;; -264B;CANCER;So;0;ON;;;;;N;;;;; -264C;LEO;So;0;ON;;;;;N;;;;; -264D;VIRGO;So;0;ON;;;;;N;;;;; -264E;LIBRA;So;0;ON;;;;;N;;;;; -264F;SCORPIUS;So;0;ON;;;;;N;;;;; -2650;SAGITTARIUS;So;0;ON;;;;;N;;;;; -2651;CAPRICORN;So;0;ON;;;;;N;;;;; -2652;AQUARIUS;So;0;ON;;;;;N;;;;; -2653;PISCES;So;0;ON;;;;;N;;;;; -2654;WHITE CHESS KING;So;0;ON;;;;;N;;;;; -2655;WHITE CHESS QUEEN;So;0;ON;;;;;N;;;;; -2656;WHITE CHESS ROOK;So;0;ON;;;;;N;;;;; -2657;WHITE CHESS BISHOP;So;0;ON;;;;;N;;;;; -2658;WHITE CHESS KNIGHT;So;0;ON;;;;;N;;;;; -2659;WHITE CHESS PAWN;So;0;ON;;;;;N;;;;; -265A;BLACK CHESS KING;So;0;ON;;;;;N;;;;; -265B;BLACK CHESS QUEEN;So;0;ON;;;;;N;;;;; -265C;BLACK CHESS ROOK;So;0;ON;;;;;N;;;;; -265D;BLACK CHESS BISHOP;So;0;ON;;;;;N;;;;; -265E;BLACK CHESS KNIGHT;So;0;ON;;;;;N;;;;; -265F;BLACK CHESS PAWN;So;0;ON;;;;;N;;;;; -2660;BLACK SPADE SUIT;So;0;ON;;;;;N;;;;; -2661;WHITE HEART SUIT;So;0;ON;;;;;N;;;;; -2662;WHITE DIAMOND SUIT;So;0;ON;;;;;N;;;;; -2663;BLACK CLUB SUIT;So;0;ON;;;;;N;;;;; -2664;WHITE SPADE SUIT;So;0;ON;;;;;N;;;;; -2665;BLACK HEART SUIT;So;0;ON;;;;;N;;;;; -2666;BLACK DIAMOND SUIT;So;0;ON;;;;;N;;;;; -2667;WHITE CLUB SUIT;So;0;ON;;;;;N;;;;; -2668;HOT SPRINGS;So;0;ON;;;;;N;;;;; -2669;QUARTER NOTE;So;0;ON;;;;;N;;;;; -266A;EIGHTH NOTE;So;0;ON;;;;;N;;;;; -266B;BEAMED EIGHTH NOTES;So;0;ON;;;;;N;BARRED EIGHTH NOTES;;;; -266C;BEAMED SIXTEENTH NOTES;So;0;ON;;;;;N;BARRED SIXTEENTH NOTES;;;; -266D;MUSIC FLAT SIGN;So;0;ON;;;;;N;FLAT;;;; -266E;MUSIC NATURAL SIGN;So;0;ON;;;;;N;NATURAL;;;; -266F;MUSIC SHARP SIGN;Sm;0;ON;;;;;N;SHARP;;;; -2670;WEST SYRIAC CROSS;So;0;ON;;;;;N;;;;; -2671;EAST SYRIAC CROSS;So;0;ON;;;;;N;;;;; -2672;UNIVERSAL RECYCLING SYMBOL;So;0;ON;;;;;N;;;;; -2673;RECYCLING SYMBOL FOR TYPE-1 PLASTICS;So;0;ON;;;;;N;;;;; -2674;RECYCLING SYMBOL FOR TYPE-2 PLASTICS;So;0;ON;;;;;N;;;;; -2675;RECYCLING SYMBOL FOR TYPE-3 PLASTICS;So;0;ON;;;;;N;;;;; -2676;RECYCLING SYMBOL FOR TYPE-4 PLASTICS;So;0;ON;;;;;N;;;;; -2677;RECYCLING SYMBOL FOR TYPE-5 PLASTICS;So;0;ON;;;;;N;;;;; -2678;RECYCLING SYMBOL FOR TYPE-6 PLASTICS;So;0;ON;;;;;N;;;;; -2679;RECYCLING SYMBOL FOR TYPE-7 PLASTICS;So;0;ON;;;;;N;;;;; -267A;RECYCLING SYMBOL FOR GENERIC MATERIALS;So;0;ON;;;;;N;;;;; -267B;BLACK UNIVERSAL RECYCLING SYMBOL;So;0;ON;;;;;N;;;;; -267C;RECYCLED PAPER SYMBOL;So;0;ON;;;;;N;;;;; -267D;PARTIALLY-RECYCLED PAPER SYMBOL;So;0;ON;;;;;N;;;;; -267E;PERMANENT PAPER SIGN;So;0;ON;;;;;N;;;;; -267F;WHEELCHAIR SYMBOL;So;0;ON;;;;;N;;;;; -2680;DIE FACE-1;So;0;ON;;;;;N;;;;; -2681;DIE FACE-2;So;0;ON;;;;;N;;;;; -2682;DIE FACE-3;So;0;ON;;;;;N;;;;; -2683;DIE FACE-4;So;0;ON;;;;;N;;;;; -2684;DIE FACE-5;So;0;ON;;;;;N;;;;; -2685;DIE FACE-6;So;0;ON;;;;;N;;;;; -2686;WHITE CIRCLE WITH DOT RIGHT;So;0;ON;;;;;N;;;;; -2687;WHITE CIRCLE WITH TWO DOTS;So;0;ON;;;;;N;;;;; -2688;BLACK CIRCLE WITH WHITE DOT RIGHT;So;0;ON;;;;;N;;;;; -2689;BLACK CIRCLE WITH TWO WHITE DOTS;So;0;ON;;;;;N;;;;; -268A;MONOGRAM FOR YANG;So;0;ON;;;;;N;;;;; -268B;MONOGRAM FOR YIN;So;0;ON;;;;;N;;;;; -268C;DIGRAM FOR GREATER YANG;So;0;ON;;;;;N;;;;; -268D;DIGRAM FOR LESSER YIN;So;0;ON;;;;;N;;;;; -268E;DIGRAM FOR LESSER YANG;So;0;ON;;;;;N;;;;; -268F;DIGRAM FOR GREATER YIN;So;0;ON;;;;;N;;;;; -2690;WHITE FLAG;So;0;ON;;;;;N;;;;; -2691;BLACK FLAG;So;0;ON;;;;;N;;;;; -2692;HAMMER AND PICK;So;0;ON;;;;;N;;;;; -2693;ANCHOR;So;0;ON;;;;;N;;;;; -2694;CROSSED SWORDS;So;0;ON;;;;;N;;;;; -2695;STAFF OF AESCULAPIUS;So;0;ON;;;;;N;;;;; -2696;SCALES;So;0;ON;;;;;N;;;;; -2697;ALEMBIC;So;0;ON;;;;;N;;;;; -2698;FLOWER;So;0;ON;;;;;N;;;;; -2699;GEAR;So;0;ON;;;;;N;;;;; -269A;STAFF OF HERMES;So;0;ON;;;;;N;;;;; -269B;ATOM SYMBOL;So;0;ON;;;;;N;;;;; -269C;FLEUR-DE-LIS;So;0;ON;;;;;N;;;;; -269D;OUTLINED WHITE STAR;So;0;ON;;;;;N;;;;; -269E;THREE LINES CONVERGING RIGHT;So;0;ON;;;;;N;;;;; -269F;THREE LINES CONVERGING LEFT;So;0;ON;;;;;N;;;;; -26A0;WARNING SIGN;So;0;ON;;;;;N;;;;; -26A1;HIGH VOLTAGE SIGN;So;0;ON;;;;;N;;;;; -26A2;DOUBLED FEMALE SIGN;So;0;ON;;;;;N;;;;; -26A3;DOUBLED MALE SIGN;So;0;ON;;;;;N;;;;; -26A4;INTERLOCKED FEMALE AND MALE SIGN;So;0;ON;;;;;N;;;;; -26A5;MALE AND FEMALE SIGN;So;0;ON;;;;;N;;;;; -26A6;MALE WITH STROKE SIGN;So;0;ON;;;;;N;;;;; -26A7;MALE WITH STROKE AND MALE AND FEMALE SIGN;So;0;ON;;;;;N;;;;; -26A8;VERTICAL MALE WITH STROKE SIGN;So;0;ON;;;;;N;;;;; -26A9;HORIZONTAL MALE WITH STROKE SIGN;So;0;ON;;;;;N;;;;; -26AA;MEDIUM WHITE CIRCLE;So;0;ON;;;;;N;;;;; -26AB;MEDIUM BLACK CIRCLE;So;0;ON;;;;;N;;;;; -26AC;MEDIUM SMALL WHITE CIRCLE;So;0;L;;;;;N;;;;; -26AD;MARRIAGE SYMBOL;So;0;ON;;;;;N;;;;; -26AE;DIVORCE SYMBOL;So;0;ON;;;;;N;;;;; -26AF;UNMARRIED PARTNERSHIP SYMBOL;So;0;ON;;;;;N;;;;; -26B0;COFFIN;So;0;ON;;;;;N;;;;; -26B1;FUNERAL URN;So;0;ON;;;;;N;;;;; -26B2;NEUTER;So;0;ON;;;;;N;;;;; -26B3;CERES;So;0;ON;;;;;N;;;;; -26B4;PALLAS;So;0;ON;;;;;N;;;;; -26B5;JUNO;So;0;ON;;;;;N;;;;; -26B6;VESTA;So;0;ON;;;;;N;;;;; -26B7;CHIRON;So;0;ON;;;;;N;;;;; -26B8;BLACK MOON LILITH;So;0;ON;;;;;N;;;;; -26B9;SEXTILE;So;0;ON;;;;;N;;;;; -26BA;SEMISEXTILE;So;0;ON;;;;;N;;;;; -26BB;QUINCUNX;So;0;ON;;;;;N;;;;; -26BC;SESQUIQUADRATE;So;0;ON;;;;;N;;;;; -26BD;SOCCER BALL;So;0;ON;;;;;N;;;;; -26BE;BASEBALL;So;0;ON;;;;;N;;;;; -26BF;SQUARED KEY;So;0;ON;;;;;N;;;;; -26C0;WHITE DRAUGHTS MAN;So;0;ON;;;;;N;;;;; -26C1;WHITE DRAUGHTS KING;So;0;ON;;;;;N;;;;; -26C2;BLACK DRAUGHTS MAN;So;0;ON;;;;;N;;;;; -26C3;BLACK DRAUGHTS KING;So;0;ON;;;;;N;;;;; -26C4;SNOWMAN WITHOUT SNOW;So;0;ON;;;;;N;;;;; -26C5;SUN BEHIND CLOUD;So;0;ON;;;;;N;;;;; -26C6;RAIN;So;0;ON;;;;;N;;;;; -26C7;BLACK SNOWMAN;So;0;ON;;;;;N;;;;; -26C8;THUNDER CLOUD AND RAIN;So;0;ON;;;;;N;;;;; -26C9;TURNED WHITE SHOGI PIECE;So;0;ON;;;;;N;;;;; -26CA;TURNED BLACK SHOGI PIECE;So;0;ON;;;;;N;;;;; -26CB;WHITE DIAMOND IN SQUARE;So;0;ON;;;;;N;;;;; -26CC;CROSSING LANES;So;0;ON;;;;;N;;;;; -26CD;DISABLED CAR;So;0;ON;;;;;N;;;;; -26CF;PICK;So;0;ON;;;;;N;;;;; -26D0;CAR SLIDING;So;0;ON;;;;;N;;;;; -26D1;HELMET WITH WHITE CROSS;So;0;ON;;;;;N;;;;; -26D2;CIRCLED CROSSING LANES;So;0;ON;;;;;N;;;;; -26D3;CHAINS;So;0;ON;;;;;N;;;;; -26D4;NO ENTRY;So;0;ON;;;;;N;;;;; -26D5;ALTERNATE ONE-WAY LEFT WAY TRAFFIC;So;0;ON;;;;;N;;;;; -26D6;BLACK TWO-WAY LEFT WAY TRAFFIC;So;0;ON;;;;;N;;;;; -26D7;WHITE TWO-WAY LEFT WAY TRAFFIC;So;0;ON;;;;;N;;;;; -26D8;BLACK LEFT LANE MERGE;So;0;ON;;;;;N;;;;; -26D9;WHITE LEFT LANE MERGE;So;0;ON;;;;;N;;;;; -26DA;DRIVE SLOW SIGN;So;0;ON;;;;;N;;;;; -26DB;HEAVY WHITE DOWN-POINTING TRIANGLE;So;0;ON;;;;;N;;;;; -26DC;LEFT CLOSED ENTRY;So;0;ON;;;;;N;;;;; -26DD;SQUARED SALTIRE;So;0;ON;;;;;N;;;;; -26DE;FALLING DIAGONAL IN WHITE CIRCLE IN BLACK SQUARE;So;0;ON;;;;;N;;;;; -26DF;BLACK TRUCK;So;0;ON;;;;;N;;;;; -26E0;RESTRICTED LEFT ENTRY-1;So;0;ON;;;;;N;;;;; -26E1;RESTRICTED LEFT ENTRY-2;So;0;ON;;;;;N;;;;; -26E3;HEAVY CIRCLE WITH STROKE AND TWO DOTS ABOVE;So;0;ON;;;;;N;;;;; -26E8;BLACK CROSS ON SHIELD;So;0;ON;;;;;N;;;;; -26E9;SHINTO SHRINE;So;0;ON;;;;;N;;;;; -26EA;CHURCH;So;0;ON;;;;;N;;;;; -26EB;CASTLE;So;0;ON;;;;;N;;;;; -26EC;HISTORIC SITE;So;0;ON;;;;;N;;;;; -26ED;GEAR WITHOUT HUB;So;0;ON;;;;;N;;;;; -26EE;GEAR WITH HANDLES;So;0;ON;;;;;N;;;;; -26EF;MAP SYMBOL FOR LIGHTHOUSE;So;0;ON;;;;;N;;;;; -26F0;MOUNTAIN;So;0;ON;;;;;N;;;;; -26F1;UMBRELLA ON GROUND;So;0;ON;;;;;N;;;;; -26F2;FOUNTAIN;So;0;ON;;;;;N;;;;; -26F3;FLAG IN HOLE;So;0;ON;;;;;N;;;;; -26F4;FERRY;So;0;ON;;;;;N;;;;; -26F5;SAILBOAT;So;0;ON;;;;;N;;;;; -26F6;SQUARE FOUR CORNERS;So;0;ON;;;;;N;;;;; -26F7;SKIER;So;0;ON;;;;;N;;;;; -26F8;ICE SKATE;So;0;ON;;;;;N;;;;; -26F9;PERSON WITH BALL;So;0;ON;;;;;N;;;;; -26FA;TENT;So;0;ON;;;;;N;;;;; -26FB;JAPANESE BANK SYMBOL;So;0;ON;;;;;N;;;;; -26FC;HEADSTONE GRAVEYARD SYMBOL;So;0;ON;;;;;N;;;;; -26FD;FUEL PUMP;So;0;ON;;;;;N;;;;; -26FE;CUP ON BLACK SQUARE;So;0;ON;;;;;N;;;;; -26FF;WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE;So;0;ON;;;;;N;;;;; -2701;UPPER BLADE SCISSORS;So;0;ON;;;;;N;;;;; -2702;BLACK SCISSORS;So;0;ON;;;;;N;;;;; -2703;LOWER BLADE SCISSORS;So;0;ON;;;;;N;;;;; -2704;WHITE SCISSORS;So;0;ON;;;;;N;;;;; -2706;TELEPHONE LOCATION SIGN;So;0;ON;;;;;N;;;;; -2707;TAPE DRIVE;So;0;ON;;;;;N;;;;; -2708;AIRPLANE;So;0;ON;;;;;N;;;;; -2709;ENVELOPE;So;0;ON;;;;;N;;;;; -270C;VICTORY HAND;So;0;ON;;;;;N;;;;; -270D;WRITING HAND;So;0;ON;;;;;N;;;;; -270E;LOWER RIGHT PENCIL;So;0;ON;;;;;N;;;;; -270F;PENCIL;So;0;ON;;;;;N;;;;; -2710;UPPER RIGHT PENCIL;So;0;ON;;;;;N;;;;; -2711;WHITE NIB;So;0;ON;;;;;N;;;;; -2712;BLACK NIB;So;0;ON;;;;;N;;;;; -2713;CHECK MARK;So;0;ON;;;;;N;;;;; -2714;HEAVY CHECK MARK;So;0;ON;;;;;N;;;;; -2715;MULTIPLICATION X;So;0;ON;;;;;N;;;;; -2716;HEAVY MULTIPLICATION X;So;0;ON;;;;;N;;;;; -2717;BALLOT X;So;0;ON;;;;;N;;;;; -2718;HEAVY BALLOT X;So;0;ON;;;;;N;;;;; -2719;OUTLINED GREEK CROSS;So;0;ON;;;;;N;;;;; -271A;HEAVY GREEK CROSS;So;0;ON;;;;;N;;;;; -271B;OPEN CENTRE CROSS;So;0;ON;;;;;N;OPEN CENTER CROSS;;;; -271C;HEAVY OPEN CENTRE CROSS;So;0;ON;;;;;N;HEAVY OPEN CENTER CROSS;;;; -271D;LATIN CROSS;So;0;ON;;;;;N;;;;; -271E;SHADOWED WHITE LATIN CROSS;So;0;ON;;;;;N;;;;; -271F;OUTLINED LATIN CROSS;So;0;ON;;;;;N;;;;; -2720;MALTESE CROSS;So;0;ON;;;;;N;;;;; -2721;STAR OF DAVID;So;0;ON;;;;;N;;;;; -2722;FOUR TEARDROP-SPOKED ASTERISK;So;0;ON;;;;;N;;;;; -2723;FOUR BALLOON-SPOKED ASTERISK;So;0;ON;;;;;N;;;;; -2724;HEAVY FOUR BALLOON-SPOKED ASTERISK;So;0;ON;;;;;N;;;;; -2725;FOUR CLUB-SPOKED ASTERISK;So;0;ON;;;;;N;;;;; -2726;BLACK FOUR POINTED STAR;So;0;ON;;;;;N;;;;; -2727;WHITE FOUR POINTED STAR;So;0;ON;;;;;N;;;;; -2729;STRESS OUTLINED WHITE STAR;So;0;ON;;;;;N;;;;; -272A;CIRCLED WHITE STAR;So;0;ON;;;;;N;;;;; -272B;OPEN CENTRE BLACK STAR;So;0;ON;;;;;N;OPEN CENTER BLACK STAR;;;; -272C;BLACK CENTRE WHITE STAR;So;0;ON;;;;;N;BLACK CENTER WHITE STAR;;;; -272D;OUTLINED BLACK STAR;So;0;ON;;;;;N;;;;; -272E;HEAVY OUTLINED BLACK STAR;So;0;ON;;;;;N;;;;; -272F;PINWHEEL STAR;So;0;ON;;;;;N;;;;; -2730;SHADOWED WHITE STAR;So;0;ON;;;;;N;;;;; -2731;HEAVY ASTERISK;So;0;ON;;;;;N;;;;; -2732;OPEN CENTRE ASTERISK;So;0;ON;;;;;N;OPEN CENTER ASTERISK;;;; -2733;EIGHT SPOKED ASTERISK;So;0;ON;;;;;N;;;;; -2734;EIGHT POINTED BLACK STAR;So;0;ON;;;;;N;;;;; -2735;EIGHT POINTED PINWHEEL STAR;So;0;ON;;;;;N;;;;; -2736;SIX POINTED BLACK STAR;So;0;ON;;;;;N;;;;; -2737;EIGHT POINTED RECTILINEAR BLACK STAR;So;0;ON;;;;;N;;;;; -2738;HEAVY EIGHT POINTED RECTILINEAR BLACK STAR;So;0;ON;;;;;N;;;;; -2739;TWELVE POINTED BLACK STAR;So;0;ON;;;;;N;;;;; -273A;SIXTEEN POINTED ASTERISK;So;0;ON;;;;;N;;;;; -273B;TEARDROP-SPOKED ASTERISK;So;0;ON;;;;;N;;;;; -273C;OPEN CENTRE TEARDROP-SPOKED ASTERISK;So;0;ON;;;;;N;OPEN CENTER TEARDROP-SPOKED ASTERISK;;;; -273D;HEAVY TEARDROP-SPOKED ASTERISK;So;0;ON;;;;;N;;;;; -273E;SIX PETALLED BLACK AND WHITE FLORETTE;So;0;ON;;;;;N;;;;; -273F;BLACK FLORETTE;So;0;ON;;;;;N;;;;; -2740;WHITE FLORETTE;So;0;ON;;;;;N;;;;; -2741;EIGHT PETALLED OUTLINED BLACK FLORETTE;So;0;ON;;;;;N;;;;; -2742;CIRCLED OPEN CENTRE EIGHT POINTED STAR;So;0;ON;;;;;N;CIRCLED OPEN CENTER EIGHT POINTED STAR;;;; -2743;HEAVY TEARDROP-SPOKED PINWHEEL ASTERISK;So;0;ON;;;;;N;;;;; -2744;SNOWFLAKE;So;0;ON;;;;;N;;;;; -2745;TIGHT TRIFOLIATE SNOWFLAKE;So;0;ON;;;;;N;;;;; -2746;HEAVY CHEVRON SNOWFLAKE;So;0;ON;;;;;N;;;;; -2747;SPARKLE;So;0;ON;;;;;N;;;;; -2748;HEAVY SPARKLE;So;0;ON;;;;;N;;;;; -2749;BALLOON-SPOKED ASTERISK;So;0;ON;;;;;N;;;;; -274A;EIGHT TEARDROP-SPOKED PROPELLER ASTERISK;So;0;ON;;;;;N;;;;; -274B;HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK;So;0;ON;;;;;N;;;;; -274D;SHADOWED WHITE CIRCLE;So;0;ON;;;;;N;;;;; -274F;LOWER RIGHT DROP-SHADOWED WHITE SQUARE;So;0;ON;;;;;N;;;;; -2750;UPPER RIGHT DROP-SHADOWED WHITE SQUARE;So;0;ON;;;;;N;;;;; -2751;LOWER RIGHT SHADOWED WHITE SQUARE;So;0;ON;;;;;N;;;;; -2752;UPPER RIGHT SHADOWED WHITE SQUARE;So;0;ON;;;;;N;;;;; -2756;BLACK DIAMOND MINUS WHITE X;So;0;ON;;;;;N;;;;; -2757;HEAVY EXCLAMATION MARK SYMBOL;So;0;ON;;;;;N;;;;; -2758;LIGHT VERTICAL BAR;So;0;ON;;;;;N;;;;; -2759;MEDIUM VERTICAL BAR;So;0;ON;;;;;N;;;;; -275A;HEAVY VERTICAL BAR;So;0;ON;;;;;N;;;;; -275B;HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;; -275C;HEAVY SINGLE COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;; -275D;HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;; -275E;HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;; -2761;CURVED STEM PARAGRAPH SIGN ORNAMENT;So;0;ON;;;;;N;;;;; -2762;HEAVY EXCLAMATION MARK ORNAMENT;So;0;ON;;;;;N;;;;; -2763;HEAVY HEART EXCLAMATION MARK ORNAMENT;So;0;ON;;;;;N;;;;; -2764;HEAVY BLACK HEART;So;0;ON;;;;;N;;;;; -2765;ROTATED HEAVY BLACK HEART BULLET;So;0;ON;;;;;N;;;;; -2766;FLORAL HEART;So;0;ON;;;;;N;;;;; -2767;ROTATED FLORAL HEART BULLET;So;0;ON;;;;;N;;;;; -2768;MEDIUM LEFT PARENTHESIS ORNAMENT;Ps;0;ON;;;;;Y;;;;; -2769;MEDIUM RIGHT PARENTHESIS ORNAMENT;Pe;0;ON;;;;;Y;;;;; -276A;MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT;Ps;0;ON;;;;;Y;;;;; -276B;MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT;Pe;0;ON;;;;;Y;;;;; -276C;MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT;Ps;0;ON;;;;;Y;;;;; -276D;MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT;Pe;0;ON;;;;;Y;;;;; -276E;HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT;Ps;0;ON;;;;;Y;;;;; -276F;HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT;Pe;0;ON;;;;;Y;;;;; -2770;HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT;Ps;0;ON;;;;;Y;;;;; -2771;HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT;Pe;0;ON;;;;;Y;;;;; -2772;LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT;Ps;0;ON;;;;;Y;;;;; -2773;LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT;Pe;0;ON;;;;;Y;;;;; -2774;MEDIUM LEFT CURLY BRACKET ORNAMENT;Ps;0;ON;;;;;Y;;;;; -2775;MEDIUM RIGHT CURLY BRACKET ORNAMENT;Pe;0;ON;;;;;Y;;;;; -2776;DINGBAT NEGATIVE CIRCLED DIGIT ONE;No;0;ON;;;1;1;N;INVERSE CIRCLED DIGIT ONE;;;; -2777;DINGBAT NEGATIVE CIRCLED DIGIT TWO;No;0;ON;;;2;2;N;INVERSE CIRCLED DIGIT TWO;;;; -2778;DINGBAT NEGATIVE CIRCLED DIGIT THREE;No;0;ON;;;3;3;N;INVERSE CIRCLED DIGIT THREE;;;; -2779;DINGBAT NEGATIVE CIRCLED DIGIT FOUR;No;0;ON;;;4;4;N;INVERSE CIRCLED DIGIT FOUR;;;; -277A;DINGBAT NEGATIVE CIRCLED DIGIT FIVE;No;0;ON;;;5;5;N;INVERSE CIRCLED DIGIT FIVE;;;; -277B;DINGBAT NEGATIVE CIRCLED DIGIT SIX;No;0;ON;;;6;6;N;INVERSE CIRCLED DIGIT SIX;;;; -277C;DINGBAT NEGATIVE CIRCLED DIGIT SEVEN;No;0;ON;;;7;7;N;INVERSE CIRCLED DIGIT SEVEN;;;; -277D;DINGBAT NEGATIVE CIRCLED DIGIT EIGHT;No;0;ON;;;8;8;N;INVERSE CIRCLED DIGIT EIGHT;;;; -277E;DINGBAT NEGATIVE CIRCLED DIGIT NINE;No;0;ON;;;9;9;N;INVERSE CIRCLED DIGIT NINE;;;; -277F;DINGBAT NEGATIVE CIRCLED NUMBER TEN;No;0;ON;;;;10;N;INVERSE CIRCLED NUMBER TEN;;;; -2780;DINGBAT CIRCLED SANS-SERIF DIGIT ONE;No;0;ON;;;1;1;N;CIRCLED SANS-SERIF DIGIT ONE;;;; -2781;DINGBAT CIRCLED SANS-SERIF DIGIT TWO;No;0;ON;;;2;2;N;CIRCLED SANS-SERIF DIGIT TWO;;;; -2782;DINGBAT CIRCLED SANS-SERIF DIGIT THREE;No;0;ON;;;3;3;N;CIRCLED SANS-SERIF DIGIT THREE;;;; -2783;DINGBAT CIRCLED SANS-SERIF DIGIT FOUR;No;0;ON;;;4;4;N;CIRCLED SANS-SERIF DIGIT FOUR;;;; -2784;DINGBAT CIRCLED SANS-SERIF DIGIT FIVE;No;0;ON;;;5;5;N;CIRCLED SANS-SERIF DIGIT FIVE;;;; -2785;DINGBAT CIRCLED SANS-SERIF DIGIT SIX;No;0;ON;;;6;6;N;CIRCLED SANS-SERIF DIGIT SIX;;;; -2786;DINGBAT CIRCLED SANS-SERIF DIGIT SEVEN;No;0;ON;;;7;7;N;CIRCLED SANS-SERIF DIGIT SEVEN;;;; -2787;DINGBAT CIRCLED SANS-SERIF DIGIT EIGHT;No;0;ON;;;8;8;N;CIRCLED SANS-SERIF DIGIT EIGHT;;;; -2788;DINGBAT CIRCLED SANS-SERIF DIGIT NINE;No;0;ON;;;9;9;N;CIRCLED SANS-SERIF DIGIT NINE;;;; -2789;DINGBAT CIRCLED SANS-SERIF NUMBER TEN;No;0;ON;;;;10;N;CIRCLED SANS-SERIF NUMBER TEN;;;; -278A;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ONE;No;0;ON;;;1;1;N;INVERSE CIRCLED SANS-SERIF DIGIT ONE;;;; -278B;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT TWO;No;0;ON;;;2;2;N;INVERSE CIRCLED SANS-SERIF DIGIT TWO;;;; -278C;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT THREE;No;0;ON;;;3;3;N;INVERSE CIRCLED SANS-SERIF DIGIT THREE;;;; -278D;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FOUR;No;0;ON;;;4;4;N;INVERSE CIRCLED SANS-SERIF DIGIT FOUR;;;; -278E;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FIVE;No;0;ON;;;5;5;N;INVERSE CIRCLED SANS-SERIF DIGIT FIVE;;;; -278F;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SIX;No;0;ON;;;6;6;N;INVERSE CIRCLED SANS-SERIF DIGIT SIX;;;; -2790;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SEVEN;No;0;ON;;;7;7;N;INVERSE CIRCLED SANS-SERIF DIGIT SEVEN;;;; -2791;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT EIGHT;No;0;ON;;;8;8;N;INVERSE CIRCLED SANS-SERIF DIGIT EIGHT;;;; -2792;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT NINE;No;0;ON;;;9;9;N;INVERSE CIRCLED SANS-SERIF DIGIT NINE;;;; -2793;DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN;No;0;ON;;;;10;N;INVERSE CIRCLED SANS-SERIF NUMBER TEN;;;; -2794;HEAVY WIDE-HEADED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY WIDE-HEADED RIGHT ARROW;;;; -2798;HEAVY SOUTH EAST ARROW;So;0;ON;;;;;N;HEAVY LOWER RIGHT ARROW;;;; -2799;HEAVY RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY RIGHT ARROW;;;; -279A;HEAVY NORTH EAST ARROW;So;0;ON;;;;;N;HEAVY UPPER RIGHT ARROW;;;; -279B;DRAFTING POINT RIGHTWARDS ARROW;So;0;ON;;;;;N;DRAFTING POINT RIGHT ARROW;;;; -279C;HEAVY ROUND-TIPPED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY ROUND-TIPPED RIGHT ARROW;;;; -279D;TRIANGLE-HEADED RIGHTWARDS ARROW;So;0;ON;;;;;N;TRIANGLE-HEADED RIGHT ARROW;;;; -279E;HEAVY TRIANGLE-HEADED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY TRIANGLE-HEADED RIGHT ARROW;;;; -279F;DASHED TRIANGLE-HEADED RIGHTWARDS ARROW;So;0;ON;;;;;N;DASHED TRIANGLE-HEADED RIGHT ARROW;;;; -27A0;HEAVY DASHED TRIANGLE-HEADED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY DASHED TRIANGLE-HEADED RIGHT ARROW;;;; -27A1;BLACK RIGHTWARDS ARROW;So;0;ON;;;;;N;BLACK RIGHT ARROW;;;; -27A2;THREE-D TOP-LIGHTED RIGHTWARDS ARROWHEAD;So;0;ON;;;;;N;THREE-D TOP-LIGHTED RIGHT ARROWHEAD;;;; -27A3;THREE-D BOTTOM-LIGHTED RIGHTWARDS ARROWHEAD;So;0;ON;;;;;N;THREE-D BOTTOM-LIGHTED RIGHT ARROWHEAD;;;; -27A4;BLACK RIGHTWARDS ARROWHEAD;So;0;ON;;;;;N;BLACK RIGHT ARROWHEAD;;;; -27A5;HEAVY BLACK CURVED DOWNWARDS AND RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY BLACK CURVED DOWN AND RIGHT ARROW;;;; -27A6;HEAVY BLACK CURVED UPWARDS AND RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY BLACK CURVED UP AND RIGHT ARROW;;;; -27A7;SQUAT BLACK RIGHTWARDS ARROW;So;0;ON;;;;;N;SQUAT BLACK RIGHT ARROW;;;; -27A8;HEAVY CONCAVE-POINTED BLACK RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY CONCAVE-POINTED BLACK RIGHT ARROW;;;; -27A9;RIGHT-SHADED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;RIGHT-SHADED WHITE RIGHT ARROW;;;; -27AA;LEFT-SHADED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;LEFT-SHADED WHITE RIGHT ARROW;;;; -27AB;BACK-TILTED SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;BACK-TILTED SHADOWED WHITE RIGHT ARROW;;;; -27AC;FRONT-TILTED SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;FRONT-TILTED SHADOWED WHITE RIGHT ARROW;;;; -27AD;HEAVY LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY LOWER RIGHT-SHADOWED WHITE RIGHT ARROW;;;; -27AE;HEAVY UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY UPPER RIGHT-SHADOWED WHITE RIGHT ARROW;;;; -27AF;NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHT ARROW;;;; -27B1;NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHT ARROW;;;; -27B2;CIRCLED HEAVY WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;CIRCLED HEAVY WHITE RIGHT ARROW;;;; -27B3;WHITE-FEATHERED RIGHTWARDS ARROW;So;0;ON;;;;;N;WHITE-FEATHERED RIGHT ARROW;;;; -27B4;BLACK-FEATHERED SOUTH EAST ARROW;So;0;ON;;;;;N;BLACK-FEATHERED LOWER RIGHT ARROW;;;; -27B5;BLACK-FEATHERED RIGHTWARDS ARROW;So;0;ON;;;;;N;BLACK-FEATHERED RIGHT ARROW;;;; -27B6;BLACK-FEATHERED NORTH EAST ARROW;So;0;ON;;;;;N;BLACK-FEATHERED UPPER RIGHT ARROW;;;; -27B7;HEAVY BLACK-FEATHERED SOUTH EAST ARROW;So;0;ON;;;;;N;HEAVY BLACK-FEATHERED LOWER RIGHT ARROW;;;; -27B8;HEAVY BLACK-FEATHERED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY BLACK-FEATHERED RIGHT ARROW;;;; -27B9;HEAVY BLACK-FEATHERED NORTH EAST ARROW;So;0;ON;;;;;N;HEAVY BLACK-FEATHERED UPPER RIGHT ARROW;;;; -27BA;TEARDROP-BARBED RIGHTWARDS ARROW;So;0;ON;;;;;N;TEARDROP-BARBED RIGHT ARROW;;;; -27BB;HEAVY TEARDROP-SHANKED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY TEARDROP-SHANKED RIGHT ARROW;;;; -27BC;WEDGE-TAILED RIGHTWARDS ARROW;So;0;ON;;;;;N;WEDGE-TAILED RIGHT ARROW;;;; -27BD;HEAVY WEDGE-TAILED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY WEDGE-TAILED RIGHT ARROW;;;; -27BE;OPEN-OUTLINED RIGHTWARDS ARROW;So;0;ON;;;;;N;OPEN-OUTLINED RIGHT ARROW;;;; -27C0;THREE DIMENSIONAL ANGLE;Sm;0;ON;;;;;Y;;;;; -27C1;WHITE TRIANGLE CONTAINING SMALL WHITE TRIANGLE;Sm;0;ON;;;;;N;;;;; -27C2;PERPENDICULAR;Sm;0;ON;;;;;N;;;;; -27C3;OPEN SUBSET;Sm;0;ON;;;;;Y;;;;; -27C4;OPEN SUPERSET;Sm;0;ON;;;;;Y;;;;; -27C5;LEFT S-SHAPED BAG DELIMITER;Ps;0;ON;;;;;Y;;;;; -27C6;RIGHT S-SHAPED BAG DELIMITER;Pe;0;ON;;;;;Y;;;;; -27C7;OR WITH DOT INSIDE;Sm;0;ON;;;;;N;;;;; -27C8;REVERSE SOLIDUS PRECEDING SUBSET;Sm;0;ON;;;;;Y;;;;; -27C9;SUPERSET PRECEDING SOLIDUS;Sm;0;ON;;;;;Y;;;;; -27CA;VERTICAL BAR WITH HORIZONTAL STROKE;Sm;0;ON;;;;;N;;;;; -27CC;LONG DIVISION;Sm;0;ON;;;;;Y;;;;; -27D0;WHITE DIAMOND WITH CENTRED DOT;Sm;0;ON;;;;;N;;;;; -27D1;AND WITH DOT;Sm;0;ON;;;;;N;;;;; -27D2;ELEMENT OF OPENING UPWARDS;Sm;0;ON;;;;;N;;;;; -27D3;LOWER RIGHT CORNER WITH DOT;Sm;0;ON;;;;;Y;;;;; -27D4;UPPER LEFT CORNER WITH DOT;Sm;0;ON;;;;;Y;;;;; -27D5;LEFT OUTER JOIN;Sm;0;ON;;;;;Y;;;;; -27D6;RIGHT OUTER JOIN;Sm;0;ON;;;;;Y;;;;; -27D7;FULL OUTER JOIN;Sm;0;ON;;;;;N;;;;; -27D8;LARGE UP TACK;Sm;0;ON;;;;;N;;;;; -27D9;LARGE DOWN TACK;Sm;0;ON;;;;;N;;;;; -27DA;LEFT AND RIGHT DOUBLE TURNSTILE;Sm;0;ON;;;;;N;;;;; -27DB;LEFT AND RIGHT TACK;Sm;0;ON;;;;;N;;;;; -27DC;LEFT MULTIMAP;Sm;0;ON;;;;;Y;;;;; -27DD;LONG RIGHT TACK;Sm;0;ON;;;;;Y;;;;; -27DE;LONG LEFT TACK;Sm;0;ON;;;;;Y;;;;; -27DF;UP TACK WITH CIRCLE ABOVE;Sm;0;ON;;;;;N;;;;; -27E0;LOZENGE DIVIDED BY HORIZONTAL RULE;Sm;0;ON;;;;;N;;;;; -27E1;WHITE CONCAVE-SIDED DIAMOND;Sm;0;ON;;;;;N;;;;; -27E2;WHITE CONCAVE-SIDED DIAMOND WITH LEFTWARDS TICK;Sm;0;ON;;;;;Y;;;;; -27E3;WHITE CONCAVE-SIDED DIAMOND WITH RIGHTWARDS TICK;Sm;0;ON;;;;;Y;;;;; -27E4;WHITE SQUARE WITH LEFTWARDS TICK;Sm;0;ON;;;;;Y;;;;; -27E5;WHITE SQUARE WITH RIGHTWARDS TICK;Sm;0;ON;;;;;Y;;;;; -27E6;MATHEMATICAL LEFT WHITE SQUARE BRACKET;Ps;0;ON;;;;;Y;;;;; -27E7;MATHEMATICAL RIGHT WHITE SQUARE BRACKET;Pe;0;ON;;;;;Y;;;;; -27E8;MATHEMATICAL LEFT ANGLE BRACKET;Ps;0;ON;;;;;Y;;;;; -27E9;MATHEMATICAL RIGHT ANGLE BRACKET;Pe;0;ON;;;;;Y;;;;; -27EA;MATHEMATICAL LEFT DOUBLE ANGLE BRACKET;Ps;0;ON;;;;;Y;;;;; -27EB;MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET;Pe;0;ON;;;;;Y;;;;; -27EC;MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET;Ps;0;ON;;;;;Y;;;;; -27ED;MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET;Pe;0;ON;;;;;Y;;;;; -27EE;MATHEMATICAL LEFT FLATTENED PARENTHESIS;Ps;0;ON;;;;;Y;;;;; -27EF;MATHEMATICAL RIGHT FLATTENED PARENTHESIS;Pe;0;ON;;;;;Y;;;;; -27F0;UPWARDS QUADRUPLE ARROW;Sm;0;ON;;;;;N;;;;; -27F1;DOWNWARDS QUADRUPLE ARROW;Sm;0;ON;;;;;N;;;;; -27F2;ANTICLOCKWISE GAPPED CIRCLE ARROW;Sm;0;ON;;;;;N;;;;; -27F3;CLOCKWISE GAPPED CIRCLE ARROW;Sm;0;ON;;;;;N;;;;; -27F4;RIGHT ARROW WITH CIRCLED PLUS;Sm;0;ON;;;;;N;;;;; -27F5;LONG LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;; -27F6;LONG RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;; -27F7;LONG LEFT RIGHT ARROW;Sm;0;ON;;;;;N;;;;; -27F8;LONG LEFTWARDS DOUBLE ARROW;Sm;0;ON;;;;;N;;;;; -27F9;LONG RIGHTWARDS DOUBLE ARROW;Sm;0;ON;;;;;N;;;;; -27FA;LONG LEFT RIGHT DOUBLE ARROW;Sm;0;ON;;;;;N;;;;; -27FB;LONG LEFTWARDS ARROW FROM BAR;Sm;0;ON;;;;;N;;;;; -27FC;LONG RIGHTWARDS ARROW FROM BAR;Sm;0;ON;;;;;N;;;;; -27FD;LONG LEFTWARDS DOUBLE ARROW FROM BAR;Sm;0;ON;;;;;N;;;;; -27FE;LONG RIGHTWARDS DOUBLE ARROW FROM BAR;Sm;0;ON;;;;;N;;;;; -27FF;LONG RIGHTWARDS SQUIGGLE ARROW;Sm;0;ON;;;;;N;;;;; -2800;BRAILLE PATTERN BLANK;So;0;L;;;;;N;;;;; -2801;BRAILLE PATTERN DOTS-1;So;0;L;;;;;N;;;;; -2802;BRAILLE PATTERN DOTS-2;So;0;L;;;;;N;;;;; -2803;BRAILLE PATTERN DOTS-12;So;0;L;;;;;N;;;;; -2804;BRAILLE PATTERN DOTS-3;So;0;L;;;;;N;;;;; -2805;BRAILLE PATTERN DOTS-13;So;0;L;;;;;N;;;;; -2806;BRAILLE PATTERN DOTS-23;So;0;L;;;;;N;;;;; -2807;BRAILLE PATTERN DOTS-123;So;0;L;;;;;N;;;;; -2808;BRAILLE PATTERN DOTS-4;So;0;L;;;;;N;;;;; -2809;BRAILLE PATTERN DOTS-14;So;0;L;;;;;N;;;;; -280A;BRAILLE PATTERN DOTS-24;So;0;L;;;;;N;;;;; -280B;BRAILLE PATTERN DOTS-124;So;0;L;;;;;N;;;;; -280C;BRAILLE PATTERN DOTS-34;So;0;L;;;;;N;;;;; -280D;BRAILLE PATTERN DOTS-134;So;0;L;;;;;N;;;;; -280E;BRAILLE PATTERN DOTS-234;So;0;L;;;;;N;;;;; -280F;BRAILLE PATTERN DOTS-1234;So;0;L;;;;;N;;;;; -2810;BRAILLE PATTERN DOTS-5;So;0;L;;;;;N;;;;; -2811;BRAILLE PATTERN DOTS-15;So;0;L;;;;;N;;;;; -2812;BRAILLE PATTERN DOTS-25;So;0;L;;;;;N;;;;; -2813;BRAILLE PATTERN DOTS-125;So;0;L;;;;;N;;;;; -2814;BRAILLE PATTERN DOTS-35;So;0;L;;;;;N;;;;; -2815;BRAILLE PATTERN DOTS-135;So;0;L;;;;;N;;;;; -2816;BRAILLE PATTERN DOTS-235;So;0;L;;;;;N;;;;; -2817;BRAILLE PATTERN DOTS-1235;So;0;L;;;;;N;;;;; -2818;BRAILLE PATTERN DOTS-45;So;0;L;;;;;N;;;;; -2819;BRAILLE PATTERN DOTS-145;So;0;L;;;;;N;;;;; -281A;BRAILLE PATTERN DOTS-245;So;0;L;;;;;N;;;;; -281B;BRAILLE PATTERN DOTS-1245;So;0;L;;;;;N;;;;; -281C;BRAILLE PATTERN DOTS-345;So;0;L;;;;;N;;;;; -281D;BRAILLE PATTERN DOTS-1345;So;0;L;;;;;N;;;;; -281E;BRAILLE PATTERN DOTS-2345;So;0;L;;;;;N;;;;; -281F;BRAILLE PATTERN DOTS-12345;So;0;L;;;;;N;;;;; -2820;BRAILLE PATTERN DOTS-6;So;0;L;;;;;N;;;;; -2821;BRAILLE PATTERN DOTS-16;So;0;L;;;;;N;;;;; -2822;BRAILLE PATTERN DOTS-26;So;0;L;;;;;N;;;;; -2823;BRAILLE PATTERN DOTS-126;So;0;L;;;;;N;;;;; -2824;BRAILLE PATTERN DOTS-36;So;0;L;;;;;N;;;;; -2825;BRAILLE PATTERN DOTS-136;So;0;L;;;;;N;;;;; -2826;BRAILLE PATTERN DOTS-236;So;0;L;;;;;N;;;;; -2827;BRAILLE PATTERN DOTS-1236;So;0;L;;;;;N;;;;; -2828;BRAILLE PATTERN DOTS-46;So;0;L;;;;;N;;;;; -2829;BRAILLE PATTERN DOTS-146;So;0;L;;;;;N;;;;; -282A;BRAILLE PATTERN DOTS-246;So;0;L;;;;;N;;;;; -282B;BRAILLE PATTERN DOTS-1246;So;0;L;;;;;N;;;;; -282C;BRAILLE PATTERN DOTS-346;So;0;L;;;;;N;;;;; -282D;BRAILLE PATTERN DOTS-1346;So;0;L;;;;;N;;;;; -282E;BRAILLE PATTERN DOTS-2346;So;0;L;;;;;N;;;;; -282F;BRAILLE PATTERN DOTS-12346;So;0;L;;;;;N;;;;; -2830;BRAILLE PATTERN DOTS-56;So;0;L;;;;;N;;;;; -2831;BRAILLE PATTERN DOTS-156;So;0;L;;;;;N;;;;; -2832;BRAILLE PATTERN DOTS-256;So;0;L;;;;;N;;;;; -2833;BRAILLE PATTERN DOTS-1256;So;0;L;;;;;N;;;;; -2834;BRAILLE PATTERN DOTS-356;So;0;L;;;;;N;;;;; -2835;BRAILLE PATTERN DOTS-1356;So;0;L;;;;;N;;;;; -2836;BRAILLE PATTERN DOTS-2356;So;0;L;;;;;N;;;;; -2837;BRAILLE PATTERN DOTS-12356;So;0;L;;;;;N;;;;; -2838;BRAILLE PATTERN DOTS-456;So;0;L;;;;;N;;;;; -2839;BRAILLE PATTERN DOTS-1456;So;0;L;;;;;N;;;;; -283A;BRAILLE PATTERN DOTS-2456;So;0;L;;;;;N;;;;; -283B;BRAILLE PATTERN DOTS-12456;So;0;L;;;;;N;;;;; -283C;BRAILLE PATTERN DOTS-3456;So;0;L;;;;;N;;;;; -283D;BRAILLE PATTERN DOTS-13456;So;0;L;;;;;N;;;;; -283E;BRAILLE PATTERN DOTS-23456;So;0;L;;;;;N;;;;; -283F;BRAILLE PATTERN DOTS-123456;So;0;L;;;;;N;;;;; -2840;BRAILLE PATTERN DOTS-7;So;0;L;;;;;N;;;;; -2841;BRAILLE PATTERN DOTS-17;So;0;L;;;;;N;;;;; -2842;BRAILLE PATTERN DOTS-27;So;0;L;;;;;N;;;;; -2843;BRAILLE PATTERN DOTS-127;So;0;L;;;;;N;;;;; -2844;BRAILLE PATTERN DOTS-37;So;0;L;;;;;N;;;;; -2845;BRAILLE PATTERN DOTS-137;So;0;L;;;;;N;;;;; -2846;BRAILLE PATTERN DOTS-237;So;0;L;;;;;N;;;;; -2847;BRAILLE PATTERN DOTS-1237;So;0;L;;;;;N;;;;; -2848;BRAILLE PATTERN DOTS-47;So;0;L;;;;;N;;;;; -2849;BRAILLE PATTERN DOTS-147;So;0;L;;;;;N;;;;; -284A;BRAILLE PATTERN DOTS-247;So;0;L;;;;;N;;;;; -284B;BRAILLE PATTERN DOTS-1247;So;0;L;;;;;N;;;;; -284C;BRAILLE PATTERN DOTS-347;So;0;L;;;;;N;;;;; -284D;BRAILLE PATTERN DOTS-1347;So;0;L;;;;;N;;;;; -284E;BRAILLE PATTERN DOTS-2347;So;0;L;;;;;N;;;;; -284F;BRAILLE PATTERN DOTS-12347;So;0;L;;;;;N;;;;; -2850;BRAILLE PATTERN DOTS-57;So;0;L;;;;;N;;;;; -2851;BRAILLE PATTERN DOTS-157;So;0;L;;;;;N;;;;; -2852;BRAILLE PATTERN DOTS-257;So;0;L;;;;;N;;;;; -2853;BRAILLE PATTERN DOTS-1257;So;0;L;;;;;N;;;;; -2854;BRAILLE PATTERN DOTS-357;So;0;L;;;;;N;;;;; -2855;BRAILLE PATTERN DOTS-1357;So;0;L;;;;;N;;;;; -2856;BRAILLE PATTERN DOTS-2357;So;0;L;;;;;N;;;;; -2857;BRAILLE PATTERN DOTS-12357;So;0;L;;;;;N;;;;; -2858;BRAILLE PATTERN DOTS-457;So;0;L;;;;;N;;;;; -2859;BRAILLE PATTERN DOTS-1457;So;0;L;;;;;N;;;;; -285A;BRAILLE PATTERN DOTS-2457;So;0;L;;;;;N;;;;; -285B;BRAILLE PATTERN DOTS-12457;So;0;L;;;;;N;;;;; -285C;BRAILLE PATTERN DOTS-3457;So;0;L;;;;;N;;;;; -285D;BRAILLE PATTERN DOTS-13457;So;0;L;;;;;N;;;;; -285E;BRAILLE PATTERN DOTS-23457;So;0;L;;;;;N;;;;; -285F;BRAILLE PATTERN DOTS-123457;So;0;L;;;;;N;;;;; -2860;BRAILLE PATTERN DOTS-67;So;0;L;;;;;N;;;;; -2861;BRAILLE PATTERN DOTS-167;So;0;L;;;;;N;;;;; -2862;BRAILLE PATTERN DOTS-267;So;0;L;;;;;N;;;;; -2863;BRAILLE PATTERN DOTS-1267;So;0;L;;;;;N;;;;; -2864;BRAILLE PATTERN DOTS-367;So;0;L;;;;;N;;;;; -2865;BRAILLE PATTERN DOTS-1367;So;0;L;;;;;N;;;;; -2866;BRAILLE PATTERN DOTS-2367;So;0;L;;;;;N;;;;; -2867;BRAILLE PATTERN DOTS-12367;So;0;L;;;;;N;;;;; -2868;BRAILLE PATTERN DOTS-467;So;0;L;;;;;N;;;;; -2869;BRAILLE PATTERN DOTS-1467;So;0;L;;;;;N;;;;; -286A;BRAILLE PATTERN DOTS-2467;So;0;L;;;;;N;;;;; -286B;BRAILLE PATTERN DOTS-12467;So;0;L;;;;;N;;;;; -286C;BRAILLE PATTERN DOTS-3467;So;0;L;;;;;N;;;;; -286D;BRAILLE PATTERN DOTS-13467;So;0;L;;;;;N;;;;; -286E;BRAILLE PATTERN DOTS-23467;So;0;L;;;;;N;;;;; -286F;BRAILLE PATTERN DOTS-123467;So;0;L;;;;;N;;;;; -2870;BRAILLE PATTERN DOTS-567;So;0;L;;;;;N;;;;; -2871;BRAILLE PATTERN DOTS-1567;So;0;L;;;;;N;;;;; -2872;BRAILLE PATTERN DOTS-2567;So;0;L;;;;;N;;;;; -2873;BRAILLE PATTERN DOTS-12567;So;0;L;;;;;N;;;;; -2874;BRAILLE PATTERN DOTS-3567;So;0;L;;;;;N;;;;; -2875;BRAILLE PATTERN DOTS-13567;So;0;L;;;;;N;;;;; -2876;BRAILLE PATTERN DOTS-23567;So;0;L;;;;;N;;;;; -2877;BRAILLE PATTERN DOTS-123567;So;0;L;;;;;N;;;;; -2878;BRAILLE PATTERN DOTS-4567;So;0;L;;;;;N;;;;; -2879;BRAILLE PATTERN DOTS-14567;So;0;L;;;;;N;;;;; -287A;BRAILLE PATTERN DOTS-24567;So;0;L;;;;;N;;;;; -287B;BRAILLE PATTERN DOTS-124567;So;0;L;;;;;N;;;;; -287C;BRAILLE PATTERN DOTS-34567;So;0;L;;;;;N;;;;; -287D;BRAILLE PATTERN DOTS-134567;So;0;L;;;;;N;;;;; -287E;BRAILLE PATTERN DOTS-234567;So;0;L;;;;;N;;;;; -287F;BRAILLE PATTERN DOTS-1234567;So;0;L;;;;;N;;;;; -2880;BRAILLE PATTERN DOTS-8;So;0;L;;;;;N;;;;; -2881;BRAILLE PATTERN DOTS-18;So;0;L;;;;;N;;;;; -2882;BRAILLE PATTERN DOTS-28;So;0;L;;;;;N;;;;; -2883;BRAILLE PATTERN DOTS-128;So;0;L;;;;;N;;;;; -2884;BRAILLE PATTERN DOTS-38;So;0;L;;;;;N;;;;; -2885;BRAILLE PATTERN DOTS-138;So;0;L;;;;;N;;;;; -2886;BRAILLE PATTERN DOTS-238;So;0;L;;;;;N;;;;; -2887;BRAILLE PATTERN DOTS-1238;So;0;L;;;;;N;;;;; -2888;BRAILLE PATTERN DOTS-48;So;0;L;;;;;N;;;;; -2889;BRAILLE PATTERN DOTS-148;So;0;L;;;;;N;;;;; -288A;BRAILLE PATTERN DOTS-248;So;0;L;;;;;N;;;;; -288B;BRAILLE PATTERN DOTS-1248;So;0;L;;;;;N;;;;; -288C;BRAILLE PATTERN DOTS-348;So;0;L;;;;;N;;;;; -288D;BRAILLE PATTERN DOTS-1348;So;0;L;;;;;N;;;;; -288E;BRAILLE PATTERN DOTS-2348;So;0;L;;;;;N;;;;; -288F;BRAILLE PATTERN DOTS-12348;So;0;L;;;;;N;;;;; -2890;BRAILLE PATTERN DOTS-58;So;0;L;;;;;N;;;;; -2891;BRAILLE PATTERN DOTS-158;So;0;L;;;;;N;;;;; -2892;BRAILLE PATTERN DOTS-258;So;0;L;;;;;N;;;;; -2893;BRAILLE PATTERN DOTS-1258;So;0;L;;;;;N;;;;; -2894;BRAILLE PATTERN DOTS-358;So;0;L;;;;;N;;;;; -2895;BRAILLE PATTERN DOTS-1358;So;0;L;;;;;N;;;;; -2896;BRAILLE PATTERN DOTS-2358;So;0;L;;;;;N;;;;; -2897;BRAILLE PATTERN DOTS-12358;So;0;L;;;;;N;;;;; -2898;BRAILLE PATTERN DOTS-458;So;0;L;;;;;N;;;;; -2899;BRAILLE PATTERN DOTS-1458;So;0;L;;;;;N;;;;; -289A;BRAILLE PATTERN DOTS-2458;So;0;L;;;;;N;;;;; -289B;BRAILLE PATTERN DOTS-12458;So;0;L;;;;;N;;;;; -289C;BRAILLE PATTERN DOTS-3458;So;0;L;;;;;N;;;;; -289D;BRAILLE PATTERN DOTS-13458;So;0;L;;;;;N;;;;; -289E;BRAILLE PATTERN DOTS-23458;So;0;L;;;;;N;;;;; -289F;BRAILLE PATTERN DOTS-123458;So;0;L;;;;;N;;;;; -28A0;BRAILLE PATTERN DOTS-68;So;0;L;;;;;N;;;;; -28A1;BRAILLE PATTERN DOTS-168;So;0;L;;;;;N;;;;; -28A2;BRAILLE PATTERN DOTS-268;So;0;L;;;;;N;;;;; -28A3;BRAILLE PATTERN DOTS-1268;So;0;L;;;;;N;;;;; -28A4;BRAILLE PATTERN DOTS-368;So;0;L;;;;;N;;;;; -28A5;BRAILLE PATTERN DOTS-1368;So;0;L;;;;;N;;;;; -28A6;BRAILLE PATTERN DOTS-2368;So;0;L;;;;;N;;;;; -28A7;BRAILLE PATTERN DOTS-12368;So;0;L;;;;;N;;;;; -28A8;BRAILLE PATTERN DOTS-468;So;0;L;;;;;N;;;;; -28A9;BRAILLE PATTERN DOTS-1468;So;0;L;;;;;N;;;;; -28AA;BRAILLE PATTERN DOTS-2468;So;0;L;;;;;N;;;;; -28AB;BRAILLE PATTERN DOTS-12468;So;0;L;;;;;N;;;;; -28AC;BRAILLE PATTERN DOTS-3468;So;0;L;;;;;N;;;;; -28AD;BRAILLE PATTERN DOTS-13468;So;0;L;;;;;N;;;;; -28AE;BRAILLE PATTERN DOTS-23468;So;0;L;;;;;N;;;;; -28AF;BRAILLE PATTERN DOTS-123468;So;0;L;;;;;N;;;;; -28B0;BRAILLE PATTERN DOTS-568;So;0;L;;;;;N;;;;; -28B1;BRAILLE PATTERN DOTS-1568;So;0;L;;;;;N;;;;; -28B2;BRAILLE PATTERN DOTS-2568;So;0;L;;;;;N;;;;; -28B3;BRAILLE PATTERN DOTS-12568;So;0;L;;;;;N;;;;; -28B4;BRAILLE PATTERN DOTS-3568;So;0;L;;;;;N;;;;; -28B5;BRAILLE PATTERN DOTS-13568;So;0;L;;;;;N;;;;; -28B6;BRAILLE PATTERN DOTS-23568;So;0;L;;;;;N;;;;; -28B7;BRAILLE PATTERN DOTS-123568;So;0;L;;;;;N;;;;; -28B8;BRAILLE PATTERN DOTS-4568;So;0;L;;;;;N;;;;; -28B9;BRAILLE PATTERN DOTS-14568;So;0;L;;;;;N;;;;; -28BA;BRAILLE PATTERN DOTS-24568;So;0;L;;;;;N;;;;; -28BB;BRAILLE PATTERN DOTS-124568;So;0;L;;;;;N;;;;; -28BC;BRAILLE PATTERN DOTS-34568;So;0;L;;;;;N;;;;; -28BD;BRAILLE PATTERN DOTS-134568;So;0;L;;;;;N;;;;; -28BE;BRAILLE PATTERN DOTS-234568;So;0;L;;;;;N;;;;; -28BF;BRAILLE PATTERN DOTS-1234568;So;0;L;;;;;N;;;;; -28C0;BRAILLE PATTERN DOTS-78;So;0;L;;;;;N;;;;; -28C1;BRAILLE PATTERN DOTS-178;So;0;L;;;;;N;;;;; -28C2;BRAILLE PATTERN DOTS-278;So;0;L;;;;;N;;;;; -28C3;BRAILLE PATTERN DOTS-1278;So;0;L;;;;;N;;;;; -28C4;BRAILLE PATTERN DOTS-378;So;0;L;;;;;N;;;;; -28C5;BRAILLE PATTERN DOTS-1378;So;0;L;;;;;N;;;;; -28C6;BRAILLE PATTERN DOTS-2378;So;0;L;;;;;N;;;;; -28C7;BRAILLE PATTERN DOTS-12378;So;0;L;;;;;N;;;;; -28C8;BRAILLE PATTERN DOTS-478;So;0;L;;;;;N;;;;; -28C9;BRAILLE PATTERN DOTS-1478;So;0;L;;;;;N;;;;; -28CA;BRAILLE PATTERN DOTS-2478;So;0;L;;;;;N;;;;; -28CB;BRAILLE PATTERN DOTS-12478;So;0;L;;;;;N;;;;; -28CC;BRAILLE PATTERN DOTS-3478;So;0;L;;;;;N;;;;; -28CD;BRAILLE PATTERN DOTS-13478;So;0;L;;;;;N;;;;; -28CE;BRAILLE PATTERN DOTS-23478;So;0;L;;;;;N;;;;; -28CF;BRAILLE PATTERN DOTS-123478;So;0;L;;;;;N;;;;; -28D0;BRAILLE PATTERN DOTS-578;So;0;L;;;;;N;;;;; -28D1;BRAILLE PATTERN DOTS-1578;So;0;L;;;;;N;;;;; -28D2;BRAILLE PATTERN DOTS-2578;So;0;L;;;;;N;;;;; -28D3;BRAILLE PATTERN DOTS-12578;So;0;L;;;;;N;;;;; -28D4;BRAILLE PATTERN DOTS-3578;So;0;L;;;;;N;;;;; -28D5;BRAILLE PATTERN DOTS-13578;So;0;L;;;;;N;;;;; -28D6;BRAILLE PATTERN DOTS-23578;So;0;L;;;;;N;;;;; -28D7;BRAILLE PATTERN DOTS-123578;So;0;L;;;;;N;;;;; -28D8;BRAILLE PATTERN DOTS-4578;So;0;L;;;;;N;;;;; -28D9;BRAILLE PATTERN DOTS-14578;So;0;L;;;;;N;;;;; -28DA;BRAILLE PATTERN DOTS-24578;So;0;L;;;;;N;;;;; -28DB;BRAILLE PATTERN DOTS-124578;So;0;L;;;;;N;;;;; -28DC;BRAILLE PATTERN DOTS-34578;So;0;L;;;;;N;;;;; -28DD;BRAILLE PATTERN DOTS-134578;So;0;L;;;;;N;;;;; -28DE;BRAILLE PATTERN DOTS-234578;So;0;L;;;;;N;;;;; -28DF;BRAILLE PATTERN DOTS-1234578;So;0;L;;;;;N;;;;; -28E0;BRAILLE PATTERN DOTS-678;So;0;L;;;;;N;;;;; -28E1;BRAILLE PATTERN DOTS-1678;So;0;L;;;;;N;;;;; -28E2;BRAILLE PATTERN DOTS-2678;So;0;L;;;;;N;;;;; -28E3;BRAILLE PATTERN DOTS-12678;So;0;L;;;;;N;;;;; -28E4;BRAILLE PATTERN DOTS-3678;So;0;L;;;;;N;;;;; -28E5;BRAILLE PATTERN DOTS-13678;So;0;L;;;;;N;;;;; -28E6;BRAILLE PATTERN DOTS-23678;So;0;L;;;;;N;;;;; -28E7;BRAILLE PATTERN DOTS-123678;So;0;L;;;;;N;;;;; -28E8;BRAILLE PATTERN DOTS-4678;So;0;L;;;;;N;;;;; -28E9;BRAILLE PATTERN DOTS-14678;So;0;L;;;;;N;;;;; -28EA;BRAILLE PATTERN DOTS-24678;So;0;L;;;;;N;;;;; -28EB;BRAILLE PATTERN DOTS-124678;So;0;L;;;;;N;;;;; -28EC;BRAILLE PATTERN DOTS-34678;So;0;L;;;;;N;;;;; -28ED;BRAILLE PATTERN DOTS-134678;So;0;L;;;;;N;;;;; -28EE;BRAILLE PATTERN DOTS-234678;So;0;L;;;;;N;;;;; -28EF;BRAILLE PATTERN DOTS-1234678;So;0;L;;;;;N;;;;; -28F0;BRAILLE PATTERN DOTS-5678;So;0;L;;;;;N;;;;; -28F1;BRAILLE PATTERN DOTS-15678;So;0;L;;;;;N;;;;; -28F2;BRAILLE PATTERN DOTS-25678;So;0;L;;;;;N;;;;; -28F3;BRAILLE PATTERN DOTS-125678;So;0;L;;;;;N;;;;; -28F4;BRAILLE PATTERN DOTS-35678;So;0;L;;;;;N;;;;; -28F5;BRAILLE PATTERN DOTS-135678;So;0;L;;;;;N;;;;; -28F6;BRAILLE PATTERN DOTS-235678;So;0;L;;;;;N;;;;; -28F7;BRAILLE PATTERN DOTS-1235678;So;0;L;;;;;N;;;;; -28F8;BRAILLE PATTERN DOTS-45678;So;0;L;;;;;N;;;;; -28F9;BRAILLE PATTERN DOTS-145678;So;0;L;;;;;N;;;;; -28FA;BRAILLE PATTERN DOTS-245678;So;0;L;;;;;N;;;;; -28FB;BRAILLE PATTERN DOTS-1245678;So;0;L;;;;;N;;;;; -28FC;BRAILLE PATTERN DOTS-345678;So;0;L;;;;;N;;;;; -28FD;BRAILLE PATTERN DOTS-1345678;So;0;L;;;;;N;;;;; -28FE;BRAILLE PATTERN DOTS-2345678;So;0;L;;;;;N;;;;; -28FF;BRAILLE PATTERN DOTS-12345678;So;0;L;;;;;N;;;;; -2900;RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; -2901;RIGHTWARDS TWO-HEADED ARROW WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; -2902;LEFTWARDS DOUBLE ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; -2903;RIGHTWARDS DOUBLE ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; -2904;LEFT RIGHT DOUBLE ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; -2905;RIGHTWARDS TWO-HEADED ARROW FROM BAR;Sm;0;ON;;;;;N;;;;; -2906;LEFTWARDS DOUBLE ARROW FROM BAR;Sm;0;ON;;;;;N;;;;; -2907;RIGHTWARDS DOUBLE ARROW FROM BAR;Sm;0;ON;;;;;N;;;;; -2908;DOWNWARDS ARROW WITH HORIZONTAL STROKE;Sm;0;ON;;;;;N;;;;; -2909;UPWARDS ARROW WITH HORIZONTAL STROKE;Sm;0;ON;;;;;N;;;;; -290A;UPWARDS TRIPLE ARROW;Sm;0;ON;;;;;N;;;;; -290B;DOWNWARDS TRIPLE ARROW;Sm;0;ON;;;;;N;;;;; -290C;LEFTWARDS DOUBLE DASH ARROW;Sm;0;ON;;;;;N;;;;; -290D;RIGHTWARDS DOUBLE DASH ARROW;Sm;0;ON;;;;;N;;;;; -290E;LEFTWARDS TRIPLE DASH ARROW;Sm;0;ON;;;;;N;;;;; -290F;RIGHTWARDS TRIPLE DASH ARROW;Sm;0;ON;;;;;N;;;;; -2910;RIGHTWARDS TWO-HEADED TRIPLE DASH ARROW;Sm;0;ON;;;;;N;;;;; -2911;RIGHTWARDS ARROW WITH DOTTED STEM;Sm;0;ON;;;;;N;;;;; -2912;UPWARDS ARROW TO BAR;Sm;0;ON;;;;;N;;;;; -2913;DOWNWARDS ARROW TO BAR;Sm;0;ON;;;;;N;;;;; -2914;RIGHTWARDS ARROW WITH TAIL WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; -2915;RIGHTWARDS ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; -2916;RIGHTWARDS TWO-HEADED ARROW WITH TAIL;Sm;0;ON;;;;;N;;;;; -2917;RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; -2918;RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; -2919;LEFTWARDS ARROW-TAIL;Sm;0;ON;;;;;N;;;;; -291A;RIGHTWARDS ARROW-TAIL;Sm;0;ON;;;;;N;;;;; -291B;LEFTWARDS DOUBLE ARROW-TAIL;Sm;0;ON;;;;;N;;;;; -291C;RIGHTWARDS DOUBLE ARROW-TAIL;Sm;0;ON;;;;;N;;;;; -291D;LEFTWARDS ARROW TO BLACK DIAMOND;Sm;0;ON;;;;;N;;;;; -291E;RIGHTWARDS ARROW TO BLACK DIAMOND;Sm;0;ON;;;;;N;;;;; -291F;LEFTWARDS ARROW FROM BAR TO BLACK DIAMOND;Sm;0;ON;;;;;N;;;;; -2920;RIGHTWARDS ARROW FROM BAR TO BLACK DIAMOND;Sm;0;ON;;;;;N;;;;; -2921;NORTH WEST AND SOUTH EAST ARROW;Sm;0;ON;;;;;N;;;;; -2922;NORTH EAST AND SOUTH WEST ARROW;Sm;0;ON;;;;;N;;;;; -2923;NORTH WEST ARROW WITH HOOK;Sm;0;ON;;;;;N;;;;; -2924;NORTH EAST ARROW WITH HOOK;Sm;0;ON;;;;;N;;;;; -2925;SOUTH EAST ARROW WITH HOOK;Sm;0;ON;;;;;N;;;;; -2926;SOUTH WEST ARROW WITH HOOK;Sm;0;ON;;;;;N;;;;; -2927;NORTH WEST ARROW AND NORTH EAST ARROW;Sm;0;ON;;;;;N;;;;; -2928;NORTH EAST ARROW AND SOUTH EAST ARROW;Sm;0;ON;;;;;N;;;;; -2929;SOUTH EAST ARROW AND SOUTH WEST ARROW;Sm;0;ON;;;;;N;;;;; -292A;SOUTH WEST ARROW AND NORTH WEST ARROW;Sm;0;ON;;;;;N;;;;; -292B;RISING DIAGONAL CROSSING FALLING DIAGONAL;Sm;0;ON;;;;;N;;;;; -292C;FALLING DIAGONAL CROSSING RISING DIAGONAL;Sm;0;ON;;;;;N;;;;; -292D;SOUTH EAST ARROW CROSSING NORTH EAST ARROW;Sm;0;ON;;;;;N;;;;; -292E;NORTH EAST ARROW CROSSING SOUTH EAST ARROW;Sm;0;ON;;;;;N;;;;; -292F;FALLING DIAGONAL CROSSING NORTH EAST ARROW;Sm;0;ON;;;;;N;;;;; -2930;RISING DIAGONAL CROSSING SOUTH EAST ARROW;Sm;0;ON;;;;;N;;;;; -2931;NORTH EAST ARROW CROSSING NORTH WEST ARROW;Sm;0;ON;;;;;N;;;;; -2932;NORTH WEST ARROW CROSSING NORTH EAST ARROW;Sm;0;ON;;;;;N;;;;; -2933;WAVE ARROW POINTING DIRECTLY RIGHT;Sm;0;ON;;;;;N;;;;; -2934;ARROW POINTING RIGHTWARDS THEN CURVING UPWARDS;Sm;0;ON;;;;;N;;;;; -2935;ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS;Sm;0;ON;;;;;N;;;;; -2936;ARROW POINTING DOWNWARDS THEN CURVING LEFTWARDS;Sm;0;ON;;;;;N;;;;; -2937;ARROW POINTING DOWNWARDS THEN CURVING RIGHTWARDS;Sm;0;ON;;;;;N;;;;; -2938;RIGHT-SIDE ARC CLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;; -2939;LEFT-SIDE ARC ANTICLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;; -293A;TOP ARC ANTICLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;; -293B;BOTTOM ARC ANTICLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;; -293C;TOP ARC CLOCKWISE ARROW WITH MINUS;Sm;0;ON;;;;;N;;;;; -293D;TOP ARC ANTICLOCKWISE ARROW WITH PLUS;Sm;0;ON;;;;;N;;;;; -293E;LOWER RIGHT SEMICIRCULAR CLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;; -293F;LOWER LEFT SEMICIRCULAR ANTICLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;; -2940;ANTICLOCKWISE CLOSED CIRCLE ARROW;Sm;0;ON;;;;;N;;;;; -2941;CLOCKWISE CLOSED CIRCLE ARROW;Sm;0;ON;;;;;N;;;;; -2942;RIGHTWARDS ARROW ABOVE SHORT LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;; -2943;LEFTWARDS ARROW ABOVE SHORT RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;; -2944;SHORT RIGHTWARDS ARROW ABOVE LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;; -2945;RIGHTWARDS ARROW WITH PLUS BELOW;Sm;0;ON;;;;;N;;;;; -2946;LEFTWARDS ARROW WITH PLUS BELOW;Sm;0;ON;;;;;N;;;;; -2947;RIGHTWARDS ARROW THROUGH X;Sm;0;ON;;;;;N;;;;; -2948;LEFT RIGHT ARROW THROUGH SMALL CIRCLE;Sm;0;ON;;;;;N;;;;; -2949;UPWARDS TWO-HEADED ARROW FROM SMALL CIRCLE;Sm;0;ON;;;;;N;;;;; -294A;LEFT BARB UP RIGHT BARB DOWN HARPOON;Sm;0;ON;;;;;N;;;;; -294B;LEFT BARB DOWN RIGHT BARB UP HARPOON;Sm;0;ON;;;;;N;;;;; -294C;UP BARB RIGHT DOWN BARB LEFT HARPOON;Sm;0;ON;;;;;N;;;;; -294D;UP BARB LEFT DOWN BARB RIGHT HARPOON;Sm;0;ON;;;;;N;;;;; -294E;LEFT BARB UP RIGHT BARB UP HARPOON;Sm;0;ON;;;;;N;;;;; -294F;UP BARB RIGHT DOWN BARB RIGHT HARPOON;Sm;0;ON;;;;;N;;;;; -2950;LEFT BARB DOWN RIGHT BARB DOWN HARPOON;Sm;0;ON;;;;;N;;;;; -2951;UP BARB LEFT DOWN BARB LEFT HARPOON;Sm;0;ON;;;;;N;;;;; -2952;LEFTWARDS HARPOON WITH BARB UP TO BAR;Sm;0;ON;;;;;N;;;;; -2953;RIGHTWARDS HARPOON WITH BARB UP TO BAR;Sm;0;ON;;;;;N;;;;; -2954;UPWARDS HARPOON WITH BARB RIGHT TO BAR;Sm;0;ON;;;;;N;;;;; -2955;DOWNWARDS HARPOON WITH BARB RIGHT TO BAR;Sm;0;ON;;;;;N;;;;; -2956;LEFTWARDS HARPOON WITH BARB DOWN TO BAR;Sm;0;ON;;;;;N;;;;; -2957;RIGHTWARDS HARPOON WITH BARB DOWN TO BAR;Sm;0;ON;;;;;N;;;;; -2958;UPWARDS HARPOON WITH BARB LEFT TO BAR;Sm;0;ON;;;;;N;;;;; -2959;DOWNWARDS HARPOON WITH BARB LEFT TO BAR;Sm;0;ON;;;;;N;;;;; -295A;LEFTWARDS HARPOON WITH BARB UP FROM BAR;Sm;0;ON;;;;;N;;;;; -295B;RIGHTWARDS HARPOON WITH BARB UP FROM BAR;Sm;0;ON;;;;;N;;;;; -295C;UPWARDS HARPOON WITH BARB RIGHT FROM BAR;Sm;0;ON;;;;;N;;;;; -295D;DOWNWARDS HARPOON WITH BARB RIGHT FROM BAR;Sm;0;ON;;;;;N;;;;; -295E;LEFTWARDS HARPOON WITH BARB DOWN FROM BAR;Sm;0;ON;;;;;N;;;;; -295F;RIGHTWARDS HARPOON WITH BARB DOWN FROM BAR;Sm;0;ON;;;;;N;;;;; -2960;UPWARDS HARPOON WITH BARB LEFT FROM BAR;Sm;0;ON;;;;;N;;;;; -2961;DOWNWARDS HARPOON WITH BARB LEFT FROM BAR;Sm;0;ON;;;;;N;;;;; -2962;LEFTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB DOWN;Sm;0;ON;;;;;N;;;;; -2963;UPWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT;Sm;0;ON;;;;;N;;;;; -2964;RIGHTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB DOWN;Sm;0;ON;;;;;N;;;;; -2965;DOWNWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT;Sm;0;ON;;;;;N;;;;; -2966;LEFTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB UP;Sm;0;ON;;;;;N;;;;; -2967;LEFTWARDS HARPOON WITH BARB DOWN ABOVE RIGHTWARDS HARPOON WITH BARB DOWN;Sm;0;ON;;;;;N;;;;; -2968;RIGHTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB UP;Sm;0;ON;;;;;N;;;;; -2969;RIGHTWARDS HARPOON WITH BARB DOWN ABOVE LEFTWARDS HARPOON WITH BARB DOWN;Sm;0;ON;;;;;N;;;;; -296A;LEFTWARDS HARPOON WITH BARB UP ABOVE LONG DASH;Sm;0;ON;;;;;N;;;;; -296B;LEFTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH;Sm;0;ON;;;;;N;;;;; -296C;RIGHTWARDS HARPOON WITH BARB UP ABOVE LONG DASH;Sm;0;ON;;;;;N;;;;; -296D;RIGHTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH;Sm;0;ON;;;;;N;;;;; -296E;UPWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT;Sm;0;ON;;;;;N;;;;; -296F;DOWNWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT;Sm;0;ON;;;;;N;;;;; -2970;RIGHT DOUBLE ARROW WITH ROUNDED HEAD;Sm;0;ON;;;;;N;;;;; -2971;EQUALS SIGN ABOVE RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;; -2972;TILDE OPERATOR ABOVE RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;; -2973;LEFTWARDS ARROW ABOVE TILDE OPERATOR;Sm;0;ON;;;;;N;;;;; -2974;RIGHTWARDS ARROW ABOVE TILDE OPERATOR;Sm;0;ON;;;;;N;;;;; -2975;RIGHTWARDS ARROW ABOVE ALMOST EQUAL TO;Sm;0;ON;;;;;N;;;;; -2976;LESS-THAN ABOVE LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;; -2977;LEFTWARDS ARROW THROUGH LESS-THAN;Sm;0;ON;;;;;N;;;;; -2978;GREATER-THAN ABOVE RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;; -2979;SUBSET ABOVE RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;; -297A;LEFTWARDS ARROW THROUGH SUBSET;Sm;0;ON;;;;;N;;;;; -297B;SUPERSET ABOVE LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;; -297C;LEFT FISH TAIL;Sm;0;ON;;;;;N;;;;; -297D;RIGHT FISH TAIL;Sm;0;ON;;;;;N;;;;; -297E;UP FISH TAIL;Sm;0;ON;;;;;N;;;;; -297F;DOWN FISH TAIL;Sm;0;ON;;;;;N;;;;; -2980;TRIPLE VERTICAL BAR DELIMITER;Sm;0;ON;;;;;N;;;;; -2981;Z NOTATION SPOT;Sm;0;ON;;;;;N;;;;; -2982;Z NOTATION TYPE COLON;Sm;0;ON;;;;;N;;;;; -2983;LEFT WHITE CURLY BRACKET;Ps;0;ON;;;;;Y;;;;; -2984;RIGHT WHITE CURLY BRACKET;Pe;0;ON;;;;;Y;;;;; -2985;LEFT WHITE PARENTHESIS;Ps;0;ON;;;;;Y;;;;; -2986;RIGHT WHITE PARENTHESIS;Pe;0;ON;;;;;Y;;;;; -2987;Z NOTATION LEFT IMAGE BRACKET;Ps;0;ON;;;;;Y;;;;; -2988;Z NOTATION RIGHT IMAGE BRACKET;Pe;0;ON;;;;;Y;;;;; -2989;Z NOTATION LEFT BINDING BRACKET;Ps;0;ON;;;;;Y;;;;; -298A;Z NOTATION RIGHT BINDING BRACKET;Pe;0;ON;;;;;Y;;;;; -298B;LEFT SQUARE BRACKET WITH UNDERBAR;Ps;0;ON;;;;;Y;;;;; -298C;RIGHT SQUARE BRACKET WITH UNDERBAR;Pe;0;ON;;;;;Y;;;;; -298D;LEFT SQUARE BRACKET WITH TICK IN TOP CORNER;Ps;0;ON;;;;;Y;;;;; -298E;RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER;Pe;0;ON;;;;;Y;;;;; -298F;LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER;Ps;0;ON;;;;;Y;;;;; -2990;RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER;Pe;0;ON;;;;;Y;;;;; -2991;LEFT ANGLE BRACKET WITH DOT;Ps;0;ON;;;;;Y;;;;; -2992;RIGHT ANGLE BRACKET WITH DOT;Pe;0;ON;;;;;Y;;;;; -2993;LEFT ARC LESS-THAN BRACKET;Ps;0;ON;;;;;Y;;;;; -2994;RIGHT ARC GREATER-THAN BRACKET;Pe;0;ON;;;;;Y;;;;; -2995;DOUBLE LEFT ARC GREATER-THAN BRACKET;Ps;0;ON;;;;;Y;;;;; -2996;DOUBLE RIGHT ARC LESS-THAN BRACKET;Pe;0;ON;;;;;Y;;;;; -2997;LEFT BLACK TORTOISE SHELL BRACKET;Ps;0;ON;;;;;Y;;;;; -2998;RIGHT BLACK TORTOISE SHELL BRACKET;Pe;0;ON;;;;;Y;;;;; -2999;DOTTED FENCE;Sm;0;ON;;;;;N;;;;; -299A;VERTICAL ZIGZAG LINE;Sm;0;ON;;;;;N;;;;; -299B;MEASURED ANGLE OPENING LEFT;Sm;0;ON;;;;;Y;;;;; -299C;RIGHT ANGLE VARIANT WITH SQUARE;Sm;0;ON;;;;;Y;;;;; -299D;MEASURED RIGHT ANGLE WITH DOT;Sm;0;ON;;;;;Y;;;;; -299E;ANGLE WITH S INSIDE;Sm;0;ON;;;;;Y;;;;; -299F;ACUTE ANGLE;Sm;0;ON;;;;;Y;;;;; -29A0;SPHERICAL ANGLE OPENING LEFT;Sm;0;ON;;;;;Y;;;;; -29A1;SPHERICAL ANGLE OPENING UP;Sm;0;ON;;;;;Y;;;;; -29A2;TURNED ANGLE;Sm;0;ON;;;;;Y;;;;; -29A3;REVERSED ANGLE;Sm;0;ON;;;;;Y;;;;; -29A4;ANGLE WITH UNDERBAR;Sm;0;ON;;;;;Y;;;;; -29A5;REVERSED ANGLE WITH UNDERBAR;Sm;0;ON;;;;;Y;;;;; -29A6;OBLIQUE ANGLE OPENING UP;Sm;0;ON;;;;;Y;;;;; -29A7;OBLIQUE ANGLE OPENING DOWN;Sm;0;ON;;;;;Y;;;;; -29A8;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND RIGHT;Sm;0;ON;;;;;Y;;;;; -29A9;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND LEFT;Sm;0;ON;;;;;Y;;;;; -29AA;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND RIGHT;Sm;0;ON;;;;;Y;;;;; -29AB;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND LEFT;Sm;0;ON;;;;;Y;;;;; -29AC;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND UP;Sm;0;ON;;;;;Y;;;;; -29AD;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND UP;Sm;0;ON;;;;;Y;;;;; -29AE;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND DOWN;Sm;0;ON;;;;;Y;;;;; -29AF;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND DOWN;Sm;0;ON;;;;;Y;;;;; -29B0;REVERSED EMPTY SET;Sm;0;ON;;;;;N;;;;; -29B1;EMPTY SET WITH OVERBAR;Sm;0;ON;;;;;N;;;;; -29B2;EMPTY SET WITH SMALL CIRCLE ABOVE;Sm;0;ON;;;;;N;;;;; -29B3;EMPTY SET WITH RIGHT ARROW ABOVE;Sm;0;ON;;;;;N;;;;; -29B4;EMPTY SET WITH LEFT ARROW ABOVE;Sm;0;ON;;;;;N;;;;; -29B5;CIRCLE WITH HORIZONTAL BAR;Sm;0;ON;;;;;N;;;;; -29B6;CIRCLED VERTICAL BAR;Sm;0;ON;;;;;N;;;;; -29B7;CIRCLED PARALLEL;Sm;0;ON;;;;;N;;;;; -29B8;CIRCLED REVERSE SOLIDUS;Sm;0;ON;;;;;Y;;;;; -29B9;CIRCLED PERPENDICULAR;Sm;0;ON;;;;;N;;;;; -29BA;CIRCLE DIVIDED BY HORIZONTAL BAR AND TOP HALF DIVIDED BY VERTICAL BAR;Sm;0;ON;;;;;N;;;;; -29BB;CIRCLE WITH SUPERIMPOSED X;Sm;0;ON;;;;;N;;;;; -29BC;CIRCLED ANTICLOCKWISE-ROTATED DIVISION SIGN;Sm;0;ON;;;;;N;;;;; -29BD;UP ARROW THROUGH CIRCLE;Sm;0;ON;;;;;N;;;;; -29BE;CIRCLED WHITE BULLET;Sm;0;ON;;;;;N;;;;; -29BF;CIRCLED BULLET;Sm;0;ON;;;;;N;;;;; -29C0;CIRCLED LESS-THAN;Sm;0;ON;;;;;Y;;;;; -29C1;CIRCLED GREATER-THAN;Sm;0;ON;;;;;Y;;;;; -29C2;CIRCLE WITH SMALL CIRCLE TO THE RIGHT;Sm;0;ON;;;;;Y;;;;; -29C3;CIRCLE WITH TWO HORIZONTAL STROKES TO THE RIGHT;Sm;0;ON;;;;;Y;;;;; -29C4;SQUARED RISING DIAGONAL SLASH;Sm;0;ON;;;;;Y;;;;; -29C5;SQUARED FALLING DIAGONAL SLASH;Sm;0;ON;;;;;Y;;;;; -29C6;SQUARED ASTERISK;Sm;0;ON;;;;;N;;;;; -29C7;SQUARED SMALL CIRCLE;Sm;0;ON;;;;;N;;;;; -29C8;SQUARED SQUARE;Sm;0;ON;;;;;N;;;;; -29C9;TWO JOINED SQUARES;Sm;0;ON;;;;;Y;;;;; -29CA;TRIANGLE WITH DOT ABOVE;Sm;0;ON;;;;;N;;;;; -29CB;TRIANGLE WITH UNDERBAR;Sm;0;ON;;;;;N;;;;; -29CC;S IN TRIANGLE;Sm;0;ON;;;;;N;;;;; -29CD;TRIANGLE WITH SERIFS AT BOTTOM;Sm;0;ON;;;;;N;;;;; -29CE;RIGHT TRIANGLE ABOVE LEFT TRIANGLE;Sm;0;ON;;;;;Y;;;;; -29CF;LEFT TRIANGLE BESIDE VERTICAL BAR;Sm;0;ON;;;;;Y;;;;; -29D0;VERTICAL BAR BESIDE RIGHT TRIANGLE;Sm;0;ON;;;;;Y;;;;; -29D1;BOWTIE WITH LEFT HALF BLACK;Sm;0;ON;;;;;Y;;;;; -29D2;BOWTIE WITH RIGHT HALF BLACK;Sm;0;ON;;;;;Y;;;;; -29D3;BLACK BOWTIE;Sm;0;ON;;;;;N;;;;; -29D4;TIMES WITH LEFT HALF BLACK;Sm;0;ON;;;;;Y;;;;; -29D5;TIMES WITH RIGHT HALF BLACK;Sm;0;ON;;;;;Y;;;;; -29D6;WHITE HOURGLASS;Sm;0;ON;;;;;N;;;;; -29D7;BLACK HOURGLASS;Sm;0;ON;;;;;N;;;;; -29D8;LEFT WIGGLY FENCE;Ps;0;ON;;;;;Y;;;;; -29D9;RIGHT WIGGLY FENCE;Pe;0;ON;;;;;Y;;;;; -29DA;LEFT DOUBLE WIGGLY FENCE;Ps;0;ON;;;;;Y;;;;; -29DB;RIGHT DOUBLE WIGGLY FENCE;Pe;0;ON;;;;;Y;;;;; -29DC;INCOMPLETE INFINITY;Sm;0;ON;;;;;Y;;;;; -29DD;TIE OVER INFINITY;Sm;0;ON;;;;;N;;;;; -29DE;INFINITY NEGATED WITH VERTICAL BAR;Sm;0;ON;;;;;N;;;;; -29DF;DOUBLE-ENDED MULTIMAP;Sm;0;ON;;;;;N;;;;; -29E0;SQUARE WITH CONTOURED OUTLINE;Sm;0;ON;;;;;N;;;;; -29E1;INCREASES AS;Sm;0;ON;;;;;Y;;;;; -29E2;SHUFFLE PRODUCT;Sm;0;ON;;;;;N;;;;; -29E3;EQUALS SIGN AND SLANTED PARALLEL;Sm;0;ON;;;;;Y;;;;; -29E4;EQUALS SIGN AND SLANTED PARALLEL WITH TILDE ABOVE;Sm;0;ON;;;;;Y;;;;; -29E5;IDENTICAL TO AND SLANTED PARALLEL;Sm;0;ON;;;;;Y;;;;; -29E6;GLEICH STARK;Sm;0;ON;;;;;N;;;;; -29E7;THERMODYNAMIC;Sm;0;ON;;;;;N;;;;; -29E8;DOWN-POINTING TRIANGLE WITH LEFT HALF BLACK;Sm;0;ON;;;;;Y;;;;; -29E9;DOWN-POINTING TRIANGLE WITH RIGHT HALF BLACK;Sm;0;ON;;;;;Y;;;;; -29EA;BLACK DIAMOND WITH DOWN ARROW;Sm;0;ON;;;;;N;;;;; -29EB;BLACK LOZENGE;Sm;0;ON;;;;;N;;;;; -29EC;WHITE CIRCLE WITH DOWN ARROW;Sm;0;ON;;;;;N;;;;; -29ED;BLACK CIRCLE WITH DOWN ARROW;Sm;0;ON;;;;;N;;;;; -29EE;ERROR-BARRED WHITE SQUARE;Sm;0;ON;;;;;N;;;;; -29EF;ERROR-BARRED BLACK SQUARE;Sm;0;ON;;;;;N;;;;; -29F0;ERROR-BARRED WHITE DIAMOND;Sm;0;ON;;;;;N;;;;; -29F1;ERROR-BARRED BLACK DIAMOND;Sm;0;ON;;;;;N;;;;; -29F2;ERROR-BARRED WHITE CIRCLE;Sm;0;ON;;;;;N;;;;; -29F3;ERROR-BARRED BLACK CIRCLE;Sm;0;ON;;;;;N;;;;; -29F4;RULE-DELAYED;Sm;0;ON;;;;;Y;;;;; -29F5;REVERSE SOLIDUS OPERATOR;Sm;0;ON;;;;;Y;;;;; -29F6;SOLIDUS WITH OVERBAR;Sm;0;ON;;;;;Y;;;;; -29F7;REVERSE SOLIDUS WITH HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;; -29F8;BIG SOLIDUS;Sm;0;ON;;;;;Y;;;;; -29F9;BIG REVERSE SOLIDUS;Sm;0;ON;;;;;Y;;;;; -29FA;DOUBLE PLUS;Sm;0;ON;;;;;N;;;;; -29FB;TRIPLE PLUS;Sm;0;ON;;;;;N;;;;; -29FC;LEFT-POINTING CURVED ANGLE BRACKET;Ps;0;ON;;;;;Y;;;;; -29FD;RIGHT-POINTING CURVED ANGLE BRACKET;Pe;0;ON;;;;;Y;;;;; -29FE;TINY;Sm;0;ON;;;;;N;;;;; -29FF;MINY;Sm;0;ON;;;;;N;;;;; -2A00;N-ARY CIRCLED DOT OPERATOR;Sm;0;ON;;;;;N;;;;; -2A01;N-ARY CIRCLED PLUS OPERATOR;Sm;0;ON;;;;;N;;;;; -2A02;N-ARY CIRCLED TIMES OPERATOR;Sm;0;ON;;;;;N;;;;; -2A03;N-ARY UNION OPERATOR WITH DOT;Sm;0;ON;;;;;N;;;;; -2A04;N-ARY UNION OPERATOR WITH PLUS;Sm;0;ON;;;;;N;;;;; -2A05;N-ARY SQUARE INTERSECTION OPERATOR;Sm;0;ON;;;;;N;;;;; -2A06;N-ARY SQUARE UNION OPERATOR;Sm;0;ON;;;;;N;;;;; -2A07;TWO LOGICAL AND OPERATOR;Sm;0;ON;;;;;N;;;;; -2A08;TWO LOGICAL OR OPERATOR;Sm;0;ON;;;;;N;;;;; -2A09;N-ARY TIMES OPERATOR;Sm;0;ON;;;;;N;;;;; -2A0A;MODULO TWO SUM;Sm;0;ON;;;;;Y;;;;; -2A0B;SUMMATION WITH INTEGRAL;Sm;0;ON;;;;;Y;;;;; -2A0C;QUADRUPLE INTEGRAL OPERATOR;Sm;0;ON; 222B 222B 222B 222B;;;;Y;;;;; -2A0D;FINITE PART INTEGRAL;Sm;0;ON;;;;;Y;;;;; -2A0E;INTEGRAL WITH DOUBLE STROKE;Sm;0;ON;;;;;Y;;;;; -2A0F;INTEGRAL AVERAGE WITH SLASH;Sm;0;ON;;;;;Y;;;;; -2A10;CIRCULATION FUNCTION;Sm;0;ON;;;;;Y;;;;; -2A11;ANTICLOCKWISE INTEGRATION;Sm;0;ON;;;;;Y;;;;; -2A12;LINE INTEGRATION WITH RECTANGULAR PATH AROUND POLE;Sm;0;ON;;;;;Y;;;;; -2A13;LINE INTEGRATION WITH SEMICIRCULAR PATH AROUND POLE;Sm;0;ON;;;;;Y;;;;; -2A14;LINE INTEGRATION NOT INCLUDING THE POLE;Sm;0;ON;;;;;Y;;;;; -2A15;INTEGRAL AROUND A POINT OPERATOR;Sm;0;ON;;;;;Y;;;;; -2A16;QUATERNION INTEGRAL OPERATOR;Sm;0;ON;;;;;Y;;;;; -2A17;INTEGRAL WITH LEFTWARDS ARROW WITH HOOK;Sm;0;ON;;;;;Y;;;;; -2A18;INTEGRAL WITH TIMES SIGN;Sm;0;ON;;;;;Y;;;;; -2A19;INTEGRAL WITH INTERSECTION;Sm;0;ON;;;;;Y;;;;; -2A1A;INTEGRAL WITH UNION;Sm;0;ON;;;;;Y;;;;; -2A1B;INTEGRAL WITH OVERBAR;Sm;0;ON;;;;;Y;;;;; -2A1C;INTEGRAL WITH UNDERBAR;Sm;0;ON;;;;;Y;;;;; -2A1D;JOIN;Sm;0;ON;;;;;N;;;;; -2A1E;LARGE LEFT TRIANGLE OPERATOR;Sm;0;ON;;;;;Y;;;;; -2A1F;Z NOTATION SCHEMA COMPOSITION;Sm;0;ON;;;;;Y;;;;; -2A20;Z NOTATION SCHEMA PIPING;Sm;0;ON;;;;;Y;;;;; -2A21;Z NOTATION SCHEMA PROJECTION;Sm;0;ON;;;;;Y;;;;; -2A22;PLUS SIGN WITH SMALL CIRCLE ABOVE;Sm;0;ON;;;;;N;;;;; -2A23;PLUS SIGN WITH CIRCUMFLEX ACCENT ABOVE;Sm;0;ON;;;;;N;;;;; -2A24;PLUS SIGN WITH TILDE ABOVE;Sm;0;ON;;;;;Y;;;;; -2A25;PLUS SIGN WITH DOT BELOW;Sm;0;ON;;;;;N;;;;; -2A26;PLUS SIGN WITH TILDE BELOW;Sm;0;ON;;;;;Y;;;;; -2A27;PLUS SIGN WITH SUBSCRIPT TWO;Sm;0;ON;;;;;N;;;;; -2A28;PLUS SIGN WITH BLACK TRIANGLE;Sm;0;ON;;;;;N;;;;; -2A29;MINUS SIGN WITH COMMA ABOVE;Sm;0;ON;;;;;Y;;;;; -2A2A;MINUS SIGN WITH DOT BELOW;Sm;0;ON;;;;;N;;;;; -2A2B;MINUS SIGN WITH FALLING DOTS;Sm;0;ON;;;;;Y;;;;; -2A2C;MINUS SIGN WITH RISING DOTS;Sm;0;ON;;;;;Y;;;;; -2A2D;PLUS SIGN IN LEFT HALF CIRCLE;Sm;0;ON;;;;;Y;;;;; -2A2E;PLUS SIGN IN RIGHT HALF CIRCLE;Sm;0;ON;;;;;Y;;;;; -2A2F;VECTOR OR CROSS PRODUCT;Sm;0;ON;;;;;N;;;;; -2A30;MULTIPLICATION SIGN WITH DOT ABOVE;Sm;0;ON;;;;;N;;;;; -2A31;MULTIPLICATION SIGN WITH UNDERBAR;Sm;0;ON;;;;;N;;;;; -2A32;SEMIDIRECT PRODUCT WITH BOTTOM CLOSED;Sm;0;ON;;;;;N;;;;; -2A33;SMASH PRODUCT;Sm;0;ON;;;;;N;;;;; -2A34;MULTIPLICATION SIGN IN LEFT HALF CIRCLE;Sm;0;ON;;;;;Y;;;;; -2A35;MULTIPLICATION SIGN IN RIGHT HALF CIRCLE;Sm;0;ON;;;;;Y;;;;; -2A36;CIRCLED MULTIPLICATION SIGN WITH CIRCUMFLEX ACCENT;Sm;0;ON;;;;;N;;;;; -2A37;MULTIPLICATION SIGN IN DOUBLE CIRCLE;Sm;0;ON;;;;;N;;;;; -2A38;CIRCLED DIVISION SIGN;Sm;0;ON;;;;;N;;;;; -2A39;PLUS SIGN IN TRIANGLE;Sm;0;ON;;;;;N;;;;; -2A3A;MINUS SIGN IN TRIANGLE;Sm;0;ON;;;;;N;;;;; -2A3B;MULTIPLICATION SIGN IN TRIANGLE;Sm;0;ON;;;;;N;;;;; -2A3C;INTERIOR PRODUCT;Sm;0;ON;;;;;Y;;;;; -2A3D;RIGHTHAND INTERIOR PRODUCT;Sm;0;ON;;;;;Y;;;;; -2A3E;Z NOTATION RELATIONAL COMPOSITION;Sm;0;ON;;;;;Y;;;;; -2A3F;AMALGAMATION OR COPRODUCT;Sm;0;ON;;;;;N;;;;; -2A40;INTERSECTION WITH DOT;Sm;0;ON;;;;;N;;;;; -2A41;UNION WITH MINUS SIGN;Sm;0;ON;;;;;N;;;;; -2A42;UNION WITH OVERBAR;Sm;0;ON;;;;;N;;;;; -2A43;INTERSECTION WITH OVERBAR;Sm;0;ON;;;;;N;;;;; -2A44;INTERSECTION WITH LOGICAL AND;Sm;0;ON;;;;;N;;;;; -2A45;UNION WITH LOGICAL OR;Sm;0;ON;;;;;N;;;;; -2A46;UNION ABOVE INTERSECTION;Sm;0;ON;;;;;N;;;;; -2A47;INTERSECTION ABOVE UNION;Sm;0;ON;;;;;N;;;;; -2A48;UNION ABOVE BAR ABOVE INTERSECTION;Sm;0;ON;;;;;N;;;;; -2A49;INTERSECTION ABOVE BAR ABOVE UNION;Sm;0;ON;;;;;N;;;;; -2A4A;UNION BESIDE AND JOINED WITH UNION;Sm;0;ON;;;;;N;;;;; -2A4B;INTERSECTION BESIDE AND JOINED WITH INTERSECTION;Sm;0;ON;;;;;N;;;;; -2A4C;CLOSED UNION WITH SERIFS;Sm;0;ON;;;;;N;;;;; -2A4D;CLOSED INTERSECTION WITH SERIFS;Sm;0;ON;;;;;N;;;;; -2A4E;DOUBLE SQUARE INTERSECTION;Sm;0;ON;;;;;N;;;;; -2A4F;DOUBLE SQUARE UNION;Sm;0;ON;;;;;N;;;;; -2A50;CLOSED UNION WITH SERIFS AND SMASH PRODUCT;Sm;0;ON;;;;;N;;;;; -2A51;LOGICAL AND WITH DOT ABOVE;Sm;0;ON;;;;;N;;;;; -2A52;LOGICAL OR WITH DOT ABOVE;Sm;0;ON;;;;;N;;;;; -2A53;DOUBLE LOGICAL AND;Sm;0;ON;;;;;N;;;;; -2A54;DOUBLE LOGICAL OR;Sm;0;ON;;;;;N;;;;; -2A55;TWO INTERSECTING LOGICAL AND;Sm;0;ON;;;;;N;;;;; -2A56;TWO INTERSECTING LOGICAL OR;Sm;0;ON;;;;;N;;;;; -2A57;SLOPING LARGE OR;Sm;0;ON;;;;;Y;;;;; -2A58;SLOPING LARGE AND;Sm;0;ON;;;;;Y;;;;; -2A59;LOGICAL OR OVERLAPPING LOGICAL AND;Sm;0;ON;;;;;N;;;;; -2A5A;LOGICAL AND WITH MIDDLE STEM;Sm;0;ON;;;;;N;;;;; -2A5B;LOGICAL OR WITH MIDDLE STEM;Sm;0;ON;;;;;N;;;;; -2A5C;LOGICAL AND WITH HORIZONTAL DASH;Sm;0;ON;;;;;N;;;;; -2A5D;LOGICAL OR WITH HORIZONTAL DASH;Sm;0;ON;;;;;N;;;;; -2A5E;LOGICAL AND WITH DOUBLE OVERBAR;Sm;0;ON;;;;;N;;;;; -2A5F;LOGICAL AND WITH UNDERBAR;Sm;0;ON;;;;;N;;;;; -2A60;LOGICAL AND WITH DOUBLE UNDERBAR;Sm;0;ON;;;;;N;;;;; -2A61;SMALL VEE WITH UNDERBAR;Sm;0;ON;;;;;N;;;;; -2A62;LOGICAL OR WITH DOUBLE OVERBAR;Sm;0;ON;;;;;N;;;;; -2A63;LOGICAL OR WITH DOUBLE UNDERBAR;Sm;0;ON;;;;;N;;;;; -2A64;Z NOTATION DOMAIN ANTIRESTRICTION;Sm;0;ON;;;;;Y;;;;; -2A65;Z NOTATION RANGE ANTIRESTRICTION;Sm;0;ON;;;;;Y;;;;; -2A66;EQUALS SIGN WITH DOT BELOW;Sm;0;ON;;;;;N;;;;; -2A67;IDENTICAL WITH DOT ABOVE;Sm;0;ON;;;;;N;;;;; -2A68;TRIPLE HORIZONTAL BAR WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; -2A69;TRIPLE HORIZONTAL BAR WITH TRIPLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; -2A6A;TILDE OPERATOR WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;; -2A6B;TILDE OPERATOR WITH RISING DOTS;Sm;0;ON;;;;;Y;;;;; -2A6C;SIMILAR MINUS SIMILAR;Sm;0;ON;;;;;Y;;;;; -2A6D;CONGRUENT WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;; -2A6E;EQUALS WITH ASTERISK;Sm;0;ON;;;;;N;;;;; -2A6F;ALMOST EQUAL TO WITH CIRCUMFLEX ACCENT;Sm;0;ON;;;;;Y;;;;; -2A70;APPROXIMATELY EQUAL OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; -2A71;EQUALS SIGN ABOVE PLUS SIGN;Sm;0;ON;;;;;N;;;;; -2A72;PLUS SIGN ABOVE EQUALS SIGN;Sm;0;ON;;;;;N;;;;; -2A73;EQUALS SIGN ABOVE TILDE OPERATOR;Sm;0;ON;;;;;Y;;;;; -2A74;DOUBLE COLON EQUAL;Sm;0;ON; 003A 003A 003D;;;;Y;;;;; -2A75;TWO CONSECUTIVE EQUALS SIGNS;Sm;0;ON; 003D 003D;;;;N;;;;; -2A76;THREE CONSECUTIVE EQUALS SIGNS;Sm;0;ON; 003D 003D 003D;;;;N;;;;; -2A77;EQUALS SIGN WITH TWO DOTS ABOVE AND TWO DOTS BELOW;Sm;0;ON;;;;;N;;;;; -2A78;EQUIVALENT WITH FOUR DOTS ABOVE;Sm;0;ON;;;;;N;;;;; -2A79;LESS-THAN WITH CIRCLE INSIDE;Sm;0;ON;;;;;Y;;;;; -2A7A;GREATER-THAN WITH CIRCLE INSIDE;Sm;0;ON;;;;;Y;;;;; -2A7B;LESS-THAN WITH QUESTION MARK ABOVE;Sm;0;ON;;;;;Y;;;;; -2A7C;GREATER-THAN WITH QUESTION MARK ABOVE;Sm;0;ON;;;;;Y;;;;; -2A7D;LESS-THAN OR SLANTED EQUAL TO;Sm;0;ON;;;;;Y;;;;; -2A7E;GREATER-THAN OR SLANTED EQUAL TO;Sm;0;ON;;;;;Y;;;;; -2A7F;LESS-THAN OR SLANTED EQUAL TO WITH DOT INSIDE;Sm;0;ON;;;;;Y;;;;; -2A80;GREATER-THAN OR SLANTED EQUAL TO WITH DOT INSIDE;Sm;0;ON;;;;;Y;;;;; -2A81;LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;; -2A82;GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;; -2A83;LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE RIGHT;Sm;0;ON;;;;;Y;;;;; -2A84;GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE LEFT;Sm;0;ON;;;;;Y;;;;; -2A85;LESS-THAN OR APPROXIMATE;Sm;0;ON;;;;;Y;;;;; -2A86;GREATER-THAN OR APPROXIMATE;Sm;0;ON;;;;;Y;;;;; -2A87;LESS-THAN AND SINGLE-LINE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;; -2A88;GREATER-THAN AND SINGLE-LINE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;; -2A89;LESS-THAN AND NOT APPROXIMATE;Sm;0;ON;;;;;Y;;;;; -2A8A;GREATER-THAN AND NOT APPROXIMATE;Sm;0;ON;;;;;Y;;;;; -2A8B;LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN;Sm;0;ON;;;;;Y;;;;; -2A8C;GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN;Sm;0;ON;;;;;Y;;;;; -2A8D;LESS-THAN ABOVE SIMILAR OR EQUAL;Sm;0;ON;;;;;Y;;;;; -2A8E;GREATER-THAN ABOVE SIMILAR OR EQUAL;Sm;0;ON;;;;;Y;;;;; -2A8F;LESS-THAN ABOVE SIMILAR ABOVE GREATER-THAN;Sm;0;ON;;;;;Y;;;;; -2A90;GREATER-THAN ABOVE SIMILAR ABOVE LESS-THAN;Sm;0;ON;;;;;Y;;;;; -2A91;LESS-THAN ABOVE GREATER-THAN ABOVE DOUBLE-LINE EQUAL;Sm;0;ON;;;;;Y;;;;; -2A92;GREATER-THAN ABOVE LESS-THAN ABOVE DOUBLE-LINE EQUAL;Sm;0;ON;;;;;Y;;;;; -2A93;LESS-THAN ABOVE SLANTED EQUAL ABOVE GREATER-THAN ABOVE SLANTED EQUAL;Sm;0;ON;;;;;Y;;;;; -2A94;GREATER-THAN ABOVE SLANTED EQUAL ABOVE LESS-THAN ABOVE SLANTED EQUAL;Sm;0;ON;;;;;Y;;;;; -2A95;SLANTED EQUAL TO OR LESS-THAN;Sm;0;ON;;;;;Y;;;;; -2A96;SLANTED EQUAL TO OR GREATER-THAN;Sm;0;ON;;;;;Y;;;;; -2A97;SLANTED EQUAL TO OR LESS-THAN WITH DOT INSIDE;Sm;0;ON;;;;;Y;;;;; -2A98;SLANTED EQUAL TO OR GREATER-THAN WITH DOT INSIDE;Sm;0;ON;;;;;Y;;;;; -2A99;DOUBLE-LINE EQUAL TO OR LESS-THAN;Sm;0;ON;;;;;Y;;;;; -2A9A;DOUBLE-LINE EQUAL TO OR GREATER-THAN;Sm;0;ON;;;;;Y;;;;; -2A9B;DOUBLE-LINE SLANTED EQUAL TO OR LESS-THAN;Sm;0;ON;;;;;Y;;;;; -2A9C;DOUBLE-LINE SLANTED EQUAL TO OR GREATER-THAN;Sm;0;ON;;;;;Y;;;;; -2A9D;SIMILAR OR LESS-THAN;Sm;0;ON;;;;;Y;;;;; -2A9E;SIMILAR OR GREATER-THAN;Sm;0;ON;;;;;Y;;;;; -2A9F;SIMILAR ABOVE LESS-THAN ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;; -2AA0;SIMILAR ABOVE GREATER-THAN ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;; -2AA1;DOUBLE NESTED LESS-THAN;Sm;0;ON;;;;;Y;;;;; -2AA2;DOUBLE NESTED GREATER-THAN;Sm;0;ON;;;;;Y;;;;; -2AA3;DOUBLE NESTED LESS-THAN WITH UNDERBAR;Sm;0;ON;;;;;Y;;;;; -2AA4;GREATER-THAN OVERLAPPING LESS-THAN;Sm;0;ON;;;;;N;;;;; -2AA5;GREATER-THAN BESIDE LESS-THAN;Sm;0;ON;;;;;N;;;;; -2AA6;LESS-THAN CLOSED BY CURVE;Sm;0;ON;;;;;Y;;;;; -2AA7;GREATER-THAN CLOSED BY CURVE;Sm;0;ON;;;;;Y;;;;; -2AA8;LESS-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL;Sm;0;ON;;;;;Y;;;;; -2AA9;GREATER-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL;Sm;0;ON;;;;;Y;;;;; -2AAA;SMALLER THAN;Sm;0;ON;;;;;Y;;;;; -2AAB;LARGER THAN;Sm;0;ON;;;;;Y;;;;; -2AAC;SMALLER THAN OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; -2AAD;LARGER THAN OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; -2AAE;EQUALS SIGN WITH BUMPY ABOVE;Sm;0;ON;;;;;N;;;;; -2AAF;PRECEDES ABOVE SINGLE-LINE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;; -2AB0;SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;; -2AB1;PRECEDES ABOVE SINGLE-LINE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;; -2AB2;SUCCEEDS ABOVE SINGLE-LINE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;; -2AB3;PRECEDES ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;; -2AB4;SUCCEEDS ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;; -2AB5;PRECEDES ABOVE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;; -2AB6;SUCCEEDS ABOVE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;; -2AB7;PRECEDES ABOVE ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;; -2AB8;SUCCEEDS ABOVE ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;; -2AB9;PRECEDES ABOVE NOT ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;; -2ABA;SUCCEEDS ABOVE NOT ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;; -2ABB;DOUBLE PRECEDES;Sm;0;ON;;;;;Y;;;;; -2ABC;DOUBLE SUCCEEDS;Sm;0;ON;;;;;Y;;;;; -2ABD;SUBSET WITH DOT;Sm;0;ON;;;;;Y;;;;; -2ABE;SUPERSET WITH DOT;Sm;0;ON;;;;;Y;;;;; -2ABF;SUBSET WITH PLUS SIGN BELOW;Sm;0;ON;;;;;Y;;;;; -2AC0;SUPERSET WITH PLUS SIGN BELOW;Sm;0;ON;;;;;Y;;;;; -2AC1;SUBSET WITH MULTIPLICATION SIGN BELOW;Sm;0;ON;;;;;Y;;;;; -2AC2;SUPERSET WITH MULTIPLICATION SIGN BELOW;Sm;0;ON;;;;;Y;;;;; -2AC3;SUBSET OF OR EQUAL TO WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;; -2AC4;SUPERSET OF OR EQUAL TO WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;; -2AC5;SUBSET OF ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;; -2AC6;SUPERSET OF ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;; -2AC7;SUBSET OF ABOVE TILDE OPERATOR;Sm;0;ON;;;;;Y;;;;; -2AC8;SUPERSET OF ABOVE TILDE OPERATOR;Sm;0;ON;;;;;Y;;;;; -2AC9;SUBSET OF ABOVE ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;; -2ACA;SUPERSET OF ABOVE ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;; -2ACB;SUBSET OF ABOVE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;; -2ACC;SUPERSET OF ABOVE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;; -2ACD;SQUARE LEFT OPEN BOX OPERATOR;Sm;0;ON;;;;;Y;;;;; -2ACE;SQUARE RIGHT OPEN BOX OPERATOR;Sm;0;ON;;;;;Y;;;;; -2ACF;CLOSED SUBSET;Sm;0;ON;;;;;Y;;;;; -2AD0;CLOSED SUPERSET;Sm;0;ON;;;;;Y;;;;; -2AD1;CLOSED SUBSET OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; -2AD2;CLOSED SUPERSET OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; -2AD3;SUBSET ABOVE SUPERSET;Sm;0;ON;;;;;Y;;;;; -2AD4;SUPERSET ABOVE SUBSET;Sm;0;ON;;;;;Y;;;;; -2AD5;SUBSET ABOVE SUBSET;Sm;0;ON;;;;;Y;;;;; -2AD6;SUPERSET ABOVE SUPERSET;Sm;0;ON;;;;;Y;;;;; -2AD7;SUPERSET BESIDE SUBSET;Sm;0;ON;;;;;N;;;;; -2AD8;SUPERSET BESIDE AND JOINED BY DASH WITH SUBSET;Sm;0;ON;;;;;N;;;;; -2AD9;ELEMENT OF OPENING DOWNWARDS;Sm;0;ON;;;;;N;;;;; -2ADA;PITCHFORK WITH TEE TOP;Sm;0;ON;;;;;N;;;;; -2ADB;TRANSVERSAL INTERSECTION;Sm;0;ON;;;;;N;;;;; -2ADC;FORKING;Sm;0;ON;2ADD 0338;;;;Y;;;;; -2ADD;NONFORKING;Sm;0;ON;;;;;N;;;;; -2ADE;SHORT LEFT TACK;Sm;0;ON;;;;;Y;;;;; -2ADF;SHORT DOWN TACK;Sm;0;ON;;;;;N;;;;; -2AE0;SHORT UP TACK;Sm;0;ON;;;;;N;;;;; -2AE1;PERPENDICULAR WITH S;Sm;0;ON;;;;;N;;;;; -2AE2;VERTICAL BAR TRIPLE RIGHT TURNSTILE;Sm;0;ON;;;;;Y;;;;; -2AE3;DOUBLE VERTICAL BAR LEFT TURNSTILE;Sm;0;ON;;;;;Y;;;;; -2AE4;VERTICAL BAR DOUBLE LEFT TURNSTILE;Sm;0;ON;;;;;Y;;;;; -2AE5;DOUBLE VERTICAL BAR DOUBLE LEFT TURNSTILE;Sm;0;ON;;;;;Y;;;;; -2AE6;LONG DASH FROM LEFT MEMBER OF DOUBLE VERTICAL;Sm;0;ON;;;;;Y;;;;; -2AE7;SHORT DOWN TACK WITH OVERBAR;Sm;0;ON;;;;;N;;;;; -2AE8;SHORT UP TACK WITH UNDERBAR;Sm;0;ON;;;;;N;;;;; -2AE9;SHORT UP TACK ABOVE SHORT DOWN TACK;Sm;0;ON;;;;;N;;;;; -2AEA;DOUBLE DOWN TACK;Sm;0;ON;;;;;N;;;;; -2AEB;DOUBLE UP TACK;Sm;0;ON;;;;;N;;;;; -2AEC;DOUBLE STROKE NOT SIGN;Sm;0;ON;;;;;Y;;;;; -2AED;REVERSED DOUBLE STROKE NOT SIGN;Sm;0;ON;;;;;Y;;;;; -2AEE;DOES NOT DIVIDE WITH REVERSED NEGATION SLASH;Sm;0;ON;;;;;Y;;;;; -2AEF;VERTICAL LINE WITH CIRCLE ABOVE;Sm;0;ON;;;;;N;;;;; -2AF0;VERTICAL LINE WITH CIRCLE BELOW;Sm;0;ON;;;;;N;;;;; -2AF1;DOWN TACK WITH CIRCLE BELOW;Sm;0;ON;;;;;N;;;;; -2AF2;PARALLEL WITH HORIZONTAL STROKE;Sm;0;ON;;;;;N;;;;; -2AF3;PARALLEL WITH TILDE OPERATOR;Sm;0;ON;;;;;Y;;;;; -2AF4;TRIPLE VERTICAL BAR BINARY RELATION;Sm;0;ON;;;;;N;;;;; -2AF5;TRIPLE VERTICAL BAR WITH HORIZONTAL STROKE;Sm;0;ON;;;;;N;;;;; -2AF6;TRIPLE COLON OPERATOR;Sm;0;ON;;;;;N;;;;; -2AF7;TRIPLE NESTED LESS-THAN;Sm;0;ON;;;;;Y;;;;; -2AF8;TRIPLE NESTED GREATER-THAN;Sm;0;ON;;;;;Y;;;;; -2AF9;DOUBLE-LINE SLANTED LESS-THAN OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; -2AFA;DOUBLE-LINE SLANTED GREATER-THAN OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; -2AFB;TRIPLE SOLIDUS BINARY RELATION;Sm;0;ON;;;;;Y;;;;; -2AFC;LARGE TRIPLE VERTICAL BAR OPERATOR;Sm;0;ON;;;;;N;;;;; -2AFD;DOUBLE SOLIDUS OPERATOR;Sm;0;ON;;;;;Y;;;;; -2AFE;WHITE VERTICAL BAR;Sm;0;ON;;;;;N;;;;; -2AFF;N-ARY WHITE VERTICAL BAR;Sm;0;ON;;;;;N;;;;; -2B00;NORTH EAST WHITE ARROW;So;0;ON;;;;;N;;;;; -2B01;NORTH WEST WHITE ARROW;So;0;ON;;;;;N;;;;; -2B02;SOUTH EAST WHITE ARROW;So;0;ON;;;;;N;;;;; -2B03;SOUTH WEST WHITE ARROW;So;0;ON;;;;;N;;;;; -2B04;LEFT RIGHT WHITE ARROW;So;0;ON;;;;;N;;;;; -2B05;LEFTWARDS BLACK ARROW;So;0;ON;;;;;N;;;;; -2B06;UPWARDS BLACK ARROW;So;0;ON;;;;;N;;;;; -2B07;DOWNWARDS BLACK ARROW;So;0;ON;;;;;N;;;;; -2B08;NORTH EAST BLACK ARROW;So;0;ON;;;;;N;;;;; -2B09;NORTH WEST BLACK ARROW;So;0;ON;;;;;N;;;;; -2B0A;SOUTH EAST BLACK ARROW;So;0;ON;;;;;N;;;;; -2B0B;SOUTH WEST BLACK ARROW;So;0;ON;;;;;N;;;;; -2B0C;LEFT RIGHT BLACK ARROW;So;0;ON;;;;;N;;;;; -2B0D;UP DOWN BLACK ARROW;So;0;ON;;;;;N;;;;; -2B0E;RIGHTWARDS ARROW WITH TIP DOWNWARDS;So;0;ON;;;;;N;;;;; -2B0F;RIGHTWARDS ARROW WITH TIP UPWARDS;So;0;ON;;;;;N;;;;; -2B10;LEFTWARDS ARROW WITH TIP DOWNWARDS;So;0;ON;;;;;N;;;;; -2B11;LEFTWARDS ARROW WITH TIP UPWARDS;So;0;ON;;;;;N;;;;; -2B12;SQUARE WITH TOP HALF BLACK;So;0;ON;;;;;N;;;;; -2B13;SQUARE WITH BOTTOM HALF BLACK;So;0;ON;;;;;N;;;;; -2B14;SQUARE WITH UPPER RIGHT DIAGONAL HALF BLACK;So;0;ON;;;;;N;;;;; -2B15;SQUARE WITH LOWER LEFT DIAGONAL HALF BLACK;So;0;ON;;;;;N;;;;; -2B16;DIAMOND WITH LEFT HALF BLACK;So;0;ON;;;;;N;;;;; -2B17;DIAMOND WITH RIGHT HALF BLACK;So;0;ON;;;;;N;;;;; -2B18;DIAMOND WITH TOP HALF BLACK;So;0;ON;;;;;N;;;;; -2B19;DIAMOND WITH BOTTOM HALF BLACK;So;0;ON;;;;;N;;;;; -2B1A;DOTTED SQUARE;So;0;ON;;;;;N;;;;; -2B1B;BLACK LARGE SQUARE;So;0;ON;;;;;N;;;;; -2B1C;WHITE LARGE SQUARE;So;0;ON;;;;;N;;;;; -2B1D;BLACK VERY SMALL SQUARE;So;0;ON;;;;;N;;;;; -2B1E;WHITE VERY SMALL SQUARE;So;0;ON;;;;;N;;;;; -2B1F;BLACK PENTAGON;So;0;ON;;;;;N;;;;; -2B20;WHITE PENTAGON;So;0;ON;;;;;N;;;;; -2B21;WHITE HEXAGON;So;0;ON;;;;;N;;;;; -2B22;BLACK HEXAGON;So;0;ON;;;;;N;;;;; -2B23;HORIZONTAL BLACK HEXAGON;So;0;ON;;;;;N;;;;; -2B24;BLACK LARGE CIRCLE;So;0;ON;;;;;N;;;;; -2B25;BLACK MEDIUM DIAMOND;So;0;ON;;;;;N;;;;; -2B26;WHITE MEDIUM DIAMOND;So;0;ON;;;;;N;;;;; -2B27;BLACK MEDIUM LOZENGE;So;0;ON;;;;;N;;;;; -2B28;WHITE MEDIUM LOZENGE;So;0;ON;;;;;N;;;;; -2B29;BLACK SMALL DIAMOND;So;0;ON;;;;;N;;;;; -2B2A;BLACK SMALL LOZENGE;So;0;ON;;;;;N;;;;; -2B2B;WHITE SMALL LOZENGE;So;0;ON;;;;;N;;;;; -2B2C;BLACK HORIZONTAL ELLIPSE;So;0;ON;;;;;N;;;;; -2B2D;WHITE HORIZONTAL ELLIPSE;So;0;ON;;;;;N;;;;; -2B2E;BLACK VERTICAL ELLIPSE;So;0;ON;;;;;N;;;;; -2B2F;WHITE VERTICAL ELLIPSE;So;0;ON;;;;;N;;;;; -2B30;LEFT ARROW WITH SMALL CIRCLE;Sm;0;ON;;;;;N;;;;; -2B31;THREE LEFTWARDS ARROWS;Sm;0;ON;;;;;N;;;;; -2B32;LEFT ARROW WITH CIRCLED PLUS;Sm;0;ON;;;;;N;;;;; -2B33;LONG LEFTWARDS SQUIGGLE ARROW;Sm;0;ON;;;;;N;;;;; -2B34;LEFTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; -2B35;LEFTWARDS TWO-HEADED ARROW WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; -2B36;LEFTWARDS TWO-HEADED ARROW FROM BAR;Sm;0;ON;;;;;N;;;;; -2B37;LEFTWARDS TWO-HEADED TRIPLE DASH ARROW;Sm;0;ON;;;;;N;;;;; -2B38;LEFTWARDS ARROW WITH DOTTED STEM;Sm;0;ON;;;;;N;;;;; -2B39;LEFTWARDS ARROW WITH TAIL WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; -2B3A;LEFTWARDS ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; -2B3B;LEFTWARDS TWO-HEADED ARROW WITH TAIL;Sm;0;ON;;;;;N;;;;; -2B3C;LEFTWARDS TWO-HEADED ARROW WITH TAIL WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; -2B3D;LEFTWARDS TWO-HEADED ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; -2B3E;LEFTWARDS ARROW THROUGH X;Sm;0;ON;;;;;N;;;;; -2B3F;WAVE ARROW POINTING DIRECTLY LEFT;Sm;0;ON;;;;;N;;;;; -2B40;EQUALS SIGN ABOVE LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;; -2B41;REVERSE TILDE OPERATOR ABOVE LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;; -2B42;LEFTWARDS ARROW ABOVE REVERSE ALMOST EQUAL TO;Sm;0;ON;;;;;N;;;;; -2B43;RIGHTWARDS ARROW THROUGH GREATER-THAN;Sm;0;ON;;;;;N;;;;; -2B44;RIGHTWARDS ARROW THROUGH SUPERSET;Sm;0;ON;;;;;N;;;;; -2B45;LEFTWARDS QUADRUPLE ARROW;So;0;ON;;;;;N;;;;; -2B46;RIGHTWARDS QUADRUPLE ARROW;So;0;ON;;;;;N;;;;; -2B47;REVERSE TILDE OPERATOR ABOVE RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;; -2B48;RIGHTWARDS ARROW ABOVE REVERSE ALMOST EQUAL TO;Sm;0;ON;;;;;N;;;;; -2B49;TILDE OPERATOR ABOVE LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;; -2B4A;LEFTWARDS ARROW ABOVE ALMOST EQUAL TO;Sm;0;ON;;;;;N;;;;; -2B4B;LEFTWARDS ARROW ABOVE REVERSE TILDE OPERATOR;Sm;0;ON;;;;;N;;;;; -2B4C;RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR;Sm;0;ON;;;;;N;;;;; -2B50;WHITE MEDIUM STAR;So;0;ON;;;;;N;;;;; -2B51;BLACK SMALL STAR;So;0;ON;;;;;N;;;;; -2B52;WHITE SMALL STAR;So;0;ON;;;;;N;;;;; -2B53;BLACK RIGHT-POINTING PENTAGON;So;0;ON;;;;;N;;;;; -2B54;WHITE RIGHT-POINTING PENTAGON;So;0;ON;;;;;N;;;;; -2B55;HEAVY LARGE CIRCLE;So;0;ON;;;;;N;;;;; -2B56;HEAVY OVAL WITH OVAL INSIDE;So;0;ON;;;;;N;;;;; -2B57;HEAVY CIRCLE WITH CIRCLE INSIDE;So;0;ON;;;;;N;;;;; -2B58;HEAVY CIRCLE;So;0;ON;;;;;N;;;;; -2B59;HEAVY CIRCLED SALTIRE;So;0;ON;;;;;N;;;;; -2C00;GLAGOLITIC CAPITAL LETTER AZU;Lu;0;L;;;;;N;;;;2C30; -2C01;GLAGOLITIC CAPITAL LETTER BUKY;Lu;0;L;;;;;N;;;;2C31; -2C02;GLAGOLITIC CAPITAL LETTER VEDE;Lu;0;L;;;;;N;;;;2C32; -2C03;GLAGOLITIC CAPITAL LETTER GLAGOLI;Lu;0;L;;;;;N;;;;2C33; -2C04;GLAGOLITIC CAPITAL LETTER DOBRO;Lu;0;L;;;;;N;;;;2C34; -2C05;GLAGOLITIC CAPITAL LETTER YESTU;Lu;0;L;;;;;N;;;;2C35; -2C06;GLAGOLITIC CAPITAL LETTER ZHIVETE;Lu;0;L;;;;;N;;;;2C36; -2C07;GLAGOLITIC CAPITAL LETTER DZELO;Lu;0;L;;;;;N;;;;2C37; -2C08;GLAGOLITIC CAPITAL LETTER ZEMLJA;Lu;0;L;;;;;N;;;;2C38; -2C09;GLAGOLITIC CAPITAL LETTER IZHE;Lu;0;L;;;;;N;;;;2C39; -2C0A;GLAGOLITIC CAPITAL LETTER INITIAL IZHE;Lu;0;L;;;;;N;;;;2C3A; -2C0B;GLAGOLITIC CAPITAL LETTER I;Lu;0;L;;;;;N;;;;2C3B; -2C0C;GLAGOLITIC CAPITAL LETTER DJERVI;Lu;0;L;;;;;N;;;;2C3C; -2C0D;GLAGOLITIC CAPITAL LETTER KAKO;Lu;0;L;;;;;N;;;;2C3D; -2C0E;GLAGOLITIC CAPITAL LETTER LJUDIJE;Lu;0;L;;;;;N;;;;2C3E; -2C0F;GLAGOLITIC CAPITAL LETTER MYSLITE;Lu;0;L;;;;;N;;;;2C3F; -2C10;GLAGOLITIC CAPITAL LETTER NASHI;Lu;0;L;;;;;N;;;;2C40; -2C11;GLAGOLITIC CAPITAL LETTER ONU;Lu;0;L;;;;;N;;;;2C41; -2C12;GLAGOLITIC CAPITAL LETTER POKOJI;Lu;0;L;;;;;N;;;;2C42; -2C13;GLAGOLITIC CAPITAL LETTER RITSI;Lu;0;L;;;;;N;;;;2C43; -2C14;GLAGOLITIC CAPITAL LETTER SLOVO;Lu;0;L;;;;;N;;;;2C44; -2C15;GLAGOLITIC CAPITAL LETTER TVRIDO;Lu;0;L;;;;;N;;;;2C45; -2C16;GLAGOLITIC CAPITAL LETTER UKU;Lu;0;L;;;;;N;;;;2C46; -2C17;GLAGOLITIC CAPITAL LETTER FRITU;Lu;0;L;;;;;N;;;;2C47; -2C18;GLAGOLITIC CAPITAL LETTER HERU;Lu;0;L;;;;;N;;;;2C48; -2C19;GLAGOLITIC CAPITAL LETTER OTU;Lu;0;L;;;;;N;;;;2C49; -2C1A;GLAGOLITIC CAPITAL LETTER PE;Lu;0;L;;;;;N;;;;2C4A; -2C1B;GLAGOLITIC CAPITAL LETTER SHTA;Lu;0;L;;;;;N;;;;2C4B; -2C1C;GLAGOLITIC CAPITAL LETTER TSI;Lu;0;L;;;;;N;;;;2C4C; -2C1D;GLAGOLITIC CAPITAL LETTER CHRIVI;Lu;0;L;;;;;N;;;;2C4D; -2C1E;GLAGOLITIC CAPITAL LETTER SHA;Lu;0;L;;;;;N;;;;2C4E; -2C1F;GLAGOLITIC CAPITAL LETTER YERU;Lu;0;L;;;;;N;;;;2C4F; -2C20;GLAGOLITIC CAPITAL LETTER YERI;Lu;0;L;;;;;N;;;;2C50; -2C21;GLAGOLITIC CAPITAL LETTER YATI;Lu;0;L;;;;;N;;;;2C51; -2C22;GLAGOLITIC CAPITAL LETTER SPIDERY HA;Lu;0;L;;;;;N;;;;2C52; -2C23;GLAGOLITIC CAPITAL LETTER YU;Lu;0;L;;;;;N;;;;2C53; -2C24;GLAGOLITIC CAPITAL LETTER SMALL YUS;Lu;0;L;;;;;N;;;;2C54; -2C25;GLAGOLITIC CAPITAL LETTER SMALL YUS WITH TAIL;Lu;0;L;;;;;N;;;;2C55; -2C26;GLAGOLITIC CAPITAL LETTER YO;Lu;0;L;;;;;N;;;;2C56; -2C27;GLAGOLITIC CAPITAL LETTER IOTATED SMALL YUS;Lu;0;L;;;;;N;;;;2C57; -2C28;GLAGOLITIC CAPITAL LETTER BIG YUS;Lu;0;L;;;;;N;;;;2C58; -2C29;GLAGOLITIC CAPITAL LETTER IOTATED BIG YUS;Lu;0;L;;;;;N;;;;2C59; -2C2A;GLAGOLITIC CAPITAL LETTER FITA;Lu;0;L;;;;;N;;;;2C5A; -2C2B;GLAGOLITIC CAPITAL LETTER IZHITSA;Lu;0;L;;;;;N;;;;2C5B; -2C2C;GLAGOLITIC CAPITAL LETTER SHTAPIC;Lu;0;L;;;;;N;;;;2C5C; -2C2D;GLAGOLITIC CAPITAL LETTER TROKUTASTI A;Lu;0;L;;;;;N;;;;2C5D; -2C2E;GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE;Lu;0;L;;;;;N;;;;2C5E; -2C30;GLAGOLITIC SMALL LETTER AZU;Ll;0;L;;;;;N;;;2C00;;2C00 -2C31;GLAGOLITIC SMALL LETTER BUKY;Ll;0;L;;;;;N;;;2C01;;2C01 -2C32;GLAGOLITIC SMALL LETTER VEDE;Ll;0;L;;;;;N;;;2C02;;2C02 -2C33;GLAGOLITIC SMALL LETTER GLAGOLI;Ll;0;L;;;;;N;;;2C03;;2C03 -2C34;GLAGOLITIC SMALL LETTER DOBRO;Ll;0;L;;;;;N;;;2C04;;2C04 -2C35;GLAGOLITIC SMALL LETTER YESTU;Ll;0;L;;;;;N;;;2C05;;2C05 -2C36;GLAGOLITIC SMALL LETTER ZHIVETE;Ll;0;L;;;;;N;;;2C06;;2C06 -2C37;GLAGOLITIC SMALL LETTER DZELO;Ll;0;L;;;;;N;;;2C07;;2C07 -2C38;GLAGOLITIC SMALL LETTER ZEMLJA;Ll;0;L;;;;;N;;;2C08;;2C08 -2C39;GLAGOLITIC SMALL LETTER IZHE;Ll;0;L;;;;;N;;;2C09;;2C09 -2C3A;GLAGOLITIC SMALL LETTER INITIAL IZHE;Ll;0;L;;;;;N;;;2C0A;;2C0A -2C3B;GLAGOLITIC SMALL LETTER I;Ll;0;L;;;;;N;;;2C0B;;2C0B -2C3C;GLAGOLITIC SMALL LETTER DJERVI;Ll;0;L;;;;;N;;;2C0C;;2C0C -2C3D;GLAGOLITIC SMALL LETTER KAKO;Ll;0;L;;;;;N;;;2C0D;;2C0D -2C3E;GLAGOLITIC SMALL LETTER LJUDIJE;Ll;0;L;;;;;N;;;2C0E;;2C0E -2C3F;GLAGOLITIC SMALL LETTER MYSLITE;Ll;0;L;;;;;N;;;2C0F;;2C0F -2C40;GLAGOLITIC SMALL LETTER NASHI;Ll;0;L;;;;;N;;;2C10;;2C10 -2C41;GLAGOLITIC SMALL LETTER ONU;Ll;0;L;;;;;N;;;2C11;;2C11 -2C42;GLAGOLITIC SMALL LETTER POKOJI;Ll;0;L;;;;;N;;;2C12;;2C12 -2C43;GLAGOLITIC SMALL LETTER RITSI;Ll;0;L;;;;;N;;;2C13;;2C13 -2C44;GLAGOLITIC SMALL LETTER SLOVO;Ll;0;L;;;;;N;;;2C14;;2C14 -2C45;GLAGOLITIC SMALL LETTER TVRIDO;Ll;0;L;;;;;N;;;2C15;;2C15 -2C46;GLAGOLITIC SMALL LETTER UKU;Ll;0;L;;;;;N;;;2C16;;2C16 -2C47;GLAGOLITIC SMALL LETTER FRITU;Ll;0;L;;;;;N;;;2C17;;2C17 -2C48;GLAGOLITIC SMALL LETTER HERU;Ll;0;L;;;;;N;;;2C18;;2C18 -2C49;GLAGOLITIC SMALL LETTER OTU;Ll;0;L;;;;;N;;;2C19;;2C19 -2C4A;GLAGOLITIC SMALL LETTER PE;Ll;0;L;;;;;N;;;2C1A;;2C1A -2C4B;GLAGOLITIC SMALL LETTER SHTA;Ll;0;L;;;;;N;;;2C1B;;2C1B -2C4C;GLAGOLITIC SMALL LETTER TSI;Ll;0;L;;;;;N;;;2C1C;;2C1C -2C4D;GLAGOLITIC SMALL LETTER CHRIVI;Ll;0;L;;;;;N;;;2C1D;;2C1D -2C4E;GLAGOLITIC SMALL LETTER SHA;Ll;0;L;;;;;N;;;2C1E;;2C1E -2C4F;GLAGOLITIC SMALL LETTER YERU;Ll;0;L;;;;;N;;;2C1F;;2C1F -2C50;GLAGOLITIC SMALL LETTER YERI;Ll;0;L;;;;;N;;;2C20;;2C20 -2C51;GLAGOLITIC SMALL LETTER YATI;Ll;0;L;;;;;N;;;2C21;;2C21 -2C52;GLAGOLITIC SMALL LETTER SPIDERY HA;Ll;0;L;;;;;N;;;2C22;;2C22 -2C53;GLAGOLITIC SMALL LETTER YU;Ll;0;L;;;;;N;;;2C23;;2C23 -2C54;GLAGOLITIC SMALL LETTER SMALL YUS;Ll;0;L;;;;;N;;;2C24;;2C24 -2C55;GLAGOLITIC SMALL LETTER SMALL YUS WITH TAIL;Ll;0;L;;;;;N;;;2C25;;2C25 -2C56;GLAGOLITIC SMALL LETTER YO;Ll;0;L;;;;;N;;;2C26;;2C26 -2C57;GLAGOLITIC SMALL LETTER IOTATED SMALL YUS;Ll;0;L;;;;;N;;;2C27;;2C27 -2C58;GLAGOLITIC SMALL LETTER BIG YUS;Ll;0;L;;;;;N;;;2C28;;2C28 -2C59;GLAGOLITIC SMALL LETTER IOTATED BIG YUS;Ll;0;L;;;;;N;;;2C29;;2C29 -2C5A;GLAGOLITIC SMALL LETTER FITA;Ll;0;L;;;;;N;;;2C2A;;2C2A -2C5B;GLAGOLITIC SMALL LETTER IZHITSA;Ll;0;L;;;;;N;;;2C2B;;2C2B -2C5C;GLAGOLITIC SMALL LETTER SHTAPIC;Ll;0;L;;;;;N;;;2C2C;;2C2C -2C5D;GLAGOLITIC SMALL LETTER TROKUTASTI A;Ll;0;L;;;;;N;;;2C2D;;2C2D -2C5E;GLAGOLITIC SMALL LETTER LATINATE MYSLITE;Ll;0;L;;;;;N;;;2C2E;;2C2E -2C60;LATIN CAPITAL LETTER L WITH DOUBLE BAR;Lu;0;L;;;;;N;;;;2C61; -2C61;LATIN SMALL LETTER L WITH DOUBLE BAR;Ll;0;L;;;;;N;;;2C60;;2C60 -2C62;LATIN CAPITAL LETTER L WITH MIDDLE TILDE;Lu;0;L;;;;;N;;;;026B; -2C63;LATIN CAPITAL LETTER P WITH STROKE;Lu;0;L;;;;;N;;;;1D7D; -2C64;LATIN CAPITAL LETTER R WITH TAIL;Lu;0;L;;;;;N;;;;027D; -2C65;LATIN SMALL LETTER A WITH STROKE;Ll;0;L;;;;;N;;;023A;;023A -2C66;LATIN SMALL LETTER T WITH DIAGONAL STROKE;Ll;0;L;;;;;N;;;023E;;023E -2C67;LATIN CAPITAL LETTER H WITH DESCENDER;Lu;0;L;;;;;N;;;;2C68; -2C68;LATIN SMALL LETTER H WITH DESCENDER;Ll;0;L;;;;;N;;;2C67;;2C67 -2C69;LATIN CAPITAL LETTER K WITH DESCENDER;Lu;0;L;;;;;N;;;;2C6A; -2C6A;LATIN SMALL LETTER K WITH DESCENDER;Ll;0;L;;;;;N;;;2C69;;2C69 -2C6B;LATIN CAPITAL LETTER Z WITH DESCENDER;Lu;0;L;;;;;N;;;;2C6C; -2C6C;LATIN SMALL LETTER Z WITH DESCENDER;Ll;0;L;;;;;N;;;2C6B;;2C6B -2C6D;LATIN CAPITAL LETTER ALPHA;Lu;0;L;;;;;N;;;;0251; -2C6E;LATIN CAPITAL LETTER M WITH HOOK;Lu;0;L;;;;;N;;;;0271; -2C6F;LATIN CAPITAL LETTER TURNED A;Lu;0;L;;;;;N;;;;0250; -2C70;LATIN CAPITAL LETTER TURNED ALPHA;Lu;0;L;;;;;N;;;;0252; -2C71;LATIN SMALL LETTER V WITH RIGHT HOOK;Ll;0;L;;;;;N;;;;; -2C72;LATIN CAPITAL LETTER W WITH HOOK;Lu;0;L;;;;;N;;;;2C73; -2C73;LATIN SMALL LETTER W WITH HOOK;Ll;0;L;;;;;N;;;2C72;;2C72 -2C74;LATIN SMALL LETTER V WITH CURL;Ll;0;L;;;;;N;;;;; -2C75;LATIN CAPITAL LETTER HALF H;Lu;0;L;;;;;N;;;;2C76; -2C76;LATIN SMALL LETTER HALF H;Ll;0;L;;;;;N;;;2C75;;2C75 -2C77;LATIN SMALL LETTER TAILLESS PHI;Ll;0;L;;;;;N;;;;; -2C78;LATIN SMALL LETTER E WITH NOTCH;Ll;0;L;;;;;N;;;;; -2C79;LATIN SMALL LETTER TURNED R WITH TAIL;Ll;0;L;;;;;N;;;;; -2C7A;LATIN SMALL LETTER O WITH LOW RING INSIDE;Ll;0;L;;;;;N;;;;; -2C7B;LATIN LETTER SMALL CAPITAL TURNED E;Ll;0;L;;;;;N;;;;; -2C7C;LATIN SUBSCRIPT SMALL LETTER J;Ll;0;L; 006A;;;;N;;;;; -2C7D;MODIFIER LETTER CAPITAL V;Lm;0;L; 0056;;;;N;;;;; -2C7E;LATIN CAPITAL LETTER S WITH SWASH TAIL;Lu;0;L;;;;;N;;;;023F; -2C7F;LATIN CAPITAL LETTER Z WITH SWASH TAIL;Lu;0;L;;;;;N;;;;0240; -2C80;COPTIC CAPITAL LETTER ALFA;Lu;0;L;;;;;N;;;;2C81; -2C81;COPTIC SMALL LETTER ALFA;Ll;0;L;;;;;N;;;2C80;;2C80 -2C82;COPTIC CAPITAL LETTER VIDA;Lu;0;L;;;;;N;;;;2C83; -2C83;COPTIC SMALL LETTER VIDA;Ll;0;L;;;;;N;;;2C82;;2C82 -2C84;COPTIC CAPITAL LETTER GAMMA;Lu;0;L;;;;;N;;;;2C85; -2C85;COPTIC SMALL LETTER GAMMA;Ll;0;L;;;;;N;;;2C84;;2C84 -2C86;COPTIC CAPITAL LETTER DALDA;Lu;0;L;;;;;N;;;;2C87; -2C87;COPTIC SMALL LETTER DALDA;Ll;0;L;;;;;N;;;2C86;;2C86 -2C88;COPTIC CAPITAL LETTER EIE;Lu;0;L;;;;;N;;;;2C89; -2C89;COPTIC SMALL LETTER EIE;Ll;0;L;;;;;N;;;2C88;;2C88 -2C8A;COPTIC CAPITAL LETTER SOU;Lu;0;L;;;;;N;;;;2C8B; -2C8B;COPTIC SMALL LETTER SOU;Ll;0;L;;;;;N;;;2C8A;;2C8A -2C8C;COPTIC CAPITAL LETTER ZATA;Lu;0;L;;;;;N;;;;2C8D; -2C8D;COPTIC SMALL LETTER ZATA;Ll;0;L;;;;;N;;;2C8C;;2C8C -2C8E;COPTIC CAPITAL LETTER HATE;Lu;0;L;;;;;N;;;;2C8F; -2C8F;COPTIC SMALL LETTER HATE;Ll;0;L;;;;;N;;;2C8E;;2C8E -2C90;COPTIC CAPITAL LETTER THETHE;Lu;0;L;;;;;N;;;;2C91; -2C91;COPTIC SMALL LETTER THETHE;Ll;0;L;;;;;N;;;2C90;;2C90 -2C92;COPTIC CAPITAL LETTER IAUDA;Lu;0;L;;;;;N;;;;2C93; -2C93;COPTIC SMALL LETTER IAUDA;Ll;0;L;;;;;N;;;2C92;;2C92 -2C94;COPTIC CAPITAL LETTER KAPA;Lu;0;L;;;;;N;;;;2C95; -2C95;COPTIC SMALL LETTER KAPA;Ll;0;L;;;;;N;;;2C94;;2C94 -2C96;COPTIC CAPITAL LETTER LAULA;Lu;0;L;;;;;N;;;;2C97; -2C97;COPTIC SMALL LETTER LAULA;Ll;0;L;;;;;N;;;2C96;;2C96 -2C98;COPTIC CAPITAL LETTER MI;Lu;0;L;;;;;N;;;;2C99; -2C99;COPTIC SMALL LETTER MI;Ll;0;L;;;;;N;;;2C98;;2C98 -2C9A;COPTIC CAPITAL LETTER NI;Lu;0;L;;;;;N;;;;2C9B; -2C9B;COPTIC SMALL LETTER NI;Ll;0;L;;;;;N;;;2C9A;;2C9A -2C9C;COPTIC CAPITAL LETTER KSI;Lu;0;L;;;;;N;;;;2C9D; -2C9D;COPTIC SMALL LETTER KSI;Ll;0;L;;;;;N;;;2C9C;;2C9C -2C9E;COPTIC CAPITAL LETTER O;Lu;0;L;;;;;N;;;;2C9F; -2C9F;COPTIC SMALL LETTER O;Ll;0;L;;;;;N;;;2C9E;;2C9E -2CA0;COPTIC CAPITAL LETTER PI;Lu;0;L;;;;;N;;;;2CA1; -2CA1;COPTIC SMALL LETTER PI;Ll;0;L;;;;;N;;;2CA0;;2CA0 -2CA2;COPTIC CAPITAL LETTER RO;Lu;0;L;;;;;N;;;;2CA3; -2CA3;COPTIC SMALL LETTER RO;Ll;0;L;;;;;N;;;2CA2;;2CA2 -2CA4;COPTIC CAPITAL LETTER SIMA;Lu;0;L;;;;;N;;;;2CA5; -2CA5;COPTIC SMALL LETTER SIMA;Ll;0;L;;;;;N;;;2CA4;;2CA4 -2CA6;COPTIC CAPITAL LETTER TAU;Lu;0;L;;;;;N;;;;2CA7; -2CA7;COPTIC SMALL LETTER TAU;Ll;0;L;;;;;N;;;2CA6;;2CA6 -2CA8;COPTIC CAPITAL LETTER UA;Lu;0;L;;;;;N;;;;2CA9; -2CA9;COPTIC SMALL LETTER UA;Ll;0;L;;;;;N;;;2CA8;;2CA8 -2CAA;COPTIC CAPITAL LETTER FI;Lu;0;L;;;;;N;;;;2CAB; -2CAB;COPTIC SMALL LETTER FI;Ll;0;L;;;;;N;;;2CAA;;2CAA -2CAC;COPTIC CAPITAL LETTER KHI;Lu;0;L;;;;;N;;;;2CAD; -2CAD;COPTIC SMALL LETTER KHI;Ll;0;L;;;;;N;;;2CAC;;2CAC -2CAE;COPTIC CAPITAL LETTER PSI;Lu;0;L;;;;;N;;;;2CAF; -2CAF;COPTIC SMALL LETTER PSI;Ll;0;L;;;;;N;;;2CAE;;2CAE -2CB0;COPTIC CAPITAL LETTER OOU;Lu;0;L;;;;;N;;;;2CB1; -2CB1;COPTIC SMALL LETTER OOU;Ll;0;L;;;;;N;;;2CB0;;2CB0 -2CB2;COPTIC CAPITAL LETTER DIALECT-P ALEF;Lu;0;L;;;;;N;;;;2CB3; -2CB3;COPTIC SMALL LETTER DIALECT-P ALEF;Ll;0;L;;;;;N;;;2CB2;;2CB2 -2CB4;COPTIC CAPITAL LETTER OLD COPTIC AIN;Lu;0;L;;;;;N;;;;2CB5; -2CB5;COPTIC SMALL LETTER OLD COPTIC AIN;Ll;0;L;;;;;N;;;2CB4;;2CB4 -2CB6;COPTIC CAPITAL LETTER CRYPTOGRAMMIC EIE;Lu;0;L;;;;;N;;;;2CB7; -2CB7;COPTIC SMALL LETTER CRYPTOGRAMMIC EIE;Ll;0;L;;;;;N;;;2CB6;;2CB6 -2CB8;COPTIC CAPITAL LETTER DIALECT-P KAPA;Lu;0;L;;;;;N;;;;2CB9; -2CB9;COPTIC SMALL LETTER DIALECT-P KAPA;Ll;0;L;;;;;N;;;2CB8;;2CB8 -2CBA;COPTIC CAPITAL LETTER DIALECT-P NI;Lu;0;L;;;;;N;;;;2CBB; -2CBB;COPTIC SMALL LETTER DIALECT-P NI;Ll;0;L;;;;;N;;;2CBA;;2CBA -2CBC;COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI;Lu;0;L;;;;;N;;;;2CBD; -2CBD;COPTIC SMALL LETTER CRYPTOGRAMMIC NI;Ll;0;L;;;;;N;;;2CBC;;2CBC -2CBE;COPTIC CAPITAL LETTER OLD COPTIC OOU;Lu;0;L;;;;;N;;;;2CBF; -2CBF;COPTIC SMALL LETTER OLD COPTIC OOU;Ll;0;L;;;;;N;;;2CBE;;2CBE -2CC0;COPTIC CAPITAL LETTER SAMPI;Lu;0;L;;;;;N;;;;2CC1; -2CC1;COPTIC SMALL LETTER SAMPI;Ll;0;L;;;;;N;;;2CC0;;2CC0 -2CC2;COPTIC CAPITAL LETTER CROSSED SHEI;Lu;0;L;;;;;N;;;;2CC3; -2CC3;COPTIC SMALL LETTER CROSSED SHEI;Ll;0;L;;;;;N;;;2CC2;;2CC2 -2CC4;COPTIC CAPITAL LETTER OLD COPTIC SHEI;Lu;0;L;;;;;N;;;;2CC5; -2CC5;COPTIC SMALL LETTER OLD COPTIC SHEI;Ll;0;L;;;;;N;;;2CC4;;2CC4 -2CC6;COPTIC CAPITAL LETTER OLD COPTIC ESH;Lu;0;L;;;;;N;;;;2CC7; -2CC7;COPTIC SMALL LETTER OLD COPTIC ESH;Ll;0;L;;;;;N;;;2CC6;;2CC6 -2CC8;COPTIC CAPITAL LETTER AKHMIMIC KHEI;Lu;0;L;;;;;N;;;;2CC9; -2CC9;COPTIC SMALL LETTER AKHMIMIC KHEI;Ll;0;L;;;;;N;;;2CC8;;2CC8 -2CCA;COPTIC CAPITAL LETTER DIALECT-P HORI;Lu;0;L;;;;;N;;;;2CCB; -2CCB;COPTIC SMALL LETTER DIALECT-P HORI;Ll;0;L;;;;;N;;;2CCA;;2CCA -2CCC;COPTIC CAPITAL LETTER OLD COPTIC HORI;Lu;0;L;;;;;N;;;;2CCD; -2CCD;COPTIC SMALL LETTER OLD COPTIC HORI;Ll;0;L;;;;;N;;;2CCC;;2CCC -2CCE;COPTIC CAPITAL LETTER OLD COPTIC HA;Lu;0;L;;;;;N;;;;2CCF; -2CCF;COPTIC SMALL LETTER OLD COPTIC HA;Ll;0;L;;;;;N;;;2CCE;;2CCE -2CD0;COPTIC CAPITAL LETTER L-SHAPED HA;Lu;0;L;;;;;N;;;;2CD1; -2CD1;COPTIC SMALL LETTER L-SHAPED HA;Ll;0;L;;;;;N;;;2CD0;;2CD0 -2CD2;COPTIC CAPITAL LETTER OLD COPTIC HEI;Lu;0;L;;;;;N;;;;2CD3; -2CD3;COPTIC SMALL LETTER OLD COPTIC HEI;Ll;0;L;;;;;N;;;2CD2;;2CD2 -2CD4;COPTIC CAPITAL LETTER OLD COPTIC HAT;Lu;0;L;;;;;N;;;;2CD5; -2CD5;COPTIC SMALL LETTER OLD COPTIC HAT;Ll;0;L;;;;;N;;;2CD4;;2CD4 -2CD6;COPTIC CAPITAL LETTER OLD COPTIC GANGIA;Lu;0;L;;;;;N;;;;2CD7; -2CD7;COPTIC SMALL LETTER OLD COPTIC GANGIA;Ll;0;L;;;;;N;;;2CD6;;2CD6 -2CD8;COPTIC CAPITAL LETTER OLD COPTIC DJA;Lu;0;L;;;;;N;;;;2CD9; -2CD9;COPTIC SMALL LETTER OLD COPTIC DJA;Ll;0;L;;;;;N;;;2CD8;;2CD8 -2CDA;COPTIC CAPITAL LETTER OLD COPTIC SHIMA;Lu;0;L;;;;;N;;;;2CDB; -2CDB;COPTIC SMALL LETTER OLD COPTIC SHIMA;Ll;0;L;;;;;N;;;2CDA;;2CDA -2CDC;COPTIC CAPITAL LETTER OLD NUBIAN SHIMA;Lu;0;L;;;;;N;;;;2CDD; -2CDD;COPTIC SMALL LETTER OLD NUBIAN SHIMA;Ll;0;L;;;;;N;;;2CDC;;2CDC -2CDE;COPTIC CAPITAL LETTER OLD NUBIAN NGI;Lu;0;L;;;;;N;;;;2CDF; -2CDF;COPTIC SMALL LETTER OLD NUBIAN NGI;Ll;0;L;;;;;N;;;2CDE;;2CDE -2CE0;COPTIC CAPITAL LETTER OLD NUBIAN NYI;Lu;0;L;;;;;N;;;;2CE1; -2CE1;COPTIC SMALL LETTER OLD NUBIAN NYI;Ll;0;L;;;;;N;;;2CE0;;2CE0 -2CE2;COPTIC CAPITAL LETTER OLD NUBIAN WAU;Lu;0;L;;;;;N;;;;2CE3; -2CE3;COPTIC SMALL LETTER OLD NUBIAN WAU;Ll;0;L;;;;;N;;;2CE2;;2CE2 -2CE4;COPTIC SYMBOL KAI;Ll;0;L;;;;;N;;;;; -2CE5;COPTIC SYMBOL MI RO;So;0;ON;;;;;N;;;;; -2CE6;COPTIC SYMBOL PI RO;So;0;ON;;;;;N;;;;; -2CE7;COPTIC SYMBOL STAUROS;So;0;ON;;;;;N;;;;; -2CE8;COPTIC SYMBOL TAU RO;So;0;ON;;;;;N;;;;; -2CE9;COPTIC SYMBOL KHI RO;So;0;ON;;;;;N;;;;; -2CEA;COPTIC SYMBOL SHIMA SIMA;So;0;ON;;;;;N;;;;; -2CEB;COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI;Lu;0;L;;;;;N;;;;2CEC; -2CEC;COPTIC SMALL LETTER CRYPTOGRAMMIC SHEI;Ll;0;L;;;;;N;;;2CEB;;2CEB -2CED;COPTIC CAPITAL LETTER CRYPTOGRAMMIC GANGIA;Lu;0;L;;;;;N;;;;2CEE; -2CEE;COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA;Ll;0;L;;;;;N;;;2CED;;2CED -2CEF;COPTIC COMBINING NI ABOVE;Mn;230;NSM;;;;;N;;;;; -2CF0;COPTIC COMBINING SPIRITUS ASPER;Mn;230;NSM;;;;;N;;;;; -2CF1;COPTIC COMBINING SPIRITUS LENIS;Mn;230;NSM;;;;;N;;;;; -2CF9;COPTIC OLD NUBIAN FULL STOP;Po;0;ON;;;;;N;;;;; -2CFA;COPTIC OLD NUBIAN DIRECT QUESTION MARK;Po;0;ON;;;;;N;;;;; -2CFB;COPTIC OLD NUBIAN INDIRECT QUESTION MARK;Po;0;ON;;;;;N;;;;; -2CFC;COPTIC OLD NUBIAN VERSE DIVIDER;Po;0;ON;;;;;N;;;;; -2CFD;COPTIC FRACTION ONE HALF;No;0;ON;;;;1/2;N;;;;; -2CFE;COPTIC FULL STOP;Po;0;ON;;;;;N;;;;; -2CFF;COPTIC MORPHOLOGICAL DIVIDER;Po;0;ON;;;;;N;;;;; -2D00;GEORGIAN SMALL LETTER AN;Ll;0;L;;;;;N;;;10A0;;10A0 -2D01;GEORGIAN SMALL LETTER BAN;Ll;0;L;;;;;N;;;10A1;;10A1 -2D02;GEORGIAN SMALL LETTER GAN;Ll;0;L;;;;;N;;;10A2;;10A2 -2D03;GEORGIAN SMALL LETTER DON;Ll;0;L;;;;;N;;;10A3;;10A3 -2D04;GEORGIAN SMALL LETTER EN;Ll;0;L;;;;;N;;;10A4;;10A4 -2D05;GEORGIAN SMALL LETTER VIN;Ll;0;L;;;;;N;;;10A5;;10A5 -2D06;GEORGIAN SMALL LETTER ZEN;Ll;0;L;;;;;N;;;10A6;;10A6 -2D07;GEORGIAN SMALL LETTER TAN;Ll;0;L;;;;;N;;;10A7;;10A7 -2D08;GEORGIAN SMALL LETTER IN;Ll;0;L;;;;;N;;;10A8;;10A8 -2D09;GEORGIAN SMALL LETTER KAN;Ll;0;L;;;;;N;;;10A9;;10A9 -2D0A;GEORGIAN SMALL LETTER LAS;Ll;0;L;;;;;N;;;10AA;;10AA -2D0B;GEORGIAN SMALL LETTER MAN;Ll;0;L;;;;;N;;;10AB;;10AB -2D0C;GEORGIAN SMALL LETTER NAR;Ll;0;L;;;;;N;;;10AC;;10AC -2D0D;GEORGIAN SMALL LETTER ON;Ll;0;L;;;;;N;;;10AD;;10AD -2D0E;GEORGIAN SMALL LETTER PAR;Ll;0;L;;;;;N;;;10AE;;10AE -2D0F;GEORGIAN SMALL LETTER ZHAR;Ll;0;L;;;;;N;;;10AF;;10AF -2D10;GEORGIAN SMALL LETTER RAE;Ll;0;L;;;;;N;;;10B0;;10B0 -2D11;GEORGIAN SMALL LETTER SAN;Ll;0;L;;;;;N;;;10B1;;10B1 -2D12;GEORGIAN SMALL LETTER TAR;Ll;0;L;;;;;N;;;10B2;;10B2 -2D13;GEORGIAN SMALL LETTER UN;Ll;0;L;;;;;N;;;10B3;;10B3 -2D14;GEORGIAN SMALL LETTER PHAR;Ll;0;L;;;;;N;;;10B4;;10B4 -2D15;GEORGIAN SMALL LETTER KHAR;Ll;0;L;;;;;N;;;10B5;;10B5 -2D16;GEORGIAN SMALL LETTER GHAN;Ll;0;L;;;;;N;;;10B6;;10B6 -2D17;GEORGIAN SMALL LETTER QAR;Ll;0;L;;;;;N;;;10B7;;10B7 -2D18;GEORGIAN SMALL LETTER SHIN;Ll;0;L;;;;;N;;;10B8;;10B8 -2D19;GEORGIAN SMALL LETTER CHIN;Ll;0;L;;;;;N;;;10B9;;10B9 -2D1A;GEORGIAN SMALL LETTER CAN;Ll;0;L;;;;;N;;;10BA;;10BA -2D1B;GEORGIAN SMALL LETTER JIL;Ll;0;L;;;;;N;;;10BB;;10BB -2D1C;GEORGIAN SMALL LETTER CIL;Ll;0;L;;;;;N;;;10BC;;10BC -2D1D;GEORGIAN SMALL LETTER CHAR;Ll;0;L;;;;;N;;;10BD;;10BD -2D1E;GEORGIAN SMALL LETTER XAN;Ll;0;L;;;;;N;;;10BE;;10BE -2D1F;GEORGIAN SMALL LETTER JHAN;Ll;0;L;;;;;N;;;10BF;;10BF -2D20;GEORGIAN SMALL LETTER HAE;Ll;0;L;;;;;N;;;10C0;;10C0 -2D21;GEORGIAN SMALL LETTER HE;Ll;0;L;;;;;N;;;10C1;;10C1 -2D22;GEORGIAN SMALL LETTER HIE;Ll;0;L;;;;;N;;;10C2;;10C2 -2D23;GEORGIAN SMALL LETTER WE;Ll;0;L;;;;;N;;;10C3;;10C3 -2D24;GEORGIAN SMALL LETTER HAR;Ll;0;L;;;;;N;;;10C4;;10C4 -2D25;GEORGIAN SMALL LETTER HOE;Ll;0;L;;;;;N;;;10C5;;10C5 -2D30;TIFINAGH LETTER YA;Lo;0;L;;;;;N;;;;; -2D31;TIFINAGH LETTER YAB;Lo;0;L;;;;;N;;;;; -2D32;TIFINAGH LETTER YABH;Lo;0;L;;;;;N;;;;; -2D33;TIFINAGH LETTER YAG;Lo;0;L;;;;;N;;;;; -2D34;TIFINAGH LETTER YAGHH;Lo;0;L;;;;;N;;;;; -2D35;TIFINAGH LETTER BERBER ACADEMY YAJ;Lo;0;L;;;;;N;;;;; -2D36;TIFINAGH LETTER YAJ;Lo;0;L;;;;;N;;;;; -2D37;TIFINAGH LETTER YAD;Lo;0;L;;;;;N;;;;; -2D38;TIFINAGH LETTER YADH;Lo;0;L;;;;;N;;;;; -2D39;TIFINAGH LETTER YADD;Lo;0;L;;;;;N;;;;; -2D3A;TIFINAGH LETTER YADDH;Lo;0;L;;;;;N;;;;; -2D3B;TIFINAGH LETTER YEY;Lo;0;L;;;;;N;;;;; -2D3C;TIFINAGH LETTER YAF;Lo;0;L;;;;;N;;;;; -2D3D;TIFINAGH LETTER YAK;Lo;0;L;;;;;N;;;;; -2D3E;TIFINAGH LETTER TUAREG YAK;Lo;0;L;;;;;N;;;;; -2D3F;TIFINAGH LETTER YAKHH;Lo;0;L;;;;;N;;;;; -2D40;TIFINAGH LETTER YAH;Lo;0;L;;;;;N;;;;; -2D41;TIFINAGH LETTER BERBER ACADEMY YAH;Lo;0;L;;;;;N;;;;; -2D42;TIFINAGH LETTER TUAREG YAH;Lo;0;L;;;;;N;;;;; -2D43;TIFINAGH LETTER YAHH;Lo;0;L;;;;;N;;;;; -2D44;TIFINAGH LETTER YAA;Lo;0;L;;;;;N;;;;; -2D45;TIFINAGH LETTER YAKH;Lo;0;L;;;;;N;;;;; -2D46;TIFINAGH LETTER TUAREG YAKH;Lo;0;L;;;;;N;;;;; -2D47;TIFINAGH LETTER YAQ;Lo;0;L;;;;;N;;;;; -2D48;TIFINAGH LETTER TUAREG YAQ;Lo;0;L;;;;;N;;;;; -2D49;TIFINAGH LETTER YI;Lo;0;L;;;;;N;;;;; -2D4A;TIFINAGH LETTER YAZH;Lo;0;L;;;;;N;;;;; -2D4B;TIFINAGH LETTER AHAGGAR YAZH;Lo;0;L;;;;;N;;;;; -2D4C;TIFINAGH LETTER TUAREG YAZH;Lo;0;L;;;;;N;;;;; -2D4D;TIFINAGH LETTER YAL;Lo;0;L;;;;;N;;;;; -2D4E;TIFINAGH LETTER YAM;Lo;0;L;;;;;N;;;;; -2D4F;TIFINAGH LETTER YAN;Lo;0;L;;;;;N;;;;; -2D50;TIFINAGH LETTER TUAREG YAGN;Lo;0;L;;;;;N;;;;; -2D51;TIFINAGH LETTER TUAREG YANG;Lo;0;L;;;;;N;;;;; -2D52;TIFINAGH LETTER YAP;Lo;0;L;;;;;N;;;;; -2D53;TIFINAGH LETTER YU;Lo;0;L;;;;;N;;;;; -2D54;TIFINAGH LETTER YAR;Lo;0;L;;;;;N;;;;; -2D55;TIFINAGH LETTER YARR;Lo;0;L;;;;;N;;;;; -2D56;TIFINAGH LETTER YAGH;Lo;0;L;;;;;N;;;;; -2D57;TIFINAGH LETTER TUAREG YAGH;Lo;0;L;;;;;N;;;;; -2D58;TIFINAGH LETTER AYER YAGH;Lo;0;L;;;;;N;;;;; -2D59;TIFINAGH LETTER YAS;Lo;0;L;;;;;N;;;;; -2D5A;TIFINAGH LETTER YASS;Lo;0;L;;;;;N;;;;; -2D5B;TIFINAGH LETTER YASH;Lo;0;L;;;;;N;;;;; -2D5C;TIFINAGH LETTER YAT;Lo;0;L;;;;;N;;;;; -2D5D;TIFINAGH LETTER YATH;Lo;0;L;;;;;N;;;;; -2D5E;TIFINAGH LETTER YACH;Lo;0;L;;;;;N;;;;; -2D5F;TIFINAGH LETTER YATT;Lo;0;L;;;;;N;;;;; -2D60;TIFINAGH LETTER YAV;Lo;0;L;;;;;N;;;;; -2D61;TIFINAGH LETTER YAW;Lo;0;L;;;;;N;;;;; -2D62;TIFINAGH LETTER YAY;Lo;0;L;;;;;N;;;;; -2D63;TIFINAGH LETTER YAZ;Lo;0;L;;;;;N;;;;; -2D64;TIFINAGH LETTER TAWELLEMET YAZ;Lo;0;L;;;;;N;;;;; -2D65;TIFINAGH LETTER YAZZ;Lo;0;L;;;;;N;;;;; -2D6F;TIFINAGH MODIFIER LETTER LABIALIZATION MARK;Lm;0;L; 2D61;;;;N;;;;; -2D80;ETHIOPIC SYLLABLE LOA;Lo;0;L;;;;;N;;;;; -2D81;ETHIOPIC SYLLABLE MOA;Lo;0;L;;;;;N;;;;; -2D82;ETHIOPIC SYLLABLE ROA;Lo;0;L;;;;;N;;;;; -2D83;ETHIOPIC SYLLABLE SOA;Lo;0;L;;;;;N;;;;; -2D84;ETHIOPIC SYLLABLE SHOA;Lo;0;L;;;;;N;;;;; -2D85;ETHIOPIC SYLLABLE BOA;Lo;0;L;;;;;N;;;;; -2D86;ETHIOPIC SYLLABLE TOA;Lo;0;L;;;;;N;;;;; -2D87;ETHIOPIC SYLLABLE COA;Lo;0;L;;;;;N;;;;; -2D88;ETHIOPIC SYLLABLE NOA;Lo;0;L;;;;;N;;;;; -2D89;ETHIOPIC SYLLABLE NYOA;Lo;0;L;;;;;N;;;;; -2D8A;ETHIOPIC SYLLABLE GLOTTAL OA;Lo;0;L;;;;;N;;;;; -2D8B;ETHIOPIC SYLLABLE ZOA;Lo;0;L;;;;;N;;;;; -2D8C;ETHIOPIC SYLLABLE DOA;Lo;0;L;;;;;N;;;;; -2D8D;ETHIOPIC SYLLABLE DDOA;Lo;0;L;;;;;N;;;;; -2D8E;ETHIOPIC SYLLABLE JOA;Lo;0;L;;;;;N;;;;; -2D8F;ETHIOPIC SYLLABLE THOA;Lo;0;L;;;;;N;;;;; -2D90;ETHIOPIC SYLLABLE CHOA;Lo;0;L;;;;;N;;;;; -2D91;ETHIOPIC SYLLABLE PHOA;Lo;0;L;;;;;N;;;;; -2D92;ETHIOPIC SYLLABLE POA;Lo;0;L;;;;;N;;;;; -2D93;ETHIOPIC SYLLABLE GGWA;Lo;0;L;;;;;N;;;;; -2D94;ETHIOPIC SYLLABLE GGWI;Lo;0;L;;;;;N;;;;; -2D95;ETHIOPIC SYLLABLE GGWEE;Lo;0;L;;;;;N;;;;; -2D96;ETHIOPIC SYLLABLE GGWE;Lo;0;L;;;;;N;;;;; -2DA0;ETHIOPIC SYLLABLE SSA;Lo;0;L;;;;;N;;;;; -2DA1;ETHIOPIC SYLLABLE SSU;Lo;0;L;;;;;N;;;;; -2DA2;ETHIOPIC SYLLABLE SSI;Lo;0;L;;;;;N;;;;; -2DA3;ETHIOPIC SYLLABLE SSAA;Lo;0;L;;;;;N;;;;; -2DA4;ETHIOPIC SYLLABLE SSEE;Lo;0;L;;;;;N;;;;; -2DA5;ETHIOPIC SYLLABLE SSE;Lo;0;L;;;;;N;;;;; -2DA6;ETHIOPIC SYLLABLE SSO;Lo;0;L;;;;;N;;;;; -2DA8;ETHIOPIC SYLLABLE CCA;Lo;0;L;;;;;N;;;;; -2DA9;ETHIOPIC SYLLABLE CCU;Lo;0;L;;;;;N;;;;; -2DAA;ETHIOPIC SYLLABLE CCI;Lo;0;L;;;;;N;;;;; -2DAB;ETHIOPIC SYLLABLE CCAA;Lo;0;L;;;;;N;;;;; -2DAC;ETHIOPIC SYLLABLE CCEE;Lo;0;L;;;;;N;;;;; -2DAD;ETHIOPIC SYLLABLE CCE;Lo;0;L;;;;;N;;;;; -2DAE;ETHIOPIC SYLLABLE CCO;Lo;0;L;;;;;N;;;;; -2DB0;ETHIOPIC SYLLABLE ZZA;Lo;0;L;;;;;N;;;;; -2DB1;ETHIOPIC SYLLABLE ZZU;Lo;0;L;;;;;N;;;;; -2DB2;ETHIOPIC SYLLABLE ZZI;Lo;0;L;;;;;N;;;;; -2DB3;ETHIOPIC SYLLABLE ZZAA;Lo;0;L;;;;;N;;;;; -2DB4;ETHIOPIC SYLLABLE ZZEE;Lo;0;L;;;;;N;;;;; -2DB5;ETHIOPIC SYLLABLE ZZE;Lo;0;L;;;;;N;;;;; -2DB6;ETHIOPIC SYLLABLE ZZO;Lo;0;L;;;;;N;;;;; -2DB8;ETHIOPIC SYLLABLE CCHA;Lo;0;L;;;;;N;;;;; -2DB9;ETHIOPIC SYLLABLE CCHU;Lo;0;L;;;;;N;;;;; -2DBA;ETHIOPIC SYLLABLE CCHI;Lo;0;L;;;;;N;;;;; -2DBB;ETHIOPIC SYLLABLE CCHAA;Lo;0;L;;;;;N;;;;; -2DBC;ETHIOPIC SYLLABLE CCHEE;Lo;0;L;;;;;N;;;;; -2DBD;ETHIOPIC SYLLABLE CCHE;Lo;0;L;;;;;N;;;;; -2DBE;ETHIOPIC SYLLABLE CCHO;Lo;0;L;;;;;N;;;;; -2DC0;ETHIOPIC SYLLABLE QYA;Lo;0;L;;;;;N;;;;; -2DC1;ETHIOPIC SYLLABLE QYU;Lo;0;L;;;;;N;;;;; -2DC2;ETHIOPIC SYLLABLE QYI;Lo;0;L;;;;;N;;;;; -2DC3;ETHIOPIC SYLLABLE QYAA;Lo;0;L;;;;;N;;;;; -2DC4;ETHIOPIC SYLLABLE QYEE;Lo;0;L;;;;;N;;;;; -2DC5;ETHIOPIC SYLLABLE QYE;Lo;0;L;;;;;N;;;;; -2DC6;ETHIOPIC SYLLABLE QYO;Lo;0;L;;;;;N;;;;; -2DC8;ETHIOPIC SYLLABLE KYA;Lo;0;L;;;;;N;;;;; -2DC9;ETHIOPIC SYLLABLE KYU;Lo;0;L;;;;;N;;;;; -2DCA;ETHIOPIC SYLLABLE KYI;Lo;0;L;;;;;N;;;;; -2DCB;ETHIOPIC SYLLABLE KYAA;Lo;0;L;;;;;N;;;;; -2DCC;ETHIOPIC SYLLABLE KYEE;Lo;0;L;;;;;N;;;;; -2DCD;ETHIOPIC SYLLABLE KYE;Lo;0;L;;;;;N;;;;; -2DCE;ETHIOPIC SYLLABLE KYO;Lo;0;L;;;;;N;;;;; -2DD0;ETHIOPIC SYLLABLE XYA;Lo;0;L;;;;;N;;;;; -2DD1;ETHIOPIC SYLLABLE XYU;Lo;0;L;;;;;N;;;;; -2DD2;ETHIOPIC SYLLABLE XYI;Lo;0;L;;;;;N;;;;; -2DD3;ETHIOPIC SYLLABLE XYAA;Lo;0;L;;;;;N;;;;; -2DD4;ETHIOPIC SYLLABLE XYEE;Lo;0;L;;;;;N;;;;; -2DD5;ETHIOPIC SYLLABLE XYE;Lo;0;L;;;;;N;;;;; -2DD6;ETHIOPIC SYLLABLE XYO;Lo;0;L;;;;;N;;;;; -2DD8;ETHIOPIC SYLLABLE GYA;Lo;0;L;;;;;N;;;;; -2DD9;ETHIOPIC SYLLABLE GYU;Lo;0;L;;;;;N;;;;; -2DDA;ETHIOPIC SYLLABLE GYI;Lo;0;L;;;;;N;;;;; -2DDB;ETHIOPIC SYLLABLE GYAA;Lo;0;L;;;;;N;;;;; -2DDC;ETHIOPIC SYLLABLE GYEE;Lo;0;L;;;;;N;;;;; -2DDD;ETHIOPIC SYLLABLE GYE;Lo;0;L;;;;;N;;;;; -2DDE;ETHIOPIC SYLLABLE GYO;Lo;0;L;;;;;N;;;;; -2DE0;COMBINING CYRILLIC LETTER BE;Mn;230;NSM;;;;;N;;;;; -2DE1;COMBINING CYRILLIC LETTER VE;Mn;230;NSM;;;;;N;;;;; -2DE2;COMBINING CYRILLIC LETTER GHE;Mn;230;NSM;;;;;N;;;;; -2DE3;COMBINING CYRILLIC LETTER DE;Mn;230;NSM;;;;;N;;;;; -2DE4;COMBINING CYRILLIC LETTER ZHE;Mn;230;NSM;;;;;N;;;;; -2DE5;COMBINING CYRILLIC LETTER ZE;Mn;230;NSM;;;;;N;;;;; -2DE6;COMBINING CYRILLIC LETTER KA;Mn;230;NSM;;;;;N;;;;; -2DE7;COMBINING CYRILLIC LETTER EL;Mn;230;NSM;;;;;N;;;;; -2DE8;COMBINING CYRILLIC LETTER EM;Mn;230;NSM;;;;;N;;;;; -2DE9;COMBINING CYRILLIC LETTER EN;Mn;230;NSM;;;;;N;;;;; -2DEA;COMBINING CYRILLIC LETTER O;Mn;230;NSM;;;;;N;;;;; -2DEB;COMBINING CYRILLIC LETTER PE;Mn;230;NSM;;;;;N;;;;; -2DEC;COMBINING CYRILLIC LETTER ER;Mn;230;NSM;;;;;N;;;;; -2DED;COMBINING CYRILLIC LETTER ES;Mn;230;NSM;;;;;N;;;;; -2DEE;COMBINING CYRILLIC LETTER TE;Mn;230;NSM;;;;;N;;;;; -2DEF;COMBINING CYRILLIC LETTER HA;Mn;230;NSM;;;;;N;;;;; -2DF0;COMBINING CYRILLIC LETTER TSE;Mn;230;NSM;;;;;N;;;;; -2DF1;COMBINING CYRILLIC LETTER CHE;Mn;230;NSM;;;;;N;;;;; -2DF2;COMBINING CYRILLIC LETTER SHA;Mn;230;NSM;;;;;N;;;;; -2DF3;COMBINING CYRILLIC LETTER SHCHA;Mn;230;NSM;;;;;N;;;;; -2DF4;COMBINING CYRILLIC LETTER FITA;Mn;230;NSM;;;;;N;;;;; -2DF5;COMBINING CYRILLIC LETTER ES-TE;Mn;230;NSM;;;;;N;;;;; -2DF6;COMBINING CYRILLIC LETTER A;Mn;230;NSM;;;;;N;;;;; -2DF7;COMBINING CYRILLIC LETTER IE;Mn;230;NSM;;;;;N;;;;; -2DF8;COMBINING CYRILLIC LETTER DJERV;Mn;230;NSM;;;;;N;;;;; -2DF9;COMBINING CYRILLIC LETTER MONOGRAPH UK;Mn;230;NSM;;;;;N;;;;; -2DFA;COMBINING CYRILLIC LETTER YAT;Mn;230;NSM;;;;;N;;;;; -2DFB;COMBINING CYRILLIC LETTER YU;Mn;230;NSM;;;;;N;;;;; -2DFC;COMBINING CYRILLIC LETTER IOTIFIED A;Mn;230;NSM;;;;;N;;;;; -2DFD;COMBINING CYRILLIC LETTER LITTLE YUS;Mn;230;NSM;;;;;N;;;;; -2DFE;COMBINING CYRILLIC LETTER BIG YUS;Mn;230;NSM;;;;;N;;;;; -2DFF;COMBINING CYRILLIC LETTER IOTIFIED BIG YUS;Mn;230;NSM;;;;;N;;;;; -2E00;RIGHT ANGLE SUBSTITUTION MARKER;Po;0;ON;;;;;N;;;;; -2E01;RIGHT ANGLE DOTTED SUBSTITUTION MARKER;Po;0;ON;;;;;N;;;;; -2E02;LEFT SUBSTITUTION BRACKET;Pi;0;ON;;;;;Y;;;;; -2E03;RIGHT SUBSTITUTION BRACKET;Pf;0;ON;;;;;Y;;;;; -2E04;LEFT DOTTED SUBSTITUTION BRACKET;Pi;0;ON;;;;;Y;;;;; -2E05;RIGHT DOTTED SUBSTITUTION BRACKET;Pf;0;ON;;;;;Y;;;;; -2E06;RAISED INTERPOLATION MARKER;Po;0;ON;;;;;N;;;;; -2E07;RAISED DOTTED INTERPOLATION MARKER;Po;0;ON;;;;;N;;;;; -2E08;DOTTED TRANSPOSITION MARKER;Po;0;ON;;;;;N;;;;; -2E09;LEFT TRANSPOSITION BRACKET;Pi;0;ON;;;;;Y;;;;; -2E0A;RIGHT TRANSPOSITION BRACKET;Pf;0;ON;;;;;Y;;;;; -2E0B;RAISED SQUARE;Po;0;ON;;;;;N;;;;; -2E0C;LEFT RAISED OMISSION BRACKET;Pi;0;ON;;;;;Y;;;;; -2E0D;RIGHT RAISED OMISSION BRACKET;Pf;0;ON;;;;;Y;;;;; -2E0E;EDITORIAL CORONIS;Po;0;ON;;;;;N;;;;; -2E0F;PARAGRAPHOS;Po;0;ON;;;;;N;;;;; -2E10;FORKED PARAGRAPHOS;Po;0;ON;;;;;N;;;;; -2E11;REVERSED FORKED PARAGRAPHOS;Po;0;ON;;;;;N;;;;; -2E12;HYPODIASTOLE;Po;0;ON;;;;;N;;;;; -2E13;DOTTED OBELOS;Po;0;ON;;;;;N;;;;; -2E14;DOWNWARDS ANCORA;Po;0;ON;;;;;N;;;;; -2E15;UPWARDS ANCORA;Po;0;ON;;;;;N;;;;; -2E16;DOTTED RIGHT-POINTING ANGLE;Po;0;ON;;;;;N;;;;; -2E17;DOUBLE OBLIQUE HYPHEN;Pd;0;ON;;;;;N;;;;; -2E18;INVERTED INTERROBANG;Po;0;ON;;;;;N;;;;; -2E19;PALM BRANCH;Po;0;ON;;;;;N;;;;; -2E1A;HYPHEN WITH DIAERESIS;Pd;0;ON;;;;;N;;;;; -2E1B;TILDE WITH RING ABOVE;Po;0;ON;;;;;N;;;;; -2E1C;LEFT LOW PARAPHRASE BRACKET;Pi;0;ON;;;;;Y;;;;; -2E1D;RIGHT LOW PARAPHRASE BRACKET;Pf;0;ON;;;;;Y;;;;; -2E1E;TILDE WITH DOT ABOVE;Po;0;ON;;;;;N;;;;; -2E1F;TILDE WITH DOT BELOW;Po;0;ON;;;;;N;;;;; -2E20;LEFT VERTICAL BAR WITH QUILL;Pi;0;ON;;;;;Y;;;;; -2E21;RIGHT VERTICAL BAR WITH QUILL;Pf;0;ON;;;;;Y;;;;; -2E22;TOP LEFT HALF BRACKET;Ps;0;ON;;;;;Y;;;;; -2E23;TOP RIGHT HALF BRACKET;Pe;0;ON;;;;;Y;;;;; -2E24;BOTTOM LEFT HALF BRACKET;Ps;0;ON;;;;;Y;;;;; -2E25;BOTTOM RIGHT HALF BRACKET;Pe;0;ON;;;;;Y;;;;; -2E26;LEFT SIDEWAYS U BRACKET;Ps;0;ON;;;;;Y;;;;; -2E27;RIGHT SIDEWAYS U BRACKET;Pe;0;ON;;;;;Y;;;;; -2E28;LEFT DOUBLE PARENTHESIS;Ps;0;ON;;;;;Y;;;;; -2E29;RIGHT DOUBLE PARENTHESIS;Pe;0;ON;;;;;Y;;;;; -2E2A;TWO DOTS OVER ONE DOT PUNCTUATION;Po;0;ON;;;;;N;;;;; -2E2B;ONE DOT OVER TWO DOTS PUNCTUATION;Po;0;ON;;;;;N;;;;; -2E2C;SQUARED FOUR DOT PUNCTUATION;Po;0;ON;;;;;N;;;;; -2E2D;FIVE DOT MARK;Po;0;ON;;;;;N;;;;; -2E2E;REVERSED QUESTION MARK;Po;0;ON;;;;;N;;;;; -2E2F;VERTICAL TILDE;Lm;0;ON;;;;;N;;;;; -2E30;RING POINT;Po;0;ON;;;;;N;;;;; -2E31;WORD SEPARATOR MIDDLE DOT;Po;0;ON;;;;;N;;;;; -2E80;CJK RADICAL REPEAT;So;0;ON;;;;;N;;;;; -2E81;CJK RADICAL CLIFF;So;0;ON;;;;;N;;;;; -2E82;CJK RADICAL SECOND ONE;So;0;ON;;;;;N;;;;; -2E83;CJK RADICAL SECOND TWO;So;0;ON;;;;;N;;;;; -2E84;CJK RADICAL SECOND THREE;So;0;ON;;;;;N;;;;; -2E85;CJK RADICAL PERSON;So;0;ON;;;;;N;;;;; -2E86;CJK RADICAL BOX;So;0;ON;;;;;N;;;;; -2E87;CJK RADICAL TABLE;So;0;ON;;;;;N;;;;; -2E88;CJK RADICAL KNIFE ONE;So;0;ON;;;;;N;;;;; -2E89;CJK RADICAL KNIFE TWO;So;0;ON;;;;;N;;;;; -2E8A;CJK RADICAL DIVINATION;So;0;ON;;;;;N;;;;; -2E8B;CJK RADICAL SEAL;So;0;ON;;;;;N;;;;; -2E8C;CJK RADICAL SMALL ONE;So;0;ON;;;;;N;;;;; -2E8D;CJK RADICAL SMALL TWO;So;0;ON;;;;;N;;;;; -2E8E;CJK RADICAL LAME ONE;So;0;ON;;;;;N;;;;; -2E8F;CJK RADICAL LAME TWO;So;0;ON;;;;;N;;;;; -2E90;CJK RADICAL LAME THREE;So;0;ON;;;;;N;;;;; -2E91;CJK RADICAL LAME FOUR;So;0;ON;;;;;N;;;;; -2E92;CJK RADICAL SNAKE;So;0;ON;;;;;N;;;;; -2E93;CJK RADICAL THREAD;So;0;ON;;;;;N;;;;; -2E94;CJK RADICAL SNOUT ONE;So;0;ON;;;;;N;;;;; -2E95;CJK RADICAL SNOUT TWO;So;0;ON;;;;;N;;;;; -2E96;CJK RADICAL HEART ONE;So;0;ON;;;;;N;;;;; -2E97;CJK RADICAL HEART TWO;So;0;ON;;;;;N;;;;; -2E98;CJK RADICAL HAND;So;0;ON;;;;;N;;;;; -2E99;CJK RADICAL RAP;So;0;ON;;;;;N;;;;; -2E9B;CJK RADICAL CHOKE;So;0;ON;;;;;N;;;;; -2E9C;CJK RADICAL SUN;So;0;ON;;;;;N;;;;; -2E9D;CJK RADICAL MOON;So;0;ON;;;;;N;;;;; -2E9E;CJK RADICAL DEATH;So;0;ON;;;;;N;;;;; -2E9F;CJK RADICAL MOTHER;So;0;ON; 6BCD;;;;N;;;;; -2EA0;CJK RADICAL CIVILIAN;So;0;ON;;;;;N;;;;; -2EA1;CJK RADICAL WATER ONE;So;0;ON;;;;;N;;;;; -2EA2;CJK RADICAL WATER TWO;So;0;ON;;;;;N;;;;; -2EA3;CJK RADICAL FIRE;So;0;ON;;;;;N;;;;; -2EA4;CJK RADICAL PAW ONE;So;0;ON;;;;;N;;;;; -2EA5;CJK RADICAL PAW TWO;So;0;ON;;;;;N;;;;; -2EA6;CJK RADICAL SIMPLIFIED HALF TREE TRUNK;So;0;ON;;;;;N;;;;; -2EA7;CJK RADICAL COW;So;0;ON;;;;;N;;;;; -2EA8;CJK RADICAL DOG;So;0;ON;;;;;N;;;;; -2EA9;CJK RADICAL JADE;So;0;ON;;;;;N;;;;; -2EAA;CJK RADICAL BOLT OF CLOTH;So;0;ON;;;;;N;;;;; -2EAB;CJK RADICAL EYE;So;0;ON;;;;;N;;;;; -2EAC;CJK RADICAL SPIRIT ONE;So;0;ON;;;;;N;;;;; -2EAD;CJK RADICAL SPIRIT TWO;So;0;ON;;;;;N;;;;; -2EAE;CJK RADICAL BAMBOO;So;0;ON;;;;;N;;;;; -2EAF;CJK RADICAL SILK;So;0;ON;;;;;N;;;;; -2EB0;CJK RADICAL C-SIMPLIFIED SILK;So;0;ON;;;;;N;;;;; -2EB1;CJK RADICAL NET ONE;So;0;ON;;;;;N;;;;; -2EB2;CJK RADICAL NET TWO;So;0;ON;;;;;N;;;;; -2EB3;CJK RADICAL NET THREE;So;0;ON;;;;;N;;;;; -2EB4;CJK RADICAL NET FOUR;So;0;ON;;;;;N;;;;; -2EB5;CJK RADICAL MESH;So;0;ON;;;;;N;;;;; -2EB6;CJK RADICAL SHEEP;So;0;ON;;;;;N;;;;; -2EB7;CJK RADICAL RAM;So;0;ON;;;;;N;;;;; -2EB8;CJK RADICAL EWE;So;0;ON;;;;;N;;;;; -2EB9;CJK RADICAL OLD;So;0;ON;;;;;N;;;;; -2EBA;CJK RADICAL BRUSH ONE;So;0;ON;;;;;N;;;;; -2EBB;CJK RADICAL BRUSH TWO;So;0;ON;;;;;N;;;;; -2EBC;CJK RADICAL MEAT;So;0;ON;;;;;N;;;;; -2EBD;CJK RADICAL MORTAR;So;0;ON;;;;;N;;;;; -2EBE;CJK RADICAL GRASS ONE;So;0;ON;;;;;N;;;;; -2EBF;CJK RADICAL GRASS TWO;So;0;ON;;;;;N;;;;; -2EC0;CJK RADICAL GRASS THREE;So;0;ON;;;;;N;;;;; -2EC1;CJK RADICAL TIGER;So;0;ON;;;;;N;;;;; -2EC2;CJK RADICAL CLOTHES;So;0;ON;;;;;N;;;;; -2EC3;CJK RADICAL WEST ONE;So;0;ON;;;;;N;;;;; -2EC4;CJK RADICAL WEST TWO;So;0;ON;;;;;N;;;;; -2EC5;CJK RADICAL C-SIMPLIFIED SEE;So;0;ON;;;;;N;;;;; -2EC6;CJK RADICAL SIMPLIFIED HORN;So;0;ON;;;;;N;;;;; -2EC7;CJK RADICAL HORN;So;0;ON;;;;;N;;;;; -2EC8;CJK RADICAL C-SIMPLIFIED SPEECH;So;0;ON;;;;;N;;;;; -2EC9;CJK RADICAL C-SIMPLIFIED SHELL;So;0;ON;;;;;N;;;;; -2ECA;CJK RADICAL FOOT;So;0;ON;;;;;N;;;;; -2ECB;CJK RADICAL C-SIMPLIFIED CART;So;0;ON;;;;;N;;;;; -2ECC;CJK RADICAL SIMPLIFIED WALK;So;0;ON;;;;;N;;;;; -2ECD;CJK RADICAL WALK ONE;So;0;ON;;;;;N;;;;; -2ECE;CJK RADICAL WALK TWO;So;0;ON;;;;;N;;;;; -2ECF;CJK RADICAL CITY;So;0;ON;;;;;N;;;;; -2ED0;CJK RADICAL C-SIMPLIFIED GOLD;So;0;ON;;;;;N;;;;; -2ED1;CJK RADICAL LONG ONE;So;0;ON;;;;;N;;;;; -2ED2;CJK RADICAL LONG TWO;So;0;ON;;;;;N;;;;; -2ED3;CJK RADICAL C-SIMPLIFIED LONG;So;0;ON;;;;;N;;;;; -2ED4;CJK RADICAL C-SIMPLIFIED GATE;So;0;ON;;;;;N;;;;; -2ED5;CJK RADICAL MOUND ONE;So;0;ON;;;;;N;;;;; -2ED6;CJK RADICAL MOUND TWO;So;0;ON;;;;;N;;;;; -2ED7;CJK RADICAL RAIN;So;0;ON;;;;;N;;;;; -2ED8;CJK RADICAL BLUE;So;0;ON;;;;;N;;;;; -2ED9;CJK RADICAL C-SIMPLIFIED TANNED LEATHER;So;0;ON;;;;;N;;;;; -2EDA;CJK RADICAL C-SIMPLIFIED LEAF;So;0;ON;;;;;N;;;;; -2EDB;CJK RADICAL C-SIMPLIFIED WIND;So;0;ON;;;;;N;;;;; -2EDC;CJK RADICAL C-SIMPLIFIED FLY;So;0;ON;;;;;N;;;;; -2EDD;CJK RADICAL EAT ONE;So;0;ON;;;;;N;;;;; -2EDE;CJK RADICAL EAT TWO;So;0;ON;;;;;N;;;;; -2EDF;CJK RADICAL EAT THREE;So;0;ON;;;;;N;;;;; -2EE0;CJK RADICAL C-SIMPLIFIED EAT;So;0;ON;;;;;N;;;;; -2EE1;CJK RADICAL HEAD;So;0;ON;;;;;N;;;;; -2EE2;CJK RADICAL C-SIMPLIFIED HORSE;So;0;ON;;;;;N;;;;; -2EE3;CJK RADICAL BONE;So;0;ON;;;;;N;;;;; -2EE4;CJK RADICAL GHOST;So;0;ON;;;;;N;;;;; -2EE5;CJK RADICAL C-SIMPLIFIED FISH;So;0;ON;;;;;N;;;;; -2EE6;CJK RADICAL C-SIMPLIFIED BIRD;So;0;ON;;;;;N;;;;; -2EE7;CJK RADICAL C-SIMPLIFIED SALT;So;0;ON;;;;;N;;;;; -2EE8;CJK RADICAL SIMPLIFIED WHEAT;So;0;ON;;;;;N;;;;; -2EE9;CJK RADICAL SIMPLIFIED YELLOW;So;0;ON;;;;;N;;;;; -2EEA;CJK RADICAL C-SIMPLIFIED FROG;So;0;ON;;;;;N;;;;; -2EEB;CJK RADICAL J-SIMPLIFIED EVEN;So;0;ON;;;;;N;;;;; -2EEC;CJK RADICAL C-SIMPLIFIED EVEN;So;0;ON;;;;;N;;;;; -2EED;CJK RADICAL J-SIMPLIFIED TOOTH;So;0;ON;;;;;N;;;;; -2EEE;CJK RADICAL C-SIMPLIFIED TOOTH;So;0;ON;;;;;N;;;;; -2EEF;CJK RADICAL J-SIMPLIFIED DRAGON;So;0;ON;;;;;N;;;;; -2EF0;CJK RADICAL C-SIMPLIFIED DRAGON;So;0;ON;;;;;N;;;;; -2EF1;CJK RADICAL TURTLE;So;0;ON;;;;;N;;;;; -2EF2;CJK RADICAL J-SIMPLIFIED TURTLE;So;0;ON;;;;;N;;;;; -2EF3;CJK RADICAL C-SIMPLIFIED TURTLE;So;0;ON; 9F9F;;;;N;;;;; -2F00;KANGXI RADICAL ONE;So;0;ON; 4E00;;;;N;;;;; -2F01;KANGXI RADICAL LINE;So;0;ON; 4E28;;;;N;;;;; -2F02;KANGXI RADICAL DOT;So;0;ON; 4E36;;;;N;;;;; -2F03;KANGXI RADICAL SLASH;So;0;ON; 4E3F;;;;N;;;;; -2F04;KANGXI RADICAL SECOND;So;0;ON; 4E59;;;;N;;;;; -2F05;KANGXI RADICAL HOOK;So;0;ON; 4E85;;;;N;;;;; -2F06;KANGXI RADICAL TWO;So;0;ON; 4E8C;;;;N;;;;; -2F07;KANGXI RADICAL LID;So;0;ON; 4EA0;;;;N;;;;; -2F08;KANGXI RADICAL MAN;So;0;ON; 4EBA;;;;N;;;;; -2F09;KANGXI RADICAL LEGS;So;0;ON; 513F;;;;N;;;;; -2F0A;KANGXI RADICAL ENTER;So;0;ON; 5165;;;;N;;;;; -2F0B;KANGXI RADICAL EIGHT;So;0;ON; 516B;;;;N;;;;; -2F0C;KANGXI RADICAL DOWN BOX;So;0;ON; 5182;;;;N;;;;; -2F0D;KANGXI RADICAL COVER;So;0;ON; 5196;;;;N;;;;; -2F0E;KANGXI RADICAL ICE;So;0;ON; 51AB;;;;N;;;;; -2F0F;KANGXI RADICAL TABLE;So;0;ON; 51E0;;;;N;;;;; -2F10;KANGXI RADICAL OPEN BOX;So;0;ON; 51F5;;;;N;;;;; -2F11;KANGXI RADICAL KNIFE;So;0;ON; 5200;;;;N;;;;; -2F12;KANGXI RADICAL POWER;So;0;ON; 529B;;;;N;;;;; -2F13;KANGXI RADICAL WRAP;So;0;ON; 52F9;;;;N;;;;; -2F14;KANGXI RADICAL SPOON;So;0;ON; 5315;;;;N;;;;; -2F15;KANGXI RADICAL RIGHT OPEN BOX;So;0;ON; 531A;;;;N;;;;; -2F16;KANGXI RADICAL HIDING ENCLOSURE;So;0;ON; 5338;;;;N;;;;; -2F17;KANGXI RADICAL TEN;So;0;ON; 5341;;;;N;;;;; -2F18;KANGXI RADICAL DIVINATION;So;0;ON; 535C;;;;N;;;;; -2F19;KANGXI RADICAL SEAL;So;0;ON; 5369;;;;N;;;;; -2F1A;KANGXI RADICAL CLIFF;So;0;ON; 5382;;;;N;;;;; -2F1B;KANGXI RADICAL PRIVATE;So;0;ON; 53B6;;;;N;;;;; -2F1C;KANGXI RADICAL AGAIN;So;0;ON; 53C8;;;;N;;;;; -2F1D;KANGXI RADICAL MOUTH;So;0;ON; 53E3;;;;N;;;;; -2F1E;KANGXI RADICAL ENCLOSURE;So;0;ON; 56D7;;;;N;;;;; -2F1F;KANGXI RADICAL EARTH;So;0;ON; 571F;;;;N;;;;; -2F20;KANGXI RADICAL SCHOLAR;So;0;ON; 58EB;;;;N;;;;; -2F21;KANGXI RADICAL GO;So;0;ON; 5902;;;;N;;;;; -2F22;KANGXI RADICAL GO SLOWLY;So;0;ON; 590A;;;;N;;;;; -2F23;KANGXI RADICAL EVENING;So;0;ON; 5915;;;;N;;;;; -2F24;KANGXI RADICAL BIG;So;0;ON; 5927;;;;N;;;;; -2F25;KANGXI RADICAL WOMAN;So;0;ON; 5973;;;;N;;;;; -2F26;KANGXI RADICAL CHILD;So;0;ON; 5B50;;;;N;;;;; -2F27;KANGXI RADICAL ROOF;So;0;ON; 5B80;;;;N;;;;; -2F28;KANGXI RADICAL INCH;So;0;ON; 5BF8;;;;N;;;;; -2F29;KANGXI RADICAL SMALL;So;0;ON; 5C0F;;;;N;;;;; -2F2A;KANGXI RADICAL LAME;So;0;ON; 5C22;;;;N;;;;; -2F2B;KANGXI RADICAL CORPSE;So;0;ON; 5C38;;;;N;;;;; -2F2C;KANGXI RADICAL SPROUT;So;0;ON; 5C6E;;;;N;;;;; -2F2D;KANGXI RADICAL MOUNTAIN;So;0;ON; 5C71;;;;N;;;;; -2F2E;KANGXI RADICAL RIVER;So;0;ON; 5DDB;;;;N;;;;; -2F2F;KANGXI RADICAL WORK;So;0;ON; 5DE5;;;;N;;;;; -2F30;KANGXI RADICAL ONESELF;So;0;ON; 5DF1;;;;N;;;;; -2F31;KANGXI RADICAL TURBAN;So;0;ON; 5DFE;;;;N;;;;; -2F32;KANGXI RADICAL DRY;So;0;ON; 5E72;;;;N;;;;; -2F33;KANGXI RADICAL SHORT THREAD;So;0;ON; 5E7A;;;;N;;;;; -2F34;KANGXI RADICAL DOTTED CLIFF;So;0;ON; 5E7F;;;;N;;;;; -2F35;KANGXI RADICAL LONG STRIDE;So;0;ON; 5EF4;;;;N;;;;; -2F36;KANGXI RADICAL TWO HANDS;So;0;ON; 5EFE;;;;N;;;;; -2F37;KANGXI RADICAL SHOOT;So;0;ON; 5F0B;;;;N;;;;; -2F38;KANGXI RADICAL BOW;So;0;ON; 5F13;;;;N;;;;; -2F39;KANGXI RADICAL SNOUT;So;0;ON; 5F50;;;;N;;;;; -2F3A;KANGXI RADICAL BRISTLE;So;0;ON; 5F61;;;;N;;;;; -2F3B;KANGXI RADICAL STEP;So;0;ON; 5F73;;;;N;;;;; -2F3C;KANGXI RADICAL HEART;So;0;ON; 5FC3;;;;N;;;;; -2F3D;KANGXI RADICAL HALBERD;So;0;ON; 6208;;;;N;;;;; -2F3E;KANGXI RADICAL DOOR;So;0;ON; 6236;;;;N;;;;; -2F3F;KANGXI RADICAL HAND;So;0;ON; 624B;;;;N;;;;; -2F40;KANGXI RADICAL BRANCH;So;0;ON; 652F;;;;N;;;;; -2F41;KANGXI RADICAL RAP;So;0;ON; 6534;;;;N;;;;; -2F42;KANGXI RADICAL SCRIPT;So;0;ON; 6587;;;;N;;;;; -2F43;KANGXI RADICAL DIPPER;So;0;ON; 6597;;;;N;;;;; -2F44;KANGXI RADICAL AXE;So;0;ON; 65A4;;;;N;;;;; -2F45;KANGXI RADICAL SQUARE;So;0;ON; 65B9;;;;N;;;;; -2F46;KANGXI RADICAL NOT;So;0;ON; 65E0;;;;N;;;;; -2F47;KANGXI RADICAL SUN;So;0;ON; 65E5;;;;N;;;;; -2F48;KANGXI RADICAL SAY;So;0;ON; 66F0;;;;N;;;;; -2F49;KANGXI RADICAL MOON;So;0;ON; 6708;;;;N;;;;; -2F4A;KANGXI RADICAL TREE;So;0;ON; 6728;;;;N;;;;; -2F4B;KANGXI RADICAL LACK;So;0;ON; 6B20;;;;N;;;;; -2F4C;KANGXI RADICAL STOP;So;0;ON; 6B62;;;;N;;;;; -2F4D;KANGXI RADICAL DEATH;So;0;ON; 6B79;;;;N;;;;; -2F4E;KANGXI RADICAL WEAPON;So;0;ON; 6BB3;;;;N;;;;; -2F4F;KANGXI RADICAL DO NOT;So;0;ON; 6BCB;;;;N;;;;; -2F50;KANGXI RADICAL COMPARE;So;0;ON; 6BD4;;;;N;;;;; -2F51;KANGXI RADICAL FUR;So;0;ON; 6BDB;;;;N;;;;; -2F52;KANGXI RADICAL CLAN;So;0;ON; 6C0F;;;;N;;;;; -2F53;KANGXI RADICAL STEAM;So;0;ON; 6C14;;;;N;;;;; -2F54;KANGXI RADICAL WATER;So;0;ON; 6C34;;;;N;;;;; -2F55;KANGXI RADICAL FIRE;So;0;ON; 706B;;;;N;;;;; -2F56;KANGXI RADICAL CLAW;So;0;ON; 722A;;;;N;;;;; -2F57;KANGXI RADICAL FATHER;So;0;ON; 7236;;;;N;;;;; -2F58;KANGXI RADICAL DOUBLE X;So;0;ON; 723B;;;;N;;;;; -2F59;KANGXI RADICAL HALF TREE TRUNK;So;0;ON; 723F;;;;N;;;;; -2F5A;KANGXI RADICAL SLICE;So;0;ON; 7247;;;;N;;;;; -2F5B;KANGXI RADICAL FANG;So;0;ON; 7259;;;;N;;;;; -2F5C;KANGXI RADICAL COW;So;0;ON; 725B;;;;N;;;;; -2F5D;KANGXI RADICAL DOG;So;0;ON; 72AC;;;;N;;;;; -2F5E;KANGXI RADICAL PROFOUND;So;0;ON; 7384;;;;N;;;;; -2F5F;KANGXI RADICAL JADE;So;0;ON; 7389;;;;N;;;;; -2F60;KANGXI RADICAL MELON;So;0;ON; 74DC;;;;N;;;;; -2F61;KANGXI RADICAL TILE;So;0;ON; 74E6;;;;N;;;;; -2F62;KANGXI RADICAL SWEET;So;0;ON; 7518;;;;N;;;;; -2F63;KANGXI RADICAL LIFE;So;0;ON; 751F;;;;N;;;;; -2F64;KANGXI RADICAL USE;So;0;ON; 7528;;;;N;;;;; -2F65;KANGXI RADICAL FIELD;So;0;ON; 7530;;;;N;;;;; -2F66;KANGXI RADICAL BOLT OF CLOTH;So;0;ON; 758B;;;;N;;;;; -2F67;KANGXI RADICAL SICKNESS;So;0;ON; 7592;;;;N;;;;; -2F68;KANGXI RADICAL DOTTED TENT;So;0;ON; 7676;;;;N;;;;; -2F69;KANGXI RADICAL WHITE;So;0;ON; 767D;;;;N;;;;; -2F6A;KANGXI RADICAL SKIN;So;0;ON; 76AE;;;;N;;;;; -2F6B;KANGXI RADICAL DISH;So;0;ON; 76BF;;;;N;;;;; -2F6C;KANGXI RADICAL EYE;So;0;ON; 76EE;;;;N;;;;; -2F6D;KANGXI RADICAL SPEAR;So;0;ON; 77DB;;;;N;;;;; -2F6E;KANGXI RADICAL ARROW;So;0;ON; 77E2;;;;N;;;;; -2F6F;KANGXI RADICAL STONE;So;0;ON; 77F3;;;;N;;;;; -2F70;KANGXI RADICAL SPIRIT;So;0;ON; 793A;;;;N;;;;; -2F71;KANGXI RADICAL TRACK;So;0;ON; 79B8;;;;N;;;;; -2F72;KANGXI RADICAL GRAIN;So;0;ON; 79BE;;;;N;;;;; -2F73;KANGXI RADICAL CAVE;So;0;ON; 7A74;;;;N;;;;; -2F74;KANGXI RADICAL STAND;So;0;ON; 7ACB;;;;N;;;;; -2F75;KANGXI RADICAL BAMBOO;So;0;ON; 7AF9;;;;N;;;;; -2F76;KANGXI RADICAL RICE;So;0;ON; 7C73;;;;N;;;;; -2F77;KANGXI RADICAL SILK;So;0;ON; 7CF8;;;;N;;;;; -2F78;KANGXI RADICAL JAR;So;0;ON; 7F36;;;;N;;;;; -2F79;KANGXI RADICAL NET;So;0;ON; 7F51;;;;N;;;;; -2F7A;KANGXI RADICAL SHEEP;So;0;ON; 7F8A;;;;N;;;;; -2F7B;KANGXI RADICAL FEATHER;So;0;ON; 7FBD;;;;N;;;;; -2F7C;KANGXI RADICAL OLD;So;0;ON; 8001;;;;N;;;;; -2F7D;KANGXI RADICAL AND;So;0;ON; 800C;;;;N;;;;; -2F7E;KANGXI RADICAL PLOW;So;0;ON; 8012;;;;N;;;;; -2F7F;KANGXI RADICAL EAR;So;0;ON; 8033;;;;N;;;;; -2F80;KANGXI RADICAL BRUSH;So;0;ON; 807F;;;;N;;;;; -2F81;KANGXI RADICAL MEAT;So;0;ON; 8089;;;;N;;;;; -2F82;KANGXI RADICAL MINISTER;So;0;ON; 81E3;;;;N;;;;; -2F83;KANGXI RADICAL SELF;So;0;ON; 81EA;;;;N;;;;; -2F84;KANGXI RADICAL ARRIVE;So;0;ON; 81F3;;;;N;;;;; -2F85;KANGXI RADICAL MORTAR;So;0;ON; 81FC;;;;N;;;;; -2F86;KANGXI RADICAL TONGUE;So;0;ON; 820C;;;;N;;;;; -2F87;KANGXI RADICAL OPPOSE;So;0;ON; 821B;;;;N;;;;; -2F88;KANGXI RADICAL BOAT;So;0;ON; 821F;;;;N;;;;; -2F89;KANGXI RADICAL STOPPING;So;0;ON; 826E;;;;N;;;;; -2F8A;KANGXI RADICAL COLOR;So;0;ON; 8272;;;;N;;;;; -2F8B;KANGXI RADICAL GRASS;So;0;ON; 8278;;;;N;;;;; -2F8C;KANGXI RADICAL TIGER;So;0;ON; 864D;;;;N;;;;; -2F8D;KANGXI RADICAL INSECT;So;0;ON; 866B;;;;N;;;;; -2F8E;KANGXI RADICAL BLOOD;So;0;ON; 8840;;;;N;;;;; -2F8F;KANGXI RADICAL WALK ENCLOSURE;So;0;ON; 884C;;;;N;;;;; -2F90;KANGXI RADICAL CLOTHES;So;0;ON; 8863;;;;N;;;;; -2F91;KANGXI RADICAL WEST;So;0;ON; 897E;;;;N;;;;; -2F92;KANGXI RADICAL SEE;So;0;ON; 898B;;;;N;;;;; -2F93;KANGXI RADICAL HORN;So;0;ON; 89D2;;;;N;;;;; -2F94;KANGXI RADICAL SPEECH;So;0;ON; 8A00;;;;N;;;;; -2F95;KANGXI RADICAL VALLEY;So;0;ON; 8C37;;;;N;;;;; -2F96;KANGXI RADICAL BEAN;So;0;ON; 8C46;;;;N;;;;; -2F97;KANGXI RADICAL PIG;So;0;ON; 8C55;;;;N;;;;; -2F98;KANGXI RADICAL BADGER;So;0;ON; 8C78;;;;N;;;;; -2F99;KANGXI RADICAL SHELL;So;0;ON; 8C9D;;;;N;;;;; -2F9A;KANGXI RADICAL RED;So;0;ON; 8D64;;;;N;;;;; -2F9B;KANGXI RADICAL RUN;So;0;ON; 8D70;;;;N;;;;; -2F9C;KANGXI RADICAL FOOT;So;0;ON; 8DB3;;;;N;;;;; -2F9D;KANGXI RADICAL BODY;So;0;ON; 8EAB;;;;N;;;;; -2F9E;KANGXI RADICAL CART;So;0;ON; 8ECA;;;;N;;;;; -2F9F;KANGXI RADICAL BITTER;So;0;ON; 8F9B;;;;N;;;;; -2FA0;KANGXI RADICAL MORNING;So;0;ON; 8FB0;;;;N;;;;; -2FA1;KANGXI RADICAL WALK;So;0;ON; 8FB5;;;;N;;;;; -2FA2;KANGXI RADICAL CITY;So;0;ON; 9091;;;;N;;;;; -2FA3;KANGXI RADICAL WINE;So;0;ON; 9149;;;;N;;;;; -2FA4;KANGXI RADICAL DISTINGUISH;So;0;ON; 91C6;;;;N;;;;; -2FA5;KANGXI RADICAL VILLAGE;So;0;ON; 91CC;;;;N;;;;; -2FA6;KANGXI RADICAL GOLD;So;0;ON; 91D1;;;;N;;;;; -2FA7;KANGXI RADICAL LONG;So;0;ON; 9577;;;;N;;;;; -2FA8;KANGXI RADICAL GATE;So;0;ON; 9580;;;;N;;;;; -2FA9;KANGXI RADICAL MOUND;So;0;ON; 961C;;;;N;;;;; -2FAA;KANGXI RADICAL SLAVE;So;0;ON; 96B6;;;;N;;;;; -2FAB;KANGXI RADICAL SHORT TAILED BIRD;So;0;ON; 96B9;;;;N;;;;; -2FAC;KANGXI RADICAL RAIN;So;0;ON; 96E8;;;;N;;;;; -2FAD;KANGXI RADICAL BLUE;So;0;ON; 9751;;;;N;;;;; -2FAE;KANGXI RADICAL WRONG;So;0;ON; 975E;;;;N;;;;; -2FAF;KANGXI RADICAL FACE;So;0;ON; 9762;;;;N;;;;; -2FB0;KANGXI RADICAL LEATHER;So;0;ON; 9769;;;;N;;;;; -2FB1;KANGXI RADICAL TANNED LEATHER;So;0;ON; 97CB;;;;N;;;;; -2FB2;KANGXI RADICAL LEEK;So;0;ON; 97ED;;;;N;;;;; -2FB3;KANGXI RADICAL SOUND;So;0;ON; 97F3;;;;N;;;;; -2FB4;KANGXI RADICAL LEAF;So;0;ON; 9801;;;;N;;;;; -2FB5;KANGXI RADICAL WIND;So;0;ON; 98A8;;;;N;;;;; -2FB6;KANGXI RADICAL FLY;So;0;ON; 98DB;;;;N;;;;; -2FB7;KANGXI RADICAL EAT;So;0;ON; 98DF;;;;N;;;;; -2FB8;KANGXI RADICAL HEAD;So;0;ON; 9996;;;;N;;;;; -2FB9;KANGXI RADICAL FRAGRANT;So;0;ON; 9999;;;;N;;;;; -2FBA;KANGXI RADICAL HORSE;So;0;ON; 99AC;;;;N;;;;; -2FBB;KANGXI RADICAL BONE;So;0;ON; 9AA8;;;;N;;;;; -2FBC;KANGXI RADICAL TALL;So;0;ON; 9AD8;;;;N;;;;; -2FBD;KANGXI RADICAL HAIR;So;0;ON; 9ADF;;;;N;;;;; -2FBE;KANGXI RADICAL FIGHT;So;0;ON; 9B25;;;;N;;;;; -2FBF;KANGXI RADICAL SACRIFICIAL WINE;So;0;ON; 9B2F;;;;N;;;;; -2FC0;KANGXI RADICAL CAULDRON;So;0;ON; 9B32;;;;N;;;;; -2FC1;KANGXI RADICAL GHOST;So;0;ON; 9B3C;;;;N;;;;; -2FC2;KANGXI RADICAL FISH;So;0;ON; 9B5A;;;;N;;;;; -2FC3;KANGXI RADICAL BIRD;So;0;ON; 9CE5;;;;N;;;;; -2FC4;KANGXI RADICAL SALT;So;0;ON; 9E75;;;;N;;;;; -2FC5;KANGXI RADICAL DEER;So;0;ON; 9E7F;;;;N;;;;; -2FC6;KANGXI RADICAL WHEAT;So;0;ON; 9EA5;;;;N;;;;; -2FC7;KANGXI RADICAL HEMP;So;0;ON; 9EBB;;;;N;;;;; -2FC8;KANGXI RADICAL YELLOW;So;0;ON; 9EC3;;;;N;;;;; -2FC9;KANGXI RADICAL MILLET;So;0;ON; 9ECD;;;;N;;;;; -2FCA;KANGXI RADICAL BLACK;So;0;ON; 9ED1;;;;N;;;;; -2FCB;KANGXI RADICAL EMBROIDERY;So;0;ON; 9EF9;;;;N;;;;; -2FCC;KANGXI RADICAL FROG;So;0;ON; 9EFD;;;;N;;;;; -2FCD;KANGXI RADICAL TRIPOD;So;0;ON; 9F0E;;;;N;;;;; -2FCE;KANGXI RADICAL DRUM;So;0;ON; 9F13;;;;N;;;;; -2FCF;KANGXI RADICAL RAT;So;0;ON; 9F20;;;;N;;;;; -2FD0;KANGXI RADICAL NOSE;So;0;ON; 9F3B;;;;N;;;;; -2FD1;KANGXI RADICAL EVEN;So;0;ON; 9F4A;;;;N;;;;; -2FD2;KANGXI RADICAL TOOTH;So;0;ON; 9F52;;;;N;;;;; -2FD3;KANGXI RADICAL DRAGON;So;0;ON; 9F8D;;;;N;;;;; -2FD4;KANGXI RADICAL TURTLE;So;0;ON; 9F9C;;;;N;;;;; -2FD5;KANGXI RADICAL FLUTE;So;0;ON; 9FA0;;;;N;;;;; -2FF0;IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT;So;0;ON;;;;;N;;;;; -2FF1;IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO BELOW;So;0;ON;;;;;N;;;;; -2FF2;IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO MIDDLE AND RIGHT;So;0;ON;;;;;N;;;;; -2FF3;IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO MIDDLE AND BELOW;So;0;ON;;;;;N;;;;; -2FF4;IDEOGRAPHIC DESCRIPTION CHARACTER FULL SURROUND;So;0;ON;;;;;N;;;;; -2FF5;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM ABOVE;So;0;ON;;;;;N;;;;; -2FF6;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM BELOW;So;0;ON;;;;;N;;;;; -2FF7;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LEFT;So;0;ON;;;;;N;;;;; -2FF8;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER LEFT;So;0;ON;;;;;N;;;;; -2FF9;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER RIGHT;So;0;ON;;;;;N;;;;; -2FFA;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LOWER LEFT;So;0;ON;;;;;N;;;;; -2FFB;IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID;So;0;ON;;;;;N;;;;; -3000;IDEOGRAPHIC SPACE;Zs;0;WS; 0020;;;;N;;;;; -3001;IDEOGRAPHIC COMMA;Po;0;ON;;;;;N;;;;; -3002;IDEOGRAPHIC FULL STOP;Po;0;ON;;;;;N;IDEOGRAPHIC PERIOD;;;; -3003;DITTO MARK;Po;0;ON;;;;;N;;;;; -3004;JAPANESE INDUSTRIAL STANDARD SYMBOL;So;0;ON;;;;;N;;;;; -3005;IDEOGRAPHIC ITERATION MARK;Lm;0;L;;;;;N;;;;; -3006;IDEOGRAPHIC CLOSING MARK;Lo;0;L;;;;;N;;;;; -3007;IDEOGRAPHIC NUMBER ZERO;Nl;0;L;;;;0;N;;;;; -3008;LEFT ANGLE BRACKET;Ps;0;ON;;;;;Y;OPENING ANGLE BRACKET;;;; -3009;RIGHT ANGLE BRACKET;Pe;0;ON;;;;;Y;CLOSING ANGLE BRACKET;;;; -300A;LEFT DOUBLE ANGLE BRACKET;Ps;0;ON;;;;;Y;OPENING DOUBLE ANGLE BRACKET;;;; -300B;RIGHT DOUBLE ANGLE BRACKET;Pe;0;ON;;;;;Y;CLOSING DOUBLE ANGLE BRACKET;;;; -300C;LEFT CORNER BRACKET;Ps;0;ON;;;;;Y;OPENING CORNER BRACKET;;;; -300D;RIGHT CORNER BRACKET;Pe;0;ON;;;;;Y;CLOSING CORNER BRACKET;;;; -300E;LEFT WHITE CORNER BRACKET;Ps;0;ON;;;;;Y;OPENING WHITE CORNER BRACKET;;;; -300F;RIGHT WHITE CORNER BRACKET;Pe;0;ON;;;;;Y;CLOSING WHITE CORNER BRACKET;;;; -3010;LEFT BLACK LENTICULAR BRACKET;Ps;0;ON;;;;;Y;OPENING BLACK LENTICULAR BRACKET;;;; -3011;RIGHT BLACK LENTICULAR BRACKET;Pe;0;ON;;;;;Y;CLOSING BLACK LENTICULAR BRACKET;;;; -3012;POSTAL MARK;So;0;ON;;;;;N;;;;; -3013;GETA MARK;So;0;ON;;;;;N;;;;; -3014;LEFT TORTOISE SHELL BRACKET;Ps;0;ON;;;;;Y;OPENING TORTOISE SHELL BRACKET;;;; -3015;RIGHT TORTOISE SHELL BRACKET;Pe;0;ON;;;;;Y;CLOSING TORTOISE SHELL BRACKET;;;; -3016;LEFT WHITE LENTICULAR BRACKET;Ps;0;ON;;;;;Y;OPENING WHITE LENTICULAR BRACKET;;;; -3017;RIGHT WHITE LENTICULAR BRACKET;Pe;0;ON;;;;;Y;CLOSING WHITE LENTICULAR BRACKET;;;; -3018;LEFT WHITE TORTOISE SHELL BRACKET;Ps;0;ON;;;;;Y;OPENING WHITE TORTOISE SHELL BRACKET;;;; -3019;RIGHT WHITE TORTOISE SHELL BRACKET;Pe;0;ON;;;;;Y;CLOSING WHITE TORTOISE SHELL BRACKET;;;; -301A;LEFT WHITE SQUARE BRACKET;Ps;0;ON;;;;;Y;OPENING WHITE SQUARE BRACKET;;;; -301B;RIGHT WHITE SQUARE BRACKET;Pe;0;ON;;;;;Y;CLOSING WHITE SQUARE BRACKET;;;; -301C;WAVE DASH;Pd;0;ON;;;;;N;;;;; -301D;REVERSED DOUBLE PRIME QUOTATION MARK;Ps;0;ON;;;;;N;;;;; -301E;DOUBLE PRIME QUOTATION MARK;Pe;0;ON;;;;;N;;;;; -301F;LOW DOUBLE PRIME QUOTATION MARK;Pe;0;ON;;;;;N;;;;; -3020;POSTAL MARK FACE;So;0;ON;;;;;N;;;;; -3021;HANGZHOU NUMERAL ONE;Nl;0;L;;;;1;N;;;;; -3022;HANGZHOU NUMERAL TWO;Nl;0;L;;;;2;N;;;;; -3023;HANGZHOU NUMERAL THREE;Nl;0;L;;;;3;N;;;;; -3024;HANGZHOU NUMERAL FOUR;Nl;0;L;;;;4;N;;;;; -3025;HANGZHOU NUMERAL FIVE;Nl;0;L;;;;5;N;;;;; -3026;HANGZHOU NUMERAL SIX;Nl;0;L;;;;6;N;;;;; -3027;HANGZHOU NUMERAL SEVEN;Nl;0;L;;;;7;N;;;;; -3028;HANGZHOU NUMERAL EIGHT;Nl;0;L;;;;8;N;;;;; -3029;HANGZHOU NUMERAL NINE;Nl;0;L;;;;9;N;;;;; -302A;IDEOGRAPHIC LEVEL TONE MARK;Mn;218;NSM;;;;;N;;;;; -302B;IDEOGRAPHIC RISING TONE MARK;Mn;228;NSM;;;;;N;;;;; -302C;IDEOGRAPHIC DEPARTING TONE MARK;Mn;232;NSM;;;;;N;;;;; -302D;IDEOGRAPHIC ENTERING TONE MARK;Mn;222;NSM;;;;;N;;;;; -302E;HANGUL SINGLE DOT TONE MARK;Mn;224;NSM;;;;;N;;;;; -302F;HANGUL DOUBLE DOT TONE MARK;Mn;224;NSM;;;;;N;;;;; -3030;WAVY DASH;Pd;0;ON;;;;;N;;;;; -3031;VERTICAL KANA REPEAT MARK;Lm;0;L;;;;;N;;;;; -3032;VERTICAL KANA REPEAT WITH VOICED SOUND MARK;Lm;0;L;;;;;N;;;;; -3033;VERTICAL KANA REPEAT MARK UPPER HALF;Lm;0;L;;;;;N;;;;; -3034;VERTICAL KANA REPEAT WITH VOICED SOUND MARK UPPER HALF;Lm;0;L;;;;;N;;;;; -3035;VERTICAL KANA REPEAT MARK LOWER HALF;Lm;0;L;;;;;N;;;;; -3036;CIRCLED POSTAL MARK;So;0;ON; 3012;;;;N;;;;; -3037;IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL;So;0;ON;;;;;N;;;;; -3038;HANGZHOU NUMERAL TEN;Nl;0;L; 5341;;;10;N;;;;; -3039;HANGZHOU NUMERAL TWENTY;Nl;0;L; 5344;;;20;N;;;;; -303A;HANGZHOU NUMERAL THIRTY;Nl;0;L; 5345;;;30;N;;;;; -303B;VERTICAL IDEOGRAPHIC ITERATION MARK;Lm;0;L;;;;;N;;;;; -303C;MASU MARK;Lo;0;L;;;;;N;;;;; -303D;PART ALTERNATION MARK;Po;0;ON;;;;;N;;;;; -303E;IDEOGRAPHIC VARIATION INDICATOR;So;0;ON;;;;;N;;;;; -303F;IDEOGRAPHIC HALF FILL SPACE;So;0;ON;;;;;N;;;;; -3041;HIRAGANA LETTER SMALL A;Lo;0;L;;;;;N;;;;; -3042;HIRAGANA LETTER A;Lo;0;L;;;;;N;;;;; -3043;HIRAGANA LETTER SMALL I;Lo;0;L;;;;;N;;;;; -3044;HIRAGANA LETTER I;Lo;0;L;;;;;N;;;;; -3045;HIRAGANA LETTER SMALL U;Lo;0;L;;;;;N;;;;; -3046;HIRAGANA LETTER U;Lo;0;L;;;;;N;;;;; -3047;HIRAGANA LETTER SMALL E;Lo;0;L;;;;;N;;;;; -3048;HIRAGANA LETTER E;Lo;0;L;;;;;N;;;;; -3049;HIRAGANA LETTER SMALL O;Lo;0;L;;;;;N;;;;; -304A;HIRAGANA LETTER O;Lo;0;L;;;;;N;;;;; -304B;HIRAGANA LETTER KA;Lo;0;L;;;;;N;;;;; -304C;HIRAGANA LETTER GA;Lo;0;L;304B 3099;;;;N;;;;; -304D;HIRAGANA LETTER KI;Lo;0;L;;;;;N;;;;; -304E;HIRAGANA LETTER GI;Lo;0;L;304D 3099;;;;N;;;;; -304F;HIRAGANA LETTER KU;Lo;0;L;;;;;N;;;;; -3050;HIRAGANA LETTER GU;Lo;0;L;304F 3099;;;;N;;;;; -3051;HIRAGANA LETTER KE;Lo;0;L;;;;;N;;;;; -3052;HIRAGANA LETTER GE;Lo;0;L;3051 3099;;;;N;;;;; -3053;HIRAGANA LETTER KO;Lo;0;L;;;;;N;;;;; -3054;HIRAGANA LETTER GO;Lo;0;L;3053 3099;;;;N;;;;; -3055;HIRAGANA LETTER SA;Lo;0;L;;;;;N;;;;; -3056;HIRAGANA LETTER ZA;Lo;0;L;3055 3099;;;;N;;;;; -3057;HIRAGANA LETTER SI;Lo;0;L;;;;;N;;;;; -3058;HIRAGANA LETTER ZI;Lo;0;L;3057 3099;;;;N;;;;; -3059;HIRAGANA LETTER SU;Lo;0;L;;;;;N;;;;; -305A;HIRAGANA LETTER ZU;Lo;0;L;3059 3099;;;;N;;;;; -305B;HIRAGANA LETTER SE;Lo;0;L;;;;;N;;;;; -305C;HIRAGANA LETTER ZE;Lo;0;L;305B 3099;;;;N;;;;; -305D;HIRAGANA LETTER SO;Lo;0;L;;;;;N;;;;; -305E;HIRAGANA LETTER ZO;Lo;0;L;305D 3099;;;;N;;;;; -305F;HIRAGANA LETTER TA;Lo;0;L;;;;;N;;;;; -3060;HIRAGANA LETTER DA;Lo;0;L;305F 3099;;;;N;;;;; -3061;HIRAGANA LETTER TI;Lo;0;L;;;;;N;;;;; -3062;HIRAGANA LETTER DI;Lo;0;L;3061 3099;;;;N;;;;; -3063;HIRAGANA LETTER SMALL TU;Lo;0;L;;;;;N;;;;; -3064;HIRAGANA LETTER TU;Lo;0;L;;;;;N;;;;; -3065;HIRAGANA LETTER DU;Lo;0;L;3064 3099;;;;N;;;;; -3066;HIRAGANA LETTER TE;Lo;0;L;;;;;N;;;;; -3067;HIRAGANA LETTER DE;Lo;0;L;3066 3099;;;;N;;;;; -3068;HIRAGANA LETTER TO;Lo;0;L;;;;;N;;;;; -3069;HIRAGANA LETTER DO;Lo;0;L;3068 3099;;;;N;;;;; -306A;HIRAGANA LETTER NA;Lo;0;L;;;;;N;;;;; -306B;HIRAGANA LETTER NI;Lo;0;L;;;;;N;;;;; -306C;HIRAGANA LETTER NU;Lo;0;L;;;;;N;;;;; -306D;HIRAGANA LETTER NE;Lo;0;L;;;;;N;;;;; -306E;HIRAGANA LETTER NO;Lo;0;L;;;;;N;;;;; -306F;HIRAGANA LETTER HA;Lo;0;L;;;;;N;;;;; -3070;HIRAGANA LETTER BA;Lo;0;L;306F 3099;;;;N;;;;; -3071;HIRAGANA LETTER PA;Lo;0;L;306F 309A;;;;N;;;;; -3072;HIRAGANA LETTER HI;Lo;0;L;;;;;N;;;;; -3073;HIRAGANA LETTER BI;Lo;0;L;3072 3099;;;;N;;;;; -3074;HIRAGANA LETTER PI;Lo;0;L;3072 309A;;;;N;;;;; -3075;HIRAGANA LETTER HU;Lo;0;L;;;;;N;;;;; -3076;HIRAGANA LETTER BU;Lo;0;L;3075 3099;;;;N;;;;; -3077;HIRAGANA LETTER PU;Lo;0;L;3075 309A;;;;N;;;;; -3078;HIRAGANA LETTER HE;Lo;0;L;;;;;N;;;;; -3079;HIRAGANA LETTER BE;Lo;0;L;3078 3099;;;;N;;;;; -307A;HIRAGANA LETTER PE;Lo;0;L;3078 309A;;;;N;;;;; -307B;HIRAGANA LETTER HO;Lo;0;L;;;;;N;;;;; -307C;HIRAGANA LETTER BO;Lo;0;L;307B 3099;;;;N;;;;; -307D;HIRAGANA LETTER PO;Lo;0;L;307B 309A;;;;N;;;;; -307E;HIRAGANA LETTER MA;Lo;0;L;;;;;N;;;;; -307F;HIRAGANA LETTER MI;Lo;0;L;;;;;N;;;;; -3080;HIRAGANA LETTER MU;Lo;0;L;;;;;N;;;;; -3081;HIRAGANA LETTER ME;Lo;0;L;;;;;N;;;;; -3082;HIRAGANA LETTER MO;Lo;0;L;;;;;N;;;;; -3083;HIRAGANA LETTER SMALL YA;Lo;0;L;;;;;N;;;;; -3084;HIRAGANA LETTER YA;Lo;0;L;;;;;N;;;;; -3085;HIRAGANA LETTER SMALL YU;Lo;0;L;;;;;N;;;;; -3086;HIRAGANA LETTER YU;Lo;0;L;;;;;N;;;;; -3087;HIRAGANA LETTER SMALL YO;Lo;0;L;;;;;N;;;;; -3088;HIRAGANA LETTER YO;Lo;0;L;;;;;N;;;;; -3089;HIRAGANA LETTER RA;Lo;0;L;;;;;N;;;;; -308A;HIRAGANA LETTER RI;Lo;0;L;;;;;N;;;;; -308B;HIRAGANA LETTER RU;Lo;0;L;;;;;N;;;;; -308C;HIRAGANA LETTER RE;Lo;0;L;;;;;N;;;;; -308D;HIRAGANA LETTER RO;Lo;0;L;;;;;N;;;;; -308E;HIRAGANA LETTER SMALL WA;Lo;0;L;;;;;N;;;;; -308F;HIRAGANA LETTER WA;Lo;0;L;;;;;N;;;;; -3090;HIRAGANA LETTER WI;Lo;0;L;;;;;N;;;;; -3091;HIRAGANA LETTER WE;Lo;0;L;;;;;N;;;;; -3092;HIRAGANA LETTER WO;Lo;0;L;;;;;N;;;;; -3093;HIRAGANA LETTER N;Lo;0;L;;;;;N;;;;; -3094;HIRAGANA LETTER VU;Lo;0;L;3046 3099;;;;N;;;;; -3095;HIRAGANA LETTER SMALL KA;Lo;0;L;;;;;N;;;;; -3096;HIRAGANA LETTER SMALL KE;Lo;0;L;;;;;N;;;;; -3099;COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK;Mn;8;NSM;;;;;N;NON-SPACING KATAKANA-HIRAGANA VOICED SOUND MARK;;;; -309A;COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK;Mn;8;NSM;;;;;N;NON-SPACING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK;;;; -309B;KATAKANA-HIRAGANA VOICED SOUND MARK;Sk;0;ON; 0020 3099;;;;N;;;;; -309C;KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK;Sk;0;ON; 0020 309A;;;;N;;;;; -309D;HIRAGANA ITERATION MARK;Lm;0;L;;;;;N;;;;; -309E;HIRAGANA VOICED ITERATION MARK;Lm;0;L;309D 3099;;;;N;;;;; -309F;HIRAGANA DIGRAPH YORI;Lo;0;L; 3088 308A;;;;N;;;;; -30A0;KATAKANA-HIRAGANA DOUBLE HYPHEN;Pd;0;ON;;;;;N;;;;; -30A1;KATAKANA LETTER SMALL A;Lo;0;L;;;;;N;;;;; -30A2;KATAKANA LETTER A;Lo;0;L;;;;;N;;;;; -30A3;KATAKANA LETTER SMALL I;Lo;0;L;;;;;N;;;;; -30A4;KATAKANA LETTER I;Lo;0;L;;;;;N;;;;; -30A5;KATAKANA LETTER SMALL U;Lo;0;L;;;;;N;;;;; -30A6;KATAKANA LETTER U;Lo;0;L;;;;;N;;;;; -30A7;KATAKANA LETTER SMALL E;Lo;0;L;;;;;N;;;;; -30A8;KATAKANA LETTER E;Lo;0;L;;;;;N;;;;; -30A9;KATAKANA LETTER SMALL O;Lo;0;L;;;;;N;;;;; -30AA;KATAKANA LETTER O;Lo;0;L;;;;;N;;;;; -30AB;KATAKANA LETTER KA;Lo;0;L;;;;;N;;;;; -30AC;KATAKANA LETTER GA;Lo;0;L;30AB 3099;;;;N;;;;; -30AD;KATAKANA LETTER KI;Lo;0;L;;;;;N;;;;; -30AE;KATAKANA LETTER GI;Lo;0;L;30AD 3099;;;;N;;;;; -30AF;KATAKANA LETTER KU;Lo;0;L;;;;;N;;;;; -30B0;KATAKANA LETTER GU;Lo;0;L;30AF 3099;;;;N;;;;; -30B1;KATAKANA LETTER KE;Lo;0;L;;;;;N;;;;; -30B2;KATAKANA LETTER GE;Lo;0;L;30B1 3099;;;;N;;;;; -30B3;KATAKANA LETTER KO;Lo;0;L;;;;;N;;;;; -30B4;KATAKANA LETTER GO;Lo;0;L;30B3 3099;;;;N;;;;; -30B5;KATAKANA LETTER SA;Lo;0;L;;;;;N;;;;; -30B6;KATAKANA LETTER ZA;Lo;0;L;30B5 3099;;;;N;;;;; -30B7;KATAKANA LETTER SI;Lo;0;L;;;;;N;;;;; -30B8;KATAKANA LETTER ZI;Lo;0;L;30B7 3099;;;;N;;;;; -30B9;KATAKANA LETTER SU;Lo;0;L;;;;;N;;;;; -30BA;KATAKANA LETTER ZU;Lo;0;L;30B9 3099;;;;N;;;;; -30BB;KATAKANA LETTER SE;Lo;0;L;;;;;N;;;;; -30BC;KATAKANA LETTER ZE;Lo;0;L;30BB 3099;;;;N;;;;; -30BD;KATAKANA LETTER SO;Lo;0;L;;;;;N;;;;; -30BE;KATAKANA LETTER ZO;Lo;0;L;30BD 3099;;;;N;;;;; -30BF;KATAKANA LETTER TA;Lo;0;L;;;;;N;;;;; -30C0;KATAKANA LETTER DA;Lo;0;L;30BF 3099;;;;N;;;;; -30C1;KATAKANA LETTER TI;Lo;0;L;;;;;N;;;;; -30C2;KATAKANA LETTER DI;Lo;0;L;30C1 3099;;;;N;;;;; -30C3;KATAKANA LETTER SMALL TU;Lo;0;L;;;;;N;;;;; -30C4;KATAKANA LETTER TU;Lo;0;L;;;;;N;;;;; -30C5;KATAKANA LETTER DU;Lo;0;L;30C4 3099;;;;N;;;;; -30C6;KATAKANA LETTER TE;Lo;0;L;;;;;N;;;;; -30C7;KATAKANA LETTER DE;Lo;0;L;30C6 3099;;;;N;;;;; -30C8;KATAKANA LETTER TO;Lo;0;L;;;;;N;;;;; -30C9;KATAKANA LETTER DO;Lo;0;L;30C8 3099;;;;N;;;;; -30CA;KATAKANA LETTER NA;Lo;0;L;;;;;N;;;;; -30CB;KATAKANA LETTER NI;Lo;0;L;;;;;N;;;;; -30CC;KATAKANA LETTER NU;Lo;0;L;;;;;N;;;;; -30CD;KATAKANA LETTER NE;Lo;0;L;;;;;N;;;;; -30CE;KATAKANA LETTER NO;Lo;0;L;;;;;N;;;;; -30CF;KATAKANA LETTER HA;Lo;0;L;;;;;N;;;;; -30D0;KATAKANA LETTER BA;Lo;0;L;30CF 3099;;;;N;;;;; -30D1;KATAKANA LETTER PA;Lo;0;L;30CF 309A;;;;N;;;;; -30D2;KATAKANA LETTER HI;Lo;0;L;;;;;N;;;;; -30D3;KATAKANA LETTER BI;Lo;0;L;30D2 3099;;;;N;;;;; -30D4;KATAKANA LETTER PI;Lo;0;L;30D2 309A;;;;N;;;;; -30D5;KATAKANA LETTER HU;Lo;0;L;;;;;N;;;;; -30D6;KATAKANA LETTER BU;Lo;0;L;30D5 3099;;;;N;;;;; -30D7;KATAKANA LETTER PU;Lo;0;L;30D5 309A;;;;N;;;;; -30D8;KATAKANA LETTER HE;Lo;0;L;;;;;N;;;;; -30D9;KATAKANA LETTER BE;Lo;0;L;30D8 3099;;;;N;;;;; -30DA;KATAKANA LETTER PE;Lo;0;L;30D8 309A;;;;N;;;;; -30DB;KATAKANA LETTER HO;Lo;0;L;;;;;N;;;;; -30DC;KATAKANA LETTER BO;Lo;0;L;30DB 3099;;;;N;;;;; -30DD;KATAKANA LETTER PO;Lo;0;L;30DB 309A;;;;N;;;;; -30DE;KATAKANA LETTER MA;Lo;0;L;;;;;N;;;;; -30DF;KATAKANA LETTER MI;Lo;0;L;;;;;N;;;;; -30E0;KATAKANA LETTER MU;Lo;0;L;;;;;N;;;;; -30E1;KATAKANA LETTER ME;Lo;0;L;;;;;N;;;;; -30E2;KATAKANA LETTER MO;Lo;0;L;;;;;N;;;;; -30E3;KATAKANA LETTER SMALL YA;Lo;0;L;;;;;N;;;;; -30E4;KATAKANA LETTER YA;Lo;0;L;;;;;N;;;;; -30E5;KATAKANA LETTER SMALL YU;Lo;0;L;;;;;N;;;;; -30E6;KATAKANA LETTER YU;Lo;0;L;;;;;N;;;;; -30E7;KATAKANA LETTER SMALL YO;Lo;0;L;;;;;N;;;;; -30E8;KATAKANA LETTER YO;Lo;0;L;;;;;N;;;;; -30E9;KATAKANA LETTER RA;Lo;0;L;;;;;N;;;;; -30EA;KATAKANA LETTER RI;Lo;0;L;;;;;N;;;;; -30EB;KATAKANA LETTER RU;Lo;0;L;;;;;N;;;;; -30EC;KATAKANA LETTER RE;Lo;0;L;;;;;N;;;;; -30ED;KATAKANA LETTER RO;Lo;0;L;;;;;N;;;;; -30EE;KATAKANA LETTER SMALL WA;Lo;0;L;;;;;N;;;;; -30EF;KATAKANA LETTER WA;Lo;0;L;;;;;N;;;;; -30F0;KATAKANA LETTER WI;Lo;0;L;;;;;N;;;;; -30F1;KATAKANA LETTER WE;Lo;0;L;;;;;N;;;;; -30F2;KATAKANA LETTER WO;Lo;0;L;;;;;N;;;;; -30F3;KATAKANA LETTER N;Lo;0;L;;;;;N;;;;; -30F4;KATAKANA LETTER VU;Lo;0;L;30A6 3099;;;;N;;;;; -30F5;KATAKANA LETTER SMALL KA;Lo;0;L;;;;;N;;;;; -30F6;KATAKANA LETTER SMALL KE;Lo;0;L;;;;;N;;;;; -30F7;KATAKANA LETTER VA;Lo;0;L;30EF 3099;;;;N;;;;; -30F8;KATAKANA LETTER VI;Lo;0;L;30F0 3099;;;;N;;;;; -30F9;KATAKANA LETTER VE;Lo;0;L;30F1 3099;;;;N;;;;; -30FA;KATAKANA LETTER VO;Lo;0;L;30F2 3099;;;;N;;;;; -30FB;KATAKANA MIDDLE DOT;Po;0;ON;;;;;N;;;;; -30FC;KATAKANA-HIRAGANA PROLONGED SOUND MARK;Lm;0;L;;;;;N;;;;; -30FD;KATAKANA ITERATION MARK;Lm;0;L;;;;;N;;;;; -30FE;KATAKANA VOICED ITERATION MARK;Lm;0;L;30FD 3099;;;;N;;;;; -30FF;KATAKANA DIGRAPH KOTO;Lo;0;L; 30B3 30C8;;;;N;;;;; -3105;BOPOMOFO LETTER B;Lo;0;L;;;;;N;;;;; -3106;BOPOMOFO LETTER P;Lo;0;L;;;;;N;;;;; -3107;BOPOMOFO LETTER M;Lo;0;L;;;;;N;;;;; -3108;BOPOMOFO LETTER F;Lo;0;L;;;;;N;;;;; -3109;BOPOMOFO LETTER D;Lo;0;L;;;;;N;;;;; -310A;BOPOMOFO LETTER T;Lo;0;L;;;;;N;;;;; -310B;BOPOMOFO LETTER N;Lo;0;L;;;;;N;;;;; -310C;BOPOMOFO LETTER L;Lo;0;L;;;;;N;;;;; -310D;BOPOMOFO LETTER G;Lo;0;L;;;;;N;;;;; -310E;BOPOMOFO LETTER K;Lo;0;L;;;;;N;;;;; -310F;BOPOMOFO LETTER H;Lo;0;L;;;;;N;;;;; -3110;BOPOMOFO LETTER J;Lo;0;L;;;;;N;;;;; -3111;BOPOMOFO LETTER Q;Lo;0;L;;;;;N;;;;; -3112;BOPOMOFO LETTER X;Lo;0;L;;;;;N;;;;; -3113;BOPOMOFO LETTER ZH;Lo;0;L;;;;;N;;;;; -3114;BOPOMOFO LETTER CH;Lo;0;L;;;;;N;;;;; -3115;BOPOMOFO LETTER SH;Lo;0;L;;;;;N;;;;; -3116;BOPOMOFO LETTER R;Lo;0;L;;;;;N;;;;; -3117;BOPOMOFO LETTER Z;Lo;0;L;;;;;N;;;;; -3118;BOPOMOFO LETTER C;Lo;0;L;;;;;N;;;;; -3119;BOPOMOFO LETTER S;Lo;0;L;;;;;N;;;;; -311A;BOPOMOFO LETTER A;Lo;0;L;;;;;N;;;;; -311B;BOPOMOFO LETTER O;Lo;0;L;;;;;N;;;;; -311C;BOPOMOFO LETTER E;Lo;0;L;;;;;N;;;;; -311D;BOPOMOFO LETTER EH;Lo;0;L;;;;;N;;;;; -311E;BOPOMOFO LETTER AI;Lo;0;L;;;;;N;;;;; -311F;BOPOMOFO LETTER EI;Lo;0;L;;;;;N;;;;; -3120;BOPOMOFO LETTER AU;Lo;0;L;;;;;N;;;;; -3121;BOPOMOFO LETTER OU;Lo;0;L;;;;;N;;;;; -3122;BOPOMOFO LETTER AN;Lo;0;L;;;;;N;;;;; -3123;BOPOMOFO LETTER EN;Lo;0;L;;;;;N;;;;; -3124;BOPOMOFO LETTER ANG;Lo;0;L;;;;;N;;;;; -3125;BOPOMOFO LETTER ENG;Lo;0;L;;;;;N;;;;; -3126;BOPOMOFO LETTER ER;Lo;0;L;;;;;N;;;;; -3127;BOPOMOFO LETTER I;Lo;0;L;;;;;N;;;;; -3128;BOPOMOFO LETTER U;Lo;0;L;;;;;N;;;;; -3129;BOPOMOFO LETTER IU;Lo;0;L;;;;;N;;;;; -312A;BOPOMOFO LETTER V;Lo;0;L;;;;;N;;;;; -312B;BOPOMOFO LETTER NG;Lo;0;L;;;;;N;;;;; -312C;BOPOMOFO LETTER GN;Lo;0;L;;;;;N;;;;; -312D;BOPOMOFO LETTER IH;Lo;0;L;;;;;N;;;;; -3131;HANGUL LETTER KIYEOK;Lo;0;L; 1100;;;;N;HANGUL LETTER GIYEOG;;;; -3132;HANGUL LETTER SSANGKIYEOK;Lo;0;L; 1101;;;;N;HANGUL LETTER SSANG GIYEOG;;;; -3133;HANGUL LETTER KIYEOK-SIOS;Lo;0;L; 11AA;;;;N;HANGUL LETTER GIYEOG SIOS;;;; -3134;HANGUL LETTER NIEUN;Lo;0;L; 1102;;;;N;;;;; -3135;HANGUL LETTER NIEUN-CIEUC;Lo;0;L; 11AC;;;;N;HANGUL LETTER NIEUN JIEUJ;;;; -3136;HANGUL LETTER NIEUN-HIEUH;Lo;0;L; 11AD;;;;N;HANGUL LETTER NIEUN HIEUH;;;; -3137;HANGUL LETTER TIKEUT;Lo;0;L; 1103;;;;N;HANGUL LETTER DIGEUD;;;; -3138;HANGUL LETTER SSANGTIKEUT;Lo;0;L; 1104;;;;N;HANGUL LETTER SSANG DIGEUD;;;; -3139;HANGUL LETTER RIEUL;Lo;0;L; 1105;;;;N;HANGUL LETTER LIEUL;;;; -313A;HANGUL LETTER RIEUL-KIYEOK;Lo;0;L; 11B0;;;;N;HANGUL LETTER LIEUL GIYEOG;;;; -313B;HANGUL LETTER RIEUL-MIEUM;Lo;0;L; 11B1;;;;N;HANGUL LETTER LIEUL MIEUM;;;; -313C;HANGUL LETTER RIEUL-PIEUP;Lo;0;L; 11B2;;;;N;HANGUL LETTER LIEUL BIEUB;;;; -313D;HANGUL LETTER RIEUL-SIOS;Lo;0;L; 11B3;;;;N;HANGUL LETTER LIEUL SIOS;;;; -313E;HANGUL LETTER RIEUL-THIEUTH;Lo;0;L; 11B4;;;;N;HANGUL LETTER LIEUL TIEUT;;;; -313F;HANGUL LETTER RIEUL-PHIEUPH;Lo;0;L; 11B5;;;;N;HANGUL LETTER LIEUL PIEUP;;;; -3140;HANGUL LETTER RIEUL-HIEUH;Lo;0;L; 111A;;;;N;HANGUL LETTER LIEUL HIEUH;;;; -3141;HANGUL LETTER MIEUM;Lo;0;L; 1106;;;;N;;;;; -3142;HANGUL LETTER PIEUP;Lo;0;L; 1107;;;;N;HANGUL LETTER BIEUB;;;; -3143;HANGUL LETTER SSANGPIEUP;Lo;0;L; 1108;;;;N;HANGUL LETTER SSANG BIEUB;;;; -3144;HANGUL LETTER PIEUP-SIOS;Lo;0;L; 1121;;;;N;HANGUL LETTER BIEUB SIOS;;;; -3145;HANGUL LETTER SIOS;Lo;0;L; 1109;;;;N;;;;; -3146;HANGUL LETTER SSANGSIOS;Lo;0;L; 110A;;;;N;HANGUL LETTER SSANG SIOS;;;; -3147;HANGUL LETTER IEUNG;Lo;0;L; 110B;;;;N;;;;; -3148;HANGUL LETTER CIEUC;Lo;0;L; 110C;;;;N;HANGUL LETTER JIEUJ;;;; -3149;HANGUL LETTER SSANGCIEUC;Lo;0;L; 110D;;;;N;HANGUL LETTER SSANG JIEUJ;;;; -314A;HANGUL LETTER CHIEUCH;Lo;0;L; 110E;;;;N;HANGUL LETTER CIEUC;;;; -314B;HANGUL LETTER KHIEUKH;Lo;0;L; 110F;;;;N;HANGUL LETTER KIYEOK;;;; -314C;HANGUL LETTER THIEUTH;Lo;0;L; 1110;;;;N;HANGUL LETTER TIEUT;;;; -314D;HANGUL LETTER PHIEUPH;Lo;0;L; 1111;;;;N;HANGUL LETTER PIEUP;;;; -314E;HANGUL LETTER HIEUH;Lo;0;L; 1112;;;;N;;;;; -314F;HANGUL LETTER A;Lo;0;L; 1161;;;;N;;;;; -3150;HANGUL LETTER AE;Lo;0;L; 1162;;;;N;;;;; -3151;HANGUL LETTER YA;Lo;0;L; 1163;;;;N;;;;; -3152;HANGUL LETTER YAE;Lo;0;L; 1164;;;;N;;;;; -3153;HANGUL LETTER EO;Lo;0;L; 1165;;;;N;;;;; -3154;HANGUL LETTER E;Lo;0;L; 1166;;;;N;;;;; -3155;HANGUL LETTER YEO;Lo;0;L; 1167;;;;N;;;;; -3156;HANGUL LETTER YE;Lo;0;L; 1168;;;;N;;;;; -3157;HANGUL LETTER O;Lo;0;L; 1169;;;;N;;;;; -3158;HANGUL LETTER WA;Lo;0;L; 116A;;;;N;;;;; -3159;HANGUL LETTER WAE;Lo;0;L; 116B;;;;N;;;;; -315A;HANGUL LETTER OE;Lo;0;L; 116C;;;;N;;;;; -315B;HANGUL LETTER YO;Lo;0;L; 116D;;;;N;;;;; -315C;HANGUL LETTER U;Lo;0;L; 116E;;;;N;;;;; -315D;HANGUL LETTER WEO;Lo;0;L; 116F;;;;N;;;;; -315E;HANGUL LETTER WE;Lo;0;L; 1170;;;;N;;;;; -315F;HANGUL LETTER WI;Lo;0;L; 1171;;;;N;;;;; -3160;HANGUL LETTER YU;Lo;0;L; 1172;;;;N;;;;; -3161;HANGUL LETTER EU;Lo;0;L; 1173;;;;N;;;;; -3162;HANGUL LETTER YI;Lo;0;L; 1174;;;;N;;;;; -3163;HANGUL LETTER I;Lo;0;L; 1175;;;;N;;;;; -3164;HANGUL FILLER;Lo;0;L; 1160;;;;N;HANGUL CAE OM;;;; -3165;HANGUL LETTER SSANGNIEUN;Lo;0;L; 1114;;;;N;HANGUL LETTER SSANG NIEUN;;;; -3166;HANGUL LETTER NIEUN-TIKEUT;Lo;0;L; 1115;;;;N;HANGUL LETTER NIEUN DIGEUD;;;; -3167;HANGUL LETTER NIEUN-SIOS;Lo;0;L; 11C7;;;;N;HANGUL LETTER NIEUN SIOS;;;; -3168;HANGUL LETTER NIEUN-PANSIOS;Lo;0;L; 11C8;;;;N;HANGUL LETTER NIEUN BAN CHI EUM;;;; -3169;HANGUL LETTER RIEUL-KIYEOK-SIOS;Lo;0;L; 11CC;;;;N;HANGUL LETTER LIEUL GIYEOG SIOS;;;; -316A;HANGUL LETTER RIEUL-TIKEUT;Lo;0;L; 11CE;;;;N;HANGUL LETTER LIEUL DIGEUD;;;; -316B;HANGUL LETTER RIEUL-PIEUP-SIOS;Lo;0;L; 11D3;;;;N;HANGUL LETTER LIEUL BIEUB SIOS;;;; -316C;HANGUL LETTER RIEUL-PANSIOS;Lo;0;L; 11D7;;;;N;HANGUL LETTER LIEUL BAN CHI EUM;;;; -316D;HANGUL LETTER RIEUL-YEORINHIEUH;Lo;0;L; 11D9;;;;N;HANGUL LETTER LIEUL YEOLIN HIEUH;;;; -316E;HANGUL LETTER MIEUM-PIEUP;Lo;0;L; 111C;;;;N;HANGUL LETTER MIEUM BIEUB;;;; -316F;HANGUL LETTER MIEUM-SIOS;Lo;0;L; 11DD;;;;N;HANGUL LETTER MIEUM SIOS;;;; -3170;HANGUL LETTER MIEUM-PANSIOS;Lo;0;L; 11DF;;;;N;HANGUL LETTER BIEUB BAN CHI EUM;;;; -3171;HANGUL LETTER KAPYEOUNMIEUM;Lo;0;L; 111D;;;;N;HANGUL LETTER MIEUM SUN GYEONG EUM;;;; -3172;HANGUL LETTER PIEUP-KIYEOK;Lo;0;L; 111E;;;;N;HANGUL LETTER BIEUB GIYEOG;;;; -3173;HANGUL LETTER PIEUP-TIKEUT;Lo;0;L; 1120;;;;N;HANGUL LETTER BIEUB DIGEUD;;;; -3174;HANGUL LETTER PIEUP-SIOS-KIYEOK;Lo;0;L; 1122;;;;N;HANGUL LETTER BIEUB SIOS GIYEOG;;;; -3175;HANGUL LETTER PIEUP-SIOS-TIKEUT;Lo;0;L; 1123;;;;N;HANGUL LETTER BIEUB SIOS DIGEUD;;;; -3176;HANGUL LETTER PIEUP-CIEUC;Lo;0;L; 1127;;;;N;HANGUL LETTER BIEUB JIEUJ;;;; -3177;HANGUL LETTER PIEUP-THIEUTH;Lo;0;L; 1129;;;;N;HANGUL LETTER BIEUB TIEUT;;;; -3178;HANGUL LETTER KAPYEOUNPIEUP;Lo;0;L; 112B;;;;N;HANGUL LETTER BIEUB SUN GYEONG EUM;;;; -3179;HANGUL LETTER KAPYEOUNSSANGPIEUP;Lo;0;L; 112C;;;;N;HANGUL LETTER SSANG BIEUB SUN GYEONG EUM;;;; -317A;HANGUL LETTER SIOS-KIYEOK;Lo;0;L; 112D;;;;N;HANGUL LETTER SIOS GIYEOG;;;; -317B;HANGUL LETTER SIOS-NIEUN;Lo;0;L; 112E;;;;N;HANGUL LETTER SIOS NIEUN;;;; -317C;HANGUL LETTER SIOS-TIKEUT;Lo;0;L; 112F;;;;N;HANGUL LETTER SIOS DIGEUD;;;; -317D;HANGUL LETTER SIOS-PIEUP;Lo;0;L; 1132;;;;N;HANGUL LETTER SIOS BIEUB;;;; -317E;HANGUL LETTER SIOS-CIEUC;Lo;0;L; 1136;;;;N;HANGUL LETTER SIOS JIEUJ;;;; -317F;HANGUL LETTER PANSIOS;Lo;0;L; 1140;;;;N;HANGUL LETTER BAN CHI EUM;;;; -3180;HANGUL LETTER SSANGIEUNG;Lo;0;L; 1147;;;;N;HANGUL LETTER SSANG IEUNG;;;; -3181;HANGUL LETTER YESIEUNG;Lo;0;L; 114C;;;;N;HANGUL LETTER NGIEUNG;;;; -3182;HANGUL LETTER YESIEUNG-SIOS;Lo;0;L; 11F1;;;;N;HANGUL LETTER NGIEUNG SIOS;;;; -3183;HANGUL LETTER YESIEUNG-PANSIOS;Lo;0;L; 11F2;;;;N;HANGUL LETTER NGIEUNG BAN CHI EUM;;;; -3184;HANGUL LETTER KAPYEOUNPHIEUPH;Lo;0;L; 1157;;;;N;HANGUL LETTER PIEUP SUN GYEONG EUM;;;; -3185;HANGUL LETTER SSANGHIEUH;Lo;0;L; 1158;;;;N;HANGUL LETTER SSANG HIEUH;;;; -3186;HANGUL LETTER YEORINHIEUH;Lo;0;L; 1159;;;;N;HANGUL LETTER YEOLIN HIEUH;;;; -3187;HANGUL LETTER YO-YA;Lo;0;L; 1184;;;;N;HANGUL LETTER YOYA;;;; -3188;HANGUL LETTER YO-YAE;Lo;0;L; 1185;;;;N;HANGUL LETTER YOYAE;;;; -3189;HANGUL LETTER YO-I;Lo;0;L; 1188;;;;N;HANGUL LETTER YOI;;;; -318A;HANGUL LETTER YU-YEO;Lo;0;L; 1191;;;;N;HANGUL LETTER YUYEO;;;; -318B;HANGUL LETTER YU-YE;Lo;0;L; 1192;;;;N;HANGUL LETTER YUYE;;;; -318C;HANGUL LETTER YU-I;Lo;0;L; 1194;;;;N;HANGUL LETTER YUI;;;; -318D;HANGUL LETTER ARAEA;Lo;0;L; 119E;;;;N;HANGUL LETTER ALAE A;;;; -318E;HANGUL LETTER ARAEAE;Lo;0;L; 11A1;;;;N;HANGUL LETTER ALAE AE;;;; -3190;IDEOGRAPHIC ANNOTATION LINKING MARK;So;0;L;;;;;N;KANBUN TATETEN;;;; -3191;IDEOGRAPHIC ANNOTATION REVERSE MARK;So;0;L;;;;;N;KAERITEN RE;;;; -3192;IDEOGRAPHIC ANNOTATION ONE MARK;No;0;L; 4E00;;;1;N;KAERITEN ITI;;;; -3193;IDEOGRAPHIC ANNOTATION TWO MARK;No;0;L; 4E8C;;;2;N;KAERITEN NI;;;; -3194;IDEOGRAPHIC ANNOTATION THREE MARK;No;0;L; 4E09;;;3;N;KAERITEN SAN;;;; -3195;IDEOGRAPHIC ANNOTATION FOUR MARK;No;0;L; 56DB;;;4;N;KAERITEN SI;;;; -3196;IDEOGRAPHIC ANNOTATION TOP MARK;So;0;L; 4E0A;;;;N;KAERITEN ZYOU;;;; -3197;IDEOGRAPHIC ANNOTATION MIDDLE MARK;So;0;L; 4E2D;;;;N;KAERITEN TYUU;;;; -3198;IDEOGRAPHIC ANNOTATION BOTTOM MARK;So;0;L; 4E0B;;;;N;KAERITEN GE;;;; -3199;IDEOGRAPHIC ANNOTATION FIRST MARK;So;0;L; 7532;;;;N;KAERITEN KOU;;;; -319A;IDEOGRAPHIC ANNOTATION SECOND MARK;So;0;L; 4E59;;;;N;KAERITEN OTU;;;; -319B;IDEOGRAPHIC ANNOTATION THIRD MARK;So;0;L; 4E19;;;;N;KAERITEN HEI;;;; -319C;IDEOGRAPHIC ANNOTATION FOURTH MARK;So;0;L; 4E01;;;;N;KAERITEN TEI;;;; -319D;IDEOGRAPHIC ANNOTATION HEAVEN MARK;So;0;L; 5929;;;;N;KAERITEN TEN;;;; -319E;IDEOGRAPHIC ANNOTATION EARTH MARK;So;0;L; 5730;;;;N;KAERITEN TI;;;; -319F;IDEOGRAPHIC ANNOTATION MAN MARK;So;0;L; 4EBA;;;;N;KAERITEN ZIN;;;; -31A0;BOPOMOFO LETTER BU;Lo;0;L;;;;;N;;;;; -31A1;BOPOMOFO LETTER ZI;Lo;0;L;;;;;N;;;;; -31A2;BOPOMOFO LETTER JI;Lo;0;L;;;;;N;;;;; -31A3;BOPOMOFO LETTER GU;Lo;0;L;;;;;N;;;;; -31A4;BOPOMOFO LETTER EE;Lo;0;L;;;;;N;;;;; -31A5;BOPOMOFO LETTER ENN;Lo;0;L;;;;;N;;;;; -31A6;BOPOMOFO LETTER OO;Lo;0;L;;;;;N;;;;; -31A7;BOPOMOFO LETTER ONN;Lo;0;L;;;;;N;;;;; -31A8;BOPOMOFO LETTER IR;Lo;0;L;;;;;N;;;;; -31A9;BOPOMOFO LETTER ANN;Lo;0;L;;;;;N;;;;; -31AA;BOPOMOFO LETTER INN;Lo;0;L;;;;;N;;;;; -31AB;BOPOMOFO LETTER UNN;Lo;0;L;;;;;N;;;;; -31AC;BOPOMOFO LETTER IM;Lo;0;L;;;;;N;;;;; -31AD;BOPOMOFO LETTER NGG;Lo;0;L;;;;;N;;;;; -31AE;BOPOMOFO LETTER AINN;Lo;0;L;;;;;N;;;;; -31AF;BOPOMOFO LETTER AUNN;Lo;0;L;;;;;N;;;;; -31B0;BOPOMOFO LETTER AM;Lo;0;L;;;;;N;;;;; -31B1;BOPOMOFO LETTER OM;Lo;0;L;;;;;N;;;;; -31B2;BOPOMOFO LETTER ONG;Lo;0;L;;;;;N;;;;; -31B3;BOPOMOFO LETTER INNN;Lo;0;L;;;;;N;;;;; -31B4;BOPOMOFO FINAL LETTER P;Lo;0;L;;;;;N;;;;; -31B5;BOPOMOFO FINAL LETTER T;Lo;0;L;;;;;N;;;;; -31B6;BOPOMOFO FINAL LETTER K;Lo;0;L;;;;;N;;;;; -31B7;BOPOMOFO FINAL LETTER H;Lo;0;L;;;;;N;;;;; -31C0;CJK STROKE T;So;0;ON;;;;;N;;;;; -31C1;CJK STROKE WG;So;0;ON;;;;;N;;;;; -31C2;CJK STROKE XG;So;0;ON;;;;;N;;;;; -31C3;CJK STROKE BXG;So;0;ON;;;;;N;;;;; -31C4;CJK STROKE SW;So;0;ON;;;;;N;;;;; -31C5;CJK STROKE HZZ;So;0;ON;;;;;N;;;;; -31C6;CJK STROKE HZG;So;0;ON;;;;;N;;;;; -31C7;CJK STROKE HP;So;0;ON;;;;;N;;;;; -31C8;CJK STROKE HZWG;So;0;ON;;;;;N;;;;; -31C9;CJK STROKE SZWG;So;0;ON;;;;;N;;;;; -31CA;CJK STROKE HZT;So;0;ON;;;;;N;;;;; -31CB;CJK STROKE HZZP;So;0;ON;;;;;N;;;;; -31CC;CJK STROKE HPWG;So;0;ON;;;;;N;;;;; -31CD;CJK STROKE HZW;So;0;ON;;;;;N;;;;; -31CE;CJK STROKE HZZZ;So;0;ON;;;;;N;;;;; -31CF;CJK STROKE N;So;0;ON;;;;;N;;;;; -31D0;CJK STROKE H;So;0;ON;;;;;N;;;;; -31D1;CJK STROKE S;So;0;ON;;;;;N;;;;; -31D2;CJK STROKE P;So;0;ON;;;;;N;;;;; -31D3;CJK STROKE SP;So;0;ON;;;;;N;;;;; -31D4;CJK STROKE D;So;0;ON;;;;;N;;;;; -31D5;CJK STROKE HZ;So;0;ON;;;;;N;;;;; -31D6;CJK STROKE HG;So;0;ON;;;;;N;;;;; -31D7;CJK STROKE SZ;So;0;ON;;;;;N;;;;; -31D8;CJK STROKE SWZ;So;0;ON;;;;;N;;;;; -31D9;CJK STROKE ST;So;0;ON;;;;;N;;;;; -31DA;CJK STROKE SG;So;0;ON;;;;;N;;;;; -31DB;CJK STROKE PD;So;0;ON;;;;;N;;;;; -31DC;CJK STROKE PZ;So;0;ON;;;;;N;;;;; -31DD;CJK STROKE TN;So;0;ON;;;;;N;;;;; -31DE;CJK STROKE SZZ;So;0;ON;;;;;N;;;;; -31DF;CJK STROKE SWG;So;0;ON;;;;;N;;;;; -31E0;CJK STROKE HXWG;So;0;ON;;;;;N;;;;; -31E1;CJK STROKE HZZZG;So;0;ON;;;;;N;;;;; -31E2;CJK STROKE PG;So;0;ON;;;;;N;;;;; -31E3;CJK STROKE Q;So;0;ON;;;;;N;;;;; -31F0;KATAKANA LETTER SMALL KU;Lo;0;L;;;;;N;;;;; -31F1;KATAKANA LETTER SMALL SI;Lo;0;L;;;;;N;;;;; -31F2;KATAKANA LETTER SMALL SU;Lo;0;L;;;;;N;;;;; -31F3;KATAKANA LETTER SMALL TO;Lo;0;L;;;;;N;;;;; -31F4;KATAKANA LETTER SMALL NU;Lo;0;L;;;;;N;;;;; -31F5;KATAKANA LETTER SMALL HA;Lo;0;L;;;;;N;;;;; -31F6;KATAKANA LETTER SMALL HI;Lo;0;L;;;;;N;;;;; -31F7;KATAKANA LETTER SMALL HU;Lo;0;L;;;;;N;;;;; -31F8;KATAKANA LETTER SMALL HE;Lo;0;L;;;;;N;;;;; -31F9;KATAKANA LETTER SMALL HO;Lo;0;L;;;;;N;;;;; -31FA;KATAKANA LETTER SMALL MU;Lo;0;L;;;;;N;;;;; -31FB;KATAKANA LETTER SMALL RA;Lo;0;L;;;;;N;;;;; -31FC;KATAKANA LETTER SMALL RI;Lo;0;L;;;;;N;;;;; -31FD;KATAKANA LETTER SMALL RU;Lo;0;L;;;;;N;;;;; -31FE;KATAKANA LETTER SMALL RE;Lo;0;L;;;;;N;;;;; -31FF;KATAKANA LETTER SMALL RO;Lo;0;L;;;;;N;;;;; -3200;PARENTHESIZED HANGUL KIYEOK;So;0;L; 0028 1100 0029;;;;N;PARENTHESIZED HANGUL GIYEOG;;;; -3201;PARENTHESIZED HANGUL NIEUN;So;0;L; 0028 1102 0029;;;;N;;;;; -3202;PARENTHESIZED HANGUL TIKEUT;So;0;L; 0028 1103 0029;;;;N;PARENTHESIZED HANGUL DIGEUD;;;; -3203;PARENTHESIZED HANGUL RIEUL;So;0;L; 0028 1105 0029;;;;N;PARENTHESIZED HANGUL LIEUL;;;; -3204;PARENTHESIZED HANGUL MIEUM;So;0;L; 0028 1106 0029;;;;N;;;;; -3205;PARENTHESIZED HANGUL PIEUP;So;0;L; 0028 1107 0029;;;;N;PARENTHESIZED HANGUL BIEUB;;;; -3206;PARENTHESIZED HANGUL SIOS;So;0;L; 0028 1109 0029;;;;N;;;;; -3207;PARENTHESIZED HANGUL IEUNG;So;0;L; 0028 110B 0029;;;;N;;;;; -3208;PARENTHESIZED HANGUL CIEUC;So;0;L; 0028 110C 0029;;;;N;PARENTHESIZED HANGUL JIEUJ;;;; -3209;PARENTHESIZED HANGUL CHIEUCH;So;0;L; 0028 110E 0029;;;;N;PARENTHESIZED HANGUL CIEUC;;;; -320A;PARENTHESIZED HANGUL KHIEUKH;So;0;L; 0028 110F 0029;;;;N;PARENTHESIZED HANGUL KIYEOK;;;; -320B;PARENTHESIZED HANGUL THIEUTH;So;0;L; 0028 1110 0029;;;;N;PARENTHESIZED HANGUL TIEUT;;;; -320C;PARENTHESIZED HANGUL PHIEUPH;So;0;L; 0028 1111 0029;;;;N;PARENTHESIZED HANGUL PIEUP;;;; -320D;PARENTHESIZED HANGUL HIEUH;So;0;L; 0028 1112 0029;;;;N;;;;; -320E;PARENTHESIZED HANGUL KIYEOK A;So;0;L; 0028 1100 1161 0029;;;;N;PARENTHESIZED HANGUL GA;;;; -320F;PARENTHESIZED HANGUL NIEUN A;So;0;L; 0028 1102 1161 0029;;;;N;PARENTHESIZED HANGUL NA;;;; -3210;PARENTHESIZED HANGUL TIKEUT A;So;0;L; 0028 1103 1161 0029;;;;N;PARENTHESIZED HANGUL DA;;;; -3211;PARENTHESIZED HANGUL RIEUL A;So;0;L; 0028 1105 1161 0029;;;;N;PARENTHESIZED HANGUL LA;;;; -3212;PARENTHESIZED HANGUL MIEUM A;So;0;L; 0028 1106 1161 0029;;;;N;PARENTHESIZED HANGUL MA;;;; -3213;PARENTHESIZED HANGUL PIEUP A;So;0;L; 0028 1107 1161 0029;;;;N;PARENTHESIZED HANGUL BA;;;; -3214;PARENTHESIZED HANGUL SIOS A;So;0;L; 0028 1109 1161 0029;;;;N;PARENTHESIZED HANGUL SA;;;; -3215;PARENTHESIZED HANGUL IEUNG A;So;0;L; 0028 110B 1161 0029;;;;N;PARENTHESIZED HANGUL A;;;; -3216;PARENTHESIZED HANGUL CIEUC A;So;0;L; 0028 110C 1161 0029;;;;N;PARENTHESIZED HANGUL JA;;;; -3217;PARENTHESIZED HANGUL CHIEUCH A;So;0;L; 0028 110E 1161 0029;;;;N;PARENTHESIZED HANGUL CA;;;; -3218;PARENTHESIZED HANGUL KHIEUKH A;So;0;L; 0028 110F 1161 0029;;;;N;PARENTHESIZED HANGUL KA;;;; -3219;PARENTHESIZED HANGUL THIEUTH A;So;0;L; 0028 1110 1161 0029;;;;N;PARENTHESIZED HANGUL TA;;;; -321A;PARENTHESIZED HANGUL PHIEUPH A;So;0;L; 0028 1111 1161 0029;;;;N;PARENTHESIZED HANGUL PA;;;; -321B;PARENTHESIZED HANGUL HIEUH A;So;0;L; 0028 1112 1161 0029;;;;N;PARENTHESIZED HANGUL HA;;;; -321C;PARENTHESIZED HANGUL CIEUC U;So;0;L; 0028 110C 116E 0029;;;;N;PARENTHESIZED HANGUL JU;;;; -321D;PARENTHESIZED KOREAN CHARACTER OJEON;So;0;ON; 0028 110B 1169 110C 1165 11AB 0029;;;;N;;;;; -321E;PARENTHESIZED KOREAN CHARACTER O HU;So;0;ON; 0028 110B 1169 1112 116E 0029;;;;N;;;;; -3220;PARENTHESIZED IDEOGRAPH ONE;No;0;L; 0028 4E00 0029;;;1;N;;;;; -3221;PARENTHESIZED IDEOGRAPH TWO;No;0;L; 0028 4E8C 0029;;;2;N;;;;; -3222;PARENTHESIZED IDEOGRAPH THREE;No;0;L; 0028 4E09 0029;;;3;N;;;;; -3223;PARENTHESIZED IDEOGRAPH FOUR;No;0;L; 0028 56DB 0029;;;4;N;;;;; -3224;PARENTHESIZED IDEOGRAPH FIVE;No;0;L; 0028 4E94 0029;;;5;N;;;;; -3225;PARENTHESIZED IDEOGRAPH SIX;No;0;L; 0028 516D 0029;;;6;N;;;;; -3226;PARENTHESIZED IDEOGRAPH SEVEN;No;0;L; 0028 4E03 0029;;;7;N;;;;; -3227;PARENTHESIZED IDEOGRAPH EIGHT;No;0;L; 0028 516B 0029;;;8;N;;;;; -3228;PARENTHESIZED IDEOGRAPH NINE;No;0;L; 0028 4E5D 0029;;;9;N;;;;; -3229;PARENTHESIZED IDEOGRAPH TEN;No;0;L; 0028 5341 0029;;;10;N;;;;; -322A;PARENTHESIZED IDEOGRAPH MOON;So;0;L; 0028 6708 0029;;;;N;;;;; -322B;PARENTHESIZED IDEOGRAPH FIRE;So;0;L; 0028 706B 0029;;;;N;;;;; -322C;PARENTHESIZED IDEOGRAPH WATER;So;0;L; 0028 6C34 0029;;;;N;;;;; -322D;PARENTHESIZED IDEOGRAPH WOOD;So;0;L; 0028 6728 0029;;;;N;;;;; -322E;PARENTHESIZED IDEOGRAPH METAL;So;0;L; 0028 91D1 0029;;;;N;;;;; -322F;PARENTHESIZED IDEOGRAPH EARTH;So;0;L; 0028 571F 0029;;;;N;;;;; -3230;PARENTHESIZED IDEOGRAPH SUN;So;0;L; 0028 65E5 0029;;;;N;;;;; -3231;PARENTHESIZED IDEOGRAPH STOCK;So;0;L; 0028 682A 0029;;;;N;;;;; -3232;PARENTHESIZED IDEOGRAPH HAVE;So;0;L; 0028 6709 0029;;;;N;;;;; -3233;PARENTHESIZED IDEOGRAPH SOCIETY;So;0;L; 0028 793E 0029;;;;N;;;;; -3234;PARENTHESIZED IDEOGRAPH NAME;So;0;L; 0028 540D 0029;;;;N;;;;; -3235;PARENTHESIZED IDEOGRAPH SPECIAL;So;0;L; 0028 7279 0029;;;;N;;;;; -3236;PARENTHESIZED IDEOGRAPH FINANCIAL;So;0;L; 0028 8CA1 0029;;;;N;;;;; -3237;PARENTHESIZED IDEOGRAPH CONGRATULATION;So;0;L; 0028 795D 0029;;;;N;;;;; -3238;PARENTHESIZED IDEOGRAPH LABOR;So;0;L; 0028 52B4 0029;;;;N;;;;; -3239;PARENTHESIZED IDEOGRAPH REPRESENT;So;0;L; 0028 4EE3 0029;;;;N;;;;; -323A;PARENTHESIZED IDEOGRAPH CALL;So;0;L; 0028 547C 0029;;;;N;;;;; -323B;PARENTHESIZED IDEOGRAPH STUDY;So;0;L; 0028 5B66 0029;;;;N;;;;; -323C;PARENTHESIZED IDEOGRAPH SUPERVISE;So;0;L; 0028 76E3 0029;;;;N;;;;; -323D;PARENTHESIZED IDEOGRAPH ENTERPRISE;So;0;L; 0028 4F01 0029;;;;N;;;;; -323E;PARENTHESIZED IDEOGRAPH RESOURCE;So;0;L; 0028 8CC7 0029;;;;N;;;;; -323F;PARENTHESIZED IDEOGRAPH ALLIANCE;So;0;L; 0028 5354 0029;;;;N;;;;; -3240;PARENTHESIZED IDEOGRAPH FESTIVAL;So;0;L; 0028 796D 0029;;;;N;;;;; -3241;PARENTHESIZED IDEOGRAPH REST;So;0;L; 0028 4F11 0029;;;;N;;;;; -3242;PARENTHESIZED IDEOGRAPH SELF;So;0;L; 0028 81EA 0029;;;;N;;;;; -3243;PARENTHESIZED IDEOGRAPH REACH;So;0;L; 0028 81F3 0029;;;;N;;;;; -3244;CIRCLED IDEOGRAPH QUESTION;So;0;L; 554F;;;;N;;;;; -3245;CIRCLED IDEOGRAPH KINDERGARTEN;So;0;L; 5E7C;;;;N;;;;; -3246;CIRCLED IDEOGRAPH SCHOOL;So;0;L; 6587;;;;N;;;;; -3247;CIRCLED IDEOGRAPH KOTO;So;0;L; 7B8F;;;;N;;;;; -3248;CIRCLED NUMBER TEN ON BLACK SQUARE;So;0;L;;;;;N;;;;; -3249;CIRCLED NUMBER TWENTY ON BLACK SQUARE;So;0;L;;;;;N;;;;; -324A;CIRCLED NUMBER THIRTY ON BLACK SQUARE;So;0;L;;;;;N;;;;; -324B;CIRCLED NUMBER FORTY ON BLACK SQUARE;So;0;L;;;;;N;;;;; -324C;CIRCLED NUMBER FIFTY ON BLACK SQUARE;So;0;L;;;;;N;;;;; -324D;CIRCLED NUMBER SIXTY ON BLACK SQUARE;So;0;L;;;;;N;;;;; -324E;CIRCLED NUMBER SEVENTY ON BLACK SQUARE;So;0;L;;;;;N;;;;; -324F;CIRCLED NUMBER EIGHTY ON BLACK SQUARE;So;0;L;;;;;N;;;;; -3250;PARTNERSHIP SIGN;So;0;ON; 0050 0054 0045;;;;N;;;;; -3251;CIRCLED NUMBER TWENTY ONE;No;0;ON; 0032 0031;;;21;N;;;;; -3252;CIRCLED NUMBER TWENTY TWO;No;0;ON; 0032 0032;;;22;N;;;;; -3253;CIRCLED NUMBER TWENTY THREE;No;0;ON; 0032 0033;;;23;N;;;;; -3254;CIRCLED NUMBER TWENTY FOUR;No;0;ON; 0032 0034;;;24;N;;;;; -3255;CIRCLED NUMBER TWENTY FIVE;No;0;ON; 0032 0035;;;25;N;;;;; -3256;CIRCLED NUMBER TWENTY SIX;No;0;ON; 0032 0036;;;26;N;;;;; -3257;CIRCLED NUMBER TWENTY SEVEN;No;0;ON; 0032 0037;;;27;N;;;;; -3258;CIRCLED NUMBER TWENTY EIGHT;No;0;ON; 0032 0038;;;28;N;;;;; -3259;CIRCLED NUMBER TWENTY NINE;No;0;ON; 0032 0039;;;29;N;;;;; -325A;CIRCLED NUMBER THIRTY;No;0;ON; 0033 0030;;;30;N;;;;; -325B;CIRCLED NUMBER THIRTY ONE;No;0;ON; 0033 0031;;;31;N;;;;; -325C;CIRCLED NUMBER THIRTY TWO;No;0;ON; 0033 0032;;;32;N;;;;; -325D;CIRCLED NUMBER THIRTY THREE;No;0;ON; 0033 0033;;;33;N;;;;; -325E;CIRCLED NUMBER THIRTY FOUR;No;0;ON; 0033 0034;;;34;N;;;;; -325F;CIRCLED NUMBER THIRTY FIVE;No;0;ON; 0033 0035;;;35;N;;;;; -3260;CIRCLED HANGUL KIYEOK;So;0;L; 1100;;;;N;CIRCLED HANGUL GIYEOG;;;; -3261;CIRCLED HANGUL NIEUN;So;0;L; 1102;;;;N;;;;; -3262;CIRCLED HANGUL TIKEUT;So;0;L; 1103;;;;N;CIRCLED HANGUL DIGEUD;;;; -3263;CIRCLED HANGUL RIEUL;So;0;L; 1105;;;;N;CIRCLED HANGUL LIEUL;;;; -3264;CIRCLED HANGUL MIEUM;So;0;L; 1106;;;;N;;;;; -3265;CIRCLED HANGUL PIEUP;So;0;L; 1107;;;;N;CIRCLED HANGUL BIEUB;;;; -3266;CIRCLED HANGUL SIOS;So;0;L; 1109;;;;N;;;;; -3267;CIRCLED HANGUL IEUNG;So;0;L; 110B;;;;N;;;;; -3268;CIRCLED HANGUL CIEUC;So;0;L; 110C;;;;N;CIRCLED HANGUL JIEUJ;;;; -3269;CIRCLED HANGUL CHIEUCH;So;0;L; 110E;;;;N;CIRCLED HANGUL CIEUC;;;; -326A;CIRCLED HANGUL KHIEUKH;So;0;L; 110F;;;;N;CIRCLED HANGUL KIYEOK;;;; -326B;CIRCLED HANGUL THIEUTH;So;0;L; 1110;;;;N;CIRCLED HANGUL TIEUT;;;; -326C;CIRCLED HANGUL PHIEUPH;So;0;L; 1111;;;;N;CIRCLED HANGUL PIEUP;;;; -326D;CIRCLED HANGUL HIEUH;So;0;L; 1112;;;;N;;;;; -326E;CIRCLED HANGUL KIYEOK A;So;0;L; 1100 1161;;;;N;CIRCLED HANGUL GA;;;; -326F;CIRCLED HANGUL NIEUN A;So;0;L; 1102 1161;;;;N;CIRCLED HANGUL NA;;;; -3270;CIRCLED HANGUL TIKEUT A;So;0;L; 1103 1161;;;;N;CIRCLED HANGUL DA;;;; -3271;CIRCLED HANGUL RIEUL A;So;0;L; 1105 1161;;;;N;CIRCLED HANGUL LA;;;; -3272;CIRCLED HANGUL MIEUM A;So;0;L; 1106 1161;;;;N;CIRCLED HANGUL MA;;;; -3273;CIRCLED HANGUL PIEUP A;So;0;L; 1107 1161;;;;N;CIRCLED HANGUL BA;;;; -3274;CIRCLED HANGUL SIOS A;So;0;L; 1109 1161;;;;N;CIRCLED HANGUL SA;;;; -3275;CIRCLED HANGUL IEUNG A;So;0;L; 110B 1161;;;;N;CIRCLED HANGUL A;;;; -3276;CIRCLED HANGUL CIEUC A;So;0;L; 110C 1161;;;;N;CIRCLED HANGUL JA;;;; -3277;CIRCLED HANGUL CHIEUCH A;So;0;L; 110E 1161;;;;N;CIRCLED HANGUL CA;;;; -3278;CIRCLED HANGUL KHIEUKH A;So;0;L; 110F 1161;;;;N;CIRCLED HANGUL KA;;;; -3279;CIRCLED HANGUL THIEUTH A;So;0;L; 1110 1161;;;;N;CIRCLED HANGUL TA;;;; -327A;CIRCLED HANGUL PHIEUPH A;So;0;L; 1111 1161;;;;N;CIRCLED HANGUL PA;;;; -327B;CIRCLED HANGUL HIEUH A;So;0;L; 1112 1161;;;;N;CIRCLED HANGUL HA;;;; -327C;CIRCLED KOREAN CHARACTER CHAMKO;So;0;ON; 110E 1161 11B7 1100 1169;;;;N;;;;; -327D;CIRCLED KOREAN CHARACTER JUEUI;So;0;ON; 110C 116E 110B 1174;;;;N;;;;; -327E;CIRCLED HANGUL IEUNG U;So;0;ON; 110B 116E;;;;N;;;;; -327F;KOREAN STANDARD SYMBOL;So;0;L;;;;;N;;;;; -3280;CIRCLED IDEOGRAPH ONE;No;0;L; 4E00;;;1;N;;;;; -3281;CIRCLED IDEOGRAPH TWO;No;0;L; 4E8C;;;2;N;;;;; -3282;CIRCLED IDEOGRAPH THREE;No;0;L; 4E09;;;3;N;;;;; -3283;CIRCLED IDEOGRAPH FOUR;No;0;L; 56DB;;;4;N;;;;; -3284;CIRCLED IDEOGRAPH FIVE;No;0;L; 4E94;;;5;N;;;;; -3285;CIRCLED IDEOGRAPH SIX;No;0;L; 516D;;;6;N;;;;; -3286;CIRCLED IDEOGRAPH SEVEN;No;0;L; 4E03;;;7;N;;;;; -3287;CIRCLED IDEOGRAPH EIGHT;No;0;L; 516B;;;8;N;;;;; -3288;CIRCLED IDEOGRAPH NINE;No;0;L; 4E5D;;;9;N;;;;; -3289;CIRCLED IDEOGRAPH TEN;No;0;L; 5341;;;10;N;;;;; -328A;CIRCLED IDEOGRAPH MOON;So;0;L; 6708;;;;N;;;;; -328B;CIRCLED IDEOGRAPH FIRE;So;0;L; 706B;;;;N;;;;; -328C;CIRCLED IDEOGRAPH WATER;So;0;L; 6C34;;;;N;;;;; -328D;CIRCLED IDEOGRAPH WOOD;So;0;L; 6728;;;;N;;;;; -328E;CIRCLED IDEOGRAPH METAL;So;0;L; 91D1;;;;N;;;;; -328F;CIRCLED IDEOGRAPH EARTH;So;0;L; 571F;;;;N;;;;; -3290;CIRCLED IDEOGRAPH SUN;So;0;L; 65E5;;;;N;;;;; -3291;CIRCLED IDEOGRAPH STOCK;So;0;L; 682A;;;;N;;;;; -3292;CIRCLED IDEOGRAPH HAVE;So;0;L; 6709;;;;N;;;;; -3293;CIRCLED IDEOGRAPH SOCIETY;So;0;L; 793E;;;;N;;;;; -3294;CIRCLED IDEOGRAPH NAME;So;0;L; 540D;;;;N;;;;; -3295;CIRCLED IDEOGRAPH SPECIAL;So;0;L; 7279;;;;N;;;;; -3296;CIRCLED IDEOGRAPH FINANCIAL;So;0;L; 8CA1;;;;N;;;;; -3297;CIRCLED IDEOGRAPH CONGRATULATION;So;0;L; 795D;;;;N;;;;; -3298;CIRCLED IDEOGRAPH LABOR;So;0;L; 52B4;;;;N;;;;; -3299;CIRCLED IDEOGRAPH SECRET;So;0;L; 79D8;;;;N;;;;; -329A;CIRCLED IDEOGRAPH MALE;So;0;L; 7537;;;;N;;;;; -329B;CIRCLED IDEOGRAPH FEMALE;So;0;L; 5973;;;;N;;;;; -329C;CIRCLED IDEOGRAPH SUITABLE;So;0;L; 9069;;;;N;;;;; -329D;CIRCLED IDEOGRAPH EXCELLENT;So;0;L; 512A;;;;N;;;;; -329E;CIRCLED IDEOGRAPH PRINT;So;0;L; 5370;;;;N;;;;; -329F;CIRCLED IDEOGRAPH ATTENTION;So;0;L; 6CE8;;;;N;;;;; -32A0;CIRCLED IDEOGRAPH ITEM;So;0;L; 9805;;;;N;;;;; -32A1;CIRCLED IDEOGRAPH REST;So;0;L; 4F11;;;;N;;;;; -32A2;CIRCLED IDEOGRAPH COPY;So;0;L; 5199;;;;N;;;;; -32A3;CIRCLED IDEOGRAPH CORRECT;So;0;L; 6B63;;;;N;;;;; -32A4;CIRCLED IDEOGRAPH HIGH;So;0;L; 4E0A;;;;N;;;;; -32A5;CIRCLED IDEOGRAPH CENTRE;So;0;L; 4E2D;;;;N;CIRCLED IDEOGRAPH CENTER;;;; -32A6;CIRCLED IDEOGRAPH LOW;So;0;L; 4E0B;;;;N;;;;; -32A7;CIRCLED IDEOGRAPH LEFT;So;0;L; 5DE6;;;;N;;;;; -32A8;CIRCLED IDEOGRAPH RIGHT;So;0;L; 53F3;;;;N;;;;; -32A9;CIRCLED IDEOGRAPH MEDICINE;So;0;L; 533B;;;;N;;;;; -32AA;CIRCLED IDEOGRAPH RELIGION;So;0;L; 5B97;;;;N;;;;; -32AB;CIRCLED IDEOGRAPH STUDY;So;0;L; 5B66;;;;N;;;;; -32AC;CIRCLED IDEOGRAPH SUPERVISE;So;0;L; 76E3;;;;N;;;;; -32AD;CIRCLED IDEOGRAPH ENTERPRISE;So;0;L; 4F01;;;;N;;;;; -32AE;CIRCLED IDEOGRAPH RESOURCE;So;0;L; 8CC7;;;;N;;;;; -32AF;CIRCLED IDEOGRAPH ALLIANCE;So;0;L; 5354;;;;N;;;;; -32B0;CIRCLED IDEOGRAPH NIGHT;So;0;L; 591C;;;;N;;;;; -32B1;CIRCLED NUMBER THIRTY SIX;No;0;ON; 0033 0036;;;36;N;;;;; -32B2;CIRCLED NUMBER THIRTY SEVEN;No;0;ON; 0033 0037;;;37;N;;;;; -32B3;CIRCLED NUMBER THIRTY EIGHT;No;0;ON; 0033 0038;;;38;N;;;;; -32B4;CIRCLED NUMBER THIRTY NINE;No;0;ON; 0033 0039;;;39;N;;;;; -32B5;CIRCLED NUMBER FORTY;No;0;ON; 0034 0030;;;40;N;;;;; -32B6;CIRCLED NUMBER FORTY ONE;No;0;ON; 0034 0031;;;41;N;;;;; -32B7;CIRCLED NUMBER FORTY TWO;No;0;ON; 0034 0032;;;42;N;;;;; -32B8;CIRCLED NUMBER FORTY THREE;No;0;ON; 0034 0033;;;43;N;;;;; -32B9;CIRCLED NUMBER FORTY FOUR;No;0;ON; 0034 0034;;;44;N;;;;; -32BA;CIRCLED NUMBER FORTY FIVE;No;0;ON; 0034 0035;;;45;N;;;;; -32BB;CIRCLED NUMBER FORTY SIX;No;0;ON; 0034 0036;;;46;N;;;;; -32BC;CIRCLED NUMBER FORTY SEVEN;No;0;ON; 0034 0037;;;47;N;;;;; -32BD;CIRCLED NUMBER FORTY EIGHT;No;0;ON; 0034 0038;;;48;N;;;;; -32BE;CIRCLED NUMBER FORTY NINE;No;0;ON; 0034 0039;;;49;N;;;;; -32BF;CIRCLED NUMBER FIFTY;No;0;ON; 0035 0030;;;50;N;;;;; -32C0;IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY;So;0;L; 0031 6708;;;;N;;;;; -32C1;IDEOGRAPHIC TELEGRAPH SYMBOL FOR FEBRUARY;So;0;L; 0032 6708;;;;N;;;;; -32C2;IDEOGRAPHIC TELEGRAPH SYMBOL FOR MARCH;So;0;L; 0033 6708;;;;N;;;;; -32C3;IDEOGRAPHIC TELEGRAPH SYMBOL FOR APRIL;So;0;L; 0034 6708;;;;N;;;;; -32C4;IDEOGRAPHIC TELEGRAPH SYMBOL FOR MAY;So;0;L; 0035 6708;;;;N;;;;; -32C5;IDEOGRAPHIC TELEGRAPH SYMBOL FOR JUNE;So;0;L; 0036 6708;;;;N;;;;; -32C6;IDEOGRAPHIC TELEGRAPH SYMBOL FOR JULY;So;0;L; 0037 6708;;;;N;;;;; -32C7;IDEOGRAPHIC TELEGRAPH SYMBOL FOR AUGUST;So;0;L; 0038 6708;;;;N;;;;; -32C8;IDEOGRAPHIC TELEGRAPH SYMBOL FOR SEPTEMBER;So;0;L; 0039 6708;;;;N;;;;; -32C9;IDEOGRAPHIC TELEGRAPH SYMBOL FOR OCTOBER;So;0;L; 0031 0030 6708;;;;N;;;;; -32CA;IDEOGRAPHIC TELEGRAPH SYMBOL FOR NOVEMBER;So;0;L; 0031 0031 6708;;;;N;;;;; -32CB;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER;So;0;L; 0031 0032 6708;;;;N;;;;; -32CC;SQUARE HG;So;0;ON; 0048 0067;;;;N;;;;; -32CD;SQUARE ERG;So;0;ON; 0065 0072 0067;;;;N;;;;; -32CE;SQUARE EV;So;0;ON; 0065 0056;;;;N;;;;; -32CF;LIMITED LIABILITY SIGN;So;0;ON; 004C 0054 0044;;;;N;;;;; -32D0;CIRCLED KATAKANA A;So;0;L; 30A2;;;;N;;;;; -32D1;CIRCLED KATAKANA I;So;0;L; 30A4;;;;N;;;;; -32D2;CIRCLED KATAKANA U;So;0;L; 30A6;;;;N;;;;; -32D3;CIRCLED KATAKANA E;So;0;L; 30A8;;;;N;;;;; -32D4;CIRCLED KATAKANA O;So;0;L; 30AA;;;;N;;;;; -32D5;CIRCLED KATAKANA KA;So;0;L; 30AB;;;;N;;;;; -32D6;CIRCLED KATAKANA KI;So;0;L; 30AD;;;;N;;;;; -32D7;CIRCLED KATAKANA KU;So;0;L; 30AF;;;;N;;;;; -32D8;CIRCLED KATAKANA KE;So;0;L; 30B1;;;;N;;;;; -32D9;CIRCLED KATAKANA KO;So;0;L; 30B3;;;;N;;;;; -32DA;CIRCLED KATAKANA SA;So;0;L; 30B5;;;;N;;;;; -32DB;CIRCLED KATAKANA SI;So;0;L; 30B7;;;;N;;;;; -32DC;CIRCLED KATAKANA SU;So;0;L; 30B9;;;;N;;;;; -32DD;CIRCLED KATAKANA SE;So;0;L; 30BB;;;;N;;;;; -32DE;CIRCLED KATAKANA SO;So;0;L; 30BD;;;;N;;;;; -32DF;CIRCLED KATAKANA TA;So;0;L; 30BF;;;;N;;;;; -32E0;CIRCLED KATAKANA TI;So;0;L; 30C1;;;;N;;;;; -32E1;CIRCLED KATAKANA TU;So;0;L; 30C4;;;;N;;;;; -32E2;CIRCLED KATAKANA TE;So;0;L; 30C6;;;;N;;;;; -32E3;CIRCLED KATAKANA TO;So;0;L; 30C8;;;;N;;;;; -32E4;CIRCLED KATAKANA NA;So;0;L; 30CA;;;;N;;;;; -32E5;CIRCLED KATAKANA NI;So;0;L; 30CB;;;;N;;;;; -32E6;CIRCLED KATAKANA NU;So;0;L; 30CC;;;;N;;;;; -32E7;CIRCLED KATAKANA NE;So;0;L; 30CD;;;;N;;;;; -32E8;CIRCLED KATAKANA NO;So;0;L; 30CE;;;;N;;;;; -32E9;CIRCLED KATAKANA HA;So;0;L; 30CF;;;;N;;;;; -32EA;CIRCLED KATAKANA HI;So;0;L; 30D2;;;;N;;;;; -32EB;CIRCLED KATAKANA HU;So;0;L; 30D5;;;;N;;;;; -32EC;CIRCLED KATAKANA HE;So;0;L; 30D8;;;;N;;;;; -32ED;CIRCLED KATAKANA HO;So;0;L; 30DB;;;;N;;;;; -32EE;CIRCLED KATAKANA MA;So;0;L; 30DE;;;;N;;;;; -32EF;CIRCLED KATAKANA MI;So;0;L; 30DF;;;;N;;;;; -32F0;CIRCLED KATAKANA MU;So;0;L; 30E0;;;;N;;;;; -32F1;CIRCLED KATAKANA ME;So;0;L; 30E1;;;;N;;;;; -32F2;CIRCLED KATAKANA MO;So;0;L; 30E2;;;;N;;;;; -32F3;CIRCLED KATAKANA YA;So;0;L; 30E4;;;;N;;;;; -32F4;CIRCLED KATAKANA YU;So;0;L; 30E6;;;;N;;;;; -32F5;CIRCLED KATAKANA YO;So;0;L; 30E8;;;;N;;;;; -32F6;CIRCLED KATAKANA RA;So;0;L; 30E9;;;;N;;;;; -32F7;CIRCLED KATAKANA RI;So;0;L; 30EA;;;;N;;;;; -32F8;CIRCLED KATAKANA RU;So;0;L; 30EB;;;;N;;;;; -32F9;CIRCLED KATAKANA RE;So;0;L; 30EC;;;;N;;;;; -32FA;CIRCLED KATAKANA RO;So;0;L; 30ED;;;;N;;;;; -32FB;CIRCLED KATAKANA WA;So;0;L; 30EF;;;;N;;;;; -32FC;CIRCLED KATAKANA WI;So;0;L; 30F0;;;;N;;;;; -32FD;CIRCLED KATAKANA WE;So;0;L; 30F1;;;;N;;;;; -32FE;CIRCLED KATAKANA WO;So;0;L; 30F2;;;;N;;;;; -3300;SQUARE APAATO;So;0;L; 30A2 30D1 30FC 30C8;;;;N;SQUARED APAATO;;;; -3301;SQUARE ARUHUA;So;0;L; 30A2 30EB 30D5 30A1;;;;N;SQUARED ARUHUA;;;; -3302;SQUARE ANPEA;So;0;L; 30A2 30F3 30DA 30A2;;;;N;SQUARED ANPEA;;;; -3303;SQUARE AARU;So;0;L; 30A2 30FC 30EB;;;;N;SQUARED AARU;;;; -3304;SQUARE ININGU;So;0;L; 30A4 30CB 30F3 30B0;;;;N;SQUARED ININGU;;;; -3305;SQUARE INTI;So;0;L; 30A4 30F3 30C1;;;;N;SQUARED INTI;;;; -3306;SQUARE UON;So;0;L; 30A6 30A9 30F3;;;;N;SQUARED UON;;;; -3307;SQUARE ESUKUUDO;So;0;L; 30A8 30B9 30AF 30FC 30C9;;;;N;SQUARED ESUKUUDO;;;; -3308;SQUARE EEKAA;So;0;L; 30A8 30FC 30AB 30FC;;;;N;SQUARED EEKAA;;;; -3309;SQUARE ONSU;So;0;L; 30AA 30F3 30B9;;;;N;SQUARED ONSU;;;; -330A;SQUARE OOMU;So;0;L; 30AA 30FC 30E0;;;;N;SQUARED OOMU;;;; -330B;SQUARE KAIRI;So;0;L; 30AB 30A4 30EA;;;;N;SQUARED KAIRI;;;; -330C;SQUARE KARATTO;So;0;L; 30AB 30E9 30C3 30C8;;;;N;SQUARED KARATTO;;;; -330D;SQUARE KARORII;So;0;L; 30AB 30ED 30EA 30FC;;;;N;SQUARED KARORII;;;; -330E;SQUARE GARON;So;0;L; 30AC 30ED 30F3;;;;N;SQUARED GARON;;;; -330F;SQUARE GANMA;So;0;L; 30AC 30F3 30DE;;;;N;SQUARED GANMA;;;; -3310;SQUARE GIGA;So;0;L; 30AE 30AC;;;;N;SQUARED GIGA;;;; -3311;SQUARE GINII;So;0;L; 30AE 30CB 30FC;;;;N;SQUARED GINII;;;; -3312;SQUARE KYURII;So;0;L; 30AD 30E5 30EA 30FC;;;;N;SQUARED KYURII;;;; -3313;SQUARE GIRUDAA;So;0;L; 30AE 30EB 30C0 30FC;;;;N;SQUARED GIRUDAA;;;; -3314;SQUARE KIRO;So;0;L; 30AD 30ED;;;;N;SQUARED KIRO;;;; -3315;SQUARE KIROGURAMU;So;0;L; 30AD 30ED 30B0 30E9 30E0;;;;N;SQUARED KIROGURAMU;;;; -3316;SQUARE KIROMEETORU;So;0;L; 30AD 30ED 30E1 30FC 30C8 30EB;;;;N;SQUARED KIROMEETORU;;;; -3317;SQUARE KIROWATTO;So;0;L; 30AD 30ED 30EF 30C3 30C8;;;;N;SQUARED KIROWATTO;;;; -3318;SQUARE GURAMU;So;0;L; 30B0 30E9 30E0;;;;N;SQUARED GURAMU;;;; -3319;SQUARE GURAMUTON;So;0;L; 30B0 30E9 30E0 30C8 30F3;;;;N;SQUARED GURAMUTON;;;; -331A;SQUARE KURUZEIRO;So;0;L; 30AF 30EB 30BC 30A4 30ED;;;;N;SQUARED KURUZEIRO;;;; -331B;SQUARE KUROONE;So;0;L; 30AF 30ED 30FC 30CD;;;;N;SQUARED KUROONE;;;; -331C;SQUARE KEESU;So;0;L; 30B1 30FC 30B9;;;;N;SQUARED KEESU;;;; -331D;SQUARE KORUNA;So;0;L; 30B3 30EB 30CA;;;;N;SQUARED KORUNA;;;; -331E;SQUARE KOOPO;So;0;L; 30B3 30FC 30DD;;;;N;SQUARED KOOPO;;;; -331F;SQUARE SAIKURU;So;0;L; 30B5 30A4 30AF 30EB;;;;N;SQUARED SAIKURU;;;; -3320;SQUARE SANTIIMU;So;0;L; 30B5 30F3 30C1 30FC 30E0;;;;N;SQUARED SANTIIMU;;;; -3321;SQUARE SIRINGU;So;0;L; 30B7 30EA 30F3 30B0;;;;N;SQUARED SIRINGU;;;; -3322;SQUARE SENTI;So;0;L; 30BB 30F3 30C1;;;;N;SQUARED SENTI;;;; -3323;SQUARE SENTO;So;0;L; 30BB 30F3 30C8;;;;N;SQUARED SENTO;;;; -3324;SQUARE DAASU;So;0;L; 30C0 30FC 30B9;;;;N;SQUARED DAASU;;;; -3325;SQUARE DESI;So;0;L; 30C7 30B7;;;;N;SQUARED DESI;;;; -3326;SQUARE DORU;So;0;L; 30C9 30EB;;;;N;SQUARED DORU;;;; -3327;SQUARE TON;So;0;L; 30C8 30F3;;;;N;SQUARED TON;;;; -3328;SQUARE NANO;So;0;L; 30CA 30CE;;;;N;SQUARED NANO;;;; -3329;SQUARE NOTTO;So;0;L; 30CE 30C3 30C8;;;;N;SQUARED NOTTO;;;; -332A;SQUARE HAITU;So;0;L; 30CF 30A4 30C4;;;;N;SQUARED HAITU;;;; -332B;SQUARE PAASENTO;So;0;L; 30D1 30FC 30BB 30F3 30C8;;;;N;SQUARED PAASENTO;;;; -332C;SQUARE PAATU;So;0;L; 30D1 30FC 30C4;;;;N;SQUARED PAATU;;;; -332D;SQUARE BAARERU;So;0;L; 30D0 30FC 30EC 30EB;;;;N;SQUARED BAARERU;;;; -332E;SQUARE PIASUTORU;So;0;L; 30D4 30A2 30B9 30C8 30EB;;;;N;SQUARED PIASUTORU;;;; -332F;SQUARE PIKURU;So;0;L; 30D4 30AF 30EB;;;;N;SQUARED PIKURU;;;; -3330;SQUARE PIKO;So;0;L; 30D4 30B3;;;;N;SQUARED PIKO;;;; -3331;SQUARE BIRU;So;0;L; 30D3 30EB;;;;N;SQUARED BIRU;;;; -3332;SQUARE HUARADDO;So;0;L; 30D5 30A1 30E9 30C3 30C9;;;;N;SQUARED HUARADDO;;;; -3333;SQUARE HUIITO;So;0;L; 30D5 30A3 30FC 30C8;;;;N;SQUARED HUIITO;;;; -3334;SQUARE BUSSYERU;So;0;L; 30D6 30C3 30B7 30A7 30EB;;;;N;SQUARED BUSSYERU;;;; -3335;SQUARE HURAN;So;0;L; 30D5 30E9 30F3;;;;N;SQUARED HURAN;;;; -3336;SQUARE HEKUTAARU;So;0;L; 30D8 30AF 30BF 30FC 30EB;;;;N;SQUARED HEKUTAARU;;;; -3337;SQUARE PESO;So;0;L; 30DA 30BD;;;;N;SQUARED PESO;;;; -3338;SQUARE PENIHI;So;0;L; 30DA 30CB 30D2;;;;N;SQUARED PENIHI;;;; -3339;SQUARE HERUTU;So;0;L; 30D8 30EB 30C4;;;;N;SQUARED HERUTU;;;; -333A;SQUARE PENSU;So;0;L; 30DA 30F3 30B9;;;;N;SQUARED PENSU;;;; -333B;SQUARE PEEZI;So;0;L; 30DA 30FC 30B8;;;;N;SQUARED PEEZI;;;; -333C;SQUARE BEETA;So;0;L; 30D9 30FC 30BF;;;;N;SQUARED BEETA;;;; -333D;SQUARE POINTO;So;0;L; 30DD 30A4 30F3 30C8;;;;N;SQUARED POINTO;;;; -333E;SQUARE BORUTO;So;0;L; 30DC 30EB 30C8;;;;N;SQUARED BORUTO;;;; -333F;SQUARE HON;So;0;L; 30DB 30F3;;;;N;SQUARED HON;;;; -3340;SQUARE PONDO;So;0;L; 30DD 30F3 30C9;;;;N;SQUARED PONDO;;;; -3341;SQUARE HOORU;So;0;L; 30DB 30FC 30EB;;;;N;SQUARED HOORU;;;; -3342;SQUARE HOON;So;0;L; 30DB 30FC 30F3;;;;N;SQUARED HOON;;;; -3343;SQUARE MAIKURO;So;0;L; 30DE 30A4 30AF 30ED;;;;N;SQUARED MAIKURO;;;; -3344;SQUARE MAIRU;So;0;L; 30DE 30A4 30EB;;;;N;SQUARED MAIRU;;;; -3345;SQUARE MAHHA;So;0;L; 30DE 30C3 30CF;;;;N;SQUARED MAHHA;;;; -3346;SQUARE MARUKU;So;0;L; 30DE 30EB 30AF;;;;N;SQUARED MARUKU;;;; -3347;SQUARE MANSYON;So;0;L; 30DE 30F3 30B7 30E7 30F3;;;;N;SQUARED MANSYON;;;; -3348;SQUARE MIKURON;So;0;L; 30DF 30AF 30ED 30F3;;;;N;SQUARED MIKURON;;;; -3349;SQUARE MIRI;So;0;L; 30DF 30EA;;;;N;SQUARED MIRI;;;; -334A;SQUARE MIRIBAARU;So;0;L; 30DF 30EA 30D0 30FC 30EB;;;;N;SQUARED MIRIBAARU;;;; -334B;SQUARE MEGA;So;0;L; 30E1 30AC;;;;N;SQUARED MEGA;;;; -334C;SQUARE MEGATON;So;0;L; 30E1 30AC 30C8 30F3;;;;N;SQUARED MEGATON;;;; -334D;SQUARE MEETORU;So;0;L; 30E1 30FC 30C8 30EB;;;;N;SQUARED MEETORU;;;; -334E;SQUARE YAADO;So;0;L; 30E4 30FC 30C9;;;;N;SQUARED YAADO;;;; -334F;SQUARE YAARU;So;0;L; 30E4 30FC 30EB;;;;N;SQUARED YAARU;;;; -3350;SQUARE YUAN;So;0;L; 30E6 30A2 30F3;;;;N;SQUARED YUAN;;;; -3351;SQUARE RITTORU;So;0;L; 30EA 30C3 30C8 30EB;;;;N;SQUARED RITTORU;;;; -3352;SQUARE RIRA;So;0;L; 30EA 30E9;;;;N;SQUARED RIRA;;;; -3353;SQUARE RUPII;So;0;L; 30EB 30D4 30FC;;;;N;SQUARED RUPII;;;; -3354;SQUARE RUUBURU;So;0;L; 30EB 30FC 30D6 30EB;;;;N;SQUARED RUUBURU;;;; -3355;SQUARE REMU;So;0;L; 30EC 30E0;;;;N;SQUARED REMU;;;; -3356;SQUARE RENTOGEN;So;0;L; 30EC 30F3 30C8 30B2 30F3;;;;N;SQUARED RENTOGEN;;;; -3357;SQUARE WATTO;So;0;L; 30EF 30C3 30C8;;;;N;SQUARED WATTO;;;; -3358;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO;So;0;L; 0030 70B9;;;;N;;;;; -3359;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE;So;0;L; 0031 70B9;;;;N;;;;; -335A;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWO;So;0;L; 0032 70B9;;;;N;;;;; -335B;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THREE;So;0;L; 0033 70B9;;;;N;;;;; -335C;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOUR;So;0;L; 0034 70B9;;;;N;;;;; -335D;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIVE;So;0;L; 0035 70B9;;;;N;;;;; -335E;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIX;So;0;L; 0036 70B9;;;;N;;;;; -335F;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVEN;So;0;L; 0037 70B9;;;;N;;;;; -3360;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHT;So;0;L; 0038 70B9;;;;N;;;;; -3361;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINE;So;0;L; 0039 70B9;;;;N;;;;; -3362;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TEN;So;0;L; 0031 0030 70B9;;;;N;;;;; -3363;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ELEVEN;So;0;L; 0031 0031 70B9;;;;N;;;;; -3364;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWELVE;So;0;L; 0031 0032 70B9;;;;N;;;;; -3365;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THIRTEEN;So;0;L; 0031 0033 70B9;;;;N;;;;; -3366;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOURTEEN;So;0;L; 0031 0034 70B9;;;;N;;;;; -3367;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIFTEEN;So;0;L; 0031 0035 70B9;;;;N;;;;; -3368;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIXTEEN;So;0;L; 0031 0036 70B9;;;;N;;;;; -3369;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVENTEEN;So;0;L; 0031 0037 70B9;;;;N;;;;; -336A;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHTEEN;So;0;L; 0031 0038 70B9;;;;N;;;;; -336B;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINETEEN;So;0;L; 0031 0039 70B9;;;;N;;;;; -336C;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY;So;0;L; 0032 0030 70B9;;;;N;;;;; -336D;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-ONE;So;0;L; 0032 0031 70B9;;;;N;;;;; -336E;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-TWO;So;0;L; 0032 0032 70B9;;;;N;;;;; -336F;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-THREE;So;0;L; 0032 0033 70B9;;;;N;;;;; -3370;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR;So;0;L; 0032 0034 70B9;;;;N;;;;; -3371;SQUARE HPA;So;0;L; 0068 0050 0061;;;;N;;;;; -3372;SQUARE DA;So;0;L; 0064 0061;;;;N;;;;; -3373;SQUARE AU;So;0;L; 0041 0055;;;;N;;;;; -3374;SQUARE BAR;So;0;L; 0062 0061 0072;;;;N;;;;; -3375;SQUARE OV;So;0;L; 006F 0056;;;;N;;;;; -3376;SQUARE PC;So;0;L; 0070 0063;;;;N;;;;; -3377;SQUARE DM;So;0;ON; 0064 006D;;;;N;;;;; -3378;SQUARE DM SQUARED;So;0;ON; 0064 006D 00B2;;;;N;;;;; -3379;SQUARE DM CUBED;So;0;ON; 0064 006D 00B3;;;;N;;;;; -337A;SQUARE IU;So;0;ON; 0049 0055;;;;N;;;;; -337B;SQUARE ERA NAME HEISEI;So;0;L; 5E73 6210;;;;N;SQUARED TWO IDEOGRAPHS ERA NAME HEISEI;;;; -337C;SQUARE ERA NAME SYOUWA;So;0;L; 662D 548C;;;;N;SQUARED TWO IDEOGRAPHS ERA NAME SYOUWA;;;; -337D;SQUARE ERA NAME TAISYOU;So;0;L; 5927 6B63;;;;N;SQUARED TWO IDEOGRAPHS ERA NAME TAISYOU;;;; -337E;SQUARE ERA NAME MEIZI;So;0;L; 660E 6CBB;;;;N;SQUARED TWO IDEOGRAPHS ERA NAME MEIZI;;;; -337F;SQUARE CORPORATION;So;0;L; 682A 5F0F 4F1A 793E;;;;N;SQUARED FOUR IDEOGRAPHS CORPORATION;;;; -3380;SQUARE PA AMPS;So;0;L; 0070 0041;;;;N;SQUARED PA AMPS;;;; -3381;SQUARE NA;So;0;L; 006E 0041;;;;N;SQUARED NA;;;; -3382;SQUARE MU A;So;0;L; 03BC 0041;;;;N;SQUARED MU A;;;; -3383;SQUARE MA;So;0;L; 006D 0041;;;;N;SQUARED MA;;;; -3384;SQUARE KA;So;0;L; 006B 0041;;;;N;SQUARED KA;;;; -3385;SQUARE KB;So;0;L; 004B 0042;;;;N;SQUARED KB;;;; -3386;SQUARE MB;So;0;L; 004D 0042;;;;N;SQUARED MB;;;; -3387;SQUARE GB;So;0;L; 0047 0042;;;;N;SQUARED GB;;;; -3388;SQUARE CAL;So;0;L; 0063 0061 006C;;;;N;SQUARED CAL;;;; -3389;SQUARE KCAL;So;0;L; 006B 0063 0061 006C;;;;N;SQUARED KCAL;;;; -338A;SQUARE PF;So;0;L; 0070 0046;;;;N;SQUARED PF;;;; -338B;SQUARE NF;So;0;L; 006E 0046;;;;N;SQUARED NF;;;; -338C;SQUARE MU F;So;0;L; 03BC 0046;;;;N;SQUARED MU F;;;; -338D;SQUARE MU G;So;0;L; 03BC 0067;;;;N;SQUARED MU G;;;; -338E;SQUARE MG;So;0;L; 006D 0067;;;;N;SQUARED MG;;;; -338F;SQUARE KG;So;0;L; 006B 0067;;;;N;SQUARED KG;;;; -3390;SQUARE HZ;So;0;L; 0048 007A;;;;N;SQUARED HZ;;;; -3391;SQUARE KHZ;So;0;L; 006B 0048 007A;;;;N;SQUARED KHZ;;;; -3392;SQUARE MHZ;So;0;L; 004D 0048 007A;;;;N;SQUARED MHZ;;;; -3393;SQUARE GHZ;So;0;L; 0047 0048 007A;;;;N;SQUARED GHZ;;;; -3394;SQUARE THZ;So;0;L; 0054 0048 007A;;;;N;SQUARED THZ;;;; -3395;SQUARE MU L;So;0;L; 03BC 2113;;;;N;SQUARED MU L;;;; -3396;SQUARE ML;So;0;L; 006D 2113;;;;N;SQUARED ML;;;; -3397;SQUARE DL;So;0;L; 0064 2113;;;;N;SQUARED DL;;;; -3398;SQUARE KL;So;0;L; 006B 2113;;;;N;SQUARED KL;;;; -3399;SQUARE FM;So;0;L; 0066 006D;;;;N;SQUARED FM;;;; -339A;SQUARE NM;So;0;L; 006E 006D;;;;N;SQUARED NM;;;; -339B;SQUARE MU M;So;0;L; 03BC 006D;;;;N;SQUARED MU M;;;; -339C;SQUARE MM;So;0;L; 006D 006D;;;;N;SQUARED MM;;;; -339D;SQUARE CM;So;0;L; 0063 006D;;;;N;SQUARED CM;;;; -339E;SQUARE KM;So;0;L; 006B 006D;;;;N;SQUARED KM;;;; -339F;SQUARE MM SQUARED;So;0;L; 006D 006D 00B2;;;;N;SQUARED MM SQUARED;;;; -33A0;SQUARE CM SQUARED;So;0;L; 0063 006D 00B2;;;;N;SQUARED CM SQUARED;;;; -33A1;SQUARE M SQUARED;So;0;L; 006D 00B2;;;;N;SQUARED M SQUARED;;;; -33A2;SQUARE KM SQUARED;So;0;L; 006B 006D 00B2;;;;N;SQUARED KM SQUARED;;;; -33A3;SQUARE MM CUBED;So;0;L; 006D 006D 00B3;;;;N;SQUARED MM CUBED;;;; -33A4;SQUARE CM CUBED;So;0;L; 0063 006D 00B3;;;;N;SQUARED CM CUBED;;;; -33A5;SQUARE M CUBED;So;0;L; 006D 00B3;;;;N;SQUARED M CUBED;;;; -33A6;SQUARE KM CUBED;So;0;L; 006B 006D 00B3;;;;N;SQUARED KM CUBED;;;; -33A7;SQUARE M OVER S;So;0;L; 006D 2215 0073;;;;N;SQUARED M OVER S;;;; -33A8;SQUARE M OVER S SQUARED;So;0;L; 006D 2215 0073 00B2;;;;N;SQUARED M OVER S SQUARED;;;; -33A9;SQUARE PA;So;0;L; 0050 0061;;;;N;SQUARED PA;;;; -33AA;SQUARE KPA;So;0;L; 006B 0050 0061;;;;N;SQUARED KPA;;;; -33AB;SQUARE MPA;So;0;L; 004D 0050 0061;;;;N;SQUARED MPA;;;; -33AC;SQUARE GPA;So;0;L; 0047 0050 0061;;;;N;SQUARED GPA;;;; -33AD;SQUARE RAD;So;0;L; 0072 0061 0064;;;;N;SQUARED RAD;;;; -33AE;SQUARE RAD OVER S;So;0;L; 0072 0061 0064 2215 0073;;;;N;SQUARED RAD OVER S;;;; -33AF;SQUARE RAD OVER S SQUARED;So;0;L; 0072 0061 0064 2215 0073 00B2;;;;N;SQUARED RAD OVER S SQUARED;;;; -33B0;SQUARE PS;So;0;L; 0070 0073;;;;N;SQUARED PS;;;; -33B1;SQUARE NS;So;0;L; 006E 0073;;;;N;SQUARED NS;;;; -33B2;SQUARE MU S;So;0;L; 03BC 0073;;;;N;SQUARED MU S;;;; -33B3;SQUARE MS;So;0;L; 006D 0073;;;;N;SQUARED MS;;;; -33B4;SQUARE PV;So;0;L; 0070 0056;;;;N;SQUARED PV;;;; -33B5;SQUARE NV;So;0;L; 006E 0056;;;;N;SQUARED NV;;;; -33B6;SQUARE MU V;So;0;L; 03BC 0056;;;;N;SQUARED MU V;;;; -33B7;SQUARE MV;So;0;L; 006D 0056;;;;N;SQUARED MV;;;; -33B8;SQUARE KV;So;0;L; 006B 0056;;;;N;SQUARED KV;;;; -33B9;SQUARE MV MEGA;So;0;L; 004D 0056;;;;N;SQUARED MV MEGA;;;; -33BA;SQUARE PW;So;0;L; 0070 0057;;;;N;SQUARED PW;;;; -33BB;SQUARE NW;So;0;L; 006E 0057;;;;N;SQUARED NW;;;; -33BC;SQUARE MU W;So;0;L; 03BC 0057;;;;N;SQUARED MU W;;;; -33BD;SQUARE MW;So;0;L; 006D 0057;;;;N;SQUARED MW;;;; -33BE;SQUARE KW;So;0;L; 006B 0057;;;;N;SQUARED KW;;;; -33BF;SQUARE MW MEGA;So;0;L; 004D 0057;;;;N;SQUARED MW MEGA;;;; -33C0;SQUARE K OHM;So;0;L; 006B 03A9;;;;N;SQUARED K OHM;;;; -33C1;SQUARE M OHM;So;0;L; 004D 03A9;;;;N;SQUARED M OHM;;;; -33C2;SQUARE AM;So;0;L; 0061 002E 006D 002E;;;;N;SQUARED AM;;;; -33C3;SQUARE BQ;So;0;L; 0042 0071;;;;N;SQUARED BQ;;;; -33C4;SQUARE CC;So;0;L; 0063 0063;;;;N;SQUARED CC;;;; -33C5;SQUARE CD;So;0;L; 0063 0064;;;;N;SQUARED CD;;;; -33C6;SQUARE C OVER KG;So;0;L; 0043 2215 006B 0067;;;;N;SQUARED C OVER KG;;;; -33C7;SQUARE CO;So;0;L; 0043 006F 002E;;;;N;SQUARED CO;;;; -33C8;SQUARE DB;So;0;L; 0064 0042;;;;N;SQUARED DB;;;; -33C9;SQUARE GY;So;0;L; 0047 0079;;;;N;SQUARED GY;;;; -33CA;SQUARE HA;So;0;L; 0068 0061;;;;N;SQUARED HA;;;; -33CB;SQUARE HP;So;0;L; 0048 0050;;;;N;SQUARED HP;;;; -33CC;SQUARE IN;So;0;L; 0069 006E;;;;N;SQUARED IN;;;; -33CD;SQUARE KK;So;0;L; 004B 004B;;;;N;SQUARED KK;;;; -33CE;SQUARE KM CAPITAL;So;0;L; 004B 004D;;;;N;SQUARED KM CAPITAL;;;; -33CF;SQUARE KT;So;0;L; 006B 0074;;;;N;SQUARED KT;;;; -33D0;SQUARE LM;So;0;L; 006C 006D;;;;N;SQUARED LM;;;; -33D1;SQUARE LN;So;0;L; 006C 006E;;;;N;SQUARED LN;;;; -33D2;SQUARE LOG;So;0;L; 006C 006F 0067;;;;N;SQUARED LOG;;;; -33D3;SQUARE LX;So;0;L; 006C 0078;;;;N;SQUARED LX;;;; -33D4;SQUARE MB SMALL;So;0;L; 006D 0062;;;;N;SQUARED MB SMALL;;;; -33D5;SQUARE MIL;So;0;L; 006D 0069 006C;;;;N;SQUARED MIL;;;; -33D6;SQUARE MOL;So;0;L; 006D 006F 006C;;;;N;SQUARED MOL;;;; -33D7;SQUARE PH;So;0;L; 0050 0048;;;;N;SQUARED PH;;;; -33D8;SQUARE PM;So;0;L; 0070 002E 006D 002E;;;;N;SQUARED PM;;;; -33D9;SQUARE PPM;So;0;L; 0050 0050 004D;;;;N;SQUARED PPM;;;; -33DA;SQUARE PR;So;0;L; 0050 0052;;;;N;SQUARED PR;;;; -33DB;SQUARE SR;So;0;L; 0073 0072;;;;N;SQUARED SR;;;; -33DC;SQUARE SV;So;0;L; 0053 0076;;;;N;SQUARED SV;;;; -33DD;SQUARE WB;So;0;L; 0057 0062;;;;N;SQUARED WB;;;; -33DE;SQUARE V OVER M;So;0;ON; 0056 2215 006D;;;;N;;;;; -33DF;SQUARE A OVER M;So;0;ON; 0041 2215 006D;;;;N;;;;; -33E0;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE;So;0;L; 0031 65E5;;;;N;;;;; -33E1;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWO;So;0;L; 0032 65E5;;;;N;;;;; -33E2;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THREE;So;0;L; 0033 65E5;;;;N;;;;; -33E3;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOUR;So;0;L; 0034 65E5;;;;N;;;;; -33E4;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIVE;So;0;L; 0035 65E5;;;;N;;;;; -33E5;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIX;So;0;L; 0036 65E5;;;;N;;;;; -33E6;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVEN;So;0;L; 0037 65E5;;;;N;;;;; -33E7;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHT;So;0;L; 0038 65E5;;;;N;;;;; -33E8;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINE;So;0;L; 0039 65E5;;;;N;;;;; -33E9;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TEN;So;0;L; 0031 0030 65E5;;;;N;;;;; -33EA;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ELEVEN;So;0;L; 0031 0031 65E5;;;;N;;;;; -33EB;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWELVE;So;0;L; 0031 0032 65E5;;;;N;;;;; -33EC;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTEEN;So;0;L; 0031 0033 65E5;;;;N;;;;; -33ED;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOURTEEN;So;0;L; 0031 0034 65E5;;;;N;;;;; -33EE;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIFTEEN;So;0;L; 0031 0035 65E5;;;;N;;;;; -33EF;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIXTEEN;So;0;L; 0031 0036 65E5;;;;N;;;;; -33F0;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVENTEEN;So;0;L; 0031 0037 65E5;;;;N;;;;; -33F1;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHTEEN;So;0;L; 0031 0038 65E5;;;;N;;;;; -33F2;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINETEEN;So;0;L; 0031 0039 65E5;;;;N;;;;; -33F3;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY;So;0;L; 0032 0030 65E5;;;;N;;;;; -33F4;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-ONE;So;0;L; 0032 0031 65E5;;;;N;;;;; -33F5;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-TWO;So;0;L; 0032 0032 65E5;;;;N;;;;; -33F6;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-THREE;So;0;L; 0032 0033 65E5;;;;N;;;;; -33F7;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FOUR;So;0;L; 0032 0034 65E5;;;;N;;;;; -33F8;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FIVE;So;0;L; 0032 0035 65E5;;;;N;;;;; -33F9;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SIX;So;0;L; 0032 0036 65E5;;;;N;;;;; -33FA;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SEVEN;So;0;L; 0032 0037 65E5;;;;N;;;;; -33FB;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-EIGHT;So;0;L; 0032 0038 65E5;;;;N;;;;; -33FC;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-NINE;So;0;L; 0032 0039 65E5;;;;N;;;;; -33FD;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY;So;0;L; 0033 0030 65E5;;;;N;;;;; -33FE;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE;So;0;L; 0033 0031 65E5;;;;N;;;;; -33FF;SQUARE GAL;So;0;ON; 0067 0061 006C;;;;N;;;;; -3400;;Lo;0;L;;;;;N;;;;; -4DB5;;Lo;0;L;;;;;N;;;;; -4DC0;HEXAGRAM FOR THE CREATIVE HEAVEN;So;0;ON;;;;;N;;;;; -4DC1;HEXAGRAM FOR THE RECEPTIVE EARTH;So;0;ON;;;;;N;;;;; -4DC2;HEXAGRAM FOR DIFFICULTY AT THE BEGINNING;So;0;ON;;;;;N;;;;; -4DC3;HEXAGRAM FOR YOUTHFUL FOLLY;So;0;ON;;;;;N;;;;; -4DC4;HEXAGRAM FOR WAITING;So;0;ON;;;;;N;;;;; -4DC5;HEXAGRAM FOR CONFLICT;So;0;ON;;;;;N;;;;; -4DC6;HEXAGRAM FOR THE ARMY;So;0;ON;;;;;N;;;;; -4DC7;HEXAGRAM FOR HOLDING TOGETHER;So;0;ON;;;;;N;;;;; -4DC8;HEXAGRAM FOR SMALL TAMING;So;0;ON;;;;;N;;;;; -4DC9;HEXAGRAM FOR TREADING;So;0;ON;;;;;N;;;;; -4DCA;HEXAGRAM FOR PEACE;So;0;ON;;;;;N;;;;; -4DCB;HEXAGRAM FOR STANDSTILL;So;0;ON;;;;;N;;;;; -4DCC;HEXAGRAM FOR FELLOWSHIP;So;0;ON;;;;;N;;;;; -4DCD;HEXAGRAM FOR GREAT POSSESSION;So;0;ON;;;;;N;;;;; -4DCE;HEXAGRAM FOR MODESTY;So;0;ON;;;;;N;;;;; -4DCF;HEXAGRAM FOR ENTHUSIASM;So;0;ON;;;;;N;;;;; -4DD0;HEXAGRAM FOR FOLLOWING;So;0;ON;;;;;N;;;;; -4DD1;HEXAGRAM FOR WORK ON THE DECAYED;So;0;ON;;;;;N;;;;; -4DD2;HEXAGRAM FOR APPROACH;So;0;ON;;;;;N;;;;; -4DD3;HEXAGRAM FOR CONTEMPLATION;So;0;ON;;;;;N;;;;; -4DD4;HEXAGRAM FOR BITING THROUGH;So;0;ON;;;;;N;;;;; -4DD5;HEXAGRAM FOR GRACE;So;0;ON;;;;;N;;;;; -4DD6;HEXAGRAM FOR SPLITTING APART;So;0;ON;;;;;N;;;;; -4DD7;HEXAGRAM FOR RETURN;So;0;ON;;;;;N;;;;; -4DD8;HEXAGRAM FOR INNOCENCE;So;0;ON;;;;;N;;;;; -4DD9;HEXAGRAM FOR GREAT TAMING;So;0;ON;;;;;N;;;;; -4DDA;HEXAGRAM FOR MOUTH CORNERS;So;0;ON;;;;;N;;;;; -4DDB;HEXAGRAM FOR GREAT PREPONDERANCE;So;0;ON;;;;;N;;;;; -4DDC;HEXAGRAM FOR THE ABYSMAL WATER;So;0;ON;;;;;N;;;;; -4DDD;HEXAGRAM FOR THE CLINGING FIRE;So;0;ON;;;;;N;;;;; -4DDE;HEXAGRAM FOR INFLUENCE;So;0;ON;;;;;N;;;;; -4DDF;HEXAGRAM FOR DURATION;So;0;ON;;;;;N;;;;; -4DE0;HEXAGRAM FOR RETREAT;So;0;ON;;;;;N;;;;; -4DE1;HEXAGRAM FOR GREAT POWER;So;0;ON;;;;;N;;;;; -4DE2;HEXAGRAM FOR PROGRESS;So;0;ON;;;;;N;;;;; -4DE3;HEXAGRAM FOR DARKENING OF THE LIGHT;So;0;ON;;;;;N;;;;; -4DE4;HEXAGRAM FOR THE FAMILY;So;0;ON;;;;;N;;;;; -4DE5;HEXAGRAM FOR OPPOSITION;So;0;ON;;;;;N;;;;; -4DE6;HEXAGRAM FOR OBSTRUCTION;So;0;ON;;;;;N;;;;; -4DE7;HEXAGRAM FOR DELIVERANCE;So;0;ON;;;;;N;;;;; -4DE8;HEXAGRAM FOR DECREASE;So;0;ON;;;;;N;;;;; -4DE9;HEXAGRAM FOR INCREASE;So;0;ON;;;;;N;;;;; -4DEA;HEXAGRAM FOR BREAKTHROUGH;So;0;ON;;;;;N;;;;; -4DEB;HEXAGRAM FOR COMING TO MEET;So;0;ON;;;;;N;;;;; -4DEC;HEXAGRAM FOR GATHERING TOGETHER;So;0;ON;;;;;N;;;;; -4DED;HEXAGRAM FOR PUSHING UPWARD;So;0;ON;;;;;N;;;;; -4DEE;HEXAGRAM FOR OPPRESSION;So;0;ON;;;;;N;;;;; -4DEF;HEXAGRAM FOR THE WELL;So;0;ON;;;;;N;;;;; -4DF0;HEXAGRAM FOR REVOLUTION;So;0;ON;;;;;N;;;;; -4DF1;HEXAGRAM FOR THE CAULDRON;So;0;ON;;;;;N;;;;; -4DF2;HEXAGRAM FOR THE AROUSING THUNDER;So;0;ON;;;;;N;;;;; -4DF3;HEXAGRAM FOR THE KEEPING STILL MOUNTAIN;So;0;ON;;;;;N;;;;; -4DF4;HEXAGRAM FOR DEVELOPMENT;So;0;ON;;;;;N;;;;; -4DF5;HEXAGRAM FOR THE MARRYING MAIDEN;So;0;ON;;;;;N;;;;; -4DF6;HEXAGRAM FOR ABUNDANCE;So;0;ON;;;;;N;;;;; -4DF7;HEXAGRAM FOR THE WANDERER;So;0;ON;;;;;N;;;;; -4DF8;HEXAGRAM FOR THE GENTLE WIND;So;0;ON;;;;;N;;;;; -4DF9;HEXAGRAM FOR THE JOYOUS LAKE;So;0;ON;;;;;N;;;;; -4DFA;HEXAGRAM FOR DISPERSION;So;0;ON;;;;;N;;;;; -4DFB;HEXAGRAM FOR LIMITATION;So;0;ON;;;;;N;;;;; -4DFC;HEXAGRAM FOR INNER TRUTH;So;0;ON;;;;;N;;;;; -4DFD;HEXAGRAM FOR SMALL PREPONDERANCE;So;0;ON;;;;;N;;;;; -4DFE;HEXAGRAM FOR AFTER COMPLETION;So;0;ON;;;;;N;;;;; -4DFF;HEXAGRAM FOR BEFORE COMPLETION;So;0;ON;;;;;N;;;;; -4E00;;Lo;0;L;;;;;N;;;;; -9FCB;;Lo;0;L;;;;;N;;;;; -A000;YI SYLLABLE IT;Lo;0;L;;;;;N;;;;; -A001;YI SYLLABLE IX;Lo;0;L;;;;;N;;;;; -A002;YI SYLLABLE I;Lo;0;L;;;;;N;;;;; -A003;YI SYLLABLE IP;Lo;0;L;;;;;N;;;;; -A004;YI SYLLABLE IET;Lo;0;L;;;;;N;;;;; -A005;YI SYLLABLE IEX;Lo;0;L;;;;;N;;;;; -A006;YI SYLLABLE IE;Lo;0;L;;;;;N;;;;; -A007;YI SYLLABLE IEP;Lo;0;L;;;;;N;;;;; -A008;YI SYLLABLE AT;Lo;0;L;;;;;N;;;;; -A009;YI SYLLABLE AX;Lo;0;L;;;;;N;;;;; -A00A;YI SYLLABLE A;Lo;0;L;;;;;N;;;;; -A00B;YI SYLLABLE AP;Lo;0;L;;;;;N;;;;; -A00C;YI SYLLABLE UOX;Lo;0;L;;;;;N;;;;; -A00D;YI SYLLABLE UO;Lo;0;L;;;;;N;;;;; -A00E;YI SYLLABLE UOP;Lo;0;L;;;;;N;;;;; -A00F;YI SYLLABLE OT;Lo;0;L;;;;;N;;;;; -A010;YI SYLLABLE OX;Lo;0;L;;;;;N;;;;; -A011;YI SYLLABLE O;Lo;0;L;;;;;N;;;;; -A012;YI SYLLABLE OP;Lo;0;L;;;;;N;;;;; -A013;YI SYLLABLE EX;Lo;0;L;;;;;N;;;;; -A014;YI SYLLABLE E;Lo;0;L;;;;;N;;;;; -A015;YI SYLLABLE WU;Lm;0;L;;;;;N;;;;; -A016;YI SYLLABLE BIT;Lo;0;L;;;;;N;;;;; -A017;YI SYLLABLE BIX;Lo;0;L;;;;;N;;;;; -A018;YI SYLLABLE BI;Lo;0;L;;;;;N;;;;; -A019;YI SYLLABLE BIP;Lo;0;L;;;;;N;;;;; -A01A;YI SYLLABLE BIET;Lo;0;L;;;;;N;;;;; -A01B;YI SYLLABLE BIEX;Lo;0;L;;;;;N;;;;; -A01C;YI SYLLABLE BIE;Lo;0;L;;;;;N;;;;; -A01D;YI SYLLABLE BIEP;Lo;0;L;;;;;N;;;;; -A01E;YI SYLLABLE BAT;Lo;0;L;;;;;N;;;;; -A01F;YI SYLLABLE BAX;Lo;0;L;;;;;N;;;;; -A020;YI SYLLABLE BA;Lo;0;L;;;;;N;;;;; -A021;YI SYLLABLE BAP;Lo;0;L;;;;;N;;;;; -A022;YI SYLLABLE BUOX;Lo;0;L;;;;;N;;;;; -A023;YI SYLLABLE BUO;Lo;0;L;;;;;N;;;;; -A024;YI SYLLABLE BUOP;Lo;0;L;;;;;N;;;;; -A025;YI SYLLABLE BOT;Lo;0;L;;;;;N;;;;; -A026;YI SYLLABLE BOX;Lo;0;L;;;;;N;;;;; -A027;YI SYLLABLE BO;Lo;0;L;;;;;N;;;;; -A028;YI SYLLABLE BOP;Lo;0;L;;;;;N;;;;; -A029;YI SYLLABLE BEX;Lo;0;L;;;;;N;;;;; -A02A;YI SYLLABLE BE;Lo;0;L;;;;;N;;;;; -A02B;YI SYLLABLE BEP;Lo;0;L;;;;;N;;;;; -A02C;YI SYLLABLE BUT;Lo;0;L;;;;;N;;;;; -A02D;YI SYLLABLE BUX;Lo;0;L;;;;;N;;;;; -A02E;YI SYLLABLE BU;Lo;0;L;;;;;N;;;;; -A02F;YI SYLLABLE BUP;Lo;0;L;;;;;N;;;;; -A030;YI SYLLABLE BURX;Lo;0;L;;;;;N;;;;; -A031;YI SYLLABLE BUR;Lo;0;L;;;;;N;;;;; -A032;YI SYLLABLE BYT;Lo;0;L;;;;;N;;;;; -A033;YI SYLLABLE BYX;Lo;0;L;;;;;N;;;;; -A034;YI SYLLABLE BY;Lo;0;L;;;;;N;;;;; -A035;YI SYLLABLE BYP;Lo;0;L;;;;;N;;;;; -A036;YI SYLLABLE BYRX;Lo;0;L;;;;;N;;;;; -A037;YI SYLLABLE BYR;Lo;0;L;;;;;N;;;;; -A038;YI SYLLABLE PIT;Lo;0;L;;;;;N;;;;; -A039;YI SYLLABLE PIX;Lo;0;L;;;;;N;;;;; -A03A;YI SYLLABLE PI;Lo;0;L;;;;;N;;;;; -A03B;YI SYLLABLE PIP;Lo;0;L;;;;;N;;;;; -A03C;YI SYLLABLE PIEX;Lo;0;L;;;;;N;;;;; -A03D;YI SYLLABLE PIE;Lo;0;L;;;;;N;;;;; -A03E;YI SYLLABLE PIEP;Lo;0;L;;;;;N;;;;; -A03F;YI SYLLABLE PAT;Lo;0;L;;;;;N;;;;; -A040;YI SYLLABLE PAX;Lo;0;L;;;;;N;;;;; -A041;YI SYLLABLE PA;Lo;0;L;;;;;N;;;;; -A042;YI SYLLABLE PAP;Lo;0;L;;;;;N;;;;; -A043;YI SYLLABLE PUOX;Lo;0;L;;;;;N;;;;; -A044;YI SYLLABLE PUO;Lo;0;L;;;;;N;;;;; -A045;YI SYLLABLE PUOP;Lo;0;L;;;;;N;;;;; -A046;YI SYLLABLE POT;Lo;0;L;;;;;N;;;;; -A047;YI SYLLABLE POX;Lo;0;L;;;;;N;;;;; -A048;YI SYLLABLE PO;Lo;0;L;;;;;N;;;;; -A049;YI SYLLABLE POP;Lo;0;L;;;;;N;;;;; -A04A;YI SYLLABLE PUT;Lo;0;L;;;;;N;;;;; -A04B;YI SYLLABLE PUX;Lo;0;L;;;;;N;;;;; -A04C;YI SYLLABLE PU;Lo;0;L;;;;;N;;;;; -A04D;YI SYLLABLE PUP;Lo;0;L;;;;;N;;;;; -A04E;YI SYLLABLE PURX;Lo;0;L;;;;;N;;;;; -A04F;YI SYLLABLE PUR;Lo;0;L;;;;;N;;;;; -A050;YI SYLLABLE PYT;Lo;0;L;;;;;N;;;;; -A051;YI SYLLABLE PYX;Lo;0;L;;;;;N;;;;; -A052;YI SYLLABLE PY;Lo;0;L;;;;;N;;;;; -A053;YI SYLLABLE PYP;Lo;0;L;;;;;N;;;;; -A054;YI SYLLABLE PYRX;Lo;0;L;;;;;N;;;;; -A055;YI SYLLABLE PYR;Lo;0;L;;;;;N;;;;; -A056;YI SYLLABLE BBIT;Lo;0;L;;;;;N;;;;; -A057;YI SYLLABLE BBIX;Lo;0;L;;;;;N;;;;; -A058;YI SYLLABLE BBI;Lo;0;L;;;;;N;;;;; -A059;YI SYLLABLE BBIP;Lo;0;L;;;;;N;;;;; -A05A;YI SYLLABLE BBIET;Lo;0;L;;;;;N;;;;; -A05B;YI SYLLABLE BBIEX;Lo;0;L;;;;;N;;;;; -A05C;YI SYLLABLE BBIE;Lo;0;L;;;;;N;;;;; -A05D;YI SYLLABLE BBIEP;Lo;0;L;;;;;N;;;;; -A05E;YI SYLLABLE BBAT;Lo;0;L;;;;;N;;;;; -A05F;YI SYLLABLE BBAX;Lo;0;L;;;;;N;;;;; -A060;YI SYLLABLE BBA;Lo;0;L;;;;;N;;;;; -A061;YI SYLLABLE BBAP;Lo;0;L;;;;;N;;;;; -A062;YI SYLLABLE BBUOX;Lo;0;L;;;;;N;;;;; -A063;YI SYLLABLE BBUO;Lo;0;L;;;;;N;;;;; -A064;YI SYLLABLE BBUOP;Lo;0;L;;;;;N;;;;; -A065;YI SYLLABLE BBOT;Lo;0;L;;;;;N;;;;; -A066;YI SYLLABLE BBOX;Lo;0;L;;;;;N;;;;; -A067;YI SYLLABLE BBO;Lo;0;L;;;;;N;;;;; -A068;YI SYLLABLE BBOP;Lo;0;L;;;;;N;;;;; -A069;YI SYLLABLE BBEX;Lo;0;L;;;;;N;;;;; -A06A;YI SYLLABLE BBE;Lo;0;L;;;;;N;;;;; -A06B;YI SYLLABLE BBEP;Lo;0;L;;;;;N;;;;; -A06C;YI SYLLABLE BBUT;Lo;0;L;;;;;N;;;;; -A06D;YI SYLLABLE BBUX;Lo;0;L;;;;;N;;;;; -A06E;YI SYLLABLE BBU;Lo;0;L;;;;;N;;;;; -A06F;YI SYLLABLE BBUP;Lo;0;L;;;;;N;;;;; -A070;YI SYLLABLE BBURX;Lo;0;L;;;;;N;;;;; -A071;YI SYLLABLE BBUR;Lo;0;L;;;;;N;;;;; -A072;YI SYLLABLE BBYT;Lo;0;L;;;;;N;;;;; -A073;YI SYLLABLE BBYX;Lo;0;L;;;;;N;;;;; -A074;YI SYLLABLE BBY;Lo;0;L;;;;;N;;;;; -A075;YI SYLLABLE BBYP;Lo;0;L;;;;;N;;;;; -A076;YI SYLLABLE NBIT;Lo;0;L;;;;;N;;;;; -A077;YI SYLLABLE NBIX;Lo;0;L;;;;;N;;;;; -A078;YI SYLLABLE NBI;Lo;0;L;;;;;N;;;;; -A079;YI SYLLABLE NBIP;Lo;0;L;;;;;N;;;;; -A07A;YI SYLLABLE NBIEX;Lo;0;L;;;;;N;;;;; -A07B;YI SYLLABLE NBIE;Lo;0;L;;;;;N;;;;; -A07C;YI SYLLABLE NBIEP;Lo;0;L;;;;;N;;;;; -A07D;YI SYLLABLE NBAT;Lo;0;L;;;;;N;;;;; -A07E;YI SYLLABLE NBAX;Lo;0;L;;;;;N;;;;; -A07F;YI SYLLABLE NBA;Lo;0;L;;;;;N;;;;; -A080;YI SYLLABLE NBAP;Lo;0;L;;;;;N;;;;; -A081;YI SYLLABLE NBOT;Lo;0;L;;;;;N;;;;; -A082;YI SYLLABLE NBOX;Lo;0;L;;;;;N;;;;; -A083;YI SYLLABLE NBO;Lo;0;L;;;;;N;;;;; -A084;YI SYLLABLE NBOP;Lo;0;L;;;;;N;;;;; -A085;YI SYLLABLE NBUT;Lo;0;L;;;;;N;;;;; -A086;YI SYLLABLE NBUX;Lo;0;L;;;;;N;;;;; -A087;YI SYLLABLE NBU;Lo;0;L;;;;;N;;;;; -A088;YI SYLLABLE NBUP;Lo;0;L;;;;;N;;;;; -A089;YI SYLLABLE NBURX;Lo;0;L;;;;;N;;;;; -A08A;YI SYLLABLE NBUR;Lo;0;L;;;;;N;;;;; -A08B;YI SYLLABLE NBYT;Lo;0;L;;;;;N;;;;; -A08C;YI SYLLABLE NBYX;Lo;0;L;;;;;N;;;;; -A08D;YI SYLLABLE NBY;Lo;0;L;;;;;N;;;;; -A08E;YI SYLLABLE NBYP;Lo;0;L;;;;;N;;;;; -A08F;YI SYLLABLE NBYRX;Lo;0;L;;;;;N;;;;; -A090;YI SYLLABLE NBYR;Lo;0;L;;;;;N;;;;; -A091;YI SYLLABLE HMIT;Lo;0;L;;;;;N;;;;; -A092;YI SYLLABLE HMIX;Lo;0;L;;;;;N;;;;; -A093;YI SYLLABLE HMI;Lo;0;L;;;;;N;;;;; -A094;YI SYLLABLE HMIP;Lo;0;L;;;;;N;;;;; -A095;YI SYLLABLE HMIEX;Lo;0;L;;;;;N;;;;; -A096;YI SYLLABLE HMIE;Lo;0;L;;;;;N;;;;; -A097;YI SYLLABLE HMIEP;Lo;0;L;;;;;N;;;;; -A098;YI SYLLABLE HMAT;Lo;0;L;;;;;N;;;;; -A099;YI SYLLABLE HMAX;Lo;0;L;;;;;N;;;;; -A09A;YI SYLLABLE HMA;Lo;0;L;;;;;N;;;;; -A09B;YI SYLLABLE HMAP;Lo;0;L;;;;;N;;;;; -A09C;YI SYLLABLE HMUOX;Lo;0;L;;;;;N;;;;; -A09D;YI SYLLABLE HMUO;Lo;0;L;;;;;N;;;;; -A09E;YI SYLLABLE HMUOP;Lo;0;L;;;;;N;;;;; -A09F;YI SYLLABLE HMOT;Lo;0;L;;;;;N;;;;; -A0A0;YI SYLLABLE HMOX;Lo;0;L;;;;;N;;;;; -A0A1;YI SYLLABLE HMO;Lo;0;L;;;;;N;;;;; -A0A2;YI SYLLABLE HMOP;Lo;0;L;;;;;N;;;;; -A0A3;YI SYLLABLE HMUT;Lo;0;L;;;;;N;;;;; -A0A4;YI SYLLABLE HMUX;Lo;0;L;;;;;N;;;;; -A0A5;YI SYLLABLE HMU;Lo;0;L;;;;;N;;;;; -A0A6;YI SYLLABLE HMUP;Lo;0;L;;;;;N;;;;; -A0A7;YI SYLLABLE HMURX;Lo;0;L;;;;;N;;;;; -A0A8;YI SYLLABLE HMUR;Lo;0;L;;;;;N;;;;; -A0A9;YI SYLLABLE HMYX;Lo;0;L;;;;;N;;;;; -A0AA;YI SYLLABLE HMY;Lo;0;L;;;;;N;;;;; -A0AB;YI SYLLABLE HMYP;Lo;0;L;;;;;N;;;;; -A0AC;YI SYLLABLE HMYRX;Lo;0;L;;;;;N;;;;; -A0AD;YI SYLLABLE HMYR;Lo;0;L;;;;;N;;;;; -A0AE;YI SYLLABLE MIT;Lo;0;L;;;;;N;;;;; -A0AF;YI SYLLABLE MIX;Lo;0;L;;;;;N;;;;; -A0B0;YI SYLLABLE MI;Lo;0;L;;;;;N;;;;; -A0B1;YI SYLLABLE MIP;Lo;0;L;;;;;N;;;;; -A0B2;YI SYLLABLE MIEX;Lo;0;L;;;;;N;;;;; -A0B3;YI SYLLABLE MIE;Lo;0;L;;;;;N;;;;; -A0B4;YI SYLLABLE MIEP;Lo;0;L;;;;;N;;;;; -A0B5;YI SYLLABLE MAT;Lo;0;L;;;;;N;;;;; -A0B6;YI SYLLABLE MAX;Lo;0;L;;;;;N;;;;; -A0B7;YI SYLLABLE MA;Lo;0;L;;;;;N;;;;; -A0B8;YI SYLLABLE MAP;Lo;0;L;;;;;N;;;;; -A0B9;YI SYLLABLE MUOT;Lo;0;L;;;;;N;;;;; -A0BA;YI SYLLABLE MUOX;Lo;0;L;;;;;N;;;;; -A0BB;YI SYLLABLE MUO;Lo;0;L;;;;;N;;;;; -A0BC;YI SYLLABLE MUOP;Lo;0;L;;;;;N;;;;; -A0BD;YI SYLLABLE MOT;Lo;0;L;;;;;N;;;;; -A0BE;YI SYLLABLE MOX;Lo;0;L;;;;;N;;;;; -A0BF;YI SYLLABLE MO;Lo;0;L;;;;;N;;;;; -A0C0;YI SYLLABLE MOP;Lo;0;L;;;;;N;;;;; -A0C1;YI SYLLABLE MEX;Lo;0;L;;;;;N;;;;; -A0C2;YI SYLLABLE ME;Lo;0;L;;;;;N;;;;; -A0C3;YI SYLLABLE MUT;Lo;0;L;;;;;N;;;;; -A0C4;YI SYLLABLE MUX;Lo;0;L;;;;;N;;;;; -A0C5;YI SYLLABLE MU;Lo;0;L;;;;;N;;;;; -A0C6;YI SYLLABLE MUP;Lo;0;L;;;;;N;;;;; -A0C7;YI SYLLABLE MURX;Lo;0;L;;;;;N;;;;; -A0C8;YI SYLLABLE MUR;Lo;0;L;;;;;N;;;;; -A0C9;YI SYLLABLE MYT;Lo;0;L;;;;;N;;;;; -A0CA;YI SYLLABLE MYX;Lo;0;L;;;;;N;;;;; -A0CB;YI SYLLABLE MY;Lo;0;L;;;;;N;;;;; -A0CC;YI SYLLABLE MYP;Lo;0;L;;;;;N;;;;; -A0CD;YI SYLLABLE FIT;Lo;0;L;;;;;N;;;;; -A0CE;YI SYLLABLE FIX;Lo;0;L;;;;;N;;;;; -A0CF;YI SYLLABLE FI;Lo;0;L;;;;;N;;;;; -A0D0;YI SYLLABLE FIP;Lo;0;L;;;;;N;;;;; -A0D1;YI SYLLABLE FAT;Lo;0;L;;;;;N;;;;; -A0D2;YI SYLLABLE FAX;Lo;0;L;;;;;N;;;;; -A0D3;YI SYLLABLE FA;Lo;0;L;;;;;N;;;;; -A0D4;YI SYLLABLE FAP;Lo;0;L;;;;;N;;;;; -A0D5;YI SYLLABLE FOX;Lo;0;L;;;;;N;;;;; -A0D6;YI SYLLABLE FO;Lo;0;L;;;;;N;;;;; -A0D7;YI SYLLABLE FOP;Lo;0;L;;;;;N;;;;; -A0D8;YI SYLLABLE FUT;Lo;0;L;;;;;N;;;;; -A0D9;YI SYLLABLE FUX;Lo;0;L;;;;;N;;;;; -A0DA;YI SYLLABLE FU;Lo;0;L;;;;;N;;;;; -A0DB;YI SYLLABLE FUP;Lo;0;L;;;;;N;;;;; -A0DC;YI SYLLABLE FURX;Lo;0;L;;;;;N;;;;; -A0DD;YI SYLLABLE FUR;Lo;0;L;;;;;N;;;;; -A0DE;YI SYLLABLE FYT;Lo;0;L;;;;;N;;;;; -A0DF;YI SYLLABLE FYX;Lo;0;L;;;;;N;;;;; -A0E0;YI SYLLABLE FY;Lo;0;L;;;;;N;;;;; -A0E1;YI SYLLABLE FYP;Lo;0;L;;;;;N;;;;; -A0E2;YI SYLLABLE VIT;Lo;0;L;;;;;N;;;;; -A0E3;YI SYLLABLE VIX;Lo;0;L;;;;;N;;;;; -A0E4;YI SYLLABLE VI;Lo;0;L;;;;;N;;;;; -A0E5;YI SYLLABLE VIP;Lo;0;L;;;;;N;;;;; -A0E6;YI SYLLABLE VIET;Lo;0;L;;;;;N;;;;; -A0E7;YI SYLLABLE VIEX;Lo;0;L;;;;;N;;;;; -A0E8;YI SYLLABLE VIE;Lo;0;L;;;;;N;;;;; -A0E9;YI SYLLABLE VIEP;Lo;0;L;;;;;N;;;;; -A0EA;YI SYLLABLE VAT;Lo;0;L;;;;;N;;;;; -A0EB;YI SYLLABLE VAX;Lo;0;L;;;;;N;;;;; -A0EC;YI SYLLABLE VA;Lo;0;L;;;;;N;;;;; -A0ED;YI SYLLABLE VAP;Lo;0;L;;;;;N;;;;; -A0EE;YI SYLLABLE VOT;Lo;0;L;;;;;N;;;;; -A0EF;YI SYLLABLE VOX;Lo;0;L;;;;;N;;;;; -A0F0;YI SYLLABLE VO;Lo;0;L;;;;;N;;;;; -A0F1;YI SYLLABLE VOP;Lo;0;L;;;;;N;;;;; -A0F2;YI SYLLABLE VEX;Lo;0;L;;;;;N;;;;; -A0F3;YI SYLLABLE VEP;Lo;0;L;;;;;N;;;;; -A0F4;YI SYLLABLE VUT;Lo;0;L;;;;;N;;;;; -A0F5;YI SYLLABLE VUX;Lo;0;L;;;;;N;;;;; -A0F6;YI SYLLABLE VU;Lo;0;L;;;;;N;;;;; -A0F7;YI SYLLABLE VUP;Lo;0;L;;;;;N;;;;; -A0F8;YI SYLLABLE VURX;Lo;0;L;;;;;N;;;;; -A0F9;YI SYLLABLE VUR;Lo;0;L;;;;;N;;;;; -A0FA;YI SYLLABLE VYT;Lo;0;L;;;;;N;;;;; -A0FB;YI SYLLABLE VYX;Lo;0;L;;;;;N;;;;; -A0FC;YI SYLLABLE VY;Lo;0;L;;;;;N;;;;; -A0FD;YI SYLLABLE VYP;Lo;0;L;;;;;N;;;;; -A0FE;YI SYLLABLE VYRX;Lo;0;L;;;;;N;;;;; -A0FF;YI SYLLABLE VYR;Lo;0;L;;;;;N;;;;; -A100;YI SYLLABLE DIT;Lo;0;L;;;;;N;;;;; -A101;YI SYLLABLE DIX;Lo;0;L;;;;;N;;;;; -A102;YI SYLLABLE DI;Lo;0;L;;;;;N;;;;; -A103;YI SYLLABLE DIP;Lo;0;L;;;;;N;;;;; -A104;YI SYLLABLE DIEX;Lo;0;L;;;;;N;;;;; -A105;YI SYLLABLE DIE;Lo;0;L;;;;;N;;;;; -A106;YI SYLLABLE DIEP;Lo;0;L;;;;;N;;;;; -A107;YI SYLLABLE DAT;Lo;0;L;;;;;N;;;;; -A108;YI SYLLABLE DAX;Lo;0;L;;;;;N;;;;; -A109;YI SYLLABLE DA;Lo;0;L;;;;;N;;;;; -A10A;YI SYLLABLE DAP;Lo;0;L;;;;;N;;;;; -A10B;YI SYLLABLE DUOX;Lo;0;L;;;;;N;;;;; -A10C;YI SYLLABLE DUO;Lo;0;L;;;;;N;;;;; -A10D;YI SYLLABLE DOT;Lo;0;L;;;;;N;;;;; -A10E;YI SYLLABLE DOX;Lo;0;L;;;;;N;;;;; -A10F;YI SYLLABLE DO;Lo;0;L;;;;;N;;;;; -A110;YI SYLLABLE DOP;Lo;0;L;;;;;N;;;;; -A111;YI SYLLABLE DEX;Lo;0;L;;;;;N;;;;; -A112;YI SYLLABLE DE;Lo;0;L;;;;;N;;;;; -A113;YI SYLLABLE DEP;Lo;0;L;;;;;N;;;;; -A114;YI SYLLABLE DUT;Lo;0;L;;;;;N;;;;; -A115;YI SYLLABLE DUX;Lo;0;L;;;;;N;;;;; -A116;YI SYLLABLE DU;Lo;0;L;;;;;N;;;;; -A117;YI SYLLABLE DUP;Lo;0;L;;;;;N;;;;; -A118;YI SYLLABLE DURX;Lo;0;L;;;;;N;;;;; -A119;YI SYLLABLE DUR;Lo;0;L;;;;;N;;;;; -A11A;YI SYLLABLE TIT;Lo;0;L;;;;;N;;;;; -A11B;YI SYLLABLE TIX;Lo;0;L;;;;;N;;;;; -A11C;YI SYLLABLE TI;Lo;0;L;;;;;N;;;;; -A11D;YI SYLLABLE TIP;Lo;0;L;;;;;N;;;;; -A11E;YI SYLLABLE TIEX;Lo;0;L;;;;;N;;;;; -A11F;YI SYLLABLE TIE;Lo;0;L;;;;;N;;;;; -A120;YI SYLLABLE TIEP;Lo;0;L;;;;;N;;;;; -A121;YI SYLLABLE TAT;Lo;0;L;;;;;N;;;;; -A122;YI SYLLABLE TAX;Lo;0;L;;;;;N;;;;; -A123;YI SYLLABLE TA;Lo;0;L;;;;;N;;;;; -A124;YI SYLLABLE TAP;Lo;0;L;;;;;N;;;;; -A125;YI SYLLABLE TUOT;Lo;0;L;;;;;N;;;;; -A126;YI SYLLABLE TUOX;Lo;0;L;;;;;N;;;;; -A127;YI SYLLABLE TUO;Lo;0;L;;;;;N;;;;; -A128;YI SYLLABLE TUOP;Lo;0;L;;;;;N;;;;; -A129;YI SYLLABLE TOT;Lo;0;L;;;;;N;;;;; -A12A;YI SYLLABLE TOX;Lo;0;L;;;;;N;;;;; -A12B;YI SYLLABLE TO;Lo;0;L;;;;;N;;;;; -A12C;YI SYLLABLE TOP;Lo;0;L;;;;;N;;;;; -A12D;YI SYLLABLE TEX;Lo;0;L;;;;;N;;;;; -A12E;YI SYLLABLE TE;Lo;0;L;;;;;N;;;;; -A12F;YI SYLLABLE TEP;Lo;0;L;;;;;N;;;;; -A130;YI SYLLABLE TUT;Lo;0;L;;;;;N;;;;; -A131;YI SYLLABLE TUX;Lo;0;L;;;;;N;;;;; -A132;YI SYLLABLE TU;Lo;0;L;;;;;N;;;;; -A133;YI SYLLABLE TUP;Lo;0;L;;;;;N;;;;; -A134;YI SYLLABLE TURX;Lo;0;L;;;;;N;;;;; -A135;YI SYLLABLE TUR;Lo;0;L;;;;;N;;;;; -A136;YI SYLLABLE DDIT;Lo;0;L;;;;;N;;;;; -A137;YI SYLLABLE DDIX;Lo;0;L;;;;;N;;;;; -A138;YI SYLLABLE DDI;Lo;0;L;;;;;N;;;;; -A139;YI SYLLABLE DDIP;Lo;0;L;;;;;N;;;;; -A13A;YI SYLLABLE DDIEX;Lo;0;L;;;;;N;;;;; -A13B;YI SYLLABLE DDIE;Lo;0;L;;;;;N;;;;; -A13C;YI SYLLABLE DDIEP;Lo;0;L;;;;;N;;;;; -A13D;YI SYLLABLE DDAT;Lo;0;L;;;;;N;;;;; -A13E;YI SYLLABLE DDAX;Lo;0;L;;;;;N;;;;; -A13F;YI SYLLABLE DDA;Lo;0;L;;;;;N;;;;; -A140;YI SYLLABLE DDAP;Lo;0;L;;;;;N;;;;; -A141;YI SYLLABLE DDUOX;Lo;0;L;;;;;N;;;;; -A142;YI SYLLABLE DDUO;Lo;0;L;;;;;N;;;;; -A143;YI SYLLABLE DDUOP;Lo;0;L;;;;;N;;;;; -A144;YI SYLLABLE DDOT;Lo;0;L;;;;;N;;;;; -A145;YI SYLLABLE DDOX;Lo;0;L;;;;;N;;;;; -A146;YI SYLLABLE DDO;Lo;0;L;;;;;N;;;;; -A147;YI SYLLABLE DDOP;Lo;0;L;;;;;N;;;;; -A148;YI SYLLABLE DDEX;Lo;0;L;;;;;N;;;;; -A149;YI SYLLABLE DDE;Lo;0;L;;;;;N;;;;; -A14A;YI SYLLABLE DDEP;Lo;0;L;;;;;N;;;;; -A14B;YI SYLLABLE DDUT;Lo;0;L;;;;;N;;;;; -A14C;YI SYLLABLE DDUX;Lo;0;L;;;;;N;;;;; -A14D;YI SYLLABLE DDU;Lo;0;L;;;;;N;;;;; -A14E;YI SYLLABLE DDUP;Lo;0;L;;;;;N;;;;; -A14F;YI SYLLABLE DDURX;Lo;0;L;;;;;N;;;;; -A150;YI SYLLABLE DDUR;Lo;0;L;;;;;N;;;;; -A151;YI SYLLABLE NDIT;Lo;0;L;;;;;N;;;;; -A152;YI SYLLABLE NDIX;Lo;0;L;;;;;N;;;;; -A153;YI SYLLABLE NDI;Lo;0;L;;;;;N;;;;; -A154;YI SYLLABLE NDIP;Lo;0;L;;;;;N;;;;; -A155;YI SYLLABLE NDIEX;Lo;0;L;;;;;N;;;;; -A156;YI SYLLABLE NDIE;Lo;0;L;;;;;N;;;;; -A157;YI SYLLABLE NDAT;Lo;0;L;;;;;N;;;;; -A158;YI SYLLABLE NDAX;Lo;0;L;;;;;N;;;;; -A159;YI SYLLABLE NDA;Lo;0;L;;;;;N;;;;; -A15A;YI SYLLABLE NDAP;Lo;0;L;;;;;N;;;;; -A15B;YI SYLLABLE NDOT;Lo;0;L;;;;;N;;;;; -A15C;YI SYLLABLE NDOX;Lo;0;L;;;;;N;;;;; -A15D;YI SYLLABLE NDO;Lo;0;L;;;;;N;;;;; -A15E;YI SYLLABLE NDOP;Lo;0;L;;;;;N;;;;; -A15F;YI SYLLABLE NDEX;Lo;0;L;;;;;N;;;;; -A160;YI SYLLABLE NDE;Lo;0;L;;;;;N;;;;; -A161;YI SYLLABLE NDEP;Lo;0;L;;;;;N;;;;; -A162;YI SYLLABLE NDUT;Lo;0;L;;;;;N;;;;; -A163;YI SYLLABLE NDUX;Lo;0;L;;;;;N;;;;; -A164;YI SYLLABLE NDU;Lo;0;L;;;;;N;;;;; -A165;YI SYLLABLE NDUP;Lo;0;L;;;;;N;;;;; -A166;YI SYLLABLE NDURX;Lo;0;L;;;;;N;;;;; -A167;YI SYLLABLE NDUR;Lo;0;L;;;;;N;;;;; -A168;YI SYLLABLE HNIT;Lo;0;L;;;;;N;;;;; -A169;YI SYLLABLE HNIX;Lo;0;L;;;;;N;;;;; -A16A;YI SYLLABLE HNI;Lo;0;L;;;;;N;;;;; -A16B;YI SYLLABLE HNIP;Lo;0;L;;;;;N;;;;; -A16C;YI SYLLABLE HNIET;Lo;0;L;;;;;N;;;;; -A16D;YI SYLLABLE HNIEX;Lo;0;L;;;;;N;;;;; -A16E;YI SYLLABLE HNIE;Lo;0;L;;;;;N;;;;; -A16F;YI SYLLABLE HNIEP;Lo;0;L;;;;;N;;;;; -A170;YI SYLLABLE HNAT;Lo;0;L;;;;;N;;;;; -A171;YI SYLLABLE HNAX;Lo;0;L;;;;;N;;;;; -A172;YI SYLLABLE HNA;Lo;0;L;;;;;N;;;;; -A173;YI SYLLABLE HNAP;Lo;0;L;;;;;N;;;;; -A174;YI SYLLABLE HNUOX;Lo;0;L;;;;;N;;;;; -A175;YI SYLLABLE HNUO;Lo;0;L;;;;;N;;;;; -A176;YI SYLLABLE HNOT;Lo;0;L;;;;;N;;;;; -A177;YI SYLLABLE HNOX;Lo;0;L;;;;;N;;;;; -A178;YI SYLLABLE HNOP;Lo;0;L;;;;;N;;;;; -A179;YI SYLLABLE HNEX;Lo;0;L;;;;;N;;;;; -A17A;YI SYLLABLE HNE;Lo;0;L;;;;;N;;;;; -A17B;YI SYLLABLE HNEP;Lo;0;L;;;;;N;;;;; -A17C;YI SYLLABLE HNUT;Lo;0;L;;;;;N;;;;; -A17D;YI SYLLABLE NIT;Lo;0;L;;;;;N;;;;; -A17E;YI SYLLABLE NIX;Lo;0;L;;;;;N;;;;; -A17F;YI SYLLABLE NI;Lo;0;L;;;;;N;;;;; -A180;YI SYLLABLE NIP;Lo;0;L;;;;;N;;;;; -A181;YI SYLLABLE NIEX;Lo;0;L;;;;;N;;;;; -A182;YI SYLLABLE NIE;Lo;0;L;;;;;N;;;;; -A183;YI SYLLABLE NIEP;Lo;0;L;;;;;N;;;;; -A184;YI SYLLABLE NAX;Lo;0;L;;;;;N;;;;; -A185;YI SYLLABLE NA;Lo;0;L;;;;;N;;;;; -A186;YI SYLLABLE NAP;Lo;0;L;;;;;N;;;;; -A187;YI SYLLABLE NUOX;Lo;0;L;;;;;N;;;;; -A188;YI SYLLABLE NUO;Lo;0;L;;;;;N;;;;; -A189;YI SYLLABLE NUOP;Lo;0;L;;;;;N;;;;; -A18A;YI SYLLABLE NOT;Lo;0;L;;;;;N;;;;; -A18B;YI SYLLABLE NOX;Lo;0;L;;;;;N;;;;; -A18C;YI SYLLABLE NO;Lo;0;L;;;;;N;;;;; -A18D;YI SYLLABLE NOP;Lo;0;L;;;;;N;;;;; -A18E;YI SYLLABLE NEX;Lo;0;L;;;;;N;;;;; -A18F;YI SYLLABLE NE;Lo;0;L;;;;;N;;;;; -A190;YI SYLLABLE NEP;Lo;0;L;;;;;N;;;;; -A191;YI SYLLABLE NUT;Lo;0;L;;;;;N;;;;; -A192;YI SYLLABLE NUX;Lo;0;L;;;;;N;;;;; -A193;YI SYLLABLE NU;Lo;0;L;;;;;N;;;;; -A194;YI SYLLABLE NUP;Lo;0;L;;;;;N;;;;; -A195;YI SYLLABLE NURX;Lo;0;L;;;;;N;;;;; -A196;YI SYLLABLE NUR;Lo;0;L;;;;;N;;;;; -A197;YI SYLLABLE HLIT;Lo;0;L;;;;;N;;;;; -A198;YI SYLLABLE HLIX;Lo;0;L;;;;;N;;;;; -A199;YI SYLLABLE HLI;Lo;0;L;;;;;N;;;;; -A19A;YI SYLLABLE HLIP;Lo;0;L;;;;;N;;;;; -A19B;YI SYLLABLE HLIEX;Lo;0;L;;;;;N;;;;; -A19C;YI SYLLABLE HLIE;Lo;0;L;;;;;N;;;;; -A19D;YI SYLLABLE HLIEP;Lo;0;L;;;;;N;;;;; -A19E;YI SYLLABLE HLAT;Lo;0;L;;;;;N;;;;; -A19F;YI SYLLABLE HLAX;Lo;0;L;;;;;N;;;;; -A1A0;YI SYLLABLE HLA;Lo;0;L;;;;;N;;;;; -A1A1;YI SYLLABLE HLAP;Lo;0;L;;;;;N;;;;; -A1A2;YI SYLLABLE HLUOX;Lo;0;L;;;;;N;;;;; -A1A3;YI SYLLABLE HLUO;Lo;0;L;;;;;N;;;;; -A1A4;YI SYLLABLE HLUOP;Lo;0;L;;;;;N;;;;; -A1A5;YI SYLLABLE HLOX;Lo;0;L;;;;;N;;;;; -A1A6;YI SYLLABLE HLO;Lo;0;L;;;;;N;;;;; -A1A7;YI SYLLABLE HLOP;Lo;0;L;;;;;N;;;;; -A1A8;YI SYLLABLE HLEX;Lo;0;L;;;;;N;;;;; -A1A9;YI SYLLABLE HLE;Lo;0;L;;;;;N;;;;; -A1AA;YI SYLLABLE HLEP;Lo;0;L;;;;;N;;;;; -A1AB;YI SYLLABLE HLUT;Lo;0;L;;;;;N;;;;; -A1AC;YI SYLLABLE HLUX;Lo;0;L;;;;;N;;;;; -A1AD;YI SYLLABLE HLU;Lo;0;L;;;;;N;;;;; -A1AE;YI SYLLABLE HLUP;Lo;0;L;;;;;N;;;;; -A1AF;YI SYLLABLE HLURX;Lo;0;L;;;;;N;;;;; -A1B0;YI SYLLABLE HLUR;Lo;0;L;;;;;N;;;;; -A1B1;YI SYLLABLE HLYT;Lo;0;L;;;;;N;;;;; -A1B2;YI SYLLABLE HLYX;Lo;0;L;;;;;N;;;;; -A1B3;YI SYLLABLE HLY;Lo;0;L;;;;;N;;;;; -A1B4;YI SYLLABLE HLYP;Lo;0;L;;;;;N;;;;; -A1B5;YI SYLLABLE HLYRX;Lo;0;L;;;;;N;;;;; -A1B6;YI SYLLABLE HLYR;Lo;0;L;;;;;N;;;;; -A1B7;YI SYLLABLE LIT;Lo;0;L;;;;;N;;;;; -A1B8;YI SYLLABLE LIX;Lo;0;L;;;;;N;;;;; -A1B9;YI SYLLABLE LI;Lo;0;L;;;;;N;;;;; -A1BA;YI SYLLABLE LIP;Lo;0;L;;;;;N;;;;; -A1BB;YI SYLLABLE LIET;Lo;0;L;;;;;N;;;;; -A1BC;YI SYLLABLE LIEX;Lo;0;L;;;;;N;;;;; -A1BD;YI SYLLABLE LIE;Lo;0;L;;;;;N;;;;; -A1BE;YI SYLLABLE LIEP;Lo;0;L;;;;;N;;;;; -A1BF;YI SYLLABLE LAT;Lo;0;L;;;;;N;;;;; -A1C0;YI SYLLABLE LAX;Lo;0;L;;;;;N;;;;; -A1C1;YI SYLLABLE LA;Lo;0;L;;;;;N;;;;; -A1C2;YI SYLLABLE LAP;Lo;0;L;;;;;N;;;;; -A1C3;YI SYLLABLE LUOT;Lo;0;L;;;;;N;;;;; -A1C4;YI SYLLABLE LUOX;Lo;0;L;;;;;N;;;;; -A1C5;YI SYLLABLE LUO;Lo;0;L;;;;;N;;;;; -A1C6;YI SYLLABLE LUOP;Lo;0;L;;;;;N;;;;; -A1C7;YI SYLLABLE LOT;Lo;0;L;;;;;N;;;;; -A1C8;YI SYLLABLE LOX;Lo;0;L;;;;;N;;;;; -A1C9;YI SYLLABLE LO;Lo;0;L;;;;;N;;;;; -A1CA;YI SYLLABLE LOP;Lo;0;L;;;;;N;;;;; -A1CB;YI SYLLABLE LEX;Lo;0;L;;;;;N;;;;; -A1CC;YI SYLLABLE LE;Lo;0;L;;;;;N;;;;; -A1CD;YI SYLLABLE LEP;Lo;0;L;;;;;N;;;;; -A1CE;YI SYLLABLE LUT;Lo;0;L;;;;;N;;;;; -A1CF;YI SYLLABLE LUX;Lo;0;L;;;;;N;;;;; -A1D0;YI SYLLABLE LU;Lo;0;L;;;;;N;;;;; -A1D1;YI SYLLABLE LUP;Lo;0;L;;;;;N;;;;; -A1D2;YI SYLLABLE LURX;Lo;0;L;;;;;N;;;;; -A1D3;YI SYLLABLE LUR;Lo;0;L;;;;;N;;;;; -A1D4;YI SYLLABLE LYT;Lo;0;L;;;;;N;;;;; -A1D5;YI SYLLABLE LYX;Lo;0;L;;;;;N;;;;; -A1D6;YI SYLLABLE LY;Lo;0;L;;;;;N;;;;; -A1D7;YI SYLLABLE LYP;Lo;0;L;;;;;N;;;;; -A1D8;YI SYLLABLE LYRX;Lo;0;L;;;;;N;;;;; -A1D9;YI SYLLABLE LYR;Lo;0;L;;;;;N;;;;; -A1DA;YI SYLLABLE GIT;Lo;0;L;;;;;N;;;;; -A1DB;YI SYLLABLE GIX;Lo;0;L;;;;;N;;;;; -A1DC;YI SYLLABLE GI;Lo;0;L;;;;;N;;;;; -A1DD;YI SYLLABLE GIP;Lo;0;L;;;;;N;;;;; -A1DE;YI SYLLABLE GIET;Lo;0;L;;;;;N;;;;; -A1DF;YI SYLLABLE GIEX;Lo;0;L;;;;;N;;;;; -A1E0;YI SYLLABLE GIE;Lo;0;L;;;;;N;;;;; -A1E1;YI SYLLABLE GIEP;Lo;0;L;;;;;N;;;;; -A1E2;YI SYLLABLE GAT;Lo;0;L;;;;;N;;;;; -A1E3;YI SYLLABLE GAX;Lo;0;L;;;;;N;;;;; -A1E4;YI SYLLABLE GA;Lo;0;L;;;;;N;;;;; -A1E5;YI SYLLABLE GAP;Lo;0;L;;;;;N;;;;; -A1E6;YI SYLLABLE GUOT;Lo;0;L;;;;;N;;;;; -A1E7;YI SYLLABLE GUOX;Lo;0;L;;;;;N;;;;; -A1E8;YI SYLLABLE GUO;Lo;0;L;;;;;N;;;;; -A1E9;YI SYLLABLE GUOP;Lo;0;L;;;;;N;;;;; -A1EA;YI SYLLABLE GOT;Lo;0;L;;;;;N;;;;; -A1EB;YI SYLLABLE GOX;Lo;0;L;;;;;N;;;;; -A1EC;YI SYLLABLE GO;Lo;0;L;;;;;N;;;;; -A1ED;YI SYLLABLE GOP;Lo;0;L;;;;;N;;;;; -A1EE;YI SYLLABLE GET;Lo;0;L;;;;;N;;;;; -A1EF;YI SYLLABLE GEX;Lo;0;L;;;;;N;;;;; -A1F0;YI SYLLABLE GE;Lo;0;L;;;;;N;;;;; -A1F1;YI SYLLABLE GEP;Lo;0;L;;;;;N;;;;; -A1F2;YI SYLLABLE GUT;Lo;0;L;;;;;N;;;;; -A1F3;YI SYLLABLE GUX;Lo;0;L;;;;;N;;;;; -A1F4;YI SYLLABLE GU;Lo;0;L;;;;;N;;;;; -A1F5;YI SYLLABLE GUP;Lo;0;L;;;;;N;;;;; -A1F6;YI SYLLABLE GURX;Lo;0;L;;;;;N;;;;; -A1F7;YI SYLLABLE GUR;Lo;0;L;;;;;N;;;;; -A1F8;YI SYLLABLE KIT;Lo;0;L;;;;;N;;;;; -A1F9;YI SYLLABLE KIX;Lo;0;L;;;;;N;;;;; -A1FA;YI SYLLABLE KI;Lo;0;L;;;;;N;;;;; -A1FB;YI SYLLABLE KIP;Lo;0;L;;;;;N;;;;; -A1FC;YI SYLLABLE KIEX;Lo;0;L;;;;;N;;;;; -A1FD;YI SYLLABLE KIE;Lo;0;L;;;;;N;;;;; -A1FE;YI SYLLABLE KIEP;Lo;0;L;;;;;N;;;;; -A1FF;YI SYLLABLE KAT;Lo;0;L;;;;;N;;;;; -A200;YI SYLLABLE KAX;Lo;0;L;;;;;N;;;;; -A201;YI SYLLABLE KA;Lo;0;L;;;;;N;;;;; -A202;YI SYLLABLE KAP;Lo;0;L;;;;;N;;;;; -A203;YI SYLLABLE KUOX;Lo;0;L;;;;;N;;;;; -A204;YI SYLLABLE KUO;Lo;0;L;;;;;N;;;;; -A205;YI SYLLABLE KUOP;Lo;0;L;;;;;N;;;;; -A206;YI SYLLABLE KOT;Lo;0;L;;;;;N;;;;; -A207;YI SYLLABLE KOX;Lo;0;L;;;;;N;;;;; -A208;YI SYLLABLE KO;Lo;0;L;;;;;N;;;;; -A209;YI SYLLABLE KOP;Lo;0;L;;;;;N;;;;; -A20A;YI SYLLABLE KET;Lo;0;L;;;;;N;;;;; -A20B;YI SYLLABLE KEX;Lo;0;L;;;;;N;;;;; -A20C;YI SYLLABLE KE;Lo;0;L;;;;;N;;;;; -A20D;YI SYLLABLE KEP;Lo;0;L;;;;;N;;;;; -A20E;YI SYLLABLE KUT;Lo;0;L;;;;;N;;;;; -A20F;YI SYLLABLE KUX;Lo;0;L;;;;;N;;;;; -A210;YI SYLLABLE KU;Lo;0;L;;;;;N;;;;; -A211;YI SYLLABLE KUP;Lo;0;L;;;;;N;;;;; -A212;YI SYLLABLE KURX;Lo;0;L;;;;;N;;;;; -A213;YI SYLLABLE KUR;Lo;0;L;;;;;N;;;;; -A214;YI SYLLABLE GGIT;Lo;0;L;;;;;N;;;;; -A215;YI SYLLABLE GGIX;Lo;0;L;;;;;N;;;;; -A216;YI SYLLABLE GGI;Lo;0;L;;;;;N;;;;; -A217;YI SYLLABLE GGIEX;Lo;0;L;;;;;N;;;;; -A218;YI SYLLABLE GGIE;Lo;0;L;;;;;N;;;;; -A219;YI SYLLABLE GGIEP;Lo;0;L;;;;;N;;;;; -A21A;YI SYLLABLE GGAT;Lo;0;L;;;;;N;;;;; -A21B;YI SYLLABLE GGAX;Lo;0;L;;;;;N;;;;; -A21C;YI SYLLABLE GGA;Lo;0;L;;;;;N;;;;; -A21D;YI SYLLABLE GGAP;Lo;0;L;;;;;N;;;;; -A21E;YI SYLLABLE GGUOT;Lo;0;L;;;;;N;;;;; -A21F;YI SYLLABLE GGUOX;Lo;0;L;;;;;N;;;;; -A220;YI SYLLABLE GGUO;Lo;0;L;;;;;N;;;;; -A221;YI SYLLABLE GGUOP;Lo;0;L;;;;;N;;;;; -A222;YI SYLLABLE GGOT;Lo;0;L;;;;;N;;;;; -A223;YI SYLLABLE GGOX;Lo;0;L;;;;;N;;;;; -A224;YI SYLLABLE GGO;Lo;0;L;;;;;N;;;;; -A225;YI SYLLABLE GGOP;Lo;0;L;;;;;N;;;;; -A226;YI SYLLABLE GGET;Lo;0;L;;;;;N;;;;; -A227;YI SYLLABLE GGEX;Lo;0;L;;;;;N;;;;; -A228;YI SYLLABLE GGE;Lo;0;L;;;;;N;;;;; -A229;YI SYLLABLE GGEP;Lo;0;L;;;;;N;;;;; -A22A;YI SYLLABLE GGUT;Lo;0;L;;;;;N;;;;; -A22B;YI SYLLABLE GGUX;Lo;0;L;;;;;N;;;;; -A22C;YI SYLLABLE GGU;Lo;0;L;;;;;N;;;;; -A22D;YI SYLLABLE GGUP;Lo;0;L;;;;;N;;;;; -A22E;YI SYLLABLE GGURX;Lo;0;L;;;;;N;;;;; -A22F;YI SYLLABLE GGUR;Lo;0;L;;;;;N;;;;; -A230;YI SYLLABLE MGIEX;Lo;0;L;;;;;N;;;;; -A231;YI SYLLABLE MGIE;Lo;0;L;;;;;N;;;;; -A232;YI SYLLABLE MGAT;Lo;0;L;;;;;N;;;;; -A233;YI SYLLABLE MGAX;Lo;0;L;;;;;N;;;;; -A234;YI SYLLABLE MGA;Lo;0;L;;;;;N;;;;; -A235;YI SYLLABLE MGAP;Lo;0;L;;;;;N;;;;; -A236;YI SYLLABLE MGUOX;Lo;0;L;;;;;N;;;;; -A237;YI SYLLABLE MGUO;Lo;0;L;;;;;N;;;;; -A238;YI SYLLABLE MGUOP;Lo;0;L;;;;;N;;;;; -A239;YI SYLLABLE MGOT;Lo;0;L;;;;;N;;;;; -A23A;YI SYLLABLE MGOX;Lo;0;L;;;;;N;;;;; -A23B;YI SYLLABLE MGO;Lo;0;L;;;;;N;;;;; -A23C;YI SYLLABLE MGOP;Lo;0;L;;;;;N;;;;; -A23D;YI SYLLABLE MGEX;Lo;0;L;;;;;N;;;;; -A23E;YI SYLLABLE MGE;Lo;0;L;;;;;N;;;;; -A23F;YI SYLLABLE MGEP;Lo;0;L;;;;;N;;;;; -A240;YI SYLLABLE MGUT;Lo;0;L;;;;;N;;;;; -A241;YI SYLLABLE MGUX;Lo;0;L;;;;;N;;;;; -A242;YI SYLLABLE MGU;Lo;0;L;;;;;N;;;;; -A243;YI SYLLABLE MGUP;Lo;0;L;;;;;N;;;;; -A244;YI SYLLABLE MGURX;Lo;0;L;;;;;N;;;;; -A245;YI SYLLABLE MGUR;Lo;0;L;;;;;N;;;;; -A246;YI SYLLABLE HXIT;Lo;0;L;;;;;N;;;;; -A247;YI SYLLABLE HXIX;Lo;0;L;;;;;N;;;;; -A248;YI SYLLABLE HXI;Lo;0;L;;;;;N;;;;; -A249;YI SYLLABLE HXIP;Lo;0;L;;;;;N;;;;; -A24A;YI SYLLABLE HXIET;Lo;0;L;;;;;N;;;;; -A24B;YI SYLLABLE HXIEX;Lo;0;L;;;;;N;;;;; -A24C;YI SYLLABLE HXIE;Lo;0;L;;;;;N;;;;; -A24D;YI SYLLABLE HXIEP;Lo;0;L;;;;;N;;;;; -A24E;YI SYLLABLE HXAT;Lo;0;L;;;;;N;;;;; -A24F;YI SYLLABLE HXAX;Lo;0;L;;;;;N;;;;; -A250;YI SYLLABLE HXA;Lo;0;L;;;;;N;;;;; -A251;YI SYLLABLE HXAP;Lo;0;L;;;;;N;;;;; -A252;YI SYLLABLE HXUOT;Lo;0;L;;;;;N;;;;; -A253;YI SYLLABLE HXUOX;Lo;0;L;;;;;N;;;;; -A254;YI SYLLABLE HXUO;Lo;0;L;;;;;N;;;;; -A255;YI SYLLABLE HXUOP;Lo;0;L;;;;;N;;;;; -A256;YI SYLLABLE HXOT;Lo;0;L;;;;;N;;;;; -A257;YI SYLLABLE HXOX;Lo;0;L;;;;;N;;;;; -A258;YI SYLLABLE HXO;Lo;0;L;;;;;N;;;;; -A259;YI SYLLABLE HXOP;Lo;0;L;;;;;N;;;;; -A25A;YI SYLLABLE HXEX;Lo;0;L;;;;;N;;;;; -A25B;YI SYLLABLE HXE;Lo;0;L;;;;;N;;;;; -A25C;YI SYLLABLE HXEP;Lo;0;L;;;;;N;;;;; -A25D;YI SYLLABLE NGIEX;Lo;0;L;;;;;N;;;;; -A25E;YI SYLLABLE NGIE;Lo;0;L;;;;;N;;;;; -A25F;YI SYLLABLE NGIEP;Lo;0;L;;;;;N;;;;; -A260;YI SYLLABLE NGAT;Lo;0;L;;;;;N;;;;; -A261;YI SYLLABLE NGAX;Lo;0;L;;;;;N;;;;; -A262;YI SYLLABLE NGA;Lo;0;L;;;;;N;;;;; -A263;YI SYLLABLE NGAP;Lo;0;L;;;;;N;;;;; -A264;YI SYLLABLE NGUOT;Lo;0;L;;;;;N;;;;; -A265;YI SYLLABLE NGUOX;Lo;0;L;;;;;N;;;;; -A266;YI SYLLABLE NGUO;Lo;0;L;;;;;N;;;;; -A267;YI SYLLABLE NGOT;Lo;0;L;;;;;N;;;;; -A268;YI SYLLABLE NGOX;Lo;0;L;;;;;N;;;;; -A269;YI SYLLABLE NGO;Lo;0;L;;;;;N;;;;; -A26A;YI SYLLABLE NGOP;Lo;0;L;;;;;N;;;;; -A26B;YI SYLLABLE NGEX;Lo;0;L;;;;;N;;;;; -A26C;YI SYLLABLE NGE;Lo;0;L;;;;;N;;;;; -A26D;YI SYLLABLE NGEP;Lo;0;L;;;;;N;;;;; -A26E;YI SYLLABLE HIT;Lo;0;L;;;;;N;;;;; -A26F;YI SYLLABLE HIEX;Lo;0;L;;;;;N;;;;; -A270;YI SYLLABLE HIE;Lo;0;L;;;;;N;;;;; -A271;YI SYLLABLE HAT;Lo;0;L;;;;;N;;;;; -A272;YI SYLLABLE HAX;Lo;0;L;;;;;N;;;;; -A273;YI SYLLABLE HA;Lo;0;L;;;;;N;;;;; -A274;YI SYLLABLE HAP;Lo;0;L;;;;;N;;;;; -A275;YI SYLLABLE HUOT;Lo;0;L;;;;;N;;;;; -A276;YI SYLLABLE HUOX;Lo;0;L;;;;;N;;;;; -A277;YI SYLLABLE HUO;Lo;0;L;;;;;N;;;;; -A278;YI SYLLABLE HUOP;Lo;0;L;;;;;N;;;;; -A279;YI SYLLABLE HOT;Lo;0;L;;;;;N;;;;; -A27A;YI SYLLABLE HOX;Lo;0;L;;;;;N;;;;; -A27B;YI SYLLABLE HO;Lo;0;L;;;;;N;;;;; -A27C;YI SYLLABLE HOP;Lo;0;L;;;;;N;;;;; -A27D;YI SYLLABLE HEX;Lo;0;L;;;;;N;;;;; -A27E;YI SYLLABLE HE;Lo;0;L;;;;;N;;;;; -A27F;YI SYLLABLE HEP;Lo;0;L;;;;;N;;;;; -A280;YI SYLLABLE WAT;Lo;0;L;;;;;N;;;;; -A281;YI SYLLABLE WAX;Lo;0;L;;;;;N;;;;; -A282;YI SYLLABLE WA;Lo;0;L;;;;;N;;;;; -A283;YI SYLLABLE WAP;Lo;0;L;;;;;N;;;;; -A284;YI SYLLABLE WUOX;Lo;0;L;;;;;N;;;;; -A285;YI SYLLABLE WUO;Lo;0;L;;;;;N;;;;; -A286;YI SYLLABLE WUOP;Lo;0;L;;;;;N;;;;; -A287;YI SYLLABLE WOX;Lo;0;L;;;;;N;;;;; -A288;YI SYLLABLE WO;Lo;0;L;;;;;N;;;;; -A289;YI SYLLABLE WOP;Lo;0;L;;;;;N;;;;; -A28A;YI SYLLABLE WEX;Lo;0;L;;;;;N;;;;; -A28B;YI SYLLABLE WE;Lo;0;L;;;;;N;;;;; -A28C;YI SYLLABLE WEP;Lo;0;L;;;;;N;;;;; -A28D;YI SYLLABLE ZIT;Lo;0;L;;;;;N;;;;; -A28E;YI SYLLABLE ZIX;Lo;0;L;;;;;N;;;;; -A28F;YI SYLLABLE ZI;Lo;0;L;;;;;N;;;;; -A290;YI SYLLABLE ZIP;Lo;0;L;;;;;N;;;;; -A291;YI SYLLABLE ZIEX;Lo;0;L;;;;;N;;;;; -A292;YI SYLLABLE ZIE;Lo;0;L;;;;;N;;;;; -A293;YI SYLLABLE ZIEP;Lo;0;L;;;;;N;;;;; -A294;YI SYLLABLE ZAT;Lo;0;L;;;;;N;;;;; -A295;YI SYLLABLE ZAX;Lo;0;L;;;;;N;;;;; -A296;YI SYLLABLE ZA;Lo;0;L;;;;;N;;;;; -A297;YI SYLLABLE ZAP;Lo;0;L;;;;;N;;;;; -A298;YI SYLLABLE ZUOX;Lo;0;L;;;;;N;;;;; -A299;YI SYLLABLE ZUO;Lo;0;L;;;;;N;;;;; -A29A;YI SYLLABLE ZUOP;Lo;0;L;;;;;N;;;;; -A29B;YI SYLLABLE ZOT;Lo;0;L;;;;;N;;;;; -A29C;YI SYLLABLE ZOX;Lo;0;L;;;;;N;;;;; -A29D;YI SYLLABLE ZO;Lo;0;L;;;;;N;;;;; -A29E;YI SYLLABLE ZOP;Lo;0;L;;;;;N;;;;; -A29F;YI SYLLABLE ZEX;Lo;0;L;;;;;N;;;;; -A2A0;YI SYLLABLE ZE;Lo;0;L;;;;;N;;;;; -A2A1;YI SYLLABLE ZEP;Lo;0;L;;;;;N;;;;; -A2A2;YI SYLLABLE ZUT;Lo;0;L;;;;;N;;;;; -A2A3;YI SYLLABLE ZUX;Lo;0;L;;;;;N;;;;; -A2A4;YI SYLLABLE ZU;Lo;0;L;;;;;N;;;;; -A2A5;YI SYLLABLE ZUP;Lo;0;L;;;;;N;;;;; -A2A6;YI SYLLABLE ZURX;Lo;0;L;;;;;N;;;;; -A2A7;YI SYLLABLE ZUR;Lo;0;L;;;;;N;;;;; -A2A8;YI SYLLABLE ZYT;Lo;0;L;;;;;N;;;;; -A2A9;YI SYLLABLE ZYX;Lo;0;L;;;;;N;;;;; -A2AA;YI SYLLABLE ZY;Lo;0;L;;;;;N;;;;; -A2AB;YI SYLLABLE ZYP;Lo;0;L;;;;;N;;;;; -A2AC;YI SYLLABLE ZYRX;Lo;0;L;;;;;N;;;;; -A2AD;YI SYLLABLE ZYR;Lo;0;L;;;;;N;;;;; -A2AE;YI SYLLABLE CIT;Lo;0;L;;;;;N;;;;; -A2AF;YI SYLLABLE CIX;Lo;0;L;;;;;N;;;;; -A2B0;YI SYLLABLE CI;Lo;0;L;;;;;N;;;;; -A2B1;YI SYLLABLE CIP;Lo;0;L;;;;;N;;;;; -A2B2;YI SYLLABLE CIET;Lo;0;L;;;;;N;;;;; -A2B3;YI SYLLABLE CIEX;Lo;0;L;;;;;N;;;;; -A2B4;YI SYLLABLE CIE;Lo;0;L;;;;;N;;;;; -A2B5;YI SYLLABLE CIEP;Lo;0;L;;;;;N;;;;; -A2B6;YI SYLLABLE CAT;Lo;0;L;;;;;N;;;;; -A2B7;YI SYLLABLE CAX;Lo;0;L;;;;;N;;;;; -A2B8;YI SYLLABLE CA;Lo;0;L;;;;;N;;;;; -A2B9;YI SYLLABLE CAP;Lo;0;L;;;;;N;;;;; -A2BA;YI SYLLABLE CUOX;Lo;0;L;;;;;N;;;;; -A2BB;YI SYLLABLE CUO;Lo;0;L;;;;;N;;;;; -A2BC;YI SYLLABLE CUOP;Lo;0;L;;;;;N;;;;; -A2BD;YI SYLLABLE COT;Lo;0;L;;;;;N;;;;; -A2BE;YI SYLLABLE COX;Lo;0;L;;;;;N;;;;; -A2BF;YI SYLLABLE CO;Lo;0;L;;;;;N;;;;; -A2C0;YI SYLLABLE COP;Lo;0;L;;;;;N;;;;; -A2C1;YI SYLLABLE CEX;Lo;0;L;;;;;N;;;;; -A2C2;YI SYLLABLE CE;Lo;0;L;;;;;N;;;;; -A2C3;YI SYLLABLE CEP;Lo;0;L;;;;;N;;;;; -A2C4;YI SYLLABLE CUT;Lo;0;L;;;;;N;;;;; -A2C5;YI SYLLABLE CUX;Lo;0;L;;;;;N;;;;; -A2C6;YI SYLLABLE CU;Lo;0;L;;;;;N;;;;; -A2C7;YI SYLLABLE CUP;Lo;0;L;;;;;N;;;;; -A2C8;YI SYLLABLE CURX;Lo;0;L;;;;;N;;;;; -A2C9;YI SYLLABLE CUR;Lo;0;L;;;;;N;;;;; -A2CA;YI SYLLABLE CYT;Lo;0;L;;;;;N;;;;; -A2CB;YI SYLLABLE CYX;Lo;0;L;;;;;N;;;;; -A2CC;YI SYLLABLE CY;Lo;0;L;;;;;N;;;;; -A2CD;YI SYLLABLE CYP;Lo;0;L;;;;;N;;;;; -A2CE;YI SYLLABLE CYRX;Lo;0;L;;;;;N;;;;; -A2CF;YI SYLLABLE CYR;Lo;0;L;;;;;N;;;;; -A2D0;YI SYLLABLE ZZIT;Lo;0;L;;;;;N;;;;; -A2D1;YI SYLLABLE ZZIX;Lo;0;L;;;;;N;;;;; -A2D2;YI SYLLABLE ZZI;Lo;0;L;;;;;N;;;;; -A2D3;YI SYLLABLE ZZIP;Lo;0;L;;;;;N;;;;; -A2D4;YI SYLLABLE ZZIET;Lo;0;L;;;;;N;;;;; -A2D5;YI SYLLABLE ZZIEX;Lo;0;L;;;;;N;;;;; -A2D6;YI SYLLABLE ZZIE;Lo;0;L;;;;;N;;;;; -A2D7;YI SYLLABLE ZZIEP;Lo;0;L;;;;;N;;;;; -A2D8;YI SYLLABLE ZZAT;Lo;0;L;;;;;N;;;;; -A2D9;YI SYLLABLE ZZAX;Lo;0;L;;;;;N;;;;; -A2DA;YI SYLLABLE ZZA;Lo;0;L;;;;;N;;;;; -A2DB;YI SYLLABLE ZZAP;Lo;0;L;;;;;N;;;;; -A2DC;YI SYLLABLE ZZOX;Lo;0;L;;;;;N;;;;; -A2DD;YI SYLLABLE ZZO;Lo;0;L;;;;;N;;;;; -A2DE;YI SYLLABLE ZZOP;Lo;0;L;;;;;N;;;;; -A2DF;YI SYLLABLE ZZEX;Lo;0;L;;;;;N;;;;; -A2E0;YI SYLLABLE ZZE;Lo;0;L;;;;;N;;;;; -A2E1;YI SYLLABLE ZZEP;Lo;0;L;;;;;N;;;;; -A2E2;YI SYLLABLE ZZUX;Lo;0;L;;;;;N;;;;; -A2E3;YI SYLLABLE ZZU;Lo;0;L;;;;;N;;;;; -A2E4;YI SYLLABLE ZZUP;Lo;0;L;;;;;N;;;;; -A2E5;YI SYLLABLE ZZURX;Lo;0;L;;;;;N;;;;; -A2E6;YI SYLLABLE ZZUR;Lo;0;L;;;;;N;;;;; -A2E7;YI SYLLABLE ZZYT;Lo;0;L;;;;;N;;;;; -A2E8;YI SYLLABLE ZZYX;Lo;0;L;;;;;N;;;;; -A2E9;YI SYLLABLE ZZY;Lo;0;L;;;;;N;;;;; -A2EA;YI SYLLABLE ZZYP;Lo;0;L;;;;;N;;;;; -A2EB;YI SYLLABLE ZZYRX;Lo;0;L;;;;;N;;;;; -A2EC;YI SYLLABLE ZZYR;Lo;0;L;;;;;N;;;;; -A2ED;YI SYLLABLE NZIT;Lo;0;L;;;;;N;;;;; -A2EE;YI SYLLABLE NZIX;Lo;0;L;;;;;N;;;;; -A2EF;YI SYLLABLE NZI;Lo;0;L;;;;;N;;;;; -A2F0;YI SYLLABLE NZIP;Lo;0;L;;;;;N;;;;; -A2F1;YI SYLLABLE NZIEX;Lo;0;L;;;;;N;;;;; -A2F2;YI SYLLABLE NZIE;Lo;0;L;;;;;N;;;;; -A2F3;YI SYLLABLE NZIEP;Lo;0;L;;;;;N;;;;; -A2F4;YI SYLLABLE NZAT;Lo;0;L;;;;;N;;;;; -A2F5;YI SYLLABLE NZAX;Lo;0;L;;;;;N;;;;; -A2F6;YI SYLLABLE NZA;Lo;0;L;;;;;N;;;;; -A2F7;YI SYLLABLE NZAP;Lo;0;L;;;;;N;;;;; -A2F8;YI SYLLABLE NZUOX;Lo;0;L;;;;;N;;;;; -A2F9;YI SYLLABLE NZUO;Lo;0;L;;;;;N;;;;; -A2FA;YI SYLLABLE NZOX;Lo;0;L;;;;;N;;;;; -A2FB;YI SYLLABLE NZOP;Lo;0;L;;;;;N;;;;; -A2FC;YI SYLLABLE NZEX;Lo;0;L;;;;;N;;;;; -A2FD;YI SYLLABLE NZE;Lo;0;L;;;;;N;;;;; -A2FE;YI SYLLABLE NZUX;Lo;0;L;;;;;N;;;;; -A2FF;YI SYLLABLE NZU;Lo;0;L;;;;;N;;;;; -A300;YI SYLLABLE NZUP;Lo;0;L;;;;;N;;;;; -A301;YI SYLLABLE NZURX;Lo;0;L;;;;;N;;;;; -A302;YI SYLLABLE NZUR;Lo;0;L;;;;;N;;;;; -A303;YI SYLLABLE NZYT;Lo;0;L;;;;;N;;;;; -A304;YI SYLLABLE NZYX;Lo;0;L;;;;;N;;;;; -A305;YI SYLLABLE NZY;Lo;0;L;;;;;N;;;;; -A306;YI SYLLABLE NZYP;Lo;0;L;;;;;N;;;;; -A307;YI SYLLABLE NZYRX;Lo;0;L;;;;;N;;;;; -A308;YI SYLLABLE NZYR;Lo;0;L;;;;;N;;;;; -A309;YI SYLLABLE SIT;Lo;0;L;;;;;N;;;;; -A30A;YI SYLLABLE SIX;Lo;0;L;;;;;N;;;;; -A30B;YI SYLLABLE SI;Lo;0;L;;;;;N;;;;; -A30C;YI SYLLABLE SIP;Lo;0;L;;;;;N;;;;; -A30D;YI SYLLABLE SIEX;Lo;0;L;;;;;N;;;;; -A30E;YI SYLLABLE SIE;Lo;0;L;;;;;N;;;;; -A30F;YI SYLLABLE SIEP;Lo;0;L;;;;;N;;;;; -A310;YI SYLLABLE SAT;Lo;0;L;;;;;N;;;;; -A311;YI SYLLABLE SAX;Lo;0;L;;;;;N;;;;; -A312;YI SYLLABLE SA;Lo;0;L;;;;;N;;;;; -A313;YI SYLLABLE SAP;Lo;0;L;;;;;N;;;;; -A314;YI SYLLABLE SUOX;Lo;0;L;;;;;N;;;;; -A315;YI SYLLABLE SUO;Lo;0;L;;;;;N;;;;; -A316;YI SYLLABLE SUOP;Lo;0;L;;;;;N;;;;; -A317;YI SYLLABLE SOT;Lo;0;L;;;;;N;;;;; -A318;YI SYLLABLE SOX;Lo;0;L;;;;;N;;;;; -A319;YI SYLLABLE SO;Lo;0;L;;;;;N;;;;; -A31A;YI SYLLABLE SOP;Lo;0;L;;;;;N;;;;; -A31B;YI SYLLABLE SEX;Lo;0;L;;;;;N;;;;; -A31C;YI SYLLABLE SE;Lo;0;L;;;;;N;;;;; -A31D;YI SYLLABLE SEP;Lo;0;L;;;;;N;;;;; -A31E;YI SYLLABLE SUT;Lo;0;L;;;;;N;;;;; -A31F;YI SYLLABLE SUX;Lo;0;L;;;;;N;;;;; -A320;YI SYLLABLE SU;Lo;0;L;;;;;N;;;;; -A321;YI SYLLABLE SUP;Lo;0;L;;;;;N;;;;; -A322;YI SYLLABLE SURX;Lo;0;L;;;;;N;;;;; -A323;YI SYLLABLE SUR;Lo;0;L;;;;;N;;;;; -A324;YI SYLLABLE SYT;Lo;0;L;;;;;N;;;;; -A325;YI SYLLABLE SYX;Lo;0;L;;;;;N;;;;; -A326;YI SYLLABLE SY;Lo;0;L;;;;;N;;;;; -A327;YI SYLLABLE SYP;Lo;0;L;;;;;N;;;;; -A328;YI SYLLABLE SYRX;Lo;0;L;;;;;N;;;;; -A329;YI SYLLABLE SYR;Lo;0;L;;;;;N;;;;; -A32A;YI SYLLABLE SSIT;Lo;0;L;;;;;N;;;;; -A32B;YI SYLLABLE SSIX;Lo;0;L;;;;;N;;;;; -A32C;YI SYLLABLE SSI;Lo;0;L;;;;;N;;;;; -A32D;YI SYLLABLE SSIP;Lo;0;L;;;;;N;;;;; -A32E;YI SYLLABLE SSIEX;Lo;0;L;;;;;N;;;;; -A32F;YI SYLLABLE SSIE;Lo;0;L;;;;;N;;;;; -A330;YI SYLLABLE SSIEP;Lo;0;L;;;;;N;;;;; -A331;YI SYLLABLE SSAT;Lo;0;L;;;;;N;;;;; -A332;YI SYLLABLE SSAX;Lo;0;L;;;;;N;;;;; -A333;YI SYLLABLE SSA;Lo;0;L;;;;;N;;;;; -A334;YI SYLLABLE SSAP;Lo;0;L;;;;;N;;;;; -A335;YI SYLLABLE SSOT;Lo;0;L;;;;;N;;;;; -A336;YI SYLLABLE SSOX;Lo;0;L;;;;;N;;;;; -A337;YI SYLLABLE SSO;Lo;0;L;;;;;N;;;;; -A338;YI SYLLABLE SSOP;Lo;0;L;;;;;N;;;;; -A339;YI SYLLABLE SSEX;Lo;0;L;;;;;N;;;;; -A33A;YI SYLLABLE SSE;Lo;0;L;;;;;N;;;;; -A33B;YI SYLLABLE SSEP;Lo;0;L;;;;;N;;;;; -A33C;YI SYLLABLE SSUT;Lo;0;L;;;;;N;;;;; -A33D;YI SYLLABLE SSUX;Lo;0;L;;;;;N;;;;; -A33E;YI SYLLABLE SSU;Lo;0;L;;;;;N;;;;; -A33F;YI SYLLABLE SSUP;Lo;0;L;;;;;N;;;;; -A340;YI SYLLABLE SSYT;Lo;0;L;;;;;N;;;;; -A341;YI SYLLABLE SSYX;Lo;0;L;;;;;N;;;;; -A342;YI SYLLABLE SSY;Lo;0;L;;;;;N;;;;; -A343;YI SYLLABLE SSYP;Lo;0;L;;;;;N;;;;; -A344;YI SYLLABLE SSYRX;Lo;0;L;;;;;N;;;;; -A345;YI SYLLABLE SSYR;Lo;0;L;;;;;N;;;;; -A346;YI SYLLABLE ZHAT;Lo;0;L;;;;;N;;;;; -A347;YI SYLLABLE ZHAX;Lo;0;L;;;;;N;;;;; -A348;YI SYLLABLE ZHA;Lo;0;L;;;;;N;;;;; -A349;YI SYLLABLE ZHAP;Lo;0;L;;;;;N;;;;; -A34A;YI SYLLABLE ZHUOX;Lo;0;L;;;;;N;;;;; -A34B;YI SYLLABLE ZHUO;Lo;0;L;;;;;N;;;;; -A34C;YI SYLLABLE ZHUOP;Lo;0;L;;;;;N;;;;; -A34D;YI SYLLABLE ZHOT;Lo;0;L;;;;;N;;;;; -A34E;YI SYLLABLE ZHOX;Lo;0;L;;;;;N;;;;; -A34F;YI SYLLABLE ZHO;Lo;0;L;;;;;N;;;;; -A350;YI SYLLABLE ZHOP;Lo;0;L;;;;;N;;;;; -A351;YI SYLLABLE ZHET;Lo;0;L;;;;;N;;;;; -A352;YI SYLLABLE ZHEX;Lo;0;L;;;;;N;;;;; -A353;YI SYLLABLE ZHE;Lo;0;L;;;;;N;;;;; -A354;YI SYLLABLE ZHEP;Lo;0;L;;;;;N;;;;; -A355;YI SYLLABLE ZHUT;Lo;0;L;;;;;N;;;;; -A356;YI SYLLABLE ZHUX;Lo;0;L;;;;;N;;;;; -A357;YI SYLLABLE ZHU;Lo;0;L;;;;;N;;;;; -A358;YI SYLLABLE ZHUP;Lo;0;L;;;;;N;;;;; -A359;YI SYLLABLE ZHURX;Lo;0;L;;;;;N;;;;; -A35A;YI SYLLABLE ZHUR;Lo;0;L;;;;;N;;;;; -A35B;YI SYLLABLE ZHYT;Lo;0;L;;;;;N;;;;; -A35C;YI SYLLABLE ZHYX;Lo;0;L;;;;;N;;;;; -A35D;YI SYLLABLE ZHY;Lo;0;L;;;;;N;;;;; -A35E;YI SYLLABLE ZHYP;Lo;0;L;;;;;N;;;;; -A35F;YI SYLLABLE ZHYRX;Lo;0;L;;;;;N;;;;; -A360;YI SYLLABLE ZHYR;Lo;0;L;;;;;N;;;;; -A361;YI SYLLABLE CHAT;Lo;0;L;;;;;N;;;;; -A362;YI SYLLABLE CHAX;Lo;0;L;;;;;N;;;;; -A363;YI SYLLABLE CHA;Lo;0;L;;;;;N;;;;; -A364;YI SYLLABLE CHAP;Lo;0;L;;;;;N;;;;; -A365;YI SYLLABLE CHUOT;Lo;0;L;;;;;N;;;;; -A366;YI SYLLABLE CHUOX;Lo;0;L;;;;;N;;;;; -A367;YI SYLLABLE CHUO;Lo;0;L;;;;;N;;;;; -A368;YI SYLLABLE CHUOP;Lo;0;L;;;;;N;;;;; -A369;YI SYLLABLE CHOT;Lo;0;L;;;;;N;;;;; -A36A;YI SYLLABLE CHOX;Lo;0;L;;;;;N;;;;; -A36B;YI SYLLABLE CHO;Lo;0;L;;;;;N;;;;; -A36C;YI SYLLABLE CHOP;Lo;0;L;;;;;N;;;;; -A36D;YI SYLLABLE CHET;Lo;0;L;;;;;N;;;;; -A36E;YI SYLLABLE CHEX;Lo;0;L;;;;;N;;;;; -A36F;YI SYLLABLE CHE;Lo;0;L;;;;;N;;;;; -A370;YI SYLLABLE CHEP;Lo;0;L;;;;;N;;;;; -A371;YI SYLLABLE CHUX;Lo;0;L;;;;;N;;;;; -A372;YI SYLLABLE CHU;Lo;0;L;;;;;N;;;;; -A373;YI SYLLABLE CHUP;Lo;0;L;;;;;N;;;;; -A374;YI SYLLABLE CHURX;Lo;0;L;;;;;N;;;;; -A375;YI SYLLABLE CHUR;Lo;0;L;;;;;N;;;;; -A376;YI SYLLABLE CHYT;Lo;0;L;;;;;N;;;;; -A377;YI SYLLABLE CHYX;Lo;0;L;;;;;N;;;;; -A378;YI SYLLABLE CHY;Lo;0;L;;;;;N;;;;; -A379;YI SYLLABLE CHYP;Lo;0;L;;;;;N;;;;; -A37A;YI SYLLABLE CHYRX;Lo;0;L;;;;;N;;;;; -A37B;YI SYLLABLE CHYR;Lo;0;L;;;;;N;;;;; -A37C;YI SYLLABLE RRAX;Lo;0;L;;;;;N;;;;; -A37D;YI SYLLABLE RRA;Lo;0;L;;;;;N;;;;; -A37E;YI SYLLABLE RRUOX;Lo;0;L;;;;;N;;;;; -A37F;YI SYLLABLE RRUO;Lo;0;L;;;;;N;;;;; -A380;YI SYLLABLE RROT;Lo;0;L;;;;;N;;;;; -A381;YI SYLLABLE RROX;Lo;0;L;;;;;N;;;;; -A382;YI SYLLABLE RRO;Lo;0;L;;;;;N;;;;; -A383;YI SYLLABLE RROP;Lo;0;L;;;;;N;;;;; -A384;YI SYLLABLE RRET;Lo;0;L;;;;;N;;;;; -A385;YI SYLLABLE RREX;Lo;0;L;;;;;N;;;;; -A386;YI SYLLABLE RRE;Lo;0;L;;;;;N;;;;; -A387;YI SYLLABLE RREP;Lo;0;L;;;;;N;;;;; -A388;YI SYLLABLE RRUT;Lo;0;L;;;;;N;;;;; -A389;YI SYLLABLE RRUX;Lo;0;L;;;;;N;;;;; -A38A;YI SYLLABLE RRU;Lo;0;L;;;;;N;;;;; -A38B;YI SYLLABLE RRUP;Lo;0;L;;;;;N;;;;; -A38C;YI SYLLABLE RRURX;Lo;0;L;;;;;N;;;;; -A38D;YI SYLLABLE RRUR;Lo;0;L;;;;;N;;;;; -A38E;YI SYLLABLE RRYT;Lo;0;L;;;;;N;;;;; -A38F;YI SYLLABLE RRYX;Lo;0;L;;;;;N;;;;; -A390;YI SYLLABLE RRY;Lo;0;L;;;;;N;;;;; -A391;YI SYLLABLE RRYP;Lo;0;L;;;;;N;;;;; -A392;YI SYLLABLE RRYRX;Lo;0;L;;;;;N;;;;; -A393;YI SYLLABLE RRYR;Lo;0;L;;;;;N;;;;; -A394;YI SYLLABLE NRAT;Lo;0;L;;;;;N;;;;; -A395;YI SYLLABLE NRAX;Lo;0;L;;;;;N;;;;; -A396;YI SYLLABLE NRA;Lo;0;L;;;;;N;;;;; -A397;YI SYLLABLE NRAP;Lo;0;L;;;;;N;;;;; -A398;YI SYLLABLE NROX;Lo;0;L;;;;;N;;;;; -A399;YI SYLLABLE NRO;Lo;0;L;;;;;N;;;;; -A39A;YI SYLLABLE NROP;Lo;0;L;;;;;N;;;;; -A39B;YI SYLLABLE NRET;Lo;0;L;;;;;N;;;;; -A39C;YI SYLLABLE NREX;Lo;0;L;;;;;N;;;;; -A39D;YI SYLLABLE NRE;Lo;0;L;;;;;N;;;;; -A39E;YI SYLLABLE NREP;Lo;0;L;;;;;N;;;;; -A39F;YI SYLLABLE NRUT;Lo;0;L;;;;;N;;;;; -A3A0;YI SYLLABLE NRUX;Lo;0;L;;;;;N;;;;; -A3A1;YI SYLLABLE NRU;Lo;0;L;;;;;N;;;;; -A3A2;YI SYLLABLE NRUP;Lo;0;L;;;;;N;;;;; -A3A3;YI SYLLABLE NRURX;Lo;0;L;;;;;N;;;;; -A3A4;YI SYLLABLE NRUR;Lo;0;L;;;;;N;;;;; -A3A5;YI SYLLABLE NRYT;Lo;0;L;;;;;N;;;;; -A3A6;YI SYLLABLE NRYX;Lo;0;L;;;;;N;;;;; -A3A7;YI SYLLABLE NRY;Lo;0;L;;;;;N;;;;; -A3A8;YI SYLLABLE NRYP;Lo;0;L;;;;;N;;;;; -A3A9;YI SYLLABLE NRYRX;Lo;0;L;;;;;N;;;;; -A3AA;YI SYLLABLE NRYR;Lo;0;L;;;;;N;;;;; -A3AB;YI SYLLABLE SHAT;Lo;0;L;;;;;N;;;;; -A3AC;YI SYLLABLE SHAX;Lo;0;L;;;;;N;;;;; -A3AD;YI SYLLABLE SHA;Lo;0;L;;;;;N;;;;; -A3AE;YI SYLLABLE SHAP;Lo;0;L;;;;;N;;;;; -A3AF;YI SYLLABLE SHUOX;Lo;0;L;;;;;N;;;;; -A3B0;YI SYLLABLE SHUO;Lo;0;L;;;;;N;;;;; -A3B1;YI SYLLABLE SHUOP;Lo;0;L;;;;;N;;;;; -A3B2;YI SYLLABLE SHOT;Lo;0;L;;;;;N;;;;; -A3B3;YI SYLLABLE SHOX;Lo;0;L;;;;;N;;;;; -A3B4;YI SYLLABLE SHO;Lo;0;L;;;;;N;;;;; -A3B5;YI SYLLABLE SHOP;Lo;0;L;;;;;N;;;;; -A3B6;YI SYLLABLE SHET;Lo;0;L;;;;;N;;;;; -A3B7;YI SYLLABLE SHEX;Lo;0;L;;;;;N;;;;; -A3B8;YI SYLLABLE SHE;Lo;0;L;;;;;N;;;;; -A3B9;YI SYLLABLE SHEP;Lo;0;L;;;;;N;;;;; -A3BA;YI SYLLABLE SHUT;Lo;0;L;;;;;N;;;;; -A3BB;YI SYLLABLE SHUX;Lo;0;L;;;;;N;;;;; -A3BC;YI SYLLABLE SHU;Lo;0;L;;;;;N;;;;; -A3BD;YI SYLLABLE SHUP;Lo;0;L;;;;;N;;;;; -A3BE;YI SYLLABLE SHURX;Lo;0;L;;;;;N;;;;; -A3BF;YI SYLLABLE SHUR;Lo;0;L;;;;;N;;;;; -A3C0;YI SYLLABLE SHYT;Lo;0;L;;;;;N;;;;; -A3C1;YI SYLLABLE SHYX;Lo;0;L;;;;;N;;;;; -A3C2;YI SYLLABLE SHY;Lo;0;L;;;;;N;;;;; -A3C3;YI SYLLABLE SHYP;Lo;0;L;;;;;N;;;;; -A3C4;YI SYLLABLE SHYRX;Lo;0;L;;;;;N;;;;; -A3C5;YI SYLLABLE SHYR;Lo;0;L;;;;;N;;;;; -A3C6;YI SYLLABLE RAT;Lo;0;L;;;;;N;;;;; -A3C7;YI SYLLABLE RAX;Lo;0;L;;;;;N;;;;; -A3C8;YI SYLLABLE RA;Lo;0;L;;;;;N;;;;; -A3C9;YI SYLLABLE RAP;Lo;0;L;;;;;N;;;;; -A3CA;YI SYLLABLE RUOX;Lo;0;L;;;;;N;;;;; -A3CB;YI SYLLABLE RUO;Lo;0;L;;;;;N;;;;; -A3CC;YI SYLLABLE RUOP;Lo;0;L;;;;;N;;;;; -A3CD;YI SYLLABLE ROT;Lo;0;L;;;;;N;;;;; -A3CE;YI SYLLABLE ROX;Lo;0;L;;;;;N;;;;; -A3CF;YI SYLLABLE RO;Lo;0;L;;;;;N;;;;; -A3D0;YI SYLLABLE ROP;Lo;0;L;;;;;N;;;;; -A3D1;YI SYLLABLE REX;Lo;0;L;;;;;N;;;;; -A3D2;YI SYLLABLE RE;Lo;0;L;;;;;N;;;;; -A3D3;YI SYLLABLE REP;Lo;0;L;;;;;N;;;;; -A3D4;YI SYLLABLE RUT;Lo;0;L;;;;;N;;;;; -A3D5;YI SYLLABLE RUX;Lo;0;L;;;;;N;;;;; -A3D6;YI SYLLABLE RU;Lo;0;L;;;;;N;;;;; -A3D7;YI SYLLABLE RUP;Lo;0;L;;;;;N;;;;; -A3D8;YI SYLLABLE RURX;Lo;0;L;;;;;N;;;;; -A3D9;YI SYLLABLE RUR;Lo;0;L;;;;;N;;;;; -A3DA;YI SYLLABLE RYT;Lo;0;L;;;;;N;;;;; -A3DB;YI SYLLABLE RYX;Lo;0;L;;;;;N;;;;; -A3DC;YI SYLLABLE RY;Lo;0;L;;;;;N;;;;; -A3DD;YI SYLLABLE RYP;Lo;0;L;;;;;N;;;;; -A3DE;YI SYLLABLE RYRX;Lo;0;L;;;;;N;;;;; -A3DF;YI SYLLABLE RYR;Lo;0;L;;;;;N;;;;; -A3E0;YI SYLLABLE JIT;Lo;0;L;;;;;N;;;;; -A3E1;YI SYLLABLE JIX;Lo;0;L;;;;;N;;;;; -A3E2;YI SYLLABLE JI;Lo;0;L;;;;;N;;;;; -A3E3;YI SYLLABLE JIP;Lo;0;L;;;;;N;;;;; -A3E4;YI SYLLABLE JIET;Lo;0;L;;;;;N;;;;; -A3E5;YI SYLLABLE JIEX;Lo;0;L;;;;;N;;;;; -A3E6;YI SYLLABLE JIE;Lo;0;L;;;;;N;;;;; -A3E7;YI SYLLABLE JIEP;Lo;0;L;;;;;N;;;;; -A3E8;YI SYLLABLE JUOT;Lo;0;L;;;;;N;;;;; -A3E9;YI SYLLABLE JUOX;Lo;0;L;;;;;N;;;;; -A3EA;YI SYLLABLE JUO;Lo;0;L;;;;;N;;;;; -A3EB;YI SYLLABLE JUOP;Lo;0;L;;;;;N;;;;; -A3EC;YI SYLLABLE JOT;Lo;0;L;;;;;N;;;;; -A3ED;YI SYLLABLE JOX;Lo;0;L;;;;;N;;;;; -A3EE;YI SYLLABLE JO;Lo;0;L;;;;;N;;;;; -A3EF;YI SYLLABLE JOP;Lo;0;L;;;;;N;;;;; -A3F0;YI SYLLABLE JUT;Lo;0;L;;;;;N;;;;; -A3F1;YI SYLLABLE JUX;Lo;0;L;;;;;N;;;;; -A3F2;YI SYLLABLE JU;Lo;0;L;;;;;N;;;;; -A3F3;YI SYLLABLE JUP;Lo;0;L;;;;;N;;;;; -A3F4;YI SYLLABLE JURX;Lo;0;L;;;;;N;;;;; -A3F5;YI SYLLABLE JUR;Lo;0;L;;;;;N;;;;; -A3F6;YI SYLLABLE JYT;Lo;0;L;;;;;N;;;;; -A3F7;YI SYLLABLE JYX;Lo;0;L;;;;;N;;;;; -A3F8;YI SYLLABLE JY;Lo;0;L;;;;;N;;;;; -A3F9;YI SYLLABLE JYP;Lo;0;L;;;;;N;;;;; -A3FA;YI SYLLABLE JYRX;Lo;0;L;;;;;N;;;;; -A3FB;YI SYLLABLE JYR;Lo;0;L;;;;;N;;;;; -A3FC;YI SYLLABLE QIT;Lo;0;L;;;;;N;;;;; -A3FD;YI SYLLABLE QIX;Lo;0;L;;;;;N;;;;; -A3FE;YI SYLLABLE QI;Lo;0;L;;;;;N;;;;; -A3FF;YI SYLLABLE QIP;Lo;0;L;;;;;N;;;;; -A400;YI SYLLABLE QIET;Lo;0;L;;;;;N;;;;; -A401;YI SYLLABLE QIEX;Lo;0;L;;;;;N;;;;; -A402;YI SYLLABLE QIE;Lo;0;L;;;;;N;;;;; -A403;YI SYLLABLE QIEP;Lo;0;L;;;;;N;;;;; -A404;YI SYLLABLE QUOT;Lo;0;L;;;;;N;;;;; -A405;YI SYLLABLE QUOX;Lo;0;L;;;;;N;;;;; -A406;YI SYLLABLE QUO;Lo;0;L;;;;;N;;;;; -A407;YI SYLLABLE QUOP;Lo;0;L;;;;;N;;;;; -A408;YI SYLLABLE QOT;Lo;0;L;;;;;N;;;;; -A409;YI SYLLABLE QOX;Lo;0;L;;;;;N;;;;; -A40A;YI SYLLABLE QO;Lo;0;L;;;;;N;;;;; -A40B;YI SYLLABLE QOP;Lo;0;L;;;;;N;;;;; -A40C;YI SYLLABLE QUT;Lo;0;L;;;;;N;;;;; -A40D;YI SYLLABLE QUX;Lo;0;L;;;;;N;;;;; -A40E;YI SYLLABLE QU;Lo;0;L;;;;;N;;;;; -A40F;YI SYLLABLE QUP;Lo;0;L;;;;;N;;;;; -A410;YI SYLLABLE QURX;Lo;0;L;;;;;N;;;;; -A411;YI SYLLABLE QUR;Lo;0;L;;;;;N;;;;; -A412;YI SYLLABLE QYT;Lo;0;L;;;;;N;;;;; -A413;YI SYLLABLE QYX;Lo;0;L;;;;;N;;;;; -A414;YI SYLLABLE QY;Lo;0;L;;;;;N;;;;; -A415;YI SYLLABLE QYP;Lo;0;L;;;;;N;;;;; -A416;YI SYLLABLE QYRX;Lo;0;L;;;;;N;;;;; -A417;YI SYLLABLE QYR;Lo;0;L;;;;;N;;;;; -A418;YI SYLLABLE JJIT;Lo;0;L;;;;;N;;;;; -A419;YI SYLLABLE JJIX;Lo;0;L;;;;;N;;;;; -A41A;YI SYLLABLE JJI;Lo;0;L;;;;;N;;;;; -A41B;YI SYLLABLE JJIP;Lo;0;L;;;;;N;;;;; -A41C;YI SYLLABLE JJIET;Lo;0;L;;;;;N;;;;; -A41D;YI SYLLABLE JJIEX;Lo;0;L;;;;;N;;;;; -A41E;YI SYLLABLE JJIE;Lo;0;L;;;;;N;;;;; -A41F;YI SYLLABLE JJIEP;Lo;0;L;;;;;N;;;;; -A420;YI SYLLABLE JJUOX;Lo;0;L;;;;;N;;;;; -A421;YI SYLLABLE JJUO;Lo;0;L;;;;;N;;;;; -A422;YI SYLLABLE JJUOP;Lo;0;L;;;;;N;;;;; -A423;YI SYLLABLE JJOT;Lo;0;L;;;;;N;;;;; -A424;YI SYLLABLE JJOX;Lo;0;L;;;;;N;;;;; -A425;YI SYLLABLE JJO;Lo;0;L;;;;;N;;;;; -A426;YI SYLLABLE JJOP;Lo;0;L;;;;;N;;;;; -A427;YI SYLLABLE JJUT;Lo;0;L;;;;;N;;;;; -A428;YI SYLLABLE JJUX;Lo;0;L;;;;;N;;;;; -A429;YI SYLLABLE JJU;Lo;0;L;;;;;N;;;;; -A42A;YI SYLLABLE JJUP;Lo;0;L;;;;;N;;;;; -A42B;YI SYLLABLE JJURX;Lo;0;L;;;;;N;;;;; -A42C;YI SYLLABLE JJUR;Lo;0;L;;;;;N;;;;; -A42D;YI SYLLABLE JJYT;Lo;0;L;;;;;N;;;;; -A42E;YI SYLLABLE JJYX;Lo;0;L;;;;;N;;;;; -A42F;YI SYLLABLE JJY;Lo;0;L;;;;;N;;;;; -A430;YI SYLLABLE JJYP;Lo;0;L;;;;;N;;;;; -A431;YI SYLLABLE NJIT;Lo;0;L;;;;;N;;;;; -A432;YI SYLLABLE NJIX;Lo;0;L;;;;;N;;;;; -A433;YI SYLLABLE NJI;Lo;0;L;;;;;N;;;;; -A434;YI SYLLABLE NJIP;Lo;0;L;;;;;N;;;;; -A435;YI SYLLABLE NJIET;Lo;0;L;;;;;N;;;;; -A436;YI SYLLABLE NJIEX;Lo;0;L;;;;;N;;;;; -A437;YI SYLLABLE NJIE;Lo;0;L;;;;;N;;;;; -A438;YI SYLLABLE NJIEP;Lo;0;L;;;;;N;;;;; -A439;YI SYLLABLE NJUOX;Lo;0;L;;;;;N;;;;; -A43A;YI SYLLABLE NJUO;Lo;0;L;;;;;N;;;;; -A43B;YI SYLLABLE NJOT;Lo;0;L;;;;;N;;;;; -A43C;YI SYLLABLE NJOX;Lo;0;L;;;;;N;;;;; -A43D;YI SYLLABLE NJO;Lo;0;L;;;;;N;;;;; -A43E;YI SYLLABLE NJOP;Lo;0;L;;;;;N;;;;; -A43F;YI SYLLABLE NJUX;Lo;0;L;;;;;N;;;;; -A440;YI SYLLABLE NJU;Lo;0;L;;;;;N;;;;; -A441;YI SYLLABLE NJUP;Lo;0;L;;;;;N;;;;; -A442;YI SYLLABLE NJURX;Lo;0;L;;;;;N;;;;; -A443;YI SYLLABLE NJUR;Lo;0;L;;;;;N;;;;; -A444;YI SYLLABLE NJYT;Lo;0;L;;;;;N;;;;; -A445;YI SYLLABLE NJYX;Lo;0;L;;;;;N;;;;; -A446;YI SYLLABLE NJY;Lo;0;L;;;;;N;;;;; -A447;YI SYLLABLE NJYP;Lo;0;L;;;;;N;;;;; -A448;YI SYLLABLE NJYRX;Lo;0;L;;;;;N;;;;; -A449;YI SYLLABLE NJYR;Lo;0;L;;;;;N;;;;; -A44A;YI SYLLABLE NYIT;Lo;0;L;;;;;N;;;;; -A44B;YI SYLLABLE NYIX;Lo;0;L;;;;;N;;;;; -A44C;YI SYLLABLE NYI;Lo;0;L;;;;;N;;;;; -A44D;YI SYLLABLE NYIP;Lo;0;L;;;;;N;;;;; -A44E;YI SYLLABLE NYIET;Lo;0;L;;;;;N;;;;; -A44F;YI SYLLABLE NYIEX;Lo;0;L;;;;;N;;;;; -A450;YI SYLLABLE NYIE;Lo;0;L;;;;;N;;;;; -A451;YI SYLLABLE NYIEP;Lo;0;L;;;;;N;;;;; -A452;YI SYLLABLE NYUOX;Lo;0;L;;;;;N;;;;; -A453;YI SYLLABLE NYUO;Lo;0;L;;;;;N;;;;; -A454;YI SYLLABLE NYUOP;Lo;0;L;;;;;N;;;;; -A455;YI SYLLABLE NYOT;Lo;0;L;;;;;N;;;;; -A456;YI SYLLABLE NYOX;Lo;0;L;;;;;N;;;;; -A457;YI SYLLABLE NYO;Lo;0;L;;;;;N;;;;; -A458;YI SYLLABLE NYOP;Lo;0;L;;;;;N;;;;; -A459;YI SYLLABLE NYUT;Lo;0;L;;;;;N;;;;; -A45A;YI SYLLABLE NYUX;Lo;0;L;;;;;N;;;;; -A45B;YI SYLLABLE NYU;Lo;0;L;;;;;N;;;;; -A45C;YI SYLLABLE NYUP;Lo;0;L;;;;;N;;;;; -A45D;YI SYLLABLE XIT;Lo;0;L;;;;;N;;;;; -A45E;YI SYLLABLE XIX;Lo;0;L;;;;;N;;;;; -A45F;YI SYLLABLE XI;Lo;0;L;;;;;N;;;;; -A460;YI SYLLABLE XIP;Lo;0;L;;;;;N;;;;; -A461;YI SYLLABLE XIET;Lo;0;L;;;;;N;;;;; -A462;YI SYLLABLE XIEX;Lo;0;L;;;;;N;;;;; -A463;YI SYLLABLE XIE;Lo;0;L;;;;;N;;;;; -A464;YI SYLLABLE XIEP;Lo;0;L;;;;;N;;;;; -A465;YI SYLLABLE XUOX;Lo;0;L;;;;;N;;;;; -A466;YI SYLLABLE XUO;Lo;0;L;;;;;N;;;;; -A467;YI SYLLABLE XOT;Lo;0;L;;;;;N;;;;; -A468;YI SYLLABLE XOX;Lo;0;L;;;;;N;;;;; -A469;YI SYLLABLE XO;Lo;0;L;;;;;N;;;;; -A46A;YI SYLLABLE XOP;Lo;0;L;;;;;N;;;;; -A46B;YI SYLLABLE XYT;Lo;0;L;;;;;N;;;;; -A46C;YI SYLLABLE XYX;Lo;0;L;;;;;N;;;;; -A46D;YI SYLLABLE XY;Lo;0;L;;;;;N;;;;; -A46E;YI SYLLABLE XYP;Lo;0;L;;;;;N;;;;; -A46F;YI SYLLABLE XYRX;Lo;0;L;;;;;N;;;;; -A470;YI SYLLABLE XYR;Lo;0;L;;;;;N;;;;; -A471;YI SYLLABLE YIT;Lo;0;L;;;;;N;;;;; -A472;YI SYLLABLE YIX;Lo;0;L;;;;;N;;;;; -A473;YI SYLLABLE YI;Lo;0;L;;;;;N;;;;; -A474;YI SYLLABLE YIP;Lo;0;L;;;;;N;;;;; -A475;YI SYLLABLE YIET;Lo;0;L;;;;;N;;;;; -A476;YI SYLLABLE YIEX;Lo;0;L;;;;;N;;;;; -A477;YI SYLLABLE YIE;Lo;0;L;;;;;N;;;;; -A478;YI SYLLABLE YIEP;Lo;0;L;;;;;N;;;;; -A479;YI SYLLABLE YUOT;Lo;0;L;;;;;N;;;;; -A47A;YI SYLLABLE YUOX;Lo;0;L;;;;;N;;;;; -A47B;YI SYLLABLE YUO;Lo;0;L;;;;;N;;;;; -A47C;YI SYLLABLE YUOP;Lo;0;L;;;;;N;;;;; -A47D;YI SYLLABLE YOT;Lo;0;L;;;;;N;;;;; -A47E;YI SYLLABLE YOX;Lo;0;L;;;;;N;;;;; -A47F;YI SYLLABLE YO;Lo;0;L;;;;;N;;;;; -A480;YI SYLLABLE YOP;Lo;0;L;;;;;N;;;;; -A481;YI SYLLABLE YUT;Lo;0;L;;;;;N;;;;; -A482;YI SYLLABLE YUX;Lo;0;L;;;;;N;;;;; -A483;YI SYLLABLE YU;Lo;0;L;;;;;N;;;;; -A484;YI SYLLABLE YUP;Lo;0;L;;;;;N;;;;; -A485;YI SYLLABLE YURX;Lo;0;L;;;;;N;;;;; -A486;YI SYLLABLE YUR;Lo;0;L;;;;;N;;;;; -A487;YI SYLLABLE YYT;Lo;0;L;;;;;N;;;;; -A488;YI SYLLABLE YYX;Lo;0;L;;;;;N;;;;; -A489;YI SYLLABLE YY;Lo;0;L;;;;;N;;;;; -A48A;YI SYLLABLE YYP;Lo;0;L;;;;;N;;;;; -A48B;YI SYLLABLE YYRX;Lo;0;L;;;;;N;;;;; -A48C;YI SYLLABLE YYR;Lo;0;L;;;;;N;;;;; -A490;YI RADICAL QOT;So;0;ON;;;;;N;;;;; -A491;YI RADICAL LI;So;0;ON;;;;;N;;;;; -A492;YI RADICAL KIT;So;0;ON;;;;;N;;;;; -A493;YI RADICAL NYIP;So;0;ON;;;;;N;;;;; -A494;YI RADICAL CYP;So;0;ON;;;;;N;;;;; -A495;YI RADICAL SSI;So;0;ON;;;;;N;;;;; -A496;YI RADICAL GGOP;So;0;ON;;;;;N;;;;; -A497;YI RADICAL GEP;So;0;ON;;;;;N;;;;; -A498;YI RADICAL MI;So;0;ON;;;;;N;;;;; -A499;YI RADICAL HXIT;So;0;ON;;;;;N;;;;; -A49A;YI RADICAL LYR;So;0;ON;;;;;N;;;;; -A49B;YI RADICAL BBUT;So;0;ON;;;;;N;;;;; -A49C;YI RADICAL MOP;So;0;ON;;;;;N;;;;; -A49D;YI RADICAL YO;So;0;ON;;;;;N;;;;; -A49E;YI RADICAL PUT;So;0;ON;;;;;N;;;;; -A49F;YI RADICAL HXUO;So;0;ON;;;;;N;;;;; -A4A0;YI RADICAL TAT;So;0;ON;;;;;N;;;;; -A4A1;YI RADICAL GA;So;0;ON;;;;;N;;;;; -A4A2;YI RADICAL ZUP;So;0;ON;;;;;N;;;;; -A4A3;YI RADICAL CYT;So;0;ON;;;;;N;;;;; -A4A4;YI RADICAL DDUR;So;0;ON;;;;;N;;;;; -A4A5;YI RADICAL BUR;So;0;ON;;;;;N;;;;; -A4A6;YI RADICAL GGUO;So;0;ON;;;;;N;;;;; -A4A7;YI RADICAL NYOP;So;0;ON;;;;;N;;;;; -A4A8;YI RADICAL TU;So;0;ON;;;;;N;;;;; -A4A9;YI RADICAL OP;So;0;ON;;;;;N;;;;; -A4AA;YI RADICAL JJUT;So;0;ON;;;;;N;;;;; -A4AB;YI RADICAL ZOT;So;0;ON;;;;;N;;;;; -A4AC;YI RADICAL PYT;So;0;ON;;;;;N;;;;; -A4AD;YI RADICAL HMO;So;0;ON;;;;;N;;;;; -A4AE;YI RADICAL YIT;So;0;ON;;;;;N;;;;; -A4AF;YI RADICAL VUR;So;0;ON;;;;;N;;;;; -A4B0;YI RADICAL SHY;So;0;ON;;;;;N;;;;; -A4B1;YI RADICAL VEP;So;0;ON;;;;;N;;;;; -A4B2;YI RADICAL ZA;So;0;ON;;;;;N;;;;; -A4B3;YI RADICAL JO;So;0;ON;;;;;N;;;;; -A4B4;YI RADICAL NZUP;So;0;ON;;;;;N;;;;; -A4B5;YI RADICAL JJY;So;0;ON;;;;;N;;;;; -A4B6;YI RADICAL GOT;So;0;ON;;;;;N;;;;; -A4B7;YI RADICAL JJIE;So;0;ON;;;;;N;;;;; -A4B8;YI RADICAL WO;So;0;ON;;;;;N;;;;; -A4B9;YI RADICAL DU;So;0;ON;;;;;N;;;;; -A4BA;YI RADICAL SHUR;So;0;ON;;;;;N;;;;; -A4BB;YI RADICAL LIE;So;0;ON;;;;;N;;;;; -A4BC;YI RADICAL CY;So;0;ON;;;;;N;;;;; -A4BD;YI RADICAL CUOP;So;0;ON;;;;;N;;;;; -A4BE;YI RADICAL CIP;So;0;ON;;;;;N;;;;; -A4BF;YI RADICAL HXOP;So;0;ON;;;;;N;;;;; -A4C0;YI RADICAL SHAT;So;0;ON;;;;;N;;;;; -A4C1;YI RADICAL ZUR;So;0;ON;;;;;N;;;;; -A4C2;YI RADICAL SHOP;So;0;ON;;;;;N;;;;; -A4C3;YI RADICAL CHE;So;0;ON;;;;;N;;;;; -A4C4;YI RADICAL ZZIET;So;0;ON;;;;;N;;;;; -A4C5;YI RADICAL NBIE;So;0;ON;;;;;N;;;;; -A4C6;YI RADICAL KE;So;0;ON;;;;;N;;;;; -A4D0;LISU LETTER BA;Lo;0;L;;;;;N;;;;; -A4D1;LISU LETTER PA;Lo;0;L;;;;;N;;;;; -A4D2;LISU LETTER PHA;Lo;0;L;;;;;N;;;;; -A4D3;LISU LETTER DA;Lo;0;L;;;;;N;;;;; -A4D4;LISU LETTER TA;Lo;0;L;;;;;N;;;;; -A4D5;LISU LETTER THA;Lo;0;L;;;;;N;;;;; -A4D6;LISU LETTER GA;Lo;0;L;;;;;N;;;;; -A4D7;LISU LETTER KA;Lo;0;L;;;;;N;;;;; -A4D8;LISU LETTER KHA;Lo;0;L;;;;;N;;;;; -A4D9;LISU LETTER JA;Lo;0;L;;;;;N;;;;; -A4DA;LISU LETTER CA;Lo;0;L;;;;;N;;;;; -A4DB;LISU LETTER CHA;Lo;0;L;;;;;N;;;;; -A4DC;LISU LETTER DZA;Lo;0;L;;;;;N;;;;; -A4DD;LISU LETTER TSA;Lo;0;L;;;;;N;;;;; -A4DE;LISU LETTER TSHA;Lo;0;L;;;;;N;;;;; -A4DF;LISU LETTER MA;Lo;0;L;;;;;N;;;;; -A4E0;LISU LETTER NA;Lo;0;L;;;;;N;;;;; -A4E1;LISU LETTER LA;Lo;0;L;;;;;N;;;;; -A4E2;LISU LETTER SA;Lo;0;L;;;;;N;;;;; -A4E3;LISU LETTER ZHA;Lo;0;L;;;;;N;;;;; -A4E4;LISU LETTER ZA;Lo;0;L;;;;;N;;;;; -A4E5;LISU LETTER NGA;Lo;0;L;;;;;N;;;;; -A4E6;LISU LETTER HA;Lo;0;L;;;;;N;;;;; -A4E7;LISU LETTER XA;Lo;0;L;;;;;N;;;;; -A4E8;LISU LETTER HHA;Lo;0;L;;;;;N;;;;; -A4E9;LISU LETTER FA;Lo;0;L;;;;;N;;;;; -A4EA;LISU LETTER WA;Lo;0;L;;;;;N;;;;; -A4EB;LISU LETTER SHA;Lo;0;L;;;;;N;;;;; -A4EC;LISU LETTER YA;Lo;0;L;;;;;N;;;;; -A4ED;LISU LETTER GHA;Lo;0;L;;;;;N;;;;; -A4EE;LISU LETTER A;Lo;0;L;;;;;N;;;;; -A4EF;LISU LETTER AE;Lo;0;L;;;;;N;;;;; -A4F0;LISU LETTER E;Lo;0;L;;;;;N;;;;; -A4F1;LISU LETTER EU;Lo;0;L;;;;;N;;;;; -A4F2;LISU LETTER I;Lo;0;L;;;;;N;;;;; -A4F3;LISU LETTER O;Lo;0;L;;;;;N;;;;; -A4F4;LISU LETTER U;Lo;0;L;;;;;N;;;;; -A4F5;LISU LETTER UE;Lo;0;L;;;;;N;;;;; -A4F6;LISU LETTER UH;Lo;0;L;;;;;N;;;;; -A4F7;LISU LETTER OE;Lo;0;L;;;;;N;;;;; -A4F8;LISU LETTER TONE MYA TI;Lm;0;L;;;;;N;;;;; -A4F9;LISU LETTER TONE NA PO;Lm;0;L;;;;;N;;;;; -A4FA;LISU LETTER TONE MYA CYA;Lm;0;L;;;;;N;;;;; -A4FB;LISU LETTER TONE MYA BO;Lm;0;L;;;;;N;;;;; -A4FC;LISU LETTER TONE MYA NA;Lm;0;L;;;;;N;;;;; -A4FD;LISU LETTER TONE MYA JEU;Lm;0;L;;;;;N;;;;; -A4FE;LISU PUNCTUATION COMMA;Po;0;L;;;;;N;;;;; -A4FF;LISU PUNCTUATION FULL STOP;Po;0;L;;;;;N;;;;; -A500;VAI SYLLABLE EE;Lo;0;L;;;;;N;;;;; -A501;VAI SYLLABLE EEN;Lo;0;L;;;;;N;;;;; -A502;VAI SYLLABLE HEE;Lo;0;L;;;;;N;;;;; -A503;VAI SYLLABLE WEE;Lo;0;L;;;;;N;;;;; -A504;VAI SYLLABLE WEEN;Lo;0;L;;;;;N;;;;; -A505;VAI SYLLABLE PEE;Lo;0;L;;;;;N;;;;; -A506;VAI SYLLABLE BHEE;Lo;0;L;;;;;N;;;;; -A507;VAI SYLLABLE BEE;Lo;0;L;;;;;N;;;;; -A508;VAI SYLLABLE MBEE;Lo;0;L;;;;;N;;;;; -A509;VAI SYLLABLE KPEE;Lo;0;L;;;;;N;;;;; -A50A;VAI SYLLABLE MGBEE;Lo;0;L;;;;;N;;;;; -A50B;VAI SYLLABLE GBEE;Lo;0;L;;;;;N;;;;; -A50C;VAI SYLLABLE FEE;Lo;0;L;;;;;N;;;;; -A50D;VAI SYLLABLE VEE;Lo;0;L;;;;;N;;;;; -A50E;VAI SYLLABLE TEE;Lo;0;L;;;;;N;;;;; -A50F;VAI SYLLABLE THEE;Lo;0;L;;;;;N;;;;; -A510;VAI SYLLABLE DHEE;Lo;0;L;;;;;N;;;;; -A511;VAI SYLLABLE DHHEE;Lo;0;L;;;;;N;;;;; -A512;VAI SYLLABLE LEE;Lo;0;L;;;;;N;;;;; -A513;VAI SYLLABLE REE;Lo;0;L;;;;;N;;;;; -A514;VAI SYLLABLE DEE;Lo;0;L;;;;;N;;;;; -A515;VAI SYLLABLE NDEE;Lo;0;L;;;;;N;;;;; -A516;VAI SYLLABLE SEE;Lo;0;L;;;;;N;;;;; -A517;VAI SYLLABLE SHEE;Lo;0;L;;;;;N;;;;; -A518;VAI SYLLABLE ZEE;Lo;0;L;;;;;N;;;;; -A519;VAI SYLLABLE ZHEE;Lo;0;L;;;;;N;;;;; -A51A;VAI SYLLABLE CEE;Lo;0;L;;;;;N;;;;; -A51B;VAI SYLLABLE JEE;Lo;0;L;;;;;N;;;;; -A51C;VAI SYLLABLE NJEE;Lo;0;L;;;;;N;;;;; -A51D;VAI SYLLABLE YEE;Lo;0;L;;;;;N;;;;; -A51E;VAI SYLLABLE KEE;Lo;0;L;;;;;N;;;;; -A51F;VAI SYLLABLE NGGEE;Lo;0;L;;;;;N;;;;; -A520;VAI SYLLABLE GEE;Lo;0;L;;;;;N;;;;; -A521;VAI SYLLABLE MEE;Lo;0;L;;;;;N;;;;; -A522;VAI SYLLABLE NEE;Lo;0;L;;;;;N;;;;; -A523;VAI SYLLABLE NYEE;Lo;0;L;;;;;N;;;;; -A524;VAI SYLLABLE I;Lo;0;L;;;;;N;;;;; -A525;VAI SYLLABLE IN;Lo;0;L;;;;;N;;;;; -A526;VAI SYLLABLE HI;Lo;0;L;;;;;N;;;;; -A527;VAI SYLLABLE HIN;Lo;0;L;;;;;N;;;;; -A528;VAI SYLLABLE WI;Lo;0;L;;;;;N;;;;; -A529;VAI SYLLABLE WIN;Lo;0;L;;;;;N;;;;; -A52A;VAI SYLLABLE PI;Lo;0;L;;;;;N;;;;; -A52B;VAI SYLLABLE BHI;Lo;0;L;;;;;N;;;;; -A52C;VAI SYLLABLE BI;Lo;0;L;;;;;N;;;;; -A52D;VAI SYLLABLE MBI;Lo;0;L;;;;;N;;;;; -A52E;VAI SYLLABLE KPI;Lo;0;L;;;;;N;;;;; -A52F;VAI SYLLABLE MGBI;Lo;0;L;;;;;N;;;;; -A530;VAI SYLLABLE GBI;Lo;0;L;;;;;N;;;;; -A531;VAI SYLLABLE FI;Lo;0;L;;;;;N;;;;; -A532;VAI SYLLABLE VI;Lo;0;L;;;;;N;;;;; -A533;VAI SYLLABLE TI;Lo;0;L;;;;;N;;;;; -A534;VAI SYLLABLE THI;Lo;0;L;;;;;N;;;;; -A535;VAI SYLLABLE DHI;Lo;0;L;;;;;N;;;;; -A536;VAI SYLLABLE DHHI;Lo;0;L;;;;;N;;;;; -A537;VAI SYLLABLE LI;Lo;0;L;;;;;N;;;;; -A538;VAI SYLLABLE RI;Lo;0;L;;;;;N;;;;; -A539;VAI SYLLABLE DI;Lo;0;L;;;;;N;;;;; -A53A;VAI SYLLABLE NDI;Lo;0;L;;;;;N;;;;; -A53B;VAI SYLLABLE SI;Lo;0;L;;;;;N;;;;; -A53C;VAI SYLLABLE SHI;Lo;0;L;;;;;N;;;;; -A53D;VAI SYLLABLE ZI;Lo;0;L;;;;;N;;;;; -A53E;VAI SYLLABLE ZHI;Lo;0;L;;;;;N;;;;; -A53F;VAI SYLLABLE CI;Lo;0;L;;;;;N;;;;; -A540;VAI SYLLABLE JI;Lo;0;L;;;;;N;;;;; -A541;VAI SYLLABLE NJI;Lo;0;L;;;;;N;;;;; -A542;VAI SYLLABLE YI;Lo;0;L;;;;;N;;;;; -A543;VAI SYLLABLE KI;Lo;0;L;;;;;N;;;;; -A544;VAI SYLLABLE NGGI;Lo;0;L;;;;;N;;;;; -A545;VAI SYLLABLE GI;Lo;0;L;;;;;N;;;;; -A546;VAI SYLLABLE MI;Lo;0;L;;;;;N;;;;; -A547;VAI SYLLABLE NI;Lo;0;L;;;;;N;;;;; -A548;VAI SYLLABLE NYI;Lo;0;L;;;;;N;;;;; -A549;VAI SYLLABLE A;Lo;0;L;;;;;N;;;;; -A54A;VAI SYLLABLE AN;Lo;0;L;;;;;N;;;;; -A54B;VAI SYLLABLE NGAN;Lo;0;L;;;;;N;;;;; -A54C;VAI SYLLABLE HA;Lo;0;L;;;;;N;;;;; -A54D;VAI SYLLABLE HAN;Lo;0;L;;;;;N;;;;; -A54E;VAI SYLLABLE WA;Lo;0;L;;;;;N;;;;; -A54F;VAI SYLLABLE WAN;Lo;0;L;;;;;N;;;;; -A550;VAI SYLLABLE PA;Lo;0;L;;;;;N;;;;; -A551;VAI SYLLABLE BHA;Lo;0;L;;;;;N;;;;; -A552;VAI SYLLABLE BA;Lo;0;L;;;;;N;;;;; -A553;VAI SYLLABLE MBA;Lo;0;L;;;;;N;;;;; -A554;VAI SYLLABLE KPA;Lo;0;L;;;;;N;;;;; -A555;VAI SYLLABLE KPAN;Lo;0;L;;;;;N;;;;; -A556;VAI SYLLABLE MGBA;Lo;0;L;;;;;N;;;;; -A557;VAI SYLLABLE GBA;Lo;0;L;;;;;N;;;;; -A558;VAI SYLLABLE FA;Lo;0;L;;;;;N;;;;; -A559;VAI SYLLABLE VA;Lo;0;L;;;;;N;;;;; -A55A;VAI SYLLABLE TA;Lo;0;L;;;;;N;;;;; -A55B;VAI SYLLABLE THA;Lo;0;L;;;;;N;;;;; -A55C;VAI SYLLABLE DHA;Lo;0;L;;;;;N;;;;; -A55D;VAI SYLLABLE DHHA;Lo;0;L;;;;;N;;;;; -A55E;VAI SYLLABLE LA;Lo;0;L;;;;;N;;;;; -A55F;VAI SYLLABLE RA;Lo;0;L;;;;;N;;;;; -A560;VAI SYLLABLE DA;Lo;0;L;;;;;N;;;;; -A561;VAI SYLLABLE NDA;Lo;0;L;;;;;N;;;;; -A562;VAI SYLLABLE SA;Lo;0;L;;;;;N;;;;; -A563;VAI SYLLABLE SHA;Lo;0;L;;;;;N;;;;; -A564;VAI SYLLABLE ZA;Lo;0;L;;;;;N;;;;; -A565;VAI SYLLABLE ZHA;Lo;0;L;;;;;N;;;;; -A566;VAI SYLLABLE CA;Lo;0;L;;;;;N;;;;; -A567;VAI SYLLABLE JA;Lo;0;L;;;;;N;;;;; -A568;VAI SYLLABLE NJA;Lo;0;L;;;;;N;;;;; -A569;VAI SYLLABLE YA;Lo;0;L;;;;;N;;;;; -A56A;VAI SYLLABLE KA;Lo;0;L;;;;;N;;;;; -A56B;VAI SYLLABLE KAN;Lo;0;L;;;;;N;;;;; -A56C;VAI SYLLABLE NGGA;Lo;0;L;;;;;N;;;;; -A56D;VAI SYLLABLE GA;Lo;0;L;;;;;N;;;;; -A56E;VAI SYLLABLE MA;Lo;0;L;;;;;N;;;;; -A56F;VAI SYLLABLE NA;Lo;0;L;;;;;N;;;;; -A570;VAI SYLLABLE NYA;Lo;0;L;;;;;N;;;;; -A571;VAI SYLLABLE OO;Lo;0;L;;;;;N;;;;; -A572;VAI SYLLABLE OON;Lo;0;L;;;;;N;;;;; -A573;VAI SYLLABLE HOO;Lo;0;L;;;;;N;;;;; -A574;VAI SYLLABLE WOO;Lo;0;L;;;;;N;;;;; -A575;VAI SYLLABLE WOON;Lo;0;L;;;;;N;;;;; -A576;VAI SYLLABLE POO;Lo;0;L;;;;;N;;;;; -A577;VAI SYLLABLE BHOO;Lo;0;L;;;;;N;;;;; -A578;VAI SYLLABLE BOO;Lo;0;L;;;;;N;;;;; -A579;VAI SYLLABLE MBOO;Lo;0;L;;;;;N;;;;; -A57A;VAI SYLLABLE KPOO;Lo;0;L;;;;;N;;;;; -A57B;VAI SYLLABLE MGBOO;Lo;0;L;;;;;N;;;;; -A57C;VAI SYLLABLE GBOO;Lo;0;L;;;;;N;;;;; -A57D;VAI SYLLABLE FOO;Lo;0;L;;;;;N;;;;; -A57E;VAI SYLLABLE VOO;Lo;0;L;;;;;N;;;;; -A57F;VAI SYLLABLE TOO;Lo;0;L;;;;;N;;;;; -A580;VAI SYLLABLE THOO;Lo;0;L;;;;;N;;;;; -A581;VAI SYLLABLE DHOO;Lo;0;L;;;;;N;;;;; -A582;VAI SYLLABLE DHHOO;Lo;0;L;;;;;N;;;;; -A583;VAI SYLLABLE LOO;Lo;0;L;;;;;N;;;;; -A584;VAI SYLLABLE ROO;Lo;0;L;;;;;N;;;;; -A585;VAI SYLLABLE DOO;Lo;0;L;;;;;N;;;;; -A586;VAI SYLLABLE NDOO;Lo;0;L;;;;;N;;;;; -A587;VAI SYLLABLE SOO;Lo;0;L;;;;;N;;;;; -A588;VAI SYLLABLE SHOO;Lo;0;L;;;;;N;;;;; -A589;VAI SYLLABLE ZOO;Lo;0;L;;;;;N;;;;; -A58A;VAI SYLLABLE ZHOO;Lo;0;L;;;;;N;;;;; -A58B;VAI SYLLABLE COO;Lo;0;L;;;;;N;;;;; -A58C;VAI SYLLABLE JOO;Lo;0;L;;;;;N;;;;; -A58D;VAI SYLLABLE NJOO;Lo;0;L;;;;;N;;;;; -A58E;VAI SYLLABLE YOO;Lo;0;L;;;;;N;;;;; -A58F;VAI SYLLABLE KOO;Lo;0;L;;;;;N;;;;; -A590;VAI SYLLABLE NGGOO;Lo;0;L;;;;;N;;;;; -A591;VAI SYLLABLE GOO;Lo;0;L;;;;;N;;;;; -A592;VAI SYLLABLE MOO;Lo;0;L;;;;;N;;;;; -A593;VAI SYLLABLE NOO;Lo;0;L;;;;;N;;;;; -A594;VAI SYLLABLE NYOO;Lo;0;L;;;;;N;;;;; -A595;VAI SYLLABLE U;Lo;0;L;;;;;N;;;;; -A596;VAI SYLLABLE UN;Lo;0;L;;;;;N;;;;; -A597;VAI SYLLABLE HU;Lo;0;L;;;;;N;;;;; -A598;VAI SYLLABLE HUN;Lo;0;L;;;;;N;;;;; -A599;VAI SYLLABLE WU;Lo;0;L;;;;;N;;;;; -A59A;VAI SYLLABLE WUN;Lo;0;L;;;;;N;;;;; -A59B;VAI SYLLABLE PU;Lo;0;L;;;;;N;;;;; -A59C;VAI SYLLABLE BHU;Lo;0;L;;;;;N;;;;; -A59D;VAI SYLLABLE BU;Lo;0;L;;;;;N;;;;; -A59E;VAI SYLLABLE MBU;Lo;0;L;;;;;N;;;;; -A59F;VAI SYLLABLE KPU;Lo;0;L;;;;;N;;;;; -A5A0;VAI SYLLABLE MGBU;Lo;0;L;;;;;N;;;;; -A5A1;VAI SYLLABLE GBU;Lo;0;L;;;;;N;;;;; -A5A2;VAI SYLLABLE FU;Lo;0;L;;;;;N;;;;; -A5A3;VAI SYLLABLE VU;Lo;0;L;;;;;N;;;;; -A5A4;VAI SYLLABLE TU;Lo;0;L;;;;;N;;;;; -A5A5;VAI SYLLABLE THU;Lo;0;L;;;;;N;;;;; -A5A6;VAI SYLLABLE DHU;Lo;0;L;;;;;N;;;;; -A5A7;VAI SYLLABLE DHHU;Lo;0;L;;;;;N;;;;; -A5A8;VAI SYLLABLE LU;Lo;0;L;;;;;N;;;;; -A5A9;VAI SYLLABLE RU;Lo;0;L;;;;;N;;;;; -A5AA;VAI SYLLABLE DU;Lo;0;L;;;;;N;;;;; -A5AB;VAI SYLLABLE NDU;Lo;0;L;;;;;N;;;;; -A5AC;VAI SYLLABLE SU;Lo;0;L;;;;;N;;;;; -A5AD;VAI SYLLABLE SHU;Lo;0;L;;;;;N;;;;; -A5AE;VAI SYLLABLE ZU;Lo;0;L;;;;;N;;;;; -A5AF;VAI SYLLABLE ZHU;Lo;0;L;;;;;N;;;;; -A5B0;VAI SYLLABLE CU;Lo;0;L;;;;;N;;;;; -A5B1;VAI SYLLABLE JU;Lo;0;L;;;;;N;;;;; -A5B2;VAI SYLLABLE NJU;Lo;0;L;;;;;N;;;;; -A5B3;VAI SYLLABLE YU;Lo;0;L;;;;;N;;;;; -A5B4;VAI SYLLABLE KU;Lo;0;L;;;;;N;;;;; -A5B5;VAI SYLLABLE NGGU;Lo;0;L;;;;;N;;;;; -A5B6;VAI SYLLABLE GU;Lo;0;L;;;;;N;;;;; -A5B7;VAI SYLLABLE MU;Lo;0;L;;;;;N;;;;; -A5B8;VAI SYLLABLE NU;Lo;0;L;;;;;N;;;;; -A5B9;VAI SYLLABLE NYU;Lo;0;L;;;;;N;;;;; -A5BA;VAI SYLLABLE O;Lo;0;L;;;;;N;;;;; -A5BB;VAI SYLLABLE ON;Lo;0;L;;;;;N;;;;; -A5BC;VAI SYLLABLE NGON;Lo;0;L;;;;;N;;;;; -A5BD;VAI SYLLABLE HO;Lo;0;L;;;;;N;;;;; -A5BE;VAI SYLLABLE HON;Lo;0;L;;;;;N;;;;; -A5BF;VAI SYLLABLE WO;Lo;0;L;;;;;N;;;;; -A5C0;VAI SYLLABLE WON;Lo;0;L;;;;;N;;;;; -A5C1;VAI SYLLABLE PO;Lo;0;L;;;;;N;;;;; -A5C2;VAI SYLLABLE BHO;Lo;0;L;;;;;N;;;;; -A5C3;VAI SYLLABLE BO;Lo;0;L;;;;;N;;;;; -A5C4;VAI SYLLABLE MBO;Lo;0;L;;;;;N;;;;; -A5C5;VAI SYLLABLE KPO;Lo;0;L;;;;;N;;;;; -A5C6;VAI SYLLABLE MGBO;Lo;0;L;;;;;N;;;;; -A5C7;VAI SYLLABLE GBO;Lo;0;L;;;;;N;;;;; -A5C8;VAI SYLLABLE GBON;Lo;0;L;;;;;N;;;;; -A5C9;VAI SYLLABLE FO;Lo;0;L;;;;;N;;;;; -A5CA;VAI SYLLABLE VO;Lo;0;L;;;;;N;;;;; -A5CB;VAI SYLLABLE TO;Lo;0;L;;;;;N;;;;; -A5CC;VAI SYLLABLE THO;Lo;0;L;;;;;N;;;;; -A5CD;VAI SYLLABLE DHO;Lo;0;L;;;;;N;;;;; -A5CE;VAI SYLLABLE DHHO;Lo;0;L;;;;;N;;;;; -A5CF;VAI SYLLABLE LO;Lo;0;L;;;;;N;;;;; -A5D0;VAI SYLLABLE RO;Lo;0;L;;;;;N;;;;; -A5D1;VAI SYLLABLE DO;Lo;0;L;;;;;N;;;;; -A5D2;VAI SYLLABLE NDO;Lo;0;L;;;;;N;;;;; -A5D3;VAI SYLLABLE SO;Lo;0;L;;;;;N;;;;; -A5D4;VAI SYLLABLE SHO;Lo;0;L;;;;;N;;;;; -A5D5;VAI SYLLABLE ZO;Lo;0;L;;;;;N;;;;; -A5D6;VAI SYLLABLE ZHO;Lo;0;L;;;;;N;;;;; -A5D7;VAI SYLLABLE CO;Lo;0;L;;;;;N;;;;; -A5D8;VAI SYLLABLE JO;Lo;0;L;;;;;N;;;;; -A5D9;VAI SYLLABLE NJO;Lo;0;L;;;;;N;;;;; -A5DA;VAI SYLLABLE YO;Lo;0;L;;;;;N;;;;; -A5DB;VAI SYLLABLE KO;Lo;0;L;;;;;N;;;;; -A5DC;VAI SYLLABLE NGGO;Lo;0;L;;;;;N;;;;; -A5DD;VAI SYLLABLE GO;Lo;0;L;;;;;N;;;;; -A5DE;VAI SYLLABLE MO;Lo;0;L;;;;;N;;;;; -A5DF;VAI SYLLABLE NO;Lo;0;L;;;;;N;;;;; -A5E0;VAI SYLLABLE NYO;Lo;0;L;;;;;N;;;;; -A5E1;VAI SYLLABLE E;Lo;0;L;;;;;N;;;;; -A5E2;VAI SYLLABLE EN;Lo;0;L;;;;;N;;;;; -A5E3;VAI SYLLABLE NGEN;Lo;0;L;;;;;N;;;;; -A5E4;VAI SYLLABLE HE;Lo;0;L;;;;;N;;;;; -A5E5;VAI SYLLABLE HEN;Lo;0;L;;;;;N;;;;; -A5E6;VAI SYLLABLE WE;Lo;0;L;;;;;N;;;;; -A5E7;VAI SYLLABLE WEN;Lo;0;L;;;;;N;;;;; -A5E8;VAI SYLLABLE PE;Lo;0;L;;;;;N;;;;; -A5E9;VAI SYLLABLE BHE;Lo;0;L;;;;;N;;;;; -A5EA;VAI SYLLABLE BE;Lo;0;L;;;;;N;;;;; -A5EB;VAI SYLLABLE MBE;Lo;0;L;;;;;N;;;;; -A5EC;VAI SYLLABLE KPE;Lo;0;L;;;;;N;;;;; -A5ED;VAI SYLLABLE KPEN;Lo;0;L;;;;;N;;;;; -A5EE;VAI SYLLABLE MGBE;Lo;0;L;;;;;N;;;;; -A5EF;VAI SYLLABLE GBE;Lo;0;L;;;;;N;;;;; -A5F0;VAI SYLLABLE GBEN;Lo;0;L;;;;;N;;;;; -A5F1;VAI SYLLABLE FE;Lo;0;L;;;;;N;;;;; -A5F2;VAI SYLLABLE VE;Lo;0;L;;;;;N;;;;; -A5F3;VAI SYLLABLE TE;Lo;0;L;;;;;N;;;;; -A5F4;VAI SYLLABLE THE;Lo;0;L;;;;;N;;;;; -A5F5;VAI SYLLABLE DHE;Lo;0;L;;;;;N;;;;; -A5F6;VAI SYLLABLE DHHE;Lo;0;L;;;;;N;;;;; -A5F7;VAI SYLLABLE LE;Lo;0;L;;;;;N;;;;; -A5F8;VAI SYLLABLE RE;Lo;0;L;;;;;N;;;;; -A5F9;VAI SYLLABLE DE;Lo;0;L;;;;;N;;;;; -A5FA;VAI SYLLABLE NDE;Lo;0;L;;;;;N;;;;; -A5FB;VAI SYLLABLE SE;Lo;0;L;;;;;N;;;;; -A5FC;VAI SYLLABLE SHE;Lo;0;L;;;;;N;;;;; -A5FD;VAI SYLLABLE ZE;Lo;0;L;;;;;N;;;;; -A5FE;VAI SYLLABLE ZHE;Lo;0;L;;;;;N;;;;; -A5FF;VAI SYLLABLE CE;Lo;0;L;;;;;N;;;;; -A600;VAI SYLLABLE JE;Lo;0;L;;;;;N;;;;; -A601;VAI SYLLABLE NJE;Lo;0;L;;;;;N;;;;; -A602;VAI SYLLABLE YE;Lo;0;L;;;;;N;;;;; -A603;VAI SYLLABLE KE;Lo;0;L;;;;;N;;;;; -A604;VAI SYLLABLE NGGE;Lo;0;L;;;;;N;;;;; -A605;VAI SYLLABLE NGGEN;Lo;0;L;;;;;N;;;;; -A606;VAI SYLLABLE GE;Lo;0;L;;;;;N;;;;; -A607;VAI SYLLABLE GEN;Lo;0;L;;;;;N;;;;; -A608;VAI SYLLABLE ME;Lo;0;L;;;;;N;;;;; -A609;VAI SYLLABLE NE;Lo;0;L;;;;;N;;;;; -A60A;VAI SYLLABLE NYE;Lo;0;L;;;;;N;;;;; -A60B;VAI SYLLABLE NG;Lo;0;L;;;;;N;;;;; -A60C;VAI SYLLABLE LENGTHENER;Lm;0;L;;;;;N;;;;; -A60D;VAI COMMA;Po;0;ON;;;;;N;;;;; -A60E;VAI FULL STOP;Po;0;ON;;;;;N;;;;; -A60F;VAI QUESTION MARK;Po;0;ON;;;;;N;;;;; -A610;VAI SYLLABLE NDOLE FA;Lo;0;L;;;;;N;;;;; -A611;VAI SYLLABLE NDOLE KA;Lo;0;L;;;;;N;;;;; -A612;VAI SYLLABLE NDOLE SOO;Lo;0;L;;;;;N;;;;; -A613;VAI SYMBOL FEENG;Lo;0;L;;;;;N;;;;; -A614;VAI SYMBOL KEENG;Lo;0;L;;;;;N;;;;; -A615;VAI SYMBOL TING;Lo;0;L;;;;;N;;;;; -A616;VAI SYMBOL NII;Lo;0;L;;;;;N;;;;; -A617;VAI SYMBOL BANG;Lo;0;L;;;;;N;;;;; -A618;VAI SYMBOL FAA;Lo;0;L;;;;;N;;;;; -A619;VAI SYMBOL TAA;Lo;0;L;;;;;N;;;;; -A61A;VAI SYMBOL DANG;Lo;0;L;;;;;N;;;;; -A61B;VAI SYMBOL DOONG;Lo;0;L;;;;;N;;;;; -A61C;VAI SYMBOL KUNG;Lo;0;L;;;;;N;;;;; -A61D;VAI SYMBOL TONG;Lo;0;L;;;;;N;;;;; -A61E;VAI SYMBOL DO-O;Lo;0;L;;;;;N;;;;; -A61F;VAI SYMBOL JONG;Lo;0;L;;;;;N;;;;; -A620;VAI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; -A621;VAI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; -A622;VAI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; -A623;VAI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; -A624;VAI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; -A625;VAI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; -A626;VAI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; -A627;VAI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; -A628;VAI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; -A629;VAI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; -A62A;VAI SYLLABLE NDOLE MA;Lo;0;L;;;;;N;;;;; -A62B;VAI SYLLABLE NDOLE DO;Lo;0;L;;;;;N;;;;; -A640;CYRILLIC CAPITAL LETTER ZEMLYA;Lu;0;L;;;;;N;;;;A641; -A641;CYRILLIC SMALL LETTER ZEMLYA;Ll;0;L;;;;;N;;;A640;;A640 -A642;CYRILLIC CAPITAL LETTER DZELO;Lu;0;L;;;;;N;;;;A643; -A643;CYRILLIC SMALL LETTER DZELO;Ll;0;L;;;;;N;;;A642;;A642 -A644;CYRILLIC CAPITAL LETTER REVERSED DZE;Lu;0;L;;;;;N;;;;A645; -A645;CYRILLIC SMALL LETTER REVERSED DZE;Ll;0;L;;;;;N;;;A644;;A644 -A646;CYRILLIC CAPITAL LETTER IOTA;Lu;0;L;;;;;N;;;;A647; -A647;CYRILLIC SMALL LETTER IOTA;Ll;0;L;;;;;N;;;A646;;A646 -A648;CYRILLIC CAPITAL LETTER DJERV;Lu;0;L;;;;;N;;;;A649; -A649;CYRILLIC SMALL LETTER DJERV;Ll;0;L;;;;;N;;;A648;;A648 -A64A;CYRILLIC CAPITAL LETTER MONOGRAPH UK;Lu;0;L;;;;;N;;;;A64B; -A64B;CYRILLIC SMALL LETTER MONOGRAPH UK;Ll;0;L;;;;;N;;;A64A;;A64A -A64C;CYRILLIC CAPITAL LETTER BROAD OMEGA;Lu;0;L;;;;;N;;;;A64D; -A64D;CYRILLIC SMALL LETTER BROAD OMEGA;Ll;0;L;;;;;N;;;A64C;;A64C -A64E;CYRILLIC CAPITAL LETTER NEUTRAL YER;Lu;0;L;;;;;N;;;;A64F; -A64F;CYRILLIC SMALL LETTER NEUTRAL YER;Ll;0;L;;;;;N;;;A64E;;A64E -A650;CYRILLIC CAPITAL LETTER YERU WITH BACK YER;Lu;0;L;;;;;N;;;;A651; -A651;CYRILLIC SMALL LETTER YERU WITH BACK YER;Ll;0;L;;;;;N;;;A650;;A650 -A652;CYRILLIC CAPITAL LETTER IOTIFIED YAT;Lu;0;L;;;;;N;;;;A653; -A653;CYRILLIC SMALL LETTER IOTIFIED YAT;Ll;0;L;;;;;N;;;A652;;A652 -A654;CYRILLIC CAPITAL LETTER REVERSED YU;Lu;0;L;;;;;N;;;;A655; -A655;CYRILLIC SMALL LETTER REVERSED YU;Ll;0;L;;;;;N;;;A654;;A654 -A656;CYRILLIC CAPITAL LETTER IOTIFIED A;Lu;0;L;;;;;N;;;;A657; -A657;CYRILLIC SMALL LETTER IOTIFIED A;Ll;0;L;;;;;N;;;A656;;A656 -A658;CYRILLIC CAPITAL LETTER CLOSED LITTLE YUS;Lu;0;L;;;;;N;;;;A659; -A659;CYRILLIC SMALL LETTER CLOSED LITTLE YUS;Ll;0;L;;;;;N;;;A658;;A658 -A65A;CYRILLIC CAPITAL LETTER BLENDED YUS;Lu;0;L;;;;;N;;;;A65B; -A65B;CYRILLIC SMALL LETTER BLENDED YUS;Ll;0;L;;;;;N;;;A65A;;A65A -A65C;CYRILLIC CAPITAL LETTER IOTIFIED CLOSED LITTLE YUS;Lu;0;L;;;;;N;;;;A65D; -A65D;CYRILLIC SMALL LETTER IOTIFIED CLOSED LITTLE YUS;Ll;0;L;;;;;N;;;A65C;;A65C -A65E;CYRILLIC CAPITAL LETTER YN;Lu;0;L;;;;;N;;;;A65F; -A65F;CYRILLIC SMALL LETTER YN;Ll;0;L;;;;;N;;;A65E;;A65E -A662;CYRILLIC CAPITAL LETTER SOFT DE;Lu;0;L;;;;;N;;;;A663; -A663;CYRILLIC SMALL LETTER SOFT DE;Ll;0;L;;;;;N;;;A662;;A662 -A664;CYRILLIC CAPITAL LETTER SOFT EL;Lu;0;L;;;;;N;;;;A665; -A665;CYRILLIC SMALL LETTER SOFT EL;Ll;0;L;;;;;N;;;A664;;A664 -A666;CYRILLIC CAPITAL LETTER SOFT EM;Lu;0;L;;;;;N;;;;A667; -A667;CYRILLIC SMALL LETTER SOFT EM;Ll;0;L;;;;;N;;;A666;;A666 -A668;CYRILLIC CAPITAL LETTER MONOCULAR O;Lu;0;L;;;;;N;;;;A669; -A669;CYRILLIC SMALL LETTER MONOCULAR O;Ll;0;L;;;;;N;;;A668;;A668 -A66A;CYRILLIC CAPITAL LETTER BINOCULAR O;Lu;0;L;;;;;N;;;;A66B; -A66B;CYRILLIC SMALL LETTER BINOCULAR O;Ll;0;L;;;;;N;;;A66A;;A66A -A66C;CYRILLIC CAPITAL LETTER DOUBLE MONOCULAR O;Lu;0;L;;;;;N;;;;A66D; -A66D;CYRILLIC SMALL LETTER DOUBLE MONOCULAR O;Ll;0;L;;;;;N;;;A66C;;A66C -A66E;CYRILLIC LETTER MULTIOCULAR O;Lo;0;L;;;;;N;;;;; -A66F;COMBINING CYRILLIC VZMET;Mn;230;NSM;;;;;N;;;;; -A670;COMBINING CYRILLIC TEN MILLIONS SIGN;Me;0;NSM;;;;;N;;;;; -A671;COMBINING CYRILLIC HUNDRED MILLIONS SIGN;Me;0;NSM;;;;;N;;;;; -A672;COMBINING CYRILLIC THOUSAND MILLIONS SIGN;Me;0;NSM;;;;;N;;;;; -A673;SLAVONIC ASTERISK;Po;0;ON;;;;;N;;;;; -A67C;COMBINING CYRILLIC KAVYKA;Mn;230;NSM;;;;;N;;;;; -A67D;COMBINING CYRILLIC PAYEROK;Mn;230;NSM;;;;;N;;;;; -A67E;CYRILLIC KAVYKA;Po;0;ON;;;;;N;;;;; -A67F;CYRILLIC PAYEROK;Lm;0;ON;;;;;N;;;;; -A680;CYRILLIC CAPITAL LETTER DWE;Lu;0;L;;;;;N;;;;A681; -A681;CYRILLIC SMALL LETTER DWE;Ll;0;L;;;;;N;;;A680;;A680 -A682;CYRILLIC CAPITAL LETTER DZWE;Lu;0;L;;;;;N;;;;A683; -A683;CYRILLIC SMALL LETTER DZWE;Ll;0;L;;;;;N;;;A682;;A682 -A684;CYRILLIC CAPITAL LETTER ZHWE;Lu;0;L;;;;;N;;;;A685; -A685;CYRILLIC SMALL LETTER ZHWE;Ll;0;L;;;;;N;;;A684;;A684 -A686;CYRILLIC CAPITAL LETTER CCHE;Lu;0;L;;;;;N;;;;A687; -A687;CYRILLIC SMALL LETTER CCHE;Ll;0;L;;;;;N;;;A686;;A686 -A688;CYRILLIC CAPITAL LETTER DZZE;Lu;0;L;;;;;N;;;;A689; -A689;CYRILLIC SMALL LETTER DZZE;Ll;0;L;;;;;N;;;A688;;A688 -A68A;CYRILLIC CAPITAL LETTER TE WITH MIDDLE HOOK;Lu;0;L;;;;;N;;;;A68B; -A68B;CYRILLIC SMALL LETTER TE WITH MIDDLE HOOK;Ll;0;L;;;;;N;;;A68A;;A68A -A68C;CYRILLIC CAPITAL LETTER TWE;Lu;0;L;;;;;N;;;;A68D; -A68D;CYRILLIC SMALL LETTER TWE;Ll;0;L;;;;;N;;;A68C;;A68C -A68E;CYRILLIC CAPITAL LETTER TSWE;Lu;0;L;;;;;N;;;;A68F; -A68F;CYRILLIC SMALL LETTER TSWE;Ll;0;L;;;;;N;;;A68E;;A68E -A690;CYRILLIC CAPITAL LETTER TSSE;Lu;0;L;;;;;N;;;;A691; -A691;CYRILLIC SMALL LETTER TSSE;Ll;0;L;;;;;N;;;A690;;A690 -A692;CYRILLIC CAPITAL LETTER TCHE;Lu;0;L;;;;;N;;;;A693; -A693;CYRILLIC SMALL LETTER TCHE;Ll;0;L;;;;;N;;;A692;;A692 -A694;CYRILLIC CAPITAL LETTER HWE;Lu;0;L;;;;;N;;;;A695; -A695;CYRILLIC SMALL LETTER HWE;Ll;0;L;;;;;N;;;A694;;A694 -A696;CYRILLIC CAPITAL LETTER SHWE;Lu;0;L;;;;;N;;;;A697; -A697;CYRILLIC SMALL LETTER SHWE;Ll;0;L;;;;;N;;;A696;;A696 -A6A0;BAMUM LETTER A;Lo;0;L;;;;;N;;;;; -A6A1;BAMUM LETTER KA;Lo;0;L;;;;;N;;;;; -A6A2;BAMUM LETTER U;Lo;0;L;;;;;N;;;;; -A6A3;BAMUM LETTER KU;Lo;0;L;;;;;N;;;;; -A6A4;BAMUM LETTER EE;Lo;0;L;;;;;N;;;;; -A6A5;BAMUM LETTER REE;Lo;0;L;;;;;N;;;;; -A6A6;BAMUM LETTER TAE;Lo;0;L;;;;;N;;;;; -A6A7;BAMUM LETTER O;Lo;0;L;;;;;N;;;;; -A6A8;BAMUM LETTER NYI;Lo;0;L;;;;;N;;;;; -A6A9;BAMUM LETTER I;Lo;0;L;;;;;N;;;;; -A6AA;BAMUM LETTER LA;Lo;0;L;;;;;N;;;;; -A6AB;BAMUM LETTER PA;Lo;0;L;;;;;N;;;;; -A6AC;BAMUM LETTER RII;Lo;0;L;;;;;N;;;;; -A6AD;BAMUM LETTER RIEE;Lo;0;L;;;;;N;;;;; -A6AE;BAMUM LETTER LEEEE;Lo;0;L;;;;;N;;;;; -A6AF;BAMUM LETTER MEEEE;Lo;0;L;;;;;N;;;;; -A6B0;BAMUM LETTER TAA;Lo;0;L;;;;;N;;;;; -A6B1;BAMUM LETTER NDAA;Lo;0;L;;;;;N;;;;; -A6B2;BAMUM LETTER NJAEM;Lo;0;L;;;;;N;;;;; -A6B3;BAMUM LETTER M;Lo;0;L;;;;;N;;;;; -A6B4;BAMUM LETTER SUU;Lo;0;L;;;;;N;;;;; -A6B5;BAMUM LETTER MU;Lo;0;L;;;;;N;;;;; -A6B6;BAMUM LETTER SHII;Lo;0;L;;;;;N;;;;; -A6B7;BAMUM LETTER SI;Lo;0;L;;;;;N;;;;; -A6B8;BAMUM LETTER SHEUX;Lo;0;L;;;;;N;;;;; -A6B9;BAMUM LETTER SEUX;Lo;0;L;;;;;N;;;;; -A6BA;BAMUM LETTER KYEE;Lo;0;L;;;;;N;;;;; -A6BB;BAMUM LETTER KET;Lo;0;L;;;;;N;;;;; -A6BC;BAMUM LETTER NUAE;Lo;0;L;;;;;N;;;;; -A6BD;BAMUM LETTER NU;Lo;0;L;;;;;N;;;;; -A6BE;BAMUM LETTER NJUAE;Lo;0;L;;;;;N;;;;; -A6BF;BAMUM LETTER YOQ;Lo;0;L;;;;;N;;;;; -A6C0;BAMUM LETTER SHU;Lo;0;L;;;;;N;;;;; -A6C1;BAMUM LETTER YUQ;Lo;0;L;;;;;N;;;;; -A6C2;BAMUM LETTER YA;Lo;0;L;;;;;N;;;;; -A6C3;BAMUM LETTER NSHA;Lo;0;L;;;;;N;;;;; -A6C4;BAMUM LETTER KEUX;Lo;0;L;;;;;N;;;;; -A6C5;BAMUM LETTER PEUX;Lo;0;L;;;;;N;;;;; -A6C6;BAMUM LETTER NJEE;Lo;0;L;;;;;N;;;;; -A6C7;BAMUM LETTER NTEE;Lo;0;L;;;;;N;;;;; -A6C8;BAMUM LETTER PUE;Lo;0;L;;;;;N;;;;; -A6C9;BAMUM LETTER WUE;Lo;0;L;;;;;N;;;;; -A6CA;BAMUM LETTER PEE;Lo;0;L;;;;;N;;;;; -A6CB;BAMUM LETTER FEE;Lo;0;L;;;;;N;;;;; -A6CC;BAMUM LETTER RU;Lo;0;L;;;;;N;;;;; -A6CD;BAMUM LETTER LU;Lo;0;L;;;;;N;;;;; -A6CE;BAMUM LETTER MI;Lo;0;L;;;;;N;;;;; -A6CF;BAMUM LETTER NI;Lo;0;L;;;;;N;;;;; -A6D0;BAMUM LETTER REUX;Lo;0;L;;;;;N;;;;; -A6D1;BAMUM LETTER RAE;Lo;0;L;;;;;N;;;;; -A6D2;BAMUM LETTER KEN;Lo;0;L;;;;;N;;;;; -A6D3;BAMUM LETTER NGKWAEN;Lo;0;L;;;;;N;;;;; -A6D4;BAMUM LETTER NGGA;Lo;0;L;;;;;N;;;;; -A6D5;BAMUM LETTER NGA;Lo;0;L;;;;;N;;;;; -A6D6;BAMUM LETTER SHO;Lo;0;L;;;;;N;;;;; -A6D7;BAMUM LETTER PUAE;Lo;0;L;;;;;N;;;;; -A6D8;BAMUM LETTER FU;Lo;0;L;;;;;N;;;;; -A6D9;BAMUM LETTER FOM;Lo;0;L;;;;;N;;;;; -A6DA;BAMUM LETTER WA;Lo;0;L;;;;;N;;;;; -A6DB;BAMUM LETTER NA;Lo;0;L;;;;;N;;;;; -A6DC;BAMUM LETTER LI;Lo;0;L;;;;;N;;;;; -A6DD;BAMUM LETTER PI;Lo;0;L;;;;;N;;;;; -A6DE;BAMUM LETTER LOQ;Lo;0;L;;;;;N;;;;; -A6DF;BAMUM LETTER KO;Lo;0;L;;;;;N;;;;; -A6E0;BAMUM LETTER MBEN;Lo;0;L;;;;;N;;;;; -A6E1;BAMUM LETTER REN;Lo;0;L;;;;;N;;;;; -A6E2;BAMUM LETTER MEN;Lo;0;L;;;;;N;;;;; -A6E3;BAMUM LETTER MA;Lo;0;L;;;;;N;;;;; -A6E4;BAMUM LETTER TI;Lo;0;L;;;;;N;;;;; -A6E5;BAMUM LETTER KI;Lo;0;L;;;;;N;;;;; -A6E6;BAMUM LETTER MO;Nl;0;L;;;;1;N;;;;; -A6E7;BAMUM LETTER MBAA;Nl;0;L;;;;2;N;;;;; -A6E8;BAMUM LETTER TET;Nl;0;L;;;;3;N;;;;; -A6E9;BAMUM LETTER KPA;Nl;0;L;;;;4;N;;;;; -A6EA;BAMUM LETTER TEN;Nl;0;L;;;;5;N;;;;; -A6EB;BAMUM LETTER NTUU;Nl;0;L;;;;6;N;;;;; -A6EC;BAMUM LETTER SAMBA;Nl;0;L;;;;7;N;;;;; -A6ED;BAMUM LETTER FAAMAE;Nl;0;L;;;;8;N;;;;; -A6EE;BAMUM LETTER KOVUU;Nl;0;L;;;;9;N;;;;; -A6EF;BAMUM LETTER KOGHOM;Nl;0;L;;;;0;N;;;;; -A6F0;BAMUM COMBINING MARK KOQNDON;Mn;230;NSM;;;;;N;;;;; -A6F1;BAMUM COMBINING MARK TUKWENTIS;Mn;230;NSM;;;;;N;;;;; -A6F2;BAMUM NJAEMLI;Po;0;L;;;;;N;;;;; -A6F3;BAMUM FULL STOP;Po;0;L;;;;;N;;;;; -A6F4;BAMUM COLON;Po;0;L;;;;;N;;;;; -A6F5;BAMUM COMMA;Po;0;L;;;;;N;;;;; -A6F6;BAMUM SEMICOLON;Po;0;L;;;;;N;;;;; -A6F7;BAMUM QUESTION MARK;Po;0;L;;;;;N;;;;; -A700;MODIFIER LETTER CHINESE TONE YIN PING;Sk;0;ON;;;;;N;;;;; -A701;MODIFIER LETTER CHINESE TONE YANG PING;Sk;0;ON;;;;;N;;;;; -A702;MODIFIER LETTER CHINESE TONE YIN SHANG;Sk;0;ON;;;;;N;;;;; -A703;MODIFIER LETTER CHINESE TONE YANG SHANG;Sk;0;ON;;;;;N;;;;; -A704;MODIFIER LETTER CHINESE TONE YIN QU;Sk;0;ON;;;;;N;;;;; -A705;MODIFIER LETTER CHINESE TONE YANG QU;Sk;0;ON;;;;;N;;;;; -A706;MODIFIER LETTER CHINESE TONE YIN RU;Sk;0;ON;;;;;N;;;;; -A707;MODIFIER LETTER CHINESE TONE YANG RU;Sk;0;ON;;;;;N;;;;; -A708;MODIFIER LETTER EXTRA-HIGH DOTTED TONE BAR;Sk;0;ON;;;;;N;;;;; -A709;MODIFIER LETTER HIGH DOTTED TONE BAR;Sk;0;ON;;;;;N;;;;; -A70A;MODIFIER LETTER MID DOTTED TONE BAR;Sk;0;ON;;;;;N;;;;; -A70B;MODIFIER LETTER LOW DOTTED TONE BAR;Sk;0;ON;;;;;N;;;;; -A70C;MODIFIER LETTER EXTRA-LOW DOTTED TONE BAR;Sk;0;ON;;;;;N;;;;; -A70D;MODIFIER LETTER EXTRA-HIGH DOTTED LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;; -A70E;MODIFIER LETTER HIGH DOTTED LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;; -A70F;MODIFIER LETTER MID DOTTED LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;; -A710;MODIFIER LETTER LOW DOTTED LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;; -A711;MODIFIER LETTER EXTRA-LOW DOTTED LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;; -A712;MODIFIER LETTER EXTRA-HIGH LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;; -A713;MODIFIER LETTER HIGH LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;; -A714;MODIFIER LETTER MID LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;; -A715;MODIFIER LETTER LOW LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;; -A716;MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;; -A717;MODIFIER LETTER DOT VERTICAL BAR;Lm;0;ON;;;;;N;;;;; -A718;MODIFIER LETTER DOT SLASH;Lm;0;ON;;;;;N;;;;; -A719;MODIFIER LETTER DOT HORIZONTAL BAR;Lm;0;ON;;;;;N;;;;; -A71A;MODIFIER LETTER LOWER RIGHT CORNER ANGLE;Lm;0;ON;;;;;N;;;;; -A71B;MODIFIER LETTER RAISED UP ARROW;Lm;0;ON;;;;;N;;;;; -A71C;MODIFIER LETTER RAISED DOWN ARROW;Lm;0;ON;;;;;N;;;;; -A71D;MODIFIER LETTER RAISED EXCLAMATION MARK;Lm;0;ON;;;;;N;;;;; -A71E;MODIFIER LETTER RAISED INVERTED EXCLAMATION MARK;Lm;0;ON;;;;;N;;;;; -A71F;MODIFIER LETTER LOW INVERTED EXCLAMATION MARK;Lm;0;ON;;;;;N;;;;; -A720;MODIFIER LETTER STRESS AND HIGH TONE;Sk;0;ON;;;;;N;;;;; -A721;MODIFIER LETTER STRESS AND LOW TONE;Sk;0;ON;;;;;N;;;;; -A722;LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF;Lu;0;L;;;;;N;;;;A723; -A723;LATIN SMALL LETTER EGYPTOLOGICAL ALEF;Ll;0;L;;;;;N;;;A722;;A722 -A724;LATIN CAPITAL LETTER EGYPTOLOGICAL AIN;Lu;0;L;;;;;N;;;;A725; -A725;LATIN SMALL LETTER EGYPTOLOGICAL AIN;Ll;0;L;;;;;N;;;A724;;A724 -A726;LATIN CAPITAL LETTER HENG;Lu;0;L;;;;;N;;;;A727; -A727;LATIN SMALL LETTER HENG;Ll;0;L;;;;;N;;;A726;;A726 -A728;LATIN CAPITAL LETTER TZ;Lu;0;L;;;;;N;;;;A729; -A729;LATIN SMALL LETTER TZ;Ll;0;L;;;;;N;;;A728;;A728 -A72A;LATIN CAPITAL LETTER TRESILLO;Lu;0;L;;;;;N;;;;A72B; -A72B;LATIN SMALL LETTER TRESILLO;Ll;0;L;;;;;N;;;A72A;;A72A -A72C;LATIN CAPITAL LETTER CUATRILLO;Lu;0;L;;;;;N;;;;A72D; -A72D;LATIN SMALL LETTER CUATRILLO;Ll;0;L;;;;;N;;;A72C;;A72C -A72E;LATIN CAPITAL LETTER CUATRILLO WITH COMMA;Lu;0;L;;;;;N;;;;A72F; -A72F;LATIN SMALL LETTER CUATRILLO WITH COMMA;Ll;0;L;;;;;N;;;A72E;;A72E -A730;LATIN LETTER SMALL CAPITAL F;Ll;0;L;;;;;N;;;;; -A731;LATIN LETTER SMALL CAPITAL S;Ll;0;L;;;;;N;;;;; -A732;LATIN CAPITAL LETTER AA;Lu;0;L;;;;;N;;;;A733; -A733;LATIN SMALL LETTER AA;Ll;0;L;;;;;N;;;A732;;A732 -A734;LATIN CAPITAL LETTER AO;Lu;0;L;;;;;N;;;;A735; -A735;LATIN SMALL LETTER AO;Ll;0;L;;;;;N;;;A734;;A734 -A736;LATIN CAPITAL LETTER AU;Lu;0;L;;;;;N;;;;A737; -A737;LATIN SMALL LETTER AU;Ll;0;L;;;;;N;;;A736;;A736 -A738;LATIN CAPITAL LETTER AV;Lu;0;L;;;;;N;;;;A739; -A739;LATIN SMALL LETTER AV;Ll;0;L;;;;;N;;;A738;;A738 -A73A;LATIN CAPITAL LETTER AV WITH HORIZONTAL BAR;Lu;0;L;;;;;N;;;;A73B; -A73B;LATIN SMALL LETTER AV WITH HORIZONTAL BAR;Ll;0;L;;;;;N;;;A73A;;A73A -A73C;LATIN CAPITAL LETTER AY;Lu;0;L;;;;;N;;;;A73D; -A73D;LATIN SMALL LETTER AY;Ll;0;L;;;;;N;;;A73C;;A73C -A73E;LATIN CAPITAL LETTER REVERSED C WITH DOT;Lu;0;L;;;;;N;;;;A73F; -A73F;LATIN SMALL LETTER REVERSED C WITH DOT;Ll;0;L;;;;;N;;;A73E;;A73E -A740;LATIN CAPITAL LETTER K WITH STROKE;Lu;0;L;;;;;N;;;;A741; -A741;LATIN SMALL LETTER K WITH STROKE;Ll;0;L;;;;;N;;;A740;;A740 -A742;LATIN CAPITAL LETTER K WITH DIAGONAL STROKE;Lu;0;L;;;;;N;;;;A743; -A743;LATIN SMALL LETTER K WITH DIAGONAL STROKE;Ll;0;L;;;;;N;;;A742;;A742 -A744;LATIN CAPITAL LETTER K WITH STROKE AND DIAGONAL STROKE;Lu;0;L;;;;;N;;;;A745; -A745;LATIN SMALL LETTER K WITH STROKE AND DIAGONAL STROKE;Ll;0;L;;;;;N;;;A744;;A744 -A746;LATIN CAPITAL LETTER BROKEN L;Lu;0;L;;;;;N;;;;A747; -A747;LATIN SMALL LETTER BROKEN L;Ll;0;L;;;;;N;;;A746;;A746 -A748;LATIN CAPITAL LETTER L WITH HIGH STROKE;Lu;0;L;;;;;N;;;;A749; -A749;LATIN SMALL LETTER L WITH HIGH STROKE;Ll;0;L;;;;;N;;;A748;;A748 -A74A;LATIN CAPITAL LETTER O WITH LONG STROKE OVERLAY;Lu;0;L;;;;;N;;;;A74B; -A74B;LATIN SMALL LETTER O WITH LONG STROKE OVERLAY;Ll;0;L;;;;;N;;;A74A;;A74A -A74C;LATIN CAPITAL LETTER O WITH LOOP;Lu;0;L;;;;;N;;;;A74D; -A74D;LATIN SMALL LETTER O WITH LOOP;Ll;0;L;;;;;N;;;A74C;;A74C -A74E;LATIN CAPITAL LETTER OO;Lu;0;L;;;;;N;;;;A74F; -A74F;LATIN SMALL LETTER OO;Ll;0;L;;;;;N;;;A74E;;A74E -A750;LATIN CAPITAL LETTER P WITH STROKE THROUGH DESCENDER;Lu;0;L;;;;;N;;;;A751; -A751;LATIN SMALL LETTER P WITH STROKE THROUGH DESCENDER;Ll;0;L;;;;;N;;;A750;;A750 -A752;LATIN CAPITAL LETTER P WITH FLOURISH;Lu;0;L;;;;;N;;;;A753; -A753;LATIN SMALL LETTER P WITH FLOURISH;Ll;0;L;;;;;N;;;A752;;A752 -A754;LATIN CAPITAL LETTER P WITH SQUIRREL TAIL;Lu;0;L;;;;;N;;;;A755; -A755;LATIN SMALL LETTER P WITH SQUIRREL TAIL;Ll;0;L;;;;;N;;;A754;;A754 -A756;LATIN CAPITAL LETTER Q WITH STROKE THROUGH DESCENDER;Lu;0;L;;;;;N;;;;A757; -A757;LATIN SMALL LETTER Q WITH STROKE THROUGH DESCENDER;Ll;0;L;;;;;N;;;A756;;A756 -A758;LATIN CAPITAL LETTER Q WITH DIAGONAL STROKE;Lu;0;L;;;;;N;;;;A759; -A759;LATIN SMALL LETTER Q WITH DIAGONAL STROKE;Ll;0;L;;;;;N;;;A758;;A758 -A75A;LATIN CAPITAL LETTER R ROTUNDA;Lu;0;L;;;;;N;;;;A75B; -A75B;LATIN SMALL LETTER R ROTUNDA;Ll;0;L;;;;;N;;;A75A;;A75A -A75C;LATIN CAPITAL LETTER RUM ROTUNDA;Lu;0;L;;;;;N;;;;A75D; -A75D;LATIN SMALL LETTER RUM ROTUNDA;Ll;0;L;;;;;N;;;A75C;;A75C -A75E;LATIN CAPITAL LETTER V WITH DIAGONAL STROKE;Lu;0;L;;;;;N;;;;A75F; -A75F;LATIN SMALL LETTER V WITH DIAGONAL STROKE;Ll;0;L;;;;;N;;;A75E;;A75E -A760;LATIN CAPITAL LETTER VY;Lu;0;L;;;;;N;;;;A761; -A761;LATIN SMALL LETTER VY;Ll;0;L;;;;;N;;;A760;;A760 -A762;LATIN CAPITAL LETTER VISIGOTHIC Z;Lu;0;L;;;;;N;;;;A763; -A763;LATIN SMALL LETTER VISIGOTHIC Z;Ll;0;L;;;;;N;;;A762;;A762 -A764;LATIN CAPITAL LETTER THORN WITH STROKE;Lu;0;L;;;;;N;;;;A765; -A765;LATIN SMALL LETTER THORN WITH STROKE;Ll;0;L;;;;;N;;;A764;;A764 -A766;LATIN CAPITAL LETTER THORN WITH STROKE THROUGH DESCENDER;Lu;0;L;;;;;N;;;;A767; -A767;LATIN SMALL LETTER THORN WITH STROKE THROUGH DESCENDER;Ll;0;L;;;;;N;;;A766;;A766 -A768;LATIN CAPITAL LETTER VEND;Lu;0;L;;;;;N;;;;A769; -A769;LATIN SMALL LETTER VEND;Ll;0;L;;;;;N;;;A768;;A768 -A76A;LATIN CAPITAL LETTER ET;Lu;0;L;;;;;N;;;;A76B; -A76B;LATIN SMALL LETTER ET;Ll;0;L;;;;;N;;;A76A;;A76A -A76C;LATIN CAPITAL LETTER IS;Lu;0;L;;;;;N;;;;A76D; -A76D;LATIN SMALL LETTER IS;Ll;0;L;;;;;N;;;A76C;;A76C -A76E;LATIN CAPITAL LETTER CON;Lu;0;L;;;;;N;;;;A76F; -A76F;LATIN SMALL LETTER CON;Ll;0;L;;;;;N;;;A76E;;A76E -A770;MODIFIER LETTER US;Lm;0;L; A76F;;;;N;;;;; -A771;LATIN SMALL LETTER DUM;Ll;0;L;;;;;N;;;;; -A772;LATIN SMALL LETTER LUM;Ll;0;L;;;;;N;;;;; -A773;LATIN SMALL LETTER MUM;Ll;0;L;;;;;N;;;;; -A774;LATIN SMALL LETTER NUM;Ll;0;L;;;;;N;;;;; -A775;LATIN SMALL LETTER RUM;Ll;0;L;;;;;N;;;;; -A776;LATIN LETTER SMALL CAPITAL RUM;Ll;0;L;;;;;N;;;;; -A777;LATIN SMALL LETTER TUM;Ll;0;L;;;;;N;;;;; -A778;LATIN SMALL LETTER UM;Ll;0;L;;;;;N;;;;; -A779;LATIN CAPITAL LETTER INSULAR D;Lu;0;L;;;;;N;;;;A77A; -A77A;LATIN SMALL LETTER INSULAR D;Ll;0;L;;;;;N;;;A779;;A779 -A77B;LATIN CAPITAL LETTER INSULAR F;Lu;0;L;;;;;N;;;;A77C; -A77C;LATIN SMALL LETTER INSULAR F;Ll;0;L;;;;;N;;;A77B;;A77B -A77D;LATIN CAPITAL LETTER INSULAR G;Lu;0;L;;;;;N;;;;1D79; -A77E;LATIN CAPITAL LETTER TURNED INSULAR G;Lu;0;L;;;;;N;;;;A77F; -A77F;LATIN SMALL LETTER TURNED INSULAR G;Ll;0;L;;;;;N;;;A77E;;A77E -A780;LATIN CAPITAL LETTER TURNED L;Lu;0;L;;;;;N;;;;A781; -A781;LATIN SMALL LETTER TURNED L;Ll;0;L;;;;;N;;;A780;;A780 -A782;LATIN CAPITAL LETTER INSULAR R;Lu;0;L;;;;;N;;;;A783; -A783;LATIN SMALL LETTER INSULAR R;Ll;0;L;;;;;N;;;A782;;A782 -A784;LATIN CAPITAL LETTER INSULAR S;Lu;0;L;;;;;N;;;;A785; -A785;LATIN SMALL LETTER INSULAR S;Ll;0;L;;;;;N;;;A784;;A784 -A786;LATIN CAPITAL LETTER INSULAR T;Lu;0;L;;;;;N;;;;A787; -A787;LATIN SMALL LETTER INSULAR T;Ll;0;L;;;;;N;;;A786;;A786 -A788;MODIFIER LETTER LOW CIRCUMFLEX ACCENT;Lm;0;ON;;;;;N;;;;; -A789;MODIFIER LETTER COLON;Sk;0;L;;;;;N;;;;; -A78A;MODIFIER LETTER SHORT EQUALS SIGN;Sk;0;L;;;;;N;;;;; -A78B;LATIN CAPITAL LETTER SALTILLO;Lu;0;L;;;;;N;;;;A78C; -A78C;LATIN SMALL LETTER SALTILLO;Ll;0;L;;;;;N;;;A78B;;A78B -A7FB;LATIN EPIGRAPHIC LETTER REVERSED F;Lo;0;L;;;;;N;;;;; -A7FC;LATIN EPIGRAPHIC LETTER REVERSED P;Lo;0;L;;;;;N;;;;; -A7FD;LATIN EPIGRAPHIC LETTER INVERTED M;Lo;0;L;;;;;N;;;;; -A7FE;LATIN EPIGRAPHIC LETTER I LONGA;Lo;0;L;;;;;N;;;;; -A7FF;LATIN EPIGRAPHIC LETTER ARCHAIC M;Lo;0;L;;;;;N;;;;; -A800;SYLOTI NAGRI LETTER A;Lo;0;L;;;;;N;;;;; -A801;SYLOTI NAGRI LETTER I;Lo;0;L;;;;;N;;;;; -A802;SYLOTI NAGRI SIGN DVISVARA;Mn;0;NSM;;;;;N;;;;; -A803;SYLOTI NAGRI LETTER U;Lo;0;L;;;;;N;;;;; -A804;SYLOTI NAGRI LETTER E;Lo;0;L;;;;;N;;;;; -A805;SYLOTI NAGRI LETTER O;Lo;0;L;;;;;N;;;;; -A806;SYLOTI NAGRI SIGN HASANTA;Mn;9;NSM;;;;;N;;;;; -A807;SYLOTI NAGRI LETTER KO;Lo;0;L;;;;;N;;;;; -A808;SYLOTI NAGRI LETTER KHO;Lo;0;L;;;;;N;;;;; -A809;SYLOTI NAGRI LETTER GO;Lo;0;L;;;;;N;;;;; -A80A;SYLOTI NAGRI LETTER GHO;Lo;0;L;;;;;N;;;;; -A80B;SYLOTI NAGRI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;; -A80C;SYLOTI NAGRI LETTER CO;Lo;0;L;;;;;N;;;;; -A80D;SYLOTI NAGRI LETTER CHO;Lo;0;L;;;;;N;;;;; -A80E;SYLOTI NAGRI LETTER JO;Lo;0;L;;;;;N;;;;; -A80F;SYLOTI NAGRI LETTER JHO;Lo;0;L;;;;;N;;;;; -A810;SYLOTI NAGRI LETTER TTO;Lo;0;L;;;;;N;;;;; -A811;SYLOTI NAGRI LETTER TTHO;Lo;0;L;;;;;N;;;;; -A812;SYLOTI NAGRI LETTER DDO;Lo;0;L;;;;;N;;;;; -A813;SYLOTI NAGRI LETTER DDHO;Lo;0;L;;;;;N;;;;; -A814;SYLOTI NAGRI LETTER TO;Lo;0;L;;;;;N;;;;; -A815;SYLOTI NAGRI LETTER THO;Lo;0;L;;;;;N;;;;; -A816;SYLOTI NAGRI LETTER DO;Lo;0;L;;;;;N;;;;; -A817;SYLOTI NAGRI LETTER DHO;Lo;0;L;;;;;N;;;;; -A818;SYLOTI NAGRI LETTER NO;Lo;0;L;;;;;N;;;;; -A819;SYLOTI NAGRI LETTER PO;Lo;0;L;;;;;N;;;;; -A81A;SYLOTI NAGRI LETTER PHO;Lo;0;L;;;;;N;;;;; -A81B;SYLOTI NAGRI LETTER BO;Lo;0;L;;;;;N;;;;; -A81C;SYLOTI NAGRI LETTER BHO;Lo;0;L;;;;;N;;;;; -A81D;SYLOTI NAGRI LETTER MO;Lo;0;L;;;;;N;;;;; -A81E;SYLOTI NAGRI LETTER RO;Lo;0;L;;;;;N;;;;; -A81F;SYLOTI NAGRI LETTER LO;Lo;0;L;;;;;N;;;;; -A820;SYLOTI NAGRI LETTER RRO;Lo;0;L;;;;;N;;;;; -A821;SYLOTI NAGRI LETTER SO;Lo;0;L;;;;;N;;;;; -A822;SYLOTI NAGRI LETTER HO;Lo;0;L;;;;;N;;;;; -A823;SYLOTI NAGRI VOWEL SIGN A;Mc;0;L;;;;;N;;;;; -A824;SYLOTI NAGRI VOWEL SIGN I;Mc;0;L;;;;;N;;;;; -A825;SYLOTI NAGRI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; -A826;SYLOTI NAGRI VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;; -A827;SYLOTI NAGRI VOWEL SIGN OO;Mc;0;L;;;;;N;;;;; -A828;SYLOTI NAGRI POETRY MARK-1;So;0;ON;;;;;N;;;;; -A829;SYLOTI NAGRI POETRY MARK-2;So;0;ON;;;;;N;;;;; -A82A;SYLOTI NAGRI POETRY MARK-3;So;0;ON;;;;;N;;;;; -A82B;SYLOTI NAGRI POETRY MARK-4;So;0;ON;;;;;N;;;;; -A830;NORTH INDIC FRACTION ONE QUARTER;No;0;L;;;;1/4;N;;;;; -A831;NORTH INDIC FRACTION ONE HALF;No;0;L;;;;1/2;N;;;;; -A832;NORTH INDIC FRACTION THREE QUARTERS;No;0;L;;;;3/4;N;;;;; -A833;NORTH INDIC FRACTION ONE SIXTEENTH;No;0;L;;;;1/16;N;;;;; -A834;NORTH INDIC FRACTION ONE EIGHTH;No;0;L;;;;1/8;N;;;;; -A835;NORTH INDIC FRACTION THREE SIXTEENTHS;No;0;L;;;;3/16;N;;;;; -A836;NORTH INDIC QUARTER MARK;So;0;L;;;;;N;;;;; -A837;NORTH INDIC PLACEHOLDER MARK;So;0;L;;;;;N;;;;; -A838;NORTH INDIC RUPEE MARK;Sc;0;ET;;;;;N;;;;; -A839;NORTH INDIC QUANTITY MARK;So;0;ET;;;;;N;;;;; -A840;PHAGS-PA LETTER KA;Lo;0;L;;;;;N;;;;; -A841;PHAGS-PA LETTER KHA;Lo;0;L;;;;;N;;;;; -A842;PHAGS-PA LETTER GA;Lo;0;L;;;;;N;;;;; -A843;PHAGS-PA LETTER NGA;Lo;0;L;;;;;N;;;;; -A844;PHAGS-PA LETTER CA;Lo;0;L;;;;;N;;;;; -A845;PHAGS-PA LETTER CHA;Lo;0;L;;;;;N;;;;; -A846;PHAGS-PA LETTER JA;Lo;0;L;;;;;N;;;;; -A847;PHAGS-PA LETTER NYA;Lo;0;L;;;;;N;;;;; -A848;PHAGS-PA LETTER TA;Lo;0;L;;;;;N;;;;; -A849;PHAGS-PA LETTER THA;Lo;0;L;;;;;N;;;;; -A84A;PHAGS-PA LETTER DA;Lo;0;L;;;;;N;;;;; -A84B;PHAGS-PA LETTER NA;Lo;0;L;;;;;N;;;;; -A84C;PHAGS-PA LETTER PA;Lo;0;L;;;;;N;;;;; -A84D;PHAGS-PA LETTER PHA;Lo;0;L;;;;;N;;;;; -A84E;PHAGS-PA LETTER BA;Lo;0;L;;;;;N;;;;; -A84F;PHAGS-PA LETTER MA;Lo;0;L;;;;;N;;;;; -A850;PHAGS-PA LETTER TSA;Lo;0;L;;;;;N;;;;; -A851;PHAGS-PA LETTER TSHA;Lo;0;L;;;;;N;;;;; -A852;PHAGS-PA LETTER DZA;Lo;0;L;;;;;N;;;;; -A853;PHAGS-PA LETTER WA;Lo;0;L;;;;;N;;;;; -A854;PHAGS-PA LETTER ZHA;Lo;0;L;;;;;N;;;;; -A855;PHAGS-PA LETTER ZA;Lo;0;L;;;;;N;;;;; -A856;PHAGS-PA LETTER SMALL A;Lo;0;L;;;;;N;;;;; -A857;PHAGS-PA LETTER YA;Lo;0;L;;;;;N;;;;; -A858;PHAGS-PA LETTER RA;Lo;0;L;;;;;N;;;;; -A859;PHAGS-PA LETTER LA;Lo;0;L;;;;;N;;;;; -A85A;PHAGS-PA LETTER SHA;Lo;0;L;;;;;N;;;;; -A85B;PHAGS-PA LETTER SA;Lo;0;L;;;;;N;;;;; -A85C;PHAGS-PA LETTER HA;Lo;0;L;;;;;N;;;;; -A85D;PHAGS-PA LETTER A;Lo;0;L;;;;;N;;;;; -A85E;PHAGS-PA LETTER I;Lo;0;L;;;;;N;;;;; -A85F;PHAGS-PA LETTER U;Lo;0;L;;;;;N;;;;; -A860;PHAGS-PA LETTER E;Lo;0;L;;;;;N;;;;; -A861;PHAGS-PA LETTER O;Lo;0;L;;;;;N;;;;; -A862;PHAGS-PA LETTER QA;Lo;0;L;;;;;N;;;;; -A863;PHAGS-PA LETTER XA;Lo;0;L;;;;;N;;;;; -A864;PHAGS-PA LETTER FA;Lo;0;L;;;;;N;;;;; -A865;PHAGS-PA LETTER GGA;Lo;0;L;;;;;N;;;;; -A866;PHAGS-PA LETTER EE;Lo;0;L;;;;;N;;;;; -A867;PHAGS-PA SUBJOINED LETTER WA;Lo;0;L;;;;;N;;;;; -A868;PHAGS-PA SUBJOINED LETTER YA;Lo;0;L;;;;;N;;;;; -A869;PHAGS-PA LETTER TTA;Lo;0;L;;;;;N;;;;; -A86A;PHAGS-PA LETTER TTHA;Lo;0;L;;;;;N;;;;; -A86B;PHAGS-PA LETTER DDA;Lo;0;L;;;;;N;;;;; -A86C;PHAGS-PA LETTER NNA;Lo;0;L;;;;;N;;;;; -A86D;PHAGS-PA LETTER ALTERNATE YA;Lo;0;L;;;;;N;;;;; -A86E;PHAGS-PA LETTER VOICELESS SHA;Lo;0;L;;;;;N;;;;; -A86F;PHAGS-PA LETTER VOICED HA;Lo;0;L;;;;;N;;;;; -A870;PHAGS-PA LETTER ASPIRATED FA;Lo;0;L;;;;;N;;;;; -A871;PHAGS-PA SUBJOINED LETTER RA;Lo;0;L;;;;;N;;;;; -A872;PHAGS-PA SUPERFIXED LETTER RA;Lo;0;L;;;;;N;;;;; -A873;PHAGS-PA LETTER CANDRABINDU;Lo;0;L;;;;;N;;;;; -A874;PHAGS-PA SINGLE HEAD MARK;Po;0;ON;;;;;N;;;;; -A875;PHAGS-PA DOUBLE HEAD MARK;Po;0;ON;;;;;N;;;;; -A876;PHAGS-PA MARK SHAD;Po;0;ON;;;;;N;;;;; -A877;PHAGS-PA MARK DOUBLE SHAD;Po;0;ON;;;;;N;;;;; -A880;SAURASHTRA SIGN ANUSVARA;Mc;0;L;;;;;N;;;;; -A881;SAURASHTRA SIGN VISARGA;Mc;0;L;;;;;N;;;;; -A882;SAURASHTRA LETTER A;Lo;0;L;;;;;N;;;;; -A883;SAURASHTRA LETTER AA;Lo;0;L;;;;;N;;;;; -A884;SAURASHTRA LETTER I;Lo;0;L;;;;;N;;;;; -A885;SAURASHTRA LETTER II;Lo;0;L;;;;;N;;;;; -A886;SAURASHTRA LETTER U;Lo;0;L;;;;;N;;;;; -A887;SAURASHTRA LETTER UU;Lo;0;L;;;;;N;;;;; -A888;SAURASHTRA LETTER VOCALIC R;Lo;0;L;;;;;N;;;;; -A889;SAURASHTRA LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;; -A88A;SAURASHTRA LETTER VOCALIC L;Lo;0;L;;;;;N;;;;; -A88B;SAURASHTRA LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;; -A88C;SAURASHTRA LETTER E;Lo;0;L;;;;;N;;;;; -A88D;SAURASHTRA LETTER EE;Lo;0;L;;;;;N;;;;; -A88E;SAURASHTRA LETTER AI;Lo;0;L;;;;;N;;;;; -A88F;SAURASHTRA LETTER O;Lo;0;L;;;;;N;;;;; -A890;SAURASHTRA LETTER OO;Lo;0;L;;;;;N;;;;; -A891;SAURASHTRA LETTER AU;Lo;0;L;;;;;N;;;;; -A892;SAURASHTRA LETTER KA;Lo;0;L;;;;;N;;;;; -A893;SAURASHTRA LETTER KHA;Lo;0;L;;;;;N;;;;; -A894;SAURASHTRA LETTER GA;Lo;0;L;;;;;N;;;;; -A895;SAURASHTRA LETTER GHA;Lo;0;L;;;;;N;;;;; -A896;SAURASHTRA LETTER NGA;Lo;0;L;;;;;N;;;;; -A897;SAURASHTRA LETTER CA;Lo;0;L;;;;;N;;;;; -A898;SAURASHTRA LETTER CHA;Lo;0;L;;;;;N;;;;; -A899;SAURASHTRA LETTER JA;Lo;0;L;;;;;N;;;;; -A89A;SAURASHTRA LETTER JHA;Lo;0;L;;;;;N;;;;; -A89B;SAURASHTRA LETTER NYA;Lo;0;L;;;;;N;;;;; -A89C;SAURASHTRA LETTER TTA;Lo;0;L;;;;;N;;;;; -A89D;SAURASHTRA LETTER TTHA;Lo;0;L;;;;;N;;;;; -A89E;SAURASHTRA LETTER DDA;Lo;0;L;;;;;N;;;;; -A89F;SAURASHTRA LETTER DDHA;Lo;0;L;;;;;N;;;;; -A8A0;SAURASHTRA LETTER NNA;Lo;0;L;;;;;N;;;;; -A8A1;SAURASHTRA LETTER TA;Lo;0;L;;;;;N;;;;; -A8A2;SAURASHTRA LETTER THA;Lo;0;L;;;;;N;;;;; -A8A3;SAURASHTRA LETTER DA;Lo;0;L;;;;;N;;;;; -A8A4;SAURASHTRA LETTER DHA;Lo;0;L;;;;;N;;;;; -A8A5;SAURASHTRA LETTER NA;Lo;0;L;;;;;N;;;;; -A8A6;SAURASHTRA LETTER PA;Lo;0;L;;;;;N;;;;; -A8A7;SAURASHTRA LETTER PHA;Lo;0;L;;;;;N;;;;; -A8A8;SAURASHTRA LETTER BA;Lo;0;L;;;;;N;;;;; -A8A9;SAURASHTRA LETTER BHA;Lo;0;L;;;;;N;;;;; -A8AA;SAURASHTRA LETTER MA;Lo;0;L;;;;;N;;;;; -A8AB;SAURASHTRA LETTER YA;Lo;0;L;;;;;N;;;;; -A8AC;SAURASHTRA LETTER RA;Lo;0;L;;;;;N;;;;; -A8AD;SAURASHTRA LETTER LA;Lo;0;L;;;;;N;;;;; -A8AE;SAURASHTRA LETTER VA;Lo;0;L;;;;;N;;;;; -A8AF;SAURASHTRA LETTER SHA;Lo;0;L;;;;;N;;;;; -A8B0;SAURASHTRA LETTER SSA;Lo;0;L;;;;;N;;;;; -A8B1;SAURASHTRA LETTER SA;Lo;0;L;;;;;N;;;;; -A8B2;SAURASHTRA LETTER HA;Lo;0;L;;;;;N;;;;; -A8B3;SAURASHTRA LETTER LLA;Lo;0;L;;;;;N;;;;; -A8B4;SAURASHTRA CONSONANT SIGN HAARU;Mc;0;L;;;;;N;;;;; -A8B5;SAURASHTRA VOWEL SIGN AA;Mc;0;L;;;;;N;;;;; -A8B6;SAURASHTRA VOWEL SIGN I;Mc;0;L;;;;;N;;;;; -A8B7;SAURASHTRA VOWEL SIGN II;Mc;0;L;;;;;N;;;;; -A8B8;SAURASHTRA VOWEL SIGN U;Mc;0;L;;;;;N;;;;; -A8B9;SAURASHTRA VOWEL SIGN UU;Mc;0;L;;;;;N;;;;; -A8BA;SAURASHTRA VOWEL SIGN VOCALIC R;Mc;0;L;;;;;N;;;;; -A8BB;SAURASHTRA VOWEL SIGN VOCALIC RR;Mc;0;L;;;;;N;;;;; -A8BC;SAURASHTRA VOWEL SIGN VOCALIC L;Mc;0;L;;;;;N;;;;; -A8BD;SAURASHTRA VOWEL SIGN VOCALIC LL;Mc;0;L;;;;;N;;;;; -A8BE;SAURASHTRA VOWEL SIGN E;Mc;0;L;;;;;N;;;;; -A8BF;SAURASHTRA VOWEL SIGN EE;Mc;0;L;;;;;N;;;;; -A8C0;SAURASHTRA VOWEL SIGN AI;Mc;0;L;;;;;N;;;;; -A8C1;SAURASHTRA VOWEL SIGN O;Mc;0;L;;;;;N;;;;; -A8C2;SAURASHTRA VOWEL SIGN OO;Mc;0;L;;;;;N;;;;; -A8C3;SAURASHTRA VOWEL SIGN AU;Mc;0;L;;;;;N;;;;; -A8C4;SAURASHTRA SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;; -A8CE;SAURASHTRA DANDA;Po;0;L;;;;;N;;;;; -A8CF;SAURASHTRA DOUBLE DANDA;Po;0;L;;;;;N;;;;; -A8D0;SAURASHTRA DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; -A8D1;SAURASHTRA DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; -A8D2;SAURASHTRA DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; -A8D3;SAURASHTRA DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; -A8D4;SAURASHTRA DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; -A8D5;SAURASHTRA DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; -A8D6;SAURASHTRA DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; -A8D7;SAURASHTRA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; -A8D8;SAURASHTRA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; -A8D9;SAURASHTRA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; -A8E0;COMBINING DEVANAGARI DIGIT ZERO;Mn;230;NSM;;;;;N;;;;; -A8E1;COMBINING DEVANAGARI DIGIT ONE;Mn;230;NSM;;;;;N;;;;; -A8E2;COMBINING DEVANAGARI DIGIT TWO;Mn;230;NSM;;;;;N;;;;; -A8E3;COMBINING DEVANAGARI DIGIT THREE;Mn;230;NSM;;;;;N;;;;; -A8E4;COMBINING DEVANAGARI DIGIT FOUR;Mn;230;NSM;;;;;N;;;;; -A8E5;COMBINING DEVANAGARI DIGIT FIVE;Mn;230;NSM;;;;;N;;;;; -A8E6;COMBINING DEVANAGARI DIGIT SIX;Mn;230;NSM;;;;;N;;;;; -A8E7;COMBINING DEVANAGARI DIGIT SEVEN;Mn;230;NSM;;;;;N;;;;; -A8E8;COMBINING DEVANAGARI DIGIT EIGHT;Mn;230;NSM;;;;;N;;;;; -A8E9;COMBINING DEVANAGARI DIGIT NINE;Mn;230;NSM;;;;;N;;;;; -A8EA;COMBINING DEVANAGARI LETTER A;Mn;230;NSM;;;;;N;;;;; -A8EB;COMBINING DEVANAGARI LETTER U;Mn;230;NSM;;;;;N;;;;; -A8EC;COMBINING DEVANAGARI LETTER KA;Mn;230;NSM;;;;;N;;;;; -A8ED;COMBINING DEVANAGARI LETTER NA;Mn;230;NSM;;;;;N;;;;; -A8EE;COMBINING DEVANAGARI LETTER PA;Mn;230;NSM;;;;;N;;;;; -A8EF;COMBINING DEVANAGARI LETTER RA;Mn;230;NSM;;;;;N;;;;; -A8F0;COMBINING DEVANAGARI LETTER VI;Mn;230;NSM;;;;;N;;;;; -A8F1;COMBINING DEVANAGARI SIGN AVAGRAHA;Mn;230;NSM;;;;;N;;;;; -A8F2;DEVANAGARI SIGN SPACING CANDRABINDU;Lo;0;L;;;;;N;;;;; -A8F3;DEVANAGARI SIGN CANDRABINDU VIRAMA;Lo;0;L;;;;;N;;;;; -A8F4;DEVANAGARI SIGN DOUBLE CANDRABINDU VIRAMA;Lo;0;L;;;;;N;;;;; -A8F5;DEVANAGARI SIGN CANDRABINDU TWO;Lo;0;L;;;;;N;;;;; -A8F6;DEVANAGARI SIGN CANDRABINDU THREE;Lo;0;L;;;;;N;;;;; -A8F7;DEVANAGARI SIGN CANDRABINDU AVAGRAHA;Lo;0;L;;;;;N;;;;; -A8F8;DEVANAGARI SIGN PUSHPIKA;Po;0;L;;;;;N;;;;; -A8F9;DEVANAGARI GAP FILLER;Po;0;L;;;;;N;;;;; -A8FA;DEVANAGARI CARET;Po;0;L;;;;;N;;;;; -A8FB;DEVANAGARI HEADSTROKE;Lo;0;L;;;;;N;;;;; -A900;KAYAH LI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; -A901;KAYAH LI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; -A902;KAYAH LI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; -A903;KAYAH LI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; -A904;KAYAH LI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; -A905;KAYAH LI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; -A906;KAYAH LI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; -A907;KAYAH LI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; -A908;KAYAH LI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; -A909;KAYAH LI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; -A90A;KAYAH LI LETTER KA;Lo;0;L;;;;;N;;;;; -A90B;KAYAH LI LETTER KHA;Lo;0;L;;;;;N;;;;; -A90C;KAYAH LI LETTER GA;Lo;0;L;;;;;N;;;;; -A90D;KAYAH LI LETTER NGA;Lo;0;L;;;;;N;;;;; -A90E;KAYAH LI LETTER SA;Lo;0;L;;;;;N;;;;; -A90F;KAYAH LI LETTER SHA;Lo;0;L;;;;;N;;;;; -A910;KAYAH LI LETTER ZA;Lo;0;L;;;;;N;;;;; -A911;KAYAH LI LETTER NYA;Lo;0;L;;;;;N;;;;; -A912;KAYAH LI LETTER TA;Lo;0;L;;;;;N;;;;; -A913;KAYAH LI LETTER HTA;Lo;0;L;;;;;N;;;;; -A914;KAYAH LI LETTER NA;Lo;0;L;;;;;N;;;;; -A915;KAYAH LI LETTER PA;Lo;0;L;;;;;N;;;;; -A916;KAYAH LI LETTER PHA;Lo;0;L;;;;;N;;;;; -A917;KAYAH LI LETTER MA;Lo;0;L;;;;;N;;;;; -A918;KAYAH LI LETTER DA;Lo;0;L;;;;;N;;;;; -A919;KAYAH LI LETTER BA;Lo;0;L;;;;;N;;;;; -A91A;KAYAH LI LETTER RA;Lo;0;L;;;;;N;;;;; -A91B;KAYAH LI LETTER YA;Lo;0;L;;;;;N;;;;; -A91C;KAYAH LI LETTER LA;Lo;0;L;;;;;N;;;;; -A91D;KAYAH LI LETTER WA;Lo;0;L;;;;;N;;;;; -A91E;KAYAH LI LETTER THA;Lo;0;L;;;;;N;;;;; -A91F;KAYAH LI LETTER HA;Lo;0;L;;;;;N;;;;; -A920;KAYAH LI LETTER VA;Lo;0;L;;;;;N;;;;; -A921;KAYAH LI LETTER CA;Lo;0;L;;;;;N;;;;; -A922;KAYAH LI LETTER A;Lo;0;L;;;;;N;;;;; -A923;KAYAH LI LETTER OE;Lo;0;L;;;;;N;;;;; -A924;KAYAH LI LETTER I;Lo;0;L;;;;;N;;;;; -A925;KAYAH LI LETTER OO;Lo;0;L;;;;;N;;;;; -A926;KAYAH LI VOWEL UE;Mn;0;NSM;;;;;N;;;;; -A927;KAYAH LI VOWEL E;Mn;0;NSM;;;;;N;;;;; -A928;KAYAH LI VOWEL U;Mn;0;NSM;;;;;N;;;;; -A929;KAYAH LI VOWEL EE;Mn;0;NSM;;;;;N;;;;; -A92A;KAYAH LI VOWEL O;Mn;0;NSM;;;;;N;;;;; -A92B;KAYAH LI TONE PLOPHU;Mn;220;NSM;;;;;N;;;;; -A92C;KAYAH LI TONE CALYA;Mn;220;NSM;;;;;N;;;;; -A92D;KAYAH LI TONE CALYA PLOPHU;Mn;220;NSM;;;;;N;;;;; -A92E;KAYAH LI SIGN CWI;Po;0;L;;;;;N;;;;; -A92F;KAYAH LI SIGN SHYA;Po;0;L;;;;;N;;;;; -A930;REJANG LETTER KA;Lo;0;L;;;;;N;;;;; -A931;REJANG LETTER GA;Lo;0;L;;;;;N;;;;; -A932;REJANG LETTER NGA;Lo;0;L;;;;;N;;;;; -A933;REJANG LETTER TA;Lo;0;L;;;;;N;;;;; -A934;REJANG LETTER DA;Lo;0;L;;;;;N;;;;; -A935;REJANG LETTER NA;Lo;0;L;;;;;N;;;;; -A936;REJANG LETTER PA;Lo;0;L;;;;;N;;;;; -A937;REJANG LETTER BA;Lo;0;L;;;;;N;;;;; -A938;REJANG LETTER MA;Lo;0;L;;;;;N;;;;; -A939;REJANG LETTER CA;Lo;0;L;;;;;N;;;;; -A93A;REJANG LETTER JA;Lo;0;L;;;;;N;;;;; -A93B;REJANG LETTER NYA;Lo;0;L;;;;;N;;;;; -A93C;REJANG LETTER SA;Lo;0;L;;;;;N;;;;; -A93D;REJANG LETTER RA;Lo;0;L;;;;;N;;;;; -A93E;REJANG LETTER LA;Lo;0;L;;;;;N;;;;; -A93F;REJANG LETTER YA;Lo;0;L;;;;;N;;;;; -A940;REJANG LETTER WA;Lo;0;L;;;;;N;;;;; -A941;REJANG LETTER HA;Lo;0;L;;;;;N;;;;; -A942;REJANG LETTER MBA;Lo;0;L;;;;;N;;;;; -A943;REJANG LETTER NGGA;Lo;0;L;;;;;N;;;;; -A944;REJANG LETTER NDA;Lo;0;L;;;;;N;;;;; -A945;REJANG LETTER NYJA;Lo;0;L;;;;;N;;;;; -A946;REJANG LETTER A;Lo;0;L;;;;;N;;;;; -A947;REJANG VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;; -A948;REJANG VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; -A949;REJANG VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;; -A94A;REJANG VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;; -A94B;REJANG VOWEL SIGN O;Mn;0;NSM;;;;;N;;;;; -A94C;REJANG VOWEL SIGN AU;Mn;0;NSM;;;;;N;;;;; -A94D;REJANG VOWEL SIGN EU;Mn;0;NSM;;;;;N;;;;; -A94E;REJANG VOWEL SIGN EA;Mn;0;NSM;;;;;N;;;;; -A94F;REJANG CONSONANT SIGN NG;Mn;0;NSM;;;;;N;;;;; -A950;REJANG CONSONANT SIGN N;Mn;0;NSM;;;;;N;;;;; -A951;REJANG CONSONANT SIGN R;Mn;0;NSM;;;;;N;;;;; -A952;REJANG CONSONANT SIGN H;Mc;0;L;;;;;N;;;;; -A953;REJANG VIRAMA;Mc;9;L;;;;;N;;;;; -A95F;REJANG SECTION MARK;Po;0;L;;;;;N;;;;; -A960;HANGUL CHOSEONG TIKEUT-MIEUM;Lo;0;L;;;;;N;;;;; -A961;HANGUL CHOSEONG TIKEUT-PIEUP;Lo;0;L;;;;;N;;;;; -A962;HANGUL CHOSEONG TIKEUT-SIOS;Lo;0;L;;;;;N;;;;; -A963;HANGUL CHOSEONG TIKEUT-CIEUC;Lo;0;L;;;;;N;;;;; -A964;HANGUL CHOSEONG RIEUL-KIYEOK;Lo;0;L;;;;;N;;;;; -A965;HANGUL CHOSEONG RIEUL-SSANGKIYEOK;Lo;0;L;;;;;N;;;;; -A966;HANGUL CHOSEONG RIEUL-TIKEUT;Lo;0;L;;;;;N;;;;; -A967;HANGUL CHOSEONG RIEUL-SSANGTIKEUT;Lo;0;L;;;;;N;;;;; -A968;HANGUL CHOSEONG RIEUL-MIEUM;Lo;0;L;;;;;N;;;;; -A969;HANGUL CHOSEONG RIEUL-PIEUP;Lo;0;L;;;;;N;;;;; -A96A;HANGUL CHOSEONG RIEUL-SSANGPIEUP;Lo;0;L;;;;;N;;;;; -A96B;HANGUL CHOSEONG RIEUL-KAPYEOUNPIEUP;Lo;0;L;;;;;N;;;;; -A96C;HANGUL CHOSEONG RIEUL-SIOS;Lo;0;L;;;;;N;;;;; -A96D;HANGUL CHOSEONG RIEUL-CIEUC;Lo;0;L;;;;;N;;;;; -A96E;HANGUL CHOSEONG RIEUL-KHIEUKH;Lo;0;L;;;;;N;;;;; -A96F;HANGUL CHOSEONG MIEUM-KIYEOK;Lo;0;L;;;;;N;;;;; -A970;HANGUL CHOSEONG MIEUM-TIKEUT;Lo;0;L;;;;;N;;;;; -A971;HANGUL CHOSEONG MIEUM-SIOS;Lo;0;L;;;;;N;;;;; -A972;HANGUL CHOSEONG PIEUP-SIOS-THIEUTH;Lo;0;L;;;;;N;;;;; -A973;HANGUL CHOSEONG PIEUP-KHIEUKH;Lo;0;L;;;;;N;;;;; -A974;HANGUL CHOSEONG PIEUP-HIEUH;Lo;0;L;;;;;N;;;;; -A975;HANGUL CHOSEONG SSANGSIOS-PIEUP;Lo;0;L;;;;;N;;;;; -A976;HANGUL CHOSEONG IEUNG-RIEUL;Lo;0;L;;;;;N;;;;; -A977;HANGUL CHOSEONG IEUNG-HIEUH;Lo;0;L;;;;;N;;;;; -A978;HANGUL CHOSEONG SSANGCIEUC-HIEUH;Lo;0;L;;;;;N;;;;; -A979;HANGUL CHOSEONG SSANGTHIEUTH;Lo;0;L;;;;;N;;;;; -A97A;HANGUL CHOSEONG PHIEUPH-HIEUH;Lo;0;L;;;;;N;;;;; -A97B;HANGUL CHOSEONG HIEUH-SIOS;Lo;0;L;;;;;N;;;;; -A97C;HANGUL CHOSEONG SSANGYEORINHIEUH;Lo;0;L;;;;;N;;;;; -A980;JAVANESE SIGN PANYANGGA;Mn;0;NSM;;;;;N;;;;; -A981;JAVANESE SIGN CECAK;Mn;0;NSM;;;;;N;;;;; -A982;JAVANESE SIGN LAYAR;Mn;0;NSM;;;;;N;;;;; -A983;JAVANESE SIGN WIGNYAN;Mc;0;L;;;;;N;;;;; -A984;JAVANESE LETTER A;Lo;0;L;;;;;N;;;;; -A985;JAVANESE LETTER I KAWI;Lo;0;L;;;;;N;;;;; -A986;JAVANESE LETTER I;Lo;0;L;;;;;N;;;;; -A987;JAVANESE LETTER II;Lo;0;L;;;;;N;;;;; -A988;JAVANESE LETTER U;Lo;0;L;;;;;N;;;;; -A989;JAVANESE LETTER PA CEREK;Lo;0;L;;;;;N;;;;; -A98A;JAVANESE LETTER NGA LELET;Lo;0;L;;;;;N;;;;; -A98B;JAVANESE LETTER NGA LELET RASWADI;Lo;0;L;;;;;N;;;;; -A98C;JAVANESE LETTER E;Lo;0;L;;;;;N;;;;; -A98D;JAVANESE LETTER AI;Lo;0;L;;;;;N;;;;; -A98E;JAVANESE LETTER O;Lo;0;L;;;;;N;;;;; -A98F;JAVANESE LETTER KA;Lo;0;L;;;;;N;;;;; -A990;JAVANESE LETTER KA SASAK;Lo;0;L;;;;;N;;;;; -A991;JAVANESE LETTER KA MURDA;Lo;0;L;;;;;N;;;;; -A992;JAVANESE LETTER GA;Lo;0;L;;;;;N;;;;; -A993;JAVANESE LETTER GA MURDA;Lo;0;L;;;;;N;;;;; -A994;JAVANESE LETTER NGA;Lo;0;L;;;;;N;;;;; -A995;JAVANESE LETTER CA;Lo;0;L;;;;;N;;;;; -A996;JAVANESE LETTER CA MURDA;Lo;0;L;;;;;N;;;;; -A997;JAVANESE LETTER JA;Lo;0;L;;;;;N;;;;; -A998;JAVANESE LETTER NYA MURDA;Lo;0;L;;;;;N;;;;; -A999;JAVANESE LETTER JA MAHAPRANA;Lo;0;L;;;;;N;;;;; -A99A;JAVANESE LETTER NYA;Lo;0;L;;;;;N;;;;; -A99B;JAVANESE LETTER TTA;Lo;0;L;;;;;N;;;;; -A99C;JAVANESE LETTER TTA MAHAPRANA;Lo;0;L;;;;;N;;;;; -A99D;JAVANESE LETTER DDA;Lo;0;L;;;;;N;;;;; -A99E;JAVANESE LETTER DDA MAHAPRANA;Lo;0;L;;;;;N;;;;; -A99F;JAVANESE LETTER NA MURDA;Lo;0;L;;;;;N;;;;; -A9A0;JAVANESE LETTER TA;Lo;0;L;;;;;N;;;;; -A9A1;JAVANESE LETTER TA MURDA;Lo;0;L;;;;;N;;;;; -A9A2;JAVANESE LETTER DA;Lo;0;L;;;;;N;;;;; -A9A3;JAVANESE LETTER DA MAHAPRANA;Lo;0;L;;;;;N;;;;; -A9A4;JAVANESE LETTER NA;Lo;0;L;;;;;N;;;;; -A9A5;JAVANESE LETTER PA;Lo;0;L;;;;;N;;;;; -A9A6;JAVANESE LETTER PA MURDA;Lo;0;L;;;;;N;;;;; -A9A7;JAVANESE LETTER BA;Lo;0;L;;;;;N;;;;; -A9A8;JAVANESE LETTER BA MURDA;Lo;0;L;;;;;N;;;;; -A9A9;JAVANESE LETTER MA;Lo;0;L;;;;;N;;;;; -A9AA;JAVANESE LETTER YA;Lo;0;L;;;;;N;;;;; -A9AB;JAVANESE LETTER RA;Lo;0;L;;;;;N;;;;; -A9AC;JAVANESE LETTER RA AGUNG;Lo;0;L;;;;;N;;;;; -A9AD;JAVANESE LETTER LA;Lo;0;L;;;;;N;;;;; -A9AE;JAVANESE LETTER WA;Lo;0;L;;;;;N;;;;; -A9AF;JAVANESE LETTER SA MURDA;Lo;0;L;;;;;N;;;;; -A9B0;JAVANESE LETTER SA MAHAPRANA;Lo;0;L;;;;;N;;;;; -A9B1;JAVANESE LETTER SA;Lo;0;L;;;;;N;;;;; -A9B2;JAVANESE LETTER HA;Lo;0;L;;;;;N;;;;; -A9B3;JAVANESE SIGN CECAK TELU;Mn;7;NSM;;;;;N;;;;; -A9B4;JAVANESE VOWEL SIGN TARUNG;Mc;0;L;;;;;N;;;;; -A9B5;JAVANESE VOWEL SIGN TOLONG;Mc;0;L;;;;;N;;;;; -A9B6;JAVANESE VOWEL SIGN WULU;Mn;0;NSM;;;;;N;;;;; -A9B7;JAVANESE VOWEL SIGN WULU MELIK;Mn;0;NSM;;;;;N;;;;; -A9B8;JAVANESE VOWEL SIGN SUKU;Mn;0;NSM;;;;;N;;;;; -A9B9;JAVANESE VOWEL SIGN SUKU MENDUT;Mn;0;NSM;;;;;N;;;;; -A9BA;JAVANESE VOWEL SIGN TALING;Mc;0;L;;;;;N;;;;; -A9BB;JAVANESE VOWEL SIGN DIRGA MURE;Mc;0;L;;;;;N;;;;; -A9BC;JAVANESE VOWEL SIGN PEPET;Mn;0;NSM;;;;;N;;;;; -A9BD;JAVANESE CONSONANT SIGN KERET;Mc;0;L;;;;;N;;;;; -A9BE;JAVANESE CONSONANT SIGN PENGKAL;Mc;0;L;;;;;N;;;;; -A9BF;JAVANESE CONSONANT SIGN CAKRA;Mc;0;L;;;;;N;;;;; -A9C0;JAVANESE PANGKON;Mc;9;L;;;;;N;;;;; -A9C1;JAVANESE LEFT RERENGGAN;Po;0;L;;;;;N;;;;; -A9C2;JAVANESE RIGHT RERENGGAN;Po;0;L;;;;;N;;;;; -A9C3;JAVANESE PADA ANDAP;Po;0;L;;;;;N;;;;; -A9C4;JAVANESE PADA MADYA;Po;0;L;;;;;N;;;;; -A9C5;JAVANESE PADA LUHUR;Po;0;L;;;;;N;;;;; -A9C6;JAVANESE PADA WINDU;Po;0;L;;;;;N;;;;; -A9C7;JAVANESE PADA PANGKAT;Po;0;L;;;;;N;;;;; -A9C8;JAVANESE PADA LINGSA;Po;0;L;;;;;N;;;;; -A9C9;JAVANESE PADA LUNGSI;Po;0;L;;;;;N;;;;; -A9CA;JAVANESE PADA ADEG;Po;0;L;;;;;N;;;;; -A9CB;JAVANESE PADA ADEG ADEG;Po;0;L;;;;;N;;;;; -A9CC;JAVANESE PADA PISELEH;Po;0;L;;;;;N;;;;; -A9CD;JAVANESE TURNED PADA PISELEH;Po;0;L;;;;;N;;;;; -A9CF;JAVANESE PANGRANGKEP;Lm;0;L;;;;;N;;;;; -A9D0;JAVANESE DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; -A9D1;JAVANESE DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; -A9D2;JAVANESE DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; -A9D3;JAVANESE DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; -A9D4;JAVANESE DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; -A9D5;JAVANESE DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; -A9D6;JAVANESE DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; -A9D7;JAVANESE DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; -A9D8;JAVANESE DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; -A9D9;JAVANESE DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; -A9DE;JAVANESE PADA TIRTA TUMETES;Po;0;L;;;;;N;;;;; -A9DF;JAVANESE PADA ISEN-ISEN;Po;0;L;;;;;N;;;;; -AA00;CHAM LETTER A;Lo;0;L;;;;;N;;;;; -AA01;CHAM LETTER I;Lo;0;L;;;;;N;;;;; -AA02;CHAM LETTER U;Lo;0;L;;;;;N;;;;; -AA03;CHAM LETTER E;Lo;0;L;;;;;N;;;;; -AA04;CHAM LETTER AI;Lo;0;L;;;;;N;;;;; -AA05;CHAM LETTER O;Lo;0;L;;;;;N;;;;; -AA06;CHAM LETTER KA;Lo;0;L;;;;;N;;;;; -AA07;CHAM LETTER KHA;Lo;0;L;;;;;N;;;;; -AA08;CHAM LETTER GA;Lo;0;L;;;;;N;;;;; -AA09;CHAM LETTER GHA;Lo;0;L;;;;;N;;;;; -AA0A;CHAM LETTER NGUE;Lo;0;L;;;;;N;;;;; -AA0B;CHAM LETTER NGA;Lo;0;L;;;;;N;;;;; -AA0C;CHAM LETTER CHA;Lo;0;L;;;;;N;;;;; -AA0D;CHAM LETTER CHHA;Lo;0;L;;;;;N;;;;; -AA0E;CHAM LETTER JA;Lo;0;L;;;;;N;;;;; -AA0F;CHAM LETTER JHA;Lo;0;L;;;;;N;;;;; -AA10;CHAM LETTER NHUE;Lo;0;L;;;;;N;;;;; -AA11;CHAM LETTER NHA;Lo;0;L;;;;;N;;;;; -AA12;CHAM LETTER NHJA;Lo;0;L;;;;;N;;;;; -AA13;CHAM LETTER TA;Lo;0;L;;;;;N;;;;; -AA14;CHAM LETTER THA;Lo;0;L;;;;;N;;;;; -AA15;CHAM LETTER DA;Lo;0;L;;;;;N;;;;; -AA16;CHAM LETTER DHA;Lo;0;L;;;;;N;;;;; -AA17;CHAM LETTER NUE;Lo;0;L;;;;;N;;;;; -AA18;CHAM LETTER NA;Lo;0;L;;;;;N;;;;; -AA19;CHAM LETTER DDA;Lo;0;L;;;;;N;;;;; -AA1A;CHAM LETTER PA;Lo;0;L;;;;;N;;;;; -AA1B;CHAM LETTER PPA;Lo;0;L;;;;;N;;;;; -AA1C;CHAM LETTER PHA;Lo;0;L;;;;;N;;;;; -AA1D;CHAM LETTER BA;Lo;0;L;;;;;N;;;;; -AA1E;CHAM LETTER BHA;Lo;0;L;;;;;N;;;;; -AA1F;CHAM LETTER MUE;Lo;0;L;;;;;N;;;;; -AA20;CHAM LETTER MA;Lo;0;L;;;;;N;;;;; -AA21;CHAM LETTER BBA;Lo;0;L;;;;;N;;;;; -AA22;CHAM LETTER YA;Lo;0;L;;;;;N;;;;; -AA23;CHAM LETTER RA;Lo;0;L;;;;;N;;;;; -AA24;CHAM LETTER LA;Lo;0;L;;;;;N;;;;; -AA25;CHAM LETTER VA;Lo;0;L;;;;;N;;;;; -AA26;CHAM LETTER SSA;Lo;0;L;;;;;N;;;;; -AA27;CHAM LETTER SA;Lo;0;L;;;;;N;;;;; -AA28;CHAM LETTER HA;Lo;0;L;;;;;N;;;;; -AA29;CHAM VOWEL SIGN AA;Mn;0;NSM;;;;;N;;;;; -AA2A;CHAM VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;; -AA2B;CHAM VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;; -AA2C;CHAM VOWEL SIGN EI;Mn;0;NSM;;;;;N;;;;; -AA2D;CHAM VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; -AA2E;CHAM VOWEL SIGN OE;Mn;0;NSM;;;;;N;;;;; -AA2F;CHAM VOWEL SIGN O;Mc;0;L;;;;;N;;;;; -AA30;CHAM VOWEL SIGN AI;Mc;0;L;;;;;N;;;;; -AA31;CHAM VOWEL SIGN AU;Mn;0;NSM;;;;;N;;;;; -AA32;CHAM VOWEL SIGN UE;Mn;0;NSM;;;;;N;;;;; -AA33;CHAM CONSONANT SIGN YA;Mc;0;L;;;;;N;;;;; -AA34;CHAM CONSONANT SIGN RA;Mc;0;L;;;;;N;;;;; -AA35;CHAM CONSONANT SIGN LA;Mn;0;NSM;;;;;N;;;;; -AA36;CHAM CONSONANT SIGN WA;Mn;0;NSM;;;;;N;;;;; -AA40;CHAM LETTER FINAL K;Lo;0;L;;;;;N;;;;; -AA41;CHAM LETTER FINAL G;Lo;0;L;;;;;N;;;;; -AA42;CHAM LETTER FINAL NG;Lo;0;L;;;;;N;;;;; -AA43;CHAM CONSONANT SIGN FINAL NG;Mn;0;NSM;;;;;N;;;;; -AA44;CHAM LETTER FINAL CH;Lo;0;L;;;;;N;;;;; -AA45;CHAM LETTER FINAL T;Lo;0;L;;;;;N;;;;; -AA46;CHAM LETTER FINAL N;Lo;0;L;;;;;N;;;;; -AA47;CHAM LETTER FINAL P;Lo;0;L;;;;;N;;;;; -AA48;CHAM LETTER FINAL Y;Lo;0;L;;;;;N;;;;; -AA49;CHAM LETTER FINAL R;Lo;0;L;;;;;N;;;;; -AA4A;CHAM LETTER FINAL L;Lo;0;L;;;;;N;;;;; -AA4B;CHAM LETTER FINAL SS;Lo;0;L;;;;;N;;;;; -AA4C;CHAM CONSONANT SIGN FINAL M;Mn;0;NSM;;;;;N;;;;; -AA4D;CHAM CONSONANT SIGN FINAL H;Mc;0;L;;;;;N;;;;; -AA50;CHAM DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; -AA51;CHAM DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; -AA52;CHAM DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; -AA53;CHAM DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; -AA54;CHAM DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; -AA55;CHAM DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; -AA56;CHAM DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; -AA57;CHAM DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; -AA58;CHAM DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; -AA59;CHAM DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; -AA5C;CHAM PUNCTUATION SPIRAL;Po;0;L;;;;;N;;;;; -AA5D;CHAM PUNCTUATION DANDA;Po;0;L;;;;;N;;;;; -AA5E;CHAM PUNCTUATION DOUBLE DANDA;Po;0;L;;;;;N;;;;; -AA5F;CHAM PUNCTUATION TRIPLE DANDA;Po;0;L;;;;;N;;;;; -AA60;MYANMAR LETTER KHAMTI GA;Lo;0;L;;;;;N;;;;; -AA61;MYANMAR LETTER KHAMTI CA;Lo;0;L;;;;;N;;;;; -AA62;MYANMAR LETTER KHAMTI CHA;Lo;0;L;;;;;N;;;;; -AA63;MYANMAR LETTER KHAMTI JA;Lo;0;L;;;;;N;;;;; -AA64;MYANMAR LETTER KHAMTI JHA;Lo;0;L;;;;;N;;;;; -AA65;MYANMAR LETTER KHAMTI NYA;Lo;0;L;;;;;N;;;;; -AA66;MYANMAR LETTER KHAMTI TTA;Lo;0;L;;;;;N;;;;; -AA67;MYANMAR LETTER KHAMTI TTHA;Lo;0;L;;;;;N;;;;; -AA68;MYANMAR LETTER KHAMTI DDA;Lo;0;L;;;;;N;;;;; -AA69;MYANMAR LETTER KHAMTI DDHA;Lo;0;L;;;;;N;;;;; -AA6A;MYANMAR LETTER KHAMTI DHA;Lo;0;L;;;;;N;;;;; -AA6B;MYANMAR LETTER KHAMTI NA;Lo;0;L;;;;;N;;;;; -AA6C;MYANMAR LETTER KHAMTI SA;Lo;0;L;;;;;N;;;;; -AA6D;MYANMAR LETTER KHAMTI HA;Lo;0;L;;;;;N;;;;; -AA6E;MYANMAR LETTER KHAMTI HHA;Lo;0;L;;;;;N;;;;; -AA6F;MYANMAR LETTER KHAMTI FA;Lo;0;L;;;;;N;;;;; -AA70;MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION;Lm;0;L;;;;;N;;;;; -AA71;MYANMAR LETTER KHAMTI XA;Lo;0;L;;;;;N;;;;; -AA72;MYANMAR LETTER KHAMTI ZA;Lo;0;L;;;;;N;;;;; -AA73;MYANMAR LETTER KHAMTI RA;Lo;0;L;;;;;N;;;;; -AA74;MYANMAR LOGOGRAM KHAMTI OAY;Lo;0;L;;;;;N;;;;; -AA75;MYANMAR LOGOGRAM KHAMTI QN;Lo;0;L;;;;;N;;;;; -AA76;MYANMAR LOGOGRAM KHAMTI HM;Lo;0;L;;;;;N;;;;; -AA77;MYANMAR SYMBOL AITON EXCLAMATION;So;0;L;;;;;N;;;;; -AA78;MYANMAR SYMBOL AITON ONE;So;0;L;;;;;N;;;;; -AA79;MYANMAR SYMBOL AITON TWO;So;0;L;;;;;N;;;;; -AA7A;MYANMAR LETTER AITON RA;Lo;0;L;;;;;N;;;;; -AA7B;MYANMAR SIGN PAO KAREN TONE;Mc;0;L;;;;;N;;;;; -AA80;TAI VIET LETTER LOW KO;Lo;0;L;;;;;N;;;;; -AA81;TAI VIET LETTER HIGH KO;Lo;0;L;;;;;N;;;;; -AA82;TAI VIET LETTER LOW KHO;Lo;0;L;;;;;N;;;;; -AA83;TAI VIET LETTER HIGH KHO;Lo;0;L;;;;;N;;;;; -AA84;TAI VIET LETTER LOW KHHO;Lo;0;L;;;;;N;;;;; -AA85;TAI VIET LETTER HIGH KHHO;Lo;0;L;;;;;N;;;;; -AA86;TAI VIET LETTER LOW GO;Lo;0;L;;;;;N;;;;; -AA87;TAI VIET LETTER HIGH GO;Lo;0;L;;;;;N;;;;; -AA88;TAI VIET LETTER LOW NGO;Lo;0;L;;;;;N;;;;; -AA89;TAI VIET LETTER HIGH NGO;Lo;0;L;;;;;N;;;;; -AA8A;TAI VIET LETTER LOW CO;Lo;0;L;;;;;N;;;;; -AA8B;TAI VIET LETTER HIGH CO;Lo;0;L;;;;;N;;;;; -AA8C;TAI VIET LETTER LOW CHO;Lo;0;L;;;;;N;;;;; -AA8D;TAI VIET LETTER HIGH CHO;Lo;0;L;;;;;N;;;;; -AA8E;TAI VIET LETTER LOW SO;Lo;0;L;;;;;N;;;;; -AA8F;TAI VIET LETTER HIGH SO;Lo;0;L;;;;;N;;;;; -AA90;TAI VIET LETTER LOW NYO;Lo;0;L;;;;;N;;;;; -AA91;TAI VIET LETTER HIGH NYO;Lo;0;L;;;;;N;;;;; -AA92;TAI VIET LETTER LOW DO;Lo;0;L;;;;;N;;;;; -AA93;TAI VIET LETTER HIGH DO;Lo;0;L;;;;;N;;;;; -AA94;TAI VIET LETTER LOW TO;Lo;0;L;;;;;N;;;;; -AA95;TAI VIET LETTER HIGH TO;Lo;0;L;;;;;N;;;;; -AA96;TAI VIET LETTER LOW THO;Lo;0;L;;;;;N;;;;; -AA97;TAI VIET LETTER HIGH THO;Lo;0;L;;;;;N;;;;; -AA98;TAI VIET LETTER LOW NO;Lo;0;L;;;;;N;;;;; -AA99;TAI VIET LETTER HIGH NO;Lo;0;L;;;;;N;;;;; -AA9A;TAI VIET LETTER LOW BO;Lo;0;L;;;;;N;;;;; -AA9B;TAI VIET LETTER HIGH BO;Lo;0;L;;;;;N;;;;; -AA9C;TAI VIET LETTER LOW PO;Lo;0;L;;;;;N;;;;; -AA9D;TAI VIET LETTER HIGH PO;Lo;0;L;;;;;N;;;;; -AA9E;TAI VIET LETTER LOW PHO;Lo;0;L;;;;;N;;;;; -AA9F;TAI VIET LETTER HIGH PHO;Lo;0;L;;;;;N;;;;; -AAA0;TAI VIET LETTER LOW FO;Lo;0;L;;;;;N;;;;; -AAA1;TAI VIET LETTER HIGH FO;Lo;0;L;;;;;N;;;;; -AAA2;TAI VIET LETTER LOW MO;Lo;0;L;;;;;N;;;;; -AAA3;TAI VIET LETTER HIGH MO;Lo;0;L;;;;;N;;;;; -AAA4;TAI VIET LETTER LOW YO;Lo;0;L;;;;;N;;;;; -AAA5;TAI VIET LETTER HIGH YO;Lo;0;L;;;;;N;;;;; -AAA6;TAI VIET LETTER LOW RO;Lo;0;L;;;;;N;;;;; -AAA7;TAI VIET LETTER HIGH RO;Lo;0;L;;;;;N;;;;; -AAA8;TAI VIET LETTER LOW LO;Lo;0;L;;;;;N;;;;; -AAA9;TAI VIET LETTER HIGH LO;Lo;0;L;;;;;N;;;;; -AAAA;TAI VIET LETTER LOW VO;Lo;0;L;;;;;N;;;;; -AAAB;TAI VIET LETTER HIGH VO;Lo;0;L;;;;;N;;;;; -AAAC;TAI VIET LETTER LOW HO;Lo;0;L;;;;;N;;;;; -AAAD;TAI VIET LETTER HIGH HO;Lo;0;L;;;;;N;;;;; -AAAE;TAI VIET LETTER LOW O;Lo;0;L;;;;;N;;;;; -AAAF;TAI VIET LETTER HIGH O;Lo;0;L;;;;;N;;;;; -AAB0;TAI VIET MAI KANG;Mn;230;NSM;;;;;N;;;;; -AAB1;TAI VIET VOWEL AA;Lo;0;L;;;;;N;;;;; -AAB2;TAI VIET VOWEL I;Mn;230;NSM;;;;;N;;;;; -AAB3;TAI VIET VOWEL UE;Mn;230;NSM;;;;;N;;;;; -AAB4;TAI VIET VOWEL U;Mn;220;NSM;;;;;N;;;;; -AAB5;TAI VIET VOWEL E;Lo;0;L;;;;;N;;;;; -AAB6;TAI VIET VOWEL O;Lo;0;L;;;;;N;;;;; -AAB7;TAI VIET MAI KHIT;Mn;230;NSM;;;;;N;;;;; -AAB8;TAI VIET VOWEL IA;Mn;230;NSM;;;;;N;;;;; -AAB9;TAI VIET VOWEL UEA;Lo;0;L;;;;;N;;;;; -AABA;TAI VIET VOWEL UA;Lo;0;L;;;;;N;;;;; -AABB;TAI VIET VOWEL AUE;Lo;0;L;;;;;N;;;;; -AABC;TAI VIET VOWEL AY;Lo;0;L;;;;;N;;;;; -AABD;TAI VIET VOWEL AN;Lo;0;L;;;;;N;;;;; -AABE;TAI VIET VOWEL AM;Mn;230;NSM;;;;;N;;;;; -AABF;TAI VIET TONE MAI EK;Mn;230;NSM;;;;;N;;;;; -AAC0;TAI VIET TONE MAI NUENG;Lo;0;L;;;;;N;;;;; -AAC1;TAI VIET TONE MAI THO;Mn;230;NSM;;;;;N;;;;; -AAC2;TAI VIET TONE MAI SONG;Lo;0;L;;;;;N;;;;; -AADB;TAI VIET SYMBOL KON;Lo;0;L;;;;;N;;;;; -AADC;TAI VIET SYMBOL NUENG;Lo;0;L;;;;;N;;;;; -AADD;TAI VIET SYMBOL SAM;Lm;0;L;;;;;N;;;;; -AADE;TAI VIET SYMBOL HO HOI;Po;0;L;;;;;N;;;;; -AADF;TAI VIET SYMBOL KOI KOI;Po;0;L;;;;;N;;;;; -ABC0;MEETEI MAYEK LETTER KOK;Lo;0;L;;;;;N;;;;; -ABC1;MEETEI MAYEK LETTER SAM;Lo;0;L;;;;;N;;;;; -ABC2;MEETEI MAYEK LETTER LAI;Lo;0;L;;;;;N;;;;; -ABC3;MEETEI MAYEK LETTER MIT;Lo;0;L;;;;;N;;;;; -ABC4;MEETEI MAYEK LETTER PA;Lo;0;L;;;;;N;;;;; -ABC5;MEETEI MAYEK LETTER NA;Lo;0;L;;;;;N;;;;; -ABC6;MEETEI MAYEK LETTER CHIL;Lo;0;L;;;;;N;;;;; -ABC7;MEETEI MAYEK LETTER TIL;Lo;0;L;;;;;N;;;;; -ABC8;MEETEI MAYEK LETTER KHOU;Lo;0;L;;;;;N;;;;; -ABC9;MEETEI MAYEK LETTER NGOU;Lo;0;L;;;;;N;;;;; -ABCA;MEETEI MAYEK LETTER THOU;Lo;0;L;;;;;N;;;;; -ABCB;MEETEI MAYEK LETTER WAI;Lo;0;L;;;;;N;;;;; -ABCC;MEETEI MAYEK LETTER YANG;Lo;0;L;;;;;N;;;;; -ABCD;MEETEI MAYEK LETTER HUK;Lo;0;L;;;;;N;;;;; -ABCE;MEETEI MAYEK LETTER UN;Lo;0;L;;;;;N;;;;; -ABCF;MEETEI MAYEK LETTER I;Lo;0;L;;;;;N;;;;; -ABD0;MEETEI MAYEK LETTER PHAM;Lo;0;L;;;;;N;;;;; -ABD1;MEETEI MAYEK LETTER ATIYA;Lo;0;L;;;;;N;;;;; -ABD2;MEETEI MAYEK LETTER GOK;Lo;0;L;;;;;N;;;;; -ABD3;MEETEI MAYEK LETTER JHAM;Lo;0;L;;;;;N;;;;; -ABD4;MEETEI MAYEK LETTER RAI;Lo;0;L;;;;;N;;;;; -ABD5;MEETEI MAYEK LETTER BA;Lo;0;L;;;;;N;;;;; -ABD6;MEETEI MAYEK LETTER JIL;Lo;0;L;;;;;N;;;;; -ABD7;MEETEI MAYEK LETTER DIL;Lo;0;L;;;;;N;;;;; -ABD8;MEETEI MAYEK LETTER GHOU;Lo;0;L;;;;;N;;;;; -ABD9;MEETEI MAYEK LETTER DHOU;Lo;0;L;;;;;N;;;;; -ABDA;MEETEI MAYEK LETTER BHAM;Lo;0;L;;;;;N;;;;; -ABDB;MEETEI MAYEK LETTER KOK LONSUM;Lo;0;L;;;;;N;;;;; -ABDC;MEETEI MAYEK LETTER LAI LONSUM;Lo;0;L;;;;;N;;;;; -ABDD;MEETEI MAYEK LETTER MIT LONSUM;Lo;0;L;;;;;N;;;;; -ABDE;MEETEI MAYEK LETTER PA LONSUM;Lo;0;L;;;;;N;;;;; -ABDF;MEETEI MAYEK LETTER NA LONSUM;Lo;0;L;;;;;N;;;;; -ABE0;MEETEI MAYEK LETTER TIL LONSUM;Lo;0;L;;;;;N;;;;; -ABE1;MEETEI MAYEK LETTER NGOU LONSUM;Lo;0;L;;;;;N;;;;; -ABE2;MEETEI MAYEK LETTER I LONSUM;Lo;0;L;;;;;N;;;;; -ABE3;MEETEI MAYEK VOWEL SIGN ONAP;Mc;0;L;;;;;N;;;;; -ABE4;MEETEI MAYEK VOWEL SIGN INAP;Mc;0;L;;;;;N;;;;; -ABE5;MEETEI MAYEK VOWEL SIGN ANAP;Mn;0;NSM;;;;;N;;;;; -ABE6;MEETEI MAYEK VOWEL SIGN YENAP;Mc;0;L;;;;;N;;;;; -ABE7;MEETEI MAYEK VOWEL SIGN SOUNAP;Mc;0;L;;;;;N;;;;; -ABE8;MEETEI MAYEK VOWEL SIGN UNAP;Mn;0;NSM;;;;;N;;;;; -ABE9;MEETEI MAYEK VOWEL SIGN CHEINAP;Mc;0;L;;;;;N;;;;; -ABEA;MEETEI MAYEK VOWEL SIGN NUNG;Mc;0;L;;;;;N;;;;; -ABEB;MEETEI MAYEK CHEIKHEI;Po;0;L;;;;;N;;;;; -ABEC;MEETEI MAYEK LUM IYEK;Mc;0;L;;;;;N;;;;; -ABED;MEETEI MAYEK APUN IYEK;Mn;9;NSM;;;;;N;;;;; -ABF0;MEETEI MAYEK DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; -ABF1;MEETEI MAYEK DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; -ABF2;MEETEI MAYEK DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; -ABF3;MEETEI MAYEK DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; -ABF4;MEETEI MAYEK DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; -ABF5;MEETEI MAYEK DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; -ABF6;MEETEI MAYEK DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; -ABF7;MEETEI MAYEK DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; -ABF8;MEETEI MAYEK DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; -ABF9;MEETEI MAYEK DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; -AC00;;Lo;0;L;;;;;N;;;;; -D7A3;;Lo;0;L;;;;;N;;;;; -D7B0;HANGUL JUNGSEONG O-YEO;Lo;0;L;;;;;N;;;;; -D7B1;HANGUL JUNGSEONG O-O-I;Lo;0;L;;;;;N;;;;; -D7B2;HANGUL JUNGSEONG YO-A;Lo;0;L;;;;;N;;;;; -D7B3;HANGUL JUNGSEONG YO-AE;Lo;0;L;;;;;N;;;;; -D7B4;HANGUL JUNGSEONG YO-EO;Lo;0;L;;;;;N;;;;; -D7B5;HANGUL JUNGSEONG U-YEO;Lo;0;L;;;;;N;;;;; -D7B6;HANGUL JUNGSEONG U-I-I;Lo;0;L;;;;;N;;;;; -D7B7;HANGUL JUNGSEONG YU-AE;Lo;0;L;;;;;N;;;;; -D7B8;HANGUL JUNGSEONG YU-O;Lo;0;L;;;;;N;;;;; -D7B9;HANGUL JUNGSEONG EU-A;Lo;0;L;;;;;N;;;;; -D7BA;HANGUL JUNGSEONG EU-EO;Lo;0;L;;;;;N;;;;; -D7BB;HANGUL JUNGSEONG EU-E;Lo;0;L;;;;;N;;;;; -D7BC;HANGUL JUNGSEONG EU-O;Lo;0;L;;;;;N;;;;; -D7BD;HANGUL JUNGSEONG I-YA-O;Lo;0;L;;;;;N;;;;; -D7BE;HANGUL JUNGSEONG I-YAE;Lo;0;L;;;;;N;;;;; -D7BF;HANGUL JUNGSEONG I-YEO;Lo;0;L;;;;;N;;;;; -D7C0;HANGUL JUNGSEONG I-YE;Lo;0;L;;;;;N;;;;; -D7C1;HANGUL JUNGSEONG I-O-I;Lo;0;L;;;;;N;;;;; -D7C2;HANGUL JUNGSEONG I-YO;Lo;0;L;;;;;N;;;;; -D7C3;HANGUL JUNGSEONG I-YU;Lo;0;L;;;;;N;;;;; -D7C4;HANGUL JUNGSEONG I-I;Lo;0;L;;;;;N;;;;; -D7C5;HANGUL JUNGSEONG ARAEA-A;Lo;0;L;;;;;N;;;;; -D7C6;HANGUL JUNGSEONG ARAEA-E;Lo;0;L;;;;;N;;;;; -D7CB;HANGUL JONGSEONG NIEUN-RIEUL;Lo;0;L;;;;;N;;;;; -D7CC;HANGUL JONGSEONG NIEUN-CHIEUCH;Lo;0;L;;;;;N;;;;; -D7CD;HANGUL JONGSEONG SSANGTIKEUT;Lo;0;L;;;;;N;;;;; -D7CE;HANGUL JONGSEONG SSANGTIKEUT-PIEUP;Lo;0;L;;;;;N;;;;; -D7CF;HANGUL JONGSEONG TIKEUT-PIEUP;Lo;0;L;;;;;N;;;;; -D7D0;HANGUL JONGSEONG TIKEUT-SIOS;Lo;0;L;;;;;N;;;;; -D7D1;HANGUL JONGSEONG TIKEUT-SIOS-KIYEOK;Lo;0;L;;;;;N;;;;; -D7D2;HANGUL JONGSEONG TIKEUT-CIEUC;Lo;0;L;;;;;N;;;;; -D7D3;HANGUL JONGSEONG TIKEUT-CHIEUCH;Lo;0;L;;;;;N;;;;; -D7D4;HANGUL JONGSEONG TIKEUT-THIEUTH;Lo;0;L;;;;;N;;;;; -D7D5;HANGUL JONGSEONG RIEUL-SSANGKIYEOK;Lo;0;L;;;;;N;;;;; -D7D6;HANGUL JONGSEONG RIEUL-KIYEOK-HIEUH;Lo;0;L;;;;;N;;;;; -D7D7;HANGUL JONGSEONG SSANGRIEUL-KHIEUKH;Lo;0;L;;;;;N;;;;; -D7D8;HANGUL JONGSEONG RIEUL-MIEUM-HIEUH;Lo;0;L;;;;;N;;;;; -D7D9;HANGUL JONGSEONG RIEUL-PIEUP-TIKEUT;Lo;0;L;;;;;N;;;;; -D7DA;HANGUL JONGSEONG RIEUL-PIEUP-PHIEUPH;Lo;0;L;;;;;N;;;;; -D7DB;HANGUL JONGSEONG RIEUL-YESIEUNG;Lo;0;L;;;;;N;;;;; -D7DC;HANGUL JONGSEONG RIEUL-YEORINHIEUH-HIEUH;Lo;0;L;;;;;N;;;;; -D7DD;HANGUL JONGSEONG KAPYEOUNRIEUL;Lo;0;L;;;;;N;;;;; -D7DE;HANGUL JONGSEONG MIEUM-NIEUN;Lo;0;L;;;;;N;;;;; -D7DF;HANGUL JONGSEONG MIEUM-SSANGNIEUN;Lo;0;L;;;;;N;;;;; -D7E0;HANGUL JONGSEONG SSANGMIEUM;Lo;0;L;;;;;N;;;;; -D7E1;HANGUL JONGSEONG MIEUM-PIEUP-SIOS;Lo;0;L;;;;;N;;;;; -D7E2;HANGUL JONGSEONG MIEUM-CIEUC;Lo;0;L;;;;;N;;;;; -D7E3;HANGUL JONGSEONG PIEUP-TIKEUT;Lo;0;L;;;;;N;;;;; -D7E4;HANGUL JONGSEONG PIEUP-RIEUL-PHIEUPH;Lo;0;L;;;;;N;;;;; -D7E5;HANGUL JONGSEONG PIEUP-MIEUM;Lo;0;L;;;;;N;;;;; -D7E6;HANGUL JONGSEONG SSANGPIEUP;Lo;0;L;;;;;N;;;;; -D7E7;HANGUL JONGSEONG PIEUP-SIOS-TIKEUT;Lo;0;L;;;;;N;;;;; -D7E8;HANGUL JONGSEONG PIEUP-CIEUC;Lo;0;L;;;;;N;;;;; -D7E9;HANGUL JONGSEONG PIEUP-CHIEUCH;Lo;0;L;;;;;N;;;;; -D7EA;HANGUL JONGSEONG SIOS-MIEUM;Lo;0;L;;;;;N;;;;; -D7EB;HANGUL JONGSEONG SIOS-KAPYEOUNPIEUP;Lo;0;L;;;;;N;;;;; -D7EC;HANGUL JONGSEONG SSANGSIOS-KIYEOK;Lo;0;L;;;;;N;;;;; -D7ED;HANGUL JONGSEONG SSANGSIOS-TIKEUT;Lo;0;L;;;;;N;;;;; -D7EE;HANGUL JONGSEONG SIOS-PANSIOS;Lo;0;L;;;;;N;;;;; -D7EF;HANGUL JONGSEONG SIOS-CIEUC;Lo;0;L;;;;;N;;;;; -D7F0;HANGUL JONGSEONG SIOS-CHIEUCH;Lo;0;L;;;;;N;;;;; -D7F1;HANGUL JONGSEONG SIOS-THIEUTH;Lo;0;L;;;;;N;;;;; -D7F2;HANGUL JONGSEONG SIOS-HIEUH;Lo;0;L;;;;;N;;;;; -D7F3;HANGUL JONGSEONG PANSIOS-PIEUP;Lo;0;L;;;;;N;;;;; -D7F4;HANGUL JONGSEONG PANSIOS-KAPYEOUNPIEUP;Lo;0;L;;;;;N;;;;; -D7F5;HANGUL JONGSEONG YESIEUNG-MIEUM;Lo;0;L;;;;;N;;;;; -D7F6;HANGUL JONGSEONG YESIEUNG-HIEUH;Lo;0;L;;;;;N;;;;; -D7F7;HANGUL JONGSEONG CIEUC-PIEUP;Lo;0;L;;;;;N;;;;; -D7F8;HANGUL JONGSEONG CIEUC-SSANGPIEUP;Lo;0;L;;;;;N;;;;; -D7F9;HANGUL JONGSEONG SSANGCIEUC;Lo;0;L;;;;;N;;;;; -D7FA;HANGUL JONGSEONG PHIEUPH-SIOS;Lo;0;L;;;;;N;;;;; -D7FB;HANGUL JONGSEONG PHIEUPH-THIEUTH;Lo;0;L;;;;;N;;;;; -D800;;Cs;0;L;;;;;N;;;;; -DB7F;;Cs;0;L;;;;;N;;;;; -DB80;;Cs;0;L;;;;;N;;;;; -DBFF;;Cs;0;L;;;;;N;;;;; -DC00;;Cs;0;L;;;;;N;;;;; -DFFF;;Cs;0;L;;;;;N;;;;; -E000;;Co;0;L;;;;;N;;;;; -F8FF;;Co;0;L;;;;;N;;;;; -F900;CJK COMPATIBILITY IDEOGRAPH-F900;Lo;0;L;8C48;;;;N;;;;; -F901;CJK COMPATIBILITY IDEOGRAPH-F901;Lo;0;L;66F4;;;;N;;;;; -F902;CJK COMPATIBILITY IDEOGRAPH-F902;Lo;0;L;8ECA;;;;N;;;;; -F903;CJK COMPATIBILITY IDEOGRAPH-F903;Lo;0;L;8CC8;;;;N;;;;; -F904;CJK COMPATIBILITY IDEOGRAPH-F904;Lo;0;L;6ED1;;;;N;;;;; -F905;CJK COMPATIBILITY IDEOGRAPH-F905;Lo;0;L;4E32;;;;N;;;;; -F906;CJK COMPATIBILITY IDEOGRAPH-F906;Lo;0;L;53E5;;;;N;;;;; -F907;CJK COMPATIBILITY IDEOGRAPH-F907;Lo;0;L;9F9C;;;;N;;;;; -F908;CJK COMPATIBILITY IDEOGRAPH-F908;Lo;0;L;9F9C;;;;N;;;;; -F909;CJK COMPATIBILITY IDEOGRAPH-F909;Lo;0;L;5951;;;;N;;;;; -F90A;CJK COMPATIBILITY IDEOGRAPH-F90A;Lo;0;L;91D1;;;;N;;;;; -F90B;CJK COMPATIBILITY IDEOGRAPH-F90B;Lo;0;L;5587;;;;N;;;;; -F90C;CJK COMPATIBILITY IDEOGRAPH-F90C;Lo;0;L;5948;;;;N;;;;; -F90D;CJK COMPATIBILITY IDEOGRAPH-F90D;Lo;0;L;61F6;;;;N;;;;; -F90E;CJK COMPATIBILITY IDEOGRAPH-F90E;Lo;0;L;7669;;;;N;;;;; -F90F;CJK COMPATIBILITY IDEOGRAPH-F90F;Lo;0;L;7F85;;;;N;;;;; -F910;CJK COMPATIBILITY IDEOGRAPH-F910;Lo;0;L;863F;;;;N;;;;; -F911;CJK COMPATIBILITY IDEOGRAPH-F911;Lo;0;L;87BA;;;;N;;;;; -F912;CJK COMPATIBILITY IDEOGRAPH-F912;Lo;0;L;88F8;;;;N;;;;; -F913;CJK COMPATIBILITY IDEOGRAPH-F913;Lo;0;L;908F;;;;N;;;;; -F914;CJK COMPATIBILITY IDEOGRAPH-F914;Lo;0;L;6A02;;;;N;;;;; -F915;CJK COMPATIBILITY IDEOGRAPH-F915;Lo;0;L;6D1B;;;;N;;;;; -F916;CJK COMPATIBILITY IDEOGRAPH-F916;Lo;0;L;70D9;;;;N;;;;; -F917;CJK COMPATIBILITY IDEOGRAPH-F917;Lo;0;L;73DE;;;;N;;;;; -F918;CJK COMPATIBILITY IDEOGRAPH-F918;Lo;0;L;843D;;;;N;;;;; -F919;CJK COMPATIBILITY IDEOGRAPH-F919;Lo;0;L;916A;;;;N;;;;; -F91A;CJK COMPATIBILITY IDEOGRAPH-F91A;Lo;0;L;99F1;;;;N;;;;; -F91B;CJK COMPATIBILITY IDEOGRAPH-F91B;Lo;0;L;4E82;;;;N;;;;; -F91C;CJK COMPATIBILITY IDEOGRAPH-F91C;Lo;0;L;5375;;;;N;;;;; -F91D;CJK COMPATIBILITY IDEOGRAPH-F91D;Lo;0;L;6B04;;;;N;;;;; -F91E;CJK COMPATIBILITY IDEOGRAPH-F91E;Lo;0;L;721B;;;;N;;;;; -F91F;CJK COMPATIBILITY IDEOGRAPH-F91F;Lo;0;L;862D;;;;N;;;;; -F920;CJK COMPATIBILITY IDEOGRAPH-F920;Lo;0;L;9E1E;;;;N;;;;; -F921;CJK COMPATIBILITY IDEOGRAPH-F921;Lo;0;L;5D50;;;;N;;;;; -F922;CJK COMPATIBILITY IDEOGRAPH-F922;Lo;0;L;6FEB;;;;N;;;;; -F923;CJK COMPATIBILITY IDEOGRAPH-F923;Lo;0;L;85CD;;;;N;;;;; -F924;CJK COMPATIBILITY IDEOGRAPH-F924;Lo;0;L;8964;;;;N;;;;; -F925;CJK COMPATIBILITY IDEOGRAPH-F925;Lo;0;L;62C9;;;;N;;;;; -F926;CJK COMPATIBILITY IDEOGRAPH-F926;Lo;0;L;81D8;;;;N;;;;; -F927;CJK COMPATIBILITY IDEOGRAPH-F927;Lo;0;L;881F;;;;N;;;;; -F928;CJK COMPATIBILITY IDEOGRAPH-F928;Lo;0;L;5ECA;;;;N;;;;; -F929;CJK COMPATIBILITY IDEOGRAPH-F929;Lo;0;L;6717;;;;N;;;;; -F92A;CJK COMPATIBILITY IDEOGRAPH-F92A;Lo;0;L;6D6A;;;;N;;;;; -F92B;CJK COMPATIBILITY IDEOGRAPH-F92B;Lo;0;L;72FC;;;;N;;;;; -F92C;CJK COMPATIBILITY IDEOGRAPH-F92C;Lo;0;L;90CE;;;;N;;;;; -F92D;CJK COMPATIBILITY IDEOGRAPH-F92D;Lo;0;L;4F86;;;;N;;;;; -F92E;CJK COMPATIBILITY IDEOGRAPH-F92E;Lo;0;L;51B7;;;;N;;;;; -F92F;CJK COMPATIBILITY IDEOGRAPH-F92F;Lo;0;L;52DE;;;;N;;;;; -F930;CJK COMPATIBILITY IDEOGRAPH-F930;Lo;0;L;64C4;;;;N;;;;; -F931;CJK COMPATIBILITY IDEOGRAPH-F931;Lo;0;L;6AD3;;;;N;;;;; -F932;CJK COMPATIBILITY IDEOGRAPH-F932;Lo;0;L;7210;;;;N;;;;; -F933;CJK COMPATIBILITY IDEOGRAPH-F933;Lo;0;L;76E7;;;;N;;;;; -F934;CJK COMPATIBILITY IDEOGRAPH-F934;Lo;0;L;8001;;;;N;;;;; -F935;CJK COMPATIBILITY IDEOGRAPH-F935;Lo;0;L;8606;;;;N;;;;; -F936;CJK COMPATIBILITY IDEOGRAPH-F936;Lo;0;L;865C;;;;N;;;;; -F937;CJK COMPATIBILITY IDEOGRAPH-F937;Lo;0;L;8DEF;;;;N;;;;; -F938;CJK COMPATIBILITY IDEOGRAPH-F938;Lo;0;L;9732;;;;N;;;;; -F939;CJK COMPATIBILITY IDEOGRAPH-F939;Lo;0;L;9B6F;;;;N;;;;; -F93A;CJK COMPATIBILITY IDEOGRAPH-F93A;Lo;0;L;9DFA;;;;N;;;;; -F93B;CJK COMPATIBILITY IDEOGRAPH-F93B;Lo;0;L;788C;;;;N;;;;; -F93C;CJK COMPATIBILITY IDEOGRAPH-F93C;Lo;0;L;797F;;;;N;;;;; -F93D;CJK COMPATIBILITY IDEOGRAPH-F93D;Lo;0;L;7DA0;;;;N;;;;; -F93E;CJK COMPATIBILITY IDEOGRAPH-F93E;Lo;0;L;83C9;;;;N;;;;; -F93F;CJK COMPATIBILITY IDEOGRAPH-F93F;Lo;0;L;9304;;;;N;;;;; -F940;CJK COMPATIBILITY IDEOGRAPH-F940;Lo;0;L;9E7F;;;;N;;;;; -F941;CJK COMPATIBILITY IDEOGRAPH-F941;Lo;0;L;8AD6;;;;N;;;;; -F942;CJK COMPATIBILITY IDEOGRAPH-F942;Lo;0;L;58DF;;;;N;;;;; -F943;CJK COMPATIBILITY IDEOGRAPH-F943;Lo;0;L;5F04;;;;N;;;;; -F944;CJK COMPATIBILITY IDEOGRAPH-F944;Lo;0;L;7C60;;;;N;;;;; -F945;CJK COMPATIBILITY IDEOGRAPH-F945;Lo;0;L;807E;;;;N;;;;; -F946;CJK COMPATIBILITY IDEOGRAPH-F946;Lo;0;L;7262;;;;N;;;;; -F947;CJK COMPATIBILITY IDEOGRAPH-F947;Lo;0;L;78CA;;;;N;;;;; -F948;CJK COMPATIBILITY IDEOGRAPH-F948;Lo;0;L;8CC2;;;;N;;;;; -F949;CJK COMPATIBILITY IDEOGRAPH-F949;Lo;0;L;96F7;;;;N;;;;; -F94A;CJK COMPATIBILITY IDEOGRAPH-F94A;Lo;0;L;58D8;;;;N;;;;; -F94B;CJK COMPATIBILITY IDEOGRAPH-F94B;Lo;0;L;5C62;;;;N;;;;; -F94C;CJK COMPATIBILITY IDEOGRAPH-F94C;Lo;0;L;6A13;;;;N;;;;; -F94D;CJK COMPATIBILITY IDEOGRAPH-F94D;Lo;0;L;6DDA;;;;N;;;;; -F94E;CJK COMPATIBILITY IDEOGRAPH-F94E;Lo;0;L;6F0F;;;;N;;;;; -F94F;CJK COMPATIBILITY IDEOGRAPH-F94F;Lo;0;L;7D2F;;;;N;;;;; -F950;CJK COMPATIBILITY IDEOGRAPH-F950;Lo;0;L;7E37;;;;N;;;;; -F951;CJK COMPATIBILITY IDEOGRAPH-F951;Lo;0;L;964B;;;;N;;;;; -F952;CJK COMPATIBILITY IDEOGRAPH-F952;Lo;0;L;52D2;;;;N;;;;; -F953;CJK COMPATIBILITY IDEOGRAPH-F953;Lo;0;L;808B;;;;N;;;;; -F954;CJK COMPATIBILITY IDEOGRAPH-F954;Lo;0;L;51DC;;;;N;;;;; -F955;CJK COMPATIBILITY IDEOGRAPH-F955;Lo;0;L;51CC;;;;N;;;;; -F956;CJK COMPATIBILITY IDEOGRAPH-F956;Lo;0;L;7A1C;;;;N;;;;; -F957;CJK COMPATIBILITY IDEOGRAPH-F957;Lo;0;L;7DBE;;;;N;;;;; -F958;CJK COMPATIBILITY IDEOGRAPH-F958;Lo;0;L;83F1;;;;N;;;;; -F959;CJK COMPATIBILITY IDEOGRAPH-F959;Lo;0;L;9675;;;;N;;;;; -F95A;CJK COMPATIBILITY IDEOGRAPH-F95A;Lo;0;L;8B80;;;;N;;;;; -F95B;CJK COMPATIBILITY IDEOGRAPH-F95B;Lo;0;L;62CF;;;;N;;;;; -F95C;CJK COMPATIBILITY IDEOGRAPH-F95C;Lo;0;L;6A02;;;;N;;;;; -F95D;CJK COMPATIBILITY IDEOGRAPH-F95D;Lo;0;L;8AFE;;;;N;;;;; -F95E;CJK COMPATIBILITY IDEOGRAPH-F95E;Lo;0;L;4E39;;;;N;;;;; -F95F;CJK COMPATIBILITY IDEOGRAPH-F95F;Lo;0;L;5BE7;;;;N;;;;; -F960;CJK COMPATIBILITY IDEOGRAPH-F960;Lo;0;L;6012;;;;N;;;;; -F961;CJK COMPATIBILITY IDEOGRAPH-F961;Lo;0;L;7387;;;;N;;;;; -F962;CJK COMPATIBILITY IDEOGRAPH-F962;Lo;0;L;7570;;;;N;;;;; -F963;CJK COMPATIBILITY IDEOGRAPH-F963;Lo;0;L;5317;;;;N;;;;; -F964;CJK COMPATIBILITY IDEOGRAPH-F964;Lo;0;L;78FB;;;;N;;;;; -F965;CJK COMPATIBILITY IDEOGRAPH-F965;Lo;0;L;4FBF;;;;N;;;;; -F966;CJK COMPATIBILITY IDEOGRAPH-F966;Lo;0;L;5FA9;;;;N;;;;; -F967;CJK COMPATIBILITY IDEOGRAPH-F967;Lo;0;L;4E0D;;;;N;;;;; -F968;CJK COMPATIBILITY IDEOGRAPH-F968;Lo;0;L;6CCC;;;;N;;;;; -F969;CJK COMPATIBILITY IDEOGRAPH-F969;Lo;0;L;6578;;;;N;;;;; -F96A;CJK COMPATIBILITY IDEOGRAPH-F96A;Lo;0;L;7D22;;;;N;;;;; -F96B;CJK COMPATIBILITY IDEOGRAPH-F96B;Lo;0;L;53C3;;;3;N;;;;; -F96C;CJK COMPATIBILITY IDEOGRAPH-F96C;Lo;0;L;585E;;;;N;;;;; -F96D;CJK COMPATIBILITY IDEOGRAPH-F96D;Lo;0;L;7701;;;;N;;;;; -F96E;CJK COMPATIBILITY IDEOGRAPH-F96E;Lo;0;L;8449;;;;N;;;;; -F96F;CJK COMPATIBILITY IDEOGRAPH-F96F;Lo;0;L;8AAA;;;;N;;;;; -F970;CJK COMPATIBILITY IDEOGRAPH-F970;Lo;0;L;6BBA;;;;N;;;;; -F971;CJK COMPATIBILITY IDEOGRAPH-F971;Lo;0;L;8FB0;;;;N;;;;; -F972;CJK COMPATIBILITY IDEOGRAPH-F972;Lo;0;L;6C88;;;;N;;;;; -F973;CJK COMPATIBILITY IDEOGRAPH-F973;Lo;0;L;62FE;;;10;N;;;;; -F974;CJK COMPATIBILITY IDEOGRAPH-F974;Lo;0;L;82E5;;;;N;;;;; -F975;CJK COMPATIBILITY IDEOGRAPH-F975;Lo;0;L;63A0;;;;N;;;;; -F976;CJK COMPATIBILITY IDEOGRAPH-F976;Lo;0;L;7565;;;;N;;;;; -F977;CJK COMPATIBILITY IDEOGRAPH-F977;Lo;0;L;4EAE;;;;N;;;;; -F978;CJK COMPATIBILITY IDEOGRAPH-F978;Lo;0;L;5169;;;2;N;;;;; -F979;CJK COMPATIBILITY IDEOGRAPH-F979;Lo;0;L;51C9;;;;N;;;;; -F97A;CJK COMPATIBILITY IDEOGRAPH-F97A;Lo;0;L;6881;;;;N;;;;; -F97B;CJK COMPATIBILITY IDEOGRAPH-F97B;Lo;0;L;7CE7;;;;N;;;;; -F97C;CJK COMPATIBILITY IDEOGRAPH-F97C;Lo;0;L;826F;;;;N;;;;; -F97D;CJK COMPATIBILITY IDEOGRAPH-F97D;Lo;0;L;8AD2;;;;N;;;;; -F97E;CJK COMPATIBILITY IDEOGRAPH-F97E;Lo;0;L;91CF;;;;N;;;;; -F97F;CJK COMPATIBILITY IDEOGRAPH-F97F;Lo;0;L;52F5;;;;N;;;;; -F980;CJK COMPATIBILITY IDEOGRAPH-F980;Lo;0;L;5442;;;;N;;;;; -F981;CJK COMPATIBILITY IDEOGRAPH-F981;Lo;0;L;5973;;;;N;;;;; -F982;CJK COMPATIBILITY IDEOGRAPH-F982;Lo;0;L;5EEC;;;;N;;;;; -F983;CJK COMPATIBILITY IDEOGRAPH-F983;Lo;0;L;65C5;;;;N;;;;; -F984;CJK COMPATIBILITY IDEOGRAPH-F984;Lo;0;L;6FFE;;;;N;;;;; -F985;CJK COMPATIBILITY IDEOGRAPH-F985;Lo;0;L;792A;;;;N;;;;; -F986;CJK COMPATIBILITY IDEOGRAPH-F986;Lo;0;L;95AD;;;;N;;;;; -F987;CJK COMPATIBILITY IDEOGRAPH-F987;Lo;0;L;9A6A;;;;N;;;;; -F988;CJK COMPATIBILITY IDEOGRAPH-F988;Lo;0;L;9E97;;;;N;;;;; -F989;CJK COMPATIBILITY IDEOGRAPH-F989;Lo;0;L;9ECE;;;;N;;;;; -F98A;CJK COMPATIBILITY IDEOGRAPH-F98A;Lo;0;L;529B;;;;N;;;;; -F98B;CJK COMPATIBILITY IDEOGRAPH-F98B;Lo;0;L;66C6;;;;N;;;;; -F98C;CJK COMPATIBILITY IDEOGRAPH-F98C;Lo;0;L;6B77;;;;N;;;;; -F98D;CJK COMPATIBILITY IDEOGRAPH-F98D;Lo;0;L;8F62;;;;N;;;;; -F98E;CJK COMPATIBILITY IDEOGRAPH-F98E;Lo;0;L;5E74;;;;N;;;;; -F98F;CJK COMPATIBILITY IDEOGRAPH-F98F;Lo;0;L;6190;;;;N;;;;; -F990;CJK COMPATIBILITY IDEOGRAPH-F990;Lo;0;L;6200;;;;N;;;;; -F991;CJK COMPATIBILITY IDEOGRAPH-F991;Lo;0;L;649A;;;;N;;;;; -F992;CJK COMPATIBILITY IDEOGRAPH-F992;Lo;0;L;6F23;;;;N;;;;; -F993;CJK COMPATIBILITY IDEOGRAPH-F993;Lo;0;L;7149;;;;N;;;;; -F994;CJK COMPATIBILITY IDEOGRAPH-F994;Lo;0;L;7489;;;;N;;;;; -F995;CJK COMPATIBILITY IDEOGRAPH-F995;Lo;0;L;79CA;;;;N;;;;; -F996;CJK COMPATIBILITY IDEOGRAPH-F996;Lo;0;L;7DF4;;;;N;;;;; -F997;CJK COMPATIBILITY IDEOGRAPH-F997;Lo;0;L;806F;;;;N;;;;; -F998;CJK COMPATIBILITY IDEOGRAPH-F998;Lo;0;L;8F26;;;;N;;;;; -F999;CJK COMPATIBILITY IDEOGRAPH-F999;Lo;0;L;84EE;;;;N;;;;; -F99A;CJK COMPATIBILITY IDEOGRAPH-F99A;Lo;0;L;9023;;;;N;;;;; -F99B;CJK COMPATIBILITY IDEOGRAPH-F99B;Lo;0;L;934A;;;;N;;;;; -F99C;CJK COMPATIBILITY IDEOGRAPH-F99C;Lo;0;L;5217;;;;N;;;;; -F99D;CJK COMPATIBILITY IDEOGRAPH-F99D;Lo;0;L;52A3;;;;N;;;;; -F99E;CJK COMPATIBILITY IDEOGRAPH-F99E;Lo;0;L;54BD;;;;N;;;;; -F99F;CJK COMPATIBILITY IDEOGRAPH-F99F;Lo;0;L;70C8;;;;N;;;;; -F9A0;CJK COMPATIBILITY IDEOGRAPH-F9A0;Lo;0;L;88C2;;;;N;;;;; -F9A1;CJK COMPATIBILITY IDEOGRAPH-F9A1;Lo;0;L;8AAA;;;;N;;;;; -F9A2;CJK COMPATIBILITY IDEOGRAPH-F9A2;Lo;0;L;5EC9;;;;N;;;;; -F9A3;CJK COMPATIBILITY IDEOGRAPH-F9A3;Lo;0;L;5FF5;;;;N;;;;; -F9A4;CJK COMPATIBILITY IDEOGRAPH-F9A4;Lo;0;L;637B;;;;N;;;;; -F9A5;CJK COMPATIBILITY IDEOGRAPH-F9A5;Lo;0;L;6BAE;;;;N;;;;; -F9A6;CJK COMPATIBILITY IDEOGRAPH-F9A6;Lo;0;L;7C3E;;;;N;;;;; -F9A7;CJK COMPATIBILITY IDEOGRAPH-F9A7;Lo;0;L;7375;;;;N;;;;; -F9A8;CJK COMPATIBILITY IDEOGRAPH-F9A8;Lo;0;L;4EE4;;;;N;;;;; -F9A9;CJK COMPATIBILITY IDEOGRAPH-F9A9;Lo;0;L;56F9;;;;N;;;;; -F9AA;CJK COMPATIBILITY IDEOGRAPH-F9AA;Lo;0;L;5BE7;;;;N;;;;; -F9AB;CJK COMPATIBILITY IDEOGRAPH-F9AB;Lo;0;L;5DBA;;;;N;;;;; -F9AC;CJK COMPATIBILITY IDEOGRAPH-F9AC;Lo;0;L;601C;;;;N;;;;; -F9AD;CJK COMPATIBILITY IDEOGRAPH-F9AD;Lo;0;L;73B2;;;;N;;;;; -F9AE;CJK COMPATIBILITY IDEOGRAPH-F9AE;Lo;0;L;7469;;;;N;;;;; -F9AF;CJK COMPATIBILITY IDEOGRAPH-F9AF;Lo;0;L;7F9A;;;;N;;;;; -F9B0;CJK COMPATIBILITY IDEOGRAPH-F9B0;Lo;0;L;8046;;;;N;;;;; -F9B1;CJK COMPATIBILITY IDEOGRAPH-F9B1;Lo;0;L;9234;;;;N;;;;; -F9B2;CJK COMPATIBILITY IDEOGRAPH-F9B2;Lo;0;L;96F6;;;0;N;;;;; -F9B3;CJK COMPATIBILITY IDEOGRAPH-F9B3;Lo;0;L;9748;;;;N;;;;; -F9B4;CJK COMPATIBILITY IDEOGRAPH-F9B4;Lo;0;L;9818;;;;N;;;;; -F9B5;CJK COMPATIBILITY IDEOGRAPH-F9B5;Lo;0;L;4F8B;;;;N;;;;; -F9B6;CJK COMPATIBILITY IDEOGRAPH-F9B6;Lo;0;L;79AE;;;;N;;;;; -F9B7;CJK COMPATIBILITY IDEOGRAPH-F9B7;Lo;0;L;91B4;;;;N;;;;; -F9B8;CJK COMPATIBILITY IDEOGRAPH-F9B8;Lo;0;L;96B8;;;;N;;;;; -F9B9;CJK COMPATIBILITY IDEOGRAPH-F9B9;Lo;0;L;60E1;;;;N;;;;; -F9BA;CJK COMPATIBILITY IDEOGRAPH-F9BA;Lo;0;L;4E86;;;;N;;;;; -F9BB;CJK COMPATIBILITY IDEOGRAPH-F9BB;Lo;0;L;50DA;;;;N;;;;; -F9BC;CJK COMPATIBILITY IDEOGRAPH-F9BC;Lo;0;L;5BEE;;;;N;;;;; -F9BD;CJK COMPATIBILITY IDEOGRAPH-F9BD;Lo;0;L;5C3F;;;;N;;;;; -F9BE;CJK COMPATIBILITY IDEOGRAPH-F9BE;Lo;0;L;6599;;;;N;;;;; -F9BF;CJK COMPATIBILITY IDEOGRAPH-F9BF;Lo;0;L;6A02;;;;N;;;;; -F9C0;CJK COMPATIBILITY IDEOGRAPH-F9C0;Lo;0;L;71CE;;;;N;;;;; -F9C1;CJK COMPATIBILITY IDEOGRAPH-F9C1;Lo;0;L;7642;;;;N;;;;; -F9C2;CJK COMPATIBILITY IDEOGRAPH-F9C2;Lo;0;L;84FC;;;;N;;;;; -F9C3;CJK COMPATIBILITY IDEOGRAPH-F9C3;Lo;0;L;907C;;;;N;;;;; -F9C4;CJK COMPATIBILITY IDEOGRAPH-F9C4;Lo;0;L;9F8D;;;;N;;;;; -F9C5;CJK COMPATIBILITY IDEOGRAPH-F9C5;Lo;0;L;6688;;;;N;;;;; -F9C6;CJK COMPATIBILITY IDEOGRAPH-F9C6;Lo;0;L;962E;;;;N;;;;; -F9C7;CJK COMPATIBILITY IDEOGRAPH-F9C7;Lo;0;L;5289;;;;N;;;;; -F9C8;CJK COMPATIBILITY IDEOGRAPH-F9C8;Lo;0;L;677B;;;;N;;;;; -F9C9;CJK COMPATIBILITY IDEOGRAPH-F9C9;Lo;0;L;67F3;;;;N;;;;; -F9CA;CJK COMPATIBILITY IDEOGRAPH-F9CA;Lo;0;L;6D41;;;;N;;;;; -F9CB;CJK COMPATIBILITY IDEOGRAPH-F9CB;Lo;0;L;6E9C;;;;N;;;;; -F9CC;CJK COMPATIBILITY IDEOGRAPH-F9CC;Lo;0;L;7409;;;;N;;;;; -F9CD;CJK COMPATIBILITY IDEOGRAPH-F9CD;Lo;0;L;7559;;;;N;;;;; -F9CE;CJK COMPATIBILITY IDEOGRAPH-F9CE;Lo;0;L;786B;;;;N;;;;; -F9CF;CJK COMPATIBILITY IDEOGRAPH-F9CF;Lo;0;L;7D10;;;;N;;;;; -F9D0;CJK COMPATIBILITY IDEOGRAPH-F9D0;Lo;0;L;985E;;;;N;;;;; -F9D1;CJK COMPATIBILITY IDEOGRAPH-F9D1;Lo;0;L;516D;;;6;N;;;;; -F9D2;CJK COMPATIBILITY IDEOGRAPH-F9D2;Lo;0;L;622E;;;;N;;;;; -F9D3;CJK COMPATIBILITY IDEOGRAPH-F9D3;Lo;0;L;9678;;;6;N;;;;; -F9D4;CJK COMPATIBILITY IDEOGRAPH-F9D4;Lo;0;L;502B;;;;N;;;;; -F9D5;CJK COMPATIBILITY IDEOGRAPH-F9D5;Lo;0;L;5D19;;;;N;;;;; -F9D6;CJK COMPATIBILITY IDEOGRAPH-F9D6;Lo;0;L;6DEA;;;;N;;;;; -F9D7;CJK COMPATIBILITY IDEOGRAPH-F9D7;Lo;0;L;8F2A;;;;N;;;;; -F9D8;CJK COMPATIBILITY IDEOGRAPH-F9D8;Lo;0;L;5F8B;;;;N;;;;; -F9D9;CJK COMPATIBILITY IDEOGRAPH-F9D9;Lo;0;L;6144;;;;N;;;;; -F9DA;CJK COMPATIBILITY IDEOGRAPH-F9DA;Lo;0;L;6817;;;;N;;;;; -F9DB;CJK COMPATIBILITY IDEOGRAPH-F9DB;Lo;0;L;7387;;;;N;;;;; -F9DC;CJK COMPATIBILITY IDEOGRAPH-F9DC;Lo;0;L;9686;;;;N;;;;; -F9DD;CJK COMPATIBILITY IDEOGRAPH-F9DD;Lo;0;L;5229;;;;N;;;;; -F9DE;CJK COMPATIBILITY IDEOGRAPH-F9DE;Lo;0;L;540F;;;;N;;;;; -F9DF;CJK COMPATIBILITY IDEOGRAPH-F9DF;Lo;0;L;5C65;;;;N;;;;; -F9E0;CJK COMPATIBILITY IDEOGRAPH-F9E0;Lo;0;L;6613;;;;N;;;;; -F9E1;CJK COMPATIBILITY IDEOGRAPH-F9E1;Lo;0;L;674E;;;;N;;;;; -F9E2;CJK COMPATIBILITY IDEOGRAPH-F9E2;Lo;0;L;68A8;;;;N;;;;; -F9E3;CJK COMPATIBILITY IDEOGRAPH-F9E3;Lo;0;L;6CE5;;;;N;;;;; -F9E4;CJK COMPATIBILITY IDEOGRAPH-F9E4;Lo;0;L;7406;;;;N;;;;; -F9E5;CJK COMPATIBILITY IDEOGRAPH-F9E5;Lo;0;L;75E2;;;;N;;;;; -F9E6;CJK COMPATIBILITY IDEOGRAPH-F9E6;Lo;0;L;7F79;;;;N;;;;; -F9E7;CJK COMPATIBILITY IDEOGRAPH-F9E7;Lo;0;L;88CF;;;;N;;;;; -F9E8;CJK COMPATIBILITY IDEOGRAPH-F9E8;Lo;0;L;88E1;;;;N;;;;; -F9E9;CJK COMPATIBILITY IDEOGRAPH-F9E9;Lo;0;L;91CC;;;;N;;;;; -F9EA;CJK COMPATIBILITY IDEOGRAPH-F9EA;Lo;0;L;96E2;;;;N;;;;; -F9EB;CJK COMPATIBILITY IDEOGRAPH-F9EB;Lo;0;L;533F;;;;N;;;;; -F9EC;CJK COMPATIBILITY IDEOGRAPH-F9EC;Lo;0;L;6EBA;;;;N;;;;; -F9ED;CJK COMPATIBILITY IDEOGRAPH-F9ED;Lo;0;L;541D;;;;N;;;;; -F9EE;CJK COMPATIBILITY IDEOGRAPH-F9EE;Lo;0;L;71D0;;;;N;;;;; -F9EF;CJK COMPATIBILITY IDEOGRAPH-F9EF;Lo;0;L;7498;;;;N;;;;; -F9F0;CJK COMPATIBILITY IDEOGRAPH-F9F0;Lo;0;L;85FA;;;;N;;;;; -F9F1;CJK COMPATIBILITY IDEOGRAPH-F9F1;Lo;0;L;96A3;;;;N;;;;; -F9F2;CJK COMPATIBILITY IDEOGRAPH-F9F2;Lo;0;L;9C57;;;;N;;;;; -F9F3;CJK COMPATIBILITY IDEOGRAPH-F9F3;Lo;0;L;9E9F;;;;N;;;;; -F9F4;CJK COMPATIBILITY IDEOGRAPH-F9F4;Lo;0;L;6797;;;;N;;;;; -F9F5;CJK COMPATIBILITY IDEOGRAPH-F9F5;Lo;0;L;6DCB;;;;N;;;;; -F9F6;CJK COMPATIBILITY IDEOGRAPH-F9F6;Lo;0;L;81E8;;;;N;;;;; -F9F7;CJK COMPATIBILITY IDEOGRAPH-F9F7;Lo;0;L;7ACB;;;;N;;;;; -F9F8;CJK COMPATIBILITY IDEOGRAPH-F9F8;Lo;0;L;7B20;;;;N;;;;; -F9F9;CJK COMPATIBILITY IDEOGRAPH-F9F9;Lo;0;L;7C92;;;;N;;;;; -F9FA;CJK COMPATIBILITY IDEOGRAPH-F9FA;Lo;0;L;72C0;;;;N;;;;; -F9FB;CJK COMPATIBILITY IDEOGRAPH-F9FB;Lo;0;L;7099;;;;N;;;;; -F9FC;CJK COMPATIBILITY IDEOGRAPH-F9FC;Lo;0;L;8B58;;;;N;;;;; -F9FD;CJK COMPATIBILITY IDEOGRAPH-F9FD;Lo;0;L;4EC0;;;10;N;;;;; -F9FE;CJK COMPATIBILITY IDEOGRAPH-F9FE;Lo;0;L;8336;;;;N;;;;; -F9FF;CJK COMPATIBILITY IDEOGRAPH-F9FF;Lo;0;L;523A;;;;N;;;;; -FA00;CJK COMPATIBILITY IDEOGRAPH-FA00;Lo;0;L;5207;;;;N;;;;; -FA01;CJK COMPATIBILITY IDEOGRAPH-FA01;Lo;0;L;5EA6;;;;N;;;;; -FA02;CJK COMPATIBILITY IDEOGRAPH-FA02;Lo;0;L;62D3;;;;N;;;;; -FA03;CJK COMPATIBILITY IDEOGRAPH-FA03;Lo;0;L;7CD6;;;;N;;;;; -FA04;CJK COMPATIBILITY IDEOGRAPH-FA04;Lo;0;L;5B85;;;;N;;;;; -FA05;CJK COMPATIBILITY IDEOGRAPH-FA05;Lo;0;L;6D1E;;;;N;;;;; -FA06;CJK COMPATIBILITY IDEOGRAPH-FA06;Lo;0;L;66B4;;;;N;;;;; -FA07;CJK COMPATIBILITY IDEOGRAPH-FA07;Lo;0;L;8F3B;;;;N;;;;; -FA08;CJK COMPATIBILITY IDEOGRAPH-FA08;Lo;0;L;884C;;;;N;;;;; -FA09;CJK COMPATIBILITY IDEOGRAPH-FA09;Lo;0;L;964D;;;;N;;;;; -FA0A;CJK COMPATIBILITY IDEOGRAPH-FA0A;Lo;0;L;898B;;;;N;;;;; -FA0B;CJK COMPATIBILITY IDEOGRAPH-FA0B;Lo;0;L;5ED3;;;;N;;;;; -FA0C;CJK COMPATIBILITY IDEOGRAPH-FA0C;Lo;0;L;5140;;;;N;;;;; -FA0D;CJK COMPATIBILITY IDEOGRAPH-FA0D;Lo;0;L;55C0;;;;N;;;;; -FA0E;CJK COMPATIBILITY IDEOGRAPH-FA0E;Lo;0;L;;;;;N;;;;; -FA0F;CJK COMPATIBILITY IDEOGRAPH-FA0F;Lo;0;L;;;;;N;;;;; -FA10;CJK COMPATIBILITY IDEOGRAPH-FA10;Lo;0;L;585A;;;;N;;;;; -FA11;CJK COMPATIBILITY IDEOGRAPH-FA11;Lo;0;L;;;;;N;;;;; -FA12;CJK COMPATIBILITY IDEOGRAPH-FA12;Lo;0;L;6674;;;;N;;;;; -FA13;CJK COMPATIBILITY IDEOGRAPH-FA13;Lo;0;L;;;;;N;;;;; -FA14;CJK COMPATIBILITY IDEOGRAPH-FA14;Lo;0;L;;;;;N;;;;; -FA15;CJK COMPATIBILITY IDEOGRAPH-FA15;Lo;0;L;51DE;;;;N;;;;; -FA16;CJK COMPATIBILITY IDEOGRAPH-FA16;Lo;0;L;732A;;;;N;;;;; -FA17;CJK COMPATIBILITY IDEOGRAPH-FA17;Lo;0;L;76CA;;;;N;;;;; -FA18;CJK COMPATIBILITY IDEOGRAPH-FA18;Lo;0;L;793C;;;;N;;;;; -FA19;CJK COMPATIBILITY IDEOGRAPH-FA19;Lo;0;L;795E;;;;N;;;;; -FA1A;CJK COMPATIBILITY IDEOGRAPH-FA1A;Lo;0;L;7965;;;;N;;;;; -FA1B;CJK COMPATIBILITY IDEOGRAPH-FA1B;Lo;0;L;798F;;;;N;;;;; -FA1C;CJK COMPATIBILITY IDEOGRAPH-FA1C;Lo;0;L;9756;;;;N;;;;; -FA1D;CJK COMPATIBILITY IDEOGRAPH-FA1D;Lo;0;L;7CBE;;;;N;;;;; -FA1E;CJK COMPATIBILITY IDEOGRAPH-FA1E;Lo;0;L;7FBD;;;;N;;;;; -FA1F;CJK COMPATIBILITY IDEOGRAPH-FA1F;Lo;0;L;;;;;N;;;;; -FA20;CJK COMPATIBILITY IDEOGRAPH-FA20;Lo;0;L;8612;;;;N;;;;; -FA21;CJK COMPATIBILITY IDEOGRAPH-FA21;Lo;0;L;;;;;N;;;;; -FA22;CJK COMPATIBILITY IDEOGRAPH-FA22;Lo;0;L;8AF8;;;;N;;;;; -FA23;CJK COMPATIBILITY IDEOGRAPH-FA23;Lo;0;L;;;;;N;;;;; -FA24;CJK COMPATIBILITY IDEOGRAPH-FA24;Lo;0;L;;;;;N;;;;; -FA25;CJK COMPATIBILITY IDEOGRAPH-FA25;Lo;0;L;9038;;;;N;;;;; -FA26;CJK COMPATIBILITY IDEOGRAPH-FA26;Lo;0;L;90FD;;;;N;;;;; -FA27;CJK COMPATIBILITY IDEOGRAPH-FA27;Lo;0;L;;;;;N;;;;; -FA28;CJK COMPATIBILITY IDEOGRAPH-FA28;Lo;0;L;;;;;N;;;;; -FA29;CJK COMPATIBILITY IDEOGRAPH-FA29;Lo;0;L;;;;;N;;;;; -FA2A;CJK COMPATIBILITY IDEOGRAPH-FA2A;Lo;0;L;98EF;;;;N;;;;; -FA2B;CJK COMPATIBILITY IDEOGRAPH-FA2B;Lo;0;L;98FC;;;;N;;;;; -FA2C;CJK COMPATIBILITY IDEOGRAPH-FA2C;Lo;0;L;9928;;;;N;;;;; -FA2D;CJK COMPATIBILITY IDEOGRAPH-FA2D;Lo;0;L;9DB4;;;;N;;;;; -FA30;CJK COMPATIBILITY IDEOGRAPH-FA30;Lo;0;L;4FAE;;;;N;;;;; -FA31;CJK COMPATIBILITY IDEOGRAPH-FA31;Lo;0;L;50E7;;;;N;;;;; -FA32;CJK COMPATIBILITY IDEOGRAPH-FA32;Lo;0;L;514D;;;;N;;;;; -FA33;CJK COMPATIBILITY IDEOGRAPH-FA33;Lo;0;L;52C9;;;;N;;;;; -FA34;CJK COMPATIBILITY IDEOGRAPH-FA34;Lo;0;L;52E4;;;;N;;;;; -FA35;CJK COMPATIBILITY IDEOGRAPH-FA35;Lo;0;L;5351;;;;N;;;;; -FA36;CJK COMPATIBILITY IDEOGRAPH-FA36;Lo;0;L;559D;;;;N;;;;; -FA37;CJK COMPATIBILITY IDEOGRAPH-FA37;Lo;0;L;5606;;;;N;;;;; -FA38;CJK COMPATIBILITY IDEOGRAPH-FA38;Lo;0;L;5668;;;;N;;;;; -FA39;CJK COMPATIBILITY IDEOGRAPH-FA39;Lo;0;L;5840;;;;N;;;;; -FA3A;CJK COMPATIBILITY IDEOGRAPH-FA3A;Lo;0;L;58A8;;;;N;;;;; -FA3B;CJK COMPATIBILITY IDEOGRAPH-FA3B;Lo;0;L;5C64;;;;N;;;;; -FA3C;CJK COMPATIBILITY IDEOGRAPH-FA3C;Lo;0;L;5C6E;;;;N;;;;; -FA3D;CJK COMPATIBILITY IDEOGRAPH-FA3D;Lo;0;L;6094;;;;N;;;;; -FA3E;CJK COMPATIBILITY IDEOGRAPH-FA3E;Lo;0;L;6168;;;;N;;;;; -FA3F;CJK COMPATIBILITY IDEOGRAPH-FA3F;Lo;0;L;618E;;;;N;;;;; -FA40;CJK COMPATIBILITY IDEOGRAPH-FA40;Lo;0;L;61F2;;;;N;;;;; -FA41;CJK COMPATIBILITY IDEOGRAPH-FA41;Lo;0;L;654F;;;;N;;;;; -FA42;CJK COMPATIBILITY IDEOGRAPH-FA42;Lo;0;L;65E2;;;;N;;;;; -FA43;CJK COMPATIBILITY IDEOGRAPH-FA43;Lo;0;L;6691;;;;N;;;;; -FA44;CJK COMPATIBILITY IDEOGRAPH-FA44;Lo;0;L;6885;;;;N;;;;; -FA45;CJK COMPATIBILITY IDEOGRAPH-FA45;Lo;0;L;6D77;;;;N;;;;; -FA46;CJK COMPATIBILITY IDEOGRAPH-FA46;Lo;0;L;6E1A;;;;N;;;;; -FA47;CJK COMPATIBILITY IDEOGRAPH-FA47;Lo;0;L;6F22;;;;N;;;;; -FA48;CJK COMPATIBILITY IDEOGRAPH-FA48;Lo;0;L;716E;;;;N;;;;; -FA49;CJK COMPATIBILITY IDEOGRAPH-FA49;Lo;0;L;722B;;;;N;;;;; -FA4A;CJK COMPATIBILITY IDEOGRAPH-FA4A;Lo;0;L;7422;;;;N;;;;; -FA4B;CJK COMPATIBILITY IDEOGRAPH-FA4B;Lo;0;L;7891;;;;N;;;;; -FA4C;CJK COMPATIBILITY IDEOGRAPH-FA4C;Lo;0;L;793E;;;;N;;;;; -FA4D;CJK COMPATIBILITY IDEOGRAPH-FA4D;Lo;0;L;7949;;;;N;;;;; -FA4E;CJK COMPATIBILITY IDEOGRAPH-FA4E;Lo;0;L;7948;;;;N;;;;; -FA4F;CJK COMPATIBILITY IDEOGRAPH-FA4F;Lo;0;L;7950;;;;N;;;;; -FA50;CJK COMPATIBILITY IDEOGRAPH-FA50;Lo;0;L;7956;;;;N;;;;; -FA51;CJK COMPATIBILITY IDEOGRAPH-FA51;Lo;0;L;795D;;;;N;;;;; -FA52;CJK COMPATIBILITY IDEOGRAPH-FA52;Lo;0;L;798D;;;;N;;;;; -FA53;CJK COMPATIBILITY IDEOGRAPH-FA53;Lo;0;L;798E;;;;N;;;;; -FA54;CJK COMPATIBILITY IDEOGRAPH-FA54;Lo;0;L;7A40;;;;N;;;;; -FA55;CJK COMPATIBILITY IDEOGRAPH-FA55;Lo;0;L;7A81;;;;N;;;;; -FA56;CJK COMPATIBILITY IDEOGRAPH-FA56;Lo;0;L;7BC0;;;;N;;;;; -FA57;CJK COMPATIBILITY IDEOGRAPH-FA57;Lo;0;L;7DF4;;;;N;;;;; -FA58;CJK COMPATIBILITY IDEOGRAPH-FA58;Lo;0;L;7E09;;;;N;;;;; -FA59;CJK COMPATIBILITY IDEOGRAPH-FA59;Lo;0;L;7E41;;;;N;;;;; -FA5A;CJK COMPATIBILITY IDEOGRAPH-FA5A;Lo;0;L;7F72;;;;N;;;;; -FA5B;CJK COMPATIBILITY IDEOGRAPH-FA5B;Lo;0;L;8005;;;;N;;;;; -FA5C;CJK COMPATIBILITY IDEOGRAPH-FA5C;Lo;0;L;81ED;;;;N;;;;; -FA5D;CJK COMPATIBILITY IDEOGRAPH-FA5D;Lo;0;L;8279;;;;N;;;;; -FA5E;CJK COMPATIBILITY IDEOGRAPH-FA5E;Lo;0;L;8279;;;;N;;;;; -FA5F;CJK COMPATIBILITY IDEOGRAPH-FA5F;Lo;0;L;8457;;;;N;;;;; -FA60;CJK COMPATIBILITY IDEOGRAPH-FA60;Lo;0;L;8910;;;;N;;;;; -FA61;CJK COMPATIBILITY IDEOGRAPH-FA61;Lo;0;L;8996;;;;N;;;;; -FA62;CJK COMPATIBILITY IDEOGRAPH-FA62;Lo;0;L;8B01;;;;N;;;;; -FA63;CJK COMPATIBILITY IDEOGRAPH-FA63;Lo;0;L;8B39;;;;N;;;;; -FA64;CJK COMPATIBILITY IDEOGRAPH-FA64;Lo;0;L;8CD3;;;;N;;;;; -FA65;CJK COMPATIBILITY IDEOGRAPH-FA65;Lo;0;L;8D08;;;;N;;;;; -FA66;CJK COMPATIBILITY IDEOGRAPH-FA66;Lo;0;L;8FB6;;;;N;;;;; -FA67;CJK COMPATIBILITY IDEOGRAPH-FA67;Lo;0;L;9038;;;;N;;;;; -FA68;CJK COMPATIBILITY IDEOGRAPH-FA68;Lo;0;L;96E3;;;;N;;;;; -FA69;CJK COMPATIBILITY IDEOGRAPH-FA69;Lo;0;L;97FF;;;;N;;;;; -FA6A;CJK COMPATIBILITY IDEOGRAPH-FA6A;Lo;0;L;983B;;;;N;;;;; -FA6B;CJK COMPATIBILITY IDEOGRAPH-FA6B;Lo;0;L;6075;;;;N;;;;; -FA6C;CJK COMPATIBILITY IDEOGRAPH-FA6C;Lo;0;L;242EE;;;;N;;;;; -FA6D;CJK COMPATIBILITY IDEOGRAPH-FA6D;Lo;0;L;8218;;;;N;;;;; -FA70;CJK COMPATIBILITY IDEOGRAPH-FA70;Lo;0;L;4E26;;;;N;;;;; -FA71;CJK COMPATIBILITY IDEOGRAPH-FA71;Lo;0;L;51B5;;;;N;;;;; -FA72;CJK COMPATIBILITY IDEOGRAPH-FA72;Lo;0;L;5168;;;;N;;;;; -FA73;CJK COMPATIBILITY IDEOGRAPH-FA73;Lo;0;L;4F80;;;;N;;;;; -FA74;CJK COMPATIBILITY IDEOGRAPH-FA74;Lo;0;L;5145;;;;N;;;;; -FA75;CJK COMPATIBILITY IDEOGRAPH-FA75;Lo;0;L;5180;;;;N;;;;; -FA76;CJK COMPATIBILITY IDEOGRAPH-FA76;Lo;0;L;52C7;;;;N;;;;; -FA77;CJK COMPATIBILITY IDEOGRAPH-FA77;Lo;0;L;52FA;;;;N;;;;; -FA78;CJK COMPATIBILITY IDEOGRAPH-FA78;Lo;0;L;559D;;;;N;;;;; -FA79;CJK COMPATIBILITY IDEOGRAPH-FA79;Lo;0;L;5555;;;;N;;;;; -FA7A;CJK COMPATIBILITY IDEOGRAPH-FA7A;Lo;0;L;5599;;;;N;;;;; -FA7B;CJK COMPATIBILITY IDEOGRAPH-FA7B;Lo;0;L;55E2;;;;N;;;;; -FA7C;CJK COMPATIBILITY IDEOGRAPH-FA7C;Lo;0;L;585A;;;;N;;;;; -FA7D;CJK COMPATIBILITY IDEOGRAPH-FA7D;Lo;0;L;58B3;;;;N;;;;; -FA7E;CJK COMPATIBILITY IDEOGRAPH-FA7E;Lo;0;L;5944;;;;N;;;;; -FA7F;CJK COMPATIBILITY IDEOGRAPH-FA7F;Lo;0;L;5954;;;;N;;;;; -FA80;CJK COMPATIBILITY IDEOGRAPH-FA80;Lo;0;L;5A62;;;;N;;;;; -FA81;CJK COMPATIBILITY IDEOGRAPH-FA81;Lo;0;L;5B28;;;;N;;;;; -FA82;CJK COMPATIBILITY IDEOGRAPH-FA82;Lo;0;L;5ED2;;;;N;;;;; -FA83;CJK COMPATIBILITY IDEOGRAPH-FA83;Lo;0;L;5ED9;;;;N;;;;; -FA84;CJK COMPATIBILITY IDEOGRAPH-FA84;Lo;0;L;5F69;;;;N;;;;; -FA85;CJK COMPATIBILITY IDEOGRAPH-FA85;Lo;0;L;5FAD;;;;N;;;;; -FA86;CJK COMPATIBILITY IDEOGRAPH-FA86;Lo;0;L;60D8;;;;N;;;;; -FA87;CJK COMPATIBILITY IDEOGRAPH-FA87;Lo;0;L;614E;;;;N;;;;; -FA88;CJK COMPATIBILITY IDEOGRAPH-FA88;Lo;0;L;6108;;;;N;;;;; -FA89;CJK COMPATIBILITY IDEOGRAPH-FA89;Lo;0;L;618E;;;;N;;;;; -FA8A;CJK COMPATIBILITY IDEOGRAPH-FA8A;Lo;0;L;6160;;;;N;;;;; -FA8B;CJK COMPATIBILITY IDEOGRAPH-FA8B;Lo;0;L;61F2;;;;N;;;;; -FA8C;CJK COMPATIBILITY IDEOGRAPH-FA8C;Lo;0;L;6234;;;;N;;;;; -FA8D;CJK COMPATIBILITY IDEOGRAPH-FA8D;Lo;0;L;63C4;;;;N;;;;; -FA8E;CJK COMPATIBILITY IDEOGRAPH-FA8E;Lo;0;L;641C;;;;N;;;;; -FA8F;CJK COMPATIBILITY IDEOGRAPH-FA8F;Lo;0;L;6452;;;;N;;;;; -FA90;CJK COMPATIBILITY IDEOGRAPH-FA90;Lo;0;L;6556;;;;N;;;;; -FA91;CJK COMPATIBILITY IDEOGRAPH-FA91;Lo;0;L;6674;;;;N;;;;; -FA92;CJK COMPATIBILITY IDEOGRAPH-FA92;Lo;0;L;6717;;;;N;;;;; -FA93;CJK COMPATIBILITY IDEOGRAPH-FA93;Lo;0;L;671B;;;;N;;;;; -FA94;CJK COMPATIBILITY IDEOGRAPH-FA94;Lo;0;L;6756;;;;N;;;;; -FA95;CJK COMPATIBILITY IDEOGRAPH-FA95;Lo;0;L;6B79;;;;N;;;;; -FA96;CJK COMPATIBILITY IDEOGRAPH-FA96;Lo;0;L;6BBA;;;;N;;;;; -FA97;CJK COMPATIBILITY IDEOGRAPH-FA97;Lo;0;L;6D41;;;;N;;;;; -FA98;CJK COMPATIBILITY IDEOGRAPH-FA98;Lo;0;L;6EDB;;;;N;;;;; -FA99;CJK COMPATIBILITY IDEOGRAPH-FA99;Lo;0;L;6ECB;;;;N;;;;; -FA9A;CJK COMPATIBILITY IDEOGRAPH-FA9A;Lo;0;L;6F22;;;;N;;;;; -FA9B;CJK COMPATIBILITY IDEOGRAPH-FA9B;Lo;0;L;701E;;;;N;;;;; -FA9C;CJK COMPATIBILITY IDEOGRAPH-FA9C;Lo;0;L;716E;;;;N;;;;; -FA9D;CJK COMPATIBILITY IDEOGRAPH-FA9D;Lo;0;L;77A7;;;;N;;;;; -FA9E;CJK COMPATIBILITY IDEOGRAPH-FA9E;Lo;0;L;7235;;;;N;;;;; -FA9F;CJK COMPATIBILITY IDEOGRAPH-FA9F;Lo;0;L;72AF;;;;N;;;;; -FAA0;CJK COMPATIBILITY IDEOGRAPH-FAA0;Lo;0;L;732A;;;;N;;;;; -FAA1;CJK COMPATIBILITY IDEOGRAPH-FAA1;Lo;0;L;7471;;;;N;;;;; -FAA2;CJK COMPATIBILITY IDEOGRAPH-FAA2;Lo;0;L;7506;;;;N;;;;; -FAA3;CJK COMPATIBILITY IDEOGRAPH-FAA3;Lo;0;L;753B;;;;N;;;;; -FAA4;CJK COMPATIBILITY IDEOGRAPH-FAA4;Lo;0;L;761D;;;;N;;;;; -FAA5;CJK COMPATIBILITY IDEOGRAPH-FAA5;Lo;0;L;761F;;;;N;;;;; -FAA6;CJK COMPATIBILITY IDEOGRAPH-FAA6;Lo;0;L;76CA;;;;N;;;;; -FAA7;CJK COMPATIBILITY IDEOGRAPH-FAA7;Lo;0;L;76DB;;;;N;;;;; -FAA8;CJK COMPATIBILITY IDEOGRAPH-FAA8;Lo;0;L;76F4;;;;N;;;;; -FAA9;CJK COMPATIBILITY IDEOGRAPH-FAA9;Lo;0;L;774A;;;;N;;;;; -FAAA;CJK COMPATIBILITY IDEOGRAPH-FAAA;Lo;0;L;7740;;;;N;;;;; -FAAB;CJK COMPATIBILITY IDEOGRAPH-FAAB;Lo;0;L;78CC;;;;N;;;;; -FAAC;CJK COMPATIBILITY IDEOGRAPH-FAAC;Lo;0;L;7AB1;;;;N;;;;; -FAAD;CJK COMPATIBILITY IDEOGRAPH-FAAD;Lo;0;L;7BC0;;;;N;;;;; -FAAE;CJK COMPATIBILITY IDEOGRAPH-FAAE;Lo;0;L;7C7B;;;;N;;;;; -FAAF;CJK COMPATIBILITY IDEOGRAPH-FAAF;Lo;0;L;7D5B;;;;N;;;;; -FAB0;CJK COMPATIBILITY IDEOGRAPH-FAB0;Lo;0;L;7DF4;;;;N;;;;; -FAB1;CJK COMPATIBILITY IDEOGRAPH-FAB1;Lo;0;L;7F3E;;;;N;;;;; -FAB2;CJK COMPATIBILITY IDEOGRAPH-FAB2;Lo;0;L;8005;;;;N;;;;; -FAB3;CJK COMPATIBILITY IDEOGRAPH-FAB3;Lo;0;L;8352;;;;N;;;;; -FAB4;CJK COMPATIBILITY IDEOGRAPH-FAB4;Lo;0;L;83EF;;;;N;;;;; -FAB5;CJK COMPATIBILITY IDEOGRAPH-FAB5;Lo;0;L;8779;;;;N;;;;; -FAB6;CJK COMPATIBILITY IDEOGRAPH-FAB6;Lo;0;L;8941;;;;N;;;;; -FAB7;CJK COMPATIBILITY IDEOGRAPH-FAB7;Lo;0;L;8986;;;;N;;;;; -FAB8;CJK COMPATIBILITY IDEOGRAPH-FAB8;Lo;0;L;8996;;;;N;;;;; -FAB9;CJK COMPATIBILITY IDEOGRAPH-FAB9;Lo;0;L;8ABF;;;;N;;;;; -FABA;CJK COMPATIBILITY IDEOGRAPH-FABA;Lo;0;L;8AF8;;;;N;;;;; -FABB;CJK COMPATIBILITY IDEOGRAPH-FABB;Lo;0;L;8ACB;;;;N;;;;; -FABC;CJK COMPATIBILITY IDEOGRAPH-FABC;Lo;0;L;8B01;;;;N;;;;; -FABD;CJK COMPATIBILITY IDEOGRAPH-FABD;Lo;0;L;8AFE;;;;N;;;;; -FABE;CJK COMPATIBILITY IDEOGRAPH-FABE;Lo;0;L;8AED;;;;N;;;;; -FABF;CJK COMPATIBILITY IDEOGRAPH-FABF;Lo;0;L;8B39;;;;N;;;;; -FAC0;CJK COMPATIBILITY IDEOGRAPH-FAC0;Lo;0;L;8B8A;;;;N;;;;; -FAC1;CJK COMPATIBILITY IDEOGRAPH-FAC1;Lo;0;L;8D08;;;;N;;;;; -FAC2;CJK COMPATIBILITY IDEOGRAPH-FAC2;Lo;0;L;8F38;;;;N;;;;; -FAC3;CJK COMPATIBILITY IDEOGRAPH-FAC3;Lo;0;L;9072;;;;N;;;;; -FAC4;CJK COMPATIBILITY IDEOGRAPH-FAC4;Lo;0;L;9199;;;;N;;;;; -FAC5;CJK COMPATIBILITY IDEOGRAPH-FAC5;Lo;0;L;9276;;;;N;;;;; -FAC6;CJK COMPATIBILITY IDEOGRAPH-FAC6;Lo;0;L;967C;;;;N;;;;; -FAC7;CJK COMPATIBILITY IDEOGRAPH-FAC7;Lo;0;L;96E3;;;;N;;;;; -FAC8;CJK COMPATIBILITY IDEOGRAPH-FAC8;Lo;0;L;9756;;;;N;;;;; -FAC9;CJK COMPATIBILITY IDEOGRAPH-FAC9;Lo;0;L;97DB;;;;N;;;;; -FACA;CJK COMPATIBILITY IDEOGRAPH-FACA;Lo;0;L;97FF;;;;N;;;;; -FACB;CJK COMPATIBILITY IDEOGRAPH-FACB;Lo;0;L;980B;;;;N;;;;; -FACC;CJK COMPATIBILITY IDEOGRAPH-FACC;Lo;0;L;983B;;;;N;;;;; -FACD;CJK COMPATIBILITY IDEOGRAPH-FACD;Lo;0;L;9B12;;;;N;;;;; -FACE;CJK COMPATIBILITY IDEOGRAPH-FACE;Lo;0;L;9F9C;;;;N;;;;; -FACF;CJK COMPATIBILITY IDEOGRAPH-FACF;Lo;0;L;2284A;;;;N;;;;; -FAD0;CJK COMPATIBILITY IDEOGRAPH-FAD0;Lo;0;L;22844;;;;N;;;;; -FAD1;CJK COMPATIBILITY IDEOGRAPH-FAD1;Lo;0;L;233D5;;;;N;;;;; -FAD2;CJK COMPATIBILITY IDEOGRAPH-FAD2;Lo;0;L;3B9D;;;;N;;;;; -FAD3;CJK COMPATIBILITY IDEOGRAPH-FAD3;Lo;0;L;4018;;;;N;;;;; -FAD4;CJK COMPATIBILITY IDEOGRAPH-FAD4;Lo;0;L;4039;;;;N;;;;; -FAD5;CJK COMPATIBILITY IDEOGRAPH-FAD5;Lo;0;L;25249;;;;N;;;;; -FAD6;CJK COMPATIBILITY IDEOGRAPH-FAD6;Lo;0;L;25CD0;;;;N;;;;; -FAD7;CJK COMPATIBILITY IDEOGRAPH-FAD7;Lo;0;L;27ED3;;;;N;;;;; -FAD8;CJK COMPATIBILITY IDEOGRAPH-FAD8;Lo;0;L;9F43;;;;N;;;;; -FAD9;CJK COMPATIBILITY IDEOGRAPH-FAD9;Lo;0;L;9F8E;;;;N;;;;; -FB00;LATIN SMALL LIGATURE FF;Ll;0;L; 0066 0066;;;;N;;;;; -FB01;LATIN SMALL LIGATURE FI;Ll;0;L; 0066 0069;;;;N;;;;; -FB02;LATIN SMALL LIGATURE FL;Ll;0;L; 0066 006C;;;;N;;;;; -FB03;LATIN SMALL LIGATURE FFI;Ll;0;L; 0066 0066 0069;;;;N;;;;; -FB04;LATIN SMALL LIGATURE FFL;Ll;0;L; 0066 0066 006C;;;;N;;;;; -FB05;LATIN SMALL LIGATURE LONG S T;Ll;0;L; 017F 0074;;;;N;;;;; -FB06;LATIN SMALL LIGATURE ST;Ll;0;L; 0073 0074;;;;N;;;;; -FB13;ARMENIAN SMALL LIGATURE MEN NOW;Ll;0;L; 0574 0576;;;;N;;;;; -FB14;ARMENIAN SMALL LIGATURE MEN ECH;Ll;0;L; 0574 0565;;;;N;;;;; -FB15;ARMENIAN SMALL LIGATURE MEN INI;Ll;0;L; 0574 056B;;;;N;;;;; -FB16;ARMENIAN SMALL LIGATURE VEW NOW;Ll;0;L; 057E 0576;;;;N;;;;; -FB17;ARMENIAN SMALL LIGATURE MEN XEH;Ll;0;L; 0574 056D;;;;N;;;;; -FB1D;HEBREW LETTER YOD WITH HIRIQ;Lo;0;R;05D9 05B4;;;;N;;;;; -FB1E;HEBREW POINT JUDEO-SPANISH VARIKA;Mn;26;NSM;;;;;N;HEBREW POINT VARIKA;;;; -FB1F;HEBREW LIGATURE YIDDISH YOD YOD PATAH;Lo;0;R;05F2 05B7;;;;N;;;;; -FB20;HEBREW LETTER ALTERNATIVE AYIN;Lo;0;R; 05E2;;;;N;;;;; -FB21;HEBREW LETTER WIDE ALEF;Lo;0;R; 05D0;;;;N;;;;; -FB22;HEBREW LETTER WIDE DALET;Lo;0;R; 05D3;;;;N;;;;; -FB23;HEBREW LETTER WIDE HE;Lo;0;R; 05D4;;;;N;;;;; -FB24;HEBREW LETTER WIDE KAF;Lo;0;R; 05DB;;;;N;;;;; -FB25;HEBREW LETTER WIDE LAMED;Lo;0;R; 05DC;;;;N;;;;; -FB26;HEBREW LETTER WIDE FINAL MEM;Lo;0;R; 05DD;;;;N;;;;; -FB27;HEBREW LETTER WIDE RESH;Lo;0;R; 05E8;;;;N;;;;; -FB28;HEBREW LETTER WIDE TAV;Lo;0;R; 05EA;;;;N;;;;; -FB29;HEBREW LETTER ALTERNATIVE PLUS SIGN;Sm;0;ES; 002B;;;;N;;;;; -FB2A;HEBREW LETTER SHIN WITH SHIN DOT;Lo;0;R;05E9 05C1;;;;N;;;;; -FB2B;HEBREW LETTER SHIN WITH SIN DOT;Lo;0;R;05E9 05C2;;;;N;;;;; -FB2C;HEBREW LETTER SHIN WITH DAGESH AND SHIN DOT;Lo;0;R;FB49 05C1;;;;N;;;;; -FB2D;HEBREW LETTER SHIN WITH DAGESH AND SIN DOT;Lo;0;R;FB49 05C2;;;;N;;;;; -FB2E;HEBREW LETTER ALEF WITH PATAH;Lo;0;R;05D0 05B7;;;;N;;;;; -FB2F;HEBREW LETTER ALEF WITH QAMATS;Lo;0;R;05D0 05B8;;;;N;;;;; -FB30;HEBREW LETTER ALEF WITH MAPIQ;Lo;0;R;05D0 05BC;;;;N;;;;; -FB31;HEBREW LETTER BET WITH DAGESH;Lo;0;R;05D1 05BC;;;;N;;;;; -FB32;HEBREW LETTER GIMEL WITH DAGESH;Lo;0;R;05D2 05BC;;;;N;;;;; -FB33;HEBREW LETTER DALET WITH DAGESH;Lo;0;R;05D3 05BC;;;;N;;;;; -FB34;HEBREW LETTER HE WITH MAPIQ;Lo;0;R;05D4 05BC;;;;N;;;;; -FB35;HEBREW LETTER VAV WITH DAGESH;Lo;0;R;05D5 05BC;;;;N;;;;; -FB36;HEBREW LETTER ZAYIN WITH DAGESH;Lo;0;R;05D6 05BC;;;;N;;;;; -FB38;HEBREW LETTER TET WITH DAGESH;Lo;0;R;05D8 05BC;;;;N;;;;; -FB39;HEBREW LETTER YOD WITH DAGESH;Lo;0;R;05D9 05BC;;;;N;;;;; -FB3A;HEBREW LETTER FINAL KAF WITH DAGESH;Lo;0;R;05DA 05BC;;;;N;;;;; -FB3B;HEBREW LETTER KAF WITH DAGESH;Lo;0;R;05DB 05BC;;;;N;;;;; -FB3C;HEBREW LETTER LAMED WITH DAGESH;Lo;0;R;05DC 05BC;;;;N;;;;; -FB3E;HEBREW LETTER MEM WITH DAGESH;Lo;0;R;05DE 05BC;;;;N;;;;; -FB40;HEBREW LETTER NUN WITH DAGESH;Lo;0;R;05E0 05BC;;;;N;;;;; -FB41;HEBREW LETTER SAMEKH WITH DAGESH;Lo;0;R;05E1 05BC;;;;N;;;;; -FB43;HEBREW LETTER FINAL PE WITH DAGESH;Lo;0;R;05E3 05BC;;;;N;;;;; -FB44;HEBREW LETTER PE WITH DAGESH;Lo;0;R;05E4 05BC;;;;N;;;;; -FB46;HEBREW LETTER TSADI WITH DAGESH;Lo;0;R;05E6 05BC;;;;N;;;;; -FB47;HEBREW LETTER QOF WITH DAGESH;Lo;0;R;05E7 05BC;;;;N;;;;; -FB48;HEBREW LETTER RESH WITH DAGESH;Lo;0;R;05E8 05BC;;;;N;;;;; -FB49;HEBREW LETTER SHIN WITH DAGESH;Lo;0;R;05E9 05BC;;;;N;;;;; -FB4A;HEBREW LETTER TAV WITH DAGESH;Lo;0;R;05EA 05BC;;;;N;;;;; -FB4B;HEBREW LETTER VAV WITH HOLAM;Lo;0;R;05D5 05B9;;;;N;;;;; -FB4C;HEBREW LETTER BET WITH RAFE;Lo;0;R;05D1 05BF;;;;N;;;;; -FB4D;HEBREW LETTER KAF WITH RAFE;Lo;0;R;05DB 05BF;;;;N;;;;; -FB4E;HEBREW LETTER PE WITH RAFE;Lo;0;R;05E4 05BF;;;;N;;;;; -FB4F;HEBREW LIGATURE ALEF LAMED;Lo;0;R; 05D0 05DC;;;;N;;;;; -FB50;ARABIC LETTER ALEF WASLA ISOLATED FORM;Lo;0;AL; 0671;;;;N;;;;; -FB51;ARABIC LETTER ALEF WASLA FINAL FORM;Lo;0;AL; 0671;;;;N;;;;; -FB52;ARABIC LETTER BEEH ISOLATED FORM;Lo;0;AL; 067B;;;;N;;;;; -FB53;ARABIC LETTER BEEH FINAL FORM;Lo;0;AL; 067B;;;;N;;;;; -FB54;ARABIC LETTER BEEH INITIAL FORM;Lo;0;AL; 067B;;;;N;;;;; -FB55;ARABIC LETTER BEEH MEDIAL FORM;Lo;0;AL; 067B;;;;N;;;;; -FB56;ARABIC LETTER PEH ISOLATED FORM;Lo;0;AL; 067E;;;;N;;;;; -FB57;ARABIC LETTER PEH FINAL FORM;Lo;0;AL; 067E;;;;N;;;;; -FB58;ARABIC LETTER PEH INITIAL FORM;Lo;0;AL; 067E;;;;N;;;;; -FB59;ARABIC LETTER PEH MEDIAL FORM;Lo;0;AL; 067E;;;;N;;;;; -FB5A;ARABIC LETTER BEHEH ISOLATED FORM;Lo;0;AL; 0680;;;;N;;;;; -FB5B;ARABIC LETTER BEHEH FINAL FORM;Lo;0;AL; 0680;;;;N;;;;; -FB5C;ARABIC LETTER BEHEH INITIAL FORM;Lo;0;AL; 0680;;;;N;;;;; -FB5D;ARABIC LETTER BEHEH MEDIAL FORM;Lo;0;AL; 0680;;;;N;;;;; -FB5E;ARABIC LETTER TTEHEH ISOLATED FORM;Lo;0;AL; 067A;;;;N;;;;; -FB5F;ARABIC LETTER TTEHEH FINAL FORM;Lo;0;AL; 067A;;;;N;;;;; -FB60;ARABIC LETTER TTEHEH INITIAL FORM;Lo;0;AL; 067A;;;;N;;;;; -FB61;ARABIC LETTER TTEHEH MEDIAL FORM;Lo;0;AL; 067A;;;;N;;;;; -FB62;ARABIC LETTER TEHEH ISOLATED FORM;Lo;0;AL; 067F;;;;N;;;;; -FB63;ARABIC LETTER TEHEH FINAL FORM;Lo;0;AL; 067F;;;;N;;;;; -FB64;ARABIC LETTER TEHEH INITIAL FORM;Lo;0;AL; 067F;;;;N;;;;; -FB65;ARABIC LETTER TEHEH MEDIAL FORM;Lo;0;AL; 067F;;;;N;;;;; -FB66;ARABIC LETTER TTEH ISOLATED FORM;Lo;0;AL; 0679;;;;N;;;;; -FB67;ARABIC LETTER TTEH FINAL FORM;Lo;0;AL; 0679;;;;N;;;;; -FB68;ARABIC LETTER TTEH INITIAL FORM;Lo;0;AL; 0679;;;;N;;;;; -FB69;ARABIC LETTER TTEH MEDIAL FORM;Lo;0;AL; 0679;;;;N;;;;; -FB6A;ARABIC LETTER VEH ISOLATED FORM;Lo;0;AL; 06A4;;;;N;;;;; -FB6B;ARABIC LETTER VEH FINAL FORM;Lo;0;AL; 06A4;;;;N;;;;; -FB6C;ARABIC LETTER VEH INITIAL FORM;Lo;0;AL; 06A4;;;;N;;;;; -FB6D;ARABIC LETTER VEH MEDIAL FORM;Lo;0;AL; 06A4;;;;N;;;;; -FB6E;ARABIC LETTER PEHEH ISOLATED FORM;Lo;0;AL; 06A6;;;;N;;;;; -FB6F;ARABIC LETTER PEHEH FINAL FORM;Lo;0;AL; 06A6;;;;N;;;;; -FB70;ARABIC LETTER PEHEH INITIAL FORM;Lo;0;AL; 06A6;;;;N;;;;; -FB71;ARABIC LETTER PEHEH MEDIAL FORM;Lo;0;AL; 06A6;;;;N;;;;; -FB72;ARABIC LETTER DYEH ISOLATED FORM;Lo;0;AL; 0684;;;;N;;;;; -FB73;ARABIC LETTER DYEH FINAL FORM;Lo;0;AL; 0684;;;;N;;;;; -FB74;ARABIC LETTER DYEH INITIAL FORM;Lo;0;AL; 0684;;;;N;;;;; -FB75;ARABIC LETTER DYEH MEDIAL FORM;Lo;0;AL; 0684;;;;N;;;;; -FB76;ARABIC LETTER NYEH ISOLATED FORM;Lo;0;AL; 0683;;;;N;;;;; -FB77;ARABIC LETTER NYEH FINAL FORM;Lo;0;AL; 0683;;;;N;;;;; -FB78;ARABIC LETTER NYEH INITIAL FORM;Lo;0;AL; 0683;;;;N;;;;; -FB79;ARABIC LETTER NYEH MEDIAL FORM;Lo;0;AL; 0683;;;;N;;;;; -FB7A;ARABIC LETTER TCHEH ISOLATED FORM;Lo;0;AL; 0686;;;;N;;;;; -FB7B;ARABIC LETTER TCHEH FINAL FORM;Lo;0;AL; 0686;;;;N;;;;; -FB7C;ARABIC LETTER TCHEH INITIAL FORM;Lo;0;AL; 0686;;;;N;;;;; -FB7D;ARABIC LETTER TCHEH MEDIAL FORM;Lo;0;AL; 0686;;;;N;;;;; -FB7E;ARABIC LETTER TCHEHEH ISOLATED FORM;Lo;0;AL; 0687;;;;N;;;;; -FB7F;ARABIC LETTER TCHEHEH FINAL FORM;Lo;0;AL; 0687;;;;N;;;;; -FB80;ARABIC LETTER TCHEHEH INITIAL FORM;Lo;0;AL; 0687;;;;N;;;;; -FB81;ARABIC LETTER TCHEHEH MEDIAL FORM;Lo;0;AL; 0687;;;;N;;;;; -FB82;ARABIC LETTER DDAHAL ISOLATED FORM;Lo;0;AL; 068D;;;;N;;;;; -FB83;ARABIC LETTER DDAHAL FINAL FORM;Lo;0;AL; 068D;;;;N;;;;; -FB84;ARABIC LETTER DAHAL ISOLATED FORM;Lo;0;AL; 068C;;;;N;;;;; -FB85;ARABIC LETTER DAHAL FINAL FORM;Lo;0;AL; 068C;;;;N;;;;; -FB86;ARABIC LETTER DUL ISOLATED FORM;Lo;0;AL; 068E;;;;N;;;;; -FB87;ARABIC LETTER DUL FINAL FORM;Lo;0;AL; 068E;;;;N;;;;; -FB88;ARABIC LETTER DDAL ISOLATED FORM;Lo;0;AL; 0688;;;;N;;;;; -FB89;ARABIC LETTER DDAL FINAL FORM;Lo;0;AL; 0688;;;;N;;;;; -FB8A;ARABIC LETTER JEH ISOLATED FORM;Lo;0;AL; 0698;;;;N;;;;; -FB8B;ARABIC LETTER JEH FINAL FORM;Lo;0;AL; 0698;;;;N;;;;; -FB8C;ARABIC LETTER RREH ISOLATED FORM;Lo;0;AL; 0691;;;;N;;;;; -FB8D;ARABIC LETTER RREH FINAL FORM;Lo;0;AL; 0691;;;;N;;;;; -FB8E;ARABIC LETTER KEHEH ISOLATED FORM;Lo;0;AL; 06A9;;;;N;;;;; -FB8F;ARABIC LETTER KEHEH FINAL FORM;Lo;0;AL; 06A9;;;;N;;;;; -FB90;ARABIC LETTER KEHEH INITIAL FORM;Lo;0;AL; 06A9;;;;N;;;;; -FB91;ARABIC LETTER KEHEH MEDIAL FORM;Lo;0;AL; 06A9;;;;N;;;;; -FB92;ARABIC LETTER GAF ISOLATED FORM;Lo;0;AL; 06AF;;;;N;;;;; -FB93;ARABIC LETTER GAF FINAL FORM;Lo;0;AL; 06AF;;;;N;;;;; -FB94;ARABIC LETTER GAF INITIAL FORM;Lo;0;AL; 06AF;;;;N;;;;; -FB95;ARABIC LETTER GAF MEDIAL FORM;Lo;0;AL; 06AF;;;;N;;;;; -FB96;ARABIC LETTER GUEH ISOLATED FORM;Lo;0;AL; 06B3;;;;N;;;;; -FB97;ARABIC LETTER GUEH FINAL FORM;Lo;0;AL; 06B3;;;;N;;;;; -FB98;ARABIC LETTER GUEH INITIAL FORM;Lo;0;AL; 06B3;;;;N;;;;; -FB99;ARABIC LETTER GUEH MEDIAL FORM;Lo;0;AL; 06B3;;;;N;;;;; -FB9A;ARABIC LETTER NGOEH ISOLATED FORM;Lo;0;AL; 06B1;;;;N;;;;; -FB9B;ARABIC LETTER NGOEH FINAL FORM;Lo;0;AL; 06B1;;;;N;;;;; -FB9C;ARABIC LETTER NGOEH INITIAL FORM;Lo;0;AL; 06B1;;;;N;;;;; -FB9D;ARABIC LETTER NGOEH MEDIAL FORM;Lo;0;AL; 06B1;;;;N;;;;; -FB9E;ARABIC LETTER NOON GHUNNA ISOLATED FORM;Lo;0;AL; 06BA;;;;N;;;;; -FB9F;ARABIC LETTER NOON GHUNNA FINAL FORM;Lo;0;AL; 06BA;;;;N;;;;; -FBA0;ARABIC LETTER RNOON ISOLATED FORM;Lo;0;AL; 06BB;;;;N;;;;; -FBA1;ARABIC LETTER RNOON FINAL FORM;Lo;0;AL; 06BB;;;;N;;;;; -FBA2;ARABIC LETTER RNOON INITIAL FORM;Lo;0;AL; 06BB;;;;N;;;;; -FBA3;ARABIC LETTER RNOON MEDIAL FORM;Lo;0;AL; 06BB;;;;N;;;;; -FBA4;ARABIC LETTER HEH WITH YEH ABOVE ISOLATED FORM;Lo;0;AL; 06C0;;;;N;;;;; -FBA5;ARABIC LETTER HEH WITH YEH ABOVE FINAL FORM;Lo;0;AL; 06C0;;;;N;;;;; -FBA6;ARABIC LETTER HEH GOAL ISOLATED FORM;Lo;0;AL; 06C1;;;;N;;;;; -FBA7;ARABIC LETTER HEH GOAL FINAL FORM;Lo;0;AL; 06C1;;;;N;;;;; -FBA8;ARABIC LETTER HEH GOAL INITIAL FORM;Lo;0;AL; 06C1;;;;N;;;;; -FBA9;ARABIC LETTER HEH GOAL MEDIAL FORM;Lo;0;AL; 06C1;;;;N;;;;; -FBAA;ARABIC LETTER HEH DOACHASHMEE ISOLATED FORM;Lo;0;AL; 06BE;;;;N;;;;; -FBAB;ARABIC LETTER HEH DOACHASHMEE FINAL FORM;Lo;0;AL; 06BE;;;;N;;;;; -FBAC;ARABIC LETTER HEH DOACHASHMEE INITIAL FORM;Lo;0;AL; 06BE;;;;N;;;;; -FBAD;ARABIC LETTER HEH DOACHASHMEE MEDIAL FORM;Lo;0;AL; 06BE;;;;N;;;;; -FBAE;ARABIC LETTER YEH BARREE ISOLATED FORM;Lo;0;AL; 06D2;;;;N;;;;; -FBAF;ARABIC LETTER YEH BARREE FINAL FORM;Lo;0;AL; 06D2;;;;N;;;;; -FBB0;ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL; 06D3;;;;N;;;;; -FBB1;ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM;Lo;0;AL; 06D3;;;;N;;;;; -FBD3;ARABIC LETTER NG ISOLATED FORM;Lo;0;AL; 06AD;;;;N;;;;; -FBD4;ARABIC LETTER NG FINAL FORM;Lo;0;AL; 06AD;;;;N;;;;; -FBD5;ARABIC LETTER NG INITIAL FORM;Lo;0;AL; 06AD;;;;N;;;;; -FBD6;ARABIC LETTER NG MEDIAL FORM;Lo;0;AL; 06AD;;;;N;;;;; -FBD7;ARABIC LETTER U ISOLATED FORM;Lo;0;AL; 06C7;;;;N;;;;; -FBD8;ARABIC LETTER U FINAL FORM;Lo;0;AL; 06C7;;;;N;;;;; -FBD9;ARABIC LETTER OE ISOLATED FORM;Lo;0;AL; 06C6;;;;N;;;;; -FBDA;ARABIC LETTER OE FINAL FORM;Lo;0;AL; 06C6;;;;N;;;;; -FBDB;ARABIC LETTER YU ISOLATED FORM;Lo;0;AL; 06C8;;;;N;;;;; -FBDC;ARABIC LETTER YU FINAL FORM;Lo;0;AL; 06C8;;;;N;;;;; -FBDD;ARABIC LETTER U WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL; 0677;;;;N;;;;; -FBDE;ARABIC LETTER VE ISOLATED FORM;Lo;0;AL; 06CB;;;;N;;;;; -FBDF;ARABIC LETTER VE FINAL FORM;Lo;0;AL; 06CB;;;;N;;;;; -FBE0;ARABIC LETTER KIRGHIZ OE ISOLATED FORM;Lo;0;AL; 06C5;;;;N;;;;; -FBE1;ARABIC LETTER KIRGHIZ OE FINAL FORM;Lo;0;AL; 06C5;;;;N;;;;; -FBE2;ARABIC LETTER KIRGHIZ YU ISOLATED FORM;Lo;0;AL; 06C9;;;;N;;;;; -FBE3;ARABIC LETTER KIRGHIZ YU FINAL FORM;Lo;0;AL; 06C9;;;;N;;;;; -FBE4;ARABIC LETTER E ISOLATED FORM;Lo;0;AL; 06D0;;;;N;;;;; -FBE5;ARABIC LETTER E FINAL FORM;Lo;0;AL; 06D0;;;;N;;;;; -FBE6;ARABIC LETTER E INITIAL FORM;Lo;0;AL; 06D0;;;;N;;;;; -FBE7;ARABIC LETTER E MEDIAL FORM;Lo;0;AL; 06D0;;;;N;;;;; -FBE8;ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA INITIAL FORM;Lo;0;AL; 0649;;;;N;;;;; -FBE9;ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA MEDIAL FORM;Lo;0;AL; 0649;;;;N;;;;; -FBEA;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF ISOLATED FORM;Lo;0;AL; 0626 0627;;;;N;;;;; -FBEB;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF FINAL FORM;Lo;0;AL; 0626 0627;;;;N;;;;; -FBEC;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE ISOLATED FORM;Lo;0;AL; 0626 06D5;;;;N;;;;; -FBED;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE FINAL FORM;Lo;0;AL; 0626 06D5;;;;N;;;;; -FBEE;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW ISOLATED FORM;Lo;0;AL; 0626 0648;;;;N;;;;; -FBEF;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW FINAL FORM;Lo;0;AL; 0626 0648;;;;N;;;;; -FBF0;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U ISOLATED FORM;Lo;0;AL; 0626 06C7;;;;N;;;;; -FBF1;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U FINAL FORM;Lo;0;AL; 0626 06C7;;;;N;;;;; -FBF2;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE ISOLATED FORM;Lo;0;AL; 0626 06C6;;;;N;;;;; -FBF3;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE FINAL FORM;Lo;0;AL; 0626 06C6;;;;N;;;;; -FBF4;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU ISOLATED FORM;Lo;0;AL; 0626 06C8;;;;N;;;;; -FBF5;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU FINAL FORM;Lo;0;AL; 0626 06C8;;;;N;;;;; -FBF6;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E ISOLATED FORM;Lo;0;AL; 0626 06D0;;;;N;;;;; -FBF7;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E FINAL FORM;Lo;0;AL; 0626 06D0;;;;N;;;;; -FBF8;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E INITIAL FORM;Lo;0;AL; 0626 06D0;;;;N;;;;; -FBF9;ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 0626 0649;;;;N;;;;; -FBFA;ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0626 0649;;;;N;;;;; -FBFB;ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA INITIAL FORM;Lo;0;AL; 0626 0649;;;;N;;;;; -FBFC;ARABIC LETTER FARSI YEH ISOLATED FORM;Lo;0;AL; 06CC;;;;N;;;;; -FBFD;ARABIC LETTER FARSI YEH FINAL FORM;Lo;0;AL; 06CC;;;;N;;;;; -FBFE;ARABIC LETTER FARSI YEH INITIAL FORM;Lo;0;AL; 06CC;;;;N;;;;; -FBFF;ARABIC LETTER FARSI YEH MEDIAL FORM;Lo;0;AL; 06CC;;;;N;;;;; -FC00;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM ISOLATED FORM;Lo;0;AL; 0626 062C;;;;N;;;;; -FC01;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH ISOLATED FORM;Lo;0;AL; 0626 062D;;;;N;;;;; -FC02;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM ISOLATED FORM;Lo;0;AL; 0626 0645;;;;N;;;;; -FC03;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 0626 0649;;;;N;;;;; -FC04;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH ISOLATED FORM;Lo;0;AL; 0626 064A;;;;N;;;;; -FC05;ARABIC LIGATURE BEH WITH JEEM ISOLATED FORM;Lo;0;AL; 0628 062C;;;;N;;;;; -FC06;ARABIC LIGATURE BEH WITH HAH ISOLATED FORM;Lo;0;AL; 0628 062D;;;;N;;;;; -FC07;ARABIC LIGATURE BEH WITH KHAH ISOLATED FORM;Lo;0;AL; 0628 062E;;;;N;;;;; -FC08;ARABIC LIGATURE BEH WITH MEEM ISOLATED FORM;Lo;0;AL; 0628 0645;;;;N;;;;; -FC09;ARABIC LIGATURE BEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 0628 0649;;;;N;;;;; -FC0A;ARABIC LIGATURE BEH WITH YEH ISOLATED FORM;Lo;0;AL; 0628 064A;;;;N;;;;; -FC0B;ARABIC LIGATURE TEH WITH JEEM ISOLATED FORM;Lo;0;AL; 062A 062C;;;;N;;;;; -FC0C;ARABIC LIGATURE TEH WITH HAH ISOLATED FORM;Lo;0;AL; 062A 062D;;;;N;;;;; -FC0D;ARABIC LIGATURE TEH WITH KHAH ISOLATED FORM;Lo;0;AL; 062A 062E;;;;N;;;;; -FC0E;ARABIC LIGATURE TEH WITH MEEM ISOLATED FORM;Lo;0;AL; 062A 0645;;;;N;;;;; -FC0F;ARABIC LIGATURE TEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 062A 0649;;;;N;;;;; -FC10;ARABIC LIGATURE TEH WITH YEH ISOLATED FORM;Lo;0;AL; 062A 064A;;;;N;;;;; -FC11;ARABIC LIGATURE THEH WITH JEEM ISOLATED FORM;Lo;0;AL; 062B 062C;;;;N;;;;; -FC12;ARABIC LIGATURE THEH WITH MEEM ISOLATED FORM;Lo;0;AL; 062B 0645;;;;N;;;;; -FC13;ARABIC LIGATURE THEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 062B 0649;;;;N;;;;; -FC14;ARABIC LIGATURE THEH WITH YEH ISOLATED FORM;Lo;0;AL; 062B 064A;;;;N;;;;; -FC15;ARABIC LIGATURE JEEM WITH HAH ISOLATED FORM;Lo;0;AL; 062C 062D;;;;N;;;;; -FC16;ARABIC LIGATURE JEEM WITH MEEM ISOLATED FORM;Lo;0;AL; 062C 0645;;;;N;;;;; -FC17;ARABIC LIGATURE HAH WITH JEEM ISOLATED FORM;Lo;0;AL; 062D 062C;;;;N;;;;; -FC18;ARABIC LIGATURE HAH WITH MEEM ISOLATED FORM;Lo;0;AL; 062D 0645;;;;N;;;;; -FC19;ARABIC LIGATURE KHAH WITH JEEM ISOLATED FORM;Lo;0;AL; 062E 062C;;;;N;;;;; -FC1A;ARABIC LIGATURE KHAH WITH HAH ISOLATED FORM;Lo;0;AL; 062E 062D;;;;N;;;;; -FC1B;ARABIC LIGATURE KHAH WITH MEEM ISOLATED FORM;Lo;0;AL; 062E 0645;;;;N;;;;; -FC1C;ARABIC LIGATURE SEEN WITH JEEM ISOLATED FORM;Lo;0;AL; 0633 062C;;;;N;;;;; -FC1D;ARABIC LIGATURE SEEN WITH HAH ISOLATED FORM;Lo;0;AL; 0633 062D;;;;N;;;;; -FC1E;ARABIC LIGATURE SEEN WITH KHAH ISOLATED FORM;Lo;0;AL; 0633 062E;;;;N;;;;; -FC1F;ARABIC LIGATURE SEEN WITH MEEM ISOLATED FORM;Lo;0;AL; 0633 0645;;;;N;;;;; -FC20;ARABIC LIGATURE SAD WITH HAH ISOLATED FORM;Lo;0;AL; 0635 062D;;;;N;;;;; -FC21;ARABIC LIGATURE SAD WITH MEEM ISOLATED FORM;Lo;0;AL; 0635 0645;;;;N;;;;; -FC22;ARABIC LIGATURE DAD WITH JEEM ISOLATED FORM;Lo;0;AL; 0636 062C;;;;N;;;;; -FC23;ARABIC LIGATURE DAD WITH HAH ISOLATED FORM;Lo;0;AL; 0636 062D;;;;N;;;;; -FC24;ARABIC LIGATURE DAD WITH KHAH ISOLATED FORM;Lo;0;AL; 0636 062E;;;;N;;;;; -FC25;ARABIC LIGATURE DAD WITH MEEM ISOLATED FORM;Lo;0;AL; 0636 0645;;;;N;;;;; -FC26;ARABIC LIGATURE TAH WITH HAH ISOLATED FORM;Lo;0;AL; 0637 062D;;;;N;;;;; -FC27;ARABIC LIGATURE TAH WITH MEEM ISOLATED FORM;Lo;0;AL; 0637 0645;;;;N;;;;; -FC28;ARABIC LIGATURE ZAH WITH MEEM ISOLATED FORM;Lo;0;AL; 0638 0645;;;;N;;;;; -FC29;ARABIC LIGATURE AIN WITH JEEM ISOLATED FORM;Lo;0;AL; 0639 062C;;;;N;;;;; -FC2A;ARABIC LIGATURE AIN WITH MEEM ISOLATED FORM;Lo;0;AL; 0639 0645;;;;N;;;;; -FC2B;ARABIC LIGATURE GHAIN WITH JEEM ISOLATED FORM;Lo;0;AL; 063A 062C;;;;N;;;;; -FC2C;ARABIC LIGATURE GHAIN WITH MEEM ISOLATED FORM;Lo;0;AL; 063A 0645;;;;N;;;;; -FC2D;ARABIC LIGATURE FEH WITH JEEM ISOLATED FORM;Lo;0;AL; 0641 062C;;;;N;;;;; -FC2E;ARABIC LIGATURE FEH WITH HAH ISOLATED FORM;Lo;0;AL; 0641 062D;;;;N;;;;; -FC2F;ARABIC LIGATURE FEH WITH KHAH ISOLATED FORM;Lo;0;AL; 0641 062E;;;;N;;;;; -FC30;ARABIC LIGATURE FEH WITH MEEM ISOLATED FORM;Lo;0;AL; 0641 0645;;;;N;;;;; -FC31;ARABIC LIGATURE FEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 0641 0649;;;;N;;;;; -FC32;ARABIC LIGATURE FEH WITH YEH ISOLATED FORM;Lo;0;AL; 0641 064A;;;;N;;;;; -FC33;ARABIC LIGATURE QAF WITH HAH ISOLATED FORM;Lo;0;AL; 0642 062D;;;;N;;;;; -FC34;ARABIC LIGATURE QAF WITH MEEM ISOLATED FORM;Lo;0;AL; 0642 0645;;;;N;;;;; -FC35;ARABIC LIGATURE QAF WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 0642 0649;;;;N;;;;; -FC36;ARABIC LIGATURE QAF WITH YEH ISOLATED FORM;Lo;0;AL; 0642 064A;;;;N;;;;; -FC37;ARABIC LIGATURE KAF WITH ALEF ISOLATED FORM;Lo;0;AL; 0643 0627;;;;N;;;;; -FC38;ARABIC LIGATURE KAF WITH JEEM ISOLATED FORM;Lo;0;AL; 0643 062C;;;;N;;;;; -FC39;ARABIC LIGATURE KAF WITH HAH ISOLATED FORM;Lo;0;AL; 0643 062D;;;;N;;;;; -FC3A;ARABIC LIGATURE KAF WITH KHAH ISOLATED FORM;Lo;0;AL; 0643 062E;;;;N;;;;; -FC3B;ARABIC LIGATURE KAF WITH LAM ISOLATED FORM;Lo;0;AL; 0643 0644;;;;N;;;;; -FC3C;ARABIC LIGATURE KAF WITH MEEM ISOLATED FORM;Lo;0;AL; 0643 0645;;;;N;;;;; -FC3D;ARABIC LIGATURE KAF WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 0643 0649;;;;N;;;;; -FC3E;ARABIC LIGATURE KAF WITH YEH ISOLATED FORM;Lo;0;AL; 0643 064A;;;;N;;;;; -FC3F;ARABIC LIGATURE LAM WITH JEEM ISOLATED FORM;Lo;0;AL; 0644 062C;;;;N;;;;; -FC40;ARABIC LIGATURE LAM WITH HAH ISOLATED FORM;Lo;0;AL; 0644 062D;;;;N;;;;; -FC41;ARABIC LIGATURE LAM WITH KHAH ISOLATED FORM;Lo;0;AL; 0644 062E;;;;N;;;;; -FC42;ARABIC LIGATURE LAM WITH MEEM ISOLATED FORM;Lo;0;AL; 0644 0645;;;;N;;;;; -FC43;ARABIC LIGATURE LAM WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 0644 0649;;;;N;;;;; -FC44;ARABIC LIGATURE LAM WITH YEH ISOLATED FORM;Lo;0;AL; 0644 064A;;;;N;;;;; -FC45;ARABIC LIGATURE MEEM WITH JEEM ISOLATED FORM;Lo;0;AL; 0645 062C;;;;N;;;;; -FC46;ARABIC LIGATURE MEEM WITH HAH ISOLATED FORM;Lo;0;AL; 0645 062D;;;;N;;;;; -FC47;ARABIC LIGATURE MEEM WITH KHAH ISOLATED FORM;Lo;0;AL; 0645 062E;;;;N;;;;; -FC48;ARABIC LIGATURE MEEM WITH MEEM ISOLATED FORM;Lo;0;AL; 0645 0645;;;;N;;;;; -FC49;ARABIC LIGATURE MEEM WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 0645 0649;;;;N;;;;; -FC4A;ARABIC LIGATURE MEEM WITH YEH ISOLATED FORM;Lo;0;AL; 0645 064A;;;;N;;;;; -FC4B;ARABIC LIGATURE NOON WITH JEEM ISOLATED FORM;Lo;0;AL; 0646 062C;;;;N;;;;; -FC4C;ARABIC LIGATURE NOON WITH HAH ISOLATED FORM;Lo;0;AL; 0646 062D;;;;N;;;;; -FC4D;ARABIC LIGATURE NOON WITH KHAH ISOLATED FORM;Lo;0;AL; 0646 062E;;;;N;;;;; -FC4E;ARABIC LIGATURE NOON WITH MEEM ISOLATED FORM;Lo;0;AL; 0646 0645;;;;N;;;;; -FC4F;ARABIC LIGATURE NOON WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 0646 0649;;;;N;;;;; -FC50;ARABIC LIGATURE NOON WITH YEH ISOLATED FORM;Lo;0;AL; 0646 064A;;;;N;;;;; -FC51;ARABIC LIGATURE HEH WITH JEEM ISOLATED FORM;Lo;0;AL; 0647 062C;;;;N;;;;; -FC52;ARABIC LIGATURE HEH WITH MEEM ISOLATED FORM;Lo;0;AL; 0647 0645;;;;N;;;;; -FC53;ARABIC LIGATURE HEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 0647 0649;;;;N;;;;; -FC54;ARABIC LIGATURE HEH WITH YEH ISOLATED FORM;Lo;0;AL; 0647 064A;;;;N;;;;; -FC55;ARABIC LIGATURE YEH WITH JEEM ISOLATED FORM;Lo;0;AL; 064A 062C;;;;N;;;;; -FC56;ARABIC LIGATURE YEH WITH HAH ISOLATED FORM;Lo;0;AL; 064A 062D;;;;N;;;;; -FC57;ARABIC LIGATURE YEH WITH KHAH ISOLATED FORM;Lo;0;AL; 064A 062E;;;;N;;;;; -FC58;ARABIC LIGATURE YEH WITH MEEM ISOLATED FORM;Lo;0;AL; 064A 0645;;;;N;;;;; -FC59;ARABIC LIGATURE YEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 064A 0649;;;;N;;;;; -FC5A;ARABIC LIGATURE YEH WITH YEH ISOLATED FORM;Lo;0;AL; 064A 064A;;;;N;;;;; -FC5B;ARABIC LIGATURE THAL WITH SUPERSCRIPT ALEF ISOLATED FORM;Lo;0;AL; 0630 0670;;;;N;;;;; -FC5C;ARABIC LIGATURE REH WITH SUPERSCRIPT ALEF ISOLATED FORM;Lo;0;AL; 0631 0670;;;;N;;;;; -FC5D;ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF ISOLATED FORM;Lo;0;AL; 0649 0670;;;;N;;;;; -FC5E;ARABIC LIGATURE SHADDA WITH DAMMATAN ISOLATED FORM;Lo;0;AL; 0020 064C 0651;;;;N;;;;; -FC5F;ARABIC LIGATURE SHADDA WITH KASRATAN ISOLATED FORM;Lo;0;AL; 0020 064D 0651;;;;N;;;;; -FC60;ARABIC LIGATURE SHADDA WITH FATHA ISOLATED FORM;Lo;0;AL; 0020 064E 0651;;;;N;;;;; -FC61;ARABIC LIGATURE SHADDA WITH DAMMA ISOLATED FORM;Lo;0;AL; 0020 064F 0651;;;;N;;;;; -FC62;ARABIC LIGATURE SHADDA WITH KASRA ISOLATED FORM;Lo;0;AL; 0020 0650 0651;;;;N;;;;; -FC63;ARABIC LIGATURE SHADDA WITH SUPERSCRIPT ALEF ISOLATED FORM;Lo;0;AL; 0020 0651 0670;;;;N;;;;; -FC64;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH REH FINAL FORM;Lo;0;AL; 0626 0631;;;;N;;;;; -FC65;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ZAIN FINAL FORM;Lo;0;AL; 0626 0632;;;;N;;;;; -FC66;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM FINAL FORM;Lo;0;AL; 0626 0645;;;;N;;;;; -FC67;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH NOON FINAL FORM;Lo;0;AL; 0626 0646;;;;N;;;;; -FC68;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0626 0649;;;;N;;;;; -FC69;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH FINAL FORM;Lo;0;AL; 0626 064A;;;;N;;;;; -FC6A;ARABIC LIGATURE BEH WITH REH FINAL FORM;Lo;0;AL; 0628 0631;;;;N;;;;; -FC6B;ARABIC LIGATURE BEH WITH ZAIN FINAL FORM;Lo;0;AL; 0628 0632;;;;N;;;;; -FC6C;ARABIC LIGATURE BEH WITH MEEM FINAL FORM;Lo;0;AL; 0628 0645;;;;N;;;;; -FC6D;ARABIC LIGATURE BEH WITH NOON FINAL FORM;Lo;0;AL; 0628 0646;;;;N;;;;; -FC6E;ARABIC LIGATURE BEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0628 0649;;;;N;;;;; -FC6F;ARABIC LIGATURE BEH WITH YEH FINAL FORM;Lo;0;AL; 0628 064A;;;;N;;;;; -FC70;ARABIC LIGATURE TEH WITH REH FINAL FORM;Lo;0;AL; 062A 0631;;;;N;;;;; -FC71;ARABIC LIGATURE TEH WITH ZAIN FINAL FORM;Lo;0;AL; 062A 0632;;;;N;;;;; -FC72;ARABIC LIGATURE TEH WITH MEEM FINAL FORM;Lo;0;AL; 062A 0645;;;;N;;;;; -FC73;ARABIC LIGATURE TEH WITH NOON FINAL FORM;Lo;0;AL; 062A 0646;;;;N;;;;; -FC74;ARABIC LIGATURE TEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 062A 0649;;;;N;;;;; -FC75;ARABIC LIGATURE TEH WITH YEH FINAL FORM;Lo;0;AL; 062A 064A;;;;N;;;;; -FC76;ARABIC LIGATURE THEH WITH REH FINAL FORM;Lo;0;AL; 062B 0631;;;;N;;;;; -FC77;ARABIC LIGATURE THEH WITH ZAIN FINAL FORM;Lo;0;AL; 062B 0632;;;;N;;;;; -FC78;ARABIC LIGATURE THEH WITH MEEM FINAL FORM;Lo;0;AL; 062B 0645;;;;N;;;;; -FC79;ARABIC LIGATURE THEH WITH NOON FINAL FORM;Lo;0;AL; 062B 0646;;;;N;;;;; -FC7A;ARABIC LIGATURE THEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 062B 0649;;;;N;;;;; -FC7B;ARABIC LIGATURE THEH WITH YEH FINAL FORM;Lo;0;AL; 062B 064A;;;;N;;;;; -FC7C;ARABIC LIGATURE FEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0641 0649;;;;N;;;;; -FC7D;ARABIC LIGATURE FEH WITH YEH FINAL FORM;Lo;0;AL; 0641 064A;;;;N;;;;; -FC7E;ARABIC LIGATURE QAF WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0642 0649;;;;N;;;;; -FC7F;ARABIC LIGATURE QAF WITH YEH FINAL FORM;Lo;0;AL; 0642 064A;;;;N;;;;; -FC80;ARABIC LIGATURE KAF WITH ALEF FINAL FORM;Lo;0;AL; 0643 0627;;;;N;;;;; -FC81;ARABIC LIGATURE KAF WITH LAM FINAL FORM;Lo;0;AL; 0643 0644;;;;N;;;;; -FC82;ARABIC LIGATURE KAF WITH MEEM FINAL FORM;Lo;0;AL; 0643 0645;;;;N;;;;; -FC83;ARABIC LIGATURE KAF WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0643 0649;;;;N;;;;; -FC84;ARABIC LIGATURE KAF WITH YEH FINAL FORM;Lo;0;AL; 0643 064A;;;;N;;;;; -FC85;ARABIC LIGATURE LAM WITH MEEM FINAL FORM;Lo;0;AL; 0644 0645;;;;N;;;;; -FC86;ARABIC LIGATURE LAM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0644 0649;;;;N;;;;; -FC87;ARABIC LIGATURE LAM WITH YEH FINAL FORM;Lo;0;AL; 0644 064A;;;;N;;;;; -FC88;ARABIC LIGATURE MEEM WITH ALEF FINAL FORM;Lo;0;AL; 0645 0627;;;;N;;;;; -FC89;ARABIC LIGATURE MEEM WITH MEEM FINAL FORM;Lo;0;AL; 0645 0645;;;;N;;;;; -FC8A;ARABIC LIGATURE NOON WITH REH FINAL FORM;Lo;0;AL; 0646 0631;;;;N;;;;; -FC8B;ARABIC LIGATURE NOON WITH ZAIN FINAL FORM;Lo;0;AL; 0646 0632;;;;N;;;;; -FC8C;ARABIC LIGATURE NOON WITH MEEM FINAL FORM;Lo;0;AL; 0646 0645;;;;N;;;;; -FC8D;ARABIC LIGATURE NOON WITH NOON FINAL FORM;Lo;0;AL; 0646 0646;;;;N;;;;; -FC8E;ARABIC LIGATURE NOON WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0646 0649;;;;N;;;;; -FC8F;ARABIC LIGATURE NOON WITH YEH FINAL FORM;Lo;0;AL; 0646 064A;;;;N;;;;; -FC90;ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF FINAL FORM;Lo;0;AL; 0649 0670;;;;N;;;;; -FC91;ARABIC LIGATURE YEH WITH REH FINAL FORM;Lo;0;AL; 064A 0631;;;;N;;;;; -FC92;ARABIC LIGATURE YEH WITH ZAIN FINAL FORM;Lo;0;AL; 064A 0632;;;;N;;;;; -FC93;ARABIC LIGATURE YEH WITH MEEM FINAL FORM;Lo;0;AL; 064A 0645;;;;N;;;;; -FC94;ARABIC LIGATURE YEH WITH NOON FINAL FORM;Lo;0;AL; 064A 0646;;;;N;;;;; -FC95;ARABIC LIGATURE YEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 064A 0649;;;;N;;;;; -FC96;ARABIC LIGATURE YEH WITH YEH FINAL FORM;Lo;0;AL; 064A 064A;;;;N;;;;; -FC97;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM INITIAL FORM;Lo;0;AL; 0626 062C;;;;N;;;;; -FC98;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH INITIAL FORM;Lo;0;AL; 0626 062D;;;;N;;;;; -FC99;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH KHAH INITIAL FORM;Lo;0;AL; 0626 062E;;;;N;;;;; -FC9A;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM INITIAL FORM;Lo;0;AL; 0626 0645;;;;N;;;;; -FC9B;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH INITIAL FORM;Lo;0;AL; 0626 0647;;;;N;;;;; -FC9C;ARABIC LIGATURE BEH WITH JEEM INITIAL FORM;Lo;0;AL; 0628 062C;;;;N;;;;; -FC9D;ARABIC LIGATURE BEH WITH HAH INITIAL FORM;Lo;0;AL; 0628 062D;;;;N;;;;; -FC9E;ARABIC LIGATURE BEH WITH KHAH INITIAL FORM;Lo;0;AL; 0628 062E;;;;N;;;;; -FC9F;ARABIC LIGATURE BEH WITH MEEM INITIAL FORM;Lo;0;AL; 0628 0645;;;;N;;;;; -FCA0;ARABIC LIGATURE BEH WITH HEH INITIAL FORM;Lo;0;AL; 0628 0647;;;;N;;;;; -FCA1;ARABIC LIGATURE TEH WITH JEEM INITIAL FORM;Lo;0;AL; 062A 062C;;;;N;;;;; -FCA2;ARABIC LIGATURE TEH WITH HAH INITIAL FORM;Lo;0;AL; 062A 062D;;;;N;;;;; -FCA3;ARABIC LIGATURE TEH WITH KHAH INITIAL FORM;Lo;0;AL; 062A 062E;;;;N;;;;; -FCA4;ARABIC LIGATURE TEH WITH MEEM INITIAL FORM;Lo;0;AL; 062A 0645;;;;N;;;;; -FCA5;ARABIC LIGATURE TEH WITH HEH INITIAL FORM;Lo;0;AL; 062A 0647;;;;N;;;;; -FCA6;ARABIC LIGATURE THEH WITH MEEM INITIAL FORM;Lo;0;AL; 062B 0645;;;;N;;;;; -FCA7;ARABIC LIGATURE JEEM WITH HAH INITIAL FORM;Lo;0;AL; 062C 062D;;;;N;;;;; -FCA8;ARABIC LIGATURE JEEM WITH MEEM INITIAL FORM;Lo;0;AL; 062C 0645;;;;N;;;;; -FCA9;ARABIC LIGATURE HAH WITH JEEM INITIAL FORM;Lo;0;AL; 062D 062C;;;;N;;;;; -FCAA;ARABIC LIGATURE HAH WITH MEEM INITIAL FORM;Lo;0;AL; 062D 0645;;;;N;;;;; -FCAB;ARABIC LIGATURE KHAH WITH JEEM INITIAL FORM;Lo;0;AL; 062E 062C;;;;N;;;;; -FCAC;ARABIC LIGATURE KHAH WITH MEEM INITIAL FORM;Lo;0;AL; 062E 0645;;;;N;;;;; -FCAD;ARABIC LIGATURE SEEN WITH JEEM INITIAL FORM;Lo;0;AL; 0633 062C;;;;N;;;;; -FCAE;ARABIC LIGATURE SEEN WITH HAH INITIAL FORM;Lo;0;AL; 0633 062D;;;;N;;;;; -FCAF;ARABIC LIGATURE SEEN WITH KHAH INITIAL FORM;Lo;0;AL; 0633 062E;;;;N;;;;; -FCB0;ARABIC LIGATURE SEEN WITH MEEM INITIAL FORM;Lo;0;AL; 0633 0645;;;;N;;;;; -FCB1;ARABIC LIGATURE SAD WITH HAH INITIAL FORM;Lo;0;AL; 0635 062D;;;;N;;;;; -FCB2;ARABIC LIGATURE SAD WITH KHAH INITIAL FORM;Lo;0;AL; 0635 062E;;;;N;;;;; -FCB3;ARABIC LIGATURE SAD WITH MEEM INITIAL FORM;Lo;0;AL; 0635 0645;;;;N;;;;; -FCB4;ARABIC LIGATURE DAD WITH JEEM INITIAL FORM;Lo;0;AL; 0636 062C;;;;N;;;;; -FCB5;ARABIC LIGATURE DAD WITH HAH INITIAL FORM;Lo;0;AL; 0636 062D;;;;N;;;;; -FCB6;ARABIC LIGATURE DAD WITH KHAH INITIAL FORM;Lo;0;AL; 0636 062E;;;;N;;;;; -FCB7;ARABIC LIGATURE DAD WITH MEEM INITIAL FORM;Lo;0;AL; 0636 0645;;;;N;;;;; -FCB8;ARABIC LIGATURE TAH WITH HAH INITIAL FORM;Lo;0;AL; 0637 062D;;;;N;;;;; -FCB9;ARABIC LIGATURE ZAH WITH MEEM INITIAL FORM;Lo;0;AL; 0638 0645;;;;N;;;;; -FCBA;ARABIC LIGATURE AIN WITH JEEM INITIAL FORM;Lo;0;AL; 0639 062C;;;;N;;;;; -FCBB;ARABIC LIGATURE AIN WITH MEEM INITIAL FORM;Lo;0;AL; 0639 0645;;;;N;;;;; -FCBC;ARABIC LIGATURE GHAIN WITH JEEM INITIAL FORM;Lo;0;AL; 063A 062C;;;;N;;;;; -FCBD;ARABIC LIGATURE GHAIN WITH MEEM INITIAL FORM;Lo;0;AL; 063A 0645;;;;N;;;;; -FCBE;ARABIC LIGATURE FEH WITH JEEM INITIAL FORM;Lo;0;AL; 0641 062C;;;;N;;;;; -FCBF;ARABIC LIGATURE FEH WITH HAH INITIAL FORM;Lo;0;AL; 0641 062D;;;;N;;;;; -FCC0;ARABIC LIGATURE FEH WITH KHAH INITIAL FORM;Lo;0;AL; 0641 062E;;;;N;;;;; -FCC1;ARABIC LIGATURE FEH WITH MEEM INITIAL FORM;Lo;0;AL; 0641 0645;;;;N;;;;; -FCC2;ARABIC LIGATURE QAF WITH HAH INITIAL FORM;Lo;0;AL; 0642 062D;;;;N;;;;; -FCC3;ARABIC LIGATURE QAF WITH MEEM INITIAL FORM;Lo;0;AL; 0642 0645;;;;N;;;;; -FCC4;ARABIC LIGATURE KAF WITH JEEM INITIAL FORM;Lo;0;AL; 0643 062C;;;;N;;;;; -FCC5;ARABIC LIGATURE KAF WITH HAH INITIAL FORM;Lo;0;AL; 0643 062D;;;;N;;;;; -FCC6;ARABIC LIGATURE KAF WITH KHAH INITIAL FORM;Lo;0;AL; 0643 062E;;;;N;;;;; -FCC7;ARABIC LIGATURE KAF WITH LAM INITIAL FORM;Lo;0;AL; 0643 0644;;;;N;;;;; -FCC8;ARABIC LIGATURE KAF WITH MEEM INITIAL FORM;Lo;0;AL; 0643 0645;;;;N;;;;; -FCC9;ARABIC LIGATURE LAM WITH JEEM INITIAL FORM;Lo;0;AL; 0644 062C;;;;N;;;;; -FCCA;ARABIC LIGATURE LAM WITH HAH INITIAL FORM;Lo;0;AL; 0644 062D;;;;N;;;;; -FCCB;ARABIC LIGATURE LAM WITH KHAH INITIAL FORM;Lo;0;AL; 0644 062E;;;;N;;;;; -FCCC;ARABIC LIGATURE LAM WITH MEEM INITIAL FORM;Lo;0;AL; 0644 0645;;;;N;;;;; -FCCD;ARABIC LIGATURE LAM WITH HEH INITIAL FORM;Lo;0;AL; 0644 0647;;;;N;;;;; -FCCE;ARABIC LIGATURE MEEM WITH JEEM INITIAL FORM;Lo;0;AL; 0645 062C;;;;N;;;;; -FCCF;ARABIC LIGATURE MEEM WITH HAH INITIAL FORM;Lo;0;AL; 0645 062D;;;;N;;;;; -FCD0;ARABIC LIGATURE MEEM WITH KHAH INITIAL FORM;Lo;0;AL; 0645 062E;;;;N;;;;; -FCD1;ARABIC LIGATURE MEEM WITH MEEM INITIAL FORM;Lo;0;AL; 0645 0645;;;;N;;;;; -FCD2;ARABIC LIGATURE NOON WITH JEEM INITIAL FORM;Lo;0;AL; 0646 062C;;;;N;;;;; -FCD3;ARABIC LIGATURE NOON WITH HAH INITIAL FORM;Lo;0;AL; 0646 062D;;;;N;;;;; -FCD4;ARABIC LIGATURE NOON WITH KHAH INITIAL FORM;Lo;0;AL; 0646 062E;;;;N;;;;; -FCD5;ARABIC LIGATURE NOON WITH MEEM INITIAL FORM;Lo;0;AL; 0646 0645;;;;N;;;;; -FCD6;ARABIC LIGATURE NOON WITH HEH INITIAL FORM;Lo;0;AL; 0646 0647;;;;N;;;;; -FCD7;ARABIC LIGATURE HEH WITH JEEM INITIAL FORM;Lo;0;AL; 0647 062C;;;;N;;;;; -FCD8;ARABIC LIGATURE HEH WITH MEEM INITIAL FORM;Lo;0;AL; 0647 0645;;;;N;;;;; -FCD9;ARABIC LIGATURE HEH WITH SUPERSCRIPT ALEF INITIAL FORM;Lo;0;AL; 0647 0670;;;;N;;;;; -FCDA;ARABIC LIGATURE YEH WITH JEEM INITIAL FORM;Lo;0;AL; 064A 062C;;;;N;;;;; -FCDB;ARABIC LIGATURE YEH WITH HAH INITIAL FORM;Lo;0;AL; 064A 062D;;;;N;;;;; -FCDC;ARABIC LIGATURE YEH WITH KHAH INITIAL FORM;Lo;0;AL; 064A 062E;;;;N;;;;; -FCDD;ARABIC LIGATURE YEH WITH MEEM INITIAL FORM;Lo;0;AL; 064A 0645;;;;N;;;;; -FCDE;ARABIC LIGATURE YEH WITH HEH INITIAL FORM;Lo;0;AL; 064A 0647;;;;N;;;;; -FCDF;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM MEDIAL FORM;Lo;0;AL; 0626 0645;;;;N;;;;; -FCE0;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH MEDIAL FORM;Lo;0;AL; 0626 0647;;;;N;;;;; -FCE1;ARABIC LIGATURE BEH WITH MEEM MEDIAL FORM;Lo;0;AL; 0628 0645;;;;N;;;;; -FCE2;ARABIC LIGATURE BEH WITH HEH MEDIAL FORM;Lo;0;AL; 0628 0647;;;;N;;;;; -FCE3;ARABIC LIGATURE TEH WITH MEEM MEDIAL FORM;Lo;0;AL; 062A 0645;;;;N;;;;; -FCE4;ARABIC LIGATURE TEH WITH HEH MEDIAL FORM;Lo;0;AL; 062A 0647;;;;N;;;;; -FCE5;ARABIC LIGATURE THEH WITH MEEM MEDIAL FORM;Lo;0;AL; 062B 0645;;;;N;;;;; -FCE6;ARABIC LIGATURE THEH WITH HEH MEDIAL FORM;Lo;0;AL; 062B 0647;;;;N;;;;; -FCE7;ARABIC LIGATURE SEEN WITH MEEM MEDIAL FORM;Lo;0;AL; 0633 0645;;;;N;;;;; -FCE8;ARABIC LIGATURE SEEN WITH HEH MEDIAL FORM;Lo;0;AL; 0633 0647;;;;N;;;;; -FCE9;ARABIC LIGATURE SHEEN WITH MEEM MEDIAL FORM;Lo;0;AL; 0634 0645;;;;N;;;;; -FCEA;ARABIC LIGATURE SHEEN WITH HEH MEDIAL FORM;Lo;0;AL; 0634 0647;;;;N;;;;; -FCEB;ARABIC LIGATURE KAF WITH LAM MEDIAL FORM;Lo;0;AL; 0643 0644;;;;N;;;;; -FCEC;ARABIC LIGATURE KAF WITH MEEM MEDIAL FORM;Lo;0;AL; 0643 0645;;;;N;;;;; -FCED;ARABIC LIGATURE LAM WITH MEEM MEDIAL FORM;Lo;0;AL; 0644 0645;;;;N;;;;; -FCEE;ARABIC LIGATURE NOON WITH MEEM MEDIAL FORM;Lo;0;AL; 0646 0645;;;;N;;;;; -FCEF;ARABIC LIGATURE NOON WITH HEH MEDIAL FORM;Lo;0;AL; 0646 0647;;;;N;;;;; -FCF0;ARABIC LIGATURE YEH WITH MEEM MEDIAL FORM;Lo;0;AL; 064A 0645;;;;N;;;;; -FCF1;ARABIC LIGATURE YEH WITH HEH MEDIAL FORM;Lo;0;AL; 064A 0647;;;;N;;;;; -FCF2;ARABIC LIGATURE SHADDA WITH FATHA MEDIAL FORM;Lo;0;AL; 0640 064E 0651;;;;N;;;;; -FCF3;ARABIC LIGATURE SHADDA WITH DAMMA MEDIAL FORM;Lo;0;AL; 0640 064F 0651;;;;N;;;;; -FCF4;ARABIC LIGATURE SHADDA WITH KASRA MEDIAL FORM;Lo;0;AL; 0640 0650 0651;;;;N;;;;; -FCF5;ARABIC LIGATURE TAH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 0637 0649;;;;N;;;;; -FCF6;ARABIC LIGATURE TAH WITH YEH ISOLATED FORM;Lo;0;AL; 0637 064A;;;;N;;;;; -FCF7;ARABIC LIGATURE AIN WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 0639 0649;;;;N;;;;; -FCF8;ARABIC LIGATURE AIN WITH YEH ISOLATED FORM;Lo;0;AL; 0639 064A;;;;N;;;;; -FCF9;ARABIC LIGATURE GHAIN WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 063A 0649;;;;N;;;;; -FCFA;ARABIC LIGATURE GHAIN WITH YEH ISOLATED FORM;Lo;0;AL; 063A 064A;;;;N;;;;; -FCFB;ARABIC LIGATURE SEEN WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 0633 0649;;;;N;;;;; -FCFC;ARABIC LIGATURE SEEN WITH YEH ISOLATED FORM;Lo;0;AL; 0633 064A;;;;N;;;;; -FCFD;ARABIC LIGATURE SHEEN WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 0634 0649;;;;N;;;;; -FCFE;ARABIC LIGATURE SHEEN WITH YEH ISOLATED FORM;Lo;0;AL; 0634 064A;;;;N;;;;; -FCFF;ARABIC LIGATURE HAH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 062D 0649;;;;N;;;;; -FD00;ARABIC LIGATURE HAH WITH YEH ISOLATED FORM;Lo;0;AL; 062D 064A;;;;N;;;;; -FD01;ARABIC LIGATURE JEEM WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 062C 0649;;;;N;;;;; -FD02;ARABIC LIGATURE JEEM WITH YEH ISOLATED FORM;Lo;0;AL; 062C 064A;;;;N;;;;; -FD03;ARABIC LIGATURE KHAH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 062E 0649;;;;N;;;;; -FD04;ARABIC LIGATURE KHAH WITH YEH ISOLATED FORM;Lo;0;AL; 062E 064A;;;;N;;;;; -FD05;ARABIC LIGATURE SAD WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 0635 0649;;;;N;;;;; -FD06;ARABIC LIGATURE SAD WITH YEH ISOLATED FORM;Lo;0;AL; 0635 064A;;;;N;;;;; -FD07;ARABIC LIGATURE DAD WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 0636 0649;;;;N;;;;; -FD08;ARABIC LIGATURE DAD WITH YEH ISOLATED FORM;Lo;0;AL; 0636 064A;;;;N;;;;; -FD09;ARABIC LIGATURE SHEEN WITH JEEM ISOLATED FORM;Lo;0;AL; 0634 062C;;;;N;;;;; -FD0A;ARABIC LIGATURE SHEEN WITH HAH ISOLATED FORM;Lo;0;AL; 0634 062D;;;;N;;;;; -FD0B;ARABIC LIGATURE SHEEN WITH KHAH ISOLATED FORM;Lo;0;AL; 0634 062E;;;;N;;;;; -FD0C;ARABIC LIGATURE SHEEN WITH MEEM ISOLATED FORM;Lo;0;AL; 0634 0645;;;;N;;;;; -FD0D;ARABIC LIGATURE SHEEN WITH REH ISOLATED FORM;Lo;0;AL; 0634 0631;;;;N;;;;; -FD0E;ARABIC LIGATURE SEEN WITH REH ISOLATED FORM;Lo;0;AL; 0633 0631;;;;N;;;;; -FD0F;ARABIC LIGATURE SAD WITH REH ISOLATED FORM;Lo;0;AL; 0635 0631;;;;N;;;;; -FD10;ARABIC LIGATURE DAD WITH REH ISOLATED FORM;Lo;0;AL; 0636 0631;;;;N;;;;; -FD11;ARABIC LIGATURE TAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0637 0649;;;;N;;;;; -FD12;ARABIC LIGATURE TAH WITH YEH FINAL FORM;Lo;0;AL; 0637 064A;;;;N;;;;; -FD13;ARABIC LIGATURE AIN WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0639 0649;;;;N;;;;; -FD14;ARABIC LIGATURE AIN WITH YEH FINAL FORM;Lo;0;AL; 0639 064A;;;;N;;;;; -FD15;ARABIC LIGATURE GHAIN WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 063A 0649;;;;N;;;;; -FD16;ARABIC LIGATURE GHAIN WITH YEH FINAL FORM;Lo;0;AL; 063A 064A;;;;N;;;;; -FD17;ARABIC LIGATURE SEEN WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0633 0649;;;;N;;;;; -FD18;ARABIC LIGATURE SEEN WITH YEH FINAL FORM;Lo;0;AL; 0633 064A;;;;N;;;;; -FD19;ARABIC LIGATURE SHEEN WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0634 0649;;;;N;;;;; -FD1A;ARABIC LIGATURE SHEEN WITH YEH FINAL FORM;Lo;0;AL; 0634 064A;;;;N;;;;; -FD1B;ARABIC LIGATURE HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 062D 0649;;;;N;;;;; -FD1C;ARABIC LIGATURE HAH WITH YEH FINAL FORM;Lo;0;AL; 062D 064A;;;;N;;;;; -FD1D;ARABIC LIGATURE JEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 062C 0649;;;;N;;;;; -FD1E;ARABIC LIGATURE JEEM WITH YEH FINAL FORM;Lo;0;AL; 062C 064A;;;;N;;;;; -FD1F;ARABIC LIGATURE KHAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 062E 0649;;;;N;;;;; -FD20;ARABIC LIGATURE KHAH WITH YEH FINAL FORM;Lo;0;AL; 062E 064A;;;;N;;;;; -FD21;ARABIC LIGATURE SAD WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0635 0649;;;;N;;;;; -FD22;ARABIC LIGATURE SAD WITH YEH FINAL FORM;Lo;0;AL; 0635 064A;;;;N;;;;; -FD23;ARABIC LIGATURE DAD WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0636 0649;;;;N;;;;; -FD24;ARABIC LIGATURE DAD WITH YEH FINAL FORM;Lo;0;AL; 0636 064A;;;;N;;;;; -FD25;ARABIC LIGATURE SHEEN WITH JEEM FINAL FORM;Lo;0;AL; 0634 062C;;;;N;;;;; -FD26;ARABIC LIGATURE SHEEN WITH HAH FINAL FORM;Lo;0;AL; 0634 062D;;;;N;;;;; -FD27;ARABIC LIGATURE SHEEN WITH KHAH FINAL FORM;Lo;0;AL; 0634 062E;;;;N;;;;; -FD28;ARABIC LIGATURE SHEEN WITH MEEM FINAL FORM;Lo;0;AL; 0634 0645;;;;N;;;;; -FD29;ARABIC LIGATURE SHEEN WITH REH FINAL FORM;Lo;0;AL; 0634 0631;;;;N;;;;; -FD2A;ARABIC LIGATURE SEEN WITH REH FINAL FORM;Lo;0;AL; 0633 0631;;;;N;;;;; -FD2B;ARABIC LIGATURE SAD WITH REH FINAL FORM;Lo;0;AL; 0635 0631;;;;N;;;;; -FD2C;ARABIC LIGATURE DAD WITH REH FINAL FORM;Lo;0;AL; 0636 0631;;;;N;;;;; -FD2D;ARABIC LIGATURE SHEEN WITH JEEM INITIAL FORM;Lo;0;AL; 0634 062C;;;;N;;;;; -FD2E;ARABIC LIGATURE SHEEN WITH HAH INITIAL FORM;Lo;0;AL; 0634 062D;;;;N;;;;; -FD2F;ARABIC LIGATURE SHEEN WITH KHAH INITIAL FORM;Lo;0;AL; 0634 062E;;;;N;;;;; -FD30;ARABIC LIGATURE SHEEN WITH MEEM INITIAL FORM;Lo;0;AL; 0634 0645;;;;N;;;;; -FD31;ARABIC LIGATURE SEEN WITH HEH INITIAL FORM;Lo;0;AL; 0633 0647;;;;N;;;;; -FD32;ARABIC LIGATURE SHEEN WITH HEH INITIAL FORM;Lo;0;AL; 0634 0647;;;;N;;;;; -FD33;ARABIC LIGATURE TAH WITH MEEM INITIAL FORM;Lo;0;AL; 0637 0645;;;;N;;;;; -FD34;ARABIC LIGATURE SEEN WITH JEEM MEDIAL FORM;Lo;0;AL; 0633 062C;;;;N;;;;; -FD35;ARABIC LIGATURE SEEN WITH HAH MEDIAL FORM;Lo;0;AL; 0633 062D;;;;N;;;;; -FD36;ARABIC LIGATURE SEEN WITH KHAH MEDIAL FORM;Lo;0;AL; 0633 062E;;;;N;;;;; -FD37;ARABIC LIGATURE SHEEN WITH JEEM MEDIAL FORM;Lo;0;AL; 0634 062C;;;;N;;;;; -FD38;ARABIC LIGATURE SHEEN WITH HAH MEDIAL FORM;Lo;0;AL; 0634 062D;;;;N;;;;; -FD39;ARABIC LIGATURE SHEEN WITH KHAH MEDIAL FORM;Lo;0;AL; 0634 062E;;;;N;;;;; -FD3A;ARABIC LIGATURE TAH WITH MEEM MEDIAL FORM;Lo;0;AL; 0637 0645;;;;N;;;;; -FD3B;ARABIC LIGATURE ZAH WITH MEEM MEDIAL FORM;Lo;0;AL; 0638 0645;;;;N;;;;; -FD3C;ARABIC LIGATURE ALEF WITH FATHATAN FINAL FORM;Lo;0;AL; 0627 064B;;;;N;;;;; -FD3D;ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM;Lo;0;AL; 0627 064B;;;;N;;;;; -FD3E;ORNATE LEFT PARENTHESIS;Ps;0;ON;;;;;N;;;;; -FD3F;ORNATE RIGHT PARENTHESIS;Pe;0;ON;;;;;N;;;;; -FD50;ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL; 062A 062C 0645;;;;N;;;;; -FD51;ARABIC LIGATURE TEH WITH HAH WITH JEEM FINAL FORM;Lo;0;AL; 062A 062D 062C;;;;N;;;;; -FD52;ARABIC LIGATURE TEH WITH HAH WITH JEEM INITIAL FORM;Lo;0;AL; 062A 062D 062C;;;;N;;;;; -FD53;ARABIC LIGATURE TEH WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL; 062A 062D 0645;;;;N;;;;; -FD54;ARABIC LIGATURE TEH WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL; 062A 062E 0645;;;;N;;;;; -FD55;ARABIC LIGATURE TEH WITH MEEM WITH JEEM INITIAL FORM;Lo;0;AL; 062A 0645 062C;;;;N;;;;; -FD56;ARABIC LIGATURE TEH WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL; 062A 0645 062D;;;;N;;;;; -FD57;ARABIC LIGATURE TEH WITH MEEM WITH KHAH INITIAL FORM;Lo;0;AL; 062A 0645 062E;;;;N;;;;; -FD58;ARABIC LIGATURE JEEM WITH MEEM WITH HAH FINAL FORM;Lo;0;AL; 062C 0645 062D;;;;N;;;;; -FD59;ARABIC LIGATURE JEEM WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL; 062C 0645 062D;;;;N;;;;; -FD5A;ARABIC LIGATURE HAH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL; 062D 0645 064A;;;;N;;;;; -FD5B;ARABIC LIGATURE HAH WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 062D 0645 0649;;;;N;;;;; -FD5C;ARABIC LIGATURE SEEN WITH HAH WITH JEEM INITIAL FORM;Lo;0;AL; 0633 062D 062C;;;;N;;;;; -FD5D;ARABIC LIGATURE SEEN WITH JEEM WITH HAH INITIAL FORM;Lo;0;AL; 0633 062C 062D;;;;N;;;;; -FD5E;ARABIC LIGATURE SEEN WITH JEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0633 062C 0649;;;;N;;;;; -FD5F;ARABIC LIGATURE SEEN WITH MEEM WITH HAH FINAL FORM;Lo;0;AL; 0633 0645 062D;;;;N;;;;; -FD60;ARABIC LIGATURE SEEN WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL; 0633 0645 062D;;;;N;;;;; -FD61;ARABIC LIGATURE SEEN WITH MEEM WITH JEEM INITIAL FORM;Lo;0;AL; 0633 0645 062C;;;;N;;;;; -FD62;ARABIC LIGATURE SEEN WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL; 0633 0645 0645;;;;N;;;;; -FD63;ARABIC LIGATURE SEEN WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL; 0633 0645 0645;;;;N;;;;; -FD64;ARABIC LIGATURE SAD WITH HAH WITH HAH FINAL FORM;Lo;0;AL; 0635 062D 062D;;;;N;;;;; -FD65;ARABIC LIGATURE SAD WITH HAH WITH HAH INITIAL FORM;Lo;0;AL; 0635 062D 062D;;;;N;;;;; -FD66;ARABIC LIGATURE SAD WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL; 0635 0645 0645;;;;N;;;;; -FD67;ARABIC LIGATURE SHEEN WITH HAH WITH MEEM FINAL FORM;Lo;0;AL; 0634 062D 0645;;;;N;;;;; -FD68;ARABIC LIGATURE SHEEN WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL; 0634 062D 0645;;;;N;;;;; -FD69;ARABIC LIGATURE SHEEN WITH JEEM WITH YEH FINAL FORM;Lo;0;AL; 0634 062C 064A;;;;N;;;;; -FD6A;ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH FINAL FORM;Lo;0;AL; 0634 0645 062E;;;;N;;;;; -FD6B;ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH INITIAL FORM;Lo;0;AL; 0634 0645 062E;;;;N;;;;; -FD6C;ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL; 0634 0645 0645;;;;N;;;;; -FD6D;ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL; 0634 0645 0645;;;;N;;;;; -FD6E;ARABIC LIGATURE DAD WITH HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0636 062D 0649;;;;N;;;;; -FD6F;ARABIC LIGATURE DAD WITH KHAH WITH MEEM FINAL FORM;Lo;0;AL; 0636 062E 0645;;;;N;;;;; -FD70;ARABIC LIGATURE DAD WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL; 0636 062E 0645;;;;N;;;;; -FD71;ARABIC LIGATURE TAH WITH MEEM WITH HAH FINAL FORM;Lo;0;AL; 0637 0645 062D;;;;N;;;;; -FD72;ARABIC LIGATURE TAH WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL; 0637 0645 062D;;;;N;;;;; -FD73;ARABIC LIGATURE TAH WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL; 0637 0645 0645;;;;N;;;;; -FD74;ARABIC LIGATURE TAH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL; 0637 0645 064A;;;;N;;;;; -FD75;ARABIC LIGATURE AIN WITH JEEM WITH MEEM FINAL FORM;Lo;0;AL; 0639 062C 0645;;;;N;;;;; -FD76;ARABIC LIGATURE AIN WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL; 0639 0645 0645;;;;N;;;;; -FD77;ARABIC LIGATURE AIN WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL; 0639 0645 0645;;;;N;;;;; -FD78;ARABIC LIGATURE AIN WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0639 0645 0649;;;;N;;;;; -FD79;ARABIC LIGATURE GHAIN WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL; 063A 0645 0645;;;;N;;;;; -FD7A;ARABIC LIGATURE GHAIN WITH MEEM WITH YEH FINAL FORM;Lo;0;AL; 063A 0645 064A;;;;N;;;;; -FD7B;ARABIC LIGATURE GHAIN WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 063A 0645 0649;;;;N;;;;; -FD7C;ARABIC LIGATURE FEH WITH KHAH WITH MEEM FINAL FORM;Lo;0;AL; 0641 062E 0645;;;;N;;;;; -FD7D;ARABIC LIGATURE FEH WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL; 0641 062E 0645;;;;N;;;;; -FD7E;ARABIC LIGATURE QAF WITH MEEM WITH HAH FINAL FORM;Lo;0;AL; 0642 0645 062D;;;;N;;;;; -FD7F;ARABIC LIGATURE QAF WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL; 0642 0645 0645;;;;N;;;;; -FD80;ARABIC LIGATURE LAM WITH HAH WITH MEEM FINAL FORM;Lo;0;AL; 0644 062D 0645;;;;N;;;;; -FD81;ARABIC LIGATURE LAM WITH HAH WITH YEH FINAL FORM;Lo;0;AL; 0644 062D 064A;;;;N;;;;; -FD82;ARABIC LIGATURE LAM WITH HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0644 062D 0649;;;;N;;;;; -FD83;ARABIC LIGATURE LAM WITH JEEM WITH JEEM INITIAL FORM;Lo;0;AL; 0644 062C 062C;;;;N;;;;; -FD84;ARABIC LIGATURE LAM WITH JEEM WITH JEEM FINAL FORM;Lo;0;AL; 0644 062C 062C;;;;N;;;;; -FD85;ARABIC LIGATURE LAM WITH KHAH WITH MEEM FINAL FORM;Lo;0;AL; 0644 062E 0645;;;;N;;;;; -FD86;ARABIC LIGATURE LAM WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL; 0644 062E 0645;;;;N;;;;; -FD87;ARABIC LIGATURE LAM WITH MEEM WITH HAH FINAL FORM;Lo;0;AL; 0644 0645 062D;;;;N;;;;; -FD88;ARABIC LIGATURE LAM WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL; 0644 0645 062D;;;;N;;;;; -FD89;ARABIC LIGATURE MEEM WITH HAH WITH JEEM INITIAL FORM;Lo;0;AL; 0645 062D 062C;;;;N;;;;; -FD8A;ARABIC LIGATURE MEEM WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL; 0645 062D 0645;;;;N;;;;; -FD8B;ARABIC LIGATURE MEEM WITH HAH WITH YEH FINAL FORM;Lo;0;AL; 0645 062D 064A;;;;N;;;;; -FD8C;ARABIC LIGATURE MEEM WITH JEEM WITH HAH INITIAL FORM;Lo;0;AL; 0645 062C 062D;;;;N;;;;; -FD8D;ARABIC LIGATURE MEEM WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL; 0645 062C 0645;;;;N;;;;; -FD8E;ARABIC LIGATURE MEEM WITH KHAH WITH JEEM INITIAL FORM;Lo;0;AL; 0645 062E 062C;;;;N;;;;; -FD8F;ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL; 0645 062E 0645;;;;N;;;;; -FD92;ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM;Lo;0;AL; 0645 062C 062E;;;;N;;;;; -FD93;ARABIC LIGATURE HEH WITH MEEM WITH JEEM INITIAL FORM;Lo;0;AL; 0647 0645 062C;;;;N;;;;; -FD94;ARABIC LIGATURE HEH WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL; 0647 0645 0645;;;;N;;;;; -FD95;ARABIC LIGATURE NOON WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL; 0646 062D 0645;;;;N;;;;; -FD96;ARABIC LIGATURE NOON WITH HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0646 062D 0649;;;;N;;;;; -FD97;ARABIC LIGATURE NOON WITH JEEM WITH MEEM FINAL FORM;Lo;0;AL; 0646 062C 0645;;;;N;;;;; -FD98;ARABIC LIGATURE NOON WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL; 0646 062C 0645;;;;N;;;;; -FD99;ARABIC LIGATURE NOON WITH JEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0646 062C 0649;;;;N;;;;; -FD9A;ARABIC LIGATURE NOON WITH MEEM WITH YEH FINAL FORM;Lo;0;AL; 0646 0645 064A;;;;N;;;;; -FD9B;ARABIC LIGATURE NOON WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0646 0645 0649;;;;N;;;;; -FD9C;ARABIC LIGATURE YEH WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL; 064A 0645 0645;;;;N;;;;; -FD9D;ARABIC LIGATURE YEH WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL; 064A 0645 0645;;;;N;;;;; -FD9E;ARABIC LIGATURE BEH WITH KHAH WITH YEH FINAL FORM;Lo;0;AL; 0628 062E 064A;;;;N;;;;; -FD9F;ARABIC LIGATURE TEH WITH JEEM WITH YEH FINAL FORM;Lo;0;AL; 062A 062C 064A;;;;N;;;;; -FDA0;ARABIC LIGATURE TEH WITH JEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 062A 062C 0649;;;;N;;;;; -FDA1;ARABIC LIGATURE TEH WITH KHAH WITH YEH FINAL FORM;Lo;0;AL; 062A 062E 064A;;;;N;;;;; -FDA2;ARABIC LIGATURE TEH WITH KHAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 062A 062E 0649;;;;N;;;;; -FDA3;ARABIC LIGATURE TEH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL; 062A 0645 064A;;;;N;;;;; -FDA4;ARABIC LIGATURE TEH WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 062A 0645 0649;;;;N;;;;; -FDA5;ARABIC LIGATURE JEEM WITH MEEM WITH YEH FINAL FORM;Lo;0;AL; 062C 0645 064A;;;;N;;;;; -FDA6;ARABIC LIGATURE JEEM WITH HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 062C 062D 0649;;;;N;;;;; -FDA7;ARABIC LIGATURE JEEM WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 062C 0645 0649;;;;N;;;;; -FDA8;ARABIC LIGATURE SEEN WITH KHAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0633 062E 0649;;;;N;;;;; -FDA9;ARABIC LIGATURE SAD WITH HAH WITH YEH FINAL FORM;Lo;0;AL; 0635 062D 064A;;;;N;;;;; -FDAA;ARABIC LIGATURE SHEEN WITH HAH WITH YEH FINAL FORM;Lo;0;AL; 0634 062D 064A;;;;N;;;;; -FDAB;ARABIC LIGATURE DAD WITH HAH WITH YEH FINAL FORM;Lo;0;AL; 0636 062D 064A;;;;N;;;;; -FDAC;ARABIC LIGATURE LAM WITH JEEM WITH YEH FINAL FORM;Lo;0;AL; 0644 062C 064A;;;;N;;;;; -FDAD;ARABIC LIGATURE LAM WITH MEEM WITH YEH FINAL FORM;Lo;0;AL; 0644 0645 064A;;;;N;;;;; -FDAE;ARABIC LIGATURE YEH WITH HAH WITH YEH FINAL FORM;Lo;0;AL; 064A 062D 064A;;;;N;;;;; -FDAF;ARABIC LIGATURE YEH WITH JEEM WITH YEH FINAL FORM;Lo;0;AL; 064A 062C 064A;;;;N;;;;; -FDB0;ARABIC LIGATURE YEH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL; 064A 0645 064A;;;;N;;;;; -FDB1;ARABIC LIGATURE MEEM WITH MEEM WITH YEH FINAL FORM;Lo;0;AL; 0645 0645 064A;;;;N;;;;; -FDB2;ARABIC LIGATURE QAF WITH MEEM WITH YEH FINAL FORM;Lo;0;AL; 0642 0645 064A;;;;N;;;;; -FDB3;ARABIC LIGATURE NOON WITH HAH WITH YEH FINAL FORM;Lo;0;AL; 0646 062D 064A;;;;N;;;;; -FDB4;ARABIC LIGATURE QAF WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL; 0642 0645 062D;;;;N;;;;; -FDB5;ARABIC LIGATURE LAM WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL; 0644 062D 0645;;;;N;;;;; -FDB6;ARABIC LIGATURE AIN WITH MEEM WITH YEH FINAL FORM;Lo;0;AL; 0639 0645 064A;;;;N;;;;; -FDB7;ARABIC LIGATURE KAF WITH MEEM WITH YEH FINAL FORM;Lo;0;AL; 0643 0645 064A;;;;N;;;;; -FDB8;ARABIC LIGATURE NOON WITH JEEM WITH HAH INITIAL FORM;Lo;0;AL; 0646 062C 062D;;;;N;;;;; -FDB9;ARABIC LIGATURE MEEM WITH KHAH WITH YEH FINAL FORM;Lo;0;AL; 0645 062E 064A;;;;N;;;;; -FDBA;ARABIC LIGATURE LAM WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL; 0644 062C 0645;;;;N;;;;; -FDBB;ARABIC LIGATURE KAF WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL; 0643 0645 0645;;;;N;;;;; -FDBC;ARABIC LIGATURE LAM WITH JEEM WITH MEEM FINAL FORM;Lo;0;AL; 0644 062C 0645;;;;N;;;;; -FDBD;ARABIC LIGATURE NOON WITH JEEM WITH HAH FINAL FORM;Lo;0;AL; 0646 062C 062D;;;;N;;;;; -FDBE;ARABIC LIGATURE JEEM WITH HAH WITH YEH FINAL FORM;Lo;0;AL; 062C 062D 064A;;;;N;;;;; -FDBF;ARABIC LIGATURE HAH WITH JEEM WITH YEH FINAL FORM;Lo;0;AL; 062D 062C 064A;;;;N;;;;; -FDC0;ARABIC LIGATURE MEEM WITH JEEM WITH YEH FINAL FORM;Lo;0;AL; 0645 062C 064A;;;;N;;;;; -FDC1;ARABIC LIGATURE FEH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL; 0641 0645 064A;;;;N;;;;; -FDC2;ARABIC LIGATURE BEH WITH HAH WITH YEH FINAL FORM;Lo;0;AL; 0628 062D 064A;;;;N;;;;; -FDC3;ARABIC LIGATURE KAF WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL; 0643 0645 0645;;;;N;;;;; -FDC4;ARABIC LIGATURE AIN WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL; 0639 062C 0645;;;;N;;;;; -FDC5;ARABIC LIGATURE SAD WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL; 0635 0645 0645;;;;N;;;;; -FDC6;ARABIC LIGATURE SEEN WITH KHAH WITH YEH FINAL FORM;Lo;0;AL; 0633 062E 064A;;;;N;;;;; -FDC7;ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM;Lo;0;AL; 0646 062C 064A;;;;N;;;;; -FDF0;ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM;Lo;0;AL; 0635 0644 06D2;;;;N;;;;; -FDF1;ARABIC LIGATURE QALA USED AS KORANIC STOP SIGN ISOLATED FORM;Lo;0;AL; 0642 0644 06D2;;;;N;;;;; -FDF2;ARABIC LIGATURE ALLAH ISOLATED FORM;Lo;0;AL; 0627 0644 0644 0647;;;;N;;;;; -FDF3;ARABIC LIGATURE AKBAR ISOLATED FORM;Lo;0;AL; 0627 0643 0628 0631;;;;N;;;;; -FDF4;ARABIC LIGATURE MOHAMMAD ISOLATED FORM;Lo;0;AL; 0645 062D 0645 062F;;;;N;;;;; -FDF5;ARABIC LIGATURE SALAM ISOLATED FORM;Lo;0;AL; 0635 0644 0639 0645;;;;N;;;;; -FDF6;ARABIC LIGATURE RASOUL ISOLATED FORM;Lo;0;AL; 0631 0633 0648 0644;;;;N;;;;; -FDF7;ARABIC LIGATURE ALAYHE ISOLATED FORM;Lo;0;AL; 0639 0644 064A 0647;;;;N;;;;; -FDF8;ARABIC LIGATURE WASALLAM ISOLATED FORM;Lo;0;AL; 0648 0633 0644 0645;;;;N;;;;; -FDF9;ARABIC LIGATURE SALLA ISOLATED FORM;Lo;0;AL; 0635 0644 0649;;;;N;;;;; -FDFA;ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM;Lo;0;AL; 0635 0644 0649 0020 0627 0644 0644 0647 0020 0639 0644 064A 0647 0020 0648 0633 0644 0645;;;;N;ARABIC LETTER SALLALLAHOU ALAYHE WASALLAM;;;; -FDFB;ARABIC LIGATURE JALLAJALALOUHOU;Lo;0;AL; 062C 0644 0020 062C 0644 0627 0644 0647;;;;N;ARABIC LETTER JALLAJALALOUHOU;;;; -FDFC;RIAL SIGN;Sc;0;AL; 0631 06CC 0627 0644;;;;N;;;;; -FDFD;ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM;So;0;ON;;;;;N;;;;; -FE00;VARIATION SELECTOR-1;Mn;0;NSM;;;;;N;;;;; -FE01;VARIATION SELECTOR-2;Mn;0;NSM;;;;;N;;;;; -FE02;VARIATION SELECTOR-3;Mn;0;NSM;;;;;N;;;;; -FE03;VARIATION SELECTOR-4;Mn;0;NSM;;;;;N;;;;; -FE04;VARIATION SELECTOR-5;Mn;0;NSM;;;;;N;;;;; -FE05;VARIATION SELECTOR-6;Mn;0;NSM;;;;;N;;;;; -FE06;VARIATION SELECTOR-7;Mn;0;NSM;;;;;N;;;;; -FE07;VARIATION SELECTOR-8;Mn;0;NSM;;;;;N;;;;; -FE08;VARIATION SELECTOR-9;Mn;0;NSM;;;;;N;;;;; -FE09;VARIATION SELECTOR-10;Mn;0;NSM;;;;;N;;;;; -FE0A;VARIATION SELECTOR-11;Mn;0;NSM;;;;;N;;;;; -FE0B;VARIATION SELECTOR-12;Mn;0;NSM;;;;;N;;;;; -FE0C;VARIATION SELECTOR-13;Mn;0;NSM;;;;;N;;;;; -FE0D;VARIATION SELECTOR-14;Mn;0;NSM;;;;;N;;;;; -FE0E;VARIATION SELECTOR-15;Mn;0;NSM;;;;;N;;;;; -FE0F;VARIATION SELECTOR-16;Mn;0;NSM;;;;;N;;;;; -FE10;PRESENTATION FORM FOR VERTICAL COMMA;Po;0;ON; 002C;;;;N;;;;; -FE11;PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC COMMA;Po;0;ON; 3001;;;;N;;;;; -FE12;PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC FULL STOP;Po;0;ON; 3002;;;;N;;;;; -FE13;PRESENTATION FORM FOR VERTICAL COLON;Po;0;ON; 003A;;;;N;;;;; -FE14;PRESENTATION FORM FOR VERTICAL SEMICOLON;Po;0;ON; 003B;;;;N;;;;; -FE15;PRESENTATION FORM FOR VERTICAL EXCLAMATION MARK;Po;0;ON; 0021;;;;N;;;;; -FE16;PRESENTATION FORM FOR VERTICAL QUESTION MARK;Po;0;ON; 003F;;;;N;;;;; -FE17;PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET;Ps;0;ON; 3016;;;;N;;;;; -FE18;PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET;Pe;0;ON; 3017;;;;N;;;;; -FE19;PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS;Po;0;ON; 2026;;;;N;;;;; -FE20;COMBINING LIGATURE LEFT HALF;Mn;230;NSM;;;;;N;;;;; -FE21;COMBINING LIGATURE RIGHT HALF;Mn;230;NSM;;;;;N;;;;; -FE22;COMBINING DOUBLE TILDE LEFT HALF;Mn;230;NSM;;;;;N;;;;; -FE23;COMBINING DOUBLE TILDE RIGHT HALF;Mn;230;NSM;;;;;N;;;;; -FE24;COMBINING MACRON LEFT HALF;Mn;230;NSM;;;;;N;;;;; -FE25;COMBINING MACRON RIGHT HALF;Mn;230;NSM;;;;;N;;;;; -FE26;COMBINING CONJOINING MACRON;Mn;230;NSM;;;;;N;;;;; -FE30;PRESENTATION FORM FOR VERTICAL TWO DOT LEADER;Po;0;ON; 2025;;;;N;GLYPH FOR VERTICAL TWO DOT LEADER;;;; -FE31;PRESENTATION FORM FOR VERTICAL EM DASH;Pd;0;ON; 2014;;;;N;GLYPH FOR VERTICAL EM DASH;;;; -FE32;PRESENTATION FORM FOR VERTICAL EN DASH;Pd;0;ON; 2013;;;;N;GLYPH FOR VERTICAL EN DASH;;;; -FE33;PRESENTATION FORM FOR VERTICAL LOW LINE;Pc;0;ON; 005F;;;;N;GLYPH FOR VERTICAL SPACING UNDERSCORE;;;; -FE34;PRESENTATION FORM FOR VERTICAL WAVY LOW LINE;Pc;0;ON; 005F;;;;N;GLYPH FOR VERTICAL SPACING WAVY UNDERSCORE;;;; -FE35;PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS;Ps;0;ON; 0028;;;;N;GLYPH FOR VERTICAL OPENING PARENTHESIS;;;; -FE36;PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS;Pe;0;ON; 0029;;;;N;GLYPH FOR VERTICAL CLOSING PARENTHESIS;;;; -FE37;PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET;Ps;0;ON; 007B;;;;N;GLYPH FOR VERTICAL OPENING CURLY BRACKET;;;; -FE38;PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET;Pe;0;ON; 007D;;;;N;GLYPH FOR VERTICAL CLOSING CURLY BRACKET;;;; -FE39;PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET;Ps;0;ON; 3014;;;;N;GLYPH FOR VERTICAL OPENING TORTOISE SHELL BRACKET;;;; -FE3A;PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET;Pe;0;ON; 3015;;;;N;GLYPH FOR VERTICAL CLOSING TORTOISE SHELL BRACKET;;;; -FE3B;PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET;Ps;0;ON; 3010;;;;N;GLYPH FOR VERTICAL OPENING BLACK LENTICULAR BRACKET;;;; -FE3C;PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET;Pe;0;ON; 3011;;;;N;GLYPH FOR VERTICAL CLOSING BLACK LENTICULAR BRACKET;;;; -FE3D;PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET;Ps;0;ON; 300A;;;;N;GLYPH FOR VERTICAL OPENING DOUBLE ANGLE BRACKET;;;; -FE3E;PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET;Pe;0;ON; 300B;;;;N;GLYPH FOR VERTICAL CLOSING DOUBLE ANGLE BRACKET;;;; -FE3F;PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET;Ps;0;ON; 3008;;;;N;GLYPH FOR VERTICAL OPENING ANGLE BRACKET;;;; -FE40;PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET;Pe;0;ON; 3009;;;;N;GLYPH FOR VERTICAL CLOSING ANGLE BRACKET;;;; -FE41;PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET;Ps;0;ON; 300C;;;;N;GLYPH FOR VERTICAL OPENING CORNER BRACKET;;;; -FE42;PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET;Pe;0;ON; 300D;;;;N;GLYPH FOR VERTICAL CLOSING CORNER BRACKET;;;; -FE43;PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET;Ps;0;ON; 300E;;;;N;GLYPH FOR VERTICAL OPENING WHITE CORNER BRACKET;;;; -FE44;PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET;Pe;0;ON; 300F;;;;N;GLYPH FOR VERTICAL CLOSING WHITE CORNER BRACKET;;;; -FE45;SESAME DOT;Po;0;ON;;;;;N;;;;; -FE46;WHITE SESAME DOT;Po;0;ON;;;;;N;;;;; -FE47;PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET;Ps;0;ON; 005B;;;;N;;;;; -FE48;PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET;Pe;0;ON; 005D;;;;N;;;;; -FE49;DASHED OVERLINE;Po;0;ON; 203E;;;;N;SPACING DASHED OVERSCORE;;;; -FE4A;CENTRELINE OVERLINE;Po;0;ON; 203E;;;;N;SPACING CENTERLINE OVERSCORE;;;; -FE4B;WAVY OVERLINE;Po;0;ON; 203E;;;;N;SPACING WAVY OVERSCORE;;;; -FE4C;DOUBLE WAVY OVERLINE;Po;0;ON; 203E;;;;N;SPACING DOUBLE WAVY OVERSCORE;;;; -FE4D;DASHED LOW LINE;Pc;0;ON; 005F;;;;N;SPACING DASHED UNDERSCORE;;;; -FE4E;CENTRELINE LOW LINE;Pc;0;ON; 005F;;;;N;SPACING CENTERLINE UNDERSCORE;;;; -FE4F;WAVY LOW LINE;Pc;0;ON; 005F;;;;N;SPACING WAVY UNDERSCORE;;;; -FE50;SMALL COMMA;Po;0;CS; 002C;;;;N;;;;; -FE51;SMALL IDEOGRAPHIC COMMA;Po;0;ON; 3001;;;;N;;;;; -FE52;SMALL FULL STOP;Po;0;CS; 002E;;;;N;SMALL PERIOD;;;; -FE54;SMALL SEMICOLON;Po;0;ON; 003B;;;;N;;;;; -FE55;SMALL COLON;Po;0;CS; 003A;;;;N;;;;; -FE56;SMALL QUESTION MARK;Po;0;ON; 003F;;;;N;;;;; -FE57;SMALL EXCLAMATION MARK;Po;0;ON; 0021;;;;N;;;;; -FE58;SMALL EM DASH;Pd;0;ON; 2014;;;;N;;;;; -FE59;SMALL LEFT PARENTHESIS;Ps;0;ON; 0028;;;;Y;SMALL OPENING PARENTHESIS;;;; -FE5A;SMALL RIGHT PARENTHESIS;Pe;0;ON; 0029;;;;Y;SMALL CLOSING PARENTHESIS;;;; -FE5B;SMALL LEFT CURLY BRACKET;Ps;0;ON; 007B;;;;Y;SMALL OPENING CURLY BRACKET;;;; -FE5C;SMALL RIGHT CURLY BRACKET;Pe;0;ON; 007D;;;;Y;SMALL CLOSING CURLY BRACKET;;;; -FE5D;SMALL LEFT TORTOISE SHELL BRACKET;Ps;0;ON; 3014;;;;Y;SMALL OPENING TORTOISE SHELL BRACKET;;;; -FE5E;SMALL RIGHT TORTOISE SHELL BRACKET;Pe;0;ON; 3015;;;;Y;SMALL CLOSING TORTOISE SHELL BRACKET;;;; -FE5F;SMALL NUMBER SIGN;Po;0;ET; 0023;;;;N;;;;; -FE60;SMALL AMPERSAND;Po;0;ON; 0026;;;;N;;;;; -FE61;SMALL ASTERISK;Po;0;ON; 002A;;;;N;;;;; -FE62;SMALL PLUS SIGN;Sm;0;ES; 002B;;;;N;;;;; -FE63;SMALL HYPHEN-MINUS;Pd;0;ES; 002D;;;;N;;;;; -FE64;SMALL LESS-THAN SIGN;Sm;0;ON; 003C;;;;Y;;;;; -FE65;SMALL GREATER-THAN SIGN;Sm;0;ON; 003E;;;;Y;;;;; -FE66;SMALL EQUALS SIGN;Sm;0;ON; 003D;;;;N;;;;; -FE68;SMALL REVERSE SOLIDUS;Po;0;ON; 005C;;;;N;SMALL BACKSLASH;;;; -FE69;SMALL DOLLAR SIGN;Sc;0;ET; 0024;;;;N;;;;; -FE6A;SMALL PERCENT SIGN;Po;0;ET; 0025;;;;N;;;;; -FE6B;SMALL COMMERCIAL AT;Po;0;ON; 0040;;;;N;;;;; -FE70;ARABIC FATHATAN ISOLATED FORM;Lo;0;AL; 0020 064B;;;;N;ARABIC SPACING FATHATAN;;;; -FE71;ARABIC TATWEEL WITH FATHATAN ABOVE;Lo;0;AL; 0640 064B;;;;N;ARABIC FATHATAN ON TATWEEL;;;; -FE72;ARABIC DAMMATAN ISOLATED FORM;Lo;0;AL; 0020 064C;;;;N;ARABIC SPACING DAMMATAN;;;; -FE73;ARABIC TAIL FRAGMENT;Lo;0;AL;;;;;N;;;;; -FE74;ARABIC KASRATAN ISOLATED FORM;Lo;0;AL; 0020 064D;;;;N;ARABIC SPACING KASRATAN;;;; -FE76;ARABIC FATHA ISOLATED FORM;Lo;0;AL; 0020 064E;;;;N;ARABIC SPACING FATHAH;;;; -FE77;ARABIC FATHA MEDIAL FORM;Lo;0;AL; 0640 064E;;;;N;ARABIC FATHAH ON TATWEEL;;;; -FE78;ARABIC DAMMA ISOLATED FORM;Lo;0;AL; 0020 064F;;;;N;ARABIC SPACING DAMMAH;;;; -FE79;ARABIC DAMMA MEDIAL FORM;Lo;0;AL; 0640 064F;;;;N;ARABIC DAMMAH ON TATWEEL;;;; -FE7A;ARABIC KASRA ISOLATED FORM;Lo;0;AL; 0020 0650;;;;N;ARABIC SPACING KASRAH;;;; -FE7B;ARABIC KASRA MEDIAL FORM;Lo;0;AL; 0640 0650;;;;N;ARABIC KASRAH ON TATWEEL;;;; -FE7C;ARABIC SHADDA ISOLATED FORM;Lo;0;AL; 0020 0651;;;;N;ARABIC SPACING SHADDAH;;;; -FE7D;ARABIC SHADDA MEDIAL FORM;Lo;0;AL; 0640 0651;;;;N;ARABIC SHADDAH ON TATWEEL;;;; -FE7E;ARABIC SUKUN ISOLATED FORM;Lo;0;AL; 0020 0652;;;;N;ARABIC SPACING SUKUN;;;; -FE7F;ARABIC SUKUN MEDIAL FORM;Lo;0;AL; 0640 0652;;;;N;ARABIC SUKUN ON TATWEEL;;;; -FE80;ARABIC LETTER HAMZA ISOLATED FORM;Lo;0;AL; 0621;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH;;;; -FE81;ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM;Lo;0;AL; 0622;;;;N;GLYPH FOR ISOLATE ARABIC MADDAH ON ALEF;;;; -FE82;ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM;Lo;0;AL; 0622;;;;N;GLYPH FOR FINAL ARABIC MADDAH ON ALEF;;;; -FE83;ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL; 0623;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH ON ALEF;;;; -FE84;ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM;Lo;0;AL; 0623;;;;N;GLYPH FOR FINAL ARABIC HAMZAH ON ALEF;;;; -FE85;ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL; 0624;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH ON WAW;;;; -FE86;ARABIC LETTER WAW WITH HAMZA ABOVE FINAL FORM;Lo;0;AL; 0624;;;;N;GLYPH FOR FINAL ARABIC HAMZAH ON WAW;;;; -FE87;ARABIC LETTER ALEF WITH HAMZA BELOW ISOLATED FORM;Lo;0;AL; 0625;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH UNDER ALEF;;;; -FE88;ARABIC LETTER ALEF WITH HAMZA BELOW FINAL FORM;Lo;0;AL; 0625;;;;N;GLYPH FOR FINAL ARABIC HAMZAH UNDER ALEF;;;; -FE89;ARABIC LETTER YEH WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL; 0626;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH ON YA;;;; -FE8A;ARABIC LETTER YEH WITH HAMZA ABOVE FINAL FORM;Lo;0;AL; 0626;;;;N;GLYPH FOR FINAL ARABIC HAMZAH ON YA;;;; -FE8B;ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM;Lo;0;AL; 0626;;;;N;GLYPH FOR INITIAL ARABIC HAMZAH ON YA;;;; -FE8C;ARABIC LETTER YEH WITH HAMZA ABOVE MEDIAL FORM;Lo;0;AL; 0626;;;;N;GLYPH FOR MEDIAL ARABIC HAMZAH ON YA;;;; -FE8D;ARABIC LETTER ALEF ISOLATED FORM;Lo;0;AL; 0627;;;;N;GLYPH FOR ISOLATE ARABIC ALEF;;;; -FE8E;ARABIC LETTER ALEF FINAL FORM;Lo;0;AL; 0627;;;;N;GLYPH FOR FINAL ARABIC ALEF;;;; -FE8F;ARABIC LETTER BEH ISOLATED FORM;Lo;0;AL; 0628;;;;N;GLYPH FOR ISOLATE ARABIC BAA;;;; -FE90;ARABIC LETTER BEH FINAL FORM;Lo;0;AL; 0628;;;;N;GLYPH FOR FINAL ARABIC BAA;;;; -FE91;ARABIC LETTER BEH INITIAL FORM;Lo;0;AL; 0628;;;;N;GLYPH FOR INITIAL ARABIC BAA;;;; -FE92;ARABIC LETTER BEH MEDIAL FORM;Lo;0;AL; 0628;;;;N;GLYPH FOR MEDIAL ARABIC BAA;;;; -FE93;ARABIC LETTER TEH MARBUTA ISOLATED FORM;Lo;0;AL; 0629;;;;N;GLYPH FOR ISOLATE ARABIC TAA MARBUTAH;;;; -FE94;ARABIC LETTER TEH MARBUTA FINAL FORM;Lo;0;AL; 0629;;;;N;GLYPH FOR FINAL ARABIC TAA MARBUTAH;;;; -FE95;ARABIC LETTER TEH ISOLATED FORM;Lo;0;AL; 062A;;;;N;GLYPH FOR ISOLATE ARABIC TAA;;;; -FE96;ARABIC LETTER TEH FINAL FORM;Lo;0;AL; 062A;;;;N;GLYPH FOR FINAL ARABIC TAA;;;; -FE97;ARABIC LETTER TEH INITIAL FORM;Lo;0;AL; 062A;;;;N;GLYPH FOR INITIAL ARABIC TAA;;;; -FE98;ARABIC LETTER TEH MEDIAL FORM;Lo;0;AL; 062A;;;;N;GLYPH FOR MEDIAL ARABIC TAA;;;; -FE99;ARABIC LETTER THEH ISOLATED FORM;Lo;0;AL; 062B;;;;N;GLYPH FOR ISOLATE ARABIC THAA;;;; -FE9A;ARABIC LETTER THEH FINAL FORM;Lo;0;AL; 062B;;;;N;GLYPH FOR FINAL ARABIC THAA;;;; -FE9B;ARABIC LETTER THEH INITIAL FORM;Lo;0;AL; 062B;;;;N;GLYPH FOR INITIAL ARABIC THAA;;;; -FE9C;ARABIC LETTER THEH MEDIAL FORM;Lo;0;AL; 062B;;;;N;GLYPH FOR MEDIAL ARABIC THAA;;;; -FE9D;ARABIC LETTER JEEM ISOLATED FORM;Lo;0;AL; 062C;;;;N;GLYPH FOR ISOLATE ARABIC JEEM;;;; -FE9E;ARABIC LETTER JEEM FINAL FORM;Lo;0;AL; 062C;;;;N;GLYPH FOR FINAL ARABIC JEEM;;;; -FE9F;ARABIC LETTER JEEM INITIAL FORM;Lo;0;AL; 062C;;;;N;GLYPH FOR INITIAL ARABIC JEEM;;;; -FEA0;ARABIC LETTER JEEM MEDIAL FORM;Lo;0;AL; 062C;;;;N;GLYPH FOR MEDIAL ARABIC JEEM;;;; -FEA1;ARABIC LETTER HAH ISOLATED FORM;Lo;0;AL; 062D;;;;N;GLYPH FOR ISOLATE ARABIC HAA;;;; -FEA2;ARABIC LETTER HAH FINAL FORM;Lo;0;AL; 062D;;;;N;GLYPH FOR FINAL ARABIC HAA;;;; -FEA3;ARABIC LETTER HAH INITIAL FORM;Lo;0;AL; 062D;;;;N;GLYPH FOR INITIAL ARABIC HAA;;;; -FEA4;ARABIC LETTER HAH MEDIAL FORM;Lo;0;AL; 062D;;;;N;GLYPH FOR MEDIAL ARABIC HAA;;;; -FEA5;ARABIC LETTER KHAH ISOLATED FORM;Lo;0;AL; 062E;;;;N;GLYPH FOR ISOLATE ARABIC KHAA;;;; -FEA6;ARABIC LETTER KHAH FINAL FORM;Lo;0;AL; 062E;;;;N;GLYPH FOR FINAL ARABIC KHAA;;;; -FEA7;ARABIC LETTER KHAH INITIAL FORM;Lo;0;AL; 062E;;;;N;GLYPH FOR INITIAL ARABIC KHAA;;;; -FEA8;ARABIC LETTER KHAH MEDIAL FORM;Lo;0;AL; 062E;;;;N;GLYPH FOR MEDIAL ARABIC KHAA;;;; -FEA9;ARABIC LETTER DAL ISOLATED FORM;Lo;0;AL; 062F;;;;N;GLYPH FOR ISOLATE ARABIC DAL;;;; -FEAA;ARABIC LETTER DAL FINAL FORM;Lo;0;AL; 062F;;;;N;GLYPH FOR FINAL ARABIC DAL;;;; -FEAB;ARABIC LETTER THAL ISOLATED FORM;Lo;0;AL; 0630;;;;N;GLYPH FOR ISOLATE ARABIC THAL;;;; -FEAC;ARABIC LETTER THAL FINAL FORM;Lo;0;AL; 0630;;;;N;GLYPH FOR FINAL ARABIC THAL;;;; -FEAD;ARABIC LETTER REH ISOLATED FORM;Lo;0;AL; 0631;;;;N;GLYPH FOR ISOLATE ARABIC RA;;;; -FEAE;ARABIC LETTER REH FINAL FORM;Lo;0;AL; 0631;;;;N;GLYPH FOR FINAL ARABIC RA;;;; -FEAF;ARABIC LETTER ZAIN ISOLATED FORM;Lo;0;AL; 0632;;;;N;GLYPH FOR ISOLATE ARABIC ZAIN;;;; -FEB0;ARABIC LETTER ZAIN FINAL FORM;Lo;0;AL; 0632;;;;N;GLYPH FOR FINAL ARABIC ZAIN;;;; -FEB1;ARABIC LETTER SEEN ISOLATED FORM;Lo;0;AL; 0633;;;;N;GLYPH FOR ISOLATE ARABIC SEEN;;;; -FEB2;ARABIC LETTER SEEN FINAL FORM;Lo;0;AL; 0633;;;;N;GLYPH FOR FINAL ARABIC SEEN;;;; -FEB3;ARABIC LETTER SEEN INITIAL FORM;Lo;0;AL; 0633;;;;N;GLYPH FOR INITIAL ARABIC SEEN;;;; -FEB4;ARABIC LETTER SEEN MEDIAL FORM;Lo;0;AL; 0633;;;;N;GLYPH FOR MEDIAL ARABIC SEEN;;;; -FEB5;ARABIC LETTER SHEEN ISOLATED FORM;Lo;0;AL; 0634;;;;N;GLYPH FOR ISOLATE ARABIC SHEEN;;;; -FEB6;ARABIC LETTER SHEEN FINAL FORM;Lo;0;AL; 0634;;;;N;GLYPH FOR FINAL ARABIC SHEEN;;;; -FEB7;ARABIC LETTER SHEEN INITIAL FORM;Lo;0;AL; 0634;;;;N;GLYPH FOR INITIAL ARABIC SHEEN;;;; -FEB8;ARABIC LETTER SHEEN MEDIAL FORM;Lo;0;AL; 0634;;;;N;GLYPH FOR MEDIAL ARABIC SHEEN;;;; -FEB9;ARABIC LETTER SAD ISOLATED FORM;Lo;0;AL; 0635;;;;N;GLYPH FOR ISOLATE ARABIC SAD;;;; -FEBA;ARABIC LETTER SAD FINAL FORM;Lo;0;AL; 0635;;;;N;GLYPH FOR FINAL ARABIC SAD;;;; -FEBB;ARABIC LETTER SAD INITIAL FORM;Lo;0;AL; 0635;;;;N;GLYPH FOR INITIAL ARABIC SAD;;;; -FEBC;ARABIC LETTER SAD MEDIAL FORM;Lo;0;AL; 0635;;;;N;GLYPH FOR MEDIAL ARABIC SAD;;;; -FEBD;ARABIC LETTER DAD ISOLATED FORM;Lo;0;AL; 0636;;;;N;GLYPH FOR ISOLATE ARABIC DAD;;;; -FEBE;ARABIC LETTER DAD FINAL FORM;Lo;0;AL; 0636;;;;N;GLYPH FOR FINAL ARABIC DAD;;;; -FEBF;ARABIC LETTER DAD INITIAL FORM;Lo;0;AL; 0636;;;;N;GLYPH FOR INITIAL ARABIC DAD;;;; -FEC0;ARABIC LETTER DAD MEDIAL FORM;Lo;0;AL; 0636;;;;N;GLYPH FOR MEDIAL ARABIC DAD;;;; -FEC1;ARABIC LETTER TAH ISOLATED FORM;Lo;0;AL; 0637;;;;N;GLYPH FOR ISOLATE ARABIC TAH;;;; -FEC2;ARABIC LETTER TAH FINAL FORM;Lo;0;AL; 0637;;;;N;GLYPH FOR FINAL ARABIC TAH;;;; -FEC3;ARABIC LETTER TAH INITIAL FORM;Lo;0;AL; 0637;;;;N;GLYPH FOR INITIAL ARABIC TAH;;;; -FEC4;ARABIC LETTER TAH MEDIAL FORM;Lo;0;AL; 0637;;;;N;GLYPH FOR MEDIAL ARABIC TAH;;;; -FEC5;ARABIC LETTER ZAH ISOLATED FORM;Lo;0;AL; 0638;;;;N;GLYPH FOR ISOLATE ARABIC DHAH;;;; -FEC6;ARABIC LETTER ZAH FINAL FORM;Lo;0;AL; 0638;;;;N;GLYPH FOR FINAL ARABIC DHAH;;;; -FEC7;ARABIC LETTER ZAH INITIAL FORM;Lo;0;AL; 0638;;;;N;GLYPH FOR INITIAL ARABIC DHAH;;;; -FEC8;ARABIC LETTER ZAH MEDIAL FORM;Lo;0;AL; 0638;;;;N;GLYPH FOR MEDIAL ARABIC DHAH;;;; -FEC9;ARABIC LETTER AIN ISOLATED FORM;Lo;0;AL; 0639;;;;N;GLYPH FOR ISOLATE ARABIC AIN;;;; -FECA;ARABIC LETTER AIN FINAL FORM;Lo;0;AL; 0639;;;;N;GLYPH FOR FINAL ARABIC AIN;;;; -FECB;ARABIC LETTER AIN INITIAL FORM;Lo;0;AL; 0639;;;;N;GLYPH FOR INITIAL ARABIC AIN;;;; -FECC;ARABIC LETTER AIN MEDIAL FORM;Lo;0;AL; 0639;;;;N;GLYPH FOR MEDIAL ARABIC AIN;;;; -FECD;ARABIC LETTER GHAIN ISOLATED FORM;Lo;0;AL; 063A;;;;N;GLYPH FOR ISOLATE ARABIC GHAIN;;;; -FECE;ARABIC LETTER GHAIN FINAL FORM;Lo;0;AL; 063A;;;;N;GLYPH FOR FINAL ARABIC GHAIN;;;; -FECF;ARABIC LETTER GHAIN INITIAL FORM;Lo;0;AL; 063A;;;;N;GLYPH FOR INITIAL ARABIC GHAIN;;;; -FED0;ARABIC LETTER GHAIN MEDIAL FORM;Lo;0;AL; 063A;;;;N;GLYPH FOR MEDIAL ARABIC GHAIN;;;; -FED1;ARABIC LETTER FEH ISOLATED FORM;Lo;0;AL; 0641;;;;N;GLYPH FOR ISOLATE ARABIC FA;;;; -FED2;ARABIC LETTER FEH FINAL FORM;Lo;0;AL; 0641;;;;N;GLYPH FOR FINAL ARABIC FA;;;; -FED3;ARABIC LETTER FEH INITIAL FORM;Lo;0;AL; 0641;;;;N;GLYPH FOR INITIAL ARABIC FA;;;; -FED4;ARABIC LETTER FEH MEDIAL FORM;Lo;0;AL; 0641;;;;N;GLYPH FOR MEDIAL ARABIC FA;;;; -FED5;ARABIC LETTER QAF ISOLATED FORM;Lo;0;AL; 0642;;;;N;GLYPH FOR ISOLATE ARABIC QAF;;;; -FED6;ARABIC LETTER QAF FINAL FORM;Lo;0;AL; 0642;;;;N;GLYPH FOR FINAL ARABIC QAF;;;; -FED7;ARABIC LETTER QAF INITIAL FORM;Lo;0;AL; 0642;;;;N;GLYPH FOR INITIAL ARABIC QAF;;;; -FED8;ARABIC LETTER QAF MEDIAL FORM;Lo;0;AL; 0642;;;;N;GLYPH FOR MEDIAL ARABIC QAF;;;; -FED9;ARABIC LETTER KAF ISOLATED FORM;Lo;0;AL; 0643;;;;N;GLYPH FOR ISOLATE ARABIC CAF;;;; -FEDA;ARABIC LETTER KAF FINAL FORM;Lo;0;AL; 0643;;;;N;GLYPH FOR FINAL ARABIC CAF;;;; -FEDB;ARABIC LETTER KAF INITIAL FORM;Lo;0;AL; 0643;;;;N;GLYPH FOR INITIAL ARABIC CAF;;;; -FEDC;ARABIC LETTER KAF MEDIAL FORM;Lo;0;AL; 0643;;;;N;GLYPH FOR MEDIAL ARABIC CAF;;;; -FEDD;ARABIC LETTER LAM ISOLATED FORM;Lo;0;AL; 0644;;;;N;GLYPH FOR ISOLATE ARABIC LAM;;;; -FEDE;ARABIC LETTER LAM FINAL FORM;Lo;0;AL; 0644;;;;N;GLYPH FOR FINAL ARABIC LAM;;;; -FEDF;ARABIC LETTER LAM INITIAL FORM;Lo;0;AL; 0644;;;;N;GLYPH FOR INITIAL ARABIC LAM;;;; -FEE0;ARABIC LETTER LAM MEDIAL FORM;Lo;0;AL; 0644;;;;N;GLYPH FOR MEDIAL ARABIC LAM;;;; -FEE1;ARABIC LETTER MEEM ISOLATED FORM;Lo;0;AL; 0645;;;;N;GLYPH FOR ISOLATE ARABIC MEEM;;;; -FEE2;ARABIC LETTER MEEM FINAL FORM;Lo;0;AL; 0645;;;;N;GLYPH FOR FINAL ARABIC MEEM;;;; -FEE3;ARABIC LETTER MEEM INITIAL FORM;Lo;0;AL; 0645;;;;N;GLYPH FOR INITIAL ARABIC MEEM;;;; -FEE4;ARABIC LETTER MEEM MEDIAL FORM;Lo;0;AL; 0645;;;;N;GLYPH FOR MEDIAL ARABIC MEEM;;;; -FEE5;ARABIC LETTER NOON ISOLATED FORM;Lo;0;AL; 0646;;;;N;GLYPH FOR ISOLATE ARABIC NOON;;;; -FEE6;ARABIC LETTER NOON FINAL FORM;Lo;0;AL; 0646;;;;N;GLYPH FOR FINAL ARABIC NOON;;;; -FEE7;ARABIC LETTER NOON INITIAL FORM;Lo;0;AL; 0646;;;;N;GLYPH FOR INITIAL ARABIC NOON;;;; -FEE8;ARABIC LETTER NOON MEDIAL FORM;Lo;0;AL; 0646;;;;N;GLYPH FOR MEDIAL ARABIC NOON;;;; -FEE9;ARABIC LETTER HEH ISOLATED FORM;Lo;0;AL; 0647;;;;N;GLYPH FOR ISOLATE ARABIC HA;;;; -FEEA;ARABIC LETTER HEH FINAL FORM;Lo;0;AL; 0647;;;;N;GLYPH FOR FINAL ARABIC HA;;;; -FEEB;ARABIC LETTER HEH INITIAL FORM;Lo;0;AL; 0647;;;;N;GLYPH FOR INITIAL ARABIC HA;;;; -FEEC;ARABIC LETTER HEH MEDIAL FORM;Lo;0;AL; 0647;;;;N;GLYPH FOR MEDIAL ARABIC HA;;;; -FEED;ARABIC LETTER WAW ISOLATED FORM;Lo;0;AL; 0648;;;;N;GLYPH FOR ISOLATE ARABIC WAW;;;; -FEEE;ARABIC LETTER WAW FINAL FORM;Lo;0;AL; 0648;;;;N;GLYPH FOR FINAL ARABIC WAW;;;; -FEEF;ARABIC LETTER ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 0649;;;;N;GLYPH FOR ISOLATE ARABIC ALEF MAQSURAH;;;; -FEF0;ARABIC LETTER ALEF MAKSURA FINAL FORM;Lo;0;AL; 0649;;;;N;GLYPH FOR FINAL ARABIC ALEF MAQSURAH;;;; -FEF1;ARABIC LETTER YEH ISOLATED FORM;Lo;0;AL; 064A;;;;N;GLYPH FOR ISOLATE ARABIC YA;;;; -FEF2;ARABIC LETTER YEH FINAL FORM;Lo;0;AL; 064A;;;;N;GLYPH FOR FINAL ARABIC YA;;;; -FEF3;ARABIC LETTER YEH INITIAL FORM;Lo;0;AL; 064A;;;;N;GLYPH FOR INITIAL ARABIC YA;;;; -FEF4;ARABIC LETTER YEH MEDIAL FORM;Lo;0;AL; 064A;;;;N;GLYPH FOR MEDIAL ARABIC YA;;;; -FEF5;ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM;Lo;0;AL; 0644 0622;;;;N;GLYPH FOR ISOLATE ARABIC MADDAH ON LIGATURE LAM ALEF;;;; -FEF6;ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM;Lo;0;AL; 0644 0622;;;;N;GLYPH FOR FINAL ARABIC MADDAH ON LIGATURE LAM ALEF;;;; -FEF7;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL; 0644 0623;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH ON LIGATURE LAM ALEF;;;; -FEF8;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM;Lo;0;AL; 0644 0623;;;;N;GLYPH FOR FINAL ARABIC HAMZAH ON LIGATURE LAM ALEF;;;; -FEF9;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM;Lo;0;AL; 0644 0625;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH UNDER LIGATURE LAM ALEF;;;; -FEFA;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM;Lo;0;AL; 0644 0625;;;;N;GLYPH FOR FINAL ARABIC HAMZAH UNDER LIGATURE LAM ALEF;;;; -FEFB;ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM;Lo;0;AL; 0644 0627;;;;N;GLYPH FOR ISOLATE ARABIC LIGATURE LAM ALEF;;;; -FEFC;ARABIC LIGATURE LAM WITH ALEF FINAL FORM;Lo;0;AL; 0644 0627;;;;N;GLYPH FOR FINAL ARABIC LIGATURE LAM ALEF;;;; -FEFF;ZERO WIDTH NO-BREAK SPACE;Cf;0;BN;;;;;N;BYTE ORDER MARK;;;; -FF01;FULLWIDTH EXCLAMATION MARK;Po;0;ON; 0021;;;;N;;;;; -FF02;FULLWIDTH QUOTATION MARK;Po;0;ON; 0022;;;;N;;;;; -FF03;FULLWIDTH NUMBER SIGN;Po;0;ET; 0023;;;;N;;;;; -FF04;FULLWIDTH DOLLAR SIGN;Sc;0;ET; 0024;;;;N;;;;; -FF05;FULLWIDTH PERCENT SIGN;Po;0;ET; 0025;;;;N;;;;; -FF06;FULLWIDTH AMPERSAND;Po;0;ON; 0026;;;;N;;;;; -FF07;FULLWIDTH APOSTROPHE;Po;0;ON; 0027;;;;N;;;;; -FF08;FULLWIDTH LEFT PARENTHESIS;Ps;0;ON; 0028;;;;Y;FULLWIDTH OPENING PARENTHESIS;;;; -FF09;FULLWIDTH RIGHT PARENTHESIS;Pe;0;ON; 0029;;;;Y;FULLWIDTH CLOSING PARENTHESIS;;;; -FF0A;FULLWIDTH ASTERISK;Po;0;ON; 002A;;;;N;;;;; -FF0B;FULLWIDTH PLUS SIGN;Sm;0;ES; 002B;;;;N;;;;; -FF0C;FULLWIDTH COMMA;Po;0;CS; 002C;;;;N;;;;; -FF0D;FULLWIDTH HYPHEN-MINUS;Pd;0;ES; 002D;;;;N;;;;; -FF0E;FULLWIDTH FULL STOP;Po;0;CS; 002E;;;;N;FULLWIDTH PERIOD;;;; -FF0F;FULLWIDTH SOLIDUS;Po;0;CS; 002F;;;;N;FULLWIDTH SLASH;;;; -FF10;FULLWIDTH DIGIT ZERO;Nd;0;EN; 0030;0;0;0;N;;;;; -FF11;FULLWIDTH DIGIT ONE;Nd;0;EN; 0031;1;1;1;N;;;;; -FF12;FULLWIDTH DIGIT TWO;Nd;0;EN; 0032;2;2;2;N;;;;; -FF13;FULLWIDTH DIGIT THREE;Nd;0;EN; 0033;3;3;3;N;;;;; -FF14;FULLWIDTH DIGIT FOUR;Nd;0;EN; 0034;4;4;4;N;;;;; -FF15;FULLWIDTH DIGIT FIVE;Nd;0;EN; 0035;5;5;5;N;;;;; -FF16;FULLWIDTH DIGIT SIX;Nd;0;EN; 0036;6;6;6;N;;;;; -FF17;FULLWIDTH DIGIT SEVEN;Nd;0;EN; 0037;7;7;7;N;;;;; -FF18;FULLWIDTH DIGIT EIGHT;Nd;0;EN; 0038;8;8;8;N;;;;; -FF19;FULLWIDTH DIGIT NINE;Nd;0;EN; 0039;9;9;9;N;;;;; -FF1A;FULLWIDTH COLON;Po;0;CS; 003A;;;;N;;;;; -FF1B;FULLWIDTH SEMICOLON;Po;0;ON; 003B;;;;N;;;;; -FF1C;FULLWIDTH LESS-THAN SIGN;Sm;0;ON; 003C;;;;Y;;;;; -FF1D;FULLWIDTH EQUALS SIGN;Sm;0;ON; 003D;;;;N;;;;; -FF1E;FULLWIDTH GREATER-THAN SIGN;Sm;0;ON; 003E;;;;Y;;;;; -FF1F;FULLWIDTH QUESTION MARK;Po;0;ON; 003F;;;;N;;;;; -FF20;FULLWIDTH COMMERCIAL AT;Po;0;ON; 0040;;;;N;;;;; -FF21;FULLWIDTH LATIN CAPITAL LETTER A;Lu;0;L; 0041;;;;N;;;;FF41; -FF22;FULLWIDTH LATIN CAPITAL LETTER B;Lu;0;L; 0042;;;;N;;;;FF42; -FF23;FULLWIDTH LATIN CAPITAL LETTER C;Lu;0;L; 0043;;;;N;;;;FF43; -FF24;FULLWIDTH LATIN CAPITAL LETTER D;Lu;0;L; 0044;;;;N;;;;FF44; -FF25;FULLWIDTH LATIN CAPITAL LETTER E;Lu;0;L; 0045;;;;N;;;;FF45; -FF26;FULLWIDTH LATIN CAPITAL LETTER F;Lu;0;L; 0046;;;;N;;;;FF46; -FF27;FULLWIDTH LATIN CAPITAL LETTER G;Lu;0;L; 0047;;;;N;;;;FF47; -FF28;FULLWIDTH LATIN CAPITAL LETTER H;Lu;0;L; 0048;;;;N;;;;FF48; -FF29;FULLWIDTH LATIN CAPITAL LETTER I;Lu;0;L; 0049;;;;N;;;;FF49; -FF2A;FULLWIDTH LATIN CAPITAL LETTER J;Lu;0;L; 004A;;;;N;;;;FF4A; -FF2B;FULLWIDTH LATIN CAPITAL LETTER K;Lu;0;L; 004B;;;;N;;;;FF4B; -FF2C;FULLWIDTH LATIN CAPITAL LETTER L;Lu;0;L; 004C;;;;N;;;;FF4C; -FF2D;FULLWIDTH LATIN CAPITAL LETTER M;Lu;0;L; 004D;;;;N;;;;FF4D; -FF2E;FULLWIDTH LATIN CAPITAL LETTER N;Lu;0;L; 004E;;;;N;;;;FF4E; -FF2F;FULLWIDTH LATIN CAPITAL LETTER O;Lu;0;L; 004F;;;;N;;;;FF4F; -FF30;FULLWIDTH LATIN CAPITAL LETTER P;Lu;0;L; 0050;;;;N;;;;FF50; -FF31;FULLWIDTH LATIN CAPITAL LETTER Q;Lu;0;L; 0051;;;;N;;;;FF51; -FF32;FULLWIDTH LATIN CAPITAL LETTER R;Lu;0;L; 0052;;;;N;;;;FF52; -FF33;FULLWIDTH LATIN CAPITAL LETTER S;Lu;0;L; 0053;;;;N;;;;FF53; -FF34;FULLWIDTH LATIN CAPITAL LETTER T;Lu;0;L; 0054;;;;N;;;;FF54; -FF35;FULLWIDTH LATIN CAPITAL LETTER U;Lu;0;L; 0055;;;;N;;;;FF55; -FF36;FULLWIDTH LATIN CAPITAL LETTER V;Lu;0;L; 0056;;;;N;;;;FF56; -FF37;FULLWIDTH LATIN CAPITAL LETTER W;Lu;0;L; 0057;;;;N;;;;FF57; -FF38;FULLWIDTH LATIN CAPITAL LETTER X;Lu;0;L; 0058;;;;N;;;;FF58; -FF39;FULLWIDTH LATIN CAPITAL LETTER Y;Lu;0;L; 0059;;;;N;;;;FF59; -FF3A;FULLWIDTH LATIN CAPITAL LETTER Z;Lu;0;L; 005A;;;;N;;;;FF5A; -FF3B;FULLWIDTH LEFT SQUARE BRACKET;Ps;0;ON; 005B;;;;Y;FULLWIDTH OPENING SQUARE BRACKET;;;; -FF3C;FULLWIDTH REVERSE SOLIDUS;Po;0;ON; 005C;;;;N;FULLWIDTH BACKSLASH;;;; -FF3D;FULLWIDTH RIGHT SQUARE BRACKET;Pe;0;ON; 005D;;;;Y;FULLWIDTH CLOSING SQUARE BRACKET;;;; -FF3E;FULLWIDTH CIRCUMFLEX ACCENT;Sk;0;ON; 005E;;;;N;FULLWIDTH SPACING CIRCUMFLEX;;;; -FF3F;FULLWIDTH LOW LINE;Pc;0;ON; 005F;;;;N;FULLWIDTH SPACING UNDERSCORE;;;; -FF40;FULLWIDTH GRAVE ACCENT;Sk;0;ON; 0060;;;;N;FULLWIDTH SPACING GRAVE;;;; -FF41;FULLWIDTH LATIN SMALL LETTER A;Ll;0;L; 0061;;;;N;;;FF21;;FF21 -FF42;FULLWIDTH LATIN SMALL LETTER B;Ll;0;L; 0062;;;;N;;;FF22;;FF22 -FF43;FULLWIDTH LATIN SMALL LETTER C;Ll;0;L; 0063;;;;N;;;FF23;;FF23 -FF44;FULLWIDTH LATIN SMALL LETTER D;Ll;0;L; 0064;;;;N;;;FF24;;FF24 -FF45;FULLWIDTH LATIN SMALL LETTER E;Ll;0;L; 0065;;;;N;;;FF25;;FF25 -FF46;FULLWIDTH LATIN SMALL LETTER F;Ll;0;L; 0066;;;;N;;;FF26;;FF26 -FF47;FULLWIDTH LATIN SMALL LETTER G;Ll;0;L; 0067;;;;N;;;FF27;;FF27 -FF48;FULLWIDTH LATIN SMALL LETTER H;Ll;0;L; 0068;;;;N;;;FF28;;FF28 -FF49;FULLWIDTH LATIN SMALL LETTER I;Ll;0;L; 0069;;;;N;;;FF29;;FF29 -FF4A;FULLWIDTH LATIN SMALL LETTER J;Ll;0;L; 006A;;;;N;;;FF2A;;FF2A -FF4B;FULLWIDTH LATIN SMALL LETTER K;Ll;0;L; 006B;;;;N;;;FF2B;;FF2B -FF4C;FULLWIDTH LATIN SMALL LETTER L;Ll;0;L; 006C;;;;N;;;FF2C;;FF2C -FF4D;FULLWIDTH LATIN SMALL LETTER M;Ll;0;L; 006D;;;;N;;;FF2D;;FF2D -FF4E;FULLWIDTH LATIN SMALL LETTER N;Ll;0;L; 006E;;;;N;;;FF2E;;FF2E -FF4F;FULLWIDTH LATIN SMALL LETTER O;Ll;0;L; 006F;;;;N;;;FF2F;;FF2F -FF50;FULLWIDTH LATIN SMALL LETTER P;Ll;0;L; 0070;;;;N;;;FF30;;FF30 -FF51;FULLWIDTH LATIN SMALL LETTER Q;Ll;0;L; 0071;;;;N;;;FF31;;FF31 -FF52;FULLWIDTH LATIN SMALL LETTER R;Ll;0;L; 0072;;;;N;;;FF32;;FF32 -FF53;FULLWIDTH LATIN SMALL LETTER S;Ll;0;L; 0073;;;;N;;;FF33;;FF33 -FF54;FULLWIDTH LATIN SMALL LETTER T;Ll;0;L; 0074;;;;N;;;FF34;;FF34 -FF55;FULLWIDTH LATIN SMALL LETTER U;Ll;0;L; 0075;;;;N;;;FF35;;FF35 -FF56;FULLWIDTH LATIN SMALL LETTER V;Ll;0;L; 0076;;;;N;;;FF36;;FF36 -FF57;FULLWIDTH LATIN SMALL LETTER W;Ll;0;L; 0077;;;;N;;;FF37;;FF37 -FF58;FULLWIDTH LATIN SMALL LETTER X;Ll;0;L; 0078;;;;N;;;FF38;;FF38 -FF59;FULLWIDTH LATIN SMALL LETTER Y;Ll;0;L; 0079;;;;N;;;FF39;;FF39 -FF5A;FULLWIDTH LATIN SMALL LETTER Z;Ll;0;L; 007A;;;;N;;;FF3A;;FF3A -FF5B;FULLWIDTH LEFT CURLY BRACKET;Ps;0;ON; 007B;;;;Y;FULLWIDTH OPENING CURLY BRACKET;;;; -FF5C;FULLWIDTH VERTICAL LINE;Sm;0;ON; 007C;;;;N;FULLWIDTH VERTICAL BAR;;;; -FF5D;FULLWIDTH RIGHT CURLY BRACKET;Pe;0;ON; 007D;;;;Y;FULLWIDTH CLOSING CURLY BRACKET;;;; -FF5E;FULLWIDTH TILDE;Sm;0;ON; 007E;;;;N;FULLWIDTH SPACING TILDE;;;; -FF5F;FULLWIDTH LEFT WHITE PARENTHESIS;Ps;0;ON; 2985;;;;Y;;;;; -FF60;FULLWIDTH RIGHT WHITE PARENTHESIS;Pe;0;ON; 2986;;;;Y;;;;; -FF61;HALFWIDTH IDEOGRAPHIC FULL STOP;Po;0;ON; 3002;;;;N;HALFWIDTH IDEOGRAPHIC PERIOD;;;; -FF62;HALFWIDTH LEFT CORNER BRACKET;Ps;0;ON; 300C;;;;Y;HALFWIDTH OPENING CORNER BRACKET;;;; -FF63;HALFWIDTH RIGHT CORNER BRACKET;Pe;0;ON; 300D;;;;Y;HALFWIDTH CLOSING CORNER BRACKET;;;; -FF64;HALFWIDTH IDEOGRAPHIC COMMA;Po;0;ON; 3001;;;;N;;;;; -FF65;HALFWIDTH KATAKANA MIDDLE DOT;Po;0;ON; 30FB;;;;N;;;;; -FF66;HALFWIDTH KATAKANA LETTER WO;Lo;0;L; 30F2;;;;N;;;;; -FF67;HALFWIDTH KATAKANA LETTER SMALL A;Lo;0;L; 30A1;;;;N;;;;; -FF68;HALFWIDTH KATAKANA LETTER SMALL I;Lo;0;L; 30A3;;;;N;;;;; -FF69;HALFWIDTH KATAKANA LETTER SMALL U;Lo;0;L; 30A5;;;;N;;;;; -FF6A;HALFWIDTH KATAKANA LETTER SMALL E;Lo;0;L; 30A7;;;;N;;;;; -FF6B;HALFWIDTH KATAKANA LETTER SMALL O;Lo;0;L; 30A9;;;;N;;;;; -FF6C;HALFWIDTH KATAKANA LETTER SMALL YA;Lo;0;L; 30E3;;;;N;;;;; -FF6D;HALFWIDTH KATAKANA LETTER SMALL YU;Lo;0;L; 30E5;;;;N;;;;; -FF6E;HALFWIDTH KATAKANA LETTER SMALL YO;Lo;0;L; 30E7;;;;N;;;;; -FF6F;HALFWIDTH KATAKANA LETTER SMALL TU;Lo;0;L; 30C3;;;;N;;;;; -FF70;HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK;Lm;0;L; 30FC;;;;N;;;;; -FF71;HALFWIDTH KATAKANA LETTER A;Lo;0;L; 30A2;;;;N;;;;; -FF72;HALFWIDTH KATAKANA LETTER I;Lo;0;L; 30A4;;;;N;;;;; -FF73;HALFWIDTH KATAKANA LETTER U;Lo;0;L; 30A6;;;;N;;;;; -FF74;HALFWIDTH KATAKANA LETTER E;Lo;0;L; 30A8;;;;N;;;;; -FF75;HALFWIDTH KATAKANA LETTER O;Lo;0;L; 30AA;;;;N;;;;; -FF76;HALFWIDTH KATAKANA LETTER KA;Lo;0;L; 30AB;;;;N;;;;; -FF77;HALFWIDTH KATAKANA LETTER KI;Lo;0;L; 30AD;;;;N;;;;; -FF78;HALFWIDTH KATAKANA LETTER KU;Lo;0;L; 30AF;;;;N;;;;; -FF79;HALFWIDTH KATAKANA LETTER KE;Lo;0;L; 30B1;;;;N;;;;; -FF7A;HALFWIDTH KATAKANA LETTER KO;Lo;0;L; 30B3;;;;N;;;;; -FF7B;HALFWIDTH KATAKANA LETTER SA;Lo;0;L; 30B5;;;;N;;;;; -FF7C;HALFWIDTH KATAKANA LETTER SI;Lo;0;L; 30B7;;;;N;;;;; -FF7D;HALFWIDTH KATAKANA LETTER SU;Lo;0;L; 30B9;;;;N;;;;; -FF7E;HALFWIDTH KATAKANA LETTER SE;Lo;0;L; 30BB;;;;N;;;;; -FF7F;HALFWIDTH KATAKANA LETTER SO;Lo;0;L; 30BD;;;;N;;;;; -FF80;HALFWIDTH KATAKANA LETTER TA;Lo;0;L; 30BF;;;;N;;;;; -FF81;HALFWIDTH KATAKANA LETTER TI;Lo;0;L; 30C1;;;;N;;;;; -FF82;HALFWIDTH KATAKANA LETTER TU;Lo;0;L; 30C4;;;;N;;;;; -FF83;HALFWIDTH KATAKANA LETTER TE;Lo;0;L; 30C6;;;;N;;;;; -FF84;HALFWIDTH KATAKANA LETTER TO;Lo;0;L; 30C8;;;;N;;;;; -FF85;HALFWIDTH KATAKANA LETTER NA;Lo;0;L; 30CA;;;;N;;;;; -FF86;HALFWIDTH KATAKANA LETTER NI;Lo;0;L; 30CB;;;;N;;;;; -FF87;HALFWIDTH KATAKANA LETTER NU;Lo;0;L; 30CC;;;;N;;;;; -FF88;HALFWIDTH KATAKANA LETTER NE;Lo;0;L; 30CD;;;;N;;;;; -FF89;HALFWIDTH KATAKANA LETTER NO;Lo;0;L; 30CE;;;;N;;;;; -FF8A;HALFWIDTH KATAKANA LETTER HA;Lo;0;L; 30CF;;;;N;;;;; -FF8B;HALFWIDTH KATAKANA LETTER HI;Lo;0;L; 30D2;;;;N;;;;; -FF8C;HALFWIDTH KATAKANA LETTER HU;Lo;0;L; 30D5;;;;N;;;;; -FF8D;HALFWIDTH KATAKANA LETTER HE;Lo;0;L; 30D8;;;;N;;;;; -FF8E;HALFWIDTH KATAKANA LETTER HO;Lo;0;L; 30DB;;;;N;;;;; -FF8F;HALFWIDTH KATAKANA LETTER MA;Lo;0;L; 30DE;;;;N;;;;; -FF90;HALFWIDTH KATAKANA LETTER MI;Lo;0;L; 30DF;;;;N;;;;; -FF91;HALFWIDTH KATAKANA LETTER MU;Lo;0;L; 30E0;;;;N;;;;; -FF92;HALFWIDTH KATAKANA LETTER ME;Lo;0;L; 30E1;;;;N;;;;; -FF93;HALFWIDTH KATAKANA LETTER MO;Lo;0;L; 30E2;;;;N;;;;; -FF94;HALFWIDTH KATAKANA LETTER YA;Lo;0;L; 30E4;;;;N;;;;; -FF95;HALFWIDTH KATAKANA LETTER YU;Lo;0;L; 30E6;;;;N;;;;; -FF96;HALFWIDTH KATAKANA LETTER YO;Lo;0;L; 30E8;;;;N;;;;; -FF97;HALFWIDTH KATAKANA LETTER RA;Lo;0;L; 30E9;;;;N;;;;; -FF98;HALFWIDTH KATAKANA LETTER RI;Lo;0;L; 30EA;;;;N;;;;; -FF99;HALFWIDTH KATAKANA LETTER RU;Lo;0;L; 30EB;;;;N;;;;; -FF9A;HALFWIDTH KATAKANA LETTER RE;Lo;0;L; 30EC;;;;N;;;;; -FF9B;HALFWIDTH KATAKANA LETTER RO;Lo;0;L; 30ED;;;;N;;;;; -FF9C;HALFWIDTH KATAKANA LETTER WA;Lo;0;L; 30EF;;;;N;;;;; -FF9D;HALFWIDTH KATAKANA LETTER N;Lo;0;L; 30F3;;;;N;;;;; -FF9E;HALFWIDTH KATAKANA VOICED SOUND MARK;Lm;0;L; 3099;;;;N;;;;; -FF9F;HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK;Lm;0;L; 309A;;;;N;;;;; -FFA0;HALFWIDTH HANGUL FILLER;Lo;0;L; 3164;;;;N;HALFWIDTH HANGUL CAE OM;;;; -FFA1;HALFWIDTH HANGUL LETTER KIYEOK;Lo;0;L; 3131;;;;N;HALFWIDTH HANGUL LETTER GIYEOG;;;; -FFA2;HALFWIDTH HANGUL LETTER SSANGKIYEOK;Lo;0;L; 3132;;;;N;HALFWIDTH HANGUL LETTER SSANG GIYEOG;;;; -FFA3;HALFWIDTH HANGUL LETTER KIYEOK-SIOS;Lo;0;L; 3133;;;;N;HALFWIDTH HANGUL LETTER GIYEOG SIOS;;;; -FFA4;HALFWIDTH HANGUL LETTER NIEUN;Lo;0;L; 3134;;;;N;;;;; -FFA5;HALFWIDTH HANGUL LETTER NIEUN-CIEUC;Lo;0;L; 3135;;;;N;HALFWIDTH HANGUL LETTER NIEUN JIEUJ;;;; -FFA6;HALFWIDTH HANGUL LETTER NIEUN-HIEUH;Lo;0;L; 3136;;;;N;HALFWIDTH HANGUL LETTER NIEUN HIEUH;;;; -FFA7;HALFWIDTH HANGUL LETTER TIKEUT;Lo;0;L; 3137;;;;N;HALFWIDTH HANGUL LETTER DIGEUD;;;; -FFA8;HALFWIDTH HANGUL LETTER SSANGTIKEUT;Lo;0;L; 3138;;;;N;HALFWIDTH HANGUL LETTER SSANG DIGEUD;;;; -FFA9;HALFWIDTH HANGUL LETTER RIEUL;Lo;0;L; 3139;;;;N;HALFWIDTH HANGUL LETTER LIEUL;;;; -FFAA;HALFWIDTH HANGUL LETTER RIEUL-KIYEOK;Lo;0;L; 313A;;;;N;HALFWIDTH HANGUL LETTER LIEUL GIYEOG;;;; -FFAB;HALFWIDTH HANGUL LETTER RIEUL-MIEUM;Lo;0;L; 313B;;;;N;HALFWIDTH HANGUL LETTER LIEUL MIEUM;;;; -FFAC;HALFWIDTH HANGUL LETTER RIEUL-PIEUP;Lo;0;L; 313C;;;;N;HALFWIDTH HANGUL LETTER LIEUL BIEUB;;;; -FFAD;HALFWIDTH HANGUL LETTER RIEUL-SIOS;Lo;0;L; 313D;;;;N;HALFWIDTH HANGUL LETTER LIEUL SIOS;;;; -FFAE;HALFWIDTH HANGUL LETTER RIEUL-THIEUTH;Lo;0;L; 313E;;;;N;HALFWIDTH HANGUL LETTER LIEUL TIEUT;;;; -FFAF;HALFWIDTH HANGUL LETTER RIEUL-PHIEUPH;Lo;0;L; 313F;;;;N;HALFWIDTH HANGUL LETTER LIEUL PIEUP;;;; -FFB0;HALFWIDTH HANGUL LETTER RIEUL-HIEUH;Lo;0;L; 3140;;;;N;HALFWIDTH HANGUL LETTER LIEUL HIEUH;;;; -FFB1;HALFWIDTH HANGUL LETTER MIEUM;Lo;0;L; 3141;;;;N;;;;; -FFB2;HALFWIDTH HANGUL LETTER PIEUP;Lo;0;L; 3142;;;;N;HALFWIDTH HANGUL LETTER BIEUB;;;; -FFB3;HALFWIDTH HANGUL LETTER SSANGPIEUP;Lo;0;L; 3143;;;;N;HALFWIDTH HANGUL LETTER SSANG BIEUB;;;; -FFB4;HALFWIDTH HANGUL LETTER PIEUP-SIOS;Lo;0;L; 3144;;;;N;HALFWIDTH HANGUL LETTER BIEUB SIOS;;;; -FFB5;HALFWIDTH HANGUL LETTER SIOS;Lo;0;L; 3145;;;;N;;;;; -FFB6;HALFWIDTH HANGUL LETTER SSANGSIOS;Lo;0;L; 3146;;;;N;HALFWIDTH HANGUL LETTER SSANG SIOS;;;; -FFB7;HALFWIDTH HANGUL LETTER IEUNG;Lo;0;L; 3147;;;;N;;;;; -FFB8;HALFWIDTH HANGUL LETTER CIEUC;Lo;0;L; 3148;;;;N;HALFWIDTH HANGUL LETTER JIEUJ;;;; -FFB9;HALFWIDTH HANGUL LETTER SSANGCIEUC;Lo;0;L; 3149;;;;N;HALFWIDTH HANGUL LETTER SSANG JIEUJ;;;; -FFBA;HALFWIDTH HANGUL LETTER CHIEUCH;Lo;0;L; 314A;;;;N;HALFWIDTH HANGUL LETTER CIEUC;;;; -FFBB;HALFWIDTH HANGUL LETTER KHIEUKH;Lo;0;L; 314B;;;;N;HALFWIDTH HANGUL LETTER KIYEOK;;;; -FFBC;HALFWIDTH HANGUL LETTER THIEUTH;Lo;0;L; 314C;;;;N;HALFWIDTH HANGUL LETTER TIEUT;;;; -FFBD;HALFWIDTH HANGUL LETTER PHIEUPH;Lo;0;L; 314D;;;;N;HALFWIDTH HANGUL LETTER PIEUP;;;; -FFBE;HALFWIDTH HANGUL LETTER HIEUH;Lo;0;L; 314E;;;;N;;;;; -FFC2;HALFWIDTH HANGUL LETTER A;Lo;0;L; 314F;;;;N;;;;; -FFC3;HALFWIDTH HANGUL LETTER AE;Lo;0;L; 3150;;;;N;;;;; -FFC4;HALFWIDTH HANGUL LETTER YA;Lo;0;L; 3151;;;;N;;;;; -FFC5;HALFWIDTH HANGUL LETTER YAE;Lo;0;L; 3152;;;;N;;;;; -FFC6;HALFWIDTH HANGUL LETTER EO;Lo;0;L; 3153;;;;N;;;;; -FFC7;HALFWIDTH HANGUL LETTER E;Lo;0;L; 3154;;;;N;;;;; -FFCA;HALFWIDTH HANGUL LETTER YEO;Lo;0;L; 3155;;;;N;;;;; -FFCB;HALFWIDTH HANGUL LETTER YE;Lo;0;L; 3156;;;;N;;;;; -FFCC;HALFWIDTH HANGUL LETTER O;Lo;0;L; 3157;;;;N;;;;; -FFCD;HALFWIDTH HANGUL LETTER WA;Lo;0;L; 3158;;;;N;;;;; -FFCE;HALFWIDTH HANGUL LETTER WAE;Lo;0;L; 3159;;;;N;;;;; -FFCF;HALFWIDTH HANGUL LETTER OE;Lo;0;L; 315A;;;;N;;;;; -FFD2;HALFWIDTH HANGUL LETTER YO;Lo;0;L; 315B;;;;N;;;;; -FFD3;HALFWIDTH HANGUL LETTER U;Lo;0;L; 315C;;;;N;;;;; -FFD4;HALFWIDTH HANGUL LETTER WEO;Lo;0;L; 315D;;;;N;;;;; -FFD5;HALFWIDTH HANGUL LETTER WE;Lo;0;L; 315E;;;;N;;;;; -FFD6;HALFWIDTH HANGUL LETTER WI;Lo;0;L; 315F;;;;N;;;;; -FFD7;HALFWIDTH HANGUL LETTER YU;Lo;0;L; 3160;;;;N;;;;; -FFDA;HALFWIDTH HANGUL LETTER EU;Lo;0;L; 3161;;;;N;;;;; -FFDB;HALFWIDTH HANGUL LETTER YI;Lo;0;L; 3162;;;;N;;;;; -FFDC;HALFWIDTH HANGUL LETTER I;Lo;0;L; 3163;;;;N;;;;; -FFE0;FULLWIDTH CENT SIGN;Sc;0;ET; 00A2;;;;N;;;;; -FFE1;FULLWIDTH POUND SIGN;Sc;0;ET; 00A3;;;;N;;;;; -FFE2;FULLWIDTH NOT SIGN;Sm;0;ON; 00AC;;;;N;;;;; -FFE3;FULLWIDTH MACRON;Sk;0;ON; 00AF;;;;N;FULLWIDTH SPACING MACRON;;;; -FFE4;FULLWIDTH BROKEN BAR;So;0;ON; 00A6;;;;N;FULLWIDTH BROKEN VERTICAL BAR;;;; -FFE5;FULLWIDTH YEN SIGN;Sc;0;ET; 00A5;;;;N;;;;; -FFE6;FULLWIDTH WON SIGN;Sc;0;ET; 20A9;;;;N;;;;; -FFE8;HALFWIDTH FORMS LIGHT VERTICAL;So;0;ON; 2502;;;;N;;;;; -FFE9;HALFWIDTH LEFTWARDS ARROW;Sm;0;ON; 2190;;;;N;;;;; -FFEA;HALFWIDTH UPWARDS ARROW;Sm;0;ON; 2191;;;;N;;;;; -FFEB;HALFWIDTH RIGHTWARDS ARROW;Sm;0;ON; 2192;;;;N;;;;; -FFEC;HALFWIDTH DOWNWARDS ARROW;Sm;0;ON; 2193;;;;N;;;;; -FFED;HALFWIDTH BLACK SQUARE;So;0;ON; 25A0;;;;N;;;;; -FFEE;HALFWIDTH WHITE CIRCLE;So;0;ON; 25CB;;;;N;;;;; -FFF9;INTERLINEAR ANNOTATION ANCHOR;Cf;0;ON;;;;;N;;;;; -FFFA;INTERLINEAR ANNOTATION SEPARATOR;Cf;0;ON;;;;;N;;;;; -FFFB;INTERLINEAR ANNOTATION TERMINATOR;Cf;0;ON;;;;;N;;;;; -FFFC;OBJECT REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; -FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; -10000;LINEAR B SYLLABLE B008 A;Lo;0;L;;;;;N;;;;; -10001;LINEAR B SYLLABLE B038 E;Lo;0;L;;;;;N;;;;; -10002;LINEAR B SYLLABLE B028 I;Lo;0;L;;;;;N;;;;; -10003;LINEAR B SYLLABLE B061 O;Lo;0;L;;;;;N;;;;; -10004;LINEAR B SYLLABLE B010 U;Lo;0;L;;;;;N;;;;; -10005;LINEAR B SYLLABLE B001 DA;Lo;0;L;;;;;N;;;;; -10006;LINEAR B SYLLABLE B045 DE;Lo;0;L;;;;;N;;;;; -10007;LINEAR B SYLLABLE B007 DI;Lo;0;L;;;;;N;;;;; -10008;LINEAR B SYLLABLE B014 DO;Lo;0;L;;;;;N;;;;; -10009;LINEAR B SYLLABLE B051 DU;Lo;0;L;;;;;N;;;;; -1000A;LINEAR B SYLLABLE B057 JA;Lo;0;L;;;;;N;;;;; -1000B;LINEAR B SYLLABLE B046 JE;Lo;0;L;;;;;N;;;;; -1000D;LINEAR B SYLLABLE B036 JO;Lo;0;L;;;;;N;;;;; -1000E;LINEAR B SYLLABLE B065 JU;Lo;0;L;;;;;N;;;;; -1000F;LINEAR B SYLLABLE B077 KA;Lo;0;L;;;;;N;;;;; -10010;LINEAR B SYLLABLE B044 KE;Lo;0;L;;;;;N;;;;; -10011;LINEAR B SYLLABLE B067 KI;Lo;0;L;;;;;N;;;;; -10012;LINEAR B SYLLABLE B070 KO;Lo;0;L;;;;;N;;;;; -10013;LINEAR B SYLLABLE B081 KU;Lo;0;L;;;;;N;;;;; -10014;LINEAR B SYLLABLE B080 MA;Lo;0;L;;;;;N;;;;; -10015;LINEAR B SYLLABLE B013 ME;Lo;0;L;;;;;N;;;;; -10016;LINEAR B SYLLABLE B073 MI;Lo;0;L;;;;;N;;;;; -10017;LINEAR B SYLLABLE B015 MO;Lo;0;L;;;;;N;;;;; -10018;LINEAR B SYLLABLE B023 MU;Lo;0;L;;;;;N;;;;; -10019;LINEAR B SYLLABLE B006 NA;Lo;0;L;;;;;N;;;;; -1001A;LINEAR B SYLLABLE B024 NE;Lo;0;L;;;;;N;;;;; -1001B;LINEAR B SYLLABLE B030 NI;Lo;0;L;;;;;N;;;;; -1001C;LINEAR B SYLLABLE B052 NO;Lo;0;L;;;;;N;;;;; -1001D;LINEAR B SYLLABLE B055 NU;Lo;0;L;;;;;N;;;;; -1001E;LINEAR B SYLLABLE B003 PA;Lo;0;L;;;;;N;;;;; -1001F;LINEAR B SYLLABLE B072 PE;Lo;0;L;;;;;N;;;;; -10020;LINEAR B SYLLABLE B039 PI;Lo;0;L;;;;;N;;;;; -10021;LINEAR B SYLLABLE B011 PO;Lo;0;L;;;;;N;;;;; -10022;LINEAR B SYLLABLE B050 PU;Lo;0;L;;;;;N;;;;; -10023;LINEAR B SYLLABLE B016 QA;Lo;0;L;;;;;N;;;;; -10024;LINEAR B SYLLABLE B078 QE;Lo;0;L;;;;;N;;;;; -10025;LINEAR B SYLLABLE B021 QI;Lo;0;L;;;;;N;;;;; -10026;LINEAR B SYLLABLE B032 QO;Lo;0;L;;;;;N;;;;; -10028;LINEAR B SYLLABLE B060 RA;Lo;0;L;;;;;N;;;;; -10029;LINEAR B SYLLABLE B027 RE;Lo;0;L;;;;;N;;;;; -1002A;LINEAR B SYLLABLE B053 RI;Lo;0;L;;;;;N;;;;; -1002B;LINEAR B SYLLABLE B002 RO;Lo;0;L;;;;;N;;;;; -1002C;LINEAR B SYLLABLE B026 RU;Lo;0;L;;;;;N;;;;; -1002D;LINEAR B SYLLABLE B031 SA;Lo;0;L;;;;;N;;;;; -1002E;LINEAR B SYLLABLE B009 SE;Lo;0;L;;;;;N;;;;; -1002F;LINEAR B SYLLABLE B041 SI;Lo;0;L;;;;;N;;;;; -10030;LINEAR B SYLLABLE B012 SO;Lo;0;L;;;;;N;;;;; -10031;LINEAR B SYLLABLE B058 SU;Lo;0;L;;;;;N;;;;; -10032;LINEAR B SYLLABLE B059 TA;Lo;0;L;;;;;N;;;;; -10033;LINEAR B SYLLABLE B004 TE;Lo;0;L;;;;;N;;;;; -10034;LINEAR B SYLLABLE B037 TI;Lo;0;L;;;;;N;;;;; -10035;LINEAR B SYLLABLE B005 TO;Lo;0;L;;;;;N;;;;; -10036;LINEAR B SYLLABLE B069 TU;Lo;0;L;;;;;N;;;;; -10037;LINEAR B SYLLABLE B054 WA;Lo;0;L;;;;;N;;;;; -10038;LINEAR B SYLLABLE B075 WE;Lo;0;L;;;;;N;;;;; -10039;LINEAR B SYLLABLE B040 WI;Lo;0;L;;;;;N;;;;; -1003A;LINEAR B SYLLABLE B042 WO;Lo;0;L;;;;;N;;;;; -1003C;LINEAR B SYLLABLE B017 ZA;Lo;0;L;;;;;N;;;;; -1003D;LINEAR B SYLLABLE B074 ZE;Lo;0;L;;;;;N;;;;; -1003F;LINEAR B SYLLABLE B020 ZO;Lo;0;L;;;;;N;;;;; -10040;LINEAR B SYLLABLE B025 A2;Lo;0;L;;;;;N;;;;; -10041;LINEAR B SYLLABLE B043 A3;Lo;0;L;;;;;N;;;;; -10042;LINEAR B SYLLABLE B085 AU;Lo;0;L;;;;;N;;;;; -10043;LINEAR B SYLLABLE B071 DWE;Lo;0;L;;;;;N;;;;; -10044;LINEAR B SYLLABLE B090 DWO;Lo;0;L;;;;;N;;;;; -10045;LINEAR B SYLLABLE B048 NWA;Lo;0;L;;;;;N;;;;; -10046;LINEAR B SYLLABLE B029 PU2;Lo;0;L;;;;;N;;;;; -10047;LINEAR B SYLLABLE B062 PTE;Lo;0;L;;;;;N;;;;; -10048;LINEAR B SYLLABLE B076 RA2;Lo;0;L;;;;;N;;;;; -10049;LINEAR B SYLLABLE B033 RA3;Lo;0;L;;;;;N;;;;; -1004A;LINEAR B SYLLABLE B068 RO2;Lo;0;L;;;;;N;;;;; -1004B;LINEAR B SYLLABLE B066 TA2;Lo;0;L;;;;;N;;;;; -1004C;LINEAR B SYLLABLE B087 TWE;Lo;0;L;;;;;N;;;;; -1004D;LINEAR B SYLLABLE B091 TWO;Lo;0;L;;;;;N;;;;; -10050;LINEAR B SYMBOL B018;Lo;0;L;;;;;N;;;;; -10051;LINEAR B SYMBOL B019;Lo;0;L;;;;;N;;;;; -10052;LINEAR B SYMBOL B022;Lo;0;L;;;;;N;;;;; -10053;LINEAR B SYMBOL B034;Lo;0;L;;;;;N;;;;; -10054;LINEAR B SYMBOL B047;Lo;0;L;;;;;N;;;;; -10055;LINEAR B SYMBOL B049;Lo;0;L;;;;;N;;;;; -10056;LINEAR B SYMBOL B056;Lo;0;L;;;;;N;;;;; -10057;LINEAR B SYMBOL B063;Lo;0;L;;;;;N;;;;; -10058;LINEAR B SYMBOL B064;Lo;0;L;;;;;N;;;;; -10059;LINEAR B SYMBOL B079;Lo;0;L;;;;;N;;;;; -1005A;LINEAR B SYMBOL B082;Lo;0;L;;;;;N;;;;; -1005B;LINEAR B SYMBOL B083;Lo;0;L;;;;;N;;;;; -1005C;LINEAR B SYMBOL B086;Lo;0;L;;;;;N;;;;; -1005D;LINEAR B SYMBOL B089;Lo;0;L;;;;;N;;;;; -10080;LINEAR B IDEOGRAM B100 MAN;Lo;0;L;;;;;N;;;;; -10081;LINEAR B IDEOGRAM B102 WOMAN;Lo;0;L;;;;;N;;;;; -10082;LINEAR B IDEOGRAM B104 DEER;Lo;0;L;;;;;N;;;;; -10083;LINEAR B IDEOGRAM B105 EQUID;Lo;0;L;;;;;N;;;;; -10084;LINEAR B IDEOGRAM B105F MARE;Lo;0;L;;;;;N;;;;; -10085;LINEAR B IDEOGRAM B105M STALLION;Lo;0;L;;;;;N;;;;; -10086;LINEAR B IDEOGRAM B106F EWE;Lo;0;L;;;;;N;;;;; -10087;LINEAR B IDEOGRAM B106M RAM;Lo;0;L;;;;;N;;;;; -10088;LINEAR B IDEOGRAM B107F SHE-GOAT;Lo;0;L;;;;;N;;;;; -10089;LINEAR B IDEOGRAM B107M HE-GOAT;Lo;0;L;;;;;N;;;;; -1008A;LINEAR B IDEOGRAM B108F SOW;Lo;0;L;;;;;N;;;;; -1008B;LINEAR B IDEOGRAM B108M BOAR;Lo;0;L;;;;;N;;;;; -1008C;LINEAR B IDEOGRAM B109F COW;Lo;0;L;;;;;N;;;;; -1008D;LINEAR B IDEOGRAM B109M BULL;Lo;0;L;;;;;N;;;;; -1008E;LINEAR B IDEOGRAM B120 WHEAT;Lo;0;L;;;;;N;;;;; -1008F;LINEAR B IDEOGRAM B121 BARLEY;Lo;0;L;;;;;N;;;;; -10090;LINEAR B IDEOGRAM B122 OLIVE;Lo;0;L;;;;;N;;;;; -10091;LINEAR B IDEOGRAM B123 SPICE;Lo;0;L;;;;;N;;;;; -10092;LINEAR B IDEOGRAM B125 CYPERUS;Lo;0;L;;;;;N;;;;; -10093;LINEAR B MONOGRAM B127 KAPO;Lo;0;L;;;;;N;;;;; -10094;LINEAR B MONOGRAM B128 KANAKO;Lo;0;L;;;;;N;;;;; -10095;LINEAR B IDEOGRAM B130 OIL;Lo;0;L;;;;;N;;;;; -10096;LINEAR B IDEOGRAM B131 WINE;Lo;0;L;;;;;N;;;;; -10097;LINEAR B IDEOGRAM B132;Lo;0;L;;;;;N;;;;; -10098;LINEAR B MONOGRAM B133 AREPA;Lo;0;L;;;;;N;;;;; -10099;LINEAR B MONOGRAM B135 MERI;Lo;0;L;;;;;N;;;;; -1009A;LINEAR B IDEOGRAM B140 BRONZE;Lo;0;L;;;;;N;;;;; -1009B;LINEAR B IDEOGRAM B141 GOLD;Lo;0;L;;;;;N;;;;; -1009C;LINEAR B IDEOGRAM B142;Lo;0;L;;;;;N;;;;; -1009D;LINEAR B IDEOGRAM B145 WOOL;Lo;0;L;;;;;N;;;;; -1009E;LINEAR B IDEOGRAM B146;Lo;0;L;;;;;N;;;;; -1009F;LINEAR B IDEOGRAM B150;Lo;0;L;;;;;N;;;;; -100A0;LINEAR B IDEOGRAM B151 HORN;Lo;0;L;;;;;N;;;;; -100A1;LINEAR B IDEOGRAM B152;Lo;0;L;;;;;N;;;;; -100A2;LINEAR B IDEOGRAM B153;Lo;0;L;;;;;N;;;;; -100A3;LINEAR B IDEOGRAM B154;Lo;0;L;;;;;N;;;;; -100A4;LINEAR B MONOGRAM B156 TURO2;Lo;0;L;;;;;N;;;;; -100A5;LINEAR B IDEOGRAM B157;Lo;0;L;;;;;N;;;;; -100A6;LINEAR B IDEOGRAM B158;Lo;0;L;;;;;N;;;;; -100A7;LINEAR B IDEOGRAM B159 CLOTH;Lo;0;L;;;;;N;;;;; -100A8;LINEAR B IDEOGRAM B160;Lo;0;L;;;;;N;;;;; -100A9;LINEAR B IDEOGRAM B161;Lo;0;L;;;;;N;;;;; -100AA;LINEAR B IDEOGRAM B162 GARMENT;Lo;0;L;;;;;N;;;;; -100AB;LINEAR B IDEOGRAM B163 ARMOUR;Lo;0;L;;;;;N;;;;; -100AC;LINEAR B IDEOGRAM B164;Lo;0;L;;;;;N;;;;; -100AD;LINEAR B IDEOGRAM B165;Lo;0;L;;;;;N;;;;; -100AE;LINEAR B IDEOGRAM B166;Lo;0;L;;;;;N;;;;; -100AF;LINEAR B IDEOGRAM B167;Lo;0;L;;;;;N;;;;; -100B0;LINEAR B IDEOGRAM B168;Lo;0;L;;;;;N;;;;; -100B1;LINEAR B IDEOGRAM B169;Lo;0;L;;;;;N;;;;; -100B2;LINEAR B IDEOGRAM B170;Lo;0;L;;;;;N;;;;; -100B3;LINEAR B IDEOGRAM B171;Lo;0;L;;;;;N;;;;; -100B4;LINEAR B IDEOGRAM B172;Lo;0;L;;;;;N;;;;; -100B5;LINEAR B IDEOGRAM B173 MONTH;Lo;0;L;;;;;N;;;;; -100B6;LINEAR B IDEOGRAM B174;Lo;0;L;;;;;N;;;;; -100B7;LINEAR B IDEOGRAM B176 TREE;Lo;0;L;;;;;N;;;;; -100B8;LINEAR B IDEOGRAM B177;Lo;0;L;;;;;N;;;;; -100B9;LINEAR B IDEOGRAM B178;Lo;0;L;;;;;N;;;;; -100BA;LINEAR B IDEOGRAM B179;Lo;0;L;;;;;N;;;;; -100BB;LINEAR B IDEOGRAM B180;Lo;0;L;;;;;N;;;;; -100BC;LINEAR B IDEOGRAM B181;Lo;0;L;;;;;N;;;;; -100BD;LINEAR B IDEOGRAM B182;Lo;0;L;;;;;N;;;;; -100BE;LINEAR B IDEOGRAM B183;Lo;0;L;;;;;N;;;;; -100BF;LINEAR B IDEOGRAM B184;Lo;0;L;;;;;N;;;;; -100C0;LINEAR B IDEOGRAM B185;Lo;0;L;;;;;N;;;;; -100C1;LINEAR B IDEOGRAM B189;Lo;0;L;;;;;N;;;;; -100C2;LINEAR B IDEOGRAM B190;Lo;0;L;;;;;N;;;;; -100C3;LINEAR B IDEOGRAM B191 HELMET;Lo;0;L;;;;;N;;;;; -100C4;LINEAR B IDEOGRAM B220 FOOTSTOOL;Lo;0;L;;;;;N;;;;; -100C5;LINEAR B IDEOGRAM B225 BATHTUB;Lo;0;L;;;;;N;;;;; -100C6;LINEAR B IDEOGRAM B230 SPEAR;Lo;0;L;;;;;N;;;;; -100C7;LINEAR B IDEOGRAM B231 ARROW;Lo;0;L;;;;;N;;;;; -100C8;LINEAR B IDEOGRAM B232;Lo;0;L;;;;;N;;;;; -100C9;LINEAR B IDEOGRAM B233 SWORD;Lo;0;L;;;;;N;;;;; -100CA;LINEAR B IDEOGRAM B234;Lo;0;L;;;;;N;;;;; -100CB;LINEAR B IDEOGRAM B236;Lo;0;L;;;;;N;;;;; -100CC;LINEAR B IDEOGRAM B240 WHEELED CHARIOT;Lo;0;L;;;;;N;;;;; -100CD;LINEAR B IDEOGRAM B241 CHARIOT;Lo;0;L;;;;;N;;;;; -100CE;LINEAR B IDEOGRAM B242 CHARIOT FRAME;Lo;0;L;;;;;N;;;;; -100CF;LINEAR B IDEOGRAM B243 WHEEL;Lo;0;L;;;;;N;;;;; -100D0;LINEAR B IDEOGRAM B245;Lo;0;L;;;;;N;;;;; -100D1;LINEAR B IDEOGRAM B246;Lo;0;L;;;;;N;;;;; -100D2;LINEAR B MONOGRAM B247 DIPTE;Lo;0;L;;;;;N;;;;; -100D3;LINEAR B IDEOGRAM B248;Lo;0;L;;;;;N;;;;; -100D4;LINEAR B IDEOGRAM B249;Lo;0;L;;;;;N;;;;; -100D5;LINEAR B IDEOGRAM B251;Lo;0;L;;;;;N;;;;; -100D6;LINEAR B IDEOGRAM B252;Lo;0;L;;;;;N;;;;; -100D7;LINEAR B IDEOGRAM B253;Lo;0;L;;;;;N;;;;; -100D8;LINEAR B IDEOGRAM B254 DART;Lo;0;L;;;;;N;;;;; -100D9;LINEAR B IDEOGRAM B255;Lo;0;L;;;;;N;;;;; -100DA;LINEAR B IDEOGRAM B256;Lo;0;L;;;;;N;;;;; -100DB;LINEAR B IDEOGRAM B257;Lo;0;L;;;;;N;;;;; -100DC;LINEAR B IDEOGRAM B258;Lo;0;L;;;;;N;;;;; -100DD;LINEAR B IDEOGRAM B259;Lo;0;L;;;;;N;;;;; -100DE;LINEAR B IDEOGRAM VESSEL B155;Lo;0;L;;;;;N;;;;; -100DF;LINEAR B IDEOGRAM VESSEL B200;Lo;0;L;;;;;N;;;;; -100E0;LINEAR B IDEOGRAM VESSEL B201;Lo;0;L;;;;;N;;;;; -100E1;LINEAR B IDEOGRAM VESSEL B202;Lo;0;L;;;;;N;;;;; -100E2;LINEAR B IDEOGRAM VESSEL B203;Lo;0;L;;;;;N;;;;; -100E3;LINEAR B IDEOGRAM VESSEL B204;Lo;0;L;;;;;N;;;;; -100E4;LINEAR B IDEOGRAM VESSEL B205;Lo;0;L;;;;;N;;;;; -100E5;LINEAR B IDEOGRAM VESSEL B206;Lo;0;L;;;;;N;;;;; -100E6;LINEAR B IDEOGRAM VESSEL B207;Lo;0;L;;;;;N;;;;; -100E7;LINEAR B IDEOGRAM VESSEL B208;Lo;0;L;;;;;N;;;;; -100E8;LINEAR B IDEOGRAM VESSEL B209;Lo;0;L;;;;;N;;;;; -100E9;LINEAR B IDEOGRAM VESSEL B210;Lo;0;L;;;;;N;;;;; -100EA;LINEAR B IDEOGRAM VESSEL B211;Lo;0;L;;;;;N;;;;; -100EB;LINEAR B IDEOGRAM VESSEL B212;Lo;0;L;;;;;N;;;;; -100EC;LINEAR B IDEOGRAM VESSEL B213;Lo;0;L;;;;;N;;;;; -100ED;LINEAR B IDEOGRAM VESSEL B214;Lo;0;L;;;;;N;;;;; -100EE;LINEAR B IDEOGRAM VESSEL B215;Lo;0;L;;;;;N;;;;; -100EF;LINEAR B IDEOGRAM VESSEL B216;Lo;0;L;;;;;N;;;;; -100F0;LINEAR B IDEOGRAM VESSEL B217;Lo;0;L;;;;;N;;;;; -100F1;LINEAR B IDEOGRAM VESSEL B218;Lo;0;L;;;;;N;;;;; -100F2;LINEAR B IDEOGRAM VESSEL B219;Lo;0;L;;;;;N;;;;; -100F3;LINEAR B IDEOGRAM VESSEL B221;Lo;0;L;;;;;N;;;;; -100F4;LINEAR B IDEOGRAM VESSEL B222;Lo;0;L;;;;;N;;;;; -100F5;LINEAR B IDEOGRAM VESSEL B226;Lo;0;L;;;;;N;;;;; -100F6;LINEAR B IDEOGRAM VESSEL B227;Lo;0;L;;;;;N;;;;; -100F7;LINEAR B IDEOGRAM VESSEL B228;Lo;0;L;;;;;N;;;;; -100F8;LINEAR B IDEOGRAM VESSEL B229;Lo;0;L;;;;;N;;;;; -100F9;LINEAR B IDEOGRAM VESSEL B250;Lo;0;L;;;;;N;;;;; -100FA;LINEAR B IDEOGRAM VESSEL B305;Lo;0;L;;;;;N;;;;; -10100;AEGEAN WORD SEPARATOR LINE;Po;0;L;;;;;N;;;;; -10101;AEGEAN WORD SEPARATOR DOT;Po;0;ON;;;;;N;;;;; -10102;AEGEAN CHECK MARK;So;0;L;;;;;N;;;;; -10107;AEGEAN NUMBER ONE;No;0;L;;;;1;N;;;;; -10108;AEGEAN NUMBER TWO;No;0;L;;;;2;N;;;;; -10109;AEGEAN NUMBER THREE;No;0;L;;;;3;N;;;;; -1010A;AEGEAN NUMBER FOUR;No;0;L;;;;4;N;;;;; -1010B;AEGEAN NUMBER FIVE;No;0;L;;;;5;N;;;;; -1010C;AEGEAN NUMBER SIX;No;0;L;;;;6;N;;;;; -1010D;AEGEAN NUMBER SEVEN;No;0;L;;;;7;N;;;;; -1010E;AEGEAN NUMBER EIGHT;No;0;L;;;;8;N;;;;; -1010F;AEGEAN NUMBER NINE;No;0;L;;;;9;N;;;;; -10110;AEGEAN NUMBER TEN;No;0;L;;;;10;N;;;;; -10111;AEGEAN NUMBER TWENTY;No;0;L;;;;20;N;;;;; -10112;AEGEAN NUMBER THIRTY;No;0;L;;;;30;N;;;;; -10113;AEGEAN NUMBER FORTY;No;0;L;;;;40;N;;;;; -10114;AEGEAN NUMBER FIFTY;No;0;L;;;;50;N;;;;; -10115;AEGEAN NUMBER SIXTY;No;0;L;;;;60;N;;;;; -10116;AEGEAN NUMBER SEVENTY;No;0;L;;;;70;N;;;;; -10117;AEGEAN NUMBER EIGHTY;No;0;L;;;;80;N;;;;; -10118;AEGEAN NUMBER NINETY;No;0;L;;;;90;N;;;;; -10119;AEGEAN NUMBER ONE HUNDRED;No;0;L;;;;100;N;;;;; -1011A;AEGEAN NUMBER TWO HUNDRED;No;0;L;;;;200;N;;;;; -1011B;AEGEAN NUMBER THREE HUNDRED;No;0;L;;;;300;N;;;;; -1011C;AEGEAN NUMBER FOUR HUNDRED;No;0;L;;;;400;N;;;;; -1011D;AEGEAN NUMBER FIVE HUNDRED;No;0;L;;;;500;N;;;;; -1011E;AEGEAN NUMBER SIX HUNDRED;No;0;L;;;;600;N;;;;; -1011F;AEGEAN NUMBER SEVEN HUNDRED;No;0;L;;;;700;N;;;;; -10120;AEGEAN NUMBER EIGHT HUNDRED;No;0;L;;;;800;N;;;;; -10121;AEGEAN NUMBER NINE HUNDRED;No;0;L;;;;900;N;;;;; -10122;AEGEAN NUMBER ONE THOUSAND;No;0;L;;;;1000;N;;;;; -10123;AEGEAN NUMBER TWO THOUSAND;No;0;L;;;;2000;N;;;;; -10124;AEGEAN NUMBER THREE THOUSAND;No;0;L;;;;3000;N;;;;; -10125;AEGEAN NUMBER FOUR THOUSAND;No;0;L;;;;4000;N;;;;; -10126;AEGEAN NUMBER FIVE THOUSAND;No;0;L;;;;5000;N;;;;; -10127;AEGEAN NUMBER SIX THOUSAND;No;0;L;;;;6000;N;;;;; -10128;AEGEAN NUMBER SEVEN THOUSAND;No;0;L;;;;7000;N;;;;; -10129;AEGEAN NUMBER EIGHT THOUSAND;No;0;L;;;;8000;N;;;;; -1012A;AEGEAN NUMBER NINE THOUSAND;No;0;L;;;;9000;N;;;;; -1012B;AEGEAN NUMBER TEN THOUSAND;No;0;L;;;;10000;N;;;;; -1012C;AEGEAN NUMBER TWENTY THOUSAND;No;0;L;;;;20000;N;;;;; -1012D;AEGEAN NUMBER THIRTY THOUSAND;No;0;L;;;;30000;N;;;;; -1012E;AEGEAN NUMBER FORTY THOUSAND;No;0;L;;;;40000;N;;;;; -1012F;AEGEAN NUMBER FIFTY THOUSAND;No;0;L;;;;50000;N;;;;; -10130;AEGEAN NUMBER SIXTY THOUSAND;No;0;L;;;;60000;N;;;;; -10131;AEGEAN NUMBER SEVENTY THOUSAND;No;0;L;;;;70000;N;;;;; -10132;AEGEAN NUMBER EIGHTY THOUSAND;No;0;L;;;;80000;N;;;;; -10133;AEGEAN NUMBER NINETY THOUSAND;No;0;L;;;;90000;N;;;;; -10137;AEGEAN WEIGHT BASE UNIT;So;0;L;;;;;N;;;;; -10138;AEGEAN WEIGHT FIRST SUBUNIT;So;0;L;;;;;N;;;;; -10139;AEGEAN WEIGHT SECOND SUBUNIT;So;0;L;;;;;N;;;;; -1013A;AEGEAN WEIGHT THIRD SUBUNIT;So;0;L;;;;;N;;;;; -1013B;AEGEAN WEIGHT FOURTH SUBUNIT;So;0;L;;;;;N;;;;; -1013C;AEGEAN DRY MEASURE FIRST SUBUNIT;So;0;L;;;;;N;;;;; -1013D;AEGEAN LIQUID MEASURE FIRST SUBUNIT;So;0;L;;;;;N;;;;; -1013E;AEGEAN MEASURE SECOND SUBUNIT;So;0;L;;;;;N;;;;; -1013F;AEGEAN MEASURE THIRD SUBUNIT;So;0;L;;;;;N;;;;; -10140;GREEK ACROPHONIC ATTIC ONE QUARTER;Nl;0;ON;;;;1/4;N;;;;; -10141;GREEK ACROPHONIC ATTIC ONE HALF;Nl;0;ON;;;;1/2;N;;;;; -10142;GREEK ACROPHONIC ATTIC ONE DRACHMA;Nl;0;ON;;;;1;N;;;;; -10143;GREEK ACROPHONIC ATTIC FIVE;Nl;0;ON;;;;5;N;;;;; -10144;GREEK ACROPHONIC ATTIC FIFTY;Nl;0;ON;;;;50;N;;;;; -10145;GREEK ACROPHONIC ATTIC FIVE HUNDRED;Nl;0;ON;;;;500;N;;;;; -10146;GREEK ACROPHONIC ATTIC FIVE THOUSAND;Nl;0;ON;;;;5000;N;;;;; -10147;GREEK ACROPHONIC ATTIC FIFTY THOUSAND;Nl;0;ON;;;;50000;N;;;;; -10148;GREEK ACROPHONIC ATTIC FIVE TALENTS;Nl;0;ON;;;;5;N;;;;; -10149;GREEK ACROPHONIC ATTIC TEN TALENTS;Nl;0;ON;;;;10;N;;;;; -1014A;GREEK ACROPHONIC ATTIC FIFTY TALENTS;Nl;0;ON;;;;50;N;;;;; -1014B;GREEK ACROPHONIC ATTIC ONE HUNDRED TALENTS;Nl;0;ON;;;;100;N;;;;; -1014C;GREEK ACROPHONIC ATTIC FIVE HUNDRED TALENTS;Nl;0;ON;;;;500;N;;;;; -1014D;GREEK ACROPHONIC ATTIC ONE THOUSAND TALENTS;Nl;0;ON;;;;1000;N;;;;; -1014E;GREEK ACROPHONIC ATTIC FIVE THOUSAND TALENTS;Nl;0;ON;;;;5000;N;;;;; -1014F;GREEK ACROPHONIC ATTIC FIVE STATERS;Nl;0;ON;;;;5;N;;;;; -10150;GREEK ACROPHONIC ATTIC TEN STATERS;Nl;0;ON;;;;10;N;;;;; -10151;GREEK ACROPHONIC ATTIC FIFTY STATERS;Nl;0;ON;;;;50;N;;;;; -10152;GREEK ACROPHONIC ATTIC ONE HUNDRED STATERS;Nl;0;ON;;;;100;N;;;;; -10153;GREEK ACROPHONIC ATTIC FIVE HUNDRED STATERS;Nl;0;ON;;;;500;N;;;;; -10154;GREEK ACROPHONIC ATTIC ONE THOUSAND STATERS;Nl;0;ON;;;;1000;N;;;;; -10155;GREEK ACROPHONIC ATTIC TEN THOUSAND STATERS;Nl;0;ON;;;;10000;N;;;;; -10156;GREEK ACROPHONIC ATTIC FIFTY THOUSAND STATERS;Nl;0;ON;;;;50000;N;;;;; -10157;GREEK ACROPHONIC ATTIC TEN MNAS;Nl;0;ON;;;;10;N;;;;; -10158;GREEK ACROPHONIC HERAEUM ONE PLETHRON;Nl;0;ON;;;;1;N;;;;; -10159;GREEK ACROPHONIC THESPIAN ONE;Nl;0;ON;;;;1;N;;;;; -1015A;GREEK ACROPHONIC HERMIONIAN ONE;Nl;0;ON;;;;1;N;;;;; -1015B;GREEK ACROPHONIC EPIDAUREAN TWO;Nl;0;ON;;;;2;N;;;;; -1015C;GREEK ACROPHONIC THESPIAN TWO;Nl;0;ON;;;;2;N;;;;; -1015D;GREEK ACROPHONIC CYRENAIC TWO DRACHMAS;Nl;0;ON;;;;2;N;;;;; -1015E;GREEK ACROPHONIC EPIDAUREAN TWO DRACHMAS;Nl;0;ON;;;;2;N;;;;; -1015F;GREEK ACROPHONIC TROEZENIAN FIVE;Nl;0;ON;;;;5;N;;;;; -10160;GREEK ACROPHONIC TROEZENIAN TEN;Nl;0;ON;;;;10;N;;;;; -10161;GREEK ACROPHONIC TROEZENIAN TEN ALTERNATE FORM;Nl;0;ON;;;;10;N;;;;; -10162;GREEK ACROPHONIC HERMIONIAN TEN;Nl;0;ON;;;;10;N;;;;; -10163;GREEK ACROPHONIC MESSENIAN TEN;Nl;0;ON;;;;10;N;;;;; -10164;GREEK ACROPHONIC THESPIAN TEN;Nl;0;ON;;;;10;N;;;;; -10165;GREEK ACROPHONIC THESPIAN THIRTY;Nl;0;ON;;;;30;N;;;;; -10166;GREEK ACROPHONIC TROEZENIAN FIFTY;Nl;0;ON;;;;50;N;;;;; -10167;GREEK ACROPHONIC TROEZENIAN FIFTY ALTERNATE FORM;Nl;0;ON;;;;50;N;;;;; -10168;GREEK ACROPHONIC HERMIONIAN FIFTY;Nl;0;ON;;;;50;N;;;;; -10169;GREEK ACROPHONIC THESPIAN FIFTY;Nl;0;ON;;;;50;N;;;;; -1016A;GREEK ACROPHONIC THESPIAN ONE HUNDRED;Nl;0;ON;;;;100;N;;;;; -1016B;GREEK ACROPHONIC THESPIAN THREE HUNDRED;Nl;0;ON;;;;300;N;;;;; -1016C;GREEK ACROPHONIC EPIDAUREAN FIVE HUNDRED;Nl;0;ON;;;;500;N;;;;; -1016D;GREEK ACROPHONIC TROEZENIAN FIVE HUNDRED;Nl;0;ON;;;;500;N;;;;; -1016E;GREEK ACROPHONIC THESPIAN FIVE HUNDRED;Nl;0;ON;;;;500;N;;;;; -1016F;GREEK ACROPHONIC CARYSTIAN FIVE HUNDRED;Nl;0;ON;;;;500;N;;;;; -10170;GREEK ACROPHONIC NAXIAN FIVE HUNDRED;Nl;0;ON;;;;500;N;;;;; -10171;GREEK ACROPHONIC THESPIAN ONE THOUSAND;Nl;0;ON;;;;1000;N;;;;; -10172;GREEK ACROPHONIC THESPIAN FIVE THOUSAND;Nl;0;ON;;;;5000;N;;;;; -10173;GREEK ACROPHONIC DELPHIC FIVE MNAS;Nl;0;ON;;;;5;N;;;;; -10174;GREEK ACROPHONIC STRATIAN FIFTY MNAS;Nl;0;ON;;;;50;N;;;;; -10175;GREEK ONE HALF SIGN;No;0;ON;;;;1/2;N;;;;; -10176;GREEK ONE HALF SIGN ALTERNATE FORM;No;0;ON;;;;1/2;N;;;;; -10177;GREEK TWO THIRDS SIGN;No;0;ON;;;;2/3;N;;;;; -10178;GREEK THREE QUARTERS SIGN;No;0;ON;;;;3/4;N;;;;; -10179;GREEK YEAR SIGN;So;0;ON;;;;;N;;;;; -1017A;GREEK TALENT SIGN;So;0;ON;;;;;N;;;;; -1017B;GREEK DRACHMA SIGN;So;0;ON;;;;;N;;;;; -1017C;GREEK OBOL SIGN;So;0;ON;;;;;N;;;;; -1017D;GREEK TWO OBOLS SIGN;So;0;ON;;;;;N;;;;; -1017E;GREEK THREE OBOLS SIGN;So;0;ON;;;;;N;;;;; -1017F;GREEK FOUR OBOLS SIGN;So;0;ON;;;;;N;;;;; -10180;GREEK FIVE OBOLS SIGN;So;0;ON;;;;;N;;;;; -10181;GREEK METRETES SIGN;So;0;ON;;;;;N;;;;; -10182;GREEK KYATHOS BASE SIGN;So;0;ON;;;;;N;;;;; -10183;GREEK LITRA SIGN;So;0;ON;;;;;N;;;;; -10184;GREEK OUNKIA SIGN;So;0;ON;;;;;N;;;;; -10185;GREEK XESTES SIGN;So;0;ON;;;;;N;;;;; -10186;GREEK ARTABE SIGN;So;0;ON;;;;;N;;;;; -10187;GREEK AROURA SIGN;So;0;ON;;;;;N;;;;; -10188;GREEK GRAMMA SIGN;So;0;ON;;;;;N;;;;; -10189;GREEK TRYBLION BASE SIGN;So;0;ON;;;;;N;;;;; -1018A;GREEK ZERO SIGN;No;0;ON;;;;0;N;;;;; -10190;ROMAN SEXTANS SIGN;So;0;ON;;;;;N;;;;; -10191;ROMAN UNCIA SIGN;So;0;ON;;;;;N;;;;; -10192;ROMAN SEMUNCIA SIGN;So;0;ON;;;;;N;;;;; -10193;ROMAN SEXTULA SIGN;So;0;ON;;;;;N;;;;; -10194;ROMAN DIMIDIA SEXTULA SIGN;So;0;ON;;;;;N;;;;; -10195;ROMAN SILIQUA SIGN;So;0;ON;;;;;N;;;;; -10196;ROMAN DENARIUS SIGN;So;0;ON;;;;;N;;;;; -10197;ROMAN QUINARIUS SIGN;So;0;ON;;;;;N;;;;; -10198;ROMAN SESTERTIUS SIGN;So;0;ON;;;;;N;;;;; -10199;ROMAN DUPONDIUS SIGN;So;0;ON;;;;;N;;;;; -1019A;ROMAN AS SIGN;So;0;ON;;;;;N;;;;; -1019B;ROMAN CENTURIAL SIGN;So;0;ON;;;;;N;;;;; -101D0;PHAISTOS DISC SIGN PEDESTRIAN;So;0;L;;;;;N;;;;; -101D1;PHAISTOS DISC SIGN PLUMED HEAD;So;0;L;;;;;N;;;;; -101D2;PHAISTOS DISC SIGN TATTOOED HEAD;So;0;L;;;;;N;;;;; -101D3;PHAISTOS DISC SIGN CAPTIVE;So;0;L;;;;;N;;;;; -101D4;PHAISTOS DISC SIGN CHILD;So;0;L;;;;;N;;;;; -101D5;PHAISTOS DISC SIGN WOMAN;So;0;L;;;;;N;;;;; -101D6;PHAISTOS DISC SIGN HELMET;So;0;L;;;;;N;;;;; -101D7;PHAISTOS DISC SIGN GAUNTLET;So;0;L;;;;;N;;;;; -101D8;PHAISTOS DISC SIGN TIARA;So;0;L;;;;;N;;;;; -101D9;PHAISTOS DISC SIGN ARROW;So;0;L;;;;;N;;;;; -101DA;PHAISTOS DISC SIGN BOW;So;0;L;;;;;N;;;;; -101DB;PHAISTOS DISC SIGN SHIELD;So;0;L;;;;;N;;;;; -101DC;PHAISTOS DISC SIGN CLUB;So;0;L;;;;;N;;;;; -101DD;PHAISTOS DISC SIGN MANACLES;So;0;L;;;;;N;;;;; -101DE;PHAISTOS DISC SIGN MATTOCK;So;0;L;;;;;N;;;;; -101DF;PHAISTOS DISC SIGN SAW;So;0;L;;;;;N;;;;; -101E0;PHAISTOS DISC SIGN LID;So;0;L;;;;;N;;;;; -101E1;PHAISTOS DISC SIGN BOOMERANG;So;0;L;;;;;N;;;;; -101E2;PHAISTOS DISC SIGN CARPENTRY PLANE;So;0;L;;;;;N;;;;; -101E3;PHAISTOS DISC SIGN DOLIUM;So;0;L;;;;;N;;;;; -101E4;PHAISTOS DISC SIGN COMB;So;0;L;;;;;N;;;;; -101E5;PHAISTOS DISC SIGN SLING;So;0;L;;;;;N;;;;; -101E6;PHAISTOS DISC SIGN COLUMN;So;0;L;;;;;N;;;;; -101E7;PHAISTOS DISC SIGN BEEHIVE;So;0;L;;;;;N;;;;; -101E8;PHAISTOS DISC SIGN SHIP;So;0;L;;;;;N;;;;; -101E9;PHAISTOS DISC SIGN HORN;So;0;L;;;;;N;;;;; -101EA;PHAISTOS DISC SIGN HIDE;So;0;L;;;;;N;;;;; -101EB;PHAISTOS DISC SIGN BULLS LEG;So;0;L;;;;;N;;;;; -101EC;PHAISTOS DISC SIGN CAT;So;0;L;;;;;N;;;;; -101ED;PHAISTOS DISC SIGN RAM;So;0;L;;;;;N;;;;; -101EE;PHAISTOS DISC SIGN EAGLE;So;0;L;;;;;N;;;;; -101EF;PHAISTOS DISC SIGN DOVE;So;0;L;;;;;N;;;;; -101F0;PHAISTOS DISC SIGN TUNNY;So;0;L;;;;;N;;;;; -101F1;PHAISTOS DISC SIGN BEE;So;0;L;;;;;N;;;;; -101F2;PHAISTOS DISC SIGN PLANE TREE;So;0;L;;;;;N;;;;; -101F3;PHAISTOS DISC SIGN VINE;So;0;L;;;;;N;;;;; -101F4;PHAISTOS DISC SIGN PAPYRUS;So;0;L;;;;;N;;;;; -101F5;PHAISTOS DISC SIGN ROSETTE;So;0;L;;;;;N;;;;; -101F6;PHAISTOS DISC SIGN LILY;So;0;L;;;;;N;;;;; -101F7;PHAISTOS DISC SIGN OX BACK;So;0;L;;;;;N;;;;; -101F8;PHAISTOS DISC SIGN FLUTE;So;0;L;;;;;N;;;;; -101F9;PHAISTOS DISC SIGN GRATER;So;0;L;;;;;N;;;;; -101FA;PHAISTOS DISC SIGN STRAINER;So;0;L;;;;;N;;;;; -101FB;PHAISTOS DISC SIGN SMALL AXE;So;0;L;;;;;N;;;;; -101FC;PHAISTOS DISC SIGN WAVY BAND;So;0;L;;;;;N;;;;; -101FD;PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE;Mn;220;NSM;;;;;N;;;;; -10280;LYCIAN LETTER A;Lo;0;L;;;;;N;;;;; -10281;LYCIAN LETTER E;Lo;0;L;;;;;N;;;;; -10282;LYCIAN LETTER B;Lo;0;L;;;;;N;;;;; -10283;LYCIAN LETTER BH;Lo;0;L;;;;;N;;;;; -10284;LYCIAN LETTER G;Lo;0;L;;;;;N;;;;; -10285;LYCIAN LETTER D;Lo;0;L;;;;;N;;;;; -10286;LYCIAN LETTER I;Lo;0;L;;;;;N;;;;; -10287;LYCIAN LETTER W;Lo;0;L;;;;;N;;;;; -10288;LYCIAN LETTER Z;Lo;0;L;;;;;N;;;;; -10289;LYCIAN LETTER TH;Lo;0;L;;;;;N;;;;; -1028A;LYCIAN LETTER J;Lo;0;L;;;;;N;;;;; -1028B;LYCIAN LETTER K;Lo;0;L;;;;;N;;;;; -1028C;LYCIAN LETTER Q;Lo;0;L;;;;;N;;;;; -1028D;LYCIAN LETTER L;Lo;0;L;;;;;N;;;;; -1028E;LYCIAN LETTER M;Lo;0;L;;;;;N;;;;; -1028F;LYCIAN LETTER N;Lo;0;L;;;;;N;;;;; -10290;LYCIAN LETTER MM;Lo;0;L;;;;;N;;;;; -10291;LYCIAN LETTER NN;Lo;0;L;;;;;N;;;;; -10292;LYCIAN LETTER U;Lo;0;L;;;;;N;;;;; -10293;LYCIAN LETTER P;Lo;0;L;;;;;N;;;;; -10294;LYCIAN LETTER KK;Lo;0;L;;;;;N;;;;; -10295;LYCIAN LETTER R;Lo;0;L;;;;;N;;;;; -10296;LYCIAN LETTER S;Lo;0;L;;;;;N;;;;; -10297;LYCIAN LETTER T;Lo;0;L;;;;;N;;;;; -10298;LYCIAN LETTER TT;Lo;0;L;;;;;N;;;;; -10299;LYCIAN LETTER AN;Lo;0;L;;;;;N;;;;; -1029A;LYCIAN LETTER EN;Lo;0;L;;;;;N;;;;; -1029B;LYCIAN LETTER H;Lo;0;L;;;;;N;;;;; -1029C;LYCIAN LETTER X;Lo;0;L;;;;;N;;;;; -102A0;CARIAN LETTER A;Lo;0;L;;;;;N;;;;; -102A1;CARIAN LETTER P2;Lo;0;L;;;;;N;;;;; -102A2;CARIAN LETTER D;Lo;0;L;;;;;N;;;;; -102A3;CARIAN LETTER L;Lo;0;L;;;;;N;;;;; -102A4;CARIAN LETTER UUU;Lo;0;L;;;;;N;;;;; -102A5;CARIAN LETTER R;Lo;0;L;;;;;N;;;;; -102A6;CARIAN LETTER LD;Lo;0;L;;;;;N;;;;; -102A7;CARIAN LETTER A2;Lo;0;L;;;;;N;;;;; -102A8;CARIAN LETTER Q;Lo;0;L;;;;;N;;;;; -102A9;CARIAN LETTER B;Lo;0;L;;;;;N;;;;; -102AA;CARIAN LETTER M;Lo;0;L;;;;;N;;;;; -102AB;CARIAN LETTER O;Lo;0;L;;;;;N;;;;; -102AC;CARIAN LETTER D2;Lo;0;L;;;;;N;;;;; -102AD;CARIAN LETTER T;Lo;0;L;;;;;N;;;;; -102AE;CARIAN LETTER SH;Lo;0;L;;;;;N;;;;; -102AF;CARIAN LETTER SH2;Lo;0;L;;;;;N;;;;; -102B0;CARIAN LETTER S;Lo;0;L;;;;;N;;;;; -102B1;CARIAN LETTER C-18;Lo;0;L;;;;;N;;;;; -102B2;CARIAN LETTER U;Lo;0;L;;;;;N;;;;; -102B3;CARIAN LETTER NN;Lo;0;L;;;;;N;;;;; -102B4;CARIAN LETTER X;Lo;0;L;;;;;N;;;;; -102B5;CARIAN LETTER N;Lo;0;L;;;;;N;;;;; -102B6;CARIAN LETTER TT2;Lo;0;L;;;;;N;;;;; -102B7;CARIAN LETTER P;Lo;0;L;;;;;N;;;;; -102B8;CARIAN LETTER SS;Lo;0;L;;;;;N;;;;; -102B9;CARIAN LETTER I;Lo;0;L;;;;;N;;;;; -102BA;CARIAN LETTER E;Lo;0;L;;;;;N;;;;; -102BB;CARIAN LETTER UUUU;Lo;0;L;;;;;N;;;;; -102BC;CARIAN LETTER K;Lo;0;L;;;;;N;;;;; -102BD;CARIAN LETTER K2;Lo;0;L;;;;;N;;;;; -102BE;CARIAN LETTER ND;Lo;0;L;;;;;N;;;;; -102BF;CARIAN LETTER UU;Lo;0;L;;;;;N;;;;; -102C0;CARIAN LETTER G;Lo;0;L;;;;;N;;;;; -102C1;CARIAN LETTER G2;Lo;0;L;;;;;N;;;;; -102C2;CARIAN LETTER ST;Lo;0;L;;;;;N;;;;; -102C3;CARIAN LETTER ST2;Lo;0;L;;;;;N;;;;; -102C4;CARIAN LETTER NG;Lo;0;L;;;;;N;;;;; -102C5;CARIAN LETTER II;Lo;0;L;;;;;N;;;;; -102C6;CARIAN LETTER C-39;Lo;0;L;;;;;N;;;;; -102C7;CARIAN LETTER TT;Lo;0;L;;;;;N;;;;; -102C8;CARIAN LETTER UUU2;Lo;0;L;;;;;N;;;;; -102C9;CARIAN LETTER RR;Lo;0;L;;;;;N;;;;; -102CA;CARIAN LETTER MB;Lo;0;L;;;;;N;;;;; -102CB;CARIAN LETTER MB2;Lo;0;L;;;;;N;;;;; -102CC;CARIAN LETTER MB3;Lo;0;L;;;;;N;;;;; -102CD;CARIAN LETTER MB4;Lo;0;L;;;;;N;;;;; -102CE;CARIAN LETTER LD2;Lo;0;L;;;;;N;;;;; -102CF;CARIAN LETTER E2;Lo;0;L;;;;;N;;;;; -102D0;CARIAN LETTER UUU3;Lo;0;L;;;;;N;;;;; -10300;OLD ITALIC LETTER A;Lo;0;L;;;;;N;;;;; -10301;OLD ITALIC LETTER BE;Lo;0;L;;;;;N;;;;; -10302;OLD ITALIC LETTER KE;Lo;0;L;;;;;N;;;;; -10303;OLD ITALIC LETTER DE;Lo;0;L;;;;;N;;;;; -10304;OLD ITALIC LETTER E;Lo;0;L;;;;;N;;;;; -10305;OLD ITALIC LETTER VE;Lo;0;L;;;;;N;;;;; -10306;OLD ITALIC LETTER ZE;Lo;0;L;;;;;N;;;;; -10307;OLD ITALIC LETTER HE;Lo;0;L;;;;;N;;;;; -10308;OLD ITALIC LETTER THE;Lo;0;L;;;;;N;;;;; -10309;OLD ITALIC LETTER I;Lo;0;L;;;;;N;;;;; -1030A;OLD ITALIC LETTER KA;Lo;0;L;;;;;N;;;;; -1030B;OLD ITALIC LETTER EL;Lo;0;L;;;;;N;;;;; -1030C;OLD ITALIC LETTER EM;Lo;0;L;;;;;N;;;;; -1030D;OLD ITALIC LETTER EN;Lo;0;L;;;;;N;;;;; -1030E;OLD ITALIC LETTER ESH;Lo;0;L;;;;;N;;;;; -1030F;OLD ITALIC LETTER O;Lo;0;L;;;;;N;;;;; -10310;OLD ITALIC LETTER PE;Lo;0;L;;;;;N;;;;; -10311;OLD ITALIC LETTER SHE;Lo;0;L;;;;;N;;;;; -10312;OLD ITALIC LETTER KU;Lo;0;L;;;;;N;;;;; -10313;OLD ITALIC LETTER ER;Lo;0;L;;;;;N;;;;; -10314;OLD ITALIC LETTER ES;Lo;0;L;;;;;N;;;;; -10315;OLD ITALIC LETTER TE;Lo;0;L;;;;;N;;;;; -10316;OLD ITALIC LETTER U;Lo;0;L;;;;;N;;;;; -10317;OLD ITALIC LETTER EKS;Lo;0;L;;;;;N;;;;; -10318;OLD ITALIC LETTER PHE;Lo;0;L;;;;;N;;;;; -10319;OLD ITALIC LETTER KHE;Lo;0;L;;;;;N;;;;; -1031A;OLD ITALIC LETTER EF;Lo;0;L;;;;;N;;;;; -1031B;OLD ITALIC LETTER ERS;Lo;0;L;;;;;N;;;;; -1031C;OLD ITALIC LETTER CHE;Lo;0;L;;;;;N;;;;; -1031D;OLD ITALIC LETTER II;Lo;0;L;;;;;N;;;;; -1031E;OLD ITALIC LETTER UU;Lo;0;L;;;;;N;;;;; -10320;OLD ITALIC NUMERAL ONE;No;0;L;;;;1;N;;;;; -10321;OLD ITALIC NUMERAL FIVE;No;0;L;;;;5;N;;;;; -10322;OLD ITALIC NUMERAL TEN;No;0;L;;;;10;N;;;;; -10323;OLD ITALIC NUMERAL FIFTY;No;0;L;;;;50;N;;;;; -10330;GOTHIC LETTER AHSA;Lo;0;L;;;;;N;;;;; -10331;GOTHIC LETTER BAIRKAN;Lo;0;L;;;;;N;;;;; -10332;GOTHIC LETTER GIBA;Lo;0;L;;;;;N;;;;; -10333;GOTHIC LETTER DAGS;Lo;0;L;;;;;N;;;;; -10334;GOTHIC LETTER AIHVUS;Lo;0;L;;;;;N;;;;; -10335;GOTHIC LETTER QAIRTHRA;Lo;0;L;;;;;N;;;;; -10336;GOTHIC LETTER IUJA;Lo;0;L;;;;;N;;;;; -10337;GOTHIC LETTER HAGL;Lo;0;L;;;;;N;;;;; -10338;GOTHIC LETTER THIUTH;Lo;0;L;;;;;N;;;;; -10339;GOTHIC LETTER EIS;Lo;0;L;;;;;N;;;;; -1033A;GOTHIC LETTER KUSMA;Lo;0;L;;;;;N;;;;; -1033B;GOTHIC LETTER LAGUS;Lo;0;L;;;;;N;;;;; -1033C;GOTHIC LETTER MANNA;Lo;0;L;;;;;N;;;;; -1033D;GOTHIC LETTER NAUTHS;Lo;0;L;;;;;N;;;;; -1033E;GOTHIC LETTER JER;Lo;0;L;;;;;N;;;;; -1033F;GOTHIC LETTER URUS;Lo;0;L;;;;;N;;;;; -10340;GOTHIC LETTER PAIRTHRA;Lo;0;L;;;;;N;;;;; -10341;GOTHIC LETTER NINETY;Nl;0;L;;;;90;N;;;;; -10342;GOTHIC LETTER RAIDA;Lo;0;L;;;;;N;;;;; -10343;GOTHIC LETTER SAUIL;Lo;0;L;;;;;N;;;;; -10344;GOTHIC LETTER TEIWS;Lo;0;L;;;;;N;;;;; -10345;GOTHIC LETTER WINJA;Lo;0;L;;;;;N;;;;; -10346;GOTHIC LETTER FAIHU;Lo;0;L;;;;;N;;;;; -10347;GOTHIC LETTER IGGWS;Lo;0;L;;;;;N;;;;; -10348;GOTHIC LETTER HWAIR;Lo;0;L;;;;;N;;;;; -10349;GOTHIC LETTER OTHAL;Lo;0;L;;;;;N;;;;; -1034A;GOTHIC LETTER NINE HUNDRED;Nl;0;L;;;;900;N;;;;; -10380;UGARITIC LETTER ALPA;Lo;0;L;;;;;N;;;;; -10381;UGARITIC LETTER BETA;Lo;0;L;;;;;N;;;;; -10382;UGARITIC LETTER GAMLA;Lo;0;L;;;;;N;;;;; -10383;UGARITIC LETTER KHA;Lo;0;L;;;;;N;;;;; -10384;UGARITIC LETTER DELTA;Lo;0;L;;;;;N;;;;; -10385;UGARITIC LETTER HO;Lo;0;L;;;;;N;;;;; -10386;UGARITIC LETTER WO;Lo;0;L;;;;;N;;;;; -10387;UGARITIC LETTER ZETA;Lo;0;L;;;;;N;;;;; -10388;UGARITIC LETTER HOTA;Lo;0;L;;;;;N;;;;; -10389;UGARITIC LETTER TET;Lo;0;L;;;;;N;;;;; -1038A;UGARITIC LETTER YOD;Lo;0;L;;;;;N;;;;; -1038B;UGARITIC LETTER KAF;Lo;0;L;;;;;N;;;;; -1038C;UGARITIC LETTER SHIN;Lo;0;L;;;;;N;;;;; -1038D;UGARITIC LETTER LAMDA;Lo;0;L;;;;;N;;;;; -1038E;UGARITIC LETTER MEM;Lo;0;L;;;;;N;;;;; -1038F;UGARITIC LETTER DHAL;Lo;0;L;;;;;N;;;;; -10390;UGARITIC LETTER NUN;Lo;0;L;;;;;N;;;;; -10391;UGARITIC LETTER ZU;Lo;0;L;;;;;N;;;;; -10392;UGARITIC LETTER SAMKA;Lo;0;L;;;;;N;;;;; -10393;UGARITIC LETTER AIN;Lo;0;L;;;;;N;;;;; -10394;UGARITIC LETTER PU;Lo;0;L;;;;;N;;;;; -10395;UGARITIC LETTER SADE;Lo;0;L;;;;;N;;;;; -10396;UGARITIC LETTER QOPA;Lo;0;L;;;;;N;;;;; -10397;UGARITIC LETTER RASHA;Lo;0;L;;;;;N;;;;; -10398;UGARITIC LETTER THANNA;Lo;0;L;;;;;N;;;;; -10399;UGARITIC LETTER GHAIN;Lo;0;L;;;;;N;;;;; -1039A;UGARITIC LETTER TO;Lo;0;L;;;;;N;;;;; -1039B;UGARITIC LETTER I;Lo;0;L;;;;;N;;;;; -1039C;UGARITIC LETTER U;Lo;0;L;;;;;N;;;;; -1039D;UGARITIC LETTER SSU;Lo;0;L;;;;;N;;;;; -1039F;UGARITIC WORD DIVIDER;Po;0;L;;;;;N;;;;; -103A0;OLD PERSIAN SIGN A;Lo;0;L;;;;;N;;;;; -103A1;OLD PERSIAN SIGN I;Lo;0;L;;;;;N;;;;; -103A2;OLD PERSIAN SIGN U;Lo;0;L;;;;;N;;;;; -103A3;OLD PERSIAN SIGN KA;Lo;0;L;;;;;N;;;;; -103A4;OLD PERSIAN SIGN KU;Lo;0;L;;;;;N;;;;; -103A5;OLD PERSIAN SIGN GA;Lo;0;L;;;;;N;;;;; -103A6;OLD PERSIAN SIGN GU;Lo;0;L;;;;;N;;;;; -103A7;OLD PERSIAN SIGN XA;Lo;0;L;;;;;N;;;;; -103A8;OLD PERSIAN SIGN CA;Lo;0;L;;;;;N;;;;; -103A9;OLD PERSIAN SIGN JA;Lo;0;L;;;;;N;;;;; -103AA;OLD PERSIAN SIGN JI;Lo;0;L;;;;;N;;;;; -103AB;OLD PERSIAN SIGN TA;Lo;0;L;;;;;N;;;;; -103AC;OLD PERSIAN SIGN TU;Lo;0;L;;;;;N;;;;; -103AD;OLD PERSIAN SIGN DA;Lo;0;L;;;;;N;;;;; -103AE;OLD PERSIAN SIGN DI;Lo;0;L;;;;;N;;;;; -103AF;OLD PERSIAN SIGN DU;Lo;0;L;;;;;N;;;;; -103B0;OLD PERSIAN SIGN THA;Lo;0;L;;;;;N;;;;; -103B1;OLD PERSIAN SIGN PA;Lo;0;L;;;;;N;;;;; -103B2;OLD PERSIAN SIGN BA;Lo;0;L;;;;;N;;;;; -103B3;OLD PERSIAN SIGN FA;Lo;0;L;;;;;N;;;;; -103B4;OLD PERSIAN SIGN NA;Lo;0;L;;;;;N;;;;; -103B5;OLD PERSIAN SIGN NU;Lo;0;L;;;;;N;;;;; -103B6;OLD PERSIAN SIGN MA;Lo;0;L;;;;;N;;;;; -103B7;OLD PERSIAN SIGN MI;Lo;0;L;;;;;N;;;;; -103B8;OLD PERSIAN SIGN MU;Lo;0;L;;;;;N;;;;; -103B9;OLD PERSIAN SIGN YA;Lo;0;L;;;;;N;;;;; -103BA;OLD PERSIAN SIGN VA;Lo;0;L;;;;;N;;;;; -103BB;OLD PERSIAN SIGN VI;Lo;0;L;;;;;N;;;;; -103BC;OLD PERSIAN SIGN RA;Lo;0;L;;;;;N;;;;; -103BD;OLD PERSIAN SIGN RU;Lo;0;L;;;;;N;;;;; -103BE;OLD PERSIAN SIGN LA;Lo;0;L;;;;;N;;;;; -103BF;OLD PERSIAN SIGN SA;Lo;0;L;;;;;N;;;;; -103C0;OLD PERSIAN SIGN ZA;Lo;0;L;;;;;N;;;;; -103C1;OLD PERSIAN SIGN SHA;Lo;0;L;;;;;N;;;;; -103C2;OLD PERSIAN SIGN SSA;Lo;0;L;;;;;N;;;;; -103C3;OLD PERSIAN SIGN HA;Lo;0;L;;;;;N;;;;; -103C8;OLD PERSIAN SIGN AURAMAZDAA;Lo;0;L;;;;;N;;;;; -103C9;OLD PERSIAN SIGN AURAMAZDAA-2;Lo;0;L;;;;;N;;;;; -103CA;OLD PERSIAN SIGN AURAMAZDAAHA;Lo;0;L;;;;;N;;;;; -103CB;OLD PERSIAN SIGN XSHAAYATHIYA;Lo;0;L;;;;;N;;;;; -103CC;OLD PERSIAN SIGN DAHYAAUSH;Lo;0;L;;;;;N;;;;; -103CD;OLD PERSIAN SIGN DAHYAAUSH-2;Lo;0;L;;;;;N;;;;; -103CE;OLD PERSIAN SIGN BAGA;Lo;0;L;;;;;N;;;;; -103CF;OLD PERSIAN SIGN BUUMISH;Lo;0;L;;;;;N;;;;; -103D0;OLD PERSIAN WORD DIVIDER;Po;0;L;;;;;N;;;;; -103D1;OLD PERSIAN NUMBER ONE;Nl;0;L;;;;1;N;;;;; -103D2;OLD PERSIAN NUMBER TWO;Nl;0;L;;;;2;N;;;;; -103D3;OLD PERSIAN NUMBER TEN;Nl;0;L;;;;10;N;;;;; -103D4;OLD PERSIAN NUMBER TWENTY;Nl;0;L;;;;20;N;;;;; -103D5;OLD PERSIAN NUMBER HUNDRED;Nl;0;L;;;;100;N;;;;; -10400;DESERET CAPITAL LETTER LONG I;Lu;0;L;;;;;N;;;;10428; -10401;DESERET CAPITAL LETTER LONG E;Lu;0;L;;;;;N;;;;10429; -10402;DESERET CAPITAL LETTER LONG A;Lu;0;L;;;;;N;;;;1042A; -10403;DESERET CAPITAL LETTER LONG AH;Lu;0;L;;;;;N;;;;1042B; -10404;DESERET CAPITAL LETTER LONG O;Lu;0;L;;;;;N;;;;1042C; -10405;DESERET CAPITAL LETTER LONG OO;Lu;0;L;;;;;N;;;;1042D; -10406;DESERET CAPITAL LETTER SHORT I;Lu;0;L;;;;;N;;;;1042E; -10407;DESERET CAPITAL LETTER SHORT E;Lu;0;L;;;;;N;;;;1042F; -10408;DESERET CAPITAL LETTER SHORT A;Lu;0;L;;;;;N;;;;10430; -10409;DESERET CAPITAL LETTER SHORT AH;Lu;0;L;;;;;N;;;;10431; -1040A;DESERET CAPITAL LETTER SHORT O;Lu;0;L;;;;;N;;;;10432; -1040B;DESERET CAPITAL LETTER SHORT OO;Lu;0;L;;;;;N;;;;10433; -1040C;DESERET CAPITAL LETTER AY;Lu;0;L;;;;;N;;;;10434; -1040D;DESERET CAPITAL LETTER OW;Lu;0;L;;;;;N;;;;10435; -1040E;DESERET CAPITAL LETTER WU;Lu;0;L;;;;;N;;;;10436; -1040F;DESERET CAPITAL LETTER YEE;Lu;0;L;;;;;N;;;;10437; -10410;DESERET CAPITAL LETTER H;Lu;0;L;;;;;N;;;;10438; -10411;DESERET CAPITAL LETTER PEE;Lu;0;L;;;;;N;;;;10439; -10412;DESERET CAPITAL LETTER BEE;Lu;0;L;;;;;N;;;;1043A; -10413;DESERET CAPITAL LETTER TEE;Lu;0;L;;;;;N;;;;1043B; -10414;DESERET CAPITAL LETTER DEE;Lu;0;L;;;;;N;;;;1043C; -10415;DESERET CAPITAL LETTER CHEE;Lu;0;L;;;;;N;;;;1043D; -10416;DESERET CAPITAL LETTER JEE;Lu;0;L;;;;;N;;;;1043E; -10417;DESERET CAPITAL LETTER KAY;Lu;0;L;;;;;N;;;;1043F; -10418;DESERET CAPITAL LETTER GAY;Lu;0;L;;;;;N;;;;10440; -10419;DESERET CAPITAL LETTER EF;Lu;0;L;;;;;N;;;;10441; -1041A;DESERET CAPITAL LETTER VEE;Lu;0;L;;;;;N;;;;10442; -1041B;DESERET CAPITAL LETTER ETH;Lu;0;L;;;;;N;;;;10443; -1041C;DESERET CAPITAL LETTER THEE;Lu;0;L;;;;;N;;;;10444; -1041D;DESERET CAPITAL LETTER ES;Lu;0;L;;;;;N;;;;10445; -1041E;DESERET CAPITAL LETTER ZEE;Lu;0;L;;;;;N;;;;10446; -1041F;DESERET CAPITAL LETTER ESH;Lu;0;L;;;;;N;;;;10447; -10420;DESERET CAPITAL LETTER ZHEE;Lu;0;L;;;;;N;;;;10448; -10421;DESERET CAPITAL LETTER ER;Lu;0;L;;;;;N;;;;10449; -10422;DESERET CAPITAL LETTER EL;Lu;0;L;;;;;N;;;;1044A; -10423;DESERET CAPITAL LETTER EM;Lu;0;L;;;;;N;;;;1044B; -10424;DESERET CAPITAL LETTER EN;Lu;0;L;;;;;N;;;;1044C; -10425;DESERET CAPITAL LETTER ENG;Lu;0;L;;;;;N;;;;1044D; -10426;DESERET CAPITAL LETTER OI;Lu;0;L;;;;;N;;;;1044E; -10427;DESERET CAPITAL LETTER EW;Lu;0;L;;;;;N;;;;1044F; -10428;DESERET SMALL LETTER LONG I;Ll;0;L;;;;;N;;;10400;;10400 -10429;DESERET SMALL LETTER LONG E;Ll;0;L;;;;;N;;;10401;;10401 -1042A;DESERET SMALL LETTER LONG A;Ll;0;L;;;;;N;;;10402;;10402 -1042B;DESERET SMALL LETTER LONG AH;Ll;0;L;;;;;N;;;10403;;10403 -1042C;DESERET SMALL LETTER LONG O;Ll;0;L;;;;;N;;;10404;;10404 -1042D;DESERET SMALL LETTER LONG OO;Ll;0;L;;;;;N;;;10405;;10405 -1042E;DESERET SMALL LETTER SHORT I;Ll;0;L;;;;;N;;;10406;;10406 -1042F;DESERET SMALL LETTER SHORT E;Ll;0;L;;;;;N;;;10407;;10407 -10430;DESERET SMALL LETTER SHORT A;Ll;0;L;;;;;N;;;10408;;10408 -10431;DESERET SMALL LETTER SHORT AH;Ll;0;L;;;;;N;;;10409;;10409 -10432;DESERET SMALL LETTER SHORT O;Ll;0;L;;;;;N;;;1040A;;1040A -10433;DESERET SMALL LETTER SHORT OO;Ll;0;L;;;;;N;;;1040B;;1040B -10434;DESERET SMALL LETTER AY;Ll;0;L;;;;;N;;;1040C;;1040C -10435;DESERET SMALL LETTER OW;Ll;0;L;;;;;N;;;1040D;;1040D -10436;DESERET SMALL LETTER WU;Ll;0;L;;;;;N;;;1040E;;1040E -10437;DESERET SMALL LETTER YEE;Ll;0;L;;;;;N;;;1040F;;1040F -10438;DESERET SMALL LETTER H;Ll;0;L;;;;;N;;;10410;;10410 -10439;DESERET SMALL LETTER PEE;Ll;0;L;;;;;N;;;10411;;10411 -1043A;DESERET SMALL LETTER BEE;Ll;0;L;;;;;N;;;10412;;10412 -1043B;DESERET SMALL LETTER TEE;Ll;0;L;;;;;N;;;10413;;10413 -1043C;DESERET SMALL LETTER DEE;Ll;0;L;;;;;N;;;10414;;10414 -1043D;DESERET SMALL LETTER CHEE;Ll;0;L;;;;;N;;;10415;;10415 -1043E;DESERET SMALL LETTER JEE;Ll;0;L;;;;;N;;;10416;;10416 -1043F;DESERET SMALL LETTER KAY;Ll;0;L;;;;;N;;;10417;;10417 -10440;DESERET SMALL LETTER GAY;Ll;0;L;;;;;N;;;10418;;10418 -10441;DESERET SMALL LETTER EF;Ll;0;L;;;;;N;;;10419;;10419 -10442;DESERET SMALL LETTER VEE;Ll;0;L;;;;;N;;;1041A;;1041A -10443;DESERET SMALL LETTER ETH;Ll;0;L;;;;;N;;;1041B;;1041B -10444;DESERET SMALL LETTER THEE;Ll;0;L;;;;;N;;;1041C;;1041C -10445;DESERET SMALL LETTER ES;Ll;0;L;;;;;N;;;1041D;;1041D -10446;DESERET SMALL LETTER ZEE;Ll;0;L;;;;;N;;;1041E;;1041E -10447;DESERET SMALL LETTER ESH;Ll;0;L;;;;;N;;;1041F;;1041F -10448;DESERET SMALL LETTER ZHEE;Ll;0;L;;;;;N;;;10420;;10420 -10449;DESERET SMALL LETTER ER;Ll;0;L;;;;;N;;;10421;;10421 -1044A;DESERET SMALL LETTER EL;Ll;0;L;;;;;N;;;10422;;10422 -1044B;DESERET SMALL LETTER EM;Ll;0;L;;;;;N;;;10423;;10423 -1044C;DESERET SMALL LETTER EN;Ll;0;L;;;;;N;;;10424;;10424 -1044D;DESERET SMALL LETTER ENG;Ll;0;L;;;;;N;;;10425;;10425 -1044E;DESERET SMALL LETTER OI;Ll;0;L;;;;;N;;;10426;;10426 -1044F;DESERET SMALL LETTER EW;Ll;0;L;;;;;N;;;10427;;10427 -10450;SHAVIAN LETTER PEEP;Lo;0;L;;;;;N;;;;; -10451;SHAVIAN LETTER TOT;Lo;0;L;;;;;N;;;;; -10452;SHAVIAN LETTER KICK;Lo;0;L;;;;;N;;;;; -10453;SHAVIAN LETTER FEE;Lo;0;L;;;;;N;;;;; -10454;SHAVIAN LETTER THIGH;Lo;0;L;;;;;N;;;;; -10455;SHAVIAN LETTER SO;Lo;0;L;;;;;N;;;;; -10456;SHAVIAN LETTER SURE;Lo;0;L;;;;;N;;;;; -10457;SHAVIAN LETTER CHURCH;Lo;0;L;;;;;N;;;;; -10458;SHAVIAN LETTER YEA;Lo;0;L;;;;;N;;;;; -10459;SHAVIAN LETTER HUNG;Lo;0;L;;;;;N;;;;; -1045A;SHAVIAN LETTER BIB;Lo;0;L;;;;;N;;;;; -1045B;SHAVIAN LETTER DEAD;Lo;0;L;;;;;N;;;;; -1045C;SHAVIAN LETTER GAG;Lo;0;L;;;;;N;;;;; -1045D;SHAVIAN LETTER VOW;Lo;0;L;;;;;N;;;;; -1045E;SHAVIAN LETTER THEY;Lo;0;L;;;;;N;;;;; -1045F;SHAVIAN LETTER ZOO;Lo;0;L;;;;;N;;;;; -10460;SHAVIAN LETTER MEASURE;Lo;0;L;;;;;N;;;;; -10461;SHAVIAN LETTER JUDGE;Lo;0;L;;;;;N;;;;; -10462;SHAVIAN LETTER WOE;Lo;0;L;;;;;N;;;;; -10463;SHAVIAN LETTER HA-HA;Lo;0;L;;;;;N;;;;; -10464;SHAVIAN LETTER LOLL;Lo;0;L;;;;;N;;;;; -10465;SHAVIAN LETTER MIME;Lo;0;L;;;;;N;;;;; -10466;SHAVIAN LETTER IF;Lo;0;L;;;;;N;;;;; -10467;SHAVIAN LETTER EGG;Lo;0;L;;;;;N;;;;; -10468;SHAVIAN LETTER ASH;Lo;0;L;;;;;N;;;;; -10469;SHAVIAN LETTER ADO;Lo;0;L;;;;;N;;;;; -1046A;SHAVIAN LETTER ON;Lo;0;L;;;;;N;;;;; -1046B;SHAVIAN LETTER WOOL;Lo;0;L;;;;;N;;;;; -1046C;SHAVIAN LETTER OUT;Lo;0;L;;;;;N;;;;; -1046D;SHAVIAN LETTER AH;Lo;0;L;;;;;N;;;;; -1046E;SHAVIAN LETTER ROAR;Lo;0;L;;;;;N;;;;; -1046F;SHAVIAN LETTER NUN;Lo;0;L;;;;;N;;;;; -10470;SHAVIAN LETTER EAT;Lo;0;L;;;;;N;;;;; -10471;SHAVIAN LETTER AGE;Lo;0;L;;;;;N;;;;; -10472;SHAVIAN LETTER ICE;Lo;0;L;;;;;N;;;;; -10473;SHAVIAN LETTER UP;Lo;0;L;;;;;N;;;;; -10474;SHAVIAN LETTER OAK;Lo;0;L;;;;;N;;;;; -10475;SHAVIAN LETTER OOZE;Lo;0;L;;;;;N;;;;; -10476;SHAVIAN LETTER OIL;Lo;0;L;;;;;N;;;;; -10477;SHAVIAN LETTER AWE;Lo;0;L;;;;;N;;;;; -10478;SHAVIAN LETTER ARE;Lo;0;L;;;;;N;;;;; -10479;SHAVIAN LETTER OR;Lo;0;L;;;;;N;;;;; -1047A;SHAVIAN LETTER AIR;Lo;0;L;;;;;N;;;;; -1047B;SHAVIAN LETTER ERR;Lo;0;L;;;;;N;;;;; -1047C;SHAVIAN LETTER ARRAY;Lo;0;L;;;;;N;;;;; -1047D;SHAVIAN LETTER EAR;Lo;0;L;;;;;N;;;;; -1047E;SHAVIAN LETTER IAN;Lo;0;L;;;;;N;;;;; -1047F;SHAVIAN LETTER YEW;Lo;0;L;;;;;N;;;;; -10480;OSMANYA LETTER ALEF;Lo;0;L;;;;;N;;;;; -10481;OSMANYA LETTER BA;Lo;0;L;;;;;N;;;;; -10482;OSMANYA LETTER TA;Lo;0;L;;;;;N;;;;; -10483;OSMANYA LETTER JA;Lo;0;L;;;;;N;;;;; -10484;OSMANYA LETTER XA;Lo;0;L;;;;;N;;;;; -10485;OSMANYA LETTER KHA;Lo;0;L;;;;;N;;;;; -10486;OSMANYA LETTER DEEL;Lo;0;L;;;;;N;;;;; -10487;OSMANYA LETTER RA;Lo;0;L;;;;;N;;;;; -10488;OSMANYA LETTER SA;Lo;0;L;;;;;N;;;;; -10489;OSMANYA LETTER SHIIN;Lo;0;L;;;;;N;;;;; -1048A;OSMANYA LETTER DHA;Lo;0;L;;;;;N;;;;; -1048B;OSMANYA LETTER CAYN;Lo;0;L;;;;;N;;;;; -1048C;OSMANYA LETTER GA;Lo;0;L;;;;;N;;;;; -1048D;OSMANYA LETTER FA;Lo;0;L;;;;;N;;;;; -1048E;OSMANYA LETTER QAAF;Lo;0;L;;;;;N;;;;; -1048F;OSMANYA LETTER KAAF;Lo;0;L;;;;;N;;;;; -10490;OSMANYA LETTER LAAN;Lo;0;L;;;;;N;;;;; -10491;OSMANYA LETTER MIIN;Lo;0;L;;;;;N;;;;; -10492;OSMANYA LETTER NUUN;Lo;0;L;;;;;N;;;;; -10493;OSMANYA LETTER WAW;Lo;0;L;;;;;N;;;;; -10494;OSMANYA LETTER HA;Lo;0;L;;;;;N;;;;; -10495;OSMANYA LETTER YA;Lo;0;L;;;;;N;;;;; -10496;OSMANYA LETTER A;Lo;0;L;;;;;N;;;;; -10497;OSMANYA LETTER E;Lo;0;L;;;;;N;;;;; -10498;OSMANYA LETTER I;Lo;0;L;;;;;N;;;;; -10499;OSMANYA LETTER O;Lo;0;L;;;;;N;;;;; -1049A;OSMANYA LETTER U;Lo;0;L;;;;;N;;;;; -1049B;OSMANYA LETTER AA;Lo;0;L;;;;;N;;;;; -1049C;OSMANYA LETTER EE;Lo;0;L;;;;;N;;;;; -1049D;OSMANYA LETTER OO;Lo;0;L;;;;;N;;;;; -104A0;OSMANYA DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; -104A1;OSMANYA DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; -104A2;OSMANYA DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; -104A3;OSMANYA DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; -104A4;OSMANYA DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; -104A5;OSMANYA DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; -104A6;OSMANYA DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; -104A7;OSMANYA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; -104A8;OSMANYA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; -104A9;OSMANYA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; -10800;CYPRIOT SYLLABLE A;Lo;0;R;;;;;N;;;;; -10801;CYPRIOT SYLLABLE E;Lo;0;R;;;;;N;;;;; -10802;CYPRIOT SYLLABLE I;Lo;0;R;;;;;N;;;;; -10803;CYPRIOT SYLLABLE O;Lo;0;R;;;;;N;;;;; -10804;CYPRIOT SYLLABLE U;Lo;0;R;;;;;N;;;;; -10805;CYPRIOT SYLLABLE JA;Lo;0;R;;;;;N;;;;; -10808;CYPRIOT SYLLABLE JO;Lo;0;R;;;;;N;;;;; -1080A;CYPRIOT SYLLABLE KA;Lo;0;R;;;;;N;;;;; -1080B;CYPRIOT SYLLABLE KE;Lo;0;R;;;;;N;;;;; -1080C;CYPRIOT SYLLABLE KI;Lo;0;R;;;;;N;;;;; -1080D;CYPRIOT SYLLABLE KO;Lo;0;R;;;;;N;;;;; -1080E;CYPRIOT SYLLABLE KU;Lo;0;R;;;;;N;;;;; -1080F;CYPRIOT SYLLABLE LA;Lo;0;R;;;;;N;;;;; -10810;CYPRIOT SYLLABLE LE;Lo;0;R;;;;;N;;;;; -10811;CYPRIOT SYLLABLE LI;Lo;0;R;;;;;N;;;;; -10812;CYPRIOT SYLLABLE LO;Lo;0;R;;;;;N;;;;; -10813;CYPRIOT SYLLABLE LU;Lo;0;R;;;;;N;;;;; -10814;CYPRIOT SYLLABLE MA;Lo;0;R;;;;;N;;;;; -10815;CYPRIOT SYLLABLE ME;Lo;0;R;;;;;N;;;;; -10816;CYPRIOT SYLLABLE MI;Lo;0;R;;;;;N;;;;; -10817;CYPRIOT SYLLABLE MO;Lo;0;R;;;;;N;;;;; -10818;CYPRIOT SYLLABLE MU;Lo;0;R;;;;;N;;;;; -10819;CYPRIOT SYLLABLE NA;Lo;0;R;;;;;N;;;;; -1081A;CYPRIOT SYLLABLE NE;Lo;0;R;;;;;N;;;;; -1081B;CYPRIOT SYLLABLE NI;Lo;0;R;;;;;N;;;;; -1081C;CYPRIOT SYLLABLE NO;Lo;0;R;;;;;N;;;;; -1081D;CYPRIOT SYLLABLE NU;Lo;0;R;;;;;N;;;;; -1081E;CYPRIOT SYLLABLE PA;Lo;0;R;;;;;N;;;;; -1081F;CYPRIOT SYLLABLE PE;Lo;0;R;;;;;N;;;;; -10820;CYPRIOT SYLLABLE PI;Lo;0;R;;;;;N;;;;; -10821;CYPRIOT SYLLABLE PO;Lo;0;R;;;;;N;;;;; -10822;CYPRIOT SYLLABLE PU;Lo;0;R;;;;;N;;;;; -10823;CYPRIOT SYLLABLE RA;Lo;0;R;;;;;N;;;;; -10824;CYPRIOT SYLLABLE RE;Lo;0;R;;;;;N;;;;; -10825;CYPRIOT SYLLABLE RI;Lo;0;R;;;;;N;;;;; -10826;CYPRIOT SYLLABLE RO;Lo;0;R;;;;;N;;;;; -10827;CYPRIOT SYLLABLE RU;Lo;0;R;;;;;N;;;;; -10828;CYPRIOT SYLLABLE SA;Lo;0;R;;;;;N;;;;; -10829;CYPRIOT SYLLABLE SE;Lo;0;R;;;;;N;;;;; -1082A;CYPRIOT SYLLABLE SI;Lo;0;R;;;;;N;;;;; -1082B;CYPRIOT SYLLABLE SO;Lo;0;R;;;;;N;;;;; -1082C;CYPRIOT SYLLABLE SU;Lo;0;R;;;;;N;;;;; -1082D;CYPRIOT SYLLABLE TA;Lo;0;R;;;;;N;;;;; -1082E;CYPRIOT SYLLABLE TE;Lo;0;R;;;;;N;;;;; -1082F;CYPRIOT SYLLABLE TI;Lo;0;R;;;;;N;;;;; -10830;CYPRIOT SYLLABLE TO;Lo;0;R;;;;;N;;;;; -10831;CYPRIOT SYLLABLE TU;Lo;0;R;;;;;N;;;;; -10832;CYPRIOT SYLLABLE WA;Lo;0;R;;;;;N;;;;; -10833;CYPRIOT SYLLABLE WE;Lo;0;R;;;;;N;;;;; -10834;CYPRIOT SYLLABLE WI;Lo;0;R;;;;;N;;;;; -10835;CYPRIOT SYLLABLE WO;Lo;0;R;;;;;N;;;;; -10837;CYPRIOT SYLLABLE XA;Lo;0;R;;;;;N;;;;; -10838;CYPRIOT SYLLABLE XE;Lo;0;R;;;;;N;;;;; -1083C;CYPRIOT SYLLABLE ZA;Lo;0;R;;;;;N;;;;; -1083F;CYPRIOT SYLLABLE ZO;Lo;0;R;;;;;N;;;;; -10840;IMPERIAL ARAMAIC LETTER ALEPH;Lo;0;R;;;;;N;;;;; -10841;IMPERIAL ARAMAIC LETTER BETH;Lo;0;R;;;;;N;;;;; -10842;IMPERIAL ARAMAIC LETTER GIMEL;Lo;0;R;;;;;N;;;;; -10843;IMPERIAL ARAMAIC LETTER DALETH;Lo;0;R;;;;;N;;;;; -10844;IMPERIAL ARAMAIC LETTER HE;Lo;0;R;;;;;N;;;;; -10845;IMPERIAL ARAMAIC LETTER WAW;Lo;0;R;;;;;N;;;;; -10846;IMPERIAL ARAMAIC LETTER ZAYIN;Lo;0;R;;;;;N;;;;; -10847;IMPERIAL ARAMAIC LETTER HETH;Lo;0;R;;;;;N;;;;; -10848;IMPERIAL ARAMAIC LETTER TETH;Lo;0;R;;;;;N;;;;; -10849;IMPERIAL ARAMAIC LETTER YODH;Lo;0;R;;;;;N;;;;; -1084A;IMPERIAL ARAMAIC LETTER KAPH;Lo;0;R;;;;;N;;;;; -1084B;IMPERIAL ARAMAIC LETTER LAMEDH;Lo;0;R;;;;;N;;;;; -1084C;IMPERIAL ARAMAIC LETTER MEM;Lo;0;R;;;;;N;;;;; -1084D;IMPERIAL ARAMAIC LETTER NUN;Lo;0;R;;;;;N;;;;; -1084E;IMPERIAL ARAMAIC LETTER SAMEKH;Lo;0;R;;;;;N;;;;; -1084F;IMPERIAL ARAMAIC LETTER AYIN;Lo;0;R;;;;;N;;;;; -10850;IMPERIAL ARAMAIC LETTER PE;Lo;0;R;;;;;N;;;;; -10851;IMPERIAL ARAMAIC LETTER SADHE;Lo;0;R;;;;;N;;;;; -10852;IMPERIAL ARAMAIC LETTER QOPH;Lo;0;R;;;;;N;;;;; -10853;IMPERIAL ARAMAIC LETTER RESH;Lo;0;R;;;;;N;;;;; -10854;IMPERIAL ARAMAIC LETTER SHIN;Lo;0;R;;;;;N;;;;; -10855;IMPERIAL ARAMAIC LETTER TAW;Lo;0;R;;;;;N;;;;; -10857;IMPERIAL ARAMAIC SECTION SIGN;Po;0;R;;;;;N;;;;; -10858;IMPERIAL ARAMAIC NUMBER ONE;No;0;R;;;;1;N;;;;; -10859;IMPERIAL ARAMAIC NUMBER TWO;No;0;R;;;;2;N;;;;; -1085A;IMPERIAL ARAMAIC NUMBER THREE;No;0;R;;;;3;N;;;;; -1085B;IMPERIAL ARAMAIC NUMBER TEN;No;0;R;;;;10;N;;;;; -1085C;IMPERIAL ARAMAIC NUMBER TWENTY;No;0;R;;;;20;N;;;;; -1085D;IMPERIAL ARAMAIC NUMBER ONE HUNDRED;No;0;R;;;;100;N;;;;; -1085E;IMPERIAL ARAMAIC NUMBER ONE THOUSAND;No;0;R;;;;1000;N;;;;; -1085F;IMPERIAL ARAMAIC NUMBER TEN THOUSAND;No;0;R;;;;10000;N;;;;; -10900;PHOENICIAN LETTER ALF;Lo;0;R;;;;;N;;;;; -10901;PHOENICIAN LETTER BET;Lo;0;R;;;;;N;;;;; -10902;PHOENICIAN LETTER GAML;Lo;0;R;;;;;N;;;;; -10903;PHOENICIAN LETTER DELT;Lo;0;R;;;;;N;;;;; -10904;PHOENICIAN LETTER HE;Lo;0;R;;;;;N;;;;; -10905;PHOENICIAN LETTER WAU;Lo;0;R;;;;;N;;;;; -10906;PHOENICIAN LETTER ZAI;Lo;0;R;;;;;N;;;;; -10907;PHOENICIAN LETTER HET;Lo;0;R;;;;;N;;;;; -10908;PHOENICIAN LETTER TET;Lo;0;R;;;;;N;;;;; -10909;PHOENICIAN LETTER YOD;Lo;0;R;;;;;N;;;;; -1090A;PHOENICIAN LETTER KAF;Lo;0;R;;;;;N;;;;; -1090B;PHOENICIAN LETTER LAMD;Lo;0;R;;;;;N;;;;; -1090C;PHOENICIAN LETTER MEM;Lo;0;R;;;;;N;;;;; -1090D;PHOENICIAN LETTER NUN;Lo;0;R;;;;;N;;;;; -1090E;PHOENICIAN LETTER SEMK;Lo;0;R;;;;;N;;;;; -1090F;PHOENICIAN LETTER AIN;Lo;0;R;;;;;N;;;;; -10910;PHOENICIAN LETTER PE;Lo;0;R;;;;;N;;;;; -10911;PHOENICIAN LETTER SADE;Lo;0;R;;;;;N;;;;; -10912;PHOENICIAN LETTER QOF;Lo;0;R;;;;;N;;;;; -10913;PHOENICIAN LETTER ROSH;Lo;0;R;;;;;N;;;;; -10914;PHOENICIAN LETTER SHIN;Lo;0;R;;;;;N;;;;; -10915;PHOENICIAN LETTER TAU;Lo;0;R;;;;;N;;;;; -10916;PHOENICIAN NUMBER ONE;No;0;R;;;;1;N;;;;; -10917;PHOENICIAN NUMBER TEN;No;0;R;;;;10;N;;;;; -10918;PHOENICIAN NUMBER TWENTY;No;0;R;;;;20;N;;;;; -10919;PHOENICIAN NUMBER ONE HUNDRED;No;0;R;;;;100;N;;;;; -1091A;PHOENICIAN NUMBER TWO;No;0;R;;;;2;N;;;;; -1091B;PHOENICIAN NUMBER THREE;No;0;R;;;;3;N;;;;; -1091F;PHOENICIAN WORD SEPARATOR;Po;0;ON;;;;;N;;;;; -10920;LYDIAN LETTER A;Lo;0;R;;;;;N;;;;; -10921;LYDIAN LETTER B;Lo;0;R;;;;;N;;;;; -10922;LYDIAN LETTER G;Lo;0;R;;;;;N;;;;; -10923;LYDIAN LETTER D;Lo;0;R;;;;;N;;;;; -10924;LYDIAN LETTER E;Lo;0;R;;;;;N;;;;; -10925;LYDIAN LETTER V;Lo;0;R;;;;;N;;;;; -10926;LYDIAN LETTER I;Lo;0;R;;;;;N;;;;; -10927;LYDIAN LETTER Y;Lo;0;R;;;;;N;;;;; -10928;LYDIAN LETTER K;Lo;0;R;;;;;N;;;;; -10929;LYDIAN LETTER L;Lo;0;R;;;;;N;;;;; -1092A;LYDIAN LETTER M;Lo;0;R;;;;;N;;;;; -1092B;LYDIAN LETTER N;Lo;0;R;;;;;N;;;;; -1092C;LYDIAN LETTER O;Lo;0;R;;;;;N;;;;; -1092D;LYDIAN LETTER R;Lo;0;R;;;;;N;;;;; -1092E;LYDIAN LETTER SS;Lo;0;R;;;;;N;;;;; -1092F;LYDIAN LETTER T;Lo;0;R;;;;;N;;;;; -10930;LYDIAN LETTER U;Lo;0;R;;;;;N;;;;; -10931;LYDIAN LETTER F;Lo;0;R;;;;;N;;;;; -10932;LYDIAN LETTER Q;Lo;0;R;;;;;N;;;;; -10933;LYDIAN LETTER S;Lo;0;R;;;;;N;;;;; -10934;LYDIAN LETTER TT;Lo;0;R;;;;;N;;;;; -10935;LYDIAN LETTER AN;Lo;0;R;;;;;N;;;;; -10936;LYDIAN LETTER EN;Lo;0;R;;;;;N;;;;; -10937;LYDIAN LETTER LY;Lo;0;R;;;;;N;;;;; -10938;LYDIAN LETTER NN;Lo;0;R;;;;;N;;;;; -10939;LYDIAN LETTER C;Lo;0;R;;;;;N;;;;; -1093F;LYDIAN TRIANGULAR MARK;Po;0;R;;;;;N;;;;; -10A00;KHAROSHTHI LETTER A;Lo;0;R;;;;;N;;;;; -10A01;KHAROSHTHI VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;; -10A02;KHAROSHTHI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; -10A03;KHAROSHTHI VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;; -10A05;KHAROSHTHI VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;; -10A06;KHAROSHTHI VOWEL SIGN O;Mn;0;NSM;;;;;N;;;;; -10A0C;KHAROSHTHI VOWEL LENGTH MARK;Mn;0;NSM;;;;;N;;;;; -10A0D;KHAROSHTHI SIGN DOUBLE RING BELOW;Mn;220;NSM;;;;;N;;;;; -10A0E;KHAROSHTHI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;; -10A0F;KHAROSHTHI SIGN VISARGA;Mn;230;NSM;;;;;N;;;;; -10A10;KHAROSHTHI LETTER KA;Lo;0;R;;;;;N;;;;; -10A11;KHAROSHTHI LETTER KHA;Lo;0;R;;;;;N;;;;; -10A12;KHAROSHTHI LETTER GA;Lo;0;R;;;;;N;;;;; -10A13;KHAROSHTHI LETTER GHA;Lo;0;R;;;;;N;;;;; -10A15;KHAROSHTHI LETTER CA;Lo;0;R;;;;;N;;;;; -10A16;KHAROSHTHI LETTER CHA;Lo;0;R;;;;;N;;;;; -10A17;KHAROSHTHI LETTER JA;Lo;0;R;;;;;N;;;;; -10A19;KHAROSHTHI LETTER NYA;Lo;0;R;;;;;N;;;;; -10A1A;KHAROSHTHI LETTER TTA;Lo;0;R;;;;;N;;;;; -10A1B;KHAROSHTHI LETTER TTHA;Lo;0;R;;;;;N;;;;; -10A1C;KHAROSHTHI LETTER DDA;Lo;0;R;;;;;N;;;;; -10A1D;KHAROSHTHI LETTER DDHA;Lo;0;R;;;;;N;;;;; -10A1E;KHAROSHTHI LETTER NNA;Lo;0;R;;;;;N;;;;; -10A1F;KHAROSHTHI LETTER TA;Lo;0;R;;;;;N;;;;; -10A20;KHAROSHTHI LETTER THA;Lo;0;R;;;;;N;;;;; -10A21;KHAROSHTHI LETTER DA;Lo;0;R;;;;;N;;;;; -10A22;KHAROSHTHI LETTER DHA;Lo;0;R;;;;;N;;;;; -10A23;KHAROSHTHI LETTER NA;Lo;0;R;;;;;N;;;;; -10A24;KHAROSHTHI LETTER PA;Lo;0;R;;;;;N;;;;; -10A25;KHAROSHTHI LETTER PHA;Lo;0;R;;;;;N;;;;; -10A26;KHAROSHTHI LETTER BA;Lo;0;R;;;;;N;;;;; -10A27;KHAROSHTHI LETTER BHA;Lo;0;R;;;;;N;;;;; -10A28;KHAROSHTHI LETTER MA;Lo;0;R;;;;;N;;;;; -10A29;KHAROSHTHI LETTER YA;Lo;0;R;;;;;N;;;;; -10A2A;KHAROSHTHI LETTER RA;Lo;0;R;;;;;N;;;;; -10A2B;KHAROSHTHI LETTER LA;Lo;0;R;;;;;N;;;;; -10A2C;KHAROSHTHI LETTER VA;Lo;0;R;;;;;N;;;;; -10A2D;KHAROSHTHI LETTER SHA;Lo;0;R;;;;;N;;;;; -10A2E;KHAROSHTHI LETTER SSA;Lo;0;R;;;;;N;;;;; -10A2F;KHAROSHTHI LETTER SA;Lo;0;R;;;;;N;;;;; -10A30;KHAROSHTHI LETTER ZA;Lo;0;R;;;;;N;;;;; -10A31;KHAROSHTHI LETTER HA;Lo;0;R;;;;;N;;;;; -10A32;KHAROSHTHI LETTER KKA;Lo;0;R;;;;;N;;;;; -10A33;KHAROSHTHI LETTER TTTHA;Lo;0;R;;;;;N;;;;; -10A38;KHAROSHTHI SIGN BAR ABOVE;Mn;230;NSM;;;;;N;;;;; -10A39;KHAROSHTHI SIGN CAUDA;Mn;1;NSM;;;;;N;;;;; -10A3A;KHAROSHTHI SIGN DOT BELOW;Mn;220;NSM;;;;;N;;;;; -10A3F;KHAROSHTHI VIRAMA;Mn;9;NSM;;;;;N;;;;; -10A40;KHAROSHTHI DIGIT ONE;No;0;R;;;1;1;N;;;;; -10A41;KHAROSHTHI DIGIT TWO;No;0;R;;;2;2;N;;;;; -10A42;KHAROSHTHI DIGIT THREE;No;0;R;;;3;3;N;;;;; -10A43;KHAROSHTHI DIGIT FOUR;No;0;R;;;4;4;N;;;;; -10A44;KHAROSHTHI NUMBER TEN;No;0;R;;;;10;N;;;;; -10A45;KHAROSHTHI NUMBER TWENTY;No;0;R;;;;20;N;;;;; -10A46;KHAROSHTHI NUMBER ONE HUNDRED;No;0;R;;;;100;N;;;;; -10A47;KHAROSHTHI NUMBER ONE THOUSAND;No;0;R;;;;1000;N;;;;; -10A50;KHAROSHTHI PUNCTUATION DOT;Po;0;R;;;;;N;;;;; -10A51;KHAROSHTHI PUNCTUATION SMALL CIRCLE;Po;0;R;;;;;N;;;;; -10A52;KHAROSHTHI PUNCTUATION CIRCLE;Po;0;R;;;;;N;;;;; -10A53;KHAROSHTHI PUNCTUATION CRESCENT BAR;Po;0;R;;;;;N;;;;; -10A54;KHAROSHTHI PUNCTUATION MANGALAM;Po;0;R;;;;;N;;;;; -10A55;KHAROSHTHI PUNCTUATION LOTUS;Po;0;R;;;;;N;;;;; -10A56;KHAROSHTHI PUNCTUATION DANDA;Po;0;R;;;;;N;;;;; -10A57;KHAROSHTHI PUNCTUATION DOUBLE DANDA;Po;0;R;;;;;N;;;;; -10A58;KHAROSHTHI PUNCTUATION LINES;Po;0;R;;;;;N;;;;; -10A60;OLD SOUTH ARABIAN LETTER HE;Lo;0;R;;;;;N;;;;; -10A61;OLD SOUTH ARABIAN LETTER LAMEDH;Lo;0;R;;;;;N;;;;; -10A62;OLD SOUTH ARABIAN LETTER HETH;Lo;0;R;;;;;N;;;;; -10A63;OLD SOUTH ARABIAN LETTER MEM;Lo;0;R;;;;;N;;;;; -10A64;OLD SOUTH ARABIAN LETTER QOPH;Lo;0;R;;;;;N;;;;; -10A65;OLD SOUTH ARABIAN LETTER WAW;Lo;0;R;;;;;N;;;;; -10A66;OLD SOUTH ARABIAN LETTER SHIN;Lo;0;R;;;;;N;;;;; -10A67;OLD SOUTH ARABIAN LETTER RESH;Lo;0;R;;;;;N;;;;; -10A68;OLD SOUTH ARABIAN LETTER BETH;Lo;0;R;;;;;N;;;;; -10A69;OLD SOUTH ARABIAN LETTER TAW;Lo;0;R;;;;;N;;;;; -10A6A;OLD SOUTH ARABIAN LETTER SAT;Lo;0;R;;;;;N;;;;; -10A6B;OLD SOUTH ARABIAN LETTER KAPH;Lo;0;R;;;;;N;;;;; -10A6C;OLD SOUTH ARABIAN LETTER NUN;Lo;0;R;;;;;N;;;;; -10A6D;OLD SOUTH ARABIAN LETTER KHETH;Lo;0;R;;;;;N;;;;; -10A6E;OLD SOUTH ARABIAN LETTER SADHE;Lo;0;R;;;;;N;;;;; -10A6F;OLD SOUTH ARABIAN LETTER SAMEKH;Lo;0;R;;;;;N;;;;; -10A70;OLD SOUTH ARABIAN LETTER FE;Lo;0;R;;;;;N;;;;; -10A71;OLD SOUTH ARABIAN LETTER ALEF;Lo;0;R;;;;;N;;;;; -10A72;OLD SOUTH ARABIAN LETTER AYN;Lo;0;R;;;;;N;;;;; -10A73;OLD SOUTH ARABIAN LETTER DHADHE;Lo;0;R;;;;;N;;;;; -10A74;OLD SOUTH ARABIAN LETTER GIMEL;Lo;0;R;;;;;N;;;;; -10A75;OLD SOUTH ARABIAN LETTER DALETH;Lo;0;R;;;;;N;;;;; -10A76;OLD SOUTH ARABIAN LETTER GHAYN;Lo;0;R;;;;;N;;;;; -10A77;OLD SOUTH ARABIAN LETTER TETH;Lo;0;R;;;;;N;;;;; -10A78;OLD SOUTH ARABIAN LETTER ZAYN;Lo;0;R;;;;;N;;;;; -10A79;OLD SOUTH ARABIAN LETTER DHALETH;Lo;0;R;;;;;N;;;;; -10A7A;OLD SOUTH ARABIAN LETTER YODH;Lo;0;R;;;;;N;;;;; -10A7B;OLD SOUTH ARABIAN LETTER THAW;Lo;0;R;;;;;N;;;;; -10A7C;OLD SOUTH ARABIAN LETTER THETH;Lo;0;R;;;;;N;;;;; -10A7D;OLD SOUTH ARABIAN NUMBER ONE;No;0;R;;;;1;N;;;;; -10A7E;OLD SOUTH ARABIAN NUMBER FIFTY;No;0;R;;;;50;N;;;;; -10A7F;OLD SOUTH ARABIAN NUMERIC INDICATOR;Po;0;R;;;;;N;;;;; -10B00;AVESTAN LETTER A;Lo;0;R;;;;;N;;;;; -10B01;AVESTAN LETTER AA;Lo;0;R;;;;;N;;;;; -10B02;AVESTAN LETTER AO;Lo;0;R;;;;;N;;;;; -10B03;AVESTAN LETTER AAO;Lo;0;R;;;;;N;;;;; -10B04;AVESTAN LETTER AN;Lo;0;R;;;;;N;;;;; -10B05;AVESTAN LETTER AAN;Lo;0;R;;;;;N;;;;; -10B06;AVESTAN LETTER AE;Lo;0;R;;;;;N;;;;; -10B07;AVESTAN LETTER AEE;Lo;0;R;;;;;N;;;;; -10B08;AVESTAN LETTER E;Lo;0;R;;;;;N;;;;; -10B09;AVESTAN LETTER EE;Lo;0;R;;;;;N;;;;; -10B0A;AVESTAN LETTER O;Lo;0;R;;;;;N;;;;; -10B0B;AVESTAN LETTER OO;Lo;0;R;;;;;N;;;;; -10B0C;AVESTAN LETTER I;Lo;0;R;;;;;N;;;;; -10B0D;AVESTAN LETTER II;Lo;0;R;;;;;N;;;;; -10B0E;AVESTAN LETTER U;Lo;0;R;;;;;N;;;;; -10B0F;AVESTAN LETTER UU;Lo;0;R;;;;;N;;;;; -10B10;AVESTAN LETTER KE;Lo;0;R;;;;;N;;;;; -10B11;AVESTAN LETTER XE;Lo;0;R;;;;;N;;;;; -10B12;AVESTAN LETTER XYE;Lo;0;R;;;;;N;;;;; -10B13;AVESTAN LETTER XVE;Lo;0;R;;;;;N;;;;; -10B14;AVESTAN LETTER GE;Lo;0;R;;;;;N;;;;; -10B15;AVESTAN LETTER GGE;Lo;0;R;;;;;N;;;;; -10B16;AVESTAN LETTER GHE;Lo;0;R;;;;;N;;;;; -10B17;AVESTAN LETTER CE;Lo;0;R;;;;;N;;;;; -10B18;AVESTAN LETTER JE;Lo;0;R;;;;;N;;;;; -10B19;AVESTAN LETTER TE;Lo;0;R;;;;;N;;;;; -10B1A;AVESTAN LETTER THE;Lo;0;R;;;;;N;;;;; -10B1B;AVESTAN LETTER DE;Lo;0;R;;;;;N;;;;; -10B1C;AVESTAN LETTER DHE;Lo;0;R;;;;;N;;;;; -10B1D;AVESTAN LETTER TTE;Lo;0;R;;;;;N;;;;; -10B1E;AVESTAN LETTER PE;Lo;0;R;;;;;N;;;;; -10B1F;AVESTAN LETTER FE;Lo;0;R;;;;;N;;;;; -10B20;AVESTAN LETTER BE;Lo;0;R;;;;;N;;;;; -10B21;AVESTAN LETTER BHE;Lo;0;R;;;;;N;;;;; -10B22;AVESTAN LETTER NGE;Lo;0;R;;;;;N;;;;; -10B23;AVESTAN LETTER NGYE;Lo;0;R;;;;;N;;;;; -10B24;AVESTAN LETTER NGVE;Lo;0;R;;;;;N;;;;; -10B25;AVESTAN LETTER NE;Lo;0;R;;;;;N;;;;; -10B26;AVESTAN LETTER NYE;Lo;0;R;;;;;N;;;;; -10B27;AVESTAN LETTER NNE;Lo;0;R;;;;;N;;;;; -10B28;AVESTAN LETTER ME;Lo;0;R;;;;;N;;;;; -10B29;AVESTAN LETTER HME;Lo;0;R;;;;;N;;;;; -10B2A;AVESTAN LETTER YYE;Lo;0;R;;;;;N;;;;; -10B2B;AVESTAN LETTER YE;Lo;0;R;;;;;N;;;;; -10B2C;AVESTAN LETTER VE;Lo;0;R;;;;;N;;;;; -10B2D;AVESTAN LETTER RE;Lo;0;R;;;;;N;;;;; -10B2E;AVESTAN LETTER LE;Lo;0;R;;;;;N;;;;; -10B2F;AVESTAN LETTER SE;Lo;0;R;;;;;N;;;;; -10B30;AVESTAN LETTER ZE;Lo;0;R;;;;;N;;;;; -10B31;AVESTAN LETTER SHE;Lo;0;R;;;;;N;;;;; -10B32;AVESTAN LETTER ZHE;Lo;0;R;;;;;N;;;;; -10B33;AVESTAN LETTER SHYE;Lo;0;R;;;;;N;;;;; -10B34;AVESTAN LETTER SSHE;Lo;0;R;;;;;N;;;;; -10B35;AVESTAN LETTER HE;Lo;0;R;;;;;N;;;;; -10B39;AVESTAN ABBREVIATION MARK;Po;0;ON;;;;;N;;;;; -10B3A;TINY TWO DOTS OVER ONE DOT PUNCTUATION;Po;0;ON;;;;;N;;;;; -10B3B;SMALL TWO DOTS OVER ONE DOT PUNCTUATION;Po;0;ON;;;;;N;;;;; -10B3C;LARGE TWO DOTS OVER ONE DOT PUNCTUATION;Po;0;ON;;;;;N;;;;; -10B3D;LARGE ONE DOT OVER TWO DOTS PUNCTUATION;Po;0;ON;;;;;N;;;;; -10B3E;LARGE TWO RINGS OVER ONE RING PUNCTUATION;Po;0;ON;;;;;N;;;;; -10B3F;LARGE ONE RING OVER TWO RINGS PUNCTUATION;Po;0;ON;;;;;N;;;;; -10B40;INSCRIPTIONAL PARTHIAN LETTER ALEPH;Lo;0;R;;;;;N;;;;; -10B41;INSCRIPTIONAL PARTHIAN LETTER BETH;Lo;0;R;;;;;N;;;;; -10B42;INSCRIPTIONAL PARTHIAN LETTER GIMEL;Lo;0;R;;;;;N;;;;; -10B43;INSCRIPTIONAL PARTHIAN LETTER DALETH;Lo;0;R;;;;;N;;;;; -10B44;INSCRIPTIONAL PARTHIAN LETTER HE;Lo;0;R;;;;;N;;;;; -10B45;INSCRIPTIONAL PARTHIAN LETTER WAW;Lo;0;R;;;;;N;;;;; -10B46;INSCRIPTIONAL PARTHIAN LETTER ZAYIN;Lo;0;R;;;;;N;;;;; -10B47;INSCRIPTIONAL PARTHIAN LETTER HETH;Lo;0;R;;;;;N;;;;; -10B48;INSCRIPTIONAL PARTHIAN LETTER TETH;Lo;0;R;;;;;N;;;;; -10B49;INSCRIPTIONAL PARTHIAN LETTER YODH;Lo;0;R;;;;;N;;;;; -10B4A;INSCRIPTIONAL PARTHIAN LETTER KAPH;Lo;0;R;;;;;N;;;;; -10B4B;INSCRIPTIONAL PARTHIAN LETTER LAMEDH;Lo;0;R;;;;;N;;;;; -10B4C;INSCRIPTIONAL PARTHIAN LETTER MEM;Lo;0;R;;;;;N;;;;; -10B4D;INSCRIPTIONAL PARTHIAN LETTER NUN;Lo;0;R;;;;;N;;;;; -10B4E;INSCRIPTIONAL PARTHIAN LETTER SAMEKH;Lo;0;R;;;;;N;;;;; -10B4F;INSCRIPTIONAL PARTHIAN LETTER AYIN;Lo;0;R;;;;;N;;;;; -10B50;INSCRIPTIONAL PARTHIAN LETTER PE;Lo;0;R;;;;;N;;;;; -10B51;INSCRIPTIONAL PARTHIAN LETTER SADHE;Lo;0;R;;;;;N;;;;; -10B52;INSCRIPTIONAL PARTHIAN LETTER QOPH;Lo;0;R;;;;;N;;;;; -10B53;INSCRIPTIONAL PARTHIAN LETTER RESH;Lo;0;R;;;;;N;;;;; -10B54;INSCRIPTIONAL PARTHIAN LETTER SHIN;Lo;0;R;;;;;N;;;;; -10B55;INSCRIPTIONAL PARTHIAN LETTER TAW;Lo;0;R;;;;;N;;;;; -10B58;INSCRIPTIONAL PARTHIAN NUMBER ONE;No;0;R;;;;1;N;;;;; -10B59;INSCRIPTIONAL PARTHIAN NUMBER TWO;No;0;R;;;;2;N;;;;; -10B5A;INSCRIPTIONAL PARTHIAN NUMBER THREE;No;0;R;;;;3;N;;;;; -10B5B;INSCRIPTIONAL PARTHIAN NUMBER FOUR;No;0;R;;;;4;N;;;;; -10B5C;INSCRIPTIONAL PARTHIAN NUMBER TEN;No;0;R;;;;10;N;;;;; -10B5D;INSCRIPTIONAL PARTHIAN NUMBER TWENTY;No;0;R;;;;20;N;;;;; -10B5E;INSCRIPTIONAL PARTHIAN NUMBER ONE HUNDRED;No;0;R;;;;100;N;;;;; -10B5F;INSCRIPTIONAL PARTHIAN NUMBER ONE THOUSAND;No;0;R;;;;1000;N;;;;; -10B60;INSCRIPTIONAL PAHLAVI LETTER ALEPH;Lo;0;R;;;;;N;;;;; -10B61;INSCRIPTIONAL PAHLAVI LETTER BETH;Lo;0;R;;;;;N;;;;; -10B62;INSCRIPTIONAL PAHLAVI LETTER GIMEL;Lo;0;R;;;;;N;;;;; -10B63;INSCRIPTIONAL PAHLAVI LETTER DALETH;Lo;0;R;;;;;N;;;;; -10B64;INSCRIPTIONAL PAHLAVI LETTER HE;Lo;0;R;;;;;N;;;;; -10B65;INSCRIPTIONAL PAHLAVI LETTER WAW-AYIN-RESH;Lo;0;R;;;;;N;;;;; -10B66;INSCRIPTIONAL PAHLAVI LETTER ZAYIN;Lo;0;R;;;;;N;;;;; -10B67;INSCRIPTIONAL PAHLAVI LETTER HETH;Lo;0;R;;;;;N;;;;; -10B68;INSCRIPTIONAL PAHLAVI LETTER TETH;Lo;0;R;;;;;N;;;;; -10B69;INSCRIPTIONAL PAHLAVI LETTER YODH;Lo;0;R;;;;;N;;;;; -10B6A;INSCRIPTIONAL PAHLAVI LETTER KAPH;Lo;0;R;;;;;N;;;;; -10B6B;INSCRIPTIONAL PAHLAVI LETTER LAMEDH;Lo;0;R;;;;;N;;;;; -10B6C;INSCRIPTIONAL PAHLAVI LETTER MEM-QOPH;Lo;0;R;;;;;N;;;;; -10B6D;INSCRIPTIONAL PAHLAVI LETTER NUN;Lo;0;R;;;;;N;;;;; -10B6E;INSCRIPTIONAL PAHLAVI LETTER SAMEKH;Lo;0;R;;;;;N;;;;; -10B6F;INSCRIPTIONAL PAHLAVI LETTER PE;Lo;0;R;;;;;N;;;;; -10B70;INSCRIPTIONAL PAHLAVI LETTER SADHE;Lo;0;R;;;;;N;;;;; -10B71;INSCRIPTIONAL PAHLAVI LETTER SHIN;Lo;0;R;;;;;N;;;;; -10B72;INSCRIPTIONAL PAHLAVI LETTER TAW;Lo;0;R;;;;;N;;;;; -10B78;INSCRIPTIONAL PAHLAVI NUMBER ONE;No;0;R;;;;1;N;;;;; -10B79;INSCRIPTIONAL PAHLAVI NUMBER TWO;No;0;R;;;;2;N;;;;; -10B7A;INSCRIPTIONAL PAHLAVI NUMBER THREE;No;0;R;;;;3;N;;;;; -10B7B;INSCRIPTIONAL PAHLAVI NUMBER FOUR;No;0;R;;;;4;N;;;;; -10B7C;INSCRIPTIONAL PAHLAVI NUMBER TEN;No;0;R;;;;10;N;;;;; -10B7D;INSCRIPTIONAL PAHLAVI NUMBER TWENTY;No;0;R;;;;20;N;;;;; -10B7E;INSCRIPTIONAL PAHLAVI NUMBER ONE HUNDRED;No;0;R;;;;100;N;;;;; -10B7F;INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND;No;0;R;;;;1000;N;;;;; -10C00;OLD TURKIC LETTER ORKHON A;Lo;0;R;;;;;N;;;;; -10C01;OLD TURKIC LETTER YENISEI A;Lo;0;R;;;;;N;;;;; -10C02;OLD TURKIC LETTER YENISEI AE;Lo;0;R;;;;;N;;;;; -10C03;OLD TURKIC LETTER ORKHON I;Lo;0;R;;;;;N;;;;; -10C04;OLD TURKIC LETTER YENISEI I;Lo;0;R;;;;;N;;;;; -10C05;OLD TURKIC LETTER YENISEI E;Lo;0;R;;;;;N;;;;; -10C06;OLD TURKIC LETTER ORKHON O;Lo;0;R;;;;;N;;;;; -10C07;OLD TURKIC LETTER ORKHON OE;Lo;0;R;;;;;N;;;;; -10C08;OLD TURKIC LETTER YENISEI OE;Lo;0;R;;;;;N;;;;; -10C09;OLD TURKIC LETTER ORKHON AB;Lo;0;R;;;;;N;;;;; -10C0A;OLD TURKIC LETTER YENISEI AB;Lo;0;R;;;;;N;;;;; -10C0B;OLD TURKIC LETTER ORKHON AEB;Lo;0;R;;;;;N;;;;; -10C0C;OLD TURKIC LETTER YENISEI AEB;Lo;0;R;;;;;N;;;;; -10C0D;OLD TURKIC LETTER ORKHON AG;Lo;0;R;;;;;N;;;;; -10C0E;OLD TURKIC LETTER YENISEI AG;Lo;0;R;;;;;N;;;;; -10C0F;OLD TURKIC LETTER ORKHON AEG;Lo;0;R;;;;;N;;;;; -10C10;OLD TURKIC LETTER YENISEI AEG;Lo;0;R;;;;;N;;;;; -10C11;OLD TURKIC LETTER ORKHON AD;Lo;0;R;;;;;N;;;;; -10C12;OLD TURKIC LETTER YENISEI AD;Lo;0;R;;;;;N;;;;; -10C13;OLD TURKIC LETTER ORKHON AED;Lo;0;R;;;;;N;;;;; -10C14;OLD TURKIC LETTER ORKHON EZ;Lo;0;R;;;;;N;;;;; -10C15;OLD TURKIC LETTER YENISEI EZ;Lo;0;R;;;;;N;;;;; -10C16;OLD TURKIC LETTER ORKHON AY;Lo;0;R;;;;;N;;;;; -10C17;OLD TURKIC LETTER YENISEI AY;Lo;0;R;;;;;N;;;;; -10C18;OLD TURKIC LETTER ORKHON AEY;Lo;0;R;;;;;N;;;;; -10C19;OLD TURKIC LETTER YENISEI AEY;Lo;0;R;;;;;N;;;;; -10C1A;OLD TURKIC LETTER ORKHON AEK;Lo;0;R;;;;;N;;;;; -10C1B;OLD TURKIC LETTER YENISEI AEK;Lo;0;R;;;;;N;;;;; -10C1C;OLD TURKIC LETTER ORKHON OEK;Lo;0;R;;;;;N;;;;; -10C1D;OLD TURKIC LETTER YENISEI OEK;Lo;0;R;;;;;N;;;;; -10C1E;OLD TURKIC LETTER ORKHON AL;Lo;0;R;;;;;N;;;;; -10C1F;OLD TURKIC LETTER YENISEI AL;Lo;0;R;;;;;N;;;;; -10C20;OLD TURKIC LETTER ORKHON AEL;Lo;0;R;;;;;N;;;;; -10C21;OLD TURKIC LETTER ORKHON ELT;Lo;0;R;;;;;N;;;;; -10C22;OLD TURKIC LETTER ORKHON EM;Lo;0;R;;;;;N;;;;; -10C23;OLD TURKIC LETTER ORKHON AN;Lo;0;R;;;;;N;;;;; -10C24;OLD TURKIC LETTER ORKHON AEN;Lo;0;R;;;;;N;;;;; -10C25;OLD TURKIC LETTER YENISEI AEN;Lo;0;R;;;;;N;;;;; -10C26;OLD TURKIC LETTER ORKHON ENT;Lo;0;R;;;;;N;;;;; -10C27;OLD TURKIC LETTER YENISEI ENT;Lo;0;R;;;;;N;;;;; -10C28;OLD TURKIC LETTER ORKHON ENC;Lo;0;R;;;;;N;;;;; -10C29;OLD TURKIC LETTER YENISEI ENC;Lo;0;R;;;;;N;;;;; -10C2A;OLD TURKIC LETTER ORKHON ENY;Lo;0;R;;;;;N;;;;; -10C2B;OLD TURKIC LETTER YENISEI ENY;Lo;0;R;;;;;N;;;;; -10C2C;OLD TURKIC LETTER YENISEI ANG;Lo;0;R;;;;;N;;;;; -10C2D;OLD TURKIC LETTER ORKHON ENG;Lo;0;R;;;;;N;;;;; -10C2E;OLD TURKIC LETTER YENISEI AENG;Lo;0;R;;;;;N;;;;; -10C2F;OLD TURKIC LETTER ORKHON EP;Lo;0;R;;;;;N;;;;; -10C30;OLD TURKIC LETTER ORKHON OP;Lo;0;R;;;;;N;;;;; -10C31;OLD TURKIC LETTER ORKHON IC;Lo;0;R;;;;;N;;;;; -10C32;OLD TURKIC LETTER ORKHON EC;Lo;0;R;;;;;N;;;;; -10C33;OLD TURKIC LETTER YENISEI EC;Lo;0;R;;;;;N;;;;; -10C34;OLD TURKIC LETTER ORKHON AQ;Lo;0;R;;;;;N;;;;; -10C35;OLD TURKIC LETTER YENISEI AQ;Lo;0;R;;;;;N;;;;; -10C36;OLD TURKIC LETTER ORKHON IQ;Lo;0;R;;;;;N;;;;; -10C37;OLD TURKIC LETTER YENISEI IQ;Lo;0;R;;;;;N;;;;; -10C38;OLD TURKIC LETTER ORKHON OQ;Lo;0;R;;;;;N;;;;; -10C39;OLD TURKIC LETTER YENISEI OQ;Lo;0;R;;;;;N;;;;; -10C3A;OLD TURKIC LETTER ORKHON AR;Lo;0;R;;;;;N;;;;; -10C3B;OLD TURKIC LETTER YENISEI AR;Lo;0;R;;;;;N;;;;; -10C3C;OLD TURKIC LETTER ORKHON AER;Lo;0;R;;;;;N;;;;; -10C3D;OLD TURKIC LETTER ORKHON AS;Lo;0;R;;;;;N;;;;; -10C3E;OLD TURKIC LETTER ORKHON AES;Lo;0;R;;;;;N;;;;; -10C3F;OLD TURKIC LETTER ORKHON ASH;Lo;0;R;;;;;N;;;;; -10C40;OLD TURKIC LETTER YENISEI ASH;Lo;0;R;;;;;N;;;;; -10C41;OLD TURKIC LETTER ORKHON ESH;Lo;0;R;;;;;N;;;;; -10C42;OLD TURKIC LETTER YENISEI ESH;Lo;0;R;;;;;N;;;;; -10C43;OLD TURKIC LETTER ORKHON AT;Lo;0;R;;;;;N;;;;; -10C44;OLD TURKIC LETTER YENISEI AT;Lo;0;R;;;;;N;;;;; -10C45;OLD TURKIC LETTER ORKHON AET;Lo;0;R;;;;;N;;;;; -10C46;OLD TURKIC LETTER YENISEI AET;Lo;0;R;;;;;N;;;;; -10C47;OLD TURKIC LETTER ORKHON OT;Lo;0;R;;;;;N;;;;; -10C48;OLD TURKIC LETTER ORKHON BASH;Lo;0;R;;;;;N;;;;; -10E60;RUMI DIGIT ONE;No;0;AN;;;1;1;N;;;;; -10E61;RUMI DIGIT TWO;No;0;AN;;;2;2;N;;;;; -10E62;RUMI DIGIT THREE;No;0;AN;;;3;3;N;;;;; -10E63;RUMI DIGIT FOUR;No;0;AN;;;4;4;N;;;;; -10E64;RUMI DIGIT FIVE;No;0;AN;;;5;5;N;;;;; -10E65;RUMI DIGIT SIX;No;0;AN;;;6;6;N;;;;; -10E66;RUMI DIGIT SEVEN;No;0;AN;;;7;7;N;;;;; -10E67;RUMI DIGIT EIGHT;No;0;AN;;;8;8;N;;;;; -10E68;RUMI DIGIT NINE;No;0;AN;;;9;9;N;;;;; -10E69;RUMI NUMBER TEN;No;0;AN;;;;10;N;;;;; -10E6A;RUMI NUMBER TWENTY;No;0;AN;;;;20;N;;;;; -10E6B;RUMI NUMBER THIRTY;No;0;AN;;;;30;N;;;;; -10E6C;RUMI NUMBER FORTY;No;0;AN;;;;40;N;;;;; -10E6D;RUMI NUMBER FIFTY;No;0;AN;;;;50;N;;;;; -10E6E;RUMI NUMBER SIXTY;No;0;AN;;;;60;N;;;;; -10E6F;RUMI NUMBER SEVENTY;No;0;AN;;;;70;N;;;;; -10E70;RUMI NUMBER EIGHTY;No;0;AN;;;;80;N;;;;; -10E71;RUMI NUMBER NINETY;No;0;AN;;;;90;N;;;;; -10E72;RUMI NUMBER ONE HUNDRED;No;0;AN;;;;100;N;;;;; -10E73;RUMI NUMBER TWO HUNDRED;No;0;AN;;;;200;N;;;;; -10E74;RUMI NUMBER THREE HUNDRED;No;0;AN;;;;300;N;;;;; -10E75;RUMI NUMBER FOUR HUNDRED;No;0;AN;;;;400;N;;;;; -10E76;RUMI NUMBER FIVE HUNDRED;No;0;AN;;;;500;N;;;;; -10E77;RUMI NUMBER SIX HUNDRED;No;0;AN;;;;600;N;;;;; -10E78;RUMI NUMBER SEVEN HUNDRED;No;0;AN;;;;700;N;;;;; -10E79;RUMI NUMBER EIGHT HUNDRED;No;0;AN;;;;800;N;;;;; -10E7A;RUMI NUMBER NINE HUNDRED;No;0;AN;;;;900;N;;;;; -10E7B;RUMI FRACTION ONE HALF;No;0;AN;;;;1/2;N;;;;; -10E7C;RUMI FRACTION ONE QUARTER;No;0;AN;;;;1/4;N;;;;; -10E7D;RUMI FRACTION ONE THIRD;No;0;AN;;;;1/3;N;;;;; -10E7E;RUMI FRACTION TWO THIRDS;No;0;AN;;;;2/3;N;;;;; -11080;KAITHI SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;; -11081;KAITHI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;; -11082;KAITHI SIGN VISARGA;Mc;0;L;;;;;N;;;;; -11083;KAITHI LETTER A;Lo;0;L;;;;;N;;;;; -11084;KAITHI LETTER AA;Lo;0;L;;;;;N;;;;; -11085;KAITHI LETTER I;Lo;0;L;;;;;N;;;;; -11086;KAITHI LETTER II;Lo;0;L;;;;;N;;;;; -11087;KAITHI LETTER U;Lo;0;L;;;;;N;;;;; -11088;KAITHI LETTER UU;Lo;0;L;;;;;N;;;;; -11089;KAITHI LETTER E;Lo;0;L;;;;;N;;;;; -1108A;KAITHI LETTER AI;Lo;0;L;;;;;N;;;;; -1108B;KAITHI LETTER O;Lo;0;L;;;;;N;;;;; -1108C;KAITHI LETTER AU;Lo;0;L;;;;;N;;;;; -1108D;KAITHI LETTER KA;Lo;0;L;;;;;N;;;;; -1108E;KAITHI LETTER KHA;Lo;0;L;;;;;N;;;;; -1108F;KAITHI LETTER GA;Lo;0;L;;;;;N;;;;; -11090;KAITHI LETTER GHA;Lo;0;L;;;;;N;;;;; -11091;KAITHI LETTER NGA;Lo;0;L;;;;;N;;;;; -11092;KAITHI LETTER CA;Lo;0;L;;;;;N;;;;; -11093;KAITHI LETTER CHA;Lo;0;L;;;;;N;;;;; -11094;KAITHI LETTER JA;Lo;0;L;;;;;N;;;;; -11095;KAITHI LETTER JHA;Lo;0;L;;;;;N;;;;; -11096;KAITHI LETTER NYA;Lo;0;L;;;;;N;;;;; -11097;KAITHI LETTER TTA;Lo;0;L;;;;;N;;;;; -11098;KAITHI LETTER TTHA;Lo;0;L;;;;;N;;;;; -11099;KAITHI LETTER DDA;Lo;0;L;;;;;N;;;;; -1109A;KAITHI LETTER DDDHA;Lo;0;L;11099 110BA;;;;N;;;;; -1109B;KAITHI LETTER DDHA;Lo;0;L;;;;;N;;;;; -1109C;KAITHI LETTER RHA;Lo;0;L;1109B 110BA;;;;N;;;;; -1109D;KAITHI LETTER NNA;Lo;0;L;;;;;N;;;;; -1109E;KAITHI LETTER TA;Lo;0;L;;;;;N;;;;; -1109F;KAITHI LETTER THA;Lo;0;L;;;;;N;;;;; -110A0;KAITHI LETTER DA;Lo;0;L;;;;;N;;;;; -110A1;KAITHI LETTER DHA;Lo;0;L;;;;;N;;;;; -110A2;KAITHI LETTER NA;Lo;0;L;;;;;N;;;;; -110A3;KAITHI LETTER PA;Lo;0;L;;;;;N;;;;; -110A4;KAITHI LETTER PHA;Lo;0;L;;;;;N;;;;; -110A5;KAITHI LETTER BA;Lo;0;L;;;;;N;;;;; -110A6;KAITHI LETTER BHA;Lo;0;L;;;;;N;;;;; -110A7;KAITHI LETTER MA;Lo;0;L;;;;;N;;;;; -110A8;KAITHI LETTER YA;Lo;0;L;;;;;N;;;;; -110A9;KAITHI LETTER RA;Lo;0;L;;;;;N;;;;; -110AA;KAITHI LETTER LA;Lo;0;L;;;;;N;;;;; -110AB;KAITHI LETTER VA;Lo;0;L;110A5 110BA;;;;N;;;;; -110AC;KAITHI LETTER SHA;Lo;0;L;;;;;N;;;;; -110AD;KAITHI LETTER SSA;Lo;0;L;;;;;N;;;;; -110AE;KAITHI LETTER SA;Lo;0;L;;;;;N;;;;; -110AF;KAITHI LETTER HA;Lo;0;L;;;;;N;;;;; -110B0;KAITHI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;; -110B1;KAITHI VOWEL SIGN I;Mc;0;L;;;;;N;;;;; -110B2;KAITHI VOWEL SIGN II;Mc;0;L;;;;;N;;;;; -110B3;KAITHI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; -110B4;KAITHI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;; -110B5;KAITHI VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;; -110B6;KAITHI VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;; -110B7;KAITHI VOWEL SIGN O;Mc;0;L;;;;;N;;;;; -110B8;KAITHI VOWEL SIGN AU;Mc;0;L;;;;;N;;;;; -110B9;KAITHI SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;; -110BA;KAITHI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;; -110BB;KAITHI ABBREVIATION SIGN;Po;0;L;;;;;N;;;;; -110BC;KAITHI ENUMERATION SIGN;Po;0;L;;;;;N;;;;; -110BD;KAITHI NUMBER SIGN;Cf;0;L;;;;;N;;;;; -110BE;KAITHI SECTION MARK;Po;0;L;;;;;N;;;;; -110BF;KAITHI DOUBLE SECTION MARK;Po;0;L;;;;;N;;;;; -110C0;KAITHI DANDA;Po;0;L;;;;;N;;;;; -110C1;KAITHI DOUBLE DANDA;Po;0;L;;;;;N;;;;; -12000;CUNEIFORM SIGN A;Lo;0;L;;;;;N;;;;; -12001;CUNEIFORM SIGN A TIMES A;Lo;0;L;;;;;N;;;;; -12002;CUNEIFORM SIGN A TIMES BAD;Lo;0;L;;;;;N;;;;; -12003;CUNEIFORM SIGN A TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;; -12004;CUNEIFORM SIGN A TIMES HA;Lo;0;L;;;;;N;;;;; -12005;CUNEIFORM SIGN A TIMES IGI;Lo;0;L;;;;;N;;;;; -12006;CUNEIFORM SIGN A TIMES LAGAR GUNU;Lo;0;L;;;;;N;;;;; -12007;CUNEIFORM SIGN A TIMES MUSH;Lo;0;L;;;;;N;;;;; -12008;CUNEIFORM SIGN A TIMES SAG;Lo;0;L;;;;;N;;;;; -12009;CUNEIFORM SIGN A2;Lo;0;L;;;;;N;;;;; -1200A;CUNEIFORM SIGN AB;Lo;0;L;;;;;N;;;;; -1200B;CUNEIFORM SIGN AB TIMES ASH2;Lo;0;L;;;;;N;;;;; -1200C;CUNEIFORM SIGN AB TIMES DUN3 GUNU;Lo;0;L;;;;;N;;;;; -1200D;CUNEIFORM SIGN AB TIMES GAL;Lo;0;L;;;;;N;;;;; -1200E;CUNEIFORM SIGN AB TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;; -1200F;CUNEIFORM SIGN AB TIMES HA;Lo;0;L;;;;;N;;;;; -12010;CUNEIFORM SIGN AB TIMES IGI GUNU;Lo;0;L;;;;;N;;;;; -12011;CUNEIFORM SIGN AB TIMES IMIN;Lo;0;L;;;;;N;;;;; -12012;CUNEIFORM SIGN AB TIMES LAGAB;Lo;0;L;;;;;N;;;;; -12013;CUNEIFORM SIGN AB TIMES SHESH;Lo;0;L;;;;;N;;;;; -12014;CUNEIFORM SIGN AB TIMES U PLUS U PLUS U;Lo;0;L;;;;;N;;;;; -12015;CUNEIFORM SIGN AB GUNU;Lo;0;L;;;;;N;;;;; -12016;CUNEIFORM SIGN AB2;Lo;0;L;;;;;N;;;;; -12017;CUNEIFORM SIGN AB2 TIMES BALAG;Lo;0;L;;;;;N;;;;; -12018;CUNEIFORM SIGN AB2 TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;; -12019;CUNEIFORM SIGN AB2 TIMES ME PLUS EN;Lo;0;L;;;;;N;;;;; -1201A;CUNEIFORM SIGN AB2 TIMES SHA3;Lo;0;L;;;;;N;;;;; -1201B;CUNEIFORM SIGN AB2 TIMES TAK4;Lo;0;L;;;;;N;;;;; -1201C;CUNEIFORM SIGN AD;Lo;0;L;;;;;N;;;;; -1201D;CUNEIFORM SIGN AK;Lo;0;L;;;;;N;;;;; -1201E;CUNEIFORM SIGN AK TIMES ERIN2;Lo;0;L;;;;;N;;;;; -1201F;CUNEIFORM SIGN AK TIMES SHITA PLUS GISH;Lo;0;L;;;;;N;;;;; -12020;CUNEIFORM SIGN AL;Lo;0;L;;;;;N;;;;; -12021;CUNEIFORM SIGN AL TIMES AL;Lo;0;L;;;;;N;;;;; -12022;CUNEIFORM SIGN AL TIMES DIM2;Lo;0;L;;;;;N;;;;; -12023;CUNEIFORM SIGN AL TIMES GISH;Lo;0;L;;;;;N;;;;; -12024;CUNEIFORM SIGN AL TIMES HA;Lo;0;L;;;;;N;;;;; -12025;CUNEIFORM SIGN AL TIMES KAD3;Lo;0;L;;;;;N;;;;; -12026;CUNEIFORM SIGN AL TIMES KI;Lo;0;L;;;;;N;;;;; -12027;CUNEIFORM SIGN AL TIMES SHE;Lo;0;L;;;;;N;;;;; -12028;CUNEIFORM SIGN AL TIMES USH;Lo;0;L;;;;;N;;;;; -12029;CUNEIFORM SIGN ALAN;Lo;0;L;;;;;N;;;;; -1202A;CUNEIFORM SIGN ALEPH;Lo;0;L;;;;;N;;;;; -1202B;CUNEIFORM SIGN AMAR;Lo;0;L;;;;;N;;;;; -1202C;CUNEIFORM SIGN AMAR TIMES SHE;Lo;0;L;;;;;N;;;;; -1202D;CUNEIFORM SIGN AN;Lo;0;L;;;;;N;;;;; -1202E;CUNEIFORM SIGN AN OVER AN;Lo;0;L;;;;;N;;;;; -1202F;CUNEIFORM SIGN AN THREE TIMES;Lo;0;L;;;;;N;;;;; -12030;CUNEIFORM SIGN AN PLUS NAGA OPPOSING AN PLUS NAGA;Lo;0;L;;;;;N;;;;; -12031;CUNEIFORM SIGN AN PLUS NAGA SQUARED;Lo;0;L;;;;;N;;;;; -12032;CUNEIFORM SIGN ANSHE;Lo;0;L;;;;;N;;;;; -12033;CUNEIFORM SIGN APIN;Lo;0;L;;;;;N;;;;; -12034;CUNEIFORM SIGN ARAD;Lo;0;L;;;;;N;;;;; -12035;CUNEIFORM SIGN ARAD TIMES KUR;Lo;0;L;;;;;N;;;;; -12036;CUNEIFORM SIGN ARKAB;Lo;0;L;;;;;N;;;;; -12037;CUNEIFORM SIGN ASAL2;Lo;0;L;;;;;N;;;;; -12038;CUNEIFORM SIGN ASH;Lo;0;L;;;;;N;;;;; -12039;CUNEIFORM SIGN ASH ZIDA TENU;Lo;0;L;;;;;N;;;;; -1203A;CUNEIFORM SIGN ASH KABA TENU;Lo;0;L;;;;;N;;;;; -1203B;CUNEIFORM SIGN ASH OVER ASH TUG2 OVER TUG2 TUG2 OVER TUG2 PAP;Lo;0;L;;;;;N;;;;; -1203C;CUNEIFORM SIGN ASH OVER ASH OVER ASH;Lo;0;L;;;;;N;;;;; -1203D;CUNEIFORM SIGN ASH OVER ASH OVER ASH CROSSING ASH OVER ASH OVER ASH;Lo;0;L;;;;;N;;;;; -1203E;CUNEIFORM SIGN ASH2;Lo;0;L;;;;;N;;;;; -1203F;CUNEIFORM SIGN ASHGAB;Lo;0;L;;;;;N;;;;; -12040;CUNEIFORM SIGN BA;Lo;0;L;;;;;N;;;;; -12041;CUNEIFORM SIGN BAD;Lo;0;L;;;;;N;;;;; -12042;CUNEIFORM SIGN BAG3;Lo;0;L;;;;;N;;;;; -12043;CUNEIFORM SIGN BAHAR2;Lo;0;L;;;;;N;;;;; -12044;CUNEIFORM SIGN BAL;Lo;0;L;;;;;N;;;;; -12045;CUNEIFORM SIGN BAL OVER BAL;Lo;0;L;;;;;N;;;;; -12046;CUNEIFORM SIGN BALAG;Lo;0;L;;;;;N;;;;; -12047;CUNEIFORM SIGN BAR;Lo;0;L;;;;;N;;;;; -12048;CUNEIFORM SIGN BARA2;Lo;0;L;;;;;N;;;;; -12049;CUNEIFORM SIGN BI;Lo;0;L;;;;;N;;;;; -1204A;CUNEIFORM SIGN BI TIMES A;Lo;0;L;;;;;N;;;;; -1204B;CUNEIFORM SIGN BI TIMES GAR;Lo;0;L;;;;;N;;;;; -1204C;CUNEIFORM SIGN BI TIMES IGI GUNU;Lo;0;L;;;;;N;;;;; -1204D;CUNEIFORM SIGN BU;Lo;0;L;;;;;N;;;;; -1204E;CUNEIFORM SIGN BU OVER BU AB;Lo;0;L;;;;;N;;;;; -1204F;CUNEIFORM SIGN BU OVER BU UN;Lo;0;L;;;;;N;;;;; -12050;CUNEIFORM SIGN BU CROSSING BU;Lo;0;L;;;;;N;;;;; -12051;CUNEIFORM SIGN BULUG;Lo;0;L;;;;;N;;;;; -12052;CUNEIFORM SIGN BULUG OVER BULUG;Lo;0;L;;;;;N;;;;; -12053;CUNEIFORM SIGN BUR;Lo;0;L;;;;;N;;;;; -12054;CUNEIFORM SIGN BUR2;Lo;0;L;;;;;N;;;;; -12055;CUNEIFORM SIGN DA;Lo;0;L;;;;;N;;;;; -12056;CUNEIFORM SIGN DAG;Lo;0;L;;;;;N;;;;; -12057;CUNEIFORM SIGN DAG KISIM5 TIMES A PLUS MASH;Lo;0;L;;;;;N;;;;; -12058;CUNEIFORM SIGN DAG KISIM5 TIMES AMAR;Lo;0;L;;;;;N;;;;; -12059;CUNEIFORM SIGN DAG KISIM5 TIMES BALAG;Lo;0;L;;;;;N;;;;; -1205A;CUNEIFORM SIGN DAG KISIM5 TIMES BI;Lo;0;L;;;;;N;;;;; -1205B;CUNEIFORM SIGN DAG KISIM5 TIMES GA;Lo;0;L;;;;;N;;;;; -1205C;CUNEIFORM SIGN DAG KISIM5 TIMES GA PLUS MASH;Lo;0;L;;;;;N;;;;; -1205D;CUNEIFORM SIGN DAG KISIM5 TIMES GI;Lo;0;L;;;;;N;;;;; -1205E;CUNEIFORM SIGN DAG KISIM5 TIMES GIR2;Lo;0;L;;;;;N;;;;; -1205F;CUNEIFORM SIGN DAG KISIM5 TIMES GUD;Lo;0;L;;;;;N;;;;; -12060;CUNEIFORM SIGN DAG KISIM5 TIMES HA;Lo;0;L;;;;;N;;;;; -12061;CUNEIFORM SIGN DAG KISIM5 TIMES IR;Lo;0;L;;;;;N;;;;; -12062;CUNEIFORM SIGN DAG KISIM5 TIMES IR PLUS LU;Lo;0;L;;;;;N;;;;; -12063;CUNEIFORM SIGN DAG KISIM5 TIMES KAK;Lo;0;L;;;;;N;;;;; -12064;CUNEIFORM SIGN DAG KISIM5 TIMES LA;Lo;0;L;;;;;N;;;;; -12065;CUNEIFORM SIGN DAG KISIM5 TIMES LU;Lo;0;L;;;;;N;;;;; -12066;CUNEIFORM SIGN DAG KISIM5 TIMES LU PLUS MASH2;Lo;0;L;;;;;N;;;;; -12067;CUNEIFORM SIGN DAG KISIM5 TIMES LUM;Lo;0;L;;;;;N;;;;; -12068;CUNEIFORM SIGN DAG KISIM5 TIMES NE;Lo;0;L;;;;;N;;;;; -12069;CUNEIFORM SIGN DAG KISIM5 TIMES PAP PLUS PAP;Lo;0;L;;;;;N;;;;; -1206A;CUNEIFORM SIGN DAG KISIM5 TIMES SI;Lo;0;L;;;;;N;;;;; -1206B;CUNEIFORM SIGN DAG KISIM5 TIMES TAK4;Lo;0;L;;;;;N;;;;; -1206C;CUNEIFORM SIGN DAG KISIM5 TIMES U2 PLUS GIR2;Lo;0;L;;;;;N;;;;; -1206D;CUNEIFORM SIGN DAG KISIM5 TIMES USH;Lo;0;L;;;;;N;;;;; -1206E;CUNEIFORM SIGN DAM;Lo;0;L;;;;;N;;;;; -1206F;CUNEIFORM SIGN DAR;Lo;0;L;;;;;N;;;;; -12070;CUNEIFORM SIGN DARA3;Lo;0;L;;;;;N;;;;; -12071;CUNEIFORM SIGN DARA4;Lo;0;L;;;;;N;;;;; -12072;CUNEIFORM SIGN DI;Lo;0;L;;;;;N;;;;; -12073;CUNEIFORM SIGN DIB;Lo;0;L;;;;;N;;;;; -12074;CUNEIFORM SIGN DIM;Lo;0;L;;;;;N;;;;; -12075;CUNEIFORM SIGN DIM TIMES SHE;Lo;0;L;;;;;N;;;;; -12076;CUNEIFORM SIGN DIM2;Lo;0;L;;;;;N;;;;; -12077;CUNEIFORM SIGN DIN;Lo;0;L;;;;;N;;;;; -12078;CUNEIFORM SIGN DIN KASKAL U GUNU DISH;Lo;0;L;;;;;N;;;;; -12079;CUNEIFORM SIGN DISH;Lo;0;L;;;;;N;;;;; -1207A;CUNEIFORM SIGN DU;Lo;0;L;;;;;N;;;;; -1207B;CUNEIFORM SIGN DU OVER DU;Lo;0;L;;;;;N;;;;; -1207C;CUNEIFORM SIGN DU GUNU;Lo;0;L;;;;;N;;;;; -1207D;CUNEIFORM SIGN DU SHESHIG;Lo;0;L;;;;;N;;;;; -1207E;CUNEIFORM SIGN DUB;Lo;0;L;;;;;N;;;;; -1207F;CUNEIFORM SIGN DUB TIMES ESH2;Lo;0;L;;;;;N;;;;; -12080;CUNEIFORM SIGN DUB2;Lo;0;L;;;;;N;;;;; -12081;CUNEIFORM SIGN DUG;Lo;0;L;;;;;N;;;;; -12082;CUNEIFORM SIGN DUGUD;Lo;0;L;;;;;N;;;;; -12083;CUNEIFORM SIGN DUH;Lo;0;L;;;;;N;;;;; -12084;CUNEIFORM SIGN DUN;Lo;0;L;;;;;N;;;;; -12085;CUNEIFORM SIGN DUN3;Lo;0;L;;;;;N;;;;; -12086;CUNEIFORM SIGN DUN3 GUNU;Lo;0;L;;;;;N;;;;; -12087;CUNEIFORM SIGN DUN3 GUNU GUNU;Lo;0;L;;;;;N;;;;; -12088;CUNEIFORM SIGN DUN4;Lo;0;L;;;;;N;;;;; -12089;CUNEIFORM SIGN DUR2;Lo;0;L;;;;;N;;;;; -1208A;CUNEIFORM SIGN E;Lo;0;L;;;;;N;;;;; -1208B;CUNEIFORM SIGN E TIMES PAP;Lo;0;L;;;;;N;;;;; -1208C;CUNEIFORM SIGN E OVER E NUN OVER NUN;Lo;0;L;;;;;N;;;;; -1208D;CUNEIFORM SIGN E2;Lo;0;L;;;;;N;;;;; -1208E;CUNEIFORM SIGN E2 TIMES A PLUS HA PLUS DA;Lo;0;L;;;;;N;;;;; -1208F;CUNEIFORM SIGN E2 TIMES GAR;Lo;0;L;;;;;N;;;;; -12090;CUNEIFORM SIGN E2 TIMES MI;Lo;0;L;;;;;N;;;;; -12091;CUNEIFORM SIGN E2 TIMES SAL;Lo;0;L;;;;;N;;;;; -12092;CUNEIFORM SIGN E2 TIMES SHE;Lo;0;L;;;;;N;;;;; -12093;CUNEIFORM SIGN E2 TIMES U;Lo;0;L;;;;;N;;;;; -12094;CUNEIFORM SIGN EDIN;Lo;0;L;;;;;N;;;;; -12095;CUNEIFORM SIGN EGIR;Lo;0;L;;;;;N;;;;; -12096;CUNEIFORM SIGN EL;Lo;0;L;;;;;N;;;;; -12097;CUNEIFORM SIGN EN;Lo;0;L;;;;;N;;;;; -12098;CUNEIFORM SIGN EN TIMES GAN2;Lo;0;L;;;;;N;;;;; -12099;CUNEIFORM SIGN EN TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;; -1209A;CUNEIFORM SIGN EN TIMES ME;Lo;0;L;;;;;N;;;;; -1209B;CUNEIFORM SIGN EN CROSSING EN;Lo;0;L;;;;;N;;;;; -1209C;CUNEIFORM SIGN EN OPPOSING EN;Lo;0;L;;;;;N;;;;; -1209D;CUNEIFORM SIGN EN SQUARED;Lo;0;L;;;;;N;;;;; -1209E;CUNEIFORM SIGN EREN;Lo;0;L;;;;;N;;;;; -1209F;CUNEIFORM SIGN ERIN2;Lo;0;L;;;;;N;;;;; -120A0;CUNEIFORM SIGN ESH2;Lo;0;L;;;;;N;;;;; -120A1;CUNEIFORM SIGN EZEN;Lo;0;L;;;;;N;;;;; -120A2;CUNEIFORM SIGN EZEN TIMES A;Lo;0;L;;;;;N;;;;; -120A3;CUNEIFORM SIGN EZEN TIMES A PLUS LAL;Lo;0;L;;;;;N;;;;; -120A4;CUNEIFORM SIGN EZEN TIMES A PLUS LAL TIMES LAL;Lo;0;L;;;;;N;;;;; -120A5;CUNEIFORM SIGN EZEN TIMES AN;Lo;0;L;;;;;N;;;;; -120A6;CUNEIFORM SIGN EZEN TIMES BAD;Lo;0;L;;;;;N;;;;; -120A7;CUNEIFORM SIGN EZEN TIMES DUN3 GUNU;Lo;0;L;;;;;N;;;;; -120A8;CUNEIFORM SIGN EZEN TIMES DUN3 GUNU GUNU;Lo;0;L;;;;;N;;;;; -120A9;CUNEIFORM SIGN EZEN TIMES HA;Lo;0;L;;;;;N;;;;; -120AA;CUNEIFORM SIGN EZEN TIMES HA GUNU;Lo;0;L;;;;;N;;;;; -120AB;CUNEIFORM SIGN EZEN TIMES IGI GUNU;Lo;0;L;;;;;N;;;;; -120AC;CUNEIFORM SIGN EZEN TIMES KASKAL;Lo;0;L;;;;;N;;;;; -120AD;CUNEIFORM SIGN EZEN TIMES KASKAL SQUARED;Lo;0;L;;;;;N;;;;; -120AE;CUNEIFORM SIGN EZEN TIMES KU3;Lo;0;L;;;;;N;;;;; -120AF;CUNEIFORM SIGN EZEN TIMES LA;Lo;0;L;;;;;N;;;;; -120B0;CUNEIFORM SIGN EZEN TIMES LAL TIMES LAL;Lo;0;L;;;;;N;;;;; -120B1;CUNEIFORM SIGN EZEN TIMES LI;Lo;0;L;;;;;N;;;;; -120B2;CUNEIFORM SIGN EZEN TIMES LU;Lo;0;L;;;;;N;;;;; -120B3;CUNEIFORM SIGN EZEN TIMES U2;Lo;0;L;;;;;N;;;;; -120B4;CUNEIFORM SIGN EZEN TIMES UD;Lo;0;L;;;;;N;;;;; -120B5;CUNEIFORM SIGN GA;Lo;0;L;;;;;N;;;;; -120B6;CUNEIFORM SIGN GA GUNU;Lo;0;L;;;;;N;;;;; -120B7;CUNEIFORM SIGN GA2;Lo;0;L;;;;;N;;;;; -120B8;CUNEIFORM SIGN GA2 TIMES A PLUS DA PLUS HA;Lo;0;L;;;;;N;;;;; -120B9;CUNEIFORM SIGN GA2 TIMES A PLUS HA;Lo;0;L;;;;;N;;;;; -120BA;CUNEIFORM SIGN GA2 TIMES A PLUS IGI;Lo;0;L;;;;;N;;;;; -120BB;CUNEIFORM SIGN GA2 TIMES AB2 TENU PLUS TAB;Lo;0;L;;;;;N;;;;; -120BC;CUNEIFORM SIGN GA2 TIMES AN;Lo;0;L;;;;;N;;;;; -120BD;CUNEIFORM SIGN GA2 TIMES ASH;Lo;0;L;;;;;N;;;;; -120BE;CUNEIFORM SIGN GA2 TIMES ASH2 PLUS GAL;Lo;0;L;;;;;N;;;;; -120BF;CUNEIFORM SIGN GA2 TIMES BAD;Lo;0;L;;;;;N;;;;; -120C0;CUNEIFORM SIGN GA2 TIMES BAR PLUS RA;Lo;0;L;;;;;N;;;;; -120C1;CUNEIFORM SIGN GA2 TIMES BUR;Lo;0;L;;;;;N;;;;; -120C2;CUNEIFORM SIGN GA2 TIMES BUR PLUS RA;Lo;0;L;;;;;N;;;;; -120C3;CUNEIFORM SIGN GA2 TIMES DA;Lo;0;L;;;;;N;;;;; -120C4;CUNEIFORM SIGN GA2 TIMES DI;Lo;0;L;;;;;N;;;;; -120C5;CUNEIFORM SIGN GA2 TIMES DIM TIMES SHE;Lo;0;L;;;;;N;;;;; -120C6;CUNEIFORM SIGN GA2 TIMES DUB;Lo;0;L;;;;;N;;;;; -120C7;CUNEIFORM SIGN GA2 TIMES EL;Lo;0;L;;;;;N;;;;; -120C8;CUNEIFORM SIGN GA2 TIMES EL PLUS LA;Lo;0;L;;;;;N;;;;; -120C9;CUNEIFORM SIGN GA2 TIMES EN;Lo;0;L;;;;;N;;;;; -120CA;CUNEIFORM SIGN GA2 TIMES EN TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;; -120CB;CUNEIFORM SIGN GA2 TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;; -120CC;CUNEIFORM SIGN GA2 TIMES GAR;Lo;0;L;;;;;N;;;;; -120CD;CUNEIFORM SIGN GA2 TIMES GI;Lo;0;L;;;;;N;;;;; -120CE;CUNEIFORM SIGN GA2 TIMES GI4;Lo;0;L;;;;;N;;;;; -120CF;CUNEIFORM SIGN GA2 TIMES GI4 PLUS A;Lo;0;L;;;;;N;;;;; -120D0;CUNEIFORM SIGN GA2 TIMES GIR2 PLUS SU;Lo;0;L;;;;;N;;;;; -120D1;CUNEIFORM SIGN GA2 TIMES HA PLUS LU PLUS ESH2;Lo;0;L;;;;;N;;;;; -120D2;CUNEIFORM SIGN GA2 TIMES HAL;Lo;0;L;;;;;N;;;;; -120D3;CUNEIFORM SIGN GA2 TIMES HAL PLUS LA;Lo;0;L;;;;;N;;;;; -120D4;CUNEIFORM SIGN GA2 TIMES HI PLUS LI;Lo;0;L;;;;;N;;;;; -120D5;CUNEIFORM SIGN GA2 TIMES HUB2;Lo;0;L;;;;;N;;;;; -120D6;CUNEIFORM SIGN GA2 TIMES IGI GUNU;Lo;0;L;;;;;N;;;;; -120D7;CUNEIFORM SIGN GA2 TIMES ISH PLUS HU PLUS ASH;Lo;0;L;;;;;N;;;;; -120D8;CUNEIFORM SIGN GA2 TIMES KAK;Lo;0;L;;;;;N;;;;; -120D9;CUNEIFORM SIGN GA2 TIMES KASKAL;Lo;0;L;;;;;N;;;;; -120DA;CUNEIFORM SIGN GA2 TIMES KID;Lo;0;L;;;;;N;;;;; -120DB;CUNEIFORM SIGN GA2 TIMES KID PLUS LAL;Lo;0;L;;;;;N;;;;; -120DC;CUNEIFORM SIGN GA2 TIMES KU3 PLUS AN;Lo;0;L;;;;;N;;;;; -120DD;CUNEIFORM SIGN GA2 TIMES LA;Lo;0;L;;;;;N;;;;; -120DE;CUNEIFORM SIGN GA2 TIMES ME PLUS EN;Lo;0;L;;;;;N;;;;; -120DF;CUNEIFORM SIGN GA2 TIMES MI;Lo;0;L;;;;;N;;;;; -120E0;CUNEIFORM SIGN GA2 TIMES NUN;Lo;0;L;;;;;N;;;;; -120E1;CUNEIFORM SIGN GA2 TIMES NUN OVER NUN;Lo;0;L;;;;;N;;;;; -120E2;CUNEIFORM SIGN GA2 TIMES PA;Lo;0;L;;;;;N;;;;; -120E3;CUNEIFORM SIGN GA2 TIMES SAL;Lo;0;L;;;;;N;;;;; -120E4;CUNEIFORM SIGN GA2 TIMES SAR;Lo;0;L;;;;;N;;;;; -120E5;CUNEIFORM SIGN GA2 TIMES SHE;Lo;0;L;;;;;N;;;;; -120E6;CUNEIFORM SIGN GA2 TIMES SHE PLUS TUR;Lo;0;L;;;;;N;;;;; -120E7;CUNEIFORM SIGN GA2 TIMES SHID;Lo;0;L;;;;;N;;;;; -120E8;CUNEIFORM SIGN GA2 TIMES SUM;Lo;0;L;;;;;N;;;;; -120E9;CUNEIFORM SIGN GA2 TIMES TAK4;Lo;0;L;;;;;N;;;;; -120EA;CUNEIFORM SIGN GA2 TIMES U;Lo;0;L;;;;;N;;;;; -120EB;CUNEIFORM SIGN GA2 TIMES UD;Lo;0;L;;;;;N;;;;; -120EC;CUNEIFORM SIGN GA2 TIMES UD PLUS DU;Lo;0;L;;;;;N;;;;; -120ED;CUNEIFORM SIGN GA2 OVER GA2;Lo;0;L;;;;;N;;;;; -120EE;CUNEIFORM SIGN GABA;Lo;0;L;;;;;N;;;;; -120EF;CUNEIFORM SIGN GABA CROSSING GABA;Lo;0;L;;;;;N;;;;; -120F0;CUNEIFORM SIGN GAD;Lo;0;L;;;;;N;;;;; -120F1;CUNEIFORM SIGN GAD OVER GAD GAR OVER GAR;Lo;0;L;;;;;N;;;;; -120F2;CUNEIFORM SIGN GAL;Lo;0;L;;;;;N;;;;; -120F3;CUNEIFORM SIGN GAL GAD OVER GAD GAR OVER GAR;Lo;0;L;;;;;N;;;;; -120F4;CUNEIFORM SIGN GALAM;Lo;0;L;;;;;N;;;;; -120F5;CUNEIFORM SIGN GAM;Lo;0;L;;;;;N;;;;; -120F6;CUNEIFORM SIGN GAN;Lo;0;L;;;;;N;;;;; -120F7;CUNEIFORM SIGN GAN2;Lo;0;L;;;;;N;;;;; -120F8;CUNEIFORM SIGN GAN2 TENU;Lo;0;L;;;;;N;;;;; -120F9;CUNEIFORM SIGN GAN2 OVER GAN2;Lo;0;L;;;;;N;;;;; -120FA;CUNEIFORM SIGN GAN2 CROSSING GAN2;Lo;0;L;;;;;N;;;;; -120FB;CUNEIFORM SIGN GAR;Lo;0;L;;;;;N;;;;; -120FC;CUNEIFORM SIGN GAR3;Lo;0;L;;;;;N;;;;; -120FD;CUNEIFORM SIGN GASHAN;Lo;0;L;;;;;N;;;;; -120FE;CUNEIFORM SIGN GESHTIN;Lo;0;L;;;;;N;;;;; -120FF;CUNEIFORM SIGN GESHTIN TIMES KUR;Lo;0;L;;;;;N;;;;; -12100;CUNEIFORM SIGN GI;Lo;0;L;;;;;N;;;;; -12101;CUNEIFORM SIGN GI TIMES E;Lo;0;L;;;;;N;;;;; -12102;CUNEIFORM SIGN GI TIMES U;Lo;0;L;;;;;N;;;;; -12103;CUNEIFORM SIGN GI CROSSING GI;Lo;0;L;;;;;N;;;;; -12104;CUNEIFORM SIGN GI4;Lo;0;L;;;;;N;;;;; -12105;CUNEIFORM SIGN GI4 OVER GI4;Lo;0;L;;;;;N;;;;; -12106;CUNEIFORM SIGN GI4 CROSSING GI4;Lo;0;L;;;;;N;;;;; -12107;CUNEIFORM SIGN GIDIM;Lo;0;L;;;;;N;;;;; -12108;CUNEIFORM SIGN GIR2;Lo;0;L;;;;;N;;;;; -12109;CUNEIFORM SIGN GIR2 GUNU;Lo;0;L;;;;;N;;;;; -1210A;CUNEIFORM SIGN GIR3;Lo;0;L;;;;;N;;;;; -1210B;CUNEIFORM SIGN GIR3 TIMES A PLUS IGI;Lo;0;L;;;;;N;;;;; -1210C;CUNEIFORM SIGN GIR3 TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;; -1210D;CUNEIFORM SIGN GIR3 TIMES IGI;Lo;0;L;;;;;N;;;;; -1210E;CUNEIFORM SIGN GIR3 TIMES LU PLUS IGI;Lo;0;L;;;;;N;;;;; -1210F;CUNEIFORM SIGN GIR3 TIMES PA;Lo;0;L;;;;;N;;;;; -12110;CUNEIFORM SIGN GISAL;Lo;0;L;;;;;N;;;;; -12111;CUNEIFORM SIGN GISH;Lo;0;L;;;;;N;;;;; -12112;CUNEIFORM SIGN GISH CROSSING GISH;Lo;0;L;;;;;N;;;;; -12113;CUNEIFORM SIGN GISH TIMES BAD;Lo;0;L;;;;;N;;;;; -12114;CUNEIFORM SIGN GISH TIMES TAK4;Lo;0;L;;;;;N;;;;; -12115;CUNEIFORM SIGN GISH TENU;Lo;0;L;;;;;N;;;;; -12116;CUNEIFORM SIGN GU;Lo;0;L;;;;;N;;;;; -12117;CUNEIFORM SIGN GU CROSSING GU;Lo;0;L;;;;;N;;;;; -12118;CUNEIFORM SIGN GU2;Lo;0;L;;;;;N;;;;; -12119;CUNEIFORM SIGN GU2 TIMES KAK;Lo;0;L;;;;;N;;;;; -1211A;CUNEIFORM SIGN GU2 TIMES KAK TIMES IGI GUNU;Lo;0;L;;;;;N;;;;; -1211B;CUNEIFORM SIGN GU2 TIMES NUN;Lo;0;L;;;;;N;;;;; -1211C;CUNEIFORM SIGN GU2 TIMES SAL PLUS TUG2;Lo;0;L;;;;;N;;;;; -1211D;CUNEIFORM SIGN GU2 GUNU;Lo;0;L;;;;;N;;;;; -1211E;CUNEIFORM SIGN GUD;Lo;0;L;;;;;N;;;;; -1211F;CUNEIFORM SIGN GUD TIMES A PLUS KUR;Lo;0;L;;;;;N;;;;; -12120;CUNEIFORM SIGN GUD TIMES KUR;Lo;0;L;;;;;N;;;;; -12121;CUNEIFORM SIGN GUD OVER GUD LUGAL;Lo;0;L;;;;;N;;;;; -12122;CUNEIFORM SIGN GUL;Lo;0;L;;;;;N;;;;; -12123;CUNEIFORM SIGN GUM;Lo;0;L;;;;;N;;;;; -12124;CUNEIFORM SIGN GUM TIMES SHE;Lo;0;L;;;;;N;;;;; -12125;CUNEIFORM SIGN GUR;Lo;0;L;;;;;N;;;;; -12126;CUNEIFORM SIGN GUR7;Lo;0;L;;;;;N;;;;; -12127;CUNEIFORM SIGN GURUN;Lo;0;L;;;;;N;;;;; -12128;CUNEIFORM SIGN GURUSH;Lo;0;L;;;;;N;;;;; -12129;CUNEIFORM SIGN HA;Lo;0;L;;;;;N;;;;; -1212A;CUNEIFORM SIGN HA TENU;Lo;0;L;;;;;N;;;;; -1212B;CUNEIFORM SIGN HA GUNU;Lo;0;L;;;;;N;;;;; -1212C;CUNEIFORM SIGN HAL;Lo;0;L;;;;;N;;;;; -1212D;CUNEIFORM SIGN HI;Lo;0;L;;;;;N;;;;; -1212E;CUNEIFORM SIGN HI TIMES ASH;Lo;0;L;;;;;N;;;;; -1212F;CUNEIFORM SIGN HI TIMES ASH2;Lo;0;L;;;;;N;;;;; -12130;CUNEIFORM SIGN HI TIMES BAD;Lo;0;L;;;;;N;;;;; -12131;CUNEIFORM SIGN HI TIMES DISH;Lo;0;L;;;;;N;;;;; -12132;CUNEIFORM SIGN HI TIMES GAD;Lo;0;L;;;;;N;;;;; -12133;CUNEIFORM SIGN HI TIMES KIN;Lo;0;L;;;;;N;;;;; -12134;CUNEIFORM SIGN HI TIMES NUN;Lo;0;L;;;;;N;;;;; -12135;CUNEIFORM SIGN HI TIMES SHE;Lo;0;L;;;;;N;;;;; -12136;CUNEIFORM SIGN HI TIMES U;Lo;0;L;;;;;N;;;;; -12137;CUNEIFORM SIGN HU;Lo;0;L;;;;;N;;;;; -12138;CUNEIFORM SIGN HUB2;Lo;0;L;;;;;N;;;;; -12139;CUNEIFORM SIGN HUB2 TIMES AN;Lo;0;L;;;;;N;;;;; -1213A;CUNEIFORM SIGN HUB2 TIMES HAL;Lo;0;L;;;;;N;;;;; -1213B;CUNEIFORM SIGN HUB2 TIMES KASKAL;Lo;0;L;;;;;N;;;;; -1213C;CUNEIFORM SIGN HUB2 TIMES LISH;Lo;0;L;;;;;N;;;;; -1213D;CUNEIFORM SIGN HUB2 TIMES UD;Lo;0;L;;;;;N;;;;; -1213E;CUNEIFORM SIGN HUL2;Lo;0;L;;;;;N;;;;; -1213F;CUNEIFORM SIGN I;Lo;0;L;;;;;N;;;;; -12140;CUNEIFORM SIGN I A;Lo;0;L;;;;;N;;;;; -12141;CUNEIFORM SIGN IB;Lo;0;L;;;;;N;;;;; -12142;CUNEIFORM SIGN IDIM;Lo;0;L;;;;;N;;;;; -12143;CUNEIFORM SIGN IDIM OVER IDIM BUR;Lo;0;L;;;;;N;;;;; -12144;CUNEIFORM SIGN IDIM OVER IDIM SQUARED;Lo;0;L;;;;;N;;;;; -12145;CUNEIFORM SIGN IG;Lo;0;L;;;;;N;;;;; -12146;CUNEIFORM SIGN IGI;Lo;0;L;;;;;N;;;;; -12147;CUNEIFORM SIGN IGI DIB;Lo;0;L;;;;;N;;;;; -12148;CUNEIFORM SIGN IGI RI;Lo;0;L;;;;;N;;;;; -12149;CUNEIFORM SIGN IGI OVER IGI SHIR OVER SHIR UD OVER UD;Lo;0;L;;;;;N;;;;; -1214A;CUNEIFORM SIGN IGI GUNU;Lo;0;L;;;;;N;;;;; -1214B;CUNEIFORM SIGN IL;Lo;0;L;;;;;N;;;;; -1214C;CUNEIFORM SIGN IL TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;; -1214D;CUNEIFORM SIGN IL2;Lo;0;L;;;;;N;;;;; -1214E;CUNEIFORM SIGN IM;Lo;0;L;;;;;N;;;;; -1214F;CUNEIFORM SIGN IM TIMES TAK4;Lo;0;L;;;;;N;;;;; -12150;CUNEIFORM SIGN IM CROSSING IM;Lo;0;L;;;;;N;;;;; -12151;CUNEIFORM SIGN IM OPPOSING IM;Lo;0;L;;;;;N;;;;; -12152;CUNEIFORM SIGN IM SQUARED;Lo;0;L;;;;;N;;;;; -12153;CUNEIFORM SIGN IMIN;Lo;0;L;;;;;N;;;;; -12154;CUNEIFORM SIGN IN;Lo;0;L;;;;;N;;;;; -12155;CUNEIFORM SIGN IR;Lo;0;L;;;;;N;;;;; -12156;CUNEIFORM SIGN ISH;Lo;0;L;;;;;N;;;;; -12157;CUNEIFORM SIGN KA;Lo;0;L;;;;;N;;;;; -12158;CUNEIFORM SIGN KA TIMES A;Lo;0;L;;;;;N;;;;; -12159;CUNEIFORM SIGN KA TIMES AD;Lo;0;L;;;;;N;;;;; -1215A;CUNEIFORM SIGN KA TIMES AD PLUS KU3;Lo;0;L;;;;;N;;;;; -1215B;CUNEIFORM SIGN KA TIMES ASH2;Lo;0;L;;;;;N;;;;; -1215C;CUNEIFORM SIGN KA TIMES BAD;Lo;0;L;;;;;N;;;;; -1215D;CUNEIFORM SIGN KA TIMES BALAG;Lo;0;L;;;;;N;;;;; -1215E;CUNEIFORM SIGN KA TIMES BAR;Lo;0;L;;;;;N;;;;; -1215F;CUNEIFORM SIGN KA TIMES BI;Lo;0;L;;;;;N;;;;; -12160;CUNEIFORM SIGN KA TIMES ERIN2;Lo;0;L;;;;;N;;;;; -12161;CUNEIFORM SIGN KA TIMES ESH2;Lo;0;L;;;;;N;;;;; -12162;CUNEIFORM SIGN KA TIMES GA;Lo;0;L;;;;;N;;;;; -12163;CUNEIFORM SIGN KA TIMES GAL;Lo;0;L;;;;;N;;;;; -12164;CUNEIFORM SIGN KA TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;; -12165;CUNEIFORM SIGN KA TIMES GAR;Lo;0;L;;;;;N;;;;; -12166;CUNEIFORM SIGN KA TIMES GAR PLUS SHA3 PLUS A;Lo;0;L;;;;;N;;;;; -12167;CUNEIFORM SIGN KA TIMES GI;Lo;0;L;;;;;N;;;;; -12168;CUNEIFORM SIGN KA TIMES GIR2;Lo;0;L;;;;;N;;;;; -12169;CUNEIFORM SIGN KA TIMES GISH PLUS SAR;Lo;0;L;;;;;N;;;;; -1216A;CUNEIFORM SIGN KA TIMES GISH CROSSING GISH;Lo;0;L;;;;;N;;;;; -1216B;CUNEIFORM SIGN KA TIMES GU;Lo;0;L;;;;;N;;;;; -1216C;CUNEIFORM SIGN KA TIMES GUR7;Lo;0;L;;;;;N;;;;; -1216D;CUNEIFORM SIGN KA TIMES IGI;Lo;0;L;;;;;N;;;;; -1216E;CUNEIFORM SIGN KA TIMES IM;Lo;0;L;;;;;N;;;;; -1216F;CUNEIFORM SIGN KA TIMES KAK;Lo;0;L;;;;;N;;;;; -12170;CUNEIFORM SIGN KA TIMES KI;Lo;0;L;;;;;N;;;;; -12171;CUNEIFORM SIGN KA TIMES KID;Lo;0;L;;;;;N;;;;; -12172;CUNEIFORM SIGN KA TIMES LI;Lo;0;L;;;;;N;;;;; -12173;CUNEIFORM SIGN KA TIMES LU;Lo;0;L;;;;;N;;;;; -12174;CUNEIFORM SIGN KA TIMES ME;Lo;0;L;;;;;N;;;;; -12175;CUNEIFORM SIGN KA TIMES ME PLUS DU;Lo;0;L;;;;;N;;;;; -12176;CUNEIFORM SIGN KA TIMES ME PLUS GI;Lo;0;L;;;;;N;;;;; -12177;CUNEIFORM SIGN KA TIMES ME PLUS TE;Lo;0;L;;;;;N;;;;; -12178;CUNEIFORM SIGN KA TIMES MI;Lo;0;L;;;;;N;;;;; -12179;CUNEIFORM SIGN KA TIMES MI PLUS NUNUZ;Lo;0;L;;;;;N;;;;; -1217A;CUNEIFORM SIGN KA TIMES NE;Lo;0;L;;;;;N;;;;; -1217B;CUNEIFORM SIGN KA TIMES NUN;Lo;0;L;;;;;N;;;;; -1217C;CUNEIFORM SIGN KA TIMES PI;Lo;0;L;;;;;N;;;;; -1217D;CUNEIFORM SIGN KA TIMES RU;Lo;0;L;;;;;N;;;;; -1217E;CUNEIFORM SIGN KA TIMES SA;Lo;0;L;;;;;N;;;;; -1217F;CUNEIFORM SIGN KA TIMES SAR;Lo;0;L;;;;;N;;;;; -12180;CUNEIFORM SIGN KA TIMES SHA;Lo;0;L;;;;;N;;;;; -12181;CUNEIFORM SIGN KA TIMES SHE;Lo;0;L;;;;;N;;;;; -12182;CUNEIFORM SIGN KA TIMES SHID;Lo;0;L;;;;;N;;;;; -12183;CUNEIFORM SIGN KA TIMES SHU;Lo;0;L;;;;;N;;;;; -12184;CUNEIFORM SIGN KA TIMES SIG;Lo;0;L;;;;;N;;;;; -12185;CUNEIFORM SIGN KA TIMES SUHUR;Lo;0;L;;;;;N;;;;; -12186;CUNEIFORM SIGN KA TIMES TAR;Lo;0;L;;;;;N;;;;; -12187;CUNEIFORM SIGN KA TIMES U;Lo;0;L;;;;;N;;;;; -12188;CUNEIFORM SIGN KA TIMES U2;Lo;0;L;;;;;N;;;;; -12189;CUNEIFORM SIGN KA TIMES UD;Lo;0;L;;;;;N;;;;; -1218A;CUNEIFORM SIGN KA TIMES UMUM TIMES PA;Lo;0;L;;;;;N;;;;; -1218B;CUNEIFORM SIGN KA TIMES USH;Lo;0;L;;;;;N;;;;; -1218C;CUNEIFORM SIGN KA TIMES ZI;Lo;0;L;;;;;N;;;;; -1218D;CUNEIFORM SIGN KA2;Lo;0;L;;;;;N;;;;; -1218E;CUNEIFORM SIGN KA2 CROSSING KA2;Lo;0;L;;;;;N;;;;; -1218F;CUNEIFORM SIGN KAB;Lo;0;L;;;;;N;;;;; -12190;CUNEIFORM SIGN KAD2;Lo;0;L;;;;;N;;;;; -12191;CUNEIFORM SIGN KAD3;Lo;0;L;;;;;N;;;;; -12192;CUNEIFORM SIGN KAD4;Lo;0;L;;;;;N;;;;; -12193;CUNEIFORM SIGN KAD5;Lo;0;L;;;;;N;;;;; -12194;CUNEIFORM SIGN KAD5 OVER KAD5;Lo;0;L;;;;;N;;;;; -12195;CUNEIFORM SIGN KAK;Lo;0;L;;;;;N;;;;; -12196;CUNEIFORM SIGN KAK TIMES IGI GUNU;Lo;0;L;;;;;N;;;;; -12197;CUNEIFORM SIGN KAL;Lo;0;L;;;;;N;;;;; -12198;CUNEIFORM SIGN KAL TIMES BAD;Lo;0;L;;;;;N;;;;; -12199;CUNEIFORM SIGN KAL CROSSING KAL;Lo;0;L;;;;;N;;;;; -1219A;CUNEIFORM SIGN KAM2;Lo;0;L;;;;;N;;;;; -1219B;CUNEIFORM SIGN KAM4;Lo;0;L;;;;;N;;;;; -1219C;CUNEIFORM SIGN KASKAL;Lo;0;L;;;;;N;;;;; -1219D;CUNEIFORM SIGN KASKAL LAGAB TIMES U OVER LAGAB TIMES U;Lo;0;L;;;;;N;;;;; -1219E;CUNEIFORM SIGN KASKAL OVER KASKAL LAGAB TIMES U OVER LAGAB TIMES U;Lo;0;L;;;;;N;;;;; -1219F;CUNEIFORM SIGN KESH2;Lo;0;L;;;;;N;;;;; -121A0;CUNEIFORM SIGN KI;Lo;0;L;;;;;N;;;;; -121A1;CUNEIFORM SIGN KI TIMES BAD;Lo;0;L;;;;;N;;;;; -121A2;CUNEIFORM SIGN KI TIMES U;Lo;0;L;;;;;N;;;;; -121A3;CUNEIFORM SIGN KI TIMES UD;Lo;0;L;;;;;N;;;;; -121A4;CUNEIFORM SIGN KID;Lo;0;L;;;;;N;;;;; -121A5;CUNEIFORM SIGN KIN;Lo;0;L;;;;;N;;;;; -121A6;CUNEIFORM SIGN KISAL;Lo;0;L;;;;;N;;;;; -121A7;CUNEIFORM SIGN KISH;Lo;0;L;;;;;N;;;;; -121A8;CUNEIFORM SIGN KISIM5;Lo;0;L;;;;;N;;;;; -121A9;CUNEIFORM SIGN KISIM5 OVER KISIM5;Lo;0;L;;;;;N;;;;; -121AA;CUNEIFORM SIGN KU;Lo;0;L;;;;;N;;;;; -121AB;CUNEIFORM SIGN KU OVER HI TIMES ASH2 KU OVER HI TIMES ASH2;Lo;0;L;;;;;N;;;;; -121AC;CUNEIFORM SIGN KU3;Lo;0;L;;;;;N;;;;; -121AD;CUNEIFORM SIGN KU4;Lo;0;L;;;;;N;;;;; -121AE;CUNEIFORM SIGN KU4 VARIANT FORM;Lo;0;L;;;;;N;;;;; -121AF;CUNEIFORM SIGN KU7;Lo;0;L;;;;;N;;;;; -121B0;CUNEIFORM SIGN KUL;Lo;0;L;;;;;N;;;;; -121B1;CUNEIFORM SIGN KUL GUNU;Lo;0;L;;;;;N;;;;; -121B2;CUNEIFORM SIGN KUN;Lo;0;L;;;;;N;;;;; -121B3;CUNEIFORM SIGN KUR;Lo;0;L;;;;;N;;;;; -121B4;CUNEIFORM SIGN KUR OPPOSING KUR;Lo;0;L;;;;;N;;;;; -121B5;CUNEIFORM SIGN KUSHU2;Lo;0;L;;;;;N;;;;; -121B6;CUNEIFORM SIGN KWU318;Lo;0;L;;;;;N;;;;; -121B7;CUNEIFORM SIGN LA;Lo;0;L;;;;;N;;;;; -121B8;CUNEIFORM SIGN LAGAB;Lo;0;L;;;;;N;;;;; -121B9;CUNEIFORM SIGN LAGAB TIMES A;Lo;0;L;;;;;N;;;;; -121BA;CUNEIFORM SIGN LAGAB TIMES A PLUS DA PLUS HA;Lo;0;L;;;;;N;;;;; -121BB;CUNEIFORM SIGN LAGAB TIMES A PLUS GAR;Lo;0;L;;;;;N;;;;; -121BC;CUNEIFORM SIGN LAGAB TIMES A PLUS LAL;Lo;0;L;;;;;N;;;;; -121BD;CUNEIFORM SIGN LAGAB TIMES AL;Lo;0;L;;;;;N;;;;; -121BE;CUNEIFORM SIGN LAGAB TIMES AN;Lo;0;L;;;;;N;;;;; -121BF;CUNEIFORM SIGN LAGAB TIMES ASH ZIDA TENU;Lo;0;L;;;;;N;;;;; -121C0;CUNEIFORM SIGN LAGAB TIMES BAD;Lo;0;L;;;;;N;;;;; -121C1;CUNEIFORM SIGN LAGAB TIMES BI;Lo;0;L;;;;;N;;;;; -121C2;CUNEIFORM SIGN LAGAB TIMES DAR;Lo;0;L;;;;;N;;;;; -121C3;CUNEIFORM SIGN LAGAB TIMES EN;Lo;0;L;;;;;N;;;;; -121C4;CUNEIFORM SIGN LAGAB TIMES GA;Lo;0;L;;;;;N;;;;; -121C5;CUNEIFORM SIGN LAGAB TIMES GAR;Lo;0;L;;;;;N;;;;; -121C6;CUNEIFORM SIGN LAGAB TIMES GUD;Lo;0;L;;;;;N;;;;; -121C7;CUNEIFORM SIGN LAGAB TIMES GUD PLUS GUD;Lo;0;L;;;;;N;;;;; -121C8;CUNEIFORM SIGN LAGAB TIMES HA;Lo;0;L;;;;;N;;;;; -121C9;CUNEIFORM SIGN LAGAB TIMES HAL;Lo;0;L;;;;;N;;;;; -121CA;CUNEIFORM SIGN LAGAB TIMES HI TIMES NUN;Lo;0;L;;;;;N;;;;; -121CB;CUNEIFORM SIGN LAGAB TIMES IGI GUNU;Lo;0;L;;;;;N;;;;; -121CC;CUNEIFORM SIGN LAGAB TIMES IM;Lo;0;L;;;;;N;;;;; -121CD;CUNEIFORM SIGN LAGAB TIMES IM PLUS HA;Lo;0;L;;;;;N;;;;; -121CE;CUNEIFORM SIGN LAGAB TIMES IM PLUS LU;Lo;0;L;;;;;N;;;;; -121CF;CUNEIFORM SIGN LAGAB TIMES KI;Lo;0;L;;;;;N;;;;; -121D0;CUNEIFORM SIGN LAGAB TIMES KIN;Lo;0;L;;;;;N;;;;; -121D1;CUNEIFORM SIGN LAGAB TIMES KU3;Lo;0;L;;;;;N;;;;; -121D2;CUNEIFORM SIGN LAGAB TIMES KUL;Lo;0;L;;;;;N;;;;; -121D3;CUNEIFORM SIGN LAGAB TIMES KUL PLUS HI PLUS A;Lo;0;L;;;;;N;;;;; -121D4;CUNEIFORM SIGN LAGAB TIMES LAGAB;Lo;0;L;;;;;N;;;;; -121D5;CUNEIFORM SIGN LAGAB TIMES LISH;Lo;0;L;;;;;N;;;;; -121D6;CUNEIFORM SIGN LAGAB TIMES LU;Lo;0;L;;;;;N;;;;; -121D7;CUNEIFORM SIGN LAGAB TIMES LUL;Lo;0;L;;;;;N;;;;; -121D8;CUNEIFORM SIGN LAGAB TIMES ME;Lo;0;L;;;;;N;;;;; -121D9;CUNEIFORM SIGN LAGAB TIMES ME PLUS EN;Lo;0;L;;;;;N;;;;; -121DA;CUNEIFORM SIGN LAGAB TIMES MUSH;Lo;0;L;;;;;N;;;;; -121DB;CUNEIFORM SIGN LAGAB TIMES NE;Lo;0;L;;;;;N;;;;; -121DC;CUNEIFORM SIGN LAGAB TIMES SHE PLUS SUM;Lo;0;L;;;;;N;;;;; -121DD;CUNEIFORM SIGN LAGAB TIMES SHITA PLUS GISH PLUS ERIN2;Lo;0;L;;;;;N;;;;; -121DE;CUNEIFORM SIGN LAGAB TIMES SHITA PLUS GISH TENU;Lo;0;L;;;;;N;;;;; -121DF;CUNEIFORM SIGN LAGAB TIMES SHU2;Lo;0;L;;;;;N;;;;; -121E0;CUNEIFORM SIGN LAGAB TIMES SHU2 PLUS SHU2;Lo;0;L;;;;;N;;;;; -121E1;CUNEIFORM SIGN LAGAB TIMES SUM;Lo;0;L;;;;;N;;;;; -121E2;CUNEIFORM SIGN LAGAB TIMES TAG;Lo;0;L;;;;;N;;;;; -121E3;CUNEIFORM SIGN LAGAB TIMES TAK4;Lo;0;L;;;;;N;;;;; -121E4;CUNEIFORM SIGN LAGAB TIMES TE PLUS A PLUS SU PLUS NA;Lo;0;L;;;;;N;;;;; -121E5;CUNEIFORM SIGN LAGAB TIMES U;Lo;0;L;;;;;N;;;;; -121E6;CUNEIFORM SIGN LAGAB TIMES U PLUS A;Lo;0;L;;;;;N;;;;; -121E7;CUNEIFORM SIGN LAGAB TIMES U PLUS U PLUS U;Lo;0;L;;;;;N;;;;; -121E8;CUNEIFORM SIGN LAGAB TIMES U2 PLUS ASH;Lo;0;L;;;;;N;;;;; -121E9;CUNEIFORM SIGN LAGAB TIMES UD;Lo;0;L;;;;;N;;;;; -121EA;CUNEIFORM SIGN LAGAB TIMES USH;Lo;0;L;;;;;N;;;;; -121EB;CUNEIFORM SIGN LAGAB SQUARED;Lo;0;L;;;;;N;;;;; -121EC;CUNEIFORM SIGN LAGAR;Lo;0;L;;;;;N;;;;; -121ED;CUNEIFORM SIGN LAGAR TIMES SHE;Lo;0;L;;;;;N;;;;; -121EE;CUNEIFORM SIGN LAGAR TIMES SHE PLUS SUM;Lo;0;L;;;;;N;;;;; -121EF;CUNEIFORM SIGN LAGAR GUNU;Lo;0;L;;;;;N;;;;; -121F0;CUNEIFORM SIGN LAGAR GUNU OVER LAGAR GUNU SHE;Lo;0;L;;;;;N;;;;; -121F1;CUNEIFORM SIGN LAHSHU;Lo;0;L;;;;;N;;;;; -121F2;CUNEIFORM SIGN LAL;Lo;0;L;;;;;N;;;;; -121F3;CUNEIFORM SIGN LAL TIMES LAL;Lo;0;L;;;;;N;;;;; -121F4;CUNEIFORM SIGN LAM;Lo;0;L;;;;;N;;;;; -121F5;CUNEIFORM SIGN LAM TIMES KUR;Lo;0;L;;;;;N;;;;; -121F6;CUNEIFORM SIGN LAM TIMES KUR PLUS RU;Lo;0;L;;;;;N;;;;; -121F7;CUNEIFORM SIGN LI;Lo;0;L;;;;;N;;;;; -121F8;CUNEIFORM SIGN LIL;Lo;0;L;;;;;N;;;;; -121F9;CUNEIFORM SIGN LIMMU2;Lo;0;L;;;;;N;;;;; -121FA;CUNEIFORM SIGN LISH;Lo;0;L;;;;;N;;;;; -121FB;CUNEIFORM SIGN LU;Lo;0;L;;;;;N;;;;; -121FC;CUNEIFORM SIGN LU TIMES BAD;Lo;0;L;;;;;N;;;;; -121FD;CUNEIFORM SIGN LU2;Lo;0;L;;;;;N;;;;; -121FE;CUNEIFORM SIGN LU2 TIMES AL;Lo;0;L;;;;;N;;;;; -121FF;CUNEIFORM SIGN LU2 TIMES BAD;Lo;0;L;;;;;N;;;;; -12200;CUNEIFORM SIGN LU2 TIMES ESH2;Lo;0;L;;;;;N;;;;; -12201;CUNEIFORM SIGN LU2 TIMES ESH2 TENU;Lo;0;L;;;;;N;;;;; -12202;CUNEIFORM SIGN LU2 TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;; -12203;CUNEIFORM SIGN LU2 TIMES HI TIMES BAD;Lo;0;L;;;;;N;;;;; -12204;CUNEIFORM SIGN LU2 TIMES IM;Lo;0;L;;;;;N;;;;; -12205;CUNEIFORM SIGN LU2 TIMES KAD2;Lo;0;L;;;;;N;;;;; -12206;CUNEIFORM SIGN LU2 TIMES KAD3;Lo;0;L;;;;;N;;;;; -12207;CUNEIFORM SIGN LU2 TIMES KAD3 PLUS ASH;Lo;0;L;;;;;N;;;;; -12208;CUNEIFORM SIGN LU2 TIMES KI;Lo;0;L;;;;;N;;;;; -12209;CUNEIFORM SIGN LU2 TIMES LA PLUS ASH;Lo;0;L;;;;;N;;;;; -1220A;CUNEIFORM SIGN LU2 TIMES LAGAB;Lo;0;L;;;;;N;;;;; -1220B;CUNEIFORM SIGN LU2 TIMES ME PLUS EN;Lo;0;L;;;;;N;;;;; -1220C;CUNEIFORM SIGN LU2 TIMES NE;Lo;0;L;;;;;N;;;;; -1220D;CUNEIFORM SIGN LU2 TIMES NU;Lo;0;L;;;;;N;;;;; -1220E;CUNEIFORM SIGN LU2 TIMES SI PLUS ASH;Lo;0;L;;;;;N;;;;; -1220F;CUNEIFORM SIGN LU2 TIMES SIK2 PLUS BU;Lo;0;L;;;;;N;;;;; -12210;CUNEIFORM SIGN LU2 TIMES TUG2;Lo;0;L;;;;;N;;;;; -12211;CUNEIFORM SIGN LU2 TENU;Lo;0;L;;;;;N;;;;; -12212;CUNEIFORM SIGN LU2 CROSSING LU2;Lo;0;L;;;;;N;;;;; -12213;CUNEIFORM SIGN LU2 OPPOSING LU2;Lo;0;L;;;;;N;;;;; -12214;CUNEIFORM SIGN LU2 SQUARED;Lo;0;L;;;;;N;;;;; -12215;CUNEIFORM SIGN LU2 SHESHIG;Lo;0;L;;;;;N;;;;; -12216;CUNEIFORM SIGN LU3;Lo;0;L;;;;;N;;;;; -12217;CUNEIFORM SIGN LUGAL;Lo;0;L;;;;;N;;;;; -12218;CUNEIFORM SIGN LUGAL OVER LUGAL;Lo;0;L;;;;;N;;;;; -12219;CUNEIFORM SIGN LUGAL OPPOSING LUGAL;Lo;0;L;;;;;N;;;;; -1221A;CUNEIFORM SIGN LUGAL SHESHIG;Lo;0;L;;;;;N;;;;; -1221B;CUNEIFORM SIGN LUH;Lo;0;L;;;;;N;;;;; -1221C;CUNEIFORM SIGN LUL;Lo;0;L;;;;;N;;;;; -1221D;CUNEIFORM SIGN LUM;Lo;0;L;;;;;N;;;;; -1221E;CUNEIFORM SIGN LUM OVER LUM;Lo;0;L;;;;;N;;;;; -1221F;CUNEIFORM SIGN LUM OVER LUM GAR OVER GAR;Lo;0;L;;;;;N;;;;; -12220;CUNEIFORM SIGN MA;Lo;0;L;;;;;N;;;;; -12221;CUNEIFORM SIGN MA TIMES TAK4;Lo;0;L;;;;;N;;;;; -12222;CUNEIFORM SIGN MA GUNU;Lo;0;L;;;;;N;;;;; -12223;CUNEIFORM SIGN MA2;Lo;0;L;;;;;N;;;;; -12224;CUNEIFORM SIGN MAH;Lo;0;L;;;;;N;;;;; -12225;CUNEIFORM SIGN MAR;Lo;0;L;;;;;N;;;;; -12226;CUNEIFORM SIGN MASH;Lo;0;L;;;;;N;;;;; -12227;CUNEIFORM SIGN MASH2;Lo;0;L;;;;;N;;;;; -12228;CUNEIFORM SIGN ME;Lo;0;L;;;;;N;;;;; -12229;CUNEIFORM SIGN MES;Lo;0;L;;;;;N;;;;; -1222A;CUNEIFORM SIGN MI;Lo;0;L;;;;;N;;;;; -1222B;CUNEIFORM SIGN MIN;Lo;0;L;;;;;N;;;;; -1222C;CUNEIFORM SIGN MU;Lo;0;L;;;;;N;;;;; -1222D;CUNEIFORM SIGN MU OVER MU;Lo;0;L;;;;;N;;;;; -1222E;CUNEIFORM SIGN MUG;Lo;0;L;;;;;N;;;;; -1222F;CUNEIFORM SIGN MUG GUNU;Lo;0;L;;;;;N;;;;; -12230;CUNEIFORM SIGN MUNSUB;Lo;0;L;;;;;N;;;;; -12231;CUNEIFORM SIGN MURGU2;Lo;0;L;;;;;N;;;;; -12232;CUNEIFORM SIGN MUSH;Lo;0;L;;;;;N;;;;; -12233;CUNEIFORM SIGN MUSH TIMES A;Lo;0;L;;;;;N;;;;; -12234;CUNEIFORM SIGN MUSH TIMES KUR;Lo;0;L;;;;;N;;;;; -12235;CUNEIFORM SIGN MUSH TIMES ZA;Lo;0;L;;;;;N;;;;; -12236;CUNEIFORM SIGN MUSH OVER MUSH;Lo;0;L;;;;;N;;;;; -12237;CUNEIFORM SIGN MUSH OVER MUSH TIMES A PLUS NA;Lo;0;L;;;;;N;;;;; -12238;CUNEIFORM SIGN MUSH CROSSING MUSH;Lo;0;L;;;;;N;;;;; -12239;CUNEIFORM SIGN MUSH3;Lo;0;L;;;;;N;;;;; -1223A;CUNEIFORM SIGN MUSH3 TIMES A;Lo;0;L;;;;;N;;;;; -1223B;CUNEIFORM SIGN MUSH3 TIMES A PLUS DI;Lo;0;L;;;;;N;;;;; -1223C;CUNEIFORM SIGN MUSH3 TIMES DI;Lo;0;L;;;;;N;;;;; -1223D;CUNEIFORM SIGN MUSH3 GUNU;Lo;0;L;;;;;N;;;;; -1223E;CUNEIFORM SIGN NA;Lo;0;L;;;;;N;;;;; -1223F;CUNEIFORM SIGN NA2;Lo;0;L;;;;;N;;;;; -12240;CUNEIFORM SIGN NAGA;Lo;0;L;;;;;N;;;;; -12241;CUNEIFORM SIGN NAGA INVERTED;Lo;0;L;;;;;N;;;;; -12242;CUNEIFORM SIGN NAGA TIMES SHU TENU;Lo;0;L;;;;;N;;;;; -12243;CUNEIFORM SIGN NAGA OPPOSING NAGA;Lo;0;L;;;;;N;;;;; -12244;CUNEIFORM SIGN NAGAR;Lo;0;L;;;;;N;;;;; -12245;CUNEIFORM SIGN NAM NUTILLU;Lo;0;L;;;;;N;;;;; -12246;CUNEIFORM SIGN NAM;Lo;0;L;;;;;N;;;;; -12247;CUNEIFORM SIGN NAM2;Lo;0;L;;;;;N;;;;; -12248;CUNEIFORM SIGN NE;Lo;0;L;;;;;N;;;;; -12249;CUNEIFORM SIGN NE TIMES A;Lo;0;L;;;;;N;;;;; -1224A;CUNEIFORM SIGN NE TIMES UD;Lo;0;L;;;;;N;;;;; -1224B;CUNEIFORM SIGN NE SHESHIG;Lo;0;L;;;;;N;;;;; -1224C;CUNEIFORM SIGN NI;Lo;0;L;;;;;N;;;;; -1224D;CUNEIFORM SIGN NI TIMES E;Lo;0;L;;;;;N;;;;; -1224E;CUNEIFORM SIGN NI2;Lo;0;L;;;;;N;;;;; -1224F;CUNEIFORM SIGN NIM;Lo;0;L;;;;;N;;;;; -12250;CUNEIFORM SIGN NIM TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;; -12251;CUNEIFORM SIGN NIM TIMES GAR PLUS GAN2 TENU;Lo;0;L;;;;;N;;;;; -12252;CUNEIFORM SIGN NINDA2;Lo;0;L;;;;;N;;;;; -12253;CUNEIFORM SIGN NINDA2 TIMES AN;Lo;0;L;;;;;N;;;;; -12254;CUNEIFORM SIGN NINDA2 TIMES ASH;Lo;0;L;;;;;N;;;;; -12255;CUNEIFORM SIGN NINDA2 TIMES ASH PLUS ASH;Lo;0;L;;;;;N;;;;; -12256;CUNEIFORM SIGN NINDA2 TIMES GUD;Lo;0;L;;;;;N;;;;; -12257;CUNEIFORM SIGN NINDA2 TIMES ME PLUS GAN2 TENU;Lo;0;L;;;;;N;;;;; -12258;CUNEIFORM SIGN NINDA2 TIMES NE;Lo;0;L;;;;;N;;;;; -12259;CUNEIFORM SIGN NINDA2 TIMES NUN;Lo;0;L;;;;;N;;;;; -1225A;CUNEIFORM SIGN NINDA2 TIMES SHE;Lo;0;L;;;;;N;;;;; -1225B;CUNEIFORM SIGN NINDA2 TIMES SHE PLUS A AN;Lo;0;L;;;;;N;;;;; -1225C;CUNEIFORM SIGN NINDA2 TIMES SHE PLUS ASH;Lo;0;L;;;;;N;;;;; -1225D;CUNEIFORM SIGN NINDA2 TIMES SHE PLUS ASH PLUS ASH;Lo;0;L;;;;;N;;;;; -1225E;CUNEIFORM SIGN NINDA2 TIMES U2 PLUS ASH;Lo;0;L;;;;;N;;;;; -1225F;CUNEIFORM SIGN NINDA2 TIMES USH;Lo;0;L;;;;;N;;;;; -12260;CUNEIFORM SIGN NISAG;Lo;0;L;;;;;N;;;;; -12261;CUNEIFORM SIGN NU;Lo;0;L;;;;;N;;;;; -12262;CUNEIFORM SIGN NU11;Lo;0;L;;;;;N;;;;; -12263;CUNEIFORM SIGN NUN;Lo;0;L;;;;;N;;;;; -12264;CUNEIFORM SIGN NUN LAGAR TIMES GAR;Lo;0;L;;;;;N;;;;; -12265;CUNEIFORM SIGN NUN LAGAR TIMES MASH;Lo;0;L;;;;;N;;;;; -12266;CUNEIFORM SIGN NUN LAGAR TIMES SAL;Lo;0;L;;;;;N;;;;; -12267;CUNEIFORM SIGN NUN LAGAR TIMES SAL OVER NUN LAGAR TIMES SAL;Lo;0;L;;;;;N;;;;; -12268;CUNEIFORM SIGN NUN LAGAR TIMES USH;Lo;0;L;;;;;N;;;;; -12269;CUNEIFORM SIGN NUN TENU;Lo;0;L;;;;;N;;;;; -1226A;CUNEIFORM SIGN NUN OVER NUN;Lo;0;L;;;;;N;;;;; -1226B;CUNEIFORM SIGN NUN CROSSING NUN;Lo;0;L;;;;;N;;;;; -1226C;CUNEIFORM SIGN NUN CROSSING NUN LAGAR OVER LAGAR;Lo;0;L;;;;;N;;;;; -1226D;CUNEIFORM SIGN NUNUZ;Lo;0;L;;;;;N;;;;; -1226E;CUNEIFORM SIGN NUNUZ AB2 TIMES ASHGAB;Lo;0;L;;;;;N;;;;; -1226F;CUNEIFORM SIGN NUNUZ AB2 TIMES BI;Lo;0;L;;;;;N;;;;; -12270;CUNEIFORM SIGN NUNUZ AB2 TIMES DUG;Lo;0;L;;;;;N;;;;; -12271;CUNEIFORM SIGN NUNUZ AB2 TIMES GUD;Lo;0;L;;;;;N;;;;; -12272;CUNEIFORM SIGN NUNUZ AB2 TIMES IGI GUNU;Lo;0;L;;;;;N;;;;; -12273;CUNEIFORM SIGN NUNUZ AB2 TIMES KAD3;Lo;0;L;;;;;N;;;;; -12274;CUNEIFORM SIGN NUNUZ AB2 TIMES LA;Lo;0;L;;;;;N;;;;; -12275;CUNEIFORM SIGN NUNUZ AB2 TIMES NE;Lo;0;L;;;;;N;;;;; -12276;CUNEIFORM SIGN NUNUZ AB2 TIMES SILA3;Lo;0;L;;;;;N;;;;; -12277;CUNEIFORM SIGN NUNUZ AB2 TIMES U2;Lo;0;L;;;;;N;;;;; -12278;CUNEIFORM SIGN NUNUZ KISIM5 TIMES BI;Lo;0;L;;;;;N;;;;; -12279;CUNEIFORM SIGN NUNUZ KISIM5 TIMES BI U;Lo;0;L;;;;;N;;;;; -1227A;CUNEIFORM SIGN PA;Lo;0;L;;;;;N;;;;; -1227B;CUNEIFORM SIGN PAD;Lo;0;L;;;;;N;;;;; -1227C;CUNEIFORM SIGN PAN;Lo;0;L;;;;;N;;;;; -1227D;CUNEIFORM SIGN PAP;Lo;0;L;;;;;N;;;;; -1227E;CUNEIFORM SIGN PESH2;Lo;0;L;;;;;N;;;;; -1227F;CUNEIFORM SIGN PI;Lo;0;L;;;;;N;;;;; -12280;CUNEIFORM SIGN PI TIMES A;Lo;0;L;;;;;N;;;;; -12281;CUNEIFORM SIGN PI TIMES AB;Lo;0;L;;;;;N;;;;; -12282;CUNEIFORM SIGN PI TIMES BI;Lo;0;L;;;;;N;;;;; -12283;CUNEIFORM SIGN PI TIMES BU;Lo;0;L;;;;;N;;;;; -12284;CUNEIFORM SIGN PI TIMES E;Lo;0;L;;;;;N;;;;; -12285;CUNEIFORM SIGN PI TIMES I;Lo;0;L;;;;;N;;;;; -12286;CUNEIFORM SIGN PI TIMES IB;Lo;0;L;;;;;N;;;;; -12287;CUNEIFORM SIGN PI TIMES U;Lo;0;L;;;;;N;;;;; -12288;CUNEIFORM SIGN PI TIMES U2;Lo;0;L;;;;;N;;;;; -12289;CUNEIFORM SIGN PI CROSSING PI;Lo;0;L;;;;;N;;;;; -1228A;CUNEIFORM SIGN PIRIG;Lo;0;L;;;;;N;;;;; -1228B;CUNEIFORM SIGN PIRIG TIMES KAL;Lo;0;L;;;;;N;;;;; -1228C;CUNEIFORM SIGN PIRIG TIMES UD;Lo;0;L;;;;;N;;;;; -1228D;CUNEIFORM SIGN PIRIG TIMES ZA;Lo;0;L;;;;;N;;;;; -1228E;CUNEIFORM SIGN PIRIG OPPOSING PIRIG;Lo;0;L;;;;;N;;;;; -1228F;CUNEIFORM SIGN RA;Lo;0;L;;;;;N;;;;; -12290;CUNEIFORM SIGN RAB;Lo;0;L;;;;;N;;;;; -12291;CUNEIFORM SIGN RI;Lo;0;L;;;;;N;;;;; -12292;CUNEIFORM SIGN RU;Lo;0;L;;;;;N;;;;; -12293;CUNEIFORM SIGN SA;Lo;0;L;;;;;N;;;;; -12294;CUNEIFORM SIGN SAG NUTILLU;Lo;0;L;;;;;N;;;;; -12295;CUNEIFORM SIGN SAG;Lo;0;L;;;;;N;;;;; -12296;CUNEIFORM SIGN SAG TIMES A;Lo;0;L;;;;;N;;;;; -12297;CUNEIFORM SIGN SAG TIMES DU;Lo;0;L;;;;;N;;;;; -12298;CUNEIFORM SIGN SAG TIMES DUB;Lo;0;L;;;;;N;;;;; -12299;CUNEIFORM SIGN SAG TIMES HA;Lo;0;L;;;;;N;;;;; -1229A;CUNEIFORM SIGN SAG TIMES KAK;Lo;0;L;;;;;N;;;;; -1229B;CUNEIFORM SIGN SAG TIMES KUR;Lo;0;L;;;;;N;;;;; -1229C;CUNEIFORM SIGN SAG TIMES LUM;Lo;0;L;;;;;N;;;;; -1229D;CUNEIFORM SIGN SAG TIMES MI;Lo;0;L;;;;;N;;;;; -1229E;CUNEIFORM SIGN SAG TIMES NUN;Lo;0;L;;;;;N;;;;; -1229F;CUNEIFORM SIGN SAG TIMES SAL;Lo;0;L;;;;;N;;;;; -122A0;CUNEIFORM SIGN SAG TIMES SHID;Lo;0;L;;;;;N;;;;; -122A1;CUNEIFORM SIGN SAG TIMES TAB;Lo;0;L;;;;;N;;;;; -122A2;CUNEIFORM SIGN SAG TIMES U2;Lo;0;L;;;;;N;;;;; -122A3;CUNEIFORM SIGN SAG TIMES UB;Lo;0;L;;;;;N;;;;; -122A4;CUNEIFORM SIGN SAG TIMES UM;Lo;0;L;;;;;N;;;;; -122A5;CUNEIFORM SIGN SAG TIMES UR;Lo;0;L;;;;;N;;;;; -122A6;CUNEIFORM SIGN SAG TIMES USH;Lo;0;L;;;;;N;;;;; -122A7;CUNEIFORM SIGN SAG OVER SAG;Lo;0;L;;;;;N;;;;; -122A8;CUNEIFORM SIGN SAG GUNU;Lo;0;L;;;;;N;;;;; -122A9;CUNEIFORM SIGN SAL;Lo;0;L;;;;;N;;;;; -122AA;CUNEIFORM SIGN SAL LAGAB TIMES ASH2;Lo;0;L;;;;;N;;;;; -122AB;CUNEIFORM SIGN SANGA2;Lo;0;L;;;;;N;;;;; -122AC;CUNEIFORM SIGN SAR;Lo;0;L;;;;;N;;;;; -122AD;CUNEIFORM SIGN SHA;Lo;0;L;;;;;N;;;;; -122AE;CUNEIFORM SIGN SHA3;Lo;0;L;;;;;N;;;;; -122AF;CUNEIFORM SIGN SHA3 TIMES A;Lo;0;L;;;;;N;;;;; -122B0;CUNEIFORM SIGN SHA3 TIMES BAD;Lo;0;L;;;;;N;;;;; -122B1;CUNEIFORM SIGN SHA3 TIMES GISH;Lo;0;L;;;;;N;;;;; -122B2;CUNEIFORM SIGN SHA3 TIMES NE;Lo;0;L;;;;;N;;;;; -122B3;CUNEIFORM SIGN SHA3 TIMES SHU2;Lo;0;L;;;;;N;;;;; -122B4;CUNEIFORM SIGN SHA3 TIMES TUR;Lo;0;L;;;;;N;;;;; -122B5;CUNEIFORM SIGN SHA3 TIMES U;Lo;0;L;;;;;N;;;;; -122B6;CUNEIFORM SIGN SHA3 TIMES U PLUS A;Lo;0;L;;;;;N;;;;; -122B7;CUNEIFORM SIGN SHA6;Lo;0;L;;;;;N;;;;; -122B8;CUNEIFORM SIGN SHAB6;Lo;0;L;;;;;N;;;;; -122B9;CUNEIFORM SIGN SHAR2;Lo;0;L;;;;;N;;;;; -122BA;CUNEIFORM SIGN SHE;Lo;0;L;;;;;N;;;;; -122BB;CUNEIFORM SIGN SHE HU;Lo;0;L;;;;;N;;;;; -122BC;CUNEIFORM SIGN SHE OVER SHE GAD OVER GAD GAR OVER GAR;Lo;0;L;;;;;N;;;;; -122BD;CUNEIFORM SIGN SHE OVER SHE TAB OVER TAB GAR OVER GAR;Lo;0;L;;;;;N;;;;; -122BE;CUNEIFORM SIGN SHEG9;Lo;0;L;;;;;N;;;;; -122BF;CUNEIFORM SIGN SHEN;Lo;0;L;;;;;N;;;;; -122C0;CUNEIFORM SIGN SHESH;Lo;0;L;;;;;N;;;;; -122C1;CUNEIFORM SIGN SHESH2;Lo;0;L;;;;;N;;;;; -122C2;CUNEIFORM SIGN SHESHLAM;Lo;0;L;;;;;N;;;;; -122C3;CUNEIFORM SIGN SHID;Lo;0;L;;;;;N;;;;; -122C4;CUNEIFORM SIGN SHID TIMES A;Lo;0;L;;;;;N;;;;; -122C5;CUNEIFORM SIGN SHID TIMES IM;Lo;0;L;;;;;N;;;;; -122C6;CUNEIFORM SIGN SHIM;Lo;0;L;;;;;N;;;;; -122C7;CUNEIFORM SIGN SHIM TIMES A;Lo;0;L;;;;;N;;;;; -122C8;CUNEIFORM SIGN SHIM TIMES BAL;Lo;0;L;;;;;N;;;;; -122C9;CUNEIFORM SIGN SHIM TIMES BULUG;Lo;0;L;;;;;N;;;;; -122CA;CUNEIFORM SIGN SHIM TIMES DIN;Lo;0;L;;;;;N;;;;; -122CB;CUNEIFORM SIGN SHIM TIMES GAR;Lo;0;L;;;;;N;;;;; -122CC;CUNEIFORM SIGN SHIM TIMES IGI;Lo;0;L;;;;;N;;;;; -122CD;CUNEIFORM SIGN SHIM TIMES IGI GUNU;Lo;0;L;;;;;N;;;;; -122CE;CUNEIFORM SIGN SHIM TIMES KUSHU2;Lo;0;L;;;;;N;;;;; -122CF;CUNEIFORM SIGN SHIM TIMES LUL;Lo;0;L;;;;;N;;;;; -122D0;CUNEIFORM SIGN SHIM TIMES MUG;Lo;0;L;;;;;N;;;;; -122D1;CUNEIFORM SIGN SHIM TIMES SAL;Lo;0;L;;;;;N;;;;; -122D2;CUNEIFORM SIGN SHINIG;Lo;0;L;;;;;N;;;;; -122D3;CUNEIFORM SIGN SHIR;Lo;0;L;;;;;N;;;;; -122D4;CUNEIFORM SIGN SHIR TENU;Lo;0;L;;;;;N;;;;; -122D5;CUNEIFORM SIGN SHIR OVER SHIR BUR OVER BUR;Lo;0;L;;;;;N;;;;; -122D6;CUNEIFORM SIGN SHITA;Lo;0;L;;;;;N;;;;; -122D7;CUNEIFORM SIGN SHU;Lo;0;L;;;;;N;;;;; -122D8;CUNEIFORM SIGN SHU OVER INVERTED SHU;Lo;0;L;;;;;N;;;;; -122D9;CUNEIFORM SIGN SHU2;Lo;0;L;;;;;N;;;;; -122DA;CUNEIFORM SIGN SHUBUR;Lo;0;L;;;;;N;;;;; -122DB;CUNEIFORM SIGN SI;Lo;0;L;;;;;N;;;;; -122DC;CUNEIFORM SIGN SI GUNU;Lo;0;L;;;;;N;;;;; -122DD;CUNEIFORM SIGN SIG;Lo;0;L;;;;;N;;;;; -122DE;CUNEIFORM SIGN SIG4;Lo;0;L;;;;;N;;;;; -122DF;CUNEIFORM SIGN SIG4 OVER SIG4 SHU2;Lo;0;L;;;;;N;;;;; -122E0;CUNEIFORM SIGN SIK2;Lo;0;L;;;;;N;;;;; -122E1;CUNEIFORM SIGN SILA3;Lo;0;L;;;;;N;;;;; -122E2;CUNEIFORM SIGN SU;Lo;0;L;;;;;N;;;;; -122E3;CUNEIFORM SIGN SU OVER SU;Lo;0;L;;;;;N;;;;; -122E4;CUNEIFORM SIGN SUD;Lo;0;L;;;;;N;;;;; -122E5;CUNEIFORM SIGN SUD2;Lo;0;L;;;;;N;;;;; -122E6;CUNEIFORM SIGN SUHUR;Lo;0;L;;;;;N;;;;; -122E7;CUNEIFORM SIGN SUM;Lo;0;L;;;;;N;;;;; -122E8;CUNEIFORM SIGN SUMASH;Lo;0;L;;;;;N;;;;; -122E9;CUNEIFORM SIGN SUR;Lo;0;L;;;;;N;;;;; -122EA;CUNEIFORM SIGN SUR9;Lo;0;L;;;;;N;;;;; -122EB;CUNEIFORM SIGN TA;Lo;0;L;;;;;N;;;;; -122EC;CUNEIFORM SIGN TA ASTERISK;Lo;0;L;;;;;N;;;;; -122ED;CUNEIFORM SIGN TA TIMES HI;Lo;0;L;;;;;N;;;;; -122EE;CUNEIFORM SIGN TA TIMES MI;Lo;0;L;;;;;N;;;;; -122EF;CUNEIFORM SIGN TA GUNU;Lo;0;L;;;;;N;;;;; -122F0;CUNEIFORM SIGN TAB;Lo;0;L;;;;;N;;;;; -122F1;CUNEIFORM SIGN TAB OVER TAB NI OVER NI DISH OVER DISH;Lo;0;L;;;;;N;;;;; -122F2;CUNEIFORM SIGN TAB SQUARED;Lo;0;L;;;;;N;;;;; -122F3;CUNEIFORM SIGN TAG;Lo;0;L;;;;;N;;;;; -122F4;CUNEIFORM SIGN TAG TIMES BI;Lo;0;L;;;;;N;;;;; -122F5;CUNEIFORM SIGN TAG TIMES GUD;Lo;0;L;;;;;N;;;;; -122F6;CUNEIFORM SIGN TAG TIMES SHE;Lo;0;L;;;;;N;;;;; -122F7;CUNEIFORM SIGN TAG TIMES SHU;Lo;0;L;;;;;N;;;;; -122F8;CUNEIFORM SIGN TAG TIMES TUG2;Lo;0;L;;;;;N;;;;; -122F9;CUNEIFORM SIGN TAG TIMES UD;Lo;0;L;;;;;N;;;;; -122FA;CUNEIFORM SIGN TAK4;Lo;0;L;;;;;N;;;;; -122FB;CUNEIFORM SIGN TAR;Lo;0;L;;;;;N;;;;; -122FC;CUNEIFORM SIGN TE;Lo;0;L;;;;;N;;;;; -122FD;CUNEIFORM SIGN TE GUNU;Lo;0;L;;;;;N;;;;; -122FE;CUNEIFORM SIGN TI;Lo;0;L;;;;;N;;;;; -122FF;CUNEIFORM SIGN TI TENU;Lo;0;L;;;;;N;;;;; -12300;CUNEIFORM SIGN TIL;Lo;0;L;;;;;N;;;;; -12301;CUNEIFORM SIGN TIR;Lo;0;L;;;;;N;;;;; -12302;CUNEIFORM SIGN TIR TIMES TAK4;Lo;0;L;;;;;N;;;;; -12303;CUNEIFORM SIGN TIR OVER TIR;Lo;0;L;;;;;N;;;;; -12304;CUNEIFORM SIGN TIR OVER TIR GAD OVER GAD GAR OVER GAR;Lo;0;L;;;;;N;;;;; -12305;CUNEIFORM SIGN TU;Lo;0;L;;;;;N;;;;; -12306;CUNEIFORM SIGN TUG2;Lo;0;L;;;;;N;;;;; -12307;CUNEIFORM SIGN TUK;Lo;0;L;;;;;N;;;;; -12308;CUNEIFORM SIGN TUM;Lo;0;L;;;;;N;;;;; -12309;CUNEIFORM SIGN TUR;Lo;0;L;;;;;N;;;;; -1230A;CUNEIFORM SIGN TUR OVER TUR ZA OVER ZA;Lo;0;L;;;;;N;;;;; -1230B;CUNEIFORM SIGN U;Lo;0;L;;;;;N;;;;; -1230C;CUNEIFORM SIGN U GUD;Lo;0;L;;;;;N;;;;; -1230D;CUNEIFORM SIGN U U U;Lo;0;L;;;;;N;;;;; -1230E;CUNEIFORM SIGN U OVER U PA OVER PA GAR OVER GAR;Lo;0;L;;;;;N;;;;; -1230F;CUNEIFORM SIGN U OVER U SUR OVER SUR;Lo;0;L;;;;;N;;;;; -12310;CUNEIFORM SIGN U OVER U U REVERSED OVER U REVERSED;Lo;0;L;;;;;N;;;;; -12311;CUNEIFORM SIGN U2;Lo;0;L;;;;;N;;;;; -12312;CUNEIFORM SIGN UB;Lo;0;L;;;;;N;;;;; -12313;CUNEIFORM SIGN UD;Lo;0;L;;;;;N;;;;; -12314;CUNEIFORM SIGN UD KUSHU2;Lo;0;L;;;;;N;;;;; -12315;CUNEIFORM SIGN UD TIMES BAD;Lo;0;L;;;;;N;;;;; -12316;CUNEIFORM SIGN UD TIMES MI;Lo;0;L;;;;;N;;;;; -12317;CUNEIFORM SIGN UD TIMES U PLUS U PLUS U;Lo;0;L;;;;;N;;;;; -12318;CUNEIFORM SIGN UD TIMES U PLUS U PLUS U GUNU;Lo;0;L;;;;;N;;;;; -12319;CUNEIFORM SIGN UD GUNU;Lo;0;L;;;;;N;;;;; -1231A;CUNEIFORM SIGN UD SHESHIG;Lo;0;L;;;;;N;;;;; -1231B;CUNEIFORM SIGN UD SHESHIG TIMES BAD;Lo;0;L;;;;;N;;;;; -1231C;CUNEIFORM SIGN UDUG;Lo;0;L;;;;;N;;;;; -1231D;CUNEIFORM SIGN UM;Lo;0;L;;;;;N;;;;; -1231E;CUNEIFORM SIGN UM TIMES LAGAB;Lo;0;L;;;;;N;;;;; -1231F;CUNEIFORM SIGN UM TIMES ME PLUS DA;Lo;0;L;;;;;N;;;;; -12320;CUNEIFORM SIGN UM TIMES SHA3;Lo;0;L;;;;;N;;;;; -12321;CUNEIFORM SIGN UM TIMES U;Lo;0;L;;;;;N;;;;; -12322;CUNEIFORM SIGN UMBIN;Lo;0;L;;;;;N;;;;; -12323;CUNEIFORM SIGN UMUM;Lo;0;L;;;;;N;;;;; -12324;CUNEIFORM SIGN UMUM TIMES KASKAL;Lo;0;L;;;;;N;;;;; -12325;CUNEIFORM SIGN UMUM TIMES PA;Lo;0;L;;;;;N;;;;; -12326;CUNEIFORM SIGN UN;Lo;0;L;;;;;N;;;;; -12327;CUNEIFORM SIGN UN GUNU;Lo;0;L;;;;;N;;;;; -12328;CUNEIFORM SIGN UR;Lo;0;L;;;;;N;;;;; -12329;CUNEIFORM SIGN UR CROSSING UR;Lo;0;L;;;;;N;;;;; -1232A;CUNEIFORM SIGN UR SHESHIG;Lo;0;L;;;;;N;;;;; -1232B;CUNEIFORM SIGN UR2;Lo;0;L;;;;;N;;;;; -1232C;CUNEIFORM SIGN UR2 TIMES A PLUS HA;Lo;0;L;;;;;N;;;;; -1232D;CUNEIFORM SIGN UR2 TIMES A PLUS NA;Lo;0;L;;;;;N;;;;; -1232E;CUNEIFORM SIGN UR2 TIMES AL;Lo;0;L;;;;;N;;;;; -1232F;CUNEIFORM SIGN UR2 TIMES HA;Lo;0;L;;;;;N;;;;; -12330;CUNEIFORM SIGN UR2 TIMES NUN;Lo;0;L;;;;;N;;;;; -12331;CUNEIFORM SIGN UR2 TIMES U2;Lo;0;L;;;;;N;;;;; -12332;CUNEIFORM SIGN UR2 TIMES U2 PLUS ASH;Lo;0;L;;;;;N;;;;; -12333;CUNEIFORM SIGN UR2 TIMES U2 PLUS BI;Lo;0;L;;;;;N;;;;; -12334;CUNEIFORM SIGN UR4;Lo;0;L;;;;;N;;;;; -12335;CUNEIFORM SIGN URI;Lo;0;L;;;;;N;;;;; -12336;CUNEIFORM SIGN URI3;Lo;0;L;;;;;N;;;;; -12337;CUNEIFORM SIGN URU;Lo;0;L;;;;;N;;;;; -12338;CUNEIFORM SIGN URU TIMES A;Lo;0;L;;;;;N;;;;; -12339;CUNEIFORM SIGN URU TIMES ASHGAB;Lo;0;L;;;;;N;;;;; -1233A;CUNEIFORM SIGN URU TIMES BAR;Lo;0;L;;;;;N;;;;; -1233B;CUNEIFORM SIGN URU TIMES DUN;Lo;0;L;;;;;N;;;;; -1233C;CUNEIFORM SIGN URU TIMES GA;Lo;0;L;;;;;N;;;;; -1233D;CUNEIFORM SIGN URU TIMES GAL;Lo;0;L;;;;;N;;;;; -1233E;CUNEIFORM SIGN URU TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;; -1233F;CUNEIFORM SIGN URU TIMES GAR;Lo;0;L;;;;;N;;;;; -12340;CUNEIFORM SIGN URU TIMES GU;Lo;0;L;;;;;N;;;;; -12341;CUNEIFORM SIGN URU TIMES HA;Lo;0;L;;;;;N;;;;; -12342;CUNEIFORM SIGN URU TIMES IGI;Lo;0;L;;;;;N;;;;; -12343;CUNEIFORM SIGN URU TIMES IM;Lo;0;L;;;;;N;;;;; -12344;CUNEIFORM SIGN URU TIMES ISH;Lo;0;L;;;;;N;;;;; -12345;CUNEIFORM SIGN URU TIMES KI;Lo;0;L;;;;;N;;;;; -12346;CUNEIFORM SIGN URU TIMES LUM;Lo;0;L;;;;;N;;;;; -12347;CUNEIFORM SIGN URU TIMES MIN;Lo;0;L;;;;;N;;;;; -12348;CUNEIFORM SIGN URU TIMES PA;Lo;0;L;;;;;N;;;;; -12349;CUNEIFORM SIGN URU TIMES SHE;Lo;0;L;;;;;N;;;;; -1234A;CUNEIFORM SIGN URU TIMES SIG4;Lo;0;L;;;;;N;;;;; -1234B;CUNEIFORM SIGN URU TIMES TU;Lo;0;L;;;;;N;;;;; -1234C;CUNEIFORM SIGN URU TIMES U PLUS GUD;Lo;0;L;;;;;N;;;;; -1234D;CUNEIFORM SIGN URU TIMES UD;Lo;0;L;;;;;N;;;;; -1234E;CUNEIFORM SIGN URU TIMES URUDA;Lo;0;L;;;;;N;;;;; -1234F;CUNEIFORM SIGN URUDA;Lo;0;L;;;;;N;;;;; -12350;CUNEIFORM SIGN URUDA TIMES U;Lo;0;L;;;;;N;;;;; -12351;CUNEIFORM SIGN USH;Lo;0;L;;;;;N;;;;; -12352;CUNEIFORM SIGN USH TIMES A;Lo;0;L;;;;;N;;;;; -12353;CUNEIFORM SIGN USH TIMES KU;Lo;0;L;;;;;N;;;;; -12354;CUNEIFORM SIGN USH TIMES KUR;Lo;0;L;;;;;N;;;;; -12355;CUNEIFORM SIGN USH TIMES TAK4;Lo;0;L;;;;;N;;;;; -12356;CUNEIFORM SIGN USHX;Lo;0;L;;;;;N;;;;; -12357;CUNEIFORM SIGN USH2;Lo;0;L;;;;;N;;;;; -12358;CUNEIFORM SIGN USHUMX;Lo;0;L;;;;;N;;;;; -12359;CUNEIFORM SIGN UTUKI;Lo;0;L;;;;;N;;;;; -1235A;CUNEIFORM SIGN UZ3;Lo;0;L;;;;;N;;;;; -1235B;CUNEIFORM SIGN UZ3 TIMES KASKAL;Lo;0;L;;;;;N;;;;; -1235C;CUNEIFORM SIGN UZU;Lo;0;L;;;;;N;;;;; -1235D;CUNEIFORM SIGN ZA;Lo;0;L;;;;;N;;;;; -1235E;CUNEIFORM SIGN ZA TENU;Lo;0;L;;;;;N;;;;; -1235F;CUNEIFORM SIGN ZA SQUARED TIMES KUR;Lo;0;L;;;;;N;;;;; -12360;CUNEIFORM SIGN ZAG;Lo;0;L;;;;;N;;;;; -12361;CUNEIFORM SIGN ZAMX;Lo;0;L;;;;;N;;;;; -12362;CUNEIFORM SIGN ZE2;Lo;0;L;;;;;N;;;;; -12363;CUNEIFORM SIGN ZI;Lo;0;L;;;;;N;;;;; -12364;CUNEIFORM SIGN ZI OVER ZI;Lo;0;L;;;;;N;;;;; -12365;CUNEIFORM SIGN ZI3;Lo;0;L;;;;;N;;;;; -12366;CUNEIFORM SIGN ZIB;Lo;0;L;;;;;N;;;;; -12367;CUNEIFORM SIGN ZIB KABA TENU;Lo;0;L;;;;;N;;;;; -12368;CUNEIFORM SIGN ZIG;Lo;0;L;;;;;N;;;;; -12369;CUNEIFORM SIGN ZIZ2;Lo;0;L;;;;;N;;;;; -1236A;CUNEIFORM SIGN ZU;Lo;0;L;;;;;N;;;;; -1236B;CUNEIFORM SIGN ZU5;Lo;0;L;;;;;N;;;;; -1236C;CUNEIFORM SIGN ZU5 TIMES A;Lo;0;L;;;;;N;;;;; -1236D;CUNEIFORM SIGN ZUBUR;Lo;0;L;;;;;N;;;;; -1236E;CUNEIFORM SIGN ZUM;Lo;0;L;;;;;N;;;;; -12400;CUNEIFORM NUMERIC SIGN TWO ASH;Nl;0;L;;;;2;N;;;;; -12401;CUNEIFORM NUMERIC SIGN THREE ASH;Nl;0;L;;;;3;N;;;;; -12402;CUNEIFORM NUMERIC SIGN FOUR ASH;Nl;0;L;;;;4;N;;;;; -12403;CUNEIFORM NUMERIC SIGN FIVE ASH;Nl;0;L;;;;5;N;;;;; -12404;CUNEIFORM NUMERIC SIGN SIX ASH;Nl;0;L;;;;6;N;;;;; -12405;CUNEIFORM NUMERIC SIGN SEVEN ASH;Nl;0;L;;;;7;N;;;;; -12406;CUNEIFORM NUMERIC SIGN EIGHT ASH;Nl;0;L;;;;8;N;;;;; -12407;CUNEIFORM NUMERIC SIGN NINE ASH;Nl;0;L;;;;9;N;;;;; -12408;CUNEIFORM NUMERIC SIGN THREE DISH;Nl;0;L;;;;3;N;;;;; -12409;CUNEIFORM NUMERIC SIGN FOUR DISH;Nl;0;L;;;;4;N;;;;; -1240A;CUNEIFORM NUMERIC SIGN FIVE DISH;Nl;0;L;;;;5;N;;;;; -1240B;CUNEIFORM NUMERIC SIGN SIX DISH;Nl;0;L;;;;6;N;;;;; -1240C;CUNEIFORM NUMERIC SIGN SEVEN DISH;Nl;0;L;;;;7;N;;;;; -1240D;CUNEIFORM NUMERIC SIGN EIGHT DISH;Nl;0;L;;;;8;N;;;;; -1240E;CUNEIFORM NUMERIC SIGN NINE DISH;Nl;0;L;;;;9;N;;;;; -1240F;CUNEIFORM NUMERIC SIGN FOUR U;Nl;0;L;;;;4;N;;;;; -12410;CUNEIFORM NUMERIC SIGN FIVE U;Nl;0;L;;;;5;N;;;;; -12411;CUNEIFORM NUMERIC SIGN SIX U;Nl;0;L;;;;6;N;;;;; -12412;CUNEIFORM NUMERIC SIGN SEVEN U;Nl;0;L;;;;7;N;;;;; -12413;CUNEIFORM NUMERIC SIGN EIGHT U;Nl;0;L;;;;8;N;;;;; -12414;CUNEIFORM NUMERIC SIGN NINE U;Nl;0;L;;;;9;N;;;;; -12415;CUNEIFORM NUMERIC SIGN ONE GESH2;Nl;0;L;;;;1;N;;;;; -12416;CUNEIFORM NUMERIC SIGN TWO GESH2;Nl;0;L;;;;2;N;;;;; -12417;CUNEIFORM NUMERIC SIGN THREE GESH2;Nl;0;L;;;;3;N;;;;; -12418;CUNEIFORM NUMERIC SIGN FOUR GESH2;Nl;0;L;;;;4;N;;;;; -12419;CUNEIFORM NUMERIC SIGN FIVE GESH2;Nl;0;L;;;;5;N;;;;; -1241A;CUNEIFORM NUMERIC SIGN SIX GESH2;Nl;0;L;;;;6;N;;;;; -1241B;CUNEIFORM NUMERIC SIGN SEVEN GESH2;Nl;0;L;;;;7;N;;;;; -1241C;CUNEIFORM NUMERIC SIGN EIGHT GESH2;Nl;0;L;;;;8;N;;;;; -1241D;CUNEIFORM NUMERIC SIGN NINE GESH2;Nl;0;L;;;;9;N;;;;; -1241E;CUNEIFORM NUMERIC SIGN ONE GESHU;Nl;0;L;;;;1;N;;;;; -1241F;CUNEIFORM NUMERIC SIGN TWO GESHU;Nl;0;L;;;;2;N;;;;; -12420;CUNEIFORM NUMERIC SIGN THREE GESHU;Nl;0;L;;;;3;N;;;;; -12421;CUNEIFORM NUMERIC SIGN FOUR GESHU;Nl;0;L;;;;4;N;;;;; -12422;CUNEIFORM NUMERIC SIGN FIVE GESHU;Nl;0;L;;;;5;N;;;;; -12423;CUNEIFORM NUMERIC SIGN TWO SHAR2;Nl;0;L;;;;2;N;;;;; -12424;CUNEIFORM NUMERIC SIGN THREE SHAR2;Nl;0;L;;;;3;N;;;;; -12425;CUNEIFORM NUMERIC SIGN THREE SHAR2 VARIANT FORM;Nl;0;L;;;;3;N;;;;; -12426;CUNEIFORM NUMERIC SIGN FOUR SHAR2;Nl;0;L;;;;4;N;;;;; -12427;CUNEIFORM NUMERIC SIGN FIVE SHAR2;Nl;0;L;;;;5;N;;;;; -12428;CUNEIFORM NUMERIC SIGN SIX SHAR2;Nl;0;L;;;;6;N;;;;; -12429;CUNEIFORM NUMERIC SIGN SEVEN SHAR2;Nl;0;L;;;;7;N;;;;; -1242A;CUNEIFORM NUMERIC SIGN EIGHT SHAR2;Nl;0;L;;;;8;N;;;;; -1242B;CUNEIFORM NUMERIC SIGN NINE SHAR2;Nl;0;L;;;;9;N;;;;; -1242C;CUNEIFORM NUMERIC SIGN ONE SHARU;Nl;0;L;;;;1;N;;;;; -1242D;CUNEIFORM NUMERIC SIGN TWO SHARU;Nl;0;L;;;;2;N;;;;; -1242E;CUNEIFORM NUMERIC SIGN THREE SHARU;Nl;0;L;;;;3;N;;;;; -1242F;CUNEIFORM NUMERIC SIGN THREE SHARU VARIANT FORM;Nl;0;L;;;;3;N;;;;; -12430;CUNEIFORM NUMERIC SIGN FOUR SHARU;Nl;0;L;;;;4;N;;;;; -12431;CUNEIFORM NUMERIC SIGN FIVE SHARU;Nl;0;L;;;;5;N;;;;; -12432;CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS DISH;Nl;0;L;;;;;N;;;;; -12433;CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS MIN;Nl;0;L;;;;;N;;;;; -12434;CUNEIFORM NUMERIC SIGN ONE BURU;Nl;0;L;;;;1;N;;;;; -12435;CUNEIFORM NUMERIC SIGN TWO BURU;Nl;0;L;;;;2;N;;;;; -12436;CUNEIFORM NUMERIC SIGN THREE BURU;Nl;0;L;;;;3;N;;;;; -12437;CUNEIFORM NUMERIC SIGN THREE BURU VARIANT FORM;Nl;0;L;;;;3;N;;;;; -12438;CUNEIFORM NUMERIC SIGN FOUR BURU;Nl;0;L;;;;4;N;;;;; -12439;CUNEIFORM NUMERIC SIGN FIVE BURU;Nl;0;L;;;;5;N;;;;; -1243A;CUNEIFORM NUMERIC SIGN THREE VARIANT FORM ESH16;Nl;0;L;;;;3;N;;;;; -1243B;CUNEIFORM NUMERIC SIGN THREE VARIANT FORM ESH21;Nl;0;L;;;;3;N;;;;; -1243C;CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU;Nl;0;L;;;;4;N;;;;; -1243D;CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU4;Nl;0;L;;;;4;N;;;;; -1243E;CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU A;Nl;0;L;;;;4;N;;;;; -1243F;CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU B;Nl;0;L;;;;4;N;;;;; -12440;CUNEIFORM NUMERIC SIGN SIX VARIANT FORM ASH9;Nl;0;L;;;;6;N;;;;; -12441;CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN3;Nl;0;L;;;;7;N;;;;; -12442;CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN A;Nl;0;L;;;;7;N;;;;; -12443;CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN B;Nl;0;L;;;;7;N;;;;; -12444;CUNEIFORM NUMERIC SIGN EIGHT VARIANT FORM USSU;Nl;0;L;;;;8;N;;;;; -12445;CUNEIFORM NUMERIC SIGN EIGHT VARIANT FORM USSU3;Nl;0;L;;;;8;N;;;;; -12446;CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU;Nl;0;L;;;;9;N;;;;; -12447;CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU3;Nl;0;L;;;;9;N;;;;; -12448;CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU4;Nl;0;L;;;;9;N;;;;; -12449;CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU A;Nl;0;L;;;;9;N;;;;; -1244A;CUNEIFORM NUMERIC SIGN TWO ASH TENU;Nl;0;L;;;;2;N;;;;; -1244B;CUNEIFORM NUMERIC SIGN THREE ASH TENU;Nl;0;L;;;;3;N;;;;; -1244C;CUNEIFORM NUMERIC SIGN FOUR ASH TENU;Nl;0;L;;;;4;N;;;;; -1244D;CUNEIFORM NUMERIC SIGN FIVE ASH TENU;Nl;0;L;;;;5;N;;;;; -1244E;CUNEIFORM NUMERIC SIGN SIX ASH TENU;Nl;0;L;;;;6;N;;;;; -1244F;CUNEIFORM NUMERIC SIGN ONE BAN2;Nl;0;L;;;;1;N;;;;; -12450;CUNEIFORM NUMERIC SIGN TWO BAN2;Nl;0;L;;;;2;N;;;;; -12451;CUNEIFORM NUMERIC SIGN THREE BAN2;Nl;0;L;;;;3;N;;;;; -12452;CUNEIFORM NUMERIC SIGN FOUR BAN2;Nl;0;L;;;;4;N;;;;; -12453;CUNEIFORM NUMERIC SIGN FOUR BAN2 VARIANT FORM;Nl;0;L;;;;4;N;;;;; -12454;CUNEIFORM NUMERIC SIGN FIVE BAN2;Nl;0;L;;;;5;N;;;;; -12455;CUNEIFORM NUMERIC SIGN FIVE BAN2 VARIANT FORM;Nl;0;L;;;;5;N;;;;; -12456;CUNEIFORM NUMERIC SIGN NIGIDAMIN;Nl;0;L;;;;;N;;;;; -12457;CUNEIFORM NUMERIC SIGN NIGIDAESH;Nl;0;L;;;;;N;;;;; -12458;CUNEIFORM NUMERIC SIGN ONE ESHE3;Nl;0;L;;;;1;N;;;;; -12459;CUNEIFORM NUMERIC SIGN TWO ESHE3;Nl;0;L;;;;2;N;;;;; -1245A;CUNEIFORM NUMERIC SIGN ONE THIRD DISH;Nl;0;L;;;;1/3;N;;;;; -1245B;CUNEIFORM NUMERIC SIGN TWO THIRDS DISH;Nl;0;L;;;;2/3;N;;;;; -1245C;CUNEIFORM NUMERIC SIGN FIVE SIXTHS DISH;Nl;0;L;;;;5/6;N;;;;; -1245D;CUNEIFORM NUMERIC SIGN ONE THIRD VARIANT FORM A;Nl;0;L;;;;1/3;N;;;;; -1245E;CUNEIFORM NUMERIC SIGN TWO THIRDS VARIANT FORM A;Nl;0;L;;;;2/3;N;;;;; -1245F;CUNEIFORM NUMERIC SIGN ONE EIGHTH ASH;Nl;0;L;;;;1/8;N;;;;; -12460;CUNEIFORM NUMERIC SIGN ONE QUARTER ASH;Nl;0;L;;;;1/4;N;;;;; -12461;CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE SIXTH;Nl;0;L;;;;1/6;N;;;;; -12462;CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER;Nl;0;L;;;;1/4;N;;;;; -12470;CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER;Po;0;L;;;;;N;;;;; -12471;CUNEIFORM PUNCTUATION SIGN VERTICAL COLON;Po;0;L;;;;;N;;;;; -12472;CUNEIFORM PUNCTUATION SIGN DIAGONAL COLON;Po;0;L;;;;;N;;;;; -12473;CUNEIFORM PUNCTUATION SIGN DIAGONAL TRICOLON;Po;0;L;;;;;N;;;;; -13000;EGYPTIAN HIEROGLYPH A001;Lo;0;L;;;;;N;;;;; -13001;EGYPTIAN HIEROGLYPH A002;Lo;0;L;;;;;N;;;;; -13002;EGYPTIAN HIEROGLYPH A003;Lo;0;L;;;;;N;;;;; -13003;EGYPTIAN HIEROGLYPH A004;Lo;0;L;;;;;N;;;;; -13004;EGYPTIAN HIEROGLYPH A005;Lo;0;L;;;;;N;;;;; -13005;EGYPTIAN HIEROGLYPH A005A;Lo;0;L;;;;;N;;;;; -13006;EGYPTIAN HIEROGLYPH A006;Lo;0;L;;;;;N;;;;; -13007;EGYPTIAN HIEROGLYPH A006A;Lo;0;L;;;;;N;;;;; -13008;EGYPTIAN HIEROGLYPH A006B;Lo;0;L;;;;;N;;;;; -13009;EGYPTIAN HIEROGLYPH A007;Lo;0;L;;;;;N;;;;; -1300A;EGYPTIAN HIEROGLYPH A008;Lo;0;L;;;;;N;;;;; -1300B;EGYPTIAN HIEROGLYPH A009;Lo;0;L;;;;;N;;;;; -1300C;EGYPTIAN HIEROGLYPH A010;Lo;0;L;;;;;N;;;;; -1300D;EGYPTIAN HIEROGLYPH A011;Lo;0;L;;;;;N;;;;; -1300E;EGYPTIAN HIEROGLYPH A012;Lo;0;L;;;;;N;;;;; -1300F;EGYPTIAN HIEROGLYPH A013;Lo;0;L;;;;;N;;;;; -13010;EGYPTIAN HIEROGLYPH A014;Lo;0;L;;;;;N;;;;; -13011;EGYPTIAN HIEROGLYPH A014A;Lo;0;L;;;;;N;;;;; -13012;EGYPTIAN HIEROGLYPH A015;Lo;0;L;;;;;N;;;;; -13013;EGYPTIAN HIEROGLYPH A016;Lo;0;L;;;;;N;;;;; -13014;EGYPTIAN HIEROGLYPH A017;Lo;0;L;;;;;N;;;;; -13015;EGYPTIAN HIEROGLYPH A017A;Lo;0;L;;;;;N;;;;; -13016;EGYPTIAN HIEROGLYPH A018;Lo;0;L;;;;;N;;;;; -13017;EGYPTIAN HIEROGLYPH A019;Lo;0;L;;;;;N;;;;; -13018;EGYPTIAN HIEROGLYPH A020;Lo;0;L;;;;;N;;;;; -13019;EGYPTIAN HIEROGLYPH A021;Lo;0;L;;;;;N;;;;; -1301A;EGYPTIAN HIEROGLYPH A022;Lo;0;L;;;;;N;;;;; -1301B;EGYPTIAN HIEROGLYPH A023;Lo;0;L;;;;;N;;;;; -1301C;EGYPTIAN HIEROGLYPH A024;Lo;0;L;;;;;N;;;;; -1301D;EGYPTIAN HIEROGLYPH A025;Lo;0;L;;;;;N;;;;; -1301E;EGYPTIAN HIEROGLYPH A026;Lo;0;L;;;;;N;;;;; -1301F;EGYPTIAN HIEROGLYPH A027;Lo;0;L;;;;;N;;;;; -13020;EGYPTIAN HIEROGLYPH A028;Lo;0;L;;;;;N;;;;; -13021;EGYPTIAN HIEROGLYPH A029;Lo;0;L;;;;;N;;;;; -13022;EGYPTIAN HIEROGLYPH A030;Lo;0;L;;;;;N;;;;; -13023;EGYPTIAN HIEROGLYPH A031;Lo;0;L;;;;;N;;;;; -13024;EGYPTIAN HIEROGLYPH A032;Lo;0;L;;;;;N;;;;; -13025;EGYPTIAN HIEROGLYPH A032A;Lo;0;L;;;;;N;;;;; -13026;EGYPTIAN HIEROGLYPH A033;Lo;0;L;;;;;N;;;;; -13027;EGYPTIAN HIEROGLYPH A034;Lo;0;L;;;;;N;;;;; -13028;EGYPTIAN HIEROGLYPH A035;Lo;0;L;;;;;N;;;;; -13029;EGYPTIAN HIEROGLYPH A036;Lo;0;L;;;;;N;;;;; -1302A;EGYPTIAN HIEROGLYPH A037;Lo;0;L;;;;;N;;;;; -1302B;EGYPTIAN HIEROGLYPH A038;Lo;0;L;;;;;N;;;;; -1302C;EGYPTIAN HIEROGLYPH A039;Lo;0;L;;;;;N;;;;; -1302D;EGYPTIAN HIEROGLYPH A040;Lo;0;L;;;;;N;;;;; -1302E;EGYPTIAN HIEROGLYPH A040A;Lo;0;L;;;;;N;;;;; -1302F;EGYPTIAN HIEROGLYPH A041;Lo;0;L;;;;;N;;;;; -13030;EGYPTIAN HIEROGLYPH A042;Lo;0;L;;;;;N;;;;; -13031;EGYPTIAN HIEROGLYPH A042A;Lo;0;L;;;;;N;;;;; -13032;EGYPTIAN HIEROGLYPH A043;Lo;0;L;;;;;N;;;;; -13033;EGYPTIAN HIEROGLYPH A043A;Lo;0;L;;;;;N;;;;; -13034;EGYPTIAN HIEROGLYPH A044;Lo;0;L;;;;;N;;;;; -13035;EGYPTIAN HIEROGLYPH A045;Lo;0;L;;;;;N;;;;; -13036;EGYPTIAN HIEROGLYPH A045A;Lo;0;L;;;;;N;;;;; -13037;EGYPTIAN HIEROGLYPH A046;Lo;0;L;;;;;N;;;;; -13038;EGYPTIAN HIEROGLYPH A047;Lo;0;L;;;;;N;;;;; -13039;EGYPTIAN HIEROGLYPH A048;Lo;0;L;;;;;N;;;;; -1303A;EGYPTIAN HIEROGLYPH A049;Lo;0;L;;;;;N;;;;; -1303B;EGYPTIAN HIEROGLYPH A050;Lo;0;L;;;;;N;;;;; -1303C;EGYPTIAN HIEROGLYPH A051;Lo;0;L;;;;;N;;;;; -1303D;EGYPTIAN HIEROGLYPH A052;Lo;0;L;;;;;N;;;;; -1303E;EGYPTIAN HIEROGLYPH A053;Lo;0;L;;;;;N;;;;; -1303F;EGYPTIAN HIEROGLYPH A054;Lo;0;L;;;;;N;;;;; -13040;EGYPTIAN HIEROGLYPH A055;Lo;0;L;;;;;N;;;;; -13041;EGYPTIAN HIEROGLYPH A056;Lo;0;L;;;;;N;;;;; -13042;EGYPTIAN HIEROGLYPH A057;Lo;0;L;;;;;N;;;;; -13043;EGYPTIAN HIEROGLYPH A058;Lo;0;L;;;;;N;;;;; -13044;EGYPTIAN HIEROGLYPH A059;Lo;0;L;;;;;N;;;;; -13045;EGYPTIAN HIEROGLYPH A060;Lo;0;L;;;;;N;;;;; -13046;EGYPTIAN HIEROGLYPH A061;Lo;0;L;;;;;N;;;;; -13047;EGYPTIAN HIEROGLYPH A062;Lo;0;L;;;;;N;;;;; -13048;EGYPTIAN HIEROGLYPH A063;Lo;0;L;;;;;N;;;;; -13049;EGYPTIAN HIEROGLYPH A064;Lo;0;L;;;;;N;;;;; -1304A;EGYPTIAN HIEROGLYPH A065;Lo;0;L;;;;;N;;;;; -1304B;EGYPTIAN HIEROGLYPH A066;Lo;0;L;;;;;N;;;;; -1304C;EGYPTIAN HIEROGLYPH A067;Lo;0;L;;;;;N;;;;; -1304D;EGYPTIAN HIEROGLYPH A068;Lo;0;L;;;;;N;;;;; -1304E;EGYPTIAN HIEROGLYPH A069;Lo;0;L;;;;;N;;;;; -1304F;EGYPTIAN HIEROGLYPH A070;Lo;0;L;;;;;N;;;;; -13050;EGYPTIAN HIEROGLYPH B001;Lo;0;L;;;;;N;;;;; -13051;EGYPTIAN HIEROGLYPH B002;Lo;0;L;;;;;N;;;;; -13052;EGYPTIAN HIEROGLYPH B003;Lo;0;L;;;;;N;;;;; -13053;EGYPTIAN HIEROGLYPH B004;Lo;0;L;;;;;N;;;;; -13054;EGYPTIAN HIEROGLYPH B005;Lo;0;L;;;;;N;;;;; -13055;EGYPTIAN HIEROGLYPH B005A;Lo;0;L;;;;;N;;;;; -13056;EGYPTIAN HIEROGLYPH B006;Lo;0;L;;;;;N;;;;; -13057;EGYPTIAN HIEROGLYPH B007;Lo;0;L;;;;;N;;;;; -13058;EGYPTIAN HIEROGLYPH B008;Lo;0;L;;;;;N;;;;; -13059;EGYPTIAN HIEROGLYPH B009;Lo;0;L;;;;;N;;;;; -1305A;EGYPTIAN HIEROGLYPH C001;Lo;0;L;;;;;N;;;;; -1305B;EGYPTIAN HIEROGLYPH C002;Lo;0;L;;;;;N;;;;; -1305C;EGYPTIAN HIEROGLYPH C002A;Lo;0;L;;;;;N;;;;; -1305D;EGYPTIAN HIEROGLYPH C002B;Lo;0;L;;;;;N;;;;; -1305E;EGYPTIAN HIEROGLYPH C002C;Lo;0;L;;;;;N;;;;; -1305F;EGYPTIAN HIEROGLYPH C003;Lo;0;L;;;;;N;;;;; -13060;EGYPTIAN HIEROGLYPH C004;Lo;0;L;;;;;N;;;;; -13061;EGYPTIAN HIEROGLYPH C005;Lo;0;L;;;;;N;;;;; -13062;EGYPTIAN HIEROGLYPH C006;Lo;0;L;;;;;N;;;;; -13063;EGYPTIAN HIEROGLYPH C007;Lo;0;L;;;;;N;;;;; -13064;EGYPTIAN HIEROGLYPH C008;Lo;0;L;;;;;N;;;;; -13065;EGYPTIAN HIEROGLYPH C009;Lo;0;L;;;;;N;;;;; -13066;EGYPTIAN HIEROGLYPH C010;Lo;0;L;;;;;N;;;;; -13067;EGYPTIAN HIEROGLYPH C010A;Lo;0;L;;;;;N;;;;; -13068;EGYPTIAN HIEROGLYPH C011;Lo;0;L;;;;;N;;;;; -13069;EGYPTIAN HIEROGLYPH C012;Lo;0;L;;;;;N;;;;; -1306A;EGYPTIAN HIEROGLYPH C013;Lo;0;L;;;;;N;;;;; -1306B;EGYPTIAN HIEROGLYPH C014;Lo;0;L;;;;;N;;;;; -1306C;EGYPTIAN HIEROGLYPH C015;Lo;0;L;;;;;N;;;;; -1306D;EGYPTIAN HIEROGLYPH C016;Lo;0;L;;;;;N;;;;; -1306E;EGYPTIAN HIEROGLYPH C017;Lo;0;L;;;;;N;;;;; -1306F;EGYPTIAN HIEROGLYPH C018;Lo;0;L;;;;;N;;;;; -13070;EGYPTIAN HIEROGLYPH C019;Lo;0;L;;;;;N;;;;; -13071;EGYPTIAN HIEROGLYPH C020;Lo;0;L;;;;;N;;;;; -13072;EGYPTIAN HIEROGLYPH C021;Lo;0;L;;;;;N;;;;; -13073;EGYPTIAN HIEROGLYPH C022;Lo;0;L;;;;;N;;;;; -13074;EGYPTIAN HIEROGLYPH C023;Lo;0;L;;;;;N;;;;; -13075;EGYPTIAN HIEROGLYPH C024;Lo;0;L;;;;;N;;;;; -13076;EGYPTIAN HIEROGLYPH D001;Lo;0;L;;;;;N;;;;; -13077;EGYPTIAN HIEROGLYPH D002;Lo;0;L;;;;;N;;;;; -13078;EGYPTIAN HIEROGLYPH D003;Lo;0;L;;;;;N;;;;; -13079;EGYPTIAN HIEROGLYPH D004;Lo;0;L;;;;;N;;;;; -1307A;EGYPTIAN HIEROGLYPH D005;Lo;0;L;;;;;N;;;;; -1307B;EGYPTIAN HIEROGLYPH D006;Lo;0;L;;;;;N;;;;; -1307C;EGYPTIAN HIEROGLYPH D007;Lo;0;L;;;;;N;;;;; -1307D;EGYPTIAN HIEROGLYPH D008;Lo;0;L;;;;;N;;;;; -1307E;EGYPTIAN HIEROGLYPH D008A;Lo;0;L;;;;;N;;;;; -1307F;EGYPTIAN HIEROGLYPH D009;Lo;0;L;;;;;N;;;;; -13080;EGYPTIAN HIEROGLYPH D010;Lo;0;L;;;;;N;;;;; -13081;EGYPTIAN HIEROGLYPH D011;Lo;0;L;;;;;N;;;;; -13082;EGYPTIAN HIEROGLYPH D012;Lo;0;L;;;;;N;;;;; -13083;EGYPTIAN HIEROGLYPH D013;Lo;0;L;;;;;N;;;;; -13084;EGYPTIAN HIEROGLYPH D014;Lo;0;L;;;;;N;;;;; -13085;EGYPTIAN HIEROGLYPH D015;Lo;0;L;;;;;N;;;;; -13086;EGYPTIAN HIEROGLYPH D016;Lo;0;L;;;;;N;;;;; -13087;EGYPTIAN HIEROGLYPH D017;Lo;0;L;;;;;N;;;;; -13088;EGYPTIAN HIEROGLYPH D018;Lo;0;L;;;;;N;;;;; -13089;EGYPTIAN HIEROGLYPH D019;Lo;0;L;;;;;N;;;;; -1308A;EGYPTIAN HIEROGLYPH D020;Lo;0;L;;;;;N;;;;; -1308B;EGYPTIAN HIEROGLYPH D021;Lo;0;L;;;;;N;;;;; -1308C;EGYPTIAN HIEROGLYPH D022;Lo;0;L;;;;;N;;;;; -1308D;EGYPTIAN HIEROGLYPH D023;Lo;0;L;;;;;N;;;;; -1308E;EGYPTIAN HIEROGLYPH D024;Lo;0;L;;;;;N;;;;; -1308F;EGYPTIAN HIEROGLYPH D025;Lo;0;L;;;;;N;;;;; -13090;EGYPTIAN HIEROGLYPH D026;Lo;0;L;;;;;N;;;;; -13091;EGYPTIAN HIEROGLYPH D027;Lo;0;L;;;;;N;;;;; -13092;EGYPTIAN HIEROGLYPH D027A;Lo;0;L;;;;;N;;;;; -13093;EGYPTIAN HIEROGLYPH D028;Lo;0;L;;;;;N;;;;; -13094;EGYPTIAN HIEROGLYPH D029;Lo;0;L;;;;;N;;;;; -13095;EGYPTIAN HIEROGLYPH D030;Lo;0;L;;;;;N;;;;; -13096;EGYPTIAN HIEROGLYPH D031;Lo;0;L;;;;;N;;;;; -13097;EGYPTIAN HIEROGLYPH D031A;Lo;0;L;;;;;N;;;;; -13098;EGYPTIAN HIEROGLYPH D032;Lo;0;L;;;;;N;;;;; -13099;EGYPTIAN HIEROGLYPH D033;Lo;0;L;;;;;N;;;;; -1309A;EGYPTIAN HIEROGLYPH D034;Lo;0;L;;;;;N;;;;; -1309B;EGYPTIAN HIEROGLYPH D034A;Lo;0;L;;;;;N;;;;; -1309C;EGYPTIAN HIEROGLYPH D035;Lo;0;L;;;;;N;;;;; -1309D;EGYPTIAN HIEROGLYPH D036;Lo;0;L;;;;;N;;;;; -1309E;EGYPTIAN HIEROGLYPH D037;Lo;0;L;;;;;N;;;;; -1309F;EGYPTIAN HIEROGLYPH D038;Lo;0;L;;;;;N;;;;; -130A0;EGYPTIAN HIEROGLYPH D039;Lo;0;L;;;;;N;;;;; -130A1;EGYPTIAN HIEROGLYPH D040;Lo;0;L;;;;;N;;;;; -130A2;EGYPTIAN HIEROGLYPH D041;Lo;0;L;;;;;N;;;;; -130A3;EGYPTIAN HIEROGLYPH D042;Lo;0;L;;;;;N;;;;; -130A4;EGYPTIAN HIEROGLYPH D043;Lo;0;L;;;;;N;;;;; -130A5;EGYPTIAN HIEROGLYPH D044;Lo;0;L;;;;;N;;;;; -130A6;EGYPTIAN HIEROGLYPH D045;Lo;0;L;;;;;N;;;;; -130A7;EGYPTIAN HIEROGLYPH D046;Lo;0;L;;;;;N;;;;; -130A8;EGYPTIAN HIEROGLYPH D046A;Lo;0;L;;;;;N;;;;; -130A9;EGYPTIAN HIEROGLYPH D047;Lo;0;L;;;;;N;;;;; -130AA;EGYPTIAN HIEROGLYPH D048;Lo;0;L;;;;;N;;;;; -130AB;EGYPTIAN HIEROGLYPH D048A;Lo;0;L;;;;;N;;;;; -130AC;EGYPTIAN HIEROGLYPH D049;Lo;0;L;;;;;N;;;;; -130AD;EGYPTIAN HIEROGLYPH D050;Lo;0;L;;;;;N;;;;; -130AE;EGYPTIAN HIEROGLYPH D050A;Lo;0;L;;;;;N;;;;; -130AF;EGYPTIAN HIEROGLYPH D050B;Lo;0;L;;;;;N;;;;; -130B0;EGYPTIAN HIEROGLYPH D050C;Lo;0;L;;;;;N;;;;; -130B1;EGYPTIAN HIEROGLYPH D050D;Lo;0;L;;;;;N;;;;; -130B2;EGYPTIAN HIEROGLYPH D050E;Lo;0;L;;;;;N;;;;; -130B3;EGYPTIAN HIEROGLYPH D050F;Lo;0;L;;;;;N;;;;; -130B4;EGYPTIAN HIEROGLYPH D050G;Lo;0;L;;;;;N;;;;; -130B5;EGYPTIAN HIEROGLYPH D050H;Lo;0;L;;;;;N;;;;; -130B6;EGYPTIAN HIEROGLYPH D050I;Lo;0;L;;;;;N;;;;; -130B7;EGYPTIAN HIEROGLYPH D051;Lo;0;L;;;;;N;;;;; -130B8;EGYPTIAN HIEROGLYPH D052;Lo;0;L;;;;;N;;;;; -130B9;EGYPTIAN HIEROGLYPH D052A;Lo;0;L;;;;;N;;;;; -130BA;EGYPTIAN HIEROGLYPH D053;Lo;0;L;;;;;N;;;;; -130BB;EGYPTIAN HIEROGLYPH D054;Lo;0;L;;;;;N;;;;; -130BC;EGYPTIAN HIEROGLYPH D054A;Lo;0;L;;;;;N;;;;; -130BD;EGYPTIAN HIEROGLYPH D055;Lo;0;L;;;;;N;;;;; -130BE;EGYPTIAN HIEROGLYPH D056;Lo;0;L;;;;;N;;;;; -130BF;EGYPTIAN HIEROGLYPH D057;Lo;0;L;;;;;N;;;;; -130C0;EGYPTIAN HIEROGLYPH D058;Lo;0;L;;;;;N;;;;; -130C1;EGYPTIAN HIEROGLYPH D059;Lo;0;L;;;;;N;;;;; -130C2;EGYPTIAN HIEROGLYPH D060;Lo;0;L;;;;;N;;;;; -130C3;EGYPTIAN HIEROGLYPH D061;Lo;0;L;;;;;N;;;;; -130C4;EGYPTIAN HIEROGLYPH D062;Lo;0;L;;;;;N;;;;; -130C5;EGYPTIAN HIEROGLYPH D063;Lo;0;L;;;;;N;;;;; -130C6;EGYPTIAN HIEROGLYPH D064;Lo;0;L;;;;;N;;;;; -130C7;EGYPTIAN HIEROGLYPH D065;Lo;0;L;;;;;N;;;;; -130C8;EGYPTIAN HIEROGLYPH D066;Lo;0;L;;;;;N;;;;; -130C9;EGYPTIAN HIEROGLYPH D067;Lo;0;L;;;;;N;;;;; -130CA;EGYPTIAN HIEROGLYPH D067A;Lo;0;L;;;;;N;;;;; -130CB;EGYPTIAN HIEROGLYPH D067B;Lo;0;L;;;;;N;;;;; -130CC;EGYPTIAN HIEROGLYPH D067C;Lo;0;L;;;;;N;;;;; -130CD;EGYPTIAN HIEROGLYPH D067D;Lo;0;L;;;;;N;;;;; -130CE;EGYPTIAN HIEROGLYPH D067E;Lo;0;L;;;;;N;;;;; -130CF;EGYPTIAN HIEROGLYPH D067F;Lo;0;L;;;;;N;;;;; -130D0;EGYPTIAN HIEROGLYPH D067G;Lo;0;L;;;;;N;;;;; -130D1;EGYPTIAN HIEROGLYPH D067H;Lo;0;L;;;;;N;;;;; -130D2;EGYPTIAN HIEROGLYPH E001;Lo;0;L;;;;;N;;;;; -130D3;EGYPTIAN HIEROGLYPH E002;Lo;0;L;;;;;N;;;;; -130D4;EGYPTIAN HIEROGLYPH E003;Lo;0;L;;;;;N;;;;; -130D5;EGYPTIAN HIEROGLYPH E004;Lo;0;L;;;;;N;;;;; -130D6;EGYPTIAN HIEROGLYPH E005;Lo;0;L;;;;;N;;;;; -130D7;EGYPTIAN HIEROGLYPH E006;Lo;0;L;;;;;N;;;;; -130D8;EGYPTIAN HIEROGLYPH E007;Lo;0;L;;;;;N;;;;; -130D9;EGYPTIAN HIEROGLYPH E008;Lo;0;L;;;;;N;;;;; -130DA;EGYPTIAN HIEROGLYPH E008A;Lo;0;L;;;;;N;;;;; -130DB;EGYPTIAN HIEROGLYPH E009;Lo;0;L;;;;;N;;;;; -130DC;EGYPTIAN HIEROGLYPH E009A;Lo;0;L;;;;;N;;;;; -130DD;EGYPTIAN HIEROGLYPH E010;Lo;0;L;;;;;N;;;;; -130DE;EGYPTIAN HIEROGLYPH E011;Lo;0;L;;;;;N;;;;; -130DF;EGYPTIAN HIEROGLYPH E012;Lo;0;L;;;;;N;;;;; -130E0;EGYPTIAN HIEROGLYPH E013;Lo;0;L;;;;;N;;;;; -130E1;EGYPTIAN HIEROGLYPH E014;Lo;0;L;;;;;N;;;;; -130E2;EGYPTIAN HIEROGLYPH E015;Lo;0;L;;;;;N;;;;; -130E3;EGYPTIAN HIEROGLYPH E016;Lo;0;L;;;;;N;;;;; -130E4;EGYPTIAN HIEROGLYPH E016A;Lo;0;L;;;;;N;;;;; -130E5;EGYPTIAN HIEROGLYPH E017;Lo;0;L;;;;;N;;;;; -130E6;EGYPTIAN HIEROGLYPH E017A;Lo;0;L;;;;;N;;;;; -130E7;EGYPTIAN HIEROGLYPH E018;Lo;0;L;;;;;N;;;;; -130E8;EGYPTIAN HIEROGLYPH E019;Lo;0;L;;;;;N;;;;; -130E9;EGYPTIAN HIEROGLYPH E020;Lo;0;L;;;;;N;;;;; -130EA;EGYPTIAN HIEROGLYPH E020A;Lo;0;L;;;;;N;;;;; -130EB;EGYPTIAN HIEROGLYPH E021;Lo;0;L;;;;;N;;;;; -130EC;EGYPTIAN HIEROGLYPH E022;Lo;0;L;;;;;N;;;;; -130ED;EGYPTIAN HIEROGLYPH E023;Lo;0;L;;;;;N;;;;; -130EE;EGYPTIAN HIEROGLYPH E024;Lo;0;L;;;;;N;;;;; -130EF;EGYPTIAN HIEROGLYPH E025;Lo;0;L;;;;;N;;;;; -130F0;EGYPTIAN HIEROGLYPH E026;Lo;0;L;;;;;N;;;;; -130F1;EGYPTIAN HIEROGLYPH E027;Lo;0;L;;;;;N;;;;; -130F2;EGYPTIAN HIEROGLYPH E028;Lo;0;L;;;;;N;;;;; -130F3;EGYPTIAN HIEROGLYPH E028A;Lo;0;L;;;;;N;;;;; -130F4;EGYPTIAN HIEROGLYPH E029;Lo;0;L;;;;;N;;;;; -130F5;EGYPTIAN HIEROGLYPH E030;Lo;0;L;;;;;N;;;;; -130F6;EGYPTIAN HIEROGLYPH E031;Lo;0;L;;;;;N;;;;; -130F7;EGYPTIAN HIEROGLYPH E032;Lo;0;L;;;;;N;;;;; -130F8;EGYPTIAN HIEROGLYPH E033;Lo;0;L;;;;;N;;;;; -130F9;EGYPTIAN HIEROGLYPH E034;Lo;0;L;;;;;N;;;;; -130FA;EGYPTIAN HIEROGLYPH E034A;Lo;0;L;;;;;N;;;;; -130FB;EGYPTIAN HIEROGLYPH E036;Lo;0;L;;;;;N;;;;; -130FC;EGYPTIAN HIEROGLYPH E037;Lo;0;L;;;;;N;;;;; -130FD;EGYPTIAN HIEROGLYPH E038;Lo;0;L;;;;;N;;;;; -130FE;EGYPTIAN HIEROGLYPH F001;Lo;0;L;;;;;N;;;;; -130FF;EGYPTIAN HIEROGLYPH F001A;Lo;0;L;;;;;N;;;;; -13100;EGYPTIAN HIEROGLYPH F002;Lo;0;L;;;;;N;;;;; -13101;EGYPTIAN HIEROGLYPH F003;Lo;0;L;;;;;N;;;;; -13102;EGYPTIAN HIEROGLYPH F004;Lo;0;L;;;;;N;;;;; -13103;EGYPTIAN HIEROGLYPH F005;Lo;0;L;;;;;N;;;;; -13104;EGYPTIAN HIEROGLYPH F006;Lo;0;L;;;;;N;;;;; -13105;EGYPTIAN HIEROGLYPH F007;Lo;0;L;;;;;N;;;;; -13106;EGYPTIAN HIEROGLYPH F008;Lo;0;L;;;;;N;;;;; -13107;EGYPTIAN HIEROGLYPH F009;Lo;0;L;;;;;N;;;;; -13108;EGYPTIAN HIEROGLYPH F010;Lo;0;L;;;;;N;;;;; -13109;EGYPTIAN HIEROGLYPH F011;Lo;0;L;;;;;N;;;;; -1310A;EGYPTIAN HIEROGLYPH F012;Lo;0;L;;;;;N;;;;; -1310B;EGYPTIAN HIEROGLYPH F013;Lo;0;L;;;;;N;;;;; -1310C;EGYPTIAN HIEROGLYPH F013A;Lo;0;L;;;;;N;;;;; -1310D;EGYPTIAN HIEROGLYPH F014;Lo;0;L;;;;;N;;;;; -1310E;EGYPTIAN HIEROGLYPH F015;Lo;0;L;;;;;N;;;;; -1310F;EGYPTIAN HIEROGLYPH F016;Lo;0;L;;;;;N;;;;; -13110;EGYPTIAN HIEROGLYPH F017;Lo;0;L;;;;;N;;;;; -13111;EGYPTIAN HIEROGLYPH F018;Lo;0;L;;;;;N;;;;; -13112;EGYPTIAN HIEROGLYPH F019;Lo;0;L;;;;;N;;;;; -13113;EGYPTIAN HIEROGLYPH F020;Lo;0;L;;;;;N;;;;; -13114;EGYPTIAN HIEROGLYPH F021;Lo;0;L;;;;;N;;;;; -13115;EGYPTIAN HIEROGLYPH F021A;Lo;0;L;;;;;N;;;;; -13116;EGYPTIAN HIEROGLYPH F022;Lo;0;L;;;;;N;;;;; -13117;EGYPTIAN HIEROGLYPH F023;Lo;0;L;;;;;N;;;;; -13118;EGYPTIAN HIEROGLYPH F024;Lo;0;L;;;;;N;;;;; -13119;EGYPTIAN HIEROGLYPH F025;Lo;0;L;;;;;N;;;;; -1311A;EGYPTIAN HIEROGLYPH F026;Lo;0;L;;;;;N;;;;; -1311B;EGYPTIAN HIEROGLYPH F027;Lo;0;L;;;;;N;;;;; -1311C;EGYPTIAN HIEROGLYPH F028;Lo;0;L;;;;;N;;;;; -1311D;EGYPTIAN HIEROGLYPH F029;Lo;0;L;;;;;N;;;;; -1311E;EGYPTIAN HIEROGLYPH F030;Lo;0;L;;;;;N;;;;; -1311F;EGYPTIAN HIEROGLYPH F031;Lo;0;L;;;;;N;;;;; -13120;EGYPTIAN HIEROGLYPH F031A;Lo;0;L;;;;;N;;;;; -13121;EGYPTIAN HIEROGLYPH F032;Lo;0;L;;;;;N;;;;; -13122;EGYPTIAN HIEROGLYPH F033;Lo;0;L;;;;;N;;;;; -13123;EGYPTIAN HIEROGLYPH F034;Lo;0;L;;;;;N;;;;; -13124;EGYPTIAN HIEROGLYPH F035;Lo;0;L;;;;;N;;;;; -13125;EGYPTIAN HIEROGLYPH F036;Lo;0;L;;;;;N;;;;; -13126;EGYPTIAN HIEROGLYPH F037;Lo;0;L;;;;;N;;;;; -13127;EGYPTIAN HIEROGLYPH F037A;Lo;0;L;;;;;N;;;;; -13128;EGYPTIAN HIEROGLYPH F038;Lo;0;L;;;;;N;;;;; -13129;EGYPTIAN HIEROGLYPH F038A;Lo;0;L;;;;;N;;;;; -1312A;EGYPTIAN HIEROGLYPH F039;Lo;0;L;;;;;N;;;;; -1312B;EGYPTIAN HIEROGLYPH F040;Lo;0;L;;;;;N;;;;; -1312C;EGYPTIAN HIEROGLYPH F041;Lo;0;L;;;;;N;;;;; -1312D;EGYPTIAN HIEROGLYPH F042;Lo;0;L;;;;;N;;;;; -1312E;EGYPTIAN HIEROGLYPH F043;Lo;0;L;;;;;N;;;;; -1312F;EGYPTIAN HIEROGLYPH F044;Lo;0;L;;;;;N;;;;; -13130;EGYPTIAN HIEROGLYPH F045;Lo;0;L;;;;;N;;;;; -13131;EGYPTIAN HIEROGLYPH F045A;Lo;0;L;;;;;N;;;;; -13132;EGYPTIAN HIEROGLYPH F046;Lo;0;L;;;;;N;;;;; -13133;EGYPTIAN HIEROGLYPH F046A;Lo;0;L;;;;;N;;;;; -13134;EGYPTIAN HIEROGLYPH F047;Lo;0;L;;;;;N;;;;; -13135;EGYPTIAN HIEROGLYPH F047A;Lo;0;L;;;;;N;;;;; -13136;EGYPTIAN HIEROGLYPH F048;Lo;0;L;;;;;N;;;;; -13137;EGYPTIAN HIEROGLYPH F049;Lo;0;L;;;;;N;;;;; -13138;EGYPTIAN HIEROGLYPH F050;Lo;0;L;;;;;N;;;;; -13139;EGYPTIAN HIEROGLYPH F051;Lo;0;L;;;;;N;;;;; -1313A;EGYPTIAN HIEROGLYPH F051A;Lo;0;L;;;;;N;;;;; -1313B;EGYPTIAN HIEROGLYPH F051B;Lo;0;L;;;;;N;;;;; -1313C;EGYPTIAN HIEROGLYPH F051C;Lo;0;L;;;;;N;;;;; -1313D;EGYPTIAN HIEROGLYPH F052;Lo;0;L;;;;;N;;;;; -1313E;EGYPTIAN HIEROGLYPH F053;Lo;0;L;;;;;N;;;;; -1313F;EGYPTIAN HIEROGLYPH G001;Lo;0;L;;;;;N;;;;; -13140;EGYPTIAN HIEROGLYPH G002;Lo;0;L;;;;;N;;;;; -13141;EGYPTIAN HIEROGLYPH G003;Lo;0;L;;;;;N;;;;; -13142;EGYPTIAN HIEROGLYPH G004;Lo;0;L;;;;;N;;;;; -13143;EGYPTIAN HIEROGLYPH G005;Lo;0;L;;;;;N;;;;; -13144;EGYPTIAN HIEROGLYPH G006;Lo;0;L;;;;;N;;;;; -13145;EGYPTIAN HIEROGLYPH G006A;Lo;0;L;;;;;N;;;;; -13146;EGYPTIAN HIEROGLYPH G007;Lo;0;L;;;;;N;;;;; -13147;EGYPTIAN HIEROGLYPH G007A;Lo;0;L;;;;;N;;;;; -13148;EGYPTIAN HIEROGLYPH G007B;Lo;0;L;;;;;N;;;;; -13149;EGYPTIAN HIEROGLYPH G008;Lo;0;L;;;;;N;;;;; -1314A;EGYPTIAN HIEROGLYPH G009;Lo;0;L;;;;;N;;;;; -1314B;EGYPTIAN HIEROGLYPH G010;Lo;0;L;;;;;N;;;;; -1314C;EGYPTIAN HIEROGLYPH G011;Lo;0;L;;;;;N;;;;; -1314D;EGYPTIAN HIEROGLYPH G011A;Lo;0;L;;;;;N;;;;; -1314E;EGYPTIAN HIEROGLYPH G012;Lo;0;L;;;;;N;;;;; -1314F;EGYPTIAN HIEROGLYPH G013;Lo;0;L;;;;;N;;;;; -13150;EGYPTIAN HIEROGLYPH G014;Lo;0;L;;;;;N;;;;; -13151;EGYPTIAN HIEROGLYPH G015;Lo;0;L;;;;;N;;;;; -13152;EGYPTIAN HIEROGLYPH G016;Lo;0;L;;;;;N;;;;; -13153;EGYPTIAN HIEROGLYPH G017;Lo;0;L;;;;;N;;;;; -13154;EGYPTIAN HIEROGLYPH G018;Lo;0;L;;;;;N;;;;; -13155;EGYPTIAN HIEROGLYPH G019;Lo;0;L;;;;;N;;;;; -13156;EGYPTIAN HIEROGLYPH G020;Lo;0;L;;;;;N;;;;; -13157;EGYPTIAN HIEROGLYPH G020A;Lo;0;L;;;;;N;;;;; -13158;EGYPTIAN HIEROGLYPH G021;Lo;0;L;;;;;N;;;;; -13159;EGYPTIAN HIEROGLYPH G022;Lo;0;L;;;;;N;;;;; -1315A;EGYPTIAN HIEROGLYPH G023;Lo;0;L;;;;;N;;;;; -1315B;EGYPTIAN HIEROGLYPH G024;Lo;0;L;;;;;N;;;;; -1315C;EGYPTIAN HIEROGLYPH G025;Lo;0;L;;;;;N;;;;; -1315D;EGYPTIAN HIEROGLYPH G026;Lo;0;L;;;;;N;;;;; -1315E;EGYPTIAN HIEROGLYPH G026A;Lo;0;L;;;;;N;;;;; -1315F;EGYPTIAN HIEROGLYPH G027;Lo;0;L;;;;;N;;;;; -13160;EGYPTIAN HIEROGLYPH G028;Lo;0;L;;;;;N;;;;; -13161;EGYPTIAN HIEROGLYPH G029;Lo;0;L;;;;;N;;;;; -13162;EGYPTIAN HIEROGLYPH G030;Lo;0;L;;;;;N;;;;; -13163;EGYPTIAN HIEROGLYPH G031;Lo;0;L;;;;;N;;;;; -13164;EGYPTIAN HIEROGLYPH G032;Lo;0;L;;;;;N;;;;; -13165;EGYPTIAN HIEROGLYPH G033;Lo;0;L;;;;;N;;;;; -13166;EGYPTIAN HIEROGLYPH G034;Lo;0;L;;;;;N;;;;; -13167;EGYPTIAN HIEROGLYPH G035;Lo;0;L;;;;;N;;;;; -13168;EGYPTIAN HIEROGLYPH G036;Lo;0;L;;;;;N;;;;; -13169;EGYPTIAN HIEROGLYPH G036A;Lo;0;L;;;;;N;;;;; -1316A;EGYPTIAN HIEROGLYPH G037;Lo;0;L;;;;;N;;;;; -1316B;EGYPTIAN HIEROGLYPH G037A;Lo;0;L;;;;;N;;;;; -1316C;EGYPTIAN HIEROGLYPH G038;Lo;0;L;;;;;N;;;;; -1316D;EGYPTIAN HIEROGLYPH G039;Lo;0;L;;;;;N;;;;; -1316E;EGYPTIAN HIEROGLYPH G040;Lo;0;L;;;;;N;;;;; -1316F;EGYPTIAN HIEROGLYPH G041;Lo;0;L;;;;;N;;;;; -13170;EGYPTIAN HIEROGLYPH G042;Lo;0;L;;;;;N;;;;; -13171;EGYPTIAN HIEROGLYPH G043;Lo;0;L;;;;;N;;;;; -13172;EGYPTIAN HIEROGLYPH G043A;Lo;0;L;;;;;N;;;;; -13173;EGYPTIAN HIEROGLYPH G044;Lo;0;L;;;;;N;;;;; -13174;EGYPTIAN HIEROGLYPH G045;Lo;0;L;;;;;N;;;;; -13175;EGYPTIAN HIEROGLYPH G045A;Lo;0;L;;;;;N;;;;; -13176;EGYPTIAN HIEROGLYPH G046;Lo;0;L;;;;;N;;;;; -13177;EGYPTIAN HIEROGLYPH G047;Lo;0;L;;;;;N;;;;; -13178;EGYPTIAN HIEROGLYPH G048;Lo;0;L;;;;;N;;;;; -13179;EGYPTIAN HIEROGLYPH G049;Lo;0;L;;;;;N;;;;; -1317A;EGYPTIAN HIEROGLYPH G050;Lo;0;L;;;;;N;;;;; -1317B;EGYPTIAN HIEROGLYPH G051;Lo;0;L;;;;;N;;;;; -1317C;EGYPTIAN HIEROGLYPH G052;Lo;0;L;;;;;N;;;;; -1317D;EGYPTIAN HIEROGLYPH G053;Lo;0;L;;;;;N;;;;; -1317E;EGYPTIAN HIEROGLYPH G054;Lo;0;L;;;;;N;;;;; -1317F;EGYPTIAN HIEROGLYPH H001;Lo;0;L;;;;;N;;;;; -13180;EGYPTIAN HIEROGLYPH H002;Lo;0;L;;;;;N;;;;; -13181;EGYPTIAN HIEROGLYPH H003;Lo;0;L;;;;;N;;;;; -13182;EGYPTIAN HIEROGLYPH H004;Lo;0;L;;;;;N;;;;; -13183;EGYPTIAN HIEROGLYPH H005;Lo;0;L;;;;;N;;;;; -13184;EGYPTIAN HIEROGLYPH H006;Lo;0;L;;;;;N;;;;; -13185;EGYPTIAN HIEROGLYPH H006A;Lo;0;L;;;;;N;;;;; -13186;EGYPTIAN HIEROGLYPH H007;Lo;0;L;;;;;N;;;;; -13187;EGYPTIAN HIEROGLYPH H008;Lo;0;L;;;;;N;;;;; -13188;EGYPTIAN HIEROGLYPH I001;Lo;0;L;;;;;N;;;;; -13189;EGYPTIAN HIEROGLYPH I002;Lo;0;L;;;;;N;;;;; -1318A;EGYPTIAN HIEROGLYPH I003;Lo;0;L;;;;;N;;;;; -1318B;EGYPTIAN HIEROGLYPH I004;Lo;0;L;;;;;N;;;;; -1318C;EGYPTIAN HIEROGLYPH I005;Lo;0;L;;;;;N;;;;; -1318D;EGYPTIAN HIEROGLYPH I005A;Lo;0;L;;;;;N;;;;; -1318E;EGYPTIAN HIEROGLYPH I006;Lo;0;L;;;;;N;;;;; -1318F;EGYPTIAN HIEROGLYPH I007;Lo;0;L;;;;;N;;;;; -13190;EGYPTIAN HIEROGLYPH I008;Lo;0;L;;;;;N;;;;; -13191;EGYPTIAN HIEROGLYPH I009;Lo;0;L;;;;;N;;;;; -13192;EGYPTIAN HIEROGLYPH I009A;Lo;0;L;;;;;N;;;;; -13193;EGYPTIAN HIEROGLYPH I010;Lo;0;L;;;;;N;;;;; -13194;EGYPTIAN HIEROGLYPH I010A;Lo;0;L;;;;;N;;;;; -13195;EGYPTIAN HIEROGLYPH I011;Lo;0;L;;;;;N;;;;; -13196;EGYPTIAN HIEROGLYPH I011A;Lo;0;L;;;;;N;;;;; -13197;EGYPTIAN HIEROGLYPH I012;Lo;0;L;;;;;N;;;;; -13198;EGYPTIAN HIEROGLYPH I013;Lo;0;L;;;;;N;;;;; -13199;EGYPTIAN HIEROGLYPH I014;Lo;0;L;;;;;N;;;;; -1319A;EGYPTIAN HIEROGLYPH I015;Lo;0;L;;;;;N;;;;; -1319B;EGYPTIAN HIEROGLYPH K001;Lo;0;L;;;;;N;;;;; -1319C;EGYPTIAN HIEROGLYPH K002;Lo;0;L;;;;;N;;;;; -1319D;EGYPTIAN HIEROGLYPH K003;Lo;0;L;;;;;N;;;;; -1319E;EGYPTIAN HIEROGLYPH K004;Lo;0;L;;;;;N;;;;; -1319F;EGYPTIAN HIEROGLYPH K005;Lo;0;L;;;;;N;;;;; -131A0;EGYPTIAN HIEROGLYPH K006;Lo;0;L;;;;;N;;;;; -131A1;EGYPTIAN HIEROGLYPH K007;Lo;0;L;;;;;N;;;;; -131A2;EGYPTIAN HIEROGLYPH K008;Lo;0;L;;;;;N;;;;; -131A3;EGYPTIAN HIEROGLYPH L001;Lo;0;L;;;;;N;;;;; -131A4;EGYPTIAN HIEROGLYPH L002;Lo;0;L;;;;;N;;;;; -131A5;EGYPTIAN HIEROGLYPH L002A;Lo;0;L;;;;;N;;;;; -131A6;EGYPTIAN HIEROGLYPH L003;Lo;0;L;;;;;N;;;;; -131A7;EGYPTIAN HIEROGLYPH L004;Lo;0;L;;;;;N;;;;; -131A8;EGYPTIAN HIEROGLYPH L005;Lo;0;L;;;;;N;;;;; -131A9;EGYPTIAN HIEROGLYPH L006;Lo;0;L;;;;;N;;;;; -131AA;EGYPTIAN HIEROGLYPH L006A;Lo;0;L;;;;;N;;;;; -131AB;EGYPTIAN HIEROGLYPH L007;Lo;0;L;;;;;N;;;;; -131AC;EGYPTIAN HIEROGLYPH L008;Lo;0;L;;;;;N;;;;; -131AD;EGYPTIAN HIEROGLYPH M001;Lo;0;L;;;;;N;;;;; -131AE;EGYPTIAN HIEROGLYPH M001A;Lo;0;L;;;;;N;;;;; -131AF;EGYPTIAN HIEROGLYPH M001B;Lo;0;L;;;;;N;;;;; -131B0;EGYPTIAN HIEROGLYPH M002;Lo;0;L;;;;;N;;;;; -131B1;EGYPTIAN HIEROGLYPH M003;Lo;0;L;;;;;N;;;;; -131B2;EGYPTIAN HIEROGLYPH M003A;Lo;0;L;;;;;N;;;;; -131B3;EGYPTIAN HIEROGLYPH M004;Lo;0;L;;;;;N;;;;; -131B4;EGYPTIAN HIEROGLYPH M005;Lo;0;L;;;;;N;;;;; -131B5;EGYPTIAN HIEROGLYPH M006;Lo;0;L;;;;;N;;;;; -131B6;EGYPTIAN HIEROGLYPH M007;Lo;0;L;;;;;N;;;;; -131B7;EGYPTIAN HIEROGLYPH M008;Lo;0;L;;;;;N;;;;; -131B8;EGYPTIAN HIEROGLYPH M009;Lo;0;L;;;;;N;;;;; -131B9;EGYPTIAN HIEROGLYPH M010;Lo;0;L;;;;;N;;;;; -131BA;EGYPTIAN HIEROGLYPH M010A;Lo;0;L;;;;;N;;;;; -131BB;EGYPTIAN HIEROGLYPH M011;Lo;0;L;;;;;N;;;;; -131BC;EGYPTIAN HIEROGLYPH M012;Lo;0;L;;;;;N;;;;; -131BD;EGYPTIAN HIEROGLYPH M012A;Lo;0;L;;;;;N;;;;; -131BE;EGYPTIAN HIEROGLYPH M012B;Lo;0;L;;;;;N;;;;; -131BF;EGYPTIAN HIEROGLYPH M012C;Lo;0;L;;;;;N;;;;; -131C0;EGYPTIAN HIEROGLYPH M012D;Lo;0;L;;;;;N;;;;; -131C1;EGYPTIAN HIEROGLYPH M012E;Lo;0;L;;;;;N;;;;; -131C2;EGYPTIAN HIEROGLYPH M012F;Lo;0;L;;;;;N;;;;; -131C3;EGYPTIAN HIEROGLYPH M012G;Lo;0;L;;;;;N;;;;; -131C4;EGYPTIAN HIEROGLYPH M012H;Lo;0;L;;;;;N;;;;; -131C5;EGYPTIAN HIEROGLYPH M013;Lo;0;L;;;;;N;;;;; -131C6;EGYPTIAN HIEROGLYPH M014;Lo;0;L;;;;;N;;;;; -131C7;EGYPTIAN HIEROGLYPH M015;Lo;0;L;;;;;N;;;;; -131C8;EGYPTIAN HIEROGLYPH M015A;Lo;0;L;;;;;N;;;;; -131C9;EGYPTIAN HIEROGLYPH M016;Lo;0;L;;;;;N;;;;; -131CA;EGYPTIAN HIEROGLYPH M016A;Lo;0;L;;;;;N;;;;; -131CB;EGYPTIAN HIEROGLYPH M017;Lo;0;L;;;;;N;;;;; -131CC;EGYPTIAN HIEROGLYPH M017A;Lo;0;L;;;;;N;;;;; -131CD;EGYPTIAN HIEROGLYPH M018;Lo;0;L;;;;;N;;;;; -131CE;EGYPTIAN HIEROGLYPH M019;Lo;0;L;;;;;N;;;;; -131CF;EGYPTIAN HIEROGLYPH M020;Lo;0;L;;;;;N;;;;; -131D0;EGYPTIAN HIEROGLYPH M021;Lo;0;L;;;;;N;;;;; -131D1;EGYPTIAN HIEROGLYPH M022;Lo;0;L;;;;;N;;;;; -131D2;EGYPTIAN HIEROGLYPH M022A;Lo;0;L;;;;;N;;;;; -131D3;EGYPTIAN HIEROGLYPH M023;Lo;0;L;;;;;N;;;;; -131D4;EGYPTIAN HIEROGLYPH M024;Lo;0;L;;;;;N;;;;; -131D5;EGYPTIAN HIEROGLYPH M024A;Lo;0;L;;;;;N;;;;; -131D6;EGYPTIAN HIEROGLYPH M025;Lo;0;L;;;;;N;;;;; -131D7;EGYPTIAN HIEROGLYPH M026;Lo;0;L;;;;;N;;;;; -131D8;EGYPTIAN HIEROGLYPH M027;Lo;0;L;;;;;N;;;;; -131D9;EGYPTIAN HIEROGLYPH M028;Lo;0;L;;;;;N;;;;; -131DA;EGYPTIAN HIEROGLYPH M028A;Lo;0;L;;;;;N;;;;; -131DB;EGYPTIAN HIEROGLYPH M029;Lo;0;L;;;;;N;;;;; -131DC;EGYPTIAN HIEROGLYPH M030;Lo;0;L;;;;;N;;;;; -131DD;EGYPTIAN HIEROGLYPH M031;Lo;0;L;;;;;N;;;;; -131DE;EGYPTIAN HIEROGLYPH M031A;Lo;0;L;;;;;N;;;;; -131DF;EGYPTIAN HIEROGLYPH M032;Lo;0;L;;;;;N;;;;; -131E0;EGYPTIAN HIEROGLYPH M033;Lo;0;L;;;;;N;;;;; -131E1;EGYPTIAN HIEROGLYPH M033A;Lo;0;L;;;;;N;;;;; -131E2;EGYPTIAN HIEROGLYPH M033B;Lo;0;L;;;;;N;;;;; -131E3;EGYPTIAN HIEROGLYPH M034;Lo;0;L;;;;;N;;;;; -131E4;EGYPTIAN HIEROGLYPH M035;Lo;0;L;;;;;N;;;;; -131E5;EGYPTIAN HIEROGLYPH M036;Lo;0;L;;;;;N;;;;; -131E6;EGYPTIAN HIEROGLYPH M037;Lo;0;L;;;;;N;;;;; -131E7;EGYPTIAN HIEROGLYPH M038;Lo;0;L;;;;;N;;;;; -131E8;EGYPTIAN HIEROGLYPH M039;Lo;0;L;;;;;N;;;;; -131E9;EGYPTIAN HIEROGLYPH M040;Lo;0;L;;;;;N;;;;; -131EA;EGYPTIAN HIEROGLYPH M040A;Lo;0;L;;;;;N;;;;; -131EB;EGYPTIAN HIEROGLYPH M041;Lo;0;L;;;;;N;;;;; -131EC;EGYPTIAN HIEROGLYPH M042;Lo;0;L;;;;;N;;;;; -131ED;EGYPTIAN HIEROGLYPH M043;Lo;0;L;;;;;N;;;;; -131EE;EGYPTIAN HIEROGLYPH M044;Lo;0;L;;;;;N;;;;; -131EF;EGYPTIAN HIEROGLYPH N001;Lo;0;L;;;;;N;;;;; -131F0;EGYPTIAN HIEROGLYPH N002;Lo;0;L;;;;;N;;;;; -131F1;EGYPTIAN HIEROGLYPH N003;Lo;0;L;;;;;N;;;;; -131F2;EGYPTIAN HIEROGLYPH N004;Lo;0;L;;;;;N;;;;; -131F3;EGYPTIAN HIEROGLYPH N005;Lo;0;L;;;;;N;;;;; -131F4;EGYPTIAN HIEROGLYPH N006;Lo;0;L;;;;;N;;;;; -131F5;EGYPTIAN HIEROGLYPH N007;Lo;0;L;;;;;N;;;;; -131F6;EGYPTIAN HIEROGLYPH N008;Lo;0;L;;;;;N;;;;; -131F7;EGYPTIAN HIEROGLYPH N009;Lo;0;L;;;;;N;;;;; -131F8;EGYPTIAN HIEROGLYPH N010;Lo;0;L;;;;;N;;;;; -131F9;EGYPTIAN HIEROGLYPH N011;Lo;0;L;;;;;N;;;;; -131FA;EGYPTIAN HIEROGLYPH N012;Lo;0;L;;;;;N;;;;; -131FB;EGYPTIAN HIEROGLYPH N013;Lo;0;L;;;;;N;;;;; -131FC;EGYPTIAN HIEROGLYPH N014;Lo;0;L;;;;;N;;;;; -131FD;EGYPTIAN HIEROGLYPH N015;Lo;0;L;;;;;N;;;;; -131FE;EGYPTIAN HIEROGLYPH N016;Lo;0;L;;;;;N;;;;; -131FF;EGYPTIAN HIEROGLYPH N017;Lo;0;L;;;;;N;;;;; -13200;EGYPTIAN HIEROGLYPH N018;Lo;0;L;;;;;N;;;;; -13201;EGYPTIAN HIEROGLYPH N018A;Lo;0;L;;;;;N;;;;; -13202;EGYPTIAN HIEROGLYPH N018B;Lo;0;L;;;;;N;;;;; -13203;EGYPTIAN HIEROGLYPH N019;Lo;0;L;;;;;N;;;;; -13204;EGYPTIAN HIEROGLYPH N020;Lo;0;L;;;;;N;;;;; -13205;EGYPTIAN HIEROGLYPH N021;Lo;0;L;;;;;N;;;;; -13206;EGYPTIAN HIEROGLYPH N022;Lo;0;L;;;;;N;;;;; -13207;EGYPTIAN HIEROGLYPH N023;Lo;0;L;;;;;N;;;;; -13208;EGYPTIAN HIEROGLYPH N024;Lo;0;L;;;;;N;;;;; -13209;EGYPTIAN HIEROGLYPH N025;Lo;0;L;;;;;N;;;;; -1320A;EGYPTIAN HIEROGLYPH N025A;Lo;0;L;;;;;N;;;;; -1320B;EGYPTIAN HIEROGLYPH N026;Lo;0;L;;;;;N;;;;; -1320C;EGYPTIAN HIEROGLYPH N027;Lo;0;L;;;;;N;;;;; -1320D;EGYPTIAN HIEROGLYPH N028;Lo;0;L;;;;;N;;;;; -1320E;EGYPTIAN HIEROGLYPH N029;Lo;0;L;;;;;N;;;;; -1320F;EGYPTIAN HIEROGLYPH N030;Lo;0;L;;;;;N;;;;; -13210;EGYPTIAN HIEROGLYPH N031;Lo;0;L;;;;;N;;;;; -13211;EGYPTIAN HIEROGLYPH N032;Lo;0;L;;;;;N;;;;; -13212;EGYPTIAN HIEROGLYPH N033;Lo;0;L;;;;;N;;;;; -13213;EGYPTIAN HIEROGLYPH N033A;Lo;0;L;;;;;N;;;;; -13214;EGYPTIAN HIEROGLYPH N034;Lo;0;L;;;;;N;;;;; -13215;EGYPTIAN HIEROGLYPH N034A;Lo;0;L;;;;;N;;;;; -13216;EGYPTIAN HIEROGLYPH N035;Lo;0;L;;;;;N;;;;; -13217;EGYPTIAN HIEROGLYPH N035A;Lo;0;L;;;;;N;;;;; -13218;EGYPTIAN HIEROGLYPH N036;Lo;0;L;;;;;N;;;;; -13219;EGYPTIAN HIEROGLYPH N037;Lo;0;L;;;;;N;;;;; -1321A;EGYPTIAN HIEROGLYPH N037A;Lo;0;L;;;;;N;;;;; -1321B;EGYPTIAN HIEROGLYPH N038;Lo;0;L;;;;;N;;;;; -1321C;EGYPTIAN HIEROGLYPH N039;Lo;0;L;;;;;N;;;;; -1321D;EGYPTIAN HIEROGLYPH N040;Lo;0;L;;;;;N;;;;; -1321E;EGYPTIAN HIEROGLYPH N041;Lo;0;L;;;;;N;;;;; -1321F;EGYPTIAN HIEROGLYPH N042;Lo;0;L;;;;;N;;;;; -13220;EGYPTIAN HIEROGLYPH NL001;Lo;0;L;;;;;N;;;;; -13221;EGYPTIAN HIEROGLYPH NL002;Lo;0;L;;;;;N;;;;; -13222;EGYPTIAN HIEROGLYPH NL003;Lo;0;L;;;;;N;;;;; -13223;EGYPTIAN HIEROGLYPH NL004;Lo;0;L;;;;;N;;;;; -13224;EGYPTIAN HIEROGLYPH NL005;Lo;0;L;;;;;N;;;;; -13225;EGYPTIAN HIEROGLYPH NL005A;Lo;0;L;;;;;N;;;;; -13226;EGYPTIAN HIEROGLYPH NL006;Lo;0;L;;;;;N;;;;; -13227;EGYPTIAN HIEROGLYPH NL007;Lo;0;L;;;;;N;;;;; -13228;EGYPTIAN HIEROGLYPH NL008;Lo;0;L;;;;;N;;;;; -13229;EGYPTIAN HIEROGLYPH NL009;Lo;0;L;;;;;N;;;;; -1322A;EGYPTIAN HIEROGLYPH NL010;Lo;0;L;;;;;N;;;;; -1322B;EGYPTIAN HIEROGLYPH NL011;Lo;0;L;;;;;N;;;;; -1322C;EGYPTIAN HIEROGLYPH NL012;Lo;0;L;;;;;N;;;;; -1322D;EGYPTIAN HIEROGLYPH NL013;Lo;0;L;;;;;N;;;;; -1322E;EGYPTIAN HIEROGLYPH NL014;Lo;0;L;;;;;N;;;;; -1322F;EGYPTIAN HIEROGLYPH NL015;Lo;0;L;;;;;N;;;;; -13230;EGYPTIAN HIEROGLYPH NL016;Lo;0;L;;;;;N;;;;; -13231;EGYPTIAN HIEROGLYPH NL017;Lo;0;L;;;;;N;;;;; -13232;EGYPTIAN HIEROGLYPH NL017A;Lo;0;L;;;;;N;;;;; -13233;EGYPTIAN HIEROGLYPH NL018;Lo;0;L;;;;;N;;;;; -13234;EGYPTIAN HIEROGLYPH NL019;Lo;0;L;;;;;N;;;;; -13235;EGYPTIAN HIEROGLYPH NL020;Lo;0;L;;;;;N;;;;; -13236;EGYPTIAN HIEROGLYPH NU001;Lo;0;L;;;;;N;;;;; -13237;EGYPTIAN HIEROGLYPH NU002;Lo;0;L;;;;;N;;;;; -13238;EGYPTIAN HIEROGLYPH NU003;Lo;0;L;;;;;N;;;;; -13239;EGYPTIAN HIEROGLYPH NU004;Lo;0;L;;;;;N;;;;; -1323A;EGYPTIAN HIEROGLYPH NU005;Lo;0;L;;;;;N;;;;; -1323B;EGYPTIAN HIEROGLYPH NU006;Lo;0;L;;;;;N;;;;; -1323C;EGYPTIAN HIEROGLYPH NU007;Lo;0;L;;;;;N;;;;; -1323D;EGYPTIAN HIEROGLYPH NU008;Lo;0;L;;;;;N;;;;; -1323E;EGYPTIAN HIEROGLYPH NU009;Lo;0;L;;;;;N;;;;; -1323F;EGYPTIAN HIEROGLYPH NU010;Lo;0;L;;;;;N;;;;; -13240;EGYPTIAN HIEROGLYPH NU010A;Lo;0;L;;;;;N;;;;; -13241;EGYPTIAN HIEROGLYPH NU011;Lo;0;L;;;;;N;;;;; -13242;EGYPTIAN HIEROGLYPH NU011A;Lo;0;L;;;;;N;;;;; -13243;EGYPTIAN HIEROGLYPH NU012;Lo;0;L;;;;;N;;;;; -13244;EGYPTIAN HIEROGLYPH NU013;Lo;0;L;;;;;N;;;;; -13245;EGYPTIAN HIEROGLYPH NU014;Lo;0;L;;;;;N;;;;; -13246;EGYPTIAN HIEROGLYPH NU015;Lo;0;L;;;;;N;;;;; -13247;EGYPTIAN HIEROGLYPH NU016;Lo;0;L;;;;;N;;;;; -13248;EGYPTIAN HIEROGLYPH NU017;Lo;0;L;;;;;N;;;;; -13249;EGYPTIAN HIEROGLYPH NU018;Lo;0;L;;;;;N;;;;; -1324A;EGYPTIAN HIEROGLYPH NU018A;Lo;0;L;;;;;N;;;;; -1324B;EGYPTIAN HIEROGLYPH NU019;Lo;0;L;;;;;N;;;;; -1324C;EGYPTIAN HIEROGLYPH NU020;Lo;0;L;;;;;N;;;;; -1324D;EGYPTIAN HIEROGLYPH NU021;Lo;0;L;;;;;N;;;;; -1324E;EGYPTIAN HIEROGLYPH NU022;Lo;0;L;;;;;N;;;;; -1324F;EGYPTIAN HIEROGLYPH NU022A;Lo;0;L;;;;;N;;;;; -13250;EGYPTIAN HIEROGLYPH O001;Lo;0;L;;;;;N;;;;; -13251;EGYPTIAN HIEROGLYPH O001A;Lo;0;L;;;;;N;;;;; -13252;EGYPTIAN HIEROGLYPH O002;Lo;0;L;;;;;N;;;;; -13253;EGYPTIAN HIEROGLYPH O003;Lo;0;L;;;;;N;;;;; -13254;EGYPTIAN HIEROGLYPH O004;Lo;0;L;;;;;N;;;;; -13255;EGYPTIAN HIEROGLYPH O005;Lo;0;L;;;;;N;;;;; -13256;EGYPTIAN HIEROGLYPH O005A;Lo;0;L;;;;;N;;;;; -13257;EGYPTIAN HIEROGLYPH O006;Lo;0;L;;;;;N;;;;; -13258;EGYPTIAN HIEROGLYPH O006A;Lo;0;L;;;;;N;;;;; -13259;EGYPTIAN HIEROGLYPH O006B;Lo;0;L;;;;;N;;;;; -1325A;EGYPTIAN HIEROGLYPH O006C;Lo;0;L;;;;;N;;;;; -1325B;EGYPTIAN HIEROGLYPH O006D;Lo;0;L;;;;;N;;;;; -1325C;EGYPTIAN HIEROGLYPH O006E;Lo;0;L;;;;;N;;;;; -1325D;EGYPTIAN HIEROGLYPH O006F;Lo;0;L;;;;;N;;;;; -1325E;EGYPTIAN HIEROGLYPH O007;Lo;0;L;;;;;N;;;;; -1325F;EGYPTIAN HIEROGLYPH O008;Lo;0;L;;;;;N;;;;; -13260;EGYPTIAN HIEROGLYPH O009;Lo;0;L;;;;;N;;;;; -13261;EGYPTIAN HIEROGLYPH O010;Lo;0;L;;;;;N;;;;; -13262;EGYPTIAN HIEROGLYPH O010A;Lo;0;L;;;;;N;;;;; -13263;EGYPTIAN HIEROGLYPH O010B;Lo;0;L;;;;;N;;;;; -13264;EGYPTIAN HIEROGLYPH O010C;Lo;0;L;;;;;N;;;;; -13265;EGYPTIAN HIEROGLYPH O011;Lo;0;L;;;;;N;;;;; -13266;EGYPTIAN HIEROGLYPH O012;Lo;0;L;;;;;N;;;;; -13267;EGYPTIAN HIEROGLYPH O013;Lo;0;L;;;;;N;;;;; -13268;EGYPTIAN HIEROGLYPH O014;Lo;0;L;;;;;N;;;;; -13269;EGYPTIAN HIEROGLYPH O015;Lo;0;L;;;;;N;;;;; -1326A;EGYPTIAN HIEROGLYPH O016;Lo;0;L;;;;;N;;;;; -1326B;EGYPTIAN HIEROGLYPH O017;Lo;0;L;;;;;N;;;;; -1326C;EGYPTIAN HIEROGLYPH O018;Lo;0;L;;;;;N;;;;; -1326D;EGYPTIAN HIEROGLYPH O019;Lo;0;L;;;;;N;;;;; -1326E;EGYPTIAN HIEROGLYPH O019A;Lo;0;L;;;;;N;;;;; -1326F;EGYPTIAN HIEROGLYPH O020;Lo;0;L;;;;;N;;;;; -13270;EGYPTIAN HIEROGLYPH O020A;Lo;0;L;;;;;N;;;;; -13271;EGYPTIAN HIEROGLYPH O021;Lo;0;L;;;;;N;;;;; -13272;EGYPTIAN HIEROGLYPH O022;Lo;0;L;;;;;N;;;;; -13273;EGYPTIAN HIEROGLYPH O023;Lo;0;L;;;;;N;;;;; -13274;EGYPTIAN HIEROGLYPH O024;Lo;0;L;;;;;N;;;;; -13275;EGYPTIAN HIEROGLYPH O024A;Lo;0;L;;;;;N;;;;; -13276;EGYPTIAN HIEROGLYPH O025;Lo;0;L;;;;;N;;;;; -13277;EGYPTIAN HIEROGLYPH O025A;Lo;0;L;;;;;N;;;;; -13278;EGYPTIAN HIEROGLYPH O026;Lo;0;L;;;;;N;;;;; -13279;EGYPTIAN HIEROGLYPH O027;Lo;0;L;;;;;N;;;;; -1327A;EGYPTIAN HIEROGLYPH O028;Lo;0;L;;;;;N;;;;; -1327B;EGYPTIAN HIEROGLYPH O029;Lo;0;L;;;;;N;;;;; -1327C;EGYPTIAN HIEROGLYPH O029A;Lo;0;L;;;;;N;;;;; -1327D;EGYPTIAN HIEROGLYPH O030;Lo;0;L;;;;;N;;;;; -1327E;EGYPTIAN HIEROGLYPH O030A;Lo;0;L;;;;;N;;;;; -1327F;EGYPTIAN HIEROGLYPH O031;Lo;0;L;;;;;N;;;;; -13280;EGYPTIAN HIEROGLYPH O032;Lo;0;L;;;;;N;;;;; -13281;EGYPTIAN HIEROGLYPH O033;Lo;0;L;;;;;N;;;;; -13282;EGYPTIAN HIEROGLYPH O033A;Lo;0;L;;;;;N;;;;; -13283;EGYPTIAN HIEROGLYPH O034;Lo;0;L;;;;;N;;;;; -13284;EGYPTIAN HIEROGLYPH O035;Lo;0;L;;;;;N;;;;; -13285;EGYPTIAN HIEROGLYPH O036;Lo;0;L;;;;;N;;;;; -13286;EGYPTIAN HIEROGLYPH O036A;Lo;0;L;;;;;N;;;;; -13287;EGYPTIAN HIEROGLYPH O036B;Lo;0;L;;;;;N;;;;; -13288;EGYPTIAN HIEROGLYPH O036C;Lo;0;L;;;;;N;;;;; -13289;EGYPTIAN HIEROGLYPH O036D;Lo;0;L;;;;;N;;;;; -1328A;EGYPTIAN HIEROGLYPH O037;Lo;0;L;;;;;N;;;;; -1328B;EGYPTIAN HIEROGLYPH O038;Lo;0;L;;;;;N;;;;; -1328C;EGYPTIAN HIEROGLYPH O039;Lo;0;L;;;;;N;;;;; -1328D;EGYPTIAN HIEROGLYPH O040;Lo;0;L;;;;;N;;;;; -1328E;EGYPTIAN HIEROGLYPH O041;Lo;0;L;;;;;N;;;;; -1328F;EGYPTIAN HIEROGLYPH O042;Lo;0;L;;;;;N;;;;; -13290;EGYPTIAN HIEROGLYPH O043;Lo;0;L;;;;;N;;;;; -13291;EGYPTIAN HIEROGLYPH O044;Lo;0;L;;;;;N;;;;; -13292;EGYPTIAN HIEROGLYPH O045;Lo;0;L;;;;;N;;;;; -13293;EGYPTIAN HIEROGLYPH O046;Lo;0;L;;;;;N;;;;; -13294;EGYPTIAN HIEROGLYPH O047;Lo;0;L;;;;;N;;;;; -13295;EGYPTIAN HIEROGLYPH O048;Lo;0;L;;;;;N;;;;; -13296;EGYPTIAN HIEROGLYPH O049;Lo;0;L;;;;;N;;;;; -13297;EGYPTIAN HIEROGLYPH O050;Lo;0;L;;;;;N;;;;; -13298;EGYPTIAN HIEROGLYPH O050A;Lo;0;L;;;;;N;;;;; -13299;EGYPTIAN HIEROGLYPH O050B;Lo;0;L;;;;;N;;;;; -1329A;EGYPTIAN HIEROGLYPH O051;Lo;0;L;;;;;N;;;;; -1329B;EGYPTIAN HIEROGLYPH P001;Lo;0;L;;;;;N;;;;; -1329C;EGYPTIAN HIEROGLYPH P001A;Lo;0;L;;;;;N;;;;; -1329D;EGYPTIAN HIEROGLYPH P002;Lo;0;L;;;;;N;;;;; -1329E;EGYPTIAN HIEROGLYPH P003;Lo;0;L;;;;;N;;;;; -1329F;EGYPTIAN HIEROGLYPH P003A;Lo;0;L;;;;;N;;;;; -132A0;EGYPTIAN HIEROGLYPH P004;Lo;0;L;;;;;N;;;;; -132A1;EGYPTIAN HIEROGLYPH P005;Lo;0;L;;;;;N;;;;; -132A2;EGYPTIAN HIEROGLYPH P006;Lo;0;L;;;;;N;;;;; -132A3;EGYPTIAN HIEROGLYPH P007;Lo;0;L;;;;;N;;;;; -132A4;EGYPTIAN HIEROGLYPH P008;Lo;0;L;;;;;N;;;;; -132A5;EGYPTIAN HIEROGLYPH P009;Lo;0;L;;;;;N;;;;; -132A6;EGYPTIAN HIEROGLYPH P010;Lo;0;L;;;;;N;;;;; -132A7;EGYPTIAN HIEROGLYPH P011;Lo;0;L;;;;;N;;;;; -132A8;EGYPTIAN HIEROGLYPH Q001;Lo;0;L;;;;;N;;;;; -132A9;EGYPTIAN HIEROGLYPH Q002;Lo;0;L;;;;;N;;;;; -132AA;EGYPTIAN HIEROGLYPH Q003;Lo;0;L;;;;;N;;;;; -132AB;EGYPTIAN HIEROGLYPH Q004;Lo;0;L;;;;;N;;;;; -132AC;EGYPTIAN HIEROGLYPH Q005;Lo;0;L;;;;;N;;;;; -132AD;EGYPTIAN HIEROGLYPH Q006;Lo;0;L;;;;;N;;;;; -132AE;EGYPTIAN HIEROGLYPH Q007;Lo;0;L;;;;;N;;;;; -132AF;EGYPTIAN HIEROGLYPH R001;Lo;0;L;;;;;N;;;;; -132B0;EGYPTIAN HIEROGLYPH R002;Lo;0;L;;;;;N;;;;; -132B1;EGYPTIAN HIEROGLYPH R002A;Lo;0;L;;;;;N;;;;; -132B2;EGYPTIAN HIEROGLYPH R003;Lo;0;L;;;;;N;;;;; -132B3;EGYPTIAN HIEROGLYPH R003A;Lo;0;L;;;;;N;;;;; -132B4;EGYPTIAN HIEROGLYPH R003B;Lo;0;L;;;;;N;;;;; -132B5;EGYPTIAN HIEROGLYPH R004;Lo;0;L;;;;;N;;;;; -132B6;EGYPTIAN HIEROGLYPH R005;Lo;0;L;;;;;N;;;;; -132B7;EGYPTIAN HIEROGLYPH R006;Lo;0;L;;;;;N;;;;; -132B8;EGYPTIAN HIEROGLYPH R007;Lo;0;L;;;;;N;;;;; -132B9;EGYPTIAN HIEROGLYPH R008;Lo;0;L;;;;;N;;;;; -132BA;EGYPTIAN HIEROGLYPH R009;Lo;0;L;;;;;N;;;;; -132BB;EGYPTIAN HIEROGLYPH R010;Lo;0;L;;;;;N;;;;; -132BC;EGYPTIAN HIEROGLYPH R010A;Lo;0;L;;;;;N;;;;; -132BD;EGYPTIAN HIEROGLYPH R011;Lo;0;L;;;;;N;;;;; -132BE;EGYPTIAN HIEROGLYPH R012;Lo;0;L;;;;;N;;;;; -132BF;EGYPTIAN HIEROGLYPH R013;Lo;0;L;;;;;N;;;;; -132C0;EGYPTIAN HIEROGLYPH R014;Lo;0;L;;;;;N;;;;; -132C1;EGYPTIAN HIEROGLYPH R015;Lo;0;L;;;;;N;;;;; -132C2;EGYPTIAN HIEROGLYPH R016;Lo;0;L;;;;;N;;;;; -132C3;EGYPTIAN HIEROGLYPH R016A;Lo;0;L;;;;;N;;;;; -132C4;EGYPTIAN HIEROGLYPH R017;Lo;0;L;;;;;N;;;;; -132C5;EGYPTIAN HIEROGLYPH R018;Lo;0;L;;;;;N;;;;; -132C6;EGYPTIAN HIEROGLYPH R019;Lo;0;L;;;;;N;;;;; -132C7;EGYPTIAN HIEROGLYPH R020;Lo;0;L;;;;;N;;;;; -132C8;EGYPTIAN HIEROGLYPH R021;Lo;0;L;;;;;N;;;;; -132C9;EGYPTIAN HIEROGLYPH R022;Lo;0;L;;;;;N;;;;; -132CA;EGYPTIAN HIEROGLYPH R023;Lo;0;L;;;;;N;;;;; -132CB;EGYPTIAN HIEROGLYPH R024;Lo;0;L;;;;;N;;;;; -132CC;EGYPTIAN HIEROGLYPH R025;Lo;0;L;;;;;N;;;;; -132CD;EGYPTIAN HIEROGLYPH R026;Lo;0;L;;;;;N;;;;; -132CE;EGYPTIAN HIEROGLYPH R027;Lo;0;L;;;;;N;;;;; -132CF;EGYPTIAN HIEROGLYPH R028;Lo;0;L;;;;;N;;;;; -132D0;EGYPTIAN HIEROGLYPH R029;Lo;0;L;;;;;N;;;;; -132D1;EGYPTIAN HIEROGLYPH S001;Lo;0;L;;;;;N;;;;; -132D2;EGYPTIAN HIEROGLYPH S002;Lo;0;L;;;;;N;;;;; -132D3;EGYPTIAN HIEROGLYPH S002A;Lo;0;L;;;;;N;;;;; -132D4;EGYPTIAN HIEROGLYPH S003;Lo;0;L;;;;;N;;;;; -132D5;EGYPTIAN HIEROGLYPH S004;Lo;0;L;;;;;N;;;;; -132D6;EGYPTIAN HIEROGLYPH S005;Lo;0;L;;;;;N;;;;; -132D7;EGYPTIAN HIEROGLYPH S006;Lo;0;L;;;;;N;;;;; -132D8;EGYPTIAN HIEROGLYPH S006A;Lo;0;L;;;;;N;;;;; -132D9;EGYPTIAN HIEROGLYPH S007;Lo;0;L;;;;;N;;;;; -132DA;EGYPTIAN HIEROGLYPH S008;Lo;0;L;;;;;N;;;;; -132DB;EGYPTIAN HIEROGLYPH S009;Lo;0;L;;;;;N;;;;; -132DC;EGYPTIAN HIEROGLYPH S010;Lo;0;L;;;;;N;;;;; -132DD;EGYPTIAN HIEROGLYPH S011;Lo;0;L;;;;;N;;;;; -132DE;EGYPTIAN HIEROGLYPH S012;Lo;0;L;;;;;N;;;;; -132DF;EGYPTIAN HIEROGLYPH S013;Lo;0;L;;;;;N;;;;; -132E0;EGYPTIAN HIEROGLYPH S014;Lo;0;L;;;;;N;;;;; -132E1;EGYPTIAN HIEROGLYPH S014A;Lo;0;L;;;;;N;;;;; -132E2;EGYPTIAN HIEROGLYPH S014B;Lo;0;L;;;;;N;;;;; -132E3;EGYPTIAN HIEROGLYPH S015;Lo;0;L;;;;;N;;;;; -132E4;EGYPTIAN HIEROGLYPH S016;Lo;0;L;;;;;N;;;;; -132E5;EGYPTIAN HIEROGLYPH S017;Lo;0;L;;;;;N;;;;; -132E6;EGYPTIAN HIEROGLYPH S017A;Lo;0;L;;;;;N;;;;; -132E7;EGYPTIAN HIEROGLYPH S018;Lo;0;L;;;;;N;;;;; -132E8;EGYPTIAN HIEROGLYPH S019;Lo;0;L;;;;;N;;;;; -132E9;EGYPTIAN HIEROGLYPH S020;Lo;0;L;;;;;N;;;;; -132EA;EGYPTIAN HIEROGLYPH S021;Lo;0;L;;;;;N;;;;; -132EB;EGYPTIAN HIEROGLYPH S022;Lo;0;L;;;;;N;;;;; -132EC;EGYPTIAN HIEROGLYPH S023;Lo;0;L;;;;;N;;;;; -132ED;EGYPTIAN HIEROGLYPH S024;Lo;0;L;;;;;N;;;;; -132EE;EGYPTIAN HIEROGLYPH S025;Lo;0;L;;;;;N;;;;; -132EF;EGYPTIAN HIEROGLYPH S026;Lo;0;L;;;;;N;;;;; -132F0;EGYPTIAN HIEROGLYPH S026A;Lo;0;L;;;;;N;;;;; -132F1;EGYPTIAN HIEROGLYPH S026B;Lo;0;L;;;;;N;;;;; -132F2;EGYPTIAN HIEROGLYPH S027;Lo;0;L;;;;;N;;;;; -132F3;EGYPTIAN HIEROGLYPH S028;Lo;0;L;;;;;N;;;;; -132F4;EGYPTIAN HIEROGLYPH S029;Lo;0;L;;;;;N;;;;; -132F5;EGYPTIAN HIEROGLYPH S030;Lo;0;L;;;;;N;;;;; -132F6;EGYPTIAN HIEROGLYPH S031;Lo;0;L;;;;;N;;;;; -132F7;EGYPTIAN HIEROGLYPH S032;Lo;0;L;;;;;N;;;;; -132F8;EGYPTIAN HIEROGLYPH S033;Lo;0;L;;;;;N;;;;; -132F9;EGYPTIAN HIEROGLYPH S034;Lo;0;L;;;;;N;;;;; -132FA;EGYPTIAN HIEROGLYPH S035;Lo;0;L;;;;;N;;;;; -132FB;EGYPTIAN HIEROGLYPH S035A;Lo;0;L;;;;;N;;;;; -132FC;EGYPTIAN HIEROGLYPH S036;Lo;0;L;;;;;N;;;;; -132FD;EGYPTIAN HIEROGLYPH S037;Lo;0;L;;;;;N;;;;; -132FE;EGYPTIAN HIEROGLYPH S038;Lo;0;L;;;;;N;;;;; -132FF;EGYPTIAN HIEROGLYPH S039;Lo;0;L;;;;;N;;;;; -13300;EGYPTIAN HIEROGLYPH S040;Lo;0;L;;;;;N;;;;; -13301;EGYPTIAN HIEROGLYPH S041;Lo;0;L;;;;;N;;;;; -13302;EGYPTIAN HIEROGLYPH S042;Lo;0;L;;;;;N;;;;; -13303;EGYPTIAN HIEROGLYPH S043;Lo;0;L;;;;;N;;;;; -13304;EGYPTIAN HIEROGLYPH S044;Lo;0;L;;;;;N;;;;; -13305;EGYPTIAN HIEROGLYPH S045;Lo;0;L;;;;;N;;;;; -13306;EGYPTIAN HIEROGLYPH S046;Lo;0;L;;;;;N;;;;; -13307;EGYPTIAN HIEROGLYPH T001;Lo;0;L;;;;;N;;;;; -13308;EGYPTIAN HIEROGLYPH T002;Lo;0;L;;;;;N;;;;; -13309;EGYPTIAN HIEROGLYPH T003;Lo;0;L;;;;;N;;;;; -1330A;EGYPTIAN HIEROGLYPH T003A;Lo;0;L;;;;;N;;;;; -1330B;EGYPTIAN HIEROGLYPH T004;Lo;0;L;;;;;N;;;;; -1330C;EGYPTIAN HIEROGLYPH T005;Lo;0;L;;;;;N;;;;; -1330D;EGYPTIAN HIEROGLYPH T006;Lo;0;L;;;;;N;;;;; -1330E;EGYPTIAN HIEROGLYPH T007;Lo;0;L;;;;;N;;;;; -1330F;EGYPTIAN HIEROGLYPH T007A;Lo;0;L;;;;;N;;;;; -13310;EGYPTIAN HIEROGLYPH T008;Lo;0;L;;;;;N;;;;; -13311;EGYPTIAN HIEROGLYPH T008A;Lo;0;L;;;;;N;;;;; -13312;EGYPTIAN HIEROGLYPH T009;Lo;0;L;;;;;N;;;;; -13313;EGYPTIAN HIEROGLYPH T009A;Lo;0;L;;;;;N;;;;; -13314;EGYPTIAN HIEROGLYPH T010;Lo;0;L;;;;;N;;;;; -13315;EGYPTIAN HIEROGLYPH T011;Lo;0;L;;;;;N;;;;; -13316;EGYPTIAN HIEROGLYPH T011A;Lo;0;L;;;;;N;;;;; -13317;EGYPTIAN HIEROGLYPH T012;Lo;0;L;;;;;N;;;;; -13318;EGYPTIAN HIEROGLYPH T013;Lo;0;L;;;;;N;;;;; -13319;EGYPTIAN HIEROGLYPH T014;Lo;0;L;;;;;N;;;;; -1331A;EGYPTIAN HIEROGLYPH T015;Lo;0;L;;;;;N;;;;; -1331B;EGYPTIAN HIEROGLYPH T016;Lo;0;L;;;;;N;;;;; -1331C;EGYPTIAN HIEROGLYPH T016A;Lo;0;L;;;;;N;;;;; -1331D;EGYPTIAN HIEROGLYPH T017;Lo;0;L;;;;;N;;;;; -1331E;EGYPTIAN HIEROGLYPH T018;Lo;0;L;;;;;N;;;;; -1331F;EGYPTIAN HIEROGLYPH T019;Lo;0;L;;;;;N;;;;; -13320;EGYPTIAN HIEROGLYPH T020;Lo;0;L;;;;;N;;;;; -13321;EGYPTIAN HIEROGLYPH T021;Lo;0;L;;;;;N;;;;; -13322;EGYPTIAN HIEROGLYPH T022;Lo;0;L;;;;;N;;;;; -13323;EGYPTIAN HIEROGLYPH T023;Lo;0;L;;;;;N;;;;; -13324;EGYPTIAN HIEROGLYPH T024;Lo;0;L;;;;;N;;;;; -13325;EGYPTIAN HIEROGLYPH T025;Lo;0;L;;;;;N;;;;; -13326;EGYPTIAN HIEROGLYPH T026;Lo;0;L;;;;;N;;;;; -13327;EGYPTIAN HIEROGLYPH T027;Lo;0;L;;;;;N;;;;; -13328;EGYPTIAN HIEROGLYPH T028;Lo;0;L;;;;;N;;;;; -13329;EGYPTIAN HIEROGLYPH T029;Lo;0;L;;;;;N;;;;; -1332A;EGYPTIAN HIEROGLYPH T030;Lo;0;L;;;;;N;;;;; -1332B;EGYPTIAN HIEROGLYPH T031;Lo;0;L;;;;;N;;;;; -1332C;EGYPTIAN HIEROGLYPH T032;Lo;0;L;;;;;N;;;;; -1332D;EGYPTIAN HIEROGLYPH T032A;Lo;0;L;;;;;N;;;;; -1332E;EGYPTIAN HIEROGLYPH T033;Lo;0;L;;;;;N;;;;; -1332F;EGYPTIAN HIEROGLYPH T033A;Lo;0;L;;;;;N;;;;; -13330;EGYPTIAN HIEROGLYPH T034;Lo;0;L;;;;;N;;;;; -13331;EGYPTIAN HIEROGLYPH T035;Lo;0;L;;;;;N;;;;; -13332;EGYPTIAN HIEROGLYPH T036;Lo;0;L;;;;;N;;;;; -13333;EGYPTIAN HIEROGLYPH U001;Lo;0;L;;;;;N;;;;; -13334;EGYPTIAN HIEROGLYPH U002;Lo;0;L;;;;;N;;;;; -13335;EGYPTIAN HIEROGLYPH U003;Lo;0;L;;;;;N;;;;; -13336;EGYPTIAN HIEROGLYPH U004;Lo;0;L;;;;;N;;;;; -13337;EGYPTIAN HIEROGLYPH U005;Lo;0;L;;;;;N;;;;; -13338;EGYPTIAN HIEROGLYPH U006;Lo;0;L;;;;;N;;;;; -13339;EGYPTIAN HIEROGLYPH U006A;Lo;0;L;;;;;N;;;;; -1333A;EGYPTIAN HIEROGLYPH U006B;Lo;0;L;;;;;N;;;;; -1333B;EGYPTIAN HIEROGLYPH U007;Lo;0;L;;;;;N;;;;; -1333C;EGYPTIAN HIEROGLYPH U008;Lo;0;L;;;;;N;;;;; -1333D;EGYPTIAN HIEROGLYPH U009;Lo;0;L;;;;;N;;;;; -1333E;EGYPTIAN HIEROGLYPH U010;Lo;0;L;;;;;N;;;;; -1333F;EGYPTIAN HIEROGLYPH U011;Lo;0;L;;;;;N;;;;; -13340;EGYPTIAN HIEROGLYPH U012;Lo;0;L;;;;;N;;;;; -13341;EGYPTIAN HIEROGLYPH U013;Lo;0;L;;;;;N;;;;; -13342;EGYPTIAN HIEROGLYPH U014;Lo;0;L;;;;;N;;;;; -13343;EGYPTIAN HIEROGLYPH U015;Lo;0;L;;;;;N;;;;; -13344;EGYPTIAN HIEROGLYPH U016;Lo;0;L;;;;;N;;;;; -13345;EGYPTIAN HIEROGLYPH U017;Lo;0;L;;;;;N;;;;; -13346;EGYPTIAN HIEROGLYPH U018;Lo;0;L;;;;;N;;;;; -13347;EGYPTIAN HIEROGLYPH U019;Lo;0;L;;;;;N;;;;; -13348;EGYPTIAN HIEROGLYPH U020;Lo;0;L;;;;;N;;;;; -13349;EGYPTIAN HIEROGLYPH U021;Lo;0;L;;;;;N;;;;; -1334A;EGYPTIAN HIEROGLYPH U022;Lo;0;L;;;;;N;;;;; -1334B;EGYPTIAN HIEROGLYPH U023;Lo;0;L;;;;;N;;;;; -1334C;EGYPTIAN HIEROGLYPH U023A;Lo;0;L;;;;;N;;;;; -1334D;EGYPTIAN HIEROGLYPH U024;Lo;0;L;;;;;N;;;;; -1334E;EGYPTIAN HIEROGLYPH U025;Lo;0;L;;;;;N;;;;; -1334F;EGYPTIAN HIEROGLYPH U026;Lo;0;L;;;;;N;;;;; -13350;EGYPTIAN HIEROGLYPH U027;Lo;0;L;;;;;N;;;;; -13351;EGYPTIAN HIEROGLYPH U028;Lo;0;L;;;;;N;;;;; -13352;EGYPTIAN HIEROGLYPH U029;Lo;0;L;;;;;N;;;;; -13353;EGYPTIAN HIEROGLYPH U029A;Lo;0;L;;;;;N;;;;; -13354;EGYPTIAN HIEROGLYPH U030;Lo;0;L;;;;;N;;;;; -13355;EGYPTIAN HIEROGLYPH U031;Lo;0;L;;;;;N;;;;; -13356;EGYPTIAN HIEROGLYPH U032;Lo;0;L;;;;;N;;;;; -13357;EGYPTIAN HIEROGLYPH U032A;Lo;0;L;;;;;N;;;;; -13358;EGYPTIAN HIEROGLYPH U033;Lo;0;L;;;;;N;;;;; -13359;EGYPTIAN HIEROGLYPH U034;Lo;0;L;;;;;N;;;;; -1335A;EGYPTIAN HIEROGLYPH U035;Lo;0;L;;;;;N;;;;; -1335B;EGYPTIAN HIEROGLYPH U036;Lo;0;L;;;;;N;;;;; -1335C;EGYPTIAN HIEROGLYPH U037;Lo;0;L;;;;;N;;;;; -1335D;EGYPTIAN HIEROGLYPH U038;Lo;0;L;;;;;N;;;;; -1335E;EGYPTIAN HIEROGLYPH U039;Lo;0;L;;;;;N;;;;; -1335F;EGYPTIAN HIEROGLYPH U040;Lo;0;L;;;;;N;;;;; -13360;EGYPTIAN HIEROGLYPH U041;Lo;0;L;;;;;N;;;;; -13361;EGYPTIAN HIEROGLYPH U042;Lo;0;L;;;;;N;;;;; -13362;EGYPTIAN HIEROGLYPH V001;Lo;0;L;;;;;N;;;;; -13363;EGYPTIAN HIEROGLYPH V001A;Lo;0;L;;;;;N;;;;; -13364;EGYPTIAN HIEROGLYPH V001B;Lo;0;L;;;;;N;;;;; -13365;EGYPTIAN HIEROGLYPH V001C;Lo;0;L;;;;;N;;;;; -13366;EGYPTIAN HIEROGLYPH V001D;Lo;0;L;;;;;N;;;;; -13367;EGYPTIAN HIEROGLYPH V001E;Lo;0;L;;;;;N;;;;; -13368;EGYPTIAN HIEROGLYPH V001F;Lo;0;L;;;;;N;;;;; -13369;EGYPTIAN HIEROGLYPH V001G;Lo;0;L;;;;;N;;;;; -1336A;EGYPTIAN HIEROGLYPH V001H;Lo;0;L;;;;;N;;;;; -1336B;EGYPTIAN HIEROGLYPH V001I;Lo;0;L;;;;;N;;;;; -1336C;EGYPTIAN HIEROGLYPH V002;Lo;0;L;;;;;N;;;;; -1336D;EGYPTIAN HIEROGLYPH V002A;Lo;0;L;;;;;N;;;;; -1336E;EGYPTIAN HIEROGLYPH V003;Lo;0;L;;;;;N;;;;; -1336F;EGYPTIAN HIEROGLYPH V004;Lo;0;L;;;;;N;;;;; -13370;EGYPTIAN HIEROGLYPH V005;Lo;0;L;;;;;N;;;;; -13371;EGYPTIAN HIEROGLYPH V006;Lo;0;L;;;;;N;;;;; -13372;EGYPTIAN HIEROGLYPH V007;Lo;0;L;;;;;N;;;;; -13373;EGYPTIAN HIEROGLYPH V007A;Lo;0;L;;;;;N;;;;; -13374;EGYPTIAN HIEROGLYPH V007B;Lo;0;L;;;;;N;;;;; -13375;EGYPTIAN HIEROGLYPH V008;Lo;0;L;;;;;N;;;;; -13376;EGYPTIAN HIEROGLYPH V009;Lo;0;L;;;;;N;;;;; -13377;EGYPTIAN HIEROGLYPH V010;Lo;0;L;;;;;N;;;;; -13378;EGYPTIAN HIEROGLYPH V011;Lo;0;L;;;;;N;;;;; -13379;EGYPTIAN HIEROGLYPH V011A;Lo;0;L;;;;;N;;;;; -1337A;EGYPTIAN HIEROGLYPH V011B;Lo;0;L;;;;;N;;;;; -1337B;EGYPTIAN HIEROGLYPH V011C;Lo;0;L;;;;;N;;;;; -1337C;EGYPTIAN HIEROGLYPH V012;Lo;0;L;;;;;N;;;;; -1337D;EGYPTIAN HIEROGLYPH V012A;Lo;0;L;;;;;N;;;;; -1337E;EGYPTIAN HIEROGLYPH V012B;Lo;0;L;;;;;N;;;;; -1337F;EGYPTIAN HIEROGLYPH V013;Lo;0;L;;;;;N;;;;; -13380;EGYPTIAN HIEROGLYPH V014;Lo;0;L;;;;;N;;;;; -13381;EGYPTIAN HIEROGLYPH V015;Lo;0;L;;;;;N;;;;; -13382;EGYPTIAN HIEROGLYPH V016;Lo;0;L;;;;;N;;;;; -13383;EGYPTIAN HIEROGLYPH V017;Lo;0;L;;;;;N;;;;; -13384;EGYPTIAN HIEROGLYPH V018;Lo;0;L;;;;;N;;;;; -13385;EGYPTIAN HIEROGLYPH V019;Lo;0;L;;;;;N;;;;; -13386;EGYPTIAN HIEROGLYPH V020;Lo;0;L;;;;;N;;;;; -13387;EGYPTIAN HIEROGLYPH V020A;Lo;0;L;;;;;N;;;;; -13388;EGYPTIAN HIEROGLYPH V020B;Lo;0;L;;;;;N;;;;; -13389;EGYPTIAN HIEROGLYPH V020C;Lo;0;L;;;;;N;;;;; -1338A;EGYPTIAN HIEROGLYPH V020D;Lo;0;L;;;;;N;;;;; -1338B;EGYPTIAN HIEROGLYPH V020E;Lo;0;L;;;;;N;;;;; -1338C;EGYPTIAN HIEROGLYPH V020F;Lo;0;L;;;;;N;;;;; -1338D;EGYPTIAN HIEROGLYPH V020G;Lo;0;L;;;;;N;;;;; -1338E;EGYPTIAN HIEROGLYPH V020H;Lo;0;L;;;;;N;;;;; -1338F;EGYPTIAN HIEROGLYPH V020I;Lo;0;L;;;;;N;;;;; -13390;EGYPTIAN HIEROGLYPH V020J;Lo;0;L;;;;;N;;;;; -13391;EGYPTIAN HIEROGLYPH V020K;Lo;0;L;;;;;N;;;;; -13392;EGYPTIAN HIEROGLYPH V020L;Lo;0;L;;;;;N;;;;; -13393;EGYPTIAN HIEROGLYPH V021;Lo;0;L;;;;;N;;;;; -13394;EGYPTIAN HIEROGLYPH V022;Lo;0;L;;;;;N;;;;; -13395;EGYPTIAN HIEROGLYPH V023;Lo;0;L;;;;;N;;;;; -13396;EGYPTIAN HIEROGLYPH V023A;Lo;0;L;;;;;N;;;;; -13397;EGYPTIAN HIEROGLYPH V024;Lo;0;L;;;;;N;;;;; -13398;EGYPTIAN HIEROGLYPH V025;Lo;0;L;;;;;N;;;;; -13399;EGYPTIAN HIEROGLYPH V026;Lo;0;L;;;;;N;;;;; -1339A;EGYPTIAN HIEROGLYPH V027;Lo;0;L;;;;;N;;;;; -1339B;EGYPTIAN HIEROGLYPH V028;Lo;0;L;;;;;N;;;;; -1339C;EGYPTIAN HIEROGLYPH V028A;Lo;0;L;;;;;N;;;;; -1339D;EGYPTIAN HIEROGLYPH V029;Lo;0;L;;;;;N;;;;; -1339E;EGYPTIAN HIEROGLYPH V029A;Lo;0;L;;;;;N;;;;; -1339F;EGYPTIAN HIEROGLYPH V030;Lo;0;L;;;;;N;;;;; -133A0;EGYPTIAN HIEROGLYPH V030A;Lo;0;L;;;;;N;;;;; -133A1;EGYPTIAN HIEROGLYPH V031;Lo;0;L;;;;;N;;;;; -133A2;EGYPTIAN HIEROGLYPH V031A;Lo;0;L;;;;;N;;;;; -133A3;EGYPTIAN HIEROGLYPH V032;Lo;0;L;;;;;N;;;;; -133A4;EGYPTIAN HIEROGLYPH V033;Lo;0;L;;;;;N;;;;; -133A5;EGYPTIAN HIEROGLYPH V033A;Lo;0;L;;;;;N;;;;; -133A6;EGYPTIAN HIEROGLYPH V034;Lo;0;L;;;;;N;;;;; -133A7;EGYPTIAN HIEROGLYPH V035;Lo;0;L;;;;;N;;;;; -133A8;EGYPTIAN HIEROGLYPH V036;Lo;0;L;;;;;N;;;;; -133A9;EGYPTIAN HIEROGLYPH V037;Lo;0;L;;;;;N;;;;; -133AA;EGYPTIAN HIEROGLYPH V037A;Lo;0;L;;;;;N;;;;; -133AB;EGYPTIAN HIEROGLYPH V038;Lo;0;L;;;;;N;;;;; -133AC;EGYPTIAN HIEROGLYPH V039;Lo;0;L;;;;;N;;;;; -133AD;EGYPTIAN HIEROGLYPH V040;Lo;0;L;;;;;N;;;;; -133AE;EGYPTIAN HIEROGLYPH V040A;Lo;0;L;;;;;N;;;;; -133AF;EGYPTIAN HIEROGLYPH W001;Lo;0;L;;;;;N;;;;; -133B0;EGYPTIAN HIEROGLYPH W002;Lo;0;L;;;;;N;;;;; -133B1;EGYPTIAN HIEROGLYPH W003;Lo;0;L;;;;;N;;;;; -133B2;EGYPTIAN HIEROGLYPH W003A;Lo;0;L;;;;;N;;;;; -133B3;EGYPTIAN HIEROGLYPH W004;Lo;0;L;;;;;N;;;;; -133B4;EGYPTIAN HIEROGLYPH W005;Lo;0;L;;;;;N;;;;; -133B5;EGYPTIAN HIEROGLYPH W006;Lo;0;L;;;;;N;;;;; -133B6;EGYPTIAN HIEROGLYPH W007;Lo;0;L;;;;;N;;;;; -133B7;EGYPTIAN HIEROGLYPH W008;Lo;0;L;;;;;N;;;;; -133B8;EGYPTIAN HIEROGLYPH W009;Lo;0;L;;;;;N;;;;; -133B9;EGYPTIAN HIEROGLYPH W009A;Lo;0;L;;;;;N;;;;; -133BA;EGYPTIAN HIEROGLYPH W010;Lo;0;L;;;;;N;;;;; -133BB;EGYPTIAN HIEROGLYPH W010A;Lo;0;L;;;;;N;;;;; -133BC;EGYPTIAN HIEROGLYPH W011;Lo;0;L;;;;;N;;;;; -133BD;EGYPTIAN HIEROGLYPH W012;Lo;0;L;;;;;N;;;;; -133BE;EGYPTIAN HIEROGLYPH W013;Lo;0;L;;;;;N;;;;; -133BF;EGYPTIAN HIEROGLYPH W014;Lo;0;L;;;;;N;;;;; -133C0;EGYPTIAN HIEROGLYPH W014A;Lo;0;L;;;;;N;;;;; -133C1;EGYPTIAN HIEROGLYPH W015;Lo;0;L;;;;;N;;;;; -133C2;EGYPTIAN HIEROGLYPH W016;Lo;0;L;;;;;N;;;;; -133C3;EGYPTIAN HIEROGLYPH W017;Lo;0;L;;;;;N;;;;; -133C4;EGYPTIAN HIEROGLYPH W017A;Lo;0;L;;;;;N;;;;; -133C5;EGYPTIAN HIEROGLYPH W018;Lo;0;L;;;;;N;;;;; -133C6;EGYPTIAN HIEROGLYPH W018A;Lo;0;L;;;;;N;;;;; -133C7;EGYPTIAN HIEROGLYPH W019;Lo;0;L;;;;;N;;;;; -133C8;EGYPTIAN HIEROGLYPH W020;Lo;0;L;;;;;N;;;;; -133C9;EGYPTIAN HIEROGLYPH W021;Lo;0;L;;;;;N;;;;; -133CA;EGYPTIAN HIEROGLYPH W022;Lo;0;L;;;;;N;;;;; -133CB;EGYPTIAN HIEROGLYPH W023;Lo;0;L;;;;;N;;;;; -133CC;EGYPTIAN HIEROGLYPH W024;Lo;0;L;;;;;N;;;;; -133CD;EGYPTIAN HIEROGLYPH W024A;Lo;0;L;;;;;N;;;;; -133CE;EGYPTIAN HIEROGLYPH W025;Lo;0;L;;;;;N;;;;; -133CF;EGYPTIAN HIEROGLYPH X001;Lo;0;L;;;;;N;;;;; -133D0;EGYPTIAN HIEROGLYPH X002;Lo;0;L;;;;;N;;;;; -133D1;EGYPTIAN HIEROGLYPH X003;Lo;0;L;;;;;N;;;;; -133D2;EGYPTIAN HIEROGLYPH X004;Lo;0;L;;;;;N;;;;; -133D3;EGYPTIAN HIEROGLYPH X004A;Lo;0;L;;;;;N;;;;; -133D4;EGYPTIAN HIEROGLYPH X004B;Lo;0;L;;;;;N;;;;; -133D5;EGYPTIAN HIEROGLYPH X005;Lo;0;L;;;;;N;;;;; -133D6;EGYPTIAN HIEROGLYPH X006;Lo;0;L;;;;;N;;;;; -133D7;EGYPTIAN HIEROGLYPH X006A;Lo;0;L;;;;;N;;;;; -133D8;EGYPTIAN HIEROGLYPH X007;Lo;0;L;;;;;N;;;;; -133D9;EGYPTIAN HIEROGLYPH X008;Lo;0;L;;;;;N;;;;; -133DA;EGYPTIAN HIEROGLYPH X008A;Lo;0;L;;;;;N;;;;; -133DB;EGYPTIAN HIEROGLYPH Y001;Lo;0;L;;;;;N;;;;; -133DC;EGYPTIAN HIEROGLYPH Y001A;Lo;0;L;;;;;N;;;;; -133DD;EGYPTIAN HIEROGLYPH Y002;Lo;0;L;;;;;N;;;;; -133DE;EGYPTIAN HIEROGLYPH Y003;Lo;0;L;;;;;N;;;;; -133DF;EGYPTIAN HIEROGLYPH Y004;Lo;0;L;;;;;N;;;;; -133E0;EGYPTIAN HIEROGLYPH Y005;Lo;0;L;;;;;N;;;;; -133E1;EGYPTIAN HIEROGLYPH Y006;Lo;0;L;;;;;N;;;;; -133E2;EGYPTIAN HIEROGLYPH Y007;Lo;0;L;;;;;N;;;;; -133E3;EGYPTIAN HIEROGLYPH Y008;Lo;0;L;;;;;N;;;;; -133E4;EGYPTIAN HIEROGLYPH Z001;Lo;0;L;;;;;N;;;;; -133E5;EGYPTIAN HIEROGLYPH Z002;Lo;0;L;;;;;N;;;;; -133E6;EGYPTIAN HIEROGLYPH Z002A;Lo;0;L;;;;;N;;;;; -133E7;EGYPTIAN HIEROGLYPH Z002B;Lo;0;L;;;;;N;;;;; -133E8;EGYPTIAN HIEROGLYPH Z002C;Lo;0;L;;;;;N;;;;; -133E9;EGYPTIAN HIEROGLYPH Z002D;Lo;0;L;;;;;N;;;;; -133EA;EGYPTIAN HIEROGLYPH Z003;Lo;0;L;;;;;N;;;;; -133EB;EGYPTIAN HIEROGLYPH Z003A;Lo;0;L;;;;;N;;;;; -133EC;EGYPTIAN HIEROGLYPH Z003B;Lo;0;L;;;;;N;;;;; -133ED;EGYPTIAN HIEROGLYPH Z004;Lo;0;L;;;;;N;;;;; -133EE;EGYPTIAN HIEROGLYPH Z004A;Lo;0;L;;;;;N;;;;; -133EF;EGYPTIAN HIEROGLYPH Z005;Lo;0;L;;;;;N;;;;; -133F0;EGYPTIAN HIEROGLYPH Z005A;Lo;0;L;;;;;N;;;;; -133F1;EGYPTIAN HIEROGLYPH Z006;Lo;0;L;;;;;N;;;;; -133F2;EGYPTIAN HIEROGLYPH Z007;Lo;0;L;;;;;N;;;;; -133F3;EGYPTIAN HIEROGLYPH Z008;Lo;0;L;;;;;N;;;;; -133F4;EGYPTIAN HIEROGLYPH Z009;Lo;0;L;;;;;N;;;;; -133F5;EGYPTIAN HIEROGLYPH Z010;Lo;0;L;;;;;N;;;;; -133F6;EGYPTIAN HIEROGLYPH Z011;Lo;0;L;;;;;N;;;;; -133F7;EGYPTIAN HIEROGLYPH Z012;Lo;0;L;;;;;N;;;;; -133F8;EGYPTIAN HIEROGLYPH Z013;Lo;0;L;;;;;N;;;;; -133F9;EGYPTIAN HIEROGLYPH Z014;Lo;0;L;;;;;N;;;;; -133FA;EGYPTIAN HIEROGLYPH Z015;Lo;0;L;;;;;N;;;;; -133FB;EGYPTIAN HIEROGLYPH Z015A;Lo;0;L;;;;;N;;;;; -133FC;EGYPTIAN HIEROGLYPH Z015B;Lo;0;L;;;;;N;;;;; -133FD;EGYPTIAN HIEROGLYPH Z015C;Lo;0;L;;;;;N;;;;; -133FE;EGYPTIAN HIEROGLYPH Z015D;Lo;0;L;;;;;N;;;;; -133FF;EGYPTIAN HIEROGLYPH Z015E;Lo;0;L;;;;;N;;;;; -13400;EGYPTIAN HIEROGLYPH Z015F;Lo;0;L;;;;;N;;;;; -13401;EGYPTIAN HIEROGLYPH Z015G;Lo;0;L;;;;;N;;;;; -13402;EGYPTIAN HIEROGLYPH Z015H;Lo;0;L;;;;;N;;;;; -13403;EGYPTIAN HIEROGLYPH Z015I;Lo;0;L;;;;;N;;;;; -13404;EGYPTIAN HIEROGLYPH Z016;Lo;0;L;;;;;N;;;;; -13405;EGYPTIAN HIEROGLYPH Z016A;Lo;0;L;;;;;N;;;;; -13406;EGYPTIAN HIEROGLYPH Z016B;Lo;0;L;;;;;N;;;;; -13407;EGYPTIAN HIEROGLYPH Z016C;Lo;0;L;;;;;N;;;;; -13408;EGYPTIAN HIEROGLYPH Z016D;Lo;0;L;;;;;N;;;;; -13409;EGYPTIAN HIEROGLYPH Z016E;Lo;0;L;;;;;N;;;;; -1340A;EGYPTIAN HIEROGLYPH Z016F;Lo;0;L;;;;;N;;;;; -1340B;EGYPTIAN HIEROGLYPH Z016G;Lo;0;L;;;;;N;;;;; -1340C;EGYPTIAN HIEROGLYPH Z016H;Lo;0;L;;;;;N;;;;; -1340D;EGYPTIAN HIEROGLYPH AA001;Lo;0;L;;;;;N;;;;; -1340E;EGYPTIAN HIEROGLYPH AA002;Lo;0;L;;;;;N;;;;; -1340F;EGYPTIAN HIEROGLYPH AA003;Lo;0;L;;;;;N;;;;; -13410;EGYPTIAN HIEROGLYPH AA004;Lo;0;L;;;;;N;;;;; -13411;EGYPTIAN HIEROGLYPH AA005;Lo;0;L;;;;;N;;;;; -13412;EGYPTIAN HIEROGLYPH AA006;Lo;0;L;;;;;N;;;;; -13413;EGYPTIAN HIEROGLYPH AA007;Lo;0;L;;;;;N;;;;; -13414;EGYPTIAN HIEROGLYPH AA007A;Lo;0;L;;;;;N;;;;; -13415;EGYPTIAN HIEROGLYPH AA007B;Lo;0;L;;;;;N;;;;; -13416;EGYPTIAN HIEROGLYPH AA008;Lo;0;L;;;;;N;;;;; -13417;EGYPTIAN HIEROGLYPH AA009;Lo;0;L;;;;;N;;;;; -13418;EGYPTIAN HIEROGLYPH AA010;Lo;0;L;;;;;N;;;;; -13419;EGYPTIAN HIEROGLYPH AA011;Lo;0;L;;;;;N;;;;; -1341A;EGYPTIAN HIEROGLYPH AA012;Lo;0;L;;;;;N;;;;; -1341B;EGYPTIAN HIEROGLYPH AA013;Lo;0;L;;;;;N;;;;; -1341C;EGYPTIAN HIEROGLYPH AA014;Lo;0;L;;;;;N;;;;; -1341D;EGYPTIAN HIEROGLYPH AA015;Lo;0;L;;;;;N;;;;; -1341E;EGYPTIAN HIEROGLYPH AA016;Lo;0;L;;;;;N;;;;; -1341F;EGYPTIAN HIEROGLYPH AA017;Lo;0;L;;;;;N;;;;; -13420;EGYPTIAN HIEROGLYPH AA018;Lo;0;L;;;;;N;;;;; -13421;EGYPTIAN HIEROGLYPH AA019;Lo;0;L;;;;;N;;;;; -13422;EGYPTIAN HIEROGLYPH AA020;Lo;0;L;;;;;N;;;;; -13423;EGYPTIAN HIEROGLYPH AA021;Lo;0;L;;;;;N;;;;; -13424;EGYPTIAN HIEROGLYPH AA022;Lo;0;L;;;;;N;;;;; -13425;EGYPTIAN HIEROGLYPH AA023;Lo;0;L;;;;;N;;;;; -13426;EGYPTIAN HIEROGLYPH AA024;Lo;0;L;;;;;N;;;;; -13427;EGYPTIAN HIEROGLYPH AA025;Lo;0;L;;;;;N;;;;; -13428;EGYPTIAN HIEROGLYPH AA026;Lo;0;L;;;;;N;;;;; -13429;EGYPTIAN HIEROGLYPH AA027;Lo;0;L;;;;;N;;;;; -1342A;EGYPTIAN HIEROGLYPH AA028;Lo;0;L;;;;;N;;;;; -1342B;EGYPTIAN HIEROGLYPH AA029;Lo;0;L;;;;;N;;;;; -1342C;EGYPTIAN HIEROGLYPH AA030;Lo;0;L;;;;;N;;;;; -1342D;EGYPTIAN HIEROGLYPH AA031;Lo;0;L;;;;;N;;;;; -1342E;EGYPTIAN HIEROGLYPH AA032;Lo;0;L;;;;;N;;;;; -1D000;BYZANTINE MUSICAL SYMBOL PSILI;So;0;L;;;;;N;;;;; -1D001;BYZANTINE MUSICAL SYMBOL DASEIA;So;0;L;;;;;N;;;;; -1D002;BYZANTINE MUSICAL SYMBOL PERISPOMENI;So;0;L;;;;;N;;;;; -1D003;BYZANTINE MUSICAL SYMBOL OXEIA EKFONITIKON;So;0;L;;;;;N;;;;; -1D004;BYZANTINE MUSICAL SYMBOL OXEIA DIPLI;So;0;L;;;;;N;;;;; -1D005;BYZANTINE MUSICAL SYMBOL VAREIA EKFONITIKON;So;0;L;;;;;N;;;;; -1D006;BYZANTINE MUSICAL SYMBOL VAREIA DIPLI;So;0;L;;;;;N;;;;; -1D007;BYZANTINE MUSICAL SYMBOL KATHISTI;So;0;L;;;;;N;;;;; -1D008;BYZANTINE MUSICAL SYMBOL SYRMATIKI;So;0;L;;;;;N;;;;; -1D009;BYZANTINE MUSICAL SYMBOL PARAKLITIKI;So;0;L;;;;;N;;;;; -1D00A;BYZANTINE MUSICAL SYMBOL YPOKRISIS;So;0;L;;;;;N;;;;; -1D00B;BYZANTINE MUSICAL SYMBOL YPOKRISIS DIPLI;So;0;L;;;;;N;;;;; -1D00C;BYZANTINE MUSICAL SYMBOL KREMASTI;So;0;L;;;;;N;;;;; -1D00D;BYZANTINE MUSICAL SYMBOL APESO EKFONITIKON;So;0;L;;;;;N;;;;; -1D00E;BYZANTINE MUSICAL SYMBOL EXO EKFONITIKON;So;0;L;;;;;N;;;;; -1D00F;BYZANTINE MUSICAL SYMBOL TELEIA;So;0;L;;;;;N;;;;; -1D010;BYZANTINE MUSICAL SYMBOL KENTIMATA;So;0;L;;;;;N;;;;; -1D011;BYZANTINE MUSICAL SYMBOL APOSTROFOS;So;0;L;;;;;N;;;;; -1D012;BYZANTINE MUSICAL SYMBOL APOSTROFOS DIPLI;So;0;L;;;;;N;;;;; -1D013;BYZANTINE MUSICAL SYMBOL SYNEVMA;So;0;L;;;;;N;;;;; -1D014;BYZANTINE MUSICAL SYMBOL THITA;So;0;L;;;;;N;;;;; -1D015;BYZANTINE MUSICAL SYMBOL OLIGON ARCHAION;So;0;L;;;;;N;;;;; -1D016;BYZANTINE MUSICAL SYMBOL GORGON ARCHAION;So;0;L;;;;;N;;;;; -1D017;BYZANTINE MUSICAL SYMBOL PSILON;So;0;L;;;;;N;;;;; -1D018;BYZANTINE MUSICAL SYMBOL CHAMILON;So;0;L;;;;;N;;;;; -1D019;BYZANTINE MUSICAL SYMBOL VATHY;So;0;L;;;;;N;;;;; -1D01A;BYZANTINE MUSICAL SYMBOL ISON ARCHAION;So;0;L;;;;;N;;;;; -1D01B;BYZANTINE MUSICAL SYMBOL KENTIMA ARCHAION;So;0;L;;;;;N;;;;; -1D01C;BYZANTINE MUSICAL SYMBOL KENTIMATA ARCHAION;So;0;L;;;;;N;;;;; -1D01D;BYZANTINE MUSICAL SYMBOL SAXIMATA;So;0;L;;;;;N;;;;; -1D01E;BYZANTINE MUSICAL SYMBOL PARICHON;So;0;L;;;;;N;;;;; -1D01F;BYZANTINE MUSICAL SYMBOL STAVROS APODEXIA;So;0;L;;;;;N;;;;; -1D020;BYZANTINE MUSICAL SYMBOL OXEIAI ARCHAION;So;0;L;;;;;N;;;;; -1D021;BYZANTINE MUSICAL SYMBOL VAREIAI ARCHAION;So;0;L;;;;;N;;;;; -1D022;BYZANTINE MUSICAL SYMBOL APODERMA ARCHAION;So;0;L;;;;;N;;;;; -1D023;BYZANTINE MUSICAL SYMBOL APOTHEMA;So;0;L;;;;;N;;;;; -1D024;BYZANTINE MUSICAL SYMBOL KLASMA;So;0;L;;;;;N;;;;; -1D025;BYZANTINE MUSICAL SYMBOL REVMA;So;0;L;;;;;N;;;;; -1D026;BYZANTINE MUSICAL SYMBOL PIASMA ARCHAION;So;0;L;;;;;N;;;;; -1D027;BYZANTINE MUSICAL SYMBOL TINAGMA;So;0;L;;;;;N;;;;; -1D028;BYZANTINE MUSICAL SYMBOL ANATRICHISMA;So;0;L;;;;;N;;;;; -1D029;BYZANTINE MUSICAL SYMBOL SEISMA;So;0;L;;;;;N;;;;; -1D02A;BYZANTINE MUSICAL SYMBOL SYNAGMA ARCHAION;So;0;L;;;;;N;;;;; -1D02B;BYZANTINE MUSICAL SYMBOL SYNAGMA META STAVROU;So;0;L;;;;;N;;;;; -1D02C;BYZANTINE MUSICAL SYMBOL OYRANISMA ARCHAION;So;0;L;;;;;N;;;;; -1D02D;BYZANTINE MUSICAL SYMBOL THEMA;So;0;L;;;;;N;;;;; -1D02E;BYZANTINE MUSICAL SYMBOL LEMOI;So;0;L;;;;;N;;;;; -1D02F;BYZANTINE MUSICAL SYMBOL DYO;So;0;L;;;;;N;;;;; -1D030;BYZANTINE MUSICAL SYMBOL TRIA;So;0;L;;;;;N;;;;; -1D031;BYZANTINE MUSICAL SYMBOL TESSERA;So;0;L;;;;;N;;;;; -1D032;BYZANTINE MUSICAL SYMBOL KRATIMATA;So;0;L;;;;;N;;;;; -1D033;BYZANTINE MUSICAL SYMBOL APESO EXO NEO;So;0;L;;;;;N;;;;; -1D034;BYZANTINE MUSICAL SYMBOL FTHORA ARCHAION;So;0;L;;;;;N;;;;; -1D035;BYZANTINE MUSICAL SYMBOL IMIFTHORA;So;0;L;;;;;N;;;;; -1D036;BYZANTINE MUSICAL SYMBOL TROMIKON ARCHAION;So;0;L;;;;;N;;;;; -1D037;BYZANTINE MUSICAL SYMBOL KATAVA TROMIKON;So;0;L;;;;;N;;;;; -1D038;BYZANTINE MUSICAL SYMBOL PELASTON;So;0;L;;;;;N;;;;; -1D039;BYZANTINE MUSICAL SYMBOL PSIFISTON;So;0;L;;;;;N;;;;; -1D03A;BYZANTINE MUSICAL SYMBOL KONTEVMA;So;0;L;;;;;N;;;;; -1D03B;BYZANTINE MUSICAL SYMBOL CHOREVMA ARCHAION;So;0;L;;;;;N;;;;; -1D03C;BYZANTINE MUSICAL SYMBOL RAPISMA;So;0;L;;;;;N;;;;; -1D03D;BYZANTINE MUSICAL SYMBOL PARAKALESMA ARCHAION;So;0;L;;;;;N;;;;; -1D03E;BYZANTINE MUSICAL SYMBOL PARAKLITIKI ARCHAION;So;0;L;;;;;N;;;;; -1D03F;BYZANTINE MUSICAL SYMBOL ICHADIN;So;0;L;;;;;N;;;;; -1D040;BYZANTINE MUSICAL SYMBOL NANA;So;0;L;;;;;N;;;;; -1D041;BYZANTINE MUSICAL SYMBOL PETASMA;So;0;L;;;;;N;;;;; -1D042;BYZANTINE MUSICAL SYMBOL KONTEVMA ALLO;So;0;L;;;;;N;;;;; -1D043;BYZANTINE MUSICAL SYMBOL TROMIKON ALLO;So;0;L;;;;;N;;;;; -1D044;BYZANTINE MUSICAL SYMBOL STRAGGISMATA;So;0;L;;;;;N;;;;; -1D045;BYZANTINE MUSICAL SYMBOL GRONTHISMATA;So;0;L;;;;;N;;;;; -1D046;BYZANTINE MUSICAL SYMBOL ISON NEO;So;0;L;;;;;N;;;;; -1D047;BYZANTINE MUSICAL SYMBOL OLIGON NEO;So;0;L;;;;;N;;;;; -1D048;BYZANTINE MUSICAL SYMBOL OXEIA NEO;So;0;L;;;;;N;;;;; -1D049;BYZANTINE MUSICAL SYMBOL PETASTI;So;0;L;;;;;N;;;;; -1D04A;BYZANTINE MUSICAL SYMBOL KOUFISMA;So;0;L;;;;;N;;;;; -1D04B;BYZANTINE MUSICAL SYMBOL PETASTOKOUFISMA;So;0;L;;;;;N;;;;; -1D04C;BYZANTINE MUSICAL SYMBOL KRATIMOKOUFISMA;So;0;L;;;;;N;;;;; -1D04D;BYZANTINE MUSICAL SYMBOL PELASTON NEO;So;0;L;;;;;N;;;;; -1D04E;BYZANTINE MUSICAL SYMBOL KENTIMATA NEO ANO;So;0;L;;;;;N;;;;; -1D04F;BYZANTINE MUSICAL SYMBOL KENTIMA NEO ANO;So;0;L;;;;;N;;;;; -1D050;BYZANTINE MUSICAL SYMBOL YPSILI;So;0;L;;;;;N;;;;; -1D051;BYZANTINE MUSICAL SYMBOL APOSTROFOS NEO;So;0;L;;;;;N;;;;; -1D052;BYZANTINE MUSICAL SYMBOL APOSTROFOI SYNDESMOS NEO;So;0;L;;;;;N;;;;; -1D053;BYZANTINE MUSICAL SYMBOL YPORROI;So;0;L;;;;;N;;;;; -1D054;BYZANTINE MUSICAL SYMBOL KRATIMOYPORROON;So;0;L;;;;;N;;;;; -1D055;BYZANTINE MUSICAL SYMBOL ELAFRON;So;0;L;;;;;N;;;;; -1D056;BYZANTINE MUSICAL SYMBOL CHAMILI;So;0;L;;;;;N;;;;; -1D057;BYZANTINE MUSICAL SYMBOL MIKRON ISON;So;0;L;;;;;N;;;;; -1D058;BYZANTINE MUSICAL SYMBOL VAREIA NEO;So;0;L;;;;;N;;;;; -1D059;BYZANTINE MUSICAL SYMBOL PIASMA NEO;So;0;L;;;;;N;;;;; -1D05A;BYZANTINE MUSICAL SYMBOL PSIFISTON NEO;So;0;L;;;;;N;;;;; -1D05B;BYZANTINE MUSICAL SYMBOL OMALON;So;0;L;;;;;N;;;;; -1D05C;BYZANTINE MUSICAL SYMBOL ANTIKENOMA;So;0;L;;;;;N;;;;; -1D05D;BYZANTINE MUSICAL SYMBOL LYGISMA;So;0;L;;;;;N;;;;; -1D05E;BYZANTINE MUSICAL SYMBOL PARAKLITIKI NEO;So;0;L;;;;;N;;;;; -1D05F;BYZANTINE MUSICAL SYMBOL PARAKALESMA NEO;So;0;L;;;;;N;;;;; -1D060;BYZANTINE MUSICAL SYMBOL ETERON PARAKALESMA;So;0;L;;;;;N;;;;; -1D061;BYZANTINE MUSICAL SYMBOL KYLISMA;So;0;L;;;;;N;;;;; -1D062;BYZANTINE MUSICAL SYMBOL ANTIKENOKYLISMA;So;0;L;;;;;N;;;;; -1D063;BYZANTINE MUSICAL SYMBOL TROMIKON NEO;So;0;L;;;;;N;;;;; -1D064;BYZANTINE MUSICAL SYMBOL EKSTREPTON;So;0;L;;;;;N;;;;; -1D065;BYZANTINE MUSICAL SYMBOL SYNAGMA NEO;So;0;L;;;;;N;;;;; -1D066;BYZANTINE MUSICAL SYMBOL SYRMA;So;0;L;;;;;N;;;;; -1D067;BYZANTINE MUSICAL SYMBOL CHOREVMA NEO;So;0;L;;;;;N;;;;; -1D068;BYZANTINE MUSICAL SYMBOL EPEGERMA;So;0;L;;;;;N;;;;; -1D069;BYZANTINE MUSICAL SYMBOL SEISMA NEO;So;0;L;;;;;N;;;;; -1D06A;BYZANTINE MUSICAL SYMBOL XIRON KLASMA;So;0;L;;;;;N;;;;; -1D06B;BYZANTINE MUSICAL SYMBOL TROMIKOPSIFISTON;So;0;L;;;;;N;;;;; -1D06C;BYZANTINE MUSICAL SYMBOL PSIFISTOLYGISMA;So;0;L;;;;;N;;;;; -1D06D;BYZANTINE MUSICAL SYMBOL TROMIKOLYGISMA;So;0;L;;;;;N;;;;; -1D06E;BYZANTINE MUSICAL SYMBOL TROMIKOPARAKALESMA;So;0;L;;;;;N;;;;; -1D06F;BYZANTINE MUSICAL SYMBOL PSIFISTOPARAKALESMA;So;0;L;;;;;N;;;;; -1D070;BYZANTINE MUSICAL SYMBOL TROMIKOSYNAGMA;So;0;L;;;;;N;;;;; -1D071;BYZANTINE MUSICAL SYMBOL PSIFISTOSYNAGMA;So;0;L;;;;;N;;;;; -1D072;BYZANTINE MUSICAL SYMBOL GORGOSYNTHETON;So;0;L;;;;;N;;;;; -1D073;BYZANTINE MUSICAL SYMBOL ARGOSYNTHETON;So;0;L;;;;;N;;;;; -1D074;BYZANTINE MUSICAL SYMBOL ETERON ARGOSYNTHETON;So;0;L;;;;;N;;;;; -1D075;BYZANTINE MUSICAL SYMBOL OYRANISMA NEO;So;0;L;;;;;N;;;;; -1D076;BYZANTINE MUSICAL SYMBOL THEMATISMOS ESO;So;0;L;;;;;N;;;;; -1D077;BYZANTINE MUSICAL SYMBOL THEMATISMOS EXO;So;0;L;;;;;N;;;;; -1D078;BYZANTINE MUSICAL SYMBOL THEMA APLOUN;So;0;L;;;;;N;;;;; -1D079;BYZANTINE MUSICAL SYMBOL THES KAI APOTHES;So;0;L;;;;;N;;;;; -1D07A;BYZANTINE MUSICAL SYMBOL KATAVASMA;So;0;L;;;;;N;;;;; -1D07B;BYZANTINE MUSICAL SYMBOL ENDOFONON;So;0;L;;;;;N;;;;; -1D07C;BYZANTINE MUSICAL SYMBOL YFEN KATO;So;0;L;;;;;N;;;;; -1D07D;BYZANTINE MUSICAL SYMBOL YFEN ANO;So;0;L;;;;;N;;;;; -1D07E;BYZANTINE MUSICAL SYMBOL STAVROS;So;0;L;;;;;N;;;;; -1D07F;BYZANTINE MUSICAL SYMBOL KLASMA ANO;So;0;L;;;;;N;;;;; -1D080;BYZANTINE MUSICAL SYMBOL DIPLI ARCHAION;So;0;L;;;;;N;;;;; -1D081;BYZANTINE MUSICAL SYMBOL KRATIMA ARCHAION;So;0;L;;;;;N;;;;; -1D082;BYZANTINE MUSICAL SYMBOL KRATIMA ALLO;So;0;L;;;;;N;;;;; -1D083;BYZANTINE MUSICAL SYMBOL KRATIMA NEO;So;0;L;;;;;N;;;;; -1D084;BYZANTINE MUSICAL SYMBOL APODERMA NEO;So;0;L;;;;;N;;;;; -1D085;BYZANTINE MUSICAL SYMBOL APLI;So;0;L;;;;;N;;;;; -1D086;BYZANTINE MUSICAL SYMBOL DIPLI;So;0;L;;;;;N;;;;; -1D087;BYZANTINE MUSICAL SYMBOL TRIPLI;So;0;L;;;;;N;;;;; -1D088;BYZANTINE MUSICAL SYMBOL TETRAPLI;So;0;L;;;;;N;;;;; -1D089;BYZANTINE MUSICAL SYMBOL KORONIS;So;0;L;;;;;N;;;;; -1D08A;BYZANTINE MUSICAL SYMBOL LEIMMA ENOS CHRONOU;So;0;L;;;;;N;;;;; -1D08B;BYZANTINE MUSICAL SYMBOL LEIMMA DYO CHRONON;So;0;L;;;;;N;;;;; -1D08C;BYZANTINE MUSICAL SYMBOL LEIMMA TRION CHRONON;So;0;L;;;;;N;;;;; -1D08D;BYZANTINE MUSICAL SYMBOL LEIMMA TESSARON CHRONON;So;0;L;;;;;N;;;;; -1D08E;BYZANTINE MUSICAL SYMBOL LEIMMA IMISEOS CHRONOU;So;0;L;;;;;N;;;;; -1D08F;BYZANTINE MUSICAL SYMBOL GORGON NEO ANO;So;0;L;;;;;N;;;;; -1D090;BYZANTINE MUSICAL SYMBOL GORGON PARESTIGMENON ARISTERA;So;0;L;;;;;N;;;;; -1D091;BYZANTINE MUSICAL SYMBOL GORGON PARESTIGMENON DEXIA;So;0;L;;;;;N;;;;; -1D092;BYZANTINE MUSICAL SYMBOL DIGORGON;So;0;L;;;;;N;;;;; -1D093;BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON ARISTERA KATO;So;0;L;;;;;N;;;;; -1D094;BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON ARISTERA ANO;So;0;L;;;;;N;;;;; -1D095;BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON DEXIA;So;0;L;;;;;N;;;;; -1D096;BYZANTINE MUSICAL SYMBOL TRIGORGON;So;0;L;;;;;N;;;;; -1D097;BYZANTINE MUSICAL SYMBOL ARGON;So;0;L;;;;;N;;;;; -1D098;BYZANTINE MUSICAL SYMBOL IMIDIARGON;So;0;L;;;;;N;;;;; -1D099;BYZANTINE MUSICAL SYMBOL DIARGON;So;0;L;;;;;N;;;;; -1D09A;BYZANTINE MUSICAL SYMBOL AGOGI POLI ARGI;So;0;L;;;;;N;;;;; -1D09B;BYZANTINE MUSICAL SYMBOL AGOGI ARGOTERI;So;0;L;;;;;N;;;;; -1D09C;BYZANTINE MUSICAL SYMBOL AGOGI ARGI;So;0;L;;;;;N;;;;; -1D09D;BYZANTINE MUSICAL SYMBOL AGOGI METRIA;So;0;L;;;;;N;;;;; -1D09E;BYZANTINE MUSICAL SYMBOL AGOGI MESI;So;0;L;;;;;N;;;;; -1D09F;BYZANTINE MUSICAL SYMBOL AGOGI GORGI;So;0;L;;;;;N;;;;; -1D0A0;BYZANTINE MUSICAL SYMBOL AGOGI GORGOTERI;So;0;L;;;;;N;;;;; -1D0A1;BYZANTINE MUSICAL SYMBOL AGOGI POLI GORGI;So;0;L;;;;;N;;;;; -1D0A2;BYZANTINE MUSICAL SYMBOL MARTYRIA PROTOS ICHOS;So;0;L;;;;;N;;;;; -1D0A3;BYZANTINE MUSICAL SYMBOL MARTYRIA ALLI PROTOS ICHOS;So;0;L;;;;;N;;;;; -1D0A4;BYZANTINE MUSICAL SYMBOL MARTYRIA DEYTEROS ICHOS;So;0;L;;;;;N;;;;; -1D0A5;BYZANTINE MUSICAL SYMBOL MARTYRIA ALLI DEYTEROS ICHOS;So;0;L;;;;;N;;;;; -1D0A6;BYZANTINE MUSICAL SYMBOL MARTYRIA TRITOS ICHOS;So;0;L;;;;;N;;;;; -1D0A7;BYZANTINE MUSICAL SYMBOL MARTYRIA TRIFONIAS;So;0;L;;;;;N;;;;; -1D0A8;BYZANTINE MUSICAL SYMBOL MARTYRIA TETARTOS ICHOS;So;0;L;;;;;N;;;;; -1D0A9;BYZANTINE MUSICAL SYMBOL MARTYRIA TETARTOS LEGETOS ICHOS;So;0;L;;;;;N;;;;; -1D0AA;BYZANTINE MUSICAL SYMBOL MARTYRIA LEGETOS ICHOS;So;0;L;;;;;N;;;;; -1D0AB;BYZANTINE MUSICAL SYMBOL MARTYRIA PLAGIOS ICHOS;So;0;L;;;;;N;;;;; -1D0AC;BYZANTINE MUSICAL SYMBOL ISAKIA TELOUS ICHIMATOS;So;0;L;;;;;N;;;;; -1D0AD;BYZANTINE MUSICAL SYMBOL APOSTROFOI TELOUS ICHIMATOS;So;0;L;;;;;N;;;;; -1D0AE;BYZANTINE MUSICAL SYMBOL FANEROSIS TETRAFONIAS;So;0;L;;;;;N;;;;; -1D0AF;BYZANTINE MUSICAL SYMBOL FANEROSIS MONOFONIAS;So;0;L;;;;;N;;;;; -1D0B0;BYZANTINE MUSICAL SYMBOL FANEROSIS DIFONIAS;So;0;L;;;;;N;;;;; -1D0B1;BYZANTINE MUSICAL SYMBOL MARTYRIA VARYS ICHOS;So;0;L;;;;;N;;;;; -1D0B2;BYZANTINE MUSICAL SYMBOL MARTYRIA PROTOVARYS ICHOS;So;0;L;;;;;N;;;;; -1D0B3;BYZANTINE MUSICAL SYMBOL MARTYRIA PLAGIOS TETARTOS ICHOS;So;0;L;;;;;N;;;;; -1D0B4;BYZANTINE MUSICAL SYMBOL GORTHMIKON N APLOUN;So;0;L;;;;;N;;;;; -1D0B5;BYZANTINE MUSICAL SYMBOL GORTHMIKON N DIPLOUN;So;0;L;;;;;N;;;;; -1D0B6;BYZANTINE MUSICAL SYMBOL ENARXIS KAI FTHORA VOU;So;0;L;;;;;N;;;;; -1D0B7;BYZANTINE MUSICAL SYMBOL IMIFONON;So;0;L;;;;;N;;;;; -1D0B8;BYZANTINE MUSICAL SYMBOL IMIFTHORON;So;0;L;;;;;N;;;;; -1D0B9;BYZANTINE MUSICAL SYMBOL FTHORA ARCHAION DEYTEROU ICHOU;So;0;L;;;;;N;;;;; -1D0BA;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI PA;So;0;L;;;;;N;;;;; -1D0BB;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NANA;So;0;L;;;;;N;;;;; -1D0BC;BYZANTINE MUSICAL SYMBOL FTHORA NAOS ICHOS;So;0;L;;;;;N;;;;; -1D0BD;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI DI;So;0;L;;;;;N;;;;; -1D0BE;BYZANTINE MUSICAL SYMBOL FTHORA SKLIRON DIATONON DI;So;0;L;;;;;N;;;;; -1D0BF;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI KE;So;0;L;;;;;N;;;;; -1D0C0;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI ZO;So;0;L;;;;;N;;;;; -1D0C1;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NI KATO;So;0;L;;;;;N;;;;; -1D0C2;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NI ANO;So;0;L;;;;;N;;;;; -1D0C3;BYZANTINE MUSICAL SYMBOL FTHORA MALAKON CHROMA DIFONIAS;So;0;L;;;;;N;;;;; -1D0C4;BYZANTINE MUSICAL SYMBOL FTHORA MALAKON CHROMA MONOFONIAS;So;0;L;;;;;N;;;;; -1D0C5;BYZANTINE MUSICAL SYMBOL FHTORA SKLIRON CHROMA VASIS;So;0;L;;;;;N;;;;; -1D0C6;BYZANTINE MUSICAL SYMBOL FTHORA SKLIRON CHROMA SYNAFI;So;0;L;;;;;N;;;;; -1D0C7;BYZANTINE MUSICAL SYMBOL FTHORA NENANO;So;0;L;;;;;N;;;;; -1D0C8;BYZANTINE MUSICAL SYMBOL CHROA ZYGOS;So;0;L;;;;;N;;;;; -1D0C9;BYZANTINE MUSICAL SYMBOL CHROA KLITON;So;0;L;;;;;N;;;;; -1D0CA;BYZANTINE MUSICAL SYMBOL CHROA SPATHI;So;0;L;;;;;N;;;;; -1D0CB;BYZANTINE MUSICAL SYMBOL FTHORA I YFESIS TETARTIMORION;So;0;L;;;;;N;;;;; -1D0CC;BYZANTINE MUSICAL SYMBOL FTHORA ENARMONIOS ANTIFONIA;So;0;L;;;;;N;;;;; -1D0CD;BYZANTINE MUSICAL SYMBOL YFESIS TRITIMORION;So;0;L;;;;;N;;;;; -1D0CE;BYZANTINE MUSICAL SYMBOL DIESIS TRITIMORION;So;0;L;;;;;N;;;;; -1D0CF;BYZANTINE MUSICAL SYMBOL DIESIS TETARTIMORION;So;0;L;;;;;N;;;;; -1D0D0;BYZANTINE MUSICAL SYMBOL DIESIS APLI DYO DODEKATA;So;0;L;;;;;N;;;;; -1D0D1;BYZANTINE MUSICAL SYMBOL DIESIS MONOGRAMMOS TESSERA DODEKATA;So;0;L;;;;;N;;;;; -1D0D2;BYZANTINE MUSICAL SYMBOL DIESIS DIGRAMMOS EX DODEKATA;So;0;L;;;;;N;;;;; -1D0D3;BYZANTINE MUSICAL SYMBOL DIESIS TRIGRAMMOS OKTO DODEKATA;So;0;L;;;;;N;;;;; -1D0D4;BYZANTINE MUSICAL SYMBOL YFESIS APLI DYO DODEKATA;So;0;L;;;;;N;;;;; -1D0D5;BYZANTINE MUSICAL SYMBOL YFESIS MONOGRAMMOS TESSERA DODEKATA;So;0;L;;;;;N;;;;; -1D0D6;BYZANTINE MUSICAL SYMBOL YFESIS DIGRAMMOS EX DODEKATA;So;0;L;;;;;N;;;;; -1D0D7;BYZANTINE MUSICAL SYMBOL YFESIS TRIGRAMMOS OKTO DODEKATA;So;0;L;;;;;N;;;;; -1D0D8;BYZANTINE MUSICAL SYMBOL GENIKI DIESIS;So;0;L;;;;;N;;;;; -1D0D9;BYZANTINE MUSICAL SYMBOL GENIKI YFESIS;So;0;L;;;;;N;;;;; -1D0DA;BYZANTINE MUSICAL SYMBOL DIASTOLI APLI MIKRI;So;0;L;;;;;N;;;;; -1D0DB;BYZANTINE MUSICAL SYMBOL DIASTOLI APLI MEGALI;So;0;L;;;;;N;;;;; -1D0DC;BYZANTINE MUSICAL SYMBOL DIASTOLI DIPLI;So;0;L;;;;;N;;;;; -1D0DD;BYZANTINE MUSICAL SYMBOL DIASTOLI THESEOS;So;0;L;;;;;N;;;;; -1D0DE;BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS;So;0;L;;;;;N;;;;; -1D0DF;BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS DISIMOU;So;0;L;;;;;N;;;;; -1D0E0;BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS TRISIMOU;So;0;L;;;;;N;;;;; -1D0E1;BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS TETRASIMOU;So;0;L;;;;;N;;;;; -1D0E2;BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS;So;0;L;;;;;N;;;;; -1D0E3;BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS DISIMOU;So;0;L;;;;;N;;;;; -1D0E4;BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS TRISIMOU;So;0;L;;;;;N;;;;; -1D0E5;BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS TETRASIMOU;So;0;L;;;;;N;;;;; -1D0E6;BYZANTINE MUSICAL SYMBOL DIGRAMMA GG;So;0;L;;;;;N;;;;; -1D0E7;BYZANTINE MUSICAL SYMBOL DIFTOGGOS OU;So;0;L;;;;;N;;;;; -1D0E8;BYZANTINE MUSICAL SYMBOL STIGMA;So;0;L;;;;;N;;;;; -1D0E9;BYZANTINE MUSICAL SYMBOL ARKTIKO PA;So;0;L;;;;;N;;;;; -1D0EA;BYZANTINE MUSICAL SYMBOL ARKTIKO VOU;So;0;L;;;;;N;;;;; -1D0EB;BYZANTINE MUSICAL SYMBOL ARKTIKO GA;So;0;L;;;;;N;;;;; -1D0EC;BYZANTINE MUSICAL SYMBOL ARKTIKO DI;So;0;L;;;;;N;;;;; -1D0ED;BYZANTINE MUSICAL SYMBOL ARKTIKO KE;So;0;L;;;;;N;;;;; -1D0EE;BYZANTINE MUSICAL SYMBOL ARKTIKO ZO;So;0;L;;;;;N;;;;; -1D0EF;BYZANTINE MUSICAL SYMBOL ARKTIKO NI;So;0;L;;;;;N;;;;; -1D0F0;BYZANTINE MUSICAL SYMBOL KENTIMATA NEO MESO;So;0;L;;;;;N;;;;; -1D0F1;BYZANTINE MUSICAL SYMBOL KENTIMA NEO MESO;So;0;L;;;;;N;;;;; -1D0F2;BYZANTINE MUSICAL SYMBOL KENTIMATA NEO KATO;So;0;L;;;;;N;;;;; -1D0F3;BYZANTINE MUSICAL SYMBOL KENTIMA NEO KATO;So;0;L;;;;;N;;;;; -1D0F4;BYZANTINE MUSICAL SYMBOL KLASMA KATO;So;0;L;;;;;N;;;;; -1D0F5;BYZANTINE MUSICAL SYMBOL GORGON NEO KATO;So;0;L;;;;;N;;;;; -1D100;MUSICAL SYMBOL SINGLE BARLINE;So;0;L;;;;;N;;;;; -1D101;MUSICAL SYMBOL DOUBLE BARLINE;So;0;L;;;;;N;;;;; -1D102;MUSICAL SYMBOL FINAL BARLINE;So;0;L;;;;;N;;;;; -1D103;MUSICAL SYMBOL REVERSE FINAL BARLINE;So;0;L;;;;;N;;;;; -1D104;MUSICAL SYMBOL DASHED BARLINE;So;0;L;;;;;N;;;;; -1D105;MUSICAL SYMBOL SHORT BARLINE;So;0;L;;;;;N;;;;; -1D106;MUSICAL SYMBOL LEFT REPEAT SIGN;So;0;L;;;;;N;;;;; -1D107;MUSICAL SYMBOL RIGHT REPEAT SIGN;So;0;L;;;;;N;;;;; -1D108;MUSICAL SYMBOL REPEAT DOTS;So;0;L;;;;;N;;;;; -1D109;MUSICAL SYMBOL DAL SEGNO;So;0;L;;;;;N;;;;; -1D10A;MUSICAL SYMBOL DA CAPO;So;0;L;;;;;N;;;;; -1D10B;MUSICAL SYMBOL SEGNO;So;0;L;;;;;N;;;;; -1D10C;MUSICAL SYMBOL CODA;So;0;L;;;;;N;;;;; -1D10D;MUSICAL SYMBOL REPEATED FIGURE-1;So;0;L;;;;;N;;;;; -1D10E;MUSICAL SYMBOL REPEATED FIGURE-2;So;0;L;;;;;N;;;;; -1D10F;MUSICAL SYMBOL REPEATED FIGURE-3;So;0;L;;;;;N;;;;; -1D110;MUSICAL SYMBOL FERMATA;So;0;L;;;;;N;;;;; -1D111;MUSICAL SYMBOL FERMATA BELOW;So;0;L;;;;;N;;;;; -1D112;MUSICAL SYMBOL BREATH MARK;So;0;L;;;;;N;;;;; -1D113;MUSICAL SYMBOL CAESURA;So;0;L;;;;;N;;;;; -1D114;MUSICAL SYMBOL BRACE;So;0;L;;;;;N;;;;; -1D115;MUSICAL SYMBOL BRACKET;So;0;L;;;;;N;;;;; -1D116;MUSICAL SYMBOL ONE-LINE STAFF;So;0;L;;;;;N;;;;; -1D117;MUSICAL SYMBOL TWO-LINE STAFF;So;0;L;;;;;N;;;;; -1D118;MUSICAL SYMBOL THREE-LINE STAFF;So;0;L;;;;;N;;;;; -1D119;MUSICAL SYMBOL FOUR-LINE STAFF;So;0;L;;;;;N;;;;; -1D11A;MUSICAL SYMBOL FIVE-LINE STAFF;So;0;L;;;;;N;;;;; -1D11B;MUSICAL SYMBOL SIX-LINE STAFF;So;0;L;;;;;N;;;;; -1D11C;MUSICAL SYMBOL SIX-STRING FRETBOARD;So;0;L;;;;;N;;;;; -1D11D;MUSICAL SYMBOL FOUR-STRING FRETBOARD;So;0;L;;;;;N;;;;; -1D11E;MUSICAL SYMBOL G CLEF;So;0;L;;;;;N;;;;; -1D11F;MUSICAL SYMBOL G CLEF OTTAVA ALTA;So;0;L;;;;;N;;;;; -1D120;MUSICAL SYMBOL G CLEF OTTAVA BASSA;So;0;L;;;;;N;;;;; -1D121;MUSICAL SYMBOL C CLEF;So;0;L;;;;;N;;;;; -1D122;MUSICAL SYMBOL F CLEF;So;0;L;;;;;N;;;;; -1D123;MUSICAL SYMBOL F CLEF OTTAVA ALTA;So;0;L;;;;;N;;;;; -1D124;MUSICAL SYMBOL F CLEF OTTAVA BASSA;So;0;L;;;;;N;;;;; -1D125;MUSICAL SYMBOL DRUM CLEF-1;So;0;L;;;;;N;;;;; -1D126;MUSICAL SYMBOL DRUM CLEF-2;So;0;L;;;;;N;;;;; -1D129;MUSICAL SYMBOL MULTIPLE MEASURE REST;So;0;L;;;;;N;;;;; -1D12A;MUSICAL SYMBOL DOUBLE SHARP;So;0;L;;;;;N;;;;; -1D12B;MUSICAL SYMBOL DOUBLE FLAT;So;0;L;;;;;N;;;;; -1D12C;MUSICAL SYMBOL FLAT UP;So;0;L;;;;;N;;;;; -1D12D;MUSICAL SYMBOL FLAT DOWN;So;0;L;;;;;N;;;;; -1D12E;MUSICAL SYMBOL NATURAL UP;So;0;L;;;;;N;;;;; -1D12F;MUSICAL SYMBOL NATURAL DOWN;So;0;L;;;;;N;;;;; -1D130;MUSICAL SYMBOL SHARP UP;So;0;L;;;;;N;;;;; -1D131;MUSICAL SYMBOL SHARP DOWN;So;0;L;;;;;N;;;;; -1D132;MUSICAL SYMBOL QUARTER TONE SHARP;So;0;L;;;;;N;;;;; -1D133;MUSICAL SYMBOL QUARTER TONE FLAT;So;0;L;;;;;N;;;;; -1D134;MUSICAL SYMBOL COMMON TIME;So;0;L;;;;;N;;;;; -1D135;MUSICAL SYMBOL CUT TIME;So;0;L;;;;;N;;;;; -1D136;MUSICAL SYMBOL OTTAVA ALTA;So;0;L;;;;;N;;;;; -1D137;MUSICAL SYMBOL OTTAVA BASSA;So;0;L;;;;;N;;;;; -1D138;MUSICAL SYMBOL QUINDICESIMA ALTA;So;0;L;;;;;N;;;;; -1D139;MUSICAL SYMBOL QUINDICESIMA BASSA;So;0;L;;;;;N;;;;; -1D13A;MUSICAL SYMBOL MULTI REST;So;0;L;;;;;N;;;;; -1D13B;MUSICAL SYMBOL WHOLE REST;So;0;L;;;;;N;;;;; -1D13C;MUSICAL SYMBOL HALF REST;So;0;L;;;;;N;;;;; -1D13D;MUSICAL SYMBOL QUARTER REST;So;0;L;;;;;N;;;;; -1D13E;MUSICAL SYMBOL EIGHTH REST;So;0;L;;;;;N;;;;; -1D13F;MUSICAL SYMBOL SIXTEENTH REST;So;0;L;;;;;N;;;;; -1D140;MUSICAL SYMBOL THIRTY-SECOND REST;So;0;L;;;;;N;;;;; -1D141;MUSICAL SYMBOL SIXTY-FOURTH REST;So;0;L;;;;;N;;;;; -1D142;MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH REST;So;0;L;;;;;N;;;;; -1D143;MUSICAL SYMBOL X NOTEHEAD;So;0;L;;;;;N;;;;; -1D144;MUSICAL SYMBOL PLUS NOTEHEAD;So;0;L;;;;;N;;;;; -1D145;MUSICAL SYMBOL CIRCLE X NOTEHEAD;So;0;L;;;;;N;;;;; -1D146;MUSICAL SYMBOL SQUARE NOTEHEAD WHITE;So;0;L;;;;;N;;;;; -1D147;MUSICAL SYMBOL SQUARE NOTEHEAD BLACK;So;0;L;;;;;N;;;;; -1D148;MUSICAL SYMBOL TRIANGLE NOTEHEAD UP WHITE;So;0;L;;;;;N;;;;; -1D149;MUSICAL SYMBOL TRIANGLE NOTEHEAD UP BLACK;So;0;L;;;;;N;;;;; -1D14A;MUSICAL SYMBOL TRIANGLE NOTEHEAD LEFT WHITE;So;0;L;;;;;N;;;;; -1D14B;MUSICAL SYMBOL TRIANGLE NOTEHEAD LEFT BLACK;So;0;L;;;;;N;;;;; -1D14C;MUSICAL SYMBOL TRIANGLE NOTEHEAD RIGHT WHITE;So;0;L;;;;;N;;;;; -1D14D;MUSICAL SYMBOL TRIANGLE NOTEHEAD RIGHT BLACK;So;0;L;;;;;N;;;;; -1D14E;MUSICAL SYMBOL TRIANGLE NOTEHEAD DOWN WHITE;So;0;L;;;;;N;;;;; -1D14F;MUSICAL SYMBOL TRIANGLE NOTEHEAD DOWN BLACK;So;0;L;;;;;N;;;;; -1D150;MUSICAL SYMBOL TRIANGLE NOTEHEAD UP RIGHT WHITE;So;0;L;;;;;N;;;;; -1D151;MUSICAL SYMBOL TRIANGLE NOTEHEAD UP RIGHT BLACK;So;0;L;;;;;N;;;;; -1D152;MUSICAL SYMBOL MOON NOTEHEAD WHITE;So;0;L;;;;;N;;;;; -1D153;MUSICAL SYMBOL MOON NOTEHEAD BLACK;So;0;L;;;;;N;;;;; -1D154;MUSICAL SYMBOL TRIANGLE-ROUND NOTEHEAD DOWN WHITE;So;0;L;;;;;N;;;;; -1D155;MUSICAL SYMBOL TRIANGLE-ROUND NOTEHEAD DOWN BLACK;So;0;L;;;;;N;;;;; -1D156;MUSICAL SYMBOL PARENTHESIS NOTEHEAD;So;0;L;;;;;N;;;;; -1D157;MUSICAL SYMBOL VOID NOTEHEAD;So;0;L;;;;;N;;;;; -1D158;MUSICAL SYMBOL NOTEHEAD BLACK;So;0;L;;;;;N;;;;; -1D159;MUSICAL SYMBOL NULL NOTEHEAD;So;0;L;;;;;N;;;;; -1D15A;MUSICAL SYMBOL CLUSTER NOTEHEAD WHITE;So;0;L;;;;;N;;;;; -1D15B;MUSICAL SYMBOL CLUSTER NOTEHEAD BLACK;So;0;L;;;;;N;;;;; -1D15C;MUSICAL SYMBOL BREVE;So;0;L;;;;;N;;;;; -1D15D;MUSICAL SYMBOL WHOLE NOTE;So;0;L;;;;;N;;;;; -1D15E;MUSICAL SYMBOL HALF NOTE;So;0;L;1D157 1D165;;;;N;;;;; -1D15F;MUSICAL SYMBOL QUARTER NOTE;So;0;L;1D158 1D165;;;;N;;;;; -1D160;MUSICAL SYMBOL EIGHTH NOTE;So;0;L;1D15F 1D16E;;;;N;;;;; -1D161;MUSICAL SYMBOL SIXTEENTH NOTE;So;0;L;1D15F 1D16F;;;;N;;;;; -1D162;MUSICAL SYMBOL THIRTY-SECOND NOTE;So;0;L;1D15F 1D170;;;;N;;;;; -1D163;MUSICAL SYMBOL SIXTY-FOURTH NOTE;So;0;L;1D15F 1D171;;;;N;;;;; -1D164;MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE;So;0;L;1D15F 1D172;;;;N;;;;; -1D165;MUSICAL SYMBOL COMBINING STEM;Mc;216;L;;;;;N;;;;; -1D166;MUSICAL SYMBOL COMBINING SPRECHGESANG STEM;Mc;216;L;;;;;N;;;;; -1D167;MUSICAL SYMBOL COMBINING TREMOLO-1;Mn;1;NSM;;;;;N;;;;; -1D168;MUSICAL SYMBOL COMBINING TREMOLO-2;Mn;1;NSM;;;;;N;;;;; -1D169;MUSICAL SYMBOL COMBINING TREMOLO-3;Mn;1;NSM;;;;;N;;;;; -1D16A;MUSICAL SYMBOL FINGERED TREMOLO-1;So;0;L;;;;;N;;;;; -1D16B;MUSICAL SYMBOL FINGERED TREMOLO-2;So;0;L;;;;;N;;;;; -1D16C;MUSICAL SYMBOL FINGERED TREMOLO-3;So;0;L;;;;;N;;;;; -1D16D;MUSICAL SYMBOL COMBINING AUGMENTATION DOT;Mc;226;L;;;;;N;;;;; -1D16E;MUSICAL SYMBOL COMBINING FLAG-1;Mc;216;L;;;;;N;;;;; -1D16F;MUSICAL SYMBOL COMBINING FLAG-2;Mc;216;L;;;;;N;;;;; -1D170;MUSICAL SYMBOL COMBINING FLAG-3;Mc;216;L;;;;;N;;;;; -1D171;MUSICAL SYMBOL COMBINING FLAG-4;Mc;216;L;;;;;N;;;;; -1D172;MUSICAL SYMBOL COMBINING FLAG-5;Mc;216;L;;;;;N;;;;; -1D173;MUSICAL SYMBOL BEGIN BEAM;Cf;0;BN;;;;;N;;;;; -1D174;MUSICAL SYMBOL END BEAM;Cf;0;BN;;;;;N;;;;; -1D175;MUSICAL SYMBOL BEGIN TIE;Cf;0;BN;;;;;N;;;;; -1D176;MUSICAL SYMBOL END TIE;Cf;0;BN;;;;;N;;;;; -1D177;MUSICAL SYMBOL BEGIN SLUR;Cf;0;BN;;;;;N;;;;; -1D178;MUSICAL SYMBOL END SLUR;Cf;0;BN;;;;;N;;;;; -1D179;MUSICAL SYMBOL BEGIN PHRASE;Cf;0;BN;;;;;N;;;;; -1D17A;MUSICAL SYMBOL END PHRASE;Cf;0;BN;;;;;N;;;;; -1D17B;MUSICAL SYMBOL COMBINING ACCENT;Mn;220;NSM;;;;;N;;;;; -1D17C;MUSICAL SYMBOL COMBINING STACCATO;Mn;220;NSM;;;;;N;;;;; -1D17D;MUSICAL SYMBOL COMBINING TENUTO;Mn;220;NSM;;;;;N;;;;; -1D17E;MUSICAL SYMBOL COMBINING STACCATISSIMO;Mn;220;NSM;;;;;N;;;;; -1D17F;MUSICAL SYMBOL COMBINING MARCATO;Mn;220;NSM;;;;;N;;;;; -1D180;MUSICAL SYMBOL COMBINING MARCATO-STACCATO;Mn;220;NSM;;;;;N;;;;; -1D181;MUSICAL SYMBOL COMBINING ACCENT-STACCATO;Mn;220;NSM;;;;;N;;;;; -1D182;MUSICAL SYMBOL COMBINING LOURE;Mn;220;NSM;;;;;N;;;;; -1D183;MUSICAL SYMBOL ARPEGGIATO UP;So;0;L;;;;;N;;;;; -1D184;MUSICAL SYMBOL ARPEGGIATO DOWN;So;0;L;;;;;N;;;;; -1D185;MUSICAL SYMBOL COMBINING DOIT;Mn;230;NSM;;;;;N;;;;; -1D186;MUSICAL SYMBOL COMBINING RIP;Mn;230;NSM;;;;;N;;;;; -1D187;MUSICAL SYMBOL COMBINING FLIP;Mn;230;NSM;;;;;N;;;;; -1D188;MUSICAL SYMBOL COMBINING SMEAR;Mn;230;NSM;;;;;N;;;;; -1D189;MUSICAL SYMBOL COMBINING BEND;Mn;230;NSM;;;;;N;;;;; -1D18A;MUSICAL SYMBOL COMBINING DOUBLE TONGUE;Mn;220;NSM;;;;;N;;;;; -1D18B;MUSICAL SYMBOL COMBINING TRIPLE TONGUE;Mn;220;NSM;;;;;N;;;;; -1D18C;MUSICAL SYMBOL RINFORZANDO;So;0;L;;;;;N;;;;; -1D18D;MUSICAL SYMBOL SUBITO;So;0;L;;;;;N;;;;; -1D18E;MUSICAL SYMBOL Z;So;0;L;;;;;N;;;;; -1D18F;MUSICAL SYMBOL PIANO;So;0;L;;;;;N;;;;; -1D190;MUSICAL SYMBOL MEZZO;So;0;L;;;;;N;;;;; -1D191;MUSICAL SYMBOL FORTE;So;0;L;;;;;N;;;;; -1D192;MUSICAL SYMBOL CRESCENDO;So;0;L;;;;;N;;;;; -1D193;MUSICAL SYMBOL DECRESCENDO;So;0;L;;;;;N;;;;; -1D194;MUSICAL SYMBOL GRACE NOTE SLASH;So;0;L;;;;;N;;;;; -1D195;MUSICAL SYMBOL GRACE NOTE NO SLASH;So;0;L;;;;;N;;;;; -1D196;MUSICAL SYMBOL TR;So;0;L;;;;;N;;;;; -1D197;MUSICAL SYMBOL TURN;So;0;L;;;;;N;;;;; -1D198;MUSICAL SYMBOL INVERTED TURN;So;0;L;;;;;N;;;;; -1D199;MUSICAL SYMBOL TURN SLASH;So;0;L;;;;;N;;;;; -1D19A;MUSICAL SYMBOL TURN UP;So;0;L;;;;;N;;;;; -1D19B;MUSICAL SYMBOL ORNAMENT STROKE-1;So;0;L;;;;;N;;;;; -1D19C;MUSICAL SYMBOL ORNAMENT STROKE-2;So;0;L;;;;;N;;;;; -1D19D;MUSICAL SYMBOL ORNAMENT STROKE-3;So;0;L;;;;;N;;;;; -1D19E;MUSICAL SYMBOL ORNAMENT STROKE-4;So;0;L;;;;;N;;;;; -1D19F;MUSICAL SYMBOL ORNAMENT STROKE-5;So;0;L;;;;;N;;;;; -1D1A0;MUSICAL SYMBOL ORNAMENT STROKE-6;So;0;L;;;;;N;;;;; -1D1A1;MUSICAL SYMBOL ORNAMENT STROKE-7;So;0;L;;;;;N;;;;; -1D1A2;MUSICAL SYMBOL ORNAMENT STROKE-8;So;0;L;;;;;N;;;;; -1D1A3;MUSICAL SYMBOL ORNAMENT STROKE-9;So;0;L;;;;;N;;;;; -1D1A4;MUSICAL SYMBOL ORNAMENT STROKE-10;So;0;L;;;;;N;;;;; -1D1A5;MUSICAL SYMBOL ORNAMENT STROKE-11;So;0;L;;;;;N;;;;; -1D1A6;MUSICAL SYMBOL HAUPTSTIMME;So;0;L;;;;;N;;;;; -1D1A7;MUSICAL SYMBOL NEBENSTIMME;So;0;L;;;;;N;;;;; -1D1A8;MUSICAL SYMBOL END OF STIMME;So;0;L;;;;;N;;;;; -1D1A9;MUSICAL SYMBOL DEGREE SLASH;So;0;L;;;;;N;;;;; -1D1AA;MUSICAL SYMBOL COMBINING DOWN BOW;Mn;230;NSM;;;;;N;;;;; -1D1AB;MUSICAL SYMBOL COMBINING UP BOW;Mn;230;NSM;;;;;N;;;;; -1D1AC;MUSICAL SYMBOL COMBINING HARMONIC;Mn;230;NSM;;;;;N;;;;; -1D1AD;MUSICAL SYMBOL COMBINING SNAP PIZZICATO;Mn;230;NSM;;;;;N;;;;; -1D1AE;MUSICAL SYMBOL PEDAL MARK;So;0;L;;;;;N;;;;; -1D1AF;MUSICAL SYMBOL PEDAL UP MARK;So;0;L;;;;;N;;;;; -1D1B0;MUSICAL SYMBOL HALF PEDAL MARK;So;0;L;;;;;N;;;;; -1D1B1;MUSICAL SYMBOL GLISSANDO UP;So;0;L;;;;;N;;;;; -1D1B2;MUSICAL SYMBOL GLISSANDO DOWN;So;0;L;;;;;N;;;;; -1D1B3;MUSICAL SYMBOL WITH FINGERNAILS;So;0;L;;;;;N;;;;; -1D1B4;MUSICAL SYMBOL DAMP;So;0;L;;;;;N;;;;; -1D1B5;MUSICAL SYMBOL DAMP ALL;So;0;L;;;;;N;;;;; -1D1B6;MUSICAL SYMBOL MAXIMA;So;0;L;;;;;N;;;;; -1D1B7;MUSICAL SYMBOL LONGA;So;0;L;;;;;N;;;;; -1D1B8;MUSICAL SYMBOL BREVIS;So;0;L;;;;;N;;;;; -1D1B9;MUSICAL SYMBOL SEMIBREVIS WHITE;So;0;L;;;;;N;;;;; -1D1BA;MUSICAL SYMBOL SEMIBREVIS BLACK;So;0;L;;;;;N;;;;; -1D1BB;MUSICAL SYMBOL MINIMA;So;0;L;1D1B9 1D165;;;;N;;;;; -1D1BC;MUSICAL SYMBOL MINIMA BLACK;So;0;L;1D1BA 1D165;;;;N;;;;; -1D1BD;MUSICAL SYMBOL SEMIMINIMA WHITE;So;0;L;1D1BB 1D16E;;;;N;;;;; -1D1BE;MUSICAL SYMBOL SEMIMINIMA BLACK;So;0;L;1D1BC 1D16E;;;;N;;;;; -1D1BF;MUSICAL SYMBOL FUSA WHITE;So;0;L;1D1BB 1D16F;;;;N;;;;; -1D1C0;MUSICAL SYMBOL FUSA BLACK;So;0;L;1D1BC 1D16F;;;;N;;;;; -1D1C1;MUSICAL SYMBOL LONGA PERFECTA REST;So;0;L;;;;;N;;;;; -1D1C2;MUSICAL SYMBOL LONGA IMPERFECTA REST;So;0;L;;;;;N;;;;; -1D1C3;MUSICAL SYMBOL BREVIS REST;So;0;L;;;;;N;;;;; -1D1C4;MUSICAL SYMBOL SEMIBREVIS REST;So;0;L;;;;;N;;;;; -1D1C5;MUSICAL SYMBOL MINIMA REST;So;0;L;;;;;N;;;;; -1D1C6;MUSICAL SYMBOL SEMIMINIMA REST;So;0;L;;;;;N;;;;; -1D1C7;MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE PERFECTA;So;0;L;;;;;N;;;;; -1D1C8;MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE IMPERFECTA;So;0;L;;;;;N;;;;; -1D1C9;MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE PERFECTA DIMINUTION-1;So;0;L;;;;;N;;;;; -1D1CA;MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE PERFECTA;So;0;L;;;;;N;;;;; -1D1CB;MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA;So;0;L;;;;;N;;;;; -1D1CC;MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-1;So;0;L;;;;;N;;;;; -1D1CD;MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-2;So;0;L;;;;;N;;;;; -1D1CE;MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-3;So;0;L;;;;;N;;;;; -1D1CF;MUSICAL SYMBOL CROIX;So;0;L;;;;;N;;;;; -1D1D0;MUSICAL SYMBOL GREGORIAN C CLEF;So;0;L;;;;;N;;;;; -1D1D1;MUSICAL SYMBOL GREGORIAN F CLEF;So;0;L;;;;;N;;;;; -1D1D2;MUSICAL SYMBOL SQUARE B;So;0;L;;;;;N;;;;; -1D1D3;MUSICAL SYMBOL VIRGA;So;0;L;;;;;N;;;;; -1D1D4;MUSICAL SYMBOL PODATUS;So;0;L;;;;;N;;;;; -1D1D5;MUSICAL SYMBOL CLIVIS;So;0;L;;;;;N;;;;; -1D1D6;MUSICAL SYMBOL SCANDICUS;So;0;L;;;;;N;;;;; -1D1D7;MUSICAL SYMBOL CLIMACUS;So;0;L;;;;;N;;;;; -1D1D8;MUSICAL SYMBOL TORCULUS;So;0;L;;;;;N;;;;; -1D1D9;MUSICAL SYMBOL PORRECTUS;So;0;L;;;;;N;;;;; -1D1DA;MUSICAL SYMBOL PORRECTUS FLEXUS;So;0;L;;;;;N;;;;; -1D1DB;MUSICAL SYMBOL SCANDICUS FLEXUS;So;0;L;;;;;N;;;;; -1D1DC;MUSICAL SYMBOL TORCULUS RESUPINUS;So;0;L;;;;;N;;;;; -1D1DD;MUSICAL SYMBOL PES SUBPUNCTIS;So;0;L;;;;;N;;;;; -1D200;GREEK VOCAL NOTATION SYMBOL-1;So;0;ON;;;;;N;;;;; -1D201;GREEK VOCAL NOTATION SYMBOL-2;So;0;ON;;;;;N;;;;; -1D202;GREEK VOCAL NOTATION SYMBOL-3;So;0;ON;;;;;N;;;;; -1D203;GREEK VOCAL NOTATION SYMBOL-4;So;0;ON;;;;;N;;;;; -1D204;GREEK VOCAL NOTATION SYMBOL-5;So;0;ON;;;;;N;;;;; -1D205;GREEK VOCAL NOTATION SYMBOL-6;So;0;ON;;;;;N;;;;; -1D206;GREEK VOCAL NOTATION SYMBOL-7;So;0;ON;;;;;N;;;;; -1D207;GREEK VOCAL NOTATION SYMBOL-8;So;0;ON;;;;;N;;;;; -1D208;GREEK VOCAL NOTATION SYMBOL-9;So;0;ON;;;;;N;;;;; -1D209;GREEK VOCAL NOTATION SYMBOL-10;So;0;ON;;;;;N;;;;; -1D20A;GREEK VOCAL NOTATION SYMBOL-11;So;0;ON;;;;;N;;;;; -1D20B;GREEK VOCAL NOTATION SYMBOL-12;So;0;ON;;;;;N;;;;; -1D20C;GREEK VOCAL NOTATION SYMBOL-13;So;0;ON;;;;;N;;;;; -1D20D;GREEK VOCAL NOTATION SYMBOL-14;So;0;ON;;;;;N;;;;; -1D20E;GREEK VOCAL NOTATION SYMBOL-15;So;0;ON;;;;;N;;;;; -1D20F;GREEK VOCAL NOTATION SYMBOL-16;So;0;ON;;;;;N;;;;; -1D210;GREEK VOCAL NOTATION SYMBOL-17;So;0;ON;;;;;N;;;;; -1D211;GREEK VOCAL NOTATION SYMBOL-18;So;0;ON;;;;;N;;;;; -1D212;GREEK VOCAL NOTATION SYMBOL-19;So;0;ON;;;;;N;;;;; -1D213;GREEK VOCAL NOTATION SYMBOL-20;So;0;ON;;;;;N;;;;; -1D214;GREEK VOCAL NOTATION SYMBOL-21;So;0;ON;;;;;N;;;;; -1D215;GREEK VOCAL NOTATION SYMBOL-22;So;0;ON;;;;;N;;;;; -1D216;GREEK VOCAL NOTATION SYMBOL-23;So;0;ON;;;;;N;;;;; -1D217;GREEK VOCAL NOTATION SYMBOL-24;So;0;ON;;;;;N;;;;; -1D218;GREEK VOCAL NOTATION SYMBOL-50;So;0;ON;;;;;N;;;;; -1D219;GREEK VOCAL NOTATION SYMBOL-51;So;0;ON;;;;;N;;;;; -1D21A;GREEK VOCAL NOTATION SYMBOL-52;So;0;ON;;;;;N;;;;; -1D21B;GREEK VOCAL NOTATION SYMBOL-53;So;0;ON;;;;;N;;;;; -1D21C;GREEK VOCAL NOTATION SYMBOL-54;So;0;ON;;;;;N;;;;; -1D21D;GREEK INSTRUMENTAL NOTATION SYMBOL-1;So;0;ON;;;;;N;;;;; -1D21E;GREEK INSTRUMENTAL NOTATION SYMBOL-2;So;0;ON;;;;;N;;;;; -1D21F;GREEK INSTRUMENTAL NOTATION SYMBOL-4;So;0;ON;;;;;N;;;;; -1D220;GREEK INSTRUMENTAL NOTATION SYMBOL-5;So;0;ON;;;;;N;;;;; -1D221;GREEK INSTRUMENTAL NOTATION SYMBOL-7;So;0;ON;;;;;N;;;;; -1D222;GREEK INSTRUMENTAL NOTATION SYMBOL-8;So;0;ON;;;;;N;;;;; -1D223;GREEK INSTRUMENTAL NOTATION SYMBOL-11;So;0;ON;;;;;N;;;;; -1D224;GREEK INSTRUMENTAL NOTATION SYMBOL-12;So;0;ON;;;;;N;;;;; -1D225;GREEK INSTRUMENTAL NOTATION SYMBOL-13;So;0;ON;;;;;N;;;;; -1D226;GREEK INSTRUMENTAL NOTATION SYMBOL-14;So;0;ON;;;;;N;;;;; -1D227;GREEK INSTRUMENTAL NOTATION SYMBOL-17;So;0;ON;;;;;N;;;;; -1D228;GREEK INSTRUMENTAL NOTATION SYMBOL-18;So;0;ON;;;;;N;;;;; -1D229;GREEK INSTRUMENTAL NOTATION SYMBOL-19;So;0;ON;;;;;N;;;;; -1D22A;GREEK INSTRUMENTAL NOTATION SYMBOL-23;So;0;ON;;;;;N;;;;; -1D22B;GREEK INSTRUMENTAL NOTATION SYMBOL-24;So;0;ON;;;;;N;;;;; -1D22C;GREEK INSTRUMENTAL NOTATION SYMBOL-25;So;0;ON;;;;;N;;;;; -1D22D;GREEK INSTRUMENTAL NOTATION SYMBOL-26;So;0;ON;;;;;N;;;;; -1D22E;GREEK INSTRUMENTAL NOTATION SYMBOL-27;So;0;ON;;;;;N;;;;; -1D22F;GREEK INSTRUMENTAL NOTATION SYMBOL-29;So;0;ON;;;;;N;;;;; -1D230;GREEK INSTRUMENTAL NOTATION SYMBOL-30;So;0;ON;;;;;N;;;;; -1D231;GREEK INSTRUMENTAL NOTATION SYMBOL-32;So;0;ON;;;;;N;;;;; -1D232;GREEK INSTRUMENTAL NOTATION SYMBOL-36;So;0;ON;;;;;N;;;;; -1D233;GREEK INSTRUMENTAL NOTATION SYMBOL-37;So;0;ON;;;;;N;;;;; -1D234;GREEK INSTRUMENTAL NOTATION SYMBOL-38;So;0;ON;;;;;N;;;;; -1D235;GREEK INSTRUMENTAL NOTATION SYMBOL-39;So;0;ON;;;;;N;;;;; -1D236;GREEK INSTRUMENTAL NOTATION SYMBOL-40;So;0;ON;;;;;N;;;;; -1D237;GREEK INSTRUMENTAL NOTATION SYMBOL-42;So;0;ON;;;;;N;;;;; -1D238;GREEK INSTRUMENTAL NOTATION SYMBOL-43;So;0;ON;;;;;N;;;;; -1D239;GREEK INSTRUMENTAL NOTATION SYMBOL-45;So;0;ON;;;;;N;;;;; -1D23A;GREEK INSTRUMENTAL NOTATION SYMBOL-47;So;0;ON;;;;;N;;;;; -1D23B;GREEK INSTRUMENTAL NOTATION SYMBOL-48;So;0;ON;;;;;N;;;;; -1D23C;GREEK INSTRUMENTAL NOTATION SYMBOL-49;So;0;ON;;;;;N;;;;; -1D23D;GREEK INSTRUMENTAL NOTATION SYMBOL-50;So;0;ON;;;;;N;;;;; -1D23E;GREEK INSTRUMENTAL NOTATION SYMBOL-51;So;0;ON;;;;;N;;;;; -1D23F;GREEK INSTRUMENTAL NOTATION SYMBOL-52;So;0;ON;;;;;N;;;;; -1D240;GREEK INSTRUMENTAL NOTATION SYMBOL-53;So;0;ON;;;;;N;;;;; -1D241;GREEK INSTRUMENTAL NOTATION SYMBOL-54;So;0;ON;;;;;N;;;;; -1D242;COMBINING GREEK MUSICAL TRISEME;Mn;230;NSM;;;;;N;;;;; -1D243;COMBINING GREEK MUSICAL TETRASEME;Mn;230;NSM;;;;;N;;;;; -1D244;COMBINING GREEK MUSICAL PENTASEME;Mn;230;NSM;;;;;N;;;;; -1D245;GREEK MUSICAL LEIMMA;So;0;ON;;;;;N;;;;; -1D300;MONOGRAM FOR EARTH;So;0;ON;;;;;N;;;;; -1D301;DIGRAM FOR HEAVENLY EARTH;So;0;ON;;;;;N;;;;; -1D302;DIGRAM FOR HUMAN EARTH;So;0;ON;;;;;N;;;;; -1D303;DIGRAM FOR EARTHLY HEAVEN;So;0;ON;;;;;N;;;;; -1D304;DIGRAM FOR EARTHLY HUMAN;So;0;ON;;;;;N;;;;; -1D305;DIGRAM FOR EARTH;So;0;ON;;;;;N;;;;; -1D306;TETRAGRAM FOR CENTRE;So;0;ON;;;;;N;;;;; -1D307;TETRAGRAM FOR FULL CIRCLE;So;0;ON;;;;;N;;;;; -1D308;TETRAGRAM FOR MIRED;So;0;ON;;;;;N;;;;; -1D309;TETRAGRAM FOR BARRIER;So;0;ON;;;;;N;;;;; -1D30A;TETRAGRAM FOR KEEPING SMALL;So;0;ON;;;;;N;;;;; -1D30B;TETRAGRAM FOR CONTRARIETY;So;0;ON;;;;;N;;;;; -1D30C;TETRAGRAM FOR ASCENT;So;0;ON;;;;;N;;;;; -1D30D;TETRAGRAM FOR OPPOSITION;So;0;ON;;;;;N;;;;; -1D30E;TETRAGRAM FOR BRANCHING OUT;So;0;ON;;;;;N;;;;; -1D30F;TETRAGRAM FOR DEFECTIVENESS OR DISTORTION;So;0;ON;;;;;N;;;;; -1D310;TETRAGRAM FOR DIVERGENCE;So;0;ON;;;;;N;;;;; -1D311;TETRAGRAM FOR YOUTHFULNESS;So;0;ON;;;;;N;;;;; -1D312;TETRAGRAM FOR INCREASE;So;0;ON;;;;;N;;;;; -1D313;TETRAGRAM FOR PENETRATION;So;0;ON;;;;;N;;;;; -1D314;TETRAGRAM FOR REACH;So;0;ON;;;;;N;;;;; -1D315;TETRAGRAM FOR CONTACT;So;0;ON;;;;;N;;;;; -1D316;TETRAGRAM FOR HOLDING BACK;So;0;ON;;;;;N;;;;; -1D317;TETRAGRAM FOR WAITING;So;0;ON;;;;;N;;;;; -1D318;TETRAGRAM FOR FOLLOWING;So;0;ON;;;;;N;;;;; -1D319;TETRAGRAM FOR ADVANCE;So;0;ON;;;;;N;;;;; -1D31A;TETRAGRAM FOR RELEASE;So;0;ON;;;;;N;;;;; -1D31B;TETRAGRAM FOR RESISTANCE;So;0;ON;;;;;N;;;;; -1D31C;TETRAGRAM FOR EASE;So;0;ON;;;;;N;;;;; -1D31D;TETRAGRAM FOR JOY;So;0;ON;;;;;N;;;;; -1D31E;TETRAGRAM FOR CONTENTION;So;0;ON;;;;;N;;;;; -1D31F;TETRAGRAM FOR ENDEAVOUR;So;0;ON;;;;;N;;;;; -1D320;TETRAGRAM FOR DUTIES;So;0;ON;;;;;N;;;;; -1D321;TETRAGRAM FOR CHANGE;So;0;ON;;;;;N;;;;; -1D322;TETRAGRAM FOR DECISIVENESS;So;0;ON;;;;;N;;;;; -1D323;TETRAGRAM FOR BOLD RESOLUTION;So;0;ON;;;;;N;;;;; -1D324;TETRAGRAM FOR PACKING;So;0;ON;;;;;N;;;;; -1D325;TETRAGRAM FOR LEGION;So;0;ON;;;;;N;;;;; -1D326;TETRAGRAM FOR CLOSENESS;So;0;ON;;;;;N;;;;; -1D327;TETRAGRAM FOR KINSHIP;So;0;ON;;;;;N;;;;; -1D328;TETRAGRAM FOR GATHERING;So;0;ON;;;;;N;;;;; -1D329;TETRAGRAM FOR STRENGTH;So;0;ON;;;;;N;;;;; -1D32A;TETRAGRAM FOR PURITY;So;0;ON;;;;;N;;;;; -1D32B;TETRAGRAM FOR FULLNESS;So;0;ON;;;;;N;;;;; -1D32C;TETRAGRAM FOR RESIDENCE;So;0;ON;;;;;N;;;;; -1D32D;TETRAGRAM FOR LAW OR MODEL;So;0;ON;;;;;N;;;;; -1D32E;TETRAGRAM FOR RESPONSE;So;0;ON;;;;;N;;;;; -1D32F;TETRAGRAM FOR GOING TO MEET;So;0;ON;;;;;N;;;;; -1D330;TETRAGRAM FOR ENCOUNTERS;So;0;ON;;;;;N;;;;; -1D331;TETRAGRAM FOR STOVE;So;0;ON;;;;;N;;;;; -1D332;TETRAGRAM FOR GREATNESS;So;0;ON;;;;;N;;;;; -1D333;TETRAGRAM FOR ENLARGEMENT;So;0;ON;;;;;N;;;;; -1D334;TETRAGRAM FOR PATTERN;So;0;ON;;;;;N;;;;; -1D335;TETRAGRAM FOR RITUAL;So;0;ON;;;;;N;;;;; -1D336;TETRAGRAM FOR FLIGHT;So;0;ON;;;;;N;;;;; -1D337;TETRAGRAM FOR VASTNESS OR WASTING;So;0;ON;;;;;N;;;;; -1D338;TETRAGRAM FOR CONSTANCY;So;0;ON;;;;;N;;;;; -1D339;TETRAGRAM FOR MEASURE;So;0;ON;;;;;N;;;;; -1D33A;TETRAGRAM FOR ETERNITY;So;0;ON;;;;;N;;;;; -1D33B;TETRAGRAM FOR UNITY;So;0;ON;;;;;N;;;;; -1D33C;TETRAGRAM FOR DIMINISHMENT;So;0;ON;;;;;N;;;;; -1D33D;TETRAGRAM FOR CLOSED MOUTH;So;0;ON;;;;;N;;;;; -1D33E;TETRAGRAM FOR GUARDEDNESS;So;0;ON;;;;;N;;;;; -1D33F;TETRAGRAM FOR GATHERING IN;So;0;ON;;;;;N;;;;; -1D340;TETRAGRAM FOR MASSING;So;0;ON;;;;;N;;;;; -1D341;TETRAGRAM FOR ACCUMULATION;So;0;ON;;;;;N;;;;; -1D342;TETRAGRAM FOR EMBELLISHMENT;So;0;ON;;;;;N;;;;; -1D343;TETRAGRAM FOR DOUBT;So;0;ON;;;;;N;;;;; -1D344;TETRAGRAM FOR WATCH;So;0;ON;;;;;N;;;;; -1D345;TETRAGRAM FOR SINKING;So;0;ON;;;;;N;;;;; -1D346;TETRAGRAM FOR INNER;So;0;ON;;;;;N;;;;; -1D347;TETRAGRAM FOR DEPARTURE;So;0;ON;;;;;N;;;;; -1D348;TETRAGRAM FOR DARKENING;So;0;ON;;;;;N;;;;; -1D349;TETRAGRAM FOR DIMMING;So;0;ON;;;;;N;;;;; -1D34A;TETRAGRAM FOR EXHAUSTION;So;0;ON;;;;;N;;;;; -1D34B;TETRAGRAM FOR SEVERANCE;So;0;ON;;;;;N;;;;; -1D34C;TETRAGRAM FOR STOPPAGE;So;0;ON;;;;;N;;;;; -1D34D;TETRAGRAM FOR HARDNESS;So;0;ON;;;;;N;;;;; -1D34E;TETRAGRAM FOR COMPLETION;So;0;ON;;;;;N;;;;; -1D34F;TETRAGRAM FOR CLOSURE;So;0;ON;;;;;N;;;;; -1D350;TETRAGRAM FOR FAILURE;So;0;ON;;;;;N;;;;; -1D351;TETRAGRAM FOR AGGRAVATION;So;0;ON;;;;;N;;;;; -1D352;TETRAGRAM FOR COMPLIANCE;So;0;ON;;;;;N;;;;; -1D353;TETRAGRAM FOR ON THE VERGE;So;0;ON;;;;;N;;;;; -1D354;TETRAGRAM FOR DIFFICULTIES;So;0;ON;;;;;N;;;;; -1D355;TETRAGRAM FOR LABOURING;So;0;ON;;;;;N;;;;; -1D356;TETRAGRAM FOR FOSTERING;So;0;ON;;;;;N;;;;; -1D360;COUNTING ROD UNIT DIGIT ONE;No;0;L;;;;1;N;;;;; -1D361;COUNTING ROD UNIT DIGIT TWO;No;0;L;;;;2;N;;;;; -1D362;COUNTING ROD UNIT DIGIT THREE;No;0;L;;;;3;N;;;;; -1D363;COUNTING ROD UNIT DIGIT FOUR;No;0;L;;;;4;N;;;;; -1D364;COUNTING ROD UNIT DIGIT FIVE;No;0;L;;;;5;N;;;;; -1D365;COUNTING ROD UNIT DIGIT SIX;No;0;L;;;;6;N;;;;; -1D366;COUNTING ROD UNIT DIGIT SEVEN;No;0;L;;;;7;N;;;;; -1D367;COUNTING ROD UNIT DIGIT EIGHT;No;0;L;;;;8;N;;;;; -1D368;COUNTING ROD UNIT DIGIT NINE;No;0;L;;;;9;N;;;;; -1D369;COUNTING ROD TENS DIGIT ONE;No;0;L;;;;10;N;;;;; -1D36A;COUNTING ROD TENS DIGIT TWO;No;0;L;;;;20;N;;;;; -1D36B;COUNTING ROD TENS DIGIT THREE;No;0;L;;;;30;N;;;;; -1D36C;COUNTING ROD TENS DIGIT FOUR;No;0;L;;;;40;N;;;;; -1D36D;COUNTING ROD TENS DIGIT FIVE;No;0;L;;;;50;N;;;;; -1D36E;COUNTING ROD TENS DIGIT SIX;No;0;L;;;;60;N;;;;; -1D36F;COUNTING ROD TENS DIGIT SEVEN;No;0;L;;;;70;N;;;;; -1D370;COUNTING ROD TENS DIGIT EIGHT;No;0;L;;;;80;N;;;;; -1D371;COUNTING ROD TENS DIGIT NINE;No;0;L;;;;90;N;;;;; -1D400;MATHEMATICAL BOLD CAPITAL A;Lu;0;L; 0041;;;;N;;;;; -1D401;MATHEMATICAL BOLD CAPITAL B;Lu;0;L; 0042;;;;N;;;;; -1D402;MATHEMATICAL BOLD CAPITAL C;Lu;0;L; 0043;;;;N;;;;; -1D403;MATHEMATICAL BOLD CAPITAL D;Lu;0;L; 0044;;;;N;;;;; -1D404;MATHEMATICAL BOLD CAPITAL E;Lu;0;L; 0045;;;;N;;;;; -1D405;MATHEMATICAL BOLD CAPITAL F;Lu;0;L; 0046;;;;N;;;;; -1D406;MATHEMATICAL BOLD CAPITAL G;Lu;0;L; 0047;;;;N;;;;; -1D407;MATHEMATICAL BOLD CAPITAL H;Lu;0;L; 0048;;;;N;;;;; -1D408;MATHEMATICAL BOLD CAPITAL I;Lu;0;L; 0049;;;;N;;;;; -1D409;MATHEMATICAL BOLD CAPITAL J;Lu;0;L; 004A;;;;N;;;;; -1D40A;MATHEMATICAL BOLD CAPITAL K;Lu;0;L; 004B;;;;N;;;;; -1D40B;MATHEMATICAL BOLD CAPITAL L;Lu;0;L; 004C;;;;N;;;;; -1D40C;MATHEMATICAL BOLD CAPITAL M;Lu;0;L; 004D;;;;N;;;;; -1D40D;MATHEMATICAL BOLD CAPITAL N;Lu;0;L; 004E;;;;N;;;;; -1D40E;MATHEMATICAL BOLD CAPITAL O;Lu;0;L; 004F;;;;N;;;;; -1D40F;MATHEMATICAL BOLD CAPITAL P;Lu;0;L; 0050;;;;N;;;;; -1D410;MATHEMATICAL BOLD CAPITAL Q;Lu;0;L; 0051;;;;N;;;;; -1D411;MATHEMATICAL BOLD CAPITAL R;Lu;0;L; 0052;;;;N;;;;; -1D412;MATHEMATICAL BOLD CAPITAL S;Lu;0;L; 0053;;;;N;;;;; -1D413;MATHEMATICAL BOLD CAPITAL T;Lu;0;L; 0054;;;;N;;;;; -1D414;MATHEMATICAL BOLD CAPITAL U;Lu;0;L; 0055;;;;N;;;;; -1D415;MATHEMATICAL BOLD CAPITAL V;Lu;0;L; 0056;;;;N;;;;; -1D416;MATHEMATICAL BOLD CAPITAL W;Lu;0;L; 0057;;;;N;;;;; -1D417;MATHEMATICAL BOLD CAPITAL X;Lu;0;L; 0058;;;;N;;;;; -1D418;MATHEMATICAL BOLD CAPITAL Y;Lu;0;L; 0059;;;;N;;;;; -1D419;MATHEMATICAL BOLD CAPITAL Z;Lu;0;L; 005A;;;;N;;;;; -1D41A;MATHEMATICAL BOLD SMALL A;Ll;0;L; 0061;;;;N;;;;; -1D41B;MATHEMATICAL BOLD SMALL B;Ll;0;L; 0062;;;;N;;;;; -1D41C;MATHEMATICAL BOLD SMALL C;Ll;0;L; 0063;;;;N;;;;; -1D41D;MATHEMATICAL BOLD SMALL D;Ll;0;L; 0064;;;;N;;;;; -1D41E;MATHEMATICAL BOLD SMALL E;Ll;0;L; 0065;;;;N;;;;; -1D41F;MATHEMATICAL BOLD SMALL F;Ll;0;L; 0066;;;;N;;;;; -1D420;MATHEMATICAL BOLD SMALL G;Ll;0;L; 0067;;;;N;;;;; -1D421;MATHEMATICAL BOLD SMALL H;Ll;0;L; 0068;;;;N;;;;; -1D422;MATHEMATICAL BOLD SMALL I;Ll;0;L; 0069;;;;N;;;;; -1D423;MATHEMATICAL BOLD SMALL J;Ll;0;L; 006A;;;;N;;;;; -1D424;MATHEMATICAL BOLD SMALL K;Ll;0;L; 006B;;;;N;;;;; -1D425;MATHEMATICAL BOLD SMALL L;Ll;0;L; 006C;;;;N;;;;; -1D426;MATHEMATICAL BOLD SMALL M;Ll;0;L; 006D;;;;N;;;;; -1D427;MATHEMATICAL BOLD SMALL N;Ll;0;L; 006E;;;;N;;;;; -1D428;MATHEMATICAL BOLD SMALL O;Ll;0;L; 006F;;;;N;;;;; -1D429;MATHEMATICAL BOLD SMALL P;Ll;0;L; 0070;;;;N;;;;; -1D42A;MATHEMATICAL BOLD SMALL Q;Ll;0;L; 0071;;;;N;;;;; -1D42B;MATHEMATICAL BOLD SMALL R;Ll;0;L; 0072;;;;N;;;;; -1D42C;MATHEMATICAL BOLD SMALL S;Ll;0;L; 0073;;;;N;;;;; -1D42D;MATHEMATICAL BOLD SMALL T;Ll;0;L; 0074;;;;N;;;;; -1D42E;MATHEMATICAL BOLD SMALL U;Ll;0;L; 0075;;;;N;;;;; -1D42F;MATHEMATICAL BOLD SMALL V;Ll;0;L; 0076;;;;N;;;;; -1D430;MATHEMATICAL BOLD SMALL W;Ll;0;L; 0077;;;;N;;;;; -1D431;MATHEMATICAL BOLD SMALL X;Ll;0;L; 0078;;;;N;;;;; -1D432;MATHEMATICAL BOLD SMALL Y;Ll;0;L; 0079;;;;N;;;;; -1D433;MATHEMATICAL BOLD SMALL Z;Ll;0;L; 007A;;;;N;;;;; -1D434;MATHEMATICAL ITALIC CAPITAL A;Lu;0;L; 0041;;;;N;;;;; -1D435;MATHEMATICAL ITALIC CAPITAL B;Lu;0;L; 0042;;;;N;;;;; -1D436;MATHEMATICAL ITALIC CAPITAL C;Lu;0;L; 0043;;;;N;;;;; -1D437;MATHEMATICAL ITALIC CAPITAL D;Lu;0;L; 0044;;;;N;;;;; -1D438;MATHEMATICAL ITALIC CAPITAL E;Lu;0;L; 0045;;;;N;;;;; -1D439;MATHEMATICAL ITALIC CAPITAL F;Lu;0;L; 0046;;;;N;;;;; -1D43A;MATHEMATICAL ITALIC CAPITAL G;Lu;0;L; 0047;;;;N;;;;; -1D43B;MATHEMATICAL ITALIC CAPITAL H;Lu;0;L; 0048;;;;N;;;;; -1D43C;MATHEMATICAL ITALIC CAPITAL I;Lu;0;L; 0049;;;;N;;;;; -1D43D;MATHEMATICAL ITALIC CAPITAL J;Lu;0;L; 004A;;;;N;;;;; -1D43E;MATHEMATICAL ITALIC CAPITAL K;Lu;0;L; 004B;;;;N;;;;; -1D43F;MATHEMATICAL ITALIC CAPITAL L;Lu;0;L; 004C;;;;N;;;;; -1D440;MATHEMATICAL ITALIC CAPITAL M;Lu;0;L; 004D;;;;N;;;;; -1D441;MATHEMATICAL ITALIC CAPITAL N;Lu;0;L; 004E;;;;N;;;;; -1D442;MATHEMATICAL ITALIC CAPITAL O;Lu;0;L; 004F;;;;N;;;;; -1D443;MATHEMATICAL ITALIC CAPITAL P;Lu;0;L; 0050;;;;N;;;;; -1D444;MATHEMATICAL ITALIC CAPITAL Q;Lu;0;L; 0051;;;;N;;;;; -1D445;MATHEMATICAL ITALIC CAPITAL R;Lu;0;L; 0052;;;;N;;;;; -1D446;MATHEMATICAL ITALIC CAPITAL S;Lu;0;L; 0053;;;;N;;;;; -1D447;MATHEMATICAL ITALIC CAPITAL T;Lu;0;L; 0054;;;;N;;;;; -1D448;MATHEMATICAL ITALIC CAPITAL U;Lu;0;L; 0055;;;;N;;;;; -1D449;MATHEMATICAL ITALIC CAPITAL V;Lu;0;L; 0056;;;;N;;;;; -1D44A;MATHEMATICAL ITALIC CAPITAL W;Lu;0;L; 0057;;;;N;;;;; -1D44B;MATHEMATICAL ITALIC CAPITAL X;Lu;0;L; 0058;;;;N;;;;; -1D44C;MATHEMATICAL ITALIC CAPITAL Y;Lu;0;L; 0059;;;;N;;;;; -1D44D;MATHEMATICAL ITALIC CAPITAL Z;Lu;0;L; 005A;;;;N;;;;; -1D44E;MATHEMATICAL ITALIC SMALL A;Ll;0;L; 0061;;;;N;;;;; -1D44F;MATHEMATICAL ITALIC SMALL B;Ll;0;L; 0062;;;;N;;;;; -1D450;MATHEMATICAL ITALIC SMALL C;Ll;0;L; 0063;;;;N;;;;; -1D451;MATHEMATICAL ITALIC SMALL D;Ll;0;L; 0064;;;;N;;;;; -1D452;MATHEMATICAL ITALIC SMALL E;Ll;0;L; 0065;;;;N;;;;; -1D453;MATHEMATICAL ITALIC SMALL F;Ll;0;L; 0066;;;;N;;;;; -1D454;MATHEMATICAL ITALIC SMALL G;Ll;0;L; 0067;;;;N;;;;; -1D456;MATHEMATICAL ITALIC SMALL I;Ll;0;L; 0069;;;;N;;;;; -1D457;MATHEMATICAL ITALIC SMALL J;Ll;0;L; 006A;;;;N;;;;; -1D458;MATHEMATICAL ITALIC SMALL K;Ll;0;L; 006B;;;;N;;;;; -1D459;MATHEMATICAL ITALIC SMALL L;Ll;0;L; 006C;;;;N;;;;; -1D45A;MATHEMATICAL ITALIC SMALL M;Ll;0;L; 006D;;;;N;;;;; -1D45B;MATHEMATICAL ITALIC SMALL N;Ll;0;L; 006E;;;;N;;;;; -1D45C;MATHEMATICAL ITALIC SMALL O;Ll;0;L; 006F;;;;N;;;;; -1D45D;MATHEMATICAL ITALIC SMALL P;Ll;0;L; 0070;;;;N;;;;; -1D45E;MATHEMATICAL ITALIC SMALL Q;Ll;0;L; 0071;;;;N;;;;; -1D45F;MATHEMATICAL ITALIC SMALL R;Ll;0;L; 0072;;;;N;;;;; -1D460;MATHEMATICAL ITALIC SMALL S;Ll;0;L; 0073;;;;N;;;;; -1D461;MATHEMATICAL ITALIC SMALL T;Ll;0;L; 0074;;;;N;;;;; -1D462;MATHEMATICAL ITALIC SMALL U;Ll;0;L; 0075;;;;N;;;;; -1D463;MATHEMATICAL ITALIC SMALL V;Ll;0;L; 0076;;;;N;;;;; -1D464;MATHEMATICAL ITALIC SMALL W;Ll;0;L; 0077;;;;N;;;;; -1D465;MATHEMATICAL ITALIC SMALL X;Ll;0;L; 0078;;;;N;;;;; -1D466;MATHEMATICAL ITALIC SMALL Y;Ll;0;L; 0079;;;;N;;;;; -1D467;MATHEMATICAL ITALIC SMALL Z;Ll;0;L; 007A;;;;N;;;;; -1D468;MATHEMATICAL BOLD ITALIC CAPITAL A;Lu;0;L; 0041;;;;N;;;;; -1D469;MATHEMATICAL BOLD ITALIC CAPITAL B;Lu;0;L; 0042;;;;N;;;;; -1D46A;MATHEMATICAL BOLD ITALIC CAPITAL C;Lu;0;L; 0043;;;;N;;;;; -1D46B;MATHEMATICAL BOLD ITALIC CAPITAL D;Lu;0;L; 0044;;;;N;;;;; -1D46C;MATHEMATICAL BOLD ITALIC CAPITAL E;Lu;0;L; 0045;;;;N;;;;; -1D46D;MATHEMATICAL BOLD ITALIC CAPITAL F;Lu;0;L; 0046;;;;N;;;;; -1D46E;MATHEMATICAL BOLD ITALIC CAPITAL G;Lu;0;L; 0047;;;;N;;;;; -1D46F;MATHEMATICAL BOLD ITALIC CAPITAL H;Lu;0;L; 0048;;;;N;;;;; -1D470;MATHEMATICAL BOLD ITALIC CAPITAL I;Lu;0;L; 0049;;;;N;;;;; -1D471;MATHEMATICAL BOLD ITALIC CAPITAL J;Lu;0;L; 004A;;;;N;;;;; -1D472;MATHEMATICAL BOLD ITALIC CAPITAL K;Lu;0;L; 004B;;;;N;;;;; -1D473;MATHEMATICAL BOLD ITALIC CAPITAL L;Lu;0;L; 004C;;;;N;;;;; -1D474;MATHEMATICAL BOLD ITALIC CAPITAL M;Lu;0;L; 004D;;;;N;;;;; -1D475;MATHEMATICAL BOLD ITALIC CAPITAL N;Lu;0;L; 004E;;;;N;;;;; -1D476;MATHEMATICAL BOLD ITALIC CAPITAL O;Lu;0;L; 004F;;;;N;;;;; -1D477;MATHEMATICAL BOLD ITALIC CAPITAL P;Lu;0;L; 0050;;;;N;;;;; -1D478;MATHEMATICAL BOLD ITALIC CAPITAL Q;Lu;0;L; 0051;;;;N;;;;; -1D479;MATHEMATICAL BOLD ITALIC CAPITAL R;Lu;0;L; 0052;;;;N;;;;; -1D47A;MATHEMATICAL BOLD ITALIC CAPITAL S;Lu;0;L; 0053;;;;N;;;;; -1D47B;MATHEMATICAL BOLD ITALIC CAPITAL T;Lu;0;L; 0054;;;;N;;;;; -1D47C;MATHEMATICAL BOLD ITALIC CAPITAL U;Lu;0;L; 0055;;;;N;;;;; -1D47D;MATHEMATICAL BOLD ITALIC CAPITAL V;Lu;0;L; 0056;;;;N;;;;; -1D47E;MATHEMATICAL BOLD ITALIC CAPITAL W;Lu;0;L; 0057;;;;N;;;;; -1D47F;MATHEMATICAL BOLD ITALIC CAPITAL X;Lu;0;L; 0058;;;;N;;;;; -1D480;MATHEMATICAL BOLD ITALIC CAPITAL Y;Lu;0;L; 0059;;;;N;;;;; -1D481;MATHEMATICAL BOLD ITALIC CAPITAL Z;Lu;0;L; 005A;;;;N;;;;; -1D482;MATHEMATICAL BOLD ITALIC SMALL A;Ll;0;L; 0061;;;;N;;;;; -1D483;MATHEMATICAL BOLD ITALIC SMALL B;Ll;0;L; 0062;;;;N;;;;; -1D484;MATHEMATICAL BOLD ITALIC SMALL C;Ll;0;L; 0063;;;;N;;;;; -1D485;MATHEMATICAL BOLD ITALIC SMALL D;Ll;0;L; 0064;;;;N;;;;; -1D486;MATHEMATICAL BOLD ITALIC SMALL E;Ll;0;L; 0065;;;;N;;;;; -1D487;MATHEMATICAL BOLD ITALIC SMALL F;Ll;0;L; 0066;;;;N;;;;; -1D488;MATHEMATICAL BOLD ITALIC SMALL G;Ll;0;L; 0067;;;;N;;;;; -1D489;MATHEMATICAL BOLD ITALIC SMALL H;Ll;0;L; 0068;;;;N;;;;; -1D48A;MATHEMATICAL BOLD ITALIC SMALL I;Ll;0;L; 0069;;;;N;;;;; -1D48B;MATHEMATICAL BOLD ITALIC SMALL J;Ll;0;L; 006A;;;;N;;;;; -1D48C;MATHEMATICAL BOLD ITALIC SMALL K;Ll;0;L; 006B;;;;N;;;;; -1D48D;MATHEMATICAL BOLD ITALIC SMALL L;Ll;0;L; 006C;;;;N;;;;; -1D48E;MATHEMATICAL BOLD ITALIC SMALL M;Ll;0;L; 006D;;;;N;;;;; -1D48F;MATHEMATICAL BOLD ITALIC SMALL N;Ll;0;L; 006E;;;;N;;;;; -1D490;MATHEMATICAL BOLD ITALIC SMALL O;Ll;0;L; 006F;;;;N;;;;; -1D491;MATHEMATICAL BOLD ITALIC SMALL P;Ll;0;L; 0070;;;;N;;;;; -1D492;MATHEMATICAL BOLD ITALIC SMALL Q;Ll;0;L; 0071;;;;N;;;;; -1D493;MATHEMATICAL BOLD ITALIC SMALL R;Ll;0;L; 0072;;;;N;;;;; -1D494;MATHEMATICAL BOLD ITALIC SMALL S;Ll;0;L; 0073;;;;N;;;;; -1D495;MATHEMATICAL BOLD ITALIC SMALL T;Ll;0;L; 0074;;;;N;;;;; -1D496;MATHEMATICAL BOLD ITALIC SMALL U;Ll;0;L; 0075;;;;N;;;;; -1D497;MATHEMATICAL BOLD ITALIC SMALL V;Ll;0;L; 0076;;;;N;;;;; -1D498;MATHEMATICAL BOLD ITALIC SMALL W;Ll;0;L; 0077;;;;N;;;;; -1D499;MATHEMATICAL BOLD ITALIC SMALL X;Ll;0;L; 0078;;;;N;;;;; -1D49A;MATHEMATICAL BOLD ITALIC SMALL Y;Ll;0;L; 0079;;;;N;;;;; -1D49B;MATHEMATICAL BOLD ITALIC SMALL Z;Ll;0;L; 007A;;;;N;;;;; -1D49C;MATHEMATICAL SCRIPT CAPITAL A;Lu;0;L; 0041;;;;N;;;;; -1D49E;MATHEMATICAL SCRIPT CAPITAL C;Lu;0;L; 0043;;;;N;;;;; -1D49F;MATHEMATICAL SCRIPT CAPITAL D;Lu;0;L; 0044;;;;N;;;;; -1D4A2;MATHEMATICAL SCRIPT CAPITAL G;Lu;0;L; 0047;;;;N;;;;; -1D4A5;MATHEMATICAL SCRIPT CAPITAL J;Lu;0;L; 004A;;;;N;;;;; -1D4A6;MATHEMATICAL SCRIPT CAPITAL K;Lu;0;L; 004B;;;;N;;;;; -1D4A9;MATHEMATICAL SCRIPT CAPITAL N;Lu;0;L; 004E;;;;N;;;;; -1D4AA;MATHEMATICAL SCRIPT CAPITAL O;Lu;0;L; 004F;;;;N;;;;; -1D4AB;MATHEMATICAL SCRIPT CAPITAL P;Lu;0;L; 0050;;;;N;;;;; -1D4AC;MATHEMATICAL SCRIPT CAPITAL Q;Lu;0;L; 0051;;;;N;;;;; -1D4AE;MATHEMATICAL SCRIPT CAPITAL S;Lu;0;L; 0053;;;;N;;;;; -1D4AF;MATHEMATICAL SCRIPT CAPITAL T;Lu;0;L; 0054;;;;N;;;;; -1D4B0;MATHEMATICAL SCRIPT CAPITAL U;Lu;0;L; 0055;;;;N;;;;; -1D4B1;MATHEMATICAL SCRIPT CAPITAL V;Lu;0;L; 0056;;;;N;;;;; -1D4B2;MATHEMATICAL SCRIPT CAPITAL W;Lu;0;L; 0057;;;;N;;;;; -1D4B3;MATHEMATICAL SCRIPT CAPITAL X;Lu;0;L; 0058;;;;N;;;;; -1D4B4;MATHEMATICAL SCRIPT CAPITAL Y;Lu;0;L; 0059;;;;N;;;;; -1D4B5;MATHEMATICAL SCRIPT CAPITAL Z;Lu;0;L; 005A;;;;N;;;;; -1D4B6;MATHEMATICAL SCRIPT SMALL A;Ll;0;L; 0061;;;;N;;;;; -1D4B7;MATHEMATICAL SCRIPT SMALL B;Ll;0;L; 0062;;;;N;;;;; -1D4B8;MATHEMATICAL SCRIPT SMALL C;Ll;0;L; 0063;;;;N;;;;; -1D4B9;MATHEMATICAL SCRIPT SMALL D;Ll;0;L; 0064;;;;N;;;;; -1D4BB;MATHEMATICAL SCRIPT SMALL F;Ll;0;L; 0066;;;;N;;;;; -1D4BD;MATHEMATICAL SCRIPT SMALL H;Ll;0;L; 0068;;;;N;;;;; -1D4BE;MATHEMATICAL SCRIPT SMALL I;Ll;0;L; 0069;;;;N;;;;; -1D4BF;MATHEMATICAL SCRIPT SMALL J;Ll;0;L; 006A;;;;N;;;;; -1D4C0;MATHEMATICAL SCRIPT SMALL K;Ll;0;L; 006B;;;;N;;;;; -1D4C1;MATHEMATICAL SCRIPT SMALL L;Ll;0;L; 006C;;;;N;;;;; -1D4C2;MATHEMATICAL SCRIPT SMALL M;Ll;0;L; 006D;;;;N;;;;; -1D4C3;MATHEMATICAL SCRIPT SMALL N;Ll;0;L; 006E;;;;N;;;;; -1D4C5;MATHEMATICAL SCRIPT SMALL P;Ll;0;L; 0070;;;;N;;;;; -1D4C6;MATHEMATICAL SCRIPT SMALL Q;Ll;0;L; 0071;;;;N;;;;; -1D4C7;MATHEMATICAL SCRIPT SMALL R;Ll;0;L; 0072;;;;N;;;;; -1D4C8;MATHEMATICAL SCRIPT SMALL S;Ll;0;L; 0073;;;;N;;;;; -1D4C9;MATHEMATICAL SCRIPT SMALL T;Ll;0;L; 0074;;;;N;;;;; -1D4CA;MATHEMATICAL SCRIPT SMALL U;Ll;0;L; 0075;;;;N;;;;; -1D4CB;MATHEMATICAL SCRIPT SMALL V;Ll;0;L; 0076;;;;N;;;;; -1D4CC;MATHEMATICAL SCRIPT SMALL W;Ll;0;L; 0077;;;;N;;;;; -1D4CD;MATHEMATICAL SCRIPT SMALL X;Ll;0;L; 0078;;;;N;;;;; -1D4CE;MATHEMATICAL SCRIPT SMALL Y;Ll;0;L; 0079;;;;N;;;;; -1D4CF;MATHEMATICAL SCRIPT SMALL Z;Ll;0;L; 007A;;;;N;;;;; -1D4D0;MATHEMATICAL BOLD SCRIPT CAPITAL A;Lu;0;L; 0041;;;;N;;;;; -1D4D1;MATHEMATICAL BOLD SCRIPT CAPITAL B;Lu;0;L; 0042;;;;N;;;;; -1D4D2;MATHEMATICAL BOLD SCRIPT CAPITAL C;Lu;0;L; 0043;;;;N;;;;; -1D4D3;MATHEMATICAL BOLD SCRIPT CAPITAL D;Lu;0;L; 0044;;;;N;;;;; -1D4D4;MATHEMATICAL BOLD SCRIPT CAPITAL E;Lu;0;L; 0045;;;;N;;;;; -1D4D5;MATHEMATICAL BOLD SCRIPT CAPITAL F;Lu;0;L; 0046;;;;N;;;;; -1D4D6;MATHEMATICAL BOLD SCRIPT CAPITAL G;Lu;0;L; 0047;;;;N;;;;; -1D4D7;MATHEMATICAL BOLD SCRIPT CAPITAL H;Lu;0;L; 0048;;;;N;;;;; -1D4D8;MATHEMATICAL BOLD SCRIPT CAPITAL I;Lu;0;L; 0049;;;;N;;;;; -1D4D9;MATHEMATICAL BOLD SCRIPT CAPITAL J;Lu;0;L; 004A;;;;N;;;;; -1D4DA;MATHEMATICAL BOLD SCRIPT CAPITAL K;Lu;0;L; 004B;;;;N;;;;; -1D4DB;MATHEMATICAL BOLD SCRIPT CAPITAL L;Lu;0;L; 004C;;;;N;;;;; -1D4DC;MATHEMATICAL BOLD SCRIPT CAPITAL M;Lu;0;L; 004D;;;;N;;;;; -1D4DD;MATHEMATICAL BOLD SCRIPT CAPITAL N;Lu;0;L; 004E;;;;N;;;;; -1D4DE;MATHEMATICAL BOLD SCRIPT CAPITAL O;Lu;0;L; 004F;;;;N;;;;; -1D4DF;MATHEMATICAL BOLD SCRIPT CAPITAL P;Lu;0;L; 0050;;;;N;;;;; -1D4E0;MATHEMATICAL BOLD SCRIPT CAPITAL Q;Lu;0;L; 0051;;;;N;;;;; -1D4E1;MATHEMATICAL BOLD SCRIPT CAPITAL R;Lu;0;L; 0052;;;;N;;;;; -1D4E2;MATHEMATICAL BOLD SCRIPT CAPITAL S;Lu;0;L; 0053;;;;N;;;;; -1D4E3;MATHEMATICAL BOLD SCRIPT CAPITAL T;Lu;0;L; 0054;;;;N;;;;; -1D4E4;MATHEMATICAL BOLD SCRIPT CAPITAL U;Lu;0;L; 0055;;;;N;;;;; -1D4E5;MATHEMATICAL BOLD SCRIPT CAPITAL V;Lu;0;L; 0056;;;;N;;;;; -1D4E6;MATHEMATICAL BOLD SCRIPT CAPITAL W;Lu;0;L; 0057;;;;N;;;;; -1D4E7;MATHEMATICAL BOLD SCRIPT CAPITAL X;Lu;0;L; 0058;;;;N;;;;; -1D4E8;MATHEMATICAL BOLD SCRIPT CAPITAL Y;Lu;0;L; 0059;;;;N;;;;; -1D4E9;MATHEMATICAL BOLD SCRIPT CAPITAL Z;Lu;0;L; 005A;;;;N;;;;; -1D4EA;MATHEMATICAL BOLD SCRIPT SMALL A;Ll;0;L; 0061;;;;N;;;;; -1D4EB;MATHEMATICAL BOLD SCRIPT SMALL B;Ll;0;L; 0062;;;;N;;;;; -1D4EC;MATHEMATICAL BOLD SCRIPT SMALL C;Ll;0;L; 0063;;;;N;;;;; -1D4ED;MATHEMATICAL BOLD SCRIPT SMALL D;Ll;0;L; 0064;;;;N;;;;; -1D4EE;MATHEMATICAL BOLD SCRIPT SMALL E;Ll;0;L; 0065;;;;N;;;;; -1D4EF;MATHEMATICAL BOLD SCRIPT SMALL F;Ll;0;L; 0066;;;;N;;;;; -1D4F0;MATHEMATICAL BOLD SCRIPT SMALL G;Ll;0;L; 0067;;;;N;;;;; -1D4F1;MATHEMATICAL BOLD SCRIPT SMALL H;Ll;0;L; 0068;;;;N;;;;; -1D4F2;MATHEMATICAL BOLD SCRIPT SMALL I;Ll;0;L; 0069;;;;N;;;;; -1D4F3;MATHEMATICAL BOLD SCRIPT SMALL J;Ll;0;L; 006A;;;;N;;;;; -1D4F4;MATHEMATICAL BOLD SCRIPT SMALL K;Ll;0;L; 006B;;;;N;;;;; -1D4F5;MATHEMATICAL BOLD SCRIPT SMALL L;Ll;0;L; 006C;;;;N;;;;; -1D4F6;MATHEMATICAL BOLD SCRIPT SMALL M;Ll;0;L; 006D;;;;N;;;;; -1D4F7;MATHEMATICAL BOLD SCRIPT SMALL N;Ll;0;L; 006E;;;;N;;;;; -1D4F8;MATHEMATICAL BOLD SCRIPT SMALL O;Ll;0;L; 006F;;;;N;;;;; -1D4F9;MATHEMATICAL BOLD SCRIPT SMALL P;Ll;0;L; 0070;;;;N;;;;; -1D4FA;MATHEMATICAL BOLD SCRIPT SMALL Q;Ll;0;L; 0071;;;;N;;;;; -1D4FB;MATHEMATICAL BOLD SCRIPT SMALL R;Ll;0;L; 0072;;;;N;;;;; -1D4FC;MATHEMATICAL BOLD SCRIPT SMALL S;Ll;0;L; 0073;;;;N;;;;; -1D4FD;MATHEMATICAL BOLD SCRIPT SMALL T;Ll;0;L; 0074;;;;N;;;;; -1D4FE;MATHEMATICAL BOLD SCRIPT SMALL U;Ll;0;L; 0075;;;;N;;;;; -1D4FF;MATHEMATICAL BOLD SCRIPT SMALL V;Ll;0;L; 0076;;;;N;;;;; -1D500;MATHEMATICAL BOLD SCRIPT SMALL W;Ll;0;L; 0077;;;;N;;;;; -1D501;MATHEMATICAL BOLD SCRIPT SMALL X;Ll;0;L; 0078;;;;N;;;;; -1D502;MATHEMATICAL BOLD SCRIPT SMALL Y;Ll;0;L; 0079;;;;N;;;;; -1D503;MATHEMATICAL BOLD SCRIPT SMALL Z;Ll;0;L; 007A;;;;N;;;;; -1D504;MATHEMATICAL FRAKTUR CAPITAL A;Lu;0;L; 0041;;;;N;;;;; -1D505;MATHEMATICAL FRAKTUR CAPITAL B;Lu;0;L; 0042;;;;N;;;;; -1D507;MATHEMATICAL FRAKTUR CAPITAL D;Lu;0;L; 0044;;;;N;;;;; -1D508;MATHEMATICAL FRAKTUR CAPITAL E;Lu;0;L; 0045;;;;N;;;;; -1D509;MATHEMATICAL FRAKTUR CAPITAL F;Lu;0;L; 0046;;;;N;;;;; -1D50A;MATHEMATICAL FRAKTUR CAPITAL G;Lu;0;L; 0047;;;;N;;;;; -1D50D;MATHEMATICAL FRAKTUR CAPITAL J;Lu;0;L; 004A;;;;N;;;;; -1D50E;MATHEMATICAL FRAKTUR CAPITAL K;Lu;0;L; 004B;;;;N;;;;; -1D50F;MATHEMATICAL FRAKTUR CAPITAL L;Lu;0;L; 004C;;;;N;;;;; -1D510;MATHEMATICAL FRAKTUR CAPITAL M;Lu;0;L; 004D;;;;N;;;;; -1D511;MATHEMATICAL FRAKTUR CAPITAL N;Lu;0;L; 004E;;;;N;;;;; -1D512;MATHEMATICAL FRAKTUR CAPITAL O;Lu;0;L; 004F;;;;N;;;;; -1D513;MATHEMATICAL FRAKTUR CAPITAL P;Lu;0;L; 0050;;;;N;;;;; -1D514;MATHEMATICAL FRAKTUR CAPITAL Q;Lu;0;L; 0051;;;;N;;;;; -1D516;MATHEMATICAL FRAKTUR CAPITAL S;Lu;0;L; 0053;;;;N;;;;; -1D517;MATHEMATICAL FRAKTUR CAPITAL T;Lu;0;L; 0054;;;;N;;;;; -1D518;MATHEMATICAL FRAKTUR CAPITAL U;Lu;0;L; 0055;;;;N;;;;; -1D519;MATHEMATICAL FRAKTUR CAPITAL V;Lu;0;L; 0056;;;;N;;;;; -1D51A;MATHEMATICAL FRAKTUR CAPITAL W;Lu;0;L; 0057;;;;N;;;;; -1D51B;MATHEMATICAL FRAKTUR CAPITAL X;Lu;0;L; 0058;;;;N;;;;; -1D51C;MATHEMATICAL FRAKTUR CAPITAL Y;Lu;0;L; 0059;;;;N;;;;; -1D51E;MATHEMATICAL FRAKTUR SMALL A;Ll;0;L; 0061;;;;N;;;;; -1D51F;MATHEMATICAL FRAKTUR SMALL B;Ll;0;L; 0062;;;;N;;;;; -1D520;MATHEMATICAL FRAKTUR SMALL C;Ll;0;L; 0063;;;;N;;;;; -1D521;MATHEMATICAL FRAKTUR SMALL D;Ll;0;L; 0064;;;;N;;;;; -1D522;MATHEMATICAL FRAKTUR SMALL E;Ll;0;L; 0065;;;;N;;;;; -1D523;MATHEMATICAL FRAKTUR SMALL F;Ll;0;L; 0066;;;;N;;;;; -1D524;MATHEMATICAL FRAKTUR SMALL G;Ll;0;L; 0067;;;;N;;;;; -1D525;MATHEMATICAL FRAKTUR SMALL H;Ll;0;L; 0068;;;;N;;;;; -1D526;MATHEMATICAL FRAKTUR SMALL I;Ll;0;L; 0069;;;;N;;;;; -1D527;MATHEMATICAL FRAKTUR SMALL J;Ll;0;L; 006A;;;;N;;;;; -1D528;MATHEMATICAL FRAKTUR SMALL K;Ll;0;L; 006B;;;;N;;;;; -1D529;MATHEMATICAL FRAKTUR SMALL L;Ll;0;L; 006C;;;;N;;;;; -1D52A;MATHEMATICAL FRAKTUR SMALL M;Ll;0;L; 006D;;;;N;;;;; -1D52B;MATHEMATICAL FRAKTUR SMALL N;Ll;0;L; 006E;;;;N;;;;; -1D52C;MATHEMATICAL FRAKTUR SMALL O;Ll;0;L; 006F;;;;N;;;;; -1D52D;MATHEMATICAL FRAKTUR SMALL P;Ll;0;L; 0070;;;;N;;;;; -1D52E;MATHEMATICAL FRAKTUR SMALL Q;Ll;0;L; 0071;;;;N;;;;; -1D52F;MATHEMATICAL FRAKTUR SMALL R;Ll;0;L; 0072;;;;N;;;;; -1D530;MATHEMATICAL FRAKTUR SMALL S;Ll;0;L; 0073;;;;N;;;;; -1D531;MATHEMATICAL FRAKTUR SMALL T;Ll;0;L; 0074;;;;N;;;;; -1D532;MATHEMATICAL FRAKTUR SMALL U;Ll;0;L; 0075;;;;N;;;;; -1D533;MATHEMATICAL FRAKTUR SMALL V;Ll;0;L; 0076;;;;N;;;;; -1D534;MATHEMATICAL FRAKTUR SMALL W;Ll;0;L; 0077;;;;N;;;;; -1D535;MATHEMATICAL FRAKTUR SMALL X;Ll;0;L; 0078;;;;N;;;;; -1D536;MATHEMATICAL FRAKTUR SMALL Y;Ll;0;L; 0079;;;;N;;;;; -1D537;MATHEMATICAL FRAKTUR SMALL Z;Ll;0;L; 007A;;;;N;;;;; -1D538;MATHEMATICAL DOUBLE-STRUCK CAPITAL A;Lu;0;L; 0041;;;;N;;;;; -1D539;MATHEMATICAL DOUBLE-STRUCK CAPITAL B;Lu;0;L; 0042;;;;N;;;;; -1D53B;MATHEMATICAL DOUBLE-STRUCK CAPITAL D;Lu;0;L; 0044;;;;N;;;;; -1D53C;MATHEMATICAL DOUBLE-STRUCK CAPITAL E;Lu;0;L; 0045;;;;N;;;;; -1D53D;MATHEMATICAL DOUBLE-STRUCK CAPITAL F;Lu;0;L; 0046;;;;N;;;;; -1D53E;MATHEMATICAL DOUBLE-STRUCK CAPITAL G;Lu;0;L; 0047;;;;N;;;;; -1D540;MATHEMATICAL DOUBLE-STRUCK CAPITAL I;Lu;0;L; 0049;;;;N;;;;; -1D541;MATHEMATICAL DOUBLE-STRUCK CAPITAL J;Lu;0;L; 004A;;;;N;;;;; -1D542;MATHEMATICAL DOUBLE-STRUCK CAPITAL K;Lu;0;L; 004B;;;;N;;;;; -1D543;MATHEMATICAL DOUBLE-STRUCK CAPITAL L;Lu;0;L; 004C;;;;N;;;;; -1D544;MATHEMATICAL DOUBLE-STRUCK CAPITAL M;Lu;0;L; 004D;;;;N;;;;; -1D546;MATHEMATICAL DOUBLE-STRUCK CAPITAL O;Lu;0;L; 004F;;;;N;;;;; -1D54A;MATHEMATICAL DOUBLE-STRUCK CAPITAL S;Lu;0;L; 0053;;;;N;;;;; -1D54B;MATHEMATICAL DOUBLE-STRUCK CAPITAL T;Lu;0;L; 0054;;;;N;;;;; -1D54C;MATHEMATICAL DOUBLE-STRUCK CAPITAL U;Lu;0;L; 0055;;;;N;;;;; -1D54D;MATHEMATICAL DOUBLE-STRUCK CAPITAL V;Lu;0;L; 0056;;;;N;;;;; -1D54E;MATHEMATICAL DOUBLE-STRUCK CAPITAL W;Lu;0;L; 0057;;;;N;;;;; -1D54F;MATHEMATICAL DOUBLE-STRUCK CAPITAL X;Lu;0;L; 0058;;;;N;;;;; -1D550;MATHEMATICAL DOUBLE-STRUCK CAPITAL Y;Lu;0;L; 0059;;;;N;;;;; -1D552;MATHEMATICAL DOUBLE-STRUCK SMALL A;Ll;0;L; 0061;;;;N;;;;; -1D553;MATHEMATICAL DOUBLE-STRUCK SMALL B;Ll;0;L; 0062;;;;N;;;;; -1D554;MATHEMATICAL DOUBLE-STRUCK SMALL C;Ll;0;L; 0063;;;;N;;;;; -1D555;MATHEMATICAL DOUBLE-STRUCK SMALL D;Ll;0;L; 0064;;;;N;;;;; -1D556;MATHEMATICAL DOUBLE-STRUCK SMALL E;Ll;0;L; 0065;;;;N;;;;; -1D557;MATHEMATICAL DOUBLE-STRUCK SMALL F;Ll;0;L; 0066;;;;N;;;;; -1D558;MATHEMATICAL DOUBLE-STRUCK SMALL G;Ll;0;L; 0067;;;;N;;;;; -1D559;MATHEMATICAL DOUBLE-STRUCK SMALL H;Ll;0;L; 0068;;;;N;;;;; -1D55A;MATHEMATICAL DOUBLE-STRUCK SMALL I;Ll;0;L; 0069;;;;N;;;;; -1D55B;MATHEMATICAL DOUBLE-STRUCK SMALL J;Ll;0;L; 006A;;;;N;;;;; -1D55C;MATHEMATICAL DOUBLE-STRUCK SMALL K;Ll;0;L; 006B;;;;N;;;;; -1D55D;MATHEMATICAL DOUBLE-STRUCK SMALL L;Ll;0;L; 006C;;;;N;;;;; -1D55E;MATHEMATICAL DOUBLE-STRUCK SMALL M;Ll;0;L; 006D;;;;N;;;;; -1D55F;MATHEMATICAL DOUBLE-STRUCK SMALL N;Ll;0;L; 006E;;;;N;;;;; -1D560;MATHEMATICAL DOUBLE-STRUCK SMALL O;Ll;0;L; 006F;;;;N;;;;; -1D561;MATHEMATICAL DOUBLE-STRUCK SMALL P;Ll;0;L; 0070;;;;N;;;;; -1D562;MATHEMATICAL DOUBLE-STRUCK SMALL Q;Ll;0;L; 0071;;;;N;;;;; -1D563;MATHEMATICAL DOUBLE-STRUCK SMALL R;Ll;0;L; 0072;;;;N;;;;; -1D564;MATHEMATICAL DOUBLE-STRUCK SMALL S;Ll;0;L; 0073;;;;N;;;;; -1D565;MATHEMATICAL DOUBLE-STRUCK SMALL T;Ll;0;L; 0074;;;;N;;;;; -1D566;MATHEMATICAL DOUBLE-STRUCK SMALL U;Ll;0;L; 0075;;;;N;;;;; -1D567;MATHEMATICAL DOUBLE-STRUCK SMALL V;Ll;0;L; 0076;;;;N;;;;; -1D568;MATHEMATICAL DOUBLE-STRUCK SMALL W;Ll;0;L; 0077;;;;N;;;;; -1D569;MATHEMATICAL DOUBLE-STRUCK SMALL X;Ll;0;L; 0078;;;;N;;;;; -1D56A;MATHEMATICAL DOUBLE-STRUCK SMALL Y;Ll;0;L; 0079;;;;N;;;;; -1D56B;MATHEMATICAL DOUBLE-STRUCK SMALL Z;Ll;0;L; 007A;;;;N;;;;; -1D56C;MATHEMATICAL BOLD FRAKTUR CAPITAL A;Lu;0;L; 0041;;;;N;;;;; -1D56D;MATHEMATICAL BOLD FRAKTUR CAPITAL B;Lu;0;L; 0042;;;;N;;;;; -1D56E;MATHEMATICAL BOLD FRAKTUR CAPITAL C;Lu;0;L; 0043;;;;N;;;;; -1D56F;MATHEMATICAL BOLD FRAKTUR CAPITAL D;Lu;0;L; 0044;;;;N;;;;; -1D570;MATHEMATICAL BOLD FRAKTUR CAPITAL E;Lu;0;L; 0045;;;;N;;;;; -1D571;MATHEMATICAL BOLD FRAKTUR CAPITAL F;Lu;0;L; 0046;;;;N;;;;; -1D572;MATHEMATICAL BOLD FRAKTUR CAPITAL G;Lu;0;L; 0047;;;;N;;;;; -1D573;MATHEMATICAL BOLD FRAKTUR CAPITAL H;Lu;0;L; 0048;;;;N;;;;; -1D574;MATHEMATICAL BOLD FRAKTUR CAPITAL I;Lu;0;L; 0049;;;;N;;;;; -1D575;MATHEMATICAL BOLD FRAKTUR CAPITAL J;Lu;0;L; 004A;;;;N;;;;; -1D576;MATHEMATICAL BOLD FRAKTUR CAPITAL K;Lu;0;L; 004B;;;;N;;;;; -1D577;MATHEMATICAL BOLD FRAKTUR CAPITAL L;Lu;0;L; 004C;;;;N;;;;; -1D578;MATHEMATICAL BOLD FRAKTUR CAPITAL M;Lu;0;L; 004D;;;;N;;;;; -1D579;MATHEMATICAL BOLD FRAKTUR CAPITAL N;Lu;0;L; 004E;;;;N;;;;; -1D57A;MATHEMATICAL BOLD FRAKTUR CAPITAL O;Lu;0;L; 004F;;;;N;;;;; -1D57B;MATHEMATICAL BOLD FRAKTUR CAPITAL P;Lu;0;L; 0050;;;;N;;;;; -1D57C;MATHEMATICAL BOLD FRAKTUR CAPITAL Q;Lu;0;L; 0051;;;;N;;;;; -1D57D;MATHEMATICAL BOLD FRAKTUR CAPITAL R;Lu;0;L; 0052;;;;N;;;;; -1D57E;MATHEMATICAL BOLD FRAKTUR CAPITAL S;Lu;0;L; 0053;;;;N;;;;; -1D57F;MATHEMATICAL BOLD FRAKTUR CAPITAL T;Lu;0;L; 0054;;;;N;;;;; -1D580;MATHEMATICAL BOLD FRAKTUR CAPITAL U;Lu;0;L; 0055;;;;N;;;;; -1D581;MATHEMATICAL BOLD FRAKTUR CAPITAL V;Lu;0;L; 0056;;;;N;;;;; -1D582;MATHEMATICAL BOLD FRAKTUR CAPITAL W;Lu;0;L; 0057;;;;N;;;;; -1D583;MATHEMATICAL BOLD FRAKTUR CAPITAL X;Lu;0;L; 0058;;;;N;;;;; -1D584;MATHEMATICAL BOLD FRAKTUR CAPITAL Y;Lu;0;L; 0059;;;;N;;;;; -1D585;MATHEMATICAL BOLD FRAKTUR CAPITAL Z;Lu;0;L; 005A;;;;N;;;;; -1D586;MATHEMATICAL BOLD FRAKTUR SMALL A;Ll;0;L; 0061;;;;N;;;;; -1D587;MATHEMATICAL BOLD FRAKTUR SMALL B;Ll;0;L; 0062;;;;N;;;;; -1D588;MATHEMATICAL BOLD FRAKTUR SMALL C;Ll;0;L; 0063;;;;N;;;;; -1D589;MATHEMATICAL BOLD FRAKTUR SMALL D;Ll;0;L; 0064;;;;N;;;;; -1D58A;MATHEMATICAL BOLD FRAKTUR SMALL E;Ll;0;L; 0065;;;;N;;;;; -1D58B;MATHEMATICAL BOLD FRAKTUR SMALL F;Ll;0;L; 0066;;;;N;;;;; -1D58C;MATHEMATICAL BOLD FRAKTUR SMALL G;Ll;0;L; 0067;;;;N;;;;; -1D58D;MATHEMATICAL BOLD FRAKTUR SMALL H;Ll;0;L; 0068;;;;N;;;;; -1D58E;MATHEMATICAL BOLD FRAKTUR SMALL I;Ll;0;L; 0069;;;;N;;;;; -1D58F;MATHEMATICAL BOLD FRAKTUR SMALL J;Ll;0;L; 006A;;;;N;;;;; -1D590;MATHEMATICAL BOLD FRAKTUR SMALL K;Ll;0;L; 006B;;;;N;;;;; -1D591;MATHEMATICAL BOLD FRAKTUR SMALL L;Ll;0;L; 006C;;;;N;;;;; -1D592;MATHEMATICAL BOLD FRAKTUR SMALL M;Ll;0;L; 006D;;;;N;;;;; -1D593;MATHEMATICAL BOLD FRAKTUR SMALL N;Ll;0;L; 006E;;;;N;;;;; -1D594;MATHEMATICAL BOLD FRAKTUR SMALL O;Ll;0;L; 006F;;;;N;;;;; -1D595;MATHEMATICAL BOLD FRAKTUR SMALL P;Ll;0;L; 0070;;;;N;;;;; -1D596;MATHEMATICAL BOLD FRAKTUR SMALL Q;Ll;0;L; 0071;;;;N;;;;; -1D597;MATHEMATICAL BOLD FRAKTUR SMALL R;Ll;0;L; 0072;;;;N;;;;; -1D598;MATHEMATICAL BOLD FRAKTUR SMALL S;Ll;0;L; 0073;;;;N;;;;; -1D599;MATHEMATICAL BOLD FRAKTUR SMALL T;Ll;0;L; 0074;;;;N;;;;; -1D59A;MATHEMATICAL BOLD FRAKTUR SMALL U;Ll;0;L; 0075;;;;N;;;;; -1D59B;MATHEMATICAL BOLD FRAKTUR SMALL V;Ll;0;L; 0076;;;;N;;;;; -1D59C;MATHEMATICAL BOLD FRAKTUR SMALL W;Ll;0;L; 0077;;;;N;;;;; -1D59D;MATHEMATICAL BOLD FRAKTUR SMALL X;Ll;0;L; 0078;;;;N;;;;; -1D59E;MATHEMATICAL BOLD FRAKTUR SMALL Y;Ll;0;L; 0079;;;;N;;;;; -1D59F;MATHEMATICAL BOLD FRAKTUR SMALL Z;Ll;0;L; 007A;;;;N;;;;; -1D5A0;MATHEMATICAL SANS-SERIF CAPITAL A;Lu;0;L; 0041;;;;N;;;;; -1D5A1;MATHEMATICAL SANS-SERIF CAPITAL B;Lu;0;L; 0042;;;;N;;;;; -1D5A2;MATHEMATICAL SANS-SERIF CAPITAL C;Lu;0;L; 0043;;;;N;;;;; -1D5A3;MATHEMATICAL SANS-SERIF CAPITAL D;Lu;0;L; 0044;;;;N;;;;; -1D5A4;MATHEMATICAL SANS-SERIF CAPITAL E;Lu;0;L; 0045;;;;N;;;;; -1D5A5;MATHEMATICAL SANS-SERIF CAPITAL F;Lu;0;L; 0046;;;;N;;;;; -1D5A6;MATHEMATICAL SANS-SERIF CAPITAL G;Lu;0;L; 0047;;;;N;;;;; -1D5A7;MATHEMATICAL SANS-SERIF CAPITAL H;Lu;0;L; 0048;;;;N;;;;; -1D5A8;MATHEMATICAL SANS-SERIF CAPITAL I;Lu;0;L; 0049;;;;N;;;;; -1D5A9;MATHEMATICAL SANS-SERIF CAPITAL J;Lu;0;L; 004A;;;;N;;;;; -1D5AA;MATHEMATICAL SANS-SERIF CAPITAL K;Lu;0;L; 004B;;;;N;;;;; -1D5AB;MATHEMATICAL SANS-SERIF CAPITAL L;Lu;0;L; 004C;;;;N;;;;; -1D5AC;MATHEMATICAL SANS-SERIF CAPITAL M;Lu;0;L; 004D;;;;N;;;;; -1D5AD;MATHEMATICAL SANS-SERIF CAPITAL N;Lu;0;L; 004E;;;;N;;;;; -1D5AE;MATHEMATICAL SANS-SERIF CAPITAL O;Lu;0;L; 004F;;;;N;;;;; -1D5AF;MATHEMATICAL SANS-SERIF CAPITAL P;Lu;0;L; 0050;;;;N;;;;; -1D5B0;MATHEMATICAL SANS-SERIF CAPITAL Q;Lu;0;L; 0051;;;;N;;;;; -1D5B1;MATHEMATICAL SANS-SERIF CAPITAL R;Lu;0;L; 0052;;;;N;;;;; -1D5B2;MATHEMATICAL SANS-SERIF CAPITAL S;Lu;0;L; 0053;;;;N;;;;; -1D5B3;MATHEMATICAL SANS-SERIF CAPITAL T;Lu;0;L; 0054;;;;N;;;;; -1D5B4;MATHEMATICAL SANS-SERIF CAPITAL U;Lu;0;L; 0055;;;;N;;;;; -1D5B5;MATHEMATICAL SANS-SERIF CAPITAL V;Lu;0;L; 0056;;;;N;;;;; -1D5B6;MATHEMATICAL SANS-SERIF CAPITAL W;Lu;0;L; 0057;;;;N;;;;; -1D5B7;MATHEMATICAL SANS-SERIF CAPITAL X;Lu;0;L; 0058;;;;N;;;;; -1D5B8;MATHEMATICAL SANS-SERIF CAPITAL Y;Lu;0;L; 0059;;;;N;;;;; -1D5B9;MATHEMATICAL SANS-SERIF CAPITAL Z;Lu;0;L; 005A;;;;N;;;;; -1D5BA;MATHEMATICAL SANS-SERIF SMALL A;Ll;0;L; 0061;;;;N;;;;; -1D5BB;MATHEMATICAL SANS-SERIF SMALL B;Ll;0;L; 0062;;;;N;;;;; -1D5BC;MATHEMATICAL SANS-SERIF SMALL C;Ll;0;L; 0063;;;;N;;;;; -1D5BD;MATHEMATICAL SANS-SERIF SMALL D;Ll;0;L; 0064;;;;N;;;;; -1D5BE;MATHEMATICAL SANS-SERIF SMALL E;Ll;0;L; 0065;;;;N;;;;; -1D5BF;MATHEMATICAL SANS-SERIF SMALL F;Ll;0;L; 0066;;;;N;;;;; -1D5C0;MATHEMATICAL SANS-SERIF SMALL G;Ll;0;L; 0067;;;;N;;;;; -1D5C1;MATHEMATICAL SANS-SERIF SMALL H;Ll;0;L; 0068;;;;N;;;;; -1D5C2;MATHEMATICAL SANS-SERIF SMALL I;Ll;0;L; 0069;;;;N;;;;; -1D5C3;MATHEMATICAL SANS-SERIF SMALL J;Ll;0;L; 006A;;;;N;;;;; -1D5C4;MATHEMATICAL SANS-SERIF SMALL K;Ll;0;L; 006B;;;;N;;;;; -1D5C5;MATHEMATICAL SANS-SERIF SMALL L;Ll;0;L; 006C;;;;N;;;;; -1D5C6;MATHEMATICAL SANS-SERIF SMALL M;Ll;0;L; 006D;;;;N;;;;; -1D5C7;MATHEMATICAL SANS-SERIF SMALL N;Ll;0;L; 006E;;;;N;;;;; -1D5C8;MATHEMATICAL SANS-SERIF SMALL O;Ll;0;L; 006F;;;;N;;;;; -1D5C9;MATHEMATICAL SANS-SERIF SMALL P;Ll;0;L; 0070;;;;N;;;;; -1D5CA;MATHEMATICAL SANS-SERIF SMALL Q;Ll;0;L; 0071;;;;N;;;;; -1D5CB;MATHEMATICAL SANS-SERIF SMALL R;Ll;0;L; 0072;;;;N;;;;; -1D5CC;MATHEMATICAL SANS-SERIF SMALL S;Ll;0;L; 0073;;;;N;;;;; -1D5CD;MATHEMATICAL SANS-SERIF SMALL T;Ll;0;L; 0074;;;;N;;;;; -1D5CE;MATHEMATICAL SANS-SERIF SMALL U;Ll;0;L; 0075;;;;N;;;;; -1D5CF;MATHEMATICAL SANS-SERIF SMALL V;Ll;0;L; 0076;;;;N;;;;; -1D5D0;MATHEMATICAL SANS-SERIF SMALL W;Ll;0;L; 0077;;;;N;;;;; -1D5D1;MATHEMATICAL SANS-SERIF SMALL X;Ll;0;L; 0078;;;;N;;;;; -1D5D2;MATHEMATICAL SANS-SERIF SMALL Y;Ll;0;L; 0079;;;;N;;;;; -1D5D3;MATHEMATICAL SANS-SERIF SMALL Z;Ll;0;L; 007A;;;;N;;;;; -1D5D4;MATHEMATICAL SANS-SERIF BOLD CAPITAL A;Lu;0;L; 0041;;;;N;;;;; -1D5D5;MATHEMATICAL SANS-SERIF BOLD CAPITAL B;Lu;0;L; 0042;;;;N;;;;; -1D5D6;MATHEMATICAL SANS-SERIF BOLD CAPITAL C;Lu;0;L; 0043;;;;N;;;;; -1D5D7;MATHEMATICAL SANS-SERIF BOLD CAPITAL D;Lu;0;L; 0044;;;;N;;;;; -1D5D8;MATHEMATICAL SANS-SERIF BOLD CAPITAL E;Lu;0;L; 0045;;;;N;;;;; -1D5D9;MATHEMATICAL SANS-SERIF BOLD CAPITAL F;Lu;0;L; 0046;;;;N;;;;; -1D5DA;MATHEMATICAL SANS-SERIF BOLD CAPITAL G;Lu;0;L; 0047;;;;N;;;;; -1D5DB;MATHEMATICAL SANS-SERIF BOLD CAPITAL H;Lu;0;L; 0048;;;;N;;;;; -1D5DC;MATHEMATICAL SANS-SERIF BOLD CAPITAL I;Lu;0;L; 0049;;;;N;;;;; -1D5DD;MATHEMATICAL SANS-SERIF BOLD CAPITAL J;Lu;0;L; 004A;;;;N;;;;; -1D5DE;MATHEMATICAL SANS-SERIF BOLD CAPITAL K;Lu;0;L; 004B;;;;N;;;;; -1D5DF;MATHEMATICAL SANS-SERIF BOLD CAPITAL L;Lu;0;L; 004C;;;;N;;;;; -1D5E0;MATHEMATICAL SANS-SERIF BOLD CAPITAL M;Lu;0;L; 004D;;;;N;;;;; -1D5E1;MATHEMATICAL SANS-SERIF BOLD CAPITAL N;Lu;0;L; 004E;;;;N;;;;; -1D5E2;MATHEMATICAL SANS-SERIF BOLD CAPITAL O;Lu;0;L; 004F;;;;N;;;;; -1D5E3;MATHEMATICAL SANS-SERIF BOLD CAPITAL P;Lu;0;L; 0050;;;;N;;;;; -1D5E4;MATHEMATICAL SANS-SERIF BOLD CAPITAL Q;Lu;0;L; 0051;;;;N;;;;; -1D5E5;MATHEMATICAL SANS-SERIF BOLD CAPITAL R;Lu;0;L; 0052;;;;N;;;;; -1D5E6;MATHEMATICAL SANS-SERIF BOLD CAPITAL S;Lu;0;L; 0053;;;;N;;;;; -1D5E7;MATHEMATICAL SANS-SERIF BOLD CAPITAL T;Lu;0;L; 0054;;;;N;;;;; -1D5E8;MATHEMATICAL SANS-SERIF BOLD CAPITAL U;Lu;0;L; 0055;;;;N;;;;; -1D5E9;MATHEMATICAL SANS-SERIF BOLD CAPITAL V;Lu;0;L; 0056;;;;N;;;;; -1D5EA;MATHEMATICAL SANS-SERIF BOLD CAPITAL W;Lu;0;L; 0057;;;;N;;;;; -1D5EB;MATHEMATICAL SANS-SERIF BOLD CAPITAL X;Lu;0;L; 0058;;;;N;;;;; -1D5EC;MATHEMATICAL SANS-SERIF BOLD CAPITAL Y;Lu;0;L; 0059;;;;N;;;;; -1D5ED;MATHEMATICAL SANS-SERIF BOLD CAPITAL Z;Lu;0;L; 005A;;;;N;;;;; -1D5EE;MATHEMATICAL SANS-SERIF BOLD SMALL A;Ll;0;L; 0061;;;;N;;;;; -1D5EF;MATHEMATICAL SANS-SERIF BOLD SMALL B;Ll;0;L; 0062;;;;N;;;;; -1D5F0;MATHEMATICAL SANS-SERIF BOLD SMALL C;Ll;0;L; 0063;;;;N;;;;; -1D5F1;MATHEMATICAL SANS-SERIF BOLD SMALL D;Ll;0;L; 0064;;;;N;;;;; -1D5F2;MATHEMATICAL SANS-SERIF BOLD SMALL E;Ll;0;L; 0065;;;;N;;;;; -1D5F3;MATHEMATICAL SANS-SERIF BOLD SMALL F;Ll;0;L; 0066;;;;N;;;;; -1D5F4;MATHEMATICAL SANS-SERIF BOLD SMALL G;Ll;0;L; 0067;;;;N;;;;; -1D5F5;MATHEMATICAL SANS-SERIF BOLD SMALL H;Ll;0;L; 0068;;;;N;;;;; -1D5F6;MATHEMATICAL SANS-SERIF BOLD SMALL I;Ll;0;L; 0069;;;;N;;;;; -1D5F7;MATHEMATICAL SANS-SERIF BOLD SMALL J;Ll;0;L; 006A;;;;N;;;;; -1D5F8;MATHEMATICAL SANS-SERIF BOLD SMALL K;Ll;0;L; 006B;;;;N;;;;; -1D5F9;MATHEMATICAL SANS-SERIF BOLD SMALL L;Ll;0;L; 006C;;;;N;;;;; -1D5FA;MATHEMATICAL SANS-SERIF BOLD SMALL M;Ll;0;L; 006D;;;;N;;;;; -1D5FB;MATHEMATICAL SANS-SERIF BOLD SMALL N;Ll;0;L; 006E;;;;N;;;;; -1D5FC;MATHEMATICAL SANS-SERIF BOLD SMALL O;Ll;0;L; 006F;;;;N;;;;; -1D5FD;MATHEMATICAL SANS-SERIF BOLD SMALL P;Ll;0;L; 0070;;;;N;;;;; -1D5FE;MATHEMATICAL SANS-SERIF BOLD SMALL Q;Ll;0;L; 0071;;;;N;;;;; -1D5FF;MATHEMATICAL SANS-SERIF BOLD SMALL R;Ll;0;L; 0072;;;;N;;;;; -1D600;MATHEMATICAL SANS-SERIF BOLD SMALL S;Ll;0;L; 0073;;;;N;;;;; -1D601;MATHEMATICAL SANS-SERIF BOLD SMALL T;Ll;0;L; 0074;;;;N;;;;; -1D602;MATHEMATICAL SANS-SERIF BOLD SMALL U;Ll;0;L; 0075;;;;N;;;;; -1D603;MATHEMATICAL SANS-SERIF BOLD SMALL V;Ll;0;L; 0076;;;;N;;;;; -1D604;MATHEMATICAL SANS-SERIF BOLD SMALL W;Ll;0;L; 0077;;;;N;;;;; -1D605;MATHEMATICAL SANS-SERIF BOLD SMALL X;Ll;0;L; 0078;;;;N;;;;; -1D606;MATHEMATICAL SANS-SERIF BOLD SMALL Y;Ll;0;L; 0079;;;;N;;;;; -1D607;MATHEMATICAL SANS-SERIF BOLD SMALL Z;Ll;0;L; 007A;;;;N;;;;; -1D608;MATHEMATICAL SANS-SERIF ITALIC CAPITAL A;Lu;0;L; 0041;;;;N;;;;; -1D609;MATHEMATICAL SANS-SERIF ITALIC CAPITAL B;Lu;0;L; 0042;;;;N;;;;; -1D60A;MATHEMATICAL SANS-SERIF ITALIC CAPITAL C;Lu;0;L; 0043;;;;N;;;;; -1D60B;MATHEMATICAL SANS-SERIF ITALIC CAPITAL D;Lu;0;L; 0044;;;;N;;;;; -1D60C;MATHEMATICAL SANS-SERIF ITALIC CAPITAL E;Lu;0;L; 0045;;;;N;;;;; -1D60D;MATHEMATICAL SANS-SERIF ITALIC CAPITAL F;Lu;0;L; 0046;;;;N;;;;; -1D60E;MATHEMATICAL SANS-SERIF ITALIC CAPITAL G;Lu;0;L; 0047;;;;N;;;;; -1D60F;MATHEMATICAL SANS-SERIF ITALIC CAPITAL H;Lu;0;L; 0048;;;;N;;;;; -1D610;MATHEMATICAL SANS-SERIF ITALIC CAPITAL I;Lu;0;L; 0049;;;;N;;;;; -1D611;MATHEMATICAL SANS-SERIF ITALIC CAPITAL J;Lu;0;L; 004A;;;;N;;;;; -1D612;MATHEMATICAL SANS-SERIF ITALIC CAPITAL K;Lu;0;L; 004B;;;;N;;;;; -1D613;MATHEMATICAL SANS-SERIF ITALIC CAPITAL L;Lu;0;L; 004C;;;;N;;;;; -1D614;MATHEMATICAL SANS-SERIF ITALIC CAPITAL M;Lu;0;L; 004D;;;;N;;;;; -1D615;MATHEMATICAL SANS-SERIF ITALIC CAPITAL N;Lu;0;L; 004E;;;;N;;;;; -1D616;MATHEMATICAL SANS-SERIF ITALIC CAPITAL O;Lu;0;L; 004F;;;;N;;;;; -1D617;MATHEMATICAL SANS-SERIF ITALIC CAPITAL P;Lu;0;L; 0050;;;;N;;;;; -1D618;MATHEMATICAL SANS-SERIF ITALIC CAPITAL Q;Lu;0;L; 0051;;;;N;;;;; -1D619;MATHEMATICAL SANS-SERIF ITALIC CAPITAL R;Lu;0;L; 0052;;;;N;;;;; -1D61A;MATHEMATICAL SANS-SERIF ITALIC CAPITAL S;Lu;0;L; 0053;;;;N;;;;; -1D61B;MATHEMATICAL SANS-SERIF ITALIC CAPITAL T;Lu;0;L; 0054;;;;N;;;;; -1D61C;MATHEMATICAL SANS-SERIF ITALIC CAPITAL U;Lu;0;L; 0055;;;;N;;;;; -1D61D;MATHEMATICAL SANS-SERIF ITALIC CAPITAL V;Lu;0;L; 0056;;;;N;;;;; -1D61E;MATHEMATICAL SANS-SERIF ITALIC CAPITAL W;Lu;0;L; 0057;;;;N;;;;; -1D61F;MATHEMATICAL SANS-SERIF ITALIC CAPITAL X;Lu;0;L; 0058;;;;N;;;;; -1D620;MATHEMATICAL SANS-SERIF ITALIC CAPITAL Y;Lu;0;L; 0059;;;;N;;;;; -1D621;MATHEMATICAL SANS-SERIF ITALIC CAPITAL Z;Lu;0;L; 005A;;;;N;;;;; -1D622;MATHEMATICAL SANS-SERIF ITALIC SMALL A;Ll;0;L; 0061;;;;N;;;;; -1D623;MATHEMATICAL SANS-SERIF ITALIC SMALL B;Ll;0;L; 0062;;;;N;;;;; -1D624;MATHEMATICAL SANS-SERIF ITALIC SMALL C;Ll;0;L; 0063;;;;N;;;;; -1D625;MATHEMATICAL SANS-SERIF ITALIC SMALL D;Ll;0;L; 0064;;;;N;;;;; -1D626;MATHEMATICAL SANS-SERIF ITALIC SMALL E;Ll;0;L; 0065;;;;N;;;;; -1D627;MATHEMATICAL SANS-SERIF ITALIC SMALL F;Ll;0;L; 0066;;;;N;;;;; -1D628;MATHEMATICAL SANS-SERIF ITALIC SMALL G;Ll;0;L; 0067;;;;N;;;;; -1D629;MATHEMATICAL SANS-SERIF ITALIC SMALL H;Ll;0;L; 0068;;;;N;;;;; -1D62A;MATHEMATICAL SANS-SERIF ITALIC SMALL I;Ll;0;L; 0069;;;;N;;;;; -1D62B;MATHEMATICAL SANS-SERIF ITALIC SMALL J;Ll;0;L; 006A;;;;N;;;;; -1D62C;MATHEMATICAL SANS-SERIF ITALIC SMALL K;Ll;0;L; 006B;;;;N;;;;; -1D62D;MATHEMATICAL SANS-SERIF ITALIC SMALL L;Ll;0;L; 006C;;;;N;;;;; -1D62E;MATHEMATICAL SANS-SERIF ITALIC SMALL M;Ll;0;L; 006D;;;;N;;;;; -1D62F;MATHEMATICAL SANS-SERIF ITALIC SMALL N;Ll;0;L; 006E;;;;N;;;;; -1D630;MATHEMATICAL SANS-SERIF ITALIC SMALL O;Ll;0;L; 006F;;;;N;;;;; -1D631;MATHEMATICAL SANS-SERIF ITALIC SMALL P;Ll;0;L; 0070;;;;N;;;;; -1D632;MATHEMATICAL SANS-SERIF ITALIC SMALL Q;Ll;0;L; 0071;;;;N;;;;; -1D633;MATHEMATICAL SANS-SERIF ITALIC SMALL R;Ll;0;L; 0072;;;;N;;;;; -1D634;MATHEMATICAL SANS-SERIF ITALIC SMALL S;Ll;0;L; 0073;;;;N;;;;; -1D635;MATHEMATICAL SANS-SERIF ITALIC SMALL T;Ll;0;L; 0074;;;;N;;;;; -1D636;MATHEMATICAL SANS-SERIF ITALIC SMALL U;Ll;0;L; 0075;;;;N;;;;; -1D637;MATHEMATICAL SANS-SERIF ITALIC SMALL V;Ll;0;L; 0076;;;;N;;;;; -1D638;MATHEMATICAL SANS-SERIF ITALIC SMALL W;Ll;0;L; 0077;;;;N;;;;; -1D639;MATHEMATICAL SANS-SERIF ITALIC SMALL X;Ll;0;L; 0078;;;;N;;;;; -1D63A;MATHEMATICAL SANS-SERIF ITALIC SMALL Y;Ll;0;L; 0079;;;;N;;;;; -1D63B;MATHEMATICAL SANS-SERIF ITALIC SMALL Z;Ll;0;L; 007A;;;;N;;;;; -1D63C;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL A;Lu;0;L; 0041;;;;N;;;;; -1D63D;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL B;Lu;0;L; 0042;;;;N;;;;; -1D63E;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL C;Lu;0;L; 0043;;;;N;;;;; -1D63F;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL D;Lu;0;L; 0044;;;;N;;;;; -1D640;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL E;Lu;0;L; 0045;;;;N;;;;; -1D641;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL F;Lu;0;L; 0046;;;;N;;;;; -1D642;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL G;Lu;0;L; 0047;;;;N;;;;; -1D643;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL H;Lu;0;L; 0048;;;;N;;;;; -1D644;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL I;Lu;0;L; 0049;;;;N;;;;; -1D645;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL J;Lu;0;L; 004A;;;;N;;;;; -1D646;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL K;Lu;0;L; 004B;;;;N;;;;; -1D647;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL L;Lu;0;L; 004C;;;;N;;;;; -1D648;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL M;Lu;0;L; 004D;;;;N;;;;; -1D649;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL N;Lu;0;L; 004E;;;;N;;;;; -1D64A;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL O;Lu;0;L; 004F;;;;N;;;;; -1D64B;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL P;Lu;0;L; 0050;;;;N;;;;; -1D64C;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Q;Lu;0;L; 0051;;;;N;;;;; -1D64D;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL R;Lu;0;L; 0052;;;;N;;;;; -1D64E;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL S;Lu;0;L; 0053;;;;N;;;;; -1D64F;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL T;Lu;0;L; 0054;;;;N;;;;; -1D650;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL U;Lu;0;L; 0055;;;;N;;;;; -1D651;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL V;Lu;0;L; 0056;;;;N;;;;; -1D652;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL W;Lu;0;L; 0057;;;;N;;;;; -1D653;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL X;Lu;0;L; 0058;;;;N;;;;; -1D654;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Y;Lu;0;L; 0059;;;;N;;;;; -1D655;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Z;Lu;0;L; 005A;;;;N;;;;; -1D656;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL A;Ll;0;L; 0061;;;;N;;;;; -1D657;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL B;Ll;0;L; 0062;;;;N;;;;; -1D658;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL C;Ll;0;L; 0063;;;;N;;;;; -1D659;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL D;Ll;0;L; 0064;;;;N;;;;; -1D65A;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL E;Ll;0;L; 0065;;;;N;;;;; -1D65B;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL F;Ll;0;L; 0066;;;;N;;;;; -1D65C;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL G;Ll;0;L; 0067;;;;N;;;;; -1D65D;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL H;Ll;0;L; 0068;;;;N;;;;; -1D65E;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL I;Ll;0;L; 0069;;;;N;;;;; -1D65F;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL J;Ll;0;L; 006A;;;;N;;;;; -1D660;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL K;Ll;0;L; 006B;;;;N;;;;; -1D661;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL L;Ll;0;L; 006C;;;;N;;;;; -1D662;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL M;Ll;0;L; 006D;;;;N;;;;; -1D663;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL N;Ll;0;L; 006E;;;;N;;;;; -1D664;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL O;Ll;0;L; 006F;;;;N;;;;; -1D665;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL P;Ll;0;L; 0070;;;;N;;;;; -1D666;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Q;Ll;0;L; 0071;;;;N;;;;; -1D667;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL R;Ll;0;L; 0072;;;;N;;;;; -1D668;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL S;Ll;0;L; 0073;;;;N;;;;; -1D669;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL T;Ll;0;L; 0074;;;;N;;;;; -1D66A;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL U;Ll;0;L; 0075;;;;N;;;;; -1D66B;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL V;Ll;0;L; 0076;;;;N;;;;; -1D66C;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL W;Ll;0;L; 0077;;;;N;;;;; -1D66D;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL X;Ll;0;L; 0078;;;;N;;;;; -1D66E;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Y;Ll;0;L; 0079;;;;N;;;;; -1D66F;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Z;Ll;0;L; 007A;;;;N;;;;; -1D670;MATHEMATICAL MONOSPACE CAPITAL A;Lu;0;L; 0041;;;;N;;;;; -1D671;MATHEMATICAL MONOSPACE CAPITAL B;Lu;0;L; 0042;;;;N;;;;; -1D672;MATHEMATICAL MONOSPACE CAPITAL C;Lu;0;L; 0043;;;;N;;;;; -1D673;MATHEMATICAL MONOSPACE CAPITAL D;Lu;0;L; 0044;;;;N;;;;; -1D674;MATHEMATICAL MONOSPACE CAPITAL E;Lu;0;L; 0045;;;;N;;;;; -1D675;MATHEMATICAL MONOSPACE CAPITAL F;Lu;0;L; 0046;;;;N;;;;; -1D676;MATHEMATICAL MONOSPACE CAPITAL G;Lu;0;L; 0047;;;;N;;;;; -1D677;MATHEMATICAL MONOSPACE CAPITAL H;Lu;0;L; 0048;;;;N;;;;; -1D678;MATHEMATICAL MONOSPACE CAPITAL I;Lu;0;L; 0049;;;;N;;;;; -1D679;MATHEMATICAL MONOSPACE CAPITAL J;Lu;0;L; 004A;;;;N;;;;; -1D67A;MATHEMATICAL MONOSPACE CAPITAL K;Lu;0;L; 004B;;;;N;;;;; -1D67B;MATHEMATICAL MONOSPACE CAPITAL L;Lu;0;L; 004C;;;;N;;;;; -1D67C;MATHEMATICAL MONOSPACE CAPITAL M;Lu;0;L; 004D;;;;N;;;;; -1D67D;MATHEMATICAL MONOSPACE CAPITAL N;Lu;0;L; 004E;;;;N;;;;; -1D67E;MATHEMATICAL MONOSPACE CAPITAL O;Lu;0;L; 004F;;;;N;;;;; -1D67F;MATHEMATICAL MONOSPACE CAPITAL P;Lu;0;L; 0050;;;;N;;;;; -1D680;MATHEMATICAL MONOSPACE CAPITAL Q;Lu;0;L; 0051;;;;N;;;;; -1D681;MATHEMATICAL MONOSPACE CAPITAL R;Lu;0;L; 0052;;;;N;;;;; -1D682;MATHEMATICAL MONOSPACE CAPITAL S;Lu;0;L; 0053;;;;N;;;;; -1D683;MATHEMATICAL MONOSPACE CAPITAL T;Lu;0;L; 0054;;;;N;;;;; -1D684;MATHEMATICAL MONOSPACE CAPITAL U;Lu;0;L; 0055;;;;N;;;;; -1D685;MATHEMATICAL MONOSPACE CAPITAL V;Lu;0;L; 0056;;;;N;;;;; -1D686;MATHEMATICAL MONOSPACE CAPITAL W;Lu;0;L; 0057;;;;N;;;;; -1D687;MATHEMATICAL MONOSPACE CAPITAL X;Lu;0;L; 0058;;;;N;;;;; -1D688;MATHEMATICAL MONOSPACE CAPITAL Y;Lu;0;L; 0059;;;;N;;;;; -1D689;MATHEMATICAL MONOSPACE CAPITAL Z;Lu;0;L; 005A;;;;N;;;;; -1D68A;MATHEMATICAL MONOSPACE SMALL A;Ll;0;L; 0061;;;;N;;;;; -1D68B;MATHEMATICAL MONOSPACE SMALL B;Ll;0;L; 0062;;;;N;;;;; -1D68C;MATHEMATICAL MONOSPACE SMALL C;Ll;0;L; 0063;;;;N;;;;; -1D68D;MATHEMATICAL MONOSPACE SMALL D;Ll;0;L; 0064;;;;N;;;;; -1D68E;MATHEMATICAL MONOSPACE SMALL E;Ll;0;L; 0065;;;;N;;;;; -1D68F;MATHEMATICAL MONOSPACE SMALL F;Ll;0;L; 0066;;;;N;;;;; -1D690;MATHEMATICAL MONOSPACE SMALL G;Ll;0;L; 0067;;;;N;;;;; -1D691;MATHEMATICAL MONOSPACE SMALL H;Ll;0;L; 0068;;;;N;;;;; -1D692;MATHEMATICAL MONOSPACE SMALL I;Ll;0;L; 0069;;;;N;;;;; -1D693;MATHEMATICAL MONOSPACE SMALL J;Ll;0;L; 006A;;;;N;;;;; -1D694;MATHEMATICAL MONOSPACE SMALL K;Ll;0;L; 006B;;;;N;;;;; -1D695;MATHEMATICAL MONOSPACE SMALL L;Ll;0;L; 006C;;;;N;;;;; -1D696;MATHEMATICAL MONOSPACE SMALL M;Ll;0;L; 006D;;;;N;;;;; -1D697;MATHEMATICAL MONOSPACE SMALL N;Ll;0;L; 006E;;;;N;;;;; -1D698;MATHEMATICAL MONOSPACE SMALL O;Ll;0;L; 006F;;;;N;;;;; -1D699;MATHEMATICAL MONOSPACE SMALL P;Ll;0;L; 0070;;;;N;;;;; -1D69A;MATHEMATICAL MONOSPACE SMALL Q;Ll;0;L; 0071;;;;N;;;;; -1D69B;MATHEMATICAL MONOSPACE SMALL R;Ll;0;L; 0072;;;;N;;;;; -1D69C;MATHEMATICAL MONOSPACE SMALL S;Ll;0;L; 0073;;;;N;;;;; -1D69D;MATHEMATICAL MONOSPACE SMALL T;Ll;0;L; 0074;;;;N;;;;; -1D69E;MATHEMATICAL MONOSPACE SMALL U;Ll;0;L; 0075;;;;N;;;;; -1D69F;MATHEMATICAL MONOSPACE SMALL V;Ll;0;L; 0076;;;;N;;;;; -1D6A0;MATHEMATICAL MONOSPACE SMALL W;Ll;0;L; 0077;;;;N;;;;; -1D6A1;MATHEMATICAL MONOSPACE SMALL X;Ll;0;L; 0078;;;;N;;;;; -1D6A2;MATHEMATICAL MONOSPACE SMALL Y;Ll;0;L; 0079;;;;N;;;;; -1D6A3;MATHEMATICAL MONOSPACE SMALL Z;Ll;0;L; 007A;;;;N;;;;; -1D6A4;MATHEMATICAL ITALIC SMALL DOTLESS I;Ll;0;L; 0131;;;;N;;;;; -1D6A5;MATHEMATICAL ITALIC SMALL DOTLESS J;Ll;0;L; 0237;;;;N;;;;; -1D6A8;MATHEMATICAL BOLD CAPITAL ALPHA;Lu;0;L; 0391;;;;N;;;;; -1D6A9;MATHEMATICAL BOLD CAPITAL BETA;Lu;0;L; 0392;;;;N;;;;; -1D6AA;MATHEMATICAL BOLD CAPITAL GAMMA;Lu;0;L; 0393;;;;N;;;;; -1D6AB;MATHEMATICAL BOLD CAPITAL DELTA;Lu;0;L; 0394;;;;N;;;;; -1D6AC;MATHEMATICAL BOLD CAPITAL EPSILON;Lu;0;L; 0395;;;;N;;;;; -1D6AD;MATHEMATICAL BOLD CAPITAL ZETA;Lu;0;L; 0396;;;;N;;;;; -1D6AE;MATHEMATICAL BOLD CAPITAL ETA;Lu;0;L; 0397;;;;N;;;;; -1D6AF;MATHEMATICAL BOLD CAPITAL THETA;Lu;0;L; 0398;;;;N;;;;; -1D6B0;MATHEMATICAL BOLD CAPITAL IOTA;Lu;0;L; 0399;;;;N;;;;; -1D6B1;MATHEMATICAL BOLD CAPITAL KAPPA;Lu;0;L; 039A;;;;N;;;;; -1D6B2;MATHEMATICAL BOLD CAPITAL LAMDA;Lu;0;L; 039B;;;;N;;;;; -1D6B3;MATHEMATICAL BOLD CAPITAL MU;Lu;0;L; 039C;;;;N;;;;; -1D6B4;MATHEMATICAL BOLD CAPITAL NU;Lu;0;L; 039D;;;;N;;;;; -1D6B5;MATHEMATICAL BOLD CAPITAL XI;Lu;0;L; 039E;;;;N;;;;; -1D6B6;MATHEMATICAL BOLD CAPITAL OMICRON;Lu;0;L; 039F;;;;N;;;;; -1D6B7;MATHEMATICAL BOLD CAPITAL PI;Lu;0;L; 03A0;;;;N;;;;; -1D6B8;MATHEMATICAL BOLD CAPITAL RHO;Lu;0;L; 03A1;;;;N;;;;; -1D6B9;MATHEMATICAL BOLD CAPITAL THETA SYMBOL;Lu;0;L; 03F4;;;;N;;;;; -1D6BA;MATHEMATICAL BOLD CAPITAL SIGMA;Lu;0;L; 03A3;;;;N;;;;; -1D6BB;MATHEMATICAL BOLD CAPITAL TAU;Lu;0;L; 03A4;;;;N;;;;; -1D6BC;MATHEMATICAL BOLD CAPITAL UPSILON;Lu;0;L; 03A5;;;;N;;;;; -1D6BD;MATHEMATICAL BOLD CAPITAL PHI;Lu;0;L; 03A6;;;;N;;;;; -1D6BE;MATHEMATICAL BOLD CAPITAL CHI;Lu;0;L; 03A7;;;;N;;;;; -1D6BF;MATHEMATICAL BOLD CAPITAL PSI;Lu;0;L; 03A8;;;;N;;;;; -1D6C0;MATHEMATICAL BOLD CAPITAL OMEGA;Lu;0;L; 03A9;;;;N;;;;; -1D6C1;MATHEMATICAL BOLD NABLA;Sm;0;L; 2207;;;;N;;;;; -1D6C2;MATHEMATICAL BOLD SMALL ALPHA;Ll;0;L; 03B1;;;;N;;;;; -1D6C3;MATHEMATICAL BOLD SMALL BETA;Ll;0;L; 03B2;;;;N;;;;; -1D6C4;MATHEMATICAL BOLD SMALL GAMMA;Ll;0;L; 03B3;;;;N;;;;; -1D6C5;MATHEMATICAL BOLD SMALL DELTA;Ll;0;L; 03B4;;;;N;;;;; -1D6C6;MATHEMATICAL BOLD SMALL EPSILON;Ll;0;L; 03B5;;;;N;;;;; -1D6C7;MATHEMATICAL BOLD SMALL ZETA;Ll;0;L; 03B6;;;;N;;;;; -1D6C8;MATHEMATICAL BOLD SMALL ETA;Ll;0;L; 03B7;;;;N;;;;; -1D6C9;MATHEMATICAL BOLD SMALL THETA;Ll;0;L; 03B8;;;;N;;;;; -1D6CA;MATHEMATICAL BOLD SMALL IOTA;Ll;0;L; 03B9;;;;N;;;;; -1D6CB;MATHEMATICAL BOLD SMALL KAPPA;Ll;0;L; 03BA;;;;N;;;;; -1D6CC;MATHEMATICAL BOLD SMALL LAMDA;Ll;0;L; 03BB;;;;N;;;;; -1D6CD;MATHEMATICAL BOLD SMALL MU;Ll;0;L; 03BC;;;;N;;;;; -1D6CE;MATHEMATICAL BOLD SMALL NU;Ll;0;L; 03BD;;;;N;;;;; -1D6CF;MATHEMATICAL BOLD SMALL XI;Ll;0;L; 03BE;;;;N;;;;; -1D6D0;MATHEMATICAL BOLD SMALL OMICRON;Ll;0;L; 03BF;;;;N;;;;; -1D6D1;MATHEMATICAL BOLD SMALL PI;Ll;0;L; 03C0;;;;N;;;;; -1D6D2;MATHEMATICAL BOLD SMALL RHO;Ll;0;L; 03C1;;;;N;;;;; -1D6D3;MATHEMATICAL BOLD SMALL FINAL SIGMA;Ll;0;L; 03C2;;;;N;;;;; -1D6D4;MATHEMATICAL BOLD SMALL SIGMA;Ll;0;L; 03C3;;;;N;;;;; -1D6D5;MATHEMATICAL BOLD SMALL TAU;Ll;0;L; 03C4;;;;N;;;;; -1D6D6;MATHEMATICAL BOLD SMALL UPSILON;Ll;0;L; 03C5;;;;N;;;;; -1D6D7;MATHEMATICAL BOLD SMALL PHI;Ll;0;L; 03C6;;;;N;;;;; -1D6D8;MATHEMATICAL BOLD SMALL CHI;Ll;0;L; 03C7;;;;N;;;;; -1D6D9;MATHEMATICAL BOLD SMALL PSI;Ll;0;L; 03C8;;;;N;;;;; -1D6DA;MATHEMATICAL BOLD SMALL OMEGA;Ll;0;L; 03C9;;;;N;;;;; -1D6DB;MATHEMATICAL BOLD PARTIAL DIFFERENTIAL;Sm;0;ON; 2202;;;;Y;;;;; -1D6DC;MATHEMATICAL BOLD EPSILON SYMBOL;Ll;0;L; 03F5;;;;N;;;;; -1D6DD;MATHEMATICAL BOLD THETA SYMBOL;Ll;0;L; 03D1;;;;N;;;;; -1D6DE;MATHEMATICAL BOLD KAPPA SYMBOL;Ll;0;L; 03F0;;;;N;;;;; -1D6DF;MATHEMATICAL BOLD PHI SYMBOL;Ll;0;L; 03D5;;;;N;;;;; -1D6E0;MATHEMATICAL BOLD RHO SYMBOL;Ll;0;L; 03F1;;;;N;;;;; -1D6E1;MATHEMATICAL BOLD PI SYMBOL;Ll;0;L; 03D6;;;;N;;;;; -1D6E2;MATHEMATICAL ITALIC CAPITAL ALPHA;Lu;0;L; 0391;;;;N;;;;; -1D6E3;MATHEMATICAL ITALIC CAPITAL BETA;Lu;0;L; 0392;;;;N;;;;; -1D6E4;MATHEMATICAL ITALIC CAPITAL GAMMA;Lu;0;L; 0393;;;;N;;;;; -1D6E5;MATHEMATICAL ITALIC CAPITAL DELTA;Lu;0;L; 0394;;;;N;;;;; -1D6E6;MATHEMATICAL ITALIC CAPITAL EPSILON;Lu;0;L; 0395;;;;N;;;;; -1D6E7;MATHEMATICAL ITALIC CAPITAL ZETA;Lu;0;L; 0396;;;;N;;;;; -1D6E8;MATHEMATICAL ITALIC CAPITAL ETA;Lu;0;L; 0397;;;;N;;;;; -1D6E9;MATHEMATICAL ITALIC CAPITAL THETA;Lu;0;L; 0398;;;;N;;;;; -1D6EA;MATHEMATICAL ITALIC CAPITAL IOTA;Lu;0;L; 0399;;;;N;;;;; -1D6EB;MATHEMATICAL ITALIC CAPITAL KAPPA;Lu;0;L; 039A;;;;N;;;;; -1D6EC;MATHEMATICAL ITALIC CAPITAL LAMDA;Lu;0;L; 039B;;;;N;;;;; -1D6ED;MATHEMATICAL ITALIC CAPITAL MU;Lu;0;L; 039C;;;;N;;;;; -1D6EE;MATHEMATICAL ITALIC CAPITAL NU;Lu;0;L; 039D;;;;N;;;;; -1D6EF;MATHEMATICAL ITALIC CAPITAL XI;Lu;0;L; 039E;;;;N;;;;; -1D6F0;MATHEMATICAL ITALIC CAPITAL OMICRON;Lu;0;L; 039F;;;;N;;;;; -1D6F1;MATHEMATICAL ITALIC CAPITAL PI;Lu;0;L; 03A0;;;;N;;;;; -1D6F2;MATHEMATICAL ITALIC CAPITAL RHO;Lu;0;L; 03A1;;;;N;;;;; -1D6F3;MATHEMATICAL ITALIC CAPITAL THETA SYMBOL;Lu;0;L; 03F4;;;;N;;;;; -1D6F4;MATHEMATICAL ITALIC CAPITAL SIGMA;Lu;0;L; 03A3;;;;N;;;;; -1D6F5;MATHEMATICAL ITALIC CAPITAL TAU;Lu;0;L; 03A4;;;;N;;;;; -1D6F6;MATHEMATICAL ITALIC CAPITAL UPSILON;Lu;0;L; 03A5;;;;N;;;;; -1D6F7;MATHEMATICAL ITALIC CAPITAL PHI;Lu;0;L; 03A6;;;;N;;;;; -1D6F8;MATHEMATICAL ITALIC CAPITAL CHI;Lu;0;L; 03A7;;;;N;;;;; -1D6F9;MATHEMATICAL ITALIC CAPITAL PSI;Lu;0;L; 03A8;;;;N;;;;; -1D6FA;MATHEMATICAL ITALIC CAPITAL OMEGA;Lu;0;L; 03A9;;;;N;;;;; -1D6FB;MATHEMATICAL ITALIC NABLA;Sm;0;L; 2207;;;;N;;;;; -1D6FC;MATHEMATICAL ITALIC SMALL ALPHA;Ll;0;L; 03B1;;;;N;;;;; -1D6FD;MATHEMATICAL ITALIC SMALL BETA;Ll;0;L; 03B2;;;;N;;;;; -1D6FE;MATHEMATICAL ITALIC SMALL GAMMA;Ll;0;L; 03B3;;;;N;;;;; -1D6FF;MATHEMATICAL ITALIC SMALL DELTA;Ll;0;L; 03B4;;;;N;;;;; -1D700;MATHEMATICAL ITALIC SMALL EPSILON;Ll;0;L; 03B5;;;;N;;;;; -1D701;MATHEMATICAL ITALIC SMALL ZETA;Ll;0;L; 03B6;;;;N;;;;; -1D702;MATHEMATICAL ITALIC SMALL ETA;Ll;0;L; 03B7;;;;N;;;;; -1D703;MATHEMATICAL ITALIC SMALL THETA;Ll;0;L; 03B8;;;;N;;;;; -1D704;MATHEMATICAL ITALIC SMALL IOTA;Ll;0;L; 03B9;;;;N;;;;; -1D705;MATHEMATICAL ITALIC SMALL KAPPA;Ll;0;L; 03BA;;;;N;;;;; -1D706;MATHEMATICAL ITALIC SMALL LAMDA;Ll;0;L; 03BB;;;;N;;;;; -1D707;MATHEMATICAL ITALIC SMALL MU;Ll;0;L; 03BC;;;;N;;;;; -1D708;MATHEMATICAL ITALIC SMALL NU;Ll;0;L; 03BD;;;;N;;;;; -1D709;MATHEMATICAL ITALIC SMALL XI;Ll;0;L; 03BE;;;;N;;;;; -1D70A;MATHEMATICAL ITALIC SMALL OMICRON;Ll;0;L; 03BF;;;;N;;;;; -1D70B;MATHEMATICAL ITALIC SMALL PI;Ll;0;L; 03C0;;;;N;;;;; -1D70C;MATHEMATICAL ITALIC SMALL RHO;Ll;0;L; 03C1;;;;N;;;;; -1D70D;MATHEMATICAL ITALIC SMALL FINAL SIGMA;Ll;0;L; 03C2;;;;N;;;;; -1D70E;MATHEMATICAL ITALIC SMALL SIGMA;Ll;0;L; 03C3;;;;N;;;;; -1D70F;MATHEMATICAL ITALIC SMALL TAU;Ll;0;L; 03C4;;;;N;;;;; -1D710;MATHEMATICAL ITALIC SMALL UPSILON;Ll;0;L; 03C5;;;;N;;;;; -1D711;MATHEMATICAL ITALIC SMALL PHI;Ll;0;L; 03C6;;;;N;;;;; -1D712;MATHEMATICAL ITALIC SMALL CHI;Ll;0;L; 03C7;;;;N;;;;; -1D713;MATHEMATICAL ITALIC SMALL PSI;Ll;0;L; 03C8;;;;N;;;;; -1D714;MATHEMATICAL ITALIC SMALL OMEGA;Ll;0;L; 03C9;;;;N;;;;; -1D715;MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL;Sm;0;ON; 2202;;;;Y;;;;; -1D716;MATHEMATICAL ITALIC EPSILON SYMBOL;Ll;0;L; 03F5;;;;N;;;;; -1D717;MATHEMATICAL ITALIC THETA SYMBOL;Ll;0;L; 03D1;;;;N;;;;; -1D718;MATHEMATICAL ITALIC KAPPA SYMBOL;Ll;0;L; 03F0;;;;N;;;;; -1D719;MATHEMATICAL ITALIC PHI SYMBOL;Ll;0;L; 03D5;;;;N;;;;; -1D71A;MATHEMATICAL ITALIC RHO SYMBOL;Ll;0;L; 03F1;;;;N;;;;; -1D71B;MATHEMATICAL ITALIC PI SYMBOL;Ll;0;L; 03D6;;;;N;;;;; -1D71C;MATHEMATICAL BOLD ITALIC CAPITAL ALPHA;Lu;0;L; 0391;;;;N;;;;; -1D71D;MATHEMATICAL BOLD ITALIC CAPITAL BETA;Lu;0;L; 0392;;;;N;;;;; -1D71E;MATHEMATICAL BOLD ITALIC CAPITAL GAMMA;Lu;0;L; 0393;;;;N;;;;; -1D71F;MATHEMATICAL BOLD ITALIC CAPITAL DELTA;Lu;0;L; 0394;;;;N;;;;; -1D720;MATHEMATICAL BOLD ITALIC CAPITAL EPSILON;Lu;0;L; 0395;;;;N;;;;; -1D721;MATHEMATICAL BOLD ITALIC CAPITAL ZETA;Lu;0;L; 0396;;;;N;;;;; -1D722;MATHEMATICAL BOLD ITALIC CAPITAL ETA;Lu;0;L; 0397;;;;N;;;;; -1D723;MATHEMATICAL BOLD ITALIC CAPITAL THETA;Lu;0;L; 0398;;;;N;;;;; -1D724;MATHEMATICAL BOLD ITALIC CAPITAL IOTA;Lu;0;L; 0399;;;;N;;;;; -1D725;MATHEMATICAL BOLD ITALIC CAPITAL KAPPA;Lu;0;L; 039A;;;;N;;;;; -1D726;MATHEMATICAL BOLD ITALIC CAPITAL LAMDA;Lu;0;L; 039B;;;;N;;;;; -1D727;MATHEMATICAL BOLD ITALIC CAPITAL MU;Lu;0;L; 039C;;;;N;;;;; -1D728;MATHEMATICAL BOLD ITALIC CAPITAL NU;Lu;0;L; 039D;;;;N;;;;; -1D729;MATHEMATICAL BOLD ITALIC CAPITAL XI;Lu;0;L; 039E;;;;N;;;;; -1D72A;MATHEMATICAL BOLD ITALIC CAPITAL OMICRON;Lu;0;L; 039F;;;;N;;;;; -1D72B;MATHEMATICAL BOLD ITALIC CAPITAL PI;Lu;0;L; 03A0;;;;N;;;;; -1D72C;MATHEMATICAL BOLD ITALIC CAPITAL RHO;Lu;0;L; 03A1;;;;N;;;;; -1D72D;MATHEMATICAL BOLD ITALIC CAPITAL THETA SYMBOL;Lu;0;L; 03F4;;;;N;;;;; -1D72E;MATHEMATICAL BOLD ITALIC CAPITAL SIGMA;Lu;0;L; 03A3;;;;N;;;;; -1D72F;MATHEMATICAL BOLD ITALIC CAPITAL TAU;Lu;0;L; 03A4;;;;N;;;;; -1D730;MATHEMATICAL BOLD ITALIC CAPITAL UPSILON;Lu;0;L; 03A5;;;;N;;;;; -1D731;MATHEMATICAL BOLD ITALIC CAPITAL PHI;Lu;0;L; 03A6;;;;N;;;;; -1D732;MATHEMATICAL BOLD ITALIC CAPITAL CHI;Lu;0;L; 03A7;;;;N;;;;; -1D733;MATHEMATICAL BOLD ITALIC CAPITAL PSI;Lu;0;L; 03A8;;;;N;;;;; -1D734;MATHEMATICAL BOLD ITALIC CAPITAL OMEGA;Lu;0;L; 03A9;;;;N;;;;; -1D735;MATHEMATICAL BOLD ITALIC NABLA;Sm;0;L; 2207;;;;N;;;;; -1D736;MATHEMATICAL BOLD ITALIC SMALL ALPHA;Ll;0;L; 03B1;;;;N;;;;; -1D737;MATHEMATICAL BOLD ITALIC SMALL BETA;Ll;0;L; 03B2;;;;N;;;;; -1D738;MATHEMATICAL BOLD ITALIC SMALL GAMMA;Ll;0;L; 03B3;;;;N;;;;; -1D739;MATHEMATICAL BOLD ITALIC SMALL DELTA;Ll;0;L; 03B4;;;;N;;;;; -1D73A;MATHEMATICAL BOLD ITALIC SMALL EPSILON;Ll;0;L; 03B5;;;;N;;;;; -1D73B;MATHEMATICAL BOLD ITALIC SMALL ZETA;Ll;0;L; 03B6;;;;N;;;;; -1D73C;MATHEMATICAL BOLD ITALIC SMALL ETA;Ll;0;L; 03B7;;;;N;;;;; -1D73D;MATHEMATICAL BOLD ITALIC SMALL THETA;Ll;0;L; 03B8;;;;N;;;;; -1D73E;MATHEMATICAL BOLD ITALIC SMALL IOTA;Ll;0;L; 03B9;;;;N;;;;; -1D73F;MATHEMATICAL BOLD ITALIC SMALL KAPPA;Ll;0;L; 03BA;;;;N;;;;; -1D740;MATHEMATICAL BOLD ITALIC SMALL LAMDA;Ll;0;L; 03BB;;;;N;;;;; -1D741;MATHEMATICAL BOLD ITALIC SMALL MU;Ll;0;L; 03BC;;;;N;;;;; -1D742;MATHEMATICAL BOLD ITALIC SMALL NU;Ll;0;L; 03BD;;;;N;;;;; -1D743;MATHEMATICAL BOLD ITALIC SMALL XI;Ll;0;L; 03BE;;;;N;;;;; -1D744;MATHEMATICAL BOLD ITALIC SMALL OMICRON;Ll;0;L; 03BF;;;;N;;;;; -1D745;MATHEMATICAL BOLD ITALIC SMALL PI;Ll;0;L; 03C0;;;;N;;;;; -1D746;MATHEMATICAL BOLD ITALIC SMALL RHO;Ll;0;L; 03C1;;;;N;;;;; -1D747;MATHEMATICAL BOLD ITALIC SMALL FINAL SIGMA;Ll;0;L; 03C2;;;;N;;;;; -1D748;MATHEMATICAL BOLD ITALIC SMALL SIGMA;Ll;0;L; 03C3;;;;N;;;;; -1D749;MATHEMATICAL BOLD ITALIC SMALL TAU;Ll;0;L; 03C4;;;;N;;;;; -1D74A;MATHEMATICAL BOLD ITALIC SMALL UPSILON;Ll;0;L; 03C5;;;;N;;;;; -1D74B;MATHEMATICAL BOLD ITALIC SMALL PHI;Ll;0;L; 03C6;;;;N;;;;; -1D74C;MATHEMATICAL BOLD ITALIC SMALL CHI;Ll;0;L; 03C7;;;;N;;;;; -1D74D;MATHEMATICAL BOLD ITALIC SMALL PSI;Ll;0;L; 03C8;;;;N;;;;; -1D74E;MATHEMATICAL BOLD ITALIC SMALL OMEGA;Ll;0;L; 03C9;;;;N;;;;; -1D74F;MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL;Sm;0;ON; 2202;;;;Y;;;;; -1D750;MATHEMATICAL BOLD ITALIC EPSILON SYMBOL;Ll;0;L; 03F5;;;;N;;;;; -1D751;MATHEMATICAL BOLD ITALIC THETA SYMBOL;Ll;0;L; 03D1;;;;N;;;;; -1D752;MATHEMATICAL BOLD ITALIC KAPPA SYMBOL;Ll;0;L; 03F0;;;;N;;;;; -1D753;MATHEMATICAL BOLD ITALIC PHI SYMBOL;Ll;0;L; 03D5;;;;N;;;;; -1D754;MATHEMATICAL BOLD ITALIC RHO SYMBOL;Ll;0;L; 03F1;;;;N;;;;; -1D755;MATHEMATICAL BOLD ITALIC PI SYMBOL;Ll;0;L; 03D6;;;;N;;;;; -1D756;MATHEMATICAL SANS-SERIF BOLD CAPITAL ALPHA;Lu;0;L; 0391;;;;N;;;;; -1D757;MATHEMATICAL SANS-SERIF BOLD CAPITAL BETA;Lu;0;L; 0392;;;;N;;;;; -1D758;MATHEMATICAL SANS-SERIF BOLD CAPITAL GAMMA;Lu;0;L; 0393;;;;N;;;;; -1D759;MATHEMATICAL SANS-SERIF BOLD CAPITAL DELTA;Lu;0;L; 0394;;;;N;;;;; -1D75A;MATHEMATICAL SANS-SERIF BOLD CAPITAL EPSILON;Lu;0;L; 0395;;;;N;;;;; -1D75B;MATHEMATICAL SANS-SERIF BOLD CAPITAL ZETA;Lu;0;L; 0396;;;;N;;;;; -1D75C;MATHEMATICAL SANS-SERIF BOLD CAPITAL ETA;Lu;0;L; 0397;;;;N;;;;; -1D75D;MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA;Lu;0;L; 0398;;;;N;;;;; -1D75E;MATHEMATICAL SANS-SERIF BOLD CAPITAL IOTA;Lu;0;L; 0399;;;;N;;;;; -1D75F;MATHEMATICAL SANS-SERIF BOLD CAPITAL KAPPA;Lu;0;L; 039A;;;;N;;;;; -1D760;MATHEMATICAL SANS-SERIF BOLD CAPITAL LAMDA;Lu;0;L; 039B;;;;N;;;;; -1D761;MATHEMATICAL SANS-SERIF BOLD CAPITAL MU;Lu;0;L; 039C;;;;N;;;;; -1D762;MATHEMATICAL SANS-SERIF BOLD CAPITAL NU;Lu;0;L; 039D;;;;N;;;;; -1D763;MATHEMATICAL SANS-SERIF BOLD CAPITAL XI;Lu;0;L; 039E;;;;N;;;;; -1D764;MATHEMATICAL SANS-SERIF BOLD CAPITAL OMICRON;Lu;0;L; 039F;;;;N;;;;; -1D765;MATHEMATICAL SANS-SERIF BOLD CAPITAL PI;Lu;0;L; 03A0;;;;N;;;;; -1D766;MATHEMATICAL SANS-SERIF BOLD CAPITAL RHO;Lu;0;L; 03A1;;;;N;;;;; -1D767;MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA SYMBOL;Lu;0;L; 03F4;;;;N;;;;; -1D768;MATHEMATICAL SANS-SERIF BOLD CAPITAL SIGMA;Lu;0;L; 03A3;;;;N;;;;; -1D769;MATHEMATICAL SANS-SERIF BOLD CAPITAL TAU;Lu;0;L; 03A4;;;;N;;;;; -1D76A;MATHEMATICAL SANS-SERIF BOLD CAPITAL UPSILON;Lu;0;L; 03A5;;;;N;;;;; -1D76B;MATHEMATICAL SANS-SERIF BOLD CAPITAL PHI;Lu;0;L; 03A6;;;;N;;;;; -1D76C;MATHEMATICAL SANS-SERIF BOLD CAPITAL CHI;Lu;0;L; 03A7;;;;N;;;;; -1D76D;MATHEMATICAL SANS-SERIF BOLD CAPITAL PSI;Lu;0;L; 03A8;;;;N;;;;; -1D76E;MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA;Lu;0;L; 03A9;;;;N;;;;; -1D76F;MATHEMATICAL SANS-SERIF BOLD NABLA;Sm;0;L; 2207;;;;N;;;;; -1D770;MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA;Ll;0;L; 03B1;;;;N;;;;; -1D771;MATHEMATICAL SANS-SERIF BOLD SMALL BETA;Ll;0;L; 03B2;;;;N;;;;; -1D772;MATHEMATICAL SANS-SERIF BOLD SMALL GAMMA;Ll;0;L; 03B3;;;;N;;;;; -1D773;MATHEMATICAL SANS-SERIF BOLD SMALL DELTA;Ll;0;L; 03B4;;;;N;;;;; -1D774;MATHEMATICAL SANS-SERIF BOLD SMALL EPSILON;Ll;0;L; 03B5;;;;N;;;;; -1D775;MATHEMATICAL SANS-SERIF BOLD SMALL ZETA;Ll;0;L; 03B6;;;;N;;;;; -1D776;MATHEMATICAL SANS-SERIF BOLD SMALL ETA;Ll;0;L; 03B7;;;;N;;;;; -1D777;MATHEMATICAL SANS-SERIF BOLD SMALL THETA;Ll;0;L; 03B8;;;;N;;;;; -1D778;MATHEMATICAL SANS-SERIF BOLD SMALL IOTA;Ll;0;L; 03B9;;;;N;;;;; -1D779;MATHEMATICAL SANS-SERIF BOLD SMALL KAPPA;Ll;0;L; 03BA;;;;N;;;;; -1D77A;MATHEMATICAL SANS-SERIF BOLD SMALL LAMDA;Ll;0;L; 03BB;;;;N;;;;; -1D77B;MATHEMATICAL SANS-SERIF BOLD SMALL MU;Ll;0;L; 03BC;;;;N;;;;; -1D77C;MATHEMATICAL SANS-SERIF BOLD SMALL NU;Ll;0;L; 03BD;;;;N;;;;; -1D77D;MATHEMATICAL SANS-SERIF BOLD SMALL XI;Ll;0;L; 03BE;;;;N;;;;; -1D77E;MATHEMATICAL SANS-SERIF BOLD SMALL OMICRON;Ll;0;L; 03BF;;;;N;;;;; -1D77F;MATHEMATICAL SANS-SERIF BOLD SMALL PI;Ll;0;L; 03C0;;;;N;;;;; -1D780;MATHEMATICAL SANS-SERIF BOLD SMALL RHO;Ll;0;L; 03C1;;;;N;;;;; -1D781;MATHEMATICAL SANS-SERIF BOLD SMALL FINAL SIGMA;Ll;0;L; 03C2;;;;N;;;;; -1D782;MATHEMATICAL SANS-SERIF BOLD SMALL SIGMA;Ll;0;L; 03C3;;;;N;;;;; -1D783;MATHEMATICAL SANS-SERIF BOLD SMALL TAU;Ll;0;L; 03C4;;;;N;;;;; -1D784;MATHEMATICAL SANS-SERIF BOLD SMALL UPSILON;Ll;0;L; 03C5;;;;N;;;;; -1D785;MATHEMATICAL SANS-SERIF BOLD SMALL PHI;Ll;0;L; 03C6;;;;N;;;;; -1D786;MATHEMATICAL SANS-SERIF BOLD SMALL CHI;Ll;0;L; 03C7;;;;N;;;;; -1D787;MATHEMATICAL SANS-SERIF BOLD SMALL PSI;Ll;0;L; 03C8;;;;N;;;;; -1D788;MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA;Ll;0;L; 03C9;;;;N;;;;; -1D789;MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL;Sm;0;ON; 2202;;;;Y;;;;; -1D78A;MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL;Ll;0;L; 03F5;;;;N;;;;; -1D78B;MATHEMATICAL SANS-SERIF BOLD THETA SYMBOL;Ll;0;L; 03D1;;;;N;;;;; -1D78C;MATHEMATICAL SANS-SERIF BOLD KAPPA SYMBOL;Ll;0;L; 03F0;;;;N;;;;; -1D78D;MATHEMATICAL SANS-SERIF BOLD PHI SYMBOL;Ll;0;L; 03D5;;;;N;;;;; -1D78E;MATHEMATICAL SANS-SERIF BOLD RHO SYMBOL;Ll;0;L; 03F1;;;;N;;;;; -1D78F;MATHEMATICAL SANS-SERIF BOLD PI SYMBOL;Ll;0;L; 03D6;;;;N;;;;; -1D790;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ALPHA;Lu;0;L; 0391;;;;N;;;;; -1D791;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL BETA;Lu;0;L; 0392;;;;N;;;;; -1D792;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL GAMMA;Lu;0;L; 0393;;;;N;;;;; -1D793;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL DELTA;Lu;0;L; 0394;;;;N;;;;; -1D794;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL EPSILON;Lu;0;L; 0395;;;;N;;;;; -1D795;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ZETA;Lu;0;L; 0396;;;;N;;;;; -1D796;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ETA;Lu;0;L; 0397;;;;N;;;;; -1D797;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA;Lu;0;L; 0398;;;;N;;;;; -1D798;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL IOTA;Lu;0;L; 0399;;;;N;;;;; -1D799;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL KAPPA;Lu;0;L; 039A;;;;N;;;;; -1D79A;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL LAMDA;Lu;0;L; 039B;;;;N;;;;; -1D79B;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL MU;Lu;0;L; 039C;;;;N;;;;; -1D79C;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL NU;Lu;0;L; 039D;;;;N;;;;; -1D79D;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL XI;Lu;0;L; 039E;;;;N;;;;; -1D79E;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMICRON;Lu;0;L; 039F;;;;N;;;;; -1D79F;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PI;Lu;0;L; 03A0;;;;N;;;;; -1D7A0;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL RHO;Lu;0;L; 03A1;;;;N;;;;; -1D7A1;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA SYMBOL;Lu;0;L; 03F4;;;;N;;;;; -1D7A2;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL SIGMA;Lu;0;L; 03A3;;;;N;;;;; -1D7A3;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL TAU;Lu;0;L; 03A4;;;;N;;;;; -1D7A4;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL UPSILON;Lu;0;L; 03A5;;;;N;;;;; -1D7A5;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PHI;Lu;0;L; 03A6;;;;N;;;;; -1D7A6;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL CHI;Lu;0;L; 03A7;;;;N;;;;; -1D7A7;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PSI;Lu;0;L; 03A8;;;;N;;;;; -1D7A8;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA;Lu;0;L; 03A9;;;;N;;;;; -1D7A9;MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA;Sm;0;L; 2207;;;;N;;;;; -1D7AA;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA;Ll;0;L; 03B1;;;;N;;;;; -1D7AB;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL BETA;Ll;0;L; 03B2;;;;N;;;;; -1D7AC;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL GAMMA;Ll;0;L; 03B3;;;;N;;;;; -1D7AD;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL DELTA;Ll;0;L; 03B4;;;;N;;;;; -1D7AE;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL EPSILON;Ll;0;L; 03B5;;;;N;;;;; -1D7AF;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ZETA;Ll;0;L; 03B6;;;;N;;;;; -1D7B0;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ETA;Ll;0;L; 03B7;;;;N;;;;; -1D7B1;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL THETA;Ll;0;L; 03B8;;;;N;;;;; -1D7B2;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL IOTA;Ll;0;L; 03B9;;;;N;;;;; -1D7B3;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL KAPPA;Ll;0;L; 03BA;;;;N;;;;; -1D7B4;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL LAMDA;Ll;0;L; 03BB;;;;N;;;;; -1D7B5;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL MU;Ll;0;L; 03BC;;;;N;;;;; -1D7B6;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL NU;Ll;0;L; 03BD;;;;N;;;;; -1D7B7;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL XI;Ll;0;L; 03BE;;;;N;;;;; -1D7B8;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMICRON;Ll;0;L; 03BF;;;;N;;;;; -1D7B9;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PI;Ll;0;L; 03C0;;;;N;;;;; -1D7BA;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL RHO;Ll;0;L; 03C1;;;;N;;;;; -1D7BB;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL FINAL SIGMA;Ll;0;L; 03C2;;;;N;;;;; -1D7BC;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL SIGMA;Ll;0;L; 03C3;;;;N;;;;; -1D7BD;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL TAU;Ll;0;L; 03C4;;;;N;;;;; -1D7BE;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL UPSILON;Ll;0;L; 03C5;;;;N;;;;; -1D7BF;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PHI;Ll;0;L; 03C6;;;;N;;;;; -1D7C0;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL CHI;Ll;0;L; 03C7;;;;N;;;;; -1D7C1;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PSI;Ll;0;L; 03C8;;;;N;;;;; -1D7C2;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA;Ll;0;L; 03C9;;;;N;;;;; -1D7C3;MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL;Sm;0;ON; 2202;;;;Y;;;;; -1D7C4;MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL;Ll;0;L; 03F5;;;;N;;;;; -1D7C5;MATHEMATICAL SANS-SERIF BOLD ITALIC THETA SYMBOL;Ll;0;L; 03D1;;;;N;;;;; -1D7C6;MATHEMATICAL SANS-SERIF BOLD ITALIC KAPPA SYMBOL;Ll;0;L; 03F0;;;;N;;;;; -1D7C7;MATHEMATICAL SANS-SERIF BOLD ITALIC PHI SYMBOL;Ll;0;L; 03D5;;;;N;;;;; -1D7C8;MATHEMATICAL SANS-SERIF BOLD ITALIC RHO SYMBOL;Ll;0;L; 03F1;;;;N;;;;; -1D7C9;MATHEMATICAL SANS-SERIF BOLD ITALIC PI SYMBOL;Ll;0;L; 03D6;;;;N;;;;; -1D7CA;MATHEMATICAL BOLD CAPITAL DIGAMMA;Lu;0;L; 03DC;;;;N;;;;; -1D7CB;MATHEMATICAL BOLD SMALL DIGAMMA;Ll;0;L; 03DD;;;;N;;;;; -1D7CE;MATHEMATICAL BOLD DIGIT ZERO;Nd;0;EN; 0030;0;0;0;N;;;;; -1D7CF;MATHEMATICAL BOLD DIGIT ONE;Nd;0;EN; 0031;1;1;1;N;;;;; -1D7D0;MATHEMATICAL BOLD DIGIT TWO;Nd;0;EN; 0032;2;2;2;N;;;;; -1D7D1;MATHEMATICAL BOLD DIGIT THREE;Nd;0;EN; 0033;3;3;3;N;;;;; -1D7D2;MATHEMATICAL BOLD DIGIT FOUR;Nd;0;EN; 0034;4;4;4;N;;;;; -1D7D3;MATHEMATICAL BOLD DIGIT FIVE;Nd;0;EN; 0035;5;5;5;N;;;;; -1D7D4;MATHEMATICAL BOLD DIGIT SIX;Nd;0;EN; 0036;6;6;6;N;;;;; -1D7D5;MATHEMATICAL BOLD DIGIT SEVEN;Nd;0;EN; 0037;7;7;7;N;;;;; -1D7D6;MATHEMATICAL BOLD DIGIT EIGHT;Nd;0;EN; 0038;8;8;8;N;;;;; -1D7D7;MATHEMATICAL BOLD DIGIT NINE;Nd;0;EN; 0039;9;9;9;N;;;;; -1D7D8;MATHEMATICAL DOUBLE-STRUCK DIGIT ZERO;Nd;0;EN; 0030;0;0;0;N;;;;; -1D7D9;MATHEMATICAL DOUBLE-STRUCK DIGIT ONE;Nd;0;EN; 0031;1;1;1;N;;;;; -1D7DA;MATHEMATICAL DOUBLE-STRUCK DIGIT TWO;Nd;0;EN; 0032;2;2;2;N;;;;; -1D7DB;MATHEMATICAL DOUBLE-STRUCK DIGIT THREE;Nd;0;EN; 0033;3;3;3;N;;;;; -1D7DC;MATHEMATICAL DOUBLE-STRUCK DIGIT FOUR;Nd;0;EN; 0034;4;4;4;N;;;;; -1D7DD;MATHEMATICAL DOUBLE-STRUCK DIGIT FIVE;Nd;0;EN; 0035;5;5;5;N;;;;; -1D7DE;MATHEMATICAL DOUBLE-STRUCK DIGIT SIX;Nd;0;EN; 0036;6;6;6;N;;;;; -1D7DF;MATHEMATICAL DOUBLE-STRUCK DIGIT SEVEN;Nd;0;EN; 0037;7;7;7;N;;;;; -1D7E0;MATHEMATICAL DOUBLE-STRUCK DIGIT EIGHT;Nd;0;EN; 0038;8;8;8;N;;;;; -1D7E1;MATHEMATICAL DOUBLE-STRUCK DIGIT NINE;Nd;0;EN; 0039;9;9;9;N;;;;; -1D7E2;MATHEMATICAL SANS-SERIF DIGIT ZERO;Nd;0;EN; 0030;0;0;0;N;;;;; -1D7E3;MATHEMATICAL SANS-SERIF DIGIT ONE;Nd;0;EN; 0031;1;1;1;N;;;;; -1D7E4;MATHEMATICAL SANS-SERIF DIGIT TWO;Nd;0;EN; 0032;2;2;2;N;;;;; -1D7E5;MATHEMATICAL SANS-SERIF DIGIT THREE;Nd;0;EN; 0033;3;3;3;N;;;;; -1D7E6;MATHEMATICAL SANS-SERIF DIGIT FOUR;Nd;0;EN; 0034;4;4;4;N;;;;; -1D7E7;MATHEMATICAL SANS-SERIF DIGIT FIVE;Nd;0;EN; 0035;5;5;5;N;;;;; -1D7E8;MATHEMATICAL SANS-SERIF DIGIT SIX;Nd;0;EN; 0036;6;6;6;N;;;;; -1D7E9;MATHEMATICAL SANS-SERIF DIGIT SEVEN;Nd;0;EN; 0037;7;7;7;N;;;;; -1D7EA;MATHEMATICAL SANS-SERIF DIGIT EIGHT;Nd;0;EN; 0038;8;8;8;N;;;;; -1D7EB;MATHEMATICAL SANS-SERIF DIGIT NINE;Nd;0;EN; 0039;9;9;9;N;;;;; -1D7EC;MATHEMATICAL SANS-SERIF BOLD DIGIT ZERO;Nd;0;EN; 0030;0;0;0;N;;;;; -1D7ED;MATHEMATICAL SANS-SERIF BOLD DIGIT ONE;Nd;0;EN; 0031;1;1;1;N;;;;; -1D7EE;MATHEMATICAL SANS-SERIF BOLD DIGIT TWO;Nd;0;EN; 0032;2;2;2;N;;;;; -1D7EF;MATHEMATICAL SANS-SERIF BOLD DIGIT THREE;Nd;0;EN; 0033;3;3;3;N;;;;; -1D7F0;MATHEMATICAL SANS-SERIF BOLD DIGIT FOUR;Nd;0;EN; 0034;4;4;4;N;;;;; -1D7F1;MATHEMATICAL SANS-SERIF BOLD DIGIT FIVE;Nd;0;EN; 0035;5;5;5;N;;;;; -1D7F2;MATHEMATICAL SANS-SERIF BOLD DIGIT SIX;Nd;0;EN; 0036;6;6;6;N;;;;; -1D7F3;MATHEMATICAL SANS-SERIF BOLD DIGIT SEVEN;Nd;0;EN; 0037;7;7;7;N;;;;; -1D7F4;MATHEMATICAL SANS-SERIF BOLD DIGIT EIGHT;Nd;0;EN; 0038;8;8;8;N;;;;; -1D7F5;MATHEMATICAL SANS-SERIF BOLD DIGIT NINE;Nd;0;EN; 0039;9;9;9;N;;;;; -1D7F6;MATHEMATICAL MONOSPACE DIGIT ZERO;Nd;0;EN; 0030;0;0;0;N;;;;; -1D7F7;MATHEMATICAL MONOSPACE DIGIT ONE;Nd;0;EN; 0031;1;1;1;N;;;;; -1D7F8;MATHEMATICAL MONOSPACE DIGIT TWO;Nd;0;EN; 0032;2;2;2;N;;;;; -1D7F9;MATHEMATICAL MONOSPACE DIGIT THREE;Nd;0;EN; 0033;3;3;3;N;;;;; -1D7FA;MATHEMATICAL MONOSPACE DIGIT FOUR;Nd;0;EN; 0034;4;4;4;N;;;;; -1D7FB;MATHEMATICAL MONOSPACE DIGIT FIVE;Nd;0;EN; 0035;5;5;5;N;;;;; -1D7FC;MATHEMATICAL MONOSPACE DIGIT SIX;Nd;0;EN; 0036;6;6;6;N;;;;; -1D7FD;MATHEMATICAL MONOSPACE DIGIT SEVEN;Nd;0;EN; 0037;7;7;7;N;;;;; -1D7FE;MATHEMATICAL MONOSPACE DIGIT EIGHT;Nd;0;EN; 0038;8;8;8;N;;;;; -1D7FF;MATHEMATICAL MONOSPACE DIGIT NINE;Nd;0;EN; 0039;9;9;9;N;;;;; -1F000;MAHJONG TILE EAST WIND;So;0;ON;;;;;N;;;;; -1F001;MAHJONG TILE SOUTH WIND;So;0;ON;;;;;N;;;;; -1F002;MAHJONG TILE WEST WIND;So;0;ON;;;;;N;;;;; -1F003;MAHJONG TILE NORTH WIND;So;0;ON;;;;;N;;;;; -1F004;MAHJONG TILE RED DRAGON;So;0;ON;;;;;N;;;;; -1F005;MAHJONG TILE GREEN DRAGON;So;0;ON;;;;;N;;;;; -1F006;MAHJONG TILE WHITE DRAGON;So;0;ON;;;;;N;;;;; -1F007;MAHJONG TILE ONE OF CHARACTERS;So;0;ON;;;;;N;;;;; -1F008;MAHJONG TILE TWO OF CHARACTERS;So;0;ON;;;;;N;;;;; -1F009;MAHJONG TILE THREE OF CHARACTERS;So;0;ON;;;;;N;;;;; -1F00A;MAHJONG TILE FOUR OF CHARACTERS;So;0;ON;;;;;N;;;;; -1F00B;MAHJONG TILE FIVE OF CHARACTERS;So;0;ON;;;;;N;;;;; -1F00C;MAHJONG TILE SIX OF CHARACTERS;So;0;ON;;;;;N;;;;; -1F00D;MAHJONG TILE SEVEN OF CHARACTERS;So;0;ON;;;;;N;;;;; -1F00E;MAHJONG TILE EIGHT OF CHARACTERS;So;0;ON;;;;;N;;;;; -1F00F;MAHJONG TILE NINE OF CHARACTERS;So;0;ON;;;;;N;;;;; -1F010;MAHJONG TILE ONE OF BAMBOOS;So;0;ON;;;;;N;;;;; -1F011;MAHJONG TILE TWO OF BAMBOOS;So;0;ON;;;;;N;;;;; -1F012;MAHJONG TILE THREE OF BAMBOOS;So;0;ON;;;;;N;;;;; -1F013;MAHJONG TILE FOUR OF BAMBOOS;So;0;ON;;;;;N;;;;; -1F014;MAHJONG TILE FIVE OF BAMBOOS;So;0;ON;;;;;N;;;;; -1F015;MAHJONG TILE SIX OF BAMBOOS;So;0;ON;;;;;N;;;;; -1F016;MAHJONG TILE SEVEN OF BAMBOOS;So;0;ON;;;;;N;;;;; -1F017;MAHJONG TILE EIGHT OF BAMBOOS;So;0;ON;;;;;N;;;;; -1F018;MAHJONG TILE NINE OF BAMBOOS;So;0;ON;;;;;N;;;;; -1F019;MAHJONG TILE ONE OF CIRCLES;So;0;ON;;;;;N;;;;; -1F01A;MAHJONG TILE TWO OF CIRCLES;So;0;ON;;;;;N;;;;; -1F01B;MAHJONG TILE THREE OF CIRCLES;So;0;ON;;;;;N;;;;; -1F01C;MAHJONG TILE FOUR OF CIRCLES;So;0;ON;;;;;N;;;;; -1F01D;MAHJONG TILE FIVE OF CIRCLES;So;0;ON;;;;;N;;;;; -1F01E;MAHJONG TILE SIX OF CIRCLES;So;0;ON;;;;;N;;;;; -1F01F;MAHJONG TILE SEVEN OF CIRCLES;So;0;ON;;;;;N;;;;; -1F020;MAHJONG TILE EIGHT OF CIRCLES;So;0;ON;;;;;N;;;;; -1F021;MAHJONG TILE NINE OF CIRCLES;So;0;ON;;;;;N;;;;; -1F022;MAHJONG TILE PLUM;So;0;ON;;;;;N;;;;; -1F023;MAHJONG TILE ORCHID;So;0;ON;;;;;N;;;;; -1F024;MAHJONG TILE BAMBOO;So;0;ON;;;;;N;;;;; -1F025;MAHJONG TILE CHRYSANTHEMUM;So;0;ON;;;;;N;;;;; -1F026;MAHJONG TILE SPRING;So;0;ON;;;;;N;;;;; -1F027;MAHJONG TILE SUMMER;So;0;ON;;;;;N;;;;; -1F028;MAHJONG TILE AUTUMN;So;0;ON;;;;;N;;;;; -1F029;MAHJONG TILE WINTER;So;0;ON;;;;;N;;;;; -1F02A;MAHJONG TILE JOKER;So;0;ON;;;;;N;;;;; -1F02B;MAHJONG TILE BACK;So;0;ON;;;;;N;;;;; -1F030;DOMINO TILE HORIZONTAL BACK;So;0;ON;;;;;N;;;;; -1F031;DOMINO TILE HORIZONTAL-00-00;So;0;ON;;;;;N;;;;; -1F032;DOMINO TILE HORIZONTAL-00-01;So;0;ON;;;;;N;;;;; -1F033;DOMINO TILE HORIZONTAL-00-02;So;0;ON;;;;;N;;;;; -1F034;DOMINO TILE HORIZONTAL-00-03;So;0;ON;;;;;N;;;;; -1F035;DOMINO TILE HORIZONTAL-00-04;So;0;ON;;;;;N;;;;; -1F036;DOMINO TILE HORIZONTAL-00-05;So;0;ON;;;;;N;;;;; -1F037;DOMINO TILE HORIZONTAL-00-06;So;0;ON;;;;;N;;;;; -1F038;DOMINO TILE HORIZONTAL-01-00;So;0;ON;;;;;N;;;;; -1F039;DOMINO TILE HORIZONTAL-01-01;So;0;ON;;;;;N;;;;; -1F03A;DOMINO TILE HORIZONTAL-01-02;So;0;ON;;;;;N;;;;; -1F03B;DOMINO TILE HORIZONTAL-01-03;So;0;ON;;;;;N;;;;; -1F03C;DOMINO TILE HORIZONTAL-01-04;So;0;ON;;;;;N;;;;; -1F03D;DOMINO TILE HORIZONTAL-01-05;So;0;ON;;;;;N;;;;; -1F03E;DOMINO TILE HORIZONTAL-01-06;So;0;ON;;;;;N;;;;; -1F03F;DOMINO TILE HORIZONTAL-02-00;So;0;ON;;;;;N;;;;; -1F040;DOMINO TILE HORIZONTAL-02-01;So;0;ON;;;;;N;;;;; -1F041;DOMINO TILE HORIZONTAL-02-02;So;0;ON;;;;;N;;;;; -1F042;DOMINO TILE HORIZONTAL-02-03;So;0;ON;;;;;N;;;;; -1F043;DOMINO TILE HORIZONTAL-02-04;So;0;ON;;;;;N;;;;; -1F044;DOMINO TILE HORIZONTAL-02-05;So;0;ON;;;;;N;;;;; -1F045;DOMINO TILE HORIZONTAL-02-06;So;0;ON;;;;;N;;;;; -1F046;DOMINO TILE HORIZONTAL-03-00;So;0;ON;;;;;N;;;;; -1F047;DOMINO TILE HORIZONTAL-03-01;So;0;ON;;;;;N;;;;; -1F048;DOMINO TILE HORIZONTAL-03-02;So;0;ON;;;;;N;;;;; -1F049;DOMINO TILE HORIZONTAL-03-03;So;0;ON;;;;;N;;;;; -1F04A;DOMINO TILE HORIZONTAL-03-04;So;0;ON;;;;;N;;;;; -1F04B;DOMINO TILE HORIZONTAL-03-05;So;0;ON;;;;;N;;;;; -1F04C;DOMINO TILE HORIZONTAL-03-06;So;0;ON;;;;;N;;;;; -1F04D;DOMINO TILE HORIZONTAL-04-00;So;0;ON;;;;;N;;;;; -1F04E;DOMINO TILE HORIZONTAL-04-01;So;0;ON;;;;;N;;;;; -1F04F;DOMINO TILE HORIZONTAL-04-02;So;0;ON;;;;;N;;;;; -1F050;DOMINO TILE HORIZONTAL-04-03;So;0;ON;;;;;N;;;;; -1F051;DOMINO TILE HORIZONTAL-04-04;So;0;ON;;;;;N;;;;; -1F052;DOMINO TILE HORIZONTAL-04-05;So;0;ON;;;;;N;;;;; -1F053;DOMINO TILE HORIZONTAL-04-06;So;0;ON;;;;;N;;;;; -1F054;DOMINO TILE HORIZONTAL-05-00;So;0;ON;;;;;N;;;;; -1F055;DOMINO TILE HORIZONTAL-05-01;So;0;ON;;;;;N;;;;; -1F056;DOMINO TILE HORIZONTAL-05-02;So;0;ON;;;;;N;;;;; -1F057;DOMINO TILE HORIZONTAL-05-03;So;0;ON;;;;;N;;;;; -1F058;DOMINO TILE HORIZONTAL-05-04;So;0;ON;;;;;N;;;;; -1F059;DOMINO TILE HORIZONTAL-05-05;So;0;ON;;;;;N;;;;; -1F05A;DOMINO TILE HORIZONTAL-05-06;So;0;ON;;;;;N;;;;; -1F05B;DOMINO TILE HORIZONTAL-06-00;So;0;ON;;;;;N;;;;; -1F05C;DOMINO TILE HORIZONTAL-06-01;So;0;ON;;;;;N;;;;; -1F05D;DOMINO TILE HORIZONTAL-06-02;So;0;ON;;;;;N;;;;; -1F05E;DOMINO TILE HORIZONTAL-06-03;So;0;ON;;;;;N;;;;; -1F05F;DOMINO TILE HORIZONTAL-06-04;So;0;ON;;;;;N;;;;; -1F060;DOMINO TILE HORIZONTAL-06-05;So;0;ON;;;;;N;;;;; -1F061;DOMINO TILE HORIZONTAL-06-06;So;0;ON;;;;;N;;;;; -1F062;DOMINO TILE VERTICAL BACK;So;0;ON;;;;;N;;;;; -1F063;DOMINO TILE VERTICAL-00-00;So;0;ON;;;;;N;;;;; -1F064;DOMINO TILE VERTICAL-00-01;So;0;ON;;;;;N;;;;; -1F065;DOMINO TILE VERTICAL-00-02;So;0;ON;;;;;N;;;;; -1F066;DOMINO TILE VERTICAL-00-03;So;0;ON;;;;;N;;;;; -1F067;DOMINO TILE VERTICAL-00-04;So;0;ON;;;;;N;;;;; -1F068;DOMINO TILE VERTICAL-00-05;So;0;ON;;;;;N;;;;; -1F069;DOMINO TILE VERTICAL-00-06;So;0;ON;;;;;N;;;;; -1F06A;DOMINO TILE VERTICAL-01-00;So;0;ON;;;;;N;;;;; -1F06B;DOMINO TILE VERTICAL-01-01;So;0;ON;;;;;N;;;;; -1F06C;DOMINO TILE VERTICAL-01-02;So;0;ON;;;;;N;;;;; -1F06D;DOMINO TILE VERTICAL-01-03;So;0;ON;;;;;N;;;;; -1F06E;DOMINO TILE VERTICAL-01-04;So;0;ON;;;;;N;;;;; -1F06F;DOMINO TILE VERTICAL-01-05;So;0;ON;;;;;N;;;;; -1F070;DOMINO TILE VERTICAL-01-06;So;0;ON;;;;;N;;;;; -1F071;DOMINO TILE VERTICAL-02-00;So;0;ON;;;;;N;;;;; -1F072;DOMINO TILE VERTICAL-02-01;So;0;ON;;;;;N;;;;; -1F073;DOMINO TILE VERTICAL-02-02;So;0;ON;;;;;N;;;;; -1F074;DOMINO TILE VERTICAL-02-03;So;0;ON;;;;;N;;;;; -1F075;DOMINO TILE VERTICAL-02-04;So;0;ON;;;;;N;;;;; -1F076;DOMINO TILE VERTICAL-02-05;So;0;ON;;;;;N;;;;; -1F077;DOMINO TILE VERTICAL-02-06;So;0;ON;;;;;N;;;;; -1F078;DOMINO TILE VERTICAL-03-00;So;0;ON;;;;;N;;;;; -1F079;DOMINO TILE VERTICAL-03-01;So;0;ON;;;;;N;;;;; -1F07A;DOMINO TILE VERTICAL-03-02;So;0;ON;;;;;N;;;;; -1F07B;DOMINO TILE VERTICAL-03-03;So;0;ON;;;;;N;;;;; -1F07C;DOMINO TILE VERTICAL-03-04;So;0;ON;;;;;N;;;;; -1F07D;DOMINO TILE VERTICAL-03-05;So;0;ON;;;;;N;;;;; -1F07E;DOMINO TILE VERTICAL-03-06;So;0;ON;;;;;N;;;;; -1F07F;DOMINO TILE VERTICAL-04-00;So;0;ON;;;;;N;;;;; -1F080;DOMINO TILE VERTICAL-04-01;So;0;ON;;;;;N;;;;; -1F081;DOMINO TILE VERTICAL-04-02;So;0;ON;;;;;N;;;;; -1F082;DOMINO TILE VERTICAL-04-03;So;0;ON;;;;;N;;;;; -1F083;DOMINO TILE VERTICAL-04-04;So;0;ON;;;;;N;;;;; -1F084;DOMINO TILE VERTICAL-04-05;So;0;ON;;;;;N;;;;; -1F085;DOMINO TILE VERTICAL-04-06;So;0;ON;;;;;N;;;;; -1F086;DOMINO TILE VERTICAL-05-00;So;0;ON;;;;;N;;;;; -1F087;DOMINO TILE VERTICAL-05-01;So;0;ON;;;;;N;;;;; -1F088;DOMINO TILE VERTICAL-05-02;So;0;ON;;;;;N;;;;; -1F089;DOMINO TILE VERTICAL-05-03;So;0;ON;;;;;N;;;;; -1F08A;DOMINO TILE VERTICAL-05-04;So;0;ON;;;;;N;;;;; -1F08B;DOMINO TILE VERTICAL-05-05;So;0;ON;;;;;N;;;;; -1F08C;DOMINO TILE VERTICAL-05-06;So;0;ON;;;;;N;;;;; -1F08D;DOMINO TILE VERTICAL-06-00;So;0;ON;;;;;N;;;;; -1F08E;DOMINO TILE VERTICAL-06-01;So;0;ON;;;;;N;;;;; -1F08F;DOMINO TILE VERTICAL-06-02;So;0;ON;;;;;N;;;;; -1F090;DOMINO TILE VERTICAL-06-03;So;0;ON;;;;;N;;;;; -1F091;DOMINO TILE VERTICAL-06-04;So;0;ON;;;;;N;;;;; -1F092;DOMINO TILE VERTICAL-06-05;So;0;ON;;;;;N;;;;; -1F093;DOMINO TILE VERTICAL-06-06;So;0;ON;;;;;N;;;;; -1F100;DIGIT ZERO FULL STOP;No;0;EN; 0030 002E;;0;0;N;;;;; -1F101;DIGIT ZERO COMMA;No;0;EN; 0030 002C;;0;0;N;;;;; -1F102;DIGIT ONE COMMA;No;0;EN; 0031 002C;;1;1;N;;;;; -1F103;DIGIT TWO COMMA;No;0;EN; 0032 002C;;2;2;N;;;;; -1F104;DIGIT THREE COMMA;No;0;EN; 0033 002C;;3;3;N;;;;; -1F105;DIGIT FOUR COMMA;No;0;EN; 0034 002C;;4;4;N;;;;; -1F106;DIGIT FIVE COMMA;No;0;EN; 0035 002C;;5;5;N;;;;; -1F107;DIGIT SIX COMMA;No;0;EN; 0036 002C;;6;6;N;;;;; -1F108;DIGIT SEVEN COMMA;No;0;EN; 0037 002C;;7;7;N;;;;; -1F109;DIGIT EIGHT COMMA;No;0;EN; 0038 002C;;8;8;N;;;;; -1F10A;DIGIT NINE COMMA;No;0;EN; 0039 002C;;9;9;N;;;;; -1F110;PARENTHESIZED LATIN CAPITAL LETTER A;So;0;L; 0028 0041 0029;;;;N;;;;; -1F111;PARENTHESIZED LATIN CAPITAL LETTER B;So;0;L; 0028 0042 0029;;;;N;;;;; -1F112;PARENTHESIZED LATIN CAPITAL LETTER C;So;0;L; 0028 0043 0029;;;;N;;;;; -1F113;PARENTHESIZED LATIN CAPITAL LETTER D;So;0;L; 0028 0044 0029;;;;N;;;;; -1F114;PARENTHESIZED LATIN CAPITAL LETTER E;So;0;L; 0028 0045 0029;;;;N;;;;; -1F115;PARENTHESIZED LATIN CAPITAL LETTER F;So;0;L; 0028 0046 0029;;;;N;;;;; -1F116;PARENTHESIZED LATIN CAPITAL LETTER G;So;0;L; 0028 0047 0029;;;;N;;;;; -1F117;PARENTHESIZED LATIN CAPITAL LETTER H;So;0;L; 0028 0048 0029;;;;N;;;;; -1F118;PARENTHESIZED LATIN CAPITAL LETTER I;So;0;L; 0028 0049 0029;;;;N;;;;; -1F119;PARENTHESIZED LATIN CAPITAL LETTER J;So;0;L; 0028 004A 0029;;;;N;;;;; -1F11A;PARENTHESIZED LATIN CAPITAL LETTER K;So;0;L; 0028 004B 0029;;;;N;;;;; -1F11B;PARENTHESIZED LATIN CAPITAL LETTER L;So;0;L; 0028 004C 0029;;;;N;;;;; -1F11C;PARENTHESIZED LATIN CAPITAL LETTER M;So;0;L; 0028 004D 0029;;;;N;;;;; -1F11D;PARENTHESIZED LATIN CAPITAL LETTER N;So;0;L; 0028 004E 0029;;;;N;;;;; -1F11E;PARENTHESIZED LATIN CAPITAL LETTER O;So;0;L; 0028 004F 0029;;;;N;;;;; -1F11F;PARENTHESIZED LATIN CAPITAL LETTER P;So;0;L; 0028 0050 0029;;;;N;;;;; -1F120;PARENTHESIZED LATIN CAPITAL LETTER Q;So;0;L; 0028 0051 0029;;;;N;;;;; -1F121;PARENTHESIZED LATIN CAPITAL LETTER R;So;0;L; 0028 0052 0029;;;;N;;;;; -1F122;PARENTHESIZED LATIN CAPITAL LETTER S;So;0;L; 0028 0053 0029;;;;N;;;;; -1F123;PARENTHESIZED LATIN CAPITAL LETTER T;So;0;L; 0028 0054 0029;;;;N;;;;; -1F124;PARENTHESIZED LATIN CAPITAL LETTER U;So;0;L; 0028 0055 0029;;;;N;;;;; -1F125;PARENTHESIZED LATIN CAPITAL LETTER V;So;0;L; 0028 0056 0029;;;;N;;;;; -1F126;PARENTHESIZED LATIN CAPITAL LETTER W;So;0;L; 0028 0057 0029;;;;N;;;;; -1F127;PARENTHESIZED LATIN CAPITAL LETTER X;So;0;L; 0028 0058 0029;;;;N;;;;; -1F128;PARENTHESIZED LATIN CAPITAL LETTER Y;So;0;L; 0028 0059 0029;;;;N;;;;; -1F129;PARENTHESIZED LATIN CAPITAL LETTER Z;So;0;L; 0028 005A 0029;;;;N;;;;; -1F12A;TORTOISE SHELL BRACKETED LATIN CAPITAL LETTER S;So;0;L; 3014 0053 3015;;;;N;;;;; -1F12B;CIRCLED ITALIC LATIN CAPITAL LETTER C;So;0;L; 0043;;;;N;;;;; -1F12C;CIRCLED ITALIC LATIN CAPITAL LETTER R;So;0;L; 0052;;;;N;;;;; -1F12D;CIRCLED CD;So;0;L; 0043 0044;;;;N;;;;; -1F12E;CIRCLED WZ;So;0;L; 0057 005A;;;;N;;;;; -1F131;SQUARED LATIN CAPITAL LETTER B;So;0;L; 0042;;;;N;;;;; -1F13D;SQUARED LATIN CAPITAL LETTER N;So;0;L; 004E;;;;N;;;;; -1F13F;SQUARED LATIN CAPITAL LETTER P;So;0;L; 0050;;;;N;;;;; -1F142;SQUARED LATIN CAPITAL LETTER S;So;0;L; 0053;;;;N;;;;; -1F146;SQUARED LATIN CAPITAL LETTER W;So;0;L; 0057;;;;N;;;;; -1F14A;SQUARED HV;So;0;L; 0048 0056;;;;N;;;;; -1F14B;SQUARED MV;So;0;L; 004D 0056;;;;N;;;;; -1F14C;SQUARED SD;So;0;L; 0053 0044;;;;N;;;;; -1F14D;SQUARED SS;So;0;L; 0053 0053;;;;N;;;;; -1F14E;SQUARED PPV;So;0;L; 0050 0050 0056;;;;N;;;;; -1F157;NEGATIVE CIRCLED LATIN CAPITAL LETTER H;So;0;L;;;;;N;;;;; -1F15F;NEGATIVE CIRCLED LATIN CAPITAL LETTER P;So;0;L;;;;;N;;;;; -1F179;NEGATIVE SQUARED LATIN CAPITAL LETTER J;So;0;L;;;;;N;;;;; -1F17B;NEGATIVE SQUARED LATIN CAPITAL LETTER L;So;0;L;;;;;N;;;;; -1F17C;NEGATIVE SQUARED LATIN CAPITAL LETTER M;So;0;L;;;;;N;;;;; -1F17F;NEGATIVE SQUARED LATIN CAPITAL LETTER P;So;0;L;;;;;N;;;;; -1F18A;CROSSED NEGATIVE SQUARED LATIN CAPITAL LETTER P;So;0;L;;;;;N;;;;; -1F18B;NEGATIVE SQUARED IC;So;0;L;;;;;N;;;;; -1F18C;NEGATIVE SQUARED PA;So;0;L;;;;;N;;;;; -1F18D;NEGATIVE SQUARED SA;So;0;L;;;;;N;;;;; -1F190;SQUARE DJ;So;0;L; 0044 004A;;;;N;;;;; -1F200;SQUARE HIRAGANA HOKA;So;0;L; 307B 304B;;;;N;;;;; -1F210;SQUARED CJK UNIFIED IDEOGRAPH-624B;So;0;L; 624B;;;;N;;;;; -1F211;SQUARED CJK UNIFIED IDEOGRAPH-5B57;So;0;L; 5B57;;;;N;;;;; -1F212;SQUARED CJK UNIFIED IDEOGRAPH-53CC;So;0;L; 53CC;;;;N;;;;; -1F213;SQUARED KATAKANA DE;So;0;L; 30C7;;;;N;;;;; -1F214;SQUARED CJK UNIFIED IDEOGRAPH-4E8C;So;0;L; 4E8C;;;;N;;;;; -1F215;SQUARED CJK UNIFIED IDEOGRAPH-591A;So;0;L; 591A;;;;N;;;;; -1F216;SQUARED CJK UNIFIED IDEOGRAPH-89E3;So;0;L; 89E3;;;;N;;;;; -1F217;SQUARED CJK UNIFIED IDEOGRAPH-5929;So;0;L; 5929;;;;N;;;;; -1F218;SQUARED CJK UNIFIED IDEOGRAPH-4EA4;So;0;L; 4EA4;;;;N;;;;; -1F219;SQUARED CJK UNIFIED IDEOGRAPH-6620;So;0;L; 6620;;;;N;;;;; -1F21A;SQUARED CJK UNIFIED IDEOGRAPH-7121;So;0;L; 7121;;;;N;;;;; -1F21B;SQUARED CJK UNIFIED IDEOGRAPH-6599;So;0;L; 6599;;;;N;;;;; -1F21C;SQUARED CJK UNIFIED IDEOGRAPH-524D;So;0;L; 524D;;;;N;;;;; -1F21D;SQUARED CJK UNIFIED IDEOGRAPH-5F8C;So;0;L; 5F8C;;;;N;;;;; -1F21E;SQUARED CJK UNIFIED IDEOGRAPH-518D;So;0;L; 518D;;;;N;;;;; -1F21F;SQUARED CJK UNIFIED IDEOGRAPH-65B0;So;0;L; 65B0;;;;N;;;;; -1F220;SQUARED CJK UNIFIED IDEOGRAPH-521D;So;0;L; 521D;;;;N;;;;; -1F221;SQUARED CJK UNIFIED IDEOGRAPH-7D42;So;0;L; 7D42;;;;N;;;;; -1F222;SQUARED CJK UNIFIED IDEOGRAPH-751F;So;0;L; 751F;;;;N;;;;; -1F223;SQUARED CJK UNIFIED IDEOGRAPH-8CA9;So;0;L; 8CA9;;;;N;;;;; -1F224;SQUARED CJK UNIFIED IDEOGRAPH-58F0;So;0;L; 58F0;;;;N;;;;; -1F225;SQUARED CJK UNIFIED IDEOGRAPH-5439;So;0;L; 5439;;;;N;;;;; -1F226;SQUARED CJK UNIFIED IDEOGRAPH-6F14;So;0;L; 6F14;;;;N;;;;; -1F227;SQUARED CJK UNIFIED IDEOGRAPH-6295;So;0;L; 6295;;;;N;;;;; -1F228;SQUARED CJK UNIFIED IDEOGRAPH-6355;So;0;L; 6355;;;;N;;;;; -1F229;SQUARED CJK UNIFIED IDEOGRAPH-4E00;So;0;L; 4E00;;;;N;;;;; -1F22A;SQUARED CJK UNIFIED IDEOGRAPH-4E09;So;0;L; 4E09;;;;N;;;;; -1F22B;SQUARED CJK UNIFIED IDEOGRAPH-904A;So;0;L; 904A;;;;N;;;;; -1F22C;SQUARED CJK UNIFIED IDEOGRAPH-5DE6;So;0;L; 5DE6;;;;N;;;;; -1F22D;SQUARED CJK UNIFIED IDEOGRAPH-4E2D;So;0;L; 4E2D;;;;N;;;;; -1F22E;SQUARED CJK UNIFIED IDEOGRAPH-53F3;So;0;L; 53F3;;;;N;;;;; -1F22F;SQUARED CJK UNIFIED IDEOGRAPH-6307;So;0;L; 6307;;;;N;;;;; -1F230;SQUARED CJK UNIFIED IDEOGRAPH-8D70;So;0;L; 8D70;;;;N;;;;; -1F231;SQUARED CJK UNIFIED IDEOGRAPH-6253;So;0;L; 6253;;;;N;;;;; -1F240;TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C;So;0;L; 3014 672C 3015;;;;N;;;;; -1F241;TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E09;So;0;L; 3014 4E09 3015;;;;N;;;;; -1F242;TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E8C;So;0;L; 3014 4E8C 3015;;;;N;;;;; -1F243;TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-5B89;So;0;L; 3014 5B89 3015;;;;N;;;;; -1F244;TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-70B9;So;0;L; 3014 70B9 3015;;;;N;;;;; -1F245;TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6253;So;0;L; 3014 6253 3015;;;;N;;;;; -1F246;TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-76D7;So;0;L; 3014 76D7 3015;;;;N;;;;; -1F247;TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-52DD;So;0;L; 3014 52DD 3015;;;;N;;;;; -1F248;TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557;So;0;L; 3014 6557 3015;;;;N;;;;; -20000;;Lo;0;L;;;;;N;;;;; -2A6D6;;Lo;0;L;;;;;N;;;;; -2A700;;Lo;0;L;;;;;N;;;;; -2B734;;Lo;0;L;;;;;N;;;;; -2F800;CJK COMPATIBILITY IDEOGRAPH-2F800;Lo;0;L;4E3D;;;;N;;;;; -2F801;CJK COMPATIBILITY IDEOGRAPH-2F801;Lo;0;L;4E38;;;;N;;;;; -2F802;CJK COMPATIBILITY IDEOGRAPH-2F802;Lo;0;L;4E41;;;;N;;;;; -2F803;CJK COMPATIBILITY IDEOGRAPH-2F803;Lo;0;L;20122;;;;N;;;;; -2F804;CJK COMPATIBILITY IDEOGRAPH-2F804;Lo;0;L;4F60;;;;N;;;;; -2F805;CJK COMPATIBILITY IDEOGRAPH-2F805;Lo;0;L;4FAE;;;;N;;;;; -2F806;CJK COMPATIBILITY IDEOGRAPH-2F806;Lo;0;L;4FBB;;;;N;;;;; -2F807;CJK COMPATIBILITY IDEOGRAPH-2F807;Lo;0;L;5002;;;;N;;;;; -2F808;CJK COMPATIBILITY IDEOGRAPH-2F808;Lo;0;L;507A;;;;N;;;;; -2F809;CJK COMPATIBILITY IDEOGRAPH-2F809;Lo;0;L;5099;;;;N;;;;; -2F80A;CJK COMPATIBILITY IDEOGRAPH-2F80A;Lo;0;L;50E7;;;;N;;;;; -2F80B;CJK COMPATIBILITY IDEOGRAPH-2F80B;Lo;0;L;50CF;;;;N;;;;; -2F80C;CJK COMPATIBILITY IDEOGRAPH-2F80C;Lo;0;L;349E;;;;N;;;;; -2F80D;CJK COMPATIBILITY IDEOGRAPH-2F80D;Lo;0;L;2063A;;;;N;;;;; -2F80E;CJK COMPATIBILITY IDEOGRAPH-2F80E;Lo;0;L;514D;;;;N;;;;; -2F80F;CJK COMPATIBILITY IDEOGRAPH-2F80F;Lo;0;L;5154;;;;N;;;;; -2F810;CJK COMPATIBILITY IDEOGRAPH-2F810;Lo;0;L;5164;;;;N;;;;; -2F811;CJK COMPATIBILITY IDEOGRAPH-2F811;Lo;0;L;5177;;;;N;;;;; -2F812;CJK COMPATIBILITY IDEOGRAPH-2F812;Lo;0;L;2051C;;;;N;;;;; -2F813;CJK COMPATIBILITY IDEOGRAPH-2F813;Lo;0;L;34B9;;;;N;;;;; -2F814;CJK COMPATIBILITY IDEOGRAPH-2F814;Lo;0;L;5167;;;;N;;;;; -2F815;CJK COMPATIBILITY IDEOGRAPH-2F815;Lo;0;L;518D;;;;N;;;;; -2F816;CJK COMPATIBILITY IDEOGRAPH-2F816;Lo;0;L;2054B;;;;N;;;;; -2F817;CJK COMPATIBILITY IDEOGRAPH-2F817;Lo;0;L;5197;;;;N;;;;; -2F818;CJK COMPATIBILITY IDEOGRAPH-2F818;Lo;0;L;51A4;;;;N;;;;; -2F819;CJK COMPATIBILITY IDEOGRAPH-2F819;Lo;0;L;4ECC;;;;N;;;;; -2F81A;CJK COMPATIBILITY IDEOGRAPH-2F81A;Lo;0;L;51AC;;;;N;;;;; -2F81B;CJK COMPATIBILITY IDEOGRAPH-2F81B;Lo;0;L;51B5;;;;N;;;;; -2F81C;CJK COMPATIBILITY IDEOGRAPH-2F81C;Lo;0;L;291DF;;;;N;;;;; -2F81D;CJK COMPATIBILITY IDEOGRAPH-2F81D;Lo;0;L;51F5;;;;N;;;;; -2F81E;CJK COMPATIBILITY IDEOGRAPH-2F81E;Lo;0;L;5203;;;;N;;;;; -2F81F;CJK COMPATIBILITY IDEOGRAPH-2F81F;Lo;0;L;34DF;;;;N;;;;; -2F820;CJK COMPATIBILITY IDEOGRAPH-2F820;Lo;0;L;523B;;;;N;;;;; -2F821;CJK COMPATIBILITY IDEOGRAPH-2F821;Lo;0;L;5246;;;;N;;;;; -2F822;CJK COMPATIBILITY IDEOGRAPH-2F822;Lo;0;L;5272;;;;N;;;;; -2F823;CJK COMPATIBILITY IDEOGRAPH-2F823;Lo;0;L;5277;;;;N;;;;; -2F824;CJK COMPATIBILITY IDEOGRAPH-2F824;Lo;0;L;3515;;;;N;;;;; -2F825;CJK COMPATIBILITY IDEOGRAPH-2F825;Lo;0;L;52C7;;;;N;;;;; -2F826;CJK COMPATIBILITY IDEOGRAPH-2F826;Lo;0;L;52C9;;;;N;;;;; -2F827;CJK COMPATIBILITY IDEOGRAPH-2F827;Lo;0;L;52E4;;;;N;;;;; -2F828;CJK COMPATIBILITY IDEOGRAPH-2F828;Lo;0;L;52FA;;;;N;;;;; -2F829;CJK COMPATIBILITY IDEOGRAPH-2F829;Lo;0;L;5305;;;;N;;;;; -2F82A;CJK COMPATIBILITY IDEOGRAPH-2F82A;Lo;0;L;5306;;;;N;;;;; -2F82B;CJK COMPATIBILITY IDEOGRAPH-2F82B;Lo;0;L;5317;;;;N;;;;; -2F82C;CJK COMPATIBILITY IDEOGRAPH-2F82C;Lo;0;L;5349;;;;N;;;;; -2F82D;CJK COMPATIBILITY IDEOGRAPH-2F82D;Lo;0;L;5351;;;;N;;;;; -2F82E;CJK COMPATIBILITY IDEOGRAPH-2F82E;Lo;0;L;535A;;;;N;;;;; -2F82F;CJK COMPATIBILITY IDEOGRAPH-2F82F;Lo;0;L;5373;;;;N;;;;; -2F830;CJK COMPATIBILITY IDEOGRAPH-2F830;Lo;0;L;537D;;;;N;;;;; -2F831;CJK COMPATIBILITY IDEOGRAPH-2F831;Lo;0;L;537F;;;;N;;;;; -2F832;CJK COMPATIBILITY IDEOGRAPH-2F832;Lo;0;L;537F;;;;N;;;;; -2F833;CJK COMPATIBILITY IDEOGRAPH-2F833;Lo;0;L;537F;;;;N;;;;; -2F834;CJK COMPATIBILITY IDEOGRAPH-2F834;Lo;0;L;20A2C;;;;N;;;;; -2F835;CJK COMPATIBILITY IDEOGRAPH-2F835;Lo;0;L;7070;;;;N;;;;; -2F836;CJK COMPATIBILITY IDEOGRAPH-2F836;Lo;0;L;53CA;;;;N;;;;; -2F837;CJK COMPATIBILITY IDEOGRAPH-2F837;Lo;0;L;53DF;;;;N;;;;; -2F838;CJK COMPATIBILITY IDEOGRAPH-2F838;Lo;0;L;20B63;;;;N;;;;; -2F839;CJK COMPATIBILITY IDEOGRAPH-2F839;Lo;0;L;53EB;;;;N;;;;; -2F83A;CJK COMPATIBILITY IDEOGRAPH-2F83A;Lo;0;L;53F1;;;;N;;;;; -2F83B;CJK COMPATIBILITY IDEOGRAPH-2F83B;Lo;0;L;5406;;;;N;;;;; -2F83C;CJK COMPATIBILITY IDEOGRAPH-2F83C;Lo;0;L;549E;;;;N;;;;; -2F83D;CJK COMPATIBILITY IDEOGRAPH-2F83D;Lo;0;L;5438;;;;N;;;;; -2F83E;CJK COMPATIBILITY IDEOGRAPH-2F83E;Lo;0;L;5448;;;;N;;;;; -2F83F;CJK COMPATIBILITY IDEOGRAPH-2F83F;Lo;0;L;5468;;;;N;;;;; -2F840;CJK COMPATIBILITY IDEOGRAPH-2F840;Lo;0;L;54A2;;;;N;;;;; -2F841;CJK COMPATIBILITY IDEOGRAPH-2F841;Lo;0;L;54F6;;;;N;;;;; -2F842;CJK COMPATIBILITY IDEOGRAPH-2F842;Lo;0;L;5510;;;;N;;;;; -2F843;CJK COMPATIBILITY IDEOGRAPH-2F843;Lo;0;L;5553;;;;N;;;;; -2F844;CJK COMPATIBILITY IDEOGRAPH-2F844;Lo;0;L;5563;;;;N;;;;; -2F845;CJK COMPATIBILITY IDEOGRAPH-2F845;Lo;0;L;5584;;;;N;;;;; -2F846;CJK COMPATIBILITY IDEOGRAPH-2F846;Lo;0;L;5584;;;;N;;;;; -2F847;CJK COMPATIBILITY IDEOGRAPH-2F847;Lo;0;L;5599;;;;N;;;;; -2F848;CJK COMPATIBILITY IDEOGRAPH-2F848;Lo;0;L;55AB;;;;N;;;;; -2F849;CJK COMPATIBILITY IDEOGRAPH-2F849;Lo;0;L;55B3;;;;N;;;;; -2F84A;CJK COMPATIBILITY IDEOGRAPH-2F84A;Lo;0;L;55C2;;;;N;;;;; -2F84B;CJK COMPATIBILITY IDEOGRAPH-2F84B;Lo;0;L;5716;;;;N;;;;; -2F84C;CJK COMPATIBILITY IDEOGRAPH-2F84C;Lo;0;L;5606;;;;N;;;;; -2F84D;CJK COMPATIBILITY IDEOGRAPH-2F84D;Lo;0;L;5717;;;;N;;;;; -2F84E;CJK COMPATIBILITY IDEOGRAPH-2F84E;Lo;0;L;5651;;;;N;;;;; -2F84F;CJK COMPATIBILITY IDEOGRAPH-2F84F;Lo;0;L;5674;;;;N;;;;; -2F850;CJK COMPATIBILITY IDEOGRAPH-2F850;Lo;0;L;5207;;;;N;;;;; -2F851;CJK COMPATIBILITY IDEOGRAPH-2F851;Lo;0;L;58EE;;;;N;;;;; -2F852;CJK COMPATIBILITY IDEOGRAPH-2F852;Lo;0;L;57CE;;;;N;;;;; -2F853;CJK COMPATIBILITY IDEOGRAPH-2F853;Lo;0;L;57F4;;;;N;;;;; -2F854;CJK COMPATIBILITY IDEOGRAPH-2F854;Lo;0;L;580D;;;;N;;;;; -2F855;CJK COMPATIBILITY IDEOGRAPH-2F855;Lo;0;L;578B;;;;N;;;;; -2F856;CJK COMPATIBILITY IDEOGRAPH-2F856;Lo;0;L;5832;;;;N;;;;; -2F857;CJK COMPATIBILITY IDEOGRAPH-2F857;Lo;0;L;5831;;;;N;;;;; -2F858;CJK COMPATIBILITY IDEOGRAPH-2F858;Lo;0;L;58AC;;;;N;;;;; -2F859;CJK COMPATIBILITY IDEOGRAPH-2F859;Lo;0;L;214E4;;;;N;;;;; -2F85A;CJK COMPATIBILITY IDEOGRAPH-2F85A;Lo;0;L;58F2;;;;N;;;;; -2F85B;CJK COMPATIBILITY IDEOGRAPH-2F85B;Lo;0;L;58F7;;;;N;;;;; -2F85C;CJK COMPATIBILITY IDEOGRAPH-2F85C;Lo;0;L;5906;;;;N;;;;; -2F85D;CJK COMPATIBILITY IDEOGRAPH-2F85D;Lo;0;L;591A;;;;N;;;;; -2F85E;CJK COMPATIBILITY IDEOGRAPH-2F85E;Lo;0;L;5922;;;;N;;;;; -2F85F;CJK COMPATIBILITY IDEOGRAPH-2F85F;Lo;0;L;5962;;;;N;;;;; -2F860;CJK COMPATIBILITY IDEOGRAPH-2F860;Lo;0;L;216A8;;;;N;;;;; -2F861;CJK COMPATIBILITY IDEOGRAPH-2F861;Lo;0;L;216EA;;;;N;;;;; -2F862;CJK COMPATIBILITY IDEOGRAPH-2F862;Lo;0;L;59EC;;;;N;;;;; -2F863;CJK COMPATIBILITY IDEOGRAPH-2F863;Lo;0;L;5A1B;;;;N;;;;; -2F864;CJK COMPATIBILITY IDEOGRAPH-2F864;Lo;0;L;5A27;;;;N;;;;; -2F865;CJK COMPATIBILITY IDEOGRAPH-2F865;Lo;0;L;59D8;;;;N;;;;; -2F866;CJK COMPATIBILITY IDEOGRAPH-2F866;Lo;0;L;5A66;;;;N;;;;; -2F867;CJK COMPATIBILITY IDEOGRAPH-2F867;Lo;0;L;36EE;;;;N;;;;; -2F868;CJK COMPATIBILITY IDEOGRAPH-2F868;Lo;0;L;36FC;;;;N;;;;; -2F869;CJK COMPATIBILITY IDEOGRAPH-2F869;Lo;0;L;5B08;;;;N;;;;; -2F86A;CJK COMPATIBILITY IDEOGRAPH-2F86A;Lo;0;L;5B3E;;;;N;;;;; -2F86B;CJK COMPATIBILITY IDEOGRAPH-2F86B;Lo;0;L;5B3E;;;;N;;;;; -2F86C;CJK COMPATIBILITY IDEOGRAPH-2F86C;Lo;0;L;219C8;;;;N;;;;; -2F86D;CJK COMPATIBILITY IDEOGRAPH-2F86D;Lo;0;L;5BC3;;;;N;;;;; -2F86E;CJK COMPATIBILITY IDEOGRAPH-2F86E;Lo;0;L;5BD8;;;;N;;;;; -2F86F;CJK COMPATIBILITY IDEOGRAPH-2F86F;Lo;0;L;5BE7;;;;N;;;;; -2F870;CJK COMPATIBILITY IDEOGRAPH-2F870;Lo;0;L;5BF3;;;;N;;;;; -2F871;CJK COMPATIBILITY IDEOGRAPH-2F871;Lo;0;L;21B18;;;;N;;;;; -2F872;CJK COMPATIBILITY IDEOGRAPH-2F872;Lo;0;L;5BFF;;;;N;;;;; -2F873;CJK COMPATIBILITY IDEOGRAPH-2F873;Lo;0;L;5C06;;;;N;;;;; -2F874;CJK COMPATIBILITY IDEOGRAPH-2F874;Lo;0;L;5F53;;;;N;;;;; -2F875;CJK COMPATIBILITY IDEOGRAPH-2F875;Lo;0;L;5C22;;;;N;;;;; -2F876;CJK COMPATIBILITY IDEOGRAPH-2F876;Lo;0;L;3781;;;;N;;;;; -2F877;CJK COMPATIBILITY IDEOGRAPH-2F877;Lo;0;L;5C60;;;;N;;;;; -2F878;CJK COMPATIBILITY IDEOGRAPH-2F878;Lo;0;L;5C6E;;;;N;;;;; -2F879;CJK COMPATIBILITY IDEOGRAPH-2F879;Lo;0;L;5CC0;;;;N;;;;; -2F87A;CJK COMPATIBILITY IDEOGRAPH-2F87A;Lo;0;L;5C8D;;;;N;;;;; -2F87B;CJK COMPATIBILITY IDEOGRAPH-2F87B;Lo;0;L;21DE4;;;;N;;;;; -2F87C;CJK COMPATIBILITY IDEOGRAPH-2F87C;Lo;0;L;5D43;;;;N;;;;; -2F87D;CJK COMPATIBILITY IDEOGRAPH-2F87D;Lo;0;L;21DE6;;;;N;;;;; -2F87E;CJK COMPATIBILITY IDEOGRAPH-2F87E;Lo;0;L;5D6E;;;;N;;;;; -2F87F;CJK COMPATIBILITY IDEOGRAPH-2F87F;Lo;0;L;5D6B;;;;N;;;;; -2F880;CJK COMPATIBILITY IDEOGRAPH-2F880;Lo;0;L;5D7C;;;;N;;;;; -2F881;CJK COMPATIBILITY IDEOGRAPH-2F881;Lo;0;L;5DE1;;;;N;;;;; -2F882;CJK COMPATIBILITY IDEOGRAPH-2F882;Lo;0;L;5DE2;;;;N;;;;; -2F883;CJK COMPATIBILITY IDEOGRAPH-2F883;Lo;0;L;382F;;;;N;;;;; -2F884;CJK COMPATIBILITY IDEOGRAPH-2F884;Lo;0;L;5DFD;;;;N;;;;; -2F885;CJK COMPATIBILITY IDEOGRAPH-2F885;Lo;0;L;5E28;;;;N;;;;; -2F886;CJK COMPATIBILITY IDEOGRAPH-2F886;Lo;0;L;5E3D;;;;N;;;;; -2F887;CJK COMPATIBILITY IDEOGRAPH-2F887;Lo;0;L;5E69;;;;N;;;;; -2F888;CJK COMPATIBILITY IDEOGRAPH-2F888;Lo;0;L;3862;;;;N;;;;; -2F889;CJK COMPATIBILITY IDEOGRAPH-2F889;Lo;0;L;22183;;;;N;;;;; -2F88A;CJK COMPATIBILITY IDEOGRAPH-2F88A;Lo;0;L;387C;;;;N;;;;; -2F88B;CJK COMPATIBILITY IDEOGRAPH-2F88B;Lo;0;L;5EB0;;;;N;;;;; -2F88C;CJK COMPATIBILITY IDEOGRAPH-2F88C;Lo;0;L;5EB3;;;;N;;;;; -2F88D;CJK COMPATIBILITY IDEOGRAPH-2F88D;Lo;0;L;5EB6;;;;N;;;;; -2F88E;CJK COMPATIBILITY IDEOGRAPH-2F88E;Lo;0;L;5ECA;;;;N;;;;; -2F88F;CJK COMPATIBILITY IDEOGRAPH-2F88F;Lo;0;L;2A392;;;;N;;;;; -2F890;CJK COMPATIBILITY IDEOGRAPH-2F890;Lo;0;L;5EFE;;;9;N;;;;; -2F891;CJK COMPATIBILITY IDEOGRAPH-2F891;Lo;0;L;22331;;;;N;;;;; -2F892;CJK COMPATIBILITY IDEOGRAPH-2F892;Lo;0;L;22331;;;;N;;;;; -2F893;CJK COMPATIBILITY IDEOGRAPH-2F893;Lo;0;L;8201;;;;N;;;;; -2F894;CJK COMPATIBILITY IDEOGRAPH-2F894;Lo;0;L;5F22;;;;N;;;;; -2F895;CJK COMPATIBILITY IDEOGRAPH-2F895;Lo;0;L;5F22;;;;N;;;;; -2F896;CJK COMPATIBILITY IDEOGRAPH-2F896;Lo;0;L;38C7;;;;N;;;;; -2F897;CJK COMPATIBILITY IDEOGRAPH-2F897;Lo;0;L;232B8;;;;N;;;;; -2F898;CJK COMPATIBILITY IDEOGRAPH-2F898;Lo;0;L;261DA;;;;N;;;;; -2F899;CJK COMPATIBILITY IDEOGRAPH-2F899;Lo;0;L;5F62;;;;N;;;;; -2F89A;CJK COMPATIBILITY IDEOGRAPH-2F89A;Lo;0;L;5F6B;;;;N;;;;; -2F89B;CJK COMPATIBILITY IDEOGRAPH-2F89B;Lo;0;L;38E3;;;;N;;;;; -2F89C;CJK COMPATIBILITY IDEOGRAPH-2F89C;Lo;0;L;5F9A;;;;N;;;;; -2F89D;CJK COMPATIBILITY IDEOGRAPH-2F89D;Lo;0;L;5FCD;;;;N;;;;; -2F89E;CJK COMPATIBILITY IDEOGRAPH-2F89E;Lo;0;L;5FD7;;;;N;;;;; -2F89F;CJK COMPATIBILITY IDEOGRAPH-2F89F;Lo;0;L;5FF9;;;;N;;;;; -2F8A0;CJK COMPATIBILITY IDEOGRAPH-2F8A0;Lo;0;L;6081;;;;N;;;;; -2F8A1;CJK COMPATIBILITY IDEOGRAPH-2F8A1;Lo;0;L;393A;;;;N;;;;; -2F8A2;CJK COMPATIBILITY IDEOGRAPH-2F8A2;Lo;0;L;391C;;;;N;;;;; -2F8A3;CJK COMPATIBILITY IDEOGRAPH-2F8A3;Lo;0;L;6094;;;;N;;;;; -2F8A4;CJK COMPATIBILITY IDEOGRAPH-2F8A4;Lo;0;L;226D4;;;;N;;;;; -2F8A5;CJK COMPATIBILITY IDEOGRAPH-2F8A5;Lo;0;L;60C7;;;;N;;;;; -2F8A6;CJK COMPATIBILITY IDEOGRAPH-2F8A6;Lo;0;L;6148;;;;N;;;;; -2F8A7;CJK COMPATIBILITY IDEOGRAPH-2F8A7;Lo;0;L;614C;;;;N;;;;; -2F8A8;CJK COMPATIBILITY IDEOGRAPH-2F8A8;Lo;0;L;614E;;;;N;;;;; -2F8A9;CJK COMPATIBILITY IDEOGRAPH-2F8A9;Lo;0;L;614C;;;;N;;;;; -2F8AA;CJK COMPATIBILITY IDEOGRAPH-2F8AA;Lo;0;L;617A;;;;N;;;;; -2F8AB;CJK COMPATIBILITY IDEOGRAPH-2F8AB;Lo;0;L;618E;;;;N;;;;; -2F8AC;CJK COMPATIBILITY IDEOGRAPH-2F8AC;Lo;0;L;61B2;;;;N;;;;; -2F8AD;CJK COMPATIBILITY IDEOGRAPH-2F8AD;Lo;0;L;61A4;;;;N;;;;; -2F8AE;CJK COMPATIBILITY IDEOGRAPH-2F8AE;Lo;0;L;61AF;;;;N;;;;; -2F8AF;CJK COMPATIBILITY IDEOGRAPH-2F8AF;Lo;0;L;61DE;;;;N;;;;; -2F8B0;CJK COMPATIBILITY IDEOGRAPH-2F8B0;Lo;0;L;61F2;;;;N;;;;; -2F8B1;CJK COMPATIBILITY IDEOGRAPH-2F8B1;Lo;0;L;61F6;;;;N;;;;; -2F8B2;CJK COMPATIBILITY IDEOGRAPH-2F8B2;Lo;0;L;6210;;;;N;;;;; -2F8B3;CJK COMPATIBILITY IDEOGRAPH-2F8B3;Lo;0;L;621B;;;;N;;;;; -2F8B4;CJK COMPATIBILITY IDEOGRAPH-2F8B4;Lo;0;L;625D;;;;N;;;;; -2F8B5;CJK COMPATIBILITY IDEOGRAPH-2F8B5;Lo;0;L;62B1;;;;N;;;;; -2F8B6;CJK COMPATIBILITY IDEOGRAPH-2F8B6;Lo;0;L;62D4;;;;N;;;;; -2F8B7;CJK COMPATIBILITY IDEOGRAPH-2F8B7;Lo;0;L;6350;;;;N;;;;; -2F8B8;CJK COMPATIBILITY IDEOGRAPH-2F8B8;Lo;0;L;22B0C;;;;N;;;;; -2F8B9;CJK COMPATIBILITY IDEOGRAPH-2F8B9;Lo;0;L;633D;;;;N;;;;; -2F8BA;CJK COMPATIBILITY IDEOGRAPH-2F8BA;Lo;0;L;62FC;;;;N;;;;; -2F8BB;CJK COMPATIBILITY IDEOGRAPH-2F8BB;Lo;0;L;6368;;;;N;;;;; -2F8BC;CJK COMPATIBILITY IDEOGRAPH-2F8BC;Lo;0;L;6383;;;;N;;;;; -2F8BD;CJK COMPATIBILITY IDEOGRAPH-2F8BD;Lo;0;L;63E4;;;;N;;;;; -2F8BE;CJK COMPATIBILITY IDEOGRAPH-2F8BE;Lo;0;L;22BF1;;;;N;;;;; -2F8BF;CJK COMPATIBILITY IDEOGRAPH-2F8BF;Lo;0;L;6422;;;;N;;;;; -2F8C0;CJK COMPATIBILITY IDEOGRAPH-2F8C0;Lo;0;L;63C5;;;;N;;;;; -2F8C1;CJK COMPATIBILITY IDEOGRAPH-2F8C1;Lo;0;L;63A9;;;;N;;;;; -2F8C2;CJK COMPATIBILITY IDEOGRAPH-2F8C2;Lo;0;L;3A2E;;;;N;;;;; -2F8C3;CJK COMPATIBILITY IDEOGRAPH-2F8C3;Lo;0;L;6469;;;;N;;;;; -2F8C4;CJK COMPATIBILITY IDEOGRAPH-2F8C4;Lo;0;L;647E;;;;N;;;;; -2F8C5;CJK COMPATIBILITY IDEOGRAPH-2F8C5;Lo;0;L;649D;;;;N;;;;; -2F8C6;CJK COMPATIBILITY IDEOGRAPH-2F8C6;Lo;0;L;6477;;;;N;;;;; -2F8C7;CJK COMPATIBILITY IDEOGRAPH-2F8C7;Lo;0;L;3A6C;;;;N;;;;; -2F8C8;CJK COMPATIBILITY IDEOGRAPH-2F8C8;Lo;0;L;654F;;;;N;;;;; -2F8C9;CJK COMPATIBILITY IDEOGRAPH-2F8C9;Lo;0;L;656C;;;;N;;;;; -2F8CA;CJK COMPATIBILITY IDEOGRAPH-2F8CA;Lo;0;L;2300A;;;;N;;;;; -2F8CB;CJK COMPATIBILITY IDEOGRAPH-2F8CB;Lo;0;L;65E3;;;;N;;;;; -2F8CC;CJK COMPATIBILITY IDEOGRAPH-2F8CC;Lo;0;L;66F8;;;;N;;;;; -2F8CD;CJK COMPATIBILITY IDEOGRAPH-2F8CD;Lo;0;L;6649;;;;N;;;;; -2F8CE;CJK COMPATIBILITY IDEOGRAPH-2F8CE;Lo;0;L;3B19;;;;N;;;;; -2F8CF;CJK COMPATIBILITY IDEOGRAPH-2F8CF;Lo;0;L;6691;;;;N;;;;; -2F8D0;CJK COMPATIBILITY IDEOGRAPH-2F8D0;Lo;0;L;3B08;;;;N;;;;; -2F8D1;CJK COMPATIBILITY IDEOGRAPH-2F8D1;Lo;0;L;3AE4;;;;N;;;;; -2F8D2;CJK COMPATIBILITY IDEOGRAPH-2F8D2;Lo;0;L;5192;;;;N;;;;; -2F8D3;CJK COMPATIBILITY IDEOGRAPH-2F8D3;Lo;0;L;5195;;;;N;;;;; -2F8D4;CJK COMPATIBILITY IDEOGRAPH-2F8D4;Lo;0;L;6700;;;;N;;;;; -2F8D5;CJK COMPATIBILITY IDEOGRAPH-2F8D5;Lo;0;L;669C;;;;N;;;;; -2F8D6;CJK COMPATIBILITY IDEOGRAPH-2F8D6;Lo;0;L;80AD;;;;N;;;;; -2F8D7;CJK COMPATIBILITY IDEOGRAPH-2F8D7;Lo;0;L;43D9;;;;N;;;;; -2F8D8;CJK COMPATIBILITY IDEOGRAPH-2F8D8;Lo;0;L;6717;;;;N;;;;; -2F8D9;CJK COMPATIBILITY IDEOGRAPH-2F8D9;Lo;0;L;671B;;;;N;;;;; -2F8DA;CJK COMPATIBILITY IDEOGRAPH-2F8DA;Lo;0;L;6721;;;;N;;;;; -2F8DB;CJK COMPATIBILITY IDEOGRAPH-2F8DB;Lo;0;L;675E;;;;N;;;;; -2F8DC;CJK COMPATIBILITY IDEOGRAPH-2F8DC;Lo;0;L;6753;;;;N;;;;; -2F8DD;CJK COMPATIBILITY IDEOGRAPH-2F8DD;Lo;0;L;233C3;;;;N;;;;; -2F8DE;CJK COMPATIBILITY IDEOGRAPH-2F8DE;Lo;0;L;3B49;;;;N;;;;; -2F8DF;CJK COMPATIBILITY IDEOGRAPH-2F8DF;Lo;0;L;67FA;;;;N;;;;; -2F8E0;CJK COMPATIBILITY IDEOGRAPH-2F8E0;Lo;0;L;6785;;;;N;;;;; -2F8E1;CJK COMPATIBILITY IDEOGRAPH-2F8E1;Lo;0;L;6852;;;;N;;;;; -2F8E2;CJK COMPATIBILITY IDEOGRAPH-2F8E2;Lo;0;L;6885;;;;N;;;;; -2F8E3;CJK COMPATIBILITY IDEOGRAPH-2F8E3;Lo;0;L;2346D;;;;N;;;;; -2F8E4;CJK COMPATIBILITY IDEOGRAPH-2F8E4;Lo;0;L;688E;;;;N;;;;; -2F8E5;CJK COMPATIBILITY IDEOGRAPH-2F8E5;Lo;0;L;681F;;;;N;;;;; -2F8E6;CJK COMPATIBILITY IDEOGRAPH-2F8E6;Lo;0;L;6914;;;;N;;;;; -2F8E7;CJK COMPATIBILITY IDEOGRAPH-2F8E7;Lo;0;L;3B9D;;;;N;;;;; -2F8E8;CJK COMPATIBILITY IDEOGRAPH-2F8E8;Lo;0;L;6942;;;;N;;;;; -2F8E9;CJK COMPATIBILITY IDEOGRAPH-2F8E9;Lo;0;L;69A3;;;;N;;;;; -2F8EA;CJK COMPATIBILITY IDEOGRAPH-2F8EA;Lo;0;L;69EA;;;;N;;;;; -2F8EB;CJK COMPATIBILITY IDEOGRAPH-2F8EB;Lo;0;L;6AA8;;;;N;;;;; -2F8EC;CJK COMPATIBILITY IDEOGRAPH-2F8EC;Lo;0;L;236A3;;;;N;;;;; -2F8ED;CJK COMPATIBILITY IDEOGRAPH-2F8ED;Lo;0;L;6ADB;;;;N;;;;; -2F8EE;CJK COMPATIBILITY IDEOGRAPH-2F8EE;Lo;0;L;3C18;;;;N;;;;; -2F8EF;CJK COMPATIBILITY IDEOGRAPH-2F8EF;Lo;0;L;6B21;;;;N;;;;; -2F8F0;CJK COMPATIBILITY IDEOGRAPH-2F8F0;Lo;0;L;238A7;;;;N;;;;; -2F8F1;CJK COMPATIBILITY IDEOGRAPH-2F8F1;Lo;0;L;6B54;;;;N;;;;; -2F8F2;CJK COMPATIBILITY IDEOGRAPH-2F8F2;Lo;0;L;3C4E;;;;N;;;;; -2F8F3;CJK COMPATIBILITY IDEOGRAPH-2F8F3;Lo;0;L;6B72;;;;N;;;;; -2F8F4;CJK COMPATIBILITY IDEOGRAPH-2F8F4;Lo;0;L;6B9F;;;;N;;;;; -2F8F5;CJK COMPATIBILITY IDEOGRAPH-2F8F5;Lo;0;L;6BBA;;;;N;;;;; -2F8F6;CJK COMPATIBILITY IDEOGRAPH-2F8F6;Lo;0;L;6BBB;;;;N;;;;; -2F8F7;CJK COMPATIBILITY IDEOGRAPH-2F8F7;Lo;0;L;23A8D;;;;N;;;;; -2F8F8;CJK COMPATIBILITY IDEOGRAPH-2F8F8;Lo;0;L;21D0B;;;;N;;;;; -2F8F9;CJK COMPATIBILITY IDEOGRAPH-2F8F9;Lo;0;L;23AFA;;;;N;;;;; -2F8FA;CJK COMPATIBILITY IDEOGRAPH-2F8FA;Lo;0;L;6C4E;;;;N;;;;; -2F8FB;CJK COMPATIBILITY IDEOGRAPH-2F8FB;Lo;0;L;23CBC;;;;N;;;;; -2F8FC;CJK COMPATIBILITY IDEOGRAPH-2F8FC;Lo;0;L;6CBF;;;;N;;;;; -2F8FD;CJK COMPATIBILITY IDEOGRAPH-2F8FD;Lo;0;L;6CCD;;;;N;;;;; -2F8FE;CJK COMPATIBILITY IDEOGRAPH-2F8FE;Lo;0;L;6C67;;;;N;;;;; -2F8FF;CJK COMPATIBILITY IDEOGRAPH-2F8FF;Lo;0;L;6D16;;;;N;;;;; -2F900;CJK COMPATIBILITY IDEOGRAPH-2F900;Lo;0;L;6D3E;;;;N;;;;; -2F901;CJK COMPATIBILITY IDEOGRAPH-2F901;Lo;0;L;6D77;;;;N;;;;; -2F902;CJK COMPATIBILITY IDEOGRAPH-2F902;Lo;0;L;6D41;;;;N;;;;; -2F903;CJK COMPATIBILITY IDEOGRAPH-2F903;Lo;0;L;6D69;;;;N;;;;; -2F904;CJK COMPATIBILITY IDEOGRAPH-2F904;Lo;0;L;6D78;;;;N;;;;; -2F905;CJK COMPATIBILITY IDEOGRAPH-2F905;Lo;0;L;6D85;;;;N;;;;; -2F906;CJK COMPATIBILITY IDEOGRAPH-2F906;Lo;0;L;23D1E;;;;N;;;;; -2F907;CJK COMPATIBILITY IDEOGRAPH-2F907;Lo;0;L;6D34;;;;N;;;;; -2F908;CJK COMPATIBILITY IDEOGRAPH-2F908;Lo;0;L;6E2F;;;;N;;;;; -2F909;CJK COMPATIBILITY IDEOGRAPH-2F909;Lo;0;L;6E6E;;;;N;;;;; -2F90A;CJK COMPATIBILITY IDEOGRAPH-2F90A;Lo;0;L;3D33;;;;N;;;;; -2F90B;CJK COMPATIBILITY IDEOGRAPH-2F90B;Lo;0;L;6ECB;;;;N;;;;; -2F90C;CJK COMPATIBILITY IDEOGRAPH-2F90C;Lo;0;L;6EC7;;;;N;;;;; -2F90D;CJK COMPATIBILITY IDEOGRAPH-2F90D;Lo;0;L;23ED1;;;;N;;;;; -2F90E;CJK COMPATIBILITY IDEOGRAPH-2F90E;Lo;0;L;6DF9;;;;N;;;;; -2F90F;CJK COMPATIBILITY IDEOGRAPH-2F90F;Lo;0;L;6F6E;;;;N;;;;; -2F910;CJK COMPATIBILITY IDEOGRAPH-2F910;Lo;0;L;23F5E;;;;N;;;;; -2F911;CJK COMPATIBILITY IDEOGRAPH-2F911;Lo;0;L;23F8E;;;;N;;;;; -2F912;CJK COMPATIBILITY IDEOGRAPH-2F912;Lo;0;L;6FC6;;;;N;;;;; -2F913;CJK COMPATIBILITY IDEOGRAPH-2F913;Lo;0;L;7039;;;;N;;;;; -2F914;CJK COMPATIBILITY IDEOGRAPH-2F914;Lo;0;L;701E;;;;N;;;;; -2F915;CJK COMPATIBILITY IDEOGRAPH-2F915;Lo;0;L;701B;;;;N;;;;; -2F916;CJK COMPATIBILITY IDEOGRAPH-2F916;Lo;0;L;3D96;;;;N;;;;; -2F917;CJK COMPATIBILITY IDEOGRAPH-2F917;Lo;0;L;704A;;;;N;;;;; -2F918;CJK COMPATIBILITY IDEOGRAPH-2F918;Lo;0;L;707D;;;;N;;;;; -2F919;CJK COMPATIBILITY IDEOGRAPH-2F919;Lo;0;L;7077;;;;N;;;;; -2F91A;CJK COMPATIBILITY IDEOGRAPH-2F91A;Lo;0;L;70AD;;;;N;;;;; -2F91B;CJK COMPATIBILITY IDEOGRAPH-2F91B;Lo;0;L;20525;;;;N;;;;; -2F91C;CJK COMPATIBILITY IDEOGRAPH-2F91C;Lo;0;L;7145;;;;N;;;;; -2F91D;CJK COMPATIBILITY IDEOGRAPH-2F91D;Lo;0;L;24263;;;;N;;;;; -2F91E;CJK COMPATIBILITY IDEOGRAPH-2F91E;Lo;0;L;719C;;;;N;;;;; -2F91F;CJK COMPATIBILITY IDEOGRAPH-2F91F;Lo;0;L;243AB;;;;N;;;;; -2F920;CJK COMPATIBILITY IDEOGRAPH-2F920;Lo;0;L;7228;;;;N;;;;; -2F921;CJK COMPATIBILITY IDEOGRAPH-2F921;Lo;0;L;7235;;;;N;;;;; -2F922;CJK COMPATIBILITY IDEOGRAPH-2F922;Lo;0;L;7250;;;;N;;;;; -2F923;CJK COMPATIBILITY IDEOGRAPH-2F923;Lo;0;L;24608;;;;N;;;;; -2F924;CJK COMPATIBILITY IDEOGRAPH-2F924;Lo;0;L;7280;;;;N;;;;; -2F925;CJK COMPATIBILITY IDEOGRAPH-2F925;Lo;0;L;7295;;;;N;;;;; -2F926;CJK COMPATIBILITY IDEOGRAPH-2F926;Lo;0;L;24735;;;;N;;;;; -2F927;CJK COMPATIBILITY IDEOGRAPH-2F927;Lo;0;L;24814;;;;N;;;;; -2F928;CJK COMPATIBILITY IDEOGRAPH-2F928;Lo;0;L;737A;;;;N;;;;; -2F929;CJK COMPATIBILITY IDEOGRAPH-2F929;Lo;0;L;738B;;;;N;;;;; -2F92A;CJK COMPATIBILITY IDEOGRAPH-2F92A;Lo;0;L;3EAC;;;;N;;;;; -2F92B;CJK COMPATIBILITY IDEOGRAPH-2F92B;Lo;0;L;73A5;;;;N;;;;; -2F92C;CJK COMPATIBILITY IDEOGRAPH-2F92C;Lo;0;L;3EB8;;;;N;;;;; -2F92D;CJK COMPATIBILITY IDEOGRAPH-2F92D;Lo;0;L;3EB8;;;;N;;;;; -2F92E;CJK COMPATIBILITY IDEOGRAPH-2F92E;Lo;0;L;7447;;;;N;;;;; -2F92F;CJK COMPATIBILITY IDEOGRAPH-2F92F;Lo;0;L;745C;;;;N;;;;; -2F930;CJK COMPATIBILITY IDEOGRAPH-2F930;Lo;0;L;7471;;;;N;;;;; -2F931;CJK COMPATIBILITY IDEOGRAPH-2F931;Lo;0;L;7485;;;;N;;;;; -2F932;CJK COMPATIBILITY IDEOGRAPH-2F932;Lo;0;L;74CA;;;;N;;;;; -2F933;CJK COMPATIBILITY IDEOGRAPH-2F933;Lo;0;L;3F1B;;;;N;;;;; -2F934;CJK COMPATIBILITY IDEOGRAPH-2F934;Lo;0;L;7524;;;;N;;;;; -2F935;CJK COMPATIBILITY IDEOGRAPH-2F935;Lo;0;L;24C36;;;;N;;;;; -2F936;CJK COMPATIBILITY IDEOGRAPH-2F936;Lo;0;L;753E;;;;N;;;;; -2F937;CJK COMPATIBILITY IDEOGRAPH-2F937;Lo;0;L;24C92;;;;N;;;;; -2F938;CJK COMPATIBILITY IDEOGRAPH-2F938;Lo;0;L;7570;;;;N;;;;; -2F939;CJK COMPATIBILITY IDEOGRAPH-2F939;Lo;0;L;2219F;;;;N;;;;; -2F93A;CJK COMPATIBILITY IDEOGRAPH-2F93A;Lo;0;L;7610;;;;N;;;;; -2F93B;CJK COMPATIBILITY IDEOGRAPH-2F93B;Lo;0;L;24FA1;;;;N;;;;; -2F93C;CJK COMPATIBILITY IDEOGRAPH-2F93C;Lo;0;L;24FB8;;;;N;;;;; -2F93D;CJK COMPATIBILITY IDEOGRAPH-2F93D;Lo;0;L;25044;;;;N;;;;; -2F93E;CJK COMPATIBILITY IDEOGRAPH-2F93E;Lo;0;L;3FFC;;;;N;;;;; -2F93F;CJK COMPATIBILITY IDEOGRAPH-2F93F;Lo;0;L;4008;;;;N;;;;; -2F940;CJK COMPATIBILITY IDEOGRAPH-2F940;Lo;0;L;76F4;;;;N;;;;; -2F941;CJK COMPATIBILITY IDEOGRAPH-2F941;Lo;0;L;250F3;;;;N;;;;; -2F942;CJK COMPATIBILITY IDEOGRAPH-2F942;Lo;0;L;250F2;;;;N;;;;; -2F943;CJK COMPATIBILITY IDEOGRAPH-2F943;Lo;0;L;25119;;;;N;;;;; -2F944;CJK COMPATIBILITY IDEOGRAPH-2F944;Lo;0;L;25133;;;;N;;;;; -2F945;CJK COMPATIBILITY IDEOGRAPH-2F945;Lo;0;L;771E;;;;N;;;;; -2F946;CJK COMPATIBILITY IDEOGRAPH-2F946;Lo;0;L;771F;;;;N;;;;; -2F947;CJK COMPATIBILITY IDEOGRAPH-2F947;Lo;0;L;771F;;;;N;;;;; -2F948;CJK COMPATIBILITY IDEOGRAPH-2F948;Lo;0;L;774A;;;;N;;;;; -2F949;CJK COMPATIBILITY IDEOGRAPH-2F949;Lo;0;L;4039;;;;N;;;;; -2F94A;CJK COMPATIBILITY IDEOGRAPH-2F94A;Lo;0;L;778B;;;;N;;;;; -2F94B;CJK COMPATIBILITY IDEOGRAPH-2F94B;Lo;0;L;4046;;;;N;;;;; -2F94C;CJK COMPATIBILITY IDEOGRAPH-2F94C;Lo;0;L;4096;;;;N;;;;; -2F94D;CJK COMPATIBILITY IDEOGRAPH-2F94D;Lo;0;L;2541D;;;;N;;;;; -2F94E;CJK COMPATIBILITY IDEOGRAPH-2F94E;Lo;0;L;784E;;;;N;;;;; -2F94F;CJK COMPATIBILITY IDEOGRAPH-2F94F;Lo;0;L;788C;;;;N;;;;; -2F950;CJK COMPATIBILITY IDEOGRAPH-2F950;Lo;0;L;78CC;;;;N;;;;; -2F951;CJK COMPATIBILITY IDEOGRAPH-2F951;Lo;0;L;40E3;;;;N;;;;; -2F952;CJK COMPATIBILITY IDEOGRAPH-2F952;Lo;0;L;25626;;;;N;;;;; -2F953;CJK COMPATIBILITY IDEOGRAPH-2F953;Lo;0;L;7956;;;;N;;;;; -2F954;CJK COMPATIBILITY IDEOGRAPH-2F954;Lo;0;L;2569A;;;;N;;;;; -2F955;CJK COMPATIBILITY IDEOGRAPH-2F955;Lo;0;L;256C5;;;;N;;;;; -2F956;CJK COMPATIBILITY IDEOGRAPH-2F956;Lo;0;L;798F;;;;N;;;;; -2F957;CJK COMPATIBILITY IDEOGRAPH-2F957;Lo;0;L;79EB;;;;N;;;;; -2F958;CJK COMPATIBILITY IDEOGRAPH-2F958;Lo;0;L;412F;;;;N;;;;; -2F959;CJK COMPATIBILITY IDEOGRAPH-2F959;Lo;0;L;7A40;;;;N;;;;; -2F95A;CJK COMPATIBILITY IDEOGRAPH-2F95A;Lo;0;L;7A4A;;;;N;;;;; -2F95B;CJK COMPATIBILITY IDEOGRAPH-2F95B;Lo;0;L;7A4F;;;;N;;;;; -2F95C;CJK COMPATIBILITY IDEOGRAPH-2F95C;Lo;0;L;2597C;;;;N;;;;; -2F95D;CJK COMPATIBILITY IDEOGRAPH-2F95D;Lo;0;L;25AA7;;;;N;;;;; -2F95E;CJK COMPATIBILITY IDEOGRAPH-2F95E;Lo;0;L;25AA7;;;;N;;;;; -2F95F;CJK COMPATIBILITY IDEOGRAPH-2F95F;Lo;0;L;7AEE;;;;N;;;;; -2F960;CJK COMPATIBILITY IDEOGRAPH-2F960;Lo;0;L;4202;;;;N;;;;; -2F961;CJK COMPATIBILITY IDEOGRAPH-2F961;Lo;0;L;25BAB;;;;N;;;;; -2F962;CJK COMPATIBILITY IDEOGRAPH-2F962;Lo;0;L;7BC6;;;;N;;;;; -2F963;CJK COMPATIBILITY IDEOGRAPH-2F963;Lo;0;L;7BC9;;;;N;;;;; -2F964;CJK COMPATIBILITY IDEOGRAPH-2F964;Lo;0;L;4227;;;;N;;;;; -2F965;CJK COMPATIBILITY IDEOGRAPH-2F965;Lo;0;L;25C80;;;;N;;;;; -2F966;CJK COMPATIBILITY IDEOGRAPH-2F966;Lo;0;L;7CD2;;;;N;;;;; -2F967;CJK COMPATIBILITY IDEOGRAPH-2F967;Lo;0;L;42A0;;;;N;;;;; -2F968;CJK COMPATIBILITY IDEOGRAPH-2F968;Lo;0;L;7CE8;;;;N;;;;; -2F969;CJK COMPATIBILITY IDEOGRAPH-2F969;Lo;0;L;7CE3;;;;N;;;;; -2F96A;CJK COMPATIBILITY IDEOGRAPH-2F96A;Lo;0;L;7D00;;;;N;;;;; -2F96B;CJK COMPATIBILITY IDEOGRAPH-2F96B;Lo;0;L;25F86;;;;N;;;;; -2F96C;CJK COMPATIBILITY IDEOGRAPH-2F96C;Lo;0;L;7D63;;;;N;;;;; -2F96D;CJK COMPATIBILITY IDEOGRAPH-2F96D;Lo;0;L;4301;;;;N;;;;; -2F96E;CJK COMPATIBILITY IDEOGRAPH-2F96E;Lo;0;L;7DC7;;;;N;;;;; -2F96F;CJK COMPATIBILITY IDEOGRAPH-2F96F;Lo;0;L;7E02;;;;N;;;;; -2F970;CJK COMPATIBILITY IDEOGRAPH-2F970;Lo;0;L;7E45;;;;N;;;;; -2F971;CJK COMPATIBILITY IDEOGRAPH-2F971;Lo;0;L;4334;;;;N;;;;; -2F972;CJK COMPATIBILITY IDEOGRAPH-2F972;Lo;0;L;26228;;;;N;;;;; -2F973;CJK COMPATIBILITY IDEOGRAPH-2F973;Lo;0;L;26247;;;;N;;;;; -2F974;CJK COMPATIBILITY IDEOGRAPH-2F974;Lo;0;L;4359;;;;N;;;;; -2F975;CJK COMPATIBILITY IDEOGRAPH-2F975;Lo;0;L;262D9;;;;N;;;;; -2F976;CJK COMPATIBILITY IDEOGRAPH-2F976;Lo;0;L;7F7A;;;;N;;;;; -2F977;CJK COMPATIBILITY IDEOGRAPH-2F977;Lo;0;L;2633E;;;;N;;;;; -2F978;CJK COMPATIBILITY IDEOGRAPH-2F978;Lo;0;L;7F95;;;;N;;;;; -2F979;CJK COMPATIBILITY IDEOGRAPH-2F979;Lo;0;L;7FFA;;;;N;;;;; -2F97A;CJK COMPATIBILITY IDEOGRAPH-2F97A;Lo;0;L;8005;;;;N;;;;; -2F97B;CJK COMPATIBILITY IDEOGRAPH-2F97B;Lo;0;L;264DA;;;;N;;;;; -2F97C;CJK COMPATIBILITY IDEOGRAPH-2F97C;Lo;0;L;26523;;;;N;;;;; -2F97D;CJK COMPATIBILITY IDEOGRAPH-2F97D;Lo;0;L;8060;;;;N;;;;; -2F97E;CJK COMPATIBILITY IDEOGRAPH-2F97E;Lo;0;L;265A8;;;;N;;;;; -2F97F;CJK COMPATIBILITY IDEOGRAPH-2F97F;Lo;0;L;8070;;;;N;;;;; -2F980;CJK COMPATIBILITY IDEOGRAPH-2F980;Lo;0;L;2335F;;;;N;;;;; -2F981;CJK COMPATIBILITY IDEOGRAPH-2F981;Lo;0;L;43D5;;;;N;;;;; -2F982;CJK COMPATIBILITY IDEOGRAPH-2F982;Lo;0;L;80B2;;;;N;;;;; -2F983;CJK COMPATIBILITY IDEOGRAPH-2F983;Lo;0;L;8103;;;;N;;;;; -2F984;CJK COMPATIBILITY IDEOGRAPH-2F984;Lo;0;L;440B;;;;N;;;;; -2F985;CJK COMPATIBILITY IDEOGRAPH-2F985;Lo;0;L;813E;;;;N;;;;; -2F986;CJK COMPATIBILITY IDEOGRAPH-2F986;Lo;0;L;5AB5;;;;N;;;;; -2F987;CJK COMPATIBILITY IDEOGRAPH-2F987;Lo;0;L;267A7;;;;N;;;;; -2F988;CJK COMPATIBILITY IDEOGRAPH-2F988;Lo;0;L;267B5;;;;N;;;;; -2F989;CJK COMPATIBILITY IDEOGRAPH-2F989;Lo;0;L;23393;;;;N;;;;; -2F98A;CJK COMPATIBILITY IDEOGRAPH-2F98A;Lo;0;L;2339C;;;;N;;;;; -2F98B;CJK COMPATIBILITY IDEOGRAPH-2F98B;Lo;0;L;8201;;;;N;;;;; -2F98C;CJK COMPATIBILITY IDEOGRAPH-2F98C;Lo;0;L;8204;;;;N;;;;; -2F98D;CJK COMPATIBILITY IDEOGRAPH-2F98D;Lo;0;L;8F9E;;;;N;;;;; -2F98E;CJK COMPATIBILITY IDEOGRAPH-2F98E;Lo;0;L;446B;;;;N;;;;; -2F98F;CJK COMPATIBILITY IDEOGRAPH-2F98F;Lo;0;L;8291;;;;N;;;;; -2F990;CJK COMPATIBILITY IDEOGRAPH-2F990;Lo;0;L;828B;;;;N;;;;; -2F991;CJK COMPATIBILITY IDEOGRAPH-2F991;Lo;0;L;829D;;;;N;;;;; -2F992;CJK COMPATIBILITY IDEOGRAPH-2F992;Lo;0;L;52B3;;;;N;;;;; -2F993;CJK COMPATIBILITY IDEOGRAPH-2F993;Lo;0;L;82B1;;;;N;;;;; -2F994;CJK COMPATIBILITY IDEOGRAPH-2F994;Lo;0;L;82B3;;;;N;;;;; -2F995;CJK COMPATIBILITY IDEOGRAPH-2F995;Lo;0;L;82BD;;;;N;;;;; -2F996;CJK COMPATIBILITY IDEOGRAPH-2F996;Lo;0;L;82E6;;;;N;;;;; -2F997;CJK COMPATIBILITY IDEOGRAPH-2F997;Lo;0;L;26B3C;;;;N;;;;; -2F998;CJK COMPATIBILITY IDEOGRAPH-2F998;Lo;0;L;82E5;;;;N;;;;; -2F999;CJK COMPATIBILITY IDEOGRAPH-2F999;Lo;0;L;831D;;;;N;;;;; -2F99A;CJK COMPATIBILITY IDEOGRAPH-2F99A;Lo;0;L;8363;;;;N;;;;; -2F99B;CJK COMPATIBILITY IDEOGRAPH-2F99B;Lo;0;L;83AD;;;;N;;;;; -2F99C;CJK COMPATIBILITY IDEOGRAPH-2F99C;Lo;0;L;8323;;;;N;;;;; -2F99D;CJK COMPATIBILITY IDEOGRAPH-2F99D;Lo;0;L;83BD;;;;N;;;;; -2F99E;CJK COMPATIBILITY IDEOGRAPH-2F99E;Lo;0;L;83E7;;;;N;;;;; -2F99F;CJK COMPATIBILITY IDEOGRAPH-2F99F;Lo;0;L;8457;;;;N;;;;; -2F9A0;CJK COMPATIBILITY IDEOGRAPH-2F9A0;Lo;0;L;8353;;;;N;;;;; -2F9A1;CJK COMPATIBILITY IDEOGRAPH-2F9A1;Lo;0;L;83CA;;;;N;;;;; -2F9A2;CJK COMPATIBILITY IDEOGRAPH-2F9A2;Lo;0;L;83CC;;;;N;;;;; -2F9A3;CJK COMPATIBILITY IDEOGRAPH-2F9A3;Lo;0;L;83DC;;;;N;;;;; -2F9A4;CJK COMPATIBILITY IDEOGRAPH-2F9A4;Lo;0;L;26C36;;;;N;;;;; -2F9A5;CJK COMPATIBILITY IDEOGRAPH-2F9A5;Lo;0;L;26D6B;;;;N;;;;; -2F9A6;CJK COMPATIBILITY IDEOGRAPH-2F9A6;Lo;0;L;26CD5;;;;N;;;;; -2F9A7;CJK COMPATIBILITY IDEOGRAPH-2F9A7;Lo;0;L;452B;;;;N;;;;; -2F9A8;CJK COMPATIBILITY IDEOGRAPH-2F9A8;Lo;0;L;84F1;;;;N;;;;; -2F9A9;CJK COMPATIBILITY IDEOGRAPH-2F9A9;Lo;0;L;84F3;;;;N;;;;; -2F9AA;CJK COMPATIBILITY IDEOGRAPH-2F9AA;Lo;0;L;8516;;;;N;;;;; -2F9AB;CJK COMPATIBILITY IDEOGRAPH-2F9AB;Lo;0;L;273CA;;;;N;;;;; -2F9AC;CJK COMPATIBILITY IDEOGRAPH-2F9AC;Lo;0;L;8564;;;;N;;;;; -2F9AD;CJK COMPATIBILITY IDEOGRAPH-2F9AD;Lo;0;L;26F2C;;;;N;;;;; -2F9AE;CJK COMPATIBILITY IDEOGRAPH-2F9AE;Lo;0;L;455D;;;;N;;;;; -2F9AF;CJK COMPATIBILITY IDEOGRAPH-2F9AF;Lo;0;L;4561;;;;N;;;;; -2F9B0;CJK COMPATIBILITY IDEOGRAPH-2F9B0;Lo;0;L;26FB1;;;;N;;;;; -2F9B1;CJK COMPATIBILITY IDEOGRAPH-2F9B1;Lo;0;L;270D2;;;;N;;;;; -2F9B2;CJK COMPATIBILITY IDEOGRAPH-2F9B2;Lo;0;L;456B;;;;N;;;;; -2F9B3;CJK COMPATIBILITY IDEOGRAPH-2F9B3;Lo;0;L;8650;;;;N;;;;; -2F9B4;CJK COMPATIBILITY IDEOGRAPH-2F9B4;Lo;0;L;865C;;;;N;;;;; -2F9B5;CJK COMPATIBILITY IDEOGRAPH-2F9B5;Lo;0;L;8667;;;;N;;;;; -2F9B6;CJK COMPATIBILITY IDEOGRAPH-2F9B6;Lo;0;L;8669;;;;N;;;;; -2F9B7;CJK COMPATIBILITY IDEOGRAPH-2F9B7;Lo;0;L;86A9;;;;N;;;;; -2F9B8;CJK COMPATIBILITY IDEOGRAPH-2F9B8;Lo;0;L;8688;;;;N;;;;; -2F9B9;CJK COMPATIBILITY IDEOGRAPH-2F9B9;Lo;0;L;870E;;;;N;;;;; -2F9BA;CJK COMPATIBILITY IDEOGRAPH-2F9BA;Lo;0;L;86E2;;;;N;;;;; -2F9BB;CJK COMPATIBILITY IDEOGRAPH-2F9BB;Lo;0;L;8779;;;;N;;;;; -2F9BC;CJK COMPATIBILITY IDEOGRAPH-2F9BC;Lo;0;L;8728;;;;N;;;;; -2F9BD;CJK COMPATIBILITY IDEOGRAPH-2F9BD;Lo;0;L;876B;;;;N;;;;; -2F9BE;CJK COMPATIBILITY IDEOGRAPH-2F9BE;Lo;0;L;8786;;;;N;;;;; -2F9BF;CJK COMPATIBILITY IDEOGRAPH-2F9BF;Lo;0;L;45D7;;;;N;;;;; -2F9C0;CJK COMPATIBILITY IDEOGRAPH-2F9C0;Lo;0;L;87E1;;;;N;;;;; -2F9C1;CJK COMPATIBILITY IDEOGRAPH-2F9C1;Lo;0;L;8801;;;;N;;;;; -2F9C2;CJK COMPATIBILITY IDEOGRAPH-2F9C2;Lo;0;L;45F9;;;;N;;;;; -2F9C3;CJK COMPATIBILITY IDEOGRAPH-2F9C3;Lo;0;L;8860;;;;N;;;;; -2F9C4;CJK COMPATIBILITY IDEOGRAPH-2F9C4;Lo;0;L;8863;;;;N;;;;; -2F9C5;CJK COMPATIBILITY IDEOGRAPH-2F9C5;Lo;0;L;27667;;;;N;;;;; -2F9C6;CJK COMPATIBILITY IDEOGRAPH-2F9C6;Lo;0;L;88D7;;;;N;;;;; -2F9C7;CJK COMPATIBILITY IDEOGRAPH-2F9C7;Lo;0;L;88DE;;;;N;;;;; -2F9C8;CJK COMPATIBILITY IDEOGRAPH-2F9C8;Lo;0;L;4635;;;;N;;;;; -2F9C9;CJK COMPATIBILITY IDEOGRAPH-2F9C9;Lo;0;L;88FA;;;;N;;;;; -2F9CA;CJK COMPATIBILITY IDEOGRAPH-2F9CA;Lo;0;L;34BB;;;;N;;;;; -2F9CB;CJK COMPATIBILITY IDEOGRAPH-2F9CB;Lo;0;L;278AE;;;;N;;;;; -2F9CC;CJK COMPATIBILITY IDEOGRAPH-2F9CC;Lo;0;L;27966;;;;N;;;;; -2F9CD;CJK COMPATIBILITY IDEOGRAPH-2F9CD;Lo;0;L;46BE;;;;N;;;;; -2F9CE;CJK COMPATIBILITY IDEOGRAPH-2F9CE;Lo;0;L;46C7;;;;N;;;;; -2F9CF;CJK COMPATIBILITY IDEOGRAPH-2F9CF;Lo;0;L;8AA0;;;;N;;;;; -2F9D0;CJK COMPATIBILITY IDEOGRAPH-2F9D0;Lo;0;L;8AED;;;;N;;;;; -2F9D1;CJK COMPATIBILITY IDEOGRAPH-2F9D1;Lo;0;L;8B8A;;;;N;;;;; -2F9D2;CJK COMPATIBILITY IDEOGRAPH-2F9D2;Lo;0;L;8C55;;;;N;;;;; -2F9D3;CJK COMPATIBILITY IDEOGRAPH-2F9D3;Lo;0;L;27CA8;;;;N;;;;; -2F9D4;CJK COMPATIBILITY IDEOGRAPH-2F9D4;Lo;0;L;8CAB;;;;N;;;;; -2F9D5;CJK COMPATIBILITY IDEOGRAPH-2F9D5;Lo;0;L;8CC1;;;;N;;;;; -2F9D6;CJK COMPATIBILITY IDEOGRAPH-2F9D6;Lo;0;L;8D1B;;;;N;;;;; -2F9D7;CJK COMPATIBILITY IDEOGRAPH-2F9D7;Lo;0;L;8D77;;;;N;;;;; -2F9D8;CJK COMPATIBILITY IDEOGRAPH-2F9D8;Lo;0;L;27F2F;;;;N;;;;; -2F9D9;CJK COMPATIBILITY IDEOGRAPH-2F9D9;Lo;0;L;20804;;;;N;;;;; -2F9DA;CJK COMPATIBILITY IDEOGRAPH-2F9DA;Lo;0;L;8DCB;;;;N;;;;; -2F9DB;CJK COMPATIBILITY IDEOGRAPH-2F9DB;Lo;0;L;8DBC;;;;N;;;;; -2F9DC;CJK COMPATIBILITY IDEOGRAPH-2F9DC;Lo;0;L;8DF0;;;;N;;;;; -2F9DD;CJK COMPATIBILITY IDEOGRAPH-2F9DD;Lo;0;L;208DE;;;;N;;;;; -2F9DE;CJK COMPATIBILITY IDEOGRAPH-2F9DE;Lo;0;L;8ED4;;;;N;;;;; -2F9DF;CJK COMPATIBILITY IDEOGRAPH-2F9DF;Lo;0;L;8F38;;;;N;;;;; -2F9E0;CJK COMPATIBILITY IDEOGRAPH-2F9E0;Lo;0;L;285D2;;;;N;;;;; -2F9E1;CJK COMPATIBILITY IDEOGRAPH-2F9E1;Lo;0;L;285ED;;;;N;;;;; -2F9E2;CJK COMPATIBILITY IDEOGRAPH-2F9E2;Lo;0;L;9094;;;;N;;;;; -2F9E3;CJK COMPATIBILITY IDEOGRAPH-2F9E3;Lo;0;L;90F1;;;;N;;;;; -2F9E4;CJK COMPATIBILITY IDEOGRAPH-2F9E4;Lo;0;L;9111;;;;N;;;;; -2F9E5;CJK COMPATIBILITY IDEOGRAPH-2F9E5;Lo;0;L;2872E;;;;N;;;;; -2F9E6;CJK COMPATIBILITY IDEOGRAPH-2F9E6;Lo;0;L;911B;;;;N;;;;; -2F9E7;CJK COMPATIBILITY IDEOGRAPH-2F9E7;Lo;0;L;9238;;;;N;;;;; -2F9E8;CJK COMPATIBILITY IDEOGRAPH-2F9E8;Lo;0;L;92D7;;;;N;;;;; -2F9E9;CJK COMPATIBILITY IDEOGRAPH-2F9E9;Lo;0;L;92D8;;;;N;;;;; -2F9EA;CJK COMPATIBILITY IDEOGRAPH-2F9EA;Lo;0;L;927C;;;;N;;;;; -2F9EB;CJK COMPATIBILITY IDEOGRAPH-2F9EB;Lo;0;L;93F9;;;;N;;;;; -2F9EC;CJK COMPATIBILITY IDEOGRAPH-2F9EC;Lo;0;L;9415;;;;N;;;;; -2F9ED;CJK COMPATIBILITY IDEOGRAPH-2F9ED;Lo;0;L;28BFA;;;;N;;;;; -2F9EE;CJK COMPATIBILITY IDEOGRAPH-2F9EE;Lo;0;L;958B;;;;N;;;;; -2F9EF;CJK COMPATIBILITY IDEOGRAPH-2F9EF;Lo;0;L;4995;;;;N;;;;; -2F9F0;CJK COMPATIBILITY IDEOGRAPH-2F9F0;Lo;0;L;95B7;;;;N;;;;; -2F9F1;CJK COMPATIBILITY IDEOGRAPH-2F9F1;Lo;0;L;28D77;;;;N;;;;; -2F9F2;CJK COMPATIBILITY IDEOGRAPH-2F9F2;Lo;0;L;49E6;;;;N;;;;; -2F9F3;CJK COMPATIBILITY IDEOGRAPH-2F9F3;Lo;0;L;96C3;;;;N;;;;; -2F9F4;CJK COMPATIBILITY IDEOGRAPH-2F9F4;Lo;0;L;5DB2;;;;N;;;;; -2F9F5;CJK COMPATIBILITY IDEOGRAPH-2F9F5;Lo;0;L;9723;;;;N;;;;; -2F9F6;CJK COMPATIBILITY IDEOGRAPH-2F9F6;Lo;0;L;29145;;;;N;;;;; -2F9F7;CJK COMPATIBILITY IDEOGRAPH-2F9F7;Lo;0;L;2921A;;;;N;;;;; -2F9F8;CJK COMPATIBILITY IDEOGRAPH-2F9F8;Lo;0;L;4A6E;;;;N;;;;; -2F9F9;CJK COMPATIBILITY IDEOGRAPH-2F9F9;Lo;0;L;4A76;;;;N;;;;; -2F9FA;CJK COMPATIBILITY IDEOGRAPH-2F9FA;Lo;0;L;97E0;;;;N;;;;; -2F9FB;CJK COMPATIBILITY IDEOGRAPH-2F9FB;Lo;0;L;2940A;;;;N;;;;; -2F9FC;CJK COMPATIBILITY IDEOGRAPH-2F9FC;Lo;0;L;4AB2;;;;N;;;;; -2F9FD;CJK COMPATIBILITY IDEOGRAPH-2F9FD;Lo;0;L;29496;;;;N;;;;; -2F9FE;CJK COMPATIBILITY IDEOGRAPH-2F9FE;Lo;0;L;980B;;;;N;;;;; -2F9FF;CJK COMPATIBILITY IDEOGRAPH-2F9FF;Lo;0;L;980B;;;;N;;;;; -2FA00;CJK COMPATIBILITY IDEOGRAPH-2FA00;Lo;0;L;9829;;;;N;;;;; -2FA01;CJK COMPATIBILITY IDEOGRAPH-2FA01;Lo;0;L;295B6;;;;N;;;;; -2FA02;CJK COMPATIBILITY IDEOGRAPH-2FA02;Lo;0;L;98E2;;;;N;;;;; -2FA03;CJK COMPATIBILITY IDEOGRAPH-2FA03;Lo;0;L;4B33;;;;N;;;;; -2FA04;CJK COMPATIBILITY IDEOGRAPH-2FA04;Lo;0;L;9929;;;;N;;;;; -2FA05;CJK COMPATIBILITY IDEOGRAPH-2FA05;Lo;0;L;99A7;;;;N;;;;; -2FA06;CJK COMPATIBILITY IDEOGRAPH-2FA06;Lo;0;L;99C2;;;;N;;;;; -2FA07;CJK COMPATIBILITY IDEOGRAPH-2FA07;Lo;0;L;99FE;;;;N;;;;; -2FA08;CJK COMPATIBILITY IDEOGRAPH-2FA08;Lo;0;L;4BCE;;;;N;;;;; -2FA09;CJK COMPATIBILITY IDEOGRAPH-2FA09;Lo;0;L;29B30;;;;N;;;;; -2FA0A;CJK COMPATIBILITY IDEOGRAPH-2FA0A;Lo;0;L;9B12;;;;N;;;;; -2FA0B;CJK COMPATIBILITY IDEOGRAPH-2FA0B;Lo;0;L;9C40;;;;N;;;;; -2FA0C;CJK COMPATIBILITY IDEOGRAPH-2FA0C;Lo;0;L;9CFD;;;;N;;;;; -2FA0D;CJK COMPATIBILITY IDEOGRAPH-2FA0D;Lo;0;L;4CCE;;;;N;;;;; -2FA0E;CJK COMPATIBILITY IDEOGRAPH-2FA0E;Lo;0;L;4CED;;;;N;;;;; -2FA0F;CJK COMPATIBILITY IDEOGRAPH-2FA0F;Lo;0;L;9D67;;;;N;;;;; -2FA10;CJK COMPATIBILITY IDEOGRAPH-2FA10;Lo;0;L;2A0CE;;;;N;;;;; -2FA11;CJK COMPATIBILITY IDEOGRAPH-2FA11;Lo;0;L;4CF8;;;;N;;;;; -2FA12;CJK COMPATIBILITY IDEOGRAPH-2FA12;Lo;0;L;2A105;;;;N;;;;; -2FA13;CJK COMPATIBILITY IDEOGRAPH-2FA13;Lo;0;L;2A20E;;;;N;;;;; -2FA14;CJK COMPATIBILITY IDEOGRAPH-2FA14;Lo;0;L;2A291;;;;N;;;;; -2FA15;CJK COMPATIBILITY IDEOGRAPH-2FA15;Lo;0;L;9EBB;;;;N;;;;; -2FA16;CJK COMPATIBILITY IDEOGRAPH-2FA16;Lo;0;L;4D56;;;;N;;;;; -2FA17;CJK COMPATIBILITY IDEOGRAPH-2FA17;Lo;0;L;9EF9;;;;N;;;;; -2FA18;CJK COMPATIBILITY IDEOGRAPH-2FA18;Lo;0;L;9EFE;;;;N;;;;; -2FA19;CJK COMPATIBILITY IDEOGRAPH-2FA19;Lo;0;L;9F05;;;;N;;;;; -2FA1A;CJK COMPATIBILITY IDEOGRAPH-2FA1A;Lo;0;L;9F0F;;;;N;;;;; -2FA1B;CJK COMPATIBILITY IDEOGRAPH-2FA1B;Lo;0;L;9F16;;;;N;;;;; -2FA1C;CJK COMPATIBILITY IDEOGRAPH-2FA1C;Lo;0;L;9F3B;;;;N;;;;; -2FA1D;CJK COMPATIBILITY IDEOGRAPH-2FA1D;Lo;0;L;2A600;;;;N;;;;; diff --git a/public_html/2022/newcms/pdf/utils/UnicodeRanges.php b/public_html/2022/newcms/pdf/utils/UnicodeRanges.php deleted file mode 100644 index ce2b1a2..0000000 --- a/public_html/2022/newcms/pdf/utils/UnicodeRanges.php +++ /dev/null @@ -1,218 +0,0 @@ - '0000', 'endhex'=>'007E', 'startdec'=> 0, 'enddec'=>126 , 'range'=>'Basic Latin'), -array('starthex'=> '00A0', 'endhex'=>'00FF', 'startdec'=> 160, 'enddec'=>255 , 'range'=>'Latin-1 Supplement'), -array('starthex'=> '0100', 'endhex'=>'017F', 'startdec'=> 256, 'enddec'=>383 , 'range'=>'Latin Extended-A'), -array('starthex'=> '0180', 'endhex'=>'024F', 'startdec'=> 384, 'enddec'=>591 , 'range'=>'Latin Extended-B'), -array('starthex'=> '0250', 'endhex'=>'02AF', 'startdec'=> 592, 'enddec'=>687 , 'range'=>'IPA Extensions'), -array('starthex'=> '02B0', 'endhex'=>'02FF', 'startdec'=> 688, 'enddec'=>767 , 'range'=>'Spacing Modifier Letters'), -array('starthex'=> '0300', 'endhex'=>'036F', 'startdec'=> 768, 'enddec'=>879 , 'range'=>'Combining Diacritical Marks', 'combining'=>true), -array('starthex'=> '0370', 'endhex'=>'03FF', 'startdec'=> 880, 'enddec'=>1023 , 'range'=>'Greek'), -array('starthex'=> '0400', 'endhex'=>'04FF', 'startdec'=> 1024, 'enddec'=>1279 , 'range'=>'Cyrillic'), -array('starthex'=> '0500', 'endhex'=>'052F', 'startdec'=> 1280, 'enddec'=>1327 , 'range'=>'Cyrillic Supplement'), -array('starthex'=> '0530', 'endhex'=>'058F', 'startdec'=> 1328, 'enddec'=>1423 , 'range'=>'Armenian'), -array('starthex'=> '0590', 'endhex'=>'05FF', 'startdec'=> 1424, 'enddec'=>1535 , 'range'=>'Hebrew', 'rtl'=>true, 'special'=>true), -array('starthex'=> '0600', 'endhex'=>'06FF', 'startdec'=> 1536, 'enddec'=>1791 , 'range'=>'Arabic', 'rtl'=>true, 'special'=>true), -array('starthex'=> '0700', 'endhex'=>'074F', 'startdec'=> 1792, 'enddec'=>1871 , 'range'=>'Syriac', 'rtl'=>true, 'special'=>true), -array('starthex'=> '0750', 'endhex'=>'077F', 'startdec'=> 1872, 'enddec'=>1919 , 'range'=>'Arabic Supplement', 'rtl'=>true, 'special'=>true), -array('starthex'=> '0780', 'endhex'=>'07BF', 'startdec'=> 1920, 'enddec'=>1983 , 'range'=>'Thaana', 'rtl'=>true, 'special'=>true), -array('starthex'=> '07C0', 'endhex'=>'07FF', 'startdec'=> 1984, 'enddec'=>2047 , 'range'=>'N\'Ko (Mandenkan)', 'rtl'=>true), -array('starthex'=> '0800', 'endhex'=>'083E', 'startdec'=> 2048, 'enddec'=> 2110, 'range'=>'Samaritan', 'rtl'=>true), -array('starthex'=> '0900', 'endhex'=>'097F', 'startdec'=> 2304, 'enddec'=>2431 , 'range'=>'Devanagari', 'indic'=>true, 'special'=>true), -array('starthex'=> '0980', 'endhex'=>'09FF', 'startdec'=> 2432, 'enddec'=>2559 , 'range'=>'Bengali', 'indic'=>true, 'special'=>true), -array('starthex'=> '0A00', 'endhex'=>'0A7F', 'startdec'=> 2560, 'enddec'=>2687 , 'range'=>'Gurmukhi', 'indic'=>true, 'special'=>true), -array('starthex'=> '0A80', 'endhex'=>'0AFF', 'startdec'=> 2688, 'enddec'=>2815 , 'range'=>'Gujarati', 'indic'=>true, 'special'=>true), -array('starthex'=> '0B00', 'endhex'=>'0B7F', 'startdec'=> 2816, 'enddec'=>2943 , 'range'=>'Oriya', 'indic'=>true, 'special'=>true), -array('starthex'=> '0B80', 'endhex'=>'0BFF', 'startdec'=> 2944, 'enddec'=>3071 , 'range'=>'Tamil', 'indic'=>true, 'special'=>true), -array('starthex'=> '0C00', 'endhex'=>'0C7F', 'startdec'=> 3072, 'enddec'=>3199 , 'range'=>'Telugu', 'indic'=>true, 'special'=>true), -array('starthex'=> '0C80', 'endhex'=>'0CFF', 'startdec'=> 3200, 'enddec'=>3327 , 'range'=>'Kannada', 'indic'=>true, 'special'=>true), -array('starthex'=> '0D00', 'endhex'=>'0D7F', 'startdec'=> 3328, 'enddec'=>3455 , 'range'=>'Malayalam', 'indic'=>true, 'special'=>true), -array('starthex'=> '0D80', 'endhex'=>'0DFF', 'startdec'=> 3456, 'enddec'=>3583 , 'range'=>'Sinhala', 'special'=>true), -array('starthex'=> '0E00', 'endhex'=>'0E7F', 'startdec'=> 3584, 'enddec'=>3711 , 'range'=>'Thai'), -array('starthex'=> '0E80', 'endhex'=>'0EFF', 'startdec'=> 3712, 'enddec'=>3839 , 'range'=>'Lao'), -array('starthex'=> '0F00', 'endhex'=>'0FFF', 'startdec'=> 3840, 'enddec'=>4095 , 'range'=>'Tibetan', 'special'=>true), -array('starthex'=> '1000', 'endhex'=>'109F', 'startdec'=> 4096, 'enddec'=>4255 , 'range'=>'Myanmar', 'special'=>true), -array('starthex'=> '10A0', 'endhex'=>'10FF', 'startdec'=> 4256, 'enddec'=>4351 , 'range'=>'Georgian'), -array('starthex'=> '1100', 'endhex'=>'11FF', 'startdec'=> 4352, 'enddec'=>4607 , 'range'=>'Hangul Jamo', 'cjk'=>true), -array('starthex'=> '1200', 'endhex'=>'137F', 'startdec'=> 4608, 'enddec'=>4991 , 'range'=>'Ethiopic'), -array('starthex'=> '1380', 'endhex'=>'139F', 'startdec'=> 4992, 'enddec'=>5023 , 'range'=>'Ethiopic Supplement'), -array('starthex'=> '13A0', 'endhex'=>'13FF', 'startdec'=> 5024, 'enddec'=>5119 , 'range'=>'Cherokee'), -array('starthex'=> '1400', 'endhex'=>'167F', 'startdec'=> 5120, 'enddec'=>5759 , 'range'=>'Unified Canadian Aboriginal Syllabics'), -array('starthex'=> '1680', 'endhex'=>'169F', 'startdec'=> 5760, 'enddec'=>5791 , 'range'=>'Ogham'), -array('starthex'=> '16A0', 'endhex'=>'16FF', 'startdec'=> 5792, 'enddec'=>5887 , 'range'=>'Runic'), -array('starthex'=> '1700', 'endhex'=>'171F', 'startdec'=> 5888, 'enddec'=> 5919, 'range'=>'Tagalog (Philippine)'), -array('starthex'=> '1720', 'endhex'=>'173F', 'startdec'=> 5920, 'enddec'=> 5951, 'range'=>'Hanunoo (Philippine)'), -array('starthex'=> '1740', 'endhex'=>'175F', 'startdec'=> 5952, 'enddec'=> 5983, 'range'=>'Buhid (Philippine)'), -array('starthex'=> '1760', 'endhex'=>'177F', 'startdec'=> 5984, 'enddec'=> 6015, 'range'=>'Tagbanwa (Philippine)'), -array('starthex'=> '1780', 'endhex'=>'17FF', 'startdec'=> 6016, 'enddec'=>6143 , 'range'=>'Khmer', 'special'=>true), -array('starthex'=> '1800', 'endhex'=>'18AF', 'startdec'=> 6144, 'enddec'=>6319 , 'range'=>'Mongolian', 'vertical'=>true), -array('starthex'=> '18B0', 'endhex'=>'18F5', 'startdec'=> 6320, 'enddec'=>6389 , 'range'=>'Canadian Syllabics'), -array('starthex'=> '1900', 'endhex'=>'194F', 'startdec'=> 6400, 'enddec'=> 6479, 'range'=>'Limbu'), -array('starthex'=> '1950', 'endhex'=>'197F', 'startdec'=> 6480, 'enddec'=> 6527, 'range'=>'Tai Le'), -array('starthex'=> '1980', 'endhex'=>'19DF', 'startdec'=> 6528, 'enddec'=> 6623, 'range'=>'New Tai Lue'), -array('starthex'=> '19E0', 'endhex'=>'19FF', 'startdec'=> 6624, 'enddec'=> 6655, 'range'=>'Khmer Symbols', 'special'=>true), -array('starthex'=> '1A00', 'endhex'=>'1A1F', 'startdec'=> 6656, 'enddec'=> 6687, 'range'=>'Buginese'), -array('starthex'=> '1A20', 'endhex'=>'1AAF', 'startdec'=> 6688, 'enddec'=> 6831, 'range'=>'Tai Tham'), -array('starthex'=> '1B00', 'endhex'=>'1B7F', 'startdec'=> 6912, 'enddec'=> 7039, 'range'=>'Balinese', 'special'=>true), -array('starthex'=> '1B80', 'endhex'=>'1BBF', 'startdec'=> 7040, 'enddec'=> 7103, 'range'=>'Sundanese'), -array('starthex'=> '1C00', 'endhex'=>'1C4F', 'startdec'=> 7168, 'enddec'=> 7247, 'range'=>'Lepcha (Rong)'), -array('starthex'=> '1C50', 'endhex'=>'1C7F', 'startdec'=> 7248, 'enddec'=> 7295, 'range'=>'Ol Chiki (Santali / Ol Cemet)'), -array('starthex'=> '1CD0', 'endhex'=>'1CFF', 'startdec'=> 7376, 'enddec'=> 7423, 'range'=>'Vedic Extensions'), -array('starthex'=> '1D00', 'endhex'=>'1D7F', 'startdec'=> 7424, 'enddec'=> 7551, 'range'=>'Phonetic Extensions'), -array('starthex'=> '1D80', 'endhex'=>'1DBF', 'startdec'=> 7552, 'enddec'=> 7615, 'range'=>'Phonetic Extensions Supplement'), -array('starthex'=> '1DC0', 'endhex'=>'1DFF', 'startdec'=> 7616, 'enddec'=> 7679, 'range'=>'Combining Diacritical Marks Supplement', 'combining'=>true), -array('starthex'=> '1E00', 'endhex'=>'1EFF', 'startdec'=> 7680, 'enddec'=>7935 , 'range'=>'Latin Extended Additional'), -array('starthex'=> '1F00', 'endhex'=>'1FFF', 'startdec'=> 7936, 'enddec'=>8191 , 'range'=>'Greek Extended'), -array('starthex'=> '2000', 'endhex'=>'206F', 'startdec'=> 8192, 'enddec'=>8303 , 'range'=>'General Punctuation'), -array('starthex'=> '2070', 'endhex'=>'209F', 'startdec'=> 8304, 'enddec'=>8351 , 'range'=>'Superscripts and Subscripts'), -array('starthex'=> '20A0', 'endhex'=>'20CF', 'startdec'=> 8352, 'enddec'=>8399 , 'range'=>'Currency Symbols'), -array('starthex'=> '20D0', 'endhex'=>'20FF', 'startdec'=> 8400, 'enddec'=>8447 , 'range'=>'Combining Marks for Symbols', 'combining'=>true), -array('starthex'=> '2100', 'endhex'=>'214F', 'startdec'=> 8448, 'enddec'=>8527 , 'range'=>'Letterlike Symbols'), -array('starthex'=> '2150', 'endhex'=>'218F', 'startdec'=> 8528, 'enddec'=>8591 , 'range'=>'Number Forms'), -array('starthex'=> '2190', 'endhex'=>'21FF', 'startdec'=> 8592, 'enddec'=>8703 , 'range'=>'Arrows'), -array('starthex'=> '2200', 'endhex'=>'22FF', 'startdec'=> 8704, 'enddec'=>8959 , 'range'=>'Mathematical Operators'), -array('starthex'=> '2300', 'endhex'=>'23FF', 'startdec'=> 8960, 'enddec'=>9215 , 'range'=>'Miscellaneous Technical'), -array('starthex'=> '2400', 'endhex'=>'243F', 'startdec'=> 9216, 'enddec'=>9279 , 'range'=>'Control Pictures'), -array('starthex'=> '2440', 'endhex'=>'245F', 'startdec'=> 9280, 'enddec'=>9311 , 'range'=>'Optical Character Recognition'), -array('starthex'=> '2460', 'endhex'=>'24FF', 'startdec'=> 9312, 'enddec'=>9471 , 'range'=>'Enclosed Alphanumerics'), -array('starthex'=> '2500', 'endhex'=>'257F', 'startdec'=> 9472, 'enddec'=>9599 , 'range'=>'Box Drawing'), -array('starthex'=> '2580', 'endhex'=>'259F', 'startdec'=> 9600, 'enddec'=>9631 , 'range'=>'Block Elements'), -array('starthex'=> '25A0', 'endhex'=>'25FF', 'startdec'=> 9632, 'enddec'=>9727 , 'range'=>'Geometric Shapes'), -array('starthex'=> '2600', 'endhex'=>'26FF', 'startdec'=> 9728, 'enddec'=>9983 , 'range'=>'Miscellaneous Symbols'), -array('starthex'=> '2700', 'endhex'=>'27BF', 'startdec'=> 9984, 'enddec'=>10175 , 'range'=>'Dingbats'), -array('starthex'=> '27C0', 'endhex'=>'27EF', 'startdec'=> 10176, 'enddec'=> 10223, 'range'=>'Miscellaneous Mathematical Symbols-A'), -array('starthex'=> '27F0', 'endhex'=>'27FF', 'startdec'=> 10224, 'enddec'=> 10239, 'range'=>'Supplemental Arrows-A'), -array('starthex'=> '2800', 'endhex'=>'28FF', 'startdec'=> 10240, 'enddec'=>10495 , 'range'=>'Braille Patterns'), -array('starthex'=> '2900', 'endhex'=>'297F', 'startdec'=> 10496, 'enddec'=> 10623, 'range'=>'Supplemental Arrows-B'), -array('starthex'=> '2980', 'endhex'=>'29FF', 'startdec'=> 10624, 'enddec'=> 10751, 'range'=>'Miscellaneous Mathematical Symbols-B'), -array('starthex'=> '2A00', 'endhex'=>'2AFF', 'startdec'=> 10752, 'enddec'=> 11007, 'range'=>'Supplemental Mathematical Operators'), -array('starthex'=> '2B00', 'endhex'=>'2BFF', 'startdec'=> 11008, 'enddec'=> 11263, 'range'=>'Miscellaneous Symbols and Arrows'), -array('starthex'=> '2C00', 'endhex'=>'2C5F', 'startdec'=> 11264, 'enddec'=> 11359, 'range'=>'Glagolitic'), -array('starthex'=> '2C60', 'endhex'=>'2C7F', 'startdec'=> 11360, 'enddec'=> 11391, 'range'=>'Latin Extended-C'), -array('starthex'=> '2C80', 'endhex'=>'2CFF', 'startdec'=> 11392, 'enddec'=> 11519, 'range'=>'Coptic'), -array('starthex'=> '2D00', 'endhex'=>'2D2F', 'startdec'=> 11520, 'enddec'=> 11567, 'range'=>'Georgian Supplement'), -array('starthex'=> '2D30', 'endhex'=>'2D7F', 'startdec'=> 11568, 'enddec'=> 11647, 'range'=>'Tifinagh'), -array('starthex'=> '2D80', 'endhex'=>'2DDF', 'startdec'=> 11648, 'enddec'=> 11743, 'range'=>'Ethiopic Extended'), -array('starthex'=> '2DE0', 'endhex'=>'2DFF', 'startdec'=> 11744, 'enddec'=> 11775, 'range'=>'Cyrillic Extended-A'), -array('starthex'=> '2E00', 'endhex'=>'2E7F', 'startdec'=> 11776, 'enddec'=> 11903, 'range'=>'Supplemental Punctuation'), - -array('starthex'=> '2E80', 'endhex'=>'2EFF', 'startdec'=> 11904, 'enddec'=>12031 , 'range'=>'CJK Radicals Supplement', 'cjk'=>true), -array('starthex'=> '2F00', 'endhex'=>'2FDF', 'startdec'=> 12032, 'enddec'=>12255 , 'range'=>'Kangxi Radicals', 'cjk'=>true), -array('starthex'=> '2FF0', 'endhex'=>'2FFF', 'startdec'=> 12272, 'enddec'=>12287 , 'range'=>'Ideographic Description Characters', 'cjk'=>true), -array('starthex'=> '3000', 'endhex'=>'303F', 'startdec'=> 12288, 'enddec'=>12351 , 'range'=>'CJK Symbols and Punctuation', 'cjk'=>true), -array('starthex'=> '3040', 'endhex'=>'309F', 'startdec'=> 12352, 'enddec'=>12447 , 'range'=>'Hiragana', 'cjk'=>true), -array('starthex'=> '30A0', 'endhex'=>'30FF', 'startdec'=> 12448, 'enddec'=>12543 , 'range'=>'Katakana', 'cjk'=>true), -array('starthex'=> '3100', 'endhex'=>'312F', 'startdec'=> 12544, 'enddec'=>12591 , 'range'=>'Bopomofo', 'cjk'=>true), -array('starthex'=> '3130', 'endhex'=>'318F', 'startdec'=> 12592, 'enddec'=>12687 , 'range'=>'Hangul Compatibility Jamo', 'cjk'=>true), -array('starthex'=> '3190', 'endhex'=>'319F', 'startdec'=> 12688, 'enddec'=>12703 , 'range'=>'Kanbun', 'cjk'=>true), -array('starthex'=> '31A0', 'endhex'=>'31BF', 'startdec'=> 12704, 'enddec'=>12735 , 'range'=>'Bopomofo Extended', 'cjk'=>true), -array('starthex'=> '31C0', 'endhex'=>'31EF', 'startdec'=> 12736, 'enddec'=> 12783, 'range'=>'CJK Strokes', 'cjk'=>true), -array('starthex'=> '31F0', 'endhex'=>'31FF', 'startdec'=> 12784, 'enddec'=> 12799, 'range'=>'Katakana Phonetic Extensions', 'cjk'=>true), -array('starthex'=> '3200', 'endhex'=>'32FF', 'startdec'=> 12800, 'enddec'=>13055 , 'range'=>'Enclosed CJK Letters and Months', 'cjk'=>true), -array('starthex'=> '3300', 'endhex'=>'33FF', 'startdec'=> 13056, 'enddec'=>13311 , 'range'=>'CJK Compatibility', 'cjk'=>true), -array('starthex'=> '3400', 'endhex'=>'4DB5', 'startdec'=> 13312, 'enddec'=>19893 , 'range'=>'CJK Unified Ideographs Extension A', 'cjk'=>true), -array('starthex'=> '4DC0', 'endhex'=>'4DFF', 'startdec'=> 19904, 'enddec'=> 19967, 'range'=>'Yijing Hexagram Symbols', 'cjk'=>true), -array('starthex'=> '4E00', 'endhex'=>'9FFF', 'startdec'=> 19968, 'enddec'=>40959 , 'range'=>'CJK Unified Ideographs', 'cjk'=>true), -array('starthex'=> 'A000', 'endhex'=>'A48F', 'startdec'=> 40960, 'enddec'=>42127 , 'range'=>'Yi Syllables', 'cjk'=>true), -array('starthex'=> 'A490', 'endhex'=>'A4CF', 'startdec'=> 42128, 'enddec'=> 42191, 'range'=>'Yi Radicals', 'cjk'=>true), - -array('starthex'=> 'A4D0', 'endhex'=>'A4FF', 'startdec'=> 42192, 'enddec'=> 42239, 'range'=>'Lisu'), - -array('starthex'=> 'A500', 'endhex'=>'A63F', 'startdec'=> 42240, 'enddec'=> 42559, 'range'=>'Vai'), -array('starthex'=> 'A640', 'endhex'=>'A69F', 'startdec'=> 42560, 'enddec'=> 42655, 'range'=>'Cyrillic Extended-B'), - -array('starthex'=> 'A6A0', 'endhex'=>'A6FF', 'startdec'=> 42656, 'enddec'=> 42751, 'range'=>'Bamum'), - -array('starthex'=> 'A700', 'endhex'=>'A71F', 'startdec'=> 42752, 'enddec'=> 42783, 'range'=>'Modifier Tone Letters'), -array('starthex'=> 'A720', 'endhex'=>'A7FF', 'startdec'=> 42784, 'enddec'=> 43007, 'range'=>'Latin Extended-D'), -array('starthex'=> 'A800', 'endhex'=>'A82F', 'startdec'=> 43008, 'enddec'=> 43055, 'range'=>'Syloti Nagri'), - -array('starthex'=> 'A840', 'endhex'=>'A87F', 'startdec'=> 43072, 'enddec'=> 43135, 'range'=>'Phags-pa', 'vertical'=>true), -array('starthex'=> 'A880', 'endhex'=>'A8DF', 'startdec'=> 43136, 'enddec'=> 43231, 'range'=>'Saurashtra'), - -array('starthex'=> 'A900', 'endhex'=>'A92F', 'startdec'=> 43264, 'enddec'=> 43311, 'range'=>'Kayah Li'), -array('starthex'=> 'A930', 'endhex'=>'A95F', 'startdec'=> 43312, 'enddec'=> 43359, 'range'=>'Rejang'), - -array('starthex'=> 'A960', 'endhex'=>'A97F', 'startdec'=> 43360, 'enddec'=> 43391, 'range'=>'Hangul Choseong', 'cjk'=>true), -array('starthex'=> 'A980', 'endhex'=>'A9DF', 'startdec'=> 43392, 'enddec'=> 43487, 'range'=>'Javanese'), - -array('starthex'=> 'AA00', 'endhex'=>'AA5F', 'startdec'=> 43520, 'enddec'=> 43615, 'range'=>'Cham'), -array('starthex'=> 'AA60', 'endhex'=>'AA7B', 'startdec'=> 43616, 'enddec'=> 43647, 'range'=>'Myanmar', 'special'=>true), -array('starthex'=> 'AA80', 'endhex'=>'AADF', 'startdec'=> 43648, 'enddec'=> 43743, 'range'=>'Tai Viet'), - -array('starthex'=> 'ABC0', 'endhex'=>'ABF9', 'startdec'=> 43968, 'enddec'=> 44025, 'range'=>'Meetei Mayek'), - -array('starthex'=> 'AC00', 'endhex'=>'D7FF', 'startdec'=> 44032, 'enddec'=>55295 , 'range'=>'Hangul Syllables', 'cjk'=>true), - -/* -array('starthex'=> 'D800', 'endhex'=>'DB7F', 'startdec'=> 55296, 'enddec'=>56191 , 'range'=>'High Surrogates', 'reserved'=>true), -array('starthex'=> 'DB80', 'endhex'=>'DBFF', 'startdec'=> 56192, 'enddec'=>56319 , 'range'=>'High Private Use Surrogates', 'reserved'=>true), -array('starthex'=> 'DC00', 'endhex'=>'DFFF', 'startdec'=> 56320, 'enddec'=>57343 , 'range'=>'Low Surrogates', 'reserved'=>true), -*/ - -array('starthex'=> 'E000', 'endhex'=>'F8FF', 'startdec'=> 57344, 'enddec'=>63743 , 'range'=>'Private Use', 'pua'=>true), - -array('starthex'=> 'F900', 'endhex'=>'FAFF', 'startdec'=> 63744, 'enddec'=>64255 , 'range'=>'CJK Compatibility Ideographs', 'cjk'=>true), -array('starthex'=> 'FB00', 'endhex'=>'FB4F', 'startdec'=> 64256, 'enddec'=>64335 , 'range'=>'Alphabetic Presentation Forms'), -array('starthex'=> 'FB50', 'endhex'=>'FDFF', 'startdec'=> 64336, 'enddec'=>65023 , 'range'=>'Arabic Presentation Forms-A', 'rtl'=>true), - -array('starthex'=> 'FE00', 'endhex'=>'FE0F', 'startdec'=> 65024, 'enddec'=> 65039, 'range'=>'Variation Selectors'), - -array('starthex'=> 'FE10', 'endhex'=>'FE1F', 'startdec'=> 65040, 'enddec'=> 65055, 'range'=>'Vertical Forms'), -array('starthex'=> 'FE20', 'endhex'=>'FE2F', 'startdec'=> 65056, 'enddec'=>65071 , 'range'=>'Combining Half Marks', 'combining'=>true), -array('starthex'=> 'FE30', 'endhex'=>'FE4F', 'startdec'=> 65072, 'enddec'=>65103 , 'range'=>'CJK Compatibility Forms', 'cjk'=>true), -array('starthex'=> 'FE50', 'endhex'=>'FE6F', 'startdec'=> 65104, 'enddec'=>65135 , 'range'=>'Small Form Variants', 'cjk'=>true), -array('starthex'=> 'FE70', 'endhex'=>'FEFE', 'startdec'=> 65136, 'enddec'=>65278 , 'range'=>'Arabic Presentation Forms-B', 'rtl'=>true), -array('starthex'=> 'FEFF', 'endhex'=>'FEFF', 'startdec'=> 65279, 'enddec'=>65279 , 'range'=>'Specials'), -array('starthex'=> 'FF00', 'endhex'=>'FFEF', 'startdec'=> 65280, 'enddec'=>65519 , 'range'=>'Halfwidth and Fullwidth Forms', 'cjk'=>true), -array('starthex'=> 'FFF0', 'endhex'=>'FFFD', 'startdec'=> 65520, 'enddec'=>65533 , 'range'=>'Specials'), - -/* PLANE 1 */ - -array('starthex'=> '10000', 'endhex'=>'1007F', 'startdec'=> 65536 , 'enddec'=> 65663, 'range'=>'Linear B Syllabary'), -array('starthex'=> '10080', 'endhex'=>'100FF', 'startdec'=> 65664 , 'enddec'=> 65791, 'range'=>'Linear B Ideograms'), -array('starthex'=> '10100', 'endhex'=>'1013F', 'startdec'=> 65792 , 'enddec'=> 65855, 'range'=>'Aegean Numbers'), -array('starthex'=> '10140', 'endhex'=>'1018F', 'startdec'=> 65856 , 'enddec'=> 65935, 'range'=>'Ancient Greek Numbers'), -array('starthex'=> '10190', 'endhex'=>'101CF', 'startdec'=> 65936 , 'enddec'=> 65999, 'range'=>'Ancient Symbols'), -array('starthex'=> '101D0', 'endhex'=>'101FF', 'startdec'=> 66000 , 'enddec'=> 66047, 'range'=>'Phaistos Disc'), -array('starthex'=> '10280', 'endhex'=>'1029F', 'startdec'=> 66176 , 'enddec'=> 66207, 'range'=>'Lycian'), -array('starthex'=> '102A0', 'endhex'=>'102DF', 'startdec'=> 66208 , 'enddec'=> 66271, 'range'=>'Carian'), -array('starthex'=> '10300', 'endhex'=>'1032F', 'startdec'=> 66304 , 'enddec'=> 66351, 'range'=>'Old Italic'), -array('starthex'=> '10330', 'endhex'=>'1034F', 'startdec'=> 66352 , 'enddec'=> 66383, 'range'=>'Gothic'), -array('starthex'=> '10380', 'endhex'=>'1039F', 'startdec'=> 66432 , 'enddec'=> 66463, 'range'=>'Ugaritic'), -array('starthex'=> '103A0', 'endhex'=>'103DF', 'startdec'=> 66464 , 'enddec'=> 66527, 'range'=>'Old Persian'), -array('starthex'=> '10400', 'endhex'=>'1044F', 'startdec'=> 66560 , 'enddec'=> 66639, 'range'=>'Deseret'), -array('starthex'=> '10450', 'endhex'=>'1047F', 'startdec'=> 66640 , 'enddec'=> 66687, 'range'=>'Shavian'), -array('starthex'=> '10480', 'endhex'=>'104AF', 'startdec'=> 66688 , 'enddec'=> 66735, 'range'=>'Osmanya'), -array('starthex'=> '10800', 'endhex'=>'1083F', 'startdec'=> 67584 , 'enddec'=> 67647, 'range'=>'Cypriot Syllabary'), -array('starthex'=> '10900', 'endhex'=>'1091F', 'startdec'=> 67840 , 'enddec'=> 67871, 'range'=>'Phoenician'), -array('starthex'=> '10920', 'endhex'=>'1093F', 'startdec'=> 67872 , 'enddec'=> 67903, 'range'=>'Lydian'), -array('starthex'=> '10A00', 'endhex'=>'10A5F', 'startdec'=> 68096 , 'enddec'=> 68191, 'range'=>'Kharoshthi'), - -array('starthex'=> '11080', 'endhex'=>'110CF', 'startdec'=> 69760 , 'enddec'=> 69839, 'range'=>'Kaithi'), - -array('starthex'=> '12000', 'endhex'=>'123FF', 'startdec'=> 73728 , 'enddec'=> 74751, 'range'=>'Cuneiform (Sumero-Akkadian)'), -array('starthex'=> '12400', 'endhex'=>'1247F', 'startdec'=> 74752 , 'enddec'=> 74879, 'range'=>'Cuneiform Numbers and Punctuation'), - -array('starthex'=> '13000', 'endhex'=>'1342F', 'startdec'=> 77824 , 'enddec'=> 78895, 'range'=>'Egyptian Hieroglyphs'), - -array('starthex'=> '1D000', 'endhex'=>'1D0FF', 'startdec'=> 118784 , 'enddec'=> 119039, 'range'=>'Byzantine Musical Symbols'), -array('starthex'=> '1D100', 'endhex'=>'1D1FF', 'startdec'=> 119040 , 'enddec'=> 119295, 'range'=>'Musical Symbols'), -array('starthex'=> '1D200', 'endhex'=>'1D24F', 'startdec'=> 119296 , 'enddec'=> 119375, 'range'=>'Ancient Greek Musical Notation'), -array('starthex'=> '1D300', 'endhex'=>'1D35F', 'startdec'=> 119552 , 'enddec'=> 119647, 'range'=>'Tai Xuan Jing Symbols'), -array('starthex'=> '1D360', 'endhex'=>'1D37F', 'startdec'=> 119648 , 'enddec'=> 119679, 'range'=>'Counting Rod Numerals'), -array('starthex'=> '1D400', 'endhex'=>'1D7FF', 'startdec'=> 119808 , 'enddec'=> 120831, 'range'=>'Mathematical Alphanumeric Symbols'), -array('starthex'=> '1F000', 'endhex'=>'1F02F', 'startdec'=> 126976 , 'enddec'=> 127023, 'range'=>'Mahjong Tiles'), -array('starthex'=> '1F030', 'endhex'=>'1F09F', 'startdec'=> 127024 , 'enddec'=> 127135, 'range'=>'Domino Tiles'), - -/* PLANE 2 */ - -array('starthex'=> '20000', 'endhex'=>'2A6DF', 'startdec'=> 131072 , 'enddec'=> 173791, 'range'=>'CJK Unified Ideographs Extension B'), -array('starthex'=> '2A700', 'endhex'=>'2B734', 'startdec'=> 173824 , 'enddec'=> 177972, 'range'=>'CJK Unified Ideographs Extension C'), -array('starthex'=> '2F800', 'endhex'=>'2FA1F', 'startdec'=> 194560 , 'enddec'=> 195103, 'range'=>'CJK Compatibility Ideographs Supplement'), - -); - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/utils/font_collections.php b/public_html/2022/newcms/pdf/utils/font_collections.php deleted file mode 100644 index 20f387e..0000000 --- a/public_html/2022/newcms/pdf/utils/font_collections.php +++ /dev/null @@ -1,72 +0,0 @@ -Font collection files found in '.$ttfdir.' directory'; -foreach($ff AS $f) { - $ret = array(); - if (strtolower(substr($f,-4,4))=='.ttc' || strtolower(substr($f,-4,4))=='.ttcf') { // Mac ttcf - $ttf->getTTCFonts($ttfdir.$f); - $nf = $ttf->numTTCFonts; - echo '

    Font collection file ('.$f.') contains the following fonts:

    '; - for ($i=1; $i<=$nf; $i++) { - $ret = $ttf->extractCoreInfo($ttfdir.$f, $i); - $tfname = $ret[0]; - $bold = $ret[1]; - $italic = $ret[2]; - $fname = strtolower($tfname ); - $fname = preg_replace('/[ ()]/','',$fname ); - $style = ''; - if ($bold) { $style .= 'Bold'; } - if ($italic) { $style .= 'Italic'; } - if (!$style) { $style = 'Regular'; } - - - echo '
    ['.$i.'] '.$tfname.' ('.$fname.') '.$style.'
    '; - - } - echo '
    '; - } -} - - -exit; - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/utils/font_coverage.php b/public_html/2022/newcms/pdf/utils/font_coverage.php deleted file mode 100644 index 5286d74..0000000 --- a/public_html/2022/newcms/pdf/utils/font_coverage.php +++ /dev/null @@ -1,255 +0,0 @@ -SetDisplayMode('fullpage'); -$mpdf->useSubstitutions = true; -$mpdf->debug = true; -$mpdf->simpleTables = true; -if ($checkdir) { - $ttfdir = $checkdir; -} -else { $ttfdir = _MPDF_TTFONTPATH; } - - - -$mqr=ini_get("magic_quotes_runtime"); -if ($mqr) { set_magic_quotes_runtime(0); } -if (!class_exists('TTFontFile_Analysis', false)) { include(_MPDF_PATH .'classes/ttfontsuni_analysis.php'); } - -//============================================================== - $smp = true; - $maxt = 131071; -//============================================================== -//============================================================== -$unifile = file('UnicodeData.txt'); -$unichars = array(); -foreach($unifile AS $line) { - if (preg_match('//',$line,$m)) { - $rangename = ''; - continue; - } - else if (preg_match('/^([12]{0,1}[0-9A-Za-z]{4});<(.*?), Last>/',$line,$m)) { - if ($rangename && $rangename == $m[2]) { - $endrange = hexdec($m[1]); - for ($i=$startrange;$i<=$endrange; $i++) { - $unichars[$i] = $i; - } - } - $rangename = ''; - } - else if (preg_match('/^([12]{0,1}[0-9A-Za-z]{4});<(.*?), First>/',$line,$m)) { - $startrange = hexdec($m[1]); - $rangename = $m[2]; - } - else if (preg_match('/^([12]{0,1}[0-9A-Za-z]{4});/',$line,$m)) { - $unichars[hexdec($m[1])] = hexdec($m[1]); - $rangename = ''; - } -} - -// loads array $unicode_ranges -include('UnicodeRanges.php'); -//============================================================== -$html = ''; - -//============================================================== -$ff = scandir($ttfdir); -$tempfontdata = array(); -foreach($ff AS $f) { - $ttf = new TTFontFile_Analysis(); - $ret = array(); - $isTTC = false; - if (strtolower(substr($f,-4,4))=='.ttf' || strtolower(substr($f,-4,4))=='.otf') { - $ret[] = $ttf->extractCoreInfo($ttfdir.$f); - } - for ($i=0; $i $ur) { - if ($urk >= ($urgp*$ningroup) && $urk < (($urgp+1)*$ningroup)) { - $rangekey = $urk; - $range = $ur['range']; - $rangestart = $ur['starthex']; - $rangeend = $ur['endhex']; - $html .= ''.strtoupper($range).' (U+'.$rangestart .'-U+'.$rangeend.')'; - } - } - $html .= ''; - - - foreach ($tempfontdata AS $fname => $v) { - $cw = ''; - if (file_exists((_MPDF_TTFONTDATAPATH.$fname.'.cw.dat'))) { $cw = file_get_contents(_MPDF_TTFONTDATAPATH.$fname.'.cw.dat'); } - else { - $mpdf->fontdata[$fname]['R'] = $tempfontdata[$fname]['file']; - $mpdf->AddFont($fname); - $cw = file_get_contents(_MPDF_TTFONTDATAPATH.$fname.'.cw.dat'); - } - if (!$cw) { - continue; - die("Font data not available for $fname"); - } - - $counter=0; - $max = $maxt; - - // create HTML content - $html .= ''; - $html .= ''.$fname.''; - - foreach($unicode_ranges AS $urk => $ur) { - if ($urk >= ($urgp*$ningroup) && $urk < (($urgp+1)*$ningroup)) { - if ($ur['pua'] || $ur['reserved'] || $ur['control']) { - $html .= ''; - } - else { - $rangekey = $urk; - $range = $ur['range']; - $rangestart = $ur['starthex']; - $rangeend = $ur['endhex']; - $rangestartdec = $ur['startdec']; - $rangeenddec = $ur['enddec']; - $uniinrange = 0; - $fontinrange = 0; - for ($i=$rangestartdec; $i<=$rangeenddec; $i++) { - //if (isset($cw[$i])) { $fontinrange++; } - if ($mpdf->_charDefined($cw, $i)) { $fontinrange++; } - if (isset($unichars[$i])) { $uniinrange++; } - } - if ($uniinrange) { - if ($fontinrange) { - $pc = ($fontinrange/$uniinrange); - $str = '('.$fontinrange.'/'.$uniinrange.')'; - if ($pc==1) { - $fullcovers[$urk][] = $fname; - $html .= ''; - } - else if ($pc>1) { - $fullcovers[$urk][] = $fname; - $html .= ''.$str.''; - } - else if ($pc>=0.9) { - $html .= ''.$str.''; - $nearlycovers[$urk][] = $fname; - } - else if ($pc>0.75) { $html .= ''.$str.''; } - else if ($pc>0.5) { $html .= ''.$str.''; } - else if ($pc>0.25) { $html .= ''.$str.''; } - else { $html .= ''.$str.''; } - } - else { $html .= '(0/0)'; } - } - else { $html .= ''; } - } - } - } - - - $html .= ''; - - } -//============================================================== - $html .= ''; -} - -$html .= '

    Fonts with full coverage of Unicode Ranges

    '; -$html .= ''; -//$html .= ''; -foreach($unicode_ranges AS $urk => $ur) { - if ($ur['pua'] || $ur['reserved'] || $ur['control']) { continue; } - $rangekey = $urk; - $range = $ur['range']; - $rangestart = $ur['starthex']; - $rangeend = $ur['endhex']; - $ext = $ext2 = ''; - if ($ur['combining']) { $ext = 'background-color:#DDDDFF;'; $ext2 = '
    Special positioning required'; } - if ($ur['vertical']) { $ext = 'background-color:#FFDDDD;'; $ext2 = '
    Vertical positioning required'; } - if ($ur['special']) { $ext = 'background-color:#FFDDDD;'; $ext2 = '
    Special processing required'; } - - - $html .= ''; - $arr = $fullcovers[$urk]; - $narr = $nearlycovers[$urk]; - if (is_array($arr)) { $html .= ''; } - else if (is_array($narr)) { $html .= ''; } - else { $html .= ''; } -} -$html.= '
    '.strtoupper($range).' (U+'.$rangestart .'-U+'.$rangeend.')'.$ext2.''. implode(', ',$arr). '
    '. implode(', ',$narr). ' (>90%)
    '; - - -//============================================================== -echo $html; - -exit; - -//============================================================== -//============================================================== -//============================================================== -//============================================================== - - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/utils/font_dump.php b/public_html/2022/newcms/pdf/utils/font_dump.php deleted file mode 100644 index 9073140..0000000 --- a/public_html/2022/newcms/pdf/utils/font_dump.php +++ /dev/null @@ -1,222 +0,0 @@ -StartProgressBarOutput(2); - -$mpdf->SetDisplayMode('fullpage'); - -$mpdf->useSubstitutions = true; -$mpdf->debug = true; -$mpdf->simpleTables = true; -// force fonts to be embedded whole i.e. NOT susbet -$mpdf->percentSubset = 0; - -//============================================================== -//============================================================== -//============================================================== -//============================================================== - -// This generates a .mtx.php file if not already generated -$mpdf->WriteHTML(''); -$mpdf->WriteHTML('

    '.strtoupper($font).'

    '); // Separate Paragraphs defined by font -$html = ''; -//============================================================== -//============================================================== -//============================================================== -//============================================================== -$unifile = file('UnicodeData.txt'); -$unichars = array(); - -foreach($unifile AS $line) { - if ($smp && preg_match('/^(1[0-9A-Za-z]{4});/',$line,$m)) { - $unichars[hexdec($m[1])] = hexdec($m[1]); - } - else if (preg_match('/^([0-9A-Za-z]{4});/',$line,$m)) { - $unichars[hexdec($m[1])] = hexdec($m[1]); - } -} - -// loads array $unicode_ranges -include('UnicodeRanges.php'); -//============================================================== -//============================================================== - - - -$cw = file_get_contents(_MPDF_TTFONTDATAPATH.$font.'.cw.dat'); -if (!$cw) { die("Error - Must be able to read font metrics file: "._MPDF_TTFONTDATAPATH.$font.'.cw.dat'); } -$counter=0; - - -include(_MPDF_TTFONTDATAPATH.$font.'.mtx.php'); - -if ($smp) { - $max = 131071; -} -else { - $max = 65535; -} - - -$justfinishedblank = false; -$justfinishedblankinvalid = false; - - foreach($unicode_ranges AS $urk => $ur) { - if (0 >= $ur['startdec'] && 0 <= $ur['enddec']) { - $rangekey = $urk; - $range = $ur['range']; - $rangestart = $ur['starthex']; - $rangeend = $ur['endhex']; - break; - } - } - $lastrange = $range ; - // create HTML content - $html .= ''; - $html .= ''; - $html .= ''; - $html .= ''; - - $html .= ''; - for ($i = 0; $i < 16; $i++) { - $html .= ''; - } - - - // print each character - for ($i = 32; $i < $max; ++$i) { - if (($i > 0) AND (($i % 16) == 0)) { - $notthisline = true; - while($notthisline) { - for ($j = 0; $j < 16; $j++) { - if ($mpdf->_charDefined($cw, ($i + $j))) { - //if (isset($cw[($i+$j)])) { - $notthisline = false; - } - } - if ($notthisline) { - if ($showmissing) { - $range = ''; - foreach($unicode_ranges AS $urk => $ur) { - if ($i >= $ur['startdec'] && $i <= $ur['enddec']) { - $rangekey = $urk; - $range = $ur['range']; - $rangestart = $ur['starthex']; - $rangeend = $ur['endhex']; - break; - } - } - $anyvalid = false; - for ($j = 0; $j < 16; $j++) { - if (isset($unichars[$i+$j])) { $anyvalid = true; break; } - } - if ($range && $range == $lastrange) { - if (!$anyvalid) { - if (!$justfinishedblankinvalid) { - $html .= ''; - } - $justfinishedblankinvalid = true; - } - else if (!$justfinishedblank ) { - $html .= ''; - $justfinishedblank = true; - } - } - else if($range) { - $html .= '
    '.strtoupper($font).'
    '.strtoupper($range).' (U+'.$rangestart .'-U+'.$rangeend.')
    -'.sprintf('%X', $i).'
     
     

    '; - $mpdf->WriteHTML($html); $html = ''; - $html .= ''; - $html .= ''; - $html .= ''; - $html .= ''; - for ($k = 0; $k < 16; $k++) { - $html .= ''; - } - $justfinishedblank = false; - $justfinishedblankinvalid = false; - } - $lastrange = $range ; - } - $i +=16; - if ($i > $max) { break 2; } - } - } - foreach($unicode_ranges AS $urk => $ur) { - if ($i >= $ur['startdec'] && $i <= $ur['enddec']) { - $rangekey = $urk; - $range = $ur['range']; - $rangestart = $ur['starthex']; - $rangeend = $ur['endhex']; - break; - } - } - - if ($i > 0 && ($i % 16) == 0 && ($range != $lastrange)) { - $html .= '
    '.strtoupper($range).' (U+'.$rangestart.'-U+'.$rangeend.')
    -'.sprintf('%X', $k).'

    '; - $mpdf->WriteHTML($html); $html = ''; - $html .= ''; - $html .= ''; - $html .= ''; - $html .= ''; - for ($k = 0; $k < 16; $k++) { - $html .= ''; - } - } - $lastrange = $range ; - $justfinishedblank = false; - $justfinishedblankinvalid = false; - $html .= ''; - $html .= ''; - } - if ($mpdf->_charDefined($cw, $i)) { $html .= ''; $counter++; } - else if (isset($unichars[$i])) { $html .= ''; } - else { $html .= ''; } - } - - if (($i % 16) > 0) { - for ($j = ($i % 16); $j < 16; ++$j) { $html .= ''; } - } - $html .= '
    '.strtoupper($range).' (U+'.$rangestart.'-U+'.$rangeend.')
    -'.sprintf('%X', $k).'
    '.(floor($i / 16)*16).''.sprintf('%03X', floor($i / 16)).'-&#'.$i.';

    '; -//============================================================== -//============================================================== -$mpdf->WriteHTML($html); // Separate Paragraphs defined by font - -$mpdf->Output(); -exit; - -//============================================================== -//============================================================== -//============================================================== -//============================================================== - - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/utils/font_names.php b/public_html/2022/newcms/pdf/utils/font_names.php deleted file mode 100644 index 21773b8..0000000 --- a/public_html/2022/newcms/pdf/utils/font_names.php +++ /dev/null @@ -1,200 +0,0 @@ -useSubstitutions = true; -if ($checkdir) { - $ttfdir = $checkdir; -} -else { $ttfdir = _MPDF_TTFONTPATH; } - -$mqr=ini_get("magic_quotes_runtime"); -if ($mqr) { set_magic_quotes_runtime(0); } -if (!class_exists('TTFontFile', false)) { include(_MPDF_PATH .'classes/ttfontsuni.php'); } -$ttf = new TTFontFile(); - -$tempfontdata = array(); -$tempsansfonts = array(); -$tempseriffonts = array(); -$tempmonofonts = array(); -$tempfonttrans = array(); - -$ff = scandir($ttfdir); - -foreach($ff AS $f) { - $ret = array(); - $isTTC = false; - if (strtolower(substr($f,-4,4))=='.ttc' || strtolower(substr($f,-5,5))=='.ttcf') { // Mac ttcf - $isTTC = true; - $ttf->getTTCFonts($ttfdir.$f); - $nf = $ttf->numTTCFonts; - for ($i=1; $i<=$nf; $i++) { - $ret[] = $ttf->extractCoreInfo($ttfdir.$f, $i); - } - } - else if (strtolower(substr($f,-4,4))=='.ttf' || strtolower(substr($f,-4,4))=='.otf' ) { - $ret[] = $ttf->extractCoreInfo($ttfdir.$f); - } - for ($i=0; $i'; - } - else { - $tfname = $ret[$i][0]; - $bold = $ret[$i][1]; - $italic = $ret[$i][2]; - $fname = strtolower($tfname ); - $fname = preg_replace('/[ ()]/','',$fname ); - $tempfonttrans[$tfname] = $fname; - $style = ''; - if ($bold) { $style .= 'B'; } - if ($italic) { $style .= 'I'; } - if (!$style) { $style = 'R'; } - $tempfontdata[$fname][$style] = $f; - if ($isTTC) { - $tempfontdata[$fname]['TTCfontID'][$style] = $ret[$i][4]; - } - //if ($ret[$i][5]) { $tempfontdata[$fname]['rtl'] = true; } - //if ($ret[$i][7]) { $tempfontdata[$fname]['cjk'] = true; } - if ($ret[$i][8]) { $tempfontdata[$fname]['sip'] = true; } - if ($ret[$i][9]) { $tempfontdata[$fname]['smp'] = true; } - - $ftype = $ret[$i][3]; // mono, sans or serif - if ($ftype=='sans') { $tempsansfonts[] = $fname; } - else if ($ftype=='serif') { $tempseriffonts[] = $fname; } - else if ($ftype=='mono') { $tempmonofonts[] = $fname; } - } - } - -} -$tempsansfonts = array_unique($tempsansfonts); -$tempseriffonts = array_unique($tempseriffonts ); -$tempmonofonts = array_unique($tempmonofonts ); -$tempfonttrans = array_unique($tempfonttrans); - -if (!$pdf) { - echo '

    Information

    '; -} - -foreach ($tempfontdata AS $fname => $v) { - if (!isset($tempfontdata[$fname]['R']) || !$tempfontdata[$fname]['R']) { - if (!$pdf) echo 'WARNING - Font file for '.$fname.' may be an italic cursive script, or extra-bold etc.
    '; - if (isset($tempfontdata[$fname]['I']) && $tempfontdata[$fname]['I']) { - $tempfontdata[$fname]['R'] = $tempfontdata[$fname]['I']; - } - else if (isset($tempfontdata[$fname]['B']) && $tempfontdata[$fname]['B']) { - $tempfontdata[$fname]['R'] = $tempfontdata[$fname]['B']; - } - else if (isset($tempfontdata[$fname]['BI']) && $tempfontdata[$fname]['BI']) { - $tempfontdata[$fname]['R'] = $tempfontdata[$fname]['BI']; - } - } - if (isset($tempfontdata[$fname]['smp']) && $tempfontdata[$fname]['smp']) { - if (!$pdf) echo 'INFO - Font file '.$fname.' contains characters in Unicode Plane 1 SMP
    '; - $tempfontdata[$fname]['smp'] = false; - } - if (isset($tempfontdata[$fname]['sip']) && $tempfontdata[$fname]['sip']) { - if (!$pdf) echo 'INFO - Font file '.$fname.' contains characters in Unicode Plane 2 SIP
    '; - if (preg_match('/^(.*)-extb/',$fname, $fm)) { - if (isset($tempfontdata[($fm[1])]) && $tempfontdata[($fm[1])]) { - $tempfontdata[($fm[1])]['sip-ext'] = $fname; - if (!$pdf) echo 'INFO - Font file '.$fname.' has been defined as a CJK ext-B for '.($fm[1]).'
    '; - } - else if (isset($tempfontdata[($fm[1].'-exta')]) && $tempfontdata[($fm[1].'-exta')]) { - $tempfontdata[($fm[1].'-exta')]['sip-ext'] = $fname; - if (!$pdf) echo 'INFO - Font file '.$fname.' has been defined as a CJK ext-B for '.($fm[1].'-exta').'
    '; - } - } - // else { unset($tempfontdata[$fname]['sip']); } - } - unset($tempfontdata[$fname]['sip']); - unset($tempfontdata[$fname]['smp']); -} - -$mpdf->fontdata = array_merge($tempfontdata ,$mpdf->fontdata); - - $mpdf->available_unifonts = array(); - foreach ($mpdf->fontdata AS $f => $fs) { - if (isset($fs['R']) && $fs['R']) { $mpdf->available_unifonts[] = $f; } - if (isset($fs['B']) && $fs['B']) { $mpdf->available_unifonts[] = $f.'B'; } - if (isset($fs['I']) && $fs['I']) { $mpdf->available_unifonts[] = $f.'I'; } - if (isset($fs['BI']) && $fs['BI']) { $mpdf->available_unifonts[] = $f.'BI'; } - } - - $mpdf->default_available_fonts = $mpdf->available_unifonts; - -if (!$pdf) { - echo '
    '; - echo '

    Font names as parsed by mPDF

    '; -} - -ksort($tempfonttrans); -$html = ''; -foreach($tempfonttrans AS $on=>$mn) { - if (!file_exists($ttfdir.$mpdf->fontdata[$mn]['R'])) { continue; } - $ond = '"'.$on.'"'; - $html .= '

    '.$ond.' font is available as '.$mn; - if (isset($mpdf->fontdata[$mn]['sip-ext']) && $mpdf->fontdata[$mn]['sip-ext']) { - $html .= '; CJK ExtB: '.$mpdf->fontdata[$mn]['sip-ext']; - } - $html .= '

    '; -} - -if ($pdf) { - $mpdf->WriteHTML($html); - $mpdf->Output(); - exit; -} - -foreach($tempfonttrans AS $on=>$mn) { - $ond = '"'.$on.'"'; - echo '
    '.$ond.' font is available as '.$mn; - if (isset($mpdf->fontdata[$mn]['sip-ext']) && $mpdf->fontdata[$mn]['sip-ext']) { - echo '; CJK ExtB: '.$mpdf->fontdata[$mn]['sip-ext']; - } - echo '
    '; -} -echo '
    '; - -echo '

    Sample config_fonts.php file

    '; -echo '
    Remember to edit the following arrays to place your preferred default first in order:
    '; - -echo '
    ';
    -
    -ksort($tempfontdata);
    -echo '$this->fontdata = '.var_export($tempfontdata,true).";\n";
    -
    -sort($tempsansfonts);
    -echo '$this->sans_fonts = array(\''.implode("', '", $tempsansfonts)."');\n";
    -sort($tempseriffonts);
    -echo '$this->serif_fonts = array(\''.implode("', '", $tempseriffonts)."');\n";
    -sort($tempmonofonts);
    -echo '$this->mono_fonts = array(\''.implode("', '", $tempmonofonts)."');\n";
    -echo '
    '; - -exit; - -?> \ No newline at end of file diff --git a/public_html/2022/newcms/pdf/utils/index.php b/public_html/2022/newcms/pdf/utils/index.php deleted file mode 100644 index 544f7f2..0000000 --- a/public_html/2022/newcms/pdf/utils/index.php +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - -

    mPDF Font Utility scripts for Version 5.0

    -
    -

    -Show a list of all font names available (font_names.php) -

    -

    -Show fonts in Collections .ttc (font_collections.php) -

    -

    -Show coverage of characters from all fonts (font_coverage.php) -

    - -

    Edit the scripts to change the font folder if you wish - this is set by default to /ttfonts/

    - - - - - diff --git a/public_html/2022/newcms/showlinks.php b/public_html/2022/newcms/showlinks.php index 5f73d5c..b877585 100644 --- a/public_html/2022/newcms/showlinks.php +++ b/public_html/2022/newcms/showlinks.php @@ -1,6 +1,6 @@  diff --git a/public_html/2022/newcms/tmp/Gamtos pasaulis.html b/public_html/2022/newcms/tmp/Gamtos pasaulis.html new file mode 100644 index 0000000..a56d2e3 --- /dev/null +++ b/public_html/2022/newcms/tmp/Gamtos pasaulis.html @@ -0,0 +1,35 @@ + +
    ID: 7 +

    Andrius STANIUS, ANDRIUS

    +

    About

    + + + +
    Age: 20
    Country: Lietuva


    +

    Text

    +
    +

    Gamtos pasaulis

    +
    +

    Kurmis po žeme,prasmirdęs

    +


    Žeme, išrausė skylę urve.

    +

     

    +

    Naktį, tą pačią naktį

    +

    Gauja vilkų staugia kalnuos

    +

    Per pilnatį ryškią.

    +

     

    +

    Ir tos tyliosios pelėdos

    +

    Ant šakos storos, varto akimis 

    +

    Apvaliomis savomis.

    +

     

    +

    Švilpesys vėjo, gaudesys elnio

    +

    Tauriojo, primena gamta apie 

    +

    Save.

    +

     

    +

     

    +

     

    +

     

    +

     

    +
    +
    +
    + \ No newline at end of file diff --git a/public_html/2022/newcms/tmp/Gamtos pasaulis.pdf b/public_html/2022/newcms/tmp/Gamtos pasaulis.pdf new file mode 100644 index 0000000..3483fbd Binary files /dev/null and b/public_html/2022/newcms/tmp/Gamtos pasaulis.pdf differ diff --git a/public_html/2022/newcms/update_activite.php b/public_html/2022/newcms/update_activite.php index cad5fd6..0b0cad8 100644 --- a/public_html/2022/newcms/update_activite.php +++ b/public_html/2022/newcms/update_activite.php @@ -1,6 +1,6 @@  query( "SELECT * FROM editioun_2021 WHERE id = '".$spl[1]."' AND active = '1'"); + $result = $conn->query( "SELECT * FROM editioun_".$cfg["year"]." WHERE id = '".$spl[1]."' AND active = '1'"); while($info = mysqli_fetch_array($result)) { $datum = $info['age']; @@ -31,8 +31,8 @@

    -Dump all characters from a font (font_dump.php) -

    -   '.$trans['downloadpdf'].'

    '; - +

    '; + //  '.$trans['downloadpdf'].' if ($info["translation_en"] != null){ echo '
    '; echo $info["translation_en"]; diff --git a/public_html/2022/vendor/api.php b/public_html/2022/vendor/api.php new file mode 100644 index 0000000..a4bf015 --- /dev/null +++ b/public_html/2022/vendor/api.php @@ -0,0 +1,54 @@ + $value){ +// if ((is_file("lib/".$value) && strpos($value,'.') !== 0) && substr_compare($value, ".php", -strlen(".php")) === 0){ include_once("lib/".$value);} +// } +include_once("lib/config.php"); +include_once("lib/database.php"); +include_once("lib/publicaliases.php"); +$moduleclasses = scandir("lib/modules"); +foreach ($moduleclasses as $key => $value){ + if ((is_file("lib/modules/".$value) && strpos($value,'.') !== 0) && substr_compare($value, ".php", -strlen(".php")) === 0){ include_once("lib/modules/".$value); } +} +$db = new database($cfg["db"]); +//require_once("lib/lang/".$cfg["lang"].".php"); +$html = array(); +$params = json_decode(file_get_contents('php://input'), true); +if ($cfg["debug"] == 1){ $html["params"] = $params; } +if (isset($params["cl"])){ unset($params["cl"]);} +if (isset($params["fn"])){ unset($params["fn"]);} +header('Content-Type: application/json'); +if (!isset($params["ac"])){ + echo json_encode($html); exit(0); +} else { + if (isset($publicaliases[$params["ac"]])){ + $params["cl"] = $publicaliases[$params["ac"]]["cl"]; + $params["fn"] = $publicaliases[$params["ac"]]["fn"]; + } + unset($params["ac"]); + if (!isset($params["cl"]) && !isset($params["fn"])){ + echo json_encode(array("statuscode" => 404,"error" => "function does not exist")); exit(0); + } +} +if (isset($params["cl"]) && isset($params["fn"]) && $params["cl"] != "database"){ + //$html["fnx"] = $params; + if (class_exists($params["cl"])) { + $strclass=$params["cl"]; $cl = new $strclass($db,$cfg); + if (!method_exists($cl,$params["fn"])){ $html["error"] = "class ".$params["cl"]."->method ".$params["fn"]." does not exist!"; } + $r = new ReflectionMethod($strclass, $params["fn"]); + $metparams = $r->getParameters(); $fnp = array(); $prcnt = 0; + foreach ($metparams as $p) { + if (isset($params[$p->getName()])){ array_push($fnp,$params[$p->getName()]); } + if ($p->isOptional() === false){ $prcnt++; } + $html["fnparams"][$p->getName()] = (($p->isOptional() === true)?"optional":"required"); + } + + if (count($fnp) < $prcnt){ $html["error"] = "X Function has ".$prcnt." required parameters!"; + } else { $html["data"] = call_user_func_array(array($cl, $params["fn"]), $fnp); } + } else { $html["error"] = "class ".$params["cl"]." does not exist!"; } +} + + echo json_encode($html); +?>