summaryrefslogtreecommitdiffstats
path: root/library/vendor/dompdf
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 12:39:39 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 12:39:39 +0000
commit8ca6cc32b2c789a3149861159ad258f2cb9491e3 (patch)
tree2492de6f1528dd44eaa169a5c1555026d9cb75ec /library/vendor/dompdf
parentInitial commit. (diff)
downloadicingaweb2-upstream/2.11.4.tar.xz
icingaweb2-upstream/2.11.4.zip
Adding upstream version 2.11.4.upstream/2.11.4upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'library/vendor/dompdf')
-rw-r--r--library/vendor/dompdf/AUTHORS.md24
-rw-r--r--library/vendor/dompdf/LICENSE.LGPL456
-rw-r--r--library/vendor/dompdf/README.md232
-rw-r--r--library/vendor/dompdf/VERSION1
-rw-r--r--library/vendor/dompdf/autoload.inc.php1
-rw-r--r--library/vendor/dompdf/vendor/autoload.php7
-rw-r--r--library/vendor/dompdf/vendor/composer/ClassLoader.php572
-rw-r--r--library/vendor/dompdf/vendor/composer/InstalledVersions.php350
-rw-r--r--library/vendor/dompdf/vendor/composer/LICENSE21
-rw-r--r--library/vendor/dompdf/vendor/composer/autoload_classmap.php11
-rw-r--r--library/vendor/dompdf/vendor/composer/autoload_namespaces.php9
-rw-r--r--library/vendor/dompdf/vendor/composer/autoload_psr4.php14
-rw-r--r--library/vendor/dompdf/vendor/composer/autoload_real.php57
-rw-r--r--library/vendor/dompdf/vendor/composer/autoload_static.php66
-rw-r--r--library/vendor/dompdf/vendor/composer/installed.json295
-rw-r--r--library/vendor/dompdf/vendor/composer/installed.php68
-rw-r--r--library/vendor/dompdf/vendor/composer/platform_check.php26
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/AUTHORS.md24
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/LICENSE.LGPL456
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/README.md232
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/VERSION1
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/composer.json47
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/lib/Cpdf.php6501
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/Courier-Bold.afm344
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/Courier-BoldOblique.afm344
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/Courier-Oblique.afm344
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/Courier.afm344
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSans-Bold.ttfbin0 -> 705684 bytes
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSans-Bold.ufm6067
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSans-BoldOblique.ttfbin0 -> 643292 bytes
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSans-BoldOblique.ufm5712
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSans-Oblique.ttfbin0 -> 635416 bytes
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSans-Oblique.ufm5268
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSans.ttfbin0 -> 757076 bytes
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSans.ufm6661
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSansMono-Bold.ttfbin0 -> 331992 bytes
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSansMono-Bold.ufm3285
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSansMono-BoldOblique.ttfbin0 -> 253580 bytes
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSansMono-BoldOblique.ufm2707
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSansMono-Oblique.ttfbin0 -> 251932 bytes
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSansMono-Oblique.ufm2707
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSansMono.ttfbin0 -> 340712 bytes
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSansMono.ufm3284
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSerif-Bold.ttfbin0 -> 356088 bytes
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSerif-Bold.ufm4013
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSerif-BoldItalic.ttfbin0 -> 347460 bytes
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSerif-BoldItalic.ufm3892
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSerif-Italic.ttfbin0 -> 345996 bytes
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSerif-Italic.ufm3883
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSerif.ttfbin0 -> 380132 bytes
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSerif.ufm4012
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/Helvetica-Bold.afm2829
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/Helvetica-BoldOblique.afm2829
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/Helvetica-Oblique.afm3053
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/Helvetica.afm3053
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/Symbol.afm213
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/Times-Bold.afm2590
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/Times-BoldItalic.afm2386
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/Times-Italic.afm2669
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/Times-Roman.afm2421
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/ZapfDingbats.afm225
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/installed-fonts.dist.json80
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/mustRead.html17
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/lib/res/broken_image.pngbin0 -> 618 bytes
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/lib/res/broken_image.svg8
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/lib/res/html.css518
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/Adapter/CPDF.php944
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/Adapter/GD.php929
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/Adapter/PDFLib.php1450
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/Canvas.php477
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/CanvasFactory.php58
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/Cellmap.php999
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/Css/AttributeTranslator.php652
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/Css/Color.php339
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/Css/Style.php3743
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/Css/Stylesheet.php1689
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/Dompdf.php1470
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/Exception.php27
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/Exception/ImageException.php30
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/FontMetrics.php635
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/Frame.php1217
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/Frame/Factory.php263
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/Frame/FrameListIterator.php100
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/Frame/FrameTree.php324
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/Frame/FrameTreeIterator.php88
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameDecorator/AbstractFrameDecorator.php923
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameDecorator/Block.php256
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameDecorator/Image.php120
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameDecorator/Inline.php121
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameDecorator/ListBullet.php117
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameDecorator/ListBulletImage.php112
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameDecorator/NullFrameDecorator.php33
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameDecorator/Page.php753
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameDecorator/Table.php343
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameDecorator/TableCell.php143
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameDecorator/TableRow.php28
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameDecorator/TableRowGroup.php74
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameDecorator/Text.php191
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameReflower/AbstractFrameReflower.php705
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameReflower/Block.php949
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameReflower/Image.php213
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameReflower/Inline.php188
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameReflower/ListBullet.php47
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameReflower/NullFrameReflower.php37
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameReflower/Page.php199
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameReflower/Table.php523
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameReflower/TableCell.php161
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameReflower/TableRow.php82
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameReflower/TableRowGroup.php71
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameReflower/Text.php605
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/Helpers.php1093
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/Image/Cache.php254
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/JavascriptEmbedder.php51
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/LineBox.php412
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/Options.php1159
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/PhpEvaluator.php62
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/Positioner/Absolute.php128
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/Positioner/AbstractPositioner.php48
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/Positioner/Block.php40
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/Positioner/Fixed.php92
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/Positioner/Inline.php52
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/Positioner/ListBullet.php42
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/Positioner/NullPositioner.php26
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/Positioner/TableCell.php29
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/Positioner/TableRow.php34
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/Renderer.php291
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/Renderer/AbstractRenderer.php1244
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/Renderer/Block.php88
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/Renderer/Image.php90
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/Renderer/Inline.php126
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/Renderer/ListBullet.php235
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/Renderer/TableCell.php188
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/Renderer/TableRowGroup.php40
-rw-r--r--library/vendor/dompdf/vendor/dompdf/dompdf/src/Renderer/Text.php158
-rw-r--r--library/vendor/dompdf/vendor/masterminds/html5/CREDITS11
-rw-r--r--library/vendor/dompdf/vendor/masterminds/html5/LICENSE.txt66
-rw-r--r--library/vendor/dompdf/vendor/masterminds/html5/README.md270
-rw-r--r--library/vendor/dompdf/vendor/masterminds/html5/UPGRADING.md21
-rw-r--r--library/vendor/dompdf/vendor/masterminds/html5/bin/entities.php26
-rw-r--r--library/vendor/dompdf/vendor/masterminds/html5/composer.json42
-rw-r--r--library/vendor/dompdf/vendor/masterminds/html5/src/HTML5.php246
-rw-r--r--library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Elements.php619
-rw-r--r--library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Entities.php2236
-rw-r--r--library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Exception.php10
-rw-r--r--library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/InstructionProcessor.php41
-rw-r--r--library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Parser/CharacterReference.php61
-rw-r--r--library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Parser/DOMTreeBuilder.php705
-rw-r--r--library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Parser/EventHandler.php114
-rw-r--r--library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Parser/FileInputStream.php33
-rw-r--r--library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Parser/InputStream.php87
-rw-r--r--library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Parser/ParseError.php10
-rw-r--r--library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Parser/README.md53
-rw-r--r--library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Parser/Scanner.php416
-rw-r--r--library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Parser/StringInputStream.php331
-rw-r--r--library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Parser/Tokenizer.php1197
-rw-r--r--library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Parser/TreeBuildingRules.php127
-rw-r--r--library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Parser/UTF8Utils.php183
-rw-r--r--library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Serializer/HTML5Entities.php1533
-rw-r--r--library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Serializer/OutputRules.php553
-rw-r--r--library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Serializer/README.md33
-rw-r--r--library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Serializer/RulesInterface.php99
-rw-r--r--library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Serializer/Traverser.php142
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/LICENSE456
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/README.md28
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/bower.json23
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/composer.json32
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/index.php1
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/maps/adobe-standard-encoding.map231
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/maps/cp1250.map251
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/maps/cp1251.map255
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/maps/cp1252.map251
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/maps/cp1253.map239
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/maps/cp1254.map249
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/maps/cp1255.map233
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/maps/cp1257.map244
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/maps/cp1258.map247
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/maps/cp874.map225
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/maps/iso-8859-1.map256
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/maps/iso-8859-11.map248
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/maps/iso-8859-15.map256
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/maps/iso-8859-16.map256
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/maps/iso-8859-2.map256
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/maps/iso-8859-4.map256
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/maps/iso-8859-5.map256
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/maps/iso-8859-7.map250
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/maps/iso-8859-9.map256
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/maps/koi8-r.map256
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/maps/koi8-u.map256
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/AdobeFontMetrics.php217
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Autoloader.php43
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/BinaryStream.php449
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/EOT/File.php159
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/EOT/Header.php113
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/EncodingMap.php37
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Exception/FontNotFoundException.php11
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Font.php89
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Glyph/Outline.php109
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Glyph/OutlineComponent.php31
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Glyph/OutlineComposite.php242
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Glyph/OutlineSimple.php335
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Header.php37
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/OpenType/File.php18
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/OpenType/TableDirectoryEntry.php18
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Table/DirectoryEntry.php134
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Table/Table.php93
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Table/Type/cmap.php298
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Table/Type/glyf.php154
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Table/Type/head.php46
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Table/Type/hhea.php44
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Table/Type/hmtx.php59
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Table/Type/kern.php80
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Table/Type/loca.php80
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Table/Type/maxp.php42
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Table/Type/name.php193
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Table/Type/nameRecord.php53
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Table/Type/os2.php47
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Table/Type/post.php143
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/TrueType/Collection.php100
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/TrueType/File.php471
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/TrueType/Header.php31
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/TrueType/TableDirectoryEntry.php33
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/WOFF/File.php81
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/WOFF/Header.php32
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/WOFF/TableDirectoryEntry.php34
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-svg-lib/LICENSE165
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-svg-lib/README.md13
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-svg-lib/composer.json31
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/CssLength.php135
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/DefaultStyle.php29
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Document.php406
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Gradient/Stop.php16
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Style.php541
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Surface/CPdf.php6418
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Surface/SurfaceCpdf.php495
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Surface/SurfaceInterface.php90
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Surface/SurfacePDFLib.php430
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/AbstractTag.php236
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/Anchor.php14
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/Circle.php36
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/ClipPath.php33
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/Ellipse.php42
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/Group.php33
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/Image.php68
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/Line.php43
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/LinearGradient.php83
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/Path.php576
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/Polygon.php42
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/Polyline.php40
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/RadialGradient.php17
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/Rect.php50
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/Shape.php63
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/Stop.php17
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/StyleTag.php27
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/Text.php72
-rw-r--r--library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/UseTag.php102
-rw-r--r--library/vendor/dompdf/vendor/sabberworm/php-css-parser/CHANGELOG.md241
-rw-r--r--library/vendor/dompdf/vendor/sabberworm/php-css-parser/LICENSE21
-rw-r--r--library/vendor/dompdf/vendor/sabberworm/php-css-parser/README.md632
-rw-r--r--library/vendor/dompdf/vendor/sabberworm/php-css-parser/composer.json69
-rw-r--r--library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/CSSList/AtRuleBlockList.php83
-rw-r--r--library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/CSSList/CSSBlockList.php143
-rw-r--r--library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/CSSList/CSSList.php479
-rw-r--r--library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/CSSList/Document.php172
-rw-r--r--library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/CSSList/KeyFrame.php104
-rw-r--r--library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Comment/Comment.php71
-rw-r--r--library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Comment/Commentable.php25
-rw-r--r--library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/OutputFormat.php334
-rw-r--r--library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/OutputFormatter.php231
-rw-r--r--library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Parser.php60
-rw-r--r--library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Parsing/OutputException.php18
-rw-r--r--library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Parsing/ParserState.php516
-rw-r--r--library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Parsing/SourceException.php32
-rw-r--r--library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Parsing/UnexpectedEOFException.php12
-rw-r--r--library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Parsing/UnexpectedTokenException.php51
-rw-r--r--library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Property/AtRule.php34
-rw-r--r--library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Property/CSSNamespace.php154
-rw-r--r--library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Property/Charset.php129
-rw-r--r--library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Property/Import.php137
-rw-r--r--library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Property/KeyframeSelector.php23
-rw-r--r--library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Property/Selector.php138
-rw-r--r--library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Renderable.php21
-rw-r--r--library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Rule/Rule.php392
-rw-r--r--library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/RuleSet/AtRuleSet.php73
-rw-r--r--library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/RuleSet/DeclarationBlock.php831
-rw-r--r--library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/RuleSet/RuleSet.php326
-rw-r--r--library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Settings.php89
-rw-r--r--library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Value/CSSFunction.php73
-rw-r--r--library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Value/CSSString.php105
-rw-r--r--library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Value/CalcFunction.php89
-rw-r--r--library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Value/CalcRuleValueList.php24
-rw-r--r--library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Value/Color.php166
-rw-r--r--library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Value/LineName.php65
-rw-r--r--library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Value/PrimitiveValue.php14
-rw-r--r--library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Value/RuleValueList.php15
-rw-r--r--library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Value/Size.php209
-rw-r--r--library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Value/URL.php82
-rw-r--r--library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Value/Value.php198
-rw-r--r--library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Value/ValueList.php100
298 files changed, 149971 insertions, 0 deletions
diff --git a/library/vendor/dompdf/AUTHORS.md b/library/vendor/dompdf/AUTHORS.md
new file mode 100644
index 0000000..6861479
--- /dev/null
+++ b/library/vendor/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/library/vendor/dompdf/LICENSE.LGPL b/library/vendor/dompdf/LICENSE.LGPL
new file mode 100644
index 0000000..6ef5de8
--- /dev/null
+++ b/library/vendor/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/library/vendor/dompdf/README.md b/library/vendor/dompdf/README.md
new file mode 100644
index 0000000..7546e80
--- /dev/null
+++ b/library/vendor/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 (`<svg><path...></svg>`) isn't working yet, you need to
+ either link to an external SVG file, or use a DataURI like this:
+ ```php
+ $html = '<img src="data:image/svg+xml;base64,' . base64_encode($svg) . '" ...>';
+ ```
+ 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/library/vendor/dompdf/VERSION b/library/vendor/dompdf/VERSION
new file mode 100644
index 0000000..38f77a6
--- /dev/null
+++ b/library/vendor/dompdf/VERSION
@@ -0,0 +1 @@
+2.0.1
diff --git a/library/vendor/dompdf/autoload.inc.php b/library/vendor/dompdf/autoload.inc.php
new file mode 100644
index 0000000..dc542ab
--- /dev/null
+++ b/library/vendor/dompdf/autoload.inc.php
@@ -0,0 +1 @@
+<?php require (__DIR__ . '/vendor/autoload.php'); \ No newline at end of file
diff --git a/library/vendor/dompdf/vendor/autoload.php b/library/vendor/dompdf/vendor/autoload.php
new file mode 100644
index 0000000..77629e9
--- /dev/null
+++ b/library/vendor/dompdf/vendor/autoload.php
@@ -0,0 +1,7 @@
+<?php
+
+// autoload.php @generated by Composer
+
+require_once __DIR__ . '/composer/autoload_real.php';
+
+return ComposerAutoloaderInit47dfdbccdbe2c66869f4658d0723ed1a::getLoader();
diff --git a/library/vendor/dompdf/vendor/composer/ClassLoader.php b/library/vendor/dompdf/vendor/composer/ClassLoader.php
new file mode 100644
index 0000000..afef3fa
--- /dev/null
+++ b/library/vendor/dompdf/vendor/composer/ClassLoader.php
@@ -0,0 +1,572 @@
+<?php
+
+/*
+ * This file is part of Composer.
+ *
+ * (c) Nils Adermann <naderman@naderman.de>
+ * Jordi Boggiano <j.boggiano@seld.be>
+ *
+ * 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 <fabien@symfony.com>
+ * @author Jordi Boggiano <j.boggiano@seld.be>
+ * @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<string, array<string, int>>
+ */
+ private $prefixLengthsPsr4 = array();
+ /**
+ * @var array[]
+ * @psalm-var array<string, array<int, string>>
+ */
+ private $prefixDirsPsr4 = array();
+ /**
+ * @var array[]
+ * @psalm-var array<string, string>
+ */
+ private $fallbackDirsPsr4 = array();
+
+ // PSR-0
+ /**
+ * @var array[]
+ * @psalm-var array<string, array<string, string[]>>
+ */
+ private $prefixesPsr0 = array();
+ /**
+ * @var array[]
+ * @psalm-var array<string, string>
+ */
+ private $fallbackDirsPsr0 = array();
+
+ /** @var bool */
+ private $useIncludePath = false;
+
+ /**
+ * @var string[]
+ * @psalm-var array<string, string>
+ */
+ private $classMap = array();
+
+ /** @var bool */
+ private $classMapAuthoritative = false;
+
+ /**
+ * @var bool[]
+ * @psalm-var array<string, bool>
+ */
+ 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<string, array<int, string>>
+ */
+ public function getPrefixesPsr4()
+ {
+ return $this->prefixDirsPsr4;
+ }
+
+ /**
+ * @return array[]
+ * @psalm-return array<string, string>
+ */
+ public function getFallbackDirs()
+ {
+ return $this->fallbackDirsPsr0;
+ }
+
+ /**
+ * @return array[]
+ * @psalm-return array<string, string>
+ */
+ public function getFallbackDirsPsr4()
+ {
+ return $this->fallbackDirsPsr4;
+ }
+
+ /**
+ * @return string[] Array of classname => path
+ * @psalm-return array<string, string>
+ */
+ public function getClassMap()
+ {
+ return $this->classMap;
+ }
+
+ /**
+ * @param string[] $classMap Class to filename map
+ * @psalm-param array<string, string> $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/library/vendor/dompdf/vendor/composer/InstalledVersions.php b/library/vendor/dompdf/vendor/composer/InstalledVersions.php
new file mode 100644
index 0000000..d50e0c9
--- /dev/null
+++ b/library/vendor/dompdf/vendor/composer/InstalledVersions.php
@@ -0,0 +1,350 @@
+<?php
+
+/*
+ * This file is part of Composer.
+ *
+ * (c) Nils Adermann <naderman@naderman.de>
+ * Jordi Boggiano <j.boggiano@seld.be>
+ *
+ * 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`
+ */
+class InstalledVersions
+{
+ /**
+ * @var mixed[]|null
+ * @psalm-var array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}|array{}|null
+ */
+ private static $installed;
+
+ /**
+ * @var bool|null
+ */
+ private static $canGetVendors;
+
+ /**
+ * @var array[]
+ * @psalm-var array<string, array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}>
+ */
+ 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<string>
+ */
+ 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<string>
+ */
+ 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, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}
+ */
+ 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, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}
+ */
+ 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<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}>
+ */
+ 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, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>} $data
+ */
+ public static function reload($data)
+ {
+ self::$installed = $data;
+ self::$installedByVendor = array();
+ }
+
+ /**
+ * @return array[]
+ * @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}>
+ */
+ 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/library/vendor/dompdf/vendor/composer/LICENSE b/library/vendor/dompdf/vendor/composer/LICENSE
new file mode 100644
index 0000000..f27399a
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/composer/autoload_classmap.php b/library/vendor/dompdf/vendor/composer/autoload_classmap.php
new file mode 100644
index 0000000..b708d77
--- /dev/null
+++ b/library/vendor/dompdf/vendor/composer/autoload_classmap.php
@@ -0,0 +1,11 @@
+<?php
+
+// autoload_classmap.php @generated by Composer
+
+$vendorDir = dirname(dirname(__FILE__));
+$baseDir = dirname($vendorDir);
+
+return array(
+ 'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php',
+ 'Dompdf\\Cpdf' => $vendorDir . '/dompdf/dompdf/lib/Cpdf.php',
+);
diff --git a/library/vendor/dompdf/vendor/composer/autoload_namespaces.php b/library/vendor/dompdf/vendor/composer/autoload_namespaces.php
new file mode 100644
index 0000000..b7fc012
--- /dev/null
+++ b/library/vendor/dompdf/vendor/composer/autoload_namespaces.php
@@ -0,0 +1,9 @@
+<?php
+
+// autoload_namespaces.php @generated by Composer
+
+$vendorDir = dirname(dirname(__FILE__));
+$baseDir = dirname($vendorDir);
+
+return array(
+);
diff --git a/library/vendor/dompdf/vendor/composer/autoload_psr4.php b/library/vendor/dompdf/vendor/composer/autoload_psr4.php
new file mode 100644
index 0000000..bd7244b
--- /dev/null
+++ b/library/vendor/dompdf/vendor/composer/autoload_psr4.php
@@ -0,0 +1,14 @@
+<?php
+
+// autoload_psr4.php @generated by Composer
+
+$vendorDir = dirname(dirname(__FILE__));
+$baseDir = dirname($vendorDir);
+
+return array(
+ 'Svg\\' => array($vendorDir . '/phenx/php-svg-lib/src/Svg'),
+ 'Sabberworm\\CSS\\' => array($vendorDir . '/sabberworm/php-css-parser/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/library/vendor/dompdf/vendor/composer/autoload_real.php b/library/vendor/dompdf/vendor/composer/autoload_real.php
new file mode 100644
index 0000000..49d5ac3
--- /dev/null
+++ b/library/vendor/dompdf/vendor/composer/autoload_real.php
@@ -0,0 +1,57 @@
+<?php
+
+// autoload_real.php @generated by Composer
+
+class ComposerAutoloaderInit47dfdbccdbe2c66869f4658d0723ed1a
+{
+ private static $loader;
+
+ public static function loadClassLoader($class)
+ {
+ if ('Composer\Autoload\ClassLoader' === $class) {
+ require __DIR__ . '/ClassLoader.php';
+ }
+ }
+
+ /**
+ * @return \Composer\Autoload\ClassLoader
+ */
+ public static function getLoader()
+ {
+ if (null !== self::$loader) {
+ return self::$loader;
+ }
+
+ require __DIR__ . '/platform_check.php';
+
+ spl_autoload_register(array('ComposerAutoloaderInit47dfdbccdbe2c66869f4658d0723ed1a', 'loadClassLoader'), true, true);
+ self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
+ spl_autoload_unregister(array('ComposerAutoloaderInit47dfdbccdbe2c66869f4658d0723ed1a', 'loadClassLoader'));
+
+ $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
+ if ($useStaticLoader) {
+ require __DIR__ . '/autoload_static.php';
+
+ call_user_func(\Composer\Autoload\ComposerStaticInit47dfdbccdbe2c66869f4658d0723ed1a::getInitializer($loader));
+ } else {
+ $map = require __DIR__ . '/autoload_namespaces.php';
+ foreach ($map as $namespace => $path) {
+ $loader->set($namespace, $path);
+ }
+
+ $map = require __DIR__ . '/autoload_psr4.php';
+ foreach ($map as $namespace => $path) {
+ $loader->setPsr4($namespace, $path);
+ }
+
+ $classMap = require __DIR__ . '/autoload_classmap.php';
+ if ($classMap) {
+ $loader->addClassMap($classMap);
+ }
+ }
+
+ $loader->register(true);
+
+ return $loader;
+ }
+}
diff --git a/library/vendor/dompdf/vendor/composer/autoload_static.php b/library/vendor/dompdf/vendor/composer/autoload_static.php
new file mode 100644
index 0000000..2c05e6c
--- /dev/null
+++ b/library/vendor/dompdf/vendor/composer/autoload_static.php
@@ -0,0 +1,66 @@
+<?php
+
+// autoload_static.php @generated by Composer
+
+namespace Composer\Autoload;
+
+class ComposerStaticInit47dfdbccdbe2c66869f4658d0723ed1a
+{
+ public static $prefixLengthsPsr4 = array (
+ 'S' =>
+ array (
+ 'Svg\\' => 4,
+ 'Sabberworm\\CSS\\' => 15,
+ ),
+ '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',
+ ),
+ '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 = ComposerStaticInit47dfdbccdbe2c66869f4658d0723ed1a::$prefixLengthsPsr4;
+ $loader->prefixDirsPsr4 = ComposerStaticInit47dfdbccdbe2c66869f4658d0723ed1a::$prefixDirsPsr4;
+ $loader->classMap = ComposerStaticInit47dfdbccdbe2c66869f4658d0723ed1a::$classMap;
+
+ }, null, ClassLoader::class);
+ }
+}
diff --git a/library/vendor/dompdf/vendor/composer/installed.json b/library/vendor/dompdf/vendor/composer/installed.json
new file mode 100644
index 0000000..0acb559
--- /dev/null
+++ b/library/vendor/dompdf/vendor/composer/installed.json
@@ -0,0 +1,295 @@
+{
+ "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": "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/library/vendor/dompdf/vendor/composer/installed.php b/library/vendor/dompdf/vendor/composer/installed.php
new file mode 100644
index 0000000..cdf63de
--- /dev/null
+++ b/library/vendor/dompdf/vendor/composer/installed.php
@@ -0,0 +1,68 @@
+<?php return array(
+ 'root' => array(
+ 'pretty_version' => '1.0.0+no-version-set',
+ 'version' => '1.0.0.0',
+ 'type' => 'project',
+ 'install_path' => __DIR__ . '/../../',
+ 'aliases' => array(),
+ 'reference' => NULL,
+ 'name' => '__root__',
+ 'dev' => true,
+ ),
+ 'versions' => array(
+ '__root__' => array(
+ 'pretty_version' => '1.0.0+no-version-set',
+ 'version' => '1.0.0.0',
+ 'type' => 'project',
+ 'install_path' => __DIR__ . '/../../',
+ 'aliases' => array(),
+ 'reference' => NULL,
+ 'dev_requirement' => false,
+ ),
+ 'dompdf/dompdf' => array(
+ 'pretty_version' => 'v2.0.1',
+ 'version' => '2.0.1.0',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../dompdf/dompdf',
+ 'aliases' => array(),
+ 'reference' => 'c5310df0e22c758c85ea5288175fc6cd777bc085',
+ 'dev_requirement' => false,
+ ),
+ 'masterminds/html5' => array(
+ 'pretty_version' => '2.7.6',
+ 'version' => '2.7.6.0',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../masterminds/html5',
+ 'aliases' => array(),
+ 'reference' => '897eb517a343a2281f11bc5556d6548db7d93947',
+ 'dev_requirement' => false,
+ ),
+ 'phenx/php-font-lib' => array(
+ 'pretty_version' => '0.5.4',
+ 'version' => '0.5.4.0',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../phenx/php-font-lib',
+ 'aliases' => array(),
+ 'reference' => 'dd448ad1ce34c63d09baccd05415e361300c35b4',
+ 'dev_requirement' => false,
+ ),
+ 'phenx/php-svg-lib' => array(
+ 'pretty_version' => '0.5.0',
+ 'version' => '0.5.0.0',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../phenx/php-svg-lib',
+ 'aliases' => array(),
+ 'reference' => '76876c6cf3080bcb6f249d7d59705108166a6685',
+ 'dev_requirement' => false,
+ ),
+ 'sabberworm/php-css-parser' => array(
+ 'pretty_version' => '8.4.0',
+ 'version' => '8.4.0.0',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../sabberworm/php-css-parser',
+ 'aliases' => array(),
+ 'reference' => 'e41d2140031d533348b2192a83f02d8dd8a71d30',
+ 'dev_requirement' => false,
+ ),
+ ),
+);
diff --git a/library/vendor/dompdf/vendor/composer/platform_check.php b/library/vendor/dompdf/vendor/composer/platform_check.php
new file mode 100644
index 0000000..6d3407d
--- /dev/null
+++ b/library/vendor/dompdf/vendor/composer/platform_check.php
@@ -0,0 +1,26 @@
+<?php
+
+// platform_check.php @generated by Composer
+
+$issues = array();
+
+if (!(PHP_VERSION_ID >= 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/library/vendor/dompdf/vendor/dompdf/dompdf/AUTHORS.md b/library/vendor/dompdf/vendor/dompdf/dompdf/AUTHORS.md
new file mode 100644
index 0000000..6861479
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/dompdf/dompdf/LICENSE.LGPL b/library/vendor/dompdf/vendor/dompdf/dompdf/LICENSE.LGPL
new file mode 100644
index 0000000..6ef5de8
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/dompdf/dompdf/README.md b/library/vendor/dompdf/vendor/dompdf/dompdf/README.md
new file mode 100644
index 0000000..7546e80
--- /dev/null
+++ b/library/vendor/dompdf/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 (`<svg><path...></svg>`) isn't working yet, you need to
+ either link to an external SVG file, or use a DataURI like this:
+ ```php
+ $html = '<img src="data:image/svg+xml;base64,' . base64_encode($svg) . '" ...>';
+ ```
+ 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/library/vendor/dompdf/vendor/dompdf/dompdf/VERSION b/library/vendor/dompdf/vendor/dompdf/dompdf/VERSION
new file mode 100644
index 0000000..38f77a6
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/VERSION
@@ -0,0 +1 @@
+2.0.1
diff --git a/library/vendor/dompdf/vendor/dompdf/dompdf/composer.json b/library/vendor/dompdf/vendor/dompdf/dompdf/composer.json
new file mode 100644
index 0000000..268a81e
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/dompdf/dompdf/lib/Cpdf.php b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/Cpdf.php
new file mode 100644
index 0000000..27bfa29
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/Cpdf.php
@@ -0,0 +1,6501 @@
+<?php
+/**
+ * A PHP class to provide the basic functionality to create a pdf document without
+ * any requirement for additional modules.
+ *
+ * @author Wayne Munro
+ * @license http://creativecommons.org/licenses/publicdomain/ Public Domain
+ * @package Cpdf
+ */
+namespace Dompdf;
+
+use FontLib\Exception\FontNotFoundException;
+use FontLib\Font;
+use FontLib\BinaryStream;
+
+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<</Type /Font\n/Subtype /Type0\n";
+ $res .= "/BaseFont /" . $o['info']['name'] . "\n";
+
+ // The horizontal identity mapping for 2-byte CIDs; may be used
+ // with CIDFonts using any Registry, Ordering, and Supplement values.
+ $res .= "/Encoding /Identity-H\n";
+ $res .= "/DescendantFonts [" . $o['info']['cidFont'] . " 0 R]\n";
+ $res .= "/ToUnicode " . $o['info']['toUnicode'] . " 0 R\n";
+ $res .= ">>\n";
+ $res .= "endobj";
+ } else {
+ $res = "\n$id 0 obj\n<< /Type /Font\n/Subtype /" . $o['info']['SubType'] . "\n";
+ $res .= "/Name /F" . $o['info']['fontNum'] . "\n";
+ $res .= "/BaseFont /" . $o['info']['name'] . "\n";
+
+ if (isset($o['info']['encodingDictionary'])) {
+ // then place a reference to the dictionary
+ $res .= "/Encoding " . $o['info']['encodingDictionary'] . " 0 R\n";
+ } else {
+ if (isset($o['info']['encoding'])) {
+ // use the specified encoding
+ $res .= "/Encoding /" . $o['info']['encoding'] . "\n";
+ }
+ }
+
+ if (isset($o['info']['FirstChar'])) {
+ $res .= "/FirstChar " . $o['info']['FirstChar'] . "\n";
+ }
+
+ if (isset($o['info']['LastChar'])) {
+ $res .= "/LastChar " . $o['info']['LastChar'] . "\n";
+ }
+
+ if (isset($o['info']['Widths'])) {
+ $res .= "/Widths " . $o['info']['Widths'] . " 0 R\n";
+ }
+
+ if (isset($o['info']['FontDescriptor'])) {
+ $res .= "/FontDescriptor " . $o['info']['FontDescriptor'] . " 0 R\n";
+ }
+
+ $res .= ">>\n";
+ $res .= "endobj";
+ }
+
+ return $res;
+ }
+
+ return null;
+ }
+
+ protected function getFontSubsettingTag(array $font): string
+ {
+ // convert font num to hexavigesimal numeral system letters A - Z only
+ $base_26 = strtoupper(base_convert($font['fontNum'], 10, 26));
+ for ($i = 0; $i < strlen($base_26); $i++) {
+ $char = $base_26[$i];
+ if ($char <= "9") {
+ $base_26[$i] = chr(65 + intval($char));
+ } else {
+ $base_26[$i] = chr(ord($char) + 10);
+ }
+ }
+
+ return 'SUB' . str_pad($base_26, 3, 'A', STR_PAD_LEFT);
+ }
+
+ /**
+ * @param int $fontObjId
+ * @param array $object_info
+ * @return array|false
+ * @throws FontNotFoundException
+ */
+ private function processFont(int $fontObjId, array $object_info)
+ {
+ $fontFileName = $object_info['fontFileName'];
+ if (!isset($this->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 = <<<EOT
+/CIDInit /ProcSet findresource begin
+12 dict begin
+begincmap
+/CIDSystemInfo
+<</Registry ($registry)
+/Ordering ($ordering)
+/Supplement 0
+>> def
+/CMapName /Adobe-Identity-UCS def
+/CMapType 2 def
+1 begincodespacerange
+<0000> <FFFF>
+endcodespacerange
+1 beginbfrange
+<0000> <FFFF> <0000>
+endbfrange
+endcmap
+CMapName currentdict /CMap defineresource pop
+end
+end
+EOT;
+
+ $res = "\n$id 0 obj\n";
+ $res .= "<</Length " . mb_strlen($stream, '8bit') . " >>\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 .= "<</Type /Font\n";
+ $res .= "/Subtype /CIDFontType2\n";
+ $res .= "/BaseFont /" . $o['info']['name'] . "\n";
+ $res .= "/CIDSystemInfo " . $o['info']['cidSystemInfo'] . " 0 R\n";
+ // if (isset($o['info']['FirstChar'])) {
+ // $res.= "/FirstChar ".$o['info']['FirstChar']."\n";
+ // }
+
+ // if (isset($o['info']['LastChar'])) {
+ // $res.= "/LastChar ".$o['info']['LastChar']."\n";
+ // }
+ if (isset($o['info']['FontDescriptor'])) {
+ $res .= "/FontDescriptor " . $o['info']['FontDescriptor'] . " 0 R\n";
+ }
+
+ if (isset($o['info']['MissingWidth'])) {
+ $res .= "/DW " . $o['info']['MissingWidth'] . "\n";
+ }
+
+ if (isset($o['info']['fontFileName']) && isset($this->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 .= '<</Registry (' . $registry . ")\n"; // A string identifying an issuer of character collections
+ $res .= '/Ordering (' . $ordering . ")\n"; // A string that uniquely names a character collection issued by a specific registry
+ $res .= "/Supplement 0\n"; // The supplement number of the character collection.
+ $res .= ">>";
+
+ $res .= "\nendobj";
+
+ return $res;
+ }
+
+ return null;
+ }
+
+ /**
+ * a font glyph to character map, needed for unicode fonts
+ *
+ * @param $id
+ * @param $action
+ * @param string $options
+ * @return null|string
+ */
+ protected function o_fontGIDtoCIDMap($id, $action, $options = '')
+ {
+ if ($action !== 'new') {
+ $o = &$this->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 <</Type /Filespec /EF";
+ $res .= " <</F " . $info['embedded_reference'] . " 0 R >>";
+ $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 <</Params <</Size $file_size_uncompressed /CheckSum ($checksum) >>" .
+ " /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_<font>.afm file from the <font>.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("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... <b></b> <i></i>
+ $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/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/Courier-Bold.afm b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/Courier-Bold.afm
new file mode 100644
index 0000000..1f1d8e6
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/Courier-BoldOblique.afm b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/Courier-BoldOblique.afm
new file mode 100644
index 0000000..914680a
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/Courier-Oblique.afm b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/Courier-Oblique.afm
new file mode 100644
index 0000000..87e2154
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/Courier.afm b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/Courier.afm
new file mode 100644
index 0000000..9e7982e
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSans-Bold.ttf b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSans-Bold.ttf
new file mode 100644
index 0000000..6d65fa7
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSans-Bold.ttf
Binary files differ
diff --git a/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSans-Bold.ufm b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSans-Bold.ufm
new file mode 100644
index 0000000..e927992
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSans-BoldOblique.ttf b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSans-BoldOblique.ttf
new file mode 100644
index 0000000..753f2d8
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSans-BoldOblique.ttf
Binary files differ
diff --git a/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSans-BoldOblique.ufm b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSans-BoldOblique.ufm
new file mode 100644
index 0000000..5f4dd7c
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSans-Oblique.ttf b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSans-Oblique.ttf
new file mode 100644
index 0000000..999bac7
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSans-Oblique.ttf
Binary files differ
diff --git a/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSans-Oblique.ufm b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSans-Oblique.ufm
new file mode 100644
index 0000000..0b8d60e
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSans.ttf b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSans.ttf
new file mode 100644
index 0000000..e5f7eec
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSans.ttf
Binary files differ
diff --git a/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSans.ufm b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSans.ufm
new file mode 100644
index 0000000..82dfd81
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSansMono-Bold.ttf b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSansMono-Bold.ttf
new file mode 100644
index 0000000..8184ced
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSansMono-Bold.ttf
Binary files differ
diff --git a/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSansMono-Bold.ufm b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSansMono-Bold.ufm
new file mode 100644
index 0000000..d598e20
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSansMono-BoldOblique.ttf b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSansMono-BoldOblique.ttf
new file mode 100644
index 0000000..754dca7
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSansMono-BoldOblique.ttf
Binary files differ
diff --git a/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSansMono-BoldOblique.ufm b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSansMono-BoldOblique.ufm
new file mode 100644
index 0000000..3ae612a
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSansMono-Oblique.ttf b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSansMono-Oblique.ttf
new file mode 100644
index 0000000..4c858d4
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSansMono-Oblique.ttf
Binary files differ
diff --git a/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSansMono-Oblique.ufm b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSansMono-Oblique.ufm
new file mode 100644
index 0000000..4cd3d2a
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSansMono.ttf b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSansMono.ttf
new file mode 100644
index 0000000..f578602
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSansMono.ttf
Binary files differ
diff --git a/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSansMono.ufm b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSansMono.ufm
new file mode 100644
index 0000000..6b2d4ac
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSerif-Bold.ttf b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSerif-Bold.ttf
new file mode 100644
index 0000000..3bb755f
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSerif-Bold.ttf
Binary files differ
diff --git a/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSerif-Bold.ufm b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSerif-Bold.ufm
new file mode 100644
index 0000000..7420dab
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSerif-BoldItalic.ttf b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSerif-BoldItalic.ttf
new file mode 100644
index 0000000..a36dd4b
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSerif-BoldItalic.ttf
Binary files differ
diff --git a/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSerif-BoldItalic.ufm b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSerif-BoldItalic.ufm
new file mode 100644
index 0000000..f6db21d
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSerif-Italic.ttf b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSerif-Italic.ttf
new file mode 100644
index 0000000..805daf2
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSerif-Italic.ttf
Binary files differ
diff --git a/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSerif-Italic.ufm b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSerif-Italic.ufm
new file mode 100644
index 0000000..e9d62b8
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSerif.ttf b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSerif.ttf
new file mode 100644
index 0000000..0b803d2
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSerif.ttf
Binary files differ
diff --git a/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSerif.ufm b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/DejaVuSerif.ufm
new file mode 100644
index 0000000..358b026
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/Helvetica-Bold.afm b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/Helvetica-Bold.afm
new file mode 100644
index 0000000..92fa6aa
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/Helvetica-BoldOblique.afm b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/Helvetica-BoldOblique.afm
new file mode 100644
index 0000000..e98a0bb
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/Helvetica-Oblique.afm b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/Helvetica-Oblique.afm
new file mode 100644
index 0000000..e7beaf0
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/Helvetica.afm b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/Helvetica.afm
new file mode 100644
index 0000000..35a15b1
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/Symbol.afm b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/Symbol.afm
new file mode 100644
index 0000000..524cfb6
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/Times-Bold.afm b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/Times-Bold.afm
new file mode 100644
index 0000000..86a3421
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/Times-BoldItalic.afm b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/Times-BoldItalic.afm
new file mode 100644
index 0000000..6bc0683
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/Times-Italic.afm b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/Times-Italic.afm
new file mode 100644
index 0000000..3c25d77
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/Times-Roman.afm b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/Times-Roman.afm
new file mode 100644
index 0000000..0fdf332
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/ZapfDingbats.afm b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/ZapfDingbats.afm
new file mode 100644
index 0000000..dc5662e
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/installed-fonts.dist.json b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/installed-fonts.dist.json
new file mode 100644
index 0000000..c6abf15
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/mustRead.html b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/mustRead.html
new file mode 100644
index 0000000..b9f4ba2
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/fonts/mustRead.html
@@ -0,0 +1,17 @@
+<html>
+ <head>
+ <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
+ <meta name="generator" content="Adobe GoLive 4">
+ <title>Core 14 AFM Files - ReadMe</title>
+ </head>
+ <body bgcolor="white">
+ <font color="white">or</font>
+ <table border="0" cellpadding="0" cellspacing="2">
+ <tr>
+ <td width="40"></td>
+ <td width="300">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. <font color="white">Col</font></td>
+ </tr>
+ </table>
+ <p>Source <a href="http://www.adobe.com/devnet/font/#pcfi">http://www.adobe.com/devnet/font/#pcfi</a></p>
+</body>
+</html> \ No newline at end of file
diff --git a/library/vendor/dompdf/vendor/dompdf/dompdf/lib/res/broken_image.png b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/res/broken_image.png
new file mode 100644
index 0000000..771a1a3
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/res/broken_image.png
Binary files differ
diff --git a/library/vendor/dompdf/vendor/dompdf/dompdf/lib/res/broken_image.svg b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/res/broken_image.svg
new file mode 100644
index 0000000..83ba7e7
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/res/broken_image.svg
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<svg width="64" height="64" xmlns="http://www.w3.org/2000/svg">
+ <g>
+ <rect stroke="#666666" id="svg_1" height="60.499994" width="60.166667" y="1.666669" x="1.999998" stroke-width="1.5" fill="none"/>
+ <line stroke-linecap="butt" stroke-linejoin="miter" id="svg_3" y2="59.333253" x2="59.749916" y1="4.333415" x1="4.250079" stroke-width="1.5" stroke="#999999" fill="none"/>
+ <line stroke-linecap="butt" stroke-linejoin="miter" id="svg_4" y2="59.999665" x2="4.062838" y1="3.750342" x1="60.062164" stroke-width="1.5" stroke="#999999" fill="none"/>
+ </g>
+</svg> \ No newline at end of file
diff --git a/library/vendor/dompdf/vendor/dompdf/dompdf/lib/res/html.css b/library/vendor/dompdf/vendor/dompdf/dompdf/lib/res/html.css
new file mode 100644
index 0000000..89dcde6
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/dompdf/dompdf/src/Adapter/CPDF.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Adapter/CPDF.php
new file mode 100644
index 0000000..e8fc6ae
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Adapter/CPDF.php
@@ -0,0 +1,944 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+
+// FIXME: Need to sanity check inputs to this class
+namespace Dompdf\Adapter;
+
+use Dompdf\Canvas;
+use Dompdf\Dompdf;
+use Dompdf\Exception;
+use Dompdf\FontMetrics;
+use Dompdf\Helpers;
+use Dompdf\Image\Cache;
+use FontLib\Exception\FontNotFoundException;
+
+/**
+ * PDF rendering interface
+ *
+ * Dompdf\Adapter\CPDF provides a simple stateless interface to the stateful one
+ * provided by the Cpdf class.
+ *
+ * Unless otherwise mentioned, all dimensions are in points (1/72 in). The
+ * coordinate origin is in the top left corner, and y values increase
+ * downwards.
+ *
+ * See {@link http://www.ros.co.nz/pdf/} for more complete documentation
+ * on the underlying {@link Cpdf} class.
+ *
+ * @package dompdf
+ */
+class CPDF implements Canvas
+{
+
+ /**
+ * Dimensions of paper sizes in points
+ *
+ * @var array
+ */
+ static $PAPER_SIZES = [
+ "4a0" => [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("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/library/vendor/dompdf/vendor/dompdf/dompdf/src/Adapter/GD.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Adapter/GD.php
new file mode 100644
index 0000000..8c10e47
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Adapter/GD.php
@@ -0,0 +1,929 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf\Adapter;
+
+use Dompdf\Canvas;
+use Dompdf\Dompdf;
+use Dompdf\Helpers;
+use Dompdf\Image\Cache;
+
+/**
+ * Image rendering interface
+ *
+ * Renders to an image format supported by GD (jpeg, gif, png, xpm).
+ * Not super-useful day-to-day but handy nonetheless
+ *
+ * @package dompdf
+ */
+class GD implements Canvas
+{
+ /**
+ * @var Dompdf
+ */
+ protected $_dompdf;
+
+ /**
+ * Resource handle for the image
+ *
+ * @var \GdImage|resource
+ */
+ protected $_img;
+
+ /**
+ * Resource handle for the image
+ *
+ * @var \GdImage[]|resource[]
+ */
+ protected $_imgs;
+
+ /**
+ * Apparent canvas width in pixels
+ *
+ * @var int
+ */
+ protected $_width;
+
+ /**
+ * Apparent canvas height in pixels
+ *
+ * @var int
+ */
+ protected $_height;
+
+ /**
+ * Actual image width in pixels
+ *
+ * @var int
+ */
+ protected $_actual_width;
+
+ /**
+ * Actual image height in pixels
+ *
+ * @var int
+ */
+ protected $_actual_height;
+
+ /**
+ * Current page number
+ *
+ * @var int
+ */
+ protected $_page_number;
+
+ /**
+ * Total number of pages
+ *
+ * @var int
+ */
+ protected $_page_count;
+
+ /**
+ * Image antialias factor
+ *
+ * @var float
+ */
+ protected $_aa_factor;
+
+ /**
+ * Allocated colors
+ *
+ * @var array
+ */
+ protected $_colors;
+
+ /**
+ * Background color
+ *
+ * @var int
+ */
+ protected $_bg_color;
+
+ /**
+ * Background color array
+ *
+ * @var int
+ */
+ protected $_bg_color_array;
+
+ /**
+ * Actual DPI
+ *
+ * @var int
+ */
+ protected $dpi;
+
+ /**
+ * Amount to scale font sizes
+ *
+ * Font sizes are 72 DPI, GD internally uses 96. Scale them proportionally.
+ * 72 / 96 = 0.75.
+ *
+ * @var float
+ */
+ const FONT_SCALE = 0.75;
+
+ /**
+ * @param string|float[] $paper The paper size to use as either a standard paper size (see {@link CPDF::$PAPER_SIZES}) or
+ * an array of the form `[x1, y1, x2, y2]` (typically `[0, 0, width, height]`).
+ * @param string $orientation The paper orientation, either `portrait` or `landscape`.
+ * @param Dompdf $dompdf The Dompdf instance.
+ * @param float $aa_factor Anti-aliasing factor, 1 for no AA
+ * @param array $bg_color Image background color: array(r,g,b,a), 0 <= r,g,b,a <= 1
+ */
+ public function __construct($paper = "letter", $orientation = "portrait", ?Dompdf $dompdf = null, $aa_factor = 1.0, $bg_color = [1, 1, 1, 0])
+ {
+ 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]];
+ }
+
+ if ($dompdf === null) {
+ $this->_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: &amp;#160; will render &#160; rather than its character.
+ $text = preg_replace('/&(#(?:x[a-fA-F0-9]+|[0-9]+);)/', '&#38;\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: &amp;#160; will render &#160; rather than its character.
+ $text = preg_replace('/&(#(?:x[a-fA-F0-9]+|[0-9]+);)/', '&#38;\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/library/vendor/dompdf/vendor/dompdf/dompdf/src/Adapter/PDFLib.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Adapter/PDFLib.php
new file mode 100644
index 0000000..ee5ae8d
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Adapter/PDFLib.php
@@ -0,0 +1,1450 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf\Adapter;
+
+use Dompdf\Canvas;
+use Dompdf\Dompdf;
+use Dompdf\Exception;
+use Dompdf\FontMetrics;
+use Dompdf\Helpers;
+use Dompdf\Image\Cache;
+
+/**
+ * PDF rendering interface
+ *
+ * Dompdf\Adapter\PDFLib provides a simple, stateless interface to the one
+ * provided by PDFLib.
+ *
+ * Unless otherwise mentioned, all dimensions are in points (1/72 in).
+ * The coordinate origin is in the top left corner and y values
+ * increase downwards.
+ *
+ * See {@link http://www.pdflib.com/} for more complete documentation
+ * on the underlying PDFlib functions.
+ *
+ * @package dompdf
+ */
+class PDFLib implements Canvas
+{
+
+ /**
+ * Dimensions of paper sizes in points
+ *
+ * @var array
+ */
+ public static $PAPER_SIZES = []; // Set to Dompdf\Adapter\CPDF::$PAPER_SIZES below.
+
+ /**
+ * Whether to create PDFs in memory or on disk
+ *
+ * @var bool
+ */
+ static $IN_MEMORY = true;
+
+ /**
+ * Saves the major version of PDFLib for compatibility requests
+ *
+ * @var null|int
+ */
+ protected static $MAJOR_VERSION = null;
+
+
+ /**
+ * Transforms the list of native fonts into PDFLib compatible names (casesensitive)
+ *
+ * @var array
+ */
+ public static $nativeFontsTpPDFLib = [
+ "courier" => "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("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/library/vendor/dompdf/vendor/dompdf/dompdf/src/Canvas.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Canvas.php
new file mode 100644
index 0000000..1812def
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Canvas.php
@@ -0,0 +1,477 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf;
+
+/**
+ * Main rendering interface
+ *
+ * Currently {@link Dompdf\Adapter\CPDF}, {@link Dompdf\Adapter\PDFLib}, and {@link Dompdf\Adapter\GD}
+ * implement this interface.
+ *
+ * Implementations should measure x and y increasing to the left and down,
+ * respectively, with the origin in the top left corner. Implementations
+ * are free to use a unit other than points for length, but I can't
+ * guarantee that the results will look any good.
+ *
+ * @package dompdf
+ */
+interface Canvas
+{
+ /**
+ * @param string|float[] $paper The paper size to use as either a standard paper size (see {@link Dompdf\Adapter\CPDF::$PAPER_SIZES})
+ * or an array of the form `[x1, y1, x2, y2]` (typically `[0, 0, width, height]`).
+ * @param string $orientation The paper orientation, either `portrait` or `landscape`.
+ * @param Dompdf $dompdf The Dompdf instance.
+ */
+ public function __construct($paper = "letter", $orientation = "portrait", ?Dompdf $dompdf = null);
+
+ /**
+ * @return Dompdf
+ */
+ function get_dompdf();
+
+ /**
+ * Returns the current page number
+ *
+ * @return int
+ */
+ function get_page_number();
+
+ /**
+ * Returns the total number of pages in the document
+ *
+ * @return int
+ */
+ function get_page_count();
+
+ /**
+ * Sets the total number of pages
+ *
+ * @param int $count
+ */
+ function set_page_count($count);
+
+ /**
+ * Draws a line from x1,y1 to x2,y2
+ *
+ * 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 $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
+ * @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 <a name="foo">...</a> 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/library/vendor/dompdf/vendor/dompdf/dompdf/src/CanvasFactory.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/CanvasFactory.php
new file mode 100644
index 0000000..86352e1
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/CanvasFactory.php
@@ -0,0 +1,58 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf;
+
+/**
+ * Create canvas instances
+ *
+ * The canvas factory creates canvas instances based on the
+ * availability of rendering backends and config options.
+ *
+ * @package dompdf
+ */
+class CanvasFactory
+{
+ /**
+ * Constructor is private: this is a static class
+ */
+ private function __construct()
+ {
+ }
+
+ /**
+ * @param Dompdf $dompdf
+ * @param string|array $paper
+ * @param string $orientation
+ * @param string $class
+ *
+ * @return Canvas
+ */
+ static function get_instance(Dompdf $dompdf, $paper = null, $orientation = null, $class = null)
+ {
+ $backend = strtolower($dompdf->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/library/vendor/dompdf/vendor/dompdf/dompdf/src/Cellmap.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Cellmap.php
new file mode 100644
index 0000000..e6c1c68
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Cellmap.php
@@ -0,0 +1,999 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf;
+
+use Dompdf\FrameDecorator\AbstractFrameDecorator;
+use Dompdf\FrameDecorator\Table as TableFrameDecorator;
+use Dompdf\FrameDecorator\TableCell as TableCellFrameDecorator;
+
+/**
+ * Maps table cells to the table grid.
+ *
+ * This class resolves borders in tables with collapsed borders and helps
+ * place row & column spanned table cells.
+ *
+ * @package dompdf
+ */
+class Cellmap
+{
+ /**
+ * Border style weight lookup for collapsed border resolution.
+ */
+ protected const BORDER_STYLE_SCORE = [
+ "double" => 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 <row,column> 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) <row, col> 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:<br/>";
+ $str .= Helpers::pre_r($this->_columns, true);
+ $str .= "Rows:<br/>";
+ $str .= Helpers::pre_r($this->_rows, true);
+
+ $str .= "Frames:<br/>";
+ $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(["<br/>", "<b>", "</b>"],
+ ["\n", chr(27) . "[01;33m", chr(27) . "[0m"],
+ $str));
+ }
+
+ return $str;
+ }
+}
diff --git a/library/vendor/dompdf/vendor/dompdf/dompdf/src/Css/AttributeTranslator.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Css/AttributeTranslator.php
new file mode 100644
index 0000000..b2013e1
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Css/AttributeTranslator.php
@@ -0,0 +1,652 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf\Css;
+
+use Dompdf\Frame;
+use Dompdf\Helpers;
+
+/**
+ * Translates HTML 4.0 attributes into CSS rules
+ *
+ * @package dompdf
+ */
+class AttributeTranslator
+{
+ static $_style_attr = "_html_style_attribute";
+
+ // Munged data originally from
+ // http://www.w3.org/TR/REC-html40/index/attributes.html
+ // http://www.cs.tut.fi/~jkorpela/html2css.html
+ private static $__ATTRIBUTE_LOOKUP = [
+ //'caption' => 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 <font> 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/library/vendor/dompdf/vendor/dompdf/dompdf/src/Css/Color.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Css/Color.php
new file mode 100644
index 0000000..28a9f56
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Css/Color.php
@@ -0,0 +1,339 @@
+<?php
+
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf\Css;
+
+use Dompdf\Helpers;
+
+class Color
+{
+ static $cssColorNames = [
+ "aliceblue" => "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/library/vendor/dompdf/vendor/dompdf/dompdf/src/Css/Style.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Css/Style.php
new file mode 100644
index 0000000..2d4c9d7
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Css/Style.php
@@ -0,0 +1,3743 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf\Css;
+
+use Dompdf\Adapter\CPDF;
+use Dompdf\Exception;
+use Dompdf\FontMetrics;
+use Dompdf\Frame;
+
+/**
+ * Represents CSS properties.
+ *
+ * The Style class is responsible for handling and storing CSS properties.
+ * It includes methods to resolve colors and lengths, as well as getters &
+ * setters for many CSS properties.
+ *
+ * Access to the different CSS properties is provided by the methods
+ * {@link Style::set_prop()} and {@link Style::get_specified()}, and the
+ * property overload methods {@link Style::__set()} and {@link Style::__get()},
+ * as well as {@link Style::set_used()}. The latter methods operate on used
+ * values and permit access to any (CSS) property using the following syntax:
+ *
+ * ```
+ * $style->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<float>
+ */
+ 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<bool>
+ */
+ 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 "<pre>[get_font_family:";
+ print '(' . $computed . '.' . $font_style . '.' . $weight . '.' . $subtype . ')';
+ print '(' . $font . ")get_font_family]\n</pre>";
+ }
+ return $font;
+ }
+ }
+
+ $family = null;
+ if ($DEBUGCSS) {
+ print '(default)';
+ }
+ $font = $fontMetrics->getFont($family, $subtype);
+
+ if ($font) {
+ if ($DEBUGCSS) {
+ print '(' . $font . ")get_font_family]\n</pre>";
+ }
+ 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* \" ( (?:[^\"]|\\\\[\"])* ) (?<!\\\\)\" |\n" . // String ""
+ "\s* ' ( (?:[^']|\\\\['])* ) (?<!\\\\)' |\n" . // String ''
+ "\s* ($ident \\([^)]*\\) ) |\n" . // Functional
+ "\s* ($ident) |\n" . // Keyword
+ "\s* (\#[0-9a-fA-F]*) |\n" . // Hex value
+ "\s* ($number [a-zA-Z%]*) |\n" . // Number (+ unit/percentage)
+ "\s* ([\/,;]) \n" . // Delimiter
+ "/Sx";
+
+ if (!preg_match_all($pattern, $value, $matches)) {
+ return [];
+ }
+
+ return array_map("trim", $matches[0]);
+ }
+
+ protected function is_color_value(string $val): bool
+ {
+ return $val === "currentcolor"
+ || $val === "transparent"
+ || isset(Color::$cssColorNames[$val])
+ || preg_match("/^#|rgb\(|rgba\(|cmyk\(/", $val);
+ }
+
+ /**
+ * @param string $val
+ * @return string|null
+ */
+ protected function compute_color_value(string $val): ?string
+ {
+ // https://www.w3.org/TR/css-color-4/#resolving-other-colors
+ $munged_color = $val !== "currentcolor"
+ ? $this->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) {
+ // <angle> 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;
+
+ // <translation-value> 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;
+
+ // <number> 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/library/vendor/dompdf/vendor/dompdf/dompdf/src/Css/Stylesheet.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Css/Stylesheet.php
new file mode 100644
index 0000000..20e019a
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Css/Stylesheet.php
@@ -0,0 +1,1689 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf\Css;
+
+use DOMElement;
+use DOMXPath;
+use Dompdf\Dompdf;
+use Dompdf\Helpers;
+use Dompdf\Exception;
+use Dompdf\FontMetrics;
+use Dompdf\Frame\FrameTree;
+
+/**
+ * The master stylesheet class
+ *
+ * The Stylesheet class is responsible for parsing stylesheets and style
+ * tags/attributes. It also acts as a registry of the individual Style
+ * objects generated by the current set of loaded CSS files and style
+ * elements.
+ *
+ * @see Style
+ * @package dompdf
+ */
+class Stylesheet
+{
+ /**
+ * The location of the default built-in CSS file.
+ */
+ const DEFAULT_STYLESHEET = "/lib/res/html.css";
+
+ /**
+ * User agent stylesheet origin
+ *
+ * @var int
+ */
+ const ORIG_UA = 1;
+
+ /**
+ * User normal stylesheet origin
+ *
+ * @var int
+ */
+ const ORIG_USER = 2;
+
+ /**
+ * Author normal stylesheet origin
+ *
+ * @var int
+ */
+ const ORIG_AUTHOR = 3;
+
+ /*
+ * The highest possible specificity is 0x01000000 (and that is only for author
+ * stylesheets, as it is for inline styles). Origin precedence can be achieved by
+ * adding multiples of 0x10000000 to the actual specificity. Important
+ * declarations are handled in Style; though technically they should be handled
+ * here so that user important declarations can be made to take precedence over
+ * user important declarations, this doesn't matter in practice as Dompdf does
+ * not support user stylesheets, and user agent stylesheets can not include
+ * important declarations.
+ */
+ private static $_stylesheet_origins = [
+ self::ORIG_UA => 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<Style>
+ */
+ private $_page_styles;
+
+ /**
+ * List of loaded files, used to prevent recursion
+ *
+ * @var array
+ */
+ private $_loaded_files;
+
+ /**
+ * Current stylesheet origin
+ *
+ * @var int
+ */
+ private $_current_origin = self::ORIG_UA;
+
+ /**
+ * Accepted CSS media types
+ * List of types and parsing rules for future extensions:
+ * http://www.w3.org/TR/REC-html40/types.html
+ * screen, tty, tv, projection, handheld, print, braille, aural, all
+ * The following are non standard extensions for undocumented specific environments.
+ * static, visual, bitmap, paged, dompdf
+ * Note, even though the generated pdf file is intended for print output,
+ * the desired content might be different (e.g. screen or projection view of html file).
+ * Therefore allow specification of content by dompdf setting Options::defaultMediaType.
+ * If given, replace media "print" by Options::defaultMediaType.
+ * (Previous version $ACCEPTED_MEDIA_TYPES = $ACCEPTED_GENERIC_MEDIA_TYPES + $ACCEPTED_DEFAULT_MEDIA_TYPE)
+ */
+ static $ACCEPTED_DEFAULT_MEDIA_TYPE = "print";
+ static $ACCEPTED_GENERIC_MEDIA_TYPES = ["all", "static", "visual", "bitmap", "paged", "dompdf"];
+ static $VALID_MEDIA_TYPES = ["all", "aural", "bitmap", "braille", "dompdf", "embossed", "handheld", "paged", "print", "projection", "screen", "speech", "static", "tty", "tv", "visual"];
+
+ /**
+ * @var FontMetrics
+ */
+ private $fontMetrics;
+
+ /**
+ * The class constructor.
+ *
+ * The base protocol, host & path are initialized to those of
+ * the current script.
+ */
+ function __construct(Dompdf $dompdf)
+ {
+ $this->_dompdf = $dompdf;
+ $this->setFontMetrics($dompdf->getFontMetrics());
+ $this->_styles = [];
+ $this->_loaded_files = [];
+ $script = __FILE__;
+ if (isset($_SERVER["SCRIPT_FILENAME"])) {
+ $script = $_SERVER["SCRIPT_FILENAME"];
+ }
+ list($this->_protocol, $this->_base_host, $this->_base_path) = Helpers::explode_url($script);
+ $this->_page_styles = ["base" => new Style($this)];
+ }
+
+ /**
+ * Set the base protocol
+ *
+ * @param string $protocol
+ */
+ function set_protocol(string $protocol)
+ {
+ $this->_protocol = $protocol;
+ }
+
+ /**
+ * Set the base host
+ *
+ * @param string $host
+ */
+ function set_host(string $host)
+ {
+ $this->_base_host = $host;
+ }
+
+ /**
+ * Set the base path
+ *
+ * @param string $path
+ */
+ function set_base_path(string $path)
+ {
+ $this->_base_path = $path;
+ }
+
+ /**
+ * Return the Dompdf object
+ *
+ * @return Dompdf
+ */
+ function get_dompdf()
+ {
+ return $this->_dompdf;
+ }
+
+ /**
+ * Return the base protocol for this stylesheet
+ *
+ * @return string
+ */
+ function get_protocol()
+ {
+ return $this->_protocol;
+ }
+
+ /**
+ * Return the base host for this stylesheet
+ *
+ * @return string
+ */
+ function get_host()
+ {
+ return $this->_base_host;
+ }
+
+ /**
+ * Return the base path for this stylesheet
+ *
+ * @return string
+ */
+ function get_base_path()
+ {
+ return $this->_base_path;
+ }
+
+ /**
+ * Return the array of page styles
+ *
+ * @return Style[]
+ */
+ function get_page_styles()
+ {
+ return $this->_page_styles;
+ }
+
+ /**
+ * Create a new Style object associated with this stylesheet
+ *
+ * @return Style
+ */
+ function create_style(): Style
+ {
+ return new Style($this, $this->_current_origin);
+ }
+
+ /**
+ * Add a new Style object to the stylesheet
+ *
+ * The style's origin is changed to the current origin of the stylesheet.
+ *
+ * @param string $key the Style's selector
+ * @param Style $style the Style to be added
+ */
+ function add_style(string $key, Style $style): void
+ {
+ if (!isset($this->_styles[$key])) {
+ $this->_styles[$key] = [];
+ }
+
+ $style->set_origin($this->_current_origin);
+ $this->_styles[$key][] = $style;
+ }
+
+ /**
+ * load and parse a CSS string
+ *
+ * @param string $css
+ * @param int $origin
+ */
+ function load_css(&$css, $origin = self::ORIG_AUTHOR)
+ {
+ if ($origin) {
+ $this->_current_origin = $origin;
+ }
+ $this->_parse_css($css);
+ }
+
+ /**
+ * load and parse a CSS file
+ *
+ * @param string $file
+ * @param int $origin
+ */
+ function load_css_file($file, $origin = self::ORIG_AUTHOR)
+ {
+ if ($origin) {
+ $this->_current_origin = $origin;
+ }
+
+ // Prevent circular references
+ if (isset($this->_loaded_files[$file])) {
+ return;
+ }
+
+ $this->_loaded_files[$file] = true;
+
+ if (strpos($file, "data:") === 0) {
+ $parsed = Helpers::parse_data_uri($file);
+ $css = $parsed["data"];
+ } else {
+ $options = $this->_dompdf->getOptions();
+
+ $parsed_url = Helpers::explode_url($file);
+ $protocol = $parsed_url["protocol"];
+
+ if ($file !== $this->getDefaultStylesheet()) {
+ $allowed_protocols = $options->getAllowedProtocols();
+ if (!array_key_exists($protocol, $allowed_protocols)) {
+ Helpers::record_warnings(E_USER_WARNING, "Permission denied on $file. The communication protocol is not supported.", __FILE__, __LINE__);
+ return;
+ }
+ foreach ($allowed_protocols[$protocol]["rules"] as $rule) {
+ [$result, $message] = $rule($file);
+ if (!$result) {
+ Helpers::record_warnings(E_USER_WARNING, "Error loading $file: $message", __FILE__, __LINE__);
+ return;
+ }
+ }
+ }
+
+ [$css, $http_response_header] = Helpers::getFileContent($file, $this->_dompdf->getHttpContext());
+
+ $good_mime_type = true;
+
+ // See http://the-stickman.com/web-development/php/getting-http-response-headers-when-using-file_get_contents/
+ if (isset($http_response_header) && !$this->_dompdf->getQuirksmode()) {
+ foreach ($http_response_header as $_header) {
+ if (preg_match("@Content-Type:\s*([\w/]+)@i", $_header, $matches) &&
+ ($matches[1] !== "text/css")
+ ) {
+ $good_mime_type = false;
+ }
+ }
+ }
+ if (!$good_mime_type || $css === null) {
+ Helpers::record_warnings(E_USER_WARNING, "Unable to load css file $file", __FILE__, __LINE__);
+ return;
+ }
+
+ [$this->_protocol, $this->_base_host, $this->_base_path] = $parsed_url;
+ }
+
+ $this->_parse_css($css);
+ }
+
+ /**
+ * @link http://www.w3.org/TR/CSS21/cascade.html#specificity
+ *
+ * @param string $selector
+ * @param int $origin :
+ * - Stylesheet::ORIG_UA: user agent style sheet
+ * - Stylesheet::ORIG_USER: user style sheet
+ * - Stylesheet::ORIG_AUTHOR: author style sheet
+ *
+ * @return int
+ */
+ private function _specificity($selector, $origin = self::ORIG_AUTHOR)
+ {
+ // http://www.w3.org/TR/CSS21/cascade.html#specificity
+ // ignoring the ":" pseudoclass modifiers
+ // also ignored in _css_selector_to_xpath
+
+ $a = ($selector === "!attr") ? 1 : 0;
+
+ $b = min(mb_substr_count($selector, "#"), 255);
+
+ $c = min(mb_substr_count($selector, ".") +
+ mb_substr_count($selector, "["), 255);
+
+ $d = min(mb_substr_count($selector, " ") +
+ mb_substr_count($selector, ">") +
+ mb_substr_count($selector, "+") +
+ mb_substr_count($selector, "~") -
+ mb_substr_count($selector, "~="), 255);
+
+ //If a normal element name is at the beginning of the string,
+ //a leading whitespace might have been removed on whitespace collapsing and removal
+ //therefore there might be one whitespace less as selected element names
+ //this can lead to a too small specificity
+ //see _css_selector_to_xpath
+
+ if (!in_array($selector[0], [" ", ">", ".", "#", "+", "~", ":", "["]) && $selector !== "*") {
+ $d++;
+ }
+
+ if ($this->_dompdf->getOptions()->getDebugCss()) {
+ /*DEBUGCSS*/
+ print "<pre>\n";
+ /*DEBUGCSS*/
+ printf("_specificity(): 0x%08x \"%s\"\n", self::$_stylesheet_origins[$origin] + (($a << 24) | ($b << 16) | ($c << 8) | ($d)), $selector);
+ /*DEBUGCSS*/
+ print "</pre>";
+ }
+
+ return self::$_stylesheet_origins[$origin] + (($a << 24) | ($b << 16) | ($c << 8) | ($d));
+ }
+
+ /**
+ * Converts a CSS selector to an XPath query.
+ *
+ * @param string $selector
+ * @param bool $first_pass
+ *
+ * @throws Exception
+ * @return array
+ */
+ private function _css_selector_to_xpath(string $selector, bool $first_pass = false): array
+ {
+ // Collapse white space and strip whitespace around delimiters
+ //$search = array("/\\s+/", "/\\s+([.>#+:])\\s+/");
+ //$replace = array(" ", "\\1");
+ //$selector = preg_replace($search, $replace, trim($selector));
+
+ // Initial query (non-absolute)
+ $query = "//";
+
+ // Will contain :before and :after
+ $pseudo_elements = [];
+
+ // Will contain :link, etc
+ $pseudo_classes = [];
+
+ // Parse the selector
+ //$s = preg_split("/([ :>.#+])/", $selector, -1, PREG_SPLIT_DELIM_CAPTURE);
+
+ $delimiters = [" ", ">", ".", "#", "+", "~", ":", "[", "("];
+
+ // Add an implicit * at the beginning of the selector
+ // if it begins with an attribute selector
+ if ($selector[0] === "[") {
+ $selector = "*$selector";
+ }
+
+ // Add an implicit space at the beginning of the selector if there is no
+ // delimiter there already.
+ if (!in_array($selector[0], $delimiters)) {
+ $selector = " $selector";
+ }
+
+ $tok = "";
+ $len = mb_strlen($selector);
+ $i = 0;
+
+ while ($i < $len) {
+
+ $s = $selector[$i];
+ $i++;
+
+ // Eat characters up to the next delimiter
+ $tok = "";
+ $in_attr = false;
+ $in_func = false;
+
+ while ($i < $len) {
+ $c = $selector[$i];
+ $c_prev = $selector[$i - 1];
+
+ if (!$in_func && !$in_attr && in_array($c, $delimiters) && !(($c == $c_prev) == ":")) {
+ break;
+ }
+
+ if ($c_prev === "[") {
+ $in_attr = true;
+ }
+ if ($c_prev === "(") {
+ $in_func = true;
+ }
+
+ $tok .= $selector[$i++];
+
+ if ($in_attr && $c === "]") {
+ $in_attr = false;
+ break;
+ }
+ if ($in_func && $c === ")") {
+ $in_func = false;
+ break;
+ }
+ }
+
+ switch ($s) {
+
+ case " ":
+ case ">":
+ // All elements matching the next token that are direct children of
+ // the current token
+ $expr = $s === " " ? "descendant" : "child";
+
+ if (mb_substr($query, -1, 1) !== "/") {
+ $query .= "/";
+ }
+
+ // Tag names are case-insensitive
+ $tok = strtolower($tok);
+
+ if (!$tok) {
+ $tok = "*";
+ }
+
+ $query .= "$expr::$tok";
+ $tok = "";
+ break;
+
+ case ".":
+ case "#":
+ // All elements matching the current token with a class/id equal to
+ // the _next_ token.
+
+ $attr = $s === "." ? "class" : "id";
+
+ // empty class/id == *
+ if (mb_substr($query, -1, 1) === "/") {
+ $query .= "*";
+ }
+
+ // Match multiple classes: $tok contains the current selected
+ // class. Search for class attributes with class="$tok",
+ // class=".* $tok .*" and class=".* $tok"
+
+ // This doesn't work because libxml only supports XPath 1.0...
+ //$query .= "[matches(@$attr,\"^{$tok}\$|^{$tok}[ ]+|[ ]+{$tok}\$|[ ]+{$tok}[ ]+\")]";
+
+ $query .= "[contains(concat(' ', normalize-space(@$attr), ' '), concat(' ', '$tok', ' '))]";
+ $tok = "";
+ break;
+
+ case "+":
+ case "~":
+ // Next-sibling combinator
+ // Subsequent-sibling combinator
+ // https://www.w3.org/TR/selectors-3/#sibling-combinators
+ if (mb_substr($query, -1, 1) !== "/") {
+ $query .= "/";
+ }
+
+ // Tag names are case-insensitive
+ $tok = strtolower($tok);
+
+ if (!$tok) {
+ $tok = "*";
+ }
+
+ $query .= "following-sibling::$tok";
+
+ if ($s === "+") {
+ $query .= "[1]";
+ }
+
+ $tok = "";
+ break;
+
+ case ":":
+ $i2 = $i - strlen($tok) - 2; // the char before ":"
+ if (($i2 < 0 || !isset($selector[$i2]) || (in_array($selector[$i2], $delimiters) && $selector[$i2] != ":")) && substr($query, -1) != "*") {
+ $query .= "*";
+ }
+
+ $last = false;
+
+ // Pseudo-classes
+ switch ($tok) {
+
+ case "first-child":
+ $query .= "[not(preceding-sibling::*)]";
+ $tok = "";
+ break;
+
+ case "last-child":
+ $query .= "[not(following-sibling::*)]";
+ $tok = "";
+ break;
+
+ case "first-of-type":
+ $query .= "[position() = 1]";
+ $tok = "";
+ break;
+
+ case "last-of-type":
+ $query .= "[position() = last()]";
+ $tok = "";
+ break;
+
+ // an+b, n, odd, and even
+ /** @noinspection PhpMissingBreakStatementInspection */
+ case "nth-last-of-type":
+ $last = true;
+ case "nth-of-type":
+ //FIXME: this fix-up is pretty ugly, would parsing the selector in reverse work better generally?
+ $descendant_delimeter = strrpos($query, "::");
+ $isChild = substr($query, $descendant_delimeter-5, 5) == "child";
+ $el = substr($query, $descendant_delimeter+2);
+ $query = substr($query, 0, strrpos($query, "/")) . ($isChild ? "/" : "//") . $el;
+
+ $pseudo_classes[$tok] = true;
+ $p = $i + 1;
+ $nth = trim(mb_substr($selector, $p, strpos($selector, ")", $i) - $p));
+ $position = $last ? "(last()-position()+1)" : "position()";
+
+ // 1
+ if (preg_match("/^\d+$/", $nth)) {
+ $condition = "$position = $nth";
+ } // odd
+ elseif ($nth === "odd") {
+ $condition = "($position mod 2) = 1";
+ } // even
+ elseif ($nth === "even") {
+ $condition = "($position mod 2) = 0";
+ } // an+b
+ else {
+ $condition = $this->_selector_an_plus_b($nth, $last);
+ }
+
+ $query .= "[$condition]";
+ $tok = "";
+ break;
+ /** @noinspection PhpMissingBreakStatementInspection */
+ case "nth-last-child":
+ $last = true;
+ case "nth-child":
+ //FIXME: this fix-up is pretty ugly, would parsing the selector in reverse work better generally?
+ $descendant_delimeter = strrpos($query, "::");
+ $isChild = substr($query, $descendant_delimeter-5, 5) == "child";
+ $el = substr($query, $descendant_delimeter+2);
+ $query = substr($query, 0, strrpos($query, "/")) . ($isChild ? "/" : "//") . "*";
+
+ $pseudo_classes[$tok] = true;
+ $p = $i + 1;
+ $nth = trim(mb_substr($selector, $p, strpos($selector, ")", $i) - $p));
+ $position = $last ? "(last()-position()+1)" : "position()";
+
+ // 1
+ if (preg_match("/^\d+$/", $nth)) {
+ $condition = "$position = $nth";
+ } // odd
+ elseif ($nth === "odd") {
+ $condition = "($position mod 2) = 1";
+ } // even
+ elseif ($nth === "even") {
+ $condition = "($position mod 2) = 0";
+ } // an+b
+ else {
+ $condition = $this->_selector_an_plus_b($nth, $last);
+ }
+
+ $query .= "[$condition]";
+ if ($el != "*") {
+ $query .= "[name() = '$el']";
+ }
+ $tok = "";
+ break;
+
+ //TODO: bit of a hack attempt at matches support, currently only matches against elements
+ case "matches":
+ $pseudo_classes[$tok] = true;
+ $p = $i + 1;
+ $matchList = trim(mb_substr($selector, $p, strpos($selector, ")", $i) - $p));
+
+ // Tag names are case-insensitive
+ $elements = array_map("trim", explode(",", strtolower($matchList)));
+ foreach ($elements as &$element) {
+ $element = "name() = '$element'";
+ }
+
+ $query .= "[" . implode(" or ", $elements) . "]";
+ $tok = "";
+ break;
+
+ case "link":
+ $query .= "[@href]";
+ $tok = "";
+ break;
+
+ case "first-line":
+ case ":first-line":
+ case "first-letter":
+ case ":first-letter":
+ // TODO
+ $el = trim($tok, ":");
+ $pseudo_elements[$el] = true;
+ break;
+
+ // N/A
+ case "focus":
+ case "active":
+ case "hover":
+ case "visited":
+ $query .= "[false()]";
+ $tok = "";
+ break;
+
+ /* Pseudo-elements */
+ case "before":
+ case ":before":
+ case "after":
+ case ":after":
+ $pos = trim($tok, ":");
+ $pseudo_elements[$pos] = true;
+ if (!$first_pass) {
+ $query .= "/*[@$pos]";
+ }
+
+ $tok = "";
+ break;
+
+ case "empty":
+ $query .= "[not(*) and not(normalize-space())]";
+ $tok = "";
+ break;
+
+ case "disabled":
+ case "checked":
+ $query .= "[@$tok]";
+ $tok = "";
+ break;
+
+ case "enabled":
+ $query .= "[not(@disabled)]";
+ $tok = "";
+ break;
+
+ // the selector is not handled, until we support all possible selectors force an empty set (silent failure)
+ default:
+ $query = "/../.."; // go up two levels because generated content starts on the body element
+ $tok = "";
+ break;
+ }
+
+ break;
+
+ case "[":
+ // Attribute selectors. All with an attribute matching the following token(s)
+ // https://www.w3.org/TR/selectors-3/#attribute-selectors
+ $attr_delimiters = ["=", "]", "~", "|", "$", "^", "*"];
+ $tok_len = mb_strlen($tok);
+ $j = 0;
+
+ $attr = "";
+ $op = "";
+ $value = "";
+
+ while ($j < $tok_len) {
+ if (in_array($tok[$j], $attr_delimiters)) {
+ break;
+ }
+ $attr .= $tok[$j++];
+ }
+
+ switch ($tok[$j]) {
+
+ case "~":
+ case "|":
+ case "$":
+ case "^":
+ case "*":
+ $op .= $tok[$j++];
+
+ if ($tok[$j] !== "=") {
+ throw new Exception("Invalid CSS selector syntax: invalid attribute selector: $selector");
+ }
+
+ $op .= $tok[$j];
+ break;
+
+ case "=":
+ $op = "=";
+ break;
+
+ }
+
+ // Read the attribute value, if required
+ if ($op != "") {
+ $j++;
+ while ($j < $tok_len) {
+ if ($tok[$j] === "]") {
+ break;
+ }
+ $value .= $tok[$j++];
+ }
+ }
+
+ if ($attr == "") {
+ throw new Exception("Invalid CSS selector syntax: missing attribute name");
+ }
+
+ $value = trim($value, "\"'");
+
+ switch ($op) {
+
+ case "":
+ $query .= "[@$attr]";
+ break;
+
+ case "=":
+ $query .= "[@$attr=\"$value\"]";
+ break;
+
+ case "~=":
+ // FIXME: this will break if $value contains quoted strings
+ // (e.g. [type~="a b c" "d e f"])
+ // FIXME: Don't match anything if value contains
+ // whitespace or is the empty string
+ $query .= "[contains(concat(' ', normalize-space(@$attr), ' '), concat(' ', '$value', ' '))]";
+ break;
+
+ case "|=":
+ $values = explode("-", $value);
+ $query .= "[";
+
+ foreach ($values as $val) {
+ $query .= "starts-with(@$attr, \"$val\") or ";
+ }
+
+ $query = rtrim($query, " or ") . "]";
+ break;
+
+ case "$=":
+ $query .= "[substring(@$attr, string-length(@$attr)-" . (strlen($value) - 1) . ")=\"$value\"]";
+ break;
+
+ case "^=":
+ $query .= "[starts-with(@$attr,\"$value\")]";
+ break;
+
+ case "*=":
+ $query .= "[contains(@$attr,\"$value\")]";
+ break;
+ }
+
+ break;
+ }
+ }
+ $i++;
+
+// case ":":
+// // Pseudo selectors: ignore for now. Partially handled directly
+// // below.
+
+// // Skip until the next special character, leaving the token as-is
+// while ( $i < $len ) {
+// if ( in_array($selector[$i], $delimiters) )
+// break;
+// $i++;
+// }
+// break;
+
+// default:
+// // Add the character to the token
+// $tok .= $selector[$i++];
+// break;
+// }
+
+// }
+
+
+ // Trim the trailing '/' from the query
+ if (mb_strlen($query) > 2) {
+ $query = rtrim($query, "/");
+ }
+
+ return ['query' => $query, 'pseudo_elements' => $pseudo_elements];
+ }
+
+ /**
+ * https://github.com/tenderlove/nokogiri/blob/master/lib/nokogiri/css/xpath_visitor.rb
+ *
+ * @param string $expr
+ * @param bool $last
+ *
+ * @return string
+ */
+ protected function _selector_an_plus_b(string $expr, bool $last = false): string
+ {
+ $expr = preg_replace("/\s/", "", $expr);
+ if (!preg_match("/^(?P<a>-?[0-9]*)?n(?P<b>[-+]?[0-9]+)?$/", $expr, $matches)) {
+ return "false()";
+ }
+
+ $a = (isset($matches["a"]) && $matches["a"] !== "") ? ($matches["a"] !== "-" ? intval($matches["a"]) : -1) : 1;
+ $b = (isset($matches["b"]) && $matches["b"] !== "") ? intval($matches["b"]) : 0;
+
+ $position = $last ? "(last()-position()+1)" : "position()";
+
+ if ($b == 0) {
+ return "($position mod $a) = 0";
+ } else {
+ $compare = ($a < 0) ? "<=" : ">=";
+ $b2 = -$b;
+ if ($b2 >= 0) {
+ $b2 = "+$b2";
+ }
+ return "($position $compare $b) and ((($position $b2) mod " . abs($a) . ") = 0)";
+ }
+ }
+
+ /**
+ * applies all current styles to a particular document tree
+ *
+ * apply_styles() applies all currently loaded styles to the provided
+ * {@link FrameTree}. Aside from parsing CSS, this is the main purpose
+ * of this class.
+ *
+ * @param \Dompdf\Frame\FrameTree $tree
+ */
+ function apply_styles(FrameTree $tree)
+ {
+ // Use XPath to select nodes. This would be easier if we could attach
+ // Frame objects directly to DOMNodes using the setUserData() method, but
+ // we can't do that just yet. Instead, we set a _node attribute_ in
+ // Frame->set_id() and use that as a handle on the Frame object via
+ // FrameTree::$_registry.
+
+ // We create a scratch array of styles indexed by frame id. Once all
+ // styles have been assigned, we order the cached styles by specificity
+ // and create a final style object to assign to the frame.
+
+ // FIXME: this is not particularly robust...
+
+ $styles = [];
+ $xp = new DOMXPath($tree->get_dom());
+ $DEBUGCSS = $this->_dompdf->getOptions()->getDebugCss();
+
+ // Add generated content
+ foreach ($this->_styles as $selector => $selector_styles) {
+ /** @var Style $style */
+ foreach ($selector_styles as $style) {
+ if (strpos($selector, ":before") === false && strpos($selector, ":after") === false) {
+ continue;
+ }
+
+ $query = $this->_css_selector_to_xpath($selector, true);
+
+ // Retrieve the nodes, limit to body for generated content
+ //TODO: If we use a context node can we remove the leading dot?
+ $nodes = @$xp->query('.' . $query["query"]);
+ if ($nodes === false) {
+ Helpers::record_warnings(E_USER_WARNING, "The CSS selector '$selector' is not valid", __FILE__, __LINE__);
+ continue;
+ }
+
+ /** @var \DOMElement $node */
+ foreach ($nodes as $node) {
+ // Only DOMElements get styles
+ if ($node->nodeType != XML_ELEMENT_NODE) {
+ continue;
+ }
+
+ foreach (array_keys($query["pseudo_elements"], true, true) as $pos) {
+ // Do not add a new pseudo element if another one already matched
+ if ($node->hasAttribute("dompdf_{$pos}_frame_id")) {
+ continue;
+ }
+
+ $content = $style->get_specified("content");
+
+ // Do not create non-displayed before/after pseudo elements
+ // https://www.w3.org/TR/CSS21/generate.html#content
+ // https://www.w3.org/TR/CSS21/generate.html#undisplayed-counters
+ if ($content === "normal" || $content === "none") {
+ continue;
+ }
+
+ if (($src = $this->resolve_url($content)) !== "none") {
+ $new_node = $node->ownerDocument->createElement("img_generated");
+ $new_node->setAttribute("src", $src);
+ } else {
+ $new_node = $node->ownerDocument->createElement("dompdf_generated");
+ }
+
+ $new_node->setAttribute($pos, $pos);
+ $new_frame_id = $tree->insert_node($node, $new_node, $pos);
+ $node->setAttribute("dompdf_{$pos}_frame_id", $new_frame_id);
+ }
+ }
+ }
+ }
+
+ // Apply all styles in stylesheet
+ foreach ($this->_styles as $selector => $selector_styles) {
+ /** @var Style $style */
+ foreach ($selector_styles as $style) {
+ $query = $this->_css_selector_to_xpath($selector);
+
+ // Retrieve the nodes
+ $nodes = @$xp->query($query["query"]);
+ if ($nodes === false) {
+ Helpers::record_warnings(E_USER_WARNING, "The CSS selector '$selector' is not valid", __FILE__, __LINE__);
+ continue;
+ }
+
+ $spec = $this->_specificity($selector, $style->get_origin());
+
+ foreach ($nodes as $node) {
+ // Retrieve the node id
+ // Only DOMElements get styles
+ if ($node->nodeType != XML_ELEMENT_NODE) {
+ continue;
+ }
+
+ $id = $node->getAttribute("frame_id");
+
+ // Assign the current style to the scratch array
+ $styles[$id][$spec][] = $style;
+ }
+ }
+ }
+
+ // Set the page width, height, and orientation based on the canvas paper size
+ $canvas = $this->_dompdf->getCanvas();
+ $paper_width = $canvas->get_width();
+ $paper_height = $canvas->get_height();
+ $paper_orientation = ($paper_width > $paper_height ? "landscape" : "portrait");
+
+ if ($this->_page_styles["base"] && is_array($this->_page_styles["base"]->size)) {
+ $paper_width = $this->_page_styles['base']->size[0];
+ $paper_height = $this->_page_styles['base']->size[1];
+ $paper_orientation = ($paper_width > $paper_height ? "landscape" : "portrait");
+ }
+
+ // Now create the styles and assign them to the appropriate frames. (We
+ // iterate over the tree using an implicit FrameTree iterator.)
+ $root_flg = false;
+ foreach ($tree as $frame) {
+ // Helpers::pre_r($frame->get_node()->nodeName . ":");
+ if (!$root_flg && $this->_page_styles["base"]) {
+ $style = $this->_page_styles["base"];
+ } else {
+ $style = $this->create_style();
+ }
+
+ // Find nearest DOMElement parent
+ $p = $frame;
+ while ($p = $p->get_parent()) {
+ if ($p->get_node()->nodeType === XML_ELEMENT_NODE) {
+ break;
+ }
+ }
+
+ // Styles can only be applied directly to DOMElements; anonymous
+ // frames inherit from their parent
+ if ($frame->get_node()->nodeType !== XML_ELEMENT_NODE) {
+ $style->inherit($p ? $p->get_style() : null);
+ $frame->set_style($style);
+ continue;
+ }
+
+ $id = $frame->get_id();
+
+ // Handle HTML 4.0 attributes
+ AttributeTranslator::translate_attributes($frame);
+ if (($str = $frame->get_node()->getAttribute(AttributeTranslator::$_style_attr)) !== "") {
+ $styles[$id][self::SPEC_NON_CSS][] = $this->_parse_properties($str);
+ }
+
+ // Locate any additional style attributes
+ if (($str = $frame->get_node()->getAttribute("style")) !== "") {
+ // Destroy CSS comments
+ $str = preg_replace("'/\*.*?\*/'si", "", $str);
+
+ $spec = $this->_specificity("!attr", self::ORIG_AUTHOR);
+ $styles[$id][$spec][] = $this->_parse_properties($str);
+ }
+
+ // Grab the applicable styles
+ if (isset($styles[$id])) {
+
+ /** @var array[][] $applied_styles */
+ $applied_styles = $styles[$id];
+
+ // Sort by specificity
+ ksort($applied_styles);
+
+ if ($DEBUGCSS) {
+ $debug_nodename = $frame->get_node()->nodeName;
+ print "<pre>\n$debug_nodename [\n";
+ foreach ($applied_styles as $spec => $arr) {
+ printf(" specificity 0x%08x\n", $spec);
+ /** @var Style $s */
+ foreach ($arr as $s) {
+ print " [\n";
+ $s->debug_print();
+ print " ]\n";
+ }
+ }
+ }
+
+ // Merge the new styles with the inherited styles
+ $acceptedmedia = self::$ACCEPTED_GENERIC_MEDIA_TYPES;
+ $acceptedmedia[] = $this->_dompdf->getOptions()->getDefaultMediaType();
+ foreach ($applied_styles as $arr) {
+ /** @var Style $s */
+ foreach ($arr as $s) {
+ $media_queries = $s->get_media_queries();
+ foreach ($media_queries as $media_query) {
+ list($media_query_feature, $media_query_value) = $media_query;
+ // if any of the Style's media queries fail then do not apply the style
+ //TODO: When the media query logic is fully developed we should not apply the Style when any of the media queries fail or are bad, per https://www.w3.org/TR/css3-mediaqueries/#error-handling
+ if (in_array($media_query_feature, self::$VALID_MEDIA_TYPES)) {
+ if ((strlen($media_query_feature) === 0 && !in_array($media_query, $acceptedmedia)) || (in_array($media_query, $acceptedmedia) && $media_query_value == "not")) {
+ continue (3);
+ }
+ } else {
+ switch ($media_query_feature) {
+ case "height":
+ if ($paper_height !== (float)$style->length_in_pt($media_query_value)) {
+ continue (3);
+ }
+ break;
+ case "min-height":
+ if ($paper_height < (float)$style->length_in_pt($media_query_value)) {
+ continue (3);
+ }
+ break;
+ case "max-height":
+ if ($paper_height > (float)$style->length_in_pt($media_query_value)) {
+ continue (3);
+ }
+ break;
+ case "width":
+ if ($paper_width !== (float)$style->length_in_pt($media_query_value)) {
+ continue (3);
+ }
+ break;
+ case "min-width":
+ //if (min($paper_width, $media_query_width) === $paper_width) {
+ if ($paper_width < (float)$style->length_in_pt($media_query_value)) {
+ continue (3);
+ }
+ break;
+ case "max-width":
+ //if (max($paper_width, $media_query_width) === $paper_width) {
+ if ($paper_width > (float)$style->length_in_pt($media_query_value)) {
+ continue (3);
+ }
+ break;
+ case "orientation":
+ if ($paper_orientation !== $media_query_value) {
+ continue (3);
+ }
+ break;
+ default:
+ Helpers::record_warnings(E_USER_WARNING, "Unknown media query: $media_query_feature", __FILE__, __LINE__);
+ break;
+ }
+ }
+ }
+
+ $style->merge($s);
+ }
+ }
+ }
+
+ // Handle inheritance
+ if ($p && $DEBUGCSS) {
+ print " inherit [\n";
+ $p->get_style()->debug_print();
+ print " ]\n";
+ }
+
+ $style->inherit($p ? $p->get_style() : null);
+
+ if ($DEBUGCSS) {
+ print " DomElementStyle [\n";
+ $style->debug_print();
+ print " ]\n";
+ print "]\n</pre>";
+ }
+
+ $style->clear_important();
+ $frame->set_style($style);
+
+ if (!$root_flg && $this->_page_styles["base"]) {
+ $root_flg = true;
+
+ // set the page width, height, and orientation based on the parsed page style
+ if ($style->size !== "auto") {
+ list($paper_width, $paper_height) = $style->size;
+ }
+ $paper_width = $paper_width - (float)$style->length_in_pt($style->margin_left) - (float)$style->length_in_pt($style->margin_right);
+ $paper_height = $paper_height - (float)$style->length_in_pt($style->margin_top) - (float)$style->length_in_pt($style->margin_bottom);
+ $paper_orientation = ($paper_width > $paper_height ? "landscape" : "portrait");
+ }
+ }
+
+ // We're done! Clean out the registry of all styles since we
+ // won't be needing this later.
+ foreach (array_keys($this->_styles) as $key) {
+ $this->_styles[$key] = null;
+ unset($this->_styles[$key]);
+ }
+ }
+
+ /**
+ * parse a CSS string using a regex parser
+ * Called by {@link Stylesheet::parse_css()}
+ *
+ * @param string $str
+ *
+ * @throws Exception
+ */
+ private function _parse_css($str)
+ {
+ $str = trim($str);
+
+ // Destroy comments and remove HTML comments
+ $css = preg_replace([
+ "'/\*.*?\*/'si",
+ "/^<!--/",
+ "/-->$/"
+ ], "", $str);
+
+ // FIXME: handle '{' within strings, e.g. [attr="string {}"]
+
+ // Something more legible:
+ $re =
+ "/\s* # Skip leading whitespace \n" .
+ "( @([^\s{]+)\s*([^{;]*) (?:;|({)) )? # Match @rules followed by ';' or '{' \n" .
+ "(?(1) # Only parse sub-sections if we're in an @rule... \n" .
+ " (?(4) # ...and if there was a leading '{' \n" .
+ " \s*( (?:(?>[^{}]+) ({)? # Parse rulesets and individual @page rules \n" .
+ " (?(6) (?>[^}]*) }) \s*)+? \n" .
+ " ) \n" .
+ " }) # Balancing '}' \n" .
+ "| # Branch to match regular rules (not preceded by '@') \n" .
+ "([^{]*{[^}]*})) # Parse normal rulesets \n" .
+ "/xs";
+
+ if (preg_match_all($re, $css, $matches, PREG_SET_ORDER) === false) {
+ // An error occurred
+ throw new Exception("Error parsing css file: preg_match_all() failed.");
+ }
+
+ // After matching, the array indices are set as follows:
+ //
+ // [0] => complete text of match
+ // [1] => contains '@import ...;' or '@media {' if applicable
+ // [2] => text following @ for cases where [1] is set
+ // [3] => media types or full text following '@import ...;'
+ // [4] => '{', if present
+ // [5] => rulesets within media rules
+ // [6] => '{', within media rules
+ // [7] => individual rules, outside of media rules
+ //
+
+ $media_query_regex = "/(?:((only|not)?\s*(" . implode("|", self::$VALID_MEDIA_TYPES) . "))|(\s*\(\s*((?:(min|max)-)?([\w\-]+))\s*(?:\:\s*(.*?)\s*)?\)))/isx";
+
+ //Helpers::pre_r($matches);
+ foreach ($matches as $match) {
+ $match[2] = trim($match[2]);
+
+ if ($match[2] !== "") {
+ // Handle @rules
+ switch ($match[2]) {
+
+ case "import":
+ $this->_parse_import($match[3]);
+ break;
+
+ case "media":
+ $acceptedmedia = self::$ACCEPTED_GENERIC_MEDIA_TYPES;
+ $acceptedmedia[] = $this->_dompdf->getOptions()->getDefaultMediaType();
+
+ $media_queries = preg_split("/\s*,\s*/", mb_strtolower(trim($match[3])));
+ foreach ($media_queries as $media_query) {
+ if (in_array($media_query, $acceptedmedia)) {
+ //if we have a media type match go ahead and parse the stylesheet
+ $this->_parse_sections($match[5]);
+ break;
+ } elseif (!in_array($media_query, self::$VALID_MEDIA_TYPES)) {
+ // otherwise conditionally parse the stylesheet assuming there are parseable media queries
+ if (preg_match_all($media_query_regex, $media_query, $media_query_matches, PREG_SET_ORDER) !== false) {
+ $mq = [];
+ foreach ($media_query_matches as $media_query_match) {
+ if (empty($media_query_match[1]) === false) {
+ $media_query_feature = strtolower($media_query_match[3]);
+ $media_query_value = strtolower($media_query_match[2]);
+ $mq[] = [$media_query_feature, $media_query_value];
+ } elseif (empty($media_query_match[4]) === false) {
+ $media_query_feature = strtolower($media_query_match[5]);
+ $media_query_value = (array_key_exists(8, $media_query_match) ? strtolower($media_query_match[8]) : null);
+ $mq[] = [$media_query_feature, $media_query_value];
+ }
+ }
+ $this->_parse_sections($match[5], $mq);
+ break;
+ }
+ }
+ }
+ break;
+
+ case "page":
+ //This handles @page to be applied to page oriented media
+ //Note: This has a reduced syntax:
+ //@page { margin:1cm; color:blue; }
+ //Not a sequence of styles like a full.css, but only the properties
+ //of a single style, which is applied to the very first "root" frame before
+ //processing other styles of the frame.
+ //Working properties:
+ // margin (for margin around edge of paper)
+ // font-family (default font of pages)
+ // color (default text color of pages)
+ //Non working properties:
+ // border
+ // padding
+ // background-color
+ //Todo:Reason is unknown
+ //Other properties (like further font or border attributes) not tested.
+ //If a border or background color around each paper sheet is desired,
+ //assign it to the <body> tag, possibly only for the css of the correct media type.
+
+ // If the page has a name, skip the style.
+ $page_selector = trim($match[3]);
+
+ $key = null;
+ switch ($page_selector) {
+ case "":
+ $key = "base";
+ break;
+
+ case ":left":
+ case ":right":
+ case ":odd":
+ case ":even":
+ /** @noinspection PhpMissingBreakStatementInspection */
+ case ":first":
+ $key = $page_selector;
+ break;
+
+ default:
+ break 2;
+ }
+
+ // Store the style for later...
+ if (empty($this->_page_styles[$key])) {
+ $this->_page_styles[$key] = $this->_parse_properties($match[5]);
+ } else {
+ $this->_page_styles[$key]->merge($this->_parse_properties($match[5]));
+ }
+ break;
+
+ case "font-face":
+ $this->_parse_font_face($match[5]);
+ break;
+
+ default:
+ // ignore everything else
+ break;
+ }
+
+ continue;
+ }
+
+ if ($match[7] !== "") {
+ $this->_parse_sections($match[7]);
+ }
+ }
+ }
+
+ /**
+ * Resolve the given `url()` declaration to an absolute URL.
+ *
+ * @param string|null $val The declaration to resolve in the context of the stylesheet.
+ * @return string The resolved URL, or `none`, if the value is `none`,
+ * invalid, or points to a non-existent local file.
+ */
+ public function resolve_url($val): string
+ {
+ $DEBUGCSS = $this->_dompdf->getOptions()->getDebugCss();
+ $parsed_url = "none";
+
+ if (empty($val) || $val === "none") {
+ $path = "none";
+ } elseif (mb_strpos($val, "url") === false) {
+ $path = "none"; //Don't resolve no image -> otherwise would prefix path and no longer recognize as none
+ } else {
+ $val = preg_replace("/url\(\s*['\"]?([^'\")]+)['\"]?\s*\)/", "\\1", trim($val));
+
+ // Resolve the url now in the context of the current stylesheet
+ $path = Helpers::build_url($this->_protocol,
+ $this->_base_host,
+ $this->_base_path,
+ $val);
+ if ($path === null) {
+ $path = "none";
+ }
+ }
+ if ($DEBUGCSS) {
+ $parsed_url = Helpers::explode_url($path);
+ print "<pre>[_image\n";
+ print_r($parsed_url);
+ print $this->_protocol . "\n" . $this->_base_path . "\n" . $path . "\n";
+ print "_image]</pre>";
+ }
+ return $path;
+ }
+
+ /**
+ * parse @import{} sections
+ *
+ * @param string $url the url of the imported CSS file
+ */
+ private function _parse_import($url)
+ {
+ $arr = preg_split("/[\s\n,]/", $url, -1, PREG_SPLIT_NO_EMPTY);
+ $url = array_shift($arr);
+ $accept = false;
+
+ if (count($arr) > 0) {
+ $acceptedmedia = self::$ACCEPTED_GENERIC_MEDIA_TYPES;
+ $acceptedmedia[] = $this->_dompdf->getOptions()->getDefaultMediaType();
+
+ // @import url media_type [media_type...]
+ foreach ($arr as $type) {
+ if (in_array(mb_strtolower(trim($type)), $acceptedmedia)) {
+ $accept = true;
+ break;
+ }
+ }
+
+ } else {
+ // unconditional import
+ $accept = true;
+ }
+
+ if ($accept) {
+ // Store our current base url properties in case the new url is elsewhere
+ $protocol = $this->_protocol;
+ $host = $this->_base_host;
+ $path = $this->_base_path;
+
+ // $url = str_replace(array('"',"url", "(", ")"), "", $url);
+ // If the protocol is php, assume that we will import using file://
+ // $url = Helpers::build_url($protocol === "php://" ? "file://" : $protocol, $host, $path, $url);
+ // Above does not work for subfolders and absolute urls.
+ // Todo: As above, do we need to replace php or file to an empty protocol for local files?
+
+ if (($url = $this->resolve_url($url)) !== "none") {
+ $this->load_css_file($url);
+ }
+
+ // Restore the current base url
+ $this->_protocol = $protocol;
+ $this->_base_host = $host;
+ $this->_base_path = $path;
+ }
+ }
+
+ /**
+ * parse @font-face{} sections
+ * http://www.w3.org/TR/css3-fonts/#the-font-face-rule
+ *
+ * @param string $str CSS @font-face rules
+ */
+ private function _parse_font_face($str)
+ {
+ $descriptors = $this->_parse_properties($str);
+
+ preg_match_all("/(url|local)\s*\(\s*[\"\']?([^\"\'\)]+)[\"\']?\s*\)\s*(format\s*\(\s*[\"\']?([^\"\'\)]+)[\"\']?\s*\))?/i", $descriptors->src, $src);
+
+ $valid_sources = [];
+ foreach ($src[0] as $i => $value) {
+ $source = [
+ "local" => strtolower($src[1][$i]) === "local",
+ "uri" => $src[2][$i],
+ "format" => strtolower($src[4][$i]),
+ "path" => Helpers::build_url($this->_protocol, $this->_base_host, $this->_base_path, $src[2][$i]),
+ ];
+
+ if (!$source["local"] && in_array($source["format"], ["", "truetype"]) && $source["path"] !== null) {
+ $valid_sources[] = $source;
+ }
+ }
+
+ // No valid sources
+ if (empty($valid_sources)) {
+ return;
+ }
+
+ $style = [
+ "family" => $descriptors->get_font_family_raw(),
+ "weight" => $descriptors->font_weight,
+ "style" => $descriptors->font_style,
+ ];
+
+ $this->getFontMetrics()->registerFont($style, $valid_sources[0]["path"], $this->_dompdf->getHttpContext());
+ }
+
+ /**
+ * parse regular CSS blocks
+ *
+ * _parse_properties() creates a new Style object based on the provided
+ * CSS rules.
+ *
+ * @param string $str CSS rules
+ * @return Style
+ */
+ private function _parse_properties($str)
+ {
+ $properties = preg_split("/;(?=(?:[^\(]*\([^\)]*\))*(?![^\)]*\)))/", $str);
+ $DEBUGCSS = $this->_dompdf->getOptions()->getDebugCss();
+
+ if ($DEBUGCSS) {
+ print '[_parse_properties';
+ }
+
+ // Create the style
+ $style = new Style($this, Stylesheet::ORIG_AUTHOR);
+
+ foreach ($properties as $prop) {
+ // If the $prop contains an url, the regex may be wrong
+ // @todo: fix the regex so that it works every time
+ /*if (strpos($prop, "url(") === false) {
+ if (preg_match("/([a-z-]+)\s*:\s*[^:]+$/i", $prop, $m))
+ $prop = $m[0];
+ }*/
+
+ //A css property can have " ! important" appended (whitespace optional)
+ //strip this off to decode core of the property correctly.
+
+ /* Instead of short code, prefer the typical case with fast code
+ $important = preg_match("/(.*?)!\s*important/",$prop,$match);
+ if ( $important ) {
+ $prop = $match[1];
+ }
+ $prop = trim($prop);
+ */
+ if ($DEBUGCSS) print '(';
+
+ $important = false;
+ $prop = trim($prop);
+
+ if (substr($prop, -9) === 'important') {
+ $prop_tmp = rtrim(substr($prop, 0, -9));
+
+ if (substr($prop_tmp, -1) === '!') {
+ $prop = rtrim(substr($prop_tmp, 0, -1));
+ $important = true;
+ }
+ }
+
+ if ($prop === "") {
+ if ($DEBUGCSS) print 'empty)';
+ continue;
+ }
+
+ $i = mb_strpos($prop, ":");
+ if ($i === false) {
+ if ($DEBUGCSS) print 'novalue' . $prop . ')';
+ continue;
+ }
+
+ $prop_name = rtrim(mb_strtolower(mb_substr($prop, 0, $i)));
+ $value = ltrim(mb_substr($prop, $i + 1));
+
+ if ($DEBUGCSS) print $prop_name . ':=' . $value . ($important ? '!IMPORTANT' : '') . ')';
+
+ $style->set_prop($prop_name, $value, $important, false);
+ }
+ if ($DEBUGCSS) print '_parse_properties]';
+
+ return $style;
+ }
+
+ /**
+ * parse selector + rulesets
+ *
+ * @param string $str CSS selectors and rulesets
+ * @param array $media_queries
+ */
+ private function _parse_sections($str, $media_queries = [])
+ {
+ // Pre-process selectors: collapse all whitespace and strip whitespace
+ // around '>', '.', ':', '+', '~', '#'
+ $patterns = ["/\s+/", "/\s+([>.:+~#])\s+/"];
+ $replacements = [" ", "\\1"];
+ $DEBUGCSS = $this->_dompdf->getOptions()->getDebugCss();
+
+ $sections = explode("}", $str);
+ if ($DEBUGCSS) print '[_parse_sections';
+ foreach ($sections as $sect) {
+ $i = mb_strpos($sect, "{");
+ if ($i === false) { continue; }
+
+ if ($DEBUGCSS) print '[section';
+
+ $selector_str = preg_replace($patterns, $replacements, mb_substr($sect, 0, $i));
+ $selectors = preg_split("/,(?![^\(]*\))/", $selector_str, 0, PREG_SPLIT_NO_EMPTY);
+ $style = $this->_parse_properties(trim(mb_substr($sect, $i + 1)));
+
+ // Assign it to the selected elements
+ foreach ($selectors as $selector) {
+ $selector = trim($selector);
+
+ if ($selector == "") {
+ if ($DEBUGCSS) print '#empty#';
+ continue;
+ }
+ if ($DEBUGCSS) print '#' . $selector . '#';
+ //if ($DEBUGCSS) { if (strpos($selector,'p') !== false) print '!!!p!!!#'; }
+
+ //FIXME: tag the selector with a hash of the media query to separate it from non-conditional styles (?), xpath comments are probably not what we want to do here
+ if (count($media_queries) > 0) {
+ $style->set_media_queries($media_queries);
+ }
+ $this->add_style($selector, $style);
+ }
+
+ if ($DEBUGCSS) {
+ print 'section]';
+ }
+ }
+
+ if ($DEBUGCSS) {
+ print "_parse_sections]\n";
+ }
+ }
+
+ /**
+ * @return string
+ */
+ public function getDefaultStylesheet()
+ {
+ $options = $this->_dompdf->getOptions();
+ $rootDir = realpath($options->getRootDir());
+ return Helpers::build_url("file://", "", $rootDir, $rootDir . self::DEFAULT_STYLESHEET);
+ }
+
+ /**
+ * @param FontMetrics $fontMetrics
+ * @return $this
+ */
+ public function setFontMetrics(FontMetrics $fontMetrics)
+ {
+ $this->fontMetrics = $fontMetrics;
+ return $this;
+ }
+
+ /**
+ * @return FontMetrics
+ */
+ public function getFontMetrics()
+ {
+ return $this->fontMetrics;
+ }
+
+ /**
+ * dumps the entire stylesheet as a string
+ *
+ * Generates a string of each selector and associated style in the
+ * Stylesheet. Useful for debugging.
+ *
+ * @return string
+ */
+ function __toString()
+ {
+ $str = "";
+ foreach ($this->_styles as $selector => $selector_styles) {
+ /** @var Style $style */
+ foreach ($selector_styles as $style) {
+ $str .= "$selector => " . $style->__toString() . "\n";
+ }
+ }
+
+ return $str;
+ }
+}
diff --git a/library/vendor/dompdf/vendor/dompdf/dompdf/src/Dompdf.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Dompdf.php
new file mode 100644
index 0000000..6feec59
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Dompdf.php
@@ -0,0 +1,1470 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf;
+
+use DOMDocument;
+use DOMNode;
+use Dompdf\Adapter\CPDF;
+use DOMXPath;
+use Dompdf\Frame\Factory;
+use Dompdf\Frame\FrameTree;
+use Dompdf\Image\Cache;
+use Dompdf\Css\Stylesheet;
+use Dompdf\Helpers;
+use Masterminds\HTML5;
+
+/**
+ * Dompdf - PHP5 HTML to PDF renderer
+ *
+ * Dompdf loads HTML and does its best to render it as a PDF. It gets its
+ * name from the new DomDocument PHP5 extension. Source HTML is first
+ * parsed by a DomDocument object. Dompdf takes the resulting DOM tree and
+ * attaches a {@link Frame} object to each node. {@link Frame} objects store
+ * positioning and layout information and each has a reference to a {@link
+ * Style} object.
+ *
+ * Style information is loaded and parsed (see {@link Stylesheet}) and is
+ * applied to the frames in the tree by using XPath. CSS selectors are
+ * converted into XPath queries, and the computed {@link Style} objects are
+ * applied to the {@link Frame}s.
+ *
+ * {@link Frame}s are then decorated (in the design pattern sense of the
+ * word) based on their CSS display property ({@link
+ * http://www.w3.org/TR/CSS21/visuren.html#propdef-display}).
+ * Frame_Decorators augment the basic {@link Frame} class by adding
+ * additional properties and methods specific to the particular type of
+ * {@link Frame}. For example, in the CSS layout model, block frames
+ * (display: block;) contain line boxes that are usually filled with text or
+ * other inline frames. The Block therefore adds a $lines
+ * property as well as methods to add {@link Frame}s to lines and to add
+ * additional lines. {@link Frame}s also are attached to specific
+ * AbstractPositioner and {@link AbstractFrameReflower} objects that contain the
+ * positioining and layout algorithm for a specific type of frame,
+ * respectively. This is an application of the Strategy pattern.
+ *
+ * Layout, or reflow, proceeds recursively (post-order) starting at the root
+ * of the document. Space constraints (containing block width & height) are
+ * pushed down, and resolved positions and sizes bubble up. Thus, every
+ * {@link Frame} in the document tree is traversed once (except for tables
+ * which use a two-pass layout algorithm). If you are interested in the
+ * details, see the reflow() method of the Reflower classes.
+ *
+ * Rendering is relatively straightforward once layout is complete. {@link
+ * Frame}s are rendered using an adapted {@link Cpdf} class, originally
+ * written by Wayne Munro, http://www.ros.co.nz/pdf/. (Some performance
+ * related changes have been made to the original {@link Cpdf} class, and
+ * the {@link Dompdf\Adapter\CPDF} class provides a simple, stateless interface to
+ * PDF generation.) PDFLib support has now also been added, via the {@link
+ * Dompdf\Adapter\PDFLib}.
+ *
+ *
+ * @package dompdf
+ */
+class Dompdf
+{
+ /**
+ * Version string for dompdf
+ *
+ * @var string
+ */
+ private $version = 'dompdf';
+
+ /**
+ * DomDocument representing the HTML document
+ *
+ * @var DOMDocument
+ */
+ private $dom;
+
+ /**
+ * FrameTree derived from the DOM tree
+ *
+ * @var FrameTree
+ */
+ private $tree;
+
+ /**
+ * Stylesheet for the document
+ *
+ * @var Stylesheet
+ */
+ private $css;
+
+ /**
+ * Actual PDF renderer
+ *
+ * @var Canvas
+ */
+ private $canvas;
+
+ /**
+ * Desired paper size ('letter', 'legal', 'A4', etc.)
+ *
+ * @var string|array
+ */
+ private $paperSize;
+
+ /**
+ * Paper orientation ('portrait' or 'landscape')
+ *
+ * @var string
+ */
+ private $paperOrientation = "portrait";
+
+ /**
+ * Callbacks on new page and new element
+ *
+ * @var array
+ */
+ private $callbacks = [];
+
+ /**
+ * Experimental caching capability
+ *
+ * @var string
+ */
+ private $cacheId;
+
+ /**
+ * Base hostname
+ *
+ * Used for relative paths/urls
+ * @var string
+ */
+ private $baseHost = "";
+
+ /**
+ * Absolute base path
+ *
+ * Used for relative paths/urls
+ * @var string
+ */
+ private $basePath = "";
+
+ /**
+ * Protocol used to request file (file://, http://, etc)
+ *
+ * @var string
+ */
+ private $protocol = "";
+
+ /**
+ * The system's locale
+ *
+ * @var string
+ */
+ private $systemLocale = null;
+
+ /**
+ * The system's mbstring internal encoding
+ *
+ * @var string
+ */
+ private $mbstringEncoding = null;
+
+ /**
+ * The system's PCRE JIT configuration
+ *
+ * @var string
+ */
+ private $pcreJit = null;
+
+ /**
+ * The default view of the PDF in the viewer
+ *
+ * @var string
+ */
+ private $defaultView = "Fit";
+
+ /**
+ * The default view options of the PDF in the viewer
+ *
+ * @var array
+ */
+ private $defaultViewOptions = [];
+
+ /**
+ * Tells whether the DOM document is in quirksmode (experimental)
+ *
+ * @var bool
+ */
+ private $quirksmode = false;
+
+ /**
+ * Local file extension whitelist
+ *
+ * File extensions supported by dompdf for local files.
+ *
+ * @var array
+ */
+ private $allowedLocalFileExtensions = ["htm", "html"];
+
+ /**
+ * @var array
+ */
+ private $messages = [];
+
+ /**
+ * @var Options
+ */
+ private $options;
+
+ /**
+ * @var FontMetrics
+ */
+ private $fontMetrics;
+
+ /**
+ * The list of built-in fonts
+ *
+ * @var array
+ * @deprecated
+ */
+ public static $native_fonts = [
+ "courier", "courier-bold", "courier-oblique", "courier-boldoblique",
+ "helvetica", "helvetica-bold", "helvetica-oblique", "helvetica-boldoblique",
+ "times-roman", "times-bold", "times-italic", "times-bolditalic",
+ "symbol", "zapfdinbats"
+ ];
+
+ /**
+ * The list of built-in fonts
+ *
+ * @var array
+ */
+ public static $nativeFonts = [
+ "courier", "courier-bold", "courier-oblique", "courier-boldoblique",
+ "helvetica", "helvetica-bold", "helvetica-oblique", "helvetica-boldoblique",
+ "times-roman", "times-bold", "times-italic", "times-bolditalic",
+ "symbol", "zapfdinbats"
+ ];
+
+ /**
+ * Class constructor
+ *
+ * @param Options|array|null $options
+ */
+ public function __construct($options = null)
+ {
+ if (isset($options) && $options instanceof Options) {
+ $this->setOptions($options);
+ } elseif (is_array($options)) {
+ $this->setOptions(new Options($options));
+ } else {
+ $this->setOptions(new Options());
+ }
+
+ $versionFile = realpath(__DIR__ . '/../VERSION');
+ if (($version = file_get_contents($versionFile)) !== false) {
+ $version = trim($version);
+ if ($version !== '$Format:<%h>$') {
+ $this->version = sprintf('dompdf %s', $version);
+ }
+ }
+
+ $this->setPhpConfig();
+
+ $this->paperSize = $this->options->getDefaultPaperSize();
+ $this->paperOrientation = $this->options->getDefaultPaperOrientation();
+
+ $this->canvas = CanvasFactory::get_instance($this, $this->paperSize, $this->paperOrientation);
+ $this->fontMetrics = new FontMetrics($this->canvas, $this->options);
+ $this->css = new Stylesheet($this);
+
+ $this->restorePhpConfig();
+ }
+
+ /**
+ * Save the system's existing locale, PCRE JIT, and MBString encoding
+ * configuration and configure the system for Dompdf processing
+ */
+ private function setPhpConfig()
+ {
+ if (sprintf('%.1f', 1.0) !== '1.0') {
+ $this->systemLocale = setlocale(LC_NUMERIC, "0");
+ setlocale(LC_NUMERIC, "C");
+ }
+
+ $this->pcreJit = @ini_get('pcre.jit');
+ @ini_set('pcre.jit', '0');
+
+ $this->mbstringEncoding = mb_internal_encoding();
+ mb_internal_encoding('UTF-8');
+ }
+
+ /**
+ * Restore the system's locale configuration
+ */
+ private function restorePhpConfig()
+ {
+ if ($this->systemLocale !== null) {
+ setlocale(LC_NUMERIC, $this->systemLocale);
+ $this->systemLocale = null;
+ }
+
+ if ($this->pcreJit !== null) {
+ @ini_set('pcre.jit', $this->pcreJit);
+ $this->pcreJit = null;
+ }
+
+ if ($this->mbstringEncoding !== null) {
+ mb_internal_encoding($this->mbstringEncoding);
+ $this->mbstringEncoding = null;
+ }
+ }
+
+ /**
+ * @param $file
+ * @deprecated
+ */
+ public function load_html_file($file)
+ {
+ $this->loadHtmlFile($file);
+ }
+
+ /**
+ * Loads an HTML file
+ * Parse errors are stored in the global array _dompdf_warnings.
+ *
+ * @param string $file a filename or url to load
+ * @param string $encoding Encoding of $file
+ *
+ * @throws Exception
+ */
+ public function loadHtmlFile($file, $encoding = null)
+ {
+ $this->setPhpConfig();
+
+ if (!$this->protocol && !$this->baseHost && !$this->basePath) {
+ [$this->protocol, $this->baseHost, $this->basePath] = Helpers::explode_url($file);
+ }
+ $protocol = strtolower($this->protocol);
+ $uri = Helpers::build_url($this->protocol, $this->baseHost, $this->basePath, $file);
+
+ $allowed_protocols = $this->options->getAllowedProtocols();
+ if (!array_key_exists($protocol, $allowed_protocols)) {
+ throw new Exception("Permission denied on $file. The communication protocol is not supported.");
+ }
+
+ if ($protocol === "file://") {
+ $ext = strtolower(pathinfo($uri, PATHINFO_EXTENSION));
+ if (!in_array($ext, $this->allowedLocalFileExtensions)) {
+ throw new Exception("Permission denied on $file: The file extension is forbidden.");
+ }
+ }
+
+ foreach ($allowed_protocols[$protocol]["rules"] as $rule) {
+ [$result, $message] = $rule($uri);
+ if (!$result) {
+ throw new Exception("Error loading $file: $message");
+ }
+ }
+
+ [$contents, $http_response_header] = Helpers::getFileContent($uri, $this->options->getHttpContext());
+ if ($contents === null) {
+ throw new Exception("File '$file' not found.");
+ }
+
+ // See http://the-stickman.com/web-development/php/getting-http-response-headers-when-using-file_get_contents/
+ if (isset($http_response_header)) {
+ foreach ($http_response_header as $_header) {
+ if (preg_match("@Content-Type:\s*[\w/]+;\s*?charset=([^\s]+)@i", $_header, $matches)) {
+ $encoding = strtoupper($matches[1]);
+ break;
+ }
+ }
+ }
+
+ $this->restorePhpConfig();
+
+ $this->loadHtml($contents, $encoding);
+ }
+
+ /**
+ * @param string $str
+ * @param string $encoding
+ * @deprecated
+ */
+ public function load_html($str, $encoding = null)
+ {
+ $this->loadHtml($str, $encoding);
+ }
+
+ public function loadDOM($doc, $quirksmode = false) {
+ // Remove #text children nodes in nodes that shouldn't have
+ $tag_names = ["html", "head", "table", "tbody", "thead", "tfoot", "tr"];
+ foreach ($tag_names as $tag_name) {
+ $nodes = $doc->getElementsByTagName($tag_name);
+
+ foreach ($nodes as $node) {
+ self::removeTextNodes($node);
+ }
+ }
+
+ $this->dom = $doc;
+ $this->quirksmode = $quirksmode;
+ $this->tree = new FrameTree($this->dom);
+ }
+
+ /**
+ * Loads an HTML string
+ * Parse errors are stored in the global array _dompdf_warnings.
+ *
+ * @param string $str HTML text to load
+ * @param string $encoding Encoding of $str
+ */
+ public function loadHtml($str, $encoding = null)
+ {
+ $this->setPhpConfig();
+
+ // Determine character encoding when $encoding parameter not used
+ if ($encoding === null) {
+ mb_detect_order('auto');
+ if (($encoding = mb_detect_encoding($str, null, true)) === false) {
+
+ //"auto" is expanded to "ASCII,JIS,UTF-8,EUC-JP,SJIS"
+ $encoding = "auto";
+ }
+ }
+
+ if (in_array(strtoupper($encoding), array('UTF-8','UTF8')) === false) {
+ $str = mb_convert_encoding($str, 'UTF-8', $encoding);
+
+ //Update encoding after converting
+ $encoding = 'UTF-8';
+ }
+
+ $metatags = [
+ '@<meta\s+http-equiv="Content-Type"\s+content="(?:[\w/]+)(?:;\s*?charset=([^\s"]+))?@i',
+ '@<meta\s+content="(?:[\w/]+)(?:;\s*?charset=([^\s"]+))"?\s+http-equiv="Content-Type"@i',
+ '@<meta [^>]*charset\s*=\s*["\']?\s*([^"\' ]+)@i',
+ ];
+ foreach ($metatags as $metatag) {
+ if (preg_match($metatag, $str, $matches)) {
+ if (isset($matches[1]) && in_array($matches[1], mb_list_encodings())) {
+ $document_encoding = $matches[1];
+ break;
+ }
+ }
+ }
+ if (isset($document_encoding) && in_array(strtoupper($document_encoding), ['UTF-8','UTF8']) === false) {
+ $str = preg_replace('/charset=([^\s"]+)/i', 'charset=UTF-8', $str);
+ } elseif (isset($document_encoding) === false && strpos($str, '<head>') !== false) {
+ $str = str_replace('<head>', '<head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">', $str);
+ } elseif (isset($document_encoding) === false) {
+ $str = '<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">' . $str;
+ }
+
+ // remove BOM mark from UTF-8, it's treated as document text by DOMDocument
+ // FIXME: roll this into the encoding detection using UTF-8/16/32 BOM (http://us2.php.net/manual/en/function.mb-detect-encoding.php#91051)?
+ if (substr($str, 0, 3) == chr(0xEF) . chr(0xBB) . chr(0xBF)) {
+ $str = substr($str, 3);
+ }
+
+ // Store parsing warnings as messages
+ set_error_handler([Helpers::class, 'record_warnings']);
+
+ try {
+ // @todo Take the quirksmode into account
+ // https://quirks.spec.whatwg.org/
+ // http://hsivonen.iki.fi/doctype/
+ $quirksmode = false;
+
+ $html5 = new HTML5(['encoding' => $encoding, 'disable_html_ns' => true]);
+ $dom = $html5->loadHTML($str);
+
+ // extra step to normalize the HTML document structure
+ // see Masterminds/html5-php#166
+ $doc = new DOMDocument("1.0", $encoding);
+ $doc->preserveWhiteSpace = true;
+ $doc->loadHTML($html5->saveHTML($dom), LIBXML_NOWARNING | LIBXML_NOERROR);
+
+ $this->loadDOM($doc, $quirksmode);
+ } finally {
+ restore_error_handler();
+ $this->restorePhpConfig();
+ }
+ }
+
+ /**
+ * @param DOMNode $node
+ * @deprecated
+ */
+ public static function remove_text_nodes(DOMNode $node)
+ {
+ self::removeTextNodes($node);
+ }
+
+ /**
+ * @param DOMNode $node
+ */
+ public static function removeTextNodes(DOMNode $node)
+ {
+ $children = [];
+ for ($i = 0; $i < $node->childNodes->length; $i++) {
+ $child = $node->childNodes->item($i);
+ if ($child->nodeName === "#text") {
+ $children[] = $child;
+ }
+ }
+
+ foreach ($children as $child) {
+ $node->removeChild($child);
+ }
+ }
+
+ /**
+ * Builds the {@link FrameTree}, loads any CSS and applies the styles to
+ * the {@link FrameTree}
+ */
+ private function processHtml()
+ {
+ $this->tree->build_tree();
+
+ $this->css->load_css_file($this->css->getDefaultStylesheet(), Stylesheet::ORIG_UA);
+
+ $acceptedmedia = Stylesheet::$ACCEPTED_GENERIC_MEDIA_TYPES;
+ $acceptedmedia[] = $this->options->getDefaultMediaType();
+
+ // <base href="" />
+ /** @var \DOMElement|null */
+ $baseNode = $this->dom->getElementsByTagName("base")->item(0);
+ $baseHref = $baseNode ? $baseNode->getAttribute("href") : "";
+ if ($baseHref !== "") {
+ [$this->protocol, $this->baseHost, $this->basePath] = Helpers::explode_url($baseHref);
+ }
+
+ // 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);
+
+ // Get all the stylesheets so that they are processed in document order
+ $xpath = new DOMXPath($this->dom);
+ $stylesheets = $xpath->query("//*[name() = 'link' or name() = 'style']");
+
+ /** @var \DOMElement $tag */
+ foreach ($stylesheets as $tag) {
+ switch (strtolower($tag->nodeName)) {
+ // load <link rel="STYLESHEET" ... /> tags
+ case "link":
+ if (mb_strtolower(stripos($tag->getAttribute("rel"), "stylesheet") !== false) || // may be "appendix stylesheet"
+ mb_strtolower($tag->getAttribute("type")) === "text/css"
+ ) {
+ //Check if the css file is for an accepted media type
+ //media not given then always valid
+ $formedialist = preg_split("/[\s\n,]/", $tag->getAttribute("media"), -1, PREG_SPLIT_NO_EMPTY);
+ if (count($formedialist) > 0) {
+ $accept = false;
+ foreach ($formedialist as $type) {
+ if (in_array(mb_strtolower(trim($type)), $acceptedmedia)) {
+ $accept = true;
+ break;
+ }
+ }
+
+ if (!$accept) {
+ //found at least one mediatype, but none of the accepted ones
+ //Skip this css file.
+ break;
+ }
+ }
+
+ $url = $tag->getAttribute("href");
+ $url = Helpers::build_url($this->protocol, $this->baseHost, $this->basePath, $url);
+
+ if ($url !== null) {
+ $this->css->load_css_file($url, Stylesheet::ORIG_AUTHOR);
+ }
+ }
+ break;
+
+ // load <style> tags
+ case "style":
+ // Accept all <style> tags by default (note this is contrary to W3C
+ // HTML 4.0 spec:
+ // http://www.w3.org/TR/REC-html40/present/styles.html#adef-media
+ // which states that the default media type is 'screen'
+ if ($tag->hasAttributes() &&
+ ($media = $tag->getAttribute("media")) &&
+ !in_array($media, $acceptedmedia)
+ ) {
+ break;
+ }
+
+ $css = "";
+ if ($tag->hasChildNodes()) {
+ $child = $tag->firstChild;
+ while ($child) {
+ $css .= $child->nodeValue; // Handle <style><!-- blah --></style>
+ $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 '<b>Dompdf Warnings</b><br><pre>';
+ foreach ($_dompdf_warnings as $msg) {
+ echo $msg . "\n";
+ }
+
+ if ($canvas instanceof CPDF) {
+ echo $canvas->get_cpdf()->messages;
+ }
+ echo '</pre>';
+ 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(
+ "<span style='color: #000' title='Frames'>%6d</span>" .
+ "<span style='color: #009' title='Memory'>%10.2f KB</span>" .
+ "<span style='color: #900' title='Time'>%10.2f ms</span>" .
+ "<span title='Quirksmode'> " .
+ ($this->quirksmode ? "<span style='color: #d00'> ON</span>" : "<span style='color: #0d0'>OFF</span>") .
+ "</span><br />", $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/library/vendor/dompdf/vendor/dompdf/dompdf/src/Exception.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Exception.php
new file mode 100644
index 0000000..3a90e47
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Exception.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf;
+
+/**
+ * Standard exception thrown by DOMPDF classes
+ *
+ * @package dompdf
+ */
+class Exception extends \Exception
+{
+
+ /**
+ * Class constructor
+ *
+ * @param string $message Error message
+ * @param int $code Error code
+ */
+ public function __construct($message = null, $code = 0)
+ {
+ parent::__construct($message, $code);
+ }
+}
diff --git a/library/vendor/dompdf/vendor/dompdf/dompdf/src/Exception/ImageException.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Exception/ImageException.php
new file mode 100644
index 0000000..ea1dfe4
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Exception/ImageException.php
@@ -0,0 +1,30 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf\Exception;
+
+use Dompdf\Exception;
+
+/**
+ * Image exception thrown by DOMPDF
+ *
+ * @package dompdf
+ */
+class ImageException extends Exception
+{
+
+ /**
+ * Class constructor
+ *
+ * @param string $message Error message
+ * @param int $code Error code
+ */
+ function __construct($message = null, $code = 0)
+ {
+ parent::__construct($message, $code);
+ }
+
+}
diff --git a/library/vendor/dompdf/vendor/dompdf/dompdf/src/FontMetrics.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/FontMetrics.php
new file mode 100644
index 0000000..5698c88
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/FontMetrics.php
@@ -0,0 +1,635 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf;
+
+use FontLib\Font;
+
+/**
+ * The font metrics class
+ *
+ * This class provides information about fonts and text. It can resolve
+ * font names into actual installed font files, as well as determine the
+ * size of text in a particular font and size.
+ *
+ * @static
+ * @package dompdf
+ */
+class FontMetrics
+{
+ /**
+ * Name of the user font families file
+ *
+ * This file must be writable by the webserver process only to update it
+ * with save_font_families() after adding the .afm file references of a new font family
+ * with FontMetrics::saveFontFamilies().
+ * This is typically done only from command line with load_font.php on converting
+ * ttf fonts to ufm with php-font-lib.
+ */
+ const USER_FONTS_FILE = "installed-fonts.json";
+
+
+ /**
+ * Underlying {@link Canvas} object to perform text size calculations
+ *
+ * @var Canvas
+ */
+ protected $canvas;
+
+ /**
+ * Array of bundled font family names to variants
+ *
+ * @var array
+ */
+ protected $bundledFonts = [];
+
+ /**
+ * Array of user defined font family names to variants
+ *
+ * @var array
+ */
+ protected $userFonts = [];
+
+ /**
+ * combined list of all font families with absolute paths
+ *
+ * @var array
+ */
+ protected $fontFamilies;
+
+ /**
+ * @var Options
+ */
+ private $options;
+
+ /**
+ * Class initialization
+ */
+ public function __construct(Canvas $canvas, Options $options)
+ {
+ $this->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/library/vendor/dompdf/vendor/dompdf/dompdf/src/Frame.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Frame.php
new file mode 100644
index 0000000..55136b2
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Frame.php
@@ -0,0 +1,1217 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf;
+
+use Dompdf\Css\Style;
+use Dompdf\Frame\FrameListIterator;
+
+/**
+ * The main Frame class
+ *
+ * This class represents a single HTML element. This class stores
+ * positioning information as well as containing block location and
+ * dimensions. Style information for the element is stored in a {@link
+ * Style} object. Tree structure is maintained via the parent & children
+ * links.
+ *
+ * @package dompdf
+ */
+class Frame
+{
+ const WS_TEXT = 1;
+ const WS_SPACE = 2;
+
+ /**
+ * The DOMElement or DOMText object this frame represents
+ *
+ * @var \DOMElement|\DOMText
+ */
+ protected $_node;
+
+ /**
+ * Unique identifier for this frame. Used to reference this frame
+ * via the node.
+ *
+ * @var int
+ */
+ protected $_id;
+
+ /**
+ * Unique id counter
+ *
+ * @var int
+ */
+ public static $ID_COUNTER = 0; /*protected*/
+
+ /**
+ * This frame's calculated style
+ *
+ * @var Style
+ */
+ protected $_style;
+
+ /**
+ * This frame's parent in the document tree.
+ *
+ * @var Frame
+ */
+ protected $_parent;
+
+ /**
+ * This frame's first child. All children are handled as a
+ * doubly-linked list.
+ *
+ * @var Frame
+ */
+ protected $_first_child;
+
+ /**
+ * This frame's last child.
+ *
+ * @var Frame
+ */
+ protected $_last_child;
+
+ /**
+ * This frame's previous sibling in the document tree.
+ *
+ * @var Frame
+ */
+ protected $_prev_sibling;
+
+ /**
+ * This frame's next sibling in the document tree.
+ *
+ * @var Frame
+ */
+ protected $_next_sibling;
+
+ /**
+ * This frame's containing block (used in layout): array(x, y, w, h)
+ *
+ * @var float[]
+ */
+ protected $_containing_block;
+
+ /**
+ * Position on the page of the top-left corner of the margin box of
+ * this frame: array(x,y)
+ *
+ * @var float[]
+ */
+ protected $_position;
+
+ /**
+ * Absolute opacity of this frame
+ *
+ * @var float
+ */
+ protected $_opacity;
+
+ /**
+ * This frame's decorator
+ *
+ * @var FrameDecorator\AbstractFrameDecorator
+ */
+ protected $_decorator;
+
+ /**
+ * This frame's containing line box
+ *
+ * @var LineBox|null
+ */
+ protected $_containing_line;
+
+ /**
+ * @var array
+ */
+ protected $_is_cache = [];
+
+ /**
+ * Tells whether the frame was already pushed to the next page
+ *
+ * @var bool
+ */
+ public $_already_pushed = false;
+
+ /**
+ * @var bool
+ */
+ public $_float_next_line = false;
+
+ /**
+ * @var int
+ */
+ public static $_ws_state = self::WS_SPACE;
+
+ /**
+ * Class constructor
+ *
+ * @param \DOMNode $node the DOMNode this frame represents
+ */
+ public function __construct(\DOMNode $node)
+ {
+ $this->_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 = "<b>" . $this->_node->nodeName . ":</b><br/>";
+ //$str .= spl_object_hash($this->_node) . "<br/>";
+ $str .= "Id: " . $this->get_id() . "<br/>";
+ $str .= "Class: " . get_class($this) . "<br/>";
+
+ if ($this->is_text_node()) {
+ $tmp = htmlspecialchars($this->_node->nodeValue);
+ $str .= "<pre>'" . mb_substr($tmp, 0, 70) .
+ (mb_strlen($tmp) > 70 ? "..." : "") . "'</pre>";
+ } elseif ($css_class = $this->_node->getAttribute("class")) {
+ $str .= "CSS class: '$css_class'<br/>";
+ }
+
+ if ($this->_parent) {
+ $str .= "\nParent:" . $this->_parent->_node->nodeName .
+ " (" . spl_object_hash($this->_parent->_node) . ") " .
+ "<br/>";
+ }
+
+ if ($this->_prev_sibling) {
+ $str .= "Prev: " . $this->_prev_sibling->_node->nodeName .
+ " (" . spl_object_hash($this->_prev_sibling->_node) . ") " .
+ "<br/>";
+ }
+
+ if ($this->_next_sibling) {
+ $str .= "Next: " . $this->_next_sibling->_node->nodeName .
+ " (" . spl_object_hash($this->_next_sibling->_node) . ") " .
+ "<br/>";
+ }
+
+ $d = $this->get_decorator();
+ while ($d && $d != $d->get_decorator()) {
+ $str .= "Decorator: " . get_class($d) . "<br/>";
+ $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: <pre>" . $this->_style->__toString() . "</pre>";
+
+ if ($this->_decorator instanceof FrameDecorator\Block) {
+ $str .= "Lines:<pre>";
+ 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 .= "</pre>";
+ }
+
+ $str .= "\n";
+ if (php_sapi_name() === "cli") {
+ $str = strip_tags(str_replace(["<br/>", "<b>", "</b>"],
+ ["\n", "", ""],
+ $str));
+ }
+
+ return $str;
+ }
+}
diff --git a/library/vendor/dompdf/vendor/dompdf/dompdf/src/Frame/Factory.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Frame/Factory.php
new file mode 100644
index 0000000..b4bab88
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Frame/Factory.php
@@ -0,0 +1,263 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf\Frame;
+
+use Dompdf\Dompdf;
+use Dompdf\Exception;
+use Dompdf\Frame;
+use Dompdf\FrameDecorator\AbstractFrameDecorator;
+use DOMXPath;
+use Dompdf\FrameDecorator\Page as PageFrameDecorator;
+use Dompdf\FrameReflower\Page as PageFrameReflower;
+use Dompdf\Positioner\AbstractPositioner;
+
+/**
+ * Contains frame decorating logic
+ *
+ * This class is responsible for assigning the correct {@link AbstractFrameDecorator},
+ * {@link AbstractPositioner}, and {@link AbstractFrameReflower} objects to {@link Frame}
+ * objects. This is determined primarily by the Frame's display type, but
+ * also by the Frame's node's type (e.g. DomElement vs. #text)
+ *
+ * @package dompdf
+ */
+class Factory
+{
+
+ /**
+ * Array of positioners for specific frame types
+ *
+ * @var AbstractPositioner[]
+ */
+ protected static $_positioners;
+
+ /**
+ * Decorate the root Frame
+ *
+ * @param $root Frame The frame to decorate
+ * @param $dompdf Dompdf The dompdf instance
+ *
+ * @return PageFrameDecorator
+ */
+ static function decorate_root(Frame $root, Dompdf $dompdf)
+ {
+ $frame = new PageFrameDecorator($root, $dompdf);
+ $frame->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/library/vendor/dompdf/vendor/dompdf/dompdf/src/Frame/FrameListIterator.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Frame/FrameListIterator.php
new file mode 100644
index 0000000..0157550
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Frame/FrameListIterator.php
@@ -0,0 +1,100 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf\Frame;
+
+use Iterator;
+use Dompdf\Frame;
+
+/**
+ * Linked-list Iterator
+ *
+ * Returns children in order and allows for the list to change during iteration,
+ * provided the changes occur to or after the current element.
+ *
+ * @package dompdf
+ */
+class FrameListIterator implements Iterator
+{
+ /**
+ * @var Frame
+ */
+ protected $parent;
+
+ /**
+ * @var Frame|null
+ */
+ protected $cur;
+
+ /**
+ * @var Frame|null
+ */
+ protected $prev;
+
+ /**
+ * @var int
+ */
+ protected $num;
+
+ /**
+ * @param Frame $frame
+ */
+ public function __construct(Frame $frame)
+ {
+ $this->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/library/vendor/dompdf/vendor/dompdf/dompdf/src/Frame/FrameTree.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Frame/FrameTree.php
new file mode 100644
index 0000000..6d012d8
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Frame/FrameTree.php
@@ -0,0 +1,324 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf\Frame;
+
+use DOMDocument;
+use DOMNode;
+use DOMElement;
+use DOMXPath;
+
+use Dompdf\Exception;
+use Dompdf\Frame;
+use IteratorAggregate;
+
+/**
+ * Represents an entire document as a tree of frames
+ *
+ * The FrameTree consists of {@link Frame} objects each tied to specific
+ * DOMNode objects in a specific DomDocument. The FrameTree has the same
+ * structure as the DomDocument, but adds additional capabilities for
+ * styling and layout.
+ *
+ * @package dompdf
+ */
+class FrameTree implements IteratorAggregate
+{
+ /**
+ * Tags to ignore while parsing the tree
+ *
+ * @var array
+ */
+ protected static $HIDDEN_TAGS = [
+ "area",
+ "base",
+ "basefont",
+ "head",
+ "style",
+ "meta",
+ "title",
+ "colgroup",
+ "noembed",
+ "param",
+ "#comment"
+ ];
+
+ /**
+ * The main DomDocument
+ *
+ * @see http://ca2.php.net/manual/en/ref.dom.php
+ * @var DOMDocument
+ */
+ protected $_dom;
+
+ /**
+ * The root node of the FrameTree.
+ *
+ * @var Frame
+ */
+ protected $_root;
+
+ /**
+ * Subtrees of absolutely positioned elements
+ *
+ * @var array of Frames
+ */
+ protected $_absolute_frames;
+
+ /**
+ * A mapping of {@link Frame} objects to DOMNode objects
+ *
+ * @var array
+ */
+ protected $_registry;
+
+ /**
+ * Class constructor
+ *
+ * @param DOMDocument $dom the main DomDocument object representing the current html document
+ */
+ public function __construct(DomDocument $dom)
+ {
+ $this->_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/library/vendor/dompdf/vendor/dompdf/dompdf/src/Frame/FrameTreeIterator.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Frame/FrameTreeIterator.php
new file mode 100644
index 0000000..4da8da1
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Frame/FrameTreeIterator.php
@@ -0,0 +1,88 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf\Frame;
+
+use Iterator;
+use Dompdf\Frame;
+
+/**
+ * Pre-order Iterator
+ *
+ * Returns frames in preorder traversal order (parent then children)
+ *
+ * @package dompdf
+ */
+class FrameTreeIterator implements Iterator
+{
+ /**
+ * @var Frame
+ */
+ protected $_root;
+
+ /**
+ * @var Frame[]
+ */
+ protected $_stack = [];
+
+ /**
+ * @var int
+ */
+ protected $_num;
+
+ /**
+ * @param Frame $root
+ */
+ public function __construct(Frame $root)
+ {
+ $this->_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/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameDecorator/AbstractFrameDecorator.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameDecorator/AbstractFrameDecorator.php
new file mode 100644
index 0000000..2c1fcc5
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameDecorator/AbstractFrameDecorator.php
@@ -0,0 +1,923 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf\FrameDecorator;
+
+use DOMElement;
+use DOMNode;
+use Dompdf\Helpers;
+use Dompdf\Dompdf;
+use Dompdf\Exception;
+use Dompdf\Frame;
+use Dompdf\Frame\Factory;
+use Dompdf\Frame\FrameListIterator;
+use Dompdf\Frame\FrameTreeIterator;
+use Dompdf\FrameReflower\AbstractFrameReflower;
+use Dompdf\Css\Style;
+use Dompdf\Positioner\AbstractPositioner;
+
+/**
+ * Base AbstractFrameDecorator class
+ *
+ * @package dompdf
+ */
+abstract class AbstractFrameDecorator extends Frame
+{
+ const DEFAULT_COUNTER = "-dompdf-default-counter";
+
+ /**
+ * array([id] => 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<AbstractFrameDecorator>
+ */
+ public function get_children(): FrameListIterator
+ {
+ return new FrameListIterator($this);
+ }
+
+ /**
+ * @return FrameTreeIterator<AbstractFrameDecorator>
+ */
+ 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/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameDecorator/Block.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameDecorator/Block.php
new file mode 100644
index 0000000..1fcf134
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameDecorator/Block.php
@@ -0,0 +1,256 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf\FrameDecorator;
+
+use Dompdf\Dompdf;
+use Dompdf\Frame;
+use Dompdf\LineBox;
+
+/**
+ * Decorates frames for block layout
+ *
+ * @package dompdf
+ */
+class Block extends AbstractFrameDecorator
+{
+ /**
+ * Current line index
+ *
+ * @var int
+ */
+ protected $_cl;
+
+ /**
+ * The block's line boxes
+ *
+ * @var LineBox[]
+ */
+ protected $_line_boxes;
+
+ /**
+ * List of markers that have not found their line box to vertically align
+ * with yet. Markers are collected by nested block containers until an
+ * inline line box is found at the start of the block.
+ *
+ * @var ListBullet[]
+ */
+ protected $dangling_markers;
+
+ /**
+ * Block constructor.
+ * @param Frame $frame
+ * @param Dompdf $dompdf
+ */
+ function __construct(Frame $frame, Dompdf $dompdf)
+ {
+ parent::__construct($frame, $dompdf);
+
+ $this->_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/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameDecorator/Image.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameDecorator/Image.php
new file mode 100644
index 0000000..92ac491
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameDecorator/Image.php
@@ -0,0 +1,120 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf\FrameDecorator;
+
+use Dompdf\Dompdf;
+use Dompdf\Frame;
+use Dompdf\Helpers;
+use Dompdf\Image\Cache;
+
+/**
+ * Decorates frames for image layout and rendering
+ *
+ * @package dompdf
+ */
+class Image extends AbstractFrameDecorator
+{
+
+ /**
+ * The path to the image file (note that remote images are
+ * downloaded locally to Options:tempDir).
+ *
+ * @var string
+ */
+ protected $_image_url;
+
+ /**
+ * The image's file error message
+ *
+ * @var string
+ */
+ protected $_image_msg;
+
+ /**
+ * Class constructor
+ *
+ * @param Frame $frame the frame to decorate
+ * @param DOMPDF $dompdf the document's dompdf object (required to resolve relative & remote urls)
+ */
+ function __construct(Frame $frame, Dompdf $dompdf)
+ {
+ parent::__construct($frame, $dompdf);
+ $url = $frame->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/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameDecorator/Inline.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameDecorator/Inline.php
new file mode 100644
index 0000000..668d795
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameDecorator/Inline.php
@@ -0,0 +1,121 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf\FrameDecorator;
+
+use Dompdf\Dompdf;
+use Dompdf\Frame;
+use Dompdf\Exception;
+
+/**
+ * Decorates frames for inline layout
+ *
+ * @package dompdf
+ */
+class Inline extends AbstractFrameDecorator
+{
+
+ /**
+ * Inline constructor.
+ * @param Frame $frame
+ * @param Dompdf $dompdf
+ */
+ function __construct(Frame $frame, Dompdf $dompdf)
+ {
+ parent::__construct($frame, $dompdf);
+ }
+
+ /**
+ * 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
+ {
+ $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 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/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameDecorator/ListBullet.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameDecorator/ListBullet.php
new file mode 100644
index 0000000..703f467
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameDecorator/ListBullet.php
@@ -0,0 +1,117 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf\FrameDecorator;
+
+use Dompdf\Dompdf;
+use Dompdf\Frame;
+
+/**
+ * Decorates frames for list bullet rendering
+ *
+ * @package dompdf
+ */
+class ListBullet extends AbstractFrameDecorator
+{
+ /**
+ * Bullet diameter as fraction of font size.
+ */
+ public const BULLET_SIZE = 0.35;
+
+ /**
+ * Bullet offset from font baseline as fraction of font size.
+ */
+ public const BULLET_OFFSET = 0.1;
+
+ /**
+ * Thickness of bullet outline as fraction of font size.
+ * See also `DECO_THICKNESS`. Screen: 0.08, print: better less, e.g. 0.04.
+ */
+ public const BULLET_THICKNESS = 0.04;
+
+ /**
+ * Indentation from the start of the line as fraction of font size.
+ */
+ public const MARKER_INDENT = 0.52;
+
+ /**
+ * ListBullet constructor.
+ * @param Frame $frame
+ * @param Dompdf $dompdf
+ */
+ function __construct(Frame $frame, Dompdf $dompdf)
+ {
+ parent::__construct($frame, $dompdf);
+ }
+
+ /**
+ * Get the width of the bullet symbol.
+ *
+ * @return float
+ */
+ public function get_width(): float
+ {
+ $style = $this->_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/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameDecorator/ListBulletImage.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameDecorator/ListBulletImage.php
new file mode 100644
index 0000000..d921929
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameDecorator/ListBulletImage.php
@@ -0,0 +1,112 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf\FrameDecorator;
+
+use Dompdf\Dompdf;
+use Dompdf\Frame;
+use Dompdf\Helpers;
+use Dompdf\Image\Cache;
+
+/**
+ * Decorates frames for list bullets with custom images
+ *
+ * @package dompdf
+ */
+class ListBulletImage extends ListBullet
+{
+
+ /**
+ * The underlying image frame
+ *
+ * @var Image
+ */
+ protected $_img;
+
+ /**
+ * The image's width in pixels
+ *
+ * @var float
+ */
+ protected $_width;
+
+ /**
+ * The image's height in pixels
+ *
+ * @var float
+ */
+ protected $_height;
+
+ /**
+ * ListBulletImage constructor.
+ * @param Frame $frame
+ * @param Dompdf $dompdf
+ */
+ function __construct(Frame $frame, Dompdf $dompdf)
+ {
+ $style = $frame->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/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameDecorator/NullFrameDecorator.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameDecorator/NullFrameDecorator.php
new file mode 100644
index 0000000..f083816
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameDecorator/NullFrameDecorator.php
@@ -0,0 +1,33 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf\FrameDecorator;
+
+use Dompdf\Dompdf;
+use Dompdf\Frame;
+
+/**
+ * Dummy decorator
+ *
+ * @package dompdf
+ */
+class NullFrameDecorator extends AbstractFrameDecorator
+{
+ /**
+ * NullFrameDecorator constructor.
+ * @param Frame $frame
+ * @param Dompdf $dompdf
+ */
+ function __construct(Frame $frame, Dompdf $dompdf)
+ {
+ parent::__construct($frame, $dompdf);
+ $style = $this->_frame->get_style();
+ $style->width = 0;
+ $style->height = 0;
+ $style->margin = 0;
+ $style->padding = 0;
+ }
+}
diff --git a/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameDecorator/Page.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameDecorator/Page.php
new file mode 100644
index 0000000..25ef240
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameDecorator/Page.php
@@ -0,0 +1,753 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf\FrameDecorator;
+
+use Dompdf\Dompdf;
+use Dompdf\Helpers;
+use Dompdf\Frame;
+use Dompdf\Renderer;
+
+/**
+ * Decorates frames for page layout
+ *
+ * @package dompdf
+ */
+class Page extends AbstractFrameDecorator
+{
+ /**
+ * The y value of the bottom edge of the page area.
+ *
+ * https://www.w3.org/TR/CSS21/page.html#page-margins
+ *
+ * @var float
+ */
+ protected $bottom_page_edge;
+
+ /**
+ * Flag indicating page is full.
+ *
+ * @var bool
+ */
+ protected $_page_full;
+
+ /**
+ * Number of tables currently being reflowed
+ *
+ * @var int
+ */
+ protected $_in_table;
+
+ /**
+ * The pdf renderer
+ *
+ * @var Renderer
+ */
+ protected $_renderer;
+
+ /**
+ * This page's floating frames
+ *
+ * @var array
+ */
+ protected $_floating_frames = [];
+
+ //........................................................................
+
+ /**
+ * Class constructor
+ *
+ * @param Frame $frame the frame to decorate
+ * @param Dompdf $dompdf
+ */
+ function __construct(Frame $frame, Dompdf $dompdf)
+ {
+ parent::__construct($frame, $dompdf);
+ $this->_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/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameDecorator/Table.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameDecorator/Table.php
new file mode 100644
index 0000000..2770cbe
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameDecorator/Table.php
@@ -0,0 +1,343 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf\FrameDecorator;
+
+use Dompdf\Cellmap;
+use DOMNode;
+use Dompdf\Css\Style;
+use Dompdf\Dompdf;
+use Dompdf\Frame;
+
+/**
+ * Decorates Frames for table layout
+ *
+ * @package dompdf
+ */
+class Table extends AbstractFrameDecorator
+{
+ public const VALID_CHILDREN = Style::TABLE_INTERNAL_TYPES;
+
+ /**
+ * List of all row-group display types.
+ */
+ public const ROW_GROUPS = [
+ "table-row-group",
+ "table-header-group",
+ "table-footer-group"
+ ];
+
+ /**
+ * The Cellmap object for this table. The cellmap maps table cells
+ * to rows and columns, and aids in calculating column widths.
+ *
+ * @var Cellmap
+ */
+ protected $_cellmap;
+
+ /**
+ * Table header rows. Each table header is duplicated when a table
+ * spans pages.
+ *
+ * @var TableRowGroup[]
+ */
+ protected $_headers;
+
+ /**
+ * Table footer rows. Each table footer is duplicated when a table
+ * spans pages.
+ *
+ * @var TableRowGroup[]
+ */
+ protected $_footers;
+
+ /**
+ * Class constructor
+ *
+ * @param Frame $frame the frame to decorate
+ * @param Dompdf $dompdf
+ */
+ public function __construct(Frame $frame, Dompdf $dompdf)
+ {
+ parent::__construct($frame, $dompdf);
+ $this->_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/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameDecorator/TableCell.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameDecorator/TableCell.php
new file mode 100644
index 0000000..d382164
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameDecorator/TableCell.php
@@ -0,0 +1,143 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf\FrameDecorator;
+
+use Dompdf\Dompdf;
+use Dompdf\Frame;
+use Dompdf\FrameDecorator\Block as BlockFrameDecorator;
+
+/**
+ * Decorates table cells for layout
+ *
+ * @package dompdf
+ */
+class TableCell extends BlockFrameDecorator
+{
+
+ protected $_resolved_borders;
+ protected $_content_height;
+
+ //........................................................................
+
+ /**
+ * TableCell constructor.
+ * @param Frame $frame
+ * @param Dompdf $dompdf
+ */
+ function __construct(Frame $frame, Dompdf $dompdf)
+ {
+ parent::__construct($frame, $dompdf);
+ $this->_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/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameDecorator/TableRow.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameDecorator/TableRow.php
new file mode 100644
index 0000000..ba985c9
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameDecorator/TableRow.php
@@ -0,0 +1,28 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf\FrameDecorator;
+
+use Dompdf\Dompdf;
+use Dompdf\Frame;
+
+/**
+ * Decorates Frames for table row layout
+ *
+ * @package dompdf
+ */
+class TableRow extends AbstractFrameDecorator
+{
+ /**
+ * TableRow constructor.
+ * @param Frame $frame
+ * @param Dompdf $dompdf
+ */
+ function __construct(Frame $frame, Dompdf $dompdf)
+ {
+ parent::__construct($frame, $dompdf);
+ }
+}
diff --git a/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameDecorator/TableRowGroup.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameDecorator/TableRowGroup.php
new file mode 100644
index 0000000..00fe43a
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameDecorator/TableRowGroup.php
@@ -0,0 +1,74 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf\FrameDecorator;
+
+use Dompdf\Dompdf;
+use Dompdf\Frame;
+
+/**
+ * Table row group decorator
+ *
+ * Overrides split() method for tbody, thead & tfoot elements
+ *
+ * @package dompdf
+ */
+class TableRowGroup extends AbstractFrameDecorator
+{
+
+ /**
+ * Class constructor
+ *
+ * @param Frame $frame Frame to decorate
+ * @param Dompdf $dompdf Current dompdf instance
+ */
+ function __construct(Frame $frame, Dompdf $dompdf)
+ {
+ parent::__construct($frame, $dompdf);
+ }
+
+ /**
+ * Split the row group at the given child and remove all subsequent child
+ * rows and all subsequent row groups from the cellmap.
+ */
+ 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;
+ }
+
+ // Remove child & all subsequent rows from the cellmap
+ /** @var Table $parent */
+ $parent = $this->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/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameDecorator/Text.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameDecorator/Text.php
new file mode 100644
index 0000000..9d66934
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameDecorator/Text.php
@@ -0,0 +1,191 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf\FrameDecorator;
+
+use Dompdf\Dompdf;
+use Dompdf\Frame;
+use Dompdf\Exception;
+
+/**
+ * Decorates Frame objects for text layout
+ *
+ * @package dompdf
+ */
+class Text extends AbstractFrameDecorator
+{
+ /**
+ * @var float
+ */
+ protected $text_spacing;
+
+ /**
+ * Text constructor.
+ * @param Frame $frame
+ * @param Dompdf $dompdf
+ * @throws Exception
+ */
+ function __construct(Frame $frame, Dompdf $dompdf)
+ {
+ if (!$frame->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/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameReflower/AbstractFrameReflower.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameReflower/AbstractFrameReflower.php
new file mode 100644
index 0000000..fa0cc51
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameReflower/AbstractFrameReflower.php
@@ -0,0 +1,705 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf\FrameReflower;
+
+use Dompdf\Dompdf;
+use Dompdf\Helpers;
+use Dompdf\Frame;
+use Dompdf\Frame\Factory;
+use Dompdf\FrameDecorator\AbstractFrameDecorator;
+use Dompdf\FrameDecorator\Block;
+
+/**
+ * Base reflower class
+ *
+ * Reflower objects are responsible for determining the width and height of
+ * individual frames. They also create line and page breaks as necessary.
+ *
+ * @package dompdf
+ */
+abstract class AbstractFrameReflower
+{
+
+ /**
+ * Frame for this reflower
+ *
+ * @var AbstractFrameDecorator
+ */
+ protected $_frame;
+
+ /**
+ * Cached min/max child size
+ *
+ * @var array
+ */
+ protected $_min_max_child_cache;
+
+ /**
+ * Cached min/max size
+ *
+ * @var array
+ */
+ protected $_min_max_cache;
+
+ /**
+ * AbstractFrameReflower constructor.
+ * @param AbstractFrameDecorator $frame
+ */
+ function __construct(AbstractFrameDecorator $frame)
+ {
+ $this->_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/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameReflower/Block.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameReflower/Block.php
new file mode 100644
index 0000000..f9e50a6
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameReflower/Block.php
@@ -0,0 +1,949 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf\FrameReflower;
+
+use Dompdf\Frame;
+use Dompdf\FrameDecorator\AbstractFrameDecorator;
+use Dompdf\FrameDecorator\Block as BlockFrameDecorator;
+use Dompdf\FrameDecorator\TableCell as TableCellFrameDecorator;
+use Dompdf\FrameDecorator\Text as TextFrameDecorator;
+use Dompdf\Exception;
+use Dompdf\Css\Style;
+use Dompdf\Helpers;
+
+/**
+ * Reflows block frames
+ *
+ * @package dompdf
+ */
+class Block extends AbstractFrameReflower
+{
+ // Minimum line width to justify, as fraction of available width
+ const MIN_JUSTIFY_WIDTH = 0.80;
+
+ /**
+ * Frame for this reflower
+ *
+ * @var BlockFrameDecorator
+ */
+ protected $_frame;
+
+ function __construct(BlockFrameDecorator $frame)
+ {
+ parent::__construct($frame);
+ }
+
+ /**
+ * Calculate the ideal used value for the width property as per:
+ * http://www.w3.org/TR/CSS21/visudet.html#Computing_widths_and_margins
+ *
+ * @param float $width
+ *
+ * @return array
+ */
+ protected function _calculate_width($width)
+ {
+ $frame = $this->_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/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameReflower/Image.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameReflower/Image.php
new file mode 100644
index 0000000..eae3408
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameReflower/Image.php
@@ -0,0 +1,213 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf\FrameReflower;
+
+use Dompdf\Helpers;
+use Dompdf\FrameDecorator\Block as BlockFrameDecorator;
+use Dompdf\FrameDecorator\Image as ImageFrameDecorator;
+
+/**
+ * Image reflower class
+ *
+ * @package dompdf
+ */
+class Image extends AbstractFrameReflower
+{
+
+ /**
+ * Image constructor.
+ * @param ImageFrameDecorator $frame
+ */
+ function __construct(ImageFrameDecorator $frame)
+ {
+ parent::__construct($frame);
+ }
+
+ /**
+ * @param BlockFrameDecorator|null $block
+ */
+ function reflow(BlockFrameDecorator $block = null)
+ {
+ $this->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/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameReflower/Inline.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameReflower/Inline.php
new file mode 100644
index 0000000..34a6686
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameReflower/Inline.php
@@ -0,0 +1,188 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf\FrameReflower;
+
+use Dompdf\FrameDecorator\Block as BlockFrameDecorator;
+use Dompdf\FrameDecorator\Inline as InlineFrameDecorator;
+use Dompdf\FrameDecorator\Text as TextFrameDecorator;
+
+/**
+ * Reflows inline frames
+ *
+ * @package dompdf
+ */
+class Inline extends AbstractFrameReflower
+{
+ /**
+ * Inline constructor.
+ * @param InlineFrameDecorator $frame
+ */
+ function __construct(InlineFrameDecorator $frame)
+ {
+ parent::__construct($frame);
+ }
+
+ /**
+ * Handle reflow of empty inline frames.
+ *
+ * Regular inline frames are positioned together with their text (or inline)
+ * children after child reflow. Empty inline frames have no children that
+ * could determine the positioning, so they need to be handled separately.
+ *
+ * @param BlockFrameDecorator $block
+ */
+ protected function reflow_empty(BlockFrameDecorator $block): void
+ {
+ /** @var InlineFrameDecorator */
+ $frame = $this->_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/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameReflower/ListBullet.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameReflower/ListBullet.php
new file mode 100644
index 0000000..f735bae
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameReflower/ListBullet.php
@@ -0,0 +1,47 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf\FrameReflower;
+
+use Dompdf\FrameDecorator\Block as BlockFrameDecorator;
+use Dompdf\FrameDecorator\ListBullet as ListBulletFrameDecorator;
+
+/**
+ * Reflows list bullets
+ *
+ * @package dompdf
+ */
+class ListBullet extends AbstractFrameReflower
+{
+
+ /**
+ * ListBullet constructor.
+ * @param ListBulletFrameDecorator $frame
+ */
+ function __construct(ListBulletFrameDecorator $frame)
+ {
+ parent::__construct($frame);
+ }
+
+ /**
+ * @param BlockFrameDecorator|null $block
+ */
+ function reflow(BlockFrameDecorator $block = null)
+ {
+ /** @var ListBulletFrameDecorator */
+ $frame = $this->_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/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameReflower/NullFrameReflower.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameReflower/NullFrameReflower.php
new file mode 100644
index 0000000..8d7e558
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameReflower/NullFrameReflower.php
@@ -0,0 +1,37 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf\FrameReflower;
+
+use Dompdf\Frame;
+use Dompdf\FrameDecorator\Block as BlockFrameDecorator;
+
+/**
+ * Dummy reflower
+ *
+ * @package dompdf
+ */
+class NullFrameReflower extends AbstractFrameReflower
+{
+
+ /**
+ * NullFrameReflower constructor.
+ * @param Frame $frame
+ */
+ function __construct(Frame $frame)
+ {
+ parent::__construct($frame);
+ }
+
+ /**
+ * @param BlockFrameDecorator|null $block
+ */
+ function reflow(BlockFrameDecorator $block = null)
+ {
+ return;
+ }
+
+}
diff --git a/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameReflower/Page.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameReflower/Page.php
new file mode 100644
index 0000000..923865b
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameReflower/Page.php
@@ -0,0 +1,199 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf\FrameReflower;
+
+use Dompdf\Frame;
+use Dompdf\FrameDecorator\Block as BlockFrameDecorator;
+use Dompdf\FrameDecorator\Page as PageFrameDecorator;
+
+/**
+ * Reflows pages
+ *
+ * @package dompdf
+ */
+class Page extends AbstractFrameReflower
+{
+
+ /**
+ * Cache of the callbacks array
+ *
+ * @var array
+ */
+ private $_callbacks;
+
+ /**
+ * Cache of the canvas
+ *
+ * @var \Dompdf\Canvas
+ */
+ private $_canvas;
+
+ /**
+ * Page constructor.
+ * @param PageFrameDecorator $frame
+ */
+ function __construct(PageFrameDecorator $frame)
+ {
+ parent::__construct($frame);
+ }
+
+ /**
+ * @param PageFrameDecorator $frame
+ * @param int $page_number
+ */
+ function apply_page_style(Frame $frame, $page_number)
+ {
+ $style = $frame->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/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameReflower/Table.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameReflower/Table.php
new file mode 100644
index 0000000..5173738
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameReflower/Table.php
@@ -0,0 +1,523 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf\FrameReflower;
+
+use Dompdf\FrameDecorator\Block as BlockFrameDecorator;
+use Dompdf\FrameDecorator\Table as TableFrameDecorator;
+use Dompdf\Helpers;
+
+/**
+ * Reflows tables
+ *
+ * @package dompdf
+ */
+class Table extends AbstractFrameReflower
+{
+ /**
+ * Frame for this reflower
+ *
+ * @var TableFrameDecorator
+ */
+ protected $_frame;
+
+ /**
+ * Cache of results between call to get_min_max_width and assign_widths
+ *
+ * @var array
+ */
+ protected $_state;
+
+ /**
+ * Table constructor.
+ * @param TableFrameDecorator $frame
+ */
+ function __construct(TableFrameDecorator $frame)
+ {
+ $this->_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/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameReflower/TableCell.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameReflower/TableCell.php
new file mode 100644
index 0000000..f5ce35d
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameReflower/TableCell.php
@@ -0,0 +1,161 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf\FrameReflower;
+
+use Dompdf\FrameDecorator\Block as BlockFrameDecorator;
+use Dompdf\FrameDecorator\Table as TableFrameDecorator;
+use Dompdf\Helpers;
+
+/**
+ * Reflows table cells
+ *
+ * @package dompdf
+ */
+class TableCell extends Block
+{
+ /**
+ * TableCell constructor.
+ * @param BlockFrameDecorator $frame
+ */
+ function __construct(BlockFrameDecorator $frame)
+ {
+ parent::__construct($frame);
+ }
+
+ /**
+ * @param BlockFrameDecorator|null $block
+ */
+ function reflow(BlockFrameDecorator $block = null)
+ {
+ // Counters and generated content
+ $this->_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/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameReflower/TableRow.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameReflower/TableRow.php
new file mode 100644
index 0000000..f84c125
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameReflower/TableRow.php
@@ -0,0 +1,82 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf\FrameReflower;
+
+use Dompdf\FrameDecorator\Block as BlockFrameDecorator;
+use Dompdf\FrameDecorator\Table as TableFrameDecorator;
+use Dompdf\FrameDecorator\TableRow as TableRowFrameDecorator;
+use Dompdf\Exception;
+
+/**
+ * Reflows table rows
+ *
+ * @package dompdf
+ */
+class TableRow extends AbstractFrameReflower
+{
+ /**
+ * TableRow constructor.
+ * @param TableRowFrameDecorator $frame
+ */
+ function __construct(TableRowFrameDecorator $frame)
+ {
+ parent::__construct($frame);
+ }
+
+ /**
+ * @param BlockFrameDecorator|null $block
+ */
+ function reflow(BlockFrameDecorator $block = null)
+ {
+ /** @var TableRowFrameDecorator */
+ $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;
+ }
+
+ // 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/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameReflower/TableRowGroup.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameReflower/TableRowGroup.php
new file mode 100644
index 0000000..c8b19aa
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameReflower/TableRowGroup.php
@@ -0,0 +1,71 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf\FrameReflower;
+
+use Dompdf\FrameDecorator\Block as BlockFrameDecorator;
+use Dompdf\FrameDecorator\Table as TableFrameDecorator;
+use Dompdf\FrameDecorator\TableRowGroup as TableRowGroupFrameDecorator;
+
+/**
+ * Reflows table row groups (e.g. tbody tags)
+ *
+ * @package dompdf
+ */
+class TableRowGroup extends AbstractFrameReflower
+{
+
+ /**
+ * TableRowGroup constructor.
+ * @param TableRowGroupFrameDecorator $frame
+ */
+ function __construct(TableRowGroupFrameDecorator $frame)
+ {
+ parent::__construct($frame);
+ }
+
+ /**
+ * @param BlockFrameDecorator|null $block
+ */
+ function reflow(BlockFrameDecorator $block = null)
+ {
+ /** @var TableRowGroupFrameDecorator */
+ $frame = $this->_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/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameReflower/Text.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameReflower/Text.php
new file mode 100644
index 0000000..57439ae
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/FrameReflower/Text.php
@@ -0,0 +1,605 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf\FrameReflower;
+
+use Dompdf\FrameDecorator\Block as BlockFrameDecorator;
+use Dompdf\FrameDecorator\Inline as InlineFrameDecorator;
+use Dompdf\FrameDecorator\Text as TextFrameDecorator;
+use Dompdf\FontMetrics;
+use Dompdf\Helpers;
+
+/**
+ * Reflows text frames.
+ *
+ * @package dompdf
+ */
+class Text extends AbstractFrameReflower
+{
+ /**
+ * PHP string representation of HTML entity <shy>
+ */
+ 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 <wbr>
+ 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/library/vendor/dompdf/vendor/dompdf/dompdf/src/Helpers.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Helpers.php
new file mode 100644
index 0000000..ba78515
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Helpers.php
@@ -0,0 +1,1093 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf;
+
+class Helpers
+{
+ /**
+ * print_r wrapper for html/cli output
+ *
+ * Wraps print_r() output in < pre > 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 "<pre>" . print_r($mixed, true) . "</pre>";
+ }
+
+ if (php_sapi_name() !== "cli") {
+ echo "<pre>";
+ }
+
+ print_r($mixed);
+
+ if (php_sapi_name() !== "cli") {
+ echo "</pre>";
+ } 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<mime>[a-z0-9\/+-.]+)(;charset=(?P<charset>[a-z0-9-])+)?(?P<base64>;base64)?\,(?P<data>.*)?/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, "<svg") !== false) {
+ $doc = new \Svg\Document();
+ $doc->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/library/vendor/dompdf/vendor/dompdf/dompdf/src/Image/Cache.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Image/Cache.php
new file mode 100644
index 0000000..f337bbb
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Image/Cache.php
@@ -0,0 +1,254 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf\Image;
+
+use Dompdf\Options;
+use Dompdf\Helpers;
+use Dompdf\Exception\ImageException;
+
+/**
+ * Static class that resolves image urls and downloads and caches
+ * remote images if required.
+ *
+ * @package dompdf
+ */
+class Cache
+{
+ /**
+ * Array of downloaded images. Cached so that identical images are
+ * not needlessly downloaded.
+ *
+ * @var array
+ */
+ protected static $_cache = [];
+
+ /**
+ * @var array
+ */
+ protected static $tempImages = [];
+
+ /**
+ * The url to the "broken image" used when images can't be loaded
+ *
+ * @var string
+ */
+ public static $broken_image = "data:image/svg+xml;charset=utf8,%3C?xml version='1.0'?%3E%3Csvg width='64' height='64' xmlns='http://www.w3.org/2000/svg'%3E%3Cg%3E%3Crect stroke='%23666666' id='svg_1' height='60.499994' width='60.166667' y='1.666669' x='1.999998' stroke-width='1.5' fill='none'/%3E%3Cline stroke-linecap='null' stroke-linejoin='null' id='svg_3' y2='59.333253' x2='59.749916' y1='4.333415' x1='4.250079' stroke-width='1.5' stroke='%23999999' fill='none'/%3E%3Cline stroke-linecap='null' stroke-linejoin='null' id='svg_4' y2='59.999665' x2='4.062838' y1='3.750342' x1='60.062164' stroke-width='1.5' stroke='%23999999' fill='none'/%3E%3C/g%3E%3C/svg%3E";
+
+ public static $error_message = "Image not found or type unknown";
+
+ /**
+ * Resolve and fetch an image for use.
+ *
+ * @param string $url The url of the image
+ * @param string $protocol Default protocol if none specified in $url
+ * @param string $host Default host if none specified in $url
+ * @param string $base_path Default path if none specified in $url
+ * @param Options $options An instance of Dompdf\Options
+ *
+ * @return array An array with three elements: The local path to the image, the image
+ * extension, and an error message if the image could not be cached
+ */
+ static function resolve_url($url, $protocol, $host, $base_path, Options $options)
+ {
+ $tempfile = null;
+ $resolved_url = null;
+ $type = null;
+ $message = null;
+
+ try {
+ $full_url = Helpers::build_url($protocol, $host, $base_path, $url);
+
+ if ($full_url === null) {
+ throw new ImageException("Unable to parse image URL $url.", E_WARNING);
+ }
+
+ $parsed_url = Helpers::explode_url($full_url);
+ $protocol = strtolower($parsed_url["protocol"]);
+ $is_data_uri = strpos($protocol, "data:") === 0;
+
+ if (!$is_data_uri) {
+ $allowed_protocols = $options->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/library/vendor/dompdf/vendor/dompdf/dompdf/src/JavascriptEmbedder.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/JavascriptEmbedder.php
new file mode 100644
index 0000000..f4b9bc2
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/JavascriptEmbedder.php
@@ -0,0 +1,51 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf;
+
+/**
+ * Embeds Javascript into the PDF document
+ *
+ * @package dompdf
+ */
+class JavascriptEmbedder
+{
+
+ /**
+ * @var Dompdf
+ */
+ protected $_dompdf;
+
+ /**
+ * JavascriptEmbedder constructor.
+ *
+ * @param Dompdf $dompdf
+ */
+ public function __construct(Dompdf $dompdf)
+ {
+ $this->_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/library/vendor/dompdf/vendor/dompdf/dompdf/src/LineBox.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/LineBox.php
new file mode 100644
index 0000000..11b83c1
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/LineBox.php
@@ -0,0 +1,412 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf;
+
+use Dompdf\FrameDecorator\AbstractFrameDecorator;
+use Dompdf\FrameDecorator\Block;
+use Dompdf\FrameDecorator\ListBullet;
+use Dompdf\FrameDecorator\Page;
+use Dompdf\FrameReflower\Text as TextFrameReflower;
+use Dompdf\Positioner\Inline as InlinePositioner;
+
+/**
+ * The line box class
+ *
+ * This class represents a line box
+ * http://www.w3.org/TR/CSS2/visuren.html#line-box
+ *
+ * @package dompdf
+ */
+class LineBox
+{
+
+ /**
+ * @var Block
+ */
+ protected $_block_frame;
+
+ /**
+ * @var AbstractFrameDecorator[]
+ */
+ protected $_frames = [];
+
+ /**
+ * @var ListBullet[]
+ */
+ protected $list_markers = [];
+
+ /**
+ * @var int
+ */
+ public $wc = 0;
+
+ /**
+ * @var float
+ */
+ public $y = null;
+
+ /**
+ * @var float
+ */
+ public $w = 0.0;
+
+ /**
+ * @var float
+ */
+ public $h = 0.0;
+
+ /**
+ * @var float
+ */
+ public $left = 0.0;
+
+ /**
+ * @var float
+ */
+ public $right = 0.0;
+
+ /**
+ * @var AbstractFrameDecorator
+ */
+ public $tallest_frame = null;
+
+ /**
+ * @var bool[]
+ */
+ public $floating_blocks = [];
+
+ /**
+ * @var bool
+ */
+ public $br = false;
+
+ /**
+ * Whether the line box contains any inline-positioned frames.
+ *
+ * @var bool
+ */
+ public $inline = false;
+
+ /**
+ * Class constructor
+ *
+ * @param Block $frame the Block containing this line
+ * @param int $y
+ */
+ public function __construct(Block $frame, $y = 0)
+ {
+ $this->_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<AbstractFrameDecorator>
+ */
+ 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/library/vendor/dompdf/vendor/dompdf/dompdf/src/Options.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Options.php
new file mode 100644
index 0000000..de127d2
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Options.php
@@ -0,0 +1,1159 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf;
+
+class Options
+{
+ /**
+ * The root of your DOMPDF installation
+ *
+ * @var string
+ */
+ private $rootDir;
+
+ /**
+ * The location of a temporary directory.
+ *
+ * The directory specified must be writable by the executing process.
+ * The temporary directory is required to download remote images and when
+ * using the PFDLib back end.
+ *
+ * @var string
+ */
+ private $tempDir;
+
+ /**
+ * The location of the DOMPDF font directory
+ *
+ * The location of the directory where DOMPDF will store fonts and font metrics
+ * Note: This directory must exist and be writable by the executing process.
+ *
+ * @var string
+ */
+ private $fontDir;
+
+ /**
+ * The location of the DOMPDF font cache directory
+ *
+ * This directory contains the cached font metrics for the fonts used by DOMPDF.
+ * This directory can be the same as $fontDir
+ *
+ * Note: This directory must exist and be writable by the executing process.
+ *
+ * @var string
+ */
+ private $fontCache;
+
+ /**
+ * dompdf's "chroot"
+ *
+ * Utilized by Dompdf's default file:// protocol URI validation rule.
+ * All local files opened by dompdf must be in a subdirectory of the directory
+ * or directories specified by this option.
+ * DO NOT set this value to '/' since this could allow an attacker to use dompdf to
+ * read any files on the server. This should be an absolute path.
+ *
+ * ==== IMPORTANT ====
+ * 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 array
+ */
+ private $chroot;
+
+ /**
+ * Protocol whitelist
+ *
+ * Protocols and PHP wrappers allowed in URIs, and the validation rules
+ * that determine if a resouce may be loaded. Full support is not guaranteed
+ * for the protocols/wrappers specified
+ * by this array.
+ *
+ * @var array
+ */
+ private $allowedProtocols = [
+ "file://" => ["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 <script type="text/php"> ... </script> 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 <script type="text/javascript"> ... </script>
+ * 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/library/vendor/dompdf/vendor/dompdf/dompdf/src/PhpEvaluator.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/PhpEvaluator.php
new file mode 100644
index 0000000..4a46555
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/PhpEvaluator.php
@@ -0,0 +1,62 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf;
+
+/**
+ * Executes inline PHP code during the rendering process
+ *
+ * @package dompdf
+ */
+class PhpEvaluator
+{
+
+ /**
+ * @var Canvas
+ */
+ protected $_canvas;
+
+ /**
+ * PhpEvaluator constructor.
+ * @param Canvas $canvas
+ */
+ public function __construct(Canvas $canvas)
+ {
+ $this->_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/library/vendor/dompdf/vendor/dompdf/dompdf/src/Positioner/Absolute.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Positioner/Absolute.php
new file mode 100644
index 0000000..2df9a74
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Positioner/Absolute.php
@@ -0,0 +1,128 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf\Positioner;
+
+use Dompdf\FrameDecorator\AbstractFrameDecorator;
+use Dompdf\FrameReflower\Block;
+
+/**
+ * Positions absolutely positioned frames
+ */
+class Absolute extends AbstractPositioner
+{
+
+ /**
+ * @param AbstractFrameDecorator $frame
+ */
+ function position(AbstractFrameDecorator $frame): void
+ {
+ if ($frame->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/library/vendor/dompdf/vendor/dompdf/dompdf/src/Positioner/AbstractPositioner.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Positioner/AbstractPositioner.php
new file mode 100644
index 0000000..a75c09f
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Positioner/AbstractPositioner.php
@@ -0,0 +1,48 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf\Positioner;
+
+use Dompdf\FrameDecorator\AbstractFrameDecorator;
+
+/**
+ * Base AbstractPositioner class
+ *
+ * Defines positioner interface
+ *
+ * @package dompdf
+ */
+abstract class AbstractPositioner
+{
+
+ /**
+ * @param AbstractFrameDecorator $frame
+ */
+ abstract function position(AbstractFrameDecorator $frame): void;
+
+ /**
+ * @param AbstractFrameDecorator $frame
+ * @param float $offset_x
+ * @param float $offset_y
+ * @param bool $ignore_self
+ */
+ function move(
+ AbstractFrameDecorator $frame,
+ float $offset_x,
+ float $offset_y,
+ bool $ignore_self = false
+ ): void {
+ [$x, $y] = $frame->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/library/vendor/dompdf/vendor/dompdf/dompdf/src/Positioner/Block.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Positioner/Block.php
new file mode 100644
index 0000000..e6f65ea
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Positioner/Block.php
@@ -0,0 +1,40 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf\Positioner;
+
+use Dompdf\FrameDecorator\AbstractFrameDecorator;
+
+/**
+ * Positions block frames
+ *
+ * @package dompdf
+ */
+class Block extends AbstractPositioner
+{
+
+ function position(AbstractFrameDecorator $frame): void
+ {
+ $style = $frame->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/library/vendor/dompdf/vendor/dompdf/dompdf/src/Positioner/Fixed.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Positioner/Fixed.php
new file mode 100644
index 0000000..13eb9e9
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Positioner/Fixed.php
@@ -0,0 +1,92 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf\Positioner;
+
+use Dompdf\FrameDecorator\AbstractFrameDecorator;
+use Dompdf\FrameReflower\Block;
+
+/**
+ * Positions fixely positioned frames
+ */
+class Fixed extends Absolute
+{
+
+ /**
+ * @param AbstractFrameDecorator $frame
+ */
+ function position(AbstractFrameDecorator $frame): void
+ {
+ if ($frame->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/library/vendor/dompdf/vendor/dompdf/dompdf/src/Positioner/Inline.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Positioner/Inline.php
new file mode 100644
index 0000000..c0bdaf2
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Positioner/Inline.php
@@ -0,0 +1,52 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf\Positioner;
+
+use Dompdf\FrameDecorator\AbstractFrameDecorator;
+use Dompdf\FrameDecorator\Inline as InlineFrameDecorator;
+use Dompdf\Exception;
+use Dompdf\Helpers;
+
+/**
+ * Positions inline frames
+ *
+ * @package dompdf
+ */
+class Inline extends AbstractPositioner
+{
+
+ /**
+ * @param AbstractFrameDecorator $frame
+ * @throws Exception
+ */
+ function position(AbstractFrameDecorator $frame): void
+ {
+ // Find our nearest block level parent and access its lines property
+ $block = $frame->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/library/vendor/dompdf/vendor/dompdf/dompdf/src/Positioner/ListBullet.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Positioner/ListBullet.php
new file mode 100644
index 0000000..081d594
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Positioner/ListBullet.php
@@ -0,0 +1,42 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf\Positioner;
+
+use Dompdf\FrameDecorator\AbstractFrameDecorator;
+use Dompdf\FrameDecorator\ListBullet as ListBulletFrameDecorator;
+
+/**
+ * Positions list bullets
+ *
+ * @package dompdf
+ */
+class ListBullet extends AbstractPositioner
+{
+ /**
+ * @param ListBulletFrameDecorator $frame
+ */
+ function position(AbstractFrameDecorator $frame): void
+ {
+ // List markers are positioned to the left of the border edge of their
+ // parent element (FIXME: right for RTL)
+ $parent = $frame->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/library/vendor/dompdf/vendor/dompdf/dompdf/src/Positioner/NullPositioner.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Positioner/NullPositioner.php
new file mode 100644
index 0000000..6ad425c
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Positioner/NullPositioner.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf\Positioner;
+
+use Dompdf\FrameDecorator\AbstractFrameDecorator;
+
+/**
+ * Dummy positioner
+ *
+ * @package dompdf
+ */
+class NullPositioner extends AbstractPositioner
+{
+
+ /**
+ * @param AbstractFrameDecorator $frame
+ */
+ function position(AbstractFrameDecorator $frame): void
+ {
+ return;
+ }
+}
diff --git a/library/vendor/dompdf/vendor/dompdf/dompdf/src/Positioner/TableCell.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Positioner/TableCell.php
new file mode 100644
index 0000000..1a6ac62
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Positioner/TableCell.php
@@ -0,0 +1,29 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf\Positioner;
+
+use Dompdf\FrameDecorator\AbstractFrameDecorator;
+use Dompdf\FrameDecorator\Table;
+
+/**
+ * Positions table cells
+ *
+ * @package dompdf
+ */
+class TableCell extends AbstractPositioner
+{
+
+ /**
+ * @param AbstractFrameDecorator $frame
+ */
+ function position(AbstractFrameDecorator $frame): void
+ {
+ $table = Table::find_parent_table($frame);
+ $cellmap = $table->get_cellmap();
+ $frame->set_position($cellmap->get_frame_position($frame));
+ }
+}
diff --git a/library/vendor/dompdf/vendor/dompdf/dompdf/src/Positioner/TableRow.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Positioner/TableRow.php
new file mode 100644
index 0000000..79c0fcf
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Positioner/TableRow.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf\Positioner;
+
+use Dompdf\FrameDecorator\AbstractFrameDecorator;
+
+/**
+ * Positions table rows
+ *
+ * @package dompdf
+ */
+class TableRow extends AbstractPositioner
+{
+
+ /**
+ * @param AbstractFrameDecorator $frame
+ */
+ function position(AbstractFrameDecorator $frame): void
+ {
+ $cb = $frame->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/library/vendor/dompdf/vendor/dompdf/dompdf/src/Renderer.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Renderer.php
new file mode 100644
index 0000000..e3cacc1
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Renderer.php
@@ -0,0 +1,291 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf;
+
+use Dompdf\Renderer\AbstractRenderer;
+use Dompdf\Renderer\Block;
+use Dompdf\Renderer\Image;
+use Dompdf\Renderer\ListBullet;
+use Dompdf\Renderer\TableCell;
+use Dompdf\Renderer\TableRowGroup;
+use Dompdf\Renderer\Text;
+
+/**
+ * Concrete renderer
+ *
+ * Instantiates several specific renderers in order to render any given frame.
+ *
+ * @package dompdf
+ */
+class Renderer extends AbstractRenderer
+{
+
+ /**
+ * Array of renderers for specific frame types
+ *
+ * @var AbstractRenderer[]
+ */
+ protected $_renderers;
+
+ /**
+ * Cache of the callbacks array
+ *
+ * @var array
+ */
+ private $_callbacks;
+
+ /**
+ * Advance the canvas to the next page
+ */
+ function new_page()
+ {
+ $this->_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/library/vendor/dompdf/vendor/dompdf/dompdf/src/Renderer/AbstractRenderer.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Renderer/AbstractRenderer.php
new file mode 100644
index 0000000..8b01ef8
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Renderer/AbstractRenderer.php
@@ -0,0 +1,1244 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf\Renderer;
+
+use Dompdf\Adapter\CPDF;
+use Dompdf\Css\Color;
+use Dompdf\Css\Style;
+use Dompdf\Dompdf;
+use Dompdf\Helpers;
+use Dompdf\Frame;
+use Dompdf\Image\Cache;
+
+/**
+ * Base renderer class
+ *
+ * @package dompdf
+ */
+abstract class AbstractRenderer
+{
+
+ /**
+ * Rendering backend
+ *
+ * @var \Dompdf\Canvas
+ */
+ protected $_canvas;
+
+ /**
+ * Current dompdf instance
+ *
+ * @var Dompdf
+ */
+ protected $_dompdf;
+
+ /**
+ * Class constructor
+ *
+ * @param Dompdf $dompdf The current dompdf instance
+ */
+ function __construct(Dompdf $dompdf)
+ {
+ $this->_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/library/vendor/dompdf/vendor/dompdf/dompdf/src/Renderer/Block.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Renderer/Block.php
new file mode 100644
index 0000000..99db192
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Renderer/Block.php
@@ -0,0 +1,88 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf\Renderer;
+
+use Dompdf\Frame;
+use Dompdf\FrameDecorator\Block as BlockFrameDecorator;
+use Dompdf\Helpers;
+
+/**
+ * Renders block frames
+ *
+ * @package dompdf
+ */
+class Block extends AbstractRenderer
+{
+
+ /**
+ * @param Frame $frame
+ */
+ function render(Frame $frame)
+ {
+ $style = $frame->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/library/vendor/dompdf/vendor/dompdf/dompdf/src/Renderer/Image.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Renderer/Image.php
new file mode 100644
index 0000000..61f684f
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Renderer/Image.php
@@ -0,0 +1,90 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf\Renderer;
+
+use Dompdf\Frame;
+use Dompdf\FrameDecorator\Image as ImageFrameDecorator;
+use Dompdf\Image\Cache;
+
+/**
+ * Image renderer
+ *
+ * @package dompdf
+ */
+class Image extends Block
+{
+ /**
+ * @param ImageFrameDecorator $frame
+ */
+ function render(Frame $frame)
+ {
+ $style = $frame->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/library/vendor/dompdf/vendor/dompdf/dompdf/src/Renderer/Inline.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Renderer/Inline.php
new file mode 100644
index 0000000..ad35464
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Renderer/Inline.php
@@ -0,0 +1,126 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf\Renderer;
+
+use Dompdf\Frame;
+use Dompdf\Helpers;
+
+/**
+ * Renders inline frames
+ *
+ * @package dompdf
+ */
+class Inline extends AbstractRenderer
+{
+ function render(Frame $frame)
+ {
+ if (!$frame->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/library/vendor/dompdf/vendor/dompdf/dompdf/src/Renderer/ListBullet.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Renderer/ListBullet.php
new file mode 100644
index 0000000..2df6696
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Renderer/ListBullet.php
@@ -0,0 +1,235 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf\Renderer;
+
+use Dompdf\Helpers;
+use Dompdf\Frame;
+use Dompdf\FrameDecorator\ListBullet as ListBulletFrameDecorator;
+use Dompdf\FrameDecorator\ListBulletImage;
+use Dompdf\Image\Cache;
+
+/**
+ * Renders list bullets
+ *
+ * @package dompdf
+ */
+class ListBullet extends AbstractRenderer
+{
+ /**
+ * @param $type
+ * @return mixed|string
+ */
+ static function get_counter_chars($type)
+ {
+ static $cache = [];
+
+ if (isset($cache[$type])) {
+ return $cache[$type];
+ }
+
+ $uppercase = false;
+ $text = "";
+
+ switch ($type) {
+ case "decimal-leading-zero":
+ case "decimal":
+ case "1":
+ return "0123456789";
+
+ case "upper-alpha":
+ case "upper-latin":
+ case "A":
+ $uppercase = true;
+ case "lower-alpha":
+ case "lower-latin":
+ case "a":
+ $text = "abcdefghijklmnopqrstuvwxyz";
+ break;
+
+ case "upper-roman":
+ case "I":
+ $uppercase = true;
+ case "lower-roman":
+ case "i":
+ $text = "ivxlcdm";
+ break;
+
+ case "lower-greek":
+ for ($i = 0; $i < 24; $i++) {
+ $text .= Helpers::unichr($i + 944);
+ }
+ break;
+ }
+
+ if ($uppercase) {
+ $text = strtoupper($text);
+ }
+
+ return $cache[$type] = "$text.";
+ }
+
+ /**
+ * @param int $n
+ * @param string $type
+ * @param int|null $pad
+ *
+ * @return string
+ */
+ private function make_counter($n, $type, $pad = null)
+ {
+ $n = intval($n);
+ $text = "";
+ $uppercase = false;
+
+ switch ($type) {
+ case "decimal-leading-zero":
+ case "decimal":
+ case "1":
+ if ($pad) {
+ $text = str_pad($n, $pad, "0", STR_PAD_LEFT);
+ } else {
+ $text = $n;
+ }
+ break;
+
+ case "upper-alpha":
+ case "upper-latin":
+ case "A":
+ $uppercase = true;
+ case "lower-alpha":
+ case "lower-latin":
+ case "a":
+ $text = chr((($n - 1) % 26) + ord('a'));
+ break;
+
+ case "upper-roman":
+ case "I":
+ $uppercase = true;
+ case "lower-roman":
+ case "i":
+ $text = Helpers::dec2roman($n);
+ break;
+
+ case "lower-greek":
+ $text = Helpers::unichr($n + 944);
+ break;
+ }
+
+ if ($uppercase) {
+ $text = strtoupper($text);
+ }
+
+ return "$text.";
+ }
+
+ /**
+ * @param ListBulletFrameDecorator $frame
+ */
+ function render(Frame $frame)
+ {
+ $li = $frame->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/library/vendor/dompdf/vendor/dompdf/dompdf/src/Renderer/TableCell.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Renderer/TableCell.php
new file mode 100644
index 0000000..cbbffd3
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Renderer/TableCell.php
@@ -0,0 +1,188 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf\Renderer;
+
+use Dompdf\Frame;
+use Dompdf\FrameDecorator\Table;
+
+/**
+ * Renders table cells
+ *
+ * @package dompdf
+ */
+class TableCell extends Block
+{
+
+ /**
+ * @param Frame $frame
+ */
+ function render(Frame $frame)
+ {
+ $style = $frame->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/library/vendor/dompdf/vendor/dompdf/dompdf/src/Renderer/TableRowGroup.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Renderer/TableRowGroup.php
new file mode 100644
index 0000000..295ccde
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Renderer/TableRowGroup.php
@@ -0,0 +1,40 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf\Renderer;
+
+use Dompdf\Frame;
+
+/**
+ * Renders block frames
+ *
+ * @package dompdf
+ */
+class TableRowGroup extends Block
+{
+
+ /**
+ * @param Frame $frame
+ */
+ function render(Frame $frame)
+ {
+ $style = $frame->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/library/vendor/dompdf/vendor/dompdf/dompdf/src/Renderer/Text.php b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Renderer/Text.php
new file mode 100644
index 0000000..e7baa0a
--- /dev/null
+++ b/library/vendor/dompdf/vendor/dompdf/dompdf/src/Renderer/Text.php
@@ -0,0 +1,158 @@
+<?php
+/**
+ * @package dompdf
+ * @link https://github.com/dompdf/dompdf
+ * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
+ */
+namespace Dompdf\Renderer;
+
+use Dompdf\Adapter\CPDF;
+use Dompdf\Frame;
+
+/**
+ * Renders text frames
+ *
+ * @package dompdf
+ */
+class Text extends AbstractRenderer
+{
+ /** Thickness of underline. Screen: 0.08, print: better less, e.g. 0.04 */
+ const DECO_THICKNESS = 0.02;
+
+ //Tweaking if $base and $descent are not accurate.
+ //Check method_exists( $this->_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/library/vendor/dompdf/vendor/masterminds/html5/CREDITS b/library/vendor/dompdf/vendor/masterminds/html5/CREDITS
new file mode 100644
index 0000000..c2dbc4b
--- /dev/null
+++ b/library/vendor/dompdf/vendor/masterminds/html5/CREDITS
@@ -0,0 +1,11 @@
+Matt Butcher [technosophos] <technosophos@gmail.com> (lead)
+Matt Farina [mattfarina] <matt@mattfarina.com> (lead)
+Asmir Mustafic [goetas] <goetas@lignano.it> (contributor)
+Edward Z. Yang [ezyang] <ezyang@mit.edu> (contributor)
+Geoffrey Sneddon [gsnedders] <geoffers@gmail.com> (contributor)
+Kukhar Vasily [ngreduce] <ngreduce@gmail.com> (contributor)
+Rune Christensen [MrElectronic] <mrelectronic@example.com> (contributor)
+Mišo Belica [miso-belica] <miso-belica@example.com> (contributor)
+Asmir Mustafic [goetas] <goetas@example.com> (contributor)
+KITAITI Makoto [KitaitiMakoto] <KitaitiMakoto@example.com> (contributor)
+Jacob Floyd [cognifloyd] <cognifloyd@gmail.com> (contributor)
diff --git a/library/vendor/dompdf/vendor/masterminds/html5/LICENSE.txt b/library/vendor/dompdf/vendor/masterminds/html5/LICENSE.txt
new file mode 100644
index 0000000..3c275b5
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/masterminds/html5/README.md b/library/vendor/dompdf/vendor/masterminds/html5/README.md
new file mode 100644
index 0000000..b1ca1e3
--- /dev/null
+++ b/library/vendor/dompdf/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
+<?php
+// Assuming you installed from Composer:
+require "vendor/autoload.php";
+
+use Masterminds\HTML5;
+
+// An example HTML document:
+$html = <<< 'HERE'
+ <html>
+ <head>
+ <title>TEST</title>
+ </head>
+ <body id='foo'>
+ <h1>Hello World</h1>
+ <p>This is a test of the HTML5 parser.</p>
+ </body>
+ </html>
+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: &lt;foo&gt;CHILDREN&lt;/foo&gt;
+- A tag that cannot have content: &lt;foo&gt; (no closing tag)
+- A tag that could have content, but doesn't: &lt;foo&gt;&lt;/foo&gt;
+
+## 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('<t:tag xmlns:t="http://www.example.com"/>');
+
+$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('<t:tag/>');
+
+$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/library/vendor/dompdf/vendor/masterminds/html5/UPGRADING.md b/library/vendor/dompdf/vendor/masterminds/html5/UPGRADING.md
new file mode 100644
index 0000000..76e3a19
--- /dev/null
+++ b/library/vendor/dompdf/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('<html>....');
+ \HTML5::saveHTML($dom);
+
+ After:
+
+ use Masterminds\HTML5;
+
+ $html5 = new HTML5();
+
+ $dom = $html5->loadHTML('<html>....');
+ echo $html5->saveHTML($dom);
+
+
diff --git a/library/vendor/dompdf/vendor/masterminds/html5/bin/entities.php b/library/vendor/dompdf/vendor/masterminds/html5/bin/entities.php
new file mode 100644
index 0000000..56323a3
--- /dev/null
+++ b/library/vendor/dompdf/vendor/masterminds/html5/bin/entities.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Fetch the entities.json file and convert to PHP datastructure.
+ */
+
+// The URL to the official entities JSON file.
+$ENTITIES_URL = 'http://www.w3.org/TR/2012/CR-html5-20121217/entities.json';
+
+$payload = file_get_contents($ENTITIES_URL);
+$json = json_decode($payload);
+
+$table = array();
+foreach ($json as $name => $obj) {
+ $sname = substr($name, 1, -1);
+ $table[$sname] = $obj->characters;
+}
+
+echo '<?php
+namespace Masterminds\\HTML5;
+/** Entity lookup tables. This class is automatically generated. */
+class Entities {
+ public static $byName = ';
+var_export($table);
+echo ';
+}' . PHP_EOL;
+//print serialize($table);
diff --git a/library/vendor/dompdf/vendor/masterminds/html5/composer.json b/library/vendor/dompdf/vendor/masterminds/html5/composer.json
new file mode 100644
index 0000000..fb7674e
--- /dev/null
+++ b/library/vendor/dompdf/vendor/masterminds/html5/composer.json
@@ -0,0 +1,42 @@
+{
+ "name": "masterminds/html5",
+ "description": "An HTML5 parser and serializer.",
+ "type": "library",
+ "homepage": "http://masterminds.github.io/html5-php",
+ "license": "MIT",
+ "keywords": ["xml", "html", "html5", "dom", "parser", "serializer", "querypath"],
+ "authors": [
+ {
+ "name": "Matt Butcher",
+ "email": "technosophos@gmail.com"
+ },
+ {
+ "name": "Matt Farina",
+ "email": "matt@mattfarina.com"
+ },
+ {
+ "name": "Asmir Mustafic",
+ "email": "goetas@gmail.com"
+ }
+ ],
+ "require" : {
+ "ext-ctype": "*",
+ "ext-dom": "*",
+ "ext-libxml" : "*",
+ "php" : ">=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/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5.php b/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5.php
new file mode 100644
index 0000000..c857145
--- /dev/null
+++ b/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5.php
@@ -0,0 +1,246 @@
+<?php
+
+namespace Masterminds;
+
+use Masterminds\HTML5\Parser\DOMTreeBuilder;
+use Masterminds\HTML5\Parser\Scanner;
+use Masterminds\HTML5\Parser\Tokenizer;
+use Masterminds\HTML5\Serializer\OutputRules;
+use Masterminds\HTML5\Serializer\Traverser;
+
+/**
+ * This class offers convenience methods for parsing and serializing HTML5.
+ * It is roughly designed to mirror the \DOMDocument native class.
+ */
+class HTML5
+{
+ /**
+ * Global options for the parser and serializer.
+ *
+ * @var array
+ */
+ private $defaultOptions = array(
+ // Whether the serializer should aggressively encode all characters as entities.
+ 'encode_entities' => 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/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Elements.php b/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Elements.php
new file mode 100644
index 0000000..8fe7987
--- /dev/null
+++ b/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Elements.php
@@ -0,0 +1,619 @@
+<?php
+/**
+ * Provide general element functions.
+ */
+
+namespace Masterminds\HTML5;
+
+/**
+ * This class provides general information about HTML5 elements,
+ * including syntactic and semantic issues.
+ * Parsers and serializers can
+ * use this class as a reference point for information about the rules
+ * of various HTML5 elements.
+ *
+ * @todo consider using a bitmask table lookup. There is enough overlap in
+ * naming that this could significantly shrink the size and maybe make it
+ * faster. See the Go teams implementation at https://code.google.com/p/go/source/browse/html/atom.
+ */
+class Elements
+{
+ /**
+ * Indicates an element is described in the specification.
+ */
+ const KNOWN_ELEMENT = 1;
+
+ // From section 8.1.2: "script", "style"
+ // From 8.2.5.4.7 ("in body" insertion mode): "noembed"
+ // From 8.4 "style", "xmp", "iframe", "noembed", "noframes"
+ /**
+ * Indicates the contained text should be processed as raw text.
+ */
+ const TEXT_RAW = 2;
+
+ // From section 8.1.2: "textarea", "title"
+ /**
+ * Indicates the contained text should be processed as RCDATA.
+ */
+ const TEXT_RCDATA = 4;
+
+ /**
+ * Indicates the tag cannot have content.
+ */
+ const VOID_TAG = 8;
+
+ // "address", "article", "aside", "blockquote", "center", "details", "dialog", "dir", "div", "dl",
+ // "fieldset", "figcaption", "figure", "footer", "header", "hgroup", "menu",
+ // "nav", "ol", "p", "section", "summary", "ul"
+ // "h1", "h2", "h3", "h4", "h5", "h6"
+ // "pre", "listing"
+ // "form"
+ // "plaintext"
+ /**
+ * Indicates that if a previous event is for a P tag, that element
+ * should be considered closed.
+ */
+ const AUTOCLOSE_P = 16;
+
+ /**
+ * Indicates that the text inside is plaintext (pre).
+ */
+ const TEXT_PLAINTEXT = 32;
+
+ // See https://developer.mozilla.org/en-US/docs/HTML/Block-level_elements
+ /**
+ * Indicates that the tag is a block.
+ */
+ const BLOCK_TAG = 64;
+
+ /**
+ * Indicates that the tag allows only inline elements as child nodes.
+ */
+ const BLOCK_ONLY_INLINE = 128;
+
+ /**
+ * The HTML5 elements as defined in http://dev.w3.org/html5/markup/elements.html.
+ *
+ * @var array
+ */
+ public static $html5 = array(
+ 'a' => 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/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Entities.php b/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Entities.php
new file mode 100644
index 0000000..0e7227d
--- /dev/null
+++ b/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Entities.php
@@ -0,0 +1,2236 @@
+<?php
+
+namespace Masterminds\HTML5;
+
+/**
+ * Entity lookup tables.
+ * This class is automatically generated.
+ */
+class Entities
+{
+ public static $byName = array(
+ 'Aacute' => 'Ă',
+ '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' => 'ď¬',
+ 'fflig' => 'ff',
+ 'ffllig' => 'ffl',
+ 'Ffr' => '𝔉',
+ 'ffr' => '𝔣',
+ 'filig' => 'ď¬',
+ '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' => 'Äł',
+ '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/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Exception.php b/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Exception.php
new file mode 100644
index 0000000..64e97e6
--- /dev/null
+++ b/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Exception.php
@@ -0,0 +1,10 @@
+<?php
+
+namespace Masterminds\HTML5;
+
+/**
+ * The base exception for the HTML5 project.
+ */
+class Exception extends \Exception
+{
+}
diff --git a/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/InstructionProcessor.php b/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/InstructionProcessor.php
new file mode 100644
index 0000000..33a73fc
--- /dev/null
+++ b/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/InstructionProcessor.php
@@ -0,0 +1,41 @@
+<?php
+/**
+ * A handler for processor instructions.
+ */
+
+namespace Masterminds\HTML5;
+
+/**
+ * Provide an processor to handle embedded instructions.
+ *
+ * XML defines a mechanism for inserting instructions (like PHP) into a
+ * document. These are called "Processor Instructions." The HTML5 parser
+ * provides an opportunity to handle these processor instructions during
+ * the tree-building phase (before the DOM is constructed), which makes
+ * it possible to alter the document as it is being created.
+ *
+ * One could, for example, use this mechanism to execute well-formed PHP
+ * code embedded inside of an HTML5 document.
+ */
+interface InstructionProcessor
+{
+ /**
+ * Process an individual processing instruction.
+ *
+ * The process() function is responsible for doing the following:
+ * - Determining whether $name is an instruction type it can handle.
+ * - Determining what to do with the data passed in.
+ * - Making any subsequent modifications to the DOM by modifying the
+ * DOMElement or its attached DOM tree.
+ *
+ * @param \DOMElement $element The parent element for the current processing instruction.
+ * @param string $name The instruction's name. E.g. `&lt;?php` has the name `php`.
+ * @param string $data All of the data between the opening and closing PI marks.
+ *
+ * @return \DOMElement The element that should be considered "Current". This may just be
+ * the element passed in, but if the processor added more elements,
+ * it may choose to reset the current element to one of the elements
+ * it created. (When in doubt, return the element passed in.)
+ */
+ public function process(\DOMElement $element, $name, $data);
+}
diff --git a/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Parser/CharacterReference.php b/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Parser/CharacterReference.php
new file mode 100644
index 0000000..490b548
--- /dev/null
+++ b/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Parser/CharacterReference.php
@@ -0,0 +1,61 @@
+<?php
+
+namespace Masterminds\HTML5\Parser;
+
+use Masterminds\HTML5\Entities;
+
+/**
+ * Manage entity references.
+ *
+ * This is a simple resolver for HTML5 character reference entitites. See Entities for the list of supported entities.
+ */
+class CharacterReference
+{
+ protected static $numeric_mask = array(
+ 0x0,
+ 0x2FFFF,
+ 0,
+ 0xFFFF,
+ );
+
+ /**
+ * Given a name (e.g. 'amp'), lookup the UTF-8 character ('&').
+ *
+ * @param string $name The name to look up.
+ *
+ * @return string The character sequence. In UTF-8 this may be more than one byte.
+ */
+ public static function lookupName($name)
+ {
+ // Do we really want to return NULL here? or FFFD
+ return isset(Entities::$byName[$name]) ? Entities::$byName[$name] : null;
+ }
+
+ /**
+ * Given a decimal number, return the UTF-8 character.
+ *
+ * @param $int
+ *
+ * @return false|string|string[]|null
+ */
+ public static function lookupDecimal($int)
+ {
+ $entity = '&#' . $int . ';';
+
+ // UNTESTED: This may fail on some planes. Couldn't find full documentation
+ // on the value of the mask array.
+ return mb_decode_numericentity($entity, static::$numeric_mask, 'utf-8');
+ }
+
+ /**
+ * Given a hexidecimal number, return the UTF-8 character.
+ *
+ * @param $hexdec
+ *
+ * @return false|string|string[]|null
+ */
+ public static function lookupHex($hexdec)
+ {
+ return static::lookupDecimal(hexdec($hexdec));
+ }
+}
diff --git a/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Parser/DOMTreeBuilder.php b/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Parser/DOMTreeBuilder.php
new file mode 100644
index 0000000..293d83e
--- /dev/null
+++ b/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Parser/DOMTreeBuilder.php
@@ -0,0 +1,705 @@
+<?php
+
+namespace Masterminds\HTML5\Parser;
+
+use Masterminds\HTML5\Elements;
+use Masterminds\HTML5\InstructionProcessor;
+
+/**
+ * Create an HTML5 DOM tree from events.
+ *
+ * This attempts to create a DOM from events emitted by a parser. This
+ * attempts (but does not guarantee) to up-convert older HTML documents
+ * to HTML5. It does this by applying HTML5's rules, but it will not
+ * change the architecture of the document itself.
+ *
+ * Many of the error correction and quirks features suggested in the specification
+ * are implemented herein; however, not all of them are. Since we do not
+ * assume a graphical user agent, no presentation-specific logic is conducted
+ * during tree building.
+ *
+ * FIXME: The present tree builder does not exactly follow the state machine rules
+ * for insert modes as outlined in the HTML5 spec. The processor needs to be
+ * re-written to accomodate this. See, for example, the Go language HTML5
+ * parser.
+ */
+class DOMTreeBuilder implements EventHandler
+{
+ /**
+ * Defined in http://www.w3.org/TR/html51/infrastructure.html#html-namespace-0.
+ */
+ const NAMESPACE_HTML = 'http://www.w3.org/1999/xhtml';
+
+ const NAMESPACE_MATHML = 'http://www.w3.org/1998/Math/MathML';
+
+ const NAMESPACE_SVG = 'http://www.w3.org/2000/svg';
+
+ const NAMESPACE_XLINK = 'http://www.w3.org/1999/xlink';
+
+ const NAMESPACE_XML = 'http://www.w3.org/XML/1998/namespace';
+
+ const NAMESPACE_XMLNS = 'http://www.w3.org/2000/xmlns/';
+
+ const OPT_DISABLE_HTML_NS = 'disable_html_ns';
+
+ const OPT_TARGET_DOC = 'target_document';
+
+ const OPT_IMPLICIT_NS = 'implicit_namespaces';
+
+ /**
+ * Holds the HTML5 element names that causes a namespace switch.
+ *
+ * @var array
+ */
+ protected $nsRoots = array(
+ 'html' => 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 <invalid>.");
+ $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/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Parser/EventHandler.php b/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Parser/EventHandler.php
new file mode 100644
index 0000000..9893a71
--- /dev/null
+++ b/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Parser/EventHandler.php
@@ -0,0 +1,114 @@
+<?php
+
+namespace Masterminds\HTML5\Parser;
+
+/**
+ * Standard events for HTML5.
+ *
+ * This is roughly analogous to a SAX2 or expat-style interface.
+ * However, it is tuned specifically for HTML5, according to section 8
+ * of the HTML5 specification.
+ *
+ * An event handler receives parser events. For a concrete
+ * implementation, see DOMTreeBuilder.
+ *
+ * Quirks support in the parser is limited to close-in syntax (malformed
+ * tags or attributes). Higher order syntax and semantic issues with a
+ * document (e.g. mismatched tags, illegal nesting, etc.) are the
+ * responsibility of the event handler implementation.
+ *
+ * See HTML5 spec section 8.2.4
+ */
+interface EventHandler
+{
+ const DOCTYPE_NONE = 0;
+
+ const DOCTYPE_PUBLIC = 1;
+
+ const DOCTYPE_SYSTEM = 2;
+
+ /**
+ * A doctype declaration.
+ *
+ * @param string $name The name of the root element.
+ * @param int $idType One of DOCTYPE_NONE, DOCTYPE_PUBLIC, or DOCTYPE_SYSTEM
+ * @param string $id The identifier. For DOCTYPE_PUBLIC, this is the public ID. If DOCTYPE_SYSTEM,
+ * then this is a system ID.
+ * @param bool $quirks Indicates whether the builder should enter quirks mode.
+ */
+ public function doctype($name, $idType = 0, $id = null, $quirks = false);
+
+ /**
+ * A start tag.
+ *
+ * IMPORTANT: The parser watches the return value of this event. If this returns
+ * an integer, the parser will switch TEXTMODE patters according to the int.
+ *
+ * This is how the Tree Builder can tell the Tokenizer when a certain tag should
+ * cause the parser to go into RAW text mode.
+ *
+ * The HTML5 standard requires that the builder is the one that initiates this
+ * step, and this is the only way short of a circular reference that we can
+ * do that.
+ *
+ * Example: if a startTag even for a `script` name is fired, and the startTag()
+ * implementation returns Tokenizer::TEXTMODE_RAW, then the tokenizer will
+ * switch into RAW text mode and consume data until it reaches a closing
+ * `script` tag.
+ *
+ * The textmode is automatically reset to Tokenizer::TEXTMODE_NORMAL when the
+ * closing tag is encounter. **This behavior may change.**
+ *
+ * @param string $name The tag name.
+ * @param array $attributes An array with all of the tag's attributes.
+ * @param bool $selfClosing An indicator of whether or not this tag is self-closing (<foo/>).
+ *
+ * @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/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Parser/FileInputStream.php b/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Parser/FileInputStream.php
new file mode 100644
index 0000000..b081ed9
--- /dev/null
+++ b/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Parser/FileInputStream.php
@@ -0,0 +1,33 @@
+<?php
+
+namespace Masterminds\HTML5\Parser;
+
+/**
+ * The FileInputStream loads a file to be parsed.
+ *
+ * So right now we read files into strings and then process the
+ * string. We chose to do this largely for the sake of expediency of
+ * development, and also because we could optimize toward processing
+ * arbitrarily large chunks of the input. But in the future, we'd
+ * really like to rewrite this class to efficiently handle lower level
+ * stream reads (and thus efficiently handle large documents).
+ *
+ * @deprecated since 2.4, to remove in 3.0. Use a string in the scanner instead.
+ */
+class FileInputStream extends StringInputStream implements InputStream
+{
+ /**
+ * Load a file input stream.
+ *
+ * @param string $data The file or url path to load.
+ * @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 = '')
+ {
+ // Get the contents of the file.
+ $content = file_get_contents($data);
+
+ parent::__construct($content, $encoding, $debug);
+ }
+}
diff --git a/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Parser/InputStream.php b/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Parser/InputStream.php
new file mode 100644
index 0000000..ff4ef22
--- /dev/null
+++ b/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Parser/InputStream.php
@@ -0,0 +1,87 @@
+<?php
+
+namespace Masterminds\HTML5\Parser;
+
+/**
+ * Interface for stream readers.
+ *
+ * The parser only reads from streams. Various input sources can write
+ * an adapater to this InputStream.
+ *
+ * Currently provided InputStream implementations include
+ * FileInputStream and StringInputStream.
+ *
+ * @deprecated since 2.4, to remove in 3.0. Use a string in the scanner instead.
+ */
+interface InputStream extends \Iterator
+{
+ /**
+ * Returns the current line that is being consumed.
+ *
+ * TODO: Move this to the scanner.
+ */
+ public function 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.
+ *
+ * @TODO Move this to the scanner.
+ *
+ * @return int The column number.
+ */
+ public function columnOffset();
+
+ /**
+ * Get all characters until EOF.
+ *
+ * This consumes characters until the EOF.
+ */
+ public function remainingChars();
+
+ /**
+ * 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.
+ *
+ * @see strcspn
+ *
+ * @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);
+
+ /**
+ * Returns the string so long as $bytes matches.
+ *
+ * Matches as far as possible with a certain set of bytes
+ * and returns the matched substring.
+ *
+ * @see strspn
+ *
+ * @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.
+ */
+ public function charsWhile($bytes, $max = null);
+
+ /**
+ * Unconsume one character.
+ *
+ * @param int $howMany The number of characters to move the pointer back.
+ */
+ public function unconsume($howMany = 1);
+
+ /**
+ * Retrieve the next character without advancing the pointer.
+ */
+ public function peek();
+}
diff --git a/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Parser/ParseError.php b/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Parser/ParseError.php
new file mode 100644
index 0000000..640e516
--- /dev/null
+++ b/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Parser/ParseError.php
@@ -0,0 +1,10 @@
+<?php
+
+namespace Masterminds\HTML5\Parser;
+
+/**
+ * Emit when the parser has an error.
+ */
+class ParseError extends \Exception
+{
+}
diff --git a/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Parser/README.md b/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Parser/README.md
new file mode 100644
index 0000000..9f92957
--- /dev/null
+++ b/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Parser/README.md
@@ -0,0 +1,53 @@
+# The Parser Model
+
+The parser model here follows the model in section
+[8.2.1](http://www.w3.org/TR/2012/CR-html5-20121217/syntax.html#parsing)
+of the HTML5 specification, though we do not assume a networking layer.
+
+ [ InputStream ] // Generic support for reading input.
+ ||
+ [ Scanner ] // Breaks down the stream into characters.
+ ||
+ [ Tokenizer ] // Groups characters into syntactic
+ ||
+ [ Tree Builder ] // Organizes units into a tree of objects
+ ||
+ [ DOM Document ] // The final state of the parsed document.
+
+
+## InputStream
+
+This is an interface with at least two concrete implementations:
+
+- StringInputStream: Reads an HTML5 string.
+- FileInputStream: Reads an HTML5 file.
+
+## Scanner
+
+This is a mechanical piece of the parser.
+
+## Tokenizer
+
+This follows section 8.4 of the HTML5 spec. It is (roughly) a recursive
+descent parser. (Though there are plenty of optimizations that are less
+than purely functional.
+
+## EventHandler and DOMTree
+
+EventHandler is the interface for tree builders. Since not all
+implementations will necessarily build trees, we've chosen a more
+generic name.
+
+The event handler emits tokens during tokenization.
+
+The DOMTree is an event handler that builds a DOM tree. The output of
+the DOMTree builder is a DOMDocument.
+
+## DOMDocument
+
+PHP has a DOMDocument class built-in (technically, it's part of libxml.)
+We use that, thus rendering the output of this process compatible with
+SimpleXML, QueryPath, and many other XML/HTML processing tools.
+
+For cases where the HTML5 is a fragment of a HTML5 document a
+DOMDocumentFragment is returned instead. This is another built-in class.
diff --git a/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Parser/Scanner.php b/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Parser/Scanner.php
new file mode 100644
index 0000000..1b25888
--- /dev/null
+++ b/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Parser/Scanner.php
@@ -0,0 +1,416 @@
+<?php
+
+namespace Masterminds\HTML5\Parser;
+
+use Masterminds\HTML5\Exception;
+
+/**
+ * The scanner scans over a given data input to react appropriately to characters.
+ */
+class Scanner
+{
+ const CHARS_HEX = 'abcdefABCDEF01234567890';
+ const CHARS_ALNUM = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890';
+ const CHARS_ALPHA = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
+
+ /**
+ * 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 Scanner.
+ *
+ * @param string $data Data to parse.
+ * @param string $encoding The encoding to use for the data.
+ *
+ * @throws Exception If the given data cannot be encoded to UTF-8.
+ */
+ public function __construct($data, $encoding = 'UTF-8')
+ {
+ if ($data instanceof InputStream) {
+ @trigger_error('InputStream objects are deprecated since version 2.4 and will be removed in 3.0. Use strings instead.', E_USER_DEPRECATED);
+ $data = (string) $data;
+ }
+
+ $data = UTF8Utils::convertToUTF8($data, $encoding);
+
+ // 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);
+ }
+
+ /**
+ * 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('</script>') will
+ * see if the input stream is at the start of a
+ * '</script>' 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/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Parser/StringInputStream.php b/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Parser/StringInputStream.php
new file mode 100644
index 0000000..0c213fe
--- /dev/null
+++ b/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Parser/StringInputStream.php
@@ -0,0 +1,331 @@
+<?php
+/**
+ * Loads a string to be parsed.
+ */
+
+namespace Masterminds\HTML5\Parser;
+
+/*
+ *
+* Based on code from html5lib:
+
+Copyright 2009 Geoffrey Sneddon <http://gsnedders.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.
+
+*/
+
+// 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/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Parser/Tokenizer.php b/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Parser/Tokenizer.php
new file mode 100644
index 0000000..016919a
--- /dev/null
+++ b/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Parser/Tokenizer.php
@@ -0,0 +1,1197 @@
+<?php
+
+namespace Masterminds\HTML5\Parser;
+
+use Masterminds\HTML5\Elements;
+
+/**
+ * The HTML5 tokenizer.
+ *
+ * The tokenizer's role is reading data from the scanner and gathering it into
+ * semantic units. From the tokenizer, data is emitted to an event handler,
+ * which may (for example) create a DOM tree.
+ *
+ * The HTML5 specification has a detailed explanation of tokenizing HTML5. We
+ * follow that specification to the maximum extent that we can. If you find
+ * a discrepancy that is not documented, please file a bug and/or submit a
+ * patch.
+ *
+ * This tokenizer is implemented as a recursive descent parser.
+ *
+ * Within the API documentation, you may see references to the specific section
+ * of the HTML5 spec that the code attempts to reproduce. Example: 8.2.4.1.
+ * This refers to section 8.2.4.1 of the HTML5 CR specification.
+ *
+ * @see http://www.w3.org/TR/2012/CR-html5-20121217/
+ */
+class Tokenizer
+{
+ protected $scanner;
+
+ protected $events;
+
+ protected $tok;
+
+ /**
+ * Buffer for text.
+ */
+ protected $text = '';
+
+ // When this goes to false, the parser stops.
+ protected $carryOn = true;
+
+ protected $textMode = 0; // TEXTMODE_NORMAL;
+ protected $untilTag = null;
+
+ const CONFORMANT_XML = 'xml';
+ const CONFORMANT_HTML = 'html';
+ protected $mode = self::CONFORMANT_HTML;
+
+ /**
+ * Create a new tokenizer.
+ *
+ * Typically, parsing a document involves creating a new tokenizer, giving
+ * it a scanner (input) and an event handler (output), and then calling
+ * the Tokenizer::parse() method.`
+ *
+ * @param Scanner $scanner A scanner initialized with an input stream.
+ * @param EventHandler $eventHandler An event handler, initialized and ready to receive events.
+ * @param string $mode
+ */
+ public function __construct($scanner, $eventHandler, $mode = self::CONFORMANT_HTML)
+ {
+ $this->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 = '</' . $this->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 = '</' . $this->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 <!--, <![CDATA[, or <!DOCTYPE. Got <!%s', $tok);
+ $this->bogusComment('<!');
+
+ return true;
+ }
+
+ /**
+ * Consume an end tag. See section 8.2.4.9.
+ */
+ protected function endTag()
+ {
+ if ('/' != $this->scanner->current()) {
+ return false;
+ }
+ $tok = $this->scanner->next();
+
+ // a-zA-Z -> tagname
+ // > -> parse error
+ // EOF -> parse error
+ // -> parse error
+ if (!ctype_alpha($tok)) {
+ $this->parseError("Expected tag name, got '%s'", $tok);
+ if ("\0" == $tok || false === $tok) {
+ return false;
+ }
+
+ return $this->bogusComment('</');
+ }
+
+ $name = $this->scanner->charsUntil("\n\f \t>");
+ $name = self::CONFORMANT_XML === $this->mode ? $name : strtolower($name);
+ // Trash whitespace.
+ $this->scanner->whitespace();
+
+ $tok = $this->scanner->current();
+ if ('>' != $tok) {
+ $this->parseError("Expected >, got '%s'", $tok);
+ // We just trash stuff until we get to the next tag close.
+ $this->scanner->charsUntil('>');
+ }
+
+ $this->events->endTag($name);
+ $this->scanner->consume();
+
+ return true;
+ }
+
+ /**
+ * Consume a tag name and body. See section 8.2.4.10.
+ */
+ protected function tagName()
+ {
+ // We know this is at least one char.
+ $name = $this->scanner->charsWhile(':_-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz');
+ $name = self::CONFORMANT_XML === $this->mode ? $name : strtolower($name);
+ $attributes = array();
+ $selfClose = false;
+
+ // Handle attribute parse exceptions here so that we can
+ // react by trying to build a sensible parse tree.
+ try {
+ do {
+ $this->scanner->whitespace();
+ $this->attribute($attributes);
+ } while (!$this->isTagEnd($selfClose));
+ } catch (ParseError $e) {
+ $selfClose = false;
+ }
+
+ $mode = $this->events->startTag($name, $attributes, $selfClose);
+
+ if (is_int($mode)) {
+ $this->setTextMode($mode, $name);
+ }
+
+ $this->scanner->consume();
+
+ return true;
+ }
+
+ /**
+ * Check if the scanner has reached the end of a tag.
+ */
+ protected function isTagEnd(&$selfClose)
+ {
+ $tok = $this->scanner->current();
+ if ('/' == $tok) {
+ $this->scanner->consume();
+ $this->scanner->whitespace();
+ $tok = $this->scanner->current();
+
+ if ('>' == $tok) {
+ $selfClose = true;
+
+ return true;
+ }
+ if (false === $tok) {
+ $this->parseError('Unexpected EOF inside of tag.');
+
+ return true;
+ }
+ // Basically, we skip the / token and go on.
+ // See 8.2.4.43.
+ $this->parseError("Unexpected '%s' inside of a tag.", $tok);
+
+ return false;
+ }
+
+ if ('>' == $tok) {
+ return true;
+ }
+ if (false === $tok) {
+ $this->parseError('Unexpected EOF inside of tag.');
+
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * Parse attributes from inside of a tag.
+ *
+ * @param string[] $attributes
+ *
+ * @return bool
+ *
+ * @throws ParseError
+ */
+ protected function attribute(&$attributes)
+ {
+ $tok = $this->scanner->current();
+ if ('/' == $tok || '>' == $tok || false === $tok) {
+ return false;
+ }
+
+ if ('<' == $tok) {
+ $this->parseError("Unexpected '<' inside of attributes list.");
+ // Push the < back onto the stack.
+ $this->scanner->unconsume();
+ // Let the caller figure out how to handle this.
+ throw new ParseError('Start tag inside of attribute.');
+ }
+
+ $name = strtolower($this->scanner->charsUntil("/>=\n\f\t "));
+
+ if (0 == strlen($name)) {
+ $tok = $this->scanner->current();
+ $this->parseError('Expected an attribute name, got %s.', $tok);
+ // Really, only '=' can be the char here. Everything else gets absorbed
+ // under one rule or another.
+ $name = $tok;
+ $this->scanner->consume();
+ }
+
+ $isValidAttribute = true;
+ // Attribute names can contain most Unicode characters for HTML5.
+ // But method "DOMElement::setAttribute" is throwing exception
+ // because of it's own internal restriction so these have to be filtered.
+ // see issue #23: https://github.com/Masterminds/html5-php/issues/23
+ // and http://www.w3.org/TR/2011/WD-html5-20110525/syntax.html#syntax-attribute-name
+ if (preg_match("/[\x1-\x2C\\/\x3B-\x40\x5B-\x5E\x60\x7B-\x7F]/u", $name)) {
+ $this->parseError('Unexpected characters in attribute name: %s', $name);
+ $isValidAttribute = false;
+ } // There is no limitation for 1st character in HTML5.
+ // But method "DOMElement::setAttribute" is throwing exception for the
+ // characters below so they have to be filtered.
+ // see issue #23: https://github.com/Masterminds/html5-php/issues/23
+ // and http://www.w3.org/TR/2011/WD-html5-20110525/syntax.html#syntax-attribute-name
+ elseif (preg_match('/^[0-9.-]/u', $name)) {
+ $this->parseError('Unexpected character at the begining of attribute name: %s', $name);
+ $isValidAttribute = false;
+ }
+ // 8.1.2.3
+ $this->scanner->whitespace();
+
+ $val = $this->attributeValue();
+ if ($isValidAttribute) {
+ $attributes[$name] = $val;
+ }
+
+ return true;
+ }
+
+ /**
+ * Consume an attribute value. See section 8.2.4.37 and after.
+ *
+ * @return string|null
+ */
+ protected function attributeValue()
+ {
+ if ('=' != $this->scanner->current()) {
+ return null;
+ }
+ $this->scanner->consume();
+ // 8.1.2.3
+ $this->scanner->whitespace();
+
+ $tok = $this->scanner->current();
+ switch ($tok) {
+ case "\n":
+ case "\f":
+ case ' ':
+ case "\t":
+ // Whitespace here indicates an empty value.
+ return null;
+ case '"':
+ case "'":
+ $this->scanner->consume();
+
+ return $this->quotedAttributeValue($tok);
+ case '>':
+ // case '/': // 8.2.4.37 seems to allow foo=/ as a valid attr.
+ $this->parseError('Expected attribute value, got tag end.');
+
+ return null;
+ case '=':
+ case '`':
+ $this->parseError('Expecting quotes, got %s.', $tok);
+
+ return $this->unquotedAttributeValue();
+ default:
+ return $this->unquotedAttributeValue();
+ }
+ }
+
+ /**
+ * Get an attribute value string.
+ *
+ * @param string $quote IMPORTANT: This is a series of chars! Any one of which will be considered
+ * termination of an attribute's value. E.g. "\"'" will stop at either
+ * ' or ".
+ *
+ * @return string The attribute value.
+ */
+ protected function quotedAttributeValue($quote)
+ {
+ $stoplist = "\f" . $quote;
+ $val = '';
+
+ while (true) {
+ $tokens = $this->scanner->charsUntil($stoplist . '&');
+ if (false !== $tokens) {
+ $val .= $tokens;
+ } else {
+ break;
+ }
+
+ $tok = $this->scanner->current();
+ if ('&' == $tok) {
+ $val .= $this->decodeCharacterReference(true);
+ continue;
+ }
+ break;
+ }
+ $this->scanner->consume();
+
+ return $val;
+ }
+
+ protected function unquotedAttributeValue()
+ {
+ $val = '';
+ $tok = $this->scanner->current();
+ while (false !== $tok) {
+ switch ($tok) {
+ case "\n":
+ case "\f":
+ case ' ':
+ case "\t":
+ case '>':
+ break 2;
+
+ case '&':
+ $val .= $this->decodeCharacterReference(true);
+ $tok = $this->scanner->current();
+
+ break;
+
+ case "'":
+ case '"':
+ case '<':
+ case '=':
+ case '`':
+ $this->parseError('Unexpected chars in unquoted attribute value %s', $tok);
+ $val .= $tok;
+ $tok = $this->scanner->next();
+ break;
+
+ default:
+ $val .= $this->scanner->charsUntil("\t\n\f >&\"'<=`");
+
+ $tok = $this->scanner->current();
+ }
+ }
+
+ return $val;
+ }
+
+ /**
+ * Consume malformed markup as if it were a comment.
+ * 8.2.4.44.
+ *
+ * The spec requires that the ENTIRE tag-like thing be enclosed inside of
+ * the comment. So this will generate comments like:
+ *
+ * &lt;!--&lt/+foo&gt;--&gt;
+ *
+ * @param string $leading Prepend any leading characters. This essentially
+ * negates the need to backtrack, but it's sort of a hack.
+ *
+ * @return bool
+ */
+ protected function bogusComment($leading = '')
+ {
+ $comment = $leading;
+ $tokens = $this->scanner->charsUntil('>');
+ if (false !== $tokens) {
+ $comment .= $tokens;
+ }
+ $tok = $this->scanner->current();
+ if (false !== $tok) {
+ $comment .= $tok;
+ }
+
+ $this->flushBuffer();
+ $this->events->comment($comment);
+ $this->scanner->consume();
+
+ return true;
+ }
+
+ /**
+ * Read a comment.
+ * Expects the first tok to be inside of the comment.
+ *
+ * @return bool
+ */
+ protected function comment()
+ {
+ $tok = $this->scanner->current();
+ $comment = '';
+
+ // <!-->. 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('<!' . $chars);
+ }
+
+ $this->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 <!DOCTYPE html>
+ 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 <!DOCTYPE foo PUBLIC "bar" SOME_JUNK
+ // Throw away the junk, parse error, quirks mode, return true.
+ $this->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('<![' . $chars);
+ }
+
+ $tok = $this->scanner->next();
+ do {
+ if (false === $tok) {
+ $this->parseError('Unexpected EOF inside CDATA.');
+ $this->bogusComment('<![CDATA[' . $cdata);
+
+ return true;
+ }
+ $cdata .= $tok;
+ $tok = $this->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('<?' . $tok . $procName);
+
+ return true;
+ }
+
+ $data = '';
+ // As long as it's not the case that the next two chars are ? and >.
+ 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('</script>') will
+ * see if the input stream is at the start of a
+ * '</script>' 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 &amp; 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/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Parser/TreeBuildingRules.php b/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Parser/TreeBuildingRules.php
new file mode 100644
index 0000000..00d3951
--- /dev/null
+++ b/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Parser/TreeBuildingRules.php
@@ -0,0 +1,127 @@
+<?php
+
+namespace Masterminds\HTML5\Parser;
+
+/**
+ * Handles special-case rules for the DOM tree builder.
+ *
+ * Many tags have special rules that need to be accomodated on an
+ * individual basis. This class handles those rules.
+ *
+ * See section 8.1.2.4 of the spec.
+ *
+ * @todo - colgroup and col special behaviors
+ * - body and head special behaviors
+ */
+class TreeBuildingRules
+{
+ protected static $tags = array(
+ 'li' => 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/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Parser/UTF8Utils.php b/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Parser/UTF8Utils.php
new file mode 100644
index 0000000..f6a70bf
--- /dev/null
+++ b/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Parser/UTF8Utils.php
@@ -0,0 +1,183 @@
+<?php
+
+namespace Masterminds\HTML5\Parser;
+
+/*
+Portions based on code from html5lib files with the following copyright:
+
+Copyright 2009 Geoffrey Sneddon <http://gsnedders.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.
+*/
+
+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/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Serializer/HTML5Entities.php b/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Serializer/HTML5Entities.php
new file mode 100644
index 0000000..e9421a1
--- /dev/null
+++ b/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Serializer/HTML5Entities.php
@@ -0,0 +1,1533 @@
+<?php
+/**
+ * @file
+ * This contains HTML5 entities to use with serializing.
+ *
+ * The list here is mildly different from the list at Entities because
+ * that list was generated from the w3c. It contains some entities that are
+ * not entirely proper such as &am; which maps to &. This list is meant to be
+ * a fallback for PHP versions prior to PHP 5.4 when dealing with encoding.
+ */
+
+namespace Masterminds\HTML5\Serializer;
+
+/**
+ * A mapping of entities to their html5 representation.
+ * Used for older PHP
+ * versions that don't have the mapping.
+ */
+class HTML5Entities
+{
+ public static $map = array(
+ ' ' => '&Tab;',
+ "\n" => '&NewLine;',
+ '!' => '&excl;',
+ '"' => '&quot;',
+ '#' => '&num;',
+ '$' => '&dollar;',
+ '%' => '&percnt;',
+ '&' => '&amp;',
+ '\'' => '&apos;',
+ '(' => '&lpar;',
+ ')' => '&rpar;',
+ '*' => '&ast;',
+ '+' => '&plus;',
+ ',' => '&comma;',
+ '.' => '&period;',
+ '/' => '&sol;',
+ ':' => '&colon;',
+ ';' => '&semi;',
+ '<' => '&lt;',
+ '<â’' => '&nvlt',
+ '=' => '&equals;',
+ '=âĄ' => '&bne',
+ '>' => '&gt;',
+ '>â’' => '&nvgt',
+ '?' => '&quest;',
+ '@' => '&commat;',
+ '[' => '&lbrack;',
+ '\\' => '&bsol;',
+ ']' => '&rsqb;',
+ '^' => '&Hat;',
+ '_' => '&lowbar;',
+ '`' => '&grave;',
+ 'fj' => '&fjlig',
+ '{' => '&lbrace;',
+ '|' => '&vert;',
+ '}' => '&rcub;',
+ ' ' => '&nbsp;',
+ '¡' => '&iexcl;',
+ '¢' => '&cent;',
+ 'ÂŁ' => '&pound;',
+ '¤' => '&curren;',
+ 'ÂĄ' => '&yen;',
+ '¦' => '&brvbar;',
+ '§' => '&sect;',
+ '¨' => '&DoubleDot;',
+ '©' => '&copy;',
+ 'ÂŞ' => '&ordf;',
+ '«' => '&laquo;',
+ '¬' => '&not;',
+ '­' => '&shy;',
+ '®' => '&reg;',
+ 'ÂŻ' => '&macr;',
+ '°' => '&deg;',
+ '±' => '&plusmn;',
+ '²' => '&sup2;',
+ 'Âł' => '&sup3;',
+ '´' => '&DiacriticalAcute;',
+ 'µ' => '&micro;',
+ '¶' => '&para;',
+ '·' => '&CenterDot;',
+ '¸' => '&Cedilla;',
+ 'Âą' => '&sup1;',
+ 'Âş' => '&ordm;',
+ '»' => '&raquo;',
+ 'ÂĽ' => '&frac14;',
+ '½' => '&half;',
+ 'Âľ' => '&frac34;',
+ 'Âż' => '&iquest;',
+ 'Ă€' => '&Agrave;',
+ 'Ă' => '&Aacute;',
+ 'Ă‚' => '&Acirc;',
+ 'Ă' => '&Atilde;',
+ 'Ă„' => '&Auml;',
+ 'Ă…' => '&Aring;',
+ 'Æ' => '&AElig;',
+ 'Ç' => '&Ccedil;',
+ 'Ă' => '&Egrave;',
+ 'É' => '&Eacute;',
+ 'ĂŠ' => '&Ecirc;',
+ 'Ă‹' => '&Euml;',
+ 'ĂŚ' => '&Igrave;',
+ 'ĂŤ' => '&Iacute;',
+ 'ĂŽ' => '&Icirc;',
+ 'ĂŹ' => '&Iuml;',
+ 'Ă' => '&ETH;',
+ 'Ă‘' => '&Ntilde;',
+ 'Ă’' => '&Ograve;',
+ 'Ă“' => '&Oacute;',
+ 'Ă”' => '&Ocirc;',
+ 'Ă•' => '&Otilde;',
+ 'Ă–' => '&Ouml;',
+ 'Ă—' => '&times;',
+ 'Ă' => '&Oslash;',
+ 'Ă™' => '&Ugrave;',
+ 'Ăš' => '&Uacute;',
+ 'Ă›' => '&Ucirc;',
+ 'Ăś' => '&Uuml;',
+ 'Ăť' => '&Yacute;',
+ 'Ăž' => '&THORN;',
+ 'Ăź' => '&szlig;',
+ 'Ă ' => '&agrave;',
+ 'á' => '&aacute;',
+ 'â' => '&acirc;',
+ 'ĂŁ' => '&atilde;',
+ 'ä' => '&auml;',
+ 'ĂĄ' => '&aring;',
+ 'æ' => '&aelig;',
+ 'ç' => '&ccedil;',
+ 'è' => '&egrave;',
+ 'Ă©' => '&eacute;',
+ 'ĂŞ' => '&ecirc;',
+ 'Ă«' => '&euml;',
+ 'ì' => '&igrave;',
+ 'Ă­' => '&iacute;',
+ 'Ă®' => '&icirc;',
+ 'ĂŻ' => '&iuml;',
+ 'Ă°' => '&eth;',
+ 'ñ' => '&ntilde;',
+ 'ò' => '&ograve;',
+ 'Ăł' => '&oacute;',
+ 'Ă´' => '&ocirc;',
+ 'õ' => '&otilde;',
+ 'ö' => '&ouml;',
+ 'Ă·' => '&divide;',
+ 'ø' => '&oslash;',
+ 'Ăą' => '&ugrave;',
+ 'Ăş' => '&uacute;',
+ 'Ă»' => '&ucirc;',
+ 'ĂĽ' => '&uuml;',
+ 'Ă˝' => '&yacute;',
+ 'Ăľ' => '&thorn;',
+ 'Ăż' => '&yuml;',
+ 'Ä€' => '&Amacr;',
+ 'Ä' => '&amacr;',
+ 'Ä‚' => '&Abreve;',
+ 'Ä' => '&abreve;',
+ 'Ä„' => '&Aogon;',
+ 'Ä…' => '&aogon;',
+ 'Ć' => '&Cacute;',
+ 'ć' => '&cacute;',
+ 'Ä' => '&Ccirc;',
+ 'ĉ' => '&ccirc;',
+ 'ÄŠ' => '&Cdot;',
+ 'Ä‹' => '&cdot;',
+ 'ÄŚ' => '&Ccaron;',
+ 'ÄŤ' => '&ccaron;',
+ 'ÄŽ' => '&Dcaron;',
+ 'ÄŹ' => '&dcaron;',
+ 'Ä' => '&Dstrok;',
+ 'Ä‘' => '&dstrok;',
+ 'Ä’' => '&Emacr;',
+ 'Ä“' => '&emacr;',
+ 'Ä–' => '&Edot;',
+ 'Ä—' => '&edot;',
+ 'Ä' => '&Eogon;',
+ 'Ä™' => '&eogon;',
+ 'Äš' => '&Ecaron;',
+ 'Ä›' => '&ecaron;',
+ 'Äś' => '&Gcirc;',
+ 'Äť' => '&gcirc;',
+ 'Äž' => '&Gbreve;',
+ 'Äź' => '&gbreve;',
+ 'Ä ' => '&Gdot;',
+ 'ġ' => '&gdot;',
+ 'Ģ' => '&Gcedil;',
+ 'Ĥ' => '&Hcirc;',
+ 'ÄĄ' => '&hcirc;',
+ 'Ħ' => '&Hstrok;',
+ 'ħ' => '&hstrok;',
+ 'Ĩ' => '&Itilde;',
+ 'Ä©' => '&itilde;',
+ 'ÄŞ' => '&Imacr;',
+ 'Ä«' => '&imacr;',
+ 'Ä®' => '&Iogon;',
+ 'ÄŻ' => '&iogon;',
+ 'Ä°' => '&Idot;',
+ 'ı' => '&inodot;',
+ 'IJ' => '&IJlig;',
+ 'Äł' => '&ijlig;',
+ 'Ä´' => '&Jcirc;',
+ 'ĵ' => '&jcirc;',
+ 'Ķ' => '&Kcedil;',
+ 'Ä·' => '&kcedil;',
+ 'ĸ' => '&kgreen;',
+ 'Äą' => '&Lacute;',
+ 'Äş' => '&lacute;',
+ 'Ä»' => '&Lcedil;',
+ 'ÄĽ' => '&lcedil;',
+ 'Ä˝' => '&Lcaron;',
+ 'Äľ' => '&lcaron;',
+ 'Äż' => '&Lmidot;',
+ 'Ĺ€' => '&lmidot;',
+ 'Ĺ' => '&Lstrok;',
+ 'Ĺ‚' => '&lstrok;',
+ 'Ĺ' => '&Nacute;',
+ 'Ĺ„' => '&nacute;',
+ 'Ĺ…' => '&Ncedil;',
+ 'ņ' => '&ncedil;',
+ 'Ň' => '&Ncaron;',
+ 'Ĺ' => '&ncaron;',
+ 'ʼn' => '&napos;',
+ 'ĹŠ' => '&ENG;',
+ 'Ĺ‹' => '&eng;',
+ 'ĹŚ' => '&Omacr;',
+ 'ĹŤ' => '&omacr;',
+ 'Ĺ' => '&Odblac;',
+ 'Ĺ‘' => '&odblac;',
+ 'Ĺ’' => '&OElig;',
+ 'Ĺ“' => '&oelig;',
+ 'Ĺ”' => '&Racute;',
+ 'Ĺ•' => '&racute;',
+ 'Ĺ–' => '&Rcedil;',
+ 'Ĺ—' => '&rcedil;',
+ 'Ĺ' => '&Rcaron;',
+ 'Ĺ™' => '&rcaron;',
+ 'Ĺš' => '&Sacute;',
+ 'Ĺ›' => '&sacute;',
+ 'Ĺś' => '&Scirc;',
+ 'Ĺť' => '&scirc;',
+ 'Ĺž' => '&Scedil;',
+ 'Ĺź' => '&scedil;',
+ 'Ĺ ' => '&Scaron;',
+ 'š' => '&scaron;',
+ 'Ţ' => '&Tcedil;',
+ 'ĹŁ' => '&tcedil;',
+ 'Ť' => '&Tcaron;',
+ 'ĹĄ' => '&tcaron;',
+ 'Ŧ' => '&Tstrok;',
+ 'ŧ' => '&tstrok;',
+ 'Ũ' => '&Utilde;',
+ 'Ĺ©' => '&utilde;',
+ 'ĹŞ' => '&Umacr;',
+ 'Ĺ«' => '&umacr;',
+ 'Ŭ' => '&Ubreve;',
+ 'Ĺ­' => '&ubreve;',
+ 'Ĺ®' => '&Uring;',
+ 'ĹŻ' => '&uring;',
+ 'Ĺ°' => '&Udblac;',
+ 'ű' => '&udblac;',
+ 'Ų' => '&Uogon;',
+ 'Ĺł' => '&uogon;',
+ 'Ĺ´' => '&Wcirc;',
+ 'ŵ' => '&wcirc;',
+ 'Ŷ' => '&Ycirc;',
+ 'Ĺ·' => '&ycirc;',
+ 'Ÿ' => '&Yuml;',
+ 'Ĺą' => '&Zacute;',
+ 'Ĺş' => '&zacute;',
+ 'Ĺ»' => '&Zdot;',
+ 'ĹĽ' => '&zdot;',
+ 'Ĺ˝' => '&Zcaron;',
+ 'Ĺľ' => '&zcaron;',
+ 'Ć’' => '&fnof;',
+ 'Ƶ' => '&imped;',
+ 'ǵ' => '&gacute;',
+ 'Č·' => '&jmath;',
+ 'ˆ' => '&circ;',
+ 'ˇ' => '&Hacek;',
+ 'Ë' => '&Breve;',
+ 'Ë™' => '&dot;',
+ 'Ëš' => '&ring;',
+ 'Ë›' => '&ogon;',
+ 'Ëś' => '&DiacriticalTilde;',
+ 'Ëť' => '&DiacriticalDoubleAcute;',
+ 'Ě‘' => '&DownBreve;',
+ 'Α' => '&Alpha;',
+ 'Î’' => '&Beta;',
+ 'Γ' => '&Gamma;',
+ 'Δ' => '&Delta;',
+ 'Ε' => '&Epsilon;',
+ 'Ζ' => '&Zeta;',
+ 'Η' => '&Eta;',
+ 'Î' => '&Theta;',
+ 'Ι' => '&Iota;',
+ 'Κ' => '&Kappa;',
+ 'Λ' => '&Lambda;',
+ 'Îś' => '&Mu;',
+ 'Îť' => '&Nu;',
+ 'Ξ' => '&Xi;',
+ 'Îź' => '&Omicron;',
+ 'Π' => '&Pi;',
+ 'Ρ' => '&Rho;',
+ 'ÎŁ' => '&Sigma;',
+ 'Τ' => '&Tau;',
+ 'ÎĄ' => '&Upsilon;',
+ 'Φ' => '&Phi;',
+ 'Χ' => '&Chi;',
+ 'Ψ' => '&Psi;',
+ 'Ω' => '&Omega;',
+ 'α' => '&alpha;',
+ 'β' => '&beta;',
+ 'Îł' => '&gamma;',
+ 'δ' => '&delta;',
+ 'ε' => '&epsi;',
+ 'ζ' => '&zeta;',
+ 'η' => '&eta;',
+ 'θ' => '&theta;',
+ 'Îą' => '&iota;',
+ 'Îş' => '&kappa;',
+ 'λ' => '&lambda;',
+ 'ÎĽ' => '&mu;',
+ 'ν' => '&nu;',
+ 'Îľ' => '&xi;',
+ 'Îż' => '&omicron;',
+ 'Ď€' => '&pi;',
+ 'Ď' => '&rho;',
+ 'Ď‚' => '&sigmav;',
+ 'Ď' => '&sigma;',
+ 'Ď„' => '&tau;',
+ 'Ď…' => '&upsi;',
+ 'φ' => '&phi;',
+ 'χ' => '&chi;',
+ 'Ď' => '&psi;',
+ 'ω' => '&omega;',
+ 'Ď‘' => '&thetasym;',
+ 'Ď’' => '&upsih;',
+ 'Ď•' => '&straightphi;',
+ 'Ď–' => '&piv;',
+ 'Ďś' => '&Gammad;',
+ 'Ďť' => '&gammad;',
+ 'Ď°' => '&varkappa;',
+ 'ϱ' => '&rhov;',
+ 'ϵ' => '&straightepsilon;',
+ '϶' => '&backepsilon;',
+ 'Đ' => '&IOcy;',
+ 'Đ‚' => '&DJcy;',
+ 'Đ' => '&GJcy;',
+ 'Đ„' => '&Jukcy;',
+ 'Đ…' => '&DScy;',
+ 'І' => '&Iukcy;',
+ 'Ї' => '&YIcy;',
+ 'Đ' => '&Jsercy;',
+ 'Љ' => '&LJcy;',
+ 'ĐŠ' => '&NJcy;',
+ 'Đ‹' => '&TSHcy;',
+ 'ĐŚ' => '&KJcy;',
+ 'ĐŽ' => '&Ubrcy;',
+ 'ĐŹ' => '&DZcy;',
+ 'Đ' => '&Acy;',
+ 'Đ‘' => '&Bcy;',
+ 'Đ’' => '&Vcy;',
+ 'Đ“' => '&Gcy;',
+ 'Đ”' => '&Dcy;',
+ 'Đ•' => '&IEcy;',
+ 'Đ–' => '&ZHcy;',
+ 'Đ—' => '&Zcy;',
+ 'Đ' => '&Icy;',
+ 'Đ™' => '&Jcy;',
+ 'Đš' => '&Kcy;',
+ 'Đ›' => '&Lcy;',
+ 'Đś' => '&Mcy;',
+ 'Đť' => '&Ncy;',
+ 'Đž' => '&Ocy;',
+ 'Đź' => '&Pcy;',
+ 'Đ ' => '&Rcy;',
+ 'С' => '&Scy;',
+ 'Т' => '&Tcy;',
+ 'ĐŁ' => '&Ucy;',
+ 'Ф' => '&Fcy;',
+ 'ĐĄ' => '&KHcy;',
+ 'Ц' => '&TScy;',
+ 'Ч' => '&CHcy;',
+ 'Ш' => '&SHcy;',
+ 'Đ©' => '&SHCHcy;',
+ 'ĐŞ' => '&HARDcy;',
+ 'Đ«' => '&Ycy;',
+ 'Ь' => '&SOFTcy;',
+ 'Đ­' => '&Ecy;',
+ 'Đ®' => '&YUcy;',
+ 'ĐŻ' => '&YAcy;',
+ 'Đ°' => '&acy;',
+ 'б' => '&bcy;',
+ 'в' => '&vcy;',
+ 'Đł' => '&gcy;',
+ 'Đ´' => '&dcy;',
+ 'е' => '&iecy;',
+ 'ж' => '&zhcy;',
+ 'Đ·' => '&zcy;',
+ 'и' => '&icy;',
+ 'Đą' => '&jcy;',
+ 'Đş' => '&kcy;',
+ 'Đ»' => '&lcy;',
+ 'ĐĽ' => '&mcy;',
+ 'Đ˝' => '&ncy;',
+ 'Đľ' => '&ocy;',
+ 'Đż' => '&pcy;',
+ 'Ń€' => '&rcy;',
+ 'Ń' => '&scy;',
+ 'Ń‚' => '&tcy;',
+ 'Ń' => '&ucy;',
+ 'Ń„' => '&fcy;',
+ 'Ń…' => '&khcy;',
+ 'ц' => '&tscy;',
+ 'ч' => '&chcy;',
+ 'Ń' => '&shcy;',
+ 'щ' => '&shchcy;',
+ 'ŃŠ' => '&hardcy;',
+ 'Ń‹' => '&ycy;',
+ 'ŃŚ' => '&softcy;',
+ 'ŃŤ' => '&ecy;',
+ 'ŃŽ' => '&yucy;',
+ 'ŃŹ' => '&yacy;',
+ 'Ń‘' => '&iocy;',
+ 'Ń’' => '&djcy;',
+ 'Ń“' => '&gjcy;',
+ 'Ń”' => '&jukcy;',
+ 'Ń•' => '&dscy;',
+ 'Ń–' => '&iukcy;',
+ 'Ń—' => '&yicy;',
+ 'Ń' => '&jsercy;',
+ 'Ń™' => '&ljcy;',
+ 'Ńš' => '&njcy;',
+ 'Ń›' => '&tshcy;',
+ 'Ńś' => '&kjcy;',
+ 'Ńž' => '&ubrcy;',
+ 'Ńź' => '&dzcy;',
+ ' ' => '&ensp;',
+ 'â€' => '&emsp;',
+ ' ' => '&emsp13;',
+ ' ' => '&emsp14;',
+ ' ' => '&numsp;',
+ 'â€' => '&puncsp;',
+ ' ' => '&ThinSpace;',
+ ' ' => '&hairsp;',
+ '​' => '&ZeroWidthSpace;',
+ '‌' => '&zwnj;',
+ '‍' => '&zwj;',
+ '‎' => '&lrm;',
+ '‏' => '&rlm;',
+ 'â€' => '&hyphen;',
+ '–' => '&ndash;',
+ '—' => '&mdash;',
+ '―' => '&horbar;',
+ '‖' => '&Verbar;',
+ 'â€' => '&OpenCurlyQuote;',
+ '’' => '&rsquo;',
+ '‚' => '&sbquo;',
+ '“' => '&OpenCurlyDoubleQuote;',
+ '”' => '&rdquo;',
+ '„' => '&bdquo;',
+ '†' => '&dagger;',
+ '‡' => '&Dagger;',
+ '•' => '&bull;',
+ '‥' => '&nldr;',
+ '…' => '&hellip;',
+ '‰' => '&permil;',
+ '‱' => '&pertenk;',
+ '′' => '&prime;',
+ '″' => '&Prime;',
+ '‴' => '&tprime;',
+ '‵' => '&backprime;',
+ '‹' => '&lsaquo;',
+ '›' => '&rsaquo;',
+ '‾' => '&oline;',
+ 'â' => '&caret;',
+ 'â' => '&hybull;',
+ 'â„' => '&frasl;',
+ 'âŹ' => '&bsemi;',
+ 'â—' => '&qprime;',
+ 'âź' => '&MediumSpace;',
+ 'âźâ€Š' => '&ThickSpace',
+ 'â ' => '&NoBreak;',
+ 'âˇ' => '&af;',
+ 'â˘' => '&InvisibleTimes;',
+ 'âŁ' => '&ic;',
+ '€' => '&euro;',
+ 'â›' => '&TripleDot;',
+ 'âś' => '&DotDot;',
+ 'â„‚' => '&complexes;',
+ 'â„…' => '&incare;',
+ 'â„Š' => '&gscr;',
+ 'â„‹' => '&HilbertSpace;',
+ 'â„Ś' => '&Hfr;',
+ 'â„Ť' => '&Hopf;',
+ 'â„Ž' => '&planckh;',
+ 'â„Ź' => '&planck;',
+ 'â„' => '&imagline;',
+ 'â„‘' => '&Ifr;',
+ 'â„’' => '&lagran;',
+ 'â„“' => '&ell;',
+ 'â„•' => '&naturals;',
+ 'â„–' => '&numero;',
+ 'â„—' => '&copysr;',
+ 'â„' => '&wp;',
+ 'â„™' => '&primes;',
+ 'â„š' => '&rationals;',
+ 'â„›' => '&realine;',
+ 'â„ś' => '&Rfr;',
+ 'â„ť' => '&Ropf;',
+ 'â„ž' => '&rx;',
+ '™' => '&trade;',
+ 'ℤ' => '&Zopf;',
+ '℧' => '&mho;',
+ 'ℨ' => '&Zfr;',
+ 'â„©' => '&iiota;',
+ 'ℬ' => '&Bscr;',
+ 'â„­' => '&Cfr;',
+ 'â„Ż' => '&escr;',
+ 'â„°' => '&expectation;',
+ 'ℱ' => '&Fouriertrf;',
+ 'â„ł' => '&Mellintrf;',
+ 'â„´' => '&orderof;',
+ 'ℵ' => '&aleph;',
+ 'ℶ' => '&beth;',
+ 'â„·' => '&gimel;',
+ 'ℸ' => '&daleth;',
+ 'â……' => '&CapitalDifferentialD;',
+ 'â…†' => '&DifferentialD;',
+ 'â…‡' => '&exponentiale;',
+ 'â…' => '&ImaginaryI;',
+ 'â…“' => '&frac13;',
+ 'â…”' => '&frac23;',
+ 'â…•' => '&frac15;',
+ 'â…–' => '&frac25;',
+ 'â…—' => '&frac35;',
+ 'â…' => '&frac45;',
+ 'â…™' => '&frac16;',
+ 'â…š' => '&frac56;',
+ 'â…›' => '&frac18;',
+ 'â…ś' => '&frac38;',
+ 'â…ť' => '&frac58;',
+ 'â…ž' => '&frac78;',
+ 'â†' => '&larr;',
+ '↑' => '&uarr;',
+ '→' => '&srarr;',
+ '↓' => '&darr;',
+ '↔' => '&harr;',
+ '↕' => '&UpDownArrow;',
+ '↖' => '&nwarrow;',
+ '↗' => '&UpperRightArrow;',
+ 'â†' => '&LowerRightArrow;',
+ '↙' => '&swarr;',
+ '↚' => '&nleftarrow;',
+ '↛' => '&nrarr;',
+ '↝' => '&rarrw;',
+ '↝̸' => '&nrarrw',
+ '↞' => '&Larr;',
+ '↟' => '&Uarr;',
+ '↠' => '&twoheadrightarrow;',
+ '↡' => '&Darr;',
+ '↢' => '&larrtl;',
+ '↣' => '&rarrtl;',
+ '↤' => '&LeftTeeArrow;',
+ '↥' => '&UpTeeArrow;',
+ '↦' => '&map;',
+ '↧' => '&DownTeeArrow;',
+ '↩' => '&larrhk;',
+ '↪' => '&rarrhk;',
+ '↫' => '&larrlp;',
+ '↬' => '&looparrowright;',
+ '↭' => '&harrw;',
+ '↮' => '&nleftrightarrow;',
+ '↰' => '&Lsh;',
+ '↱' => '&rsh;',
+ '↲' => '&ldsh;',
+ '↳' => '&rdsh;',
+ '↵' => '&crarr;',
+ '↶' => '&curvearrowleft;',
+ '↷' => '&curarr;',
+ '↺' => '&olarr;',
+ '↻' => '&orarr;',
+ '↼' => '&leftharpoonup;',
+ '↽' => '&leftharpoondown;',
+ '↾' => '&RightUpVector;',
+ '↿' => '&uharl;',
+ '⇀' => '&rharu;',
+ 'â‡' => '&rhard;',
+ '⇂' => '&RightDownVector;',
+ 'â‡' => '&dharl;',
+ '⇄' => '&rightleftarrows;',
+ '⇅' => '&udarr;',
+ '⇆' => '&lrarr;',
+ '⇇' => '&llarr;',
+ 'â‡' => '&upuparrows;',
+ '⇉' => '&rrarr;',
+ '⇊' => '&downdownarrows;',
+ '⇋' => '&leftrightharpoons;',
+ '⇌' => '&rightleftharpoons;',
+ '⇍' => '&nLeftarrow;',
+ '⇎' => '&nhArr;',
+ '⇏' => '&nrArr;',
+ 'â‡' => '&DoubleLeftArrow;',
+ '⇑' => '&DoubleUpArrow;',
+ '⇒' => '&Implies;',
+ '⇓' => '&Downarrow;',
+ '⇔' => '&hArr;',
+ '⇕' => '&Updownarrow;',
+ '⇖' => '&nwArr;',
+ '⇗' => '&neArr;',
+ 'â‡' => '&seArr;',
+ '⇙' => '&swArr;',
+ '⇚' => '&lAarr;',
+ '⇛' => '&rAarr;',
+ '⇝' => '&zigrarr;',
+ '⇤' => '&LeftArrowBar;',
+ '⇥' => '&RightArrowBar;',
+ '⇵' => '&DownArrowUpArrow;',
+ '⇽' => '&loarr;',
+ '⇾' => '&roarr;',
+ '⇿' => '&hoarr;',
+ 'â€' => '&forall;',
+ 'â' => '&comp;',
+ 'â‚' => '&part;',
+ 'â‚̸' => '&npart',
+ 'â' => '&Exists;',
+ 'â„' => '&nexist;',
+ 'â…' => '&empty;',
+ 'â‡' => '&nabla;',
+ 'â' => '&isinv;',
+ 'â‰' => '&notin;',
+ 'â‹' => '&ReverseElement;',
+ 'âŚ' => '&notniva;',
+ 'âŹ' => '&prod;',
+ 'â' => '&Coproduct;',
+ 'â‘' => '&sum;',
+ 'â’' => '&minus;',
+ 'â“' => '&MinusPlus;',
+ 'â”' => '&plusdo;',
+ 'â–' => '&ssetmn;',
+ 'â—' => '&lowast;',
+ 'â' => '&compfn;',
+ 'âš' => '&Sqrt;',
+ 'âť' => '&prop;',
+ 'âž' => '&infin;',
+ 'âź' => '&angrt;',
+ 'â ' => '&angle;',
+ 'â â’' => '&nang',
+ 'âˇ' => '&angmsd;',
+ 'â˘' => '&angsph;',
+ 'âŁ' => '&mid;',
+ 'â¤' => '&nshortmid;',
+ 'âĄ' => '&shortparallel;',
+ 'â¦' => '&nparallel;',
+ 'â§' => '&and;',
+ 'â¨' => '&or;',
+ 'â©' => '&cap;',
+ 'â©ď¸€' => '&caps',
+ 'âŞ' => '&cup;',
+ 'âŞď¸€' => '&cups',
+ 'â«' => '&Integral;',
+ 'â¬' => '&Int;',
+ 'â­' => '&tint;',
+ 'â®' => '&ContourIntegral;',
+ 'âŻ' => '&DoubleContourIntegral;',
+ 'â°' => '&Cconint;',
+ 'â±' => '&cwint;',
+ 'â˛' => '&cwconint;',
+ 'âł' => '&awconint;',
+ 'â´' => '&there4;',
+ 'âµ' => '&Because;',
+ 'â¶' => '&ratio;',
+ 'â·' => '&Colon;',
+ 'â¸' => '&minusd;',
+ 'âş' => '&mDDot;',
+ 'â»' => '&homtht;',
+ 'âĽ' => '&sim;',
+ 'âĽâ’' => '&nvsim',
+ 'â˝' => '&bsim;',
+ 'â˝Ě±' => '&race',
+ 'âľ' => '&ac;',
+ 'âľĚł' => '&acE',
+ 'âż' => '&acd;',
+ '≀' => '&wr;',
+ 'â‰' => '&NotTilde;',
+ '≂' => '&esim;',
+ '≂̸' => '&nesim',
+ 'â‰' => '&simeq;',
+ '≄' => '&nsime;',
+ '≅' => '&TildeFullEqual;',
+ '≆' => '&simne;',
+ '≇' => '&ncong;',
+ 'â‰' => '&approx;',
+ '≉' => '&napprox;',
+ '≊' => '&ape;',
+ '≋' => '&apid;',
+ '≋̸' => '&napid',
+ '≌' => '&bcong;',
+ '≍' => '&CupCap;',
+ '≍â’' => '&nvap',
+ '≎' => '&bump;',
+ '≎̸' => '&nbump',
+ '≏' => '&HumpEqual;',
+ '≏̸' => '&nbumpe',
+ 'â‰' => '&esdot;',
+ 'â‰Ě¸' => '&nedot',
+ '≑' => '&doteqdot;',
+ '≒' => '&fallingdotseq;',
+ '≓' => '&risingdotseq;',
+ '≔' => '&coloneq;',
+ '≕' => '&eqcolon;',
+ '≖' => '&ecir;',
+ '≗' => '&circeq;',
+ '≙' => '&wedgeq;',
+ '≚' => '&veeeq;',
+ '≜' => '&triangleq;',
+ '≟' => '&equest;',
+ '≠' => '&NotEqual;',
+ '≡' => '&Congruent;',
+ '≡âĄ' => '&bnequiv',
+ '≢' => '&NotCongruent;',
+ '≤' => '&leq;',
+ '≤â’' => '&nvle',
+ '≥' => '&ge;',
+ '≥â’' => '&nvge',
+ '≦' => '&lE;',
+ '≦̸' => '&nlE',
+ '≧' => '&geqq;',
+ '≧̸' => '&NotGreaterFullEqual',
+ '≨' => '&lneqq;',
+ '≨︀' => '&lvertneqq',
+ '≩' => '&gneqq;',
+ '≩︀' => '&gvertneqq',
+ '≪' => '&ll;',
+ '≪̸' => '&nLtv',
+ '≪â’' => '&nLt',
+ '≫' => '&gg;',
+ '≫̸' => '&NotGreaterGreater',
+ '≫â’' => '&nGt',
+ '≬' => '&between;',
+ '≭' => '&NotCupCap;',
+ '≮' => '&NotLess;',
+ '≯' => '&ngtr;',
+ '≰' => '&NotLessEqual;',
+ '≱' => '&ngeq;',
+ '≲' => '&LessTilde;',
+ '≳' => '&GreaterTilde;',
+ '≴' => '&nlsim;',
+ '≵' => '&ngsim;',
+ '≶' => '&lessgtr;',
+ '≷' => '&gl;',
+ '≸' => '&ntlg;',
+ '≹' => '&NotGreaterLess;',
+ '≺' => '&prec;',
+ '≻' => '&succ;',
+ '≼' => '&PrecedesSlantEqual;',
+ '≽' => '&succcurlyeq;',
+ '≾' => '&precsim;',
+ '≿' => '&SucceedsTilde;',
+ '≿̸' => '&NotSucceedsTilde',
+ '⊀' => '&npr;',
+ 'âŠ' => '&NotSucceeds;',
+ '⊂' => '&sub;',
+ '⊂â’' => '&vnsub',
+ 'âŠ' => '&sup;',
+ 'âŠâ’' => '&nsupset',
+ '⊄' => '&nsub;',
+ '⊅' => '&nsup;',
+ '⊆' => '&SubsetEqual;',
+ '⊇' => '&supe;',
+ 'âŠ' => '&NotSubsetEqual;',
+ '⊉' => '&NotSupersetEqual;',
+ '⊊' => '&subsetneq;',
+ '⊊︀' => '&vsubne',
+ '⊋' => '&supsetneq;',
+ '⊋︀' => '&vsupne',
+ '⊍' => '&cupdot;',
+ '⊎' => '&UnionPlus;',
+ '⊏' => '&sqsub;',
+ '⊏̸' => '&NotSquareSubset',
+ 'âŠ' => '&sqsupset;',
+ 'âŠĚ¸' => '&NotSquareSuperset',
+ '⊑' => '&SquareSubsetEqual;',
+ '⊒' => '&SquareSupersetEqual;',
+ '⊓' => '&sqcap;',
+ '⊓︀' => '&sqcaps',
+ '⊔' => '&sqcup;',
+ '⊔︀' => '&sqcups',
+ '⊕' => '&CirclePlus;',
+ '⊖' => '&ominus;',
+ '⊗' => '&CircleTimes;',
+ 'âŠ' => '&osol;',
+ '⊙' => '&CircleDot;',
+ '⊚' => '&ocir;',
+ '⊛' => '&oast;',
+ '⊝' => '&odash;',
+ '⊞' => '&boxplus;',
+ '⊟' => '&boxminus;',
+ '⊠' => '&timesb;',
+ '⊡' => '&sdotb;',
+ '⊢' => '&vdash;',
+ '⊣' => '&dashv;',
+ '⊤' => '&DownTee;',
+ '⊥' => '&perp;',
+ '⊧' => '&models;',
+ '⊨' => '&DoubleRightTee;',
+ '⊩' => '&Vdash;',
+ '⊪' => '&Vvdash;',
+ '⊫' => '&VDash;',
+ '⊬' => '&nvdash;',
+ '⊭' => '&nvDash;',
+ '⊮' => '&nVdash;',
+ '⊯' => '&nVDash;',
+ '⊰' => '&prurel;',
+ '⊲' => '&vartriangleleft;',
+ '⊳' => '&vrtri;',
+ '⊴' => '&LeftTriangleEqual;',
+ '⊴â’' => '&nvltrie',
+ '⊵' => '&RightTriangleEqual;',
+ '⊵â’' => '&nvrtrie',
+ '⊶' => '&origof;',
+ '⊷' => '&imof;',
+ '⊸' => '&mumap;',
+ '⊹' => '&hercon;',
+ '⊺' => '&intcal;',
+ '⊻' => '&veebar;',
+ '⊽' => '&barvee;',
+ '⊾' => '&angrtvb;',
+ '⊿' => '&lrtri;',
+ 'â‹€' => '&xwedge;',
+ 'â‹' => '&xvee;',
+ 'â‹‚' => '&bigcap;',
+ 'â‹' => '&bigcup;',
+ 'â‹„' => '&diamond;',
+ 'â‹…' => '&sdot;',
+ '⋆' => '&Star;',
+ '⋇' => '&divonx;',
+ 'â‹' => '&bowtie;',
+ '⋉' => '&ltimes;',
+ 'â‹Š' => '&rtimes;',
+ 'â‹‹' => '&lthree;',
+ 'â‹Ś' => '&rthree;',
+ 'â‹Ť' => '&backsimeq;',
+ 'â‹Ž' => '&curlyvee;',
+ 'â‹Ź' => '&curlywedge;',
+ 'â‹' => '&Sub;',
+ 'â‹‘' => '&Supset;',
+ 'â‹’' => '&Cap;',
+ 'â‹“' => '&Cup;',
+ 'â‹”' => '&pitchfork;',
+ 'â‹•' => '&epar;',
+ 'â‹–' => '&lessdot;',
+ 'â‹—' => '&gtrdot;',
+ 'â‹' => '&Ll;',
+ 'â‹Ě¸' => '&nLl',
+ 'â‹™' => '&Gg;',
+ '⋙̸' => '&nGg',
+ 'â‹š' => '&lesseqgtr;',
+ '⋚︀' => '&lesg',
+ 'â‹›' => '&gtreqless;',
+ '⋛︀' => '&gesl',
+ 'â‹ž' => '&curlyeqprec;',
+ 'â‹ź' => '&cuesc;',
+ 'â‹ ' => '&NotPrecedesSlantEqual;',
+ '⋡' => '&NotSucceedsSlantEqual;',
+ '⋢' => '&NotSquareSubsetEqual;',
+ 'â‹Ł' => '&NotSquareSupersetEqual;',
+ '⋦' => '&lnsim;',
+ '⋧' => '&gnsim;',
+ '⋨' => '&precnsim;',
+ 'â‹©' => '&scnsim;',
+ 'â‹Ş' => '&nltri;',
+ 'â‹«' => '&ntriangleright;',
+ '⋬' => '&nltrie;',
+ 'â‹­' => '&NotRightTriangleEqual;',
+ 'â‹®' => '&vellip;',
+ 'â‹Ż' => '&ctdot;',
+ 'â‹°' => '&utdot;',
+ '⋱' => '&dtdot;',
+ '⋲' => '&disin;',
+ 'â‹ł' => '&isinsv;',
+ 'â‹´' => '&isins;',
+ '⋵' => '&isindot;',
+ '⋵̸' => '&notindot',
+ '⋶' => '&notinvc;',
+ 'â‹·' => '&notinvb;',
+ 'â‹ą' => '&isinE;',
+ '⋹̸' => '&notinE',
+ 'â‹ş' => '&nisd;',
+ 'â‹»' => '&xnis;',
+ 'â‹Ľ' => '&nis;',
+ 'â‹˝' => '&notnivc;',
+ 'â‹ľ' => '&notnivb;',
+ '⌅' => '&barwed;',
+ '⌆' => '&doublebarwedge;',
+ 'âŚ' => '&lceil;',
+ '⌉' => '&RightCeiling;',
+ '⌊' => '&LeftFloor;',
+ '⌋' => '&RightFloor;',
+ '⌌' => '&drcrop;',
+ '⌍' => '&dlcrop;',
+ '⌎' => '&urcrop;',
+ '⌏' => '&ulcrop;',
+ 'âŚ' => '&bnot;',
+ '⌒' => '&profline;',
+ '⌓' => '&profsurf;',
+ '⌕' => '&telrec;',
+ '⌖' => '&target;',
+ '⌜' => '&ulcorner;',
+ '⌝' => '&urcorner;',
+ '⌞' => '&llcorner;',
+ '⌟' => '&drcorn;',
+ '⌢' => '&frown;',
+ '⌣' => '&smile;',
+ '⌭' => '&cylcty;',
+ '⌮' => '&profalar;',
+ '⌶' => '&topbot;',
+ '⌽' => '&ovbar;',
+ '⌿' => '&solbar;',
+ '⍼' => '&angzarr;',
+ '⎰' => '&lmoust;',
+ '⎱' => '&rmoust;',
+ '⎴' => '&OverBracket;',
+ '⎵' => '&bbrk;',
+ '⎶' => '&bbrktbrk;',
+ '⏜' => '&OverParenthesis;',
+ '⏝' => '&UnderParenthesis;',
+ '⏞' => '&OverBrace;',
+ '⏟' => '&UnderBrace;',
+ '⏢' => '&trpezium;',
+ '⏧' => '&elinters;',
+ 'âŁ' => '&blank;',
+ 'â“' => '&oS;',
+ '─' => '&HorizontalLine;',
+ '│' => '&boxv;',
+ '┌' => '&boxdr;',
+ 'â”' => '&boxdl;',
+ 'â””' => '&boxur;',
+ 'â”' => '&boxul;',
+ '├' => '&boxvr;',
+ '┤' => '&boxvl;',
+ '┬' => '&boxhd;',
+ 'â”´' => '&boxhu;',
+ '┼' => '&boxvh;',
+ 'â•' => '&boxH;',
+ 'â•‘' => '&boxV;',
+ 'â•’' => '&boxdR;',
+ 'â•“' => '&boxDr;',
+ 'â•”' => '&boxDR;',
+ 'â••' => '&boxdL;',
+ 'â•–' => '&boxDl;',
+ 'â•—' => '&boxDL;',
+ 'â•' => '&boxuR;',
+ 'â•™' => '&boxUr;',
+ 'â•š' => '&boxUR;',
+ 'â•›' => '&boxuL;',
+ 'â•ś' => '&boxUl;',
+ 'â•ť' => '&boxUL;',
+ 'â•ž' => '&boxvR;',
+ 'â•ź' => '&boxVr;',
+ 'â• ' => '&boxVR;',
+ '╡' => '&boxvL;',
+ '╢' => '&boxVl;',
+ 'â•Ł' => '&boxVL;',
+ '╤' => '&boxHd;',
+ 'â•Ą' => '&boxhD;',
+ '╦' => '&boxHD;',
+ '╧' => '&boxHu;',
+ '╨' => '&boxhU;',
+ 'â•©' => '&boxHU;',
+ 'â•Ş' => '&boxvH;',
+ 'â•«' => '&boxVh;',
+ '╬' => '&boxVH;',
+ 'â–€' => '&uhblk;',
+ 'â–„' => '&lhblk;',
+ 'â–' => '&block;',
+ 'â–‘' => '&blk14;',
+ 'â–’' => '&blk12;',
+ 'â–“' => '&blk34;',
+ 'â–ˇ' => '&Square;',
+ 'â–Ş' => '&squarf;',
+ 'â–«' => '&EmptyVerySmallSquare;',
+ 'â–­' => '&rect;',
+ 'â–®' => '&marker;',
+ 'â–±' => '&fltns;',
+ 'â–ł' => '&bigtriangleup;',
+ 'â–´' => '&blacktriangle;',
+ 'â–µ' => '&triangle;',
+ 'â–¸' => '&blacktriangleright;',
+ 'â–ą' => '&rtri;',
+ 'â–˝' => '&bigtriangledown;',
+ 'â–ľ' => '&blacktriangledown;',
+ 'â–ż' => '&triangledown;',
+ 'â—‚' => '&blacktriangleleft;',
+ 'â—' => '&ltri;',
+ 'â—Š' => '&lozenge;',
+ 'â—‹' => '&cir;',
+ 'â—¬' => '&tridot;',
+ 'â—Ż' => '&bigcirc;',
+ 'â—¸' => '&ultri;',
+ 'â—ą' => '&urtri;',
+ 'â—ş' => '&lltri;',
+ 'â—»' => '&EmptySmallSquare;',
+ 'â—Ľ' => '&FilledSmallSquare;',
+ 'â…' => '&starf;',
+ 'â†' => '&star;',
+ 'âŽ' => '&phone;',
+ '♀' => '&female;',
+ '♂' => '&male;',
+ 'â™ ' => '&spadesuit;',
+ '♣' => '&clubs;',
+ '♥' => '&hearts;',
+ '♦' => '&diamondsuit;',
+ '♪' => '&sung;',
+ 'â™­' => '&flat;',
+ 'â™®' => '&natur;',
+ '♯' => '&sharp;',
+ 'âś“' => '&check;',
+ 'âś—' => '&cross;',
+ 'âś ' => '&maltese;',
+ '✶' => '&sext;',
+ 'âť' => '&VerticalSeparator;',
+ '❲' => '&lbbrk;',
+ 'âťł' => '&rbbrk;',
+ 'âź' => '&bsolhsub;',
+ '⟉' => '&suphsol;',
+ '⟦' => '&LeftDoubleBracket;',
+ '⟧' => '&RightDoubleBracket;',
+ '⟨' => '&langle;',
+ 'âź©' => '&RightAngleBracket;',
+ '⟪' => '&Lang;',
+ 'âź«' => '&Rang;',
+ '⟬' => '&loang;',
+ 'âź­' => '&roang;',
+ 'âźµ' => '&longleftarrow;',
+ '⟶' => '&LongRightArrow;',
+ 'âź·' => '&LongLeftRightArrow;',
+ '⟸' => '&xlArr;',
+ 'âźą' => '&DoubleLongRightArrow;',
+ 'âźş' => '&xhArr;',
+ '⟼' => '&xmap;',
+ 'âźż' => '&dzigrarr;',
+ '⤂' => '&nvlArr;',
+ 'â¤' => '&nvrArr;',
+ '⤄' => '&nvHarr;',
+ '⤅' => '&Map;',
+ '⤌' => '&lbarr;',
+ '⤍' => '&bkarow;',
+ '⤎' => '&lBarr;',
+ '⤏' => '&dbkarow;',
+ 'â¤' => '&drbkarow;',
+ '⤑' => '&DDotrahd;',
+ '⤒' => '&UpArrowBar;',
+ '⤓' => '&DownArrowBar;',
+ '⤖' => '&Rarrtl;',
+ '⤙' => '&latail;',
+ '⤚' => '&ratail;',
+ '⤛' => '&lAtail;',
+ '⤜' => '&rAtail;',
+ '⤝' => '&larrfs;',
+ '⤞' => '&rarrfs;',
+ '⤟' => '&larrbfs;',
+ '⤠' => '&rarrbfs;',
+ '⤣' => '&nwarhk;',
+ '⤤' => '&nearhk;',
+ '⤥' => '&searhk;',
+ '⤦' => '&swarhk;',
+ '⤧' => '&nwnear;',
+ '⤨' => '&toea;',
+ '⤩' => '&seswar;',
+ '⤪' => '&swnwar;',
+ '⤳' => '&rarrc;',
+ '⤳̸' => '&nrarrc',
+ '⤵' => '&cudarrr;',
+ '⤶' => '&ldca;',
+ '⤷' => '&rdca;',
+ '⤸' => '&cudarrl;',
+ '⤹' => '&larrpl;',
+ '⤼' => '&curarrm;',
+ '⤽' => '&cularrp;',
+ '⥅' => '&rarrpl;',
+ 'âĄ' => '&harrcir;',
+ '⥉' => '&Uarrocir;',
+ '⥊' => '&lurdshar;',
+ '⥋' => '&ldrushar;',
+ '⥎' => '&LeftRightVector;',
+ '⥏' => '&RightUpDownVector;',
+ 'âĄ' => '&DownLeftRightVector;',
+ '⥑' => '&LeftUpDownVector;',
+ '⥒' => '&LeftVectorBar;',
+ '⥓' => '&RightVectorBar;',
+ '⥔' => '&RightUpVectorBar;',
+ '⥕' => '&RightDownVectorBar;',
+ '⥖' => '&DownLeftVectorBar;',
+ '⥗' => '&DownRightVectorBar;',
+ 'âĄ' => '&LeftUpVectorBar;',
+ '⥙' => '&LeftDownVectorBar;',
+ '⥚' => '&LeftTeeVector;',
+ '⥛' => '&RightTeeVector;',
+ '⥜' => '&RightUpTeeVector;',
+ '⥝' => '&RightDownTeeVector;',
+ '⥞' => '&DownLeftTeeVector;',
+ '⥟' => '&DownRightTeeVector;',
+ '⥠' => '&LeftUpTeeVector;',
+ '⥡' => '&LeftDownTeeVector;',
+ '⥢' => '&lHar;',
+ '⥣' => '&uHar;',
+ '⥤' => '&rHar;',
+ '⥥' => '&dHar;',
+ '⥦' => '&luruhar;',
+ '⥧' => '&ldrdhar;',
+ '⥨' => '&ruluhar;',
+ '⥩' => '&rdldhar;',
+ '⥪' => '&lharul;',
+ '⥫' => '&llhard;',
+ '⥬' => '&rharul;',
+ '⥭' => '&lrhard;',
+ '⥮' => '&udhar;',
+ '⥯' => '&ReverseUpEquilibrium;',
+ '⥰' => '&RoundImplies;',
+ '⥱' => '&erarr;',
+ '⥲' => '&simrarr;',
+ '⥳' => '&larrsim;',
+ '⥴' => '&rarrsim;',
+ '⥵' => '&rarrap;',
+ '⥶' => '&ltlarr;',
+ '⥸' => '&gtrarr;',
+ '⥹' => '&subrarr;',
+ '⥻' => '&suplarr;',
+ '⥼' => '&lfisht;',
+ '⥽' => '&rfisht;',
+ '⥾' => '&ufisht;',
+ '⥿' => '&dfisht;',
+ '⦅' => '&lopar;',
+ '⦆' => '&ropar;',
+ '⦋' => '&lbrke;',
+ '⦌' => '&rbrke;',
+ '⦍' => '&lbrkslu;',
+ '⦎' => '&rbrksld;',
+ '⦏' => '&lbrksld;',
+ 'â¦' => '&rbrkslu;',
+ '⦑' => '&langd;',
+ '⦒' => '&rangd;',
+ '⦓' => '&lparlt;',
+ '⦔' => '&rpargt;',
+ '⦕' => '&gtlPar;',
+ '⦖' => '&ltrPar;',
+ '⦚' => '&vzigzag;',
+ '⦜' => '&vangrt;',
+ '⦝' => '&angrtvbd;',
+ '⦤' => '&ange;',
+ '⦥' => '&range;',
+ '⦦' => '&dwangle;',
+ '⦧' => '&uwangle;',
+ '⦨' => '&angmsdaa;',
+ '⦩' => '&angmsdab;',
+ '⦪' => '&angmsdac;',
+ '⦫' => '&angmsdad;',
+ '⦬' => '&angmsdae;',
+ '⦭' => '&angmsdaf;',
+ '⦮' => '&angmsdag;',
+ '⦯' => '&angmsdah;',
+ '⦰' => '&bemptyv;',
+ '⦱' => '&demptyv;',
+ '⦲' => '&cemptyv;',
+ '⦳' => '&raemptyv;',
+ '⦴' => '&laemptyv;',
+ '⦵' => '&ohbar;',
+ '⦶' => '&omid;',
+ '⦷' => '&opar;',
+ '⦹' => '&operp;',
+ '⦻' => '&olcross;',
+ '⦼' => '&odsold;',
+ '⦾' => '&olcir;',
+ '⦿' => '&ofcir;',
+ '⧀' => '&olt;',
+ 'â§' => '&ogt;',
+ '⧂' => '&cirscir;',
+ 'â§' => '&cirE;',
+ '⧄' => '&solb;',
+ '⧅' => '&bsolb;',
+ '⧉' => '&boxbox;',
+ '⧍' => '&trisb;',
+ '⧎' => '&rtriltri;',
+ '⧏' => '&LeftTriangleBar;',
+ '⧏̸' => '&NotLeftTriangleBar',
+ 'â§' => '&RightTriangleBar;',
+ 'â§Ě¸' => '&NotRightTriangleBar',
+ '⧜' => '&iinfin;',
+ '⧝' => '&infintie;',
+ '⧞' => '&nvinfin;',
+ '⧣' => '&eparsl;',
+ '⧤' => '&smeparsl;',
+ '⧥' => '&eqvparsl;',
+ '⧫' => '&lozf;',
+ '⧴' => '&RuleDelayed;',
+ '⧶' => '&dsol;',
+ '⨀' => '&xodot;',
+ 'â¨' => '&bigoplus;',
+ '⨂' => '&bigotimes;',
+ '⨄' => '&biguplus;',
+ '⨆' => '&bigsqcup;',
+ '⨌' => '&iiiint;',
+ '⨍' => '&fpartint;',
+ 'â¨' => '&cirfnint;',
+ '⨑' => '&awint;',
+ '⨒' => '&rppolint;',
+ '⨓' => '&scpolint;',
+ '⨔' => '&npolint;',
+ '⨕' => '&pointint;',
+ '⨖' => '&quatint;',
+ '⨗' => '&intlarhk;',
+ '⨢' => '&pluscir;',
+ '⨣' => '&plusacir;',
+ '⨤' => '&simplus;',
+ '⨥' => '&plusdu;',
+ '⨦' => '&plussim;',
+ '⨧' => '&plustwo;',
+ '⨩' => '&mcomma;',
+ '⨪' => '&minusdu;',
+ '⨭' => '&loplus;',
+ '⨮' => '&roplus;',
+ '⨯' => '&Cross;',
+ '⨰' => '&timesd;',
+ '⨱' => '&timesbar;',
+ '⨳' => '&smashp;',
+ '⨴' => '&lotimes;',
+ '⨵' => '&rotimes;',
+ '⨶' => '&otimesas;',
+ '⨷' => '&Otimes;',
+ '⨸' => '&odiv;',
+ '⨹' => '&triplus;',
+ '⨺' => '&triminus;',
+ '⨻' => '&tritime;',
+ '⨼' => '&iprod;',
+ '⨿' => '&amalg;',
+ 'â©€' => '&capdot;',
+ 'â©‚' => '&ncup;',
+ 'â©' => '&ncap;',
+ 'â©„' => '&capand;',
+ 'â©…' => '&cupor;',
+ '⩆' => '&cupcap;',
+ '⩇' => '&capcup;',
+ 'â©' => '&cupbrcap;',
+ '⩉' => '&capbrcup;',
+ 'â©Š' => '&cupcup;',
+ 'â©‹' => '&capcap;',
+ 'â©Ś' => '&ccups;',
+ 'â©Ť' => '&ccaps;',
+ 'â©' => '&ccupssm;',
+ 'â©“' => '&And;',
+ 'â©”' => '&Or;',
+ 'â©•' => '&andand;',
+ 'â©–' => '&oror;',
+ 'â©—' => '&orslope;',
+ 'â©' => '&andslope;',
+ 'â©š' => '&andv;',
+ 'â©›' => '&orv;',
+ 'â©ś' => '&andd;',
+ 'â©ť' => '&ord;',
+ 'â©ź' => '&wedbar;',
+ '⩦' => '&sdote;',
+ 'â©Ş' => '&simdot;',
+ 'â©­' => '&congdot;',
+ '⩭̸' => '&ncongdot',
+ 'â©®' => '&easter;',
+ 'â©Ż' => '&apacir;',
+ 'â©°' => '&apE;',
+ '⩰̸' => '&napE',
+ '⩱' => '&eplus;',
+ '⩲' => '&pluse;',
+ 'â©ł' => '&Esim;',
+ 'â©´' => '&Colone;',
+ '⩵' => '&Equal;',
+ 'â©·' => '&ddotseq;',
+ '⩸' => '&equivDD;',
+ 'â©ą' => '&ltcir;',
+ 'â©ş' => '&gtcir;',
+ 'â©»' => '&ltquest;',
+ 'â©Ľ' => '&gtquest;',
+ 'â©˝' => '&les;',
+ '⩽̸' => '&nles',
+ 'â©ľ' => '&ges;',
+ '⩾̸' => '&nges',
+ 'â©ż' => '&lesdot;',
+ '⪀' => '&gesdot;',
+ 'âŞ' => '&lesdoto;',
+ '⪂' => '&gesdoto;',
+ 'âŞ' => '&lesdotor;',
+ '⪄' => '&gesdotol;',
+ '⪅' => '&lap;',
+ '⪆' => '&gap;',
+ '⪇' => '&lne;',
+ 'âŞ' => '&gne;',
+ '⪉' => '&lnap;',
+ '⪊' => '&gnap;',
+ '⪋' => '&lesseqqgtr;',
+ '⪌' => '&gEl;',
+ '⪍' => '&lsime;',
+ '⪎' => '&gsime;',
+ '⪏' => '&lsimg;',
+ 'âŞ' => '&gsiml;',
+ '⪑' => '&lgE;',
+ '⪒' => '&glE;',
+ '⪓' => '&lesges;',
+ '⪔' => '&gesles;',
+ '⪕' => '&els;',
+ '⪖' => '&egs;',
+ '⪗' => '&elsdot;',
+ 'âŞ' => '&egsdot;',
+ '⪙' => '&el;',
+ '⪚' => '&eg;',
+ '⪝' => '&siml;',
+ '⪞' => '&simg;',
+ '⪟' => '&simlE;',
+ '⪠' => '&simgE;',
+ '⪡' => '&LessLess;',
+ '⪡̸' => '&NotNestedLessLess',
+ '⪢' => '&GreaterGreater;',
+ '⪢̸' => '&NotNestedGreaterGreater',
+ '⪤' => '&glj;',
+ '⪥' => '&gla;',
+ '⪦' => '&ltcc;',
+ '⪧' => '&gtcc;',
+ '⪨' => '&lescc;',
+ '⪩' => '&gescc;',
+ '⪪' => '&smt;',
+ '⪫' => '&lat;',
+ '⪬' => '&smte;',
+ '⪬︀' => '&smtes',
+ '⪭' => '&late;',
+ '⪭︀' => '&lates',
+ '⪮' => '&bumpE;',
+ '⪯' => '&preceq;',
+ '⪯̸' => '&NotPrecedesEqual',
+ '⪰' => '&SucceedsEqual;',
+ '⪰̸' => '&NotSucceedsEqual',
+ '⪳' => '&prE;',
+ '⪴' => '&scE;',
+ '⪵' => '&precneqq;',
+ '⪶' => '&scnE;',
+ '⪷' => '&precapprox;',
+ '⪸' => '&succapprox;',
+ '⪹' => '&precnapprox;',
+ '⪺' => '&succnapprox;',
+ '⪻' => '&Pr;',
+ '⪼' => '&Sc;',
+ '⪽' => '&subdot;',
+ '⪾' => '&supdot;',
+ '⪿' => '&subplus;',
+ 'â«€' => '&supplus;',
+ 'â«' => '&submult;',
+ 'â«‚' => '&supmult;',
+ 'â«' => '&subedot;',
+ 'â«„' => '&supedot;',
+ 'â«…' => '&subE;',
+ '⫅̸' => '&nsubE',
+ '⫆' => '&supseteqq;',
+ '⫆̸' => '&nsupseteqq',
+ '⫇' => '&subsim;',
+ 'â«' => '&supsim;',
+ 'â«‹' => '&subsetneqq;',
+ '⫋︀' => '&vsubnE',
+ 'â«Ś' => '&supnE;',
+ '⫌︀' => '&varsupsetneqq',
+ 'â«Ź' => '&csub;',
+ 'â«' => '&csup;',
+ 'â«‘' => '&csube;',
+ 'â«’' => '&csupe;',
+ 'â«“' => '&subsup;',
+ 'â«”' => '&supsub;',
+ 'â«•' => '&subsub;',
+ 'â«–' => '&supsup;',
+ 'â«—' => '&suphsub;',
+ 'â«' => '&supdsub;',
+ 'â«™' => '&forkv;',
+ 'â«š' => '&topfork;',
+ 'â«›' => '&mlcp;',
+ '⫤' => '&Dashv;',
+ '⫦' => '&Vdashl;',
+ '⫧' => '&Barv;',
+ '⫨' => '&vBar;',
+ 'â«©' => '&vBarv;',
+ 'â««' => '&Vbar;',
+ '⫬' => '&Not;',
+ 'â«­' => '&bNot;',
+ 'â«®' => '&rnmid;',
+ 'â«Ż' => '&cirmid;',
+ 'â«°' => '&midcir;',
+ '⫱' => '&topcir;',
+ '⫲' => '&nhpar;',
+ 'â«ł' => '&parsim;',
+ '⫽︀' => '&varsupsetneqq',
+ 'ff' => '&fflig;',
+ 'ď¬' => '&filig;',
+ 'fl' => '&fllig;',
+ 'ď¬' => '&ffilig;',
+ 'ffl' => '&ffllig;',
+ 'đť’ś' => '&Ascr;',
+ 'đť’ž' => '&Cscr;',
+ 'đť’ź' => '&Dscr;',
+ 'đť’˘' => '&Gscr;',
+ 'đť’Ą' => '&Jscr;',
+ 'đť’¦' => '&Kscr;',
+ 'đť’©' => '&Nscr;',
+ 'đť’Ş' => '&Oscr;',
+ 'đť’«' => '&Pscr;',
+ 'đť’¬' => '&Qscr;',
+ 'đť’®' => '&Sscr;',
+ 'đť’Ż' => '&Tscr;',
+ 'đť’°' => '&Uscr;',
+ 'đť’±' => '&Vscr;',
+ 'đť’˛' => '&Wscr;',
+ 'đť’ł' => '&Xscr;',
+ 'đť’´' => '&Yscr;',
+ 'đť’µ' => '&Zscr;',
+ 'đť’¶' => '&ascr;',
+ 'đť’·' => '&bscr;',
+ 'đť’¸' => '&cscr;',
+ 'đť’ą' => '&dscr;',
+ 'đť’»' => '&fscr;',
+ 'đť’˝' => '&hscr;',
+ 'đť’ľ' => '&iscr;',
+ 'đť’ż' => '&jscr;',
+ 'đť“€' => '&kscr;',
+ 'đť“' => '&lscr;',
+ 'đť“‚' => '&mscr;',
+ 'đť“' => '&nscr;',
+ 'đť“…' => '&pscr;',
+ '𝓆' => '&qscr;',
+ '𝓇' => '&rscr;',
+ 'đť“' => '&sscr;',
+ '𝓉' => '&tscr;',
+ 'đť“Š' => '&uscr;',
+ 'đť“‹' => '&vscr;',
+ 'đť“Ś' => '&wscr;',
+ 'đť“Ť' => '&xscr;',
+ 'đť“Ž' => '&yscr;',
+ 'đť“Ź' => '&zscr;',
+ '𝔄' => '&Afr;',
+ 'đť”…' => '&Bfr;',
+ '𝔇' => '&Dfr;',
+ 'đť”' => '&Efr;',
+ '𝔉' => '&Ffr;',
+ '𝔊' => '&Gfr;',
+ '𝔍' => '&Jfr;',
+ '𝔎' => '&Kfr;',
+ '𝔏' => '&Lfr;',
+ 'đť”' => '&Mfr;',
+ '𝔑' => '&Nfr;',
+ 'đť”’' => '&Ofr;',
+ '𝔓' => '&Pfr;',
+ 'đť””' => '&Qfr;',
+ 'đť”–' => '&Sfr;',
+ 'đť”—' => '&Tfr;',
+ 'đť”' => '&Ufr;',
+ 'đť”™' => '&Vfr;',
+ '𝔚' => '&Wfr;',
+ 'đť”›' => '&Xfr;',
+ '𝔜' => '&Yfr;',
+ '𝔞' => '&afr;',
+ '𝔟' => '&bfr;',
+ 'đť” ' => '&cfr;',
+ '𝔡' => '&dfr;',
+ '𝔢' => '&efr;',
+ '𝔣' => '&ffr;',
+ '𝔤' => '&gfr;',
+ '𝔥' => '&hfr;',
+ '𝔦' => '&ifr;',
+ '𝔧' => '&jfr;',
+ '𝔨' => '&kfr;',
+ '𝔩' => '&lfr;',
+ '𝔪' => '&mfr;',
+ '𝔫' => '&nfr;',
+ '𝔬' => '&ofr;',
+ 'đť”­' => '&pfr;',
+ 'đť”®' => '&qfr;',
+ '𝔯' => '&rfr;',
+ 'đť”°' => '&sfr;',
+ 'đť”±' => '&tfr;',
+ '𝔲' => '&ufr;',
+ '𝔳' => '&vfr;',
+ 'đť”´' => '&wfr;',
+ '𝔵' => '&xfr;',
+ '𝔶' => '&yfr;',
+ 'đť”·' => '&zfr;',
+ '𝔸' => '&Aopf;',
+ '𝔹' => '&Bopf;',
+ 'đť”»' => '&Dopf;',
+ '𝔼' => '&Eopf;',
+ 'đť”˝' => '&Fopf;',
+ '𝔾' => '&Gopf;',
+ 'đť•€' => '&Iopf;',
+ 'đť•' => '&Jopf;',
+ 'đť•‚' => '&Kopf;',
+ 'đť•' => '&Lopf;',
+ 'đť•„' => '&Mopf;',
+ '𝕆' => '&Oopf;',
+ 'đť•Š' => '&Sopf;',
+ 'đť•‹' => '&Topf;',
+ 'đť•Ś' => '&Uopf;',
+ 'đť•Ť' => '&Vopf;',
+ 'đť•Ž' => '&Wopf;',
+ 'đť•Ź' => '&Xopf;',
+ 'đť•' => '&Yopf;',
+ 'đť•’' => '&aopf;',
+ 'đť•“' => '&bopf;',
+ 'đť•”' => '&copf;',
+ 'đť••' => '&dopf;',
+ 'đť•–' => '&eopf;',
+ 'đť•—' => '&fopf;',
+ 'đť•' => '&gopf;',
+ 'đť•™' => '&hopf;',
+ 'đť•š' => '&iopf;',
+ 'đť•›' => '&jopf;',
+ 'đť•ś' => '&kopf;',
+ 'đť•ť' => '&lopf;',
+ 'đť•ž' => '&mopf;',
+ 'đť•ź' => '&nopf;',
+ 'đť• ' => '&oopf;',
+ '𝕡' => '&popf;',
+ '𝕢' => '&qopf;',
+ 'đť•Ł' => '&ropf;',
+ '𝕤' => '&sopf;',
+ 'đť•Ą' => '&topf;',
+ '𝕦' => '&uopf;',
+ '𝕧' => '&vopf;',
+ '𝕨' => '&wopf;',
+ 'đť•©' => '&xopf;',
+ 'đť•Ş' => '&yopf;',
+ 'đť•«' => '&zopf;',
+ );
+}
diff --git a/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Serializer/OutputRules.php b/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Serializer/OutputRules.php
new file mode 100644
index 0000000..ec467f2
--- /dev/null
+++ b/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Serializer/OutputRules.php
@@ -0,0 +1,553 @@
+<?php
+/**
+ * @file
+ * The rules for generating output in the serializer.
+ *
+ * These output rules are likely to generate output similar to the document that
+ * was parsed. It is not intended to output exactly the document that was parsed.
+ */
+
+namespace Masterminds\HTML5\Serializer;
+
+use Masterminds\HTML5\Elements;
+
+/**
+ * Generate the output html5 based on element rules.
+ */
+class OutputRules implements RulesInterface
+{
+ /**
+ * Defined in http://www.w3.org/TR/html51/infrastructure.html#html-namespace-0.
+ */
+ const NAMESPACE_HTML = 'http://www.w3.org/1999/xhtml';
+
+ const NAMESPACE_MATHML = 'http://www.w3.org/1998/Math/MathML';
+
+ const NAMESPACE_SVG = 'http://www.w3.org/2000/svg';
+
+ const NAMESPACE_XLINK = 'http://www.w3.org/1999/xlink';
+
+ const NAMESPACE_XML = 'http://www.w3.org/XML/1998/namespace';
+
+ const NAMESPACE_XMLNS = 'http://www.w3.org/2000/xmlns/';
+
+ /**
+ * Holds the HTML5 element names that causes a namespace switch.
+ *
+ * @var array
+ */
+ protected $implicitNamespaces = array(
+ self::NAMESPACE_HTML,
+ self::NAMESPACE_SVG,
+ self::NAMESPACE_MATHML,
+ self::NAMESPACE_XML,
+ self::NAMESPACE_XMLNS,
+ );
+
+ const IM_IN_HTML = 1;
+
+ const IM_IN_SVG = 2;
+
+ const IM_IN_MATHML = 3;
+
+ /**
+ * Used as cache to detect if is available ENT_HTML5.
+ *
+ * @var bool
+ */
+ private $hasHTML5 = false;
+
+ protected $traverser;
+
+ protected $encode = false;
+
+ protected $out;
+
+ protected $outputMode;
+
+ private $xpath;
+
+ protected $nonBooleanAttributes = array(
+ /*
+ array(
+ 'nodeNamespace'=>'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 = '<!DOCTYPE html>';
+
+ 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('<!--')->wr($ele->data)->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 &amp;, no breaking space unicode characters
+ * converted to &nbsp;, when in attribute mode the " should be converted to
+ * &quot;, and when not in attribute mode the < and > should be converted to
+ * &lt; and &gt;.
+ *
+ * @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(
+ '"' => '&quot;',
+ '&' => '&amp;',
+ "\xc2\xa0" => '&nbsp;',
+ );
+ } else {
+ $replace = array(
+ '<' => '&lt;',
+ '>' => '&gt;',
+ '&' => '&amp;',
+ "\xc2\xa0" => '&nbsp;',
+ );
+ }
+
+ return strtr($text, $replace);
+ }
+}
diff --git a/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Serializer/README.md b/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Serializer/README.md
new file mode 100644
index 0000000..849a47f
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Serializer/RulesInterface.php b/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Serializer/RulesInterface.php
new file mode 100644
index 0000000..69a6ecd
--- /dev/null
+++ b/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Serializer/RulesInterface.php
@@ -0,0 +1,99 @@
+<?php
+/**
+ * @file
+ * The interface definition for Rules to generate output.
+ */
+
+namespace Masterminds\HTML5\Serializer;
+
+/**
+ * To create a new rule set for writing output the RulesInterface needs to be implemented.
+ * The resulting class can be specified in the options with the key of rules.
+ *
+ * For an example implementation see Serializer\OutputRules.
+ */
+interface RulesInterface
+{
+ /**
+ * The class constructor.
+ *
+ * Note, before the rules can be used a traverser must be registered.
+ *
+ * @param mixed $output The output stream to write output to.
+ * @param array $options An array of options.
+ */
+ public function __construct($output, $options = array());
+
+ /**
+ * Register the traverser used in but the rules.
+ *
+ * Note, only one traverser can be used by the rules.
+ *
+ * @param Traverser $traverser The traverser used in the rules.
+ *
+ * @return RulesInterface $this for the current object.
+ */
+ public function setTraverser(Traverser $traverser);
+
+ /**
+ * Write a document element (\DOMDocument).
+ *
+ * Instead of returning the result write it to the output stream ($output)
+ * that was passed into the constructor.
+ *
+ * @param \DOMDocument $dom
+ */
+ public function document($dom);
+
+ /**
+ * Write an element.
+ *
+ * Instead of returning the result write it to the output stream ($output)
+ * that was passed into the constructor.
+ *
+ * @param mixed $ele
+ */
+ public function element($ele);
+
+ /**
+ * Write a text node.
+ *
+ * Instead of returning the result write it to the output stream ($output)
+ * that was passed into the constructor.
+ *
+ * @param mixed $ele
+ */
+ public function text($ele);
+
+ /**
+ * Write a CDATA node.
+ *
+ * Instead of returning the result write it to the output stream ($output)
+ * that was passed into the constructor.
+ *
+ * @param mixed $ele
+ */
+ public function cdata($ele);
+
+ /**
+ * Write a comment node.
+ *
+ * Instead of returning the result write it to the output stream ($output)
+ * that was passed into the constructor.
+ *
+ * @param mixed $ele
+ */
+ public function comment($ele);
+
+ /**
+ * Write a processor instruction.
+ *
+ * To learn about processor instructions see InstructionProcessor
+ *
+ * Instead of returning the result write it to the output stream ($output)
+ * that was passed into the constructor.
+ *
+ * @param mixed $ele
+ */
+ public function processorInstruction($ele);
+}
diff --git a/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Serializer/Traverser.php b/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Serializer/Traverser.php
new file mode 100644
index 0000000..1e8d792
--- /dev/null
+++ b/library/vendor/dompdf/vendor/masterminds/html5/src/HTML5/Serializer/Traverser.php
@@ -0,0 +1,142 @@
+<?php
+
+namespace Masterminds\HTML5\Serializer;
+
+/**
+ * Traverser for walking a DOM tree.
+ *
+ * This is a concrete traverser designed to convert a DOM tree into an
+ * HTML5 document. It is not intended to be a generic DOMTreeWalker
+ * implementation.
+ *
+ * @see http://www.w3.org/TR/2012/CR-html5-20121217/syntax.html#serializing-html-fragments
+ */
+class Traverser
+{
+ /**
+ * Namespaces that should be treated as "local" to HTML5.
+ */
+ protected static $local_ns = array(
+ 'http://www.w3.org/1999/xhtml' => '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 '<!-- Skipped -->';
+ 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/library/vendor/dompdf/vendor/phenx/php-font-lib/LICENSE b/library/vendor/dompdf/vendor/phenx/php-font-lib/LICENSE
new file mode 100644
index 0000000..bca992d
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/phenx/php-font-lib/README.md b/library/vendor/dompdf/vendor/phenx/php-font-lib/README.md
new file mode 100644
index 0000000..0fa24ee
--- /dev/null
+++ b/library/vendor/dompdf/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() .'<br>';
+echo $font->getFontSubfamily() .'<br>';
+echo $font->getFontSubfamilyID() .'<br>';
+echo $font->getFontFullName() .'<br>';
+echo $font->getFontVersion() .'<br>';
+echo $font->getFontWeight() .'<br>';
+echo $font->getFontPostscriptName() .'<br>';
+```
diff --git a/library/vendor/dompdf/vendor/phenx/php-font-lib/bower.json b/library/vendor/dompdf/vendor/phenx/php-font-lib/bower.json
new file mode 100644
index 0000000..0a4a45b
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/phenx/php-font-lib/composer.json b/library/vendor/dompdf/vendor/phenx/php-font-lib/composer.json
new file mode 100644
index 0000000..29b0653
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/phenx/php-font-lib/index.php b/library/vendor/dompdf/vendor/phenx/php-font-lib/index.php
new file mode 100644
index 0000000..7ed173a
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-font-lib/index.php
@@ -0,0 +1 @@
+<?php header("Location: www/"); ?> \ No newline at end of file
diff --git a/library/vendor/dompdf/vendor/phenx/php-font-lib/maps/adobe-standard-encoding.map b/library/vendor/dompdf/vendor/phenx/php-font-lib/maps/adobe-standard-encoding.map
new file mode 100644
index 0000000..230d4a1
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-font-lib/maps/adobe-standard-encoding.map
@@ -0,0 +1,231 @@
+// Adobe Standard Encoding table for ttf2pt1
+// Thomas Henlich <Thomas.Henlich@mailbox.tu-dresden.de>
+
+=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/library/vendor/dompdf/vendor/phenx/php-font-lib/maps/cp1250.map b/library/vendor/dompdf/vendor/phenx/php-font-lib/maps/cp1250.map
new file mode 100644
index 0000000..33a555e
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/phenx/php-font-lib/maps/cp1251.map b/library/vendor/dompdf/vendor/phenx/php-font-lib/maps/cp1251.map
new file mode 100644
index 0000000..b5960fe
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/phenx/php-font-lib/maps/cp1252.map b/library/vendor/dompdf/vendor/phenx/php-font-lib/maps/cp1252.map
new file mode 100644
index 0000000..b79015c
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/phenx/php-font-lib/maps/cp1253.map b/library/vendor/dompdf/vendor/phenx/php-font-lib/maps/cp1253.map
new file mode 100644
index 0000000..b5d843c
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/phenx/php-font-lib/maps/cp1254.map b/library/vendor/dompdf/vendor/phenx/php-font-lib/maps/cp1254.map
new file mode 100644
index 0000000..3cc8c78
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/phenx/php-font-lib/maps/cp1255.map b/library/vendor/dompdf/vendor/phenx/php-font-lib/maps/cp1255.map
new file mode 100644
index 0000000..fa13530
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/phenx/php-font-lib/maps/cp1257.map b/library/vendor/dompdf/vendor/phenx/php-font-lib/maps/cp1257.map
new file mode 100644
index 0000000..077fdc3
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/phenx/php-font-lib/maps/cp1258.map b/library/vendor/dompdf/vendor/phenx/php-font-lib/maps/cp1258.map
new file mode 100644
index 0000000..7032c35
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/phenx/php-font-lib/maps/cp874.map b/library/vendor/dompdf/vendor/phenx/php-font-lib/maps/cp874.map
new file mode 100644
index 0000000..16330d0
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/phenx/php-font-lib/maps/iso-8859-1.map b/library/vendor/dompdf/vendor/phenx/php-font-lib/maps/iso-8859-1.map
new file mode 100644
index 0000000..74fb2fe
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/phenx/php-font-lib/maps/iso-8859-11.map b/library/vendor/dompdf/vendor/phenx/php-font-lib/maps/iso-8859-11.map
new file mode 100644
index 0000000..8cf6673
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/phenx/php-font-lib/maps/iso-8859-15.map b/library/vendor/dompdf/vendor/phenx/php-font-lib/maps/iso-8859-15.map
new file mode 100644
index 0000000..2689703
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/phenx/php-font-lib/maps/iso-8859-16.map b/library/vendor/dompdf/vendor/phenx/php-font-lib/maps/iso-8859-16.map
new file mode 100644
index 0000000..89b802a
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/phenx/php-font-lib/maps/iso-8859-2.map b/library/vendor/dompdf/vendor/phenx/php-font-lib/maps/iso-8859-2.map
new file mode 100644
index 0000000..af9588d
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/phenx/php-font-lib/maps/iso-8859-4.map b/library/vendor/dompdf/vendor/phenx/php-font-lib/maps/iso-8859-4.map
new file mode 100644
index 0000000..e81dd7f
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/phenx/php-font-lib/maps/iso-8859-5.map b/library/vendor/dompdf/vendor/phenx/php-font-lib/maps/iso-8859-5.map
new file mode 100644
index 0000000..8030fd5
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/phenx/php-font-lib/maps/iso-8859-7.map b/library/vendor/dompdf/vendor/phenx/php-font-lib/maps/iso-8859-7.map
new file mode 100644
index 0000000..be8698a
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/phenx/php-font-lib/maps/iso-8859-9.map b/library/vendor/dompdf/vendor/phenx/php-font-lib/maps/iso-8859-9.map
new file mode 100644
index 0000000..a60bb19
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/phenx/php-font-lib/maps/koi8-r.map b/library/vendor/dompdf/vendor/phenx/php-font-lib/maps/koi8-r.map
new file mode 100644
index 0000000..026880d
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/phenx/php-font-lib/maps/koi8-u.map b/library/vendor/dompdf/vendor/phenx/php-font-lib/maps/koi8-u.map
new file mode 100644
index 0000000..97d9d03
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/AdobeFontMetrics.php b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/AdobeFontMetrics.php
new file mode 100644
index 0000000..e75385f
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/AdobeFontMetrics.php
@@ -0,0 +1,217 @@
+<?php
+/**
+ * @package php-font-lib
+ * @link https://github.com/PhenX/php-font-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @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/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Autoloader.php b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Autoloader.php
new file mode 100644
index 0000000..cd30545
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Autoloader.php
@@ -0,0 +1,43 @@
+<?php
+/**
+ * @package php-font-lib
+ * @link https://github.com/PhenX/php-font-lib
+ * @author Fabien Ménager <fabien.menager@gmail.com>
+ * @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/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/BinaryStream.php b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/BinaryStream.php
new file mode 100644
index 0000000..c7eb52f
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/BinaryStream.php
@@ -0,0 +1,449 @@
+<?php
+/**
+ * @package php-font-lib
+ * @link https://github.com/PhenX/php-font-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @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/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/EOT/File.php b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/EOT/File.php
new file mode 100644
index 0000000..f51d876
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/EOT/File.php
@@ -0,0 +1,159 @@
+<?php
+/**
+ * @package php-font-lib
+ * @link https://github.com/PhenX/php-font-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @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/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/EOT/Header.php b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/EOT/Header.php
new file mode 100644
index 0000000..960e36a
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/EOT/Header.php
@@ -0,0 +1,113 @@
+<?php
+/**
+ * @package php-font-lib
+ * @link https://github.com/PhenX/php-font-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @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/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/EncodingMap.php b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/EncodingMap.php
new file mode 100644
index 0000000..2acdebc
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/EncodingMap.php
@@ -0,0 +1,37 @@
+<?php
+/**
+ * @package php-font-lib
+ * @link https://github.com/PhenX/php-font-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @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/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Exception/FontNotFoundException.php b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Exception/FontNotFoundException.php
new file mode 100644
index 0000000..d97f252
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Exception/FontNotFoundException.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace FontLib\Exception;
+
+class FontNotFoundException extends \Exception
+{
+ public function __construct($fontPath)
+ {
+ $this->message = 'Font not found in: ' . $fontPath;
+ }
+} \ No newline at end of file
diff --git a/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Font.php b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Font.php
new file mode 100644
index 0000000..e13a653
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Font.php
@@ -0,0 +1,89 @@
+<?php
+/**
+ * @package php-font-lib
+ * @link https://github.com/PhenX/php-font-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @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/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Glyph/Outline.php b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Glyph/Outline.php
new file mode 100644
index 0000000..639ff60
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Glyph/Outline.php
@@ -0,0 +1,109 @@
+<?php
+/**
+ * @package php-font-lib
+ * @link https://github.com/PhenX/php-font-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @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/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Glyph/OutlineComponent.php b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Glyph/OutlineComponent.php
new file mode 100644
index 0000000..9cafaf4
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Glyph/OutlineComponent.php
@@ -0,0 +1,31 @@
+<?php
+/**
+ * @package php-font-lib
+ * @link https://github.com/PhenX/php-font-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @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/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Glyph/OutlineComposite.php b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Glyph/OutlineComposite.php
new file mode 100644
index 0000000..8ab0d2c
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Glyph/OutlineComposite.php
@@ -0,0 +1,242 @@
+<?php
+/**
+ * @package php-font-lib
+ * @link https://github.com/PhenX/php-font-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @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/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Glyph/OutlineSimple.php b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Glyph/OutlineSimple.php
new file mode 100644
index 0000000..56b2fb4
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Glyph/OutlineSimple.php
@@ -0,0 +1,335 @@
+<?php
+/**
+ * @package php-font-lib
+ * @link https://github.com/PhenX/php-font-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @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/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Header.php b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Header.php
new file mode 100644
index 0000000..cbf137e
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Header.php
@@ -0,0 +1,37 @@
+<?php
+/**
+ * @package php-font-lib
+ * @link https://github.com/PhenX/php-font-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @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/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/OpenType/File.php b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/OpenType/File.php
new file mode 100644
index 0000000..9c6df96
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/OpenType/File.php
@@ -0,0 +1,18 @@
+<?php
+/**
+ * @package php-font-lib
+ * @link https://github.com/PhenX/php-font-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @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/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/OpenType/TableDirectoryEntry.php b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/OpenType/TableDirectoryEntry.php
new file mode 100644
index 0000000..dd75a3e
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/OpenType/TableDirectoryEntry.php
@@ -0,0 +1,18 @@
+<?php
+/**
+ * @package php-font-lib
+ * @link https://github.com/PhenX/php-font-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @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/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Table/DirectoryEntry.php b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Table/DirectoryEntry.php
new file mode 100644
index 0000000..54a67af
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Table/DirectoryEntry.php
@@ -0,0 +1,134 @@
+<?php
+/**
+ * @package php-font-lib
+ * @link https://github.com/PhenX/php-font-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @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/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Table/Table.php b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Table/Table.php
new file mode 100644
index 0000000..b127112
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Table/Table.php
@@ -0,0 +1,93 @@
+<?php
+/**
+ * @package php-font-lib
+ * @link https://github.com/PhenX/php-font-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @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 "<pre>" . var_export($this->data, true) . "</pre>";
+ }
+
+ 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/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Table/Type/cmap.php b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Table/Type/cmap.php
new file mode 100644
index 0000000..7db77e1
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Table/Type/cmap.php
@@ -0,0 +1,298 @@
+<?php
+/**
+ * @package php-font-lib
+ * @link https://github.com/PhenX/php-font-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @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/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Table/Type/glyf.php b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Table/Type/glyf.php
new file mode 100644
index 0000000..1fbec3f
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Table/Type/glyf.php
@@ -0,0 +1,154 @@
+<?php
+/**
+ * @package php-font-lib
+ * @link https://github.com/PhenX/php-font-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @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 = "<h3>" . "Only the first $n simple glyphs are shown (" . count($this->data) . " total)
+ <div class='glyph-view simple'>Simple glyph</div>
+ <div class='glyph-view composite'>Composite glyph</div>
+ Zoom: <input type='range' value='100' max='400' onchange='Glyph.resize(this.value)' />
+ </h3>
+ <script>
+ Glyph.ratio = $ratio;
+ Glyph.head = $head_json;
+ Glyph.os2 = $os2_json;
+ Glyph.hmtx = $hmtx_json;
+ Glyph.width = $width;
+ Glyph.height = $height;
+ </script>";
+
+ 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 .= "<div class='glyph-view $type' id='glyph-$g'>
+ <span class='glyph-id'>$g</span>
+ <span class='char'>$char</span>
+ <span class='char-name'>$name</span>
+ ";
+
+ if ($type == "composite") {
+ foreach ($glyph->getGlyphIDs() as $_id) {
+ $s .= "<a href='#glyph-$_id' class='glyph-component-id'>$_id</a> ";
+ }
+ }
+
+ $s .= "<br />
+ <canvas width='$width' height='$height' id='glyph-canvas-$g'></canvas>
+ </div>
+ <script>Glyph.glyphs.push([$g,$shape_json]);</script>";
+ }
+
+ 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/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Table/Type/head.php b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Table/Type/head.php
new file mode 100644
index 0000000..6349f14
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Table/Type/head.php
@@ -0,0 +1,46 @@
+<?php
+/**
+ * @package php-font-lib
+ * @link https://github.com/PhenX/php-font-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @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/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Table/Type/hhea.php b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Table/Type/hhea.php
new file mode 100644
index 0000000..dc60a14
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Table/Type/hhea.php
@@ -0,0 +1,44 @@
+<?php
+/**
+ * @package php-font-lib
+ * @link https://github.com/PhenX/php-font-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @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/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Table/Type/hmtx.php b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Table/Type/hmtx.php
new file mode 100644
index 0000000..76e3307
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Table/Type/hmtx.php
@@ -0,0 +1,59 @@
+<?php
+/**
+ * @package php-font-lib
+ * @link https://github.com/PhenX/php-font-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @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/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Table/Type/kern.php b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Table/Type/kern.php
new file mode 100644
index 0000000..9875946
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Table/Type/kern.php
@@ -0,0 +1,80 @@
+<?php
+/**
+ * @package php-font-lib
+ * @link https://github.com/PhenX/php-font-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @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/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Table/Type/loca.php b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Table/Type/loca.php
new file mode 100644
index 0000000..cbc2a20
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Table/Type/loca.php
@@ -0,0 +1,80 @@
+<?php
+/**
+ * @package php-font-lib
+ * @link https://github.com/PhenX/php-font-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @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/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Table/Type/maxp.php b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Table/Type/maxp.php
new file mode 100644
index 0000000..b4ebae0
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Table/Type/maxp.php
@@ -0,0 +1,42 @@
+<?php
+/**
+ * @package php-font-lib
+ * @link https://github.com/PhenX/php-font-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @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/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Table/Type/name.php b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Table/Type/name.php
new file mode 100644
index 0000000..794824d
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Table/Type/name.php
@@ -0,0 +1,193 @@
+<?php
+/**
+ * @package php-font-lib
+ * @link https://github.com/PhenX/php-font-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @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/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Table/Type/nameRecord.php b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Table/Type/nameRecord.php
new file mode 100644
index 0000000..2073c20
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Table/Type/nameRecord.php
@@ -0,0 +1,53 @@
+<?php
+/**
+ * @package php-font-lib
+ * @link https://github.com/PhenX/php-font-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @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/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Table/Type/os2.php b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Table/Type/os2.php
new file mode 100644
index 0000000..19a3e21
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Table/Type/os2.php
@@ -0,0 +1,47 @@
+<?php
+/**
+ * @package php-font-lib
+ * @link https://github.com/PhenX/php-font-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @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/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Table/Type/post.php b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Table/Type/post.php
new file mode 100644
index 0000000..030a942
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/Table/Type/post.php
@@ -0,0 +1,143 @@
+<?php
+/**
+ * @package php-font-lib
+ * @link https://github.com/PhenX/php-font-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @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/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/TrueType/Collection.php b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/TrueType/Collection.php
new file mode 100644
index 0000000..460ef4d
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/TrueType/Collection.php
@@ -0,0 +1,100 @@
+<?php
+/**
+ * @package php-font-lib
+ * @link https://github.com/PhenX/php-font-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @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/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/TrueType/File.php b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/TrueType/File.php
new file mode 100644
index 0000000..3594479
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/TrueType/File.php
@@ -0,0 +1,471 @@
+<?php
+/**
+ * @package php-font-lib
+ * @link https://github.com/PhenX/php-font-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @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/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/TrueType/Header.php b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/TrueType/Header.php
new file mode 100644
index 0000000..7ff79cc
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/TrueType/Header.php
@@ -0,0 +1,31 @@
+<?php
+/**
+ * @package php-font-lib
+ * @link https://github.com/PhenX/php-font-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @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/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/TrueType/TableDirectoryEntry.php b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/TrueType/TableDirectoryEntry.php
new file mode 100644
index 0000000..fc4fe55
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/TrueType/TableDirectoryEntry.php
@@ -0,0 +1,33 @@
+<?php
+/**
+ * @package php-font-lib
+ * @link https://github.com/PhenX/php-font-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @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/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/WOFF/File.php b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/WOFF/File.php
new file mode 100644
index 0000000..4668c23
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/WOFF/File.php
@@ -0,0 +1,81 @@
+<?php
+/**
+ * @package php-font-lib
+ * @link https://github.com/PhenX/php-font-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @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/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/WOFF/Header.php b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/WOFF/Header.php
new file mode 100644
index 0000000..65a6f14
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/WOFF/Header.php
@@ -0,0 +1,32 @@
+<?php
+/**
+ * @package php-font-lib
+ * @link https://github.com/PhenX/php-font-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @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/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/WOFF/TableDirectoryEntry.php b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/WOFF/TableDirectoryEntry.php
new file mode 100644
index 0000000..eb67c9c
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-font-lib/src/FontLib/WOFF/TableDirectoryEntry.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * @package php-font-lib
+ * @link https://github.com/PhenX/php-font-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @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/library/vendor/dompdf/vendor/phenx/php-svg-lib/LICENSE b/library/vendor/dompdf/vendor/phenx/php-svg-lib/LICENSE
new file mode 100644
index 0000000..0a04128
--- /dev/null
+++ b/library/vendor/dompdf/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. <https://fsf.org/>
+ 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/library/vendor/dompdf/vendor/phenx/php-svg-lib/README.md b/library/vendor/dompdf/vendor/phenx/php-svg-lib/README.md
new file mode 100644
index 0000000..2b8e6f6
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/phenx/php-svg-lib/composer.json b/library/vendor/dompdf/vendor/phenx/php-svg-lib/composer.json
new file mode 100644
index 0000000..a6ed9c5
--- /dev/null
+++ b/library/vendor/dompdf/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/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/CssLength.php b/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/CssLength.php
new file mode 100644
index 0000000..88eda8c
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/CssLength.php
@@ -0,0 +1,135 @@
+<?php
+
+namespace Svg;
+
+class CssLength
+{
+ /**
+ * Array of valid css length units.
+ * Should be pre-sorted by unit text length so no earlier length can be
+ * contained within a latter (eg. 'in' within 'vmin').
+ *
+ * @var string[]
+ */
+ protected static $units = [
+ 'vmax',
+ 'vmin',
+ 'rem',
+ 'px',
+ 'pt',
+ 'cm',
+ 'mm',
+ 'in',
+ 'pc',
+ 'em',
+ 'ex',
+ 'ch',
+ 'vw',
+ 'vh',
+ '%',
+ 'q',
+ ];
+
+ /**
+ * A list of units that are inch-relative, and their unit division within an inch.
+ *
+ * @var array<string, float>
+ */
+ 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/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/DefaultStyle.php b/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/DefaultStyle.php
new file mode 100644
index 0000000..4e73d29
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/DefaultStyle.php
@@ -0,0 +1,29 @@
+<?php
+/**
+ * @package php-svg-lib
+ * @link http://github.com/PhenX/php-svg-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @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/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Document.php b/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Document.php
new file mode 100644
index 0000000..4de226e
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Document.php
@@ -0,0 +1,406 @@
+<?php
+/**
+ * @package php-svg-lib
+ * @link http://github.com/PhenX/php-svg-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @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/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Gradient/Stop.php b/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Gradient/Stop.php
new file mode 100644
index 0000000..a37fb97
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Gradient/Stop.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * @package php-svg-lib
+ * @link http://github.com/PhenX/php-svg-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @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/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Style.php b/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Style.php
new file mode 100644
index 0000000..14b11e9
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Style.php
@@ -0,0 +1,541 @@
+<?php
+/**
+ * @package php-svg-lib
+ * @link http://github.com/PhenX/php-svg-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @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/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Surface/CPdf.php b/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Surface/CPdf.php
new file mode 100644
index 0000000..caa28a8
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Surface/CPdf.php
@@ -0,0 +1,6418 @@
+<?php
+/**
+ * A PHP class to provide the basic functionality to create a pdf document without
+ * any requirement for additional modules.
+ *
+ * Extended by Orion Richardson to support Unicode / UTF-8 characters using
+ * TCPDF and others as a guide.
+ *
+ * @author Wayne Munro <pdf@ros.co.nz>
+ * @author Orion Richardson <orionr@yahoo.com>
+ * @author Helmut Tischer <htischer@weihenstephan.org>
+ * @author Ryan H. Masten <ryan.masten@gmail.com>
+ * @author Brian Sweeney <eclecticgeek@gmail.com>
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @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<</Type /Font\n/Subtype /Type0\n";
+ $res .= "/BaseFont /" . $o['info']['name'] . "\n";
+
+ // The horizontal identity mapping for 2-byte CIDs; may be used
+ // with CIDFonts using any Registry, Ordering, and Supplement values.
+ $res .= "/Encoding /Identity-H\n";
+ $res .= "/DescendantFonts [" . $o['info']['cidFont'] . " 0 R]\n";
+ $res .= "/ToUnicode " . $o['info']['toUnicode'] . " 0 R\n";
+ $res .= ">>\n";
+ $res .= "endobj";
+ } else {
+ $res = "\n$id 0 obj\n<< /Type /Font\n/Subtype /" . $o['info']['SubType'] . "\n";
+ $res .= "/Name /F" . $o['info']['fontNum'] . "\n";
+ $res .= "/BaseFont /" . $o['info']['name'] . "\n";
+
+ if (isset($o['info']['encodingDictionary'])) {
+ // then place a reference to the dictionary
+ $res .= "/Encoding " . $o['info']['encodingDictionary'] . " 0 R\n";
+ } else {
+ if (isset($o['info']['encoding'])) {
+ // use the specified encoding
+ $res .= "/Encoding /" . $o['info']['encoding'] . "\n";
+ }
+ }
+
+ if (isset($o['info']['FirstChar'])) {
+ $res .= "/FirstChar " . $o['info']['FirstChar'] . "\n";
+ }
+
+ if (isset($o['info']['LastChar'])) {
+ $res .= "/LastChar " . $o['info']['LastChar'] . "\n";
+ }
+
+ if (isset($o['info']['Widths'])) {
+ $res .= "/Widths " . $o['info']['Widths'] . " 0 R\n";
+ }
+
+ if (isset($o['info']['FontDescriptor'])) {
+ $res .= "/FontDescriptor " . $o['info']['FontDescriptor'] . " 0 R\n";
+ }
+
+ $res .= ">>\n";
+ $res .= "endobj";
+ }
+
+ return $res;
+ }
+
+ return null;
+ }
+
+ protected function getFontSubsettingTag(array $font): string
+ {
+ // convert font num to hexavigesimal numeral system letters A - Z only
+ $base_26 = strtoupper(base_convert($font['fontNum'], 10, 26));
+ for ($i = 0; $i < strlen($base_26); $i++) {
+ $char = $base_26[$i];
+ if ($char <= "9") {
+ $base_26[$i] = chr(65 + intval($char));
+ } else {
+ $base_26[$i] = chr(ord($char) + 10);
+ }
+ }
+
+ return 'SUB' . str_pad($base_26, 3 , 'A', STR_PAD_LEFT);
+ }
+
+ /**
+ * @param int $fontObjId
+ * @param array $object_info
+ * @return array|false
+ * @throws FontNotFoundException
+ */
+ private function processFont(int $fontObjId, array $object_info)
+ {
+ $fontFileName = $object_info['fontFileName'];
+ if (!isset($this->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 = <<<EOT
+/CIDInit /ProcSet findresource begin
+12 dict begin
+begincmap
+/CIDSystemInfo
+<</Registry ($registry)
+/Ordering ($ordering)
+/Supplement 0
+>> def
+/CMapName /Adobe-Identity-UCS def
+/CMapType 2 def
+1 begincodespacerange
+<0000> <FFFF>
+endcodespacerange
+1 beginbfrange
+<0000> <FFFF> <0000>
+endbfrange
+endcmap
+CMapName currentdict /CMap defineresource pop
+end
+end
+EOT;
+
+ $res = "\n$id 0 obj\n";
+ $res .= "<</Length " . mb_strlen($stream, '8bit') . " >>\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 .= "<</Type /Font\n";
+ $res .= "/Subtype /CIDFontType2\n";
+ $res .= "/BaseFont /" . $o['info']['name'] . "\n";
+ $res .= "/CIDSystemInfo " . $o['info']['cidSystemInfo'] . " 0 R\n";
+ // if (isset($o['info']['FirstChar'])) {
+ // $res.= "/FirstChar ".$o['info']['FirstChar']."\n";
+ // }
+
+ // if (isset($o['info']['LastChar'])) {
+ // $res.= "/LastChar ".$o['info']['LastChar']."\n";
+ // }
+ if (isset($o['info']['FontDescriptor'])) {
+ $res .= "/FontDescriptor " . $o['info']['FontDescriptor'] . " 0 R\n";
+ }
+
+ if (isset($o['info']['MissingWidth'])) {
+ $res .= "/DW " . $o['info']['MissingWidth'] . "\n";
+ }
+
+ if (isset($o['info']['fontFileName']) && isset($this->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 .= '<</Registry (' . $registry . ")\n"; // A string identifying an issuer of character collections
+ $res .= '/Ordering (' . $ordering . ")\n"; // A string that uniquely names a character collection issued by a specific registry
+ $res .= "/Supplement 0\n"; // The supplement number of the character collection.
+ $res .= ">>";
+
+ $res .= "\nendobj";
+
+ return $res;
+ }
+
+ return null;
+ }
+
+ /**
+ * a font glyph to character map, needed for unicode fonts
+ *
+ * @param $id
+ * @param $action
+ * @param string $options
+ * @return null|string
+ */
+ protected function o_fontGIDtoCIDMap($id, $action, $options = '')
+ {
+ if ($action !== 'new') {
+ $o = &$this->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 <</Type /Filespec /EF";
+ $res .= " <</F " . $info['embedded_reference'] . " 0 R >>";
+ $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 <</Params <</Size $file_size_uncompressed /CheckSum ($checksum) >>" .
+ " /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, '<?php return ' . $old_cache . ';');
+
+ $this->openFont($font);
+ return;
+ }
+ }
+
+ if (!isset($this->fonts[$font]) && file_exists($dir . $metrics_name)) {
+ // then rebuild the php_<font>.afm file from the <font>.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, '<?php return ' . var_export($data, true) . ';');
+ }
+ $data = null;
+ }
+
+ if (!isset($this->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("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... <b></b> <i></i>
+ $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/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Surface/SurfaceCpdf.php b/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Surface/SurfaceCpdf.php
new file mode 100644
index 0000000..62cc74a
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Surface/SurfaceCpdf.php
@@ -0,0 +1,495 @@
+<?php
+/**
+ * @package php-svg-lib
+ * @link http://github.com/PhenX/php-svg-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @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/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Surface/SurfaceInterface.php b/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Surface/SurfaceInterface.php
new file mode 100644
index 0000000..25b3001
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Surface/SurfaceInterface.php
@@ -0,0 +1,90 @@
+<?php
+/**
+ * @package php-svg-lib
+ * @link http://github.com/PhenX/php-svg-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @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/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Surface/SurfacePDFLib.php b/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Surface/SurfacePDFLib.php
new file mode 100644
index 0000000..3d25aef
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Surface/SurfacePDFLib.php
@@ -0,0 +1,430 @@
+<?php
+/**
+ * @package php-svg-lib
+ * @link http://github.com/PhenX/php-svg-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @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/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/AbstractTag.php b/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/AbstractTag.php
new file mode 100644
index 0000000..9fa6793
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/AbstractTag.php
@@ -0,0 +1,236 @@
+<?php
+/**
+ * @package php-svg-lib
+ * @link http://github.com/PhenX/php-svg-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @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/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/Anchor.php b/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/Anchor.php
new file mode 100644
index 0000000..6979495
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/Anchor.php
@@ -0,0 +1,14 @@
+<?php
+/**
+ * @package php-svg-lib
+ * @link http://github.com/PhenX/php-svg-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @license GNU LGPLv3+ http://www.gnu.org/copyleft/lesser.html
+ */
+
+namespace Svg\Tag;
+
+class Anchor extends Group
+{
+
+}
diff --git a/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/Circle.php b/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/Circle.php
new file mode 100644
index 0000000..e504ffe
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/Circle.php
@@ -0,0 +1,36 @@
+<?php
+/**
+ * @package php-svg-lib
+ * @link http://github.com/PhenX/php-svg-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @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/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/ClipPath.php b/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/ClipPath.php
new file mode 100644
index 0000000..46722f9
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/ClipPath.php
@@ -0,0 +1,33 @@
+<?php
+/**
+ * @package php-svg-lib
+ * @link http://github.com/PhenX/php-svg-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @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/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/Ellipse.php b/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/Ellipse.php
new file mode 100644
index 0000000..42891e0
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/Ellipse.php
@@ -0,0 +1,42 @@
+<?php
+/**
+ * @package php-svg-lib
+ * @link http://github.com/PhenX/php-svg-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @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/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/Group.php b/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/Group.php
new file mode 100644
index 0000000..bacb385
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/Group.php
@@ -0,0 +1,33 @@
+<?php
+/**
+ * @package php-svg-lib
+ * @link http://github.com/PhenX/php-svg-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @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/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/Image.php b/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/Image.php
new file mode 100644
index 0000000..bda17ea
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/Image.php
@@ -0,0 +1,68 @@
+<?php
+/**
+ * @package php-svg-lib
+ * @link http://github.com/PhenX/php-svg-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @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/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/Line.php b/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/Line.php
new file mode 100644
index 0000000..fb3b64c
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/Line.php
@@ -0,0 +1,43 @@
+<?php
+/**
+ * @package php-svg-lib
+ * @link http://github.com/PhenX/php-svg-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @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/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/LinearGradient.php b/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/LinearGradient.php
new file mode 100644
index 0000000..c5e6397
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/LinearGradient.php
@@ -0,0 +1,83 @@
+<?php
+/**
+ * @package php-svg-lib
+ * @link http://github.com/PhenX/php-svg-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @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/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/Path.php b/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/Path.php
new file mode 100644
index 0000000..3dce7a6
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/Path.php
@@ -0,0 +1,576 @@
+<?php
+/**
+ * @package php-svg-lib
+ * @link http://github.com/PhenX/php-svg-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @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/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/Polygon.php b/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/Polygon.php
new file mode 100644
index 0000000..e7ca92a
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/Polygon.php
@@ -0,0 +1,42 @@
+<?php
+/**
+ * @package php-svg-lib
+ * @link http://github.com/PhenX/php-svg-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @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/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/Polyline.php b/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/Polyline.php
new file mode 100644
index 0000000..45e2131
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/Polyline.php
@@ -0,0 +1,40 @@
+<?php
+/**
+ * @package php-svg-lib
+ * @link http://github.com/PhenX/php-svg-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @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/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/RadialGradient.php b/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/RadialGradient.php
new file mode 100644
index 0000000..a9de62f
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/RadialGradient.php
@@ -0,0 +1,17 @@
+<?php
+/**
+ * @package php-svg-lib
+ * @link http://github.com/PhenX/php-svg-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @license GNU LGPLv3+ http://www.gnu.org/copyleft/lesser.html
+ */
+
+namespace Svg\Tag;
+
+class RadialGradient extends AbstractTag
+{
+ public function start($attributes)
+ {
+
+ }
+}
diff --git a/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/Rect.php b/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/Rect.php
new file mode 100644
index 0000000..b5f3f77
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/Rect.php
@@ -0,0 +1,50 @@
+<?php
+/**
+ * @package php-svg-lib
+ * @link http://github.com/PhenX/php-svg-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @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/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/Shape.php b/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/Shape.php
new file mode 100644
index 0000000..767e81d
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/Shape.php
@@ -0,0 +1,63 @@
+<?php
+/**
+ * @package php-svg-lib
+ * @link http://github.com/PhenX/php-svg-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @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/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/Stop.php b/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/Stop.php
new file mode 100644
index 0000000..22c9a98
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/Stop.php
@@ -0,0 +1,17 @@
+<?php
+/**
+ * @package php-svg-lib
+ * @link http://github.com/PhenX/php-svg-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @license GNU LGPLv3+ http://www.gnu.org/copyleft/lesser.html
+ */
+
+namespace Svg\Tag;
+
+class Stop extends AbstractTag
+{
+ public function start($attributes)
+ {
+
+ }
+}
diff --git a/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/StyleTag.php b/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/StyleTag.php
new file mode 100644
index 0000000..309de01
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/StyleTag.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * @package php-svg-lib
+ * @link http://github.com/PhenX/php-svg-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @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/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/Text.php b/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/Text.php
new file mode 100644
index 0000000..80e08a6
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/Text.php
@@ -0,0 +1,72 @@
+<?php
+/**
+ * @package php-svg-lib
+ * @link http://github.com/PhenX/php-svg-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @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/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/UseTag.php b/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/UseTag.php
new file mode 100644
index 0000000..c5f00ea
--- /dev/null
+++ b/library/vendor/dompdf/vendor/phenx/php-svg-lib/src/Svg/Tag/UseTag.php
@@ -0,0 +1,102 @@
+<?php
+/**
+ * @package php-svg-lib
+ * @link http://github.com/PhenX/php-svg-lib
+ * @author Fabien MĂ©nager <fabien.menager@gmail.com>
+ * @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/library/vendor/dompdf/vendor/sabberworm/php-css-parser/CHANGELOG.md b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/CHANGELOG.md
new file mode 100644
index 0000000..a23fd0e
--- /dev/null
+++ b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/CHANGELOG.md
@@ -0,0 +1,241 @@
+# Revision History
+
+## 8.4.0
+
+### Features
+
+* Support for PHP 8.x
+* PHPDoc annotations
+* Allow usage of CSS variables inside color functions (by parsing them as regular functions)
+* Use PSR-12 code style
+* *No deprecations*
+
+### Bugfixes
+
+* Improved handling of whitespace in `calc()`
+* Fix parsing units whose prefix is also a valid unit, like `vmin`
+* Allow passing an object to `CSSList#replace`
+* Fix PHP 7.3 warnings
+* Correctly parse keyframes with `%`
+* Don’t convert large numbers to scientific notation
+* Allow a file to end after an `@import`
+* Preserve case of CSS variables as specced
+* Allow identifiers to use escapes the same way as strings
+* No longer use `eval` for the comparison in `getSelectorsBySpecificity`, in case it gets passed untrusted input (CVE-2020-13756). Also fixed in 8.3.1, 8.2.1, 8.1.1, 8.0.1, 7.0.4, 6.0.2, 5.2.1, 5.1.3, 5.0.9, 4.0.1, 3.0.1, 2.0.1, 1.0.1.
+* Prevent an infinite loop when parsing invalid grid line names
+* Remove invalid unit `vm`
+* Retain rule order after expanding shorthands
+
+### Backwards-incompatible changes
+
+* PHP ≥ 5.6 is now required
+* HHVM compatibility target dropped
+
+## 8.3.0 (2019-02-22)
+
+* Refactor parsing logic to mostly reside in the class files whose data structure is to be parsed (this should eventually allow us to unit-test specific parts of the parsing logic individually).
+* Fix error in parsing `calc` expessions when the first operand is a negative number, thanks to @raxbg.
+* Support parsing CSS4 colors in hex notation with alpha values, thanks to @raxbg.
+* Swallow more errors in lenient mode, thanks to @raxbg.
+* Allow specifying arbitrary strings to output before and after declaration blocks, thanks to @westonruter.
+* *No backwards-incompatible changes*
+* *No deprecations*
+
+## 8.2.0 (2018-07-13)
+
+* Support parsing `calc()`, thanks to @raxbg.
+* Support parsing grid-lines, again thanks to @raxbg.
+* Support parsing legacy IE filters (`progid:`) in lenient mode, thanks to @FMCorz
+* Performance improvements parsing large files, again thanks to @FMCorz
+* *No backwards-incompatible changes*
+* *No deprecations*
+
+## 8.1.0 (2016-07-19)
+
+* Comments are no longer silently ignored but stored with the object with which they appear (no render support, though). Thanks to @FMCorz.
+* The IE hacks using `\0` and `\9` can now be parsed (and rendered) in lenient mode. Thanks (again) to @FMCorz.
+* Media queries with or without spaces before the query are parsed. Still no *real* parsing support, though. Sorry…
+* PHPUnit is now listed as a dev-dependency in composer.json.
+* *No backwards-incompatible changes*
+* *No deprecations*
+
+## 8.0.0 (2016-06-30)
+
+* Store source CSS line numbers in tokens and parsing exceptions.
+* *No deprecations*
+
+### Backwards-incompatible changes
+
+* Unrecoverable parser errors throw an exception of type `Sabberworm\CSS\Parsing\SourceException` instead of `\Exception`.
+
+## 7.0.3 (2016-04-27)
+
+* Fixed parsing empty CSS when multibyte is off
+* *No backwards-incompatible changes*
+* *No deprecations*
+
+## 7.0.2 (2016-02-11)
+
+* 150 time performance boost thanks to @[ossinkine](https://github.com/ossinkine)
+* *No backwards-incompatible changes*
+* *No deprecations*
+
+## 7.0.1 (2015-12-25)
+
+* No more suppressed `E_NOTICE`
+* *No backwards-incompatible changes*
+* *No deprecations*
+
+## 7.0.0 (2015-08-24)
+
+* Compatibility with PHP 7. Well timed, eh?
+* *No deprecations*
+
+### Backwards-incompatible changes
+
+* The `Sabberworm\CSS\Value\String` class has been renamed to `Sabberworm\CSS\Value\CSSString`.
+
+## 6.0.1 (2015-08-24)
+
+* Remove some declarations in interfaces incompatible with PHP 5.3 (< 5.3.9)
+* *No deprecations*
+
+## 6.0.0 (2014-07-03)
+
+* Format output using Sabberworm\CSS\OutputFormat
+* *No backwards-incompatible changes*
+
+### Deprecations
+
+* The parse() method replaces __toString with an optional argument (instance of the OutputFormat class)
+
+## 5.2.0 (2014-06-30)
+
+* Support removing a selector from a declaration block using `$oBlock->removeSelector($mSelector)`
+* Introduce a specialized exception (Sabberworm\CSS\Parsing\OuputException) for exceptions during output rendering
+
+* *No deprecations*
+
+#### Backwards-incompatible changes
+
+* Outputting a declaration block that has no selectors throws an OuputException instead of outputting an invalid ` {…}` into the CSS document.
+
+## 5.1.2 (2013-10-30)
+
+* Remove the use of consumeUntil in comment parsing. This makes it possible to parse comments such as `/** Perfectly valid **/`
+* Add fr relative size unit
+* Fix some issues with HHVM
+* *No backwards-incompatible changes*
+* *No deprecations*
+
+## 5.1.1 (2013-10-28)
+
+* Updated CHANGELOG.md to reflect changes since 5.0.4
+* *No backwards-incompatible changes*
+* *No deprecations*
+
+## 5.1.0 (2013-10-24)
+
+* Performance enhancements by Michael M Slusarz
+* More rescue entry points for lenient parsing (unexpected tokens between declaration blocks and unclosed comments)
+* *No backwards-incompatible changes*
+* *No deprecations*
+
+## 5.0.8 (2013-08-15)
+
+* Make default settings’ multibyte parsing option dependent on whether or not the mbstring extension is actually installed.
+* *No backwards-incompatible changes*
+* *No deprecations*
+
+## 5.0.7 (2013-08-04)
+
+* Fix broken decimal point output optimization
+* *No backwards-incompatible changes*
+* *No deprecations*
+
+## 5.0.6 (2013-05-31)
+
+* Fix broken unit test
+* *No backwards-incompatible changes*
+* *No deprecations*
+
+## 5.0.5 (2013-04-17)
+
+* Initial support for lenient parsing (setting this parser option will catch some exceptions internally and recover the parser’s state as neatly as possible).
+* *No backwards-incompatible changes*
+* *No deprecations*
+
+## 5.0.4 (2013-03-21)
+
+* Don’t output floats with locale-aware separator chars
+* *No backwards-incompatible changes*
+* *No deprecations*
+
+## 5.0.3 (2013-03-21)
+
+* More size units recognized
+* *No backwards-incompatible changes*
+* *No deprecations*
+
+## 5.0.2 (2013-03-21)
+
+* CHANGELOG.md file added to distribution
+* *No backwards-incompatible changes*
+* *No deprecations*
+
+## 5.0.1 (2013-03-20)
+
+* Internal cleanup
+* *No backwards-incompatible changes*
+* *No deprecations*
+
+## 5.0.0 (2013-03-20)
+
+* Correctly parse all known CSS 3 units (including Hz and kHz).
+* Output RGB colors in short (#aaa or #ababab) notation
+* Be case-insensitive when parsing identifiers.
+* *No deprecations*
+
+### Backwards-incompatible changes
+
+* `Sabberworm\CSS\Value\Color`’s `__toString` method overrides `CSSList`’s to maybe return something other than `type(value, …)` (see above).
+
+## 4.0.0 (2013-03-19)
+
+* Support for more @-rules
+* Generic interface `Sabberworm\CSS\Property\AtRule`, implemented by all @-rule classes
+* *No deprecations*
+
+### Backwards-incompatible changes
+
+* `Sabberworm\CSS\RuleSet\AtRule` renamed to `Sabberworm\CSS\RuleSet\AtRuleSet`
+* `Sabberworm\CSS\CSSList\MediaQuery` renamed to `Sabberworm\CSS\RuleSet\CSSList\AtRuleBlockList` with differing semantics and API (which also works for other block-list-based @-rules like `@supports`).
+
+## 3.0.0 (2013-03-06)
+
+* Support for lenient parsing (on by default)
+* *No deprecations*
+
+### Backwards-incompatible changes
+
+* All properties (like whether or not to use `mb_`-functions, which default charset to use and – new – whether or not to be forgiving when parsing) are now encapsulated in an instance of `Sabberworm\CSS\Settings` which can be passed as the second argument to `Sabberworm\CSS\Parser->__construct()`.
+* Specifying a charset as the second argument to `Sabberworm\CSS\Parser->__construct()` is no longer supported. Use `Sabberworm\CSS\Settings::create()->withDefaultCharset('some-charset')` instead.
+* Setting `Sabberworm\CSS\Parser->bUseMbFunctions` has no effect. Use `Sabberworm\CSS\Settings::create()->withMultibyteSupport(true/false)` instead.
+* `Sabberworm\CSS\Parser->parse()` may throw a `Sabberworm\CSS\Parsing\UnexpectedTokenException` when in strict parsing mode.
+
+## 2.0.0 (2013-01-29)
+
+* Allow multiple rules of the same type per rule set
+
+### Backwards-incompatible changes
+
+* `Sabberworm\CSS\RuleSet->getRules()` returns an index-based array instead of an associative array. Use `Sabberworm\CSS\RuleSet->getRulesAssoc()` (which eliminates duplicate rules and lets the later rule of the same name win).
+* `Sabberworm\CSS\RuleSet->removeRule()` works as it did before except when passed an instance of `Sabberworm\CSS\Rule\Rule`, in which case it would only remove the exact rule given instead of all the rules of the same type. To get the old behaviour, use `Sabberworm\CSS\RuleSet->removeRule($oRule->getRule()`;
+
+## 1.0
+
+Initial release of a stable public API.
+
+## 0.9
+
+Last version not to use PSR-0 project organization semantics.
diff --git a/library/vendor/dompdf/vendor/sabberworm/php-css-parser/LICENSE b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/LICENSE
new file mode 100644
index 0000000..686a4e3
--- /dev/null
+++ b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2011 Raphael Schweikert, https://www.sabberworm.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/library/vendor/dompdf/vendor/sabberworm/php-css-parser/README.md b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/README.md
new file mode 100644
index 0000000..66fb1c6
--- /dev/null
+++ b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/README.md
@@ -0,0 +1,632 @@
+# PHP CSS Parser
+
+[![Build Status](https://github.com/sabberworm/PHP-CSS-Parser/workflows/CI/badge.svg?branch=master)](https://github.com/sabberworm/PHP-CSS-Parser/actions/)
+
+A Parser for CSS Files written in PHP. Allows extraction of CSS files into a data structure, manipulation of said structure and output as (optimized) CSS.
+
+## Usage
+
+### Installation using Composer
+
+```bash
+composer require sabberworm/php-css-parser
+```
+
+### Extraction
+
+To use the CSS Parser, create a new instance. The constructor takes the following form:
+
+```php
+new \Sabberworm\CSS\Parser($css);
+```
+
+To read a file, for example, you’d do the following:
+
+```php
+$parser = new \Sabberworm\CSS\Parser(file_get_contents('somefile.css'));
+$cssDocument = $parser->parse();
+```
+
+The resulting CSS document structure can be manipulated prior to being output.
+
+### Options
+
+#### Charset
+
+The charset option is used only if no `@charset` declaration is found in the CSS file. UTF-8 is the default, so you won’t have to create a settings object at all if you don’t intend to change that.
+
+```php
+$settings = \Sabberworm\CSS\Settings::create()
+ ->withDefaultCharset('windows-1252');
+$parser = new \Sabberworm\CSS\Parser($css, $settings);
+```
+
+#### Strict parsing
+
+To have the parser choke on invalid rules, supply a thusly configured `\Sabberworm\CSS\Settings` object:
+
+```php
+$parser = new \Sabberworm\CSS\Parser(
+ file_get_contents('somefile.css'),
+ \Sabberworm\CSS\Settings::create()->beStrict()
+);
+```
+
+#### Disable multibyte functions
+
+To achieve faster parsing, you can choose to have PHP-CSS-Parser use regular string functions instead of `mb_*` functions. This should work fine in most cases, even for UTF-8 files, as all the multibyte characters are in string literals. Still it’s not recommended using this with input you have no control over as it’s not thoroughly covered by test cases.
+
+```php
+$settings = \Sabberworm\CSS\Settings::create()->withMultibyteSupport(false);
+$parser = new \Sabberworm\CSS\Parser($css, $settings);
+```
+
+### Manipulation
+
+The resulting data structure consists mainly of five basic types: `CSSList`, `RuleSet`, `Rule`, `Selector` and `Value`. There are two additional types used: `Import` and `Charset`, which you won’t use often.
+
+#### CSSList
+
+`CSSList` represents a generic CSS container, most likely containing declaration blocks (rule sets with a selector), but it may also contain at-rules, charset declarations, etc. `CSSList` has the following concrete subtypes:
+
+* `Document` – representing the root of a CSS file.
+* `MediaQuery` – represents a subsection of a `CSSList` that only applies to an output device matching the contained media query.
+
+To access the items stored in a `CSSList` – like the document you got back when calling `$parser->parse()` –, use `getContents()`, then iterate over that collection and use instanceof to check whether you’re dealing with another `CSSList`, a `RuleSet`, a `Import` or a `Charset`.
+
+To append a new item (selector, media query, etc.) to an existing `CSSList`, construct it using the constructor for this class and use the `append($oItem)` method.
+
+#### RuleSet
+
+`RuleSet` is a container for individual rules. The most common form of a rule set is one constrained by a selector. The following concrete subtypes exist:
+
+* `AtRuleSet` – for generic at-rules which do not match the ones specifically mentioned like `@import`, `@charset` or `@media`. A common example for this is `@font-face`.
+* `DeclarationBlock` – a `RuleSet` constrained by a `Selector`; contains an array of selector objects (comma-separated in the CSS) as well as the rules to be applied to the matching elements.
+
+Note: A `CSSList` can contain other `CSSList`s (and `Import`s as well as a `Charset`), while a `RuleSet` can only contain `Rule`s.
+
+If you want to manipulate a `RuleSet`, use the methods `addRule(Rule $rule)`, `getRules()` and `removeRule($rule)` (which accepts either a `Rule` instance or a rule name; optionally suffixed by a dash to remove all related rules).
+
+#### Rule
+
+`Rule`s just have a key (the rule) and a value. These values are all instances of a `Value`.
+
+#### Value
+
+`Value` is an abstract class that only defines the `render` method. The concrete subclasses for atomic value types are:
+
+* `Size` – consists of a numeric `size` value and a unit.
+* `Color` – colors can be input in the form #rrggbb, #rgb or schema(val1, val2, …) but are always stored as an array of ('s' => val1, 'c' => val2, 'h' => val3, …) and output in the second form.
+* `CSSString` – this is just a wrapper for quoted strings to distinguish them from keywords; always output with double quotes.
+* `URL` – URLs in CSS; always output in URL("") notation.
+
+There is another abstract subclass of `Value`, `ValueList`. A `ValueList` represents a lists of `Value`s, separated by some separation character (mostly `,`, whitespace, or `/`). There are two types of `ValueList`s:
+
+* `RuleValueList` – The default type, used to represent all multi-valued rules like `font: bold 12px/3 Helvetica, Verdana, sans-serif;` (where the value would be a whitespace-separated list of the primitive value `bold`, a slash-separated list and a comma-separated list).
+* `CSSFunction` – A special kind of value that also contains a function name and where the values are the function’s arguments. Also handles equals-sign-separated argument lists like `filter: alpha(opacity=90);`.
+
+#### Convenience methods
+
+There are a few convenience methods on Document to ease finding, manipulating and deleting rules:
+
+* `getAllDeclarationBlocks()` – does what it says; no matter how deeply nested your selectors are. Aliased as `getAllSelectors()`.
+* `getAllRuleSets()` – does what it says; no matter how deeply nested your rule sets are.
+* `getAllValues()` – finds all `Value` objects inside `Rule`s.
+
+## To-Do
+
+* More convenience methods (like `selectorsWithElement($sId/Class/TagName)`, `attributesOfType($type)`, `removeAttributesOfType($type)`)
+* Real multibyte support. Currently, only multibyte charsets whose first 255 code points take up only one byte and are identical with ASCII are supported (yes, UTF-8 fits this description).
+* Named color support (using `Color` instead of an anonymous string literal)
+
+## Use cases
+
+### Use `Parser` to prepend an ID to all selectors
+
+```php
+$myId = "#my_id";
+$parser = new \Sabberworm\CSS\Parser($css);
+$cssDocument = $parser->parse();
+foreach ($cssDocument->getAllDeclarationBlocks() as $block) {
+ foreach ($block->getSelectors() as $selector) {
+ // Loop over all selector parts (the comma-separated strings in a
+ // selector) and prepend the ID.
+ $selector->setSelector($myId.' '.$selector->getSelector());
+ }
+}
+```
+
+### Shrink all absolute sizes to half
+
+```php
+$parser = new \Sabberworm\CSS\Parser($css);
+$cssDocument = $parser->parse();
+foreach ($cssDocument->getAllValues() as $value) {
+ if ($value instanceof CSSSize && !$value->isRelative()) {
+ $value->setSize($value->getSize() / 2);
+ }
+}
+```
+
+### Remove unwanted rules
+
+```php
+$parser = new \Sabberworm\CSS\Parser($css);
+$cssDocument = $parser->parse();
+foreach($cssDocument->getAllRuleSets() as $oRuleSet) {
+ // Note that the added dash will make this remove all rules starting with
+ // `font-` (like `font-size`, `font-weight`, etc.) as well as a potential
+ // `font-rule`.
+ $oRuleSet->removeRule('font-');
+ $oRuleSet->removeRule('cursor');
+}
+```
+
+### Output
+
+To output the entire CSS document into a variable, just use `->render()`:
+
+```php
+$parser = new \Sabberworm\CSS\Parser(file_get_contents('somefile.css'));
+$cssDocument = $parser->parse();
+print $cssDocument->render();
+```
+
+If you want to format the output, pass an instance of type `\Sabberworm\CSS\OutputFormat`:
+
+```php
+$format = \Sabberworm\CSS\OutputFormat::create()
+ ->indentWithSpaces(4)->setSpaceBetweenRules("\n");
+print $cssDocument->render($format);
+```
+
+Or use one of the predefined formats:
+
+```php
+print $cssDocument->render(Sabberworm\CSS\OutputFormat::createPretty());
+print $cssDocument->render(Sabberworm\CSS\OutputFormat::createCompact());
+```
+
+To see what you can do with output formatting, look at the tests in `tests/OutputFormatTest.php`.
+
+## Examples
+
+### Example 1 (At-Rules)
+
+#### Input
+
+```css
+@charset "utf-8";
+
+@font-face {
+ font-family: "CrassRoots";
+ src: url("../media/cr.ttf");
+}
+
+html, body {
+ font-size: 1.6em;
+}
+
+@keyframes mymove {
+ from { top: 0px; }
+ to { top: 200px; }
+}
+
+```
+
+#### Structure (`var_dump()`)
+
+```php
+class Sabberworm\CSS\CSSList\Document#4 (2) {
+ protected $aContents =>
+ array(4) {
+ [0] =>
+ class Sabberworm\CSS\Property\Charset#6 (2) {
+ private $sCharset =>
+ class Sabberworm\CSS\Value\CSSString#5 (2) {
+ private $sString =>
+ string(5) "utf-8"
+ protected $iLineNo =>
+ int(1)
+ }
+ protected $iLineNo =>
+ int(1)
+ }
+ [1] =>
+ class Sabberworm\CSS\RuleSet\AtRuleSet#7 (4) {
+ private $sType =>
+ string(9) "font-face"
+ private $sArgs =>
+ string(0) ""
+ private $aRules =>
+ array(2) {
+ 'font-family' =>
+ array(1) {
+ [0] =>
+ class Sabberworm\CSS\Rule\Rule#8 (4) {
+ private $sRule =>
+ string(11) "font-family"
+ private $mValue =>
+ class Sabberworm\CSS\Value\CSSString#9 (2) {
+ private $sString =>
+ string(10) "CrassRoots"
+ protected $iLineNo =>
+ int(4)
+ }
+ private $bIsImportant =>
+ bool(false)
+ protected $iLineNo =>
+ int(4)
+ }
+ }
+ 'src' =>
+ array(1) {
+ [0] =>
+ class Sabberworm\CSS\Rule\Rule#10 (4) {
+ private $sRule =>
+ string(3) "src"
+ private $mValue =>
+ class Sabberworm\CSS\Value\URL#11 (2) {
+ private $oURL =>
+ class Sabberworm\CSS\Value\CSSString#12 (2) {
+ private $sString =>
+ string(15) "../media/cr.ttf"
+ protected $iLineNo =>
+ int(5)
+ }
+ protected $iLineNo =>
+ int(5)
+ }
+ private $bIsImportant =>
+ bool(false)
+ protected $iLineNo =>
+ int(5)
+ }
+ }
+ }
+ protected $iLineNo =>
+ int(3)
+ }
+ [2] =>
+ class Sabberworm\CSS\RuleSet\DeclarationBlock#13 (3) {
+ private $aSelectors =>
+ array(2) {
+ [0] =>
+ class Sabberworm\CSS\Property\Selector#14 (2) {
+ private $sSelector =>
+ string(4) "html"
+ private $iSpecificity =>
+ NULL
+ }
+ [1] =>
+ class Sabberworm\CSS\Property\Selector#15 (2) {
+ private $sSelector =>
+ string(4) "body"
+ private $iSpecificity =>
+ NULL
+ }
+ }
+ private $aRules =>
+ array(1) {
+ 'font-size' =>
+ array(1) {
+ [0] =>
+ class Sabberworm\CSS\Rule\Rule#16 (4) {
+ private $sRule =>
+ string(9) "font-size"
+ private $mValue =>
+ class Sabberworm\CSS\Value\Size#17 (4) {
+ private $fSize =>
+ double(1.6)
+ private $sUnit =>
+ string(2) "em"
+ private $bIsColorComponent =>
+ bool(false)
+ protected $iLineNo =>
+ int(9)
+ }
+ private $bIsImportant =>
+ bool(false)
+ protected $iLineNo =>
+ int(9)
+ }
+ }
+ }
+ protected $iLineNo =>
+ int(8)
+ }
+ [3] =>
+ class Sabberworm\CSS\CSSList\KeyFrame#18 (4) {
+ private $vendorKeyFrame =>
+ string(9) "keyframes"
+ private $animationName =>
+ string(6) "mymove"
+ protected $aContents =>
+ array(2) {
+ [0] =>
+ class Sabberworm\CSS\RuleSet\DeclarationBlock#19 (3) {
+ private $aSelectors =>
+ array(1) {
+ [0] =>
+ class Sabberworm\CSS\Property\Selector#20 (2) {
+ private $sSelector =>
+ string(4) "from"
+ private $iSpecificity =>
+ NULL
+ }
+ }
+ private $aRules =>
+ array(1) {
+ 'top' =>
+ array(1) {
+ [0] =>
+ class Sabberworm\CSS\Rule\Rule#21 (4) {
+ private $sRule =>
+ string(3) "top"
+ private $mValue =>
+ class Sabberworm\CSS\Value\Size#22 (4) {
+ private $fSize =>
+ double(0)
+ private $sUnit =>
+ string(2) "px"
+ private $bIsColorComponent =>
+ bool(false)
+ protected $iLineNo =>
+ int(13)
+ }
+ private $bIsImportant =>
+ bool(false)
+ protected $iLineNo =>
+ int(13)
+ }
+ }
+ }
+ protected $iLineNo =>
+ int(13)
+ }
+ [1] =>
+ class Sabberworm\CSS\RuleSet\DeclarationBlock#23 (3) {
+ private $aSelectors =>
+ array(1) {
+ [0] =>
+ class Sabberworm\CSS\Property\Selector#24 (2) {
+ private $sSelector =>
+ string(2) "to"
+ private $iSpecificity =>
+ NULL
+ }
+ }
+ private $aRules =>
+ array(1) {
+ 'top' =>
+ array(1) {
+ [0] =>
+ class Sabberworm\CSS\Rule\Rule#25 (4) {
+ private $sRule =>
+ string(3) "top"
+ private $mValue =>
+ class Sabberworm\CSS\Value\Size#26 (4) {
+ private $fSize =>
+ double(200)
+ private $sUnit =>
+ string(2) "px"
+ private $bIsColorComponent =>
+ bool(false)
+ protected $iLineNo =>
+ int(14)
+ }
+ private $bIsImportant =>
+ bool(false)
+ protected $iLineNo =>
+ int(14)
+ }
+ }
+ }
+ protected $iLineNo =>
+ int(14)
+ }
+ }
+ protected $iLineNo =>
+ int(12)
+ }
+ }
+ protected $iLineNo =>
+ int(1)
+}
+
+```
+
+#### Output (`render()`)
+
+```css
+@charset "utf-8";
+@font-face {font-family: "CrassRoots";src: url("../media/cr.ttf");}
+html, body {font-size: 1.6em;}
+@keyframes mymove {from {top: 0px;} to {top: 200px;}}
+```
+
+### Example 2 (Values)
+
+#### Input
+
+```css
+#header {
+ margin: 10px 2em 1cm 2%;
+ font-family: Verdana, Helvetica, "Gill Sans", sans-serif;
+ color: red !important;
+}
+
+```
+
+#### Structure (`var_dump()`)
+
+```php
+class Sabberworm\CSS\CSSList\Document#4 (2) {
+ protected $aContents =>
+ array(1) {
+ [0] =>
+ class Sabberworm\CSS\RuleSet\DeclarationBlock#5 (3) {
+ private $aSelectors =>
+ array(1) {
+ [0] =>
+ class Sabberworm\CSS\Property\Selector#6 (2) {
+ private $sSelector =>
+ string(7) "#header"
+ private $iSpecificity =>
+ NULL
+ }
+ }
+ private $aRules =>
+ array(3) {
+ 'margin' =>
+ array(1) {
+ [0] =>
+ class Sabberworm\CSS\Rule\Rule#7 (4) {
+ private $sRule =>
+ string(6) "margin"
+ private $mValue =>
+ class Sabberworm\CSS\Value\RuleValueList#12 (3) {
+ protected $aComponents =>
+ array(4) {
+ [0] =>
+ class Sabberworm\CSS\Value\Size#8 (4) {
+ private $fSize =>
+ double(10)
+ private $sUnit =>
+ string(2) "px"
+ private $bIsColorComponent =>
+ bool(false)
+ protected $iLineNo =>
+ int(2)
+ }
+ [1] =>
+ class Sabberworm\CSS\Value\Size#9 (4) {
+ private $fSize =>
+ double(2)
+ private $sUnit =>
+ string(2) "em"
+ private $bIsColorComponent =>
+ bool(false)
+ protected $iLineNo =>
+ int(2)
+ }
+ [2] =>
+ class Sabberworm\CSS\Value\Size#10 (4) {
+ private $fSize =>
+ double(1)
+ private $sUnit =>
+ string(2) "cm"
+ private $bIsColorComponent =>
+ bool(false)
+ protected $iLineNo =>
+ int(2)
+ }
+ [3] =>
+ class Sabberworm\CSS\Value\Size#11 (4) {
+ private $fSize =>
+ double(2)
+ private $sUnit =>
+ string(1) "%"
+ private $bIsColorComponent =>
+ bool(false)
+ protected $iLineNo =>
+ int(2)
+ }
+ }
+ protected $sSeparator =>
+ string(1) " "
+ protected $iLineNo =>
+ int(2)
+ }
+ private $bIsImportant =>
+ bool(false)
+ protected $iLineNo =>
+ int(2)
+ }
+ }
+ 'font-family' =>
+ array(1) {
+ [0] =>
+ class Sabberworm\CSS\Rule\Rule#13 (4) {
+ private $sRule =>
+ string(11) "font-family"
+ private $mValue =>
+ class Sabberworm\CSS\Value\RuleValueList#15 (3) {
+ protected $aComponents =>
+ array(4) {
+ [0] =>
+ string(7) "Verdana"
+ [1] =>
+ string(9) "Helvetica"
+ [2] =>
+ class Sabberworm\CSS\Value\CSSString#14 (2) {
+ private $sString =>
+ string(9) "Gill Sans"
+ protected $iLineNo =>
+ int(3)
+ }
+ [3] =>
+ string(10) "sans-serif"
+ }
+ protected $sSeparator =>
+ string(1) ","
+ protected $iLineNo =>
+ int(3)
+ }
+ private $bIsImportant =>
+ bool(false)
+ protected $iLineNo =>
+ int(3)
+ }
+ }
+ 'color' =>
+ array(1) {
+ [0] =>
+ class Sabberworm\CSS\Rule\Rule#16 (4) {
+ private $sRule =>
+ string(5) "color"
+ private $mValue =>
+ string(3) "red"
+ private $bIsImportant =>
+ bool(true)
+ protected $iLineNo =>
+ int(4)
+ }
+ }
+ }
+ protected $iLineNo =>
+ int(1)
+ }
+ }
+ protected $iLineNo =>
+ int(1)
+}
+
+```
+
+#### Output (`render()`)
+
+```css
+#header {margin: 10px 2em 1cm 2%;font-family: Verdana,Helvetica,"Gill Sans",sans-serif;color: red !important;}
+```
+
+## Contributors/Thanks to
+
+* [oliverklee](https://github.com/oliverklee) for lots of refactorings, code modernizations and CI integrations
+* [raxbg](https://github.com/raxbg) for contributions to parse `calc`, grid lines, and various bugfixes.
+* [westonruter](https://github.com/westonruter) for bugfixes and improvements.
+* [FMCorz](https://github.com/FMCorz) for many patches and suggestions, for being able to parse comments and IE hacks (in lenient mode).
+* [Lullabot](https://github.com/Lullabot) for a patch that allows to know the line number for each parsed token.
+* [ju1ius](https://github.com/ju1ius) for the specificity parsing code and the ability to expand/compact shorthand properties.
+* [ossinkine](https://github.com/ossinkine) for a 150 time performance boost.
+* [GaryJones](https://github.com/GaryJones) for lots of input and [https://css-specificity.info/](https://css-specificity.info/).
+* [docteurklein](https://github.com/docteurklein) for output formatting and `CSSList->remove()` inspiration.
+* [nicolopignatelli](https://github.com/nicolopignatelli) for PSR-0 compatibility.
+* [diegoembarcadero](https://github.com/diegoembarcadero) for keyframe at-rule parsing.
+* [goetas](https://github.com/goetas) for @namespace at-rule support.
+* [View full list](https://github.com/sabberworm/PHP-CSS-Parser/contributors)
+
+## Misc
+
+* Legacy Support: The latest pre-PSR-0 version of this project can be checked with the `0.9.0` tag.
+* Running Tests: To run all unit tests for this project, run `composer install` to install phpunit and use `./vendor/bin/phpunit`.
diff --git a/library/vendor/dompdf/vendor/sabberworm/php-css-parser/composer.json b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/composer.json
new file mode 100644
index 0000000..e192dd5
--- /dev/null
+++ b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/composer.json
@@ -0,0 +1,69 @@
+{
+ "name": "sabberworm/php-css-parser",
+ "type": "library",
+ "description": "Parser for CSS Files written in PHP",
+ "keywords": [
+ "parser",
+ "css",
+ "stylesheet"
+ ],
+ "homepage": "https://www.sabberworm.com/blog/2010/6/10/php-css-parser",
+ "license": "MIT",
+ "authors": [
+ {
+ "name": "Raphael Schweikert"
+ }
+ ],
+ "require": {
+ "php": ">=5.6.20",
+ "ext-iconv": "*"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.8.36",
+ "codacy/coverage": "^1.4"
+ },
+ "suggest": {
+ "ext-mbstring": "for parsing UTF-8 CSS"
+ },
+ "autoload": {
+ "psr-4": {
+ "Sabberworm\\CSS\\": "src/"
+ }
+ },
+ "autoload-dev": {
+ "psr-4": {
+ "Sabberworm\\CSS\\Tests\\": "tests/"
+ }
+ },
+ "scripts": {
+ "ci": [
+ "@ci:static"
+ ],
+ "ci:php:fixer": "@php ./.phive/php-cs-fixer.phar --config=config/php-cs-fixer.php fix --dry-run -v --show-progress=dots bin src tests",
+ "ci:php:sniffer": "@php ./.phive/phpcs.phar --standard=config/phpcs.xml bin src tests",
+ "ci:php:stan": "@php ./.phive/phpstan.phar --configuration=config/phpstan.neon",
+ "ci:static": [
+ "@ci:php:fixer",
+ "@ci:php:sniffer",
+ "@ci:php:stan"
+ ],
+ "fix:php": [
+ "@fix:php:fixer",
+ "@fix:php:sniffer"
+ ],
+ "fix:php:fixer": "@php ./.phive/php-cs-fixer.phar --config=config/php-cs-fixer.php fix bin src tests",
+ "fix:php:sniffer": "@php ./.phive/phpcbf.phar --standard=config/phpcs.xml bin src tests",
+ "phpstan:baseline": "@php ./.phive/phpstan.phar --configuration=config/phpstan.neon --generate-baseline=config/phpstan-baseline.neon"
+ },
+ "scripts-descriptions": {
+ "ci": "Runs all dynamic and static code checks (i.e. currently, only the static checks).",
+ "ci:php:fixer": "Checks the code style with PHP CS Fixer.",
+ "ci:php:sniffer": "Checks the code style with PHP_CodeSniffer.",
+ "ci:php:stan": "Checks the types with PHPStan.",
+ "ci:static": "Runs all static code analysis checks for the code.",
+ "fix:php": "Autofixes all autofixable issues in the PHP code.",
+ "fix:php:fixer": "Fixes autofixable issues found by PHP CS Fixer.",
+ "fix:php:sniffer": "Fixes autofixable issues found by PHP_CodeSniffer.",
+ "phpstand:baseline": "Updates the PHPStan baseline file to match the code."
+ }
+}
diff --git a/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/CSSList/AtRuleBlockList.php b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/CSSList/AtRuleBlockList.php
new file mode 100644
index 0000000..218adb9
--- /dev/null
+++ b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/CSSList/AtRuleBlockList.php
@@ -0,0 +1,83 @@
+<?php
+
+namespace Sabberworm\CSS\CSSList;
+
+use Sabberworm\CSS\OutputFormat;
+use Sabberworm\CSS\Property\AtRule;
+
+/**
+ * A `BlockList` constructed by an unknown at-rule. `@media` rules are rendered into `AtRuleBlockList` objects.
+ */
+class AtRuleBlockList extends CSSBlockList implements AtRule
+{
+ /**
+ * @var string
+ */
+ private $sType;
+
+ /**
+ * @var string
+ */
+ private $sArgs;
+
+ /**
+ * @param string $sType
+ * @param string $sArgs
+ * @param int $iLineNo
+ */
+ public function __construct($sType, $sArgs = '', $iLineNo = 0)
+ {
+ parent::__construct($iLineNo);
+ $this->sType = $sType;
+ $this->sArgs = $sArgs;
+ }
+
+ /**
+ * @return string
+ */
+ public function atRuleName()
+ {
+ return $this->sType;
+ }
+
+ /**
+ * @return string
+ */
+ public function atRuleArgs()
+ {
+ return $this->sArgs;
+ }
+
+ /**
+ * @return string
+ */
+ public function __toString()
+ {
+ return $this->render(new OutputFormat());
+ }
+
+ /**
+ * @return string
+ */
+ public function render(OutputFormat $oOutputFormat)
+ {
+ $sArgs = $this->sArgs;
+ if ($sArgs) {
+ $sArgs = ' ' . $sArgs;
+ }
+ $sResult = $oOutputFormat->sBeforeAtRuleBlock;
+ $sResult .= "@{$this->sType}$sArgs{$oOutputFormat->spaceBeforeOpeningBrace()}{";
+ $sResult .= parent::render($oOutputFormat);
+ $sResult .= '}';
+ $sResult .= $oOutputFormat->sAfterAtRuleBlock;
+ return $sResult;
+ }
+
+ /**
+ * @return bool
+ */
+ public function isRootList()
+ {
+ return false;
+ }
+}
diff --git a/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/CSSList/CSSBlockList.php b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/CSSList/CSSBlockList.php
new file mode 100644
index 0000000..fce7913
--- /dev/null
+++ b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/CSSList/CSSBlockList.php
@@ -0,0 +1,143 @@
+<?php
+
+namespace Sabberworm\CSS\CSSList;
+
+use Sabberworm\CSS\Property\Selector;
+use Sabberworm\CSS\Rule\Rule;
+use Sabberworm\CSS\RuleSet\DeclarationBlock;
+use Sabberworm\CSS\RuleSet\RuleSet;
+use Sabberworm\CSS\Value\CSSFunction;
+use Sabberworm\CSS\Value\Value;
+use Sabberworm\CSS\Value\ValueList;
+
+/**
+ * A `CSSBlockList` is a `CSSList` whose `DeclarationBlock`s are guaranteed to contain valid declaration blocks or
+ * at-rules.
+ *
+ * Most `CSSList`s conform to this category but some at-rules (such as `@keyframes`) do not.
+ */
+abstract class CSSBlockList extends CSSList
+{
+ /**
+ * @param int $iLineNo
+ */
+ public function __construct($iLineNo = 0)
+ {
+ parent::__construct($iLineNo);
+ }
+
+ /**
+ * @param array<int, DeclarationBlock> $aResult
+ *
+ * @return void
+ */
+ protected function allDeclarationBlocks(array &$aResult)
+ {
+ foreach ($this->aContents as $mContent) {
+ if ($mContent instanceof DeclarationBlock) {
+ $aResult[] = $mContent;
+ } elseif ($mContent instanceof CSSBlockList) {
+ $mContent->allDeclarationBlocks($aResult);
+ }
+ }
+ }
+
+ /**
+ * @param array<int, RuleSet> $aResult
+ *
+ * @return void
+ */
+ protected function allRuleSets(array &$aResult)
+ {
+ foreach ($this->aContents as $mContent) {
+ if ($mContent instanceof RuleSet) {
+ $aResult[] = $mContent;
+ } elseif ($mContent instanceof CSSBlockList) {
+ $mContent->allRuleSets($aResult);
+ }
+ }
+ }
+
+ /**
+ * @param CSSList|Rule|RuleSet|Value $oElement
+ * @param array<int, Value> $aResult
+ * @param string|null $sSearchString
+ * @param bool $bSearchInFunctionArguments
+ *
+ * @return void
+ */
+ protected function allValues($oElement, array &$aResult, $sSearchString = null, $bSearchInFunctionArguments = false)
+ {
+ if ($oElement instanceof CSSBlockList) {
+ foreach ($oElement->getContents() as $oContent) {
+ $this->allValues($oContent, $aResult, $sSearchString, $bSearchInFunctionArguments);
+ }
+ } elseif ($oElement instanceof RuleSet) {
+ foreach ($oElement->getRules($sSearchString) as $oRule) {
+ $this->allValues($oRule, $aResult, $sSearchString, $bSearchInFunctionArguments);
+ }
+ } elseif ($oElement instanceof Rule) {
+ $this->allValues($oElement->getValue(), $aResult, $sSearchString, $bSearchInFunctionArguments);
+ } elseif ($oElement instanceof ValueList) {
+ if ($bSearchInFunctionArguments || !($oElement instanceof CSSFunction)) {
+ foreach ($oElement->getListComponents() as $mComponent) {
+ $this->allValues($mComponent, $aResult, $sSearchString, $bSearchInFunctionArguments);
+ }
+ }
+ } else {
+ // Non-List `Value` or `CSSString` (CSS identifier)
+ $aResult[] = $oElement;
+ }
+ }
+
+ /**
+ * @param array<int, Selector> $aResult
+ * @param string|null $sSpecificitySearch
+ *
+ * @return void
+ */
+ protected function allSelectors(array &$aResult, $sSpecificitySearch = null)
+ {
+ /** @var array<int, DeclarationBlock> $aDeclarationBlocks */
+ $aDeclarationBlocks = [];
+ $this->allDeclarationBlocks($aDeclarationBlocks);
+ foreach ($aDeclarationBlocks as $oBlock) {
+ foreach ($oBlock->getSelectors() as $oSelector) {
+ if ($sSpecificitySearch === null) {
+ $aResult[] = $oSelector;
+ } else {
+ $sComparator = '===';
+ $aSpecificitySearch = explode(' ', $sSpecificitySearch);
+ $iTargetSpecificity = $aSpecificitySearch[0];
+ if (count($aSpecificitySearch) > 1) {
+ $sComparator = $aSpecificitySearch[0];
+ $iTargetSpecificity = $aSpecificitySearch[1];
+ }
+ $iTargetSpecificity = (int)$iTargetSpecificity;
+ $iSelectorSpecificity = $oSelector->getSpecificity();
+ $bMatches = false;
+ switch ($sComparator) {
+ case '<=':
+ $bMatches = $iSelectorSpecificity <= $iTargetSpecificity;
+ break;
+ case '<':
+ $bMatches = $iSelectorSpecificity < $iTargetSpecificity;
+ break;
+ case '>=':
+ $bMatches = $iSelectorSpecificity >= $iTargetSpecificity;
+ break;
+ case '>':
+ $bMatches = $iSelectorSpecificity > $iTargetSpecificity;
+ break;
+ default:
+ $bMatches = $iSelectorSpecificity === $iTargetSpecificity;
+ break;
+ }
+ if ($bMatches) {
+ $aResult[] = $oSelector;
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/CSSList/CSSList.php b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/CSSList/CSSList.php
new file mode 100644
index 0000000..946740a
--- /dev/null
+++ b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/CSSList/CSSList.php
@@ -0,0 +1,479 @@
+<?php
+
+namespace Sabberworm\CSS\CSSList;
+
+use Sabberworm\CSS\Comment\Comment;
+use Sabberworm\CSS\Comment\Commentable;
+use Sabberworm\CSS\OutputFormat;
+use Sabberworm\CSS\Parsing\ParserState;
+use Sabberworm\CSS\Parsing\SourceException;
+use Sabberworm\CSS\Parsing\UnexpectedEOFException;
+use Sabberworm\CSS\Parsing\UnexpectedTokenException;
+use Sabberworm\CSS\Property\AtRule;
+use Sabberworm\CSS\Property\Charset;
+use Sabberworm\CSS\Property\CSSNamespace;
+use Sabberworm\CSS\Property\Import;
+use Sabberworm\CSS\Property\Selector;
+use Sabberworm\CSS\Renderable;
+use Sabberworm\CSS\RuleSet\AtRuleSet;
+use Sabberworm\CSS\RuleSet\DeclarationBlock;
+use Sabberworm\CSS\RuleSet\RuleSet;
+use Sabberworm\CSS\Settings;
+use Sabberworm\CSS\Value\CSSString;
+use Sabberworm\CSS\Value\URL;
+use Sabberworm\CSS\Value\Value;
+
+/**
+ * A `CSSList` is the most generic container available. Its contents include `RuleSet` as well as other `CSSList`
+ * objects.
+ *
+ * Also, it may contain `Import` and `Charset` objects stemming from at-rules.
+ */
+abstract class CSSList implements Renderable, Commentable
+{
+ /**
+ * @var array<array-key, Comment>
+ */
+ protected $aComments;
+
+ /**
+ * @var array<int, RuleSet|CSSList|Import|Charset>
+ */
+ protected $aContents;
+
+ /**
+ * @var int
+ */
+ protected $iLineNo;
+
+ /**
+ * @param int $iLineNo
+ */
+ public function __construct($iLineNo = 0)
+ {
+ $this->aComments = [];
+ $this->aContents = [];
+ $this->iLineNo = $iLineNo;
+ }
+
+ /**
+ * @return void
+ *
+ * @throws UnexpectedTokenException
+ * @throws SourceException
+ */
+ public static function parseList(ParserState $oParserState, CSSList $oList)
+ {
+ $bIsRoot = $oList instanceof Document;
+ if (is_string($oParserState)) {
+ $oParserState = new ParserState($oParserState, Settings::create());
+ }
+ $bLenientParsing = $oParserState->getSettings()->bLenientParsing;
+ while (!$oParserState->isEnd()) {
+ $comments = $oParserState->consumeWhiteSpace();
+ $oListItem = null;
+ if ($bLenientParsing) {
+ try {
+ $oListItem = self::parseListItem($oParserState, $oList);
+ } catch (UnexpectedTokenException $e) {
+ $oListItem = false;
+ }
+ } else {
+ $oListItem = self::parseListItem($oParserState, $oList);
+ }
+ if ($oListItem === null) {
+ // List parsing finished
+ return;
+ }
+ if ($oListItem) {
+ $oListItem->setComments($comments);
+ $oList->append($oListItem);
+ }
+ $oParserState->consumeWhiteSpace();
+ }
+ if (!$bIsRoot && !$bLenientParsing) {
+ throw new SourceException("Unexpected end of document", $oParserState->currentLine());
+ }
+ }
+
+ /**
+ * @return AtRuleBlockList|KeyFrame|Charset|CSSNamespace|Import|AtRuleSet|DeclarationBlock|null|false
+ *
+ * @throws SourceException
+ * @throws UnexpectedEOFException
+ * @throws UnexpectedTokenException
+ */
+ private static function parseListItem(ParserState $oParserState, CSSList $oList)
+ {
+ $bIsRoot = $oList instanceof Document;
+ if ($oParserState->comes('@')) {
+ $oAtRule = self::parseAtRule($oParserState);
+ if ($oAtRule instanceof Charset) {
+ if (!$bIsRoot) {
+ throw new UnexpectedTokenException(
+ '@charset may only occur in root document',
+ '',
+ 'custom',
+ $oParserState->currentLine()
+ );
+ }
+ if (count($oList->getContents()) > 0) {
+ throw new UnexpectedTokenException(
+ '@charset must be the first parseable token in a document',
+ '',
+ 'custom',
+ $oParserState->currentLine()
+ );
+ }
+ $oParserState->setCharset($oAtRule->getCharset()->getString());
+ }
+ return $oAtRule;
+ } elseif ($oParserState->comes('}')) {
+ if (!$oParserState->getSettings()->bLenientParsing) {
+ throw new UnexpectedTokenException('CSS selector', '}', 'identifier', $oParserState->currentLine());
+ } else {
+ if ($bIsRoot) {
+ if ($oParserState->getSettings()->bLenientParsing) {
+ return DeclarationBlock::parse($oParserState);
+ } else {
+ throw new SourceException("Unopened {", $oParserState->currentLine());
+ }
+ } else {
+ return null;
+ }
+ }
+ } else {
+ return DeclarationBlock::parse($oParserState, $oList);
+ }
+ }
+
+ /**
+ * @param ParserState $oParserState
+ *
+ * @return AtRuleBlockList|KeyFrame|Charset|CSSNamespace|Import|AtRuleSet|null
+ *
+ * @throws SourceException
+ * @throws UnexpectedTokenException
+ * @throws UnexpectedEOFException
+ */
+ private static function parseAtRule(ParserState $oParserState)
+ {
+ $oParserState->consume('@');
+ $sIdentifier = $oParserState->parseIdentifier();
+ $iIdentifierLineNum = $oParserState->currentLine();
+ $oParserState->consumeWhiteSpace();
+ if ($sIdentifier === 'import') {
+ $oLocation = URL::parse($oParserState);
+ $oParserState->consumeWhiteSpace();
+ $sMediaQuery = null;
+ if (!$oParserState->comes(';')) {
+ $sMediaQuery = trim($oParserState->consumeUntil([';', ParserState::EOF]));
+ }
+ $oParserState->consumeUntil([';', ParserState::EOF], true, true);
+ return new Import($oLocation, $sMediaQuery ?: null, $iIdentifierLineNum);
+ } elseif ($sIdentifier === 'charset') {
+ $sCharset = CSSString::parse($oParserState);
+ $oParserState->consumeWhiteSpace();
+ $oParserState->consumeUntil([';', ParserState::EOF], true, true);
+ return new Charset($sCharset, $iIdentifierLineNum);
+ } elseif (self::identifierIs($sIdentifier, 'keyframes')) {
+ $oResult = new KeyFrame($iIdentifierLineNum);
+ $oResult->setVendorKeyFrame($sIdentifier);
+ $oResult->setAnimationName(trim($oParserState->consumeUntil('{', false, true)));
+ CSSList::parseList($oParserState, $oResult);
+ if ($oParserState->comes('}')) {
+ $oParserState->consume('}');
+ }
+ return $oResult;
+ } elseif ($sIdentifier === 'namespace') {
+ $sPrefix = null;
+ $mUrl = Value::parsePrimitiveValue($oParserState);
+ if (!$oParserState->comes(';')) {
+ $sPrefix = $mUrl;
+ $mUrl = Value::parsePrimitiveValue($oParserState);
+ }
+ $oParserState->consumeUntil([';', ParserState::EOF], true, true);
+ if ($sPrefix !== null && !is_string($sPrefix)) {
+ throw new UnexpectedTokenException('Wrong namespace prefix', $sPrefix, 'custom', $iIdentifierLineNum);
+ }
+ if (!($mUrl instanceof CSSString || $mUrl instanceof URL)) {
+ throw new UnexpectedTokenException(
+ 'Wrong namespace url of invalid type',
+ $mUrl,
+ 'custom',
+ $iIdentifierLineNum
+ );
+ }
+ return new CSSNamespace($mUrl, $sPrefix, $iIdentifierLineNum);
+ } else {
+ // Unknown other at rule (font-face or such)
+ $sArgs = trim($oParserState->consumeUntil('{', false, true));
+ if (substr_count($sArgs, "(") != substr_count($sArgs, ")")) {
+ if ($oParserState->getSettings()->bLenientParsing) {
+ return null;
+ } else {
+ throw new SourceException("Unmatched brace count in media query", $oParserState->currentLine());
+ }
+ }
+ $bUseRuleSet = true;
+ foreach (explode('/', AtRule::BLOCK_RULES) as $sBlockRuleName) {
+ if (self::identifierIs($sIdentifier, $sBlockRuleName)) {
+ $bUseRuleSet = false;
+ break;
+ }
+ }
+ if ($bUseRuleSet) {
+ $oAtRule = new AtRuleSet($sIdentifier, $sArgs, $iIdentifierLineNum);
+ RuleSet::parseRuleSet($oParserState, $oAtRule);
+ } else {
+ $oAtRule = new AtRuleBlockList($sIdentifier, $sArgs, $iIdentifierLineNum);
+ CSSList::parseList($oParserState, $oAtRule);
+ if ($oParserState->comes('}')) {
+ $oParserState->consume('}');
+ }
+ }
+ return $oAtRule;
+ }
+ }
+
+ /**
+ * Tests an identifier for a given value. Since identifiers are all keywords, they can be vendor-prefixed.
+ * We need to check for these versions too.
+ *
+ * @param string $sIdentifier
+ * @param string $sMatch
+ *
+ * @return bool
+ */
+ private static function identifierIs($sIdentifier, $sMatch)
+ {
+ return (strcasecmp($sIdentifier, $sMatch) === 0)
+ ?: preg_match("/^(-\\w+-)?$sMatch$/i", $sIdentifier) === 1;
+ }
+
+ /**
+ * @return int
+ */
+ public function getLineNo()
+ {
+ return $this->iLineNo;
+ }
+
+ /**
+ * Prepends an item to the list of contents.
+ *
+ * @param RuleSet|CSSList|Import|Charset $oItem
+ *
+ * @return void
+ */
+ public function prepend($oItem)
+ {
+ array_unshift($this->aContents, $oItem);
+ }
+
+ /**
+ * Appends an item to tje list of contents.
+ *
+ * @param RuleSet|CSSList|Import|Charset $oItem
+ *
+ * @return void
+ */
+ public function append($oItem)
+ {
+ $this->aContents[] = $oItem;
+ }
+
+ /**
+ * Splices the list of contents.
+ *
+ * @param int $iOffset
+ * @param int $iLength
+ * @param array<int, RuleSet|CSSList|Import|Charset> $mReplacement
+ *
+ * @return void
+ */
+ public function splice($iOffset, $iLength = null, $mReplacement = null)
+ {
+ array_splice($this->aContents, $iOffset, $iLength, $mReplacement);
+ }
+
+ /**
+ * Removes an item from the CSS list.
+ *
+ * @param RuleSet|Import|Charset|CSSList $oItemToRemove
+ * May be a RuleSet (most likely a DeclarationBlock), a Import,
+ * a Charset or another CSSList (most likely a MediaQuery)
+ *
+ * @return bool whether the item was removed
+ */
+ public function remove($oItemToRemove)
+ {
+ $iKey = array_search($oItemToRemove, $this->aContents, true);
+ if ($iKey !== false) {
+ unset($this->aContents[$iKey]);
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * Replaces an item from the CSS list.
+ *
+ * @param RuleSet|Import|Charset|CSSList $oOldItem
+ * May be a `RuleSet` (most likely a `DeclarationBlock`), an `Import`, a `Charset`
+ * or another `CSSList` (most likely a `MediaQuery`)
+ *
+ * @return bool
+ */
+ public function replace($oOldItem, $mNewItem)
+ {
+ $iKey = array_search($oOldItem, $this->aContents, true);
+ if ($iKey !== false) {
+ if (is_array($mNewItem)) {
+ array_splice($this->aContents, $iKey, 1, $mNewItem);
+ } else {
+ array_splice($this->aContents, $iKey, 1, [$mNewItem]);
+ }
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @param array<int, RuleSet|Import|Charset|CSSList> $aContents
+ */
+ public function setContents(array $aContents)
+ {
+ $this->aContents = [];
+ foreach ($aContents as $content) {
+ $this->append($content);
+ }
+ }
+
+ /**
+ * Removes a declaration block from the CSS list if it matches all given selectors.
+ *
+ * @param DeclarationBlock|array<array-key, Selector>|string $mSelector the selectors to match
+ * @param bool $bRemoveAll whether to stop at the first declaration block found or remove all blocks
+ *
+ * @return void
+ */
+ public function removeDeclarationBlockBySelector($mSelector, $bRemoveAll = false)
+ {
+ if ($mSelector instanceof DeclarationBlock) {
+ $mSelector = $mSelector->getSelectors();
+ }
+ if (!is_array($mSelector)) {
+ $mSelector = explode(',', $mSelector);
+ }
+ foreach ($mSelector as $iKey => &$mSel) {
+ if (!($mSel instanceof Selector)) {
+ if (!Selector::isValid($mSel)) {
+ throw new UnexpectedTokenException(
+ "Selector did not match '" . Selector::SELECTOR_VALIDATION_RX . "'.",
+ $mSel,
+ "custom"
+ );
+ }
+ $mSel = new Selector($mSel);
+ }
+ }
+ foreach ($this->aContents as $iKey => $mItem) {
+ if (!($mItem instanceof DeclarationBlock)) {
+ continue;
+ }
+ if ($mItem->getSelectors() == $mSelector) {
+ unset($this->aContents[$iKey]);
+ if (!$bRemoveAll) {
+ return;
+ }
+ }
+ }
+ }
+
+ /**
+ * @return string
+ */
+ public function __toString()
+ {
+ return $this->render(new OutputFormat());
+ }
+
+ /**
+ * @return string
+ */
+ public function render(OutputFormat $oOutputFormat)
+ {
+ $sResult = '';
+ $bIsFirst = true;
+ $oNextLevel = $oOutputFormat;
+ if (!$this->isRootList()) {
+ $oNextLevel = $oOutputFormat->nextLevel();
+ }
+ foreach ($this->aContents as $oContent) {
+ $sRendered = $oOutputFormat->safely(function () use ($oNextLevel, $oContent) {
+ return $oContent->render($oNextLevel);
+ });
+ if ($sRendered === null) {
+ continue;
+ }
+ if ($bIsFirst) {
+ $bIsFirst = false;
+ $sResult .= $oNextLevel->spaceBeforeBlocks();
+ } else {
+ $sResult .= $oNextLevel->spaceBetweenBlocks();
+ }
+ $sResult .= $sRendered;
+ }
+
+ if (!$bIsFirst) {
+ // Had some output
+ $sResult .= $oOutputFormat->spaceAfterBlocks();
+ }
+
+ return $sResult;
+ }
+
+ /**
+ * Return true if the list can not be further outdented. Only important when rendering.
+ *
+ * @return bool
+ */
+ abstract public function isRootList();
+
+ /**
+ * @return array<int, RuleSet|Import|Charset|CSSList>
+ */
+ public function getContents()
+ {
+ return $this->aContents;
+ }
+
+ /**
+ * @param array<array-key, Comment> $aComments
+ *
+ * @return void
+ */
+ public function addComments(array $aComments)
+ {
+ $this->aComments = array_merge($this->aComments, $aComments);
+ }
+
+ /**
+ * @return array<array-key, Comment>
+ */
+ public function getComments()
+ {
+ return $this->aComments;
+ }
+
+ /**
+ * @param array<array-key, Comment> $aComments
+ *
+ * @return void
+ */
+ public function setComments(array $aComments)
+ {
+ $this->aComments = $aComments;
+ }
+}
diff --git a/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/CSSList/Document.php b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/CSSList/Document.php
new file mode 100644
index 0000000..91ab2c6
--- /dev/null
+++ b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/CSSList/Document.php
@@ -0,0 +1,172 @@
+<?php
+
+namespace Sabberworm\CSS\CSSList;
+
+use Sabberworm\CSS\OutputFormat;
+use Sabberworm\CSS\Parsing\ParserState;
+use Sabberworm\CSS\Parsing\SourceException;
+use Sabberworm\CSS\Property\Selector;
+use Sabberworm\CSS\RuleSet\DeclarationBlock;
+use Sabberworm\CSS\RuleSet\RuleSet;
+use Sabberworm\CSS\Value\Value;
+
+/**
+ * The root `CSSList` of a parsed file. Contains all top-level CSS contents, mostly declaration blocks,
+ * but also any at-rules encountered.
+ */
+class Document extends CSSBlockList
+{
+ /**
+ * @param int $iLineNo
+ */
+ public function __construct($iLineNo = 0)
+ {
+ parent::__construct($iLineNo);
+ }
+
+ /**
+ * @return Document
+ *
+ * @throws SourceException
+ */
+ public static function parse(ParserState $oParserState)
+ {
+ $oDocument = new Document($oParserState->currentLine());
+ CSSList::parseList($oParserState, $oDocument);
+ return $oDocument;
+ }
+
+ /**
+ * Gets all `DeclarationBlock` objects recursively.
+ *
+ * @return array<int, DeclarationBlock>
+ */
+ public function getAllDeclarationBlocks()
+ {
+ /** @var array<int, DeclarationBlock> $aResult */
+ $aResult = [];
+ $this->allDeclarationBlocks($aResult);
+ return $aResult;
+ }
+
+ /**
+ * Gets all `DeclarationBlock` objects recursively.
+ *
+ * @return array<int, DeclarationBlock>
+ *
+ * @deprecated will be removed in version 9.0; use `getAllDeclarationBlocks()` instead
+ */
+ public function getAllSelectors()
+ {
+ return $this->getAllDeclarationBlocks();
+ }
+
+ /**
+ * Returns all `RuleSet` objects found recursively in the tree.
+ *
+ * @return array<int, RuleSet>
+ */
+ public function getAllRuleSets()
+ {
+ /** @var array<int, RuleSet> $aResult */
+ $aResult = [];
+ $this->allRuleSets($aResult);
+ return $aResult;
+ }
+
+ /**
+ * Returns all `Value` objects found recursively in the tree.
+ *
+ * @param CSSList|RuleSet|string $mElement
+ * the `CSSList` or `RuleSet` to start the search from (defaults to the whole document).
+ * If a string is given, it is used as rule name filter.
+ * @param bool $bSearchInFunctionArguments whether to also return Value objects used as Function arguments.
+ *
+ * @return array<int, Value>
+ *
+ * @see RuleSet->getRules()
+ */
+ public function getAllValues($mElement = null, $bSearchInFunctionArguments = false)
+ {
+ $sSearchString = null;
+ if ($mElement === null) {
+ $mElement = $this;
+ } elseif (is_string($mElement)) {
+ $sSearchString = $mElement;
+ $mElement = $this;
+ }
+ /** @var array<int, Value> $aResult */
+ $aResult = [];
+ $this->allValues($mElement, $aResult, $sSearchString, $bSearchInFunctionArguments);
+ return $aResult;
+ }
+
+ /**
+ * Returns all `Selector` objects found recursively in the tree.
+ *
+ * Note that this does not yield the full `DeclarationBlock` that the selector belongs to
+ * (and, currently, there is no way to get to that).
+ *
+ * @param string|null $sSpecificitySearch
+ * An optional filter by specificity.
+ * May contain a comparison operator and a number or just a number (defaults to "==").
+ *
+ * @return array<int, Selector>
+ * @example `getSelectorsBySpecificity('>= 100')`
+ *
+ */
+ public function getSelectorsBySpecificity($sSpecificitySearch = null)
+ {
+ /** @var array<int, Selector> $aResult */
+ $aResult = [];
+ $this->allSelectors($aResult, $sSpecificitySearch);
+ return $aResult;
+ }
+
+ /**
+ * Expands all shorthand properties to their long value.
+ *
+ * @return void
+ */
+ public function expandShorthands()
+ {
+ foreach ($this->getAllDeclarationBlocks() as $oDeclaration) {
+ $oDeclaration->expandShorthands();
+ }
+ }
+
+ /**
+ * Create shorthands properties whenever possible.
+ *
+ * @return void
+ */
+ public function createShorthands()
+ {
+ foreach ($this->getAllDeclarationBlocks() as $oDeclaration) {
+ $oDeclaration->createShorthands();
+ }
+ }
+
+ /**
+ * Overrides `render()` to make format argument optional.
+ *
+ * @param OutputFormat|null $oOutputFormat
+ *
+ * @return string
+ */
+ public function render(OutputFormat $oOutputFormat = null)
+ {
+ if ($oOutputFormat === null) {
+ $oOutputFormat = new OutputFormat();
+ }
+ return parent::render($oOutputFormat);
+ }
+
+ /**
+ * @return bool
+ */
+ public function isRootList()
+ {
+ return true;
+ }
+}
diff --git a/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/CSSList/KeyFrame.php b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/CSSList/KeyFrame.php
new file mode 100644
index 0000000..d9420e9
--- /dev/null
+++ b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/CSSList/KeyFrame.php
@@ -0,0 +1,104 @@
+<?php
+
+namespace Sabberworm\CSS\CSSList;
+
+use Sabberworm\CSS\OutputFormat;
+use Sabberworm\CSS\Property\AtRule;
+
+class KeyFrame extends CSSList implements AtRule
+{
+ /**
+ * @var string|null
+ */
+ private $vendorKeyFrame;
+
+ /**
+ * @var string|null
+ */
+ private $animationName;
+
+ /**
+ * @param int $iLineNo
+ */
+ public function __construct($iLineNo = 0)
+ {
+ parent::__construct($iLineNo);
+ $this->vendorKeyFrame = null;
+ $this->animationName = null;
+ }
+
+ /**
+ * @param string $vendorKeyFrame
+ */
+ public function setVendorKeyFrame($vendorKeyFrame)
+ {
+ $this->vendorKeyFrame = $vendorKeyFrame;
+ }
+
+ /**
+ * @return string|null
+ */
+ public function getVendorKeyFrame()
+ {
+ return $this->vendorKeyFrame;
+ }
+
+ /**
+ * @param string $animationName
+ */
+ public function setAnimationName($animationName)
+ {
+ $this->animationName = $animationName;
+ }
+
+ /**
+ * @return string|null
+ */
+ public function getAnimationName()
+ {
+ return $this->animationName;
+ }
+
+ /**
+ * @return string
+ */
+ public function __toString()
+ {
+ return $this->render(new OutputFormat());
+ }
+
+ /**
+ * @return string
+ */
+ public function render(OutputFormat $oOutputFormat)
+ {
+ $sResult = "@{$this->vendorKeyFrame} {$this->animationName}{$oOutputFormat->spaceBeforeOpeningBrace()}{";
+ $sResult .= parent::render($oOutputFormat);
+ $sResult .= '}';
+ return $sResult;
+ }
+
+ /**
+ * @return bool
+ */
+ public function isRootList()
+ {
+ return false;
+ }
+
+ /**
+ * @return string|null
+ */
+ public function atRuleName()
+ {
+ return $this->vendorKeyFrame;
+ }
+
+ /**
+ * @return string|null
+ */
+ public function atRuleArgs()
+ {
+ return $this->animationName;
+ }
+}
diff --git a/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Comment/Comment.php b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Comment/Comment.php
new file mode 100644
index 0000000..6128d74
--- /dev/null
+++ b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Comment/Comment.php
@@ -0,0 +1,71 @@
+<?php
+
+namespace Sabberworm\CSS\Comment;
+
+use Sabberworm\CSS\OutputFormat;
+use Sabberworm\CSS\Renderable;
+
+class Comment implements Renderable
+{
+ /**
+ * @var int
+ */
+ protected $iLineNo;
+
+ /**
+ * @var string
+ */
+ protected $sComment;
+
+ /**
+ * @param string $sComment
+ * @param int $iLineNo
+ */
+ public function __construct($sComment = '', $iLineNo = 0)
+ {
+ $this->sComment = $sComment;
+ $this->iLineNo = $iLineNo;
+ }
+
+ /**
+ * @return string
+ */
+ public function getComment()
+ {
+ return $this->sComment;
+ }
+
+ /**
+ * @return int
+ */
+ public function getLineNo()
+ {
+ return $this->iLineNo;
+ }
+
+ /**
+ * @param string $sComment
+ *
+ * @return void
+ */
+ public function setComment($sComment)
+ {
+ $this->sComment = $sComment;
+ }
+
+ /**
+ * @return string
+ */
+ public function __toString()
+ {
+ return $this->render(new OutputFormat());
+ }
+
+ /**
+ * @return string
+ */
+ public function render(OutputFormat $oOutputFormat)
+ {
+ return '/*' . $this->sComment . '*/';
+ }
+}
diff --git a/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Comment/Commentable.php b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Comment/Commentable.php
new file mode 100644
index 0000000..5e450bf
--- /dev/null
+++ b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Comment/Commentable.php
@@ -0,0 +1,25 @@
+<?php
+
+namespace Sabberworm\CSS\Comment;
+
+interface Commentable
+{
+ /**
+ * @param array<array-key, Comment> $aComments
+ *
+ * @return void
+ */
+ public function addComments(array $aComments);
+
+ /**
+ * @return array<array-key, Comment>
+ */
+ public function getComments();
+
+ /**
+ * @param array<array-key, Comment> $aComments
+ *
+ * @return void
+ */
+ public function setComments(array $aComments);
+}
diff --git a/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/OutputFormat.php b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/OutputFormat.php
new file mode 100644
index 0000000..595d306
--- /dev/null
+++ b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/OutputFormat.php
@@ -0,0 +1,334 @@
+<?php
+
+namespace Sabberworm\CSS;
+
+/**
+ * Class OutputFormat
+ *
+ * @method OutputFormat setSemicolonAfterLastRule(bool $bSemicolonAfterLastRule) Set whether semicolons are added after
+ * last rule.
+ */
+class OutputFormat
+{
+ /**
+ * Value format: `"` means double-quote, `'` means single-quote
+ *
+ * @var string
+ */
+ public $sStringQuotingType = '"';
+
+ /**
+ * Output RGB colors in hash notation if possible
+ *
+ * @var string
+ */
+ public $bRGBHashNotation = true;
+
+ /**
+ * Declaration format
+ *
+ * Semicolon after the last rule of a declaration block can be omitted. To do that, set this false.
+ *
+ * @var bool
+ */
+ public $bSemicolonAfterLastRule = true;
+
+ /**
+ * Spacing
+ * Note that these strings are not sanity-checked: the value should only consist of whitespace
+ * Any newline character will be indented according to the current level.
+ * The triples (After, Before, Between) can be set using a wildcard (e.g. `$oFormat->set('Space*Rules', "\n");`)
+ */
+ public $sSpaceAfterRuleName = ' ';
+
+ /**
+ * @var string
+ */
+ public $sSpaceBeforeRules = '';
+
+ /**
+ * @var string
+ */
+ public $sSpaceAfterRules = '';
+
+ /**
+ * @var string
+ */
+ public $sSpaceBetweenRules = '';
+
+ /**
+ * @var string
+ */
+ public $sSpaceBeforeBlocks = '';
+
+ /**
+ * @var string
+ */
+ public $sSpaceAfterBlocks = '';
+
+ /**
+ * @var string
+ */
+ public $sSpaceBetweenBlocks = "\n";
+
+ /**
+ * Content injected in and around at-rule blocks.
+ *
+ * @var string
+ */
+ public $sBeforeAtRuleBlock = '';
+
+ /**
+ * @var string
+ */
+ public $sAfterAtRuleBlock = '';
+
+ /**
+ * This is what’s printed before and after the comma if a declaration block contains multiple selectors.
+ *
+ * @var string
+ */
+ public $sSpaceBeforeSelectorSeparator = '';
+
+ /**
+ * @var string
+ */
+ public $sSpaceAfterSelectorSeparator = ' ';
+
+ /**
+ * This is what’s printed after the comma of value lists
+ *
+ * @var string
+ */
+ public $sSpaceBeforeListArgumentSeparator = '';
+
+ /**
+ * @var string
+ */
+ public $sSpaceAfterListArgumentSeparator = '';
+
+ /**
+ * @var string
+ */
+ public $sSpaceBeforeOpeningBrace = ' ';
+
+ /**
+ * Content injected in and around declaration blocks.
+ *
+ * @var string
+ */
+ public $sBeforeDeclarationBlock = '';
+
+ /**
+ * @var string
+ */
+ public $sAfterDeclarationBlockSelectors = '';
+
+ /**
+ * @var string
+ */
+ public $sAfterDeclarationBlock = '';
+
+ /**
+ * Indentation character(s) per level. Only applicable if newlines are used in any of the spacing settings.
+ *
+ * @var string
+ */
+ public $sIndentation = "\t";
+
+ /**
+ * Output exceptions.
+ *
+ * @var bool
+ */
+ public $bIgnoreExceptions = false;
+
+ /**
+ * @var OutputFormatter|null
+ */
+ private $oFormatter = null;
+
+ /**
+ * @var OutputFormat|null
+ */
+ private $oNextLevelFormat = null;
+
+ /**
+ * @var int
+ */
+ private $iIndentationLevel = 0;
+
+ public function __construct()
+ {
+ }
+
+ /**
+ * @param string $sName
+ *
+ * @return string|null
+ */
+ public function get($sName)
+ {
+ $aVarPrefixes = ['a', 's', 'm', 'b', 'f', 'o', 'c', 'i'];
+ foreach ($aVarPrefixes as $sPrefix) {
+ $sFieldName = $sPrefix . ucfirst($sName);
+ if (isset($this->$sFieldName)) {
+ return $this->$sFieldName;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * @param array<array-key, string>|string $aNames
+ * @param mixed $mValue
+ *
+ * @return self|false
+ */
+ public function set($aNames, $mValue)
+ {
+ $aVarPrefixes = ['a', 's', 'm', 'b', 'f', 'o', 'c', 'i'];
+ if (is_string($aNames) && strpos($aNames, '*') !== false) {
+ $aNames =
+ [
+ str_replace('*', 'Before', $aNames),
+ str_replace('*', 'Between', $aNames),
+ str_replace('*', 'After', $aNames),
+ ];
+ } elseif (!is_array($aNames)) {
+ $aNames = [$aNames];
+ }
+ foreach ($aVarPrefixes as $sPrefix) {
+ $bDidReplace = false;
+ foreach ($aNames as $sName) {
+ $sFieldName = $sPrefix . ucfirst($sName);
+ if (isset($this->$sFieldName)) {
+ $this->$sFieldName = $mValue;
+ $bDidReplace = true;
+ }
+ }
+ if ($bDidReplace) {
+ return $this;
+ }
+ }
+ // Break the chain so the user knows this option is invalid
+ return false;
+ }
+
+ /**
+ * @param string $sMethodName
+ * @param array<array-key, mixed> $aArguments
+ *
+ * @return mixed
+ *
+ * @throws \Exception
+ */
+ public function __call($sMethodName, array $aArguments)
+ {
+ if (strpos($sMethodName, 'set') === 0) {
+ return $this->set(substr($sMethodName, 3), $aArguments[0]);
+ } elseif (strpos($sMethodName, 'get') === 0) {
+ return $this->get(substr($sMethodName, 3));
+ } elseif (method_exists(OutputFormatter::class, $sMethodName)) {
+ return call_user_func_array([$this->getFormatter(), $sMethodName], $aArguments);
+ } else {
+ throw new \Exception('Unknown OutputFormat method called: ' . $sMethodName);
+ }
+ }
+
+ /**
+ * @param int $iNumber
+ *
+ * @return self
+ */
+ public function indentWithTabs($iNumber = 1)
+ {
+ return $this->setIndentation(str_repeat("\t", $iNumber));
+ }
+
+ /**
+ * @param int $iNumber
+ *
+ * @return self
+ */
+ public function indentWithSpaces($iNumber = 2)
+ {
+ return $this->setIndentation(str_repeat(" ", $iNumber));
+ }
+
+ /**
+ * @return OutputFormat
+ */
+ public function nextLevel()
+ {
+ if ($this->oNextLevelFormat === null) {
+ $this->oNextLevelFormat = clone $this;
+ $this->oNextLevelFormat->iIndentationLevel++;
+ $this->oNextLevelFormat->oFormatter = null;
+ }
+ return $this->oNextLevelFormat;
+ }
+
+ /**
+ * @return void
+ */
+ public function beLenient()
+ {
+ $this->bIgnoreExceptions = true;
+ }
+
+ /**
+ * @return OutputFormatter
+ */
+ public function getFormatter()
+ {
+ if ($this->oFormatter === null) {
+ $this->oFormatter = new OutputFormatter($this);
+ }
+ return $this->oFormatter;
+ }
+
+ /**
+ * @return int
+ */
+ public function level()
+ {
+ return $this->iIndentationLevel;
+ }
+
+ /**
+ * Creates an instance of this class without any particular formatting settings.
+ *
+ * @return self
+ */
+ public static function create()
+ {
+ return new OutputFormat();
+ }
+
+ /**
+ * Creates an instance of this class with a preset for compact formatting.
+ *
+ * @return self
+ */
+ public static function createCompact()
+ {
+ $format = self::create();
+ $format->set('Space*Rules', "")->set('Space*Blocks', "")->setSpaceAfterRuleName('')
+ ->setSpaceBeforeOpeningBrace('')->setSpaceAfterSelectorSeparator('');
+ return $format;
+ }
+
+ /**
+ * Creates an instance of this class with a preset for pretty formatting.
+ *
+ * @return self
+ */
+ public static function createPretty()
+ {
+ $format = self::create();
+ $format->set('Space*Rules', "\n")->set('Space*Blocks', "\n")
+ ->setSpaceBetweenBlocks("\n\n")->set('SpaceAfterListArgumentSeparator', ['default' => '', ',' => ' ']);
+ return $format;
+ }
+}
diff --git a/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/OutputFormatter.php b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/OutputFormatter.php
new file mode 100644
index 0000000..535feca
--- /dev/null
+++ b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/OutputFormatter.php
@@ -0,0 +1,231 @@
+<?php
+
+namespace Sabberworm\CSS;
+
+use Sabberworm\CSS\Parsing\OutputException;
+
+class OutputFormatter
+{
+ /**
+ * @var OutputFormat
+ */
+ private $oFormat;
+
+ public function __construct(OutputFormat $oFormat)
+ {
+ $this->oFormat = $oFormat;
+ }
+
+ /**
+ * @param string $sName
+ * @param string|null $sType
+ *
+ * @return string
+ */
+ public function space($sName, $sType = null)
+ {
+ $sSpaceString = $this->oFormat->get("Space$sName");
+ // If $sSpaceString is an array, we have multiple values configured
+ // depending on the type of object the space applies to
+ if (is_array($sSpaceString)) {
+ if ($sType !== null && isset($sSpaceString[$sType])) {
+ $sSpaceString = $sSpaceString[$sType];
+ } else {
+ $sSpaceString = reset($sSpaceString);
+ }
+ }
+ return $this->prepareSpace($sSpaceString);
+ }
+
+ /**
+ * @return string
+ */
+ public function spaceAfterRuleName()
+ {
+ return $this->space('AfterRuleName');
+ }
+
+ /**
+ * @return string
+ */
+ public function spaceBeforeRules()
+ {
+ return $this->space('BeforeRules');
+ }
+
+ /**
+ * @return string
+ */
+ public function spaceAfterRules()
+ {
+ return $this->space('AfterRules');
+ }
+
+ /**
+ * @return string
+ */
+ public function spaceBetweenRules()
+ {
+ return $this->space('BetweenRules');
+ }
+
+ /**
+ * @return string
+ */
+ public function spaceBeforeBlocks()
+ {
+ return $this->space('BeforeBlocks');
+ }
+
+ /**
+ * @return string
+ */
+ public function spaceAfterBlocks()
+ {
+ return $this->space('AfterBlocks');
+ }
+
+ /**
+ * @return string
+ */
+ public function spaceBetweenBlocks()
+ {
+ return $this->space('BetweenBlocks');
+ }
+
+ /**
+ * @return string
+ */
+ public function spaceBeforeSelectorSeparator()
+ {
+ return $this->space('BeforeSelectorSeparator');
+ }
+
+ /**
+ * @return string
+ */
+ public function spaceAfterSelectorSeparator()
+ {
+ return $this->space('AfterSelectorSeparator');
+ }
+
+ /**
+ * @param string $sSeparator
+ *
+ * @return string
+ */
+ public function spaceBeforeListArgumentSeparator($sSeparator)
+ {
+ return $this->space('BeforeListArgumentSeparator', $sSeparator);
+ }
+
+ /**
+ * @param string $sSeparator
+ *
+ * @return string
+ */
+ public function spaceAfterListArgumentSeparator($sSeparator)
+ {
+ return $this->space('AfterListArgumentSeparator', $sSeparator);
+ }
+
+ /**
+ * @return string
+ */
+ public function spaceBeforeOpeningBrace()
+ {
+ return $this->space('BeforeOpeningBrace');
+ }
+
+ /**
+ * Runs the given code, either swallowing or passing exceptions, depending on the `bIgnoreExceptions` setting.
+ *
+ * @param string $cCode the name of the function to call
+ *
+ * @return string|null
+ */
+ public function safely($cCode)
+ {
+ if ($this->oFormat->get('IgnoreExceptions')) {
+ // If output exceptions are ignored, run the code with exception guards
+ try {
+ return $cCode();
+ } catch (OutputException $e) {
+ return null;
+ } // Do nothing
+ } else {
+ // Run the code as-is
+ return $cCode();
+ }
+ }
+
+ /**
+ * Clone of the `implode` function, but calls `render` with the current output format instead of `__toString()`.
+ *
+ * @param string $sSeparator
+ * @param array<array-key, Renderable|string> $aValues
+ * @param bool $bIncreaseLevel
+ *
+ * @return string
+ */
+ public function implode($sSeparator, array $aValues, $bIncreaseLevel = false)
+ {
+ $sResult = '';
+ $oFormat = $this->oFormat;
+ if ($bIncreaseLevel) {
+ $oFormat = $oFormat->nextLevel();
+ }
+ $bIsFirst = true;
+ foreach ($aValues as $mValue) {
+ if ($bIsFirst) {
+ $bIsFirst = false;
+ } else {
+ $sResult .= $sSeparator;
+ }
+ if ($mValue instanceof Renderable) {
+ $sResult .= $mValue->render($oFormat);
+ } else {
+ $sResult .= $mValue;
+ }
+ }
+ return $sResult;
+ }
+
+ /**
+ * @param string $sString
+ *
+ * @return string
+ */
+ public function removeLastSemicolon($sString)
+ {
+ if ($this->oFormat->get('SemicolonAfterLastRule')) {
+ return $sString;
+ }
+ $sString = explode(';', $sString);
+ if (count($sString) < 2) {
+ return $sString[0];
+ }
+ $sLast = array_pop($sString);
+ $sNextToLast = array_pop($sString);
+ array_push($sString, $sNextToLast . $sLast);
+ return implode(';', $sString);
+ }
+
+ /**
+ * @param string $sSpaceString
+ *
+ * @return string
+ */
+ private function prepareSpace($sSpaceString)
+ {
+ return str_replace("\n", "\n" . $this->indent(), $sSpaceString);
+ }
+
+ /**
+ * @return string
+ */
+ private function indent()
+ {
+ return str_repeat($this->oFormat->sIndentation, $this->oFormat->level());
+ }
+}
diff --git a/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Parser.php b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Parser.php
new file mode 100644
index 0000000..f3b0493
--- /dev/null
+++ b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Parser.php
@@ -0,0 +1,60 @@
+<?php
+
+namespace Sabberworm\CSS;
+
+use Sabberworm\CSS\CSSList\Document;
+use Sabberworm\CSS\Parsing\ParserState;
+use Sabberworm\CSS\Parsing\SourceException;
+
+/**
+ * This class parses CSS from text into a data structure.
+ */
+class Parser
+{
+ /**
+ * @var ParserState
+ */
+ private $oParserState;
+
+ /**
+ * @param string $sText
+ * @param Settings|null $oParserSettings
+ * @param int $iLineNo the line number (starting from 1, not from 0)
+ */
+ public function __construct($sText, Settings $oParserSettings = null, $iLineNo = 1)
+ {
+ if ($oParserSettings === null) {
+ $oParserSettings = Settings::create();
+ }
+ $this->oParserState = new ParserState($sText, $oParserSettings, $iLineNo);
+ }
+
+ /**
+ * @param string $sCharset
+ *
+ * @return void
+ */
+ public function setCharset($sCharset)
+ {
+ $this->oParserState->setCharset($sCharset);
+ }
+
+ /**
+ * @return void
+ */
+ public function getCharset()
+ {
+ // Note: The `return` statement is missing here. This is a bug that needs to be fixed.
+ $this->oParserState->getCharset();
+ }
+
+ /**
+ * @return Document
+ *
+ * @throws SourceException
+ */
+ public function parse()
+ {
+ return Document::parse($this->oParserState);
+ }
+}
diff --git a/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Parsing/OutputException.php b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Parsing/OutputException.php
new file mode 100644
index 0000000..9bfbc75
--- /dev/null
+++ b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Parsing/OutputException.php
@@ -0,0 +1,18 @@
+<?php
+
+namespace Sabberworm\CSS\Parsing;
+
+/**
+ * Thrown if the CSS parser attempts to print something invalid.
+ */
+class OutputException extends SourceException
+{
+ /**
+ * @param string $sMessage
+ * @param int $iLineNo
+ */
+ public function __construct($sMessage, $iLineNo = 0)
+ {
+ parent::__construct($sMessage, $iLineNo);
+ }
+}
diff --git a/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Parsing/ParserState.php b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Parsing/ParserState.php
new file mode 100644
index 0000000..e7d85ee
--- /dev/null
+++ b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Parsing/ParserState.php
@@ -0,0 +1,516 @@
+<?php
+
+namespace Sabberworm\CSS\Parsing;
+
+use Sabberworm\CSS\Comment\Comment;
+use Sabberworm\CSS\Settings;
+
+class ParserState
+{
+ /**
+ * @var null
+ */
+ const EOF = null;
+
+ /**
+ * @var Settings
+ */
+ private $oParserSettings;
+
+ /**
+ * @var string
+ */
+ private $sText;
+
+ /**
+ * @var array<int, string>
+ */
+ private $aText;
+
+ /**
+ * @var int
+ */
+ private $iCurrentPosition;
+
+ /**
+ * @var string
+ */
+ private $sCharset;
+
+ /**
+ * @var int
+ */
+ private $iLength;
+
+ /**
+ * @var int
+ */
+ private $iLineNo;
+
+ /**
+ * @param string $sText
+ * @param int $iLineNo
+ */
+ public function __construct($sText, Settings $oParserSettings, $iLineNo = 1)
+ {
+ $this->oParserSettings = $oParserSettings;
+ $this->sText = $sText;
+ $this->iCurrentPosition = 0;
+ $this->iLineNo = $iLineNo;
+ $this->setCharset($this->oParserSettings->sDefaultCharset);
+ }
+
+ /**
+ * @param string $sCharset
+ *
+ * @return void
+ */
+ public function setCharset($sCharset)
+ {
+ $this->sCharset = $sCharset;
+ $this->aText = $this->strsplit($this->sText);
+ if (is_array($this->aText)) {
+ $this->iLength = count($this->aText);
+ }
+ }
+
+ /**
+ * @return string
+ */
+ public function getCharset()
+ {
+ return $this->sCharset;
+ }
+
+ /**
+ * @return int
+ */
+ public function currentLine()
+ {
+ return $this->iLineNo;
+ }
+
+ /**
+ * @return int
+ */
+ public function currentColumn()
+ {
+ return $this->iCurrentPosition;
+ }
+
+ /**
+ * @return Settings
+ */
+ public function getSettings()
+ {
+ return $this->oParserSettings;
+ }
+
+ /**
+ * @param bool $bIgnoreCase
+ *
+ * @return string
+ *
+ * @throws UnexpectedTokenException
+ */
+ public function parseIdentifier($bIgnoreCase = true)
+ {
+ $sResult = $this->parseCharacter(true);
+ if ($sResult === null) {
+ throw new UnexpectedTokenException($sResult, $this->peek(5), 'identifier', $this->iLineNo);
+ }
+ $sCharacter = null;
+ while (($sCharacter = $this->parseCharacter(true)) !== null) {
+ if (preg_match('/[a-zA-Z0-9\x{00A0}-\x{FFFF}_-]/Sux', $sCharacter)) {
+ $sResult .= $sCharacter;
+ } else {
+ $sResult .= '\\' . $sCharacter;
+ }
+ }
+ if ($bIgnoreCase) {
+ $sResult = $this->strtolower($sResult);
+ }
+ return $sResult;
+ }
+
+ /**
+ * @param bool $bIsForIdentifier
+ *
+ * @return string|null
+ *
+ * @throws UnexpectedEOFException
+ * @throws UnexpectedTokenException
+ */
+ public function parseCharacter($bIsForIdentifier)
+ {
+ if ($this->peek() === '\\') {
+ if (
+ $bIsForIdentifier && $this->oParserSettings->bLenientParsing
+ && ($this->comes('\0') || $this->comes('\9'))
+ ) {
+ // Non-strings can contain \0 or \9 which is an IE hack supported in lenient parsing.
+ return null;
+ }
+ $this->consume('\\');
+ if ($this->comes('\n') || $this->comes('\r')) {
+ return '';
+ }
+ if (preg_match('/[0-9a-fA-F]/Su', $this->peek()) === 0) {
+ return $this->consume(1);
+ }
+ $sUnicode = $this->consumeExpression('/^[0-9a-fA-F]{1,6}/u', 6);
+ if ($this->strlen($sUnicode) < 6) {
+ // Consume whitespace after incomplete unicode escape
+ if (preg_match('/\\s/isSu', $this->peek())) {
+ if ($this->comes('\r\n')) {
+ $this->consume(2);
+ } else {
+ $this->consume(1);
+ }
+ }
+ }
+ $iUnicode = intval($sUnicode, 16);
+ $sUtf32 = "";
+ for ($i = 0; $i < 4; ++$i) {
+ $sUtf32 .= chr($iUnicode & 0xff);
+ $iUnicode = $iUnicode >> 8;
+ }
+ return iconv('utf-32le', $this->sCharset, $sUtf32);
+ }
+ if ($bIsForIdentifier) {
+ $peek = ord($this->peek());
+ // Ranges: a-z A-Z 0-9 - _
+ if (
+ ($peek >= 97 && $peek <= 122)
+ || ($peek >= 65 && $peek <= 90)
+ || ($peek >= 48 && $peek <= 57)
+ || ($peek === 45)
+ || ($peek === 95)
+ || ($peek > 0xa1)
+ ) {
+ return $this->consume(1);
+ }
+ } else {
+ return $this->consume(1);
+ }
+ return null;
+ }
+
+ /**
+ * @return array<int, Comment>|void
+ *
+ * @throws UnexpectedEOFException
+ * @throws UnexpectedTokenException
+ */
+ public function consumeWhiteSpace()
+ {
+ $comments = [];
+ do {
+ while (preg_match('/\\s/isSu', $this->peek()) === 1) {
+ $this->consume(1);
+ }
+ if ($this->oParserSettings->bLenientParsing) {
+ try {
+ $oComment = $this->consumeComment();
+ } catch (UnexpectedEOFException $e) {
+ $this->iCurrentPosition = $this->iLength;
+ return;
+ }
+ } else {
+ $oComment = $this->consumeComment();
+ }
+ if ($oComment !== false) {
+ $comments[] = $oComment;
+ }
+ } while ($oComment !== false);
+ return $comments;
+ }
+
+ /**
+ * @param string $sString
+ * @param bool $bCaseInsensitive
+ *
+ * @return bool
+ */
+ public function comes($sString, $bCaseInsensitive = false)
+ {
+ $sPeek = $this->peek(strlen($sString));
+ return ($sPeek == '')
+ ? false
+ : $this->streql($sPeek, $sString, $bCaseInsensitive);
+ }
+
+ /**
+ * @param int $iLength
+ * @param int $iOffset
+ *
+ * @return string
+ */
+ public function peek($iLength = 1, $iOffset = 0)
+ {
+ $iOffset += $this->iCurrentPosition;
+ if ($iOffset >= $this->iLength) {
+ return '';
+ }
+ return $this->substr($iOffset, $iLength);
+ }
+
+ /**
+ * @param int $mValue
+ *
+ * @return string
+ *
+ * @throws UnexpectedEOFException
+ * @throws UnexpectedTokenException
+ */
+ public function consume($mValue = 1)
+ {
+ if (is_string($mValue)) {
+ $iLineCount = substr_count($mValue, "\n");
+ $iLength = $this->strlen($mValue);
+ if (!$this->streql($this->substr($this->iCurrentPosition, $iLength), $mValue)) {
+ throw new UnexpectedTokenException($mValue, $this->peek(max($iLength, 5)), $this->iLineNo);
+ }
+ $this->iLineNo += $iLineCount;
+ $this->iCurrentPosition += $this->strlen($mValue);
+ return $mValue;
+ } else {
+ if ($this->iCurrentPosition + $mValue > $this->iLength) {
+ throw new UnexpectedEOFException($mValue, $this->peek(5), 'count', $this->iLineNo);
+ }
+ $sResult = $this->substr($this->iCurrentPosition, $mValue);
+ $iLineCount = substr_count($sResult, "\n");
+ $this->iLineNo += $iLineCount;
+ $this->iCurrentPosition += $mValue;
+ return $sResult;
+ }
+ }
+
+ /**
+ * @param string $mExpression
+ * @param int|null $iMaxLength
+ *
+ * @return string
+ *
+ * @throws UnexpectedEOFException
+ * @throws UnexpectedTokenException
+ */
+ public function consumeExpression($mExpression, $iMaxLength = null)
+ {
+ $aMatches = null;
+ $sInput = $iMaxLength !== null ? $this->peek($iMaxLength) : $this->inputLeft();
+ if (preg_match($mExpression, $sInput, $aMatches, PREG_OFFSET_CAPTURE) === 1) {
+ return $this->consume($aMatches[0][0]);
+ }
+ throw new UnexpectedTokenException($mExpression, $this->peek(5), 'expression', $this->iLineNo);
+ }
+
+ /**
+ * @return Comment|false
+ */
+ public function consumeComment()
+ {
+ $mComment = false;
+ if ($this->comes('/*')) {
+ $iLineNo = $this->iLineNo;
+ $this->consume(1);
+ $mComment = '';
+ while (($char = $this->consume(1)) !== '') {
+ $mComment .= $char;
+ if ($this->comes('*/')) {
+ $this->consume(2);
+ break;
+ }
+ }
+ }
+
+ if ($mComment !== false) {
+ // We skip the * which was included in the comment.
+ return new Comment(substr($mComment, 1), $iLineNo);
+ }
+
+ return $mComment;
+ }
+
+ /**
+ * @return bool
+ */
+ public function isEnd()
+ {
+ return $this->iCurrentPosition >= $this->iLength;
+ }
+
+ /**
+ * @param array<array-key, string>|string $aEnd
+ * @param string $bIncludeEnd
+ * @param string $consumeEnd
+ * @param array<int, Comment> $comments
+ *
+ * @return string
+ *
+ * @throws UnexpectedEOFException
+ * @throws UnexpectedTokenException
+ */
+ public function consumeUntil($aEnd, $bIncludeEnd = false, $consumeEnd = false, array &$comments = [])
+ {
+ $aEnd = is_array($aEnd) ? $aEnd : [$aEnd];
+ $out = '';
+ $start = $this->iCurrentPosition;
+
+ while (!$this->isEnd()) {
+ $char = $this->consume(1);
+ if (in_array($char, $aEnd)) {
+ if ($bIncludeEnd) {
+ $out .= $char;
+ } elseif (!$consumeEnd) {
+ $this->iCurrentPosition -= $this->strlen($char);
+ }
+ return $out;
+ }
+ $out .= $char;
+ if ($comment = $this->consumeComment()) {
+ $comments[] = $comment;
+ }
+ }
+
+ if (in_array(self::EOF, $aEnd)) {
+ return $out;
+ }
+
+ $this->iCurrentPosition = $start;
+ throw new UnexpectedEOFException(
+ 'One of ("' . implode('","', $aEnd) . '")',
+ $this->peek(5),
+ 'search',
+ $this->iLineNo
+ );
+ }
+
+ /**
+ * @return string
+ */
+ private function inputLeft()
+ {
+ return $this->substr($this->iCurrentPosition, -1);
+ }
+
+ /**
+ * @param string $sString1
+ * @param string $sString2
+ * @param bool $bCaseInsensitive
+ *
+ * @return bool
+ */
+ public function streql($sString1, $sString2, $bCaseInsensitive = true)
+ {
+ if ($bCaseInsensitive) {
+ return $this->strtolower($sString1) === $this->strtolower($sString2);
+ } else {
+ return $sString1 === $sString2;
+ }
+ }
+
+ /**
+ * @param int $iAmount
+ *
+ * @return void
+ */
+ public function backtrack($iAmount)
+ {
+ $this->iCurrentPosition -= $iAmount;
+ }
+
+ /**
+ * @param string $sString
+ *
+ * @return int
+ */
+ public function strlen($sString)
+ {
+ if ($this->oParserSettings->bMultibyteSupport) {
+ return mb_strlen($sString, $this->sCharset);
+ } else {
+ return strlen($sString);
+ }
+ }
+
+ /**
+ * @param int $iStart
+ * @param int $iLength
+ *
+ * @return string
+ */
+ private function substr($iStart, $iLength)
+ {
+ if ($iLength < 0) {
+ $iLength = $this->iLength - $iStart + $iLength;
+ }
+ if ($iStart + $iLength > $this->iLength) {
+ $iLength = $this->iLength - $iStart;
+ }
+ $sResult = '';
+ while ($iLength > 0) {
+ $sResult .= $this->aText[$iStart];
+ $iStart++;
+ $iLength--;
+ }
+ return $sResult;
+ }
+
+ /**
+ * @param string $sString
+ *
+ * @return string
+ */
+ private function strtolower($sString)
+ {
+ if ($this->oParserSettings->bMultibyteSupport) {
+ return mb_strtolower($sString, $this->sCharset);
+ } else {
+ return strtolower($sString);
+ }
+ }
+
+ /**
+ * @param string $sString
+ *
+ * @return array<int, string>
+ */
+ private function strsplit($sString)
+ {
+ if ($this->oParserSettings->bMultibyteSupport) {
+ if ($this->streql($this->sCharset, 'utf-8')) {
+ return preg_split('//u', $sString, -1, PREG_SPLIT_NO_EMPTY);
+ } else {
+ $iLength = mb_strlen($sString, $this->sCharset);
+ $aResult = [];
+ for ($i = 0; $i < $iLength; ++$i) {
+ $aResult[] = mb_substr($sString, $i, 1, $this->sCharset);
+ }
+ return $aResult;
+ }
+ } else {
+ if ($sString === '') {
+ return [];
+ } else {
+ return str_split($sString);
+ }
+ }
+ }
+
+ /**
+ * @param string $sString
+ * @param string $sNeedle
+ * @param int $iOffset
+ *
+ * @return int|false
+ */
+ private function strpos($sString, $sNeedle, $iOffset)
+ {
+ if ($this->oParserSettings->bMultibyteSupport) {
+ return mb_strpos($sString, $sNeedle, $iOffset, $this->sCharset);
+ } else {
+ return strpos($sString, $sNeedle, $iOffset);
+ }
+ }
+}
diff --git a/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Parsing/SourceException.php b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Parsing/SourceException.php
new file mode 100644
index 0000000..1ca668a
--- /dev/null
+++ b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Parsing/SourceException.php
@@ -0,0 +1,32 @@
+<?php
+
+namespace Sabberworm\CSS\Parsing;
+
+class SourceException extends \Exception
+{
+ /**
+ * @var int
+ */
+ private $iLineNo;
+
+ /**
+ * @param string $sMessage
+ * @param int $iLineNo
+ */
+ public function __construct($sMessage, $iLineNo = 0)
+ {
+ $this->iLineNo = $iLineNo;
+ if (!empty($iLineNo)) {
+ $sMessage .= " [line no: $iLineNo]";
+ }
+ parent::__construct($sMessage);
+ }
+
+ /**
+ * @return int
+ */
+ public function getLineNo()
+ {
+ return $this->iLineNo;
+ }
+}
diff --git a/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Parsing/UnexpectedEOFException.php b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Parsing/UnexpectedEOFException.php
new file mode 100644
index 0000000..368ec70
--- /dev/null
+++ b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Parsing/UnexpectedEOFException.php
@@ -0,0 +1,12 @@
+<?php
+
+namespace Sabberworm\CSS\Parsing;
+
+/**
+ * Thrown if the CSS parser encounters end of file it did not expect.
+ *
+ * Extends `UnexpectedTokenException` in order to preserve backwards compatibility.
+ */
+class UnexpectedEOFException extends UnexpectedTokenException
+{
+}
diff --git a/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Parsing/UnexpectedTokenException.php b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Parsing/UnexpectedTokenException.php
new file mode 100644
index 0000000..7d5b1a6
--- /dev/null
+++ b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Parsing/UnexpectedTokenException.php
@@ -0,0 +1,51 @@
+<?php
+
+namespace Sabberworm\CSS\Parsing;
+
+/**
+ * Thrown if the CSS parser encounters a token it did not expect.
+ */
+class UnexpectedTokenException extends SourceException
+{
+ /**
+ * @var string
+ */
+ private $sExpected;
+
+ /**
+ * @var string
+ */
+ private $sFound;
+
+ /**
+ * Possible values: literal, identifier, count, expression, search
+ *
+ * @var string
+ */
+ private $sMatchType;
+
+ /**
+ * @param string $sExpected
+ * @param string $sFound
+ * @param string $sMatchType
+ * @param int $iLineNo
+ */
+ public function __construct($sExpected, $sFound, $sMatchType = 'literal', $iLineNo = 0)
+ {
+ $this->sExpected = $sExpected;
+ $this->sFound = $sFound;
+ $this->sMatchType = $sMatchType;
+ $sMessage = "Token “{$sExpected}” ({$sMatchType}) not found. Got “{$sFound}”.";
+ if ($this->sMatchType === 'search') {
+ $sMessage = "Search for “{$sExpected}” returned no results. Context: “{$sFound}”.";
+ } elseif ($this->sMatchType === 'count') {
+ $sMessage = "Next token was expected to have {$sExpected} chars. Context: “{$sFound}”.";
+ } elseif ($this->sMatchType === 'identifier') {
+ $sMessage = "Identifier expected. Got “{$sFound}”";
+ } elseif ($this->sMatchType === 'custom') {
+ $sMessage = trim("$sExpected $sFound");
+ }
+
+ parent::__construct($sMessage, $iLineNo);
+ }
+}
diff --git a/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Property/AtRule.php b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Property/AtRule.php
new file mode 100644
index 0000000..9536ff5
--- /dev/null
+++ b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Property/AtRule.php
@@ -0,0 +1,34 @@
+<?php
+
+namespace Sabberworm\CSS\Property;
+
+use Sabberworm\CSS\Comment\Commentable;
+use Sabberworm\CSS\Renderable;
+
+interface AtRule extends Renderable, Commentable
+{
+ /**
+ * Since there are more set rules than block rules,
+ * we’re whitelisting the block rules and have anything else be treated as a set rule.
+ *
+ * @var string
+ */
+ const BLOCK_RULES = 'media/document/supports/region-style/font-feature-values';
+
+ /**
+ * … and more font-specific ones (to be used inside font-feature-values)
+ *
+ * @var string
+ */
+ const SET_RULES = 'font-face/counter-style/page/swash/styleset/annotation';
+
+ /**
+ * @return string|null
+ */
+ public function atRuleName();
+
+ /**
+ * @return string|null
+ */
+ public function atRuleArgs();
+}
diff --git a/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Property/CSSNamespace.php b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Property/CSSNamespace.php
new file mode 100644
index 0000000..0d7eb49
--- /dev/null
+++ b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Property/CSSNamespace.php
@@ -0,0 +1,154 @@
+<?php
+
+namespace Sabberworm\CSS\Property;
+
+use Sabberworm\CSS\Comment\Comment;
+use Sabberworm\CSS\OutputFormat;
+
+/**
+ * `CSSNamespace` represents an `@namespace` rule.
+ */
+class CSSNamespace implements AtRule
+{
+ /**
+ * @var string
+ */
+ private $mUrl;
+
+ /**
+ * @var string
+ */
+ private $sPrefix;
+
+ /**
+ * @var int
+ */
+ private $iLineNo;
+
+ /**
+ * @var array<array-key, Comment>
+ */
+ protected $aComments;
+
+ /**
+ * @param string $mUrl
+ * @param string|null $sPrefix
+ * @param int $iLineNo
+ */
+ public function __construct($mUrl, $sPrefix = null, $iLineNo = 0)
+ {
+ $this->mUrl = $mUrl;
+ $this->sPrefix = $sPrefix;
+ $this->iLineNo = $iLineNo;
+ $this->aComments = [];
+ }
+
+ /**
+ * @return int
+ */
+ public function getLineNo()
+ {
+ return $this->iLineNo;
+ }
+
+ /**
+ * @return string
+ */
+ public function __toString()
+ {
+ return $this->render(new OutputFormat());
+ }
+
+ /**
+ * @return string
+ */
+ public function render(OutputFormat $oOutputFormat)
+ {
+ return '@namespace ' . ($this->sPrefix === null ? '' : $this->sPrefix . ' ')
+ . $this->mUrl->render($oOutputFormat) . ';';
+ }
+
+ /**
+ * @return string
+ */
+ public function getUrl()
+ {
+ return $this->mUrl;
+ }
+
+ /**
+ * @return string|null
+ */
+ public function getPrefix()
+ {
+ return $this->sPrefix;
+ }
+
+ /**
+ * @param string $mUrl
+ *
+ * @return void
+ */
+ public function setUrl($mUrl)
+ {
+ $this->mUrl = $mUrl;
+ }
+
+ /**
+ * @param string $sPrefix
+ *
+ * @return void
+ */
+ public function setPrefix($sPrefix)
+ {
+ $this->sPrefix = $sPrefix;
+ }
+
+ /**
+ * @return string
+ */
+ public function atRuleName()
+ {
+ return 'namespace';
+ }
+
+ /**
+ * @return array<int, string>
+ */
+ public function atRuleArgs()
+ {
+ $aResult = [$this->mUrl];
+ if ($this->sPrefix) {
+ array_unshift($aResult, $this->sPrefix);
+ }
+ return $aResult;
+ }
+
+ /**
+ * @param array<array-key, Comment> $aComments
+ *
+ * @return void
+ */
+ public function addComments(array $aComments)
+ {
+ $this->aComments = array_merge($this->aComments, $aComments);
+ }
+
+ /**
+ * @return array<array-key, Comment>
+ */
+ public function getComments()
+ {
+ return $this->aComments;
+ }
+
+ /**
+ * @param array<array-key, Comment> $aComments
+ *
+ * @return void
+ */
+ public function setComments(array $aComments)
+ {
+ $this->aComments = $aComments;
+ }
+}
diff --git a/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Property/Charset.php b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Property/Charset.php
new file mode 100644
index 0000000..3ee0c3d
--- /dev/null
+++ b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Property/Charset.php
@@ -0,0 +1,129 @@
+<?php
+
+namespace Sabberworm\CSS\Property;
+
+use Sabberworm\CSS\Comment\Comment;
+use Sabberworm\CSS\OutputFormat;
+
+/**
+ * Class representing an `@charset` rule.
+ *
+ * The following restrictions apply:
+ * - May not be found in any CSSList other than the Document.
+ * - May only appear at the very top of a Document’s contents.
+ * - Must not appear more than once.
+ */
+class Charset implements AtRule
+{
+ /**
+ * @var string
+ */
+ private $sCharset;
+
+ /**
+ * @var int
+ */
+ protected $iLineNo;
+
+ /**
+ * @var array<array-key, Comment>
+ */
+ protected $aComments;
+
+ /**
+ * @param string $sCharset
+ * @param int $iLineNo
+ */
+ public function __construct($sCharset, $iLineNo = 0)
+ {
+ $this->sCharset = $sCharset;
+ $this->iLineNo = $iLineNo;
+ $this->aComments = [];
+ }
+
+ /**
+ * @return int
+ */
+ public function getLineNo()
+ {
+ return $this->iLineNo;
+ }
+
+ /**
+ * @param string $sCharset
+ *
+ * @return void
+ */
+ public function setCharset($sCharset)
+ {
+ $this->sCharset = $sCharset;
+ }
+
+ /**
+ * @return string
+ */
+ public function getCharset()
+ {
+ return $this->sCharset;
+ }
+
+ /**
+ * @return string
+ */
+ public function __toString()
+ {
+ return $this->render(new OutputFormat());
+ }
+
+ /**
+ * @return string
+ */
+ public function render(OutputFormat $oOutputFormat)
+ {
+ return "@charset {$this->sCharset->render($oOutputFormat)};";
+ }
+
+ /**
+ * @return string
+ */
+ public function atRuleName()
+ {
+ return 'charset';
+ }
+
+ /**
+ * @return string
+ */
+ public function atRuleArgs()
+ {
+ return $this->sCharset;
+ }
+
+ /**
+ * @param array<array-key, Comment> $aComments
+ *
+ * @return void
+ */
+ public function addComments(array $aComments)
+ {
+ $this->aComments = array_merge($this->aComments, $aComments);
+ }
+
+ /**
+ * @return array<array-key, Comment>
+ */
+ public function getComments()
+ {
+ return $this->aComments;
+ }
+
+ /**
+ * @param array<array-key, Comment> $aComments
+ *
+ * @return void
+ */
+ public function setComments(array $aComments)
+ {
+ $this->aComments = $aComments;
+ }
+}
diff --git a/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Property/Import.php b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Property/Import.php
new file mode 100644
index 0000000..a225301
--- /dev/null
+++ b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Property/Import.php
@@ -0,0 +1,137 @@
+<?php
+
+namespace Sabberworm\CSS\Property;
+
+use Sabberworm\CSS\Comment\Comment;
+use Sabberworm\CSS\OutputFormat;
+use Sabberworm\CSS\Value\URL;
+
+/**
+ * Class representing an `@import` rule.
+ */
+class Import implements AtRule
+{
+ /**
+ * @var URL
+ */
+ private $oLocation;
+
+ /**
+ * @var string
+ */
+ private $sMediaQuery;
+
+ /**
+ * @var int
+ */
+ protected $iLineNo;
+
+ /**
+ * @var array<array-key, Comment>
+ */
+ protected $aComments;
+
+ /**
+ * @param URL $oLocation
+ * @param string $sMediaQuery
+ * @param int $iLineNo
+ */
+ public function __construct(URL $oLocation, $sMediaQuery, $iLineNo = 0)
+ {
+ $this->oLocation = $oLocation;
+ $this->sMediaQuery = $sMediaQuery;
+ $this->iLineNo = $iLineNo;
+ $this->aComments = [];
+ }
+
+ /**
+ * @return int
+ */
+ public function getLineNo()
+ {
+ return $this->iLineNo;
+ }
+
+ /**
+ * @param URL $oLocation
+ *
+ * @return void
+ */
+ public function setLocation($oLocation)
+ {
+ $this->oLocation = $oLocation;
+ }
+
+ /**
+ * @return URL
+ */
+ public function getLocation()
+ {
+ return $this->oLocation;
+ }
+
+ /**
+ * @return string
+ */
+ public function __toString()
+ {
+ return $this->render(new OutputFormat());
+ }
+
+ /**
+ * @return string
+ */
+ public function render(OutputFormat $oOutputFormat)
+ {
+ return "@import " . $this->oLocation->render($oOutputFormat)
+ . ($this->sMediaQuery === null ? '' : ' ' . $this->sMediaQuery) . ';';
+ }
+
+ /**
+ * @return string
+ */
+ public function atRuleName()
+ {
+ return 'import';
+ }
+
+ /**
+ * @return array<int, URL|string>
+ */
+ public function atRuleArgs()
+ {
+ $aResult = [$this->oLocation];
+ if ($this->sMediaQuery) {
+ array_push($aResult, $this->sMediaQuery);
+ }
+ return $aResult;
+ }
+
+ /**
+ * @param array<array-key, Comment> $aComments
+ *
+ * @return void
+ */
+ public function addComments(array $aComments)
+ {
+ $this->aComments = array_merge($this->aComments, $aComments);
+ }
+
+ /**
+ * @return array<array-key, Comment>
+ */
+ public function getComments()
+ {
+ return $this->aComments;
+ }
+
+ /**
+ * @param array<array-key, Comment> $aComments
+ *
+ * @return void
+ */
+ public function setComments(array $aComments)
+ {
+ $this->aComments = $aComments;
+ }
+}
diff --git a/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Property/KeyframeSelector.php b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Property/KeyframeSelector.php
new file mode 100644
index 0000000..14ea5eb
--- /dev/null
+++ b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Property/KeyframeSelector.php
@@ -0,0 +1,23 @@
+<?php
+
+namespace Sabberworm\CSS\Property;
+
+class KeyframeSelector extends Selector
+{
+ /**
+ * regexp for specificity calculations
+ *
+ * @var string
+ */
+ const SELECTOR_VALIDATION_RX = '/
+ ^(
+ (?:
+ [a-zA-Z0-9\x{00A0}-\x{FFFF}_^$|*="\'~\[\]()\-\s\.:#+>]* # any sequence of valid unescaped characters
+ (?:\\\\.)? # a single escaped character
+ (?:([\'"]).*?(?<!\\\\)\2)? # a quoted text like [id="example"]
+ )*
+ )|
+ (\d+%) # keyframe animation progress percentage (e.g. 50%)
+ $
+ /ux';
+}
diff --git a/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Property/Selector.php b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Property/Selector.php
new file mode 100644
index 0000000..70c9b2f
--- /dev/null
+++ b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Property/Selector.php
@@ -0,0 +1,138 @@
+<?php
+
+namespace Sabberworm\CSS\Property;
+
+/**
+ * Class representing a single CSS selector. Selectors have to be split by the comma prior to being passed into this
+ * class.
+ */
+class Selector
+{
+ /**
+ * regexp for specificity calculations
+ *
+ * @var string
+ */
+ const NON_ID_ATTRIBUTES_AND_PSEUDO_CLASSES_RX = '/
+ (\.[\w]+) # classes
+ |
+ \[(\w+) # attributes
+ |
+ (\:( # pseudo classes
+ link|visited|active
+ |hover|focus
+ |lang
+ |target
+ |enabled|disabled|checked|indeterminate
+ |root
+ |nth-child|nth-last-child|nth-of-type|nth-last-of-type
+ |first-child|last-child|first-of-type|last-of-type
+ |only-child|only-of-type
+ |empty|contains
+ ))
+ /ix';
+
+ /**
+ * regexp for specificity calculations
+ *
+ * @var string
+ */
+ const ELEMENTS_AND_PSEUDO_ELEMENTS_RX = '/
+ ((^|[\s\+\>\~]+)[\w]+ # elements
+ |
+ \:{1,2}( # pseudo-elements
+ after|before|first-letter|first-line|selection
+ ))
+ /ix';
+
+ /**
+ * regexp for specificity calculations
+ *
+ * @var string
+ */
+ const SELECTOR_VALIDATION_RX = '/
+ ^(
+ (?:
+ [a-zA-Z0-9\x{00A0}-\x{FFFF}_^$|*="\'~\[\]()\-\s\.:#+>]* # any sequence of valid unescaped characters
+ (?:\\\\.)? # a single escaped character
+ (?:([\'"]).*?(?<!\\\\)\2)? # a quoted text like [id="example"]
+ )*
+ )$
+ /ux';
+
+ /**
+ * @var string
+ */
+ private $sSelector;
+
+ /**
+ * @var int|null
+ */
+ private $iSpecificity;
+
+ /**
+ * @param string $sSelector
+ *
+ * @return bool
+ */
+ public static function isValid($sSelector)
+ {
+ return preg_match(static::SELECTOR_VALIDATION_RX, $sSelector);
+ }
+
+ /**
+ * @param string $sSelector
+ * @param bool $bCalculateSpecificity
+ */
+ public function __construct($sSelector, $bCalculateSpecificity = false)
+ {
+ $this->setSelector($sSelector);
+ if ($bCalculateSpecificity) {
+ $this->getSpecificity();
+ }
+ }
+
+ /**
+ * @return string
+ */
+ public function getSelector()
+ {
+ return $this->sSelector;
+ }
+
+ /**
+ * @param string $sSelector
+ *
+ * @return void
+ */
+ public function setSelector($sSelector)
+ {
+ $this->sSelector = trim($sSelector);
+ $this->iSpecificity = null;
+ }
+
+ /**
+ * @return string
+ */
+ public function __toString()
+ {
+ return $this->getSelector();
+ }
+
+ /**
+ * @return int
+ */
+ public function getSpecificity()
+ {
+ if ($this->iSpecificity === null) {
+ $a = 0;
+ /// @todo should exclude \# as well as "#"
+ $aMatches = null;
+ $b = substr_count($this->sSelector, '#');
+ $c = preg_match_all(self::NON_ID_ATTRIBUTES_AND_PSEUDO_CLASSES_RX, $this->sSelector, $aMatches);
+ $d = preg_match_all(self::ELEMENTS_AND_PSEUDO_ELEMENTS_RX, $this->sSelector, $aMatches);
+ $this->iSpecificity = ($a * 1000) + ($b * 100) + ($c * 10) + $d;
+ }
+ return $this->iSpecificity;
+ }
+}
diff --git a/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Renderable.php b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Renderable.php
new file mode 100644
index 0000000..dc1bff3
--- /dev/null
+++ b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Renderable.php
@@ -0,0 +1,21 @@
+<?php
+
+namespace Sabberworm\CSS;
+
+interface Renderable
+{
+ /**
+ * @return string
+ */
+ public function __toString();
+
+ /**
+ * @return string
+ */
+ public function render(OutputFormat $oOutputFormat);
+
+ /**
+ * @return int
+ */
+ public function getLineNo();
+}
diff --git a/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Rule/Rule.php b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Rule/Rule.php
new file mode 100644
index 0000000..c1ea6df
--- /dev/null
+++ b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Rule/Rule.php
@@ -0,0 +1,392 @@
+<?php
+
+namespace Sabberworm\CSS\Rule;
+
+use Sabberworm\CSS\Comment\Comment;
+use Sabberworm\CSS\Comment\Commentable;
+use Sabberworm\CSS\OutputFormat;
+use Sabberworm\CSS\Parsing\ParserState;
+use Sabberworm\CSS\Parsing\UnexpectedEOFException;
+use Sabberworm\CSS\Parsing\UnexpectedTokenException;
+use Sabberworm\CSS\Renderable;
+use Sabberworm\CSS\Value\RuleValueList;
+use Sabberworm\CSS\Value\Value;
+
+/**
+ * RuleSets contains Rule objects which always have a key and a value.
+ * In CSS, Rules are expressed as follows: “key: value[0][0] value[0][1], value[1][0] value[1][1];”
+ */
+class Rule implements Renderable, Commentable
+{
+ /**
+ * @var string
+ */
+ private $sRule;
+
+ /**
+ * @var RuleValueList|null
+ */
+ private $mValue;
+
+ /**
+ * @var bool
+ */
+ private $bIsImportant;
+
+ /**
+ * @var array<int, int>
+ */
+ private $aIeHack;
+
+ /**
+ * @var int
+ */
+ protected $iLineNo;
+
+ /**
+ * @var int
+ */
+ protected $iColNo;
+
+ /**
+ * @var array<array-key, Comment>
+ */
+ protected $aComments;
+
+ /**
+ * @param string $sRule
+ * @param int $iLineNo
+ * @param int $iColNo
+ */
+ public function __construct($sRule, $iLineNo = 0, $iColNo = 0)
+ {
+ $this->sRule = $sRule;
+ $this->mValue = null;
+ $this->bIsImportant = false;
+ $this->aIeHack = [];
+ $this->iLineNo = $iLineNo;
+ $this->iColNo = $iColNo;
+ $this->aComments = [];
+ }
+
+ /**
+ * @return Rule
+ *
+ * @throws UnexpectedEOFException
+ * @throws UnexpectedTokenException
+ */
+ public static function parse(ParserState $oParserState)
+ {
+ $aComments = $oParserState->consumeWhiteSpace();
+ $oRule = new Rule(
+ $oParserState->parseIdentifier(!$oParserState->comes("--")),
+ $oParserState->currentLine(),
+ $oParserState->currentColumn()
+ );
+ $oRule->setComments($aComments);
+ $oRule->addComments($oParserState->consumeWhiteSpace());
+ $oParserState->consume(':');
+ $oValue = Value::parseValue($oParserState, self::listDelimiterForRule($oRule->getRule()));
+ $oRule->setValue($oValue);
+ if ($oParserState->getSettings()->bLenientParsing) {
+ while ($oParserState->comes('\\')) {
+ $oParserState->consume('\\');
+ $oRule->addIeHack($oParserState->consume());
+ $oParserState->consumeWhiteSpace();
+ }
+ }
+ $oParserState->consumeWhiteSpace();
+ if ($oParserState->comes('!')) {
+ $oParserState->consume('!');
+ $oParserState->consumeWhiteSpace();
+ $oParserState->consume('important');
+ $oRule->setIsImportant(true);
+ }
+ $oParserState->consumeWhiteSpace();
+ while ($oParserState->comes(';')) {
+ $oParserState->consume(';');
+ }
+ $oParserState->consumeWhiteSpace();
+
+ return $oRule;
+ }
+
+ /**
+ * @param string $sRule
+ *
+ * @return array<int, string>
+ */
+ private static function listDelimiterForRule($sRule)
+ {
+ if (preg_match('/^font($|-)/', $sRule)) {
+ return [',', '/', ' '];
+ }
+ return [',', ' ', '/'];
+ }
+
+ /**
+ * @return int
+ */
+ public function getLineNo()
+ {
+ return $this->iLineNo;
+ }
+
+ /**
+ * @return int
+ */
+ public function getColNo()
+ {
+ return $this->iColNo;
+ }
+
+ /**
+ * @param int $iLine
+ * @param int $iColumn
+ *
+ * @return void
+ */
+ public function setPosition($iLine, $iColumn)
+ {
+ $this->iColNo = $iColumn;
+ $this->iLineNo = $iLine;
+ }
+
+ /**
+ * @param string $sRule
+ *
+ * @return void
+ */
+ public function setRule($sRule)
+ {
+ $this->sRule = $sRule;
+ }
+
+ /**
+ * @return string
+ */
+ public function getRule()
+ {
+ return $this->sRule;
+ }
+
+ /**
+ * @return RuleValueList|null
+ */
+ public function getValue()
+ {
+ return $this->mValue;
+ }
+
+ /**
+ * @param RuleValueList|null $mValue
+ *
+ * @return void
+ */
+ public function setValue($mValue)
+ {
+ $this->mValue = $mValue;
+ }
+
+ /**
+ * @param array<array-key, array<array-key, RuleValueList>> $aSpaceSeparatedValues
+ *
+ * @return RuleValueList
+ *
+ * @deprecated will be removed in version 9.0
+ * Old-Style 2-dimensional array given. Retained for (some) backwards-compatibility.
+ * Use `setValue()` instead and wrap the value inside a RuleValueList if necessary.
+ */
+ public function setValues(array $aSpaceSeparatedValues)
+ {
+ $oSpaceSeparatedList = null;
+ if (count($aSpaceSeparatedValues) > 1) {
+ $oSpaceSeparatedList = new RuleValueList(' ', $this->iLineNo);
+ }
+ foreach ($aSpaceSeparatedValues as $aCommaSeparatedValues) {
+ $oCommaSeparatedList = null;
+ if (count($aCommaSeparatedValues) > 1) {
+ $oCommaSeparatedList = new RuleValueList(',', $this->iLineNo);
+ }
+ foreach ($aCommaSeparatedValues as $mValue) {
+ if (!$oSpaceSeparatedList && !$oCommaSeparatedList) {
+ $this->mValue = $mValue;
+ return $mValue;
+ }
+ if ($oCommaSeparatedList) {
+ $oCommaSeparatedList->addListComponent($mValue);
+ } else {
+ $oSpaceSeparatedList->addListComponent($mValue);
+ }
+ }
+ if (!$oSpaceSeparatedList) {
+ $this->mValue = $oCommaSeparatedList;
+ return $oCommaSeparatedList;
+ } else {
+ $oSpaceSeparatedList->addListComponent($oCommaSeparatedList);
+ }
+ }
+ $this->mValue = $oSpaceSeparatedList;
+ return $oSpaceSeparatedList;
+ }
+
+ /**
+ * @return array<int, array<int, RuleValueList>>
+ *
+ * @deprecated will be removed in version 9.0
+ * Old-Style 2-dimensional array returned. Retained for (some) backwards-compatibility.
+ * Use `getValue()` instead and check for the existence of a (nested set of) ValueList object(s).
+ */
+ public function getValues()
+ {
+ if (!$this->mValue instanceof RuleValueList) {
+ return [[$this->mValue]];
+ }
+ if ($this->mValue->getListSeparator() === ',') {
+ return [$this->mValue->getListComponents()];
+ }
+ $aResult = [];
+ foreach ($this->mValue->getListComponents() as $mValue) {
+ if (!$mValue instanceof RuleValueList || $mValue->getListSeparator() !== ',') {
+ $aResult[] = [$mValue];
+ continue;
+ }
+ if ($this->mValue->getListSeparator() === ' ' || count($aResult) === 0) {
+ $aResult[] = [];
+ }
+ foreach ($mValue->getListComponents() as $mValue) {
+ $aResult[count($aResult) - 1][] = $mValue;
+ }
+ }
+ return $aResult;
+ }
+
+ /**
+ * Adds a value to the existing value. Value will be appended if a `RuleValueList` exists of the given type.
+ * Otherwise, the existing value will be wrapped by one.
+ *
+ * @param RuleValueList|array<int, RuleValueList> $mValue
+ * @param string $sType
+ *
+ * @return void
+ */
+ public function addValue($mValue, $sType = ' ')
+ {
+ if (!is_array($mValue)) {
+ $mValue = [$mValue];
+ }
+ if (!$this->mValue instanceof RuleValueList || $this->mValue->getListSeparator() !== $sType) {
+ $mCurrentValue = $this->mValue;
+ $this->mValue = new RuleValueList($sType, $this->iLineNo);
+ if ($mCurrentValue) {
+ $this->mValue->addListComponent($mCurrentValue);
+ }
+ }
+ foreach ($mValue as $mValueItem) {
+ $this->mValue->addListComponent($mValueItem);
+ }
+ }
+
+ /**
+ * @param int $iModifier
+ *
+ * @return void
+ */
+ public function addIeHack($iModifier)
+ {
+ $this->aIeHack[] = $iModifier;
+ }
+
+ /**
+ * @param array<int, int> $aModifiers
+ *
+ * @return void
+ */
+ public function setIeHack(array $aModifiers)
+ {
+ $this->aIeHack = $aModifiers;
+ }
+
+ /**
+ * @return array<int, int>
+ */
+ public function getIeHack()
+ {
+ return $this->aIeHack;
+ }
+
+ /**
+ * @param bool $bIsImportant
+ *
+ * @return void
+ */
+ public function setIsImportant($bIsImportant)
+ {
+ $this->bIsImportant = $bIsImportant;
+ }
+
+ /**
+ * @return bool
+ */
+ public function getIsImportant()
+ {
+ return $this->bIsImportant;
+ }
+
+ /**
+ * @return string
+ */
+ public function __toString()
+ {
+ return $this->render(new OutputFormat());
+ }
+
+ /**
+ * @return string
+ */
+ public function render(OutputFormat $oOutputFormat)
+ {
+ $sResult = "{$this->sRule}:{$oOutputFormat->spaceAfterRuleName()}";
+ if ($this->mValue instanceof Value) { //Can also be a ValueList
+ $sResult .= $this->mValue->render($oOutputFormat);
+ } else {
+ $sResult .= $this->mValue;
+ }
+ if (!empty($this->aIeHack)) {
+ $sResult .= ' \\' . implode('\\', $this->aIeHack);
+ }
+ if ($this->bIsImportant) {
+ $sResult .= ' !important';
+ }
+ $sResult .= ';';
+ return $sResult;
+ }
+
+ /**
+ * @param array<array-key, Comment> $aComments
+ *
+ * @return void
+ */
+ public function addComments(array $aComments)
+ {
+ $this->aComments = array_merge($this->aComments, $aComments);
+ }
+
+ /**
+ * @return array<array-key, Comment>
+ */
+ public function getComments()
+ {
+ return $this->aComments;
+ }
+
+ /**
+ * @param array<array-key, Comment> $aComments
+ *
+ * @return void
+ */
+ public function setComments(array $aComments)
+ {
+ $this->aComments = $aComments;
+ }
+}
diff --git a/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/RuleSet/AtRuleSet.php b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/RuleSet/AtRuleSet.php
new file mode 100644
index 0000000..88bc5bd
--- /dev/null
+++ b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/RuleSet/AtRuleSet.php
@@ -0,0 +1,73 @@
+<?php
+
+namespace Sabberworm\CSS\RuleSet;
+
+use Sabberworm\CSS\OutputFormat;
+use Sabberworm\CSS\Property\AtRule;
+
+/**
+ * A RuleSet constructed by an unknown at-rule. `@font-face` rules are rendered into AtRuleSet objects.
+ */
+class AtRuleSet extends RuleSet implements AtRule
+{
+ /**
+ * @var string
+ */
+ private $sType;
+
+ /**
+ * @var string
+ */
+ private $sArgs;
+
+ /**
+ * @param string $sType
+ * @param string $sArgs
+ * @param int $iLineNo
+ */
+ public function __construct($sType, $sArgs = '', $iLineNo = 0)
+ {
+ parent::__construct($iLineNo);
+ $this->sType = $sType;
+ $this->sArgs = $sArgs;
+ }
+
+ /**
+ * @return string
+ */
+ public function atRuleName()
+ {
+ return $this->sType;
+ }
+
+ /**
+ * @return string
+ */
+ public function atRuleArgs()
+ {
+ return $this->sArgs;
+ }
+
+ /**
+ * @return string
+ */
+ public function __toString()
+ {
+ return $this->render(new OutputFormat());
+ }
+
+ /**
+ * @return string
+ */
+ public function render(OutputFormat $oOutputFormat)
+ {
+ $sArgs = $this->sArgs;
+ if ($sArgs) {
+ $sArgs = ' ' . $sArgs;
+ }
+ $sResult = "@{$this->sType}$sArgs{$oOutputFormat->spaceBeforeOpeningBrace()}{";
+ $sResult .= parent::render($oOutputFormat);
+ $sResult .= '}';
+ return $sResult;
+ }
+}
diff --git a/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/RuleSet/DeclarationBlock.php b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/RuleSet/DeclarationBlock.php
new file mode 100644
index 0000000..c27cdd4
--- /dev/null
+++ b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/RuleSet/DeclarationBlock.php
@@ -0,0 +1,831 @@
+<?php
+
+namespace Sabberworm\CSS\RuleSet;
+
+use Sabberworm\CSS\CSSList\CSSList;
+use Sabberworm\CSS\CSSList\KeyFrame;
+use Sabberworm\CSS\OutputFormat;
+use Sabberworm\CSS\Parsing\OutputException;
+use Sabberworm\CSS\Parsing\ParserState;
+use Sabberworm\CSS\Parsing\UnexpectedEOFException;
+use Sabberworm\CSS\Parsing\UnexpectedTokenException;
+use Sabberworm\CSS\Property\KeyframeSelector;
+use Sabberworm\CSS\Property\Selector;
+use Sabberworm\CSS\Rule\Rule;
+use Sabberworm\CSS\Value\Color;
+use Sabberworm\CSS\Value\RuleValueList;
+use Sabberworm\CSS\Value\Size;
+use Sabberworm\CSS\Value\URL;
+use Sabberworm\CSS\Value\Value;
+
+/**
+ * Declaration blocks are the parts of a CSS file which denote the rules belonging to a selector.
+ *
+ * Declaration blocks usually appear directly inside a `Document` or another `CSSList` (mostly a `MediaQuery`).
+ */
+class DeclarationBlock extends RuleSet
+{
+ /**
+ * @var array<int, Selector|string>
+ */
+ private $aSelectors;
+
+ /**
+ * @param int $iLineNo
+ */
+ public function __construct($iLineNo = 0)
+ {
+ parent::__construct($iLineNo);
+ $this->aSelectors = [];
+ }
+
+ /**
+ * @param CSSList|null $oList
+ *
+ * @return DeclarationBlock|false
+ *
+ * @throws UnexpectedTokenException
+ * @throws UnexpectedEOFException
+ */
+ public static function parse(ParserState $oParserState, $oList = null)
+ {
+ $aComments = [];
+ $oResult = new DeclarationBlock($oParserState->currentLine());
+ try {
+ $aSelectorParts = [];
+ $sStringWrapperChar = false;
+ do {
+ $aSelectorParts[] = $oParserState->consume(1)
+ . $oParserState->consumeUntil(['{', '}', '\'', '"'], false, false, $aComments);
+ if (in_array($oParserState->peek(), ['\'', '"']) && substr(end($aSelectorParts), -1) != "\\") {
+ if ($sStringWrapperChar === false) {
+ $sStringWrapperChar = $oParserState->peek();
+ } elseif ($sStringWrapperChar == $oParserState->peek()) {
+ $sStringWrapperChar = false;
+ }
+ }
+ } while (!in_array($oParserState->peek(), ['{', '}']) || $sStringWrapperChar !== false);
+ $oResult->setSelectors(implode('', $aSelectorParts), $oList);
+ if ($oParserState->comes('{')) {
+ $oParserState->consume(1);
+ }
+ } catch (UnexpectedTokenException $e) {
+ if ($oParserState->getSettings()->bLenientParsing) {
+ if (!$oParserState->comes('}')) {
+ $oParserState->consumeUntil('}', false, true);
+ }
+ return false;
+ } else {
+ throw $e;
+ }
+ }
+ $oResult->setComments($aComments);
+ RuleSet::parseRuleSet($oParserState, $oResult);
+ return $oResult;
+ }
+
+ /**
+ * @param array<int, Selector|string>|string $mSelector
+ * @param CSSList|null $oList
+ *
+ * @throws UnexpectedTokenException
+ */
+ public function setSelectors($mSelector, $oList = null)
+ {
+ if (is_array($mSelector)) {
+ $this->aSelectors = $mSelector;
+ } else {
+ $this->aSelectors = explode(',', $mSelector);
+ }
+ foreach ($this->aSelectors as $iKey => $mSelector) {
+ if (!($mSelector instanceof Selector)) {
+ if ($oList === null || !($oList instanceof KeyFrame)) {
+ if (!Selector::isValid($mSelector)) {
+ throw new UnexpectedTokenException(
+ "Selector did not match '" . Selector::SELECTOR_VALIDATION_RX . "'.",
+ $mSelector,
+ "custom"
+ );
+ }
+ $this->aSelectors[$iKey] = new Selector($mSelector);
+ } else {
+ if (!KeyframeSelector::isValid($mSelector)) {
+ throw new UnexpectedTokenException(
+ "Selector did not match '" . KeyframeSelector::SELECTOR_VALIDATION_RX . "'.",
+ $mSelector,
+ "custom"
+ );
+ }
+ $this->aSelectors[$iKey] = new KeyframeSelector($mSelector);
+ }
+ }
+ }
+ }
+
+ /**
+ * Remove one of the selectors of the block.
+ *
+ * @param Selector|string $mSelector
+ *
+ * @return bool
+ */
+ public function removeSelector($mSelector)
+ {
+ if ($mSelector instanceof Selector) {
+ $mSelector = $mSelector->getSelector();
+ }
+ foreach ($this->aSelectors as $iKey => $oSelector) {
+ if ($oSelector->getSelector() === $mSelector) {
+ unset($this->aSelectors[$iKey]);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * @return array<int, Selector|string>
+ *
+ * @deprecated will be removed in version 9.0; use `getSelectors()` instead
+ */
+ public function getSelector()
+ {
+ return $this->getSelectors();
+ }
+
+ /**
+ * @param Selector|string $mSelector
+ * @param CSSList|null $oList
+ *
+ * @return void
+ *
+ * @deprecated will be removed in version 9.0; use `setSelectors()` instead
+ */
+ public function setSelector($mSelector, $oList = null)
+ {
+ $this->setSelectors($mSelector, $oList);
+ }
+
+ /**
+ * @return array<int, Selector|string>
+ */
+ public function getSelectors()
+ {
+ return $this->aSelectors;
+ }
+
+ /**
+ * Splits shorthand declarations (e.g. `margin` or `font`) into their constituent parts.
+ *
+ * @return void
+ */
+ public function expandShorthands()
+ {
+ // border must be expanded before dimensions
+ $this->expandBorderShorthand();
+ $this->expandDimensionsShorthand();
+ $this->expandFontShorthand();
+ $this->expandBackgroundShorthand();
+ $this->expandListStyleShorthand();
+ }
+
+ /**
+ * Creates shorthand declarations (e.g. `margin` or `font`) whenever possible.
+ *
+ * @return void
+ */
+ public function createShorthands()
+ {
+ $this->createBackgroundShorthand();
+ $this->createDimensionsShorthand();
+ // border must be shortened after dimensions
+ $this->createBorderShorthand();
+ $this->createFontShorthand();
+ $this->createListStyleShorthand();
+ }
+
+ /**
+ * Splits shorthand border declarations (e.g. `border: 1px red;`).
+ *
+ * Additional splitting happens in expandDimensionsShorthand.
+ *
+ * Multiple borders are not yet supported as of 3.
+ *
+ * @return void
+ */
+ public function expandBorderShorthand()
+ {
+ $aBorderRules = [
+ 'border',
+ 'border-left',
+ 'border-right',
+ 'border-top',
+ 'border-bottom',
+ ];
+ $aBorderSizes = [
+ 'thin',
+ 'medium',
+ 'thick',
+ ];
+ $aRules = $this->getRulesAssoc();
+ foreach ($aBorderRules as $sBorderRule) {
+ if (!isset($aRules[$sBorderRule])) {
+ continue;
+ }
+ $oRule = $aRules[$sBorderRule];
+ $mRuleValue = $oRule->getValue();
+ $aValues = [];
+ if (!$mRuleValue instanceof RuleValueList) {
+ $aValues[] = $mRuleValue;
+ } else {
+ $aValues = $mRuleValue->getListComponents();
+ }
+ foreach ($aValues as $mValue) {
+ if ($mValue instanceof Value) {
+ $mNewValue = clone $mValue;
+ } else {
+ $mNewValue = $mValue;
+ }
+ if ($mValue instanceof Size) {
+ $sNewRuleName = $sBorderRule . "-width";
+ } elseif ($mValue instanceof Color) {
+ $sNewRuleName = $sBorderRule . "-color";
+ } else {
+ if (in_array($mValue, $aBorderSizes)) {
+ $sNewRuleName = $sBorderRule . "-width";
+ } else {
+ $sNewRuleName = $sBorderRule . "-style";
+ }
+ }
+ $oNewRule = new Rule($sNewRuleName, $oRule->getLineNo(), $oRule->getColNo());
+ $oNewRule->setIsImportant($oRule->getIsImportant());
+ $oNewRule->addValue([$mNewValue]);
+ $this->addRule($oNewRule);
+ }
+ $this->removeRule($sBorderRule);
+ }
+ }
+
+ /**
+ * Splits shorthand dimensional declarations (e.g. `margin: 0px auto;`)
+ * into their constituent parts.
+ *
+ * Handles `margin`, `padding`, `border-color`, `border-style` and `border-width`.
+ *
+ * @return void
+ */
+ public function expandDimensionsShorthand()
+ {
+ $aExpansions = [
+ 'margin' => 'margin-%s',
+ 'padding' => 'padding-%s',
+ 'border-color' => 'border-%s-color',
+ 'border-style' => 'border-%s-style',
+ 'border-width' => 'border-%s-width',
+ ];
+ $aRules = $this->getRulesAssoc();
+ foreach ($aExpansions as $sProperty => $sExpanded) {
+ if (!isset($aRules[$sProperty])) {
+ continue;
+ }
+ $oRule = $aRules[$sProperty];
+ $mRuleValue = $oRule->getValue();
+ $aValues = [];
+ if (!$mRuleValue instanceof RuleValueList) {
+ $aValues[] = $mRuleValue;
+ } else {
+ $aValues = $mRuleValue->getListComponents();
+ }
+ $top = $right = $bottom = $left = null;
+ switch (count($aValues)) {
+ case 1:
+ $top = $right = $bottom = $left = $aValues[0];
+ break;
+ case 2:
+ $top = $bottom = $aValues[0];
+ $left = $right = $aValues[1];
+ break;
+ case 3:
+ $top = $aValues[0];
+ $left = $right = $aValues[1];
+ $bottom = $aValues[2];
+ break;
+ case 4:
+ $top = $aValues[0];
+ $right = $aValues[1];
+ $bottom = $aValues[2];
+ $left = $aValues[3];
+ break;
+ }
+ foreach (['top', 'right', 'bottom', 'left'] as $sPosition) {
+ $oNewRule = new Rule(sprintf($sExpanded, $sPosition), $oRule->getLineNo(), $oRule->getColNo());
+ $oNewRule->setIsImportant($oRule->getIsImportant());
+ $oNewRule->addValue(${$sPosition});
+ $this->addRule($oNewRule);
+ }
+ $this->removeRule($sProperty);
+ }
+ }
+
+ /**
+ * Converts shorthand font declarations
+ * (e.g. `font: 300 italic 11px/14px verdana, helvetica, sans-serif;`)
+ * into their constituent parts.
+ *
+ * @return void
+ */
+ public function expandFontShorthand()
+ {
+ $aRules = $this->getRulesAssoc();
+ if (!isset($aRules['font'])) {
+ return;
+ }
+ $oRule = $aRules['font'];
+ // reset properties to 'normal' per http://www.w3.org/TR/21/fonts.html#font-shorthand
+ $aFontProperties = [
+ 'font-style' => 'normal',
+ 'font-variant' => 'normal',
+ 'font-weight' => 'normal',
+ 'font-size' => 'normal',
+ 'line-height' => 'normal',
+ ];
+ $mRuleValue = $oRule->getValue();
+ $aValues = [];
+ if (!$mRuleValue instanceof RuleValueList) {
+ $aValues[] = $mRuleValue;
+ } else {
+ $aValues = $mRuleValue->getListComponents();
+ }
+ foreach ($aValues as $mValue) {
+ if (!$mValue instanceof Value) {
+ $mValue = mb_strtolower($mValue);
+ }
+ if (in_array($mValue, ['normal', 'inherit'])) {
+ foreach (['font-style', 'font-weight', 'font-variant'] as $sProperty) {
+ if (!isset($aFontProperties[$sProperty])) {
+ $aFontProperties[$sProperty] = $mValue;
+ }
+ }
+ } elseif (in_array($mValue, ['italic', 'oblique'])) {
+ $aFontProperties['font-style'] = $mValue;
+ } elseif ($mValue == 'small-caps') {
+ $aFontProperties['font-variant'] = $mValue;
+ } elseif (
+ in_array($mValue, ['bold', 'bolder', 'lighter'])
+ || ($mValue instanceof Size
+ && in_array($mValue->getSize(), range(100, 900, 100)))
+ ) {
+ $aFontProperties['font-weight'] = $mValue;
+ } elseif ($mValue instanceof RuleValueList && $mValue->getListSeparator() == '/') {
+ list($oSize, $oHeight) = $mValue->getListComponents();
+ $aFontProperties['font-size'] = $oSize;
+ $aFontProperties['line-height'] = $oHeight;
+ } elseif ($mValue instanceof Size && $mValue->getUnit() !== null) {
+ $aFontProperties['font-size'] = $mValue;
+ } else {
+ $aFontProperties['font-family'] = $mValue;
+ }
+ }
+ foreach ($aFontProperties as $sProperty => $mValue) {
+ $oNewRule = new Rule($sProperty, $oRule->getLineNo(), $oRule->getColNo());
+ $oNewRule->addValue($mValue);
+ $oNewRule->setIsImportant($oRule->getIsImportant());
+ $this->addRule($oNewRule);
+ }
+ $this->removeRule('font');
+ }
+
+ /**
+ * Converts shorthand background declarations
+ * (e.g. `background: url("chess.png") gray 50% repeat fixed;`)
+ * into their constituent parts.
+ *
+ * @see http://www.w3.org/TR/21/colors.html#propdef-background
+ *
+ * @return void
+ */
+ public function expandBackgroundShorthand()
+ {
+ $aRules = $this->getRulesAssoc();
+ if (!isset($aRules['background'])) {
+ return;
+ }
+ $oRule = $aRules['background'];
+ $aBgProperties = [
+ 'background-color' => ['transparent'],
+ 'background-image' => ['none'],
+ 'background-repeat' => ['repeat'],
+ 'background-attachment' => ['scroll'],
+ 'background-position' => [
+ new Size(0, '%', null, false, $this->iLineNo),
+ new Size(0, '%', null, false, $this->iLineNo),
+ ],
+ ];
+ $mRuleValue = $oRule->getValue();
+ $aValues = [];
+ if (!$mRuleValue instanceof RuleValueList) {
+ $aValues[] = $mRuleValue;
+ } else {
+ $aValues = $mRuleValue->getListComponents();
+ }
+ if (count($aValues) == 1 && $aValues[0] == 'inherit') {
+ foreach ($aBgProperties as $sProperty => $mValue) {
+ $oNewRule = new Rule($sProperty, $oRule->getLineNo(), $oRule->getColNo());
+ $oNewRule->addValue('inherit');
+ $oNewRule->setIsImportant($oRule->getIsImportant());
+ $this->addRule($oNewRule);
+ }
+ $this->removeRule('background');
+ return;
+ }
+ $iNumBgPos = 0;
+ foreach ($aValues as $mValue) {
+ if (!$mValue instanceof Value) {
+ $mValue = mb_strtolower($mValue);
+ }
+ if ($mValue instanceof URL) {
+ $aBgProperties['background-image'] = $mValue;
+ } elseif ($mValue instanceof Color) {
+ $aBgProperties['background-color'] = $mValue;
+ } elseif (in_array($mValue, ['scroll', 'fixed'])) {
+ $aBgProperties['background-attachment'] = $mValue;
+ } elseif (in_array($mValue, ['repeat', 'no-repeat', 'repeat-x', 'repeat-y'])) {
+ $aBgProperties['background-repeat'] = $mValue;
+ } elseif (
+ in_array($mValue, ['left', 'center', 'right', 'top', 'bottom'])
+ || $mValue instanceof Size
+ ) {
+ if ($iNumBgPos == 0) {
+ $aBgProperties['background-position'][0] = $mValue;
+ $aBgProperties['background-position'][1] = 'center';
+ } else {
+ $aBgProperties['background-position'][$iNumBgPos] = $mValue;
+ }
+ $iNumBgPos++;
+ }
+ }
+ foreach ($aBgProperties as $sProperty => $mValue) {
+ $oNewRule = new Rule($sProperty, $oRule->getLineNo(), $oRule->getColNo());
+ $oNewRule->setIsImportant($oRule->getIsImportant());
+ $oNewRule->addValue($mValue);
+ $this->addRule($oNewRule);
+ }
+ $this->removeRule('background');
+ }
+
+ /**
+ * @return void
+ */
+ public function expandListStyleShorthand()
+ {
+ $aListProperties = [
+ 'list-style-type' => 'disc',
+ 'list-style-position' => 'outside',
+ 'list-style-image' => 'none',
+ ];
+ $aListStyleTypes = [
+ 'none',
+ 'disc',
+ 'circle',
+ 'square',
+ 'decimal-leading-zero',
+ 'decimal',
+ 'lower-roman',
+ 'upper-roman',
+ 'lower-greek',
+ 'lower-alpha',
+ 'lower-latin',
+ 'upper-alpha',
+ 'upper-latin',
+ 'hebrew',
+ 'armenian',
+ 'georgian',
+ 'cjk-ideographic',
+ 'hiragana',
+ 'hira-gana-iroha',
+ 'katakana-iroha',
+ 'katakana',
+ ];
+ $aListStylePositions = [
+ 'inside',
+ 'outside',
+ ];
+ $aRules = $this->getRulesAssoc();
+ if (!isset($aRules['list-style'])) {
+ return;
+ }
+ $oRule = $aRules['list-style'];
+ $mRuleValue = $oRule->getValue();
+ $aValues = [];
+ if (!$mRuleValue instanceof RuleValueList) {
+ $aValues[] = $mRuleValue;
+ } else {
+ $aValues = $mRuleValue->getListComponents();
+ }
+ if (count($aValues) == 1 && $aValues[0] == 'inherit') {
+ foreach ($aListProperties as $sProperty => $mValue) {
+ $oNewRule = new Rule($sProperty, $oRule->getLineNo(), $oRule->getColNo());
+ $oNewRule->addValue('inherit');
+ $oNewRule->setIsImportant($oRule->getIsImportant());
+ $this->addRule($oNewRule);
+ }
+ $this->removeRule('list-style');
+ return;
+ }
+ foreach ($aValues as $mValue) {
+ if (!$mValue instanceof Value) {
+ $mValue = mb_strtolower($mValue);
+ }
+ if ($mValue instanceof Url) {
+ $aListProperties['list-style-image'] = $mValue;
+ } elseif (in_array($mValue, $aListStyleTypes)) {
+ $aListProperties['list-style-types'] = $mValue;
+ } elseif (in_array($mValue, $aListStylePositions)) {
+ $aListProperties['list-style-position'] = $mValue;
+ }
+ }
+ foreach ($aListProperties as $sProperty => $mValue) {
+ $oNewRule = new Rule($sProperty, $oRule->getLineNo(), $oRule->getColNo());
+ $oNewRule->setIsImportant($oRule->getIsImportant());
+ $oNewRule->addValue($mValue);
+ $this->addRule($oNewRule);
+ }
+ $this->removeRule('list-style');
+ }
+
+ /**
+ * @param array<array-key, string> $aProperties
+ * @param string $sShorthand
+ *
+ * @return void
+ */
+ public function createShorthandProperties(array $aProperties, $sShorthand)
+ {
+ $aRules = $this->getRulesAssoc();
+ $aNewValues = [];
+ foreach ($aProperties as $sProperty) {
+ if (!isset($aRules[$sProperty])) {
+ continue;
+ }
+ $oRule = $aRules[$sProperty];
+ if (!$oRule->getIsImportant()) {
+ $mRuleValue = $oRule->getValue();
+ $aValues = [];
+ if (!$mRuleValue instanceof RuleValueList) {
+ $aValues[] = $mRuleValue;
+ } else {
+ $aValues = $mRuleValue->getListComponents();
+ }
+ foreach ($aValues as $mValue) {
+ $aNewValues[] = $mValue;
+ }
+ $this->removeRule($sProperty);
+ }
+ }
+ if (count($aNewValues)) {
+ $oNewRule = new Rule($sShorthand, $oRule->getLineNo(), $oRule->getColNo());
+ foreach ($aNewValues as $mValue) {
+ $oNewRule->addValue($mValue);
+ }
+ $this->addRule($oNewRule);
+ }
+ }
+
+ /**
+ * @return void
+ */
+ public function createBackgroundShorthand()
+ {
+ $aProperties = [
+ 'background-color',
+ 'background-image',
+ 'background-repeat',
+ 'background-position',
+ 'background-attachment',
+ ];
+ $this->createShorthandProperties($aProperties, 'background');
+ }
+
+ /**
+ * @return void
+ */
+ public function createListStyleShorthand()
+ {
+ $aProperties = [
+ 'list-style-type',
+ 'list-style-position',
+ 'list-style-image',
+ ];
+ $this->createShorthandProperties($aProperties, 'list-style');
+ }
+
+ /**
+ * Combines `border-color`, `border-style` and `border-width` into `border`.
+ *
+ * Should be run after `create_dimensions_shorthand`!
+ *
+ * @return void
+ */
+ public function createBorderShorthand()
+ {
+ $aProperties = [
+ 'border-width',
+ 'border-style',
+ 'border-color',
+ ];
+ $this->createShorthandProperties($aProperties, 'border');
+ }
+
+ /**
+ * Looks for long format CSS dimensional properties
+ * (margin, padding, border-color, border-style and border-width)
+ * and converts them into shorthand CSS properties.
+ *
+ * @return void
+ */
+ public function createDimensionsShorthand()
+ {
+ $aPositions = ['top', 'right', 'bottom', 'left'];
+ $aExpansions = [
+ 'margin' => 'margin-%s',
+ 'padding' => 'padding-%s',
+ 'border-color' => 'border-%s-color',
+ 'border-style' => 'border-%s-style',
+ 'border-width' => 'border-%s-width',
+ ];
+ $aRules = $this->getRulesAssoc();
+ foreach ($aExpansions as $sProperty => $sExpanded) {
+ $aFoldable = [];
+ foreach ($aRules as $sRuleName => $oRule) {
+ foreach ($aPositions as $sPosition) {
+ if ($sRuleName == sprintf($sExpanded, $sPosition)) {
+ $aFoldable[$sRuleName] = $oRule;
+ }
+ }
+ }
+ // All four dimensions must be present
+ if (count($aFoldable) == 4) {
+ $aValues = [];
+ foreach ($aPositions as $sPosition) {
+ $oRule = $aRules[sprintf($sExpanded, $sPosition)];
+ $mRuleValue = $oRule->getValue();
+ $aRuleValues = [];
+ if (!$mRuleValue instanceof RuleValueList) {
+ $aRuleValues[] = $mRuleValue;
+ } else {
+ $aRuleValues = $mRuleValue->getListComponents();
+ }
+ $aValues[$sPosition] = $aRuleValues;
+ }
+ $oNewRule = new Rule($sProperty, $oRule->getLineNo(), $oRule->getColNo());
+ if ((string)$aValues['left'][0] == (string)$aValues['right'][0]) {
+ if ((string)$aValues['top'][0] == (string)$aValues['bottom'][0]) {
+ if ((string)$aValues['top'][0] == (string)$aValues['left'][0]) {
+ // All 4 sides are equal
+ $oNewRule->addValue($aValues['top']);
+ } else {
+ // Top and bottom are equal, left and right are equal
+ $oNewRule->addValue($aValues['top']);
+ $oNewRule->addValue($aValues['left']);
+ }
+ } else {
+ // Only left and right are equal
+ $oNewRule->addValue($aValues['top']);
+ $oNewRule->addValue($aValues['left']);
+ $oNewRule->addValue($aValues['bottom']);
+ }
+ } else {
+ // No sides are equal
+ $oNewRule->addValue($aValues['top']);
+ $oNewRule->addValue($aValues['left']);
+ $oNewRule->addValue($aValues['bottom']);
+ $oNewRule->addValue($aValues['right']);
+ }
+ $this->addRule($oNewRule);
+ foreach ($aPositions as $sPosition) {
+ $this->removeRule(sprintf($sExpanded, $sPosition));
+ }
+ }
+ }
+ }
+
+ /**
+ * Looks for long format CSS font properties (e.g. `font-weight`) and
+ * tries to convert them into a shorthand CSS `font` property.
+ *
+ * At least `font-size` AND `font-family` must be present in order to create a shorthand declaration.
+ *
+ * @return void
+ */
+ public function createFontShorthand()
+ {
+ $aFontProperties = [
+ 'font-style',
+ 'font-variant',
+ 'font-weight',
+ 'font-size',
+ 'line-height',
+ 'font-family',
+ ];
+ $aRules = $this->getRulesAssoc();
+ if (!isset($aRules['font-size']) || !isset($aRules['font-family'])) {
+ return;
+ }
+ $oOldRule = isset($aRules['font-size']) ? $aRules['font-size'] : $aRules['font-family'];
+ $oNewRule = new Rule('font', $oOldRule->getLineNo(), $oOldRule->getColNo());
+ unset($oOldRule);
+ foreach (['font-style', 'font-variant', 'font-weight'] as $sProperty) {
+ if (isset($aRules[$sProperty])) {
+ $oRule = $aRules[$sProperty];
+ $mRuleValue = $oRule->getValue();
+ $aValues = [];
+ if (!$mRuleValue instanceof RuleValueList) {
+ $aValues[] = $mRuleValue;
+ } else {
+ $aValues = $mRuleValue->getListComponents();
+ }
+ if ($aValues[0] !== 'normal') {
+ $oNewRule->addValue($aValues[0]);
+ }
+ }
+ }
+ // Get the font-size value
+ $oRule = $aRules['font-size'];
+ $mRuleValue = $oRule->getValue();
+ $aFSValues = [];
+ if (!$mRuleValue instanceof RuleValueList) {
+ $aFSValues[] = $mRuleValue;
+ } else {
+ $aFSValues = $mRuleValue->getListComponents();
+ }
+ // But wait to know if we have line-height to add it
+ if (isset($aRules['line-height'])) {
+ $oRule = $aRules['line-height'];
+ $mRuleValue = $oRule->getValue();
+ $aLHValues = [];
+ if (!$mRuleValue instanceof RuleValueList) {
+ $aLHValues[] = $mRuleValue;
+ } else {
+ $aLHValues = $mRuleValue->getListComponents();
+ }
+ if ($aLHValues[0] !== 'normal') {
+ $val = new RuleValueList('/', $this->iLineNo);
+ $val->addListComponent($aFSValues[0]);
+ $val->addListComponent($aLHValues[0]);
+ $oNewRule->addValue($val);
+ }
+ } else {
+ $oNewRule->addValue($aFSValues[0]);
+ }
+ $oRule = $aRules['font-family'];
+ $mRuleValue = $oRule->getValue();
+ $aFFValues = [];
+ if (!$mRuleValue instanceof RuleValueList) {
+ $aFFValues[] = $mRuleValue;
+ } else {
+ $aFFValues = $mRuleValue->getListComponents();
+ }
+ $oFFValue = new RuleValueList(',', $this->iLineNo);
+ $oFFValue->setListComponents($aFFValues);
+ $oNewRule->addValue($oFFValue);
+
+ $this->addRule($oNewRule);
+ foreach ($aFontProperties as $sProperty) {
+ $this->removeRule($sProperty);
+ }
+ }
+
+ /**
+ * @return string
+ *
+ * @throws OutputException
+ */
+ public function __toString()
+ {
+ return $this->render(new OutputFormat());
+ }
+
+ /**
+ * @return string
+ *
+ * @throws OutputException
+ */
+ public function render(OutputFormat $oOutputFormat)
+ {
+ if (count($this->aSelectors) === 0) {
+ // If all the selectors have been removed, this declaration block becomes invalid
+ throw new OutputException("Attempt to print declaration block with missing selector", $this->iLineNo);
+ }
+ $sResult = $oOutputFormat->sBeforeDeclarationBlock;
+ $sResult .= $oOutputFormat->implode(
+ $oOutputFormat->spaceBeforeSelectorSeparator() . ',' . $oOutputFormat->spaceAfterSelectorSeparator(),
+ $this->aSelectors
+ );
+ $sResult .= $oOutputFormat->sAfterDeclarationBlockSelectors;
+ $sResult .= $oOutputFormat->spaceBeforeOpeningBrace() . '{';
+ $sResult .= parent::render($oOutputFormat);
+ $sResult .= '}';
+ $sResult .= $oOutputFormat->sAfterDeclarationBlock;
+ return $sResult;
+ }
+}
diff --git a/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/RuleSet/RuleSet.php b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/RuleSet/RuleSet.php
new file mode 100644
index 0000000..9404bb0
--- /dev/null
+++ b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/RuleSet/RuleSet.php
@@ -0,0 +1,326 @@
+<?php
+
+namespace Sabberworm\CSS\RuleSet;
+
+use Sabberworm\CSS\Comment\Comment;
+use Sabberworm\CSS\Comment\Commentable;
+use Sabberworm\CSS\OutputFormat;
+use Sabberworm\CSS\Parsing\ParserState;
+use Sabberworm\CSS\Parsing\UnexpectedEOFException;
+use Sabberworm\CSS\Parsing\UnexpectedTokenException;
+use Sabberworm\CSS\Renderable;
+use Sabberworm\CSS\Rule\Rule;
+
+/**
+ * RuleSet is a generic superclass denoting rules. The typical example for rule sets are declaration block.
+ * However, unknown At-Rules (like `@font-face`) are also rule sets.
+ */
+abstract class RuleSet implements Renderable, Commentable
+{
+ /**
+ * @var array<string, Rule>
+ */
+ private $aRules;
+
+ /**
+ * @var int
+ */
+ protected $iLineNo;
+
+ /**
+ * @var array<array-key, Comment>
+ */
+ protected $aComments;
+
+ /**
+ * @param int $iLineNo
+ */
+ public function __construct($iLineNo = 0)
+ {
+ $this->aRules = [];
+ $this->iLineNo = $iLineNo;
+ $this->aComments = [];
+ }
+
+ /**
+ * @return void
+ *
+ * @throws UnexpectedTokenException
+ * @throws UnexpectedEOFException
+ */
+ public static function parseRuleSet(ParserState $oParserState, RuleSet $oRuleSet)
+ {
+ while ($oParserState->comes(';')) {
+ $oParserState->consume(';');
+ }
+ while (!$oParserState->comes('}')) {
+ $oRule = null;
+ if ($oParserState->getSettings()->bLenientParsing) {
+ try {
+ $oRule = Rule::parse($oParserState);
+ } catch (UnexpectedTokenException $e) {
+ try {
+ $sConsume = $oParserState->consumeUntil(["\n", ";", '}'], true);
+ // We need to “unfind” the matches to the end of the ruleSet as this will be matched later
+ if ($oParserState->streql(substr($sConsume, -1), '}')) {
+ $oParserState->backtrack(1);
+ } else {
+ while ($oParserState->comes(';')) {
+ $oParserState->consume(';');
+ }
+ }
+ } catch (UnexpectedTokenException $e) {
+ // We’ve reached the end of the document. Just close the RuleSet.
+ return;
+ }
+ }
+ } else {
+ $oRule = Rule::parse($oParserState);
+ }
+ if ($oRule) {
+ $oRuleSet->addRule($oRule);
+ }
+ }
+ $oParserState->consume('}');
+ }
+
+ /**
+ * @return int
+ */
+ public function getLineNo()
+ {
+ return $this->iLineNo;
+ }
+
+ /**
+ * @param Rule|null $oSibling
+ *
+ * @return void
+ */
+ public function addRule(Rule $oRule, Rule $oSibling = null)
+ {
+ $sRule = $oRule->getRule();
+ if (!isset($this->aRules[$sRule])) {
+ $this->aRules[$sRule] = [];
+ }
+
+ $iPosition = count($this->aRules[$sRule]);
+
+ if ($oSibling !== null) {
+ $iSiblingPos = array_search($oSibling, $this->aRules[$sRule], true);
+ if ($iSiblingPos !== false) {
+ $iPosition = $iSiblingPos;
+ $oRule->setPosition($oSibling->getLineNo(), $oSibling->getColNo() - 1);
+ }
+ }
+ if ($oRule->getLineNo() === 0 && $oRule->getColNo() === 0) {
+ //this node is added manually, give it the next best line
+ $rules = $this->getRules();
+ $pos = count($rules);
+ if ($pos > 0) {
+ $last = $rules[$pos - 1];
+ $oRule->setPosition($last->getLineNo() + 1, 0);
+ }
+ }
+
+ array_splice($this->aRules[$sRule], $iPosition, 0, [$oRule]);
+ }
+
+ /**
+ * Returns all rules matching the given rule name
+ *
+ * @example $oRuleSet->getRules('font') // returns array(0 => $oRule, …) or array().
+ *
+ * @example $oRuleSet->getRules('font-')
+ * //returns an array of all rules either beginning with font- or matching font.
+ *
+ * @param Rule|string|null $mRule
+ * Pattern to search for. If null, returns all rules.
+ * If the pattern ends with a dash, all rules starting with the pattern are returned
+ * as well as one matching the pattern with the dash excluded.
+ * Passing a Rule behaves like calling `getRules($mRule->getRule())`.
+ *
+ * @return array<int, Rule>
+ */
+ public function getRules($mRule = null)
+ {
+ if ($mRule instanceof Rule) {
+ $mRule = $mRule->getRule();
+ }
+ /** @var array<int, Rule> $aResult */
+ $aResult = [];
+ foreach ($this->aRules as $sName => $aRules) {
+ // Either no search rule is given or the search rule matches the found rule exactly
+ // or the search rule ends in “-” and the found rule starts with the search rule.
+ if (
+ !$mRule || $sName === $mRule
+ || (
+ strrpos($mRule, '-') === strlen($mRule) - strlen('-')
+ && (strpos($sName, $mRule) === 0 || $sName === substr($mRule, 0, -1))
+ )
+ ) {
+ $aResult = array_merge($aResult, $aRules);
+ }
+ }
+ usort($aResult, function (Rule $first, Rule $second) {
+ if ($first->getLineNo() === $second->getLineNo()) {
+ return $first->getColNo() - $second->getColNo();
+ }
+ return $first->getLineNo() - $second->getLineNo();
+ });
+ return $aResult;
+ }
+
+ /**
+ * Overrides all the rules of this set.
+ *
+ * @param array<array-key, Rule> $aRules The rules to override with.
+ *
+ * @return void
+ */
+ public function setRules(array $aRules)
+ {
+ $this->aRules = [];
+ foreach ($aRules as $rule) {
+ $this->addRule($rule);
+ }
+ }
+
+ /**
+ * Returns all rules matching the given pattern and returns them in an associative array with the rule’s name
+ * as keys. This method exists mainly for backwards-compatibility and is really only partially useful.
+ *
+ * Note: This method loses some information: Calling this (with an argument of `background-`) on a declaration block
+ * like `{ background-color: green; background-color; rgba(0, 127, 0, 0.7); }` will only yield an associative array
+ * containing the rgba-valued rule while `getRules()` would yield an indexed array containing both.
+ *
+ * @param Rule|string|null $mRule $mRule
+ * Pattern to search for. If null, returns all rules. If the pattern ends with a dash,
+ * all rules starting with the pattern are returned as well as one matching the pattern with the dash
+ * excluded. Passing a Rule behaves like calling `getRules($mRule->getRule())`.
+ *
+ * @return array<string, Rule>
+ */
+ public function getRulesAssoc($mRule = null)
+ {
+ /** @var array<string, Rule> $aResult */
+ $aResult = [];
+ foreach ($this->getRules($mRule) as $oRule) {
+ $aResult[$oRule->getRule()] = $oRule;
+ }
+ return $aResult;
+ }
+
+ /**
+ * Removes a rule from this RuleSet. This accepts all the possible values that `getRules()` accepts.
+ *
+ * If given a Rule, it will only remove this particular rule (by identity).
+ * If given a name, it will remove all rules by that name.
+ *
+ * Note: this is different from pre-v.2.0 behaviour of PHP-CSS-Parser, where passing a Rule instance would
+ * remove all rules with the same name. To get the old behaviour, use `removeRule($oRule->getRule())`.
+ *
+ * @param Rule|string|null $mRule
+ * pattern to remove. If $mRule is null, all rules are removed. If the pattern ends in a dash,
+ * all rules starting with the pattern are removed as well as one matching the pattern with the dash
+ * excluded. Passing a Rule behaves matches by identity.
+ *
+ * @return void
+ */
+ public function removeRule($mRule)
+ {
+ if ($mRule instanceof Rule) {
+ $sRule = $mRule->getRule();
+ if (!isset($this->aRules[$sRule])) {
+ return;
+ }
+ foreach ($this->aRules[$sRule] as $iKey => $oRule) {
+ if ($oRule === $mRule) {
+ unset($this->aRules[$sRule][$iKey]);
+ }
+ }
+ } else {
+ foreach ($this->aRules as $sName => $aRules) {
+ // Either no search rule is given or the search rule matches the found rule exactly
+ // or the search rule ends in “-” and the found rule starts with the search rule or equals it
+ // (without the trailing dash).
+ if (
+ !$mRule || $sName === $mRule
+ || (strrpos($mRule, '-') === strlen($mRule) - strlen('-')
+ && (strpos($sName, $mRule) === 0 || $sName === substr($mRule, 0, -1)))
+ ) {
+ unset($this->aRules[$sName]);
+ }
+ }
+ }
+ }
+
+ /**
+ * @return string
+ */
+ public function __toString()
+ {
+ return $this->render(new OutputFormat());
+ }
+
+ /**
+ * @return string
+ */
+ public function render(OutputFormat $oOutputFormat)
+ {
+ $sResult = '';
+ $bIsFirst = true;
+ foreach ($this->aRules as $aRules) {
+ foreach ($aRules as $oRule) {
+ $sRendered = $oOutputFormat->safely(function () use ($oRule, $oOutputFormat) {
+ return $oRule->render($oOutputFormat->nextLevel());
+ });
+ if ($sRendered === null) {
+ continue;
+ }
+ if ($bIsFirst) {
+ $bIsFirst = false;
+ $sResult .= $oOutputFormat->nextLevel()->spaceBeforeRules();
+ } else {
+ $sResult .= $oOutputFormat->nextLevel()->spaceBetweenRules();
+ }
+ $sResult .= $sRendered;
+ }
+ }
+
+ if (!$bIsFirst) {
+ // Had some output
+ $sResult .= $oOutputFormat->spaceAfterRules();
+ }
+
+ return $oOutputFormat->removeLastSemicolon($sResult);
+ }
+
+ /**
+ * @param array<string, Comment> $aComments
+ *
+ * @return void
+ */
+ public function addComments(array $aComments)
+ {
+ $this->aComments = array_merge($this->aComments, $aComments);
+ }
+
+ /**
+ * @return array<string, Comment>
+ */
+ public function getComments()
+ {
+ return $this->aComments;
+ }
+
+ /**
+ * @param array<string, Comment> $aComments
+ *
+ * @return void
+ */
+ public function setComments(array $aComments)
+ {
+ $this->aComments = $aComments;
+ }
+}
diff --git a/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Settings.php b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Settings.php
new file mode 100644
index 0000000..7b85809
--- /dev/null
+++ b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Settings.php
@@ -0,0 +1,89 @@
+<?php
+
+namespace Sabberworm\CSS;
+
+/**
+ * Parser settings class.
+ *
+ * Configure parser behaviour here.
+ */
+class Settings
+{
+ /**
+ * Multi-byte string support.
+ * If true (mbstring extension must be enabled), will use (slower) `mb_strlen`, `mb_convert_case`, `mb_substr`
+ * and `mb_strpos` functions. Otherwise, the normal (ASCII-Only) functions will be used.
+ *
+ * @var bool
+ */
+ public $bMultibyteSupport;
+
+ /**
+ * The default charset for the CSS if no `@charset` rule is found. Defaults to utf-8.
+ *
+ * @var string
+ */
+ public $sDefaultCharset = 'utf-8';
+
+ /**
+ * Lenient parsing. When used (which is true by default), the parser will not choke
+ * on unexpected tokens but simply ignore them.
+ *
+ * @var bool
+ */
+ public $bLenientParsing = true;
+
+ private function __construct()
+ {
+ $this->bMultibyteSupport = extension_loaded('mbstring');
+ }
+
+ /**
+ * @return self new instance
+ */
+ public static function create()
+ {
+ return new Settings();
+ }
+
+ /**
+ * @param bool $bMultibyteSupport
+ *
+ * @return self fluent interface
+ */
+ public function withMultibyteSupport($bMultibyteSupport = true)
+ {
+ $this->bMultibyteSupport = $bMultibyteSupport;
+ return $this;
+ }
+
+ /**
+ * @param string $sDefaultCharset
+ *
+ * @return self fluent interface
+ */
+ public function withDefaultCharset($sDefaultCharset)
+ {
+ $this->sDefaultCharset = $sDefaultCharset;
+ return $this;
+ }
+
+ /**
+ * @param bool $bLenientParsing
+ *
+ * @return self fluent interface
+ */
+ public function withLenientParsing($bLenientParsing = true)
+ {
+ $this->bLenientParsing = $bLenientParsing;
+ return $this;
+ }
+
+ /**
+ * @return self fluent interface
+ */
+ public function beStrict()
+ {
+ return $this->withLenientParsing(false);
+ }
+}
diff --git a/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Value/CSSFunction.php b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Value/CSSFunction.php
new file mode 100644
index 0000000..e6b8c11
--- /dev/null
+++ b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Value/CSSFunction.php
@@ -0,0 +1,73 @@
+<?php
+
+namespace Sabberworm\CSS\Value;
+
+use Sabberworm\CSS\OutputFormat;
+
+class CSSFunction extends ValueList
+{
+ /**
+ * @var string
+ */
+ protected $sName;
+
+ /**
+ * @param string $sName
+ * @param RuleValueList|array<int, RuleValueList|CSSFunction|CSSString|LineName|Size|URL|string> $aArguments
+ * @param string $sSeparator
+ * @param int $iLineNo
+ */
+ public function __construct($sName, $aArguments, $sSeparator = ',', $iLineNo = 0)
+ {
+ if ($aArguments instanceof RuleValueList) {
+ $sSeparator = $aArguments->getListSeparator();
+ $aArguments = $aArguments->getListComponents();
+ }
+ $this->sName = $sName;
+ $this->iLineNo = $iLineNo;
+ parent::__construct($aArguments, $sSeparator, $iLineNo);
+ }
+
+ /**
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->sName;
+ }
+
+ /**
+ * @param string $sName
+ *
+ * @return void
+ */
+ public function setName($sName)
+ {
+ $this->sName = $sName;
+ }
+
+ /**
+ * @return array<int, RuleValueList|CSSFunction|CSSString|LineName|Size|URL|string>
+ */
+ public function getArguments()
+ {
+ return $this->aComponents;
+ }
+
+ /**
+ * @return string
+ */
+ public function __toString()
+ {
+ return $this->render(new OutputFormat());
+ }
+
+ /**
+ * @return string
+ */
+ public function render(OutputFormat $oOutputFormat)
+ {
+ $aArguments = parent::render($oOutputFormat);
+ return "{$this->sName}({$aArguments})";
+ }
+}
diff --git a/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Value/CSSString.php b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Value/CSSString.php
new file mode 100644
index 0000000..9fafedd
--- /dev/null
+++ b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Value/CSSString.php
@@ -0,0 +1,105 @@
+<?php
+
+namespace Sabberworm\CSS\Value;
+
+use Sabberworm\CSS\OutputFormat;
+use Sabberworm\CSS\Parsing\ParserState;
+use Sabberworm\CSS\Parsing\SourceException;
+use Sabberworm\CSS\Parsing\UnexpectedEOFException;
+use Sabberworm\CSS\Parsing\UnexpectedTokenException;
+
+class CSSString extends PrimitiveValue
+{
+ /**
+ * @var string
+ */
+ private $sString;
+
+ /**
+ * @param string $sString
+ * @param int $iLineNo
+ */
+ public function __construct($sString, $iLineNo = 0)
+ {
+ $this->sString = $sString;
+ parent::__construct($iLineNo);
+ }
+
+ /**
+ * @return CSSString
+ *
+ * @throws SourceException
+ * @throws UnexpectedEOFException
+ * @throws UnexpectedTokenException
+ */
+ public static function parse(ParserState $oParserState)
+ {
+ $sBegin = $oParserState->peek();
+ $sQuote = null;
+ if ($sBegin === "'") {
+ $sQuote = "'";
+ } elseif ($sBegin === '"') {
+ $sQuote = '"';
+ }
+ if ($sQuote !== null) {
+ $oParserState->consume($sQuote);
+ }
+ $sResult = "";
+ $sContent = null;
+ if ($sQuote === null) {
+ // Unquoted strings end in whitespace or with braces, brackets, parentheses
+ while (!preg_match('/[\\s{}()<>\\[\\]]/isu', $oParserState->peek())) {
+ $sResult .= $oParserState->parseCharacter(false);
+ }
+ } else {
+ while (!$oParserState->comes($sQuote)) {
+ $sContent = $oParserState->parseCharacter(false);
+ if ($sContent === null) {
+ throw new SourceException(
+ "Non-well-formed quoted string {$oParserState->peek(3)}",
+ $oParserState->currentLine()
+ );
+ }
+ $sResult .= $sContent;
+ }
+ $oParserState->consume($sQuote);
+ }
+ return new CSSString($sResult, $oParserState->currentLine());
+ }
+
+ /**
+ * @param string $sString
+ *
+ * @return void
+ */
+ public function setString($sString)
+ {
+ $this->sString = $sString;
+ }
+
+ /**
+ * @return string
+ */
+ public function getString()
+ {
+ return $this->sString;
+ }
+
+ /**
+ * @return string
+ */
+ public function __toString()
+ {
+ return $this->render(new OutputFormat());
+ }
+
+ /**
+ * @return string
+ */
+ public function render(OutputFormat $oOutputFormat)
+ {
+ $sString = addslashes($this->sString);
+ $sString = str_replace("\n", '\A', $sString);
+ return $oOutputFormat->getStringQuotingType() . $sString . $oOutputFormat->getStringQuotingType();
+ }
+}
diff --git a/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Value/CalcFunction.php b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Value/CalcFunction.php
new file mode 100644
index 0000000..5c92e0c
--- /dev/null
+++ b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Value/CalcFunction.php
@@ -0,0 +1,89 @@
+<?php
+
+namespace Sabberworm\CSS\Value;
+
+use Sabberworm\CSS\Parsing\ParserState;
+use Sabberworm\CSS\Parsing\UnexpectedEOFException;
+use Sabberworm\CSS\Parsing\UnexpectedTokenException;
+
+class CalcFunction extends CSSFunction
+{
+ /**
+ * @var int
+ */
+ const T_OPERAND = 1;
+
+ /**
+ * @var int
+ */
+ const T_OPERATOR = 2;
+
+ /**
+ * @return CalcFunction
+ *
+ * @throws UnexpectedTokenException
+ * @throws UnexpectedEOFException
+ */
+ public static function parse(ParserState $oParserState)
+ {
+ $aOperators = ['+', '-', '*', '/'];
+ $sFunction = trim($oParserState->consumeUntil('(', false, true));
+ $oCalcList = new CalcRuleValueList($oParserState->currentLine());
+ $oList = new RuleValueList(',', $oParserState->currentLine());
+ $iNestingLevel = 0;
+ $iLastComponentType = null;
+ while (!$oParserState->comes(')') || $iNestingLevel > 0) {
+ $oParserState->consumeWhiteSpace();
+ if ($oParserState->comes('(')) {
+ $iNestingLevel++;
+ $oCalcList->addListComponent($oParserState->consume(1));
+ $oParserState->consumeWhiteSpace();
+ continue;
+ } elseif ($oParserState->comes(')')) {
+ $iNestingLevel--;
+ $oCalcList->addListComponent($oParserState->consume(1));
+ $oParserState->consumeWhiteSpace();
+ continue;
+ }
+ if ($iLastComponentType != CalcFunction::T_OPERAND) {
+ $oVal = Value::parsePrimitiveValue($oParserState);
+ $oCalcList->addListComponent($oVal);
+ $iLastComponentType = CalcFunction::T_OPERAND;
+ } else {
+ if (in_array($oParserState->peek(), $aOperators)) {
+ if (($oParserState->comes('-') || $oParserState->comes('+'))) {
+ if (
+ $oParserState->peek(1, -1) != ' '
+ || !($oParserState->comes('- ')
+ || $oParserState->comes('+ '))
+ ) {
+ throw new UnexpectedTokenException(
+ " {$oParserState->peek()} ",
+ $oParserState->peek(1, -1) . $oParserState->peek(2),
+ 'literal',
+ $oParserState->currentLine()
+ );
+ }
+ }
+ $oCalcList->addListComponent($oParserState->consume(1));
+ $iLastComponentType = CalcFunction::T_OPERATOR;
+ } else {
+ throw new UnexpectedTokenException(
+ sprintf(
+ 'Next token was expected to be an operand of type %s. Instead "%s" was found.',
+ implode(', ', $aOperators),
+ $oVal
+ ),
+ '',
+ 'custom',
+ $oParserState->currentLine()
+ );
+ }
+ }
+ $oParserState->consumeWhiteSpace();
+ }
+ $oList->addListComponent($oCalcList);
+ $oParserState->consume(')');
+ return new CalcFunction($sFunction, $oList, ',', $oParserState->currentLine());
+ }
+}
diff --git a/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Value/CalcRuleValueList.php b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Value/CalcRuleValueList.php
new file mode 100644
index 0000000..7dbd26a
--- /dev/null
+++ b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Value/CalcRuleValueList.php
@@ -0,0 +1,24 @@
+<?php
+
+namespace Sabberworm\CSS\Value;
+
+use Sabberworm\CSS\OutputFormat;
+
+class CalcRuleValueList extends RuleValueList
+{
+ /**
+ * @param int $iLineNo
+ */
+ public function __construct($iLineNo = 0)
+ {
+ parent::__construct(',', $iLineNo);
+ }
+
+ /**
+ * @return string
+ */
+ public function render(OutputFormat $oOutputFormat)
+ {
+ return $oOutputFormat->implode(' ', $this->aComponents);
+ }
+}
diff --git a/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Value/Color.php b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Value/Color.php
new file mode 100644
index 0000000..8dc5296
--- /dev/null
+++ b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Value/Color.php
@@ -0,0 +1,166 @@
+<?php
+
+namespace Sabberworm\CSS\Value;
+
+use Sabberworm\CSS\OutputFormat;
+use Sabberworm\CSS\Parsing\ParserState;
+use Sabberworm\CSS\Parsing\UnexpectedEOFException;
+use Sabberworm\CSS\Parsing\UnexpectedTokenException;
+
+class Color extends CSSFunction
+{
+ /**
+ * @param array<int, RuleValueList|CSSFunction|CSSString|LineName|Size|URL|string> $aColor
+ * @param int $iLineNo
+ */
+ public function __construct(array $aColor, $iLineNo = 0)
+ {
+ parent::__construct(implode('', array_keys($aColor)), $aColor, ',', $iLineNo);
+ }
+
+ /**
+ * @return Color|CSSFunction
+ *
+ * @throws UnexpectedEOFException
+ * @throws UnexpectedTokenException
+ */
+ public static function parse(ParserState $oParserState)
+ {
+ $aColor = [];
+ if ($oParserState->comes('#')) {
+ $oParserState->consume('#');
+ $sValue = $oParserState->parseIdentifier(false);
+ if ($oParserState->strlen($sValue) === 3) {
+ $sValue = $sValue[0] . $sValue[0] . $sValue[1] . $sValue[1] . $sValue[2] . $sValue[2];
+ } elseif ($oParserState->strlen($sValue) === 4) {
+ $sValue = $sValue[0] . $sValue[0] . $sValue[1] . $sValue[1] . $sValue[2] . $sValue[2] . $sValue[3]
+ . $sValue[3];
+ }
+
+ if ($oParserState->strlen($sValue) === 8) {
+ $aColor = [
+ 'r' => new Size(intval($sValue[0] . $sValue[1], 16), null, true, $oParserState->currentLine()),
+ 'g' => new Size(intval($sValue[2] . $sValue[3], 16), null, true, $oParserState->currentLine()),
+ 'b' => new Size(intval($sValue[4] . $sValue[5], 16), null, true, $oParserState->currentLine()),
+ 'a' => new Size(
+ round(self::mapRange(intval($sValue[6] . $sValue[7], 16), 0, 255, 0, 1), 2),
+ null,
+ true,
+ $oParserState->currentLine()
+ ),
+ ];
+ } else {
+ $aColor = [
+ 'r' => new Size(intval($sValue[0] . $sValue[1], 16), null, true, $oParserState->currentLine()),
+ 'g' => new Size(intval($sValue[2] . $sValue[3], 16), null, true, $oParserState->currentLine()),
+ 'b' => new Size(intval($sValue[4] . $sValue[5], 16), null, true, $oParserState->currentLine()),
+ ];
+ }
+ } else {
+ $sColorMode = $oParserState->parseIdentifier(true);
+ $oParserState->consumeWhiteSpace();
+ $oParserState->consume('(');
+
+ $bContainsVar = false;
+ $iLength = $oParserState->strlen($sColorMode);
+ for ($i = 0; $i < $iLength; ++$i) {
+ $oParserState->consumeWhiteSpace();
+ if ($oParserState->comes('var')) {
+ $aColor[$sColorMode[$i]] = CSSFunction::parseIdentifierOrFunction($oParserState);
+ $bContainsVar = true;
+ } else {
+ $aColor[$sColorMode[$i]] = Size::parse($oParserState, true);
+ }
+
+ if ($bContainsVar && $oParserState->comes(')')) {
+ // With a var argument the function can have fewer arguments
+ break;
+ }
+
+ $oParserState->consumeWhiteSpace();
+ if ($i < ($iLength - 1)) {
+ $oParserState->consume(',');
+ }
+ }
+ $oParserState->consume(')');
+
+ if ($bContainsVar) {
+ return new CSSFunction($sColorMode, array_values($aColor), ',', $oParserState->currentLine());
+ }
+ }
+ return new Color($aColor, $oParserState->currentLine());
+ }
+
+ /**
+ * @param float $fVal
+ * @param float $fFromMin
+ * @param float $fFromMax
+ * @param float $fToMin
+ * @param float $fToMax
+ *
+ * @return float
+ */
+ private static function mapRange($fVal, $fFromMin, $fFromMax, $fToMin, $fToMax)
+ {
+ $fFromRange = $fFromMax - $fFromMin;
+ $fToRange = $fToMax - $fToMin;
+ $fMultiplier = $fToRange / $fFromRange;
+ $fNewVal = $fVal - $fFromMin;
+ $fNewVal *= $fMultiplier;
+ return $fNewVal + $fToMin;
+ }
+
+ /**
+ * @return array<int, RuleValueList|CSSFunction|CSSString|LineName|Size|URL|string>
+ */
+ public function getColor()
+ {
+ return $this->aComponents;
+ }
+
+ /**
+ * @param array<int, RuleValueList|CSSFunction|CSSString|LineName|Size|URL|string> $aColor
+ *
+ * @return void
+ */
+ public function setColor(array $aColor)
+ {
+ $this->setName(implode('', array_keys($aColor)));
+ $this->aComponents = $aColor;
+ }
+
+ /**
+ * @return string
+ */
+ public function getColorDescription()
+ {
+ return $this->getName();
+ }
+
+ /**
+ * @return string
+ */
+ public function __toString()
+ {
+ return $this->render(new OutputFormat());
+ }
+
+ /**
+ * @return string
+ */
+ public function render(OutputFormat $oOutputFormat)
+ {
+ // Shorthand RGB color values
+ if ($oOutputFormat->getRGBHashNotation() && implode('', array_keys($this->aComponents)) === 'rgb') {
+ $sResult = sprintf(
+ '%02x%02x%02x',
+ $this->aComponents['r']->getSize(),
+ $this->aComponents['g']->getSize(),
+ $this->aComponents['b']->getSize()
+ );
+ return '#' . (($sResult[0] == $sResult[1]) && ($sResult[2] == $sResult[3]) && ($sResult[4] == $sResult[5])
+ ? "$sResult[0]$sResult[2]$sResult[4]" : $sResult);
+ }
+ return parent::render($oOutputFormat);
+ }
+}
diff --git a/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Value/LineName.php b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Value/LineName.php
new file mode 100644
index 0000000..e231ce3
--- /dev/null
+++ b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Value/LineName.php
@@ -0,0 +1,65 @@
+<?php
+
+namespace Sabberworm\CSS\Value;
+
+use Sabberworm\CSS\OutputFormat;
+use Sabberworm\CSS\Parsing\ParserState;
+use Sabberworm\CSS\Parsing\UnexpectedEOFException;
+use Sabberworm\CSS\Parsing\UnexpectedTokenException;
+
+class LineName extends ValueList
+{
+ /**
+ * @param array<int, RuleValueList|CSSFunction|CSSString|LineName|Size|URL|string> $aComponents
+ * @param int $iLineNo
+ */
+ public function __construct(array $aComponents = [], $iLineNo = 0)
+ {
+ parent::__construct($aComponents, ' ', $iLineNo);
+ }
+
+ /**
+ * @return LineName
+ *
+ * @throws UnexpectedTokenException
+ * @throws UnexpectedEOFException
+ */
+ public static function parse(ParserState $oParserState)
+ {
+ $oParserState->consume('[');
+ $oParserState->consumeWhiteSpace();
+ $aNames = [];
+ do {
+ if ($oParserState->getSettings()->bLenientParsing) {
+ try {
+ $aNames[] = $oParserState->parseIdentifier();
+ } catch (UnexpectedTokenException $e) {
+ if (!$oParserState->comes(']')) {
+ throw $e;
+ }
+ }
+ } else {
+ $aNames[] = $oParserState->parseIdentifier();
+ }
+ $oParserState->consumeWhiteSpace();
+ } while (!$oParserState->comes(']'));
+ $oParserState->consume(']');
+ return new LineName($aNames, $oParserState->currentLine());
+ }
+
+ /**
+ * @return string
+ */
+ public function __toString()
+ {
+ return $this->render(new OutputFormat());
+ }
+
+ /**
+ * @return string
+ */
+ public function render(OutputFormat $oOutputFormat)
+ {
+ return '[' . parent::render(OutputFormat::createCompact()) . ']';
+ }
+}
diff --git a/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Value/PrimitiveValue.php b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Value/PrimitiveValue.php
new file mode 100644
index 0000000..055a439
--- /dev/null
+++ b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Value/PrimitiveValue.php
@@ -0,0 +1,14 @@
+<?php
+
+namespace Sabberworm\CSS\Value;
+
+abstract class PrimitiveValue extends Value
+{
+ /**
+ * @param int $iLineNo
+ */
+ public function __construct($iLineNo = 0)
+ {
+ parent::__construct($iLineNo);
+ }
+}
diff --git a/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Value/RuleValueList.php b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Value/RuleValueList.php
new file mode 100644
index 0000000..5d533a7
--- /dev/null
+++ b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Value/RuleValueList.php
@@ -0,0 +1,15 @@
+<?php
+
+namespace Sabberworm\CSS\Value;
+
+class RuleValueList extends ValueList
+{
+ /**
+ * @param string $sSeparator
+ * @param int $iLineNo
+ */
+ public function __construct($sSeparator = ',', $iLineNo = 0)
+ {
+ parent::__construct([], $sSeparator, $iLineNo);
+ }
+}
diff --git a/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Value/Size.php b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Value/Size.php
new file mode 100644
index 0000000..b3801dc
--- /dev/null
+++ b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Value/Size.php
@@ -0,0 +1,209 @@
+<?php
+
+namespace Sabberworm\CSS\Value;
+
+use Sabberworm\CSS\OutputFormat;
+use Sabberworm\CSS\Parsing\ParserState;
+use Sabberworm\CSS\Parsing\UnexpectedEOFException;
+use Sabberworm\CSS\Parsing\UnexpectedTokenException;
+
+class Size extends PrimitiveValue
+{
+ /**
+ * vh/vw/vm(ax)/vmin/rem are absolute insofar as they don’t scale to the immediate parent (only the viewport)
+ *
+ * @var array<int, string>
+ */
+ const ABSOLUTE_SIZE_UNITS = ['px', 'cm', 'mm', 'mozmm', 'in', 'pt', 'pc', 'vh', 'vw', 'vmin', 'vmax', 'rem'];
+
+ /**
+ * @var array<int, string>
+ */
+ const RELATIVE_SIZE_UNITS = ['%', 'em', 'ex', 'ch', 'fr'];
+
+ /**
+ * @var array<int, string>
+ */
+ const NON_SIZE_UNITS = ['deg', 'grad', 'rad', 's', 'ms', 'turns', 'Hz', 'kHz'];
+
+ /**
+ * @var array<int, array<string, string>>|null
+ */
+ private static $SIZE_UNITS = null;
+
+ /**
+ * @var float
+ */
+ private $fSize;
+
+ /**
+ * @var string|null
+ */
+ private $sUnit;
+
+ /**
+ * @var bool
+ */
+ private $bIsColorComponent;
+
+ /**
+ * @param float|int|string $fSize
+ * @param string|null $sUnit
+ * @param bool $bIsColorComponent
+ * @param int $iLineNo
+ */
+ public function __construct($fSize, $sUnit = null, $bIsColorComponent = false, $iLineNo = 0)
+ {
+ parent::__construct($iLineNo);
+ $this->fSize = (float)$fSize;
+ $this->sUnit = $sUnit;
+ $this->bIsColorComponent = $bIsColorComponent;
+ }
+
+ /**
+ * @param bool $bIsColorComponent
+ *
+ * @return Size
+ *
+ * @throws UnexpectedEOFException
+ * @throws UnexpectedTokenException
+ */
+ public static function parse(ParserState $oParserState, $bIsColorComponent = false)
+ {
+ $sSize = '';
+ if ($oParserState->comes('-')) {
+ $sSize .= $oParserState->consume('-');
+ }
+ while (is_numeric($oParserState->peek()) || $oParserState->comes('.')) {
+ if ($oParserState->comes('.')) {
+ $sSize .= $oParserState->consume('.');
+ } else {
+ $sSize .= $oParserState->consume(1);
+ }
+ }
+
+ $sUnit = null;
+ $aSizeUnits = self::getSizeUnits();
+ foreach ($aSizeUnits as $iLength => &$aValues) {
+ $sKey = strtolower($oParserState->peek($iLength));
+ if (array_key_exists($sKey, $aValues)) {
+ if (($sUnit = $aValues[$sKey]) !== null) {
+ $oParserState->consume($iLength);
+ break;
+ }
+ }
+ }
+ return new Size((float)$sSize, $sUnit, $bIsColorComponent, $oParserState->currentLine());
+ }
+
+ /**
+ * @return array<int, array<string, string>>
+ */
+ private static function getSizeUnits()
+ {
+ if (!is_array(self::$SIZE_UNITS)) {
+ self::$SIZE_UNITS = [];
+ foreach (array_merge(self::ABSOLUTE_SIZE_UNITS, self::RELATIVE_SIZE_UNITS, self::NON_SIZE_UNITS) as $val) {
+ $iSize = strlen($val);
+ if (!isset(self::$SIZE_UNITS[$iSize])) {
+ self::$SIZE_UNITS[$iSize] = [];
+ }
+ self::$SIZE_UNITS[$iSize][strtolower($val)] = $val;
+ }
+
+ krsort(self::$SIZE_UNITS, SORT_NUMERIC);
+ }
+
+ return self::$SIZE_UNITS;
+ }
+
+ /**
+ * @param string $sUnit
+ *
+ * @return void
+ */
+ public function setUnit($sUnit)
+ {
+ $this->sUnit = $sUnit;
+ }
+
+ /**
+ * @return string|null
+ */
+ public function getUnit()
+ {
+ return $this->sUnit;
+ }
+
+ /**
+ * @param float|int|string $fSize
+ */
+ public function setSize($fSize)
+ {
+ $this->fSize = (float)$fSize;
+ }
+
+ /**
+ * @return float
+ */
+ public function getSize()
+ {
+ return $this->fSize;
+ }
+
+ /**
+ * @return bool
+ */
+ public function isColorComponent()
+ {
+ return $this->bIsColorComponent;
+ }
+
+ /**
+ * Returns whether the number stored in this Size really represents a size (as in a length of something on screen).
+ *
+ * @return false if the unit an angle, a duration, a frequency or the number is a component in a Color object.
+ */
+ public function isSize()
+ {
+ if (in_array($this->sUnit, self::NON_SIZE_UNITS, true)) {
+ return false;
+ }
+ return !$this->isColorComponent();
+ }
+
+ /**
+ * @return bool
+ */
+ public function isRelative()
+ {
+ if (in_array($this->sUnit, self::RELATIVE_SIZE_UNITS, true)) {
+ return true;
+ }
+ if ($this->sUnit === null && $this->fSize != 0) {
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @return string
+ */
+ public function __toString()
+ {
+ return $this->render(new OutputFormat());
+ }
+
+ /**
+ * @return string
+ */
+ public function render(OutputFormat $oOutputFormat)
+ {
+ $l = localeconv();
+ $sPoint = preg_quote($l['decimal_point'], '/');
+ $sSize = preg_match("/[\d\.]+e[+-]?\d+/i", (string)$this->fSize)
+ ? preg_replace("/$sPoint?0+$/", "", sprintf("%f", $this->fSize)) : $this->fSize;
+ return preg_replace(["/$sPoint/", "/^(-?)0\./"], ['.', '$1.'], $sSize)
+ . ($this->sUnit === null ? '' : $this->sUnit);
+ }
+}
diff --git a/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Value/URL.php b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Value/URL.php
new file mode 100644
index 0000000..1467d50
--- /dev/null
+++ b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Value/URL.php
@@ -0,0 +1,82 @@
+<?php
+
+namespace Sabberworm\CSS\Value;
+
+use Sabberworm\CSS\OutputFormat;
+use Sabberworm\CSS\Parsing\ParserState;
+use Sabberworm\CSS\Parsing\SourceException;
+use Sabberworm\CSS\Parsing\UnexpectedEOFException;
+use Sabberworm\CSS\Parsing\UnexpectedTokenException;
+
+class URL extends PrimitiveValue
+{
+ /**
+ * @var CSSString
+ */
+ private $oURL;
+
+ /**
+ * @param int $iLineNo
+ */
+ public function __construct(CSSString $oURL, $iLineNo = 0)
+ {
+ parent::__construct($iLineNo);
+ $this->oURL = $oURL;
+ }
+
+ /**
+ * @return URL
+ *
+ * @throws SourceException
+ * @throws UnexpectedEOFException
+ * @throws UnexpectedTokenException
+ */
+ public static function parse(ParserState $oParserState)
+ {
+ $bUseUrl = $oParserState->comes('url', true);
+ if ($bUseUrl) {
+ $oParserState->consume('url');
+ $oParserState->consumeWhiteSpace();
+ $oParserState->consume('(');
+ }
+ $oParserState->consumeWhiteSpace();
+ $oResult = new URL(CSSString::parse($oParserState), $oParserState->currentLine());
+ if ($bUseUrl) {
+ $oParserState->consumeWhiteSpace();
+ $oParserState->consume(')');
+ }
+ return $oResult;
+ }
+
+ /**
+ * @return void
+ */
+ public function setURL(CSSString $oURL)
+ {
+ $this->oURL = $oURL;
+ }
+
+ /**
+ * @return CSSString
+ */
+ public function getURL()
+ {
+ return $this->oURL;
+ }
+
+ /**
+ * @return string
+ */
+ public function __toString()
+ {
+ return $this->render(new OutputFormat());
+ }
+
+ /**
+ * @return string
+ */
+ public function render(OutputFormat $oOutputFormat)
+ {
+ return "url({$this->oURL->render($oOutputFormat)})";
+ }
+}
diff --git a/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Value/Value.php b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Value/Value.php
new file mode 100644
index 0000000..66cb9fd
--- /dev/null
+++ b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Value/Value.php
@@ -0,0 +1,198 @@
+<?php
+
+namespace Sabberworm\CSS\Value;
+
+use Sabberworm\CSS\Parsing\ParserState;
+use Sabberworm\CSS\Parsing\SourceException;
+use Sabberworm\CSS\Parsing\UnexpectedEOFException;
+use Sabberworm\CSS\Parsing\UnexpectedTokenException;
+use Sabberworm\CSS\Renderable;
+
+abstract class Value implements Renderable
+{
+ /**
+ * @var int
+ */
+ protected $iLineNo;
+
+ /**
+ * @param int $iLineNo
+ */
+ public function __construct($iLineNo = 0)
+ {
+ $this->iLineNo = $iLineNo;
+ }
+
+ /**
+ * @param array<array-key, string> $aListDelimiters
+ *
+ * @return RuleValueList|CSSFunction|CSSString|LineName|Size|URL|string
+ *
+ * @throws UnexpectedTokenException
+ * @throws UnexpectedEOFException
+ */
+ public static function parseValue(ParserState $oParserState, array $aListDelimiters = [])
+ {
+ /** @var array<int, RuleValueList|CSSFunction|CSSString|LineName|Size|URL|string> $aStack */
+ $aStack = [];
+ $oParserState->consumeWhiteSpace();
+ //Build a list of delimiters and parsed values
+ while (
+ !($oParserState->comes('}') || $oParserState->comes(';') || $oParserState->comes('!')
+ || $oParserState->comes(')')
+ || $oParserState->comes('\\'))
+ ) {
+ if (count($aStack) > 0) {
+ $bFoundDelimiter = false;
+ foreach ($aListDelimiters as $sDelimiter) {
+ if ($oParserState->comes($sDelimiter)) {
+ array_push($aStack, $oParserState->consume($sDelimiter));
+ $oParserState->consumeWhiteSpace();
+ $bFoundDelimiter = true;
+ break;
+ }
+ }
+ if (!$bFoundDelimiter) {
+ //Whitespace was the list delimiter
+ array_push($aStack, ' ');
+ }
+ }
+ array_push($aStack, self::parsePrimitiveValue($oParserState));
+ $oParserState->consumeWhiteSpace();
+ }
+ // Convert the list to list objects
+ foreach ($aListDelimiters as $sDelimiter) {
+ if (count($aStack) === 1) {
+ return $aStack[0];
+ }
+ $iStartPosition = null;
+ while (($iStartPosition = array_search($sDelimiter, $aStack, true)) !== false) {
+ $iLength = 2; //Number of elements to be joined
+ for ($i = $iStartPosition + 2; $i < count($aStack); $i += 2, ++$iLength) {
+ if ($sDelimiter !== $aStack[$i]) {
+ break;
+ }
+ }
+ $oList = new RuleValueList($sDelimiter, $oParserState->currentLine());
+ for ($i = $iStartPosition - 1; $i - $iStartPosition + 1 < $iLength * 2; $i += 2) {
+ $oList->addListComponent($aStack[$i]);
+ }
+ array_splice($aStack, $iStartPosition - 1, $iLength * 2 - 1, [$oList]);
+ }
+ }
+ if (!isset($aStack[0])) {
+ throw new UnexpectedTokenException(
+ " {$oParserState->peek()} ",
+ $oParserState->peek(1, -1) . $oParserState->peek(2),
+ 'literal',
+ $oParserState->currentLine()
+ );
+ }
+ return $aStack[0];
+ }
+
+ /**
+ * @param bool $bIgnoreCase
+ *
+ * @return CSSFunction|string
+ *
+ * @throws UnexpectedEOFException
+ * @throws UnexpectedTokenException
+ */
+ public static function parseIdentifierOrFunction(ParserState $oParserState, $bIgnoreCase = false)
+ {
+ $sResult = $oParserState->parseIdentifier($bIgnoreCase);
+
+ if ($oParserState->comes('(')) {
+ $oParserState->consume('(');
+ $aArguments = Value::parseValue($oParserState, ['=', ' ', ',']);
+ $sResult = new CSSFunction($sResult, $aArguments, ',', $oParserState->currentLine());
+ $oParserState->consume(')');
+ }
+
+ return $sResult;
+ }
+
+ /**
+ * @return CSSFunction|CSSString|LineName|Size|URL|string
+ *
+ * @throws UnexpectedEOFException
+ * @throws UnexpectedTokenException
+ * @throws SourceException
+ */
+ public static function parsePrimitiveValue(ParserState $oParserState)
+ {
+ $oValue = null;
+ $oParserState->consumeWhiteSpace();
+ if (
+ is_numeric($oParserState->peek())
+ || ($oParserState->comes('-.')
+ && is_numeric($oParserState->peek(1, 2)))
+ || (($oParserState->comes('-') || $oParserState->comes('.')) && is_numeric($oParserState->peek(1, 1)))
+ ) {
+ $oValue = Size::parse($oParserState);
+ } elseif ($oParserState->comes('#') || $oParserState->comes('rgb', true) || $oParserState->comes('hsl', true)) {
+ $oValue = Color::parse($oParserState);
+ } elseif ($oParserState->comes('url', true)) {
+ $oValue = URL::parse($oParserState);
+ } elseif (
+ $oParserState->comes('calc', true) || $oParserState->comes('-webkit-calc', true)
+ || $oParserState->comes('-moz-calc', true)
+ ) {
+ $oValue = CalcFunction::parse($oParserState);
+ } elseif ($oParserState->comes("'") || $oParserState->comes('"')) {
+ $oValue = CSSString::parse($oParserState);
+ } elseif ($oParserState->comes("progid:") && $oParserState->getSettings()->bLenientParsing) {
+ $oValue = self::parseMicrosoftFilter($oParserState);
+ } elseif ($oParserState->comes("[")) {
+ $oValue = LineName::parse($oParserState);
+ } elseif ($oParserState->comes("U+")) {
+ $oValue = self::parseUnicodeRangeValue($oParserState);
+ } else {
+ $oValue = self::parseIdentifierOrFunction($oParserState);
+ }
+ $oParserState->consumeWhiteSpace();
+ return $oValue;
+ }
+
+ /**
+ * @return CSSFunction
+ *
+ * @throws UnexpectedEOFException
+ * @throws UnexpectedTokenException
+ */
+ private static function parseMicrosoftFilter(ParserState $oParserState)
+ {
+ $sFunction = $oParserState->consumeUntil('(', false, true);
+ $aArguments = Value::parseValue($oParserState, [',', '=']);
+ return new CSSFunction($sFunction, $aArguments, ',', $oParserState->currentLine());
+ }
+
+ /**
+ * @return string
+ *
+ * @throws UnexpectedEOFException
+ * @throws UnexpectedTokenException
+ */
+ private static function parseUnicodeRangeValue(ParserState $oParserState)
+ {
+ $iCodepointMaxLength = 6; // Code points outside BMP can use up to six digits
+ $sRange = "";
+ $oParserState->consume("U+");
+ do {
+ if ($oParserState->comes('-')) {
+ $iCodepointMaxLength = 13; // Max length is 2 six digit code points + the dash(-) between them
+ }
+ $sRange .= $oParserState->consume(1);
+ } while (strlen($sRange) < $iCodepointMaxLength && preg_match("/[A-Fa-f0-9\?-]/", $oParserState->peek()));
+ return "U+{$sRange}";
+ }
+
+ /**
+ * @return int
+ */
+ public function getLineNo()
+ {
+ return $this->iLineNo;
+ }
+}
diff --git a/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Value/ValueList.php b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Value/ValueList.php
new file mode 100644
index 0000000..af5348b
--- /dev/null
+++ b/library/vendor/dompdf/vendor/sabberworm/php-css-parser/src/Value/ValueList.php
@@ -0,0 +1,100 @@
+<?php
+
+namespace Sabberworm\CSS\Value;
+
+use Sabberworm\CSS\OutputFormat;
+
+abstract class ValueList extends Value
+{
+ /**
+ * @var array<int, RuleValueList|CSSFunction|CSSString|LineName|Size|URL|string>
+ */
+ protected $aComponents;
+
+ /**
+ * @var string
+ */
+ protected $sSeparator;
+
+ /**
+ * phpcs:ignore Generic.Files.LineLength
+ * @param array<int, RuleValueList|CSSFunction|CSSString|LineName|Size|URL|string>|RuleValueList|CSSFunction|CSSString|LineName|Size|URL|string $aComponents
+ * @param string $sSeparator
+ * @param int $iLineNo
+ */
+ public function __construct($aComponents = [], $sSeparator = ',', $iLineNo = 0)
+ {
+ parent::__construct($iLineNo);
+ if (!is_array($aComponents)) {
+ $aComponents = [$aComponents];
+ }
+ $this->aComponents = $aComponents;
+ $this->sSeparator = $sSeparator;
+ }
+
+ /**
+ * @param RuleValueList|CSSFunction|CSSString|LineName|Size|URL|string $mComponent
+ *
+ * @return void
+ */
+ public function addListComponent($mComponent)
+ {
+ $this->aComponents[] = $mComponent;
+ }
+
+ /**
+ * @return array<int, RuleValueList|CSSFunction|CSSString|LineName|Size|URL|string>
+ */
+ public function getListComponents()
+ {
+ return $this->aComponents;
+ }
+
+ /**
+ * @param array<int, RuleValueList|CSSFunction|CSSString|LineName|Size|URL|string> $aComponents
+ *
+ * @return void
+ */
+ public function setListComponents(array $aComponents)
+ {
+ $this->aComponents = $aComponents;
+ }
+
+ /**
+ * @return string
+ */
+ public function getListSeparator()
+ {
+ return $this->sSeparator;
+ }
+
+ /**
+ * @param string $sSeparator
+ *
+ * @return void
+ */
+ public function setListSeparator($sSeparator)
+ {
+ $this->sSeparator = $sSeparator;
+ }
+
+ /**
+ * @return string
+ */
+ public function __toString()
+ {
+ return $this->render(new OutputFormat());
+ }
+
+ /**
+ * @return string
+ */
+ public function render(OutputFormat $oOutputFormat)
+ {
+ return $oOutputFormat->implode(
+ $oOutputFormat->spaceBeforeListArgumentSeparator($this->sSeparator) . $this->sSeparator
+ . $oOutputFormat->spaceAfterListArgumentSeparator($this->sSeparator),
+ $this->aComponents
+ );
+ }
+}